From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 691CA89ADC for ; Tue, 16 Apr 2019 09:07:55 +0000 (UTC) From: "Lisovskiy, Stanislav" Date: Tue, 16 Apr 2019 09:07:52 +0000 Message-ID: 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> <56e0ecdaf47e35012af9e57962e63dde29d9e281.camel@intel.com> <20190416085207.GE13337@phenom.ffwll.local> In-Reply-To: <20190416085207.GE13337@phenom.ffwll.local> Content-Language: en-US Content-ID: <0CE0C69F292F2F469CB353B4E58B84D9@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: T24gVHVlLCAyMDE5LTA0LTE2IGF0IDEwOjUyICswMjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOg0K PiBPbiBGcmksIEFwciAwNSwgMjAxOSBhdCAwNzoyMDoxNUFNICswMDAwLCBMaXNvdnNraXksIFN0 YW5pc2xhdiB3cm90ZToNCj4gPiBPbiBUaHUsIDIwMTktMDQtMDQgYXQgMTQ6NTYgKzAyMDAsIERh bmllbCBWZXR0ZXIgd3JvdGU6DQo+ID4gPiBPbiBUaHUsIEFwciAwNCwgMjAxOSBhdCAxMTo0NTow M0FNICswMDAwLCBMaXNvdnNraXksIFN0YW5pc2xhdg0KPiA+ID4gd3JvdGU6DQo+ID4gPiA+IE9u IFdlZCwgMjAxOS0wNC0wMyBhdCAxNjoxMSArMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToNCj4g PiA+ID4gPiBPbiBXZWQsIEFwciAwMywgMjAxOSBhdCAwMzo1NDo1MFBNICswMzAwLCBTdGFuaXNs YXYgTGlzb3Zza2l5DQo+ID4gPiA+ID4gd3JvdGU6DQo+ID4gPiA+ID4gPiBXaXRoIHNvbWUgdXBj b21pbmcgY2hhbmdlcyBpOTE1IG1pZ2h0IG5vdCBhbGxvdw0KPiA+ID4gPiA+ID4gYWxsIHNwcml0 ZSBwbGFuZXMgZW5hYmxlZCwgZGVwZW5kaW5nIG9uIGF2YWlsYWJsZQ0KPiA+ID4gPiA+ID4gYmFu ZHdpZHRoIGxpbWl0YXRpb24uIFRodXMgdGhlIHRlc3QgbmVlZCB0byBkZWNyZW1lbnQNCj4gPiA+ ID4gPiA+IGFtb3VudCBvZiBwbGFuZXMgYW5kIHRyeSBhZ2FpbiwgaW5zdGVhZCBvZiBwYW5pY2tp bmcuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IHYyOiBSZW1vdmVkIGV4Y2Vzc2l2ZSBuZXN0 ZWQgY29uZGl0aW9ucywgbWFraW5nIGNvZGUgYSBiaXQNCj4gPiA+ID4gPiA+ICAgICBtb3JlIHJl YWRhYmxlKGhvcGVmdWxseSkuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IHYzOiBTdG9wcGVk IHVzaW5nIGdsb2JhbCBuX3BsYW5lcyB2YXJpYWJsZSBhcyBpdCBtaWdodA0KPiA+ID4gPiA+ID4g Y2F1c2UNCj4gPiA+ID4gPiA+ICAgICByZXNvdXJjZXMgYmVpbmcgdW5yZWxlYXNlZC4NCj4gPiA+ ID4gPiA+ICAgICBVc2luZyBub3cgcGFybXNbaV0ubWFzayBhcyBhIHdheSB0byBkZXRlcm1pbmUg aWYgcGxhbmUNCj4gPiA+ID4gPiA+ICAgICBoYXMgdG8gYmUgaW5jbHVkZWQgaW50byBjb21taXQu DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IHY0OiBSZW1vdmVkIHVubmVlZGVkIG5fb3Zlcmxh eXMgaW5pdGlhbGl6YXRpb24uDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFNpZ25lZC1vZmYt Ynk6IFN0YW5pc2xhdiBMaXNvdnNraXkgPA0KPiA+ID4gPiA+ID4gc3RhbmlzbGF2Lmxpc292c2tp eUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+ICB0ZXN0cy9rbXNfYXRv bWljX3RyYW5zaXRpb24uYyB8IDEwNyArKysrKysrKysrKysrKysrKy0tLS0tDQo+ID4gPiA+ID4g PiAtLS0tDQo+ID4gPiA+ID4gPiAtLS0tDQo+ID4gPiA+ID4gPiAtLS0tDQo+ID4gPiA+ID4gPiAg MSBmaWxlIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyksIDUyIGRlbGV0aW9ucygtKQ0KPiA+ID4g PiA+ID4gDQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2F0b21pY190cmFuc2l0 aW9uLmMNCj4gPiA+ID4gPiA+IGIvdGVzdHMva21zX2F0b21pY190cmFuc2l0aW9uLmMNCj4gPiA+ ID4gPiA+IGluZGV4IDYzOGZlMTdlLi5hMDQyMjBmMyAxMDA2NDQNCj4gPiA+ID4gPiA+IC0tLSBh L3Rlc3RzL2ttc19hdG9taWNfdHJhbnNpdGlvbi5jDQo+ID4gPiA+ID4gPiArKysgYi90ZXN0cy9r bXNfYXRvbWljX3RyYW5zaXRpb24uYw0KPiA+ID4gPiA+ID4gQEAgLTIxMiw5ICsyMTIsMTEgQEAg c3RhdGljIHZvaWQgc2V0dXBfcGFybXMoaWd0X2Rpc3BsYXlfdA0KPiA+ID4gPiA+ID4gKmRpc3Bs YXksIGVudW0gcGlwZSBwaXBlLA0KPiA+ID4gPiA+ID4gIAl1bnNpZ25lZCBzcHJpdGVfd2lkdGgs IHNwcml0ZV9oZWlnaHQsIHByZXZfdywgcHJldl9oOw0KPiA+ID4gPiA+ID4gIAlib29sIG1heF9z cHJpdGVfd2lkdGgsIG1heF9zcHJpdGVfaGVpZ2h0LCBhbHBoYSA9IHRydWU7DQo+ID4gPiA+ID4g PiAgCXVpbnQzMl90IG5fcGxhbmVzID0gZGlzcGxheS0+cGlwZXNbcGlwZV0ubl9wbGFuZXM7DQo+ ID4gPiA+ID4gPiAtCXVpbnQzMl90IG5fb3ZlcmxheXMgPSAwLCBvdmVybGF5c1tuX3BsYW5lc107 DQo+ID4gPiA+ID4gPiArCXVpbnQzMl90IG5fb3ZlcmxheXMsIG92ZXJsYXlzW25fcGxhbmVzXTsN Cj4gPiA+ID4gPiA+ICAJaWd0X3BsYW5lX3QgKnBsYW5lOw0KPiA+ID4gPiA+ID4gLQl1aW50MzJf dCBpdGVyX21hc2sgPSAzOw0KPiA+ID4gPiA+ID4gKwl1aW50MzJfdCBpdGVyX21hc2s7DQo+ID4g PiA+ID4gPiArCWludCByZXRyaWVzID0gbl9wbGFuZXMgLSAxOw0KPiA+ID4gPiA+ID4gKwlpbnQg cmV0ID0gMDsNCj4gPiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+ICAJZG9fb3JfZGllKGRybUdldENh cChkaXNwbGF5LT5kcm1fZmQsDQo+ID4gPiA+ID4gPiBEUk1fQ0FQX0NVUlNPUl9XSURUSCwNCj4g PiA+ID4gPiA+ICZjdXJzb3Jfd2lkdGgpKTsNCj4gPiA+ID4gPiA+ICAJaWYgKGN1cnNvcl93aWR0 aCA+PSBtb2RlLT5oZGlzcGxheSkNCj4gPiA+ID4gPiA+IEBAIC0yMjQsNiArMjI2LDEwIEBAIHN0 YXRpYyB2b2lkIHNldHVwX3Bhcm1zKGlndF9kaXNwbGF5X3QNCj4gPiA+ID4gPiA+ICpkaXNwbGF5 LCBlbnVtIHBpcGUgcGlwZSwNCj4gPiA+ID4gPiA+ICAJaWYgKGN1cnNvcl9oZWlnaHQgPj0gbW9k ZS0+dmRpc3BsYXkpDQo+ID4gPiA+ID4gPiAgCQljdXJzb3JfaGVpZ2h0ID0gbW9kZS0+dmRpc3Bs YXk7DQo+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiArcmV0cnk6DQo+ID4gPiA+ID4gPiArCW5f b3ZlcmxheXMgPSAwOw0KPiA+ID4gPiA+ID4gKwlpdGVyX21hc2sgPSAzOw0KPiA+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ID4gIAlmb3JfZWFjaF9wbGFuZV9vbl9waXBlKGRpc3BsYXksIHBpcGUsIHBs YW5lKSB7DQo+ID4gPiA+ID4gPiAgCQlpbnQgaSA9IHBsYW5lLT5pbmRleDsNCj4gPiA+ID4gPiA+ ICANCj4gPiA+ID4gPiA+IEBAIC0yMzgsMTIgKzI0NCwxNiBAQCBzdGF0aWMgdm9pZCBzZXR1cF9w YXJtcyhpZ3RfZGlzcGxheV90DQo+ID4gPiA+ID4gPiAqZGlzcGxheSwgZW51bSBwaXBlIHBpcGUs DQo+ID4gPiA+ID4gPiAgCQkJcGFybXNbaV0uaGVpZ2h0ID0gY3Vyc29yX2hlaWdodDsNCj4gPiA+ ID4gPiA+ICAJCQlwYXJtc1tpXS5tYXNrID0gMSA8PCAxOw0KPiA+ID4gPiA+ID4gIAkJfSBlbHNl IHsNCj4gPiA+ID4gPiA+IC0JCQlwYXJtc1tpXS5mYiA9IHNwcml0ZV9mYjsNCj4gPiA+ID4gPiA+ IC0JCQlwYXJtc1tpXS5tYXNrID0gMSA8PCAyOw0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4g LQkJCWl0ZXJfbWFzayB8PSAxIDw8IDI7DQo+ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiAtCQkJ b3ZlcmxheXNbbl9vdmVybGF5cysrXSA9IGk7DQo+ID4gPiA+ID4gPiArCQkJaWYgKG5fb3Zlcmxh eXMgPCAobl9wbGFuZXMgLSAyKSkgew0KPiA+ID4gPiA+ID4gKwkJCQlwYXJtc1tpXS5mYiA9IHNw cml0ZV9mYjsNCj4gPiA+ID4gPiA+ICsJCQkJcGFybXNbaV0ubWFzayA9IDEgPDwgMjsNCj4gPiA+ ID4gPiA+ICsJCQkJaXRlcl9tYXNrIHw9IDEgPDwgMjsNCj4gPiA+ID4gPiA+ICsJCQkJb3Zlcmxh eXNbbl9vdmVybGF5cysrXSA9IGk7DQo+ID4gPiA+ID4gPiArCQkJfQ0KPiA+ID4gPiA+ID4gKwkJ CWVsc2Ugew0KPiA+ID4gPiA+ID4gKwkJCQlwYXJtc1tpXS5mYiA9IE5VTEw7DQo+ID4gPiA+ID4g PiArCQkJCXBhcm1zW2ldLm1hc2sgPSAwOw0KPiA+ID4gPiA+ID4gKwkJCX0NCj4gPiA+ID4gPiA+ ICAJCX0NCj4gPiA+ID4gPiA+ICAJfQ0KPiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4gQEAgLTI3 OCwxNiArMjg4LDEzIEBAIHN0YXRpYyB2b2lkIHNldHVwX3Bhcm1zKGlndF9kaXNwbGF5X3QNCj4g PiA+ID4gPiA+ICpkaXNwbGF5LCBlbnVtIHBpcGUgcGlwZSwNCj4gPiA+ID4gPiA+ICAJICogUHJl IGdlbjkgbm90IGFsbCBzaXplcyBhcmUgc3VwcG9ydGVkLCBmaW5kIHRoZQ0KPiA+ID4gPiA+ID4g YmlnZ2VzdA0KPiA+ID4gPiA+ID4gcG9zc2libGUNCj4gPiA+ID4gPiA+ICAJICogc2l6ZSB0aGF0 IGNhbiBiZSBlbmFibGVkIG9uIGFsbCBzcHJpdGUgcGxhbmVzLg0KPiA+ID4gPiA+ID4gIAkgKi8N Cj4gPiA+ID4gPiA+IC1yZXRyeToNCj4gPiA+ID4gPiA+ICAJcHJldl93ID0gc3ByaXRlX3dpZHRo ID0gY3Vyc29yX3dpZHRoOw0KPiA+ID4gPiA+ID4gIAlwcmV2X2ggPSBzcHJpdGVfaGVpZ2h0ID0g Y3Vyc29yX2hlaWdodDsNCj4gPiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+ICAJbWF4X3Nwcml0ZV93 aWR0aCA9IChzcHJpdGVfd2lkdGggPT0gbW9kZS0+aGRpc3BsYXkpOw0KPiA+ID4gPiA+ID4gIAlt YXhfc3ByaXRlX2hlaWdodCA9IChzcHJpdGVfaGVpZ2h0ID09IG1vZGUtPnZkaXNwbGF5KTsNCj4g PiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+IC0Jd2hpbGUgKDEpIHsNCj4gPiA+ID4gPiA+IC0JCWlu dCByZXQ7DQo+ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiArCXdoaWxlICghbWF4X3Nwcml0ZV93 aWR0aCAmJiAhbWF4X3Nwcml0ZV9oZWlnaHQpIHsNCj4gPiA+ID4gPiA+ICAJCXNldF9zcHJpdGVf d2goZGlzcGxheSwgcGlwZSwgcGFybXMsIHNwcml0ZV9mYiwNCj4gPiA+ID4gPiA+ICAJCQkgICAg ICBhbHBoYSwgc3ByaXRlX3dpZHRoLA0KPiA+ID4gPiA+ID4gc3ByaXRlX2hlaWdodCk7DQo+ID4g PiA+ID4gPiAgDQo+ID4gPiA+ID4gPiBAQCAtMjk1LDU0ICszMDIsNDkgQEAgcmV0cnk6DQo+ID4g PiA+ID4gPiAgCQlyZXQgPSBpZ3RfZGlzcGxheV90cnlfY29tbWl0X2F0b21pYyhkaXNwbGF5LA0K PiA+ID4gPiA+ID4gRFJNX01PREVfQVRPTUlDX1RFU1RfT05MWSB8IERSTV9NT0RFX0FUT01JQ19B TExPV19NT0RFU0VULA0KPiA+ID4gPiA+ID4gTlVMTCk7DQo+ID4gPiA+ID4gPiAgCQlpZ3RfYXNz ZXJ0KCFpc19hdG9taWNfY2hlY2tfZmFpbHVyZV9lcnJubyhyZXQpKQ0KPiA+ID4gPiA+ID4gOw0K PiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4gLQkJaWYgKGlzX2F0b21pY19jaGVja19wbGFuZV9z aXplX2Vycm5vKHJldCkpIHsNCj4gPiA+ID4gPiA+IC0JCQlpZiAoY3Vyc29yX3dpZHRoID09IHNw cml0ZV93aWR0aCAmJg0KPiA+ID4gPiA+ID4gLQkJCSAgICBjdXJzb3JfaGVpZ2h0ID09IHNwcml0 ZV9oZWlnaHQpIHsNCj4gPiA+ID4gPiA+IC0JCQkJaWd0X2Fzc2VydF9mKGFscGhhLA0KPiA+ID4g PiA+ID4gLQkJCQkJICAgICAgIkNhbm5vdCBjb25maWd1cmUNCj4gPiA+ID4gPiA+IHRoZQ0KPiA+ ID4gPiA+ID4gdGVzdCB3aXRoIGFsbCBzcHJpdGUgcGxhbmVzIGVuYWJsZWRcbiIpOw0KPiA+ID4g PiA+ID4gLQ0KPiA+ID4gPiA+ID4gLQkJCQkvKiByZXRyeSBvbmNlIHdpdGggWFJHQiBmb3JtYXQu DQo+ID4gPiA+ID4gPiAqLw0KPiA+ID4gPiA+ID4gLQkJCQlhbHBoYSA9IGZhbHNlOw0KPiA+ID4g PiA+ID4gLQkJCQlnb3RvIHJldHJ5Ow0KPiA+ID4gPiA+ID4gLQkJCX0NCj4gPiA+ID4gPiA+IC0N Cj4gPiA+ID4gPiA+IC0JCQlzcHJpdGVfd2lkdGggPSBwcmV2X3c7DQo+ID4gPiA+ID4gPiAtCQkJ c3ByaXRlX2hlaWdodCA9IHByZXZfaDsNCj4gPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+IC0JCQlp ZiAobWF4X3Nwcml0ZV93aWR0aCAmJg0KPiA+ID4gPiA+ID4gbWF4X3Nwcml0ZV9oZWlnaHQpIHsN Cj4gPiA+ID4gPiA+IC0JCQkJc2V0X3Nwcml0ZV93aChkaXNwbGF5LCBwaXBlLA0KPiA+ID4gPiA+ ID4gcGFybXMsDQo+ID4gPiA+ID4gPiBzcHJpdGVfZmIsDQo+ID4gPiA+ID4gPiAtCQkJCQkgICAg ICBhbHBoYSwNCj4gPiA+ID4gPiA+IHNwcml0ZV93aWR0aCwNCj4gPiA+ID4gPiA+IHNwcml0ZV9o ZWlnaHQpOw0KPiA+ID4gPiA+ID4gLQkJCQlicmVhazsNCj4gPiA+ID4gPiA+IC0JCQl9DQo+ID4g PiA+ID4gPiAtDQo+ID4gPiA+ID4gPiAtCQkJaWYgKCFtYXhfc3ByaXRlX3dpZHRoKQ0KPiA+ID4g PiA+ID4gLQkJCQltYXhfc3ByaXRlX3dpZHRoID0gdHJ1ZTsNCj4gPiA+ID4gPiA+IC0JCQllbHNl DQo+ID4gPiA+ID4gPiAtCQkJCW1heF9zcHJpdGVfaGVpZ2h0ID0gdHJ1ZTsNCj4gPiA+ID4gPiA+ IC0JCX0gZWxzZSB7DQo+ID4gPiA+ID4gPiArCQlpZiAoIWlzX2F0b21pY19jaGVja19wbGFuZV9z aXplX2Vycm5vKHJldCkpIHsNCj4gPiA+ID4gPiA+ICAJCQlwcmV2X3cgPSBzcHJpdGVfd2lkdGg7 DQo+ID4gPiA+ID4gPiAgCQkJcHJldl9oID0gc3ByaXRlX2hlaWdodDsNCj4gPiA+ID4gPiA+IC0J CX0NCj4gPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+IC0JCWlmICghbWF4X3Nwcml0ZV93aWR0aCkg ew0KPiA+ID4gPiA+ID4gLQkJCXNwcml0ZV93aWR0aCAqPSAyOw0KPiA+ID4gPiA+ID4gLQ0KPiA+ ID4gPiA+ID4gKyAgICANCj4gPiA+ID4gPiA+ICsJCQlzcHJpdGVfd2lkdGggKj0gbWF4X3Nwcml0 ZV93aWR0aCA/IDEgOg0KPiA+ID4gPiA+ID4gMjsNCj4gPiA+ID4gPiA+ICAJCQlpZiAoc3ByaXRl X3dpZHRoID49IG1vZGUtPmhkaXNwbGF5KSB7DQo+ID4gPiA+ID4gPiAgCQkJCW1heF9zcHJpdGVf d2lkdGggPSB0cnVlOw0KPiA+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ID4gIAkJCQlzcHJpdGVfd2lk dGggPSBtb2RlLT5oZGlzcGxheTsNCj4gPiA+ID4gPiA+ICAJCQl9DQo+ID4gPiA+ID4gPiAtCQl9 IGVsc2UgaWYgKCFtYXhfc3ByaXRlX2hlaWdodCkgew0KPiA+ID4gPiA+ID4gLQkJCXNwcml0ZV9o ZWlnaHQgKj0gMjsNCj4gPiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+ICsJCQlzcHJpdGVfaGVpZ2h0 ICo9IG1heF9zcHJpdGVfaGVpZ2h0ID8gMQ0KPiA+ID4gPiA+ID4gOiAyOw0KPiA+ID4gPiA+ID4g IAkJCWlmIChzcHJpdGVfaGVpZ2h0ID49IG1vZGUtPnZkaXNwbGF5KSB7DQo+ID4gPiA+ID4gPiAg CQkJCW1heF9zcHJpdGVfaGVpZ2h0ID0gdHJ1ZTsNCj4gPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiA+ ICAJCQkJc3ByaXRlX2hlaWdodCA9IG1vZGUtPnZkaXNwbGF5Ow0KPiA+ID4gPiA+ID4gIAkJCX0N Cj4gPiA+ID4gPiA+IC0JCX0gZWxzZQ0KPiA+ID4gPiA+ID4gLQkJCS8qIE1heCBzaXplZCBzcHJp dGVzIGZvciBhbGwhICovDQo+ID4gPiA+ID4gPiAtCQkJYnJlYWs7DQo+ID4gPiA+ID4gPiArCQkJ Y29udGludWU7DQo+ID4gPiA+ID4gPiArCQl9DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiAr CQlpZiAoY3Vyc29yX3dpZHRoID09IHNwcml0ZV93aWR0aCAmJg0KPiA+ID4gPiA+ID4gKwkJICAg IGN1cnNvcl9oZWlnaHQgPT0gc3ByaXRlX2hlaWdodCkgew0KPiA+ID4gPiA+ID4gKwkJCWlndF9h c3NlcnRfZihyZXRyaWVzID4gMCwNCj4gPiA+ID4gPiA+ICsJCQkJICAgICAgIkNhbm5vdCBjb25m aWd1cmUgdGhlDQo+ID4gPiA+ID4gPiB0ZXN0IHdpdGgNCj4gPiA+ID4gPiA+IGFsbCBzcHJpdGUg cGxhbmVzIGVuYWJsZWRcbiIpOw0KPiA+ID4gPiA+ID4gKwkJCS0tcmV0cmllczsNCj4gPiA+ID4g PiA+ICsJCQkvKiByZXRyeSBvbmNlIHdpdGggWFJHQiBmb3JtYXQuICovDQo+ID4gPiA+ID4gPiAr CQkJaWYgKGFscGhhKSB7DQo+ID4gPiA+ID4gPiArCQkJCWFscGhhID0gZmFsc2U7DQo+ID4gPiA+ ID4gPiArCQkJCWlndF93YXJuKCJSZW1vdmVkIGFscGhhXG4iKTsNCj4gPiA+ID4gPiA+ICsJCQl9 DQo+ID4gPiA+ID4gPiArCQkJZWxzZSB7DQo+ID4gPiA+ID4gPiArCQkJCWlndF9hc3NlcnRfZihu X3BsYW5lcyA+IDEsICJObw0KPiA+ID4gPiA+ID4gcGxhbmVzDQo+ID4gPiA+ID4gPiBsZWZ0IHRv IHByb2NlZWQgd2l0aCEiKTsNCj4gPiA+ID4gPiA+ICsJCQkJbl9wbGFuZXMtLTsNCj4gPiA+ID4g PiANCj4gPiA+ID4gPiBTYW1lIGNvbW1lbnQgYXMgd2l0aCBrbXNfY29uY3VycmVudCBhbmQgYWxs IHRoZSBvdGhlciBwbGFuZQ0KPiA+ID4gPiA+IHRlc3RzOg0KPiA+ID4gPiA+IEp1c3QNCj4gPiA+ ID4gPiBkcm9wcGluZyB0aGUgbGFzdCBwbGFuZSByZWR1Y2VzIG91ciB0ZXN0IGNvdmVyYWdlLCB3 ZSBuZWVkIHRvDQo+ID4gPiA+ID4gcmFuZG9taXplDQo+ID4gPiA+ID4gd2hpY2ggcGxhbmUgd2Ug ZHJvcC4NCj4gPiA+ID4gDQo+ID4gPiA+IEkgdGhpbmsgdGhhdCBpcyBhIGdvb2QgaWRlYSwgSSdt IG5vdyB0ZXN0aW5nIGEgcGF0Y2ggd2hpY2gNCj4gPiA+ID4gcmFuZG9taXplcw0KPiA+ID4gPiB3 aGljaCBvbmUgb2YgYXZhaWxhYmxlIHBsYW5lcyBpcyBnb2luZyB0byBiZSByZW1vdmVkLg0KPiA+ ID4gPiANCj4gPiA+ID4gRm9yIHRoZSBsYXR0ZXIgY2hhbmdlIEkgd291bGQgbGVhdmUgZm9yIGZ1 cnRoZXIgcGF0Y2hlcyBhcw0KPiA+ID4gPiBjdXJyZW50bHkgDQo+ID4gPiA+IGl0IGRvZXNuJ3Qg bWF0dGVyIGFueXdheSwgYnV0IHdlIG5lZWQgdGhlIGlzc3VlcyByZWxhdGVkIHRvIG5ldw0KPiA+ ID4gPiBidw0KPiA+ID4gPiByZXF1aXJlbWVudHMgdG8gYmUgZml4ZWQuDQo+ID4gPiANCj4gPiA+ IEp1c3QgZG9pbmcgc29tZSBidWcgc2NydWIgYW5kIHdlIGhhdmUgc29tZSBFSU5WQUwgZmFpbHVy ZXMgbGlrZQ0KPiA+ID4gdGhpcw0KPiA+ID4gYWxsDQo+ID4gPiBvdmVyIHRoZSBwbGFjZS4gU28g SSBndWVzcyB0aGVyZSdzIHNvbWUgb3RoZXIgY2FzZXMgd2hlcmUgd2UNCj4gPiA+IHJlamVjdA0K PiA+ID4gY29uZmlncyBpbiB0aGUga2VybmVsIGFuZCB0aGVuIHRoZSB0ZXN0IGZhbGxzIG92ZXIu IFdlJ2xsIG5lZWQNCj4gPiA+IHRoaXMNCj4gPiA+IChpdCdzDQo+ID4gPiBob3cgYXRvbWljIGlz IG1lYW50IHRvIHdvcmsgcmVhbGx5KS4NCj4gPiA+IA0KPiA+ID4gQWxzbywgdGhlIGJ3IGJhbmQt YWlkIGZyb20gVmlsbGUgaXMgYSByZWFsbHkgYmFkIHNvbHV0aW9uLCB3ZQ0KPiA+ID4gbmVlZA0K PiA+ID4gc29tZXRoaW5nIGJldHRlciAtIG5vIHBvaW50IGluIGhhdmluZyA3IHBsYW5lcyBpZiB5 b3UgY2FuJ3QgZXZlbg0KPiA+ID4gdXNlDQo+ID4gPiB0aGVtLg0KPiA+ID4gQWRkaW5nIG1vcmUg dHJ5X2NvbW1pdCBpbiB0aGUgd3JvbmcgcGxhY2UgZmVlbHMgbGlrZSBhIGRldG91ci4NCj4gPiA+ IC1EYW5pZWwNCj4gPiANCj4gPiBUaGF0J3MgYSB0b3BpYyBmb3IgbXVjaCBsYXJnZXIgZGlzY3Vz c2lvbiwgSSBoYXZlIGJlZW4gaGVhcmluZw0KPiA+IGFyb3VuZA0KPiA+IGZvciBhbG1vc3QgYSBt b250aCA6KSANCj4gPiBJIGhhdmUgYmVlbiB0YWxraW5nIHdpdGggVmlsbGUgYW5kIE1hcnRpbiBh IGxvdCBhYm91dCB0aGlzLg0KPiA+IEFuZCB5ZWFoIHRvIG1lIGl0IGlzIGFsc28gY29udHJvdmVy c2lhbCwgdGhhdCB5b3UgaGF2ZSBwbGFuZXMsIGJ1dA0KPiA+IHRoZXkNCj4gPiBhcmUgbm90IGFs d2F5cyB1c2FibGUsIGhvd2V2ZXIuLi4NCj4gPiBJIGNvbXBsZXRlbHkgdW5kZXJzdGFuZCBhbGwg dGhlIHByb3MgYW5kIGNvbnMsIHlvdSANCj4gPiBhcmUgZGVzY3JpYmluZyBoZXJlLiBCdXQgdGhh dCByZWFsbHkgZ29lcyBmYXIgYmV5b25kIHRoYXQgSUdUDQo+ID4gcGF0Y2guDQo+ID4gSSdtIGp1 c3QgZGVhbGluZyB3aXRoIHJlYWxpdHkgd2hhdCB3ZSBoYXZlIGN1cnJlbnRseSBoZXJlIGFuZA0K PiA+IHRyeWluZyB0bw0KPiA+IG1ha2UgaXQgbm90IHRvIGZhaWwgbWlzZXJhYmx5IGF0IGxlYXN0 LiBPbmNlIHdlIHdpbGwgaGF2ZQ0KPiA+ICJzb21ldGhpbmcNCj4gPiBiZXR0ZXIiIHRoYXQgeW91 IGRlc2NyaWJlLCBJIHdvdWxkIGJlIGhhcHB5IHRvIGltcGxlbWVudCBhDQo+ID4gY29ycmVzcG9u ZGVudCBjaGFuZ2VzLiANCj4gDQo+IFdlIF9kb18gaGF2ZSB0aGlzICJzb21ldGhpbmcgYmV0dGVy Iiwgc2luY2UgZGF5IDEgb2YgYXRvbWljLiBJdCdzDQo+IGNhbGxlZA0KPiB0cnlfY29tbWl0Lg0K PiANCj4gQW5kIHllcyAic29tZSBwbGFuZXMgc29tZXRpbWVzIGRvbid0IHdvcmsgZm9yIHJlYXNv bnMgb25seSBjbGVhciB0bw0KPiB0aGUNCj4ga2VybmVsIGRyaXZlciIgaGFzIGFsc28gYmVlbiBw YXJ0IG9mIGF0b21pYyBzaW5jZSBkYXkgb25lLg0KDQpXZWxsLCB0aGF0cyBpcyB3aGF0IG1vc3Qg b2YgdGhvc2UgZml4ZXMgYXJlIGFib3V0IC0gd2UganVzdCBjaGFuZ2UgdGVzdA0KY2FzZSB0byBx dWVyeSBmaXJzdCwgaWYgdGhhdCBjb25maWcgaXMgZ29pbmcgdG8gd29yaywgYmVmb3JlIGFjdHVh bGx5DQpjb21taXR0aW5nIGl0LiBJZiBpdCBkb2Vzbid0IHdvcmsgd2UgdHJ5IHRvIHJlZHVjZSBw bGFuZXMgbnVtYmVyIG9yDQp0aGVpciBzaXplLiBTbyB3aGF0IGRvIHlvdSBleGFjdGx5IG1lYW4g b3IgZG9uJ3QgbGlrZSBoZXJlPyANCg0KPiANCj4gUGxlYXNlIGRvbid0IG1lcmdlIGhhY2tzIHRv IGhhbmRsZSBtYW5hZ2VtZW50IHByZXNzdXJlLCBsZXQncyBkbyB0aGUNCj4gcmlnaHQNCj4gdGhp bmcuIEknbSBoYXBweSB0byBoYW5kbGUgbWFuYWdlcnMgZm9yIHlvdSB3aG8gZG9uJ3QgZ2V0IHRo aXMuDQo+IEN1dHRpbmcNCj4gY29ybmVycyBoZXJlIGRvZXNuJ3QgaGVscCBhbnlvbmUgKGFuZCB5 ZXMgdGhpcyBzaG91bGQgaGF2ZSBiZWVuDQo+IGNhdWdodA0KPiB3aGVuIHRoZSB0ZXN0IHdhcyBv cmlnaW5hbGx5IHdyaXR0ZW4sIGJ1dCB3ZWxsIGl0IHdhc250KS4NCg0KV2VsbCwgSSBjYW4ndCBs aXRlcmFsbHkgIm1lcmdlIiBhbnl0aGluZy4gV2hhdCBJJ20gZG9pbmcgaXMgY2hhbmdpbmcgDQpw YXRjaGVzIHRvIG1hdGNoIG5ldyBidyBwYXJhZGlnbS4gSGF2ZSB5b3Ugc2VlbiBidyBwYXRjaGVz Pw0KRHVlIHRob3NlIGNoYW5nZXMgd2Ugbm93IGhhdmUgLUVJTlZBTCByZXR1cm5lZCwgd2hlbmV2 ZXIgd2UgZG9uJ3QgaGF2ZQ0KcmVzb3VyY2VzKGttc19jb25jdXJyZW50LCBrbXNfYXRvbWljX3Ry YW5zaXRpb24sIGttc19wbGFuZV9tdWx0aXBsZS4uKS4NClNvIGFzIHlvdSBoYXZlIHNhaWQgd2Ug bmVlZCB0byB1c2UgdHJ5X2NvbW1pdCB0byB1bmRlcnN0YW5kDQpmaXJzdCwgaWYgY29uZmlndXJh dGlvbiBpcyBnb2luZyB0byB3b3JrIG9yIG5vdC4gSSdtIGRvaW5nIHRoYXQuDQoNCkFzIEkgdW5k ZXJzdGFuZCBhbHNvIEJXIGlzIG5vdCBzb21ldGhpbmcsIHdlIGhhdmUgYW55IG90aGVyIHNvbHV0 aW9ucw0KZm9yIGN1cnJlbnRseS4NCg0KSWYgeW91IGFyZSBub3QgaGFwcHkgd2l0aCBpdCwgSSB1 bmRlcnN0YW5kIHRoYXQgLSBidXQgYXMgeW91DQp1bmRlcnN0YW5kLCBJJ20gZGVmaW5pdGVseSBu b3QgdGhlIGZpcnN0IGd1eSB3aG9tIHlvdSBzaG91bGQgcmVmZXIgdG8NCmhlcmUuDQoNCj4gLURh bmllbA0KPiANCj4gPiANCj4gPiA+IA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IFRoZSBvdGhlciBi aXQ6IFdlIG5lZWQgdG8gcmVjb21wdXRlIGhvdyBtYW55IHBsYW5lcyB3ZSBjYW4NCj4gPiA+ID4g PiBlbmFibGUNCj4gPiA+ID4gPiBmb3INCj4gPiA+ID4gPiBldmVyeSB0cmFuc2l0aW9uLiBSaWdo dCBub3cgdGhhdCdzIG5vdCB0aGUgY2FzZSB3aXRoIFZpbGxlJ3MNCj4gPiA+ID4gPiBjdXJyZW50 DQo+ID4gPiA+ID4gcGF0Y2gNCj4gPiA+ID4gPiBzZXJpZXMsIGJ1dCB0aGF0J3MgYWxzbyBqdXN0 IGFuIGludGVyaW0gc29sdXRpb24uIEFjdHVhbCBidw0KPiA+ID4gPiA+IGNvbnN1bXB0aW9uDQo+ ID4gPiA+ID4gdmVyeSBtdWNoIGRlcGVuZHMgdXBvbiB3aGVyZSBhbGwgdGhlIHBsYW5lcyBhcmUg cGxhY2UsIGhvdw0KPiA+ID4gPiA+IGJpZw0KPiA+ID4gPiA+IHRoZXkNCj4gPiA+ID4gPiBhcmUN Cj4gPiA+ID4gPiBhbmQgYWxsIHRoYXQgc3R1ZmYuIFNvIHdlIG5lZWQgdG8gcmVjb21wdXRlL3Jl Y2hlY2sgdGhhdA0KPiA+ID4gPiA+IGV2ZXJ5DQo+ID4gPiA+ID4gdHJhbnNpdGlvbg0KPiA+ID4g PiA+IHdvcmtzLCBmb3IgZWFjaCBzcGVjaWZpYyB0cmFuc2l0aW9uLiBCZWNhdXNlIHRoZSBleGFj dA0KPiA+ID4gPiA+IHRyYW5zaXRpb24NCj4gPiA+ID4gPiBtaWdodA0KPiA+ID4gPiA+IGFsc28g bWF0dGVyLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IE9yIG1heWJlIEknbSBub3QgZW50aXJlbHkg dW5kZXJzdGFuZGluZyBob3cgdGhpcyB0ZXN0IHdvcmtzDQo+ID4gPiA+ID4gaGVyZS4NCj4gPiA+ ID4gPiAtRGFuaWVsDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiArCQkJCWlndF93YXJuKCJSZWR1 Y2VkIGF2YWlsYWJsZQ0KPiA+ID4gPiA+ID4gcGxhbmVzIHRvDQo+ID4gPiA+ID4gPiAlZFxuIiwg bl9wbGFuZXMpOw0KPiA+ID4gPiA+ID4gKwkJCX0NCj4gPiA+ID4gPiA+ICsJCQlnb3RvIHJldHJ5 Ow0KPiA+ID4gPiA+ID4gKwkJfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwkJc3ByaXRl X3dpZHRoID0gcHJldl93Ow0KPiA+ID4gPiA+ID4gKwkJc3ByaXRlX2hlaWdodCA9IHByZXZfaDsN Cj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJCWlmICghbWF4X3Nwcml0ZV93aWR0aCkNCj4g PiA+ID4gPiA+ICsJCQltYXhfc3ByaXRlX3dpZHRoID0gdHJ1ZTsNCj4gPiA+ID4gPiA+ICsJCWVs c2UNCj4gPiA+ID4gPiA+ICsJCQltYXhfc3ByaXRlX2hlaWdodCA9IHRydWU7DQo+ID4gPiA+ID4g PiAgCX0NCj4gPiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+ICAJaWd0X2luZm8oIlJ1bm5pbmcgdGVz dCBvbiBwaXBlICVzIHdpdGggcmVzb2x1dGlvbiAlZHglZA0KPiA+ID4gPiA+ID4gYW5kDQo+ID4g PiA+ID4gPiBzcHJpdGUgc2l6ZSAlZHglZCBhbHBoYSAlaVxuIiwNCj4gPiA+ID4gPiA+IEBAIC00 NjMsNyArNDY1LDYgQEAgcnVuX3RyYW5zaXRpb25fdGVzdChpZ3RfZGlzcGxheV90DQo+ID4gPiA+ ID4gPiAqZGlzcGxheSwNCj4gPiA+ID4gPiA+IGVudW0gcGlwZSBwaXBlLCBpZ3Rfb3V0cHV0X3Qg Km91dHB1dA0KPiA+ID4gPiA+ID4gIA0KPiA+ID4gPiA+ID4gIAlpZiAoZmxhZ3MgJiBEUk1fTU9E RV9BVE9NSUNfQUxMT1dfTU9ERVNFVCkgew0KPiA+ID4gPiA+ID4gIAkJaWd0X291dHB1dF9zZXRf cGlwZShvdXRwdXQsIFBJUEVfTk9ORSk7DQo+ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiAgCQlp Z3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOw0KPiA+ID4gPiA+ID4g IA0KPiA+ID4gPiA+ID4gIAkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOw0KPiA+ ID4gPiA+ID4gQEAgLTUyNSw4ICs1MjYsMTAgQEAgcnVuX3RyYW5zaXRpb25fdGVzdChpZ3RfZGlz cGxheV90DQo+ID4gPiA+ID4gPiAqZGlzcGxheSwNCj4gPiA+ID4gPiA+IGVudW0gcGlwZSBwaXBl LCBpZ3Rfb3V0cHV0X3QgKm91dHB1dA0KPiA+ID4gPiA+ID4gIAkJfQ0KPiA+ID4gPiA+ID4gIA0K PiA+ID4gPiA+ID4gIAkJLyogZm9yY2UgcGxhbmVzIHRvIGJlIHBhcnQgb2YgY29tbWl0ICovDQo+ ID4gPiA+ID4gPiAtCQlmb3JfZWFjaF9wbGFuZV9vbl9waXBlKGRpc3BsYXksIHBpcGUsIHBsYW5l KQ0KPiA+ID4gPiA+ID4gLQkJCWlndF9wbGFuZV9zZXRfcG9zaXRpb24ocGxhbmUsIDAsIDApOw0K PiA+ID4gPiA+ID4gKwkJZm9yX2VhY2hfcGxhbmVfb25fcGlwZShkaXNwbGF5LCBwaXBlLCBwbGFu ZSkgew0KPiA+ID4gPiA+ID4gKwkJCWlmIChwYXJtc1twbGFuZS0+aW5kZXhdLm1hc2spDQo+ID4g PiA+ID4gPiArCQkJCWlndF9wbGFuZV9zZXRfcG9zaXRpb24ocGxhbmUsDQo+ID4gPiA+ID4gPiAw LCAwKTsNCj4gPiA+ID4gPiA+ICsJCX0NCj4gPiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+ICAJCWln dF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX0FUT01JQyk7DQo+ID4gPiA+ID4gPiAg DQo+ID4gPiA+ID4gPiAtLSANCj4gPiA+ID4gPiA+IDIuMTcuMQ0KPiA+ID4gPiA+ID4gDQo+ID4g PiA+ID4gDQo+ID4gPiA+ID4gDQo+ID4gPiANCj4gPiA+IA0KPiANCj4gDQpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdApp Z3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=