From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH v4 3/5] drm/scheduler: rework job destruction Date: Wed, 17 Apr 2019 19:59:02 +0200 Message-ID: <0e93ab4e-8a86-b594-bdb2-e72b5b94329f@gmail.com> References: <1555438986-18303-1-git-send-email-andrey.grodzovsky@amd.com> <1555438986-18303-3-git-send-email-andrey.grodzovsky@amd.com> <6fb0faa1-666c-24d2-bc5c-282c32d07aab@amd.com> Reply-To: christian.koenig-5C7GfCeVMHo@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Grodzovsky, Andrey" , "Koenig, Christian" , "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org" , "etnaviv-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Kazlauskas, Nicholas" QW0gMTcuMDQuMTkgdW0gMTk6NTMgc2NocmllYiBHcm9kem92c2t5LCBBbmRyZXk6Cj4gT24gNC8x Ny8xOSAxOjE3IFBNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+PiBJIGNhbid0IHJldmlldyB0 aGlzIHBhdGNoLCBzaW5jZSBJJ20gb25lIG9mIHRoZSBhdXRob3JzIG9mIGl0LCBidXQgaW4KPj4g Z2VuZXJhbCB5b3VyIGNoYW5nZXMgbG9vayBnb29kIHRvIG1lIG5vdy4KPj4KPj4gRm9yIHBhdGNo ICM1IEkgdGhpbmsgaXQgbWlnaHQgYmUgY2xlYW5lciBpZiB3ZSBtb3ZlIGluY3JlbWVudGluZyBv Zgo+PiB0aGUgaHdfcnFfY291bnQgd2hpbGUgc3RhcnRpbmcgdGhlIHNjaGVkdWxlciBhZ2Fpbi4K Pgo+IEJ1dCB0aGUgaW5jcmVtZW50IG9mwqAgaHdfcnFfY291bnQgaXMgY29uZGl0aW9uYWwgb24g aWYgdGhlIGd1aWx0eSBqb2IKPiB3YXMgc2lnbmFsZWQsIG1vdmluZyBpdCBpbnRvIGRybV9zY2hl ZF9zdGFydCB3aWxsIGFsc28gZm9yY2UgbWUgdG8gcGFzcwo+ICdqb2Jfc2lnbmFsZWQnIGZsYWcg aW50byBkcm1fc2NoZWRfc3RhcnQgd2hpY2ggaXMgYWdhaW5zdCB5b3VyIG9yaWdpbmFsCj4gY29t bWVudCB0aGF0IHdlIGRvbid0IHdhbnQgdG8gcGFzcyB0aGlzIGxvZ2ljIGFyb3VuZCBoZWxwZXIg ZnVuY3Rpb25zCj4gYW5kIGtlZXAgaXQgYWxsIGluIG9uZSBwbGFjZSB3aGljaCBpcyBhbWRncHVf ZGV2aWNlX2dwdV9yZWNvdmVyLgoKV2VsbCBJIGhvcGUgdGhhdCBpbmNyZW1lbnRpbmcgaHdfcnFf Y291bnQgaXMgY29uZGl0aW9uYWwgZm9yIHNpZ25hbGVkIApqb2JzIGFueXdheSwgb3Igb3RoZXJ3 aXNlIHdlIHdvdWxkIHNlcmlvdXNseSBtZXNzIHVwIHRoZSBjb3VudGVyLgoKRS5nLiBpbiBkcm1f c2NoZWRfc3RvcCgpIHdlIGFsc28gb25seSBkZWNyZW1lbnQgaXQgd2hlbiB3ZSB3aGVyZSBhYmxl IHRvIApyZW1vdmUgdGhlIGNhbGxiYWNrLgoKQ2hyaXN0aWFuLgoKPgo+IEFuZHJleQo+Cj4KPj4g UmVnYXJkcywKPj4gQ2hyaXN0aWFuLgo+Pgo+PiBBbSAxNy4wNC4xOSB1bSAxNjozNiBzY2hyaWVi IEdyb2R6b3Zza3ksIEFuZHJleToKPj4+IFBpbmcgb24gdGhpcyBwYXRjaCBhbmQgcGF0Y2ggNS4g VGhlIHJlc3QgYWxyZWFkeSBSQmVkLgo+Pj4KPj4+IEFuZHJleQo+Pj4KPj4+IE9uIDQvMTYvMTkg MjoyMyBQTSwgQW5kcmV5IEdyb2R6b3Zza3kgd3JvdGU6Cj4+Pj4gRnJvbTogQ2hyaXN0aWFuIEvD tm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+Pj4+Cj4+Pj4gV2Ugbm93IGRlc3Ryb3kg ZmluaXNoZWQgam9icyBmcm9tIHRoZSB3b3JrZXIgdGhyZWFkIHRvIG1ha2Ugc3VyZSB0aGF0Cj4+ Pj4gd2UgbmV2ZXIgZGVzdHJveSBhIGpvYiBjdXJyZW50bHkgaW4gdGltZW91dCBwcm9jZXNzaW5n Lgo+Pj4+IEJ5IHRoaXMgd2UgYXZvaWQgaG9sZGluZyBsb2NrIGFyb3VuZCByaW5nIG1pcnJvciBs aXN0IGluIGRybV9zY2hlZF9zdG9wCj4+Pj4gd2hpY2ggc2hvdWxkIHNvbHZlIGEgZGVhZGxvY2sg cmVwb3J0ZWQgYnkgYSB1c2VyLgo+Pj4+Cj4+Pj4gdjI6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUu Cj4+Pj4gdjQ6IE1vdmUgZ3VpbHR5IGpvYiBmcmVlIGludG8gc2NoZWQgY29kZS4KPj4+Pgo+Pj4+ IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0x MDk2OTIKPj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlh bi5rb2VuaWdAYW1kLmNvbT4KPj4+PiBTaWduZWQtb2ZmLWJ5OiBBbmRyZXkgR3JvZHpvdnNreSA8 YW5kcmV5Lmdyb2R6b3Zza3lAYW1kLmNvbT4KPj4+PiAtLS0KPj4+PiAgwqDCoCBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgfMKgwqAgOSArLQo+Pj4+ICDCoMKgIGRy aXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHVtcC5jwqDCoMKgwqAgfMKgwqAgNCAtCj4+ Pj4gIMKgwqAgZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9zY2hlZC5jwqDCoMKgIHzC oMKgIDIgKy0KPj4+PiAgwqDCoCBkcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX3NjaGVkLmPCoMKg wqDCoMKgwqDCoMKgwqAgfMKgwqAgMiArLQo+Pj4+ICDCoMKgIGRyaXZlcnMvZ3B1L2RybS9wYW5m cm9zdC9wYW5mcm9zdF9qb2IuY8KgwqDCoCB8wqDCoCAyICstCj4+Pj4gIMKgwqAgZHJpdmVycy9n cHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmPCoMKgwqDCoCB8IDE0NQo+Pj4+ICsrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tCj4+Pj4gIMKgwqAgZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rf c2NoZWQuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMiArLQo+Pj4+ICDCoMKgIGluY2x1 ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDC oCA2ICstCj4+Pj4gIMKgwqAgOCBmaWxlcyBjaGFuZ2VkLCA5NCBpbnNlcnRpb25zKCspLCA3OCBk ZWxldGlvbnMoLSkKPj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfZGV2aWNlLmMKPj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kZXZpY2UuYwo+Pj4+IGluZGV4IDdjZWUyNjkuLmEwZTE2NWMgMTAwNjQ0Cj4+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCj4+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCj4+Pj4gQEAgLTMzMzQs NyArMzMzNCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9wcmVfYXNpY19yZXNldChzdHJ1 Y3QKPj4+PiBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp ZiAoIXJpbmcgfHwgIXJpbmctPnNjaGVkLnRocmVhZCkKPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBjb250aW51ZTsKPj4+PiAgwqDCoCAtwqDCoMKgwqDCoMKgwqAgZHJtX3NjaGVk X3N0b3AoJnJpbmctPnNjaGVkKTsKPj4+PiArwqDCoMKgwqDCoMKgwqAgZHJtX3NjaGVkX3N0b3Ao JnJpbmctPnNjaGVkLCAmam9iLT5iYXNlKTsKPj4+PiAgwqDCoCDCoMKgwqDCoMKgwqDCoMKgwqDC oCAvKiBhZnRlciBhbGwgaHcgam9icyBhcmUgcmVzZXQsIGh3IGZlbmNlIGlzCj4+Pj4gbWVhbmlu Z2xlc3MsIHNvIGZvcmNlX2NvbXBsZXRpb24gKi8KPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqAg YW1kZ3B1X2ZlbmNlX2RyaXZlcl9mb3JjZV9jb21wbGV0aW9uKHJpbmcpOwo+Pj4+IEBAIC0zMzQz LDggKzMzNDMsNiBAQCBzdGF0aWMgaW50IGFtZGdwdV9kZXZpY2VfcHJlX2FzaWNfcmVzZXQoc3Ry dWN0Cj4+Pj4gYW1kZ3B1X2RldmljZSAqYWRldiwKPj4+PiAgwqDCoMKgwqDCoMKgIGlmKGpvYikK Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZHJtX3NjaGVkX2luY3JlYXNlX2thcm1hKCZqb2It PmJhc2UpOwo+Pj4+ICDCoMKgIC0KPj4+PiAtCj4+Pj4gIMKgwqDCoMKgwqDCoCBpZiAoIWFtZGdw dV9zcmlvdl92ZihhZGV2KSkgewo+Pj4+ICDCoMKgIMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICgh bmVlZF9mdWxsX3Jlc2V0KQo+Pj4+IEBAIC0zNDgyLDggKzM0ODAsNyBAQCBzdGF0aWMgaW50IGFt ZGdwdV9kb19hc2ljX3Jlc2V0KHN0cnVjdAo+Pj4+IGFtZGdwdV9oaXZlX2luZm8gKmhpdmUsCj4+ Pj4gIMKgwqDCoMKgwqDCoCByZXR1cm4gcjsKPj4+PiAgwqDCoCB9Cj4+Pj4gIMKgwqAgLXN0YXRp YyB2b2lkIGFtZGdwdV9kZXZpY2VfcG9zdF9hc2ljX3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNl Cj4+Pj4gKmFkZXYsCj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iKQo+Pj4+ICtzdGF0aWMgdm9pZCBhbWRncHVfZGV2 aWNlX3Bvc3RfYXNpY19yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPj4+PiAgwqDC oCB7Cj4+Pj4gIMKgwqDCoMKgwqDCoCBpbnQgaTsKPj4+PiAgwqDCoCBAQCAtMzYyMyw3ICszNjIw LDcgQEAgaW50IGFtZGdwdV9kZXZpY2VfZ3B1X3JlY292ZXIoc3RydWN0Cj4+Pj4gYW1kZ3B1X2Rl dmljZSAqYWRldiwKPj4+PiAgwqDCoCDCoMKgwqDCoMKgwqAgLyogUG9zdCBBU0lDIHJlc2V0IGZv ciBhbGwgZGV2cyAuKi8KPj4+PiAgwqDCoMKgwqDCoMKgIGxpc3RfZm9yX2VhY2hfZW50cnkodG1w X2FkZXYsIGRldmljZV9saXN0X2hhbmRsZSwKPj4+PiBnbWMueGdtaS5oZWFkKSB7Cj4+Pj4gLcKg wqDCoMKgwqDCoMKgIGFtZGdwdV9kZXZpY2VfcG9zdF9hc2ljX3Jlc2V0KHRtcF9hZGV2LCB0bXBf YWRldiA9PSBhZGV2ID8KPj4+PiBqb2IgOiBOVUxMKTsKPj4+PiArwqDCoMKgwqDCoMKgwqAgYW1k Z3B1X2RldmljZV9wb3N0X2FzaWNfcmVzZXQodG1wX2FkZXYpOwo+Pj4+ICDCoMKgIMKgwqDCoMKg wqDCoMKgwqDCoMKgIGlmIChyKSB7Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg LyogYmFkIG5ld3MsIGhvdyB0byB0ZWxsIGl0IHRvIHVzZXJzcGFjZSA/ICovCj4+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZHVtcC5jCj4+Pj4gYi9kcml2 ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2R1bXAuYwo+Pj4+IGluZGV4IDMzODU0YzkuLjU3 NzhkOWMgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9k dW1wLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2R1bXAuYwo+ Pj4+IEBAIC0xMzUsMTMgKzEzNSwxMSBAQCB2b2lkIGV0bmF2aXZfY29yZV9kdW1wKHN0cnVjdCBl dG5hdml2X2dwdSAqZ3B1KQo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1tdV9z aXplICsgZ3B1LT5idWZmZXIuc2l6ZTsKPj4+PiAgwqDCoCDCoMKgwqDCoMKgwqAgLyogQWRkIGlu IHRoZSBhY3RpdmUgY29tbWFuZCBidWZmZXJzICovCj4+Pj4gLcKgwqDCoCBzcGluX2xvY2tfaXJx c2F2ZSgmZ3B1LT5zY2hlZC5qb2JfbGlzdF9sb2NrLCBmbGFncyk7Cj4+Pj4gIMKgwqDCoMKgwqDC oCBsaXN0X2Zvcl9lYWNoX2VudHJ5KHNfam9iLCAmZ3B1LT5zY2hlZC5yaW5nX21pcnJvcl9saXN0 LCBub2RlKSB7Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN1Ym1pdCA9IHRvX2V0bmF2aXZf c3VibWl0KHNfam9iKTsKPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZmlsZV9zaXplICs9IHN1 Ym1pdC0+Y21kYnVmLnNpemU7Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5fb2JqKys7Cj4+ Pj4gIMKgwqDCoMKgwqDCoCB9Cj4+Pj4gLcKgwqDCoCBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZn cHUtPnNjaGVkLmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKPj4+PiAgwqDCoCDCoMKgwqDCoMKgwqAg LyogQWRkIGluIHRoZSBhY3RpdmUgYnVmZmVyIG9iamVjdHMgKi8KPj4+PiAgwqDCoMKgwqDCoMKg IGxpc3RfZm9yX2VhY2hfZW50cnkodnJhbSwgJmdwdS0+bW11LT5tYXBwaW5ncywgbW11X25vZGUp IHsKPj4+PiBAQCAtMTgzLDE0ICsxODEsMTIgQEAgdm9pZCBldG5hdml2X2NvcmVfZHVtcChzdHJ1 Y3QgZXRuYXZpdl9ncHUgKmdwdSkKPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBncHUtPmJ1ZmZlci5zaXplLAo+Pj4+IGV0bmF2aXZfY21kYnVmX2dldF92YSgm Z3B1LT5idWZmZXIpKTsKPj4+PiAgwqDCoCAtwqDCoMKgIHNwaW5fbG9ja19pcnFzYXZlKCZncHUt PnNjaGVkLmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKPj4+PiAgwqDCoMKgwqDCoMKgIGxpc3RfZm9y X2VhY2hfZW50cnkoc19qb2IsICZncHUtPnNjaGVkLnJpbmdfbWlycm9yX2xpc3QsIG5vZGUpIHsK Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3VibWl0ID0gdG9fZXRuYXZpdl9zdWJtaXQoc19q b2IpOwo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoCBldG5hdml2X2NvcmVfZHVtcF9tZW0oJml0 ZXIsIEVURFVNUF9CVUZfQ01ELAo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgc3VibWl0LT5jbWRidWYudmFkZHIsIHN1Ym1pdC0+Y21kYnVmLnNp emUsCj4+Pj4gZXRuYXZpdl9jbWRidWZfZ2V0X3ZhKCZzdWJtaXQtPmNtZGJ1ZikpOwo+Pj4+ICDC oMKgwqDCoMKgwqAgfQo+Pj4+IC3CoMKgwqAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZ3B1LT5z Y2hlZC5qb2JfbGlzdF9sb2NrLCBmbGFncyk7Cj4+Pj4gIMKgwqAgwqDCoMKgwqDCoMKgIC8qIFJl c2VydmUgc3BhY2UgZm9yIHRoZSBib21hcCAqLwo+Pj4+ICDCoMKgwqDCoMKgwqAgaWYgKG5fYm9t YXBfcGFnZXMpIHsKPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRu YXZpdl9zY2hlZC5jCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X3NjaGVk LmMKPj4+PiBpbmRleCA2ZDI0ZmVhLi5hODEzYzgyIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9ldG5hdml2L2V0bmF2aXZfc2NoZWQuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9ldG5hdml2L2V0bmF2aXZfc2NoZWQuYwo+Pj4+IEBAIC0xMDksNyArMTA5LDcgQEAgc3RhdGlj IHZvaWQgZXRuYXZpdl9zY2hlZF90aW1lZG91dF9qb2Ioc3RydWN0Cj4+Pj4gZHJtX3NjaGVkX2pv YiAqc2NoZWRfam9iKQo+Pj4+ICDCoMKgwqDCoMKgwqAgfQo+Pj4+ICDCoMKgIMKgwqDCoMKgwqDC oCAvKiBibG9jayBzY2hlZHVsZXIgKi8KPj4+PiAtwqDCoMKgIGRybV9zY2hlZF9zdG9wKCZncHUt PnNjaGVkKTsKPj4+PiArwqDCoMKgIGRybV9zY2hlZF9zdG9wKCZncHUtPnNjaGVkLCBzY2hlZF9q b2IpOwo+Pj4+ICDCoMKgIMKgwqDCoMKgwqDCoCBpZihzY2hlZF9qb2IpCj4+Pj4gIMKgwqDCoMKg wqDCoMKgwqDCoMKgIGRybV9zY2hlZF9pbmNyZWFzZV9rYXJtYShzY2hlZF9qb2IpOwo+Pj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX3NjaGVkLmMKPj4+PiBiL2RyaXZl cnMvZ3B1L2RybS9saW1hL2xpbWFfc2NoZWQuYwo+Pj4+IGluZGV4IDk3YmQ5YzEuLmRmOTg5MzEg MTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9zY2hlZC5jCj4+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9zY2hlZC5jCj4+Pj4gQEAgLTMwMCw3ICsz MDAsNyBAQCBzdGF0aWMgc3RydWN0IGRtYV9mZW5jZQo+Pj4+ICpsaW1hX3NjaGVkX3J1bl9qb2Io c3RydWN0IGRybV9zY2hlZF9qb2IgKmpvYikKPj4+PiAgwqDCoCBzdGF0aWMgdm9pZCBsaW1hX3Nj aGVkX2hhbmRsZV9lcnJvcl90YXNrKHN0cnVjdCBsaW1hX3NjaGVkX3BpcGUKPj4+PiAqcGlwZSwK Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1 Y3QgbGltYV9zY2hlZF90YXNrICp0YXNrKQo+Pj4+ICDCoMKgIHsKPj4+PiAtwqDCoMKgIGRybV9z Y2hlZF9zdG9wKCZwaXBlLT5iYXNlKTsKPj4+PiArwqDCoMKgIGRybV9zY2hlZF9zdG9wKCZwaXBl LT5iYXNlLCAmdGFzay0+YmFzZSk7Cj4+Pj4gIMKgwqAgwqDCoMKgwqDCoMKgIGlmICh0YXNrKQo+ Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkcm1fc2NoZWRfaW5jcmVhc2Vfa2FybWEoJnRhc2st PmJhc2UpOwo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJv c3Rfam9iLmMKPj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9qb2IuYwo+ Pj4+IGluZGV4IDBhN2VkMDQuLmM2MzM2YjcgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2pvYi5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Bh bmZyb3N0L3BhbmZyb3N0X2pvYi5jCj4+Pj4gQEAgLTM4NSw3ICszODUsNyBAQCBzdGF0aWMgdm9p ZCBwYW5mcm9zdF9qb2JfdGltZWRvdXQoc3RydWN0Cj4+Pj4gZHJtX3NjaGVkX2pvYiAqc2NoZWRf am9iKQo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzY2hlZF9qb2IpOwo+Pj4+ICDCoMKgIMKg wqDCoMKgwqDCoCBmb3IgKGkgPSAwOyBpIDwgTlVNX0pPQl9TTE9UUzsgaSsrKQo+Pj4+IC3CoMKg wqDCoMKgwqDCoCBkcm1fc2NoZWRfc3RvcCgmcGZkZXYtPmpzLT5xdWV1ZVtpXS5zY2hlZCk7Cj4+ Pj4gK8KgwqDCoMKgwqDCoMKgIGRybV9zY2hlZF9zdG9wKCZwZmRldi0+anMtPnF1ZXVlW2ldLnNj aGVkLCBzY2hlZF9qb2IpOwo+Pj4+ICDCoMKgIMKgwqDCoMKgwqDCoCBpZiAoc2NoZWRfam9iKQo+ Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkcm1fc2NoZWRfaW5jcmVhc2Vfa2FybWEoc2NoZWRf am9iKTsKPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9t YWluLmMKPj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jCj4+Pj4g aW5kZXggMTlmYzYwMS4uMjFlODczNCAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v c2NoZWR1bGVyL3NjaGVkX21haW4uYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVs ZXIvc2NoZWRfbWFpbi5jCj4+Pj4gQEAgLTI2NSwzMiArMjY1LDYgQEAgdm9pZCBkcm1fc2NoZWRf cmVzdW1lX3RpbWVvdXQoc3RydWN0Cj4+Pj4gZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkLAo+Pj4+ ICDCoMKgIH0KPj4+PiAgwqDCoCBFWFBPUlRfU1lNQk9MKGRybV9zY2hlZF9yZXN1bWVfdGltZW91 dCk7Cj4+Pj4gIMKgwqAgLS8qIGpvYl9maW5pc2ggaXMgY2FsbGVkIGFmdGVyIGh3IGZlbmNlIHNp Z25hbGVkCj4+Pj4gLSAqLwo+Pj4+IC1zdGF0aWMgdm9pZCBkcm1fc2NoZWRfam9iX2ZpbmlzaChz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4+Pj4gLXsKPj4+PiAtwqDCoMKgIHN0cnVjdCBkcm1f c2NoZWRfam9iICpzX2pvYiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QKPj4+PiBkcm1fc2No ZWRfam9iLAo+Pj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGZpbmlzaF93b3JrKTsKPj4+PiAtwqDCoMKgIHN0cnVjdCBkcm1fZ3B1X3NjaGVk dWxlciAqc2NoZWQgPSBzX2pvYi0+c2NoZWQ7Cj4+Pj4gLcKgwqDCoCB1bnNpZ25lZCBsb25nIGZs YWdzOwo+Pj4+IC0KPj4+PiAtwqDCoMKgIC8qCj4+Pj4gLcKgwqDCoMKgICogQ2FuY2VsaW5nIHRo ZSB0aW1lb3V0IHdpdGhvdXQgcmVtb3Zpbmcgb3VyIGpvYiBmcm9tIHRoZSByaW5nCj4+Pj4gbWly cm9yCj4+Pj4gLcKgwqDCoMKgICogbGlzdCBpcyBzYWZlLCBhcyB3ZSB3aWxsIG9ubHkgZW5kIHVw IGluIHRoaXMgd29ya2VyIGlmIG91ciBqb2JzCj4+Pj4gLcKgwqDCoMKgICogZmluaXNoZWQgZmVu Y2UgaGFzIGJlZW4gc2lnbmFsZWQuIFNvIGV2ZW4gaWYgc29tZSBhbm90aGVyCj4+Pj4gd29ya2Vy Cj4+Pj4gLcKgwqDCoMKgICogbWFuYWdlcyB0byBmaW5kIHRoaXMgam9iIGFzIHRoZSBuZXh0IGpv YiBpbiB0aGUgbGlzdCwgdGhlIGZlbmNlCj4+Pj4gLcKgwqDCoMKgICogc2lnbmFsZWQgY2hlY2sg YmVsb3cgd2lsbCBwcmV2ZW50IHRoZSB0aW1lb3V0IHRvIGJlIHJlc3RhcnRlZC4KPj4+PiAtwqDC oMKgwqAgKi8KPj4+PiAtwqDCoMKgIGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmc2NoZWQtPndv cmtfdGRyKTsKPj4+PiAtCj4+Pj4gLcKgwqDCoCBzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPmpv Yl9saXN0X2xvY2ssIGZsYWdzKTsKPj4+PiAtwqDCoMKgIC8qIHF1ZXVlIFREUiBmb3IgbmV4dCBq b2IgKi8KPj4+PiAtwqDCoMKgIGRybV9zY2hlZF9zdGFydF90aW1lb3V0KHNjaGVkKTsKPj4+PiAt wqDCoMKgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFn cyk7Cj4+Pj4gLQo+Pj4+IC3CoMKgwqAgc2NoZWQtPm9wcy0+ZnJlZV9qb2Ioc19qb2IpOwo+Pj4+ IC19Cj4+Pj4gLQo+Pj4+ICDCoMKgIHN0YXRpYyB2b2lkIGRybV9zY2hlZF9qb2JfYmVnaW4oc3Ry dWN0IGRybV9zY2hlZF9qb2IgKnNfam9iKQo+Pj4+ICDCoMKgIHsKPj4+PiAgwqDCoMKgwqDCoMKg IHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQgPSBzX2pvYi0+c2NoZWQ7Cj4+Pj4gQEAg LTMxNSw2ICsyODksMTMgQEAgc3RhdGljIHZvaWQgZHJtX3NjaGVkX2pvYl90aW1lZG91dChzdHJ1 Y3QKPj4+PiB3b3JrX3N0cnVjdCAqd29yaykKPj4+PiAgwqDCoMKgwqDCoMKgIGlmIChqb2IpCj4+ Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgIGpvYi0+c2NoZWQtPm9wcy0+dGltZWRvdXRfam9iKGpv Yik7Cj4+Pj4gIMKgwqAgK8KgwqDCoCAvKgo+Pj4+ICvCoMKgwqDCoCAqIEd1aWx0eSBqb2IgZGlk IGNvbXBsZXRlIGFuZCBoZW5jZSBuZWVkcyB0byBiZSBtYW51YWxseSByZW1vdmVkCj4+Pj4gK8Kg wqDCoMKgICogU2VlIGRybV9zY2hlZF9zdG9wIGRvYy4KPj4+PiArwqDCoMKgwqAgKi8KPj4+PiAr wqDCoMKgIGlmIChsaXN0X2VtcHR5KCZqb2ItPm5vZGUpKQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBq b2ItPnNjaGVkLT5vcHMtPmZyZWVfam9iKGpvYik7Cj4+Pj4gKwo+Pj4+ICDCoMKgwqDCoMKgwqAg c3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7Cj4+Pj4gIMKg wqDCoMKgwqDCoCBkcm1fc2NoZWRfc3RhcnRfdGltZW91dChzY2hlZCk7Cj4+Pj4gIMKgwqDCoMKg wqDCoCBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3Mp Owo+Pj4+IEBAIC0zNzEsMjMgKzM1MiwyNiBAQCBFWFBPUlRfU1lNQk9MKGRybV9zY2hlZF9pbmNy ZWFzZV9rYXJtYSk7Cj4+Pj4gIMKgwqDCoCAqIEBzY2hlZDogc2NoZWR1bGVyIGluc3RhbmNlCj4+ Pj4gIMKgwqDCoCAqIEBiYWQ6IGJhZCBzY2hlZHVsZXIgam9iCj4+Pj4gIMKgwqDCoCAqCj4+Pj4g KyAqIFN0b3AgdGhlIHNjaGVkdWxlciBhbmQgYWxzbyByZW1vdmVzIGFuZCBmcmVlcyBhbGwgY29t cGxldGVkIGpvYnMuCj4+Pj4gKyAqIE5vdGU6IGJhZCBqb2Igd2lsbCBub3QgYmUgZnJlZWQgYXMg aXQgbWlnaHQgYmUgdXNlZCBsYXRlciBhbmQgc28KPj4+PiBpdCdzCj4+Pj4gKyAqIGNhbGxlcnMg cmVzcG9uc2liaWxpdHkgdG8gcmVsZWFzZSBpdCBtYW51YWxseSBpZiBpdCdzIG5vdCBwYXJ0Cj4+ Pj4gb2YgdGhlCj4+Pj4gKyAqIG1pcnJvciBsaXN0IGFueSBtb3JlLgo+Pj4+ICsgKgo+Pj4+ICDC oMKgwqAgKi8KPj4+PiAtdm9pZCBkcm1fc2NoZWRfc3RvcChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVs ZXIgKnNjaGVkKQo+Pj4+ICt2b2lkIGRybV9zY2hlZF9zdG9wKHN0cnVjdCBkcm1fZ3B1X3NjaGVk dWxlciAqc2NoZWQsIHN0cnVjdAo+Pj4+IGRybV9zY2hlZF9qb2IgKmJhZCkKPj4+PiAgwqDCoCB7 Cj4+Pj4gLcKgwqDCoCBzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2I7Cj4+Pj4gK8KgwqDCoCBz dHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2IsICp0bXA7Cj4+Pj4gIMKgwqDCoMKgwqDCoCB1bnNp Z25lZCBsb25nIGZsYWdzOwo+Pj4+IC3CoMKgwqAgc3RydWN0IGRtYV9mZW5jZSAqbGFzdF9mZW5j ZSA9wqAgTlVMTDsKPj4+PiAgwqDCoCDCoMKgwqDCoMKgwqAga3RocmVhZF9wYXJrKHNjaGVkLT50 aHJlYWQpOwo+Pj4+ICDCoMKgIMKgwqDCoMKgwqDCoCAvKgo+Pj4+IC3CoMKgwqDCoCAqIFZlcmlm eSBhbGwgdGhlIHNpZ25hbGVkIGpvYnMgaW4gbWlycm9yIGxpc3QgYXJlIHJlbW92ZWQgZnJvbQo+ Pj4+IHRoZSByaW5nCj4+Pj4gLcKgwqDCoMKgICogYnkgd2FpdGluZyBmb3IgdGhlIGxhdGVzdCBq b2IgdG8gZW50ZXIgdGhlIGxpc3QuIFRoaXMgc2hvdWxkCj4+Pj4gaW5zdXJlIHRoYXQKPj4+PiAt wqDCoMKgwqAgKiBhbHNvIGFsbCB0aGUgcHJldmlvdXMgam9icyB0aGF0IHdlcmUgaW4gZmxpZ2h0 IGFsc28gYWxyZWFkeQo+Pj4+IHNpbmdhbGVkCj4+Pj4gLcKgwqDCoMKgICogYW5kIHJlbW92ZWQg ZnJvbSB0aGUgbGlzdC4KPj4+PiArwqDCoMKgwqAgKiBJdGVyYXRlIHRoZSBqb2IgbGlzdCBmcm9t IGxhdGVyIHRvwqAgZWFybGllciBvbmUgYW5kIGVpdGhlcgo+Pj4+IGRlYWN0aXZlCj4+Pj4gK8Kg wqDCoMKgICogdGhlaXIgSFcgY2FsbGJhY2tzIG9yIHJlbW92ZSB0aGVtIGZyb20gbWlycm9yIGxp c3QgaWYgdGhleQo+Pj4+IGFscmVhZHkKPj4+PiArwqDCoMKgwqAgKiBzaWduYWxlZC4KPj4+PiAr wqDCoMKgwqAgKiBUaGlzIGl0ZXJhdGlvbiBpcyB0aHJlYWQgc2FmZSBhcyBzY2hlZCB0aHJlYWQg aXMgc3RvcHBlZC4KPj4+PiAgwqDCoMKgwqDCoMKgwqAgKi8KPj4+PiAtwqDCoMKgIHNwaW5fbG9j a19pcnFzYXZlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOwo+Pj4+IC3CoMKgwqAgbGlz dF9mb3JfZWFjaF9lbnRyeV9yZXZlcnNlKHNfam9iLCAmc2NoZWQtPnJpbmdfbWlycm9yX2xpc3Qs Cj4+Pj4gbm9kZSkgewo+Pj4+ICvCoMKgwqAgbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlX3JldmVy c2Uoc19qb2IsIHRtcCwKPj4+PiAmc2NoZWQtPnJpbmdfbWlycm9yX2xpc3QsIG5vZGUpIHsKPj4+ PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHNfam9iLT5zX2ZlbmNlLT5wYXJlbnQgJiYKPj4+ PiBkbWFfZmVuY2VfcmVtb3ZlX2NhbGxiYWNrKHNfam9iLT5zX2ZlbmNlLT5wYXJlbnQsCj4+Pj4g IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICZzX2pvYi0+Y2IpKSB7Cj4+Pj4gQEAgLTM5NSwxNiArMzc5LDMwIEBAIHZvaWQgZHJtX3NjaGVk X3N0b3Aoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyCj4+Pj4gKnNjaGVkKQo+Pj4+ICDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNfam9iLT5zX2ZlbmNlLT5wYXJlbnQgPSBOVUxMOwo+Pj4+ ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF0b21pY19kZWMoJnNjaGVkLT5od19ycV9j b3VudCk7Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4+Pj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBsYXN0X2ZlbmNlID0gZG1hX2ZlbmNlX2dldCgmc19qb2ItPnNfZmVu Y2UtPmZpbmlzaGVkKTsKPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAqIHJlbW92ZSBqb2IgZnJvbSByaW5nX21pcnJvcl9saXN0Lgo+Pj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKiBMb2NraW5nIGhlcmUgaXMgZm9yIGNvbmN1cnJlbnQgcmVzdW1lIHRpbWVv dXQKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICovCj4+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7 Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGlzdF9kZWxfaW5pdCgmc19qb2ItPm5vZGUp Owo+Pj4+ICsgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZs YWdzKTsKPj4+PiArCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyoKPj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgICogV2FpdCBmb3Igam9iJ3MgSFcgZmVuY2UgY2FsbGJhY2sgdG8g ZmluaXNoIHVzaW5nIHNfam9iCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIGJlZm9y ZSByZWxlYXNpbmcgaXQuCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqCj4+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIEpvYiBpcyBzdGlsbCBhbGl2ZSBzbyBmZW5jZSByZWZj b3VudCBhdCBsZWFzdCAxCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+Pj4+ICsg ZG1hX2ZlbmNlX3dhaXQoJnNfam9iLT5zX2ZlbmNlLT5maW5pc2hlZCwgZmFsc2UpOwo+Pj4+ICsK Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKgo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKiBXZSBtdXN0IGtlZXAgYmFkIGpvYiBhbGl2ZSBmb3IgbGF0ZXIgdXNlIGR1cmluZwo+ Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiByZWNvdmVyeSBieSBzb21lIG9mIHRoZSBk cml2ZXJzCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+Pj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGlmIChiYWQgIT0gc19qb2IpCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzY2hlZC0+b3BzLT5mcmVlX2pvYihzX2pvYik7Cj4+Pj4gIMKgwqDCoMKgwqDC oMKgwqDCoMKgIH0KPj4+PiAgwqDCoMKgwqDCoMKgIH0KPj4+PiAtwqDCoMKgIHNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7Cj4+Pj4gLQo+Pj4+IC3C oMKgwqAgaWYgKGxhc3RfZmVuY2UpIHsKPj4+PiAtwqDCoMKgwqDCoMKgwqAgZG1hX2ZlbmNlX3dh aXQobGFzdF9mZW5jZSwgZmFsc2UpOwo+Pj4+IC3CoMKgwqDCoMKgwqDCoCBkbWFfZmVuY2VfcHV0 KGxhc3RfZmVuY2UpOwo+Pj4+IC3CoMKgwqAgfQo+Pj4+ICDCoMKgIH0KPj4+PiAgwqDCoCDCoMKg IEVYUE9SVF9TWU1CT0woZHJtX3NjaGVkX3N0b3ApOwo+Pj4+IEBAIC00MTgsNiArNDE2LDcgQEAg RVhQT1JUX1NZTUJPTChkcm1fc2NoZWRfc3RvcCk7Cj4+Pj4gIMKgwqAgdm9pZCBkcm1fc2NoZWRf c3RhcnQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgYm9vbAo+Pj4+IGZ1bGxfcmVj b3ZlcnkpCj4+Pj4gIMKgwqAgewo+Pj4+ICDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9zY2hlZF9q b2IgKnNfam9iLCAqdG1wOwo+Pj4+ICvCoMKgwqAgdW5zaWduZWQgbG9uZyBmbGFnczsKPj4+PiAg wqDCoMKgwqDCoMKgIGludCByOwo+Pj4+ICDCoMKgIMKgwqDCoMKgwqDCoCBpZiAoIWZ1bGxfcmVj b3ZlcnkpCj4+Pj4gQEAgLTQyNSw5ICs0MjQsNyBAQCB2b2lkIGRybV9zY2hlZF9zdGFydChzdHJ1 Y3QgZHJtX2dwdV9zY2hlZHVsZXIKPj4+PiAqc2NoZWQsIGJvb2wgZnVsbF9yZWNvdmVyeSkKPj4+ PiAgwqDCoCDCoMKgwqDCoMKgwqAgLyoKPj4+PiAgwqDCoMKgwqDCoMKgwqAgKiBMb2NraW5nIHRo ZSBsaXN0IGlzIG5vdCByZXF1aXJlZCBoZXJlIGFzIHRoZSBzY2hlZCB0aHJlYWQKPj4+PiBpcyBw YXJrZWQKPj4+PiAtwqDCoMKgwqAgKiBzbyBubyBuZXcgam9icyBhcmUgYmVpbmcgcHVzaGVkIGlu IHRvIEhXIGFuZCBpbgo+Pj4+IGRybV9zY2hlZF9zdG9wIHdlCj4+Pj4gLcKgwqDCoMKgICogZmx1 c2hlZCBhbGwgdGhlIGpvYnMgd2hvIHdlcmUgc3RpbGwgaW4gbWlycm9yIGxpc3QgYnV0IHdobwo+ Pj4+IGFscmVhZHkKPj4+PiAtwqDCoMKgwqAgKiBzaWduYWxlZCBhbmQgcmVtb3ZlZCB0aGVtIHNl bGYgZnJvbSB0aGUgbGlzdC4gQWxzbyBjb25jdXJyZW50Cj4+Pj4gK8KgwqDCoMKgICogc28gbm8g bmV3IGpvYnMgYXJlIGJlaW5nIGluc2VydGVkIG9yIHJlbW92ZWQuIEFsc28gY29uY3VycmVudAo+ Pj4+ICDCoMKgwqDCoMKgwqDCoCAqIEdQVSByZWNvdmVycyBjYW4ndCBydW4gaW4gcGFyYWxsZWwu Cj4+Pj4gIMKgwqDCoMKgwqDCoMKgICovCj4+Pj4gIMKgwqDCoMKgwqDCoCBsaXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmUoc19qb2IsIHRtcCwKPj4+PiAmc2NoZWQtPnJpbmdfbWlycm9yX2xpc3QsIG5v ZGUpIHsKPj4+PiBAQCAtNDQ1LDcgKzQ0Miw5IEBAIHZvaWQgZHJtX3NjaGVkX3N0YXJ0KHN0cnVj dCBkcm1fZ3B1X3NjaGVkdWxlcgo+Pj4+ICpzY2hlZCwgYm9vbCBmdWxsX3JlY292ZXJ5KQo+Pj4+ ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRybV9zY2hlZF9wcm9jZXNzX2pvYihOVUxM LCAmc19qb2ItPmNiKTsKPj4+PiAgwqDCoMKgwqDCoMKgIH0KPj4+PiAgwqDCoCArwqDCoMKgIHNw aW5fbG9ja19pcnFzYXZlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOwo+Pj4+ICDCoMKg wqDCoMKgwqAgZHJtX3NjaGVkX3N0YXJ0X3RpbWVvdXQoc2NoZWQpOwo+Pj4+ICvCoMKgwqAgc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKPj4+PiAg wqDCoCDCoMKgIHVucGFyazoKPj4+PiAgwqDCoMKgwqDCoMKgIGt0aHJlYWRfdW5wYXJrKHNjaGVk LT50aHJlYWQpOwo+Pj4+IEBAIC00NjQsNyArNDYzLDYgQEAgdm9pZCBkcm1fc2NoZWRfcmVzdWJt aXRfam9icyhzdHJ1Y3QKPj4+PiBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQpCj4+Pj4gIMKgwqDC oMKgwqDCoCB1aW50NjRfdCBndWlsdHlfY29udGV4dDsKPj4+PiAgwqDCoMKgwqDCoMKgIGJvb2wg Zm91bmRfZ3VpbHR5ID0gZmFsc2U7Cj4+Pj4gIMKgwqAgLcKgwqDCoCAvKlRPRE8gRE8gd2UgbmVl ZCBzcGlubG9jayBoZXJlID8gKi8KPj4+PiAgwqDCoMKgwqDCoMKgIGxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZShzX2pvYiwgdG1wLAo+Pj4+ICZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCwgbm9kZSkg ewo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX3NjaGVkX2ZlbmNlICpzX2Zl bmNlID0gc19qb2ItPnNfZmVuY2U7Cj4+Pj4gIMKgwqAgQEAgLTUxNCw3ICs1MTIsNiBAQCBpbnQg ZHJtX3NjaGVkX2pvYl9pbml0KHN0cnVjdCBkcm1fc2NoZWRfam9iCj4+Pj4gKmpvYiwKPj4+PiAg wqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9NRU07Cj4+Pj4gIMKgwqDCoMKgwqDCoCBq b2ItPmlkID0gYXRvbWljNjRfaW5jX3JldHVybigmc2NoZWQtPmpvYl9pZF9jb3VudCk7Cj4+Pj4g IMKgwqAgLcKgwqDCoCBJTklUX1dPUksoJmpvYi0+ZmluaXNoX3dvcmssIGRybV9zY2hlZF9qb2Jf ZmluaXNoKTsKPj4+PiAgwqDCoMKgwqDCoMKgIElOSVRfTElTVF9IRUFEKCZqb2ItPm5vZGUpOwo+ Pj4+ICDCoMKgIMKgwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4+PiBAQCAtNTk3LDI0ICs1OTQsNTMg QEAgc3RhdGljIHZvaWQgZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKHN0cnVjdAo+Pj4+IGRtYV9mZW5j ZSAqZiwgc3RydWN0IGRtYV9mZW5jZV9jYiAqY2IpCj4+Pj4gIMKgwqDCoMKgwqDCoCBzdHJ1Y3Qg ZHJtX3NjaGVkX2pvYiAqc19qb2IgPSBjb250YWluZXJfb2YoY2IsIHN0cnVjdAo+Pj4+IGRybV9z Y2hlZF9qb2IsIGNiKTsKPj4+PiAgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fc2NoZWRfZmVuY2Ug KnNfZmVuY2UgPSBzX2pvYi0+c19mZW5jZTsKPj4+PiAgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1f Z3B1X3NjaGVkdWxlciAqc2NoZWQgPSBzX2ZlbmNlLT5zY2hlZDsKPj4+PiAtwqDCoMKgIHVuc2ln bmVkIGxvbmcgZmxhZ3M7Cj4+Pj4gLQo+Pj4+IC3CoMKgwqAgY2FuY2VsX2RlbGF5ZWRfd29yaygm c2NoZWQtPndvcmtfdGRyKTsKPj4+PiAgwqDCoCDCoMKgwqDCoMKgwqAgYXRvbWljX2RlYygmc2No ZWQtPmh3X3JxX2NvdW50KTsKPj4+PiAgwqDCoMKgwqDCoMKgIGF0b21pY19kZWMoJnNjaGVkLT5u dW1fam9icyk7Cj4+Pj4gIMKgwqAgLcKgwqDCoCBzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPmpv Yl9saXN0X2xvY2ssIGZsYWdzKTsKPj4+PiAtwqDCoMKgIC8qIHJlbW92ZSBqb2IgZnJvbSByaW5n X21pcnJvcl9saXN0ICovCj4+Pj4gLcKgwqDCoCBsaXN0X2RlbF9pbml0KCZzX2pvYi0+bm9kZSk7 Cj4+Pj4gLcKgwqDCoCBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2hlZC0+am9iX2xpc3RfbG9j aywgZmxhZ3MpOwo+Pj4+ICvCoMKgwqAgdHJhY2VfZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKHNfZmVu Y2UpOwo+Pj4+ICDCoMKgIMKgwqDCoMKgwqDCoCBkcm1fc2NoZWRfZmVuY2VfZmluaXNoZWQoc19m ZW5jZSk7Cj4+Pj4gLQo+Pj4+IC3CoMKgwqAgdHJhY2VfZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKHNf ZmVuY2UpOwo+Pj4+ICDCoMKgwqDCoMKgwqAgd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZzY2hlZC0+ d2FrZV91cF93b3JrZXIpOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICsvKioKPj4+PiArICogZHJtX3Nj aGVkX2NsZWFudXBfam9icyAtIGRlc3Ryb3kgZmluaXNoZWQgam9icwo+Pj4+ICsgKgo+Pj4+ICsg KiBAc2NoZWQ6IHNjaGVkdWxlciBpbnN0YW5jZQo+Pj4+ICsgKgo+Pj4+ICsgKiBSZW1vdmUgYWxs IGZpbmlzaGVkIGpvYnMgZnJvbSB0aGUgbWlycm9yIGxpc3QgYW5kIGRlc3Ryb3kgdGhlbS4KPj4+ PiArICovCj4+Pj4gK3N0YXRpYyB2b2lkIGRybV9zY2hlZF9jbGVhbnVwX2pvYnMoc3RydWN0IGRy bV9ncHVfc2NoZWR1bGVyICpzY2hlZCkKPj4+PiArewo+Pj4+ICvCoMKgwqAgdW5zaWduZWQgbG9u ZyBmbGFnczsKPj4+PiArCj4+Pj4gK8KgwqDCoCAvKiBEb24ndCBkZXN0cm95IGpvYnMgd2hpbGUg dGhlIHRpbWVvdXQgd29ya2VyIGlzIHJ1bm5pbmcgKi8KPj4+PiArwqDCoMKgIGlmICghY2FuY2Vs X2RlbGF5ZWRfd29yaygmc2NoZWQtPndvcmtfdGRyKSkKPj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0 dXJuOwo+Pj4+ICsKPj4+PiArCj4+Pj4gK8KgwqDCoCB3aGlsZSAoIWxpc3RfZW1wdHkoJnNjaGVk LT5yaW5nX21pcnJvcl9saXN0KSkgewo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX3Nj aGVkX2pvYiAqam9iOwo+Pj4+ICsKPj4+PiArwqDCoMKgwqDCoMKgwqAgam9iID0gbGlzdF9maXJz dF9lbnRyeSgmc2NoZWQtPnJpbmdfbWlycm9yX2xpc3QsCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fc2NoZWRfam9iLCBub2RlKTsK Pj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCFkbWFfZmVuY2VfaXNfc2lnbmFsZWQoJmpvYi0+c19m ZW5jZS0+ZmluaXNoZWQpKQo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+Pj4+ ICsKPj4+PiArwqDCoMKgwqDCoMKgwqAgc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkLT5qb2JfbGlz dF9sb2NrLCBmbGFncyk7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIC8qIHJlbW92ZSBqb2IgZnJvbSBy aW5nX21pcnJvcl9saXN0ICovCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGxpc3RfZGVsX2luaXQoJmpv Yi0+bm9kZSk7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNj aGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7Cj4+Pj4gKwo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBz Y2hlZC0+b3BzLT5mcmVlX2pvYihqb2IpOwo+Pj4+ICvCoMKgwqAgfQo+Pj4+ICsKPj4+PiArwqDC oMKgIC8qIHF1ZXVlIHRpbWVvdXQgZm9yIG5leHQgam9iICovCj4+Pj4gK8KgwqDCoCBzcGluX2xv Y2tfaXJxc2F2ZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKPj4+PiArwqDCoMKgIGRy bV9zY2hlZF9zdGFydF90aW1lb3V0KHNjaGVkKTsKPj4+PiArwqDCoMKgIHNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7Cj4+Pj4gIMKgwqAgLcKgwqDC oCBzY2hlZHVsZV93b3JrKCZzX2pvYi0+ZmluaXNoX3dvcmspOwo+Pj4+ICDCoMKgIH0KPj4+PiAg wqDCoCDCoMKgIC8qKgo+Pj4+IEBAIC02NTYsOSArNjgyLDEwIEBAIHN0YXRpYyBpbnQgZHJtX3Nj aGVkX21haW4odm9pZCAqcGFyYW0pCj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlOwo+Pj4+IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShzY2hlZC0+d2Fr ZV91cF93b3JrZXIsCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKGRybV9zY2hlZF9jbGVhbnVwX2pvYnMoc2NoZWQpLAo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICghZHJtX3NjaGVkX2Jsb2NrZWQoc2NoZWQp ICYmCj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAoZW50aXR5ID0gZHJtX3NjaGVkX3NlbGVjdF9lbnRpdHkoc2NoZWQpKSkgfHwKPj4+PiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBrdGhyZWFkX3Nob3VsZF9zdG9w KCkpOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGt0aHJl YWRfc2hvdWxkX3N0b3AoKSkpOwo+Pj4+ICDCoMKgIMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICgh ZW50aXR5KQo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOwo+Pj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9zY2hlZC5jCj4+Pj4gYi9kcml2 ZXJzL2dwdS9kcm0vdjNkL3YzZF9zY2hlZC5jCj4+Pj4gaW5kZXggZTc0MGYzYi4uMWE0YWJlNyAx MDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9zY2hlZC5jCj4+Pj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc2NoZWQuYwo+Pj4+IEBAIC0yMzIsNyArMjMyLDcg QEAgdjNkX2dwdV9yZXNldF9mb3JfdGltZW91dChzdHJ1Y3QgdjNkX2RldiAqdjNkLAo+Pj4+IHN0 cnVjdCBkcm1fc2NoZWRfam9iICpzY2hlZF9qb2IpCj4+Pj4gIMKgwqAgwqDCoMKgwqDCoMKgIC8q IGJsb2NrIHNjaGVkdWxlciAqLwo+Pj4+ICDCoMKgwqDCoMKgwqAgZm9yIChxID0gMDsgcSA8IFYz RF9NQVhfUVVFVUVTOyBxKyspCj4+Pj4gLcKgwqDCoMKgwqDCoMKgIGRybV9zY2hlZF9zdG9wKCZ2 M2QtPnF1ZXVlW3FdLnNjaGVkKTsKPj4+PiArwqDCoMKgwqDCoMKgwqAgZHJtX3NjaGVkX3N0b3Ao JnYzZC0+cXVldWVbcV0uc2NoZWQsIHNjaGVkX2pvYik7Cj4+Pj4gIMKgwqAgwqDCoMKgwqDCoMKg IGlmIChzY2hlZF9qb2IpCj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRybV9zY2hlZF9pbmNy ZWFzZV9rYXJtYShzY2hlZF9qb2IpOwo+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9ncHVf c2NoZWR1bGVyLmggYi9pbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmgKPj4+PiBpbmRleCAwZGFj YTRkLi45ZWUwZjI3IDEwMDY0NAo+Pj4+IC0tLSBhL2luY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIu aAo+Pj4+ICsrKyBiL2luY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaAo+Pj4+IEBAIC0xNjcsOSAr MTY3LDYgQEAgc3RydWN0IGRybV9zY2hlZF9mZW5jZQo+Pj4+ICp0b19kcm1fc2NoZWRfZmVuY2Uo c3RydWN0IGRtYV9mZW5jZSAqZik7Cj4+Pj4gIMKgwqDCoCAqIEBzY2hlZDogdGhlIHNjaGVkdWxl ciBpbnN0YW5jZSBvbiB3aGljaCB0aGlzIGpvYiBpcyBzY2hlZHVsZWQuCj4+Pj4gIMKgwqDCoCAq IEBzX2ZlbmNlOiBjb250YWlucyB0aGUgZmVuY2VzIGZvciB0aGUgc2NoZWR1bGluZyBvZiBqb2Iu Cj4+Pj4gIMKgwqDCoCAqIEBmaW5pc2hfY2I6IHRoZSBjYWxsYmFjayBmb3IgdGhlIGZpbmlzaGVk IGZlbmNlLgo+Pj4+IC0gKiBAZmluaXNoX3dvcms6IHNjaGVkdWxlcyB0aGUgZnVuY3Rpb24gQGRy bV9zY2hlZF9qb2JfZmluaXNoIG9uY2UKPj4+PiB0aGUgam9iIGhhcwo+Pj4+IC0gKsKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgZmluaXNoZWQgdG8gcmVtb3ZlIHRoZSBqb2IgZnJvbSB0aGUK Pj4+PiAtICrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEBkcm1fZ3B1X3NjaGVkdWxlci5y aW5nX21pcnJvcl9saXN0Lgo+Pj4+ICDCoMKgwqAgKiBAbm9kZTogdXNlZCB0byBhcHBlbmQgdGhp cyBzdHJ1Y3QgdG8gdGhlCj4+Pj4gQGRybV9ncHVfc2NoZWR1bGVyLnJpbmdfbWlycm9yX2xpc3Qu Cj4+Pj4gIMKgwqDCoCAqIEBpZDogYSB1bmlxdWUgaWQgYXNzaWduZWQgdG8gZWFjaCBqb2Igc2No ZWR1bGVkIG9uIHRoZSBzY2hlZHVsZXIuCj4+Pj4gIMKgwqDCoCAqIEBrYXJtYTogaW5jcmVtZW50 IG9uIGV2ZXJ5IGhhbmcgY2F1c2VkIGJ5IHRoaXMgam9iLiBJZiB0aGlzCj4+Pj4gZXhjZWVkcyB0 aGUgaGFuZwo+Pj4+IEBAIC0xODgsNyArMTg1LDYgQEAgc3RydWN0IGRybV9zY2hlZF9qb2Igewo+ Pj4+ICDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9ncHVfc2NoZWR1bGVywqDCoMKgICpzY2hlZDsK Pj4+PiAgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fc2NoZWRfZmVuY2XCoMKgwqDCoMKgwqDCoCAq c19mZW5jZTsKPj4+PiAgwqDCoMKgwqDCoMKgIHN0cnVjdCBkbWFfZmVuY2VfY2LCoMKgwqDCoMKg wqDCoCBmaW5pc2hfY2I7Cj4+Pj4gLcKgwqDCoCBzdHJ1Y3Qgd29ya19zdHJ1Y3TCoMKgwqDCoMKg wqDCoCBmaW5pc2hfd29yazsKPj4+PiAgwqDCoMKgwqDCoMKgIHN0cnVjdCBsaXN0X2hlYWTCoMKg wqDCoMKgwqDCoCBub2RlOwo+Pj4+ICDCoMKgwqDCoMKgwqAgdWludDY0X3TCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGlkOwo+Pj4+ICDCoMKgwqDCoMKgwqAgYXRvbWljX3TCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGthcm1hOwo+Pj4+IEBAIC0yOTYsNyArMjkyLDcgQEAgaW50IGRybV9zY2hlZF9qb2Jf aW5pdChzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqam9iLAo+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHZvaWQgKm93bmVyKTsKPj4+PiAgwqDCoCB2b2lkIGRybV9zY2hlZF9q b2JfY2xlYW51cChzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqam9iKTsKPj4+PiAgwqDCoCB2b2lkIGRy bV9zY2hlZF93YWtldXAoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCk7Cj4+Pj4gLXZv aWQgZHJtX3NjaGVkX3N0b3Aoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCk7Cj4+Pj4g K3ZvaWQgZHJtX3NjaGVkX3N0b3Aoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgc3Ry dWN0Cj4+Pj4gZHJtX3NjaGVkX2pvYiAqYmFkKTsKPj4+PiAgwqDCoCB2b2lkIGRybV9zY2hlZF9z dGFydChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkLCBib29sCj4+Pj4gZnVsbF9yZWNv dmVyeSk7Cj4+Pj4gIMKgwqAgdm9pZCBkcm1fc2NoZWRfcmVzdWJtaXRfam9icyhzdHJ1Y3QgZHJt X2dwdV9zY2hlZHVsZXIgKnNjaGVkKTsKPj4+PiAgwqDCoCB2b2lkIGRybV9zY2hlZF9pbmNyZWFz ZV9rYXJtYShzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqYmFkKTsKPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4gYW1k LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vYW1kLWdmeA==