From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH 05/13] xen/arm: Add command line option to control SSBD mitigation Date: Thu, 24 May 2018 10:52:21 +0100 Message-ID: <614031dd-3825-5c69-9083-7ececc303f34@arm.com> References: <20180522174254.27551-1-julien.grall@arm.com> <20180522174254.27551-6-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fLmv4-0003Bs-Ub for xen-devel@lists.xenproject.org; Thu, 24 May 2018 09:52:26 +0000 In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Stefano Stabellini Cc: xen-devel@lists.xenproject.org, andre.przywara@arm.com List-Id: xen-devel@lists.xenproject.org SGkgU3RlZmFubywKCk9uIDIzLzA1LzE4IDIzOjM0LCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6 Cj4gT24gVHVlLCAyMiBNYXkgMjAxOCwgSnVsaWVuIEdyYWxsIHdyb3RlOgo+PiBPbiBhIHN5c3Rl bSB3aGVyZSB0aGUgZmlybXdhcmUgaW1wbGVtZW50cyBBUkNIX1dPUktBUk9VTkRfMiwgaXQgbWF5 IGJlCj4+IHVzZWZ1bCB0byBlaXRoZXIgcGVybWFuZW50bHkgZW5hYmxlIG9yIGRpc2FibGUgdGhl IHdvcmthcm91bmQgZm9yIGNhc2VzCj4+IHdoZXJlIHRoZSB1c2VyIGRlY2lkZXMgdGhhdCB0aGV5 J2QgcmF0aGVyIG5vdCBnZXQgYSB0cmFwIG92ZXJoZWFkLCBhbmQKPj4ga2VlcCB0aGUgbWl0aWdh dGlvbiBwZXJtYW5lbnRseSBvbiBvciBvZmYgaW5zdGVhZCBvZiBzd2l0Y2hpbmcgaXQgb24KPj4g ZXhjZXB0aW9uIGVudHJ5L2V4aXQuCj4+Cj4+IEluIGFueSBjYXNlLCBkZWZhdWx0IHRvIG1pdGln YXRpb24gYmVpbmcgZW5hYmxlZC4KPj4KPj4gQXQgdGhlIHNhbWUgdGltZSBwcm92aWRlIGEgYWNj ZXNzb3IgdG8ga25vdyB0aGUgc3RhdGUgb2YgdGhlIG1pdGlnYXRpb24uCj4+Cj4+IFNJZ25lZC1v ZmYtYnk6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+Cj4+IC0tLQo+PiAgIGRv Y3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duIHwgIDE4ICsrKysrKwo+PiAgIHhlbi9h cmNoL2FybS9jcHVlcnJhdGEuYyAgICAgICAgICAgIHwgMTE1ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLQo+PiAgIHhlbi9pbmNsdWRlL2FzbS1hcm0vY3B1ZXJyYXRhLmggICAg IHwgIDIxICsrKysrKysKPj4gICB4ZW4vaW5jbHVkZS9hc20tYXJtL3NtY2NjLmggICAgICAgICB8 ICAgMSArCj4+ICAgNCBmaWxlcyBjaGFuZ2VkLCAxNDQgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRp b25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJr ZG93biBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCj4+IGluZGV4IDg3MTJh ODMzYTIuLjk2MjAyOGI2ZWQgMTAwNjQ0Cj4+IC0tLSBhL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1s aW5lLm1hcmtkb3duCj4+ICsrKyBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3du Cj4+IEBAIC0xNzU2LDYgKzE3NTYsMjQgQEAgZW5mb3JjZXMgdGhlIG1heGltdW0gdGhlb3JldGlj YWxseSBuZWNlc3NhcnkgdGltZW91dCBvZiA2NzBtcy4gQW55IG51bWJlcgo+PiAgIGlzIGJlaW5n IGludGVycHJldGVkIGFzIGEgY3VzdG9tIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLiBaZXJvIG9y IGJvb2xlYW4KPj4gICBmYWxzZSBkaXNhYmxlIHRoZSBxdWlyayB3b3JrYXJvdW5kLCB3aGljaCBp cyBhbHNvIHRoZSBkZWZhdWx0Lgo+PiAgIAo+PiArIyMjIHNwZWMtY3RybCAoQXJtKQo+PiArPiBg PSBMaXN0IG9mIFsgc3NiZD1mb3JjZS1kaXNhYmxlfHJ1bnRpbWV8Zm9yY2UtZW5hYmxlIF1gCj4g Cj4gV2h5IGEgbGlzdD8gU2hvdWxkbid0IGl0IGJlIG9uZSBvciB0aGUgb3RoZXI/CgpCZWNhdXNl IEkgYW0gdGhpbmtpbmcgdG8gZXh0ZW5kIGl0IGFuZCBhZGQgdGhlIHBvc3NpYmlsaXR5IHRvIGRp c2FibGUgCmJyYW5jaCBwcmVkaWN0b3IgaGFyZGVuaW5nLiBTbyBJIGRlY2lkZWQgdG8gZ2V0IHRo ZSBjb2RlIGFuZCAKZG9jdW1lbnRhdGlvbiByZWFkeSByaWdodCBub3cuCgo+IAo+PiArQ29udHJv bHMgZm9yIHNwZWN1bGF0aXZlIGV4ZWN1dGlvbiBzaWRlY2hhbm5lbCBtaXRpZ2F0aW9ucy4KPj4g Kwo+PiArVGhlIG9wdGlvbiBgc3NiZD1gIGlzIHVzZWQgdG8gY29udHJvbCB0aGUgc3RhdGUgb2Yg U3BlY3VsYXRpdmUgU3RvcmUKPj4gK0J5cGFzcyBEaXNhYmxlIChTU0JEKSBtaXRpZ2F0aW9uLgo+ PiArCj4+ICsqIGBzc2JkPWZvcmNlLWRpc2FibGVgIHdpbGwga2VlcCB0aGUgbWl0aWdhdGlvbiBw ZXJtYW5lbnRseSBvZmYuIFRoZSBndWVzdAo+PiArd2lsbCBub3QgYmUgYWJsZSB0byBjb250cm9s IHRoZSBzdGF0ZSBvZiB0aGUgbWl0aWdhdGlvbi4KPj4gKyogYHNzYmQ9cnVudGltZWAgd2lsbCBh bHdheXMgdHVybiBvbiB0aGUgbWl0aWdhdGlvbiB3aGVuIHJ1bm5pbmcgaW4gdGhlCj4+ICtoeXBl cnZpc29yIGNvbnRleHQuIFRoZSBndWVzdCB3aWxsIGJlIHRvIHR1cm4gb24vb2ZmIHRoZSBtaXRp Z2F0aW9uIGZvcgo+PiAraXRzZWxmIGJ5IHVzaW5nIHRoZSBmaXJtd2FyZSBpbnRlcmZhY2UgQVJD SFxfV09SS0FST1VORFxfMi4KPj4gKyogYHNzYmQ9Zm9yY2UtZW5hYmxlYCB3aWxsIGtlZXAgdGhl IG1pdGlnYXRpb24gcGVybWFuZW50bHkgb24uIFRoZSBndWVzdCB3aWxsCj4+ICtub3QgYmUgYWJs ZSB0byBjb250cm9sIHRoZSBzdGF0ZSBvZiB0aGUgbWl0aWdhdGlvbi4KPj4gKwo+PiArQnkgZGVm YXVsdCBTU0JEIHdpbGwgYmUgbWl0aWdhdGVkIGF0IHJ1bnRpbWUgKGkuZSBgc3NiZD1ydW50aW1l YCkuCj4+ICsKPj4gICAjIyMgc3BlYy1jdHJsICh4ODYpCj4+ICAgPiBgPSBMaXN0IG9mIFsgPGJv b2w+LCB4ZW49PGJvb2w+LCB7cHYsaHZtLG1zci1zYyxyc2J9PTxib29sPiwKPj4gICA+ICAgICAg ICAgICAgICBidGktdGh1bms9cmV0cG9saW5lfGxmZW5jZXxqbXAsIHtpYnJzLGlicGIsc3NiZH09 PGJvb2w+IF1gCj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vY3B1ZXJyYXRhLmMgYi94ZW4v YXJjaC9hcm0vY3B1ZXJyYXRhLmMKPj4gaW5kZXggYmNlYTJlYjZlNS4uZjkyMTcyMWE2NiAxMDA2 NDQKPj4gLS0tIGEveGVuL2FyY2gvYXJtL2NwdWVycmF0YS5jCj4+ICsrKyBiL3hlbi9hcmNoL2Fy bS9jcHVlcnJhdGEuYwo+PiBAQCAtMjM3LDYgKzIzNyw0MSBAQCBzdGF0aWMgaW50IGVuYWJsZV9p Y19pbnZfaGFyZGVuaW5nKHZvaWQgKmRhdGEpCj4+ICAgCj4+ICAgI2lmZGVmIENPTkZJR19BUk1f U1NCRAo+PiAgIAo+PiArZW51bSBzc2JkX3N0YXRlIHNzYmRfc3RhdGUgPSBBUk1fU1NCRF9SVU5U SU1FOwo+PiArCj4+ICtzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9zcGVjX2N0cmwoY29uc3QgY2hh ciAqcykKPj4gK3sKPj4gKyAgICBjb25zdCBjaGFyICpzczsKPj4gKyAgICBpbnQgcmMgPSAwOwo+ PiArCj4+ICsgICAgZG8gewo+PiArICAgICAgICBzcyA9IHN0cmNocihzLCAnLCcpOwo+PiArICAg ICAgICBpZiAoICFzcyApCj4+ICsgICAgICAgICAgICBzcyA9IHN0cmNocihzLCAnXDAnKTsKPiAK PiBJdCBkb2Vzbid0IGxvb2sgbGlrZSBpdCBpcyBuZWNlc3NhcnkgdG8gcGFyc2UgJywnIGF0IGFs bC4gSSB3b3VsZCByZW1vdmUKPiB0aGUgd2hpbGUgbG9vcCB0b28uCgpJdCBtYXR0ZXJzLCB5b3Ug d2FudCB0byBjYXRjaCBhbmQgd2FybiB1c2VyIHRoYXQgdGhlIGNvbW1hbmQgbGluZSBpcyBub3Qg CnZhbGlkLiBJbWFnaW5lIHNvbWVvbmUgZGVjaWRlIHRvIGFkZCAiLC4uLiIgYWZ0ZXIuIEl0IGFs c28gbWFrZSBlYXNpZXIgCnRvIGludGVncmF0ZSBuZXcgb3B0aW9uIHdpdGhvdXQgcmV3b3JraW5n IGl0LgoKPiAKPiAKPj4gKyAgICAgICAgaWYgKCAhc3RybmNtcChzLCAic3NiZD0iLCA1KSApCj4+ ICsgICAgICAgIHsKPj4gKyAgICAgICAgICAgIHMgKz0gNTsKPj4gKwo+PiArICAgICAgICAgICAg aWYgKCAhc3RybmNtcChzLCAiZm9yY2UtZGlzYWJsZSIsIHNzIC0gcykgKQo+PiArICAgICAgICAg ICAgICAgIHNzYmRfc3RhdGUgPSBBUk1fU1NCRF9GT1JDRV9ESVNBQkxFOwo+PiArICAgICAgICAg ICAgZWxzZSBpZiAoICFzdHJuY21wKHMsICJydW50aW1lIiwgc3MgLSBzKSApCj4+ICsgICAgICAg ICAgICAgICAgc3NiZF9zdGF0ZSA9IEFSTV9TU0JEX1JVTlRJTUU7Cj4+ICsgICAgICAgICAgICBl bHNlIGlmICggIXN0cm5jbXAocywgImZvcmNlLWVuYWJsZSIsIHNzIC0gcykgKQo+PiArICAgICAg ICAgICAgICAgIHNzYmRfc3RhdGUgPSBBUk1fU1NCRF9GT1JDRV9FTkFCTEU7Cj4+ICsgICAgICAg ICAgICBlbHNlCj4+ICsgICAgICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwo+PiArICAgICAgICB9 Cj4+ICsgICAgICAgIGVsc2UKPj4gKyAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKPj4gKwo+PiAr ICAgICAgICBzID0gc3MgKyAxOwo+PiArICAgIH0gd2hpbGUgKCAqc3MgKTsKPj4gKwo+PiArICAg IHJldHVybiByYzsKPj4gK30KPj4gK2N1c3RvbV9wYXJhbSgic3BlYy1jdHJsIiwgcGFyc2Vfc3Bl Y19jdHJsKTsKPj4gKwo+PiAgIC8qCj4+ICAgICogQXNzZW1ibHkgY29kZSBtYXkgdXNlIHRoZSB2 YXJpYWJsZSBkaXJlY3RseSwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUKPj4gICAgKiBpdCBmaXRz IGluIGEgcmVnaXN0ZXIuCj4+IEBAIC0yNDYsMjUgKzI4MSw4MiBAQCBERUZJTkVfUEVSX0NQVV9S RUFEX01PU1RMWShyZWdpc3Rlcl90LCBzc2JkX2NhbGxiYWNrX3JlcXVpcmVkKTsKPj4gICBzdGF0 aWMgYm9vbCBoYXNfc3NiZF9taXRpZ2F0aW9uKGNvbnN0IHN0cnVjdCBhcm1fY3B1X2NhcGFiaWxp dGllcyAqZW50cnkpCj4+ICAgewo+PiAgICAgICBzdHJ1Y3QgYXJtX3NtY2NjX3JlcyByZXM7Cj4+ IC0gICAgYm9vbCBzdXBwb3J0ZWQgPSB0cnVlOwo+PiArICAgIGJvb2wgcmVxdWlyZWQgPSB0cnVl Owo+IAo+IFBsZWFzZSBhdm9pZCB0aGlzIHJlbmFtaW5nLiBDaG9vc2Ugb25lIG5hbWUgb3IgdGhl IG90aGVyIGZyb20gdGhlIHN0YXJ0LgoKVGhpcyBpcyB3aGF0IGhhcHBlbiB3aGVuIHlvdSB3YW50 IHRvIHNwbGl0IGEgc2VyaWVzIGluIGEgbG9naWNhbCB3YXkuIApUaGUgbmFtZSAicmVxdWlyZWQi IGRvZXMgbm90IG1ha2Ugc2Vuc2Ugd2l0aCB0aGUgcHJldmlvdXMgcGF0Y2guIFNvIHRoZSAKcmVu YW1pbmcgbWFrZSBzZW5zZSBoZXJlLgoKPiAKPiAKPj4gICAgICAgaWYgKCBzbWNjY192ZXIgPCBT TUNDQ19WRVJTSU9OKDEsIDEpICkKPj4gICAgICAgICAgIHJldHVybiBmYWxzZTsKPj4gICAKPj4g LSAgICAvKgo+PiAtICAgICAqIFRoZSBwcm9iZSBmdW5jdGlvbiByZXR1cm4gdmFsdWUgaXMgZWl0 aGVyIG5lZ2F0aXZlICh1bnN1cHBvcnRlZAo+PiAtICAgICAqIG9yIG1pdGlnYXRlZCksIHBvc2l0 aXZlICh1bmFmZmVjdGVkKSwgb3IgemVybyAocmVxdWlyZXMKPj4gLSAgICAgKiBtaXRpZ2F0aW9u KS4gV2Ugb25seSBuZWVkIHRvIGRvIGFueXRoaW5nIGluIHRoZSBsYXN0IGNhc2UuCj4+IC0gICAg ICovCj4gCj4gSSB3b3VsZCBrZWVwIHRoZSBjb21tZW50CgpUaGUgY29tbWVudCBpcyBub3QgY29y cmVjdCBhZnRlciB0aGlzIHBhdGNoLiBUaGUgbWF5IG5lZWQgdG8gYWN0IApkaWZmZXJlbnRseSBk ZXBlbmRpbmcgb24gdGhlIGNvbW1lbnQgbGluZS4gUmVnYXJkaW5nIHRoZSB2YWx1ZXMsIHRoZSAK c3dpdGNoIGlzIG1vcmUgZXhwbGFuYXRvcnkgdGhhbiB0aG9zZSAzIGxpbmVzLgoKPiAKPiAKPj4g ICAgICAgYXJtX3NtY2NjXzFfMV9zbWMoQVJNX1NNQ0NDX0FSQ0hfRkVBVFVSRVNfRklELAo+PiAg ICAgICAgICAgICAgICAgICAgICAgICBBUk1fU01DQ0NfQVJDSF9XT1JLQVJPVU5EXzJfRklELCAm cmVzKTsKPj4gLSAgICBpZiAoIChpbnQpcmVzLmEwICE9IDAgKQo+PiAtICAgICAgICBzdXBwb3J0 ZWQgPSBmYWxzZTsKPj4gICAKPj4gLSAgICBpZiAoIHN1cHBvcnRlZCApCj4+IC0gICAgICAgIHRo aXNfY3B1KHNzYmRfY2FsbGJhY2tfcmVxdWlyZWQpID0gMTsKPj4gKyAgICBzd2l0Y2ggKCAoaW50 KXJlcy5hMCApCj4gCj4gUGxlYXNlIGludHJvZHVjZSB0aGlzIHN3aXRjaCBpbiB0aGUgcHJldmlv dXMgcGF0Y2guIEJ1dCBpdCBtYWtlcyBzZW5zZQo+IHRvIGFkZCB0aGUgc3NiZF9zdGF0ZSB2YXJp YWJsZSBpbiB0aGlzIHBhdGNoLgoKV2VsbCwgdGhhdCdzIG5vdCBnb2luZyB0byBtYWtlIHRoZSBk aWZmIHNpbXBsZXIgaGVyZSBhcyB0aGUgc3dpdGNoIHdpbGwgCmJlIGRpZmZlcmVudC4gU28gSSB3 b3VsZCBrZWVwIHRoZSBwYXRjaCBsaWtlIHRoYXQuCgo+IAo+IAo+PiArICAgIHsKPj4gKyAgICBj YXNlIEFSTV9TTUNDQ19OT1RfU1VQUE9SVEVEOgo+PiArICAgICAgICBzc2JkX3N0YXRlID0gQVJN X1NTQkRfVU5LTk9XTjsKPj4gKyAgICAgICAgcmV0dXJuIGZhbHNlOwo+PiArCj4+ICsgICAgY2Fz ZSBBUk1fU01DQ0NfTk9UX1JFUVVJUkVEOgo+PiArICAgICAgICBzc2JkX3N0YXRlID0gQVJNX1NT QkRfTUlUSUdBVEVEOwo+PiArICAgICAgICByZXR1cm4gZmFsc2U7Cj4+ICsKPj4gKyAgICBjYXNl IEFSTV9TTUNDQ19TVUNDRVNTOgo+PiArICAgICAgICByZXF1aXJlZCA9IHRydWU7Cj4+ICsgICAg ICAgIGJyZWFrOwo+PiArCj4+ICsgICAgY2FzZSAxOiAvKiBNaXRpZ2F0aW9uIG5vdCByZXF1aXJl ZCBvbiB0aGlzIENQVS4gKi8KPj4gKyAgICAgICAgcmVxdWlyZWQgPSBmYWxzZTsKPj4gKyAgICAg ICAgYnJlYWs7Cj4gCj4gVGhpcyBzaG91bGQgInJldHVybiBmYWxzZSIuIAoKSXQgaXMgcGVyZmVj dGx5IGZpbmUgdG8gY29udGludWUgYXMgaXQgaXMgc2FmZSB0byBleGVjdXRlIApBUkNIX1dPUktB Uk9VTkRfMiBvbiB0aGF0IENQVS4KCgpBbHNvLCBpdCBtaWdodCBtYWtlIHNlbnNlIHRvIHNldCBz c2JkX3N0YXRlCj4gdG8gQVJNX1NTQkRfTUlUSUdBVEVEPwoKTm8sIHRoZSBtaXRpZ2F0aW9uIGlz IG5vdCByZXF1aXJlZCBvbiAqdGhhdCogQ1BVLiBJdCBkb2VzIG5vdCBtZWFuIGl0IAp3aWxsIG5v dCBiZSByZXF1aXJlZCBmb3IgYWxsIENQVXMuIFNvIGl0IG1ha2VzIHNlbnNlIHRvIG5vdCB1cGRh dGUgCnNzYmRfc3RhdGUuCgo+IAo+IAo+PiArCj4+ICsgICAgZGVmYXVsdDoKPj4gKyAgICAgICAg QVNTRVJUX1VOUkVBQ0hBQkxFKCk7Cj4+ICsgICAgICAgIHJldHVybiBmYWxzZTsKPj4gKyAgICB9 Cj4+ICsKPj4gKyAgICBzd2l0Y2ggKCBzc2JkX3N0YXRlICkKPj4gKyAgICB7Cj4+ICsgICAgY2Fz ZSBBUk1fU1NCRF9GT1JDRV9ESVNBQkxFOgo+PiArICAgIHsKPj4gKyAgICAgICAgc3RhdGljIGJv b2wgb25jZSA9IHRydWU7Cj4+ICsKPj4gKyAgICAgICAgaWYgKCBvbmNlICkKPj4gKyAgICAgICAg ICAgIHByaW50aygiJXMgZGlzYWJsZWQgZnJvbSBjb21tYW5kLWxpbmVcbiIsIGVudHJ5LT5kZXNj KTsKPj4gKyAgICAgICAgb25jZSA9IGZhbHNlOwo+PiArCj4+ICsgICAgICAgIGFybV9zbWNjY18x XzFfc21jKEFSTV9TTUNDQ19BUkNIX1dPUktBUk9VTkRfMl9GSUQsIDAsIE5VTEwpOwo+PiArICAg ICAgICByZXF1aXJlZCA9IGZhbHNlOwo+PiArCj4+ICsgICAgICAgIGJyZWFrOwo+PiArICAgIH0K Pj4gKwo+PiArICAgIGNhc2UgQVJNX1NTQkRfUlVOVElNRToKPj4gKyAgICAgICAgaWYgKCByZXF1 aXJlZCApCj4+ICsgICAgICAgIHsKPj4gKyAgICAgICAgICAgIHRoaXNfY3B1KHNzYmRfY2FsbGJh Y2tfcmVxdWlyZWQpID0gMTsKPiAKPiBXZSBoYXZlIHRoZSBBUk1fU1NCRCBiaXQsIHRoZSBzc2Jk X3N0YXRlIHZhcmlhYmxlIGFuZAo+IHNzYmRfY2FsbGJhY2tfcmVxdWlyZWQuIEJvdGggQVJNX1NT QkQgYW5kIHNzYmRfc3RhdGUgYXJlIHNoYXJlZCBhY3Jvc3MKPiBjb3JlcyB3aGlsZSBzc2JkX2Nh bGxiYWNrX3JlcXVpcmVkIGlzIHBlci1jcHUuIERvZXMKPiBzc2JkX2NhbGxiYWNrX3JlcXVpcmVk IHJlYWxseSBuZWVkIHRvIGJlIHBlci1jcHU/ID4gRG8gd2UgbmVlZCBib3RoCj4gdmFyaWFibGVz PyBGb3IgaW5zdGFuY2UsIHdlIGNvdWxkIGp1c3QgcmV0dXJuIHNzYmRfc3RhdGUgPT0KPiBBUk1f U1NCRF9SVU5USU1FIGluc3RlYWQgb2YgdGhpc19jcHUoc3NiZF9jYWxsYmFja19yZXF1aXJlZCk/ CgpMZXQgbWUgc3RhcnQgd2l0aCBiZWNhdXNlIGEgZ3Vlc3QgdkNQVSBtYXkgcnVuIG9uIGFueSBw Q1BVLCB5b3UgYWx3YXlzIApoYXZlIHRvIHRlbGwgdGhlIGd1ZXN0IHRoZSBtaXRpZ2F0aW9uIGlz IHJlcXVpcmVkIGZvciBhbGwgdkNQVXMuCgpCeSBkZWZhdWx0LCBMaW51eCBpcyBjYWxsaW5nIHRo ZSB3b3JrYXJvdW5kIGF0IGVudHJ5IGZyb20gRUwwIHRvIGVuYWJsZSAKaXQgYW5kIGF0IGV4aXQg dG8gRUwwIHRvIGRpc2FibGUgaXQuIFRoZSB3b3JrYXJvdW5kIHdpbGwgZmlyc3QgdHJhcCBpbiAK RUwyIGFuZCB0aGVuIGdldCBmb3J3YXJkZWQgdG8gRUwzLgoKWW91IGNhbiBpbWFnaW5lIHRoYXQg dGhlIHRyYXAgdG8gRUwyIGFuZCB0aGVuIEVMMyBoYXMgYSBjb3N0LiBJZiB0aGUgCndvcmthcm91 bmQgaXMgbm90IG5lY2Vzc2FyeSwgdGhlbiB5b3UgY2FuIHJlZHVjZSB0aGF0IGNvc3QgYnkgYXZv aWRpbmcgCnRvIHRyYXAgYXQgRUwzLiBBcyB5b3UgY2FuIGhhdmUgYSBwbGF0Zm9ybSB3aXRoIGhl dGVyb2dlbm91cyBDUFVzLCB5b3UgCm5lZWQgdGhhdCB3b3JrYXJvdW5kIHBlci1DUFUuCgpUaGUg QVJNX1NTQkQgZmVhdHVyZSBiaXQgaXMgdXNlZnVsIGluIG9yZGVyIHRvIHB1dCBzaG9ydGN1dCBp biBwbGFjZSAKdXNpbmcgYWx0ZXJuYXRpdmUgKHNlZSBjaGVja193b3JrYXJvdW5kX3NzYmQpLiBT byBvbiBwbGF0Zm9ybSB3aGVyZSB0aGUgCm1pdGlnYXRpb24gaXMgbm90IHJlcXVpcmVkLCBhbGwg dGhlIG5ldyBjb2RlIGlzIG5lYXJseSBhIE5PUC4KClRoZSBzc2JkX3N0YXRlIGlzIHVzZWQgaW4g dmFyaW91cyBwbGFjZSB0byBrbm93IHdoYXQgaXMgdGhlIGdsb2JhbCBzdGF0ZSAKb2YgdGhlIG1p dGlnYXRpb246CgktIFRvIGluaXRpYWxpemUgdGhlIHZDUFUgc3RhdGUgZm9yIHRoZSBtaXRpZ2F0 aW9uCgktIFRvIHJlcG9ydCB0aGUgZ3Vlc3Qgd2hhdCBpcyB0aGUgc3RhdGUgb2YgdGhlIG1pdGln YXRpb24gdXNpbmcgU01DQ0MKClNvIGFsbCB0aG9zZSB2YXJpYWJsZXMgaGF2ZSBhIHNwZWNpZmlj IHB1cnBvc2VzIGFuZCBjYW5ub3QgcmVhbGx5IGJlIApyZXBsYWNlZCBieSBhbm90aGVyIHdheS4K Cj4gCj4gCj4+ICsgICAgICAgICAgICBhcm1fc21jY2NfMV8xX3NtYyhBUk1fU01DQ0NfQVJDSF9X T1JLQVJPVU5EXzJfRklELCAxLCBOVUxMKTsKPj4gKyAgICAgICAgfQo+PiArCj4+ICsgICAgICAg IGJyZWFrOwo+PiArCj4+ICsgICAgY2FzZSBBUk1fU1NCRF9GT1JDRV9FTkFCTEU6Cj4+ICsgICAg ewo+PiArICAgICAgICBzdGF0aWMgYm9vbCBvbmNlID0gdHJ1ZTsKPj4gKwo+PiArICAgICAgICBp ZiAoIG9uY2UgKQo+PiArICAgICAgICAgICAgcHJpbnRrKCIlcyBmb3JjZWQgZnJvbSBjb21tYW5k LWxpbmVcbiIsIGVudHJ5LT5kZXNjKTsKPj4gKyAgICAgICAgb25jZSA9IGZhbHNlOwo+PiArCj4+ ICsgICAgICAgIGFybV9zbWNjY18xXzFfc21jKEFSTV9TTUNDQ19BUkNIX1dPUktBUk9VTkRfMl9G SUQsIDEsIE5VTEwpOwo+PiArICAgICAgICByZXF1aXJlZCA9IHRydWU7Cj4gCj4gVGhpcyBmdW5j dGlvbiBpcyBzdXBwb3NlZCB0byBkZXRlY3Qgd2hldGhlciBhIHdvcmthcm91bmQgaXMgbmVlZGVk LCBub3QKPiBlbmFibGUgaXQsIHJpZ2h0PyBTaG91bGQgdGhpcyBzd2l0Y2ggYW5kIHJlbGF0aXZl IGNvZGUgYmUgbW92ZWQgdG8gdGhlCj4gLmVuYWJsZSBmdW5jdGlvbiBmb3IgdGhpcyBjYXBhYmls aXR5PwoKSSBoYWQgdGhlIHNwbGl0IGJlZm9yZSBidXQgaXQgaXMgZGlmZmljdWx0IHRvIGdldCBh IG5pY2Ugc3BsaXQgYmV0d2VlbiAKLmVuYWJsZSBhbmQgLm1hdGNoZXMuIFNvIEkgZGVjaWRlZCB0 byBmb2xsb3cgd2hhdCBMaW51eC9LVk0gZGlkIGFuZCBwdXQgCmV2ZXJ5dGhpbmcgaW4gaGFzXy4K Cj4gCj4gCj4+ICsgICAgICAgIGJyZWFrOwo+PiArICAgIH0KPj4gKwo+PiArICAgIGRlZmF1bHQ6 Cj4+ICsgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwo+PiArICAgICAgICByZXR1cm4gZmFs c2U7Cj4+ICsgICAgfQo+PiAgIAo+PiAtICAgIHJldHVybiBzdXBwb3J0ZWQ7Cj4+ICsgICAgcmV0 dXJuIHJlcXVpcmVkOwo+PiAgIH0KPj4gICAjZW5kaWYKPj4gICAKPj4gQEAgLTM3MSw2ICs0NjMs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFybV9jcHVfY2FwYWJpbGl0aWVzIGFybV9lcnJhdGFb XSA9IHsKPj4gICAjZW5kaWYKPj4gICAjaWZkZWYgQ09ORklHX0FSTV9TU0JECj4+ICAgICAgIHsK Pj4gKyAgICAgICAgLmRlc2MgPSAiU3BlY3VsYXRpdmUgU3RvcmUgQnlwYXNzIERpc2FibGVkIiwK Pj4gICAgICAgICAgIC5jYXBhYmlsaXR5ID0gQVJNX1NTQkQsCj4+ICAgICAgICAgICAubWF0Y2hl cyA9IGhhc19zc2JkX21pdGlnYXRpb24sCj4+ICAgICAgIH0sCj4+IGRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS9hc20tYXJtL2NwdWVycmF0YS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9jcHVlcnJh dGEuaAo+PiBpbmRleCBlNjI4ZDNmZjU2Li43ZmJiM2RjMGJlIDEwMDY0NAo+PiAtLS0gYS94ZW4v aW5jbHVkZS9hc20tYXJtL2NwdWVycmF0YS5oCj4+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0v Y3B1ZXJyYXRhLmgKPj4gQEAgLTMxLDEwICszMSwyNiBAQCBDSEVDS19XT1JLQVJPVU5EX0hFTFBF Uihzc2JkLCBBUk1fU1NCRCwgQ09ORklHX0FSTV9TU0JEKQo+PiAgIAo+PiAgICN1bmRlZiBDSEVD S19XT1JLQVJPVU5EX0hFTFBFUgo+PiAgIAo+PiArZW51bSBzc2JkX3N0YXRlCj4+ICt7Cj4+ICsg ICAgQVJNX1NTQkRfVU5LTk9XTiwKPj4gKyAgICBBUk1fU1NCRF9GT1JDRV9ESVNBQkxFLAo+PiAr ICAgIEFSTV9TU0JEX1JVTlRJTUUsCj4+ICsgICAgQVJNX1NTQkRfRk9SQ0VfRU5BQkxFLAo+PiAr ICAgIEFSTV9TU0JEX01JVElHQVRFRCwKPj4gK307Cj4+ICsKPj4gICAjaWZkZWYgQ09ORklHX0FS TV9TU0JECj4+ICAgCj4+ICAgI2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+Cj4+ICAgCj4+ICtleHRl cm4gZW51bSBzc2JkX3N0YXRlIHNzYmRfc3RhdGU7Cj4+ICsKPj4gK3N0YXRpYyBpbmxpbmUgZW51 bSBzc2JkX3N0YXRlIGdldF9zc2JkX3N0YXRlKHZvaWQpCj4+ICt7Cj4+ICsgICAgcmV0dXJuIHNz YmRfc3RhdGU7Cj4+ICt9Cj4+ICsKPj4gICBERUNMQVJFX1BFUl9DUFUocmVnaXN0ZXJfdCwgc3Ni ZF9jYWxsYmFja19yZXF1aXJlZCk7Cj4+ICAgCj4+ICAgc3RhdGljIGlubGluZSBib29sIGNwdV9y ZXF1aXJlX3NzYmRfbWl0aWdhdGlvbih2b2lkKQo+PiBAQCAtNDksNiArNjUsMTEgQEAgc3RhdGlj IGlubGluZSBib29sIGNwdV9yZXF1aXJlX3NzYmRfbWl0aWdhdGlvbih2b2lkKQo+PiAgICAgICBy ZXR1cm4gZmFsc2U7Cj4+ICAgfQo+PiAgIAo+PiArc3RhdGljIGlubGluZSBlbnVtIHNzYmRfc3Rh dGUgZ2V0X3NiZGRfc3RhdGUodm9pZCkKPj4gK3sKPj4gKyAgICByZXR1cm4gQVJNX1NTQkRfVU5L Tk9XTjsKPj4gK30KPj4gKwo+PiAgICNlbmRpZgo+PiAgIAo+PiAgICNlbmRpZiAvKiBfX0FSTV9D UFVFUlJBVEFfSF9fICovCj4+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL3NtY2Nj LmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3NtY2NjLmgKPj4gaW5kZXggNjUwNzQ0ZDI4Yi4uYTY4 MDRjZWM5OSAxMDA2NDQKPj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9zbWNjYy5oCj4+ICsr KyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vc21jY2MuaAo+PiBAQCAtMjY1LDYgKzI2NSw3IEBAIHN0 cnVjdCBhcm1fc21jY2NfcmVzIHsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIDB4N0ZGRikK Pj4gICAKPj4gICAvKiBTTUNDQyBlcnJvciBjb2RlcyAqLwo+PiArI2RlZmluZSBBUk1fU01DQ0Nf Tk9UX1JFUVVJUkVEICAgICAgICAgICgtMikKPj4gICAjZGVmaW5lIEFSTV9TTUNDQ19FUlJfVU5L Tk9XTl9GVU5DVElPTiAgKC0xKQo+PiAgICNkZWZpbmUgQVJNX1NNQ0NDX05PVF9TVVBQT1JURUQg ICAgICAgICAoLTEpCj4+ICAgI2RlZmluZSBBUk1fU01DQ0NfU1VDQ0VTUyAgICAgICAgICAgICAg ICgwKQo+PiAtLSAKPj4gMi4xMS4wCj4+CgpDaGVlcnMsCgotLSAKSnVsaWVuIEdyYWxsCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs