From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Koenig, Christian" Subject: Re: [PATCH] dma-buf: Enhance dma-fence tracing Date: Tue, 22 Jan 2019 08:49:30 +0000 Message-ID: <3f469e3a-0b0f-fa06-9a5b-497bfa1cbee8@amd.com> References: <20190121232040.26114-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190121232040.26114-1-chris@chris-wilson.co.uk> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , "dri-devel@lists.freedesktop.org" Cc: Michael Sartain , "intel-gfx@lists.freedesktop.org" , Steven Rostedt , Alex Deucher , Pierre-Loup Griffais List-Id: dri-devel@lists.freedesktop.org QW0gMjIuMDEuMTkgdW0gMDA6MjAgc2NocmllYiBDaHJpcyBXaWxzb246DQo+IFJhdGhlciB0aGFu IGV2ZXJ5IGJhY2tlbmQgYW5kIEdQVSBkcml2ZXIgcmVpbnZlbnRpbmcgdGhlIHNhbWUgd2hlZWwg Zm9yDQo+IHVzZXIgbGV2ZWwgZGVidWdnaW5nIG9mIEhXIGV4ZWN1dGlvbiwgdGhlIGNvbW1vbiBk bWEtZmVuY2UgZnJhbWV3b3JrDQo+IHNob3VsZCBpbmNsdWRlIHRoZSB0cmFjaW5nIGluZnJhc3Ry dWN0dXJlIHJlcXVpcmVkIGZvciBtb3N0IGNsaWVudCBBUEkNCj4gbGV2ZWwgZmxvdyB2aXN1YWxp c2F0aW9uLg0KPg0KPiBXaXRoIHRoZXNlIGNvbW1vbiBkbWEtZmVuY2UgbGV2ZWwgdHJhY2Vwb2lu dHMsIHRoZSB1c2Vyc3BhY2UgdG9vbHMgY2FuDQo+IGVzdGFibGlzaCBhIGRldGFpbGVkIHZpZXcg b2YgdGhlIGNsaWVudCA8LT4gSFcgZmxvdyBhY3Jvc3MgZGlmZmVyZW50DQo+IGtlcm5lbHMuIFRo ZXJlIGlzIGEgc3Ryb25nIGFzayB0byBoYXZlIHRoaXMgYXZhaWxhYmxlLCBzbyB0aGF0IHRoZQ0K PiB1c2Vyc3BhY2UgZGV2ZWxvcGVyIGNhbiBlZmZlY3RpdmVseSBhc3Nlc3MgaWYgdGhleSdyZSBk b2luZyBhIGdvb2Qgam9iDQo+IGFib3V0IGZlZWRpbmcgdGhlIGJlYXN0IG9mIGEgR1BVIGhhcmR3 YXJlLg0KPg0KPiBJbiB0aGUgY2FzZSBvZiBuZWVkaW5nIHRvIGxvb2sgaW50byBtb3JlIGZpbmUt Z3JhaW5lZCBkZXRhaWxzIG9mIGhvdw0KPiBrZXJuZWwgaW50ZXJuYWxzIHdvcmsgdG93YXJkcyB0 aGUgZ29hbCBvZiBmZWVkaW5nIHRoZSBiZWFzdCwgdGhlIHRvb2xzDQo+IG1heSBvcHRpb25hbGx5 IGFtZW5kIHRoZSBkbWEtZmVuY2UgdHJhY2luZyBpbmZvcm1hdGlvbiB3aXRoIHRoZSBkcml2ZXIN Cj4gaW1wbGVtZW50YXRpb24gc3BlY2lmaWMuIEJ1dCBmb3Igc3VjaCBjYXNlcywgdGhlIHRvb2xz IHNob3VsZCBoYXZlIGENCj4gZ3JhY2VmdWwgZGVncmFkYXRpb24gaW4gY2FzZSB0aGUgZXhwZWN0 ZWQgZXh0cmEgdHJhY2Vwb2ludHMgaGF2ZQ0KPiBjaGFuZ2VkIG9yIHRoZWlyIGZvcm1hdCBkaWZm ZXJzIGZyb20gdGhlIGV4cGVjdGVkLCBhcyB0aGUga2VybmVsDQo+IGltcGxlbWVudGF0aW9uIGlu dGVybmFscyBhcmUgbm90IGV4cGVjdGVkIHRvIHN0YXkgdGhlIHNhbWUuDQo+DQo+IEl0IGlzIGlt cG9ydGFudCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRyYWNpbmcgZm9yIHRoZSBwdXJwb3NlIG9m IGNsaWVudA0KPiBmbG93IHZpc3VhbGlzYXRpb24gYW5kIHRyYWNpbmcgZm9yIHRoZSBwdXJwb3Nl IG9mIGxvdy1sZXZlbCBrZXJuZWwNCj4gZGVidWdnaW5nLiBUaGUgbGF0dGVyIGlzIGhpZ2hseSBp bXBsZW1lbnRhdGlvbiBzcGVjaWZpYywgdGllZCB0bw0KPiBhIHBhcnRpY3VsYXIgSFcgYW5kIGRy aXZlciwgd2hlcmVhcyB0aGUgZm9ybWVyIGFkZHJlc3NlcyBhIGNvbW1vbiBnb2FsDQo+IG9mIHVz ZXIgbGV2ZWwgdHJhY2luZyBhbmQgbGlrZWx5IGEgY29tbW9uIHNldCBvZiB1c2Vyc3BhY2UgdG9v bHMuDQo+IEhhdmluZyBtYWRlIHRoZSBkaXN0aW5jdGlvbiB0aGF0IHRoZXNlIHRyYWNlcG9pbnRz IHdpbGwgYmUgY29uc3VtZWQgZm9yDQo+IGNsaWVudCBBUEkgdG9vbGluZywgd2UgcmFpc2UgdGhl IHNwZWN0cmUgb2YgdHJhY2Vwb2ludCBBQkkgc3RhYmlsaXR5LiBJdA0KPiBpcyBob3BlZCB0aGF0 IGJ5IGRlZmluaW5nIGEgY29tbW9uIHNldCBvZiBkbWEtZmVuY2UgdHJhY2Vwb2ludHMsIHdlIGF2 b2lkDQo+IHRoZSBwaXRmYWxsIG9mIGV4cG9zaW5nIGxvdyBsZXZlbCBkZXRhaWxzIGFuZCBzbyBy ZXN0cmljdCBvdXJzZWx2ZXMgb25seQ0KPiB0byB0aGUgaGlnaCBsZXZlbCBmbG93IHRoYXQgaXMg YXBwbGljYWJsZSB0byBhbGwgZHJpdmVycyBhbmQgaGFyZHdhcmUuDQo+IFRodXMgdGhlIHJlc2Vy dmVkIGd1YXJhbnRlZSB0aGF0IHRoaXMgc2V0IG9mIHRyYWNlcG9pbnRzIHdpbGwgYmUgc3RhYmxl DQo+ICh3aXRoIHRoZSBlbXBoYXNpcyBvbiBkZXBpY3RpbmcgY2xpZW50IDwtPiBIVyBmbG93IGFz IG9wcG9zZWQgdG8NCj4gZHJpdmVyIDwtPiBIVykuDQo+DQo+IEluIHRlcm1zIG9mIHNwZWNpZmlj IGNoYW5nZXMgdG8gdGhlIGRtYS1mZW5jZSB0cmFjaW5nLCB3ZSByZW1vdmUgdGhlDQo+IGVtaXNz aW9uIG9mIHRoZSBzdHJpbmdzIGZvciBldmVyeSB0cmFjZXBvaW50IChyZXNlcnZpbmcgdGhlbSBm b3INCj4gZG1hX2ZlbmNlX2luaXQgZm9yIGNhc2VzIHdoZXJlIHRoZXkgaGF2ZSB1bmlxdWUgZG1h X2ZlbmNlX29wcywgYW5kDQo+IHByZWZlcnJpbmcgdG8gaGF2ZSBkZXNjcmlwdG9ycyBmb3IgdGhl IHdob2xlIGZlbmNlIGNvbnRleHQpLiBzdHJpbmdzIGRvDQo+IG5vdCBwYWNrIGFzIHdlbGwgaW50 byB0aGUgZnRyYWNlIHJpbmdidWZmZXIgYW5kIHdlIHdvdWxkIHByZWZlciB0bw0KPiByZWR1Y2Ug dGhlIGFtb3VudCBvZiBpbmRpcmVjdCBjYWxsYmFja3MgcmVxdWlyZWQgZm9yIGZyZXF1ZW50IHRy YWNlcG9pbnQNCj4gZW1pc3Npb24uDQo+DQo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8 Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPg0KPiBDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMu bGFodGluZW5AbGludXguaW50ZWwuY29tPg0KPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51 cnN1bGluQGludGVsLmNvbT4NCj4gQ2M6IEFsZXggRGV1Y2hlciA8YWxleGRldWNoZXJAZ21haWwu Y29tPg0KPiBDYzogIkNocmlzdGlhbiBLw7ZuaWciIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+ DQo+IENjOiBFcmljIEFuaG9sdCA8ZXJpY0BhbmhvbHQubmV0Pg0KPiBDYzogUGllcnJlLUxvdXAg R3JpZmZhaXMgPHBncmlmZmFpc0B2YWx2ZXNvZnR3YXJlLmNvbT4NCj4gQ2M6IE1pY2hhZWwgU2Fy dGFpbiA8bWlrZXNhcnRAZmFzdG1haWwuY29tPg0KPiBDYzogU3RldmVuIFJvc3RlZHQgPHJvc3Rl ZHRAZ29vZG1pcy5vcmc+DQoNCkluIGdlbmVyYWwgeWVzIHBsZWFzZSEgSWYgcG9zc2libGUgcGxl YXNlIHNlcGFyYXRlIG91dCB0aGUgY2hhbmdlcyB0byANCnRoZSBjb21tb24gZG1hX2ZlbmNlIGlu ZnJhc3RydWN0dXJlIGZyb20gdGhlIGk5MTUgY2hhbmdlcy4NCg0KT25lIHRoaW5nIEknbSB3b25k ZXJpbmcgaXMgd2h5IHRoZSBlbmFibGVfc2lnbmFsaW5nIHRyYWNlIHBvaW50IGRvZXNuJ3QgDQpu ZWVkIHRvIGJlIGV4cG9ydGVkIGFueSBtb3JlLiBJcyB0aGF0IG9ubHkgdXNlZCBpbnRlcm5hbGx5 IGluIHRoZSBjb21tb24gDQppbmZyYXN0cnVjdHVyZT8NCg0KQXBhcnQgZnJvbSB0aGF0IEknbSBv biBzaWNrIGxlYXZlIHRvZGF5LCBzbyBnaXZlIG1lIGF0IGxlYXN0IGEgZmV3IGRheXMgDQp0byBy ZWNvdmVyIGFuZCB0YWtlIGEgY2xvc2VyIGxvb2suDQoNClRoYW5rcywNCkNocmlzdGlhbi4NCg0K PiAtLS0NCj4gICBkcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLmMgICAgICAgICAgICAgICAgIHwg ICA5ICstDQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY2xmbHVzaC5jICAgICB8 ICAgNSArDQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jICB8 ICAgMSAtDQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgICAgICAgICB8 ICAxNiArLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdGltZWxpbmUuYyAgICAgICAg fCAgIDUgKw0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaCAgICAgICAgICAg fCAxMzQgLS0tLS0tLS0tLS0tLS0tDQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj X3N1Ym1pc3Npb24uYyB8ICAxMCArKw0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jICAgICAgICAgICAgfCAgIDYgKw0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCAgICAgfCAgIDIgKw0KPiAgIGluY2x1ZGUvdHJhY2UvZXZlbnRzL2RtYV9mZW5j ZS5oICAgICAgICAgICAgfCAxNzcgKysrKysrKysrKysrKysrKysrKy0NCj4gICAxMCBmaWxlcyBj aGFuZ2VkLCAyMTQgaW5zZXJ0aW9ucygrKSwgMTUxIGRlbGV0aW9ucygtKQ0KPg0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9kbWEtYnVmL2RtYS1mZW5jZS5jIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1m ZW5jZS5jDQo+IGluZGV4IDNhYTg3MzNmODMyYS4uNWM5M2VkMzRiMWZmIDEwMDY0NA0KPiAtLS0g YS9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLmMNCj4gKysrIGIvZHJpdmVycy9kbWEtYnVmL2Rt YS1mZW5jZS5jDQo+IEBAIC0yNyw4ICsyNywxNSBAQA0KPiAgICNkZWZpbmUgQ1JFQVRFX1RSQUNF X1BPSU5UUw0KPiAgICNpbmNsdWRlIDx0cmFjZS9ldmVudHMvZG1hX2ZlbmNlLmg+DQo+ICAgDQo+ ICtFWFBPUlRfVFJBQ0VQT0lOVF9TWU1CT0woZG1hX2ZlbmNlX2NvbnRleHRfY3JlYXRlKTsNCj4g K0VYUE9SVF9UUkFDRVBPSU5UX1NZTUJPTChkbWFfZmVuY2VfY29udGV4dF9kZXN0cm95KTsNCj4g Kw0KPiArRVhQT1JUX1RSQUNFUE9JTlRfU1lNQk9MKGRtYV9mZW5jZV9hd2FpdCk7DQo+ICAgRVhQ T1JUX1RSQUNFUE9JTlRfU1lNQk9MKGRtYV9mZW5jZV9lbWl0KTsNCj4gLUVYUE9SVF9UUkFDRVBP SU5UX1NZTUJPTChkbWFfZmVuY2VfZW5hYmxlX3NpZ25hbCk7DQo+ICtFWFBPUlRfVFJBQ0VQT0lO VF9TWU1CT0woZG1hX2ZlbmNlX2V4ZWN1dGVfc3RhcnQpOw0KPiArRVhQT1JUX1RSQUNFUE9JTlRf U1lNQk9MKGRtYV9mZW5jZV9leGVjdXRlX2VuZCk7DQo+ICtFWFBPUlRfVFJBQ0VQT0lOVF9TWU1C T0woZG1hX2ZlbmNlX3dhaXRfc3RhcnQpOw0KPiArRVhQT1JUX1RSQUNFUE9JTlRfU1lNQk9MKGRt YV9mZW5jZV93YWl0X2VuZCk7DQo+ICAgDQo+ICAgc3RhdGljIERFRklORV9TUElOTE9DSyhkbWFf ZmVuY2Vfc3R1Yl9sb2NrKTsNCj4gICBzdGF0aWMgc3RydWN0IGRtYV9mZW5jZSBkbWFfZmVuY2Vf c3R1YjsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NsZmx1 c2guYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NsZmx1c2guYw0KPiBpbmRleCA4 ZTc0YzIzY2JkOTEuLjQzNWMxMzAzZWNjOCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fY2xmbHVzaC5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2NsZmx1c2guYw0KPiBAQCAtMjIsNiArMjIsOCBAQA0KPiAgICAqDQo+ICAgICovDQo+ ICAgDQo+ICsjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL2RtYV9mZW5jZS5oPg0KPiArDQo+ICAgI2lu Y2x1ZGUgImk5MTVfZHJ2LmgiDQo+ICAgI2luY2x1ZGUgImludGVsX2Zyb250YnVmZmVyLmgiDQo+ ICAgI2luY2x1ZGUgImk5MTVfZ2VtX2NsZmx1c2guaCINCj4gQEAgLTczLDYgKzc1LDcgQEAgc3Rh dGljIHZvaWQgaTkxNV9jbGZsdXNoX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KPiAg IAlzdHJ1Y3QgY2xmbHVzaCAqY2xmbHVzaCA9IGNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKmNs Zmx1c2gpLCB3b3JrKTsNCj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGNs Zmx1c2gtPm9iajsNCj4gICANCj4gKwl0cmFjZV9kbWFfZmVuY2VfZXhlY3V0ZV9zdGFydCgmY2xm bHVzaC0+ZG1hLCBzbXBfcHJvY2Vzc29yX2lkKCkpOw0KPiAgIAlpZiAoaTkxNV9nZW1fb2JqZWN0 X3Bpbl9wYWdlcyhvYmopKSB7DQo+ICAgCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhY3F1aXJlIG9i ai0+cGFnZXMgZm9yIGNsZmx1c2hpbmdcbiIpOw0KPiAgIAkJZ290byBvdXQ7DQo+IEBAIC04Myw2 ICs4Niw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfY2xmbHVzaF93b3JrKHN0cnVjdCB3b3JrX3N0cnVj dCAqd29yaykNCj4gICAJaTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7DQo+ICAgDQo+ ICAgb3V0Og0KPiArCXRyYWNlX2RtYV9mZW5jZV9leGVjdXRlX2VuZCgmY2xmbHVzaC0+ZG1hLCBz bXBfcHJvY2Vzc29yX2lkKCkpOw0KPiAgIAlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7DQo+ICAg DQo+ICAgCWRtYV9mZW5jZV9zaWduYWwoJmNsZmx1c2gtPmRtYSk7DQo+IEBAIC05Nyw2ICsxMDEs NyBAQCBpOTE1X2NsZmx1c2hfbm90aWZ5KHN0cnVjdCBpOTE1X3N3X2ZlbmNlICpmZW5jZSwNCj4g ICANCj4gICAJc3dpdGNoIChzdGF0ZSkgew0KPiAgIAljYXNlIEZFTkNFX0NPTVBMRVRFOg0KPiAr CQl0cmFjZV9kbWFfZmVuY2VfZW1pdCgmY2xmbHVzaC0+ZG1hKTsNCj4gICAJCXNjaGVkdWxlX3dv cmsoJmNsZmx1c2gtPndvcmspOw0KPiAgIAkJYnJlYWs7DQo+ICAgDQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMNCj4gaW5kZXggZjI1MDEwOWUxZjY2Li5mMTBh OWU2NzVlMmMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4 ZWNidWZmZXIuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVm ZmVyLmMNCj4gQEAgLTIzOTcsNyArMjM5Nyw2IEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwNCj4gICAJICovDQo+ICAgCWViLnJlcXVlc3QtPmJhdGNoID0g ZWIuYmF0Y2g7DQo+ICAgDQo+IC0JdHJhY2VfaTkxNV9yZXF1ZXN0X3F1ZXVlKGViLnJlcXVlc3Qs IGViLmJhdGNoX2ZsYWdzKTsNCj4gICAJZXJyID0gZWJfc3VibWl0KCZlYik7DQo+ICAgZXJyX3Jl cXVlc3Q6DQo+ICAgCWk5MTVfcmVxdWVzdF9hZGQoZWIucmVxdWVzdCk7DQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVxdWVzdC5jDQo+IGluZGV4IDVlMTc4ZjVhYzE4Yi4uZDViYmM4Y2I4MzA2IDEw MDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYw0KPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYw0KPiBAQCAtMjgsNiArMjgsOCBA QA0KPiAgICNpbmNsdWRlIDxsaW51eC9zY2hlZC9jbG9jay5oPg0KPiAgICNpbmNsdWRlIDxsaW51 eC9zY2hlZC9zaWduYWwuaD4NCj4gICANCj4gKyNpbmNsdWRlIDx0cmFjZS9ldmVudHMvZG1hX2Zl bmNlLmg+DQo+ICsNCj4gICAjaW5jbHVkZSAiaTkxNV9kcnYuaCINCj4gICAjaW5jbHVkZSAiaTkx NV9yZXNldC5oIg0KPiAgIA0KPiBAQCAtMjU0LDggKzI1Niw2IEBAIHN0YXRpYyB2b2lkIGk5MTVf cmVxdWVzdF9yZXRpcmUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkNCj4gICAJR0VNX0JV R19PTighaTkxNV9zd19mZW5jZV9zaWduYWxlZCgmcmVxdWVzdC0+c3VibWl0KSk7DQo+ICAgCUdF TV9CVUdfT04oIWk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocmVxdWVzdCkpOw0KPiAgIA0KPiAtCXRy YWNlX2k5MTVfcmVxdWVzdF9yZXRpcmUocmVxdWVzdCk7DQo+IC0NCj4gICAJYWR2YW5jZV9yaW5n KHJlcXVlc3QpOw0KPiAgIAlmcmVlX2NhcHR1cmVfbGlzdChyZXF1ZXN0KTsNCj4gICANCj4gQEAg LTM4Myw4ICszODMsNiBAQCB2b2lkIF9faTkxNV9yZXF1ZXN0X3N1Ym1pdChzdHJ1Y3QgaTkxNV9y ZXF1ZXN0ICpyZXF1ZXN0KQ0KPiAgIAkvKiBUcmFuc2ZlciBmcm9tIHBlci1jb250ZXh0IG9udG8g dGhlIGdsb2JhbCBwZXItZW5naW5lIHRpbWVsaW5lICovDQo+ICAgCW1vdmVfdG9fdGltZWxpbmUo cmVxdWVzdCwgJmVuZ2luZS0+dGltZWxpbmUpOw0KPiAgIA0KPiAtCXRyYWNlX2k5MTVfcmVxdWVz dF9leGVjdXRlKHJlcXVlc3QpOw0KPiAtDQo+ICAgCXdha2VfdXBfYWxsKCZyZXF1ZXN0LT5leGVj dXRlKTsNCj4gICB9DQo+ICAgDQo+IEBAIC00NjMsNyArNDYxLDggQEAgc3VibWl0X25vdGlmeShz dHJ1Y3QgaTkxNV9zd19mZW5jZSAqZmVuY2UsIGVudW0gaTkxNV9zd19mZW5jZV9ub3RpZnkgc3Rh dGUpDQo+ICAgDQo+ICAgCXN3aXRjaCAoc3RhdGUpIHsNCj4gICAJY2FzZSBGRU5DRV9DT01QTEVU RToNCj4gLQkJdHJhY2VfaTkxNV9yZXF1ZXN0X3N1Ym1pdChyZXF1ZXN0KTsNCj4gKwkJdHJhY2Vf ZG1hX2ZlbmNlX2VtaXQoJnJlcXVlc3QtPmZlbmNlKTsNCj4gKw0KPiAgIAkJLyoNCj4gICAJCSAq IFdlIG5lZWQgdG8gc2VyaWFsaXplIHVzZSBvZiB0aGUgc3VibWl0X3JlcXVlc3QoKSBjYWxsYmFj aw0KPiAgIAkJICogd2l0aCBpdHMgaG90cGx1Z2dpbmcgcGVyZm9ybWVkIGR1cmluZyBhbiBlbWVy Z2VuY3kNCj4gQEAgLTc3MCw2ICs3NjksOCBAQCBpOTE1X3JlcXVlc3RfYXdhaXRfZG1hX2ZlbmNl KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkNCj4gICAJ CWlmIChyZXQgPCAwKQ0KPiAgIAkJCXJldHVybiByZXQ7DQo+ICAgDQo+ICsJCXRyYWNlX2RtYV9m ZW5jZV9hd2FpdCgmcnEtPmZlbmNlLCBmZW5jZSk7DQo+ICsNCj4gICAJCS8qIFJlY29yZCB0aGUg bGF0ZXN0IGZlbmNlIHVzZWQgYWdhaW5zdCBlYWNoIHRpbWVsaW5lICovDQo+ICAgCQlpZiAoZmVu Y2UtPmNvbnRleHQgIT0gcnEtPmk5MTUtPm1tLnVub3JkZXJlZF90aW1lbGluZSkNCj4gICAJCQlp OTE1X3RpbWVsaW5lX3N5bmNfc2V0KHJxLT50aW1lbGluZSwgZmVuY2UpOw0KPiBAQCAtODc4LDcg Kzg3OSw2IEBAIHZvaWQgaTkxNV9yZXF1ZXN0X2FkZChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1 ZXN0KQ0KPiAgIAkJICBlbmdpbmUtPm5hbWUsIHJlcXVlc3QtPmZlbmNlLmNvbnRleHQsIHJlcXVl c3QtPmZlbmNlLnNlcW5vKTsNCj4gICANCj4gICAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmcmVxdWVz dC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7DQo+IC0JdHJhY2VfaTkxNV9yZXF1ZXN0X2FkZChy ZXF1ZXN0KTsNCj4gICANCj4gICAJLyoNCj4gICAJICogTWFrZSBzdXJlIHRoYXQgbm8gcmVxdWVz dCBnYXp1bXBlZCB1cyAtIGlmIGl0IHdhcyBhbGxvY2F0ZWQgYWZ0ZXINCj4gQEAgLTExMzksNyAr MTEzOSw3IEBAIGxvbmcgaTkxNV9yZXF1ZXN0X3dhaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEs DQo+ICAgCWlmICghdGltZW91dCkNCj4gICAJCXJldHVybiAtRVRJTUU7DQo+ICAgDQo+IC0JdHJh Y2VfaTkxNV9yZXF1ZXN0X3dhaXRfYmVnaW4ocnEsIGZsYWdzKTsNCj4gKwl0cmFjZV9kbWFfZmVu Y2Vfd2FpdF9zdGFydCgmcnEtPmZlbmNlKTsNCj4gICANCj4gICAJYWRkX3dhaXRfcXVldWUoJnJx LT5leGVjdXRlLCAmZXhlYyk7DQo+ICAgCWlmIChmbGFncyAmIEk5MTVfV0FJVF9MT0NLRUQpDQo+ IEBAIC0xMjQ1LDcgKzEyNDUsNyBAQCBsb25nIGk5MTVfcmVxdWVzdF93YWl0KHN0cnVjdCBpOTE1 X3JlcXVlc3QgKnJxLA0KPiAgIAlpZiAoZmxhZ3MgJiBJOTE1X1dBSVRfTE9DS0VEKQ0KPiAgIAkJ cmVtb3ZlX3dhaXRfcXVldWUoZXJycSwgJnJlc2V0KTsNCj4gICAJcmVtb3ZlX3dhaXRfcXVldWUo JnJxLT5leGVjdXRlLCAmZXhlYyk7DQo+IC0JdHJhY2VfaTkxNV9yZXF1ZXN0X3dhaXRfZW5kKHJx KTsNCj4gKwl0cmFjZV9kbWFfZmVuY2Vfd2FpdF9lbmQoJnJxLT5mZW5jZSk7DQo+ICAgDQo+ICAg CXJldHVybiB0aW1lb3V0Ow0KPiAgIH0NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfdGltZWxpbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdGltZWxpbmUu Yw0KPiBpbmRleCA0NjY3Y2MwOGM0MTYuLmE4M2FlMGI1OWIxZiAxMDA2NDQNCj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfdGltZWxpbmUuYw0KPiBAQCAtNCw2ICs0LDggQEANCj4gICAgKiBDb3B5cmln aHQgwqkgMjAxNi0yMDE4IEludGVsIENvcnBvcmF0aW9uDQo+ICAgICovDQo+ICAgDQo+ICsjaW5j bHVkZSA8dHJhY2UvZXZlbnRzL2RtYV9mZW5jZS5oPg0KPiArDQo+ICAgI2luY2x1ZGUgImk5MTVf ZHJ2LmgiDQo+ICAgDQo+ICAgI2luY2x1ZGUgImk5MTVfdGltZWxpbmUuaCINCj4gQEAgLTMwLDYg KzMyLDcgQEAgdm9pZCBpOTE1X3RpbWVsaW5lX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsDQo+ICAgCS8qIENhbGxlZCBkdXJpbmcgZWFybHlfaW5pdCBiZWZvcmUgd2Uga25vdyBo b3cgbWFueSBlbmdpbmVzIHRoZXJlIGFyZSAqLw0KPiAgIA0KPiAgIAl0aW1lbGluZS0+ZmVuY2Vf Y29udGV4dCA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDEpOw0KPiArCXRyYWNlX2RtYV9mZW5j ZV9jb250ZXh0X2NyZWF0ZSh0aW1lbGluZS0+ZmVuY2VfY29udGV4dCwgImk5MTUiLCBuYW1lKTsN Cj4gICANCj4gICAJc3Bpbl9sb2NrX2luaXQoJnRpbWVsaW5lLT5sb2NrKTsNCj4gICANCj4gQEAg LTcwLDYgKzczLDggQEAgdm9pZCBpOTE1X3RpbWVsaW5lX2Zpbmkoc3RydWN0IGk5MTVfdGltZWxp bmUgKnRpbWVsaW5lKQ0KPiAgIHsNCj4gICAJR0VNX0JVR19PTighbGlzdF9lbXB0eSgmdGltZWxp bmUtPnJlcXVlc3RzKSk7DQo+ICAgDQo+ICsJdHJhY2VfZG1hX2ZlbmNlX2NvbnRleHRfZGVzdHJv eSh0aW1lbGluZS0+ZmVuY2VfY29udGV4dCk7DQo+ICsNCj4gICAJaTkxNV9zeW5jbWFwX2ZyZWUo JnRpbWVsaW5lLT5zeW5jKTsNCj4gICANCj4gICAJbGlzdF9kZWwoJnRpbWVsaW5lLT5saW5rKTsN Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaA0KPiBpbmRleCAzM2Q5MGVjYTljZGQuLjUzOGI2 ZWZiNWE1NiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5o DQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaA0KPiBAQCAtNTg0LDgy ICs1ODQsNyBAQCBUUkFDRV9FVkVOVChpOTE1X2dlbV9ldmljdF92bSwNCj4gICAJICAgIFRQX3By aW50aygiZGV2PSVkLCB2bT0lcCIsIF9fZW50cnktPmRldiwgX19lbnRyeS0+dm0pDQo+ICAgKTsN Cj4gICANCj4gLVRSQUNFX0VWRU5UKGk5MTVfcmVxdWVzdF9xdWV1ZSwNCj4gLQkgICAgVFBfUFJP VE8oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHUzMiBmbGFncyksDQo+IC0JICAgIFRQX0FSR1Mo cnEsIGZsYWdzKSwNCj4gLQ0KPiAtCSAgICBUUF9TVFJVQ1RfX2VudHJ5KA0KPiAtCQkJICAgICBf X2ZpZWxkKHUzMiwgZGV2KQ0KPiAtCQkJICAgICBfX2ZpZWxkKHUzMiwgaHdfaWQpDQo+IC0JCQkg ICAgIF9fZmllbGQodTY0LCBjdHgpDQo+IC0JCQkgICAgIF9fZmllbGQodTE2LCBjbGFzcykNCj4g LQkJCSAgICAgX19maWVsZCh1MTYsIGluc3RhbmNlKQ0KPiAtCQkJICAgICBfX2ZpZWxkKHUzMiwg c2Vxbm8pDQo+IC0JCQkgICAgIF9fZmllbGQodTMyLCBmbGFncykNCj4gLQkJCSAgICAgKSwNCj4g LQ0KPiAtCSAgICBUUF9mYXN0X2Fzc2lnbigNCj4gLQkJCSAgIF9fZW50cnktPmRldiA9IHJxLT5p OTE1LT5kcm0ucHJpbWFyeS0+aW5kZXg7DQo+IC0JCQkgICBfX2VudHJ5LT5od19pZCA9IHJxLT5n ZW1fY29udGV4dC0+aHdfaWQ7DQo+IC0JCQkgICBfX2VudHJ5LT5jbGFzcyA9IHJxLT5lbmdpbmUt PnVhYmlfY2xhc3M7DQo+IC0JCQkgICBfX2VudHJ5LT5pbnN0YW5jZSA9IHJxLT5lbmdpbmUtPmlu c3RhbmNlOw0KPiAtCQkJICAgX19lbnRyeS0+Y3R4ID0gcnEtPmZlbmNlLmNvbnRleHQ7DQo+IC0J CQkgICBfX2VudHJ5LT5zZXFubyA9IHJxLT5mZW5jZS5zZXFubzsNCj4gLQkJCSAgIF9fZW50cnkt PmZsYWdzID0gZmxhZ3M7DQo+IC0JCQkgICApLA0KPiAtDQo+IC0JICAgIFRQX3ByaW50aygiZGV2 PSV1LCBlbmdpbmU9JXU6JXUsIGh3X2lkPSV1LCBjdHg9JWxsdSwgc2Vxbm89JXUsIGZsYWdzPTB4 JXgiLA0KPiAtCQkgICAgICBfX2VudHJ5LT5kZXYsIF9fZW50cnktPmNsYXNzLCBfX2VudHJ5LT5p bnN0YW5jZSwNCj4gLQkJICAgICAgX19lbnRyeS0+aHdfaWQsIF9fZW50cnktPmN0eCwgX19lbnRy eS0+c2Vxbm8sDQo+IC0JCSAgICAgIF9fZW50cnktPmZsYWdzKQ0KPiAtKTsNCj4gLQ0KPiAtREVD TEFSRV9FVkVOVF9DTEFTUyhpOTE1X3JlcXVlc3QsDQo+IC0JICAgIFRQX1BST1RPKHN0cnVjdCBp OTE1X3JlcXVlc3QgKnJxKSwNCj4gLQkgICAgVFBfQVJHUyhycSksDQo+IC0NCj4gLQkgICAgVFBf U1RSVUNUX19lbnRyeSgNCj4gLQkJCSAgICAgX19maWVsZCh1MzIsIGRldikNCj4gLQkJCSAgICAg X19maWVsZCh1MzIsIGh3X2lkKQ0KPiAtCQkJICAgICBfX2ZpZWxkKHU2NCwgY3R4KQ0KPiAtCQkJ ICAgICBfX2ZpZWxkKHUxNiwgY2xhc3MpDQo+IC0JCQkgICAgIF9fZmllbGQodTE2LCBpbnN0YW5j ZSkNCj4gLQkJCSAgICAgX19maWVsZCh1MzIsIHNlcW5vKQ0KPiAtCQkJICAgICBfX2ZpZWxkKHUz MiwgZ2xvYmFsKQ0KPiAtCQkJICAgICApLA0KPiAtDQo+IC0JICAgIFRQX2Zhc3RfYXNzaWduKA0K PiAtCQkJICAgX19lbnRyeS0+ZGV2ID0gcnEtPmk5MTUtPmRybS5wcmltYXJ5LT5pbmRleDsNCj4g LQkJCSAgIF9fZW50cnktPmh3X2lkID0gcnEtPmdlbV9jb250ZXh0LT5od19pZDsNCj4gLQkJCSAg IF9fZW50cnktPmNsYXNzID0gcnEtPmVuZ2luZS0+dWFiaV9jbGFzczsNCj4gLQkJCSAgIF9fZW50 cnktPmluc3RhbmNlID0gcnEtPmVuZ2luZS0+aW5zdGFuY2U7DQo+IC0JCQkgICBfX2VudHJ5LT5j dHggPSBycS0+ZmVuY2UuY29udGV4dDsNCj4gLQkJCSAgIF9fZW50cnktPnNlcW5vID0gcnEtPmZl bmNlLnNlcW5vOw0KPiAtCQkJICAgX19lbnRyeS0+Z2xvYmFsID0gcnEtPmdsb2JhbF9zZXFubzsN Cj4gLQkJCSAgICksDQo+IC0NCj4gLQkgICAgVFBfcHJpbnRrKCJkZXY9JXUsIGVuZ2luZT0ldTol dSwgaHdfaWQ9JXUsIGN0eD0lbGx1LCBzZXFubz0ldSwgZ2xvYmFsPSV1IiwNCj4gLQkJICAgICAg X19lbnRyeS0+ZGV2LCBfX2VudHJ5LT5jbGFzcywgX19lbnRyeS0+aW5zdGFuY2UsDQo+IC0JCSAg ICAgIF9fZW50cnktPmh3X2lkLCBfX2VudHJ5LT5jdHgsIF9fZW50cnktPnNlcW5vLA0KPiAtCQkg ICAgICBfX2VudHJ5LT5nbG9iYWwpDQo+IC0pOw0KPiAtDQo+IC1ERUZJTkVfRVZFTlQoaTkxNV9y ZXF1ZXN0LCBpOTE1X3JlcXVlc3RfYWRkLA0KPiAtCSAgICBUUF9QUk9UTyhzdHJ1Y3QgaTkxNV9y ZXF1ZXN0ICpycSksDQo+IC0JICAgIFRQX0FSR1MocnEpDQo+IC0pOw0KPiAtDQo+ICAgI2lmIGRl ZmluZWQoQ09ORklHX0RSTV9JOTE1X0xPV19MRVZFTF9UUkFDRVBPSU5UUykNCj4gLURFRklORV9F VkVOVChpOTE1X3JlcXVlc3QsIGk5MTVfcmVxdWVzdF9zdWJtaXQsDQo+IC0JICAgICBUUF9QUk9U TyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSksDQo+IC0JICAgICBUUF9BUkdTKHJxKQ0KPiAtKTsN Cj4gLQ0KPiAtREVGSU5FX0VWRU5UKGk5MTVfcmVxdWVzdCwgaTkxNV9yZXF1ZXN0X2V4ZWN1dGUs DQo+IC0JICAgICBUUF9QUk9UTyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSksDQo+IC0JICAgICBU UF9BUkdTKHJxKQ0KPiAtKTsNCj4gLQ0KPiAgIFRSQUNFX0VWRU5UKGk5MTVfcmVxdWVzdF9pbiwN Cj4gICAJICAgIFRQX1BST1RPKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCB1bnNpZ25lZCBpbnQg cG9ydCksDQo+ICAgCSAgICBUUF9BUkdTKHJxLCBwb3J0KSwNCj4gQEAgLTcyOCwxNiArNjUzLDYg QEAgVFJBQ0VfRVZFTlQoaTkxNV9yZXF1ZXN0X291dCwNCj4gICANCj4gICAjZWxzZQ0KPiAgICNp ZiAhZGVmaW5lZChUUkFDRV9IRUFERVJfTVVMVElfUkVBRCkNCj4gLXN0YXRpYyBpbmxpbmUgdm9p ZA0KPiAtdHJhY2VfaTkxNV9yZXF1ZXN0X3N1Ym1pdChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkN Cj4gLXsNCj4gLX0NCj4gLQ0KPiAtc3RhdGljIGlubGluZSB2b2lkDQo+IC10cmFjZV9pOTE1X3Jl cXVlc3RfZXhlY3V0ZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkNCj4gLXsNCj4gLX0NCj4gLQ0K PiAgIHN0YXRpYyBpbmxpbmUgdm9pZA0KPiAgIHRyYWNlX2k5MTVfcmVxdWVzdF9pbihzdHJ1Y3Qg aTkxNV9yZXF1ZXN0ICpycSwgdW5zaWduZWQgaW50IHBvcnQpDQo+ICAgew0KPiBAQCAtNzc1LDU1 ICs2OTAsNiBAQCBUUkFDRV9FVkVOVChpbnRlbF9lbmdpbmVfbm90aWZ5LA0KPiAgIAkJICAgICAg X19lbnRyeS0+c2Vxbm8sIF9fZW50cnktPndhaXRlcnMpDQo+ICAgKTsNCj4gICANCj4gLURFRklO RV9FVkVOVChpOTE1X3JlcXVlc3QsIGk5MTVfcmVxdWVzdF9yZXRpcmUsDQo+IC0JICAgIFRQX1BS T1RPKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKSwNCj4gLQkgICAgVFBfQVJHUyhycSkNCj4gLSk7 DQo+IC0NCj4gLVRSQUNFX0VWRU5UKGk5MTVfcmVxdWVzdF93YWl0X2JlZ2luLA0KPiAtCSAgICBU UF9QUk9UTyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdW5zaWduZWQgaW50IGZsYWdzKSwNCj4g LQkgICAgVFBfQVJHUyhycSwgZmxhZ3MpLA0KPiAtDQo+IC0JICAgIFRQX1NUUlVDVF9fZW50cnko DQo+IC0JCQkgICAgIF9fZmllbGQodTMyLCBkZXYpDQo+IC0JCQkgICAgIF9fZmllbGQodTMyLCBo d19pZCkNCj4gLQkJCSAgICAgX19maWVsZCh1NjQsIGN0eCkNCj4gLQkJCSAgICAgX19maWVsZCh1 MTYsIGNsYXNzKQ0KPiAtCQkJICAgICBfX2ZpZWxkKHUxNiwgaW5zdGFuY2UpDQo+IC0JCQkgICAg IF9fZmllbGQodTMyLCBzZXFubykNCj4gLQkJCSAgICAgX19maWVsZCh1MzIsIGdsb2JhbCkNCj4g LQkJCSAgICAgX19maWVsZCh1bnNpZ25lZCBpbnQsIGZsYWdzKQ0KPiAtCQkJICAgICApLA0KPiAt DQo+IC0JICAgIC8qIE5COiB0aGUgYmxvY2tpbmcgaW5mb3JtYXRpb24gaXMgcmFjeSBzaW5jZSBt dXRleF9pc19sb2NrZWQNCj4gLQkgICAgICogZG9lc24ndCBjaGVjayB0aGF0IHRoZSBjdXJyZW50 IHRocmVhZCBob2xkcyB0aGUgbG9jay4gVGhlIG9ubHkNCj4gLQkgICAgICogb3RoZXIgb3B0aW9u IHdvdWxkIGJlIHRvIHBhc3MgdGhlIGJvb2xlYW4gaW5mb3JtYXRpb24gb2Ygd2hldGhlcg0KPiAt CSAgICAgKiBvciBub3QgdGhlIGNsYXNzIHdhcyBibG9ja2luZyBkb3duIHRocm91Z2ggdGhlIHN0 YWNrIHdoaWNoIGlzDQo+IC0JICAgICAqIGxlc3MgZGVzaXJhYmxlLg0KPiAtCSAgICAgKi8NCj4g LQkgICAgVFBfZmFzdF9hc3NpZ24oDQo+IC0JCQkgICBfX2VudHJ5LT5kZXYgPSBycS0+aTkxNS0+ ZHJtLnByaW1hcnktPmluZGV4Ow0KPiAtCQkJICAgX19lbnRyeS0+aHdfaWQgPSBycS0+Z2VtX2Nv bnRleHQtPmh3X2lkOw0KPiAtCQkJICAgX19lbnRyeS0+Y2xhc3MgPSBycS0+ZW5naW5lLT51YWJp X2NsYXNzOw0KPiAtCQkJICAgX19lbnRyeS0+aW5zdGFuY2UgPSBycS0+ZW5naW5lLT5pbnN0YW5j ZTsNCj4gLQkJCSAgIF9fZW50cnktPmN0eCA9IHJxLT5mZW5jZS5jb250ZXh0Ow0KPiAtCQkJICAg X19lbnRyeS0+c2Vxbm8gPSBycS0+ZmVuY2Uuc2Vxbm87DQo+IC0JCQkgICBfX2VudHJ5LT5nbG9i YWwgPSBycS0+Z2xvYmFsX3NlcW5vOw0KPiAtCQkJICAgX19lbnRyeS0+ZmxhZ3MgPSBmbGFnczsN Cj4gLQkJCSAgICksDQo+IC0NCj4gLQkgICAgVFBfcHJpbnRrKCJkZXY9JXUsIGVuZ2luZT0ldTol dSwgaHdfaWQ9JXUsIGN0eD0lbGx1LCBzZXFubz0ldSwgZ2xvYmFsPSV1LCBibG9ja2luZz0ldSwg ZmxhZ3M9MHgleCIsDQo+IC0JCSAgICAgIF9fZW50cnktPmRldiwgX19lbnRyeS0+Y2xhc3MsIF9f ZW50cnktPmluc3RhbmNlLA0KPiAtCQkgICAgICBfX2VudHJ5LT5od19pZCwgX19lbnRyeS0+Y3R4 LCBfX2VudHJ5LT5zZXFubywNCj4gLQkJICAgICAgX19lbnRyeS0+Z2xvYmFsLCAhIShfX2VudHJ5 LT5mbGFncyAmIEk5MTVfV0FJVF9MT0NLRUQpLA0KPiAtCQkgICAgICBfX2VudHJ5LT5mbGFncykN Cj4gLSk7DQo+IC0NCj4gLURFRklORV9FVkVOVChpOTE1X3JlcXVlc3QsIGk5MTVfcmVxdWVzdF93 YWl0X2VuZCwNCj4gLQkgICAgVFBfUFJPVE8oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpLA0KPiAt CSAgICBUUF9BUkdTKHJxKQ0KPiAtKTsNCj4gLQ0KPiAgIFRSQUNFX0VWRU5UX0NPTkRJVElPTihp OTE1X3JlZ19ydywNCj4gICAJVFBfUFJPVE8oYm9vbCB3cml0ZSwgaTkxNV9yZWdfdCByZWcsIHU2 NCB2YWwsIGludCBsZW4sIGJvb2wgdHJhY2UpLA0KPiAgIA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMNCj4gaW5kZXggYWIxYzQ5YjEwNmYyLi5kZGEyMGRk ZjA0MTggMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJt aXNzaW9uLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Np b24uYw0KPiBAQCAtNTM1LDYgKzUzNSwxNCBAQCBzdGF0aWMgdm9pZCBndWNfYWRkX3JlcXVlc3Qo c3RydWN0IGludGVsX2d1YyAqZ3VjLCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkNCj4gICAJY2xp ZW50LT5zdWJtaXNzaW9uc1tlbmdpbmUtPmlkXSArPSAxOw0KPiAgIA0KPiAgIAlzcGluX3VubG9j aygmY2xpZW50LT53cV9sb2NrKTsNCj4gKw0KPiArCS8qDQo+ICsJICogWFhYIG1vdmUgdG8gSFcg c3ludGhlc2lzOg0KPiArCSAqIC0gZW1pdCBTUk0oUkNTX1RJTUVTVEFNUCkgdG8gcGVyLWNvbnRl eHQgam91cm5hbA0KPiArCSAqIC0gcG9sbCAobWF5YmUgaW50ZXJydXB0KSBqb3VybmFsIGZyb20g a3RocmVhZCwgZ2VuZXJhdGluZyB0cmFjZXBvaW50DQo+ICsJICogLSBub3RpZnkgY2FsbGJhY2sg Zm9yIGRtYV9mZW5jZSB0cmFjZXBvaW50IHJlZ2lzdGVyDQo+ICsJICovDQo+ICsJdHJhY2VfZG1h X2ZlbmNlX2V4ZWN1dGVfc3RhcnQoJnJxLT5mZW5jZSwgaTkxNV90cmFjZV9od2lkKHJxLT5lbmdp bmUpKTsNCj4gICB9DQo+ICAgDQo+ICAgLyoNCj4gQEAgLTgxMCw2ICs4MTgsOCBAQCBzdGF0aWMg dm9pZCBndWNfc3VibWlzc2lvbl90YXNrbGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkNCj4gICANCj4g ICAJcnEgPSBwb3J0X3JlcXVlc3QocG9ydCk7DQo+ICAgCXdoaWxlIChycSAmJiBpOTE1X3JlcXVl c3RfY29tcGxldGVkKHJxKSkgew0KPiArCQl0cmFjZV9kbWFfZmVuY2VfZXhlY3V0ZV9lbmQoJnJx LT5mZW5jZSwNCj4gKwkJCQkJICAgIGk5MTVfdHJhY2VfaHdpZChycS0+ZW5naW5lKSk7DQo+ICAg CQl0cmFjZV9pOTE1X3JlcXVlc3Rfb3V0KHJxKTsNCj4gICAJCWk5MTVfcmVxdWVzdF9wdXQocnEp Ow0KPiAgIA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYw0KPiBpbmRleCBjMGE0MmFmYWYxNzcu LjNmYzQ4NTkyNWFiMSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMNCj4gQEAgLTEz Myw2ICsxMzMsOCBAQA0KPiAgICAqLw0KPiAgICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4N Cj4gICANCj4gKyNpbmNsdWRlIDx0cmFjZS9ldmVudHMvZG1hX2ZlbmNlLmg+DQo+ICsNCj4gICAj aW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+DQo+ICAgI2luY2x1ZGUgImk5MTVfZHJ2LmgiDQo+ICAg I2luY2x1ZGUgImk5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5oIg0KPiBAQCAtMzUxLDExICszNTMsMTUg QEAgZXhlY2xpc3RzX2NvbnRleHRfc2NoZWR1bGVfaW4oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEp DQo+ICAgCWV4ZWNsaXN0c19jb250ZXh0X3N0YXR1c19jaGFuZ2UocnEsIElOVEVMX0NPTlRFWFRf U0NIRURVTEVfSU4pOw0KPiAgIAlpbnRlbF9lbmdpbmVfY29udGV4dF9pbihycS0+ZW5naW5lKTsN Cj4gICAJcnEtPmh3X2NvbnRleHQtPmFjdGl2ZSA9IHJxLT5lbmdpbmU7DQo+ICsNCj4gKwl0cmFj ZV9kbWFfZmVuY2VfZXhlY3V0ZV9zdGFydCgmcnEtPmZlbmNlLCBpOTE1X3RyYWNlX2h3aWQocnEt PmVuZ2luZSkpOw0KPiAgIH0NCj4gICANCj4gICBzdGF0aWMgaW5saW5lIHZvaWQNCj4gICBleGVj bGlzdHNfY29udGV4dF9zY2hlZHVsZV9vdXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsIHVuc2ln bmVkIGxvbmcgc3RhdHVzKQ0KPiAgIHsNCj4gKwl0cmFjZV9kbWFfZmVuY2VfZXhlY3V0ZV9lbmQo JnJxLT5mZW5jZSwgaTkxNV90cmFjZV9od2lkKHJxLT5lbmdpbmUpKTsNCj4gKw0KPiAgIAlycS0+ aHdfY29udGV4dC0+YWN0aXZlID0gTlVMTDsNCj4gICAJaW50ZWxfZW5naW5lX2NvbnRleHRfb3V0 KHJxLT5lbmdpbmUpOw0KPiAgIAlleGVjbGlzdHNfY29udGV4dF9zdGF0dXNfY2hhbmdlKHJxLCBz dGF0dXMpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oDQo+IGluZGV4 IGMzZWYwZjliZjMyMS4uMGZkN2ZiN2ZkMmNiIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oDQo+IEBAIC01NzksNiArNTc5LDggQEAgc3RydWN0IGludGVsX2Vu Z2luZV9jcyB7DQo+ICAgCX0gc3RhdHM7DQo+ICAgfTsNCj4gICANCj4gKyNkZWZpbmUgaTkxNV90 cmFjZV9od2lkKGUpICgoZSktPnVhYmlfY2xhc3MgPDwgMTYgfCAoZSktPmluc3RhbmNlKQ0KPiAr DQo+ICAgc3RhdGljIGlubGluZSBib29sDQo+ICAgaW50ZWxfZW5naW5lX25lZWRzX2NtZF9wYXJz ZXIoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQ0KPiAgIHsNCj4gZGlmZiAt LWdpdCBhL2luY2x1ZGUvdHJhY2UvZXZlbnRzL2RtYV9mZW5jZS5oIGIvaW5jbHVkZS90cmFjZS9l dmVudHMvZG1hX2ZlbmNlLmgNCj4gaW5kZXggMjIxMmFkZGE4Zjc3Li43NWQwZGUzY2NjNGEgMTAw NjQ0DQo+IC0tLSBhL2luY2x1ZGUvdHJhY2UvZXZlbnRzL2RtYV9mZW5jZS5oDQo+ICsrKyBiL2lu Y2x1ZGUvdHJhY2UvZXZlbnRzL2RtYV9mZW5jZS5oDQo+IEBAIC05LDEyICs5LDExOSBAQA0KPiAg IA0KPiAgIHN0cnVjdCBkbWFfZmVuY2U7DQo+ICAgDQo+ICsvKg0KPiArICogZG1hLWZlbmNlIHRy YWNpbmcgKm9yKiBIb3cgdG8gZGVidWcgZmVuY2VzDQo+ICsgKg0KPiArICogVGhlIGRtYS1mZW5j ZSB0cmFjaW5nIHByb3ZpZGVzIGluc2lnaHQgaW50byB0aGUgdXNlciA8LT4gSFcgZXhlY3V0aW9u DQo+ICsgKiBmbG93LCBhbHRob3VnaCBkbWEtZmVuY2UgaXMgbm90IHRpZWQgdG8gSFcgYW5kIG1h eSBiZSB1c2VkIHRvIGNvb3JkaW5hdGUNCj4gKyAqIGFueSBleGVjdXRpb24gZmxvdy4gQSBkbWEt ZmVuY2UgcmVwcmVzZW50cyBhIGpvYiBhbG9uZyBhIHRpbWVsaW5lICh0aGUgZmVuY2UNCj4gKyAq IGNvbnRleHQpLCBhbmQgd2hlbiB0aGUgam9iIGlzIGNvbXBsZXRlIGl0IGlzIHNpZ25hbGVkLiBI b3dldmVyLCBmb3IgdGhlDQo+ICsgKiBwdXJwb3NlcyBvZiB2aXN1YWxpc2F0aW9uIG9mIEhXIGV4 ZWN1dGlvbiwgd2UgbmVlZCBhIGxpdHRsZSBtb3JlIGluZm9ybWF0aW9uDQo+ICsgKiB0aGFuIHRo YXQgYXMgd2UgbmVlZCB0byBub3Qgb25seSBrbm93IHdoZW4gdGhlIGpvYiBiZWNhbWUgcmVhZHkg Zm9yIGV4ZWN1dGlvbg0KPiArICogKHdhcyBwYXNzZWQgaW50byB0aGUgSFcgcXVldWUpIGJ1dCBp ZGVhbGx5IHdoZW4gYW5kIG9uIHdoaWNoIEhXIGVuZ2luZSB0aGF0DQo+ICsgKiBqb2Igd2FzIGV2 ZW50dWFsbHkgc2NoZWR1bGVkLiBGb3IgQ1BVIGJvdW5kIGV4ZWN1dGlvbiBmbG93cywgc2ltaWxh cmx5DQo+ICsgKiBrbm93aW5nIG9uIHdoaWNoIENQVSB0aGUgam9iIHdhcyBzY2hlZHVsZWQgY2Fu IGJlIHZpdGFsIGluZm9ybWF0aW9uIGZvcg0KPiArICogZGVidWdnaW5nLg0KPiArICoNCj4gKyAq IFRoZSB0eXBpY2FsIGZsb3cgb2YgZXZlbnRzIGZyb20gdXNlciB0byBIVyBmb3IgYSBkbWEtZmVu Y2Ugd291bGQgYmU6DQo+ICsgKg0KPiArICogICAxLiBkbWFfZmVuY2VfaW5pdA0KPiArICogICAy LiBkbWFfZmVuY2VfYXdhaXQgKG9wdGlvbmFsKQ0KPiArICogICAgICAtIHJlY29yZHMgdGhlIGRl cGVuZGVuY2llcyBiZXR3ZWVuIGZlbmNlcyB0aGF0IG11c3QgYmUgc2lnbmFsZWQNCj4gKyAqICAg ICAgICBiZWZvcmUgdGhpcyBmZW5jZSBpcyByZWFkeSBmb3IgZXhlY3V0aW9uOyBhbiBhc3luY2hy b25vdXMgd2FpdA0KPiArICogICAzLiBkbWFfZmVuY2VfZW1pdA0KPiArICogICAgICAtIHRoZSBm ZW5jZSBpcyByZWFkeSBmb3IgZXhlY3V0aW9uIGFuZCBwYXNzZWQgdG8gdGhlIGV4ZWN1dGlvbiBx dWV1ZQ0KPiArICogICAgICAgICh0aGUgdXNlciB0byBIVy9GVy9iYWNrZW5kIHRyYW5zaXRpb24p DQo+ICsgKiAgIDQuIGRtYV9mZW5jZV9leGVjdXRlX3N0YXJ0IChvcHRpb25hbCkNCj4gKyAqICAg ICAgLSByZWNvcmRzIHRoZSBzdGFydCBvZiBleGVjdXRpb24gb24gdGhlIGJhY2tlbmQgKEhXKSBh bmQgaW5jbHVkZXMNCj4gKyAqICAgICAgICBhIHRhZyB0byB1bmlxdWVseSBpZGVudGlmeSB0aGUg YmFja2VuZCBlbmdpbmUgc28gdGhhdCBjb25jdXJyZW50DQo+ICsgKiAgICAgICAgZXhlY3V0aW9u IGNhbiBiZSB0cmFjZWQNCj4gKyAqICAgICAgLSBtYXkgb25seSBiZSBlbWl0dGVkIGZvciB0aGUg Zmlyc3QgZmVuY2UgaW4gYSBjb250ZXh0IHRvIGJlZ2luDQo+ICsgKiAgICAgICAgZXhlY3V0aW9u DQo+ICsgKiAgIDUuIGRtYV9mZW5jZV9leGVjdXRlX2VuZCAob3B0aW9uYWwpDQo+ICsgKiAgICAg LSByZWNvcmRzIHRoZSBjb3JyZXNwb25kaW5nIGNvbXBsZXRpb24gcG9pbnQgb2YgYmFja2VuZCBl eGVjdXRpb24NCj4gKyAqICAgICAtIG1heSBvbmx5IGJlIGVtaXR0ZWQgZm9yIHRoZSBsYXN0IGZl bmNlIGluIGEgY29udGV4dCB0byBmaW5pc2gNCj4gKyAqICAgICAgIGV4ZWN1dGlvbg0KPiArICog ICA2LiBkbWFfZmVuY2Vfc2lnbmFsZWQNCj4gKyAqICAgICAtIHJlY29yZHMgd2hlbiB0aGUgZmVu Y2Ugd2FzIG1hcmtlZCBhcyBjb21wbGV0ZWQgYW5kIHRoZSByZXN1bHQNCj4gKyAqICAgICAgIHBy b3BhZ2F0ZWQgdG8gdGhlIHZhcmlvdXMgd2FpdGVycw0KPiArICogICA3LiBkbWFfZmVuY2VfZGVz dHJveQ0KPiArICoNCj4gKyAqIE5vdGUgdGhhdCBub3QgYWxsIGZlbmNlcyBhcmUgdXNlZCBpbiBj b25qdW5jdGlvbiB3aXRoIEhXIGVuZ2luZXMsIGFuZA0KPiArICogc28gbWF5IGV4Y2x1ZGUgdGhl IGV4ZWN1dGlvbiB0cmFjaW5nLiBOb3IgZG8gdGhleSBhbGwgY29ycmVzcG9uZCB3aXRoDQo+ICsg KiBjbGllbnQgQVBJLCBhbHRob3VnaCBtYW55IG1heSBiZSB1c2VkIGFzIGJhY2tncm91bmQgdGFz a3MgcmVxdWlyZWQNCj4gKyAqIGJlZm9yZSBIVyBleGVjdXRpb24uDQo+ICsgKg0KPiArICogVGhl IGZsb3cgb2YgZXZlbnRzIGZyb20gSFcgdG8gdXNlciB3b3VsZCBiZToNCj4gKyAqDQo+ICsgKiAg IDEuIGRtYV9mZW5jZV93YWl0X2JlZ2luDQo+ICsgKiAgIDIuIGRtYV9mZW5jZV9lbmFibGVfc2ln bmFsaW5nIChvcHRpb25hbCkNCj4gKyAqICAgMy4gZG1hX2ZlbmNlX3NpZ25hbGVkDQo+ICsgKiAg IDQuIGRtYV9mZW5jZV93YWl0X2VuZA0KPiArICoNCj4gKyAqIEZvciBpbXByb3ZlZCB2aXN1YWxp c2F0aW9uLCBkbWFfZmVuY2VfY29udGV4dF9jcmVhdGUgYW5kDQo+ICsgKiBkbWFfZmVuY2VfY29u dGV4dF9kZXN0cm95IGFyZSB1c2VkIHRvIGNvdXBsZSB0aGUgY29udGV4dCBpZCB0byBhIHN0cmlu Zy4NCj4gKyAqLw0KPiArDQo+ICtUUkFDRV9FVkVOVChkbWFfZmVuY2VfY29udGV4dF9jcmVhdGUs DQo+ICsJICAgIFRQX1BST1RPKHU2NCBjb250ZXh0LCBjb25zdCBjaGFyICpkcml2ZXIsIGNvbnN0 IGNoYXIgKnRpbWVsaW5lKSwNCj4gKwkgICAgVFBfQVJHUyhjb250ZXh0LCBkcml2ZXIsIHRpbWVs aW5lKSwNCj4gKw0KPiArCSAgICBUUF9TVFJVQ1RfX2VudHJ5KA0KPiArCQkJICAgICBfX2ZpZWxk KHU2NCwgY29udGV4dCkNCj4gKwkJCSAgICAgX19zdHJpbmcoZHJpdmVyLCBkcml2ZXIpDQo+ICsJ CQkgICAgIF9fc3RyaW5nKHRpbWVsaW5lLCB0aW1lbGluZSkNCj4gKwkJCSAgICAgKSwNCj4gKw0K PiArCSAgICBUUF9mYXN0X2Fzc2lnbigNCj4gKwkJCSAgIF9fZW50cnktPmNvbnRleHQgPSBjb250 ZXh0Ow0KPiArCQkJICAgX19hc3NpZ25fc3RyKGRyaXZlciwgZHJpdmVyKQ0KPiArCQkJICAgX19h c3NpZ25fc3RyKHRpbWVsaW5lLCB0aW1lbGluZSkNCj4gKwkJCSAgICksDQo+ICsNCj4gKwkgICAg VFBfcHJpbnRrKCJjb250ZXh0PSVsbHUsIGRyaXZlcj0lcywgdGltZWxpbmU9JXMiLA0KPiArCQkg ICAgICBfX2VudHJ5LT5jb250ZXh0LCBfX2dldF9zdHIoZHJpdmVyKSwgX19nZXRfc3RyKHRpbWVs aW5lKSkNCj4gKyk7DQo+ICsNCj4gK1RSQUNFX0VWRU5UKGRtYV9mZW5jZV9jb250ZXh0X2Rlc3Ry b3ksDQo+ICsJICAgIFRQX1BST1RPKHU2NCBjb250ZXh0KSwNCj4gKwkgICAgVFBfQVJHUyhjb250 ZXh0KSwNCj4gKw0KPiArCSAgICBUUF9TVFJVQ1RfX2VudHJ5KA0KPiArCQkJICAgICBfX2ZpZWxk KHU2NCwgY29udGV4dCkNCj4gKwkJCSAgICAgKSwNCj4gKw0KPiArCSAgICBUUF9mYXN0X2Fzc2ln bigNCj4gKwkJCSAgIF9fZW50cnktPmNvbnRleHQgPSBjb250ZXh0Ow0KPiArCQkJICAgKSwNCj4g Kw0KPiArCSAgICBUUF9wcmludGsoImNvbnRleHQ9JWxsdSIsIF9fZW50cnktPmNvbnRleHQpDQo+ ICspOw0KPiArDQo+ICAgREVDTEFSRV9FVkVOVF9DTEFTUyhkbWFfZmVuY2UsDQo+ICAgDQo+ICAg CVRQX1BST1RPKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKSwNCj4gICANCj4gICAJVFBfQVJHUyhm ZW5jZSksDQo+ICAgDQo+ICsJVFBfU1RSVUNUX19lbnRyeSgNCj4gKwkJX19maWVsZCh1NjQsIGNv bnRleHQpDQo+ICsJCV9fZmllbGQodTY0LCBzZXFubykNCj4gKwkpLA0KPiArDQo+ICsJVFBfZmFz dF9hc3NpZ24oDQo+ICsJCV9fZW50cnktPmNvbnRleHQgPSBmZW5jZS0+Y29udGV4dDsNCj4gKwkJ X19lbnRyeS0+c2Vxbm8gPSBmZW5jZS0+c2Vxbm87DQo+ICsJKSwNCj4gKw0KPiArCVRQX3ByaW50 aygiY29udGV4dD0lbGx1LCBzZXFubz0lbGx1IiwgX19lbnRyeS0+Y29udGV4dCwgX19lbnRyeS0+ c2Vxbm8pDQo+ICspOw0KPiArDQo+ICtUUkFDRV9FVkVOVChkbWFfZmVuY2VfaW5pdCwNCj4gKwlU UF9QUk9UTyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSksDQo+ICsNCj4gKwlUUF9BUkdTKGZlbmNl KSwNCj4gKw0KPiAgIAlUUF9TVFJVQ1RfX2VudHJ5KA0KPiAgIAkJX19zdHJpbmcoZHJpdmVyLCBm ZW5jZS0+b3BzLT5nZXRfZHJpdmVyX25hbWUoZmVuY2UpKQ0KPiAgIAkJX19zdHJpbmcodGltZWxp bmUsIGZlbmNlLT5vcHMtPmdldF90aW1lbGluZV9uYW1lKGZlbmNlKSkNCj4gQEAgLTQxLDEzICsx NDgsNiBAQCBERUZJTkVfRVZFTlQoZG1hX2ZlbmNlLCBkbWFfZmVuY2VfZW1pdCwNCj4gICAJVFBf QVJHUyhmZW5jZSkNCj4gICApOw0KPiAgIA0KPiAtREVGSU5FX0VWRU5UKGRtYV9mZW5jZSwgZG1h X2ZlbmNlX2luaXQsDQo+IC0NCj4gLQlUUF9QUk9UTyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSks DQo+IC0NCj4gLQlUUF9BUkdTKGZlbmNlKQ0KPiAtKTsNCj4gLQ0KPiAgIERFRklORV9FVkVOVChk bWFfZmVuY2UsIGRtYV9mZW5jZV9kZXN0cm95LA0KPiAgIA0KPiAgIAlUUF9QUk9UTyhzdHJ1Y3Qg ZG1hX2ZlbmNlICpmZW5jZSksDQo+IEBAIC04Myw2ICsxODMsNjkgQEAgREVGSU5FX0VWRU5UKGRt YV9mZW5jZSwgZG1hX2ZlbmNlX3dhaXRfZW5kLA0KPiAgIAlUUF9BUkdTKGZlbmNlKQ0KPiAgICk7 DQo+ICAgDQo+ICtUUkFDRV9FVkVOVChkbWFfZmVuY2VfYXdhaXQsDQo+ICsJICAgIFRQX1BST1RP KHN0cnVjdCBkbWFfZmVuY2UgKndhaXQsIHN0cnVjdCBkbWFfZmVuY2UgKnNpZ25hbCksDQo+ICsJ ICAgIFRQX0FSR1Mod2FpdCwgc2lnbmFsKSwNCj4gKw0KPiArCSAgICBUUF9TVFJVQ1RfX2VudHJ5 KA0KPiArCQkJICAgICBfX2ZpZWxkKHU2NCwgd2FpdF9jb250ZXh0KQ0KPiArCQkJICAgICBfX2Zp ZWxkKHU2NCwgd2FpdF9zZXFubykNCj4gKwkJCSAgICAgX19maWVsZCh1NjQsIHNpZ25hbF9jb250 ZXh0KQ0KPiArCQkJICAgICBfX2ZpZWxkKHU2NCwgc2lnbmFsX3NlcW5vKQ0KPiArCQkJICAgICAp LA0KPiArDQo+ICsJICAgIFRQX2Zhc3RfYXNzaWduKA0KPiArCQkJICAgX19lbnRyeS0+d2FpdF9j b250ZXh0ID0gd2FpdC0+Y29udGV4dDsNCj4gKwkJCSAgIF9fZW50cnktPndhaXRfc2Vxbm8gPSB3 YWl0LT5zZXFubzsNCj4gKwkJCSAgIF9fZW50cnktPnNpZ25hbF9jb250ZXh0ID0gc2lnbmFsLT5j b250ZXh0Ow0KPiArCQkJICAgX19lbnRyeS0+c2lnbmFsX3NlcW5vID0gc2lnbmFsLT5zZXFubzsN Cj4gKwkJCSAgICksDQo+ICsNCj4gKwkgICAgVFBfcHJpbnRrKCJ3YWl0X2NvbnRleHQ9JWxsdSwg d2FpdF9zZXFubz0lbGx1LCBzaWduYWxfY29udGV4dD0lbGx1LCBzaWduYWxfc2Vxbm89JWxsdSIs DQo+ICsJCSAgICAgIF9fZW50cnktPndhaXRfY29udGV4dCwgX19lbnRyeS0+d2FpdF9zZXFubywN Cj4gKwkJICAgICAgX19lbnRyeS0+c2lnbmFsX2NvbnRleHQsIF9fZW50cnktPnNpZ25hbF9zZXFu bykNCj4gKyk7DQo+ICsNCj4gK1RSQUNFX0VWRU5UKGRtYV9mZW5jZV9leGVjdXRlX3N0YXJ0LA0K PiArCSAgICBUUF9QUk9UTyhzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgdTY0IGh3aWQpLA0KPiAr CSAgICBUUF9BUkdTKGZlbmNlLCBod2lkKSwNCj4gKw0KPiArCSAgICBUUF9TVFJVQ1RfX2VudHJ5 KA0KPiArCQkJICAgICBfX2ZpZWxkKHU2NCwgY29udGV4dCkNCj4gKwkJCSAgICAgX19maWVsZCh1 NjQsIHNlcW5vKQ0KPiArCQkJICAgICBfX2ZpZWxkKHU2NCwgaHdpZCkNCj4gKwkJCSAgICAgKSwN Cj4gKw0KPiArCSAgICBUUF9mYXN0X2Fzc2lnbigNCj4gKwkJCSAgIF9fZW50cnktPmNvbnRleHQg PSBmZW5jZS0+Y29udGV4dDsNCj4gKwkJCSAgIF9fZW50cnktPnNlcW5vID0gZmVuY2UtPnNlcW5v Ow0KPiArCQkJICAgX19lbnRyeS0+aHdpZCA9IGh3aWQ7DQo+ICsJCQkgICApLA0KPiArDQo+ICsJ ICAgIFRQX3ByaW50aygiY29udGV4dD0lbGx1LCBzZXFubz0lbGx1LCBod2lkPSVsbHUiLA0KPiAr CQkgICAgICBfX2VudHJ5LT5jb250ZXh0LCBfX2VudHJ5LT5zZXFubywgX19lbnRyeS0+aHdpZCkN Cj4gKyk7DQo+ICsNCj4gK1RSQUNFX0VWRU5UKGRtYV9mZW5jZV9leGVjdXRlX2VuZCwNCj4gKwkg ICAgVFBfUFJPVE8oc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIHU2NCBod2lkKSwNCj4gKwkgICAg VFBfQVJHUyhmZW5jZSwgaHdpZCksDQo+ICsNCj4gKwkgICAgVFBfU1RSVUNUX19lbnRyeSgNCj4g KwkJCSAgICAgX19maWVsZCh1NjQsIGNvbnRleHQpDQo+ICsJCQkgICAgIF9fZmllbGQodTY0LCBz ZXFubykNCj4gKwkJCSAgICAgX19maWVsZCh1NjQsIGh3aWQpDQo+ICsJCQkgICAgICksDQo+ICsN Cj4gKwkgICAgVFBfZmFzdF9hc3NpZ24oDQo+ICsJCQkgICBfX2VudHJ5LT5jb250ZXh0ID0gZmVu Y2UtPmNvbnRleHQ7DQo+ICsJCQkgICBfX2VudHJ5LT5zZXFubyA9IGZlbmNlLT5zZXFubzsNCj4g KwkJCSAgIF9fZW50cnktPmh3aWQgPSBod2lkOw0KPiArCQkJICAgKSwNCj4gKw0KPiArCSAgICBU UF9wcmludGsoImNvbnRleHQ9JWxsdSwgc2Vxbm89JWxsdSwgaHdpZD0lbGx1IiwNCj4gKwkJICAg ICAgX19lbnRyeS0+Y29udGV4dCwgX19lbnRyeS0+c2Vxbm8sIF9fZW50cnktPmh3aWQpDQo+ICsp Ow0KPiArDQo+ICAgI2VuZGlmIC8qICBfVFJBQ0VfRE1BX0ZFTkNFX0ggKi8NCj4gICANCj4gICAv KiBUaGlzIHBhcnQgbXVzdCBiZSBvdXRzaWRlIHByb3RlY3Rpb24gKi8NCg0KX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==