From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Blake Subject: [PATCH v5 06/10] qobject: Use simpler QDict/QList scalar insertion macros Date: Thu, 27 Apr 2017 16:58:17 -0500 Message-ID: <20170427215821.19397-7-eblake__45745.1938804754$1493330410$gmane$org@redhat.com> References: <20170427215821.19397-1-eblake@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d3rR3-0007Bc-Qo for xen-devel@lists.xenproject.org; Thu, 27 Apr 2017 21:58:50 +0000 In-Reply-To: <20170427215821.19397-1-eblake@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: qemu-devel@nongnu.org Cc: Kevin Wolf , Alexander Graf , Josh Durgin , Stefano Stabellini , Fam Zheng , Michael Roth , "open list:Block layer core" , "Richard W.M. Jones" , Stefan Weil , Jeff Cody , Peter Lieven , armbru@redhat.com, Max Reitz , Alberto Garcia , Gerd Hoffmann , Stefan Hajnoczi , "open list:X86" , Anthony Perard , Paolo Bonzini , "Dr. David Alan Gilbert" , Richard Henderson List-Id: xen-devel@lists.xenproject.org V2Ugbm93IGhhdmUgbWFjcm9zIGluIHBsYWNlIHRvIG1ha2UgaXQgbGVzcyB2ZXJib3NlIHRvIGFk ZCBhIHNjYWxhcgp0byBRRGljdCBhbmQgUUxpc3QsIHNvIHVzZSB0aGVtLiAgVG8gbWFrZSB0aGlz IHBhdGNoIHNtYWxsZXIgdG8KcmV2aWV3LCBhIGNvdXBsZSBvZiBzdWJkaXJlY3RvcmllcyB3ZXJl IGRvbmUgaW4gZWFybGllciBwYXRjaGVzLgoKUGF0Y2ggY3JlYXRlZCBtZWNoYW5pY2FsbHkgdmlh OgogIHNwYXRjaCAtLXNwLWZpbGUgc2NyaXB0cy9jb2NjaW5lbGxlL3FvYmplY3QuY29jY2kgXAog ICAgLS1tYWNyby1maWxlIHNjcmlwdHMvY29jY2ktbWFjcm8tZmlsZS5oIC0tZGlyIC4gLS1pbi1w bGFjZQp0aGVuIHRvdWNoZWQgdXAgbWFudWFsbHkgdG8gZml4IGEgY291cGxlIG9mICc/OicgYmFj ayB0byBvcmlnaW5hbApzcGFjaW5nLCBhcyB3ZWxsIGFzIGF2b2lkaW5nIGEgbG9uZyBsaW5lIGlu IG1vbml0b3IuYy4KClNpZ25lZC1vZmYtYnk6IEVyaWMgQmxha2UgPGVibGFrZUByZWRoYXQuY29t PgpSZXZpZXdlZC1ieTogTWFya3VzIEFybWJydXN0ZXIgPGFybWJydUByZWRoYXQuY29tPgoKLS0t CnY1OiByZWJhc2UgdG8gbWFzdGVyIChDb2NjaW5lbGxlIGZvdW5kIGEgY291cGxlIG5ldyBzcG90 cyksIHNxdWFzaCAzCnBhdGNoZXMgaW50byAxLCBhZGp1c3QgUi1iIHRvIG9ubHkgbGlzdCBNYXJr dXMgKHdoaWxlIHRoZXJlIHdlcmUgb3RoZXIKcmV2aWV3cyBvbiB0aGUgcHJlLXNxdWFzaGVkIHBh dGNoZXMsIE1hcmt1cyB3YXMgdGhlIG9ubHkgb25lIG9uIGFsbCAzKQp2NDogbm8gY2hhbmdlCnYz OiBuZXcgcGF0Y2gKLS0tCiBibG9jay5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0 NSArKysrKy0tLS0tLS0KIGJsb2NrL2Jsa2RlYnVnLmMgICAgICAgICAgICAgICAgICAgIHwgICA2 ICstCiBibG9jay9ibGt2ZXJpZnkuYyAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogYmxvY2sv Y3VybC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGJsb2NrL2ZpbGUtcG9zaXgu YyAgICAgICAgICAgICAgICAgIHwgICA4ICstLQogYmxvY2svZmlsZS13aW4zMi5jICAgICAgICAg ICAgICAgICAgfCAgIDQgKy0KIGJsb2NrL25iZC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDQxICsrKysrKy0tLS0tCiBibG9jay9uZnMuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0 MyArKysrKy0tLS0tLS0KIGJsb2NrL251bGwuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiBibG9jay9xY293Mi5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogYmxvY2sv cXVvcnVtLmMgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0tCiBibG9jay9yYmQuYyAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAxNiArKy0tLQogYmxvY2svc25hcHNob3QuYyAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KIGJsb2NrL3NzaC5jICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDE2ICsrLS0tCiBibG9jay92dmZhdC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCAr LS0KIGJsb2NrL3Z4aHMuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBibG9ja2Rl di5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzMCArKysrLS0tLQogaHcvYmxvY2sveGVu X2Rpc2suYyAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGh3L3VzYi94ZW4tdXNiLmMgICAgICAg ICAgICAgICAgICAgIHwgIDEyICsrLS0KIG1vbml0b3IuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIzICsrKy0tLS0KIHFhcGkvcW1wLWV2ZW50LmMgICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiBxZW11LWltZy5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogcWVt dS1pby5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHFlbXUtbmJkLmMgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBxb2JqZWN0L3FkaWN0LmMgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogdGFyZ2V0L3MzOTB4L2NwdV9tb2RlbHMuYyAgICAgICAgICAg fCAgIDQgKy0KIHRlc3RzL2NoZWNrLXFkaWN0LmMgICAgICAgICAgICAgICAgIHwgMTM0ICsrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogdGVzdHMvY2hlY2stcWxpc3QuYyAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KIHRlc3RzL2RldmljZS1pbnRyb3NwZWN0LXRlc3QuYyAgICAg IHwgICA0ICstCiB0ZXN0cy90ZXN0LXFlbXUtb3B0cy5jICAgICAgICAgICAgICB8ICAgNCArLQog dGVzdHMvdGVzdC1xbXAtY29tbWFuZHMuYyAgICAgICAgICAgfCAgMjQgKysrLS0tLQogdGVzdHMv dGVzdC1xbXAtZXZlbnQuYyAgICAgICAgICAgICAgfCAgMzAgKysrKy0tLS0KIHRlc3RzL3Rlc3Qt cW9iamVjdC1vdXRwdXQtdmlzaXRvci5jIHwgICA2ICstCiB1dGlsL3FlbXUtb3B0aW9uLmMgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogMzQgZmlsZXMgY2hhbmdlZCwgMjQ0IGluc2VydGlvbnMo KyksIDI2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ibG9jay5jIGIvYmxvY2suYwppbmRl eCA4NmMwYTYxLi41YjcwZjU4IDEwMDY0NAotLS0gYS9ibG9jay5jCisrKyBiL2Jsb2NrLmMKQEAg LTk3NCwxNiArOTc0LDE0IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9mbGFnc19mcm9tX29wdGlvbnMo aW50ICpmbGFncywgUWVtdU9wdHMgKm9wdHMpCiBzdGF0aWMgdm9pZCB1cGRhdGVfb3B0aW9uc19m cm9tX2ZsYWdzKFFEaWN0ICpvcHRpb25zLCBpbnQgZmxhZ3MpCiB7CiAgICAgaWYgKCFxZGljdF9o YXNrZXkob3B0aW9ucywgQkRSVl9PUFRfQ0FDSEVfRElSRUNUKSkgewotICAgICAgICBxZGljdF9w dXQob3B0aW9ucywgQkRSVl9PUFRfQ0FDSEVfRElSRUNULAotICAgICAgICAgICAgICAgICAgcWJv b2xfZnJvbV9ib29sKGZsYWdzICYgQkRSVl9PX05PQ0FDSEUpKTsKKyAgICAgICAgcWRpY3RfcHV0 X2Jvb2wob3B0aW9ucywgQkRSVl9PUFRfQ0FDSEVfRElSRUNULCBmbGFncyAmIEJEUlZfT19OT0NB Q0hFKTsKICAgICB9CiAgICAgaWYgKCFxZGljdF9oYXNrZXkob3B0aW9ucywgQkRSVl9PUFRfQ0FD SEVfTk9fRkxVU0gpKSB7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCBCRFJWX09QVF9DQUNI RV9OT19GTFVTSCwKLSAgICAgICAgICAgICAgICAgIHFib29sX2Zyb21fYm9vbChmbGFncyAmIEJE UlZfT19OT19GTFVTSCkpOworICAgICAgICBxZGljdF9wdXRfYm9vbChvcHRpb25zLCBCRFJWX09Q VF9DQUNIRV9OT19GTFVTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MgJiBCRFJWX09f Tk9fRkxVU0gpOwogICAgIH0KICAgICBpZiAoIXFkaWN0X2hhc2tleShvcHRpb25zLCBCRFJWX09Q VF9SRUFEX09OTFkpKSB7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCBCRFJWX09QVF9SRUFE X09OTFksCi0gICAgICAgICAgICAgICAgICBxYm9vbF9mcm9tX2Jvb2woIShmbGFncyAmIEJEUlZf T19SRFdSKSkpOworICAgICAgICBxZGljdF9wdXRfYm9vbChvcHRpb25zLCBCRFJWX09QVF9SRUFE X09OTFksICEoZmxhZ3MgJiBCRFJWX09fUkRXUikpOwogICAgIH0KIH0KCkBAIC0xMzk5LDcgKzEz OTcsNyBAQCBzdGF0aWMgaW50IGJkcnZfZmlsbF9vcHRpb25zKFFEaWN0ICoqb3B0aW9ucywgY29u c3QgY2hhciAqZmlsZW5hbWUsCiAgICAgLyogRmV0Y2ggdGhlIGZpbGUgbmFtZSBmcm9tIHRoZSBv cHRpb25zIFFEaWN0IGlmIG5lY2Vzc2FyeSAqLwogICAgIGlmIChwcm90b2NvbCAmJiBmaWxlbmFt ZSkgewogICAgICAgICBpZiAoIXFkaWN0X2hhc2tleSgqb3B0aW9ucywgImZpbGVuYW1lIikpIHsK LSAgICAgICAgICAgIHFkaWN0X3B1dCgqb3B0aW9ucywgImZpbGVuYW1lIiwgcXN0cmluZ19mcm9t X3N0cihmaWxlbmFtZSkpOworICAgICAgICAgICAgcWRpY3RfcHV0X3N0cigqb3B0aW9ucywgImZp bGVuYW1lIiwgZmlsZW5hbWUpOwogICAgICAgICAgICAgcGFyc2VfZmlsZW5hbWUgPSB0cnVlOwog ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiQ2FuJ3Qgc3Bl Y2lmeSAnZmlsZScgYW5kICdmaWxlbmFtZScgb3B0aW9ucyBhdCAiCkBAIC0xNDIwLDcgKzE0MTgs NyBAQCBzdGF0aWMgaW50IGJkcnZfZmlsbF9vcHRpb25zKFFEaWN0ICoqb3B0aW9ucywgY29uc3Qg Y2hhciAqZmlsZW5hbWUsCiAgICAgICAgICAgICB9CgogICAgICAgICAgICAgZHJ2bmFtZSA9IGRy di0+Zm9ybWF0X25hbWU7Ci0gICAgICAgICAgICBxZGljdF9wdXQoKm9wdGlvbnMsICJkcml2ZXIi LCBxc3RyaW5nX2Zyb21fc3RyKGRydm5hbWUpKTsKKyAgICAgICAgICAgIHFkaWN0X3B1dF9zdHIo Km9wdGlvbnMsICJkcml2ZXIiLCBkcnZuYW1lKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg ICAgIGVycm9yX3NldGcoZXJycCwgIk11c3Qgc3BlY2lmeSBlaXRoZXIgZHJpdmVyIG9yIGZpbGUi KTsKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwpAQCAtMjA3NSw3ICsyMDczLDcgQEAgaW50 IGJkcnZfb3Blbl9iYWNraW5nX2ZpbGUoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIFFEaWN0ICpwYXJl bnRfb3B0aW9ucywKICAgICB9CgogICAgIGlmIChicy0+YmFja2luZ19mb3JtYXRbMF0gIT0gJ1ww JyAmJiAhcWRpY3RfaGFza2V5KG9wdGlvbnMsICJkcml2ZXIiKSkgewotICAgICAgICBxZGljdF9w dXQob3B0aW9ucywgImRyaXZlciIsIHFzdHJpbmdfZnJvbV9zdHIoYnMtPmJhY2tpbmdfZm9ybWF0 KSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgImRyaXZlciIsIGJzLT5iYWNraW5n X2Zvcm1hdCk7CiAgICAgfQoKICAgICBiYWNraW5nX2hkID0gYmRydl9vcGVuX2luaGVyaXQoKmJh Y2tpbmdfZmlsZW5hbWUgPyBiYWNraW5nX2ZpbGVuYW1lIDogTlVMTCwKQEAgLTIyMzAsMTIgKzIy MjgsOSBAQCBzdGF0aWMgQmxvY2tEcml2ZXJTdGF0ZSAqYmRydl9hcHBlbmRfdGVtcF9zbmFwc2hv dChCbG9ja0RyaXZlclN0YXRlICpicywKICAgICB9CgogICAgIC8qIFByZXBhcmUgb3B0aW9ucyBR RGljdCBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlICovCi0gICAgcWRpY3RfcHV0KHNuYXBzaG90X29w dGlvbnMsICJmaWxlLmRyaXZlciIsCi0gICAgICAgICAgICAgIHFzdHJpbmdfZnJvbV9zdHIoImZp bGUiKSk7Ci0gICAgcWRpY3RfcHV0KHNuYXBzaG90X29wdGlvbnMsICJmaWxlLmZpbGVuYW1lIiwK LSAgICAgICAgICAgICAgcXN0cmluZ19mcm9tX3N0cih0bXBfZmlsZW5hbWUpKTsKLSAgICBxZGlj dF9wdXQoc25hcHNob3Rfb3B0aW9ucywgImRyaXZlciIsCi0gICAgICAgICAgICAgIHFzdHJpbmdf ZnJvbV9zdHIoInFjb3cyIikpOworICAgIHFkaWN0X3B1dF9zdHIoc25hcHNob3Rfb3B0aW9ucywg ImZpbGUuZHJpdmVyIiwgImZpbGUiKTsKKyAgICBxZGljdF9wdXRfc3RyKHNuYXBzaG90X29wdGlv bnMsICJmaWxlLmZpbGVuYW1lIiwgdG1wX2ZpbGVuYW1lKTsKKyAgICBxZGljdF9wdXRfc3RyKHNu YXBzaG90X29wdGlvbnMsICJkcml2ZXIiLCAicWNvdzIiKTsKCiAgICAgYnNfc25hcHNob3QgPSBi ZHJ2X29wZW4oTlVMTCwgTlVMTCwgc25hcHNob3Rfb3B0aW9ucywgZmxhZ3MsIGVycnApOwogICAg IHNuYXBzaG90X29wdGlvbnMgPSBOVUxMOwpAQCAtMjQxMCw4ICsyNDA1LDcgQEAgc3RhdGljIEJs b2NrRHJpdmVyU3RhdGUgKmJkcnZfb3Blbl9pbmhlcml0KGNvbnN0IGNoYXIgKmZpbGVuYW1lLAog ICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAgICAgIH0KCi0gICAgICAgICAgICBx ZGljdF9wdXQob3B0aW9ucywgImZpbGUiLAotICAgICAgICAgICAgICAgICAgICAgIHFzdHJpbmdf ZnJvbV9zdHIoYmRydl9nZXRfbm9kZV9uYW1lKGZpbGVfYnMpKSk7CisgICAgICAgICAgICBxZGlj dF9wdXRfc3RyKG9wdGlvbnMsICJmaWxlIiwgYmRydl9nZXRfbm9kZV9uYW1lKGZpbGVfYnMpKTsK ICAgICAgICAgfQogICAgIH0KCkBAIC0yNDMzLDggKzI0MjcsOCBAQCBzdGF0aWMgQmxvY2tEcml2 ZXJTdGF0ZSAqYmRydl9vcGVuX2luaGVyaXQoY29uc3QgY2hhciAqZmlsZW5hbWUsCiAgICAgICAg ICAqIHN1cmUgdG8gdXBkYXRlIGJvdGggYnMtPm9wdGlvbnMgKHdoaWNoIGhhcyB0aGUgZnVsbCBl ZmZlY3RpdmUKICAgICAgICAgICogb3B0aW9ucyBmb3IgYnMpIGFuZCBvcHRpb25zICh3aGljaCBo YXMgZmlsZS4qIGFscmVhZHkgcmVtb3ZlZCkuCiAgICAgICAgICAqLwotICAgICAgICBxZGljdF9w dXQoYnMtPm9wdGlvbnMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKGRydi0+Zm9ybWF0X25h bWUpKTsKLSAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21f c3RyKGRydi0+Zm9ybWF0X25hbWUpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihicy0+b3B0aW9u cywgImRyaXZlciIsIGRydi0+Zm9ybWF0X25hbWUpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9w dGlvbnMsICJkcml2ZXIiLCBkcnYtPmZvcm1hdF9uYW1lKTsKICAgICB9IGVsc2UgaWYgKCFkcnYp IHsKICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiTXVzdCBzcGVjaWZ5IGVpdGhlciBkcml2ZXIg b3IgZmlsZSIpOwogICAgICAgICBnb3RvIGZhaWw7CkBAIC0yODEwLDEyICsyODA0LDEyIEBAIGlu dCBiZHJ2X3Jlb3Blbl9wcmVwYXJlKEJEUlZSZW9wZW5TdGF0ZSAqcmVvcGVuX3N0YXRlLCBCbG9j a1Jlb3BlblF1ZXVlICpxdWV1ZSwKICAgICAgKiB0aGF0IHRoZXkgYXJlIGNoZWNrZWQgYXQgdGhl IGVuZCBvZiB0aGlzIGZ1bmN0aW9uLiAqLwogICAgIHZhbHVlID0gcWVtdV9vcHRfZ2V0KG9wdHMs ICJub2RlLW5hbWUiKTsKICAgICBpZiAodmFsdWUpIHsKLSAgICAgICAgcWRpY3RfcHV0KHJlb3Bl bl9zdGF0ZS0+b3B0aW9ucywgIm5vZGUtbmFtZSIsIHFzdHJpbmdfZnJvbV9zdHIodmFsdWUpKTsK KyAgICAgICAgcWRpY3RfcHV0X3N0cihyZW9wZW5fc3RhdGUtPm9wdGlvbnMsICJub2RlLW5hbWUi LCB2YWx1ZSk7CiAgICAgfQoKICAgICB2YWx1ZSA9IHFlbXVfb3B0X2dldChvcHRzLCAiZHJpdmVy Iik7CiAgICAgaWYgKHZhbHVlKSB7Ci0gICAgICAgIHFkaWN0X3B1dChyZW9wZW5fc3RhdGUtPm9w dGlvbnMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKHZhbHVlKSk7CisgICAgICAgIHFkaWN0 X3B1dF9zdHIocmVvcGVuX3N0YXRlLT5vcHRpb25zLCAiZHJpdmVyIiwgdmFsdWUpOwogICAgIH0K CiAgICAgLyogSWYgd2UgYXJlIHRvIHN0YXkgcmVhZC1vbmx5LCBkbyBub3QgYWxsb3cgcGVybWlz c2lvbiBjaGFuZ2UKQEAgLTQzMDIsOCArNDI5Niw3IEBAIHZvaWQgYmRydl9pbWdfY3JlYXRlKGNv bnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpmbXQsCgogICAgICAgICAgICAgaWYgKGJh Y2tpbmdfZm10KSB7CiAgICAgICAgICAgICAgICAgYmFja2luZ19vcHRpb25zID0gcWRpY3RfbmV3 KCk7Ci0gICAgICAgICAgICAgICAgcWRpY3RfcHV0KGJhY2tpbmdfb3B0aW9ucywgImRyaXZlciIs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHFzdHJpbmdfZnJvbV9zdHIoYmFja2luZ19mbXQp KTsKKyAgICAgICAgICAgICAgICBxZGljdF9wdXRfc3RyKGJhY2tpbmdfb3B0aW9ucywgImRyaXZl ciIsIGJhY2tpbmdfZm10KTsKICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICBicyA9IGJkcnZf b3BlbihmdWxsX2JhY2tpbmcsIE5VTEwsIGJhY2tpbmdfb3B0aW9ucywgYmFja19mbGFncywKQEAg LTQ3MDgsNyArNDcwMSw3IEBAIHZvaWQgYmRydl9yZWZyZXNoX2ZpbGVuYW1lKEJsb2NrRHJpdmVy U3RhdGUgKmJzKQogICAgICAgICAgKiBjb250YWluIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGZp bGVuYW1lLCB0aGVyZWZvcmUgdGhlIGZvbGxvd2luZwogICAgICAgICAgKiBzdWZmaWNlcyB3aXRo b3V0IHF1ZXJ5aW5nIHRoZSAoZXhhY3RfKWZpbGVuYW1lIG9mIHRoaXMgQkRTLiAqLwogICAgICAg ICBpZiAoYnMtPmZpbGUtPmJzLT5mdWxsX29wZW5fb3B0aW9ucykgewotICAgICAgICAgICAgcWRp Y3RfcHV0KG9wdHMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKGRydi0+Zm9ybWF0X25hbWUp KTsKKyAgICAgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0cywgImRyaXZlciIsIGRydi0+Zm9ybWF0 X25hbWUpOwogICAgICAgICAgICAgUUlOQ1JFRihicy0+ZmlsZS0+YnMtPmZ1bGxfb3Blbl9vcHRp b25zKTsKICAgICAgICAgICAgIHFkaWN0X3B1dChvcHRzLCAiZmlsZSIsIGJzLT5maWxlLT5icy0+ ZnVsbF9vcGVuX29wdGlvbnMpOwoKQEAgLTQ3MjYsNyArNDcxOSw3IEBAIHZvaWQgYmRydl9yZWZy ZXNoX2ZpbGVuYW1lKEJsb2NrRHJpdmVyU3RhdGUgKmJzKQoKICAgICAgICAgb3B0cyA9IHFkaWN0 X25ldygpOwogICAgICAgICBhcHBlbmRfb3Blbl9vcHRpb25zKG9wdHMsIGJzKTsKLSAgICAgICAg cWRpY3RfcHV0KG9wdHMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKGRydi0+Zm9ybWF0X25h bWUpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRzLCAiZHJpdmVyIiwgZHJ2LT5mb3JtYXRf bmFtZSk7CgogICAgICAgICBpZiAoYnMtPmV4YWN0X2ZpbGVuYW1lWzBdKSB7CiAgICAgICAgICAg ICAvKiBUaGlzIG1heSBub3Qgd29yayBmb3IgYWxsIGJsb2NrIHByb3RvY29sIGRyaXZlcnMgKHNv bWUgbWF5CkBAIC00NzM2LDcgKzQ3MjksNyBAQCB2b2lkIGJkcnZfcmVmcmVzaF9maWxlbmFtZShC bG9ja0RyaXZlclN0YXRlICpicykKICAgICAgICAgICAgICAqIG5lZWRzIHNvbWUgc3BlY2lhbCBm b3JtYXQgb2YgdGhlIG9wdGlvbnMgUURpY3QsIGl0IG5lZWRzIHRvCiAgICAgICAgICAgICAgKiBp bXBsZW1lbnQgdGhlIGRyaXZlci1zcGVjaWZpYyBiZHJ2X3JlZnJlc2hfZmlsZW5hbWUoKSBmdW5j dGlvbi4KICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgcWRpY3RfcHV0KG9wdHMsICJmaWxl bmFtZSIsIHFzdHJpbmdfZnJvbV9zdHIoYnMtPmV4YWN0X2ZpbGVuYW1lKSk7CisgICAgICAgICAg ICBxZGljdF9wdXRfc3RyKG9wdHMsICJmaWxlbmFtZSIsIGJzLT5leGFjdF9maWxlbmFtZSk7CiAg ICAgICAgIH0KCiAgICAgICAgIGJzLT5mdWxsX29wZW5fb3B0aW9ucyA9IG9wdHM7CmRpZmYgLS1n aXQgYS9ibG9jay9ibGtkZWJ1Zy5jIGIvYmxvY2svYmxrZGVidWcuYwppbmRleCBjNWQ0NzcyLi5m NjllMTM2IDEwMDY0NAotLS0gYS9ibG9jay9ibGtkZWJ1Zy5jCisrKyBiL2Jsb2NrL2Jsa2RlYnVn LmMKQEAgLTMwMSw3ICszMDEsNyBAQCBzdGF0aWMgdm9pZCBibGtkZWJ1Z19wYXJzZV9maWxlbmFt ZShjb25zdCBjaGFyICpmaWxlbmFtZSwgUURpY3QgKm9wdGlvbnMsCiAgICAgaWYgKCFzdHJzdGFy dChmaWxlbmFtZSwgImJsa2RlYnVnOiIsICZmaWxlbmFtZSkpIHsKICAgICAgICAgLyogVGhlcmUg d2FzIG5vIHByZWZpeDsgdGhlcmVmb3JlLCBhbGwgb3B0aW9ucyBoYXZlIHRvIGJlIGFscmVhZHkK ICAgICAgICAgICAgcHJlc2VudCBpbiB0aGUgUURpY3QgKGV4Y2VwdCBmb3IgdGhlIGZpbGVuYW1l KSAqLwotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgIngtaW1hZ2UiLCBxc3RyaW5nX2Zyb21f c3RyKGZpbGVuYW1lKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgIngtaW1hZ2Ui LCBmaWxlbmFtZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CgpAQCAtMzIwLDcgKzMyMCw3IEBA IHN0YXRpYyB2b2lkIGJsa2RlYnVnX3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1l LCBRRGljdCAqb3B0aW9ucywKCiAgICAgLyogVE9ETyBBbGxvdyBtdWx0aS1sZXZlbCBuZXN0aW5n IGFuZCBzZXQgZmlsZS5maWxlbmFtZSBoZXJlICovCiAgICAgZmlsZW5hbWUgPSBjICsgMTsKLSAg ICBxZGljdF9wdXQob3B0aW9ucywgIngtaW1hZ2UiLCBxc3RyaW5nX2Zyb21fc3RyKGZpbGVuYW1l KSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAieC1pbWFnZSIsIGZpbGVuYW1lKTsKIH0K CiBzdGF0aWMgUWVtdU9wdHNMaXN0IHJ1bnRpbWVfb3B0cyA9IHsKQEAgLTY5NSw3ICs2OTUsNyBA QCBzdGF0aWMgdm9pZCBibGtkZWJ1Z19yZWZyZXNoX2ZpbGVuYW1lKEJsb2NrRHJpdmVyU3RhdGUg KmJzLCBRRGljdCAqb3B0aW9ucykKICAgICB9CgogICAgIG9wdHMgPSBxZGljdF9uZXcoKTsKLSAg ICBxZGljdF9wdXQob3B0cywgImRyaXZlciIsIHFzdHJpbmdfZnJvbV9zdHIoImJsa2RlYnVnIikp OworICAgIHFkaWN0X3B1dF9zdHIob3B0cywgImRyaXZlciIsICJibGtkZWJ1ZyIpOwoKICAgICBR SU5DUkVGKGJzLT5maWxlLT5icy0+ZnVsbF9vcGVuX29wdGlvbnMpOwogICAgIHFkaWN0X3B1dChv cHRzLCAiaW1hZ2UiLCBicy0+ZmlsZS0+YnMtPmZ1bGxfb3Blbl9vcHRpb25zKTsKZGlmZiAtLWdp dCBhL2Jsb2NrL2Jsa3ZlcmlmeS5jIGIvYmxvY2svYmxrdmVyaWZ5LmMKaW5kZXggNzljODkxNC4u NWM3ZDUwNiAxMDA2NDQKLS0tIGEvYmxvY2svYmxrdmVyaWZ5LmMKKysrIGIvYmxvY2svYmxrdmVy aWZ5LmMKQEAgLTY3LDcgKzY3LDcgQEAgc3RhdGljIHZvaWQgYmxrdmVyaWZ5X3BhcnNlX2ZpbGVu YW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucywKICAgICBpZiAoIXN0cnN0 YXJ0KGZpbGVuYW1lLCAiYmxrdmVyaWZ5OiIsICZmaWxlbmFtZSkpIHsKICAgICAgICAgLyogVGhl cmUgd2FzIG5vIHByZWZpeDsgdGhlcmVmb3JlLCBhbGwgb3B0aW9ucyBoYXZlIHRvIGJlIGFscmVh ZHkKICAgICAgICAgICAgcHJlc2VudCBpbiB0aGUgUURpY3QgKGV4Y2VwdCBmb3IgdGhlIGZpbGVu YW1lKSAqLwotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgIngtaW1hZ2UiLCBxc3RyaW5nX2Zy b21fc3RyKGZpbGVuYW1lKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgIngtaW1h Z2UiLCBmaWxlbmFtZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CgpAQCAtODQsNyArODQsNyBA QCBzdGF0aWMgdm9pZCBibGt2ZXJpZnlfcGFyc2VfZmlsZW5hbWUoY29uc3QgY2hhciAqZmlsZW5h bWUsIFFEaWN0ICpvcHRpb25zLAoKICAgICAvKiBUT0RPIEFsbG93IG11bHRpLWxldmVsIG5lc3Rp bmcgYW5kIHNldCBmaWxlLmZpbGVuYW1lIGhlcmUgKi8KICAgICBmaWxlbmFtZSA9IGMgKyAxOwot ICAgIHFkaWN0X3B1dChvcHRpb25zLCAieC1pbWFnZSIsIHFzdHJpbmdfZnJvbV9zdHIoZmlsZW5h bWUpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJ4LWltYWdlIiwgZmlsZW5hbWUpOwog fQoKIHN0YXRpYyBRZW11T3B0c0xpc3QgcnVudGltZV9vcHRzID0gewpAQCAtMjkxLDcgKzI5MSw3 IEBAIHN0YXRpYyB2b2lkIGJsa3ZlcmlmeV9yZWZyZXNoX2ZpbGVuYW1lKEJsb2NrRHJpdmVyU3Rh dGUgKmJzLCBRRGljdCAqb3B0aW9ucykKICAgICAgICAgJiYgcy0+dGVzdF9maWxlLT5icy0+ZnVs bF9vcGVuX29wdGlvbnMpCiAgICAgewogICAgICAgICBRRGljdCAqb3B0cyA9IHFkaWN0X25ldygp OwotICAgICAgICBxZGljdF9wdXQob3B0cywgImRyaXZlciIsIHFzdHJpbmdfZnJvbV9zdHIoImJs a3ZlcmlmeSIpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRzLCAiZHJpdmVyIiwgImJsa3Zl cmlmeSIpOwoKICAgICAgICAgUUlOQ1JFRihicy0+ZmlsZS0+YnMtPmZ1bGxfb3Blbl9vcHRpb25z KTsKICAgICAgICAgcWRpY3RfcHV0KG9wdHMsICJyYXciLCBicy0+ZmlsZS0+YnMtPmZ1bGxfb3Bl bl9vcHRpb25zKTsKZGlmZiAtLWdpdCBhL2Jsb2NrL2N1cmwuYyBiL2Jsb2NrL2N1cmwuYwppbmRl eCAyNzA4ZDU3Li5hYTZlOGNjIDEwMDY0NAotLS0gYS9ibG9jay9jdXJsLmMKKysrIGIvYmxvY2sv Y3VybC5jCkBAIC01NDgsNyArNTQ4LDcgQEAgc3RhdGljIHZvaWQgY3VybF9jbGVhbl9zdGF0ZShD VVJMU3RhdGUgKnMpCiBzdGF0aWMgdm9pZCBjdXJsX3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIg KmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRXJyb3IgKiplcnJwKQogewotICAgIHFkaWN0X3B1dChvcHRpb25zLCBDVVJMX0JMT0NLX09Q VF9VUkwsIHFzdHJpbmdfZnJvbV9zdHIoZmlsZW5hbWUpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9w dGlvbnMsIENVUkxfQkxPQ0tfT1BUX1VSTCwgZmlsZW5hbWUpOwogfQoKIHN0YXRpYyB2b2lkIGN1 cmxfZGV0YWNoX2Fpb19jb250ZXh0KEJsb2NrRHJpdmVyU3RhdGUgKmJzKQpkaWZmIC0tZ2l0IGEv YmxvY2svZmlsZS1wb3NpeC5jIGIvYmxvY2svZmlsZS1wb3NpeC5jCmluZGV4IDUzNzBiYTAuLjk0 MzFhZDEgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2ZpbGUtcG9zaXguYworKysgYi9ibG9jay9maWxlLXBv c2l4LmMKQEAgLTM3Nyw3ICszNzcsNyBAQCBzdGF0aWMgdm9pZCByYXdfcGFyc2VfZmlsZW5hbWUo Y29uc3QgY2hhciAqZmlsZW5hbWUsIFFEaWN0ICpvcHRpb25zLAogICAgICAqIGZ1bmN0aW9uIGNh bGwgY2FuIGJlIGlnbm9yZWQuICovCiAgICAgc3Ryc3RhcnQoZmlsZW5hbWUsICJmaWxlOiIsICZm aWxlbmFtZSk7CgotICAgIHFkaWN0X3B1dChvcHRpb25zLCAiZmlsZW5hbWUiLCBxc3RyaW5nX2Zy b21fc3RyKGZpbGVuYW1lKSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZmlsZW5hbWUi LCBmaWxlbmFtZSk7CiB9Cgogc3RhdGljIFFlbXVPcHRzTGlzdCByYXdfcnVudGltZV9vcHRzID0g ewpAQCAtMjE1MCw3ICsyMTUwLDcgQEAgc3RhdGljIHZvaWQgaGRldl9wYXJzZV9maWxlbmFtZShj b25zdCBjaGFyICpmaWxlbmFtZSwgUURpY3QgKm9wdGlvbnMsCiAgICAgLyogVGhlIHByZWZpeCBp cyBvcHRpb25hbCwganVzdCBhcyBmb3IgImZpbGUiLiAqLwogICAgIHN0cnN0YXJ0KGZpbGVuYW1l LCAiaG9zdF9kZXZpY2U6IiwgJmZpbGVuYW1lKTsKCi0gICAgcWRpY3RfcHV0KG9wdGlvbnMsICJm aWxlbmFtZSIsIHFzdHJpbmdfZnJvbV9zdHIoZmlsZW5hbWUpKTsKKyAgICBxZGljdF9wdXRfc3Ry KG9wdGlvbnMsICJmaWxlbmFtZSIsIGZpbGVuYW1lKTsKIH0KCiBzdGF0aWMgYm9vbCBoZGV2X2lz X3NnKEJsb2NrRHJpdmVyU3RhdGUgKmJzKQpAQCAtMjIzOSw3ICsyMjM5LDcgQEAgc3RhdGljIGlu dCBoZGV2X29wZW4oQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIFFEaWN0ICpvcHRpb25zLCBpbnQgZmxh Z3MsCiAgICAgICAgICAgICBnb3RvIGhkZXZfb3Blbl9NYWNfZXJyb3I7CiAgICAgICAgIH0KCi0g ICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAiZmlsZW5hbWUiLCBxc3RyaW5nX2Zyb21fc3RyKGJz ZF9wYXRoKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgImZpbGVuYW1lIiwgYnNk X3BhdGgpOwoKIGhkZXZfb3Blbl9NYWNfZXJyb3I6CiAgICAgICAgIGdfZnJlZShtZWRpYVR5cGUp OwpAQCAtMjQ0OSw3ICsyNDQ5LDcgQEAgc3RhdGljIHZvaWQgY2Ryb21fcGFyc2VfZmlsZW5hbWUo Y29uc3QgY2hhciAqZmlsZW5hbWUsIFFEaWN0ICpvcHRpb25zLAogICAgIC8qIFRoZSBwcmVmaXgg aXMgb3B0aW9uYWwsIGp1c3QgYXMgZm9yICJmaWxlIi4gKi8KICAgICBzdHJzdGFydChmaWxlbmFt ZSwgImhvc3RfY2Ryb206IiwgJmZpbGVuYW1lKTsKCi0gICAgcWRpY3RfcHV0KG9wdGlvbnMsICJm aWxlbmFtZSIsIHFzdHJpbmdfZnJvbV9zdHIoZmlsZW5hbWUpKTsKKyAgICBxZGljdF9wdXRfc3Ry KG9wdGlvbnMsICJmaWxlbmFtZSIsIGZpbGVuYW1lKTsKIH0KICNlbmRpZgoKZGlmZiAtLWdpdCBh L2Jsb2NrL2ZpbGUtd2luMzIuYyBiL2Jsb2NrL2ZpbGUtd2luMzIuYwppbmRleCA1N2M0YTc4Li4w ZDQ1NWQxIDEwMDY0NAotLS0gYS9ibG9jay9maWxlLXdpbjMyLmMKKysrIGIvYmxvY2svZmlsZS13 aW4zMi5jCkBAIC0yODIsNyArMjgyLDcgQEAgc3RhdGljIHZvaWQgcmF3X3BhcnNlX2ZpbGVuYW1l KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucywKICAgICAgKiBmdW5jdGlvbiBj YWxsIGNhbiBiZSBpZ25vcmVkLiAqLwogICAgIHN0cnN0YXJ0KGZpbGVuYW1lLCAiZmlsZToiLCAm ZmlsZW5hbWUpOwoKLSAgICBxZGljdF9wdXQob3B0aW9ucywgImZpbGVuYW1lIiwgcXN0cmluZ19m cm9tX3N0cihmaWxlbmFtZSkpOworICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgImZpbGVuYW1l IiwgZmlsZW5hbWUpOwogfQoKIHN0YXRpYyBRZW11T3B0c0xpc3QgcmF3X3J1bnRpbWVfb3B0cyA9 IHsKQEAgLTY2OSw3ICs2NjksNyBAQCBzdGF0aWMgdm9pZCBoZGV2X3BhcnNlX2ZpbGVuYW1lKGNv bnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucywKICAgICAvKiBUaGUgcHJlZml4IGlz IG9wdGlvbmFsLCBqdXN0IGFzIGZvciAiZmlsZSIuICovCiAgICAgc3Ryc3RhcnQoZmlsZW5hbWUs ICJob3N0X2RldmljZToiLCAmZmlsZW5hbWUpOwoKLSAgICBxZGljdF9wdXQob3B0aW9ucywgImZp bGVuYW1lIiwgcXN0cmluZ19mcm9tX3N0cihmaWxlbmFtZSkpOworICAgIHFkaWN0X3B1dF9zdHIo b3B0aW9ucywgImZpbGVuYW1lIiwgZmlsZW5hbWUpOwogfQoKIHN0YXRpYyBpbnQgaGRldl9vcGVu KEJsb2NrRHJpdmVyU3RhdGUgKmJzLCBRRGljdCAqb3B0aW9ucywgaW50IGZsYWdzLApkaWZmIC0t Z2l0IGEvYmxvY2svbmJkLmMgYi9ibG9jay9uYmQuYwppbmRleCA4MTRhYjI2ZC4uYjM1NDVmNSAx MDA2NDQKLS0tIGEvYmxvY2svbmJkLmMKKysrIGIvYmxvY2svbmJkLmMKQEAgLTc5LDcgKzc5LDcg QEAgc3RhdGljIGludCBuYmRfcGFyc2VfdXJpKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAq b3B0aW9ucykKICAgICBwID0gdXJpLT5wYXRoID8gdXJpLT5wYXRoIDogIi8iOwogICAgIHAgKz0g c3Ryc3BuKHAsICIvIik7CiAgICAgaWYgKHBbMF0pIHsKLSAgICAgICAgcWRpY3RfcHV0KG9wdGlv bnMsICJleHBvcnQiLCBxc3RyaW5nX2Zyb21fc3RyKHApKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0 cihvcHRpb25zLCAiZXhwb3J0IiwgcCk7CiAgICAgfQoKICAgICBxcCA9IHF1ZXJ5X3BhcmFtc19w YXJzZSh1cmktPnF1ZXJ5KTsKQEAgLTk0LDkgKzk0LDggQEAgc3RhdGljIGludCBuYmRfcGFyc2Vf dXJpKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucykKICAgICAgICAgICAgIHJl dCA9IC1FSU5WQUw7CiAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgfQotICAgICAgICBx ZGljdF9wdXQob3B0aW9ucywgInNlcnZlci50eXBlIiwgcXN0cmluZ19mcm9tX3N0cigidW5peCIp KTsKLSAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJzZXJ2ZXIucGF0aCIsCi0gICAgICAgICAg ICAgICAgICBxc3RyaW5nX2Zyb21fc3RyKHFwLT5wWzBdLnZhbHVlKSk7CisgICAgICAgIHFkaWN0 X3B1dF9zdHIob3B0aW9ucywgInNlcnZlci50eXBlIiwgInVuaXgiKTsKKyAgICAgICAgcWRpY3Rf cHV0X3N0cihvcHRpb25zLCAic2VydmVyLnBhdGgiLCBxcC0+cFswXS52YWx1ZSk7CiAgICAgfSBl bHNlIHsKICAgICAgICAgUVN0cmluZyAqaG9zdDsKICAgICAgICAgY2hhciAqcG9ydF9zdHI7CkBA IC0xMTUsMTEgKzExNCwxMSBAQCBzdGF0aWMgaW50IG5iZF9wYXJzZV91cmkoY29uc3QgY2hhciAq ZmlsZW5hbWUsIFFEaWN0ICpvcHRpb25zKQogICAgICAgICAgICAgaG9zdCA9IHFzdHJpbmdfZnJv bV9zdHIodXJpLT5zZXJ2ZXIpOwogICAgICAgICB9CgotICAgICAgICBxZGljdF9wdXQob3B0aW9u cywgInNlcnZlci50eXBlIiwgcXN0cmluZ19mcm9tX3N0cigiaW5ldCIpKTsKKyAgICAgICAgcWRp Y3RfcHV0X3N0cihvcHRpb25zLCAic2VydmVyLnR5cGUiLCAiaW5ldCIpOwogICAgICAgICBxZGlj dF9wdXQob3B0aW9ucywgInNlcnZlci5ob3N0IiwgaG9zdCk7CgogICAgICAgICBwb3J0X3N0ciA9 IGdfc3RyZHVwX3ByaW50ZigiJWQiLCB1cmktPnBvcnQgPzogTkJEX0RFRkFVTFRfUE9SVCk7Ci0g ICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAic2VydmVyLnBvcnQiLCBxc3RyaW5nX2Zyb21fc3Ry KHBvcnRfc3RyKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgInNlcnZlci5wb3J0 IiwgcG9ydF9zdHIpOwogICAgICAgICBnX2ZyZWUocG9ydF9zdHIpOwogICAgIH0KCkBAIC0xODEs NyArMTgwLDcgQEAgc3RhdGljIHZvaWQgbmJkX3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZp bGVuYW1lLCBRRGljdCAqb3B0aW9ucywKICAgICAgICAgZXhwb3J0X25hbWVbMF0gPSAwOyAvKiB0 cnVuY2F0ZSAnZmlsZScgKi8KICAgICAgICAgZXhwb3J0X25hbWUgKz0gc3RybGVuKEVOX09QVFNU Uik7CgotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgImV4cG9ydCIsIHFzdHJpbmdfZnJvbV9z dHIoZXhwb3J0X25hbWUpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZXhwb3J0 IiwgZXhwb3J0X25hbWUpOwogICAgIH0KCiAgICAgLyogZXh0cmFjdCB0aGUgaG9zdF9zcGVjIC0g ZmFpbCBpZiBpdCdzIG5vdCBuYmQ6Li4uICovCkBAIC0xOTYsOCArMTk1LDggQEAgc3RhdGljIHZv aWQgbmJkX3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9u cywKCiAgICAgLyogYXJlIHdlIGEgVU5JWCBvciBUQ1Agc29ja2V0PyAqLwogICAgIGlmIChzdHJz dGFydChob3N0X3NwZWMsICJ1bml4OiIsICZ1bml4cGF0aCkpIHsKLSAgICAgICAgcWRpY3RfcHV0 KG9wdGlvbnMsICJzZXJ2ZXIudHlwZSIsIHFzdHJpbmdfZnJvbV9zdHIoInVuaXgiKSk7Ci0gICAg ICAgIHFkaWN0X3B1dChvcHRpb25zLCAic2VydmVyLnBhdGgiLCBxc3RyaW5nX2Zyb21fc3RyKHVu aXhwYXRoKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgInNlcnZlci50eXBlIiwg InVuaXgiKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAic2VydmVyLnBhdGgiLCB1 bml4cGF0aCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgSW5ldFNvY2tldEFkZHJlc3MgKmFkZHIg PSBOVUxMOwoKQEAgLTIwNiw5ICsyMDUsOSBAQCBzdGF0aWMgdm9pZCBuYmRfcGFyc2VfZmlsZW5h bWUoY29uc3QgY2hhciAqZmlsZW5hbWUsIFFEaWN0ICpvcHRpb25zLAogICAgICAgICAgICAgZ290 byBvdXQ7CiAgICAgICAgIH0KCi0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAic2VydmVyLnR5 cGUiLCBxc3RyaW5nX2Zyb21fc3RyKCJpbmV0IikpOwotICAgICAgICBxZGljdF9wdXQob3B0aW9u cywgInNlcnZlci5ob3N0IiwgcXN0cmluZ19mcm9tX3N0cihhZGRyLT5ob3N0KSk7Ci0gICAgICAg IHFkaWN0X3B1dChvcHRpb25zLCAic2VydmVyLnBvcnQiLCBxc3RyaW5nX2Zyb21fc3RyKGFkZHIt PnBvcnQpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAic2VydmVyLnR5cGUiLCAi aW5ldCIpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJzZXJ2ZXIuaG9zdCIsIGFk ZHItPmhvc3QpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJzZXJ2ZXIucG9ydCIs IGFkZHItPnBvcnQpOwogICAgICAgICBxYXBpX2ZyZWVfSW5ldFNvY2tldEFkZHJlc3MoYWRkcik7 CiAgICAgfQoKQEAgLTI0NywxMyArMjQ2LDEzIEBAIHN0YXRpYyBib29sIG5iZF9wcm9jZXNzX2xl Z2FjeV9zb2NrZXRfb3B0aW9ucyhRRGljdCAqb3V0cHV0X29wdGlvbnMsCiAgICAgICAgICAgICBy ZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KCi0gICAgICAgIHFkaWN0X3B1dChvdXRwdXRfb3B0aW9u cywgInNlcnZlci50eXBlIiwgcXN0cmluZ19mcm9tX3N0cigidW5peCIpKTsKLSAgICAgICAgcWRp Y3RfcHV0KG91dHB1dF9vcHRpb25zLCAic2VydmVyLnBhdGgiLCBxc3RyaW5nX2Zyb21fc3RyKHBh dGgpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvdXRwdXRfb3B0aW9ucywgInNlcnZlci50eXBl IiwgInVuaXgiKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvdXRwdXRfb3B0aW9ucywgInNlcnZl ci5wYXRoIiwgcGF0aCk7CiAgICAgfSBlbHNlIGlmIChob3N0KSB7Ci0gICAgICAgIHFkaWN0X3B1 dChvdXRwdXRfb3B0aW9ucywgInNlcnZlci50eXBlIiwgcXN0cmluZ19mcm9tX3N0cigiaW5ldCIp KTsKLSAgICAgICAgcWRpY3RfcHV0KG91dHB1dF9vcHRpb25zLCAic2VydmVyLmhvc3QiLCBxc3Ry aW5nX2Zyb21fc3RyKGhvc3QpKTsKLSAgICAgICAgcWRpY3RfcHV0KG91dHB1dF9vcHRpb25zLCAi c2VydmVyLnBvcnQiLAotICAgICAgICAgICAgICAgICAgcXN0cmluZ19mcm9tX3N0cihwb3J0ID86 IHN0cmluZ2lmeShOQkRfREVGQVVMVF9QT1JUKSkpOworICAgICAgICBxZGljdF9wdXRfc3RyKG91 dHB1dF9vcHRpb25zLCAic2VydmVyLnR5cGUiLCAiaW5ldCIpOworICAgICAgICBxZGljdF9wdXRf c3RyKG91dHB1dF9vcHRpb25zLCAic2VydmVyLmhvc3QiLCBob3N0KTsKKyAgICAgICAgcWRpY3Rf cHV0X3N0cihvdXRwdXRfb3B0aW9ucywgInNlcnZlci5wb3J0IiwKKyAgICAgICAgICAgICAgICAg ICAgICBwb3J0ID86IHN0cmluZ2lmeShOQkRfREVGQVVMVF9QT1JUKSk7CiAgICAgfQoKICAgICBy ZXR1cm4gdHJ1ZTsKQEAgLTUyOCw3ICs1MjcsNyBAQCBzdGF0aWMgdm9pZCBuYmRfcmVmcmVzaF9m aWxlbmFtZShCbG9ja0RyaXZlclN0YXRlICpicywgUURpY3QgKm9wdGlvbnMpCiAgICAgICAgIHBh dGggPSBzLT5zYWRkci0+dS5xX3VuaXgucGF0aDsKICAgICB9IC8qIGVsc2UgY2FuJ3QgcmVwcmVz ZW50IGFzIHBzZXVkby1maWxlbmFtZSAqLwoKLSAgICBxZGljdF9wdXQob3B0cywgImRyaXZlciIs IHFzdHJpbmdfZnJvbV9zdHIoIm5iZCIpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdHMsICJkcml2 ZXIiLCAibmJkIik7CgogICAgIGlmIChwYXRoICYmIHMtPmV4cG9ydCkgewogICAgICAgICBzbnBy aW50Zihicy0+ZXhhY3RfZmlsZW5hbWUsIHNpemVvZihicy0+ZXhhY3RfZmlsZW5hbWUpLApAQCAt NTUxLDEwICs1NTAsMTAgQEAgc3RhdGljIHZvaWQgbmJkX3JlZnJlc2hfZmlsZW5hbWUoQmxvY2tE cml2ZXJTdGF0ZSAqYnMsIFFEaWN0ICpvcHRpb25zKQogICAgIHFkaWN0X3B1dF9vYmoob3B0cywg InNlcnZlciIsIHNhZGRyX3FkaWN0KTsKCiAgICAgaWYgKHMtPmV4cG9ydCkgewotICAgICAgICBx ZGljdF9wdXQob3B0cywgImV4cG9ydCIsIHFzdHJpbmdfZnJvbV9zdHIocy0+ZXhwb3J0KSk7Cisg ICAgICAgIHFkaWN0X3B1dF9zdHIob3B0cywgImV4cG9ydCIsIHMtPmV4cG9ydCk7CiAgICAgfQog ICAgIGlmIChzLT50bHNjcmVkc2lkKSB7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRzLCAidGxzLWNy ZWRzIiwgcXN0cmluZ19mcm9tX3N0cihzLT50bHNjcmVkc2lkKSk7CisgICAgICAgIHFkaWN0X3B1 dF9zdHIob3B0cywgInRscy1jcmVkcyIsIHMtPnRsc2NyZWRzaWQpOwogICAgIH0KCiAgICAgcWRp Y3RfZmxhdHRlbihvcHRzKTsKZGlmZiAtLWdpdCBhL2Jsb2NrL25mcy5jIGIvYmxvY2svbmZzLmMK aW5kZXggNjU0MWRlYy4uMTlkMGVmMCAxMDA2NDQKLS0tIGEvYmxvY2svbmZzLmMKKysrIGIvYmxv Y2svbmZzLmMKQEAgLTEwNCw5ICsxMDQsOSBAQCBzdGF0aWMgaW50IG5mc19wYXJzZV91cmkoY29u c3QgY2hhciAqZmlsZW5hbWUsIFFEaWN0ICpvcHRpb25zLCBFcnJvciAqKmVycnApCiAgICAgICAg IGdvdG8gb3V0OwogICAgIH0KCi0gICAgcWRpY3RfcHV0KG9wdGlvbnMsICJzZXJ2ZXIuaG9zdCIs IHFzdHJpbmdfZnJvbV9zdHIodXJpLT5zZXJ2ZXIpKTsKLSAgICBxZGljdF9wdXQob3B0aW9ucywg InNlcnZlci50eXBlIiwgcXN0cmluZ19mcm9tX3N0cigiaW5ldCIpKTsKLSAgICBxZGljdF9wdXQo b3B0aW9ucywgInBhdGgiLCBxc3RyaW5nX2Zyb21fc3RyKHVyaS0+cGF0aCkpOworICAgIHFkaWN0 X3B1dF9zdHIob3B0aW9ucywgInNlcnZlci5ob3N0IiwgdXJpLT5zZXJ2ZXIpOworICAgIHFkaWN0 X3B1dF9zdHIob3B0aW9ucywgInNlcnZlci50eXBlIiwgImluZXQiKTsKKyAgICBxZGljdF9wdXRf c3RyKG9wdGlvbnMsICJwYXRoIiwgdXJpLT5wYXRoKTsKCiAgICAgZm9yIChpID0gMDsgaSA8IHFw LT5uOyBpKyspIHsKICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHZhbDsKQEAgLTEyMSwyMyAr MTIxLDE3IEBAIHN0YXRpYyBpbnQgbmZzX3BhcnNlX3VyaShjb25zdCBjaGFyICpmaWxlbmFtZSwg UURpY3QgKm9wdGlvbnMsIEVycm9yICoqZXJycCkKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAg ICAgICB9CiAgICAgICAgIGlmICghc3RyY21wKHFwLT5wW2ldLm5hbWUsICJ1aWQiKSkgewotICAg ICAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJ1c2VyIiwKLSAgICAgICAgICAgICAgICAgICAg ICBxc3RyaW5nX2Zyb21fc3RyKHFwLT5wW2ldLnZhbHVlKSk7CisgICAgICAgICAgICBxZGljdF9w dXRfc3RyKG9wdGlvbnMsICJ1c2VyIiwgcXAtPnBbaV0udmFsdWUpOwogICAgICAgICB9IGVsc2Ug aWYgKCFzdHJjbXAocXAtPnBbaV0ubmFtZSwgImdpZCIpKSB7Ci0gICAgICAgICAgICBxZGljdF9w dXQob3B0aW9ucywgImdyb3VwIiwKLSAgICAgICAgICAgICAgICAgICAgICBxc3RyaW5nX2Zyb21f c3RyKHFwLT5wW2ldLnZhbHVlKSk7CisgICAgICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMs ICJncm91cCIsIHFwLT5wW2ldLnZhbHVlKTsKICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKHFw LT5wW2ldLm5hbWUsICJ0Y3Atc3luY250IikpIHsKLSAgICAgICAgICAgIHFkaWN0X3B1dChvcHRp b25zLCAidGNwLXN5bi1jb3VudCIsCi0gICAgICAgICAgICAgICAgICAgICAgcXN0cmluZ19mcm9t X3N0cihxcC0+cFtpXS52YWx1ZSkpOworICAgICAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25z LCAidGNwLXN5bi1jb3VudCIsIHFwLT5wW2ldLnZhbHVlKTsKICAgICAgICAgfSBlbHNlIGlmICgh c3RyY21wKHFwLT5wW2ldLm5hbWUsICJyZWFkYWhlYWQiKSkgewotICAgICAgICAgICAgcWRpY3Rf cHV0KG9wdGlvbnMsICJyZWFkYWhlYWQtc2l6ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgcXN0 cmluZ19mcm9tX3N0cihxcC0+cFtpXS52YWx1ZSkpOworICAgICAgICAgICAgcWRpY3RfcHV0X3N0 cihvcHRpb25zLCAicmVhZGFoZWFkLXNpemUiLCBxcC0+cFtpXS52YWx1ZSk7CiAgICAgICAgIH0g ZWxzZSBpZiAoIXN0cmNtcChxcC0+cFtpXS5uYW1lLCAicGFnZWNhY2hlIikpIHsKLSAgICAgICAg ICAgIHFkaWN0X3B1dChvcHRpb25zLCAicGFnZS1jYWNoZS1zaXplIiwKLSAgICAgICAgICAgICAg ICAgICAgICBxc3RyaW5nX2Zyb21fc3RyKHFwLT5wW2ldLnZhbHVlKSk7CisgICAgICAgICAgICBx ZGljdF9wdXRfc3RyKG9wdGlvbnMsICJwYWdlLWNhY2hlLXNpemUiLCBxcC0+cFtpXS52YWx1ZSk7 CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChxcC0+cFtpXS5uYW1lLCAiZGVidWciKSkgewot ICAgICAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJkZWJ1ZyIsCi0gICAgICAgICAgICAgICAg ICAgICAgcXN0cmluZ19mcm9tX3N0cihxcC0+cFtpXS52YWx1ZSkpOworICAgICAgICAgICAgcWRp Y3RfcHV0X3N0cihvcHRpb25zLCAiZGVidWciLCBxcC0+cFtpXS52YWx1ZSk7CiAgICAgICAgIH0g ZWxzZSB7CiAgICAgICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJVbmtub3duIE5GUyBwYXJhbWV0 ZXIgbmFtZTogJXMiLAogICAgICAgICAgICAgICAgICAgICAgICBxcC0+cFtpXS5uYW1lKTsKQEAg LTgxMSw3ICs4MDUsNyBAQCBzdGF0aWMgdm9pZCBuZnNfcmVmcmVzaF9maWxlbmFtZShCbG9ja0Ry aXZlclN0YXRlICpicywgUURpY3QgKm9wdGlvbnMpCiAgICAgUU9iamVjdCAqc2VydmVyX3FkaWN0 OwogICAgIFZpc2l0b3IgKm92OwoKLSAgICBxZGljdF9wdXQob3B0cywgImRyaXZlciIsIHFzdHJp bmdfZnJvbV9zdHIoIm5mcyIpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdHMsICJkcml2ZXIiLCAi bmZzIik7CgogICAgIGlmIChjbGllbnQtPnVpZCAmJiAhY2xpZW50LT5naWQpIHsKICAgICAgICAg c25wcmludGYoYnMtPmV4YWN0X2ZpbGVuYW1lLCBzaXplb2YoYnMtPmV4YWN0X2ZpbGVuYW1lKSwK QEAgLTgzNCwyOCArODI4LDI1IEBAIHN0YXRpYyB2b2lkIG5mc19yZWZyZXNoX2ZpbGVuYW1lKEJs b2NrRHJpdmVyU3RhdGUgKmJzLCBRRGljdCAqb3B0aW9ucykKICAgICB2aXNpdF90eXBlX05GU1Nl cnZlcihvdiwgTlVMTCwgJmNsaWVudC0+c2VydmVyLCAmZXJyb3JfYWJvcnQpOwogICAgIHZpc2l0 X2NvbXBsZXRlKG92LCAmc2VydmVyX3FkaWN0KTsKICAgICBxZGljdF9wdXRfb2JqKG9wdHMsICJz ZXJ2ZXIiLCBzZXJ2ZXJfcWRpY3QpOwotICAgIHFkaWN0X3B1dChvcHRzLCAicGF0aCIsIHFzdHJp bmdfZnJvbV9zdHIoY2xpZW50LT5wYXRoKSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRzLCAicGF0 aCIsIGNsaWVudC0+cGF0aCk7CgogICAgIGlmIChjbGllbnQtPnVpZCkgewotICAgICAgICBxZGlj dF9wdXQob3B0cywgInVzZXIiLCBxaW50X2Zyb21faW50KGNsaWVudC0+dWlkKSk7CisgICAgICAg IHFkaWN0X3B1dF9pbnQob3B0cywgInVzZXIiLCBjbGllbnQtPnVpZCk7CiAgICAgfQogICAgIGlm IChjbGllbnQtPmdpZCkgewotICAgICAgICBxZGljdF9wdXQob3B0cywgImdyb3VwIiwgcWludF9m cm9tX2ludChjbGllbnQtPmdpZCkpOworICAgICAgICBxZGljdF9wdXRfaW50KG9wdHMsICJncm91 cCIsIGNsaWVudC0+Z2lkKTsKICAgICB9CiAgICAgaWYgKGNsaWVudC0+dGNwX3N5bmNudCkgewot ICAgICAgICBxZGljdF9wdXQob3B0cywgInRjcC1zeW4tY250IiwKLSAgICAgICAgICAgICAgICAg IHFpbnRfZnJvbV9pbnQoY2xpZW50LT50Y3Bfc3luY250KSk7CisgICAgICAgIHFkaWN0X3B1dF9p bnQob3B0cywgInRjcC1zeW4tY250IiwgY2xpZW50LT50Y3Bfc3luY250KTsKICAgICB9CiAgICAg aWYgKGNsaWVudC0+cmVhZGFoZWFkKSB7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRzLCAicmVhZGFo ZWFkLXNpemUiLAotICAgICAgICAgICAgICAgICAgcWludF9mcm9tX2ludChjbGllbnQtPnJlYWRh aGVhZCkpOworICAgICAgICBxZGljdF9wdXRfaW50KG9wdHMsICJyZWFkYWhlYWQtc2l6ZSIsIGNs aWVudC0+cmVhZGFoZWFkKTsKICAgICB9CiAgICAgaWYgKGNsaWVudC0+cGFnZWNhY2hlKSB7Ci0g ICAgICAgIHFkaWN0X3B1dChvcHRzLCAicGFnZS1jYWNoZS1zaXplIiwKLSAgICAgICAgICAgICAg ICAgIHFpbnRfZnJvbV9pbnQoY2xpZW50LT5wYWdlY2FjaGUpKTsKKyAgICAgICAgcWRpY3RfcHV0 X2ludChvcHRzLCAicGFnZS1jYWNoZS1zaXplIiwgY2xpZW50LT5wYWdlY2FjaGUpOwogICAgIH0K ICAgICBpZiAoY2xpZW50LT5kZWJ1ZykgewotICAgICAgICBxZGljdF9wdXQob3B0cywgImRlYnVn IiwgcWludF9mcm9tX2ludChjbGllbnQtPmRlYnVnKSk7CisgICAgICAgIHFkaWN0X3B1dF9pbnQo b3B0cywgImRlYnVnIiwgY2xpZW50LT5kZWJ1Zyk7CiAgICAgfQoKICAgICB2aXNpdF9mcmVlKG92 KTsKZGlmZiAtLWdpdCBhL2Jsb2NrL251bGwuYyBiL2Jsb2NrL251bGwuYwppbmRleCBiMzAwMzkw Li44NzZmOTA5IDEwMDY0NAotLS0gYS9ibG9jay9udWxsLmMKKysrIGIvYmxvY2svbnVsbC5jCkBA IC0yMzIsNyArMjMyLDcgQEAgc3RhdGljIHZvaWQgbnVsbF9yZWZyZXNoX2ZpbGVuYW1lKEJsb2Nr RHJpdmVyU3RhdGUgKmJzLCBRRGljdCAqb3B0cykKICAgICAgICAgICAgICAgICAgYnMtPmRydi0+ Zm9ybWF0X25hbWUpOwogICAgIH0KCi0gICAgcWRpY3RfcHV0KG9wdHMsICJkcml2ZXIiLCBxc3Ry aW5nX2Zyb21fc3RyKGJzLT5kcnYtPmZvcm1hdF9uYW1lKSk7CisgICAgcWRpY3RfcHV0X3N0cihv cHRzLCAiZHJpdmVyIiwgYnMtPmRydi0+Zm9ybWF0X25hbWUpOwogICAgIGJzLT5mdWxsX29wZW5f b3B0aW9ucyA9IG9wdHM7CiB9CgpkaWZmIC0tZ2l0IGEvYmxvY2svcWNvdzIuYyBiL2Jsb2NrL3Fj b3cyLmMKaW5kZXggNmE5MmQyZS4uNDljNzM3ZiAxMDA2NDQKLS0tIGEvYmxvY2svcWNvdzIuYwor KysgYi9ibG9jay9xY293Mi5jCkBAIC0yMjY1LDcgKzIyNjUsNyBAQCBzdGF0aWMgaW50IHFjb3cy X2NyZWF0ZTIoY29uc3QgY2hhciAqZmlsZW5hbWUsIGludDY0X3QgdG90YWxfc2l6ZSwKICAgICAg KiB0YWJsZSkKICAgICAgKi8KICAgICBvcHRpb25zID0gcWRpY3RfbmV3KCk7Ci0gICAgcWRpY3Rf cHV0KG9wdGlvbnMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKCJxY293MiIpKTsKKyAgICBx ZGljdF9wdXRfc3RyKG9wdGlvbnMsICJkcml2ZXIiLCAicWNvdzIiKTsKICAgICBibGsgPSBibGtf bmV3X29wZW4oZmlsZW5hbWUsIE5VTEwsIG9wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAg IEJEUlZfT19SRFdSIHwgQkRSVl9PX1JFU0laRSB8IEJEUlZfT19OT19GTFVTSCwKICAgICAgICAg ICAgICAgICAgICAgICAgJmxvY2FsX2Vycik7CkBAIC0yMzI3LDcgKzIzMjcsNyBAQCBzdGF0aWMg aW50IHFjb3cyX2NyZWF0ZTIoY29uc3QgY2hhciAqZmlsZW5hbWUsIGludDY0X3QgdG90YWxfc2l6 ZSwKCiAgICAgLyogUmVvcGVuIHRoZSBpbWFnZSB3aXRob3V0IEJEUlZfT19OT19GTFVTSCB0byBm bHVzaCBpdCBiZWZvcmUgcmV0dXJuaW5nICovCiAgICAgb3B0aW9ucyA9IHFkaWN0X25ldygpOwot ICAgIHFkaWN0X3B1dChvcHRpb25zLCAiZHJpdmVyIiwgcXN0cmluZ19mcm9tX3N0cigicWNvdzIi KSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZHJpdmVyIiwgInFjb3cyIik7CiAgICAg YmxrID0gYmxrX25ld19vcGVuKGZpbGVuYW1lLCBOVUxMLCBvcHRpb25zLAogICAgICAgICAgICAg ICAgICAgICAgICBCRFJWX09fUkRXUiB8IEJEUlZfT19OT19CQUNLSU5HLCAmbG9jYWxfZXJyKTsK ICAgICBpZiAoYmxrID09IE5VTEwpIHsKZGlmZiAtLWdpdCBhL2Jsb2NrL3F1b3J1bS5jIGIvYmxv Y2svcXVvcnVtLmMKaW5kZXggZjc5NDllMi4uMWIyYThjMyAxMDA2NDQKLS0tIGEvYmxvY2svcXVv cnVtLmMKKysrIGIvYmxvY2svcXVvcnVtLmMKQEAgLTExMDAsMTAgKzExMDAsMTAgQEAgc3RhdGlj IHZvaWQgcXVvcnVtX3JlZnJlc2hfZmlsZW5hbWUoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIFFEaWN0 ICpvcHRpb25zKQogICAgIH0KCiAgICAgb3B0cyA9IHFkaWN0X25ldygpOwotICAgIHFkaWN0X3B1 dChvcHRzLCAiZHJpdmVyIiwgcXN0cmluZ19mcm9tX3N0cigicXVvcnVtIikpOwotICAgIHFkaWN0 X3B1dChvcHRzLCBRVU9SVU1fT1BUX1ZPVEVfVEhSRVNIT0xELCBxaW50X2Zyb21faW50KHMtPnRo cmVzaG9sZCkpOwotICAgIHFkaWN0X3B1dChvcHRzLCBRVU9SVU1fT1BUX0JMS1ZFUklGWSwgcWJv b2xfZnJvbV9ib29sKHMtPmlzX2Jsa3ZlcmlmeSkpOwotICAgIHFkaWN0X3B1dChvcHRzLCBRVU9S VU1fT1BUX1JFV1JJVEUsIHFib29sX2Zyb21fYm9vbChzLT5yZXdyaXRlX2NvcnJ1cHRlZCkpOwor ICAgIHFkaWN0X3B1dF9zdHIob3B0cywgImRyaXZlciIsICJxdW9ydW0iKTsKKyAgICBxZGljdF9w dXRfaW50KG9wdHMsIFFVT1JVTV9PUFRfVk9URV9USFJFU0hPTEQsIHMtPnRocmVzaG9sZCk7Cisg ICAgcWRpY3RfcHV0X2Jvb2wob3B0cywgUVVPUlVNX09QVF9CTEtWRVJJRlksIHMtPmlzX2Jsa3Zl cmlmeSk7CisgICAgcWRpY3RfcHV0X2Jvb2wob3B0cywgUVVPUlVNX09QVF9SRVdSSVRFLCBzLT5y ZXdyaXRlX2NvcnJ1cHRlZCk7CiAgICAgcWRpY3RfcHV0KG9wdHMsICJjaGlsZHJlbiIsIGNoaWxk cmVuKTsKCiAgICAgYnMtPmZ1bGxfb3Blbl9vcHRpb25zID0gb3B0czsKZGlmZiAtLWdpdCBhL2Js b2NrL3JiZC5jIGIvYmxvY2svcmJkLmMKaW5kZXggNjQ3MWY0Zi4uYjk0NDNkNCAxMDA2NDQKLS0t IGEvYmxvY2svcmJkLmMKKysrIGIvYmxvY2svcmJkLmMKQEAgLTE1NCwyMCArMTU0LDIwIEBAIHN0 YXRpYyB2b2lkIHFlbXVfcmJkX3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBR RGljdCAqb3B0aW9ucywKICAgICAgICAgZ290byBkb25lOwogICAgIH0KICAgICBxZW11X3JiZF91 bmVzY2FwZShmb3VuZF9zdHIpOwotICAgIHFkaWN0X3B1dChvcHRpb25zLCAicG9vbCIsIHFzdHJp bmdfZnJvbV9zdHIoZm91bmRfc3RyKSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAicG9v bCIsIGZvdW5kX3N0cik7CgogICAgIGlmIChzdHJjaHIocCwgJ0AnKSkgewogICAgICAgICBmb3Vu ZF9zdHIgPSBxZW11X3JiZF9uZXh0X3RvayhwLCAnQCcsICZwKTsKICAgICAgICAgcWVtdV9yYmRf dW5lc2NhcGUoZm91bmRfc3RyKTsKLSAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJpbWFnZSIs IHFzdHJpbmdfZnJvbV9zdHIoZm91bmRfc3RyKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0 aW9ucywgImltYWdlIiwgZm91bmRfc3RyKTsKCiAgICAgICAgIGZvdW5kX3N0ciA9IHFlbXVfcmJk X25leHRfdG9rKHAsICc6JywgJnApOwogICAgICAgICBxZW11X3JiZF91bmVzY2FwZShmb3VuZF9z dHIpOwotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgInNuYXBzaG90IiwgcXN0cmluZ19mcm9t X3N0cihmb3VuZF9zdHIpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAic25hcHNo b3QiLCBmb3VuZF9zdHIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGZvdW5kX3N0ciA9IHFlbXVf cmJkX25leHRfdG9rKHAsICc6JywgJnApOwogICAgICAgICBxZW11X3JiZF91bmVzY2FwZShmb3Vu ZF9zdHIpOwotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgImltYWdlIiwgcXN0cmluZ19mcm9t X3N0cihmb3VuZF9zdHIpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiaW1hZ2Ui LCBmb3VuZF9zdHIpOwogICAgIH0KICAgICBpZiAoIXApIHsKICAgICAgICAgZ290byBkb25lOwpA QCAtMTg5LDkgKzE4OSw5IEBAIHN0YXRpYyB2b2lkIHFlbXVfcmJkX3BhcnNlX2ZpbGVuYW1lKGNv bnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucywKICAgICAgICAgcWVtdV9yYmRfdW5l c2NhcGUodmFsdWUpOwoKICAgICAgICAgaWYgKCFzdHJjbXAobmFtZSwgImNvbmYiKSkgewotICAg ICAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJjb25mIiwgcXN0cmluZ19mcm9tX3N0cih2YWx1 ZSkpOworICAgICAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiY29uZiIsIHZhbHVlKTsK ICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKG5hbWUsICJpZCIpKSB7Ci0gICAgICAgICAgICBx ZGljdF9wdXQob3B0aW9ucywgInVzZXIiICwgcXN0cmluZ19mcm9tX3N0cih2YWx1ZSkpOworICAg ICAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAidXNlciIsIHZhbHVlKTsKICAgICAgICAg fSBlbHNlIHsKICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgKiBXZSBwYXNzIHRoZXNlIGlu dGVybmFsbHkgdG8gcWVtdV9yYmRfc2V0X2tleXBhaXJzKCksIHNvCkBAIC0yMDQsOCArMjA0LDgg QEAgc3RhdGljIHZvaWQgcWVtdV9yYmRfcGFyc2VfZmlsZW5hbWUoY29uc3QgY2hhciAqZmlsZW5h bWUsIFFEaWN0ICpvcHRpb25zLAogICAgICAgICAgICAgaWYgKCFrZXlwYWlycykgewogICAgICAg ICAgICAgICAgIGtleXBhaXJzID0gcWxpc3RfbmV3KCk7CiAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICBxbGlzdF9hcHBlbmQoa2V5cGFpcnMsIHFzdHJpbmdfZnJvbV9zdHIobmFtZSkpOwotICAg ICAgICAgICAgcWxpc3RfYXBwZW5kKGtleXBhaXJzLCBxc3RyaW5nX2Zyb21fc3RyKHZhbHVlKSk7 CisgICAgICAgICAgICBxbGlzdF9hcHBlbmRfc3RyKGtleXBhaXJzLCBuYW1lKTsKKyAgICAgICAg ICAgIHFsaXN0X2FwcGVuZF9zdHIoa2V5cGFpcnMsIHZhbHVlKTsKICAgICAgICAgfQogICAgIH0K CmRpZmYgLS1naXQgYS9ibG9jay9zbmFwc2hvdC5jIGIvYmxvY2svc25hcHNob3QuYwppbmRleCAw NmIxMTg1Li5hNDY1NjRlIDEwMDY0NAotLS0gYS9ibG9jay9zbmFwc2hvdC5jCisrKyBiL2Jsb2Nr L3NuYXBzaG90LmMKQEAgLTIwMCw3ICsyMDAsNyBAQCBpbnQgYmRydl9zbmFwc2hvdF9nb3RvKEJs b2NrRHJpdmVyU3RhdGUgKmJzLAoKICAgICAgICAgcWRpY3RfZXh0cmFjdF9zdWJxZGljdChvcHRp b25zLCAmZmlsZV9vcHRpb25zLCAiZmlsZS4iKTsKICAgICAgICAgUURFQ1JFRihmaWxlX29wdGlv bnMpOwotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgImZpbGUiLCBxc3RyaW5nX2Zyb21fc3Ry KGJkcnZfZ2V0X25vZGVfbmFtZShmaWxlKSkpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlv bnMsICJmaWxlIiwgYmRydl9nZXRfbm9kZV9uYW1lKGZpbGUpKTsKCiAgICAgICAgIGRydi0+YmRy dl9jbG9zZShicyk7CiAgICAgICAgIGJkcnZfdW5yZWZfY2hpbGQoYnMsIGJzLT5maWxlKTsKZGlm ZiAtLWdpdCBhL2Jsb2NrL3NzaC5jIGIvYmxvY2svc3NoLmMKaW5kZXggZGYwOWY2Yy4uMTEyMDNm YyAxMDA2NDQKLS0tIGEvYmxvY2svc3NoLmMKKysrIGIvYmxvY2svc3NoLmMKQEAgLTIyNywyNCAr MjI3LDIzIEBAIHN0YXRpYyBpbnQgcGFyc2VfdXJpKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGlj dCAqb3B0aW9ucywgRXJyb3IgKiplcnJwKQogICAgIH0KCiAgICAgaWYodXJpLT51c2VyICYmIHN0 cmNtcCh1cmktPnVzZXIsICIiKSAhPSAwKSB7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAi dXNlciIsIHFzdHJpbmdfZnJvbV9zdHIodXJpLT51c2VyKSk7CisgICAgICAgIHFkaWN0X3B1dF9z dHIob3B0aW9ucywgInVzZXIiLCB1cmktPnVzZXIpOwogICAgIH0KCi0gICAgcWRpY3RfcHV0KG9w dGlvbnMsICJzZXJ2ZXIuaG9zdCIsIHFzdHJpbmdfZnJvbV9zdHIodXJpLT5zZXJ2ZXIpKTsKKyAg ICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJzZXJ2ZXIuaG9zdCIsIHVyaS0+c2VydmVyKTsKCiAg ICAgcG9ydF9zdHIgPSBnX3N0cmR1cF9wcmludGYoIiVkIiwgdXJpLT5wb3J0ID86IDIyKTsKLSAg ICBxZGljdF9wdXQob3B0aW9ucywgInNlcnZlci5wb3J0IiwgcXN0cmluZ19mcm9tX3N0cihwb3J0 X3N0cikpOworICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgInNlcnZlci5wb3J0IiwgcG9ydF9z dHIpOwogICAgIGdfZnJlZShwb3J0X3N0cik7CgotICAgIHFkaWN0X3B1dChvcHRpb25zLCAicGF0 aCIsIHFzdHJpbmdfZnJvbV9zdHIodXJpLT5wYXRoKSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRp b25zLCAicGF0aCIsIHVyaS0+cGF0aCk7CgogICAgIC8qIFBpY2sgb3V0IGFueSBxdWVyeSBwYXJh bWV0ZXJzIHRoYXQgd2UgdW5kZXJzdGFuZCwgYW5kIGlnbm9yZQogICAgICAqIHRoZSByZXN0Lgog ICAgICAqLwogICAgIGZvciAoaSA9IDA7IGkgPCBxcC0+bjsgKytpKSB7CiAgICAgICAgIGlmIChz dHJjbXAocXAtPnBbaV0ubmFtZSwgImhvc3Rfa2V5X2NoZWNrIikgPT0gMCkgewotICAgICAgICAg ICAgcWRpY3RfcHV0KG9wdGlvbnMsICJob3N0X2tleV9jaGVjayIsCi0gICAgICAgICAgICAgICAg ICAgICAgcXN0cmluZ19mcm9tX3N0cihxcC0+cFtpXS52YWx1ZSkpOworICAgICAgICAgICAgcWRp Y3RfcHV0X3N0cihvcHRpb25zLCAiaG9zdF9rZXlfY2hlY2siLCBxcC0+cFtpXS52YWx1ZSk7CiAg ICAgICAgIH0KICAgICB9CgpAQCAtNTc0LDkgKzU3Myw4IEBAIHN0YXRpYyBib29sIHNzaF9wcm9j ZXNzX2xlZ2FjeV9zb2NrZXRfb3B0aW9ucyhRRGljdCAqb3V0cHV0X29wdHMsCiAgICAgfQoKICAg ICBpZiAoaG9zdCkgewotICAgICAgICBxZGljdF9wdXQob3V0cHV0X29wdHMsICJzZXJ2ZXIuaG9z dCIsIHFzdHJpbmdfZnJvbV9zdHIoaG9zdCkpOwotICAgICAgICBxZGljdF9wdXQob3V0cHV0X29w dHMsICJzZXJ2ZXIucG9ydCIsCi0gICAgICAgICAgICAgICAgICBxc3RyaW5nX2Zyb21fc3RyKHBv cnQgPzogc3RyaW5naWZ5KDIyKSkpOworICAgICAgICBxZGljdF9wdXRfc3RyKG91dHB1dF9vcHRz LCAic2VydmVyLmhvc3QiLCBob3N0KTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvdXRwdXRfb3B0 cywgInNlcnZlci5wb3J0IiwgcG9ydCA/OiBzdHJpbmdpZnkoMjIpKTsKICAgICB9CgogICAgIHJl dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvYmxvY2svdnZmYXQuYyBiL2Jsb2NrL3Z2ZmF0LmMKaW5k ZXggYjUwOWQ1NS4uOWM4MjM3MSAxMDA2NDQKLS0tIGEvYmxvY2svdnZmYXQuYworKysgYi9ibG9j ay92dmZhdC5jCkBAIC0xMDU3LDEwICsxMDU3LDEwIEBAIHN0YXRpYyB2b2lkIHZ2ZmF0X3BhcnNl X2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucywKICAgICB9Cgog ICAgIC8qIEZpbGwgaW4gdGhlIG9wdGlvbnMgUURpY3QgKi8KLSAgICBxZGljdF9wdXQob3B0aW9u cywgImRpciIsIHFzdHJpbmdfZnJvbV9zdHIoZmlsZW5hbWUpKTsKLSAgICBxZGljdF9wdXQob3B0 aW9ucywgImZhdC10eXBlIiwgcWludF9mcm9tX2ludChmYXRfdHlwZSkpOwotICAgIHFkaWN0X3B1 dChvcHRpb25zLCAiZmxvcHB5IiwgcWJvb2xfZnJvbV9ib29sKGZsb3BweSkpOwotICAgIHFkaWN0 X3B1dChvcHRpb25zLCAicnciLCBxYm9vbF9mcm9tX2Jvb2wocncpKTsKKyAgICBxZGljdF9wdXRf c3RyKG9wdGlvbnMsICJkaXIiLCBmaWxlbmFtZSk7CisgICAgcWRpY3RfcHV0X2ludChvcHRpb25z LCAiZmF0LXR5cGUiLCBmYXRfdHlwZSk7CisgICAgcWRpY3RfcHV0X2Jvb2wob3B0aW9ucywgImZs b3BweSIsIGZsb3BweSk7CisgICAgcWRpY3RfcHV0X2Jvb2wob3B0aW9ucywgInJ3IiwgcncpOwog fQoKIHN0YXRpYyBpbnQgdnZmYXRfb3BlbihCbG9ja0RyaXZlclN0YXRlICpicywgUURpY3QgKm9w dGlvbnMsIGludCBmbGFncywKQEAgLTMwNTEsNyArMzA1MSw3IEBAIHN0YXRpYyBpbnQgZW5hYmxl X3dyaXRlX3RhcmdldChCbG9ja0RyaXZlclN0YXRlICpicywgRXJyb3IgKiplcnJwKQogICAgIH0K CiAgICAgb3B0aW9ucyA9IHFkaWN0X25ldygpOwotICAgIHFkaWN0X3B1dChvcHRpb25zLCAid3Jp dGUtdGFyZ2V0LmRyaXZlciIsIHFzdHJpbmdfZnJvbV9zdHIoInFjb3ciKSk7CisgICAgcWRpY3Rf cHV0X3N0cihvcHRpb25zLCAid3JpdGUtdGFyZ2V0LmRyaXZlciIsICJxY293Iik7CiAgICAgcy0+ cWNvdyA9IGJkcnZfb3Blbl9jaGlsZChzLT5xY293X2ZpbGVuYW1lLCBvcHRpb25zLCAid3JpdGUt dGFyZ2V0IiwgYnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2hpbGRfdnZmYXRf cWNvdywgZmFsc2UsIGVycnApOwogICAgIFFERUNSRUYob3B0aW9ucyk7CmRpZmYgLS1naXQgYS9i bG9jay92eGhzLmMgYi9ibG9jay92eGhzLmMKaW5kZXggOWZmZTlkMy4uNzVjYzZjOCAxMDA2NDQK LS0tIGEvYmxvY2svdnhocy5jCisrKyBiL2Jsb2NrL3Z4aHMuYwpAQCAtMTgyLDE1ICsxODIsMTUg QEAgc3RhdGljIGludCB2eGhzX3BhcnNlX3VyaShjb25zdCBjaGFyICpmaWxlbmFtZSwgUURpY3Qg Km9wdGlvbnMpCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KCi0gICAgcWRpY3RfcHV0 KG9wdGlvbnMsIFZYSFNfT1BUX1NFUlZFUiIuaG9zdCIsIHFzdHJpbmdfZnJvbV9zdHIodXJpLT5z ZXJ2ZXIpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsIFZYSFNfT1BUX1NFUlZFUiAiLmhv c3QiLCB1cmktPnNlcnZlcik7CgogICAgIGlmICh1cmktPnBvcnQpIHsKICAgICAgICAgcG9ydCA9 IGdfc3RyZHVwX3ByaW50ZigiJWQiLCB1cmktPnBvcnQpOwotICAgICAgICBxZGljdF9wdXQob3B0 aW9ucywgVlhIU19PUFRfU0VSVkVSIi5wb3J0IiwgcXN0cmluZ19mcm9tX3N0cihwb3J0KSk7Cisg ICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgVlhIU19PUFRfU0VSVkVSICIucG9ydCIsIHBv cnQpOwogICAgICAgICBnX2ZyZWUocG9ydCk7CiAgICAgfQoKLSAgICBxZGljdF9wdXQob3B0aW9u cywgInZkaXNrLWlkIiwgcXN0cmluZ19mcm9tX3N0cih1cmktPnBhdGgpKTsKKyAgICBxZGljdF9w dXRfc3RyKG9wdGlvbnMsICJ2ZGlzay1pZCIsIHVyaS0+cGF0aCk7CgogICAgIHRyYWNlX3Z4aHNf cGFyc2VfdXJpX2hvc3RpbmZvKHVyaS0+c2VydmVyLCB1cmktPnBvcnQpOwogICAgIHVyaV9mcmVl KHVyaSk7CmRpZmYgLS1naXQgYS9ibG9ja2Rldi5jIGIvYmxvY2tkZXYuYwppbmRleCA2NDI4MjA2 Li5lMWYzN2EyIDEwMDY0NAotLS0gYS9ibG9ja2Rldi5jCisrKyBiL2Jsb2NrZGV2LmMKQEAgLTUy Nyw3ICs1MjcsNyBAQCBzdGF0aWMgQmxvY2tCYWNrZW5kICpibG9ja2Rldl9pbml0KGNvbnN0IGNo YXIgKmZpbGUsIFFEaWN0ICpic19vcHRzLAogICAgICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAi Q2Fubm90IHNwZWNpZnkgYm90aCAnZHJpdmVyJyBhbmQgJ2Zvcm1hdCciKTsKICAgICAgICAgICAg IGdvdG8gZWFybHlfZXJyOwogICAgICAgICB9Ci0gICAgICAgIHFkaWN0X3B1dChic19vcHRzLCAi ZHJpdmVyIiwgcXN0cmluZ19mcm9tX3N0cihidWYpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihi c19vcHRzLCAiZHJpdmVyIiwgYnVmKTsKICAgICB9CgogICAgIG9uX3dyaXRlX2Vycm9yID0gQkxP Q0tERVZfT05fRVJST1JfRU5PU1BDOwpAQCAtOTAzLDEwICs5MDMsOCBAQCBEcml2ZUluZm8gKmRy aXZlX25ldyhRZW11T3B0cyAqYWxsX29wdHMsIEJsb2NrSW50ZXJmYWNlVHlwZSBibG9ja19kZWZh dWx0X3R5cGUpCiAgICAgICAgIGNvcHlfb25fcmVhZCA9IGZhbHNlOwogICAgIH0KCi0gICAgcWRp Y3RfcHV0KGJzX29wdHMsIEJEUlZfT1BUX1JFQURfT05MWSwKLSAgICAgICAgICAgICAgcXN0cmlu Z19mcm9tX3N0cihyZWFkX29ubHkgPyAib24iIDogIm9mZiIpKTsKLSAgICBxZGljdF9wdXQoYnNf b3B0cywgImNvcHktb24tcmVhZCIsCi0gICAgICAgICAgICAgIHFzdHJpbmdfZnJvbV9zdHIoY29w eV9vbl9yZWFkID8gIm9uIiA6Im9mZiIpKTsKKyAgICBxZGljdF9wdXRfc3RyKGJzX29wdHMsIEJE UlZfT1BUX1JFQURfT05MWSwgcmVhZF9vbmx5ID8gIm9uIiA6ICJvZmYiKTsKKyAgICBxZGljdF9w dXRfc3RyKGJzX29wdHMsICJjb3B5LW9uLXJlYWQiLCBjb3B5X29uX3JlYWQgPyAib24iIDogIm9m ZiIpOwoKICAgICAvKiBDb250cm9sbGVyIHR5cGUgKi8KICAgICB2YWx1ZSA9IHFlbXVfb3B0X2dl dChsZWdhY3lfb3B0cywgImlmIik7CkBAIC0xMDMwLDcgKzEwMjgsNyBAQCBEcml2ZUluZm8gKmRy aXZlX25ldyhRZW11T3B0cyAqYWxsX29wdHMsIEJsb2NrSW50ZXJmYWNlVHlwZSBibG9ja19kZWZh dWx0X3R5cGUpCiAgICAgICAgICAgICBuZXdfaWQgPSBnX3N0cmR1cF9wcmludGYoIiVzJXMlaSIs IGlmX25hbWVbdHlwZV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVk aWFzdHIsIHVuaXRfaWQpOwogICAgICAgICB9Ci0gICAgICAgIHFkaWN0X3B1dChic19vcHRzLCAi aWQiLCBxc3RyaW5nX2Zyb21fc3RyKG5ld19pZCkpOworICAgICAgICBxZGljdF9wdXRfc3RyKGJz X29wdHMsICJpZCIsIG5ld19pZCk7CiAgICAgICAgIGdfZnJlZShuZXdfaWQpOwogICAgIH0KCkBA IC0xMDY3LDcgKzEwNjUsNyBAQCBEcml2ZUluZm8gKmRyaXZlX25ldyhRZW11T3B0cyAqYWxsX29w dHMsIEJsb2NrSW50ZXJmYWNlVHlwZSBibG9ja19kZWZhdWx0X3R5cGUpCiAgICAgICAgICAgICBl cnJvcl9yZXBvcnQoIndlcnJvciBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVzIHR5cGUiKTsK ICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAgfQotICAgICAgICBxZGljdF9wdXQoYnNf b3B0cywgIndlcnJvciIsIHFzdHJpbmdfZnJvbV9zdHIod2Vycm9yKSk7CisgICAgICAgIHFkaWN0 X3B1dF9zdHIoYnNfb3B0cywgIndlcnJvciIsIHdlcnJvcik7CiAgICAgfQoKICAgICByZXJyb3Ig PSBxZW11X29wdF9nZXQobGVnYWN5X29wdHMsICJyZXJyb3IiKTsKQEAgLTEwNzcsNyArMTA3NSw3 IEBAIERyaXZlSW5mbyAqZHJpdmVfbmV3KFFlbXVPcHRzICphbGxfb3B0cywgQmxvY2tJbnRlcmZh Y2VUeXBlIGJsb2NrX2RlZmF1bHRfdHlwZSkKICAgICAgICAgICAgIGVycm9yX3JlcG9ydCgicmVy cm9yIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBidXMgdHlwZSIpOwogICAgICAgICAgICAgZ290 byBmYWlsOwogICAgICAgICB9Ci0gICAgICAgIHFkaWN0X3B1dChic19vcHRzLCAicmVycm9yIiwg cXN0cmluZ19mcm9tX3N0cihyZXJyb3IpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihic19vcHRz LCAicmVycm9yIiwgcmVycm9yKTsKICAgICB9CgogICAgIC8qIEFjdHVhbCBibG9jayBkZXZpY2Ug aW5pdDogRnVuY3Rpb25hbGl0eSBzaGFyZWQgd2l0aCBibG9ja2Rldi1hZGQgKi8KQEAgLTE3Mzcs MTAgKzE3MzUsOSBAQCBzdGF0aWMgdm9pZCBleHRlcm5hbF9zbmFwc2hvdF9wcmVwYXJlKEJsa0Fj dGlvblN0YXRlICpjb21tb24sCgogICAgICAgICBvcHRpb25zID0gcWRpY3RfbmV3KCk7CiAgICAg ICAgIGlmIChzLT5oYXNfc25hcHNob3Rfbm9kZV9uYW1lKSB7Ci0gICAgICAgICAgICBxZGljdF9w dXQob3B0aW9ucywgIm5vZGUtbmFtZSIsCi0gICAgICAgICAgICAgICAgICAgICAgcXN0cmluZ19m cm9tX3N0cihzbmFwc2hvdF9ub2RlX25hbWUpKTsKKyAgICAgICAgICAgIHFkaWN0X3B1dF9zdHIo b3B0aW9ucywgIm5vZGUtbmFtZSIsIHNuYXBzaG90X25vZGVfbmFtZSk7CiAgICAgICAgIH0KLSAg ICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKGZvcm1h dCkpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJkcml2ZXIiLCBmb3JtYXQpOwoK ICAgICAgICAgZmxhZ3MgfD0gQkRSVl9PX05PX0JBQ0tJTkc7CiAgICAgfQpAQCAtMjU3OSwxMSAr MjU3NiwxMCBAQCB2b2lkIHFtcF9ibG9ja2Rldl9jaGFuZ2VfbWVkaXVtKGJvb2wgaGFzX2Rldmlj ZSwgY29uc3QgY2hhciAqZGV2aWNlLAoKICAgICBvcHRpb25zID0gcWRpY3RfbmV3KCk7CiAgICAg ZGV0ZWN0X3plcm9lcyA9IGJsa19nZXRfZGV0ZWN0X3plcm9lc19mcm9tX3Jvb3Rfc3RhdGUoYmxr KTsKLSAgICBxZGljdF9wdXQob3B0aW9ucywgImRldGVjdC16ZXJvZXMiLAotICAgICAgICAgICAg ICBxc3RyaW5nX2Zyb21fc3RyKGRldGVjdF96ZXJvZXMgPyAib24iIDogIm9mZiIpKTsKKyAgICBx ZGljdF9wdXRfc3RyKG9wdGlvbnMsICJkZXRlY3QtemVyb2VzIiwgZGV0ZWN0X3plcm9lcyA/ICJv biIgOiAib2ZmIik7CgogICAgIGlmIChoYXNfZm9ybWF0KSB7Ci0gICAgICAgIHFkaWN0X3B1dChv cHRpb25zLCAiZHJpdmVyIiwgcXN0cmluZ19mcm9tX3N0cihmb3JtYXQpKTsKKyAgICAgICAgcWRp Y3RfcHV0X3N0cihvcHRpb25zLCAiZHJpdmVyIiwgZm9ybWF0KTsKICAgICB9CgogICAgIG1lZGl1 bV9icyA9IGJkcnZfb3BlbihmaWxlbmFtZSwgTlVMTCwgb3B0aW9ucywgYmRydl9mbGFncywgZXJy cCk7CkBAIC0zMjUxLDcgKzMyNDcsNyBAQCBzdGF0aWMgQmxvY2tKb2IgKmRvX2RyaXZlX2JhY2t1 cChEcml2ZUJhY2t1cCAqYmFja3VwLCBCbG9ja0pvYlR4biAqdHhuLAoKICAgICBpZiAoYmFja3Vw LT5mb3JtYXQpIHsKICAgICAgICAgb3B0aW9ucyA9IHFkaWN0X25ldygpOwotICAgICAgICBxZGlj dF9wdXQob3B0aW9ucywgImRyaXZlciIsIHFzdHJpbmdfZnJvbV9zdHIoYmFja3VwLT5mb3JtYXQp KTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZHJpdmVyIiwgYmFja3VwLT5mb3Jt YXQpOwogICAgIH0KCiAgICAgdGFyZ2V0X2JzID0gYmRydl9vcGVuKGJhY2t1cC0+dGFyZ2V0LCBO VUxMLCBvcHRpb25zLCBmbGFncywgZXJycCk7CkBAIC0zNTU1LDEwICszNTUxLDEwIEBAIHZvaWQg cW1wX2RyaXZlX21pcnJvcihEcml2ZU1pcnJvciAqYXJnLCBFcnJvciAqKmVycnApCgogICAgIG9w dGlvbnMgPSBxZGljdF9uZXcoKTsKICAgICBpZiAoYXJnLT5oYXNfbm9kZV9uYW1lKSB7Ci0gICAg ICAgIHFkaWN0X3B1dChvcHRpb25zLCAibm9kZS1uYW1lIiwgcXN0cmluZ19mcm9tX3N0cihhcmct Pm5vZGVfbmFtZSkpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJub2RlLW5hbWUi LCBhcmctPm5vZGVfbmFtZSk7CiAgICAgfQogICAgIGlmIChmb3JtYXQpIHsKLSAgICAgICAgcWRp Y3RfcHV0KG9wdGlvbnMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKGZvcm1hdCkpOworICAg ICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJkcml2ZXIiLCBmb3JtYXQpOwogICAgIH0KCiAg ICAgLyogTWlycm9yaW5nIHRha2VzIGNhcmUgb2YgY29weS1vbi13cml0ZSB1c2luZyB0aGUgc291 cmNlJ3MgYmFja2luZwpkaWZmIC0tZ2l0IGEvaHcvYmxvY2sveGVuX2Rpc2suYyBiL2h3L2Jsb2Nr L3hlbl9kaXNrLmMKaW5kZXggMjdkZjA0OC4uM2EyMjgwNSAxMDA2NDQKLS0tIGEvaHcvYmxvY2sv eGVuX2Rpc2suYworKysgYi9ody9ibG9jay94ZW5fZGlzay5jCkBAIC0xMDgyLDcgKzEwODIsNyBA QCBzdGF0aWMgaW50IGJsa19jb25uZWN0KHN0cnVjdCBYZW5EZXZpY2UgKnhlbmRldikKCiAgICAg ICAgIGlmIChzdHJjbXAoYmxrZGV2LT5maWxlcHJvdG8sICI8dW5zZXQ+IikpIHsKICAgICAgICAg ICAgIG9wdGlvbnMgPSBxZGljdF9uZXcoKTsKLSAgICAgICAgICAgIHFkaWN0X3B1dChvcHRpb25z LCAiZHJpdmVyIiwgcXN0cmluZ19mcm9tX3N0cihibGtkZXYtPmZpbGVwcm90bykpOworICAgICAg ICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZHJpdmVyIiwgYmxrZGV2LT5maWxlcHJvdG8p OwogICAgICAgICB9CgogICAgICAgICAvKiBzZXR1cCB2aWEgeGVuYnVzIC0+IGNyZWF0ZSBuZXcg YmxvY2sgZHJpdmVyIGluc3RhbmNlICovCmRpZmYgLS1naXQgYS9ody91c2IveGVuLXVzYi5jIGIv aHcvdXNiL3hlbi11c2IuYwppbmRleCAzNzBiM2Q5Li5mZTYyMTgzIDEwMDY0NAotLS0gYS9ody91 c2IveGVuLXVzYi5jCisrKyBiL2h3L3VzYi94ZW4tdXNiLmMKQEAgLTc0NiwxNiArNzQ2LDE2IEBA IHN0YXRpYyB2b2lkIHVzYmJhY2tfcG9ydGlkX2FkZChzdHJ1Y3QgdXNiYmFja19pbmZvICp1c2Jp ZiwgdW5zaWduZWQgcG9ydCwKICAgICBwb3J0bmFtZSsrOwoKICAgICBxZGljdCA9IHFkaWN0X25l dygpOwotICAgIHFkaWN0X3B1dChxZGljdCwgImRyaXZlciIsIHFzdHJpbmdfZnJvbV9zdHIoInVz Yi1ob3N0IikpOworICAgIHFkaWN0X3B1dF9zdHIocWRpY3QsICJkcml2ZXIiLCAidXNiLWhvc3Qi KTsKICAgICB0bXAgPSBnX3N0cmR1cF9wcmludGYoIiVzLjAiLCB1c2JpZi0+eGVuZGV2LnFkZXYu aWQpOwotICAgIHFkaWN0X3B1dChxZGljdCwgImJ1cyIsIHFzdHJpbmdfZnJvbV9zdHIodG1wKSk7 CisgICAgcWRpY3RfcHV0X3N0cihxZGljdCwgImJ1cyIsIHRtcCk7CiAgICAgZ19mcmVlKHRtcCk7 CiAgICAgdG1wID0gZ19zdHJkdXBfcHJpbnRmKCIlcy0ldSIsIHVzYmlmLT54ZW5kZXYucWRldi5p ZCwgcG9ydCk7Ci0gICAgcWRpY3RfcHV0KHFkaWN0LCAiaWQiLCBxc3RyaW5nX2Zyb21fc3RyKHRt cCkpOworICAgIHFkaWN0X3B1dF9zdHIocWRpY3QsICJpZCIsIHRtcCk7CiAgICAgZ19mcmVlKHRt cCk7Ci0gICAgcWRpY3RfcHV0KHFkaWN0LCAicG9ydCIsIHFpbnRfZnJvbV9pbnQocG9ydCkpOwot ICAgIHFkaWN0X3B1dChxZGljdCwgImhvc3RidXMiLCBxaW50X2Zyb21faW50KGF0b2koYnVzaWQp KSk7Ci0gICAgcWRpY3RfcHV0KHFkaWN0LCAiaG9zdHBvcnQiLCBxc3RyaW5nX2Zyb21fc3RyKHBv cnRuYW1lKSk7CisgICAgcWRpY3RfcHV0X2ludChxZGljdCwgInBvcnQiLCBwb3J0KTsKKyAgICBx ZGljdF9wdXRfaW50KHFkaWN0LCAiaG9zdGJ1cyIsIGF0b2koYnVzaWQpKTsKKyAgICBxZGljdF9w dXRfc3RyKHFkaWN0LCAiaG9zdHBvcnQiLCBwb3J0bmFtZSk7CiAgICAgb3B0cyA9IHFlbXVfb3B0 c19mcm9tX3FkaWN0KHFlbXVfZmluZF9vcHRzKCJkZXZpY2UiKSwgcWRpY3QsICZsb2NhbF9lcnIp OwogICAgIGlmIChsb2NhbF9lcnIpIHsKICAgICAgICAgZ290byBlcnI7CmRpZmYgLS1naXQgYS9t b25pdG9yLmMgYi9tb25pdG9yLmMKaW5kZXggNjI4OWU1Mi4uZDg2NDkwNSAxMDA2NDQKLS0tIGEv bW9uaXRvci5jCisrKyBiL21vbml0b3IuYwpAQCAtMjc3Nyw3ICsyNzc3LDcgQEAgc3RhdGljIFFE aWN0ICptb25pdG9yX3BhcnNlX2FyZ3VtZW50cyhNb25pdG9yICptb24sCiAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsOwogICAgICAgICAgICAgICAg IH0KLSAgICAgICAgICAgICAgICBxZGljdF9wdXQocWRpY3QsIGtleSwgcXN0cmluZ19mcm9tX3N0 cihidWYpKTsKKyAgICAgICAgICAgICAgICBxZGljdF9wdXRfc3RyKHFkaWN0LCBrZXksIGJ1Zik7 CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAnTyc6CkBA IC0yODc5LDkgKzI4NzksOSBAQCBzdGF0aWMgUURpY3QgKm1vbml0b3JfcGFyc2VfYXJndW1lbnRz KE1vbml0b3IgKm1vbiwKICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgPSAtMTsKICAgICAg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBxZGlj dF9wdXQocWRpY3QsICJjb3VudCIsIHFpbnRfZnJvbV9pbnQoY291bnQpKTsKLSAgICAgICAgICAg ICAgICBxZGljdF9wdXQocWRpY3QsICJmb3JtYXQiLCBxaW50X2Zyb21faW50KGZvcm1hdCkpOwot ICAgICAgICAgICAgICAgIHFkaWN0X3B1dChxZGljdCwgInNpemUiLCBxaW50X2Zyb21faW50KHNp emUpKTsKKyAgICAgICAgICAgICAgICBxZGljdF9wdXRfaW50KHFkaWN0LCAiY291bnQiLCBjb3Vu dCk7CisgICAgICAgICAgICAgICAgcWRpY3RfcHV0X2ludChxZGljdCwgImZvcm1hdCIsIGZvcm1h dCk7CisgICAgICAgICAgICAgICAgcWRpY3RfcHV0X2ludChxZGljdCwgInNpemUiLCBzaXplKTsK ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICdpJzoKQEAg LTI5MjQsNyArMjkyNCw3IEBAIHN0YXRpYyBRRGljdCAqbW9uaXRvcl9wYXJzZV9hcmd1bWVudHMo TW9uaXRvciAqbW9uLAogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg IHZhbCA8PD0gMjA7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHFkaWN0X3B1 dChxZGljdCwga2V5LCBxaW50X2Zyb21faW50KHZhbCkpOworICAgICAgICAgICAgICAgIHFkaWN0 X3B1dF9pbnQocWRpY3QsIGtleSwgdmFsKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJy ZWFrOwogICAgICAgICBjYXNlICdvJzoKQEAgLTI5NDcsNyArMjk0Nyw3IEBAIHN0YXRpYyBRRGlj dCAqbW9uaXRvcl9wYXJzZV9hcmd1bWVudHMoTW9uaXRvciAqbW9uLAogICAgICAgICAgICAgICAg ICAgICBtb25pdG9yX3ByaW50Zihtb24sICJpbnZhbGlkIHNpemVcbiIpOwogICAgICAgICAgICAg ICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHFk aWN0X3B1dChxZGljdCwga2V5LCBxaW50X2Zyb21faW50KHZhbCkpOworICAgICAgICAgICAgICAg IHFkaWN0X3B1dF9pbnQocWRpY3QsIGtleSwgdmFsKTsKICAgICAgICAgICAgICAgICBwID0gZW5k OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMDAzLDcgKzMwMDMsNyBA QCBzdGF0aWMgUURpY3QgKm1vbml0b3JfcGFyc2VfYXJndW1lbnRzKE1vbml0b3IgKm1vbiwKICAg ICAgICAgICAgICAgICAgICAgbW9uaXRvcl9wcmludGYobW9uLCAiRXhwZWN0ZWQgJ29uJyBvciAn b2ZmJ1xuIik7CiAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgcWRpY3RfcHV0KHFkaWN0LCBrZXksIHFib29sX2Zyb21fYm9v bCh2YWwpKTsKKyAgICAgICAgICAgICAgICBxZGljdF9wdXRfYm9vbChxZGljdCwga2V5LCB2YWwp OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgJy0nOgpA QCAtMzAzNCw3ICszMDM0LDcgQEAgc3RhdGljIFFEaWN0ICptb25pdG9yX3BhcnNlX2FyZ3VtZW50 cyhNb25pdG9yICptb24sCiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAvKiBoYXMgb3B0aW9uICovCiAgICAgICAgICAgICAgICAgICAgICAgICBw Kys7Ci0gICAgICAgICAgICAgICAgICAgICAgICBxZGljdF9wdXQocWRpY3QsIGtleSwgcWJvb2xf ZnJvbV9ib29sKHRydWUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHFkaWN0X3B1dF9ib29s KHFkaWN0LCBrZXksIHRydWUpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgfQpAQCAtMzA2MCw3ICszMDYwLDcgQEAgc3RhdGljIFFEaWN0ICpt b25pdG9yX3BhcnNlX2FyZ3VtZW50cyhNb25pdG9yICptb24sCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNtZC0+bmFtZSk7CiAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFp bDsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcWRpY3RfcHV0KHFkaWN0LCBr ZXksIHFzdHJpbmdfZnJvbV9zdHIocCkpOworICAgICAgICAgICAgICAgIHFkaWN0X3B1dF9zdHIo cWRpY3QsIGtleSwgcCk7CiAgICAgICAgICAgICAgICAgcCArPSBsZW47CiAgICAgICAgICAgICB9 CiAgICAgICAgICAgICBicmVhazsKQEAgLTM4MzksOSArMzgzOSw4IEBAIHN0YXRpYyB2b2lkIGhh bmRsZV9xbXBfY29tbWFuZChKU09OTWVzc2FnZVBhcnNlciAqcGFyc2VyLCBHUXVldWUgKnRva2Vu cykKICAgICAgICAgICAgICAgICAgICAgUWFwaUVycm9yQ2xhc3NfbG9va3VwW0VSUk9SX0NMQVNT X0NPTU1BTkRfTk9UX0ZPVU5EXSkpIHsKICAgICAgICAgICAgIC8qIFByb3ZpZGUgYSBtb3JlIHVz ZWZ1bCBlcnJvciBtZXNzYWdlICovCiAgICAgICAgICAgICBxZGljdF9kZWwocWRpY3QsICJkZXNj Iik7Ci0gICAgICAgICAgICBxZGljdF9wdXQocWRpY3QsICJkZXNjIiwKLSAgICAgICAgICAgICAg ICAgICAgICBxc3RyaW5nX2Zyb21fc3RyKCJFeHBlY3RpbmcgY2FwYWJpbGl0aWVzIG5lZ290aWF0 aW9uIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiB3aXRoICdxbXBf Y2FwYWJpbGl0aWVzJyIpKTsKKyAgICAgICAgICAgIHFkaWN0X3B1dF9zdHIocWRpY3QsICJkZXNj IiwgIkV4cGVjdGluZyBjYXBhYmlsaXRpZXMgbmVnb3RpYXRpb24iCisgICAgICAgICAgICAgICAg ICAgICAgICAgICIgd2l0aCAncW1wX2NhcGFiaWxpdGllcyciKTsKICAgICAgICAgfQogICAgIH0K CmRpZmYgLS1naXQgYS9xYXBpL3FtcC1ldmVudC5jIGIvcWFwaS9xbXAtZXZlbnQuYwppbmRleCA4 MDJlZGU0Li5iYTMwMjljIDEwMDY0NAotLS0gYS9xYXBpL3FtcC1ldmVudC5jCisrKyBiL3FhcGkv cW1wLWV2ZW50LmMKQEAgLTUxLDcgKzUxLDcgQEAgc3RhdGljIHZvaWQgdGltZXN0YW1wX3B1dChR RGljdCAqcWRpY3QpCiBRRGljdCAqcW1wX2V2ZW50X2J1aWxkX2RpY3QoY29uc3QgY2hhciAqZXZl bnRfbmFtZSkKIHsKICAgICBRRGljdCAqZGljdCA9IHFkaWN0X25ldygpOwotICAgIHFkaWN0X3B1 dChkaWN0LCAiZXZlbnQiLCBxc3RyaW5nX2Zyb21fc3RyKGV2ZW50X25hbWUpKTsKKyAgICBxZGlj dF9wdXRfc3RyKGRpY3QsICJldmVudCIsIGV2ZW50X25hbWUpOwogICAgIHRpbWVzdGFtcF9wdXQo ZGljdCk7CiAgICAgcmV0dXJuIGRpY3Q7CiB9CmRpZmYgLS1naXQgYS9xZW11LWltZy5jIGIvcWVt dS1pbWcuYwppbmRleCBiYmUxNTc0Li5iNDhkYmU3IDEwMDY0NAotLS0gYS9xZW11LWltZy5jCisr KyBiL3FlbXUtaW1nLmMKQEAgLTMxMyw3ICszMTMsNyBAQCBzdGF0aWMgQmxvY2tCYWNrZW5kICpp bWdfb3Blbl9maWxlKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAoKICAgICBpZiAoZm10KSB7CiAgICAg ICAgIG9wdGlvbnMgPSBxZGljdF9uZXcoKTsKLSAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJk cml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKGZtdCkpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9w dGlvbnMsICJkcml2ZXIiLCBmbXQpOwogICAgIH0KCiAgICAgYmxrID0gYmxrX25ld19vcGVuKGZp bGVuYW1lLCBOVUxMLCBvcHRpb25zLCBmbGFncywgJmxvY2FsX2Vycik7CkBAIC0zMTU4LDcgKzMx NTgsNyBAQCBzdGF0aWMgaW50IGltZ19yZWJhc2UoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoKICAg ICAgICAgaWYgKGJzLT5iYWNraW5nX2Zvcm1hdFswXSAhPSAnXDAnKSB7CiAgICAgICAgICAgICBv cHRpb25zID0gcWRpY3RfbmV3KCk7Ci0gICAgICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgImRy aXZlciIsIHFzdHJpbmdfZnJvbV9zdHIoYnMtPmJhY2tpbmdfZm9ybWF0KSk7CisgICAgICAgICAg ICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJkcml2ZXIiLCBicy0+YmFja2luZ19mb3JtYXQpOwog ICAgICAgICB9CgogICAgICAgICBiZHJ2X2dldF9iYWNraW5nX2ZpbGVuYW1lKGJzLCBiYWNraW5n X25hbWUsIHNpemVvZihiYWNraW5nX25hbWUpKTsKQEAgLTMxNzUsNyArMzE3NSw3IEBAIHN0YXRp YyBpbnQgaW1nX3JlYmFzZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgIGlmIChvdXRf YmFzZWltZ1swXSkgewogICAgICAgICAgICAgaWYgKG91dF9iYXNlZm10KSB7CiAgICAgICAgICAg ICAgICAgb3B0aW9ucyA9IHFkaWN0X25ldygpOwotICAgICAgICAgICAgICAgIHFkaWN0X3B1dChv cHRpb25zLCAiZHJpdmVyIiwgcXN0cmluZ19mcm9tX3N0cihvdXRfYmFzZWZtdCkpOworICAgICAg ICAgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgImRyaXZlciIsIG91dF9iYXNlZm10KTsK ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgb3B0aW9ucyA9IE5VTEw7CiAg ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9xZW11LWlvLmMgYi9xZW11LWlvLmMKaW5kZXggNDI3 Y2JhZS4uZWQwZTJkYyAxMDA2NDQKLS0tIGEvcWVtdS1pby5jCisrKyBiL3FlbXUtaW8uYwpAQCAt NjAxLDcgKzYwMSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAg fSBlbHNlIHsKICAgICAgICAgICAgIGlmIChmb3JtYXQpIHsKICAgICAgICAgICAgICAgICBvcHRz ID0gcWRpY3RfbmV3KCk7Ci0gICAgICAgICAgICAgICAgcWRpY3RfcHV0KG9wdHMsICJkcml2ZXIi LCBxc3RyaW5nX2Zyb21fc3RyKGZvcm1hdCkpOworICAgICAgICAgICAgICAgIHFkaWN0X3B1dF9z dHIob3B0cywgImRyaXZlciIsIGZvcm1hdCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBp ZiAob3BlbmZpbGUoYXJndltvcHRpbmRdLCBmbGFncywgd3JpdGV0aHJvdWdoLCBvcHRzKSkgewog ICAgICAgICAgICAgICAgIGV4aXQoMSk7CmRpZmYgLS1naXQgYS9xZW11LW5iZC5jIGIvcWVtdS1u YmQuYwppbmRleCBlMDgwZmI3Li5lNGYwMGUyIDEwMDY0NAotLS0gYS9xZW11LW5iZC5jCisrKyBi L3FlbXUtbmJkLmMKQEAgLTk1OSw3ICs5NTksNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKGZtdCkgewogICAgICAgICAgICAgb3B0 aW9ucyA9IHFkaWN0X25ldygpOwotICAgICAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJkcml2 ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKGZtdCkpOworICAgICAgICAgICAgcWRpY3RfcHV0X3N0cihv cHRpb25zLCAiZHJpdmVyIiwgZm10KTsKICAgICAgICAgfQogICAgICAgICBibGsgPSBibGtfbmV3 X29wZW4oc3JjcGF0aCwgTlVMTCwgb3B0aW9ucywgZmxhZ3MsICZsb2NhbF9lcnIpOwogICAgIH0K ZGlmZiAtLWdpdCBhL3FvYmplY3QvcWRpY3QuYyBiL3FvYmplY3QvcWRpY3QuYwppbmRleCAyOTFl ZWYxLi44OGUyZWNkIDEwMDY0NAotLS0gYS9xb2JqZWN0L3FkaWN0LmMKKysrIGIvcW9iamVjdC9x ZGljdC5jCkBAIC00NjMsNyArNDYzLDcgQEAgdm9pZCBxZGljdF9zZXRfZGVmYXVsdF9zdHIoUURp Y3QgKmRzdCwgY29uc3QgY2hhciAqa2V5LCBjb25zdCBjaGFyICp2YWwpCiAgICAgICAgIHJldHVy bjsKICAgICB9CgotICAgIHFkaWN0X3B1dChkc3QsIGtleSwgcXN0cmluZ19mcm9tX3N0cih2YWwp KTsKKyAgICBxZGljdF9wdXRfc3RyKGRzdCwga2V5LCB2YWwpOwogfQoKIHN0YXRpYyB2b2lkIHFk aWN0X2ZsYXR0ZW5fcWRpY3QoUURpY3QgKnFkaWN0LCBRRGljdCAqdGFyZ2V0LApkaWZmIC0tZ2l0 IGEvdGFyZ2V0L3MzOTB4L2NwdV9tb2RlbHMuYyBiL3RhcmdldC9zMzkweC9jcHVfbW9kZWxzLmMK aW5kZXggY2U0NjFjYy4uOGQyNzM2MyAxMDA2NDQKLS0tIGEvdGFyZ2V0L3MzOTB4L2NwdV9tb2Rl bHMuYworKysgYi90YXJnZXQvczM5MHgvY3B1X21vZGVscy5jCkBAIC0zNzYsMTIgKzM3NiwxMiBA QCBzdGF0aWMgdm9pZCBjcHVfbW9kZWxfZnJvbV9pbmZvKFMzOTBDUFVNb2RlbCAqbW9kZWwsIGNv bnN0IENwdU1vZGVsSW5mbyAqaW5mbywKCiBzdGF0aWMgdm9pZCBxZGljdF9hZGRfZGlzYWJsZWRf ZmVhdChjb25zdCBjaGFyICpuYW1lLCB2b2lkICpvcGFxdWUpCiB7Ci0gICAgcWRpY3RfcHV0KG9w YXF1ZSwgbmFtZSwgcWJvb2xfZnJvbV9ib29sKGZhbHNlKSk7CisgICAgcWRpY3RfcHV0X2Jvb2wo b3BhcXVlLCBuYW1lLCBmYWxzZSk7CiB9Cgogc3RhdGljIHZvaWQgcWRpY3RfYWRkX2VuYWJsZWRf ZmVhdChjb25zdCBjaGFyICpuYW1lLCB2b2lkICpvcGFxdWUpCiB7Ci0gICAgcWRpY3RfcHV0KG9w YXF1ZSwgbmFtZSwgcWJvb2xfZnJvbV9ib29sKHRydWUpKTsKKyAgICBxZGljdF9wdXRfYm9vbChv cGFxdWUsIG5hbWUsIHRydWUpOwogfQoKIC8qIGNvbnZlcnQgUzM5MENQVURlZiBpbnRvIGEgc3Rh dGljIENwdU1vZGVsSW5mbyAqLwpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2stcWRpY3QuYyBiL3Rl c3RzL2NoZWNrLXFkaWN0LmMKaW5kZXggM2NiNzJmYi4uYmU4ZDgxZiAxMDA2NDQKLS0tIGEvdGVz dHMvY2hlY2stcWRpY3QuYworKysgYi90ZXN0cy9jaGVjay1xZGljdC5jCkBAIC00Nyw3ICs0Nyw3 IEBAIHN0YXRpYyB2b2lkIHFkaWN0X3B1dF9vYmpfdGVzdCh2b2lkKQogICAgIHFkaWN0ID0gcWRp Y3RfbmV3KCk7CgogICAgIC8vIGtleSAiIiB3aWxsIGhhdmUgdGRiIGhhc2ggMTIzNDUKLSAgICBx ZGljdF9wdXQocWRpY3QsICIiLCBxaW50X2Zyb21faW50KG51bSkpOworICAgIHFkaWN0X3B1dF9p bnQocWRpY3QsICIiLCBudW0pOwoKICAgICBnX2Fzc2VydChxZGljdF9zaXplKHFkaWN0KSA9PSAx KTsKICAgICBlbnQgPSBRTElTVF9GSVJTVCgmcWRpY3QtPnRhYmxlWzEyMzQ1ICUgUURJQ1RfQlVD S0VUX01BWF0pOwpAQCAtNjYsOCArNjYsOCBAQCBzdGF0aWMgdm9pZCBxZGljdF9kZXN0cm95X3Np bXBsZV90ZXN0KHZvaWQpCiAgICAgUURpY3QgKnFkaWN0OwoKICAgICBxZGljdCA9IHFkaWN0X25l dygpOwotICAgIHFkaWN0X3B1dChxZGljdCwgIm51bSIsIHFpbnRfZnJvbV9pbnQoMCkpOwotICAg IHFkaWN0X3B1dChxZGljdCwgInN0ciIsIHFzdHJpbmdfZnJvbV9zdHIoImZvbyIpKTsKKyAgICBx ZGljdF9wdXRfaW50KHFkaWN0LCAibnVtIiwgMCk7CisgICAgcWRpY3RfcHV0X3N0cihxZGljdCwg InN0ciIsICJmb28iKTsKCiAgICAgUURFQ1JFRihxZGljdCk7CiB9CkBAIC04MCw3ICs4MCw3IEBA IHN0YXRpYyB2b2lkIHFkaWN0X2dldF90ZXN0KHZvaWQpCiAgICAgY29uc3QgY2hhciAqa2V5ID0g InRlc3QiOwogICAgIFFEaWN0ICp0ZXN0c19kaWN0ID0gcWRpY3RfbmV3KCk7CgotICAgIHFkaWN0 X3B1dCh0ZXN0c19kaWN0LCBrZXksIHFpbnRfZnJvbV9pbnQodmFsdWUpKTsKKyAgICBxZGljdF9w dXRfaW50KHRlc3RzX2RpY3QsIGtleSwgdmFsdWUpOwoKICAgICBvYmogPSBxZGljdF9nZXQodGVz dHNfZGljdCwga2V5KTsKICAgICBnX2Fzc2VydChvYmogIT0gTlVMTCk7CkBAIC05OCw3ICs5OCw3 IEBAIHN0YXRpYyB2b2lkIHFkaWN0X2dldF9pbnRfdGVzdCh2b2lkKQogICAgIGNvbnN0IGNoYXIg KmtleSA9ICJpbnQiOwogICAgIFFEaWN0ICp0ZXN0c19kaWN0ID0gcWRpY3RfbmV3KCk7CgotICAg IHFkaWN0X3B1dCh0ZXN0c19kaWN0LCBrZXksIHFpbnRfZnJvbV9pbnQodmFsdWUpKTsKKyAgICBx ZGljdF9wdXRfaW50KHRlc3RzX2RpY3QsIGtleSwgdmFsdWUpOwoKICAgICByZXQgPSBxZGljdF9n ZXRfaW50KHRlc3RzX2RpY3QsIGtleSk7CiAgICAgZ19hc3NlcnQocmV0ID09IHZhbHVlKTsKQEAg LTExMyw3ICsxMTMsNyBAQCBzdGF0aWMgdm9pZCBxZGljdF9nZXRfdHJ5X2ludF90ZXN0KHZvaWQp CiAgICAgY29uc3QgY2hhciAqa2V5ID0gImludCI7CiAgICAgUURpY3QgKnRlc3RzX2RpY3QgPSBx ZGljdF9uZXcoKTsKCi0gICAgcWRpY3RfcHV0KHRlc3RzX2RpY3QsIGtleSwgcWludF9mcm9tX2lu dCh2YWx1ZSkpOworICAgIHFkaWN0X3B1dF9pbnQodGVzdHNfZGljdCwga2V5LCB2YWx1ZSk7Cgog ICAgIHJldCA9IHFkaWN0X2dldF90cnlfaW50KHRlc3RzX2RpY3QsIGtleSwgMCk7CiAgICAgZ19h c3NlcnQocmV0ID09IHZhbHVlKTsKQEAgLTEyOCw3ICsxMjgsNyBAQCBzdGF0aWMgdm9pZCBxZGlj dF9nZXRfc3RyX3Rlc3Qodm9pZCkKICAgICBjb25zdCBjaGFyICpzdHIgPSAic3RyaW5nIjsKICAg ICBRRGljdCAqdGVzdHNfZGljdCA9IHFkaWN0X25ldygpOwoKLSAgICBxZGljdF9wdXQodGVzdHNf ZGljdCwga2V5LCBxc3RyaW5nX2Zyb21fc3RyKHN0cikpOworICAgIHFkaWN0X3B1dF9zdHIodGVz dHNfZGljdCwga2V5LCBzdHIpOwoKICAgICBwID0gcWRpY3RfZ2V0X3N0cih0ZXN0c19kaWN0LCBr ZXkpOwogICAgIGdfYXNzZXJ0KHAgIT0gTlVMTCk7CkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGlj IHZvaWQgcWRpY3RfZ2V0X3RyeV9zdHJfdGVzdCh2b2lkKQogICAgIGNvbnN0IGNoYXIgKnN0ciA9 ICJzdHJpbmciOwogICAgIFFEaWN0ICp0ZXN0c19kaWN0ID0gcWRpY3RfbmV3KCk7CgotICAgIHFk aWN0X3B1dCh0ZXN0c19kaWN0LCBrZXksIHFzdHJpbmdfZnJvbV9zdHIoc3RyKSk7CisgICAgcWRp Y3RfcHV0X3N0cih0ZXN0c19kaWN0LCBrZXksIHN0cik7CgogICAgIHAgPSBxZGljdF9nZXRfdHJ5 X3N0cih0ZXN0c19kaWN0LCBrZXkpOwogICAgIGdfYXNzZXJ0KHAgIT0gTlVMTCk7CkBAIC0xODgs NyArMTg4LDcgQEAgc3RhdGljIHZvaWQgcWRpY3RfaGFza2V5X3Rlc3Qodm9pZCkKICAgICBjb25z dCBjaGFyICprZXkgPSAidGVzdCI7CiAgICAgUURpY3QgKnRlc3RzX2RpY3QgPSBxZGljdF9uZXco KTsKCi0gICAgcWRpY3RfcHV0KHRlc3RzX2RpY3QsIGtleSwgcWludF9mcm9tX2ludCgwKSk7Cisg ICAgcWRpY3RfcHV0X2ludCh0ZXN0c19kaWN0LCBrZXksIDApOwogICAgIGdfYXNzZXJ0KHFkaWN0 X2hhc2tleSh0ZXN0c19kaWN0LCBrZXkpID09IDEpOwoKICAgICBRREVDUkVGKHRlc3RzX2RpY3Qp OwpAQCAtMTk5LDcgKzE5OSw3IEBAIHN0YXRpYyB2b2lkIHFkaWN0X2RlbF90ZXN0KHZvaWQpCiAg ICAgY29uc3QgY2hhciAqa2V5ID0gImtleSB0ZXN0IjsKICAgICBRRGljdCAqdGVzdHNfZGljdCA9 IHFkaWN0X25ldygpOwoKLSAgICBxZGljdF9wdXQodGVzdHNfZGljdCwga2V5LCBxc3RyaW5nX2Zy b21fc3RyKCJmb28iKSk7CisgICAgcWRpY3RfcHV0X3N0cih0ZXN0c19kaWN0LCBrZXksICJmb28i KTsKICAgICBnX2Fzc2VydChxZGljdF9zaXplKHRlc3RzX2RpY3QpID09IDEpOwoKICAgICBxZGlj dF9kZWwodGVzdHNfZGljdCwga2V5KTsKQEAgLTIyNiw5ICsyMjYsOSBAQCBzdGF0aWMgdm9pZCBx ZGljdF9pdGVyYXBpX3Rlc3Qodm9pZCkKCiAgICAgZ19hc3NlcnQocWRpY3RfZmlyc3QodGVzdHNf ZGljdCkgPT0gTlVMTCk7CgotICAgIHFkaWN0X3B1dCh0ZXN0c19kaWN0LCAia2V5MSIsIHFpbnRf ZnJvbV9pbnQoMSkpOwotICAgIHFkaWN0X3B1dCh0ZXN0c19kaWN0LCAia2V5MiIsIHFpbnRfZnJv bV9pbnQoMikpOwotICAgIHFkaWN0X3B1dCh0ZXN0c19kaWN0LCAia2V5MyIsIHFpbnRfZnJvbV9p bnQoMykpOworICAgIHFkaWN0X3B1dF9pbnQodGVzdHNfZGljdCwgImtleTEiLCAxKTsKKyAgICBx ZGljdF9wdXRfaW50KHRlc3RzX2RpY3QsICJrZXkyIiwgMik7CisgICAgcWRpY3RfcHV0X2ludCh0 ZXN0c19kaWN0LCAia2V5MyIsIDMpOwoKICAgICBjb3VudCA9IDA7CiAgICAgZm9yIChlbnQgPSBx ZGljdF9maXJzdCh0ZXN0c19kaWN0KTsgZW50OyBlbnQgPSBxZGljdF9uZXh0KHRlc3RzX2RpY3Qs IGVudCkpewpAQCAtMjk0LDIwICsyOTQsMjAgQEAgc3RhdGljIHZvaWQgcWRpY3RfZmxhdHRlbl90 ZXN0KHZvaWQpCiAgICAgICogfQogICAgICAqLwoKLSAgICBxZGljdF9wdXQoZGljdDEsICJhIiwg cWludF9mcm9tX2ludCgwKSk7Ci0gICAgcWRpY3RfcHV0KGRpY3QxLCAiYiIsIHFpbnRfZnJvbV9p bnQoMSkpOworICAgIHFkaWN0X3B1dF9pbnQoZGljdDEsICJhIiwgMCk7CisgICAgcWRpY3RfcHV0 X2ludChkaWN0MSwgImIiLCAxKTsKCi0gICAgcWxpc3RfYXBwZW5kKGxpc3QxLCBxaW50X2Zyb21f aW50KDIzKSk7Ci0gICAgcWxpc3RfYXBwZW5kKGxpc3QxLCBxaW50X2Zyb21faW50KDY2KSk7Cisg ICAgcWxpc3RfYXBwZW5kX2ludChsaXN0MSwgMjMpOworICAgIHFsaXN0X2FwcGVuZF9pbnQobGlz dDEsIDY2KTsKICAgICBxbGlzdF9hcHBlbmQobGlzdDEsIGRpY3QxKTsKLSAgICBxbGlzdF9hcHBl bmQobGlzdDIsIHFpbnRfZnJvbV9pbnQoNDIpKTsKKyAgICBxbGlzdF9hcHBlbmRfaW50KGxpc3Qy LCA0Mik7CiAgICAgcWxpc3RfYXBwZW5kKGxpc3QyLCBsaXN0MSk7CgotICAgIHFkaWN0X3B1dChk aWN0MiwgImMiLCBxaW50X2Zyb21faW50KDIpKTsKLSAgICBxZGljdF9wdXQoZGljdDIsICJkIiwg cWludF9mcm9tX2ludCgzKSk7CisgICAgcWRpY3RfcHV0X2ludChkaWN0MiwgImMiLCAyKTsKKyAg ICBxZGljdF9wdXRfaW50KGRpY3QyLCAiZCIsIDMpOwogICAgIHFkaWN0X3B1dChkaWN0MywgImUi LCBsaXN0Mik7CiAgICAgcWRpY3RfcHV0KGRpY3QzLCAiZiIsIGRpY3QyKTsKLSAgICBxZGljdF9w dXQoZGljdDMsICJnIiwgcWludF9mcm9tX2ludCg0KSk7CisgICAgcWRpY3RfcHV0X2ludChkaWN0 MywgImciLCA0KTsKCiAgICAgcWRpY3RfZmxhdHRlbihkaWN0Myk7CgpAQCAtMzY5LDEyICszNjks MTIgQEAgc3RhdGljIHZvaWQgcWRpY3RfYXJyYXlfc3BsaXRfdGVzdCh2b2lkKQogICAgICAqIFRo aXMgZXhhbXBsZSBpcyBnaXZlbiBpbiB0aGUgY29tbWVudCBvZiBxZGljdF9hcnJheV9zcGxpdCgp LgogICAgICAqLwoKLSAgICBxZGljdF9wdXQodGVzdF9kaWN0LCAiMS54IiwgcWludF9mcm9tX2lu dCgwKSk7Ci0gICAgcWRpY3RfcHV0KHRlc3RfZGljdCwgIjQueSIsIHFpbnRfZnJvbV9pbnQoMSkp OwotICAgIHFkaWN0X3B1dCh0ZXN0X2RpY3QsICIwLmEiLCBxaW50X2Zyb21faW50KDQyKSk7Ci0g ICAgcWRpY3RfcHV0KHRlc3RfZGljdCwgIm8ubyIsIHFpbnRfZnJvbV9pbnQoNykpOwotICAgIHFk aWN0X3B1dCh0ZXN0X2RpY3QsICIwLmIiLCBxaW50X2Zyb21faW50KDIzKSk7Ci0gICAgcWRpY3Rf cHV0KHRlc3RfZGljdCwgIjIiLCBxaW50X2Zyb21faW50KDY2KSk7CisgICAgcWRpY3RfcHV0X2lu dCh0ZXN0X2RpY3QsICIxLngiLCAwKTsKKyAgICBxZGljdF9wdXRfaW50KHRlc3RfZGljdCwgIjQu eSIsIDEpOworICAgIHFkaWN0X3B1dF9pbnQodGVzdF9kaWN0LCAiMC5hIiwgNDIpOworICAgIHFk aWN0X3B1dF9pbnQodGVzdF9kaWN0LCAiby5vIiwgNyk7CisgICAgcWRpY3RfcHV0X2ludCh0ZXN0 X2RpY3QsICIwLmIiLCAyMyk7CisgICAgcWRpY3RfcHV0X2ludCh0ZXN0X2RpY3QsICIyIiwgNjYp OwoKICAgICBxZGljdF9hcnJheV9zcGxpdCh0ZXN0X2RpY3QsICZ0ZXN0X2xpc3QpOwoKQEAgLTQ0 MSw5ICs0NDEsOSBAQCBzdGF0aWMgdm9pZCBxZGljdF9hcnJheV9zcGxpdF90ZXN0KHZvaWQpCgog ICAgIHRlc3RfZGljdCA9IHFkaWN0X25ldygpOwoKLSAgICBxZGljdF9wdXQodGVzdF9kaWN0LCAi MCIsIHFpbnRfZnJvbV9pbnQoNDIpKTsKLSAgICBxZGljdF9wdXQodGVzdF9kaWN0LCAiMSIsIHFp bnRfZnJvbV9pbnQoMjMpKTsKLSAgICBxZGljdF9wdXQodGVzdF9kaWN0LCAiMS54IiwgcWludF9m cm9tX2ludCg4NCkpOworICAgIHFkaWN0X3B1dF9pbnQodGVzdF9kaWN0LCAiMCIsIDQyKTsKKyAg ICBxZGljdF9wdXRfaW50KHRlc3RfZGljdCwgIjEiLCAyMyk7CisgICAgcWRpY3RfcHV0X2ludCh0 ZXN0X2RpY3QsICIxLngiLCA4NCk7CgogICAgIHFkaWN0X2FycmF5X3NwbGl0KHRlc3RfZGljdCwg JnRlc3RfbGlzdCk7CgpAQCAtNDcyLDM4ICs0NzIsMzggQEAgc3RhdGljIHZvaWQgcWRpY3RfYXJy YXlfZW50cmllc190ZXN0KHZvaWQpCgogICAgIGdfYXNzZXJ0X2NtcGludChxZGljdF9hcnJheV9l bnRyaWVzKGRpY3QsICJmb28uIiksID09LCAwKTsKCi0gICAgcWRpY3RfcHV0KGRpY3QsICJiYXIi LCBxaW50X2Zyb21faW50KDApKTsKLSAgICBxZGljdF9wdXQoZGljdCwgImJhei4wIiwgcWludF9m cm9tX2ludCgwKSk7CisgICAgcWRpY3RfcHV0X2ludChkaWN0LCAiYmFyIiwgMCk7CisgICAgcWRp Y3RfcHV0X2ludChkaWN0LCAiYmF6LjAiLCAwKTsKICAgICBnX2Fzc2VydF9jbXBpbnQocWRpY3Rf YXJyYXlfZW50cmllcyhkaWN0LCAiZm9vLiIpLCA9PSwgMCk7CgotICAgIHFkaWN0X3B1dChkaWN0 LCAiZm9vLjEiLCBxaW50X2Zyb21faW50KDApKTsKKyAgICBxZGljdF9wdXRfaW50KGRpY3QsICJm b28uMSIsIDApOwogICAgIGdfYXNzZXJ0X2NtcGludChxZGljdF9hcnJheV9lbnRyaWVzKGRpY3Qs ICJmb28uIiksID09LCAtRUlOVkFMKTsKLSAgICBxZGljdF9wdXQoZGljdCwgImZvby4wIiwgcWlu dF9mcm9tX2ludCgwKSk7CisgICAgcWRpY3RfcHV0X2ludChkaWN0LCAiZm9vLjAiLCAwKTsKICAg ICBnX2Fzc2VydF9jbXBpbnQocWRpY3RfYXJyYXlfZW50cmllcyhkaWN0LCAiZm9vLiIpLCA9PSwg Mik7Ci0gICAgcWRpY3RfcHV0KGRpY3QsICJmb28uYmFyIiwgcWludF9mcm9tX2ludCgwKSk7Cisg ICAgcWRpY3RfcHV0X2ludChkaWN0LCAiZm9vLmJhciIsIDApOwogICAgIGdfYXNzZXJ0X2NtcGlu dChxZGljdF9hcnJheV9lbnRyaWVzKGRpY3QsICJmb28uIiksID09LCAtRUlOVkFMKTsKICAgICBx ZGljdF9kZWwoZGljdCwgImZvby5iYXIiKTsKCi0gICAgcWRpY3RfcHV0KGRpY3QsICJmb28uMi5h IiwgcWludF9mcm9tX2ludCgwKSk7Ci0gICAgcWRpY3RfcHV0KGRpY3QsICJmb28uMi5iIiwgcWlu dF9mcm9tX2ludCgwKSk7Ci0gICAgcWRpY3RfcHV0KGRpY3QsICJmb28uMi5jIiwgcWludF9mcm9t X2ludCgwKSk7CisgICAgcWRpY3RfcHV0X2ludChkaWN0LCAiZm9vLjIuYSIsIDApOworICAgIHFk aWN0X3B1dF9pbnQoZGljdCwgImZvby4yLmIiLCAwKTsKKyAgICBxZGljdF9wdXRfaW50KGRpY3Qs ICJmb28uMi5jIiwgMCk7CiAgICAgZ19hc3NlcnRfY21waW50KHFkaWN0X2FycmF5X2VudHJpZXMo ZGljdCwgImZvby4iKSwgPT0sIDMpOwogICAgIGdfYXNzZXJ0X2NtcGludChxZGljdF9hcnJheV9l bnRyaWVzKGRpY3QsICIiKSwgPT0sIC1FSU5WQUwpOwoKICAgICBRREVDUkVGKGRpY3QpOwoKICAg ICBkaWN0ID0gcWRpY3RfbmV3KCk7Ci0gICAgcWRpY3RfcHV0KGRpY3QsICIxIiwgcWludF9mcm9t X2ludCgwKSk7CisgICAgcWRpY3RfcHV0X2ludChkaWN0LCAiMSIsIDApOwogICAgIGdfYXNzZXJ0 X2NtcGludChxZGljdF9hcnJheV9lbnRyaWVzKGRpY3QsICIiKSwgPT0sIC1FSU5WQUwpOwotICAg IHFkaWN0X3B1dChkaWN0LCAiMCIsIHFpbnRfZnJvbV9pbnQoMCkpOworICAgIHFkaWN0X3B1dF9p bnQoZGljdCwgIjAiLCAwKTsKICAgICBnX2Fzc2VydF9jbXBpbnQocWRpY3RfYXJyYXlfZW50cmll cyhkaWN0LCAiIiksID09LCAyKTsKLSAgICBxZGljdF9wdXQoZGljdCwgImJhciIsIHFpbnRfZnJv bV9pbnQoMCkpOworICAgIHFkaWN0X3B1dF9pbnQoZGljdCwgImJhciIsIDApOwogICAgIGdfYXNz ZXJ0X2NtcGludChxZGljdF9hcnJheV9lbnRyaWVzKGRpY3QsICIiKSwgPT0sIC1FSU5WQUwpOwog ICAgIHFkaWN0X2RlbChkaWN0LCAiYmFyIik7CgotICAgIHFkaWN0X3B1dChkaWN0LCAiMi5hIiwg cWludF9mcm9tX2ludCgwKSk7Ci0gICAgcWRpY3RfcHV0KGRpY3QsICIyLmIiLCBxaW50X2Zyb21f aW50KDApKTsKLSAgICBxZGljdF9wdXQoZGljdCwgIjIuYyIsIHFpbnRfZnJvbV9pbnQoMCkpOwor ICAgIHFkaWN0X3B1dF9pbnQoZGljdCwgIjIuYSIsIDApOworICAgIHFkaWN0X3B1dF9pbnQoZGlj dCwgIjIuYiIsIDApOworICAgIHFkaWN0X3B1dF9pbnQoZGljdCwgIjIuYyIsIDApOwogICAgIGdf YXNzZXJ0X2NtcGludChxZGljdF9hcnJheV9lbnRyaWVzKGRpY3QsICIiKSwgPT0sIDMpOwoKICAg ICBRREVDUkVGKGRpY3QpOwpAQCAtNTI5LDcgKzUyOSw3IEBAIHN0YXRpYyB2b2lkIHFkaWN0X2pv aW5fdGVzdCh2b2lkKQoKICAgICAgICAgLyogRmlyc3QgaXRlcmF0aW9uOiBUZXN0IG1vdmVtZW50 ICovCiAgICAgICAgIC8qIFNlY29uZCBpdGVyYXRpb246IFRlc3QgZW1wdHkgc291cmNlIGFuZCBu b24tZW1wdHkgZGVzdGluYXRpb24gKi8KLSAgICAgICAgcWRpY3RfcHV0KGRpY3QyLCAiZm9vIiwg cWludF9mcm9tX2ludCg0MikpOworICAgICAgICBxZGljdF9wdXRfaW50KGRpY3QyLCAiZm9vIiwg NDIpOwoKICAgICAgICAgZm9yIChpID0gMDsgaSA8IDI7IGkrKykgewogICAgICAgICAgICAgcWRp Y3Rfam9pbihkaWN0MSwgZGljdDIsIG92ZXJ3cml0ZSk7CkBAIC01NDEsNyArNTQxLDcgQEAgc3Rh dGljIHZvaWQgcWRpY3Rfam9pbl90ZXN0KHZvaWQpCiAgICAgICAgIH0KCiAgICAgICAgIC8qIFRl c3Qgbm9uLWVtcHR5IHNvdXJjZSBhbmQgZGVzdGluYXRpb24gd2l0aG91dCBjb25mbGljdCAqLwot ICAgICAgICBxZGljdF9wdXQoZGljdDIsICJiYXIiLCBxaW50X2Zyb21faW50KDIzKSk7CisgICAg ICAgIHFkaWN0X3B1dF9pbnQoZGljdDIsICJiYXIiLCAyMyk7CgogICAgICAgICBxZGljdF9qb2lu KGRpY3QxLCBkaWN0Miwgb3ZlcndyaXRlKTsKCkBAIC01NTIsNyArNTUyLDcgQEAgc3RhdGljIHZv aWQgcWRpY3Rfam9pbl90ZXN0KHZvaWQpCiAgICAgICAgIGdfYXNzZXJ0KHFkaWN0X2dldF9pbnQo ZGljdDEsICJiYXIiKSA9PSAyMyk7CgogICAgICAgICAvKiBUZXN0IGNvbmZsaWN0ICovCi0gICAg ICAgIHFkaWN0X3B1dChkaWN0MiwgImZvbyIsIHFpbnRfZnJvbV9pbnQoODQpKTsKKyAgICAgICAg cWRpY3RfcHV0X2ludChkaWN0MiwgImZvbyIsIDg0KTsKCiAgICAgICAgIHFkaWN0X2pvaW4oZGlj dDEsIGRpY3QyLCBvdmVyd3JpdGUpOwoKQEAgLTU5NCwxNSArNTk0LDE1IEBAIHN0YXRpYyB2b2lk IHFkaWN0X2NydW1wbGVfdGVzdF9yZWN1cnNpdmUodm9pZCkKICAgICBRTGlzdCAqcnVsZXM7Cgog ICAgIHNyYyA9IHFkaWN0X25ldygpOwotICAgIHFkaWN0X3B1dChzcmMsICJ2bmMubGlzdGVuLmFk ZHIiLCBxc3RyaW5nX2Zyb21fc3RyKCIxMjcuMC4wLjEiKSk7Ci0gICAgcWRpY3RfcHV0KHNyYywg InZuYy5saXN0ZW4ucG9ydCIsIHFzdHJpbmdfZnJvbV9zdHIoIjU5MDEiKSk7Ci0gICAgcWRpY3Rf cHV0KHNyYywgInZuYy5hY2wucnVsZXMuMC5tYXRjaCIsIHFzdHJpbmdfZnJvbV9zdHIoImZyZWQi KSk7Ci0gICAgcWRpY3RfcHV0KHNyYywgInZuYy5hY2wucnVsZXMuMC5wb2xpY3kiLCBxc3RyaW5n X2Zyb21fc3RyKCJhbGxvdyIpKTsKLSAgICBxZGljdF9wdXQoc3JjLCAidm5jLmFjbC5ydWxlcy4x Lm1hdGNoIiwgcXN0cmluZ19mcm9tX3N0cigiYm9iIikpOwotICAgIHFkaWN0X3B1dChzcmMsICJ2 bmMuYWNsLnJ1bGVzLjEucG9saWN5IiwgcXN0cmluZ19mcm9tX3N0cigiZGVueSIpKTsKLSAgICBx ZGljdF9wdXQoc3JjLCAidm5jLmFjbC5kZWZhdWx0IiwgcXN0cmluZ19mcm9tX3N0cigiZGVueSIp KTsKLSAgICBxZGljdF9wdXQoc3JjLCAidm5jLmFjbC4ubmFtZSIsIHFzdHJpbmdfZnJvbV9zdHIo ImFjbDAiKSk7Ci0gICAgcWRpY3RfcHV0KHNyYywgInZuYy5hY2wucnVsZS4ubmFtZSIsIHFzdHJp bmdfZnJvbV9zdHIoImFjbDAiKSk7CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJ2bmMubGlzdGVu LmFkZHIiLCAiMTI3LjAuMC4xIik7CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJ2bmMubGlzdGVu LnBvcnQiLCAiNTkwMSIpOworICAgIHFkaWN0X3B1dF9zdHIoc3JjLCAidm5jLmFjbC5ydWxlcy4w Lm1hdGNoIiwgImZyZWQiKTsKKyAgICBxZGljdF9wdXRfc3RyKHNyYywgInZuYy5hY2wucnVsZXMu MC5wb2xpY3kiLCAiYWxsb3ciKTsKKyAgICBxZGljdF9wdXRfc3RyKHNyYywgInZuYy5hY2wucnVs ZXMuMS5tYXRjaCIsICJib2IiKTsKKyAgICBxZGljdF9wdXRfc3RyKHNyYywgInZuYy5hY2wucnVs ZXMuMS5wb2xpY3kiLCAiZGVueSIpOworICAgIHFkaWN0X3B1dF9zdHIoc3JjLCAidm5jLmFjbC5k ZWZhdWx0IiwgImRlbnkiKTsKKyAgICBxZGljdF9wdXRfc3RyKHNyYywgInZuYy5hY2wuLm5hbWUi LCAiYWNsMCIpOworICAgIHFkaWN0X3B1dF9zdHIoc3JjLCAidm5jLmFjbC5ydWxlLi5uYW1lIiwg ImFjbDAiKTsKCiAgICAgZHN0ID0gcW9iamVjdF90b19xZGljdChxZGljdF9jcnVtcGxlKHNyYywg JmVycm9yX2Fib3J0KSk7CiAgICAgZ19hc3NlcnQoZHN0KTsKQEAgLTY2OSw4ICs2NjksOCBAQCBz dGF0aWMgdm9pZCBxZGljdF9jcnVtcGxlX3Rlc3RfYmFkX2lucHV0cyh2b2lkKQoKICAgICBzcmMg PSBxZGljdF9uZXcoKTsKICAgICAvKiBydWxlLjAgY2FuJ3QgYmUgYm90aCBhIHN0cmluZyBhbmQg YSBkaWN0ICovCi0gICAgcWRpY3RfcHV0KHNyYywgInJ1bGUuMCIsIHFzdHJpbmdfZnJvbV9zdHIo ImZyZWQiKSk7Ci0gICAgcWRpY3RfcHV0KHNyYywgInJ1bGUuMC5wb2xpY3kiLCBxc3RyaW5nX2Zy b21fc3RyKCJhbGxvdyIpKTsKKyAgICBxZGljdF9wdXRfc3RyKHNyYywgInJ1bGUuMCIsICJmcmVk Iik7CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJydWxlLjAucG9saWN5IiwgImFsbG93Iik7Cgog ICAgIGdfYXNzZXJ0KHFkaWN0X2NydW1wbGUoc3JjLCAmZXJyb3IpID09IE5VTEwpOwogICAgIGdf YXNzZXJ0KGVycm9yICE9IE5VTEwpOwpAQCAtNjgwLDggKzY4MCw4IEBAIHN0YXRpYyB2b2lkIHFk aWN0X2NydW1wbGVfdGVzdF9iYWRfaW5wdXRzKHZvaWQpCgogICAgIHNyYyA9IHFkaWN0X25ldygp OwogICAgIC8qIHJ1bGUgY2FuJ3QgYmUgYm90aCBhIGxpc3QgYW5kIGEgZGljdCAqLwotICAgIHFk aWN0X3B1dChzcmMsICJydWxlLjAiLCBxc3RyaW5nX2Zyb21fc3RyKCJmcmVkIikpOwotICAgIHFk aWN0X3B1dChzcmMsICJydWxlLmEiLCBxc3RyaW5nX2Zyb21fc3RyKCJhbGxvdyIpKTsKKyAgICBx ZGljdF9wdXRfc3RyKHNyYywgInJ1bGUuMCIsICJmcmVkIik7CisgICAgcWRpY3RfcHV0X3N0cihz cmMsICJydWxlLmEiLCAiYWxsb3ciKTsKCiAgICAgZ19hc3NlcnQocWRpY3RfY3J1bXBsZShzcmMs ICZlcnJvcikgPT0gTlVMTCk7CiAgICAgZ19hc3NlcnQoZXJyb3IgIT0gTlVMTCk7CkBAIC02OTIs NyArNjkyLDcgQEAgc3RhdGljIHZvaWQgcWRpY3RfY3J1bXBsZV90ZXN0X2JhZF9pbnB1dHModm9p ZCkKICAgICBzcmMgPSBxZGljdF9uZXcoKTsKICAgICAvKiBUaGUgaW5wdXQgc2hvdWxkIGJlIGZs YXQsIGllIG5vIGRpY3RzIG9yIGxpc3RzICovCiAgICAgcWRpY3RfcHV0KHNyYywgInJ1bGUuYSIs IHFkaWN0X25ldygpKTsKLSAgICBxZGljdF9wdXQoc3JjLCAicnVsZS5iIiwgcXN0cmluZ19mcm9t X3N0cigiYWxsb3ciKSk7CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJydWxlLmIiLCAiYWxsb3ci KTsKCiAgICAgZ19hc3NlcnQocWRpY3RfY3J1bXBsZShzcmMsICZlcnJvcikgPT0gTlVMTCk7CiAg ICAgZ19hc3NlcnQoZXJyb3IgIT0gTlVMTCk7CkBAIC03MDIsOCArNzAyLDggQEAgc3RhdGljIHZv aWQgcWRpY3RfY3J1bXBsZV90ZXN0X2JhZF9pbnB1dHModm9pZCkKCiAgICAgc3JjID0gcWRpY3Rf bmV3KCk7CiAgICAgLyogTGlzdCBpbmRleGVzIG11c3Qgbm90IGhhdmUgZ2FwcyAqLwotICAgIHFk aWN0X3B1dChzcmMsICJydWxlLjAiLCBxc3RyaW5nX2Zyb21fc3RyKCJkZW55IikpOwotICAgIHFk aWN0X3B1dChzcmMsICJydWxlLjMiLCBxc3RyaW5nX2Zyb21fc3RyKCJhbGxvdyIpKTsKKyAgICBx ZGljdF9wdXRfc3RyKHNyYywgInJ1bGUuMCIsICJkZW55Iik7CisgICAgcWRpY3RfcHV0X3N0cihz cmMsICJydWxlLjMiLCAiYWxsb3ciKTsKCiAgICAgZ19hc3NlcnQocWRpY3RfY3J1bXBsZShzcmMs ICZlcnJvcikgPT0gTlVMTCk7CiAgICAgZ19hc3NlcnQoZXJyb3IgIT0gTlVMTCk7CkBAIC03MTMs OCArNzEzLDggQEAgc3RhdGljIHZvaWQgcWRpY3RfY3J1bXBsZV90ZXN0X2JhZF9pbnB1dHModm9p ZCkKCiAgICAgc3JjID0gcWRpY3RfbmV3KCk7CiAgICAgLyogTGlzdCBpbmRleGVzIG11c3QgYmUg aW4gJXp1IGZvcm1hdCAqLwotICAgIHFkaWN0X3B1dChzcmMsICJydWxlLjAiLCBxc3RyaW5nX2Zy b21fc3RyKCJkZW55IikpOwotICAgIHFkaWN0X3B1dChzcmMsICJydWxlLisxIiwgcXN0cmluZ19m cm9tX3N0cigiYWxsb3ciKSk7CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJydWxlLjAiLCAiZGVu eSIpOworICAgIHFkaWN0X3B1dF9zdHIoc3JjLCAicnVsZS4rMSIsICJhbGxvdyIpOwoKICAgICBn X2Fzc2VydChxZGljdF9jcnVtcGxlKHNyYywgJmVycm9yKSA9PSBOVUxMKTsKICAgICBnX2Fzc2Vy dChlcnJvciAhPSBOVUxMKTsKQEAgLTczMyw4ICs3MzMsOCBAQCBzdGF0aWMgdm9pZCBxZGljdF9w dXRfZXhpc3RzX3Rlc3Qodm9pZCkKICAgICBjb25zdCBjaGFyICprZXkgPSAiZXhpc3RzIjsKICAg ICBRRGljdCAqdGVzdHNfZGljdCA9IHFkaWN0X25ldygpOwoKLSAgICBxZGljdF9wdXQodGVzdHNf ZGljdCwga2V5LCBxaW50X2Zyb21faW50KDEpKTsKLSAgICBxZGljdF9wdXQodGVzdHNfZGljdCwg a2V5LCBxaW50X2Zyb21faW50KDIpKTsKKyAgICBxZGljdF9wdXRfaW50KHRlc3RzX2RpY3QsIGtl eSwgMSk7CisgICAgcWRpY3RfcHV0X2ludCh0ZXN0c19kaWN0LCBrZXksIDIpOwoKICAgICB2YWx1 ZSA9IHFkaWN0X2dldF9pbnQodGVzdHNfZGljdCwga2V5KTsKICAgICBnX2Fzc2VydCh2YWx1ZSA9 PSAyKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrLXFsaXN0LmMgYi90ZXN0cy9jaGVjay1xbGlz dC5jCmluZGV4IGUxNmRhNWUuLjQ5ODM4NjcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrLXFsaXN0 LmMKKysrIGIvdGVzdHMvY2hlY2stcWxpc3QuYwpAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMgdm9p ZCBxbGlzdF9kZXN0cm95X3Rlc3Qodm9pZCkKICAgICBxbGlzdCA9IHFsaXN0X25ldygpOwoKICAg ICBmb3IgKGkgPSAwOyBpIDwgNDI7IGkrKykKLSAgICAgICAgcWxpc3RfYXBwZW5kKHFsaXN0LCBx aW50X2Zyb21faW50KGkpKTsKKyAgICAgICAgcWxpc3RfYXBwZW5kX2ludChxbGlzdCwgaSk7Cgog ICAgIFFERUNSRUYocWxpc3QpOwogfQpAQCAtMTAzLDcgKzEwMyw3IEBAIHN0YXRpYyB2b2lkIHFs aXN0X2l0ZXJfdGVzdCh2b2lkKQogICAgIHFsaXN0ID0gcWxpc3RfbmV3KCk7CgogICAgIGZvciAo aSA9IDA7IGkgPCBpdGVyX21heDsgaSsrKQotICAgICAgICBxbGlzdF9hcHBlbmQocWxpc3QsIHFp bnRfZnJvbV9pbnQoaSkpOworICAgICAgICBxbGlzdF9hcHBlbmRfaW50KHFsaXN0LCBpKTsKCiAg ICAgaXRlcl9jYWxsZWQgPSAwOwogICAgIHFsaXN0X2l0ZXIocWxpc3QsIGl0ZXJfZnVuYywgTlVM TCk7CmRpZmYgLS1naXQgYS90ZXN0cy9kZXZpY2UtaW50cm9zcGVjdC10ZXN0LmMgYi90ZXN0cy9k ZXZpY2UtaW50cm9zcGVjdC10ZXN0LmMKaW5kZXggYzU2MzdjYy4uYjFhYmIyYSAxMDA2NDQKLS0t IGEvdGVzdHMvZGV2aWNlLWludHJvc3BlY3QtdGVzdC5jCisrKyBiL3Rlc3RzL2RldmljZS1pbnRy b3NwZWN0LXRlc3QuYwpAQCAtMzIsOSArMzIsOSBAQCBzdGF0aWMgUUxpc3QgKnFvbV9saXN0X3R5 cGVzKGNvbnN0IGNoYXIgKmltcGxlbWVudHMsIGJvb2wgYWJzdHJhY3QpCiAgICAgUUxpc3QgKnJl dDsKICAgICBRRGljdCAqYXJncyA9IHFkaWN0X25ldygpOwoKLSAgICBxZGljdF9wdXQoYXJncywg ImFic3RyYWN0IiwgcWJvb2xfZnJvbV9ib29sKGFic3RyYWN0KSk7CisgICAgcWRpY3RfcHV0X2Jv b2woYXJncywgImFic3RyYWN0IiwgYWJzdHJhY3QpOwogICAgIGlmIChpbXBsZW1lbnRzKSB7Ci0g ICAgICAgIHFkaWN0X3B1dChhcmdzLCAiaW1wbGVtZW50cyIsIHFzdHJpbmdfZnJvbV9zdHIoaW1w bGVtZW50cykpOworICAgICAgICBxZGljdF9wdXRfc3RyKGFyZ3MsICJpbXBsZW1lbnRzIiwgaW1w bGVtZW50cyk7CiAgICAgfQogICAgIHJlc3AgPSBxbXAoInsnZXhlY3V0ZSc6ICdxb20tbGlzdC10 eXBlcycsIgogICAgICAgICAgICAgICAgIiAnYXJndW1lbnRzJzogJXAgfSIsIGFyZ3MpOwpkaWZm IC0tZ2l0IGEvdGVzdHMvdGVzdC1xZW11LW9wdHMuYyBiL3Rlc3RzL3Rlc3QtcWVtdS1vcHRzLmMK aW5kZXggMGFkNzRiNC4uY2MxYmIxYSAxMDA2NDQKLS0tIGEvdGVzdHMvdGVzdC1xZW11LW9wdHMu YworKysgYi90ZXN0cy90ZXN0LXFlbXUtb3B0cy5jCkBAIC0yOTksNyArMjk5LDcgQEAgc3RhdGlj IHZvaWQgdGVzdF9xZW11X29wdF9nZXRfc2l6ZSh2b2lkKQogICAgIGRpY3QgPSBxZGljdF9uZXco KTsKICAgICBnX2Fzc2VydChkaWN0ICE9IE5VTEwpOwoKLSAgICBxZGljdF9wdXQoZGljdCwgInNp emUxIiwgcXN0cmluZ19mcm9tX3N0cigiMTAiKSk7CisgICAgcWRpY3RfcHV0X3N0cihkaWN0LCAi c2l6ZTEiLCAiMTAiKTsKCiAgICAgcWVtdV9vcHRzX2Fic29yYl9xZGljdChvcHRzLCBkaWN0LCAm ZXJyb3JfYWJvcnQpOwogICAgIGdfYXNzZXJ0KGVycm9yX2Fib3J0ID09IE5VTEwpOwpAQCAtMzA5 LDcgKzMwOSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfcWVtdV9vcHRfZ2V0X3NpemUodm9pZCkKICAg ICBnX2Fzc2VydChvcHQgPT0gMTApOwoKICAgICAvKiByZXNldCB2YWx1ZSAqLwotICAgIHFkaWN0 X3B1dChkaWN0LCAic2l6ZTEiLCBxc3RyaW5nX2Zyb21fc3RyKCIxNSIpKTsKKyAgICBxZGljdF9w dXRfc3RyKGRpY3QsICJzaXplMSIsICIxNSIpOwoKICAgICBxZW11X29wdHNfYWJzb3JiX3FkaWN0 KG9wdHMsIGRpY3QsICZlcnJvcl9hYm9ydCk7CiAgICAgZ19hc3NlcnQoZXJyb3JfYWJvcnQgPT0g TlVMTCk7CmRpZmYgLS1naXQgYS90ZXN0cy90ZXN0LXFtcC1jb21tYW5kcy5jIGIvdGVzdHMvdGVz dC1xbXAtY29tbWFuZHMuYwppbmRleCBhYzNmZDAzLi5hY2RkZWQ0IDEwMDY0NAotLS0gYS90ZXN0 cy90ZXN0LXFtcC1jb21tYW5kcy5jCisrKyBiL3Rlc3RzL3Rlc3QtcW1wLWNvbW1hbmRzLmMKQEAg LTk0LDcgKzk0LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9kaXNwYXRjaF9jbWQodm9pZCkKICAgICBR RGljdCAqcmVxID0gcWRpY3RfbmV3KCk7CiAgICAgUU9iamVjdCAqcmVzcDsKCi0gICAgcWRpY3Rf cHV0KHJlcSwgImV4ZWN1dGUiLCBxc3RyaW5nX2Zyb21fc3RyKCJ1c2VyX2RlZl9jbWQiKSk7Cisg ICAgcWRpY3RfcHV0X3N0cihyZXEsICJleGVjdXRlIiwgInVzZXJfZGVmX2NtZCIpOwoKICAgICBy ZXNwID0gcW1wX2Rpc3BhdGNoKCZxbXBfY29tbWFuZHMsIFFPQkpFQ1QocmVxKSk7CiAgICAgYXNz ZXJ0KHJlc3AgIT0gTlVMTCk7CkBAIC0xMTEsNyArMTExLDcgQEAgc3RhdGljIHZvaWQgdGVzdF9k aXNwYXRjaF9jbWRfZmFpbHVyZSh2b2lkKQogICAgIFFEaWN0ICphcmdzID0gcWRpY3RfbmV3KCk7 CiAgICAgUU9iamVjdCAqcmVzcDsKCi0gICAgcWRpY3RfcHV0KHJlcSwgImV4ZWN1dGUiLCBxc3Ry aW5nX2Zyb21fc3RyKCJ1c2VyX2RlZl9jbWQyIikpOworICAgIHFkaWN0X3B1dF9zdHIocmVxLCAi ZXhlY3V0ZSIsICJ1c2VyX2RlZl9jbWQyIik7CgogICAgIHJlc3AgPSBxbXBfZGlzcGF0Y2goJnFt cF9jb21tYW5kcywgUU9CSkVDVChyZXEpKTsKICAgICBhc3NlcnQocmVzcCAhPSBOVUxMKTsKQEAg LTEyMiwxMCArMTIyLDEwIEBAIHN0YXRpYyB2b2lkIHRlc3RfZGlzcGF0Y2hfY21kX2ZhaWx1cmUo dm9pZCkKCiAgICAgLyogY2hlY2sgdGhhdCB3aXRoIGV4dHJhIGFyZ3VtZW50cyBpdCB0aHJvd3Mg YW4gZXJyb3IgKi8KICAgICByZXEgPSBxZGljdF9uZXcoKTsKLSAgICBxZGljdF9wdXQoYXJncywg ImEiLCBxaW50X2Zyb21faW50KDY2KSk7CisgICAgcWRpY3RfcHV0X2ludChhcmdzLCAiYSIsIDY2 KTsKICAgICBxZGljdF9wdXQocmVxLCAiYXJndW1lbnRzIiwgYXJncyk7CgotICAgIHFkaWN0X3B1 dChyZXEsICJleGVjdXRlIiwgcXN0cmluZ19mcm9tX3N0cigidXNlcl9kZWZfY21kIikpOworICAg IHFkaWN0X3B1dF9zdHIocmVxLCAiZXhlY3V0ZSIsICJ1c2VyX2RlZl9jbWQiKTsKCiAgICAgcmVz cCA9IHFtcF9kaXNwYXRjaCgmcW1wX2NvbW1hbmRzLCBRT0JKRUNUKHJlcSkpOwogICAgIGFzc2Vy dChyZXNwICE9IE5VTEwpOwpAQCAtMTY0LDE0ICsxNjQsMTQgQEAgc3RhdGljIHZvaWQgdGVzdF9k aXNwYXRjaF9jbWRfaW8odm9pZCkKICAgICBRRGljdCAqcmV0X2RpY3RfZGljdDIsICpyZXRfZGlj dF9kaWN0Ml91c2VyZGVmOwogICAgIFFJbnQgKnJldDM7CgotICAgIHFkaWN0X3B1dCh1ZDFhLCAi aW50ZWdlciIsIHFpbnRfZnJvbV9pbnQoNDIpKTsKLSAgICBxZGljdF9wdXQodWQxYSwgInN0cmlu ZyIsIHFzdHJpbmdfZnJvbV9zdHIoImhlbGxvIikpOwotICAgIHFkaWN0X3B1dCh1ZDFiLCAiaW50 ZWdlciIsIHFpbnRfZnJvbV9pbnQoNDIyKSk7Ci0gICAgcWRpY3RfcHV0KHVkMWIsICJzdHJpbmci LCBxc3RyaW5nX2Zyb21fc3RyKCJoZWxsbzIiKSk7CisgICAgcWRpY3RfcHV0X2ludCh1ZDFhLCAi aW50ZWdlciIsIDQyKTsKKyAgICBxZGljdF9wdXRfc3RyKHVkMWEsICJzdHJpbmciLCAiaGVsbG8i KTsKKyAgICBxZGljdF9wdXRfaW50KHVkMWIsICJpbnRlZ2VyIiwgNDIyKTsKKyAgICBxZGljdF9w dXRfc3RyKHVkMWIsICJzdHJpbmciLCAiaGVsbG8yIik7CiAgICAgcWRpY3RfcHV0KGFyZ3MsICJ1 ZDFhIiwgdWQxYSk7CiAgICAgcWRpY3RfcHV0KGFyZ3MsICJ1ZDFiIiwgdWQxYik7CiAgICAgcWRp Y3RfcHV0KHJlcSwgImFyZ3VtZW50cyIsIGFyZ3MpOwotICAgIHFkaWN0X3B1dChyZXEsICJleGVj dXRlIiwgcXN0cmluZ19mcm9tX3N0cigidXNlcl9kZWZfY21kMiIpKTsKKyAgICBxZGljdF9wdXRf c3RyKHJlcSwgImV4ZWN1dGUiLCAidXNlcl9kZWZfY21kMiIpOwoKICAgICByZXQgPSBxb2JqZWN0 X3RvX3FkaWN0KHRlc3RfcW1wX2Rpc3BhdGNoKHJlcSkpOwoKQEAgLTE5MCw5ICsxOTAsOSBAQCBz dGF0aWMgdm9pZCB0ZXN0X2Rpc3BhdGNoX2NtZF9pbyh2b2lkKQogICAgIGFzc2VydCghc3RyY21w KHFkaWN0X2dldF9zdHIocmV0X2RpY3RfZGljdDIsICJzdHJpbmciKSwgImJsYWg0IikpOwogICAg IFFERUNSRUYocmV0KTsKCi0gICAgcWRpY3RfcHV0KGFyZ3MzLCAiYSIsIHFpbnRfZnJvbV9pbnQo NjYpKTsKKyAgICBxZGljdF9wdXRfaW50KGFyZ3MzLCAiYSIsIDY2KTsKICAgICBxZGljdF9wdXQo cmVxLCAiYXJndW1lbnRzIiwgYXJnczMpOwotICAgIHFkaWN0X3B1dChyZXEsICJleGVjdXRlIiwg cXN0cmluZ19mcm9tX3N0cigiZ3Vlc3QtZ2V0LXRpbWUiKSk7CisgICAgcWRpY3RfcHV0X3N0cihy ZXEsICJleGVjdXRlIiwgImd1ZXN0LWdldC10aW1lIik7CgogICAgIHJldDMgPSBxb2JqZWN0X3Rv X3FpbnQodGVzdF9xbXBfZGlzcGF0Y2gocmVxKSk7CiAgICAgYXNzZXJ0KHFpbnRfZ2V0X2ludChy ZXQzKSA9PSA2Nik7CkBAIC0yNDQsNyArMjQ0LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9kZWFsbG9j X3BhcnRpYWwodm9pZCkKICAgICAgICAgVmlzaXRvciAqdjsKCiAgICAgICAgIHVkMl9kaWN0ID0g cWRpY3RfbmV3KCk7Ci0gICAgICAgIHFkaWN0X3B1dCh1ZDJfZGljdCwgInN0cmluZzAiLCBxc3Ry aW5nX2Zyb21fc3RyKHRleHQpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cih1ZDJfZGljdCwgInN0 cmluZzAiLCB0ZXh0KTsKCiAgICAgICAgIHYgPSBxb2JqZWN0X2lucHV0X3Zpc2l0b3JfbmV3KFFP QkpFQ1QodWQyX2RpY3QpKTsKICAgICAgICAgdmlzaXRfdHlwZV9Vc2VyRGVmVHdvKHYsIE5VTEws ICZ1ZDIsICZlcnIpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdC1xbXAtZXZlbnQuYyBiL3Rlc3Rz L3Rlc3QtcW1wLWV2ZW50LmMKaW5kZXggN2JiNjIxYi4uNGMwZjA5NiAxMDA2NDQKLS0tIGEvdGVz dHMvdGVzdC1xbXAtZXZlbnQuYworKysgYi90ZXN0cy90ZXN0LXFtcC1ldmVudC5jCkBAIC0xNTMs NyArMTUzLDcgQEAgc3RhdGljIHZvaWQgdGVzdF9ldmVudF9hKFRlc3RFdmVudERhdGEgKmRhdGEs CiB7CiAgICAgUURpY3QgKmQ7CiAgICAgZCA9IGRhdGEtPmV4cGVjdDsKLSAgICBxZGljdF9wdXQo ZCwgImV2ZW50IiwgcXN0cmluZ19mcm9tX3N0cigiRVZFTlRfQSIpKTsKKyAgICBxZGljdF9wdXRf c3RyKGQsICJldmVudCIsICJFVkVOVF9BIik7CiAgICAgcWFwaV9ldmVudF9zZW5kX2V2ZW50X2Eo JmVycm9yX2Fib3J0KTsKIH0KCkBAIC0xNjIsNyArMTYyLDcgQEAgc3RhdGljIHZvaWQgdGVzdF9l dmVudF9iKFRlc3RFdmVudERhdGEgKmRhdGEsCiB7CiAgICAgUURpY3QgKmQ7CiAgICAgZCA9IGRh dGEtPmV4cGVjdDsKLSAgICBxZGljdF9wdXQoZCwgImV2ZW50IiwgcXN0cmluZ19mcm9tX3N0cigi RVZFTlRfQiIpKTsKKyAgICBxZGljdF9wdXRfc3RyKGQsICJldmVudCIsICJFVkVOVF9CIik7CiAg ICAgcWFwaV9ldmVudF9zZW5kX2V2ZW50X2IoJmVycm9yX2Fib3J0KTsKIH0KCkBAIC0xNzcsMTYg KzE3NywxNiBAQCBzdGF0aWMgdm9pZCB0ZXN0X2V2ZW50X2MoVGVzdEV2ZW50RGF0YSAqZGF0YSwK ICAgICBiLmhhc19lbnVtMSA9IGZhbHNlOwoKICAgICBkX2IgPSBxZGljdF9uZXcoKTsKLSAgICBx ZGljdF9wdXQoZF9iLCAiaW50ZWdlciIsIHFpbnRfZnJvbV9pbnQoMikpOwotICAgIHFkaWN0X3B1 dChkX2IsICJzdHJpbmciLCBxc3RyaW5nX2Zyb21fc3RyKCJ0ZXN0MSIpKTsKKyAgICBxZGljdF9w dXRfaW50KGRfYiwgImludGVnZXIiLCAyKTsKKyAgICBxZGljdF9wdXRfc3RyKGRfYiwgInN0cmlu ZyIsICJ0ZXN0MSIpOwoKICAgICBkX2RhdGEgPSBxZGljdF9uZXcoKTsKLSAgICBxZGljdF9wdXQo ZF9kYXRhLCAiYSIsIHFpbnRfZnJvbV9pbnQoMSkpOworICAgIHFkaWN0X3B1dF9pbnQoZF9kYXRh LCAiYSIsIDEpOwogICAgIHFkaWN0X3B1dChkX2RhdGEsICJiIiwgZF9iKTsKLSAgICBxZGljdF9w dXQoZF9kYXRhLCAiYyIsIHFzdHJpbmdfZnJvbV9zdHIoInRlc3QyIikpOworICAgIHFkaWN0X3B1 dF9zdHIoZF9kYXRhLCAiYyIsICJ0ZXN0MiIpOwoKICAgICBkID0gZGF0YS0+ZXhwZWN0OwotICAg IHFkaWN0X3B1dChkLCAiZXZlbnQiLCBxc3RyaW5nX2Zyb21fc3RyKCJFVkVOVF9DIikpOworICAg IHFkaWN0X3B1dF9zdHIoZCwgImV2ZW50IiwgIkVWRU5UX0MiKTsKICAgICBxZGljdF9wdXQoZCwg ImRhdGEiLCBkX2RhdGEpOwoKICAgICBxYXBpX2V2ZW50X3NlbmRfZXZlbnRfYyh0cnVlLCAxLCB0 cnVlLCAmYiwgInRlc3QyIiwgJmVycm9yX2Fib3J0KTsKQEAgLTIxMywyMiArMjEzLDIyIEBAIHN0 YXRpYyB2b2lkIHRlc3RfZXZlbnRfZChUZXN0RXZlbnREYXRhICpkYXRhLAogICAgIGEuZW51bTIg PSBFTlVNX09ORV9WQUxVRTI7CgogICAgIGRfc3RydWN0MSA9IHFkaWN0X25ldygpOwotICAgIHFk aWN0X3B1dChkX3N0cnVjdDEsICJpbnRlZ2VyIiwgcWludF9mcm9tX2ludCgyKSk7Ci0gICAgcWRp Y3RfcHV0KGRfc3RydWN0MSwgInN0cmluZyIsIHFzdHJpbmdfZnJvbV9zdHIoInRlc3QxIikpOwot ICAgIHFkaWN0X3B1dChkX3N0cnVjdDEsICJlbnVtMSIsIHFzdHJpbmdfZnJvbV9zdHIoInZhbHVl MSIpKTsKKyAgICBxZGljdF9wdXRfaW50KGRfc3RydWN0MSwgImludGVnZXIiLCAyKTsKKyAgICBx ZGljdF9wdXRfc3RyKGRfc3RydWN0MSwgInN0cmluZyIsICJ0ZXN0MSIpOworICAgIHFkaWN0X3B1 dF9zdHIoZF9zdHJ1Y3QxLCAiZW51bTEiLCAidmFsdWUxIik7CgogICAgIGRfYSA9IHFkaWN0X25l dygpOwogICAgIHFkaWN0X3B1dChkX2EsICJzdHJ1Y3QxIiwgZF9zdHJ1Y3QxKTsKLSAgICBxZGlj dF9wdXQoZF9hLCAic3RyaW5nIiwgcXN0cmluZ19mcm9tX3N0cigidGVzdDIiKSk7Ci0gICAgcWRp Y3RfcHV0KGRfYSwgImVudW0yIiwgcXN0cmluZ19mcm9tX3N0cigidmFsdWUyIikpOworICAgIHFk aWN0X3B1dF9zdHIoZF9hLCAic3RyaW5nIiwgInRlc3QyIik7CisgICAgcWRpY3RfcHV0X3N0cihk X2EsICJlbnVtMiIsICJ2YWx1ZTIiKTsKCiAgICAgZF9kYXRhID0gcWRpY3RfbmV3KCk7CiAgICAg cWRpY3RfcHV0KGRfZGF0YSwgImEiLCBkX2EpOwotICAgIHFkaWN0X3B1dChkX2RhdGEsICJiIiwg cXN0cmluZ19mcm9tX3N0cigidGVzdDMiKSk7Ci0gICAgcWRpY3RfcHV0KGRfZGF0YSwgImVudW0z IiwgcXN0cmluZ19mcm9tX3N0cigidmFsdWUzIikpOworICAgIHFkaWN0X3B1dF9zdHIoZF9kYXRh LCAiYiIsICJ0ZXN0MyIpOworICAgIHFkaWN0X3B1dF9zdHIoZF9kYXRhLCAiZW51bTMiLCAidmFs dWUzIik7CgogICAgIGQgPSBkYXRhLT5leHBlY3Q7Ci0gICAgcWRpY3RfcHV0KGQsICJldmVudCIs IHFzdHJpbmdfZnJvbV9zdHIoIkVWRU5UX0QiKSk7CisgICAgcWRpY3RfcHV0X3N0cihkLCAiZXZl bnQiLCAiRVZFTlRfRCIpOwogICAgIHFkaWN0X3B1dChkLCAiZGF0YSIsIGRfZGF0YSk7CgogICAg IHFhcGlfZXZlbnRfc2VuZF9ldmVudF9kKCZhLCAidGVzdDMiLCBmYWxzZSwgTlVMTCwgdHJ1ZSwg RU5VTV9PTkVfVkFMVUUzLApkaWZmIC0tZ2l0IGEvdGVzdHMvdGVzdC1xb2JqZWN0LW91dHB1dC12 aXNpdG9yLmMgYi90ZXN0cy90ZXN0LXFvYmplY3Qtb3V0cHV0LXZpc2l0b3IuYwppbmRleCBjMjEz ZmNlLi45NGI5NTE4IDEwMDY0NAotLS0gYS90ZXN0cy90ZXN0LXFvYmplY3Qtb3V0cHV0LXZpc2l0 b3IuYworKysgYi90ZXN0cy90ZXN0LXFvYmplY3Qtb3V0cHV0LXZpc2l0b3IuYwpAQCAtMzQzLDkg KzM0Myw5IEBAIHN0YXRpYyB2b2lkIHRlc3RfdmlzaXRvcl9vdXRfYW55KFRlc3RPdXRwdXRWaXNp dG9yRGF0YSAqZGF0YSwKCiAgICAgdmlzaXRvcl9yZXNldChkYXRhKTsKICAgICBxZGljdCA9IHFk aWN0X25ldygpOwotICAgIHFkaWN0X3B1dChxZGljdCwgImludGVnZXIiLCBxaW50X2Zyb21faW50 KC00MikpOwotICAgIHFkaWN0X3B1dChxZGljdCwgImJvb2xlYW4iLCBxYm9vbF9mcm9tX2Jvb2wo dHJ1ZSkpOwotICAgIHFkaWN0X3B1dChxZGljdCwgInN0cmluZyIsIHFzdHJpbmdfZnJvbV9zdHIo ImZvbyIpKTsKKyAgICBxZGljdF9wdXRfaW50KHFkaWN0LCAiaW50ZWdlciIsIC00Mik7CisgICAg cWRpY3RfcHV0X2Jvb2wocWRpY3QsICJib29sZWFuIiwgdHJ1ZSk7CisgICAgcWRpY3RfcHV0X3N0 cihxZGljdCwgInN0cmluZyIsICJmb28iKTsKICAgICBxb2JqID0gUU9CSkVDVChxZGljdCk7CiAg ICAgdmlzaXRfdHlwZV9hbnkoZGF0YS0+b3YsIE5VTEwsICZxb2JqLCAmZXJyb3JfYWJvcnQpOwog ICAgIHFvYmplY3RfZGVjcmVmKHFvYmopOwpkaWZmIC0tZ2l0IGEvdXRpbC9xZW11LW9wdGlvbi5j IGIvdXRpbC9xZW11LW9wdGlvbi5jCmluZGV4IDVjZTFiNWMuLmEzNmNhZmEgMTAwNjQ0Ci0tLSBh L3V0aWwvcWVtdS1vcHRpb24uYworKysgYi91dGlsL3FlbXUtb3B0aW9uLmMKQEAgLTEwNjAsNyAr MTA2MCw3IEBAIFFEaWN0ICpxZW11X29wdHNfdG9fcWRpY3QoUWVtdU9wdHMgKm9wdHMsIFFEaWN0 ICpxZGljdCkKICAgICAgICAgcWRpY3QgPSBxZGljdF9uZXcoKTsKICAgICB9CiAgICAgaWYgKG9w dHMtPmlkKSB7Ci0gICAgICAgIHFkaWN0X3B1dChxZGljdCwgImlkIiwgcXN0cmluZ19mcm9tX3N0 cihvcHRzLT5pZCkpOworICAgICAgICBxZGljdF9wdXRfc3RyKHFkaWN0LCAiaWQiLCBvcHRzLT5p ZCk7CiAgICAgfQogICAgIFFUQUlMUV9GT1JFQUNIKG9wdCwgJm9wdHMtPmhlYWQsIG5leHQpIHsK ICAgICAgICAgdmFsID0gUU9CSkVDVChxc3RyaW5nX2Zyb21fc3RyKG9wdC0+c3RyKSk7Ci0tIAoy LjkuMwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=