From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: Re: [PATCH mesa 2/3] tgsi: Add support for global / local / input MEMORY Date: Thu, 10 Mar 2016 19:43:40 +0100 Message-ID: <56E1C05C.3090901@redhat.com> References: <1457622887-19328-1-git-send-email-hdegoede@redhat.com> <1457622887-19328-3-git-send-email-hdegoede@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: mesa-dev-bounces@lists.freedesktop.org Sender: "mesa-dev" To: Aaron Watry Cc: mesa-dev , nouveau@lists.freedesktop.org List-Id: nouveau.vger.kernel.org SGksCgpPbiAxMC0wMy0xNiAxNjozNSwgQWFyb24gV2F0cnkgd3JvdGU6Cj4gT24gVGh1LCBNYXIg MTAsIDIwMTYgYXQgOToxNCBBTSwgSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4g d3JvdGU6Cj4KPj4gRXh0ZW5kIHRoZSBNRU1PUlkgZmlsZSBzdXBwb3J0IHRvIGRpZmZlcmVudGlh dGUgYmV0d2VlbiBnbG9iYWwsIGxvY2FsCj4+IGFuZCBzaGFyZWQgbWVtb3J5LCBhcyB3ZWxsIGFz ICJpbnB1dCIgbWVtb3J5Lgo+Pgo+PiAiTUVNT1JZW3hdLCBJTlBVVCIgaXMgaW50ZW5kZWQgdG8g YWNjZXNzIE9wZW5DTCBrZXJuZWwgcGFyYW1ldGVycywgYQo+PiBzcGVjaWFsIG1lbW9yeSB0eXBl IGlzIGFkZGVkIGZvciB0aGlzLCBzaW5jZSB0aGUgYWN0dWFsIHN0b3JhZ2Ugb2YgdGhlc2UKPj4g KGUuZy4gVUJPLXMpIG1heSBkaWZmZXIgcGVyIGltcGxlbWVudGF0aW9uLiBUaGUgdXBsb2FkaW5n IG9mIGtlcm5lbAo+PiBwYXJhbWV0ZXJzIGlzIGhhbmRsZWQgYnkgbGF1bmNoX2dyaWQsICJNRU1P UllbeF0sIElOUFVUIiBhbGxvd3MgZHJpdmVycwo+PiB0byB1c2UgYW4gYWNjZXNzIG1lY2hhbmlz bSBmb3IgcGFyYW1ldGVyIHJlYWRzIHdoaWNoIG1hdGNoZXMgd2l0aCB0aGUKPj4gdXBsb2FkIG1l dGhvZC4KPj4KPj4gU2lnbmVkLW9mZi1ieTogSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0 LmNvbT4KPj4gLS0tCj4+ICAgc3JjL2dhbGxpdW0vYXV4aWxpYXJ5L3Rnc2kvdGdzaV9idWlsZC5j ICAgICAgICAgICAgfCAgOCArKystLS0tCj4+ICAgc3JjL2dhbGxpdW0vYXV4aWxpYXJ5L3Rnc2kv dGdzaV9kdW1wLmMgICAgICAgICAgICAgfCAgOSArKysrKystLQo+PiAgIHNyYy9nYWxsaXVtL2F1 eGlsaWFyeS90Z3NpL3Rnc2lfdGV4dC5jICAgICAgICAgICAgIHwgMTQgKysrKysrKysrKy0tCj4+ ICAgc3JjL2dhbGxpdW0vYXV4aWxpYXJ5L3Rnc2kvdGdzaV91cmVnLmMgICAgICAgICAgICAgfCAy NQo+PiArKysrKysrKysrKystLS0tLS0tLS0tCj4+ICAgc3JjL2dhbGxpdW0vYXV4aWxpYXJ5L3Rn c2kvdGdzaV91cmVnLmggICAgICAgICAgICAgfCAgMiArLQo+PiAgIC4uLi9kcml2ZXJzL25vdXZl YXUvY29kZWdlbi9udjUwX2lyX2Zyb21fdGdzaS5jcHAgIHwgIDcgKysrLS0tCj4+ICAgc3JjL2dh bGxpdW0vaW5jbHVkZS9waXBlL3Bfc2hhZGVyX3Rva2Vucy5oICAgICAgICAgfCAxMCArKysrKysr LS0KPj4gICBzcmMvbWVzYS9zdGF0ZV90cmFja2VyL3N0X2dsc2xfdG9fdGdzaS5jcHAgICAgICAg ICB8ICAyICstCj4+ICAgOCBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAyNiBkZWxl dGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL2F1eGlsaWFyeS90Z3NpL3Rn c2lfYnVpbGQuYwo+PiBiL3NyYy9nYWxsaXVtL2F1eGlsaWFyeS90Z3NpL3Rnc2lfYnVpbGQuYwo+ PiBpbmRleCBjNDIwYWUxLi5iMTA4YWRlIDEwMDY0NAo+PiAtLS0gYS9zcmMvZ2FsbGl1bS9hdXhp bGlhcnkvdGdzaS90Z3NpX2J1aWxkLmMKPj4gKysrIGIvc3JjL2dhbGxpdW0vYXV4aWxpYXJ5L3Rn c2kvdGdzaV9idWlsZC5jCj4+IEBAIC0xMTEsNyArMTExLDcgQEAgdGdzaV9kZWZhdWx0X2RlY2xh cmF0aW9uKCB2b2lkICkKPj4gICAgICBkZWNsYXJhdGlvbi5Mb2NhbCA9IDA7Cj4+ICAgICAgZGVj bGFyYXRpb24uQXJyYXkgPSAwOwo+PiAgICAgIGRlY2xhcmF0aW9uLkF0b21pYyA9IDA7Cj4+IC0g ICBkZWNsYXJhdGlvbi5TaGFyZWQgPSAwOwo+PiArICAgZGVjbGFyYXRpb24uTWVtVHlwZSA9IFRH U0lfTUVNT1JZX1RZUEVfR0xPQkFMOwo+PiAgICAgIGRlY2xhcmF0aW9uLlBhZGRpbmcgPSAwOwo+ Pgo+PiAgICAgIHJldHVybiBkZWNsYXJhdGlvbjsKPj4gQEAgLTEyOCw3ICsxMjgsNyBAQCB0Z3Np X2J1aWxkX2RlY2xhcmF0aW9uKAo+PiAgICAgIHVuc2lnbmVkIGxvY2FsLAo+PiAgICAgIHVuc2ln bmVkIGFycmF5LAo+PiAgICAgIHVuc2lnbmVkIGF0b21pYywKPj4gLSAgIHVuc2lnbmVkIHNoYXJl ZCwKPj4gKyAgIHVuc2lnbmVkIG1lbV90eXBlLAo+PiAgICAgIHN0cnVjdCB0Z3NpX2hlYWRlciAq aGVhZGVyICkKPj4gICB7Cj4+ICAgICAgc3RydWN0IHRnc2lfZGVjbGFyYXRpb24gZGVjbGFyYXRp b247Cj4+IEBAIC0xNDYsNyArMTQ2LDcgQEAgdGdzaV9idWlsZF9kZWNsYXJhdGlvbigKPj4gICAg ICBkZWNsYXJhdGlvbi5Mb2NhbCA9IGxvY2FsOwo+PiAgICAgIGRlY2xhcmF0aW9uLkFycmF5ID0g YXJyYXk7Cj4+ICAgICAgZGVjbGFyYXRpb24uQXRvbWljID0gYXRvbWljOwo+PiAtICAgZGVjbGFy YXRpb24uU2hhcmVkID0gc2hhcmVkOwo+PiArICAgZGVjbGFyYXRpb24uTWVtVHlwZSA9IG1lbV90 eXBlOwo+PiAgICAgIGhlYWRlcl9ib2R5c2l6ZV9ncm93KCBoZWFkZXIgKTsKPj4KPj4gICAgICBy ZXR1cm4gZGVjbGFyYXRpb247Cj4+IEBAIC00MDYsNyArNDA2LDcgQEAgdGdzaV9idWlsZF9mdWxs X2RlY2xhcmF0aW9uKAo+PiAgICAgICAgIGZ1bGxfZGVjbC0+RGVjbGFyYXRpb24uTG9jYWwsCj4+ ICAgICAgICAgZnVsbF9kZWNsLT5EZWNsYXJhdGlvbi5BcnJheSwKPj4gICAgICAgICBmdWxsX2Rl Y2wtPkRlY2xhcmF0aW9uLkF0b21pYywKPj4gLSAgICAgIGZ1bGxfZGVjbC0+RGVjbGFyYXRpb24u U2hhcmVkLAo+PiArICAgICAgZnVsbF9kZWNsLT5EZWNsYXJhdGlvbi5NZW1UeXBlLAo+PiAgICAg ICAgIGhlYWRlciApOwo+Pgo+PiAgICAgIGlmIChtYXhzaXplIDw9IHNpemUpCj4+IGRpZmYgLS1n aXQgYS9zcmMvZ2FsbGl1bS9hdXhpbGlhcnkvdGdzaS90Z3NpX2R1bXAuYwo+PiBiL3NyYy9nYWxs aXVtL2F1eGlsaWFyeS90Z3NpL3Rnc2lfZHVtcC5jCj4+IGluZGV4IGYyMzJmMzguLjI3M2YwYWUg MTAwNjQ0Cj4+IC0tLSBhL3NyYy9nYWxsaXVtL2F1eGlsaWFyeS90Z3NpL3Rnc2lfZHVtcC5jCj4+ ICsrKyBiL3NyYy9nYWxsaXVtL2F1eGlsaWFyeS90Z3NpL3Rnc2lfZHVtcC5jCj4+IEBAIC0zNjUs OCArMzY1LDEzIEBAIGl0ZXJfZGVjbGFyYXRpb24oCj4+ICAgICAgfQo+Pgo+PiAgICAgIGlmIChk ZWNsLT5EZWNsYXJhdGlvbi5GaWxlID09IFRHU0lfRklMRV9NRU1PUlkpIHsKPj4gLSAgICAgIGlm IChkZWNsLT5EZWNsYXJhdGlvbi5TaGFyZWQpCj4+IC0gICAgICAgICBUWFQoIiwgU0hBUkVEIik7 Cj4+ICsgICAgICBzd2l0Y2ggKGRlY2wtPkRlY2xhcmF0aW9uLk1lbVR5cGUpIHsKPj4gKyAgICAg IC8qIE5vdGU6ICxHTE9CQUwgaXMgb3B0aW9uYWwgLyB0aGUgZGVmYXVsdCAqLwo+PiArICAgICAg Y2FzZSBUR1NJX01FTU9SWV9UWVBFX0dMT0JBTDogVFhUKCIsIEdMT0JBTCIpOyBicmVhazsKPj4g KyAgICAgIGNhc2UgVEdTSV9NRU1PUllfVFlQRV9MT0NBTDogIFRYVCgiLCBMT0NBTCIpOyAgYnJl YWs7Cj4+ICsgICAgICBjYXNlIFRHU0lfTUVNT1JZX1RZUEVfU0hBUkVEOiBUWFQoIiwgU0hBUkVE Iik7IGJyZWFrOwo+PiArICAgICAgY2FzZSBUR1NJX01FTU9SWV9UWVBFX0lOUFVUOiAgVFhUKCIs IElOUFVUIik7ICBicmVhazsKPj4gKyAgICAgIH0KPj4gICAgICB9Cj4+Cj4+ICAgICAgaWYgKGRl Y2wtPkRlY2xhcmF0aW9uLkZpbGUgPT0gVEdTSV9GSUxFX1NBTVBMRVJfVklFVykgewo+PiBkaWZm IC0tZ2l0IGEvc3JjL2dhbGxpdW0vYXV4aWxpYXJ5L3Rnc2kvdGdzaV90ZXh0LmMKPj4gYi9zcmMv Z2FsbGl1bS9hdXhpbGlhcnkvdGdzaS90Z3NpX3RleHQuYwo+PiBpbmRleCA3NzU5OGQyLi45NDM4 ZTNiIDEwMDY0NAo+PiAtLS0gYS9zcmMvZ2FsbGl1bS9hdXhpbGlhcnkvdGdzaS90Z3NpX3RleHQu Ywo+PiArKysgYi9zcmMvZ2FsbGl1bS9hdXhpbGlhcnkvdGdzaS90Z3NpX3RleHQuYwo+PiBAQCAt MTM5MCw4ICsxMzkwLDE4IEBAIHN0YXRpYyBib29sZWFuIHBhcnNlX2RlY2xhcmF0aW9uKCBzdHJ1 Y3QKPj4gdHJhbnNsYXRlX2N0eCAqY3R4ICkKPj4gICAgICAgICAgICAgICBjdHgtPmN1ciA9IGN1 cjsKPj4gICAgICAgICAgICB9Cj4+ICAgICAgICAgfSBlbHNlIGlmIChmaWxlID09IFRHU0lfRklM RV9NRU1PUlkpIHsKPj4gLSAgICAgICAgIGlmIChzdHJfbWF0Y2hfbm9jYXNlX3dob2xlKCZjdXIs ICJTSEFSRUQiKSkgewo+PiAtICAgICAgICAgICAgZGVjbC5EZWNsYXJhdGlvbi5TaGFyZWQgPSAx Owo+PiArICAgICAgICAgaWYgKHN0cl9tYXRjaF9ub2Nhc2Vfd2hvbGUoJmN1ciwgIkdMT0JBTCIp KSB7Cj4+ICsgICAgICAgICAgICAvKiBOb3RlIHRoaXMgaXMgYSBuby1vcCBnbG9iYWwgaXMgdGhl IGRlZmF1bHQgKi8KPj4gKyAgICAgICAgICAgIGRlY2wuRGVjbGFyYXRpb24uTWVtVHlwZSA9IFRH U0lfTUVNT1JZX1RZUEVfR0xPQkFMOwo+PiArICAgICAgICAgICAgY3R4LT5jdXIgPSBjdXI7Cj4+ ICsgICAgICAgICB9IGVsc2UgaWYgKHN0cl9tYXRjaF9ub2Nhc2Vfd2hvbGUoJmN1ciwgIkxPQ0FM IikpIHsKPj4gKyAgICAgICAgICAgIGRlY2wuRGVjbGFyYXRpb24uTWVtVHlwZSA9IFRHU0lfTUVN T1JZX1RZUEVfTE9DQUw7Cj4+ICsgICAgICAgICAgICBjdHgtPmN1ciA9IGN1cjsKPj4gKyAgICAg ICAgIH0gZWxzZSBpZiAoc3RyX21hdGNoX25vY2FzZV93aG9sZSgmY3VyLCAiU0hBUkVEIikpIHsK Pj4gKyAgICAgICAgICAgIGRlY2wuRGVjbGFyYXRpb24uTWVtVHlwZSA9IFRHU0lfTUVNT1JZX1RZ UEVfU0hBUkVEOwo+PiArICAgICAgICAgICAgY3R4LT5jdXIgPSBjdXI7Cj4+ICsgICAgICAgICB9 IGVsc2UgaWYgKHN0cl9tYXRjaF9ub2Nhc2Vfd2hvbGUoJmN1ciwgIklOUFVUIikpIHsKPj4gKyAg ICAgICAgICAgIGRlY2wuRGVjbGFyYXRpb24uTWVtVHlwZSA9IFRHU0lfTUVNT1JZX1RZUEVfSU5Q VVQ7Cj4+ICAgICAgICAgICAgICAgY3R4LT5jdXIgPSBjdXI7Cj4+ICAgICAgICAgICAgfQo+PiAg ICAgICAgIH0gZWxzZSB7Cj4+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9hdXhpbGlhcnkvdGdz aS90Z3NpX3VyZWcuYwo+PiBiL3NyYy9nYWxsaXVtL2F1eGlsaWFyeS90Z3NpL3Rnc2lfdXJlZy5j Cj4+IGluZGV4IGUxYTcyNzguLjllMTAwNDQgMTAwNjQ0Cj4+IC0tLSBhL3NyYy9nYWxsaXVtL2F1 eGlsaWFyeS90Z3NpL3Rnc2lfdXJlZy5jCj4+ICsrKyBiL3NyYy9nYWxsaXVtL2F1eGlsaWFyeS90 Z3NpL3Rnc2lfdXJlZy5jCj4+IEBAIC0xOTAsNyArMTkwLDcgQEAgc3RydWN0IHVyZWdfcHJvZ3Jh bQo+Pgo+PiAgICAgIHN0cnVjdCB1cmVnX3Rva2VucyBkb21haW5bMl07Cj4+Cj4+IC0gICBib29s IHVzZV9zaGFyZWRfbWVtb3J5Owo+PiArICAgYm9vbCB1c2VfbWVtb3J5W1RHU0lfTUVNT1JZX1RZ UEVfQ09VTlRdOwo+PiAgIH07Cj4+Cj4+ICAgc3RhdGljIHVuaW9uIHRnc2lfYW55X3Rva2VuIGVy cm9yX3Rva2Vuc1szMl07Cj4+IEBAIC03MjksMTMgKzcyOSwxNCBAQCBzdHJ1Y3QgdXJlZ19zcmMg dXJlZ19ERUNMX2J1ZmZlcihzdHJ1Y3QgdXJlZ19wcm9ncmFtCj4+ICp1cmVnLCB1bnNpZ25lZCBu ciwKPj4gICAgICByZXR1cm4gcmVnOwo+PiAgIH0KPj4KPj4gLS8qIEFsbG9jYXRlIGEgc2hhcmVk IG1lbW9yeSBhcmVhLgo+PiArLyogQWxsb2NhdGUgYSBtZW1vcnkgYXJlYS4KPj4gICAgKi8KPj4g LXN0cnVjdCB1cmVnX3NyYyB1cmVnX0RFQ0xfc2hhcmVkX21lbW9yeShzdHJ1Y3QgdXJlZ19wcm9n cmFtICp1cmVnKQo+PiArc3RydWN0IHVyZWdfc3JjIHVyZWdfREVDTF9tZW1vcnkoc3RydWN0IHVy ZWdfcHJvZ3JhbSAqdXJlZywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIG1lbW9yeV90eXBlKQo+PiAgIHsKPj4gLSAgIHN0cnVjdCB1cmVnX3NyYyByZWcgPSB1 cmVnX3NyY19yZWdpc3RlcihUR1NJX0ZJTEVfTUVNT1JZLCAwKTsKPj4gKyAgIHN0cnVjdCB1cmVn X3NyYyByZWcgPSB1cmVnX3NyY19yZWdpc3RlcihUR1NJX0ZJTEVfTUVNT1JZLCBtZW1vcnlfdHlw ZSk7Cj4+Cj4+IC0gICB1cmVnLT51c2Vfc2hhcmVkX21lbW9yeSA9IHRydWU7Cj4+ICsgICB1cmVn LT51c2VfbWVtb3J5W21lbW9yeV90eXBlXSA9IHRydWU7Cj4+ICAgICAgcmV0dXJuIHJlZzsKPj4g ICB9Cj4+Cj4+IEBAIC0xNjY2LDcgKzE2NjcsNyBAQCBlbWl0X2RlY2xfYnVmZmVyKHN0cnVjdCB1 cmVnX3Byb2dyYW0gKnVyZWcsCj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyB2b2lkCj4+IC1lbWl0X2Rl Y2xfc2hhcmVkX21lbW9yeShzdHJ1Y3QgdXJlZ19wcm9ncmFtICp1cmVnKQo+PiArZW1pdF9kZWNs X21lbW9yeShzdHJ1Y3QgdXJlZ19wcm9ncmFtICp1cmVnLCB1bnNpZ25lZCBtZW1vcnlfdHlwZSkK Pj4gICB7Cj4+ICAgICAgdW5pb24gdGdzaV9hbnlfdG9rZW4gKm91dCA9IGdldF90b2tlbnModXJl ZywgRE9NQUlOX0RFQ0wsIDIpOwo+Pgo+PiBAQCAtMTY3NSwxMSArMTY3NiwxMSBAQCBlbWl0X2Rl Y2xfc2hhcmVkX21lbW9yeShzdHJ1Y3QgdXJlZ19wcm9ncmFtICp1cmVnKQo+PiAgICAgIG91dFsw XS5kZWNsLk5yVG9rZW5zID0gMjsKPj4gICAgICBvdXRbMF0uZGVjbC5GaWxlID0gVEdTSV9GSUxF X01FTU9SWTsKPj4gICAgICBvdXRbMF0uZGVjbC5Vc2FnZU1hc2sgPSBUR1NJX1dSSVRFTUFTS19Y WVpXOwo+PiAtICAgb3V0WzBdLmRlY2wuU2hhcmVkID0gdHJ1ZTsKPj4gKyAgIG91dFswXS5kZWNs Lk1lbVR5cGUgPSBtZW1vcnlfdHlwZTsKPj4KPj4gICAgICBvdXRbMV0udmFsdWUgPSAwOwo+PiAt ICAgb3V0WzFdLmRlY2xfcmFuZ2UuRmlyc3QgPSAwOwo+PiAtICAgb3V0WzFdLmRlY2xfcmFuZ2Uu TGFzdCA9IDA7Cj4+ICsgICBvdXRbMV0uZGVjbF9yYW5nZS5GaXJzdCA9IG1lbW9yeV90eXBlOwo+ PiArICAgb3V0WzFdLmRlY2xfcmFuZ2UuTGFzdCA9IG1lbW9yeV90eXBlOwo+PiAgIH0KPj4KPj4g ICBzdGF0aWMgdm9pZAo+PiBAQCAtMTg1NCw4ICsxODU1LDEwIEBAIHN0YXRpYyB2b2lkIGVtaXRf ZGVjbHMoIHN0cnVjdCB1cmVnX3Byb2dyYW0gKnVyZWcgKQo+PiAgICAgICAgIGVtaXRfZGVjbF9i dWZmZXIodXJlZywgdXJlZy0+YnVmZmVyW2ldLmluZGV4LAo+PiB1cmVnLT5idWZmZXJbaV0uYXRv bWljKTsKPj4gICAgICB9Cj4+Cj4+IC0gICBpZiAodXJlZy0+dXNlX3NoYXJlZF9tZW1vcnkpCj4+ IC0gICAgICBlbWl0X2RlY2xfc2hhcmVkX21lbW9yeSh1cmVnKTsKPj4gKyAgIGZvciAoaSA9IDA7 IGkgPCBUR1NJX01FTU9SWV9UWVBFX0NPVU5UOyBpKyspIHsKPj4gKyAgICAgIGlmICh1cmVnLT51 c2VfbWVtb3J5W2ldKQo+PiArICAgICAgICAgZW1pdF9kZWNsX21lbW9yeSh1cmVnLCBpKTsKPj4g KyAgIH0KPj4KPj4gICAgICBpZiAodXJlZy0+Y29uc3RfZGVjbHMubnJfY29uc3RhbnRfcmFuZ2Vz KSB7Cj4+ICAgICAgICAgZm9yIChpID0gMDsgaSA8IHVyZWctPmNvbnN0X2RlY2xzLm5yX2NvbnN0 YW50X3JhbmdlczsgaSsrKSB7Cj4+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9hdXhpbGlhcnkv dGdzaS90Z3NpX3VyZWcuaAo+PiBiL3NyYy9nYWxsaXVtL2F1eGlsaWFyeS90Z3NpL3Rnc2lfdXJl Zy5oCj4+IGluZGV4IDZhM2I1ZGQuLjdjN2E4OWUgMTAwNjQ0Cj4+IC0tLSBhL3NyYy9nYWxsaXVt L2F1eGlsaWFyeS90Z3NpL3Rnc2lfdXJlZy5oCj4+ICsrKyBiL3NyYy9nYWxsaXVtL2F1eGlsaWFy eS90Z3NpL3Rnc2lfdXJlZy5oCj4+IEBAIC0zMzgsNyArMzM4LDcgQEAgc3RydWN0IHVyZWdfc3Jj Cj4+ICAgdXJlZ19ERUNMX2J1ZmZlcihzdHJ1Y3QgdXJlZ19wcm9ncmFtICp1cmVnLCB1bnNpZ25l ZCBuciwgYm9vbCBhdG9taWMpOwo+Pgo+PiAgIHN0cnVjdCB1cmVnX3NyYwo+PiAtdXJlZ19ERUNM X3NoYXJlZF9tZW1vcnkoc3RydWN0IHVyZWdfcHJvZ3JhbSAqdXJlZyk7Cj4+ICt1cmVnX0RFQ0xf bWVtb3J5KHN0cnVjdCB1cmVnX3Byb2dyYW0gKnVyZWcsIHVuc2lnbmVkIG1lbW9yeV90eXBlKTsK Pj4KPj4gICBzdGF0aWMgaW5saW5lIHN0cnVjdCB1cmVnX3NyYwo+PiAgIHVyZWdfaW1tNGYoIHN0 cnVjdCB1cmVnX3Byb2dyYW0gKnVyZWcsCj4+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2 ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2Zyb21fdGdzaS5jcHAKPj4gYi9zcmMvZ2FsbGl1 bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2Zyb21fdGdzaS5jcHAKPj4gaW5kZXgg ODY4MzcyMi4uYTgyNThhZiAxMDA2NDQKPj4gLS0tIGEvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2 ZWF1L2NvZGVnZW4vbnY1MF9pcl9mcm9tX3Rnc2kuY3BwCj4+ICsrKyBiL3NyYy9nYWxsaXVtL2Ry aXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZnJvbV90Z3NpLmNwcAo+PiBAQCAtODYwLDcg Kzg2MCw3IEBAIHB1YmxpYzoKPj4gICAgICBzdGQ6OnZlY3RvcjxSZXNvdXJjZT4gcmVzb3VyY2Vz Owo+Pgo+PiAgICAgIHN0cnVjdCBNZW1vcnlGaWxlIHsKPj4gLSAgICAgIGJvb2wgc2hhcmVkOwo+ PiArICAgICAgdWludDhfdCBtZW1fdHlwZTsgLy8gVEdTSV9NRU1PUllfVFlQRV8qCj4+ICAgICAg fTsKPj4gICAgICBzdGQ6OnZlY3RvcjxNZW1vcnlGaWxlPiBtZW1vcnlGaWxlczsKPj4KPj4gQEAg LTEyMTgsNyArMTIxOCw3IEBAIGJvb2wgU291cmNlOjpzY2FuRGVjbGFyYXRpb24oY29uc3Qgc3Ry dWN0Cj4+IHRnc2lfZnVsbF9kZWNsYXJhdGlvbiAqZGVjbCkKPj4gICAgICAgICBicmVhazsKPj4g ICAgICBjYXNlIFRHU0lfRklMRV9NRU1PUlk6Cj4+ICAgICAgICAgZm9yIChpID0gZmlyc3Q7IGkg PD0gbGFzdDsgKytpKQo+PiAtICAgICAgICAgbWVtb3J5RmlsZXNbaV0uc2hhcmVkID0gZGVjbC0+ RGVjbGFyYXRpb24uU2hhcmVkOwo+PiArICAgICAgICAgbWVtb3J5RmlsZXNbaV0ubWVtX3R5cGUg PSBkZWNsLT5EZWNsYXJhdGlvbi5NZW1UeXBlOwo+PiAgICAgICAgIGJyZWFrOwo+PiAgICAgIGNh c2UgVEdTSV9GSUxFX05VTEw6Cj4+ICAgICAgY2FzZSBUR1NJX0ZJTEVfVEVNUE9SQVJZOgo+PiBA QCAtMTUyMyw3ICsxNTIzLDggQEAgQ29udmVydGVyOjptYWtlU3ltKHVpbnQgdGdzaUZpbGUsIGlu dCBmaWxlSWR4LCBpbnQKPj4gaWR4LCBpbnQgYywgdWludDMyX3QgYWRkcmVzcykKPj4KPj4gICAg ICBzeW0tPnJlZy5maWxlSW5kZXggPSBmaWxlSWR4Owo+Pgo+PiAtICAgaWYgKHRnc2lGaWxlID09 IFRHU0lfRklMRV9NRU1PUlkgJiYgY29kZS0+bWVtb3J5RmlsZXNbZmlsZUlkeF0uc2hhcmVkKQo+ PiArICAgaWYgKHRnc2lGaWxlID09IFRHU0lfRklMRV9NRU1PUlkgJiYKPj4gKyAgICAgICBjb2Rl LT5tZW1vcnlGaWxlc1tmaWxlSWR4XS5tZW1fdHlwZSA9PSBUR1NJX01FTU9SWV9UWVBFX1NIQVJF RCkKPj4gICAgICAgICBzeW0tPnNldEZpbGUoRklMRV9NRU1PUllfU0hBUkVEKTsKPj4KPj4gICAg ICBpZiAoaWR4ID49IDApIHsKPj4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL2luY2x1ZGUvcGlw ZS9wX3NoYWRlcl90b2tlbnMuaAo+PiBiL3NyYy9nYWxsaXVtL2luY2x1ZGUvcGlwZS9wX3NoYWRl cl90b2tlbnMuaAo+PiBpbmRleCA5ZDRhOTZhLi4wYjhkN2ZiIDEwMDY0NAo+PiAtLS0gYS9zcmMv Z2FsbGl1bS9pbmNsdWRlL3BpcGUvcF9zaGFkZXJfdG9rZW5zLmgKPj4gKysrIGIvc3JjL2dhbGxp dW0vaW5jbHVkZS9waXBlL3Bfc2hhZGVyX3Rva2Vucy5oCj4+IEBAIC0xMTcsNiArMTE3LDEyIEBA IGVudW0gdGdzaV9maWxlX3R5cGUgewo+PiAgICNkZWZpbmUgVEdTSV9DWUxJTkRSSUNBTF9XUkFQ X1ogKDEgPDwgMikKPj4gICAjZGVmaW5lIFRHU0lfQ1lMSU5EUklDQUxfV1JBUF9XICgxIDw8IDMp Cj4+Cj4+ICsjZGVmaW5lIFRHU0lfTUVNT1JZX1RZUEVfR0xPQkFMICAgICAgICAwIC8qIEdMU0wg Z2xvYmFsIC8gT3BlbkNMIGdsb2JhbAo+PiAgICAqLwo+PiArI2RlZmluZSBUR1NJX01FTU9SWV9U WVBFX0xPQ0FMICAgICAgICAgMSAvKiBHTFNMIGxvY2FsICAvIE9wZW5DTCBwcml2YXRlCj4+ICAg Ki8KPj4gKyNkZWZpbmUgVEdTSV9NRU1PUllfVFlQRV9TSEFSRUQgICAgICAgIDIgLyogR0xTTCBz aGFyZWQgLyBPcGVuQ0wgbG9jYWwKPj4gICAqLwo+PiArI2RlZmluZSBUR1NJX01FTU9SWV9UWVBF X0lOUFVUICAgICAgICAgMyAvKiBGb3IgT3BlbkNMIGtlcm5lbCBpbnB1dAo+PiBwYXJhbXMgKi8K Pj4KPgo+IE5vdGU6IEkga25vdyBsaXR0bGUgYWJvdXQgaG93IHlvdSBhcmUgYXBwcm9hY2hpbmcg dGhlIENMIGltcGxlbWVudGF0aW9uIGZvcgo+IE5vdXZlYXUuLi4KClRoZSBwbGFuIGlzIHRvIHVz ZSBhIHRnc2kgYmFja2VuZCBmb3IgbGx2bToKCmh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy9+ andyZGVnb2VkZS9sbHZtCmh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy9+andyZGVnb2VkZS9j bGFuZwoKQW5kIHRoZW4gaGF2ZSBjbG92ZXIgdXNlIHRoYXQgdG8gZmVlZCB0Z3NpIHRvIHRoZSBt ZXNhIG5vdXZlYXUgY29kZS4KCj4gU2hvdWxkIEkgZXhwZWN0IHRvIHNlZSBhbiBlbnRyeSBpbiBo ZXJlIGFueXdoZXJlIGZvciB0aGUgQ09OU1RBTlQgbWVtb3J5Cj4gdHlwZT8KID4KID4gTXkgR0wg a25vd2xlZGdlIGlzIHByZXR0eSBiYXNpYy4gV291bGQgdGhhdCBtYXAgcmVhc29uYWJseSB0byBz b21ldGhpbmcKID4gbGlrZSBhIEdMIFVCTz8gRG8gd2UgbmVlZCBhbiBleHBsaWNpdCB0eXBlIGZv ciBDTCBjb25zdGFudCBidWZmZXJzPwoKVGhhdCBpcyBhIGdvb2QgcXVlc3Rpb24sIENPTlNUIGhh cyBub3QgcmVhbGx5IGJlZW4gb24gbXkgcmFkYXIKeWV0IGJlY2F1c2UgaXQgaXMga2luZGEgdHJp Y2t5LiBTaW5jZSBPcGVuQ0wgaXMgcmVhbGx5IEMtbGlrZSwgdGhlCmJlc3QgbWF0Y2ggZm9yIGNv bnN0IGlzIGdsb2JhbCBtZW0sIGFuZCB0aGVuIChvcHRpb25hbGx5KSBtYXAgdGhlCmNvbnN0IGJ1 ZmZlcnMgcmVhZC1vbmx5LiBUaGlzIGlzIHdoYXQgYW1kIGlzIGRvaW5nOgoKc3JjL2dhbGxpdW0v c3RhdGVfdHJhY2tlcnMvY2xvdmVyL2xsdm0vaW52b2NhdGlvbi5jcHA6CgogICAgICAgICAgICAg ICAgLy8gWFhYOiBDb3JyZWN0bHkgaGFuZGxlIGNvbnN0YW50IGFkZHJlc3Mgc3BhY2UuICBUaGVy ZSBpcyBubwogICAgICAgICAgICAgICAgLy8gd2F5IGZvciByNjAwZyB0byBwYXNzIGEgaGFuZGxl IGZvciBjb25zdGFudCBidWZmZXJzIGJhY2sKICAgICAgICAgICAgICAgIC8vIHRvIGNsb3ZlciBs aWtlIGl0IGNhbiBmb3IgZ2xvYmFsIGJ1ZmZlcnMsIHNvCiAgICAgICAgICAgICAgICAvLyBjcmVh dGluZyBjb25zdGFudCBhcmd1bWVudHMgd2lsbCBicmVhayByNjAwZy4gIEZvciBub3csCiAgICAg ICAgICAgICAgICAvLyBjb250aW51ZSB0cmVhdGluZyBjb25zdGFudCBidWZmZXJzIGFzIGdsb2Jh bCBidWZmZXJzCiAgICAgICAgICAgICAgICAvLyB1bnRpbCB3ZSBjYW4gY29tZSB1cCB3aXRoIGEg d2F5IHRvIGNyZWF0ZSBoYW5kbGVzIGZvcgogICAgICAgICAgICAgICAgLy8gY29uc3RhbnQgYnVm ZmVycy4KICAgICAgICAgICAgICAgIGFyZ3MucHVzaF9iYWNrKG1vZHVsZTo6YXJndW1lbnQobW9k dWxlOjphcmd1bWVudDo6Z2xvYmFsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhcmdfYXBpX3NpemUsIHRhcmdldF9zaXplLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYWxpZ24sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZTo6YXJndW1lbnQ6Onpl cm9fZXh0KSk7CgpUaGUgc2FtZSBtb3JlIG9yIGxlc3MgYXBwbGllcyB0byBub3V2ZWF1LiBPbmUg ZGF5IHdlIHdvdWxkIGlkZWFsbHkgbWFwCmNvbnN0IGJ1ZmZlcnMgdG8gVUJPLXMgYnV0IHRoYXQg aXMgbm9uIHRyaXZpYWwuIEkgZ3Vlc3MgaXQgd291bGQgYmUKYmV0dGVyIGZvciB0aGUgbGx2bSB0 Z3NpIGJhY2tlbmQgdG8gZG86CgpEQ0wgTUVNT1JZWzQyXSwgQ09OU1QKCmFuZCB0aGluZ3MgbGlr ZToKCkxPQUQgVEVNUFswXS54LCBNRU1PUllbNDJdLCBJTU1bMF0KCkZvciBjb25zdCBhY2Nlc3Nl cyBzbyB0aGF0IGlmIHdlIGxhdGVyIHdhbnQgdG8gY2hhbmdlIHRoaW5ncyB0aGUgVEdTSQpjb2Rl IGFscmVhZHkgY2xlYXJseSBkaWZmZXJlbnRpYXRlcyBiZXR3ZWVuIGdsb2JhbCBhbmQgY29uc3Qg YWNjZXNzZXMsCm9yIG1heWJlOgoKRENMIE1FTU9SWVs0Ml0sIEdMT0JBTCwgUk8KCk5haCwgSSBs aWtlOgoKRENMIE1FTU9SWVs0Ml0sIENPTlNUCgpCZXR0ZXIgaXQgaXMgbW9yZSBjb25zaXN0ZW50 LiBJbGlhLCB3aGF0IGlzIHlvdXIgdGFrZSBvbiB0aGlzID8KClRoZSBvYnZpb3VzIGltcGxlbWVu dGF0aW9uIG9mIHRoaXMgd2lsbCBlYXQgYW5vdGhlciBiaXQgaW4KdGdzaV9kZWNsYXJhdGlvbiB0 aG91Z2guCgpSZWdhcmRzLAoKSGFucwoKCj4KPiAtLUFhcm9uCj4KPgo+Cj4+ICsjZGVmaW5lIFRH U0lfTUVNT1JZX1RZUEVfQ09VTlQgICAgICAgICA0Cj4+ICsKPj4gICBzdHJ1Y3QgdGdzaV9kZWNs YXJhdGlvbgo+PiAgIHsKPj4gICAgICB1bnNpZ25lZCBUeXBlICAgICAgICA6IDQ7ICAvKio8IFRH U0lfVE9LRU5fVFlQRV9ERUNMQVJBVElPTiAqLwo+PiBAQCAtMTMwLDggKzEzNiw4IEBAIHN0cnVj dCB0Z3NpX2RlY2xhcmF0aW9uCj4+ICAgICAgdW5zaWduZWQgTG9jYWwgICAgICAgOiAxOyAgLyoq PCBvcHRpbWl6ZSBhcyBzdWJyb3V0aW5lIGxvY2FsIHZhcmlhYmxlPwo+PiAqLwo+PiAgICAgIHVu c2lnbmVkIEFycmF5ICAgICAgIDogMTsgIC8qKjwgZXh0cmEgYXJyYXkgaW5mbz8gKi8KPj4gICAg ICB1bnNpZ25lZCBBdG9taWMgICAgICA6IDE7ICAvKio8IGF0b21pYyBvbmx5PyBmb3IgVEdTSV9G SUxFX0JVRkZFUiAqLwo+PiAtICAgdW5zaWduZWQgU2hhcmVkICAgICAgOiAxOyAgLyoqPCBzaGFy ZWQgc3RvcmFnZSBmb3IgVEdTSV9GSUxFX01FTU9SWSAqLwo+PiAtICAgdW5zaWduZWQgUGFkZGlu ZyAgICAgOiA0Owo+PiArICAgdW5zaWduZWQgTWVtVHlwZSAgICAgOiAyOyAgLyoqPCBUR1NJX01F TU9SWV9UWVBFX3ggZm9yCj4+IFRHU0lfRklMRV9NRU1PUlkgKi8KPj4gKyAgIHVuc2lnbmVkIFBh ZGRpbmcgICAgIDogMzsKPj4gICB9Owo+Pgo+PiAgIHN0cnVjdCB0Z3NpX2RlY2xhcmF0aW9uX3Jh bmdlCj4+IGRpZmYgLS1naXQgYS9zcmMvbWVzYS9zdGF0ZV90cmFja2VyL3N0X2dsc2xfdG9fdGdz aS5jcHAKPj4gYi9zcmMvbWVzYS9zdGF0ZV90cmFja2VyL3N0X2dsc2xfdG9fdGdzaS5jcHAKPj4g aW5kZXggMjZlNDYzZS4uOWI4YmY4ZSAxMDA2NDQKPj4gLS0tIGEvc3JjL21lc2Evc3RhdGVfdHJh Y2tlci9zdF9nbHNsX3RvX3Rnc2kuY3BwCj4+ICsrKyBiL3NyYy9tZXNhL3N0YXRlX3RyYWNrZXIv c3RfZ2xzbF90b190Z3NpLmNwcAo+PiBAQCAtNjI4MSw3ICs2MjgxLDcgQEAgc3RfdHJhbnNsYXRl X3Byb2dyYW0oCj4+ICAgICAgfQo+Pgo+PiAgICAgIGlmIChwcm9ncmFtLT51c2Vfc2hhcmVkX21l bW9yeSkKPj4gLSAgICAgIHQtPnNoYXJlZF9tZW1vcnkgPSB1cmVnX0RFQ0xfc2hhcmVkX21lbW9y eSh1cmVnKTsKPj4gKyAgICAgIHQtPnNoYXJlZF9tZW1vcnkgPSB1cmVnX0RFQ0xfbWVtb3J5KHVy ZWcsIFRHU0lfTUVNT1JZX1RZUEVfU0hBUkVEKTsKPj4KPj4gICAgICBmb3IgKGkgPSAwOyBpIDwg cHJvZ3JhbS0+c2hhZGVyLT5OdW1JbWFnZXM7IGkrKykgewo+PiAgICAgICAgIGlmIChwcm9ncmFt LT5pbWFnZXNfdXNlZCAmICgxIDw8IGkpKSB7Cj4+IC0tCj4+IDIuNy4yCj4+Cj4+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IG1lc2EtZGV2IG1haWxp bmcgbGlzdAo+PiBtZXNhLWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9tZXNhLWRldgo+Pgo+Cl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCm1lc2EtZGV2IG1haWxpbmcg bGlzdAptZXNhLWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9tZXNhLWRldgo=