From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Pitoiset Subject: Re: [PATCH mesa 5/6] nouveau: codegen: Add support for OpenCL global memory buffers Date: Wed, 16 Mar 2016 11:37:10 +0100 Message-ID: <56E93756.8040109@gmail.com> References: <1458120239-27659-1-git-send-email-hdegoede@redhat.com> <1458120239-27659-5-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: <1458120239-27659-5-git-send-email-hdegoede@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: mesa-dev-bounces@lists.freedesktop.org Sender: "mesa-dev" To: Hans de Goede , Ilia Mirkin Cc: mesa-dev@lists.freedesktop.org, nouveau@lists.freedesktop.org List-Id: nouveau.vger.kernel.org Q291bGQgeW91IHBsZWFzZSBnZXQgcmlkIG9mIHRoZSBjb3NtZXRpYyBjaGFuZ2VzIChlZy4gdGhl IHN3aXRjaCBvbmVzKT8KQmVjYXVzZSB0aGlzIGRvZXNuJ3QgcmVhbGx5IGltcHJvdmUgcmVhZGFi aWxpdHkgYW5kIGluIG15IG9waW5pb24gdGhlc2UgCmNoYW5nZXMgc2hvdWxkIGJlIGV2ZW50dWFs bHkgZG9uZSBpbiBhIHNlcGFyYXRlIHBhdGNoLgoKT3RoZXIgdGhhbiB0aGF0LCB0aGlzIHBhdGNo IGlzIDoKClJldmlld2VkLWJ5OiBTYW11ZWwgUGl0b2lzZXQgPHNhbXVlbC5waXRvaXNldEBnbWFp bC5jb20+CgpZZXMsIHRoaXMgcHJvYmFibHkgd29uJ3Qgd29yayBhcyBpcyBmb3IgYXRvbWljIG9w ZXJhdGlvbnMgYnV0IHRoZSAKbG93ZXJpbmcgcGFzcyBpcyBhbHJlYWR5IGhlcmUsIHNvIGl0IHNo b3VsZCBiZSBlYXN5IHRvIG1ha2UgaXQgd29yay4KCk9uIDAzLzE2LzIwMTYgMTA6MjMgQU0sIEhh bnMgZGUgR29lZGUgd3JvdGU6Cj4gQWRkIHN1cHBvcnQgZm9yIE9wZW5DTCBnbG9iYWwgbWVtb3J5 IGJ1ZmZlcnMsIG5vdGUgdGhpcyBoYXMgb25seQo+IGJlZW4gdGVzdGVkIHdpdGggcmVndWxhciBs b2FkIGFuZCBzdG9yZXMgYW5kIGxpa2VseSBuZWVkcyBtb3JlIHdvcmsKPiBmb3IgZS5nLiBhdG9t aWMgb3BzLgo+Cj4gU2lnbmVkLW9mZi1ieTogSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0 LmNvbT4KPiAtLS0KPiAgIHNyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBf aXIuaCAgICAgIHwgIDEgKwo+ICAgLi4uL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJf ZW1pdF9nazExMC5jcHAgfCAzMSArKysrKysrKysrKysrKysrKy0tLS0tCj4gICAuLi4vZHJpdmVy cy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9lbWl0X2dtMTA3LmNwcCB8ICA1ICsrKy0KPiAgIC4u Li9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2VtaXRfbnY1MC5jcHAgIHwgMTAgKysr Ky0tLQo+ICAgLi4uL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZW1pdF9udmMwLmNw cCAgfCAyNiArKysrKysrKysrKysrLS0tLS0KPiAgIC4uLi9kcml2ZXJzL25vdXZlYXUvY29kZWdl bi9udjUwX2lyX2Zyb21fdGdzaS5jcHAgIHwgMTQgKysrKysrKy0tLQo+ICAgLi4uL2RyaXZlcnMv bm91dmVhdS9jb2RlZ2VuL252NTBfaXJfcGVlcGhvbGUuY3BwICAgfCAgNSArKystCj4gICAuLi4v ZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9wcmludC5jcHAgICAgICB8ICAxICsKPiAg IC4uLi9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl90YXJnZXRfbnY1MC5jcHAgICAgICAgIHwgIDEg Kwo+ICAgLi4uL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3RhcmdldF9udmMwLmNwcCAgICAgICAg fCAgMSArCj4gICAxMCBmaWxlcyBjaGFuZ2VkLCA3NCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlv bnMoLSkKPgo+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdl bi9udjUwX2lyLmggYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2ly LmgKPiBpbmRleCBmZGMyMTk1Li41MTQxZmM2IDEwMDY0NAo+IC0tLSBhL3NyYy9nYWxsaXVtL2Ry aXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXIuaAo+ICsrKyBiL3NyYy9nYWxsaXVtL2RyaXZl cnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXIuaAo+IEBAIC0zMzMsNiArMzMzLDcgQEAgZW51bSBE YXRhRmlsZQo+ICAgICAgRklMRV9TSEFERVJfSU5QVVQsCj4gICAgICBGSUxFX1NIQURFUl9PVVRQ VVQsCj4gICAgICBGSUxFX01FTU9SWV9CVUZGRVIsCj4gKyAgIEZJTEVfTUVNT1JZX0dMT0JBTCwK PiAgICAgIEZJTEVfTUVNT1JZX1NIQVJFRCwKPiAgICAgIEZJTEVfTUVNT1JZX0xPQ0FMLAo+ICAg ICAgRklMRV9TWVNURU1fVkFMVUUsCj4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL2RyaXZlcnMv bm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZW1pdF9nazExMC5jcHAgYi9zcmMvZ2FsbGl1bS9kcml2 ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2VtaXRfZ2sxMTAuY3BwCj4gaW5kZXggMDJhMTEw MS4uNjJmMTU5OCAxMDA2NDQKPiAtLS0gYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29k ZWdlbi9udjUwX2lyX2VtaXRfZ2sxMTAuY3BwCj4gKysrIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9u b3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9lbWl0X2drMTEwLmNwcAo+IEBAIC0xNjQxLDggKzE2NDEs MTUgQEAgQ29kZUVtaXR0ZXJHSzExMDo6ZW1pdFNUT1JFKGNvbnN0IEluc3RydWN0aW9uICppKQo+ ICAgICAgaW50MzJfdCBvZmZzZXQgPSBTREFUQShpLT5zcmMoMCkpLm9mZnNldDsKPgo+ICAgICAg c3dpdGNoIChpLT5zcmMoMCkuZ2V0RmlsZSgpKSB7Cj4gLSAgIGNhc2UgRklMRV9NRU1PUllfQlVG RkVSOiBjb2RlWzFdID0gMHhlMDAwMDAwMDsgY29kZVswXSA9IDB4MDAwMDAwMDA7IGJyZWFrOwo+ IC0gICBjYXNlIEZJTEVfTUVNT1JZX0xPQ0FMOiAgY29kZVsxXSA9IDB4N2E4MDAwMDA7IGNvZGVb MF0gPSAweDAwMDAwMDAyOyBicmVhazsKPiArICAgY2FzZSBGSUxFX01FTU9SWV9CVUZGRVI6Cj4g KyAgIGNhc2UgRklMRV9NRU1PUllfR0xPQkFMOgo+ICsgICAgICBjb2RlWzBdID0gMHgwMDAwMDAw MDsKPiArICAgICAgY29kZVsxXSA9IDB4ZTAwMDAwMDA7Cj4gKyAgICAgIGJyZWFrOwo+ICsgICBj YXNlIEZJTEVfTUVNT1JZX0xPQ0FMOgo+ICsgICAgICBjb2RlWzBdID0gMHgwMDAwMDAwMjsKPiAr ICAgICAgY29kZVsxXSA9IDB4N2E4MDAwMDA7Cj4gKyAgICAgIGJyZWFrOwo+ICAgICAgY2FzZSBG SUxFX01FTU9SWV9TSEFSRUQ6Cj4gICAgICAgICBjb2RlWzBdID0gMHgwMDAwMDAwMjsKPiAgICAg ICAgIGlmIChpLT5zdWJPcCA9PSBOVjUwX0lSX1NVQk9QX1NUT1JFX1VOTE9DS0VEKQo+IEBAIC0x Njc4LDcgKzE2ODUsOCBAQCBDb2RlRW1pdHRlckdLMTEwOjplbWl0U1RPUkUoY29uc3QgSW5zdHJ1 Y3Rpb24gKmkpCj4KPiAgICAgIHNyY0lkKGktPnNyYygxKSwgMik7Cj4gICAgICBzcmNJZChpLT5z cmMoMCkuZ2V0SW5kaXJlY3QoMCksIDEwKTsKPiAtICAgaWYgKGktPnNyYygwKS5nZXRGaWxlKCkg PT0gRklMRV9NRU1PUllfQlVGRkVSICYmCj4gKyAgIGlmICgoaS0+c3JjKDApLmdldEZpbGUoKSA9 PSBGSUxFX01FTU9SWV9CVUZGRVIgfHwKPiArICAgICAgICBpLT5zcmMoMCkuZ2V0RmlsZSgpID09 IEZJTEVfTUVNT1JZX0dMT0JBTCkgJiYKPiAgICAgICAgICBpLT5zcmMoMCkuaXNJbmRpcmVjdCgw KSAmJgo+ICAgICAgICAgIGktPmdldEluZGlyZWN0KDAsIDApLT5yZWcuc2l6ZSA9PSA4KQo+ICAg ICAgICAgY29kZVsxXSB8PSAxIDw8IDIzOwo+IEBAIC0xNjkwLDggKzE2OTgsMTUgQEAgQ29kZUVt aXR0ZXJHSzExMDo6ZW1pdExPQUQoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4gICAgICBpbnQzMl90 IG9mZnNldCA9IFNEQVRBKGktPnNyYygwKSkub2Zmc2V0Owo+Cj4gICAgICBzd2l0Y2ggKGktPnNy YygwKS5nZXRGaWxlKCkpIHsKPiAtICAgY2FzZSBGSUxFX01FTU9SWV9CVUZGRVI6IGNvZGVbMV0g PSAweGMwMDAwMDAwOyBjb2RlWzBdID0gMHgwMDAwMDAwMDsgYnJlYWs7Cj4gLSAgIGNhc2UgRklM RV9NRU1PUllfTE9DQUw6ICBjb2RlWzFdID0gMHg3YTAwMDAwMDsgY29kZVswXSA9IDB4MDAwMDAw MDI7IGJyZWFrOwo+ICsgICBjYXNlIEZJTEVfTUVNT1JZX0JVRkZFUjoKPiArICAgY2FzZSBGSUxF X01FTU9SWV9HTE9CQUw6Cj4gKyAgICAgIGNvZGVbMF0gPSAweDAwMDAwMDAwOwo+ICsgICAgICBj b2RlWzFdID0gMHhjMDAwMDAwMDsKPiArICAgICAgYnJlYWs7Cj4gKyAgIGNhc2UgRklMRV9NRU1P UllfTE9DQUw6Cj4gKyAgICAgIGNvZGVbMF0gPSAweDAwMDAwMDAyOwo+ICsgICAgICBjb2RlWzFd ID0gMHg3YTAwMDAwMDsKPiArICAgICAgYnJlYWs7Cj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX1NI QVJFRDoKPiAgICAgICAgIGNvZGVbMF0gPSAweDAwMDAwMDAyOwo+ICAgICAgICAgaWYgKGktPnN1 Yk9wID09IE5WNTBfSVJfU1VCT1BfTE9BRF9MT0NLRUQpCj4gQEAgLTE4MDAsNyArMTgxNSw4IEBA IENvZGVFbWl0dGVyR0sxMTA6OmVtaXRNT1YoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4gICBzdGF0 aWMgaW5saW5lIGJvb2wKPiAgIHVzZXM2NGJpdEFkZHJlc3MoY29uc3QgSW5zdHJ1Y3Rpb24gKmxk c3QpCj4gICB7Cj4gLSAgIHJldHVybiBsZHN0LT5zcmMoMCkuZ2V0RmlsZSgpID09IEZJTEVfTUVN T1JZX0JVRkZFUiAmJgo+ICsgICByZXR1cm4gKGxkc3QtPnNyYygwKS5nZXRGaWxlKCkgPT0gRklM RV9NRU1PUllfQlVGRkVSIHx8Cj4gKyAgICAgICAgICAgbGRzdC0+c3JjKDApLmdldEZpbGUoKSA9 PSBGSUxFX01FTU9SWV9HTE9CQUwpICYmCj4gICAgICAgICBsZHN0LT5zcmMoMCkuaXNJbmRpcmVj dCgwKSAmJgo+ICAgICAgICAgbGRzdC0+Z2V0SW5kaXJlY3QoMCwgMCktPnJlZy5zaXplID09IDg7 Cj4gICB9Cj4gQEAgLTE4NjIsNyArMTg3OCw4IEBAIENvZGVFbWl0dGVyR0sxMTA6OmVtaXRDQ1RM KGNvbnN0IEluc3RydWN0aW9uICppKQo+Cj4gICAgICBjb2RlWzBdID0gMHgwMDAwMDAwMiB8IChp LT5zdWJPcCA8PCAyKTsKPgo+IC0gICBpZiAoaS0+c3JjKDApLmdldEZpbGUoKSA9PSBGSUxFX01F TU9SWV9CVUZGRVIpIHsKPiArICAgaWYgKGktPnNyYygwKS5nZXRGaWxlKCkgPT0gRklMRV9NRU1P UllfQlVGRkVSIHx8Cj4gKyAgICAgICBpLT5zcmMoMCkuZ2V0RmlsZSgpID09IEZJTEVfTUVNT1JZ X0dMT0JBTCkgewo+ICAgICAgICAgY29kZVsxXSA9IDB4N2IwMDAwMDA7Cj4gICAgICB9IGVsc2Ug ewo+ICAgICAgICAgY29kZVsxXSA9IDB4N2MwMDAwMDA7Cj4gZGlmZiAtLWdpdCBhL3NyYy9nYWxs aXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZW1pdF9nbTEwNy5jcHAgYi9zcmMv Z2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2VtaXRfZ20xMDcuY3BwCj4g aW5kZXggMjdmMjg3Zi4uM2ZjZGM1NSAxMDA2NDQKPiAtLS0gYS9zcmMvZ2FsbGl1bS9kcml2ZXJz L25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2VtaXRfZ20xMDcuY3BwCj4gKysrIGIvc3JjL2dhbGxp dW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9lbWl0X2dtMTA3LmNwcAo+IEBAIC0y NDE3LDcgKzI0MTcsOCBAQCB2b2lkCj4gICBDb2RlRW1pdHRlckdNMTA3OjplbWl0Q0NUTCgpCj4g ICB7Cj4gICAgICB1bnNpZ25lZCB3aWR0aDsKPiAtICAgaWYgKGluc24tPnNyYygwKS5nZXRGaWxl KCkgPT0gRklMRV9NRU1PUllfQlVGRkVSKSB7Cj4gKyAgIGlmIChpbnNuLT5zcmMoMCkuZ2V0Rmls ZSgpID09IEZJTEVfTUVNT1JZX0JVRkZFUiB8fAo+ICsgICAgICAgaW5zbi0+c3JjKDApLmdldEZp bGUoKSA9PSBGSUxFX01FTU9SWV9HTE9CQUwpIHsKPiAgICAgICAgIGVtaXRJbnNuKDB4ZWY2MDAw MDApOwo+ICAgICAgICAgd2lkdGggPSAzMDsKPiAgICAgIH0gZWxzZSB7Cj4gQEAgLTI5ODksNiAr Mjk5MCw3IEBAIENvZGVFbWl0dGVyR00xMDc6OmVtaXRJbnN0cnVjdGlvbihJbnN0cnVjdGlvbiAq aSkKPiAgICAgICAgIGNhc2UgRklMRV9NRU1PUllfTE9DQUwgOiBlbWl0TERMKCk7IGJyZWFrOwo+ ICAgICAgICAgY2FzZSBGSUxFX01FTU9SWV9TSEFSRUQ6IGVtaXRMRFMoKTsgYnJlYWs7Cj4gICAg ICAgICBjYXNlIEZJTEVfTUVNT1JZX0JVRkZFUjogZW1pdExEKCk7IGJyZWFrOwo+ICsgICAgICBj YXNlIEZJTEVfTUVNT1JZX0dMT0JBTDogZW1pdExEKCk7IGJyZWFrOwo+ICAgICAgICAgZGVmYXVs dDoKPiAgICAgICAgICAgIGFzc2VydCghImludmFsaWQgbG9hZCIpOwo+ICAgICAgICAgICAgZW1p dE5PUCgpOwo+IEBAIC0zMDAwLDYgKzMwMDIsNyBAQCBDb2RlRW1pdHRlckdNMTA3OjplbWl0SW5z dHJ1Y3Rpb24oSW5zdHJ1Y3Rpb24gKmkpCj4gICAgICAgICBjYXNlIEZJTEVfTUVNT1JZX0xPQ0FM IDogZW1pdFNUTCgpOyBicmVhazsKPiAgICAgICAgIGNhc2UgRklMRV9NRU1PUllfU0hBUkVEOiBl bWl0U1RTKCk7IGJyZWFrOwo+ICAgICAgICAgY2FzZSBGSUxFX01FTU9SWV9CVUZGRVI6IGVtaXRT VCgpOyBicmVhazsKPiArICAgICAgY2FzZSBGSUxFX01FTU9SWV9HTE9CQUw6IGVtaXRTVCgpOyBi cmVhazsKPiAgICAgICAgIGRlZmF1bHQ6Cj4gICAgICAgICAgICBhc3NlcnQoISJpbnZhbGlkIGxv YWQiKTsKPiAgICAgICAgICAgIGVtaXROT1AoKTsKPiBkaWZmIC0tZ2l0IGEvc3JjL2dhbGxpdW0v ZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9lbWl0X252NTAuY3BwIGIvc3JjL2dhbGxp dW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9lbWl0X252NTAuY3BwCj4gaW5kZXgg NzQ3NmUyMS4uMjY1M2M4MiAxMDA2NDQKPiAtLS0gYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZl YXUvY29kZWdlbi9udjUwX2lyX2VtaXRfbnY1MC5jcHAKPiArKysgYi9zcmMvZ2FsbGl1bS9kcml2 ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2VtaXRfbnY1MC5jcHAKPiBAQCAtNjYzLDYgKzY2 Myw3IEBAIENvZGVFbWl0dGVyTlY1MDo6ZW1pdExPQUQoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4g ICAgICAgICBjb2RlWzFdID0gMHg0MDAwMDAwMDsKPiAgICAgICAgIGJyZWFrOwo+ICAgICAgY2Fz ZSBGSUxFX01FTU9SWV9CVUZGRVI6Cj4gKyAgIGNhc2UgRklMRV9NRU1PUllfR0xPQkFMOgo+ICAg ICAgICAgY29kZVswXSA9IDB4ZDAwMDAwMDEgfCAoaS0+Z2V0U3JjKDApLT5yZWcuZmlsZUluZGV4 IDw8IDE2KTsKPiAgICAgICAgIGNvZGVbMV0gPSAweDgwMDAwMDAwOwo+ICAgICAgICAgYnJlYWs7 Cj4gQEAgLTY3MSw3ICs2NzIsOCBAQCBDb2RlRW1pdHRlck5WNTA6OmVtaXRMT0FEKGNvbnN0IElu c3RydWN0aW9uICppKQo+ICAgICAgICAgYnJlYWs7Cj4gICAgICB9Cj4gICAgICBpZiAoc2YgPT0g RklMRV9NRU1PUllfTE9DQUwgfHwKPiAtICAgICAgIHNmID09IEZJTEVfTUVNT1JZX0JVRkZFUikK PiArICAgICAgIHNmID09IEZJTEVfTUVNT1JZX0JVRkZFUiB8fAo+ICsgICAgICAgc2YgPT0gRklM RV9NRU1PUllfR0xPQkFMKQo+ICAgICAgICAgZW1pdExvYWRTdG9yZVNpemVMRyhpLT5zVHlwZSwg MjEgKyAzMik7Cj4KPiAgICAgIHNldERzdChpLCAwKTsKPiBAQCAtNjc5LDcgKzY4MSw4IEBAIENv ZGVFbWl0dGVyTlY1MDo6ZW1pdExPQUQoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4gICAgICBlbWl0 RmxhZ3NSZChpKTsKPiAgICAgIGVtaXRGbGFnc1dyKGkpOwo+Cj4gLSAgIGlmIChpLT5zcmMoMCku Z2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0JVRkZFUikgewo+ICsgICBpZiAoaS0+c3JjKDApLmdl dEZpbGUoKSA9PSBGSUxFX01FTU9SWV9CVUZGRVIgfHwKPiArICAgICAgIGktPnNyYygwKS5nZXRG aWxlKCkgPT0gRklMRV9NRU1PUllfR0xPQkFMKSB7Cj4gICAgICAgICBzcmNJZCgqaS0+c3JjKDAp LmdldEluZGlyZWN0KDApLCA5KTsKPiAgICAgIH0gZWxzZSB7Cj4gICAgICAgICBzZXRBUmVnMTYo aSwgMCk7Cj4gQEAgLTcwMCw2ICs3MDMsNyBAQCBDb2RlRW1pdHRlck5WNTA6OmVtaXRTVE9SRShj b25zdCBJbnN0cnVjdGlvbiAqaSkKPiAgICAgICAgIHNyY0lkKGktPnNyYygxKSwgMzIgKyAxNCk7 Cj4gICAgICAgICBicmVhazsKPiAgICAgIGNhc2UgRklMRV9NRU1PUllfQlVGRkVSOgo+ICsgICBj YXNlIEZJTEVfTUVNT1JZX0dMT0JBTDoKPiAgICAgICAgIGNvZGVbMF0gPSAweGQwMDAwMDAxIHwg KGktPmdldFNyYygwKS0+cmVnLmZpbGVJbmRleCA8PCAxNik7Cj4gICAgICAgICBjb2RlWzFdID0g MHhhMDAwMDAwMDsKPiAgICAgICAgIGVtaXRMb2FkU3RvcmVTaXplTEcoaS0+ZFR5cGUsIDIxICsg MzIpOwo+IEBAIC03MzcsNyArNzQxLDcgQEAgQ29kZUVtaXR0ZXJOVjUwOjplbWl0U1RPUkUoY29u c3QgSW5zdHJ1Y3Rpb24gKmkpCj4gICAgICAgICBicmVhazsKPiAgICAgIH0KPgo+IC0gICBpZiAo ZiA9PSBGSUxFX01FTU9SWV9CVUZGRVIpCj4gKyAgIGlmIChmID09IEZJTEVfTUVNT1JZX0JVRkZF UiB8fCBmID09IEZJTEVfTUVNT1JZX0dMT0JBTCkKPiAgICAgICAgIHNyY0lkKCppLT5zcmMoMCku Z2V0SW5kaXJlY3QoMCksIDkpOwo+ICAgICAgZWxzZQo+ICAgICAgICAgc2V0QVJlZzE2KGksIDAp Owo+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUw X2lyX2VtaXRfbnZjMC5jcHAgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9u djUwX2lyX2VtaXRfbnZjMC5jcHAKPiBpbmRleCA2MjM2NjU5Li5jYTQ3NWNlIDEwMDY0NAo+IC0t LSBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZW1pdF9udmMw LmNwcAo+ICsrKyBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJf ZW1pdF9udmMwLmNwcAo+IEBAIC0yODEsNiArMjgxLDcgQEAgQ29kZUVtaXR0ZXJOVkMwOjpzZXRB ZGRyZXNzQnlGaWxlKGNvbnN0IFZhbHVlUmVmJiBzcmMpCj4gICB7Cj4gICAgICBzd2l0Y2ggKHNy Yy5nZXRGaWxlKCkpIHsKPiAgICAgIGNhc2UgRklMRV9NRU1PUllfQlVGRkVSOgo+ICsgICBjYXNl IEZJTEVfTUVNT1JZX0dMT0JBTDoKPiAgICAgICAgIHNyY0FkZHIzMihzcmMsIDI2LCAwKTsKPiAg ICAgICAgIGJyZWFrOwo+ICAgICAgY2FzZSBGSUxFX01FTU9SWV9MT0NBTDoKPiBAQCAtMTc2OCw3 ICsxNzY5LDggQEAgQ29kZUVtaXR0ZXJOVkMwOjplbWl0Q2FjaGluZ01vZGUoQ2FjaGVNb2RlIGMp Cj4gICBzdGF0aWMgaW5saW5lIGJvb2wKPiAgIHVzZXM2NGJpdEFkZHJlc3MoY29uc3QgSW5zdHJ1 Y3Rpb24gKmxkc3QpCj4gICB7Cj4gLSAgIHJldHVybiBsZHN0LT5zcmMoMCkuZ2V0RmlsZSgpID09 IEZJTEVfTUVNT1JZX0JVRkZFUiAmJgo+ICsgICByZXR1cm4gKGxkc3QtPnNyYygwKS5nZXRGaWxl KCkgPT0gRklMRV9NRU1PUllfQlVGRkVSIHx8Cj4gKyAgICAgICAgICAgbGRzdC0+c3JjKDApLmdl dEZpbGUoKSA9PSBGSUxFX01FTU9SWV9HTE9CQUwpICYmCj4gICAgICAgICBsZHN0LT5zcmMoMCku aXNJbmRpcmVjdCgwKSAmJgo+ICAgICAgICAgbGRzdC0+Z2V0SW5kaXJlY3QoMCwgMCktPnJlZy5z aXplID09IDg7Cj4gICB9Cj4gQEAgLTE3NzksOCArMTc4MSwxMyBAQCBDb2RlRW1pdHRlck5WQzA6 OmVtaXRTVE9SRShjb25zdCBJbnN0cnVjdGlvbiAqaSkKPiAgICAgIHVpbnQzMl90IG9wYzsKPgo+ ICAgICAgc3dpdGNoIChpLT5zcmMoMCkuZ2V0RmlsZSgpKSB7Cj4gLSAgIGNhc2UgRklMRV9NRU1P UllfQlVGRkVSOiBvcGMgPSAweDkwMDAwMDAwOyBicmVhazsKPiAtICAgY2FzZSBGSUxFX01FTU9S WV9MT0NBTDogIG9wYyA9IDB4YzgwMDAwMDA7IGJyZWFrOwo+ICsgICBjYXNlIEZJTEVfTUVNT1JZ X0JVRkZFUjoKPiArICAgY2FzZSBGSUxFX01FTU9SWV9HTE9CQUw6Cj4gKyAgICAgIG9wYyA9IDB4 OTAwMDAwMDA7Cj4gKyAgICAgIGJyZWFrOwo+ICsgICBjYXNlIEZJTEVfTUVNT1JZX0xPQ0FMOgo+ ICsgICAgICBvcGMgPSAweGM4MDAwMDAwOwo+ICsgICAgICBicmVhazsKPiAgICAgIGNhc2UgRklM RV9NRU1PUllfU0hBUkVEOgo+ICAgICAgICAgaWYgKGktPnN1Yk9wID09IE5WNTBfSVJfU1VCT1Bf U1RPUkVfVU5MT0NLRUQpIHsKPiAgICAgICAgICAgIGlmICh0YXJnLT5nZXRDaGlwc2V0KCkgPj0g TlZJU0FfR0sxMDRfQ0hJUFNFVCkKPiBAQCAtMTgyOCw4ICsxODM1LDEzIEBAIENvZGVFbWl0dGVy TlZDMDo6ZW1pdExPQUQoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4gICAgICBjb2RlWzBdID0gMHgw MDAwMDAwNTsKPgo+ICAgICAgc3dpdGNoIChpLT5zcmMoMCkuZ2V0RmlsZSgpKSB7Cj4gLSAgIGNh c2UgRklMRV9NRU1PUllfQlVGRkVSOiBvcGMgPSAweDgwMDAwMDAwOyBicmVhazsKPiAtICAgY2Fz ZSBGSUxFX01FTU9SWV9MT0NBTDogIG9wYyA9IDB4YzAwMDAwMDA7IGJyZWFrOwo+ICsgICBjYXNl IEZJTEVfTUVNT1JZX0JVRkZFUjoKPiArICAgY2FzZSBGSUxFX01FTU9SWV9HTE9CQUw6Cj4gKyAg ICAgIG9wYyA9IDB4ODAwMDAwMDA7Cj4gKyAgICAgIGJyZWFrOwo+ICsgICBjYXNlIEZJTEVfTUVN T1JZX0xPQ0FMOgo+ICsgICAgICBvcGMgPSAweGMwMDAwMDAwOwo+ICsgICAgICBicmVhazsKPiAg ICAgIGNhc2UgRklMRV9NRU1PUllfU0hBUkVEOgo+ICAgICAgICAgaWYgKGktPnN1Yk9wID09IE5W NTBfSVJfU1VCT1BfTE9BRF9MT0NLRUQpIHsKPiAgICAgICAgICAgIGlmICh0YXJnLT5nZXRDaGlw c2V0KCkgPj0gTlZJU0FfR0sxMDRfQ0hJUFNFVCkKPiBAQCAtMjA5MCw3ICsyMTAyLDggQEAgQ29k ZUVtaXR0ZXJOVkMwOjplbWl0Q0NUTChjb25zdCBJbnN0cnVjdGlvbiAqaSkKPiAgIHsKPiAgICAg IGNvZGVbMF0gPSAweDAwMDAwMDA1IHwgKGktPnN1Yk9wIDw8IDUpOwo+Cj4gLSAgIGlmIChpLT5z cmMoMCkuZ2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0JVRkZFUikgewo+ICsgICBpZiAoaS0+c3Jj KDApLmdldEZpbGUoKSA9PSBGSUxFX01FTU9SWV9CVUZGRVIgfHwKPiArICAgICAgIGktPnNyYygw KS5nZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfR0xPQkFMKSB7Cj4gICAgICAgICBjb2RlWzFdID0g MHg5ODAwMDAwMDsKPiAgICAgICAgIHNyY0FkZHIzMihpLT5zcmMoMCksIDI4LCAyKTsKPiAgICAg IH0gZWxzZSB7Cj4gQEAgLTMxMjIsNiArMzEzNSw3IEBAIFNjaGVkRGF0YUNhbGN1bGF0b3I6OmNo ZWNrUmQoY29uc3QgVmFsdWUgKnYsIGludCBjeWNsZSwgaW50JiBkZWxheSkgY29uc3QKPiAgICAg IGNhc2UgRklMRV9NRU1PUllfQ09OU1Q6Cj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX1NIQVJFRDoK PiAgICAgIGNhc2UgRklMRV9NRU1PUllfQlVGRkVSOgo+ICsgICBjYXNlIEZJTEVfTUVNT1JZX0dM T0JBTDoKPiAgICAgIGNhc2UgRklMRV9TWVNURU1fVkFMVUU6Cj4gICAgICAgICAvLyBUT0RPOiBh bnkgcmVzdHJpY3Rpb25zIGhlcmUgPwo+ICAgICAgICAgYnJlYWs7Cj4gZGlmZiAtLWdpdCBhL3Ny Yy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZnJvbV90Z3NpLmNwcCBi L3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZnJvbV90Z3NpLmNw cAo+IGluZGV4IDkxODc5ZTQuLmMxNjdjNGEgMTAwNjQ0Cj4gLS0tIGEvc3JjL2dhbGxpdW0vZHJp dmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9mcm9tX3Rnc2kuY3BwCj4gKysrIGIvc3JjL2dh bGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9mcm9tX3Rnc2kuY3BwCj4gQEAg LTM3NCw3ICszNzQsNyBAQCBzdGF0aWMgbnY1MF9pcjo6RGF0YUZpbGUgdHJhbnNsYXRlRmlsZSh1 aW50IGZpbGUpCj4gICAgICBjYXNlIFRHU0lfRklMRV9JTU1FRElBVEU6ICAgICAgIHJldHVybiBu djUwX2lyOjpGSUxFX0lNTUVESUFURTsKPiAgICAgIGNhc2UgVEdTSV9GSUxFX1NZU1RFTV9WQUxV RTogICAgcmV0dXJuIG52NTBfaXI6OkZJTEVfU1lTVEVNX1ZBTFVFOwo+ICAgICAgY2FzZSBUR1NJ X0ZJTEVfQlVGRkVSOiAgICAgICAgICByZXR1cm4gbnY1MF9pcjo6RklMRV9NRU1PUllfQlVGRkVS Owo+IC0gICBjYXNlIFRHU0lfRklMRV9NRU1PUlk6ICAgICAgICAgIHJldHVybiBudjUwX2lyOjpG SUxFX01FTU9SWV9CVUZGRVI7Cj4gKyAgIGNhc2UgVEdTSV9GSUxFX01FTU9SWTogICAgICAgICAg cmV0dXJuIG52NTBfaXI6OkZJTEVfTUVNT1JZX0dMT0JBTDsKPiAgICAgIGNhc2UgVEdTSV9GSUxF X1NBTVBMRVI6Cj4gICAgICBjYXNlIFRHU0lfRklMRV9OVUxMOgo+ICAgICAgZGVmYXVsdDoKPiBA QCAtMTI4NCw3ICsxMjg0LDkgQEAgYm9vbCBTb3VyY2U6OnNjYW5JbnN0cnVjdGlvbihjb25zdCBz dHJ1Y3QgdGdzaV9mdWxsX2luc3RydWN0aW9uICppbnN0KQo+ICAgICAgICAgICAgaWYgKGRzdC5p c0luZGlyZWN0KDApKQo+ICAgICAgICAgICAgICAgaW5kaXJlY3RUZW1wQXJyYXlzLmluc2VydChk c3QuZ2V0QXJyYXlJZCgpKTsKPiAgICAgICAgIH0gZWxzZQo+IC0gICAgICBpZiAoZHN0LmdldEZp bGUoKSA9PSBUR1NJX0ZJTEVfQlVGRkVSKSB7Cj4gKyAgICAgIGlmIChkc3QuZ2V0RmlsZSgpID09 IFRHU0lfRklMRV9CVUZGRVIgfHwKPiArICAgICAgICAgIChkc3QuZ2V0RmlsZSgpID09IFRHU0lf RklMRV9NRU1PUlkgJiYKPiArICAgICAgICAgICBtZW1vcnlGaWxlc1tkc3QuZ2V0SW5kZXgoMCld Lm1lbV90eXBlID09IFRHU0lfTUVNT1JZX1RZUEVfR0xPQkFMKSkgewo+ICAgICAgICAgICAgaW5m by0+aW8uZ2xvYmFsQWNjZXNzIHw9IDB4MjsKPiAgICAgICAgIH0KPiAgICAgIH0KPiBAQCAtMTI5 NSw3ICsxMjk3LDkgQEAgYm9vbCBTb3VyY2U6OnNjYW5JbnN0cnVjdGlvbihjb25zdCBzdHJ1Y3Qg dGdzaV9mdWxsX2luc3RydWN0aW9uICppbnN0KQo+ICAgICAgICAgICAgaWYgKHNyYy5pc0luZGly ZWN0KDApKQo+ICAgICAgICAgICAgICAgaW5kaXJlY3RUZW1wQXJyYXlzLmluc2VydChzcmMuZ2V0 QXJyYXlJZCgpKTsKPiAgICAgICAgIH0gZWxzZQo+IC0gICAgICBpZiAoc3JjLmdldEZpbGUoKSA9 PSBUR1NJX0ZJTEVfQlVGRkVSKSB7Cj4gKyAgICAgIGlmIChzcmMuZ2V0RmlsZSgpID09IFRHU0lf RklMRV9CVUZGRVIgfHwKPiArICAgICAgICAgIChzcmMuZ2V0RmlsZSgpID09IFRHU0lfRklMRV9N RU1PUlkgJiYKPiArICAgICAgICAgICBtZW1vcnlGaWxlc1tzcmMuZ2V0SW5kZXgoMCldLm1lbV90 eXBlID09IFRHU0lfTUVNT1JZX1RZUEVfR0xPQkFMKSkgewo+ICAgICAgICAgICAgaW5mby0+aW8u Z2xvYmFsQWNjZXNzIHw9IChpbnNuLmdldE9wY29kZSgpID09IFRHU0lfT1BDT0RFX0xPQUQpID8K PiAgICAgICAgICAgICAgICAgIDB4MSA6IDB4MjsKPiAgICAgICAgIH0gZWxzZQo+IEBAIC0xNTI5 LDYgKzE1MzMsMTAgQEAgQ29udmVydGVyOjptYWtlU3ltKHVpbnQgdGdzaUZpbGUsIGludCBmaWxl SWR4LCBpbnQgaWR4LCBpbnQgYywgdWludDMyX3QgYWRkcmVzcykKPgo+ICAgICAgaWYgKHRnc2lG aWxlID09IFRHU0lfRklMRV9NRU1PUlkpIHsKPiAgICAgICAgIHN3aXRjaCAoY29kZS0+bWVtb3J5 RmlsZXNbZmlsZUlkeF0ubWVtX3R5cGUpIHsKPiArICAgICAgY2FzZSBUR1NJX01FTU9SWV9UWVBF X0dMT0JBTDoKPiArICAgICAgICAgLyogTm8tb3AgdGhpcyBpcyB0aGUgZGVmYXVsdCBmb3IgVEdT SV9GSUxFX01FTU9SWSAqLwo+ICsgICAgICAgICBzeW0tPnNldEZpbGUoRklMRV9NRU1PUllfR0xP QkFMKTsKPiArICAgICAgICAgYnJlYWs7Cj4gICAgICAgICBjYXNlIFRHU0lfTUVNT1JZX1RZUEVf U0hBUkVEOgo+ICAgICAgICAgICAgc3ltLT5zZXRGaWxlKEZJTEVfTUVNT1JZX1NIQVJFRCk7Cj4g ICAgICAgICAgICBicmVhazsKPiBkaWZmIC0tZ2l0IGEvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2 ZWF1L2NvZGVnZW4vbnY1MF9pcl9wZWVwaG9sZS5jcHAgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25v dXZlYXUvY29kZWdlbi9udjUwX2lyX3BlZXBob2xlLmNwcAo+IGluZGV4IDRhOTZkMDQuLjg0ZDI5 NDQgMTAwNjQ0Cj4gLS0tIGEvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1 MF9pcl9wZWVwaG9sZS5jcHAKPiArKysgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29k ZWdlbi9udjUwX2lyX3BlZXBob2xlLmNwcAo+IEBAIC0yNTgxLDYgKzI1ODEsNyBAQCBNZW1vcnlP cHQ6OnJ1bk9wdChCYXNpY0Jsb2NrICpiYikKPiAgICAgICAgICAgICAgICBsZHN0LT5vcCA9PSBP UF9NRU1CQVIpIHsKPiAgICAgICAgICAgICAgIHB1cmdlUmVjb3JkcyhOVUxMLCBGSUxFX01FTU9S WV9MT0NBTCk7Cj4gICAgICAgICAgICAgICBwdXJnZVJlY29yZHMoTlVMTCwgRklMRV9NRU1PUllf QlVGRkVSKTsKPiArICAgICAgICAgICAgcHVyZ2VSZWNvcmRzKE5VTEwsIEZJTEVfTUVNT1JZX0dM T0JBTCk7Cj4gICAgICAgICAgICAgICBwdXJnZVJlY29yZHMoTlVMTCwgRklMRV9NRU1PUllfU0hB UkVEKTsKPiAgICAgICAgICAgICAgIHB1cmdlUmVjb3JkcyhOVUxMLCBGSUxFX1NIQURFUl9PVVRQ VVQpOwo+ICAgICAgICAgICAgfSBlbHNlCj4gQEAgLTI1ODgsNiArMjU4OSw3IEBAIE1lbW9yeU9w dDo6cnVuT3B0KEJhc2ljQmxvY2sgKmJiKQo+ICAgICAgICAgICAgICAgaWYgKGxkc3QtPnNyYygw KS5nZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfQlVGRkVSKSB7Cj4gICAgICAgICAgICAgICAgICBw dXJnZVJlY29yZHMoTlVMTCwgRklMRV9NRU1PUllfTE9DQUwpOwo+ICAgICAgICAgICAgICAgICAg cHVyZ2VSZWNvcmRzKE5VTEwsIEZJTEVfTUVNT1JZX0JVRkZFUik7Cj4gKyAgICAgICAgICAgICAg IHB1cmdlUmVjb3JkcyhOVUxMLCBGSUxFX01FTU9SWV9HTE9CQUwpOwo+ICAgICAgICAgICAgICAg ICAgcHVyZ2VSZWNvcmRzKE5VTEwsIEZJTEVfTUVNT1JZX1NIQVJFRCk7Cj4gICAgICAgICAgICAg ICB9IGVsc2Ugewo+ICAgICAgICAgICAgICAgICAgcHVyZ2VSZWNvcmRzKE5VTEwsIGxkc3QtPnNy YygwKS5nZXRGaWxlKCkpOwo+IEBAIC0yNjA3LDcgKzI2MDksOCBAQCBNZW1vcnlPcHQ6OnJ1bk9w dChCYXNpY0Jsb2NrICpiYikKPiAgICAgICAgICAgIERhdGFGaWxlIGZpbGUgPSBsZHN0LT5zcmMo MCkuZ2V0RmlsZSgpOwo+Cj4gICAgICAgICAgICAvLyBpZiBsZCBsW10vZ1tdIGxvb2sgZm9yIHBy ZXZpb3VzIHN0b3JlIHRvIGVsaW1pbmF0ZSB0aGUgcmVsb2FkCj4gLSAgICAgICAgIGlmIChmaWxl ID09IEZJTEVfTUVNT1JZX0JVRkZFUiB8fCBmaWxlID09IEZJTEVfTUVNT1JZX0xPQ0FMKSB7Cj4g KyAgICAgICAgIGlmIChmaWxlID09IEZJTEVfTUVNT1JZX0JVRkZFUiB8fCBmaWxlID09IEZJTEVf TUVNT1JZX0xPQ0FMIHx8Cj4gKyAgICAgICAgICAgICBmaWxlID09IEZJTEVfTUVNT1JZX0dMT0JB TCkgewo+ICAgICAgICAgICAgICAgLy8gVE9ETzogc2hhcmVkIG1lbW9yeSA/Cj4gICAgICAgICAg ICAgICByZWMgPSBmaW5kUmVjb3JkKGxkc3QsIGZhbHNlLCBpc0FkamFjZW50KTsKPiAgICAgICAg ICAgICAgIGlmIChyZWMgJiYgIWlzQWRqYWNlbnQpCj4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVt L2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfcHJpbnQuY3BwIGIvc3JjL2dhbGxpdW0v ZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9wcmludC5jcHAKPiBpbmRleCA3M2VkNzUz Li4zOTE3NzY4IDEwMDY0NAo+IC0tLSBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2Rl Z2VuL252NTBfaXJfcHJpbnQuY3BwCj4gKysrIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1 L2NvZGVnZW4vbnY1MF9pcl9wcmludC5jcHAKPiBAQCAtNDU2LDYgKzQ1Niw3IEBAIGludCBTeW1i b2w6OnByaW50KGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsCj4gICAgICBjYXNlIEZJTEVfU0hBREVS X0lOUFVUOiAgYyA9ICdhJzsgYnJlYWs7Cj4gICAgICBjYXNlIEZJTEVfU0hBREVSX09VVFBVVDog YyA9ICdvJzsgYnJlYWs7Cj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX0JVRkZFUjogYyA9ICdnJzsg YnJlYWs7Cj4gKyAgIGNhc2UgRklMRV9NRU1PUllfR0xPQkFMOiBjID0gJ2cnOyBicmVhazsKPiAg ICAgIGNhc2UgRklMRV9NRU1PUllfU0hBUkVEOiBjID0gJ3MnOyBicmVhazsKPiAgICAgIGNhc2Ug RklMRV9NRU1PUllfTE9DQUw6ICBjID0gJ2wnOyBicmVhazsKPiAgICAgIGRlZmF1bHQ6Cj4gZGlm ZiAtLWdpdCBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFy Z2V0X252NTAuY3BwIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9p cl90YXJnZXRfbnY1MC5jcHAKPiBpbmRleCAxY2Q0NWEyLi41YzYwYjIyIDEwMDY0NAo+IC0tLSBh L3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252NTAu Y3BwCj4gKysrIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl90 YXJnZXRfbnY1MC5jcHAKPiBAQCAtMjA4LDYgKzIwOCw3IEBAIFRhcmdldE5WNTA6OmdldEZpbGVT aXplKERhdGFGaWxlIGZpbGUpIGNvbnN0Cj4gICAgICBjYXNlIEZJTEVfU0hBREVSX0lOUFVUOiAg cmV0dXJuIDB4MjAwOwo+ICAgICAgY2FzZSBGSUxFX1NIQURFUl9PVVRQVVQ6IHJldHVybiAweDIw MDsKPiAgICAgIGNhc2UgRklMRV9NRU1PUllfQlVGRkVSOiByZXR1cm4gMHhmZmZmZmZmZjsKPiAr ICAgY2FzZSBGSUxFX01FTU9SWV9HTE9CQUw6IHJldHVybiAweGZmZmZmZmZmOwo+ICAgICAgY2Fz ZSBGSUxFX01FTU9SWV9TSEFSRUQ6IHJldHVybiAxNiA8PCAxMDsKPiAgICAgIGNhc2UgRklMRV9N RU1PUllfTE9DQUw6ICByZXR1cm4gNDggPDwgMTA7Cj4gICAgICBjYXNlIEZJTEVfU1lTVEVNX1ZB TFVFOiAgcmV0dXJuIDE2Owo+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZl YXUvY29kZWdlbi9udjUwX2lyX3RhcmdldF9udmMwLmNwcCBiL3NyYy9nYWxsaXVtL2RyaXZlcnMv bm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252YzAuY3BwCj4gaW5kZXggYmRhNTlhNS4u OWUxZTdiZiAxMDA2NDQKPiAtLS0gYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdl bi9udjUwX2lyX3RhcmdldF9udmMwLmNwcAo+ICsrKyBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91 dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252YzAuY3BwCj4gQEAgLTI0OSw2ICsyNDksNyBA QCBUYXJnZXROVkMwOjpnZXRGaWxlU2l6ZShEYXRhRmlsZSBmaWxlKSBjb25zdAo+ICAgICAgY2Fz ZSBGSUxFX1NIQURFUl9JTlBVVDogIHJldHVybiAweDQwMDsKPiAgICAgIGNhc2UgRklMRV9TSEFE RVJfT1VUUFVUOiByZXR1cm4gMHg0MDA7Cj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX0JVRkZFUjog cmV0dXJuIDB4ZmZmZmZmZmY7Cj4gKyAgIGNhc2UgRklMRV9NRU1PUllfR0xPQkFMOiByZXR1cm4g MHhmZmZmZmZmZjsKPiAgICAgIGNhc2UgRklMRV9NRU1PUllfU0hBUkVEOiByZXR1cm4gMTYgPDwg MTA7Cj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX0xPQ0FMOiAgcmV0dXJuIDQ4IDw8IDEwOwo+ICAg ICAgY2FzZSBGSUxFX1NZU1RFTV9WQUxVRTogIHJldHVybiAzMjsKPgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwptZXNhLWRldiBtYWlsaW5nIGxpc3QKbWVz YS1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vbWVzYS1kZXYK