ZGlmZiAtLWdpdCBhL01hYy9EZW1vL2FwcGxlc2NyaXB0Lmh0bWwgYi9NYWMvRGVtby9hcHBsZXNjcmlwdC5odG1sCmluZGV4IDdkYjViYTYuLjZkODY4OGUgMTAwNjQ0Ci0tLSBhL01hYy9EZW1vL2FwcGxlc2NyaXB0Lmh0bWwKKysrIGIvTWFjL0RlbW8vYXBwbGVzY3JpcHQuaHRtbApAQCAtMTQyLDYgKzE0MiwxMCBAQAogPENPREU+Q2hvb3NlQXBwbGljYXRpb248L0NPREU+IGZyb20gdGhlIHByb2dyYW0tdG8tcHJvZ3JhbSB0b29sYm94LCBpcwogYWxzbyBub3QgYXZhaWxhYmxlIGZyb20gUHl0aG9uIGF0IHRoZSBtb21lbnQuIDxwPgogCitJZiB5b3Ugc3BlY2lmeSB0aGUgYXBwbGljYXRpb24gYnkgY3JlYXRvciB5b3UgY2FuIHNwZWNpZnkgYW4gb3B0aW9uYWwKKzxDT0RFPnN0YXJ0PC9DT0RFPiBwYXJhbWV0ZXIsIHdoaWNoIHdpbGwgY2F1c2UgdGhlIGFwcGxpY2F0aW9uIHRvIGJlCitzdGFydGVkIGlmIGl0IGlzIG5vdCBydW5uaW5nLiAgPFA+CisKIFRoZSBtYWluIHByb2dyYW0gaXRzZWxmIGlzIGEgd29uZGVyIG9mIHNpbXBsaWNpdHkuIFdlIGNyZWF0ZSB0aGUKIG9iamVjdCB0aGF0IHRhbGtzIHRvIEV1ZG9yYSAocGFzc2luZyB0aGUgc2lnbmF0dXJlIGFzIGFyZ3VtZW50KSwgYXNrCiB0aGUgdXNlciB3aGF0IHNoZSB3YW50cyBhbmQgY2FsbCB0aGUgYXBwcm9wcmlhdGUgbWV0aG9kIG9mIHRoZSB0YWxrZXIKZGlmZiAtLWdpdCBhL01hYy9EZW1vL3NjcmlwdGluZy9FdWRvcmFfU3VpdGUucHkgYi9NYWMvRGVtby9zY3JpcHRpbmcvRXVkb3JhX1N1aXRlLnB5CmluZGV4IDEzYTFjZjYuLjQ4MWFhZGQgMTAwNjQ0Ci0tLSBhL01hYy9EZW1vL3NjcmlwdGluZy9FdWRvcmFfU3VpdGUucHkKKysrIGIvTWFjL0RlbW8vc2NyaXB0aW5nL0V1ZG9yYV9TdWl0ZS5weQpAQCAtMSwxMSArMSwxMCBAQAogIiIiU3VpdGUgRXVkb3JhIFN1aXRlOiBUZXJtcyBzcGVjaWZpYyB0byBFdWRvcmEKIExldmVsIDEsIHZlcnNpb24gMQogCi1HZW5lcmF0ZWQgZnJvbSBNb2VzOlByb2dyYW1tYSdzOkV1ZG9yYTpFdWRvcmEgTGlnaHQKK0dlbmVyYXRlZCBmcm9tIGZsYXA6UHJvZ3JhbW1hJ3M6RXVkb3JhIExpZ2h0CiBBRVRFL0FFVVQgcmVzb3VyY2UgdmVyc2lvbiAyLzE2LCBsYW5ndWFnZSAwLCBzY3JpcHQgMAogIiIiCiAKLQogaW1wb3J0IGFldG9vbHMKIGltcG9ydCBNYWNPUwogCkBAIC03MSw3ICs3MCw3IEBACiAJCV9yZXBseSwgX2FyZ3VtZW50cywgX2F0dHJpYnV0ZXMgPSBzZWxmLnNlbmQoX2NvZGUsIF9zdWJjb2RlLAogCQkJCV9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzKQogCQlpZiBfYXJndW1lbnRzLmhhc19rZXkoJ2Vycm4nKToKLQkJCXJhaXNlIE1hY09TLkVycm9yLCBhZXRvb2xzLmRlY29kZWVycm9yKF9hcmd1bWVudHMpCisJCQlyYWlzZSBhZXRvb2xzLkVycm9yLCBhZXRvb2xzLmRlY29kZWVycm9yKF9hcmd1bWVudHMpCiAJCSMgWFhYWCBPcHRpb25hbGx5IGRlY29kZSByZXN1bHQKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCctLS0tJyk6CiAJCQlyZXR1cm4gX2FyZ3VtZW50c1snLS0tLSddCkBAIC0xMDEsNyArMTAwLDcgQEAKIAkJX3JlcGx5LCBfYXJndW1lbnRzLCBfYXR0cmlidXRlcyA9IHNlbGYuc2VuZChfY29kZSwgX3N1YmNvZGUsCiAJCQkJX2FyZ3VtZW50cywgX2F0dHJpYnV0ZXMpCiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnZXJybicpOgotCQkJcmFpc2UgTWFjT1MuRXJyb3IsIGFldG9vbHMuZGVjb2RlZXJyb3IoX2FyZ3VtZW50cykKKwkJCXJhaXNlIGFldG9vbHMuRXJyb3IsIGFldG9vbHMuZGVjb2RlZXJyb3IoX2FyZ3VtZW50cykKIAkJIyBYWFhYIE9wdGlvbmFsbHkgZGVjb2RlIHJlc3VsdAogCQlpZiBfYXJndW1lbnRzLmhhc19rZXkoJy0tLS0nKToKIAkJCXJldHVybiBfYXJndW1lbnRzWyctLS0tJ10KQEAgLTEyMiw3ICsxMjEsNyBAQAogCQlfcmVwbHksIF9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzID0gc2VsZi5zZW5kKF9jb2RlLCBfc3ViY29kZSwKIAkJCQlfYXJndW1lbnRzLCBfYXR0cmlidXRlcykKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCdlcnJuJyk6Ci0JCQlyYWlzZSBNYWNPUy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQorCQkJcmFpc2UgYWV0b29scy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQogCQkjIFhYWFggT3B0aW9uYWxseSBkZWNvZGUgcmVzdWx0CiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnLS0tLScpOgogCQkJcmV0dXJuIF9hcmd1bWVudHNbJy0tLS0nXQpAQCAtMTQzLDcgKzE0Miw3IEBACiAJCV9yZXBseSwgX2FyZ3VtZW50cywgX2F0dHJpYnV0ZXMgPSBzZWxmLnNlbmQoX2NvZGUsIF9zdWJjb2RlLAogCQkJCV9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzKQogCQlpZiBfYXJndW1lbnRzLmhhc19rZXkoJ2Vycm4nKToKLQkJCXJhaXNlIE1hY09TLkVycm9yLCBhZXRvb2xzLmRlY29kZWVycm9yKF9hcmd1bWVudHMpCisJCQlyYWlzZSBhZXRvb2xzLkVycm9yLCBhZXRvb2xzLmRlY29kZWVycm9yKF9hcmd1bWVudHMpCiAJCSMgWFhYWCBPcHRpb25hbGx5IGRlY29kZSByZXN1bHQKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCctLS0tJyk6CiAJCQlyZXR1cm4gX2FyZ3VtZW50c1snLS0tLSddCkBAIC0xNjQsNyArMTYzLDcgQEAKIAkJX3JlcGx5LCBfYXJndW1lbnRzLCBfYXR0cmlidXRlcyA9IHNlbGYuc2VuZChfY29kZSwgX3N1YmNvZGUsCiAJCQkJX2FyZ3VtZW50cywgX2F0dHJpYnV0ZXMpCiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnZXJybicpOgotCQkJcmFpc2UgTWFjT1MuRXJyb3IsIGFldG9vbHMuZGVjb2RlZXJyb3IoX2FyZ3VtZW50cykKKwkJCXJhaXNlIGFldG9vbHMuRXJyb3IsIGFldG9vbHMuZGVjb2RlZXJyb3IoX2FyZ3VtZW50cykKIAkJIyBYWFhYIE9wdGlvbmFsbHkgZGVjb2RlIHJlc3VsdAogCQlpZiBfYXJndW1lbnRzLmhhc19rZXkoJy0tLS0nKToKIAkJCXJldHVybiBfYXJndW1lbnRzWyctLS0tJ10KQEAgLTE4OSwxMyArMTg4LDEzIEBACiAJCV9yZXBseSwgX2FyZ3VtZW50cywgX2F0dHJpYnV0ZXMgPSBzZWxmLnNlbmQoX2NvZGUsIF9zdWJjb2RlLAogCQkJCV9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzKQogCQlpZiBfYXJndW1lbnRzLmhhc19rZXkoJ2Vycm4nKToKLQkJCXJhaXNlIE1hY09TLkVycm9yLCBhZXRvb2xzLmRlY29kZWVycm9yKF9hcmd1bWVudHMpCisJCQlyYWlzZSBhZXRvb2xzLkVycm9yLCBhZXRvb2xzLmRlY29kZWVycm9yKF9hcmd1bWVudHMpCiAJCSMgWFhYWCBPcHRpb25hbGx5IGRlY29kZSByZXN1bHQKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCctLS0tJyk6CiAJCQlyZXR1cm4gX2FyZ3VtZW50c1snLS0tLSddCiAKIAlkZWYgdW5xdWV1ZShzZWxmLCBfb2JqZWN0LCBfYXR0cmlidXRlcz17fSwgKipfYXJndW1lbnRzKToKLQkJIiIidW5xdWV1ZTogUmVtb3ZlIGEgbWVzc2FnZSBmcm9tIHRoZSBxdWV1ZSwgc28gaXQgd29u1XQgYmUgc2VudAorCQkiIiJ1bnF1ZXVlOiBSZW1vdmUgYSBtZXNzYWdlIGZyb20gdGhlIHF1ZXVlLCBzbyBpdCB3b265dCBiZSBzZW50CiAJCVJlcXVpcmVkIGFyZ3VtZW50OiB0aGUgbWVzc2FnZSB0byB1bnF1ZXVlCiAJCUtleXdvcmQgYXJndW1lbnQgX2F0dHJpYnV0ZXM6IEFwcGxlRXZlbnQgYXR0cmlidXRlIGRpY3Rpb25hcnkKIAkJIiIiCkBAIC0yMDksNyArMjA4LDcgQEAKIAkJX3JlcGx5LCBfYXJndW1lbnRzLCBfYXR0cmlidXRlcyA9IHNlbGYuc2VuZChfY29kZSwgX3N1YmNvZGUsCiAJCQkJX2FyZ3VtZW50cywgX2F0dHJpYnV0ZXMpCiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnZXJybicpOgotCQkJcmFpc2UgTWFjT1MuRXJyb3IsIGFldG9vbHMuZGVjb2RlZXJyb3IoX2FyZ3VtZW50cykKKwkJCXJhaXNlIGFldG9vbHMuRXJyb3IsIGFldG9vbHMuZGVjb2RlZXJyb3IoX2FyZ3VtZW50cykKIAkJIyBYWFhYIE9wdGlvbmFsbHkgZGVjb2RlIHJlc3VsdAogCQlpZiBfYXJndW1lbnRzLmhhc19rZXkoJy0tLS0nKToKIAkJCXJldHVybiBfYXJndW1lbnRzWyctLS0tJ10KQEAgLTIzNCw3ICsyMzMsNyBAQAogCQlfcmVwbHksIF9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzID0gc2VsZi5zZW5kKF9jb2RlLCBfc3ViY29kZSwKIAkJCQlfYXJndW1lbnRzLCBfYXR0cmlidXRlcykKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCdlcnJuJyk6Ci0JCQlyYWlzZSBNYWNPUy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQorCQkJcmFpc2UgYWV0b29scy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQogCQkjIFhYWFggT3B0aW9uYWxseSBkZWNvZGUgcmVzdWx0CiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnLS0tLScpOgogCQkJcmV0dXJuIF9hcmd1bWVudHNbJy0tLS0nXQpAQCAtMjU5LDcgKzI1OCw3IEBACiAJCV9yZXBseSwgX2FyZ3VtZW50cywgX2F0dHJpYnV0ZXMgPSBzZWxmLnNlbmQoX2NvZGUsIF9zdWJjb2RlLAogCQkJCV9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzKQogCQlpZiBfYXJndW1lbnRzLmhhc19rZXkoJ2Vycm4nKToKLQkJCXJhaXNlIE1hY09TLkVycm9yLCBhZXRvb2xzLmRlY29kZWVycm9yKF9hcmd1bWVudHMpCisJCQlyYWlzZSBhZXRvb2xzLkVycm9yLCBhZXRvb2xzLmRlY29kZWVycm9yKF9hcmd1bWVudHMpCiAJCSMgWFhYWCBPcHRpb25hbGx5IGRlY29kZSByZXN1bHQKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCctLS0tJyk6CiAJCQlyZXR1cm4gX2FyZ3VtZW50c1snLS0tLSddCkBAIC0yODQsNyArMjgzLDcgQEAKIAkJX3JlcGx5LCBfYXJndW1lbnRzLCBfYXR0cmlidXRlcyA9IHNlbGYuc2VuZChfY29kZSwgX3N1YmNvZGUsCiAJCQkJX2FyZ3VtZW50cywgX2F0dHJpYnV0ZXMpCiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnZXJybicpOgotCQkJcmFpc2UgTWFjT1MuRXJyb3IsIGFldG9vbHMuZGVjb2RlZXJyb3IoX2FyZ3VtZW50cykKKwkJCXJhaXNlIGFldG9vbHMuRXJyb3IsIGFldG9vbHMuZGVjb2RlZXJyb3IoX2FyZ3VtZW50cykKIAkJIyBYWFhYIE9wdGlvbmFsbHkgZGVjb2RlIHJlc3VsdAogCQlpZiBfYXJndW1lbnRzLmhhc19rZXkoJy0tLS0nKToKIAkJCXJldHVybiBfYXJndW1lbnRzWyctLS0tJ10KQEAgLTMxMSw3ICszMTAsNyBAQAogCQlfcmVwbHksIF9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzID0gc2VsZi5zZW5kKF9jb2RlLCBfc3ViY29kZSwKIAkJCQlfYXJndW1lbnRzLCBfYXR0cmlidXRlcykKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCdlcnJuJyk6Ci0JCQlyYWlzZSBNYWNPUy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQorCQkJcmFpc2UgYWV0b29scy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQogCQkjIFhYWFggT3B0aW9uYWxseSBkZWNvZGUgcmVzdWx0CiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnLS0tLScpOgogCQkJcmV0dXJuIF9hcmd1bWVudHNbJy0tLS0nXQpkaWZmIC0tZ2l0IGEvTWFjL0RlbW8vc2NyaXB0aW5nL1N0YW5kYXJkX1N1aXRlLnB5IGIvTWFjL0RlbW8vc2NyaXB0aW5nL1N0YW5kYXJkX1N1aXRlLnB5CmluZGV4IGEyOWMxMWEuLmNlNWJhYWQgMTAwNjQ0Ci0tLSBhL01hYy9EZW1vL3NjcmlwdGluZy9TdGFuZGFyZF9TdWl0ZS5weQorKysgYi9NYWMvRGVtby9zY3JpcHRpbmcvU3RhbmRhcmRfU3VpdGUucHkKQEAgLTEsMTEgKzEsMTAgQEAKICIiIlN1aXRlIFN0YW5kYXJkIFN1aXRlOiBDb21tb24gdGVybXMgZm9yIG1vc3QgYXBwbGljYXRpb25zCiBMZXZlbCAxLCB2ZXJzaW9uIDEKIAotR2VuZXJhdGVkIGZyb20gTW9lczpQcm9ncmFtbWEnczpFdWRvcmE6RXVkb3JhIExpZ2h0CitHZW5lcmF0ZWQgZnJvbSBmbGFwOlByb2dyYW1tYSdzOkV1ZG9yYSBMaWdodAogQUVURS9BRVVUIHJlc291cmNlIHZlcnNpb24gMi8xNiwgbGFuZ3VhZ2UgMCwgc2NyaXB0IDAKICIiIgogCi0KIGltcG9ydCBhZXRvb2xzCiBpbXBvcnQgTWFjT1MKIApAQCAtMjgsNyArMjcsNyBAQAogCQlfcmVwbHksIF9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzID0gc2VsZi5zZW5kKF9jb2RlLCBfc3ViY29kZSwKIAkJCQlfYXJndW1lbnRzLCBfYXR0cmlidXRlcykKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCdlcnJuJyk6Ci0JCQlyYWlzZSBNYWNPUy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQorCQkJcmFpc2UgYWV0b29scy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQogCQkjIFhYWFggT3B0aW9uYWxseSBkZWNvZGUgcmVzdWx0CiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnLS0tLScpOgogCQkJcmV0dXJuIF9hcmd1bWVudHNbJy0tLS0nXQpAQCAtNTQsNyArNTMsNyBAQAogCQlfcmVwbHksIF9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzID0gc2VsZi5zZW5kKF9jb2RlLCBfc3ViY29kZSwKIAkJCQlfYXJndW1lbnRzLCBfYXR0cmlidXRlcykKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCdlcnJuJyk6Ci0JCQlyYWlzZSBNYWNPUy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQorCQkJcmFpc2UgYWV0b29scy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQogCQkjIFhYWFggT3B0aW9uYWxseSBkZWNvZGUgcmVzdWx0CiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnLS0tLScpOgogCQkJcmV0dXJuIF9hcmd1bWVudHNbJy0tLS0nXQpAQCAtNzUsNyArNzQsNyBAQAogCQlfcmVwbHksIF9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzID0gc2VsZi5zZW5kKF9jb2RlLCBfc3ViY29kZSwKIAkJCQlfYXJndW1lbnRzLCBfYXR0cmlidXRlcykKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCdlcnJuJyk6Ci0JCQlyYWlzZSBNYWNPUy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQorCQkJcmFpc2UgYWV0b29scy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQogCQkjIFhYWFggT3B0aW9uYWxseSBkZWNvZGUgcmVzdWx0CiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnLS0tLScpOgogCQkJcmV0dXJuIF9hcmd1bWVudHNbJy0tLS0nXQpAQCAtOTYsNyArOTUsNyBAQAogCQlfcmVwbHksIF9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzID0gc2VsZi5zZW5kKF9jb2RlLCBfc3ViY29kZSwKIAkJCQlfYXJndW1lbnRzLCBfYXR0cmlidXRlcykKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCdlcnJuJyk6Ci0JCQlyYWlzZSBNYWNPUy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQorCQkJcmFpc2UgYWV0b29scy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQogCQkjIFhYWFggT3B0aW9uYWxseSBkZWNvZGUgcmVzdWx0CiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnLS0tLScpOgogCQkJcmV0dXJuIF9hcmd1bWVudHNbJy0tLS0nXQpAQCAtMTIzLDcgKzEyMiw3IEBACiAJCV9yZXBseSwgX2FyZ3VtZW50cywgX2F0dHJpYnV0ZXMgPSBzZWxmLnNlbmQoX2NvZGUsIF9zdWJjb2RlLAogCQkJCV9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzKQogCQlpZiBfYXJndW1lbnRzLmhhc19rZXkoJ2Vycm4nKToKLQkJCXJhaXNlIE1hY09TLkVycm9yLCBhZXRvb2xzLmRlY29kZWVycm9yKF9hcmd1bWVudHMpCisJCQlyYWlzZSBhZXRvb2xzLkVycm9yLCBhZXRvb2xzLmRlY29kZWVycm9yKF9hcmd1bWVudHMpCiAJCSMgWFhYWCBPcHRpb25hbGx5IGRlY29kZSByZXN1bHQKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCctLS0tJyk6CiAJCQlyZXR1cm4gX2FyZ3VtZW50c1snLS0tLSddCkBAIC0xNDksNyArMTQ4LDcgQEAKIAkJX3JlcGx5LCBfYXJndW1lbnRzLCBfYXR0cmlidXRlcyA9IHNlbGYuc2VuZChfY29kZSwgX3N1YmNvZGUsCiAJCQkJX2FyZ3VtZW50cywgX2F0dHJpYnV0ZXMpCiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnZXJybicpOgotCQkJcmFpc2UgTWFjT1MuRXJyb3IsIGFldG9vbHMuZGVjb2RlZXJyb3IoX2FyZ3VtZW50cykKKwkJCXJhaXNlIGFldG9vbHMuRXJyb3IsIGFldG9vbHMuZGVjb2RlZXJyb3IoX2FyZ3VtZW50cykKIAkJIyBYWFhYIE9wdGlvbmFsbHkgZGVjb2RlIHJlc3VsdAogCQlpZiBfYXJndW1lbnRzLmhhc19rZXkoJy0tLS0nKToKIAkJCXJldHVybiBfYXJndW1lbnRzWyctLS0tJ10KQEAgLTE3NSw3ICsxNzQsNyBAQAogCQlfcmVwbHksIF9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzID0gc2VsZi5zZW5kKF9jb2RlLCBfc3ViY29kZSwKIAkJCQlfYXJndW1lbnRzLCBfYXR0cmlidXRlcykKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCdlcnJuJyk6Ci0JCQlyYWlzZSBNYWNPUy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQorCQkJcmFpc2UgYWV0b29scy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQogCQkjIFhYWFggT3B0aW9uYWxseSBkZWNvZGUgcmVzdWx0CiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnLS0tLScpOgogCQkJcmV0dXJuIF9hcmd1bWVudHNbJy0tLS0nXQpAQCAtMTk1LDcgKzE5NCw3IEBACiAJCV9yZXBseSwgX2FyZ3VtZW50cywgX2F0dHJpYnV0ZXMgPSBzZWxmLnNlbmQoX2NvZGUsIF9zdWJjb2RlLAogCQkJCV9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzKQogCQlpZiBfYXJndW1lbnRzLmhhc19rZXkoJ2Vycm4nKToKLQkJCXJhaXNlIE1hY09TLkVycm9yLCBhZXRvb2xzLmRlY29kZWVycm9yKF9hcmd1bWVudHMpCisJCQlyYWlzZSBhZXRvb2xzLkVycm9yLCBhZXRvb2xzLmRlY29kZWVycm9yKF9hcmd1bWVudHMpCiAJCSMgWFhYWCBPcHRpb25hbGx5IGRlY29kZSByZXN1bHQKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCctLS0tJyk6CiAJCQlyZXR1cm4gX2FyZ3VtZW50c1snLS0tLSddCkBAIC0yMTUsNyArMjE0LDcgQEAKIAkJX3JlcGx5LCBfYXJndW1lbnRzLCBfYXR0cmlidXRlcyA9IHNlbGYuc2VuZChfY29kZSwgX3N1YmNvZGUsCiAJCQkJX2FyZ3VtZW50cywgX2F0dHJpYnV0ZXMpCiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnZXJybicpOgotCQkJcmFpc2UgTWFjT1MuRXJyb3IsIGFldG9vbHMuZGVjb2RlZXJyb3IoX2FyZ3VtZW50cykKKwkJCXJhaXNlIGFldG9vbHMuRXJyb3IsIGFldG9vbHMuZGVjb2RlZXJyb3IoX2FyZ3VtZW50cykKIAkJIyBYWFhYIE9wdGlvbmFsbHkgZGVjb2RlIHJlc3VsdAogCQlpZiBfYXJndW1lbnRzLmhhc19rZXkoJy0tLS0nKToKIAkJCXJldHVybiBfYXJndW1lbnRzWyctLS0tJ10KQEAgLTIzNSw3ICsyMzQsNyBAQAogCQlfcmVwbHksIF9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzID0gc2VsZi5zZW5kKF9jb2RlLCBfc3ViY29kZSwKIAkJCQlfYXJndW1lbnRzLCBfYXR0cmlidXRlcykKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCdlcnJuJyk6Ci0JCQlyYWlzZSBNYWNPUy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQorCQkJcmFpc2UgYWV0b29scy5FcnJvciwgYWV0b29scy5kZWNvZGVlcnJvcihfYXJndW1lbnRzKQogCQkjIFhYWFggT3B0aW9uYWxseSBkZWNvZGUgcmVzdWx0CiAJCWlmIF9hcmd1bWVudHMuaGFzX2tleSgnLS0tLScpOgogCQkJcmV0dXJuIF9hcmd1bWVudHNbJy0tLS0nXQpAQCAtMjYwLDcgKzI1OSw3IEBACiAJCV9yZXBseSwgX2FyZ3VtZW50cywgX2F0dHJpYnV0ZXMgPSBzZWxmLnNlbmQoX2NvZGUsIF9zdWJjb2RlLAogCQkJCV9hcmd1bWVudHMsIF9hdHRyaWJ1dGVzKQogCQlpZiBfYXJndW1lbnRzLmhhc19rZXkoJ2Vycm4nKToKLQkJCXJhaXNlIE1hY09TLkVycm9yLCBhZXRvb2xzLmRlY29kZWVycm9yKF9hcmd1bWVudHMpCisJCQlyYWlzZSBhZXRvb2xzLkVycm9yLCBhZXRvb2xzLmRlY29kZWVycm9yKF9hcmd1bWVudHMpCiAJCSMgWFhYWCBPcHRpb25hbGx5IGRlY29kZSByZXN1bHQKIAkJaWYgX2FyZ3VtZW50cy5oYXNfa2V5KCctLS0tJyk6CiAJCQlyZXR1cm4gX2FyZ3VtZW50c1snLS0tLSddCmRpZmYgLS1naXQgYS9NYWMvRGVtby9zY3JpcHRpbmcvdGVzdGV1ZG9yYS5weSBiL01hYy9EZW1vL3NjcmlwdGluZy90ZXN0ZXVkb3JhLnB5CmluZGV4IDhhODZjYmEuLjk1MWU4ODUgMTAwNjQ0Ci0tLSBhL01hYy9EZW1vL3NjcmlwdGluZy90ZXN0ZXVkb3JhLnB5CisrKyBiL01hYy9EZW1vL3NjcmlwdGluZy90ZXN0ZXVkb3JhLnB5CkBAIC0xMiwxMCArMTIsMTAgQEAKIAlwYXNzCiAJCiAjIFRoZSBDcmVhdG9yIHNpZ25hdHVyZSBvZiBldWRvcmE6Ci1TSUdOQVRVUkU9Ij8/Pz8iCitTSUdOQVRVUkU9IkNTT20iCiAKIGRlZiBtYWluKCk6Ci0JdGFsa2VyID0gRXVkb3JhKFNJR05BVFVSRSkKKwl0YWxrZXIgPSBFdWRvcmEoU0lHTkFUVVJFLCBzdGFydD0xKQogCXdoaWxlIDE6CiAJCXByaW50ICdnZXQsIHB1dCwgcXVpdCAoZXVkb3JhKSBvciBleGl0ICh0aGlzIHByb2dyYW0pID8nCiAJCWxpbmUgPSBzeXMuc3RkaW4ucmVhZGxpbmUoKQo=