From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Stach Subject: [PATCH 3/3] drm/etnaviv: implement softpin Date: Fri, 2 Aug 2019 19:29:53 +0200 Message-ID: <20190802172953.4586-4-l.stach@pengutronix.de> References: <20190802172953.4586-1-l.stach@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by gabe.freedesktop.org (Postfix) with ESMTPS id B48D06EF24 for ; Fri, 2 Aug 2019 17:29:55 +0000 (UTC) In-Reply-To: <20190802172953.4586-1-l.stach@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: etnaviv@lists.freedesktop.org Cc: patchwork-lst@pengutronix.de, kernel@pengutronix.de, dri-devel@lists.freedesktop.org, Russell King List-Id: dri-devel@lists.freedesktop.org V2l0aCBzb2Z0cGluIHdlIGFsbG93IHRoZSB1c2Vyc3BhY2UgdG8gdGFrZSBjb250cm9sIG92ZXIg dGhlIEdQVSB2aXJ0dWFsCmFkZHJlc3Mgc3BhY2UuIFRoZSBuZXcgY2FwYWJpbGl0eSBpcyByZWxl Y3RlZCBieSBhIGJ1bXAgb2YgdGhlIG1pbm9yIERSTQp2ZXJzaW9uLiBUaGVyZSBhcmUgYSBmZXcg cmVzdHJpY3Rpb25zIGZvciB1c2Vyc3BhY2UgdG8gdGFrZSBpbnRvCmFjY291bnQ6CgoxLiBUaGUg a2VybmVsIHJlc2VydmVzIGEgYml0IG9mIHRoZSBhZGRyZXNzIHNwYWNlIHRvIGltcGxlbWVudCB6 ZXJvIHBhZ2UKZmF1bHRpbmcgYW5kIG1hcHBpbmcgb2YgdGhlIGtlcm5lbCBpbnRlcm5hbCByaW5n IGJ1ZmZlci4gVXNlcnNwYWNlIGNhbgpxdWVyeSB0aGUga2VybmVsIGZvciB0aGUgZmlyc3QgdXNh YmxlIEdQVSBWTSBhZGRyZXNzIHZpYQpFVE5BVklWX1BBUkFNX1NPRlRQSU5fU1RBUlRfQUREUi4K CjIuIFdlIG9ubHkgYWxsb3cgc29mdHBpbiBvbiBHUFVzLCB3aGljaCBpbXBsZW1lbnQgcHJvcGVy IHByb2Nlc3MKc2VwYXJhdGlvbiB2aWEgUFBBUy4gSWYgc29mdHBpbiBpcyBub3QgYXZhaWxhYmxl IHRoZSBzb2Z0cGluIHN0YXJ0CmFkZHJlc3Mgd2lsbCBiZSBzZXQgdG8gfjAuCgozLiBTb2Z0cGlu IGlzIGFsbCBvciBub3RoaW5nLiBBIHN1Ym1pdCB1c2luZyBzb2Z0cGluIG11c3Qgbm90IHVzZSBh bnkKYWRkcmVzcyBmaXh1cHMgdmlhIHJlbG9jcy4KClNpZ25lZC1vZmYtYnk6IEx1Y2FzIFN0YWNo IDxsLnN0YWNoQHBlbmd1dHJvbml4LmRlPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0 bmF2aXZfZHJ2LmMgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2 aXZfZHJ2LmggICAgICAgIHwgIDIgKysKIGRyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZf Z2VtLmMgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9n ZW0uaCAgICAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9z dWJtaXQuYyB8IDI1ICsrKysrKysrKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vZXRuYXZp di9ldG5hdml2X2dwdS5jICAgICAgICB8ICA5ICsrKysrKysKIGluY2x1ZGUvdWFwaS9kcm0vZXRu YXZpdl9kcm0uaCAgICAgICAgICAgICAgIHwgIDUgKysrLQogNyBmaWxlcyBjaGFuZ2VkLCA0MyBp bnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9ldG5hdml2L2V0bmF2aXZfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2 X2Rydi5jCmluZGV4IDhiY2JkM2ZiMDJjNi4uZTJlNjBjZGY4NzQxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9l dG5hdml2L2V0bmF2aXZfZHJ2LmMKQEAgLTUyOSw3ICs1MjksNyBAQCBzdGF0aWMgc3RydWN0IGRy bV9kcml2ZXIgZXRuYXZpdl9kcm1fZHJpdmVyID0gewogCS5kZXNjICAgICAgICAgICAgICAgPSAi ZXRuYXZpdiBEUk0iLAogCS5kYXRlICAgICAgICAgICAgICAgPSAiMjAxNTEyMTQiLAogCS5tYWpv ciAgICAgICAgICAgICAgPSAxLAotCS5taW5vciAgICAgICAgICAgICAgPSAyLAorCS5taW5vciAg ICAgICAgICAgICAgPSAzLAogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9l dG5hdml2L2V0bmF2aXZfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2Ry di5oCmluZGV4IGE0ODhjZmRiNmJiZi4uMzJjZmE1YTQ4ZDQyIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5h dml2L2V0bmF2aXZfZHJ2LmgKQEAgLTI0LDYgKzI0LDggQEAgc3RydWN0IGV0bmF2aXZfZ2VtX29i amVjdDsKIHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQ7CiBzdHJ1Y3QgZXRuYXZpdl9pb21tdV9n bG9iYWw7CiAKKyNkZWZpbmUgRVROQVZJVl9TT0ZUUElOX1NUQVJUX0FERFJFU1MJU1pfNE0gLyog bXVzdCBiZSA+PSBTVUJBTExPQ19TSVpFICovCisKIHN0cnVjdCBldG5hdml2X2ZpbGVfcHJpdmF0 ZSB7CiAJc3RydWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dAkqbW11OwogCXN0cnVjdCBkcm1fc2No ZWRfZW50aXR5CQlzY2hlZF9lbnRpdHlbRVROQV9NQVhfUElQRVNdOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5h dml2L2V0bmF2aXZfZ2VtLmMKaW5kZXggNWRkZTNlNGMzOTQ5Li5kZDg2M2JkODU4ZjggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW0uYwpAQCAtMjQ4LDcgKzI0OCw3IEBAIHZvaWQg ZXRuYXZpdl9nZW1fbWFwcGluZ191bnJlZmVyZW5jZShzdHJ1Y3QgZXRuYXZpdl92cmFtX21hcHBp bmcgKm1hcHBpbmcpCiB9CiAKIHN0cnVjdCBldG5hdml2X3ZyYW1fbWFwcGluZyAqZXRuYXZpdl9n ZW1fbWFwcGluZ19nZXQoCi0Jc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBldG5h dml2X2lvbW11X2NvbnRleHQgKm1tdSkKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3Ry dWN0IGV0bmF2aXZfaW9tbXVfY29udGV4dCAqbW11LCB1NjQgdmEpCiB7CiAJc3RydWN0IGV0bmF2 aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmogPSB0b19ldG5hdml2X2JvKG9iaik7CiAJc3RydWN0 IGV0bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nOwpAQCAtMzA4LDcgKzMwOCw3IEBAIHN0cnVj dCBldG5hdml2X3ZyYW1fbWFwcGluZyAqZXRuYXZpdl9nZW1fbWFwcGluZ19nZXQoCiAJbWFwcGlu Zy0+dXNlID0gMTsKIAogCXJldCA9IGV0bmF2aXZfaW9tbXVfbWFwX2dlbShtbXUsIGV0bmF2aXZf b2JqLCBtbXUtPmdsb2JhbC0+bWVtb3J5X2Jhc2UsCi0JCQkJICAgIG1hcHBpbmcsIDApOworCQkJ CSAgICBtYXBwaW5nLCB2YSk7CiAJaWYgKHJldCA8IDApCiAJCWtmcmVlKG1hcHBpbmcpOwogCWVs c2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtLmggYi9k cml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbS5oCmluZGV4IDkyZjMwOTBiODM0OC4u YzY0ZTkzYTYyOTNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2 X2dlbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtLmgKQEAgLTc3 LDYgKzc3LDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzX2FjdGl2ZShzdHJ1Y3QgZXRuYXZpdl9n ZW1fb2JqZWN0ICpldG5hdml2X29iaikKIAogc3RydWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdF9ibyB7 CiAJdTMyIGZsYWdzOworCXU2NCB2YTsKIAlzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpvYmo7 CiAJc3RydWN0IGV0bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nOwogCXN0cnVjdCBkbWFfZmVu Y2UgKmV4Y2w7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dl bV9zdWJtaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtX3N1Ym1pdC5j CmluZGV4IDYyN2M4MGVkNjNkOC4uMDllMzhmNzg3NTNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9zdWJtaXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v ZXRuYXZpdi9ldG5hdml2X2dlbV9zdWJtaXQuYwpAQCAtNzIsNiArNzIsMTQgQEAgc3RhdGljIGlu dCBzdWJtaXRfbG9va3VwX29iamVjdHMoc3RydWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdCAqc3VibWl0 LAogCQl9CiAKIAkJc3VibWl0LT5ib3NbaV0uZmxhZ3MgPSBiby0+ZmxhZ3M7CisJCWlmIChzdWJt aXQtPmZsYWdzICYgRVROQV9TVUJNSVRfU09GVFBJTikgeworCQkJaWYgKGJvLT5wcmVzdW1lZCA8 IEVUTkFWSVZfU09GVFBJTl9TVEFSVF9BRERSRVNTKSB7CisJCQkJRFJNX0VSUk9SKCJpbnZhbGlk IHNvZnRwaW4gYWRkcmVzc1xuIik7CisJCQkJcmV0ID0gLUVJTlZBTDsKKwkJCQlnb3RvIG91dF91 bmxvY2s7CisJCQl9CisJCQlzdWJtaXQtPmJvc1tpXS52YSA9IGJvLT5wcmVzdW1lZDsKKwkJfQog CiAJCS8qIG5vcm1hbGx5IHVzZSBkcm1fZ2VtX29iamVjdF9sb29rdXAoKSwgYnV0IGZvciBidWxr IGxvb2t1cAogCQkgKiBhbGwgdW5kZXIgc2luZ2xlIHRhYmxlX2xvY2sganVzdCBoaXQgb2JqZWN0 X2lkciBkaXJlY3RseToKQEAgLTIyNCwxMSArMjMyLDE2IEBAIHN0YXRpYyBpbnQgc3VibWl0X3Bp bl9vYmplY3RzKHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQgKnN1Ym1pdCkKIAkJc3RydWN0IGV0 bmF2aXZfdnJhbV9tYXBwaW5nICptYXBwaW5nOwogCiAJCW1hcHBpbmcgPSBldG5hdml2X2dlbV9t YXBwaW5nX2dldCgmZXRuYXZpdl9vYmotPmJhc2UsCi0JCQkJCQkgIHN1Ym1pdC0+bW11KTsKKwkJ CQkJCSAgc3VibWl0LT5tbXUsIHN1Ym1pdC0+Ym9zW2ldLnZhKTsKIAkJaWYgKElTX0VSUihtYXBw aW5nKSkgewogCQkJcmV0ID0gUFRSX0VSUihtYXBwaW5nKTsKIAkJCWJyZWFrOwogCQl9CisKKwkJ aWYgKChzdWJtaXQtPmZsYWdzICYgRVROQV9TVUJNSVRfU09GVFBJTikgJiYKKwkJICAgICBzdWJt aXQtPmJvc1tpXS52YSAhPSBtYXBwaW5nLT5pb3ZhKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKIAkJ YXRvbWljX2luYygmZXRuYXZpdl9vYmotPmdwdV9hY3RpdmUpOwogCiAJCXN1Ym1pdC0+Ym9zW2ld LmZsYWdzIHw9IEJPX1BJTk5FRDsKQEAgLTI2MSw2ICsyNzQsMTAgQEAgc3RhdGljIGludCBzdWJt aXRfcmVsb2Moc3RydWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdCAqc3VibWl0LCB2b2lkICpzdHJlYW0s CiAJdTMyICpwdHIgPSBzdHJlYW07CiAJaW50IHJldDsKIAorCS8qIFN1Ym1pdHMgdXNpbmcgc29m dHBpbiBkb24ndCBibGVuZCB3aXRoIHJlbG9jcyAqLworCWlmICgoc3VibWl0LT5mbGFncyAmIEVU TkFfU1VCTUlUX1NPRlRQSU4pICYmIG5yX3JlbG9jcyAhPSAwKQorCQlyZXR1cm4gLUVJTlZBTDsK KwogCWZvciAoaSA9IDA7IGkgPCBucl9yZWxvY3M7IGkrKykgewogCQljb25zdCBzdHJ1Y3QgZHJt X2V0bmF2aXZfZ2VtX3N1Ym1pdF9yZWxvYyAqciA9IHJlbG9jcyArIGk7CiAJCXN0cnVjdCBldG5h dml2X2dlbV9zdWJtaXRfYm8gKmJvOwpAQCAtNDQ1LDYgKzQ2MiwxMiBAQCBpbnQgZXRuYXZpdl9p b2N0bF9nZW1fc3VibWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCXJl dHVybiAtRUlOVkFMOwogCX0KIAorCWlmICgoYXJncy0+ZmxhZ3MgJiBFVE5BX1NVQk1JVF9TT0ZU UElOKSAmJgorCSAgICBwcml2LT5tbXVfZ2xvYmFsLT52ZXJzaW9uICE9IEVUTkFWSVZfSU9NTVVf VjIpIHsKKwkJRFJNX0VSUk9SKCJzb2Z0cGluIHJlcXVlc3RlZCBvbiBpbmNvbXBhdGlibGUgTU1V XG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCiAJLyoKIAkgKiBDb3B5IHRoZSBjb21tYW5k IHN1Ym1pc3Npb24gYW5kIGJvIGFycmF5IHRvIGtlcm5lbCBzcGFjZSBpbgogCSAqIG9uZSBnbywg YW5kIGRvIHRoaXMgb3V0c2lkZSBvZiBhbnkgbG9ja3MuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZXRuYXZpdi9ldG5hdml2X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRu YXZpdl9ncHUuYwppbmRleCBhM2QwZTdhZGM4YmYuLjY5NmMwZjFlYzhkNyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9ncHUuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vZXRuYXZpdi9ldG5hdml2X2dwdS5jCkBAIC00Miw2ICs0Miw4IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkIGdwdV9pZHNbXSA9IHsKIAogaW50IGV0bmF2aXZfZ3B1 X2dldF9wYXJhbShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgdTMyIHBhcmFtLCB1NjQgKnZhbHVl KQogeworCXN0cnVjdCBldG5hdml2X2RybV9wcml2YXRlICpwcml2ID0gZ3B1LT5kcm0tPmRldl9w cml2YXRlOworCiAJc3dpdGNoIChwYXJhbSkgewogCWNhc2UgRVROQVZJVl9QQVJBTV9HUFVfTU9E RUw6CiAJCSp2YWx1ZSA9IGdwdS0+aWRlbnRpdHkubW9kZWw7CkBAIC0xNDcsNiArMTQ5LDEzIEBA IGludCBldG5hdml2X2dwdV9nZXRfcGFyYW0oc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHUzMiBw YXJhbSwgdTY0ICp2YWx1ZSkKIAkJKnZhbHVlID0gZ3B1LT5pZGVudGl0eS52YXJ5aW5nc19jb3Vu dDsKIAkJYnJlYWs7CiAKKwljYXNlIEVUTkFWSVZfUEFSQU1fU09GVFBJTl9TVEFSVF9BRERSOgor CQlpZiAocHJpdi0+bW11X2dsb2JhbC0+dmVyc2lvbiA9PSBFVE5BVklWX0lPTU1VX1YyKQorCQkJ KnZhbHVlID0gRVROQVZJVl9TT0ZUUElOX1NUQVJUX0FERFJFU1M7CisJCWVsc2UKKwkJCSp2YWx1 ZSA9IH4wVUxMOworCQlicmVhazsKKwogCWRlZmF1bHQ6CiAJCURCRygiJXM6IGludmFsaWQgcGFy YW06ICV1IiwgZGV2X25hbWUoZ3B1LT5kZXYpLCBwYXJhbSk7CiAJCXJldHVybiAtRUlOVkFMOwpk aWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9ldG5hdml2X2RybS5oIGIvaW5jbHVkZS91YXBp L2RybS9ldG5hdml2X2RybS5oCmluZGV4IDBkNWM0OWRjNDc4Yy4uYzU3MTA0ODU2NTBjIDEwMDY0 NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2V0bmF2aXZfZHJtLmgKKysrIGIvaW5jbHVkZS91YXBp L2RybS9ldG5hdml2X2RybS5oCkBAIC03Myw2ICs3Myw3IEBAIHN0cnVjdCBkcm1fZXRuYXZpdl90 aW1lc3BlYyB7CiAjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX0lOU1RSVUNUSU9OX0NPVU5UICAg ICAgICAgMHgxOAogI2RlZmluZSBFVE5BVklWX1BBUkFNX0dQVV9OVU1fQ09OU1RBTlRTICAgICAg ICAgICAgIDB4MTkKICNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfTlVNX1ZBUllJTkdTICAgICAg ICAgICAgICAweDFhCisjZGVmaW5lIEVUTkFWSVZfUEFSQU1fU09GVFBJTl9TVEFSVF9BRERSICAg ICAgICAgICAgMHgxYgogCiAjZGVmaW5lIEVUTkFfTUFYX1BJUEVTIDQKIApAQCAtMTc3LDkgKzE3 OCwxMSBAQCBzdHJ1Y3QgZHJtX2V0bmF2aXZfZ2VtX3N1Ym1pdF9wbXIgewogI2RlZmluZSBFVE5B X1NVQk1JVF9OT19JTVBMSUNJVCAgICAgICAgIDB4MDAwMQogI2RlZmluZSBFVE5BX1NVQk1JVF9G RU5DRV9GRF9JTiAgICAgICAgIDB4MDAwMgogI2RlZmluZSBFVE5BX1NVQk1JVF9GRU5DRV9GRF9P VVQgICAgICAgIDB4MDAwNAorI2RlZmluZSBFVE5BX1NVQk1JVF9TT0ZUUElOICAgICAgICAgICAg IDB4MDAwOAogI2RlZmluZSBFVE5BX1NVQk1JVF9GTEFHUwkJKEVUTkFfU1VCTUlUX05PX0lNUExJ Q0lUIHwgXAogCQkJCQkgRVROQV9TVUJNSVRfRkVOQ0VfRkRfSU4gfCBcCi0JCQkJCSBFVE5BX1NV Qk1JVF9GRU5DRV9GRF9PVVQpCisJCQkJCSBFVE5BX1NVQk1JVF9GRU5DRV9GRF9PVVR8IFwKKwkJ CQkJIEVUTkFfU1VCTUlUX1NPRlRQSU4pCiAjZGVmaW5lIEVUTkFfUElQRV8zRCAgICAgIDB4MDAK ICNkZWZpbmUgRVROQV9QSVBFXzJEICAgICAgMHgwMQogI2RlZmluZSBFVE5BX1BJUEVfVkcgICAg ICAweDAyCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbA==