From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH i-g-t 5/8] tools/intel_vbt_decode: unify child device printing across versions Date: Fri, 20 Oct 2017 14:33:52 +0300 Message-ID: <20171020113352.GF10981@intel.com> References: <20171019152259.31615-1-jani.nikula@intel.com> <20171019152259.31615-6-jani.nikula@intel.com> <20171019172410.GZ10981@intel.com> <87a80mjdf8.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id C3BD46E164 for ; Fri, 20 Oct 2017 11:33:55 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87a80mjdf8.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBPY3QgMjAsIDIwMTcgYXQgMDE6NTY6MTFQTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVGh1LCAxOSBPY3QgMjAxNywgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4gd3JvdGU6Cj4gPiBPbiBUaHUsIE9jdCAxOSwgMjAxNyBhdCAwNjoy Mjo1NlBNICswMzAwLCBKYW5pIE5pa3VsYSB3cm90ZToKPiA+PiBNYWtlIGl0IGVhc2llciB0byBj b21wYXJlIGR1bXBpbmcgYWdhaW5zdCB0aGUgc3RydWN0IGRlZmluaXRpb24uCj4gPj4gCj4gPj4g U2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPiA+PiAt LS0KPiA+PiAgdG9vbHMvaW50ZWxfdmJ0X2RlY29kZS5jIHwgMTI4ICsrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gIDEgZmlsZSBjaGFuZ2VkLCA3MSBp bnNlcnRpb25zKCspLCA1NyBkZWxldGlvbnMoLSkKPiA+PiAKPiA+PiBkaWZmIC0tZ2l0IGEvdG9v bHMvaW50ZWxfdmJ0X2RlY29kZS5jIGIvdG9vbHMvaW50ZWxfdmJ0X2RlY29kZS5jCj4gPj4gaW5k ZXggNjljZjFlNGM2Y2M2Li5iYzVmMzgxMTI2MTkgMTAwNjQ0Cj4gPj4gLS0tIGEvdG9vbHMvaW50 ZWxfdmJ0X2RlY29kZS5jCj4gPj4gKysrIGIvdG9vbHMvaW50ZWxfdmJ0X2RlY29kZS5jCj4gPj4g QEAgLTQwMSw3NCArNDAxLDg4IEBAIHN0YXRpYyBjb25zdCBjaGFyICptaXBpX2JyaWRnZV90eXBl KHVpbnQ4X3QgdHlwZSkKPiA+PiAgc3RhdGljIHZvaWQgZHVtcF9jaGlsZF9kZXZpY2Uoc3RydWN0 IGNvbnRleHQgKmNvbnRleHQsCj4gPj4gIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBjaGlsZF9kZXZp Y2VfY29uZmlnICpjaGlsZCkKPiA+PiAgewo+ID4+IC0JY29uc3Qgc3RydWN0IGNoaWxkX2Rldmlj ZV9jb25maWcgKmVmcCA9IGNoaWxkOwo+ID4+IC0KPiA+PiAgCWlmICghY2hpbGQtPmRldmljZV90 eXBlKQo+ID4+ICAJCXJldHVybjsKPiA+PiAgCj4gPj4gKwlwcmludGYoIlx0Q2hpbGQgZGV2aWNl IGluZm86XG4iKTsKPiA+PiArCXByaW50ZigiXHRcdERldmljZSBoYW5kbGU6IDB4JTA0eCAoJXMp XG4iLCBjaGlsZC0+aGFuZGxlLAo+ID4+ICsJICAgICAgIGNoaWxkX2RldmljZV9oYW5kbGUoY2hp bGQtPmhhbmRsZSkpOwo+ID4+ICsJcHJpbnRmKCJcdFx0RGV2aWNlIHR5cGU6IDB4JTA0eCAoJXMp XG4iLCBjaGlsZC0+ZGV2aWNlX3R5cGUsCj4gPj4gKwkgICAgICAgY2hpbGRfZGV2aWNlX3R5cGUo Y2hpbGQtPmRldmljZV90eXBlKSk7Cj4gPj4gKwlkdW1wX2NoaWxkX2RldmljZV90eXBlX2JpdHMo Y2hpbGQtPmRldmljZV90eXBlKTsKPiA+PiArCj4gPj4gIAlpZiAoY29udGV4dC0+YmRiLT52ZXJz aW9uIDwgMTUyKSB7Cj4gPj4gLQkJcHJpbnRmKCJcdENoaWxkIGRldmljZSBpbmZvOlxuIik7Cj4g Pj4gLQkJcHJpbnRmKCJcdFx0RGV2aWNlIHR5cGU6ICUwNHggKCVzKVxuIiwgY2hpbGQtPmRldmlj ZV90eXBlLAo+ID4+IC0JCSAgICAgICBjaGlsZF9kZXZpY2VfdHlwZShjaGlsZC0+ZGV2aWNlX3R5 cGUpKTsKPiA+PiAgCQlwcmludGYoIlx0XHRTaWduYXR1cmU6ICUuKnNcbiIsIChpbnQpc2l6ZW9m KGNoaWxkLT5kZXZpY2VfaWQpLCBjaGlsZC0+ZGV2aWNlX2lkKTsKPiA+PiAtCQlwcmludGYoIlx0 XHRBSU0gb2Zmc2V0OiAlZFxuIiwgY2hpbGQtPmFkZGluX29mZnNldCk7Cj4gPj4gLQkJcHJpbnRm KCJcdFx0RFZPIHBvcnQ6IDB4JTAyeFxuIiwgY2hpbGQtPmR2b19wb3J0KTsKPiA+PiAtCX0gZWxz ZSB7IC8qIDE1MisgaGF2ZSBFRlAgYmxvY2tzIGhlcmUgKi8KPiA+PiAtCQlwcmludGYoIlx0RUZQ IGRldmljZSBpbmZvOlxuIik7Cj4gPj4gLQkJcHJpbnRmKCJcdFx0RGV2aWNlIGhhbmRsZTogMHgl MDR4ICglcylcbiIsIGVmcC0+aGFuZGxlLAo+ID4+IC0JCSAgICAgICBjaGlsZF9kZXZpY2VfaGFu ZGxlKGVmcC0+aGFuZGxlKSk7Cj4gPj4gLQkJcHJpbnRmKCJcdFx0RGV2aWNlIHR5cGU6IDB4JTA0 eCAoJXMpXG4iLCBlZnAtPmRldmljZV90eXBlLAo+ID4+IC0JCSAgICAgICBjaGlsZF9kZXZpY2Vf dHlwZShlZnAtPmRldmljZV90eXBlKSk7Cj4gPj4gLQkJZHVtcF9jaGlsZF9kZXZpY2VfdHlwZV9i aXRzKGVmcC0+ZGV2aWNlX3R5cGUpOwo+ID4+IC0JCXByaW50ZigiXHRcdEkyQyBzcGVlZDogMHgl MDJ4XG4iLCBlZnAtPmkyY19zcGVlZCk7Cj4gPj4gLQkJcHJpbnRmKCJcdFx0RFAgb25ib2FyZCBy ZWRyaXZlcjogMHglMDJ4XG4iLCBlZnAtPmRwX29uYm9hcmRfcmVkcml2ZXIpOwo+ID4+IC0JCXBy aW50ZigiXHRcdERQIG9uZG9jayByZWRyaXZlcjogMHglMDJ4XG4iLCBlZnAtPmRwX29uZG9ja19y ZWRyaXZlcik7Cj4gPj4gLQkJcHJpbnRmKCJcdFx0SERNSSBtYXggZGF0YSByYXRlOiAweCUwMnhc biIsIGVmcC0+aGRtaV9tYXhfZGF0YV9yYXRlKTsKPiA+PiAtCQlwcmludGYoIlx0XHRIRE1JIGxl dmVsIHNoaWZ0ZXIgdmFsdWU6IDB4JTAyeFxuIiwgZWZwLT5oZG1pX2xldmVsX3NoaWZ0ZXJfdmFs dWUpOwo+ID4+IC0JCXByaW50ZigiXHRcdE9mZnNldCB0byBEVEQgYnVmZmVyIGZvciBlZGlkbGVz cyBFRlA6IDB4JTAyeFxuIiwgZWZwLT5kdGRfYnVmX3B0cik7Cj4gPj4gLQkJcHJpbnRmKCJcdFx0 RHVhbCBwaXBlIGdhbmdlZCBlRFA6ICVzXG4iLCBZRVNOTyhlZnAtPmdhbmdlZF9lZHApKTsKPiA+ PiAtCQlwcmludGYoIlx0XHRDb21wcmVzc2lvbiBtZXRob2QgQ1BTOiAlc1xuIiwgWUVTTk8oZWZw LT5jb21wcmVzc2lvbl9tZXRob2QpKTsKPiA+PiAtCQlwcmludGYoIlx0XHRDb21wcmVzc2lvbiBl bmFibGU6ICVzXG4iLCBZRVNOTyhlZnAtPmNvbXByZXNzaW9uX2VuYWJsZSkpOwo+ID4+IC0JCXBy aW50ZigiXHRcdEVkaWRsZXNzIEVGUDogJXNcbiIsIFlFU05PKGVmcC0+ZWRpZGxlc3NfZWZwKSk7 Cj4gPj4gLQkJcHJpbnRmKCJcdFx0Q29tcHJlc3Npb24gc3RydWN0dXJlIGluZGV4OiAweCUwMngp XG4iLCBlZnAtPmNvbXByZXNzaW9uX3N0cnVjdHVyZV9pbmRleCk7Cj4gPj4gLQkJcHJpbnRmKCJc dFx0U2xhdmUgRERJIHBvcnQ6IDB4JTAyeCAoJXMpXG4iLCBlZnAtPnNsYXZlX3BvcnQsIGR2b19w b3J0KGVmcC0+c2xhdmVfcG9ydCkpOwo+ID4+IC0JCXByaW50ZigiXHRcdEFJTSBvZmZzZXQ6ICVk XG4iLCBjaGlsZC0+YWRkaW5fb2Zmc2V0KTsKPiA+PiAtCQlwcmludGYoIlx0XHRQb3J0OiAweCUw MnggKCVzKVxuIiwgZWZwLT5kdm9fcG9ydCwgZHZvX3BvcnQoZWZwLT5kdm9fcG9ydCkpOwo+ID4+ IC0JCXByaW50ZigiXHRcdEFJTSBJMkMgcGluOiAweCUwMnhcbiIsIGVmcC0+aTJjX3Bpbik7Cj4g Pj4gLQkJcHJpbnRmKCJcdFx0QUlNIFNsYXZlIGFkZHJlc3M6IDB4JTAyeFxuIiwgZWZwLT5zbGF2 ZV9hZGRyKTsKPiA+PiAtCQlwcmludGYoIlx0XHREREMgcGluOiAweCUwMnhcbiIsIGVmcC0+ZGRj X3Bpbik7Cj4gPj4gLQkJcHJpbnRmKCJcdFx0RURJRCBidWZmZXIgcHRyOiAweCUwMnhcbiIsIGVm cC0+ZWRpZF9wdHIpOwo+ID4+IC0JCXByaW50ZigiXHRcdERWTyBjb25maWc6IDB4JTAyeFxuIiwg ZWZwLT5kdm9fY2ZnKTsKPiA+PiAtCQlwcmludGYoIlx0XHRIUEQgc2Vuc2UgaW52ZXJ0OiAlc1xu IiwgWUVTTk8oZWZwLT5ocGRfaW52ZXJ0KSk7Cj4gPj4gLQkJcHJpbnRmKCJcdFx0SWJvb3N0IGVu YWJsZTogJXNcbiIsIFlFU05PKGVmcC0+aWJvb3N0KSk7Cj4gPj4gLQkJcHJpbnRmKCJcdFx0T25i b2FyZCBMU1BDT046ICVzXG4iLCBZRVNOTyhlZnAtPmxzcGNvbikpOwo+ID4+IC0JCXByaW50Zigi XHRcdExhbmUgcmV2ZXJzYWw6ICVzXG4iLCBZRVNOTyhlZnAtPmxhbmVfcmV2ZXJzYWwpKTsKPiA+ PiAtCQlwcmludGYoIlx0XHRFRlAgcm91dGVkIHRocm91Z2ggZG9jazogJXNcbiIsIFlFU05PKGVm cC0+ZWZwX3JvdXRlZCkpOwo+ID4+IC0JCXByaW50ZigiXHRcdEhETUkgY29tcGF0aWJsZT8gJXNc biIsIFlFU05PKGVmcC0+aGRtaV9zdXBwb3J0KSk7Cj4gPj4gLQkJcHJpbnRmKCJcdFx0RFAgY29t cGF0aWJsZT8gJXNcbiIsIFlFU05PKGVmcC0+ZHBfc3VwcG9ydCkpOwo+ID4+IC0JCXByaW50Zigi XHRcdFRNRFMgY29tcGF0aWJsZT8gJXNcbiIsIFlFU05PKGVmcC0+dG1kc19zdXBwb3J0KSk7Cj4g Pj4gLQkJcHJpbnRmKCJcdFx0QXV4IGNoYW5uZWw6IDB4JTAyeFxuIiwgZWZwLT5hdXhfY2hhbm5l bCk7Cj4gPj4gLQkJcHJpbnRmKCJcdFx0RG9uZ2xlIGRldGVjdDogMHglMDJ4XG4iLCBlZnAtPmRv bmdsZV9kZXRlY3QpOwo+ID4+IC0JCXByaW50ZigiXHRcdEludGVncmF0ZWQgZW5jb2RlciBpbnN0 ZWFkIG9mIFNEVk86ICVzXG4iLCBZRVNOTyhlZnAtPmludGVncmF0ZWRfZW5jb2RlcikpOwo+ID4+ IC0JCXByaW50ZigiXHRcdEhvdHBsdSBjb25uZWN0IHN0YXR1czogMHglMDJ4XG4iLCBlZnAtPmhw ZF9zdGF0dXMpOwo+ID4+IC0JCXByaW50ZigiXHRcdFNEVk8gc3RhbGwgc2lnbmFsIGF2YWlsYWJs ZTogJXNcbiIsIFlFU05PKGVmcC0+c2R2b19zdGFsbCkpOwo+ID4+IC0JCXByaW50ZigiXHRcdFBp cGUgY2FwYWJpbGl0aWVzOiAweCUwMnhcbiIsIGVmcC0+cGlwZV9jYXApOwo+ID4+IC0JCXByaW50 ZigiXHRcdERWTyB3aXJpbmc6IDB4JTAyeFxuIiwgZWZwLT5kdm9fd2lyaW5nKTsKPiA+PiAtCQlw cmludGYoIlx0XHRNSVBJIGJyaWRnZSB0eXBlOiAlMDJ4ICglcylcbiIsIGVmcC0+bWlwaV9icmlk Z2VfdHlwZSwKPiA+PiAtCQkgICAgICAgbWlwaV9icmlkZ2VfdHlwZShlZnAtPm1pcGlfYnJpZGdl X3R5cGUpKTsKPiA+PiAtCQlwcmludGYoIlx0XHREZXZpY2UgY2xhc3MgZXh0ZW5kc2lvbjogMHgl MDJ4XG4iLCBlZnAtPmV4dGVuZGVkX3R5cGUpOwo+ID4+IC0JCXByaW50ZigiXHRcdERWTyBmdW5j dGlvbjogMHglMDJ4XG4iLCBlZnAtPmR2b19mdW5jdGlvbik7Cj4gPj4gKwl9IGVsc2Ugewo+ID4+ ICsJCXByaW50ZigiXHRcdEkyQyBzcGVlZDogMHglMDJ4XG4iLCBjaGlsZC0+aTJjX3NwZWVkKTsK PiA+PiArCQlwcmludGYoIlx0XHREUCBvbmJvYXJkIHJlZHJpdmVyOiAweCUwMnhcbiIsIGNoaWxk LT5kcF9vbmJvYXJkX3JlZHJpdmVyKTsKPiA+PiArCQlwcmludGYoIlx0XHREUCBvbmRvY2sgcmVk cml2ZXI6IDB4JTAyeFxuIiwgY2hpbGQtPmRwX29uZG9ja19yZWRyaXZlcik7Cj4gPj4gKwkJcHJp bnRmKCJcdFx0SERNSSBsZXZlbCBzaGlmdGVyIHZhbHVlOiAweCUwMnhcbiIsIGNoaWxkLT5oZG1p X2xldmVsX3NoaWZ0ZXJfdmFsdWUpOwo+ID4+ICsJCXByaW50ZigiXHRcdEhETUkgbWF4IGRhdGEg cmF0ZTogMHglMDJ4XG4iLCBjaGlsZC0+aGRtaV9tYXhfZGF0YV9yYXRlKTsKPiA+PiArCQlwcmlu dGYoIlx0XHRPZmZzZXQgdG8gRFREIGJ1ZmZlciBmb3IgZWRpZGxlc3MgQ0hJTEQ6IDB4JTAyeFxu IiwgY2hpbGQtPmR0ZF9idWZfcHRyKTsKPiA+PiArCQlwcmludGYoIlx0XHRFZGlkbGVzcyBFRlA6 ICVzXG4iLCBZRVNOTyhjaGlsZC0+ZWRpZGxlc3NfZWZwKSk7Cj4gPj4gKwkJcHJpbnRmKCJcdFx0 Q29tcHJlc3Npb24gZW5hYmxlOiAlc1xuIiwgWUVTTk8oY2hpbGQtPmNvbXByZXNzaW9uX2VuYWJs ZSkpOwo+ID4+ICsJCXByaW50ZigiXHRcdENvbXByZXNzaW9uIG1ldGhvZCBDUFM6ICVzXG4iLCBZ RVNOTyhjaGlsZC0+Y29tcHJlc3Npb25fbWV0aG9kKSk7Cj4gPj4gKwkJcHJpbnRmKCJcdFx0RHVh bCBwaXBlIGdhbmdlZCBlRFA6ICVzXG4iLCBZRVNOTyhjaGlsZC0+Z2FuZ2VkX2VkcCkpOwo+ID4+ ICsJCXByaW50ZigiXHRcdENvbXByZXNzaW9uIHN0cnVjdHVyZSBpbmRleDogMHglMDJ4KVxuIiwg Y2hpbGQtPmNvbXByZXNzaW9uX3N0cnVjdHVyZV9pbmRleCk7Cj4gPj4gKwkJcHJpbnRmKCJcdFx0 U2xhdmUgRERJIHBvcnQ6IDB4JTAyeCAoJXMpXG4iLCBjaGlsZC0+c2xhdmVfcG9ydCwgZHZvX3Bv cnQoY2hpbGQtPnNsYXZlX3BvcnQpKTsKPiA+PiArCX0KPiA+PiArCj4gPj4gKwlwcmludGYoIlx0 XHRBSU0gb2Zmc2V0OiAlZFxuIiwgY2hpbGQtPmFkZGluX29mZnNldCk7Cj4gPj4gKwlwcmludGYo Ilx0XHREVk8gUG9ydDogMHglMDJ4ICglcylcbiIsIGNoaWxkLT5kdm9fcG9ydCwgZHZvX3BvcnQo Y2hpbGQtPmR2b19wb3J0KSk7Cj4gPj4gKwo+ID4+ICsJaWYgKGNvbnRleHQtPmJkYi0+dmVyc2lv biA8IDE1MikKPiA+PiArCQlyZXR1cm47Cj4gPj4gKwo+ID4+ICsJcHJpbnRmKCJcdFx0QUlNIEky QyBwaW46IDB4JTAyeFxuIiwgY2hpbGQtPmkyY19waW4pOwo+ID4+ICsJcHJpbnRmKCJcdFx0QUlN IFNsYXZlIGFkZHJlc3M6IDB4JTAyeFxuIiwgY2hpbGQtPnNsYXZlX2FkZHIpOwo+ID4+ICsJcHJp bnRmKCJcdFx0RERDIHBpbjogMHglMDJ4XG4iLCBjaGlsZC0+ZGRjX3Bpbik7Cj4gPj4gKwlwcmlu dGYoIlx0XHRFRElEIGJ1ZmZlciBwdHI6IDB4JTAyeFxuIiwgY2hpbGQtPmVkaWRfcHRyKTsKPiA+ PiArCXByaW50ZigiXHRcdERWTyBjb25maWc6IDB4JTAyeFxuIiwgY2hpbGQtPmR2b19jZmcpOwo+ ID4+ICsKPiA+PiArCWlmIChjb250ZXh0LT5iZGItPnZlcnNpb24gPCAxNTgpIHsKPiA+PiArCQlw cmludGYoIlx0XHREVk8yIFBvcnQ6IDB4JTAyeCAoJXMpXG4iLCBjaGlsZC0+ZHZvMl9wb3J0LCBk dm9fcG9ydChjaGlsZC0+ZHZvMl9wb3J0KSk7Cj4gPj4gKwkJcHJpbnRmKCJcdFx0STJDMiBwaW46 IDB4JTAyeFxuIiwgY2hpbGQtPmkyYzJfcGluKTsKPiA+PiArCQlwcmludGYoIlx0XHRTbGF2ZTIg YWRkcmVzczogMHglMDJ4XG4iLCBjaGlsZC0+c2xhdmUyX2FkZHIpOwo+ID4+ICsJCXByaW50Zigi XHRcdEREQzIgcGluOiAweCUwMnhcbiIsIGNoaWxkLT5kZGMyX3Bpbik7Cj4gPj4gKwl9IGVsc2Ug ewo+ID4+ICsJCXByaW50ZigiXHRcdEVGUCByb3V0ZWQgdGhyb3VnaCBkb2NrOiAlc1xuIiwgWUVT Tk8oY2hpbGQtPmVmcF9yb3V0ZWQpKTsKPiA+PiArCQlwcmludGYoIlx0XHRMYW5lIHJldmVyc2Fs OiAlc1xuIiwgWUVTTk8oY2hpbGQtPmxhbmVfcmV2ZXJzYWwpKTsKPiA+PiArCQlwcmludGYoIlx0 XHRPbmJvYXJkIExTUENPTjogJXNcbiIsIFlFU05PKGNoaWxkLT5sc3Bjb24pKTsKPiA+PiArCQlw cmludGYoIlx0XHRJYm9vc3QgZW5hYmxlOiAlc1xuIiwgWUVTTk8oY2hpbGQtPmlib29zdCkpOwo+ ID4+ICsJCXByaW50ZigiXHRcdEhQRCBzZW5zZSBpbnZlcnQ6ICVzXG4iLCBZRVNOTyhjaGlsZC0+ aHBkX2ludmVydCkpOwo+ID4+ICsJCXByaW50ZigiXHRcdEhETUkgY29tcGF0aWJsZT8gJXNcbiIs IFlFU05PKGNoaWxkLT5oZG1pX3N1cHBvcnQpKTsKPiA+PiArCQlwcmludGYoIlx0XHREUCBjb21w YXRpYmxlPyAlc1xuIiwgWUVTTk8oY2hpbGQtPmRwX3N1cHBvcnQpKTsKPiA+PiArCQlwcmludGYo Ilx0XHRUTURTIGNvbXBhdGlibGU/ICVzXG4iLCBZRVNOTyhjaGlsZC0+dG1kc19zdXBwb3J0KSk7 Cj4gPj4gKwkJcHJpbnRmKCJcdFx0QXV4IGNoYW5uZWw6IDB4JTAyeFxuIiwgY2hpbGQtPmF1eF9j aGFubmVsKTsKPiA+PiArCQlwcmludGYoIlx0XHREb25nbGUgZGV0ZWN0OiAweCUwMnhcbiIsIGNo aWxkLT5kb25nbGVfZGV0ZWN0KTsKPiA+Cj4gPiBUaGUgdmVyc2lvbiBvZiB0aGUgc3BlYyBJIGhh dmUgYXQgaGFuZCBzYXlzIGF1eCBhbmQgZG9uZ2xlIGFyZQo+ID4gYWxyZWFkeSBwYXJ0IG9mIHZl cnNpb24gMTU1Lgo+IAo+IFNlZW1zIGxpa2UgZHZvMi9pMmMyL3NsYXZlMi9kZGMyIHdlcmUgY29u dmVydGVkIHRvIGZsYWdzIGF0IDE1NS4gT2theSBpZgo+IEkganVzdCBjaGFuZ2UgdGhlIGNvbmRp dGlvbiBhYm92ZSBmcm9tIDwgMTU4IHRvIDwgMTU1PwoKQXllLgoKSSBkaWRuJ3QgdHJhd2wgdGhy b3VnaCBhbGwgdGhlIGdyaXR0eSBkZXRhaWxzIG9mIHRoZSBlbnRpcmUgc2VyaWVzLCBidXQKd2hh dCBJIGRvIHNlZSBJIGxpa2UsIHNvIGZvciB0aGUgc2VyaWVzCkFja2VkLWJ5OiBWaWxsZSBTeXJq w6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoKSSB3b25kZXIgaWYgd2Ugc2hv dWxkIGFkZCBtb3JlIHZlcnNpb24gY2hlY2tzIHNvIHRoYXQgd2Ugd291bGRuJ3QgZHVtcAp0aGlu Z3MgdGhhdCBhcmVuJ3QgYWN0dWFsbHkgc3BlY2lmaWVkPyBPbmUgY3JhenkgaWRlYSBJIGhhZCBp cyB0aGF0IHdlCmNvdWxkIGRlZmluZSBhIHBhcmFsbGVsIHN0cnVjdHVyZSB3aGljaCB3b3VsZCBo YXZlIGEgbWF0Y2hpbmcgdTggbWVtYmVyCnRvIGV2ZXJ5dGhpbmcgaW4gdGhlIGNoaWxkX2Rldmlj ZV9jb25maWcsIGFuZCB3ZSB3b3VsZCBpbml0aWFsaXplCmVhY2ggbWVtYmVyIHdpdGggdGhlIGNv cnJlY3QgdmVyc2lvbiBudW1iZXIuIFRoZW4gd2UgY291bGQgaGF2ZSBzb21lCmtpbmQgb2Ygbmlj ZSBkdW1wIG1hY3JvL2Z1bmN0aW9uIHRoYXQgY2hlY2tzIHRoZSBjdXJyZW50IFZCVCB2ZXJzaW9u CmFnYWluc3QgdGhlIG51bWJlciBmcm9tIHNhaWQgcGFyYWxsZWwgc3RydWN0dXJlLgoKPiAKPiBC UiwKPiBKYW5pLgo+IAo+IAo+ID4KPiA+PiArCX0KPiA+PiArCj4gPj4gKwlwcmludGYoIlx0XHRQ aXBlIGNhcGFiaWxpdGllczogMHglMDJ4XG4iLCBjaGlsZC0+cGlwZV9jYXApOwo+ID4+ICsJcHJp bnRmKCJcdFx0U0RWTyBzdGFsbCBzaWduYWwgYXZhaWxhYmxlOiAlc1xuIiwgWUVTTk8oY2hpbGQt PnNkdm9fc3RhbGwpKTsKPiA+PiArCXByaW50ZigiXHRcdEhvdHBsdSBjb25uZWN0IHN0YXR1czog MHglMDJ4XG4iLCBjaGlsZC0+aHBkX3N0YXR1cyk7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KPiA+IFByZS1leGlzdGluZyB0eXBvCj4gPgo+ID4+ICsJcHJpbnRmKCJcdFx0SW50ZWdy YXRlZCBlbmNvZGVyIGluc3RlYWQgb2YgU0RWTzogJXNcbiIsIFlFU05PKGNoaWxkLT5pbnRlZ3Jh dGVkX2VuY29kZXIpKTsKPiA+PiArCXByaW50ZigiXHRcdERWTyB3aXJpbmc6IDB4JTAyeFxuIiwg Y2hpbGQtPmR2b193aXJpbmcpOwo+ID4+ICsKPiA+PiArCWlmIChjb250ZXh0LT5iZGItPnZlcnNp b24gPCAxNzEpIHsKPiA+PiArCQlwcmludGYoIlx0XHREVk8yIHdpcmluZzogMHglMDJ4XG4iLCBj aGlsZC0+ZHZvMl93aXJpbmcpOwo+ID4+ICsJfSBlbHNlIHsKPiA+PiArCQlwcmludGYoIlx0XHRN SVBJIGJyaWRnZSB0eXBlOiAlMDJ4ICglcylcbiIsIGNoaWxkLT5taXBpX2JyaWRnZV90eXBlLAo+ ID4+ICsJCSAgICAgICBtaXBpX2JyaWRnZV90eXBlKGNoaWxkLT5taXBpX2JyaWRnZV90eXBlKSk7 Cj4gPj4gIAl9Cj4gPj4gIAo+ID4+ICsJcHJpbnRmKCJcdFx0RGV2aWNlIGNsYXNzIGV4dGVuZHNp b246IDB4JTAyeFxuIiwgY2hpbGQtPmV4dGVuZGVkX3R5cGUpOwo+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCj4gPiBkaXR0bwo+ID4KPiA+PiArCXByaW50ZigiXHRc dERWTyBmdW5jdGlvbjogMHglMDJ4XG4iLCBjaGlsZC0+ZHZvX2Z1bmN0aW9uKTsKPiA+PiArCj4g Pj4gIAlpZiAoY29udGV4dC0+YmRiLT52ZXJzaW9uID49IDE5NSkgewo+ID4+IC0JCXByaW50Zigi XHRcdERQIFVTQiB0eXBlIEMgc3VwcG9ydDogJXNcbiIsIFlFU05PKGVmcC0+ZHBfdXNiX3R5cGVf YykpOwo+ID4+IC0JCXByaW50ZigiXHRcdDJYIERQIEdQSU8gaW5kZXg6IDB4JTAyeFxuIiwgZWZw LT5kcF9ncGlvX2luZGV4KTsKPiA+PiAtCQlwcmludGYoIlx0XHQyWCBEUCBHUElPIHBpbiBudW1i ZXI6IDB4JTAyeFxuIiwgZWZwLT5kcF9ncGlvX3Bpbl9udW0pOwo+ID4+ICsJCXByaW50ZigiXHRc dERQIFVTQiB0eXBlIEMgc3VwcG9ydDogJXNcbiIsIFlFU05PKGNoaWxkLT5kcF91c2JfdHlwZV9j KSk7Cj4gPj4gKwkJcHJpbnRmKCJcdFx0MlggRFAgR1BJTyBpbmRleDogMHglMDJ4XG4iLCBjaGls ZC0+ZHBfZ3Bpb19pbmRleCk7Cj4gPj4gKwkJcHJpbnRmKCJcdFx0MlggRFAgR1BJTyBwaW4gbnVt YmVyOiAweCUwMnhcbiIsIGNoaWxkLT5kcF9ncGlvX3Bpbl9udW0pOwo+ID4+ICAJfQo+ID4+ICAK PiA+PiAgCWlmIChjb250ZXh0LT5iZGItPnZlcnNpb24gPj0gMTk2KSB7Cj4gPj4gLQkJcHJpbnRm KCJcdFx0SUJvb3N0IGxldmVsIGZvciBIRE1JOiAweCUwMnhcbiIsIGVmcC0+aGRtaV9pYm9vc3Rf bGV2ZWwpOwo+ID4+IC0JCXByaW50ZigiXHRcdElCb29zdCBsZXZlbCBmb3IgRFAvZURQOiAweCUw MnhcbiIsIGVmcC0+ZHBfaWJvb3N0X2xldmVsKTsKPiA+PiArCQlwcmludGYoIlx0XHRJQm9vc3Qg bGV2ZWwgZm9yIEhETUk6IDB4JTAyeFxuIiwgY2hpbGQtPmhkbWlfaWJvb3N0X2xldmVsKTsKPiA+ PiArCQlwcmludGYoIlx0XHRJQm9vc3QgbGV2ZWwgZm9yIERQL2VEUDogMHglMDJ4XG4iLCBjaGls ZC0+ZHBfaWJvb3N0X2xldmVsKTsKPiA+PiAgCX0KPiA+PiAgfQo+ID4+ICAKPiA+PiAtLSAKPiA+ PiAyLjExLjAKPiAKPiAtLSAKPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5v bG9neSBDZW50ZXIKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=