From mboxrd@z Thu Jan 1 00:00:00 1970 From: Felix Kuehling Subject: Re: [PATCH 1/2] drm/amdgpu: use multipipe compute policy on non PL11 asics Date: Tue, 7 Nov 2017 17:27:44 -0500 Message-ID: References: <20170926162246.3200-1-andresx7@gmail.com> <20170926162246.3200-2-andresx7@gmail.com> <2200a1fa-d1d3-bd92-825d-987ecd355dac@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-CA 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: "Zhou, David(ChunMing)" , Andres Rodriguez Cc: "Deucher, Alexander" , amd-gfx list Tm90IHN1cmUgYW1kLWdmeCBpcyB0aGUgcmlnaHQgbGlzdCBmb3IgdGhpcy4gVGhlIGNvZGUgSSdt IHRhbGtpbmcgYWJvdXQKaXMgbm90IHVwc3RyZWFtIHlldCwgYW5kIHRoZSBwcm9ibGVtIGJlaW5n IGRpc2N1c3NlZCBvY2N1cnMgb24gdGhlIERLTVMKYnJhbmNoLgoKCkV2ZW4gdGhvdWdoIHdlIHNh eSB3ZSBkb24ndCBzdXBwb3J0IFRvbmdhICh0aGVyZSBhcmUga25vd24gaXNzdWVzIHdpdGgKUk9D bSBvbiBUb25nYSksIEtGRCB3aWxsIGRldGVjdCBhbmQgaW5pdGlhbGl6ZSBpdC4gVGhhdCBtZWFu cyB0aGUgSFdTIGlzCmluaXRpYWxpemVkLiBJZiB1c2VyIG1vZGUgaW5pdGlhbGl6ZXMgdGhlIFJP Q3IgUnVudGltZSAoZXZlbiBpZiBpdCdzCmp1c3QgZm9yIGRldmljZSBlbnVtZXJhdGlvbiksIEkg YmVsaWV2ZSBhdCBsZWFzdCBvbmUgdXNlciBtb2RlIHF1ZXVlIGlzCmNyZWF0ZWQsIHRoYXQgd2ls bCBqdXN0IHNpdCBpZGxlLiBUaGF0IGlkbGUgdXNlciBtb2RlIHF1ZXVlIGlzIHByb2JhYmx5Cm9u IHBpcGUgMC4gVGhlIHBpcGUgd2lsbCBwZXJpb2RpY2FsbHkgc3dpdGNoIGJldHdlZW4gdGhlIGlk bGUgdXNlciBtb2RlCnF1ZXVlIGFuZCBhIGtlcm5lbCBjb21wdXRlIHF1ZXVlLgoKCllvdSBjYW4g c2VlIGEgaGV4ZHVtcCBvZiBNUURzIG9mIGFsbCBLRkQgdXNlciBtb2RlIHF1ZXVlcyBpbgovc3lz L2tlcm5lbC9kZWJ1Zy9rZmQvbXFkcy4gWW91IGNhbiBhbHNvIGluc3BlY3QgdGhlIEhRRHMgaW4K L3N5cy9rZXJuZWwvZGVidWcva2ZkL2hxZHMuCgoKUmVnYXJkcywKwqAgRmVsaXgKCgpPbiAyMDE3 LTExLTA3IDA0OjIzIEFNLCBaaG91LCBEYXZpZChDaHVuTWluZykgd3JvdGU6Cj4KPiBJIGdvdCB0 aGUgaW5mb21hdGlvbiBhYm91dCB0aGlzIGlzc3VlOgo+Cj4gIgo+Cj4gIyBJZiBJIGluc3RhbGwg IzQ5MTk2MyAoZmFpbGVkIGluIHRoZSByZXBvcnQpIHdpdGgg4oCcLi9hbWRncHUtcHJvLWluc3Rh bGwKPiAteSAtLW9wZW5jbD1sZWdhY3nigJ0gY29tbWFuZCwgdGhlIHRlc3QgcGFzc2VkLiBJdCBm YWlsZWQgd2hlbiByb2NtIGlzCj4gYWxzbyBpbnN0YWxsZWQgd2l0aCDigJwuL2FtZGdwdS1wcm8t aW5zdGFsbCAteSAtLW9wZW5jbD1sZWdhY3kscm9jbeKAnQo+IGNvbW1hbmQuIgo+Cj4gU28gSSBn dWVzcyB0aGUgaHVuZyBpcyByZWxhdGVkIHRvIHRoZSBwaXBlIGlzIHVzZWQgYm90aCBPUkNBIGFu ZCByb2NtLgo+IEJ1dCBGZWxpeCBzYWlkIHRoZXkgZG9udCBzdXBwb3J0IHJvY20gb24gVG9uZ2Es IHRoYXQgY291bGQgbWVhbiB0aGlzCj4gaXNzdWUgZG9lc24ndCBtYXR0ZXIgY3VycmVudGx5Lgo+ Cj4KPiBSZWdhcmRzLAo+Cj4gRGF2aWTCoCBaaG91Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAqRnJv bToqIEFuZHJlcyBSb2RyaWd1ZXogPGFuZHJlc3g3QGdtYWlsLmNvbT4KPiAqU2VudDoqIFR1ZXNk YXksIE5vdmVtYmVyIDcsIDIwMTcgMzoyNjozOCBQTQo+ICpUbzoqIFpob3UsIERhdmlkKENodW5N aW5nKQo+ICpDYzoqIGFtZC1nZnggbGlzdDsgRGV1Y2hlciwgQWxleGFuZGVyCj4gKlN1YmplY3Q6 KiBSZTogW1BBVENIIDEvMl0gZHJtL2FtZGdwdTogdXNlIG11bHRpcGlwZSBjb21wdXRlIHBvbGlj eSBvbgo+IG5vbiBQTDExIGFzaWNzCj4gwqAKPiBEbyB5b3UgaGF2ZSBhbnkgd29yayBhY3R1YWxs eSBnb2luZyBpbnRvIG11bHRpcGxlIHBpcGVzPyBNeQo+IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBv cGVuY2wgd2lsbCBvbmx5IHVzZSBvbmUgcXVldWUgYXQgYSB0aW1lIChidXQKPiBJJ20gbm90IHJl YWxseSBjZXJ0YWluIGFib3V0IHRoYXQpLgo+Cj4gV2hhdCB5b3UgY2FuIGFsc28gY2hlY2sgaXMg aWYgdGhlIGFwcCB3b3JrcyBjb3JyZWN0bHkgd2hlbiBpdCBleGVjdXRlZAo+IG9uIHBpcGUwLCBh bmQgaWYgaXQgaGFuZ3Mgb24gcGlwZSAxKy4gSSByZW1vdmVkIGFsbCB0aGUgbG9jYXRpb25zCj4g d2hlcmUgcGlwZTAgd2FzIGhhcmRjb2RlZCBpbiB0aGUgb3BlbiBkcml2ZXIsIGJ1dCBpdCBpcyBw b3NzaWJsZSBpdCBpcwo+IHN0aWxsIGhhcmRjb2RlZCBzb21ld2hlcmUgb24gdGhlIGNsb3NlZCBz dGFjay4KPgo+IFJlZ2FyZHMsCj4gQW5kcmVzwqAKPgo+IE9uIE5vdiA2LCAyMDE3IDEwOjE5IFBN LCAiWmhvdSwgRGF2aWQoQ2h1bk1pbmcpIiA8RGF2aWQxLlpob3VAYW1kLmNvbQo+IDxtYWlsdG86 RGF2aWQxLlpob3VAYW1kLmNvbT4+IHdyb3RlOgo+Cj4gICAgIFRoZW4gc255Y2hyb25pemF0aW9u IHNob3VsZCBoYXZlIG5vIHByb2JsZW0sIGl0IG1heWJlIHJlbGF0ZSB0bwo+ICAgICBtdWx0aXBp cGUgaHcgc2V0dGluZyBpc3N1ZS4KPgo+Cj4gICAgIFJlZ2FyZHMsCj4KPiAgICAgRGF2aWQgWmhv dQo+Cj4gICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgICAqRnJvbToqIEFuZHJlcyBSb2RyaWd1ZXog PGFuZHJlc3g3QGdtYWlsLmNvbQo+ICAgICA8bWFpbHRvOmFuZHJlc3g3QGdtYWlsLmNvbT4+Cj4g ICAgICpTZW50OiogVHVlc2RheSwgTm92ZW1iZXIgNywgMjAxNyAyOjAwOjU3IEFNCj4gICAgICpU bzoqIFpob3UsIERhdmlkKENodW5NaW5nKTsgYW1kLWdmeCBsaXN0Cj4gICAgICpDYzoqIERldWNo ZXIsIEFsZXhhbmRlcgo+ICAgICAqU3ViamVjdDoqIFJlOiBbUEFUQ0ggMS8yXSBkcm0vYW1kZ3B1 OiB1c2UgbXVsdGlwaXBlIGNvbXB1dGUKPiAgICAgcG9saWN5IG9uIG5vbiBQTDExIGFzaWNzCj4g ICAgIMKgCj4gICAgIFNvcnJ5IG15IG1haWwgY2xpZW50IHNlZW1zIHRvIGhhdmUgYmxvd24gdXAu IE15IHJlcGx5IGdvdCBjdXQgb2ZmLAo+ICAgICBoZXJlIGlzIHRoZSBmdWxsIHZlcnNpb246Cj4K Pgo+Cj4gICAgIE9uIDIwMTctMTEtMDYgMDE6NDkgQU0sIENodW5taW5nIFpob3Ugd3JvdGU6Cj4g ICAgID4gSGkgQW5kcmVzLAo+ICAgICA+Cj4gICAgIEhpIERhdmlkLAo+Cj4gICAgID4gV2l0aCB5 b3VyIHRoaXMgcGF0Y2gsIE9DTHBlcmYgaHVuZy4KPiAgICAgSXMgdGhpcyBvbiBhbGwgQVNJQ3Mg b3IganVzdCBhIHNwZWNpZmljIG9uZT8KPgo+ICAgICA+Cj4gICAgID4gQ291bGQgeW91IGV4cGxh aW4gbW9yZT8KPiAgICAgPgo+ICAgICA+IElmIEkgYW0gY29ycmVjdGx5LCB0aGUgZGlmZmVyZW5j ZSBvZiB3aXRoIGFuZCB3aXRob3V0IHRoaXMgcGF0Y2ggaXMKPiAgICAgPiBzZXR0aW5nIGZpcnN0 IHR3byBxdWV1ZSBvciBzZXR0aW5nIGFsbCBxdWV1ZXMgb2YgcGlwZTAgdG8KPiAgICAgcXVldWVf Yml0bWFwLgo+ICAgICBJdCBpcyBzbGlnaHRseSBkaWZmZXJlbnQuIFdpdGggdGhpcyBwYXRjaCB3 ZSB3aWxsIGFsc28gdXNlIHRoZSBmaXJzdAo+ICAgICB0d28gcXVldWVzIG9mIGFsbCBwaXBlcywg bm90IGp1c3QgcGlwZSAwOwo+Cj4gICAgIFByZS1wYXRjaDoKPgo+ICAgICB8LVBpcGUgMC18fC1Q aXBlIDEtfHwtUGlwZSAyLXx8LVBpcGUgMy18Cj4gICAgIMKgMTExMTExMTHCoCAwMDAwMDAwMMKg IDAwMDAwMDAwwqAgMDAwMDAwMDAKPgo+ICAgICBQb3N0LXBhdGNoOgo+Cj4gICAgIHwtUGlwZSAw LXx8LVBpcGUgMS18fC1QaXBlIDItfHwtUGlwZSAzLXwKPiAgICAgwqAxMTAwMDAwMMKgIDExMDAw MDAwwqAgMTEwMDAwMDDCoCAxMTAwMDAwMAo+Cj4gICAgIFdoYXQgdGhpcyBtZWFucyBpcyB0aGF0 IHdlIGFyZSBhbGxvd2luZyByZWFsIG11bHRpdGhyZWFkaW5nIGZvcgo+ICAgICBjb21wdXRlLiBK b2JzIG9uIGRpZmZlcmVudCBwaXBlcyBhbGxvdyBmb3IgcGFyYWxsZWwgZXhlY3V0aW9uIG9mIHdv cmsuCj4gICAgIEpvYnMgb24gdGhlIHNhbWUgcGlwZSAoYnV0IGRpZmZlcmVudCBxdWV1ZXMpIHVz ZSB0aW1lc2xpY2luZyB0byBzaGFyZQo+ICAgICB0aGUgaGFyZHdhcmUuCj4KPgo+ICAgICA+Cj4g ICAgID4gVGhlbiBVTUQgY2FuIHVzZSBkaWZmZXJlbnQgbnVtYmVyIHF1ZXVlIHRvIHN1Ym1pdCBj b21tYW5kIGZvcgo+ICAgICBjb21wdXRlCj4gICAgID4gc2VsZWN0ZWQgYnkgYW1kZ3B1X3F1ZXVl X21ncl9tYXAuCj4gICAgID4KPiAgICAgPiBJIGNoZWNrZWQgYW1kZ3B1X3F1ZXVlX21ncl9tYXAg aW1wbGVtZW50YXRpb24swqAgQ1NfSU9DVEwgY2FuIG1hcAo+ICAgICB1c2VyCj4gICAgID4gcmlu ZyB0byBkaWZmZXJlbnQgaHcgcmluZyBkZXBlbmRpbmcgb24gYnVzeSBvciBpZGxlLCByaWdodD8K PiAgICAgWWVzLCB3aGVuIGEgcXVldWUgaXMgZmlyc3QgdXNlZCwgYW1kZ3B1X3F1ZXVlX21ncl9t YXAgd2lsbCBkZWNpZGUgd2hhdAo+ICAgICB0aGUgbWFwcGluZyBpcyBmb3IgYSB1c2VybW9kZSBy aW5nIHRvIGEga2VybmVsIHJpbmcgaWQuCj4KPiAgICAgPiBJZiB5ZXMsIEkgc2VlIGEgYnVnIGlu IGl0LCB3aGljaCB3aWxsIHJlc3VsdCBpbiBvdXIgc2NoZWRfZmVuY2Ugbm90Cj4gICAgID4gd29y ay4gT3VyIHNjaGVkIGZlbmNlIGFzc3VtZXMgdGhlIGpvYiB3aWxsIGJlIGV4ZWN1dGVkIGluIG9y ZGVyLAo+ICAgICB5b3VyCj4gICAgID4gbWFwcGluZyBxdWV1ZSBicmVha3MgdGhpcy4KPgo+ICAg ICBJIHRoaW5rIGhlcmUgeW91IG1lYW4gdGhhdCB3b3JrIHdpbGwgZXhlY3V0ZSBvdXQgb2Ygb3Jk ZXIgYmVjYXVzZSBpdAo+ICAgICB3aWxsIGdvIHRvIGRpZmZlcmVudCByaW5ncz8KPgo+ICAgICBU aGF0IHNob3VsZCBub3QgaGFwcGVuLCBzaW5jZSB0aGUgaWQgbWFwcGluZyBpcyBwZXJtYW5lbnQg b24gYQo+ICAgICBwZXItY29udGV4dCBiYXNpcy4gT25jZSBhIG1hcHBpbmcgaXMgZGVjaWRlZCwg aXQgd2lsbCBiZSBjYWNoZWQgZm9yCj4gICAgIHRoaXMgY29udGV4dCBzbyB0aGF0IHdlIGtlZXAg ZXhlY3V0aW9uIG9yZGVyIGd1YXJhbnRlZXMuIFNlZSB0aGUKPiAgICAgaWQtY2FjaGluZyBjb2Rl IGluIGFtZGdwdV9xdWV1ZV9tZ3IuYyBmb3IgcmVmZXJlbmNlLgo+Cj4gICAgIEFzIGxvbmcgYXMg dGhlIHVzZXJtb2RlIGtlZXBzIHN1Ym1pdHRpbmcgd29yayB0byB0aGUgc2FtZSByaW5nLCBpdAo+ ICAgICB3aWxsIGFsbCBiZSBleGVjdXRlZCBpbiBvcmRlciAoYWxsIGluIHRoZSBzYW1lIHJpbmcp LiBUaGVyZSBpcyBubwo+ICAgICBjaGFuZ2UgaW4gdGhpcyBndWFyYW50ZWUgY29tcGFyZWQgdG8g cHJlLXBhdGNoLiBOb3RlIHRoYXQgZXZlbiBiZWZvcmUKPiAgICAgdGhpcyBwYXRjaCBhbWRncHVf cXVldWVfbWdyX21hcCBoYXMgYmVlbiB1c2luZyBhbiBMUlUgcG9saWN5IGZvciBhCj4gICAgIGxv bmcgdGltZSBub3cuCj4KPiAgICAgUmVnYXJkcywKPiAgICAgQW5kcmVzCj4KPiAgICAgT24gTW9u LCBOb3YgNiwgMjAxNyBhdCAxMjo0NCBQTSwgQW5kcmVzIFJvZHJpZ3Vlego+ICAgICA8YW5kcmVz eDdAZ21haWwuY29tIDxtYWlsdG86YW5kcmVzeDdAZ21haWwuY29tPj4gd3JvdGU6Cj4gICAgID4K PiAgICAgPgo+ICAgICA+IE9uIDIwMTctMTEtMDYgMDE6NDkgQU0sIENodW5taW5nIFpob3Ugd3Jv dGU6Cj4gICAgID4+Cj4gICAgID4+IEhpIEFuZHJlcywKPiAgICAgPj4KPiAgICAgPgo+ICAgICA+ IEhpIERhdmlkLAo+ICAgICA+Cj4gICAgID4+IFdpdGggeW91ciB0aGlzIHBhdGNoLCBPQ0xwZXJm IGh1bmcuCj4gICAgID4KPiAgICAgPgo+ICAgICA+IElzIHRoaXMgb24gYWxsIEFTSUNzIG9yIGp1 c3QgYSBzcGVjaWZpYyBvbmU/Cj4gICAgID4KPiAgICAgPj4KPiAgICAgPj4gQ291bGQgeW91IGV4 cGxhaW4gbW9yZT8KPiAgICAgPj4KPiAgICAgPj4gSWYgSSBhbSBjb3JyZWN0bHksIHRoZSBkaWZm ZXJlbmNlIG9mIHdpdGggYW5kIHdpdGhvdXQgdGhpcyBwYXRjaCBpcwo+ICAgICA+PiBzZXR0aW5n IGZpcnN0IHR3byBxdWV1ZSBvciBzZXR0aW5nIGFsbCBxdWV1ZXMgb2YgcGlwZTAgdG8KPiAgICAg cXVldWVfYml0bWFwLgo+ICAgICA+Cj4gICAgID4KPiAgICAgPiBJdCBpcyBzbGlnaHRseSBkaWZm ZXJlbnQuIFdpdGggdGhpcyBwYXRjaCB3ZSB3aWxsIGFsc28gdXNlIHRoZQo+ICAgICBmaXJzdCB0 d28KPiAgICAgPiBxdWV1ZXMgb2YgYWxsIHBpcGVzLCBub3QganVzdCBwaXBlIDA7Cj4gICAgID4K PiAgICAgPiBQcmUtcGF0Y2g6Cj4gICAgID4KPiAgICAgPiB8LVBpcGUgMC18fC1QaXBlIDEtfHwt UGlwZSAyLXx8LVBpcGUgMy18Cj4gICAgID7CoCAxMTExMTExMcKgIDAwMDAwMDAwwqAgMDAwMDAw MDDCoCAwMDAwMDAwMAo+ICAgICA+Cj4gICAgID4gUG9zdC1wYXRjaDoKPiAgICAgPgo+ICAgICA+ IHwtUGlwZSAwLXx8LVBpcGUgMS18fC1QaXBlIDItfHwtUGlwZSAzLXwKPiAgICAgPsKgIDExMDAw MDAwwqAgMTEwMDAwMDDCoCAxMTAwMDAwMMKgIDExMDAwMDAwCj4gICAgID4KPiAgICAgPiBXaGF0 IHRoaXMgbWVhbnMgaXMgdGhhdCB3ZSBhcmUgYWxsb3dpbmcgcmVhbCBtdWx0aXRocmVhZGluZyBm b3IKPiAgICAgY29tcHV0ZS4KPiAgICAgPiBKb2JzIG9uIGRpZmZlcmVudCBwaXBlcyBhbGxvdyBm b3IgcGFyYWxsZWwgZXhlY3V0aW9uIG9mIHdvcmsuCj4gICAgIEpvYnMgb24gdGhlCj4gICAgID4g c2FtZSBwaXBlIChidXQgZGlmZmVyZW50IHF1ZXVlcykgdXNlIHRpbWVzbGljaW5nIHRvIHNoYXJl IHRoZQo+ICAgICBoYXJkd2FyZS4KPiAgICAgPgo+ICAgICA+Cj4gICAgID4KPiAgICAgPj4KPiAg ICAgPj4gVGhlbiBVTUQgY2FuIHVzZSBkaWZmZXJlbnQgbnVtYmVyIHF1ZXVlIHRvIHN1Ym1pdCBj b21tYW5kIGZvcgo+ICAgICBjb21wdXRlCj4gICAgID4+IHNlbGVjdGVkIGJ5IGFtZGdwdV9xdWV1 ZV9tZ3JfbWFwLgo+ICAgICA+Pgo+ICAgICA+PiBJIGNoZWNrZWQgYW1kZ3B1X3F1ZXVlX21ncl9t YXAgaW1wbGVtZW50YXRpb24swqAgQ1NfSU9DVEwgY2FuCj4gICAgIG1hcCB1c2VyIHJpbmcKPiAg ICAgPj4gdG8gZGlmZmVyZW50IGh3IHJpbmcgZGVwZW5kaW5nIG9uIGJ1c3kgb3IgaWRsZSwgcmln aHQ/Cj4gICAgID4+Cj4gICAgID4+IElmIHllcywgSSBzZWUgYSBidWcgaW4gaXQsIHdoaWNoIHdp bGwgcmVzdWx0IGluIG91ciBzY2hlZF9mZW5jZQo+ICAgICBub3Qgd29yay4KPiAgICAgPj4gT3Vy IHNjaGVkIGZlbmNlIGFzc3VtZXMgdGhlIGpvYiB3aWxsIGJlIGV4ZWN1dGVkIGluIG9yZGVyLCB5 b3VyCj4gICAgIG1hcHBpbmcKPiAgICAgPj4gcXVldWUgYnJlYWtzIHRoaXMuCj4gICAgID4+Cj4g ICAgID4+Cj4gICAgID4+IFJlZ2FyZHMsCj4gICAgID4+Cj4gICAgID4+IERhdmlkIFpob3UKPiAg ICAgPj4KPiAgICAgPj4KPiAgICAgPj4gT24gMjAxN+W5tDA55pyIMjfml6UgMDA6MjIsIEFuZHJl cyBSb2RyaWd1ZXogd3JvdGU6Cj4gICAgID4+Pgo+ICAgICA+Pj4gQSBwZXJmb3JtYW5jZSByZWdy ZXNzaW9uIGZvciBPcGVuQ0wgdGVzdHMgb24gUG9sYXJpczExIGhhZAo+ICAgICB0aGlzIGZlYXR1 cmUKPiAgICAgPj4+IGRpc2FibGVkIGZvciBhbGwgYXNpY3MuCj4gICAgID4+Pgo+ICAgICA+Pj4g SW5zdGVhZCwgZGlzYWJsZSBpdCBzZWxlY3RpdmVseSBvbiB0aGUgYWZmZWN0ZWQgYXNpY3MuCj4g ICAgID4+Pgo+ICAgICA+Pj4gU2lnbmVkLW9mZi1ieTogQW5kcmVzIFJvZHJpZ3VleiA8YW5kcmVz eDdAZ21haWwuY29tCj4gICAgIDxtYWlsdG86YW5kcmVzeDdAZ21haWwuY29tPj4KPiAgICAgPj4+ IC0tLQo+ICAgICA+Pj7CoMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZngu YyB8IDE0ICsrKysrKysrKysrKy0tCj4gICAgID4+PsKgwqAgMSBmaWxlIGNoYW5nZWQsIDEyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4gICAgID4+Pgo+ICAgICA+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZnguYwo+ICAgICA+Pj4gYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2Z4LmMKPiAgICAgPj4+IGluZGV4IDRm NmM2OGYuLjNkNzZlNzYgMTAwNjQ0Cj4gICAgID4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZ2Z4LmMKPiAgICAgPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9nZnguYwo+ICAgICA+Pj4gQEAgLTEwOSw5ICsxMDksMjAgQEAgdm9pZCBh bWRncHVfZ2Z4X3BhcnNlX2Rpc2FibGVfY3UodW5zaWduZWQKPiAgICAgKm1hc2ssCj4gICAgID4+ PiB1bnNpZ25lZCBtYXhfc2UsIHVuc2lnbmVkIG1heF9zCj4gICAgID4+PsKgwqDCoMKgwqDCoCB9 Cj4gICAgID4+PsKgwqAgfQo+ICAgICA+Pj4gK3N0YXRpYyBib29sIGFtZGdwdV9nZnhfaXNfbXVs dGlwaXBlX2NhcGFibGUoc3RydWN0Cj4gICAgIGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICAgID4+ PiArewo+ICAgICA+Pj4gK8KgwqDCoCAvKiBGSVhNRTogc3ByZWFkaW5nIHRoZSBxdWV1ZXMgYWNy b3NzIHBpcGVzIGNhdXNlcyBwZXJmCj4gICAgIHJlZ3Jlc3Npb25zCj4gICAgID4+PiArwqDCoMKg wqAgKiBvbiBQT0xBUklTMTEgY29tcHV0ZSB3b3JrbG9hZHMgKi8KPiAgICAgPj4+ICvCoMKgwqAg aWYgKGFkZXYtPmFzaWNfdHlwZSA9PSBDSElQX1BPTEFSSVMxMSkKPiAgICAgPj4+ICvCoMKgwqDC oMKgwqDCoCByZXR1cm4gZmFsc2U7Cj4gICAgID4+PiArCj4gICAgID4+PiArwqDCoMKgIHJldHVy biBhZGV2LT5nZngubWVjLm51bV9tZWMgPiAxOwo+ICAgICA+Pj4gK30KPiAgICAgPj4+ICsKPiAg ICAgPj4+wqDCoCB2b2lkIGFtZGdwdV9nZnhfY29tcHV0ZV9xdWV1ZV9hY3F1aXJlKHN0cnVjdCBh bWRncHVfZGV2aWNlCj4gICAgICphZGV2KQo+ICAgICA+Pj7CoMKgIHsKPiAgICAgPj4+wqDCoMKg wqDCoMKgIGludCBpLCBxdWV1ZSwgcGlwZSwgbWVjOwo+ICAgICA+Pj4gK8KgwqDCoCBib29sIG11 bHRpcGlwZV9wb2xpY3kgPQo+ICAgICBhbWRncHVfZ2Z4X2lzX211bHRpcGlwZV9jYXBhYmxlKGFk ZXYpOwo+ICAgICA+Pj7CoMKgwqDCoMKgwqAgLyogcG9saWN5IGZvciBhbWRncHUgY29tcHV0ZSBx dWV1ZSBvd25lcnNoaXAgKi8KPiAgICAgPj4+wqDCoMKgwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBB TURHUFVfTUFYX0NPTVBVVEVfUVVFVUVTOyArK2kpIHsKPiAgICAgPj4+IEBAIC0xMjUsOCArMTM2 LDcgQEAgdm9pZCBhbWRncHVfZ2Z4X2NvbXB1dGVfcXVldWVfYWNxdWlyZShzdHJ1Y3QKPiAgICAg Pj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICAgID4+PsKgwqDCoMKgwqDCoMKgwqDCoMKgIGlm IChtZWMgPj0gYWRldi0+Z2Z4Lm1lYy5udW1fbWVjKQo+ICAgICA+Pj7CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGJyZWFrOwo+ICAgICA+Pj4gLcKgwqDCoMKgwqDCoMKgIC8qIEZJWE1FOiBz cHJlYWRpbmcgdGhlIHF1ZXVlcyBhY3Jvc3MgcGlwZXMgY2F1c2VzIHBlcmYKPiAgICAgPj4+IHJl Z3Jlc3Npb25zICovCj4gICAgID4+PiAtwqDCoMKgwqDCoMKgwqAgaWYgKDApIHsKPiAgICAgPj4+ ICvCoMKgwqDCoMKgwqDCoCBpZiAobXVsdGlwaXBlX3BvbGljeSkgewo+ICAgICA+Pj7CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIHBvbGljeTogYW1kZ3B1IG93bnMgdGhlIGZpcnN0IHR3 byBxdWV1ZXMgb2YKPiAgICAgdGhlIGZpcnN0Cj4gICAgID4+PiBNRUMgKi8KPiAgICAgPj4+wqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAobWVjID09IDAgJiYgcXVldWUgPCAyKQo+ICAg ICA+Pj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2V0X2JpdChpLCBhZGV2 LT5nZngubWVjLnF1ZXVlX2JpdG1hcCk7Cj4gICAgID4+Cj4gICAgID4+Cj4gICAgID4KPgo+Cj4K PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGFtZC1n ZnggbWFpbGluZyBsaXN0Cj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBs aXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=