From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v4 03/34] xsm/xen_version: Add XSM for the xen_version hypercall Date: Fri, 18 Mar 2016 13:26:10 -0400 Message-ID: <20160318172610.GA9624@char.us.oracle.com> References: <1458064616-23101-1-git-send-email-konrad.wilk@oracle.com> <1458064616-23101-4-git-send-email-konrad.wilk@oracle.com> <56EBFADB02000078000DE4F6@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1agyAJ-0000yl-Uz for xen-devel@lists.xenproject.org; Fri, 18 Mar 2016 17:26:24 +0000 Content-Disposition: inline In-Reply-To: <56EBFADB02000078000DE4F6@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich Cc: Wei Liu , Stefano Stabellini , andrew.cooper3@citrix.com, Ian Jackson , mpohlack@amazon.de, ross.lagerwall@citrix.com, xen-devel@lists.xenproject.org, Daniel De Graaf , sasha.levin@oracle.com List-Id: xen-devel@lists.xenproject.org T24gRnJpLCBNYXIgMTgsIDIwMTYgYXQgMDU6NTU6NTVBTSAtMDYwMCwgSmFuIEJldWxpY2ggd3Jv dGU6Cj4gPj4+IE9uIDE1LjAzLjE2IGF0IDE4OjU2LCA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4g d3JvdGU6Cj4gPiBAQCAtMjIzLDEyICsyMjQsMTUgQEAgdm9pZCBfX2luaXQgZG9faW5pdGNhbGxz KHZvaWQpCj4gPiAgLyoKPiA+ICAgKiBTaW1wbGUgaHlwZXJjYWxscy4KPiA+ICAgKi8KPiA+IC0K PiA+ICBETyh4ZW5fdmVyc2lvbikoaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lk KSBhcmcpCj4gCj4gUGxlYXNlIHJldGFpbiB0aGUgYmxhbmsgbGluZSwgYXMgaXQgcmVsYXRlcyB0 byBtb3JlIHRoYW4ganVzdCB0aGlzCj4gb25lIGZ1bmN0aW9uLgoKRG9uZSEgKHN0cmF5IGNoYW5n ZSkuCj4gCj4gPiAgewo+ID4gKyAgICBib29sX3QgZGVueSA9ICEheHNtX3hlbl92ZXJzaW9uKFhT TV9PVEhFUiwgY21kKTsKPiA+ICsKPiA+ICAgICAgc3dpdGNoICggY21kICkKPiA+ICAgICAgewo+ ID4gICAgICBjYXNlIFhFTlZFUl92ZXJzaW9uOgo+ID4gKyAgICAgICAgaWYgKCBkZW55ICkKPiA+ ICsgICAgICAgICAgICByZXR1cm4gMDsKPiA+ICAgICAgICAgIHJldHVybiAoeGVuX21ham9yX3Zl cnNpb24oKSA8PCAxNikgfCB4ZW5fbWlub3JfdmVyc2lvbigpOwo+IAo+IFRvIGJlIGhvbmVzdCwg SSdtIG5vdyByYXRoZXIgdW5jZXJ0YWluIGFib3V0IHRoaXMgb25lOiBJZiBhIGd1ZXN0Cj4gY2Fu J3QgZmlndXJlIG91dCB0aGUgaHlwZXJ2aXNvciB2ZXJzaW9uLCBob3cgd291bGQgaXQgYmUgYWJs ZSB0bwo+IGFkanVzdCBpdHMgYmVoYXZpb3IgYWNjb3JkaW5nbHkgKGUuZy4gdXNlIGRlcHJlY2F0 ZWQgaHlwZXJjYWxscyBhcwo+IG5lZWRlZCk/IElPVywgb3RoZXIgdGhhbiBmb3IgbW9zdC9hbGwg b3RoZXIgc3R1ZmYgaGVyZSAodGhlCj4gZ2V0LWZlYXR1cmVzIGFuZCBwbGF0Zm9ybS1wYXJhbWV0 ZXJzIHN1Yi1vcHMgbWF5IGJlIGNvbnNpZGVyZWQKPiBzaW1pbGFyIHRvIHRoaXMgb25lLCBzZWUg YWxzbyBiZWxvdyksIEkgZG9uJ3QgdGhpbmsgYWxsb3dpbmcgdGhlCj4gInBlcm1pdHRlZCIgZGVm YXVsdCB0byBiZSBvdmVycmlkZGVuIG1ha2VzIHNlbnNlIGhlcmUuCgpJIGRvbid0IHdhbnQgdG8g Y3Jhc2ggb2xkIGd1ZXN0cyBvciBsZWFkIHRoZW0gYXN0cmF5LiBSZW1vdmVkIHRoZSAnZGVueScg aGVyZS4KQWxzbyByZW1vdmVkIHRoZSBYU00gY2hlY2tzIGZvciB0aGlzIHN1Yi1vcCAoYW5kIHRo ZSBvdGhlcnMgYmVsb3cpCmFzIHRoZXkgYXJlIGlnbm9yZWQuCj4gCj4gPiBAQCAtMjc0LDYgKzI3 OSw5IEBAIERPKHhlbl92ZXJzaW9uKShpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZv aWQpIGFyZykKPiA+ICAgICAgICAgICAgICAudmlydF9zdGFydCA9IEhZUEVSVklTT1JfVklSVF9T VEFSVAo+ID4gICAgICAgICAgfTsKPiA+ICAKPiA+ICsgICAgICAgIGlmICggZGVueSApCj4gPiAr ICAgICAgICAgICAgcGFyYW1zLnZpcnRfc3RhcnQgPSAwOwo+IAo+IEd1ZXN0cyBtYXkgKHZhbGlk bHkgaW1vKSBhc3N1bWUgdG8gZ2V0IGEgdmFsaWQgYWRkcmVzcyBoZXJlLiBJZiB5b3UKPiBtZWFu IHRvIG5vdCBleHBvc2UgdGhlIG5vbi1jb25zdGFudCBhZGRyZXNzIGluIHRoZSBjb21wYXQgbW9k ZQo+IGNhc2UsIEkgY291bGQgYWNjZXB0IHRoYXQuIEJ1dCB5b3Ugd291bGQgdGhlbiBuZWVkIHRv IHNldCB0aGUgQUJJCj4gbWFuZGF0ZWQgX19IWVBFUlZJU09SX0NPTVBBVF9WSVJUX1NUQVJUIChh bmQgcmV0YWluIHRoZQo+IGNvbnN0YW50IHZhbHVlIGluIHRoZSBub24tY29tcGF0IGNhc2UpLiBP dXIgb2xkIDMyLWJpdCBQViBndWVzdHMKPiB3b3VsZCBjcmFzaCBleHRyZW1lbHkgZWFybHkgb24g Ym9vdCBpZiB0aGV5IGdvdCBiYWNrIHplcm8gaGVyZQo+ICh0aGF0J3MgZm9yIDIuNi4zMCBhbmQg bGF0ZXIsIGFuZCBJIHRoaW5rIGJvdGggeW91IGFuZCBDaXRyaXggaGFkCj4gZGVyaXZlZCBzb21l IG9mIHRoZWlyIGtlcm5lbHMgZnJvbSBvdXIgMi42LjMyIGJhc2VkIG9uZSkuCgpPSy4gTGV0IG1l IGFsc28gcmVsYXggdGhpcyBvbmUgYW5kIGFsd2F5cyByZXR1cm4gYSB2YWx1ZS4KPiAKPiA+IEBA IC0zMDIsNiArMzEwLDggQEAgRE8oeGVuX3ZlcnNpb24pKGludCBjbWQsIFhFTl9HVUVTVF9IQU5E TEVfUEFSQU0odm9pZCkgYXJnKQo+ID4gICAgICAgICAgc3dpdGNoICggZmkuc3VibWFwX2lkeCAp Cj4gPiAgICAgICAgICB7Cj4gPiAgICAgICAgICBjYXNlIDA6Cj4gPiArICAgICAgICAgICAgaWYg KCBkZW55ICkKPiA+ICsgICAgICAgICAgICAgICAgYnJlYWs7Cj4gCj4gSSB0aGluayBpZiB0byBi ZSBwdXQgaGVyZSBhdCBhbGwsIHRoaXMgc2hvdWxkIGdvIGFoZWFkIG9mIHRoZSBzd2l0Y2goKSwK CkkgYW0gT0sgbm90IGFja2luZyBvbiB0aGUgWFNNIGNoZWNrLiBJdCByZWFsbHkgdGhyb3dzIGEg d3JlbmNoIGluIExpbnV4Cih1cHN0cmVhbSBMaW51eCBoYW5ncyB3aGVuIGluaXRpYWxpemluZyB0 aGUgWGVuQnVzIGZyb250ZW5kIGRyaXZlcikuCgo+IHNvIHRoYXQgZ3Vlc3RzIHdvdWxkbid0IGJl IGFibGUgdG8gZ3Vlc3MgZnJvbSB0aGUgdmFsaWQgaW5kZXggdmFsdWVzCj4gd2hpY2ggZmVhdHVy ZXMgbWF5IGJlIGF2YWlsYWJsZS4gQW5kIG9mIGNvdXJzZSB5b3Ugc2hvdWxkIGNsZWFyCj4gZmku c3VibWFwIGlmIHlvdSBkZW55IGFjY2VzcywgaW5zdGVhZCBvZiBsZWF2aW5nIGluIGl0IHdoYXQg aGFzIGJlZW4KPiB0aGVyZSBiZWZvcmUuCj4gCj4gPiAgICAgIGNhc2UgWEVOVkVSX2d1ZXN0X2hh bmRsZToKPiA+IC0gICAgICAgIGlmICggY29weV90b19ndWVzdChhcmcsIGN1cnJlbnQtPmRvbWFp bi0+aGFuZGxlLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSUkFZX1NJWkUoY3Vy cmVudC0+ZG9tYWluLT5oYW5kbGUpKSApCj4gPiArICAgIHsKPiA+ICsgICAgICAgIHhlbl9kb21h aW5faGFuZGxlX3QgaGRsOwo+ID4gKyAgICAgICAgc3NpemVfdCBsZW47Cj4gPiArCj4gPiArICAg ICAgICBpZiAoIGRlbnkgKQo+ID4gKyAgICAgICAgewo+ID4gKyAgICAgICAgICAgIGxlbiA9IHNp emVvZihoZGwpOwo+ID4gKyAgICAgICAgICAgIG1lbXNldCgmaGRsLCAwLCBsZW4pOwo+ID4gKyAg ICAgICAgfSBlbHNlCj4gPiArICAgICAgICAgICAgbGVuID0gQVJSQVlfU0laRShjdXJyZW50LT5k b21haW4tPmhhbmRsZSk7Cj4gPiArCj4gPiArICAgICAgICBpZiAoIGNvcHlfdG9fZ3Vlc3QoYXJn LCBkZW55ID8gaGRsIDogY3VycmVudC0+ZG9tYWluLT5oYW5kbGUsIGxlbiApICkKPiA+ICAgICAg ICAgICAgICByZXR1cm4gLUVGQVVMVDsKPiA+ICAgICAgICAgIHJldHVybiAwOwo+IAo+IFdoYXQg aXMgdGhpcyAibGVuIiBoYW5kbGluZyBoZXJlIGFib3V0PyBBcmVuJ3QgYm90aCB0aGUgc2FtZSB0 eXBlCj4gYW5kIGhlbmNlIHNpemU/IFBlcmhhcHMsIGlmIHlvdSBmZWVsIHVuc3VyZSBhYm91dCB0 aGF0LCBzaW1wbHkgYWRkCj4gYSByZXNwZWN0aXZlIEJVSUxEX0JVR19PTigpPwoKWWVzIHRoZXkg YXJlLiBVc2VkIGEgQlVJTERfQlVHX09OIGp1c3QgaW4gY2FzZSBzb21lYm9keSBtdWNrcwphcm91 bmQuCj4gCj4gPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vdmVyc2lvbi5oCj4gPiArKysgYi94ZW4v aW5jbHVkZS94ZW4vdmVyc2lvbi5oCj4gPiBAQCAtMTIsNSArMTIsNSBAQCB1bnNpZ25lZCBpbnQg eGVuX21pbm9yX3ZlcnNpb24odm9pZCk7Cj4gPiAgY29uc3QgY2hhciAqeGVuX2V4dHJhX3ZlcnNp b24odm9pZCk7Cj4gPiAgY29uc3QgY2hhciAqeGVuX2NoYW5nZXNldCh2b2lkKTsKPiA+ICBjb25z dCBjaGFyICp4ZW5fYmFubmVyKHZvaWQpOwo+ID4gLQo+ID4gK2NvbnN0IGNoYXIgKnhlbl9kZW55 KHZvaWQpOwo+ID4gICNlbmRpZiAvKiBfX1hFTl9WRVJTSU9OX0hfXyAqLwo+IAo+IFBsZWFzZSBy ZXRhaW4gdGhlIGJsYW5rIGxpbmUuCgpZZXMuIAo+IAo+IEphbgo+IAoKSW5saW5lIGlzIHdoYXQg dGhlIHBhdGNoIG5vdyBsb29rcyBsaWtlOgoKRnJvbSAwZDVkNjJhOWYxNWI4MzA2ZTBjNjJmYjAw YWYxOTNhNzMzYWY0MzVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLb25yYWQgUnpl c3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkRhdGU6IEZyaSwgMTEgTWFyIDIw MTYgMjE6NDA6NDMgLTA1MDAKU3ViamVjdDogW1BBVENIXSB4c20veGVuX3ZlcnNpb246IEFkZCBY U00gZm9yIG1vc3Qgb2YgeGVuX3ZlcnNpb24gaHlwZXJjYWxsCgpNb3N0IG9mIFhFTlZFUl8qIGhh dmUgbm93IGFuIFhTTSBjaGVjayBmb3IgdGhlaXIgc3ViLW9wcy4KClRoZSBzdWJvcCBmb3IgWEVO VkVSX2NvbW1hbmRsaW5lIGlzIG5vdyBhIHByaXZpbGlnZWQgb3BlcmF0aW9uLgpUbyBub3QgYnJl YWsgZ3Vlc3RzIHdlIHN0aWxsIHJldHVybiBhbiBzdHJpbmcgLSBidXQgaXQgaXMKanVzdCAnPGRl bmllZD5cMCcuCgpUaGUgWEVOVkVSX1t2ZXJzaW9ufHBhcmFtZXRlcnN8Z2V0X2ZlYXR1cmVzXSAt IHdpbGwgYWx3YXlzCnJldHVybiBhbiB2YWx1ZSB0byB0aGUgZ3Vlc3QuCgpUaGUgcmVzdDogWEVO VkVSX1tleHRyYXZlcnNpb258Y2FwYWJpbGl0aWVzfHBhZ2Vfc2l6ZXwKZ3Vlc3RfaGFuZGxlfGNo YW5nZXNldHwgY29tcGlsZV9pbmZvXSBiZWhhdmUgYXMgYmVmb3JlIC0KYWxsb3dlZCBieSBkZWZh dWx0IGZvciBhbGwgZ3Vlc3RzIGlmIHVzaW5nIHRoZSBYU00gZGVmYXVsdApwb2xpY3kgb3Igd2l0 aCB0aGUgZHVtbXkgb25lLiBBbmQgaWYgdGhlIHN5c3RlbSBhZG1pbgp3YW50cyB0byBjdXJ0YWls IGFjY2VzcyB0byBzb21lIG9mIHRoZW0gLSB0aGV5IGNhbiBkbwp0aGF0IG5vdyB3aXRoIGEgbm9u LWRlZmF1bHQgWFNNIHBvbGljeS4KCkFsc28gd2UgYWRkIGEgbG9jYWwgdmFyaWFibGUgYmxvY2su CgpTaWduZWQtb2ZmLWJ5OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNs ZS5jb20+CgotLS0KQ2M6IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgpD YzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBTdGVmYW5vIFN0 YWJlbGxpbmkgPHN0ZWZhbm8uc3RhYmVsbGluaUBldS5jaXRyaXguY29tPgpDYzogV2VpIExpdSA8 d2VpLmxpdTJAY2l0cml4LmNvbT4KCnYyOiBEbyBYU00gY2hlY2sgZm9yIGFsbCB0aGUgWEVOVkVS XyBvcHMuCiAtIEFkZCBlbXB0eSBkYXRhIGNvbmRpdGlvbnMuCiAtIFJldHVybiA8ZGVuaWVkPiBm b3IgcHJpdiBzdWJvcHMuCiAtIE1vdmUgZXh0cmF2ZXJzaW9uIGZyb20gcHJpdiB0byBub3JtYWwu IERyb3AgdGhlIFhTTSBjaGVjawogICAgZm9yIHRoZSBub24tcHJpdiBzdWJvcHMuCnYzOgogLSBB ZGQgKzEgZm9yIHN0cmxlbih4ZW5fZGVueSgpKSB0byBpbmNsdWRlIE5VTEwuIE1vdmUgY2hhbmdl c2V0LAogICAgY29tcGlsZV9pbmZvIHRvIG5vbi1wcml2IHN1Ym9wcy4KIC0gUmVtb3ZlIHRoZSBc MCBvbiB4ZW5fZGVueSgpCiAtIEFkZCBuZXcgWFNNIGRvbWFpbiBmb3IgeGVudmVyIGh5cGVyY2Fs bC4gQWRkIGFsbCBzdWJvcHMgdG8gaXQuCiAtIFJlbW92ZSB0aGUgZXh0cmEgbGluZSwgQWRkIEFj ayBmcm9tIERhbmllbAp2NDoKIC0gUmVuYW1lIHRoZSBYU00gZnJvbSB4ZW5fdmVyc2lvbl9vcCB0 byB4c21feGVuX3ZlcnNpb24uCiAgIFByZWZpeCB0aGUgdHlwZXMgd2l0aCAneGVuJyB0byBkaXN0 aW5ndWlzaCBpdCBmcm9tIGFub3RoZXIKICAgaHlwZXJjYWxsIHBlcmZvcm1pbmcgc2ltaWxhciBv cGVyYXRpb24uIFJlbW92ZWQgQWNrIGZyb20gRGFuaWVsCiAgIGFzIGl0IHdhcyBzbyBsYXJnZS4g QWRkIGxvY2FsIHZhcmlhYmxlIGJsb2NrLgp2NToKIC0gTWFrZSBYRU5WRVJfcGxhdGZvcm1fcGFy YW1ldGVycyxnZXRfZmVhdHVyZXMsdmVyc2lvbiBiZSBleGNsdWRlZAogICBmcm9tIHRoZSBYU00g Y2hlY2sgcGVyIEphbidzIHJldmlldy4gQWRkIEJVSUxEX0JVR19DSEVDSyBhbmQgZml4CiAgIG9k ZCBsaW5lIHJlbW92YWxzLgotLS0KIHRvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94 ZW4veGVuLnRlIHwgMTQgKysrKysrKysrCiB4ZW4vY29tbW9uL2tlcm5lbC5jICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDQzICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIHhlbi9jb21t b24vdmVyc2lvbi5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysrKysrKysrKwogeGVu L2luY2x1ZGUveGVuL3ZlcnNpb24uaCAgICAgICAgICAgICAgICAgICAgfCAgMSArCiB4ZW4vaW5j bHVkZS94c20vZHVtbXkuaCAgICAgICAgICAgICAgICAgICAgICB8IDI0ICsrKysrKysrKysrKysr KysKIHhlbi9pbmNsdWRlL3hzbS94c20uaCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKysr KwogeGVuL3hzbS9kdW1teS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiB4 ZW4veHNtL2ZsYXNrL2hvb2tzLmMgICAgICAgICAgICAgICAgICAgICAgICB8IDM5ICsrKysrKysr KysrKysrKysrKysrKysrKysKIHhlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzICAg ICAgICAgIHwgMjUgKysrKysrKysrKysrKysrKwogeGVuL3hzbS9mbGFzay9wb2xpY3kvc2VjdXJp dHlfY2xhc3NlcyAgICAgICAgfCAgMSArCiAxMCBmaWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9u cygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9saWN5L3Bv bGljeS9tb2R1bGVzL3hlbi94ZW4udGUgYi90b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVs ZXMveGVuL3hlbi50ZQppbmRleCBkMzVhZTIyLi4xOGY0OWI1IDEwMDY0NAotLS0gYS90b29scy9m bGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMveGVuL3hlbi50ZQorKysgYi90b29scy9mbGFzay9w b2xpY3kvcG9saWN5L21vZHVsZXMveGVuL3hlbi50ZQpAQCAtNzMsNiArNzMsMTQgQEAgYWxsb3cg ZG9tMF90IHhlbl90OnhlbjIgewogICAgIHBtdV9jdHJsCiAgICAgZ2V0X3N5bWJvbAogfTsKKwor IyBBbGxvdyBkb20wIHRvIHVzZSBhbGwgWEVOVkVSXyBzdWJvcHMgdGhhdCBoYXZlIGNoZWNrcy4K KyMgTm90ZSB0aGF0IGRvbTAgaXMgcGFydCBvZiBkb21haW5fdHlwZSBzbyB0aGlzIGhhcyBkdXBs aWNhdGVzLgorYWxsb3cgZG9tMF90IHhlbl90OnZlcnNpb24geworICAgIHhlbl9leHRyYXZlcnNp b24geGVuX2NvbXBpbGVfaW5mbyB4ZW5fY2FwYWJpbGl0aWVzCisgICAgeGVuX2NoYW5nZXNldCB4 ZW5fcGFnZXNpemUgeGVuX2d1ZXN0X2hhbmRsZSB4ZW5fY29tbWFuZGxpbmUKK307CisKIGFsbG93 IGRvbTBfdCB4ZW5fdDptbXUgbWVtb3J5bWFwOwogCiAjIEFsbG93IGRvbTAgdG8gdXNlIHRoZXNl IGRvbWN0bHMgb24gaXRzZWxmLiBGb3IgZG9tY3RscyBhY3Rpbmcgb24gb3RoZXIKQEAgLTEzNyw2 ICsxNDUsMTIgQEAgaWYgKGd1ZXN0X3dyaXRlY29uc29sZSkgewogIyBwbXVfY3RybCBpcyBmb3Ip CiBhbGxvdyBkb21haW5fdHlwZSB4ZW5fdDp4ZW4yIHBtdV91c2U7CiAKKyMgRm9yIG5vcm1hbCBn dWVzdHMgYWxsIHBvc3NpYmxlIGV4Y2VwdCBYRU5WRVJfY29tbWFuZGxpbmUuCithbGxvdyBkb21h aW5fdHlwZSB4ZW5fdDp2ZXJzaW9uIHsKKyAgICB4ZW5fZXh0cmF2ZXJzaW9uIHhlbl9jb21waWxl X2luZm8geGVuX2NhcGFiaWxpdGllcworICAgIHhlbl9jaGFuZ2VzZXQgIHhlbl9wYWdlc2l6ZSB4 ZW5fZ3Vlc3RfaGFuZGxlCit9OworCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjCiAjIERvbWFp biBjcmVhdGlvbgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9rZXJuZWwuYyBiL3hlbi9jb21tb24v a2VybmVsLmMKaW5kZXggMDYxOGRhMi4uMDZlY2YyNiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9r ZXJuZWwuYworKysgYi94ZW4vY29tbW9uL2tlcm5lbC5jCkBAIC0xMyw2ICsxMyw3IEBACiAjaW5j bHVkZSA8eGVuL25taS5oPgogI2luY2x1ZGUgPHhlbi9ndWVzdF9hY2Nlc3MuaD4KICNpbmNsdWRl IDx4ZW4vaHlwZXJjYWxsLmg+CisjaW5jbHVkZSA8eHNtL3hzbS5oPgogI2luY2x1ZGUgPGFzbS9j dXJyZW50Lmg+CiAjaW5jbHVkZSA8cHVibGljL25taS5oPgogI2luY2x1ZGUgPHB1YmxpYy92ZXJz aW9uLmg+CkBAIC0yMjYsNiArMjI3LDggQEAgdm9pZCBfX2luaXQgZG9faW5pdGNhbGxzKHZvaWQp CiAKIERPKHhlbl92ZXJzaW9uKShpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQp IGFyZykKIHsKKyAgICBib29sX3QgZGVueSA9ICEheHNtX3hlbl92ZXJzaW9uKFhTTV9PVEhFUiwg Y21kKTsKKwogICAgIHN3aXRjaCAoIGNtZCApCiAgICAgewogICAgIGNhc2UgWEVOVkVSX3ZlcnNp b246CkBAIC0yMzYsNyArMjM5LDcgQEAgRE8oeGVuX3ZlcnNpb24pKGludCBjbWQsIFhFTl9HVUVT VF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgICAgICB4ZW5fZXh0cmF2ZXJzaW9uX3QgZXh0 cmF2ZXJzaW9uOwogCiAgICAgICAgIG1lbXNldChleHRyYXZlcnNpb24sIDAsIHNpemVvZihleHRy YXZlcnNpb24pKTsKLSAgICAgICAgc2FmZV9zdHJjcHkoZXh0cmF2ZXJzaW9uLCB4ZW5fZXh0cmFf dmVyc2lvbigpKTsKKyAgICAgICAgc2FmZV9zdHJjcHkoZXh0cmF2ZXJzaW9uLCBkZW55ID8geGVu X2RlbnkoKSA6IHhlbl9leHRyYV92ZXJzaW9uKCkpOwogICAgICAgICBpZiAoIGNvcHlfdG9fZ3Vl c3QoYXJnLCBleHRyYXZlcnNpb24sIEFSUkFZX1NJWkUoZXh0cmF2ZXJzaW9uKSkgKQogICAgICAg ICAgICAgcmV0dXJuIC1FRkFVTFQ7CiAgICAgICAgIHJldHVybiAwOwpAQCAtMjQ3LDEwICsyNTAs MTAgQEAgRE8oeGVuX3ZlcnNpb24pKGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9p ZCkgYXJnKQogICAgICAgICB4ZW5fY29tcGlsZV9pbmZvX3QgaW5mbzsKIAogICAgICAgICBtZW1z ZXQoJmluZm8sIDAsIHNpemVvZihpbmZvKSk7Ci0gICAgICAgIHNhZmVfc3RyY3B5KGluZm8uY29t cGlsZXIsICAgICAgIHhlbl9jb21waWxlcigpKTsKLSAgICAgICAgc2FmZV9zdHJjcHkoaW5mby5j b21waWxlX2J5LCAgICAgeGVuX2NvbXBpbGVfYnkoKSk7Ci0gICAgICAgIHNhZmVfc3RyY3B5KGlu Zm8uY29tcGlsZV9kb21haW4sIHhlbl9jb21waWxlX2RvbWFpbigpKTsKLSAgICAgICAgc2FmZV9z dHJjcHkoaW5mby5jb21waWxlX2RhdGUsICAgeGVuX2NvbXBpbGVfZGF0ZSgpKTsKKyAgICAgICAg c2FmZV9zdHJjcHkoaW5mby5jb21waWxlciwgICAgICAgZGVueSA/IHhlbl9kZW55KCkgOiB4ZW5f Y29tcGlsZXIoKSk7CisgICAgICAgIHNhZmVfc3RyY3B5KGluZm8uY29tcGlsZV9ieSwgICAgIGRl bnkgPyB4ZW5fZGVueSgpIDogeGVuX2NvbXBpbGVfYnkoKSk7CisgICAgICAgIHNhZmVfc3RyY3B5 KGluZm8uY29tcGlsZV9kb21haW4sIGRlbnkgPyB4ZW5fZGVueSgpIDogeGVuX2NvbXBpbGVfZG9t YWluKCkpOworICAgICAgICBzYWZlX3N0cmNweShpbmZvLmNvbXBpbGVfZGF0ZSwgICBkZW55ID8g eGVuX2RlbnkoKSA6IHhlbl9jb21waWxlX2RhdGUoKSk7CiAgICAgICAgIGlmICggY29weV90b19n dWVzdChhcmcsICZpbmZvLCAxKSApCiAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKICAgICAg ICAgcmV0dXJuIDA7CkBAIC0yNjEsNyArMjY0LDggQEAgRE8oeGVuX3ZlcnNpb24pKGludCBjbWQs IFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgICAgICB4ZW5fY2FwYWJpbGl0 aWVzX2luZm9fdCBpbmZvOwogCiAgICAgICAgIG1lbXNldChpbmZvLCAwLCBzaXplb2YoaW5mbykp OwotICAgICAgICBhcmNoX2dldF94ZW5fY2FwcygmaW5mbyk7CisgICAgICAgIGlmICggIWRlbnkg KQorICAgICAgICAgICAgYXJjaF9nZXRfeGVuX2NhcHMoJmluZm8pOwogCiAgICAgICAgIGlmICgg Y29weV90b19ndWVzdChhcmcsIGluZm8sIEFSUkFZX1NJWkUoaW5mbykpICkKICAgICAgICAgICAg IHJldHVybiAtRUZBVUxUOwpAQCAtMjg1LDcgKzI4OSw3IEBAIERPKHhlbl92ZXJzaW9uKShpbnQg Y21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgeGVuX2NoYW5n ZXNldF9pbmZvX3QgY2hnc2V0OwogCiAgICAgICAgIG1lbXNldChjaGdzZXQsIDAsIHNpemVvZihj aGdzZXQpKTsKLSAgICAgICAgc2FmZV9zdHJjcHkoY2hnc2V0LCB4ZW5fY2hhbmdlc2V0KCkpOwor ICAgICAgICBzYWZlX3N0cmNweShjaGdzZXQsIGRlbnkgPyB4ZW5fZGVueSgpIDogeGVuX2NoYW5n ZXNldCgpKTsKICAgICAgICAgaWYgKCBjb3B5X3RvX2d1ZXN0KGFyZywgY2hnc2V0LCBBUlJBWV9T SVpFKGNoZ3NldCkpICkKICAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOwogICAgICAgICByZXR1 cm4gMDsKQEAgLTM0MiwxOSArMzQ2LDM2IEBAIERPKHhlbl92ZXJzaW9uKShpbnQgY21kLCBYRU5f R1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICB9CiAKICAgICBjYXNlIFhFTlZFUl9w YWdlc2l6ZToKKyAgICAgICAgaWYgKCBkZW55ICkKKyAgICAgICAgICAgIHJldHVybiAwOwogICAg ICAgICByZXR1cm4gKCFndWVzdF9oYW5kbGVfaXNfbnVsbChhcmcpID8gLUVJTlZBTCA6IFBBR0Vf U0laRSk7CiAKICAgICBjYXNlIFhFTlZFUl9ndWVzdF9oYW5kbGU6Ci0gICAgICAgIGlmICggY29w eV90b19ndWVzdChhcmcsIGN1cnJlbnQtPmRvbWFpbi0+aGFuZGxlLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgQVJSQVlfU0laRShjdXJyZW50LT5kb21haW4tPmhhbmRsZSkpICkKKyAgICB7 CisgICAgICAgIHhlbl9kb21haW5faGFuZGxlX3QgaGRsOworCisgICAgICAgIGlmICggZGVueSAp CisgICAgICAgICAgICBtZW1zZXQoJmhkbCwgMCwgQVJSQVlfU0laRShoZGwpKTsKKworICAgICAg ICBCVUlMRF9CVUdfT04oQVJSQVlfU0laRShjdXJyZW50LT5kb21haW4tPmhhbmRsZSkgIT0gQVJS QVlfU0laRShoZGwpKTsKKworICAgICAgICBpZiAoIGNvcHlfdG9fZ3Vlc3QoYXJnLCBkZW55ID8g aGRsIDogY3VycmVudC0+ZG9tYWluLT5oYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBBUlJBWV9TSVpFKGhkbCkgKSApCiAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKICAgICAg ICAgcmV0dXJuIDA7Ci0KKyAgICB9CiAgICAgY2FzZSBYRU5WRVJfY29tbWFuZGxpbmU6Ci0gICAg ICAgIGlmICggY29weV90b19ndWVzdChhcmcsIHNhdmVkX2NtZGxpbmUsIEFSUkFZX1NJWkUoc2F2 ZWRfY21kbGluZSkpICkKKyAgICB7CisgICAgICAgIHNpemVfdCBsZW4gPSBBUlJBWV9TSVpFKHNh dmVkX2NtZGxpbmUpOworCisgICAgICAgIGlmICggZGVueSApCisgICAgICAgICAgICBsZW4gPSBz dHJsZW4oeGVuX2RlbnkoKSkgKyAxOworCisgICAgICAgIGlmICggY29weV90b19ndWVzdChhcmcs IGRlbnkgPyB4ZW5fZGVueSgpIDogc2F2ZWRfY21kbGluZSwgbGVuKSApCiAgICAgICAgICAgICBy ZXR1cm4gLUVGQVVMVDsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQorICAgIH0KIAogICAgIHJl dHVybiAtRU5PU1lTOwogfQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi92ZXJzaW9uLmMgYi94ZW4v Y29tbW9uL3ZlcnNpb24uYwppbmRleCBiMTUyZTI3Li5mYzliZjQyIDEwMDY0NAotLS0gYS94ZW4v Y29tbW9uL3ZlcnNpb24uYworKysgYi94ZW4vY29tbW9uL3ZlcnNpb24uYwpAQCAtNTUsMyArNTUs MTggQEAgY29uc3QgY2hhciAqeGVuX2Jhbm5lcih2b2lkKQogewogICAgIHJldHVybiBYRU5fQkFO TkVSOwogfQorCitjb25zdCBjaGFyICp4ZW5fZGVueSh2b2lkKQoreworICAgIHJldHVybiAiPGRl bmllZD4iOworfQorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1m aWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAor ICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL3hlbi92ZXJzaW9uLmggYi94ZW4vaW5jbHVkZS94ZW4vdmVyc2lvbi5oCmluZGV4IDgx YTNjN2QuLjIwMTVjMGIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi92ZXJzaW9uLmgKKysr IGIveGVuL2luY2x1ZGUveGVuL3ZlcnNpb24uaApAQCAtMTIsNSArMTIsNiBAQCB1bnNpZ25lZCBp bnQgeGVuX21pbm9yX3ZlcnNpb24odm9pZCk7CiBjb25zdCBjaGFyICp4ZW5fZXh0cmFfdmVyc2lv bih2b2lkKTsKIGNvbnN0IGNoYXIgKnhlbl9jaGFuZ2VzZXQodm9pZCk7CiBjb25zdCBjaGFyICp4 ZW5fYmFubmVyKHZvaWQpOworY29uc3QgY2hhciAqeGVuX2Rlbnkodm9pZCk7CiAKICNlbmRpZiAv KiBfX1hFTl9WRVJTSU9OX0hfXyAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveHNtL2R1bW15 LmggYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAppbmRleCAxZDEzODI2Li44N2JlOWU1IDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorKysgYi94ZW4vaW5jbHVkZS94c20vZHVt bXkuaApAQCAtNzI3LDMgKzcyNywyNyBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQgeHNtX3BtdV9v cCAoWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludAogfQogCiAj ZW5kaWYgLyogQ09ORklHX1g4NiAqLworCisjaW5jbHVkZSA8cHVibGljL3ZlcnNpb24uaD4KK3N0 YXRpYyBYU01fSU5MSU5FIGludCB4c21feGVuX3ZlcnNpb24gKFhTTV9ERUZBVUxUX0FSRyB1aW50 MzJfdCBvcCkKK3sKKyAgICBYU01fQVNTRVJUX0FDVElPTihYU01fT1RIRVIpOworICAgIHN3aXRj aCAoIG9wICkKKyAgICB7CisgICAgY2FzZSBYRU5WRVJfdmVyc2lvbjoKKyAgICBjYXNlIFhFTlZF Ul9wbGF0Zm9ybV9wYXJhbWV0ZXJzOgorICAgIGNhc2UgWEVOVkVSX2dldF9mZWF0dXJlczoKKyAg ICAgICAgLyogVGhlIHN1Yi1vcHMgaWdub3JlcyB0aGUgcGVybWlzc2lvbiBjaGVjayBhbmQgcmV0 dXJucyBkYXRhLiAqLworICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIFhFTlZFUl9leHRyYXZl cnNpb246CisgICAgY2FzZSBYRU5WRVJfY29tcGlsZV9pbmZvOgorICAgIGNhc2UgWEVOVkVSX2Nh cGFiaWxpdGllczoKKyAgICBjYXNlIFhFTlZFUl9jaGFuZ2VzZXQ6CisgICAgY2FzZSBYRU5WRVJf cGFnZXNpemU6CisgICAgY2FzZSBYRU5WRVJfZ3Vlc3RfaGFuZGxlOgorICAgICAgICAvKiBUaGVz ZSBNVVNUIGFsd2F5cyBiZSBhY2Nlc3NpYmxlIHRvIGFueSBndWVzdCBieSBkZWZhdWx0LiAqLwor ICAgICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKFhTTV9IT09LLCBjdXJyZW50LT5kb21h aW4sIE5VTEwpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rp b24oWFNNX1BSSVYsIGN1cnJlbnQtPmRvbWFpbiwgTlVMTCk7CisgICAgfQorfQpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUveHNtL3hzbS5oIGIveGVuL2luY2x1ZGUveHNtL3hzbS5oCmluZGV4IDNh ZmVkNzAuLmRiNDQwZjYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS94c20uaAorKysgYi94 ZW4vaW5jbHVkZS94c20veHNtLmgKQEAgLTE5Myw2ICsxOTMsNyBAQCBzdHJ1Y3QgeHNtX29wZXJh dGlvbnMgewogICAgIGludCAoKmlvcG9ydF9tYXBwaW5nKSAoc3RydWN0IGRvbWFpbiAqZCwgdWlu dDMyX3QgcywgdWludDMyX3QgZSwgdWludDhfdCBhbGxvdyk7CiAgICAgaW50ICgqcG11X29wKSAo c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IG9wKTsKICNlbmRpZgorICAgIGludCAoKnhl bl92ZXJzaW9uKSAodWludDMyX3QgY21kKTsKIH07CiAKICNpZmRlZiBDT05GSUdfWFNNCkBAIC03 MzEsNiArNzMyLDEwIEBAIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9wbXVfb3AgKHhzbV9kZWZhdWx0 X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQKIAogI2VuZGlmIC8qIENPTkZJ R19YODYgKi8KIAorc3RhdGljIGlubGluZSBpbnQgeHNtX3hlbl92ZXJzaW9uICh4c21fZGVmYXVs dF90IGRlZiwgdWludDMyX3Qgb3ApCit7CisgICAgcmV0dXJuIHhzbV9vcHMtPnhlbl92ZXJzaW9u KG9wKTsKK30KICNlbmRpZiAvKiBYU01fTk9fV1JBUFBFUlMgKi8KIAogI2lmZGVmIENPTkZJR19N VUxUSUJPT1QKZGlmZiAtLWdpdCBhL3hlbi94c20vZHVtbXkuYyBiL3hlbi94c20vZHVtbXkuYwpp bmRleCAwZjMyNjM2Li45NzkxYWQ0IDEwMDY0NAotLS0gYS94ZW4veHNtL2R1bW15LmMKKysrIGIv eGVuL3hzbS9kdW1teS5jCkBAIC0xNjIsNCArMTYyLDUgQEAgdm9pZCB4c21fZml4dXBfb3BzIChz dHJ1Y3QgeHNtX29wZXJhdGlvbnMgKm9wcykKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMs IGlvcG9ydF9tYXBwaW5nKTsKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHBtdV9vcCk7 CiAjZW5kaWYKKyAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhlbl92ZXJzaW9uKTsKIH0K ZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svaG9va3MuYyBiL3hlbi94c20vZmxhc2svaG9va3Mu YwppbmRleCA0ODEzNjIzLi4xYTk1Njg5IDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tz LmMKKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVk ZSA8cHVibGljL3hlbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9waHlzZGV2Lmg+CiAjaW5jbHVkZSA8 cHVibGljL3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8cHVibGljL3ZlcnNpb24uaD4KIAogI2luY2x1 ZGUgPHB1YmxpYy94c20vZmxhc2tfb3AuaD4KIApAQCAtMTYyMCw2ICsxNjIxLDQzIEBAIHN0YXRp YyBpbnQgZmxhc2tfcG11X29wIChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgb3ApCiB9 CiAjZW5kaWYgLyogQ09ORklHX1g4NiAqLwogCitzdGF0aWMgaW50IGZsYXNrX3hlbl92ZXJzaW9u ICh1aW50MzJfdCBvcCkKK3sKKyAgICB1MzIgZHNpZCA9IGRvbWFpbl9zaWQoY3VycmVudC0+ZG9t YWluKTsKKworICAgIHN3aXRjaCAoIG9wICkKKyAgICB7CisgICAgY2FzZSBYRU5WRVJfdmVyc2lv bjoKKyAgICBjYXNlIFhFTlZFUl9wbGF0Zm9ybV9wYXJhbWV0ZXJzOgorICAgIGNhc2UgWEVOVkVS X2dldF9mZWF0dXJlczoKKyAgICAgICAgLyogVGhlIHN1Yi1vcHMgaWdub3JlIHRoZSBwZXJtaXNz aW9uIGNoZWNrIGFuZCBhbHdheXMgcmV0dXJuIGRhdGEuICovCisgICAgICAgIHJldHVybiAwOwor ICAgIGNhc2UgWEVOVkVSX2V4dHJhdmVyc2lvbjoKKyAgICAgICAgcmV0dXJuIGF2Y19oYXNfcGVy bShkc2lkLCBTRUNJTklUU0lEX1hFTiwgU0VDQ0xBU1NfVkVSU0lPTiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBWRVJTSU9OX19YRU5fRVhUUkFWRVJTSU9OLCBOVUxMKTsKKyAgICBjYXNl IFhFTlZFUl9jb21waWxlX2luZm86CisgICAgICAgIHJldHVybiBhdmNfaGFzX3Blcm0oZHNpZCwg U0VDSU5JVFNJRF9YRU4sIFNFQ0NMQVNTX1ZFUlNJT04sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVkVSU0lPTl9fWEVOX0NPTVBJTEVfSU5GTywgTlVMTCk7CisgICAgY2FzZSBYRU5WRVJf Y2FwYWJpbGl0aWVzOgorICAgICAgICByZXR1cm4gYXZjX2hhc19wZXJtKGRzaWQsIFNFQ0lOSVRT SURfWEVOLCBTRUNDTEFTU19WRVJTSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZF UlNJT05fX1hFTl9DQVBBQklMSVRJRVMsIE5VTEwpOworICAgIGNhc2UgWEVOVkVSX2NoYW5nZXNl dDoKKyAgICAgICAgcmV0dXJuIGF2Y19oYXNfcGVybShkc2lkLCBTRUNJTklUU0lEX1hFTiwgU0VD Q0xBU1NfVkVSU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRVJTSU9OX19YRU5f Q0hBTkdFU0VULCBOVUxMKTsKKyAgICBjYXNlIFhFTlZFUl9wYWdlc2l6ZToKKyAgICAgICAgcmV0 dXJuIGF2Y19oYXNfcGVybShkc2lkLCBTRUNJTklUU0lEX1hFTiwgU0VDQ0xBU1NfVkVSU0lPTiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRVJTSU9OX19YRU5fUEFHRVNJWkUsIE5VTEwp OworICAgIGNhc2UgWEVOVkVSX2d1ZXN0X2hhbmRsZToKKyAgICAgICAgcmV0dXJuIGF2Y19oYXNf cGVybShkc2lkLCBTRUNJTklUU0lEX1hFTiwgU0VDQ0xBU1NfVkVSU0lPTiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBWRVJTSU9OX19YRU5fR1VFU1RfSEFORExFLCBOVUxMKTsKKyAgICBj YXNlIFhFTlZFUl9jb21tYW5kbGluZToKKyAgICAgICAgcmV0dXJuIGF2Y19oYXNfcGVybShkc2lk LCBTRUNJTklUU0lEX1hFTiwgU0VDQ0xBU1NfVkVSU0lPTiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBWRVJTSU9OX19YRU5fQ09NTUFORExJTkUsIE5VTEwpOworICAgIGRlZmF1bHQ6Cisg ICAgICAgIHJldHVybiAtRVBFUk07CisgICAgfQorfQorCiBsb25nIGRvX2ZsYXNrX29wKFhFTl9H VUVTVF9IQU5ETEVfUEFSQU0oeHNtX29wX3QpIHVfZmxhc2tfb3ApOwogaW50IGNvbXBhdF9mbGFz a19vcChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhzbV9vcF90KSB1X2ZsYXNrX29wKTsKIApAQCAt MTc1OCw2ICsxNzk2LDcgQEAgc3RhdGljIHN0cnVjdCB4c21fb3BlcmF0aW9ucyBmbGFza19vcHMg PSB7CiAgICAgLmlvcG9ydF9tYXBwaW5nID0gZmxhc2tfaW9wb3J0X21hcHBpbmcsCiAgICAgLnBt dV9vcCA9IGZsYXNrX3BtdV9vcCwKICNlbmRpZgorICAgIC54ZW5fdmVyc2lvbiA9IGZsYXNrX3hl bl92ZXJzaW9uLAogfTsKIAogc3RhdGljIF9faW5pdCB2b2lkIGZsYXNrX2luaXQodm9pZCkKZGlm ZiAtLWdpdCBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzIGIveGVuL3hzbS9m bGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKaW5kZXggZWZmYjU5Zi4uYmFkY2YxYyAxMDA2NDQK LS0tIGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKKysrIGIveGVuL3hzbS9m bGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKQEAgLTQ5NSwzICs0OTUsMjggQEAgY2xhc3Mgc2Vj dXJpdHkKICMgcmVtb3ZlIG9jb250ZXh0IGxhYmVsIGRlZmluaXRpb25zIGZvciByZXNvdXJjZXMK ICAgICBkZWxfb2NvbnRleHQKIH0KKworIyBDbGFzcyB2ZXJzaW9uIGlzIHVzZWQgdG8gZGVzY3Jp YmUgdGhlIFhFTlZFUl8gaHlwZXJjYWxsLgorIyBBbG1vc3QgYWxsIHN1Yi1vcHMgYXJlIGRlc2Ny aWJlZCBoZXJlIC0gaW4gdGhlIGRlZmF1bHQgY2FzZSBhbGwgb2YgdGhlbSBzaG91bGQKKyMgYmUg YWxsb3dlZCBleGNlcHQgdGhlIFhFTlZFUl9jb21tYW5kbGluZS4KKyMKKyMgVGhlIG9uZXMgdGhh dCBhcmUgb21pdHRlZCBhcmUgWEVOVkVSX3ZlcnNpb24sIFhFTlZFUl9wbGF0Zm9ybV9wYXJhbWV0 ZXJzLAorIyBhbmQgWEVOVkVSX2dldF9mZWF0dXJlcyAgLSBhcyB0aGV5IE1VU1QgYWx3YXlzIGJl IHJldHVybmVkIHRvIGEgZ3Vlc3QuCisjCitjbGFzcyB2ZXJzaW9uCit7CisjIEV4dHJhIGluZm9y bWF0aW9ucyAoLXVuc3RhYmxlKS4KKyAgICB4ZW5fZXh0cmF2ZXJzaW9uCisjIENvbXBpbGUgaW5m b3JtYXRpb24gb2YgdGhlIGh5cGVydmlzb3IuCisgICAgeGVuX2NvbXBpbGVfaW5mbworIyBTdWNo IGFzICJ4ZW4tMy4wLXg4Nl82NCB4ZW4tMy4wLXg4Nl8zMnAgaHZtLTMuMC14ODZfMzIgaHZtLTMu MC14ODZfMzJwIGh2bS0zLjAteDg2XzY0Ii4KKyAgICB4ZW5fY2FwYWJpbGl0aWVzCisjIFNvdXJj ZSBjb2RlIGNoYW5nZXNldC4KKyAgICB4ZW5fY2hhbmdlc2V0CisjIFBhZ2Ugc2l6ZSB0aGUgaHlw ZXJ2aXNvciB1c2VzLgorICAgIHhlbl9wYWdlc2l6ZQorIyBBbiB2YWx1ZSB0aGF0IHRoZSBjb250 cm9sIHN0YWNrIGNhbiBjaG9vc2UuCisgICAgeGVuX2d1ZXN0X2hhbmRsZQorIyBYZW4gY29tbWFu ZCBsaW5lLgorICAgIHhlbl9jb21tYW5kbGluZQorfQpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFz ay9wb2xpY3kvc2VjdXJpdHlfY2xhc3NlcyBiL3hlbi94c20vZmxhc2svcG9saWN5L3NlY3VyaXR5 X2NsYXNzZXMKaW5kZXggY2ExOTFkYi4uY2RlNGUxYSAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFz ay9wb2xpY3kvc2VjdXJpdHlfY2xhc3NlcworKysgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9zZWN1 cml0eV9jbGFzc2VzCkBAIC0xOCw1ICsxOCw2IEBAIGNsYXNzIHNoYWRvdwogY2xhc3MgZXZlbnQK IGNsYXNzIGdyYW50CiBjbGFzcyBzZWN1cml0eQorY2xhc3MgdmVyc2lvbgogCiAjIEZMQVNLCi0t IAoyLjUuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==