From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 32/32] drm: Nuke fb->pixel_format Date: Thu, 17 Nov 2016 18:14:31 +0200 Message-ID: <1479399271-31991-33-git-send-email-ville.syrjala@linux.intel.com> References: <1479399271-31991-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id AE2E96E32F for ; Thu, 17 Nov 2016 16:16:44 +0000 (UTC) In-Reply-To: <1479399271-31991-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Laurent Pinchart List-Id: dri-devel@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClJl cGxhY2UgdXNlcyBvZiBmYi0+Yml0c19wZXJfcGl4ZWwgd2l0aCBmYi0+Zm9ybWF0LT5mb3JtYXQu Ckxlc3MgZHVwbGljYXRlZCBpbmZvcm1hdGlvbiBpcyBhIGdvb2QgdGhpbmcuCgpOb3RlIHRoYXQg Y29jY2luZWxsZSBmYWlsZWQgdG8gZWxpbWluYXRlIHRoZQoiLyogZm91cmNjIGZvcm1hdCAqLyIg Y29tbWVudCBmcm9tIGRybV9mcmFtZWJ1ZmZlci5oLCBzbyBJIGhhZAp0byBkbyB0aGF0IHBhcnQg bWFudWFsbHkuCgpAQApzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKZXhwcmVzc2lvbiBFOwpA QAogZHJtX2hlbHBlcl9tb2RlX2ZpbGxfZmJfc3RydWN0KC4uLikgewoJLi4uCi0JZmItPnBpeGVs X2Zvcm1hdCA9IEU7CgkuLi4KIH0KCkBACnN0cnVjdCB2bXdfZnJhbWVidWZmZXJfc3VyZmFjZSAq dmZiOwpleHByZXNzaW9uIEU7CkBACi0gdmZiLT5iYXNlLmJhc2UucGl4ZWxfZm9ybWF0ID0gRTsK CkBACnN0cnVjdCB2bXdfZnJhbWVidWZmZXJfZG1hYnVmICp2ZmI7CmV4cHJlc3Npb24gRTsKQEAK LSB2ZmItPmJhc2UuYmFzZS5waXhlbF9mb3JtYXQgPSBFOwoKQEAKc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmI7CmV4cHJlc3Npb24gRTsKQEAKIGk5eHhfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmln KC4uLikgewoJLi4uCi0JZmItPnBpeGVsX2Zvcm1hdCA9IEU7CgkuLi4KIH0KCkBACnN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiOwpleHByZXNzaW9uIEU7CkBACiBpcm9ubGFrZV9nZXRfaW5pdGlh bF9wbGFuZV9jb25maWcoLi4uKSB7CgkuLi4KLQlmYi0+cGl4ZWxfZm9ybWF0ID0gRTsKCS4uLgog fQoKQEAKc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7CmV4cHJlc3Npb24gRTsKQEAKIHNreWxh a2VfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnKC4uLikgewoJLi4uCi0JZmItPnBpeGVsX2Zvcm1h dCA9IEU7CgkuLi4KIH0KCkBACnN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwpAQAotIGZiLT5w aXhlbF9mb3JtYXQKKyBmYi0+Zm9ybWF0LT5mb3JtYXQKCkBACnN0cnVjdCBpbnRlbF9mcmFtZWJ1 ZmZlciAqZmI7CkBACi0gZmItPmJhc2UucGl4ZWxfZm9ybWF0CisgZmItPmJhc2UuZm9ybWF0LT5m b3JtYXQKCkBACnN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlOwpAQAotIHN0YXRlLT5mYi0+ cGl4ZWxfZm9ybWF0Cisgc3RhdGUtPmZiLT5mb3JtYXQtPmZvcm1hdAoKQEAKc3RydWN0IGRybV9w bGFuZV9zdGF0ZSBzdGF0ZTsKQEAKLSBzdGF0ZS5mYi0+cGl4ZWxfZm9ybWF0Cisgc3RhdGUuZmIt PmZvcm1hdC0+Zm9ybWF0CgpAQApzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CkBACi0gY3J0Yy0+cHJp bWFyeS0+ZmItPnBpeGVsX2Zvcm1hdAorIGNydGMtPnByaW1hcnktPmZiLT5mb3JtYXQtPmZvcm1h dAoKQEAKc3RydWN0IGRybV9tb2RlX3NldCAqc2V0OwpAQAotIHNldC0+ZmItPnBpeGVsX2Zvcm1h dAorIHNldC0+ZmItPmZvcm1hdC0+Zm9ybWF0CgpAQApzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQ7 CkBACi0gc2V0LT5jcnRjLT5wcmltYXJ5LT5mYi0+cGl4ZWxfZm9ybWF0Cisgc2V0LT5jcnRjLT5w cmltYXJ5LT5mYi0+Zm9ybWF0LT5mb3JtYXQKCkBACkBACiBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy IHsKCSAuLi4KLQkgdWludDMyX3QgcGl4ZWxfZm9ybWF0OwoJIC4uLgogfTsKClNpZ25lZC1vZmYt Ynk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMgICAgICAgICAgfCAgNCArLS0K IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jICAgICAgICAgIHwgIDQgKy0t CiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jICAgICAgICAgICB8ICA0ICst LQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYyAgICAgICAgICAgfCAgNCAr LS0KIGRyaXZlcnMvZ3B1L2RybS9hcmMvYXJjcGd1X2NydGMuYyAgICAgICAgICAgICAgIHwgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9hcm0vaGRsY2RfY3J0Yy5jICAgICAgICAgICAgICAgIHwgIDQg Ky0tCiBkcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYyAgICAgICAgICAgICB8IDEw ICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2NydGMuYyAgICAgICAgICAg IHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX292ZXJsYXkuYyAgICAgICAg IHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19sYXllci5j IHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19wbGFuZS5j IHwgMjIgKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAgICAg ICAgICAgICAgICAgIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgICAgICAg ICAgICAgICAgICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIu YyAgICAgICAgICAgICAgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxw ZXIuYyAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVy LmMgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzZXRfaGVs cGVyLmMgICAgICAgICAgICB8ICAxIC0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYyAgICAg ICAgICAgICAgICAgICAgIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3M1 NDMzX2RybV9kZWNvbi5jICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3M3 X2RybV9kZWNvbi5jICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3Nf ZHJtX2ZpbWQuYyAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3Nf bWl4ZXIuYyAgICAgICAgICAgfCAgOCArKy0tLQogZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNs X2RjdV9kcm1fcGxhbmUuYyAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24v a2lyaW4va2lyaW5fZHJtX2FkZS5jIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMgICAgICAgICAgICAgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfYXRvbWljX3BsYW5lLmMgICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyAgICAgICAgICAgIHwgMzMgKysrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYyAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICAgICAgICAgIHwgMTAgKysrLS0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgICAgICAgICAgICAgfCAxMiArKysr LS0tLQogZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1wbGFuZS5jICAgICAgICAgICAgICAgfCA0 MCArKysrKysrKysrKystLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2RybV9wbGFuZS5jICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0 L21kcDRfcGxhbmUuYyAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1 L21kcDVfcGxhbmUuYyAgICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmIu YyAgICAgICAgICAgICAgICAgICAgfCAxMCArKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9kaXNwbnYwNC9vdmVybGF5LmMgICAgICB8ICA4ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9udjUwX2Rpc3BsYXkuYyAgICAgICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL29t YXBkcm0vb21hcF9mYi5jICAgICAgICAgICAgICAgfCAxMCArKystLS0tCiBkcml2ZXJzL2dwdS9k cm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYyAgICAgICAgICB8ICA4ICsrLS0tCiBkcml2ZXJzL2dw dS9kcm0vcmNhci1kdS9yY2FyX2R1X3BsYW5lLmMgICAgICAgICB8ICA0ICstLQogZHJpdmVycy9n cHUvZHJtL3JjYXItZHUvcmNhcl9kdV92c3AuYyAgICAgICAgICAgfCAgNCArLS0KIGRyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMgICAgIHwgMjIgKysrKysrKy0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9zaG1vYmlsZS9zaG1vYl9kcm1fY3J0Yy5jICAgICAgIHwgIDYg KystLQogZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9wbGFuZS5jICAgICAgfCAg NCArLS0KIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2dkcC5jICAgICAgICAgICAgICAgICAgIHwg MTAgKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaHF2ZHAuYyAgICAgICAgICAgICAg ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2JhY2tlbmQuYyAgICAgICAg ICAgfCAgNSArKy0tCiBkcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYyAgICAgICAgICAgICAgICAg ICAgICB8ICA2ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS90ZWdyYS9mYi5jICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2NydGMuYyAgICAg ICAgICAgIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19wbGFuZS5jICAg ICAgICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfcGxhbmUuYyAgICAgICAg ICAgICAgICAgfCAgNiArKy0tCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYyAg ICAgICAgICAgICB8ICAyIC0tCiBkcml2ZXJzL2dwdS9kcm0venRlL3p4X3BsYW5lLmMgICAgICAg ICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL2RybS9kcm1fZnJhbWVidWZmZXIuaCAgICAgICAg ICAgICAgICAgICB8ICA0IC0tLQogNTYgZmlsZXMgY2hhbmdlZCwgMTcxIGluc2VydGlvbnMoKyks IDE3OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9kY2VfdjEwXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCmlu ZGV4IDljOGYzMzc4MDI1Ny4uNTc1ZjAxMGEzMTEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9kY2VfdjEwXzAuYwpAQCAtMjA3Miw3ICsyMDcyLDcgQEAgc3RhdGljIGludCBkY2VfdjEwXzBf Y3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlwaXBlX2NvbmZpZyA9 IEFNREdQVV9USUxJTkdfR0VUKHRpbGluZ19mbGFncywgUElQRV9DT05GSUcpOwogCi0Jc3dpdGNo ICh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCkgeworCXN3aXRjaCAodGFyZ2V0X2ZiLT5mb3JtYXQt PmZvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9DODoKIAkJZmJfZm9ybWF0ID0gUkVHX1NFVF9G SUVMRCgwLCBHUlBIX0NPTlRST0wsIEdSUEhfREVQVEgsIDApOwogCQlmYl9mb3JtYXQgPSBSRUdf U0VUX0ZJRUxEKGZiX2Zvcm1hdCwgR1JQSF9DT05UUk9MLCBHUlBIX0ZPUk1BVCwgMCk7CkBAIC0y MTQ1LDcgKzIxNDUsNyBAQCBzdGF0aWMgaW50IGRjZV92MTBfMF9jcnRjX2RvX3NldF9iYXNlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJRFJNX0VSUk9SKCJV bnN1cHBvcnRlZCBzY3JlZW4gZm9ybWF0ICVzXG4iLAotCQkgICAgICAgICAgZHJtX2dldF9mb3Jt YXRfbmFtZSh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9uYW1lKSk7CisJCSAgICAg ICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHRhcmdldF9mYi0+Zm9ybWF0LT5mb3JtYXQsICZmb3Jt YXRfbmFtZSkpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZGNlX3YxMV8wLmMKaW5kZXggNzJiYTNhNTA0NTJiLi45ZjMyNWY0ZTAxOGMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCkBAIC0yMDUzLDcgKzIwNTMsNyBAQCBzdGF0 aWMgaW50IGRjZV92MTFfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK IAogCXBpcGVfY29uZmlnID0gQU1ER1BVX1RJTElOR19HRVQodGlsaW5nX2ZsYWdzLCBQSVBFX0NP TkZJRyk7CiAKLQlzd2l0Y2ggKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0KSB7CisJc3dpdGNoICh0 YXJnZXRfZmItPmZvcm1hdC0+Zm9ybWF0KSB7CiAJY2FzZSBEUk1fRk9STUFUX0M4OgogCQlmYl9m b3JtYXQgPSBSRUdfU0VUX0ZJRUxEKDAsIEdSUEhfQ09OVFJPTCwgR1JQSF9ERVBUSCwgMCk7CiAJ CWZiX2Zvcm1hdCA9IFJFR19TRVRfRklFTEQoZmJfZm9ybWF0LCBHUlBIX0NPTlRST0wsIEdSUEhf Rk9STUFULCAwKTsKQEAgLTIxMjYsNyArMjEyNiw3IEBAIHN0YXRpYyBpbnQgZGNlX3YxMV8wX2Ny dGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQlicmVhazsKIAlkZWZhdWx0 OgogCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIHNjcmVlbiBmb3JtYXQgJXNcbiIsCi0JCSAgICAg ICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0LCAmZm9ybWF0 X25hbWUpKTsKKwkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUodGFyZ2V0X2ZiLT5mb3Jt YXQtPmZvcm1hdCwgJmZvcm1hdF9uYW1lKSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y2XzAuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92Nl8wLmMKaW5kZXggYWE2NGQ5YzFhOGM4Li42OTc1YTc4 ZjczM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92Nl8wLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y2XzAuYwpAQCAtMTQ5NCw3ICsx NDk0LDcgQEAgc3RhdGljIGludCBkY2VfdjZfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKIAlhbWRncHVfYm9fZ2V0X3RpbGluZ19mbGFncyhhYm8sICZ0aWxpbmdfZmxh Z3MpOwogCWFtZGdwdV9ib191bnJlc2VydmUoYWJvKTsKIAotCXN3aXRjaCAodGFyZ2V0X2ZiLT5w aXhlbF9mb3JtYXQpIHsKKwlzd2l0Y2ggKHRhcmdldF9mYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAlj YXNlIERSTV9GT1JNQVRfQzg6CiAJCWZiX2Zvcm1hdCA9IChFVkVSR1JFRU5fR1JQSF9ERVBUSChF VkVSR1JFRU5fR1JQSF9ERVBUSF84QlBQKSB8CiAJCQkgICAgIEVWRVJHUkVFTl9HUlBIX0ZPUk1B VChFVkVSR1JFRU5fR1JQSF9GT1JNQVRfSU5ERVhFRCkpOwpAQCAtMTU2MCw3ICsxNTYwLDcgQEAg c3RhdGljIGludCBkY2VfdjZfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJRFJNX0VSUk9SKCJVbnN1cHBvcnRlZCBzY3JlZW4g Zm9ybWF0ICVzXG4iLAotCQkgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZSh0YXJnZXRfZmIt PnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9uYW1lKSk7CisJCSAgICAgICAgICBkcm1fZ2V0X2Zvcm1h dF9uYW1lKHRhcmdldF9mYi0+Zm9ybWF0LT5mb3JtYXQsICZmb3JtYXRfbmFtZSkpOwogCQlyZXR1 cm4gLUVJTlZBTDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2RjZV92OF8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCmluZGV4 IGVjZjZjNjhiOGY0My4uYmZkZmRhNTBmMGU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9kY2VfdjhfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Rj ZV92OF8wLmMKQEAgLTE5NTAsNyArMTk1MCw3IEBAIHN0YXRpYyBpbnQgZGNlX3Y4XzBfY3J0Y19k b19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlwaXBlX2NvbmZpZyA9IEFNREdQ VV9USUxJTkdfR0VUKHRpbGluZ19mbGFncywgUElQRV9DT05GSUcpOwogCi0Jc3dpdGNoICh0YXJn ZXRfZmItPnBpeGVsX2Zvcm1hdCkgeworCXN3aXRjaCAodGFyZ2V0X2ZiLT5mb3JtYXQtPmZvcm1h dCkgewogCWNhc2UgRFJNX0ZPUk1BVF9DODoKIAkJZmJfZm9ybWF0ID0gKChHUlBIX0RFUFRIXzhC UFAgPDwgR1JQSF9DT05UUk9MX19HUlBIX0RFUFRIX19TSElGVCkgfAogCQkJICAgICAoR1JQSF9G T1JNQVRfSU5ERVhFRCA8PCBHUlBIX0NPTlRST0xfX0dSUEhfRk9STUFUX19TSElGVCkpOwpAQCAt MjAxNiw3ICsyMDE2LDcgQEAgc3RhdGljIGludCBkY2VfdjhfMF9jcnRjX2RvX3NldF9iYXNlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJRFJNX0VSUk9SKCJV bnN1cHBvcnRlZCBzY3JlZW4gZm9ybWF0ICVzXG4iLAotCQkgICAgICAgICAgZHJtX2dldF9mb3Jt YXRfbmFtZSh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9uYW1lKSk7CisJCSAgICAg ICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHRhcmdldF9mYi0+Zm9ybWF0LT5mb3JtYXQsICZmb3Jt YXRfbmFtZSkpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hcmMvYXJjcGd1X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcmMvYXJjcGd1X2Ny dGMuYwppbmRleCA1YzI2YzVmMTI2YTMuLmFkOWE5NTkxNmYxZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FyYy9hcmNwZ3VfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcmMvYXJj cGd1X2NydGMuYwpAQCAtMzYsNyArMzYsNyBAQCBzdGF0aWMgdm9pZCBhcmNfcGd1X3NldF9weGxf Zm10KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgYXJjcGd1X2RybV9wcml2YXRl ICphcmNwZ3UgPSBjcnRjX3RvX2FyY3BndV9wcml2KGNydGMpOwogCWNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiOwotCXVpbnQzMl90IHBp eGVsX2Zvcm1hdCA9IGZiLT5waXhlbF9mb3JtYXQ7CisJdWludDMyX3QgcGl4ZWxfZm9ybWF0ID0g ZmItPmZvcm1hdC0+Zm9ybWF0OwogCXN0cnVjdCBzaW1wbGVmYl9mb3JtYXQgKmZvcm1hdCA9IE5V TEw7CiAJaW50IGk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vaGRsY2RfY3J0 Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2FybS9oZGxjZF9jcnRjLmMKaW5kZXggOGEwZmVlMDNhYTM5 Li45NGViNDU4Y2Q1MmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vaGRsY2RfY3J0 Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vaGRsY2RfY3J0Yy5jCkBAIC02NSw3ICs2NSw3 IEBAIHN0YXRpYyBpbnQgaGRsY2Rfc2V0X3B4bF9mbXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQog CXN0cnVjdCBzaW1wbGVmYl9mb3JtYXQgKmZvcm1hdCA9IE5VTEw7CiAJaW50IGk7CiAKLQlwaXhl bF9mb3JtYXQgPSBmYi0+cGl4ZWxfZm9ybWF0OworCXBpeGVsX2Zvcm1hdCA9IGZiLT5mb3JtYXQt PmZvcm1hdDsKIAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHN1cHBvcnRlZF9mb3JtYXRz KTsgaSsrKSB7CiAJCWlmIChzdXBwb3J0ZWRfZm9ybWF0c1tpXS5mb3VyY2MgPT0gcGl4ZWxfZm9y bWF0KQpAQCAtMjM5LDcgKzIzOSw3IEBAIHN0YXRpYyB2b2lkIGhkbGNkX3BsYW5lX2F0b21pY191 cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJc2Nhbm91dF9zdGFydCA9IGdlbS0+cGFk ZHIgKyBmYi0+b2Zmc2V0c1swXSArCiAJCXBsYW5lLT5zdGF0ZS0+Y3J0Y195ICogZmItPnBpdGNo ZXNbMF0gKwogCQlwbGFuZS0+c3RhdGUtPmNydGNfeCAqCi0JCWRybV9mb3JtYXRfcGxhbmVfY3Bw KGZiLT5waXhlbF9mb3JtYXQsIDApOworCQlkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+Zm9ybWF0 LT5mb3JtYXQsIDApOwogCiAJaGRsY2QgPSBwbGFuZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKIAloZGxj ZF93cml0ZShoZGxjZCwgSERMQ0RfUkVHX0ZCX0xJTkVfTEVOR1RILCBmYi0+cGl0Y2hlc1swXSk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYyBiL2RyaXZl cnMvZ3B1L2RybS9hcm0vbWFsaWRwX3BsYW5lcy5jCmluZGV4IGVlN2Y3NjYzYTMwNy4uNDUxMzBk MTY5MmNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9wbGFuZXMuYwpAQCAtMTEyLDExICsxMTIs MTEgQEAgc3RhdGljIGludCBtYWxpZHBfZGVfcGxhbmVfY2hlY2soc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCiAJZmIgPSBzdGF0ZS0+ZmI7CiAKIAltcy0+Zm9ybWF0ID0gbWFsaWRwX2h3X2dldF9m b3JtYXRfaWQoJm1wLT5od2Rldi0+bWFwLCBtcC0+bGF5ZXItPmlkLAotCQkJCQkgICAgZmItPnBp eGVsX2Zvcm1hdCk7CisJCQkJCSAgICBmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCWlmIChtcy0+Zm9y bWF0ID09IE1BTElEUF9JTlZBTElEX0ZPUk1BVF9JRCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlt cy0+bl9wbGFuZXMgPSBkcm1fZm9ybWF0X251bV9wbGFuZXMoZmItPnBpeGVsX2Zvcm1hdCk7CisJ bXMtPm5fcGxhbmVzID0gZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZiLT5mb3JtYXQtPmZvcm1hdCk7 CiAJZm9yIChpID0gMDsgaSA8IG1zLT5uX3BsYW5lczsgaSsrKSB7CiAJCWlmICghbWFsaWRwX2h3 X3BpdGNoX3ZhbGlkKG1wLT5od2RldiwgZmItPnBpdGNoZXNbaV0pKSB7CiAJCQlEUk1fREVCVUdf S01TKCJJbnZhbGlkIHBpdGNoICV1IGZvciBwbGFuZSAlZFxuIiwKQEAgLTEzNyw4ICsxMzcsOCBA QCBzdGF0aWMgaW50IG1hbGlkcF9kZV9wbGFuZV9jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKIAogCS8qIHBhY2tlZCBSR0I4ODggLyBCR1I4ODggY2FuJ3QgYmUgcm90YXRlZCBvciBmbGlw cGVkICovCiAJaWYgKHN0YXRlLT5yb3RhdGlvbiAhPSBEUk1fUk9UQVRFXzAgJiYKLQkgICAgKGZi LT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9SR0I4ODggfHwKLQkgICAgIGZiLT5waXhlbF9m b3JtYXQgPT0gRFJNX0ZPUk1BVF9CR1I4ODgpKQorCSAgICAoZmItPmZvcm1hdC0+Zm9ybWF0ID09 IERSTV9GT1JNQVRfUkdCODg4IHx8CisJICAgICBmYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZP Uk1BVF9CR1I4ODgpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCW1zLT5yb3RtZW1fc2l6ZSA9IDA7 CkBAIC0xNDcsNyArMTQ3LDcgQEAgc3RhdGljIGludCBtYWxpZHBfZGVfcGxhbmVfY2hlY2soc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCiAKIAkJdmFsID0gbXAtPmh3ZGV2LT5yb3RtZW1fcmVxdWly ZWQobXAtPmh3ZGV2LCBzdGF0ZS0+Y3J0Y19oLAogCQkJCQkJIHN0YXRlLT5jcnRjX3csCi0JCQkJ CQkgZmItPnBpeGVsX2Zvcm1hdCk7CisJCQkJCQkgZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAkJaWYg KHZhbCA8IDApCiAJCQlyZXR1cm4gdmFsOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YXJtYWRhL2FybWFkYV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9jcnRj LmMKaW5kZXggYzY5YTVlYTU0ZjIzLi41MmUxMzlkYzllMzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hcm1hZGEvYXJtYWRhX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtYWRh L2FybWFkYV9jcnRjLmMKQEAgLTk5Niw3ICs5OTYsNyBAQCBzdGF0aWMgaW50IGFybWFkYV9kcm1f Y3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWludCByZXQ7CiAKIAkvKiBX ZSBkb24ndCBzdXBwb3J0IGNoYW5naW5nIHRoZSBwaXhlbCBmb3JtYXQgKi8KLQlpZiAoZmItPnBp eGVsX2Zvcm1hdCAhPSBjcnRjLT5wcmltYXJ5LT5mYi0+cGl4ZWxfZm9ybWF0KQorCWlmIChmYi0+ Zm9ybWF0LT5mb3JtYXQgIT0gY3J0Yy0+cHJpbWFyeS0+ZmItPmZvcm1hdC0+Zm9ybWF0KQogCQly ZXR1cm4gLUVJTlZBTDsKIAogCXdvcmsgPSBrbWFsbG9jKHNpemVvZigqd29yayksIEdGUF9LRVJO RUwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfb3ZlcmxheS5j IGIvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfb3ZlcmxheS5jCmluZGV4IDE1MmI0ZTcx NjI2OS4uNWEzZGQ3MjRlMDFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2Fy bWFkYV9vdmVybGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfb3Zlcmxh eS5jCkBAIC0xODIsNyArMTgyLDcgQEAgYXJtYWRhX292bF9wbGFuZV91cGRhdGUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJc3JjX3kgPSBzcmMueTEg Pj4gMTY7CiAJCXNyY194ID0gc3JjLngxID4+IDE2OwogCi0JCXBpeGVsX2Zvcm1hdCA9IGZiLT5w aXhlbF9mb3JtYXQ7CisJCXBpeGVsX2Zvcm1hdCA9IGZiLT5mb3JtYXQtPmZvcm1hdDsKIAkJaHN1 YiA9IGRybV9mb3JtYXRfaG9yel9jaHJvbWFfc3Vic2FtcGxpbmcocGl4ZWxfZm9ybWF0KTsKIAkJ bnVtX3BsYW5lcyA9IGRybV9mb3JtYXRfbnVtX3BsYW5lcyhwaXhlbF9mb3JtYXQpOwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfbGF5ZXIuYyBi L2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19sYXllci5jCmluZGV4IDM3 N2U0M2NlYTlkZC4uMTQwNjk5NmNjODliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXRt ZWwtaGxjZGMvYXRtZWxfaGxjZGNfbGF5ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXRtZWwt aGxjZGMvYXRtZWxfaGxjZGNfbGF5ZXIuYwpAQCAtNDQ2LDcgKzQ0Niw3IEBAIHZvaWQgYXRtZWxf aGxjZGNfbGF5ZXJfdXBkYXRlX3NldF9mYihzdHJ1Y3QgYXRtZWxfaGxjZGNfbGF5ZXIgKmxheWVy LAogCQlyZXR1cm47CiAKIAlpZiAoZmIpCi0JCW5wbGFuZXMgPSBkcm1fZm9ybWF0X251bV9wbGFu ZXMoZmItPnBpeGVsX2Zvcm1hdCk7CisJCW5wbGFuZXMgPSBkcm1fZm9ybWF0X251bV9wbGFuZXMo ZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAogCWlmIChucGxhbmVzID4gbGF5ZXItPm1heF9wbGFuZXMp CiAJCXJldHVybjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1l bF9obGNkY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2Rj X3BsYW5lLmMKaW5kZXggMjQ2ZWQxZTMzZDhhLi45MWMxZGFhZWUzNjUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19wbGFuZS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19wbGFuZS5jCkBAIC0zNTYsNyArMzU2 LDcgQEAgYXRtZWxfaGxjZGNfcGxhbmVfdXBkYXRlX2dlbmVyYWxfc2V0dGluZ3Moc3RydWN0IGF0 bWVsX2hsY2RjX3BsYW5lICpwbGFuZSwKIAkJY2ZnIHw9IEFUTUVMX0hMQ0RDX0xBWUVSX09WUiB8 IEFUTUVMX0hMQ0RDX0xBWUVSX0lURVIyQkwgfAogCQkgICAgICAgQVRNRUxfSExDRENfTEFZRVJf SVRFUjsKIAotCQlpZiAoYXRtZWxfaGxjZGNfZm9ybWF0X2VtYmVkc19hbHBoYShzdGF0ZS0+YmFz ZS5mYi0+cGl4ZWxfZm9ybWF0KSkKKwkJaWYgKGF0bWVsX2hsY2RjX2Zvcm1hdF9lbWJlZHNfYWxw aGEoc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+Zm9ybWF0KSkKIAkJCWNmZyB8PSBBVE1FTF9ITENE Q19MQVlFUl9MQUVOOwogCQllbHNlCiAJCQljZmcgfD0gQVRNRUxfSExDRENfTEFZRVJfR0FFTiB8 CkBAIC0zODYsMTMgKzM4NiwxMyBAQCBzdGF0aWMgdm9pZCBhdG1lbF9obGNkY19wbGFuZV91cGRh dGVfZm9ybWF0KHN0cnVjdCBhdG1lbF9obGNkY19wbGFuZSAqcGxhbmUsCiAJdTMyIGNmZzsKIAlp bnQgcmV0OwogCi0JcmV0ID0gYXRtZWxfaGxjZGNfZm9ybWF0X3RvX3BsYW5lX21vZGUoc3RhdGUt PmJhc2UuZmItPnBpeGVsX2Zvcm1hdCwKKwlyZXQgPSBhdG1lbF9obGNkY19mb3JtYXRfdG9fcGxh bmVfbW9kZShzdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5mb3JtYXQsCiAJCQkJCSAgICAgICAmY2Zn KTsKIAlpZiAocmV0KQogCQlyZXR1cm47CiAKLQlpZiAoKHN0YXRlLT5iYXNlLmZiLT5waXhlbF9m b3JtYXQgPT0gRFJNX0ZPUk1BVF9ZVVY0MjIgfHwKLQkgICAgIHN0YXRlLT5iYXNlLmZiLT5waXhl bF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjYxKSAmJgorCWlmICgoc3RhdGUtPmJhc2UuZmItPmZv cm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfWVVWNDIyIHx8CisJICAgICBzdGF0ZS0+YmFzZS5m Yi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjYxKSAmJgogCSAgICBkcm1fcm90YXRp b25fOTBfb3JfMjcwKHN0YXRlLT5iYXNlLnJvdGF0aW9uKSkKIAkJY2ZnIHw9IEFUTUVMX0hMQ0RD X1lVVjQyMlJPVDsKIApAQCAtNDA1LDcgKzQwNSw3IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2hsY2Rj X3BsYW5lX3VwZGF0ZV9mb3JtYXQoc3RydWN0IGF0bWVsX2hsY2RjX3BsYW5lICpwbGFuZSwKIAkg KiBSb3RhdGlvbiBvcHRpbWl6YXRpb24gaXMgbm90IHdvcmtpbmcgb24gUkdCODg4IChyb3RhdGlv biBpcyBzdGlsbAogCSAqIHdvcmtpbmcgYnV0IHdpdGhvdXQgYW55IG9wdGltaXphdGlvbikuCiAJ ICovCi0JaWYgKHN0YXRlLT5iYXNlLmZiLT5waXhlbF9mb3JtYXQgPT0gRFJNX0ZPUk1BVF9SR0I4 ODgpCisJaWYgKHN0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX1JH Qjg4OCkKIAkJY2ZnID0gQVRNRUxfSExDRENfTEFZRVJfRE1BX1JPVERJUzsKIAllbHNlCiAJCWNm ZyA9IDA7CkBAIC01MTQsNyArNTE0LDcgQEAgYXRtZWxfaGxjZGNfcGxhbmVfcHJlcGFyZV9kaXNj X2FyZWEoc3RydWN0IGRybV9jcnRjX3N0YXRlICpjX3N0YXRlKQogCQlvdmxfc3RhdGUgPSBkcm1f cGxhbmVfc3RhdGVfdG9fYXRtZWxfaGxjZGNfcGxhbmVfc3RhdGUob3ZsX3MpOwogCiAJCWlmICgh b3ZsX3MtPmZiIHx8Ci0JCSAgICBhdG1lbF9obGNkY19mb3JtYXRfZW1iZWRzX2FscGhhKG92bF9z LT5mYi0+cGl4ZWxfZm9ybWF0KSB8fAorCQkgICAgYXRtZWxfaGxjZGNfZm9ybWF0X2VtYmVkc19h bHBoYShvdmxfcy0+ZmItPmZvcm1hdC0+Zm9ybWF0KSB8fAogCQkgICAgb3ZsX3N0YXRlLT5hbHBo YSAhPSAyNTUpCiAJCQljb250aW51ZTsKIApAQCAtNjIxLDcgKzYyMSw3IEBAIHN0YXRpYyBpbnQg YXRtZWxfaGxjZGNfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnAsCiAJc3Rh dGUtPnNyY193ID4+PSAxNjsKIAlzdGF0ZS0+c3JjX2ggPj49IDE2OwogCi0Jc3RhdGUtPm5wbGFu ZXMgPSBkcm1fZm9ybWF0X251bV9wbGFuZXMoZmItPnBpeGVsX2Zvcm1hdCk7CisJc3RhdGUtPm5w bGFuZXMgPSBkcm1fZm9ybWF0X251bV9wbGFuZXMoZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAlpZiAo c3RhdGUtPm5wbGFuZXMgPiBBVE1FTF9ITENEQ19NQVhfUExBTkVTKQogCQlyZXR1cm4gLUVJTlZB TDsKIApAQCAtNjY0LDE1ICs2NjQsMTUgQEAgc3RhdGljIGludCBhdG1lbF9obGNkY19wbGFuZV9h dG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcCwKIAlwYXRjaGVkX3NyY19oID0gRElWX1JP VU5EX0NMT1NFU1QocGF0Y2hlZF9jcnRjX2ggKiBzdGF0ZS0+c3JjX2gsCiAJCQkJCSAgc3RhdGUt PmNydGNfaCk7CiAKLQloc3ViID0gZHJtX2Zvcm1hdF9ob3J6X2Nocm9tYV9zdWJzYW1wbGluZyhm Yi0+cGl4ZWxfZm9ybWF0KTsKLQl2c3ViID0gZHJtX2Zvcm1hdF92ZXJ0X2Nocm9tYV9zdWJzYW1w bGluZyhmYi0+cGl4ZWxfZm9ybWF0KTsKKwloc3ViID0gZHJtX2Zvcm1hdF9ob3J6X2Nocm9tYV9z dWJzYW1wbGluZyhmYi0+Zm9ybWF0LT5mb3JtYXQpOworCXZzdWIgPSBkcm1fZm9ybWF0X3ZlcnRf Y2hyb21hX3N1YnNhbXBsaW5nKGZiLT5mb3JtYXQtPmZvcm1hdCk7CiAKIAlmb3IgKGkgPSAwOyBp IDwgc3RhdGUtPm5wbGFuZXM7IGkrKykgewogCQl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gMDsKIAkJ aW50IHhkaXYgPSBpID8gaHN1YiA6IDE7CiAJCWludCB5ZGl2ID0gaSA/IHZzdWIgOiAxOwogCi0J CXN0YXRlLT5icHBbaV0gPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCBp KTsKKwkJc3RhdGUtPmJwcFtpXSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5mb3JtYXQtPmZv cm1hdCwgaSk7CiAJCWlmICghc3RhdGUtPmJwcFtpXSkKIAkJCXJldHVybiAtRUlOVkFMOwogCkBA IC03NDEsNyArNzQxLDcgQEAgc3RhdGljIGludCBhdG1lbF9obGNkY19wbGFuZV9hdG9taWNfY2hl Y2soc3RydWN0IGRybV9wbGFuZSAqcCwKIAogCWlmICgoc3RhdGUtPmNydGNfaCAhPSBzdGF0ZS0+ c3JjX2ggfHwgc3RhdGUtPmNydGNfdyAhPSBzdGF0ZS0+c3JjX3cpICYmCiAJICAgICghbGF5b3V0 LT5tZW1zaXplIHx8Ci0JICAgICBhdG1lbF9obGNkY19mb3JtYXRfZW1iZWRzX2FscGhhKHN0YXRl LT5iYXNlLmZiLT5waXhlbF9mb3JtYXQpKSkKKwkgICAgIGF0bWVsX2hsY2RjX2Zvcm1hdF9lbWJl ZHNfYWxwaGEoc3RhdGUtPmJhc2UuZmItPmZvcm1hdC0+Zm9ybWF0KSkpCiAJCXJldHVybiAtRUlO VkFMOwogCiAJaWYgKHN0YXRlLT5jcnRjX3ggPCAwIHx8IHN0YXRlLT5jcnRjX3kgPCAwKQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljLmMKaW5kZXggY2I2YWIwMTA2YjBiLi5hM2U0YTBkYzhmYjQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWMuYwpAQCAtOTAyLDExICs5MDIsMTEgQEAgc3RhdGljIGludCBkcm1fYXRvbWljX3BsYW5l X2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCX0KIAogCS8qIENoZWNrIHdoZXRoZXIg dGhpcyBwbGFuZSBzdXBwb3J0cyB0aGUgZmIgcGl4ZWwgZm9ybWF0LiAqLwotCXJldCA9IGRybV9w bGFuZV9jaGVja19waXhlbF9mb3JtYXQocGxhbmUsIHN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0KTsK KwlyZXQgPSBkcm1fcGxhbmVfY2hlY2tfcGl4ZWxfZm9ybWF0KHBsYW5lLCBzdGF0ZS0+ZmItPmZv cm1hdC0+Zm9ybWF0KTsKIAlpZiAocmV0KSB7CiAJCXN0cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVm IGZvcm1hdF9uYW1lOwogCQlEUk1fREVCVUdfQVRPTUlDKCJJbnZhbGlkIHBpeGVsIGZvcm1hdCAl c1xuIiwKLQkJICAgICAgICAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHN0YXRlLT5mYi0+ cGl4ZWxfZm9ybWF0LAorCQkgICAgICAgICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUoc3Rh dGUtPmZiLT5mb3JtYXQtPmZvcm1hdCwKIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZmb3JtYXRfbmFtZSkpOwogCQlyZXR1cm4gcmV0OwogCX0KQEAgLTk2NCw3ICs5NjQs NyBAQCBzdGF0aWMgdm9pZCBkcm1fYXRvbWljX3BsYW5lX3ByaW50X3N0YXRlKHN0cnVjdCBkcm1f cHJpbnRlciAqcCwKIAkJc3RydWN0IGRybV9mb3JtYXRfbmFtZV9idWYgZm9ybWF0X25hbWU7CiAK IAkJZHJtX3ByaW50ZihwLCAiXHRcdGZvcm1hdD0lc1xuIiwKLQkJICAgICAgICAgICAgICBkcm1f Z2V0X2Zvcm1hdF9uYW1lKGZiLT5waXhlbF9mb3JtYXQsICZmb3JtYXRfbmFtZSkpOworCQkgICAg ICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUoZmItPmZvcm1hdC0+Zm9ybWF0LCAmZm9ybWF0 X25hbWUpKTsKIAkJZHJtX3ByaW50ZihwLCAiXHRcdFx0bW9kaWZpZXI9MHglbGx4XG4iLCBmYi0+ bW9kaWZpZXIpOwogCQlkcm1fcHJpbnRmKHAsICJcdFx0c2l6ZT0lZHglZFxuIiwgZmItPndpZHRo LCBmYi0+aGVpZ2h0KTsKIAkJZHJtX3ByaW50ZihwLCAiXHRcdGxheWVyczpcbiIpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Ny dGMuYwppbmRleCA5MDkzMWUwMzk3MzEuLjdlODE0NzQxZjdmMyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKQEAg LTU1NiwxMSArNTU2LDExIEBAIGludCBkcm1fbW9kZV9zZXRjcnRjKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCiAJCSAqLwogCQlpZiAoIWNydGMtPnByaW1hcnktPmZvcm1hdF9k ZWZhdWx0KSB7CiAJCQlyZXQgPSBkcm1fcGxhbmVfY2hlY2tfcGl4ZWxfZm9ybWF0KGNydGMtPnBy aW1hcnksCi0JCQkJCQkJICAgZmItPnBpeGVsX2Zvcm1hdCk7CisJCQkJCQkJICAgZmItPmZvcm1h dC0+Zm9ybWF0KTsKIAkJCWlmIChyZXQpIHsKIAkJCQlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1 ZiBmb3JtYXRfbmFtZTsKIAkJCQlEUk1fREVCVUdfS01TKCJJbnZhbGlkIHBpeGVsIGZvcm1hdCAl c1xuIiwKLQkJCQkgICAgICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUoZmItPnBpeGVsX2Zv cm1hdCwKKwkJCQkgICAgICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUoZmItPmZvcm1hdC0+ Zm9ybWF0LAogCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9ybWF0X25h bWUpKTsKIAkJCQlnb3RvIG91dDsKIAkJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fY3J0Y19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwppbmRl eCA1ZDJjYjEzOGViYTYuLjk0YmNlMGI0NjJhYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9jcnRjX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIu YwpAQCAtNTg4LDggKzU4OCw4IEBAIGludCBkcm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1 Y3QgZHJtX21vZGVfc2V0ICpzZXQpCiAJCWlmIChzZXQtPmNydGMtPnByaW1hcnktPmZiID09IE5V TEwpIHsKIAkJCURSTV9ERUJVR19LTVMoImNydGMgaGFzIG5vIGZiLCBmdWxsIG1vZGUgc2V0XG4i KTsKIAkJCW1vZGVfY2hhbmdlZCA9IHRydWU7Ci0JCX0gZWxzZSBpZiAoc2V0LT5mYi0+cGl4ZWxf Zm9ybWF0ICE9Ci0JCQkgICBzZXQtPmNydGMtPnByaW1hcnktPmZiLT5waXhlbF9mb3JtYXQpIHsK KwkJfSBlbHNlIGlmIChzZXQtPmZiLT5mb3JtYXQtPmZvcm1hdCAhPQorCQkJICAgc2V0LT5jcnRj LT5wcmltYXJ5LT5mYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAkJCW1vZGVfY2hhbmdlZCA9IHRydWU7 CiAJCX0gZWxzZQogCQkJZmJfY2hhbmdlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfY21hX2hl bHBlci5jCmluZGV4IDE4MWE5ZWFmZTM0YS4uYWFiNDQ2NTMwN2VkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2ZiX2NtYV9oZWxwZXIuYwpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyB2b2lkIGRybV9mYl9j bWFfZGVzY3JpYmUoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIHN0cnVjdCBzZXFfZmlsZSAq bSkKIAlpbnQgaTsKIAogCXNlcV9wcmludGYobSwgImZiOiAlZHglZEAlNC40c1xuIiwgZmItPndp ZHRoLCBmYi0+aGVpZ2h0LAotCQkJKGNoYXIgKikmZmItPnBpeGVsX2Zvcm1hdCk7CisJCQkoY2hh ciAqKSZmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCiAJZm9yIChpID0gMDsgaSA8IGZiLT5mb21hdC0+ bnVtX3BsYW5lczsgaSsrKSB7CiAJCXNlcV9wcmludGYobSwgIiAgICVkOiBvZmZzZXQ9JWQgcGl0 Y2g9JWQsIG9iajogIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZm ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwppbmRleCA5OGMwNTQwOTg4 MDguLmU0OGM5ZTdmYTc4ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1 ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwpAQCAtNjM0LDcg KzYzNCw3IEBAIGludCBkcm1fZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAlJTklUX0xJU1RfSEVBRCgmZmItPmZpbHBf aGVhZCk7CiAJaWYgKFdBUk5fT05fT05DRShmYi0+ZGV2ICE9IGRldikpIHsKIAkJZmItPmRldiA9 IGRldjsKLQkJZmItPmZvcm1hdCA9IGRybV9mb3JtYXRfaW5mbyhmYi0+cGl4ZWxfZm9ybWF0KTsK KwkJZmItPmZvcm1hdCA9IGRybV9mb3JtYXRfaW5mbyhmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCX0K IAlmYi0+ZnVuY3MgPSBmdW5jczsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9t b2Rlc2V0X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5jCmlu ZGV4IDNjNDQ0MDkyNDRkYy4uNjM5ZTQ3NGU3ZDQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX21vZGVzZXRfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlc2V0 X2hlbHBlci5jCkBAIC05NCw3ICs5NCw2IEBAIHZvaWQgZHJtX2hlbHBlcl9tb2RlX2ZpbGxfZmJf c3RydWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWZiLT5vZmZzZXRzW2ldID0gbW9kZV9j bWQtPm9mZnNldHNbaV07CiAJfQogCWZiLT5tb2RpZmllciA9IG1vZGVfY21kLT5tb2RpZmllclsw XTsKLQlmYi0+cGl4ZWxfZm9ybWF0ID0gbW9kZV9jbWQtPnBpeGVsX2Zvcm1hdDsKIAlmYi0+Zmxh Z3MgPSBtb2RlX2NtZC0+ZmxhZ3M7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9oZWxwZXJfbW9kZV9m aWxsX2ZiX3N0cnVjdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKaW5kZXggNDE5YWMzMTNjMzZmLi5hYzFlMDZk ZjcyODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKQEAgLTQ3OCwxMSArNDc4LDExIEBAIHN0YXRpYyBpbnQg X19zZXRwbGFuZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAl9CiAKIAkvKiBD aGVjayB3aGV0aGVyIHRoaXMgcGxhbmUgc3VwcG9ydHMgdGhlIGZiIHBpeGVsIGZvcm1hdC4gKi8K LQlyZXQgPSBkcm1fcGxhbmVfY2hlY2tfcGl4ZWxfZm9ybWF0KHBsYW5lLCBmYi0+cGl4ZWxfZm9y bWF0KTsKKwlyZXQgPSBkcm1fcGxhbmVfY2hlY2tfcGl4ZWxfZm9ybWF0KHBsYW5lLCBmYi0+Zm9y bWF0LT5mb3JtYXQpOwogCWlmIChyZXQpIHsKIAkJc3RydWN0IGRybV9mb3JtYXRfbmFtZV9idWYg Zm9ybWF0X25hbWU7CiAJCURSTV9ERUJVR19LTVMoIkludmFsaWQgcGl4ZWwgZm9ybWF0ICVzXG4i LAotCQkgICAgICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCwK KwkJICAgICAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKGZiLT5mb3JtYXQtPmZvcm1hdCwK IAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmb3JtYXRfbmFtZSkpOwogCQln b3RvIG91dDsKIAl9CkBAIC04NTQsNyArODU0LDcgQEAgaW50IGRybV9tb2RlX3BhZ2VfZmxpcF9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCi0J aWYgKGNydGMtPnByaW1hcnktPmZiLT5waXhlbF9mb3JtYXQgIT0gZmItPnBpeGVsX2Zvcm1hdCkg eworCWlmIChjcnRjLT5wcmltYXJ5LT5mYi0+Zm9ybWF0LT5mb3JtYXQgIT0gZmItPmZvcm1hdC0+ Zm9ybWF0KSB7CiAJCURSTV9ERUJVR19LTVMoIlBhZ2UgZmxpcCBpcyBub3QgYWxsb3dlZCB0byBj aGFuZ2UgZnJhbWUgYnVmZmVyIGZvcm1hdC5cbiIpOwogCQlyZXQgPSAtRUlOVkFMOwogCQlnb3Rv IG91dDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zNTQzM19kcm1f ZGVjb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zNTQzM19kcm1fZGVjb24uYwpp bmRleCBlOGNlNGEzMTg1ODYuLmM1YzAxNjI4YzcxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3M1NDMzX2RybV9kZWNvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zNTQzM19kcm1fZGVjb24uYwpAQCAtMjAwLDcgKzIwMCw3IEBAIHN0YXRpYyB2 b2lkIGRlY29uX3dpbl9zZXRfcGl4Zm10KHN0cnVjdCBkZWNvbl9jb250ZXh0ICpjdHgsIHVuc2ln bmVkIGludCB3aW4sCiAJdmFsID0gcmVhZGwoY3R4LT5hZGRyICsgREVDT05fV0lOQ09OeCh3aW4p KTsKIAl2YWwgJj0gfldJTkNPTnhfQlBQTU9ERV9NQVNLOwogCi0Jc3dpdGNoIChmYi0+cGl4ZWxf Zm9ybWF0KSB7CisJc3dpdGNoIChmYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JN QVRfWFJHQjE1NTU6CiAJCXZhbCB8PSBXSU5DT054X0JQUE1PREVfMTZCUFBfSTE1NTU7CiAJCXZh bCB8PSBXSU5DT054X0hBV1NXUF9GOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9leHlub3M3X2RybV9kZWNvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3M3X2Ry bV9kZWNvbi5jCmluZGV4IDU4ZGM5YTUxOTZiYy4uZjlhYjE5ZTIwNWUyIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczdfZHJtX2RlY29uLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2V4eW5vcy9leHlub3M3X2RybV9kZWNvbi5jCkBAIC0yODEsNyArMjgxLDcgQEAgc3Rh dGljIHZvaWQgZGVjb25fd2luX3NldF9waXhmbXQoc3RydWN0IGRlY29uX2NvbnRleHQgKmN0eCwg dW5zaWduZWQgaW50IHdpbiwKIAl2YWwgPSByZWFkbChjdHgtPnJlZ3MgKyBXSU5DT04od2luKSk7 CiAJdmFsICY9IH5XSU5DT054X0JQUE1PREVfTUFTSzsKIAotCXN3aXRjaCAoZmItPnBpeGVsX2Zv cm1hdCkgeworCXN3aXRjaCAoZmItPmZvcm1hdC0+Zm9ybWF0KSB7CiAJY2FzZSBEUk1fRk9STUFU X1JHQjU2NToKIAkJdmFsIHw9IFdJTkNPTnhfQlBQTU9ERV8xNkJQUF81NjU7CiAJCXZhbCB8PSBX SU5DT054X0JVUlNUTEVOXzE2V09SRDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2RybV9maW1kLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1f ZmltZC5jCmluZGV4IDAwMjkwNjU5NzliOC4uNzQ1Y2ZiZGY2YjM5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmltZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2RybV9maW1kLmMKQEAgLTgwNCw3ICs4MDQsNyBAQCBzdGF0aWMgdm9p ZCBmaW1kX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLAogCQlEUk1f REVCVUdfS01TKCJvc2Qgc2l6ZSA9IDB4JXhcbiIsICh1bnNpZ25lZCBpbnQpdmFsKTsKIAl9CiAK LQlmaW1kX3dpbl9zZXRfcGl4Zm10KGN0eCwgd2luLCBmYi0+cGl4ZWxfZm9ybWF0LCBzdGF0ZS0+ c3JjLncpOworCWZpbWRfd2luX3NldF9waXhmbXQoY3R4LCB3aW4sIGZiLT5mb3JtYXQtPmZvcm1h dCwgc3RhdGUtPnNyYy53KTsKIAogCS8qIGhhcmR3YXJlIHdpbmRvdyAwIGRvZXNuJ3Qgc3VwcG9y dCBjb2xvciBrZXkuICovCiAJaWYgKHdpbiAhPSAwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z X21peGVyLmMKaW5kZXggYjMxM2U2MWFhYjY1Li5hMTA2MDQ2ZTBjOTMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX21peGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2V4eW5vcy9leHlub3NfbWl4ZXIuYwpAQCAtNDg1LDcgKzQ4NSw3IEBAIHN0YXRpYyB2b2lkIHZw X3ZpZGVvX2J1ZmZlcihzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4LAogCWJvb2wgY3JjYl9tb2Rl ID0gZmFsc2U7CiAJdTMyIHZhbDsKIAotCXN3aXRjaCAoZmItPnBpeGVsX2Zvcm1hdCkgeworCXN3 aXRjaCAoZmItPmZvcm1hdC0+Zm9ybWF0KSB7CiAJY2FzZSBEUk1fRk9STUFUX05WMTI6CiAJCWNy Y2JfbW9kZSA9IGZhbHNlOwogCQlicmVhazsKQEAgLTQ5NCw3ICs0OTQsNyBAQCBzdGF0aWMgdm9p ZCB2cF92aWRlb19idWZmZXIoc3RydWN0IG1peGVyX2NvbnRleHQgKmN0eCwKIAkJYnJlYWs7CiAJ ZGVmYXVsdDoKIAkJRFJNX0VSUk9SKCJwaXhlbCBmb3JtYXQgZm9yIHZwIGlzIHdyb25nIFslZF0u XG4iLAotCQkJCWZiLT5waXhlbF9mb3JtYXQpOworCQkJCWZiLT5mb3JtYXQtPmZvcm1hdCk7CiAJ CXJldHVybjsKIAl9CiAKQEAgLTU5Nyw3ICs1OTcsNyBAQCBzdGF0aWMgdm9pZCBtaXhlcl9ncmFw aF9idWZmZXIoc3RydWN0IG1peGVyX2NvbnRleHQgKmN0eCwKIAl1bnNpZ25lZCBpbnQgZm10Owog CXUzMiB2YWw7CiAKLQlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKKwlzd2l0Y2ggKGZiLT5m b3JtYXQtPmZvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9YUkdCNDQ0NDoKIAljYXNlIERSTV9G T1JNQVRfQVJHQjQ0NDQ6CiAJCWZtdCA9IE1YUl9GT1JNQVRfQVJHQjQ0NDQ7CkBAIC02ODEsNyAr NjgxLDcgQEAgc3RhdGljIHZvaWQgbWl4ZXJfZ3JhcGhfYnVmZmVyKHN0cnVjdCBtaXhlcl9jb250 ZXh0ICpjdHgsCiAJbWl4ZXJfY2ZnX3NjYW4oY3R4LCBtb2RlLT52ZGlzcGxheSk7CiAJbWl4ZXJf Y2ZnX3JnYl9mbXQoY3R4LCBtb2RlLT52ZGlzcGxheSk7CiAJbWl4ZXJfY2ZnX2xheWVyKGN0eCwg d2luLCBwcmlvcml0eSwgdHJ1ZSk7Ci0JbWl4ZXJfY2ZnX2dmeF9ibGVuZChjdHgsIHdpbiwgaXNf YWxwaGFfZm9ybWF0KGZiLT5waXhlbF9mb3JtYXQpKTsKKwltaXhlcl9jZmdfZ2Z4X2JsZW5kKGN0 eCwgd2luLCBpc19hbHBoYV9mb3JtYXQoZmItPmZvcm1hdC0+Zm9ybWF0KSk7CiAKIAkvKiBsYXll ciB1cGRhdGUgbWFuZGF0b3J5IGZvciBtaXhlciAxNi4wLjMzLjAgKi8KIAlpZiAoY3R4LT5teHJf dmVyID09IE1YUl9WRVJfMTZfMF8zM18wIHx8CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZnNsLWRjdS9mc2xfZGN1X2RybV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNs X2RjdV9kcm1fcGxhbmUuYwppbmRleCBhOTlmNDg4NDc0MjAuLjBhMjA3MjNhYTZlMSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fcGxhbmUuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9wbGFuZS5jCkBAIC00NCw3ICs0NCw3 IEBAIHN0YXRpYyBpbnQgZnNsX2RjdV9kcm1fcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAogCWlmICghc3RhdGUtPmZiIHx8ICFzdGF0ZS0+Y3J0YykKIAkJcmV0dXJu IDA7CiAKLQlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKKwlzd2l0Y2ggKGZiLT5mb3JtYXQt PmZvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6CiAJY2FzZSBEUk1fRk9STUFUX1JH Qjg4ODoKIAljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6CkBAIC05Niw3ICs5Niw3IEBAIHN0YXRp YyB2b2lkIGZzbF9kY3VfZHJtX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCiAKIAlnZW0gPSBkcm1fZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKIAotCXN3aXRj aCAoZmItPnBpeGVsX2Zvcm1hdCkgeworCXN3aXRjaCAoZmItPmZvcm1hdC0+Zm9ybWF0KSB7CiAJ Y2FzZSBEUk1fRk9STUFUX1JHQjU2NToKIAkJYnBwID0gRlNMX0RDVV9SR0I1NjU7CiAJCWJyZWFr OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9raXJpbl9kcm1f YWRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9hZGUuYwpp bmRleCBhZmMyYjVkMmQ1ZjAuLjJmMGMyZTFjNjExMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2hpc2lsaWNvbi9raXJpbi9raXJpbl9kcm1fYWRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2hpc2lsaWNvbi9raXJpbi9raXJpbl9kcm1fYWRlLmMKQEAgLTYxNyw3ICs2MTcsNyBAQCBzdGF0 aWMgdm9pZCBhZGVfcmRtYV9zZXQodm9pZCBfX2lvbWVtICpiYXNlLCBzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiwKIAkJCSBjaCArIDEsIHksIGluX2gsIHN0cmlkZSwgKHUzMilvYmotPnBhZGRy KTsKIAlEUk1fREVCVUdfRFJJVkVSKCJhZGRyPTB4JXgsIGZiOiVkeCVkLCBwaXhlbF9mb3JtYXQ9 JWQoJXMpXG4iLAogCQkJIGFkZHIsIGZiLT53aWR0aCwgZmItPmhlaWdodCwgZm10LAotCQkJIGRy bV9nZXRfZm9ybWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9uYW1lKSk7CisJCQkg ZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+Zm9ybWF0LT5mb3JtYXQsICZmb3JtYXRfbmFtZSkpOwog CiAJLyogZ2V0IHJlZyBvZmZzZXQgKi8KIAlyZWdfY3RybCA9IFJEX0NIX0NUUkwoY2gpOwpAQCAt NzczLDcgKzc3Myw3IEBAIHN0YXRpYyB2b2lkIGFkZV91cGRhdGVfY2hhbm5lbChzdHJ1Y3QgYWRl X3BsYW5lICphcGxhbmUsCiB7CiAJc3RydWN0IGFkZV9od19jdHggKmN0eCA9IGFwbGFuZS0+Y3R4 OwogCXZvaWQgX19pb21lbSAqYmFzZSA9IGN0eC0+YmFzZTsKLQl1MzIgZm10ID0gYWRlX2dldF9m b3JtYXQoZmItPnBpeGVsX2Zvcm1hdCk7CisJdTMyIGZtdCA9IGFkZV9nZXRfZm9ybWF0KGZiLT5m b3JtYXQtPmZvcm1hdCk7CiAJdTMyIGNoID0gYXBsYW5lLT5jaDsKIAl1MzIgaW5fdzsKIAl1MzIg aW5faDsKQEAgLTgzNSw3ICs4MzUsNyBAQCBzdGF0aWMgaW50IGFkZV9wbGFuZV9hdG9taWNfY2hl Y2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJaWYgKCFjcnRjIHx8ICFmYikKIAkJcmV0dXJu IDA7CiAKLQlmbXQgPSBhZGVfZ2V0X2Zvcm1hdChmYi0+cGl4ZWxfZm9ybWF0KTsKKwlmbXQgPSBh ZGVfZ2V0X2Zvcm1hdChmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCWlmIChmbXQgPT0gQURFX0ZPUk1B VF9VTlNVUFBPUlQpCiAJCXJldHVybiAtRUlOVkFMOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jCmluZGV4IGVlMjcyZWM4NzMyYy4uZTU3MWU5YTM3YWM0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYwpAQCAtMzA0Miw3ICszMDQyLDggQEAgc3RhdGljIHZvaWQgaW50ZWxf cGxhbmVfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjKQogCQlzdGF0ZSA9IHBsYW5lLT5zdGF0ZTsKIAogCQlpZiAoc3RhdGUtPmZiKSB7Ci0JCQlk cm1fZ2V0X2Zvcm1hdF9uYW1lKHN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUp OworCQkJZHJtX2dldF9mb3JtYXRfbmFtZShzdGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0LAorCQkJ CQkgICAgJmZvcm1hdF9uYW1lKTsKIAkJfSBlbHNlIHsKIAkJCXNwcmludGYoZm9ybWF0X25hbWUu c3RyLCAiTi9BIik7CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5l LmMKaW5kZXggZGJlOWZiNDFhZTUzLi5lMDQ5ODM4MTU5YTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pY19wbGFuZS5jCkBAIC0xNTUsMTEgKzE1NSwxMSBAQCBzdGF0aWMgaW50 IGludGVsX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJICog UkdCIDE2LWJpdCA1OjY6NSwgYW5kIEluZGV4ZWQgOC1iaXQuCiAJCSAqIFRCRDogQWRkIFJHQjY0 IGNhc2Ugb25jZSBpdHMgYWRkZWQgaW4gc3VwcG9ydGVkIGZvcm1hdCBsaXN0LgogCQkgKi8KLQkJ c3dpdGNoIChzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCkgeworCQlzd2l0Y2ggKHN0YXRlLT5mYi0+ Zm9ybWF0LT5mb3JtYXQpIHsKIAkJY2FzZSBEUk1fRk9STUFUX0M4OgogCQljYXNlIERSTV9GT1JN QVRfUkdCNTY1OgogCQkJRFJNX0RFQlVHX0tNUygiVW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0ICVz IGZvciA5MC8yNzAhXG4iLAotCQkJICAgICAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHN0 YXRlLT5mYi0+cGl4ZWxfZm9ybWF0LAorCQkJICAgICAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9u YW1lKHN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQsCiAJCQkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJmZvcm1hdF9uYW1lKSk7CiAJCQlyZXR1cm4gLUVJTlZBTDsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDZjODg5ZjBlOGUwZi4uZjVmOWYxNDIyZDY5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0yNDU1LDcgKzI0NTUsNyBA QCB1MzIgaW50ZWxfY29tcHV0ZV90aWxlX29mZnNldChpbnQgKngsIGludCAqeSwKIAl1MzIgYWxp Z25tZW50OwogCiAJLyogQVVYX0RJU1QgbmVlZHMgb25seSA0SyBhbGlnbm1lbnQgKi8KLQlpZiAo ZmItPnBpeGVsX2Zvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIgJiYgcGxhbmUgPT0gMSkKKwlpZiAo ZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMiAmJiBwbGFuZSA9PSAxKQogCQlh bGlnbm1lbnQgPSA0MDk2OwogCWVsc2UKIAkJYWxpZ25tZW50ID0gaW50ZWxfc3VyZl9hbGlnbm1l bnQoZGV2X3ByaXYsIGZiLT5tb2RpZmllcik7CkBAIC0yNzAwLDcgKzI3MDAsNyBAQCBpbnRlbF9h bGxvY19pbml0aWFsX3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAlpZiAocGxh bmVfY29uZmlnLT50aWxpbmcgPT0gSTkxNV9USUxJTkdfWCkKIAkJb2JqLT50aWxpbmdfYW5kX3N0 cmlkZSA9IGZiLT5waXRjaGVzWzBdIHwgSTkxNV9USUxJTkdfWDsKIAotCW1vZGVfY21kLnBpeGVs X2Zvcm1hdCA9IGZiLT5waXhlbF9mb3JtYXQ7CisJbW9kZV9jbWQucGl4ZWxfZm9ybWF0ID0gZmIt PmZvcm1hdC0+Zm9ybWF0OwogCW1vZGVfY21kLndpZHRoID0gZmItPndpZHRoOwogCW1vZGVfY21k LmhlaWdodCA9IGZiLT5oZWlnaHQ7CiAJbW9kZV9jbWQucGl0Y2hlc1swXSA9IGZiLT5waXRjaGVz WzBdOwpAQCAtMjk3Niw3ICsyOTc2LDcgQEAgaW50IHNrbF9jaGVja19wbGFuZV9zdXJmYWNlKHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiAJICogSGFuZGxlIHRoZSBBVVgg c3VyZmFjZSBmaXJzdCBzaW5jZQogCSAqIHRoZSBtYWluIHN1cmZhY2Ugc2V0dXAgZGVwZW5kcyBv biBpdC4KIAkgKi8KLQlpZiAoZmItPnBpeGVsX2Zvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpIHsK KwlpZiAoZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMikgewogCQlyZXQgPSBz a2xfY2hlY2tfbnYxMl9hdXhfc3VyZmFjZShwbGFuZV9zdGF0ZSk7CiAJCWlmIChyZXQpCiAJCQly ZXR1cm4gcmV0OwpAQCAtMzAzMSw3ICszMDMxLDcgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVf cHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LAogCQlJOTE1X1dSSVRFKFBS SU1DTlNUQUxQSEEocGxhbmUpLCAwKTsKIAl9CiAKLQlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQp IHsKKwlzd2l0Y2ggKGZiLT5mb3JtYXQtPmZvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9DODoK IAkJZHNwY250ciB8PSBESVNQUExBTkVfOEJQUDsKIAkJYnJlYWs7CkBAIC0zMTQ2LDcgKzMxNDYs NyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJt X3BsYW5lICpwcmltYXJ5LAogCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdF TEwoZGV2X3ByaXYpKQogCQlkc3BjbnRyIHw9IERJU1BQTEFORV9QSVBFX0NTQ19FTkFCTEU7CiAK LQlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKKwlzd2l0Y2ggKGZiLT5mb3JtYXQtPmZvcm1h dCkgewogCWNhc2UgRFJNX0ZPUk1BVF9DODoKIAkJZHNwY250ciB8PSBESVNQUExBTkVfOEJQUDsK IAkJYnJlYWs7CkBAIC0zMjgyLDcgKzMyODIsNyBAQCB1MzIgc2tsX3BsYW5lX3N0cmlkZShjb25z dCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50IHBsYW5lLAogCQlzdHJpZGUgLz0gaW50 ZWxfdGlsZV9oZWlnaHQoZGV2X3ByaXYsIGZiLT5tb2RpZmllciwgY3BwKTsKIAl9IGVsc2Ugewog CQlzdHJpZGUgLz0gaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChkZXZfcHJpdiwgZmItPm1vZGlm aWVyLAotCQkJCQkJICAgIGZiLT5waXhlbF9mb3JtYXQpOworCQkJCQkJICAgIGZiLT5mb3JtYXQt PmZvcm1hdCk7CiAJfQogCiAJcmV0dXJuIHN0cmlkZTsKQEAgLTMzOTYsNyArMzM5Niw3IEBAIHN0 YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCiAJCSAgICBQTEFORV9DVExfUElQRV9HQU1NQV9FTkFCTEUgfAogCQkgICAgUExBTkVf Q1RMX1BJUEVfQ1NDX0VOQUJMRTsKIAotCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX2Zvcm1h dChmYi0+cGl4ZWxfZm9ybWF0KTsKKwlwbGFuZV9jdGwgfD0gc2tsX3BsYW5lX2N0bF9mb3JtYXQo ZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAlwbGFuZV9jdGwgfD0gc2tsX3BsYW5lX2N0bF90aWxpbmco ZmItPm1vZGlmaWVyKTsKIAlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1BMQU5FX0dBTU1BX0RJU0FC TEU7CiAJcGxhbmVfY3RsIHw9IHNrbF9wbGFuZV9jdGxfcm90YXRpb24ocm90YXRpb24pOwpAQCAt NDc2OCw3ICs0NzY4LDcgQEAgc3RhdGljIGludCBza2xfdXBkYXRlX3NjYWxlcl9wbGFuZShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAl9CiAKIAkvKiBDaGVjayBzcmMgZm9y bWF0ICovCi0Jc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7CisJc3dpdGNoIChmYi0+Zm9ybWF0 LT5mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JNQVRfUkdCNTY1OgogCWNhc2UgRFJNX0ZPUk1BVF9Y QkdSODg4ODoKIAljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6CkBAIC00Nzg0LDcgKzQ3ODQsNyBA QCBzdGF0aWMgaW50IHNrbF91cGRhdGVfc2NhbGVyX3BsYW5lKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAogCWRlZmF1bHQ6CiAJCURSTV9ERUJVR19LTVMoIltQTEFORTolZDol c10gRkI6JWQgdW5zdXBwb3J0ZWQgc2NhbGluZyBmb3JtYXQgMHgleFxuIiwKIAkJCSAgICAgIGlu dGVsX3BsYW5lLT5iYXNlLmJhc2UuaWQsIGludGVsX3BsYW5lLT5iYXNlLm5hbWUsCi0JCQkgICAg ICBmYi0+YmFzZS5pZCwgZmItPnBpeGVsX2Zvcm1hdCk7CisJCQkgICAgICBmYi0+YmFzZS5pZCwg ZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCkBAIC04NzE0LDcg Kzg3MTQsNiBAQCBpOXh4X2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKIAogCXBpeGVsX2Zvcm1hdCA9IHZhbCAmIERJU1BQTEFORV9QSVhGT1JNQVRfTUFT SzsKIAlmb3VyY2MgPSBpOXh4X2Zvcm1hdF90b19mb3VyY2MocGl4ZWxfZm9ybWF0KTsKLQlmYi0+ cGl4ZWxfZm9ybWF0ID0gZm91cmNjOwogCWZiLT5mb3JtYXQgPSBkcm1fZm9ybWF0X2luZm8oZm91 cmNjKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQpIHsKQEAgLTg3MzYsNyArODcz NSw3IEBAIGk5eHhfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAogCWZiLT5waXRjaGVzWzBdID0gdmFsICYgMHhmZmZmZmZjMDsKIAogCWFsaWduZWRfaGVp Z2h0ID0gaW50ZWxfZmJfYWxpZ25faGVpZ2h0KGRldiwgZmItPmhlaWdodCwKLQkJCQkJICAgICAg IGZiLT5waXhlbF9mb3JtYXQsCisJCQkJCSAgICAgICBmYi0+Zm9ybWF0LT5mb3JtYXQsCiAJCQkJ CSAgICAgICBmYi0+bW9kaWZpZXIpOwogCiAJcGxhbmVfY29uZmlnLT5zaXplID0gZmItPnBpdGNo ZXNbMF0gKiBhbGlnbmVkX2hlaWdodDsKQEAgLTk3NDUsNyArOTc0NCw2IEBAIHNreWxha2VfZ2V0 X2luaXRpYWxfcGxhbmVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCWZvdXJjYyA9 IHNrbF9mb3JtYXRfdG9fZm91cmNjKHBpeGVsX2Zvcm1hdCwKIAkJCQkgICAgICB2YWwgJiBQTEFO RV9DVExfT1JERVJfUkdCWCwKIAkJCQkgICAgICB2YWwgJiBQTEFORV9DVExfQUxQSEFfTUFTSyk7 Ci0JZmItPnBpeGVsX2Zvcm1hdCA9IGZvdXJjYzsKIAlmYi0+Zm9ybWF0ID0gZHJtX2Zvcm1hdF9p bmZvKGZvdXJjYyk7CiAKIAl0aWxpbmcgPSB2YWwgJiBQTEFORV9DVExfVElMRURfTUFTSzsKQEAg LTk3NzksMTEgKzk3NzcsMTEgQEAgc2t5bGFrZV9nZXRfaW5pdGlhbF9wbGFuZV9jb25maWcoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCiAKIAl2YWwgPSBJOTE1X1JFQUQoUExBTkVfU1RSSURFKHBp cGUsIDApKTsKIAlzdHJpZGVfbXVsdCA9IGludGVsX2ZiX3N0cmlkZV9hbGlnbm1lbnQoZGV2X3By aXYsIGZiLT5tb2RpZmllciwKLQkJCQkJCWZiLT5waXhlbF9mb3JtYXQpOworCQkJCQkJZmItPmZv cm1hdC0+Zm9ybWF0KTsKIAlmYi0+cGl0Y2hlc1swXSA9ICh2YWwgJiAweDNmZikgKiBzdHJpZGVf bXVsdDsKIAogCWFsaWduZWRfaGVpZ2h0ID0gaW50ZWxfZmJfYWxpZ25faGVpZ2h0KGRldiwgZmIt PmhlaWdodCwKLQkJCQkJICAgICAgIGZiLT5waXhlbF9mb3JtYXQsCisJCQkJCSAgICAgICBmYi0+ Zm9ybWF0LT5mb3JtYXQsCiAJCQkJCSAgICAgICBmYi0+bW9kaWZpZXIpOwogCiAJcGxhbmVfY29u ZmlnLT5zaXplID0gZmItPnBpdGNoZXNbMF0gKiBhbGlnbmVkX2hlaWdodDsKQEAgLTk4NjAsNyAr OTg1OCw2IEBAIGlyb25sYWtlX2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKIAogCXBpeGVsX2Zvcm1hdCA9IHZhbCAmIERJU1BQTEFORV9QSVhGT1JNQVRf TUFTSzsKIAlmb3VyY2MgPSBpOXh4X2Zvcm1hdF90b19mb3VyY2MocGl4ZWxfZm9ybWF0KTsKLQlm Yi0+cGl4ZWxfZm9ybWF0ID0gZm91cmNjOwogCWZiLT5mb3JtYXQgPSBkcm1fZm9ybWF0X2luZm8o Zm91cmNjKTsKIAogCWJhc2UgPSBJOTE1X1JFQUQoRFNQU1VSRihwaXBlKSkgJiAweGZmZmZmMDAw OwpAQCAtOTg4Miw3ICs5ODc5LDcgQEAgaXJvbmxha2VfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmln KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCWZiLT5waXRjaGVzWzBdID0gdmFsICYgMHhmZmZm ZmZjMDsKIAogCWFsaWduZWRfaGVpZ2h0ID0gaW50ZWxfZmJfYWxpZ25faGVpZ2h0KGRldiwgZmIt PmhlaWdodCwKLQkJCQkJICAgICAgIGZiLT5waXhlbF9mb3JtYXQsCisJCQkJCSAgICAgICBmYi0+ Zm9ybWF0LT5mb3JtYXQsCiAJCQkJCSAgICAgICBmYi0+bW9kaWZpZXIpOwogCiAJcGxhbmVfY29u ZmlnLT5zaXplID0gZmItPnBpdGNoZXNbMF0gKiBhbGlnbmVkX2hlaWdodDsKQEAgLTEyMTUxLDcg KzEyMTQ4LDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCiAJCXJldHVybiAtRUJVU1k7CiAKIAkvKiBDYW4ndCBjaGFuZ2UgcGl4ZWwgZm9y bWF0IHZpYSBNSSBkaXNwbGF5IGZsaXBzLiAqLwotCWlmIChmYi0+cGl4ZWxfZm9ybWF0ICE9IGNy dGMtPnByaW1hcnktPmZiLT5waXhlbF9mb3JtYXQpCisJaWYgKGZiLT5mb3JtYXQtPmZvcm1hdCAh PSBjcnRjLT5wcmltYXJ5LT5mYi0+Zm9ybWF0LT5mb3JtYXQpCiAJCXJldHVybiAtRUlOVkFMOwog CiAJLyoKQEAgLTEyODQ1LDcgKzEyODQyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHVtcF9waXBl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJRFJNX0RFQlVHX0tNUygiW1BMQU5F OiVkOiVzXSBGQjolZCwgZmIgPSAldXgldSBmb3JtYXQgPSAlc1xuIiwKIAkJCSAgICAgIHBsYW5l LT5iYXNlLmlkLCBwbGFuZS0+bmFtZSwKIAkJCSAgICAgIGZiLT5iYXNlLmlkLCBmYi0+d2lkdGgs IGZiLT5oZWlnaHQsCi0JCQkgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKGZiLT5waXhlbF9mb3Jt YXQsICZmb3JtYXRfbmFtZSkpOworCQkJICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+Zm9y bWF0LT5mb3JtYXQsICZmb3JtYXRfbmFtZSkpOwogCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSA5KQogCQkJRFJNX0RFQlVHX0tNUygiXHRzY2FsZXI6JWQgc3JjICVkeCVkKyVkKyVkIGRzdCAl ZHglZCslZCslZFxuIiwKIAkJCQkgICAgICBzdGF0ZS0+c2NhbGVyX2lkLApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2ZiZGV2LmMKaW5kZXggM2Y2MGE0ZjZmMDc4Li41NzBjMDdkNTlkMWEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwpAQCAtNjMyLDcgKzYzMiw3IEBAIHN0YXRpYyBib29sIGlu dGVsX2ZiZGV2X2luaXRfYmlvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJCWN1cl9zaXpl ID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192ZGlzcGxheTsK IAkJY3VyX3NpemUgPSBpbnRlbF9mYl9hbGlnbl9oZWlnaHQoZGV2LCBjdXJfc2l6ZSwKLQkJCQkJ CSBmYi0+YmFzZS5waXhlbF9mb3JtYXQsCisJCQkJCQkgZmItPmJhc2UuZm9ybWF0LT5mb3JtYXQs CiAJCQkJCQkgZmItPmJhc2UubW9kaWZpZXIpOwogCQljdXJfc2l6ZSAqPSBmYi0+YmFzZS5waXRj aGVzWzBdOwogCQlEUk1fREVCVUdfS01TKCJwaXBlICVjIGFyZWE6ICVkeCVkLCBicHA6ICVkLCBz aXplOiAlZFxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwppbmRleCBjZTM2Njdj MThlMTguLjU2OGQxOTQ0MzVmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfb3ZlcmxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwpA QCAtNjY3LDcgKzY2Nyw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9jb2xvcmtleShzdHJ1Y3QgaW50 ZWxfb3ZlcmxheSAqb3ZlcmxheSwKIAlpZiAob3ZlcmxheS0+Y29sb3Jfa2V5X2VuYWJsZWQpCiAJ CWZsYWdzIHw9IERTVF9LRVlfRU5BQkxFOwogCi0Jc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7 CisJc3dpdGNoIChmYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JNQVRfQzg6CiAJ CWtleSA9IDA7CiAJCWZsYWdzIHw9IENMS19SR0I4SV9NQVNLOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMKaW5kZXggMzE4Y2Q3YmRkNzg1Li4yMzg3ZmI4NTQ2YTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwpAQCAtMzIzMiw3ICszMjMyLDcgQEAgc2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCXN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0gcHN0YXRlLT5mYjsKIAl1aW50MzJfdCBkb3duX3NjYWxlX2Ftb3VudCwgZGF0 YV9yYXRlOwogCXVpbnQzMl90IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKLQl1bnNpZ25lZCBmb3Jt YXQgPSBmYiA/IGZiLT5waXhlbF9mb3JtYXQgOiBEUk1fRk9STUFUX1hSR0I4ODg4OworCXVuc2ln bmVkIGZvcm1hdCA9IGZiID8gZmItPmZvcm1hdC0+Zm9ybWF0IDogRFJNX0ZPUk1BVF9YUkdCODg4 ODsKIAogCWlmICghaW50ZWxfcHN0YXRlLT5iYXNlLnZpc2libGUpCiAJCXJldHVybiAwOwpAQCAt MzMyMyw3ICszMzIzLDcgQEAgc2tsX2RkYl9taW5fYWxsb2MoY29uc3Qgc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSAqcHN0YXRlLAogCQlyZXR1cm4gMDsKIAogCS8qIEZvciBwYWNrZWQgZm9ybWF0cywg bm8geS1wbGFuZSwgcmV0dXJuIDAgKi8KLQlpZiAoeSAmJiBmYi0+cGl4ZWxfZm9ybWF0ICE9IERS TV9GT1JNQVRfTlYxMikKKwlpZiAoeSAmJiBmYi0+Zm9ybWF0LT5mb3JtYXQgIT0gRFJNX0ZPUk1B VF9OVjEyKQogCQlyZXR1cm4gMDsKIAogCS8qIEZvciBOb24gWS10aWxlIHJldHVybiA4LWJsb2Nr cyAqLwpAQCAtMzMzOCwxMiArMzMzOCwxMiBAQCBza2xfZGRiX21pbl9hbGxvYyhjb25zdCBzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGUsCiAJCXN3YXAoc3JjX3csIHNyY19oKTsKIAogCS8q IEhhbHZlIFVWIHBsYW5lIHdpZHRoIGFuZCBoZWlnaHQgZm9yIE5WMTIgKi8KLQlpZiAoZmItPnBp eGVsX2Zvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIgJiYgIXkpIHsKKwlpZiAoZmItPmZvcm1hdC0+ Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMiAmJiAheSkgewogCQlzcmNfdyAvPSAyOwogCQlzcmNf aCAvPSAyOwogCX0KIAotCWlmIChmYi0+cGl4ZWxfZm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMiAm JiAheSkKKwlpZiAoZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JNQVRfTlYxMiAmJiAheSkK IAkJcGxhbmVfYnBwID0gZmItPmZvcm1hdC0+Y3BwWzFdOwogCWVsc2UKIAkJcGxhbmVfYnBwID0g ZmItPmZvcm1hdC0+Y3BwWzBdOwpAQCAtMzYxMCw3ICszNjEwLDcgQEAgc3RhdGljIGludCBza2xf Y29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAJcGxhbmVfcGl4ZWxfcmF0ZSA9IHNrbF9hZGp1c3RlZF9wbGFuZV9waXhlbF9yYXRlKGNzdGF0 ZSwgaW50ZWxfcHN0YXRlKTsKIAogCWlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHBzdGF0ZS0+ cm90YXRpb24pKSB7Ci0JCWludCBjcHAgPSAoZmItPnBpeGVsX2Zvcm1hdCA9PSBEUk1fRk9STUFU X05WMTIpID8KKwkJaW50IGNwcCA9IChmYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9O VjEyKSA/CiAJCQlmYi0+Zm9ybWF0LT5jcHBbMV0gOgogCQkJZmItPmZvcm1hdC0+Y3BwWzBdOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCmluZGV4IGI0NmMxNzk0ZDNhYy4uZmY3NjZj MGNiODczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwpAQCAtMjIzLDcgKzIyMyw3 IEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAogCQlQTEFO RV9DVExfUElQRV9HQU1NQV9FTkFCTEUgfAogCQlQTEFORV9DVExfUElQRV9DU0NfRU5BQkxFOwog Ci0JcGxhbmVfY3RsIHw9IHNrbF9wbGFuZV9jdGxfZm9ybWF0KGZiLT5waXhlbF9mb3JtYXQpOwor CXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX2Zvcm1hdChmYi0+Zm9ybWF0LT5mb3JtYXQpOwog CXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX3RpbGluZyhmYi0+bW9kaWZpZXIpOwogCiAJcGxh bmVfY3RsIHw9IHNrbF9wbGFuZV9jdGxfcm90YXRpb24ocm90YXRpb24pOwpAQCAtMzU3LDcgKzM1 Nyw3IEBAIHZsdl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHBsYW5lLAogCiAJc3By Y3RsID0gU1BfRU5BQkxFOwogCi0Jc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7CisJc3dpdGNo IChmYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JNQVRfWVVZVjoKIAkJc3ByY3Rs IHw9IFNQX0ZPUk1BVF9ZVVY0MjIgfCBTUF9ZVVZfT1JERVJfWVVZVjsKIAkJYnJlYWs7CkBAIC00 NDMsNyArNDQzLDcgQEAgdmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUs CiAJCXNwcmN0bCB8PSBTUF9TT1VSQ0VfS0VZOwogCiAJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3By aXYpICYmIHBpcGUgPT0gUElQRV9CKQotCQljaHZfdXBkYXRlX2NzYyhpbnRlbF9wbGFuZSwgZmIt PnBpeGVsX2Zvcm1hdCk7CisJCWNodl91cGRhdGVfY3NjKGludGVsX3BsYW5lLCBmYi0+Zm9ybWF0 LT5mb3JtYXQpOwogCiAJSTkxNV9XUklURShTUFNUUklERShwaXBlLCBwbGFuZSksIGZiLT5waXRj aGVzWzBdKTsKIAlJOTE1X1dSSVRFKFNQUE9TKHBpcGUsIHBsYW5lKSwgKGNydGNfeSA8PCAxNikg fCBjcnRjX3gpOwpAQCAtNTAyLDcgKzUwMiw3IEBAIGl2Yl91cGRhdGVfcGxhbmUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCiAKIAlzcHJjdGwgPSBTUFJJVEVfRU5BQkxFOwogCi0Jc3dpdGNoIChm Yi0+cGl4ZWxfZm9ybWF0KSB7CisJc3dpdGNoIChmYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAljYXNl IERSTV9GT1JNQVRfWEJHUjg4ODg6CiAJCXNwcmN0bCB8PSBTUFJJVEVfRk9STUFUX1JHQlg4ODgg fCBTUFJJVEVfUkdCX09SREVSX1JHQlg7CiAJCWJyZWFrOwpAQCAtNjQwLDcgKzY0MCw3IEBAIGls a191cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAKIAlkdnNjbnRyID0gRFZT X0VOQUJMRTsKIAotCXN3aXRjaCAoZmItPnBpeGVsX2Zvcm1hdCkgeworCXN3aXRjaCAoZmItPmZv cm1hdC0+Zm9ybWF0KSB7CiAJY2FzZSBEUk1fRk9STUFUX1hCR1I4ODg4OgogCQlkdnNjbnRyIHw9 IERWU19GT1JNQVRfUkdCWDg4OCB8IERWU19SR0JfT1JERVJfWEJHUjsKIAkJYnJlYWs7CkBAIC04 NjYsNyArODY2LDcgQEAgaW50ZWxfY2hlY2tfc3ByaXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAogCQlzcmNfeSA9IHNyYy0+eTEgPj4gMTY7CiAJCXNyY19oID0gZHJtX3JlY3RfaGVp Z2h0KHNyYykgPj4gMTY7CiAKLQkJaWYgKGZvcm1hdF9pc195dXYoZmItPnBpeGVsX2Zvcm1hdCkp IHsKKwkJaWYgKGZvcm1hdF9pc195dXYoZmItPmZvcm1hdC0+Zm9ybWF0KSkgewogCQkJc3JjX3gg Jj0gfjE7CiAJCQlzcmNfdyAmPSB+MTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2lt eC9pcHV2My1wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1wbGFuZS5jCmluZGV4 IGU3NGEwYWQ1Mjk1MC4uNzZmY2M1ZjBkOWUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aW14L2lwdXYzLXBsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1wbGFuZS5j CkBAIC03Nyw3ICs3Nyw3IEBAIGRybV9wbGFuZV9zdGF0ZV90b19lYmEoc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSAqc3RhdGUpCiAJQlVHX09OKCFjbWFfb2JqKTsKIAogCXJldHVybiBjbWFfb2JqLT5w YWRkciArIGZiLT5vZmZzZXRzWzBdICsgZmItPnBpdGNoZXNbMF0gKiB5ICsKLQkgICAgICAgZHJt X2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCkgKiB4OworCSAgICAgICBkcm1f Zm9ybWF0X3BsYW5lX2NwcChmYi0+Zm9ybWF0LT5mb3JtYXQsIDApICogeDsKIH0KIAogc3RhdGlj IGlubGluZSB1bnNpZ25lZCBsb25nCkBAIC05MiwxMSArOTIsMTEgQEAgZHJtX3BsYW5lX3N0YXRl X3RvX3VibyhzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKIAljbWFfb2JqID0gZHJtX2Zi X2NtYV9nZXRfZ2VtX29iaihmYiwgMSk7CiAJQlVHX09OKCFjbWFfb2JqKTsKIAotCXggLz0gZHJt X2Zvcm1hdF9ob3J6X2Nocm9tYV9zdWJzYW1wbGluZyhmYi0+cGl4ZWxfZm9ybWF0KTsKLQl5IC89 IGRybV9mb3JtYXRfdmVydF9jaHJvbWFfc3Vic2FtcGxpbmcoZmItPnBpeGVsX2Zvcm1hdCk7CisJ eCAvPSBkcm1fZm9ybWF0X2hvcnpfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5mb3JtYXQtPmZvcm1h dCk7CisJeSAvPSBkcm1fZm9ybWF0X3ZlcnRfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5mb3JtYXQt PmZvcm1hdCk7CiAKIAlyZXR1cm4gY21hX29iai0+cGFkZHIgKyBmYi0+b2Zmc2V0c1sxXSArIGZi LT5waXRjaGVzWzFdICogeSArCi0JICAgICAgIGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhl bF9mb3JtYXQsIDEpICogeCAtIGViYTsKKwkgICAgICAgZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmIt PmZvcm1hdC0+Zm9ybWF0LCAxKSAqIHggLSBlYmE7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWdu ZWQgbG9uZwpAQCAtMTExLDExICsxMTEsMTEgQEAgZHJtX3BsYW5lX3N0YXRlX3RvX3ZibyhzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKIAljbWFfb2JqID0gZHJtX2ZiX2NtYV9nZXRfZ2Vt X29iaihmYiwgMik7CiAJQlVHX09OKCFjbWFfb2JqKTsKIAotCXggLz0gZHJtX2Zvcm1hdF9ob3J6 X2Nocm9tYV9zdWJzYW1wbGluZyhmYi0+cGl4ZWxfZm9ybWF0KTsKLQl5IC89IGRybV9mb3JtYXRf dmVydF9jaHJvbWFfc3Vic2FtcGxpbmcoZmItPnBpeGVsX2Zvcm1hdCk7CisJeCAvPSBkcm1fZm9y bWF0X2hvcnpfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5mb3JtYXQtPmZvcm1hdCk7CisJeSAvPSBk cm1fZm9ybWF0X3ZlcnRfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5mb3JtYXQtPmZvcm1hdCk7CiAK IAlyZXR1cm4gY21hX29iai0+cGFkZHIgKyBmYi0+b2Zmc2V0c1syXSArIGZiLT5waXRjaGVzWzJd ICogeSArCi0JICAgICAgIGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDIp ICogeCAtIGViYTsKKwkgICAgICAgZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPmZvcm1hdC0+Zm9y bWF0LCAyKSAqIHggLSBlYmE7CiB9CiAKIHZvaWQgaXB1X3BsYW5lX3B1dF9yZXNvdXJjZXMoc3Ry dWN0IGlwdV9wbGFuZSAqaXB1X3BsYW5lKQpAQCAtMjgxLDcgKzI4MSw3IEBAIHN0YXRpYyBpbnQg aXB1X3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkgKi8KIAlp ZiAob2xkX2ZiICYmIChzdGF0ZS0+c3JjX3cgIT0gb2xkX3N0YXRlLT5zcmNfdyB8fAogCQkJICAg ICAgc3RhdGUtPnNyY19oICE9IG9sZF9zdGF0ZS0+c3JjX2ggfHwKLQkJCSAgICAgIGZiLT5waXhl bF9mb3JtYXQgIT0gb2xkX2ZiLT5waXhlbF9mb3JtYXQpKQorCQkJICAgICAgZmItPmZvcm1hdC0+ Zm9ybWF0ICE9IG9sZF9mYi0+Zm9ybWF0LT5mb3JtYXQpKQogCQljcnRjX3N0YXRlLT5tb2RlX2No YW5nZWQgPSB0cnVlOwogCiAJZWJhID0gZHJtX3BsYW5lX3N0YXRlX3RvX2ViYShzdGF0ZSk7CkBA IC0yOTUsNyArMjk1LDcgQEAgc3RhdGljIGludCBpcHVfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAogCWlmIChvbGRfZmIgJiYgZmItPnBpdGNoZXNbMF0gIT0gb2xk X2ZiLT5waXRjaGVzWzBdKQogCQljcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVlOwogCi0J c3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7CisJc3dpdGNoIChmYi0+Zm9ybWF0LT5mb3JtYXQp IHsKIAljYXNlIERSTV9GT1JNQVRfWVVWNDIwOgogCWNhc2UgRFJNX0ZPUk1BVF9ZVlU0MjA6CiAJ Y2FzZSBEUk1fRk9STUFUX1lVVjQyMjoKQEAgLTMxNSw3ICszMTUsNyBAQCBzdGF0aWMgaW50IGlw dV9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCWlmICh2Ym8g JiAweDcgfHwgdmJvID4gMHhmZmZmZjgpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAotCQlpZiAob2xk X2ZiICYmIChmYi0+cGl4ZWxfZm9ybWF0ID09IG9sZF9mYi0+cGl4ZWxfZm9ybWF0KSkgeworCQlp ZiAob2xkX2ZiICYmIChmYi0+Zm9ybWF0LT5mb3JtYXQgPT0gb2xkX2ZiLT5mb3JtYXQtPmZvcm1h dCkpIHsKIAkJCW9sZF92Ym8gPSBkcm1fcGxhbmVfc3RhdGVfdG9fdmJvKG9sZF9zdGF0ZSk7CiAJ CQlpZiAodmJvICE9IG9sZF92Ym8pCiAJCQkJY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1 ZTsKQEAgLTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgaW50IGlwdV9wbGFuZV9hdG9taWNfY2hlY2so c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCWlmICh1Ym8gJiAweDcgfHwgdWJvID4gMHhmZmZm ZjgpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAotCQlpZiAob2xkX2ZiICYmIChmYi0+cGl4ZWxfZm9y bWF0ID09IG9sZF9mYi0+cGl4ZWxfZm9ybWF0KSkgeworCQlpZiAob2xkX2ZiICYmIChmYi0+Zm9y bWF0LT5mb3JtYXQgPT0gb2xkX2ZiLT5mb3JtYXQtPmZvcm1hdCkpIHsKIAkJCW9sZF91Ym8gPSBk cm1fcGxhbmVfc3RhdGVfdG9fdWJvKG9sZF9zdGF0ZSk7CiAJCQlpZiAodWJvICE9IG9sZF91Ym8p CiAJCQkJY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKQEAgLTM0OCw4ICszNDgsOCBA QCBzdGF0aWMgaW50IGlwdV9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCiAJCSAqIFRoZSB4L3kgb2Zmc2V0cyBtdXN0IGJlIGV2ZW4gaW4gY2FzZSBvZiBob3Jpem9u dGFsL3ZlcnRpY2FsCiAJCSAqIGNocm9tYSBzdWJzYW1wbGluZy4KIAkJICovCi0JCWhzdWIgPSBk cm1fZm9ybWF0X2hvcnpfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5waXhlbF9mb3JtYXQpOwotCQl2 c3ViID0gZHJtX2Zvcm1hdF92ZXJ0X2Nocm9tYV9zdWJzYW1wbGluZyhmYi0+cGl4ZWxfZm9ybWF0 KTsKKwkJaHN1YiA9IGRybV9mb3JtYXRfaG9yel9jaHJvbWFfc3Vic2FtcGxpbmcoZmItPmZvcm1h dC0+Zm9ybWF0KTsKKwkJdnN1YiA9IGRybV9mb3JtYXRfdmVydF9jaHJvbWFfc3Vic2FtcGxpbmco ZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAkJaWYgKCgoc3RhdGUtPnNyY194ID4+IDE2KSAmIChoc3Vi IC0gMSkpIHx8CiAJCSAgICAoKHN0YXRlLT5zcmNfeSA+PiAxNikgJiAodnN1YiAtIDEpKSkKIAkJ CXJldHVybiAtRUlOVkFMOwpAQCAtMzkyLDEzICszOTIsMTMgQEAgc3RhdGljIHZvaWQgaXB1X3Bs YW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCWlwdV9kcF9zZXRf Z2xvYmFsX2FscGhhKGlwdV9wbGFuZS0+ZHAsIHRydWUsIDAsIHRydWUpOwogCQlicmVhazsKIAlj YXNlIElQVV9EUF9GTE9XX1NZTkNfRkc6Ci0JCWljcyA9IGlwdV9kcm1fZm91cmNjX3RvX2NvbG9y c3BhY2Uoc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQpOworCQlpY3MgPSBpcHVfZHJtX2ZvdXJjY190 b19jb2xvcnNwYWNlKHN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQpOwogCQlpcHVfZHBfc2V0dXBf Y2hhbm5lbChpcHVfcGxhbmUtPmRwLCBpY3MsCiAJCQkJCUlQVVYzX0NPTE9SU1BBQ0VfVU5LTk9X Tik7CiAJCWlwdV9kcF9zZXRfd2luZG93X3BvcyhpcHVfcGxhbmUtPmRwLCBzdGF0ZS0+Y3J0Y194 LAogCQkJCQlzdGF0ZS0+Y3J0Y195KTsKIAkJLyogRW5hYmxlIGxvY2FsIGFscGhhIG9uIHBhcnRp YWwgcGxhbmUgKi8KLQkJc3dpdGNoIChzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCkgeworCQlzd2l0 Y2ggKHN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAkJY2FzZSBEUk1fRk9STUFUX0FSR0Ix NTU1OgogCQljYXNlIERSTV9GT1JNQVRfQUJHUjE1NTU6CiAJCWNhc2UgRFJNX0ZPUk1BVF9SR0JB NTU1MToKQEAgLTQyMSwxMSArNDIxLDExIEBAIHN0YXRpYyB2b2lkIGlwdV9wbGFuZV9hdG9taWNf dXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWlwdV9jcG1lbV96ZXJvKGlwdV9wbGFu ZS0+aXB1X2NoKTsKIAlpcHVfY3BtZW1fc2V0X3Jlc29sdXRpb24oaXB1X3BsYW5lLT5pcHVfY2gs IHN0YXRlLT5zcmNfdyA+PiAxNiwKIAkJCQkJc3RhdGUtPnNyY19oID4+IDE2KTsKLQlpcHVfY3Bt ZW1fc2V0X2ZtdChpcHVfcGxhbmUtPmlwdV9jaCwgc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQpOwor CWlwdV9jcG1lbV9zZXRfZm10KGlwdV9wbGFuZS0+aXB1X2NoLCBzdGF0ZS0+ZmItPmZvcm1hdC0+ Zm9ybWF0KTsKIAlpcHVfY3BtZW1fc2V0X2hpZ2hfcHJpb3JpdHkoaXB1X3BsYW5lLT5pcHVfY2gp OwogCWlwdV9pZG1hY19zZXRfZG91YmxlX2J1ZmZlcihpcHVfcGxhbmUtPmlwdV9jaCwgMSk7CiAJ aXB1X2NwbWVtX3NldF9zdHJpZGUoaXB1X3BsYW5lLT5pcHVfY2gsIHN0YXRlLT5mYi0+cGl0Y2hl c1swXSk7Ci0Jc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7CisJc3dpdGNoIChmYi0+Zm9ybWF0 LT5mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JNQVRfWVVWNDIwOgogCWNhc2UgRFJNX0ZPUk1BVF9Z VlU0MjA6CiAJY2FzZSBEUk1fRk9STUFUX1lVVjQyMjoKQEAgLTQzNCw5ICs0MzQsOSBAQCBzdGF0 aWMgdm9pZCBpcHVfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK IAljYXNlIERSTV9GT1JNQVRfWVZVNDQ0OgogCQl1Ym8gPSBkcm1fcGxhbmVfc3RhdGVfdG9fdWJv KHN0YXRlKTsKIAkJdmJvID0gZHJtX3BsYW5lX3N0YXRlX3RvX3ZibyhzdGF0ZSk7Ci0JCWlmIChm Yi0+cGl4ZWxfZm9ybWF0ID09IERSTV9GT1JNQVRfWVZVNDIwIHx8Ci0JCSAgICBmYi0+cGl4ZWxf Zm9ybWF0ID09IERSTV9GT1JNQVRfWVZVNDIyIHx8Ci0JCSAgICBmYi0+cGl4ZWxfZm9ybWF0ID09 IERSTV9GT1JNQVRfWVZVNDQ0KQorCQlpZiAoZmItPmZvcm1hdC0+Zm9ybWF0ID09IERSTV9GT1JN QVRfWVZVNDIwIHx8CisJCSAgICBmYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9ZVlU0 MjIgfHwKKwkJICAgIGZiLT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX1lWVTQ0NCkKIAkJ CXN3YXAodWJvLCB2Ym8pOwogCiAJCWlwdV9jcG1lbV9zZXRfeXV2X3BsYW5hcl9mdWxsKGlwdV9w bGFuZS0+aXB1X2NoLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19k cm1fcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX3BsYW5lLmMKaW5k ZXggYzQ2MWEyMzJjYmY1Li5kYWYwNDliYmU4NzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9tdGtfZHJtX3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kcm1fcGxhbmUuYwpAQCAtMTMzLDcgKzEzMyw3IEBAIHN0YXRpYyB2b2lkIG10a19wbGFu ZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCW10a19nZW0gPSB0b19t dGtfZ2VtX29iaihnZW0pOwogCWFkZHIgPSBtdGtfZ2VtLT5kbWFfYWRkcjsKIAlwaXRjaCA9IGZi LT5waXRjaGVzWzBdOwotCWZvcm1hdCA9IGZiLT5waXhlbF9mb3JtYXQ7CisJZm9ybWF0ID0gZmIt PmZvcm1hdC0+Zm9ybWF0OwogCiAJYWRkciArPSAocGxhbmUtPnN0YXRlLT5zcmMueDEgPj4gMTYp ICogZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZm9ybWF0LCAwKTsKIAlhZGRyICs9IChwbGFuZS0+c3Rh dGUtPnNyYy55MSA+PiAxNikgKiBwaXRjaDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t c20vbWRwL21kcDQvbWRwNF9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNC9t ZHA0X3BsYW5lLmMKaW5kZXggOTExZTQ2OTBkMzZhLi41MzYxOWQwNzY3N2UgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9wbGFuZS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9wbGFuZS5jCkBAIC00Myw3ICs0Myw3IEBAIGVudW0g bWRwNF9mcmFtZV9mb3JtYXQgbWRwNF9nZXRfZnJhbWVfZm9ybWF0KHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiKQogCWlmIChmYi0+bW9kaWZpZXIgPT0gRFJNX0ZPUk1BVF9NT0RfU0FNU1VOR182 NF8zMl9USUxFKQogCQlpc190aWxlID0gdHJ1ZTsKIAotCWlmIChmYi0+cGl4ZWxfZm9ybWF0ID09 IERSTV9GT1JNQVRfTlYxMiAmJiBpc190aWxlKQorCWlmIChmYi0+Zm9ybWF0LT5mb3JtYXQgPT0g RFJNX0ZPUk1BVF9OVjEyICYmIGlzX3RpbGUpCiAJCXJldHVybiBGUkFNRV9USUxFX1lDQkNSXzQy MDsKIAogCXJldHVybiBGUkFNRV9MSU5FQVI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUv bWRwNV9wbGFuZS5jCmluZGV4IDgxYzA1NjJhYjQ4OS4uZmIzMmQ0NTYzZDkyIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYwpAQCAtMzQwLDcgKzM0MCw3IEBAIHN0 YXRpYyBpbnQgbWRwNV9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs CiAJaWYgKHBsYW5lX2VuYWJsZWQoc3RhdGUpICYmIHBsYW5lX2VuYWJsZWQob2xkX3N0YXRlKSkg ewogCQkvKiB3ZSBjYW5ub3QgY2hhbmdlIFNNUCBibG9jayBjb25maWd1cmF0aW9uIGR1cmluZyBz Y2Fub3V0OiAqLwogCQlib29sIGZ1bGxfbW9kZXNldCA9IGZhbHNlOwotCQlpZiAoc3RhdGUtPmZi LT5waXhlbF9mb3JtYXQgIT0gb2xkX3N0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0KSB7CisJCWlmIChz dGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0ICE9IG9sZF9zdGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0 KSB7CiAJCQlEQkcoIiVzOiBwaXhlbF9mb3JtYXQgY2hhbmdlISIsIG1kcDVfcGxhbmUtPm5hbWUp OwogCQkJZnVsbF9tb2Rlc2V0ID0gdHJ1ZTsKIAkJfQpAQCAtNzAzLDcgKzcwMyw3IEBAIHN0YXRp YyBpbnQgbWRwNV9wbGFuZV9tb2RlX3NldChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAl1bnNp Z25lZCBsb25nIGZsYWdzOwogCWludCByZXQ7CiAKLQlucGxhbmVzID0gZHJtX2Zvcm1hdF9udW1f cGxhbmVzKGZiLT5waXhlbF9mb3JtYXQpOworCW5wbGFuZXMgPSBkcm1fZm9ybWF0X251bV9wbGFu ZXMoZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAogCS8qIGJhZCBmb3JtYXRzIHNob3VsZCBhbHJlYWR5 IGJlIHJlamVjdGVkOiAqLwogCWlmIChXQVJOX09OKG5wbGFuZXMgPiBwaXBlMm5jbGllbnRzKHBp cGUpKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZiLmMgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9mYi5jCmluZGV4IDk2MTRlZDQwNTgwOC4uNWI1NzkyNDhmYmFhIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mYi5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vbXNtX2ZiLmMKQEAgLTQxLDcgKzQxLDcgQEAgc3RhdGljIGludCBtc21fZnJhbWVi dWZmZXJfY3JlYXRlX2hhbmRsZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIHN0YXRpYyB2 b2lkIG1zbV9mcmFtZWJ1ZmZlcl9kZXN0cm95KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQog ewogCXN0cnVjdCBtc21fZnJhbWVidWZmZXIgKm1zbV9mYiA9IHRvX21zbV9mcmFtZWJ1ZmZlcihm Yik7Ci0JaW50IGksIG4gPSBkcm1fZm9ybWF0X251bV9wbGFuZXMoZmItPnBpeGVsX2Zvcm1hdCk7 CisJaW50IGksIG4gPSBkcm1fZm9ybWF0X251bV9wbGFuZXMoZmItPmZvcm1hdC0+Zm9ybWF0KTsK IAogCURCRygiZGVzdHJveTogRkIgSUQ6ICVkICglcCkiLCBmYi0+YmFzZS5pZCwgZmIpOwogCkBA IC02NSwxMCArNjUsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVu Y3MgbXNtX2ZyYW1lYnVmZmVyX2Z1bmNzID0gewogdm9pZCBtc21fZnJhbWVidWZmZXJfZGVzY3Jp YmUoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIHN0cnVjdCBzZXFfZmlsZSAqbSkKIHsKIAlz dHJ1Y3QgbXNtX2ZyYW1lYnVmZmVyICptc21fZmIgPSB0b19tc21fZnJhbWVidWZmZXIoZmIpOwot CWludCBpLCBuID0gZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZiLT5waXhlbF9mb3JtYXQpOworCWlu dCBpLCBuID0gZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZiLT5mb3JtYXQtPmZvcm1hdCk7CiAKIAlz ZXFfcHJpbnRmKG0sICJmYjogJWR4JWRAJTQuNHMgKCUyZCwgSUQ6JWQpXG4iLAotCQkJZmItPndp ZHRoLCBmYi0+aGVpZ2h0LCAoY2hhciAqKSZmYi0+cGl4ZWxfZm9ybWF0LAorCQkJZmItPndpZHRo LCBmYi0+aGVpZ2h0LCAoY2hhciAqKSZmYi0+Zm9ybWF0LT5mb3JtYXQsCiAJCQlkcm1fZnJhbWVi dWZmZXJfcmVhZF9yZWZjb3VudChmYiksIGZiLT5iYXNlLmlkKTsKIAogCWZvciAoaSA9IDA7IGkg PCBuOyBpKyspIHsKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBtc21fZnJhbWVidWZmZXJfZGVzY3Jp YmUoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIHN0cnVjdCBzZXFfZmlsZSAqbSkKIGludCBt c21fZnJhbWVidWZmZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgaW50IGlk KQogewogCXN0cnVjdCBtc21fZnJhbWVidWZmZXIgKm1zbV9mYiA9IHRvX21zbV9mcmFtZWJ1ZmZl cihmYik7Ci0JaW50IHJldCwgaSwgbiA9IGRybV9mb3JtYXRfbnVtX3BsYW5lcyhmYi0+cGl4ZWxf Zm9ybWF0KTsKKwlpbnQgcmV0LCBpLCBuID0gZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZiLT5mb3Jt YXQtPmZvcm1hdCk7CiAJdWludDMyX3QgaW92YTsKIAogCWZvciAoaSA9IDA7IGkgPCBuOyBpKysp IHsKQEAgLTEwMyw3ICsxMDMsNyBAQCBpbnQgbXNtX2ZyYW1lYnVmZmVyX3ByZXBhcmUoc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBpZCkKIHZvaWQgbXNtX2ZyYW1lYnVmZmVyX2NsZWFu dXAoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBpZCkKIHsKIAlzdHJ1Y3QgbXNtX2Zy YW1lYnVmZmVyICptc21fZmIgPSB0b19tc21fZnJhbWVidWZmZXIoZmIpOwotCWludCBpLCBuID0g ZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZiLT5waXhlbF9mb3JtYXQpOworCWludCBpLCBuID0gZHJt X2Zvcm1hdF9udW1fcGxhbmVzKGZiLT5mb3JtYXQtPmZvcm1hdCk7CiAKIAlmb3IgKGkgPSAwOyBp IDwgbjsgaSsrKQogCQltc21fZ2VtX3B1dF9pb3ZhKG1zbV9mYi0+cGxhbmVzW2ldLCBpZCk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9vdmVybGF5LmMgYi9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9vdmVybGF5LmMKaW5kZXggYTc5NTE0ZDQ0 MGIzLi42Mjc1YzI3MGRmMjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rp c3BudjA0L292ZXJsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9v dmVybGF5LmMKQEAgLTE0NSwxNiArMTQ1LDE2IEBAIG52MTBfdXBkYXRlX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJbnZpZl93cjMyKGRldiwg TlZfUFZJREVPX1BPSU5UX09VVChmbGlwKSwgY3J0Y195IDw8IDE2IHwgY3J0Y194KTsKIAludmlm X3dyMzIoZGV2LCBOVl9QVklERU9fU0laRV9PVVQoZmxpcCksIGNydGNfaCA8PCAxNiB8IGNydGNf dyk7CiAKLQlpZiAoZmItPnBpeGVsX2Zvcm1hdCAhPSBEUk1fRk9STUFUX1VZVlkpCisJaWYgKGZi LT5mb3JtYXQtPmZvcm1hdCAhPSBEUk1fRk9STUFUX1VZVlkpCiAJCWZvcm1hdCB8PSBOVl9QVklE RU9fRk9STUFUX0NPTE9SX0xFX0NSOFlCOENCOFlBODsKLQlpZiAoZmItPnBpeGVsX2Zvcm1hdCA9 PSBEUk1fRk9STUFUX05WMTIpCisJaWYgKGZiLT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFU X05WMTIpCiAJCWZvcm1hdCB8PSBOVl9QVklERU9fRk9STUFUX1BMQU5BUjsKIAlpZiAobnZfcGxh bmUtPml0dXJidF83MDkpCiAJCWZvcm1hdCB8PSBOVl9QVklERU9fRk9STUFUX01BVFJJWF9JVFVS QlQ3MDk7CiAJaWYgKG52X3BsYW5lLT5jb2xvcmtleSAmICgxIDw8IDI0KSkKIAkJZm9ybWF0IHw9 IE5WX1BWSURFT19GT1JNQVRfRElTUExBWV9DT0xPUl9LRVk7CiAKLQlpZiAoZmItPnBpeGVsX2Zv cm1hdCA9PSBEUk1fRk9STUFUX05WMTIpIHsKKwlpZiAoZmItPmZvcm1hdC0+Zm9ybWF0ID09IERS TV9GT1JNQVRfTlYxMikgewogCQludmlmX3dyMzIoZGV2LCBOVl9QVklERU9fVVZQTEFORV9CQVNF KGZsaXApLCAwKTsKIAkJbnZpZl93cjMyKGRldiwgTlZfUFZJREVPX1VWUExBTkVfT0ZGU0VUX0JV RkYoZmxpcCksCiAJCQludl9mYi0+bnZiby0+Ym8ub2Zmc2V0ICsgZmItPm9mZnNldHNbMV0pOwpA QCAtNDExLDcgKzQxMSw3IEBAIG52MDRfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlpZiAobnZfcGxhbmUtPmNvbG9ya2V5ICYg KDEgPDwgMjQpKQogCQlvdmVybGF5IHw9IDB4MTA7Ci0JaWYgKGZiLT5waXhlbF9mb3JtYXQgPT0g RFJNX0ZPUk1BVF9ZVVlWKQorCWlmIChmYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1BVF9Z VVlWKQogCQlvdmVybGF5IHw9IDB4MTAwOwogCiAJbnZpZl93cjMyKGRldiwgTlZfUFZJREVPX09W RVJMQVksIG92ZXJsYXkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1 MF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYwppbmRl eCBkM2JkNDI4MDIzZWEuLjRmZDMxM2VlNDZiMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbnY1MF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1 MF9kaXNwbGF5LmMKQEAgLTExNTMsNyArMTE1Myw3IEBAIG52NTBfY3Vyc19hY3F1aXJlKHN0cnVj dCBudjUwX3duZHcgKnduZHcsIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5dywKIAlpZiAoYXN5 dy0+c3RhdGUuZmItPndpZHRoICE9IGFzeXctPnN0YXRlLmZiLT5oZWlnaHQpCiAJCXJldHVybiAt RUlOVkFMOwogCi0Jc3dpdGNoIChhc3l3LT5zdGF0ZS5mYi0+cGl4ZWxfZm9ybWF0KSB7CisJc3dp dGNoIChhc3l3LT5zdGF0ZS5mYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JNQVRf QVJHQjg4ODg6IGFzeWgtPmN1cnMuZm9ybWF0ID0gMTsgYnJlYWs7CiAJZGVmYXVsdDoKIAkJV0FS Tl9PTigxKTsKQEAgLTE0MzgsNyArMTQzOCw3IEBAIG52NTBfYmFzZV9hY3F1aXJlKHN0cnVjdCBu djUwX3duZHcgKnduZHcsIHN0cnVjdCBudjUwX3duZHdfYXRvbSAqYXN5dywKIAlhc3loLT5iYXNl LncgPSBhc3l3LT5zdGF0ZS5mYi0+d2lkdGg7CiAJYXN5aC0+YmFzZS5oID0gYXN5dy0+c3RhdGUu ZmItPmhlaWdodDsKIAotCXN3aXRjaCAoZmItPnBpeGVsX2Zvcm1hdCkgeworCXN3aXRjaCAoZmIt PmZvcm1hdC0+Zm9ybWF0KSB7CiAJY2FzZSBEUk1fRk9STUFUX0M4ICAgICAgICAgOiBhc3l3LT5p bWFnZS5mb3JtYXQgPSAweDFlOyBicmVhazsKIAljYXNlIERSTV9GT1JNQVRfUkdCNTY1ICAgICA6 IGFzeXctPmltYWdlLmZvcm1hdCA9IDB4ZTg7IGJyZWFrOwogCWNhc2UgRFJNX0ZPUk1BVF9YUkdC MTU1NSAgIDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZmIuYyBi L2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZmIuYwppbmRleCA5ODc1Yzk5YmUwMDkuLmQy NzQyNzcyYjlkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9mYi5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZmIuYwpAQCAtMTA3LDcgKzEwNyw3 IEBAIHN0YXRpYyBpbnQgb21hcF9mcmFtZWJ1ZmZlcl9jcmVhdGVfaGFuZGxlKHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLAogc3RhdGljIHZvaWQgb21hcF9mcmFtZWJ1ZmZlcl9kZXN0cm95KHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQogewogCXN0cnVjdCBvbWFwX2ZyYW1lYnVmZmVyICpv bWFwX2ZiID0gdG9fb21hcF9mcmFtZWJ1ZmZlcihmYik7Ci0JaW50IGksIG4gPSBkcm1fZm9ybWF0 X251bV9wbGFuZXMoZmItPnBpeGVsX2Zvcm1hdCk7CisJaW50IGksIG4gPSBkcm1fZm9ybWF0X251 bV9wbGFuZXMoZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAogCURCRygiZGVzdHJveTogRkIgSUQ6ICVk ICglcCkiLCBmYi0+YmFzZS5pZCwgZmIpOwogCkBAIC0yNTIsNyArMjUyLDcgQEAgdm9pZCBvbWFw X2ZyYW1lYnVmZmVyX3VwZGF0ZV9zY2Fub3V0KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAog aW50IG9tYXBfZnJhbWVidWZmZXJfcGluKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQogewog CXN0cnVjdCBvbWFwX2ZyYW1lYnVmZmVyICpvbWFwX2ZiID0gdG9fb21hcF9mcmFtZWJ1ZmZlcihm Yik7Ci0JaW50IHJldCwgaSwgbiA9IGRybV9mb3JtYXRfbnVtX3BsYW5lcyhmYi0+cGl4ZWxfZm9y bWF0KTsKKwlpbnQgcmV0LCBpLCBuID0gZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZiLT5mb3JtYXQt PmZvcm1hdCk7CiAKIAltdXRleF9sb2NrKCZvbWFwX2ZiLT5sb2NrKTsKIApAQCAtMjkyLDcgKzI5 Miw3IEBAIGludCBvbWFwX2ZyYW1lYnVmZmVyX3BpbihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YikKIHZvaWQgb21hcF9mcmFtZWJ1ZmZlcl91bnBpbihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YikKIHsKIAlzdHJ1Y3Qgb21hcF9mcmFtZWJ1ZmZlciAqb21hcF9mYiA9IHRvX29tYXBfZnJhbWVi dWZmZXIoZmIpOwotCWludCBpLCBuID0gZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZiLT5waXhlbF9m b3JtYXQpOworCWludCBpLCBuID0gZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZiLT5mb3JtYXQtPmZv cm1hdCk7CiAKIAltdXRleF9sb2NrKCZvbWFwX2ZiLT5sb2NrKTsKIApAQCAtMzQzLDEwICszNDMs MTAgQEAgc3RydWN0IGRybV9jb25uZWN0b3IgKm9tYXBfZnJhbWVidWZmZXJfZ2V0X25leHRfY29u bmVjdG9yKAogdm9pZCBvbWFwX2ZyYW1lYnVmZmVyX2Rlc2NyaWJlKHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiLCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCiB7CiAJc3RydWN0IG9tYXBfZnJhbWVidWZm ZXIgKm9tYXBfZmIgPSB0b19vbWFwX2ZyYW1lYnVmZmVyKGZiKTsKLQlpbnQgaSwgbiA9IGRybV9m b3JtYXRfbnVtX3BsYW5lcyhmYi0+cGl4ZWxfZm9ybWF0KTsKKwlpbnQgaSwgbiA9IGRybV9mb3Jt YXRfbnVtX3BsYW5lcyhmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCiAJc2VxX3ByaW50ZihtLCAiZmI6 ICVkeCVkQCU0LjRzXG4iLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsCi0JCQkoY2hhciAqKSZmYi0+ cGl4ZWxfZm9ybWF0KTsKKwkJCShjaGFyICopJmZiLT5mb3JtYXQtPmZvcm1hdCk7CiAKIAlmb3Ig KGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAJCXN0cnVjdCBwbGFuZSAqcGxhbmUgPSAmb21hcF9mYi0+ cGxhbmVzW2ldOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19j cnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYwppbmRleCA4ZWVm ZmM1MzI0YjIuLmIyZmY5ODY1NDZhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9hdG9tYmlvc19jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19j cnRjLmMKQEAgLTExOTUsNyArMTE5NSw3IEBAIHN0YXRpYyBpbnQgZGNlNF9jcnRjX2RvX3NldF9i YXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlyYWRlb25fYm9fZ2V0X3RpbGluZ19mbGFncyhy Ym8sICZ0aWxpbmdfZmxhZ3MsIE5VTEwpOwogCXJhZGVvbl9ib191bnJlc2VydmUocmJvKTsKIAot CXN3aXRjaCAodGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQpIHsKKwlzd2l0Y2ggKHRhcmdldF9mYi0+ Zm9ybWF0LT5mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JNQVRfQzg6CiAJCWZiX2Zvcm1hdCA9IChF VkVSR1JFRU5fR1JQSF9ERVBUSChFVkVSR1JFRU5fR1JQSF9ERVBUSF84QlBQKSB8CiAJCQkgICAg IEVWRVJHUkVFTl9HUlBIX0ZPUk1BVChFVkVSR1JFRU5fR1JQSF9GT1JNQVRfSU5ERVhFRCkpOwpA QCAtMTI2MSw3ICsxMjYxLDcgQEAgc3RhdGljIGludCBkY2U0X2NydGNfZG9fc2V0X2Jhc2Uoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAogCQlicmVhazsKIAlkZWZhdWx0OgogCQlEUk1fRVJST1IoIlVu c3VwcG9ydGVkIHNjcmVlbiBmb3JtYXQgJXNcbiIsCi0JCSAgICAgICAgICBkcm1fZ2V0X2Zvcm1h dF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUpKTsKKwkJICAgICAg ICAgIGRybV9nZXRfZm9ybWF0X25hbWUodGFyZ2V0X2ZiLT5mb3JtYXQtPmZvcm1hdCwgJmZvcm1h dF9uYW1lKSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIApAQCAtMTUxMSw3ICsxNTExLDcgQEAg c3RhdGljIGludCBhdml2b19jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK IAlyYWRlb25fYm9fZ2V0X3RpbGluZ19mbGFncyhyYm8sICZ0aWxpbmdfZmxhZ3MsIE5VTEwpOwog CXJhZGVvbl9ib191bnJlc2VydmUocmJvKTsKIAotCXN3aXRjaCAodGFyZ2V0X2ZiLT5waXhlbF9m b3JtYXQpIHsKKwlzd2l0Y2ggKHRhcmdldF9mYi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAljYXNlIERS TV9GT1JNQVRfQzg6CiAJCWZiX2Zvcm1hdCA9CiAJCSAgICBBVklWT19EMUdSUEhfQ09OVFJPTF9E RVBUSF84QlBQIHwKQEAgLTE1NjQsNyArMTU2NCw3IEBAIHN0YXRpYyBpbnQgYXZpdm9fY3J0Y19k b19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJ CURSTV9FUlJPUigiVW5zdXBwb3J0ZWQgc2NyZWVuIGZvcm1hdCAlc1xuIiwKLQkJICAgICAgICAg IGRybV9nZXRfZm9ybWF0X25hbWUodGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQsICZmb3JtYXRfbmFt ZSkpOworCQkgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZSh0YXJnZXRfZmItPmZvcm1hdC0+ Zm9ybWF0LCAmZm9ybWF0X25hbWUpKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3BsYW5lLmMgYi9kcml2ZXJzL2dw dS9kcm0vcmNhci1kdS9yY2FyX2R1X3BsYW5lLmMKaW5kZXggYTc0ZjhlZDhjYTJlLi5kY2RlNjI4 OGRhNmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfcGxhbmUu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3BsYW5lLmMKQEAgLTU2Nywx MCArNTY3LDEwIEBAIHN0YXRpYyBpbnQgcmNhcl9kdV9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCXJzdGF0ZS0+Zm9y bWF0ID0gcmNhcl9kdV9mb3JtYXRfaW5mbyhzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCk7CisJcnN0 YXRlLT5mb3JtYXQgPSByY2FyX2R1X2Zvcm1hdF9pbmZvKHN0YXRlLT5mYi0+Zm9ybWF0LT5mb3Jt YXQpOwogCWlmIChyc3RhdGUtPmZvcm1hdCA9PSBOVUxMKSB7CiAJCWRldl9kYmcocmNkdS0+ZGV2 LCAiJXM6IHVuc3VwcG9ydGVkIGZvcm1hdCAlMDh4XG4iLCBfX2Z1bmNfXywKLQkJCXN0YXRlLT5m Yi0+cGl4ZWxfZm9ybWF0KTsKKwkJCXN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQpOwogCQlyZXR1 cm4gLUVJTlZBTDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3Jj YXJfZHVfdnNwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3ZzcC5jCmluZGV4 IDgzZWJkMTYyZjNlZi4uYjViZmJlNTBiZDg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cmNhci1kdS9yY2FyX2R1X3ZzcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJf ZHVfdnNwLmMKQEAgLTIwMSwxMCArMjAxLDEwIEBAIHN0YXRpYyBpbnQgcmNhcl9kdV92c3BfcGxh bmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlyZXR1cm4gLUVJTlZB TDsKIAl9CiAKLQlyc3RhdGUtPmZvcm1hdCA9IHJjYXJfZHVfZm9ybWF0X2luZm8oc3RhdGUtPmZi LT5waXhlbF9mb3JtYXQpOworCXJzdGF0ZS0+Zm9ybWF0ID0gcmNhcl9kdV9mb3JtYXRfaW5mbyhz dGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAlpZiAocnN0YXRlLT5mb3JtYXQgPT0gTlVMTCkg ewogCQlkZXZfZGJnKHJjZHUtPmRldiwgIiVzOiB1bnN1cHBvcnRlZCBmb3JtYXQgJTA4eFxuIiwg X19mdW5jX18sCi0JCQlzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCk7CisJCQlzdGF0ZS0+ZmItPmZv cm1hdC0+Zm9ybWF0KTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jIGIvZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYwppbmRleCBjN2ViYTMwNWM0ODguLmY4YzZmNzRl ZGM4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92 b3AuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCkBA IC02NjgsNyArNjY4LDcgQEAgc3RhdGljIGludCB2b3BfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAogCWlmICghc3RhdGUtPnZpc2libGUpCiAJCXJldHVybiAwOwog Ci0JcmV0ID0gdm9wX2NvbnZlcnRfZm9ybWF0KGZiLT5waXhlbF9mb3JtYXQpOworCXJldCA9IHZv cF9jb252ZXJ0X2Zvcm1hdChmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCWlmIChyZXQgPCAwKQogCQly ZXR1cm4gcmV0OwogCkBAIC02NzYsNyArNjc2LDcgQEAgc3RhdGljIGludCB2b3BfcGxhbmVfYXRv bWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCSAqIFNyYy54MSBjYW4gYmUgb2Rk IHdoZW4gZG8gY2xpcCwgYnV0IHl1diBwbGFuZSBzdGFydCBwb2ludAogCSAqIG5lZWQgYWxpZ24g d2l0aCAyIHBpeGVsLgogCSAqLwotCWlmIChpc195dXZfc3VwcG9ydChmYi0+cGl4ZWxfZm9ybWF0 KSAmJiAoKHN0YXRlLT5zcmMueDEgPj4gMTYpICUgMikpCisJaWYgKGlzX3l1dl9zdXBwb3J0KGZi LT5mb3JtYXQtPmZvcm1hdCkgJiYgKChzdGF0ZS0+c3JjLngxID4+IDE2KSAlIDIpKQogCQlyZXR1 cm4gLUVJTlZBTDsKIAogCXJldHVybiAwOwpAQCAtNzQ5LDIxICs3NDksMjEgQEAgc3RhdGljIHZv aWQgdm9wX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJZHNw X3N0eSA9IGRlc3QtPnkxICsgY3J0Yy0+bW9kZS52dG90YWwgLSBjcnRjLT5tb2RlLnZzeW5jX3N0 YXJ0OwogCWRzcF9zdCA9IGRzcF9zdHkgPDwgMTYgfCAoZHNwX3N0eCAmIDB4ZmZmZik7CiAKLQlv ZmZzZXQgPSAoc3JjLT54MSA+PiAxNikgKiBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxf Zm9ybWF0LCAwKTsKKwlvZmZzZXQgPSAoc3JjLT54MSA+PiAxNikgKiBkcm1fZm9ybWF0X3BsYW5l X2NwcChmYi0+Zm9ybWF0LT5mb3JtYXQsIDApOwogCW9mZnNldCArPSAoc3JjLT55MSA+PiAxNikg KiBmYi0+cGl0Y2hlc1swXTsKIAlkbWFfYWRkciA9IHJrX29iai0+ZG1hX2FkZHIgKyBvZmZzZXQg KyBmYi0+b2Zmc2V0c1swXTsKIAotCWZvcm1hdCA9IHZvcF9jb252ZXJ0X2Zvcm1hdChmYi0+cGl4 ZWxfZm9ybWF0KTsKKwlmb3JtYXQgPSB2b3BfY29udmVydF9mb3JtYXQoZmItPmZvcm1hdC0+Zm9y bWF0KTsKIAogCXNwaW5fbG9jaygmdm9wLT5yZWdfbG9jayk7CiAKIAlWT1BfV0lOX1NFVCh2b3As IHdpbiwgZm9ybWF0LCBmb3JtYXQpOwogCVZPUF9XSU5fU0VUKHZvcCwgd2luLCB5cmdiX3Zpciwg ZmItPnBpdGNoZXNbMF0gPj4gMik7CiAJVk9QX1dJTl9TRVQodm9wLCB3aW4sIHlyZ2JfbXN0LCBk bWFfYWRkcik7Ci0JaWYgKGlzX3l1dl9zdXBwb3J0KGZiLT5waXhlbF9mb3JtYXQpKSB7Ci0JCWlu dCBoc3ViID0gZHJtX2Zvcm1hdF9ob3J6X2Nocm9tYV9zdWJzYW1wbGluZyhmYi0+cGl4ZWxfZm9y bWF0KTsKLQkJaW50IHZzdWIgPSBkcm1fZm9ybWF0X3ZlcnRfY2hyb21hX3N1YnNhbXBsaW5nKGZi LT5waXhlbF9mb3JtYXQpOwotCQlpbnQgYnBwID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBp eGVsX2Zvcm1hdCwgMSk7CisJaWYgKGlzX3l1dl9zdXBwb3J0KGZiLT5mb3JtYXQtPmZvcm1hdCkp IHsKKwkJaW50IGhzdWIgPSBkcm1fZm9ybWF0X2hvcnpfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5m b3JtYXQtPmZvcm1hdCk7CisJCWludCB2c3ViID0gZHJtX2Zvcm1hdF92ZXJ0X2Nocm9tYV9zdWJz YW1wbGluZyhmYi0+Zm9ybWF0LT5mb3JtYXQpOworCQlpbnQgYnBwID0gZHJtX2Zvcm1hdF9wbGFu ZV9jcHAoZmItPmZvcm1hdC0+Zm9ybWF0LCAxKTsKIAogCQl1dl9vYmogPSByb2NrY2hpcF9mYl9n ZXRfZ2VtX29iaihmYiwgMSk7CiAJCXJrX3V2X29iaiA9IHRvX3JvY2tjaGlwX29iaih1dl9vYmop OwpAQCAtNzc5LDE2ICs3NzksMTYgQEAgc3RhdGljIHZvaWQgdm9wX3BsYW5lX2F0b21pY191cGRh dGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJaWYgKHdpbi0+cGh5LT5zY2wpCiAJCXNjbF92 b3BfY2FsX3NjbF9mYWModm9wLCB3aW4sIGFjdHVhbF93LCBhY3R1YWxfaCwKIAkJCQkgICAgZHJt X3JlY3Rfd2lkdGgoZGVzdCksIGRybV9yZWN0X2hlaWdodChkZXN0KSwKLQkJCQkgICAgZmItPnBp eGVsX2Zvcm1hdCk7CisJCQkJICAgIGZiLT5mb3JtYXQtPmZvcm1hdCk7CiAKIAlWT1BfV0lOX1NF VCh2b3AsIHdpbiwgYWN0X2luZm8sIGFjdF9pbmZvKTsKIAlWT1BfV0lOX1NFVCh2b3AsIHdpbiwg ZHNwX2luZm8sIGRzcF9pbmZvKTsKIAlWT1BfV0lOX1NFVCh2b3AsIHdpbiwgZHNwX3N0LCBkc3Bf c3QpOwogCi0JcmJfc3dhcCA9IGhhc19yYl9zd2FwcGVkKGZiLT5waXhlbF9mb3JtYXQpOworCXJi X3N3YXAgPSBoYXNfcmJfc3dhcHBlZChmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCVZPUF9XSU5fU0VU KHZvcCwgd2luLCByYl9zd2FwLCByYl9zd2FwKTsKIAotCWlmIChpc19hbHBoYV9zdXBwb3J0KGZi LT5waXhlbF9mb3JtYXQpKSB7CisJaWYgKGlzX2FscGhhX3N1cHBvcnQoZmItPmZvcm1hdC0+Zm9y bWF0KSkgewogCQlWT1BfV0lOX1NFVCh2b3AsIHdpbiwgZHN0X2FscGhhX2N0bCwKIAkJCSAgICBE U1RfRkFDVE9SX00wKEFMUEhBX1NSQ19JTlZFUlNFKSk7CiAJCXZhbCA9IFNSQ19BTFBIQV9FTigx KSB8IFNSQ19DT0xPUl9NMChBTFBIQV9TUkNfUFJFX01VTCkgfApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vc2ht b2JpbGUvc2htb2JfZHJtX2NydGMuYwppbmRleCA2NTQ3YjFkYjQ2MGEuLjI0OTQ0MTA0MzVhMSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9jcnRjLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9jcnRjLmMKQEAgLTE3NCw3ICsx NzQsNyBAQCBzdGF0aWMgdm9pZCBzaG1vYl9kcm1fY3J0Y19zdGFydChzdHJ1Y3Qgc2htb2JfZHJt X2NydGMgKnNjcnRjKQogCWlmIChzY3J0Yy0+c3RhcnRlZCkKIAkJcmV0dXJuOwogCi0JZm9ybWF0 ID0gc2htb2JfZHJtX2Zvcm1hdF9pbmZvKGNydGMtPnByaW1hcnktPmZiLT5waXhlbF9mb3JtYXQp OworCWZvcm1hdCA9IHNobW9iX2RybV9mb3JtYXRfaW5mbyhjcnRjLT5wcmltYXJ5LT5mYi0+Zm9y bWF0LT5mb3JtYXQpOwogCWlmIChXQVJOX09OKGZvcm1hdCA9PSBOVUxMKSkKIAkJcmV0dXJuOwog CkBAIC0zNzYsMTAgKzM3NiwxMCBAQCBzdGF0aWMgaW50IHNobW9iX2RybV9jcnRjX21vZGVfc2V0 KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAljb25zdCBzdHJ1Y3Qgc2htb2JfZHJtX2Zvcm1hdF9p bmZvICpmb3JtYXQ7CiAJdm9pZCAqY2FjaGU7CiAKLQlmb3JtYXQgPSBzaG1vYl9kcm1fZm9ybWF0 X2luZm8oY3J0Yy0+cHJpbWFyeS0+ZmItPnBpeGVsX2Zvcm1hdCk7CisJZm9ybWF0ID0gc2htb2Jf ZHJtX2Zvcm1hdF9pbmZvKGNydGMtPnByaW1hcnktPmZiLT5mb3JtYXQtPmZvcm1hdCk7CiAJaWYg KGZvcm1hdCA9PSBOVUxMKSB7CiAJCWRldl9kYmcoc2Rldi0+ZGV2LCAibW9kZV9zZXQ6IHVuc3Vw cG9ydGVkIGZvcm1hdCAlMDh4XG4iLAotCQkJY3J0Yy0+cHJpbWFyeS0+ZmItPnBpeGVsX2Zvcm1h dCk7CisJCQljcnRjLT5wcmltYXJ5LT5mYi0+Zm9ybWF0LT5mb3JtYXQpOwogCQlyZXR1cm4gLUVJ TlZBTDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zaG1vYmlsZS9zaG1vYl9k cm1fcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9zaG1vYmlsZS9zaG1vYl9kcm1fcGxhbmUuYwpp bmRleCAxODA1YmIyM2IxMTMuLjIwMjNhOTNjZWUyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3NobW9iaWxlL3NobW9iX2RybV9wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zaG1v YmlsZS9zaG1vYl9kcm1fcGxhbmUuYwpAQCAtMTgzLDEwICsxODMsMTAgQEAgc2htb2JfZHJtX3Bs YW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRj LAogCXN0cnVjdCBzaG1vYl9kcm1fZGV2aWNlICpzZGV2ID0gcGxhbmUtPmRldi0+ZGV2X3ByaXZh dGU7CiAJY29uc3Qgc3RydWN0IHNobW9iX2RybV9mb3JtYXRfaW5mbyAqZm9ybWF0OwogCi0JZm9y bWF0ID0gc2htb2JfZHJtX2Zvcm1hdF9pbmZvKGZiLT5waXhlbF9mb3JtYXQpOworCWZvcm1hdCA9 IHNobW9iX2RybV9mb3JtYXRfaW5mbyhmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCWlmIChmb3JtYXQg PT0gTlVMTCkgewogCQlkZXZfZGJnKHNkZXYtPmRldiwgInVwZGF0ZV9wbGFuZTogdW5zdXBwb3J0 ZWQgZm9ybWF0ICUwOHhcbiIsCi0JCQlmYi0+cGl4ZWxfZm9ybWF0KTsKKwkJCWZiLT5mb3JtYXQt PmZvcm1hdCk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3N0aS9zdGlfZ2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9nZHAuYwppbmRl eCA4MWRmMzA5N2I1NDUuLjMzODIxZGRhNzlkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3N0aS9zdGlfZ2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZ2RwLmMKQEAgLTYz NiwxMCArNjM2LDEwIEBAIHN0YXRpYyBpbnQgc3RpX2dkcF9hdG9taWNfY2hlY2soc3RydWN0IGRy bV9wbGFuZSAqZHJtX3BsYW5lLAogCXNyY193ID0gY2xhbXBfdmFsKHN0YXRlLT5zcmNfdyA+PiAx NiwgMCwgR0FNX0dEUF9TSVpFX01BWCk7CiAJc3JjX2ggPSBjbGFtcF92YWwoc3RhdGUtPnNyY19o ID4+IDE2LCAwLCBHQU1fR0RQX1NJWkVfTUFYKTsKIAotCWZvcm1hdCA9IHN0aV9nZHBfZm91cmNj MmZvcm1hdChmYi0+cGl4ZWxfZm9ybWF0KTsKKwlmb3JtYXQgPSBzdGlfZ2RwX2ZvdXJjYzJmb3Jt YXQoZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAlpZiAoZm9ybWF0ID09IC0xKSB7CiAJCURSTV9FUlJP UigiRm9ybWF0IG5vdCBzdXBwb3J0ZWQgYnkgR0RQICUuNHNcbiIsCi0JCQkgIChjaGFyICopJmZi LT5waXhlbF9mb3JtYXQpOworCQkJICAoY2hhciAqKSZmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCQly ZXR1cm4gLUVJTlZBTDsKIAl9CiAKQEAgLTc0NSw3ICs3NDUsNyBAQCBzdGF0aWMgdm9pZCBzdGlf Z2RwX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAogCS8qIGJ1aWxk IHRoZSB0b3AgZmllbGQgKi8KIAl0b3BfZmllbGQtPmdhbV9nZHBfYWdjID0gR0FNX0dEUF9BR0Nf RlVMTF9SQU5HRTsKIAl0b3BfZmllbGQtPmdhbV9nZHBfY3RsID0gV0FJVF9ORVhUX1ZTWU5DOwot CWZvcm1hdCA9IHN0aV9nZHBfZm91cmNjMmZvcm1hdChmYi0+cGl4ZWxfZm9ybWF0KTsKKwlmb3Jt YXQgPSBzdGlfZ2RwX2ZvdXJjYzJmb3JtYXQoZmItPmZvcm1hdC0+Zm9ybWF0KTsKIAl0b3BfZmll bGQtPmdhbV9nZHBfY3RsIHw9IGZvcm1hdDsKIAl0b3BfZmllbGQtPmdhbV9nZHBfY3RsIHw9IHN0 aV9nZHBfZ2V0X2FscGhhcmFuZ2UoZm9ybWF0KTsKIAl0b3BfZmllbGQtPmdhbV9nZHBfcHB0ICY9 IH5HQU1fR0RQX1BQVF9JR05PUkU7CkBAIC03NTMsMTEgKzc1MywxMSBAQCBzdGF0aWMgdm9pZCBz dGlfZ2RwX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAogCWNtYV9v YmogPSBkcm1fZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKIAogCURSTV9ERUJVR19EUklWRVIo ImRybSBGQjolZCBmb3JtYXQ6JS40cyBwaHlzQDoweCVseFxuIiwgZmItPmJhc2UuaWQsCi0JCQkg KGNoYXIgKikmZmItPnBpeGVsX2Zvcm1hdCwKKwkJCSAoY2hhciAqKSZmYi0+Zm9ybWF0LT5mb3Jt YXQsCiAJCQkgKHVuc2lnbmVkIGxvbmcpY21hX29iai0+cGFkZHIpOwogCiAJLyogcGl4ZWwgbWVt b3J5IGxvY2F0aW9uICovCi0JYnBwID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zv cm1hdCwgMCk7CisJYnBwID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPmZvcm1hdC0+Zm9ybWF0 LCAwKTsKIAl0b3BfZmllbGQtPmdhbV9nZHBfcG1sID0gKHUzMiljbWFfb2JqLT5wYWRkciArIGZi LT5vZmZzZXRzWzBdOwogCXRvcF9maWVsZC0+Z2FtX2dkcF9wbWwgKz0gc3JjX3ggKiBicHA7CiAJ dG9wX2ZpZWxkLT5nYW1fZ2RwX3BtbCArPSBzcmNfeSAqIGZiLT5waXRjaGVzWzBdOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaHF2ZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9z dGkvc3RpX2hxdmRwLmMKaW5kZXggZjg4MTMwZjJlYjQ4Li5iZWNmMTBkMjU1YzQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hxdmRwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L3N0aS9zdGlfaHF2ZHAuYwpAQCAtMTE0Nyw3ICsxMTQ3LDcgQEAgc3RhdGljIHZvaWQgc3RpX2hx dmRwX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLAogCWNtYV9vYmog PSBkcm1fZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKIAogCURSTV9ERUJVR19EUklWRVIoImRy bSBGQjolZCBmb3JtYXQ6JS40cyBwaHlzQDoweCVseFxuIiwgZmItPmJhc2UuaWQsCi0JCQkgKGNo YXIgKikmZmItPnBpeGVsX2Zvcm1hdCwKKwkJCSAoY2hhciAqKSZmYi0+Zm9ybWF0LT5mb3JtYXQs CiAJCQkgKHVuc2lnbmVkIGxvbmcpY21hX29iai0+cGFkZHIpOwogCiAJLyogQnVmZmVyIHBsYW5l cyBhZGRyZXNzICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfYmFj a2VuZC5jIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2JhY2tlbmQuYwppbmRleCAyZTA4 Zjk2OWJiNjQuLjg3MTlhY2Y3NDVjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRp L3N1bjRpX2JhY2tlbmQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfYmFja2Vu ZC5jCkBAIC0xODksNyArMTg5LDggQEAgaW50IHN1bjRpX2JhY2tlbmRfdXBkYXRlX2xheWVyX2Zv cm1hdHMoc3RydWN0IHN1bjRpX2JhY2tlbmQgKmJhY2tlbmQsCiAJRFJNX0RFQlVHX0RSSVZFUigi U3dpdGNoaW5nIGRpc3BsYXkgYmFja2VuZCBpbnRlcmxhY2VkIG1vZGUgJXNcbiIsCiAJCQkgaW50 ZXJsYWNlZCA/ICJvbiIgOiAib2ZmIik7CiAKLQlyZXQgPSBzdW40aV9iYWNrZW5kX2RybV9mb3Jt YXRfdG9fbGF5ZXIocGxhbmUsIGZiLT5waXhlbF9mb3JtYXQsICZ2YWwpOworCXJldCA9IHN1bjRp X2JhY2tlbmRfZHJtX2Zvcm1hdF90b19sYXllcihwbGFuZSwgZmItPmZvcm1hdC0+Zm9ybWF0LAor CQkJCQkJJnZhbCk7CiAJaWYgKHJldCkgewogCQlEUk1fREVCVUdfRFJJVkVSKCJJbnZhbGlkIGZv cm1hdFxuIik7CiAJCXJldHVybiB2YWw7CkBAIC0yMTgsNyArMjE5LDcgQEAgaW50IHN1bjRpX2Jh Y2tlbmRfdXBkYXRlX2xheWVyX2J1ZmZlcihzdHJ1Y3Qgc3VuNGlfYmFja2VuZCAqYmFja2VuZCwK IAlEUk1fREVCVUdfRFJJVkVSKCJVc2luZyBHRU0gQCAlcGFkXG4iLCAmZ2VtLT5wYWRkcik7CiAK IAkvKiBDb21wdXRlIHRoZSBzdGFydCBvZiB0aGUgZGlzcGxheWVkIG1lbW9yeSAqLwotCWJwcCA9 IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOworCWJwcCA9IGRybV9m b3JtYXRfcGxhbmVfY3BwKGZiLT5mb3JtYXQtPmZvcm1hdCwgMCk7CiAJcGFkZHIgPSBnZW0tPnBh ZGRyICsgZmItPm9mZnNldHNbMF07CiAJcGFkZHIgKz0gKHN0YXRlLT5zcmNfeCA+PiAxNikgKiBi cHA7CiAJcGFkZHIgKz0gKHN0YXRlLT5zcmNfeSA+PiAxNikgKiBmYi0+cGl0Y2hlc1swXTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jIGIvZHJpdmVycy9ncHUvZHJtL3Rl Z3JhL2RjLmMKaW5kZXggM2FmMTU3YTJkNDBjLi40MTIxZDBjMmFhYzggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5j CkBAIC01MTEsNyArNTExLDcgQEAgc3RhdGljIGludCB0ZWdyYV9wbGFuZV9hdG9taWNfY2hlY2so c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJaWYgKCFzdGF0ZS0+Y3J0YykKIAkJcmV0dXJuIDA7 CiAKLQllcnIgPSB0ZWdyYV9kY19mb3JtYXQoc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQsICZwbGFu ZV9zdGF0ZS0+Zm9ybWF0LAorCWVyciA9IHRlZ3JhX2RjX2Zvcm1hdChzdGF0ZS0+ZmItPmZvcm1h dC0+Zm9ybWF0LCAmcGxhbmVfc3RhdGUtPmZvcm1hdCwKIAkJCSAgICAgICZwbGFuZV9zdGF0ZS0+ c3dhcCk7CiAJaWYgKGVyciA8IDApCiAJCXJldHVybiBlcnI7CkBAIC01MzEsNyArNTMxLDcgQEAg c3RhdGljIGludCB0ZWdyYV9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCiAJICogZXJyb3Igb3V0IGlmIHRoZSB1c2VyIHRyaWVzIHRvIGRpc3BsYXkgYSBmcmFtZWJ1 ZmZlciB3aXRoIHN1Y2ggYQogCSAqIGNvbmZpZ3VyYXRpb24uCiAJICovCi0JaWYgKGRybV9mb3Jt YXRfbnVtX3BsYW5lcyhzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCkgPiAyKSB7CisJaWYgKGRybV9m b3JtYXRfbnVtX3BsYW5lcyhzdGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0KSA+IDIpIHsKIAkJaWYg KHN0YXRlLT5mYi0+cGl0Y2hlc1syXSAhPSBzdGF0ZS0+ZmItPnBpdGNoZXNbMV0pIHsKIAkJCURS TV9FUlJPUigidW5zdXBwb3J0ZWQgVVYtcGxhbmUgY29uZmlndXJhdGlvblxuIik7CiAJCQlyZXR1 cm4gLUVJTlZBTDsKQEAgLTU3Niw3ICs1NzYsNyBAQCBzdGF0aWMgdm9pZCB0ZWdyYV9wbGFuZV9h dG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXdpbmRvdy5mb3JtYXQgPSBz dGF0ZS0+Zm9ybWF0OwogCXdpbmRvdy5zd2FwID0gc3RhdGUtPnN3YXA7CiAKLQlmb3IgKGkgPSAw OyBpIDwgZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZiLT5waXhlbF9mb3JtYXQpOyBpKyspIHsKKwlm b3IgKGkgPSAwOyBpIDwgZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZiLT5mb3JtYXQtPmZvcm1hdCk7 IGkrKykgewogCQlzdHJ1Y3QgdGVncmFfYm8gKmJvID0gdGVncmFfZmJfZ2V0X3BsYW5lKGZiLCBp KTsKIAogCQl3aW5kb3cuYmFzZVtpXSA9IGJvLT5wYWRkciArIGZiLT5vZmZzZXRzW2ldOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVn cmEvZmIuYwppbmRleCAyYTFiZjkyNDAzYjguLjFlYTVjMzlhNDQxMSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3RlZ3JhL2ZiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2ZiLmMK QEAgLTMyLDcgKzMyLDcgQEAgc3RydWN0IHRlZ3JhX2JvICp0ZWdyYV9mYl9nZXRfcGxhbmUoc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZnJhbWVidWZmZXIsCiB7CiAJc3RydWN0IHRlZ3JhX2ZiICpm YiA9IHRvX3RlZ3JhX2ZiKGZyYW1lYnVmZmVyKTsKIAotCWlmIChpbmRleCA+PSBkcm1fZm9ybWF0 X251bV9wbGFuZXMoZnJhbWVidWZmZXItPnBpeGVsX2Zvcm1hdCkpCisJaWYgKGluZGV4ID49IGRy bV9mb3JtYXRfbnVtX3BsYW5lcyhmcmFtZWJ1ZmZlci0+Zm9ybWF0LT5mb3JtYXQpKQogCQlyZXR1 cm4gTlVMTDsKIAogCXJldHVybiBmYi0+cGxhbmVzW2luZGV4XTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMv dGlsY2RjX2NydGMuYwppbmRleCA4MjI1MzFlYmQ0YjAuLmQwMGM1OWUxMTVmZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS90aWxjZGMvdGlsY2RjX2NydGMuYwpAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgdm9pZCBz ZXRfc2Nhbm91dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiKQogCiAJc3RhcnQgPSBnZW0tPnBhZGRyICsgZmItPm9mZnNldHNbMF0gKwogCQljcnRjLT55 ICogZmItPnBpdGNoZXNbMF0gKwotCQljcnRjLT54ICogZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmIt PnBpeGVsX2Zvcm1hdCwgMCk7CisJCWNydGMtPnggKiBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+ Zm9ybWF0LT5mb3JtYXQsIDApOwogCiAJZW5kID0gc3RhcnQgKyAoY3J0Yy0+bW9kZS52ZGlzcGxh eSAqIGZiLT5waXRjaGVzWzBdKTsKIApAQCAtNDU5LDcgKzQ1OSw3IEBAIHN0YXRpYyB2b2lkIHRp bGNkY19jcnRjX21vZGVfc2V0X25vZmIoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCWlmIChpbmZv LT50ZnRfYWx0X21vZGUpCiAJCXJlZyB8PSBMQ0RDX1RGVF9BTFRfRU5BQkxFOwogCWlmIChwcml2 LT5yZXYgPT0gMikgewotCQlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKKwkJc3dpdGNoIChm Yi0+Zm9ybWF0LT5mb3JtYXQpIHsKIAkJY2FzZSBEUk1fRk9STUFUX0JHUjU2NToKIAkJY2FzZSBE Uk1fRk9STUFUX1JHQjU2NToKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3RpbGNkYy90aWxjZGNfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX3Bs YW5lLmMKaW5kZXggOGE2YTUwZDc0YWZmLi41YTMwM2E4MWFjOTYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rp bGNkYy90aWxjZGNfcGxhbmUuYwpAQCAtNjksNyArNjksNyBAQCBzdGF0aWMgaW50IHRpbGNkY19w bGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJfQogCiAJcGl0Y2gg PSBjcnRjX3N0YXRlLT5tb2RlLmhkaXNwbGF5ICoKLQkJZHJtX2Zvcm1hdF9wbGFuZV9jcHAoc3Rh dGUtPmZiLT5waXhlbF9mb3JtYXQsIDApOworCQlkcm1fZm9ybWF0X3BsYW5lX2NwcChzdGF0ZS0+ ZmItPmZvcm1hdC0+Zm9ybWF0LCAwKTsKIAlpZiAoc3RhdGUtPmZiLT5waXRjaGVzWzBdICE9IHBp dGNoKSB7CiAJCWRldl9lcnIocGxhbmUtPmRldi0+ZGV2LAogCQkJIkludmFsaWQgcGl0Y2g6IGZi IGFuZCBjcnRjIHdpZHRocyBtdXN0IGJlIHRoZSBzYW1lIik7CkBAIC03Nyw3ICs3Nyw3IEBAIHN0 YXRpYyBpbnQgdGlsY2RjX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKIAl9CiAKIAlpZiAoc3RhdGUtPmZiICYmIG9sZF9zdGF0ZS0+ZmIgJiYKLQkgICAgc3RhdGUt PmZiLT5waXhlbF9mb3JtYXQgIT0gb2xkX3N0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0KSB7CisJICAg IHN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQgIT0gb2xkX3N0YXRlLT5mYi0+Zm9ybWF0LT5mb3Jt YXQpIHsKIAkJZGV2X2RiZyhwbGFuZS0+ZGV2LT5kZXYsCiAJCQkiJXMoKTogcGl4ZWwgZm9ybWF0 IGNoYW5nZSByZXF1aXJlcyBtb2RlX2NoYW5nZVxuIiwKIAkJCV9fZnVuY19fKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0 L3ZjNF9wbGFuZS5jCmluZGV4IDg4MWJmNDg5NDc4Yi4uNTliZTllN2MyNmRlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92 YzQvdmM0X3BsYW5lLmMKQEAgLTI5NSw3ICsyOTUsNyBAQCBzdGF0aWMgaW50IHZjNF9wbGFuZV9z ZXR1cF9jbGlwcGluZ19hbmRfc2NhbGluZyhzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkK IAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5mYjsKIAlzdHJ1Y3QgZHJtX2dl bV9jbWFfb2JqZWN0ICpibyA9IGRybV9mYl9jbWFfZ2V0X2dlbV9vYmooZmIsIDApOwogCXUzMiBz dWJwaXhlbF9zcmNfbWFzayA9ICgxIDw8IDE2KSAtIDE7Ci0JdTMyIGZvcm1hdCA9IGZiLT5waXhl bF9mb3JtYXQ7CisJdTMyIGZvcm1hdCA9IGZiLT5mb3JtYXQtPmZvcm1hdDsKIAlpbnQgbnVtX3Bs YW5lcyA9IGRybV9mb3JtYXRfbnVtX3BsYW5lcyhmb3JtYXQpOwogCXUzMiBoX3N1YnNhbXBsZSA9 IDE7CiAJdTMyIHZfc3Vic2FtcGxlID0gMTsKQEAgLTM2OSw3ICszNjksNyBAQCBzdGF0aWMgaW50 IHZjNF9wbGFuZV9zZXR1cF9jbGlwcGluZ19hbmRfc2NhbGluZyhzdHJ1Y3QgZHJtX3BsYW5lX3N0 YXRlICpzdGF0ZSkKIAkgKi8KIAlpZiAodmM0X3N0YXRlLT5jcnRjX3ggPCAwKSB7CiAJCWZvciAo aSA9IDA7IGkgPCBudW1fcGxhbmVzOyBpKyspIHsKLQkJCXUzMiBjcHAgPSBkcm1fZm9ybWF0X3Bs YW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCBpKTsKKwkJCXUzMiBjcHAgPSBkcm1fZm9ybWF0X3Bs YW5lX2NwcChmYi0+Zm9ybWF0LT5mb3JtYXQsIGkpOwogCQkJdTMyIHN1YnMgPSAoKGkgPT0gMCkg PyAxIDogaF9zdWJzYW1wbGUpOwogCiAJCQl2YzRfc3RhdGUtPm9mZnNldHNbaV0gKz0gKGNwcCAq CkBAIC00OTYsNyArNDk2LDcgQEAgc3RhdGljIGludCB2YzRfcGxhbmVfbW9kZV9zZXQoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiAJc3RydWN0IHZjNF9wbGFuZV9zdGF0ZSAqdmM0X3N0YXRlID0g dG9fdmM0X3BsYW5lX3N0YXRlKHN0YXRlKTsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9 IHN0YXRlLT5mYjsKIAl1MzIgY3RsMF9vZmZzZXQgPSB2YzRfc3RhdGUtPmRsaXN0X2NvdW50Owot CWNvbnN0IHN0cnVjdCBodnNfZm9ybWF0ICpmb3JtYXQgPSB2YzRfZ2V0X2h2c19mb3JtYXQoZmIt PnBpeGVsX2Zvcm1hdCk7CisJY29uc3Qgc3RydWN0IGh2c19mb3JtYXQgKmZvcm1hdCA9IHZjNF9n ZXRfaHZzX2Zvcm1hdChmYi0+Zm9ybWF0LT5mb3JtYXQpOwogCWludCBudW1fcGxhbmVzID0gZHJt X2Zvcm1hdF9udW1fcGxhbmVzKGZvcm1hdC0+ZHJtKTsKIAl1MzIgc2NsMCwgc2NsMTsKIAl1MzIg bGJtX3NpemU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMu YyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCmluZGV4IGViOGUzNjQ2Mjk2 MS4uOTFlMzBjOWFiZmYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwpAQCAtNTkw LDcgKzU5MCw2IEBAIHN0YXRpYyBpbnQgdm13X2ttc19uZXdfZnJhbWVidWZmZXJfc3VyZmFjZShz dHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAogCXZmYnMtPmJhc2UuYmFzZS5kZXYgPSBkZXY7 CiAJLyogWFhYIGdldCB0aGUgZmlyc3QgNCBmcm9tIHRoZSBzdXJmYWNlIGluZm8gKi8KIAl2ZmJz LT5iYXNlLmJhc2UuZm9ybWF0ID0gZHJtX2Zvcm1hdF9pbmZvKHBpeGVsX2Zvcm1hdCk7Ci0JdmZi cy0+YmFzZS5iYXNlLnBpeGVsX2Zvcm1hdCA9IHBpeGVsX2Zvcm1hdDsKIAl2ZmJzLT5iYXNlLmJh c2UucGl0Y2hlc1swXSA9IG1vZGVfY21kLT5waXRjaDsKIAl2ZmJzLT5iYXNlLmJhc2Uud2lkdGgg PSBtb2RlX2NtZC0+d2lkdGg7CiAJdmZicy0+YmFzZS5iYXNlLmhlaWdodCA9IG1vZGVfY21kLT5o ZWlnaHQ7CkBAIC04OTcsNyArODk2LDYgQEAgc3RhdGljIGludCB2bXdfa21zX25ld19mcmFtZWJ1 ZmZlcl9kbWFidWYoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKIAogCXZmYmQtPmJhc2Uu YmFzZS5kZXYgPSBkZXY7CiAJdmZiZC0+YmFzZS5iYXNlLmZvcm1hdCA9IGRybV9mb3JtYXRfaW5m byhwaXhlbF9mb3JtYXQpOwotCXZmYmQtPmJhc2UuYmFzZS5waXhlbF9mb3JtYXQgPSBwaXhlbF9m b3JtYXQ7CiAJdmZiZC0+YmFzZS5iYXNlLnBpdGNoZXNbMF0gPSBtb2RlX2NtZC0+cGl0Y2g7CiAJ dmZiZC0+YmFzZS5iYXNlLndpZHRoID0gbW9kZV9jbWQtPndpZHRoOwogCXZmYmQtPmJhc2UuYmFz ZS5oZWlnaHQgPSBtb2RlX2NtZC0+aGVpZ2h0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3p0ZS96eF9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jCmluZGV4IDU0 NmViOTJhOTRlOC4uZTQ1MzBjYTI2M2E5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0venRl L3p4X3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jCkBAIC0xNDYs NyArMTQ2LDcgQEAgc3RhdGljIHZvaWQgenhfZ2xfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKIAlpZiAoIWZiKQogCQlyZXR1cm47CiAKLQlmb3JtYXQgPSBmYi0+ cGl4ZWxfZm9ybWF0OworCWZvcm1hdCA9IGZiLT5mb3JtYXQtPmZvcm1hdDsKIAlzdHJpZGUgPSBm Yi0+cGl0Y2hlc1swXTsKIAogCXNyY194ID0gcGxhbmUtPnN0YXRlLT5zcmNfeCA+PiAxNjsKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9mcmFtZWJ1ZmZlci5oIGIvaW5jbHVkZS9kcm0vZHJt X2ZyYW1lYnVmZmVyLmgKaW5kZXggNGVmYzUwNjY0NzVhLi4yNzM0YTg3YjIxMjAgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvZHJtL2RybV9mcmFtZWJ1ZmZlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9m cmFtZWJ1ZmZlci5oCkBAIC0xNzUsMTAgKzE3NSw2IEBAIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg ewogCSAqLwogCWludCBmbGFnczsKIAkvKioKLQkgKiBAcGl4ZWxfZm9ybWF0OiBEUk0gRk9VUkND IGNvZGUgZGVzY3JpYmluZyB0aGUgcGl4ZWwgZm9ybWF0LgotCSAqLwotCXVpbnQzMl90IHBpeGVs X2Zvcm1hdDsgLyogZm91cmNjIGZvcm1hdCAqLwotCS8qKgogCSAqIEBob3RfeDogWCBjb29yZGlu YXRlIG9mIHRoZSBjdXJzb3IgaG90c3BvdC4gVXNlZCBieSB0aGUgbGVnYWN5IGN1cnNvcgogCSAq IElPQ1RMIHdoZW4gdGhlIGRyaXZlciBzdXBwb3J0cyBjdXJzb3IgdGhyb3VnaCBhIERSTV9QTEFO RV9UWVBFX0NVUlNPUgogCSAqIHVuaXZlcnNhbCBwbGFuZS4KLS0gCjIuNy40CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK