From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Souza, Jose" Subject: Re: [PATCH v5 3/3] drm/i915: Make PSR registers relative to transcoders Date: Wed, 19 Jun 2019 00:27:01 +0000 Message-ID: <0dce6dcd4148691adaa386b15ffe872cb451be00.camel@intel.com> References: <20190420205529.20624-1-jose.souza@intel.com> <20190420205529.20624-3-jose.souza@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id E08206E145 for ; Wed, 19 Jun 2019 00:27:02 +0000 (UTC) In-Reply-To: Content-Language: en-US Content-ID: <968C6D0F2577474F9D4A16D5890117BC@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Wang, Zhi A" , "intel-gfx@lists.freedesktop.org" , "Pandiyan, Dhinakaran" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE5LTA2LTE0IGF0IDIxOjI3IC0wNzAwLCBEaGluYWthcmFuIFBhbmRpeWFuIHdy b3RlOg0KPiAiZHJtL2k5MTUvcHNyIiBpbiB0aGUgc3ViamVjdC4NCg0KRG9uZQ0KDQo+IA0KPiBP biBTYXQsIDIwMTktMDQtMjAgYXQgMTM6NTUgLTA3MDAsIEpvc8OpIFJvYmVydG8gZGUgU291emEg d3JvdGU6DQo+ID4gUFNSIHJlZ2lzdGVycyBhcmUgYSBtZXNzLCBzb21lIGhhdmUgdGhlIGZ1bGwg YWRkcmVzcyB3aGlsZSBvdGhlcnMNCj4gPiBqdXN0DQo+ID4gaGF2ZSB0aGUgYWRkaXRpb25hbCBv ZmZzZXQgZnJvbSBwc3JfbW1pb19iYXNlLg0KPiA+IA0KPiA+IEZvciBCRFcrIHBzcl9tbWlvX2Jh c2UgaXMgbm90aGluZyBtb3JlIHRoYW4gVFJBTlNDT0RFUl9FRFBfT0ZGU0VUICsNCj4gPiAweDgw MCBhbmQgdXNpbmcgaXQgbWFrZXMgbW9yZSBkaWZmaWN1bHQgZm9yIHBlb3BsZSB3aXRoIGFuIFBT Ug0KPiA+IHJlZ2lzdGVyIGFkZHJlc3Mgb3IgUFNSIHJlZ2lzdGVyIG5hbWUgZnJvbSBmcm9tIEJT cGVjIGFzIGk5MTUgYWxzbw0KPiA+IGRvbid0IG1hdGNoIHRoZSBCU3BlYyBuYW1lcy4NCj4gPiBG b3IgSFNXIHBzcl9tbWlvX2Jhc2UgaXMgX0RESV9CVUZfQ1RMX0EgKyAweDgwMCBhbmQgUFNSIHJl Z2lzdGVycw0KPiA+IGFyZQ0KPiA+IG9ubHkgYXZhaWxhYmxlIGluIERESUEuDQo+ID4gDQo+ID4g T3RoZXIgcmVhc29uIHRvIG1ha2UgcmVsYXRpdmUgdG8gdHJhbnNjb2RlciBpcyB0aGF0IHNpbmNl IEJEVyBldmVyeQ0KPiA+IHRyYW5zY29kZXIgaGF2ZSBQU1IgcmVnaXN0ZXJzLCBzbyBpbiB0aGVv cnkgaXQgc2hvdWxkIGJlIHBvc3NpYmxlDQo+ID4gdG8NCj4gPiBoYXZlIFBTUiBlbmFibGVkIGlu IGEgbm9uLWVEUCB0cmFuc2NvZGVyLg0KPiA+IA0KPiA+IFNvIGZvciBCRFcrIHdlIGNhbiB1c2Ug X1RSQU5TMigpIHRvIGdldCB0aGUgcmVnaXN0ZXIgb2Zmc2V0IG9mIGFueQ0KPiA+IFBTUiByZWdp c3RlciBpbiBhbnkgdHJhbnNjb2RlciB3aGlsZSBmb3IgSFNXIHdlIGhhdmUgX0hTV19QU1JfQURK DQo+ID4gdGhhdCB3aWxsIGNhbGN1bGF0ZSB0aGUgcmVnaXN0ZXIgb2Zmc2V0IGZvciB0aGUgc2lu Z2xlIFBTUg0KPiA+IGluc3RhbmNlLA0KPiA+IG5vdGluZyB0aGF0IHdlIGFyZSBhbHJlYWR5IGd1 YXJkZWQgYWJvdXQgdHJ5aW5nIHRvIGVuYWJsZSBQU1IgaW4NCj4gPiBvdGhlcg0KPiA+IHBvcnQg dGhhbiBERElBIG9uIEhTVyBieSB0aGUgJ2lmIChkaWdfcG9ydC0+YmFzZS5wb3J0ICE9IFBPUlRf QSknDQo+ID4gaW4NCj4gPiBpbnRlbF9wc3JfY29tcHV0ZV9jb25maWcoKSwgdGhpcyBjaGVjayBz aG91bGQgb25seSBiZSB2YWxpZCBmb3IgSFNXDQo+ID4gYW5kIHdpbGwgYmUgY2hhbmdlZCBpbiBm dXR1cmUuDQo+ID4gUFNSMiByZWdpc3RlcnMgYW5kIFBTUl9FVkVOVCB3YXMgYWRkZWQgYWZ0ZXIg SGFzd2VsbCBzbyB0aGF0IGlzIHdoeQ0KPiA+IF9QU1JfQURKKCkgaXMgbm90IHVzZWQgaW4gc29t ZSBtYWNyb3MuDQo+ID4gDQo+ID4gVGhlIG9ubHkgcmVnaXN0ZXJzIHRoYXQgY2FuIG5vdCBiZSBy ZWxhdGl2ZSB0byB0cmFuc2NvZGVyIGFyZQ0KPiA+IFBTUl9JTVIgYW5kIFBTUl9JSVIgdGhhdCBh cmUgbm90IHJlbGF0aXZlIHRvIGFueXRoaW5nLCBzbyBrZWVwaW5nDQo+ID4gaXQNCj4gPiBoYXJk Y29kZWQuDQo+ID4gDQo+ID4gQWxzbyByZW1vdmluZyBCRFdfRURQX1BTUl9CQVNFIGZyb20gR1ZU IGJlY2F1c2UgaXQgaXMgbm90IHVzZWQgYXMNCj4gPiBpdA0KPiA+IGlzIHRoZSBvbmx5IFBTUiBy ZWdpc3RlciB0aGF0IEdWVCBoYXZlLg0KPiA+IA0KPiA+IHY1Og0KPiA+IC0gTWFjcm9zIGNoYW5n ZWQgdG8gYmUgbW9yZSBleHBsaWNpdCBhYm91dCBIU1cgKERoaW5ha2FyYW4pDQo+ID4gLSBTcXVh c2hlZCB3aXRoIHRoZSBwYXRjaCB0aGF0IGFkZGVkIHRoZSB0cmFuIHBhcmFtZXRlciB0byB0aGUN Cj4gPiBtYWNyb3MgKERoaW5ha2FyYW4pDQo+ID4gDQo+ID4gQ2M6IERoaW5ha2FyYW4gUGFuZGl5 YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPg0KPiA+IENjOiBSb2RyaWdvIFZpdmkg PHJvZHJpZ28udml2aUBpbnRlbC5jb20+DQo+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3Vs YUBsaW51eC5pbnRlbC5jb20+DQo+ID4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+DQo+ID4gQ2M6IFpoaSBXYW5nIDx6aGkuYS53YW5nQGludGVsLmNv bT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXph QGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2hhbmRs ZXJzLmMgfCAgMSAtDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIHwg MTggKysrKystLS0tDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgIHwg IDMgKy0NCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgfCA1NyArKysr KysrKysrKysrKysrKysrKy0tLS0tDQo+ID4gLS0tLQ0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wc3IuYyAgICB8IDU1ICsrKysrKysrKysrKysrKystLS0tLS0tLS0NCj4gPiAtLS0N Cj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSkN Cj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2hhbmRsZXJz LmMNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9oYW5kbGVycy5jDQo+ID4gaW5kZXgg MThmMDFlZWIyNTEwLi43NDllM2U0MjA0ZjIgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3Z0L2hhbmRsZXJzLmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dnQvaGFuZGxlcnMuYw0KPiA+IEBAIC0yNzc2LDcgKzI3NzYsNiBAQCBzdGF0aWMgaW50IGluaXRf YnJvYWR3ZWxsX21taW9faW5mbyhzdHJ1Y3QNCj4gPiBpbnRlbF9ndnQNCj4gPiAqZ3Z0KQ0KPiA+ ICAJTU1JT19EKENISUNLRU5fUElQRVNMXzEoUElQRV9DKSwgRF9CRFdfUExVUyk7DQo+ID4gIA0K PiA+ICAJTU1JT19EKFdNX01JU0MsIERfQkRXKTsNCj4gPiAtCU1NSU9fRChfTU1JTyhCRFdfRURQ X1BTUl9CQVNFKSwgRF9CRFcpOw0KPiBDaGFuZ2UgdGhpcyB0byBfU1JEX0NUTF9FRFAgdG8ga2Vl cCB0aGUgY2hhbmdlIG5vbi1mdW5jdGlvbmFsPyBBbnkNCj4gY2FzZSwgd2UnbGwNCj4gbmVlZCBh biBhY2sgdG8gbW9kaWZ5IHRoaXMuDQoNClBpbmcgWmhpPw0KRG8geW91IHRoaW5rIHdlIHNob3Vs ZCByZXBsYWNlIHdpdGggX1NSRF9DVExfRURQIG9yIGlzIG9rYXkgdG8gcmVtb3ZlDQppdD8NCg0K PiANCj4gPiAgCU1NSU9fRChfTU1JTygweDY2YzAwKSwgRF9CRFdfUExVUyk7DQo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jDQo+ID4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYw0KPiA+IGluZGV4IDU4MjNmZmIxNzgyMS4uMmEw ZjU4NzFlOWE4IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMNCj4g PiBAQCAtMjQ3MCw3ICsyNDcwLDcgQEAgcHNyX3NvdXJjZV9zdGF0dXMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUNCj4gPiAqZGV2X3ByaXYsDQo+ID4gc3RydWN0IHNlcV9maWxlICptKQ0KPiA+ICAJ CQkiQlVGX09OIiwNCj4gPiAgCQkJIlRHX09OIg0KPiA+ICAJCX07DQo+ID4gLQkJdmFsID0gSTkx NV9SRUFEKEVEUF9QU1IyX1NUQVRVUyk7DQo+ID4gKwkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1Iy X1NUQVRVUyhkZXZfcHJpdi0NCj4gPiA+cHNyLnRyYW5zY29kZXIpKTsNCj4gPiAgCQlzdGF0dXNf dmFsID0gKHZhbCAmIEVEUF9QU1IyX1NUQVRVU19TVEFURV9NQVNLKSA+Pg0KPiA+ICAJCQkgICAg ICBFRFBfUFNSMl9TVEFUVVNfU1RBVEVfU0hJRlQ7DQo+ID4gIAkJaWYgKHN0YXR1c192YWwgPCBB UlJBWV9TSVpFKGxpdmVfc3RhdHVzKSkNCj4gPiBAQCAtMjQ4Niw3ICsyNDg2LDcgQEAgcHNyX3Nv dXJjZV9zdGF0dXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUNCj4gPiAqZGV2X3ByaXYsDQo+ID4g c3RydWN0IHNlcV9maWxlICptKQ0KPiA+ICAJCQkiU1JET0ZGQUNLIiwNCj4gPiAgCQkJIlNSREVO VF9PTiIsDQo+ID4gIAkJfTsNCj4gPiAtCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUl9TVEFUVVMp Ow0KPiA+ICsJCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX1NUQVRVUyhkZXZfcHJpdi0NCj4gPiA+ cHNyLnRyYW5zY29kZXIpKTsNCj4gPiAgCQlzdGF0dXNfdmFsID0gKHZhbCAmIEVEUF9QU1JfU1RB VFVTX1NUQVRFX01BU0spID4+DQo+ID4gIAkJCSAgICAgIEVEUF9QU1JfU1RBVFVTX1NUQVRFX1NI SUZUOw0KPiA+ICAJCWlmIChzdGF0dXNfdmFsIDwgQVJSQVlfU0laRShsaXZlX3N0YXR1cykpDQo+ ID4gQEAgLTI1MjksMTAgKzI1MjksMTAgQEAgc3RhdGljIGludCBpOTE1X2VkcF9wc3Jfc3RhdHVz KHN0cnVjdA0KPiA+IHNlcV9maWxlICptLA0KPiA+IHZvaWQgKmRhdGEpDQo+ID4gIAkJZ290byB1 bmxvY2s7DQo+ID4gIA0KPiA+ICAJaWYgKHBzci0+cHNyMl9lbmFibGVkKSB7DQo+ID4gLQkJdmFs ID0gSTkxNV9SRUFEKEVEUF9QU1IyX0NUTCk7DQo+ID4gKwkJdmFsID0gSTkxNV9SRUFEKEVEUF9Q U1IyX0NUTChkZXZfcHJpdi0NCj4gPiA+cHNyLnRyYW5zY29kZXIpKTsNCj4gPiAgCQllbmFibGVk ID0gdmFsICYgRURQX1BTUjJfRU5BQkxFOw0KPiA+ICAJfSBlbHNlIHsNCj4gPiAtCQl2YWwgPSBJ OTE1X1JFQUQoRURQX1BTUl9DVEwpOw0KPiA+ICsJCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX0NU TChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpKTsNCj4gPiAgCQllbmFibGVkID0gdmFsICYgRURQ X1BTUl9FTkFCTEU7DQo+ID4gIAl9DQo+ID4gIAlzZXFfcHJpbnRmKG0sICJTb3VyY2UgUFNSIGN0 bDogJXMgWzB4JTA4eF1cbiIsDQo+ID4gQEAgLTI1NDUsNyArMjU0NSw4IEBAIHN0YXRpYyBpbnQg aTkxNV9lZHBfcHNyX3N0YXR1cyhzdHJ1Y3QNCj4gPiBzZXFfZmlsZSAqbSwgdm9pZA0KPiA+ICpk YXRhKQ0KPiA+ICAJICogU0tMKyBQZXJmIGNvdW50ZXIgaXMgcmVzZXQgdG8gMCBldmVyeXRpbWUg REMgc3RhdGUgaXMNCj4gPiBlbnRlcmVkDQo+ID4gIAkgKi8NCj4gPiAgCWlmIChJU19IQVNXRUxM KGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7DQo+ID4gLQkJdmFsID0gSTkx NV9SRUFEKEVEUF9QU1JfUEVSRl9DTlQpICYNCj4gPiBFRFBfUFNSX1BFUkZfQ05UX01BU0s7DQo+ ID4gKwkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1JfUEVSRl9DTlQoZGV2X3ByaXYtDQo+ID4gPnBz ci50cmFuc2NvZGVyKSk7DQo+ID4gKwkJdmFsICY9IEVEUF9QU1JfUEVSRl9DTlRfTUFTSzsNCj4g PiAgCQlzZXFfcHJpbnRmKG0sICJQZXJmb3JtYW5jZSBjb3VudGVyOiAldVxuIiwgdmFsKTsNCj4g PiAgCX0NCj4gPiAgDQo+ID4gQEAgLTI1NjMsOCArMjU2NCwxMSBAQCBzdGF0aWMgaW50IGk5MTVf ZWRwX3Bzcl9zdGF0dXMoc3RydWN0DQo+ID4gc2VxX2ZpbGUgKm0sIHZvaWQNCj4gPiAqZGF0YSkN Cj4gPiAgCQkgKiBSZWFkaW5nIGFsbCAzIHJlZ2lzdGVycyBiZWZvcmUgaGFuZCB0byBtaW5pbWl6 ZQ0KPiA+IGNyb3NzaW5nIGENCj4gPiAgCQkgKiBmcmFtZSBib3VuZGFyeSBiZXR3ZWVuIHJlZ2lz dGVyIHJlYWRzDQo+ID4gIAkJICovDQo+ID4gLQkJZm9yIChmcmFtZSA9IDA7IGZyYW1lIDwgUFNS Ml9TVV9TVEFUVVNfRlJBTUVTOyBmcmFtZSArPQ0KPiA+IDMpDQo+ID4gLQkJCXN1X2ZyYW1lc192 YWxbZnJhbWUgLyAzXSA9DQo+ID4gSTkxNV9SRUFEKFBTUjJfU1VfU1RBVFVTKGZyYW1lKSk7DQo+ ID4gKwkJZm9yIChmcmFtZSA9IDA7IGZyYW1lIDwgUFNSMl9TVV9TVEFUVVNfRlJBTUVTOyBmcmFt ZSArPQ0KPiA+IDMpIHsNCj4gPiArCQkJdmFsID0gSTkxNV9SRUFEKFBTUjJfU1VfU1RBVFVTKGRl dl9wcml2LQ0KPiA+ID5wc3IudHJhbnNjb2RlciwNCj4gPiArCQkJCQkJICAgICAgIGZyYW1lKSk7 DQo+ID4gKwkJCXN1X2ZyYW1lc192YWxbZnJhbWUgLyAzXSA9IHZhbDsNCj4gPiArCQl9DQo+ID4g IA0KPiA+ICAJCXNlcV9wdXRzKG0sICJGcmFtZTpcdFBTUjIgU1UgYmxvY2tzOlxuIik7DQo+ID4g IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ID4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ID4gaW5kZXggZGM3NGQzM2MyMGFh Li44OWYyNDAxZTgwYTQgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaA0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gPiBA QCAtNTA4LDYgKzUwOCw3IEBAIHN0cnVjdCBpOTE1X3BzciB7DQo+ID4gIAlib29sIGVuYWJsZWQ7 DQo+ID4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmRwOw0KPiA+ICAJZW51bSBwaXBlIHBpcGU7DQo+ID4g KwllbnVtIHRyYW5zY29kZXIgdHJhbnNjb2RlcjsNCj4gPiAgCWJvb2wgYWN0aXZlOw0KPiA+ICAJ c3RydWN0IHdvcmtfc3RydWN0IHdvcms7DQo+ID4gIAl1bnNpZ25lZCBidXN5X2Zyb250YnVmZmVy X2JpdHM7DQo+ID4gQEAgLTE1MzQsOCArMTUzNSw2IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRl IHsNCj4gPiAgCS8qIE1NSU8gYmFzZSBhZGRyZXNzIGZvciBNSVBJIHJlZ3MgKi8NCj4gPiAgCXUz MiBtaXBpX21taW9fYmFzZTsNCj4gPiAgDQo+ID4gLQl1MzIgcHNyX21taW9fYmFzZTsNCj4gPiAt DQo+ID4gIAl1MzIgcHBzX21taW9fYmFzZTsNCj4gPiAgDQo+ID4gIAl3YWl0X3F1ZXVlX2hlYWRf dCBnbWJ1c193YWl0X3F1ZXVlOw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oDQo+ID4g aW5kZXggMzExNjM0MTU0NzlkLi41NzJhOWY2NjFkNjAgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaA0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgNCj4gPiBAQCAtNDIxMiwxMCArNDIxMiwxOSBAQCBlbnVtIHsNCj4gPiAgI2Rl ZmluZSBQSVBFU1JDKHRyYW5zKQkJX01NSU9fVFJBTlMyKHRyYW5zLCBfUElQRUFTUkMpDQo+ID4g ICNkZWZpbmUgUElQRV9NVUxUKHRyYW5zKQlfTU1JT19UUkFOUzIodHJhbnMsIF9QSVBFX01VTFRf QSkNCj4gPiAgDQo+ID4gLS8qIEhTVysgZURQIFBTUiByZWdpc3RlcnMgKi8NCj4gPiAtI2RlZmlu ZSBIU1dfRURQX1BTUl9CQVNFCTB4NjQ4MDANCj4gPiAtI2RlZmluZSBCRFdfRURQX1BTUl9CQVNF CTB4NmY4MDANCj4gPiAtI2RlZmluZSBFRFBfUFNSX0NUTAkJCQlfTU1JTyhkZXZfcHJpdi0NCj4g PiA+cHNyX21taW9fYmFzZSArDQo+ID4gMCkNCj4gPiArLyoNCj4gPiArICogSFNXKyBlRFAgUFNS IHJlZ2lzdGVycw0KPiA+ICsgKg0KPiA+ICsgKiBIU1cgUFNSIHJlZ2lzdGVycyBhcmUgcmVsYXRp dmUgdG8gRERJQShfRERJX0JVRl9DVExfQSArIDB4ODAwKQ0KPiA+IHdpdGgganVzdA0KPiA+IG9u ZQ0KPiA+ICsgKiBpbnN0YW5jZSBvZiBpdA0KPiA+ICsgKi8NCj4gPiArI2RlZmluZSBfSFNXX0VE UF9QU1JfQkFTRQkJCTB4NjQ4MDANCj4gPiArI2RlZmluZSBfU1JEX0NUTF9BCQkJCTB4NjA4MDAJ CQ0KPiANCj4gCQkJCQkJCS8qIEJEVysgKi8NCj4gPiArI2RlZmluZSBfU1JEX0NUTF9FRFAJCQkJ MHg2RjgwMA0KPiA+ICsjZGVmaW5lIF9IU1dfUFNSX0FESihyZWcpCQkJKChyZWcpIC0gX1NSRF9D VExfQSArDQo+ID4gX0hTV19FRFBfUFNSX0JBU0UpDQo+ID4gKyNkZWZpbmUgX1BTUl9BREoodHJh biwgcmVnKQkJCShJU19IQVNXRUxMKGRldg0KPiA+IF9wcml2KSA/DQo+ID4gX0hTV19QU1JfQURK KHJlZykgOiBfVFJBTlMyKHRyYW4sIHJlZykpDQo+ID4gKyNkZWZpbmUgX01NSU9fUFNSX0FESih0 cmFuLCByZWcpCQlfTU1JTyhfUFNSX0FESih0cmFuLA0KPiA+IHJlZykpDQo+IG5pdDogV2UgY2Fu IHNraXAgdGhpcyBtYWNybw0KPiANCj4gPiArI2RlZmluZSBFRFBfUFNSX0NUTCh0cmFuKQkJCV9N TUlPX1BTUl9BREoodHJhbiwNCj4gPiBfU1JEX0NUTF9BKQ0KPiAjZGVmaW5lIEVEUF9QU1JfQ1RM KHRyYW4pCQkJX01NSU8oX1BTUl9BREoodHJhbiwNCj4gX1NSRF9DVExfQSkpDQo+IA0KPiBJdCBk b2Vzbid0IGRvIG11Y2ggb3RoZXIgdGhhbiBhZGRpbmcgYW5vdGhlciBsYXllci4NCj4gDQo+ID4g ICNkZWZpbmUgICBFRFBfUFNSX0VOQUJMRQkJCSgxIDw8IDMxKQ0KPiA+ICAjZGVmaW5lICAgQkRX X1BTUl9TSU5HTEVfRlJBTUUJCQkoMSA8PCAzMCkNCj4gPiAgI2RlZmluZSAgIEVEUF9QU1JfUkVT VE9SRV9QU1JfQUNUSVZFX0NUWF9NQVNLCSgxIDw8IDI5KSAvKiBTVw0KPiA+IGNhbid0DQo+ID4g bW9kaWZ5ICovDQo+ID4gQEAgLTQyNTIsMTYgKzQyNjEsMjIgQEAgZW51bSB7DQo+ID4gICNkZWZp bmUgICBFRFBfUFNSX1RSQU5TQ09ERVJfQV9TSElGVAkJOA0KPiA+ICAjZGVmaW5lICAgRURQX1BT Ul9UUkFOU0NPREVSX0VEUF9TSElGVAkJMA0KPiA+ICANCj4gPiAtI2RlZmluZSBFRFBfUFNSX0FV WF9DVEwJCQkJX01NSU8oZGV2X3ByaXYtDQo+ID4gPiBwc3JfbW1pb19iYXNlICsgMHgxMCkNCj4g PiArI2RlZmluZSBfU1JEX0FVWF9DVExfQQkJCQkweDYwODEwDQo+ID4gKyNkZWZpbmUgX1NSRF9B VVhfQ1RMX0VEUAkJCTB4NkY4MTANCj4gPiArI2RlZmluZSBFRFBfUFNSX0FVWF9DVEwodHJhbikJ CQlfTU1JT19QU1JfQURKKHQNCj4gPiByYW4sDQo+ID4gX1NSRF9BVVhfQ1RMX0EpDQo+ID4gICNk ZWZpbmUgICBFRFBfUFNSX0FVWF9DVExfVElNRV9PVVRfTUFTSwkJKDMgPDwgMjYpDQo+ID4gICNk ZWZpbmUgICBFRFBfUFNSX0FVWF9DVExfTUVTU0FHRV9TSVpFX01BU0sJKDB4MWYgPDwgMjApDQo+ ID4gICNkZWZpbmUgICBFRFBfUFNSX0FVWF9DVExfUFJFQ0hBUkdFXzJVU19NQVNLCSgweGYgPDwg MTYpDQo+ID4gICNkZWZpbmUgICBFRFBfUFNSX0FVWF9DVExfRVJST1JfSU5URVJSVVBUCSgxIDw8 IDExKQ0KPiA+ICAjZGVmaW5lICAgRURQX1BTUl9BVVhfQ1RMX0JJVF9DTE9DS18yWF9NQVNLCSgw eDdmZikNCj4gPiAgDQo+ID4gLSNkZWZpbmUgRURQX1BTUl9BVVhfREFUQShpKQkJCV9NTUlPKGRl dl9wcml2LQ0KPiA+ID5wc3JfbW1pb19iYXNlICsNCj4gPiAweDE0ICsgKGkpICogNCkgLyogNSBy ZWdpc3RlcnMgKi8NCj4gPiArI2RlZmluZSBfU1JEX0FVWF9EQVRBX0EJCQkJMHg2MDgxNA0KPiA+ ICsjZGVmaW5lIF9TUkRfQVVYX0RBVEFfRURQCQkJMHg2RjgxNA0KPiA+ICsjZGVmaW5lIEVEUF9Q U1JfQVVYX0RBVEEodHJhbiwgaSkJCV9NTUlPKF9QU1JfQURKKHRyYW4sDQo+ID4gX1NSRF9BVVhf REFUQV9BKSArIChpKSArIDQpIC8qIDUgcmVnaXN0ZXJzICovDQo+ID4gIA0KPiA+IC0jZGVmaW5l IEVEUF9QU1JfU1RBVFVTCQkJCV9NTUlPKGRldl9wcml2LQ0KPiA+ID4gcHNyX21taW9fYmFzZSAr IDB4NDApDQo+ID4gKyNkZWZpbmUgX1NSRF9TVEFUVVNfQQkJCQkweDYwODQwDQo+ID4gKyNkZWZp bmUgX1NSRF9TVEFUVVNfRURQCQkJCTB4NkY4NDANCj4gVGhlIGRvY3VtZW50YXRpb24gcmVjb21t ZW5kcyB1c2luZyBsb3dlciBjYXNlIGhleCBudW1iZXJzLg0KDQpPa2F5LCBkb25lDQoNCj4gDQo+ ID4gKyNkZWZpbmUgRURQX1BTUl9TVEFUVVModHJhbikJCQlfTU1JT19QU1JfQURKKHQNCj4gPiBy YW4sDQo+ID4gX1NSRF9TVEFUVVNfQSkNCj4gPiAgI2RlZmluZSAgIEVEUF9QU1JfU1RBVFVTX1NU QVRFX01BU0sJCSg3IDw8IDI5KQ0KPiA+ICAjZGVmaW5lICAgRURQX1BTUl9TVEFUVVNfU1RBVEVf U0hJRlQJCTI5DQo+ID4gICNkZWZpbmUgICBFRFBfUFNSX1NUQVRVU19TVEFURV9JRExFCQkoMCA8 PCAyOSkNCj4gPiBAQCAtNDI4NiwxMCArNDMwMSwxNSBAQCBlbnVtIHsNCj4gPiAgI2RlZmluZSAg IEVEUF9QU1JfU1RBVFVTX1NFTkRJTkdfVFAxCQkoMSA8PCA0KQ0KPiA+ICAjZGVmaW5lICAgRURQ X1BTUl9TVEFUVVNfSURMRV9NQVNLCQkweGYNCj4gPiAgDQo+ID4gLSNkZWZpbmUgRURQX1BTUl9Q RVJGX0NOVAkJX01NSU8oZGV2X3ByaXYtPnBzcl9tbWlvX2Jhc2UgKw0KPiA+IDB4NDQpDQo+ID4g KyNkZWZpbmUgX1NSRF9QRVJGX0NOVF9BCQkJMHg2MDg0NA0KPiA+ICsjZGVmaW5lIF9TUkRfUEVS Rl9DTlRfRURQCQkweDZGODQ0DQo+ID4gKyNkZWZpbmUgRURQX1BTUl9QRVJGX0NOVCh0cmFuKQkJ X01NSU9fUFNSX0FESih0cmFuLA0KPiA+IF9TUkRfUEVSRl9DTlRfQSkNCj4gPiAgI2RlZmluZSAg IEVEUF9QU1JfUEVSRl9DTlRfTUFTSwkJMHhmZmZmZmYNCj4gPiAgDQo+ID4gLSNkZWZpbmUgRURQ X1BTUl9ERUJVRwkJCQlfTU1JTyhkZXZfcHJpdi0NCj4gPiA+IHBzcl9tbWlvX2Jhc2UgKyAweDYw KSAvKiBQU1JfTUFTSyBvbiBTS0wrICovDQo+ID4gKy8qIFBTUl9NQVNLIG9uIFNLTCsgKi8NCj4g PiArI2RlZmluZSBfU1JEX0RFQlVHX0EJCQkJMHg2MDg2MA0KPiA+ICsjZGVmaW5lIF9TUkRfREVC VUdfRURQCQkJCTB4NkY4NjANCj4gPiArI2RlZmluZSBFRFBfUFNSX0RFQlVHKHRyYW4pCQkJX01N SU9fUFNSX0FESih0DQo+ID4gcmFuLA0KPiA+IF9TUkRfREVCVUdfQSkNCj4gPiAgI2RlZmluZSAg IEVEUF9QU1JfREVCVUdfTUFTS19NQVhfU0xFRVAgICAgICAgICAoMSA8PCAyOCkNCj4gPiAgI2Rl ZmluZSAgIEVEUF9QU1JfREVCVUdfTUFTS19MUFNQICAgICAgICAgICAgICAoMSA8PCAyNykNCj4g PiAgI2RlZmluZSAgIEVEUF9QU1JfREVCVUdfTUFTS19NRU1VUCAgICAgICAgICAgICAoMSA8PCAy NikNCj4gPiBAQCAtNDI5Nyw3ICs0MzE3LDkgQEAgZW51bSB7DQo+ID4gICNkZWZpbmUgICBFRFBf UFNSX0RFQlVHX01BU0tfRElTUF9SRUdfV1JJVEUgICAgKDEgPDwgMTYpIC8qDQo+ID4gUmVzZXJ2 ZWQgaW4gSUNMKw0KPiA+ICovDQo+ID4gICNkZWZpbmUgICBFRFBfUFNSX0RFQlVHX0VYSVRfT05f UElYRUxfVU5ERVJSVU4gKDEgPDwgMTUpIC8qIFNLTCsNCj4gPiAqLw0KPiA+ICANCj4gPiAtI2Rl ZmluZSBFRFBfUFNSMl9DVEwJCQlfTU1JTygweDZmOTAwKQ0KPiA+ICsjZGVmaW5lIF9QU1IyX0NU TF9BCQkJMHg2MDkwMA0KPiA+ICsjZGVmaW5lIF9QU1IyX0NUTF9FRFAJCQkweDZGOTAwDQo+ID4g KyNkZWZpbmUgRURQX1BTUjJfQ1RMKHRyYW4pCQlfTU1JT19UUkFOUzIodHJhbiwgX1BTUjJfQ1RM X0EpDQo+ID4gICNkZWZpbmUgICBFRFBfUFNSMl9FTkFCTEUJCSgxIDw8IDMxKQ0KPiA+ICAjZGVm aW5lICAgRURQX1NVX1RSQUNLX0VOQUJMRQkJKDEgPDwgMzApDQo+ID4gICNkZWZpbmUgICBFRFBf WV9DT09SRElOQVRFX1ZBTElECSgxIDw8IDI2KSAvKiBHTEsgYW5kIENOTCsgKi8NCj4gPiBAQCAt NDMyMCw3ICs0MzQyLDcgQEAgZW51bSB7DQo+ID4gICNkZWZpbmUgX1BTUl9FVkVOVF9UUkFOU19D CQkJMHg2Mjg0OA0KPiA+ICAjZGVmaW5lIF9QU1JfRVZFTlRfVFJBTlNfRAkJCTB4NjM4NDgNCj4g PiAgI2RlZmluZSBfUFNSX0VWRU5UX1RSQU5TX0VEUAkJCTB4NkY4NDgNCj4gPiAtI2RlZmluZSBQ U1JfRVZFTlQodHJhbnMpCQkJX01NSU9fVFJBTlMyKHRyYW5zLA0KPiA+IF9QU1JfRVZFTlRfVFJB TlNfQSkNCj4gPiArI2RlZmluZSBQU1JfRVZFTlQodHJhbikJCQkJX01NSU9fVFJBTlMyKHRyDQo+ ID4gYW4sDQo+ID4gX1BTUl9FVkVOVF9UUkFOU19BKQ0KPiA+ICAjZGVmaW5lICBQU1JfRVZFTlRf UFNSMl9XRF9USU1FUl9FWFBJUkUJCSgxIDw8IDE3KQ0KPiA+ICAjZGVmaW5lICBQU1JfRVZFTlRf UFNSMl9ESVNBQkxFRAkJKDEgPDwgMTYpDQo+ID4gICNkZWZpbmUgIFBTUl9FVkVOVF9TVV9ESVJU WV9GSUZPX1VOREVSUlVOCSgxIDw8IDE1KQ0KPiA+IEBAIC00MzM4LDE1ICs0MzYwLDE2IEBAIGVu dW0gew0KPiA+ICAjZGVmaW5lICBQU1JfRVZFTlRfTFBTUF9NT0RFX0VYSVQJCSgxIDw8IDEpDQo+ ID4gICNkZWZpbmUgIFBTUl9FVkVOVF9QU1JfRElTQUJMRQkJCSgxIDw8IDApDQo+ID4gIA0KPiA+ IC0jZGVmaW5lIEVEUF9QU1IyX1NUQVRVUwkJCV9NTUlPKDB4NmY5NDApDQo+ID4gKyNkZWZpbmUg X1BTUjJfU1RBVFVTX0EJCQkweDYwOTQwDQo+ID4gKyNkZWZpbmUgX1BTUjJfU1RBVFVTX0VEUAkJ MHg2Rjk0MA0KPiA+ICsjZGVmaW5lIEVEUF9QU1IyX1NUQVRVUyh0cmFuKQkJX01NSU9fVFJBTlMy KHRyYW4sDQo+ID4gX1BTUjJfU1RBVFVTX0EpDQo+ID4gICNkZWZpbmUgRURQX1BTUjJfU1RBVFVT X1NUQVRFX01BU0sgICAgICgweGYgPDwgMjgpDQo+ID4gICNkZWZpbmUgRURQX1BTUjJfU1RBVFVT X1NUQVRFX1NISUZUICAgIDI4DQo+ID4gIA0KPiA+IC0jZGVmaW5lIF9QU1IyX1NVX1NUQVRVU18w CQkweDZGOTE0DQo+ID4gLSNkZWZpbmUgX1BTUjJfU1VfU1RBVFVTXzEJCTB4NkY5MTgNCj4gPiAt I2RlZmluZSBfUFNSMl9TVV9TVEFUVVNfMgkJMHg2RjkxQw0KPiA+IC0jZGVmaW5lIF9QU1IyX1NV X1NUQVRVUyhpbmRleCkJCV9NTUlPKF9QSUNLX0VWRU4oKGluZGV4DQo+ID4gKSwNCj4gPiBfUFNS Ml9TVV9TVEFUVVNfMCwgX1BTUjJfU1VfU1RBVFVTXzEpKQ0KPiA+IC0jZGVmaW5lIFBTUjJfU1Vf U1RBVFVTKGZyYW1lKQkJKF9QU1IyX1NVX1NUQVRVUygoZnJhbWUNCj4gPiApIC8gMykpDQo+ID4g KyNkZWZpbmUgX1BTUjJfU1VfU1RBVFVTX0EJCTB4NjA5MTQNCj4gPiArI2RlZmluZSBfUFNSMl9T VV9TVEFUVVNfRURQCQkweDZGOTE0DQo+ID4gKyNkZWZpbmUgX1BTUjJfU1VfU1RBVFVTKHRyYW4s IGluZGV4KQlfTU1JTyhfVFJBTlMyKHRyYW4sDQo+ID4gX1BTUjJfU1VfU1RBVFVTX0EpICsNCj4g PiAoaW5kZXgpICogNCkNCj4gPiArI2RlZmluZSBQU1IyX1NVX1NUQVRVUyh0cmFuLCBmcmFtZSkJ KF9QU1IyX1NVX1NUQVRVUyh0cmFuLA0KPiA+IChmcmFtZSkgLyAzKSkNCj4gPiAgI2RlZmluZSBQ U1IyX1NVX1NUQVRVU19TSElGVChmcmFtZSkJKCgoZnJhbWUpICUgMykgKiAxMCkNCj4gPiAgI2Rl ZmluZSBQU1IyX1NVX1NUQVRVU19NQVNLKGZyYW1lKQkoMHgzZmYgPDwNCj4gPiBQU1IyX1NVX1NU QVRVU19TSElGVChmcmFtZSkpDQo+ID4gICNkZWZpbmUgUFNSMl9TVV9TVEFUVVNfRlJBTUVTCQk4 DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jDQo+ID4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYw0KPiA+IGluZGV4IDk2MzY2M2JhMGVk Zi4uZmU5ODA0MTgxOWVjIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Bzci5jDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMNCj4g DQo+IE5vdyB0aGF0IHdlIHRyYWNrIHRoZSB0cmFuc2NvZGVyLCBpbnRlbF9wc3JfaXJxX2NvbnRy b2woKSBjYW4gYmUNCj4gbW9kaWZpZWQNCj4gdG8gZW5hYmxlIGRlYnVnIGludGVycnVwdHMgb25s eSB0aGF0IHRyYW5zY29kZXIsIGNhbiBiZSBkb25lIGFzIGENCj4gZm9sbG93IHVwLg0KDQpTdXJl LCB3aWxsIGJlIGRvbmUgaW4gYSBmb2xsb3cgdXAgcGF0Y2guDQoNCj4gDQo+IA0KPiA+IEBAIC0z OTksNyArMzk5LDcgQEAgc3RhdGljIHZvaWQgaHN3X3Bzcl9zZXR1cF9hdXgoc3RydWN0IGludGVs X2RwDQo+ID4gKmludGVsX2RwKQ0KPiA+ICANCj4gPiAgCUJVSUxEX0JVR19PTihzaXplb2YoYXV4 X21zZykgPiAyMCk7DQo+ID4gIAlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGF1eF9tc2cpOyBpICs9 IDQpDQo+ID4gLQkJSTkxNV9XUklURShFRFBfUFNSX0FVWF9EQVRBKGkgPj4gMiksDQo+ID4gKwkJ STkxNV9XUklURShFRFBfUFNSX0FVWF9EQVRBKGRldl9wcml2LT5wc3IudHJhbnNjb2RlciwgaQ0K PiA+ID4+IDIpLA0KPiA+ICAJCQkgICBpbnRlbF9kcF9wYWNrX2F1eCgmYXV4X21zZ1tpXSwNCj4g PiBzaXplb2YoYXV4X21zZykgLSBpKSk7DQo+ID4gIA0KPiA+ICAJYXV4X2Nsb2NrX2RpdmlkZXIg PSBpbnRlbF9kcC0+Z2V0X2F1eF9jbG9ja19kaXZpZGVyKGludGVsX2RwLA0KPiA+IDApOw0KPiA+ IEBAIC00MTAsNyArNDEwLDcgQEAgc3RhdGljIHZvaWQgaHN3X3Bzcl9zZXR1cF9hdXgoc3RydWN0 IGludGVsX2RwDQo+ID4gKmludGVsX2RwKQ0KPiA+ICANCj4gPiAgCS8qIFNlbGVjdCBvbmx5IHZh bGlkIGJpdHMgZm9yIFNSRF9BVVhfQ1RMICovDQo+ID4gIAlhdXhfY3RsICY9IHBzcl9hdXhfbWFz azsNCj4gPiAtCUk5MTVfV1JJVEUoRURQX1BTUl9BVVhfQ1RMLCBhdXhfY3RsKTsNCj4gPiArCUk5 MTVfV1JJVEUoRURQX1BTUl9BVVhfQ1RMKGRldl9wcml2LT5wc3IudHJhbnNjb2RlciksIGF1eF9j dGwpOw0KPiA+ICB9DQo+ID4gIA0KPiA+ICBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfZW5hYmxlX3Np bmsoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4gPiBAQCAtNTAwLDggKzUwMCw5IEBAIHN0 YXRpYyB2b2lkIGhzd19hY3RpdmF0ZV9wc3IxKHN0cnVjdCBpbnRlbF9kcA0KPiA+ICppbnRlbF9k cCkNCj4gPiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpDQo+ID4gIAkJdmFsIHw9IEVE UF9QU1JfQ1JDX0VOQUJMRTsNCj4gPiAgDQo+ID4gLQl2YWwgfD0gSTkxNV9SRUFEKEVEUF9QU1Jf Q1RMKSAmDQo+ID4gRURQX1BTUl9SRVNUT1JFX1BTUl9BQ1RJVkVfQ1RYX01BU0s7DQo+ID4gLQlJ OTE1X1dSSVRFKEVEUF9QU1JfQ1RMLCB2YWwpOw0KPiA+ICsJdmFsIHw9IChJOTE1X1JFQUQoRURQ X1BTUl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSkgJg0KPiA+ICsJCUVEUF9QU1JfUkVT VE9SRV9QU1JfQUNUSVZFX0NUWF9NQVNLKTsNCj4gPiArCUk5MTVfV1JJVEUoRURQX1BTUl9DVEwo ZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSwgdmFsKTsNCj4gPiAgfQ0KPiA+ICANCj4gPiAgc3Rh dGljIHZvaWQgaHN3X2FjdGl2YXRlX3BzcjIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4g PiBAQCAtNTM3LDkgKzUzOCw5IEBAIHN0YXRpYyB2b2lkIGhzd19hY3RpdmF0ZV9wc3IyKHN0cnVj dCBpbnRlbF9kcA0KPiA+ICppbnRlbF9kcCkNCj4gPiAgCSAqIFBTUjIgSFcgaXMgaW5jb3JyZWN0 bHkgdXNpbmcgRURQX1BTUl9UUDFfVFAzX1NFTCBhbmQgQlNwZWMNCj4gPiBpcw0KPiA+ICAJICog cmVjb21tZW5kaW5nIGtlZXAgdGhpcyBiaXQgdW5zZXQgd2hpbGUgUFNSMiBpcyBlbmFibGVkLg0K PiA+ICAJICovDQo+ID4gLQlJOTE1X1dSSVRFKEVEUF9QU1JfQ1RMLCAwKTsNCj4gPiArCUk5MTVf V1JJVEUoRURQX1BTUl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSwgMCk7DQo+ID4gIA0K PiA+IC0JSTkxNV9XUklURShFRFBfUFNSMl9DVEwsIHZhbCk7DQo+ID4gKwlJOTE1X1dSSVRFKEVE UF9QU1IyX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpLCB2YWwpOw0KPiA+ICB9DQo+ID4g IA0KPiA+ICBzdGF0aWMgYm9vbCBpbnRlbF9wc3IyX2NvbmZpZ192YWxpZChzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwLA0KPiA+IEBAIC02NTgsOCArNjU5LDggQEAgc3RhdGljIHZvaWQgaW50ZWxf cHNyX2FjdGl2YXRlKHN0cnVjdCBpbnRlbF9kcA0KPiA+ICppbnRlbF9kcCkNCj4gPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOw0KPiA+ ICANCj4gPiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpDQo+ID4gLQkJV0FSTl9PTihJ OTE1X1JFQUQoRURQX1BTUjJfQ1RMKSAmIEVEUF9QU1IyX0VOQUJMRSk7DQo+ID4gLQlXQVJOX09O KEk5MTVfUkVBRChFRFBfUFNSX0NUTCkgJiBFRFBfUFNSX0VOQUJMRSk7DQo+ID4gKwkJV0FSTl9P TihJOTE1X1JFQUQoRURQX1BTUjJfQ1RMKGRldl9wcml2LQ0KPiA+ID5wc3IudHJhbnNjb2Rlcikp ICYNCj4gPiBFRFBfUFNSMl9FTkFCTEUpOw0KPiA+ICsJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BT Ul9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSkgJg0KPiA+IEVEUF9QU1JfRU5BQkxFKTsN Cj4gPiAgCVdBUk5fT04oZGV2X3ByaXYtPnBzci5hY3RpdmUpOw0KPiA+ICAJbG9ja2RlcF9hc3Nl cnRfaGVsZCgmZGV2X3ByaXYtPnBzci5sb2NrKTsNCj4gPiAgDQo+ICAgICAgICAgLyogICANCj4g ICAgICAgICAgKiBIU1cgc3BlYyBleHBsaWNpdGx5IHNheXMgUFNSIGlzIHRpZWQgdG8gcG9ydCBB Lg0KPiAgICAgICAgICAqIEJEVysgcGxhdGZvcm1zIHdpdGggRERJIGltcGxlbWVudGF0aW9uIG9m IFBTUiBoYXZlDQo+IGRpZmZlcmVudA0KPiAgICAgICAgICAqIFBTUiByZWdpc3RlcnMgcGVyIHRy YW5zY29kZXIgYW5kIHdlIG9ubHkgaW1wbGVtZW50DQo+IHRyYW5zY29kZXIgRURQDQo+ICAgICAg ICAgICogb25lcy4gU2luY2UgYnkgRGlzcGxheSBkZXNpZ24gdHJhbnNjb2RlciBFRFAgaXMgdGll ZCB0bw0KPiBwb3J0IEENCj4gICAgICAgICAgKiB3ZSBjYW4gc2FmZWx5IGVzY2FwZSBiYXNlZCBv biB0aGUgcG9ydCBBLg0KPiAgICAgICAgICAqLw0KPiAgICAgICAgIGlmIChkaWdfcG9ydC0+YmFz ZS5wb3J0ICE9IFBPUlRfQSkgew0KPiAgICAgICAgICAgICAgICAgRFJNX0RFQlVHX0tNUygiUFNS IGNvbmRpdGlvbiBmYWlsZWQ6IFBvcnQgbm90DQo+IHN1cHBvcnRlZFxuIik7DQo+ICAgICAgICAg ICAgICAgICByZXR1cm47DQo+ICAgICAgICAgfSAgICANCj4gDQo+IE5vdyB0aGF0IHdlIGFsbG93 IFBTUiBvbiB0cmFuc2NvZGVycyB0aGF0IHN1cHBvcnQgaXQsIHdlIGNhbiBjaGFuZ2UNCj4gdGhp cyB0bw0KPiAJaWYgKElTX0hBU1dFTEwoKSAmJiBjcHVfdHJhbnNjb2RlciAhPSBUUkFOU0NPREVS X0VEUCkNCj4gCQlyZXR1cm47DQo+IA0KPiBUaGlzIGNhbiBiZSBhIGZvbGxvdyB1cCB3b3JrLgkN Cg0KV2lsbCBiZSBkb25lIGluIGEgZm9sbG93IHVwIHBhdGNoLg0KDQo+IAkNCj4gDQo+ID4gQEAg LTcyOSw3ICs3MzAsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfZW5hYmxlX3NvdXJjZShzdHJ1 Y3QNCj4gPiBpbnRlbF9kcA0KPiA+ICppbnRlbF9kcCwNCj4gPiAgCWlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpIDwgMTEpDQo+ID4gIAkJbWFzayB8PSBFRFBfUFNSX0RFQlVHX01BU0tfRElTUF9SRUdf V1JJVEU7DQo+ID4gIA0KPiA+IC0JSTkxNV9XUklURShFRFBfUFNSX0RFQlVHLCBtYXNrKTsNCj4g PiArCUk5MTVfV1JJVEUoRURQX1BTUl9ERUJVRyhkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpLCBt YXNrKTsNCj4gPiAgfQ0KPiA+ICANCj4gPiAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX2VuYWJsZV9s b2NrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUNCj4gPiAqZGV2X3ByaXYsDQo+ID4gQEAgLTc0 Miw2ICs3NDMsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfZW5hYmxlX2xvY2tlZChzdHJ1Y3QN Cj4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gPiAgCWRldl9wcml2LT5wc3IucHNy Ml9lbmFibGVkID0gaW50ZWxfcHNyMl9lbmFibGVkKGRldl9wcml2LA0KPiA+IGNydGNfc3RhdGUp Ow0KPiA+ICAJZGV2X3ByaXYtPnBzci5idXN5X2Zyb250YnVmZmVyX2JpdHMgPSAwOw0KPiA+ICAJ ZGV2X3ByaXYtPnBzci5waXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp LQ0KPiA+ID5waXBlOw0KPiA+ICsJZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyID0gY3J0Y19zdGF0 ZS0+Y3B1X3RyYW5zY29kZXI7DQo+ID4gIA0KPiA+ICAJRFJNX0RFQlVHX0tNUygiRW5hYmxpbmcg UFNSJXNcbiIsDQo+ID4gIAkJICAgICAgZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQgPyAiMiIg OiAiMSIpOw0KPiA+IEBAIC03OTEsMjAgKzc5MywyNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3Jf ZXhpdChzdHJ1Y3QNCj4gPiBkcm1faTkxNV9wcml2YXRlDQo+ID4gKmRldl9wcml2KQ0KPiA+ICAJ dTMyIHZhbDsNCj4gPiAgDQo+ID4gIAlpZiAoIWRldl9wcml2LT5wc3IuYWN0aXZlKSB7DQo+ID4g LQkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkNCj4gPiAtCQkJV0FSTl9PTihJOTE1X1JF QUQoRURQX1BTUjJfQ1RMKSAmDQo+ID4gRURQX1BTUjJfRU5BQkxFKTsNCj4gPiAtCQlXQVJOX09O KEk5MTVfUkVBRChFRFBfUFNSX0NUTCkgJiBFRFBfUFNSX0VOQUJMRSk7DQo+ID4gKwkJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gOSkgew0KPiA+ICsJCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BT UjJfQ1RMKGRldl9wcml2LQ0KPiA+ID5wc3IudHJhbnNjb2RlcikpOw0KPiA+ICsJCQlXQVJOX09O KHZhbCAmIEVEUF9QU1IyX0VOQUJMRSk7DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQl2YWwgPSBJ OTE1X1JFQUQoRURQX1BTUl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSk7DQo+ID4gKwkJ V0FSTl9PTih2YWwgJiBFRFBfUFNSX0VOQUJMRSk7DQo+ID4gKw0KPiA+ICAJCXJldHVybjsNCj4g PiAgCX0NCj4gPiAgDQo+ID4gIAlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQpIHsNCj4g PiAtCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUjJfQ1RMKTsNCj4gPiArCQl2YWwgPSBJOTE1X1JF QUQoRURQX1BTUjJfQ1RMKGRldl9wcml2LQ0KPiA+ID5wc3IudHJhbnNjb2RlcikpOw0KPiA+ICAJ CVdBUk5fT04oISh2YWwgJiBFRFBfUFNSMl9FTkFCTEUpKTsNCj4gPiAtCQlJOTE1X1dSSVRFKEVE UF9QU1IyX0NUTCwgdmFsICYgfkVEUF9QU1IyX0VOQUJMRSk7DQo+ID4gKwkJdmFsICY9IH5FRFBf UFNSMl9FTkFCTEU7DQo+ID4gKwkJSTkxNV9XUklURShFRFBfUFNSMl9DVEwoZGV2X3ByaXYtPnBz ci50cmFuc2NvZGVyKSwNCj4gPiB2YWwpOw0KPiA+ICAJfSBlbHNlIHsNCj4gPiAtCQl2YWwgPSBJ OTE1X1JFQUQoRURQX1BTUl9DVEwpOw0KPiA+ICsJCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX0NU TChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpKTsNCj4gPiAgCQlXQVJOX09OKCEodmFsICYgRURQ X1BTUl9FTkFCTEUpKTsNCj4gPiAtCQlJOTE1X1dSSVRFKEVEUF9QU1JfQ1RMLCB2YWwgJiB+RURQ X1BTUl9FTkFCTEUpOw0KPiA+ICsJCXZhbCAmPSB+RURQX1BTUl9FTkFCTEU7DQo+ID4gKwkJSTkx NV9XUklURShFRFBfUFNSX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpLCB2YWwpOw0KPiA+ ICAJfQ0KPiA+ICAJZGV2X3ByaXYtPnBzci5hY3RpdmUgPSBmYWxzZTsNCj4gPiAgfQ0KPiA+IEBA IC04MjYsMTAgKzgzNSwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfZGlzYWJsZV9sb2NrZWQo c3RydWN0DQo+ID4gaW50ZWxfZHANCj4gPiAqaW50ZWxfZHApDQo+ID4gIAlpbnRlbF9wc3JfZXhp dChkZXZfcHJpdik7DQo+ID4gIA0KPiA+ICAJaWYgKGRldl9wcml2LT5wc3IucHNyMl9lbmFibGVk KSB7DQo+ID4gLQkJcHNyX3N0YXR1cyA9IEVEUF9QU1IyX1NUQVRVUzsNCj4gPiArCQlwc3Jfc3Rh dHVzID0gRURQX1BTUjJfU1RBVFVTKGRldl9wcml2LT5wc3IudHJhbnNjb2Rlcik7DQo+ID4gIAkJ cHNyX3N0YXR1c19tYXNrID0gRURQX1BTUjJfU1RBVFVTX1NUQVRFX01BU0s7DQo+ID4gIAl9IGVs c2Ugew0KPiA+IC0JCXBzcl9zdGF0dXMgPSBFRFBfUFNSX1NUQVRVUzsNCj4gPiArCQlwc3Jfc3Rh dHVzID0gRURQX1BTUl9TVEFUVVMoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKTsNCj4gPiAgCQlw c3Jfc3RhdHVzX21hc2sgPSBFRFBfUFNSX1NUQVRVU19TVEFURV9NQVNLOw0KPiA+ICAJfQ0KPiA+ ICANCj4gPiBAQCAtOTU2LDcgKzk2NSw4IEBAIGludCBpbnRlbF9wc3Jfd2FpdF9mb3JfaWRsZShj b25zdCBzdHJ1Y3QNCj4gPiBpbnRlbF9jcnRjX3N0YXRlDQo+ID4gKm5ld19jcnRjX3N0YXRlLA0K PiA+ICAJICogZGVmZW5zaXZlIGVub3VnaCB0byBjb3ZlciBldmVyeXRoaW5nLg0KPiA+ICAJICov DQo+ID4gIA0KPiA+IC0JcmV0dXJuIF9faW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoJmRldl9wcml2 LT51bmNvcmUsDQo+ID4gRURQX1BTUl9TVEFUVVMsDQo+ID4gKwlyZXR1cm4gX19pbnRlbF93YWl0 X2Zvcl9yZWdpc3RlcigmZGV2X3ByaXYtPnVuY29yZSwNCj4gPiArCQkJCQkgRURQX1BTUl9TVEFU VVMoZGV2X3ByaXYtDQo+ID4gPiBwc3IudHJhbnNjb2RlciksDQo+ID4gIAkJCQkJIEVEUF9QU1Jf U1RBVFVTX1NUQVRFX01BU0ssDQo+ID4gIAkJCQkJIEVEUF9QU1JfU1RBVFVTX1NUQVRFX0lETEUs IDIsDQo+ID4gNTAsDQo+ID4gIAkJCQkJIG91dF92YWx1ZSk7DQo+ID4gQEAgLTk3MiwxMCArOTgy LDEwIEBAIHN0YXRpYyBib29sIF9fcHNyX3dhaXRfZm9yX2lkbGVfbG9ja2VkKHN0cnVjdA0KPiA+ IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQ0KPiA+ICAJCXJldHVybiBmYWxzZTsNCj4gPiAg DQo+ID4gIAlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQpIHsNCj4gPiAtCQlyZWcgPSBF RFBfUFNSMl9TVEFUVVM7DQo+ID4gKwkJcmVnID0gRURQX1BTUjJfU1RBVFVTKGRldl9wcml2LT5w c3IudHJhbnNjb2Rlcik7DQo+ID4gIAkJbWFzayA9IEVEUF9QU1IyX1NUQVRVU19TVEFURV9NQVNL Ow0KPiA+ICAJfSBlbHNlIHsNCj4gPiAtCQlyZWcgPSBFRFBfUFNSX1NUQVRVUzsNCj4gPiArCQly ZWcgPSBFRFBfUFNSX1NUQVRVUyhkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpOw0KPiA+ICAJCW1h c2sgPSBFRFBfUFNSX1NUQVRVU19TVEFURV9NQVNLOw0KPiA+ICAJfQ0KPiA+ICANCj4gPiBAQCAt MTIwNiw5ICsxMjE2LDYgQEAgdm9pZCBpbnRlbF9wc3JfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZQ0KPiA+ICpkZXZfcHJpdikNCj4gPiAgCWlmICghSEFTX1BTUihkZXZfcHJpdikpDQo+ID4g IAkJcmV0dXJuOw0KPiA+ICANCj4gPiAtCWRldl9wcml2LT5wc3JfbW1pb19iYXNlID0gSVNfSEFT V0VMTChkZXZfcHJpdikgPw0KPiA+IC0JCUhTV19FRFBfUFNSX0JBU0UgOiBCRFdfRURQX1BTUl9C QVNFOw0KPiA+IC0NCj4gPiAgCWlmICghZGV2X3ByaXYtPnBzci5zaW5rX3N1cHBvcnQpDQo+ID4g IAkJcmV0dXJuOw0KPiANCj4gUmlnaHQgYmVsb3cgdGhpcywgd2UgaGF2ZSANCj4gICAgICAgICB2 YWwgPSBJOTE1X1JFQUQoRURQX1BTUl9JSVIpOw0KPiAgICAgICAgIHZhbCAmPSBFRFBfUFNSX0VS Uk9SKGVkcF9wc3Jfc2hpZnQoVFJBTlNDT0RFUl9FRFApKTsNCj4gICAgICAgICBpZiAodmFsKSB7 DQo+ICAgICAgICAgICAgICAgICBEUk1fREVCVUdfS01TKCJQU1IgaW50ZXJydXB0aW9uIGVycm9y IHNldFxuIik7DQo+ICAgICAgICAgICAgICAgICBkZXZfcHJpdi0+cHNyLnNpbmtfbm90X3JlbGlh YmxlID0gdHJ1ZTsNCj4gICAgICAgICB9ICAgIA0KPiANCj4gVGhlIHdvcmthcm91bmQgY2hlY2tz IG9ubHkgZURQIHRyYW5zY29kZXJzLCBmaXggaXQgdG8gY2hlY2sgYWxsDQo+IHRyYW5zY29kZXJz PyBXZQ0KPiBhcmUgc3RpbGwgZ29pbmcgdG8gYmUgYXNzdW1lIG9ubHkgb25lIGVEUCBzaW5rIGlz IGNvbm5lY3RlZCwgYnV0IGl0DQo+IGNhbiBiZQ0KPiBkcml2ZW4gYnkgYW55IHRyYW5zY29kZXIu IA0KDQpHb29kIGNhdGNoLCB0aGlua2luZyBhZ2FpbiBJIGd1ZXNzIGlzIGJldHRlciBtb3ZlIGl0 IHRvOg0KaW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQoKSBhbmQgY2hlY2sgYWdhaW5zdCB0aGUgdHJh bnNjb2RlciB0aGF0IHdpbGwgYmUNCnVzZWQuDQoNCj4gDQo+IA0KPiA+ICANCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==