From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: [RFC] Revert "drm/amdgpu/gfx8: Fix SET_RESOURCES packet" Date: Wed, 5 Apr 2017 09:06:52 -0400 Message-ID: References: <20170403202534.3311-1-andresx7@gmail.com> <3ae98951-f12f-3860-e10a-00e0be2b9e84@amd.com> <32c1f7e8-54a4-8db7-c764-8bae55bf3f94@gmail.com> <08b6ee6a-f201-272c-d812-7f7404a51863@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <08b6ee6a-f201-272c-d812-7f7404a51863-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Tom St Denis Cc: "Deucher, Alexander" , Tom St Denis , Andres Rodriguez , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" T24gV2VkLCBBcHIgNSwgMjAxNyBhdCA3OjMwIEFNLCBUb20gU3QgRGVuaXMgPHRvbS5zdGRlbmlz QGFtZC5jb20+IHdyb3RlOgo+IE15IGZpcm13YXJlIGlzCj4KPiAgICAgICAgIGZ3LlZDRSA9PSAu ZmVhdHVyZT09MCAuZmlybXdhcmU9PTB4MzQwNDAzMDAKPiAgICAgICAgIGZ3LlVWRCA9PSAuZmVh dHVyZT09MCAuZmlybXdhcmU9PTB4MDE1YjBiMDAKPiAgICAgICAgIGZ3Lk1DID09IC5mZWF0dXJl PT0wIC5maXJtd2FyZT09MHgwMDAwMDAwMAo+ICAgICAgICAgZncuTUUgPT0gLmZlYXR1cmU9PTQ2 IC5maXJtd2FyZT09MHgwMDAwMDBhMQo+ICAgICAgICAgZncuUEZQID09IC5mZWF0dXJlPT00NiAu ZmlybXdhcmU9PTB4MDAwMDAwZWIKPiAgICAgICAgIGZ3LkNFID09IC5mZWF0dXJlPT00NiAuZmly bXdhcmU9PTB4MDAwMDAwODYKPiAgICAgICAgIGZ3LlJMQyA9PSAuZmVhdHVyZT09MSAuZmlybXdh cmU9PTB4MDAwMDAwOWMKPiAgICAgICAgIGZ3Lk1FQyA9PSAuZmVhdHVyZT09NDYgLmZpcm13YXJl PT0weDAwMDAwMmMxCj4gICAgICAgICBmdy5NRUMyID09IC5mZWF0dXJlPT00NiAuZmlybXdhcmU9 PTB4MDAwMDAyYzEKPiAgICAgICAgIGZ3LlNPUyA9PSAuZmVhdHVyZT09MCAuZmlybXdhcmU9PTB4 MDAwMDAwMDAKPiAgICAgICAgIGZ3LkFTRCA9PSAuZmVhdHVyZT09MCAuZmlybXdhcmU9PTB4MDAw MDAwMDAKPiAgICAgICAgIGZ3LlNNQyA9PSAuZmVhdHVyZT09MCAuZmlybXdhcmU9PTB4MDAwMDAw MDAKPiAgICAgICAgIGZ3LlNETUEwID09IC5mZWF0dXJlPT0wIC5maXJtd2FyZT09MHgwMDAwMDAy Mgo+ICAgICAgICAgZncuU0RNQTEgPT0gLmZlYXR1cmU9PTAgLmZpcm13YXJlPT0weDAwMDAwMDIy Cj4KPiBJdCBzZWVtcyBsaWtlIG91ciBhbGwtb3BlbiBpcyBiZWhpbmQgd2hhdCBoZSBoYXMgZm9y IFNETUEsIFNNQywgUkxDIGJ1dAo+IGFoZWFkIGZvciBvdGhlcnM/ICBCaXphcnJlLgoKQ2FuIHlv dSB0cnkgdGhlIHVwc3RyZWFtIHVjb2RlPyAgVGhhdCBpcyB3aGF0IEFuZHJlcyBpcyB1c2luZy4K aHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvZmlybXdhcmUv bGludXgtZmlybXdhcmUuZ2l0CgpBbGV4Cgo+Cj4gVG9tCj4KPgo+IE9uIDA0LzA0LzE3IDA0OjE3 IFBNLCBBbmRyZXMgUm9kcmlndWV6IHdyb3RlOgo+Pgo+PiBUaGlzIHNob3VsZCBiZSB0aGUgdGhl IGxpbnV4LWZpcm13YXJlIHJlcG9zaXRvcnkgQCBjb21taXQKPj4gNmQzYmM4ODg2NTE3ZDE3MTA2 OGZkMTI2MzE3NmI4YjVjNTFkZjIwNAo+Pgo+PiBJIHJldmVydGVkIGJhY2sgdG8gdGhhdCBmaXJt d2FyZSBzaW5jZSBJIGRpZG4ndCB3YW50IHRvIGRlYWwgd2l0aAo+PiBwb3NzaWJsZSBidWdzIHdo ZW4gdGVzdGluZyBteSBwYXRjaGVzLgo+Pgo+PiBSZWdhcmRzLAo+PiBBbmRyZXMKPj4KPj4gT24g VHVlLCBBcHIgNCwgMjAxNyBhdCA0OjAzIFBNLCBEZXVjaGVyLCBBbGV4YW5kZXIKPj4gPEFsZXhh bmRlci5EZXVjaGVyQGFtZC5jb20+IHdyb3RlOgo+Pj4+Cj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0KPj4+PiBGcm9tOiBBbmRyZXMgUm9kcmlndWV6IFttYWlsdG86YW5kcmVzeDdAZ21h aWwuY29tXQo+Pj4+IFNlbnQ6IFR1ZXNkYXksIEFwcmlsIDA0LCAyMDE3IDQ6MDEgUE0KPj4+PiBU bzogVG9tIFN0IERlbmlzOyBEZXVjaGVyLCBBbGV4YW5kZXI7IFN0RGVuaXMsIFRvbTsgYW1kLQo+ Pj4+IGdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+PiBTdWJqZWN0OiBSZTogW1JGQ10gUmV2 ZXJ0ICJkcm0vYW1kZ3B1L2dmeDg6IEZpeCBTRVRfUkVTT1VSQ0VTIHBhY2tldCIKPj4+Pgo+Pj4+ IFRoaXMgaXMgbXkgaW5mbyBpbiBjYXNlIHRoYXQgaXMgdXNlZnVsOgo+Pj4+Cj4+Pj4gICAgICB1 bXIudmVyc2lvbiA9PSBlYThlNDliYjE1ZWQKPj4+Pgo+Pj4+ICAgICAgZncuVkNFID09IC5mZWF0 dXJlPT0wIC5maXJtd2FyZT09MHgzNDA0MDMwMAo+Pj4+ICAgICAgZncuVVZEID09IC5mZWF0dXJl PT0wIC5maXJtd2FyZT09MHgwMTRmMTAwMAo+Pj4+ICAgICAgZncuTUMgPT0gLmZlYXR1cmU9PTAg LmZpcm13YXJlPT0weDAwMDAwMDAwCj4+Pj4gICAgICBmdy5NRSA9PSAuZmVhdHVyZT09MzcgLmZp cm13YXJlPT0weDAwMDAwMDk0Cj4+Pj4gICAgICBmdy5QRlAgPT0gLmZlYXR1cmU9PTM3IC5maXJt d2FyZT09MHgwMDAwMDBkYwo+Pj4+ICAgICAgZncuQ0UgPT0gLmZlYXR1cmU9PTM3IC5maXJtd2Fy ZT09MHgwMDAwMDA4MAo+Pj4+ICAgICAgZncuUkxDID09IC5mZWF0dXJlPT0xIC5maXJtd2FyZT09 MHgwMDAwMDEwZQo+Pj4+ICAgICAgZncuTUVDID09IC5mZWF0dXJlPT0zNyAuZmlybXdhcmU9PTB4 MDAwMDAyYTIKPj4+PiAgICAgIGZ3Lk1FQzIgPT0gLmZlYXR1cmU9PTM3IC5maXJtd2FyZT09MHgw MDAwMDJhMgo+Pj4+ICAgICAgZncuU09TID09IC5mZWF0dXJlPT0wIC5maXJtd2FyZT09MHgwMDAw MDAwMAo+Pj4+ICAgICAgZncuQVNEID09IC5mZWF0dXJlPT0wIC5maXJtd2FyZT09MHgwMDAwMDAw MAo+Pj4+ICAgICAgZncuU01DID09IC5mZWF0dXJlPT0wIC5maXJtd2FyZT09MHgwMDE3MGYwMAo+ Pj4+ICAgICAgZncuU0RNQTAgPT0gLmZlYXR1cmU9PTMxIC5maXJtd2FyZT09MHgwMDAwMDAzNgo+ Pj4+ICAgICAgZncuU0RNQTEgPT0gLmZlYXR1cmU9PTAgLmZpcm13YXJlPT0weDAwMDAwMDM2Cj4+ Pj4KPj4+PiAgICAgIGFzaWMuaW5zdGFuY2UgPT0gMAo+Pj4+Cj4+Pj4KPj4+PiAgICAgIGdmeC5t YXhfc2hhZGVyX2VuZ2luZXMgPT0gNAo+Pj4+ICAgICAgZ2Z4Lm1heF90aWxlX3BpcGVzID09IDgK Pj4+PiAgICAgIGdmeC5tYXhfY3VfcGVyX3NoID09IDkKPj4+PiAgICAgIGdmeC5tYXhfc2hfcGVy X3NlID09IDEKPj4+PiAgICAgIGdmeC5tYXhfYmFja2VuZHNfcGVyX3NlID09IDIKPj4+PiAgICAg IGdmeC5tYXhfdGV4dHVyZV9jaGFubmVsX2NhY2hlcyA9PSA4Cj4+Pj4gICAgICBnZngubWF4X2dw cnMgPT0gMjU2Cj4+Pj4gICAgICBnZngubWF4X2dzX3RocmVhZHMgPT0gMzIKPj4+PiAgICAgIGdm eC5tYXhfaHdfY29udGV4dHMgPT0gOAo+Pj4+ICAgICAgZ2Z4LnNjX3ByaW1fZmlmb19zaXplX2Zy b250ZW5kID09IDMyCj4+Pj4gICAgICBnZnguc2NfcHJpbV9maWZvX3NpemVfYmFja2VuZCA9PSAy NTYKPj4+PiAgICAgIGdmeC5zY19oaXpfdGlsZV9maWZvX3NpemUgPT0gNDgKPj4+PiAgICAgIGdm eC5zY19lYXJseXpfdGlsZV9maWZvX3NpemUgPT0gMzA0Cj4+Pj4gICAgICBnZngubnVtX3RpbGVf cGlwZXMgPT0gOAo+Pj4+ICAgICAgZ2Z4LmJhY2tlbmRfZW5hYmxlX21hc2sgPT0gMjU1Cj4+Pj4g ICAgICBnZngubWVtX21heF9idXJzdF9sZW5ndGhfYnl0ZXMgPT0gMjU2Cj4+Pj4gICAgICBnZngu bWVtX3Jvd19zaXplX2luX2tiID09IDQKPj4+PiAgICAgIGdmeC5zaGFkZXJfZW5naW5lX3RpbGVf c2l6ZSA9PSAzMgo+Pj4+ICAgICAgZ2Z4Lm51bV9ncHVzID09IDEKPj4+PiAgICAgIGdmeC5tdWx0 aV9ncHVfdGlsZV9zaXplID09IDY0Cj4+Pj4gICAgICBnZngubWNfYXJiX3JhbWNmZyA9PSAyNDcz OAo+Pj4+ICAgICAgZ2Z4LmdiX2FkZHJfY29uZmlnID09IDU3MDQ5NDk3OQo+Pj4+ICAgICAgZ2Z4 Lm51bV9yYnMgPT0gOAo+Pj4+ICAgICAgZ2Z4LmZhbWlseSA9IDEzMCwgVm9sY2FuaWMgSXNsYW5k cwo+Pj4+ICAgICAgZ2Z4LnJldl9pZCA9PSAwMDAwMDAwMQo+Pj4+ICAgICAgZ2Z4LmV4dGVybmFs X3Jldl9pZCA9PSAwMDAwMDA1MQo+Pj4+ICAgICAgZ2Z4LmNnX2ZsYWdzID09IDAwM2ZmZmNkCj4+ Pj4gICAgICAgICAgQU1EX0NHX1NVUFBPUlRfR0ZYX01HQ0cKPj4+PiAgICAgICAgICBBTURfQ0df U1VQUE9SVF9HRlhfQ0dDRwo+Pj4+ICAgICAgICAgIEFNRF9DR19TVVBQT1JUX0dGWF9DR0xTCj4+ Pj4gICAgICAgICAgQU1EX0NHX1NVUFBPUlRfR0ZYX0NQX0xTCj4+Pj4gICAgICAgICAgQU1EX0NH X1NVUFBPUlRfR0ZYX1JMQ19MUwo+Pj4+ICAgICAgICAgIEFNRF9DR19TVVBQT1JUX01DX0xTCj4+ Pj4gICAgICAgICAgQU1EX0NHX1NVUFBPUlRfTUNfTUdDRwo+Pj4+ICAgICAgICAgIEFNRF9DR19T VVBQT1JUX1NETUFfTFMKPj4+PiAgICAgICAgICBBTURfQ0dfU1VQUE9SVF9TRE1BX01HQ0cKPj4+ PiAgICAgICAgICBBTURfQ0dfU1VQUE9SVF9CSUZfTFMKPj4+PiAgICAgICAgICBBTURfQ0dfU1VQ UE9SVF9VVkRfTUdDRwo+Pj4+ICAgICAgICAgIEFNRF9DR19TVVBQT1JUX1ZDRV9NR0NHCj4+Pj4g ICAgICAgICAgQU1EX0NHX1NVUFBPUlRfSERQX0xTCj4+Pj4gICAgICAgICAgQU1EX0NHX1NVUFBP UlRfSERQX01HQ0cKPj4+PiAgICAgICAgICBBTURfQ0dfU1VQUE9SVF9ST01fTUdDRwo+Pj4+ICAg ICAgZ2Z4LnBnX2ZsYWdzID09IDAwMDAwMDAwCj4+Pgo+Pj4KPj4+IElzIHRoaXMgdGhlIHN0b2Nr IGZpcm13YXJlIGZyb20gdXBzdHJlYW0gb3IgdGhlIHN0dWZmIEkgcG9pbnRlZCB5b3UgdG8KPj4+ IHllc3RlcmRheSBvbiBteSBmZG8gc2l0ZT8KPj4+Cj4+PiBBbGV4Cj4+Pgo+Pj4+Cj4+Pj4gUmVn YXJkcywKPj4+PiBBbmRyZXMKPj4+Pgo+Pj4+IE9uIDIwMTctMDQtMDQgMDM6NTkgUE0sIFRvbSBT dCBEZW5pcyB3cm90ZToKPj4+Pj4KPj4+Pj4gSSdtIHVzaW5nIHRoZSBsYXRlc3QgZnJvbSBhbGwg b3BlbiAob3VyIGludGVybmFsIEZDMjQgcmVwbykuICBJJ2xsCj4+Pj4+IGZldGNoCj4+Pj4+IHRo ZSBleGFjdCBsYXRlciB3aXRoICJ1bXIgLWMiLgo+Pj4+Pgo+Pj4+PiBUb20KPj4+Pj4KPj4+Pj4g T24gVHVlLCBBcHIgNCwgMjAxNyBhdCAzOjQ4IFBNIERldWNoZXIsIEFsZXhhbmRlcgo+Pj4+Cj4+ Pj4gPEFsZXhhbmRlci5EZXVjaGVyQGFtZC5jb20+Cj4+Pj4+Cj4+Pj4+IHdyb3RlOgo+Pj4+Pgo+ Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+Pj4+Pj4gRnJvbTogYW1kLWdmeCBb bWFpbHRvOmFtZC1nZngtYm91bmNlc0BsaXN0cy5mcmVlZGVza3RvcC5vcmddIE9uCj4+Pj4KPj4+ PiBCZWhhbGYKPj4+Pj4+Pgo+Pj4+Pj4+IE9mIEFuZHJlcyBSb2RyaWd1ZXoKPj4+Pj4+PiBTZW50 OiBUdWVzZGF5LCBBcHJpbCAwNCwgMjAxNyAzOjM5IFBNCj4+Pj4+Pj4gVG86IFN0RGVuaXMsIFRv bTsgYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4+PiBTdWJqZWN0OiBSZTogW1JG Q10gUmV2ZXJ0ICJkcm0vYW1kZ3B1L2dmeDg6IEZpeCBTRVRfUkVTT1VSQ0VTCj4+Pj4KPj4+PiBw YWNrZXQiCj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiBPbiAyMDE3LTA0 LTA0IDA4OjI3IEFNLCBUb20gU3QgRGVuaXMgd3JvdGU6Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IE9uIDAz LzA0LzE3IDA0OjI1IFBNLCBBbmRyZXMgUm9kcmlndWV6IHdyb3RlOgo+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+IENvbW1pdCBlNTc5ZjU2IHJlc3VsdHMgaW4gYSBLQ1EgaW5pdGlhbGl6YXRpb24gZXJyb3Ig Zm9yIHBvbGFyaXMxMAo+Pj4+Pj4+Pj4gY2FyZHMuIFByb3ZpZGluZyB0aGUgZnVsbCBTRVRfUkVT T1VSQ0VTIHBhY2tldCBpbnN0ZWFkIG9mIHRoZQo+Pj4+Pj4KPj4+Pj4+IHRydW5jYXRlZAo+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+IHZlcnNpb24gZml4ZXMgdGhlIHByb2JsZW0uCj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4gSSB0aGluayB0aGlzIHBhdGNoIG1heSBoYXZlIGJlZW4gb25lIG9mIHRoZSBzdGFicyBh dCBmaXhpbmcgdGhlIEtDUQo+Pj4+Pj4+Pj4gc3VzcGVuZC9yZXN1bWUgZXJyb3JzLiBJICp0aGlu ayogaXQgbWF5IG5vIGxvbmdlciBiZSBuZWVkZWQgaWYgdGhhdAo+Pj4+Cj4+Pj4gaXMKPj4+Pj4+ Pj4+Cj4+Pj4+Pj4+PiB0aGUgY2FzZS4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBTZW5kaW5nIHRoaXMg bW9zdGx5IGFzIGFuIEZZSSB0byBnZXQgdGhlIHBhdGNoIHJlbW92ZWQgZnJvbSB0aGUKPj4+Pj4+ Cj4+Pj4+PiA0LjEyLXdpcAo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRoaXMgcmV2ZXJ0cyBjb21taXQg ZTU3OWY1NjRjMzMzYTdlYWRkZjdlMTJiMWI4NDE0NDEwYzM2ZTgwZi4KPj4+Pj4+Pj4+IC0tLQo+ Pj4+Pj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jIHwgNiArKysr Ky0KPj4+Pj4+Pj4+ICAgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nZnhfdjhfMC5jCj4+Pj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2dmeF92OF8wLmMKPj4+Pj4+Pj4+IGluZGV4IDJkOGQ3YmIuLjRjM2JmNTEgMTAwNjQ0Cj4+Pj4+ Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jCj4+Pj4+Pj4+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jCj4+Pj4+Pj4+PiBA QCAtNDY0NywxMCArNDY0NywxNCBAQCBzdGF0aWMgaW50IGdmeF92OF8wX2tpcV9rY3FfZW5hYmxl KHN0cnVjdAo+Pj4+Pj4+Pj4gYW1kZ3B1X2RldmljZSAqYWRldikKPj4+Pj4+Pj4+ICAgICAgICAg ICByZXR1cm4gcjsKPj4+Pj4+Pj4+ICAgICAgIH0KPj4+Pj4+Pj4+ICAgICAgIC8qIHNldCByZXNv dXJjZXMgKi8KPj4+Pj4+Pj4+IC0gICAgYW1kZ3B1X3Jpbmdfd3JpdGUoa2lxX3JpbmcsIFBBQ0tF VDMoUEFDS0VUM19TRVRfUkVTT1VSQ0VTLAo+Pj4+Cj4+Pj4gMikpOwo+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+ICsgICAgYW1kZ3B1X3Jpbmdfd3JpdGUoa2lxX3JpbmcsCj4+Pj4KPj4+PiBQQUNLRVQzKFBB Q0tFVDNfU0VUX1JFU09VUkNFUywKPj4+Pj4+Pgo+Pj4+Pj4+IDYpKTsKPj4+Pj4+Pj4+Cj4+Pj4+ Pj4+PiAgICAgICBhbWRncHVfcmluZ193cml0ZShraXFfcmluZywgMCk7ICAgIC8qIHZtaWRfbWFz azowCj4+Pj4+Pj4+PiBxdWV1ZV90eXBlOjAKPj4+Pj4+Pj4+IChLSVEpICovCj4+Pj4+Pj4+PiAg ICAgICBhbWRncHVfcmluZ193cml0ZShraXFfcmluZywgMHgwMDAwMDBGRik7ICAgIC8qIHF1ZXVl IG1hc2sgbG8KPj4+Pj4+Pj4+ICovCj4+Pj4+Pj4+PiAgICAgICBhbWRncHVfcmluZ193cml0ZShr aXFfcmluZywgMCk7ICAgIC8qIHF1ZXVlIG1hc2sgaGkgKi8KPj4+Pj4+Pj4+ICsgICAgYW1kZ3B1 X3Jpbmdfd3JpdGUoa2lxX3JpbmcsIDApOyAgICAvKiBnd3MgbWFzayBsbyAqLwo+Pj4+Pj4+Pj4g KyAgICBhbWRncHVfcmluZ193cml0ZShraXFfcmluZywgMCk7ICAgIC8qIGd3cyBtYXNrIGhpICov Cj4+Pj4+Pj4+PiArICAgIGFtZGdwdV9yaW5nX3dyaXRlKGtpcV9yaW5nLCAwKTsgICAgLyogb2Fj IG1hc2sgKi8KPj4+Pj4+Pj4+ICsgICAgYW1kZ3B1X3Jpbmdfd3JpdGUoa2lxX3JpbmcsIDApOyAg ICAvKiBnZHMgaGVhcCBiYXNlOjAsIGdkcwo+Pj4+Pj4+Pj4gaGVhcAo+Pj4+Pj4+Pj4gc2l6ZTow ICovCj4+Pj4+Pj4+PiAgICAgICBmb3IgKGkgPSAwOyBpIDwgYWRldi0+Z2Z4Lm51bV9jb21wdXRl X3JpbmdzOyBpKyspIHsKPj4+Pj4+Pj4+ICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJp bmcgPSAmYWRldi0+Z2Z4LmNvbXB1dGVfcmluZ1tpXTsKPj4+Pj4+Pj4+ICAgICAgICAgICB1aW50 NjRfdCBtcWRfYWRkciA9IGFtZGdwdV9ib19ncHVfb2Zmc2V0KHJpbmctPm1xZF9vYmopOwo+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4gVGhpcyBmaXhlcyBpbml0IGlzc3VlcyB3aXRoIG15IHBvbGFyaXMgYm9h cmQgYnV0IHRoZXJlJ3Mgc3RpbGwgYQo+Pj4+Pj4+PiBjbG9jawo+Pj4+Pj4+PiBwcm9ibGVtIChD UCBpcyBwZWdnZWQgYXQgMTAwJSBhcyByZWFkIGJ5IHVtcikgcmVzdWx0aW5nIGluIHRoZSBHUFUK Pj4+Pj4+Cj4+Pj4+PiBjbG9jawo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBzdGF5aW5nIGF0IDEyMDBNSHog dGhlIGVudGlyZSB0aW1lLgo+Pj4+Pj4+Pgo+Pj4+Pj4+IFllYWggSSBzZW50IHRoaXMgb3V0IGJl Y2F1c2UgSSB3YXMgaGF2aW5nIEtDUSBpbml0IGlzc3VlcyBvbiBteQo+Pj4+Pj4+IHBvbGFyaXMx MCBjYXJkLiBIb3dldmVyLCBJJ20gbm90IHNlZWluZyB0aGUgQ1AgcGVnZ2VkIGF0IDEwMCUgYXMg eW91Cj4+Pj4+Pj4gbWVudGlvbmVkLiBFdmVyeXRoaW5nIHNpdHRpbmcgcXVpZXRseSBhdCAwJSBo ZXJlLgo+Pj4+Pj4KPj4+Pj4+IFdoaWNoIGZpcm13YXJlIGFyZSB5b3UgdXNpbmc/Cj4+Pj4+Pgo+ Pj4+Pj4gQWxleAo+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+PiBUb20KPj4+Pj4+Pj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+Pj4+Pj4gYW1kLWdmeCBt YWlsaW5nIGxpc3QKPj4+Pj4+Pj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4+ Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4 Cj4+Pj4+Pj4KPj4+Pj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+Pj4+Pj4+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4+Pj4+Pj4gYW1kLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2FtZC1nZngKPj4+Pj4+Cj4+Pj4+PiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+Pj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QK Pj4+Pj4+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4+PiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngKPj4+Pj4+Cj4+Pgo+Cj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBhbWQtZ2Z4 IG1haWxpbmcgbGlzdAo+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0 CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=