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: Mon, 10 Jul 2017 13:12:54 +0300 Message-ID: <1499681574.1374.1.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> <1499340920.1379.10.camel@linux.intel.com> <1499379821.20388.29.camel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id D2AE989319 for ; Mon, 10 Jul 2017 10:12:58 +0000 (UTC) In-Reply-To: <1499379821.20388.29.camel@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lyude Paul , Martin Peres , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE3LTA3LTA2IGF0IDE4OjIzIC0wNDAwLCBMeXVkZSBQYXVsIHdyb3RlOgo+IE9u IFRodSwgMjAxNy0wNy0wNiBhdCAxNDozNSArMDMwMCwgUGF1bCBLb2NpYWxrb3dza2kgd3JvdGU6 Cj4gPiBPbiBUaHUsIDIwMTctMDctMDYgYXQgMTA6NDEgKzAzMDAsIE1hcnRpbiBQZXJlcyB3cm90 ZToKPiA+ID4gT24gMDYvMDcvMTcgMDA6NDQsIEx5dWRlIFBhdWwgd3JvdGU6Cj4gPiA+ID4gT24g V2VkLCAyMDE3LTA3LTA1IGF0IDExOjA0ICswMzAwLCBQYXVsIEtvY2lhbGtvd3NraSB3cm90ZToK PiA+ID4gPiA+IFdoZW4gYSBDUkMgY29tcGFyaXNvbiBlcnJvciBvY2N1cnMsIGl0IGlzIHF1aXRl IHVzZWZ1bCB0byBnZXQKPiA+ID4gPiA+IGEKPiA+ID4gPiA+IGR1bXAKPiA+ID4gPiA+IG9mIGJv dGggdGhlIGZyYW1lIG9idGFpbmVkIGZyb20gdGhlIGNoYW1lbGl1bSBhbmQgdGhlCj4gPiA+ID4g PiByZWZlcmVuY2UKPiA+ID4gPiA+IGluCj4gPiA+ID4gPiBvcmRlcgo+ID4gPiA+ID4gdG8gY29t cGFyZSB0aGVtLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBUaGlzIGltcGxlbWVudHMgdGhlIGZyYW1l IGR1bXAsIHdpdGggYSBjb25maWd1cmFibGUgcGF0aCB0aGF0Cj4gPiA+ID4gPiBlbmFibGVzCj4g PiA+ID4gPiB0aGUgdXNlIG9mIHRoaXMgZmVhdHVyZS4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gU2ln bmVkLW9mZi1ieTogUGF1bCBLb2NpYWxrb3dza2kgPHBhdWwua29jaWFsa293c2tpQGxpbnV4Lmlu dGUKPiA+ID4gPiA+IGwKPiA+ID4gPiA+IC5jb20+Cj4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ICAg bGliL2lndF9jaGFtZWxpdW0uYyB8ICAyMSArKysrKysrKysrKwo+ID4gPiA+ID4gICBsaWIvaWd0 X2NoYW1lbGl1bS5oIHwgICAxICsKPiA+ID4gPiA+ICAgbGliL2lndF9kZWJ1Z2ZzLmMgICB8ICAy MCArKysrKysrKysrCj4gPiA+ID4gPiAgIGxpYi9pZ3RfZGVidWdmcy5oICAgfCAgIDEgKwo+ID4g PiA+ID4gICB0ZXN0cy9jaGFtZWxpdW0uYyAgIHwgMTA0ICsrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tCj4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+IC0tLS0tCj4gPiA+ID4gPiAtLS0tLS0t LS0tLS0KPiA+ID4gPiA+ICAgNSBmaWxlcyBjaGFuZ2VkLCA4MiBpbnNlcnRpb25zKCspLCA2NSBk ZWxldGlvbnMoLSkKPiA+ID4gPiA+IAo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY2hh bWVsaXVtLmMgYi9saWIvaWd0X2NoYW1lbGl1bS5jCj4gPiA+ID4gPiBpbmRleCBlZjUxZWY2OC4u OWFjYTY4NDIgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9saWIvaWd0X2NoYW1lbGl1bS5jCj4gPiA+ ID4gPiArKysgYi9saWIvaWd0X2NoYW1lbGl1bS5jCj4gPiA+ID4gPiBAQCAtNTcsNiArNTcsNyBA QAo+ID4gPiA+ID4gICAgKiB8WzwhLS0gbGFuZ3VhZ2U9InBsYWluIiAtLT4KPiA+ID4gPiA+ICAg ICoJW0NoYW1lbGl1bV0KPiA+ID4gPiA+ICAgICoJVVJMPWh0dHA6Ly9jaGFtZWxlb246OTk5MiAj IFRoZSBVUkwgdXNlZCBmb3IKPiA+ID4gPiA+IGNvbm5lY3RpbmcgdG8KPiA+ID4gPiA+IHRoZSBD aGFtZWxpdW0ncyBSUEMgc2VydmVyCj4gPiA+ID4gPiArICoJRnJhbWVEdW1wUGF0aD0vdG1wICMg VGhlIHBhdGggdG8gZHVtcCBmcmFtZXMgdGhhdAo+ID4gPiA+ID4gZmFpbAo+ID4gPiA+ID4gY29t cGFyaXNvbiBjaGVja3MKPiA+ID4gPiAKPiA+ID4gPiBXaGlsZSBubyBvbmUgZWxzZSByZWFsbHkg Y2FyZXMgYWJvdXQgY3JlYXRpbmcgZnJhbWUgZHVtcHMgeWV0LAo+ID4gPiA+IGl0J3MKPiA+ID4g PiBwb3NzaWJsZSBzb21lb25lIGVsc2UgbWF5IGluIHRoZSBmdXR1cmUgaWYgd2UgZXZlciBlbmQg dXAgdGFraW5nCj4gPiA+ID4gbW9yZQo+ID4gPiA+IGFkdmFudGFnZSBvZiBhdXRvbWF0ZWQgdGVz dGluZyBzeXN0ZW1zIGxpa2UgdGhpcy4gU28gSSdkIHN0aWNrCj4gPiA+ID4gdGhpcyBpbgo+ID4g PiA+IHRoZSBnZW5lcmljIG5vbi1jaGFtZWxpdW0gc3BlY2lmaWMgc2VjdGlvbiBpbiB0aGUgY29u ZmlnIGZpbGUKPiA+ID4gPiAKPiA+ID4gPiA+ICAgICoKPiA+ID4gPiA+ICAgICoJIyBUaGUgcmVz dCBvZiB0aGUgc2VjdGlvbnMgYXJlIHVzZWQgZm9yIGRlZmluaW5nCj4gPiA+ID4gPiBjb25uZWN0 b3IKPiA+ID4gPiA+IG1hcHBpbmdzLgo+ID4gPiA+ID4gICAgKgkjIFRoaXMgaXMgcmVxdWlyZWQg c28gYW55IHRlc3RzIHVzaW5nIHRoZQo+ID4gPiA+ID4gQ2hhbWVsaXVtCj4gPiA+ID4gPiBrbm93 Cj4gPiA+ID4gPiB3aGljaCBjb25uZWN0b3IKPiA+ID4gPiA+IEBAIC0xMTUsMTEgKzExNiwyNiBA QCBzdHJ1Y3QgY2hhbWVsaXVtIHsKPiA+ID4gPiA+ICAgCXN0cnVjdCBjaGFtZWxpdW1fZWRpZCAq ZWRpZHM7Cj4gPiA+ID4gPiAgIAlzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnRzOwo+ID4gPiA+ ID4gICAJaW50IHBvcnRfY291bnQ7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCWNoYXIgKmZyYW1l X2R1bXBfcGF0aDsKPiA+ID4gPiA+ICAgfTsKPiA+ID4gPiA+ICAgCj4gPiA+ID4gPiAgIHN0YXRp YyBzdHJ1Y3QgY2hhbWVsaXVtICpjbGVhbnVwX2luc3RhbmNlOwo+ID4gPiA+ID4gICAKPiA+ID4g PiA+ICAgLyoqCj4gPiA+ID4gPiArICogY2hhbWVsaXVtX2dldF9mcmFtZV9kdW1wX3BhdGg6Cj4g PiA+ID4gPiArICogQGNoYW1lbGl1bTogVGhlIENoYW1lbGl1bSBpbnN0YW5jZSB0byB1c2UKPiA+ ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqIFJldHJpZXZlcyB0aGUgcGF0aCB0byBkdW1wIGZyYW1l cyB0by4KPiA+ID4gPiA+ICsgKgo+ID4gPiA+ID4gKyAqIFJldHVybnM6IGEgc3RyaW5nIHdpdGgg dGhlIGZyYW1lIGR1bXAgcGF0aAo+ID4gPiA+ID4gKyAqLwo+ID4gPiA+ID4gK2NoYXIgKmNoYW1l bGl1bV9nZXRfZnJhbWVfZHVtcF9wYXRoKHN0cnVjdCBjaGFtZWxpdW0KPiA+ID4gPiA+ICpjaGFt ZWxpdW0pCj4gPiA+ID4gPiArewo+ID4gPiA+ID4gKwlyZXR1cm4gY2hhbWVsaXVtLT5mcmFtZV9k dW1wX3BhdGg7Cj4gPiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKy8qKgo+ID4gPiA+ ID4gICAgKiBjaGFtZWxpdW1fZ2V0X3BvcnRzOgo+ID4gPiA+ID4gICAgKiBAY2hhbWVsaXVtOiBU aGUgQ2hhbWVsaXVtIGluc3RhbmNlIHRvIHVzZQo+ID4gPiA+ID4gICAgKiBAY291bnQ6IFdoZXJl IHRvIHN0b3JlIHRoZSBudW1iZXIgb2YgcG9ydHMKPiA+ID4gPiA+IEBAIC0xMzM4LDYgKzEzNTQs MTEgQEAgc3RhdGljIGJvb2wKPiA+ID4gPiA+IGNoYW1lbGl1bV9yZWFkX2NvbmZpZyhzdHJ1Y3QK PiA+ID4gPiA+IGNoYW1lbGl1bSAqY2hhbWVsaXVtLCBpbnQgZHJtX2ZkKQo+ID4gPiA+ID4gICAJ CXJldHVybiBmYWxzZTsKPiA+ID4gPiA+ICAgCX0KPiA+ID4gPiA+ICAgCj4gPiA+ID4gPiArCWNo YW1lbGl1bS0+ZnJhbWVfZHVtcF9wYXRoID0KPiA+ID4gPiA+IGdfa2V5X2ZpbGVfZ2V0X3N0cmlu ZyhpZ3Rfa2V5X2ZpbGUsCj4gPiA+ID4gPiArCQkJCQkJCSAgICJDCj4gPiA+ID4gPiBoCj4gPiA+ ID4gPiBhbWVsaXUKPiA+ID4gPiA+IG0iLAo+ID4gPiA+ID4gKwkJCQkJCQkgICAiRgo+ID4gPiA+ ID4gcgo+ID4gPiA+ID4gYW1lRHVtCj4gPiA+ID4gPiBwUGF0aCIsCj4gPiA+ID4gPiArCQkJCQkJ CSAgICAmCj4gPiA+ID4gPiBlCj4gPiA+ID4gPiBycm9yKTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ICAgCXJldHVybiBjaGFtZWxpdW1fcmVhZF9wb3J0X21hcHBpbmdzKGNoYW1lbGl1bSwKPiA+ID4g PiA+IGRybV9mZCk7Cj4gPiA+ID4gPiAgIH0KPiA+ID4gPiA+ICAgCj4gPiA+ID4gPiBkaWZmIC0t Z2l0IGEvbGliL2lndF9jaGFtZWxpdW0uaCBiL2xpYi9pZ3RfY2hhbWVsaXVtLmgKPiA+ID4gPiA+ IGluZGV4IDkwOGUwM2QxLi5hYTg4MTk3MSAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2xpYi9pZ3Rf Y2hhbWVsaXVtLmgKPiA+ID4gPiA+ICsrKyBiL2xpYi9pZ3RfY2hhbWVsaXVtLmgKPiA+ID4gPiA+ IEBAIC00Miw2ICs0Miw3IEBAIHN0cnVjdCBjaGFtZWxpdW0gKmNoYW1lbGl1bV9pbml0KGludAo+ ID4gPiA+ID4gZHJtX2ZkKTsKPiA+ID4gPiA+ICAgdm9pZCBjaGFtZWxpdW1fZGVpbml0KHN0cnVj dCBjaGFtZWxpdW0gKmNoYW1lbGl1bSk7Cj4gPiA+ID4gPiAgIHZvaWQgY2hhbWVsaXVtX3Jlc2V0 KHN0cnVjdCBjaGFtZWxpdW0gKmNoYW1lbGl1bSk7Cj4gPiA+ID4gPiAgIAo+ID4gPiA+ID4gK2No YXIgKmNoYW1lbGl1bV9nZXRfZnJhbWVfZHVtcF9wYXRoKHN0cnVjdCBjaGFtZWxpdW0KPiA+ID4g PiA+ICpjaGFtZWxpdW0pOwo+ID4gPiA+ID4gICBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKipjaGFt ZWxpdW1fZ2V0X3BvcnRzKHN0cnVjdCBjaGFtZWxpdW0KPiA+ID4gPiA+ICpjaGFtZWxpdW0sCj4g PiA+ID4gPiAgIAkJCQkJICAgIGludCAqY291bnQpOwo+ID4gPiA+ID4gICB1bnNpZ25lZCBpbnQg Y2hhbWVsaXVtX3BvcnRfZ2V0X3R5cGUoY29uc3Qgc3RydWN0Cj4gPiA+ID4gPiBjaGFtZWxpdW1f cG9ydAo+ID4gPiA+ID4gKnBvcnQpOwo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZGVi dWdmcy5jIGIvbGliL2lndF9kZWJ1Z2ZzLmMKPiA+ID4gPiA+IGluZGV4IDgwZjI1YzYxLi5kY2I0 ZTBhNyAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2xpYi9pZ3RfZGVidWdmcy5jCj4gPiA+ID4gPiAr KysgYi9saWIvaWd0X2RlYnVnZnMuYwo+ID4gPiA+ID4gQEAgLTI4Miw2ICsyODIsMjYgQEAgYm9v bCBpZ3RfZGVidWdmc19zZWFyY2goaW50IGRldmljZSwgY29uc3QKPiA+ID4gPiA+IGNoYXIKPiA+ ID4gPiA+ICpmaWxlbmFtZSwgY29uc3QgY2hhciAqc3Vic3RyaW5nKQo+ID4gPiA+ID4gICAgKi8K PiA+ID4gPiA+ICAgCj4gPiA+ID4gPiAgIC8qKgo+ID4gPiA+ID4gKyAqIGlndF9jaGVja19jcmNf ZXF1YWw6Cj4gPiA+ID4gPiArICogQGE6IGZpcnN0IHBpcGUgQ1JDIHZhbHVlCj4gPiA+ID4gPiAr ICogQGI6IHNlY29uZCBwaXBlIENSQyB2YWx1ZQo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICog Q29tcGFyZXMgdHdvIENSQyB2YWx1ZXMgYW5kIHJldHVybiB3aGV0aGVyIHRoZXkgbWF0Y2guCj4g PiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiBSZXR1cm5zOiBBIGJvb2xlYW4gaW5kaWNhdGluZyB3 aGV0aGVyIHRoZSBDUkMgdmFsdWVzIG1hdGNoCj4gPiA+ID4gPiArICovCj4gPiA+ID4gPiArYm9v bCBpZ3RfY2hlY2tfY3JjX2VxdWFsKGNvbnN0IGlndF9jcmNfdCAqYSwgY29uc3QgaWd0X2NyY190 Cj4gPiA+ID4gPiAqYikKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCWludCBpOwo+ID4gPiAKPiA+ ID4gSSB3b3VsZCBsaWtlIHRvIHNlZToKPiA+ID4gCj4gPiA+IGlmIChhLT5uX3dvcmRzICE9IGIt Pm5fd29yZHMpCj4gPiA+ICAgICAgcmV0dXJuIGZhbHNlOwo+ID4gCj4gPiBWZXJ5IGdvb2Qgc3Vn Z2VzdGlvbiEgSSdsbCB0YWtlIHRoYXQgaW4gaW4gdGhlIG5leHQgcmV2aXNpb24uCj4gPiAKPiA+ ID4gPiA+ICsKPiA+ID4gPiA+ICsJZm9yIChpID0gMDsgaSA8IGEtPm5fd29yZHM7IGkrKykKPiA+ ID4gPiA+ICsJCWlmIChhLT5jcmNbaV0gIT0gYi0+Y3JjW2ldKQo+ID4gPiA+ID4gKwkJCXJldHVy biBmYWxzZTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJcmV0dXJuIHRydWU7Cj4gPiA+ID4gPiAr fQo+ID4gPiA+ID4gKwo+ID4gPiA+IAo+ID4gPiA+IE1ha2UgdGhpcyBhIHNlcGFyYXRlIHBhdGNo LCBhbmQgaW5zdGVhZCBvZiBoYXZpbmcgYW5vdGhlcgo+ID4gPiA+IGZ1bmN0aW9uIGRvCj4gPiA+ ID4gdGhlIENSQyBjYWxjdWxhdGlvbnMganVzdCBoYXZlIHNvbWV0aGluZyBsaWtlIHRoaXM6Cj4g PiA+ID4gCj4gPiA+ID4gICAqIHN0YXRpYyBpbnQgaWd0X2ZpbmRfY3JjX21pc21hdGNoKGNvbnN0 IGlndF9jcmNfdCAqYSwgY29uc3QKPiA+ID4gPiBpZ3RfY3JjX3QKPiA+ID4gPiAgICAgKmIpOiBy ZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgQ1JDIG1pc21hdGNoLCAwIGlmIG5vbmUKPiA+ ID4gPiB3YXMKPiA+ID4gPiAgICAgZm91bmQKPiA+ID4gCj4gPiA+IFNvdW5kcyBnb29kLCBidXQg bm8gZXJyb3Igc2hvdWxkIHJldHVybiAtMSwgYXMgdG8gZGlmZmVyZW50aWF0ZSBpZgo+ID4gPiB0 aGUgCj4gPiA+IGZpcnN0IHdvcmQgd2FzIGFscmVhZHkgZGlmZmVyZW50Lgo+ID4gCj4gPiBJIGRv bid0IHVuZGVyc3RhbmQgdGhlIHBvaW50IG9mIGdldHRpbmcgdGhlIGluZGV4IG9mIHRoZSBDUkMK PiA+IG1pc21hdGNoCj4gPiBhdCBhbGwuCj4gPiBUaGUgb25seSByZWxldmFudCBpbmZvcm1hdGlv biBoZXJlIHNob3VsZCBiZSB3aGV0aGVyIGl0IG1hdGNoZXMgb3IKPiA+IG5vdCAod2hpY2gKPiA+ IHdvdWxkIGJlIGNvdmVyZWQgYnkgaWd0X2NoZWNrX2NyY19lcXVhbCkuIENhbiB5b3UgZWxsYWJv cmF0ZSBvbgo+ID4gdGhpcz8KPiAKPiBJdCdzIGp1c3Qgc28gdGhhdCB3ZSBjYW4gcHJpbnQgbW9y ZSBkZXRhaWxlZCBkZWJ1Z2dpbmcgaW5mbyB0aGF0Cj4gYWN0dWFsbHkgbm90ZXMgd2hpY2ggcGFy dCBvZiB0aGUgQ1JDIGRpZG4ndCBtYXRjaC4gVGhpcyBzb3VuZHMgYQo+IGxpdHRsZQo+IHVzZWxl c3MsIGJ1dCBzb21ldGltZXMgeW91IGNhbiBhY3R1YWxseSB0ZWxsIHdoYXQncyBnb2luZyBvbiBi eQo+IGxvb2tpbmcKPiBhdCBob3cgbXVjaCBvZiB0aGUgQ1JDIGRpZG4ndCBtYXRjaC4KPiAKPiBG b3IgaW5zdGFuY2UsIHdoZW4gSSB3YXMgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgdGhlIChJIGRpZG4n dCBrbm93IHRoaXMKPiB3YXMgdGhlIGNhdXNlIGF0IHRoZSB0aW1lKSBFU0QgaXNzdWVzIEkgd2Fz IGhpdHRpbmcgd2l0aCBEaXNwbGF5UG9ydAo+IG9uCj4gdGhlIGNoYW1lbGl1bSwgdGhlIGNocm9t ZW9zIGd1eXMgd2VyZSBpbW1lZGlhdGVseSBhYmxlIHRvIHRlbGwgaXQgd2FzCj4gb25seSBhIHNp bmdsZSBwaXhlbCB0aGF0IHdhcyBvZmYgYmVjYXVzZSBvbmx5IG9uZSBzZWN0aW9uIG9mIHRoZSBD UkMKPiBkaWRuJ3QgbWF0Y2gsIHdoaWxlIHRoZSByZXN0IG9mIGl0IGRpZC4KCk9rYXksIHRoYW5r cyBmb3IgdGhlIGV4cGxhbmF0aW9uLiBJIHVuZGVyc3RhbmQgdGhlIGludGVudCBoZXJlIGFuZApk ZWZpbml0ZWx5IGFncmVlIHRoYXQgaXQgd291bGQgYmUgdXNlZnVsLiBIb3dldmVyLCBub3RlIHRo YXQKaWd0X2Fzc2VydF9jcmNfZXF1YWwgaXMgYWxyZWFkeSBpbXBsZW1lbnRlZCBhbmQgY2FsbHMg aWd0X2Fzc2VydF9lcV91MzIKZGlyZWN0bHksIHdoaWNoIHdpbGwgcHJpbnQgYW4gZXJyb3Igb24g bWlzbWF0Y2guCgpTbyBJIHdvbmRlciBpZiBpdCdzIHJlYWxseSB3b3J0aCBoYXZpbmcgYSBzZXBh cmF0ZSBmdW5jdGlvbgooaWd0X2ZpbmRfY3JjX21pc21hdGNoKSBvbmx5IGZvciBnZXR0aW5nIHRo ZSBpbmRleC4gV2UgY291bGQganVzdCBrZWVwCmlndF9hc3NlcnRfY3JjX2VxdWFsIGFzIGl0IGlz IGFuZCBpbXBsZW1lbnQgaWd0X2NoZWNrX2NyY19lcXVhbCB3aXRoCnNpbWlsYXIgZGVidWcgb3V0 cHV0LiBUaGF0IGlzIGEgZHVwbGljYXRpb24gb2YgdGhlIGxvZ2ljLCBidXQgaXQncyBzbwpzaW1w bGUgdGhhdCBJIGRvbid0IHRoaW5rIGl0J3MgcmVhbGx5IGEgcHJvYmxlbS4KCldpdGggdGhhdCBp biBtaW5kLCBpZiB5b3Ugc3RpbGwgcmVhbGx5IHByZWZlciB0aGF0IHdlIHVzZSBhIHNlcGFyYXRl CmZ1bmN0aW9uIGFuZCByZXdyaXRlIGlndF9hc3NlcnRfY3JjX2VxdWFsLCB0aGVuIEkgd2lsbCBk byB0aGF0LgoKPiA+ID4gPiAgICogYm9vbCBpZ3RfY2hlY2tfY3JjX2VxdWFsKCk6IHVzZXMgaWd0 X2ZpbmRfY3JjX21pc21hdGNoKCkgdG8KPiA+ID4gPiBmaWd1cmUKPiA+ID4gPiAgICAgb3V0IGlm IGFueXRoaW5nIG1pc21hdGNoZWQsIGFuZCByZXR1cm4gdHJ1ZSBpZiBzb21ldGhpbmcgZGlkCj4g PiA+ID4gKGFzCj4gPiA+ID4gICAgIHdlbGwsIGFsc28gc3BpdCBvdXQgc29tZSBkZWJ1Z2dpbmcg aW5mbyBtZW50aW9uaW5nIHRoZXJlIHdhcwo+ID4gPiA+IGEKPiA+ID4gPiAgICAgbWlzbWF0Y2gp Cj4gPiA+ID4gICAqIHZvaWQgaWd0X2Fzc2VydF9jcmNfZXF1YWwoKTogdXNlcyBpZ3RfZmluZF9j cmNfbWlzbWF0Y2goKSB0bwo+ID4gPiA+IGZpZ3VyZQo+ID4gPiA+ICAgICBvdXQgaWYgYW55dGhp bmcgbWlzbWF0Y2hlZC4gSWYgdGhlIGFzc2VydGlvbiBmYWlscywgdXNlCj4gPiA+ID4gICAgIGln dF9hc3NlcnRfZXEoKSBvbiB0aGUgbWlzbWF0Y2hlZCBjcmMgc28gd2Ugc3RpbGwgZ2V0IGEKPiA+ ID4gPiB1c2VmdWwgZXJyb3IKPiA+ID4gPiAgICAgbWVzc2FnZSBvbiBDUkMgZmFpbHVyZXMuCj4g PiA+ID4gCj4gPiA+ID4gVGhlcmUgaXNuJ3QgbXVjaCBjb2RlIHJlcXVpcmVkIHRvIGFjdHVhbGx5 IGNvbXBhcmUgQ1JDcywgaG93ZXZlcgo+ID4gPiA+IEknZAo+ID4gPiA+IHN0aWxsIHByZWZlciBv bmx5IGhhdmluZyBvbmUgZnVuY3Rpb24gZG9pbmcgdGhlIGFjdHVhbAo+ID4gPiA+IGNvbXBhcmlz b24KPiA+ID4gPiBsb2dpYwo+ID4gPiA+IGhlcmUgc28gd2Ugb25seSBoYXZlIG9uZSBwaWVjZSBv ZiBjb2RlIHRvIHVwZGF0ZSBpZiB3ZSBuZWVkIHRvCj4gPiA+ID4gbWFrZQo+ID4gPiA+IGNoYW5n ZXMgdG8gaXQgaW4gdGhlIGZ1dHVyZS4KPiA+ID4gPiAKPiA+ID4gPiBNdXB1ZiwgeW91ciBvcGlu aW9uIG9uIHRoaXM/IF4KPiA+ID4gPiAKPiA+ID4gPiA+ICsvKioKPiA+ID4gPiA+ICAgICogaWd0 X2Fzc2VydF9jcmNfZXF1YWw6Cj4gPiA+ID4gPiAgICAqIEBhOiBmaXJzdCBwaXBlIENSQyB2YWx1 ZQo+ID4gPiA+ID4gICAgKiBAYjogc2Vjb25kIHBpcGUgQ1JDIHZhbHVlCj4gPiA+ID4gPiBkaWZm IC0tZ2l0IGEvbGliL2lndF9kZWJ1Z2ZzLmggYi9saWIvaWd0X2RlYnVnZnMuaAo+ID4gPiA+ID4g aW5kZXggN2I4NDZhODMuLjI2OTVjYmRhIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvbGliL2lndF9k ZWJ1Z2ZzLmgKPiA+ID4gPiA+ICsrKyBiL2xpYi9pZ3RfZGVidWdmcy5oCj4gPiA+ID4gPiBAQCAt MTEzLDYgKzExMyw3IEBAIGVudW0gaW50ZWxfcGlwZV9jcmNfc291cmNlIHsKPiA+ID4gPiA+ICAg ICAgICAgICBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfTUFYLAo+ID4gPiA+ID4gICB9Owo+ID4gPiA+ ID4gICAKPiA+ID4gPiA+ICtib29sIGlndF9jaGVja19jcmNfZXF1YWwoY29uc3QgaWd0X2NyY190 ICphLCBjb25zdCBpZ3RfY3JjX3QKPiA+ID4gPiA+ICpiKTsKPiA+ID4gPiA+ICAgdm9pZCBpZ3Rf YXNzZXJ0X2NyY19lcXVhbChjb25zdCBpZ3RfY3JjX3QgKmEsIGNvbnN0Cj4gPiA+ID4gPiBpZ3Rf Y3JjX3QKPiA+ID4gPiA+ICpiKTsKPiA+ID4gPiA+ICAgY2hhciAqaWd0X2NyY190b19zdHJpbmco aWd0X2NyY190ICpjcmMpOwo+ID4gPiA+ID4gICAKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS90ZXN0 cy9jaGFtZWxpdW0uYyBiL3Rlc3RzL2NoYW1lbGl1bS5jCj4gPiA+ID4gPiBpbmRleCA1Y2Y4YjNh Zi4uM2Q5NWMwNWMgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS90ZXN0cy9jaGFtZWxpdW0uYwo+ID4g PiA+ID4gKysrIGIvdGVzdHMvY2hhbWVsaXVtLmMKPiA+ID4gPiA+IEBAIC0zODEsNyArMzgxLDcg QEAgZGlzYWJsZV9vdXRwdXQoZGF0YV90ICpkYXRhLAo+ID4gPiA+ID4gICB9Cj4gPiA+ID4gPiAg IAo+ID4gPiA+ID4gICBzdGF0aWMgdm9pZAo+ID4gPiA+ID4gLXRlc3RfZGlzcGxheV9jcmNfc2lu Z2xlKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0Cj4gPiA+ID4gPiAqcG9ydCkK PiA+ID4gPiA+ICt0ZXN0X2Rpc3BsYXlfY3JjKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1 bV9wb3J0ICpwb3J0LAo+ID4gPiA+ID4gaW50Cj4gPiA+ID4gPiBjb3VudCkKPiA+ID4gPiA+ICAg ewo+ID4gPiA+ID4gICAJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5Owo+ID4gPiA+ID4gICAJaWd0X291 dHB1dF90ICpvdXRwdXQ7Cj4gPiA+ID4gPiBAQCAtMzkwLDkgKzM5MCwxNCBAQCB0ZXN0X2Rpc3Bs YXlfY3JjX3NpbmdsZShkYXRhX3QgKmRhdGEsCj4gPiA+ID4gPiBzdHJ1Y3QKPiA+ID4gPiA+IGNo YW1lbGl1bV9wb3J0ICpwb3J0KQo+ID4gPiA+ID4gICAJaWd0X2NyY190ICpleHBlY3RlZF9jcmM7 Cj4gPiA+ID4gPiAgIAlzdHJ1Y3QgY2hhbWVsaXVtX2ZiX2NyYyAqZmJfY3JjOwo+ID4gPiA+ID4g ICAJc3RydWN0IGlndF9mYiBmYjsKPiA+ID4gPiA+ICsJc3RydWN0IGNoYW1lbGl1bV9mcmFtZV9k dW1wICpmcmFtZTsKPiA+ID4gPiA+ICAgCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKPiA+ID4gPiA+ ICAgCWRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+ID4gPiA+IC0JaW50IGZiX2lkLCBp Owo+ID4gPiA+ID4gKwlpbnQgZmJfaWQsIGksIGosIGNhcHR1cmVkX2ZyYW1lX2NvdW50Owo+ID4g PiA+ID4gKwljb25zdCBjaGFyICpjb25uZWN0b3JfbmFtZTsKPiA+ID4gPiA+ICsJY2hhciAqZnJh bWVfZHVtcF9wYXRoOwo+ID4gPiA+ID4gKwljaGFyIHBhdGhbUEFUSF9NQVhdOwo+ID4gPiA+ID4g Kwlib29sIGVxOwo+ID4gPiA+ID4gICAKPiA+ID4gPiA+ICAgCXJlc2V0X3N0YXRlKGRhdGEsIHBv cnQpOwo+ID4gPiA+ID4gICAKPiA+ID4gPiA+IEBAIC00MDEsNiArNDA2LDkgQEAgdGVzdF9kaXNw bGF5X2NyY19zaW5nbGUoZGF0YV90ICpkYXRhLAo+ID4gPiA+ID4gc3RydWN0Cj4gPiA+ID4gPiBj aGFtZWxpdW1fcG9ydCAqcG9ydCkKPiA+ID4gPiA+ICAgCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dl dF9wbGFuZV90eXBlKG91dHB1dCwKPiA+ID4gPiA+IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ ID4gPiA+ID4gICAJaWd0X2Fzc2VydChwcmltYXJ5KTsKPiA+ID4gPiA+ICAgCj4gPiA+ID4gPiAr CWNvbm5lY3Rvcl9uYW1lID0KPiA+ID4gPiA+IGttc3Rlc3RfY29ubmVjdG9yX3R5cGVfc3RyKGNv bm5lY3Rvci0KPiA+ID4gPiA+ID4gY29ubmVjdG9yX3R5cGUpOwo+ID4gPiA+ID4gCj4gPiA+ID4g PiArCWZyYW1lX2R1bXBfcGF0aCA9IGNoYW1lbGl1bV9nZXRfZnJhbWVfZHVtcF9wYXRoKGRhdGEt Cj4gPiA+ID4gPiA+IGNoYW1lbGl1bSk7Cj4gPiA+ID4gPiAKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ICAgCWZvciAoaSA9IDA7IGkgPCBjb25uZWN0b3ItPmNvdW50X21vZGVzOyBpKyspIHsKPiA+ID4g PiA+ICAgCQltb2RlID0gJmNvbm5lY3Rvci0+bW9kZXNbaV07Cj4gPiA+ID4gPiAgIAkJZmJfaWQg PSBpZ3RfY3JlYXRlX2NvbG9yX3BhdHRlcm5fZmIoZGF0YS0KPiA+ID4gPiA+ID4gZHJtX2ZkLAo+ ID4gPiA+ID4gCj4gPiA+ID4gPiBAQCAtNDE1LDc0ICs0MjMsNDAgQEAgdGVzdF9kaXNwbGF5X2Ny Y19zaW5nbGUoZGF0YV90ICpkYXRhLAo+ID4gPiA+ID4gc3RydWN0Cj4gPiA+ID4gPiBjaGFtZWxp dW1fcG9ydCAqcG9ydCkKPiA+ID4gPiA+ICAgCj4gPiA+ID4gPiAgIAkJZW5hYmxlX291dHB1dChk YXRhLCBwb3J0LCBvdXRwdXQsIG1vZGUsCj4gPiA+ID4gPiAmZmIpOwo+ID4gPiA+ID4gICAKPiA+ ID4gPiA+IC0JCWlndF9kZWJ1ZygiVGVzdGluZyBzaW5nbGUgQ1JDIGZldGNoXG4iKTsKPiA+ID4g PiA+IC0KPiA+ID4gPiA+IC0JCWNyYyA9IGNoYW1lbGl1bV9nZXRfY3JjX2Zvcl9hcmVhKGRhdGEt Cj4gPiA+ID4gPiA+IGNoYW1lbGl1bSwKPiA+ID4gPiA+IAo+ID4gPiA+ID4gcG9ydCwKPiA+ID4g PiA+IC0JCQkJCQkgMCwgMCwgMCwgMCk7Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtCQlleHBlY3Rl ZF9jcmMgPQo+ID4gPiA+ID4gY2hhbWVsaXVtX2NhbGN1bGF0ZV9mYl9jcmNfcmVzdWx0KGZiX2Ny Yyk7Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtCQlpZ3RfYXNzZXJ0X2NyY19lcXVhbChjcmMsIGV4 cGVjdGVkX2NyYyk7Cj4gPiA+ID4gPiAtCQlmcmVlKGV4cGVjdGVkX2NyYyk7Cj4gPiA+ID4gPiAt CQlmcmVlKGNyYyk7Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtCQlkaXNhYmxlX291dHB1dChkYXRh LCBwb3J0LCBvdXRwdXQpOwo+ID4gPiA+ID4gLQkJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQs ICZmYik7Cj4gPiA+ID4gPiAtCX0KPiA+ID4gPiA+IC0KPiA+ID4gPiA+IC0JZHJtTW9kZUZyZWVD b25uZWN0b3IoY29ubmVjdG9yKTsKPiA+ID4gPiA+IC0JaWd0X2Rpc3BsYXlfZmluaSgmZGlzcGxh eSk7Cj4gPiA+ID4gPiAtfQo+ID4gPiA+ID4gLQo+ID4gPiA+ID4gLXN0YXRpYyB2b2lkCj4gPiA+ ID4gPiAtdGVzdF9kaXNwbGF5X2NyY19tdWx0aXBsZShkYXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFt ZWxpdW1fcG9ydAo+ID4gPiA+ID4gKnBvcnQpCj4gPiA+ID4gPiAtewo+ID4gPiA+ID4gLQlpZ3Rf ZGlzcGxheV90IGRpc3BsYXk7Cj4gPiA+ID4gPiAtCWlndF9vdXRwdXRfdCAqb3V0cHV0Owo+ID4g PiA+ID4gLQlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKPiA+ID4gPiA+IC0JaWd0X2NyY190ICpjcmM7 Cj4gPiA+ID4gPiAtCWlndF9jcmNfdCAqZXhwZWN0ZWRfY3JjOwo+ID4gPiA+ID4gLQlzdHJ1Y3Qg Y2hhbWVsaXVtX2ZiX2NyYyAqZmJfY3JjOwo+ID4gPiA+ID4gLQlzdHJ1Y3QgaWd0X2ZiIGZiOwo+ ID4gPiA+ID4gLQlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7Cj4gPiA+ID4gPiAtCWRybU1vZGVDb25u ZWN0b3IgKmNvbm5lY3RvcjsKPiA+ID4gPiA+IC0JaW50IGZiX2lkLCBpLCBqLCBjYXB0dXJlZF9m cmFtZV9jb3VudDsKPiA+ID4gPiA+ICsJCWNoYW1lbGl1bV9jYXB0dXJlKGRhdGEtPmNoYW1lbGl1 bSwgcG9ydCwgMCwKPiA+ID4gPiA+IDAsCj4gPiA+ID4gPiAwLCAwLAo+ID4gPiA+ID4gY291bnQp Owo+ID4gPiA+ID4gKwkJY3JjID0gY2hhbWVsaXVtX3JlYWRfY2FwdHVyZWRfY3JjcyhkYXRhLQo+ ID4gPiA+ID4gPiBjaGFtZWxpdW0sCj4gPiA+ID4gPiAKPiA+ID4gPiA+ICsJCQkJCQkgICAmY2Fw dHVyZWRfCj4gPiA+ID4gPiBmCj4gPiA+ID4gPiByYW1lX2MKPiA+ID4gPiA+IG91bnQpOwo+ID4g PiA+ID4gICAKPiA+ID4gPiA+IC0JcmVzZXRfc3RhdGUoZGF0YSwgcG9ydCk7Cj4gPiA+ID4gPiAr CQlpZ3RfYXNzZXJ0KGNhcHR1cmVkX2ZyYW1lX2NvdW50ID09IGNvdW50KTsKPiA+ID4gPiA+ICAg Cj4gPiA+ID4gPiAtCW91dHB1dCA9IHByZXBhcmVfb3V0cHV0KGRhdGEsICZkaXNwbGF5LCBwb3J0 KTsKPiA+ID4gPiA+IC0JY29ubmVjdG9yID0gY2hhbWVsaXVtX3BvcnRfZ2V0X2Nvbm5lY3Rvcihk YXRhLQo+ID4gPiA+ID4gPiBjaGFtZWxpdW0sCj4gPiA+ID4gPiAKPiA+ID4gPiA+IHBvcnQsIGZh bHNlKTsKPiA+ID4gPiA+IC0JcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUob3V0 cHV0LAo+ID4gPiA+ID4gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4gPiA+ID4gPiAtCWlndF9h c3NlcnQocHJpbWFyeSk7Cj4gPiA+ID4gPiArCQlpZ3RfZGVidWcoIkNhcHR1cmVkICVkIGZyYW1l c1xuIiwKPiA+ID4gPiA+IGNhcHR1cmVkX2ZyYW1lX2NvdW50KTsKPiA+ID4gPiA+ICAgCj4gPiA+ ID4gPiAtCWZvciAoaSA9IDA7IGkgPCBjb25uZWN0b3ItPmNvdW50X21vZGVzOyBpKyspIHsKPiA+ ID4gPiA+IC0JCW1vZGUgPSAmY29ubmVjdG9yLT5tb2Rlc1tpXTsKPiA+ID4gPiA+IC0JCWZiX2lk ID0gaWd0X2NyZWF0ZV9jb2xvcl9wYXR0ZXJuX2ZiKGRhdGEtCj4gPiA+ID4gPiA+IGRybV9mZCwK PiA+ID4gPiA+IAo+ID4gPiA+ID4gLQkJCQkJCSAgICBtb2RlLQo+ID4gPiA+ID4gPiBoZGlzcGxh eSwKPiA+ID4gPiA+IAo+ID4gPiA+ID4gLQkJCQkJCSAgICBtb2RlLQo+ID4gPiA+ID4gPiB2ZGlz cGxheSwKPiA+ID4gPiA+IAo+ID4gPiA+ID4gLQkJCQkJCSAgICBEUk1fRk9STUEKPiA+ID4gPiA+ IFQKPiA+ID4gPiA+IF9YUkdCOAo+ID4gPiA+ID4gODg4LAo+ID4gPiA+ID4gLQkJCQkJCSAgICBM T0NBTF9EUk0KPiA+ID4gPiA+IF8KPiA+ID4gPiA+IEZPUk1BVAo+ID4gPiA+ID4gX01PRF9OT05F LAo+ID4gPiA+ID4gLQkJCQkJCSAgICAwLCAwLCAwLAo+ID4gPiA+ID4gJmZiKTsKPiA+ID4gPiA+ IC0JCWlndF9hc3NlcnQoZmJfaWQgPiAwKTsKPiA+ID4gPiA+ICsJCWV4cGVjdGVkX2NyYyA9Cj4g PiA+ID4gPiBjaGFtZWxpdW1fY2FsY3VsYXRlX2ZiX2NyY19yZXN1bHQoZmJfY3JjKTsKPiA+ID4g PiA+ICAgCj4gPiA+ID4gPiAtCQlmYl9jcmMgPQo+ID4gPiA+ID4gY2hhbWVsaXVtX2NhbGN1bGF0 ZV9mYl9jcmNfbGF1bmNoKGRhdGEtCj4gPiA+ID4gPiA+IGRybV9mZCwgJmZiKTsKPiA+ID4gPiA+ IAo+ID4gPiA+ID4gKwkJZm9yIChqID0gMDsgaiA8IGNhcHR1cmVkX2ZyYW1lX2NvdW50OyBqKysp IHsKPiA+ID4gPiA+ICsJCQllcSA9IGlndF9jaGVja19jcmNfZXF1YWwoJmNyY1tqXSwKPiA+ID4g PiA+IGV4cGVjdGVkX2NyYyk7Cj4gPiA+ID4gPiArCQkJaWYgKCFlcSAmJiBmcmFtZV9kdW1wX3Bh dGgpIHsKPiA+ID4gPiA+ICsJCQkJZnJhbWUgPQo+ID4gPiA+ID4gY2hhbWVsaXVtX3JlYWRfY2Fw dHVyZWRfZnJhbWUoZGF0YS0+Y2hhbWVsaXVtLAo+ID4gPiA+ID4gKwkJCQkJCQkJCj4gPiA+ID4g PiAgICBqKTsKPiA+ID4gPiA+ICAgCj4gPiA+ID4gPiAtCQllbmFibGVfb3V0cHV0KGRhdGEsIHBv cnQsIG91dHB1dCwgbW9kZSwgJmZiKTsKPiA+ID4gPiA+ICsJCQkJaWd0X2RlYnVnKCJEdW1waW5n IHJlZmVyZW5jZQo+ID4gPiA+ID4gYW5kCj4gPiA+ID4gPiBjaGFtZWxpdW0gZnJhbWVzIHRvICVz Li4uXG4iLAo+ID4gPiA+ID4gKwkJCQkJICBmcmFtZV9kdW1wX3BhdGgpOwo+ID4gPiA+ID4gICAK PiA+ID4gPiA+IC0JCS8qIFdlIHdhbnQgdG8ga2VlcCB0aGUgZGlzcGxheSBydW5uaW5nIGZvciBh Cj4gPiA+ID4gPiBsaXR0bGUKPiA+ID4gPiA+IGJpdCwgc2luY2UKPiA+ID4gPiA+IC0JCSAqIHRo ZXJlJ3MgYWx3YXlzIHRoZSBwb3RlbnRpYWwgdGhlIGRyaXZlcgo+ID4gPiA+ID4gaXNuJ3QKPiA+ ID4gPiA+IGFibGUgdG8ga2VlcAo+ID4gPiA+ID4gLQkJICogdGhlIGRpc3BsYXkgcnVubmluZyBw cm9wZXJseSBmb3IgdmVyeSBsb25nCj4gPiA+ID4gPiAtCQkgKi8KPiA+ID4gPiA+IC0JCWNoYW1l bGl1bV9jYXB0dXJlKGRhdGEtPmNoYW1lbGl1bSwgcG9ydCwgMCwKPiA+ID4gPiA+IDAsCj4gPiA+ ID4gPiAwLCAwLAo+ID4gPiA+ID4gMyk7Cj4gPiA+ID4gPiAtCQljcmMgPSBjaGFtZWxpdW1fcmVh ZF9jYXB0dXJlZF9jcmNzKGRhdGEtCj4gPiA+ID4gPiA+IGNoYW1lbGl1bSwKPiA+ID4gPiA+IAo+ ID4gPiA+ID4gLQkJCQkJCSAgICZjYXB0dXJlZF8KPiA+ID4gPiA+IGYKPiA+ID4gPiA+IHJhbWVf Ywo+ID4gPiA+ID4gb3VudCk7Cj4gPiA+ID4gPiArCQkJCXNucHJpbnRmKHBhdGgsIFBBVEhfTUFY LAo+ID4gPiA+ID4gIiVzL2ZyYW1lLQo+ID4gPiA+ID4gcmVmZXJlbmNlLSVzLnBuZyIsCj4gPiA+ ID4gPiArCQkJCQkgZnJhbWVfZHVtcF9wYXRoLAo+ID4gPiA+ID4gY29ubmVjdG9yX25hbWUpOwo+ ID4gPiA+ID4gKwkJCQlpZ3Rfd3JpdGVfZmJfdG9fcG5nKGRhdGEtCj4gPiA+ID4gPiA+IGRybV9m ZCwKPiA+ID4gPiA+IAo+ID4gPiA+ID4gJmZiLCBwYXRoKTsKPiA+ID4gPiA+ICAgCj4gPiA+ID4g PiAtCQlpZ3RfZGVidWcoIkNhcHR1cmVkICVkIGZyYW1lc1xuIiwKPiA+ID4gPiA+IGNhcHR1cmVk X2ZyYW1lX2NvdW50KTsKPiA+ID4gPiA+ICsJCQkJc25wcmludGYocGF0aCwgUEFUSF9NQVgsCj4g PiA+ID4gPiAiJXMvZnJhbWUtCj4gPiA+ID4gPiBjaGFtZWxpdW0tJXMucG5nIiwKPiA+ID4gPiA+ ICsJCQkJCSBmcmFtZV9kdW1wX3BhdGgsCj4gPiA+ID4gPiBjb25uZWN0b3JfbmFtZSk7Cj4gPiA+ ID4gPiArCQkJCWNoYW1lbGl1bV93cml0ZV9mcmFtZV90b19wbmcoCj4gPiA+ID4gPiBkCj4gPiA+ ID4gPiBhdGEtCj4gPiA+ID4gPiA+IGNoYW1lbGl1bSwKPiA+ID4gPiA+IAo+ID4gPiA+ID4gKwkJ CQkJCQkgICAgIAo+ID4gPiA+ID4gZgo+ID4gPiA+ID4gcmFtZSwKPiA+ID4gPiA+IHBhdGgpOwo+ ID4gPiA+ID4gICAKPiA+ID4gPiA+IC0JCWV4cGVjdGVkX2NyYyA9Cj4gPiA+ID4gPiBjaGFtZWxp dW1fY2FsY3VsYXRlX2ZiX2NyY19yZXN1bHQoZmJfY3JjKTsKPiA+ID4gPiA+ICsJCQkJY2hhbWVs aXVtX2Rlc3Ryb3lfZnJhbWVfZHVtcCgKPiA+ID4gPiA+IGYKPiA+ID4gPiA+IHJhbWUpOwo+ID4g PiA+ID4gKwkJCX0KPiA+ID4gPiA+ICAgCj4gPiA+ID4gPiAtCQlmb3IgKGogPSAwOyBqIDwgY2Fw dHVyZWRfZnJhbWVfY291bnQ7IGorKykKPiA+ID4gPiA+IC0JCQlpZ3RfYXNzZXJ0X2NyY19lcXVh bCgmY3JjW2pdLAo+ID4gPiA+ID4gZXhwZWN0ZWRfY3JjKTsKPiA+ID4gPiA+ICsJCQlpZ3RfZmFp bF9vbl9mKCFlcSwKPiA+ID4gPiA+ICsJCQkJICAgICAgIkNoYW1lbGl1bSBmcmFtZSBDUkMKPiA+ ID4gPiA+IG1pc21hdGNoCj4gPiA+ID4gPiB3aXRoIHJlZmVyZW5jZVxuIik7Cj4gPiA+ID4gPiAr CQl9Cj4gPiA+ID4gCj4gPiA+ID4gVGhlcmUncyBsb3RzIG9mIHBvdGVudGlhbCBoZXJlIGZvciBj b3B5IHBhc3RhIHRvIGZvcm0gaW4gdGhlCj4gPiA+ID4gZnV0dXJlLAo+ID4gPiA+IHNpbmNlIHRo ZSBBUEkgaGVyZSBwdXRzIGEgbG90IG9mIHdvcmsgb24gdGhlIGNhbGxlciB0byBzZXQKPiA+ID4g PiB0aGluZ3MKPiA+ID4gPiB1cAo+ID4gPiA+IGZvciBmcmFtZSBkdW1waW5nLiBJTU8sIGl0IHdv dWxkIGJlIHdvcnRoIGl0IHRvIHRlYWNoIHRoZSBDUkMKPiA+ID4gPiBjaGVja2luZwo+ID4gPiA+ IGZ1bmN0aW9ucyB0byBhdXRvbWF0aWNhbGx5IGRvIGZyYW1lIGR1bXBzIG9uIG1pc21hdGNoIGlm IHRoZSBDUkMKPiA+ID4gPiBzb3VyY2UKPiA+ID4gPiBzdXBwb3J0cyBpdC4gVGhpcyB3aWxsIHNh dmUgdXMgZnJvbSBoYXZpbmcgdG8gaGF2ZSBzZXBhcmF0ZQo+ID4gPiA+IGZyYW1lCj4gPiA+ID4g ZHVtcAo+ID4gPiA+IEFQSXMgaW4gdGhlIGZ1dHVyZSBpZiB3ZSBldmVyIGVuZCB1cCBhZGRpbmcg c3VwcG9ydCBmb3Igb3RoZXIKPiA+ID4gPiBraW5kcyBvZgo+ID4gPiA+IGF1dG9tYXRlZCB0ZXN0 IGVxdWlwbWVudC4KPiA+ID4gPiAKPiA+ID4gPiBBcyB3ZWxsLCBJIGxpa2UgaG93IHlvdSByZW1v dmVkIHRoZSByZWR1bmRhbmN5IGJldHdlZW4KPiA+ID4gPiB0ZXN0X2Rpc3BsYXlfY3JjX3Npbmds ZSgpIGFuZCB0ZXN0X2Rpc3BsYXlfY3JjX211bHRpcGxlKCkuCj4gPiA+ID4gSG93ZXZlcgo+ID4g PiA+IHNpbmNlIHRob3NlIGFyZSBzb21ld2hhdCB1bnJlbGF0ZWQgY2hhbmdlcyB0byB0aGUgY29k ZSBwYXRoIGZvcgo+ID4gPiA+IHRoZXNlCj4gPiA+ID4gdGVzdHMgaXQgd291bGQgYmUgYmV0dGVy IHRvIGhhdmUgdGhhdCByZS1mYWN0b3JpbmcgYXMgYSBzZXBhcmF0ZQo+ID4gPiA+IHBhdGNoCj4g PiA+ID4gc28gYXMgdG8gbWFrZSBpdCBlYXNpZXIgZm9yIGFueW9uZSB3aG8gbWlnaHQgbmVlZCB0 byBiaXNlY3QgdGhpcwo+ID4gPiA+IGNvZGUKPiA+ID4gPiBpbiB0aGUgZnV0dXJlLgo+ID4gPiA+ IAo+ID4gPiA+ID4gICAKPiA+ID4gPiA+ICAgCQlmcmVlKGV4cGVjdGVkX2NyYyk7Cj4gPiA+ID4g PiAgIAkJZnJlZShjcmMpOwo+ID4gPiA+ID4gQEAgLTY0NCwxMCArNjE4LDEwIEBAIGlndF9tYWlu Cj4gPiA+ID4gPiAgIAkJCQkJCQllZGlkCj4gPiA+ID4gPiBfCj4gPiA+ID4gPiBpZCwKPiA+ID4g PiA+IGFsdF9lZGlkX2lkKTsKPiA+ID4gPiA+ICAgCj4gPiA+ID4gPiAgIAkJY29ubmVjdG9yX3N1 YnRlc3QoImRwLWNyYy1zaW5nbGUiLAo+ID4gPiA+ID4gRGlzcGxheVBvcnQpCj4gPiA+ID4gPiAt CQkJdGVzdF9kaXNwbGF5X2NyY19zaW5nbGUoJmRhdGEsIHBvcnQpOwo+ID4gPiA+ID4gKwkJCXRl c3RfZGlzcGxheV9jcmMoJmRhdGEsIHBvcnQsIDEpOwo+ID4gPiA+ID4gICAKPiA+ID4gPiA+ICAg CQljb25uZWN0b3Jfc3VidGVzdCgiZHAtY3JjLW11bHRpcGxlIiwKPiA+ID4gPiA+IERpc3BsYXlQ b3J0KQo+ID4gPiA+ID4gLQkJCXRlc3RfZGlzcGxheV9jcmNfbXVsdGlwbGUoJmRhdGEsCj4gPiA+ ID4gPiBwb3J0KTsKPiA+ID4gPiA+ICsJCQl0ZXN0X2Rpc3BsYXlfY3JjKCZkYXRhLCBwb3J0LCAz KTsKPiA+ID4gPiA+ICAgCX0KPiA+ID4gPiA+ICAgCj4gPiA+ID4gPiAgIAlpZ3Rfc3VidGVzdF9n cm91cCB7Cj4gPiA+ID4gPiBAQCAtNjk4LDEwICs2NzIsMTAgQEAgaWd0X21haW4KPiA+ID4gPiA+ ICAgCQkJCQkJCWVkaWQKPiA+ID4gPiA+IF8KPiA+ID4gPiA+IGlkLAo+ID4gPiA+ID4gYWx0X2Vk aWRfaWQpOwo+ID4gPiA+ID4gICAKPiA+ID4gPiA+ICAgCQljb25uZWN0b3Jfc3VidGVzdCgiaGRt aS1jcmMtc2luZ2xlIiwgSERNSUEpCj4gPiA+ID4gPiAtCQkJdGVzdF9kaXNwbGF5X2NyY19zaW5n bGUoJmRhdGEsIHBvcnQpOwo+ID4gPiA+ID4gKwkJCXRlc3RfZGlzcGxheV9jcmMoJmRhdGEsIHBv cnQsIDEpOwo+ID4gPiA+ID4gICAKPiA+ID4gPiA+ICAgCQljb25uZWN0b3Jfc3VidGVzdCgiaGRt aS1jcmMtbXVsdGlwbGUiLAo+ID4gPiA+ID4gSERNSUEpCj4gPiA+ID4gPiAtCQkJdGVzdF9kaXNw bGF5X2NyY19tdWx0aXBsZSgmZGF0YSwKPiA+ID4gPiA+IHBvcnQpOwo+ID4gPiA+ID4gKwkJCXRl c3RfZGlzcGxheV9jcmMoJmRhdGEsIHBvcnQsIDMpOwo+ID4gPiA+ID4gICAJfQo+ID4gPiA+ID4g ICAKPiA+ID4gPiA+ICAgCWlndF9zdWJ0ZXN0X2dyb3VwIHsKLS0gClBhdWwgS29jaWFsa293c2tp IDxwYXVsLmtvY2lhbGtvd3NraUBsaW51eC5pbnRlbC5jb20+CkludGVsIEZpbmxhbmQgT3kgLSBC SUMgMDM1NzYwNi00IC0gV2VzdGVuZGlua2F0dSA3LCAwMjE2MCBFc3BvbywgRmlubGFuZApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK