From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ayan Kumar Halder Subject: [PATCH libdrm v4] libdrm: headers: Sync with drm-next Date: Mon, 1 Oct 2018 16:09:18 +0100 Message-ID: <1538406558-6433-1-git-send-email-ayan.halder@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60082.outbound.protection.outlook.com [40.107.6.82]) by gabe.freedesktop.org (Postfix) with ESMTPS id 361698912C for ; Mon, 1 Oct 2018 15:09:35 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: daniel@ffwll.ch, ayan.halder@arm.com, liviu.dudau@arm.com, brian.starkey@arm.com, malidp@foss.arm.com, airlied@linux.ie, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, emil.l.velikov@gmail.com Cc: nd@arm.com List-Id: dri-devel@lists.freedesktop.org R2VuZXJhdGVkIHVzaW5nIG1ha2UgaGVhZGVyc19pbnN0YWxsIGZyb20gdGhlIGRybS1uZXh0CnRy ZWUgLSBnaXQ6Ly9hbm9uZ2l0LmZyZWVkZXNrdG9wLm9yZy9kcm0vZHJtCmJyYW5jaCAtIGRybS1u ZXh0CmNvbW1pdCAtIDJkYzdiYWQ3MWNkMzEwZGM5NGQxYzk5MDc5MDkzMjRkZDJiMDYxOGYKClRo ZSBjaGFuZ2VzIHdlcmUgYXMgZm9sbG93cyA6LQoKICBjb3JlOiAoZHJtLmgsIGRybV9mb3VyY2Mu aCwgZHJtX21vZGUuaCkKICAgIC0gQWRkZWQgY2xpZW50IGNhcGFiaWxpdGllcyBmb3IgQVNQRUNU X1JBVElPIGFuZCBXUklURUJBQ0tfQ09OTkVDVE9SUwogICAgLSBBZGRlZCBBcm0gQUZCQyBtb2Rp ZmllcnMKICAgIC0gQWRkZWQgQlJPQURDT00ncyBTQU5EIGFuZCBVSUYgbW9kaWZpZXJzCiAgICAt IEFkZGVkIFF1YWxjb21tJ3MgbW9kaWZpZXJzCiAgICAtIEFkZGVkIHNvbWUgcGljdHVyZSBhc3Bl Y3QgcmF0aW8gYW5kIGNvbnRlbnQgdHlwZSBvcHRpb25zCiAgICAtIEFkZGVkIHNvbWUgZHJtIG1v ZGUgZmxhZ3MKICAgIC0gQWRkZWQgd3JpdGViYWNrIGNvbm5lY3RvciBpZAoKICBhbWRncHU6CiAg ICAtIEFkZGVkIEdFTSBkb21haW4gbWFzawogICAgLSBBZGRlZCBzb21lIEdFTSBmbGFncwogICAg LSBBZGRlZCBzb21lIGhhcmR3YXJlIGlwIGZsYWdzCiAgICAtIEFkZGVkIGNodW5rIGlkIGFuZCBJ QiBmZW5jZS4KICAgIC0gQWRkZWQgc29tZSBxdWVyeSBpZHMKCiAgaTkxNToKICAgIC1BZGRlZCBh biBJT0NUTCAoSTkxNV9QQVJBTV9NTUFQX0dUVF9DT0hFUkVOVCkKCiAgcXhsOgogICAgLSBNaW5v ciBjaGFuZ2VzCgogIHRlZ3JhOgogICAgLSBBZGRlZCBzb21lIGNvbW1lbnRzIGFib3V0IHN0cnVj dCBkcm1fdGVncmEqIG1lbWJlcnMKICAgIC0gTW9kaWZpZWQgRFJNX0lPQ1RMX1RFR1JBX0NMT1NF X0NIQU5ORUwKCiAgdmM0OgogICAgLSBBZGRlZCBzb21lIG1lbWJlcnMgZm9yICdzdHJ1Y3QgZHJt X3ZjNF9zdWJtaXRfY2wnCgpDaGFuZ2VzIGluIHYyOgogICAgLSBNZW50aW9uZWQgJ2xpYmRybScg aW4gdGhlIGNvbW1pdCBoZWFkZXIuCgpDaGFuZ2VzIGluIHYzOgogICAgLSBSZW1vdmVkIHRoZSBj aGFuZ2VzIHRvIHJhZGVvbl9kcm0uaCwgc2lzX2RybS5oIGFuZCB2aWFfZHJtLmggYXMgc3VnZ2Vz dGVkIGJ5CiAgICAgIEVtaWwgVmVsaWtvdiA8ZW1pbC5sLnZlbGlrb3ZAZ21haWwuY29tPgoKQ2hh bmdlcyBpbiB2NDoKICAgIC0gUmVtb3ZlZCB0aGUgY2hhbmdlcyB0byB2bXdnZnhfZHJtLmggYXMg aXQgY2F1c2VkIGEgYnVpbGQgYnJlYWsgaWUKICAgICAgJ21ha2UgY2hlY2snIGZhaWxlZC4KCkNo YW5nZS1JZDogSTAxOGEwNmY2NWJmNGE2YTY4NDAwYWIyNTJiOWNkMDVkMDQxMjk5YjMKU2lnbmVk LW9mZi1ieTogQXlhbiBLdW1hciBoYWxkZXIgPGF5YW4uaGFsZGVyQGFybS5jb20+ClJldmlld2Vk LWJ5OiBFbWlsIFZlbGlrb3YgPGVtaWwubC52ZWxpa292QGdtYWlsLmNvbT4KLS0tCiBpbmNsdWRl L2RybS9hbWRncHVfZHJtLmggfCAgNDcgKysrKy0KIGluY2x1ZGUvZHJtL2RybS5oICAgICAgICB8 ICAxNiArKwogaW5jbHVkZS9kcm0vZHJtX2ZvdXJjYy5oIHwgMjE1ICsrKysrKysrKysrKysrKysr KysrKwogaW5jbHVkZS9kcm0vZHJtX21vZGUuaCAgIHwgIDM1ICsrKy0KIGluY2x1ZGUvZHJtL2k5 MTVfZHJtLmggICB8ICAyMiArKysKIGluY2x1ZGUvZHJtL3F4bF9kcm0uaCAgICB8ICAgMiAtCiBp bmNsdWRlL2RybS90ZWdyYV9kcm0uaCAgfCA0OTIgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0KIGluY2x1ZGUvZHJtL3ZjNF9kcm0uaCAgICB8ICAxMyArLQog OCBmaWxlcyBjaGFuZ2VkLCA4MjUgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vYW1kZ3B1X2RybS5oIGIvaW5jbHVkZS9kcm0vYW1kZ3B1X2Ry bS5oCmluZGV4IGMzNjNiNjcuLjFjZWVjNTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2FtZGdw dV9kcm0uaAorKysgYi9pbmNsdWRlL2RybS9hbWRncHVfZHJtLmgKQEAgLTcyLDEyICs3Miw0MSBA QCBleHRlcm4gIkMiIHsKICNkZWZpbmUgRFJNX0lPQ1RMX0FNREdQVV9GRU5DRV9UT19IQU5ETEUg RFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9BTURHUFVfRkVOQ0VfVE9fSEFORExFLCB1 bmlvbiBkcm1fYW1kZ3B1X2ZlbmNlX3RvX2hhbmRsZSkKICNkZWZpbmUgRFJNX0lPQ1RMX0FNREdQ VV9TQ0hFRAkJRFJNX0lPVyhEUk1fQ09NTUFORF9CQVNFICsgRFJNX0FNREdQVV9TQ0hFRCwgdW5p b24gZHJtX2FtZGdwdV9zY2hlZCkKIAorLyoqCisgKiBET0M6IG1lbW9yeSBkb21haW5zCisgKgor ICogJUFNREdQVV9HRU1fRE9NQUlOX0NQVQlTeXN0ZW0gbWVtb3J5IHRoYXQgaXMgbm90IEdQVSBh Y2Nlc3NpYmxlLgorICogTWVtb3J5IGluIHRoaXMgcG9vbCBjb3VsZCBiZSBzd2FwcGVkIG91dCB0 byBkaXNrIGlmIHRoZXJlIGlzIHByZXNzdXJlLgorICoKKyAqICVBTURHUFVfR0VNX0RPTUFJTl9H VFQJR1BVIGFjY2Vzc2libGUgc3lzdGVtIG1lbW9yeSwgbWFwcGVkIGludG8gdGhlCisgKiBHUFUn cyB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UgdmlhIGdhcnQuIEdhcnQgbWVtb3J5IGxpbmVhcml6ZXMg bm9uLWNvbnRpZ3VvdXMKKyAqIHBhZ2VzIG9mIHN5c3RlbSBtZW1vcnksIGFsbG93cyBHUFUgYWNj ZXNzIHN5c3RlbSBtZW1vcnkgaW4gYSBsaW5lenJpemVkCisgKiBmYXNoaW9uLgorICoKKyAqICVB TURHUFVfR0VNX0RPTUFJTl9WUkFNCUxvY2FsIHZpZGVvIG1lbW9yeS4gRm9yIEFQVXMsIGl0IGlz IG1lbW9yeQorICogY2FydmVkIG91dCBieSB0aGUgQklPUy4KKyAqCisgKiAlQU1ER1BVX0dFTV9E T01BSU5fR0RTCUdsb2JhbCBvbi1jaGlwIGRhdGEgc3RvcmFnZSB1c2VkIHRvIHNoYXJlIGRhdGEK KyAqIGFjcm9zcyBzaGFkZXIgdGhyZWFkcy4KKyAqCisgKiAlQU1ER1BVX0dFTV9ET01BSU5fR1dT CUdsb2JhbCB3YXZlIHN5bmMsIHVzZWQgdG8gc3luY2hyb25pemUgdGhlCisgKiBleGVjdXRpb24g b2YgYWxsIHRoZSB3YXZlcyBvbiBhIGRldmljZS4KKyAqCisgKiAlQU1ER1BVX0dFTV9ET01BSU5f T0EJT3JkZXJlZCBhcHBlbmQsIHVzZWQgYnkgM0Qgb3IgQ29tcHV0ZSBlbmdpbmVzCisgKiBmb3Ig YXBwZW5kaW5nIGRhdGEuCisgKi8KICNkZWZpbmUgQU1ER1BVX0dFTV9ET01BSU5fQ1BVCQkweDEK ICNkZWZpbmUgQU1ER1BVX0dFTV9ET01BSU5fR1RUCQkweDIKICNkZWZpbmUgQU1ER1BVX0dFTV9E T01BSU5fVlJBTQkJMHg0CiAjZGVmaW5lIEFNREdQVV9HRU1fRE9NQUlOX0dEUwkJMHg4CiAjZGVm aW5lIEFNREdQVV9HRU1fRE9NQUlOX0dXUwkJMHgxMAogI2RlZmluZSBBTURHUFVfR0VNX0RPTUFJ Tl9PQQkJMHgyMAorI2RlZmluZSBBTURHUFVfR0VNX0RPTUFJTl9NQVNLCQkoQU1ER1BVX0dFTV9E T01BSU5fQ1BVIHwgXAorCQkJCQkgQU1ER1BVX0dFTV9ET01BSU5fR1RUIHwgXAorCQkJCQkgQU1E R1BVX0dFTV9ET01BSU5fVlJBTSB8IFwKKwkJCQkJIEFNREdQVV9HRU1fRE9NQUlOX0dEUyB8IFwK KwkJCQkJIEFNREdQVV9HRU1fRE9NQUlOX0dXUyB8IFwKKwkJCQkJIEFNREdQVV9HRU1fRE9NQUlO X09BKQogCiAvKiBGbGFnIHRoYXQgQ1BVIGFjY2VzcyB3aWxsIGJlIHJlcXVpcmVkIGZvciB0aGUg Y2FzZSBvZiBWUkFNIGRvbWFpbiAqLwogI2RlZmluZSBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUND RVNTX1JFUVVJUkVECSgxIDw8IDApCkBAIC05NSw2ICsxMjQsMTAgQEAgZXh0ZXJuICJDIiB7CiAj ZGVmaW5lIEFNREdQVV9HRU1fQ1JFQVRFX1ZNX0FMV0FZU19WQUxJRAkoMSA8PCA2KQogLyogRmxh ZyB0aGF0IEJPIHNoYXJpbmcgd2lsbCBiZSBleHBsaWNpdGx5IHN5bmNocm9uaXplZCAqLwogI2Rl ZmluZSBBTURHUFVfR0VNX0NSRUFURV9FWFBMSUNJVF9TWU5DCQkoMSA8PCA3KQorLyogRmxhZyB0 aGF0IGluZGljYXRlcyBhbGxvY2F0aW5nIE1RRCBnYXJ0IG9uIEdGWDksIHdoZXJlIHRoZSBtdHlw ZQorICogZm9yIHRoZSBzZWNvbmQgcGFnZSBvbndhcmQgc2hvdWxkIGJlIHNldCB0byBOQy4KKyAq LworI2RlZmluZSBBTURHUFVfR0VNX0NSRUFURV9NUURfR0ZYOQkJKDEgPDwgOCkKIAogc3RydWN0 IGRybV9hbWRncHVfZ2VtX2NyZWF0ZV9pbiAgewogCS8qKiB0aGUgcmVxdWVzdGVkIG1lbW9yeSBz aXplICovCkBAIC00NzMsNyArNTA2LDggQEAgc3RydWN0IGRybV9hbWRncHVfZ2VtX3ZhIHsKICNk ZWZpbmUgQU1ER1BVX0hXX0lQX1VWRF9FTkMgICAgICA1CiAjZGVmaW5lIEFNREdQVV9IV19JUF9W Q05fREVDICAgICAgNgogI2RlZmluZSBBTURHUFVfSFdfSVBfVkNOX0VOQyAgICAgIDcKLSNkZWZp bmUgQU1ER1BVX0hXX0lQX05VTSAgICAgICAgICA4CisjZGVmaW5lIEFNREdQVV9IV19JUF9WQ05f SlBFRyAgICAgOAorI2RlZmluZSBBTURHUFVfSFdfSVBfTlVNICAgICAgICAgIDkKIAogI2RlZmlu ZSBBTURHUFVfSFdfSVBfSU5TVEFOQ0VfTUFYX0NPVU5UIDEKIApAQCAtNDgyLDYgKzUxNiw3IEBA IHN0cnVjdCBkcm1fYW1kZ3B1X2dlbV92YSB7CiAjZGVmaW5lIEFNREdQVV9DSFVOS19JRF9ERVBF TkRFTkNJRVMJMHgwMwogI2RlZmluZSBBTURHUFVfQ0hVTktfSURfU1lOQ09CSl9JTiAgICAgIDB4 MDQKICNkZWZpbmUgQU1ER1BVX0NIVU5LX0lEX1NZTkNPQkpfT1VUICAgICAweDA1CisjZGVmaW5l IEFNREdQVV9DSFVOS19JRF9CT19IQU5ETEVTICAgICAgMHgwNgogCiBzdHJ1Y3QgZHJtX2FtZGdw dV9jc19jaHVuayB7CiAJX191MzIJCWNodW5rX2lkOwpAQCAtNTIwLDYgKzU1NSwxMCBAQCB1bmlv biBkcm1fYW1kZ3B1X2NzIHsKIC8qIFByZWVtcHQgZmxhZywgSUIgc2hvdWxkIHNldCBQcmVfZW5i IGJpdCBpZiBQUkVFTVBUIGZsYWcgZGV0ZWN0ZWQgKi8KICNkZWZpbmUgQU1ER1BVX0lCX0ZMQUdf UFJFRU1QVCAoMTw8MikKIAorLyogVGhlIElCIGZlbmNlIHNob3VsZCBkbyB0aGUgTDIgd3JpdGVi YWNrIGJ1dCBub3QgaW52YWxpZGF0ZSBhbnkgc2hhZGVyCisgKiBjYWNoZXMgKEwyL3ZMMS9zTDEv SSQpLiAqLworI2RlZmluZSBBTURHUFVfSUJfRkxBR19UQ19XQl9OT1RfSU5WQUxJREFURSAoMSA8 PCAzKQorCiBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19pYiB7CiAJX191MzIgX3BhZDsKIAkv KiogQU1ER1BVX0lCX0ZMQUdfKiAqLwpAQCAtNjIwLDYgKzY1OSwxMiBAQCBzdHJ1Y3QgZHJtX2Ft ZGdwdV9jc19jaHVua19kYXRhIHsKIAkjZGVmaW5lIEFNREdQVV9JTkZPX0ZXX0FTRAkJMHgwZAog CS8qIFN1YnF1ZXJ5IGlkOiBRdWVyeSBWQ04gZmlybXdhcmUgdmVyc2lvbiAqLwogCSNkZWZpbmUg QU1ER1BVX0lORk9fRldfVkNOCQkweDBlCisJLyogU3VicXVlcnkgaWQ6IFF1ZXJ5IEdGWCBSTEMg U1JMQyBmaXJtd2FyZSB2ZXJzaW9uICovCisJI2RlZmluZSBBTURHUFVfSU5GT19GV19HRlhfUkxD X1JFU1RPUkVfTElTVF9DTlRMIDB4MGYKKwkvKiBTdWJxdWVyeSBpZDogUXVlcnkgR0ZYIFJMQyBT UkxHIGZpcm13YXJlIHZlcnNpb24gKi8KKwkjZGVmaW5lIEFNREdQVV9JTkZPX0ZXX0dGWF9STENf UkVTVE9SRV9MSVNUX0dQTV9NRU0gMHgxMAorCS8qIFN1YnF1ZXJ5IGlkOiBRdWVyeSBHRlggUkxD IFNSTFMgZmlybXdhcmUgdmVyc2lvbiAqLworCSNkZWZpbmUgQU1ER1BVX0lORk9fRldfR0ZYX1JM Q19SRVNUT1JFX0xJU1RfU1JNX01FTSAweDExCiAvKiBudW1iZXIgb2YgYnl0ZXMgbW92ZWQgZm9y IFRUTSBtaWdyYXRpb24gKi8KICNkZWZpbmUgQU1ER1BVX0lORk9fTlVNX0JZVEVTX01PVkVECQkw eDBmCiAvKiB0aGUgdXNlZCBWUkFNIHNpemUgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bS5oIGIvaW5jbHVkZS9kcm0vZHJtLmgKaW5kZXggZjBiZDkxZC4uODVjNjg1YSAxMDA2NDQKLS0t IGEvaW5jbHVkZS9kcm0vZHJtLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtLmgKQEAgLTY3NCw2ICs2 NzQsMjIgQEAgc3RydWN0IGRybV9nZXRfY2FwIHsKICAqLwogI2RlZmluZSBEUk1fQ0xJRU5UX0NB UF9BVE9NSUMJMwogCisvKioKKyAqIERSTV9DTElFTlRfQ0FQX0FTUEVDVF9SQVRJTworICoKKyAq IElmIHNldCB0byAxLCB0aGUgRFJNIGNvcmUgd2lsbCBwcm92aWRlIGFzcGVjdCByYXRpbyBpbmZv cm1hdGlvbiBpbiBtb2Rlcy4KKyAqLworI2RlZmluZSBEUk1fQ0xJRU5UX0NBUF9BU1BFQ1RfUkFU SU8gICAgNAorCisvKioKKyAqIERSTV9DTElFTlRfQ0FQX1dSSVRFQkFDS19DT05ORUNUT1JTCisg KgorICogSWYgc2V0IHRvIDEsIHRoZSBEUk0gY29yZSB3aWxsIGV4cG9zZSBzcGVjaWFsIGNvbm5l Y3RvcnMgdG8gYmUgdXNlZCBmb3IKKyAqIHdyaXRpbmcgYmFjayB0byBtZW1vcnkgdGhlIHNjZW5l IHNldHVwIGluIHRoZSBjb21taXQuIERlcGVuZHMgb24gY2xpZW50CisgKiBhbHNvIHN1cHBvcnRp bmcgRFJNX0NMSUVOVF9DQVBfQVRPTUlDCisgKi8KKyNkZWZpbmUgRFJNX0NMSUVOVF9DQVBfV1JJ VEVCQUNLX0NPTk5FQ1RPUlMJNQorCiAvKiogRFJNX0lPQ1RMX1NFVF9DTElFTlRfQ0FQIGlvY3Rs IGFyZ3VtZW50IHR5cGUgKi8KIHN0cnVjdCBkcm1fc2V0X2NsaWVudF9jYXAgewogCV9fdTY0IGNh cGFiaWxpdHk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZm91cmNjLmggYi9pbmNsdWRl L2RybS9kcm1fZm91cmNjLmgKaW5kZXggZTA0NjEzZC4uMTM5NjMyYiAxMDA2NDQKLS0tIGEvaW5j bHVkZS9kcm0vZHJtX2ZvdXJjYy5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9mb3VyY2MuaApAQCAt MzAsMTEgKzMwLDUwIEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCisvKioKKyAqIERPQzogb3Zl cnZpZXcKKyAqCisgKiBJbiB0aGUgRFJNIHN1YnN5c3RlbSwgZnJhbWVidWZmZXIgcGl4ZWwgZm9y bWF0cyBhcmUgZGVzY3JpYmVkIHVzaW5nIHRoZQorICogZm91cmNjIGNvZGVzIGRlZmluZWQgaW4g YGluY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5oYC4gSW4gYWRkaXRpb24gdG8gdGhlCisgKiBm b3VyY2MgY29kZSwgYSBGb3JtYXQgTW9kaWZpZXIgbWF5IG9wdGlvbmFsbHkgYmUgcHJvdmlkZWQs IGluIG9yZGVyIHRvCisgKiBmdXJ0aGVyIGRlc2NyaWJlIHRoZSBidWZmZXIncyBmb3JtYXQgLSBm b3IgZXhhbXBsZSB0aWxpbmcgb3IgY29tcHJlc3Npb24uCisgKgorICogRm9ybWF0IE1vZGlmaWVy cworICogLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIEZvcm1hdCBtb2RpZmllcnMgYXJlIHVzZWQg aW4gY29uanVuY3Rpb24gd2l0aCBhIGZvdXJjYyBjb2RlLCBmb3JtaW5nIGEKKyAqIHVuaXF1ZSBm b3VyY2M6bW9kaWZpZXIgcGFpci4gVGhpcyBmb3JtYXQ6bW9kaWZpZXIgcGFpciBtdXN0IGZ1bGx5 IGRlZmluZSB0aGUKKyAqIGZvcm1hdCBhbmQgZGF0YSBsYXlvdXQgb2YgdGhlIGJ1ZmZlciwgYW5k IHNob3VsZCBiZSB0aGUgb25seSB3YXkgdG8gZGVzY3JpYmUKKyAqIHRoYXQgcGFydGljdWxhciBi dWZmZXIuCisgKgorICogSGF2aW5nIG11bHRpcGxlIGZvdXJjYzptb2RpZmllciBwYWlycyB3aGlj aCBkZXNjcmliZSB0aGUgc2FtZSBsYXlvdXQgc2hvdWxkCisgKiBiZSBhdm9pZGVkLCBhcyBzdWNo IGFsaWFzZXMgcnVuIHRoZSByaXNrIG9mIGRpZmZlcmVudCBkcml2ZXJzIGV4cG9zaW5nCisgKiBk aWZmZXJlbnQgbmFtZXMgZm9yIHRoZSBzYW1lIGRhdGEgZm9ybWF0LCBmb3JjaW5nIHVzZXJzcGFj ZSB0byB1bmRlcnN0YW5kCisgKiB0aGF0IHRoZXkgYXJlIGFsaWFzZXMuCisgKgorICogRm9ybWF0 IG1vZGlmaWVycyBtYXkgY2hhbmdlIGFueSBwcm9wZXJ0eSBvZiB0aGUgYnVmZmVyLCBpbmNsdWRp bmcgdGhlIG51bWJlcgorICogb2YgcGxhbmVzIGFuZC9vciB0aGUgcmVxdWlyZWQgYWxsb2NhdGlv biBzaXplLiBGb3JtYXQgbW9kaWZpZXJzIGFyZQorICogdmVuZG9yLW5hbWVzcGFjZWQsIGFuZCBh cyBzdWNoIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBhIGZvdXJjYyBjb2RlIGFuZCBhCisgKiBt b2RpZmllciBpcyBzcGVjaWZpYyB0byB0aGUgbW9kaWZlciBiZWluZyB1c2VkLiBGb3IgZXhhbXBs ZSwgc29tZSBtb2RpZmllcnMKKyAqIG1heSBwcmVzZXJ2ZSBtZWFuaW5nIC0gc3VjaCBhcyBudW1i ZXIgb2YgcGxhbmVzIC0gZnJvbSB0aGUgZm91cmNjIGNvZGUsCisgKiB3aGVyZWFzIG90aGVycyBt YXkgbm90LgorICoKKyAqIFZlbmRvcnMgc2hvdWxkIGRvY3VtZW50IHRoZWlyIG1vZGlmaWVyIHVz YWdlIGluIGFzIG11Y2ggZGV0YWlsIGFzCisgKiBwb3NzaWJsZSwgdG8gZW5zdXJlIG1heGltdW0g Y29tcGF0aWJpbGl0eSBhY3Jvc3MgZGV2aWNlcywgZHJpdmVycyBhbmQKKyAqIGFwcGxpY2F0aW9u cy4KKyAqCisgKiBUaGUgYXV0aG9yaXRhdGl2ZSBsaXN0IG9mIGZvcm1hdCBtb2RpZmllciBjb2Rl cyBpcyBmb3VuZCBpbgorICogYGluY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5oYAorICovCisK ICNkZWZpbmUgZm91cmNjX2NvZGUoYSwgYiwgYywgZCkgKChfX3UzMikoYSkgfCAoKF9fdTMyKShi KSA8PCA4KSB8IFwKIAkJCQkgKChfX3UzMikoYykgPDwgMTYpIHwgKChfX3UzMikoZCkgPDwgMjQp KQogCiAjZGVmaW5lIERSTV9GT1JNQVRfQklHX0VORElBTiAoMTw8MzEpIC8qIGZvcm1hdCBpcyBi aWcgZW5kaWFuIGluc3RlYWQgb2YgbGl0dGxlIGVuZGlhbiAqLwogCisvKiBSZXNlcnZlIDAgZm9y IHRoZSBpbnZhbGlkIGZvcm1hdCBzcGVjaWZpZXIgKi8KKyNkZWZpbmUgRFJNX0ZPUk1BVF9JTlZB TElECTAKKwogLyogY29sb3IgaW5kZXggKi8KICNkZWZpbmUgRFJNX0ZPUk1BVF9DOAkJZm91cmNj X2NvZGUoJ0MnLCAnOCcsICcgJywgJyAnKSAvKiBbNzowXSBDICovCiAKQEAgLTE4Myw2ICsyMjIs NyBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfVkVORE9SX1FDT00gICAg MHgwNQogI2RlZmluZSBEUk1fRk9STUFUX01PRF9WRU5ET1JfVklWQU5URSAweDA2CiAjZGVmaW5l IERSTV9GT1JNQVRfTU9EX1ZFTkRPUl9CUk9BRENPTSAweDA3CisjZGVmaW5lIERSTV9GT1JNQVRf TU9EX1ZFTkRPUl9BUk0gICAgIDB4MDgKIC8qIGFkZCBtb3JlIHRvIHRoZSBlbmQgYXMgbmVlZGVk ICovCiAKICNkZWZpbmUgRFJNX0ZPUk1BVF9SRVNFUlZFRAkgICAgICAoKDFVTEwgPDwgNTYpIC0g MSkKQEAgLTI5OCw2ICszMzgsMTkgQEAgZXh0ZXJuICJDIiB7CiAgKi8KICNkZWZpbmUgRFJNX0ZP Uk1BVF9NT0RfU0FNU1VOR182NF8zMl9USUxFCWZvdXJjY19tb2RfY29kZShTQU1TVU5HLCAxKQog CisvKgorICogUXVhbGNvbW0gQ29tcHJlc3NlZCBGb3JtYXQKKyAqCisgKiBSZWZlcnMgdG8gYSBj b21wcmVzc2VkIHZhcmlhbnQgb2YgdGhlIGJhc2UgZm9ybWF0IHRoYXQgaXMgY29tcHJlc3NlZC4K KyAqIEltcGxlbWVudGF0aW9uIG1heSBiZSBwbGF0Zm9ybSBhbmQgYmFzZS1mb3JtYXQgc3BlY2lm aWMuCisgKgorICogRWFjaCBtYWNyb3RpbGUgY29uc2lzdHMgb2YgbSB4IG4gKG1vc3RseSA0IHgg NCkgdGlsZXMuCisgKiBQaXhlbCBkYXRhIHBpdGNoL3N0cmlkZSBpcyBhbGlnbmVkIHdpdGggbWFj cm90aWxlIHdpZHRoLgorICogUGl4ZWwgZGF0YSBoZWlnaHQgaXMgYWxpZ25lZCB3aXRoIG1hY3Jv dGlsZSBoZWlnaHQuCisgKiBFbnRpcmUgcGl4ZWwgZGF0YSBidWZmZXIgaXMgYWxpZ25lZCB3aXRo IDRrKGJ5dGVzKS4KKyAqLworI2RlZmluZSBEUk1fRk9STUFUX01PRF9RQ09NX0NPTVBSRVNTRUQJ Zm91cmNjX21vZF9jb2RlKFFDT00sIDEpCisKIC8qIFZpdmFudGUgZnJhbWVidWZmZXIgbW9kaWZp ZXJzICovCiAKIC8qCkBAIC0zODUsNiArNDM4LDIzIEBAIGV4dGVybiAiQyIgewogCWZvdXJjY19t b2RfY29kZShOVklESUEsIDB4MTUpCiAKIC8qCisgKiBTb21lIEJyb2FkY29tIG1vZGlmaWVycyB0 YWtlIHBhcmFtZXRlcnMsIGZvciBleGFtcGxlIHRoZSBudW1iZXIgb2YKKyAqIHZlcnRpY2FsIGxp bmVzIGluIHRoZSBpbWFnZS4gUmVzZXJ2ZSB0aGUgbG93ZXIgMzIgYml0cyBmb3IgbW9kaWZpZXIK KyAqIHR5cGUsIGFuZCB0aGUgbmV4dCAyNCBiaXRzIGZvciBwYXJhbWV0ZXJzLiBUb3AgOCBiaXRz IGFyZSB0aGUKKyAqIHZlbmRvciBjb2RlLgorICovCisjZGVmaW5lIF9fZm91cmNjX21vZF9icm9h ZGNvbV9wYXJhbV9zaGlmdCA4CisjZGVmaW5lIF9fZm91cmNjX21vZF9icm9hZGNvbV9wYXJhbV9i aXRzIDQ4CisjZGVmaW5lIGZvdXJjY19tb2RfYnJvYWRjb21fY29kZSh2YWwsIHBhcmFtcykgXAor CWZvdXJjY19tb2RfY29kZShCUk9BRENPTSwgKCgoKF9fdTY0KXBhcmFtcykgPDwgX19mb3VyY2Nf bW9kX2Jyb2FkY29tX3BhcmFtX3NoaWZ0KSB8IHZhbCkpCisjZGVmaW5lIGZvdXJjY19tb2RfYnJv YWRjb21fcGFyYW0obSkgXAorCSgoaW50KSgoKG0pID4+IF9fZm91cmNjX21vZF9icm9hZGNvbV9w YXJhbV9zaGlmdCkgJglcCisJICAgICAgICgoMVVMTCA8PCBfX2ZvdXJjY19tb2RfYnJvYWRjb21f cGFyYW1fYml0cykgLSAxKSkpCisjZGVmaW5lIGZvdXJjY19tb2RfYnJvYWRjb21fbW9kKG0pIFwK KwkoKG0pICYgfigoKDFVTEwgPDwgX19mb3VyY2NfbW9kX2Jyb2FkY29tX3BhcmFtX2JpdHMpIC0g MSkgPDwJXAorCQkgX19mb3VyY2NfbW9kX2Jyb2FkY29tX3BhcmFtX3NoaWZ0KSkKKworLyoKICAq IEJyb2FkY29tIFZDNCAiVCIgZm9ybWF0CiAgKgogICogVGhpcyBpcyB0aGUgcHJpbWFyeSBsYXlv dXQgdGhhdCB0aGUgVjNEIEdQVSBjYW4gdGV4dHVyZSBmcm9tIChpdApAQCAtNDA1LDYgKzQ3NSwx NTEgQEAgZXh0ZXJuICJDIiB7CiAgKi8KICNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01f VkM0X1RfVElMRUQgZm91cmNjX21vZF9jb2RlKEJST0FEQ09NLCAxKQogCisvKgorICogQnJvYWRj b20gU0FORCBmb3JtYXQKKyAqCisgKiBUaGlzIGlzIHRoZSBuYXRpdmUgZm9ybWF0IHRoYXQgdGhl IEguMjY0IGNvZGVjIGJsb2NrIHVzZXMuICBGb3IgVkM0CisgKiBIVlMsIGl0IGlzIG9ubHkgdmFs aWQgZm9yIEguMjY0IChOVjEyLzIxKSBhbmQgUkdCQSBtb2Rlcy4KKyAqCisgKiBUaGUgaW1hZ2Ug Y2FuIGJlIGNvbnNpZGVyZWQgdG8gYmUgc3BsaXQgaW50byBjb2x1bW5zLCBhbmQgdGhlCisgKiBj b2x1bW5zIGFyZSBwbGFjZWQgY29uc2VjdXRpdmVseSBpbnRvIG1lbW9yeS4gIFRoZSB3aWR0aCBv ZiB0aG9zZQorICogY29sdW1ucyBjYW4gYmUgZWl0aGVyIDMyLCA2NCwgMTI4LCBvciAyNTYgcGl4 ZWxzLCBidXQgaW4gcHJhY3RpY2UKKyAqIG9ubHkgMTI4IHBpeGVsIGNvbHVtbnMgYXJlIHVzZWQu CisgKgorICogVGhlIHBpdGNoIGJldHdlZW4gdGhlIHN0YXJ0IG9mIGVhY2ggY29sdW1uIGlzIHNl dCB0byBvcHRpbWFsbHkKKyAqIHN3aXRjaCBiZXR3ZWVuIFNEUkFNIGJhbmtzLiBUaGlzIGlzIHBh c3NlZCBhcyB0aGUgbnVtYmVyIG9mIGxpbmVzCisgKiBvZiBjb2x1bW4gd2lkdGggaW4gdGhlIG1v ZGlmaWVyICh3ZSBjYW4ndCB1c2UgdGhlIHN0cmlkZSB2YWx1ZSBkdWUKKyAqIHRvIHZhcmlvdXMg Y29yZSBjaGVja3MgdGhhdCBsb29rIGF0IGl0ICwgc28geW91IHNob3VsZCBzZXQgdGhlCisgKiBz dHJpZGUgdG8gd2lkdGgqY3BwKS4KKyAqCisgKiBOb3RlIHRoYXQgdGhlIGNvbHVtbiBoZWlnaHQg Zm9yIHRoaXMgZm9ybWF0IG1vZGlmaWVyIGlzIHRoZSBzYW1lCisgKiBmb3IgYWxsIG9mIHRoZSBw bGFuZXMsIGFzc3VtaW5nIHRoYXQgZWFjaCBjb2x1bW4gY29udGFpbnMgYm90aCBZCisgKiBhbmQg VVYuICBTb21lIFNBTkQtdXNpbmcgaGFyZHdhcmUgc3RvcmVzIFVWIGluIGEgc2VwYXJhdGUgdGls ZWQKKyAqIGltYWdlIGZyb20gWSB0byByZWR1Y2UgdGhlIGNvbHVtbiBoZWlnaHQsIHdoaWNoIGlz IG5vdCBzdXBwb3J0ZWQKKyAqIHdpdGggdGhlc2UgbW9kaWZpZXJzLgorICovCisKKyNkZWZpbmUg RFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDMyX0NPTF9IRUlHSFQodikgXAorCWZvdXJjY19t b2RfYnJvYWRjb21fY29kZSgyLCB2KQorI2RlZmluZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9T QU5ENjRfQ09MX0hFSUdIVCh2KSBcCisJZm91cmNjX21vZF9icm9hZGNvbV9jb2RlKDMsIHYpCisj ZGVmaW5lIERSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQxMjhfQ09MX0hFSUdIVCh2KSBcCisJ Zm91cmNjX21vZF9icm9hZGNvbV9jb2RlKDQsIHYpCisjZGVmaW5lIERSTV9GT1JNQVRfTU9EX0JS T0FEQ09NX1NBTkQyNTZfQ09MX0hFSUdIVCh2KSBcCisJZm91cmNjX21vZF9icm9hZGNvbV9jb2Rl KDUsIHYpCisKKyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDMyIFwKKwlEUk1f Rk9STUFUX01PRF9CUk9BRENPTV9TQU5EMzJfQ09MX0hFSUdIVCgwKQorI2RlZmluZSBEUk1fRk9S TUFUX01PRF9CUk9BRENPTV9TQU5ENjQgXAorCURSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQ2 NF9DT0xfSEVJR0hUKDApCisjZGVmaW5lIERSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQxMjgg XAorCURSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQxMjhfQ09MX0hFSUdIVCgwKQorI2RlZmlu ZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9TQU5EMjU2IFwKKwlEUk1fRk9STUFUX01PRF9CUk9B RENPTV9TQU5EMjU2X0NPTF9IRUlHSFQoMCkKKworLyogQnJvYWRjb20gVUlGIGZvcm1hdAorICoK KyAqIFRoaXMgaXMgdGhlIGNvbW1vbiBmb3JtYXQgZm9yIHRoZSBjdXJyZW50IEJyb2FkY29tIG11 bHRpbWVkaWEKKyAqIGJsb2NrcywgaW5jbHVkaW5nIFYzRCAzLnggYW5kIG5ld2VyLCBuZXdlciB2 aWRlbyBjb2RlY3MsIGFuZAorICogZGlzcGxheXMuCisgKgorICogVGhlIGltYWdlIGNvbnNpc3Rz IG9mIHV0aWxlcyAoNjRiIGJsb2NrcyksIFVJRiBibG9ja3MgKDJ4MiB1dGlsZXMpLAorICogYW5k IG1hY3JvYmxvY2tzICg0eDQgVUlGIGJsb2NrcykuICBUaG9zZSA0eDQgVUlGIGJsb2NrIGdyb3Vw cyBhcmUKKyAqIHN0b3JlZCBpbiBjb2x1bW5zLCB3aXRoIHBhZGRpbmcgYmV0d2VlbiB0aGUgY29s dW1ucyB0byBlbnN1cmUgdGhhdAorICogbW92aW5nIGZyb20gb25lIGNvbHVtbiB0byB0aGUgbmV4 dCBkb2Vzbid0IGhpdCB0aGUgc2FtZSBTRFJBTSBwYWdlCisgKiBiYW5rLgorICoKKyAqIFRvIGNh bGN1bGF0ZSB0aGUgcGFkZGluZywgaXQgaXMgYXNzdW1lZCB0aGF0IGVhY2ggaGFyZHdhcmUgYmxv Y2sKKyAqIGFuZCB0aGUgc29mdHdhcmUgZHJpdmluZyBpdCBrbm93cyB0aGUgcGxhdGZvcm0ncyBT RFJBTSBwYWdlIHNpemUsCisgKiBudW1iZXIgb2YgYmFua3MsIGFuZCBYT1IgYWRkcmVzcywgYW5k IHRoYXQgaXQncyBpZGVudGljYWwgYmV0d2VlbgorICogYWxsIGJsb2NrcyB1c2luZyB0aGUgZm9y bWF0LiAgVGhpcyB0aWxpbmcgbW9kaWZpZXIgd2lsbCB1c2UgWE9SIGFzCisgKiBuZWNlc3Nhcnkg dG8gcmVkdWNlIHRoZSBwYWRkaW5nLiAgSWYgYSBoYXJkd2FyZSBibG9jayBjYW4ndCBkbyBYT1Is CisgKiB0aGUgYXNzdW1wdGlvbiBpcyB0aGF0IGEgbm8tWE9SIHRpbGluZyBtb2RpZmllciB3aWxs IGJlIGNyZWF0ZWQuCisgKi8KKyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fVUlGIGZv dXJjY19tb2RfY29kZShCUk9BRENPTSwgNikKKworLyoKKyAqIEFybSBGcmFtZWJ1ZmZlciBDb21w cmVzc2lvbiAoQUZCQykgbW9kaWZpZXJzCisgKgorICogQUZCQyBpcyBhIHByb3ByaWV0YXJ5IGxv c3NsZXNzIGltYWdlIGNvbXByZXNzaW9uIHByb3RvY29sIGFuZCBmb3JtYXQuCisgKiBJdCBwcm92 aWRlcyBmaW5lLWdyYWluZWQgcmFuZG9tIGFjY2VzcyBhbmQgbWluaW1pemVzIHRoZSBhbW91bnQg b2YgZGF0YQorICogdHJhbnNmZXJyZWQgYmV0d2VlbiBJUCBibG9ja3MuCisgKgorICogQUZCQyBo YXMgc2V2ZXJhbCBmZWF0dXJlcyB3aGljaCBtYXkgYmUgc3VwcG9ydGVkIGFuZC9vciB1c2VkLCB3 aGljaCBhcmUKKyAqIHJlcHJlc2VudGVkIHVzaW5nIGJpdHMgaW4gdGhlIG1vZGlmaWVyLiBOb3Qg YWxsIGNvbWJpbmF0aW9ucyBhcmUgdmFsaWQsCisgKiBhbmQgZGlmZmVyZW50IGRldmljZXMgb3Ig dXNlLWNhc2VzIG1heSBzdXBwb3J0IGRpZmZlcmVudCBjb21iaW5hdGlvbnMuCisgKi8KKyNkZWZp bmUgRFJNX0ZPUk1BVF9NT0RfQVJNX0FGQkMoX19hZmJjX21vZGUpCWZvdXJjY19tb2RfY29kZShB Uk0sIF9fYWZiY19tb2RlKQorCisvKgorICogQUZCQyBzdXBlcmJsb2NrIHNpemUKKyAqCisgKiBJ bmRpY2F0ZXMgdGhlIHN1cGVyYmxvY2sgc2l6ZShzKSB1c2VkIGZvciB0aGUgQUZCQyBidWZmZXIu IFRoZSBidWZmZXIKKyAqIHNpemUgKGluIHBpeGVscykgbXVzdCBiZSBhbGlnbmVkIHRvIGEgbXVs dGlwbGUgb2YgdGhlIHN1cGVyYmxvY2sgc2l6ZS4KKyAqIEZvdXIgbG93ZXN0IHNpZ25pZmljYW50 IGJpdHMoTFNCcykgYXJlIHJlc2VydmVkIGZvciBibG9jayBzaXplLgorICovCisjZGVmaW5lIEFG QkNfRk9STUFUX01PRF9CTE9DS19TSVpFX01BU0sgICAgICAweGYKKyNkZWZpbmUgQUZCQ19GT1JN QVRfTU9EX0JMT0NLX1NJWkVfMTZ4MTYgICAgICgxVUxMKQorI2RlZmluZSBBRkJDX0ZPUk1BVF9N T0RfQkxPQ0tfU0laRV8zMng4ICAgICAgKDJVTEwpCisKKy8qCisgKiBBRkJDIGxvc3NsZXNzIGNv bG9yc3BhY2UgdHJhbnNmb3JtCisgKgorICogSW5kaWNhdGVzIHRoYXQgdGhlIGJ1ZmZlciBtYWtl cyB1c2Ugb2YgdGhlIEFGQkMgbG9zc2xlc3MgY29sb3JzcGFjZQorICogdHJhbnNmb3JtLgorICov CisjZGVmaW5lIEFGQkNfRk9STUFUX01PRF9ZVFIgICAgICgxVUxMIDw8ICA0KQorCisvKgorICog QUZCQyBibG9jay1zcGxpdAorICoKKyAqIEluZGljYXRlcyB0aGF0IHRoZSBwYXlsb2FkIG9mIGVh Y2ggc3VwZXJibG9jayBpcyBzcGxpdC4gVGhlIHNlY29uZAorICogaGFsZiBvZiB0aGUgcGF5bG9h ZCBpcyBwb3NpdGlvbmVkIGF0IGEgcHJlZGVmaW5lZCBvZmZzZXQgZnJvbSB0aGUgc3RhcnQKKyAq IG9mIHRoZSBzdXBlcmJsb2NrIHBheWxvYWQuCisgKi8KKyNkZWZpbmUgQUZCQ19GT1JNQVRfTU9E X1NQTElUICAgKDFVTEwgPDwgIDUpCisKKy8qCisgKiBBRkJDIHNwYXJzZSBsYXlvdXQKKyAqCisg KiBUaGlzIGZsYWcgaW5kaWNhdGVzIHRoYXQgdGhlIHBheWxvYWQgb2YgZWFjaCBzdXBlcmJsb2Nr IG11c3QgYmUgc3RvcmVkIGF0IGEKKyAqIHByZWRlZmluZWQgcG9zaXRpb24gcmVsYXRpdmUgdG8g dGhlIG90aGVyIHN1cGVyYmxvY2tzIGluIHRoZSBzYW1lIEFGQkMKKyAqIGJ1ZmZlci4gVGhpcyBv cmRlciBpcyB0aGUgc2FtZSBvcmRlciB1c2VkIGJ5IHRoZSBoZWFkZXIgYnVmZmVyLiBJbiB0aGlz IG1vZGUKKyAqIGVhY2ggc3VwZXJibG9jayBpcyBnaXZlbiB0aGUgc2FtZSBhbW91bnQgb2Ygc3Bh Y2UgYXMgYW4gdW5jb21wcmVzc2VkCisgKiBzdXBlcmJsb2NrIG9mIHRoZSBwYXJ0aWN1bGFyIGZv cm1hdCB3b3VsZCByZXF1aXJlLCByb3VuZGluZyB1cCB0byB0aGUgbmV4dAorICogbXVsdGlwbGUg b2YgMTI4IGJ5dGVzIGluIHNpemUuCisgKi8KKyNkZWZpbmUgQUZCQ19GT1JNQVRfTU9EX1NQQVJT RSAgKDFVTEwgPDwgIDYpCisKKy8qCisgKiBBRkJDIGNvcHktYmxvY2sgcmVzdHJpY3QKKyAqCisg KiBCdWZmZXJzIHdpdGggdGhpcyBmbGFnIG11c3Qgb2JleSB0aGUgY29weS1ibG9jayByZXN0cmlj dGlvbi4gVGhlIHJlc3RyaWN0aW9uCisgKiBpcyBzdWNoIHRoYXQgdGhlcmUgYXJlIG5vIGNvcHkt YmxvY2tzIHJlZmVycmluZyBhY3Jvc3MgdGhlIGJvcmRlciBvZiA4eDgKKyAqIGJsb2Nrcy4gRm9y IHRoZSBzdWJzYW1wbGVkIGRhdGEgdGhlIDh4OCBsaW1pdGF0aW9uIGlzIGFsc28gc3Vic2FtcGxl ZC4KKyAqLworI2RlZmluZSBBRkJDX0ZPUk1BVF9NT0RfQ0JSICAgICAoMVVMTCA8PCAgNykKKwor LyoKKyAqIEFGQkMgdGlsZWQgbGF5b3V0CisgKgorICogVGhlIHRpbGVkIGxheW91dCBncm91cHMg c3VwZXJibG9ja3MgaW4gOHg4IG9yIDR4NCB0aWxlcywgd2hlcmUgYWxsCisgKiBzdXBlcmJsb2Nr cyBpbnNpZGUgYSB0aWxlIGFyZSBzdG9yZWQgdG9nZXRoZXIgaW4gbWVtb3J5LiA4eDggdGlsZXMg YXJlIHVzZWQKKyAqIGZvciBwaXhlbCBmb3JtYXRzIHVwIHRvIGFuZCBpbmNsdWRpbmcgMzIgYnBw IHdoaWxlIDR4NCB0aWxlcyBhcmUgdXNlZCBmb3IKKyAqIGxhcmdlciBicHAgZm9ybWF0cy4gVGhl IG9yZGVyIGJldHdlZW4gdGhlIHRpbGVzIGlzIHNjYW4gbGluZS4KKyAqIFdoZW4gdGhlIHRpbGVk IGxheW91dCBpcyB1c2VkLCB0aGUgYnVmZmVyIHNpemUgKGluIHBpeGVscykgbXVzdCBiZSBhbGln bmVkCisgKiB0byB0aGUgdGlsZSBzaXplLgorICovCisjZGVmaW5lIEFGQkNfRk9STUFUX01PRF9U SUxFRCAgICgxVUxMIDw8ICA4KQorCisvKgorICogQUZCQyBzb2xpZCBjb2xvciBibG9ja3MKKyAq CisgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgYnVmZmVyIG1ha2VzIHVzZSBvZiBzb2xpZC1jb2xvciBi bG9ja3MsIHdoZXJlYnkgYmFuZHdpZHRoCisgKiBjYW4gYmUgcmVkdWNlZCBpZiBhIHdob2xlIHN1 cGVyYmxvY2sgaXMgYSBzaW5nbGUgY29sb3IuCisgKi8KKyNkZWZpbmUgQUZCQ19GT1JNQVRfTU9E X1NDICAgICAgKDFVTEwgPDwgIDkpCisKICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogfQogI2Vu ZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fbW9kZS5oIGIvaW5jbHVkZS9kcm0vZHJt X21vZGUuaAppbmRleCA1ZjlmYWRiLi5kM2UwZmUzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9k cm1fbW9kZS5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9tb2RlLmgKQEAgLTQ2LDYgKzQ2LDEwIEBA IGV4dGVybiAiQyIgewogI2RlZmluZSBEUk1fTU9ERV9UWVBFX1VTRVJERUYJKDE8PDUpCiAjZGVm aW5lIERSTV9NT0RFX1RZUEVfRFJJVkVSCSgxPDw2KQogCisjZGVmaW5lIERSTV9NT0RFX1RZUEVf QUxMCShEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRCB8CVwKKwkJCQkgRFJNX01PREVfVFlQRV9VU0VS REVGIHwJXAorCQkJCSBEUk1fTU9ERV9UWVBFX0RSSVZFUikKKwogLyogVmlkZW8gbW9kZSBmbGFn cyAqLwogLyogYml0IGNvbXBhdGlibGUgd2l0aCB0aGUgeHJhbmRyIFJSXyBkZWZpbml0aW9ucyAo Yml0cyAwLTEzKQogICoKQEAgLTg5LDYgKzkzLDE1IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBE Uk1fTU9ERV9QSUNUVVJFX0FTUEVDVF9OT05FCQkwCiAjZGVmaW5lIERSTV9NT0RFX1BJQ1RVUkVf QVNQRUNUXzRfMwkJMQogI2RlZmluZSBEUk1fTU9ERV9QSUNUVVJFX0FTUEVDVF8xNl85CQkyCisj ZGVmaW5lIERSTV9NT0RFX1BJQ1RVUkVfQVNQRUNUXzY0XzI3CQkzCisjZGVmaW5lIERSTV9NT0RF X1BJQ1RVUkVfQVNQRUNUXzI1Nl8xMzUJCTQKKworLyogQ29udGVudCB0eXBlIG9wdGlvbnMgKi8K KyNkZWZpbmUgRFJNX01PREVfQ09OVEVOVF9UWVBFX05PX0RBVEEJCTAKKyNkZWZpbmUgRFJNX01P REVfQ09OVEVOVF9UWVBFX0dSQVBISUNTCQkxCisjZGVmaW5lIERSTV9NT0RFX0NPTlRFTlRfVFlQ RV9QSE9UTwkJMgorI2RlZmluZSBEUk1fTU9ERV9DT05URU5UX1RZUEVfQ0lORU1BCQkzCisjZGVm aW5lIERSTV9NT0RFX0NPTlRFTlRfVFlQRV9HQU1FCQk0CiAKIC8qIEFzcGVjdCByYXRpbyBmbGFn IGJpdG1hc2sgKDQgYml0cyAyMjoxOSkgKi8KICNkZWZpbmUgRFJNX01PREVfRkxBR19QSUNfQVJf TUFTSwkJKDB4MEY8PDE5KQpAQCAtOTgsNiArMTExLDI0IEBAIGV4dGVybiAiQyIgewogCQkJKERS TV9NT0RFX1BJQ1RVUkVfQVNQRUNUXzRfMzw8MTkpCiAjZGVmaW5lICBEUk1fTU9ERV9GTEFHX1BJ Q19BUl8xNl85IFwKIAkJCShEUk1fTU9ERV9QSUNUVVJFX0FTUEVDVF8xNl85PDwxOSkKKyNkZWZp bmUgIERSTV9NT0RFX0ZMQUdfUElDX0FSXzY0XzI3IFwKKwkJCShEUk1fTU9ERV9QSUNUVVJFX0FT UEVDVF82NF8yNzw8MTkpCisjZGVmaW5lICBEUk1fTU9ERV9GTEFHX1BJQ19BUl8yNTZfMTM1IFwK KwkJCShEUk1fTU9ERV9QSUNUVVJFX0FTUEVDVF8yNTZfMTM1PDwxOSkKKworI2RlZmluZSAgRFJN X01PREVfRkxBR19BTEwJKERSTV9NT0RFX0ZMQUdfUEhTWU5DIHwJCVwKKwkJCQkgRFJNX01PREVf RkxBR19OSFNZTkMgfAkJXAorCQkJCSBEUk1fTU9ERV9GTEFHX1BWU1lOQyB8CQlcCisJCQkJIERS TV9NT0RFX0ZMQUdfTlZTWU5DIHwJCVwKKwkJCQkgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UgfAlc CisJCQkJIERSTV9NT0RFX0ZMQUdfREJMU0NBTiB8CVwKKwkJCQkgRFJNX01PREVfRkxBR19DU1lO QyB8CQlcCisJCQkJIERSTV9NT0RFX0ZMQUdfUENTWU5DIHwJCVwKKwkJCQkgRFJNX01PREVfRkxB R19OQ1NZTkMgfAkJXAorCQkJCSBEUk1fTU9ERV9GTEFHX0hTS0VXIHwJCVwKKwkJCQkgRFJNX01P REVfRkxBR19EQkxDTEsgfAkJXAorCQkJCSBEUk1fTU9ERV9GTEFHX0NMS0RJVjIgfAlcCisJCQkJ IERSTV9NT0RFX0ZMQUdfM0RfTUFTSykKIAogLyogRFBNUyBmbGFncyAqLwogLyogYml0IGNvbXBh dGlibGUgd2l0aCB0aGUgeG9yZyBkZWZpbml0aW9ucy4gKi8KQEAgLTE1NSw4ICsxODYsOSBAQCBl eHRlcm4gIkMiIHsKIC8qCiAgKiBEUk1fTU9ERV9SRUZMRUNUXzxheGlzPgogICoKLSAqIFNpZ25h bHMgdGhhdCB0aGUgY29udGVudHMgb2YgYSBkcm0gcGxhbmUgaXMgcmVmbGVjdGVkIGluIHRoZSA8 YXhpcz4gYXhpcywKKyAqIFNpZ25hbHMgdGhhdCB0aGUgY29udGVudHMgb2YgYSBkcm0gcGxhbmUg aXMgcmVmbGVjdGVkIGFsb25nIHRoZSA8YXhpcz4gYXhpcywKICAqIGluIHRoZSBzYW1lIHdheSBh cyBtaXJyb3JpbmcuCisgKiBTZWUga2VybmVsZG9jIGNoYXB0ZXIgIlBsYW5lIENvbXBvc2l0aW9u IFByb3BlcnRpZXMiIGZvciBtb3JlIGRldGFpbHMuCiAgKgogICogVGhpcyBkZWZpbmUgaXMgcHJv dmlkZWQgYXMgYSBjb252ZW5pZW5jZSwgbG9va2luZyB1cCB0aGUgcHJvcGVydHkgaWQKICAqIHVz aW5nIHRoZSBuYW1lLT5wcm9wIGlkIGxvb2t1cCBpcyB0aGUgcHJlZmVycmVkIG1ldGhvZC4KQEAg LTMyMCw2ICszNTIsNyBAQCBlbnVtIGRybV9tb2RlX3N1YmNvbm5lY3RvciB7CiAjZGVmaW5lIERS TV9NT0RFX0NPTk5FQ1RPUl9WSVJUVUFMICAgICAgMTUKICNkZWZpbmUgRFJNX01PREVfQ09OTkVD VE9SX0RTSQkJMTYKICNkZWZpbmUgRFJNX01PREVfQ09OTkVDVE9SX0RQSQkJMTcKKyNkZWZpbmUg RFJNX01PREVfQ09OTkVDVE9SX1dSSVRFQkFDSwkxOAogCiBzdHJ1Y3QgZHJtX21vZGVfZ2V0X2Nv bm5lY3RvciB7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRl L2RybS9pOTE1X2RybS5oCmluZGV4IDE2ZTQ1MmEuLjI2OGI1ODUgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvZHJtL2k5MTVfZHJtLmgKKysrIGIvaW5jbHVkZS9kcm0vaTkxNV9kcm0uaApAQCAtNTI5LDYg KzUyOSwyOCBAQCB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9pcnFfd2FpdCB7CiAgKi8KICNkZWZp bmUgSTkxNV9QQVJBTV9DU19USU1FU1RBTVBfRlJFUVVFTkNZIDUxCiAKKy8qCisgKiBPbmNlIHVw b24gYSB0aW1lIHdlIHN1cHBvc2VkIHRoYXQgd3JpdGVzIHRocm91Z2ggdGhlIEdHVFQgd291bGQg YmUKKyAqIGltbWVkaWF0ZWx5IGluIHBoeXNpY2FsIG1lbW9yeSAob25jZSBmbHVzaGVkIG91dCBv ZiB0aGUgQ1BVIHBhdGgpLiBIb3dldmVyLAorICogb24gYSBmZXcgZGlmZmVyZW50IHByb2Nlc3Nv cnMgYW5kIGNoaXBzZXRzLCB0aGlzIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgY2FzZQorICogYXMg dGhlIHdyaXRlcyBhcHBlYXIgdG8gYmUgYnVmZmVyZWQgaW50ZXJuYWxseS4gVGh1cyBhIHJlYWQg b2YgdGhlIGJhY2tpbmcKKyAqIHN0b3JhZ2UgKHBoeXNpY2FsIG1lbW9yeSkgdmlhIGEgZGlmZmVy ZW50IHBhdGggKHdpdGggZGlmZmVyZW50IHBoeXNpY2FsIHRhZ3MKKyAqIHRvIHRoZSBpbmRpcmVj dCB3cml0ZSB2aWEgdGhlIEdHVFQpIHdpbGwgc2VlIHN0YWxlIHZhbHVlcyBmcm9tIGJlZm9yZQor ICogdGhlIEdHVFQgd3JpdGUuIEluc2lkZSB0aGUga2VybmVsLCB3ZSBjYW4gZm9yIHRoZSBtb3N0 IHBhcnQga2VlcCB0cmFjayBvZgorICogdGhlIGRpZmZlcmVudCByZWFkL3dyaXRlIGRvbWFpbnMg aW4gdXNlIChlLmcuIHNldC1kb21haW4pLCBidXQgdGhlIGFzc3VtcHRpb24KKyAqIG9mIGNvaGVy ZW5jeSBpcyBiYWtlZCBpbnRvIHRoZSBBQkksIGhlbmNlIHJlcG9ydGluZyBpdHMgdHJ1ZSBzdGF0 ZSBpbiB0aGlzCisgKiBwYXJhbWV0ZXIuCisgKgorICogUmVwb3J0cyB0cnVlIHdoZW4gd3JpdGVz IHZpYSBtbWFwX2d0dCBhcmUgaW1tZWRpYXRlbHkgdmlzaWJsZSBmb2xsb3dpbmcgYW4KKyAqIGxm ZW5jZSB0byBmbHVzaCB0aGUgV0NCLgorICoKKyAqIFJlcG9ydHMgZmFsc2Ugd2hlbiB3cml0ZXMg dmlhIG1tYXBfZ3R0IGFyZSBpbmRldGVybWluYXRlbHkgZGVsYXllZCBpbiBhbiBpbgorICogaW50 ZXJuYWwgYnVmZmVyIGFuZCBhcmUgX25vdF8gaW1tZWRpYXRlbHkgdmlzaWJsZSB0byB0aGlyZCBw YXJ0aWVzIGFjY2Vzc2luZworICogZGlyZWN0bHkgdmlhIG1tYXBfY3B1L21tYXBfd2MuIFVzZSBv ZiBtbWFwX2d0dCBhcyBwYXJ0IG9mIGFuIElQQworICogY29tbXVuaWNhdGlvbnMgY2hhbm5lbCB3 aGVuIHJlcG9ydGluZyBmYWxzZSBpcyBzdHJvbmdseSBkaXNhZHZpc2VkLgorICovCisjZGVmaW5l IEk5MTVfUEFSQU1fTU1BUF9HVFRfQ09IRVJFTlQJNTIKKwogdHlwZWRlZiBzdHJ1Y3QgZHJtX2k5 MTVfZ2V0cGFyYW0gewogCV9fczMyIHBhcmFtOwogCS8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2Ry bS9xeGxfZHJtLmggYi9pbmNsdWRlL2RybS9xeGxfZHJtLmgKaW5kZXggMzhhMGRiZC4uODgwOTk5 ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vcXhsX2RybS5oCisrKyBiL2luY2x1ZGUvZHJtL3F4 bF9kcm0uaApAQCAtMjQsNyArMjQsNiBAQAogI2lmbmRlZiBRWExfRFJNX0gKICNkZWZpbmUgUVhM X0RSTV9ICiAKLSNpbmNsdWRlIDxzdGRkZWYuaD4KICNpbmNsdWRlICJkcm0uaCIKIAogI2lmIGRl ZmluZWQoX19jcGx1c3BsdXMpCkBAIC04OSw3ICs4OCw2IEBAIHN0cnVjdCBkcm1fcXhsX2NvbW1h bmQgewogCV9fdTMyICAgICAgICAgICAgICAgIHBhZDsKIH07CiAKLS8qIFhYWDogY2FsbCBpdCBk cm1fcXhsX2NvbW1hbmRzPyAqLwogc3RydWN0IGRybV9xeGxfZXhlY2J1ZmZlciB7CiAJX191MzIJ CWZsYWdzOwkJLyogZm9yIGZ1dHVyZSB1c2UgKi8KIAlfX3UzMgkJY29tbWFuZHNfbnVtOwpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vdGVncmFfZHJtLmggYi9pbmNsdWRlL2RybS90ZWdyYV9kcm0u aAppbmRleCAxMmY5YmY4Li42YzA3OTE5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS90ZWdyYV9k cm0uaAorKysgYi9pbmNsdWRlL2RybS90ZWdyYV9kcm0uaApAQCAtMzIsMTQzICszMiw2MTUgQEAg ZXh0ZXJuICJDIiB7CiAjZGVmaW5lIERSTV9URUdSQV9HRU1fQ1JFQVRFX1RJTEVEICAgICAoMSA8 PCAwKQogI2RlZmluZSBEUk1fVEVHUkFfR0VNX0NSRUFURV9CT1RUT01fVVAgKDEgPDwgMSkKIAor LyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9jcmVhdGUgLSBwYXJhbWV0ZXJzIGZvciB0aGUg R0VNIG9iamVjdCBjcmVhdGlvbiBJT0NUTAorICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9jcmVh dGUgeworCS8qKgorCSAqIEBzaXplOgorCSAqCisJICogVGhlIHNpemUsIGluIGJ5dGVzLCBvZiB0 aGUgYnVmZmVyIG9iamVjdCB0byBiZSBjcmVhdGVkLgorCSAqLwogCV9fdTY0IHNpemU7CisKKwkv KioKKwkgKiBAZmxhZ3M6CisJICoKKwkgKiBBIGJpdG1hc2sgb2YgZmxhZ3MgdGhhdCBpbmZsdWVu Y2UgdGhlIGNyZWF0aW9uIG9mIEdFTSBvYmplY3RzOgorCSAqCisJICogRFJNX1RFR1JBX0dFTV9D UkVBVEVfVElMRUQKKwkgKiAgIFVzZSB0aGUgMTZ4MTYgdGlsaW5nIGZvcm1hdCBmb3IgdGhpcyBi dWZmZXIuCisJICoKKwkgKiBEUk1fVEVHUkFfR0VNX0NSRUFURV9CT1RUT01fVVAKKwkgKiAgIFRo ZSBidWZmZXIgaGFzIGEgYm90dG9tLXVwIGxheW91dC4KKwkgKi8KIAlfX3UzMiBmbGFnczsKKwor CS8qKgorCSAqIEBoYW5kbGU6CisJICoKKwkgKiBUaGUgaGFuZGxlIG9mIHRoZSBjcmVhdGVkIEdF TSBvYmplY3QuIFNldCBieSB0aGUga2VybmVsIHVwb24KKwkgKiBzdWNjZXNzZnVsIGNvbXBsZXRp b24gb2YgdGhlIElPQ1RMLgorCSAqLwogCV9fdTMyIGhhbmRsZTsKIH07CiAKKy8qKgorICogc3Ry dWN0IGRybV90ZWdyYV9nZW1fbW1hcCAtIHBhcmFtZXRlcnMgZm9yIHRoZSBHRU0gbW1hcCBJT0NU TAorICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9tbWFwIHsKKwkvKioKKwkgKiBAaGFuZGxlOgor CSAqCisJICogSGFuZGxlIG9mIHRoZSBHRU0gb2JqZWN0IHRvIG9idGFpbiBhbiBtbWFwIG9mZnNl dCBmb3IuCisJICovCiAJX191MzIgaGFuZGxlOworCisJLyoqCisJICogQHBhZDoKKwkgKgorCSAq IFN0cnVjdHVyZSBwYWRkaW5nIHRoYXQgbWF5IGJlIHVzZWQgaW4gdGhlIGZ1dHVyZS4gTXVzdCBi ZSAwLgorCSAqLwogCV9fdTMyIHBhZDsKKworCS8qKgorCSAqIEBvZmZzZXQ6CisJICoKKwkgKiBU aGUgbW1hcCBvZmZzZXQgZm9yIHRoZSBnaXZlbiBHRU0gb2JqZWN0LiBTZXQgYnkgdGhlIGtlcm5l bCB1cG9uCisJICogc3VjY2Vzc2Z1bCBjb21wbGV0aW9uIG9mIHRoZSBJT0NUTC4KKwkgKi8KIAlf X3U2NCBvZmZzZXQ7CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0X3JlYWQg LSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVhZCBzeW5jcG9pbnQgSU9DVEwKKyAqLwogc3RydWN0IGRy bV90ZWdyYV9zeW5jcHRfcmVhZCB7CisJLyoqCisJICogQGlkOgorCSAqCisJICogSUQgb2YgdGhl IHN5bmNwb2ludCB0byByZWFkIHRoZSBjdXJyZW50IHZhbHVlIGZyb20uCisJICovCiAJX191MzIg aWQ7CisKKwkvKioKKwkgKiBAdmFsdWU6CisJICoKKwkgKiBUaGUgY3VycmVudCBzeW5jcG9pbnQg dmFsdWUuIFNldCBieSB0aGUga2VybmVsIHVwb24gc3VjY2Vzc2Z1bAorCSAqIGNvbXBsZXRpb24g b2YgdGhlIElPQ1RMLgorCSAqLwogCV9fdTMyIHZhbHVlOwogfTsKIAorLyoqCisgKiBzdHJ1Y3Qg ZHJtX3RlZ3JhX3N5bmNwdF9pbmNyIC0gcGFyYW1ldGVycyBmb3IgdGhlIGluY3JlbWVudCBzeW5j cG9pbnQgSU9DVEwKKyAqLwogc3RydWN0IGRybV90ZWdyYV9zeW5jcHRfaW5jciB7CisJLyoqCisJ ICogQGlkOgorCSAqCisJICogSUQgb2YgdGhlIHN5bmNwb2ludCB0byBpbmNyZW1lbnQuCisJICov CiAJX191MzIgaWQ7CisKKwkvKioKKwkgKiBAcGFkOgorCSAqCisJICogU3RydWN0dXJlIHBhZGRp bmcgdGhhdCBtYXkgYmUgdXNlZCBpbiB0aGUgZnV0dXJlLiBNdXN0IGJlIDAuCisJICovCiAJX191 MzIgcGFkOwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdF93YWl0IC0gcGFy YW1ldGVycyBmb3IgdGhlIHdhaXQgc3luY3BvaW50IElPQ1RMCisgKi8KIHN0cnVjdCBkcm1fdGVn cmFfc3luY3B0X3dhaXQgeworCS8qKgorCSAqIEBpZDoKKwkgKgorCSAqIElEIG9mIHRoZSBzeW5j cG9pbnQgdG8gd2FpdCBvbi4KKwkgKi8KIAlfX3UzMiBpZDsKKworCS8qKgorCSAqIEB0aHJlc2g6 CisJICoKKwkgKiBUaHJlc2hvbGQgdmFsdWUgZm9yIHdoaWNoIHRvIHdhaXQuCisJICovCiAJX191 MzIgdGhyZXNoOworCisJLyoqCisJICogQHRpbWVvdXQ6CisJICoKKwkgKiBUaW1lb3V0LCBpbiBt aWxsaXNlY29uZHMsIHRvIHdhaXQuCisJICovCiAJX191MzIgdGltZW91dDsKKworCS8qKgorCSAq IEB2YWx1ZToKKwkgKgorCSAqIFRoZSBuZXcgc3luY3BvaW50IHZhbHVlIGFmdGVyIHRoZSB3YWl0 LiBTZXQgYnkgdGhlIGtlcm5lbCB1cG9uCisJICogc3VjY2Vzc2Z1bCBjb21wbGV0aW9uIG9mIHRo ZSBJT0NUTC4KKwkgKi8KIAlfX3UzMiB2YWx1ZTsKIH07CiAKICNkZWZpbmUgRFJNX1RFR1JBX05P X1RJTUVPVVQJKDB4ZmZmZmZmZmYpCiAKKy8qKgorICogc3RydWN0IGRybV90ZWdyYV9vcGVuX2No YW5uZWwgLSBwYXJhbWV0ZXJzIGZvciB0aGUgb3BlbiBjaGFubmVsIElPQ1RMCisgKi8KIHN0cnVj dCBkcm1fdGVncmFfb3Blbl9jaGFubmVsIHsKKwkvKioKKwkgKiBAY2xpZW50OgorCSAqCisJICog VGhlIGNsaWVudCBJRCBmb3IgdGhpcyBjaGFubmVsLgorCSAqLwogCV9fdTMyIGNsaWVudDsKKwor CS8qKgorCSAqIEBwYWQ6CisJICoKKwkgKiBTdHJ1Y3R1cmUgcGFkZGluZyB0aGF0IG1heSBiZSB1 c2VkIGluIHRoZSBmdXR1cmUuIE11c3QgYmUgMC4KKwkgKi8KIAlfX3UzMiBwYWQ7CisKKwkvKioK KwkgKiBAY29udGV4dDoKKwkgKgorCSAqIFRoZSBhcHBsaWNhdGlvbiBjb250ZXh0IG9mIHRoaXMg Y2hhbm5lbC4gU2V0IGJ5IHRoZSBrZXJuZWwgdXBvbgorCSAqIHN1Y2Nlc3NmdWwgY29tcGxldGlv biBvZiB0aGUgSU9DVEwuIFRoaXMgY29udGV4dCBuZWVkcyB0byBiZSBwYXNzZWQKKwkgKiB0byB0 aGUgRFJNX1RFR1JBX0NIQU5ORUxfQ0xPU0Ugb3IgdGhlIERSTV9URUdSQV9TVUJNSVQgSU9DVExz LgorCSAqLwogCV9fdTY0IGNvbnRleHQ7CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFf Y2xvc2VfY2hhbm5lbCAtIHBhcmFtZXRlcnMgZm9yIHRoZSBjbG9zZSBjaGFubmVsIElPQ1RMCisg Ki8KIHN0cnVjdCBkcm1fdGVncmFfY2xvc2VfY2hhbm5lbCB7CisJLyoqCisJICogQGNvbnRleHQ6 CisJICoKKwkgKiBUaGUgYXBwbGljYXRpb24gY29udGV4dCBvZiB0aGlzIGNoYW5uZWwuIFRoaXMg aXMgb2J0YWluZWQgZnJvbSB0aGUKKwkgKiBEUk1fVEVHUkFfT1BFTl9DSEFOTkVMIElPQ1RMLgor CSAqLwogCV9fdTY0IGNvbnRleHQ7CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFfZ2V0 X3N5bmNwdCAtIHBhcmFtZXRlcnMgZm9yIHRoZSBnZXQgc3luY3BvaW50IElPQ1RMCisgKi8KIHN0 cnVjdCBkcm1fdGVncmFfZ2V0X3N5bmNwdCB7CisJLyoqCisJICogQGNvbnRleHQ6CisJICoKKwkg KiBUaGUgYXBwbGljYXRpb24gY29udGV4dCBpZGVudGlmeWluZyB0aGUgY2hhbm5lbCBmb3Igd2hp Y2ggdG8gb2J0YWluCisJICogdGhlIHN5bmNwb2ludCBJRC4KKwkgKi8KIAlfX3U2NCBjb250ZXh0 OworCisJLyoqCisJICogQGluZGV4OgorCSAqCisJICogSW5kZXggb2YgdGhlIGNsaWVudCBzeW5j cG9pbnQgZm9yIHdoaWNoIHRvIG9idGFpbiB0aGUgSUQuCisJICovCiAJX191MzIgaW5kZXg7CisK KwkvKioKKwkgKiBAaWQ6CisJICoKKwkgKiBUaGUgSUQgb2YgdGhlIGdpdmVuIHN5bmNwb2ludC4g U2V0IGJ5IHRoZSBrZXJuZWwgdXBvbiBzdWNjZXNzZnVsCisJICogY29tcGxldGlvbiBvZiB0aGUg SU9DVEwuCisJICovCiAJX191MzIgaWQ7CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFf Z2V0X3N5bmNwdF9iYXNlIC0gcGFyYW1ldGVycyBmb3IgdGhlIGdldCB3YWl0IGJhc2UgSU9DVEwK KyAqLwogc3RydWN0IGRybV90ZWdyYV9nZXRfc3luY3B0X2Jhc2UgeworCS8qKgorCSAqIEBjb250 ZXh0OgorCSAqCisJICogVGhlIGFwcGxpY2F0aW9uIGNvbnRleHQgaWRlbnRpZnlpbmcgZm9yIHdo aWNoIGNoYW5uZWwgdG8gb2J0YWluIHRoZQorCSAqIHdhaXQgYmFzZS4KKwkgKi8KIAlfX3U2NCBj b250ZXh0OworCisJLyoqCisJICogQHN5bmNwdDoKKwkgKgorCSAqIElEIG9mIHRoZSBzeW5jcG9p bnQgZm9yIHdoaWNoIHRvIG9idGFpbiB0aGUgd2FpdCBiYXNlLgorCSAqLwogCV9fdTMyIHN5bmNw dDsKKworCS8qKgorCSAqIEBpZDoKKwkgKgorCSAqIFRoZSBJRCBvZiB0aGUgd2FpdCBiYXNlIGNv cnJlc3BvbmRpbmcgdG8gdGhlIGNsaWVudCBzeW5jcG9pbnQuIFNldAorCSAqIGJ5IHRoZSBrZXJu ZWwgdXBvbiBzdWNjZXNzZnVsIGNvbXBsZXRpb24gb2YgdGhlIElPQ1RMLgorCSAqLwogCV9fdTMy IGlkOwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX3N5bmNwdCAtIHN5bmNwb2ludCBp bmNyZW1lbnQgb3BlcmF0aW9uCisgKi8KIHN0cnVjdCBkcm1fdGVncmFfc3luY3B0IHsKKwkvKioK KwkgKiBAaWQ6CisJICoKKwkgKiBJRCBvZiB0aGUgc3luY3BvaW50IHRvIG9wZXJhdGUgb24uCisJ ICovCiAJX191MzIgaWQ7CisKKwkvKioKKwkgKiBAaW5jcnM6CisJICoKKwkgKiBOdW1iZXIgb2Yg aW5jcmVtZW50cyB0byBwZXJmb3JtIGZvciB0aGUgc3luY3BvaW50LgorCSAqLwogCV9fdTMyIGlu Y3JzOwogfTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3RlZ3JhX2NtZGJ1ZiAtIHN0cnVjdHVyZSBk ZXNjcmliaW5nIGEgY29tbWFuZCBidWZmZXIKKyAqLwogc3RydWN0IGRybV90ZWdyYV9jbWRidWYg eworCS8qKgorCSAqIEBoYW5kbGU6CisJICoKKwkgKiBIYW5kbGUgdG8gYSBHRU0gb2JqZWN0IGNv bnRhaW5pbmcgdGhlIGNvbW1hbmQgYnVmZmVyLgorCSAqLwogCV9fdTMyIGhhbmRsZTsKKworCS8q KgorCSAqIEBvZmZzZXQ6CisJICoKKwkgKiBPZmZzZXQsIGluIGJ5dGVzLCBpbnRvIHRoZSBHRU0g b2JqZWN0IGlkZW50aWZpZWQgYnkgQGhhbmRsZSBhdAorCSAqIHdoaWNoIHRoZSBjb21tYW5kIGJ1 ZmZlciBzdGFydHMuCisJICovCiAJX191MzIgb2Zmc2V0OworCisJLyoqCisJICogQHdvcmRzOgor CSAqCisJICogTnVtYmVyIG9mIDMyLWJpdCB3b3JkcyBpbiB0aGlzIGNvbW1hbmQgYnVmZmVyLgor CSAqLwogCV9fdTMyIHdvcmRzOworCisJLyoqCisJICogQHBhZDoKKwkgKgorCSAqIFN0cnVjdHVy ZSBwYWRkaW5nIHRoYXQgbWF5IGJlIHVzZWQgaW4gdGhlIGZ1dHVyZS4gTXVzdCBiZSAwLgorCSAq LwogCV9fdTMyIHBhZDsKIH07CiAKKy8qKgorICogc3RydWN0IGRybV90ZWdyYV9yZWxvYyAtIEdF TSBvYmplY3QgcmVsb2NhdGlvbiBzdHJ1Y3R1cmUKKyAqLwogc3RydWN0IGRybV90ZWdyYV9yZWxv YyB7CiAJc3RydWN0IHsKKwkJLyoqCisJCSAqIEBjbWRidWYuaGFuZGxlOgorCQkgKgorCQkgKiBI YW5kbGUgdG8gdGhlIEdFTSBvYmplY3QgY29udGFpbmluZyB0aGUgY29tbWFuZCBidWZmZXIgZm9y CisJCSAqIHdoaWNoIHRvIHBlcmZvcm0gdGhpcyBHRU0gb2JqZWN0IHJlbG9jYXRpb24uCisJCSAq LwogCQlfX3UzMiBoYW5kbGU7CisKKwkJLyoqCisJCSAqIEBjbWRidWYub2Zmc2V0OgorCQkgKgor CQkgKiBPZmZzZXQsIGluIGJ5dGVzLCBpbnRvIHRoZSBjb21tYW5kIGJ1ZmZlciBhdCB3aGljaCB0 bworCQkgKiBpbnNlcnQgdGhlIHJlbG9jYXRlZCBhZGRyZXNzLgorCQkgKi8KIAkJX191MzIgb2Zm c2V0OwogCX0gY21kYnVmOwogCXN0cnVjdCB7CisJCS8qKgorCQkgKiBAdGFyZ2V0LmhhbmRsZToK KwkJICoKKwkJICogSGFuZGxlIHRvIHRoZSBHRU0gb2JqZWN0IHRvIGJlIHJlbG9jYXRlZC4KKwkJ ICovCiAJCV9fdTMyIGhhbmRsZTsKKworCQkvKioKKwkJICogQHRhcmdldC5vZmZzZXQ6CisJCSAq CisJCSAqIE9mZnNldCwgaW4gYnl0ZXMsIGludG8gdGhlIHRhcmdldCBHRU0gb2JqZWN0IGF0IHdo aWNoIHRoZQorCQkgKiByZWxvY2F0ZWQgZGF0YSBzdGFydHMuCisJCSAqLwogCQlfX3UzMiBvZmZz ZXQ7CiAJfSB0YXJnZXQ7CisKKwkvKioKKwkgKiBAc2hpZnQ6CisJICoKKwkgKiBUaGUgbnVtYmVy IG9mIGJpdHMgYnkgd2hpY2ggdG8gc2hpZnQgcmVsb2NhdGVkIGFkZHJlc3Nlcy4KKwkgKi8KIAlf X3UzMiBzaGlmdDsKKworCS8qKgorCSAqIEBwYWQ6CisJICoKKwkgKiBTdHJ1Y3R1cmUgcGFkZGlu ZyB0aGF0IG1heSBiZSB1c2VkIGluIHRoZSBmdXR1cmUuIE11c3QgYmUgMC4KKwkgKi8KIAlfX3Uz MiBwYWQ7CiB9OwogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFfd2FpdGNoayAtIHdhaXQgY2hl Y2sgc3RydWN0dXJlCisgKi8KIHN0cnVjdCBkcm1fdGVncmFfd2FpdGNoayB7CisJLyoqCisJICog QGhhbmRsZToKKwkgKgorCSAqIEhhbmRsZSB0byB0aGUgR0VNIG9iamVjdCBjb250YWluaW5nIGEg Y29tbWFuZCBzdHJlYW0gb24gd2hpY2ggdG8KKwkgKiBwZXJmb3JtIHRoZSB3YWl0IGNoZWNrLgor CSAqLwogCV9fdTMyIGhhbmRsZTsKKworCS8qKgorCSAqIEBvZmZzZXQ6CisJICoKKwkgKiBPZmZz ZXQsIGluIGJ5dGVzLCBvZiB0aGUgbG9jYXRpb24gaW4gdGhlIGNvbW1hbmQgc3RyZWFtIHRvIHBl cmZvcm0KKwkgKiB0aGUgd2FpdCBjaGVjayBvbi4KKwkgKi8KIAlfX3UzMiBvZmZzZXQ7CisKKwkv KioKKwkgKiBAc3luY3B0OgorCSAqCisJICogSUQgb2YgdGhlIHN5bmNwb2ludCB0byB3YWl0IGNo ZWNrLgorCSAqLwogCV9fdTMyIHN5bmNwdDsKKworCS8qKgorCSAqIEB0aHJlc2g6CisJICoKKwkg KiBUaHJlc2hvbGQgdmFsdWUgZm9yIHdoaWNoIHRvIGNoZWNrLgorCSAqLwogCV9fdTMyIHRocmVz aDsKIH07CiAKKy8qKgorICogc3RydWN0IGRybV90ZWdyYV9zdWJtaXQgLSBqb2Igc3VibWlzc2lv biBzdHJ1Y3R1cmUKKyAqLwogc3RydWN0IGRybV90ZWdyYV9zdWJtaXQgeworCS8qKgorCSAqIEBj b250ZXh0OgorCSAqCisJICogVGhlIGFwcGxpY2F0aW9uIGNvbnRleHQgaWRlbnRpZnlpbmcgdGhl IGNoYW5uZWwgdG8gdXNlIGZvciB0aGUKKwkgKiBleGVjdXRpb24gb2YgdGhpcyBqb2IuCisJICov CiAJX191NjQgY29udGV4dDsKKworCS8qKgorCSAqIEBudW1fc3luY3B0czoKKwkgKgorCSAqIFRo ZSBudW1iZXIgb2Ygc3luY3BvaW50cyBvcGVyYXRlZCBvbiBieSB0aGlzIGpvYi4gVGhpcyBkZWZp bmVzIHRoZQorCSAqIGxlbmd0aCBvZiB0aGUgYXJyYXkgcG9pbnRlZCB0byBieSBAc3luY3B0cy4K KwkgKi8KIAlfX3UzMiBudW1fc3luY3B0czsKKworCS8qKgorCSAqIEBudW1fY21kYnVmczoKKwkg KgorCSAqIFRoZSBudW1iZXIgb2YgY29tbWFuZCBidWZmZXJzIHRvIGV4ZWN1dGUgYXMgcGFydCBv ZiB0aGlzIGpvYi4gVGhpcworCSAqIGRlZmluZXMgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgcG9p bnRlZCB0byBieSBAY21kYnVmcy4KKwkgKi8KIAlfX3UzMiBudW1fY21kYnVmczsKKworCS8qKgor CSAqIEBudW1fcmVsb2NzOgorCSAqCisJICogVGhlIG51bWJlciBvZiByZWxvY2F0aW9ucyB0byBw ZXJmb3JtIGJlZm9yZSBleGVjdXRpbmcgdGhpcyBqb2IuCisJICogVGhpcyBkZWZpbmVzIHRoZSBs ZW5ndGggb2YgdGhlIGFycmF5IHBvaW50ZWQgdG8gYnkgQHJlbG9jcy4KKwkgKi8KIAlfX3UzMiBu dW1fcmVsb2NzOworCisJLyoqCisJICogQG51bV93YWl0Y2hrczoKKwkgKgorCSAqIFRoZSBudW1i ZXIgb2Ygd2FpdCBjaGVja3MgdG8gcGVyZm9ybSBhcyBwYXJ0IG9mIHRoaXMgam9iLiBUaGlzCisJ ICogZGVmaW5lcyB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBwb2ludGVkIHRvIGJ5IEB3YWl0Y2hr cy4KKwkgKi8KIAlfX3UzMiBudW1fd2FpdGNoa3M7CisKKwkvKioKKwkgKiBAd2FpdGNoa19tYXNr OgorCSAqCisJICogQml0bWFzayBvZiB2YWxpZCB3YWl0IGNoZWNrcy4KKwkgKi8KIAlfX3UzMiB3 YWl0Y2hrX21hc2s7CisKKwkvKioKKwkgKiBAdGltZW91dDoKKwkgKgorCSAqIFRpbWVvdXQsIGlu IG1pbGxpc2Vjb25kcywgYmVmb3JlIHRoaXMgam9iIGlzIGNhbmNlbGxlZC4KKwkgKi8KIAlfX3Uz MiB0aW1lb3V0OworCisJLyoqCisJICogQHN5bmNwdHM6CisJICoKKwkgKiBBIHBvaW50ZXIgdG8g YW4gYXJyYXkgb2YgJnN0cnVjdCBkcm1fdGVncmFfc3luY3B0IHN0cnVjdHVyZXMgdGhhdAorCSAq IHNwZWNpZnkgdGhlIHN5bmNwb2ludCBvcGVyYXRpb25zIHBlcmZvcm1lZCBhcyBwYXJ0IG9mIHRo aXMgam9iLgorCSAqIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5IG11c3QgYmUg ZXF1YWwgdG8gdGhlIHZhbHVlCisJICogZ2l2ZW4gYnkgQG51bV9zeW5jcHRzLgorCSAqLwogCV9f dTY0IHN5bmNwdHM7CisKKwkvKioKKwkgKiBAY21kYnVmczoKKwkgKgorCSAqIEEgcG9pbnRlciB0 byBhbiBhcnJheSBvZiAmc3RydWN0IGRybV90ZWdyYV9jbWRidWYgc3RydWN0dXJlcyB0aGF0CisJ ICogZGVmaW5lIHRoZSBjb21tYW5kIGJ1ZmZlcnMgdG8gZXhlY3V0ZSBhcyBwYXJ0IG9mIHRoaXMg am9iLiBUaGUKKwkgKiBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5IG11c3QgYmUgZXF1 YWwgdG8gdGhlIHZhbHVlIGdpdmVuCisJICogYnkgQG51bV9zeW5jcHRzLgorCSAqLwogCV9fdTY0 IGNtZGJ1ZnM7CisKKwkvKioKKwkgKiBAcmVsb2NzOgorCSAqCisJICogQSBwb2ludGVyIHRvIGFu IGFycmF5IG9mICZzdHJ1Y3QgZHJtX3RlZ3JhX3JlbG9jIHN0cnVjdHVyZXMgdGhhdAorCSAqIHNw ZWNpZnkgdGhlIHJlbG9jYXRpb25zIHRoYXQgbmVlZCB0byBiZSBwZXJmb3JtZWQgYmVmb3JlIGV4 ZWN1dGluZworCSAqIHRoaXMgam9iLiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBhcnJh eSBtdXN0IGJlIGVxdWFsIHRvIHRoZQorCSAqIHZhbHVlIGdpdmVuIGJ5IEBudW1fcmVsb2NzLgor CSAqLwogCV9fdTY0IHJlbG9jczsKKworCS8qKgorCSAqIEB3YWl0Y2hrczoKKwkgKgorCSAqIEEg cG9pbnRlciB0byBhbiBhcnJheSBvZiAmc3RydWN0IGRybV90ZWdyYV93YWl0Y2hrIHN0cnVjdHVy ZXMgdGhhdAorCSAqIHNwZWNpZnkgdGhlIHdhaXQgY2hlY2tzIHRvIGJlIHBlcmZvcm1lZCB3aGls ZSBleGVjdXRpbmcgdGhpcyBqb2IuCisJICogVGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUg YXJyYXkgbXVzdCBiZSBlcXVhbCB0byB0aGUgdmFsdWUKKwkgKiBnaXZlbiBieSBAbnVtX3dhaXRj aGtzLgorCSAqLwogCV9fdTY0IHdhaXRjaGtzOwotCV9fdTMyIGZlbmNlOwkJLyogUmV0dXJuIHZh bHVlICovCiAKLQlfX3UzMiByZXNlcnZlZFs1XTsJLyogZnV0dXJlIGV4cGFuc2lvbiAqLworCS8q KgorCSAqIEBmZW5jZToKKwkgKgorCSAqIFRoZSB0aHJlc2hvbGQgb2YgdGhlIHN5bmNwb2ludCBh c3NvY2lhdGVkIHdpdGggdGhpcyBqb2IgYWZ0ZXIgaXQKKwkgKiBoYXMgYmVlbiBjb21wbGV0ZWQu IFNldCBieSB0aGUga2VybmVsIHVwb24gc3VjY2Vzc2Z1bCBjb21wbGV0aW9uIG9mCisJICogdGhl IElPQ1RMLiBUaGlzIGNhbiBiZSB1c2VkIHdpdGggdGhlIERSTV9URUdSQV9TWU5DUFRfV0FJVCBJ T0NUTCB0bworCSAqIHdhaXQgZm9yIHRoaXMgam9iIHRvIGJlIGZpbmlzaGVkLgorCSAqLworCV9f dTMyIGZlbmNlOworCisJLyoqCisJICogQHJlc2VydmVkOgorCSAqCisJICogVGhpcyBmaWVsZCBp cyByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS4gTXVzdCBiZSAwLgorCSAqLworCV9fdTMyIHJlc2Vy dmVkWzVdOwogfTsKIAogI2RlZmluZSBEUk1fVEVHUkFfR0VNX1RJTElOR19NT0RFX1BJVENIIDAK ICNkZWZpbmUgRFJNX1RFR1JBX0dFTV9USUxJTkdfTU9ERV9USUxFRCAxCiAjZGVmaW5lIERSTV9U RUdSQV9HRU1fVElMSU5HX01PREVfQkxPQ0sgMgogCisvKioKKyAqIHN0cnVjdCBkcm1fdGVncmFf Z2VtX3NldF90aWxpbmcgLSBwYXJhbWV0ZXJzIGZvciB0aGUgc2V0IHRpbGluZyBJT0NUTAorICov CiBzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9zZXRfdGlsaW5nIHsKLQkvKiBpbnB1dCAqLworCS8qKgor CSAqIEBoYW5kbGU6CisJICoKKwkgKiBIYW5kbGUgdG8gdGhlIEdFTSBvYmplY3QgZm9yIHdoaWNo IHRvIHNldCB0aGUgdGlsaW5nIHBhcmFtZXRlcnMuCisJICovCiAJX191MzIgaGFuZGxlOworCisJ LyoqCisJICogQG1vZGU6CisJICoKKwkgKiBUaGUgdGlsaW5nIG1vZGUgdG8gc2V0LiBNdXN0IGJl IG9uZSBvZjoKKwkgKgorCSAqIERSTV9URUdSQV9HRU1fVElMSU5HX01PREVfUElUQ0gKKwkgKiAg IHBpdGNoIGxpbmVhciBmb3JtYXQKKwkgKgorCSAqIERSTV9URUdSQV9HRU1fVElMSU5HX01PREVf VElMRUQKKwkgKiAgIDE2eDE2IHRpbGluZyBmb3JtYXQKKwkgKgorCSAqIERSTV9URUdSQV9HRU1f VElMSU5HX01PREVfQkxPQ0sKKwkgKiAgIDE2QngyIHRpbGluZyBmb3JtYXQKKwkgKi8KIAlfX3Uz MiBtb2RlOworCisJLyoqCisJICogQHZhbHVlOgorCSAqCisJICogVGhlIHZhbHVlIHRvIHNldCBm b3IgdGhlIHRpbGluZyBtb2RlIHBhcmFtZXRlci4KKwkgKi8KIAlfX3UzMiB2YWx1ZTsKKworCS8q KgorCSAqIEBwYWQ6CisJICoKKwkgKiBTdHJ1Y3R1cmUgcGFkZGluZyB0aGF0IG1heSBiZSB1c2Vk IGluIHRoZSBmdXR1cmUuIE11c3QgYmUgMC4KKwkgKi8KIAlfX3UzMiBwYWQ7CiB9OwogCisvKioK KyAqIHN0cnVjdCBkcm1fdGVncmFfZ2VtX2dldF90aWxpbmcgLSBwYXJhbWV0ZXJzIGZvciB0aGUg Z2V0IHRpbGluZyBJT0NUTAorICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9nZXRfdGlsaW5nIHsK LQkvKiBpbnB1dCAqLworCS8qKgorCSAqIEBoYW5kbGU6CisJICoKKwkgKiBIYW5kbGUgdG8gdGhl IEdFTSBvYmplY3QgZm9yIHdoaWNoIHRvIHF1ZXJ5IHRoZSB0aWxpbmcgcGFyYW1ldGVycy4KKwkg Ki8KIAlfX3UzMiBoYW5kbGU7Ci0JLyogb3V0cHV0ICovCisKKwkvKioKKwkgKiBAbW9kZToKKwkg KgorCSAqIFRoZSB0aWxpbmcgbW9kZSBjdXJyZW50bHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBHRU0g b2JqZWN0LiBTZXQgYnkKKwkgKiB0aGUga2VybmVsIHVwb24gc3VjY2Vzc2Z1bCBjb21wbGV0aW9u IG9mIHRoZSBJT0NUTC4KKwkgKi8KIAlfX3UzMiBtb2RlOworCisJLyoqCisJICogQHZhbHVlOgor CSAqCisJICogVGhlIHRpbGluZyBtb2RlIHBhcmFtZXRlciBjdXJyZW50bHkgYXNzb2NpYXRlZCB3 aXRoIHRoZSBHRU0gb2JqZWN0LgorCSAqIFNldCBieSB0aGUga2VybmVsIHVwb24gc3VjY2Vzc2Z1 bCBjb21wbGV0aW9uIG9mIHRoZSBJT0NUTC4KKwkgKi8KIAlfX3UzMiB2YWx1ZTsKKworCS8qKgor CSAqIEBwYWQ6CisJICoKKwkgKiBTdHJ1Y3R1cmUgcGFkZGluZyB0aGF0IG1heSBiZSB1c2VkIGlu IHRoZSBmdXR1cmUuIE11c3QgYmUgMC4KKwkgKi8KIAlfX3UzMiBwYWQ7CiB9OwogCiAjZGVmaW5l IERSTV9URUdSQV9HRU1fQk9UVE9NX1VQCQkoMSA8PCAwKQogI2RlZmluZSBEUk1fVEVHUkFfR0VN X0ZMQUdTCQkoRFJNX1RFR1JBX0dFTV9CT1RUT01fVVApCiAKKy8qKgorICogc3RydWN0IGRybV90 ZWdyYV9nZW1fc2V0X2ZsYWdzIC0gcGFyYW1ldGVycyBmb3IgdGhlIHNldCBmbGFncyBJT0NUTAor ICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9zZXRfZmxhZ3MgewotCS8qIGlucHV0ICovCisJLyoq CisJICogQGhhbmRsZToKKwkgKgorCSAqIEhhbmRsZSB0byB0aGUgR0VNIG9iamVjdCBmb3Igd2hp Y2ggdG8gc2V0IHRoZSBmbGFncy4KKwkgKi8KIAlfX3UzMiBoYW5kbGU7Ci0JLyogb3V0cHV0ICov CisKKwkvKioKKwkgKiBAZmxhZ3M6CisJICoKKwkgKiBUaGUgZmxhZ3MgdG8gc2V0IGZvciB0aGUg R0VNIG9iamVjdC4KKwkgKi8KIAlfX3UzMiBmbGFnczsKIH07CiAKKy8qKgorICogc3RydWN0IGRy bV90ZWdyYV9nZW1fZ2V0X2ZsYWdzIC0gcGFyYW1ldGVycyBmb3IgdGhlIGdldCBmbGFncyBJT0NU TAorICovCiBzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9nZXRfZmxhZ3MgewotCS8qIGlucHV0ICovCisJ LyoqCisJICogQGhhbmRsZToKKwkgKgorCSAqIEhhbmRsZSB0byB0aGUgR0VNIG9iamVjdCBmb3Ig d2hpY2ggdG8gcXVlcnkgdGhlIGZsYWdzLgorCSAqLwogCV9fdTMyIGhhbmRsZTsKLQkvKiBvdXRw dXQgKi8KKworCS8qKgorCSAqIEBmbGFnczoKKwkgKgorCSAqIFRoZSBmbGFncyBjdXJyZW50bHkg YXNzb2NpYXRlZCB3aXRoIHRoZSBHRU0gb2JqZWN0LiBTZXQgYnkgdGhlCisJICoga2VybmVsIHVw b24gc3VjY2Vzc2Z1bCBjb21wbGV0aW9uIG9mIHRoZSBJT0NUTC4KKwkgKi8KIAlfX3UzMiBmbGFn czsKIH07CiAKQEAgLTE5Myw3ICs2NjUsNyBAQCBzdHJ1Y3QgZHJtX3RlZ3JhX2dlbV9nZXRfZmxh Z3MgewogI2RlZmluZSBEUk1fSU9DVExfVEVHUkFfU1lOQ1BUX0lOQ1IgRFJNX0lPV1IoRFJNX0NP TU1BTkRfQkFTRSArIERSTV9URUdSQV9TWU5DUFRfSU5DUiwgc3RydWN0IGRybV90ZWdyYV9zeW5j cHRfaW5jcikKICNkZWZpbmUgRFJNX0lPQ1RMX1RFR1JBX1NZTkNQVF9XQUlUIERSTV9JT1dSKERS TV9DT01NQU5EX0JBU0UgKyBEUk1fVEVHUkFfU1lOQ1BUX1dBSVQsIHN0cnVjdCBkcm1fdGVncmFf c3luY3B0X3dhaXQpCiAjZGVmaW5lIERSTV9JT0NUTF9URUdSQV9PUEVOX0NIQU5ORUwgRFJNX0lP V1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9URUdSQV9PUEVOX0NIQU5ORUwsIHN0cnVjdCBkcm1f dGVncmFfb3Blbl9jaGFubmVsKQotI2RlZmluZSBEUk1fSU9DVExfVEVHUkFfQ0xPU0VfQ0hBTk5F TCBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1RFR1JBX0NMT1NFX0NIQU5ORUwsIHN0 cnVjdCBkcm1fdGVncmFfb3Blbl9jaGFubmVsKQorI2RlZmluZSBEUk1fSU9DVExfVEVHUkFfQ0xP U0VfQ0hBTk5FTCBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1RFR1JBX0NMT1NFX0NI QU5ORUwsIHN0cnVjdCBkcm1fdGVncmFfY2xvc2VfY2hhbm5lbCkKICNkZWZpbmUgRFJNX0lPQ1RM X1RFR1JBX0dFVF9TWU5DUFQgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9URUdSQV9H RVRfU1lOQ1BULCBzdHJ1Y3QgZHJtX3RlZ3JhX2dldF9zeW5jcHQpCiAjZGVmaW5lIERSTV9JT0NU TF9URUdSQV9TVUJNSVQgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9URUdSQV9TVUJN SVQsIHN0cnVjdCBkcm1fdGVncmFfc3VibWl0KQogI2RlZmluZSBEUk1fSU9DVExfVEVHUkFfR0VU X1NZTkNQVF9CQVNFIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fVEVHUkFfR0VUX1NZ TkNQVF9CQVNFLCBzdHJ1Y3QgZHJtX3RlZ3JhX2dldF9zeW5jcHRfYmFzZSkKZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL3ZjNF9kcm0uaCBiL2luY2x1ZGUvZHJtL3ZjNF9kcm0uaAppbmRleCA0MTE3 MTE3Li4zMWY1MGRlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS92YzRfZHJtLmgKKysrIGIvaW5j bHVkZS9kcm0vdmM0X2RybS5oCkBAIC0xODMsMTAgKzE4MywxNyBAQCBzdHJ1Y3QgZHJtX3ZjNF9z dWJtaXRfY2wgewogCS8qIElEIG9mIHRoZSBwZXJmbW9uIHRvIGF0dGFjaCB0byB0aGlzIGpvYi4g MCBtZWFucyBubyBwZXJmbW9uLiAqLwogCV9fdTMyIHBlcmZtb25pZDsKIAotCS8qIFVudXNlZCBm aWVsZCB0byBhbGlnbiB0aGlzIHN0cnVjdCBvbiA2NCBiaXRzLiBNdXN0IGJlIHNldCB0byAwLgot CSAqIElmIG9uZSBldmVyIG5lZWRzIHRvIGFkZCBhbiB1MzIgZmllbGQgdG8gdGhpcyBzdHJ1Y3Qs IHRoaXMgZmllbGQKLQkgKiBjYW4gYmUgdXNlZC4KKwkvKiBTeW5jb2JqIGhhbmRsZSB0byB3YWl0 IG9uLiBJZiBzZXQsIHByb2Nlc3Npbmcgb2YgdGhpcyByZW5kZXIgam9iCisJICogd2lsbCBub3Qg c3RhcnQgdW50aWwgdGhlIHN5bmNvYmogaXMgc2lnbmFsZWQuIDAgbWVhbnMgaWdub3JlLgogCSAq LworCV9fdTMyIGluX3N5bmM7CisKKwkvKiBTeW5jb2JqIGhhbmRsZSB0byBleHBvcnQgZmVuY2Ug dG8uIElmIHNldCwgdGhlIGZlbmNlIGluIHRoZSBzeW5jb2JqCisJICogd2lsbCBiZSByZXBsYWNl ZCB3aXRoIGEgZmVuY2UgdGhhdCBzaWduYWxzIHVwb24gY29tcGxldGlvbiBvZiB0aGlzCisJICog cmVuZGVyIGpvYi4gMCBtZWFucyBpZ25vcmUuCisJICovCisJX191MzIgb3V0X3N5bmM7CisKIAlf X3UzMiBwYWQyOwogfTsKIAotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=