From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [RFC v4 1/2] drm/i915: Engine discovery uAPI Date: Mon, 26 Jun 2017 16:47:41 +0100 Message-ID: <20170626154741.31221-1-tvrtko.ursulin@linux.intel.com> References: <20170518145747.29062-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id E1D0089C8F for ; Mon, 26 Jun 2017 15:47:49 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id y5so955976wmh.3 for ; Mon, 26 Jun 2017 08:47:49 -0700 (PDT) In-Reply-To: <20170518145747.29062-1-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org Cc: Ben Widawsky , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkVuZ2luZSBk aXNjb3ZlcnkgdUFQSSBhbGxvd3MgdXNlcnNwYWNlIHRvIHByb2JlIGZvciBlbmdpbmUKY29uZmln dXJhdGlvbiBhbmQgZmVhdHVyZXMgd2l0aG91dCBuZWVkaW5nIHRvIG1haW50YWluIHRoZQppbnRl cm5hbCBQQ0kgaWQgYmFzZWQgZGF0YWJhc2UuCgpUaGlzIGVuYWJsZXMgcmVtb3ZhbCBvZiBjb2Rl IGR1cGxpY2F0aW9ucyBhY3Jvc3MgdXNlcnNwYWNlCmNvbXBvbmVudHMuCgpQcm9iaW5nIGlzIGRv bmUgdmlhIHRoZSBuZXcgRFJNX0lPQ1RMX0k5MTVfR0VNX0VOR0lORV9JTkZPIGlvY3RsCndoaWNo IHJldHVybnMgdGhlIG51bWJlciBhbmQgaW5mb3JtYXRpb24gb24gdGhlIHNwZWNpZmllZCBlbmdp bmUKY2xhc3MuCgpDdXJyZW50bHkgb25seSBnZW5lcmFsIGVuZ2luZSBjb25maWd1cmF0aW9uIGFu ZCBIRVZDIGZlYXR1cmUgb2YKdGhlIFZDUyBlbmdpbmUgY2FuIGJlIHByb2JlZCBidXQgdGhlIHVB UEkgaXMgZGVzaWduZWQgdG8gYmUKZ2VuZXJpYyBhbmQgZXh0ZW5zaWJsZS4KCkNvZGUgaXMgYmFz ZWQgYWxtb3N0IGV4YWN0bHkgb24gdGhlIGVhcmxpZXIgcHJvcG9zYWwgb24gdGhlCnRvcGljIGJ5 IEpvbiBCbG9vbWZpZWxkLiBFbmdpbmUgY2xhc3MgYW5kIGluc3RhbmNlIHJlZmFjdG9yaW5nCm1h ZGUgcmVjZW50bHkgYnkgRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyBlbmFibGVkIHRoaXMgdG8gYmUK aW1wbGVtZW50ZWQgaW4gYW4gZWxlZ2FudCBmYXNoaW9uLgoKVG8gcHJvYmUgY29uZmlndXJhdGlv biB1c2Vyc3BhY2Ugc2V0cyB0aGUgZW5naW5lIGNsYXNzIGl0IHdhbnRzCnRvIHF1ZXJ5IChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2VuZ2luZV9pbmZvKSBhbmQgcHJvdmlkZXMgYW4gYXJyYXkKb2YgZHJt X2k5MTVfZW5naW5lX2luZm8gc3RydWN0cyB3aGljaCB3aWxsIGJlIGZpbGxlZCBpbiBieSB0aGUK ZHJpdmVyLiBVc2Vyc3BhY2UgYWxzbyBoYXMgdG8gdGVsbCBpOTE1IGhvdyBtYW55IGVsZW1lbnRz IGFyZSBpbgp0aGUgYXJyYXksIGFuZCB0aGUgZHJpdmVyIHdpbGwgcmVwb3J0IGJhY2sgdGhlIHRv dGFsIG51bWJlciBvZgplbmdpbmUgaW5zdGFuY2VzIGluIGFueSBjYXNlLgoKdjI6CiAqIEFkZCBh IHZlcnNpb24gZmllbGQgYW5kIGNvbnNvbGlkYXRlIHRvIG9uZSBlbmdpbmUgY291bnQuCiAgIChD aHJpcyBXaWxzb24pCiAqIFJlbmFtZSB1QVBJIGZsYWdzIGZvciBWQ1MgZW5naW5lcyB0byBEUk1f STkxNV9FTkdJTkVfQ0xBU1NfVklERU8uCiAgIChHb25nIFpoaXBlbmcpCgp2MzoKICogRHJvcCB0 aGUgRFJNXyBwcmVmaXggZnJvbSB1QVBJIGVudW1zLiAoQ2hyaXMgV2lsc29uKQogKiBPbmx5IHJl c2VydmUgOC1iaXRzIGZvciB0aGUgZW5naW5lIGluZm8gZm9yIHRpbWUgYmVpbmcuCgp2NDoKICog TWFkZSB1c2VyX2NsYXNzX21hcCBzdGF0aWMuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxp biA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpDYzogQmVuIFdpZGF3c2t5IDxiZW5AYndpZGF3 c2submV0PgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBE YW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KQ2M6IEpvb25hcyBMYWh0aW5l biA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IEpvbiBCbG9vbWZpZWxkIDxq b24uYmxvb21maWVsZEBpbnRlbC5jb20+CkNjOiAiUm9nb3poa2luLCBEbWl0cnkgViIgPGRtaXRy eS52LnJvZ296aGtpbkBpbnRlbC5jb20+CkNjOiBPc2NhciBNYXRlbyA8b3NjYXIubWF0ZW9AaW50 ZWwuY29tPgpDYzogIkdvbmcsIFpoaXBlbmciIDx6aGlwZW5nLmdvbmdAaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgIHwgIDEgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgfCAgMyArKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZW5naW5lX2NzLmMgfCA2NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggICAgICAgICAgICB8IDQxICsrKysrKysr KysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTA5IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYwppbmRleCBlOWQ4ZTllZTUxYjIuLjQ0ZGQyZjM3OTM3ZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5jCkBAIC0yNzI0LDYgKzI3MjQsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9pb2N0bF9kZXNjIGk5MTVfaW9jdGxzW10gPSB7CiAJRFJNX0lPQ1RMX0RFRl9EUlYo STkxNV9HRU1fQ09OVEVYVF9HRVRQQVJBTSwgaTkxNV9nZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0 bCwgRFJNX1JFTkRFUl9BTExPVyksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoSTkxNV9HRU1fQ09OVEVY VF9TRVRQQVJBTSwgaTkxNV9nZW1fY29udGV4dF9zZXRwYXJhbV9pb2N0bCwgRFJNX1JFTkRFUl9B TExPVyksCiAJRFJNX0lPQ1RMX0RFRl9EUlYoSTkxNV9QRVJGX09QRU4sIGk5MTVfcGVyZl9vcGVu X2lvY3RsLCBEUk1fUkVOREVSX0FMTE9XKSwKKwlEUk1fSU9DVExfREVGX0RSVihJOTE1X0dFTV9F TkdJTkVfSU5GTywgaTkxNV9nZW1fZW5naW5lX2luZm9faW9jdGwsIERSTV9SRU5ERVJfQUxMT1cp LAogfTsKIAogc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlciA9IHsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCmluZGV4IDQyN2QxMGM3ZWNhNS4uNDk2NTY1ZTE3NTNmIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKQEAgLTM1OTgsNiArMzU5OCw5IEBAIHZvaWQgaTkxNV9vYV9pbml0X3JlZ19z dGF0ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQkgICAgc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eCwKIAkJCSAgICB1aW50MzJfdCAqcmVnX3N0YXRlKTsKIAoraW50IGk5 MTVfZ2VtX2VuZ2luZV9pbmZvX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCisJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlKTsKKwogLyogaTkxNV9nZW1fZXZp Y3QuYyAqLwogaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9ldmljdF9zb21ldGhpbmcoc3RydWN0 IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJCQkJCSAgdTY0IG1pbl9zaXplLCB1NjQgYWxpZ25t ZW50LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwppbmRleCAzYjQ2YzFmN2I4 OGIuLmE5ODY2OWY2YWQ4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZW5naW5lX2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMK QEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImludGVs X3JpbmdidWZmZXIuaCIKICNpbmNsdWRlICJpbnRlbF9scmMuaCIKKyNpbmNsdWRlIDx1YXBpL2Ry bS9pOTE1X2RybS5oPgogCiAvKiBIYXN3ZWxsIGRvZXMgaGF2ZSB0aGUgQ1hUX1NJWkUgcmVnaXN0 ZXIgaG93ZXZlciBpdCBkb2VzIG5vdCBhcHBlYXIgdG8gYmUKICAqIHZhbGlkLiBOb3csIGRvY3Mg ZXhwbGFpbiBpbiBkd29yZHMgd2hhdCBpcyBpbiB0aGUgY29udGV4dCBvYmplY3QuIFRoZSBmdWxs CkBAIC0xMzMyLDYgKzEzMzMsNjkgQEAgdm9pZCBpbnRlbF9lbmdpbmVzX21hcmtfaWRsZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAl9CiB9CiAKK3N0YXRpYyB1OCB1c2VyX2NsYXNz X21hcFtJOTE1X0VOR0lORV9DTEFTU19NQVhdID0geworCVtJOTE1X0VOR0lORV9DTEFTU19PVEhF Ul0gPSBPVEhFUl9DTEFTUywKKwlbSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSXSA9IFJFTkRFUl9D TEFTUywKKwlbSTkxNV9FTkdJTkVfQ0xBU1NfQ09QWV0gPSBDT1BZX0VOR0lORV9DTEFTUywKKwlb STkxNV9FTkdJTkVfQ0xBU1NfVklERU9dID0gVklERU9fREVDT0RFX0NMQVNTLAorCVtJOTE1X0VO R0lORV9DTEFTU19WSURFT19FTkhBTkNFXSA9IFZJREVPX0VOSEFOQ0VNRU5UX0NMQVNTLAorfTsK KworaW50IGk5MTVfZ2VtX2VuZ2luZV9pbmZvX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCisJCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlKQoreworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBkcm1faTkx NV9nZW1fZW5naW5lX2luZm8gKmFyZ3MgPSBkYXRhOworCXN0cnVjdCBkcm1faTkxNV9lbmdpbmVf aW5mbyBfX3VzZXIgKnVzZXJfaW5mbyA9CisJCQkJCXU2NF90b191c2VyX3B0cihhcmdzLT5pbmZv X3B0cik7CisJdW5zaWduZWQgaW50IGluZm9fc2l6ZSA9IGFyZ3MtPm51bV9lbmdpbmVzOworCXN0 cnVjdCBkcm1faTkxNV9lbmdpbmVfaW5mbyBpbmZvOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZTsKKwllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKKwl1OCBjbGFzczsKKworCWlmIChh cmdzLT5yc3ZkKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXN3aXRjaCAoYXJncy0+ZW5naW5lX2Ns YXNzKSB7CisJY2FzZSBJOTE1X0VOR0lORV9DTEFTU19PVEhFUjoKKwljYXNlIEk5MTVfRU5HSU5F X0NMQVNTX1JFTkRFUjoKKwljYXNlIEk5MTVfRU5HSU5FX0NMQVNTX0NPUFk6CisJY2FzZSBJOTE1 X0VOR0lORV9DTEFTU19WSURFTzoKKwljYXNlIEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPX0VOSEFO Q0U6CisJCWNsYXNzID0gdXNlcl9jbGFzc19tYXBbYXJncy0+ZW5naW5lX2NsYXNzXTsKKwkJYnJl YWs7CisJY2FzZSBJOTE1X0VOR0lORV9DTEFTU19NQVg6CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1F SU5WQUw7CisJfTsKKworCWFyZ3MtPm51bV9lbmdpbmVzID0gMDsKKworCWlmIChhcmdzLT52ZXJz aW9uICE9IDEpIHsKKwkJYXJncy0+dmVyc2lvbiA9IDE7CisJCXJldHVybiAwOworCX0KKworCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7CisJCWlmIChjbGFzcyAhPSBlbmdpbmUt PmNsYXNzKQorCQkJY29udGludWU7CisKKwkJaWYgKCsrYXJncy0+bnVtX2VuZ2luZXMgPiBpbmZv X3NpemUpCisJCQljb250aW51ZTsKKworCQltZW1zZXQoJmluZm8sIDAsIHNpemVvZihpbmZvKSk7 CisJCWluZm8uaW5zdGFuY2UgPSBlbmdpbmUtPmluc3RhbmNlOworCQlpZiAoSU5URUxfR0VOKGk5 MTUpID49IDggJiYgaWQgPT0gVkNTKQorCQkJaW5mby5pbmZvID0gSTkxNV9WQ1NfSEFTX0hFVkM7 CisKKwkJaWYgKGNvcHlfdG9fdXNlcih1c2VyX2luZm8rKywgJmluZm8sIHNpemVvZihpbmZvKSkp CisJCQlyZXR1cm4gLUVGQVVMVDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwogI2lmIElTX0VOQUJM RUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQogI2luY2x1ZGUgInNlbGZ0ZXN0cy9tb2NrX2Vu Z2luZS5jIgogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgg Yi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5kZXggN2NjYmQ2YTJiYmUwLi5mYmIxZjZi OTk5NTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNs dWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTI2MCw2ICsyNjAsNyBAQCB0eXBlZGVmIHN0cnVj dCBfZHJtX2k5MTVfc2FyZWEgewogI2RlZmluZSBEUk1fSTkxNV9HRU1fQ09OVEVYVF9HRVRQQVJB TQkweDM0CiAjZGVmaW5lIERSTV9JOTE1X0dFTV9DT05URVhUX1NFVFBBUkFNCTB4MzUKICNkZWZp bmUgRFJNX0k5MTVfUEVSRl9PUEVOCQkweDM2CisjZGVmaW5lIERSTV9JOTE1X0dFTV9FTkdJTkVf SU5GTwkweDM3CiAKICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfSU5JVAkJRFJNX0lPVyggRFJNX0NP TU1BTkRfQkFTRSArIERSTV9JOTE1X0lOSVQsIGRybV9pOTE1X2luaXRfdCkKICNkZWZpbmUgRFJN X0lPQ1RMX0k5MTVfRkxVU0gJCURSTV9JTyAoIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9G TFVTSCkKQEAgLTMxNSw2ICszMTYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfZHJtX2k5MTVfc2FyZWEg ewogI2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fQ09OVEVYVF9HRVRQQVJBTQlEUk1fSU9XUiAo RFJNX0NPTU1BTkRfQkFTRSArIERSTV9JOTE1X0dFTV9DT05URVhUX0dFVFBBUkFNLCBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0pCiAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9D T05URVhUX1NFVFBBUkFNCURSTV9JT1dSIChEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VN X0NPTlRFWFRfU0VUUEFSQU0sIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSkKICNk ZWZpbmUgRFJNX0lPQ1RMX0k5MTVfUEVSRl9PUEVOCURSTV9JT1coRFJNX0NPTU1BTkRfQkFTRSAr IERSTV9JOTE1X1BFUkZfT1BFTiwgc3RydWN0IGRybV9pOTE1X3BlcmZfb3Blbl9wYXJhbSkKKyNk ZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VOR0lORV9JTkZPCURSTV9JT1dSKERSTV9DT01NQU5E X0JBU0UgKyBEUk1fSTkxNV9HRU1fRU5HSU5FX0lORk8sIHN0cnVjdCBkcm1faTkxNV9nZW1fZW5n aW5lX2luZm8pCiAKIC8qIEFsbG93IGRyaXZlcnMgdG8gc3VibWl0IGJhdGNoYnVmZmVycyBkaXJl Y3RseSB0byBoYXJkd2FyZSwgcmVseWluZwogICogb24gdGhlIHNlY3VyaXR5IG1lY2hhbmlzbXMg cHJvdmlkZWQgYnkgaGFyZHdhcmUuCkBAIC0xNDY3LDYgKzE0NjksNDUgQEAgZW51bSBkcm1faTkx NV9wZXJmX3JlY29yZF90eXBlIHsKIAlEUk1fSTkxNV9QRVJGX1JFQ09SRF9NQVggLyogbm9uLUFC SSAqLwogfTsKIAorZW51bSBkcm1faTkxNV9nZW1fZW5naW5lX2NsYXNzIHsKKwlJOTE1X0VOR0lO RV9DTEFTU19PVEhFUiA9IDAsCisJSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSID0gMSwKKwlJOTE1 X0VOR0lORV9DTEFTU19DT1BZID0gMiwKKwlJOTE1X0VOR0lORV9DTEFTU19WSURFTyA9IDMsCisJ STkxNV9FTkdJTkVfQ0xBU1NfVklERU9fRU5IQU5DRSA9IDQsCisJSTkxNV9FTkdJTkVfQ0xBU1Nf TUFYIC8qIG5vbi1BQkkgKi8KK307CisKK3N0cnVjdCBkcm1faTkxNV9lbmdpbmVfaW5mbyB7CisJ LyoqIEVuZ2luZSBpbnN0YW5jZSBudW1iZXIuICovCisJX191OAlpbnN0YW5jZTsKKworCS8qKiBF bmdpbmUgc3BlY2lmaWMgaW5mby4gKi8KKyNkZWZpbmUgSTkxNV9WQ1NfSEFTX0hFVkMJQklUKDAp CisJX191OAlpbmZvOworCisJX191OAlyc3ZkMls2XTsKK307CisKK3N0cnVjdCBkcm1faTkxNV9n ZW1fZW5naW5lX2luZm8geworCS8qKiBpbi9vdXQ6IFByb3RvY29sIHZlcnNpb24gcmVxdWVzdGVk L3N1cHBvcnRlZC4gKi8KKwlfX3UzMiB2ZXJzaW9uOworCisJLyoqIGluOiBFbmdpbmUgY2xhc3Mg dG8gcHJvYmUgKGVudW0gZHJtX2k5MTVfZ2VtX2VuZ2luZV9jbGFzcykuICovCisJX191MzIgZW5n aW5lX2NsYXNzOworCisJLyoqCisJICogaW4vb3V0OiBOdW1iZXIgb2Ygc3RydWN0IGRybV9pOTE1 X2VuZ2luZV9pbmZvIGVudHJpZXMgaW4gdGhlIHByb3ZpZGVkCisJICogQGluZm9fcHRyIGFycmF5 IGFuZCBhY3R1YWwgbnVtYmVyIG9mIHN1cHBvcnRlZCBoYXJkd2FyZSBlbmdpbmVzLgorCSAqLwor CV9fdTMyIG51bV9lbmdpbmVzOworCV9fdTMyIHJzdmQ7CisKKwkvKiogaW4vb3V0OiBQb2ludGVy IHRvIGFycmF5IG9mIHN0cnVjdCBpOTE1X2VuZ2luZV9pbmZvIGVsZW1lbnRzLiAqLworCV9fdTY0 IGluZm9fcHRyOworCit9OworCiAjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKIH0KICNlbmRpZgot LSAKMi45LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=