From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: "Ser, Simon" Date: Wed, 3 Jul 2019 12:15:25 +0000 Message-ID: <1f2e3f29dfa0c84bdc6c437510dc0b1d5af16c09.camel@intel.com> References: <28eefeec574b63511909dace7df3b7e6f13c3ed1.1560374714.git.rodrigosiqueiramelo@gmail.com> <20190613145440.GQ4173@e110455-lin.cambridge.arm.com> In-Reply-To: Content-Language: en-US Content-ID: <83FD144E521BD847BA4970C1C8B27521@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: "Liviu.Dudau@arm.com" , "rodrigosiqueiramelo@gmail.com" Cc: "Latvala, Petri" , "intel-gfx@lists.freedesktop.org" , "igt-dev@lists.freedesktop.org" , "daniel@ffwll.ch" , "nd@arm.com" , "Brian.Starkey@arm.com" List-ID: T24gVHVlLCAyMDE5LTA2LTE4IGF0IDE4OjU2IC0wMzAwLCBSb2RyaWdvIFNpcXVlaXJhIHdyb3Rl Og0KPiBPbiBUaHUsIEp1biAxMywgMjAxOSBhdCAxMTo1NCBBTSBMaXZpdSBEdWRhdSA8TGl2aXUu RHVkYXVAYXJtLmNvbT4gd3JvdGU6DQo+ID4gT24gV2VkLCBKdW4gMTIsIDIwMTkgYXQgMTE6MTY6 MDJQTSAtMDMwMCwgQnJpYW4gU3RhcmtleSB3cm90ZToNCj4gPiA+IEFkZCBzdXBwb3J0IGluIGln dF9rbXMgZm9yIHdyaXRlYmFjayBjb25uZWN0b3JzLCB3aXRoIHRoZSBhYmlsaXR5DQo+ID4gPiB0 byBhdHRhY2ggZnJhbWVidWZmZXJzLg0KPiA+ID4gDQo+ID4gPiB2NTogUmViYXNlIGFuZCBhZGQg RFJNX0NMSUVOVF9DQVBfV1JJVEVCQUNLX0NPTk5FQ1RPUlMgYmVmb3JlDQo+ID4gPiBkcm1Nb2Rl R2V0UmVzb3VyY2VzKCkNCj4gPiANCj4gPiBSZXZpZXdlZC1ieTogTGl2aXUgRHVkYXUgPGxpdml1 LmR1ZGF1QGFybS5jb20+DQo+ID4gDQo+ID4gVGhhbmtzIGZvciB1cGRhdGluZyB0aGlzISBHaXZl biB0aGF0IEkgaGF2ZSBkb25lIHRoZSBsYXN0IGNoYW5nZXMgYW5kIHRoaXMgaXMNCj4gPiBtb3N0 bHkgYSByZWZyZXNoLCBub3Qgc3VyZSBpZiBJIHNob3VsZCBhZGQgbW9yZSBSZXZpZXdlZC1ieSdz IHRvIHRoZSBvdGhlcg0KPiA+IHBhdGNoZXMuDQo+IA0KPiBUaGFua3MgTGl2aXUhDQo+IA0KPiBJ IGp1c3QgZm9yZ290IHRvIGFkZCBteSBTb0IsIGFuZCBmb3Igc29tZSByZWFzb24sIGdtYWlsIGRv ZXMgbm90IGFsbG93DQo+IG1lIHRvIHNlbmQgYW4gZW1haWwgb24gc29tZW9uZSBiZWhhbGYuDQoN CkZXSVcsIHRoYXQncyBhIGdvb2QgdGhpbmcsIGFuZCBpdCdzIHJlcXVpcmVkIHRvIHBhc3MgRE1B UkMgY2hlY2tzLg0KDQpJbnN0ZWFkLCBnaXQtc2VuZC1lbWFpbCBzaG91bGQgYWRkIGEgRnJvbSBs aW5lIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlDQptZXNzYWdlIHdoZW4gc2VuZGluZyBhIHBhdGNo IG9uIGJlaGFsZiBvZiBzb21lb25lIGVsc2UuIEkgd29uZGVyIHdoYXQNCmhhcHBlbmVkIGhlcmUu DQoNCj4gQnR3LCBJIGNhbiBmaXggaXQgYWZ0ZXINCj4gZXZlcnlib2R5IGFncmVlcyB0aGF0IHRo ZSBrbXNfd3JpdGViYWNrIGlzIHJlYWR5IGZvciBsYW5kaW5nLg0KPiANCj4gDQo+ID4gQmVzdCBy ZWdhcmRzLA0KPiA+IExpdml1DQo+ID4gDQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBCcmlhbiBTdGFy a2V5IDxicmlhbi5zdGFya2V5QGFybS5jb20+DQo+ID4gPiBbcmViYXNlZCBhbmQgdXBkYXRlZCB0 byB0aGUgbGF0ZXN0IGlndCBzdHlsZV0NCj4gPiA+IFNpZ25lZC1vZmYtYnk6IExpdml1IER1ZGF1 IDxsaXZpdS5kdWRhdUBhcm0uY29tPg0KPiA+ID4gLS0tDQo+ID4gPiAgbGliL2lndF9rbXMuYyB8 IDU3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0K PiA+ID4gIGxpYi9pZ3Rfa21zLmggfCAgNiArKysrKysNCj4gPiA+ICAyIGZpbGVzIGNoYW5nZWQs IDYzIGluc2VydGlvbnMoKykNCj4gPiA+IA0KPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21z LmMgYi9saWIvaWd0X2ttcy5jDQo+ID4gPiBpbmRleCBkYTE4OGEzOS4uMTQwZGIzNDYgMTAwNjQ0 DQo+ID4gPiAtLS0gYS9saWIvaWd0X2ttcy5jDQo+ID4gPiArKysgYi9saWIvaWd0X2ttcy5jDQo+ ID4gPiBAQCAtMzI1LDYgKzMyNSw5IEBAIGNvbnN0IGNoYXIgKiBjb25zdCBpZ3RfY29ubmVjdG9y X3Byb3BfbmFtZXNbSUdUX05VTV9DT05ORUNUT1JfUFJPUFNdID0gew0KPiA+ID4gICAgICAgW0lH VF9DT05ORUNUT1JfQlJPQURDQVNUX1JHQl0gPSAiQnJvYWRjYXN0IFJHQiIsDQo+ID4gPiAgICAg ICBbSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJT05dID0gIkNvbnRlbnQgUHJvdGVjdGlv biIsDQo+ID4gPiAgICAgICBbSUdUX0NPTk5FQ1RPUl9WUlJfQ0FQQUJMRV0gPSAidnJyX2NhcGFi bGUiLA0KPiA+ID4gKyAgICAgW0lHVF9DT05ORUNUT1JfV1JJVEVCQUNLX1BJWEVMX0ZPUk1BVFNd ID0gIldSSVRFQkFDS19QSVhFTF9GT1JNQVRTIiwNCj4gPiA+ICsgICAgIFtJR1RfQ09OTkVDVE9S X1dSSVRFQkFDS19GQl9JRF0gPSAiV1JJVEVCQUNLX0ZCX0lEIiwNCj4gPiA+ICsgICAgIFtJR1Rf Q09OTkVDVE9SX1dSSVRFQkFDS19PVVRfRkVOQ0VfUFRSXSA9ICJXUklURUJBQ0tfT1VUX0ZFTkNF X1BUUiIsDQo+ID4gPiAgfTsNCj4gPiA+IA0KPiA+ID4gIC8qDQo+ID4gPiBAQCAtNTU3LDYgKzU2 MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHlwZV9uYW1lIGNvbm5lY3Rvcl90eXBlX25hbWVz W10gPSB7DQo+ID4gPiAgICAgICB7IERSTV9NT0RFX0NPTk5FQ1RPUl9WSVJUVUFMLCAiVmlydHVh bCIgfSwNCj4gPiA+ICAgICAgIHsgRFJNX01PREVfQ09OTkVDVE9SX0RTSSwgIkRTSSIgfSwNCj4g PiA+ICAgICAgIHsgRFJNX01PREVfQ09OTkVDVE9SX0RQSSwgIkRQSSIgfSwNCj4gPiA+ICsgICAg IHsgRFJNX01PREVfQ09OTkVDVE9SX1dSSVRFQkFDSywgIldyaXRlYmFjayIgfSwNCj4gPiA+ICAg ICAgIHt9DQo+ID4gPiAgfTsNCj4gPiA+IA0KPiA+ID4gQEAgLTE4ODksNiArMTg5MywxMiBAQCBz dGF0aWMgdm9pZCBpZ3Rfb3V0cHV0X3Jlc2V0KGlndF9vdXRwdXRfdCAqb3V0cHV0KQ0KPiA+ID4g ICAgICAgaWYgKGlndF9vdXRwdXRfaGFzX3Byb3Aob3V0cHV0LCBJR1RfQ09OTkVDVE9SX0JST0FE Q0FTVF9SR0IpKQ0KPiA+ID4gICAgICAgICAgICAgICBpZ3Rfb3V0cHV0X3NldF9wcm9wX3ZhbHVl KG91dHB1dCwgSUdUX0NPTk5FQ1RPUl9CUk9BRENBU1RfUkdCLA0KPiA+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJST0FEQ0FTVF9SR0JfRlVMTCk7DQo+ID4gPiAr ICAgICBpZiAoaWd0X291dHB1dF9oYXNfcHJvcChvdXRwdXQsIElHVF9DT05ORUNUT1JfV1JJVEVC QUNLX0ZCX0lEKSkNCj4gPiA+ICsgICAgICAgICAgICAgaWd0X291dHB1dF9zZXRfcHJvcF92YWx1 ZShvdXRwdXQsIElHVF9DT05ORUNUT1JfV1JJVEVCQUNLX0ZCX0lELCAwKTsNCj4gPiA+ICsgICAg IGlmIChpZ3Rfb3V0cHV0X2hhc19wcm9wKG91dHB1dCwgSUdUX0NPTk5FQ1RPUl9XUklURUJBQ0tf T1VUX0ZFTkNFX1BUUikpIHsNCj4gPiA+ICsgICAgICAgICAgICAgaWd0X291dHB1dF9jbGVhcl9w cm9wX2NoYW5nZWQob3V0cHV0LCBJR1RfQ09OTkVDVE9SX1dSSVRFQkFDS19PVVRfRkVOQ0VfUFRS KTsNCj4gPiA+ICsgICAgICAgICAgICAgb3V0cHV0LT53cml0ZWJhY2tfb3V0X2ZlbmNlX2ZkID0g LTE7DQo+ID4gPiArICAgICB9DQo+ID4gPiAgfQ0KPiA+ID4gDQo+ID4gPiAgLyoqDQo+ID4gPiBA QCAtMTkwMSw2ICsxOTExLDggQEAgc3RhdGljIHZvaWQgaWd0X291dHB1dF9yZXNldChpZ3Rfb3V0 cHV0X3QgKm91dHB1dCkNCj4gPiA+ICAgKiBGb3Igb3V0cHV0czoNCj4gPiA+ICAgKiAtICVJR1Rf Q09OTkVDVE9SX0NSVENfSUQNCj4gPiA+ICAgKiAtICVJR1RfQ09OTkVDVE9SX0JST0FEQ0FTVF9S R0IgKGlmIGFwcGxpY2FibGUpDQo+ID4gPiArICogLSAlSUdUX0NPTk5FQ1RPUl9XUklURUJBQ0tf RkJfSUQNCj4gPiA+ICsgKiAtICVJR1RfQ09OTkVDVE9SX1dSSVRFQkFDS19PVVRfRkVOQ0VfUFRS DQo+ID4gPiAgICogLSBpZ3Rfb3V0cHV0X292ZXJyaWRlX21vZGUoKSB0byBkZWZhdWx0Lg0KPiA+ ID4gICAqDQo+ID4gPiAgICogRm9yIHBpcGVzOg0KPiA+ID4gQEAgLTE5NzAsNiArMTk4Miw4IEBA IHZvaWQgaWd0X2Rpc3BsYXlfcmVxdWlyZShpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBpbnQgZHJt X2ZkKQ0KPiA+ID4gDQo+ID4gPiAgICAgICBkaXNwbGF5LT5kcm1fZmQgPSBkcm1fZmQ7DQo+ID4g PiANCj4gPiA+ICsgICAgIGRybVNldENsaWVudENhcChkcm1fZmQsIERSTV9DTElFTlRfQ0FQX1dS SVRFQkFDS19DT05ORUNUT1JTLCAxKTsNCj4gPiA+ICsNCj4gPiA+ICAgICAgIHJlc291cmNlcyA9 IGRybU1vZGVHZXRSZXNvdXJjZXMoZGlzcGxheS0+ZHJtX2ZkKTsNCj4gPiA+ICAgICAgIGlmICgh cmVzb3VyY2VzKQ0KPiA+ID4gICAgICAgICAgICAgICBnb3RvIG91dDsNCj4gPiA+IEBAIC0yMjYz LDYgKzIyNzcsMTEgQEAgc3RhdGljIHZvaWQgaWd0X291dHB1dF9maW5pKGlndF9vdXRwdXRfdCAq b3V0cHV0KQ0KPiA+ID4gICAgICAga21zdGVzdF9mcmVlX2Nvbm5lY3Rvcl9jb25maWcoJm91dHB1 dC0+Y29uZmlnKTsNCj4gPiA+ICAgICAgIGZyZWUob3V0cHV0LT5uYW1lKTsNCj4gPiA+ICAgICAg IG91dHB1dC0+bmFtZSA9IE5VTEw7DQo+ID4gPiArDQo+ID4gPiArICAgICBpZiAob3V0cHV0LT53 cml0ZWJhY2tfb3V0X2ZlbmNlX2ZkICE9IC0xKSB7DQo+ID4gPiArICAgICAgICAgICAgIGNsb3Nl KG91dHB1dC0+d3JpdGViYWNrX291dF9mZW5jZV9mZCk7DQo+ID4gPiArICAgICAgICAgICAgIG91 dHB1dC0+d3JpdGViYWNrX291dF9mZW5jZV9mZCA9IC0xOw0KPiA+ID4gKyAgICAgfQ0KPiA+ID4g IH0NCj4gPiA+IA0KPiA+ID4gIC8qKg0KPiA+ID4gQEAgLTMzMjUsNiArMzM0NCwxMSBAQCBzdGF0 aWMgdm9pZCBpZ3RfYXRvbWljX3ByZXBhcmVfY29ubmVjdG9yX2NvbW1pdChpZ3Rfb3V0cHV0X3Qg Km91dHB1dCwgZHJtTW9kZUF0bw0KPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG91dHB1dC0+cHJvcHNbaV0sDQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb3V0cHV0LT52YWx1ZXNbaV0pKTsNCj4gPiA+ICAgICAgIH0NCj4g PiA+ICsNCj4gPiA+ICsgICAgIGlmIChvdXRwdXQtPndyaXRlYmFja19vdXRfZmVuY2VfZmQgIT0g LTEpIHsNCj4gPiA+ICsgICAgICAgICAgICAgY2xvc2Uob3V0cHV0LT53cml0ZWJhY2tfb3V0X2Zl bmNlX2ZkKTsNCj4gPiA+ICsgICAgICAgICAgICAgb3V0cHV0LT53cml0ZWJhY2tfb3V0X2ZlbmNl X2ZkID0gLTE7DQo+ID4gPiArICAgICB9DQo+ID4gPiAgfQ0KPiA+ID4gDQo+ID4gPiAgLyoNCj4g PiA+IEBAIC0zNDQ3LDYgKzM0NzEsMTYgQEAgZGlzcGxheV9jb21taXRfY2hhbmdlZChpZ3RfZGlz cGxheV90ICpkaXNwbGF5LCBlbnVtIGlndF9jb21taXRfc3R5bGUgcykNCj4gPiA+ICAgICAgICAg ICAgICAgZWxzZQ0KPiA+ID4gICAgICAgICAgICAgICAgICAgICAgIC8qIG5vIG1vZGVzZXQgaW4g dW5pdmVyc2FsIGNvbW1pdCwgbm8gY2hhbmdlIHRvIGNydGMuICovDQo+ID4gPiAgICAgICAgICAg ICAgICAgICAgICAgb3V0cHV0LT5jaGFuZ2VkICY9IDEgPDwgSUdUX0NPTk5FQ1RPUl9DUlRDX0lE Ow0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAgICAgICBpZiAocyA9PSBDT01NSVRfQVRPTUlDKSB7 DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgaWYgKGlndF9vdXRwdXRfaXNfcHJvcF9jaGFu Z2VkKG91dHB1dCwgSUdUX0NPTk5FQ1RPUl9XUklURUJBQ0tfT1VUX0ZFTkNFX1BUUikpDQo+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ3RfYXNzZXJ0KG91dHB1dC0+d3JpdGVi YWNrX291dF9mZW5jZV9mZCA+PSAwKTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICBvdXRwdXQtPnZhbHVlc1tJR1RfQ09OTkVDVE9SX1dSSVRFQkFDS19PVVRfRkVOQ0VfUFRS XSA9IDA7DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LT52YWx1ZXNbSUdUX0NP Tk5FQ1RPUl9XUklURUJBQ0tfRkJfSURdID0gMDsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICBpZ3Rfb3V0cHV0X2NsZWFyX3Byb3BfY2hhbmdlZChvdXRwdXQsIElHVF9DT05ORUNUT1JfV1JJ VEVCQUNLX0ZCX0lEKTsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBpZ3Rfb3V0cHV0X2Ns ZWFyX3Byb3BfY2hhbmdlZChvdXRwdXQsIElHVF9DT05ORUNUT1JfV1JJVEVCQUNLX09VVF9GRU5D RV9QVFIpOw0KPiA+ID4gKyAgICAgICAgICAgICB9DQo+ID4gPiAgICAgICB9DQo+ID4gPiANCj4g PiA+ICAgICAgIGlmIChkaXNwbGF5LT5maXJzdF9jb21taXQpIHsNCj4gPiA+IEBAIC00MTE5LDYg KzQxNTMsMjkgQEAgdm9pZCBpZ3RfcGlwZV9yZXF1ZXN0X291dF9mZW5jZShpZ3RfcGlwZV90ICpw aXBlKQ0KPiA+ID4gICAgICAgaWd0X3BpcGVfb2JqX3NldF9wcm9wX3ZhbHVlKHBpcGUsIElHVF9D UlRDX09VVF9GRU5DRV9QVFIsIChwdHJkaWZmX3QpJnBpcGUtPm91dF9mZW5jZV9mZCk7DQo+ID4g PiAgfQ0KPiA+ID4gDQo+ID4gPiArLyoqDQo+ID4gPiArICogaWd0X291dHB1dF9zZXRfd3JpdGVi YWNrX2ZiOg0KPiA+ID4gKyAqIEBvdXRwdXQ6IFRhcmdldCBvdXRwdXQNCj4gPiA+ICsgKiBAZmI6 IFRhcmdldCBmcmFtZWJ1ZmZlcg0KPiA+ID4gKyAqDQo+ID4gPiArICogVGhpcyBmdW5jdGlvbiBz ZXRzIHRoZSBnaXZlbiBAZmIgdG8gYmUgdXNlZCBhcyB0aGUgdGFyZ2V0IGZyYW1lYnVmZmVyIGZv ciB0aGUNCj4gPiA+ICsgKiB3cml0ZWJhY2sgZW5naW5lIGF0IHRoZSBuZXh0IGF0b21pYyBjb21t aXQuIEl0IHdpbGwgYWxzbyByZXF1ZXN0IGEgd3JpdGViYWNrDQo+ID4gPiArICogb3V0IGZlbmNl IHRoYXQgd2lsbCBjb250YWluIHRoZSBmZCBudW1iZXIgb2YgdGhlIG91dCBmZW5jZSBjcmVhdGVk IGJ5IEtNUyBpZg0KPiA+ID4gKyAqIHRoZSBnaXZlbiBAZmIgaXMgdmFsaWQuDQo+ID4gPiArICov DQo+ID4gPiArdm9pZCBpZ3Rfb3V0cHV0X3NldF93cml0ZWJhY2tfZmIoaWd0X291dHB1dF90ICpv dXRwdXQsIHN0cnVjdCBpZ3RfZmIgKmZiKQ0KPiA+ID4gK3sNCj4gPiA+ICsgICAgIGlndF9kaXNw bGF5X3QgKmRpc3BsYXkgPSBvdXRwdXQtPmRpc3BsYXk7DQo+ID4gPiArDQo+ID4gPiArICAgICBM T0coZGlzcGxheSwgIiVzOiBvdXRwdXRfc2V0X3dyaXRlYmFja19mYiglZClcbiIsIG91dHB1dC0+ bmFtZSwgZmIgPyBmYi0+ZmJfaWQgOiAwKTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgIGlndF9vdXRw dXRfc2V0X3Byb3BfdmFsdWUob3V0cHV0LCBJR1RfQ09OTkVDVE9SX1dSSVRFQkFDS19GQl9JRCwg ZmIgPyBmYi0+ZmJfaWQgOiAwKTsNCj4gPiA+ICsgICAgIC8qIG9ubHkgcmVxdWVzdCBhIHdyaXRl YmFjayBvdXQgZmVuY2UgaWYgdGhlIGZyYW1lYnVmZmVyIGlzIHZhbGlkICovDQo+ID4gPiArICAg ICBpZiAoZmIpDQo+ID4gPiArICAgICAgICAgICAgIGlndF9vdXRwdXRfc2V0X3Byb3BfdmFsdWUo b3V0cHV0LCBJR1RfQ09OTkVDVE9SX1dSSVRFQkFDS19PVVRfRkVOQ0VfUFRSLA0KPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwdHJkaWZmX3QpJm91dHB1dC0+ d3JpdGViYWNrX291dF9mZW5jZV9mZCk7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gIC8qKg0K PiA+ID4gICAqIGlndF93YWl0X2Zvcl92YmxhbmtfY291bnQ6DQo+ID4gPiAgICogQGRybV9mZDog QSBkcm0gZmlsZSBkZXNjcmlwdG9yDQo+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuaCBi L2xpYi9pZ3Rfa21zLmgNCj4gPiA+IGluZGV4IGE0NDhhMDAzLi5jYWNjNmI5MCAxMDA2NDQNCj4g PiA+IC0tLSBhL2xpYi9pZ3Rfa21zLmgNCj4gPiA+ICsrKyBiL2xpYi9pZ3Rfa21zLmgNCj4gPiA+ IEBAIC0xMjMsNiArMTIzLDkgQEAgZW51bSBpZ3RfYXRvbWljX2Nvbm5lY3Rvcl9wcm9wZXJ0aWVz IHsNCj4gPiA+ICAgICAgICAgSUdUX0NPTk5FQ1RPUl9CUk9BRENBU1RfUkdCLA0KPiA+ID4gICAg ICAgICBJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVDVElPTiwNCj4gPiA+ICAgICAgICAgSUdU X0NPTk5FQ1RPUl9WUlJfQ0FQQUJMRSwNCj4gPiA+ICsgICAgICAgSUdUX0NPTk5FQ1RPUl9XUklU RUJBQ0tfUElYRUxfRk9STUFUUywNCj4gPiA+ICsgICAgICAgSUdUX0NPTk5FQ1RPUl9XUklURUJB Q0tfRkJfSUQsDQo+ID4gPiArICAgICAgIElHVF9DT05ORUNUT1JfV1JJVEVCQUNLX09VVF9GRU5D RV9QVFIsDQo+ID4gPiAgICAgICAgIElHVF9OVU1fQ09OTkVDVE9SX1BST1BTDQo+ID4gPiAgfTsN Cj4gPiA+IA0KPiA+ID4gQEAgLTM2NCw2ICszNjcsOCBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+ID4g PiAgICAgICBib29sIHVzZV9vdmVycmlkZV9tb2RlOw0KPiA+ID4gICAgICAgZHJtTW9kZU1vZGVJ bmZvIG92ZXJyaWRlX21vZGU7DQo+ID4gPiANCj4gPiA+ICsgICAgIGludDMyX3Qgd3JpdGViYWNr X291dF9mZW5jZV9mZDsNCj4gPiA+ICsNCj4gPiA+ICAgICAgIC8qIGJpdG1hc2sgb2YgY2hhbmdl ZCBwcm9wZXJ0aWVzICovDQo+ID4gPiAgICAgICB1aW50NjRfdCBjaGFuZ2VkOw0KPiA+ID4gDQo+ ID4gPiBAQCAtNDE0LDYgKzQxOSw3IEBAIGlndF9wbGFuZV90ICppZ3Rfb3V0cHV0X2dldF9wbGFu ZV90eXBlX2luZGV4KGlndF9vdXRwdXRfdCAqb3V0cHV0LA0KPiA+ID4gIGlndF9vdXRwdXRfdCAq aWd0X291dHB1dF9mcm9tX2Nvbm5lY3RvcihpZ3RfZGlzcGxheV90ICpkaXNwbGF5LA0KPiA+ID4g ICAgICBkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3IpOw0KPiA+ID4gIGNvbnN0IGRybU1vZGVN b2RlSW5mbyAqaWd0X3N0ZF8xMDI0X21vZGVfZ2V0KHZvaWQpOw0KPiA+ID4gK3ZvaWQgaWd0X291 dHB1dF9zZXRfd3JpdGViYWNrX2ZiKGlndF9vdXRwdXRfdCAqb3V0cHV0LCBzdHJ1Y3QgaWd0X2Zi ICpmYik7DQo+ID4gPiANCj4gPiA+ICBpZ3RfcGxhbmVfdCAqaWd0X3BpcGVfZ2V0X3BsYW5lX3R5 cGUoaWd0X3BpcGVfdCAqcGlwZSwgaW50IHBsYW5lX3R5cGUpOw0KPiA+ID4gIGludCBpZ3RfcGlw ZV9jb3VudF9wbGFuZV90eXBlKGlndF9waXBlX3QgKnBpcGUsIGludCBwbGFuZV90eXBlKTsNCj4g PiA+IC0tDQo+ID4gPiAyLjIxLjANCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiAtLQ0KPiA+ID4gUm9k cmlnbyBTaXF1ZWlyYQ0KPiA+ID4gaHR0cHM6Ly9zaXF1ZWlyYS50ZWNoDQo+ID4gDQo+ID4gDQo+ ID4gLS0NCj4gPiA9PT09PT09PT09PT09PT09PT09PQ0KPiA+ID4gSSB3b3VsZCBsaWtlIHRvIHwN Cj4gPiA+IGZpeCB0aGUgd29ybGQsICB8DQo+ID4gPiBidXQgdGhleSdyZSBub3QgfA0KPiA+ID4g Z2l2aW5nIG1lIHRoZSAgIHwNCj4gPiAgXCBzb3VyY2UgY29kZSEgIC8NCj4gPiAgIC0tLS0tLS0t LS0tLS0tLQ0KPiA+ICAgICDCr1xfKOODhClfL8KvDQo+IA0KPiANCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1k ZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaWd0LWRldg==