From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Subject: Re: [PATCH i-g-t v3 4/4] chamelium: Dump obtained and reference frames to png on crc error Date: Thu, 06 Jul 2017 14:35:20 +0300 Message-ID: <1499340920.1379.10.camel@linux.intel.com> References: <20170705080435.26789-1-paul.kocialkowski@linux.intel.com> <20170705080435.26789-4-paul.kocialkowski@linux.intel.com> <1499291055.20388.13.camel@redhat.com> <1f7bfa6c-9546-53d9-93f1-791883d9146d@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2785A6E1B9 for ; Thu, 6 Jul 2017 11:35:25 +0000 (UTC) In-Reply-To: <1f7bfa6c-9546-53d9-93f1-791883d9146d@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Martin Peres , Lyude Paul , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE3LTA3LTA2IGF0IDEwOjQxICswMzAwLCBNYXJ0aW4gUGVyZXMgd3JvdGU6Cj4g T24gMDYvMDcvMTcgMDA6NDQsIEx5dWRlIFBhdWwgd3JvdGU6Cj4gPiBPbiBXZWQsIDIwMTctMDct MDUgYXQgMTE6MDQgKzAzMDAsIFBhdWwgS29jaWFsa293c2tpIHdyb3RlOgo+ID4gPiBXaGVuIGEg Q1JDIGNvbXBhcmlzb24gZXJyb3Igb2NjdXJzLCBpdCBpcyBxdWl0ZSB1c2VmdWwgdG8gZ2V0IGEg ZHVtcAo+ID4gPiBvZiBib3RoIHRoZSBmcmFtZSBvYnRhaW5lZCBmcm9tIHRoZSBjaGFtZWxpdW0g YW5kIHRoZSByZWZlcmVuY2UgaW4KPiA+ID4gb3JkZXIKPiA+ID4gdG8gY29tcGFyZSB0aGVtLgo+ ID4gPiAKPiA+ID4gVGhpcyBpbXBsZW1lbnRzIHRoZSBmcmFtZSBkdW1wLCB3aXRoIGEgY29uZmln dXJhYmxlIHBhdGggdGhhdCBlbmFibGVzCj4gPiA+IHRoZSB1c2Ugb2YgdGhpcyBmZWF0dXJlLgo+ ID4gPiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogUGF1bCBLb2NpYWxrb3dza2kgPHBhdWwua29jaWFs a293c2tpQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gLS0tCj4gPiA+ICAgbGliL2lndF9jaGFtZWxp dW0uYyB8ICAyMSArKysrKysrKysrKwo+ID4gPiAgIGxpYi9pZ3RfY2hhbWVsaXVtLmggfCAgIDEg Kwo+ID4gPiAgIGxpYi9pZ3RfZGVidWdmcy5jICAgfCAgMjAgKysrKysrKysrKwo+ID4gPiAgIGxp Yi9pZ3RfZGVidWdmcy5oICAgfCAgIDEgKwo+ID4gPiAgIHRlc3RzL2NoYW1lbGl1bS5jICAgfCAx MDQgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiAtLS0tLS0t LS0tLS0KPiA+ID4gICA1IGZpbGVzIGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDY1IGRlbGV0 aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY2hhbWVsaXVtLmMgYi9s aWIvaWd0X2NoYW1lbGl1bS5jCj4gPiA+IGluZGV4IGVmNTFlZjY4Li45YWNhNjg0MiAxMDA2NDQK PiA+ID4gLS0tIGEvbGliL2lndF9jaGFtZWxpdW0uYwo+ID4gPiArKysgYi9saWIvaWd0X2NoYW1l bGl1bS5jCj4gPiA+IEBAIC01Nyw2ICs1Nyw3IEBACj4gPiA+ICAgICogfFs8IS0tIGxhbmd1YWdl PSJwbGFpbiIgLS0+Cj4gPiA+ICAgICoJW0NoYW1lbGl1bV0KPiA+ID4gICAgKglVUkw9aHR0cDov L2NoYW1lbGVvbjo5OTkyICMgVGhlIFVSTCB1c2VkIGZvciBjb25uZWN0aW5nIHRvCj4gPiA+IHRo ZSBDaGFtZWxpdW0ncyBSUEMgc2VydmVyCj4gPiA+ICsgKglGcmFtZUR1bXBQYXRoPS90bXAgIyBU aGUgcGF0aCB0byBkdW1wIGZyYW1lcyB0aGF0IGZhaWwKPiA+ID4gY29tcGFyaXNvbiBjaGVja3MK PiA+IAo+ID4gV2hpbGUgbm8gb25lIGVsc2UgcmVhbGx5IGNhcmVzIGFib3V0IGNyZWF0aW5nIGZy YW1lIGR1bXBzIHlldCwgaXQncwo+ID4gcG9zc2libGUgc29tZW9uZSBlbHNlIG1heSBpbiB0aGUg ZnV0dXJlIGlmIHdlIGV2ZXIgZW5kIHVwIHRha2luZyBtb3JlCj4gPiBhZHZhbnRhZ2Ugb2YgYXV0 b21hdGVkIHRlc3Rpbmcgc3lzdGVtcyBsaWtlIHRoaXMuIFNvIEknZCBzdGljayB0aGlzIGluCj4g PiB0aGUgZ2VuZXJpYyBub24tY2hhbWVsaXVtIHNwZWNpZmljIHNlY3Rpb24gaW4gdGhlIGNvbmZp ZyBmaWxlCj4gPiAKPiA+ID4gICAgKgo+ID4gPiAgICAqCSMgVGhlIHJlc3Qgb2YgdGhlIHNlY3Rp b25zIGFyZSB1c2VkIGZvciBkZWZpbmluZyBjb25uZWN0b3IKPiA+ID4gbWFwcGluZ3MuCj4gPiA+ ICAgICoJIyBUaGlzIGlzIHJlcXVpcmVkIHNvIGFueSB0ZXN0cyB1c2luZyB0aGUgQ2hhbWVsaXVt IGtub3cKPiA+ID4gd2hpY2ggY29ubmVjdG9yCj4gPiA+IEBAIC0xMTUsMTEgKzExNiwyNiBAQCBz dHJ1Y3QgY2hhbWVsaXVtIHsKPiA+ID4gICAJc3RydWN0IGNoYW1lbGl1bV9lZGlkICplZGlkczsK PiA+ID4gICAJc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0czsKPiA+ID4gICAJaW50IHBvcnRf Y291bnQ7Cj4gPiA+ICsKPiA+ID4gKwljaGFyICpmcmFtZV9kdW1wX3BhdGg7Cj4gPiA+ICAgfTsK PiA+ID4gICAKPiA+ID4gICBzdGF0aWMgc3RydWN0IGNoYW1lbGl1bSAqY2xlYW51cF9pbnN0YW5j ZTsKPiA+ID4gICAKPiA+ID4gICAvKioKPiA+ID4gKyAqIGNoYW1lbGl1bV9nZXRfZnJhbWVfZHVt cF9wYXRoOgo+ID4gPiArICogQGNoYW1lbGl1bTogVGhlIENoYW1lbGl1bSBpbnN0YW5jZSB0byB1 c2UKPiA+ID4gKyAqCj4gPiA+ICsgKiBSZXRyaWV2ZXMgdGhlIHBhdGggdG8gZHVtcCBmcmFtZXMg dG8uCj4gPiA+ICsgKgo+ID4gPiArICogUmV0dXJuczogYSBzdHJpbmcgd2l0aCB0aGUgZnJhbWUg ZHVtcCBwYXRoCj4gPiA+ICsgKi8KPiA+ID4gK2NoYXIgKmNoYW1lbGl1bV9nZXRfZnJhbWVfZHVt cF9wYXRoKHN0cnVjdCBjaGFtZWxpdW0gKmNoYW1lbGl1bSkKPiA+ID4gK3sKPiA+ID4gKwlyZXR1 cm4gY2hhbWVsaXVtLT5mcmFtZV9kdW1wX3BhdGg7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gKy8q Kgo+ID4gPiAgICAqIGNoYW1lbGl1bV9nZXRfcG9ydHM6Cj4gPiA+ICAgICogQGNoYW1lbGl1bTog VGhlIENoYW1lbGl1bSBpbnN0YW5jZSB0byB1c2UKPiA+ID4gICAgKiBAY291bnQ6IFdoZXJlIHRv IHN0b3JlIHRoZSBudW1iZXIgb2YgcG9ydHMKPiA+ID4gQEAgLTEzMzgsNiArMTM1NCwxMSBAQCBz dGF0aWMgYm9vbCBjaGFtZWxpdW1fcmVhZF9jb25maWcoc3RydWN0Cj4gPiA+IGNoYW1lbGl1bSAq Y2hhbWVsaXVtLCBpbnQgZHJtX2ZkKQo+ID4gPiAgIAkJcmV0dXJuIGZhbHNlOwo+ID4gPiAgIAl9 Cj4gPiA+ICAgCj4gPiA+ICsJY2hhbWVsaXVtLT5mcmFtZV9kdW1wX3BhdGggPQo+ID4gPiBnX2tl eV9maWxlX2dldF9zdHJpbmcoaWd0X2tleV9maWxlLAo+ID4gPiArCQkJCQkJCSAgICJDaGFtZWxp dQo+ID4gPiBtIiwKPiA+ID4gKwkJCQkJCQkgICAiRnJhbWVEdW0KPiA+ID4gcFBhdGgiLAo+ID4g PiArCQkJCQkJCSAgICAmZXJyb3IpOwo+ID4gPiArCj4gPiA+ICAgCXJldHVybiBjaGFtZWxpdW1f cmVhZF9wb3J0X21hcHBpbmdzKGNoYW1lbGl1bSwgZHJtX2ZkKTsKPiA+ID4gICB9Cj4gPiA+ICAg Cj4gPiA+IGRpZmYgLS1naXQgYS9saWIvaWd0X2NoYW1lbGl1bS5oIGIvbGliL2lndF9jaGFtZWxp dW0uaAo+ID4gPiBpbmRleCA5MDhlMDNkMS4uYWE4ODE5NzEgMTAwNjQ0Cj4gPiA+IC0tLSBhL2xp Yi9pZ3RfY2hhbWVsaXVtLmgKPiA+ID4gKysrIGIvbGliL2lndF9jaGFtZWxpdW0uaAo+ID4gPiBA QCAtNDIsNiArNDIsNyBAQCBzdHJ1Y3QgY2hhbWVsaXVtICpjaGFtZWxpdW1faW5pdChpbnQgZHJt X2ZkKTsKPiA+ID4gICB2b2lkIGNoYW1lbGl1bV9kZWluaXQoc3RydWN0IGNoYW1lbGl1bSAqY2hh bWVsaXVtKTsKPiA+ID4gICB2b2lkIGNoYW1lbGl1bV9yZXNldChzdHJ1Y3QgY2hhbWVsaXVtICpj aGFtZWxpdW0pOwo+ID4gPiAgIAo+ID4gPiArY2hhciAqY2hhbWVsaXVtX2dldF9mcmFtZV9kdW1w X3BhdGgoc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtKTsKPiA+ID4gICBzdHJ1Y3QgY2hhbWVs aXVtX3BvcnQgKipjaGFtZWxpdW1fZ2V0X3BvcnRzKHN0cnVjdCBjaGFtZWxpdW0KPiA+ID4gKmNo YW1lbGl1bSwKPiA+ID4gICAJCQkJCSAgICBpbnQgKmNvdW50KTsKPiA+ID4gICB1bnNpZ25lZCBp bnQgY2hhbWVsaXVtX3BvcnRfZ2V0X3R5cGUoY29uc3Qgc3RydWN0IGNoYW1lbGl1bV9wb3J0Cj4g PiA+ICpwb3J0KTsKPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZGVidWdmcy5jIGIvbGliL2ln dF9kZWJ1Z2ZzLmMKPiA+ID4gaW5kZXggODBmMjVjNjEuLmRjYjRlMGE3IDEwMDY0NAo+ID4gPiAt LS0gYS9saWIvaWd0X2RlYnVnZnMuYwo+ID4gPiArKysgYi9saWIvaWd0X2RlYnVnZnMuYwo+ID4g PiBAQCAtMjgyLDYgKzI4MiwyNiBAQCBib29sIGlndF9kZWJ1Z2ZzX3NlYXJjaChpbnQgZGV2aWNl LCBjb25zdCBjaGFyCj4gPiA+ICpmaWxlbmFtZSwgY29uc3QgY2hhciAqc3Vic3RyaW5nKQo+ID4g PiAgICAqLwo+ID4gPiAgIAo+ID4gPiAgIC8qKgo+ID4gPiArICogaWd0X2NoZWNrX2NyY19lcXVh bDoKPiA+ID4gKyAqIEBhOiBmaXJzdCBwaXBlIENSQyB2YWx1ZQo+ID4gPiArICogQGI6IHNlY29u ZCBwaXBlIENSQyB2YWx1ZQo+ID4gPiArICoKPiA+ID4gKyAqIENvbXBhcmVzIHR3byBDUkMgdmFs dWVzIGFuZCByZXR1cm4gd2hldGhlciB0aGV5IG1hdGNoLgo+ID4gPiArICoKPiA+ID4gKyAqIFJl dHVybnM6IEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIENSQyB2YWx1ZXMgbWF0Y2gK PiA+ID4gKyAqLwo+ID4gPiArYm9vbCBpZ3RfY2hlY2tfY3JjX2VxdWFsKGNvbnN0IGlndF9jcmNf dCAqYSwgY29uc3QgaWd0X2NyY190ICpiKQo+ID4gPiArewo+ID4gPiArCWludCBpOwo+IAo+IEkg d291bGQgbGlrZSB0byBzZWU6Cj4gCj4gaWYgKGEtPm5fd29yZHMgIT0gYi0+bl93b3JkcykKPiAg ICAgIHJldHVybiBmYWxzZTsKClZlcnkgZ29vZCBzdWdnZXN0aW9uISBJJ2xsIHRha2UgdGhhdCBp biBpbiB0aGUgbmV4dCByZXZpc2lvbi4KCj4gPiA+ICsKPiA+ID4gKwlmb3IgKGkgPSAwOyBpIDwg YS0+bl93b3JkczsgaSsrKQo+ID4gPiArCQlpZiAoYS0+Y3JjW2ldICE9IGItPmNyY1tpXSkKPiA+ ID4gKwkJCXJldHVybiBmYWxzZTsKPiA+ID4gKwo+ID4gPiArCXJldHVybiB0cnVlOwo+ID4gPiAr fQo+ID4gPiArCj4gPiAKPiA+IE1ha2UgdGhpcyBhIHNlcGFyYXRlIHBhdGNoLCBhbmQgaW5zdGVh ZCBvZiBoYXZpbmcgYW5vdGhlciBmdW5jdGlvbiBkbwo+ID4gdGhlIENSQyBjYWxjdWxhdGlvbnMg anVzdCBoYXZlIHNvbWV0aGluZyBsaWtlIHRoaXM6Cj4gPiAKPiA+ICAgKiBzdGF0aWMgaW50IGln dF9maW5kX2NyY19taXNtYXRjaChjb25zdCBpZ3RfY3JjX3QgKmEsIGNvbnN0IGlndF9jcmNfdAo+ ID4gICAgICpiKTogcmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IENSQyBtaXNtYXRjaCwg MCBpZiBub25lIHdhcwo+ID4gICAgIGZvdW5kCj4gCj4gU291bmRzIGdvb2QsIGJ1dCBubyBlcnJv ciBzaG91bGQgcmV0dXJuIC0xLCBhcyB0byBkaWZmZXJlbnRpYXRlIGlmIHRoZSAKPiBmaXJzdCB3 b3JkIHdhcyBhbHJlYWR5IGRpZmZlcmVudC4KCkkgZG9uJ3QgdW5kZXJzdGFuZCB0aGUgcG9pbnQg b2YgZ2V0dGluZyB0aGUgaW5kZXggb2YgdGhlIENSQyBtaXNtYXRjaCBhdCBhbGwuClRoZSBvbmx5 IHJlbGV2YW50IGluZm9ybWF0aW9uIGhlcmUgc2hvdWxkIGJlIHdoZXRoZXIgaXQgbWF0Y2hlcyBv ciBub3QgKHdoaWNoCndvdWxkIGJlIGNvdmVyZWQgYnkgaWd0X2NoZWNrX2NyY19lcXVhbCkuIENh biB5b3UgZWxsYWJvcmF0ZSBvbiB0aGlzPwoKPiA+ICAgKiBib29sIGlndF9jaGVja19jcmNfZXF1 YWwoKTogdXNlcyBpZ3RfZmluZF9jcmNfbWlzbWF0Y2goKSB0byBmaWd1cmUKPiA+ICAgICBvdXQg aWYgYW55dGhpbmcgbWlzbWF0Y2hlZCwgYW5kIHJldHVybiB0cnVlIGlmIHNvbWV0aGluZyBkaWQg KGFzCj4gPiAgICAgd2VsbCwgYWxzbyBzcGl0IG91dCBzb21lIGRlYnVnZ2luZyBpbmZvIG1lbnRp b25pbmcgdGhlcmUgd2FzIGEKPiA+ICAgICBtaXNtYXRjaCkKPiA+ICAgKiB2b2lkIGlndF9hc3Nl cnRfY3JjX2VxdWFsKCk6IHVzZXMgaWd0X2ZpbmRfY3JjX21pc21hdGNoKCkgdG8gZmlndXJlCj4g PiAgICAgb3V0IGlmIGFueXRoaW5nIG1pc21hdGNoZWQuIElmIHRoZSBhc3NlcnRpb24gZmFpbHMs IHVzZQo+ID4gICAgIGlndF9hc3NlcnRfZXEoKSBvbiB0aGUgbWlzbWF0Y2hlZCBjcmMgc28gd2Ug c3RpbGwgZ2V0IGEgdXNlZnVsIGVycm9yCj4gPiAgICAgbWVzc2FnZSBvbiBDUkMgZmFpbHVyZXMu Cj4gPiAKPiA+IFRoZXJlIGlzbid0IG11Y2ggY29kZSByZXF1aXJlZCB0byBhY3R1YWxseSBjb21w YXJlIENSQ3MsIGhvd2V2ZXIgSSdkCj4gPiBzdGlsbCBwcmVmZXIgb25seSBoYXZpbmcgb25lIGZ1 bmN0aW9uIGRvaW5nIHRoZSBhY3R1YWwgY29tcGFyaXNvbiBsb2dpYwo+ID4gaGVyZSBzbyB3ZSBv bmx5IGhhdmUgb25lIHBpZWNlIG9mIGNvZGUgdG8gdXBkYXRlIGlmIHdlIG5lZWQgdG8gbWFrZQo+ ID4gY2hhbmdlcyB0byBpdCBpbiB0aGUgZnV0dXJlLgo+ID4gCj4gPiBNdXB1ZiwgeW91ciBvcGlu aW9uIG9uIHRoaXM/IF4KPiA+IAo+ID4gPiArLyoqCj4gPiA+ICAgICogaWd0X2Fzc2VydF9jcmNf ZXF1YWw6Cj4gPiA+ICAgICogQGE6IGZpcnN0IHBpcGUgQ1JDIHZhbHVlCj4gPiA+ICAgICogQGI6 IHNlY29uZCBwaXBlIENSQyB2YWx1ZQo+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9kZWJ1Z2Zz LmggYi9saWIvaWd0X2RlYnVnZnMuaAo+ID4gPiBpbmRleCA3Yjg0NmE4My4uMjY5NWNiZGEgMTAw NjQ0Cj4gPiA+IC0tLSBhL2xpYi9pZ3RfZGVidWdmcy5oCj4gPiA+ICsrKyBiL2xpYi9pZ3RfZGVi dWdmcy5oCj4gPiA+IEBAIC0xMTMsNiArMTEzLDcgQEAgZW51bSBpbnRlbF9waXBlX2NyY19zb3Vy Y2Ugewo+ID4gPiAgICAgICAgICAgSU5URUxfUElQRV9DUkNfU09VUkNFX01BWCwKPiA+ID4gICB9 Owo+ID4gPiAgIAo+ID4gPiArYm9vbCBpZ3RfY2hlY2tfY3JjX2VxdWFsKGNvbnN0IGlndF9jcmNf dCAqYSwgY29uc3QgaWd0X2NyY190ICpiKTsKPiA+ID4gICB2b2lkIGlndF9hc3NlcnRfY3JjX2Vx dWFsKGNvbnN0IGlndF9jcmNfdCAqYSwgY29uc3QgaWd0X2NyY190ICpiKTsKPiA+ID4gICBjaGFy ICppZ3RfY3JjX3RvX3N0cmluZyhpZ3RfY3JjX3QgKmNyYyk7Cj4gPiA+ICAgCj4gPiA+IGRpZmYg LS1naXQgYS90ZXN0cy9jaGFtZWxpdW0uYyBiL3Rlc3RzL2NoYW1lbGl1bS5jCj4gPiA+IGluZGV4 IDVjZjhiM2FmLi4zZDk1YzA1YyAxMDA2NDQKPiA+ID4gLS0tIGEvdGVzdHMvY2hhbWVsaXVtLmMK PiA+ID4gKysrIGIvdGVzdHMvY2hhbWVsaXVtLmMKPiA+ID4gQEAgLTM4MSw3ICszODEsNyBAQCBk aXNhYmxlX291dHB1dChkYXRhX3QgKmRhdGEsCj4gPiA+ICAgfQo+ID4gPiAgIAo+ID4gPiAgIHN0 YXRpYyB2b2lkCj4gPiA+IC10ZXN0X2Rpc3BsYXlfY3JjX3NpbmdsZShkYXRhX3QgKmRhdGEsIHN0 cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydCkKPiA+ID4gK3Rlc3RfZGlzcGxheV9jcmMoZGF0YV90 ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsIGludAo+ID4gPiBjb3VudCkKPiA+ ID4gICB7Cj4gPiA+ICAgCWlndF9kaXNwbGF5X3QgZGlzcGxheTsKPiA+ID4gICAJaWd0X291dHB1 dF90ICpvdXRwdXQ7Cj4gPiA+IEBAIC0zOTAsOSArMzkwLDE0IEBAIHRlc3RfZGlzcGxheV9jcmNf c2luZ2xlKGRhdGFfdCAqZGF0YSwgc3RydWN0Cj4gPiA+IGNoYW1lbGl1bV9wb3J0ICpwb3J0KQo+ ID4gPiAgIAlpZ3RfY3JjX3QgKmV4cGVjdGVkX2NyYzsKPiA+ID4gICAJc3RydWN0IGNoYW1lbGl1 bV9mYl9jcmMgKmZiX2NyYzsKPiA+ID4gICAJc3RydWN0IGlndF9mYiBmYjsKPiA+ID4gKwlzdHJ1 Y3QgY2hhbWVsaXVtX2ZyYW1lX2R1bXAgKmZyYW1lOwo+ID4gPiAgIAlkcm1Nb2RlTW9kZUluZm8g Km1vZGU7Cj4gPiA+ICAgCWRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+ID4gLQlpbnQg ZmJfaWQsIGk7Cj4gPiA+ICsJaW50IGZiX2lkLCBpLCBqLCBjYXB0dXJlZF9mcmFtZV9jb3VudDsK PiA+ID4gKwljb25zdCBjaGFyICpjb25uZWN0b3JfbmFtZTsKPiA+ID4gKwljaGFyICpmcmFtZV9k dW1wX3BhdGg7Cj4gPiA+ICsJY2hhciBwYXRoW1BBVEhfTUFYXTsKPiA+ID4gKwlib29sIGVxOwo+ ID4gPiAgIAo+ID4gPiAgIAlyZXNldF9zdGF0ZShkYXRhLCBwb3J0KTsKPiA+ID4gICAKPiA+ID4g QEAgLTQwMSw2ICs0MDYsOSBAQCB0ZXN0X2Rpc3BsYXlfY3JjX3NpbmdsZShkYXRhX3QgKmRhdGEs IHN0cnVjdAo+ID4gPiBjaGFtZWxpdW1fcG9ydCAqcG9ydCkKPiA+ID4gICAJcHJpbWFyeSA9IGln dF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUob3V0cHV0LAo+ID4gPiBEUk1fUExBTkVfVFlQRV9QUklN QVJZKTsKPiA+ID4gICAJaWd0X2Fzc2VydChwcmltYXJ5KTsKPiA+ID4gICAKPiA+ID4gKwljb25u ZWN0b3JfbmFtZSA9IGttc3Rlc3RfY29ubmVjdG9yX3R5cGVfc3RyKGNvbm5lY3Rvci0KPiA+ID4g PiBjb25uZWN0b3JfdHlwZSk7Cj4gPiA+IAo+ID4gPiArCWZyYW1lX2R1bXBfcGF0aCA9IGNoYW1l bGl1bV9nZXRfZnJhbWVfZHVtcF9wYXRoKGRhdGEtCj4gPiA+ID4gY2hhbWVsaXVtKTsKPiA+ID4g Cj4gPiA+ICsKPiA+ID4gICAJZm9yIChpID0gMDsgaSA8IGNvbm5lY3Rvci0+Y291bnRfbW9kZXM7 IGkrKykgewo+ID4gPiAgIAkJbW9kZSA9ICZjb25uZWN0b3ItPm1vZGVzW2ldOwo+ID4gPiAgIAkJ ZmJfaWQgPSBpZ3RfY3JlYXRlX2NvbG9yX3BhdHRlcm5fZmIoZGF0YS0+ZHJtX2ZkLAo+ID4gPiBA QCAtNDE1LDc0ICs0MjMsNDAgQEAgdGVzdF9kaXNwbGF5X2NyY19zaW5nbGUoZGF0YV90ICpkYXRh LCBzdHJ1Y3QKPiA+ID4gY2hhbWVsaXVtX3BvcnQgKnBvcnQpCj4gPiA+ICAgCj4gPiA+ICAgCQll bmFibGVfb3V0cHV0KGRhdGEsIHBvcnQsIG91dHB1dCwgbW9kZSwgJmZiKTsKPiA+ID4gICAKPiA+ ID4gLQkJaWd0X2RlYnVnKCJUZXN0aW5nIHNpbmdsZSBDUkMgZmV0Y2hcbiIpOwo+ID4gPiAtCj4g PiA+IC0JCWNyYyA9IGNoYW1lbGl1bV9nZXRfY3JjX2Zvcl9hcmVhKGRhdGEtPmNoYW1lbGl1bSwK PiA+ID4gcG9ydCwKPiA+ID4gLQkJCQkJCSAwLCAwLCAwLCAwKTsKPiA+ID4gLQo+ID4gPiAtCQll eHBlY3RlZF9jcmMgPQo+ID4gPiBjaGFtZWxpdW1fY2FsY3VsYXRlX2ZiX2NyY19yZXN1bHQoZmJf Y3JjKTsKPiA+ID4gLQo+ID4gPiAtCQlpZ3RfYXNzZXJ0X2NyY19lcXVhbChjcmMsIGV4cGVjdGVk X2NyYyk7Cj4gPiA+IC0JCWZyZWUoZXhwZWN0ZWRfY3JjKTsKPiA+ID4gLQkJZnJlZShjcmMpOwo+ ID4gPiAtCj4gPiA+IC0JCWRpc2FibGVfb3V0cHV0KGRhdGEsIHBvcnQsIG91dHB1dCk7Cj4gPiA+ IC0JCWlndF9yZW1vdmVfZmIoZGF0YS0+ZHJtX2ZkLCAmZmIpOwo+ID4gPiAtCX0KPiA+ID4gLQo+ ID4gPiAtCWRybU1vZGVGcmVlQ29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gPiA+IC0JaWd0X2Rpc3Bs YXlfZmluaSgmZGlzcGxheSk7Cj4gPiA+IC19Cj4gPiA+IC0KPiA+ID4gLXN0YXRpYyB2b2lkCj4g PiA+IC10ZXN0X2Rpc3BsYXlfY3JjX211bHRpcGxlKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1l bGl1bV9wb3J0ICpwb3J0KQo+ID4gPiAtewo+ID4gPiAtCWlndF9kaXNwbGF5X3QgZGlzcGxheTsK PiA+ID4gLQlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKPiA+ID4gLQlpZ3RfcGxhbmVfdCAqcHJpbWFy eTsKPiA+ID4gLQlpZ3RfY3JjX3QgKmNyYzsKPiA+ID4gLQlpZ3RfY3JjX3QgKmV4cGVjdGVkX2Ny YzsKPiA+ID4gLQlzdHJ1Y3QgY2hhbWVsaXVtX2ZiX2NyYyAqZmJfY3JjOwo+ID4gPiAtCXN0cnVj dCBpZ3RfZmIgZmI7Cj4gPiA+IC0JZHJtTW9kZU1vZGVJbmZvICptb2RlOwo+ID4gPiAtCWRybU1v ZGVDb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+ID4gLQlpbnQgZmJfaWQsIGksIGosIGNhcHR1cmVk X2ZyYW1lX2NvdW50Owo+ID4gPiArCQljaGFtZWxpdW1fY2FwdHVyZShkYXRhLT5jaGFtZWxpdW0s IHBvcnQsIDAsIDAsIDAsIDAsCj4gPiA+IGNvdW50KTsKPiA+ID4gKwkJY3JjID0gY2hhbWVsaXVt X3JlYWRfY2FwdHVyZWRfY3JjcyhkYXRhLT5jaGFtZWxpdW0sCj4gPiA+ICsJCQkJCQkgICAmY2Fw dHVyZWRfZnJhbWVfYwo+ID4gPiBvdW50KTsKPiA+ID4gICAKPiA+ID4gLQlyZXNldF9zdGF0ZShk YXRhLCBwb3J0KTsKPiA+ID4gKwkJaWd0X2Fzc2VydChjYXB0dXJlZF9mcmFtZV9jb3VudCA9PSBj b3VudCk7Cj4gPiA+ICAgCj4gPiA+IC0Jb3V0cHV0ID0gcHJlcGFyZV9vdXRwdXQoZGF0YSwgJmRp c3BsYXksIHBvcnQpOwo+ID4gPiAtCWNvbm5lY3RvciA9IGNoYW1lbGl1bV9wb3J0X2dldF9jb25u ZWN0b3IoZGF0YS0+Y2hhbWVsaXVtLAo+ID4gPiBwb3J0LCBmYWxzZSk7Cj4gPiA+IC0JcHJpbWFy eSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUob3V0cHV0LAo+ID4gPiBEUk1fUExBTkVfVFlQ RV9QUklNQVJZKTsKPiA+ID4gLQlpZ3RfYXNzZXJ0KHByaW1hcnkpOwo+ID4gPiArCQlpZ3RfZGVi dWcoIkNhcHR1cmVkICVkIGZyYW1lc1xuIiwKPiA+ID4gY2FwdHVyZWRfZnJhbWVfY291bnQpOwo+ ID4gPiAgIAo+ID4gPiAtCWZvciAoaSA9IDA7IGkgPCBjb25uZWN0b3ItPmNvdW50X21vZGVzOyBp KyspIHsKPiA+ID4gLQkJbW9kZSA9ICZjb25uZWN0b3ItPm1vZGVzW2ldOwo+ID4gPiAtCQlmYl9p ZCA9IGlndF9jcmVhdGVfY29sb3JfcGF0dGVybl9mYihkYXRhLT5kcm1fZmQsCj4gPiA+IC0JCQkJ CQkgICAgbW9kZS0+aGRpc3BsYXksCj4gPiA+IC0JCQkJCQkgICAgbW9kZS0+dmRpc3BsYXksCj4g PiA+IC0JCQkJCQkgICAgRFJNX0ZPUk1BVF9YUkdCOAo+ID4gPiA4ODgsCj4gPiA+IC0JCQkJCQkg ICAgTE9DQUxfRFJNX0ZPUk1BVAo+ID4gPiBfTU9EX05PTkUsCj4gPiA+IC0JCQkJCQkgICAgMCwg MCwgMCwgJmZiKTsKPiA+ID4gLQkJaWd0X2Fzc2VydChmYl9pZCA+IDApOwo+ID4gPiArCQlleHBl Y3RlZF9jcmMgPQo+ID4gPiBjaGFtZWxpdW1fY2FsY3VsYXRlX2ZiX2NyY19yZXN1bHQoZmJfY3Jj KTsKPiA+ID4gICAKPiA+ID4gLQkJZmJfY3JjID0gY2hhbWVsaXVtX2NhbGN1bGF0ZV9mYl9jcmNf bGF1bmNoKGRhdGEtCj4gPiA+ID4gZHJtX2ZkLCAmZmIpOwo+ID4gPiAKPiA+ID4gKwkJZm9yIChq ID0gMDsgaiA8IGNhcHR1cmVkX2ZyYW1lX2NvdW50OyBqKyspIHsKPiA+ID4gKwkJCWVxID0gaWd0 X2NoZWNrX2NyY19lcXVhbCgmY3JjW2pdLAo+ID4gPiBleHBlY3RlZF9jcmMpOwo+ID4gPiArCQkJ aWYgKCFlcSAmJiBmcmFtZV9kdW1wX3BhdGgpIHsKPiA+ID4gKwkJCQlmcmFtZSA9Cj4gPiA+IGNo YW1lbGl1bV9yZWFkX2NhcHR1cmVkX2ZyYW1lKGRhdGEtPmNoYW1lbGl1bSwKPiA+ID4gKwkJCQkJ CQkJCj4gPiA+ICAgIGopOwo+ID4gPiAgIAo+ID4gPiAtCQllbmFibGVfb3V0cHV0KGRhdGEsIHBv cnQsIG91dHB1dCwgbW9kZSwgJmZiKTsKPiA+ID4gKwkJCQlpZ3RfZGVidWcoIkR1bXBpbmcgcmVm ZXJlbmNlIGFuZAo+ID4gPiBjaGFtZWxpdW0gZnJhbWVzIHRvICVzLi4uXG4iLAo+ID4gPiArCQkJ CQkgIGZyYW1lX2R1bXBfcGF0aCk7Cj4gPiA+ICAgCj4gPiA+IC0JCS8qIFdlIHdhbnQgdG8ga2Vl cCB0aGUgZGlzcGxheSBydW5uaW5nIGZvciBhIGxpdHRsZQo+ID4gPiBiaXQsIHNpbmNlCj4gPiA+ IC0JCSAqIHRoZXJlJ3MgYWx3YXlzIHRoZSBwb3RlbnRpYWwgdGhlIGRyaXZlciBpc24ndAo+ID4g PiBhYmxlIHRvIGtlZXAKPiA+ID4gLQkJICogdGhlIGRpc3BsYXkgcnVubmluZyBwcm9wZXJseSBm b3IgdmVyeSBsb25nCj4gPiA+IC0JCSAqLwo+ID4gPiAtCQljaGFtZWxpdW1fY2FwdHVyZShkYXRh LT5jaGFtZWxpdW0sIHBvcnQsIDAsIDAsIDAsIDAsCj4gPiA+IDMpOwo+ID4gPiAtCQljcmMgPSBj aGFtZWxpdW1fcmVhZF9jYXB0dXJlZF9jcmNzKGRhdGEtPmNoYW1lbGl1bSwKPiA+ID4gLQkJCQkJ CSAgICZjYXB0dXJlZF9mcmFtZV9jCj4gPiA+IG91bnQpOwo+ID4gPiArCQkJCXNucHJpbnRmKHBh dGgsIFBBVEhfTUFYLCAiJXMvZnJhbWUtCj4gPiA+IHJlZmVyZW5jZS0lcy5wbmciLAo+ID4gPiAr CQkJCQkgZnJhbWVfZHVtcF9wYXRoLAo+ID4gPiBjb25uZWN0b3JfbmFtZSk7Cj4gPiA+ICsJCQkJ aWd0X3dyaXRlX2ZiX3RvX3BuZyhkYXRhLT5kcm1fZmQsCj4gPiA+ICZmYiwgcGF0aCk7Cj4gPiA+ ICAgCj4gPiA+IC0JCWlndF9kZWJ1ZygiQ2FwdHVyZWQgJWQgZnJhbWVzXG4iLAo+ID4gPiBjYXB0 dXJlZF9mcmFtZV9jb3VudCk7Cj4gPiA+ICsJCQkJc25wcmludGYocGF0aCwgUEFUSF9NQVgsICIl cy9mcmFtZS0KPiA+ID4gY2hhbWVsaXVtLSVzLnBuZyIsCj4gPiA+ICsJCQkJCSBmcmFtZV9kdW1w X3BhdGgsCj4gPiA+IGNvbm5lY3Rvcl9uYW1lKTsKPiA+ID4gKwkJCQljaGFtZWxpdW1fd3JpdGVf ZnJhbWVfdG9fcG5nKGRhdGEtCj4gPiA+ID4gY2hhbWVsaXVtLAo+ID4gPiAKPiA+ID4gKwkJCQkJ CQkgICAgIGZyYW1lLAo+ID4gPiBwYXRoKTsKPiA+ID4gICAKPiA+ID4gLQkJZXhwZWN0ZWRfY3Jj ID0KPiA+ID4gY2hhbWVsaXVtX2NhbGN1bGF0ZV9mYl9jcmNfcmVzdWx0KGZiX2NyYyk7Cj4gPiA+ ICsJCQkJY2hhbWVsaXVtX2Rlc3Ryb3lfZnJhbWVfZHVtcChmcmFtZSk7Cj4gPiA+ICsJCQl9Cj4g PiA+ICAgCj4gPiA+IC0JCWZvciAoaiA9IDA7IGogPCBjYXB0dXJlZF9mcmFtZV9jb3VudDsgaisr KQo+ID4gPiAtCQkJaWd0X2Fzc2VydF9jcmNfZXF1YWwoJmNyY1tqXSwgZXhwZWN0ZWRfY3JjKTsK PiA+ID4gKwkJCWlndF9mYWlsX29uX2YoIWVxLAo+ID4gPiArCQkJCSAgICAgICJDaGFtZWxpdW0g ZnJhbWUgQ1JDIG1pc21hdGNoCj4gPiA+IHdpdGggcmVmZXJlbmNlXG4iKTsKPiA+ID4gKwkJfQo+ ID4gCj4gPiBUaGVyZSdzIGxvdHMgb2YgcG90ZW50aWFsIGhlcmUgZm9yIGNvcHkgcGFzdGEgdG8g Zm9ybSBpbiB0aGUgZnV0dXJlLAo+ID4gc2luY2UgdGhlIEFQSSBoZXJlIHB1dHMgYSBsb3Qgb2Yg d29yayBvbiB0aGUgY2FsbGVyIHRvIHNldCB0aGluZ3MgdXAKPiA+IGZvciBmcmFtZSBkdW1waW5n LiBJTU8sIGl0IHdvdWxkIGJlIHdvcnRoIGl0IHRvIHRlYWNoIHRoZSBDUkMgY2hlY2tpbmcKPiA+ IGZ1bmN0aW9ucyB0byBhdXRvbWF0aWNhbGx5IGRvIGZyYW1lIGR1bXBzIG9uIG1pc21hdGNoIGlm IHRoZSBDUkMgc291cmNlCj4gPiBzdXBwb3J0cyBpdC4gVGhpcyB3aWxsIHNhdmUgdXMgZnJvbSBo YXZpbmcgdG8gaGF2ZSBzZXBhcmF0ZSBmcmFtZSBkdW1wCj4gPiBBUElzIGluIHRoZSBmdXR1cmUg aWYgd2UgZXZlciBlbmQgdXAgYWRkaW5nIHN1cHBvcnQgZm9yIG90aGVyIGtpbmRzIG9mCj4gPiBh dXRvbWF0ZWQgdGVzdCBlcXVpcG1lbnQuCj4gPiAKPiA+IEFzIHdlbGwsIEkgbGlrZSBob3cgeW91 IHJlbW92ZWQgdGhlIHJlZHVuZGFuY3kgYmV0d2Vlbgo+ID4gdGVzdF9kaXNwbGF5X2NyY19zaW5n bGUoKSBhbmQgdGVzdF9kaXNwbGF5X2NyY19tdWx0aXBsZSgpLiBIb3dldmVyCj4gPiBzaW5jZSB0 aG9zZSBhcmUgc29tZXdoYXQgdW5yZWxhdGVkIGNoYW5nZXMgdG8gdGhlIGNvZGUgcGF0aCBmb3Ig dGhlc2UKPiA+IHRlc3RzIGl0IHdvdWxkIGJlIGJldHRlciB0byBoYXZlIHRoYXQgcmUtZmFjdG9y aW5nIGFzIGEgc2VwYXJhdGUgcGF0Y2gKPiA+IHNvIGFzIHRvIG1ha2UgaXQgZWFzaWVyIGZvciBh bnlvbmUgd2hvIG1pZ2h0IG5lZWQgdG8gYmlzZWN0IHRoaXMgY29kZQo+ID4gaW4gdGhlIGZ1dHVy ZS4KPiA+IAo+ID4gPiAgIAo+ID4gPiAgIAkJZnJlZShleHBlY3RlZF9jcmMpOwo+ID4gPiAgIAkJ ZnJlZShjcmMpOwo+ID4gPiBAQCAtNjQ0LDEwICs2MTgsMTAgQEAgaWd0X21haW4KPiA+ID4gICAJ CQkJCQkJZWRpZF9pZCwKPiA+ID4gYWx0X2VkaWRfaWQpOwo+ID4gPiAgIAo+ID4gPiAgIAkJY29u bmVjdG9yX3N1YnRlc3QoImRwLWNyYy1zaW5nbGUiLCBEaXNwbGF5UG9ydCkKPiA+ID4gLQkJCXRl c3RfZGlzcGxheV9jcmNfc2luZ2xlKCZkYXRhLCBwb3J0KTsKPiA+ID4gKwkJCXRlc3RfZGlzcGxh eV9jcmMoJmRhdGEsIHBvcnQsIDEpOwo+ID4gPiAgIAo+ID4gPiAgIAkJY29ubmVjdG9yX3N1YnRl c3QoImRwLWNyYy1tdWx0aXBsZSIsIERpc3BsYXlQb3J0KQo+ID4gPiAtCQkJdGVzdF9kaXNwbGF5 X2NyY19tdWx0aXBsZSgmZGF0YSwgcG9ydCk7Cj4gPiA+ICsJCQl0ZXN0X2Rpc3BsYXlfY3JjKCZk YXRhLCBwb3J0LCAzKTsKPiA+ID4gICAJfQo+ID4gPiAgIAo+ID4gPiAgIAlpZ3Rfc3VidGVzdF9n cm91cCB7Cj4gPiA+IEBAIC02OTgsMTAgKzY3MiwxMCBAQCBpZ3RfbWFpbgo+ID4gPiAgIAkJCQkJ CQllZGlkX2lkLAo+ID4gPiBhbHRfZWRpZF9pZCk7Cj4gPiA+ICAgCj4gPiA+ICAgCQljb25uZWN0 b3Jfc3VidGVzdCgiaGRtaS1jcmMtc2luZ2xlIiwgSERNSUEpCj4gPiA+IC0JCQl0ZXN0X2Rpc3Bs YXlfY3JjX3NpbmdsZSgmZGF0YSwgcG9ydCk7Cj4gPiA+ICsJCQl0ZXN0X2Rpc3BsYXlfY3JjKCZk YXRhLCBwb3J0LCAxKTsKPiA+ID4gICAKPiA+ID4gICAJCWNvbm5lY3Rvcl9zdWJ0ZXN0KCJoZG1p LWNyYy1tdWx0aXBsZSIsIEhETUlBKQo+ID4gPiAtCQkJdGVzdF9kaXNwbGF5X2NyY19tdWx0aXBs ZSgmZGF0YSwgcG9ydCk7Cj4gPiA+ICsJCQl0ZXN0X2Rpc3BsYXlfY3JjKCZkYXRhLCBwb3J0LCAz KTsKPiA+ID4gICAJfQo+ID4gPiAgIAo+ID4gPiAgIAlpZ3Rfc3VidGVzdF9ncm91cCB7Ci0tIApQ YXVsIEtvY2lhbGtvd3NraSA8cGF1bC5rb2NpYWxrb3dza2lAbGludXguaW50ZWwuY29tPgpJbnRl bCBGaW5sYW5kIE95IC0gQklDIDAzNTc2MDYtNCAtIFdlc3RlbmRpbmthdHUgNywgMDIxNjAgRXNw b28sIEZJbmxhbmQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==