From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id B12F26EA42 for ; Fri, 5 Apr 2019 07:20:21 +0000 (UTC) From: "Lisovskiy, Stanislav" Date: Fri, 5 Apr 2019 07:20:15 +0000 Message-ID: <56e0ecdaf47e35012af9e57962e63dde29d9e281.camel@intel.com> References: <20190403125450.17648-1-stanislav.lisovskiy@intel.com> <20190403125450.17648-3-stanislav.lisovskiy@intel.com> <20190403141110.GK2665@phenom.ffwll.local> <20190404125627.GT2665@phenom.ffwll.local> In-Reply-To: <20190404125627.GT2665@phenom.ffwll.local> Content-Language: en-US Content-ID: <43A9628DD6B6B04191669342647F0755@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v4 2/2] igt/tests/kms_atomic_transition: Tolerate if can't have all planes 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: "daniel@ffwll.ch" Cc: "Peres, Martin" , "igt-dev@lists.freedesktop.org" List-ID: T24gVGh1LCAyMDE5LTA0LTA0IGF0IDE0OjU2ICswMjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOg0K PiBPbiBUaHUsIEFwciAwNCwgMjAxOSBhdCAxMTo0NTowM0FNICswMDAwLCBMaXNvdnNraXksIFN0 YW5pc2xhdiB3cm90ZToNCj4gPiBPbiBXZWQsIDIwMTktMDQtMDMgYXQgMTY6MTEgKzAyMDAsIERh bmllbCBWZXR0ZXIgd3JvdGU6DQo+ID4gPiBPbiBXZWQsIEFwciAwMywgMjAxOSBhdCAwMzo1NDo1 MFBNICswMzAwLCBTdGFuaXNsYXYgTGlzb3Zza2l5DQo+ID4gPiB3cm90ZToNCj4gPiA+ID4gV2l0 aCBzb21lIHVwY29taW5nIGNoYW5nZXMgaTkxNSBtaWdodCBub3QgYWxsb3cNCj4gPiA+ID4gYWxs IHNwcml0ZSBwbGFuZXMgZW5hYmxlZCwgZGVwZW5kaW5nIG9uIGF2YWlsYWJsZQ0KPiA+ID4gPiBi YW5kd2lkdGggbGltaXRhdGlvbi4gVGh1cyB0aGUgdGVzdCBuZWVkIHRvIGRlY3JlbWVudA0KPiA+ ID4gPiBhbW91bnQgb2YgcGxhbmVzIGFuZCB0cnkgYWdhaW4sIGluc3RlYWQgb2YgcGFuaWNraW5n Lg0KPiA+ID4gPiANCj4gPiA+ID4gdjI6IFJlbW92ZWQgZXhjZXNzaXZlIG5lc3RlZCBjb25kaXRp b25zLCBtYWtpbmcgY29kZSBhIGJpdA0KPiA+ID4gPiAgICAgbW9yZSByZWFkYWJsZShob3BlZnVs bHkpLg0KPiA+ID4gPiANCj4gPiA+ID4gdjM6IFN0b3BwZWQgdXNpbmcgZ2xvYmFsIG5fcGxhbmVz IHZhcmlhYmxlIGFzIGl0IG1pZ2h0IGNhdXNlDQo+ID4gPiA+ICAgICByZXNvdXJjZXMgYmVpbmcg dW5yZWxlYXNlZC4NCj4gPiA+ID4gICAgIFVzaW5nIG5vdyBwYXJtc1tpXS5tYXNrIGFzIGEgd2F5 IHRvIGRldGVybWluZSBpZiBwbGFuZQ0KPiA+ID4gPiAgICAgaGFzIHRvIGJlIGluY2x1ZGVkIGlu dG8gY29tbWl0Lg0KPiA+ID4gPiANCj4gPiA+ID4gdjQ6IFJlbW92ZWQgdW5uZWVkZWQgbl9vdmVy bGF5cyBpbml0aWFsaXphdGlvbi4NCj4gPiA+ID4gDQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFN0 YW5pc2xhdiBMaXNvdnNraXkgPA0KPiA+ID4gPiBzdGFuaXNsYXYubGlzb3Zza2l5QGludGVsLmNv bT4NCj4gPiA+ID4gLS0tDQo+ID4gPiA+ICB0ZXN0cy9rbXNfYXRvbWljX3RyYW5zaXRpb24uYyB8 IDEwNyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLQ0KPiA+ID4gPiAtLS0tDQo+ID4gPiA+IC0t LS0NCj4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCA1MiBkZWxldGlv bnMoLSkNCj4gPiA+ID4gDQo+ID4gPiA+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfYXRvbWljX3Ry YW5zaXRpb24uYw0KPiA+ID4gPiBiL3Rlc3RzL2ttc19hdG9taWNfdHJhbnNpdGlvbi5jDQo+ID4g PiA+IGluZGV4IDYzOGZlMTdlLi5hMDQyMjBmMyAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvdGVzdHMv a21zX2F0b21pY190cmFuc2l0aW9uLmMNCj4gPiA+ID4gKysrIGIvdGVzdHMva21zX2F0b21pY190 cmFuc2l0aW9uLmMNCj4gPiA+ID4gQEAgLTIxMiw5ICsyMTIsMTEgQEAgc3RhdGljIHZvaWQgc2V0 dXBfcGFybXMoaWd0X2Rpc3BsYXlfdA0KPiA+ID4gPiAqZGlzcGxheSwgZW51bSBwaXBlIHBpcGUs DQo+ID4gPiA+ICAJdW5zaWduZWQgc3ByaXRlX3dpZHRoLCBzcHJpdGVfaGVpZ2h0LCBwcmV2X3cs IHByZXZfaDsNCj4gPiA+ID4gIAlib29sIG1heF9zcHJpdGVfd2lkdGgsIG1heF9zcHJpdGVfaGVp Z2h0LCBhbHBoYSA9IHRydWU7DQo+ID4gPiA+ICAJdWludDMyX3Qgbl9wbGFuZXMgPSBkaXNwbGF5 LT5waXBlc1twaXBlXS5uX3BsYW5lczsNCj4gPiA+ID4gLQl1aW50MzJfdCBuX292ZXJsYXlzID0g MCwgb3ZlcmxheXNbbl9wbGFuZXNdOw0KPiA+ID4gPiArCXVpbnQzMl90IG5fb3ZlcmxheXMsIG92 ZXJsYXlzW25fcGxhbmVzXTsNCj4gPiA+ID4gIAlpZ3RfcGxhbmVfdCAqcGxhbmU7DQo+ID4gPiA+ IC0JdWludDMyX3QgaXRlcl9tYXNrID0gMzsNCj4gPiA+ID4gKwl1aW50MzJfdCBpdGVyX21hc2s7 DQo+ID4gPiA+ICsJaW50IHJldHJpZXMgPSBuX3BsYW5lcyAtIDE7DQo+ID4gPiA+ICsJaW50IHJl dCA9IDA7DQo+ID4gPiA+ICANCj4gPiA+ID4gIAlkb19vcl9kaWUoZHJtR2V0Q2FwKGRpc3BsYXkt PmRybV9mZCwNCj4gPiA+ID4gRFJNX0NBUF9DVVJTT1JfV0lEVEgsDQo+ID4gPiA+ICZjdXJzb3Jf d2lkdGgpKTsNCj4gPiA+ID4gIAlpZiAoY3Vyc29yX3dpZHRoID49IG1vZGUtPmhkaXNwbGF5KQ0K PiA+ID4gPiBAQCAtMjI0LDYgKzIyNiwxMCBAQCBzdGF0aWMgdm9pZCBzZXR1cF9wYXJtcyhpZ3Rf ZGlzcGxheV90DQo+ID4gPiA+ICpkaXNwbGF5LCBlbnVtIHBpcGUgcGlwZSwNCj4gPiA+ID4gIAlp ZiAoY3Vyc29yX2hlaWdodCA+PSBtb2RlLT52ZGlzcGxheSkNCj4gPiA+ID4gIAkJY3Vyc29yX2hl aWdodCA9IG1vZGUtPnZkaXNwbGF5Ow0KPiA+ID4gPiAgDQo+ID4gPiA+ICtyZXRyeToNCj4gPiA+ ID4gKwluX292ZXJsYXlzID0gMDsNCj4gPiA+ID4gKwlpdGVyX21hc2sgPSAzOw0KPiA+ID4gPiAr DQo+ID4gPiA+ICAJZm9yX2VhY2hfcGxhbmVfb25fcGlwZShkaXNwbGF5LCBwaXBlLCBwbGFuZSkg ew0KPiA+ID4gPiAgCQlpbnQgaSA9IHBsYW5lLT5pbmRleDsNCj4gPiA+ID4gIA0KPiA+ID4gPiBA QCAtMjM4LDEyICsyNDQsMTYgQEAgc3RhdGljIHZvaWQgc2V0dXBfcGFybXMoaWd0X2Rpc3BsYXlf dA0KPiA+ID4gPiAqZGlzcGxheSwgZW51bSBwaXBlIHBpcGUsDQo+ID4gPiA+ICAJCQlwYXJtc1tp XS5oZWlnaHQgPSBjdXJzb3JfaGVpZ2h0Ow0KPiA+ID4gPiAgCQkJcGFybXNbaV0ubWFzayA9IDEg PDwgMTsNCj4gPiA+ID4gIAkJfSBlbHNlIHsNCj4gPiA+ID4gLQkJCXBhcm1zW2ldLmZiID0gc3By aXRlX2ZiOw0KPiA+ID4gPiAtCQkJcGFybXNbaV0ubWFzayA9IDEgPDwgMjsNCj4gPiA+ID4gLQ0K PiA+ID4gPiAtCQkJaXRlcl9tYXNrIHw9IDEgPDwgMjsNCj4gPiA+ID4gLQ0KPiA+ID4gPiAtCQkJ b3ZlcmxheXNbbl9vdmVybGF5cysrXSA9IGk7DQo+ID4gPiA+ICsJCQlpZiAobl9vdmVybGF5cyA8 IChuX3BsYW5lcyAtIDIpKSB7DQo+ID4gPiA+ICsJCQkJcGFybXNbaV0uZmIgPSBzcHJpdGVfZmI7 DQo+ID4gPiA+ICsJCQkJcGFybXNbaV0ubWFzayA9IDEgPDwgMjsNCj4gPiA+ID4gKwkJCQlpdGVy X21hc2sgfD0gMSA8PCAyOw0KPiA+ID4gPiArCQkJCW92ZXJsYXlzW25fb3ZlcmxheXMrK10gPSBp Ow0KPiA+ID4gPiArCQkJfQ0KPiA+ID4gPiArCQkJZWxzZSB7DQo+ID4gPiA+ICsJCQkJcGFybXNb aV0uZmIgPSBOVUxMOw0KPiA+ID4gPiArCQkJCXBhcm1zW2ldLm1hc2sgPSAwOw0KPiA+ID4gPiAr CQkJfQ0KPiA+ID4gPiAgCQl9DQo+ID4gPiA+ICAJfQ0KPiA+ID4gPiAgDQo+ID4gPiA+IEBAIC0y NzgsMTYgKzI4OCwxMyBAQCBzdGF0aWMgdm9pZCBzZXR1cF9wYXJtcyhpZ3RfZGlzcGxheV90DQo+ ID4gPiA+ICpkaXNwbGF5LCBlbnVtIHBpcGUgcGlwZSwNCj4gPiA+ID4gIAkgKiBQcmUgZ2VuOSBu b3QgYWxsIHNpemVzIGFyZSBzdXBwb3J0ZWQsIGZpbmQgdGhlDQo+ID4gPiA+IGJpZ2dlc3QNCj4g PiA+ID4gcG9zc2libGUNCj4gPiA+ID4gIAkgKiBzaXplIHRoYXQgY2FuIGJlIGVuYWJsZWQgb24g YWxsIHNwcml0ZSBwbGFuZXMuDQo+ID4gPiA+ICAJICovDQo+ID4gPiA+IC1yZXRyeToNCj4gPiA+ ID4gIAlwcmV2X3cgPSBzcHJpdGVfd2lkdGggPSBjdXJzb3Jfd2lkdGg7DQo+ID4gPiA+ICAJcHJl dl9oID0gc3ByaXRlX2hlaWdodCA9IGN1cnNvcl9oZWlnaHQ7DQo+ID4gPiA+ICANCj4gPiA+ID4g IAltYXhfc3ByaXRlX3dpZHRoID0gKHNwcml0ZV93aWR0aCA9PSBtb2RlLT5oZGlzcGxheSk7DQo+ ID4gPiA+ICAJbWF4X3Nwcml0ZV9oZWlnaHQgPSAoc3ByaXRlX2hlaWdodCA9PSBtb2RlLT52ZGlz cGxheSk7DQo+ID4gPiA+ICANCj4gPiA+ID4gLQl3aGlsZSAoMSkgew0KPiA+ID4gPiAtCQlpbnQg cmV0Ow0KPiA+ID4gPiAtDQo+ID4gPiA+ICsJd2hpbGUgKCFtYXhfc3ByaXRlX3dpZHRoICYmICFt YXhfc3ByaXRlX2hlaWdodCkgew0KPiA+ID4gPiAgCQlzZXRfc3ByaXRlX3doKGRpc3BsYXksIHBp cGUsIHBhcm1zLCBzcHJpdGVfZmIsDQo+ID4gPiA+ICAJCQkgICAgICBhbHBoYSwgc3ByaXRlX3dp ZHRoLA0KPiA+ID4gPiBzcHJpdGVfaGVpZ2h0KTsNCj4gPiA+ID4gIA0KPiA+ID4gPiBAQCAtMjk1 LDU0ICszMDIsNDkgQEAgcmV0cnk6DQo+ID4gPiA+ICAJCXJldCA9IGlndF9kaXNwbGF5X3RyeV9j b21taXRfYXRvbWljKGRpc3BsYXksDQo+ID4gPiA+IERSTV9NT0RFX0FUT01JQ19URVNUX09OTFkg fCBEUk1fTU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwNCj4gPiA+ID4gTlVMTCk7DQo+ID4gPiA+ ICAJCWlndF9hc3NlcnQoIWlzX2F0b21pY19jaGVja19mYWlsdXJlX2Vycm5vKHJldCkpDQo+ID4g PiA+IDsNCj4gPiA+ID4gIA0KPiA+ID4gPiAtCQlpZiAoaXNfYXRvbWljX2NoZWNrX3BsYW5lX3Np emVfZXJybm8ocmV0KSkgew0KPiA+ID4gPiAtCQkJaWYgKGN1cnNvcl93aWR0aCA9PSBzcHJpdGVf d2lkdGggJiYNCj4gPiA+ID4gLQkJCSAgICBjdXJzb3JfaGVpZ2h0ID09IHNwcml0ZV9oZWlnaHQp IHsNCj4gPiA+ID4gLQkJCQlpZ3RfYXNzZXJ0X2YoYWxwaGEsDQo+ID4gPiA+IC0JCQkJCSAgICAg ICJDYW5ub3QgY29uZmlndXJlDQo+ID4gPiA+IHRoZQ0KPiA+ID4gPiB0ZXN0IHdpdGggYWxsIHNw cml0ZSBwbGFuZXMgZW5hYmxlZFxuIik7DQo+ID4gPiA+IC0NCj4gPiA+ID4gLQkJCQkvKiByZXRy eSBvbmNlIHdpdGggWFJHQiBmb3JtYXQuDQo+ID4gPiA+ICovDQo+ID4gPiA+IC0JCQkJYWxwaGEg PSBmYWxzZTsNCj4gPiA+ID4gLQkJCQlnb3RvIHJldHJ5Ow0KPiA+ID4gPiAtCQkJfQ0KPiA+ID4g PiAtDQo+ID4gPiA+IC0JCQlzcHJpdGVfd2lkdGggPSBwcmV2X3c7DQo+ID4gPiA+IC0JCQlzcHJp dGVfaGVpZ2h0ID0gcHJldl9oOw0KPiA+ID4gPiAtDQo+ID4gPiA+IC0JCQlpZiAobWF4X3Nwcml0 ZV93aWR0aCAmJg0KPiA+ID4gPiBtYXhfc3ByaXRlX2hlaWdodCkgew0KPiA+ID4gPiAtCQkJCXNl dF9zcHJpdGVfd2goZGlzcGxheSwgcGlwZSwNCj4gPiA+ID4gcGFybXMsDQo+ID4gPiA+IHNwcml0 ZV9mYiwNCj4gPiA+ID4gLQkJCQkJICAgICAgYWxwaGEsDQo+ID4gPiA+IHNwcml0ZV93aWR0aCwN Cj4gPiA+ID4gc3ByaXRlX2hlaWdodCk7DQo+ID4gPiA+IC0JCQkJYnJlYWs7DQo+ID4gPiA+IC0J CQl9DQo+ID4gPiA+IC0NCj4gPiA+ID4gLQkJCWlmICghbWF4X3Nwcml0ZV93aWR0aCkNCj4gPiA+ ID4gLQkJCQltYXhfc3ByaXRlX3dpZHRoID0gdHJ1ZTsNCj4gPiA+ID4gLQkJCWVsc2UNCj4gPiA+ ID4gLQkJCQltYXhfc3ByaXRlX2hlaWdodCA9IHRydWU7DQo+ID4gPiA+IC0JCX0gZWxzZSB7DQo+ ID4gPiA+ICsJCWlmICghaXNfYXRvbWljX2NoZWNrX3BsYW5lX3NpemVfZXJybm8ocmV0KSkgew0K PiA+ID4gPiAgCQkJcHJldl93ID0gc3ByaXRlX3dpZHRoOw0KPiA+ID4gPiAgCQkJcHJldl9oID0g c3ByaXRlX2hlaWdodDsNCj4gPiA+ID4gLQkJfQ0KPiA+ID4gPiAtDQo+ID4gPiA+IC0JCWlmICgh bWF4X3Nwcml0ZV93aWR0aCkgew0KPiA+ID4gPiAtCQkJc3ByaXRlX3dpZHRoICo9IDI7DQo+ID4g PiA+IC0NCj4gPiA+ID4gKyAgICANCj4gPiA+ID4gKwkJCXNwcml0ZV93aWR0aCAqPSBtYXhfc3By aXRlX3dpZHRoID8gMSA6DQo+ID4gPiA+IDI7DQo+ID4gPiA+ICAJCQlpZiAoc3ByaXRlX3dpZHRo ID49IG1vZGUtPmhkaXNwbGF5KSB7DQo+ID4gPiA+ICAJCQkJbWF4X3Nwcml0ZV93aWR0aCA9IHRy dWU7DQo+ID4gPiA+IC0NCj4gPiA+ID4gIAkJCQlzcHJpdGVfd2lkdGggPSBtb2RlLT5oZGlzcGxh eTsNCj4gPiA+ID4gIAkJCX0NCj4gPiA+ID4gLQkJfSBlbHNlIGlmICghbWF4X3Nwcml0ZV9oZWln aHQpIHsNCj4gPiA+ID4gLQkJCXNwcml0ZV9oZWlnaHQgKj0gMjsNCj4gPiA+ID4gIA0KPiA+ID4g PiArCQkJc3ByaXRlX2hlaWdodCAqPSBtYXhfc3ByaXRlX2hlaWdodCA/IDENCj4gPiA+ID4gOiAy Ow0KPiA+ID4gPiAgCQkJaWYgKHNwcml0ZV9oZWlnaHQgPj0gbW9kZS0+dmRpc3BsYXkpIHsNCj4g PiA+ID4gIAkJCQltYXhfc3ByaXRlX2hlaWdodCA9IHRydWU7DQo+ID4gPiA+IC0NCj4gPiA+ID4g IAkJCQlzcHJpdGVfaGVpZ2h0ID0gbW9kZS0+dmRpc3BsYXk7DQo+ID4gPiA+ICAJCQl9DQo+ID4g PiA+IC0JCX0gZWxzZQ0KPiA+ID4gPiAtCQkJLyogTWF4IHNpemVkIHNwcml0ZXMgZm9yIGFsbCEg Ki8NCj4gPiA+ID4gLQkJCWJyZWFrOw0KPiA+ID4gPiArCQkJY29udGludWU7DQo+ID4gPiA+ICsJ CX0NCj4gPiA+ID4gKw0KPiA+ID4gPiArCQlpZiAoY3Vyc29yX3dpZHRoID09IHNwcml0ZV93aWR0 aCAmJg0KPiA+ID4gPiArCQkgICAgY3Vyc29yX2hlaWdodCA9PSBzcHJpdGVfaGVpZ2h0KSB7DQo+ ID4gPiA+ICsJCQlpZ3RfYXNzZXJ0X2YocmV0cmllcyA+IDAsDQo+ID4gPiA+ICsJCQkJICAgICAg IkNhbm5vdCBjb25maWd1cmUgdGhlDQo+ID4gPiA+IHRlc3Qgd2l0aA0KPiA+ID4gPiBhbGwgc3By aXRlIHBsYW5lcyBlbmFibGVkXG4iKTsNCj4gPiA+ID4gKwkJCS0tcmV0cmllczsNCj4gPiA+ID4g KwkJCS8qIHJldHJ5IG9uY2Ugd2l0aCBYUkdCIGZvcm1hdC4gKi8NCj4gPiA+ID4gKwkJCWlmIChh bHBoYSkgew0KPiA+ID4gPiArCQkJCWFscGhhID0gZmFsc2U7DQo+ID4gPiA+ICsJCQkJaWd0X3dh cm4oIlJlbW92ZWQgYWxwaGFcbiIpOw0KPiA+ID4gPiArCQkJfQ0KPiA+ID4gPiArCQkJZWxzZSB7 DQo+ID4gPiA+ICsJCQkJaWd0X2Fzc2VydF9mKG5fcGxhbmVzID4gMSwgIk5vDQo+ID4gPiA+IHBs YW5lcw0KPiA+ID4gPiBsZWZ0IHRvIHByb2NlZWQgd2l0aCEiKTsNCj4gPiA+ID4gKwkJCQluX3Bs YW5lcy0tOw0KPiA+ID4gDQo+ID4gPiBTYW1lIGNvbW1lbnQgYXMgd2l0aCBrbXNfY29uY3VycmVu dCBhbmQgYWxsIHRoZSBvdGhlciBwbGFuZQ0KPiA+ID4gdGVzdHM6DQo+ID4gPiBKdXN0DQo+ID4g PiBkcm9wcGluZyB0aGUgbGFzdCBwbGFuZSByZWR1Y2VzIG91ciB0ZXN0IGNvdmVyYWdlLCB3ZSBu ZWVkIHRvDQo+ID4gPiByYW5kb21pemUNCj4gPiA+IHdoaWNoIHBsYW5lIHdlIGRyb3AuDQo+ID4g DQo+ID4gSSB0aGluayB0aGF0IGlzIGEgZ29vZCBpZGVhLCBJJ20gbm93IHRlc3RpbmcgYSBwYXRj aCB3aGljaA0KPiA+IHJhbmRvbWl6ZXMNCj4gPiB3aGljaCBvbmUgb2YgYXZhaWxhYmxlIHBsYW5l cyBpcyBnb2luZyB0byBiZSByZW1vdmVkLg0KPiA+IA0KPiA+IEZvciB0aGUgbGF0dGVyIGNoYW5n ZSBJIHdvdWxkIGxlYXZlIGZvciBmdXJ0aGVyIHBhdGNoZXMgYXMNCj4gPiBjdXJyZW50bHkgDQo+ ID4gaXQgZG9lc24ndCBtYXR0ZXIgYW55d2F5LCBidXQgd2UgbmVlZCB0aGUgaXNzdWVzIHJlbGF0 ZWQgdG8gbmV3IGJ3DQo+ID4gcmVxdWlyZW1lbnRzIHRvIGJlIGZpeGVkLg0KPiANCj4gSnVzdCBk b2luZyBzb21lIGJ1ZyBzY3J1YiBhbmQgd2UgaGF2ZSBzb21lIEVJTlZBTCBmYWlsdXJlcyBsaWtl IHRoaXMNCj4gYWxsDQo+IG92ZXIgdGhlIHBsYWNlLiBTbyBJIGd1ZXNzIHRoZXJlJ3Mgc29tZSBv dGhlciBjYXNlcyB3aGVyZSB3ZSByZWplY3QNCj4gY29uZmlncyBpbiB0aGUga2VybmVsIGFuZCB0 aGVuIHRoZSB0ZXN0IGZhbGxzIG92ZXIuIFdlJ2xsIG5lZWQgdGhpcw0KPiAoaXQncw0KPiBob3cg YXRvbWljIGlzIG1lYW50IHRvIHdvcmsgcmVhbGx5KS4NCj4gDQo+IEFsc28sIHRoZSBidyBiYW5k LWFpZCBmcm9tIFZpbGxlIGlzIGEgcmVhbGx5IGJhZCBzb2x1dGlvbiwgd2UgbmVlZA0KPiBzb21l dGhpbmcgYmV0dGVyIC0gbm8gcG9pbnQgaW4gaGF2aW5nIDcgcGxhbmVzIGlmIHlvdSBjYW4ndCBl dmVuIHVzZQ0KPiB0aGVtLg0KPiBBZGRpbmcgbW9yZSB0cnlfY29tbWl0IGluIHRoZSB3cm9uZyBw bGFjZSBmZWVscyBsaWtlIGEgZGV0b3VyLg0KPiAtRGFuaWVsDQoNClRoYXQncyBhIHRvcGljIGZv ciBtdWNoIGxhcmdlciBkaXNjdXNzaW9uLCBJIGhhdmUgYmVlbiBoZWFyaW5nIGFyb3VuZA0KZm9y IGFsbW9zdCBhIG1vbnRoIDopIA0KSSBoYXZlIGJlZW4gdGFsa2luZyB3aXRoIFZpbGxlIGFuZCBN YXJ0aW4gYSBsb3QgYWJvdXQgdGhpcy4NCkFuZCB5ZWFoIHRvIG1lIGl0IGlzIGFsc28gY29udHJv dmVyc2lhbCwgdGhhdCB5b3UgaGF2ZSBwbGFuZXMsIGJ1dCB0aGV5DQphcmUgbm90IGFsd2F5cyB1 c2FibGUsIGhvd2V2ZXIuLi4NCkkgY29tcGxldGVseSB1bmRlcnN0YW5kIGFsbCB0aGUgcHJvcyBh bmQgY29ucywgeW91IA0KYXJlIGRlc2NyaWJpbmcgaGVyZS4gQnV0IHRoYXQgcmVhbGx5IGdvZXMg ZmFyIGJleW9uZCB0aGF0IElHVCBwYXRjaC4NCkknbSBqdXN0IGRlYWxpbmcgd2l0aCByZWFsaXR5 IHdoYXQgd2UgaGF2ZSBjdXJyZW50bHkgaGVyZSBhbmQgdHJ5aW5nIHRvDQptYWtlIGl0IG5vdCB0 byBmYWlsIG1pc2VyYWJseSBhdCBsZWFzdC4gT25jZSB3ZSB3aWxsIGhhdmUgInNvbWV0aGluZw0K YmV0dGVyIiB0aGF0IHlvdSBkZXNjcmliZSwgSSB3b3VsZCBiZSBoYXBweSB0byBpbXBsZW1lbnQg YQ0KY29ycmVzcG9uZGVudCBjaGFuZ2VzLiANCg0KPiANCj4gPiA+IA0KPiA+ID4gVGhlIG90aGVy IGJpdDogV2UgbmVlZCB0byByZWNvbXB1dGUgaG93IG1hbnkgcGxhbmVzIHdlIGNhbiBlbmFibGUN Cj4gPiA+IGZvcg0KPiA+ID4gZXZlcnkgdHJhbnNpdGlvbi4gUmlnaHQgbm93IHRoYXQncyBub3Qg dGhlIGNhc2Ugd2l0aCBWaWxsZSdzDQo+ID4gPiBjdXJyZW50DQo+ID4gPiBwYXRjaA0KPiA+ID4g c2VyaWVzLCBidXQgdGhhdCdzIGFsc28ganVzdCBhbiBpbnRlcmltIHNvbHV0aW9uLiBBY3R1YWwg YncNCj4gPiA+IGNvbnN1bXB0aW9uDQo+ID4gPiB2ZXJ5IG11Y2ggZGVwZW5kcyB1cG9uIHdoZXJl IGFsbCB0aGUgcGxhbmVzIGFyZSBwbGFjZSwgaG93IGJpZw0KPiA+ID4gdGhleQ0KPiA+ID4gYXJl DQo+ID4gPiBhbmQgYWxsIHRoYXQgc3R1ZmYuIFNvIHdlIG5lZWQgdG8gcmVjb21wdXRlL3JlY2hl Y2sgdGhhdCBldmVyeQ0KPiA+ID4gdHJhbnNpdGlvbg0KPiA+ID4gd29ya3MsIGZvciBlYWNoIHNw ZWNpZmljIHRyYW5zaXRpb24uIEJlY2F1c2UgdGhlIGV4YWN0IHRyYW5zaXRpb24NCj4gPiA+IG1p Z2h0DQo+ID4gPiBhbHNvIG1hdHRlci4NCj4gPiA+IA0KPiA+ID4gT3IgbWF5YmUgSSdtIG5vdCBl bnRpcmVseSB1bmRlcnN0YW5kaW5nIGhvdyB0aGlzIHRlc3Qgd29ya3MgaGVyZS4NCj4gPiA+IC1E YW5pZWwNCj4gPiA+IA0KPiA+ID4gPiArCQkJCWlndF93YXJuKCJSZWR1Y2VkIGF2YWlsYWJsZQ0K PiA+ID4gPiBwbGFuZXMgdG8NCj4gPiA+ID4gJWRcbiIsIG5fcGxhbmVzKTsNCj4gPiA+ID4gKwkJ CX0NCj4gPiA+ID4gKwkJCWdvdG8gcmV0cnk7DQo+ID4gPiA+ICsJCX0NCj4gPiA+ID4gKw0KPiA+ ID4gPiArCQlzcHJpdGVfd2lkdGggPSBwcmV2X3c7DQo+ID4gPiA+ICsJCXNwcml0ZV9oZWlnaHQg PSBwcmV2X2g7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwkJaWYgKCFtYXhfc3ByaXRlX3dpZHRoKQ0K PiA+ID4gPiArCQkJbWF4X3Nwcml0ZV93aWR0aCA9IHRydWU7DQo+ID4gPiA+ICsJCWVsc2UNCj4g PiA+ID4gKwkJCW1heF9zcHJpdGVfaGVpZ2h0ID0gdHJ1ZTsNCj4gPiA+ID4gIAl9DQo+ID4gPiA+ ICANCj4gPiA+ID4gIAlpZ3RfaW5mbygiUnVubmluZyB0ZXN0IG9uIHBpcGUgJXMgd2l0aCByZXNv bHV0aW9uICVkeCVkDQo+ID4gPiA+IGFuZA0KPiA+ID4gPiBzcHJpdGUgc2l6ZSAlZHglZCBhbHBo YSAlaVxuIiwNCj4gPiA+ID4gQEAgLTQ2Myw3ICs0NjUsNiBAQCBydW5fdHJhbnNpdGlvbl90ZXN0 KGlndF9kaXNwbGF5X3QgKmRpc3BsYXksDQo+ID4gPiA+IGVudW0gcGlwZSBwaXBlLCBpZ3Rfb3V0 cHV0X3QgKm91dHB1dA0KPiA+ID4gPiAgDQo+ID4gPiA+ICAJaWYgKGZsYWdzICYgRFJNX01PREVf QVRPTUlDX0FMTE9XX01PREVTRVQpIHsNCj4gPiA+ID4gIAkJaWd0X291dHB1dF9zZXRfcGlwZShv dXRwdXQsIFBJUEVfTk9ORSk7DQo+ID4gPiA+IC0NCj4gPiA+ID4gIAkJaWd0X2Rpc3BsYXlfY29t bWl0MihkaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsNCj4gPiA+ID4gIA0KPiA+ID4gPiAgCQlpZ3Rf b3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7DQo+ID4gPiA+IEBAIC01MjUsOCArNTI2LDEw IEBAIHJ1bl90cmFuc2l0aW9uX3Rlc3QoaWd0X2Rpc3BsYXlfdA0KPiA+ID4gPiAqZGlzcGxheSwN Cj4gPiA+ID4gZW51bSBwaXBlIHBpcGUsIGlndF9vdXRwdXRfdCAqb3V0cHV0DQo+ID4gPiA+ICAJ CX0NCj4gPiA+ID4gIA0KPiA+ID4gPiAgCQkvKiBmb3JjZSBwbGFuZXMgdG8gYmUgcGFydCBvZiBj b21taXQgKi8NCj4gPiA+ID4gLQkJZm9yX2VhY2hfcGxhbmVfb25fcGlwZShkaXNwbGF5LCBwaXBl LCBwbGFuZSkNCj4gPiA+ID4gLQkJCWlndF9wbGFuZV9zZXRfcG9zaXRpb24ocGxhbmUsIDAsIDAp Ow0KPiA+ID4gPiArCQlmb3JfZWFjaF9wbGFuZV9vbl9waXBlKGRpc3BsYXksIHBpcGUsIHBsYW5l KSB7DQo+ID4gPiA+ICsJCQlpZiAocGFybXNbcGxhbmUtPmluZGV4XS5tYXNrKQ0KPiA+ID4gPiAr CQkJCWlndF9wbGFuZV9zZXRfcG9zaXRpb24ocGxhbmUsDQo+ID4gPiA+IDAsIDApOw0KPiA+ID4g PiArCQl9DQo+ID4gPiA+ICANCj4gPiA+ID4gIAkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5 LCBDT01NSVRfQVRPTUlDKTsNCj4gPiA+ID4gIA0KPiA+ID4gPiAtLSANCj4gPiA+ID4gMi4xNy4x DQo+ID4gPiA+IA0KPiA+ID4gDQo+ID4gPiANCj4gDQo+IA0KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pZ3QtZGV2