From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: "Ser, Simon" Date: Tue, 9 Jul 2019 14:42:54 +0000 Message-ID: <7ec07a018df8ff0b4af1780282e6230c0ad9771a.camel@intel.com> References: <28eefeec574b63511909dace7df3b7e6f13c3ed1.1560374714.git.rodrigosiqueiramelo@gmail.com> <20190613145440.GQ4173@e110455-lin.cambridge.arm.com> <1f2e3f29dfa0c84bdc6c437510dc0b1d5af16c09.camel@intel.com> In-Reply-To: Content-Language: en-US Content-ID: <29BC87C4418DF847A0AB6E0DD6730836@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH V6 i-g-t 1/6] lib/igt_kms: Add writeback support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: "rodrigosiqueiramelo@gmail.com" Cc: "Latvala, Petri" , "intel-gfx@lists.freedesktop.org" , "Liviu.Dudau@arm.com" , "igt-dev@lists.freedesktop.org" , "daniel@ffwll.ch" , "nd@arm.com" , "Brian.Starkey@arm.com" List-ID: T24gVHVlLCAyMDE5LTA3LTA5IGF0IDExOjMyIC0wMzAwLCBSb2RyaWdvIFNpcXVlaXJhIHdyb3Rl Og0KPiBPbiBXZWQsIEp1bCAzLCAyMDE5IGF0IDk6MTUgQU0gU2VyLCBTaW1vbiA8c2ltb24uc2Vy QGludGVsLmNvbT4gd3JvdGU6DQo+ID4gT24gVHVlLCAyMDE5LTA2LTE4IGF0IDE4OjU2IC0wMzAw LCBSb2RyaWdvIFNpcXVlaXJhIHdyb3RlOg0KPiA+ID4gT24gVGh1LCBKdW4gMTMsIDIwMTkgYXQg MTE6NTQgQU0gTGl2aXUgRHVkYXUgPExpdml1LkR1ZGF1QGFybS5jb20+IHdyb3RlOg0KPiA+ID4g PiBPbiBXZWQsIEp1biAxMiwgMjAxOSBhdCAxMToxNjowMlBNIC0wMzAwLCBCcmlhbiBTdGFya2V5 IHdyb3RlOg0KPiA+ID4gPiA+IEFkZCBzdXBwb3J0IGluIGlndF9rbXMgZm9yIHdyaXRlYmFjayBj b25uZWN0b3JzLCB3aXRoIHRoZSBhYmlsaXR5DQo+ID4gPiA+ID4gdG8gYXR0YWNoIGZyYW1lYnVm ZmVycy4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiB2NTogUmViYXNlIGFuZCBhZGQgRFJNX0NMSUVO VF9DQVBfV1JJVEVCQUNLX0NPTk5FQ1RPUlMgYmVmb3JlDQo+ID4gPiA+ID4gZHJtTW9kZUdldFJl c291cmNlcygpDQo+ID4gPiA+IA0KPiA+ID4gPiBSZXZpZXdlZC1ieTogTGl2aXUgRHVkYXUgPGxp dml1LmR1ZGF1QGFybS5jb20+DQo+ID4gPiA+IA0KPiA+ID4gPiBUaGFua3MgZm9yIHVwZGF0aW5n IHRoaXMhIEdpdmVuIHRoYXQgSSBoYXZlIGRvbmUgdGhlIGxhc3QgY2hhbmdlcyBhbmQgdGhpcyBp cw0KPiA+ID4gPiBtb3N0bHkgYSByZWZyZXNoLCBub3Qgc3VyZSBpZiBJIHNob3VsZCBhZGQgbW9y ZSBSZXZpZXdlZC1ieSdzIHRvIHRoZSBvdGhlcg0KPiA+ID4gPiBwYXRjaGVzLg0KPiA+ID4gDQo+ ID4gPiBUaGFua3MgTGl2aXUhDQo+ID4gPiANCj4gPiA+IEkganVzdCBmb3Jnb3QgdG8gYWRkIG15 IFNvQiwgYW5kIGZvciBzb21lIHJlYXNvbiwgZ21haWwgZG9lcyBub3QgYWxsb3cNCj4gPiA+IG1l IHRvIHNlbmQgYW4gZW1haWwgb24gc29tZW9uZSBiZWhhbGYuDQo+ID4gDQo+ID4gRldJVywgdGhh dCdzIGEgZ29vZCB0aGluZywgYW5kIGl0J3MgcmVxdWlyZWQgdG8gcGFzcyBETUFSQyBjaGVja3Mu DQo+ID4gDQo+ID4gSW5zdGVhZCwgZ2l0LXNlbmQtZW1haWwgc2hvdWxkIGFkZCBhIEZyb20gbGlu ZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQ0KPiA+IG1lc3NhZ2Ugd2hlbiBzZW5kaW5nIGEgcGF0 Y2ggb24gYmVoYWxmIG9mIHNvbWVvbmUgZWxzZS4gSSB3b25kZXIgd2hhdA0KPiA+IGhhcHBlbmVk IGhlcmUuDQo+IA0KPiBUaGFuayB5b3UgZm9yIHlvdXIgaGVscC4NCj4gDQo+IEnigJltIHVzaW5n IG5lb211dHQgZm9yIHNlbmRpbmcgcGF0Y2hlcywgYW5kIEnigJlsbCB0YWtlIGEgbG9vayBhdA0K PiBnaXQtc2VuZC1lbWFpbC4gQWRkaXRpb25hbGx5LCBpdCBsb29rcyBsaWtlIEdtYWlsIHJlcXVp cmVzIHRoYXQgSSBhZGQNCj4gYSBuZXcgYWNjb3VudCBpbiBvcmRlciB0byBhbGxvdyBtZSB0byBz ZW5kIHBhdGNoZXMgb24gc29tZW9uZSBiZWhhbGYuDQo+IEnigJlsbCB0YWtlIHNvbWUgdGltZSB0 byByZWFkIGFib3V0IHRoaXMgaXNzdWUsIGFuZCBJIHdpbGwgdHJ5IHRvIHJlc2VuZA0KPiB0aGUg cGF0Y2hzZXQgYWdhaW4uDQoNCldoZW4gc2VuZGluZyBhIHBhdGNoIG9uIHNvbWVvbmUgZWxzZSdz IGJlaGFsZiwgeW91IHNob3VsZG4ndCBzZW5kIHRoZQ0KZS1tYWlsIHdpdGggdGhlIHNlbmRlciAo RnJvbSBoZWFkZXIpIHNldCB0byBzb21lb25lIGVsc2UuIFlvdSBzaG91bGQNCnVzZSB5b3VyIG5v cm1hbCBhZGRyZXNzLiBUaGUgRnJvbSBsaW5lIGluIHRoZSBib2R5IG9mIHRoZSBtZXNzYWdlIHdp bGwNCm1ha2UgR2l0IHVuZGVyc3RhbmQgdGhlIGF1dGhvciBpcyBzb21lb25lIGVsc2UuDQoNClNv IG5vIG5ldyBhY2NvdW50IHNldHVwIHJlcXVpcmVkLg0KDQpJIHJlYWxseSByZWNvbW1lbmQgdXNp bmcgZ2l0LXNlbmQtZW1haWwgZm9yIHBhdGNoZXMuIFRoZXJlIGFyZSB0b28gbWFueQ0Kd2F5cyB0 byBtYWtlIGEgbWlzdGFrZSBpZiB5b3UgdHJ5IHNlbmRpbmcgZW1haWxzIG1hbnVhbGx5LiBIZXJl IGlzIGENCnR1dG9yaWFsOg0KaHR0cHM6Ly9naXQtc2VuZC1lbWFpbC5pby8NCg0KPiBCdHcsIGlm IHlvdSBoYXZlIHRpbWUsIGNvdWxkIHlvdSB0YWtlIGEgbG9vayBpbiB0aGlzIHNlcmllcz8NCg0K U3VyZSwgSSd2ZSBhbHJlYWR5IGJlZ2FuIGxvb2tpbmcgYXQgdGhlIHNlcmllcy4gSSdsbCBjb250 aW51ZSBzb29uLg0KDQpUaGFua3MgZm9yIHlvdXIgd29yayENCg0KPiBCZXN0IHJlZ2FyZHMNCj4g DQo+ID4gPiBCdHcsIEkgY2FuIGZpeCBpdCBhZnRlcg0KPiA+ID4gZXZlcnlib2R5IGFncmVlcyB0 aGF0IHRoZSBrbXNfd3JpdGViYWNrIGlzIHJlYWR5IGZvciBsYW5kaW5nLg0KPiA+ID4gDQo+ID4g PiANCj4gPiA+ID4gQmVzdCByZWdhcmRzLA0KPiA+ID4gPiBMaXZpdQ0KPiA+ID4gPiANCj4gPiA+ ID4gPiBTaWduZWQtb2ZmLWJ5OiBCcmlhbiBTdGFya2V5IDxicmlhbi5zdGFya2V5QGFybS5jb20+ DQo+ID4gPiA+ID4gW3JlYmFzZWQgYW5kIHVwZGF0ZWQgdG8gdGhlIGxhdGVzdCBpZ3Qgc3R5bGVd DQo+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogTGl2aXUgRHVkYXUgPGxpdml1LmR1ZGF1QGFybS5j b20+DQo+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gIGxpYi9pZ3Rfa21zLmMgfCA1NyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiA+ID4gPiAg bGliL2lndF9rbXMuaCB8ICA2ICsrKysrKw0KPiA+ID4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDYz IGluc2VydGlvbnMoKykNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2ln dF9rbXMuYyBiL2xpYi9pZ3Rfa21zLmMNCj4gPiA+ID4gPiBpbmRleCBkYTE4OGEzOS4uMTQwZGIz NDYgMTAwNjQ0DQo+ID4gPiA+ID4gLS0tIGEvbGliL2lndF9rbXMuYw0KPiA+ID4gPiA+ICsrKyBi L2xpYi9pZ3Rfa21zLmMNCj4gPiA+ID4gPiBAQCAtMzI1LDYgKzMyNSw5IEBAIGNvbnN0IGNoYXIg KiBjb25zdCBpZ3RfY29ubmVjdG9yX3Byb3BfbmFtZXNbSUdUX05VTV9DT05ORUNUT1JfUFJPUFNd ID0gew0KPiA+ID4gPiA+ICAgICAgIFtJR1RfQ09OTkVDVE9SX0JST0FEQ0FTVF9SR0JdID0gIkJy b2FkY2FzdCBSR0IiLA0KPiA+ID4gPiA+ICAgICAgIFtJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJP VEVDVElPTl0gPSAiQ29udGVudCBQcm90ZWN0aW9uIiwNCj4gPiA+ID4gPiAgICAgICBbSUdUX0NP Tk5FQ1RPUl9WUlJfQ0FQQUJMRV0gPSAidnJyX2NhcGFibGUiLA0KPiA+ID4gPiA+ICsgICAgIFtJ R1RfQ09OTkVDVE9SX1dSSVRFQkFDS19QSVhFTF9GT1JNQVRTXSA9ICJXUklURUJBQ0tfUElYRUxf Rk9STUFUUyIsDQo+ID4gPiA+ID4gKyAgICAgW0lHVF9DT05ORUNUT1JfV1JJVEVCQUNLX0ZCX0lE XSA9ICJXUklURUJBQ0tfRkJfSUQiLA0KPiA+ID4gPiA+ICsgICAgIFtJR1RfQ09OTkVDVE9SX1dS SVRFQkFDS19PVVRfRkVOQ0VfUFRSXSA9ICJXUklURUJBQ0tfT1VUX0ZFTkNFX1BUUiIsDQo+ID4g PiA+ID4gIH07DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gIC8qDQo+ID4gPiA+ID4gQEAgLTU1Nyw2 ICs1NjAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHR5cGVfbmFtZSBjb25uZWN0b3JfdHlwZV9u YW1lc1tdID0gew0KPiA+ID4gPiA+ICAgICAgIHsgRFJNX01PREVfQ09OTkVDVE9SX1ZJUlRVQUws ICJWaXJ0dWFsIiB9LA0KPiA+ID4gPiA+ICAgICAgIHsgRFJNX01PREVfQ09OTkVDVE9SX0RTSSwg IkRTSSIgfSwNCj4gPiA+ID4gPiAgICAgICB7IERSTV9NT0RFX0NPTk5FQ1RPUl9EUEksICJEUEki IH0sDQo+ID4gPiA+ID4gKyAgICAgeyBEUk1fTU9ERV9DT05ORUNUT1JfV1JJVEVCQUNLLCAiV3Jp dGViYWNrIiB9LA0KPiA+ID4gPiA+ICAgICAgIHt9DQo+ID4gPiA+ID4gIH07DQo+ID4gPiA+ID4g DQo+ID4gPiA+ID4gQEAgLTE4ODksNiArMTg5MywxMiBAQCBzdGF0aWMgdm9pZCBpZ3Rfb3V0cHV0 X3Jlc2V0KGlndF9vdXRwdXRfdCAqb3V0cHV0KQ0KPiA+ID4gPiA+ICAgICAgIGlmIChpZ3Rfb3V0 cHV0X2hhc19wcm9wKG91dHB1dCwgSUdUX0NPTk5FQ1RPUl9CUk9BRENBU1RfUkdCKSkNCj4gPiA+ ID4gPiAgICAgICAgICAgICAgIGlndF9vdXRwdXRfc2V0X3Byb3BfdmFsdWUob3V0cHV0LCBJR1Rf Q09OTkVDVE9SX0JST0FEQ0FTVF9SR0IsDQo+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJST0FEQ0FTVF9SR0JfRlVMTCk7DQo+ID4gPiA+ID4gKyAgICAg aWYgKGlndF9vdXRwdXRfaGFzX3Byb3Aob3V0cHV0LCBJR1RfQ09OTkVDVE9SX1dSSVRFQkFDS19G Ql9JRCkpDQo+ID4gPiA+ID4gKyAgICAgICAgICAgICBpZ3Rfb3V0cHV0X3NldF9wcm9wX3ZhbHVl KG91dHB1dCwgSUdUX0NPTk5FQ1RPUl9XUklURUJBQ0tfRkJfSUQsIDApOw0KPiA+ID4gPiA+ICsg ICAgIGlmIChpZ3Rfb3V0cHV0X2hhc19wcm9wKG91dHB1dCwgSUdUX0NPTk5FQ1RPUl9XUklURUJB Q0tfT1VUX0ZFTkNFX1BUUikpIHsNCj4gPiA+ID4gPiArICAgICAgICAgICAgIGlndF9vdXRwdXRf Y2xlYXJfcHJvcF9jaGFuZ2VkKG91dHB1dCwgSUdUX0NPTk5FQ1RPUl9XUklURUJBQ0tfT1VUX0ZF TkNFX1BUUik7DQo+ID4gPiA+ID4gKyAgICAgICAgICAgICBvdXRwdXQtPndyaXRlYmFja19vdXRf ZmVuY2VfZmQgPSAtMTsNCj4gPiA+ID4gPiArICAgICB9DQo+ID4gPiA+ID4gIH0NCj4gPiA+ID4g PiANCj4gPiA+ID4gPiAgLyoqDQo+ID4gPiA+ID4gQEAgLTE5MDEsNiArMTkxMSw4IEBAIHN0YXRp YyB2b2lkIGlndF9vdXRwdXRfcmVzZXQoaWd0X291dHB1dF90ICpvdXRwdXQpDQo+ID4gPiA+ID4g ICAqIEZvciBvdXRwdXRzOg0KPiA+ID4gPiA+ICAgKiAtICVJR1RfQ09OTkVDVE9SX0NSVENfSUQN Cj4gPiA+ID4gPiAgICogLSAlSUdUX0NPTk5FQ1RPUl9CUk9BRENBU1RfUkdCIChpZiBhcHBsaWNh YmxlKQ0KPiA+ID4gPiA+ICsgKiAtICVJR1RfQ09OTkVDVE9SX1dSSVRFQkFDS19GQl9JRA0KPiA+ ID4gPiA+ICsgKiAtICVJR1RfQ09OTkVDVE9SX1dSSVRFQkFDS19PVVRfRkVOQ0VfUFRSDQo+ID4g PiA+ID4gICAqIC0gaWd0X291dHB1dF9vdmVycmlkZV9tb2RlKCkgdG8gZGVmYXVsdC4NCj4gPiA+ ID4gPiAgICoNCj4gPiA+ID4gPiAgICogRm9yIHBpcGVzOg0KPiA+ID4gPiA+IEBAIC0xOTcwLDYg KzE5ODIsOCBAQCB2b2lkIGlndF9kaXNwbGF5X3JlcXVpcmUoaWd0X2Rpc3BsYXlfdCAqZGlzcGxh eSwgaW50IGRybV9mZCkNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiAgICAgICBkaXNwbGF5LT5kcm1f ZmQgPSBkcm1fZmQ7DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gKyAgICAgZHJtU2V0Q2xpZW50Q2Fw KGRybV9mZCwgRFJNX0NMSUVOVF9DQVBfV1JJVEVCQUNLX0NPTk5FQ1RPUlMsIDEpOw0KPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiAgICAgICByZXNvdXJjZXMgPSBkcm1Nb2RlR2V0UmVzb3VyY2VzKGRp c3BsYXktPmRybV9mZCk7DQo+ID4gPiA+ID4gICAgICAgaWYgKCFyZXNvdXJjZXMpDQo+ID4gPiA+ ID4gICAgICAgICAgICAgICBnb3RvIG91dDsNCj4gPiA+ID4gPiBAQCAtMjI2Myw2ICsyMjc3LDEx IEBAIHN0YXRpYyB2b2lkIGlndF9vdXRwdXRfZmluaShpZ3Rfb3V0cHV0X3QgKm91dHB1dCkNCj4g PiA+ID4gPiAgICAgICBrbXN0ZXN0X2ZyZWVfY29ubmVjdG9yX2NvbmZpZygmb3V0cHV0LT5jb25m aWcpOw0KPiA+ID4gPiA+ICAgICAgIGZyZWUob3V0cHV0LT5uYW1lKTsNCj4gPiA+ID4gPiAgICAg ICBvdXRwdXQtPm5hbWUgPSBOVUxMOw0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArICAgICBpZiAo b3V0cHV0LT53cml0ZWJhY2tfb3V0X2ZlbmNlX2ZkICE9IC0xKSB7DQo+ID4gPiA+ID4gKyAgICAg ICAgICAgICBjbG9zZShvdXRwdXQtPndyaXRlYmFja19vdXRfZmVuY2VfZmQpOw0KPiA+ID4gPiA+ ICsgICAgICAgICAgICAgb3V0cHV0LT53cml0ZWJhY2tfb3V0X2ZlbmNlX2ZkID0gLTE7DQo+ID4g PiA+ID4gKyAgICAgfQ0KPiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gIC8qKg0K PiA+ID4gPiA+IEBAIC0zMzI1LDYgKzMzNDQsMTEgQEAgc3RhdGljIHZvaWQgaWd0X2F0b21pY19w cmVwYXJlX2Nvbm5lY3Rvcl9jb21taXQoaWd0X291dHB1dF90ICpvdXRwdXQsIGRybU1vZGVBdG8N Cj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0 LT5wcm9wc1tpXSwNCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb3V0cHV0LT52YWx1ZXNbaV0pKTsNCj4gPiA+ID4gPiAgICAgICB9DQo+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ICsgICAgIGlmIChvdXRwdXQtPndyaXRlYmFja19vdXRfZmVuY2VfZmQgIT0g LTEpIHsNCj4gPiA+ID4gPiArICAgICAgICAgICAgIGNsb3NlKG91dHB1dC0+d3JpdGViYWNrX291 dF9mZW5jZV9mZCk7DQo+ID4gPiA+ID4gKyAgICAgICAgICAgICBvdXRwdXQtPndyaXRlYmFja19v dXRfZmVuY2VfZmQgPSAtMTsNCj4gPiA+ID4gPiArICAgICB9DQo+ID4gPiA+ID4gIH0NCj4gPiA+ ID4gPiANCj4gPiA+ID4gPiAgLyoNCj4gPiA+ID4gPiBAQCAtMzQ0Nyw2ICszNDcxLDE2IEBAIGRp c3BsYXlfY29tbWl0X2NoYW5nZWQoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgZW51bSBpZ3RfY29t bWl0X3N0eWxlIHMpDQo+ID4gPiA+ID4gICAgICAgICAgICAgICBlbHNlDQo+ID4gPiA+ID4gICAg ICAgICAgICAgICAgICAgICAgIC8qIG5vIG1vZGVzZXQgaW4gdW5pdmVyc2FsIGNvbW1pdCwgbm8g Y2hhbmdlIHRvIGNydGMuICovDQo+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgIG91dHB1 dC0+Y2hhbmdlZCAmPSAxIDw8IElHVF9DT05ORUNUT1JfQ1JUQ19JRDsNCj4gPiA+ID4gPiArDQo+ ID4gPiA+ID4gKyAgICAgICAgICAgICBpZiAocyA9PSBDT01NSVRfQVRPTUlDKSB7DQo+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgIGlmIChpZ3Rfb3V0cHV0X2lzX3Byb3BfY2hhbmdlZChv dXRwdXQsIElHVF9DT05ORUNUT1JfV1JJVEVCQUNLX09VVF9GRU5DRV9QVFIpKQ0KPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlndF9hc3NlcnQob3V0cHV0LT53cml0ZWJh Y2tfb3V0X2ZlbmNlX2ZkID49IDApOw0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgb3V0cHV0LT52YWx1ZXNbSUdUX0NPTk5FQ1RPUl9XUklURUJBQ0tfT1VUX0ZF TkNFX1BUUl0gPSAwOw0KPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBvdXRwdXQtPnZh bHVlc1tJR1RfQ09OTkVDVE9SX1dSSVRFQkFDS19GQl9JRF0gPSAwOw0KPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICBpZ3Rfb3V0cHV0X2NsZWFyX3Byb3BfY2hhbmdlZChvdXRwdXQsIElH VF9DT05ORUNUT1JfV1JJVEVCQUNLX0ZCX0lEKTsNCj4gPiA+ID4gPiArICAgICAgICAgICAgICAg ICAgICAgaWd0X291dHB1dF9jbGVhcl9wcm9wX2NoYW5nZWQob3V0cHV0LCBJR1RfQ09OTkVDVE9S X1dSSVRFQkFDS19PVVRfRkVOQ0VfUFRSKTsNCj4gPiA+ID4gPiArICAgICAgICAgICAgIH0NCj4g PiA+ID4gPiAgICAgICB9DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gICAgICAgaWYgKGRpc3BsYXkt PmZpcnN0X2NvbW1pdCkgew0KPiA+ID4gPiA+IEBAIC00MTE5LDYgKzQxNTMsMjkgQEAgdm9pZCBp Z3RfcGlwZV9yZXF1ZXN0X291dF9mZW5jZShpZ3RfcGlwZV90ICpwaXBlKQ0KPiA+ID4gPiA+ICAg ICAgIGlndF9waXBlX29ial9zZXRfcHJvcF92YWx1ZShwaXBlLCBJR1RfQ1JUQ19PVVRfRkVOQ0Vf UFRSLCAocHRyZGlmZl90KSZwaXBlLT5vdXRfZmVuY2VfZmQpOw0KPiA+ID4gPiA+ICB9DQo+ID4g PiA+ID4gDQo+ID4gPiA+ID4gKy8qKg0KPiA+ID4gPiA+ICsgKiBpZ3Rfb3V0cHV0X3NldF93cml0 ZWJhY2tfZmI6DQo+ID4gPiA+ID4gKyAqIEBvdXRwdXQ6IFRhcmdldCBvdXRwdXQNCj4gPiA+ID4g PiArICogQGZiOiBUYXJnZXQgZnJhbWVidWZmZXINCj4gPiA+ID4gPiArICoNCj4gPiA+ID4gPiAr ICogVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBnaXZlbiBAZmIgdG8gYmUgdXNlZCBhcyB0aGUgdGFy Z2V0IGZyYW1lYnVmZmVyIGZvciB0aGUNCj4gPiA+ID4gPiArICogd3JpdGViYWNrIGVuZ2luZSBh dCB0aGUgbmV4dCBhdG9taWMgY29tbWl0LiBJdCB3aWxsIGFsc28gcmVxdWVzdCBhIHdyaXRlYmFj aw0KPiA+ID4gPiA+ICsgKiBvdXQgZmVuY2UgdGhhdCB3aWxsIGNvbnRhaW4gdGhlIGZkIG51bWJl ciBvZiB0aGUgb3V0IGZlbmNlIGNyZWF0ZWQgYnkgS01TIGlmDQo+ID4gPiA+ID4gKyAqIHRoZSBn aXZlbiBAZmIgaXMgdmFsaWQuDQo+ID4gPiA+ID4gKyAqLw0KPiA+ID4gPiA+ICt2b2lkIGlndF9v dXRwdXRfc2V0X3dyaXRlYmFja19mYihpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgc3RydWN0IGlndF9m YiAqZmIpDQo+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiArICAgICBpZ3RfZGlzcGxheV90ICpkaXNw bGF5ID0gb3V0cHV0LT5kaXNwbGF5Ow0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArICAgICBMT0co ZGlzcGxheSwgIiVzOiBvdXRwdXRfc2V0X3dyaXRlYmFja19mYiglZClcbiIsIG91dHB1dC0+bmFt ZSwgZmIgPyBmYi0+ZmJfaWQgOiAwKTsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKyAgICAgaWd0 X291dHB1dF9zZXRfcHJvcF92YWx1ZShvdXRwdXQsIElHVF9DT05ORUNUT1JfV1JJVEVCQUNLX0ZC X0lELCBmYiA/IGZiLT5mYl9pZCA6IDApOw0KPiA+ID4gPiA+ICsgICAgIC8qIG9ubHkgcmVxdWVz dCBhIHdyaXRlYmFjayBvdXQgZmVuY2UgaWYgdGhlIGZyYW1lYnVmZmVyIGlzIHZhbGlkICovDQo+ ID4gPiA+ID4gKyAgICAgaWYgKGZiKQ0KPiA+ID4gPiA+ICsgICAgICAgICAgICAgaWd0X291dHB1 dF9zZXRfcHJvcF92YWx1ZShvdXRwdXQsIElHVF9DT05ORUNUT1JfV1JJVEVCQUNLX09VVF9GRU5D RV9QVFIsDQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChwdHJkaWZmX3QpJm91dHB1dC0+d3JpdGViYWNrX291dF9mZW5jZV9mZCk7DQo+ID4gPiA+ID4g K30NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gIC8qKg0KPiA+ID4gPiA+ICAgKiBpZ3Rfd2FpdF9m b3JfdmJsYW5rX2NvdW50Og0KPiA+ID4gPiA+ICAgKiBAZHJtX2ZkOiBBIGRybSBmaWxlIGRlc2Ny aXB0b3INCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuaCBiL2xpYi9pZ3Rfa21z LmgNCj4gPiA+ID4gPiBpbmRleCBhNDQ4YTAwMy4uY2FjYzZiOTAgMTAwNjQ0DQo+ID4gPiA+ID4g LS0tIGEvbGliL2lndF9rbXMuaA0KPiA+ID4gPiA+ICsrKyBiL2xpYi9pZ3Rfa21zLmgNCj4gPiA+ ID4gPiBAQCAtMTIzLDYgKzEyMyw5IEBAIGVudW0gaWd0X2F0b21pY19jb25uZWN0b3JfcHJvcGVy dGllcyB7DQo+ID4gPiA+ID4gICAgICAgICBJR1RfQ09OTkVDVE9SX0JST0FEQ0FTVF9SR0IsDQo+ ID4gPiA+ID4gICAgICAgICBJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVDVElPTiwNCj4gPiA+ ID4gPiAgICAgICAgIElHVF9DT05ORUNUT1JfVlJSX0NBUEFCTEUsDQo+ID4gPiA+ID4gKyAgICAg ICBJR1RfQ09OTkVDVE9SX1dSSVRFQkFDS19QSVhFTF9GT1JNQVRTLA0KPiA+ID4gPiA+ICsgICAg ICAgSUdUX0NPTk5FQ1RPUl9XUklURUJBQ0tfRkJfSUQsDQo+ID4gPiA+ID4gKyAgICAgICBJR1Rf Q09OTkVDVE9SX1dSSVRFQkFDS19PVVRfRkVOQ0VfUFRSLA0KPiA+ID4gPiA+ICAgICAgICAgSUdU X05VTV9DT05ORUNUT1JfUFJPUFMNCj4gPiA+ID4gPiAgfTsNCj4gPiA+ID4gPiANCj4gPiA+ID4g PiBAQCAtMzY0LDYgKzM2Nyw4IEBAIHR5cGVkZWYgc3RydWN0IHsNCj4gPiA+ID4gPiAgICAgICBi b29sIHVzZV9vdmVycmlkZV9tb2RlOw0KPiA+ID4gPiA+ICAgICAgIGRybU1vZGVNb2RlSW5mbyBv dmVycmlkZV9tb2RlOw0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ICsgICAgIGludDMyX3Qgd3JpdGVi YWNrX291dF9mZW5jZV9mZDsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gICAgICAgLyogYml0bWFz ayBvZiBjaGFuZ2VkIHByb3BlcnRpZXMgKi8NCj4gPiA+ID4gPiAgICAgICB1aW50NjRfdCBjaGFu Z2VkOw0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IEBAIC00MTQsNiArNDE5LDcgQEAgaWd0X3BsYW5l X3QgKmlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGVfaW5kZXgoaWd0X291dHB1dF90ICpvdXRwdXQs DQo+ID4gPiA+ID4gIGlndF9vdXRwdXRfdCAqaWd0X291dHB1dF9mcm9tX2Nvbm5lY3RvcihpZ3Rf ZGlzcGxheV90ICpkaXNwbGF5LA0KPiA+ID4gPiA+ICAgICAgZHJtTW9kZUNvbm5lY3RvciAqY29u bmVjdG9yKTsNCj4gPiA+ID4gPiAgY29uc3QgZHJtTW9kZU1vZGVJbmZvICppZ3Rfc3RkXzEwMjRf bW9kZV9nZXQodm9pZCk7DQo+ID4gPiA+ID4gK3ZvaWQgaWd0X291dHB1dF9zZXRfd3JpdGViYWNr X2ZiKGlndF9vdXRwdXRfdCAqb3V0cHV0LCBzdHJ1Y3QgaWd0X2ZiICpmYik7DQo+ID4gPiA+ID4g DQo+ID4gPiA+ID4gIGlndF9wbGFuZV90ICppZ3RfcGlwZV9nZXRfcGxhbmVfdHlwZShpZ3RfcGlw ZV90ICpwaXBlLCBpbnQgcGxhbmVfdHlwZSk7DQo+ID4gPiA+ID4gIGludCBpZ3RfcGlwZV9jb3Vu dF9wbGFuZV90eXBlKGlndF9waXBlX3QgKnBpcGUsIGludCBwbGFuZV90eXBlKTsNCj4gPiA+ID4g PiAtLQ0KPiA+ID4gPiA+IDIuMjEuMA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ IC0tDQo+ID4gPiA+ID4gUm9kcmlnbyBTaXF1ZWlyYQ0KPiA+ID4gPiA+IGh0dHBzOi8vc2lxdWVp cmEudGVjaA0KPiA+ID4gPiANCj4gPiA+ID4gLS0NCj4gPiA+ID4gPT09PT09PT09PT09PT09PT09 PT0NCj4gPiA+ID4gPiBJIHdvdWxkIGxpa2UgdG8gfA0KPiA+ID4gPiA+IGZpeCB0aGUgd29ybGQs ICB8DQo+ID4gPiA+ID4gYnV0IHRoZXkncmUgbm90IHwNCj4gPiA+ID4gPiBnaXZpbmcgbWUgdGhl ICAgfA0KPiA+ID4gPiAgXCBzb3VyY2UgY29kZSEgIC8NCj4gPiA+ID4gICAtLS0tLS0tLS0tLS0t LS0NCj4gPiA+ID4gICAgIMKvXF8o44OEKV8vwq8NCj4gDQo+IA0KX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRl dkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pZ3QtZGV2