From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [RFC v3] drm/i915: Select engines via class and instance in execbuffer2 Date: Thu, 18 May 2017 14:30:56 +0100 Message-ID: References: <20170427092539.GC5535@nuc-i3427.alporthouse.com> <20170517154057.20350-1-tvrtko.ursulin@linux.intel.com> <20170517164408.GT26693@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170517164408.GT26693@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , Tvrtko Ursulin , Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin , Ben Widawsky , Daniel Vetter , Joonas Lahtinen , Jon Bloomfield , Daniel Charles , "Rogozhkin, Dmitry V" , Oscar Mateo , "Gong, Zhipeng" , intel-vaapi-media@lists.01.org, mesa-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE3LzA1LzIwMTcgMTc6NDQsIENocmlzIFdpbHNvbiB3cm90ZToKPiBPbiBXZWQsIE1heSAx NywgMjAxNyBhdCAwNDo0MDo1N1BNICswMTAwLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToKPj4gRnJv bTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4KPj4gQnVpbGRp bmcgb24gdG9wIG9mIHRoZSBwcmV2aW91cyBwYXRjaCB3aGljaCBleHBvcnRlZCB0aGUgY29uY2Vw dAo+PiBvZiBlbmdpbmUgY2xhc3NlcyBhbmQgaW5zdGFuY2VzLCB3ZSBjYW4gYWxzbyB1c2UgdGhp cyBpbnN0ZWFkIG9mCj4+IHRoZSBjdXJyZW50IGF3a3dhcmQgZW5naW5lIHNlbGVjdGlvbiB1QVBJ Lgo+Pgo+PiBUaGlzIGlzIHByaW1hcmlseSBpbnRlcmVzdGluZyBmb3IgdGhlIFZDUyBlbmdpbmUg c2VsZWN0aW9uIHdoaWNoCj4+IGlzIGEpIGN1cnJlbnRseSBkb25lIHZpYSBkaXNqb2ludCBzZXQg b2YgZmxhZ3MsIGFuZCBiKSB0aGUKPj4gY3VycmVudCBJOTE1X0VYRUNfQlNEIGZsYWdzIGhhcyBk aWZmZXJlbnQgc2VtYW50aWNzIGRlcGVuZGluZyBvbgo+PiB0aGUgdW5kZXJseWluZyBoYXJkd2Fy ZSB3aGljaCBpcyBiYWQuCj4+Cj4+IFByb3Bvc2VkIGlkZWEgaGVyZSBpcyB0byByZXNlcnZlIDE2 LWJpdHMgb2YgZmxhZ3MsIHRvIHBhc3MgaW4KPj4gdGhlIGVuZ2luZSBjbGFzcyBhbmQgaW5zdGFu Y2UgKDggYml0cyBlYWNoKSwgYW5kIGEgbmV3IGZsYWcKPj4gbmFtZWQgSTkxNV9FWEVDX0NMQVNT X0lOU1RBQ0UgdG8gdGVsbCB0aGUga2VybmVsIHRoaXMgbmV3IGVuZ2luZQo+PiBzZWxlY3Rpb24g QVBJIGlzIGluIHVzZS4KPj4KPj4gVGhlIG5ldyB1QVBJIGFsc28gcmVtb3ZlcyBhY2Nlc3MgdG8g dGhlIHdlYWsgVkNTIGVuZ2luZQo+PiBiYWxhbmNpbmcgYXMgY3VycmVudGx5IGV4aXN0aW5nIGlu IHRoZSBkcml2ZXIuCj4+Cj4+IEV4YW1wbGUgdXNhZ2UgdG8gc2VuZCBhIGNvbW1hbmQgdG8gVkNT MDoKPj4KPj4gICBlYi5mbGFncyA9IGk5MTVfZXhlY2J1ZmZlcjJfZW5naW5lKERSTV9JOTE1X0VO R0lORV9DTEFTU19WSURFT19ERUNPREUsIDApOwo+Pgo+PiBPciB0byBzZW5kIGEgY29tbWFuZCB0 byBWQ1MxOgo+Pgo+PiAgIGViLmZsYWdzID0gaTkxNV9leGVjYnVmZmVyMl9lbmdpbmUoRFJNX0k5 MTVfRU5HSU5FX0NMQVNTX1ZJREVPX0RFQ09ERSwgMSk7Cj4+Cj4+IHYyOgo+PiAgKiBGaXggdW5r bm93biBmbGFncyBtYXNrLgo+PiAgKiBVc2UgSTkxNV9FWEVDX1JJTkdfTUFTSyBmb3IgY2xhc3Mu IChDaHJpcyBXaWxzb24pCj4+Cj4+IHYzOgo+PiAgKiBBZGQgYSBtYXAgZm9yIGZhc3QgY2xhc3Mt aW5zdGFuY2UgZW5naW5lIGxvb2t1cC4gKENocmlzIFdpbHNvbikKPj4KPj4gU2lnbmVkLW9mZi1i eTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4gQ2M6IEJlbiBX aWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KPj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPgo+PiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRl bC5jb20+Cj4+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRl bC5jb20+Cj4+IENjOiBKb24gQmxvb21maWVsZCA8am9uLmJsb29tZmllbGRAaW50ZWwuY29tPgo+ PiBDYzogRGFuaWVsIENoYXJsZXMgPGRhbmllbC5jaGFybGVzQGludGVsLmNvbT4KPj4gQ2M6ICJS b2dvemhraW4sIERtaXRyeSBWIiA8ZG1pdHJ5LnYucm9nb3poa2luQGludGVsLmNvbT4KPj4gQ2M6 IE9zY2FyIE1hdGVvIDxvc2Nhci5tYXRlb0BpbnRlbC5jb20+Cj4+IENjOiAiR29uZywgWmhpcGVu ZyIgPHpoaXBlbmcuZ29uZ0BpbnRlbC5jb20+Cj4+IENjOiBpbnRlbC12YWFwaS1tZWRpYUBsaXN0 cy4wMS5vcmcKPj4gQ2M6IG1lc2EtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiAtLS0KPj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8ICAxICsKPj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8IDMwICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAg ICAgICAgICAgIHwgIDMgKysrCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVf Y3MuYyAgICAgfCAgNyArKysrKysrCj4+ICBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggICAg ICAgICAgICAgICAgfCAxMSArKysrKysrKysrLQo+PiAgNSBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBp bmRleCA1ZGZhNGExMmU2NDcuLjdiZjRmZDQyNDgwYyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4+IEBAIC0yMDY2LDYgKzIwNjYsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7 Cj4+ICAJc3RydWN0IHBjaV9kZXYgKmJyaWRnZV9kZXY7Cj4+ICAJc3RydWN0IGk5MTVfZ2VtX2Nv bnRleHQgKmtlcm5lbF9jb250ZXh0Owo+PiAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZVtJOTE1X05VTV9FTkdJTkVTXTsKPj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmVf Y2xhc3NbTUFYX0VOR0lORV9DTEFTUyArIDFdW01BWF9FTkdJTkVfSU5TVEFOQ0UgKyAxXTsKPj4g IAlzdHJ1Y3QgaTkxNV92bWEgKnNlbWFwaG9yZTsKPj4KPj4gIAlzdHJ1Y3QgZHJtX2RtYV9oYW5k bGUgKnN0YXR1c19wYWdlX2RtYWg7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9l eGVjYnVmZmVyLmMKPj4gaW5kZXggYWYxOTY1Nzc0ZTdiLi5jMWFkNDlhYjY0Y2QgMTAwNjQ0Cj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPj4gQEAgLTE0OTIs NiArMTQ5MiwzMyBAQCBnZW44X2Rpc3BhdGNoX2JzZF9lbmdpbmUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+PiAgCXJldHVybiBmaWxlX3ByaXYtPmJzZF9lbmdpbmU7Cj4+ICB9 Cj4+Cj4+ICtleHRlcm4gdTggdXNlcl9jbGFzc19tYXBbRFJNX0k5MTVfRU5HSU5FX0NMQVNTX01B WF07Cj4+ICsKPj4gK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpnZXRfZW5naW5lX2Ns YXNzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+PiArCQkJCQkJdTggY2xhc3MsIHU4 IGluc3RhbmNlKQo+PiArewo+PiArCWlmIChjbGFzcyA+IE1BWF9FTkdJTkVfQ0xBU1MgfHwgaW5z dGFuY2UgPiBNQVhfRU5HSU5FX0lOU1RBTkNFKQo+PiArCQlyZXR1cm4gTlVMTDsKPj4gKwo+PiAr CXJldHVybiBpOTE1LT5lbmdpbmVfY2xhc3NbY2xhc3NdW2luc3RhbmNlXTsKPj4gK30KPgo+IEJl IGJvbGQgbWFrZSB0aGlzIHRoaXMgYW4gaW50ZWxfZW5naW5lX2xvb2t1cCgpLCBJIGZvcnNlZSBz b21lIG90aGVyCj4gdXNlcnMgYXBwZWFyaW5nIHZlcnkgc2hvcnRseS4KClN0aWxsIHN0YXRpYyBv ciB5b3Ugd2FudCB0byBleHBvcnQgaXQgc3RyYWlnaHQgYXdheT8gUHJlZmVyZW5jZSBmb3IgCndo ZXJlIHRvIHB1dCBpdD8gSGVyZSBvciBpbnRlbF9lbmdpbmVfY3MuYz8KCj4+ICtzdGF0aWMgc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqCj4+ICtlYl9zZWxlY3RfZW5naW5lX2NsYXNzX2luc3RhbmNl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+PiArCQkJCXN0cnVjdCBkcm1faTkxNV9n ZW1fZXhlY2J1ZmZlcjIgKmFyZ3MpCj4+ICt7Cj4+ICsJdTggY2xhc3MsIGluc3RhbmNlOwo+PiAr Cj4+ICsJY2xhc3MgPSBhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19SSU5HX01BU0s7Cj4+ICsJaWYg KGNsYXNzID49IERSTV9JOTE1X0VOR0lORV9DTEFTU19NQVgpCj4+ICsJCXJldHVybiBOVUxMOwo+ PiArCj4+ICsJaW5zdGFuY2UgPSAoYXJncy0+ZmxhZ3MgPj4gSTkxNV9FWEVDX0lOU1RBTkNFX1NI SUZUKSAmJgo+PiArCQkgICBJOTE1X0VYRUNfSU5TVEFOQ0VfTUFTSzsKPj4gKwo+PiArCXJldHVy biBnZXRfZW5naW5lX2NsYXNzKGk5MTUsIHVzZXJfY2xhc3NfbWFwW2NsYXNzXSwgaW5zdGFuY2Up Owo+PiArfQo+PiArCj4+ICAjZGVmaW5lIEk5MTVfVVNFUl9SSU5HUyAoNCkKPj4KPj4gIHN0YXRp YyBjb25zdCBlbnVtIGludGVsX2VuZ2luZV9pZCB1c2VyX3JpbmdfbWFwW0k5MTVfVVNFUl9SSU5H UyArIDFdID0gewo+PiBAQCAtMTUxMCw2ICsxNTM3LDkgQEAgZWJfc2VsZWN0X2VuZ2luZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAJdW5zaWduZWQgaW50IHVzZXJfcmlu Z19pZCA9IGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX1JJTkdfTUFTSzsKPj4gIAlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4+Cj4+ICsJaWYgKGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVD X0NMQVNTX0lOU1RBTkNFKQo+PiArCQlyZXR1cm4gZWJfc2VsZWN0X2VuZ2luZV9jbGFzc19pbnN0 YW5jZShkZXZfcHJpdiwgYXJncyk7Cj4+ICsKPj4gIAlpZiAodXNlcl9yaW5nX2lkID4gSTkxNV9V U0VSX1JJTkdTKSB7Cj4+ICAJCURSTV9ERUJVRygiZXhlY2J1ZiB3aXRoIHVua25vd24gcmluZzog JXVcbiIsIHVzZXJfcmluZ19pZCk7Cj4+ICAJCXJldHVybiBOVUxMOwo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKPj4gaW5kZXggZWUxNDRlYzU3OTM1Li5hM2I1OTA0M2I5OTEgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiBAQCAtOTIsNiArOTIsOSBAQCBzdGF0aWMgaW5saW5lIGJv b2wgaTkxNV9tbWlvX3JlZ192YWxpZChpOTE1X3JlZ190IHJlZykKPj4gICNkZWZpbmUgVklERU9f RU5IQU5DRU1FTlRfQ0xBU1MJMgo+PiAgI2RlZmluZSBDT1BZX0VOR0lORV9DTEFTUwkzCj4+ICAj ZGVmaW5lIE9USEVSX0NMQVNTCQk0Cj4+ICsjZGVmaW5lIE1BWF9FTkdJTkVfQ0xBU1MJNAo+PiAr Cj4+ICsjZGVmaW5lIE1BWF9FTkdJTkVfSU5TVEFOQ0UJMQo+Cj4gV2UgYWxzbyBuZWVkIHRoZSBu YW1lcyBpbiB0aGUgdWFwaS5oIGFzIHdlbGwuIERvIHdlIHdhbnQgdG8gbWVudGlvbgo+IE9USEVS X0NMQVNTIGJlZm9yZSBpdCBpcyBkZWZpbmVkPyBJIHRydXN0IHlvdXIgY3J5c3RhbCBiYWxsLgoK SSBoYXZlIG1lbnRpb25lZCBpdCBqdXN0IGJ5IHRoZSB2aXJ0dWUgb2YgaXQgZXhpc3RpbmcgaW4g aTkxNV9yZWcuaCAKQ3J5c3RhbCBiYWxsIGlzIG90aGVyd2lzZSBxdWlldC4KCj4gQW11c2luZ2x5 IEkgbm90aWNlIHRoYXQgeW91IGRvIGNsYWltIHRoYXQgeW91IGhhdmUgdGhlc2UgbmFtZXMgaW4g dGhlCj4gY2hhbmdlbG9nLiA6KSBXZSBkb24ndCBuZWVkIERSTV9JOTE1IGFsbCB0aGUgdGltZS4g STkxNV9FTkdJTkVfQ0xBU1MgaXMKPiBnb2luZyB0byBiZSB1bmlxdWUsIGF0IGxlYXN0IGZvciB0 aG9zZSB1c2VycyBvZiBpOTE1X2RybS5oCgpUaGV5IGFyZSBhbGwgdGhlcmUgY291cnRlc3kgb2Yg dGhlIHByZXZpb3VzIHBhdGNoLgoKSSB3aWxsIGRyb3AgdGhlIERSTV8gcHJlZml4IHRocm91Z2hv dXQuCgo+Cj4+ICAvKiBQQ0kgY29uZmlnIHNwYWNlICovCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2VuZ2luZV9jcy5jCj4+IGluZGV4IDc1NjZjZjQ4MDEyZi4uYzVhZDUxYzQzZDIzIDEw MDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwo+PiBAQCAtMjI1LDcg KzIyNSwxNCBAQCBpbnRlbF9lbmdpbmVfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+Pgo+PiAgCUFUT01JQ19JTklUX05PVElGSUVSX0hFQUQoJmVuZ2luZS0+Y29udGV4 dF9zdGF0dXNfbm90aWZpZXIpOwo+Pgo+PiArCWlmIChXQVJOX09OKGluZm8tPmNsYXNzID4gTUFY X0VOR0lORV9DTEFTUyB8fAo+PiArCQkgICAgaW5mby0+aW5zdGFuY2UgPiBNQVhfRU5HSU5FX0lO U1RBTkNFIHx8Cj4+ICsJCSAgICBkZXZfcHJpdi0+ZW5naW5lX2NsYXNzW2luZm8tPmNsYXNzXVtp bmZvLT5pbnN0YW5jZV0pKQo+Cj4gU3ByZWFkIHRoZXNlIG91dCBvciBhZGQgYSBtZXNzYWdlIHRl bGxpbmcgd2hhdCB3YXMgd3JvbmcuCgpDYW4gZG8sIGJ1dCBJIGNvbnNpZGVyZWQgdGhlc2UgdG8g YmUgc3VjaCBhIGJhc2ljIHByb2dyYW1taW5nIGVycm9ycyAKd2hpY2ggc2hvdWxkIGJlIGNhdWdo dCBkdXJpbmcgZGV2ZWxvcG1lbnQuIE9ubHkgdGhpbmcgd2hpY2ggcHJldmVudGVkIG1lIApmcm9t IHB1dHRpbmcgaW4gdW5kZXIgdGhlIEdFTV9CVUdfT04gaXMgdGhlIGZhY3Qgc29tZW9uZSBjb3Vs ZCBub3QgaGF2ZSAKaXQgZW5hYmxlZCBhbmQgdGhhdCB0aGlzIGZ1bmN0aW9uIGNhbiBhbHJlYWR5 IGhhbmRsZSBmYWlsdXJlcy4KCj4+ICsJCXJldHVybiAtRUlOVkFMOwo+PiArCj4+ICsJZGV2X3By aXYtPmVuZ2luZV9jbGFzc1tpbmZvLT5jbGFzc11baW5mby0+aW5zdGFuY2VdID0gZW5naW5lOwo+ PiAgCWRldl9wcml2LT5lbmdpbmVbaWRdID0gZW5naW5lOwo+PiArCj4+ICAJcmV0dXJuIDA7Cj4+ ICB9Cj4+Cj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNs dWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPj4gaW5kZXggMmFjNjY2N2U1N2VhLi42YTI2YmRmNWU2 ODQgMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+PiArKysgYi9p bmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPj4gQEAgLTkwNiw3ICs5MDYsMTIgQEAgc3RydWN0 IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiB7Cj4+ICAgKi8KPj4gICNkZWZpbmUgSTkxNV9FWEVD X0ZFTkNFX09VVAkJKDE8PDE3KQo+Pgo+PiAtI2RlZmluZSBfX0k5MTVfRVhFQ19VTktOT1dOX0ZM QUdTICgtKEk5MTVfRVhFQ19GRU5DRV9PVVQ8PDEpKQo+PiArI2RlZmluZSBJOTE1X0VYRUNfQ0xB U1NfSU5TVEFOQ0UJKDE8PDE4KQo+PiArCj4+ICsjZGVmaW5lIEk5MTVfRVhFQ19JTlNUQU5DRV9T SElGVAkoMTkpCj4+ICsjZGVmaW5lIEk5MTVfRVhFQ19JTlNUQU5DRV9NQVNLCQkoMHhmZiA8PCBJ OTE1X0VYRUNfSU5TVEFOQ0VfU0hJRlQpCj4+ICsKPj4gKyNkZWZpbmUgX19JOTE1X0VYRUNfVU5L Tk9XTl9GTEFHUyAoLSgoMSA8PCAyNykgPDwgMSkpCj4+Cj4+ICAjZGVmaW5lIEk5MTVfRVhFQ19D T05URVhUX0lEX01BU0sJKDB4ZmZmZmZmZmYpCj4+ICAjZGVmaW5lIGk5MTVfZXhlY2J1ZmZlcjJf c2V0X2NvbnRleHRfaWQoZWIyLCBjb250ZXh0KSBcCj4+IEBAIC05MTQsNiArOTE5LDEwIEBAIHN0 cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgewo+PiAgI2RlZmluZSBpOTE1X2V4ZWNidWZm ZXIyX2dldF9jb250ZXh0X2lkKGViMikgXAo+PiAgCSgoZWIyKS5yc3ZkMSAmIEk5MTVfRVhFQ19D T05URVhUX0lEX01BU0spCj4+Cj4+ICsjZGVmaW5lIGk5MTVfZXhlY2J1ZmZlcjJfZW5naW5lKGNs YXNzLCBpbnN0YW5jZSkgXAo+PiArCShJOTE1X0VYRUNfQ0xBU1NfSU5TVEFOQ0UgfCAoY2xhc3Mp IHwgXAo+PiArCSgoaW5zdGFuY2UpIDw8IEk5MTVfRVhFQ19JTlNUQU5DRV9TSElGVCkpCj4KPiAo Y2xhc3MgfAo+ICAoaW5zdGFuY2UpIDw8IEk5MTVfRVhFQ19JTlNUQU5DRV9TSElGVCB8Cj4gIEk5 MTVfRVhFQ19DTEFTU19JTlNUQU5DRSkKPgo+IEp1c3Qgc3VnZ2VzdGluZyB0byBzcHJlYWQgaXQg b3V0IG92ZXIgYW5vdGhlciBsaW5lIGZvciBiZXR0ZXIKPiByZWFkYWJpbGl0eS4KCk9rYXkgYnV0 IEknZCBsaWtlIGZvciB0aGUgZmxhZyB0byBjb21lIGZpcnN0LCBmb2xsb3dlZCBieSBjbGFzcyBh bmQgdGhlbiAKaW5zdGFuY2UuIE9rYXkgd2l0aCB0aGF0PwoKUmVnYXJkcywKClR2cnRrbwpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK