From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id D167689DD3 for ; Wed, 17 Mar 2021 17:43:48 +0000 (UTC) Date: Wed, 17 Mar 2021 18:43:43 +0100 From: Zbigniew =?utf-8?Q?Kempczy=C5=84ski?= Message-ID: <20210317174343.GB120205@zkempczy-mobl2> References: <20210317144610.108372-1-zbigniew.kempczynski@intel.com> <20210317144610.108372-3-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Subject: Re: [igt-dev] [PATCH i-g-t v26 02/35] lib/igt_list: igt_hlist implementation. 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: Jason Ekstrand Cc: IGT GPU Tools List-ID: T24gV2VkLCBNYXIgMTcsIDIwMjEgYXQgMTE6NDM6MzhBTSAtMDUwMCwgSmFzb24gRWtzdHJhbmQg d3JvdGU6Cj4gV291bGQgaXQgYmUgYmV0dGVyIHRvIHB1bGwgdGhlIGhhc2ggdGFibGUgaW1wbGVt ZW50YXRpb24gZnJvbSBNZXNhPwo+IE9yIHVzZSBodHRwczovL2NnaXQuZnJlZWRlc2t0b3Aub3Jn L35hbmhvbHQvaGFzaF90YWJsZS8gd2hpY2ggc2hvdWxkCj4gYmUgaWRlbnRpY2FsLCB0aG91Z2gg aXQgbWF5IGJlIGEgYml0IG91dC1vZi1kYXRlLiAgSSd2ZSBwb3VyZWQgZW5vdWdoCj4gaG91cnMg b2YgbXkgbGlmZSBpbnRvIGZpbmRpbmcgYW5kIGZpeGluZyB0aGUgYnVncyBpbiB0aGUgTWVzYSBo YXNoCj4gdGFibGUgdGhhdCBJR1Qgcm9sbGluZyBpdHMgb3duIGRvZXNuJ3QgcmVhbGx5IGZpbGwg bWUgd2l0aCBoYXBweQo+IGZlZWxpbmdzLgo+IAo+IC0tSmFzb24KCkknbSBub3QgZ29pbmcgdG8g YmUgYSBkZXZpbCBhZHZvY2F0ZSwgSSdsbCBqdXN0IGFzayBEb21pbmlrIGhvdyAKY29uZmlkZW50 IGlzIGhlIGFib3V0IHRoYXQgaW1wbGVtZW50YXRpb24sIGF0IGxlYXN0IHdlIGNhbiBwcm92aWRl CnNvbWUgc3RyZXNzIHRlc3Qgd2l0aCBtdWx0aXRocmVhZGluZyBzY2VuYXJpb3MuCgpIZSdzIHBv cnRlZCBrZXJuZWwgaGFzaHRhYmxlIHNvIGlmIGhlIGRpZG4ndCBpbnRyb2R1Y2UgYSBub24gb2J2 aW91cwpidWcgaXQgc2hvdWxkIHdvcmsuCgpSZWdhcmRpbmcgRXJpYyBpbXBsZW1lbnRhdGlvbiAt IHdlIG5lZWQgdG8gYWRvcHQgdGhhdCBpbXBsZW1lbnRhdGlvbgp0byBhdCBsZWFzdCByZW5hbWUg dG8gaWd0XyogYW5kIGZpeCB0aGUgY29kZSB3aGljaCBpcyB1c2luZy4gClNob3VsZCB0YWtlIGZl dyBkYXlzIG1heC4gCgpJZiB5b3UnbGwgdGFrZSBhIGxvb2sgdG8gdGVzdHMgYXBpX2ludGVsX2Fs bG9jYXRvckB0d28tbGV2ZWwtaW5jZXB0aW9uCnlvdSdsbCBzZWUgd2UncmUgc3RyZXNzIHRlc3Rp bmcgdGhhdCBoYXNodGFibGUgbXVjaCBmcm9tIG1hbnkKcHJvY2Vzc2VzIC8gdGhyZWFkcyBhbmQg d2Ugc2VlIG5vIHByb2JsZW0gd2l0aCBsb3NpbmcgZGF0YSBjb2hlcmVuY3kKaW4gdGhlIG1hcC4K Ci0tClpiaWduaWV3Cj4gCj4gT24gV2VkLCBNYXIgMTcsIDIwMjEgYXQgOTo0NiBBTSBaYmlnbmll dyBLZW1wY3p5xYRza2kKPiA8emJpZ25pZXcua2VtcGN6eW5za2lAaW50ZWwuY29tPiB3cm90ZToK PiA+Cj4gPiBGcm9tOiBEb21pbmlrIEdyemVnb3J6ZWsgPGRvbWluaWsuZ3J6ZWdvcnpla0BpbnRl bC5jb20+Cj4gPgo+ID4gRG91YmxlIGxpbmtlZCBsaXN0cyB3aXRoIGEgc2luZ2xlIHBvaW50ZXIg bGlzdCBoZWFkIGltcGxlbWVudGF0aW9uLAo+ID4gYmFzZWQgb24gc2ltaWxhciBpbiB0aGUga2Vy bmVsLgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IERvbWluaWsgR3J6ZWdvcnplayA8ZG9taW5pay5n cnplZ29yemVrQGludGVsLmNvbT4KPiA+IENjOiBaYmlnbmlldyBLZW1wY3p5xYRza2kgPHpiaWdu aWV3LmtlbXBjenluc2tpQGludGVsLmNvbT4KPiA+IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4KPiA+IEFja2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGZmd2xsLmNoPgo+ID4gLS0tCj4gPiAgbGliL2lndF9saXN0LmMgfCA3MiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gIGxpYi9pZ3RfbGlz dC5oIHwgNTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KPiA+ICAyIGZpbGVz IGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYg LS1naXQgYS9saWIvaWd0X2xpc3QuYyBiL2xpYi9pZ3RfbGlzdC5jCj4gPiBpbmRleCAzN2FlMTM5 YzQuLjQzMjAwZjliMyAxMDA2NDQKPiA+IC0tLSBhL2xpYi9pZ3RfbGlzdC5jCj4gPiArKysgYi9s aWIvaWd0X2xpc3QuYwo+ID4gQEAgLTIyLDYgKzIyLDcgQEAKPiA+ICAgKgo+ID4gICAqLwo+ID4K PiA+ICsjaW5jbHVkZSAiYXNzZXJ0LmgiCj4gPiAgI2luY2x1ZGUgImlndF9saXN0LmgiCj4gPgo+ ID4gIHZvaWQgSUdUX0lOSVRfTElTVF9IRUFEKHN0cnVjdCBpZ3RfbGlzdF9oZWFkICpsaXN0KQo+ ID4gQEAgLTgxLDMgKzgyLDc0IEBAIGJvb2wgaWd0X2xpc3RfZW1wdHkoY29uc3Qgc3RydWN0IGln dF9saXN0X2hlYWQgKmhlYWQpCj4gPiAgewo+ID4gICAgICAgICByZXR1cm4gaGVhZC0+bmV4dCA9 PSBoZWFkOwo+ID4gIH0KPiA+ICsKPiA+ICt2b2lkIGlndF9obGlzdF9pbml0KHN0cnVjdCBpZ3Rf aGxpc3Rfbm9kZSAqaCkKPiA+ICt7Cj4gPiArICAgICAgIGgtPm5leHQgPSBOVUxMOwo+ID4gKyAg ICAgICBoLT5wcHJldiA9IE5VTEw7Cj4gPiArfQo+ID4gKwo+ID4gK2ludCBpZ3RfaGxpc3RfdW5o YXNoZWQoY29uc3Qgc3RydWN0IGlndF9obGlzdF9ub2RlICpoKQo+ID4gK3sKPiA+ICsgICAgICAg cmV0dXJuICFoLT5wcHJldjsKPiA+ICt9Cj4gPiArCj4gPiAraW50IGlndF9obGlzdF9lbXB0eShj b25zdCBzdHJ1Y3QgaWd0X2hsaXN0X2hlYWQgKmgpCj4gPiArewo+ID4gKyAgICAgICByZXR1cm4g IWgtPmZpcnN0Owo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBfX2lndF9obGlzdF9kZWwo c3RydWN0IGlndF9obGlzdF9ub2RlICpuKQo+ID4gK3sKPiA+ICsgICAgICAgc3RydWN0IGlndF9o bGlzdF9ub2RlICpuZXh0ID0gbi0+bmV4dDsKPiA+ICsgICAgICAgc3RydWN0IGlndF9obGlzdF9u b2RlICoqcHByZXYgPSBuLT5wcHJldjsKPiA+ICsKPiA+ICsgICAgICAgKnBwcmV2ID0gbmV4dDsK PiA+ICsgICAgICAgaWYgKG5leHQpCj4gPiArICAgICAgICAgICAgICAgbmV4dC0+cHByZXYgPSBw cHJldjsKPiA+ICt9Cj4gPiArCj4gPiArdm9pZCBpZ3RfaGxpc3RfZGVsKHN0cnVjdCBpZ3RfaGxp c3Rfbm9kZSAqbikKPiA+ICt7Cj4gPiArICAgICAgIF9faWd0X2hsaXN0X2RlbChuKTsKPiA+ICsg ICAgICAgbi0+bmV4dCA9IE5VTEw7Cj4gPiArICAgICAgIG4tPnBwcmV2ID0gTlVMTDsKPiA+ICt9 Cj4gPiArCj4gPiArdm9pZCBpZ3RfaGxpc3RfZGVsX2luaXQoc3RydWN0IGlndF9obGlzdF9ub2Rl ICpuKQo+ID4gK3sKPiA+ICsgICAgICAgaWYgKCFpZ3RfaGxpc3RfdW5oYXNoZWQobikpIHsKPiA+ ICsgICAgICAgICAgICAgICBfX2lndF9obGlzdF9kZWwobik7Cj4gPiArICAgICAgICAgICAgICAg aWd0X2hsaXN0X2luaXQobik7Cj4gPiArICAgICAgIH0KPiA+ICt9Cj4gPiArCj4gPiArdm9pZCBp Z3RfaGxpc3RfYWRkX2hlYWQoc3RydWN0IGlndF9obGlzdF9ub2RlICpuLCBzdHJ1Y3QgaWd0X2hs aXN0X2hlYWQgKmgpCj4gPiArewo+ID4gKyAgICAgICBzdHJ1Y3QgaWd0X2hsaXN0X25vZGUgKmZp cnN0ID0gaC0+Zmlyc3Q7Cj4gPiArCj4gPiArICAgICAgIG4tPm5leHQgPSBmaXJzdDsKPiA+ICsg ICAgICAgaWYgKGZpcnN0KQo+ID4gKyAgICAgICAgICAgICAgIGZpcnN0LT5wcHJldiA9ICZuLT5u ZXh0Owo+ID4gKyAgICAgICBoLT5maXJzdCA9IG47Cj4gPiArICAgICAgIG4tPnBwcmV2ID0gJmgt PmZpcnN0Owo+ID4gK30KPiA+ICsKPiA+ICt2b2lkIGlndF9obGlzdF9hZGRfYmVmb3JlKHN0cnVj dCBpZ3RfaGxpc3Rfbm9kZSAqbiwgc3RydWN0IGlndF9obGlzdF9ub2RlICpuZXh0KQo+ID4gK3sK PiA+ICsgICAgICAgYXNzZXJ0KG5leHQpOwo+ID4gKyAgICAgICBuLT5wcHJldiA9IG5leHQtPnBw cmV2Owo+ID4gKyAgICAgICBuLT5uZXh0ID0gbmV4dDsKPiA+ICsgICAgICAgbmV4dC0+cHByZXYg PSAmbi0+bmV4dDsKPiA+ICsgICAgICAgKihuLT5wcHJldikgPSBuOwo+ID4gK30KPiA+ICsKPiA+ ICt2b2lkIGlndF9obGlzdF9hZGRfYmVoaW5kKHN0cnVjdCBpZ3RfaGxpc3Rfbm9kZSAqbiwgc3Ry dWN0IGlndF9obGlzdF9ub2RlICpwcmV2KQo+ID4gK3sKPiA+ICsgICAgICAgbi0+bmV4dCA9IHBy ZXYtPm5leHQ7Cj4gPiArICAgICAgIHByZXYtPm5leHQgPSBuOwo+ID4gKyAgICAgICBuLT5wcHJl diA9ICZwcmV2LT5uZXh0Owo+ID4gKwo+ID4gKyAgICAgICBpZiAobi0+bmV4dCkKPiA+ICsgICAg ICAgICAgICAgICBuLT5uZXh0LT5wcHJldiAgPSAmbi0+bmV4dDsKPiA+ICt9Cj4gPiBkaWZmIC0t Z2l0IGEvbGliL2lndF9saXN0LmggYi9saWIvaWd0X2xpc3QuaAo+ID4gaW5kZXggY2M5M2Q3YTBk Li43OGU3NjFlMDUgMTAwNjQ0Cj4gPiAtLS0gYS9saWIvaWd0X2xpc3QuaAo+ID4gKysrIGIvbGli L2lndF9saXN0LmgKPiA+IEBAIC00MCw2ICs0MCwxMCBAQAo+ID4gICAqIGlndF9saXN0IGlzIGEg ZG91Ymx5LWxpbmtlZCBsaXN0IHdoZXJlIGFuIGluc3RhbmNlIG9mIGlndF9saXN0X2hlYWQgaXMg YQo+ID4gICAqIGhlYWQgc2VudGluZWwgYW5kIGhhcyB0byBiZSBpbml0aWFsaXplZC4KPiA+ICAg Kgo+ID4gKyAqIGlndF9oaXN0IGlzIGFsc28gYW4gZG91YmxlIGxpbmtlZCBsaXN0cywgYnV0IHdp dGggYSBzaW5nbGUgcG9pbnRlciBsaXN0IGhlYWQuCj4gPiArICogTW9zdGx5IHVzZWZ1bCBmb3Ig aGFzaCB0YWJsZXMgd2hlcmUgdGhlIHR3byBwb2ludGVyIGxpc3QgaGVhZCBpcwo+ID4gKyAqIHRv byB3YXN0ZWZ1bC4gWW91IGxvc2UgdGhlIGFiaWxpdHkgdG8gYWNjZXNzIHRoZSB0YWlsIGluIE8o MSkuCj4gPiArICoKPiA+ICAgKiBFeGFtcGxlIHVzYWdlOgo+ID4gICAqCj4gPiAgICogfFs8IS0t IGxhbmd1YWdlPSJDIiAtLT4KPiA+IEBAIC03MSw2ICs3NSwxMyBAQCBzdHJ1Y3QgaWd0X2xpc3Rf aGVhZCB7Cj4gPiAgICAgICAgIHN0cnVjdCBpZ3RfbGlzdF9oZWFkICpuZXh0Owo+ID4gIH07Cj4g Pgo+ID4gK3N0cnVjdCBpZ3RfaGxpc3RfaGVhZCB7Cj4gPiArICAgICAgIHN0cnVjdCBpZ3RfaGxp c3Rfbm9kZSAqZmlyc3Q7Cj4gPiArfTsKPiA+ICsKPiA+ICtzdHJ1Y3QgaWd0X2hsaXN0X25vZGUg ewo+ID4gKyAgICAgICBzdHJ1Y3QgaWd0X2hsaXN0X25vZGUgKm5leHQsICoqcHByZXY7Cj4gPiAr fTsKPiA+Cj4gPiAgdm9pZCBJR1RfSU5JVF9MSVNUX0hFQUQoc3RydWN0IGlndF9saXN0X2hlYWQg KmhlYWQpOwo+ID4gIHZvaWQgaWd0X2xpc3RfYWRkKHN0cnVjdCBpZ3RfbGlzdF9oZWFkICplbGVt LCBzdHJ1Y3QgaWd0X2xpc3RfaGVhZCAqaGVhZCk7Cj4gPiBAQCAtODEsNiArOTIsMTcgQEAgdm9p ZCBpZ3RfbGlzdF9tb3ZlX3RhaWwoc3RydWN0IGlndF9saXN0X2hlYWQgKmVsZW0sIHN0cnVjdCBp Z3RfbGlzdF9oZWFkICpsaXN0KTsKPiA+ICBpbnQgaWd0X2xpc3RfbGVuZ3RoKGNvbnN0IHN0cnVj dCBpZ3RfbGlzdF9oZWFkICpoZWFkKTsKPiA+ICBib29sIGlndF9saXN0X2VtcHR5KGNvbnN0IHN0 cnVjdCBpZ3RfbGlzdF9oZWFkICpoZWFkKTsKPiA+Cj4gPiArdm9pZCBpZ3RfaGxpc3RfaW5pdChz dHJ1Y3QgaWd0X2hsaXN0X25vZGUgKmgpOwo+ID4gK2ludCBpZ3RfaGxpc3RfdW5oYXNoZWQoY29u c3Qgc3RydWN0IGlndF9obGlzdF9ub2RlICpoKTsKPiA+ICtpbnQgaWd0X2hsaXN0X2VtcHR5KGNv bnN0IHN0cnVjdCBpZ3RfaGxpc3RfaGVhZCAqaCk7Cj4gPiArdm9pZCBpZ3RfaGxpc3RfZGVsKHN0 cnVjdCBpZ3RfaGxpc3Rfbm9kZSAqbik7Cj4gPiArdm9pZCBpZ3RfaGxpc3RfZGVsX2luaXQoc3Ry dWN0IGlndF9obGlzdF9ub2RlICpuKTsKPiA+ICt2b2lkIGlndF9obGlzdF9hZGRfaGVhZChzdHJ1 Y3QgaWd0X2hsaXN0X25vZGUgKm4sIHN0cnVjdCBpZ3RfaGxpc3RfaGVhZCAqaCk7Cj4gPiArdm9p ZCBpZ3RfaGxpc3RfYWRkX2JlZm9yZShzdHJ1Y3QgaWd0X2hsaXN0X25vZGUgKm4sCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpZ3RfaGxpc3Rfbm9kZSAqbmV4dCk7Cj4gPiAr dm9pZCBpZ3RfaGxpc3RfYWRkX2JlaGluZChzdHJ1Y3QgaWd0X2hsaXN0X25vZGUgKm4sCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpZ3RfaGxpc3Rfbm9kZSAqcHJldik7Cj4g PiArCj4gPiAgI2RlZmluZSBpZ3RfY29udGFpbmVyX29mKHB0ciwgc2FtcGxlLCBtZW1iZXIpICAg ICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiAgICAgICAgIChfX3R5cGVvZl9fKHNhbXBsZSkp KChjaGFyICopKHB0cikgLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKF9fdHlwZW9mX18oKnNhbXBsZSksIG1l bWJlcikpCj4gPiBAQCAtOTYsOSArMTE4LDEwIEBAIGJvb2wgaWd0X2xpc3RfZW1wdHkoY29uc3Qg c3RydWN0IGlndF9saXN0X2hlYWQgKmhlYWQpOwo+ID4gICAqIFNhZmUgYWdhaW5zdCByZW1vdmVs IG9mIHRoZSAqY3VycmVudCogbGlzdCBlbGVtZW50LiBUbyBhY2hpdmUgdGhpcyBpdAo+ID4gICAq IHJlcXVpcmVzIGFuIGV4dHJhIGhlbHBlciB2YXJpYWJsZSBgdG1wYCB3aXRoIHRoZSBzYW1lIHR5 cGUgYXMgYHBvc2AuCj4gPiAgICovCj4gPiAtI2RlZmluZSBpZ3RfbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlKHBvcywgdG1wLCBoZWFkLCBtZW1iZXIpICAgICAgICAgICAgICAgICAgIFwKPiA+ICsK PiA+ICsjZGVmaW5lIGlndF9saXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocG9zLCB0bXAsIGhlYWQs IG1lbWJlcikgICAgICAgICAgIFwKPiA+ICAgICAgICAgZm9yIChwb3MgPSBpZ3RfY29udGFpbmVy X29mKChoZWFkKS0+bmV4dCwgcG9zLCBtZW1iZXIpLCAgICAgICAgIFwKPiA+IC0gICAgICAgICAg ICB0bXAgPSBpZ3RfY29udGFpbmVyX29mKChwb3MpLT5tZW1iZXIubmV4dCwgdG1wLCBtZW1iZXIp OyAgIFwKPiA+ICsgICAgICAgICAgICB0bXAgPSBpZ3RfY29udGFpbmVyX29mKChwb3MpLT5tZW1i ZXIubmV4dCwgdG1wLCBtZW1iZXIpOyAgIFwKPiA+ICAgICAgICAgICAgICAmcG9zLT5tZW1iZXIg IT0gKGhlYWQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ICAgICAg ICAgICAgICBwb3MgPSB0bXAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKPiA+ICAgICAgICAgICAgICB0bXAgPSBpZ3RfY29udGFpbmVyX29mKChwb3Mp LT5tZW1iZXIubmV4dCwgdG1wLCBtZW1iZXIpKQo+ID4gQEAgLTEwOCw2ICsxMzEsMjcgQEAgYm9v bCBpZ3RfbGlzdF9lbXB0eShjb25zdCBzdHJ1Y3QgaWd0X2xpc3RfaGVhZCAqaGVhZCk7Cj4gPiAg ICAgICAgICAgICAgJnBvcy0+bWVtYmVyICE9IChoZWFkKTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCj4gPiAgICAgICAgICAgICAgcG9zID0gaWd0X2NvbnRhaW5lcl9vZigo cG9zKS0+bWVtYmVyLnByZXYsIHBvcywgbWVtYmVyKSkKPiA+Cj4gPiArI2RlZmluZSBpZ3RfbGlz dF9mb3JfZWFjaF9lbnRyeV9zYWZlX3JldmVyc2UocG9zLCB0bXAsIGhlYWQsIG1lbWJlcikgICAg ICAgICAgIFwKPiA+ICsgICAgICAgZm9yIChwb3MgPSBpZ3RfY29udGFpbmVyX29mKChoZWFkKS0+ cHJldiwgcG9zLCBtZW1iZXIpLCAgICAgICAgIFwKPiA+ICsgICAgICAgICAgICB0bXAgPSBpZ3Rf Y29udGFpbmVyX29mKChwb3MpLT5tZW1iZXIucHJldiwgdG1wLCBtZW1iZXIpOyAgIFwKPiA+ICsg ICAgICAgICAgICAmcG9zLT5tZW1iZXIgIT0gKGhlYWQpOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKPiA+ICsgICAgICAgICAgICBwb3MgPSB0bXAsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ICsgICAgICAgICAgICB0bXAg PSBpZ3RfY29udGFpbmVyX29mKChwb3MpLT5tZW1iZXIucHJldiwgdG1wLCBtZW1iZXIpKQo+ID4g Kwo+ID4gKyNkZWZpbmUgaWd0X2hsaXN0X2VudHJ5X3NhZmUocHRyLCBzYW1wbGUsIG1lbWJlcikg XAo+ID4gKyAgICAgICAoeyB0eXBlb2YocHRyKSBfX19fcHRyID0gKHB0cik7IFwKPiA+ICsgICAg ICAgICAgX19fX3B0ciA/IGlndF9jb250YWluZXJfb2YoX19fX3B0ciwgc2FtcGxlLCBtZW1iZXIp IDogTlVMTDsgXAo+ID4gKyAgICAgICB9KQo+ID4gKwo+ID4gKyNkZWZpbmUgaWd0X2hsaXN0X2Zv cl9lYWNoX2VudHJ5KHBvcywgaGVhZCwgbWVtYmVyKSAgICAgICAgICAgICAgICAgICAgXAo+ID4g KyAgICAgICBmb3IgKHBvcyA9IGlndF9obGlzdF9lbnRyeV9zYWZlKChoZWFkKS0+Zmlyc3QsIHBv cywgbWVtYmVyKTsgICAgXAo+ID4gKyAgICAgICAgICAgIHBvczsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gKyAgICAgICAgICAgIHBv cyA9IGlndF9obGlzdF9lbnRyeV9zYWZlKChwb3MpLT5tZW1iZXIubmV4dCwgcG9zLCBtZW1iZXIp KQo+ID4gKwo+ID4gKyNkZWZpbmUgaWd0X2hsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocG9zLCBu LCBoZWFkLCBtZW1iZXIpICAgICAgICAgICAgXAo+ID4gKyAgICAgICBmb3IgKHBvcyA9IGlndF9o bGlzdF9lbnRyeV9zYWZlKChoZWFkKS0+Zmlyc3QsIHBvcywgbWVtYmVyKTsgICAgXAo+ID4gKyAg ICAgICAgICAgIHBvcyAmJiAoeyBuID0gcG9zLT5tZW1iZXIubmV4dDsgMTsgfSk7ICAgICAgICAg ICAgICAgICAgICAgXAo+ID4gKyAgICAgICAgICAgIHBvcyA9IGlndF9obGlzdF9lbnRyeV9zYWZl KG4sIHBvcywgbWVtYmVyKSkKPiA+Cj4gPiAgLyogSUdUIGN1c3RvbSBoZWxwZXJzICovCj4gPgo+ ID4gQEAgLTEyNyw0ICsxNzEsNiBAQCBib29sIGlndF9saXN0X2VtcHR5KGNvbnN0IHN0cnVjdCBp Z3RfbGlzdF9oZWFkICpoZWFkKTsKPiA+ICAjZGVmaW5lIGlndF9saXN0X2xhc3RfZW50cnkoaGVh ZCwgdHlwZSwgbWVtYmVyKSBcCj4gPiAgICAgICAgIGlndF9jb250YWluZXJfb2YoKGhlYWQpLT5w cmV2LCAodHlwZSksIG1lbWJlcikKPiA+Cj4gPiArI2RlZmluZSBJR1RfSU5JVF9ITElTVF9IRUFE KHB0cikgKChwdHIpLT5maXJzdCA9IE5VTEwpCj4gPiArCj4gPiAgI2VuZGlmIC8qIElHVF9MSVNU X0ggKi8KPiA+IC0tCj4gPiAyLjI2LjAKPiA+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaWd0LWRldgo=