From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 14418 invoked from network); 20 Apr 2021 11:21:10 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 20 Apr 2021 11:21:10 -0000 Content-Type: multipart/mixed; boundary="===============2231488532724498466==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_gnome-photos=3A_update_to_40=2E0=2E?= To: ml@inbox.vuxu.org From: Gottox Reply-to: ml@inbox.vuxu.org Message-ID: Date: Tue, 20 Apr 2021 13:21:09 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============2231488532724498466== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IEdvdHRveCBhZ2FpbnN0IG1hc3RlciBvbiB0 aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vR290dG94L3Zv aWQtcGFja2FnZXMgZ25vbWUtcGhvdG9zLTQwLjAKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzMwMzYwCgpnbm9tZS1waG90b3M6IHVwZGF0ZSB0byA0MC4w LgoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvcHVsbC8zMDM2MC5wYXRjaCBpcyBhdHRhY2hlZA== --===============2231488532724498466== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gnome-photos-40.0-30360.patch" RnJvbSBlMDliYmMxYWE4YjM2YWUxNWNmZTJjYWMyZDdjZjQyZDIwNDI1NDI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+CkRh dGU6IFR1ZSwgMjAgQXByIDIwMjEgMTM6MjE6MDggKzAyMDAKU3ViamVjdDogW1BBVENIXSBnbm9t ZS1waG90b3M6IHVwZGF0ZSB0byA0MC4wLgoKLS0tCiAuLi4vcGF0Y2hlcy9maXgtZG91YmxlLWRl Y2xhcmF0aW9uLmRpZmYgICAgICAgfCAgIDExICsKIHNyY3BrZ3MvZ25vbWUtcGhvdG9zL3BhdGNo ZXMvdHJhY2tlcjMucGF0Y2ggICB8IDQxNTEgLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvZ25v bWUtcGhvdG9zL3RlbXBsYXRlICAgICAgICAgICAgICAgICB8ICAgIDcgKy0KIDMgZmlsZXMgY2hh bmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgNDE1NSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2dub21lLXBob3Rvcy9wYXRjaGVzL2ZpeC1kb3VibGUtZGVjbGFyYXRpb24u ZGlmZgogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtcGhvdG9zL3BhdGNoZXMvdHJh Y2tlcjMucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXBob3Rvcy9wYXRjaGVzL2Zp eC1kb3VibGUtZGVjbGFyYXRpb24uZGlmZiBiL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3BhdGNoZXMv Zml4LWRvdWJsZS1kZWNsYXJhdGlvbi5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uMDE2MmUxM2RiNDJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9t ZS1waG90b3MvcGF0Y2hlcy9maXgtZG91YmxlLWRlY2xhcmF0aW9uLmRpZmYKQEAgLTAsMCArMSwx MSBAQAorLS0tIHNyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmgub3JpZwkyMDIxLTA0LTIwIDEzOjE2 OjA3LjA0MjM0ODM3NSArMDIwMAorKysrIHNyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmgJMjAyMS0w NC0yMCAxMzoxNjoxNi45NzQzNDc5NTMgKzAyMDAKK0BAIC03OCw4ICs3OCw2IEBAIGd1aW50ICAg ICAgICAgICAgICAgcGhvdG9zX2Jhc2VfbWFuYWdlcl8KKyAKKyBHT2JqZWN0ICAgICAgICAgICAg KnBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3ByZXZpb3VzX29iamVjdCAgICAgIChQaG90b3NCYXNl TWFuYWdlciAqc2VsZiwgR09iamVjdCAqb2JqZWN0KTsKKyAKKy1QaG90b3NTcGFycWxUZW1wbGF0 ZSAqcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBsYXRlICAgIChQaG90b3NCYXNl TWFuYWdlciAqc2VsZiwgZ2ludCBmbGFncyk7CistCisgY29uc3QgZ2NoYXIgICAgICAgICpwaG90 b3NfYmFzZV9tYW5hZ2VyX2dldF90aXRsZSAgICAgICAgICAgICAgICAoUGhvdG9zQmFzZU1hbmFn ZXIgKnNlbGYpOworIAorIGdjaGFyICAgICAgICAgICAgICAqcGhvdG9zX2Jhc2VfbWFuYWdlcl9n ZXRfd2hlcmUgICAgICAgICAgICAgICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBnaW50IGZs YWdzKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3BhdGNoZXMvdHJhY2tlcjMu cGF0Y2ggYi9zcmNwa2dzL2dub21lLXBob3Rvcy9wYXRjaGVzL3RyYWNrZXIzLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MDYyZmFjMmIyNjMuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL2dub21lLXBob3Rvcy9wYXRjaGVzL3RyYWNrZXIzLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNDE1MSArMCwwIEBACi1Gcm9tIDQ2NzNjNDBhN2MwMDZjY2I2ZGUyMDNlYzJiMjVj YTM5YTc0NzgyZDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTYW0gVGh1cnNmaWVs ZCA8c2FtQGFmdWVyYS5tZS51az4KLURhdGU6IFdlZCwgMjcgTWF5IDIwMjAgMTM6MDc6NTggKzAy MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzNdIEZpeCBidWlsZCBmYWlsdXJlIGR1ZSB0byB1bmRlZmlu ZWQgTV9QSSBjb25zdGFudAotCi1UaGUgPG1hdGguaD4gaGVhZGVyIG5lZWRzIHRvIGJlIGluY2x1 ZGVkLgotCi1QcmV2aW91c2x5IEkgc3VwcG9zZSBsaWJ0cmFja2VyLXNwYXJxbC5oIHB1bGxlZCB0 aGlzIGluLgotLS0tCi0gc3JjL3Bob3Rvcy11dGlscy5jIHwgMSArCi0gMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspCi0KLWRpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXV0aWxzLmMgYi9zcmMv cGhvdG9zLXV0aWxzLmMKLWluZGV4IDFkN2JlNTc3Li5kNjU5YjQ3ZCAxMDA2NDQKLS0tLSBhL3Ny Yy9waG90b3MtdXRpbHMuYwotKysrIGIvc3JjL3Bob3Rvcy11dGlscy5jCi1AQCAtMzIsNiArMzIs NyBAQAotICNpbmNsdWRlIDxnbGliLmg+Ci0gI2luY2x1ZGUgPHRyYWNrZXItc3BhcnFsLmg+Ci0g I2luY2x1ZGUgPGxpYmdkL2dkLmg+Ci0rI2luY2x1ZGUgPG1hdGguaD4KLSAKLSAjaW5jbHVkZSAi cGhvdG9zLWFwcGxpY2F0aW9uLmgiCi0gI2luY2x1ZGUgInBob3Rvcy1kZXZpY2UtaXRlbS5oIgot LS0gCi1HaXRMYWIKLQotCi1Gcm9tIDE4ZjEyNmE2N2EzN2QxZjZlZmU1NDZlNDJlZWYyMmFlMTVk YTc2NDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTYW0gVGh1cnNmaWVsZCA8c2Ft QGFmdWVyYS5tZS51az4KLURhdGU6IFN1biwgNyBKdW4gMjAyMCAyMTo1MzoyMCArMDIwMAotU3Vi amVjdDogW1BBVENIIDIvM10gR2VuZXJhdGUgcXVlcmllcyB1c2luZyBTUEFSUUwgdGVtcGxhdGVz Ci0KLVRoZSBjb2RlIHRvIGdlbmVyYXRlIFNQQVJRTCBxdWVyaWVzIHdhcyBzcGxpdCBhY3Jvc3Mg bWFueSBkaWZmZXJlbnQKLXNvdXJjZSBmaWxlcywgbWFraW5nIGl0IGRpZmZpY3VsdCB0byBtYWtl IGJpZyBjaGFuZ2VzLiBOb3cgdGhlCi1xdWVyaWVzIGFyZSB3cml0dGVuIG91dCBhcyB0ZW1wbGF0 ZXMgYW5kIHdlIHVzZSB0ZW1wbGF0ZSBzdWJzdGl0dXRpb24KLXRvIGJ1aWxkIHRoZSBTUEFSUUwg dGhhdCB3ZSBzZW5kIHRvIFRyYWNrZXIuCi0tLS0KLSBzcmMvbWVzb24uYnVpbGQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICA1ICsKLSBzcmMvcGhvdG9zLWJhc2UtbWFuYWdlci5jICAg ICAgICAgICAgICAgICAgIHwgIDE1ICsrCi0gc3JjL3Bob3Rvcy1iYXNlLW1hbmFnZXIuaCAgICAg ICAgICAgICAgICAgICB8ICAgNCArCi0gc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmMgICAgICAgICAg ICAgICAgICAgICB8ICAgOCAtCi0gc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmggICAgICAgICAgICAg ICAgICAgICB8ICAgMyAtCi0gc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMgICAgICAgICAgICAg ICAgICB8IDIwNyArKysrKysrKystLS0tLS0tLS0tLQotIHNyYy9waG90b3Mtc2VhcmNoLXR5cGUt bWFuYWdlci5jICAgICAgICAgICAgfCAgNTkgKy0tLS0tCi0gc3JjL3Bob3Rvcy1zZWFyY2gtdHlw ZS5jICAgICAgICAgICAgICAgICAgICB8ICA2NyArKystLS0tCi0gc3JjL3Bob3Rvcy1zZWFyY2gt dHlwZS5oICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQotIHNyYy9waG90b3Mtc3BhcnFsLXRl bXBsYXRlLmMgICAgICAgICAgICAgICAgfCAxODcgKysrKysrKysrKysrKysrKysrCi0gc3JjL3Bo b3Rvcy1zcGFycWwtdGVtcGxhdGUuaCAgICAgICAgICAgICAgICB8ICAzOCArKysrCi0gc3JjL3Bo b3Rvcy5ncmVzb3VyY2UueG1sICAgICAgICAgICAgICAgICAgICB8ICAgNCArCi0gc3JjL3F1ZXJp ZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZSAgICAgICAgICAgICB8ICAzMSArKysKLSBzcmMvcXVlcmll cy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUgICAgIHwgIDE0ICsrCi0gc3JjL3F1ZXJpZXMv ZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSB8ICAxMiArKwotIHNyYy9xdWVyaWVzL3Bo b3Rvcy5zcGFycWwudGVtcGxhdGUgICAgICAgICAgfCAgMTEgKysKLSAxNiBmaWxlcyBjaGFuZ2Vk LCA0NDYgaW5zZXJ0aW9ucygrKSwgMjI1IGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5jCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9w aG90b3Mtc3BhcnFsLXRlbXBsYXRlLmgKLSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3F1ZXJpZXMv YWxsLnNwYXJxbC50ZW1wbGF0ZQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcXVlcmllcy9jb2xs ZWN0aW9ucy5zcGFycWwudGVtcGxhdGUKLSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3F1ZXJpZXMv ZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMv cXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlCi0KLWRpZmYgLS1naXQgYS9zcmMvbWVzb24u YnVpbGQgYi9zcmMvbWVzb24uYnVpbGQKLWluZGV4IDk5MTlmMGNmLi5iNWIyNzU5YyAxMDA2NDQK LS0tLSBhL3NyYy9tZXNvbi5idWlsZAotKysrIGIvc3JjL21lc29uLmJ1aWxkCi1AQCAtMTk1LDYg KzE5NSw3IEBAIHNvdXJjZXMgPSBjb21tb25fc291cmNlcyArIGZpbGVzKAotICAgJ3Bob3Rvcy1z b3VyY2UuYycsCi0gICAncGhvdG9zLXNvdXJjZS1tYW5hZ2VyLmMnLAotICAgJ3Bob3Rvcy1zb3Vy Y2Utbm90aWZpY2F0aW9uLmMnLAotKyAgJ3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuYycsCi0gICAn cGhvdG9zLXNwaW5uZXItYm94LmMnLAotICAgJ3Bob3Rvcy10aHVtYm5haWwtZmFjdG9yeS5jJywK LSAgICdwaG90b3MtdG9vbC5jJywKLUBAIC0yOTAsNiArMjkxLDEwIEBAIHJlc291cmNlX2RhdGEg PSBmaWxlcygKLSAgICdwaG90b3Mtc2VsZWN0aW9uLXRvb2xiYXIudWknLAotICAgJ3Bob3Rvcy1z aGFyZS1kaWFsb2cudWknLAotICAgJ3Bob3Rvcy16b29tLWNvbnRyb2xzLnVpJywKLSsgICdxdWVy aWVzL2FsbC5zcGFycWwudGVtcGxhdGUnLAotKyAgJ3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFs LnRlbXBsYXRlJywKLSsgICdxdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGUn LAotKyAgJ3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZScsCi0gKQotIAotIHNvdXJjZXMg Kz0gZ25vbWUuY29tcGlsZV9yZXNvdXJjZXMoCi1kaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1iYXNl LW1hbmFnZXIuYyBiL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmMKLWluZGV4IGQ0OWQxOWE1Li4w NTI2MzhkNSAxMDA2NDQKLS0tLSBhL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmMKLSsrKyBiL3Ny Yy9waG90b3MtYmFzZS1tYW5hZ2VyLmMKLUBAIC0yNTAsNiArMjUwLDEyIEBAIHBob3Rvc19iYXNl X21hbmFnZXJfZGVmYXVsdF9nZXRfd2hlcmUgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBnaW50 IGZsYWdzKQotIH0KLSAKLSAKLStzdGF0aWMgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKgotK3Bob3Rv c19iYXNlX21hbmFnZXJfZGVmYXVsdF9nZXRfc3BhcnFsX3RlbXBsYXRlIChQaG90b3NCYXNlTWFu YWdlciAqc2VsZiwgZ2ludCBmbGFncykKLSt7Ci0rICByZXR1cm4gTlVMTDsKLSt9Ci0rCi0gc3Rh dGljIHZvaWQKLSBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfcmVtb3ZlX29iamVjdF9ieV9p ZCAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGNvbnN0IGdjaGFyICppZCkKLSB7Ci1AQCAtNDM4 LDYgKzQ0NCw3IEBAIHBob3Rvc19iYXNlX21hbmFnZXJfY2xhc3NfaW5pdCAoUGhvdG9zQmFzZU1h bmFnZXJDbGFzcyAqY2xhc3MpCi0gICBjbGFzcy0+Z2V0X29iamVjdF9ieV9pZCA9IHBob3Rvc19i YXNlX21hbmFnZXJfZGVmYXVsdF9nZXRfb2JqZWN0X2J5X2lkOwotICAgY2xhc3MtPmdldF9wcmV2 aW91c19vYmplY3QgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfZ2V0X3ByZXZpb3VzX29i amVjdDsKLSAgIGNsYXNzLT5nZXRfd2hlcmUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRf Z2V0X3doZXJlOwotKyAgY2xhc3MtPmdldF9zcGFycWxfdGVtcGxhdGUgPSBwaG90b3NfYmFzZV9t YW5hZ2VyX2RlZmF1bHRfZ2V0X3NwYXJxbF90ZW1wbGF0ZTsKLSAgIGNsYXNzLT5yZW1vdmVfb2Jq ZWN0X2J5X2lkID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9kZWZhdWx0X3JlbW92ZV9vYmplY3RfYnlf aWQ7Ci0gICBjbGFzcy0+c2V0X2FjdGl2ZV9vYmplY3QgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2Rl ZmF1bHRfc2V0X2FjdGl2ZV9vYmplY3Q7Ci0gCi1AQCAtNzE0LDYgKzcyMSwxNCBAQCBwaG90b3Nf YmFzZV9tYW5hZ2VyX2dldF93aGVyZSAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGdpbnQgZmxh Z3MpCi0gfQotIAotIAotK1Bob3Rvc1NwYXJxbFRlbXBsYXRlICoKLStwaG90b3NfYmFzZV9tYW5h Z2VyX2dldF9zcGFycWxfdGVtcGxhdGUgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBnaW50IGZs YWdzKQotK3sKLSsgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChQSE9UT1NfSVNfQkFTRV9NQU5BR0VS IChzZWxmKSwgTlVMTCk7Ci0rICByZXR1cm4gUEhPVE9TX0JBU0VfTUFOQUdFUl9HRVRfQ0xBU1Mg KHNlbGYpLT5nZXRfc3BhcnFsX3RlbXBsYXRlIChzZWxmLCBmbGFncyk7Ci0rfQotKwotKwotIHZv aWQKLSBwaG90b3NfYmFzZV9tYW5hZ2VyX3Byb2Nlc3NfbmV3X29iamVjdHMgKFBob3Rvc0Jhc2VN YW5hZ2VyICpzZWxmLCBHSGFzaFRhYmxlICpuZXdfb2JqZWN0cykKLSB7Ci1kaWZmIC0tZ2l0IGEv c3JjL3Bob3Rvcy1iYXNlLW1hbmFnZXIuaCBiL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmgKLWlu ZGV4IDk5ZDIwM2U5Li4wNGNmYTdkYiAxMDA2NDQKLS0tLSBhL3NyYy9waG90b3MtYmFzZS1tYW5h Z2VyLmgKLSsrKyBiL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmgKLUBAIC0yNCw2ICsyNCw3IEBA Ci0gI2RlZmluZSBQSE9UT1NfQkFTRV9NQU5BR0VSX0gKLSAKLSAjaW5jbHVkZSA8Z2xpYi1vYmpl Y3QuaD4KLSsjaW5jbHVkZSAicGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oIgotIAotIEdfQkVHSU5f REVDTFMKLSAKLUBAIC00Niw2ICs0Nyw3IEBAIHN0cnVjdCBfUGhvdG9zQmFzZU1hbmFnZXJDbGFz cwotICAgZ2NoYXIgICAgICAgICAqKCpnZXRfd2hlcmUpICAgICAgICAgICAgICAoUGhvdG9zQmFz ZU1hbmFnZXIgKnNlbGYsIGdpbnQgZmxhZ3MpOwotICAgdm9pZCAgICAgICAgICAgKCpyZW1vdmVf b2JqZWN0X2J5X2lkKSAgICAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGNvbnN0IGdjaGFyICpp ZCk7Ci0gICBnYm9vbGVhbiAgICAgICAoKnNldF9hY3RpdmVfb2JqZWN0KSAgICAgIChQaG90b3NC YXNlTWFuYWdlciAqc2VsZiwgR09iamVjdCAqb2JqZWN0KTsKLSsgIFBob3Rvc1NwYXJxbFRlbXBs YXRlICooKmdldF9zcGFycWxfdGVtcGxhdGUpIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgZ2lu dCBmbGFncyk7Ci0gCi0gICAvKiBzaWduYWxzICovCi0gICB2b2lkICAgICAgICAgICAoKmFjdGl2 ZV9jaGFuZ2VkKSAgICAgICAgIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgR09iamVjdCAqb2Jq ZWN0KTsKLUBAIC04MCw2ICs4Miw4IEBAIGNvbnN0IGdjaGFyICAgICAgICAqcGhvdG9zX2Jhc2Vf bWFuYWdlcl9nZXRfdGl0bGUgICAgICAgICAgICAgICAgKFBob3Rvc0Jhc2VNYW5hCi0gCi0gZ2No YXIgICAgICAgICAgICAgICpwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVyZSAgICAgICAgICAg ICAgICAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGdpbnQgZmxhZ3MpOwotIAotK1Bob3Rvc1Nw YXJxbFRlbXBsYXRlICpwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9zcGFycWxfdGVtcGxhdGUgICAg KFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBnaW50IGZsYWdzKTsKLSsKLSB2b2lkICAgICAgICAg ICAgICAgIHBob3Rvc19iYXNlX21hbmFnZXJfcHJvY2Vzc19uZXdfb2JqZWN0cyAgICAgIChQaG90 b3NCYXNlTWFuYWdlciAqc2VsZiwgR0hhc2hUYWJsZSAqbmV3X29iamVjdHMpOwotIAotIHZvaWQg ICAgICAgICAgICAgICAgcGhvdG9zX2Jhc2VfbWFuYWdlcl9yZW1vdmVfb2JqZWN0ICAgICAgICAg ICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBHT2JqZWN0ICpvYmplY3QpOwotZGlmZiAtLWdp dCBhL3NyYy9waG90b3MtZmlsdGVyYWJsZS5jIGIvc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmMKLWlu ZGV4IDM2MWIxYzI5Li5hYWE0MTA5YyAxMDA2NDQKLS0tLSBhL3NyYy9waG90b3MtZmlsdGVyYWJs ZS5jCi0rKysgYi9zcmMvcGhvdG9zLWZpbHRlcmFibGUuYwotQEAgLTY5LDE0ICs2OSw2IEBAIHBo b3Rvc19maWx0ZXJhYmxlX2dldF9pZCAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZikKLSB9Ci0gCi0g Ci0tZ2NoYXIgKgotLXBob3Rvc19maWx0ZXJhYmxlX2dldF93aGVyZSAoUGhvdG9zRmlsdGVyYWJs ZSAqc2VsZikKLS17Ci0tICBnX3JldHVybl92YWxfaWZfZmFpbCAoUEhPVE9TX0lTX0ZJTFRFUkFC TEUgKHNlbGYpLCBOVUxMKTsKLS0gIHJldHVybiBQSE9UT1NfRklMVEVSQUJMRV9HRVRfSUZBQ0Ug KHNlbGYpLT5nZXRfd2hlcmUgKHNlbGYpOwotLX0KLS0KLS0KLSBnYm9vbGVhbgotIHBob3Rvc19m aWx0ZXJhYmxlX2lzX3NlYXJjaF9jcml0ZXJpb24gKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYpCi0g ewotZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtZmlsdGVyYWJsZS5oIGIvc3JjL3Bob3Rvcy1maWx0 ZXJhYmxlLmgKLWluZGV4IGU3NjhiY2EwLi44YTM0MTVmYyAxMDA2NDQKLS0tLSBhL3NyYy9waG90 b3MtZmlsdGVyYWJsZS5oCi0rKysgYi9zcmMvcGhvdG9zLWZpbHRlcmFibGUuaAotQEAgLTM3LDcg KzM3LDYgQEAgc3RydWN0IF9QaG90b3NGaWx0ZXJhYmxlSW50ZXJmYWNlCi0gICBnYm9vbGVhbiAo KmdldF9idWlsdGluKSAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7Ci0gICBnY2hhciAqKCpnZXRf ZmlsdGVyKSAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7Ci0gICBjb25zdCBnY2hhciAqKCpnZXRf aWQpIChQaG90b3NGaWx0ZXJhYmxlICpzZWxmKTsKLS0gIGdjaGFyICooKmdldF93aGVyZSkgKFBo b3Rvc0ZpbHRlcmFibGUgKnNlbGYpOwotICAgZ2Jvb2xlYW4gKCppc19zZWFyY2hfY3JpdGVyaW9u KSAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7Ci0gfTsKLSAKLUBAIC00Nyw4ICs0Niw2IEBAIGdj aGFyICAgICAgICAgICAgICAqcGhvdG9zX2ZpbHRlcmFibGVfZ2V0X2ZpbHRlciAgICAgICAgIChQ aG90b3NGaWx0ZXJhYmxlICpzZWxmCi0gCi0gY29uc3QgZ2NoYXIgICAgICAgICpwaG90b3NfZmls dGVyYWJsZV9nZXRfaWQgICAgICAgICAgICAgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYpOwotIAot LWdjaGFyICAgICAgICAgICAgICAqcGhvdG9zX2ZpbHRlcmFibGVfZ2V0X3doZXJlICAgICAgICAg IChQaG90b3NGaWx0ZXJhYmxlICpzZWxmKTsKLS0KLSBnYm9vbGVhbiAgICAgICAgICAgIHBob3Rv c19maWx0ZXJhYmxlX2lzX3NlYXJjaF9jcml0ZXJpb24gIChQaG90b3NGaWx0ZXJhYmxlICpzZWxm KTsKLSAKLSBHX0VORF9ERUNMUwotZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtcXVlcnktYnVpbGRl ci5jIGIvc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMKLWluZGV4IDJjNTJhMTMwLi41ZDlkOGE1 YSAxMDA2NDQKLS0tLSBhL3NyYy9waG90b3MtcXVlcnktYnVpbGRlci5jCi0rKysgYi9zcmMvcGhv dG9zLXF1ZXJ5LWJ1aWxkZXIuYwotQEAgLTI2LDExMiArMjYsNzYgQEAKLSAjaW5jbHVkZSA8c3Ry aW5nLmg+Ci0gCi0gI2luY2x1ZGUgInBob3Rvcy1iYXNlLW1hbmFnZXIuaCIKLSsjaW5jbHVkZSAi cGhvdG9zLXF1ZXJ5LmgiCi0gI2luY2x1ZGUgInBob3Rvcy1xdWVyeS1idWlsZGVyLmgiCi0gI2lu Y2x1ZGUgInBob3Rvcy1zZWFyY2gtdHlwZS5oIgotICNpbmNsdWRlICJwaG90b3Mtc291cmNlLW1h bmFnZXIuaCIKLSAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmgiCi0gI2lu Y2x1ZGUgInBob3Rvcy1zZWFyY2gtdHlwZS1tYW5hZ2VyLmgiCi0gCi0rI2RlZmluZSBQSE9UT1Nf UVVFUllfQ09MTEVDVElPTlNfSURFTlRJRklFUiAicGhvdG9zOmNvbGxlY3Rpb246IgotKyNkZWZp bmUgUEhPVE9TX1FVRVJZX0xPQ0FMX0NPTExFQ1RJT05TX0lERU5USUZJRVIgInBob3Rvczpjb2xs ZWN0aW9uOmxvY2FsOiIKLSAKLS1zdGF0aWMgZ2NoYXIgKgotLXBob3Rvc19xdWVyeV9idWlsZGVy X2ZpbHRlciAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgZ2ludCBmbGFncykKLS17 Ci0tICBnY2hhciAqc3BhcnFsOwotLSAgZ19hdXRvZnJlZSBnY2hhciAqc3JjX21uZ3JfZmlsdGVy ID0gTlVMTDsKLS0gIGdfYXV0b2ZyZWUgZ2NoYXIgKnNyY2hfbXRjaF9tbmdyX2ZpbHRlciA9IE5V TEw7Ci0tICBnX2F1dG9mcmVlIGdjaGFyICpzcmNoX3R5cF9tbmdyX2ZpbHRlciA9IE5VTEw7Ci0r Y29uc3QgZ2NoYXIgKmNvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyID0gXAotKyAgIihmbjpzdGFy dHMtd2l0aCAobmFvOmlkZW50aWZpZXIgKD91cm4pLCAnIiBQSE9UT1NfUVVFUllfQ09MTEVDVElP TlNfSURFTlRJRklFUiAiJykiCi0rICAiICAgfHwgKD91cm4gPSBuZm86aW1hZ2UtY2F0ZWdvcnkt c2NyZWVuc2hvdCkpIjsKLSAKLS0gIHNyY19tbmdyX2ZpbHRlciA9IHBob3Rvc19iYXNlX21hbmFn ZXJfZ2V0X2ZpbHRlciAoc3RhdGUtPnNyY19tbmdyLCBmbGFncyk7Ci0tICBzcmNoX210Y2hfbW5n cl9maWx0ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNoX210 Y2hfbW5nciwgZmxhZ3MpOwotLSAgc3JjaF90eXBfbW5ncl9maWx0ZXIgPSBwaG90b3NfYmFzZV9t YW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNoX3R5cF9tbmdyLCBmbGFncyk7Ci0gCi0tICBz cGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJGSUxURVIgKCVzICYmICVzICYmICVzKSIsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNyY19tbmdyX2ZpbHRlciwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3JjaF9tdGNoX21uZ3JfZmlsdGVyLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzcmNoX3R5cF9tbmdyX2ZpbHRlcik7Ci0tCi0tICByZXR1cm4gc3BhcnFsOwot LX0KLSsvKiBUaGlzIGluY2x1ZGVzIG1pbWV0eXBlIGJsb2NrbGlzdCAqLwotK2NvbnN0IGdjaGFy ICpwaG90b3NfZGVmYXVsdF9maWx0ZXIgPSBcCi0rICAiKG5pZTptaW1lVHlwZSg/dXJuKSAhPSAn aW1hZ2UvZ2lmJyAmJiBuaWU6bWltZVR5cGUoP3VybikgIT0gJ2ltYWdlL3gtZXBzJykiOwotIAot IAotIHN0YXRpYyBnY2hhciAqCi0tcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfb3B0aW9uYWwgKHZvaWQp Ci0tewotLSAgcmV0dXJuIGdfc3RyZHVwICgiT1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9yID9j cmVhdG9yIC4gfSAiCi0tICAgICAgICAgICAgICAgICAgICJPUFRJT05BTCB7ID91cm4gbmNvOnB1 Ymxpc2hlciA/cHVibGlzaGVyIC4gfSIpOwotLX0KLS0KLS0KLS1zdGF0aWMgZ2NoYXIgKgotLXBo b3Rvc19xdWVyeV9idWlsZGVyX2lubmVyX3doZXJlIChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUg KnN0YXRlLCBnYm9vbGVhbiBnbG9iYWwsIGdpbnQgZmxhZ3MpCi0rcGhvdG9zX3F1ZXJ5X2J1aWxk ZXJfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdib29sZWFuIGdsb2JhbCwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ2ludCBmbGFncywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhvdG9zT2Zm c2V0Q29udHJvbGxlciAqb2Zmc2V0X2NudHJscikKLSB7Ci0tICBnX2F1dG9mcmVlIGdjaGFyICpp dGVtX21uZ3Jfd2hlcmUgPSBOVUxMOwotKyAgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnRlbXBsYXRl OwotKyAgY29uc3QgZ2NoYXIgKnByb2plY3Rpb24gPSBOVUxMOwotKyAgZ19hdXRvZnJlZSBnY2hh ciAqaXRlbV9wYXR0ZXJuID0gTlVMTDsKLSsgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNlYXJjaF9maWx0 ZXIgPSBOVUxMOwotKyAgZ19hdXRvZnJlZSBnY2hhciAqc291cmNlX2ZpbHRlciA9IE5VTEw7Ci0r ICBjb25zdCBnY2hhciAqb3JkZXIgPSBOVUxMOwotKyAgZ19hdXRvZnJlZSBnY2hhciAqb2Zmc2V0 X2xpbWl0ID0gTlVMTDsKLSAgIGdjaGFyICpzcGFycWw7Ci0tICBnX2F1dG9mcmVlIGdjaGFyICpz cmNoX3R5cF9tbmdyX3doZXJlID0gTlVMTDsKLSAKLS0gIHNyY2hfdHlwX21uZ3Jfd2hlcmUgPSBw aG90b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVyZSAoc3RhdGUtPnNyY2hfdHlwX21uZ3IsIGZsYWdz KTsKLSsgIHRlbXBsYXRlID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBsYXRl IChzdGF0ZS0+c3JjaF90eXBfbW5nciwgZmxhZ3MpOwotKwotKyAgcHJvamVjdGlvbiA9ICI/dXJu ICIKLSsgICAgICAgICAgICAgICAibmllOnVybCAoP3VybikgIgotKyAgICAgICAgICAgICAgICJu Zm86ZmlsZU5hbWUgKD91cm4pICIKLSsgICAgICAgICAgICAgICAibmllOm1pbWVUeXBlICg/dXJu KSAiCi0rICAgICAgICAgICAgICAgIm5pZTp0aXRsZSAoP3VybikgIgotKyAgICAgICAgICAgICAg ICJ0cmFja2VyOmNvYWxlc2NlIChuY286ZnVsbG5hbWUgKD9jcmVhdG9yKSwgbmNvOmZ1bGxuYW1l ICg/cHVibGlzaGVyKSwgJycpICIKLSsgICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNjZSAo bmZvOmZpbGVMYXN0TW9kaWZpZWQgKD91cm4pLCBuaWU6Y29udGVudExhc3RNb2RpZmllZCAoP3Vy bikpIEFTID9tdGltZSAiCi0rICAgICAgICAgICAgICAgIm5hbzppZGVudGlmaWVyICg/dXJuKSAi Ci0rICAgICAgICAgICAgICAgInJkZjp0eXBlICg/dXJuKSAiCi0rICAgICAgICAgICAgICAgIm5p ZTpkYXRhU291cmNlKD91cm4pICIKLSsgICAgICAgICAgICAgICAiKCBFWElTVFMgeyA/dXJuIG5h bzpoYXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRlIH0gKSAiCi0rICAgICAgICAgICAg ICAgIiggRVhJU1RTIHsgP3VybiBuY286Y29udHJpYnV0b3IgP2NvbnRyaWJ1dG9yIEZJTFRFUiAo ID9jb250cmlidXRvciAhPSA/Y3JlYXRvciApIH0gKSAiCi0rICAgICAgICAgICAgICAgInRyYWNr ZXI6Y29hbGVzY2UobmZvOmZpbGVDcmVhdGVkICg/dXJuKSwgbmllOmNvbnRlbnRDcmVhdGVkICg/ dXJuKSkgIgotKyAgICAgICAgICAgICAgICJuZm86d2lkdGggKD91cm4pICIKLSsgICAgICAgICAg ICAgICAibmZvOmhlaWdodCAoP3VybikgIgotKyAgICAgICAgICAgICAgICJuZm86ZXF1aXBtZW50 ICg/dXJuKSAiCi0rICAgICAgICAgICAgICAgIm5mbzpvcmllbnRhdGlvbiAoP3VybikgIgotKyAg ICAgICAgICAgICAgICJubW06ZXhwb3N1cmVUaW1lICg/dXJuKSAiCi0rICAgICAgICAgICAgICAg Im5tbTpmbnVtYmVyICg/dXJuKSAiCi0rICAgICAgICAgICAgICAgIm5tbTpmb2NhbExlbmd0aCAo P3VybikgIgotKyAgICAgICAgICAgICAgICJubW06aXNvU3BlZWQgKD91cm4pICIKLSsgICAgICAg ICAgICAgICAibm1tOmZsYXNoICg/dXJuKSAiCi0rICAgICAgICAgICAgICAgInNsbzpsb2NhdGlv biAoP3VybikgIjsKLSsKLSsgIGl0ZW1fcGF0dGVybiA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0 X3doZXJlIChzdGF0ZS0+aXRlbV9tbmdyLCBmbGFncyk7Ci0gCi0gICBpZiAoIShmbGFncyAmIFBI T1RPU19RVUVSWV9GTEFHU19VTkZJTFRFUkVEKSkKLSAgICAgewotLSAgICAgIGlmIChnbG9iYWwp Ci0tICAgICAgICB7Ci0tICAgICAgICAgIC8qIFRPRE86IFNlYXJjaENhdGVnb3J5TWFuYWdlciAq LwotLQotLSAgICAgICAgICBpdGVtX21uZ3Jfd2hlcmUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dl dF93aGVyZSAoc3RhdGUtPml0ZW1fbW5nciwgZmxhZ3MpOwotLSAgICAgICAgfQotKyAgICAgIHNv dXJjZV9maWx0ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNf bW5nciwgZmxhZ3MpOwotKyAgICAgIHNlYXJjaF9maWx0ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2Vy X2dldF9maWx0ZXIgKHN0YXRlLT5zcmNoX210Y2hfbW5nciwgZmxhZ3MpOwotICAgICB9Ci0gCi0t ICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJXSEVSRSB7ICVzICVzIH0iLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzcmNoX3R5cF9tbmdyX3doZXJlLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoaXRlbV9tbmdyX3doZXJlICE9IE5VTEwpID8gaXRlbV9tbmdyX3doZXJl IDogIiIpOwotLQotLSAgcmV0dXJuIHNwYXJxbDsKLS19Ci0tCi0tCi0tc3RhdGljIGdjaGFyICoK LS1waG90b3NfcXVlcnlfYnVpbGRlcl93aGVyZSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpz dGF0ZSwgZ2Jvb2xlYW4gZ2xvYmFsLCBnaW50IGZsYWdzKQotLXsKLS0gIGNvbnN0IGdjaGFyICpj b3VudF9pdGVtcyA9ICJDT1VOVCAoP2l0ZW0pIEFTID9jb3VudCI7Ci0tICBnYm9vbGVhbiBpdGVt X2RlZmluZWQ7Ci0tICBnX2F1dG9mcmVlIGdjaGFyICpmaWx0ZXIgPSBOVUxMOwotLSAgZ19hdXRv ZnJlZSBnY2hhciAqb3B0aW9uYWwgPSBOVUxMOwotLSAgZ2NoYXIgKnNwYXJxbDsKLS0gIGdfYXV0 b2ZyZWUgZ2NoYXIgKndoZXJlX3NwYXJxbCA9IE5VTEw7Ci0tCi0tICB3aGVyZV9zcGFycWwgPSBw aG90b3NfcXVlcnlfYnVpbGRlcl9pbm5lcl93aGVyZSAoc3RhdGUsIGdsb2JhbCwgZmxhZ3MpOwot LSAgaXRlbV9kZWZpbmVkID0gc3Ryc3RyICh3aGVyZV9zcGFycWwsICI/aXRlbSIpICE9IE5VTEw7 Ci0tCi0tICBvcHRpb25hbCA9IHBob3Rvc19xdWVyeV9idWlsZGVyX29wdGlvbmFsICgpOwotLQot LSAgaWYgKCEoZmxhZ3MgJiBQSE9UT1NfUVVFUllfRkxBR1NfVU5GSUxURVJFRCkpCi0tICAgIGZp bHRlciA9IHBob3Rvc19xdWVyeV9idWlsZGVyX2ZpbHRlciAoc3RhdGUsIGZsYWdzKTsKLS0KLS0g IHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIldIRVJFIHt7IgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiICAgIFNFTEVDVCA/dXJuIHJkZjp0eXBlICg/dXJuKSBBUyA/dHlwZSAlcyAl cyBHUk9VUCBCWSAoP3VybikiCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIH0iCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICVzICVzIgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAifSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1fZGVmaW5l ZCA/IGNvdW50X2l0ZW1zIDogIiIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZXJl X3NwYXJxbCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChmaWx0ZXIgIT0gTlVMTCkgPyBmaWx0ZXIgOiAiIik7Ci0t Ci0tICByZXR1cm4gc3BhcnFsOwotLX0KLS0KLS0KLS1zdGF0aWMgZ2NoYXIgKgotLXBob3Rvc19x dWVyeV9idWlsZGVyX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBnbG9iYWwsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdpbnQgZmxhZ3MsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBob3Rvc09mZnNldENvbnRyb2xsZXIgKm9mZnNldF9jbnRybHIpCi0tewotLSAgZ2NoYXIgKnNw YXJxbDsKLS0gIGdfYXV0b2ZyZWUgZ2NoYXIgKnRhaWxfc3BhcnFsID0gTlVMTDsKLS0gIGdfYXV0 b2ZyZWUgZ2NoYXIgKndoZXJlX3NwYXJxbCA9IE5VTEw7Ci0tCi0tICB3aGVyZV9zcGFycWwgPSBw aG90b3NfcXVlcnlfYnVpbGRlcl93aGVyZSAoc3RhdGUsIGdsb2JhbCwgZmxhZ3MpOwotKyAgb3Jk ZXIgPSAiT1JERVIgQlkgREVTQyAoP210aW1lKSI7Ci0gCi0gICBpZiAoZ2xvYmFsICYmIChmbGFn cyAmIFBIT1RPU19RVUVSWV9GTEFHU19VTkxJTUlURUQpID09IDApCi0gICAgIHsKLUBAIC0xNDQs MzUgKzEwOCwxOSBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29u dGV4dFN0YXRlICpzdGF0ZSwKLSAgICAgICAgICAgc3RlcCA9IHBob3Rvc19vZmZzZXRfY29udHJv bGxlcl9nZXRfc3RlcCAob2Zmc2V0X2NudHJscik7Ci0gICAgICAgICB9Ci0gCi0tICAgICAgdGFp bF9zcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJPUkRFUiBCWSBERVNDICg/bXRpbWUpIExJTUlU ICVkIE9GRlNFVCAlZCIsIHN0ZXAsIG9mZnNldCk7Ci0rICAgICAgb2Zmc2V0X2xpbWl0ID0gZ19z dHJkdXBfcHJpbnRmICgiTElNSVQgJWQgT0ZGU0VUICVkIiwgc3RlcCwgb2Zmc2V0KTsKLSAgICAg fQotIAotLSAgc3BhcnFsID0gZ19zdHJjb25jYXQgKCJTRUxFQ1QgP3VybiAiCi0tICAgICAgICAg ICAgICAgICAgICAgICAgIm5pZTp1cmwgKD91cm4pICIKLS0gICAgICAgICAgICAgICAgICAgICAg ICAibmZvOmZpbGVOYW1lICg/dXJuKSAiCi0tICAgICAgICAgICAgICAgICAgICAgICAgIm5pZTpt aW1lVHlwZSAoP3VybikgIgotLSAgICAgICAgICAgICAgICAgICAgICAgICJuaWU6dGl0bGUgKD91 cm4pICIKLS0gICAgICAgICAgICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNjZSAobmNvOmZ1 bGxuYW1lICg/Y3JlYXRvciksIG5jbzpmdWxsbmFtZSAoP3B1Ymxpc2hlciksICcnKSAiCi0tICAg ICAgICAgICAgICAgICAgICAgICAgInRyYWNrZXI6Y29hbGVzY2UgKG5mbzpmaWxlTGFzdE1vZGlm aWVkICg/dXJuKSwgbmllOmNvbnRlbnRMYXN0TW9kaWZpZWQgKD91cm4pKSBBUyA/bXRpbWUgIgot LSAgICAgICAgICAgICAgICAgICAgICAgICJuYW86aWRlbnRpZmllciAoP3VybikgIgotLSAgICAg ICAgICAgICAgICAgICAgICAgICJyZGY6dHlwZSAoP3VybikgIgotLSAgICAgICAgICAgICAgICAg ICAgICAgICJuaWU6ZGF0YVNvdXJjZSg/dXJuKSAiCi0tICAgICAgICAgICAgICAgICAgICAgICAg IiggRVhJU1RTIHsgP3VybiBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSB9 ICkgIgotLSAgICAgICAgICAgICAgICAgICAgICAgICIoIEVYSVNUUyB7ID91cm4gbmNvOmNvbnRy aWJ1dG9yID9jb250cmlidXRvciBGSUxURVIgKCA/Y29udHJpYnV0b3IgIT0gP2NyZWF0b3IgKSB9 ICkgIgotLSAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2NlKG5mbzpmaWxl Q3JlYXRlZCAoP3VybiksIG5pZTpjb250ZW50Q3JlYXRlZCAoP3VybikpICIKLS0gICAgICAgICAg ICAgICAgICAgICAgICAibmZvOndpZHRoICg/dXJuKSAiCi0tICAgICAgICAgICAgICAgICAgICAg ICAgIm5mbzpoZWlnaHQgKD91cm4pICIKLS0gICAgICAgICAgICAgICAgICAgICAgICAibmZvOmVx dWlwbWVudCAoP3VybikgIgotLSAgICAgICAgICAgICAgICAgICAgICAgICJuZm86b3JpZW50YXRp b24gKD91cm4pICIKLS0gICAgICAgICAgICAgICAgICAgICAgICAibm1tOmV4cG9zdXJlVGltZSAo P3VybikgIgotLSAgICAgICAgICAgICAgICAgICAgICAgICJubW06Zm51bWJlciAoP3VybikgIgot LSAgICAgICAgICAgICAgICAgICAgICAgICJubW06Zm9jYWxMZW5ndGggKD91cm4pICIKLS0gICAg ICAgICAgICAgICAgICAgICAgICAibm1tOmlzb1NwZWVkICg/dXJuKSAiCi0tICAgICAgICAgICAg ICAgICAgICAgICAgIm5tbTpmbGFzaCAoP3VybikgIgotLSAgICAgICAgICAgICAgICAgICAgICAg ICJzbG86bG9jYXRpb24gKD91cm4pICIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgd2hlcmVf c3BhcnFsLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRhaWxfc3BhcnFsLAotLSAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwpOwotKyAgc3BhcnFsID0gcGhvdG9zX3NwYXJxbF90ZW1wbGF0 ZV9nZXRfc3BhcnFsICh0ZW1wbGF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInByb2plY3Rpb24iLCBwcm9qZWN0aW9uLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29sbGVjdGlvbnNfZGVmYXVsdF9maWx0 ZXIiLCBjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIml0ZW1fcGF0dGVybiIsIGl0ZW1fcGF0dGVybiwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBob3Rvc19kZWZh dWx0X2ZpbHRlciIsIHBob3Rvc19kZWZhdWx0X2ZpbHRlciwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgInNvdXJjZV9maWx0ZXIiLCBzb3VyY2VfZmlsdGVy ID8gc291cmNlX2ZpbHRlciA6ICIiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAic2VhcmNoX2ZpbHRlciIsIHNlYXJjaF9maWx0ZXIgPyBzZWFyY2hfZmls dGVyIDogIiIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJvcmRlciIsIG9yZGVyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAib2Zmc2V0X2xpbWl0Iiwgb2Zmc2V0X2xpbWl0ID8gb2Zmc2V0X2xpbWl0IDogIiIs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwot IAotICAgcmV0dXJuIHNwYXJxbDsKLSB9Ci1AQCAtMjM0LDEyICsxODIsMzcgQEAgcGhvdG9zX3F1 ZXJ5X2J1aWxkZXJfY29sbGVjdGlvbl9pY29uX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3Rh dGUgKnN0YXRlLCBjb24KLSBQaG90b3NRdWVyeSAqCi0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfY291 bnRfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsIGdpbnQgZmxhZ3MpCi0g ewotLSAgUGhvdG9zUXVlcnkgKnF1ZXJ5OwotKyAgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnRlbXBs YXRlOwotKyAgY29uc3QgZ2NoYXIgKnByb2plY3Rpb24gPSBOVUxMOwotKyAgZ19hdXRvZnJlZSBn Y2hhciAqaXRlbV9wYXR0ZXJuID0gTlVMTDsKLSsgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNlYXJjaF9m aWx0ZXIgPSBOVUxMOwotKyAgZ19hdXRvZnJlZSBnY2hhciAqc291cmNlX2ZpbHRlciA9IE5VTEw7 Ci0gICBnX2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBOVUxMOwotLSAgZ19hdXRvZnJlZSBnY2hh ciAqd2hlcmVfc3BhcnFsID0gTlVMTDsKLSsgIFBob3Rvc1F1ZXJ5ICpxdWVyeTsKLSsKLSsgIHRl bXBsYXRlID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBsYXRlIChzdGF0ZS0+ c3JjaF90eXBfbW5nciwgZmxhZ3MpOwotKwotKyAgcHJvamVjdGlvbiA9ICJDT1VOVCg/dXJuKSAi OwotKwotKyAgaXRlbV9wYXR0ZXJuID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfd2hlcmUgKHN0 YXRlLT5pdGVtX21uZ3IsIGZsYWdzKTsKLSsKLSsgIGlmICghIChmbGFncyAmIFBIT1RPU19RVUVS WV9GTEFHU19VTkZJTFRFUkVEKSkKLSsgICAgewotKyAgICAgIHNvdXJjZV9maWx0ZXIgPSBwaG90 b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNfbW5nciwgZmxhZ3MpOwotKyAg ICAgIHNlYXJjaF9maWx0ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRl LT5zcmNoX210Y2hfbW5nciwgZmxhZ3MpOwotKyAgICB9Ci0rCi0rICBzcGFycWwgPSBwaG90b3Nf c3BhcnFsX3RlbXBsYXRlX2dldF9zcGFycWwgKHRlbXBsYXRlLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvamVjdGlvbiIsIHByb2plY3Rpb24sCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb2xsZWN0aW9u c19kZWZhdWx0X2ZpbHRlciIsIGNvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaXRlbV9wYXR0ZXJuIiwgaXRl bV9wYXR0ZXJuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAicGhvdG9zX2RlZmF1bHRfZmlsdGVyIiwgcGhvdG9zX2RlZmF1bHRfZmlsdGVyLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic291cmNlX2ZpbHRlciIs IHNvdXJjZV9maWx0ZXIgPyBzb3VyY2VfZmlsdGVyIDogIiIsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWFyY2hfZmlsdGVyIiwgc2VhcmNoX2ZpbHRl ciA/IHNlYXJjaF9maWx0ZXIgOiAiIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIm9yZGVyIiwgIiIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJvZmZzZXRfbGltaXQiLCAiIiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0gCi0tICB3aGVyZV9zcGFycWwg PSBwaG90b3NfcXVlcnlfYnVpbGRlcl93aGVyZSAoc3RhdGUsIFRSVUUsIGZsYWdzKTsKLS0gIHNw YXJxbCA9IGdfc3RyY29uY2F0ICgiU0VMRUNUIERJU1RJTkNUIENPVU5UKD91cm4pICIsIHdoZXJl X3NwYXJxbCwgTlVMTCk7Ci0gICBxdWVyeSA9IHBob3Rvc19xdWVyeV9uZXcgKHN0YXRlLCBzcGFy cWwpOwotIAotICAgcmV0dXJuIHF1ZXJ5OwotZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mtc2VhcmNo LXR5cGUtbWFuYWdlci5jIGIvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS1tYW5hZ2VyLmMKLWluZGV4 IDg3ZjQ0MWVkLi41Yzg3ZDRhNCAxMDA2NDQKLS0tLSBhL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUt bWFuYWdlci5jCi0rKysgYi9zcmMvcGhvdG9zLXNlYXJjaC10eXBlLW1hbmFnZXIuYwotQEAgLTQx LDEzICs0MSw2IEBAIHN0cnVjdCBfUGhvdG9zU2VhcmNoVHlwZU1hbmFnZXIKLSBHX0RFRklORV9U WVBFIChQaG90b3NTZWFyY2hUeXBlTWFuYWdlciwgcGhvdG9zX3NlYXJjaF90eXBlX21hbmFnZXIs IFBIT1RPU19UWVBFX0JBU0VfTUFOQUdFUik7Ci0gCi0gCi0tc3RhdGljIGNvbnN0IGdjaGFyICpC TEFDS0xJU1RFRF9NSU1FX1RZUEVTW10gPQotLXsKLS0gICJpbWFnZS9naWYiLAotLSAgImltYWdl L3gtZXBzIgotLX07Ci0tCi0tCi0gc3RhdGljIGdjaGFyICoKLSBwaG90b3Nfc2VhcmNoX3R5cGVf bWFuYWdlcl9nZXRfZmlsdGVyIChQaG90b3NCYXNlTWFuYWdlciAqbW5nciwgZ2ludCBmbGFncykK LSB7Ci1AQCAtNjksOSArNjIsOCBAQCBwaG90b3Nfc2VhcmNoX3R5cGVfbWFuYWdlcl9nZXRfZmls dGVyIChQaG90b3NCYXNlTWFuYWdlciAqbW5nciwgZ2ludCBmbGFncykKLSAgIHJldHVybiBmaWx0 ZXI7Ci0gfQotIAotLQotLXN0YXRpYyBnY2hhciAqCi0tcGhvdG9zX3NlYXJjaF90eXBlX21hbmFn ZXJfZ2V0X3doZXJlIChQaG90b3NCYXNlTWFuYWdlciAqbW5nciwgZ2ludCBmbGFncykKLStzdGF0 aWMgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKgotK3Bob3Rvc19zZWFyY2hfdHlwZV9tYW5hZ2VyX2dl dF9zcGFycWxfdGVtcGxhdGUgKFBob3Rvc0Jhc2VNYW5hZ2VyICptbmdyLCBnaW50IGZsYWdzKQot IHsKLSAgIEdPYmplY3QgKnNlYXJjaF90eXBlOwotIAotQEAgLTg2LDc0ICs3OCwzOSBAQCBwaG90 b3Nfc2VhcmNoX3R5cGVfbWFuYWdlcl9nZXRfd2hlcmUgKFBob3Rvc0Jhc2VNYW5hZ2VyICptbmdy LCBnaW50IGZsYWdzKQotICAgZWxzZQotICAgICBzZWFyY2hfdHlwZSA9IHBob3Rvc19iYXNlX21h bmFnZXJfZ2V0X29iamVjdF9ieV9pZCAobW5nciwgUEhPVE9TX1NFQVJDSF9UWVBFX1NUT0NLX0FM TCk7Ci0gCi0tICByZXR1cm4gcGhvdG9zX2ZpbHRlcmFibGVfZ2V0X3doZXJlIChQSE9UT1NfRklM VEVSQUJMRSAoc2VhcmNoX3R5cGUpKTsKLSsgIHJldHVybiBwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0 X3NwYXJxbF90ZW1wbGF0ZSAoUEhPVE9TX1NFQVJDSF9UWVBFIChzZWFyY2hfdHlwZSkpOwotIH0K LSAKLS0KLSBzdGF0aWMgdm9pZAotIHBob3Rvc19zZWFyY2hfdHlwZV9tYW5hZ2VyX2luaXQgKFBo b3Rvc1NlYXJjaFR5cGVNYW5hZ2VyICpzZWxmKQotIHsKLSAgIFBob3Rvc1NlYXJjaFR5cGUgKnNl YXJjaF90eXBlOwotLSAgZ2NoYXIgKml0ZW1fZmlsdGVyOwotLSAgZ2NoYXIgKmFsbF9maWx0ZXI7 Ci0tICBnY2hhciAqYmxhY2tsaXN0ZWRfbWltZV90eXBlc19maWx0ZXI7Ci0tICBnY2hhciAqY29s X2ZpbHRlcjsKLS0gIGdjaGFyICoqc3RydjsKLS0gIGd1aW50IGk7Ci0tICBndWludCBuX2VsZW1l bnRzOwotLQotLSAgbl9lbGVtZW50cyA9IEdfTl9FTEVNRU5UUyAoQkxBQ0tMSVNURURfTUlNRV9U WVBFUyk7Ci0tICBzdHJ2ID0gKGdjaGFyICoqKSBnX21hbGxvYzBfbiAobl9lbGVtZW50cyArIDEs IHNpemVvZiAoZ2NoYXIgKikpOwotLSAgZm9yIChpID0gMDsgaSA8IG5fZWxlbWVudHM7IGkrKykK LS0gICAgc3RydltpXSA9IGdfc3RyZHVwX3ByaW50ZiAoIm5pZTptaW1lVHlwZSg/dXJuKSAhPSAn JXMnIiwgQkxBQ0tMSVNURURfTUlNRV9UWVBFU1tpXSk7Ci0tCi0tICBibGFja2xpc3RlZF9taW1l X3R5cGVzX2ZpbHRlciA9IGdfc3Ryam9pbnYgKCIgJiYgIiwgc3Rydik7Ci0tCi0tICBpdGVtX2Zp bHRlciA9IGdfc3RyZHVwX3ByaW50ZiAoIihmbjpjb250YWlucyAoP3R5cGUsICdubW0jUGhvdG8n KSAmJiAlcykiLCBibGFja2xpc3RlZF9taW1lX3R5cGVzX2ZpbHRlcik7Ci0tICBjb2xfZmlsdGVy ID0gZ19zdHJkdXBfcHJpbnRmICgiKGZuOmNvbnRhaW5zICg/dHlwZSwgJ25mbyNEYXRhQ29udGFp bmVyJykiCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICYmID9jb3VudCA+IDAi Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICYmIChmbjpzdGFydHMtd2l0aCAo bmFvOmlkZW50aWZpZXIgKD91cm4pLCAnJXMnKSIKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIgICAgIHx8ICg/dXJuID0gbmZvOmltYWdlLWNhdGVnb3J5LXNjcmVlbnNob3QpKSki LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhPVE9TX1FVRVJZX0NPTExFQ1RJ T05TX0lERU5USUZJRVIpOwotLSAgYWxsX2ZpbHRlciA9IGdfc3RyZHVwX3ByaW50ZiAoIiglcyB8 fCAlcykiLCBjb2xfZmlsdGVyLCBpdGVtX2ZpbHRlcik7Ci0gCi0gICBzZWFyY2hfdHlwZSA9IHBo b3Rvc19zZWFyY2hfdHlwZV9uZXdfZnVsbCAoUEhPVE9TX1NFQVJDSF9UWVBFX1NUT0NLX0FMTCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJBbGwiKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiP3VybiBhIHJk ZnM6UmVzb3VyY2UuICIKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiT1BUSU9OQUwgez9pdGVtIGEgbm1tOlBob3RvOyBuaWU6aXNQYXJ0T2YgP3Vybn0iLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbF9maWx0ZXIp OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXNvdXJj ZTovLy9vcmcvZ25vbWUvUGhvdG9zL2FsbC5zcGFycWwudGVtcGxhdGUiKTsKLSAgIHBob3Rvc19i YXNlX21hbmFnZXJfYWRkX29iamVjdCAoUEhPVE9TX0JBU0VfTUFOQUdFUiAoc2VsZiksIEdfT0JK RUNUIChzZWFyY2hfdHlwZSkpOwotICAgZ19vYmplY3RfdW5yZWYgKHNlYXJjaF90eXBlKTsKLSAK LSAgIHNlYXJjaF90eXBlID0gcGhvdG9zX3NlYXJjaF90eXBlX25ld19mdWxsIChQSE9UT1NfU0VB UkNIX1RZUEVfU1RPQ0tfQ09MTEVDVElPTlMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXygiQWxidW1zIiksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIj91cm4gYSBuZm86RGF0YUNvbnRhaW5lci4gIgotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI/aXRlbSBhIG5tbTpQaG90 bzsgbmllOmlzUGFydE9mID91cm4uIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb2xfZmlsdGVyKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAicmVzb3VyY2U6Ly8vb3JnL2dub21lL1Bob3Rvcy9jb2xsZWN0aW9u cy5zcGFycWwudGVtcGxhdGUiKTsKLSAgIHBob3Rvc19iYXNlX21hbmFnZXJfYWRkX29iamVjdCAo UEhPVE9TX0JBU0VfTUFOQUdFUiAoc2VsZiksIEdfT0JKRUNUIChzZWFyY2hfdHlwZSkpOwotICAg Z19vYmplY3RfdW5yZWYgKHNlYXJjaF90eXBlKTsKLSAKLSAgIHNlYXJjaF90eXBlID0gcGhvdG9z X3NlYXJjaF90eXBlX25ld19mdWxsIChQSE9UT1NfU0VBUkNIX1RZUEVfU1RPQ0tfRkFWT1JJVEVT LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkZhdm9y aXRlcyIpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI/ dXJuIGEgbm1tOlBob3RvOyBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZS4g IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGFja2xp c3RlZF9taW1lX3R5cGVzX2ZpbHRlcik7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInJlc291cmNlOi8vL29yZy9nbm9tZS9QaG90b3MvZmF2b3JpdGUtcGhv dG9zLnNwYXJxbC50ZW1wbGF0ZSIpOwotICAgcGhvdG9zX2Jhc2VfbWFuYWdlcl9hZGRfb2JqZWN0 IChQSE9UT1NfQkFTRV9NQU5BR0VSIChzZWxmKSwgR19PQkpFQ1QgKHNlYXJjaF90eXBlKSk7Ci0g ICBnX29iamVjdF91bnJlZiAoc2VhcmNoX3R5cGUpOwotIAotICAgc2VhcmNoX3R5cGUgPSBwaG90 b3Nfc2VhcmNoX3R5cGVfbmV3X2Z1bGwgKFBIT1RPU19TRUFSQ0hfVFlQRV9TVE9DS19QSE9UT1Ms Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiUGhvdG9z IiksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj91cm4g YSBubW06UGhvdG8iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJsYWNrbGlzdGVkX21pbWVfdHlwZXNfZmlsdGVyKTsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAicmVzb3VyY2U6Ly8vb3JnL2dub21lL1Bob3Rvcy9w aG90b3Muc3BhcnFsLnRlbXBsYXRlIik7Ci0gICBwaG90b3NfYmFzZV9tYW5hZ2VyX2FkZF9vYmpl Y3QgKFBIT1RPU19CQVNFX01BTkFHRVIgKHNlbGYpLCBHX09CSkVDVCAoc2VhcmNoX3R5cGUpKTsK LSAgIGdfb2JqZWN0X3VucmVmIChzZWFyY2hfdHlwZSk7Ci0gCi0gICBwaG90b3NfYmFzZV9tYW5h Z2VyX3NldF9hY3RpdmVfb2JqZWN0X2J5X2lkIChQSE9UT1NfQkFTRV9NQU5BR0VSIChzZWxmKSwg UEhPVE9TX1NFQVJDSF9UWVBFX1NUT0NLX0FMTCk7Ci0tCi0tICBnX2ZyZWUgKGl0ZW1fZmlsdGVy KTsKLS0gIGdfZnJlZSAoYWxsX2ZpbHRlcik7Ci0tICBnX2ZyZWUgKGJsYWNrbGlzdGVkX21pbWVf dHlwZXNfZmlsdGVyKTsKLS0gIGdfZnJlZSAoY29sX2ZpbHRlcik7Ci0tICBnX3N0cmZyZWV2IChz dHJ2KTsKLSB9Ci0gCi0gCi1AQCAtMTYzLDcgKzEyMCw3IEBAIHBob3Rvc19zZWFyY2hfdHlwZV9t YW5hZ2VyX2NsYXNzX2luaXQgKFBob3Rvc1NlYXJjaFR5cGVNYW5hZ2VyQ2xhc3MgKmNsYXNzKQot ICAgUGhvdG9zQmFzZU1hbmFnZXJDbGFzcyAqYmFzZV9tYW5hZ2VyX2NsYXNzID0gUEhPVE9TX0JB U0VfTUFOQUdFUl9DTEFTUyAoY2xhc3MpOwotIAotICAgYmFzZV9tYW5hZ2VyX2NsYXNzLT5nZXRf ZmlsdGVyID0gcGhvdG9zX3NlYXJjaF90eXBlX21hbmFnZXJfZ2V0X2ZpbHRlcjsKLS0gIGJhc2Vf bWFuYWdlcl9jbGFzcy0+Z2V0X3doZXJlID0gcGhvdG9zX3NlYXJjaF90eXBlX21hbmFnZXJfZ2V0 X3doZXJlOwotKyAgYmFzZV9tYW5hZ2VyX2NsYXNzLT5nZXRfc3BhcnFsX3RlbXBsYXRlID0gcGhv dG9zX3NlYXJjaF90eXBlX21hbmFnZXJfZ2V0X3NwYXJxbF90ZW1wbGF0ZTsKLSB9Ci0gCi0gCi1k aWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS5jIGIvc3JjL3Bob3Rvcy1zZWFyY2gt dHlwZS5jCi1pbmRleCA0NGRjNjBlYi4uZjNiYmFlMTUgMTAwNjQ0Ci0tLS0gYS9zcmMvcGhvdG9z LXNlYXJjaC10eXBlLmMKLSsrKyBiL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUuYwotQEAgLTI1LDI0 ICsyNSwyMyBAQAotIAotICNpbmNsdWRlICJwaG90b3MtZmlsdGVyYWJsZS5oIgotICNpbmNsdWRl ICJwaG90b3Mtc2VhcmNoLXR5cGUuaCIKLSsjaW5jbHVkZSAicGhvdG9zLXNwYXJxbC10ZW1wbGF0 ZS5oIgotIAotIAotIHN0cnVjdCBfUGhvdG9zU2VhcmNoVHlwZQotIHsKLSAgIEdPYmplY3QgcGFy ZW50X2luc3RhbmNlOwotLSAgZ2NoYXIgKmZpbHRlcjsKLSAgIGdjaGFyICppZDsKLSAgIGdjaGFy ICpuYW1lOwotLSAgZ2NoYXIgKndoZXJlOwotKyAgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnNwYXJx bF90ZW1wbGF0ZTsKLSB9OwotIAotIGVudW0KLSB7Ci0gICBQUk9QXzAsCi0tICBQUk9QX0ZJTFRF UiwKLSAgIFBST1BfSUQsCi0gICBQUk9QX05BTUUsCi0tICBQUk9QX1dIRVJFLAotKyAgUFJPUF9T UEFSUUxfVEVNUExBVEUsCi0gfTsKLSAKLSBzdGF0aWMgdm9pZCBwaG90b3Nfc2VhcmNoX3R5cGVf ZmlsdGVyYWJsZV9pZmFjZV9pbml0IChQaG90b3NGaWx0ZXJhYmxlSW50ZXJmYWNlICppZmFjZSk7 Ci1AQCAtNTMsMTQgKzUyLDYgQEAgR19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKFBob3Rvc1NlYXJj aFR5cGUsIHBob3Rvc19zZWFyY2hfdHlwZSwgR19UWVBFX09CSkVDVCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3Nfc2VhcmNoX3R5cGVfZmls dGVyYWJsZV9pZmFjZV9pbml0KSk7Ci0gCi0gCi0tc3RhdGljIGdjaGFyICoKLS1waG90b3Nfc2Vh cmNoX3R5cGVfZ2V0X2ZpbHRlciAoUGhvdG9zRmlsdGVyYWJsZSAqaWZhY2UpCi0tewotLSAgUGhv dG9zU2VhcmNoVHlwZSAqc2VsZiA9IFBIT1RPU19TRUFSQ0hfVFlQRSAoaWZhY2UpOwotLSAgcmV0 dXJuIGdfc3RyZHVwIChzZWxmLT5maWx0ZXIpOwotLX0KLS0KLS0KLSBzdGF0aWMgY29uc3QgZ2No YXIgKgotIHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfaWQgKFBob3Rvc0ZpbHRlcmFibGUgKmZpbHRl cmFibGUpCi0gewotQEAgLTY5LDE0ICs2MCw2IEBAIHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfaWQg KFBob3Rvc0ZpbHRlcmFibGUgKmZpbHRlcmFibGUpCi0gfQotIAotIAotLXN0YXRpYyBnY2hhciAq Ci0tcGhvdG9zX3NlYXJjaF90eXBlX2dldF93aGVyZSAoUGhvdG9zRmlsdGVyYWJsZSAqaWZhY2Up Ci0tewotLSAgUGhvdG9zU2VhcmNoVHlwZSAqc2VsZiA9IFBIT1RPU19TRUFSQ0hfVFlQRSAoaWZh Y2UpOwotLSAgcmV0dXJuIGdfc3RyZHVwIChzZWxmLT53aGVyZSk7Ci0tfQotLQotLQotIHN0YXRp YyBnYm9vbGVhbgotIHBob3Rvc19zZWFyY2hfdHlwZV9pc19zZWFyY2hfY3JpdGVyaW9uIChQaG90 b3NGaWx0ZXJhYmxlICppZmFjZSkKLSB7Ci1AQCAtODQsMTUgKzY3LDIwIEBAIHBob3Rvc19zZWFy Y2hfdHlwZV9pc19zZWFyY2hfY3JpdGVyaW9uIChQaG90b3NGaWx0ZXJhYmxlICppZmFjZSkKLSB9 Ci0gCi0gCi0rUGhvdG9zU3BhcnFsVGVtcGxhdGUgKgotK3Bob3Rvc19zZWFyY2hfdHlwZV9nZXRf c3BhcnFsX3RlbXBsYXRlIChQaG90b3NTZWFyY2hUeXBlICpzZWxmKQotK3sKLSsgIHJldHVybiBz ZWxmLT5zcGFycWxfdGVtcGxhdGU7Ci0rfQotKwotIHN0YXRpYyB2b2lkCi0gcGhvdG9zX3NlYXJj aF90eXBlX2ZpbmFsaXplIChHT2JqZWN0ICpvYmplY3QpCi0gewotICAgUGhvdG9zU2VhcmNoVHlw ZSAqc2VsZiA9IFBIT1RPU19TRUFSQ0hfVFlQRSAob2JqZWN0KTsKLSAKLS0gIGdfZnJlZSAoc2Vs Zi0+ZmlsdGVyKTsKLSAgIGdfZnJlZSAoc2VsZi0+aWQpOwotICAgZ19mcmVlIChzZWxmLT5uYW1l KTsKLS0gIGdfZnJlZSAoc2VsZi0+d2hlcmUpOwotKyAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5z cGFycWxfdGVtcGxhdGUpOwotIAotICAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc19zZWFyY2hfdHlw ZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAob2JqZWN0KTsKLSB9Ci1AQCAtMTEzLDYgKzEwMSwx MCBAQCBwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICpvYmplY3QsIGd1 aW50IHByb3BfaWQsIEdWYWx1ZSAqdmFsdWUsCi0gICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nICh2 YWx1ZSwgc2VsZi0+bmFtZSk7Ci0gICAgICAgYnJlYWs7Ci0gCi0rICAgIGNhc2UgUFJPUF9TUEFS UUxfVEVNUExBVEU6Ci0rICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0ICh2YWx1ZSwgc2VsZi0+c3Bh cnFsX3RlbXBsYXRlKTsKLSsgICAgICBicmVhazsKLSsKLSAgICAgZGVmYXVsdDoKLSAgICAgICBH X09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMp OwotICAgICAgIGJyZWFrOwotQEAgLTEyNywxMCArMTE5LDYgQEAgcGhvdG9zX3NlYXJjaF90eXBl X3NldF9wcm9wZXJ0eSAoR09iamVjdCAqb2JqZWN0LCBndWludCBwcm9wX2lkLCBjb25zdCBHVmFs dWUgKnYKLSAKLSAgIHN3aXRjaCAocHJvcF9pZCkKLSAgICAgewotLSAgICBjYXNlIFBST1BfRklM VEVSOgotLSAgICAgIHNlbGYtPmZpbHRlciA9IGdfdmFsdWVfZHVwX3N0cmluZyAodmFsdWUpOwot LSAgICAgIGJyZWFrOwotLQotICAgICBjYXNlIFBST1BfSUQ6Ci0gICAgICAgc2VsZi0+aWQgPSBn X3ZhbHVlX2R1cF9zdHJpbmcgKHZhbHVlKTsKLSAgICAgICBicmVhazsKLUBAIC0xMzksOCArMTI3 LDggQEAgcGhvdG9zX3NlYXJjaF90eXBlX3NldF9wcm9wZXJ0eSAoR09iamVjdCAqb2JqZWN0LCBn dWludCBwcm9wX2lkLCBjb25zdCBHVmFsdWUgKnYKLSAgICAgICBzZWxmLT5uYW1lID0gZ192YWx1 ZV9kdXBfc3RyaW5nICh2YWx1ZSk7Ci0gICAgICAgYnJlYWs7Ci0gCi0tICAgIGNhc2UgUFJPUF9X SEVSRToKLS0gICAgICBzZWxmLT53aGVyZSA9IGdfdmFsdWVfZHVwX3N0cmluZyAodmFsdWUpOwot KyAgICBjYXNlIFBST1BfU1BBUlFMX1RFTVBMQVRFOgotKyAgICAgIHNlbGYtPnNwYXJxbF90ZW1w bGF0ZSA9IGdfb2JqZWN0X3JlZiAoZ192YWx1ZV9nZXRfb2JqZWN0ICh2YWx1ZSkpOwotICAgICAg IGJyZWFrOwotIAotICAgICBkZWZhdWx0OgotQEAgLTE2NSwxNCArMTUzLDYgQEAgcGhvdG9zX3Nl YXJjaF90eXBlX2NsYXNzX2luaXQgKFBob3Rvc1NlYXJjaFR5cGVDbGFzcyAqY2xhc3MpCi0gICBv YmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfcHJvcGVy dHk7Ci0gICBvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IHBob3Rvc19zZWFyY2hfdHlwZV9z ZXRfcHJvcGVydHk7Ci0gCi0tICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChvYmpl Y3RfY2xhc3MsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0ZJTFRF UiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJp bmcgKCJmaWx0ZXIiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIiIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIodHJ1ZSkiLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9DT05TVFJVQ1RfT05M WSB8IEdfUEFSQU1fV1JJVEFCTEUpKTsKLS0KLSAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv cGVydHkgKG9iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBST1BfSUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3Nw ZWNfc3RyaW5nICgiaWQiLAotQEAgLTE5MCwxMSArMTcwLDExIEBAIHBob3Rvc19zZWFyY2hfdHlw ZV9jbGFzc19pbml0IChQaG90b3NTZWFyY2hUeXBlQ2xhc3MgKmNsYXNzKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9DT05T VFJVQ1RfT05MWSB8IEdfUEFSQU1fUkVBRFdSSVRFKSk7Ci0gCi0gICBnX29iamVjdF9jbGFzc19p bnN0YWxsX3Byb3BlcnR5IChvYmplY3RfY2xhc3MsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQUk9QX1dIRVJFLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ19wYXJhbV9zcGVjX3N0cmluZyAoIndoZXJlIiwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUFJPUF9TUEFSUUxfVEVNUExBVEUsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0ICgic3BhcnFsLXRlbXBsYXRl IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIiIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQSE9UT1NfVFlQRV9TUEFSUUxfVEVNUExBVEUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BBUkFNX0NPTlNU UlVDVF9PTkxZIHwgR19QQVJBTV9XUklUQUJMRSkpOwotIH0KLSAKLUBAIC0yMDIsOSArMTgyLDcg QEAgcGhvdG9zX3NlYXJjaF90eXBlX2NsYXNzX2luaXQgKFBob3Rvc1NlYXJjaFR5cGVDbGFzcyAq Y2xhc3MpCi0gc3RhdGljIHZvaWQKLSBwaG90b3Nfc2VhcmNoX3R5cGVfZmlsdGVyYWJsZV9pZmFj ZV9pbml0IChQaG90b3NGaWx0ZXJhYmxlSW50ZXJmYWNlICppZmFjZSkKLSB7Ci0tICBpZmFjZS0+ Z2V0X2ZpbHRlciA9IHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfZmlsdGVyOwotICAgaWZhY2UtPmdl dF9pZCA9IHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfaWQ7Ci0tICBpZmFjZS0+Z2V0X3doZXJlID0g cGhvdG9zX3NlYXJjaF90eXBlX2dldF93aGVyZTsKLSAgIGlmYWNlLT5pc19zZWFyY2hfY3JpdGVy aW9uID0gcGhvdG9zX3NlYXJjaF90eXBlX2lzX3NlYXJjaF9jcml0ZXJpb247Ci0gfQotIAotQEAg LTIxNywxMiArMTk1LDEzIEBAIHBob3Rvc19zZWFyY2hfdHlwZV9uZXcgKGNvbnN0IGdjaGFyICpp ZCwgY29uc3QgZ2NoYXIgKm5hbWUpCi0gCi0gCi0gUGhvdG9zU2VhcmNoVHlwZSAqCi0tcGhvdG9z X3NlYXJjaF90eXBlX25ld19mdWxsIChjb25zdCBnY2hhciAqaWQsIGNvbnN0IGdjaGFyICpuYW1l LCBjb25zdCBnY2hhciAqd2hlcmUsIGNvbnN0IGdjaGFyICpmaWx0ZXIpCi0rcGhvdG9zX3NlYXJj aF90eXBlX25ld19mdWxsIChjb25zdCBnY2hhciAqaWQsIGNvbnN0IGdjaGFyICpuYW1lLCBjb25z dCBnY2hhciAqdGVtcGxhdGVfcGF0aCkKLSB7Ci0rICBnX2F1dG9wdHIgKFBob3Rvc1NwYXJxbFRl bXBsYXRlKSB0ZW1wbGF0ZSA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfbmV3ICh0ZW1wbGF0ZV9w YXRoKTsKLSsKLSAgIHJldHVybiBnX29iamVjdF9uZXcgKFBIT1RPU19UWVBFX1NFQVJDSF9UWVBF LAotICAgICAgICAgICAgICAgICAgICAgICAgImlkIiwgaWQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAibmFtZSIsIG5hbWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAiZmlsdGVyIiwgZmls dGVyLAotLSAgICAgICAgICAgICAgICAgICAgICAgIndoZXJlIiwgd2hlcmUsCi0rICAgICAgICAg ICAgICAgICAgICAgICAic3BhcnFsLXRlbXBsYXRlIiwgdGVtcGxhdGUsCi0gICAgICAgICAgICAg ICAgICAgICAgICBOVUxMKTsKLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1zZWFyY2gtdHlw ZS5oIGIvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS5oCi1pbmRleCAyZjcxMzViZC4uN2Q2OTlkZDQg MTAwNjQ0Ci0tLS0gYS9zcmMvcGhvdG9zLXNlYXJjaC10eXBlLmgKLSsrKyBiL3NyYy9waG90b3Mt c2VhcmNoLXR5cGUuaAotQEAgLTI0LDYgKzI0LDcgQEAKLSAjZGVmaW5lIFBIT1RPU19TRUFSQ0hf VFlQRV9ICi0gCi0gI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0rI2luY2x1ZGUgInBob3Rvcy1z cGFycWwtdGVtcGxhdGUuaCIKLSAKLSBHX0JFR0lOX0RFQ0xTCi0gCi1AQCAtMzksOCArNDAsOSBA QCBQaG90b3NTZWFyY2hUeXBlICAgICpwaG90b3Nfc2VhcmNoX3R5cGVfbmV3ICAgICAgICAgICAg ICAgIChjb25zdCBnY2hhciAqaWQsIGNvbgotIAotIFBob3Rvc1NlYXJjaFR5cGUgICAgKnBob3Rv c19zZWFyY2hfdHlwZV9uZXdfZnVsbCAgICAgICAgICAgKGNvbnN0IGdjaGFyICppZCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBnY2hhciAqbmFtZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqd2hlcmUsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No YXIgKmZpbHRlcik7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnRlbXBsYXRlX3BhdGgpOwotKwotK1Bob3Rv c1NwYXJxbFRlbXBsYXRlICpwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAo UGhvdG9zU2VhcmNoVHlwZSAqc2VsZik7Ci0gCi0gR19FTkRfREVDTFMKLSAKLWRpZmYgLS1naXQg YS9zcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5jIGIvc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxh dGUuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwLi5iMzI0MzdjMAotLS0t IC9kZXYvbnVsbAotKysrIGIvc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuYwotQEAgLTAsMCAr MSwxODcgQEAKLSsvKgotKyAqIFBob3RvcyAtIGFjY2Vzcywgb3JnYW5pemUgYW5kIHNoYXJlIHlv dXIgcGhvdG9zIG9uIEdOT01FCi0rICogQ29weXJpZ2h0IMKpIDIwMjAgU2FtIFRodXJzZmllbGQg PHNhbUBhZnVlcmEubWUudWs+Ci0rICoKLSsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAqIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 Ci0rICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKLSsgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot KyAqCi0rICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCi0rICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rICogR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsgKgotKyAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICogYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCi0rICovCi0rCi0rI2luY2x1ZGUgPGdpby9naW8uaD4KLSsKLSsjaW5jbHVkZSAi cGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oIgotKwotKyNkZWZpbmUgTUFYX1NQQVJRTF9URU1QTEFU RV9TSVpFICgxMDI0ICogMTApCi0rCi0rc3RydWN0IF9QaG90b3NTcGFycWxUZW1wbGF0ZSB7Ci0r ICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKLSsgIGdjaGFyICp0ZW1wbGF0ZV9wYXRoOwotKyAg Z2NoYXIgKnRlbXBsYXRlX3RleHQ7Ci0rfTsKLSsKLStHX0RFRklORV9UWVBFIChQaG90b3NTcGFy cWxUZW1wbGF0ZSwgcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZSwgR19UWVBFX09CSkVDVCkKLSsKLStl bnVtIHsKLSsgIFBST1BfMCwKLSsgIFBST1BfVEVNUExBVEVfUEFUSCwKLSsgIE5fUFJPUFMKLSt9 OwotKwotK1Bob3Rvc1NwYXJxbFRlbXBsYXRlICoKLStwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX25l dyAoY29uc3QgZ2NoYXIgKnRlbXBsYXRlX3BhdGgpCi0rewotKyAgcmV0dXJuIGdfb2JqZWN0X25l dyAoUEhPVE9TX1RZUEVfU1BBUlFMX1RFTVBMQVRFLCAidGVtcGxhdGUtcGF0aCIsIHRlbXBsYXRl X3BhdGgsIE5VTEwpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK3Bob3Rvc19zcGFycWxfdGVtcGxh dGVfY29uc3RydWN0ZWQgKEdPYmplY3QgKm9iamVjdCkKLSt7Ci0rICBQaG90b3NTcGFycWxUZW1w bGF0ZSAqc2VsZiA9IFBIT1RPU19TUEFSUUxfVEVNUExBVEUgKG9iamVjdCk7Ci0rICBnX2F1dG9w dHIgKEdGaWxlKSBmaWxlID0gTlVMTDsKLSsgIGdfYXV0b3B0ciAoR0ZpbGVJbnB1dFN0cmVhbSkg c3RyZWFtID0gTlVMTDsKLSsgIGdjaGFyIGJ1ZmZlcltNQVhfU1BBUlFMX1RFTVBMQVRFX1NJWkUg KyAxXTsKLSsgIGdzaXplIGJ5dGVzX3JlYWQ7Ci0rICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3Ig PSBOVUxMOwotKwotKyAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc19zcGFycWxfdGVtcGxhdGVfcGFy ZW50X2NsYXNzKS0+Y29uc3RydWN0ZWQgKG9iamVjdCk7Ci0rCi0rICBmaWxlID0gZ19maWxlX25l d19mb3JfdXJpIChzZWxmLT50ZW1wbGF0ZV9wYXRoKTsKLSsKLSsgIHN0cmVhbSA9IGdfZmlsZV9y ZWFkIChmaWxlLCBOVUxMLCAmZXJyb3IpOwotKwotKyAgaWYgKCFzdHJlYW0pCi0rICAgIHsKLSsg ICAgICBnX2NyaXRpY2FsICgiRmFpbGVkIHRvIG9wZW4gdGVtcGxhdGUgJXM6ICVzIiwgc2VsZi0+ dGVtcGxhdGVfcGF0aCwgZXJyb3ItPm1lc3NhZ2UpOwotKyAgICB9Ci0rCi0rICBnX2lucHV0X3N0 cmVhbV9yZWFkX2FsbCAoR19JTlBVVF9TVFJFQU0gKHN0cmVhbSksIGJ1ZmZlciwgTUFYX1NQQVJR TF9URU1QTEFURV9TSVpFLCAmYnl0ZXNfcmVhZCwgTlVMTCwgJmVycm9yKTsKLSsKLSsgIGlmIChl cnJvcikKLSsgICAgewotKyAgICAgIGdfY3JpdGljYWwgKCJGYWlsZWQgdG8gcmVhZCB0ZW1wbGF0 ZSAlczogJXMiLCBzZWxmLT50ZW1wbGF0ZV9wYXRoLCBlcnJvci0+bWVzc2FnZSk7Ci0rICAgIH0K LSsKLSsgIGJ1ZmZlcltieXRlc19yZWFkXSA9ICdcMCc7Ci0rCi0rICBzZWxmLT50ZW1wbGF0ZV90 ZXh0ICA9IGdfc3RyZHVwIChidWZmZXIpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK3Bob3Rvc19z cGFycWxfdGVtcGxhdGVfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKLSt7Ci0rICBHX09CSkVD VF9DTEFTUyAocGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAo b2JqZWN0KTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2dl dF9wcm9wZXJ0eSAoR09iamVjdCAgICAqb2JqZWN0LAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBndWludCAgICAgICBwcm9wX2lkLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHVmFsdWUgICAgICp2YWx1ZSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAqcHNwZWMpCi0rewotKyAgUGhvdG9zU3BhcnFs VGVtcGxhdGUgKnNlbGYgPSBQSE9UT1NfU1BBUlFMX1RFTVBMQVRFIChvYmplY3QpOwotKwotKyAg c3dpdGNoIChwcm9wX2lkKQotKyAgICB7Ci0rICAgIGNhc2UgUFJPUF9URU1QTEFURV9QQVRIOgot KyAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyAodmFsdWUsIHNlbGYtPnRlbXBsYXRlX3BhdGgpOwot KyAgICAgIGJyZWFrOwotKwotKyAgICBkZWZhdWx0OgotKyAgICAgIEdfT0JKRUNUX1dBUk5fSU5W QUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7Ci0rICAgIH0KLSt9Ci0r Ci0rc3RhdGljIHZvaWQKLStwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX3NldF9wcm9wZXJ0eSAoR09i amVjdCAgICAgICpvYmplY3QsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGd1aW50ICAgICAgICAgcHJvcF9pZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgR1ZhbHVlICp2YWx1ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR1BhcmFtU3BlYyAgICpwc3BlYykKLSt7Ci0rICBQaG90b3NTcGFycWxUZW1wbGF0 ZSAqc2VsZiA9IFBIT1RPU19TUEFSUUxfVEVNUExBVEUgKG9iamVjdCk7Ci0rCi0rICBzd2l0Y2gg KHByb3BfaWQpCi0rICAgIHsKLSsgICAgY2FzZSBQUk9QX1RFTVBMQVRFX1BBVEg6Ci0rICAgICAg c2VsZi0+dGVtcGxhdGVfcGF0aCA9IGdfdmFsdWVfZHVwX3N0cmluZyAodmFsdWUpOwotKyAgICAg IGJyZWFrOwotKwotKyAgICBkZWZhdWx0OgotKyAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9Q Uk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7Ci0rICAgIH0KLSt9Ci0rCi0rc3Rh dGljIHZvaWQKLStwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2NsYXNzX2luaXQgKFBob3Rvc1NwYXJx bFRlbXBsYXRlQ2xhc3MgKmtsYXNzKQotK3sKLSsgIEdPYmplY3RDbGFzcyAqb2JqZWN0X2NsYXNz ID0gR19PQkpFQ1RfQ0xBU1MgKGtsYXNzKTsKLSsKLSsgIG9iamVjdF9jbGFzcy0+Y29uc3RydWN0 ZWQgPSBwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2NvbnN0cnVjdGVkOwotKyAgb2JqZWN0X2NsYXNz LT5maW5hbGl6ZSA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfZmluYWxpemU7Ci0rICBvYmplY3Rf Y2xhc3MtPmdldF9wcm9wZXJ0eSA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfZ2V0X3Byb3BlcnR5 OwotKyAgb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkgPSBwaG90b3Nfc3BhcnFsX3RlbXBsYXRl X3NldF9wcm9wZXJ0eTsKLSsKLSsgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKG9i amVjdF9jbGFzcywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfVEVN UExBVEVfUEFUSCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1f c3BlY19zdHJpbmcgKCJ0ZW1wbGF0ZS1wYXRoIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZW1wbGF0ZSBwYXRoIiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYXRoIHRv IHRoZSB0ZW1wbGF0ZSBmaWxlLiIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9DT05TVFJVQ1RfT05MWSB8IEdf UEFSQU1fUkVBRFdSSVRFKSk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rcGhvdG9zX3NwYXJxbF90 ZW1wbGF0ZV9pbml0IChQaG90b3NTcGFycWxUZW1wbGF0ZSAqc2VsZikKLSt7Ci0rfQotKwotKwot K2djaGFyICoKLStwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2dldF9zcGFycWwgKFBob3Rvc1NwYXJx bFRlbXBsYXRlICpzZWxmLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgZ2NoYXIgICAgICAgICAgKmZpcnN0X2JpbmRpbmdfbmFtZSwgLi4uKQotK3sKLSsgIHZhX2xp c3QgdmE7Ci0rICBnY2hhciAqc3BhcnFsOwotKwotKyAgc3BhcnFsID0gc2VsZi0+dGVtcGxhdGVf dGV4dDsKLSsKLSsgIC8qIEZJWE1FOiB0aGlzIGlzIGFuIGluZWZmaWNlbnQgd2F5IHRvIGRvIHRl bXBsYXRlIHN1YnN0aXR1dGlvbnMKLSsgICAqIGJlY2F1c2Ugd2UgYWxsb2NhdGUgYW5kIGZyZWUg YSBjb3B5IG9mIHRoZSBzdHJpbmcgZm9yIGVhY2ggYmluZGluZy4KLSsgICAqIFdlIHNob3VsZCBj aGVjayBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvdGVtcGxhdGUtZ2xpYi8KLSsgICAq LwotKyAgaWYgKGZpcnN0X2JpbmRpbmdfbmFtZSkKLSsgICAgewotKyAgICAgIEdSZWdleCAqcmVn ZXg7Ci0rICAgICAgZ2NoYXIgKm5hbWVfcmVnZXg7Ci0rICAgICAgY29uc3QgZ2NoYXIgKm5hbWU7 Ci0rICAgICAgY29uc3QgZ2NoYXIgKnZhbHVlOwotKwotKyAgICAgIHZhX3N0YXJ0ICh2YSwgZmly c3RfYmluZGluZ19uYW1lKTsKLSsgICAgICBuYW1lID0gZmlyc3RfYmluZGluZ19uYW1lOwotKyAg ICAgIGRvIHsKLSsgICAgICAgIHZhbHVlID0gdmFfYXJnICh2YSwgY29uc3QgZ2NoYXIgKik7Ci0r Ci0rICAgICAgICBpZiAodmFsdWUgPT0gTlVMTCkKLSsgICAgICAgICAgewotKyAgICAgICAgICAg IGdfY3JpdGljYWwgKCJNaXNzaW5nIHZhbHVlIGZvciBhcmd1bWVudCBcIiVzXCIiLCBuYW1lKTsK LSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgfQotKwotKyAgICAgICAgbmFtZV9yZWdl eCA9IGdfc3RyZHVwX3ByaW50ZiAoInt7XFxzPyVzXFxzP319IiwgbmFtZSk7Ci0rICAgICAgICBy ZWdleCA9IGdfcmVnZXhfbmV3IChuYW1lX3JlZ2V4LCAwLCAwLCBOVUxMKTsKLSsgICAgICAgIHNw YXJxbCA9IGdfcmVnZXhfcmVwbGFjZV9saXRlcmFsIChyZWdleCwgc3BhcnFsLCAtMSwgMCwgdmFs dWUsIDAsIE5VTEwpIDsKLSsgICAgICB9IHdoaWxlICgobmFtZSA9IHZhX2FyZyAodmEsIGNvbnN0 IGdjaGFyICopKSk7Ci0rCi0rICAgICAgdmFfZW5kICh2YSk7Ci0rICAgIH0KLSsKLSsgIHJldHVy biBzcGFycWw7Ci0rfQotZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mtc3BhcnFsLXRlbXBsYXRlLmgg Yi9zcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5k ZXggMDAwMDAwMDAuLjY2MzUxYjM4Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvcGhvdG9zLXNw YXJxbC10ZW1wbGF0ZS5oCi1AQCAtMCwwICsxLDM4IEBACi0rLyoKLSsgKiBQaG90b3MgLSBhY2Nl c3MsIG9yZ2FuaXplIGFuZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRQotKyAqIENvcHlyaWdo dCDCqSAyMDIwIFNhbSBUaHVyc2ZpZWxkIDxzYW1AYWZ1ZXJhLm1lLnVrPgotKyAqCi0rICogVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKLSsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICogKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsgKgotKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAqIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICog TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQotKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0r ICoKLSsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQotKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKyAqLwotKwotKyNwcmFnbWEgb25j ZQotKwotKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotKwotK0dfQkVHSU5fREVDTFMKLSsKLSsj ZGVmaW5lIFBIT1RPU19UWVBFX1NQQVJRTF9URU1QTEFURSAocGhvdG9zX3NwYXJxbF90ZW1wbGF0 ZV9nZXRfdHlwZSgpKQotKwotK0dfREVDTEFSRV9GSU5BTF9UWVBFIChQaG90b3NTcGFycWxUZW1w bGF0ZSwgcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZSwgUEhPVE9TLCBTUEFSUUxfVEVNUExBVEUsIEdP YmplY3QpCi0rCi0rc3RydWN0IF9QaG90b3NTcGFycWxUZW1wbGF0ZUNsYXNzCi0rewotKyAgR09i amVjdENsYXNzIHBhcmVudF9jbGFzczsKLSt9OwotKwotK1Bob3Rvc1NwYXJxbFRlbXBsYXRlICpw aG90b3Nfc3BhcnFsX3RlbXBsYXRlX25ldyAoY29uc3QgZ2NoYXIgKnRlbXBsYXRlX3BhdGgpOwot KwotK2djaGFyICpwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2dldF9zcGFycWwgKFBob3Rvc1NwYXJx bFRlbXBsYXRlICpzZWxmLCBjb25zdCBnY2hhciAqZmlyc3RfYmluZGluZ19uYW1lLCAuLi4pICBH X0dOVUNfTlVMTF9URVJNSU5BVEVEOwotKwotK0dfRU5EX0RFQ0xTCi1kaWZmIC0tZ2l0IGEvc3Jj L3Bob3Rvcy5ncmVzb3VyY2UueG1sIGIvc3JjL3Bob3Rvcy5ncmVzb3VyY2UueG1sCi1pbmRleCAx MDE1YjExZC4uMzllNmQ4NDIgMTAwNjQ0Ci0tLS0gYS9zcmMvcGhvdG9zLmdyZXNvdXJjZS54bWwK LSsrKyBiL3NyYy9waG90b3MuZ3Jlc291cmNlLnhtbAotQEAgLTM1LDYgKzM1LDEwIEBACi0gICAg IDxmaWxlIGFsaWFzPSJzZWxlY3Rpb24tdG9vbGJhci51aSIgcHJlcHJvY2Vzcz0ieG1sLXN0cmlw YmxhbmtzIiBjb21wcmVzc2VkPSJ0cnVlIj5waG90b3Mtc2VsZWN0aW9uLXRvb2xiYXIudWk8L2Zp bGU+Ci0gICAgIDxmaWxlIGFsaWFzPSJzaGFyZS1kaWFsb2cudWkiIHByZXByb2Nlc3M9InhtbC1z dHJpcGJsYW5rcyIgY29tcHJlc3NlZD0idHJ1ZSI+cGhvdG9zLXNoYXJlLWRpYWxvZy51aTwvZmls ZT4KLSAgICAgPGZpbGUgYWxpYXM9Inpvb20tY29udHJvbHMudWkiIHByZXByb2Nlc3M9InhtbC1z dHJpcGJsYW5rcyIgY29tcHJlc3NlZD0idHJ1ZSI+cGhvdG9zLXpvb20tY29udHJvbHMudWk8L2Zp bGU+Ci0rICAgIDxmaWxlIGFsaWFzPSJhbGwuc3BhcnFsLnRlbXBsYXRlIj5xdWVyaWVzL2FsbC5z cGFycWwudGVtcGxhdGU8L2ZpbGU+Ci0rICAgIDxmaWxlIGFsaWFzPSJjb2xsZWN0aW9ucy5zcGFy cWwudGVtcGxhdGUiPnF1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlPC9maWxlPgot KyAgICA8ZmlsZSBhbGlhcz0iZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSI+cXVlcmll cy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlPC9maWxlPgotKyAgICA8ZmlsZSBhbGlh cz0icGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSI+cXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRl PC9maWxlPgotICAgPC9ncmVzb3VyY2U+Ci0gCi0gICA8Z3Jlc291cmNlIHByZWZpeD0iL29yZy9n bm9tZS9QaG90b3MvZ3RrIj4KLWRpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRl bXBsYXRlIGIvc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQotbmV3IGZpbGUgbW9kZSAx MDA2NDQKLWluZGV4IDAwMDAwMDAwLi4xY2VmOThlOAotLS0tIC9kZXYvbnVsbAotKysrIGIvc3Jj L3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQotQEAgLTAsMCArMSwzMSBAQAotK1NFTEVDVCB7 e3Byb2plY3Rpb259fQotK3sKLSsgICAgewotKyAgICAgICAgU0VMRUNUIHt7cHJvamVjdGlvbn19 Ci0rICAgICAgICB7Ci0rICAgICAgICAgICAgewotKyAgICAgICAgICAgICAgICBTRUxFQ1QgP3Vy biBDT1VOVCg/aXRlbSkgQVMgP2NvdW50Ci0rICAgICAgICAgICAgICAgIHsKLSsgICAgICAgICAg ICAgICAgICAgID91cm4gYSBuZm86RGF0YUNvbnRhaW5lci4KLSsgICAgICAgICAgICAgICAgICAg ID9pdGVtIGEgbm1tOlBob3RvOyBuaWU6aXNQYXJ0T2YgP3Vybi4KLSsgICAgICAgICAgICAgICAg fSBHUk9VUCBCWSA/dXJuCi0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIEZJTFRFUiAoP2Nv dW50ID4gMCAmJiB7e2NvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmls dGVyfX0pCi0rICAgICAgICB9Ci0rICAgICAgICBHUk9VUCBCWSA/dXJuCi0rICAgIH0KLSsgICAg VU5JT04KLSsgICAgewotKyAgICAgICAgU0VMRUNUIHt7cHJvamVjdGlvbn19Ci0rICAgICAgICB7 Ci0rICAgICAgICAgICAgP3VybiBhIG5tbTpQaG90byAuCi0rICAgICAgICAgICAgT1BUSU9OQUwg eyA/dXJuIG5jbzpjcmVhdG9yID9jcmVhdG9yIC4gfQotKyAgICAgICAgICAgIE9QVElPTkFMIHsg P3VybiBuY286cHVibGlzaGVyID9wdWJsaXNoZXIgLiB9Ci0rICAgICAgICAgICAge3tpdGVtX3Bh dHRlcm59fQotKyAgICAgICAgICAgIEZJTFRFUiAoe3twaG90b3NfZGVmYXVsdF9maWx0ZXJ9fSAm JiB7e3NvdXJjZV9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKLSsgICAgICAgIH0KLSsg ICAgICAgIEdST1VQIEJZID91cm4KLSsgICAgfQotK30KLSt7e29yZGVyfX0KLSt7e29mZnNldF9s aW1pdH19Ci1kaWZmIC0tZ2l0IGEvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBs YXRlIGIvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlCi1uZXcgZmlsZSBt b2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAuLjIwYjM1Y2Q2Ci0tLS0gL2Rldi9udWxsCi0rKysg Yi9zcmMvcXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUKLUBAIC0wLDAgKzEsMTQg QEAKLStTRUxFQ1Qge3twcm9qZWN0aW9ufX0KLSt7Ci0rICAgIHsKLSsgICAgICAgIFNFTEVDVCA/ dXJuIENPVU5UKD9pdGVtKSBBUyA/Y291bnQKLSsgICAgICAgIHsKLSsgICAgICAgICAgICA/dXJu IGEgbmZvOkRhdGFDb250YWluZXIuCi0rICAgICAgICAgICAgP2l0ZW0gYSBubW06UGhvdG87IG5p ZTppc1BhcnRPZiA/dXJuLgotKyAgICAgICAgfSBHUk9VUCBCWSA/dXJuCi0rICAgIH0KLSsgICAg RklMVEVSICg/Y291bnQgPiAwICYmIHt7Y29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7 e3NlYXJjaF9maWx0ZXJ9fSkKLSt9Ci0rR1JPVVAgQlkgP3VybgotK3t7b3JkZXJ9fQotK3t7b2Zm c2V0X2xpbWl0fX0KLWRpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3Bh cnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0 ZQotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwLi4wODg1YTA4YQotLS0tIC9k ZXYvbnVsbAotKysrIGIvc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0 ZQotQEAgLTAsMCArMSwxMiBAQAotK1NFTEVDVCB7e3Byb2plY3Rpb259fQotK3sKLSsgICAgP3Vy biBhIG5tbTpQaG90byAuCi0rICAgID91cm4gYSBubW06UGhvdG87IG5hbzpoYXNUYWcgbmFvOnBy ZWRlZmluZWQtdGFnLWZhdm9yaXRlIC4KLSsgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9y ID9jcmVhdG9yIC4gfQotKyAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlz aGVyIC4gfQotKyAgICB7e2l0ZW1fcGF0dGVybn19Ci0rICAgIEZJTFRFUiAoe3twaG90b3NfZGVm YXVsdF9maWx0ZXJ9fSAmJiB7e3NvdXJjZV9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkK LSt9Ci0rR1JPVVAgQlkgP3VybgotK3t7b3JkZXJ9fQotK3t7b2Zmc2V0X2xpbWl0fX0KLWRpZmYg LS1naXQgYS9zcmMvcXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMv cGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAw MDAwLi40ZWIxMGI3NAotLS0tIC9kZXYvbnVsbAotKysrIGIvc3JjL3F1ZXJpZXMvcGhvdG9zLnNw YXJxbC50ZW1wbGF0ZQotQEAgLTAsMCArMSwxMSBAQAotK1NFTEVDVCB7e3Byb2plY3Rpb259fQot K3sKLSsgICAgP3VybiBhIG5tbTpQaG90byAuCi0rICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3Jl YXRvciA/Y3JlYXRvciAuIH0KLSsgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpwdWJsaXNoZXIgP3B1 Ymxpc2hlciAuIH0KLSsgICAge3tpdGVtX3BhdHRlcm59fQotKyAgICBGSUxURVIgKHt7cGhvdG9z X2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVy fX0pCi0rfQotK0dST1VQIEJZID91cm4KLSt7e29yZGVyfX0KLSt7e29mZnNldF9saW1pdH19Ci0t LSAKLUdpdExhYgotCi0KLUZyb20gZGJiYjc2ZjIyOGJhZDMzMzM0ZTA1NzQ3ODRjMzRlZmI3MDcx Zjk1MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFNhbSBUaHVyc2ZpZWxkIDxzYW1A YWZ1ZXJhLm1lLnVrPgotRGF0ZTogU2F0LCAyMyBNYXkgMjAyMCAxMzozNjoyNSArMDIwMAotU3Vi amVjdDogW1BBVENIIDMvM10gUG9ydCB0byBUcmFja2VyIDMKLQotTm90YWJsZSBjaGFuZ2VzOgot Ci0gICogVXNlciBkYXRhIChmYXZvdXJpdGVzLCBhbGJ1bXMpIGlzIG5vdyBzdG9yZWQgaW4gYSBw cml2YXRlIGRhdGFiYXNlIGluCi0gICAgfi8ubG9jYWwvc2hhcmUvZ25vbWUtcGhvdG9zLiBUaGlz IGlzIGNvbWJpbmVkIHdpdGggdGhlIFRyYWNrZXIgTWluZXIKLSAgICBGUyBpbmRleCBvZiBwaG90 b3MgYXQgcXVlcnkgdGltZS4KLSAgKiBJbnNpZGUgRmxhdHBhaywgdGhlIGFwcCBjb25uZWN0cyB0 byBUcmFja2VyIHZpYSB0aGUgbmV3Ci0gICAgeGRnLXRyYWNrZXItcG9ydGFsIGluc3RlYWQgb2Yg dGFsa2luZyBkaXJlY3RseSBvdmVyIEQtQnVzLiBBY2Nlc3MgaXMKLSAgICBsaW1pdGVkIGJ5IHRo ZSBwb3J0YWwgc28gdGhlIGFwcCBjYW4gb25seSBzZWUgdGhlIFBpY3R1cmVzIGdyYXBoLgotICAq IFRoZSBGbGF0cGFrIGJ1aWxkIGNhbiB1c2UgYSBidW5kbGVkIHZlcnNpb24gb2YgVHJhY2tlciBN aW5lcnMsIGlmIGEKLSAgICBzdWl0YWJsZSB2ZXJzaW9uIGlzIG5vdCBhdmFpbGFibGUgb24gdGhl IGhvc3QuCi0gICogQ2hhbmdlIGRldGVjdGlvbiBpcyBkb25lIHVzaW5nIFRyYWNrZXJOb3RpZmll ciBpbnN0ZWFkIG9mIHdhdGNoaW5nCi0gICAgdGhlIEdyYXBoVXBkYXRlZCBELUJ1cyBzaWduYWwg ZGlyZWN0bHkuCi0KLUNsb3NlcyBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUt cGhvdG9zLy0vaXNzdWVzLzU5Ci1DbG9zZXMgaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01F L2dub21lLXBob3Rvcy8tL2lzc3Vlcy8xNTIKLS0tLQotIGRhdGEvbWVzb24uYnVpbGQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCi0gZGF0YS90cmFja2VyL21lc29uLmJ1aWxk ICAgICAgICAgICAgICAgICAgICAgIHwgIDMzICsrCi0gLi4uZS5QaG90b3MuVHJhY2tlcjMuTWlu ZXIuRXh0cmFjdC5zZXJ2aWNlLmluIHwgICA3ICsKLSAuLi5vbWUuUGhvdG9zLlRyYWNrZXIzLk1p bmVyLkZpbGVzLnNlcnZpY2UuaW4gfCAgIDcgKwotIGRhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhv dG9zLmRvbWFpbi5ydWxlLmluICB8ICAyMCArCi0gZmxhdHBhay9vcmcuZ25vbWUuUGhvdG9zLmpz b24gICAgICAgICAgICAgICAgIHwgIDQ5ICstCi0gbWVzb24uYnVpbGQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAzICstCi0gc3JjL21lc29uLmJ1aWxkICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDE5ICstCi0gLi4uZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWlu ZXIuRmlsZXMuSW5kZXgueG1sIHwgIDExICsKLSBzcmMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIz Lk1pbmVyLnhtbCAgICAgICAgfCAgNTYgKysrCi0gc3JjL3Bob3Rvcy1hcHBsaWNhdGlvbi5jICAg ICAgICAgICAgICAgICAgICAgIHwgMTc2ICsrLS0tLS0KLSBzcmMvcGhvdG9zLWJhc2UtaXRlbS5j ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKwotIHNyYy9waG90b3MtaW5kZXhpbmctbm90 aWZpY2F0aW9uLmMgICAgICAgICAgICB8ICA1MyArLQotIHNyYy9waG90b3MtaXRlbS1tYW5hZ2Vy LmMgICAgICAgICAgICAgICAgICAgICB8ICA2OSArLS0KLSBzcmMvcGhvdG9zLXF1YXJrcy5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjAgKy0KLSBzcmMvcGhvdG9zLXF1ZXJ5LWJ1aWxk ZXIuYyAgICAgICAgICAgICAgICAgICAgfCAxNDggKysrKy0tCi0gc3JjL3Bob3Rvcy1zZWFyY2gt Y29udGV4dC5jICAgICAgICAgICAgICAgICAgIHwgICAzICsKLSBzcmMvcGhvdG9zLXNlYXJjaC1j b250ZXh0LmggICAgICAgICAgICAgICAgICAgfCAgIDEgKwotIHNyYy9waG90b3Mtc2VhcmNoLW1h dGNoLW1hbmFnZXIuYyAgICAgICAgICAgICB8ICAgMiArLQotIHNyYy9waG90b3Mtc291cmNlLmMg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNCArLQotIHNyYy9waG90b3MtdHJhY2tlci1j aGFuZ2UtZXZlbnQuYyAgICAgICAgICAgICB8IDEzNiAtLS0tLQotIHNyYy9waG90b3MtdHJhY2tl ci1jaGFuZ2UtZXZlbnQuaCAgICAgICAgICAgICB8ICA2NCAtLS0KLSBzcmMvcGhvdG9zLXRyYWNr ZXItY2hhbmdlLW1vbml0b3IuYyAgICAgICAgICAgfCA0NjggLS0tLS0tLS0tLS0tLS0tLS0tCi0g c3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmggICAgICAgICAgIHwgIDQyIC0tCi0g c3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYyAgICAgICAgICAgICAgIHwgIDEyICstCi0g c3JjL3Bob3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3JpdHkueG1sICAgICAgIHwgICAyICstCi0g c3JjL3Bob3Rvcy10cmFja2VyLWltcG9ydC1jb250cm9sbGVyLmMgICAgICAgIHwgIDg1ICsrLS0K LSBzcmMvcGhvdG9zLXRyYWNrZXItcXVldWUuYyAgICAgICAgICAgICAgICAgICAgfCAyMDYgKysr KysrKy0KLSBzcmMvcGhvdG9zLXRyYWNrZXItcXVldWUuaCAgICAgICAgICAgICAgICAgICAgfCAg IDcgKwotIHNyYy9waG90b3MtdHJhY2tlci1yZXNvdXJjZXMueG1sICAgICAgICAgICAgICB8ICAz MSAtLQotIHNyYy9waG90b3MtdXRpbHMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy NCArLQotIHNyYy9waG90b3MtdXRpbHMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQotIHNyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUgICAgICAgICAgICAgICB8ICAz NCArLQotIHNyYy9xdWVyaWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0ZSAgICAgICB8ICAy MCArLQotIHNyYy9xdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGUgICB8ICAy MCArLQotIHNyYy9xdWVyaWVzL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUgICAgICAgICAgICB8ICAy MiArLQotIDM2IGZpbGVzIGNoYW5nZWQsIDczNiBpbnNlcnRpb25zKCspLCAxMTQyIGRlbGV0aW9u cygtKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBkYXRhL3RyYWNrZXIvbWVzb24uYnVpbGQKLSBjcmVh dGUgbW9kZSAxMDA2NDQgZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWlu ZXIuRXh0cmFjdC5zZXJ2aWNlLmluCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGRhdGEvdHJhY2tlci9v cmcuZ25vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkZpbGVzLnNlcnZpY2UuaW4KLSBjcmVhdGUg bW9kZSAxMDA2NDQgZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuZG9tYWluLnJ1bGUuaW4K LSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5G aWxlcy5JbmRleC54bWwKLSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL29yZy5mcmVlZGVza3RvcC5U cmFja2VyMy5NaW5lci54bWwKLSBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3Bob3Rvcy10cmFja2Vy LWNoYW5nZS1ldmVudC5jCi0gZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9waG90b3MtdHJhY2tlci1j aGFuZ2UtZXZlbnQuaAotIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvcGhvdG9zLXRyYWNrZXItY2hh bmdlLW1vbml0b3IuYwotIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvcGhvdG9zLXRyYWNrZXItY2hh bmdlLW1vbml0b3IuaAotIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMvcGhvdG9zLXRyYWNrZXItcmVz b3VyY2VzLnhtbAotCi1kaWZmIC0tZ2l0IGEvZGF0YS9tZXNvbi5idWlsZCBiL2RhdGEvbWVzb24u YnVpbGQKLWluZGV4IGY1MWE0NTExLi45YjUyOGM5NiAxMDA2NDQKLS0tLSBhL2RhdGEvbWVzb24u YnVpbGQKLSsrKyBiL2RhdGEvbWVzb24uYnVpbGQKLUBAIC04MywzICs4Myw1IEBAIGluc3RhbGxf ZGF0YSgKLSAgIHBob3Rvc19uYW1lc3BhY2UudG9fbG93ZXIoKSArICcuZ3NjaGVtYS54bWwnLAot ICAgaW5zdGFsbF9kaXI6IGpvaW5fcGF0aHMocGhvdG9zX2RhdGFkaXIsICdnbGliLTIuMCcsICdz Y2hlbWFzJyksCi0gKQotKwotK3N1YmRpcigndHJhY2tlcicpCi1kaWZmIC0tZ2l0IGEvZGF0YS90 cmFja2VyL21lc29uLmJ1aWxkIGIvZGF0YS90cmFja2VyL21lc29uLmJ1aWxkCi1uZXcgZmlsZSBt b2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAuLmFjY2M5OWMyCi0tLS0gL2Rldi9udWxsCi0rKysg Yi9kYXRhL3RyYWNrZXIvbWVzb24uYnVpbGQKLUBAIC0wLDAgKzEsMzMgQEAKLSsjIEZpbGVzIG5l ZWRlZCBmb3IgcnVubmluZyBUcmFja2VyIGluc2lkZSB0aGUgRmxhdHBhayBzYW5kYm94LCBmb3Ig c3lzdGVtcwotKyMgd2hpY2ggZG9uJ3QgaGF2ZSBhIHN1aXRhYmxlIHZlcnNpb24gb2YgVHJhY2tl ciBpbiB0aGUgaG9zdCBPUy4KLSsjCi0rIyBXZSBtdXN0IGV4cG9ydCB0aGUgLnNlcnZpY2UgZmls ZXMgZnJvbSB0aGUgc2FuZGJveCBzbyB0aGV5IHdvcmsgb24gdGhlCi0rIyBzZXNzaW9uIGJ1cy4g VGhpcyBtZWFucyB0aGUgVHJhY2tlciBkb21haW4gbmFtZSBtdXN0IGNvcnJlc3BvbmQgd2l0aCB0 aGUKLSsjIGFwcGxpY2F0aW9uIElELgotKwotKwotK2RvbWFpbl9vbnRvbG9naWVzX2RpciA9IGdl dF9vcHRpb24oJ2RhdGFkaXInKSAvICd0cmFja2VyMycgLyAnZG9tYWluLW9udG9sb2dpZXMnCi0r ZGJ1c19zZXJ2aWNlc19kaXIgPSBnZXRfb3B0aW9uKCdkYXRhZGlyJykgLyAnZGJ1cy0xJyAvICdz ZXJ2aWNlcycKLSsKLSt0cmFja2VyX2RvbWFpbl9jb25maWcgPSBjb25maWd1cmF0aW9uX2RhdGEo KQotK3RyYWNrZXJfZG9tYWluX2NvbmZpZy5zZXQoJ2FwcGxpY2F0aW9uX2lkJywgcGhvdG9zX25h bWVzcGFjZSkKLSt0cmFja2VyX2RvbWFpbl9jb25maWcuc2V0KCdkb21haW5fcnVsZScsIGdldF9v cHRpb24oJ3ByZWZpeCcpIC8gZG9tYWluX29udG9sb2dpZXNfZGlyIC8gcGhvdG9zX25hbWVzcGFj ZSArICcuZG9tYWluLnJ1bGUnKQotKwotK2NvbmZpZ3VyZV9maWxlKAotKyAgaW5wdXQ6ICdvcmcu Z25vbWUuUGhvdG9zLmRvbWFpbi5ydWxlLmluJywKLSsgIG91dHB1dDogcGhvdG9zX25hbWVzcGFj ZSArICcuZG9tYWluLnJ1bGUnLAotKyAgY29uZmlndXJhdGlvbjogdHJhY2tlcl9kb21haW5fY29u ZmlnLAotKyAgaW5zdGFsbF9kaXI6IGRvbWFpbl9vbnRvbG9naWVzX2RpcikKLSsKLStjb25maWd1 cmVfZmlsZSgKLSsgIGlucHV0OiAnb3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5FeHRy YWN0LnNlcnZpY2UuaW4nLAotKyAgb3V0cHV0OiBwaG90b3NfbmFtZXNwYWNlICsgJy5UcmFja2Vy My5NaW5lci5FeHRyYWN0LnNlcnZpY2UnLAotKyAgY29uZmlndXJhdGlvbjogdHJhY2tlcl9kb21h aW5fY29uZmlnLAotKyAgaW5zdGFsbF9kaXI6IGRidXNfc2VydmljZXNfZGlyKQotKwotK2NvbmZp Z3VyZV9maWxlKAotKyAgaW5wdXQ6ICdvcmcuZ25vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkZp bGVzLnNlcnZpY2UuaW4nLAotKyAgb3V0cHV0OiBwaG90b3NfbmFtZXNwYWNlICsgJy5UcmFja2Vy My5NaW5lci5GaWxlcy5zZXJ2aWNlJywKLSsgIGNvbmZpZ3VyYXRpb246IHRyYWNrZXJfZG9tYWlu X2NvbmZpZywKLSsgIGluc3RhbGxfZGlyOiBkYnVzX3NlcnZpY2VzX2RpcikKLSsKLWRpZmYgLS1n aXQgYS9kYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5FeHRyYWN0 LnNlcnZpY2UuaW4gYi9kYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5l ci5FeHRyYWN0LnNlcnZpY2UuaW4KLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAw MC4uZWI3YTg3YWEKLS0tLSAvZGV2L251bGwKLSsrKyBiL2RhdGEvdHJhY2tlci9vcmcuZ25vbWUu UGhvdG9zLlRyYWNrZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZS5pbgotQEAgLTAsMCArMSw3IEBA Ci0rW0QtQlVTIFNlcnZpY2VdCi0rTmFtZT1AYXBwbGljYXRpb25faWRALlRyYWNrZXIzLk1pbmVy LkV4dHJhY3QKLStFeGVjPS9hcHAvbGliZXhlYy90cmFja2VyLWV4dHJhY3QtMyAtLWRvbWFpbi1v bnRvbG9neSBAZG9tYWluX3J1bGVACi0rCi0rIyBNaW5lciBkZXRhaWxzIG5lZWRlZCBmb3IgdHJh Y2tlci1jb250cm9sCi0rUGF0aD0vb3JnL2ZyZWVkZXNrdG9wL1RyYWNrZXIzL01pbmVyL0V4dHJh Y3QKLStOYW1lU3VmZml4PU1pbmVyLkZpbGVzCi1kaWZmIC0tZ2l0IGEvZGF0YS90cmFja2VyL29y Zy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRmlsZXMuc2VydmljZS5pbiBiL2RhdGEvdHJh Y2tlci9vcmcuZ25vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkZpbGVzLnNlcnZpY2UuaW4KLW5l dyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMC4uNGZhNzM3MWQKLS0tLSAvZGV2L251 bGwKLSsrKyBiL2RhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkZp bGVzLnNlcnZpY2UuaW4KLUBAIC0wLDAgKzEsNyBAQAotK1tELUJVUyBTZXJ2aWNlXQotK05hbWU9 QGFwcGxpY2F0aW9uX2lkQC5UcmFja2VyMy5NaW5lci5GaWxlcwotK0V4ZWM9L2FwcC9saWJleGVj L3RyYWNrZXItbWluZXItZnMtMyAtLWRvbWFpbi1vbnRvbG9neSBAZG9tYWluX3J1bGVAIC0taW5p dGlhbC1zbGVlcCAwCi0rCi0rIyBNaW5lciBkZXRhaWxzIG5lZWRlZCBmb3IgdHJhY2tlci1jb250 cm9sCi0rUGF0aD0vb3JnL2ZyZWVkZXNrdG9wL1RyYWNrZXIzL01pbmVyL0ZpbGVzCi0rTmFtZVN1 ZmZpeD1NaW5lci5GaWxlcwotZGlmZiAtLWdpdCBhL2RhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhv dG9zLmRvbWFpbi5ydWxlLmluIGIvZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuZG9tYWlu LnJ1bGUuaW4KLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMC4uOGY1ZmM0YTEK LS0tLSAvZGV2L251bGwKLSsrKyBiL2RhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLmRvbWFp bi5ydWxlLmluCi1AQCAtMCwwICsxLDIwIEBACi0rIyBUaGlzIGRlZmluZXMgYSBwcml2YXRlIFRy YWNrZXIgZG9tYWluIGZvciBHTk9NRSBQaG90b3MuCi0rIwotKyMgSXQncyB1c2VkIHRvIHJ1biB0 aGUgVHJhY2tlciBpbmRleGVyIGluc2lkZSBhIEZsYXRwYWsgc2FuZGJveCwgd2hlbiBQaG90b3Mg aXMKLSsjIHJ1bm5pbmcgb24gYSBob3N0IHRoYXQgZG9lc24ndCBoYXZlIGEgc3VpdGFibGUgdmVy c2lvbiBvZiBUcmFja2VyIGluc3RhbGxlZC4KLSsKLStbRG9tYWluT250b2xvZ3ldCi0rIyBMb2Nh dGlvbiBmb3IgdGhlIFRyYWNrZXIgZGF0YWJhc2UKLStDYWNoZUxvY2F0aW9uPSRYREdfQ0FDSEVf SE9NRS9nbm9tZS1waG90b3MvbWluZXIvZmlsZXMKLSsKLSsjIE5hbWUgb2YgdGhlIG9udG9sb2d5 IHRvIHVzZSwgbXVzdCBiZSBvbmUgbG9jYXRlZCBpbgotKyMgJChzaGFyZWRpcikvdHJhY2tlci9v bnRvbG9naWVzCi0rT250b2xvZ3lOYW1lPW5lcG9tdWsKLSsKLSsjIERCdXMgbmFtZSBmb3IgdGhl IG93bmVyIChub3Qgb3B0aW9uYWwpLiBUcmFja2VyIHdpbGwgdXNlCi0rIyB0aGUgZG9tYWluIGFz IHRoZSBwcmVmaXggb2YgdGhlIERCdXMgbmFtZSBmb3IgYWxsIHRoZQotKyMgc2VydmljZXMgcmVs YXRlZCB0byB0aGlzIGRvbWFpbiBvbnRvbG9neS4KLStEb21haW49QGFwcGxpY2F0aW9uX2lkQAot KwotKyMgTGlzdCBvZiBtaW5lcnMgd2UgZXhwZWN0IHRvIHJ1biBpbiB0aGlzIGRvbWFpbi4KLStN aW5lcnM9TWluZXIuRmlsZXM7TWluZXIuRXh0cmFjdAotZGlmZiAtLWdpdCBhL2ZsYXRwYWsvb3Jn Lmdub21lLlBob3Rvcy5qc29uIGIvZmxhdHBhay9vcmcuZ25vbWUuUGhvdG9zLmpzb24KLWluZGV4 IDRkM2FjMmE4Li5hZGZkYWYzNCAxMDA2NDQKLS0tLSBhL2ZsYXRwYWsvb3JnLmdub21lLlBob3Rv cy5qc29uCi0rKysgYi9mbGF0cGFrL29yZy5nbm9tZS5QaG90b3MuanNvbgotQEAgLTcsNyArNyw3 IEBACi0gICAgICJ0YWdzIjogWyAibmlnaHRseSIgXSwKLSAgICAgImRlc2t0b3AtZmlsZS1uYW1l LXByZWZpeCI6ICIoTmlnaHRseSkgIiwKLSAgICAgImZpbmlzaC1hcmdzIjogWwotLSAgICAgICAg Ii0tZW52PVRSQUNLRVJfU1BBUlFMX0JBQ0tFTkQ9YnVzIiwKLSsgICAgICAgICItLWFkZC1wb2xp Y3k9VHJhY2tlcjMuZGJ1czpvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXM9dHJh Y2tlcjpQaWN0dXJlcyIsCi0gICAgICAgICAiLS1maWxlc3lzdGVtPXhkZy1kb3dubG9hZCIsCi0g ICAgICAgICAiLS1maWxlc3lzdGVtPXhkZy1waWN0dXJlcyIsCi0gICAgICAgICAiLS1tZXRhZGF0 YT1YLURDb25mPW1pZ3JhdGUtcGF0aD0vb3JnL2dub21lL3Bob3Rvcy8iLAotQEAgLTE3LDggKzE3 LDggQEAKLSAgICAgICAgICItLXNvY2tldD13YXlsYW5kIiwKLSAgICAgICAgICItLXNvY2tldD14 MTEiLAotICAgICAgICAgIi0tdGFsay1uYW1lPW9yZy5mcmVlZGVza3RvcC5GaWxlTWFuYWdlcjEi LAotLSAgICAgICAgIi0tdGFsay1uYW1lPW9yZy5mcmVlZGVza3RvcC5UcmFja2VyMSIsCi0tICAg ICAgICAiLS10YWxrLW5hbWU9b3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxLk1pbmVyLkV4dHJhY3Qi LAotKyAgICAgICAgIi0tdGFsay1uYW1lPW9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5G aWxlcyIsCi0rICAgICAgICAiLS10YWxrLW5hbWU9b3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1p bmVyLkZpbGVzLkluZGV4IiwKLSAgICAgICAgICItLXRhbGstbmFtZT1jb20uaW50ZWwuZGxleW5h LXJlbmRlcmVyIiwKLSAgICAgICAgICItLXRhbGstbmFtZT1vcmcuZ25vbWUuQ29udHJvbENlbnRl ciIsCi0gICAgICAgICAiLS10YWxrLW5hbWU9b3JnLmdub21lLlNldHRpbmdzRGFlbW9uIiwKLUBA IC0yNDgsNTAgKzI0OCwyMiBAQAotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgXQot ICAgICAgICAgfSwKLS0gICAgICAgIHsKLS0gICAgICAgICAgICAibmFtZSI6ICJ0cmFja2VyIiwK LS0gICAgICAgICAgICAiYnVpbGRzeXN0ZW0iOiAibWVzb24iLAotLSAgICAgICAgICAgICJjbGVh bnVwIjogWyAiL2JpbiIsICIvZXRjIiwgIi9saWIvZ2lyZXBvc2l0b3J5LTEuMCIsICIvc2hhcmUv ZGJ1cy0xIiwgIi9zaGFyZS9naXItMS4wIiBdLAotLSAgICAgICAgICAgICJjb25maWctb3B0cyI6 IFsgIi1EYmFzaF9jb21wbGV0aW9uPW5vIiwgIi1EZG9jcz1mYWxzZSIsICItRHN5c3RlbWRfdXNl cl9zZXJ2aWNlcz1ubyIgXSwKLS0gICAgICAgICAgICAic291cmNlcyI6IFsKLS0gICAgICAgICAg ICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiZ2l0IiwKLS0gICAgICAgICAg ICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3RyYWNrZXIu Z2l0IiwKLS0gICAgICAgICAgICAgICAgICAgICJicmFuY2giOiAidHJhY2tlci0yLjMiCi0tICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICBdCi0tICAgICAgICB9LAotLSAgICAgICAgewot LSAgICAgICAgICAgICJuYW1lIjogImludGx0b29sIiwKLS0gICAgICAgICAgICAiY2xlYW51cCI6 IFsgIioiIF0sCi0tICAgICAgICAgICAgInNvdXJjZXMiOiBbCi0tICAgICAgICAgICAgICAgIHsK LS0gICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImFyY2hpdmUiLAotLSAgICAgICAgICAgICAg ICAgICAgInVybCI6ICJodHRwczovL2xhdW5jaHBhZC5uZXQvaW50bHRvb2wvdHJ1bmsvMC41MS4w Lytkb3dubG9hZC9pbnRsdG9vbC0wLjUxLjAudGFyLmd6IiwKLS0gICAgICAgICAgICAgICAgICAg ICJzaGEyNTYiOiAiNjdjNzRkOTQxOTZiMTUzYjc3NGFiOWY4OWIyZmE2YzZiYTc5MzUyNDA3MDM3 YzhjMTRkNWFlYjMzNGU5NTljZCIKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIF0K LS0gICAgICAgIH0sCi0gICAgICAgICB7Ci0gICAgICAgICAgICAgIm5hbWUiOiAidHJhY2tlci1t aW5lcnMiLAotICAgICAgICAgICAgICJidWlsZHN5c3RlbSI6ICJtZXNvbiIsCi0tICAgICAgICAg ICAgImNsZWFudXAiOiBbICIvZXRjIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIi9zaGFy ZS9kYnVzLTEvc2VydmljZXMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxLk1pbmVyLkV4dHJhY3Qu c2VydmljZSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICIvc2hhcmUvZGJ1cy0xL3NlcnZp Y2VzL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMS5Xcml0ZWJhY2suc2VydmljZSIsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICIvc2hhcmUvdHJhY2tlci9taW5lcnMvb3JnLmZyZWVkZXNrdG9w LlRyYWNrZXIxLk1pbmVyLkFwcGxpY2F0aW9ucy5zZXJ2aWNlIiwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgIi9zaGFyZS90cmFja2VyL21pbmVycy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEu TWluZXIuRXh0cmFjdC5zZXJ2aWNlIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIi9zaGFy ZS90cmFja2VyL21pbmVycy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuTWluZXIuUlNTLnNlcnZp Y2UiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAiL3NoYXJlL2dsaWItMi4wL3NjaGVtYXMv b3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIuV3JpdGViYWNrLmdzY2hlbWEueG1sIiBdLAotLSAgICAg ICAgICAgICJjb25maWctb3B0cyI6IFsgIi1EZXh0cmFjdD10cnVlIiwKLSsgICAgICAgICAgICAi Y2xlYW51cCI6IFsgIi9zaGFyZS9kYnVzLTEvc2VydmljZXMvb3JnLmZyZWVkZXNrdG9wLlRyYWNr ZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZSIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICIv c2hhcmUvZGJ1cy0xL3NlcnZpY2VzL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxl cy5zZXJ2aWNlIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIi9zaGFyZS9kYnVzLTEvc2Vy dmljZXMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLldyaXRlYmFjay5zZXJ2aWNlIiBdLAotKyAg ICAgICAgICAgICJjb25maWctb3B0cyI6IFsgIi1EbWFuPWZhbHNlIiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICItRG1pbmVyX2ZzPXRydWUiLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIi1EbWluZXJfcnNzPWZhbHNlIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICItRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1ubyIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiLURzeXN0ZW1kX3VzZXJfc2VydmljZXM9ZmFsc2UiLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIi1Ed3JpdGViYWNrPWZhbHNlIiBdLAotICAgICAgICAgICAgICJzb3Vy Y2VzIjogWwotICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAidHlwZSI6 ICJnaXQiLAotICAgICAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9t ZS5vcmcvR05PTUUvdHJhY2tlci1taW5lcnMuZ2l0IiwKLS0gICAgICAgICAgICAgICAgICAgICJi cmFuY2giOiAidHJhY2tlci1taW5lcnMtMi4zIgotKyAgICAgICAgICAgICAgICAgICAgImJyYW5j aCI6ICJtYXN0ZXIiCi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICBdCi0gICAgICAg ICB9LAotQEAgLTMwMyw3ICsyNzUsOCBAQAotICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgICAgICAidHlwZSI6ICJnaXQiLAotICAgICAgICAgICAgICAgICAgICAgInVybCI6ICJo dHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtcGhvdG9zLmdpdCIsCi0tICAgICAg ICAgICAgICAgICAgICAiZGlzYWJsZS1zaGFsbG93LWNsb25lIjogInRydWUiCi0rICAgICAgICAg ICAgICAgICAgICAiZGlzYWJsZS1zaGFsbG93LWNsb25lIjogInRydWUiLAotKyAgICAgICAgICAg ICAgICAgICAgImJyYW5jaCI6ICJzYW0vdHJhY2tlcjMiCi0gICAgICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgICBdCi0gICAgICAgICB9Ci1kaWZmIC0tZ2l0IGEvbWVzb24uYnVpbGQgYi9tZXNv bi5idWlsZAotaW5kZXggZWFkNjMyNTAuLmQyMGUxMjg5IDEwMDY0NAotLS0tIGEvbWVzb24uYnVp bGQKLSsrKyBiL21lc29uLmJ1aWxkCi1AQCAtMTcyLDggKzE3Miw3IEBAIGxpYmdkYXRhX2RlcCA9 IGRlcGVuZGVuY3koJ2xpYmdkYXRhJywgdmVyc2lvbjogJz49IDAuMTUuMicpCi0gbGliZ2ZncmFw aF9kZXAgPSBkZXBlbmRlbmN5KCdsaWJnZmJncmFwaC0wLjInLCB2ZXJzaW9uOiAnPj0gMC4yLjEn KQotIGxpYmpwZWdfZGVwID0gZGVwZW5kZW5jeSgnbGlianBlZycpCi0gbGlicG5nX2RlcCA9IGRl cGVuZGVuY3koJ2xpYnBuZzE2JykKLS10cmFja2VyX2NvbnRyb2xfZGVwID0gZGVwZW5kZW5jeSgn dHJhY2tlci1jb250cm9sLTIuMCcpCi0tdHJhY2tlcl9zcGFycWxfZGVwID0gZGVwZW5kZW5jeSgn dHJhY2tlci1zcGFycWwtMi4wJykKLSt0cmFja2VyX3NwYXJxbF9kZXAgPSBkZXBlbmRlbmN5KCd0 cmFja2VyLXNwYXJxbC0zLjAnKQotIAotIGRidXNfZGVwID0gZGVwZW5kZW5jeSgnZGJ1cy0xJykK LSBkYnVzX3NlcnZpY2VzX2RpciA9IGRidXNfZGVwLmdldF9wa2djb25maWdfdmFyaWFibGUoCi1k aWZmIC0tZ2l0IGEvc3JjL21lc29uLmJ1aWxkIGIvc3JjL21lc29uLmJ1aWxkCi1pbmRleCBiNWIy NzU5Yy4uNmIzYjdmMDEgMTAwNjQ0Ci0tLS0gYS9zcmMvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9t ZXNvbi5idWlsZAotQEAgLTIwNSw4ICsyMDUsNiBAQCBzb3VyY2VzID0gY29tbW9uX3NvdXJjZXMg KyBmaWxlcygKLSAgICdwaG90b3MtdG9vbC1lbmhhbmNlLmMnLAotICAgJ3Bob3Rvcy10b29sLWZp bHRlci1idXR0b24uYycsCi0gICAncGhvdG9zLXRvb2wtZmlsdGVycy5jJywKLS0gICdwaG90b3Mt dHJhY2tlci1jaGFuZ2UtZXZlbnQuYycsCi0tICAncGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0 b3IuYycsCi0gICAncGhvdG9zLXRyYWNrZXItY29sbGVjdGlvbi12aWV3LWNvbnRyb2xsZXIuYycs Ci0gICAncGhvdG9zLXRyYWNrZXItY29sbGVjdGlvbnMtY29udHJvbGxlci5jJywKLSAgICdwaG90 b3MtdHJhY2tlci1jb250cm9sbGVyLmMnLAotQEAgLTM2NywyMiArMzY1LDE4IEBAIHNvdXJjZXMg Kz0gZ25vbWUuZ2RidXNfY29kZWdlbigKLSAgIGF1dG9jbGVhbnVwOiAnYWxsJywKLSApCi0gCi0t dHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5ID0gJ3Bob3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3Jp dHknCi0tCi0gc291cmNlcyArPSBnbm9tZS5nZGJ1c19jb2RlZ2VuKAotLSAgdHJhY2tlcl9leHRy YWN0X3ByaW9yaXR5LAotLSAgdHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5ICsgJy54bWwnLAotLSAg aW50ZXJmYWNlX3ByZWZpeDogJ29yZy5mcmVlZGVza3RvcC5UcmFja2VyMS4nLAotKyAgJ3Bob3Rv cy10cmFja2VyLW1pbmVyJywKLSsgICdvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIueG1s JywKLSsgIGludGVyZmFjZV9wcmVmaXg6ICdvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuJywKLSAg IG5hbWVzcGFjZTogJ1RyYWNrZXInLAotICAgYXV0b2NsZWFudXA6ICdhbGwnLAotICkKLSAKLS10 cmFja2VyX3Jlc291cmNlcyA9ICdwaG90b3MtdHJhY2tlci1yZXNvdXJjZXMnCi0tCi0gc291cmNl cyArPSBnbm9tZS5nZGJ1c19jb2RlZ2VuKAotLSAgdHJhY2tlcl9yZXNvdXJjZXMsCi0tICB0cmFj a2VyX3Jlc291cmNlcyArICcueG1sJywKLS0gIGludGVyZmFjZV9wcmVmaXg6ICdvcmcuZnJlZWRl c2t0b3AuVHJhY2tlcjEuJywKLSsgICdwaG90b3MtdHJhY2tlci1taW5lci1pbmRleCcsCi0rICAn b3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzLkluZGV4LnhtbCcsCi0rICBpbnRl cmZhY2VfcHJlZml4OiAnb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLicsCi0gICBuYW1lc3BhY2U6 ICdUcmFja2VyJywKLSAgIGF1dG9jbGVhbnVwOiAnYWxsJywKLSApCi1AQCAtNDAxLDcgKzM5NSw2 IEBAIGRlcHMgPSBjb21tb25fZGVwcyArIFsKLSAgIGxpYmdkYXRhX2RlcCwKLSAgIGxpYmdmZ3Jh cGhfZGVwLAotICAgbV9kZXAsCi0tICB0cmFja2VyX2NvbnRyb2xfZGVwLAotICAgdHJhY2tlcl9z cGFycWxfZGVwLAotIF0KLSAKLWRpZmYgLS1naXQgYS9zcmMvb3JnLmZyZWVkZXNrdG9wLlRyYWNr ZXIzLk1pbmVyLkZpbGVzLkluZGV4LnhtbCBiL3NyYy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMu TWluZXIuRmlsZXMuSW5kZXgueG1sCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAw MDAuLmUzNjhmMWUyCi0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvb3JnLmZyZWVkZXNrdG9wLlRy YWNrZXIzLk1pbmVyLkZpbGVzLkluZGV4LnhtbAotQEAgLTAsMCArMSwxMSBAQAotKzxub2RlPgot KyAgPGludGVyZmFjZSBuYW1lPSdvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMu SW5kZXgnPgotKyAgICA8bWV0aG9kIG5hbWU9J0luZGV4TG9jYXRpb24nPgotKyAgICAgIDxhcmcg dHlwZT0ncycgbmFtZT0nZmlsZV91cmknIGRpcmVjdGlvbj0naW4nIC8+Ci0rICAgICAgPGFyZyB0 eXBlPSdhcycgbmFtZT0nZ3JhcGhzJyBkaXJlY3Rpb249J2luJyAvPgotKyAgICAgIDxhcmcgdHlw ZT0nYXMnIG5hbWU9J2ZsYWdzJyBkaXJlY3Rpb249J2luJz4iCi0rICAgICAgICA8ZG9jOmRvYz48 ZG9jOnN1bW1hcnk+RXh0ZW5zaW9uIGZsYWdzLCBubyBhbGxvd2VkIHZhbHVlcyBhdCB0aGUgbW9t ZW50PC9kb2M6c3VtbWFyeT48L2RvYzpkb2M+Ci0rICAgICAgPC9hcmc+Ci0rICAgIDwvbWV0aG9k PgotKyAgPC9pbnRlcmZhY2U+Ci0rPC9ub2RlPgotZGlmZiAtLWdpdCBhL3NyYy9vcmcuZnJlZWRl c2t0b3AuVHJhY2tlcjMuTWluZXIueG1sIGIvc3JjL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5N aW5lci54bWwKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMC4uNmZlMDljODQK LS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIu eG1sCi1AQCAtMCwwICsxLDU2IEBACi0rPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG LTgiPz4KLSsKLSs8bm9kZSBuYW1lPSIvIj4KLSsgIDxpbnRlcmZhY2UgbmFtZT0ib3JnLmZyZWVk ZXNrdG9wLlRyYWNrZXIzLk1pbmVyIj4KLSsgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVk ZXNrdG9wLkRCdXMuR0xpYi5DU3ltYm9sIiB2YWx1ZT0iX3RyYWNrZXJfbWluZXJfZGJ1cyIvPgot KyAgICA8bWV0aG9kIG5hbWU9IlN0YXJ0Ij4KLSsgICAgICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcu ZnJlZWRlc2t0b3AuREJ1cy5HTGliLkFzeW5jIiAgdmFsdWU9InRydWUiLz4KLSsgICAgPC9tZXRo b2Q+Ci0rICAgIDxtZXRob2QgbmFtZT0iR2V0U3RhdHVzIj4KLSsgICAgICA8YW5ub3RhdGlvbiBu YW1lPSJvcmcuZnJlZWRlc2t0b3AuREJ1cy5HTGliLkFzeW5jIiB2YWx1ZT0idHJ1ZSIvPgotKyAg ICAgIDxhcmcgdHlwZT0icyIgbmFtZT0ic3RhdHVzIiBkaXJlY3Rpb249Im91dCIgLz4KLSsgICAg PC9tZXRob2Q+Ci0rICAgIDxtZXRob2QgbmFtZT0iR2V0UHJvZ3Jlc3MiPgotKyAgICAgIDxhbm5v dGF0aW9uIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5EQnVzLkdMaWIuQXN5bmMiIHZhbHVlPSJ0cnVl Ii8+Ci0rICAgICAgPGFyZyB0eXBlPSJkIiBuYW1lPSJwcm9ncmVzcyIgZGlyZWN0aW9uPSJvdXQi IC8+Ci0rICAgIDwvbWV0aG9kPgotKyAgICA8bWV0aG9kIG5hbWU9IkdldFJlbWFpbmluZ1RpbWUi PgotKyAgICAgIDxhbm5vdGF0aW9uIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5EQnVzLkdMaWIuQXN5 bmMiIHZhbHVlPSJ0cnVlIi8+Ci0rICAgICAgPGFyZyB0eXBlPSJpIiBuYW1lPSJyZW1haW5pbmdf dGltZSIgZGlyZWN0aW9uPSJvdXQiIC8+Ci0rICAgIDwvbWV0aG9kPgotKyAgICA8bWV0aG9kIG5h bWU9IkdldFBhdXNlRGV0YWlscyI+Ci0rICAgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVk ZXNrdG9wLkRCdXMuR0xpYi5Bc3luYyIgdmFsdWU9InRydWUiLz4KLSsgICAgICA8YXJnIHR5cGU9 ImFzIiBuYW1lPSJwYXVzZV9hcHBsaWNhdGlvbnMiIGRpcmVjdGlvbj0ib3V0IiAvPgotKyAgICAg IDxhcmcgdHlwZT0iYXMiIG5hbWU9InBhdXNlX3JlYXNvbnMiIGRpcmVjdGlvbj0ib3V0IiAvPgot KyAgICA8L21ldGhvZD4KLSsgICAgPG1ldGhvZCBuYW1lPSJQYXVzZSI+Ci0rICAgICAgPGFubm90 YXRpb24gbmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMuR0xpYi5Bc3luYyIgIHZhbHVlPSJ0cnVl Ii8+Ci0rICAgICAgPGFyZyB0eXBlPSJzIiBuYW1lPSJhcHBsaWNhdGlvbiIgZGlyZWN0aW9uPSJp biIgLz4KLSsgICAgICA8YXJnIHR5cGU9InMiIG5hbWU9InJlYXNvbiIgZGlyZWN0aW9uPSJpbiIg Lz4KLSsgICAgICA8YXJnIHR5cGU9ImkiIG5hbWU9ImNvb2tpZSIgZGlyZWN0aW9uPSJvdXQiIC8+ Ci0rICAgIDwvbWV0aG9kPgotKyAgICA8bWV0aG9kIG5hbWU9IlBhdXNlRm9yUHJvY2VzcyI+Ci0r ICAgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMuR0xpYi5Bc3luYyIg IHZhbHVlPSJ0cnVlIi8+Ci0rICAgICAgPGFyZyB0eXBlPSJzIiBuYW1lPSJhcHBsaWNhdGlvbiIg ZGlyZWN0aW9uPSJpbiIgLz4KLSsgICAgICA8YXJnIHR5cGU9InMiIG5hbWU9InJlYXNvbiIgZGly ZWN0aW9uPSJpbiIgLz4KLSsgICAgICA8YXJnIHR5cGU9ImkiIG5hbWU9ImNvb2tpZSIgZGlyZWN0 aW9uPSJvdXQiIC8+Ci0rICAgIDwvbWV0aG9kPgotKyAgICA8bWV0aG9kIG5hbWU9IlJlc3VtZSI+ Ci0rICAgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMuR0xpYi5Bc3lu YyIgdmFsdWU9InRydWUiLz4KLSsgICAgICA8YXJnIHR5cGU9ImkiIG5hbWU9ImNvb2tpZSIgZGly ZWN0aW9uPSJpbiIgLz4KLSsgICAgPC9tZXRob2Q+Ci0rCi0rICAgIDwhLS0gU2lnbmFscyAtLT4K LSsgICAgPHNpZ25hbCBuYW1lPSJTdGFydGVkIiAvPgotKyAgICA8c2lnbmFsIG5hbWU9IlN0b3Bw ZWQiPgotKyAgICAgIDxhcmcgdHlwZT0iYiIgbmFtZT0iaW50ZXJydXB0ZWQiIC8+Ci0rICAgIDwv c2lnbmFsPgotKyAgICA8c2lnbmFsIG5hbWU9IlBhdXNlZCIgLz4KLSsgICAgPHNpZ25hbCBuYW1l PSJSZXN1bWVkIiAvPgotKyAgICA8c2lnbmFsIG5hbWU9IlByb2dyZXNzIj4KLSsgICAgICA8YXJn IHR5cGU9InMiIG5hbWU9InN0YXR1cyIgLz4KLSsgICAgICA8YXJnIHR5cGU9ImQiIG5hbWU9InBy b2dyZXNzIiAvPgotKyAgICAgIDxhcmcgdHlwZT0iaSIgbmFtZT0icmVtYWluaW5nX3RpbWUiIC8+ Ci0rICAgIDwvc2lnbmFsPgotKyAgPC9pbnRlcmZhY2U+Ci0rPC9ub2RlPgotZGlmZiAtLWdpdCBh L3NyYy9waG90b3MtYXBwbGljYXRpb24uYyBiL3NyYy9waG90b3MtYXBwbGljYXRpb24uYwotaW5k ZXggZjdiNGI1NmUuLjdkNjc1OGNkIDEwMDY0NAotLS0tIGEvc3JjL3Bob3Rvcy1hcHBsaWNhdGlv bi5jCi0rKysgYi9zcmMvcGhvdG9zLWFwcGxpY2F0aW9uLmMKLUBAIC0zNiw3ICszNiw2IEBACi0g I2luY2x1ZGUgPGdsaWIuaD4KLSAjaW5jbHVkZSA8Z2xpYi9naTE4bi5oPgotICNpbmNsdWRlIDxn cmlsby5oPgotLSNpbmNsdWRlIDxsaWJ0cmFja2VyLWNvbnRyb2wvdHJhY2tlci1jb250cm9sLmg+ Ci0gCi0gI2luY2x1ZGUgInBob3Rvcy1hcHBsaWNhdGlvbi5oIgotICNpbmNsdWRlICJwaG90b3Mt YmFzZS1pdGVtLmgiCi1AQCAtNjgsNyArNjcsOCBAQAotICNpbmNsdWRlICJwaG90b3Mtc2hhcmUt bm90aWZpY2F0aW9uLmgiCi0gI2luY2x1ZGUgInBob3Rvcy1zaGFyZS1wb2ludC1tYW5hZ2VyLmgi Ci0gI2luY2x1ZGUgInBob3Rvcy10aHVtYm5haWwtZmFjdG9yeS5oIgotLSNpbmNsdWRlICJwaG90 b3MtdHJhY2tlci1leHRyYWN0LXByaW9yaXR5LmgiCi0rI2luY2x1ZGUgInBob3Rvcy10cmFja2Vy LW1pbmVyLWluZGV4LmgiCi0rI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLXF1ZXVlLmgiCi0gI2lu Y2x1ZGUgInBob3Rvcy11dGlscy5oIgotIAotIAotQEAgLTEyNyw4ICsxMjcsNyBAQCBzdHJ1Y3Qg X1Bob3Rvc0FwcGxpY2F0aW9uCi0gICBQaG90b3NTZWFyY2hQcm92aWRlciAqc2VhcmNoX3Byb3Zp ZGVyOwotICAgUGhvdG9zU2VsZWN0aW9uQ29udHJvbGxlciAqc2VsX2NudHJscjsKLSAgIFBob3Rv c1RodW1ibmFpbEZhY3RvcnkgKmZhY3Rvcnk7Ci0tICBUcmFja2VyTWluZXJNYW5hZ2VyICptaW5l cl9tYW5hZ2VyOwotLSAgVHJhY2tlckV4dHJhY3RQcmlvcml0eSAqZXh0cmFjdF9wcmlvcml0eTsK LSsgIFRyYWNrZXJNaW5lckZpbGVzSW5kZXggKm1pbmVyX2NvbnRyb2xfcHJveHk7Ci0gICBnYm9v bGVhbiBlbXB0eV9yZXN1bHRzOwotICAgZ2Jvb2xlYW4gbWFpbl93aW5kb3dfZGVsZXRlZDsKLSAg IGd1aW50IGNyZWF0ZV9taW5lcnNfY291bnQ7Ci1AQCAtMTQ5LDcgKzE0OCw2IEBAIHN0YXRpYyBn dWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCB9OwotIAotIHN0YXRpYyB2b2lkIHBob3Rv c19hcHBsaWNhdGlvbl9zZWFyY2hfY29udGV4dF9pZmFjZV9pbml0IChQaG90b3NTZWFyY2hDb250 ZXh0SW50ZXJmYWNlICppZmFjZSk7Ci0gCi0tCi0gR19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKFBo b3Rvc0FwcGxpY2F0aW9uLCBwaG90b3NfYXBwbGljYXRpb24sIEdUS19UWVBFX0FQUExJQ0FUSU9O LAotICAgICAgICAgICAgICAgICAgICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UgKFBIT1RP U19UWVBFX1NFQVJDSF9DT05URVhULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBob3Rvc19hcHBsaWNhdGlvbl9zZWFyY2hfY29udGV4dF9pZmFjZV9p bml0KSk7Ci1AQCAtMTc0LDcgKzE3Miw2IEBAIHN0YXRpYyBjb25zdCBnY2hhciAqREVTS1RPUF9L RVlfUElDVFVSRV9PUFRJT05TID0gInBpY3R1cmUtb3B0aW9ucyI7Ci0gc3RhdGljIGNvbnN0IGdj aGFyICpERVNLVE9QX0tFWV9DT0xPUl9TSEFESU5HX1RZUEUgPSAiY29sb3Itc2hhZGluZy10eXBl IjsKLSBzdGF0aWMgY29uc3QgZ2NoYXIgKkRFU0tUT1BfS0VZX1BSSU1BUllfQ09MT1IgPSAicHJp bWFyeS1jb2xvciI7Ci0gc3RhdGljIGNvbnN0IGdjaGFyICpERVNLVE9QX0tFWV9TRUNPTkRBUllf Q09MT1IgPSAic2Vjb25kYXJ5LWNvbG9yIjsKLS1zdGF0aWMgY29uc3QgZ2NoYXIgKk1JTkVSX0ZJ TEVTID0gIm9yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjEuTWluZXIuRmlsZXMiOwotIAotIHR5cGVk ZWYgc3RydWN0IF9QaG90b3NBcHBsaWNhdGlvbkNyZWF0ZURhdGEgUGhvdG9zQXBwbGljYXRpb25D cmVhdGVEYXRhOwotIHR5cGVkZWYgc3RydWN0IF9QaG90b3NBcHBsaWNhdGlvbkltcG9ydERhdGEg UGhvdG9zQXBwbGljYXRpb25JbXBvcnREYXRhOwotQEAgLTU4MiwyNyArNTc5LDYgQEAgcGhvdG9z X2FwcGxpY2F0aW9uX2FjdGlvbnNfdXBkYXRlIChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKLSB9 Ci0gCi0gCi0tc3RhdGljIHZvaWQKLS1waG90b3NfYXBwbGljYXRpb25fdHJhY2tlcl9jbGVhcl9y ZGZfdHlwZXMgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9p bnRlciB1c2VyX2RhdGEpCi0tewotLSAgUGhvdG9zQXBwbGljYXRpb24gKnNlbGYgPSBQSE9UT1Nf QVBQTElDQVRJT04gKHVzZXJfZGF0YSk7Ci0tICBUcmFja2VyRXh0cmFjdFByaW9yaXR5ICpleHRy YWN0X3ByaW9yaXR5ID0gVFJBQ0tFUl9FWFRSQUNUX1BSSU9SSVRZIChzb3VyY2Vfb2JqZWN0KTsK LS0KLS0gIHsKLS0gICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKLS0KLS0gICAg aWYgKCF0cmFja2VyX2V4dHJhY3RfcHJpb3JpdHlfY2FsbF9jbGVhcl9yZGZfdHlwZXNfZmluaXNo IChleHRyYWN0X3ByaW9yaXR5LCByZXMsICZlcnJvcikpCi0tICAgICAgewotLSAgICAgICAgZ193 YXJuaW5nICgiVW5hYmxlIHRvIGNhbGwgQ2xlYXJSZGZUeXBlczogJXMiLCBlcnJvci0+bWVzc2Fn ZSk7Ci0tICAgICAgICBnb3RvIG91dDsKLS0gICAgICB9Ci0tICB9Ci0tCi0tIG91dDoKLS0gIGdf YXBwbGljYXRpb25fcmVsZWFzZSAoR19BUFBMSUNBVElPTiAoc2VsZikpOwotLX0KLS0KLS0KLSBz dGF0aWMgZ2Jvb2xlYW4KLSBwaG90b3NfYXBwbGljYXRpb25fZGVsZXRlX2V2ZW50IChQaG90b3NB cHBsaWNhdGlvbiAqc2VsZikKLSB7Ci1AQCAtNjM5LDE2ICs2MTUsNiBAQCBwaG90b3NfYXBwbGlj YXRpb25fZGVzdHJveSAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCi0gICBzZWxmLT5jcmVhdGVf d2luZG93X2NhbmNlbGxhYmxlID0gZ19jYW5jZWxsYWJsZV9uZXcgKCk7Ci0gCi0gICBwaG90b3Nf YXBwbGljYXRpb25fc3RvcF9taW5lcnMgKHNlbGYpOwotLQotLSAgaWYgKHNlbGYtPmV4dHJhY3Rf cHJpb3JpdHkgIT0gTlVMTCkKLS0gICAgewotLSAgICAgIGdfYXBwbGljYXRpb25faG9sZCAoR19B UFBMSUNBVElPTiAoc2VsZikpOwotLSAgICAgIHRyYWNrZXJfZXh0cmFjdF9wcmlvcml0eV9jYWxs X2NsZWFyX3JkZl90eXBlcyAoc2VsZi0+ZXh0cmFjdF9wcmlvcml0eSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfYXBwbGlj YXRpb25fdHJhY2tlcl9jbGVhcl9yZGZfdHlwZXMsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmKTsKLS0gICAgICBnX2NsZWFyX29iamVj dCAoJnNlbGYtPmV4dHJhY3RfcHJpb3JpdHkpOwotLSAgICB9Ci0gfQotIAotIAotQEAgLTczOCw1 NyArNzA0LDM0IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9nZWdsX2luaXRfZmlzaGVzX2lkbGUgKGdw b2ludGVyIHVzZXJfZGF0YSkKLSB9Ci0gCi0gCi0tc3RhdGljIHZvaWQKLS1waG90b3NfYXBwbGlj YXRpb25fdHJhY2tlcl9zZXRfcmRmX3R5cGVzIChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5 bmNSZXN1bHQgKnJlcywgZ3BvaW50ZXIgdXNlcl9kYXRhKQotK3N0YXRpYyBUcmFja2VyTWluZXJG aWxlc0luZGV4ICoKLStwaG90b3NfYXBwbGljYXRpb25fZ2V0X21pbmVyX2ZzX2NvbnRyb2xfcHJv eHkgKEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGUpCi0gewotLSAgUGhvdG9zQXBwbGljYXRpb24g KnNlbGYgPSBQSE9UT1NfQVBQTElDQVRJT04gKHVzZXJfZGF0YSk7Ci0tICBUcmFja2VyRXh0cmFj dFByaW9yaXR5ICpleHRyYWN0X3ByaW9yaXR5ID0gVFJBQ0tFUl9FWFRSQUNUX1BSSU9SSVRZIChz b3VyY2Vfb2JqZWN0KTsKLS0KLS0gIHsKLS0gICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0g TlVMTDsKLSsgIGdfYXV0b3B0ciAoUGhvdG9zVHJhY2tlclF1ZXVlKSB0cmFja2VyX3F1ZXVlID0g TlVMTDsKLSsgIGNvbnN0IGdjaGFyICptaW5lcl9mc19jb250cm9sX2J1c25hbWU7Ci0rICBnX2F1 dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOwotKyAgVHJhY2tlck1pbmVyRmlsZXNJbmRleCAq bWluZXJfY29udHJvbF9wcm94eTsKLSAKLS0gICAgaWYgKCF0cmFja2VyX2V4dHJhY3RfcHJpb3Jp dHlfY2FsbF9zZXRfcmRmX3R5cGVzX2ZpbmlzaCAoZXh0cmFjdF9wcmlvcml0eSwgcmVzLCAmZXJy b3IpKQotLSAgICAgIHsKLS0gICAgICAgIGlmICghZ19lcnJvcl9tYXRjaGVzIChlcnJvciwgR19J T19FUlJPUiwgR19JT19FUlJPUl9DQU5DRUxMRUQpKQotLSAgICAgICAgICBnX3dhcm5pbmcgKCJV bmFibGUgdG8gY2FsbCBTZXRSZGZUeXBlczogJXMiLCBlcnJvci0+bWVzc2FnZSk7Ci0rICB0cmFj a2VyX3F1ZXVlID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZHVwX3NpbmdsZXRvbiAoY2FuY2VsbGFi bGUsICZlcnJvcik7Ci0gCi0tICAgICAgICBnb3RvIG91dDsKLS0gICAgICB9Ci0rICBpZiAoIXRy YWNrZXJfcXVldWUpIHsKLSsgICAgZ193YXJuaW5nICgiRXJyb3IgZ2V0dGluZyBUcmFja2VyIHF1 ZXVlOiAlcy4gSW1wb3J0IHdpbGwgbm90IHdvcmsuIiwgZXJyb3ItPm1lc3NhZ2UpOwotKyAgICBy ZXR1cm4gTlVMTDsKLSAgIH0KLSAKLS0gb3V0OgotLSAgZ19hcHBsaWNhdGlvbl9yZWxlYXNlIChH X0FQUExJQ0FUSU9OIChzZWxmKSk7Ci0tfQotLQotLQotLXN0YXRpYyB2b2lkCi0tcGhvdG9zX2Fw cGxpY2F0aW9uX3RyYWNrZXJfZXh0cmFjdF9wcmlvcml0eSAoR09iamVjdCAqc291cmNlX29iamVj dCwgR0FzeW5jUmVzdWx0ICpyZXMsIGdwb2ludGVyIHVzZXJfZGF0YSkKLS17Ci0tICBQaG90b3NB cHBsaWNhdGlvbiAqc2VsZiA9IFBIT1RPU19BUFBMSUNBVElPTiAodXNlcl9kYXRhKTsKLS0gIGNv bnN0IGdjaGFyICpjb25zdCByZGZfdHlwZXNbXSA9IHsibmZvOkltYWdlIiwgTlVMTH07Ci0tCi0t ICB7Ci0tICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7Ci0tCi0tICAgIHNlbGYt PmV4dHJhY3RfcHJpb3JpdHkgPSB0cmFja2VyX2V4dHJhY3RfcHJpb3JpdHlfcHJveHlfbmV3X2Zv cl9idXNfZmluaXNoIChyZXMsICZlcnJvcik7Ci0tICAgIGlmIChlcnJvciAhPSBOVUxMKQotLSAg ICAgIHsKLS0gICAgICAgIGlmICghZ19lcnJvcl9tYXRjaGVzIChlcnJvciwgR19JT19FUlJPUiwg R19JT19FUlJPUl9DQU5DRUxMRUQpKQotLSAgICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8g Y3JlYXRlIFRyYWNrZXJFeHRyYWN0UHJpb3JpdHkgcHJveHk6ICVzIiwgZXJyb3ItPm1lc3NhZ2Up OwotLQotLSAgICAgICAgZ290byBvdXQ7Ci0tICAgICAgfQotKyAgbWluZXJfZnNfY29udHJvbF9i dXNuYW1lID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21pbmVyX2ZzX2NvbnRyb2xfYnVzbmFt ZSAodHJhY2tlcl9xdWV1ZSk7Ci0rICBtaW5lcl9jb250cm9sX3Byb3h5ID0gdHJhY2tlcl9taW5l cl9maWxlc19pbmRleF9wcm94eV9uZXdfZm9yX2J1c19zeW5jIChHX0JVU19UWVBFX1NFU1NJT04s Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHX0RCVVNfUFJPWFlfRkxBR1NfTk9ORSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvb3Jn L2ZyZWVkZXNrdG9wL1RyYWNrZXIzL01pbmVyL0ZpbGVzL0NvbnRyb2wiLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlVMTCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvcik7Ci0rICBpZiAoIW1pbmVyX2Nv bnRyb2xfcHJveHkpIHsKLSsgICAgZ193YXJuaW5nICgiRXJyb3IgZ2V0dGluZyBUcmFja2VyIE1p bmVyIEZTIGNvbnRyb2wgcHJveHk6ICVzLiBJbXBvcnQgd2lsbCBub3Qgd29yayIsIGVycm9yLT5t ZXNzYWdlKTsKLSsgICAgcmV0dXJuIE5VTEw7Ci0gICB9Ci0gCi0tICBnX2FwcGxpY2F0aW9uX2hv bGQgKEdfQVBQTElDQVRJT04gKHNlbGYpKTsKLS0gIHRyYWNrZXJfZXh0cmFjdF9wcmlvcml0eV9j YWxsX3NldF9yZGZfdHlwZXMgKHNlbGYtPmV4dHJhY3RfcHJpb3JpdHksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZGZfdHlwZXMsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5jcmVhdGVfd2luZG93 X2NhbmNlbGxhYmxlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGhvdG9zX2FwcGxpY2F0aW9uX3RyYWNrZXJfc2V0X3JkZl90eXBlcywKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYpOwotLQotLSBvdXQ6 Ci0tICBnX2FwcGxpY2F0aW9uX3JlbGVhc2UgKEdfQVBQTElDQVRJT04gKHNlbGYpKTsKLSsgIHJl dHVybiBtaW5lcl9jb250cm9sX3Byb3h5OwotIH0KLSAKLSAKLUBAIC04MjYsMTUgKzc2OSwxMCBA QCBwaG90b3NfYXBwbGljYXRpb25fY3JlYXRlX3dpbmRvdyAoUGhvdG9zQXBwbGljYXRpb24gKnNl bGYpCi0gICAgIHNlbGYtPmluaXRfZmlzaGVzX2lkID0gZ19pZGxlX2FkZCAocGhvdG9zX2FwcGxp Y2F0aW9uX2dlZ2xfaW5pdF9maXNoZXNfaWRsZSwgc2VsZik7Ci0gCi0gICBnX2FwcGxpY2F0aW9u X2hvbGQgKEdfQVBQTElDQVRJT04gKHNlbGYpKTsKLS0gIHRyYWNrZXJfZXh0cmFjdF9wcmlvcml0 eV9wcm94eV9uZXdfZm9yX2J1cyAoR19CVVNfVFlQRV9TRVNTSU9OLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfUFJPWFlfRkxBR1NfTk9ORSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yZy5nbm9t ZS5QaG90b3MuVHJhY2tlcjEuTWluZXIuRXh0cmFjdCIsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIvb3JnL2ZyZWVkZXNrdG9wL1RyYWNrZXIxL0V4dHJh Y3QvUHJpb3JpdHkiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLT5jcmVhdGVfd2luZG93X2NhbmNlbGxhYmxlLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfYXBwbGljYXRpb25fdHJhY2tlcl9l eHRyYWN0X3ByaW9yaXR5LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmKTsKLSAKLSAgIHBob3Rvc19hcHBsaWNhdGlvbl9zdGFydF9taW5lcnMgKHNl bGYpOwotKwotKyAgc2VsZi0+bWluZXJfY29udHJvbF9wcm94eSA9IHBob3Rvc19hcHBsaWNhdGlv bl9nZXRfbWluZXJfZnNfY29udHJvbF9wcm94eSAoTlVMTCk7Ci0gICByZXR1cm4gVFJVRTsKLSB9 Ci0gCi1AQCAtMTExMSwxOCArMTA0OSwxOCBAQCBwaG90b3NfYXBwbGljYXRpb25fZ2V0X3N0YXRl IChQaG90b3NTZWFyY2hDb250ZXh0ICpjb250ZXh0KQotIAotIAotIHN0YXRpYyB2b2lkCi0tcGhv dG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9pbmRleF9maWxlIChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0 LCBHQXN5bmNSZXN1bHQgKnJlcywgZ3BvaW50ZXIgdXNlcl9kYXRhKQotK3Bob3Rvc19hcHBsaWNh dGlvbl9pbXBvcnRfaW5kZXhfbG9jYXRpb24gKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3lu Y1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCi0gewotICAgUGhvdG9zQXBwbGljYXRp b24gKnNlbGY7Ci0gICBnX2F1dG9wdHIgKEdGaWxlKSBmaWxlID0gR19GSUxFICh1c2VyX2RhdGEp OwotLSAgVHJhY2tlck1pbmVyTWFuYWdlciAqbWFuYWdlciA9IFRSQUNLRVJfTUlORVJfTUFOQUdF UiAoc291cmNlX29iamVjdCk7Ci0rICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250 cm9sX3Byb3h5ID0gVFJBQ0tFUl9NSU5FUl9GSUxFU19JTkRFWCAoc291cmNlX29iamVjdCk7Ci0g Ci0gICBzZWxmID0gUEhPVE9TX0FQUExJQ0FUSU9OIChnX2FwcGxpY2F0aW9uX2dldF9kZWZhdWx0 ICgpKTsKLSAKLSAgIHsKLSAgICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKLSAK LS0gICAgaWYgKCF0cmFja2VyX21pbmVyX21hbmFnZXJfaW5kZXhfZmlsZV9mb3JfcHJvY2Vzc19m aW5pc2ggKG1hbmFnZXIsIHJlcywgJmVycm9yKSkKLSsgICAgaWYgKCF0cmFja2VyX21pbmVyX2Zp bGVzX2luZGV4X2NhbGxfaW5kZXhfbG9jYXRpb25fZmluaXNoIChtaW5lcl9jb250cm9sX3Byb3h5 LCByZXMsICZlcnJvcikpCi0gICAgICAgewotICAgICAgICAgZ19hdXRvZnJlZSBnY2hhciAqdXJp ID0gTlVMTDsKLSAKLUBAIC0xMzQ1LDYgKzEyODMsOCBAQCBwaG90b3NfYXBwbGljYXRpb25faW1w b3J0X2ZpbGVfY29weSAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0ICpyZXMs Ci0gICBlbHNlCi0gICAgIHsKLSAgICAgICBnX2F1dG9mcmVlIGdjaGFyICpkZXN0aW5hdGlvbl91 cmkgPSBOVUxMOwotKyAgICAgIGNvbnN0IGdjaGFyICp0cmFja2VyX3ByaW9yaXR5X2dyYXBoc1td ID0geyBUUkFDS0VSX1BJQ1RVUkVTX0dSQVBIIH07Ci0rICAgICAgY29uc3QgZ2NoYXIgKnRyYWNr ZXJfaW5kZXhfbG9jYXRpb25fZmxhZ3NbXSA9IHsgImZvci1wcm9jZXNzIiB9OwotIAotICAgICAg IGdfYXNzZXJ0X3RydWUgKEdfSVNfRklMRSAoZGVzdGluYXRpb24pKTsKLSAgICAgICBnX3NldF9v YmplY3QgKCZkYXRhLT5kZXN0aW5hdGlvbiwgZGVzdGluYXRpb24pOwotQEAgLTEzNjEsMTEgKzEz MDEsMTMgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9maWxlX2NvcHkgKEdPYmplY3QgKnNv dXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLAotIAotICAgICAgIGdfYXBwbGljYXRpb25f aG9sZCAoR19BUFBMSUNBVElPTiAoc2VsZikpOwotICAgICAgIGdfYXBwbGljYXRpb25fbWFya19i dXN5IChHX0FQUExJQ0FUSU9OIChzZWxmKSk7Ci0tICAgICAgdHJhY2tlcl9taW5lcl9tYW5hZ2Vy X2luZGV4X2ZpbGVfZm9yX3Byb2Nlc3NfYXN5bmMgKHNlbGYtPm1pbmVyX21hbmFnZXIsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRl c3RpbmF0aW9uLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X2luZGV4X2Zp bGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdfb2JqZWN0X3JlZiAoZGVzdGluYXRpb24pKTsKLSsgICAgICB0cmFja2VyX21pbmVy X2ZpbGVzX2luZGV4X2NhbGxfaW5kZXhfbG9jYXRpb24gKHNlbGYtPm1pbmVyX2NvbnRyb2xfcHJv eHksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkZXN0aW5hdGlvbl91cmksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0cmFja2VyX3ByaW9yaXR5X2dyYXBocywKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrZXJfaW5kZXhfbG9j YXRpb25fZmxhZ3MsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9pbmRleF9sb2NhdGlvbiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdf b2JqZWN0X3JlZiAoZGVzdGluYXRpb24pKTsKLSAgICAgfQotIAotICBvdXQ6Ci1AQCAtMTUyOSw5 ICsxNDcxLDkgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydCAoUGhvdG9zQXBwbGljYXRpb24g KnNlbGYpCi0gICBzZWxlY3Rpb24gPSBwaG90b3Nfc2VsZWN0aW9uX2NvbnRyb2xsZXJfZ2V0X3Nl bGVjdGlvbiAoc2VsZi0+c2VsX2NudHJscik7Ci0gICBnX3JldHVybl9pZl9mYWlsIChzZWxlY3Rp b24gIT0gTlVMTCk7Ci0gCi0tICBpZiAoc2VsZi0+bWluZXJfbWFuYWdlciA9PSBOVUxMKQotKyAg aWYgKCFzZWxmLT5taW5lcl9jb250cm9sX3Byb3h5KQotICAgICB7Ci0tICAgICAgZ193YXJuaW5n ICgiTm8gVHJhY2tlck1pbmVyTWFuYWdlciwgaW1wb3J0aW5nIGZyb20gYXR0YWNoZWQgZGV2aWNl cyB3b24ndCB3b3JrIik7Ci0rICAgICAgZ193YXJuaW5nICgiTm8gVHJhY2tlcjMuTWluZXIuRmls ZXMuSW5kZXggcHJveHksIGltcG9ydGluZyBmcm9tIGF0dGFjaGVkIGRldmljZXMgd29uJ3Qgd29y ayIpOwotICAgICAgIGdvdG8gb3V0OwotICAgICB9Ci0gCi1AQCAtMTU2Myw2ICsxNTA1LDcgQEAg cGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydCAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCi0gICBn dGtfd2lkZ2V0X3Nob3dfYWxsIChkaWFsb2cpOwotIAotICAgZGF0YSA9IHBob3Rvc19hcHBsaWNh dGlvbl9pbXBvcnRfZGF0YV9uZXcgKHNlbGYsIGZpbGVzLCBjdGltZV9sYXRlc3QpOwotKwotICAg Z19zaWduYWxfY29ubmVjdCAoZGlhbG9nLAotICAgICAgICAgICAgICAgICAgICAgInJlc3BvbnNl IiwKLSAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKHBob3Rvc19hcHBsaWNhdGlvbl9p bXBvcnRfcmVzcG9uc2UpLAotQEAgLTIyMzQsMzUgKzIxNzcsNyBAQCBwaG90b3NfYXBwbGljYXRp b25fc2hhcmVfY3VycmVudCAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCi0gc3RhdGljIHZvaWQK LSBwaG90b3NfYXBwbGljYXRpb25fc3RhcnRfbWluZXJzIChQaG90b3NBcHBsaWNhdGlvbiAqc2Vs ZikKLSB7Ci0tICB7Ci0tICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7Ci0tCi0t ICAgIHNlbGYtPm1pbmVyX21hbmFnZXIgPSB0cmFja2VyX21pbmVyX21hbmFnZXJfbmV3X2Z1bGwg KFRSVUUsICZlcnJvcik7Ci0tICAgIGlmIChlcnJvciAhPSBOVUxMKQotLSAgICAgIGdfd2Fybmlu ZyAoIlVuYWJsZSB0byBjcmVhdGUgYSBUcmFja2VyTWluZXJNYW5hZ2VyOiAlcyIsIGVycm9yLT5t ZXNzYWdlKTsKLS0gIH0KLS0KLS0gIGlmIChzZWxmLT5taW5lcl9tYW5hZ2VyICE9IE5VTEwpCi0t ICAgIHsKLS0gICAgICBHU0xpc3QgKmF2YWlsYWJsZSA9IE5VTEw7Ci0tICAgICAgR1NMaXN0ICpt aW5lcl9maWxlcyA9IE5VTEw7Ci0tCi0tICAgICAgYXZhaWxhYmxlID0gdHJhY2tlcl9taW5lcl9t YW5hZ2VyX2dldF9hdmFpbGFibGUgKHNlbGYtPm1pbmVyX21hbmFnZXIpOwotLSAgICAgIG1pbmVy X2ZpbGVzID0gZ19zbGlzdF9maW5kX2N1c3RvbSAoYXZhaWxhYmxlLCBNSU5FUl9GSUxFUywgKEdD b21wYXJlRnVuYykgc3RyY21wKTsKLS0gICAgICBpZiAobWluZXJfZmlsZXMgPT0gTlVMTCkKLS0g ICAgICAgIHsKLS0gICAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGZpbmQgbWluZXIgJXMi LCBNSU5FUl9GSUxFUyk7Ci0tICAgICAgICB9Ci0tICAgICAgZWxzZQotLSAgICAgICAgewotLSAg ICAgICAgICBpZiAoIXRyYWNrZXJfbWluZXJfbWFuYWdlcl9pc19hY3RpdmUgKHNlbGYtPm1pbmVy X21hbmFnZXIsIE1JTkVSX0ZJTEVTKSkKLS0gICAgICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUg dG8gYWN0aXZhdGUgbWluZXIgJXMiLCBNSU5FUl9GSUxFUyk7Ci0tICAgICAgICB9Ci0tCi0tICAg ICAgZ19zbGlzdF9mcmVlX2Z1bGwgKGF2YWlsYWJsZSwgZ19mcmVlKTsKLS0gICAgfQotLQotLSBw aG90b3NfYXBwbGljYXRpb25fY3JlYXRlX29ubGluZV9taW5lcnMgKHNlbGYpOwotKyAgcGhvdG9z X2FwcGxpY2F0aW9uX2NyZWF0ZV9vbmxpbmVfbWluZXJzIChzZWxmKTsKLSB9Ci0gCi0gCi1AQCAt Mjk5MSw2ICsyOTA2LDcgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2Rpc3Bvc2UgKEdPYmplY3QgKm9i amVjdCkKLSAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+aW5zdGFfYWN0aW9uKTsKLSAgIGdfY2xl YXJfb2JqZWN0ICgmc2VsZi0+bG9hZF9uZXh0X2FjdGlvbik7Ci0gICBnX2NsZWFyX29iamVjdCAo JnNlbGYtPmxvYWRfcHJldmlvdXNfYWN0aW9uKTsKLSsgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+ bWluZXJfY29udHJvbF9wcm94eSk7Ci0gICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPm9wZW5fYWN0 aW9uKTsKLSAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+cHJldmlld19tZW51X2FjdGlvbik7Ci0g ICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPnByaW1hcnlfbWVudV9hY3Rpb24pOwotQEAgLTMwMTks OCArMjkzNSw3IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9kaXNwb3NlIChHT2JqZWN0ICpvYmplY3Qp Ci0gICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmNhbWVyYV9jYWNoZSk7Ci0gICBnX2NsZWFyX29i amVjdCAoJnNlbGYtPnNlbF9jbnRybHIpOwotICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5mYWN0 b3J5KTsKLS0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+ZXh0cmFjdF9wcmlvcml0eSk7Ci0tICBn X2NsZWFyX29iamVjdCAoJnNlbGYtPm1pbmVyX21hbmFnZXIpOwotKyAgZ19jbGVhcl9vYmplY3Qg KCZzZWxmLT5taW5lcl9jb250cm9sX3Byb3h5KTsKLSAKLSAgIGlmIChzZWxmLT5zdGF0ZSAhPSBO VUxMKQotICAgICB7Ci1AQCAtMzE0OCw4ICszMDYzLDcgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2dl dF9taW5lcnNfcnVubmluZyAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCi0gICByZXR1cm4gc2Vs Zi0+bWluZXJzX3J1bm5pbmc7Ci0gfQotIAotLQotLWdpbnQKLStpbnQKLSBwaG90b3NfYXBwbGlj YXRpb25fZ2V0X3NjYWxlX2ZhY3RvciAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCi0gewotICAg R0xpc3QgKndpbmRvd3M7Ci1kaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1iYXNlLWl0ZW0uYyBiL3Ny Yy9waG90b3MtYmFzZS1pdGVtLmMKLWluZGV4IDBkNzJmOWM1Li40ZWY2OTIyNCAxMDA2NDQKLS0t LSBhL3NyYy9waG90b3MtYmFzZS1pdGVtLmMKLSsrKyBiL3NyYy9waG90b3MtYmFzZS1pdGVtLmMK LUBAIC0yNzU2LDYgKzI3NTYsMTYgQEAgcGhvdG9zX2Jhc2VfaXRlbV91cGRhdGVfaW5mb19mcm9t X3R5cGUgKFBob3Rvc0Jhc2VJdGVtICpzZWxmKQotIH0KLSAKLSAKLStzdGF0aWMgZ2RvdWJsZQot K2dldF9kb3VibGVfd2l0aF9kZWZhdWx0IChUcmFja2VyU3BhcnFsQ3Vyc29yICpjdXJzb3IsIFBo b3Rvc1F1ZXJ5Q29sdW1ucyBjb2x1bW4sIGdkb3VibGUgZGVmYXVsdF92YWx1ZSkKLSt7Ci0rICBp ZiAodHJhY2tlcl9zcGFycWxfY3Vyc29yX2lzX2JvdW5kIChjdXJzb3IsIGNvbHVtbikpIHsKLSsg ICAgcmV0dXJuIHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9nZXRfZG91YmxlIChjdXJzb3IsIGNvbHVt bik7Ci0rICB9IGVsc2UgewotKyAgICByZXR1cm4gZGVmYXVsdF92YWx1ZTsKLSsgIH0KLSt9Ci0r Ci0gc3RhdGljIHZvaWQKLSBwaG90b3NfYmFzZV9pdGVtX3BvcHVsYXRlX2Zyb21fY3Vyc29yIChQ aG90b3NCYXNlSXRlbSAqc2VsZiwgVHJhY2tlclNwYXJxbEN1cnNvciAqY3Vyc29yKQotIHsKLWRp ZmYgLS1naXQgYS9zcmMvcGhvdG9zLWluZGV4aW5nLW5vdGlmaWNhdGlvbi5jIGIvc3JjL3Bob3Rv cy1pbmRleGluZy1ub3RpZmljYXRpb24uYwotaW5kZXggNzIzOTQ5ODMuLjEyMmQwZDkxIDEwMDY0 NAotLS0tIGEvc3JjL3Bob3Rvcy1pbmRleGluZy1ub3RpZmljYXRpb24uYwotKysrIGIvc3JjL3Bo b3Rvcy1pbmRleGluZy1ub3RpZmljYXRpb24uYwotQEAgLTI2LDEyICsyNiwxMyBAQAotICNpbmNs dWRlIDxnaW8vZ2lvLmg+Ci0gI2luY2x1ZGUgPGdsaWIuaD4KLSAjaW5jbHVkZSA8Z2xpYi9naTE4 bi5oPgotLSNpbmNsdWRlIDxsaWJ0cmFja2VyLWNvbnRyb2wvdHJhY2tlci1jb250cm9sLmg+Ci0g Ci0gI2luY2x1ZGUgInBob3Rvcy1hcHBsaWNhdGlvbi5oIgotICNpbmNsdWRlICJwaG90b3MtZ29t LW1pbmVyLmgiCi0gI2luY2x1ZGUgInBob3Rvcy1pbmRleGluZy1ub3RpZmljYXRpb24uaCIKLSAj aW5jbHVkZSAicGhvdG9zLW5vdGlmaWNhdGlvbi1tYW5hZ2VyLmgiCi0rI2luY2x1ZGUgInBob3Rv cy10cmFja2VyLXF1ZXVlLmgiCi0rI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLW1pbmVyLmgiCi0g Ci0gCi0gc3RydWN0IF9QaG90b3NJbmRleGluZ05vdGlmaWNhdGlvbgotQEAgLTQxLDcgKzQyLDcg QEAgc3RydWN0IF9QaG90b3NJbmRleGluZ05vdGlmaWNhdGlvbgotICAgR3RrV2lkZ2V0ICpwcmlt YXJ5X2xhYmVsOwotICAgR3RrV2lkZ2V0ICpzZWNvbmRhcnlfbGFiZWw7Ci0gICBHdGtXaWRnZXQg KnNwaW5uZXI7Ci0tICBUcmFja2VyTWluZXJNYW5hZ2VyICptYW5hZ2VyOwotKyAgVHJhY2tlck1p bmVyICptaW5lcl9mc19wcm94eTsKLSAgIGdib29sZWFuIGNsb3NlZDsKLSAgIGdib29sZWFuIG9u X2Rpc3BsYXk7Ci0gICBndWludCB0aW1lb3V0X2lkOwotQEAgLTU2LDggKzU3LDYgQEAgZW51bQot ICAgUkVNT1RFX01JTkVSX1RJTUVPVVQgPSAxMCAvKiBzICovCi0gfTsKLSAKLS1zdGF0aWMgY29u c3QgZ2NoYXIgKk1JTkVSX0ZJTEVTID0gIm9yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjEuTWluZXIu RmlsZXMiOwotLQotIAotIHN0YXRpYyB2b2lkCi0gcGhvdG9zX2luZGV4aW5nX25vdGlmaWNhdGlv bl9yZW1vdmVfdGltZW91dCAoUGhvdG9zSW5kZXhpbmdOb3RpZmljYXRpb24gKnNlbGYpCi1AQCAt MTgwLDE2ICsxNzksMTggQEAgcGhvdG9zX2luZGV4aW5nX25vdGlmaWNhdGlvbl9jaGVja19ub3Rp ZmljYXRpb24gKFBob3Rvc0luZGV4aW5nTm90aWZpY2F0aW9uICpzZWwKLSAgIEdTTGlzdCAqcnVu bmluZyA9IE5VTEw7Ci0gICBnYm9vbGVhbiBpc19pbmRleGluZ19sb2NhbCA9IEZBTFNFOwotICAg Z2Jvb2xlYW4gaXNfaW5kZXhpbmdfcmVtb3RlID0gRkFMU0U7Ci0rICBHRXJyb3IgKmVycm9yID0g TlVMTDsKLSsgIGdkb3VibGUgcHJvZ3Jlc3M7Ci0gCi0tICBydW5uaW5nID0gdHJhY2tlcl9taW5l cl9tYW5hZ2VyX2dldF9ydW5uaW5nIChzZWxmLT5tYW5hZ2VyKTsKLS0gIGlmIChnX3NsaXN0X2Zp bmRfY3VzdG9tIChydW5uaW5nLCAoZ2NvbnN0cG9pbnRlcikgTUlORVJfRklMRVMsIChHQ29tcGFy ZUZ1bmMpIGdfc3RyY21wMCkgIT0gTlVMTCkKLS0gICAgewotLSAgICAgIGdkb3VibGUgcHJvZ3Jl c3M7Ci0rICB0cmFja2VyX21pbmVyX2NhbGxfZ2V0X3Byb2dyZXNzX3N5bmMgKHNlbGYtPm1pbmVy X2ZzX3Byb3h5LCAmcHJvZ3Jlc3MsIE5VTEwsICZlcnJvcik7Ci0rICBpZiAoZXJyb3IpIHsKLSsg ICAgZ193YXJuaW5nICgiQ291bGRuJ3QgZ2V0IGluZGV4aW5nIHByb2dyZXNzIGZyb20gVHJhY2tl ciBNaW5lciBGUzogJXMiLCBlcnJvci0+bWVzc2FnZSk7Ci0gCi0tICAgICAgdHJhY2tlcl9taW5l cl9tYW5hZ2VyX2dldF9zdGF0dXMgKHNlbGYtPm1hbmFnZXIsIE1JTkVSX0ZJTEVTLCBOVUxMLCAm cHJvZ3Jlc3MsIE5VTEwpOwotLSAgICAgIGlmIChwcm9ncmVzcyA8IDEpCi0tICAgICAgICBpc19p bmRleGluZ19sb2NhbCA9IFRSVUU7Ci0tICAgIH0KLSsgICAgZ19jbGVhcl9lcnJvciAoJmVycm9y KTsKLSsgIH0gZWxzZSB7Ci0rICAgIGlmIChwcm9ncmVzcyA8IDEpCi0rICAgICAgaXNfaW5kZXhp bmdfbG9jYWwgPSBUUlVFOwotKyAgfQotIAotICAgYXBwID0gZ19hcHBsaWNhdGlvbl9nZXRfZGVm YXVsdCAoKTsKLSAgIG1pbmVyc19ydW5uaW5nID0gcGhvdG9zX2FwcGxpY2F0aW9uX2dldF9taW5l cnNfcnVubmluZyAoUEhPVE9TX0FQUExJQ0FUSU9OIChhcHApKTsKLUBAIC0yMjIsNyArMjIzLDYg QEAgcGhvdG9zX2luZGV4aW5nX25vdGlmaWNhdGlvbl9kaXNwb3NlIChHT2JqZWN0ICpvYmplY3Qp Ci0gICBwaG90b3NfaW5kZXhpbmdfbm90aWZpY2F0aW9uX3JlbW92ZV90aW1lb3V0IChzZWxmKTsK LSAKLSAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bnRmY3RuX21uZ3IpOwotLSAgZ19jbGVhcl9v YmplY3QgKCZzZWxmLT5tYW5hZ2VyKTsKLSAKLSAgIEdfT0JKRUNUX0NMQVNTIChwaG90b3NfaW5k ZXhpbmdfbm90aWZpY2F0aW9uX3BhcmVudF9jbGFzcyktPmRpc3Bvc2UgKG9iamVjdCk7Ci0gfQot QEAgLTI0MCwxMyArMjQwLDI1IEBAIHBob3Rvc19pbmRleGluZ19ub3RpZmljYXRpb25faW5pdCAo UGhvdG9zSW5kZXhpbmdOb3RpZmljYXRpb24gKnNlbGYpCi0gICBhcHAgPSBnX2FwcGxpY2F0aW9u X2dldF9kZWZhdWx0ICgpOwotIAotICAgewotKyAgICBnX2F1dG9wdHIgKFBob3Rvc1RyYWNrZXJR dWV1ZSkgdHJhY2tlcl9xdWV1ZTsKLSAgICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVM TDsKLSsgICAgY29uc3QgZ2NoYXIgKm1pbmVyX2ZzX2J1c25hbWU7Ci0rCi0rICAgIHRyYWNrZXJf cXVldWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBfc2luZ2xldG9uIChOVUxMLCAmZXJyb3Ip OwotKwotKyAgICBpZiAodHJhY2tlcl9xdWV1ZSkgewotKyAgICAgIG1pbmVyX2ZzX2J1c25hbWUg PSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNfYnVzbmFtZSAodHJhY2tlcl9xdWV1 ZSk7Ci0rICAgICAgc2VsZi0+bWluZXJfZnNfcHJveHkgPSB0cmFja2VyX21pbmVyX3Byb3h5X25l d19mb3JfYnVzX3N5bmMgKEdfQlVTX1RZUEVfU0VTU0lPTiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX1BS T1hZX0ZMQUdTX05PTkUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmVyX2ZzX2J1c25hbWUsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIvb3JnL2ZyZWVkZXNrdG9wL1RyYWNrZXIzL01pbmVyL0ZpbGVzIiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM TCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmVycm9yKTsKLSsgICAgfQotIAotLSAgICBzZWxmLT5tYW5hZ2VyID0g dHJhY2tlcl9taW5lcl9tYW5hZ2VyX25ld19mdWxsIChUUlVFLCAmZXJyb3IpOwotICAgICBpZiAo ZXJyb3IgIT0gTlVMTCkKLSAgICAgICB7Ci0tICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8g Y3JlYXRlIGEgVHJhY2tlck1pbmVyTWFuYWdlciwgaW5kZXhpbmcgcHJvZ3Jlc3Mgbm90aWZpY2F0 aW9uIHdvbid0IHdvcms6ICVzIiwKLS0gICAgICAgICAgICAgICAgICAgZXJyb3ItPm1lc3NhZ2Up OwotKyAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNyZWF0ZSBwcm94eSBmb3IgVHJhY2tl ciBNaW5lciBGUywgaW5kZXhpbmcgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uIHdvbid0IHdvcmsiKTsK LSAgICAgICAgIHJldHVybjsKLSAgICAgICB9Ci0gICB9Ci1AQCAtMjkzLDEwICszMDUsMTEgQEAg cGhvdG9zX2luZGV4aW5nX25vdGlmaWNhdGlvbl9pbml0IChQaG90b3NJbmRleGluZ05vdGlmaWNh dGlvbiAqc2VsZikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdfQ09OTkVDVF9TV0FQUEVEKTsKLSAKLS0gIGdfc2lnbmFsX2Nv bm5lY3Rfc3dhcHBlZCAoc2VsZi0+bWFuYWdlciwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIm1pbmVyLXByb2dyZXNzIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxM QkFDSyAocGhvdG9zX2luZGV4aW5nX25vdGlmaWNhdGlvbl9jaGVja19ub3RpZmljYXRpb24pLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmKTsKLSsgIGdfc2lnbmFsX2Nvbm5lY3Rf b2JqZWN0IChzZWxmLT5taW5lcl9mc19wcm94eSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAicHJvZ3Jlc3MiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKHBo b3Rvc19pbmRleGluZ19ub3RpZmljYXRpb25fY2hlY2tfbm90aWZpY2F0aW9uKSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEdf Q09OTkVDVF9TV0FQUEVEKTsKLSB9Ci0gCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1pdGVt LW1hbmFnZXIuYyBiL3NyYy9waG90b3MtaXRlbS1tYW5hZ2VyLmMKLWluZGV4IDMzNzg5MWMxLi40 ZGZlM2M3ZSAxMDA2NDQKLS0tLSBhL3NyYy9waG90b3MtaXRlbS1tYW5hZ2VyLmMKLSsrKyBiL3Ny Yy9waG90b3MtaXRlbS1tYW5hZ2VyLmMKLUBAIC00MSwxMiArNDEsOSBAQAotICNpbmNsdWRlICJw aG90b3MtcXVlcnkuaCIKLSAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC1jb250ZXh0LmgiCi0gI2lu Y2x1ZGUgInBob3Rvcy1zaW5nbGUtaXRlbS1qb2IuaCIKLS0jaW5jbHVkZSAicGhvdG9zLXRyYWNr ZXItY2hhbmdlLWV2ZW50LmgiCi0tI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLWNoYW5nZS1tb25p dG9yLmgiCi0gI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLXF1ZXVlLmgiCi0gI2luY2x1ZGUgInBo b3Rvcy11dGlscy5oIgotIAotLQotIHN0cnVjdCBfUGhvdG9zSXRlbU1hbmFnZXIKLSB7Ci0gICBQ aG90b3NCYXNlTWFuYWdlciBwYXJlbnRfaW5zdGFuY2U7Ci1AQCAtNjAsNyArNTcsNyBAQCBzdHJ1 Y3QgX1Bob3Rvc0l0ZW1NYW5hZ2VyCi0gICBQaG90b3NCYXNlSXRlbSAqYWN0aXZlX2NvbGxlY3Rp b247Ci0gICBQaG90b3NCYXNlTWFuYWdlciAqKml0ZW1fbW5ncl9jaGxkcm47Ci0gICBQaG90b3NM b2FkU3RhdGUgbG9hZF9zdGF0ZTsKLS0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICptb25p dG9yOwotKyAgVHJhY2tlck5vdGlmaWVyICpub3RpZmllcjsKLSAgIFBob3Rvc1RyYWNrZXJRdWV1 ZSAqcXVldWU7Ci0gICBQaG90b3NXaW5kb3dNb2RlIG1vZGU7Ci0gICBnYm9vbGVhbiBmdWxsc2Ny ZWVuOwotQEAgLTMxMSw3ICszMDgsNyBAQCBwaG90b3NfaXRlbV9tYW5hZ2VyX2FkZF9jdXJzb3Jf Zm9yX21vZGUgKFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxmLAotICAgZ19yZXR1cm5faWZfZmFpbCAo YmFzZV9pdGVtX3R5cGUgPT0gR19UWVBFX05PTkUKLSAgICAgICAgICAgICAgICAgICAgIHx8IChi YXNlX2l0ZW1fdHlwZSAhPSBQSE9UT1NfVFlQRV9CQVNFX0lURU0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAmJiBnX3R5cGVfaXNfYSAoYmFzZV9pdGVtX3R5cGUsIFBIT1RPU19UWVBFX0JBU0Vf SVRFTSkpKTsKLS0gIGdfcmV0dXJuX2lmX2ZhaWwgKFRSQUNLRVJfU1BBUlFMX0lTX0NVUlNPUiAo Y3Vyc29yKSk7Ci0rICBnX3JldHVybl9pZl9mYWlsIChUUkFDS0VSX0lTX1NQQVJRTF9DVVJTT1Ig KGN1cnNvcikpOwotICAgZ19yZXR1cm5faWZfZmFpbCAobW9kZSAhPSBQSE9UT1NfV0lORE9XX01P REVfTk9ORSk7Ci0gICBnX3JldHVybl9pZl9mYWlsIChtb2RlICE9IFBIT1RPU19XSU5ET1dfTU9E RV9FRElUKTsKLSAgIGdfcmV0dXJuX2lmX2ZhaWwgKG1vZGUgIT0gUEhPVE9TX1dJTkRPV19NT0RF X1BSRVZJRVcpOwotQEAgLTUyOSwyMSArNTI2LDIzIEBAIHBob3Rvc19pdGVtX21hbmFnZXJfaXRl bV9jcmVhdGVkIChQaG90b3NJdGVtTWFuYWdlciAqc2VsZiwgY29uc3QgZ2NoYXIgKnVybikKLSAK LSAKLSBzdGF0aWMgdm9pZAotLXBob3Rvc19pdGVtX21hbmFnZXJfY2hhbmdlc19wZW5kaW5nX2Zv cmVhY2ggKGdwb2ludGVyIGtleSwgZ3BvaW50ZXIgdmFsdWUsIGdwb2ludGVyIHVzZXJfZGF0YSkK LStwaG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVuZGluZ19mb3JlYWNoIChncG9pbnRlciBk YXRhLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2lu dGVyIHVzZXJfZGF0YSkKLSB7Ci0gICBQaG90b3NJdGVtTWFuYWdlciAqc2VsZiA9IFBIT1RPU19J VEVNX01BTkFHRVIgKHVzZXJfZGF0YSk7Ci0tICBQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKmNo YW5nZV9ldmVudCA9IChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKikgdmFsdWU7Ci0tICBQaG90 b3NUcmFja2VyQ2hhbmdlRXZlbnRUeXBlIGNoYW5nZV90eXBlOwotKyAgVHJhY2tlck5vdGlmaWVy RXZlbnQgKmV2ZW50ID0gKFRyYWNrZXJOb3RpZmllckV2ZW50ICopIGRhdGE7Ci0rICBUcmFja2Vy Tm90aWZpZXJFdmVudFR5cGUgY2hhbmdlX3R5cGU7Ci0gICBjb25zdCBnY2hhciAqY2hhbmdlX3Vy bjsKLSAKLS0gIGNoYW5nZV90eXBlID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF90 eXBlIChjaGFuZ2VfZXZlbnQpOwotLSAgY2hhbmdlX3VybiA9IHBob3Rvc190cmFja2VyX2NoYW5n ZV9ldmVudF9nZXRfdXJuIChjaGFuZ2VfZXZlbnQpOwotKyAgY2hhbmdlX3R5cGUgPSB0cmFja2Vy X25vdGlmaWVyX2V2ZW50X2dldF9ldmVudF90eXBlIChldmVudCk7Ci0rICBjaGFuZ2VfdXJuID0g dHJhY2tlcl9ub3RpZmllcl9ldmVudF9nZXRfdXJuIChldmVudCk7Ci0gCi0tICBpZiAoY2hhbmdl X3R5cGUgPT0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0NIQU5HRUQpCi0rICBpZiAoY2hh bmdlX3R5cGUgPT0gVFJBQ0tFUl9OT1RJRklFUl9FVkVOVF9VUERBVEUpCi0gICAgIHsKLSAgICAg ICBHT2JqZWN0ICpvYmplY3Q7Ci0gCi0gICAgICAgb2JqZWN0ID0gcGhvdG9zX2Jhc2VfbWFuYWdl cl9nZXRfb2JqZWN0X2J5X2lkIChQSE9UT1NfQkFTRV9NQU5BR0VSIChzZWxmKSwgY2hhbmdlX3Vy bik7Ci0rICAgICAgZ19tZXNzYWdlICgiVVBEQVRFIGV2ZW50IGZvciAlcywgb2JqZWN0ICVwIiwg Y2hhbmdlX3Vybiwgb2JqZWN0KTsKLSAgICAgICBpZiAob2JqZWN0ICE9IE5VTEwpCi0gICAgICAg ICB7Ci0gICAgICAgICAgIHBob3Rvc19iYXNlX2l0ZW1fcmVmcmVzaCAoUEhPVE9TX0JBU0VfSVRF TSAob2JqZWN0KSk7Ci1AQCAtNTU3LDE1ICs1NTYsMTcgQEAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9j aGFuZ2VzX3BlbmRpbmdfZm9yZWFjaCAoZ3BvaW50ZXIga2V5LCBncG9pbnRlciB2YWx1ZSwgZ3Bv aW4KLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0KLS0gIGVsc2UgaWYgKGNoYW5n ZV90eXBlID09IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9DUkVBVEVEKQotKyAgZWxzZSBp ZiAoY2hhbmdlX3R5cGUgPT0gVFJBQ0tFUl9OT1RJRklFUl9FVkVOVF9DUkVBVEUpCi0gICAgIHsK LSsgICAgICBnX21lc3NhZ2UgKCJDUkVBVEUgZXZlbnQgZm9yICVzIiwgY2hhbmdlX3Vybik7Ci0g ICAgICAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9pdGVtX2NyZWF0ZWQgKHNlbGYsIGNoYW5nZV91cm4p OwotICAgICB9Ci0tICBlbHNlIGlmIChjaGFuZ2VfdHlwZSA9PSBQSE9UT1NfVFJBQ0tFUl9DSEFO R0VfRVZFTlRfREVMRVRFRCkKLSsgIGVsc2UgaWYgKGNoYW5nZV90eXBlID09IFRSQUNLRVJfTk9U SUZJRVJfRVZFTlRfREVMRVRFKQotICAgICB7Ci0gICAgICAgR09iamVjdCAqb2JqZWN0OwotIAot ICAgICAgIG9iamVjdCA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X29iamVjdF9ieV9pZCAoUEhP VE9TX0JBU0VfTUFOQUdFUiAoc2VsZiksIGNoYW5nZV91cm4pOwotKyAgICAgIGdfbWVzc2FnZSAo IkRFTEVURSBldmVudCBmb3IgJXMsIG9iamVjdCAlcCIsIGNoYW5nZV91cm4sIG9iamVjdCk7Ci0g ICAgICAgaWYgKG9iamVjdCAhPSBOVUxMKQotICAgICAgICAgewotICAgICAgICAgICBwaG90b3Nf YmFzZV9pdGVtX2Rlc3Ryb3kgKFBIT1RPU19CQVNFX0lURU0gKG9iamVjdCkpOwotQEAgLTU3Nyw5 ICs1NzgsMTUgQEAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmdfZm9yZWFjaCAo Z3BvaW50ZXIga2V5LCBncG9pbnRlciB2YWx1ZSwgZ3BvaW4KLSAKLSAKLSBzdGF0aWMgdm9pZAot LXBob3Rvc19pdGVtX21hbmFnZXJfY2hhbmdlc19wZW5kaW5nIChQaG90b3NJdGVtTWFuYWdlciAq c2VsZiwgR0hhc2hUYWJsZSAqY2hhbmdlcykKLS17Ci0tICBnX2hhc2hfdGFibGVfZm9yZWFjaCAo Y2hhbmdlcywgcGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmdfZm9yZWFjaCwgc2Vs Zik7Ci0rcGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmcgKFBob3Rvc0l0ZW1NYW5h Z2VyICpzZWxmLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn Y2hhciAgICAgICAqc2VydmljZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgZ2NoYXIgICAgICAgKmdyYXBoLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHUHRyQXJyYXkgICAgICAgICAqZXZlbnRzLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgICAgICAgdXNlcl9kYXRhKQotK3sKLSsg IGlmIChnX3N0cl9lcXVhbCAoZ3JhcGgsIFRSQUNLRVJfUElDVFVSRVNfR1JBUEgpKSB7Ci0rICAg IGdfcHRyX2FycmF5X2ZvcmVhY2ggKGV2ZW50cywgcGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2Vz X3BlbmRpbmdfZm9yZWFjaCwgc2VsZik7Ci0rICB9Ci0gfQotIAotIAotQEAgLTcxNyw3ICs3MjQs NyBAQCBwaG90b3NfaXRlbV9tYW5hZ2VyX3dhaXRfZm9yX2NoYW5nZXNfdGltZW91dCAoZ3BvaW50 ZXIgdXNlcl9kYXRhKQotICAgICAgIGdfYXV0b3B0ciAoUGhvdG9zUXVlcnkpIHF1ZXJ5ID0gTlVM TDsKLSAgICAgICBnX2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBOVUxMOwotIAotLSAgICAgIHNw YXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIlNFTEVDVCA/dXJuIG5pZTp1cmwgKD91cm4pIFdIRVJF IHsgP3VybiBuaWU6dXJsICclcycgfSIsIHVyaSk7Ci0rICAgICAgc3BhcnFsID0gZ19zdHJkdXBf cHJpbnRmICgiU0VMRUNUID91cm4gbmllOmlzU3RvcmVkQXMgKD91cm4pIFdIRVJFIHsgP3VybiBu aWU6aXNTdG9yZWRBcyAnJXMnIH0iLCB1cmkpOwotICAgICAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5 X25ldyAoTlVMTCwgc3BhcnFsKTsKLSAgICAgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9zZWxlY3Qg KHNlbGYtPnF1ZXVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnks Ci1AQCAtMTAzOCw3ICsxMDQ1LDcgQEAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9kaXNwb3NlIChHT2Jq ZWN0ICpvYmplY3QpCi0gICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmFjdGl2ZV9vYmplY3QpOwot ICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5sb2FkZXJfY2FuY2VsbGFibGUpOwotICAgZ19jbGVh cl9vYmplY3QgKCZzZWxmLT5hY3RpdmVfY29sbGVjdGlvbik7Ci0tICBnX2NsZWFyX29iamVjdCAo JnNlbGYtPm1vbml0b3IpOwotKyAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5ub3RpZmllcik7Ci0g ICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPnF1ZXVlKTsKLSAKLSAgIEdfT0JKRUNUX0NMQVNTIChw aG90b3NfaXRlbV9tYW5hZ2VyX3BhcmVudF9jbGFzcyktPmRpc3Bvc2UgKG9iamVjdCk7Ci1AQCAt MTA5MywyMCArMTEwMCwyNCBAQCBwaG90b3NfaXRlbV9tYW5hZ2VyX2luaXQgKFBob3Rvc0l0ZW1N YW5hZ2VyICpzZWxmKQotIAotICAgc2VsZi0+bW9kZSA9IFBIT1RPU19XSU5ET1dfTU9ERV9OT05F OwotIAotLSAgc2VsZi0+bW9uaXRvciA9IHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2R1 cF9zaW5nbGV0b24gKE5VTEwsIE5VTEwpOwotLSAgaWYgKEdfTElLRUxZIChzZWxmLT5tb25pdG9y ICE9IE5VTEwpKQotLSAgICBnX3NpZ25hbF9jb25uZWN0X29iamVjdCAoc2VsZi0+bW9uaXRvciwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjaGFuZ2VzLXBlbmRpbmciLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAocGhvdG9zX2l0ZW1fbWFuYWdlcl9j aGFuZ2VzX3BlbmRpbmcpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZiwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ09OTkVDVF9TV0FQUEVEKTsKLS0KLSAgIHsK LSAgICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKLSAKLSAgICAgc2VsZi0+cXVl dWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBfc2luZ2xldG9uIChOVUxMLCAmZXJyb3IpOwot ICAgICBpZiAoR19VTkxJS0VMWSAoZXJyb3IgIT0gTlVMTCkpCi0tICAgICAgZ193YXJuaW5nICgi VW5hYmxlIHRvIGNyZWF0ZSBQaG90b3NUcmFja2VyUXVldWU6ICVzIiwgZXJyb3ItPm1lc3NhZ2Up OwotKyAgICAgIHsKLSsgICAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0byBjcmVhdGUgUGhvdG9z VHJhY2tlclF1ZXVlOiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKLSsgICAgICAgIHNlbGYtPm5vdGlm aWVyID0gTlVMTDsKLSsgICAgICB9Ci0rICAgIGVsc2UKLSsgICAgICB7Ci0rICAgICAgICBzZWxm LT5ub3RpZmllciA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2dldF9ub3RpZmllciAoc2VsZi0+cXVl dWUpOwotKyAgICAgICAgZ19zaWduYWxfY29ubmVjdF9vYmplY3QgKHNlbGYtPm5vdGlmaWVyLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJldmVudHMiLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKHBob3Rvc19pdGVtX21hbmFnZXJfY2hh bmdlc19wZW5kaW5nKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ09OTkVDVF9TV0FQUEVEKTsKLSsg ICAgICB9Ci0gICB9Ci0gCi0gICBzZWxmLT5mdWxsc2NyZWVuID0gRkFMU0U7Ci1AQCAtMTI0MSw3 ICsxMjUyLDcgQEAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9hZGRfaXRlbSAoUGhvdG9zSXRlbU1hbmFn ZXIgKnNlbGYsCi0gICBnX3JldHVybl9pZl9mYWlsIChiYXNlX2l0ZW1fdHlwZSA9PSBHX1RZUEVf Tk9ORQotICAgICAgICAgICAgICAgICAgICAgfHwgKGJhc2VfaXRlbV90eXBlICE9IFBIT1RPU19U WVBFX0JBU0VfSVRFTQotICAgICAgICAgICAgICAgICAgICAgICAgICYmIGdfdHlwZV9pc19hIChi YXNlX2l0ZW1fdHlwZSwgUEhPVE9TX1RZUEVfQkFTRV9JVEVNKSkpOwotLSAgZ19yZXR1cm5faWZf ZmFpbCAoVFJBQ0tFUl9TUEFSUUxfSVNfQ1VSU09SIChjdXJzb3IpKTsKLSsgIGdfcmV0dXJuX2lm X2ZhaWwgKFRSQUNLRVJfSVNfU1BBUlFMX0NVUlNPUiAoY3Vyc29yKSk7Ci0gCi0gICBpZCA9IHRy YWNrZXJfc3BhcnFsX2N1cnNvcl9nZXRfc3RyaW5nIChjdXJzb3IsIFBIT1RPU19RVUVSWV9DT0xV TU5TX1VSTiwgTlVMTCk7Ci0gICBnX3JldHVybl9pZl9mYWlsIChpZCAhPSBOVUxMICYmIGlkWzBd ICE9ICdcMCcpOwotQEAgLTEzNzAsNyArMTM4MSw3IEBAIHBob3Rvc19pdGVtX21hbmFnZXJfY3Jl YXRlX2l0ZW0gKFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxmLAotICAgZ19yZXR1cm5fdmFsX2lmX2Zh aWwgKGJhc2VfaXRlbV90eXBlID09IEdfVFlQRV9OT05FCi0gICAgICAgICAgICAgICAgICAgICAg ICAgfHwgKGJhc2VfaXRlbV90eXBlICE9IFBIT1RPU19UWVBFX0JBU0VfSVRFTQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmJiBnX3R5cGVfaXNfYSAoYmFzZV9pdGVtX3R5cGUsIFBIT1RP U19UWVBFX0JBU0VfSVRFTSkpLCBOVUxMKTsKLS0gIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChUUkFD S0VSX1NQQVJRTF9JU19DVVJTT1IgKGN1cnNvciksIE5VTEwpOwotKyAgZ19yZXR1cm5fdmFsX2lm X2ZhaWwgKFRSQUNLRVJfSVNfU1BBUlFMX0NVUlNPUiAoY3Vyc29yKSwgTlVMTCk7Ci0gCi0gICBp ZCA9IHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9nZXRfc3RyaW5nIChjdXJzb3IsIFBIT1RPU19RVUVS WV9DT0xVTU5TX1VSTiwgTlVMTCk7Ci0gICBpdGVtID0gUEhPVE9TX0JBU0VfSVRFTSAocGhvdG9z X2Jhc2VfbWFuYWdlcl9nZXRfb2JqZWN0X2J5X2lkIChQSE9UT1NfQkFTRV9NQU5BR0VSIChzZWxm KSwgaWQpKTsKLWRpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXF1YXJrcy5jIGIvc3JjL3Bob3Rvcy1x dWFya3MuYwotaW5kZXggMDg3MGVmNjIuLjVlZTI1NzQ1IDEwMDY0NAotLS0tIGEvc3JjL3Bob3Rv cy1xdWFya3MuYwotKysrIGIvc3JjL3Bob3Rvcy1xdWFya3MuYwotQEAgLTI1LDY4ICsyNSw2OCBA QAotIEdRdWFyawotIHBob3Rvc19xdWFya3NfZmxhc2hfb2ZmX3F1YXJrICh2b2lkKQotIHsKLS0g IHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly93d3cudHJhY2tlci1w cm9qZWN0Lm9yZy90ZW1wL25tbSNmbGFzaC1vZmYiKTsKLSsgIHJldHVybiBnX3F1YXJrX2Zyb21f c3RhdGljX3N0cmluZyAoImh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMv bm1tI2ZsYXNoLW9mZiIpOwotIH0KLSAKLSAKLSBHUXVhcmsKLSBwaG90b3NfcXVhcmtzX2ZsYXNo X29uX3F1YXJrICh2b2lkKQotIHsKLS0gIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmlu ZyAoImh0dHA6Ly93d3cudHJhY2tlci1wcm9qZWN0Lm9yZy90ZW1wL25tbSNmbGFzaC1vbiIpOwot KyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNrZXIuYXBp Lmdub21lLm9yZy9vbnRvbG9neS92My9ubW0jZmxhc2gtb24iKTsKLSB9Ci0gCi0gCi0gR1F1YXJr Ci0gcGhvdG9zX3F1YXJrc19vcmllbnRhdGlvbl9ib3R0b21fcXVhcmsgKHZvaWQpCi0gewotLSAg cmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rl c2t0b3Aub3JnL29udG9sb2dpZXMvMjAwNy8wMy8yMi9uZm8jb3JpZW50YXRpb24tYm90dG9tIik7 Ci0rICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vdHJhY2tlci5h cGkuZ25vbWUub3JnL29udG9sb2d5L3YzL25mbyNvcmllbnRhdGlvbi1ib3R0b20iKTsKLSB9Ci0g Ci0gCi0gR1F1YXJrCi0gcGhvdG9zX3F1YXJrc19vcmllbnRhdGlvbl9ib3R0b21fbWlycm9yX3F1 YXJrICh2b2lkKQotIHsKLS0gIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0 dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRvbG9naWVzLzIwMDcvMDMvMjIvbmZvI29y aWVudGF0aW9uLWJvdHRvbS1taXJyb3IiKTsKLSsgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGlj X3N0cmluZyAoImh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbmZvI29y aWVudGF0aW9uLWJvdHRvbS1taXJyb3IiKTsKLSB9Ci0gCi0gCi0gR1F1YXJrCi0gcGhvdG9zX3F1 YXJrc19vcmllbnRhdGlvbl9sZWZ0X3F1YXJrICh2b2lkKQotIHsKLS0gIHJldHVybiBnX3F1YXJr X2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRv bG9naWVzLzIwMDcvMDMvMjIvbmZvI29yaWVudGF0aW9uLWxlZnQiKTsKLSsgIHJldHVybiBnX3F1 YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250 b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9uLWxlZnQiKTsKLSB9Ci0gCi0gCi0gR1F1YXJrCi0gcGhv dG9zX3F1YXJrc19vcmllbnRhdGlvbl9sZWZ0X21pcnJvcl9xdWFyayAodm9pZCkKLSB7Ci0tICBy ZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vd3d3LnNlbWFudGljZGVz a3RvcC5vcmcvb250b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNvcmllbnRhdGlvbi1sZWZ0LW1pcnJv ciIpOwotKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNr ZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9uZm8jb3JpZW50YXRpb24tbGVmdC1taXJyb3Ii KTsKLSB9Ci0gCi0gCi0gR1F1YXJrCi0gcGhvdG9zX3F1YXJrc19vcmllbnRhdGlvbl9yaWdodF9x dWFyayAodm9pZCkKLSB7Ci0tICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJo dHRwOi8vd3d3LnNlbWFudGljZGVza3RvcC5vcmcvb250b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNv cmllbnRhdGlvbi1yaWdodCIpOwotKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5n ICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9uZm8jb3JpZW50YXRp b24tcmlnaHQiKTsKLSB9Ci0gCi0gCi0gR1F1YXJrCi0gcGhvdG9zX3F1YXJrc19vcmllbnRhdGlv bl9yaWdodF9taXJyb3JfcXVhcmsgKHZvaWQpCi0gewotLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9z dGF0aWNfc3RyaW5nICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rlc2t0b3Aub3JnL29udG9sb2dpZXMv MjAwNy8wMy8yMi9uZm8jb3JpZW50YXRpb24tcmlnaHQtbWlycm9yIik7Ci0rICByZXR1cm4gZ19x dWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3JnL29u dG9sb2d5L3YzL25mbyNvcmllbnRhdGlvbi1yaWdodC1taXJyb3IiKTsKLSB9Ci0gCi0gCi0gR1F1 YXJrCi0gcGhvdG9zX3F1YXJrc19vcmllbnRhdGlvbl90b3BfcXVhcmsgKHZvaWQpCi0gewotLSAg cmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rl c2t0b3Aub3JnL29udG9sb2dpZXMvMjAwNy8wMy8yMi9uZm8jb3JpZW50YXRpb24tdG9wIik7Ci0r ICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vdHJhY2tlci5hcGku Z25vbWUub3JnL29udG9sb2d5L3YzL25mbyNvcmllbnRhdGlvbi10b3AiKTsKLSB9Ci0gCi0gCi0g R1F1YXJrCi0gcGhvdG9zX3F1YXJrc19vcmllbnRhdGlvbl90b3BfbWlycm9yX3F1YXJrICh2b2lk KQotIHsKLS0gIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly93d3cu c2VtYW50aWNkZXNrdG9wLm9yZy9vbnRvbG9naWVzLzIwMDcvMDMvMjIvbmZvI29yaWVudGF0aW9u LXRvcC1taXJyb3IiKTsKLSsgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0 dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9uLXRv cC1taXJyb3IiKTsKLSB9Ci1kaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMg Yi9zcmMvcGhvdG9zLXF1ZXJ5LWJ1aWxkZXIuYwotaW5kZXggNWQ5ZDhhNWEuLjliMWJhZjI5IDEw MDY0NAotLS0tIGEvc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMKLSsrKyBiL3NyYy9waG90b3Mt cXVlcnktYnVpbGRlci5jCi1AQCAtMjUsNiArMjUsNyBAQAotIAotICNpbmNsdWRlIDxzdHJpbmcu aD4KLSAKLSsjaW5jbHVkZSAicGhvdG9zLWFwcGxpY2F0aW9uLmgiCi0gI2luY2x1ZGUgInBob3Rv cy1iYXNlLW1hbmFnZXIuaCIKLSAjaW5jbHVkZSAicGhvdG9zLXF1ZXJ5LmgiCi0gI2luY2x1ZGUg InBob3Rvcy1xdWVyeS1idWlsZGVyLmgiCi1AQCAtMzIsNiArMzMsNyBAQAotICNpbmNsdWRlICJw aG90b3Mtc291cmNlLW1hbmFnZXIuaCIKLSAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC1tYXRjaC1t YW5hZ2VyLmgiCi0gI2luY2x1ZGUgInBob3Rvcy1zZWFyY2gtdHlwZS1tYW5hZ2VyLmgiCi0rI2lu Y2x1ZGUgInBob3Rvcy10cmFja2VyLXF1ZXVlLmgiCi0gCi0gI2RlZmluZSBQSE9UT1NfUVVFUllf Q09MTEVDVElPTlNfSURFTlRJRklFUiAicGhvdG9zOmNvbGxlY3Rpb246IgotICNkZWZpbmUgUEhP VE9TX1FVRVJZX0xPQ0FMX0NPTExFQ1RJT05TX0lERU5USUZJRVIgInBob3Rvczpjb2xsZWN0aW9u OmxvY2FsOiIKLUBAIC00OCwxMiArNTAsMTQgQEAgY29uc3QgZ2NoYXIgKnBob3Rvc19kZWZhdWx0 X2ZpbHRlciA9IFwKLSAKLSBzdGF0aWMgZ2NoYXIgKgotIHBob3Rvc19xdWVyeV9idWlsZGVyX3F1 ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBnYm9vbGVhbiBnbG9iYWwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGdjaGFyICp2YWx1ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQg ZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBob3Rvc09mZnNldENvbnRyb2xs ZXIgKm9mZnNldF9jbnRybHIpCi0gewotICAgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnRlbXBsYXRl OwotLSAgY29uc3QgZ2NoYXIgKnByb2plY3Rpb24gPSBOVUxMOwotKyAgY29uc3QgZ2NoYXIgKm1p bmVyX2ZzX2J1c25hbWUgPSBOVUxMOwotKyAgY29uc3QgZ2NoYXIgKm1haW5fcHJvamVjdGlvbiA9 IE5VTEw7Ci0rICBjb25zdCBnY2hhciAqc2Vjb25kX3Byb2plY3Rpb24gPSBOVUxMOwotICAgZ19h dXRvZnJlZSBnY2hhciAqaXRlbV9wYXR0ZXJuID0gTlVMTDsKLSAgIGdfYXV0b2ZyZWUgZ2NoYXIg KnNlYXJjaF9maWx0ZXIgPSBOVUxMOwotICAgZ19hdXRvZnJlZSBnY2hhciAqc291cmNlX2ZpbHRl ciA9IE5VTEw7Ci1AQCAtNjMsMjkgKzY3LDM1IEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5 IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLAotIAotICAgdGVtcGxhdGUgPSBwaG90 b3NfYmFzZV9tYW5hZ2VyX2dldF9zcGFycWxfdGVtcGxhdGUgKHN0YXRlLT5zcmNoX3R5cF9tbmdy LCBmbGFncyk7Ci0gCi0tICBwcm9qZWN0aW9uID0gIj91cm4gIgotLSAgICAgICAgICAgICAgICJu aWU6dXJsICg/dXJuKSAiCi0tICAgICAgICAgICAgICAgIm5mbzpmaWxlTmFtZSAoP3VybikgIgot LSAgICAgICAgICAgICAgICJuaWU6bWltZVR5cGUgKD91cm4pICIKLS0gICAgICAgICAgICAgICAi bmllOnRpdGxlICg/dXJuKSAiCi0tICAgICAgICAgICAgICAgInRyYWNrZXI6Y29hbGVzY2UgKG5j bzpmdWxsbmFtZSAoP2NyZWF0b3IpLCBuY286ZnVsbG5hbWUgKD9wdWJsaXNoZXIpLCAnJykgIgot LSAgICAgICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2NlIChuZm86ZmlsZUxhc3RNb2RpZmllZCAo P3VybiksIG5pZTpjb250ZW50TGFzdE1vZGlmaWVkICg/dXJuKSkgQVMgP210aW1lICIKLS0gICAg ICAgICAgICAgICAibmFvOmlkZW50aWZpZXIgKD91cm4pICIKLS0gICAgICAgICAgICAgICAicmRm OnR5cGUgKD91cm4pICIKLS0gICAgICAgICAgICAgICAibmllOmRhdGFTb3VyY2UoP3VybikgIgot LSAgICAgICAgICAgICAgICIoIEVYSVNUUyB7ID91cm4gbmFvOmhhc1RhZyBuYW86cHJlZGVmaW5l ZC10YWctZmF2b3JpdGUgfSApICIKLS0gICAgICAgICAgICAgICAiKCBFWElTVFMgeyA/dXJuIG5j bzpjb250cmlidXRvciA/Y29udHJpYnV0b3IgRklMVEVSICggP2NvbnRyaWJ1dG9yICE9ID9jcmVh dG9yICkgfSApICIKLS0gICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNjZShuZm86ZmlsZUNy ZWF0ZWQgKD91cm4pLCBuaWU6Y29udGVudENyZWF0ZWQgKD91cm4pKSAiCi0tICAgICAgICAgICAg ICAgIm5mbzp3aWR0aCAoP3VybikgIgotLSAgICAgICAgICAgICAgICJuZm86aGVpZ2h0ICg/dXJu KSAiCi0tICAgICAgICAgICAgICAgIm5mbzplcXVpcG1lbnQgKD91cm4pICIKLS0gICAgICAgICAg ICAgICAibmZvOm9yaWVudGF0aW9uICg/dXJuKSAiCi0tICAgICAgICAgICAgICAgIm5tbTpleHBv c3VyZVRpbWUgKD91cm4pICIKLS0gICAgICAgICAgICAgICAibm1tOmZudW1iZXIgKD91cm4pICIK LS0gICAgICAgICAgICAgICAibm1tOmZvY2FsTGVuZ3RoICg/dXJuKSAiCi0tICAgICAgICAgICAg ICAgIm5tbTppc29TcGVlZCAoP3VybikgIgotLSAgICAgICAgICAgICAgICJubW06Zmxhc2ggKD91 cm4pICIKLS0gICAgICAgICAgICAgICAic2xvOmxvY2F0aW9uICg/dXJuKSAiOwotKyAgbWluZXJf ZnNfYnVzbmFtZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2dldF9taW5lcl9mc19idXNuYW1lIChz dGF0ZS0+cXVldWUpOwotKwotKyAgbWFpbl9wcm9qZWN0aW9uID0gIj91cm4gIgotKyAgICAgICAg ICAgICAgICAgICAgIj9maWxlICIKLSsgICAgICAgICAgICAgICAgICAgICJuZm86ZmlsZU5hbWUg KD9maWxlKSBBUyA/ZmlsZW5hbWUgIgotKyAgICAgICAgICAgICAgICAgICAgIm5pZTptaW1lVHlw ZSAoP3VybikgQVMgP21pbWV0eXBlICIKLSsgICAgICAgICAgICAgICAgICAgICJuaWU6dGl0bGUg KD91cm4pIEFTID90aXRsZSAiCi0rICAgICAgICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNj ZSAobmNvOmZ1bGxuYW1lICg/Y3JlYXRvciksIG5jbzpmdWxsbmFtZSAoP3B1Ymxpc2hlciksICcn KSBBUyA/YXV0aG9yX25hbWUgIgotKyAgICAgICAgICAgICAgICAgICAgInRyYWNrZXI6Y29hbGVz Y2UgKG5mbzpmaWxlTGFzdE1vZGlmaWVkICg/ZmlsZSksIG5pZTpjb250ZW50TGFzdE1vZGlmaWVk ICg/dXJuKSkgQVMgP210aW1lICIKLSsgICAgICAgICAgICAgICAgICAgICJuYW86aWRlbnRpZmll ciAoP3VybikgQVMgP2lkZW50aWZpZXIgIgotKyAgICAgICAgICAgICAgICAgICAgInJkZjp0eXBl ICg/dXJuKSBBUyA/dHlwZSAiCi0rICAgICAgICAgICAgICAgICAgICAibmllOmRhdGFTb3VyY2Uo P3VybikgQVMgP2RhdGFzb3VyY2UgIgotKyAgICAgICAgICAgICAgICAgICAgIiggRVhJU1RTIHsg P3VybiBuY286Y29udHJpYnV0b3IgP2NvbnRyaWJ1dG9yIEZJTFRFUiAoID9jb250cmlidXRvciAh PSA/Y3JlYXRvciApIH0gKSBBUyA/aGFzX2NvbnRyaWJ1dG9yICIKLSsgICAgICAgICAgICAgICAg ICAgICJ0cmFja2VyOmNvYWxlc2NlKG5mbzpmaWxlQ3JlYXRlZCAoP2ZpbGUpLCBuaWU6Y29udGVu dENyZWF0ZWQgKD91cm4pKSBBUyA/Y3RpbWUgIgotKyAgICAgICAgICAgICAgICAgICAgIm5mbzp3 aWR0aCAoP3VybikgQVMgP3dpZHRoICIKLSsgICAgICAgICAgICAgICAgICAgICJuZm86aGVpZ2h0 ICg/dXJuKSBBUyA/aGVpZ2h0ICIKLSsgICAgICAgICAgICAgICAgICAgICJuZm86ZXF1aXBtZW50 ICg/dXJuKSBBUyA/ZXF1aXBtZW50ICIKLSsgICAgICAgICAgICAgICAgICAgICJuZm86b3JpZW50 YXRpb24gKD91cm4pIEFTID9vcmllbnRhdGlvbiAiCi0rICAgICAgICAgICAgICAgICAgICAibm1t OmV4cG9zdXJlVGltZSAoP3VybikgQVMgP2V4cG9zdXJlX3RpbWUgIgotKyAgICAgICAgICAgICAg ICAgICAgIm5tbTpmbnVtYmVyICg/dXJuKSBBUyA/Zm51bWJlciAiCi0rICAgICAgICAgICAgICAg ICAgICAibm1tOmZvY2FsTGVuZ3RoICg/dXJuKSBBUyA/Zm9jYWxfbGVuZ3RoICIKLSsgICAgICAg ICAgICAgICAgICAgICJubW06aXNvU3BlZWQgKD91cm4pIEFTID9pc29zcGVlZCAiCi0rICAgICAg ICAgICAgICAgICAgICAibm1tOmZsYXNoICg/dXJuKSBBUyA/Zmxhc2ggIgotKyAgICAgICAgICAg ICAgICAgICAgInNsbzpsb2NhdGlvbiAoP3VybikgQVMgP2xvY2F0aW9uICI7Ci0rCi0rICBzZWNv bmRfcHJvamVjdGlvbiA9ICI/dXJuID9maWxlID9maWxlbmFtZSA/bWltZXR5cGUgP3RpdGxlID9h dXRob3JfbmFtZSA/bXRpbWUgP2lkZW50aWZpZXIgP3R5cGUgP2RhdGFzb3VyY2UgIgotKyAgICAg ICAgICAgICAgICAgICAgICAiKCBFWElTVFMgeyA/dXJuIG5hbzpoYXNUYWcgbmFvOnByZWRlZmlu ZWQtdGFnLWZhdm9yaXRlIH0gKSBBUyA/aXNfZmF2b3JpdGUgIgotKyAgICAgICAgICAgICAgICAg ICAgICAiP2hhc19jb250cmlidXRvciA/Y3RpbWUgP3dpZHRoID9oZWlnaHQgP2VxdWlwbWVudCA/ b3JpZW50YXRpb24gP2V4cG9zdXJlX3RpbWUgP2ZudW1iZXIgIgotKyAgICAgICAgICAgICAgICAg ICAgICAiP2ZvY2FsX2xlbmd0aCA/aXNvc3BlZWQgP2ZsYXNoID9sb2NhdGlvbiAiOwotIAotICAg aXRlbV9wYXR0ZXJuID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfd2hlcmUgKHN0YXRlLT5pdGVt X21uZ3IsIGZsYWdzKTsKLSAKLUBAIC05Nyw3ICsxMDcsNyBAQCBwaG90b3NfcXVlcnlfYnVpbGRl cl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwKLSAKLSAgIG9yZGVyID0g Ik9SREVSIEJZIERFU0MgKD9tdGltZSkiOwotIAotLSAgaWYgKGdsb2JhbCAmJiAoZmxhZ3MgJiBQ SE9UT1NfUVVFUllfRkxBR1NfVU5MSU1JVEVEKSA9PSAwKQotKyAgaWYgKHZhbHVlcyA9PSBOVUxM ICYmIChmbGFncyAmIFBIT1RPU19RVUVSWV9GTEFHU19VTkxJTUlURUQpID09IDApCi0gICAgIHsK LSAgICAgICBnaW50IG9mZnNldCA9IDA7Ci0gICAgICAgZ2ludCBzdGVwID0gNjA7Ci1AQCAtMTEy LDEyICsxMjIsMTYgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKFBob3Rvc1NlYXJjaENv bnRleHRTdGF0ZSAqc3RhdGUsCi0gICAgIH0KLSAKLSAgIHNwYXJxbCA9IHBob3Rvc19zcGFycWxf dGVtcGxhdGVfZ2V0X3NwYXJxbCAodGVtcGxhdGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJwcm9qZWN0aW9uIiwgcHJvamVjdGlvbiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pbmVyX2ZzX2J1c25hbWUi LCBtaW5lcl9mc19idXNuYW1lLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAibWFpbl9wcm9qZWN0aW9uIiwgbWFpbl9wcm9qZWN0aW9uLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2Vjb25kX3Byb2plY3Rpb24i LCBzZWNvbmRfcHJvamVjdGlvbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgImZpbmFsX3Byb2plY3Rpb24iLCBzZWNvbmRfcHJvamVjdGlvbiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlcyIsIHZhbHVl cyA/IHZhbHVlcyA6ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiY29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXIiLCBjb2xsZWN0aW9uc19kZWZhdWx0 X2ZpbHRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Iml0ZW1fcGF0dGVybiIsIGl0ZW1fcGF0dGVybiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgInBob3Rvc19kZWZhdWx0X2ZpbHRlciIsIHBob3Rvc19kZWZh dWx0X2ZpbHRlciwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgInNvdXJjZV9maWx0ZXIiLCBzb3VyY2VfZmlsdGVyID8gc291cmNlX2ZpbHRlciA6ICIiLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VhcmNoX2Zp bHRlciIsIHNlYXJjaF9maWx0ZXIgPyBzZWFyY2hfZmlsdGVyIDogIiIsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzb3VyY2VfZmlsdGVyIiwgc291cmNl X2ZpbHRlciA/IHNvdXJjZV9maWx0ZXIgOiAiKHRydWUpIiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlYXJjaF9maWx0ZXIiLCBzZWFyY2hfZmlsdGVy ID8gc2VhcmNoX2ZpbHRlciA6ICIodHJ1ZSkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAib3JkZXIiLCBvcmRlciwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9mZnNldF9saW1pdCIsIG9mZnNldF9saW1pdCA/ IG9mZnNldF9saW1pdCA6ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMKTsKLUBAIC0xMzMsNiArMTQ3LDcgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxk ZXJfY3JlYXRlX2NvbGxlY3Rpb25fcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3Rh dGUsCi0gewotICAgR1RpbWVWYWwgdHY7Ci0gICBQaG90b3NRdWVyeSAqcXVlcnk7Ci0rICBnX2F1 dG9wdHIgKFRyYWNrZXJSZXNvdXJjZSkgY29sbGVjdGlvbiA9IE5VTEw7Ci0gICBnX2F1dG9mcmVl IGdjaGFyICppZGVudGlmaWVyID0gTlVMTDsKLSAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9 IE5VTEw7Ci0gICBnX2F1dG9mcmVlIGdjaGFyICp0aW1lID0gTlVMTDsKLUBAIC0xNDcsMTMgKzE2 MiwxNCBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9jcmVhdGVfY29sbGVjdGlvbl9xdWVyeSAoUGhv dG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwKLSAgIHR2LnR2X3VzZWMgPSAwOwotICAgdGlt ZSA9IGdfdGltZV92YWxfdG9faXNvODYwMSAoJnR2KTsKLSAKLS0gIHNwYXJxbCA9IGdfc3RyZHVw X3ByaW50ZiAoIklOU0VSVCB7IF86cmVzIGEgbmZvOkRhdGFDb250YWluZXIgOyBhIG5pZTpEYXRh T2JqZWN0IDsgIgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmllOmNvbnRlbnRMYXN0 TW9kaWZpZWQgJyVzJyA7ICIKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5pZTp0aXRs ZSAnJXMnIDsgIgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFvOmlkZW50aWZpZXIg JyVzJyB9IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbmFtZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRl bnRpZmllcik7Ci0rICBjb2xsZWN0aW9uID0gdHJhY2tlcl9yZXNvdXJjZV9uZXcgKCJfOnJlcyIp OwotKyAgdHJhY2tlcl9yZXNvdXJjZV9hZGRfdXJpIChjb2xsZWN0aW9uLCAicmRmOnR5cGUiLCAi bmZvOkRhdGFDb250YWluZXIiKTsKLSsgIHRyYWNrZXJfcmVzb3VyY2VfYWRkX3VyaSAoY29sbGVj dGlvbiwgInJkZjp0eXBlIiwgIm5pZTpEYXRhT2JqZWN0Iik7Ci0rICB0cmFja2VyX3Jlc291cmNl X3NldF9zdHJpbmcgKGNvbGxlY3Rpb24sICJuaWU6Y29udGVudExhc3RNb2RpZmllZCIsIHRpbWUp OwotKyAgdHJhY2tlcl9yZXNvdXJjZV9zZXRfc3RyaW5nIChjb2xsZWN0aW9uLCAibmllOnRpdGxl IiwgbmFtZSk7Ci0rICB0cmFja2VyX3Jlc291cmNlX3NldF9zdHJpbmcgKGNvbGxlY3Rpb24sICJu YW86aWRlbnRpZmllciIsIGlkZW50aWZpZXIpOwotKwotKyAgc3BhcnFsID0gdHJhY2tlcl9yZXNv dXJjZV9wcmludF9zcGFycWxfdXBkYXRlIChjb2xsZWN0aW9uLCBOVUxMLCAidHJhY2tlcjpQaWN0 dXJlcyIpOwotIAotICAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChzdGF0ZSwgc3BhcnFsKTsK LSAKLUBAIC0xODMsNyArMTk5LDkgQEAgUGhvdG9zUXVlcnkgKgotIHBob3Rvc19xdWVyeV9idWls ZGVyX2NvdW50X3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLCBnaW50IGZs YWdzKQotIHsKLSAgIFBob3Rvc1NwYXJxbFRlbXBsYXRlICp0ZW1wbGF0ZTsKLS0gIGNvbnN0IGdj aGFyICpwcm9qZWN0aW9uID0gTlVMTDsKLSsgIGNvbnN0IGdjaGFyICptaW5lcl9mc19idXNuYW1l ID0gTlVMTDsKLSsgIGNvbnN0IGdjaGFyICpjb3VudF9wcm9qZWN0aW9uID0gTlVMTDsKLSsgIGNv bnN0IGdjaGFyICp2YWx1ZV9wcm9qZWN0aW9uID0gTlVMTDsKLSAgIGdfYXV0b2ZyZWUgZ2NoYXIg Kml0ZW1fcGF0dGVybiA9IE5VTEw7Ci0gICBnX2F1dG9mcmVlIGdjaGFyICpzZWFyY2hfZmlsdGVy ID0gTlVMTDsKLSAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNvdXJjZV9maWx0ZXIgPSBOVUxMOwotQEAg LTE5Miw3ICsyMTAsMTAgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfY291bnRfcXVlcnkgKFBob3Rv c1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsIGdpbnQgZmxhZ3MpCi0gCi0gICB0ZW1wbGF0ZSA9 IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAoc3RhdGUtPnNyY2hfdHlw X21uZ3IsIGZsYWdzKTsKLSAKLS0gIHByb2plY3Rpb24gPSAiQ09VTlQoP3VybikgIjsKLSsgIG1p bmVyX2ZzX2J1c25hbWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNfYnVzbmFt ZSAoc3RhdGUtPnF1ZXVlKTsKLSsKLSsgIHZhbHVlX3Byb2plY3Rpb24gPSAiP3VybiAiOwotKyAg Y291bnRfcHJvamVjdGlvbiA9ICJDT1VOVCg/dXJuKSAiOwotIAotICAgaXRlbV9wYXR0ZXJuID0g cGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfd2hlcmUgKHN0YXRlLT5pdGVtX21uZ3IsIGZsYWdzKTsK LSAKLUBAIC0yMDMsMTIgKzIyNCwxNiBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9jb3VudF9xdWVy eSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgZ2ludCBmbGFncykKLSAgICAgfQot IAotICAgc3BhcnFsID0gcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9nZXRfc3BhcnFsICh0ZW1wbGF0 ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2pl Y3Rpb24iLCBwcm9qZWN0aW9uLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAibWluZXJfZnNfYnVzbmFtZSIsIG1pbmVyX2ZzX2J1c25hbWUsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYWluX3Byb2plY3Rpb24i LCB2YWx1ZV9wcm9qZWN0aW9uLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAic2Vjb25kX3Byb2plY3Rpb24iLCB2YWx1ZV9wcm9qZWN0aW9uLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmluYWxfcHJvamVjdGlv biIsIGNvdW50X3Byb2plY3Rpb24sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJ2YWx1ZXMiLCAiIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImNvbGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyIiwgY29sbGVjdGlv bnNfZGVmYXVsdF9maWx0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJpdGVtX3BhdHRlcm4iLCBpdGVtX3BhdHRlcm4sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwaG90b3NfZGVmYXVsdF9maWx0ZXIiLCBw aG90b3NfZGVmYXVsdF9maWx0ZXIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJzb3VyY2VfZmlsdGVyIiwgc291cmNlX2ZpbHRlciA/IHNvdXJjZV9maWx0 ZXIgOiAiIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg InNlYXJjaF9maWx0ZXIiLCBzZWFyY2hfZmlsdGVyID8gc2VhcmNoX2ZpbHRlciA6ICIiLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic291cmNlX2ZpbHRl ciIsIHNvdXJjZV9maWx0ZXIgPyBzb3VyY2VfZmlsdGVyIDogIih0cnVlKSIsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWFyY2hfZmlsdGVyIiwgc2Vh cmNoX2ZpbHRlciA/IHNlYXJjaF9maWx0ZXIgOiAiKHRydWUpIiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yZGVyIiwgIiIsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvZmZzZXRfbGltaXQiLCAiIiwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci1AQCAt MjY3LDcgKzI5Miw3IEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX2ZldGNoX2NvbGxlY3Rpb25zX2xv Y2FsIChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlKQotICAgZ19hdXRvZnJlZSBnY2hh ciAqc3BhcnFsID0gTlVMTDsKLSAKLSAgIHNwYXJxbCA9IHBob3Rvc19xdWVyeV9idWlsZGVyX3F1 ZXJ5IChzdGF0ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVF LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhPVE9TX1FVRVJZX0ZMQUdTX0NPTExF Q1RJT05TCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQSE9UT1Nf UVVFUllfRkxBR1NfTE9DQUwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IFBIT1RPU19RVUVSWV9GTEFHU19VTkxJTUlURUQsCi1AQCAtMjg3LDcgKzMxMiw3IEBAIHBo b3Rvc19xdWVyeV9idWlsZGVyX2dsb2JhbF9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRl ICpzdGF0ZSwKLSAgIFBob3Rvc1F1ZXJ5ICpxdWVyeTsKLSAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNw YXJxbCA9IE5VTEw7Ci0gCi0tICBzcGFycWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAo c3RhdGUsIFRSVUUsIGZsYWdzLCBvZmZzZXRfY250cmxyKTsKLSsgIHNwYXJxbCA9IHBob3Rvc19x dWVyeV9idWlsZGVyX3F1ZXJ5IChzdGF0ZSwgTlVMTCwgZmxhZ3MsIG9mZnNldF9jbnRybHIpOwot ICAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChzdGF0ZSwgc3BhcnFsKTsKLSAKLSAgIHJldHVy biBxdWVyeTsKLUBAIC0zMTYsMTAgKzM0MSwxOSBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9zZXRf Y29sbGVjdGlvbl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwKLSAgIFBo b3Rvc1F1ZXJ5ICpxdWVyeTsKLSAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9IE5VTEw7Ci0g Ci0tICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCIlcyB7IDwlcz4gbmllOmlzUGFydE9mIDwl cz4gfSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcgPyAiSU5TRVJUIiA6 ICJERUxFVEUiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtX3VybiwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbl91cm4pOwotKyAgaWYgKHNldHRpbmcp Ci0rICAgIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIklOU0VSVCBEQVRBIHsgIgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIgIEdSQVBIIHRyYWNrZXI6UGljdHVyZXMgeyIKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIDwlcz4gYSBuaWU6RGF0YU9iamVjdCAs IG5tbTpQaG90byA7ICIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgbmll OmlzUGFydE9mIDwlcz4gIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIH0iCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIn0iLCBpdGVtX3VybiwgY29sbGVjdGlvbl91 cm4pOwotKyAgZWxzZQotKyAgICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJERUxFVEUgREFU QSB7ICIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICBHUkFQSCB0cmFja2VyOlBp Y3R1cmVzIHsiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICA8JXM+IG5pZTpp c1BhcnRPZiA8JXM+ICIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICB9IgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ9IiwgaXRlbV91cm4sIGNvbGxlY3Rpb25fdXJu KTsKLSAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoc3RhdGUsIHNwYXJxbCk7Ci0gCi0gICBy ZXR1cm4gcXVlcnk7Ci1AQCAtMzI5LDE3ICszNjMsMTQgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJf c2V0X2NvbGxlY3Rpb25fcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCi0g UGhvdG9zUXVlcnkgKgotIHBob3Rvc19xdWVyeV9idWlsZGVyX3NpbmdsZV9xdWVyeSAoUGhvdG9z U2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgZ2ludCBmbGFncywgY29uc3QgZ2NoYXIgKnJlc291 cmNlKQotIHsKLS0gIGdfYXV0b3B0ciAoR1JlZ2V4KSByZWdleCA9IE5VTEw7Ci0gICBQaG90b3NR dWVyeSAqcXVlcnk7Ci0tICBnX2F1dG9mcmVlIGdjaGFyICpyZXBsYWNlbWVudCA9IE5VTEw7Ci0g ICBnX2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBOVUxMOwotLSAgZ19hdXRvZnJlZSBnY2hhciAq dG1wID0gTlVMTDsKLSsgIGdfYXV0b2ZyZWUgZ2NoYXIgKnZhbHVlcyA9IE5VTEw7Ci0rCi0rICB2 YWx1ZXMgPSBnX3N0cmR1cF9wcmludGYgKCJWQUxVRVMgP3VybiB7IDwlcz4gfSIsIHJlc291cmNl KTsKLSAKLS0gIHRtcCA9IHBob3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChzdGF0ZSwgRkFMU0Us IGZsYWdzLCBOVUxMKTsKLSsgIHNwYXJxbCA9IHBob3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChz dGF0ZSwgdmFsdWVzLCBmbGFncywgTlVMTCk7Ci0gCi0tICByZWdleCA9IGdfcmVnZXhfbmV3ICgi XFw/dXJuIiwgMCwgMCwgTlVMTCk7Ci0tICByZXBsYWNlbWVudCA9IGdfc3RyY29uY2F0ICgiPCIs IHJlc291cmNlLCAiPiIsIE5VTEwpOwotLSAgc3BhcnFsID0gZ19yZWdleF9yZXBsYWNlIChyZWdl eCwgdG1wLCAtMSwgMCwgcmVwbGFjZW1lbnQsIDAsIE5VTEwpOwotICAgcXVlcnkgPSBwaG90b3Nf cXVlcnlfbmV3IChzdGF0ZSwgc3BhcnFsKTsKLSAKLSAgIHJldHVybiBxdWVyeTsKLUBAIC0zNjAs NyArMzkxLDE0IEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX3VwZGF0ZV9tdGltZV9xdWVyeSAoUGhv dG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgY29uc3QKLSAgIHR2LnR2X3VzZWMgPSAwOwot ICAgdGltZSA9IGdfdGltZV92YWxfdG9faXNvODYwMSAoJnR2KTsKLSAKLS0gIHNwYXJxbCA9IGdf c3RyZHVwX3ByaW50ZiAoIklOU0VSVCBPUiBSRVBMQUNFIHsgPCVzPiBuaWU6Y29udGVudExhc3RN b2RpZmllZCAnJXMnIH0iLCByZXNvdXJjZSwgdGltZSk7Ci0rICBzcGFycWwgPSBnX3N0cmR1cF9w cmludGYgKCJXSVRIIHRyYWNrZXI6UGljdHVyZXMgIgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiREVMRVRFIHsgPCVzPiBuaWU6Y29udGVudExhc3RNb2RpZmllZCA/dGltZSB9ICIKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIklOU0VSVCB7ICIKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIiAgPCVzPiBhIG5tbTpQaG90byA7ICIKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIiAgICBuaWU6Y29udGVudExhc3RNb2RpZmllZCAnJXMnICIKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIn0iCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXSEVS RSB7IDwlcz4gbmllOmNvbnRlbnRMYXN0TW9kaWZpZWQgP3RpbWUgfSIsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlc291cmNlLCByZXNvdXJjZSwgdGltZSwgcmVzb3VyY2UpOwotICAg cXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChzdGF0ZSwgc3BhcnFsKTsKLSAKLSAgIHJldHVybiBx dWVyeTsKLWRpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXNlYXJjaC1jb250ZXh0LmMgYi9zcmMvcGhv dG9zLXNlYXJjaC1jb250ZXh0LmMKLWluZGV4IDRiNTAzNzk4Li42Zjg2OTRiYyAxMDA2NDQKLS0t LSBhL3NyYy9waG90b3Mtc2VhcmNoLWNvbnRleHQuYwotKysrIGIvc3JjL3Bob3Rvcy1zZWFyY2gt Y29udGV4dC5jCi1AQCAtMzEsNiArMzEsNyBAQAotICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLW1h dGNoLW1hbmFnZXIuaCIKLSAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC10eXBlLW1hbmFnZXIuaCIK LSAjaW5jbHVkZSAicGhvdG9zLXNvdXJjZS1tYW5hZ2VyLmgiCi0rI2luY2x1ZGUgInBob3Rvcy10 cmFja2VyLXF1ZXVlLmgiCi0gCi0gCi0gR19ERUZJTkVfSU5URVJGQUNFIChQaG90b3NTZWFyY2hD b250ZXh0LCBwaG90b3Nfc2VhcmNoX2NvbnRleHQsIEdfVFlQRV9PQkpFQ1QpOwotQEAgLTU0LDYg KzU1LDcgQEAgcGhvdG9zX3NlYXJjaF9jb250ZXh0X3N0YXRlX25ldyAoUGhvdG9zU2VhcmNoQ29u dGV4dCAqc2VsZikKLSAgIHN0YXRlLT5zcmNoX2NudHJsciA9IHBob3Rvc19zZWFyY2hfY29udHJv bGxlcl9uZXcgKCk7Ci0gICBzdGF0ZS0+c3JjaF9tdGNoX21uZ3IgPSBwaG90b3Nfc2VhcmNoX21h dGNoX21hbmFnZXJfbmV3IChzdGF0ZS0+c3JjaF9jbnRybHIpOwotICAgc3RhdGUtPnNyY2hfdHlw X21uZ3IgPSBwaG90b3Nfc2VhcmNoX3R5cGVfbWFuYWdlcl9uZXcgKCk7Ci0rICBzdGF0ZS0+cXVl dWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBfc2luZ2xldG9uIChOVUxMLCBOVUxMKTsKLSAK LSAgIHJldHVybiBzdGF0ZTsKLSB9Ci1AQCAtNjgsNiArNzAsNyBAQCBwaG90b3Nfc2VhcmNoX2Nv bnRleHRfc3RhdGVfZnJlZSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSkKLSAgIGdf b2JqZWN0X3VucmVmIChzdGF0ZS0+c3JjaF9tdGNoX21uZ3IpOwotICAgZ19vYmplY3RfdW5yZWYg KHN0YXRlLT5zcmNoX3R5cF9tbmdyKTsKLSAgIGdfb2JqZWN0X3VucmVmIChzdGF0ZS0+c3JjaF9j bnRybHIpOwotKyAgZ19jbGVhcl9vYmplY3QgKCZzdGF0ZS0+cXVldWUpOwotICAgZ19zbGljZV9m cmVlIChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUsIHN0YXRlKTsKLSB9Ci0gCi1kaWZmIC0tZ2l0 IGEvc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4dC5oIGIvc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4 dC5oCi1pbmRleCAyYWY2Y2Y5Ni4uNWExOGQzODYgMTAwNjQ0Ci0tLS0gYS9zcmMvcGhvdG9zLXNl YXJjaC1jb250ZXh0LmgKLSsrKyBiL3NyYy9waG90b3Mtc2VhcmNoLWNvbnRleHQuaAotQEAgLTQx LDYgKzQxLDcgQEAgc3RydWN0IF9QaG90b3NTZWFyY2hDb250ZXh0U3RhdGUKLSAgIGdwb2ludGVy IHNyY2hfdHlwX21uZ3I7Ci0gICBncG9pbnRlciBvZmZzZXRfY250cmxyOwotICAgZ3BvaW50ZXIg c3JjaF9jbnRybHI7Ci0rICBncG9pbnRlciBxdWV1ZTsKLSB9OwotIAotIFBob3Rvc1NlYXJjaENv bnRleHRTdGF0ZSAgICAgICpwaG90b3Nfc2VhcmNoX2NvbnRleHRfc3RhdGVfbmV3ICAgICAgKFBo b3Rvc1NlYXJjaENvbnRleHQgKnNlbGYpOwotZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mtc2VhcmNo LW1hdGNoLW1hbmFnZXIuYyBiL3NyYy9waG90b3Mtc2VhcmNoLW1hdGNoLW1hbmFnZXIuYwotaW5k ZXggZTZkYzQyOWEuLjJiYTFmZDBmIDEwMDY0NAotLS0tIGEvc3JjL3Bob3Rvcy1zZWFyY2gtbWF0 Y2gtbWFuYWdlci5jCi0rKysgYi9zcmMvcGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmMKLUBA IC0xNDgsNyArMTQ4LDcgQEAgcGhvdG9zX3NlYXJjaF9tYXRjaF9tYW5hZ2VyX2luaXQgKFBob3Rv c1NlYXJjaE1hdGNoTWFuYWdlciAqc2VsZikKLSAgICAgICAgICAgICAgICAgICAiICB0cmFja2Vy OmNhc2UtZm9sZCAodHJhY2tlcjpjb2FsZXNjZSAobmNvOmZ1bGxuYW1lICg/Y3JlYXRvciksIG5j bzpmdWxsbmFtZSg/cHVibGlzaGVyKSkpLCIKLSAgICAgICAgICAgICAgICAgICAiICBcIiVzXCIp IjsKLSAgIHRpdGxlX2ZpbHRlciA9ICJmbjpjb250YWlucyAoIgotLSAgICAgICAgICAgICAgICAg IiAgdHJhY2tlcjpjYXNlLWZvbGQgKHRyYWNrZXI6Y29hbGVzY2UgKG5pZTp0aXRsZSAoP3Vybiks IG5mbzpmaWxlTmFtZSg/dXJuKSkpLCIKLSsgICAgICAgICAgICAgICAgICIgIHRyYWNrZXI6Y2Fz ZS1mb2xkICh0cmFja2VyOmNvYWxlc2NlIChuaWU6dGl0bGUgKD91cm4pLCBuZm86ZmlsZU5hbWUo P2ZpbGUpKSksIgotICAgICAgICAgICAgICAgICAgIiAgXCIlc1wiKSI7Ci0gCi0gICBzZWFyY2hf bWF0Y2ggPSBwaG90b3Nfc2VhcmNoX21hdGNoX25ldyAoUEhPVE9TX1NFQVJDSF9NQVRDSF9TVE9D S19BTEwsCi1kaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1zb3VyY2UuYyBiL3NyYy9waG90b3Mtc291 cmNlLmMKLWluZGV4IGRiNmYyZGU5Li41MjE5NjUyYyAxMDA2NDQKLS0tLSBhL3NyYy9waG90b3Mt c291cmNlLmMKLSsrKyBiL3NyYy9waG90b3Mtc291cmNlLmMKLUBAIC02Miw3ICs2Miw3IEBAIEdf REVGSU5FX1RZUEVfV0lUSF9DT0RFIChQaG90b3NTb3VyY2UsIHBob3Rvc19zb3VyY2UsIEdfVFlQ RV9PQkpFQ1QsCi0gRFpMX0RFRklORV9DT1VOVEVSIChpbnN0YW5jZXMsICJQaG90b3NTb3VyY2Ui LCAiSW5zdGFuY2VzIiwgIk51bWJlciBvZiBQaG90b3NTb3VyY2UgaW5zdGFuY2VzIikKLSAKLSAK LS1zdGF0aWMgY29uc3QgZ2NoYXIgKlRSQUNLRVJfU0NIRU1BID0gIm9yZy5mcmVlZGVza3RvcC5U cmFja2VyLk1pbmVyLkZpbGVzIjsKLStzdGF0aWMgY29uc3QgZ2NoYXIgKlRSQUNLRVJfU0NIRU1B ID0gIm9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcyI7Ci0gc3RhdGljIGNvbnN0 IGdjaGFyICpUUkFDS0VSX0tFWV9SRUNVUlNJVkVfRElSRUNUT1JJRVMgPSAiaW5kZXgtcmVjdXJz aXZlLWRpcmVjdG9yaWVzIjsKLSAKLSAKLUBAIC05NCw3ICs5NCw3IEBAIHBob3Rvc19zb3VyY2Vf YnVpbGRfZmlsdGVyX2xvY2FsICh2b2lkKQotICAgICAgICAgY29udGludWU7Ci0gCi0gICAgICAg dHJhY2tlcl91cmkgPSBwaG90b3NfdXRpbHNfY29udmVydF9wYXRoX3RvX3VyaSAodHJhY2tlcl9k aXJzW2ldKTsKLS0gICAgICBnX3N0cmluZ19hcHBlbmRfcHJpbnRmICh0cmFja2VyX2ZpbHRlciwg IiB8fCBmbjpjb250YWlucyAobmllOnVybCAoP3VybiksICclcycpIiwgdHJhY2tlcl91cmkpOwot KyAgICAgIGdfc3RyaW5nX2FwcGVuZF9wcmludGYgKHRyYWNrZXJfZmlsdGVyLCAiIHx8IGZuOmNv bnRhaW5zIChuaWU6aXNTdG9yZWRBcyAoP3VybiksICclcycpIiwgdHJhY2tlcl91cmkpOwotICAg ICB9Ci0gCi0gICBwYXRoID0gZ19nZXRfdXNlcl9zcGVjaWFsX2RpciAoR19VU0VSX0RJUkVDVE9S WV9ERVNLVE9QKTsKLUBAIC0xMDksMTEgKzEwOSwxMSBAQCBwaG90b3Nfc291cmNlX2J1aWxkX2Zp bHRlcl9sb2NhbCAodm9pZCkKLSAgIGV4cG9ydF9wYXRoID0gZ19idWlsZF9maWxlbmFtZSAocGF0 aCwgUEhPVE9TX0VYUE9SVF9TVUJQQVRILCBOVUxMKTsKLSAgIGV4cG9ydF91cmkgPSBwaG90b3Nf dXRpbHNfY29udmVydF9wYXRoX3RvX3VyaSAoZXhwb3J0X3BhdGgpOwotIAotLSAgZmlsdGVyID0g Z19zdHJkdXBfcHJpbnRmICgiKCgoZm46Y29udGFpbnMgKG5pZTp1cmwgKD91cm4pLCAnJXMnKSIK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgIHx8IGZuOmNvbnRhaW5zIChuaWU6dXJs ICg/dXJuKSwgJyVzJykiCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICB8fCBmbjpj b250YWlucyAobmllOnVybCAoP3VybiksICclcycpIgotKyAgZmlsdGVyID0gZ19zdHJkdXBfcHJp bnRmICgiKCgoZm46Y29udGFpbnMgKG5pZTppc1N0b3JlZEFzICg/dXJuKSwgJyVzJykiCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIgICB8fCBmbjpjb250YWlucyAobmllOmlzU3RvcmVk QXMgKD91cm4pLCAnJXMnKSIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgIHx8IGZu OmNvbnRhaW5zIChuaWU6aXNTdG9yZWRBcyAoP3VybiksICclcycpIgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiICAgJXMpIgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAm JiAhZm46Y29udGFpbnMgKG5pZTp1cmwgKD91cm4pLCAnJXMnKSkiCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICIgICYmICFmbjpjb250YWlucyAobmllOmlzU3RvcmVkQXMgKD91cm4pLCAn JXMnKSkiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgfHwgZm46c3RhcnRzLXdpdGgg KG5hbzppZGVudGlmaWVyICg/dXJuKSwgJyVzJykiCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICIgfHwgKD91cm4gPSBuZm86aW1hZ2UtY2F0ZWdvcnktc2NyZWVuc2hvdCkpIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGVza3RvcF91cmksCi1AQCAtMTQ2LDcgKzE0Niw3IEBA IHBob3Rvc19zb3VyY2VfYnVpbGRfZmlsdGVyX3Jlc291cmNlIChQaG90b3NTb3VyY2UgKnNlbGYp Ci0gCi0gICAgICAgcm9vdCA9IGdfbW91bnRfZ2V0X3Jvb3QgKHNlbGYtPm1vdW50KTsKLSAgICAg ICB1cmkgPSBnX2ZpbGVfZ2V0X3VyaSAocm9vdCk7Ci0tICAgICAgZmlsdGVyID0gZ19zdHJkdXBf cHJpbnRmICgiKGZuOnN0YXJ0cy13aXRoIChuaWU6dXJsICg/dXJuKSwgJyVzJykpIiwgdXJpKTsK LSsgICAgICBmaWx0ZXIgPSBnX3N0cmR1cF9wcmludGYgKCIoZm46c3RhcnRzLXdpdGggKG5pZTpp c1N0b3JlZEFzICg/dXJuKSwgJyVzJykpIiwgdXJpKTsKLSAgICAgfQotICAgZWxzZQotICAgICB7 Ci1kaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5jIGIvc3JjL3Bo b3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5jCi1kZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKLWlu ZGV4IGQ1Yzc0ZWJjLi4wMDAwMDAwMAotLS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1l dmVudC5jCi0rKysgL2Rldi9udWxsCi1AQCAtMSwxMzYgKzAsMCBAQAotLS8qCi0tICogUGhvdG9z IC0gYWNjZXNzLCBvcmdhbml6ZSBhbmQgc2hhcmUgeW91ciBwaG90b3Mgb24gR05PTUUKLS0gKiBD b3B5cmlnaHQgwqkgMjAxMiDigJMgMjAxOSBSZWQgSGF0LCBJbmMuCi0tICoKLS0gKiBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQotLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0tICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLS0gKiAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgotLSAqCi0tICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0tICogYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLS0gKiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl Ci0tICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLS0gKgot LSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCi0tICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0tICovCi0tCi0tLyogQmFzZWQgb24gY29k ZSBmcm9tOgotLSAqICAgKyBEb2N1bWVudHMKLS0gKi8KLS0KLS0KLS0jaW5jbHVkZSAiY29uZmln LmgiCi0tCi0tI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oIgotLQotLQot LXN0cnVjdCBfUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50Ci0tewotLSAgUGhvdG9zVHJhY2tlckNo YW5nZUV2ZW50VHlwZSB0eXBlOwotLSAgZ2NoYXIgKnByZWRpY2F0ZTsKLS0gIGdjaGFyICp1cm47 Ci0tICBnaW50MzIgcHJlZGljYXRlX2lkOwotLSAgZ2ludDMyIHVybl9pZDsKLS19OwotLQotLQot LXN0YXRpYyBjb25zdCBnY2hhciAqUkRGX1RZUEUgPSAiaHR0cDovL3d3dy53My5vcmcvMTk5OS8w Mi8yMi1yZGYtc3ludGF4LW5zI3R5cGUiOwotLQotLQotLXZvaWQKLS1waG90b3NfdHJhY2tlcl9j aGFuZ2VfZXZlbnRfZnJlZSAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKQotLXsKLS0g IGdfZnJlZSAoc2VsZi0+cHJlZGljYXRlKTsKLS0gIGdfZnJlZSAoc2VsZi0+dXJuKTsKLS0gIGdf c2xpY2VfZnJlZSAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50LCBzZWxmKTsKLS19Ci0tCi0tCi0t UGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICoKLS1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRf bmV3IChnaW50MzIgdXJuX2lkLCBnaW50MzIgcHJlZGljYXRlX2lkLCBnYm9vbGVhbiBpc19kZWxl dGUpCi0tewotLSAgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmOwotLQotLSAgc2VsZiA9 IGdfc2xpY2VfbmV3MCAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50KTsKLS0gIHNlbGYtPnVybl9p ZCA9IHVybl9pZDsKLS0gIHNlbGYtPnByZWRpY2F0ZV9pZCA9IHByZWRpY2F0ZV9pZDsKLS0KLS0g IGlmIChpc19kZWxldGUpCi0tICAgIHNlbGYtPnR5cGUgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0Vf RVZFTlRfREVMRVRFRDsKLS0gIGVsc2UKLS0gICAgc2VsZi0+dHlwZSA9IFBIT1RPU19UUkFDS0VS X0NIQU5HRV9FVkVOVF9DUkVBVEVEOwotLQotLSAgcmV0dXJuIHNlbGY7Ci0tfQotLQotLQotLVBo b3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqCi0tcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2Nv cHkgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqZXZlbnQpCi0tewotLSAgUGhvdG9zVHJhY2tl ckNoYW5nZUV2ZW50ICpzZWxmOwotLQotLSAgc2VsZiA9IGdfc2xpY2VfbmV3MCAoUGhvdG9zVHJh Y2tlckNoYW5nZUV2ZW50KTsKLS0gIHNlbGYtPnR5cGUgPSBldmVudC0+dHlwZTsKLS0gIHNlbGYt PnByZWRpY2F0ZSA9IGdfc3RyZHVwIChldmVudC0+cHJlZGljYXRlKTsKLS0gIHNlbGYtPnVybiA9 IGdfc3RyZHVwIChldmVudC0+dXJuKTsKLS0gIHNlbGYtPnByZWRpY2F0ZV9pZCA9IGV2ZW50LT5w cmVkaWNhdGVfaWQ7Ci0tICBzZWxmLT51cm5faWQgPSBldmVudC0+dXJuX2lkOwotLQotLSAgcmV0 dXJuIHNlbGY7Ci0tfQotLQotLQotLVBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudFR5cGUKLS1waG90 b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3R5cGUgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVu dCAqc2VsZikKLS17Ci0tICByZXR1cm4gc2VsZi0+dHlwZTsKLS19Ci0tCi0tCi0tZ2ludDMyCi0t cGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF9wcmVkaWNhdGVfaWQgKFBob3Rvc1RyYWNr ZXJDaGFuZ2VFdmVudCAqc2VsZikKLS17Ci0tICByZXR1cm4gc2VsZi0+cHJlZGljYXRlX2lkOwot LX0KLS0KLS0KLS1jb25zdCBnY2hhciAqCi0tcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dl dF91cm4gKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZikKLS17Ci0tICByZXR1cm4gc2Vs Zi0+dXJuOwotLX0KLS0KLS0KLS1naW50MzIKLS1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRf Z2V0X3Vybl9pZCAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKQotLXsKLS0gIHJldHVy biBzZWxmLT51cm5faWQ7Ci0tfQotLQotLQotLXZvaWQKLS1waG90b3NfdHJhY2tlcl9jaGFuZ2Vf ZXZlbnRfbWVyZ2UgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZiwgUGhvdG9zVHJhY2tl ckNoYW5nZUV2ZW50ICpldmVudCkKLS17Ci0tICBnX3JldHVybl9pZl9mYWlsIChnX3N0cmNtcDAg KHNlbGYtPnVybiwgZXZlbnQtPnVybikgPT0gMCk7Ci0tCi0tICBpZiAoZXZlbnQtPnR5cGUgPT0g UEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0RFTEVURUQgfHwgZXZlbnQtPnR5cGUgPT0gUEhP VE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0NSRUFURUQpCi0tICAgIHNlbGYtPnR5cGUgPSBldmVu dC0+dHlwZTsKLS19Ci0tCi0tCi0tdm9pZAotLXBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9z ZXRfcmVzb2x2ZWRfdmFsdWVzIChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKnNlbGYsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFy ICp1cm4sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGdjaGFyICpwcmVkaWNhdGUpCi0tewotLSAgZ19yZXR1cm5faWZfZmFpbCAoc2VsZi0+ cHJlZGljYXRlID09IE5VTEwpOwotLSAgZ19yZXR1cm5faWZfZmFpbCAoc2VsZi0+dXJuID09IE5V TEwpOwotLQotLSAgc2VsZi0+dXJuID0gZ19zdHJkdXAgKHVybik7Ci0tICBzZWxmLT5wcmVkaWNh dGUgPSBnX3N0cmR1cCAocHJlZGljYXRlKTsKLS0KLS0gIGlmIChnX3N0cmNtcDAgKHByZWRpY2F0 ZSwgUkRGX1RZUEUpICE9IDApCi0tICAgIHNlbGYtPnR5cGUgPSBQSE9UT1NfVFJBQ0tFUl9DSEFO R0VfRVZFTlRfQ0hBTkdFRDsKLS19Ci1kaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLWNo YW5nZS1ldmVudC5oIGIvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oCi1kZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IGVlZTRmNDBjLi4wMDAwMDAwMAotLS0tIGEvc3JjL3Bo b3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oCi0rKysgL2Rldi9udWxsCi1AQCAtMSw2NCArMCww IEBACi0tLyoKLS0gKiBQaG90b3MgLSBhY2Nlc3MsIG9yZ2FuaXplIGFuZCBzaGFyZSB5b3VyIHBo b3RvcyBvbiBHTk9NRQotLSAqIENvcHlyaWdodCDCqSAyMDEyIOKAkyAyMDE5IFJlZCBIYXQsIElu Yy4KLS0gKgotLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0tICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLS0gKiB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgot LSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0tICoKLS0gKiBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK LS0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgotLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKLS0gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgotLSAqCi0tICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLS0gKiBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLS0gKi8K LS0KLS0vKiBCYXNlZCBvbiBjb2RlIGZyb206Ci0tICogICArIERvY3VtZW50cwotLSAqLwotLQot LSNpZm5kZWYgUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0gKLS0jZGVmaW5lIFBIT1RPU19U UkFDS0VSX0NIQU5HRV9FVkVOVF9ICi0tCi0tI2luY2x1ZGUgPGdsaWIuaD4KLS0KLS1HX0JFR0lO X0RFQ0xTCi0tCi0tdHlwZWRlZiBlbnVtCi0tewotLSAgUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VW RU5UX0NIQU5HRUQsCi0tICBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfQ1JFQVRFRCwKLS0g IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9ERUxFVEVECi0tfSBQaG90b3NUcmFja2VyQ2hh bmdlRXZlbnRUeXBlOwotLQotLXR5cGVkZWYgc3RydWN0IF9QaG90b3NUcmFja2VyQ2hhbmdlRXZl bnQgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50OwotLQotLVBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVu dCAgKnBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9uZXcgICAgICAgIChnaW50MzIgdXJuX2lk LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnaW50MzIgcHJlZGljYXRlX2lkLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBp c19kZWxldGUpOwotLQotLVBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAgKnBob3Rvc190cmFja2Vy X2NoYW5nZV9ldmVudF9jb3B5ICAgICAgIChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKmV2ZW50 KTsKLS0KLS12b2lkICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2Vf ZXZlbnRfZnJlZSAgICAgICAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKTsKLS0KLS1Q aG90b3NUcmFja2VyQ2hhbmdlRXZlbnRUeXBlIHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9n ZXRfdHlwZSAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKTsKLS0KLS1naW50MzIgICAg ICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3ByZWRpY2F0 ZV9pZCAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKTsKLS0KLS1jb25zdCBnY2hhciAg ICAgICAgICAgICAgICpwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3VybiAgICAoUGhv dG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmKTsKLS0KLS1naW50MzIgICAgICAgICAgICAgICAg ICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3Vybl9pZCAoUGhvdG9zVHJhY2tl ckNoYW5nZUV2ZW50ICpzZWxmKTsKLS0KLS12b2lkICAgICAgICAgICAgICAgICAgICAgICBwaG90 b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfbWVyZ2UgICAgICAoUGhvdG9zVHJhY2tlckNoYW5nZUV2 ZW50ICpzZWxmLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKmV2ZW50KTsK LS0KLS12b2lkICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZl bnRfc2V0X3Jlc29sdmVkX3ZhbHVlcyAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqdXJuLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBnY2hhciAqcHJlZGljYXRlKTsKLS0KLS1HX0VORF9ERUNMUwotLQotLSNlbmRpZiAv KiBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfSCAqLwotZGlmZiAtLWdpdCBhL3NyYy9waG90 b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5jIGIvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1t b25pdG9yLmMKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggNDRjOWZmZTcuLjAwMDAw MDAwCi0tLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuYwotKysrIC9kZXYv bnVsbAotQEAgLTEsNDY4ICswLDAgQEAKLS0vKgotLSAqIFBob3RvcyAtIGFjY2Vzcywgb3JnYW5p emUgYW5kIHNoYXJlIHlvdXIgcGhvdG9zIG9uIEdOT01FCi0tICogQ29weXJpZ2h0IMKpIDIwMTIg 4oCTIDIwMTkgUmVkIEhhdCwgSW5jLgotLSAqCi0tICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLS0gKiBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQotLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCi0tICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KLS0gKgotLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAotLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0tICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotLSAqIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0tICoKLS0gKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotLSAq IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgotLSAqLwotLQotLS8qIEJhc2VkIG9uIGNvZGUgZnJvbToKLS0gKiAgICsg RG9jdW1lbnRzCi0tICovCi0tCi0tCi0tI2luY2x1ZGUgImNvbmZpZy5oIgotLQotLSNpbmNsdWRl IDxnbGliLmg+Ci0tI2luY2x1ZGUgPHRyYWNrZXItc3BhcnFsLmg+Ci0tCi0tI2luY2x1ZGUgInBo b3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oIgotLSNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1j aGFuZ2UtbW9uaXRvci5oIgotLSNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1xdWV1ZS5oIgotLSNp bmNsdWRlICJwaG90b3MtdHJhY2tlci1yZXNvdXJjZXMuaCIKLS0jaW5jbHVkZSAicGhvdG9zLXF1 ZXJ5LmgiCi0tCi0tCi0tc3RydWN0IF9QaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvcgotLXsKLS0g IEdPYmplY3QgcGFyZW50X2luc3RhbmNlOwotLSAgR0hhc2hUYWJsZSAqcGVuZGluZ19jaGFuZ2Vz OwotLSAgR0hhc2hUYWJsZSAqdW5yZXNvbHZlZF9pZHM7Ci0tICBHUXVldWUgKnBlbmRpbmdfZXZl bnRzOwotLSAgUGhvdG9zVHJhY2tlclF1ZXVlICpxdWV1ZTsKLS0gIFRyYWNrZXJSZXNvdXJjZXMg KnJlc291cmNlX3NlcnZpY2U7Ci0tICBndWludCBvdXRzdGFuZGluZ19vcHM7Ci0tICBndWludCBw ZW5kaW5nX2V2ZW50c19pZDsKLS19OwotLQotLWVudW0KLS17Ci0tICBDSEFOR0VTX1BFTkRJTkcs Ci0tICBMQVNUX1NJR05BTAotLX07Ci0tCi0tc3RhdGljIGd1aW50IHNpZ25hbHNbTEFTVF9TSUdO QUxdID0geyAwIH07Ci0tCi0tc3RhdGljIHZvaWQgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0 b3JfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRhYmxlSWZhY2UgKmlmYWNlKTsKLS0KLS0KLS1H X0RFRklORV9UWVBFX0VYVEVOREVEIChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciwgcGhvdG9z X3RyYWNrZXJfY2hhbmdlX21vbml0b3IsIEdfVFlQRV9PQkpFQ1QsIDAsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFIChHX1RZUEVfSU5JVEFCTEUsIHBob3Rv c190cmFja2VyX2NoYW5nZV9tb25pdG9yX2luaXRhYmxlX2lmYWNlX2luaXQpKTsKLS0KLS0KLS1l bnVtCi0tewotLSAgQ0hBTkdFX01PTklUT1JfVElNRU9VVCA9IDUwMCwgLyogbXMgKi8KLS0gIENI QU5HRV9NT05JVE9SX01BWF9JVEVNUyA9IDUwMAotLX07Ci0tCi0tCi0tdHlwZWRlZiBzdHJ1Y3Qg X1Bob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhIFBob3Rvc1RyYWNrZXJDaGFuZ2VN b25pdG9yUXVlcnlEYXRhOwotLXR5cGVkZWYgc3RydWN0IF9UcmFja2VyUmVzb3VyY2VzRXZlbnQg VHJhY2tlclJlc291cmNlc0V2ZW50OwotLQotLXN0cnVjdCBfUGhvdG9zVHJhY2tlckNoYW5nZU1v bml0b3JRdWVyeURhdGEKLS17Ci0tICBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZjsK LS0gIEdIYXNoVGFibGUgKmlkX3RhYmxlOwotLSAgR1F1ZXVlICpldmVudHM7Ci0tfTsKLS0KLS1z dHJ1Y3QgX1RyYWNrZXJSZXNvdXJjZXNFdmVudAotLXsKLS0gIGdpbnQzMiBncmFwaDsKLS0gIGdp bnQzMiBzdWJqZWN0OwotLSAgZ2ludDMyIHByZWRpY2F0ZTsKLS0gIGdpbnQzMiBvYmplY3Q7Ci0t fTsKLS0KLS0KLS1zdGF0aWMgdm9pZAotLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1 ZXJ5X2RhdGFfZnJlZSAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKmRhdGEp Ci0tewotLSAgZ19jbGVhcl9vYmplY3QgKCZkYXRhLT5zZWxmKTsKLS0KLS0gIGlmIChkYXRhLT5p ZF90YWJsZSAhPSBOVUxMKQotLSAgICBnX2hhc2hfdGFibGVfdW5yZWYgKGRhdGEtPmlkX3RhYmxl KTsKLS0KLS0gIGlmIChkYXRhLT5ldmVudHMgIT0gTlVMTCkKLS0gICAgZ19xdWV1ZV9mcmVlX2Z1 bGwgKGRhdGEtPmV2ZW50cywgKEdEZXN0cm95Tm90aWZ5KSBwaG90b3NfdHJhY2tlcl9jaGFuZ2Vf ZXZlbnRfZnJlZSk7Ci0tCi0tICBnX3NsaWNlX2ZyZWUgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25p dG9yUXVlcnlEYXRhLCBkYXRhKTsKLS19Ci0tCi0tCi0tc3RhdGljIFBob3Rvc1RyYWNrZXJDaGFu Z2VNb25pdG9yUXVlcnlEYXRhICoKLS1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9xdWVy eV9kYXRhX25ldyAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdIYXNoVGFibGUgKmlkX3RhYmxl LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUXVldWUg KmV2ZW50cykKLS17Ci0tICBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSAqZGF0 YTsKLS0KLS0gIGRhdGEgPSBnX3NsaWNlX25ldzAgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9y UXVlcnlEYXRhKTsKLS0gIGRhdGEtPnNlbGYgPSBnX29iamVjdF9yZWYgKHNlbGYpOwotLSAgZGF0 YS0+aWRfdGFibGUgPSBpZF90YWJsZTsKLS0gIGRhdGEtPmV2ZW50cyA9IGV2ZW50czsKLS0KLS0g IHJldHVybiBkYXRhOwotLX0KLS0KLS0KLS1zdGF0aWMgdm9pZAotLXBob3Rvc190cmFja2VyX2No YW5nZV9tb25pdG9yX2FkZF9ldmVudCAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYs IFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqY2hhbmdlX2V2ZW50KQotLXsKLS0gIFBob3Rvc1Ry YWNrZXJDaGFuZ2VFdmVudCAqb2xkX2NoYW5nZV9ldmVudDsKLS0gIGNvbnN0IGdjaGFyICp1cm47 Ci0tCi0tICB1cm4gPSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3VybiAoY2hhbmdl X2V2ZW50KTsKLS0gIG9sZF9jaGFuZ2VfZXZlbnQgPSAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50 ICopIGdfaGFzaF90YWJsZV9sb29rdXAgKHNlbGYtPnBlbmRpbmdfY2hhbmdlcywgdXJuKTsKLS0K LS0gIGlmIChvbGRfY2hhbmdlX2V2ZW50ICE9IE5VTEwpCi0tICAgIHBob3Rvc190cmFja2VyX2No YW5nZV9ldmVudF9tZXJnZSAob2xkX2NoYW5nZV9ldmVudCwgY2hhbmdlX2V2ZW50KTsKLS0gIGVs c2UKLS0gICAgZ19oYXNoX3RhYmxlX2luc2VydCAoc2VsZi0+cGVuZGluZ19jaGFuZ2VzLCBnX3N0 cmR1cCAodXJuKSwgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2NvcHkgKGNoYW5nZV9ldmVu dCkpOwotLX0KLS0KLS0KLS1zdGF0aWMgdm9pZAotLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25p dG9yX3JlbW92ZV90aW1lb3V0IChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZikKLS17 Ci0tICBpZiAoc2VsZi0+cGVuZGluZ19ldmVudHNfaWQgIT0gMCkKLS0gICAgewotLSAgICAgIGdf c291cmNlX3JlbW92ZSAoc2VsZi0+cGVuZGluZ19ldmVudHNfaWQpOwotLSAgICAgIHNlbGYtPnBl bmRpbmdfZXZlbnRzX2lkID0gMDsKLS0gICAgfQotLX0KLS0KLS0KLS1zdGF0aWMgdm9pZAotLXBo b3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3NlbmRfZXZlbnRzIChQaG90b3NUcmFja2VyQ2hh bmdlTW9uaXRvciAqc2VsZiwgR0hhc2hUYWJsZSAqaWRfdGFibGUsIEdRdWV1ZSAqZXZlbnRzKQot LXsKLS0gIEdMaXN0ICpsOwotLQotLSAgZm9yIChsID0gZXZlbnRzLT5oZWFkOyBsICE9IE5VTEw7 IGwgPSBsLT5uZXh0KQotLSAgICB7Ci0tICAgICAgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpj aGFuZ2VfZXZlbnQgPSAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICopIGwtPmRhdGE7Ci0tICAg ICAgY29uc3QgZ2NoYXIgKnByZWRpY2F0ZTsKLS0gICAgICBjb25zdCBnY2hhciAqdXJuOwotLSAg ICAgIGdpbnQzMiBwcmVkaWNhdGVfaWQ7Ci0tICAgICAgZ2ludDMyIHVybl9pZDsKLS0KLS0gICAg ICBwcmVkaWNhdGVfaWQgPSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3ByZWRpY2F0 ZV9pZCAoY2hhbmdlX2V2ZW50KTsKLS0gICAgICB1cm5faWQgPSBwaG90b3NfdHJhY2tlcl9jaGFu Z2VfZXZlbnRfZ2V0X3Vybl9pZCAoY2hhbmdlX2V2ZW50KTsKLS0KLS0gICAgICBwcmVkaWNhdGUg PSAoZ2NoYXIgKikgZ19oYXNoX3RhYmxlX2xvb2t1cCAoaWRfdGFibGUsIEdJTlRfVE9fUE9JTlRF UiAocHJlZGljYXRlX2lkKSk7Ci0tICAgICAgaWYgKEdfVU5MSUtFTFkgKHByZWRpY2F0ZSA9PSBO VUxMKSkKLS0gICAgICAgIGNvbnRpbnVlOwotLQotLSAgICAgIHVybiA9IChnY2hhciAqKSBnX2hh c2hfdGFibGVfbG9va3VwIChpZF90YWJsZSwgR0lOVF9UT19QT0lOVEVSICh1cm5faWQpKTsKLS0g ICAgICBpZiAoR19VTkxJS0VMWSAodXJuID09IE5VTEwpKQotLSAgICAgICAgY29udGludWU7Ci0t Ci0tICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X3NldF9yZXNvbHZlZF92YWx1ZXMg KGNoYW5nZV9ldmVudCwgdXJuLCBwcmVkaWNhdGUpOwotLSAgICAgIHBob3Rvc190cmFja2VyX2No YW5nZV9tb25pdG9yX2FkZF9ldmVudCAoc2VsZiwgY2hhbmdlX2V2ZW50KTsKLS0gICAgfQotLQot LSAgZ19zaWduYWxfZW1pdCAoc2VsZiwgc2lnbmFsc1tDSEFOR0VTX1BFTkRJTkddLCAwLCBzZWxm LT5wZW5kaW5nX2NoYW5nZXMpOwotLSAgZ19oYXNoX3RhYmxlX3JlbW92ZV9hbGwgKHNlbGYtPnBl bmRpbmdfY2hhbmdlcyk7Ci0tfQotLQotLQotLXN0YXRpYyB2b2lkCi0tcGhvdG9zX3RyYWNrZXJf Y2hhbmdlX21vbml0b3JfY3Vyc29yX25leHQgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3lu Y1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCi0tewotLSAgUGhvdG9zVHJhY2tlckNo YW5nZU1vbml0b3JRdWVyeURhdGEgKmRhdGEgPSAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JR dWVyeURhdGEgKikgdXNlcl9kYXRhOwotLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNl bGYgPSBkYXRhLT5zZWxmOwotLSAgVHJhY2tlclNwYXJxbEN1cnNvciAqY3Vyc29yID0gVFJBQ0tF Ul9TUEFSUUxfQ1VSU09SIChzb3VyY2Vfb2JqZWN0KTsKLS0gIEdIYXNoVGFibGVJdGVyIGl0ZXI7 Ci0tICBnYm9vbGVhbiB2YWxpZDsKLS0KLS0gIHsKLS0gICAgZ19hdXRvcHRyIChHRXJyb3IpIGVy cm9yID0gTlVMTDsKLS0KLS0gICAgdmFsaWQgPSB0cmFja2VyX3NwYXJxbF9jdXJzb3JfbmV4dF9m aW5pc2ggKGN1cnNvciwgcmVzLCAmZXJyb3IpOwotLSAgICBpZiAoZXJyb3IgIT0gTlVMTCkKLS0g ICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gcmVzb2x2ZSBpdGVtIFVSTnMgZm9yIGdyYXBoIGNo YW5nZXM6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOwotLSAgfQotLQotLSAgaWYgKHZhbGlkKQotLSAg ICB7Ci0tICAgICAgZ3VpbnQgaWR4OwotLQotLSAgICAgIGlkeCA9IDA7Ci0tICAgICAgZ19oYXNo X3RhYmxlX2l0ZXJfaW5pdCAoJml0ZXIsIGRhdGEtPmlkX3RhYmxlKTsKLS0gICAgICB3aGlsZSAo Z19oYXNoX3RhYmxlX2l0ZXJfbmV4dCAoJml0ZXIsIE5VTEwsIE5VTEwpKQotLSAgICAgICAgewot LSAgICAgICAgICBjb25zdCBnY2hhciAqc3RyOwotLQotLSAgICAgICAgICBzdHIgPSB0cmFja2Vy X3NwYXJxbF9jdXJzb3JfZ2V0X3N0cmluZyAoY3Vyc29yLCBpZHgsIE5VTEwpOwotLSAgICAgICAg ICBnX2hhc2hfdGFibGVfaXRlcl9yZXBsYWNlICgmaXRlciwgZ19zdHJkdXAgKHN0cikpOwotLSAg ICAgICAgICBpZHgrKzsKLS0gICAgICAgIH0KLS0KLS0gICAgICBwaG90b3NfdHJhY2tlcl9jaGFu Z2VfbW9uaXRvcl9zZW5kX2V2ZW50cyAoc2VsZiwgZGF0YS0+aWRfdGFibGUsIGRhdGEtPmV2ZW50 cyk7Ci0tICAgIH0KLS0KLS0gIHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9jbG9zZSAoY3Vyc29yKTsK LS0gIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5X2RhdGFfZnJlZSAoZGF0YSk7 Ci0tfQotLQotLQotLXN0YXRpYyB2b2lkCi0tcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3Jf cXVlcnlfZXhlY3V0ZWQgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVz LCBncG9pbnRlciB1c2VyX2RhdGEpCi0tewotLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JR dWVyeURhdGEgKmRhdGEgPSAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKikg dXNlcl9kYXRhOwotLSAgVHJhY2tlclNwYXJxbENvbm5lY3Rpb24gKmNvbm5lY3Rpb24gPSBUUkFD S0VSX1NQQVJRTF9DT05ORUNUSU9OIChzb3VyY2Vfb2JqZWN0KTsKLS0gIFRyYWNrZXJTcGFycWxD dXJzb3IgKmN1cnNvcjsgLyogVE9ETzogVXNlIGdfYXV0b3B0ciAqLwotLQotLSAgewotLSAgICBn X2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOwotLQotLSAgICBjdXJzb3IgPSB0cmFja2Vy X3NwYXJxbF9jb25uZWN0aW9uX3F1ZXJ5X2ZpbmlzaCAoY29ubmVjdGlvbiwgcmVzLCAmZXJyb3Ip OwotLSAgICBpZiAoZXJyb3IgIT0gTlVMTCkKLS0gICAgICB7Ci0tICAgICAgICBnX3dhcm5pbmcg KCJVbmFibGUgdG8gcmVzb2x2ZSBpdGVtIFVSTnMgZm9yIGdyYXBoIGNoYW5nZXM6ICVzIiwgZXJy b3ItPm1lc3NhZ2UpOwotLSAgICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcXVl cnlfZGF0YV9mcmVlIChkYXRhKTsKLS0gICAgICAgIHJldHVybjsKLS0gICAgICB9Ci0tICB9Ci0t Ci0tICB0cmFja2VyX3NwYXJxbF9jdXJzb3JfbmV4dF9hc3luYyAoY3Vyc29yLCBOVUxMLCBwaG90 b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9jdXJzb3JfbmV4dCwgZGF0YSk7Ci0tICBnX29iamVj dF91bnJlZiAoY3Vyc29yKTsKLS19Ci0tCi0tCi0tc3RhdGljIGdib29sZWFuCi0tcGhvdG9zX3Ry YWNrZXJfY2hhbmdlX21vbml0b3JfcHJvY2Vzc19ldmVudHMgKFBob3Rvc1RyYWNrZXJDaGFuZ2VN b25pdG9yICpzZWxmKQotLXsKLS0gIEdIYXNoVGFibGUgKmlkX3RhYmxlOwotLSAgR0hhc2hUYWJs ZUl0ZXIgaXRlcjsKLS0gIEdRdWV1ZSAqZXZlbnRzOwotLSAgZ19hdXRvcHRyIChHU3RyaW5nKSBz cGFycWwgPSBOVUxMOwotLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKmRh dGE7Ci0tICBnX2F1dG9wdHIgKFBob3Rvc1F1ZXJ5KSBxdWVyeSA9IE5VTEw7Ci0tICBncG9pbnRl ciBpZDsKLS0KLS0gIGV2ZW50cyA9IHNlbGYtPnBlbmRpbmdfZXZlbnRzOwotLSAgc2VsZi0+cGVu ZGluZ19ldmVudHMgPSBnX3F1ZXVlX25ldyAoKTsKLS0KLS0gIGlkX3RhYmxlID0gc2VsZi0+dW5y ZXNvbHZlZF9pZHM7Ci0tICBzZWxmLT51bnJlc29sdmVkX2lkcyA9IGdfaGFzaF90YWJsZV9uZXdf ZnVsbCAoZ19kaXJlY3RfaGFzaCwgZ19kaXJlY3RfZXF1YWwsIE5VTEwsIGdfZnJlZSk7Ci0tCi0t ICBzZWxmLT5wZW5kaW5nX2V2ZW50c19pZCA9IDA7Ci0tCi0tICBzcGFycWwgPSBnX3N0cmluZ19u ZXcgKCJTRUxFQ1QiKTsKLS0KLS0gIGdfaGFzaF90YWJsZV9pdGVyX2luaXQgKCZpdGVyLCBpZF90 YWJsZSk7Ci0tICB3aGlsZSAoZ19oYXNoX3RhYmxlX2l0ZXJfbmV4dCAoJml0ZXIsICZpZCwgTlVM TCkpCi0tICAgIGdfc3RyaW5nX2FwcGVuZF9wcmludGYgKHNwYXJxbCwgIiB0cmFja2VyOnVyaSgl ZCkiLCBHUE9JTlRFUl9UT19JTlQgKGlkKSk7Ci0tCi0tICBnX3N0cmluZ19hcHBlbmQgKHNwYXJx bCwgIiB7fSIpOwotLQotLSAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChOVUxMLCBzcGFycWwt PnN0cik7Ci0tCi0tICBkYXRhID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcXVlcnlf ZGF0YV9uZXcgKHNlbGYsIGlkX3RhYmxlLCBldmVudHMpOwotLSAgcGhvdG9zX3RyYWNrZXJfcXVl dWVfc2VsZWN0IChzZWxmLT5xdWV1ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cXVlcnksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5 X2V4ZWN1dGVkLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLS0KLS0gIHJldHVybiBHX1NPVVJDRV9S RU1PVkU7Ci0tfQotLQotLQotLXN0YXRpYyB2b2lkCi0tcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21v bml0b3JfYWRkX3BlbmRpbmdfZXZlbnQgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxm LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBUcmFja2VyUmVzb3VyY2VzRXZlbnQgKmV2ZW50LAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBpc19kZWxldGUpCi0tewotLSAgUGhv dG9zVHJhY2tlckNoYW5nZUV2ZW50ICpjaGFuZ2VfZXZlbnQ7Ci0tCi0tICBwaG90b3NfdHJhY2tl cl9jaGFuZ2VfbW9uaXRvcl9yZW1vdmVfdGltZW91dCAoc2VsZik7Ci0tCi0tICBnX2hhc2hfdGFi bGVfaW5zZXJ0IChzZWxmLT51bnJlc29sdmVkX2lkcywgR0lOVF9UT19QT0lOVEVSIChldmVudC0+ c3ViamVjdCksIE5VTEwpOwotLSAgZ19oYXNoX3RhYmxlX2luc2VydCAoc2VsZi0+dW5yZXNvbHZl ZF9pZHMsIEdJTlRfVE9fUE9JTlRFUiAoZXZlbnQtPnByZWRpY2F0ZSksIE5VTEwpOwotLQotLSAg Y2hhbmdlX2V2ZW50ID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X25ldyAoZXZlbnQtPnN1 YmplY3QsIGV2ZW50LT5wcmVkaWNhdGUsIGlzX2RlbGV0ZSk7Ci0tICBnX3F1ZXVlX3B1c2hfdGFp bCAoc2VsZi0+cGVuZGluZ19ldmVudHMsIGNoYW5nZV9ldmVudCk7Ci0tCi0tICBpZiAoc2VsZi0+ cGVuZGluZ19ldmVudHMtPmxlbmd0aCA+PSBDSEFOR0VfTU9OSVRPUl9NQVhfSVRFTVMpCi0tICAg IHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3Byb2Nlc3NfZXZlbnRzIChzZWxmKTsKLS0g IGVsc2UKLS0gICAgc2VsZi0+cGVuZGluZ19ldmVudHNfaWQgPSBnX3RpbWVvdXRfYWRkIChDSEFO R0VfTU9OSVRPUl9USU1FT1VULAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChHU291cmNlRnVuYykgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcHJv Y2Vzc19ldmVudHMsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZik7Ci0tfQotLQotLQotLXN0YXRpYyB2b2lkCi0tcGhvdG9zX3RyYWNrZXJfY2hhbmdl X21vbml0b3JfZ3JhcGhfdXBkYXRlZCAoVHJhY2tlclJlc291cmNlcyAqcmVzb3VyY2Vfc2Vydmlj ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn Y2hhciAqY2xhc3NfbmFtZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHVmFyaWFudCAqZGVsZXRlX2V2ZW50cywKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAqaW5zZXJ0X2V2ZW50cywKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciB1c2VyX2RhdGEp Ci0tewotLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYgPSBQSE9UT1NfVFJBQ0tF Ul9DSEFOR0VfTU9OSVRPUiAodXNlcl9kYXRhKTsKLS0gIGNvbnN0IFRyYWNrZXJSZXNvdXJjZXNF dmVudCAqZXZlbnRzOwotLSAgZ3NpemUgaTsKLS0gIGdzaXplIG5fZWxlbWVudHM7Ci0tCi0tICBl dmVudHMgPSAoY29uc3QgVHJhY2tlclJlc291cmNlc0V2ZW50ICopIGdfdmFyaWFudF9nZXRfZml4 ZWRfYXJyYXkgKGRlbGV0ZV9ldmVudHMsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuX2VsZW1lbnRzLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplb2YgKFRyYWNrZXJSZXNvdXJjZXNFdmVudCkpOwotLSAgZm9yIChpID0g MDsgaSA8IG5fZWxlbWVudHM7IGkrKykKLS0gICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0 b3JfYWRkX3BlbmRpbmdfZXZlbnQgKHNlbGYsICZldmVudHNbaV0sIFRSVUUpOwotLQotLSAgZXZl bnRzID0gKGNvbnN0IFRyYWNrZXJSZXNvdXJjZXNFdmVudCAqKSBnX3ZhcmlhbnRfZ2V0X2ZpeGVk X2FycmF5IChpbnNlcnRfZXZlbnRzLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbl9lbGVtZW50cywKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZW9mIChUcmFja2VyUmVzb3VyY2VzRXZlbnQpKTsKLS0gIGZvciAoaSA9IDA7 IGkgPCBuX2VsZW1lbnRzOyBpKyspCi0tICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9y X2FkZF9wZW5kaW5nX2V2ZW50IChzZWxmLCAmZXZlbnRzW2ldLCBGQUxTRSk7Ci0tfQotLQotLQot LXN0YXRpYyBHT2JqZWN0ICoKLS1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9jb25zdHJ1 Y3RvciAoR1R5cGUgdHlwZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3VpbnQgbl9jb25zdHJ1Y3RfcGFyYW1zLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHT2JqZWN0Q29uc3RydWN0UGFyYW0gKmNvbnN0cnVjdF9wYXJh bXMpCi0tewotLSAgc3RhdGljIEdPYmplY3QgKnNlbGYgPSBOVUxMOwotLQotLSAgaWYgKHNlbGYg PT0gTlVMTCkKLS0gICAgewotLSAgICAgIHNlbGYgPSBHX09CSkVDVF9DTEFTUyAocGhvdG9zX3Ry YWNrZXJfY2hhbmdlX21vbml0b3JfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0b3IgKHR5cGUsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbl9jb25zdHJ1Y3RfcGFyYW1zLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0cnVjdF9wYXJhbXMpOwotLSAgICAgIGdfb2Jq ZWN0X2FkZF93ZWFrX3BvaW50ZXIgKHNlbGYsIChncG9pbnRlcikgJnNlbGYpOwotLSAgICAgIHJl dHVybiBzZWxmOwotLSAgICB9Ci0tCi0tICByZXR1cm4gZ19vYmplY3RfcmVmIChzZWxmKTsKLS19 Ci0tCi0tCi0tc3RhdGljIHZvaWQKLS1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9kaXNw b3NlIChHT2JqZWN0ICpvYmplY3QpCi0tewotLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3Ig KnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUiAob2JqZWN0KTsKLS0KLS0gIHBo b3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3JlbW92ZV90aW1lb3V0IChzZWxmKTsKLS0KLS0g IGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+cXVldWUpOwotLSAgZ19jbGVhcl9vYmplY3QgKCZzZWxm LT5yZXNvdXJjZV9zZXJ2aWNlKTsKLS0KLS0gIEdfT0JKRUNUX0NMQVNTIChwaG90b3NfdHJhY2tl cl9jaGFuZ2VfbW9uaXRvcl9wYXJlbnRfY2xhc3MpLT5kaXNwb3NlIChvYmplY3QpOwotLX0KLS0K LS0KLS1zdGF0aWMgdm9pZAotLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2ZpbmFsaXpl IChHT2JqZWN0ICpvYmplY3QpCi0tewotLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNl bGYgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUiAob2JqZWN0KTsKLS0KLS0gIGdfaGFz aF90YWJsZV91bnJlZiAoc2VsZi0+cGVuZGluZ19jaGFuZ2VzKTsKLS0gIGdfaGFzaF90YWJsZV91 bnJlZiAoc2VsZi0+dW5yZXNvbHZlZF9pZHMpOwotLQotLSAgZ19xdWV1ZV9mcmVlX2Z1bGwgKHNl bGYtPnBlbmRpbmdfZXZlbnRzLCAoR0Rlc3Ryb3lOb3RpZnkpIHBob3Rvc190cmFja2VyX2NoYW5n ZV9ldmVudF9mcmVlKTsKLS0KLS0gIEdfT0JKRUNUX0NMQVNTIChwaG90b3NfdHJhY2tlcl9jaGFu Z2VfbW9uaXRvcl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAob2JqZWN0KTsKLS19Ci0tCi0tCi0t c3RhdGljIHZvaWQKLS1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9pbml0IChQaG90b3NU cmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZikKLS17Ci0tICBzZWxmLT5wZW5kaW5nX2NoYW5nZXMg PSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwgKGdfc3RyX2hhc2gsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfc3RyX2VxdWFsLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX2ZyZWUsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHRGVzdHJveU5vdGlmeSkg cGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2ZyZWUpOwotLQotLSAgc2VsZi0+dW5yZXNvbHZl ZF9pZHMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwgKGdfZGlyZWN0X2hhc2gsIGdfZGlyZWN0X2Vx dWFsLCBOVUxMLCBnX2ZyZWUpOwotLQotLSAgc2VsZi0+cGVuZGluZ19ldmVudHMgPSBnX3F1ZXVl X25ldyAoKTsKLS19Ci0tCi0tCi0tc3RhdGljIHZvaWQKLS1waG90b3NfdHJhY2tlcl9jaGFuZ2Vf bW9uaXRvcl9jbGFzc19pbml0IChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvckNsYXNzICpjbGFz cykKLS17Ci0tICBHT2JqZWN0Q2xhc3MgKm9iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChj bGFzcyk7Ci0tCi0tICBvYmplY3RfY2xhc3MtPmNvbnN0cnVjdG9yID0gcGhvdG9zX3RyYWNrZXJf Y2hhbmdlX21vbml0b3JfY29uc3RydWN0b3I7Ci0tICBvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSBw aG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9kaXNwb3NlOwotLSAgb2JqZWN0X2NsYXNzLT5m aW5hbGl6ZSA9IHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2ZpbmFsaXplOwotLQotLSAg c2lnbmFsc1tDSEFOR0VTX1BFTkRJTkddID0gZ19zaWduYWxfbmV3ICgiY2hhbmdlcy1wZW5kaW5n IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0ZS T01fQ0xBU1MgKGNsYXNzKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwsIC8qYWNjdW11bGF0b3IgKi8KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTlVMTCwgLyphY2N1X2RhdGEgKi8KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX0JPWEVELAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfTk9ORSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0hBU0hfVEFCTEUpOwot LX0KLS0KLS0KLS1zdGF0aWMgZ2Jvb2xlYW4KLS1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRv cl9pbml0YWJsZV9pbml0IChHSW5pdGFibGUgKmluaXRhYmxlLCBHQ2FuY2VsbGFibGUgKmNhbmNl bGxhYmxlLCBHRXJyb3IgKiplcnJvcikKLS17Ci0tICBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRv ciAqc2VsZiA9IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9NT05JVE9SIChpbml0YWJsZSk7Ci0tICBn Ym9vbGVhbiByZXRfdmFsID0gVFJVRTsKLS0KLS0gIGlmIChHX0xJS0VMWSAoc2VsZi0+cXVldWUg IT0gTlVMTCAmJiBzZWxmLT5yZXNvdXJjZV9zZXJ2aWNlICE9IE5VTEwpKQotLSAgICBnb3RvIG91 dDsKLS0KLS0gIHNlbGYtPnF1ZXVlID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZHVwX3NpbmdsZXRv biAoY2FuY2VsbGFibGUsIGVycm9yKTsKLS0gIGlmIChHX1VOTElLRUxZIChzZWxmLT5xdWV1ZSA9 PSBOVUxMKSkKLS0gICAgewotLSAgICAgIHJldF92YWwgPSBGQUxTRTsKLS0gICAgICBnb3RvIG91 dDsKLS0gICAgfQotLQotLSAgc2VsZi0+cmVzb3VyY2Vfc2VydmljZSA9IHRyYWNrZXJfcmVzb3Vy Y2VzX3Byb3h5X25ld19mb3JfYnVzX3N5bmMgKEdfQlVTX1RZUEVfU0VTU0lPTiwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHX0RCVVNfUFJPWFlfRkxBR1NfTk9ORSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JnLmdub21lLlBo b3Rvcy5UcmFja2VyMSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi9vcmcvZnJlZWRlc2t0b3AvVHJhY2tlcjEv UmVzb3VyY2VzIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxsYWJsZSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJv cik7Ci0tICBpZiAoR19VTkxJS0VMWSAoc2VsZi0+cmVzb3VyY2Vfc2VydmljZSA9PSBOVUxMKSkK LS0gICAgewotLSAgICAgIHJldF92YWwgPSBGQUxTRTsKLS0gICAgICBnb3RvIG91dDsKLS0gICAg fQotLQotLSAgZ19zaWduYWxfY29ubmVjdCAoc2VsZi0+cmVzb3VyY2Vfc2VydmljZSwKLS0gICAg ICAgICAgICAgICAgICAgICJncmFwaC11cGRhdGVkIiwKLS0gICAgICAgICAgICAgICAgICAgIEdf Q0FMTEJBQ0sgKHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2dyYXBoX3VwZGF0ZWQpLAot LSAgICAgICAgICAgICAgICAgICAgc2VsZik7Ci0tCi0tIG91dDoKLS0gIHJldHVybiByZXRfdmFs OwotLX0KLS0KLS0KLS1zdGF0aWMgdm9pZAotLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9y X2luaXRhYmxlX2lmYWNlX2luaXQgKEdJbml0YWJsZUlmYWNlICppZmFjZSkKLS17Ci0tICBpZmFj ZS0+aW5pdCA9IHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2luaXRhYmxlX2luaXQ7Ci0t fQotLQotLQotLVBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICoKLS1waG90b3NfdHJhY2tlcl9j aGFuZ2VfbW9uaXRvcl9kdXBfc2luZ2xldG9uIChHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlLCBH RXJyb3IgKiplcnJvcikKLS17Ci0tICByZXR1cm4gZ19pbml0YWJsZV9uZXcgKFBIT1RPU19UWVBF X1RSQUNLRVJfQ0hBTkdFX01PTklUT1IsIGNhbmNlbGxhYmxlLCBlcnJvciwgTlVMTCk7Ci0tfQot ZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5oIGIvc3JjL3Bo b3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmgKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAot aW5kZXggOTc0MGIwNDYuLjAwMDAwMDAwCi0tLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdl LW1vbml0b3IuaAotKysrIC9kZXYvbnVsbAotQEAgLTEsNDIgKzAsMCBAQAotLS8qCi0tICogUGhv dG9zIC0gYWNjZXNzLCBvcmdhbml6ZSBhbmQgc2hhcmUgeW91ciBwaG90b3Mgb24gR05PTUUKLS0g KiBDb3B5cmlnaHQgwqkgMjAxMiDigJMgMjAxOSBSZWQgSGF0LCBJbmMuCi0tICoKLS0gKiBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQotLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0tICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLS0gKiAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgotLSAqCi0tICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0tICogYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLS0gKiBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCi0tICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLS0g KgotLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlCi0tICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0tICovCi0tCi0tLyogQmFzZWQgb24g Y29kZSBmcm9tOgotLSAqICAgKyBEb2N1bWVudHMKLS0gKi8KLS0KLS0jaWZuZGVmIFBIT1RPU19U UkFDS0VSX0NIQU5HRV9NT05JVE9SX0gKLS0jZGVmaW5lIFBIT1RPU19UUkFDS0VSX0NIQU5HRV9N T05JVE9SX0gKLS0KLS0jaW5jbHVkZSA8Z2lvL2dpby5oPgotLQotLUdfQkVHSU5fREVDTFMKLS0K LS0jZGVmaW5lIFBIT1RPU19UWVBFX1RSQUNLRVJfQ0hBTkdFX01PTklUT1IgKHBob3Rvc190cmFj a2VyX2NoYW5nZV9tb25pdG9yX2dldF90eXBlICgpKQotLUdfREVDTEFSRV9GSU5BTF9UWVBFIChQ aG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciwKLS0gICAgICAgICAgICAgICAgICAgICAgcGhvdG9z X3RyYWNrZXJfY2hhbmdlX21vbml0b3IsCi0tICAgICAgICAgICAgICAgICAgICAgIFBIT1RPUywK LS0gICAgICAgICAgICAgICAgICAgICAgVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUiwKLS0gICAgICAg ICAgICAgICAgICAgICAgR09iamVjdCk7Ci0tCi0tUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3Ig ICpwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9kdXBfc2luZ2xldG9uICAgIChHQ2FuY2Vs bGFibGUgKmNhbmNlbGxhYmxlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICoqZXJyb3Ip OwotLQotLUdfRU5EX0RFQ0xTCi0tCi0tI2VuZGlmIC8qIFBIT1RPU19UUkFDS0VSX0NIQU5HRV9N T05JVE9SX0ggKi8KLWRpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5j IGIvc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYwotaW5kZXggYTAyZGIwNzcuLjZkMDA1 M2ExIDEwMDY0NAotLS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYwotKysrIGIv c3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYwotQEAgLTI5Miw2ICsyOTIsMTIgQEAgcGhv dG9zX3RyYWNrZXJfY29udHJvbGxlcl9wZXJmb3JtX2N1cnJlbnRfcXVlcnkgKFBob3Rvc1RyYWNr ZXJDb250cm9sbGVyICpzZWxmKQotIAotICAgcHJpdiA9IHBob3Rvc190cmFja2VyX2NvbnRyb2xs ZXJfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNlbGYpOwotIAotKyAgaWYgKEdfVU5MSUtFTFkgKHBy aXYtPnF1ZXVlID09IE5VTEwpKQotKyAgICB7Ci0rICAgICAgcGhvdG9zX3RyYWNrZXJfY29udHJv bGxlcl9xdWVyeV9lcnJvciAoc2VsZiwgcHJpdi0+cXVldWVfZXJyb3IpOwotKyAgICAgIGdvdG8g b3V0OwotKyAgICB9Ci0rCi0gICBnX2NsZWFyX29iamVjdCAoJnByaXYtPmN1cnJlbnRfcXVlcnkp OwotICAgcHJpdi0+Y3VycmVudF9xdWVyeSA9IFBIT1RPU19UUkFDS0VSX0NPTlRST0xMRVJfR0VU X0NMQVNTIChzZWxmKS0+Z2V0X3F1ZXJ5IChzZWxmKTsKLSAgIGdfcmV0dXJuX2lmX2ZhaWwgKHBy aXYtPmN1cnJlbnRfcXVlcnkgIT0gTlVMTCk7Ci1AQCAtMzAzLDEyICszMDksNiBAQCBwaG90b3Nf dHJhY2tlcl9jb250cm9sbGVyX3BlcmZvcm1fY3VycmVudF9xdWVyeSAoUGhvdG9zVHJhY2tlckNv bnRyb2xsZXIgKnNlbGYpCi0gICBnX29iamVjdF91bnJlZiAocHJpdi0+Y2FuY2VsbGFibGUpOwot ICAgcHJpdi0+Y2FuY2VsbGFibGUgPSBnX2NhbmNlbGxhYmxlX25ldyAoKTsKLSAKLS0gIGlmIChH X1VOTElLRUxZIChwcml2LT5xdWV1ZSA9PSBOVUxMKSkKLS0gICAgewotLSAgICAgIHBob3Rvc190 cmFja2VyX2NvbnRyb2xsZXJfcXVlcnlfZXJyb3IgKHNlbGYsIHByaXYtPnF1ZXVlX2Vycm9yKTsK LS0gICAgICBnb3RvIG91dDsKLS0gICAgfQotLQotICAgcGhvdG9zX3RyYWNrZXJfcXVldWVfc2Vs ZWN0IChwcml2LT5xdWV1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+ Y3VycmVudF9xdWVyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+Y2Fu Y2VsbGFibGUsCi1kaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3Jp dHkueG1sIGIvc3JjL3Bob3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3JpdHkueG1sCi1pbmRleCA3 ZTNiOWIwYy4uMmI1NjIyOTkgMTAwNjQ0Ci0tLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItZXh0cmFj dC1wcmlvcml0eS54bWwKLSsrKyBiL3NyYy9waG90b3MtdHJhY2tlci1leHRyYWN0LXByaW9yaXR5 LnhtbAotQEAgLTIxLDcgKzIxLDcgQEAKLSAtLT4KLSAKLSA8bm9kZSBuYW1lPSIvIiB4bWxuczpk b2M9Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL2RidXMvMS4wL2RvYy5kdGQiPgotLSAgPGlu dGVyZmFjZSBuYW1lPSJvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuRXh0cmFjdC5Qcmlvcml0eSI+ Ci0rICA8aW50ZXJmYWNlIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5FeHRyYWN0LlBy aW9yaXR5Ij4KLSAgICAgPG1ldGhvZCBuYW1lPSJDbGVhclJkZlR5cGVzIiAvPgotICAgICA8bWV0 aG9kIG5hbWU9IlNldFJkZlR5cGVzIj4KLSAgICAgICA8YXJnIG5hbWU9InJkZl90eXBlcyIgdHlw ZT0iYXMiIGRpcmVjdGlvbj0iaW4iIC8+Ci1kaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2Vy LWltcG9ydC1jb250cm9sbGVyLmMgYi9zcmMvcGhvdG9zLXRyYWNrZXItaW1wb3J0LWNvbnRyb2xs ZXIuYwotaW5kZXggOWYxMzA3MTQuLmQ3ZWQ5YjIwIDEwMDY0NAotLS0tIGEvc3JjL3Bob3Rvcy10 cmFja2VyLWltcG9ydC1jb250cm9sbGVyLmMKLSsrKyBiL3NyYy9waG90b3MtdHJhY2tlci1pbXBv cnQtY29udHJvbGxlci5jCi1AQCAtMjQsNyArMjQsNiBAQAotICNpbmNsdWRlICJjb25maWcuaCIK LSAKLSAjaW5jbHVkZSA8Z2lvL2dpby5oPgotLSNpbmNsdWRlIDxsaWJ0cmFja2VyLWNvbnRyb2wv dHJhY2tlci1jb250cm9sLmg+Ci0gCi0gI2luY2x1ZGUgInBob3Rvcy1iYXNlLW1hbmFnZXIuaCIK LSAjaW5jbHVkZSAicGhvdG9zLWRlYnVnLmgiCi1AQCAtMzQsNiArMzMsOCBAQAotICNpbmNsdWRl ICJwaG90b3MtcXVlcnktYnVpbGRlci5oIgotICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLWNvbnRl eHQuaCIKLSAjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItaW1wb3J0LWNvbnRyb2xsZXIuaCIKLSsj aW5jbHVkZSAicGhvdG9zLXRyYWNrZXItbWluZXItaW5kZXguaCIKLSsjaW5jbHVkZSAicGhvdG9z LXRyYWNrZXItcXVldWUuaCIKLSAjaW5jbHVkZSAicGhvdG9zLXV0aWxzLmgiCi0gCi0gCi1AQCAt NDUsNyArNDYsNyBAQCBzdHJ1Y3QgX1Bob3Rvc1RyYWNrZXJJbXBvcnRDb250cm9sbGVyCi0gICBQ aG90b3NCYXNlTWFuYWdlciAqaXRlbV9tbmdyOwotICAgUGhvdG9zQmFzZU1hbmFnZXIgKnNyY19t bmdyOwotICAgUGhvdG9zT2Zmc2V0Q29udHJvbGxlciAqb2Zmc2V0X2NudHJscjsKLS0gIFRyYWNr ZXJNaW5lck1hbmFnZXIgKm1hbmFnZXI7Ci0rICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5l cl9jb250cm9sX3Byb3h5OwotIH07Ci0gCi0gCi1AQCAtNzYsMTIgKzc3LDEyIEBAIHN0YXRpYyB2 b2lkCi0gcGhvdG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfaW5kZXggKEdPYmplY3QgKnNv dXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCi0gewot ICAgZ19hdXRvcHRyIChHRmlsZSkgZmlsZSA9IEdfRklMRSAodXNlcl9kYXRhKTsKLS0gIFRyYWNr ZXJNaW5lck1hbmFnZXIgKm1hbmFnZXIgPSBUUkFDS0VSX01JTkVSX01BTkFHRVIgKHNvdXJjZV9v YmplY3QpOwotKyAgVHJhY2tlck1pbmVyRmlsZXNJbmRleCAqbWluZXJfY29udHJvbF9wcm94eSA9 IFRSQUNLRVJfTUlORVJfRklMRVNfSU5ERVggKHNvdXJjZV9vYmplY3QpOwotIAotICAgewotICAg ICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOwotIAotLSAgICBpZiAoIXRyYWNrZXJf bWluZXJfbWFuYWdlcl9pbmRleF9maWxlX2Zvcl9wcm9jZXNzX2ZpbmlzaCAobWFuYWdlciwgcmVz LCAmZXJyb3IpKQotKyAgICBpZiAoIXRyYWNrZXJfbWluZXJfZmlsZXNfaW5kZXhfY2FsbF9pbmRl eF9sb2NhdGlvbl9maW5pc2ggKG1pbmVyX2NvbnRyb2xfcHJveHksIHJlcywgJmVycm9yKSkKLSAg ICAgICB7Ci0gICAgICAgICBpZiAoIWdfZXJyb3JfbWF0Y2hlcyAoZXJyb3IsIEdfSU9fRVJST1Is IEdfSU9fRVJST1JfQ0FOQ0VMTEVEKSkKLSAgICAgICAgICAgewotQEAgLTEwMiw2ICsxMDMsOCBA QCBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9uZXh0X2ZpbGVzIChHT2JqZWN0ICpz b3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bAotICAgR0ZpbGVFbnVtZXJhdG9yICplbnVtZXJhdG9y ID0gR19GSUxFX0VOVU1FUkFUT1IgKHNvdXJjZV9vYmplY3QpOwotICAgR0xpc3QgKmluZm9zID0g TlVMTDsKLSAgIEdMaXN0ICpsOwotKyAgY29uc3QgZ2NoYXIgKnRyYWNrZXJfcHJpb3JpdHlfZ3Jh cGhzW10gPSB7IFRSQUNLRVJfUElDVFVSRVNfR1JBUEggfTsKLSsgIGNvbnN0IGdjaGFyICp0cmFj a2VyX2luZGV4X2xvY2F0aW9uX2ZsYWdzW10gPSB7ICJmb3ItcHJvY2VzcyIgfTsKLSAKLSAgIHsK LSAgICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKLUBAIC0xODcsMTEgKzE5MCwx MyBAQCBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9uZXh0X2ZpbGVzIChHT2JqZWN0 ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bAotICAgICAgICAgICAgICAgICAgICAgaWYgKGdf Y29udGVudF90eXBlX2VxdWFscyAobWltZV90eXBlLCBJTVBPUlRBQkxFX01JTUVfVFlQRVNbaV0p Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfHwgZ19jb250ZW50X3R5cGVfaXNfYSAobWltZV90 eXBlLCBJTVBPUlRBQkxFX01JTUVfVFlQRVNbaV0pKQotICAgICAgICAgICAgICAgICAgICAgICB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tlcl9taW5lcl9tYW5hZ2VyX2luZGV4X2Zp bGVfZm9yX3Byb2Nlc3NfYXN5bmMgKHNlbGYtPm1hbmFnZXIsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZpbGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPmNhbmNlbGxhYmxlLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9pbmRleCwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ19vYmplY3RfcmVmIChmaWxlKSk7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgdHJhY2tlcl9taW5lcl9maWxlc19pbmRleF9jYWxsX2luZGV4X2xvY2F0aW9uIChzZWxm LT5taW5lcl9jb250cm9sX3Byb3h5LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJpLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdHJhY2tlcl9wcmlvcml0eV9ncmFwaHMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2VyX2luZGV4 X2xvY2F0aW9uX2ZsYWdzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+Y2FuY2VsbGFibGUsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9pbmRleCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdfb2JqZWN0X3JlZiAoZmlsZSkpOwotICAgICAgICAgICAgICAgICAgICAgICAg IGluZGV4aW5nID0gVFJVRTsKLSAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg ICAgICAgIH0KLUBAIC0yOTEsMjggKzI5Niw2IEBAIHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250 cm9sbGVyX3NvdXJjZV9hY3RpdmVfY2hhbmdlZCAoUGhvdG9zVHJhY2tlckltcG9ydENvbnRyCi0g ICAgIHsKLSAgICAgICBnX3JldHVybl9pZl9mYWlsIChnX3F1ZXVlX2lzX2VtcHR5IChzZWxmLT5w ZW5kaW5nX2RpcmVjdG9yaWVzKSk7Ci0gCi0tICAgICAgaWYgKEdfTElLRUxZIChzZWxmLT5tYW5h Z2VyICE9IE5VTEwpKQotLSAgICAgICAgewotLSAgICAgICAgICBnX2F1dG9wdHIgKEdGaWxlKSBy b290ID0gTlVMTDsKLS0gICAgICAgICAgZ19hdXRvZnJlZSBnY2hhciAqdXJpID0gTlVMTDsKLS0K LS0gICAgICAgICAgcm9vdCA9IGdfbW91bnRfZ2V0X3Jvb3QgKG1vdW50KTsKLS0gICAgICAgICAg Z19xdWV1ZV9wdXNoX3RhaWwgKHNlbGYtPnBlbmRpbmdfZGlyZWN0b3JpZXMsIGdfb2JqZWN0X3Jl ZiAocm9vdCkpOwotLQotLSAgICAgICAgICB1cmkgPSBnX2ZpbGVfZ2V0X3VyaSAocm9vdCk7Ci0t ICAgICAgICAgIHBob3Rvc19kZWJ1ZyAoUEhPVE9TX0RFQlVHX0lNUE9SVCwgIkVudW1lcmF0aW5n IGRldmljZSBkaXJlY3RvcnkgJXMiLCB1cmkpOwotLQotLSAgICAgICAgICBnX2ZpbGVfZW51bWVy YXRlX2NoaWxkcmVuX2FzeW5jIChyb290LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX0NPTlRFTlRfVFlQRSIsIgot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfQVRUUklC VVRFX1NUQU5EQVJEX05BTUUiLCIKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR19GSUxFX0FUVFJJQlVURV9TVEFOREFSRF9UWVBFLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfUVVFUllfSU5GT19OT0ZPTExPV19T WU1MSU5LUywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19Q UklPUklUWV9ERUZBVUxULAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLT5jYW5jZWxsYWJsZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGhvdG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfZW51bWVyYXRlX2No aWxkcmVuLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm KTsKLS0gICAgICAgIH0KLS0KLSAgICAgICBwaG90b3NfdHJhY2tlcl9jb250cm9sbGVyX3JlZnJl c2hfZm9yX29iamVjdCAoUEhPVE9TX1RSQUNLRVJfQ09OVFJPTExFUiAoc2VsZikpOwotICAgICB9 Ci0gfQotQEAgLTM3OSw3ICszNjIsNiBAQCBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxl cl9kaXNwb3NlIChHT2JqZWN0ICpvYmplY3QpCi0gCi0gICBnX2NsZWFyX29iamVjdCAoJnNlbGYt PnNyY19tbmdyKTsKLSAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+b2Zmc2V0X2NudHJscik7Ci0t ICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPm1hbmFnZXIpOwotIAotICAgR19PQkpFQ1RfQ0xBU1Mg KHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX3BhcmVudF9jbGFzcyktPmRpc3Bvc2Ug KG9iamVjdCk7Ci0gfQotQEAgLTM5Nyw2ICszNzksMzcgQEAgcGhvdG9zX3RyYWNrZXJfaW1wb3J0 X2NvbnRyb2xsZXJfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKLSB9Ci0gCi0gCi0rc3RhdGlj IFRyYWNrZXJNaW5lckZpbGVzSW5kZXggKgotK3Bob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9s bGVyX2dldF9taW5lcl9mc19jb250cm9sX3Byb3h5IChHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxl KQotK3sKLSsgIGdfYXV0b3B0ciAoUGhvdG9zVHJhY2tlclF1ZXVlKSB0cmFja2VyX3F1ZXVlID0g TlVMTDsKLSsgIGNvbnN0IGdjaGFyICptaW5lcl9mc19jb250cm9sX2J1c25hbWU7Ci0rICBnX2F1 dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOwotKyAgVHJhY2tlck1pbmVyRmlsZXNJbmRleCAq bWluZXJfY29udHJvbF9wcm94eTsKLSsKLSsgIHRyYWNrZXJfcXVldWUgPSBwaG90b3NfdHJhY2tl cl9xdWV1ZV9kdXBfc2luZ2xldG9uIChjYW5jZWxsYWJsZSwgJmVycm9yKTsKLSsKLSsgIGlmICgh dHJhY2tlcl9xdWV1ZSkgewotKyAgICBnX3dhcm5pbmcgKCJFcnJvciBnZXR0aW5nIFRyYWNrZXIg cXVldWU6ICVzLiBJbXBvcnQgd2lsbCBub3Qgd29yay4iLCBlcnJvci0+bWVzc2FnZSk7Ci0rICAg IHJldHVybiBOVUxMOwotKyAgfQotKwotKyAgbWluZXJfZnNfY29udHJvbF9idXNuYW1lID0gcGhv dG9zX3RyYWNrZXJfcXVldWVfZ2V0X21pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSAodHJhY2tlcl9x dWV1ZSk7Ci0rICBtaW5lcl9jb250cm9sX3Byb3h5ID0gdHJhY2tlcl9taW5lcl9maWxlc19pbmRl eF9wcm94eV9uZXdfZm9yX2J1c19zeW5jIChHX0JVU19UWVBFX1NFU1NJT04sCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHX0RCVVNfUFJPWFlfRkxBR1NfTk9ORSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmVy X2ZzX2NvbnRyb2xfYnVzbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvb3JnL2ZyZWVkZXNrdG9w L1RyYWNrZXIzL01pbmVyL0ZpbGVzL0NvbnRyb2wiLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZlcnJvcik7Ci0rICBpZiAoIW1pbmVyX2NvbnRyb2xfcHJveHkp IHsKLSsgICAgZ193YXJuaW5nICgiRXJyb3IgZ2V0dGluZyBUcmFja2VyIE1pbmVyIEZTIGNvbnRy b2wgcHJveHk6ICVzLiBJbXBvcnQgd2lsbCBub3Qgd29yayIsIGVycm9yLT5tZXNzYWdlKTsKLSsg ICAgcmV0dXJuIE5VTEw7Ci0rICB9Ci0rCi0rICByZXR1cm4gbWluZXJfY29udHJvbF9wcm94eTsK LSt9Ci0rCi0rCi0gc3RhdGljIHZvaWQKLSBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxl cl9pbml0IChQaG90b3NUcmFja2VySW1wb3J0Q29udHJvbGxlciAqc2VsZikKLSB7Ci1AQCAtNDIx LDEzICs0MzQsNyBAQCBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9pbml0IChQaG90 b3NUcmFja2VySW1wb3J0Q29udHJvbGxlciAqc2VsZikKLSAKLSAgIHNlbGYtPm9mZnNldF9jbnRy bHIgPSBwaG90b3Nfb2Zmc2V0X2ltcG9ydF9jb250cm9sbGVyX2R1cF9zaW5nbGV0b24gKCk7Ci0g Ci0tICB7Ci0tICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7Ci0tCi0tICAgIHNl bGYtPm1hbmFnZXIgPSB0cmFja2VyX21pbmVyX21hbmFnZXJfbmV3X2Z1bGwgKFRSVUUsICZlcnJv cik7Ci0tICAgIGlmIChlcnJvciAhPSBOVUxMKQotLSAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0 byBjcmVhdGUgYSBUcmFja2VyTWluZXJNYW5hZ2VyLCBpbmRleGluZyBhdHRhY2hlZCBkZXZpY2Vz IHdvbid0IHdvcms6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOwotLSAgfQotKyAgc2VsZi0+bWluZXJf Y29udHJvbF9wcm94eSA9IHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX2dldF9taW5l cl9mc19jb250cm9sX3Byb3h5IChOVUxMKTsKLSB9Ci0gCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL3Bo b3Rvcy10cmFja2VyLXF1ZXVlLmMgYi9zcmMvcGhvdG9zLXRyYWNrZXItcXVldWUuYwotaW5kZXgg NzZkMjVkNWQuLmE1ZjRjOTFhIDEwMDY0NAotLS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVl LmMKLSsrKyBiL3NyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5jCi1AQCAtMzcsOSArMzcsMjAgQEAg c3RydWN0IF9QaG90b3NUcmFja2VyUXVldWUKLSAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOwot ICAgR0Vycm9yICppbml0aWFsaXphdGlvbl9lcnJvcjsKLSAgIEdRdWV1ZSAqcXVldWU7Ci0tICBU cmFja2VyU3BhcnFsQ29ubmVjdGlvbiAqY29ubmVjdGlvbjsKLSsgIFRyYWNrZXJTcGFycWxDb25u ZWN0aW9uICpsb2NhbF9jb25uZWN0aW9uOwotKyAgVHJhY2tlclNwYXJxbENvbm5lY3Rpb24gKm1p bmVyX2ZzX2Nvbm5lY3Rpb247Ci0gICBnYm9vbGVhbiBpc19pbml0aWFsaXplZDsKLSAgIGdib29s ZWFuIHJ1bm5pbmc7Ci0rICBnYm9vbGVhbiBtaW5lcl9mc19yZWFkeTsKLSsgIGNvbnN0IGdjaGFy ICptaW5lcl9mc19idXNuYW1lOwotKyAgY29uc3QgZ2NoYXIgKm1pbmVyX2ZzX2NvbnRyb2xfYnVz bmFtZTsKLSt9OwotKwotK2VudW0KLSt7Ci0rICBQUk9QXzAsCi0rICBQUk9QX01JTkVSX0ZTX1JF QURZLAotKyAgUFJPUF9NSU5FUl9GU19CVVNOQU1FCi0gfTsKLSAKLSBzdGF0aWMgdm9pZCBwaG90 b3NfdHJhY2tlcl9xdWV1ZV9pbml0YWJsZV9pZmFjZV9pbml0IChHSW5pdGFibGVJZmFjZSAqaWZh Y2UpOwotQEAgLTkwLDcgKzEwMSw2IEBAIHBob3Rvc190cmFja2VyX3F1ZXVlX2RhdGFfZnJlZSAo UGhvdG9zVHJhY2tlclF1ZXVlRGF0YSAqZGF0YSkKLSAKLSBHX0RFRklORV9BVVRPUFRSX0NMRUFO VVBfRlVOQyAoUGhvdG9zVHJhY2tlclF1ZXVlRGF0YSwgcGhvdG9zX3RyYWNrZXJfcXVldWVfZGF0 YV9mcmVlKTsKLSAKLS0KLSBzdGF0aWMgUGhvdG9zVHJhY2tlclF1ZXVlRGF0YSAqCi0gcGhvdG9z X3RyYWNrZXJfcXVldWVfZGF0YV9uZXcgKFBob3Rvc1F1ZXJ5ICpxdWVyeSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUGhvdG9zVHJhY2tlclF1ZXJ5VHlwZSBxdWVyeV90eXBlLAot QEAgLTE3OSw3ICsxODksNyBAQCBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jaGVjayAoUGhvdG9zVHJh Y2tlclF1ZXVlICpzZWxmKQotICAgc3dpdGNoIChkYXRhLT5xdWVyeV90eXBlKQotICAgICB7Ci0g ICAgIGNhc2UgUEhPVE9TX1RSQUNLRVJfUVVFUllfU0VMRUNUOgotLSAgICAgIHRyYWNrZXJfc3Bh cnFsX2Nvbm5lY3Rpb25fcXVlcnlfYXN5bmMgKHNlbGYtPmNvbm5lY3Rpb24sCi0rICAgICAgdHJh Y2tlcl9zcGFycWxfY29ubmVjdGlvbl9xdWVyeV9hc3luYyAoc2VsZi0+bG9jYWxfY29ubmVjdGlv biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFycWws Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+Y2Fu Y2VsbGFibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGhvdG9zX3RyYWNrZXJfcXVldWVfY29sbGVjdG9yLAotQEAgLTE4NywxOCArMTk3LDE2IEBAIHBo b3Rvc190cmFja2VyX3F1ZXVlX2NoZWNrIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYpCi0gICAg ICAgYnJlYWs7Ci0gCi0gICAgIGNhc2UgUEhPVE9TX1RSQUNLRVJfUVVFUllfVVBEQVRFOgotLSAg ICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fdXBkYXRlX2FzeW5jIChzZWxmLT5jb25uZWN0 aW9uLAotKyAgICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fdXBkYXRlX2FzeW5jIChzZWxm LT5sb2NhbF9jb25uZWN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzcGFycWwsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YS0+Y2FuY2VsbGFibGUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX3F1ZXVlX2NvbGxl Y3RvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19v YmplY3RfcmVmIChzZWxmKSk7Ci0gICAgICAgYnJlYWs7Ci0gCi0gICAgIGNhc2UgUEhPVE9TX1RS QUNLRVJfUVVFUllfVVBEQVRFX0JMQU5LOgotLSAgICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rp b25fdXBkYXRlX2JsYW5rX2FzeW5jIChzZWxmLT5jb25uZWN0aW9uLAotKyAgICAgIHRyYWNrZXJf c3BhcnFsX2Nvbm5lY3Rpb25fdXBkYXRlX2JsYW5rX2FzeW5jIChzZWxmLT5sb2NhbF9jb25uZWN0 aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzcGFycWwsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdfUFJJT1JJVFlfREVGQVVMVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+Y2FuY2VsbGFibGUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX3F1 ZXVlX2NvbGxlY3RvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ19vYmplY3RfcmVmIChzZWxmKSk7Ci1AQCAtMjExLDYgKzIxOSw1MyBAQCBw aG90b3NfdHJhY2tlcl9xdWV1ZV9jaGVjayAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmKQotIH0K LSAKLSAKLStzdGF0aWMgZ2Jvb2xlYW4KLStwaG90b3NfdHJhY2tlcl9xdWV1ZV9zdGFydF9zZXNz aW9uX21pbmVyX2ZzIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYsIEdFcnJvciAqKmVycm9yKQot K3sKLSsgIGNvbnN0IGdjaGFyICpidXNuYW1lID0gIm9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5N aW5lci5GaWxlcyI7Ci0rICBjb25zdCBnY2hhciAqY29udHJvbF9idXNuYW1lID0gIm9yZy5mcmVl ZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcy5Db250cm9sIjsKLSsKLSsgIHBob3Rvc19kZWJ1 ZyAoUEhPVE9TX0RFQlVHX1RSQUNLRVIsICJDb25uZWN0aW5nIHRvICVzIiwgYnVzbmFtZSk7Ci0r ICBzZWxmLT5taW5lcl9mc19jb25uZWN0aW9uID0gdHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl9i dXNfbmV3IChidXNuYW1lLCBOVUxMLCBOVUxMLCBlcnJvcik7Ci0rICBpZiAoKmVycm9yKQotKyAg ICB7Ci0rICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNyZWF0ZSBjb25uZWN0aW9uIGZvciBz ZXNzaW9uLXdpZGUgVHJhY2tlciBpbmRleGVyIGF0ICVzOiAlcyIsIGJ1c25hbWUsICgqZXJyb3Ip LT5tZXNzYWdlKTsKLSsgICAgICByZXR1cm4gRkFMU0U7Ci0rICAgIH0KLSsKLSsgIHNlbGYtPm1p bmVyX2ZzX2J1c25hbWUgPSBidXNuYW1lOwotKyAgc2VsZi0+bWluZXJfZnNfY29udHJvbF9idXNu YW1lID0gY29udHJvbF9idXNuYW1lOwotKwotKyAgcmV0dXJuIFRSVUU7Ci0rfQotKwotKwotK3N0 YXRpYyBnYm9vbGVhbgotK3Bob3Rvc190cmFja2VyX3F1ZXVlX3N0YXJ0X2xvY2FsX21pbmVyX2Zz IChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYsIEdFcnJvciAqKmVycm9yKQotK3sKLSsgIGNvbnN0 IGdjaGFyICpidXNuYW1lID0gIm9yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRmlsZXMi OwotKyAgY29uc3QgZ2NoYXIgKmNvbnRyb2xfYnVzbmFtZSA9ICJvcmcuZ25vbWUuUGhvdG9zLlRy YWNrZXIzLk1pbmVyLkZpbGVzLkNvbnRyb2wiOwotKwotKyAgcGhvdG9zX2RlYnVnIChQSE9UT1Nf REVCVUdfVFJBQ0tFUiwgIkNvbm5lY3RpbmcgdG8gJXMiLCBidXNuYW1lKTsKLSsgIHNlbGYtPm1p bmVyX2ZzX2Nvbm5lY3Rpb24gPSB0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX2J1c19uZXcgKGJ1 c25hbWUsIE5VTEwsIE5VTEwsIGVycm9yKTsKLSsgIGlmICgqZXJyb3IpCi0rICAgIHsKLSsgICAg ICBnX2NyaXRpY2FsICgiQ291bGQgbm90IHN0YXJ0IGxvY2FsIFRyYWNrZXIgaW5kZXhlciBhdCAl czogJXMiLCBidXNuYW1lLCAoKmVycm9yKS0+bWVzc2FnZSk7Ci0rICAgICAgcmV0dXJuIEZBTFNF OwotKyAgICB9Ci0rCi0rICBzZWxmLT5taW5lcl9mc19idXNuYW1lID0gYnVzbmFtZTsKLSsgIHNl bGYtPm1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSA9IGNvbnRyb2xfYnVzbmFtZTsKLSsKLSsgIHJl dHVybiBUUlVFOwotK30KLSsKLStzdGF0aWMgZ2Jvb2xlYW4KLStpbnNpZGVfZmxhdHBhayAodm9p ZCkKLSt7Ci0rICAgIHJldHVybiBnX2ZpbGVfdGVzdCAoIi8uZmxhdHBhay1pbmZvIiwgR19GSUxF X1RFU1RfRVhJU1RTKTsKLSt9Ci0rCi0gc3RhdGljIEdPYmplY3QgKgotIHBob3Rvc190cmFja2Vy X3F1ZXVlX2NvbnN0cnVjdG9yIChHVHlwZSB0eXBlLCBndWludCBuX2NvbnN0cnVjdF9wYXJhbXMs IEdPYmplY3RDb25zdHJ1Y3RQYXJhbSAqY29uc3RydWN0X3BhcmFtcykKLSB7Ci1AQCAtMjM0LDcg KzI4OSw4IEBAIHBob3Rvc190cmFja2VyX3F1ZXVlX2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVjdCkK LSB7Ci0gICBQaG90b3NUcmFja2VyUXVldWUgKnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9RVUVVRSAo b2JqZWN0KTsKLSAKLS0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+Y29ubmVjdGlvbik7Ci0rICBn X2NsZWFyX29iamVjdCAoJnNlbGYtPmxvY2FsX2Nvbm5lY3Rpb24pOwotKyAgZ19jbGVhcl9vYmpl Y3QgKCZzZWxmLT5taW5lcl9mc19jb25uZWN0aW9uKTsKLSAKLSAgIEdfT0JKRUNUX0NMQVNTIChw aG90b3NfdHJhY2tlcl9xdWV1ZV9wYXJlbnRfY2xhc3MpLT5kaXNwb3NlIChvYmplY3QpOwotIH0K LUBAIC0yNTgsNiArMzE0LDM4IEBAIHBob3Rvc190cmFja2VyX3F1ZXVlX2luaXQgKFBob3Rvc1Ry YWNrZXJRdWV1ZSAqc2VsZikKLSAgIHNlbGYtPnF1ZXVlID0gZ19xdWV1ZV9uZXcgKCk7Ci0gfQot IAotK3N0YXRpYyB2b2lkCi0rcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X3Byb3BlcnR5IChHT2Jq ZWN0ICpvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSAqdmFsdWUsIEdQYXJhbVNwZWMgKnBz cGVjKQotK3sKLSsgIFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZiA9IFBIT1RPU19UUkFDS0VSX1FV RVVFIChvYmplY3QpOwotKwotKyAgc3dpdGNoIChwcm9wX2lkKQotKyAgICB7Ci0rICAgIGNhc2Ug UFJPUF9NSU5FUl9GU19SRUFEWToKLSsgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuICh2YWx1ZSwg c2VsZi0+bWluZXJfZnNfcmVhZHkpOwotKyAgICAgIGJyZWFrOwotKwotKyAgICBjYXNlIFBST1Bf TUlORVJfRlNfQlVTTkFNRToKLSsgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcgKHZhbHVlLCBzZWxm LT5taW5lcl9mc19idXNuYW1lKTsKLSsgICAgICBicmVhazsKLSsKLSsgICAgZGVmYXVsdDoKLSsg ICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwg cHNwZWMpOwotKyAgICAgIGJyZWFrOwotKyAgICB9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rcGhv dG9zX3RyYWNrZXJfcXVldWVfc2V0X3Byb3BlcnR5IChHT2JqZWN0ICpvYmplY3QsIGd1aW50IHBy b3BfaWQsIGNvbnN0IEdWYWx1ZSAqdmFsdWUsIEdQYXJhbVNwZWMgKnBzcGVjKQotK3sKLSsgIHN3 aXRjaCAocHJvcF9pZCkKLSsgICAgewotKyAgICAvKiBBbGwgcHJvcGVydGllcyBhcmUgcmVhZCBv bmx5ICovCi0rICAgIGRlZmF1bHQ6Ci0rICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BF UlRZX0lEIChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKLSsgICAgICBicmVhazsKLSsgICAgfQot K30KLSAKLSBzdGF0aWMgdm9pZAotIHBob3Rvc190cmFja2VyX3F1ZXVlX2NsYXNzX2luaXQgKFBo b3Rvc1RyYWNrZXJRdWV1ZUNsYXNzICpjbGFzcykKLUBAIC0yNjcsNiArMzU1LDI0IEBAIHBob3Rv c190cmFja2VyX3F1ZXVlX2NsYXNzX2luaXQgKFBob3Rvc1RyYWNrZXJRdWV1ZUNsYXNzICpjbGFz cykKLSAgIG9iamVjdF9jbGFzcy0+Y29uc3RydWN0b3IgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9j b25zdHJ1Y3RvcjsKLSAgIG9iamVjdF9jbGFzcy0+ZGlzcG9zZSA9IHBob3Rvc190cmFja2VyX3F1 ZXVlX2Rpc3Bvc2U7Ci0gICBvYmplY3RfY2xhc3MtPmZpbmFsaXplID0gcGhvdG9zX3RyYWNrZXJf cXVldWVfZmluYWxpemU7Ci0rICBvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IHBob3Rvc190 cmFja2VyX3F1ZXVlX2dldF9wcm9wZXJ0eTsKLSsgIG9iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5 ID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfc2V0X3Byb3BlcnR5OwotKwotKyAgZ19vYmplY3RfY2xh c3NfaW5zdGFsbF9wcm9wZXJ0eSAob2JqZWN0X2NsYXNzLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUFJPUF9NSU5FUl9GU19SRUFEWSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuICgidHJhY2tlci1taW5lci1mcy1y ZWFkeSIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIlRyYWNrZXIgTWluZXIgRlMgcmVhZHkiLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUUlVFIGlmIGl0IGlzIHBvc3Np YmxlIHRvIHF1ZXJ5IFRyYWNrZXIgaW5kZXhlciIsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9SRUFEQUJM RSkpOwotKwotKyAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAob2JqZWN0X2NsYXNz LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9NSU5FUl9GU19CVVNO QU1FLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0 cmluZyAoInRyYWNrZXItbWluZXItZnMtYnVzbmFtZSIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVHJhY2tlciBNaW5lciBGUyBidXNu YW1lIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJELUJ1cyBuYW1lIG9mIHRoZSBUcmFja2VyIGluZGV4ZXIgZGFlbW9uIiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R19QQVJBTV9SRUFEQUJMRSkpOwotIH0KLSAKLSAKLUBAIC0yNzQsMTMgKzM4MCwxNiBAQCBzdGF0 aWMgZ2Jvb2xlYW4KLSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9pbml0YWJsZV9pbml0IChHSW5pdGFi bGUgKmluaXRhYmxlLCBHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlLCBHRXJyb3IgKiplcnJvcikK LSB7Ci0gICBQaG90b3NUcmFja2VyUXVldWUgKnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9RVUVVRSAo aW5pdGFibGUpOwotKyAgVHJhY2tlclNwYXJxbENvbm5lY3Rpb25GbGFncyB0cmFja2VyX2ZsYWdz OwotKyAgZ19hdXRvcHRyIChHRmlsZSkgc3RvcmUgPSBOVUxMOwotICAgZ2Jvb2xlYW4gcmV0X3Zh bCA9IEZBTFNFOwotKyAgZ2Jvb2xlYW4gbWluZXJfb2sgPSBGQUxTRTsKLSAKLSAgIEdfTE9DSyAo aW5pdF9sb2NrKTsKLSAKLSAgIGlmIChzZWxmLT5pc19pbml0aWFsaXplZCkKLSAgICAgewotLSAg ICAgIGlmIChzZWxmLT5jb25uZWN0aW9uICE9IE5VTEwpCi0rICAgICAgaWYgKHNlbGYtPmxvY2Fs X2Nvbm5lY3Rpb24gIT0gTlVMTCAmJiBzZWxmLT5taW5lcl9mc19jb25uZWN0aW9uICE9IE5VTEwp Ci0gICAgICAgICByZXRfdmFsID0gVFJVRTsKLSAgICAgICBlbHNlCi0gICAgICAgICBnX2Fzc2Vy dF9ub25udWxsIChzZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvcik7Ci1AQCAtMjkwLDEzICszOTks NDkgQEAgcGhvdG9zX3RyYWNrZXJfcXVldWVfaW5pdGFibGVfaW5pdCAoR0luaXRhYmxlICppbml0 YWJsZSwgR0NhbmNlbGxhYmxlICpjYW5jZWxsYWIKLSAKLSAgIGdfYXNzZXJ0X25vX2Vycm9yIChz ZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvcik7Ci0gCi0tICB0cmFja2VyX3NwYXJxbF9jb25uZWN0 aW9uX3NldF9kb21haW4gKCJvcmcuZ25vbWUuUGhvdG9zIik7Ci0rICAvKiBDb25uZWN0IHRvIHRo ZSBsb2NhbCBkYXRhYmFzZSB3aGljaCBzdG9yZXMgdXNlciBkYXRhLgotKyAgICoKLSsgICAqIFNh bWUgZmxhZ3MgdGhhdCB0cmFja2VyLW1pbmVyLWZzIHVzZXMgYnkgZGVmYXVsdC4gU2VlOgotKyAg ICogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3RyYWNrZXItbWluZXJzLy0vYmxvYi9t YXN0ZXIvc3JjL21pbmVycy9mcy90cmFja2VyLW1haW4uYyNMNzM1IGFuZAotKyAgICogaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3RyYWNrZXItbWluZXJzLy0vYmxvYi9tYXN0ZXIvZGF0 YS9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlci5GVFMuZ3NjaGVtYS54bWwgKi8KLSsgIHRyYWNrZXJf ZmxhZ3MgPSBUUkFDS0VSX1NQQVJRTF9DT05ORUNUSU9OX0ZMQUdTX0ZUU19FTkFCTEVfVU5BQ0NF TlQgfAotKyAgICAgICAgICAgICAgICAgIFRSQUNLRVJfU1BBUlFMX0NPTk5FQ1RJT05fRkxBR1Nf RlRTX0VOQUJMRV9TVE9QX1dPUkRTIHwKLSsgICAgICAgICAgICAgICAgICBUUkFDS0VSX1NQQVJR TF9DT05ORUNUSU9OX0ZMQUdTX0ZUU19JR05PUkVfTlVNQkVSUzsKLSsKLSsgIHN0b3JlID0gZ19m aWxlX25ld19idWlsZF9maWxlbmFtZSAoZ19nZXRfdXNlcl9kYXRhX2RpciAoKSwgImdub21lLXBo b3RvcyIsIE5VTEwpOwotKwotKyAgcGhvdG9zX2RlYnVnIChQSE9UT1NfREVCVUdfVFJBQ0tFUiwg Ik9wZW5pbmcgbG9jYWwgZGF0YWJhc2UgYXQgJXMiLCBnX2ZpbGVfcGVla19wYXRoIChzdG9yZSkp OwotKyAgc2VsZi0+bG9jYWxfY29ubmVjdGlvbiA9IHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25f bmV3ICh0cmFja2VyX2ZsYWdzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdG9yZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tlcl9zcGFycWxfZ2V0X29udG9s b2d5X25lcG9tdWsgKCksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNhbmNlbGxhYmxlLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2VsZi0+aW5pdGlhbGl6YXRpb25f ZXJyb3IpOwotIAotLSAgc2VsZi0+Y29ubmVjdGlvbiA9IHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rp b25fZ2V0IChjYW5jZWxsYWJsZSwgJnNlbGYtPmluaXRpYWxpemF0aW9uX2Vycm9yKTsKLSAgIGlm IChHX1VOTElLRUxZIChzZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvciAhPSBOVUxMKSkKLSAgICAg Z290byBvdXQ7Ci0gCi0tICByZXRfdmFsID0gVFJVRTsKLSsgIC8qIENvbm5lY3QgdG8gZmlsZXN5 c3RlbSBpbmRleGVyLiAqLwotKyAgbWluZXJfb2sgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9zdGFy dF9zZXNzaW9uX21pbmVyX2ZzIChzZWxmLCAmc2VsZi0+aW5pdGlhbGl6YXRpb25fZXJyb3IpOwot KwotKyAgaWYgKCFtaW5lcl9vayAmJiBpbnNpZGVfZmxhdHBhayAoKSkKLSsgICAgewotKyAgICAg IGdfY2xlYXJfZXJyb3IgKCZzZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvcik7Ci0rICAgICAgbWlu ZXJfb2sgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9zdGFydF9sb2NhbF9taW5lcl9mcyAoc2VsZiwg JnNlbGYtPmluaXRpYWxpemF0aW9uX2Vycm9yKTsKLSsgICAgfQotKwotKyAgaWYgKG1pbmVyX29r KQotKyAgICB7Ci0rICAgICAgcGhvdG9zX2RlYnVnIChQSE9UT1NfREVCVUdfVFJBQ0tFUiwgIlVz aW5nICVzIGFzIHRyYWNrZXItbWluZXItZnMiLCBzZWxmLT5taW5lcl9mc19idXNuYW1lKTsKLSsg ICAgICByZXRfdmFsID0gVFJVRTsKLSsgICAgfQotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgcGhv dG9zX2RlYnVnIChQSE9UT1NfREVCVUdfVFJBQ0tFUiwgIkluaXRpYWxpemF0aW9uIGZhaWxlZCBk dWUgdG8gJXMiLCBzZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvci0+bWVzc2FnZSk7Ci0rICAgICAg Z19jbGVhcl9vYmplY3QgKCZzZWxmLT5taW5lcl9mc19jb25uZWN0aW9uKTsKLSsgICAgICBnX2Ns ZWFyX29iamVjdCAoJnNlbGYtPmxvY2FsX2Nvbm5lY3Rpb24pOwotKyAgICAgIHJldF92YWwgPSBG QUxTRTsKLSsgICAgfQotKwotIAotICBvdXQ6Ci0gICBzZWxmLT5pc19pbml0aWFsaXplZCA9IFRS VUU7Ci1AQCAtMzIxLDEwICs0NjYsNDQgQEAgcGhvdG9zX3RyYWNrZXJfcXVldWVfaW5pdGFibGVf aWZhY2VfaW5pdCAoR0luaXRhYmxlSWZhY2UgKmlmYWNlKQotIFBob3Rvc1RyYWNrZXJRdWV1ZSAq Ci0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZHVwX3NpbmdsZXRvbiAoR0NhbmNlbGxhYmxlICpjYW5j ZWxsYWJsZSwgR0Vycm9yICoqZXJyb3IpCi0gewotKyAgR09iamVjdCAqc2luZ2xldG9uOwotKwot ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGNhbmNlbGxhYmxlID09IE5VTEwgfHwgR19JU19DQU5D RUxMQUJMRSAoY2FuY2VsbGFibGUpLCBOVUxMKTsKLSAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChl cnJvciA9PSBOVUxMIHx8ICplcnJvciA9PSBOVUxMLCBOVUxMKTsKLSAKLS0gIHJldHVybiBnX2lu aXRhYmxlX25ldyAoUEhPVE9TX1RZUEVfVFJBQ0tFUl9RVUVVRSwgY2FuY2VsbGFibGUsIGVycm9y LCBOVUxMKTsKLSsgIHNpbmdsZXRvbiA9IGdfb2JqZWN0X25ldyAoUEhPVE9TX1RZUEVfVFJBQ0tF Ul9RVUVVRSwgTlVMTCk7Ci0rCi0rICBpZiAoZ19pbml0YWJsZV9pbml0IChHX0lOSVRBQkxFIChz aW5nbGV0b24pLCBjYW5jZWxsYWJsZSwgZXJyb3IpKQotKyAgICAgIHJldHVybiBQSE9UT1NfVFJB Q0tFUl9RVUVVRSAoc2luZ2xldG9uKTsKLSsKLSsgIC8qIE9uIGVycm9yIHdlIGRlbGliZXJhdGVs eSBkb24ndCB1bnJlZiB0aGUgb2JqZWN0IHNvIHRoYXQgd2Ugd29uJ3QgdHJ5Ci0rICAgKiBhbmQg cmUtaW5pdGlhbGl6ZSBUcmFja2VyIHdoZW4gY2FsbGVkIGFnYWluLgotKyAgICovCi0rICByZXR1 cm4gTlVMTDsKLSt9Ci0rCi0rCi0rY29uc3QgZ2NoYXIgKgotK3Bob3Rvc190cmFja2VyX3F1ZXVl X2dldF9taW5lcl9mc19idXNuYW1lIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYpCi0rewotKyAg cmV0dXJuIHNlbGYtPm1pbmVyX2ZzX2J1c25hbWU7Ci0rfQotKwotKwotK2NvbnN0IGdjaGFyICoK LStwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNfY29udHJvbF9idXNuYW1lIChQaG90 b3NUcmFja2VyUXVldWUgKnNlbGYpCi0rewotKyAgcmV0dXJuIHNlbGYtPm1pbmVyX2ZzX2NvbnRy b2xfYnVzbmFtZTsKLSt9Ci0rCi0rCi0rVHJhY2tlck5vdGlmaWVyICoKLStwaG90b3NfdHJhY2tl cl9xdWV1ZV9nZXRfbm90aWZpZXIgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZikKLSt7Ci0rICAv KiBXZSB3YW50IG5vdGlmaWNhdGlvbnMgb24gZmlsZXN5c3RlbSBjaGFuZ2VzLCB3ZSBkb24ndCBu ZWVkIHRoZW0gZm9yIHRoZQotKyAgICogbG9jYWwgZGF0YWJhc2Ugd2hpY2ggd2UgbWFuYWdlIG91 cnNlbHZlcy4KLSsgICAqLwotKyAgcmV0dXJuIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fY3Jl YXRlX25vdGlmaWVyIChzZWxmLT5taW5lcl9mc19jb25uZWN0aW9uKTsKLSB9Ci0gCi0gCi1AQCAt MzUzLDYgKzUzMiw3IEBAIHBob3Rvc190cmFja2VyX3F1ZXVlX3NlbGVjdCAoUGhvdG9zVHJhY2tl clF1ZXVlICpzZWxmLAotIH0KLSAKLSAKLSsKLSB2b2lkCi0gcGhvdG9zX3RyYWNrZXJfcXVldWVf dXBkYXRlIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQaG90b3NRdWVyeSAqcXVlcnksCi1kaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFj a2VyLXF1ZXVlLmggYi9zcmMvcGhvdG9zLXRyYWNrZXItcXVldWUuaAotaW5kZXggOTNkOTczMDYu LjZlMzFlY2Y2IDEwMDY0NAotLS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmgKLSsrKyBi L3NyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5oCi1AQCAtMjQsMTYgKzI0LDIzIEBACi0gI2RlZmlu ZSBQSE9UT1NfVFJBQ0tFUl9RVUVVRV9ICi0gCi0gI2luY2x1ZGUgPGdpby9naW8uaD4KLSsjaW5j bHVkZSA8bGlidHJhY2tlci1zcGFycWwvdHJhY2tlci1zcGFycWwuaD4KLSAKLSAjaW5jbHVkZSAi cGhvdG9zLXF1ZXJ5LmgiCi0gCi0gR19CRUdJTl9ERUNMUwotIAotKyNkZWZpbmUgVFJBQ0tFUl9Q SUNUVVJFU19HUkFQSCAiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My90 cmFja2VyI1BpY3R1cmVzIgotKwotICNkZWZpbmUgUEhPVE9TX1RZUEVfVFJBQ0tFUl9RVUVVRSAo cGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X3R5cGUgKCkpCi0gR19ERUNMQVJFX0ZJTkFMX1RZUEUg KFBob3Rvc1RyYWNrZXJRdWV1ZSwgcGhvdG9zX3RyYWNrZXJfcXVldWUsIFBIT1RPUywgVFJBQ0tF Ul9RVUVVRSwgR09iamVjdCk7Ci0gCi0gUGhvdG9zVHJhY2tlclF1ZXVlICAgICpwaG90b3NfdHJh Y2tlcl9xdWV1ZV9kdXBfc2luZ2xldG9uICAgICAgICAgIChHQ2FuY2VsbGFibGUgKmNhbmNlbGxh YmxlLCBHRXJyb3IgKiplcnJvcik7Ci0gCi0rY29uc3QgZ2NoYXIgKiAgICAgICAgICBwaG90b3Nf dHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNfYnVzbmFtZSAgICAgICAgIChQaG90b3NUcmFja2Vy UXVldWUgKnNlbGYpOwotK2NvbnN0IGdjaGFyICogICAgICAgICAgcGhvdG9zX3RyYWNrZXJfcXVl dWVfZ2V0X21pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxm KTsKLStUcmFja2VyTm90aWZpZXIgKiAgICAgIHBob3Rvc190cmFja2VyX3F1ZXVlX2dldF9ub3Rp ZmllciAgICAgICAgICAgICAgICAgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZik7Ci0rCi0gdm9p ZCAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9zZWxlY3QgICAgICAgICAg ICAgICAgIChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaG90b3NRdWVy eSAqcXVlcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlLAotZGlmZiAt LWdpdCBhL3NyYy9waG90b3MtdHJhY2tlci1yZXNvdXJjZXMueG1sIGIvc3JjL3Bob3Rvcy10cmFj a2VyLXJlc291cmNlcy54bWwKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMTgxNzdh YTAuLjAwMDAwMDAwCi0tLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItcmVzb3VyY2VzLnhtbAotKysr IC9kZXYvbnVsbAotQEAgLTEsMzEgKzAsMCBAQAotLTwhRE9DVFlQRSBub2RlIFBVQkxJQwotLSIt Ly9mcmVlZGVza3RvcC8vRFREIEQtQlVTIE9iamVjdCBJbnRyb3NwZWN0aW9uIDEuMC8vRU4iCi0t Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnL3N0YW5kYXJkcy9kYnVzLzEuMC9pbnRyb3NwZWN0 LmR0ZCI+Ci0tCi0tPCEtLQotLSBQaG90b3MgLSBhY2Nlc3MsIG9yZ2FuaXplIGFuZCBzaGFyZSB5 b3VyIHBob3RvcyBvbiBHTk9NRQotLSBDb3B5cmlnaHQgwqkgMjAxMiDigJMgMjAxOSBSZWQgSGF0 LCBJbmMuCi0tCi0tIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0tIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0tIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0tIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0tCi0tIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotLSBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot LSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCi0tIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0t Ci0tIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCi0tIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotLS0tPgotLQotLTxub2RlIG5hbWU9Ii8iIHht bG5zOmRvYz0iaHR0cDovL3d3dy5mcmVlZGVza3RvcC5vcmcvZGJ1cy8xLjAvZG9jLmR0ZCI+Ci0t ICA8aW50ZXJmYWNlIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5UcmFja2VyMS5SZXNvdXJjZXMiPgot LSAgICA8c2lnbmFsIG5hbWU9IkdyYXBoVXBkYXRlZCI+Ci0tICAgICAgPGFyZyBuYW1lPSJjbGFz c05hbWUiIHR5cGU9InMiIC8+Ci0tICAgICAgPGFyZyBuYW1lPSJkZWxldGVFdmVudHMiIHR5cGU9 ImEoaWlpaSkiIC8+Ci0tICAgICAgPGFyZyBuYW1lPSJpbnNlcnRFdmVudHMiIHR5cGU9ImEoaWlp aSkiIC8+Ci0tICAgIDwvc2lnbmFsPgotLSAgPC9pbnRlcmZhY2U+Ci0tPC9ub2RlPgotZGlmZiAt LWdpdCBhL3NyYy9waG90b3MtdXRpbHMuYyBiL3NyYy9waG90b3MtdXRpbHMuYwotaW5kZXggZDY1 OWI0N2QuLjcyZDJlOThiIDEwMDY0NAotLS0tIGEvc3JjL3Bob3Rvcy11dGlscy5jCi0rKysgYi9z cmMvcGhvdG9zLXV0aWxzLmMKLUBAIC0xMzI0LDcgKzEzMjQsMTMgQEAgcGhvdG9zX3V0aWxzX3Nl dF9lZGl0ZWRfbmFtZSAoY29uc3QgZ2NoYXIgKnVybiwgY29uc3QgZ2NoYXIgKnRpdGxlKQotICAg Z19hdXRvcHRyIChQaG90b3NUcmFja2VyUXVldWUpIHF1ZXVlID0gTlVMTDsKLSAgIGdfYXV0b2Zy ZWUgZ2NoYXIgKnNwYXJxbCA9IE5VTEw7Ci0gCi0tICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYg KCJJTlNFUlQgT1IgUkVQTEFDRSB7IDwlcz4gbmllOnRpdGxlIFwiJXNcIiB9IiwgdXJuLCB0aXRs ZSk7Ci0rICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJXSVRIIHRyYWNrZXI6UGljdHVyZXMg IgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiREVMRVRFIHsgPCVzPiBuaWU6dGl0bGUg P3RpdGxlIH0gIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSU5TRVJUIHsgIgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiICA8JXM+IGEgbm1tOlBob3RvIDsgIgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiICAgIG5pZTp0aXRsZSBcIiVzXCIgLiAiCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJ9IgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAi V0hFUkUgeyA8JXM+IG5pZTp0aXRsZSA/dGl0bGUgfSIsIHVybiwgdXJuLCB0aXRsZSwgdXJuKTsK LSAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoTlVMTCwgc3BhcnFsKTsKLSAKLSAgIHsKLUBA IC0xMzUyLDkgKzEzNTgsMTkgQEAgcGhvdG9zX3V0aWxzX3NldF9mYXZvcml0ZSAoY29uc3QgZ2No YXIgKnVybiwgZ2Jvb2xlYW4gaXNfZmF2b3JpdGUpCi0gICBnX2F1dG9wdHIgKFBob3Rvc1RyYWNr ZXJRdWV1ZSkgcXVldWUgPSBOVUxMOwotICAgZ19hdXRvZnJlZSBnY2hhciAqc3BhcnFsID0gTlVM TDsKLSAKLS0gIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIiVzIHsgPCVzPiBuYW86aGFzVGFn IG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSB9IiwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGlzX2Zhdm9yaXRlKSA/ICJJTlNFUlQgT1IgUkVQTEFDRSIgOiAiREVMRVRFIiwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJuKTsKLSsgIGlmIChpc19mYXZvcml0ZSkKLSsg ICAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiSU5TRVJUIERBVEEgeyAiCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIiAgR1JBUEggdHJhY2tlcjpQaWN0dXJlcyB7IgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPCVzPiBhIG5tbTpQaG90byA7ICIKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgbmFvOmhhc1RhZyBuYW86cHJlZGVmaW5l ZC10YWctZmF2b3JpdGUgIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIH0gIgot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ9IiwgdXJuKTsKLSsgIGVsc2UKLSsgICAg c3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiREVMRVRFIERBVEEgeyIKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiICBHUkFQSCB0cmFja2VyOlBpY3R1cmVzIHsiCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIiAgICA8JXM+IG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQt dGFnLWZhdm9yaXRlICIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICB9ICIKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAifSIsIHVybik7Ci0gICBxdWVyeSA9IHBob3Rv c19xdWVyeV9uZXcgKE5VTEwsIHNwYXJxbCk7Ci0gCi0gICB7Ci1kaWZmIC0tZ2l0IGEvc3JjL3Bo b3Rvcy11dGlscy5oIGIvc3JjL3Bob3Rvcy11dGlscy5oCi1pbmRleCBhNGQ2OWFiZi4uNTcwNjk4 OTIgMTAwNjQ0Ci0tLS0gYS9zcmMvcGhvdG9zLXV0aWxzLmgKLSsrKyBiL3NyYy9waG90b3MtdXRp bHMuaAotQEAgLTQ2LDcgKzQ2LDcgQEAgR19CRUdJTl9ERUNMUwotICNkZWZpbmUgUEhPVE9TX1RS QUNLRVJfQ09OVFJPTExFUl9FWFRFTlNJT05fUE9JTlRfTkFNRSAicGhvdG9zLXRyYWNrZXItY29u dHJvbGxlciIKLSAKLSAjZGVmaW5lIFBIT1RPU19DT0xMRUNUSU9OX1NDUkVFTlNIT1QgXAotLSAg Imh0dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRvbG9naWVzLzIwMDcvMDMvMjIvbmZv I2ltYWdlLWNhdGVnb3J5LXNjcmVlbnNob3QiCi0rICAiaHR0cDovL3RyYWNrZXIuYXBpLmdub21l Lm9yZy9vbnRvbG9neS92My9uZm8jaW1hZ2UtY2F0ZWdvcnktc2NyZWVuc2hvdCIKLSAjZGVmaW5l IFBIT1RPU19FWFBPUlRfU1VCUEFUSCAiRXhwb3J0cyIKLSAKLSB0eXBlZGVmIGVudW0KLWRpZmYg LS1naXQgYS9zcmMvcXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvYWxs LnNwYXJxbC50ZW1wbGF0ZQotaW5kZXggMWNlZjk4ZTguLjE0ZTA4MDI3IDEwMDY0NAotLS0tIGEv c3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZQotKysrIGIvc3JjL3F1ZXJpZXMvYWxsLnNw YXJxbC50ZW1wbGF0ZQotQEAgLTEsMzAgKzEsNDIgQEAKLS1TRUxFQ1Qge3twcm9qZWN0aW9ufX0K LStTRUxFQ1Qge3tmaW5hbF9wcm9qZWN0aW9ufX0KLStGUk9NIE5BTUVEIHRyYWNrZXI6UGljdHVy ZXMKLSB7Ci0gICAgIHsKLS0gICAgICAgIFNFTEVDVCB7e3Byb2plY3Rpb259fQotKyAgICAgICAg U0VMRUNUIHt7bWFpbl9wcm9qZWN0aW9ufX0KLSAgICAgICAgIHsKLSAgICAgICAgICAgICB7Ci0g ICAgICAgICAgICAgICAgIFNFTEVDVCA/dXJuIENPVU5UKD9pdGVtKSBBUyA/Y291bnQKLSAgICAg ICAgICAgICAgICAgewotKyAgICAgICAgICAgICAgICAgICAge3t2YWx1ZXN9fQotKyAgICAgICAg ICAgICAgICAgICAgVkFMVUVTICg/ZmlsZSA/ZmlsZW5hbWUgP2NyZWF0b3IgP3B1Ymxpc2hlcikg eyAoIiIgIiIgIiIgIiIpIH0KLSAgICAgICAgICAgICAgICAgICAgID91cm4gYSBuZm86RGF0YUNv bnRhaW5lci4KLS0gICAgICAgICAgICAgICAgICAgID9pdGVtIGEgbm1tOlBob3RvOyBuaWU6aXNQ YXJ0T2YgP3Vybi4KLS0gICAgICAgICAgICAgICAgfSBHUk9VUCBCWSA/dXJuCi0rICAgICAgICAg ICAgICAgICAgICA/aXRlbSBhIG5tbTpQaG90byA7Ci0rICAgICAgICAgICAgICAgICAgICAgICBu aWU6aXNQYXJ0T2YgP3VybiAuCi0rICAgICAgICAgICAgICAgICAgICB7e2l0ZW1fcGF0dGVybn19 Ci0rICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgR1JPVVAgQlkgP3VybgotICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICBGSUxURVIgKD9jb3VudCA+IDAgJiYge3tjb2xsZWN0 aW9uc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQotICAgICAgICAgfQot LSAgICAgICAgR1JPVVAgQlkgP3VybgotICAgICB9Ci0gICAgIFVOSU9OCi0gICAgIHsKLS0gICAg ICAgIFNFTEVDVCB7e3Byb2plY3Rpb259fQotKyAgICAgICAgU0VMRUNUIHt7c2Vjb25kX3Byb2pl Y3Rpb259fQotICAgICAgICAgewotLSAgICAgICAgICAgID91cm4gYSBubW06UGhvdG8gLgotLSAg ICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KLS0gICAg ICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQotICAg ICAgICAgICAgIHt7aXRlbV9wYXR0ZXJufX0KLS0gICAgICAgICAgICBGSUxURVIgKHt7cGhvdG9z X2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVy fX0pCi0rICAgICAgICAgICAgU0VSVklDRSA8ZGJ1czp7e21pbmVyX2ZzX2J1c25hbWV9fT4KLSsg ICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICAgIFNFTEVDVCB7e21haW5fcHJvamVjdGlvbn19 Ci0rICAgICAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgICAgICAgIHt7dmFsdWVzfX0KLSsg ICAgICAgICAgICAgICAgICAgID91cm4gYSBubW06UGhvdG8gOwotKyAgICAgICAgICAgICAgICAg ICAgICAgIG5pZTppc1N0b3JlZEFzID9maWxlIC4KLSsgICAgICAgICAgICAgICAgICAgIE9QVElP TkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KLSsgICAgICAgICAgICAgICAgICAg IE9QVElPTkFMIHsgP3VybiBuY286cHVibGlzaGVyID9wdWJsaXNoZXIgLiB9Ci0rICAgICAgICAg ICAgICAgICAgICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2Vf ZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCi0rICAgICAgICAgICAgICAgIH0KLSsgICAg ICAgICAgICB9Ci0gICAgICAgICB9Ci0tICAgICAgICBHUk9VUCBCWSA/dXJuCi0gICAgIH0KLSB9 Ci0ge3tvcmRlcn19Ci1kaWZmIC0tZ2l0IGEvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFs LnRlbXBsYXRlIGIvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlCi1pbmRl eCAyMGIzNWNkNi4uNGRmYjM0NWEgMTAwNjQ0Ci0tLS0gYS9zcmMvcXVlcmllcy9jb2xsZWN0aW9u cy5zcGFycWwudGVtcGxhdGUKLSsrKyBiL3NyYy9xdWVyaWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50 ZW1wbGF0ZQotQEAgLTEsMTQgKzEsMjAgQEAKLS1TRUxFQ1Qge3twcm9qZWN0aW9ufX0KLStTRUxF Q1Qge3tmaW5hbF9wcm9qZWN0aW9ufX0KLSB7Ci0rICAgIFNFTEVDVCB7e21haW5fcHJvamVjdGlv bn19Ci0gICAgIHsKLS0gICAgICAgIFNFTEVDVCA/dXJuIENPVU5UKD9pdGVtKSBBUyA/Y291bnQK LSAgICAgICAgIHsKLS0gICAgICAgICAgICA/dXJuIGEgbmZvOkRhdGFDb250YWluZXIuCi0tICAg ICAgICAgICAgP2l0ZW0gYSBubW06UGhvdG87IG5pZTppc1BhcnRPZiA/dXJuLgotLSAgICAgICAg fSBHUk9VUCBCWSA/dXJuCi0rICAgICAgICAgICAgU0VMRUNUID91cm4gQ09VTlQoP2l0ZW0pIEFT ID9jb3VudAotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgICAge3t2YWx1ZXN9fQotKyAg ICAgICAgICAgICAgICBWQUxVRVMgKD9maWxlID9maWxlbmFtZSA/Y3JlYXRvciA/cHVibGlzaGVy KSB7ICgiIiAiIiAiIiAiIikgfQotKyAgICAgICAgICAgICAgICA/dXJuIGEgbmZvOkRhdGFDb250 YWluZXIgLgotKyAgICAgICAgICAgICAgICA/aXRlbSBhIG5tbTpQaG90byA7Ci0rICAgICAgICAg ICAgICAgICAgIG5pZTppc1BhcnRPZiA/dXJuIC4KLSsgICAgICAgICAgICB9Ci0rICAgICAgICAg ICAgR1JPVVAgQlkgP3VybgotKyAgICAgICAgfQotKyAgICAgICAgRklMVEVSICg/Y291bnQgPiAw ICYmIHt7Y29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkK LSAgICAgfQotLSAgICBGSUxURVIgKD9jb3VudCA+IDAgJiYge3tjb2xsZWN0aW9uc19kZWZhdWx0 X2ZpbHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQotIH0KLS1HUk9VUCBCWSA/dXJuCi0ge3tv cmRlcn19Ci0ge3tvZmZzZXRfbGltaXR9fQotZGlmZiAtLWdpdCBhL3NyYy9xdWVyaWVzL2Zhdm9y aXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGUgYi9zcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Mu c3BhcnFsLnRlbXBsYXRlCi1pbmRleCAwODg1YTA4YS4uOWEwZDc4MDYgMTAwNjQ0Ci0tLS0gYS9z cmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlCi0rKysgYi9zcmMvcXVl cmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlCi1AQCAtMSwxMiArMSwyMCBAQAot LVNFTEVDVCB7e3Byb2plY3Rpb259fQotK1NFTEVDVCB7e2ZpbmFsX3Byb2plY3Rpb259fQotK0ZS T00gdHJhY2tlcjpQaWN0dXJlcwotIHsKLSAgICAgP3VybiBhIG5tbTpQaG90byAuCi0gICAgID91 cm4gYSBubW06UGhvdG87IG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRlIC4K LS0gICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9yID9jcmVhdG9yIC4gfQotLSAgICBPUFRJ T05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQotLSAgICB7e2l0ZW1fcGF0 dGVybn19Ci0tICAgIEZJTFRFUiAoe3twaG90b3NfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NvdXJj ZV9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKLSsgICAgU0VSVklDRSA8ZGJ1czp7e21p bmVyX2ZzX2J1c25hbWV9fT4KLSsgICAgewotKyAgICAgICAgU0VMRUNUIHt7bWFpbl9wcm9qZWN0 aW9ufX0KLSsgICAgICAgIHsKLSsgICAgICAgICAgICA/dXJuIGEgbm1tOlBob3RvIDsKLSsgICAg ICAgICAgICAgICAgbmllOmlzU3RvcmVkQXMgP2ZpbGUgLgotKyAgICAgICAgICAgIE9QVElPTkFM IHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KLSsgICAgICAgICAgICBPUFRJT05BTCB7 ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQotKyAgICAgICAgICAgIHt7aXRlbV9w YXR0ZXJufX0KLSsgICAgICAgICAgICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0g JiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCi0rICAgICAgICB9Ci0r ICAgIH0KLSB9Ci0tR1JPVVAgQlkgP3VybgotIHt7b3JkZXJ9fQotIHt7b2Zmc2V0X2xpbWl0fX0K LWRpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlIGIvc3JjL3F1 ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQotaW5kZXggNGViMTBiNzQuLjZhZGUzNWUyIDEw MDY0NAotLS0tIGEvc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQotKysrIGIvc3Jj L3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQotQEAgLTEsMTEgKzEsMTkgQEAKLS1TRUxF Q1Qge3twcm9qZWN0aW9ufX0KLStTRUxFQ1Qge3tmaW5hbF9wcm9qZWN0aW9ufX0KLStGUk9NIHRy YWNrZXI6UGljdHVyZXMKLSB7Ci0tICAgID91cm4gYSBubW06UGhvdG8gLgotLSAgICBPUFRJT05B TCB7ID91cm4gbmNvOmNyZWF0b3IgP2NyZWF0b3IgLiB9Ci0tICAgIE9QVElPTkFMIHsgP3VybiBu Y286cHVibGlzaGVyID9wdWJsaXNoZXIgLiB9Ci0tICAgIHt7aXRlbV9wYXR0ZXJufX0KLS0gICAg RklMVEVSICh7e3Bob3Rvc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c291cmNlX2ZpbHRlcn19ICYm IHt7c2VhcmNoX2ZpbHRlcn19KQotKyAgICBTRVJWSUNFIDxkYnVzOnt7bWluZXJfZnNfYnVzbmFt ZX19PgotKyAgICB7Ci0rICAgICAgICBTRUxFQ1Qge3ttYWluX3Byb2plY3Rpb259fQotKyAgICAg ICAgewotKyAgICAgICAgICAgIHt7dmFsdWVzfX0KLSsgICAgICAgICAgICA/dXJuIGEgbm1tOlBo b3RvIDsKLSsgICAgICAgICAgICAgICAgbmllOmlzU3RvcmVkQXMgP2ZpbGUgLgotKyAgICAgICAg ICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KLSsgICAgICAgICAg ICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQotKyAgICAgICAg ICAgIHt7aXRlbV9wYXR0ZXJufX0KLSsgICAgICAgICAgICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1 bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCi0r ICAgICAgICB9Ci0rICAgIH0KLSB9Ci0tR1JPVVAgQlkgP3VybgotIHt7b3JkZXJ9fQotIHt7b2Zm c2V0X2xpbWl0fX0KLS0tIAotR2l0TGFiCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtcGhv dG9zL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUKaW5kZXggY2EzZjRi ZTcxNjJlLi5mZWUxOTcyM2VkODkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtcGhvdG9zJwogcGtnbmFtZT1nbm9tZS1waG90 b3MKLXZlcnNpb249My4zOC4wCit2ZXJzaW9uPTQwLjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBl cj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KQEAgLTksMTUgKzksMTQgQEAgaG9zdG1ha2VkZXBl bmRzPSJwa2ctY29uZmlnIGdldHRleHQgaXRzdG9vbCBnbGliLWRldmVsIGdkay1waXhidWYgbGli cnN2ZyIKIG1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBiYWJsLWRldmVsIGV4ZW1waS1kZXZlbCBs Y21zMi1kZXZlbAogIGdmYmdyYXBoLWRldmVsIHRyYWNrZXIzLWRldmVsIGxpYmV4aWYtZGV2ZWwg bGlicnN2Zy1kZXZlbCBncmlsby1kZXZlbAogIGxpYmdleGl2Mi1kZXZlbCBnbm9tZS1vbmxpbmUt YWNjb3VudHMtZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBsaWJnZGF0YS1kZXZlbAotIGdlb2Nv ZGUtZ2xpYi1kZXZlbCBsaWJkYXp6bGUtZGV2ZWwgZ2VnbC1kZXZlbCIKKyBnZW9jb2RlLWdsaWIt ZGV2ZWwgbGliZGF6emxlLWRldmVsIGdlZ2wtZGV2ZWwgbGliaGFuZHkxLWRldmVsIgogZGVwZW5k cz0iZGVza3RvcC1maWxlLXV0aWxzIHRyYWNrZXIzIHRyYWNrZXIzLW1pbmVycyIKIHNob3J0X2Rl c2M9IkFjY2Vzcywgb3JnYW5pemUsIGFuZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRSIKIG1h aW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Q aG90b3MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZ25vbWUtcGhvdG9zLyR7dmVyc2lvbiUu Kn0vZ25vbWUtcGhvdG9zLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NjY3ZjM5NDc3NTc5 ZDU3NzQ3MDc0MGUwMWYzN2IwNWM2MmU0NjFlNmY2ZGE2Mzc3NzI0ZDhmMzk5M2UxYzRjNAotcGF0 Y2hfYXJncz0iLU5wMSIKK2NoZWNrc3VtPWUwMmQ3M2UxMzhhZjhiMjg2OGI1Y2FkN2ZhYTFiZGQy NzhhZWFkZTNiNmMzYzkyODM2NTExYTRlNmYzYWYxYWYKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgog YnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCg== --===============2231488532724498466==--