From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [PATCH v6 19/19] drm/msm/dpu: remove RM topology definition Date: Fri, 7 Sep 2018 17:24:27 -0700 Message-ID: <1536366267-22336-20-git-send-email-jsanka@codeaurora.org> References: <1536366267-22336-1-git-send-email-jsanka@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1536366267-22336-1-git-send-email-jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, Jeykumar Sankaran , jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org Uk0gbWFpbnRhaW5lZCBhIHJlZHVuZGFudCBkZWZpbml0aW9uIGZvciBkaXNwbGF5IHRvcG9sb2d5 CnRvIGlkZW50aWZ5IHRoZSBuby4gb2YgaHcgYmxvY2tzIG5lZWRlZCBmb3IgYSBkaXNwbGF5CmFu ZCB0aGVpciBoYXJkd2FyZSBkZXBlbmRlbmNpZXMuIFRoaXMgaW5mb3JtYXRpb24gY2FuIGJlCmlt cGxpY2l0bHkgZGVkdWNlZCBmcm9tIHRoZSBtc21fZGlzcGxheV90b3BvbG9neSBzdHJ1Y3R1cmUK YXZhaWxhYmxlIGluIFJNIHJlc2VydmUgcmVxdWVzdC4gSW4gYWRkaXRpb24gdG8gZ2V0dGluZwpy aWQgb2YgdGhlIHJlZHVuZGFudCB0b3BvbG9neSwgdGhpcyBjaGFuZ2UgYWxzbyByZW1vdmVzCnRo ZSB0b3BvbG9neSBuYW1lIGVudW1zIGFuZCB0aGVpciB1c2FnZXMuCgpjaGFuZ2VzIGluIHY0OgoJ LSByZW1vdmUgdGhlIHRvcG9sb2d5IG5hbWUgZW51bSBlbnRpcmVseSAoU2VhbikKY2hhbmdlcyBp biB2NToKCS0gcmVtb3ZlIFJNIHRvcG9sb2d5IGRlZmluaXRpb24gYW5kIHRoZWlyCgkgIHJlZmVy ZW5jZXMgKFNlYW4pCgktIEltcGxlbWVudCBoZWxwZXIgZm9yIGR1YWwgbWl4ZXIgQ1JUQyAoU2Vh bikKY2hhbmdlcyBpbiB2NjoKCS0gYXZvaWQgaGVhcCBtZW1vcnkgZm9yIHRvcG9sb2d5IChTZWFu KQoKU2lnbmVkLW9mZi1ieTogSmV5a3VtYXIgU2Fua2FyYW4gPGpzYW5rYUBjb2RlYXVyb3JhLm9y Zz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oICAgICAgICAg ICB8ICAxMCArKwogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYyAg ICAgICAgfCAgIDMgLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIu aCAgICAgICAgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29k ZXJfcGh5cy5oICAgfCAgIDkgKy0KIC4uLi9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29k ZXJfcGh5c192aWQuYyAgIHwgICA3ICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfcm0uYyAgICAgICAgICAgICB8IDEyMiArKysrKystLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5oICAgICAgICAgICAgIHwgIDI0IC0tLS0KIDcg ZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgMTI0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmggYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oCmluZGV4IDliMTA1NmMuLjM3MjNiNDgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaApAQCAtMjM4LDYgKzIz OCwxNiBAQCBzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgewogCWNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qg ZHB1X2NydGNfc3RhdGUsIGJhc2UpCiAKIC8qKgorICogZHB1X2NydGNfc3RhdGVfaXNfc3RlcmVv IC0gSXMgY3J0YyB2aXJ0dWFsaXplZCB3aXRoIHR3byBtaXhlcnM/CisgKiBAY3N0YXRlOiBQb2lu dGVyIHRvIGRwdSBjcnRjIHN0YXRlCisgKiBAUmV0dXJuOiB0cnVlIC0gaGFzIHR3byBtaXhlcnMs IGZhbHNlIC0gaGFzIG9uZSBtaXhlcgorICovCitzdGF0aWMgaW5saW5lIGJvb2wgZHB1X2NydGNf c3RhdGVfaXNfc3RlcmVvKHN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqY3N0YXRlKQoreworCXJldHVy biBjc3RhdGUtPm51bV9taXhlcnMgPT0gQ1JUQ19EVUFMX01JWEVSUzsKK30KKworLyoqCiAgKiBk cHVfY3J0Y19nZXRfbWl4ZXJfaGVpZ2h0IC0gZ2V0IHRoZSBtaXhlciBoZWlnaHQKICAqIE1peGVy IGhlaWdodCB3aWxsIGJlIHNhbWUgYXMgcGFuZWwgaGVpZ2h0CiAgKi8KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCmluZGV4IGUxNWQwOWYuLmMyZTg5ODUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwpAQCAtMTAwMyw3 ICsxMDAzLDYgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfdmlydF9tb2RlX3NldChzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmRybV9lbmMsCiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm4gPSBOVUxM LCAqY29ubl9pdGVyOwogCXN0cnVjdCBkcHVfcm1faHdfaXRlciBwcF9pdGVyLCBjdGxfaXRlcjsK IAlzdHJ1Y3QgbXNtX2Rpc3BsYXlfdG9wb2xvZ3kgdG9wb2xvZ3k7Ci0JZW51bSBkcHVfcm1fdG9w b2xvZ3lfbmFtZSB0b3BvbG9neV9uYW1lOwogCXN0cnVjdCBkcHVfaHdfY3RsICpod19jdGxbTUFY X0NIQU5ORUxTX1BFUl9FTkNdID0geyBOVUxMIH07CiAJaW50IGkgPSAwLCByZXQ7CiAKQEAgLTEw NTksNyArMTA1OCw2IEBAIHN0YXRpYyB2b2lkIGRwdV9lbmNvZGVyX3ZpcnRfbW9kZV9zZXQoc3Ry dWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAogCQlod19jdGxbaV0gPSAoc3RydWN0IGRwdV9od19j dGwgKiljdGxfaXRlci5odzsKIAl9CiAKLQl0b3BvbG9neV9uYW1lID0gZHB1X3JtX2dldF90b3Bv bG9neV9uYW1lKHRvcG9sb2d5KTsKIAlmb3IgKGkgPSAwOyBpIDwgZHB1X2VuYy0+bnVtX3BoeXNf ZW5jczsgaSsrKSB7CiAJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzID0gZHB1X2VuYy0+ cGh5c19lbmNzW2ldOwogCkBAIC0xMDgwLDcgKzEwNzgsNiBAQCBzdGF0aWMgdm9pZCBkcHVfZW5j b2Rlcl92aXJ0X21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywKIAkJCXBoeXMt Pmh3X2N0bCA9IGh3X2N0bFtpXTsKIAogCQkJcGh5cy0+Y29ubmVjdG9yID0gY29ubi0+c3RhdGUt PmNvbm5lY3RvcjsKLQkJCXBoeXMtPnRvcG9sb2d5X25hbWUgPSB0b3BvbG9neV9uYW1lOwogCQkJ aWYgKHBoeXMtPm9wcy5tb2RlX3NldCkKIAkJCQlwaHlzLT5vcHMubW9kZV9zZXQocGh5cywgbW9k ZSwgYWRqX21vZGUpOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfZW5jb2Rlci5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Vu Y29kZXIuaAppbmRleCAzNGFjNWI2Li45ZGJmMzhmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmgKQEAgLTMyLDcgKzMyLDYgQEAKIC8qKgogICogRW5jb2Rl ciBmdW5jdGlvbnMgYW5kIGRhdGEgdHlwZXMKICAqIEBpbnRmczoJSW50ZXJmYWNlcyB0aGlzIGVu Y29kZXIgaXMgdXNpbmcsIElOVEZfTU9ERV9OT05FIGlmIHVudXNlZAotICogQHRvcG9sb2d5OiAg IFRvcG9sb2d5IG9mIHRoZSBkaXNwbGF5CiAgKi8KIHN0cnVjdCBkcHVfZW5jb2Rlcl9od19yZXNv dXJjZXMgewogCWVudW0gZHB1X2ludGZfbW9kZSBpbnRmc1tJTlRGX01BWF07CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmggYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmgKaW5kZXggM2ZlNGVk OS4uOTY0ZWZjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2VuY29kZXJfcGh5cy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9l bmNvZGVyX3BoeXMuaApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImRwdV9od19jdGwuaCIK ICNpbmNsdWRlICJkcHVfaHdfdG9wLmgiCiAjaW5jbHVkZSAiZHB1X2VuY29kZXIuaCIKKyNpbmNs dWRlICJkcHVfY3J0Yy5oIgogCiAjZGVmaW5lIERQVV9FTkNPREVSX05BTUVfTUFYCTE2CiAKQEAg LTIwOSw3ICsyMTAsNiBAQCBzdHJ1Y3QgZHB1X2VuY29kZXJfaXJxIHsKICAqIEBzcGxpdF9yb2xl OgkJUm9sZSB0byBwbGF5IGluIGEgc3BsaXQtcGFuZWwgY29uZmlndXJhdGlvbgogICogQGludGZf bW9kZToJCUludGVyZmFjZSBtb2RlCiAgKiBAaW50Zl9pZHg6CQlJbnRlcmZhY2UgaW5kZXggb24g ZHB1IGhhcmR3YXJlCi0gKiBAdG9wb2xvZ3lfbmFtZToJdG9wb2xvZ3kgc2VsZWN0ZWQgZm9yIHRo ZSBkaXNwbGF5CiAgKiBAZW5jX3NwaW5sb2NrOglWaXJ0dWFsLUVuY29kZXItV2lkZSBTcGluIExv Y2sgZm9yIElSUSBwdXJwb3NlcwogICogQGVuYWJsZV9zdGF0ZToJRW5hYmxlIHN0YXRlIHRyYWNr aW5nCiAgKiBAdmJsYW5rX3JlZmNvdW50OglSZWZlcmVuY2UgY291bnQgb2YgdmJsYW5rIHJlcXVl c3QKQEAgLTIzNyw3ICsyMzcsNiBAQCBzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyB7CiAJZW51bSBk cHVfZW5jX3NwbGl0X3JvbGUgc3BsaXRfcm9sZTsKIAllbnVtIGRwdV9pbnRmX21vZGUgaW50Zl9t b2RlOwogCWVudW0gZHB1X2ludGYgaW50Zl9pZHg7Ci0JZW51bSBkcHVfcm1fdG9wb2xvZ3lfbmFt ZSB0b3BvbG9neV9uYW1lOwogCXNwaW5sb2NrX3QgKmVuY19zcGlubG9jazsKIAllbnVtIGRwdV9l bmNfZW5hYmxlX3N0YXRlIGVuYWJsZV9zdGF0ZTsKIAlhdG9taWNfdCB2YmxhbmtfcmVmY291bnQ7 CkBAIC0zNTUsMTEgKzM1NCwxNSBAQCBzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqZHB1X2VuY29k ZXJfcGh5c19jbWRfaW5pdCgKIHN0YXRpYyBpbmxpbmUgZW51bSBkcHVfM2RfYmxlbmRfbW9kZSBk cHVfZW5jb2Rlcl9oZWxwZXJfZ2V0XzNkX2JsZW5kX21vZGUoCiAJCXN0cnVjdCBkcHVfZW5jb2Rl cl9waHlzICpwaHlzX2VuYykKIHsKKwlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGU7 CisKIAlpZiAoIXBoeXNfZW5jIHx8IHBoeXNfZW5jLT5lbmFibGVfc3RhdGUgPT0gRFBVX0VOQ19E SVNBQkxJTkcpCiAJCXJldHVybiBCTEVORF8zRF9OT05FOwogCisJZHB1X2NzdGF0ZSA9IHRvX2Rw dV9jcnRjX3N0YXRlKHBoeXNfZW5jLT5wYXJlbnQtPmNydGMtPnN0YXRlKTsKKwogCWlmIChwaHlz X2VuYy0+c3BsaXRfcm9sZSA9PSBFTkNfUk9MRV9TT0xPICYmCi0JICAgIHBoeXNfZW5jLT50b3Bv bG9neV9uYW1lID09IERQVV9STV9UT1BPTE9HWV9EVUFMUElQRV8zRE1FUkdFKQorCSAgICBkcHVf Y3J0Y19zdGF0ZV9pc19zdGVyZW8oZHB1X2NzdGF0ZSkpCiAJCXJldHVybiBCTEVORF8zRF9IX1JP V19JTlQ7CiAKIAlyZXR1cm4gQkxFTkRfM0RfTk9ORTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfdmlkLmMgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX3ZpZC5jCmluZGV4IDZmYzcwNjAuLjg0 ZGUzODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNv ZGVyX3BoeXNfdmlkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Vu Y29kZXJfcGh5c192aWQuYwpAQCAtMzU1LDEzICszNTUsMTQgQEAgc3RhdGljIHZvaWQgZHB1X2Vu Y29kZXJfcGh5c192aWRfdW5kZXJydW5faXJxKHZvaWQgKmFyZywgaW50IGlycV9pZHgpCiAKIHN0 YXRpYyBib29sIF9kcHVfZW5jb2Rlcl9waHlzX2lzX2R1YWxfY3RsKHN0cnVjdCBkcHVfZW5jb2Rl cl9waHlzICpwaHlzX2VuYykKIHsKKwlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGU7 CisKIAlpZiAoIXBoeXNfZW5jKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlpZiAocGh5c19lbmMtPnRv cG9sb2d5X25hbWUgPT0gRFBVX1JNX1RPUE9MT0dZX0RVQUxQSVBFKQotCQlyZXR1cm4gdHJ1ZTsK KwlkcHVfY3N0YXRlID0gdG9fZHB1X2NydGNfc3RhdGUocGh5c19lbmMtPnBhcmVudC0+Y3J0Yy0+ c3RhdGUpOwogCi0JcmV0dXJuIGZhbHNlOworCXJldHVybiBkcHVfY3N0YXRlLT5udW1fY3RscyA+ IDE7CiB9CiAKIHN0YXRpYyBib29sIGRwdV9lbmNvZGVyX3BoeXNfdmlkX25lZWRzX3NpbmdsZV9m bHVzaCgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5j IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmMKaW5kZXggMzJkYjhjOTAu LmJkYjExNzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9y bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jCkBAIC0yNCwz MyArMjQsMTMgQEAKICNkZWZpbmUgUkVTRVJWRURfQllfT1RIRVIoaCwgcikgXAogCSgoaCktPnJz dnAgJiYgKChoKS0+cnN2cC0+ZW5jX2lkICE9IChyKS0+ZW5jX2lkKSkKIAotI2RlZmluZSBSTV9J U19UT1BPTE9HWV9NQVRDSCh0LCByKSAoKHQpLm51bV9sbSA9PSAocikubnVtX2xtICYmIFwKLQkJ CQkodCkubnVtX2NvbXBfZW5jID09IChyKS5udW1fZW5jICYmIFwKLQkJCQkodCkubnVtX2ludGYg PT0gKHIpLm51bV9pbnRmKQotCi1zdHJ1Y3QgZHB1X3JtX3RvcG9sb2d5X2RlZiB7Ci0JZW51bSBk cHVfcm1fdG9wb2xvZ3lfbmFtZSB0b3BfbmFtZTsKLQlpbnQgbnVtX2xtOwotCWludCBudW1fY29t cF9lbmM7Ci0JaW50IG51bV9pbnRmOwotCWludCBudW1fY3RsOwotCWludCBuZWVkc19zcGxpdF9k aXNwbGF5OwotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkcHVfcm1fdG9wb2xvZ3lfZGVmIGdf dG9wX3RhYmxlW10gPSB7Ci0JeyAgIERQVV9STV9UT1BPTE9HWV9OT05FLCAgICAgICAgICAgICAg ICAgMCwgMCwgMCwgMCwgZmFsc2UgfSwKLQl7ICAgRFBVX1JNX1RPUE9MT0dZX1NJTkdMRVBJUEUs ICAgICAgICAgICAxLCAwLCAxLCAxLCBmYWxzZSB9LAotCXsgICBEUFVfUk1fVE9QT0xPR1lfRFVB TFBJUEUsICAgICAgICAgICAgIDIsIDAsIDIsIDIsIHRydWUgIH0sCi0JeyAgIERQVV9STV9UT1BP TE9HWV9EVUFMUElQRV8zRE1FUkdFLCAgICAgMiwgMCwgMSwgMSwgZmFsc2UgfSwKLX07Ci0KIC8q KgogICogc3RydWN0IGRwdV9ybV9yZXF1aXJlbWVudHMgLSBSZXNlcnZhdGlvbiByZXF1aXJlbWVu dHMgcGFyYW1ldGVyIGJ1bmRsZQotICogQHRvcDogICAgICAgc2VsZWN0ZWQgdG9wb2xvZ3kgZm9y IHRoZSBkaXNwbGF5CisgKiBAdG9wb2xvZ3k6ICBzZWxlY3RlZCB0b3BvbG9neSBmb3IgdGhlIGRp c3BsYXkKICAqIEBod19yZXM6CSAgIEhhcmR3YXJlIHJlc291cmNlcyByZXF1aXJlZCBhcyByZXBv cnRlZCBieSB0aGUgZW5jb2RlcnMKICAqLwogc3RydWN0IGRwdV9ybV9yZXF1aXJlbWVudHMgewot CWNvbnN0IHN0cnVjdCBkcHVfcm1fdG9wb2xvZ3lfZGVmICp0b3BvbG9neTsKKwlzdHJ1Y3QgbXNt X2Rpc3BsYXlfdG9wb2xvZ3kgdG9wb2xvZ3k7CiAJc3RydWN0IGRwdV9lbmNvZGVyX2h3X3Jlc291 cmNlcyBod19yZXM7CiB9OwogCkBAIC02NiwxMyArNDYsMTEgQEAgc3RydWN0IGRwdV9ybV9yZXF1 aXJlbWVudHMgewogICogQGVuY19pZDoJUmVzZXJ2YXRpb25zIGFyZSB0cmFja2VkIGJ5IEVuY29k ZXIgRFJNIG9iamVjdCBJRC4KICAqCQlDUlRDcyBtYXkgYmUgY29ubmVjdGVkIHRvIG11bHRpcGxl IEVuY29kZXJzLgogICoJCUFuIGVuY29kZXIgb3IgY29ubmVjdG9yIGlkIGlkZW50aWZpZXMgdGhl IGRpc3BsYXkgcGF0aC4KLSAqIEB0b3BvbG9neQlEUk08LT5IVyB0b3BvbG9neSB1c2UgY2FzZQog ICovCiBzdHJ1Y3QgZHB1X3JtX3JzdnAgewogCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKIAl1aW50 MzJfdCBzZXE7CiAJdWludDMyX3QgZW5jX2lkOwotCWVudW0gZHB1X3JtX3RvcG9sb2d5X25hbWUg dG9wb2xvZ3k7CiB9OwogCiAvKioKQEAgLTExNiw4ICs5NCw4IEBAIHN0YXRpYyB2b2lkIF9kcHVf cm1fcHJpbnRfcnN2cHMoCiAJRFBVX0RFQlVHKCIlZFxuIiwgc3RhZ2UpOwogCiAJbGlzdF9mb3Jf ZWFjaF9lbnRyeShyc3ZwLCAmcm0tPnJzdnBzLCBsaXN0KSB7Ci0JCURSTV9ERUJVR19LTVMoIiVk IHJzdnBbcyV1ZSV1XSB0b3BvbG9neSAlZFxuIiwgc3RhZ2UsIHJzdnAtPnNlcSwKLQkJCSAgICAg IHJzdnAtPmVuY19pZCwgcnN2cC0+dG9wb2xvZ3kpOworCQlEUk1fREVCVUdfS01TKCIlZCByc3Zw W3MldWUldV1cbiIsIHN0YWdlLCByc3ZwLT5zZXEsCisJCQkgICAgICByc3ZwLT5lbmNfaWQpOwog CX0KIAogCWZvciAodHlwZSA9IDA7IHR5cGUgPCBEUFVfSFdfQkxLX01BWDsgdHlwZSsrKSB7CkBA IC0xNDAsMTggKzExOCw2IEBAIHN0cnVjdCBkcHVfaHdfbWRwICpkcHVfcm1fZ2V0X21kcChzdHJ1 Y3QgZHB1X3JtICpybSkKIAlyZXR1cm4gcm0tPmh3X21kcDsKIH0KIAotZW51bSBkcHVfcm1fdG9w b2xvZ3lfbmFtZQotZHB1X3JtX2dldF90b3BvbG9neV9uYW1lKHN0cnVjdCBtc21fZGlzcGxheV90 b3BvbG9neSB0b3BvbG9neSkKLXsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBEUFVfUk1f VE9QT0xPR1lfTUFYOyBpKyspCi0JCWlmIChSTV9JU19UT1BPTE9HWV9NQVRDSChnX3RvcF90YWJs ZVtpXSwgdG9wb2xvZ3kpKQotCQkJcmV0dXJuIGdfdG9wX3RhYmxlW2ldLnRvcF9uYW1lOwotCi0J cmV0dXJuIERQVV9STV9UT1BPTE9HWV9OT05FOwotfQotCiB2b2lkIGRwdV9ybV9pbml0X2h3X2l0 ZXIoCiAJCXN0cnVjdCBkcHVfcm1faHdfaXRlciAqaXRlciwKIAkJdWludDMyX3QgZW5jX2lkLApA QCAtNDM0LDYgKzQwMCwxMSBAQCBpbnQgZHB1X3JtX2luaXQoc3RydWN0IGRwdV9ybSAqcm0sCiAJ cmV0dXJuIHJjOwogfQogCitzdGF0aWMgYm9vbCBfZHB1X3JtX25lZWRzX3NwbGl0X2Rpc3BsYXko Y29uc3Qgc3RydWN0IG1zbV9kaXNwbGF5X3RvcG9sb2d5ICp0b3ApCit7CisJcmV0dXJuIHRvcC0+ bnVtX2ludGYgPiAxOworfQorCiAvKioKICAqIF9kcHVfcm1fY2hlY2tfbG1fYW5kX2dldF9jb25u ZWN0ZWRfYmxrcyAtIGNoZWNrIGlmIHByb3Bvc2VkIGxheWVyIG1peGVyIG1lZXRzCiAgKglwcm9w b3NlZCB1c2UgY2FzZSByZXF1aXJlbWVudHMsIGluY2wuIGhhcmR3aXJlZCBkZXBlbmRlbnQgYmxv Y2tzIGxpa2UKQEAgLTUxNywxNCArNDg4LDE0IEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZl X2xtcygKIAlpbnQgbG1fY291bnQgPSAwOwogCWludCBpLCByYyA9IDA7CiAKLQlpZiAoIXJlcXMt PnRvcG9sb2d5LT5udW1fbG0pIHsKLQkJRFBVX0VSUk9SKCJpbnZhbGlkIG51bWJlciBvZiBsbTog JWRcbiIsIHJlcXMtPnRvcG9sb2d5LT5udW1fbG0pOworCWlmICghcmVxcy0+dG9wb2xvZ3kubnVt X2xtKSB7CisJCURQVV9FUlJPUigiaW52YWxpZCBudW1iZXIgb2YgbG06ICVkXG4iLCByZXFzLT50 b3BvbG9neS5udW1fbG0pOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKIAkvKiBGaW5kIGEgcHJp bWFyeSBtaXhlciAqLwogCWRwdV9ybV9pbml0X2h3X2l0ZXIoJml0ZXJfaSwgMCwgRFBVX0hXX0JM S19MTSk7Ci0Jd2hpbGUgKGxtX2NvdW50ICE9IHJlcXMtPnRvcG9sb2d5LT5udW1fbG0gJiYKKwl3 aGlsZSAobG1fY291bnQgIT0gcmVxcy0+dG9wb2xvZ3kubnVtX2xtICYmCiAJCQlfZHB1X3JtX2dl dF9od19sb2NrZWQocm0sICZpdGVyX2kpKSB7CiAJCW1lbXNldCgmbG0sIDAsIHNpemVvZihsbSkp OwogCQltZW1zZXQoJnBwLCAwLCBzaXplb2YocHApKTsKQEAgLTU0Miw3ICs1MTMsNyBAQCBzdGF0 aWMgaW50IF9kcHVfcm1fcmVzZXJ2ZV9sbXMoCiAJCS8qIFZhbGlkIHByaW1hcnkgbWl4ZXIgZm91 bmQsIGZpbmQgbWF0Y2hpbmcgcGVlcnMgKi8KIAkJZHB1X3JtX2luaXRfaHdfaXRlcigmaXRlcl9q LCAwLCBEUFVfSFdfQkxLX0xNKTsKIAotCQl3aGlsZSAobG1fY291bnQgIT0gcmVxcy0+dG9wb2xv Z3ktPm51bV9sbSAmJgorCQl3aGlsZSAobG1fY291bnQgIT0gcmVxcy0+dG9wb2xvZ3kubnVtX2xt ICYmCiAJCQkJX2RwdV9ybV9nZXRfaHdfbG9ja2VkKHJtLCAmaXRlcl9qKSkgewogCQkJaWYgKGl0 ZXJfaS5ibGsgPT0gaXRlcl9qLmJsaykKIAkJCQljb250aW51ZTsKQEAgLTU1Nyw3ICs1MjgsNyBA QCBzdGF0aWMgaW50IF9kcHVfcm1fcmVzZXJ2ZV9sbXMoCiAJCX0KIAl9CiAKLQlpZiAobG1fY291 bnQgIT0gcmVxcy0+dG9wb2xvZ3ktPm51bV9sbSkgeworCWlmIChsbV9jb3VudCAhPSByZXFzLT50 b3BvbG9neS5udW1fbG0pIHsKIAkJRFBVX0RFQlVHKCJ1bmFibGUgdG8gZmluZCBhcHByb3ByaWF0 ZSBtaXhlcnNcbiIpOwogCQlyZXR1cm4gLUVOQVZBSUw7CiAJfQpAQCAtNTc5LDE0ICs1NTAsMjAg QEAgc3RhdGljIGludCBfZHB1X3JtX3Jlc2VydmVfbG1zKAogc3RhdGljIGludCBfZHB1X3JtX3Jl c2VydmVfY3RscygKIAkJc3RydWN0IGRwdV9ybSAqcm0sCiAJCXN0cnVjdCBkcHVfcm1fcnN2cCAq cnN2cCwKLQkJY29uc3Qgc3RydWN0IGRwdV9ybV90b3BvbG9neV9kZWYgKnRvcCkKKwkJY29uc3Qg c3RydWN0IG1zbV9kaXNwbGF5X3RvcG9sb2d5ICp0b3ApCiB7CiAJc3RydWN0IGRwdV9ybV9od19i bGsgKmN0bHNbTUFYX0JMT0NLU107CiAJc3RydWN0IGRwdV9ybV9od19pdGVyIGl0ZXI7Ci0JaW50 IGkgPSAwOworCWludCBpID0gMCwgbnVtX2N0bHMgPSAwOworCWJvb2wgbmVlZHNfc3BsaXRfZGlz cGxheSA9IGZhbHNlOwogCiAJbWVtc2V0KCZjdGxzLCAwLCBzaXplb2YoY3RscykpOwogCisJLyog ZWFjaCBod19pbnRmIG5lZWRzIGl0cyBvd24gaHdfY3RybCB0byBwcm9ncmFtIGl0cyBjb250cm9s IHBhdGggKi8KKwludW1fY3RscyA9IHRvcC0+bnVtX2ludGY7CisKKwluZWVkc19zcGxpdF9kaXNw bGF5ID0gX2RwdV9ybV9uZWVkc19zcGxpdF9kaXNwbGF5KHRvcCk7CisKIAlkcHVfcm1faW5pdF9o d19pdGVyKCZpdGVyLCAwLCBEUFVfSFdfQkxLX0NUTCk7CiAJd2hpbGUgKF9kcHVfcm1fZ2V0X2h3 X2xvY2tlZChybSwgJml0ZXIpKSB7CiAJCWNvbnN0IHN0cnVjdCBkcHVfaHdfY3RsICpjdGwgPSB0 b19kcHVfaHdfY3RsKGl0ZXIuYmxrLT5odyk7CkBAIC02MDAsMjAgKzU3NywyMCBAQCBzdGF0aWMg aW50IF9kcHVfcm1fcmVzZXJ2ZV9jdGxzKAogCiAJCURQVV9ERUJVRygiY3RsICVkIGNhcHMgMHgl bFhcbiIsIGl0ZXIuYmxrLT5pZCwgZmVhdHVyZXMpOwogCi0JCWlmICh0b3AtPm5lZWRzX3NwbGl0 X2Rpc3BsYXkgIT0gaGFzX3NwbGl0X2Rpc3BsYXkpCisJCWlmIChuZWVkc19zcGxpdF9kaXNwbGF5 ICE9IGhhc19zcGxpdF9kaXNwbGF5KQogCQkJY29udGludWU7CiAKIAkJY3Rsc1tpXSA9IGl0ZXIu YmxrOwogCQlEUFVfREVCVUcoImN0bCAlZCBtYXRjaFxuIiwgaXRlci5ibGstPmlkKTsKIAotCQlp ZiAoKytpID09IHRvcC0+bnVtX2N0bCkKKwkJaWYgKCsraSA9PSBudW1fY3RscykKIAkJCWJyZWFr OwogCX0KIAotCWlmIChpICE9IHRvcC0+bnVtX2N0bCkKKwlpZiAoaSAhPSBudW1fY3RscykKIAkJ cmV0dXJuIC1FTkFWQUlMOwogCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY3RscykgJiYg aSA8IHRvcC0+bnVtX2N0bDsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY3Rs cykgJiYgaSA8IG51bV9jdGxzOyBpKyspIHsKIAkJY3Rsc1tpXS0+cnN2cF9ueHQgPSByc3ZwOwog CQl0cmFjZV9kcHVfcm1fcmVzZXJ2ZV9jdGxzKGN0bHNbaV0tPmlkLCBjdGxzW2ldLT50eXBlLAog CQkJCQkgIHJzdnAtPmVuY19pZCk7CkBAIC02ODYsMTIgKzY2MywxMCBAQCBzdGF0aWMgaW50IF9k cHVfcm1fbWFrZV9uZXh0X3JzdnAoCiAJCXN0cnVjdCBkcHVfcm1fcmVxdWlyZW1lbnRzICpyZXFz KQogewogCWludCByZXQ7Ci0Jc3RydWN0IGRwdV9ybV90b3BvbG9neV9kZWYgdG9wb2xvZ3k7CiAK IAkvKiBDcmVhdGUgcmVzZXJ2YXRpb24gaW5mbywgdGFnIHJlc2VydmVkIGJsb2NrcyB3aXRoIGl0 IGFzIHdlIGdvICovCiAJcnN2cC0+c2VxID0gKytybS0+cnN2cF9uZXh0X3NlcTsKIAlyc3ZwLT5l bmNfaWQgPSBlbmMtPmJhc2UuaWQ7Ci0JcnN2cC0+dG9wb2xvZ3kgPSByZXFzLT50b3BvbG9neS0+ dG9wX25hbWU7CiAJbGlzdF9hZGRfdGFpbCgmcnN2cC0+bGlzdCwgJnJtLT5yc3Zwcyk7CiAKIAly ZXQgPSBfZHB1X3JtX3Jlc2VydmVfbG1zKHJtLCByc3ZwLCByZXFzKTsKQEAgLTcwMCwxNyArNjc1 LDcgQEAgc3RhdGljIGludCBfZHB1X3JtX21ha2VfbmV4dF9yc3ZwKAogCQlyZXR1cm4gcmV0Owog CX0KIAotCS8qCi0JICogRG8gYXNzaWdubWVudCBwcmVmZXJyaW5nIHRvIGdpdmUgYXdheSBsb3ct cmVzb3VyY2UgQ1RMcyBmaXJzdDoKLQkgKiAtIENoZWNrIG1peGVycyB3aXRob3V0IFNwbGl0IERp c3BsYXkKLQkgKiAtIE9ubHkgdGhlbiBhbGxvdyB0byBncmFiIGZyb20gQ1RMcyB3aXRoIHNwbGl0 IGRpc3BsYXkgY2FwYWJpbGl0eQotCSAqLwotCV9kcHVfcm1fcmVzZXJ2ZV9jdGxzKHJtLCByc3Zw LCByZXFzLT50b3BvbG9neSk7Ci0JaWYgKHJldCAmJiAhcmVxcy0+dG9wb2xvZ3ktPm5lZWRzX3Nw bGl0X2Rpc3BsYXkpIHsKLQkJbWVtY3B5KCZ0b3BvbG9neSwgcmVxcy0+dG9wb2xvZ3ksIHNpemVv Zih0b3BvbG9neSkpOwotCQl0b3BvbG9neS5uZWVkc19zcGxpdF9kaXNwbGF5ID0gdHJ1ZTsKLQkJ X2RwdV9ybV9yZXNlcnZlX2N0bHMocm0sIHJzdnAsICZ0b3BvbG9neSk7Ci0JfQorCXJldCA9IF9k cHVfcm1fcmVzZXJ2ZV9jdGxzKHJtLCByc3ZwLCAmcmVxcy0+dG9wb2xvZ3kpOwogCWlmIChyZXQp IHsKIAkJRFBVX0VSUk9SKCJ1bmFibGUgdG8gZmluZCBhcHByb3ByaWF0ZSBDVExcbiIpOwogCQly ZXR1cm4gcmV0OwpAQCAtNzMwLDI5ICs2OTUsMTMgQEAgc3RhdGljIGludCBfZHB1X3JtX3BvcHVs YXRlX3JlcXVpcmVtZW50cygKIAkJc3RydWN0IGRwdV9ybV9yZXF1aXJlbWVudHMgKnJlcXMsCiAJ CXN0cnVjdCBtc21fZGlzcGxheV90b3BvbG9neSByZXFfdG9wb2xvZ3kpCiB7Ci0JaW50IGk7Ci0K LQltZW1zZXQocmVxcywgMCwgc2l6ZW9mKCpyZXFzKSk7Ci0KIAlkcHVfZW5jb2Rlcl9nZXRfaHdf cmVzb3VyY2VzKGVuYywgJnJlcXMtPmh3X3Jlcyk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgRFBVX1JN X1RPUE9MT0dZX01BWDsgaSsrKSB7Ci0JCWlmIChSTV9JU19UT1BPTE9HWV9NQVRDSChnX3RvcF90 YWJsZVtpXSwKLQkJCQkJcmVxX3RvcG9sb2d5KSkgewotCQkJcmVxcy0+dG9wb2xvZ3kgPSAmZ190 b3BfdGFibGVbaV07Ci0JCQlicmVhazsKLQkJfQotCX0KLQotCWlmICghcmVxcy0+dG9wb2xvZ3kp IHsKLQkJRFBVX0VSUk9SKCJpbnZhbGlkIHRvcG9sb2d5IGZvciB0aGUgZGlzcGxheVxuIik7Ci0J CXJldHVybiAtRUlOVkFMOwotCX0KKwlyZXFzLT50b3BvbG9neSA9IHJlcV90b3BvbG9neTsKIAot CURSTV9ERUJVR19LTVMoIm51bV9sbTogJWQgbnVtX2N0bDogJWQgdG9wb2xvZ3k6ICVkIHNwbGl0 X2Rpc3BsYXk6ICVkXG4iLAotCQkgICAgICByZXFzLT50b3BvbG9neS0+bnVtX2xtLCByZXFzLT50 b3BvbG9neS0+bnVtX2N0bCwKLQkJICAgICAgcmVxcy0+dG9wb2xvZ3ktPnRvcF9uYW1lLAotCQkg ICAgICByZXFzLT50b3BvbG9neS0+bmVlZHNfc3BsaXRfZGlzcGxheSk7CisJRFJNX0RFQlVHX0tN UygibnVtX2xtOiAlZCBudW1fZW5jOiAlZCBudW1faW50ZjogJWRcbiIsCisJCSAgICAgIHJlcXMt PnRvcG9sb2d5Lm51bV9sbSwgcmVxcy0+dG9wb2xvZ3kubnVtX2VuYywKKwkJICAgICAgcmVxcy0+ dG9wb2xvZ3kubnVtX2ludGYpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC04NDMsMTEgKzc5MiwxMCBA QCB2b2lkIGRwdV9ybV9yZWxlYXNlKHN0cnVjdCBkcHVfcm0gKnJtLCBzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuYykKIAltdXRleF91bmxvY2soJnJtLT5ybV9sb2NrKTsKIH0KIAotc3RhdGljIGludCBf ZHB1X3JtX2NvbW1pdF9yc3ZwKHN0cnVjdCBkcHVfcm0gKnJtLCBzdHJ1Y3QgZHB1X3JtX3JzdnAg KnJzdnApCitzdGF0aWMgdm9pZCBfZHB1X3JtX2NvbW1pdF9yc3ZwKHN0cnVjdCBkcHVfcm0gKnJt LCBzdHJ1Y3QgZHB1X3JtX3JzdnAgKnJzdnApCiB7CiAJc3RydWN0IGRwdV9ybV9od19ibGsgKmJs azsKIAllbnVtIGRwdV9od19ibGtfdHlwZSB0eXBlOwotCWludCByZXQgPSAwOwogCiAJLyogU3dh cCBuZXh0IHJzdnAgdG8gYmUgdGhlIGFjdGl2ZSAqLwogCWZvciAodHlwZSA9IDA7IHR5cGUgPCBE UFVfSFdfQkxLX01BWDsgdHlwZSsrKSB7CkBAIC04NTgsMTIgKzgwNiw2IEBAIHN0YXRpYyBpbnQg X2RwdV9ybV9jb21taXRfcnN2cChzdHJ1Y3QgZHB1X3JtICpybSwgc3RydWN0IGRwdV9ybV9yc3Zw ICpyc3ZwKQogCQkJfQogCQl9CiAJfQotCi0JaWYgKCFyZXQpCi0JCURSTV9ERUJVR19LTVMoInJz cnYgZW5jICVkIHRvcG9sb2d5ICVkXG4iLCByc3ZwLT5lbmNfaWQsCi0JCQkgICAgICByc3ZwLT50 b3BvbG9neSk7Ci0KLQlyZXR1cm4gcmV0OwogfQogCiBpbnQgZHB1X3JtX3Jlc2VydmUoCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uaCBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5oCmluZGV4IDI4NDgxYTEuLmI4MjczYmQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5oCkBAIC0yMSwyMSArMjEsNiBAQAog I2luY2x1ZGUgImRwdV9od190b3AuaCIKIAogLyoqCi0gKiBlbnVtIGRwdV9ybV90b3BvbG9neV9u YW1lIC0gSFcgcmVzb3VyY2UgdXNlIGNhc2UgaW4gdXNlIGJ5IGNvbm5lY3RvcgotICogQERQVV9S TV9UT1BPTE9HWV9OT05FOiAgICAgICAgICAgICAgICAgTm8gdG9wb2xvZ3kgaW4gdXNlIGN1cnJl bnRseQotICogQERQVV9STV9UT1BPTE9HWV9TSU5HTEVQSVBFOiAgICAgICAgICAgMSBMTSwgMSBQ UCwgMSBJTlRGL1dCCi0gKiBARFBVX1JNX1RPUE9MT0dZX0RVQUxQSVBFOiAgICAgICAgICAgICAy IExNLCAyIFBQLCAyIElOVEYvV0IKLSAqIEBEUFVfUk1fVE9QT0xPR1lfRFVBTFBJUEVfM0RNRVJH RTogICAgIDIgTE0sIDIgUFAsIDNETXV4LCAxIElOVEYvV0IKLSAqLwotZW51bSBkcHVfcm1fdG9w b2xvZ3lfbmFtZSB7Ci0JRFBVX1JNX1RPUE9MT0dZX05PTkUgPSAwLAotCURQVV9STV9UT1BPTE9H WV9TSU5HTEVQSVBFLAotCURQVV9STV9UT1BPTE9HWV9EVUFMUElQRSwKLQlEUFVfUk1fVE9QT0xP R1lfRFVBTFBJUEVfM0RNRVJHRSwKLQlEUFVfUk1fVE9QT0xPR1lfTUFYLAotfTsKLQotLyoqCiAg KiBzdHJ1Y3QgZHB1X3JtIC0gRFBVIGR5bmFtaWMgaGFyZHdhcmUgcmVzb3VyY2UgbWFuYWdlcgog ICogQGRldjogZGV2aWNlIGhhbmRsZSBmb3IgZXZlbnQgbG9nZ2luZyBwdXJwb3NlcwogICogQHJz dnBzOiBsaXN0IG9mIGhhcmR3YXJlIHJlc2VydmF0aW9ucyBieSBlYWNoIGNydGMtPmVuY29kZXIt PmNvbm5lY3RvcgpAQCAtMTY3LDEzICsxNTIsNCBAQCB2b2lkIGRwdV9ybV9pbml0X2h3X2l0ZXIo CiAgKi8KIGludCBkcHVfcm1fY2hlY2tfcHJvcGVydHlfdG9wY3RsKHVpbnQ2NF90IHZhbCk7CiAK LS8qKgotICogZHB1X3JtX2dldF90b3BvbG9neV9uYW1lIC0gcmV0dXJucyB0aGUgbmFtZSBvZiB0 aGUgdGhlIGdpdmVuIHRvcG9sb2d5Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZp bml0aW9uCi0gKiBAdG9wb2xvZ3k6IHRvcG9sb2d5IGRlZmluaXRpb24KLSAqIEBSZXR1cm46IG5h bWUgb2YgdGhlIHRvcG9sb2d5Ci0gKi8KLWVudW0gZHB1X3JtX3RvcG9sb2d5X25hbWUKLWRwdV9y bV9nZXRfdG9wb2xvZ3lfbmFtZShzdHJ1Y3QgbXNtX2Rpc3BsYXlfdG9wb2xvZ3kgdG9wb2xvZ3kp OwotCiAjZW5kaWYgLyogX19EUFVfUk1fSF9fICovCi0tIApUaGUgUXVhbGNvbW0gSW5ub3ZhdGlv biBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLAphIExp bnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVk cmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K