From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Pitoiset Subject: Re: [PATCH mesa v2 1/2] nouveau: codegen: Use FILE_MEMORY_BUFFER for buffers Date: Fri, 8 Apr 2016 18:14:15 +0200 Message-ID: <5707D8D7.8050403@gmail.com> References: <1458230823-25213-1-git-send-email-hdegoede@redhat.com> <56F31455.4010905@gmail.com> <57078551.1080703@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <57078551.1080703-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Hans de Goede , Ilia Mirkin Cc: mesa-dev-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org CgpPbiAwNC8wOC8yMDE2IDEyOjE3IFBNLCBIYW5zIGRlIEdvZWRlIHdyb3RlOgo+IEhpLAo+Cj4g T24gMjMtMDMtMTYgMjM6MTAsIFNhbXVlbCBQaXRvaXNldCB3cm90ZToKPj4gQXJlIHlvdSBzdXJl IHRoaXMgd29uJ3QgYnJlYWsgY29tcHV0ZSBzaGFkZXJzIG9uIGZlcm1pPwo+PiBDb3VsZCB5b3Ug cGxlYXNlIGRvdWJsZS1jaGVjayB0aGF0Pwo+Cj4gSSBqdXN0IGNoZWNrZWQ6Cj4KPiBsc3BjaToK PiAwMTowMC4wIFZHQSBjb21wYXRpYmxlIGNvbnRyb2xsZXI6IE5WSURJQSBDb3Jwb3JhdGlvbiBH RjExOSBbR2VGb3JjZSBHVAo+IDYxMF0gKHJldiBhMSkKPgo+IEJlZm9yZSB0aGlzIHBhdGNoLXNl dDoKPgo+IFtoYW5zQHBsYW5rIHBpZ2xpdF0kIC4vcGlnbGl0IHJ1biAtbyBzaGFkZXIgLXQKPiAn LiphcmJfc2hhZGVyX3N0b3JhZ2VfYnVmZmVyX29iamVjdC4qJyByZXN1bHRzL3NoYWRlcgo+IFs5 LzldIHBhc3M6IDkgLwo+Cj4gQWZ0ZXIgdGhpcyBwYXRjaC1zZXQ6Cj4KPiBbaGFuc0BwbGFuayBw aWdsaXRdJCAuL3BpZ2xpdCBydW4gLW8gc2hhZGVyIC10Cj4gJy4qYXJiX3NoYWRlcl9zdG9yYWdl X2J1ZmZlcl9vYmplY3QuKicgcmVzdWx0cy9zaGFkZXIKPiBbOS85XSBwYXNzOiA5IC8KCkFuZCB3 aGF0IGFib3V0IGNvbXB1dGUgc2hhZGVycz8gKGllLiAtdCBhcmJfY29tcHV0ZV9zaGFkZXIpClNv cnJ5IHRvIGFzayB5b3UgYWdhaW4gYnV0IEkganVzdCB3YW50IHRvIGJlIHN1cmUgaXQncyBmaW5l LiA6LSkKCj4KPj4gT25lIG1pbm9yIGNvbW1lbnQgYmVsb3cuCj4+Cj4+IE9uIDAzLzE3LzIwMTYg MDU6MDcgUE0sIEhhbnMgZGUgR29lZGUgd3JvdGU6Cj4+PiBTb21lIG9mIHRoZSBsb3dlcmluZyBz dGVwcyB3ZSBjdXJyZW50bHkgZG8gZm9yIEZJTEVfTUVNT1JZX0dMT0JBTCBvbmx5Cj4+PiBhcHBs eSB0byBidWZmZXJzLCBtYWtpbmcgaXQgaW1wb3NzaWJsZSB0byB1c2UgRklMRV9NRU1PUllfR0xP QkFMIGZvcgo+Pj4gT3BlbkNMIGdsb2JhbCBidWZmZXJzLgo+Pj4KPj4+IFRoaXMgY29tbWl0cyBj aGFuZ2VzIHRoZSBidWZmZXIgY29kZSB0byB1c2UgRklMRV9NRU1PUllfQlVGRkVSIGF0IHRoZQo+ Pj4gaXJfZnJvbV90Z3NpIGFuZCBsb3dlcmluZyBzdGVwcywgZnJlZWluZyB1c2Ugb2YgRklMRV9N RU1PUllfR0xPQkFMCj4+PiBmb3IgdXNlIHdpdGggT3BlbkNMIGdsb2JhbCBidWZmZXJzLgo+Pj4K Pj4+IE5vdGUgdGhhdCBhZnRlciBsb3dlcmluZyBidWZmZXIgYWNjZXNzZXMgdXNlIHRoZSBGSUxF X01FTU9SWV9HTE9CQUwKPj4+IHJlZ2lzdGVyIGZpbGUuCj4+Pgo+Pj4gVGVzdGVkIHdpdGggcGln bGV0IG9uIGEgZ2sxMDcsIGJlZm9yZSB0aGlzIHBhdGNoOgo+Pj4gLi9waWdsaXQgcnVuIC1vIHNo YWRlciAtdCAnLiphcmJfc2hhZGVyX3N0b3JhZ2VfYnVmZmVyX29iamVjdC4qJwo+Pj4gcmVzdWx0 cy9zaGFkZXIKPj4+IFs5LzldIHBhc3M6IDkgLwo+Pj4gYWZ0ZXI6Cj4+PiAuL3BpZ2xpdCBydW4g LW8gc2hhZGVyIC10ICcuKmFyYl9zaGFkZXJfc3RvcmFnZV9idWZmZXJfb2JqZWN0LionCj4+PiBy ZXN1bHRzL3NoYWRlcgo+Pj4gWzkvOV0gcGFzczogOSAvCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTog SGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KPj4+IC0tLQo+Pj4gQ2hhbmdlcyBp biB2MjoKPj4+IC1OZXcgcGF0Y2ggaW4gdjIgb2YgcGF0Y2gtc2V0IHRvIHJlLWVuYWJsZSBzdXBw b3J0IGZvciBnbG9iYWwgb3BlbmNsCj4+PiBidWZmZXJzCj4+PiAtLS0KPj4+ICAgc3JjL2dhbGxp dW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pci5oICAgICAgICAgICAgICAgICB8IDEg Kwo+Pj4gICBzcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2Zyb21f dGdzaS5jcHAgICAgIHwgMiArLQo+Pj4gICBzcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29k ZWdlbi9udjUwX2lyX2xvd2VyaW5nX252YzAuY3BwIHwgOAo+Pj4gKysrKystLS0KPj4+ICAgc3Jj L2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9wcmludC5jcHAgICAgICAg ICB8IDEgKwo+Pj4gICBzcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2ly X3RhcmdldF9udjUwLmNwcCAgIHwgNQo+Pj4gKysrKy0KPj4+ICAgc3JjL2dhbGxpdW0vZHJpdmVy cy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl90YXJnZXRfbnZjMC5jcHAgICB8IDEgKwo+Pj4gICA2 IGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCj4+Pgo+Pj4g ZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXIu aAo+Pj4gYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyLmgKPj4+ IGluZGV4IDdiMGViMmYuLjUxNDFmYzYgMTAwNjQ0Cj4+PiAtLS0gYS9zcmMvZ2FsbGl1bS9kcml2 ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyLmgKPj4+ICsrKyBiL3NyYy9nYWxsaXVtL2RyaXZl cnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXIuaAo+Pj4gQEAgLTMzMiw2ICszMzIsNyBAQCBlbnVt IERhdGFGaWxlCj4+PiAgICAgIEZJTEVfTUVNT1JZX0NPTlNULAo+Pj4gICAgICBGSUxFX1NIQURF Ul9JTlBVVCwKPj4+ICAgICAgRklMRV9TSEFERVJfT1VUUFVULAo+Pj4gKyAgIEZJTEVfTUVNT1JZ X0JVRkZFUiwKPj4+ICAgICAgRklMRV9NRU1PUllfR0xPQkFMLAo+Pj4gICAgICBGSUxFX01FTU9S WV9TSEFSRUQsCj4+PiAgICAgIEZJTEVfTUVNT1JZX0xPQ0FMLAo+Pj4gZGlmZiAtLWdpdAo+Pj4g YS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2Zyb21fdGdzaS5j cHAKPj4+IGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9mcm9t X3Rnc2kuY3BwCj4+PiBpbmRleCBiYWEyZTMwLi43YWUwY2IyIDEwMDY0NAo+Pj4gLS0tIGEvc3Jj L2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9mcm9tX3Rnc2kuY3BwCj4+ PiArKysgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2Zyb21f dGdzaS5jcHAKPj4+IEBAIC0zNzMsNyArMzczLDcgQEAgc3RhdGljIG52NTBfaXI6OkRhdGFGaWxl IHRyYW5zbGF0ZUZpbGUodWludCBmaWxlKQo+Pj4gICAgICBjYXNlIFRHU0lfRklMRV9QUkVESUNB VEU6ICAgICAgIHJldHVybiBudjUwX2lyOjpGSUxFX1BSRURJQ0FURTsKPj4+ICAgICAgY2FzZSBU R1NJX0ZJTEVfSU1NRURJQVRFOiAgICAgICByZXR1cm4gbnY1MF9pcjo6RklMRV9JTU1FRElBVEU7 Cj4+PiAgICAgIGNhc2UgVEdTSV9GSUxFX1NZU1RFTV9WQUxVRTogICAgcmV0dXJuIG52NTBfaXI6 OkZJTEVfU1lTVEVNX1ZBTFVFOwo+Pj4gLSAgIGNhc2UgVEdTSV9GSUxFX0JVRkZFUjogICAgICAg ICAgcmV0dXJuIG52NTBfaXI6OkZJTEVfTUVNT1JZX0dMT0JBTDsKPj4+ICsgICBjYXNlIFRHU0lf RklMRV9CVUZGRVI6ICAgICAgICAgIHJldHVybiBudjUwX2lyOjpGSUxFX01FTU9SWV9CVUZGRVI7 Cj4+PiAgICAgIGNhc2UgVEdTSV9GSUxFX01FTU9SWTogICAgICAgICAgcmV0dXJuIG52NTBfaXI6 OkZJTEVfTUVNT1JZX0dMT0JBTDsKPj4+ICAgICAgY2FzZSBUR1NJX0ZJTEVfU0FNUExFUjoKPj4+ ICAgICAgY2FzZSBUR1NJX0ZJTEVfTlVMTDoKPj4+IGRpZmYgLS1naXQKPj4+IGEvc3JjL2dhbGxp dW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9sb3dlcmluZ19udmMwLmNwcAo+Pj4g Yi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2xvd2VyaW5nX252 YzAuY3BwCj4+PiBpbmRleCBkMDkzNmQ4Li42MjhkZWI3IDEwMDY0NAo+Pj4gLS0tIGEvc3JjL2dh bGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9sb3dlcmluZ19udmMwLmNwcAo+ Pj4gKysrIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9sb3dl cmluZ19udmMwLmNwcAo+Pj4gQEAgLTExNDEsMTMgKzExNDEsMTQgQEAgTlZDMExvd2VyaW5nUGFz czo6aGFuZGxlQVRPTShJbnN0cnVjdGlvbiAqYXRvbSkKPj4+ICAgICAgICAgaGFuZGxlU2hhcmVk QVRPTShhdG9tKTsKPj4+ICAgICAgICAgcmV0dXJuIHRydWU7Cj4+PiAgICAgIGRlZmF1bHQ6Cj4+ PiAtICAgICAgYXNzZXJ0KGF0b20tPnNyYygwKS5nZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfR0xP QkFMKTsKPj4+ICsgICAgICBhc3NlcnQoYXRvbS0+c3JjKDApLmdldEZpbGUoKSA9PSBGSUxFX01F TU9SWV9CVUZGRVIpOwo+Pj4gICAgICAgICBiYXNlID0gbG9hZFJlc0luZm82NChpbmQsIGF0b20t PmdldFNyYygwKS0+cmVnLmZpbGVJbmRleCAqIDE2KTsKPj4+ICAgICAgICAgYXNzZXJ0KGJhc2Ut PnJlZy5zaXplID09IDgpOwo+Pj4gICAgICAgICBpZiAocHRyKQo+Pj4gICAgICAgICAgICBiYXNl ID0gYmxkLm1rT3AydihPUF9BREQsIFRZUEVfVTY0LCBiYXNlLCBiYXNlLCBwdHIpOwo+Pj4gICAg ICAgICBhc3NlcnQoYmFzZS0+cmVnLnNpemUgPT0gOCk7Cj4+PiAgICAgICAgIGF0b20tPnNldElu ZGlyZWN0KDAsIDAsIGJhc2UpOwo+Pj4gKyAgICAgIGF0b20tPmdldFNyYygwKS0+cmVnLmZpbGUg PSBGSUxFX01FTU9SWV9HTE9CQUw7Cj4+PiAgICAgICAgIHJldHVybiB0cnVlOwo+Pj4gICAgICB9 Cj4+PiAgICAgIGJhc2UgPQo+Pj4gQEAgLTE5NjMsNyArMTk2NCw3IEBAIE5WQzBMb3dlcmluZ1Bh c3M6OnZpc2l0KEluc3RydWN0aW9uICppKQo+Pj4gICAgICAgICB9IGVsc2UgaWYgKGktPnNyYygw KS5nZXRGaWxlKCkgPT0gRklMRV9TSEFERVJfT1VUUFVUKSB7Cj4+PiAgICAgICAgICAgIGFzc2Vy dChwcm9nLT5nZXRUeXBlKCkgPT0KPj4+IFByb2dyYW06OlRZUEVfVEVTU0VMTEFUSU9OX0NPTlRS T0wpOwo+Pj4gICAgICAgICAgICBpLT5vcCA9IE9QX1ZGRVRDSDsKPj4+IC0gICAgICB9IGVsc2Ug aWYgKGktPnNyYygwKS5nZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfR0xPQkFMKSB7Cj4+PiArICAg ICAgfSBlbHNlIGlmIChpLT5zcmMoMCkuZ2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0JVRkZFUikg ewo+Pj4gICAgICAgICAgICBWYWx1ZSAqaW5kID0gaS0+Z2V0SW5kaXJlY3QoMCwgMSk7Cj4+PiAg ICAgICAgICAgIFZhbHVlICpwdHIgPSBsb2FkUmVzSW5mbzY0KGluZCwKPj4+IGktPmdldFNyYygw KS0+cmVnLmZpbGVJbmRleCAqIDE2KTsKPj4+ICAgICAgICAgICAgLy8gWFhYIGNvbWUgdXAgd2l0 aCBhIHdheSBub3QgdG8gZG8gdGhpcyBmb3IgRVZFUlkgbGl0dGxlCj4+PiBhY2Nlc3MgYnV0Cj4+ PiBAQCAtMTk3OCw2ICsxOTc5LDcgQEAgTlZDMExvd2VyaW5nUGFzczo6dmlzaXQoSW5zdHJ1Y3Rp b24gKmkpCj4+PiAgICAgICAgICAgIH0KPj4+ICAgICAgICAgICAgaS0+c2V0SW5kaXJlY3QoMCwg MSwgTlVMTCk7Cj4+PiAgICAgICAgICAgIGktPnNldEluZGlyZWN0KDAsIDAsIHB0cik7Cj4+PiAr ICAgICAgICAgaS0+Z2V0U3JjKDApLT5yZWcuZmlsZSA9IEZJTEVfTUVNT1JZX0dMT0JBTDsKPj4+ ICAgICAgICAgICAgYmxkLm1rQ21wKE9QX1NFVCwgQ0NfR1QsIFRZUEVfVTMyLCBwcmVkLCBUWVBF X1UzMiwgb2Zmc2V0LAo+Pj4gbGVuZ3RoKTsKPj4+ICAgICAgICAgICAgaS0+c2V0UHJlZGljYXRl KENDX05PVF9QLCBwcmVkKTsKPj4+ICAgICAgICAgICAgaWYgKGktPmRlZkV4aXN0cygwKSkgewo+ Pj4gQEAgLTE5ODcsNyArMTk4OSw3IEBAIE5WQzBMb3dlcmluZ1Bhc3M6OnZpc2l0KEluc3RydWN0 aW9uICppKQo+Pj4gICAgICAgICBicmVhazsKPj4+ICAgICAgY2FzZSBPUF9BVE9NOgo+Pj4gICAg ICB7Cj4+PiAtICAgICAgY29uc3QgYm9vbCBjY3RsID0gaS0+c3JjKDApLmdldEZpbGUoKSA9PSBG SUxFX01FTU9SWV9HTE9CQUw7Cj4+PiArICAgICAgY29uc3QgYm9vbCBjY3RsID0gaS0+c3JjKDAp LmdldEZpbGUoKSA9PSBGSUxFX01FTU9SWV9CVUZGRVI7Cj4+PiAgICAgICAgIGhhbmRsZUFUT00o aSk7Cj4+PiAgICAgICAgIGhhbmRsZUNhc0V4Y2goaSwgY2N0bCk7Cj4+PiAgICAgIH0KPj4+IGRp ZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3By aW50LmNwcAo+Pj4gYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2ly X3ByaW50LmNwcAo+Pj4gaW5kZXggY2ZhODVlYy4uODcwYjM2ZSAxMDA2NDQKPj4+IC0tLSBhL3Ny Yy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfcHJpbnQuY3BwCj4+PiAr KysgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3ByaW50LmNw cAo+Pj4gQEAgLTQ1NSw2ICs0NTUsNyBAQCBpbnQgU3ltYm9sOjpwcmludChjaGFyICpidWYsIHNp emVfdCBzaXplLAo+Pj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX0NPTlNUOiAgYyA9ICdjJzsgYnJl YWs7Cj4+PiAgICAgIGNhc2UgRklMRV9TSEFERVJfSU5QVVQ6ICBjID0gJ2EnOyBicmVhazsKPj4+ ICAgICAgY2FzZSBGSUxFX1NIQURFUl9PVVRQVVQ6IGMgPSAnbyc7IGJyZWFrOwo+Pj4gKyAgIGNh c2UgRklMRV9NRU1PUllfQlVGRkVSOiBjID0gJ2InOyBicmVhazsgLy8gT25seSB1c2VkIGJlZm9y ZQo+Pj4gbG93ZXJpbmcKPj4KPj4gQ291bGQgeW91IHBsZWFzZSBzaG93IG1lIHRoZSBvdXRwdXQg b2YgTlY1MF9QUk9HX0RFQlVHPTI1NSB3aXRoIGEgdGVzdAo+PiB3aGljaCB1c2VzIHRoaXMgZmls ZSB0eXBlPyBJJ20gbm90IHN1cmUgaWYgdXNpbmcgYltdIGlzIGJldHRlciB0aGFuCj4+IGdbXSBh Y3R1YWxseS4KPgo+IE5WNTBfUFJPR19ERUJVRz0yNTUgYmluL2FyYl9zaGFkZXJfc3RvcmFnZV9i dWZmZXJfb2JqZWN0LXJlbmRlcmluZwo+Cj4gLi4uCj4KPiBNQUlOOi0xICgpCj4gQkI6MCAoNTIg aW5zdHJ1Y3Rpb25zKSAtIGRmID0geyB9Cj4gICAtPiBCQjoxICh0cmVlKQo+ICAgIDA6IG1vdiB1 MzIgJXIxIDB4MDAwMDAwMDAgKDApCj4gICAgMTogbGQgIHUzMiAlcjAgYlsweDBdICgwKQo+ICAg IDI6IHByZXNpbiBmMzIgJXIzICVyMCAoMCkKPiAgICAzOiBjb3MgZjMyICVyMyAlcjMgKDApCj4g ICAgNDogbW92IHUzMiAlcjIgJXIzICgwKQo+ICAgIC4uLgo+Cj4gQW5kIGFmdGVyIHRoZSBmaXJz dCBsb3dlcmluZyBzdGVwOgo+Cj4gTUFJTjotMSAoKQo+IEJCOjAgKDc3IGluc3RydWN0aW9ucykg LSBkZiA9IHsgfQo+ICAgLT4gQkI6MSAodHJlZSkKPiAgICAwOiBtb3YgdTMyICVyNTYgMHgwMDAw MDAwMCAoMCkKPiAgICAxOiBsZCAgdTY0ICVyNTdkIGMxNVsweDMwMF0gKDApCj4gICAgMjogbW92 IHUzMiAlcjU4IDB4MDAwMDAwMDQgKDApCj4gICAgMzogbGQgIHUzMiAlcjU5IGMxNVsweDMwOF0g KDApCj4gICAgNDogc2V0IHU4ICVwNjAgZ3QgdTMyICVyNTggJXI1OSAoMCkKPiAgICA1OiBtb3Yg dTMyICVyNjEgMHgwMDAwMDAwMCAoMCkKPiAgICA2OiBub3QgJXA2MCBsZCAgdTMyICVyNjIgZ1sl cjU3ZCsweDBdICgwKQo+ICAgIC4uLgo+Cj4gTm90ZSBob3cgdGhlICdiJyBwcmludGluZyBpcyBv bmx5IHVzZWQgYmVmb3JlIHRoZSBidWZmZXIgYWNjZXNzCj4gaXMgbG93ZXJlZCB0byBhIGdsb2Jh bCBhY2Nlc3MsIHNvIHRoaXMgc2VlbXMgdG8gYmUgdGhlIHJpZ2h0IHRoaW5nIHRvZG8uCj4KCkZp bmUgYnkgbWUuClRoYW5rcy4KCj4gUmVnYXJkcywKPgo+IEhhbnMKPgo+Cj4+Cj4+PiAgICAgIGNh c2UgRklMRV9NRU1PUllfR0xPQkFMOiBjID0gJ2cnOyBicmVhazsKPj4+ICAgICAgY2FzZSBGSUxF X01FTU9SWV9TSEFSRUQ6IGMgPSAncyc7IGJyZWFrOwo+Pj4gICAgICBjYXNlIEZJTEVfTUVNT1JZ X0xPQ0FMOiAgYyA9ICdsJzsgYnJlYWs7Cj4+PiBkaWZmIC0tZ2l0Cj4+PiBhL3NyYy9nYWxsaXVt L2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252NTAuY3BwCj4+PiBiL3Ny Yy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252NTAuY3Bw Cj4+PiBpbmRleCAyYzRkN2Y1Li4yYWYxNzE1IDEwMDY0NAo+Pj4gLS0tIGEvc3JjL2dhbGxpdW0v ZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl90YXJnZXRfbnY1MC5jcHAKPj4+ICsrKyBi L3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252NTAu Y3BwCj4+PiBAQCAtMjA3LDYgKzIwNyw3IEBAIFRhcmdldE5WNTA6OmdldEZpbGVTaXplKERhdGFG aWxlIGZpbGUpIGNvbnN0Cj4+PiAgICAgIGNhc2UgRklMRV9NRU1PUllfQ09OU1Q6ICByZXR1cm4g NjU1MzY7Cj4+PiAgICAgIGNhc2UgRklMRV9TSEFERVJfSU5QVVQ6ICByZXR1cm4gMHgyMDA7Cj4+ PiAgICAgIGNhc2UgRklMRV9TSEFERVJfT1VUUFVUOiByZXR1cm4gMHgyMDA7Cj4+PiArICAgY2Fz ZSBGSUxFX01FTU9SWV9CVUZGRVI6IHJldHVybiAweGZmZmZmZmZmOwo+Pj4gICAgICBjYXNlIEZJ TEVfTUVNT1JZX0dMT0JBTDogcmV0dXJuIDB4ZmZmZmZmZmY7Cj4+PiAgICAgIGNhc2UgRklMRV9N RU1PUllfU0hBUkVEOiByZXR1cm4gMTYgPDwgMTA7Cj4+PiAgICAgIGNhc2UgRklMRV9NRU1PUllf TE9DQUw6ICByZXR1cm4gNDggPDwgMTA7Cj4+PiBAQCAtNDA2LDcgKzQwNyw4IEBAIFRhcmdldE5W NTA6OmlzQWNjZXNzU3VwcG9ydGVkKERhdGFGaWxlIGZpbGUsCj4+PiBEYXRhVHlwZSB0eSkgY29u c3QKPj4+ICAgICAgaWYgKHR5ID09IFRZUEVfQjk2IHx8IHR5ID09IFRZUEVfTk9ORSkKPj4+ICAg ICAgICAgcmV0dXJuIGZhbHNlOwo+Pj4gICAgICBpZiAodHlwZVNpemVvZih0eSkgPiA0KQo+Pj4g LSAgICAgIHJldHVybiAoZmlsZSA9PSBGSUxFX01FTU9SWV9MT0NBTCkgfHwgKGZpbGUgPT0KPj4+ IEZJTEVfTUVNT1JZX0dMT0JBTCk7Cj4+PiArICAgICAgcmV0dXJuIChmaWxlID09IEZJTEVfTUVN T1JZX0xPQ0FMKSB8fCAoZmlsZSA9PQo+Pj4gRklMRV9NRU1PUllfR0xPQkFMKSB8fAo+Pj4gKyAg ICAgICAgICAgICAoZmlsZSA9PSBGSUxFX01FTU9SWV9CVUZGRVIpOwo+Pj4gICAgICByZXR1cm4g dHJ1ZTsKPj4+ICAgfQo+Pj4KPj4+IEBAIC01MDksNiArNTExLDcgQEAgaW50IFRhcmdldE5WNTA6 OmdldExhdGVuY3koY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4+PiBjb25zdAo+Pj4gICAgICAgICBz d2l0Y2ggKGktPnNyYygwKS5nZXRGaWxlKCkpIHsKPj4+ICAgICAgICAgY2FzZSBGSUxFX01FTU9S WV9MT0NBTDoKPj4+ICAgICAgICAgY2FzZSBGSUxFX01FTU9SWV9HTE9CQUw6Cj4+PiArICAgICAg Y2FzZSBGSUxFX01FTU9SWV9CVUZGRVI6Cj4+PiAgICAgICAgICAgIHJldHVybiAxMDA7IC8vIHJl YWxseSA0MDAgdG8gODAwCj4+PiAgICAgICAgIGRlZmF1bHQ6Cj4+PiAgICAgICAgICAgIHJldHVy biAyMjsKPj4+IGRpZmYgLS1naXQKPj4+IGEvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2Nv ZGVnZW4vbnY1MF9pcl90YXJnZXRfbnZjMC5jcHAKPj4+IGIvc3JjL2dhbGxpdW0vZHJpdmVycy9u b3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl90YXJnZXRfbnZjMC5jcHAKPj4+IGluZGV4IGEwM2FmYTgu LjllMWU3YmYgMTAwNjQ0Cj4+PiAtLS0gYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29k ZWdlbi9udjUwX2lyX3RhcmdldF9udmMwLmNwcAo+Pj4gKysrIGIvc3JjL2dhbGxpdW0vZHJpdmVy cy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl90YXJnZXRfbnZjMC5jcHAKPj4+IEBAIC0yNDgsNiAr MjQ4LDcgQEAgVGFyZ2V0TlZDMDo6Z2V0RmlsZVNpemUoRGF0YUZpbGUgZmlsZSkgY29uc3QKPj4+ ICAgICAgY2FzZSBGSUxFX01FTU9SWV9DT05TVDogIHJldHVybiA2NTUzNjsKPj4+ICAgICAgY2Fz ZSBGSUxFX1NIQURFUl9JTlBVVDogIHJldHVybiAweDQwMDsKPj4+ICAgICAgY2FzZSBGSUxFX1NI QURFUl9PVVRQVVQ6IHJldHVybiAweDQwMDsKPj4+ICsgICBjYXNlIEZJTEVfTUVNT1JZX0JVRkZF UjogcmV0dXJuIDB4ZmZmZmZmZmY7Cj4+PiAgICAgIGNhc2UgRklMRV9NRU1PUllfR0xPQkFMOiBy ZXR1cm4gMHhmZmZmZmZmZjsKPj4+ICAgICAgY2FzZSBGSUxFX01FTU9SWV9TSEFSRUQ6IHJldHVy biAxNiA8PCAxMDsKPj4+ICAgICAgY2FzZSBGSUxFX01FTU9SWV9MT0NBTDogIHJldHVybiA0OCA8 PCAxMDsKPj4+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Ck5vdXZlYXUgbWFpbGluZyBsaXN0Ck5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vbm91dmVhdQo=