From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [XTF PATCH v2] Add a Live Patch privilege check test Date: Fri, 18 Nov 2016 17:33:17 +0000 Message-ID: References: <1479461766-11484-1-git-send-email-ross.lagerwall@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1479461766-11484-1-git-send-email-ross.lagerwall@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Ross Lagerwall , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org T24gMTgvMTEvMTYgMDk6MzYsIFJvc3MgTGFnZXJ3YWxsIHdyb3RlOgo+IEFkZCBhIHRlc3QgdG8g Y2hlY2sgdGhhdCBMaXZlIFBhdGNoIG9wZXJhdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBmcm9tIGFu Cj4gdW5wcml2aWxlZ2VkIGRvbWFpbi4KPgo+IFNpZ25lZC1vZmYtYnk6IFJvc3MgTGFnZXJ3YWxs IDxyb3NzLmxhZ2Vyd2FsbEBjaXRyaXguY29tPgo+IC0tLQo+Cj4gSW4gdjI6Cj4gKiBGaXhlZCBy ZXZpZXcgaXNzdWVzLgo+ICogUmViYXNlZCBhbmQgYWRkZWQgYSB0ZXN0X3RpdGxlIHN0cmluZy4K Pgo+ICBjb21tb24vbGliLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNSArKysKPiAgZG9j cy9hbGwtdGVzdHMuZG94ICAgICAgICAgICAgICAgICAgfCAgIDIgKwo+ICBpbmNsdWRlL3hlbi9z eXNjdGwuaCAgICAgICAgICAgICAgICB8IDIxOCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKPiAgaW5jbHVkZS94dGYvaHlwZXJjYWxsLmggICAgICAgICAgICAgfCAgIDYgKwo+ ICBpbmNsdWRlL3h0Zi9saWIuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCj4gIHRlc3RzL2xp dmVwYXRjaC1wcml2LWNoZWNrL01ha2VmaWxlIHwgICA5ICsrCj4gIHRlc3RzL2xpdmVwYXRjaC1w cml2LWNoZWNrL21haW4uYyAgIHwgMTUzICsrKysrKysrKysrKysrKysrKysrKysrKysKPiAgNyBm aWxlcyBjaGFuZ2VkLCA0MDUgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA3NTUgaW5j bHVkZS94ZW4vc3lzY3RsLmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2xpdmVwYXRjaC1w cml2LWNoZWNrL01ha2VmaWxlCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9saXZlcGF0Y2gt cHJpdi1jaGVjay9tYWluLmMKPgo+IGRpZmYgLS1naXQgYS9jb21tb24vbGliLmMgYi9jb21tb24v bGliLmMKPiBpbmRleCA5ZGNhM2UzLi5jYzg0N2FiIDEwMDY0NAo+IC0tLSBhL2NvbW1vbi9saWIu Ywo+ICsrKyBiL2NvbW1vbi9saWIuYwo+IEBAIC0xOSw2ICsxOSwyMSBAQCB2b2lkIF9fbm9yZXR1 cm4gcGFuaWMoY29uc3QgY2hhciAqZm10LCAuLi4pCj4gICAgICBhcmNoX2NyYXNoX2hhcmQoKTsK PiAgfQo+ICAKPiAraW50IHByb2JlX3N5c2N0bF9pbnRlcmZhY2VfdmVyc2lvbih2b2lkKQoKeHRm XyBwcmVmaXggcGxlYXNlLgoKPiArewo+ICsgICAgaW50IGk7Cj4gKyAgICB4ZW5fc3lzY3RsX3Qg b3AgPSB7MH07Cj4gKwo+ICsgICAgZm9yICggaSA9IDA7IGkgPCAxMjg7IGkrKyApCj4gKyAgICB7 Cj4gKyAgICAgICAgb3AuaW50ZXJmYWNlX3ZlcnNpb24gPSBpOwo+ICsgICAgICAgIGlmICggaHlw ZXJjYWxsX3N5c2N0bCgmb3ApICE9IC1FQUNDRVMgKQo+ICsgICAgICAgICAgICByZXR1cm4gaTsK PiArICAgIH0KPiArCj4gKyAgICByZXR1cm4gLTE7Cj4gK30KPiArCj4gIC8qCj4gICAqIExvY2Fs IHZhcmlhYmxlczoKPiAgICogbW9kZTogQwo+IGRpZmYgLS1naXQgYS9kb2NzL2FsbC10ZXN0cy5k b3ggYi9kb2NzL2FsbC10ZXN0cy5kb3gKPiBpbmRleCA0Zjg2MTgyLi4yOTA5Yjg1IDEwMDY0NAo+ IC0tLSBhL2RvY3MvYWxsLXRlc3RzLmRveAo+ICsrKyBiL2RvY3MvYWxsLXRlc3RzLmRveAo+IEBA IC0yMiw2ICsyMiw4IEBAIGFuZCBmdW5jdGlvbmFsaXR5Lgo+ICAKPiAgQHN1YnBhZ2UgdGVzdC1p bnZscGcgLSBgaW52bHBnYCBpbnN0cnVjdGlvbiBiZWhhdmlvdXIuCj4gIAo+ICtAc3VicGFnZSB0 ZXN0LWxpdmVwYXRjaC1wcml2LWNoZWNrIC0gTGl2ZSBQYXRjaCBQcml2aWxlZ2UgQ2hlY2sKPiAr Cj4gIEBzdWJwYWdlIHRlc3QtcHYtaW9wbCAtIElPUEwgZW11bGF0aW9uIGZvciBQViBndWVzdHMu Cj4gIAo+ICBAc3VicGFnZSB0ZXN0LXN3aW50LWVtdWxhdGlvbiAtIFNvZnR3YXJlIGludGVycnVw dCBlbXVsYXRpb24gZm9yIEhWTSBndWVzdHMuCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL3N5 c2N0bC5oIGIvaW5jbHVkZS94ZW4vc3lzY3RsLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDc1NQo+IGlu ZGV4IDAwMDAwMDAuLmY0MDA2ZmIKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvaW5jbHVkZS94ZW4v c3lzY3RsLmgKPiBAQCAtMCwwICsxLDIxOCBAQAo+ICsvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4g KyAqIHN5c2N0bC5oCj4gKyAqCj4gKyAqIFN5c3RlbSBtYW5hZ2VtZW50IG9wZXJhdGlvbnMuIEZv ciB1c2UgYnkgbm9kZSBjb250cm9sIHN0YWNrLgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBj b3B5Cj4gKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bwo+ICsgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRo b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQo+ICsgKiBy aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBz dWJsaWNlbnNlLCBhbmQvb3IKPiArICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKPiArICogZnVybmlzaGVk IHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiAr ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug c2hhbGwgYmUgaW5jbHVkZWQgaW4KPiArICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAq IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB TkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKPiArICogQVVUSE9SUyBP UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBP VEhFUgo+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCj4gKyAqIERFQUxJTkdT IElOIFRIRSBTT0ZUV0FSRS4KPiArICoKPiArICogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDYsIEsg RnJhc2VyCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBfX1hFTl9QVUJMSUNfU1lTQ1RMX0hfXwo+ICsj ZGVmaW5lIF9fWEVOX1BVQkxJQ19TWVNDVExfSF9fCj4gKwo+ICsjaW5jbHVkZSAieGVuLmgiCj4g KyNpbmNsdWRlICJwaHlzZGV2LmgiCj4gKwo+ICt0eXBlZGVmIHN0cnVjdCB7Cj4gKyAgICB1bmlv biB7Cj4gKyAgICAgICAgdm9pZCAqcDsKPiArICAgICAgICB1aW50NjRfdCBfX2F0dHJpYnV0ZV9f KChhbGlnbmVkKDgpKSkgcTsKCl9fYWxpZ25lZCg4KSBwbGVhc2UsIHBvc3NpYmx5IGFmdGVyIGlu Y2x1ZGluZyA8eHRmL2NvbXBpbGVyLmg+Cgo+ICsgICAgfTsKPiArfSBndWVzdF9oYW5kbGVfNjQ7 CgpUaGlzIHNob3VsZCBwcm9iYWJseSBiZSBpbiB4ZW4uaC4gIENhbiBpdCBoYXZlIGEgX3Qgc3Vm Zml4IHBsZWFzZT8KCj4gKwo+ICsvKgo+ICsgKiBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9vcAo+ICsg Kgo+ICsgKiBSZWZlciB0byB0aGUgZG9jcy91bnN0YWJsZS9taXNjL2xpdmVwYXRjaC5tYXJrZG93 bgo+ICsgKiBmb3IgdGhlIGRlc2lnbiBkZXRhaWxzIG9mIHRoaXMgaHlwZXJjYWxsLgo+ICsgKgo+ ICsgKiBUaGVyZSBhcmUgZm91ciBzdWItb3BzOgo+ICsgKiAgWEVOX1NZU0NUTF9MSVZFUEFUQ0hf VVBMT0FEICgwKQo+ICsgKiAgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUICgxKQo+ICsgKiAgWEVO X1NZU0NUTF9MSVZFUEFUQ0hfTElTVCAoMikKPiArICogIFhFTl9TWVNDVExfTElWRVBBVENIX0FD VElPTiAoMykKPiArICoKPiArICogVGhlIG5vcm1hbCBzZXF1ZW5jZSBvZiBzdWItb3BzIGlzIHRv Ogo+ICsgKiAgMSkgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfVVBMT0FEIHRvIHVwbG9hZCB0aGUgcGF5 bG9hZC4gSWYgZXJyb3JzIFNUT1AuCj4gKyAqICAyKSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9HRVQg dG8gY2hlY2sgdGhlIGAtPnJjYC4gSWYgLVhFTl9FQUdBSU4gc3Bpbi4KPiArICogICAgIElmIHpl cm8gZ28gdG8gbmV4dCBzdGVwLgo+ICsgKiAgMykgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfQUNUSU9O IHdpdGggTElWRVBBVENIX0FDVElPTl9BUFBMWSB0byBhcHBseSB0aGUgcGF0Y2guCj4gKyAqICA0 KSBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9HRVQgdG8gY2hlY2sgdGhlIGAtPnJjYC4gSWYgaW4gLVhF Tl9FQUdBSU4gc3Bpbi4KPiArICogICAgIElmIHplcm8gZXhpdCB3aXRoIHN1Y2Nlc3MuCj4gKyAq Lwo+ICsKPiArI2RlZmluZSBMSVZFUEFUQ0hfUEFZTE9BRF9WRVJTSU9OIDEKPiArLyoKPiArICog U3RydWN0dXJlIGRlc2NyaWJpbmcgYW4gRUxGIHBheWxvYWQuIFVuaXF1ZWx5IGlkZW50aWZpZXMg dGhlCj4gKyAqIHBheWxvYWQuIFNob3VsZCBiZSBodW1hbiByZWFkYWJsZS4KPiArICogUmVjb21t ZW5kZWQgbGVuZ3RoIGlzIHVwdG8gWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUuCj4gKyAqIEluY2x1 ZGVzIHRoZSBOVUwgdGVybWluYXRvci4KPiArICovCj4gKyNkZWZpbmUgWEVOX0xJVkVQQVRDSF9O QU1FX1NJWkUgMTI4Cj4gK3N0cnVjdCB4ZW5fbGl2ZXBhdGNoX25hbWUgewo+ICsgICAgZ3Vlc3Rf aGFuZGxlXzY0IG5hbWU7ICAgICAgICAgICAgICAgICAgIC8qIElOOiBwb2ludGVyIHRvIG5hbWUu ICovCj4gKyAgICB1aW50MTZfdCBzaXplOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSU46 IHNpemUgb2YgbmFtZS4gTWF5IGJlIHVwdG8KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBYRU5fTElWRVBBVENIX05BTUVfU0laRS4gKi8KPiArICAgIHVp bnQxNl90IHBhZFszXTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogTVVTVCBiZSB6ZXJv LiAqLwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX25hbWUgeGVuX2xpdmVw YXRjaF9uYW1lX3Q7Cj4gKwo+ICsvKgo+ICsgKiBVcGxvYWQgYSBwYXlsb2FkIHRvIHRoZSBoeXBl cnZpc29yLiBUaGUgcGF5bG9hZCBpcyB2ZXJpZmllZAo+ICsgKiBhZ2FpbnN0IGJhc2ljIGNoZWNr cyBhbmQgaWYgdGhlcmUgYXJlIGFueSBpc3N1ZXMgdGhlIHByb3BlciByZXR1cm4gY29kZQo+ICsg KiB3aWxsIGJlIHJldHVybmVkLiBUaGUgcGF5bG9hZCBpcyBub3QgYXBwbGllZCBhdCB0aGlzIHRp bWUgLSB0aGF0IGlzCj4gKyAqIGNvbnRyb2xsZWQgYnkgWEVOX1NZU0NUTF9MSVZFUEFUQ0hfQUNU SU9OLgo+ICsgKgo+ICsgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIHplcm8gaWYgdGhlIHBheWxvYWQg d2FzIHN1Y2Nlc2Z1bGx5IHVwbG9hZGVkLgo+ICsgKiBPdGhlcndpc2UgYW4gRVhYIHJldHVybiB2 YWx1ZSBpcyBwcm92aWRlZC4gRHVwbGljYXRlIGBuYW1lYCBhcmUgbm90Cj4gKyAqIHN1cHBvcnRl ZC4KPiArICoKPiArICogVGhlIHBheWxvYWQgYXQgdGhpcyBwb2ludCBpcyB2ZXJpZmllZCBhZ2Fp bnN0IGJhc2ljIGNoZWNrcy4KPiArICoKPiArICogVGhlIGBwYXlsb2FkYCBpcyB0aGUgRUxGIHBh eWxvYWQgYXMgbWVudGlvbmVkIGluIHRoZSBgUGF5bG9hZCBmb3JtYXRgCj4gKyAqIHNlY3Rpb24g aW4gdGhlIExpdmUgUGF0Y2ggZGVzaWduIGRvY3VtZW50Lgo+ICsgKi8KPiArI2RlZmluZSBYRU5f U1lTQ1RMX0xJVkVQQVRDSF9VUExPQUQgMAo+ICtzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hf dXBsb2FkIHsKPiArICAgIHhlbl9saXZlcGF0Y2hfbmFtZV90IG5hbWU7ICAgICAgICAgICAgICAv KiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2guICovCj4gKyAgICB1aW50NjRfdCBzaXplOyAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogSU4sIHNpemUgb2YgdGhlIEVMRiBmaWxlLiAqLwo+ICsgICAg Z3Vlc3RfaGFuZGxlXzY0IHBheWxvYWQ7ICAgICAgICAgICAgICAgIC8qIElOLCB0aGUgRUxGIGZp bGUuICovCj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX3VwbG9h ZCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF91cGxvYWRfdDsKPiArCj4gKy8qCj4gKyAqIFJldHJpZXZl IGFuIHN0YXR1cyBvZiBhbiBzcGVjaWZpYyBwYXlsb2FkLgo+ICsgKgo+ICsgKiBVcG9uIGNvbXBs ZXRpb24gdGhlIGBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9zdGF0dXNgIGlzIHVwZGF0ZWQuCj4gKyAq Cj4gKyAqIFRoZSByZXR1cm4gdmFsdWUgaXMgemVybyBvbiBzdWNjZXNzIGFuZCBYRU5fRVhYIG9u IGZhaWx1cmUuIFRoaXMgb3BlcmF0aW9uCj4gKyAqIGlzIHN5bmNocm9ub3VzIGFuZCBkb2VzIG5v dCByZXF1aXJlIHByZWVtcHRpb24uCj4gKyAqLwo+ICsjZGVmaW5lIFhFTl9TWVNDVExfTElWRVBB VENIX0dFVCAxCj4gKwo+ICtzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9zdGF0dXMgewo+ICsjZGVmaW5l IExJVkVQQVRDSF9TVEFURV9DSEVDS0VEICAgICAgMQo+ICsjZGVmaW5lIExJVkVQQVRDSF9TVEFU RV9BUFBMSUVEICAgICAgMgo+ICsgICAgdWludDMyX3Qgc3RhdGU7ICAgICAgICAgICAgICAgIC8q IE9VVDogTElWRVBBVENIX1NUQVRFXyouICovCj4gKyAgICBpbnQzMl90IHJjOyAgICAgICAgICAg ICAgICAgICAgLyogT1VUOiAwIGlmIG5vIGVycm9yLCBvdGhlcndpc2UgLVhFTl9FWFguICovCj4g K307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9saXZlcGF0Y2hfc3RhdHVzIHhlbl9saXZlcGF0Y2hf c3RhdHVzX3Q7Cj4gKwo+ICtzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfZ2V0IHsKPiArICAg IHhlbl9saXZlcGF0Y2hfbmFtZV90IG5hbWU7ICAgICAgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0 aGUgcGF5bG9hZC4gKi8KPiArICAgIHhlbl9saXZlcGF0Y2hfc3RhdHVzX3Qgc3RhdHVzOyAgICAg ICAgICAvKiBJTi9PVVQsIHN0YXRlIG9mIGl0LiAqLwo+ICt9Owo+ICt0eXBlZGVmIHN0cnVjdCB4 ZW5fc3lzY3RsX2xpdmVwYXRjaF9nZXQgeGVuX3N5c2N0bF9saXZlcGF0Y2hfZ2V0X3Q7Cj4gKwo+ ICsvKgo+ICsgKiBSZXRyaWV2ZSBhbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBzdGF0dXMgYW5kIG5h bWVzIG9mIHBheWxvYWRzIHRoYXQgYXJlCj4gKyAqIGxvYWRlZCBpbiB0aGUgaHlwZXJ2aXNvci4K PiArICoKPiArICogSWYgdGhlIGh5cGVyY2FsbCByZXR1cm5zIGFuIHBvc2l0aXZlIG51bWJlciwg aXQgaXMgdGhlIG51bWJlciAodXAgdG8gYG5yYCkKPiArICogb2YgdGhlIHBheWxvYWRzIHJldHVy bmVkLCBhbG9uZyB3aXRoIGBucmAgdXBkYXRlZCB3aXRoIHRoZSBudW1iZXIgb2YgcmVtYWluaW5n Cj4gKyAqIHBheWxvYWRzLCBgdmVyc2lvbmAgdXBkYXRlZCAoaXQgbWF5IGJlIHRoZSBzYW1lIGFj cm9zcyBoeXBlcmNhbGxzLiBJZiBpdAo+ICsgKiB2YXJpZXMgdGhlIGRhdGEgaXMgc3RhbGUgYW5k IGZ1cnRoZXIgY2FsbHMgY291bGQgZmFpbCkuIFRoZSBgc3RhdHVzYCwKPiArICogYG5hbWVgLCBh bmQgYGxlbmAnIGFyZSB1cGRhdGVkIGF0IHRoZWlyIGRlc2lnbmVkIGluZGV4IHZhbHVlIChgaWR4 YCkgd2l0aAo+ICsgKiB0aGUgcmV0dXJuZWQgdmFsdWUgb2YgZGF0YS4KPiArICoKPiArICogSWYg dGhlIGh5cGVyY2FsbCByZXR1cm5zIEUyQklHIHRoZSBgbnJgIGlzIHRvbyBiaWcgYW5kIHNob3Vs ZCBiZQo+ICsgKiBsb3dlcmVkLiBUaGUgdXBwZXIgbGltaXQgb2YgYG5yYCBpcyBsZWZ0IHRvIHRo ZSBpbXBsZW1lbnRpb24uCj4gKyAqCj4gKyAqIE5vdGUgdGhhdCBkdWUgdG8gdGhlIGFzeW5jaHJv bm91cyBuYXR1cmUgb2YgaHlwZXJjYWxscyB0aGUgZG9tYWluIG1pZ2h0IGhhdmUKPiArICogYWRk ZWQgb3IgcmVtb3ZlZCB0aGUgbnVtYmVyIG9mIHBheWxvYWRzIG1ha2luZyB0aGlzIGluZm9ybWF0 aW9uIHN0YWxlLiBJdCBpcwo+ICsgKiB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIHRvb2xzdGFj ayB0byB1c2UgdGhlIGB2ZXJzaW9uYCBmaWVsZCB0byBjaGVjawo+ICsgKiBiZXR3ZWVuIGVhY2gg aW52b2NhdGlvbi4gaWYgdGhlIHZlcnNpb24gZGlmZmVycyBpdCBzaG91bGQgZGlzY2FyZCB0aGUg c3RhbGUKPiArICogZGF0YSBhbmQgc3RhcnQgZnJvbSBzY3JhdGNoLiBJdCBpcyBPSyBmb3IgdGhl IHRvb2xzdGFjayB0byB1c2UgdGhlIG5ldwo+ICsgKiBgdmVyc2lvbmAgZmllbGQuCj4gKyAqLwo+ ICsjZGVmaW5lIFhFTl9TWVNDVExfTElWRVBBVENIX0xJU1QgMgo+ICtzdHJ1Y3QgeGVuX3N5c2N0 bF9saXZlcGF0Y2hfbGlzdCB7Cj4gKyAgICB1aW50MzJfdCB2ZXJzaW9uOyAgICAgICAgICAgICAg ICAgICAgICAgLyogT1VUOiBIeXBlcnZpc29yIHN0YW1wcyB2YWx1ZS4KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB2YXJpZXMgYmV0d2VlbiBjYWxs cywgd2UgYXJlCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICogZ2V0dGluZyBzdGFsZSBkYXRhLiAqLwo+ICsgICAgdWludDMyX3QgaWR4OyAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIElOOiBJbmRleCBpbnRvIGh5cGVydmlzb3IgbGlzdC4gKi8KPiAr ICAgIHVpbnQzMl90IG5yOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogSG93IG1h bnkgc3RhdHVzLCBuYW1lLCBhbmQgbGVuCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2hvdWxkIGZpbGwgb3V0LiBDYW4gYmUgemVybyB0byBnZXQKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQgb2Yg cGF5bG9hZHMgYW5kIHZlcnNpb24uCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT1VUOiBIb3cgbWFueSBwYXlsb2FkcyBsZWZ0LiAqLwo+ICsgICAgdWlu dDMyX3QgcGFkOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBNdXN0IGJlIHplcm8u ICovCj4gKyAgICBndWVzdF9oYW5kbGVfNjQgICAgICAgICAgICAgICAgc3RhdHVzOyAgLyogT1VU LiBNdXN0IGhhdmUgZW5vdWdoCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3BhY2UgYWxsb2NhdGUgZm9yIG5yIG9mIHRoZW0uICovCgpUaGlzIGlzIHN1 cnByaXNpbmcgc3BhY2luZy4KCj4gKyAgICBndWVzdF9oYW5kbGVfNjQgbmFtZTsgICAgICAgICAg ICAgICAgICAgLyogT1VUOiBBcnJheSBvZiBuYW1lcy4gRWFjaCBtZW1iZXIKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVVNUIFhFTl9MSVZFUEFUQ0hf TkFNRV9TSVpFIGluIHNpemUuCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTXVzdCBoYXZlIG5yIG9mIHRoZW0uICovCj4gKyAgICBndWVzdF9oYW5kbGVf NjQgbGVuOyAgICAgICAgICAgICAgICAgICAgLyogT1VUOiBBcnJheSBvZiBsZW5ndGhzIG9mIG5h bWUncy4KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN dXN0IGhhdmUgbnIgb2YgdGhlbS4gKi8KPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0 bF9saXZlcGF0Y2hfbGlzdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9saXN0X3Q7Cj4gKwo+ICsvKgo+ ICsgKiBQZXJmb3JtIGFuIG9wZXJhdGlvbiBvbiB0aGUgcGF5bG9hZCBzdHJ1Y3R1cmUgcmVmZXJl bmNlZCBieSB0aGUgYG5hbWVgIGZpZWxkLgo+ICsgKiBUaGUgb3BlcmF0aW9uIHJlcXVlc3QgaXMg YXN5bmNocm9ub3VzIGFuZCB0aGUgc3RhdHVzIHNob3VsZCBiZSByZXRyaWV2ZWQKPiArICogYnkg dXNpbmcgZWl0aGVyIFhFTl9TWVNDVExfTElWRVBBVENIX0dFVCBvciBYRU5fU1lTQ1RMX0xJVkVQ QVRDSF9MSVNUIGh5cGVyY2FsbC4KPiArICovCj4gKyNkZWZpbmUgWEVOX1NZU0NUTF9MSVZFUEFU Q0hfQUNUSU9OIDMKPiArc3RydWN0IHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2FjdGlvbiB7Cj4gKyAg ICB4ZW5fbGl2ZXBhdGNoX25hbWVfdCBuYW1lOyAgICAgICAgICAgICAgLyogSU4sIG5hbWUgb2Yg dGhlIHBhdGNoLiAqLwo+ICsjZGVmaW5lIExJVkVQQVRDSF9BQ1RJT05fVU5MT0FEICAgICAgIDEK PiArI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX1JFVkVSVCAgICAgICAyCj4gKyNkZWZpbmUgTElW RVBBVENIX0FDVElPTl9BUFBMWSAgICAgICAgMwo+ICsjZGVmaW5lIExJVkVQQVRDSF9BQ1RJT05f UkVQTEFDRSAgICAgIDQKPiArICAgIHVpbnQzMl90IGNtZDsgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiBJTjogTElWRVBBVENIX0FDVElPTl8qLiAqLwo+ICsgICAgdWludDMyX3QgdGltZW91 dDsgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBaZXJvIGlmIG5vIHRpbWVvdXQuICovCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogT3IgdXBwZXIg Ym91bmQgb2YgdGltZSAobXMpICovCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogZm9yIG9wZXJhdGlvbiB0byB0YWtlLiAqLwo+ICt9Owo+ICt0eXBlZGVm IHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9hY3Rpb24geGVuX3N5c2N0bF9saXZlcGF0Y2hf YWN0aW9uX3Q7Cj4gKwo+ICtzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfb3Agewo+ICsgICAg dWludDMyX3QgY21kOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBYRU5fU1lTQ1RM X0xJVkVQQVRDSF8qLiAqLwo+ICsgICAgdWludDMyX3QgcGFkOyAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIElOOiBBbHdheXMgemVyby4gKi8KPiArICAgIHVuaW9uIHsKPiArICAgICAgICB4 ZW5fc3lzY3RsX2xpdmVwYXRjaF91cGxvYWRfdCB1cGxvYWQ7Cj4gKyAgICAgICAgeGVuX3N5c2N0 bF9saXZlcGF0Y2hfbGlzdF90IGxpc3Q7Cj4gKyAgICAgICAgeGVuX3N5c2N0bF9saXZlcGF0Y2hf Z2V0X3QgZ2V0Owo+ICsgICAgICAgIHhlbl9zeXNjdGxfbGl2ZXBhdGNoX2FjdGlvbl90IGFjdGlv bjsKPiArICAgIH0gdTsKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0 Y2hfb3AgeGVuX3N5c2N0bF9saXZlcGF0Y2hfb3BfdDsKPiArCj4gK3N0cnVjdCB4ZW5fc3lzY3Rs IHsKPiArICAgIHVpbnQzMl90IGNtZDsKPiArI2RlZmluZSBYRU5fU1lTQ1RMX2xpdmVwYXRjaF9v cCAgICAgICAgICAgICAgICAgIDI3Cj4gKyAgICB1aW50MzJfdCBpbnRlcmZhY2VfdmVyc2lvbjsg LyogWEVOX1NZU0NUTF9JTlRFUkZBQ0VfVkVSU0lPTiAqLwo+ICsgICAgdW5pb24gewo+ICsgICAg ICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9vcCAgICAgIGxpdmVwYXRjaDsKPiArICAg ICAgICB1aW50OF90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRbMTI4XTsKPiArICAg IH0gdTsKPiArfTsKPiArdHlwZWRlZiBzdHJ1Y3QgeGVuX3N5c2N0bCB4ZW5fc3lzY3RsX3Q7Cj4g Kwo+ICsjZW5kaWYgLyogX19YRU5fUFVCTElDX1NZU0NUTF9IX18gKi8KPiArCj4gKy8qCj4gKyAq IExvY2FsIHZhcmlhYmxlczoKPiArICogbW9kZTogQwo+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0Qi Cj4gKyAqIGMtYmFzaWMtb2Zmc2V0OiA0Cj4gKyAqIHRhYi13aWR0aDogNAo+ICsgKiBpbmRlbnQt dGFicy1tb2RlOiBuaWwKPiArICogRW5kOgo+ICsgKi8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94 dGYvaHlwZXJjYWxsLmggYi9pbmNsdWRlL3h0Zi9oeXBlcmNhbGwuaAo+IGluZGV4IGEzN2ViYzIu LmFiNDk4NmYgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS94dGYvaHlwZXJjYWxsLmgKPiArKysgYi9p bmNsdWRlL3h0Zi9oeXBlcmNhbGwuaAo+IEBAIC0zNCw2ICszNCw3IEBAIGV4dGVybiB1aW50OF90 IGh5cGVyY2FsbF9wYWdlW1BBR0VfU0laRV07Cj4gICNpbmNsdWRlIDx4ZW4vcGh5c2Rldi5oPgo+ ICAjaW5jbHVkZSA8eGVuL21lbW9yeS5oPgo+ICAjaW5jbHVkZSA8eGVuL3ZlcnNpb24uaD4KPiAr I2luY2x1ZGUgPHhlbi9zeXNjdGwuaD4KPiAgI2luY2x1ZGUgPHhlbi9odm0vaHZtX29wLmg+Cj4g ICNpbmNsdWRlIDx4ZW4vaHZtL3BhcmFtcy5oPgo+ICAKPiBAQCAtMTE0LDYgKzExNSwxMSBAQCBz dGF0aWMgaW5saW5lIGxvbmcgaHlwZXJjYWxsX2h2bV9vcCh1bnNpZ25lZCBpbnQgY21kLCB2b2lk ICphcmcpCj4gICAgICByZXR1cm4gSFlQRVJDQUxMMihsb25nLCBfX0hZUEVSVklTT1JfaHZtX29w LCBjbWQsIGFyZyk7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbmxpbmUgbG9uZyBoeXBlcmNhbGxfc3lz Y3RsKHhlbl9zeXNjdGxfdCAqYXJnKQo+ICt7Cj4gKyAgICByZXR1cm4gSFlQRVJDQUxMMShsb25n LCBfX0hZUEVSVklTT1Jfc3lzY3RsLCBhcmcpOwo+ICt9Cj4gKwo+ICAvKgo+ICAgKiBIaWdoZXIg bGV2ZWwgaHlwZXJjYWxsIGhlbHBlcnMKPiAgICovCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveHRm L2xpYi5oIGIvaW5jbHVkZS94dGYvbGliLmgKPiBpbmRleCBiMGFlMzlkLi44ZmI0OTBhIDEwMDY0 NAo+IC0tLSBhL2luY2x1ZGUveHRmL2xpYi5oCj4gKysrIGIvaW5jbHVkZS94dGYvbGliLmgKPiBA QCAtNjUsNiArNjUsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZXhlY191c2VyX3ZvaWQodm9pZCAo KmZuKSh2b2lkKSkKPiAgICAgIGV4ZWNfdXNlcigodm9pZCAqKWZuKTsKPiAgfQo+ICAKCi8qKgog KiBQcm9iZSBmb3IgdGhlIFNZU0NUTF9JTlRFUkZBQ0VfVkVSU0lPTiBpbiB1c2UgYnkgdGhlIGh5 cGVydmlzb3IKICogQHJldHVybnMgdmVyc2lvbiwgb3IgLTEgb24gZmFpbHVyZS4KICovCgo+ICtp bnQgcHJvYmVfc3lzY3RsX2ludGVyZmFjZV92ZXJzaW9uKHZvaWQpOwo+ICsKPiAgI2VuZGlmIC8q IFhURl9MSUJfSCAqLwo+ICAKPiAgLyoKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvbGl2ZXBhdGNoLXBy aXYtY2hlY2svTWFrZWZpbGUgYi90ZXN0cy9saXZlcGF0Y2gtcHJpdi1jaGVjay9NYWtlZmlsZQo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uZTI3YjlkYQo+IC0tLSAvZGV2 L251bGwKPiArKysgYi90ZXN0cy9saXZlcGF0Y2gtcHJpdi1jaGVjay9NYWtlZmlsZQo+IEBAIC0w LDAgKzEsOSBAQAo+ICtpbmNsdWRlICQoUk9PVCkvYnVpbGQvY29tbW9uLm1rCj4gKwo+ICtOQU1F ICAgICAgOj0gbGl2ZXBhdGNoLXByaXYtY2hlY2sKPiArQ0FURUdPUlkgIDo9IGZ1bmN0aW9uYWwK PiArVEVTVC1FTlZTIDo9ICQoQUxMX0VOVklST05NRU5UUykKPiArCj4gK29iai1wZXJlbnYgKz0g bWFpbi5vCj4gKwo+ICtpbmNsdWRlICQoUk9PVCkvYnVpbGQvZ2VuLm1rCj4gZGlmZiAtLWdpdCBh L3Rlc3RzL2xpdmVwYXRjaC1wcml2LWNoZWNrL21haW4uYyBiL3Rlc3RzL2xpdmVwYXRjaC1wcml2 LWNoZWNrL21haW4uYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uNGQ2 NGQ1OAo+IC0tLSAvZGV2L251bGwKPiArKysgYi90ZXN0cy9saXZlcGF0Y2gtcHJpdi1jaGVjay9t YWluLmMKPiBAQCAtMCwwICsxLDE1MyBAQAo+ICsvKioKPiArICogQGZpbGUgdGVzdHMvbGl2ZXBh dGNoLXByaXYtY2hlY2svbWFpbi5jCj4gKyAqIEByZWYgdGVzdC1saXZlcGF0Y2gtcHJpdi1jaGVj awo+ICsgKgo+ICsgKiBAcGFnZSB0ZXN0LWxpdmVwYXRjaC1wcml2LWNoZWNrIExpdmUgUGF0Y2gg UHJpdmlsZWdlIENoZWNrCj4gKyAqCj4gKyAqIENoZWNrcyB0aGF0IFhlbiBwcmV2ZW50cyB1c2lu ZyBhbGwgbGl2ZSBwYXRjaGluZyBvcGVyYXRpb25zIGFuZAo+ICsgKiBzdWItb3BlcmF0aW9ucyBm cm9tIGFuIHVucHJpdmlsZWdlZCBndWVzdC4KPiArICoKPiArICogQHNlZSB0ZXN0cy9saXZlcGF0 Y2gtY2hlY2stcHJpdi9tYWluLmMKPiArICovCj4gKyNpbmNsdWRlIDx4dGYuaD4KPiArCj4gK2Nv bnN0IGNoYXIgdGVzdF90aXRsZVtdID0gIkxpdmUgUGF0Y2ggUHJpdmlsZWdlIENoZWNrIjsKPiAr Cj4gK3N0YXRpYyBpbnQgaW50ZXJmYWNlX3ZlcnNpb247CgpzeXNjdGxfID8KCj4gKwo+ICtzdGF0 aWMgdm9pZCBjaGVja19yZXQoaW50IHJjKQo+ICt7Cj4gKyAgICBzd2l0Y2ggKCByYyApCj4gKyAg ICB7Cj4gKyAgICBjYXNlIC1FUEVSTToKPiArICAgICAgICBwcmludGsoIlhlbiBjb3JyZWN0bHkg ZGVuaWVkIExpdmUgUGF0Y2ggY2FsbHNcbiIpOwo+ICsgICAgICAgIGJyZWFrOwo+ICsKPiArICAg IGNhc2UgLUVOT1NZUzoKPiArICAgICAgICB4dGZfc2tpcCgiTGl2ZSBQYXRjaCBzdXBwb3J0IG5v dCBkZXRlY3RlZFxuIik7Cj4gKyAgICAgICAgYnJlYWs7Cj4gKwo+ICsgICAgZGVmYXVsdDoKPiAr ICAgICAgICB4dGZfZmFpbHVyZSgiRmFpbDogVW5leHBlY3RlZCByZXR1cm4gY29kZSAlZFxuIiwg cmMpOwo+ICsgICAgICAgIGJyZWFrOwo+ICsgICAgfQo+ICt9Cj4gKwo+ICsjZGVmaW5lIFRFU1Rf TkFNRSAiZm9vIgo+ICsKPiArc3RhdGljIHZvaWQgdGVzdF91cGxvYWQodm9pZCkKPiArewo+ICsg ICAgdWludDhfdCBwYXlsb2FkW1BBR0VfU0laRV07CgpUaGUgWFRGIHN0YWNrIGlzIG9ubHkgMSBw YWdlLCBzbyB0aGlzIG1pZ2h0IG5vdCBnbyB0b28gd2VsbC4gIHN0YXRpYz8KCj4gKyAgICB4ZW5f c3lzY3RsX3Qgb3AgPQo+ICsgICAgewo+ICsgICAgICAgIC5jbWQgPSBYRU5fU1lTQ1RMX2xpdmVw YXRjaF9vcCwKPiArICAgICAgICAuaW50ZXJmYWNlX3ZlcnNpb24gPSBpbnRlcmZhY2VfdmVyc2lv biwKPiArICAgICAgICAudS5saXZlcGF0Y2ggPSB7Cj4gKyAgICAgICAgICAgIC5jbWQgPSBYRU5f U1lTQ1RMX0xJVkVQQVRDSF9VUExPQUQsCj4gKyAgICAgICAgICAgIC51LnVwbG9hZCA9IHsKPiAr ICAgICAgICAgICAgICAgIC5uYW1lID0gewo+ICsgICAgICAgICAgICAgICAgICAgIC5uYW1lLnAg PSBURVNUX05BTUUsCj4gKyAgICAgICAgICAgICAgICAgICAgLnNpemUgPSBzaXplb2YoVEVTVF9O QU1FKSwKCkRvIHdlIHNlcmlvdXNseSBzZW5kIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0 aGUgbmFtZSwgcmF0aGVyIHRoYW4KdHJlYXRpbmcgaXQgbGlrZSBhIE5VTEwgdGVybWluYXRlZCBz dHJpbmcgd2l0aGluIHRoZSByZWFzb25hYmxlIGJvdW5kPwoKfkFuZHJldwoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVs Cg==