From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 78DD7C4CEC7 for ; Sat, 14 Sep 2019 08:53:21 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3EB3020717 for ; Sat, 14 Sep 2019 08:53:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3EB3020717 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i93no-0007YU-Mt; Sat, 14 Sep 2019 08:53:08 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i93nn-0007Y1-TQ for xen-devel@lists.xenproject.org; Sat, 14 Sep 2019 08:53:07 +0000 X-Inumbo-ID: 0d80d8e6-d6cd-11e9-b299-bc764e2007e4 Received: from mx1.suse.de (unknown [195.135.220.15]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 0d80d8e6-d6cd-11e9-b299-bc764e2007e4; Sat, 14 Sep 2019 08:53:00 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id B7438B65F; Sat, 14 Sep 2019 08:52:57 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Sat, 14 Sep 2019 10:52:13 +0200 Message-Id: <20190914085251.18816-10-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190914085251.18816-1-jgross@suse.com> References: <20190914085251.18816-1-jgross@suse.com> Subject: [Xen-devel] [PATCH v3 09/47] xen/sched: move some per-vcpu items to struct sched_unit X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Meng Xu , Jan Beulich , Dario Faggioli MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" QWZmaW5pdGllcyBhcmUgc2NoZWR1bGVyIHNwZWNpZmljIGF0dHJpYnV0ZXMsIHRoZXkgc2hvdWxk IGJlIHBlcgpzY2hlZHVsaW5nIHVuaXQuIFNvIG1vdmUgYWxsIGFmZmluaXR5IHJlbGF0ZWQgZmll bGRzIGluIHN0cnVjdCB2Y3B1CnRvIHN0cnVjdCBzY2hlZF91bml0LiBXaGlsZSBhdCBpdCBzd2l0 Y2ggYWZmaW5pdHkgcmVsYXRlZCBmdW5jdGlvbnMgaW4Kc2NoZWQtaWYuaCB0byB1c2UgYSBwb2lu dGVyIHRvIHNjaGVkX3VuaXQgaW5zdGVhZCB0byB2Y3B1IGFzIHBhcmFtZXRlci4KClRoZSBhZmZp bml0eV9icm9rZW4gZmxhZyBtdXN0IGJlIGtlcHQgcGVyIHZjcHUgYXMgaXQgaXMgcmVsYXRlZCB0 bwpndWVzdCBhY3Rpb25zIG9uIHNwZWNpZmljIHZjcHVzLiBXaGVuIHN1cHBvcnQgb2YgbXVsdGlw bGUgdmNwdXMgcGVyCnNjaGVkX3VuaXQgaXMgYmVpbmcgYWRkZWQsIGEgdW5pdCBpcyByZWdhcmRl ZCBhcyBiZWluZyBzdWJqZWN0IHRvCiJicm9rZW4gYWZmaW5pdHkiIHdoZW4gYW55IG9mIGl0cyB2 Y3B1cyBoYXMgdGhlIGFmZmluaXR5X2Jyb2tlbiBmbGFnCnNldC4KClNpZ25lZC1vZmYtYnk6IEp1 ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tClYyOgotIG1vdmUgYWZmaW5pdHlfYnJv a2VuIGJhY2sgdG8gc3RydWN0IHZjcHUgKEphbiBCZXVsaWNoKQotIHByaW50IGFmZmluaXRpZXMg b25seSBvbmNlIHBlciB1bml0IChKYW4gQmV1bGljaCkKLS0tCiB4ZW4vY29tbW9uL2RvbWFpbi5j ICAgICAgICB8IDE1ICsrLS0tLS0tCiB4ZW4vY29tbW9uL2RvbWN0bC5jICAgICAgICB8IDEzICsr KystLS0KIHhlbi9jb21tb24va2V5aGFuZGxlci5jICAgIHwgNTggKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tCiB4ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jICB8IDE4ICsrKysrLS0tLS0K IHhlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jIHwgNDIgKysrKysrKysrKystLS0tLS0tLS0tLQog eGVuL2NvbW1vbi9zY2hlZF9udWxsLmMgICAgfCAxOCArKysrKy0tLS0tCiB4ZW4vY29tbW9uL3Nj aGVkX3J0LmMgICAgICB8ICA5ICsrLS0tCiB4ZW4vY29tbW9uL3NjaGVkdWxlLmMgICAgICB8IDkw ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9pbmNs dWRlL3hlbi9zY2hlZC1pZi5oIHwgMTcgKysrKy0tLS0tCiB4ZW4vaW5jbHVkZS94ZW4vc2NoZWQu aCAgICB8IDIyICsrKysrKy0tLS0tLQogMTAgZmlsZXMgY2hhbmdlZCwgMTYzIGluc2VydGlvbnMo KyksIDEzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RvbWFpbi5jIGIv eGVuL2NvbW1vbi9kb21haW4uYwppbmRleCAwY2ZmNzQ5YmJlLi44Yzc4MmVlMDNmIDEwMDY0NAot LS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCisrKyBiL3hlbi9jb21tb24vZG9tYWluLmMKQEAgLTEz MiwxMCArMTMyLDYgQEAgc3RhdGljIHZvaWQgdmNwdV9pbmZvX3Jlc2V0KHN0cnVjdCB2Y3B1ICp2 KQogCiBzdGF0aWMgdm9pZCB2Y3B1X2Rlc3Ryb3koc3RydWN0IHZjcHUgKnYpCiB7Ci0gICAgZnJl ZV9jcHVtYXNrX3Zhcih2LT5jcHVfaGFyZF9hZmZpbml0eSk7Ci0gICAgZnJlZV9jcHVtYXNrX3Zh cih2LT5jcHVfaGFyZF9hZmZpbml0eV9zYXZlZCk7Ci0gICAgZnJlZV9jcHVtYXNrX3Zhcih2LT5j cHVfc29mdF9hZmZpbml0eSk7Ci0KICAgICBmcmVlX3ZjcHVfc3RydWN0KHYpOwogfQogCkBAIC0x NTksMTEgKzE1NSw2IEBAIHN0cnVjdCB2Y3B1ICp2Y3B1X2NyZWF0ZSgKIAogICAgIGdyYW50X3Rh YmxlX2luaXRfdmNwdSh2KTsKIAotICAgIGlmICggIXphbGxvY19jcHVtYXNrX3Zhcigmdi0+Y3B1 X2hhcmRfYWZmaW5pdHkpIHx8Ci0gICAgICAgICAhemFsbG9jX2NwdW1hc2tfdmFyKCZ2LT5jcHVf aGFyZF9hZmZpbml0eV9zYXZlZCkgfHwKLSAgICAgICAgICF6YWxsb2NfY3B1bWFza192YXIoJnYt PmNwdV9zb2Z0X2FmZmluaXR5KSApCi0gICAgICAgIGdvdG8gZmFpbDsKLQogICAgIGlmICggaXNf aWRsZV9kb21haW4oZCkgKQogICAgIHsKICAgICAgICAgdi0+cnVuc3RhdGUuc3RhdGUgPSBSVU5T VEFURV9ydW5uaW5nOwpAQCAtMjAzLDcgKzE5NCw2IEBAIHN0cnVjdCB2Y3B1ICp2Y3B1X2NyZWF0 ZSgKICAgICBzY2hlZF9kZXN0cm95X3ZjcHUodik7CiAgZmFpbF93cToKICAgICBkZXN0cm95X3dh aXRxdWV1ZV92Y3B1KHYpOwotIGZhaWw6CiAgICAgdmNwdV9kZXN0cm95KHYpOwogCiAgICAgcmV0 dXJuIE5VTEw7CkBAIC02MDAsOSArNTkwLDEwIEBAIHZvaWQgZG9tYWluX3VwZGF0ZV9ub2RlX2Fm ZmluaXR5KHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgICAqLwogICAgICAgICBmb3JfZWFjaF92 Y3B1ICggZCwgdiApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNwdW1hc2tfb3IoZG9tX2NwdW1h c2ssIGRvbV9jcHVtYXNrLCB2LT5jcHVfaGFyZF9hZmZpbml0eSk7CisgICAgICAgICAgICBjcHVt YXNrX29yKGRvbV9jcHVtYXNrLCBkb21fY3B1bWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAg di0+c2NoZWRfdW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHkpOwogICAgICAgICAgICAgY3B1bWFza19v cihkb21fY3B1bWFza19zb2Z0LCBkb21fY3B1bWFza19zb2Z0LAotICAgICAgICAgICAgICAgICAg ICAgICB2LT5jcHVfc29mdF9hZmZpbml0eSk7CisgICAgICAgICAgICAgICAgICAgICAgIHYtPnNj aGVkX3VuaXQtPmNwdV9zb2Z0X2FmZmluaXR5KTsKICAgICAgICAgfQogICAgICAgICAvKiBGaWx0 ZXIgb3V0IG5vbi1vbmxpbmUgY3B1cyAqLwogICAgICAgICBjcHVtYXNrX2FuZChkb21fY3B1bWFz aywgZG9tX2NwdW1hc2ssIG9ubGluZSk7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RvbWN0bC5j IGIveGVuL2NvbW1vbi9kb21jdGwuYwppbmRleCA2ZTZlOWI5ODY2Li4yZjk3NjhmMDhmIDEwMDY0 NAotLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jCisrKyBiL3hlbi9jb21tb24vZG9tY3RsLmMKQEAg LTYwNiw2ICs2MDYsNyBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhl bl9kb21jdGxfdCkgdV9kb21jdGwpCiAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldHZjcHVhZmZpbml0 eToKICAgICB7CiAgICAgICAgIHN0cnVjdCB2Y3B1ICp2OworICAgICAgICBjb25zdCBzdHJ1Y3Qg c2NoZWRfdW5pdCAqdW5pdDsKICAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfdmNwdWFmZmluaXR5 ICp2Y3B1YWZmID0gJm9wLT51LnZjcHVhZmZpbml0eTsKIAogICAgICAgICByZXQgPSAtRUlOVkFM OwpAQCAtNjE2LDYgKzYxNyw3IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0oeGVuX2RvbWN0bF90KSB1X2RvbWN0bCkKICAgICAgICAgaWYgKCAodiA9IGQtPnZjcHVbdmNw dWFmZi0+dmNwdV0pID09IE5VTEwgKQogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgdW5p dCA9IHYtPnNjaGVkX3VuaXQ7CiAgICAgICAgIHJldCA9IC1FSU5WQUw7CiAgICAgICAgIGlmICgg dmNwdWFmZmluaXR5X3BhcmFtc19pbnZhbGlkKHZjcHVhZmYpICkKICAgICAgICAgICAgIGJyZWFr OwpAQCAtNjM1LDcgKzYzNyw3IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0oeGVuX2RvbWN0bF90KSB1X2RvbWN0bCkKICAgICAgICAgICAgICAgICByZXQgPSAtRU5PTUVN OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgY3B1 bWFza19jb3B5KG9sZF9hZmZpbml0eSwgdi0+Y3B1X2hhcmRfYWZmaW5pdHkpOworICAgICAgICAg ICAgY3B1bWFza19jb3B5KG9sZF9hZmZpbml0eSwgdW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHkpOwog CiAgICAgICAgICAgICBpZiAoICFhbGxvY19jcHVtYXNrX3ZhcigmbmV3X2FmZmluaXR5KSApCiAg ICAgICAgICAgICB7CkBAIC02NjgsNyArNjcwLDcgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNU X0hBTkRMRV9QQVJBTSh4ZW5fZG9tY3RsX3QpIHVfZG9tY3RsKQogICAgICAgICAgICAgICAgICAq IEZvciBoYXJkIGFmZmluaXR5LCB3aGF0IHdlIHJldHVybiBpcyB0aGUgaW50ZXJzZWN0aW9uIG9m CiAgICAgICAgICAgICAgICAgICogY3B1cG9vbCdzIG9ubGluZSBtYXNrIGFuZCB0aGUgbmV3IGhh cmQgYWZmaW5pdHkuCiAgICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgY3B1bWFz a19hbmQobmV3X2FmZmluaXR5LCBvbmxpbmUsIHYtPmNwdV9oYXJkX2FmZmluaXR5KTsKKyAgICAg ICAgICAgICAgICBjcHVtYXNrX2FuZChuZXdfYWZmaW5pdHksIG9ubGluZSwgdW5pdC0+Y3B1X2hh cmRfYWZmaW5pdHkpOwogICAgICAgICAgICAgICAgIHJldCA9IGNwdW1hc2tfdG9feGVuY3RsX2Jp dG1hcCgmdmNwdWFmZi0+Y3B1bWFwX2hhcmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG5ld19hZmZpbml0eSk7CiAgICAgICAgICAgICB9CkBAIC02OTcs NyArNjk5LDggQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fZG9t Y3RsX3QpIHVfZG9tY3RsKQogICAgICAgICAgICAgICAgICAqIGhhcmQgYWZmaW5pdHkuCiAgICAg ICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgY3B1bWFza19hbmQobmV3X2FmZmluaXR5 LCBuZXdfYWZmaW5pdHksIG9ubGluZSk7Ci0gICAgICAgICAgICAgICAgY3B1bWFza19hbmQobmV3 X2FmZmluaXR5LCBuZXdfYWZmaW5pdHksIHYtPmNwdV9oYXJkX2FmZmluaXR5KTsKKyAgICAgICAg ICAgICAgICBjcHVtYXNrX2FuZChuZXdfYWZmaW5pdHksIG5ld19hZmZpbml0eSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bml0LT5jcHVfaGFyZF9hZmZpbml0eSk7CiAgICAgICAgICAg ICAgICAgcmV0ID0gY3B1bWFza190b194ZW5jdGxfYml0bWFwKCZ2Y3B1YWZmLT5jcHVtYXBfc29m dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X2Fm ZmluaXR5KTsKICAgICAgICAgICAgIH0KQEAgLTcxMCwxMCArNzEzLDEwIEBAIGxvbmcgZG9fZG9t Y3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90KSB1X2RvbWN0bCkKICAgICAg ICAgewogICAgICAgICAgICAgaWYgKCB2Y3B1YWZmLT5mbGFncyAmIFhFTl9WQ1BVQUZGSU5JVFlf SEFSRCApCiAgICAgICAgICAgICAgICAgcmV0ID0gY3B1bWFza190b194ZW5jdGxfYml0bWFwKCZ2 Y3B1YWZmLT5jcHVtYXBfaGFyZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdi0+Y3B1X2hhcmRfYWZmaW5pdHkpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0LT5jcHVfaGFyZF9hZmZpbml0eSk7CiAgICAg ICAgICAgICBpZiAoIHZjcHVhZmYtPmZsYWdzICYgWEVOX1ZDUFVBRkZJTklUWV9TT0ZUICkKICAg ICAgICAgICAgICAgICByZXQgPSBjcHVtYXNrX3RvX3hlbmN0bF9iaXRtYXAoJnZjcHVhZmYtPmNw dW1hcF9zb2Z0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2LT5jcHVfc29mdF9hZmZpbml0eSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuaXQtPmNwdV9zb2Z0X2FmZmluaXR5KTsKICAgICAgICAgfQogICAg ICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2tleWhhbmRsZXIuYyBi L3hlbi9jb21tb24va2V5aGFuZGxlci5jCmluZGV4IGMzNmJhYTRkZmYuLjAzMTdhZTE1NjEgMTAw NjQ0Ci0tLSBhL3hlbi9jb21tb24va2V5aGFuZGxlci5jCisrKyBiL3hlbi9jb21tb24va2V5aGFu ZGxlci5jCkBAIC0yNTEsNiArMjUxLDcgQEAgc3RhdGljIHZvaWQgcmVib290X21hY2hpbmUodW5z aWduZWQgY2hhciBrZXksIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogc3RhdGljIHZvaWQg ZHVtcF9kb21haW5zKHVuc2lnbmVkIGNoYXIga2V5KQogewogICAgIHN0cnVjdCBkb21haW4gKmQ7 CisgICAgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQ7CiAgICAgc3RydWN0IHZjcHUgICAqdjsKICAg ICBzX3RpbWVfdCAgICAgICBub3cgPSBOT1coKTsKIApAQCAtMjk3LDMzICsyOTgsMzggQEAgc3Rh dGljIHZvaWQgZHVtcF9kb21haW5zKHVuc2lnbmVkIGNoYXIga2V5KQogCiAgICAgICAgIHByaW50 aygiVkNQVSBpbmZvcm1hdGlvbiBhbmQgY2FsbGJhY2tzIGZvciBkb21haW4gJXU6XG4iLAogICAg ICAgICAgICAgICAgZC0+ZG9tYWluX2lkKTsKLSAgICAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYg KQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoICEodi0+dmNwdV9pZCAmIDB4M2YpICkKLSAg ICAgICAgICAgICAgICBwcm9jZXNzX3BlbmRpbmdfc29mdGlycXMoKTsKIAotICAgICAgICAgICAg cHJpbnRrKCIgICAgVkNQVSVkOiBDUFUlZCBbaGFzPSVjXSBwb2xsPSVkICIKLSAgICAgICAgICAg ICAgICAgICAidXBjYWxsX3BlbmQ9JTAyeCB1cGNhbGxfbWFzaz0lMDJ4ICIsCi0gICAgICAgICAg ICAgICAgICAgdi0+dmNwdV9pZCwgdi0+cHJvY2Vzc29yLAotICAgICAgICAgICAgICAgICAgIHYt PmlzX3J1bm5pbmcgPyAnVCc6J0YnLCB2LT5wb2xsX2V2dGNobiwKLSAgICAgICAgICAgICAgICAg ICB2Y3B1X2luZm8odiwgZXZ0Y2huX3VwY2FsbF9wZW5kaW5nKSwKLSAgICAgICAgICAgICAgICAg ICAhdmNwdV9ldmVudF9kZWxpdmVyeV9pc19lbmFibGVkKHYpKTsKLSAgICAgICAgICAgIGlmICgg dmNwdV9jcHVfZGlydHkodikgKQotICAgICAgICAgICAgICAgIHByaW50aygiZGlydHlfY3B1PSV1 Iiwgdi0+ZGlydHlfY3B1KTsKLSAgICAgICAgICAgIHByaW50aygiXG4iKTsKLSAgICAgICAgICAg IHByaW50aygiICAgIGNwdV9oYXJkX2FmZmluaXR5PXslKnBibH0gY3B1X3NvZnRfYWZmaW5pdHk9 eyUqcGJsfVxuIiwKLSAgICAgICAgICAgICAgICAgICBDUFVNQVNLX1BSKHYtPmNwdV9oYXJkX2Fm ZmluaXR5KSwKLSAgICAgICAgICAgICAgICAgICBDUFVNQVNLX1BSKHYtPmNwdV9zb2Z0X2FmZmlu aXR5KSk7Ci0gICAgICAgICAgICBwcmludGsoIiAgICBwYXVzZV9jb3VudD0lZCBwYXVzZV9mbGFn cz0lbHhcbiIsCi0gICAgICAgICAgICAgICAgICAgYXRvbWljX3JlYWQoJnYtPnBhdXNlX2NvdW50 KSwgdi0+cGF1c2VfZmxhZ3MpOwotICAgICAgICAgICAgYXJjaF9kdW1wX3ZjcHVfaW5mbyh2KTsK LQotICAgICAgICAgICAgaWYgKCB2LT5wZXJpb2RpY19wZXJpb2QgPT0gMCApCi0gICAgICAgICAg ICAgICAgcHJpbnRrKCJObyBwZXJpb2RpYyB0aW1lclxuIik7Ci0gICAgICAgICAgICBlbHNlCi0g ICAgICAgICAgICAgICAgcHJpbnRrKCIlIlBSSV9zdGltZSIgSHogcGVyaW9kaWMgdGltZXIgKHBl cmlvZCAlIlBSSV9zdGltZSIgbXMpXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAxMDAwMDAw MDAwIC8gdi0+cGVyaW9kaWNfcGVyaW9kLAotICAgICAgICAgICAgICAgICAgICAgICB2LT5wZXJp b2RpY19wZXJpb2QgLyAxMDAwMDAwKTsKKyAgICAgICAgZm9yX2VhY2hfc2NoZWRfdW5pdCAoIGQs IHVuaXQgKQorICAgICAgICB7CisgICAgICAgICAgICBwcmludGsoIiAgVU5JVCVkIGFmZmluaXRp ZXM6IGhhcmQ9eyUqcGJsfSBzb2Z0PXslKnBibH1cbiIsCisgICAgICAgICAgICAgICAgICAgdW5p dC0+dW5pdF9pZCwgQ1BVTUFTS19QUih1bml0LT5jcHVfaGFyZF9hZmZpbml0eSksCisgICAgICAg ICAgICAgICAgICAgQ1BVTUFTS19QUih1bml0LT5jcHVfc29mdF9hZmZpbml0eSkpOworCisgICAg ICAgICAgICBmb3JfZWFjaF9zY2hlZF91bml0X3ZjcHUgKCB1bml0LCB2ICkKKyAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICBpZiAoICEodi0+dmNwdV9pZCAmIDB4M2YpICkKKyAgICAgICAg ICAgICAgICAgICAgcHJvY2Vzc19wZW5kaW5nX3NvZnRpcnFzKCk7CisKKyAgICAgICAgICAgICAg ICBwcmludGsoIiAgICBWQ1BVJWQ6IENQVSVkIFtoYXM9JWNdIHBvbGw9JWQgIgorICAgICAgICAg ICAgICAgICAgICAgICAidXBjYWxsX3BlbmQ9JTAyeCB1cGNhbGxfbWFzaz0lMDJ4ICIsCisgICAg ICAgICAgICAgICAgICAgICAgIHYtPnZjcHVfaWQsIHYtPnByb2Nlc3NvciwKKyAgICAgICAgICAg ICAgICAgICAgICAgdi0+aXNfcnVubmluZyA/ICdUJzonRicsIHYtPnBvbGxfZXZ0Y2huLAorICAg ICAgICAgICAgICAgICAgICAgICB2Y3B1X2luZm8odiwgZXZ0Y2huX3VwY2FsbF9wZW5kaW5nKSwK KyAgICAgICAgICAgICAgICAgICAgICAgIXZjcHVfZXZlbnRfZGVsaXZlcnlfaXNfZW5hYmxlZCh2 KSk7CisgICAgICAgICAgICAgICAgaWYgKCB2Y3B1X2NwdV9kaXJ0eSh2KSApCisgICAgICAgICAg ICAgICAgICAgIHByaW50aygiZGlydHlfY3B1PSV1Iiwgdi0+ZGlydHlfY3B1KTsKKyAgICAgICAg ICAgICAgICBwcmludGsoIlxuIik7CisgICAgICAgICAgICAgICAgcHJpbnRrKCIgICAgcGF1c2Vf Y291bnQ9JWQgcGF1c2VfZmxhZ3M9JWx4XG4iLAorICAgICAgICAgICAgICAgICAgICAgICBhdG9t aWNfcmVhZCgmdi0+cGF1c2VfY291bnQpLCB2LT5wYXVzZV9mbGFncyk7CisgICAgICAgICAgICAg ICAgYXJjaF9kdW1wX3ZjcHVfaW5mbyh2KTsKKworICAgICAgICAgICAgICAgIGlmICggdi0+cGVy aW9kaWNfcGVyaW9kID09IDAgKQorICAgICAgICAgICAgICAgICAgICBwcmludGsoIk5vIHBlcmlv ZGljIHRpbWVyXG4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg IHByaW50aygiJSJQUklfc3RpbWUiIEh6IHBlcmlvZGljIHRpbWVyIChwZXJpb2QgJSJQUklfc3Rp bWUiIG1zKVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAwMDAwMDAgLyB2LT5w ZXJpb2RpY19wZXJpb2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2LT5wZXJpb2RpY19w ZXJpb2QgLyAxMDAwMDAwKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYyBiL3hlbi9jb21tb24vc2NoZWRfY3Jl ZGl0LmMKaW5kZXggNzYyMWE1NTI3ZS4uMGJjMWY3MGYzMiAxMDA2NDQKLS0tIGEveGVuL2NvbW1v bi9zY2hlZF9jcmVkaXQuYworKysgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jCkBAIC0zNTIs NiArMzUyLDcgQEAgREVGSU5FX1BFUl9DUFUodW5zaWduZWQgaW50LCBsYXN0X3RpY2tsZV9jcHUp Owogc3RhdGljIGlubGluZSB2b2lkIF9fcnVucV90aWNrbGUoc3RydWN0IGNzY2hlZF91bml0ICpu ZXcpCiB7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IG5ldy0+dmNwdS0+cHJvY2Vzc29yOworICAg IHN0cnVjdCBzY2hlZF91bml0ICp1bml0ID0gbmV3LT52Y3B1LT5zY2hlZF91bml0OwogICAgIHN0 cnVjdCBjc2NoZWRfdW5pdCAqIGNvbnN0IGN1ciA9IENTQ0hFRF9VTklUKGN1cnJfb25fY3B1KGNw dSkpOwogICAgIHN0cnVjdCBjc2NoZWRfcHJpdmF0ZSAqcHJ2ID0gQ1NDSEVEX1BSSVYocGVyX2Nw dShzY2hlZHVsZXIsIGNwdSkpOwogICAgIGNwdW1hc2tfdCBtYXNrLCBpZGxlX21hc2ssICpvbmxp bmU7CkBAIC0zNzcsNyArMzc4LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIF9fcnVucV90aWNrbGUo c3RydWN0IGNzY2hlZF91bml0ICpuZXcpCiAgICAgaWYgKCB1bmxpa2VseSh0ZXN0X2JpdChDU0NI RURfRkxBR19WQ1BVX1BJTk5FRCwgJm5ldy0+ZmxhZ3MpICYmCiAgICAgICAgICAgICAgICAgICBj cHVtYXNrX3Rlc3RfY3B1KGNwdSwgJmlkbGVfbWFzaykpICkKICAgICB7Ci0gICAgICAgIEFTU0VS VChjcHVtYXNrX2N5Y2xlKGNwdSwgbmV3LT52Y3B1LT5jcHVfaGFyZF9hZmZpbml0eSkgPT0gY3B1 KTsKKyAgICAgICAgQVNTRVJUKGNwdW1hc2tfY3ljbGUoY3B1LCB1bml0LT5jcHVfaGFyZF9hZmZp bml0eSkgPT0gY3B1KTsKICAgICAgICAgU0NIRURfU1RBVF9DUkFOSyh0aWNrbGVkX2lkbGVfY3B1 X2V4Y2wpOwogICAgICAgICBfX2NwdW1hc2tfc2V0X2NwdShjcHUsICZtYXNrKTsKICAgICAgICAg Z290byB0aWNrbGU7CkBAIC00MTIsMTEgKzQxMywxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX19y dW5xX3RpY2tsZShzdHJ1Y3QgY3NjaGVkX3VuaXQgKm5ldykKICAgICAgICAgICAgIGludCBuZXdf aWRsZXJzX2VtcHR5OwogCiAgICAgICAgICAgICBpZiAoIGJhbGFuY2Vfc3RlcCA9PSBCQUxBTkNF X1NPRlRfQUZGSU5JVFkKLSAgICAgICAgICAgICAgICAgJiYgIWhhc19zb2Z0X2FmZmluaXR5KG5l dy0+dmNwdSkgKQorICAgICAgICAgICAgICAgICAmJiAhaGFzX3NvZnRfYWZmaW5pdHkodW5pdCkg KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICAvKiBBcmUgdGhlcmUg aWRsZXJzIHN1aXRhYmxlIGZvciBuZXcgKGZvciB0aGlzIGJhbGFuY2Ugc3RlcCk/ICovCi0gICAg ICAgICAgICBhZmZpbml0eV9iYWxhbmNlX2NwdW1hc2sobmV3LT52Y3B1LCBiYWxhbmNlX3N0ZXAs CisgICAgICAgICAgICBhZmZpbml0eV9iYWxhbmNlX2NwdW1hc2sodW5pdCwgYmFsYW5jZV9zdGVw LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdW1hc2tfc2NyYXRjaF9j cHUoY3B1KSk7CiAgICAgICAgICAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNw dSksCiAgICAgICAgICAgICAgICAgICAgICAgICBjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksICZp ZGxlX21hc2spOwpAQCAtNDQ1LDggKzQ0Niw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX3J1bnFf dGlja2xlKHN0cnVjdCBjc2NoZWRfdW5pdCAqbmV3KQogICAgICAgICAgICAgICovCiAgICAgICAg ICAgICBpZiAoIG5ld19pZGxlcnNfZW1wdHkgJiYgbmV3LT5wcmkgPiBjdXItPnByaSApCiAgICAg ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKCBjcHVtYXNrX2ludGVyc2VjdHMoY3VyLT52 Y3B1LT5jcHVfaGFyZF9hZmZpbml0eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmaWRsZV9tYXNrKSApCisgICAgICAgICAgICAgICAgaWYgKCBjcHVtYXNrX2ludGVy c2VjdHModW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHksICZpZGxlX21hc2spICkKICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFNDSEVEX1ZDUFVfU1RBVF9DUkFOSyhjdXIsIGtp Y2tlZF9hd2F5KTsKICAgICAgICAgICAgICAgICAgICAgU0NIRURfVkNQVV9TVEFUX0NSQU5LKGN1 ciwgbWlncmF0ZV9yKTsKQEAgLTcyOCw3ICs3MjgsNyBAQCBfY3NjaGVkX2NwdV9waWNrKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjLCBib29sX3QgY29tbWl0KQog CiAgICAgZm9yX2VhY2hfYWZmaW5pdHlfYmFsYW5jZV9zdGVwKCBiYWxhbmNlX3N0ZXAgKQogICAg IHsKLSAgICAgICAgYWZmaW5pdHlfYmFsYW5jZV9jcHVtYXNrKHZjLCBiYWxhbmNlX3N0ZXAsIGNw dXMpOworICAgICAgICBhZmZpbml0eV9iYWxhbmNlX2NwdW1hc2sodmMtPnNjaGVkX3VuaXQsIGJh bGFuY2Vfc3RlcCwgY3B1cyk7CiAgICAgICAgIGNwdW1hc2tfYW5kKGNwdXMsIG9ubGluZSwgY3B1 cyk7CiAgICAgICAgIC8qCiAgICAgICAgICAqIFdlIHdhbnQgdG8gcGljayB1cCBhIHBjcHUgYW1v bmcgdGhlIG9uZXMgdGhhdCBhcmUgb25saW5lIGFuZApAQCAtNzQ3LDcgKzc0Nyw3IEBAIF9jc2No ZWRfY3B1X3BpY2soY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMs IGJvb2xfdCBjb21taXQpCiAgICAgICAgICAqIGJhbGFuY2luZyBzdGVwIGFsbCB0b2dldGhlci4K ICAgICAgICAgICovCiAgICAgICAgIGlmICggYmFsYW5jZV9zdGVwID09IEJBTEFOQ0VfU09GVF9B RkZJTklUWSAmJgotICAgICAgICAgICAgICghaGFzX3NvZnRfYWZmaW5pdHkodmMpIHx8IGNwdW1h c2tfZW1wdHkoY3B1cykpICkKKyAgICAgICAgICAgICAoIWhhc19zb2Z0X2FmZmluaXR5KHZjLT5z Y2hlZF91bml0KSB8fCBjcHVtYXNrX2VtcHR5KGNwdXMpKSApCiAgICAgICAgICAgICBjb250aW51 ZTsKIAogICAgICAgICAvKiBJZiBwcmVzZW50LCBwcmVmZXIgdmMncyBjdXJyZW50IHByb2Nlc3Nv ciAqLwpAQCAtMTY0NywxMCArMTY0NywxMCBAQCBjc2NoZWRfcnVucV9zdGVhbChpbnQgcGVlcl9j cHUsIGludCBjcHUsIGludCBwcmksIGludCBiYWxhbmNlX3N0ZXApCiAgICAgICAgICAqIG9yIGNv dW50ZXIuCiAgICAgICAgICAqLwogICAgICAgICBpZiAoIHZjLT5pc19ydW5uaW5nIHx8IChiYWxh bmNlX3N0ZXAgPT0gQkFMQU5DRV9TT0ZUX0FGRklOSVRZICYmCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICFoYXNfc29mdF9hZmZpbml0eSh2YykpICkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIWhhc19zb2Z0X2FmZmluaXR5KHZjLT5zY2hlZF91bml0KSkgKQogICAg ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgYWZmaW5pdHlfYmFsYW5jZV9jcHVtYXNrKHZj LCBiYWxhbmNlX3N0ZXAsIGNwdW1hc2tfc2NyYXRjaCk7CisgICAgICAgIGFmZmluaXR5X2JhbGFu Y2VfY3B1bWFzayh2Yy0+c2NoZWRfdW5pdCwgYmFsYW5jZV9zdGVwLCBjcHVtYXNrX3NjcmF0Y2gp OwogICAgICAgICBpZiAoIF9fY3NjaGVkX3ZjcHVfaXNfbWlncmF0ZWFibGUocHJ2LCB2YywgY3B1 LCBjcHVtYXNrX3NjcmF0Y2gpICkKICAgICAgICAgewogICAgICAgICAgICAgLyogV2UgZ290IGEg Y2FuZGlkYXRlLiBHcmFiIGl0ISAqLwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9jcmVk aXQyLmMgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwppbmRleCA0YzQ3MWJmNDgyLi5mZWUx NDcxZjgwIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYworKysgYi94ZW4v Y29tbW9uL3NjaGVkX2NyZWRpdDIuYwpAQCAtNzAwLDEwICs3MDAsMTAgQEAgc3RhdGljIGludCBn ZXRfZmFsbGJhY2tfY3B1KHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2YykKICAgICB7CiAgICAgICAg IGludCBjcHUgPSB2LT5wcm9jZXNzb3I7CiAKLSAgICAgICAgaWYgKCBicyA9PSBCQUxBTkNFX1NP RlRfQUZGSU5JVFkgJiYgIWhhc19zb2Z0X2FmZmluaXR5KHYpICkKKyAgICAgICAgaWYgKCBicyA9 PSBCQUxBTkNFX1NPRlRfQUZGSU5JVFkgJiYgIWhhc19zb2Z0X2FmZmluaXR5KHYtPnNjaGVkX3Vu aXQpICkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGFmZmluaXR5X2JhbGFuY2Vf Y3B1bWFzayh2LCBicywgY3B1bWFza19zY3JhdGNoX2NwdShjcHUpKTsKKyAgICAgICAgYWZmaW5p dHlfYmFsYW5jZV9jcHVtYXNrKHYtPnNjaGVkX3VuaXQsIGJzLCBjcHVtYXNrX3NjcmF0Y2hfY3B1 KGNwdSkpOwogICAgICAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksIGNw dW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwKICAgICAgICAgICAgICAgICAgICAgY3B1cG9vbF9kb21h aW5fY3B1bWFzayh2LT5kb21haW4pKTsKIApAQCAtMTM5MSwxMCArMTM5MSwxMCBAQCBzdGF0aWMg c190aW1lX3QgdGlja2xlX3Njb3JlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc190aW1l X3Qgbm93LAogICAgICAqLwogICAgIGlmICggc2NvcmUgPiAwICkKICAgICB7Ci0gICAgICAgIGlm ICggY3B1bWFza190ZXN0X2NwdShjcHUsIG5ldy0+dmNwdS0+Y3B1X3NvZnRfYWZmaW5pdHkpICkK KyAgICAgICAgaWYgKCBjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgbmV3LT52Y3B1LT5zY2hlZF91bml0 LT5jcHVfc29mdF9hZmZpbml0eSkgKQogICAgICAgICAgICAgc2NvcmUgKz0gQ1NDSEVEMl9DUkVE SVRfSU5JVDsKIAotICAgICAgICBpZiAoICFjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgY3VyLT52Y3B1 LT5jcHVfc29mdF9hZmZpbml0eSkgKQorICAgICAgICBpZiAoICFjcHVtYXNrX3Rlc3RfY3B1KGNw dSwgY3VyLT52Y3B1LT5zY2hlZF91bml0LT5jcHVfc29mdF9hZmZpbml0eSkgKQogICAgICAgICAg ICAgc2NvcmUgKz0gQ1NDSEVEMl9DUkVESVRfSU5JVDsKICAgICB9CiAKQEAgLTE0MzcsNiArMTQz Nyw3IEBAIHJ1bnFfdGlja2xlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGNz Y2hlZDJfdW5pdCAqbmV3LCBzX3RpbWVfdCBub3cpCiB7CiAgICAgaW50IGksIGlwaWQgPSAtMTsK ICAgICBzX3RpbWVfdCBtYXggPSAwOworICAgIHN0cnVjdCBzY2hlZF91bml0ICp1bml0ID0gbmV3 LT52Y3B1LT5zY2hlZF91bml0OwogICAgIHVuc2lnbmVkIGludCBicywgY3B1ID0gbmV3LT52Y3B1 LT5wcm9jZXNzb3I7CiAgICAgc3RydWN0IGNzY2hlZDJfcnVucXVldWVfZGF0YSAqcnFkID0gYzJy cWQob3BzLCBjcHUpOwogICAgIGNwdW1hc2tfdCAqb25saW5lID0gY3B1cG9vbF9kb21haW5fY3B1 bWFzayhuZXctPnZjcHUtPmRvbWFpbik7CkBAIC0xNDc0LDcgKzE0NzUsNyBAQCBydW5xX3RpY2ts ZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBjc2NoZWQyX3VuaXQgKm5ldywg c190aW1lX3Qgbm93KQogICAgICAgICAgICAgICAgICAgY3B1bWFza190ZXN0X2NwdShjcHUsICZy cWQtPmlkbGUpICYmCiAgICAgICAgICAgICAgICAgICAhY3B1bWFza190ZXN0X2NwdShjcHUsICZy cWQtPnRpY2tsZWQpKSApCiAgICAgewotICAgICAgICBBU1NFUlQoY3B1bWFza19jeWNsZShjcHUs IG5ldy0+dmNwdS0+Y3B1X2hhcmRfYWZmaW5pdHkpID09IGNwdSk7CisgICAgICAgIEFTU0VSVChj cHVtYXNrX2N5Y2xlKGNwdSwgdW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHkpID09IGNwdSk7CiAgICAg ICAgIFNDSEVEX1NUQVRfQ1JBTksodGlja2xlZF9pZGxlX2NwdV9leGNsKTsKICAgICAgICAgaXBp ZCA9IGNwdTsKICAgICAgICAgZ290byB0aWNrbGU7CkBAIC0xNDgzLDEwICsxNDg0LDEwIEBAIHJ1 bnFfdGlja2xlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGNzY2hlZDJfdW5p dCAqbmV3LCBzX3RpbWVfdCBub3cpCiAgICAgZm9yX2VhY2hfYWZmaW5pdHlfYmFsYW5jZV9zdGVw KCBicyApCiAgICAgewogICAgICAgICAvKiBKdXN0IHNraXAgZmlyc3Qgc3RlcCwgaWYgd2UgZG9u J3QgaGF2ZSBhIHNvZnQgYWZmaW5pdHkgKi8KLSAgICAgICAgaWYgKCBicyA9PSBCQUxBTkNFX1NP RlRfQUZGSU5JVFkgJiYgIWhhc19zb2Z0X2FmZmluaXR5KG5ldy0+dmNwdSkgKQorICAgICAgICBp ZiAoIGJzID09IEJBTEFOQ0VfU09GVF9BRkZJTklUWSAmJiAhaGFzX3NvZnRfYWZmaW5pdHkodW5p dCkgKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgYWZmaW5pdHlfYmFsYW5jZV9j cHVtYXNrKG5ldy0+dmNwdSwgYnMsIGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSk7CisgICAgICAg IGFmZmluaXR5X2JhbGFuY2VfY3B1bWFzayh1bml0LCBicywgY3B1bWFza19zY3JhdGNoX2NwdShj cHUpKTsKIAogICAgICAgICAvKgogICAgICAgICAgKiBGaXJzdCBvZiBhbGwsIGNvbnNpZGVyIGlk bGUgY3B1cywgY2hlY2tpbmcgaWYgd2UgY2FuIGp1c3QKQEAgLTE1NTgsNyArMTU1OSw3IEBAIHJ1 bnFfdGlja2xlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGNzY2hlZDJfdW5p dCAqbmV3LCBzX3RpbWVfdCBub3cpCiAgICAgICAgICAgICBpcGlkID0gY3B1OwogCiAgICAgICAg ICAgICAvKiBJZiB0aGlzIGlzIGluIG5ldydzIHNvZnQgYWZmaW5pdHksIGp1c3QgdGFrZSBpdCAq LwotICAgICAgICAgICAgaWYgKCBjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgbmV3LT52Y3B1LT5jcHVf c29mdF9hZmZpbml0eSkgKQorICAgICAgICAgICAgaWYgKCBjcHVtYXNrX3Rlc3RfY3B1KGNwdSwg dW5pdC0+Y3B1X3NvZnRfYWZmaW5pdHkpICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICBTQ0hFRF9TVEFUX0NSQU5LKHRpY2tsZWRfYnVzeV9jcHUpOwogICAgICAgICAgICAgICAgIGdv dG8gdGlja2xlOwpAQCAtMjI0NCw3ICsyMjQ1LDcgQEAgY3NjaGVkMl9yZXNfcGljayhjb25zdCBz dHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGNvbnN0IHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogICAg ICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hf Y3B1KGNwdSksIHZjLT5jcHVfaGFyZF9hZmZpbml0eSwKKyAgICBjcHVtYXNrX2FuZChjcHVtYXNr X3NjcmF0Y2hfY3B1KGNwdSksIHVuaXQtPmNwdV9oYXJkX2FmZmluaXR5LAogICAgICAgICAgICAg ICAgIGNwdXBvb2xfZG9tYWluX2NwdW1hc2sodmMtPmRvbWFpbikpOwogCiAgICAgLyoKQEAgLTIy ODksNyArMjI5MCw3IEBAIGNzY2hlZDJfcmVzX3BpY2soY29uc3Qgc3RydWN0IHNjaGVkdWxlciAq b3BzLCBjb25zdCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKICAgICAgKgogICAgICAqIEZpbmQg Ym90aCBydW5xdWV1ZXMgaW4gb25lIHBhc3MuCiAgICAgICovCi0gICAgaGFzX3NvZnQgPSBoYXNf c29mdF9hZmZpbml0eSh2Yyk7CisgICAgaGFzX3NvZnQgPSBoYXNfc29mdF9hZmZpbml0eSh1bml0 KTsKICAgICBmb3JfZWFjaF9jcHUoaSwgJnBydi0+YWN0aXZlX3F1ZXVlcykKICAgICB7CiAgICAg ICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZDsKQEAgLTIzMzYsNyArMjMzNyw3 IEBAIGNzY2hlZDJfcmVzX3BpY2soY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBjb25zdCBz dHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKICAgICAgICAgICAgIGNwdW1hc2tfdCBtYXNrOwogCiAg ICAgICAgICAgICBjcHVtYXNrX2FuZCgmbWFzaywgY3B1bWFza19zY3JhdGNoX2NwdShjcHUpLCAm cnFkLT5hY3RpdmUpOwotICAgICAgICAgICAgaWYgKCBjcHVtYXNrX2ludGVyc2VjdHMoJm1hc2ss IHN2Yy0+dmNwdS0+Y3B1X3NvZnRfYWZmaW5pdHkpICkKKyAgICAgICAgICAgIGlmICggY3B1bWFz a19pbnRlcnNlY3RzKCZtYXNrLCB1bml0LT5jcHVfc29mdF9hZmZpbml0eSkgKQogICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgIG1pbl9zX2F2Z2xvYWQgPSBycWRfYXZnbG9hZDsKICAgICAg ICAgICAgICAgICBtaW5fc19ycWkgPSBpOwpAQCAtMjM1OCw5ICsyMzU5LDkgQEAgY3NjaGVkMl9y ZXNfcGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGNvbnN0IHN0cnVjdCBzY2hlZF91 bml0ICp1bml0KQogICAgICAgICAgKiBOb3RlIHRoYXQsIHRvIG9idGFpbiB0aGUgc29mdC1hZmZp bml0eSBtYXNrLCB3ZSAianVzdCIgcHV0IHdoYXQgd2UKICAgICAgICAgICogaGF2ZSBpbiBjcHVt YXNrX3NjcmF0Y2ggaW4gJiYgd2l0aCB2Yy0+Y3B1X3NvZnRfYWZmaW5pdHkuIFRoaXMgaXMKICAg ICAgICAgICogb2sgYmVjYXVzZToKLSAgICAgICAgICogLSB3ZSBrbm93IHRoYXQgdmMtPmNwdV9o YXJkX2FmZmluaXR5IGFuZCB2Yy0+Y3B1X3NvZnRfYWZmaW5pdHkgaGF2ZQorICAgICAgICAgKiAt IHdlIGtub3cgdGhhdCB1bml0LT5jcHVfaGFyZF9hZmZpbml0eSBhbmQgLT5jcHVfc29mdF9hZmZp bml0eSBoYXZlCiAgICAgICAgICAqICAgYSBub24tZW1wdHkgaW50ZXJzZWN0aW9uIChiZWNhdXNl IGhhc19zb2Z0IGlzIHRydWUpOwotICAgICAgICAgKiAtIHdlIGhhdmUgdmMtPmNwdV9oYXJkX2Fm ZmluaXR5ICYgY3B1cG9vbF9kb21haW5fY3B1bWFzaygpIGFscmVhZHkKKyAgICAgICAgICogLSB3 ZSBoYXZlIHVuaXQtPmNwdV9oYXJkX2FmZmluaXR5ICYgY3B1cG9vbF9kb21haW5fY3B1bWFzaygp IGFscmVhZHkKICAgICAgICAgICogICBpbiBjcHVtYXNrX3NjcmF0Y2gsIHdlIGRvIHNhdmUgYSBs b3QgZG9pbmcgbGlrZSB0aGlzLgogICAgICAgICAgKgogICAgICAgICAgKiBJdCdzIGtpbmQgb2Yg bGlrZSBvcGVuIGNvZGluZyBhZmZpbml0eV9iYWxhbmNlX2NwdW1hc2soKSBidXQsIGluCkBAIC0y MzY4LDcgKzIzNjksNyBAQCBjc2NoZWQyX3Jlc19waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIg Km9wcywgY29uc3Qgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiAgICAgICAgICAqIGNwdW1hc2sg b3BlcmF0aW9ucy4KICAgICAgICAgICovCiAgICAgICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2Ny YXRjaF9jcHUoY3B1KSwgY3B1bWFza19zY3JhdGNoX2NwdShjcHUpLAotICAgICAgICAgICAgICAg ICAgICB2Yy0+Y3B1X3NvZnRfYWZmaW5pdHkpOworICAgICAgICAgICAgICAgICAgICB1bml0LT5j cHVfc29mdF9hZmZpbml0eSk7CiAgICAgICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2NyYXRjaF9j cHUoY3B1KSwgY3B1bWFza19zY3JhdGNoX2NwdShjcHUpLAogICAgICAgICAgICAgICAgICAgICAm cHJ2LT5ycWRbbWluX3NfcnFpXS5hY3RpdmUpOwogICAgIH0KQEAgLTI0NzYsNiArMjQ3Nyw3IEBA IHN0YXRpYyB2b2lkIG1pZ3JhdGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLAogICAgICAg ICAgICAgICAgICAgICBzX3RpbWVfdCBub3cpCiB7CiAgICAgaW50IGNwdSA9IHN2Yy0+dmNwdS0+ cHJvY2Vzc29yOworICAgIHN0cnVjdCBzY2hlZF91bml0ICp1bml0ID0gc3ZjLT52Y3B1LT5zY2hl ZF91bml0OwogCiAgICAgaWYgKCB1bmxpa2VseSh0Yl9pbml0X2RvbmUpICkKICAgICB7CkBAIC0y NTEzLDcgKzI1MTUsNyBAQCBzdGF0aWMgdm9pZCBtaWdyYXRlKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywKICAgICAgICAgfQogICAgICAgICBfcnVucV9kZWFzc2lnbihzdmMpOwogCi0gICAg ICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgc3ZjLT52Y3B1LT5jcHVf aGFyZF9hZmZpbml0eSwKKyAgICAgICAgY3B1bWFza19hbmQoY3B1bWFza19zY3JhdGNoX2NwdShj cHUpLCB1bml0LT5jcHVfaGFyZF9hZmZpbml0eSwKICAgICAgICAgICAgICAgICAgICAgY3B1cG9v bF9kb21haW5fY3B1bWFzayhzdmMtPnZjcHUtPmRvbWFpbikpOwogICAgICAgICBjcHVtYXNrX2Fu ZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksIGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwKICAg ICAgICAgICAgICAgICAgICAgJnRycWQtPmFjdGl2ZSk7CkBAIC0yNTQ3LDcgKzI1NDksNyBAQCBz dGF0aWMgYm9vbCB2Y3B1X2lzX21pZ3JhdGVhYmxlKHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2YywK ICAgICBzdHJ1Y3QgdmNwdSAqdiA9IHN2Yy0+dmNwdTsKICAgICBpbnQgY3B1ID0gc3ZjLT52Y3B1 LT5wcm9jZXNzb3I7CiAKLSAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSks IHYtPmNwdV9oYXJkX2FmZmluaXR5LAorICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2NyYXRjaF9j cHUoY3B1KSwgdi0+c2NoZWRfdW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHksCiAgICAgICAgICAgICAg ICAgY3B1cG9vbF9kb21haW5fY3B1bWFzayh2LT5kb21haW4pKTsKIAogICAgIHJldHVybiAhKHN2 Yy0+ZmxhZ3MgJiBDU0ZMQUdfcnVucV9taWdyYXRlX3JlcXVlc3QpICYmCkBAIC0yNzgxLDcgKzI3 ODMsNyBAQCBjc2NoZWQyX3VuaXRfbWlncmF0ZSgKIAogICAgIC8qIElmIGhlcmUsIG5ld19jcHUg bXVzdCBiZSBhIHZhbGlkIENyZWRpdDIgcENQVSwgYW5kIGluIG91ciBhZmZpbml0eS4gKi8KICAg ICBBU1NFUlQoY3B1bWFza190ZXN0X2NwdShuZXdfY3B1LCAmY3NjaGVkMl9wcml2KG9wcyktPmlu aXRpYWxpemVkKSk7Ci0gICAgQVNTRVJUKGNwdW1hc2tfdGVzdF9jcHUobmV3X2NwdSwgdmMtPmNw dV9oYXJkX2FmZmluaXR5KSk7CisgICAgQVNTRVJUKGNwdW1hc2tfdGVzdF9jcHUobmV3X2NwdSwg dW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHkpKTsKIAogICAgIHRycWQgPSBjMnJxZChvcHMsIG5ld19j cHUpOwogCkBAIC0zMzIxLDkgKzMzMjMsOSBAQCBydW5xX2NhbmRpZGF0ZShzdHJ1Y3QgY3NjaGVk Ml9ydW5xdWV1ZV9kYXRhICpycWQsCiAgICAgfQogCiAgICAgLyogSWYgc2N1cnIgaGFzIGEgc29m dC1hZmZpbml0eSwgbGV0J3MgY2hlY2sgd2hldGhlciBjcHUgaXMgcGFydCBvZiBpdCAqLwotICAg IGlmICggaGFzX3NvZnRfYWZmaW5pdHkoc2N1cnItPnZjcHUpICkKKyAgICBpZiAoIGhhc19zb2Z0 X2FmZmluaXR5KHNjdXJyLT52Y3B1LT5zY2hlZF91bml0KSApCiAgICAgewotICAgICAgICBhZmZp bml0eV9iYWxhbmNlX2NwdW1hc2soc2N1cnItPnZjcHUsIEJBTEFOQ0VfU09GVF9BRkZJTklUWSwK KyAgICAgICAgYWZmaW5pdHlfYmFsYW5jZV9jcHVtYXNrKHNjdXJyLT52Y3B1LT5zY2hlZF91bml0 LCBCQUxBTkNFX1NPRlRfQUZGSU5JVFksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjcHVtYXNrX3NjcmF0Y2gpOwogICAgICAgICBpZiAoIHVubGlrZWx5KCFjcHVtYXNrX3Rlc3Rf Y3B1KGNwdSwgY3B1bWFza19zY3JhdGNoKSkgKQogICAgICAgICB7CkBAIC0zMzc4LDcgKzMzODAs NyBAQCBydW5xX2NhbmRpZGF0ZShzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpycWQsCiAg ICAgICAgIH0KIAogICAgICAgICAvKiBPbmx5IGNvbnNpZGVyIHZjcHVzIHRoYXQgYXJlIGFsbG93 ZWQgdG8gcnVuIG9uIHRoaXMgcHJvY2Vzc29yLiAqLwotICAgICAgICBpZiAoICFjcHVtYXNrX3Rl c3RfY3B1KGNwdSwgc3ZjLT52Y3B1LT5jcHVfaGFyZF9hZmZpbml0eSkgKQorICAgICAgICBpZiAo ICFjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgc3ZjLT52Y3B1LT5zY2hlZF91bml0LT5jcHVfaGFyZF9h ZmZpbml0eSkgKQogICAgICAgICB7CiAgICAgICAgICAgICAoKnNraXBwZWQpKys7CiAgICAgICAg ICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRfbnVsbC5jIGIveGVu L2NvbW1vbi9zY2hlZF9udWxsLmMKaW5kZXggYjc3MDBjOTFhMi4uMWQ5NmRjNWZhNSAxMDA2NDQK LS0tIGEveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9udWxs LmMKQEAgLTEyMiw3ICsxMjIsOCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBudWxsX3VuaXQgKm51 bGxfdW5pdChjb25zdCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHN0YXRpYyBpbmxpbmUgYm9v bCB2Y3B1X2NoZWNrX2FmZmluaXR5KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgY3B1LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGJhbGFu Y2Vfc3RlcCkKIHsKLSAgICBhZmZpbml0eV9iYWxhbmNlX2NwdW1hc2sodiwgYmFsYW5jZV9zdGVw LCBjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSkpOworICAgIGFmZmluaXR5X2JhbGFuY2VfY3B1bWFz ayh2LT5zY2hlZF91bml0LCBiYWxhbmNlX3N0ZXAsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSk7CiAgICAgY3B1bWFza19hbmQoY3B1bWFza19z Y3JhdGNoX2NwdShjcHUpLCBjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksCiAgICAgICAgICAgICAg ICAgY3B1cG9vbF9kb21haW5fY3B1bWFzayh2LT5kb21haW4pKTsKIApAQCAtMjczLDEwICsyNzQs MTAgQEAgcGlja19yZXMoc3RydWN0IG51bGxfcHJpdmF0ZSAqcHJ2LCBjb25zdCBzdHJ1Y3Qgc2No ZWRfdW5pdCAqdW5pdCkKIAogICAgIGZvcl9lYWNoX2FmZmluaXR5X2JhbGFuY2Vfc3RlcCggYnMg KQogICAgIHsKLSAgICAgICAgaWYgKCBicyA9PSBCQUxBTkNFX1NPRlRfQUZGSU5JVFkgJiYgIWhh c19zb2Z0X2FmZmluaXR5KHYpICkKKyAgICAgICAgaWYgKCBicyA9PSBCQUxBTkNFX1NPRlRfQUZG SU5JVFkgJiYgIWhhc19zb2Z0X2FmZmluaXR5KHVuaXQpICkKICAgICAgICAgICAgIGNvbnRpbnVl OwogCi0gICAgICAgIGFmZmluaXR5X2JhbGFuY2VfY3B1bWFzayh2LCBicywgY3B1bWFza19zY3Jh dGNoX2NwdShjcHUpKTsKKyAgICAgICAgYWZmaW5pdHlfYmFsYW5jZV9jcHVtYXNrKHVuaXQsIGJz LCBjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSkpOwogICAgICAgICBjcHVtYXNrX2FuZChjcHVtYXNr X3NjcmF0Y2hfY3B1KGNwdSksIGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgY3B1cyk7CiAKICAg ICAgICAgLyoKQEAgLTMxMyw3ICszMTQsNyBAQCBwaWNrX3JlcyhzdHJ1Y3QgbnVsbF9wcml2YXRl ICpwcnYsIGNvbnN0IHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogICAgICAqIGFzIHdlIHdpbGwg YWN0dWFsbHkgYXNzaWduIHRoZSB2Q1BVIHRvIHRoZSBwQ1BVIHdlIHJldHVybiBmcm9tIGhlcmUs CiAgICAgICogb25seSBpZiB0aGUgcENQVSBpcyBmcmVlLgogICAgICAqLwotICAgIGNwdW1hc2tf YW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgY3B1cywgdi0+Y3B1X2hhcmRfYWZmaW5pdHkp OworICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgY3B1cywgdW5pdC0+ Y3B1X2hhcmRfYWZmaW5pdHkpOwogICAgIG5ld19jcHUgPSBjcHVtYXNrX2FueShjcHVtYXNrX3Nj cmF0Y2hfY3B1KGNwdSkpOwogCiAgb3V0OgpAQCAtMzk2LDcgKzM5Nyw4IEBAIHN0YXRpYyBib29s IHZjcHVfZGVhc3NpZ24oc3RydWN0IG51bGxfcHJpdmF0ZSAqcHJ2LCBzdHJ1Y3QgdmNwdSAqdikK ICAgICB7CiAgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoIHd2YywgJnBydi0+d2FpdHEsIHdh aXRxX2VsZW0gKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIGJzID09IEJBTEFOQ0VfU09G VF9BRkZJTklUWSAmJiAhaGFzX3NvZnRfYWZmaW5pdHkod3ZjLT52Y3B1KSApCisgICAgICAgICAg ICBpZiAoIGJzID09IEJBTEFOQ0VfU09GVF9BRkZJTklUWSAmJgorICAgICAgICAgICAgICAgICAh aGFzX3NvZnRfYWZmaW5pdHkod3ZjLT52Y3B1LT5zY2hlZF91bml0KSApCiAgICAgICAgICAgICAg ICAgY29udGludWU7CiAKICAgICAgICAgICAgIGlmICggdmNwdV9jaGVja19hZmZpbml0eSh3dmMt PnZjcHUsIGNwdSwgYnMpICkKQEAgLTQ2Niw3ICs0NjgsNyBAQCBzdGF0aWMgdm9pZCBudWxsX3Vu aXRfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywKIAogICAgIGxvY2sgPSB1bml0 X3NjaGVkdWxlX2xvY2sodW5pdCk7CiAKLSAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hf Y3B1KGNwdSksIHYtPmNwdV9oYXJkX2FmZmluaXR5LAorICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tf c2NyYXRjaF9jcHUoY3B1KSwgdW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHksCiAgICAgICAgICAgICAg ICAgY3B1cG9vbF9kb21haW5fY3B1bWFzayh2LT5kb21haW4pKTsKIAogICAgIC8qIElmIHRoZSBw Q1BVIGlzIGZyZWUsIHdlIGFzc2lnbiB2IHRvIGl0ICovCkBAIC01NzksNyArNTgxLDcgQEAgc3Rh dGljIHZvaWQgbnVsbF91bml0X3dha2UoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLAogICAg ICAgICBsaXN0X2FkZF90YWlsKCZudmMtPndhaXRxX2VsZW0sICZwcnYtPndhaXRxKTsKICAgICAg ICAgc3Bpbl91bmxvY2soJnBydi0+d2FpdHFfbG9jayk7CiAKLSAgICAgICAgY3B1bWFza19hbmQo Y3B1bWFza19zY3JhdGNoX2NwdShjcHUpLCB2LT5jcHVfaGFyZF9hZmZpbml0eSwKKyAgICAgICAg Y3B1bWFza19hbmQoY3B1bWFza19zY3JhdGNoX2NwdShjcHUpLCB1bml0LT5jcHVfaGFyZF9hZmZp bml0eSwKICAgICAgICAgICAgICAgICAgICAgY3B1cG9vbF9kb21haW5fY3B1bWFzayh2LT5kb21h aW4pKTsKIAogICAgICAgICBpZiAoICFjcHVtYXNrX2ludGVyc2VjdHMoJnBydi0+Y3B1c19mcmVl LCBjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSkpICkKQEAgLTg0OCw3ICs4NTAsNyBAQCBzdGF0aWMg c3RydWN0IHRhc2tfc2xpY2UgbnVsbF9zY2hlZHVsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpv cHMsCiAgICAgICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KCB3dmMsICZwcnYtPndhaXRxLCB3 YWl0cV9lbGVtICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZiAoIGJzID09IEJB TEFOQ0VfU09GVF9BRkZJTklUWSAmJgotICAgICAgICAgICAgICAgICAgICAgIWhhc19zb2Z0X2Fm ZmluaXR5KHd2Yy0+dmNwdSkgKQorICAgICAgICAgICAgICAgICAgICAgIWhhc19zb2Z0X2FmZmlu aXR5KHd2Yy0+dmNwdS0+c2NoZWRfdW5pdCkgKQogICAgICAgICAgICAgICAgICAgICBjb250aW51 ZTsKIAogICAgICAgICAgICAgICAgIGlmICggdmNwdV9jaGVja19hZmZpbml0eSh3dmMtPnZjcHUs IGNwdSwgYnMpICkKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRfcnQuYyBiL3hlbi9jb21t b24vc2NoZWRfcnQuYwppbmRleCAwZDQxOWI5NjBlLi45MjdmNjMwNTMxIDEwMDY0NAotLS0gYS94 ZW4vY29tbW9uL3NjaGVkX3J0LmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCkBAIC0zMjcs NyArMzI3LDcgQEAgcnRfZHVtcF92Y3B1KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgY29u c3Qgc3RydWN0IHJ0X3VuaXQgKnN2YykKICAgICBtYXNrID0gY3B1bWFza19zY3JhdGNoX2NwdShz dmMtPnZjcHUtPnByb2Nlc3Nvcik7CiAKICAgICBjcHVwb29sX21hc2sgPSBjcHVwb29sX2RvbWFp bl9jcHVtYXNrKHN2Yy0+dmNwdS0+ZG9tYWluKTsKLSAgICBjcHVtYXNrX2FuZChtYXNrLCBjcHVw b29sX21hc2ssIHN2Yy0+dmNwdS0+Y3B1X2hhcmRfYWZmaW5pdHkpOworICAgIGNwdW1hc2tfYW5k KG1hc2ssIGNwdXBvb2xfbWFzaywgc3ZjLT52Y3B1LT5zY2hlZF91bml0LT5jcHVfaGFyZF9hZmZp bml0eSk7CiAgICAgcHJpbnRrKCJbJTVkLiUtMnVdIGNwdSAldSwgKCUiUFJJX3N0aW1lIiwgJSJQ Uklfc3RpbWUiKSwiCiAgICAgICAgICAgICIgY3VyX2I9JSJQUklfc3RpbWUiIGN1cl9kPSUiUFJJ X3N0aW1lIiBsYXN0X3N0YXJ0PSUiUFJJX3N0aW1lIlxuIgogICAgICAgICAgICAiIFx0XHQgcHJp b3JpdHlfbGV2ZWw9JWQgaGFzX2V4dHJhdGltZT0lZFxuIgpAQCAtNjQ0LDcgKzY0NCw3IEBAIHJ0 X3Jlc19waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgY29uc3Qgc3RydWN0IHNjaGVk X3VuaXQgKnVuaXQpCiAgICAgaW50IGNwdTsKIAogICAgIG9ubGluZSA9IGNwdXBvb2xfZG9tYWlu X2NwdW1hc2sodmMtPmRvbWFpbik7Ci0gICAgY3B1bWFza19hbmQoJmNwdXMsIG9ubGluZSwgdmMt PmNwdV9oYXJkX2FmZmluaXR5KTsKKyAgICBjcHVtYXNrX2FuZCgmY3B1cywgb25saW5lLCB1bml0 LT5jcHVfaGFyZF9hZmZpbml0eSk7CiAKICAgICBjcHUgPSBjcHVtYXNrX3Rlc3RfY3B1KHZjLT5w cm9jZXNzb3IsICZjcHVzKQogICAgICAgICAgICAgPyB2Yy0+cHJvY2Vzc29yCkBAIC0xMDIyLDcg KzEwMjIsOCBAQCBydW5xX3BpY2soY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBjb25zdCBj cHVtYXNrX3QgKm1hc2spCiAKICAgICAgICAgLyogbWFzayBjcHVfaGFyZF9hZmZpbml0eSAmIGNw dXBvb2wgJiBtYXNrICovCiAgICAgICAgIG9ubGluZSA9IGNwdXBvb2xfZG9tYWluX2NwdW1hc2so aXRlcl9zdmMtPnZjcHUtPmRvbWFpbik7Ci0gICAgICAgIGNwdW1hc2tfYW5kKCZjcHVfY29tbW9u LCBvbmxpbmUsIGl0ZXJfc3ZjLT52Y3B1LT5jcHVfaGFyZF9hZmZpbml0eSk7CisgICAgICAgIGNw dW1hc2tfYW5kKCZjcHVfY29tbW9uLCBvbmxpbmUsCisgICAgICAgICAgICAgICAgICAgIGl0ZXJf c3ZjLT52Y3B1LT5zY2hlZF91bml0LT5jcHVfaGFyZF9hZmZpbml0eSk7CiAgICAgICAgIGNwdW1h c2tfYW5kKCZjcHVfY29tbW9uLCBtYXNrLCAmY3B1X2NvbW1vbik7CiAgICAgICAgIGlmICggY3B1 bWFza19lbXB0eSgmY3B1X2NvbW1vbikgKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0xMTkx LDcgKzExOTIsNyBAQCBydW5xX3RpY2tsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0 cnVjdCBydF91bml0ICpuZXcpCiAgICAgICAgIHJldHVybjsKIAogICAgIG9ubGluZSA9IGNwdXBv b2xfZG9tYWluX2NwdW1hc2sobmV3LT52Y3B1LT5kb21haW4pOwotICAgIGNwdW1hc2tfYW5kKCZu b3RfdGlja2xlZCwgb25saW5lLCBuZXctPnZjcHUtPmNwdV9oYXJkX2FmZmluaXR5KTsKKyAgICBj cHVtYXNrX2FuZCgmbm90X3RpY2tsZWQsIG9ubGluZSwgbmV3LT52Y3B1LT5zY2hlZF91bml0LT5j cHVfaGFyZF9hZmZpbml0eSk7CiAgICAgY3B1bWFza19hbmRub3QoJm5vdF90aWNrbGVkLCAmbm90 X3RpY2tsZWQsICZwcnYtPnRpY2tsZWQpOwogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vc2NoZWR1bGUuYyBiL3hlbi9jb21tb24vc2NoZWR1bGUuYwppbmRleCBmZWQ0ODhiYzFmLi4x MWU1YzI4OTViIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkdWxlLmMKKysrIGIveGVuL2Nv bW1vbi9zY2hlZHVsZS5jCkBAIC0zMjksNiArMzI5LDExIEBAIHN0YXRpYyB2b2lkIHNjaGVkX2Zy ZWVfdW5pdChzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKICAgICB9CiAKICAgICB1bml0LT52Y3B1 X2xpc3QtPnNjaGVkX3VuaXQgPSBOVUxMOworCisgICAgZnJlZV9jcHVtYXNrX3Zhcih1bml0LT5j cHVfaGFyZF9hZmZpbml0eSk7CisgICAgZnJlZV9jcHVtYXNrX3Zhcih1bml0LT5jcHVfaGFyZF9h ZmZpbml0eV9zYXZlZCk7CisgICAgZnJlZV9jcHVtYXNrX3Zhcih1bml0LT5jcHVfc29mdF9hZmZp bml0eSk7CisKICAgICB4ZnJlZSh1bml0KTsKIH0KIApAQCAtMzU0LDcgKzM1OSwxNiBAQCBzdGF0 aWMgc3RydWN0IHNjaGVkX3VuaXQgKnNjaGVkX2FsbG9jX3VuaXQoc3RydWN0IHZjcHUgKnYpCiAg ICAgdW5pdC0+bmV4dF9pbl9saXN0ID0gKnByZXZfdW5pdDsKICAgICAqcHJldl91bml0ID0gdW5p dDsKIAorICAgIGlmICggIXphbGxvY19jcHVtYXNrX3ZhcigmdW5pdC0+Y3B1X2hhcmRfYWZmaW5p dHkpIHx8CisgICAgICAgICAhemFsbG9jX2NwdW1hc2tfdmFyKCZ1bml0LT5jcHVfaGFyZF9hZmZp bml0eV9zYXZlZCkgfHwKKyAgICAgICAgICF6YWxsb2NfY3B1bWFza192YXIoJnVuaXQtPmNwdV9z b2Z0X2FmZmluaXR5KSApCisgICAgICAgIGdvdG8gZmFpbDsKKwogICAgIHJldHVybiB1bml0Owor CisgZmFpbDoKKyAgICBzY2hlZF9mcmVlX3VuaXQodW5pdCk7CisgICAgcmV0dXJuIE5VTEw7CiB9 CiAKIGludCBzY2hlZF9pbml0X3ZjcHUoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBwcm9j ZXNzb3IpCkBAIC03NDQsNyArNzU4LDcgQEAgc3RhdGljIHZvaWQgdmNwdV9taWdyYXRlX2Zpbmlz aChzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgaWYgKCBwaWNr X2NhbGxlZCAmJgogICAgICAgICAgICAgICAgICAobmV3X2xvY2sgPT0gZ2V0X3NjaGVkX3Jlcyhu ZXdfY3B1KS0+c2NoZWR1bGVfbG9jaykgJiYKLSAgICAgICAgICAgICAgICAgY3B1bWFza190ZXN0 X2NwdShuZXdfY3B1LCB2LT5jcHVfaGFyZF9hZmZpbml0eSkgJiYKKyAgICAgICAgICAgICAgICAg Y3B1bWFza190ZXN0X2NwdShuZXdfY3B1LCB2LT5zY2hlZF91bml0LT5jcHVfaGFyZF9hZmZpbml0 eSkgJiYKICAgICAgICAgICAgICAgICAgY3B1bWFza190ZXN0X2NwdShuZXdfY3B1LCB2LT5kb21h aW4tPmNwdXBvb2wtPmNwdV92YWxpZCkgKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCkBAIC04 MDIsNiArODE2LDcgQEAgdm9pZCByZXN0b3JlX3ZjcHVfYWZmaW5pdHkoc3RydWN0IGRvbWFpbiAq ZCkKICAgICB7CiAgICAgICAgIHNwaW5sb2NrX3QgKmxvY2s7CiAgICAgICAgIHVuc2lnbmVkIGlu dCBvbGRfY3B1ID0gdi0+cHJvY2Vzc29yOworICAgICAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5p dCA9IHYtPnNjaGVkX3VuaXQ7CiAKICAgICAgICAgQVNTRVJUKCF2Y3B1X3J1bm5hYmxlKHYpKTsK IApAQCAtODEzLDE3ICs4MjgsMTcgQEAgdm9pZCByZXN0b3JlX3ZjcHVfYWZmaW5pdHkoc3RydWN0 IGRvbWFpbiAqZCkKICAgICAgICAgICogc2V0IHYtPnByb2Nlc3NvciBvZiBlYWNoIG9mIHRoZWly IHZDUFVzIHRvIHNvbWV0aGluZyB0aGF0IHdpbGwKICAgICAgICAgICogbWFrZSBzZW5zZSBmb3Ig dGhlIHNjaGVkdWxlciBvZiB0aGUgY3B1cG9vbCBpbiB3aGljaCB0aGV5IGFyZSBpbi4KICAgICAg ICAgICovCi0gICAgICAgIGxvY2sgPSB1bml0X3NjaGVkdWxlX2xvY2tfaXJxKHYtPnNjaGVkX3Vu aXQpOworICAgICAgICBsb2NrID0gdW5pdF9zY2hlZHVsZV9sb2NrX2lycSh1bml0KTsKIAotICAg ICAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksIHYtPmNwdV9oYXJkX2Fm ZmluaXR5LAorICAgICAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksIHVu aXQtPmNwdV9oYXJkX2FmZmluaXR5LAogICAgICAgICAgICAgICAgICAgICBjcHVwb29sX2RvbWFp bl9jcHVtYXNrKGQpKTsKICAgICAgICAgaWYgKCBjcHVtYXNrX2VtcHR5KGNwdW1hc2tfc2NyYXRj aF9jcHUoY3B1KSkgKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIHYtPmFmZmluaXR5X2Jy b2tlbiApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc2NoZWRfc2V0X2FmZmluaXR5 KHYsIHYtPmNwdV9oYXJkX2FmZmluaXR5X3NhdmVkLCBOVUxMKTsKKyAgICAgICAgICAgICAgICBz Y2hlZF9zZXRfYWZmaW5pdHkodiwgdW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHlfc2F2ZWQsIE5VTEwp OwogICAgICAgICAgICAgICAgIHYtPmFmZmluaXR5X2Jyb2tlbiA9IDA7Ci0gICAgICAgICAgICAg ICAgY3B1bWFza19hbmQoY3B1bWFza19zY3JhdGNoX2NwdShjcHUpLCB2LT5jcHVfaGFyZF9hZmZp bml0eSwKKyAgICAgICAgICAgICAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNw dSksIHVuaXQtPmNwdV9oYXJkX2FmZmluaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNwdXBvb2xfZG9tYWluX2NwdW1hc2soZCkpOwogICAgICAgICAgICAgfQogCkBAIC04MzEsMjEg Kzg0NiwyMCBAQCB2b2lkIHJlc3RvcmVfdmNwdV9hZmZpbml0eShzdHJ1Y3QgZG9tYWluICpkKQog ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfREVCVUcgIkJyZWFr aW5nIGFmZmluaXR5IGZvciAlcHZcbiIsIHYpOwogICAgICAgICAgICAgICAgIHNjaGVkX3NldF9h ZmZpbml0eSh2LCAmY3B1bWFza19hbGwsIE5VTEwpOwotICAgICAgICAgICAgICAgIGNwdW1hc2tf YW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgdi0+Y3B1X2hhcmRfYWZmaW5pdHksCisgICAg ICAgICAgICAgICAgY3B1bWFza19hbmQoY3B1bWFza19zY3JhdGNoX2NwdShjcHUpLCB1bml0LT5j cHVfaGFyZF9hZmZpbml0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVwb29sX2Rv bWFpbl9jcHVtYXNrKGQpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIHYt PnByb2Nlc3NvciA9IGNwdW1hc2tfYW55KGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSk7Ci0gICAg ICAgIHYtPnNjaGVkX3VuaXQtPnJlcyA9IGdldF9zY2hlZF9yZXModi0+cHJvY2Vzc29yKTsKKyAg ICAgICAgdW5pdC0+cmVzID0gZ2V0X3NjaGVkX3Jlcyh2LT5wcm9jZXNzb3IpOwogCiAgICAgICAg IHNwaW5fdW5sb2NrX2lycShsb2NrKTsKIAogICAgICAgICAvKiB2LT5wcm9jZXNzb3IgbWlnaHQg aGF2ZSBjaGFuZ2VkLCBzbyByZWFjcXVpcmUgdGhlIGxvY2suICovCi0gICAgICAgIGxvY2sgPSB1 bml0X3NjaGVkdWxlX2xvY2tfaXJxKHYtPnNjaGVkX3VuaXQpOwotICAgICAgICB2LT5zY2hlZF91 bml0LT5yZXMgPSBzY2hlZF9waWNrX3Jlc291cmNlKHZjcHVfc2NoZWR1bGVyKHYpLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtPnNjaGVkX3VuaXQp OwotICAgICAgICB2LT5wcm9jZXNzb3IgPSB2LT5zY2hlZF91bml0LT5yZXMtPm1hc3Rlcl9jcHU7 CisgICAgICAgIGxvY2sgPSB1bml0X3NjaGVkdWxlX2xvY2tfaXJxKHVuaXQpOworICAgICAgICB1 bml0LT5yZXMgPSBzY2hlZF9waWNrX3Jlc291cmNlKHZjcHVfc2NoZWR1bGVyKHYpLCB1bml0KTsK KyAgICAgICAgdi0+cHJvY2Vzc29yID0gdW5pdC0+cmVzLT5tYXN0ZXJfY3B1OwogICAgICAgICBz cGluX3VubG9ja19pcnEobG9jayk7CiAKICAgICAgICAgaWYgKCBvbGRfY3B1ICE9IHYtPnByb2Nl c3NvciApCkBAIC04NzcsMTYgKzg5MSwxNyBAQCBpbnQgY3B1X2Rpc2FibGVfc2NoZWR1bGVyKHVu c2lnbmVkIGludCBjcHUpCiAgICAgICAgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkKICAgICAgICAg ewogICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKLSAgICAgICAgICAgIHNwaW5sb2Nr X3QgKmxvY2sgPSB1bml0X3NjaGVkdWxlX2xvY2tfaXJxc2F2ZSh2LT5zY2hlZF91bml0LCAmZmxh Z3MpOworICAgICAgICAgICAgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQgPSB2LT5zY2hlZF91bml0 OworICAgICAgICAgICAgc3BpbmxvY2tfdCAqbG9jayA9IHVuaXRfc2NoZWR1bGVfbG9ja19pcnFz YXZlKHVuaXQsICZmbGFncyk7CiAKLSAgICAgICAgICAgIGNwdW1hc2tfYW5kKCZvbmxpbmVfYWZm aW5pdHksIHYtPmNwdV9oYXJkX2FmZmluaXR5LCBjLT5jcHVfdmFsaWQpOworICAgICAgICAgICAg Y3B1bWFza19hbmQoJm9ubGluZV9hZmZpbml0eSwgdW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHksIGMt PmNwdV92YWxpZCk7CiAgICAgICAgICAgICBpZiAoIGNwdW1hc2tfZW1wdHkoJm9ubGluZV9hZmZp bml0eSkgJiYKLSAgICAgICAgICAgICAgICAgY3B1bWFza190ZXN0X2NwdShjcHUsIHYtPmNwdV9o YXJkX2FmZmluaXR5KSApCisgICAgICAgICAgICAgICAgIGNwdW1hc2tfdGVzdF9jcHUoY3B1LCB1 bml0LT5jcHVfaGFyZF9hZmZpbml0eSkgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAg IGlmICggdi0+YWZmaW5pdHlfYnJva2VuICkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgIC8qIFRoZSB2Y3B1IGlzIHRlbXBvcmFyaWx5IHBpbm5lZCwgY2FuJ3QgbW92ZSBp dC4gKi8KLSAgICAgICAgICAgICAgICAgICAgdW5pdF9zY2hlZHVsZV91bmxvY2tfaXJxcmVzdG9y ZShsb2NrLCBmbGFncywgdi0+c2NoZWRfdW5pdCk7CisgICAgICAgICAgICAgICAgICAgIHVuaXRf c2NoZWR1bGVfdW5sb2NrX2lycXJlc3RvcmUobG9jaywgZmxhZ3MsIHVuaXQpOwogICAgICAgICAg ICAgICAgICAgICByZXQgPSAtRUFERFJJTlVTRTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 CiAgICAgICAgICAgICAgICAgfQpAQCAtODk5LDcgKzkxNCw3IEBAIGludCBjcHVfZGlzYWJsZV9z Y2hlZHVsZXIodW5zaWduZWQgaW50IGNwdSkKICAgICAgICAgICAgIGlmICggdi0+cHJvY2Vzc29y ICE9IGNwdSApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgLyogVGhlIHZjcHUgaXMg bm90IG9uIHRoaXMgY3B1LCBzbyB3ZSBjYW4gbW92ZSBvbi4gKi8KLSAgICAgICAgICAgICAgICB1 bml0X3NjaGVkdWxlX3VubG9ja19pcnFyZXN0b3JlKGxvY2ssIGZsYWdzLCB2LT5zY2hlZF91bml0 KTsKKyAgICAgICAgICAgICAgICB1bml0X3NjaGVkdWxlX3VubG9ja19pcnFyZXN0b3JlKGxvY2ss IGZsYWdzLCB1bml0KTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0K IApAQCAtOTEyLDcgKzkyNyw3IEBAIGludCBjcHVfZGlzYWJsZV9zY2hlZHVsZXIodW5zaWduZWQg aW50IGNwdSkKICAgICAgICAgICAgICAqICAgIHRoaW5ncyB3b3VsZCBoYXZlIGZhaWxlZCBiZWZv cmUgZ2V0dGluZyBpbiBoZXJlLgogICAgICAgICAgICAgICovCiAgICAgICAgICAgICB2Y3B1X21p Z3JhdGVfc3RhcnQodik7Ci0gICAgICAgICAgICB1bml0X3NjaGVkdWxlX3VubG9ja19pcnFyZXN0 b3JlKGxvY2ssIGZsYWdzLCB2LT5zY2hlZF91bml0KTsKKyAgICAgICAgICAgIHVuaXRfc2NoZWR1 bGVfdW5sb2NrX2lycXJlc3RvcmUobG9jaywgZmxhZ3MsIHVuaXQpOwogCiAgICAgICAgICAgICB2 Y3B1X21pZ3JhdGVfZmluaXNoKHYpOwogCkBAIC05NTcsMjYgKzk3MiwyOSBAQCBzdGF0aWMgaW50 IGNwdV9kaXNhYmxlX3NjaGVkdWxlcl9jaGVjayh1bnNpZ25lZCBpbnQgY3B1KQogdm9pZCBzY2hl ZF9zZXRfYWZmaW5pdHkoCiAgICAgc3RydWN0IHZjcHUgKnYsIGNvbnN0IGNwdW1hc2tfdCAqaGFy ZCwgY29uc3QgY3B1bWFza190ICpzb2Z0KQogewotICAgIHNjaGVkX2FkanVzdF9hZmZpbml0eShk b21fc2NoZWR1bGVyKHYtPmRvbWFpbiksIHYtPnNjaGVkX3VuaXQsIGhhcmQsIHNvZnQpOworICAg IHN0cnVjdCBzY2hlZF91bml0ICp1bml0ID0gdi0+c2NoZWRfdW5pdDsKKworICAgIHNjaGVkX2Fk anVzdF9hZmZpbml0eShkb21fc2NoZWR1bGVyKHYtPmRvbWFpbiksIHVuaXQsIGhhcmQsIHNvZnQp OwogCiAgICAgaWYgKCBoYXJkICkKLSAgICAgICAgY3B1bWFza19jb3B5KHYtPmNwdV9oYXJkX2Fm ZmluaXR5LCBoYXJkKTsKKyAgICAgICAgY3B1bWFza19jb3B5KHVuaXQtPmNwdV9oYXJkX2FmZmlu aXR5LCBoYXJkKTsKICAgICBpZiAoIHNvZnQgKQotICAgICAgICBjcHVtYXNrX2NvcHkodi0+Y3B1 X3NvZnRfYWZmaW5pdHksIHNvZnQpOworICAgICAgICBjcHVtYXNrX2NvcHkodW5pdC0+Y3B1X3Nv ZnRfYWZmaW5pdHksIHNvZnQpOwogCi0gICAgdi0+c29mdF9hZmZfZWZmZWN0aXZlID0gIWNwdW1h c2tfc3Vic2V0KHYtPmNwdV9oYXJkX2FmZmluaXR5LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2LT5jcHVfc29mdF9hZmZpbml0eSkgJiYKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjcHVtYXNrX2ludGVyc2VjdHModi0+Y3B1X3NvZnRfYWZmaW5pdHks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtPmNwdV9o YXJkX2FmZmluaXR5KTsKKyAgICB1bml0LT5zb2Z0X2FmZl9lZmZlY3RpdmUgPSAhY3B1bWFza19z dWJzZXQodW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuaXQtPmNwdV9zb2Z0X2FmZmluaXR5KSAmJgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNwdW1hc2tfaW50ZXJzZWN0cyh1bml0LT5jcHVfc29m dF9hZmZpbml0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHkpOwogfQogCiBzdGF0aWMgaW50IHZjcHVfc2V0 X2FmZmluaXR5KAogICAgIHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBjcHVtYXNrX3QgKmFmZmluaXR5 LCBjb25zdCBjcHVtYXNrX3QgKndoaWNoKQogeworICAgIHN0cnVjdCBzY2hlZF91bml0ICp1bml0 ID0gdi0+c2NoZWRfdW5pdDsKICAgICBzcGlubG9ja190ICpsb2NrOwogICAgIGludCByZXQgPSAw OwogCi0gICAgbG9jayA9IHVuaXRfc2NoZWR1bGVfbG9ja19pcnEodi0+c2NoZWRfdW5pdCk7Cisg ICAgbG9jayA9IHVuaXRfc2NoZWR1bGVfbG9ja19pcnEodW5pdCk7CiAKICAgICBpZiAoIHYtPmFm ZmluaXR5X2Jyb2tlbiApCiAgICAgICAgIHJldCA9IC1FQlVTWTsKQEAgLTk4NiwxOSArMTAwNCwx OSBAQCBzdGF0aWMgaW50IHZjcHVfc2V0X2FmZmluaXR5KAogICAgICAgICAgKiBUZWxsIHRoZSBz Y2hlZHVsZXIgd2UgY2hhbmdlcyBzb21ldGhpbmcgYWJvdXQgYWZmaW5pdHksCiAgICAgICAgICAq IGFuZCBhc2sgdG8gcmUtZXZhbHVhdGUgdmNwdSBwbGFjZW1lbnQuCiAgICAgICAgICAqLwotICAg ICAgICBpZiAoIHdoaWNoID09IHYtPmNwdV9oYXJkX2FmZmluaXR5ICkKKyAgICAgICAgaWYgKCB3 aGljaCA9PSB1bml0LT5jcHVfaGFyZF9hZmZpbml0eSApCiAgICAgICAgIHsKICAgICAgICAgICAg IHNjaGVkX3NldF9hZmZpbml0eSh2LCBhZmZpbml0eSwgTlVMTCk7CiAgICAgICAgIH0KICAgICAg ICAgZWxzZQogICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQod2hpY2ggPT0gdi0+Y3B1X3Nv ZnRfYWZmaW5pdHkpOworICAgICAgICAgICAgQVNTRVJUKHdoaWNoID09IHVuaXQtPmNwdV9zb2Z0 X2FmZmluaXR5KTsKICAgICAgICAgICAgIHNjaGVkX3NldF9hZmZpbml0eSh2LCBOVUxMLCBhZmZp bml0eSk7CiAgICAgICAgIH0KICAgICAgICAgdmNwdV9taWdyYXRlX3N0YXJ0KHYpOwogICAgIH0K IAotICAgIHVuaXRfc2NoZWR1bGVfdW5sb2NrX2lycShsb2NrLCB2LT5zY2hlZF91bml0KTsKKyAg ICB1bml0X3NjaGVkdWxlX3VubG9ja19pcnEobG9jaywgdW5pdCk7CiAKICAgICBkb21haW5fdXBk YXRlX25vZGVfYWZmaW5pdHkodi0+ZG9tYWluKTsKIApAQCAtMTAxNywxMiArMTAzNSwxMiBAQCBp bnQgdmNwdV9zZXRfaGFyZF9hZmZpbml0eShzdHJ1Y3QgdmNwdSAqdiwgY29uc3QgY3B1bWFza190 ICphZmZpbml0eSkKICAgICBpZiAoIGNwdW1hc2tfZW1wdHkoJm9ubGluZV9hZmZpbml0eSkgKQog ICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgIHJldHVybiB2Y3B1X3NldF9hZmZpbml0eSh2 LCBhZmZpbml0eSwgdi0+Y3B1X2hhcmRfYWZmaW5pdHkpOworICAgIHJldHVybiB2Y3B1X3NldF9h ZmZpbml0eSh2LCBhZmZpbml0eSwgdi0+c2NoZWRfdW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHkpOwog fQogCiBpbnQgdmNwdV9zZXRfc29mdF9hZmZpbml0eShzdHJ1Y3QgdmNwdSAqdiwgY29uc3QgY3B1 bWFza190ICphZmZpbml0eSkKIHsKLSAgICByZXR1cm4gdmNwdV9zZXRfYWZmaW5pdHkodiwgYWZm aW5pdHksIHYtPmNwdV9zb2Z0X2FmZmluaXR5KTsKKyAgICByZXR1cm4gdmNwdV9zZXRfYWZmaW5p dHkodiwgYWZmaW5pdHksIHYtPnNjaGVkX3VuaXQtPmNwdV9zb2Z0X2FmZmluaXR5KTsKIH0KIAog LyogQmxvY2sgdGhlIGN1cnJlbnRseS1leGVjdXRpbmcgZG9tYWluIHVudGlsIGEgcGVydGluZW50 IGV2ZW50IG9jY3Vycy4gKi8KQEAgLTEyMjYsMTEgKzEyNDQsMTIgQEAgdm9pZCB3YXRjaGRvZ19k b21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKQogICovCiBpbnQgdmNwdV90ZW1wb3Jhcnlf YWZmaW5pdHkoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBjcHUsIHVpbnQ4X3QgcmVhc29u KQogeworICAgIHN0cnVjdCBzY2hlZF91bml0ICp1bml0ID0gdi0+c2NoZWRfdW5pdDsKICAgICBz cGlubG9ja190ICpsb2NrOwogICAgIGludCByZXQgPSAtRUlOVkFMOwogICAgIGJvb2wgbWlncmF0 ZTsKIAotICAgIGxvY2sgPSB1bml0X3NjaGVkdWxlX2xvY2tfaXJxKHYtPnNjaGVkX3VuaXQpOwor ICAgIGxvY2sgPSB1bml0X3NjaGVkdWxlX2xvY2tfaXJxKHVuaXQpOwogCiAgICAgaWYgKCBjcHUg PT0gTlJfQ1BVUyApCiAgICAgewpAQCAtMTI0MCw3ICsxMjU5LDcgQEAgaW50IHZjcHVfdGVtcG9y YXJ5X2FmZmluaXR5KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgY3B1LCB1aW50OF90IHJl YXNvbikKICAgICAgICAgICAgIHYtPmFmZmluaXR5X2Jyb2tlbiAmPSB+cmVhc29uOwogICAgICAg ICB9CiAgICAgICAgIGlmICggIXJldCAmJiAhdi0+YWZmaW5pdHlfYnJva2VuICkKLSAgICAgICAg ICAgIHNjaGVkX3NldF9hZmZpbml0eSh2LCB2LT5jcHVfaGFyZF9hZmZpbml0eV9zYXZlZCwgTlVM TCk7CisgICAgICAgICAgICBzY2hlZF9zZXRfYWZmaW5pdHkodiwgdW5pdC0+Y3B1X2hhcmRfYWZm aW5pdHlfc2F2ZWQsIE5VTEwpOwogICAgIH0KICAgICBlbHNlIGlmICggY3B1IDwgbnJfY3B1X2lk cyApCiAgICAgewpAQCAtMTI1MSw3ICsxMjcwLDggQEAgaW50IHZjcHVfdGVtcG9yYXJ5X2FmZmlu aXR5KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgY3B1LCB1aW50OF90IHJlYXNvbikKICAg ICAgICAgewogICAgICAgICAgICAgaWYgKCAhdi0+YWZmaW5pdHlfYnJva2VuICkKICAgICAgICAg ICAgIHsKLSAgICAgICAgICAgICAgICBjcHVtYXNrX2NvcHkodi0+Y3B1X2hhcmRfYWZmaW5pdHlf c2F2ZWQsIHYtPmNwdV9oYXJkX2FmZmluaXR5KTsKKyAgICAgICAgICAgICAgICBjcHVtYXNrX2Nv cHkodW5pdC0+Y3B1X2hhcmRfYWZmaW5pdHlfc2F2ZWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuaXQtPmNwdV9oYXJkX2FmZmluaXR5KTsKICAgICAgICAgICAgICAgICBzY2hlZF9z ZXRfYWZmaW5pdHkodiwgY3B1bWFza19vZihjcHUpLCBOVUxMKTsKICAgICAgICAgICAgIH0KICAg ICAgICAgICAgIHYtPmFmZmluaXR5X2Jyb2tlbiB8PSByZWFzb247CkBAIC0xMjU5LDExICsxMjc5 LDExIEBAIGludCB2Y3B1X3RlbXBvcmFyeV9hZmZpbml0eShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWdu ZWQgaW50IGNwdSwgdWludDhfdCByZWFzb24pCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBtaWdy YXRlID0gIXJldCAmJiAhY3B1bWFza190ZXN0X2NwdSh2LT5wcm9jZXNzb3IsIHYtPmNwdV9oYXJk X2FmZmluaXR5KTsKKyAgICBtaWdyYXRlID0gIXJldCAmJiAhY3B1bWFza190ZXN0X2NwdSh2LT5w cm9jZXNzb3IsIHVuaXQtPmNwdV9oYXJkX2FmZmluaXR5KTsKICAgICBpZiAoIG1pZ3JhdGUgKQog ICAgICAgICB2Y3B1X21pZ3JhdGVfc3RhcnQodik7CiAKLSAgICB1bml0X3NjaGVkdWxlX3VubG9j a19pcnEobG9jaywgdi0+c2NoZWRfdW5pdCk7CisgICAgdW5pdF9zY2hlZHVsZV91bmxvY2tfaXJx KGxvY2ssIHVuaXQpOwogCiAgICAgaWYgKCBtaWdyYXRlICkKICAgICAgICAgdmNwdV9taWdyYXRl X2ZpbmlzaCh2KTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5oIGIveGVu L2luY2x1ZGUveGVuL3NjaGVkLWlmLmgKaW5kZXggYjhjYzM3OWUzYS4uYzMyMDg1NDUyNyAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmgKKysrIGIveGVuL2luY2x1ZGUveGVu L3NjaGVkLWlmLmgKQEAgLTQzOSwxMSArNDM5LDExIEBAIHN0YXRpYyBpbmxpbmUgY3B1bWFza190 KiBjcHVwb29sX2RvbWFpbl9jcHVtYXNrKHN0cnVjdCBkb21haW4gKmQpCiAgKiAqIFRoZSBoYXJk IGFmZmluaXR5IGlzIG5vdCBhIHN1YnNldCBvZiBzb2Z0IGFmZmluaXR5CiAgKiAqIFRoZXJlIGlz IGFuIG92ZXJsYXAgYmV0d2VlbiB0aGUgc29mdCBhbmQgaGFyZCBhZmZpbml0eSBtYXNrcwogICov Ci1zdGF0aWMgaW5saW5lIGludCBoYXNfc29mdF9hZmZpbml0eShjb25zdCBzdHJ1Y3QgdmNwdSAq dikKK3N0YXRpYyBpbmxpbmUgaW50IGhhc19zb2Z0X2FmZmluaXR5KGNvbnN0IHN0cnVjdCBzY2hl ZF91bml0ICp1bml0KQogewotICAgIHJldHVybiB2LT5zb2Z0X2FmZl9lZmZlY3RpdmUgJiYKLSAg ICAgICAgICAgIWNwdW1hc2tfc3Vic2V0KGNwdXBvb2xfZG9tYWluX2NwdW1hc2sodi0+ZG9tYWlu KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtPmNwdV9zb2Z0X2FmZmluaXR5KTsKKyAg ICByZXR1cm4gdW5pdC0+c29mdF9hZmZfZWZmZWN0aXZlICYmCisgICAgICAgICAgICFjcHVtYXNr X3N1YnNldChjcHVwb29sX2RvbWFpbl9jcHVtYXNrKHVuaXQtPmRvbWFpbiksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bml0LT5jcHVfc29mdF9hZmZpbml0eSk7CiB9CiAKIC8qCkBAIC00 NTMsMTcgKzQ1MywxOCBAQCBzdGF0aWMgaW5saW5lIGludCBoYXNfc29mdF9hZmZpbml0eShjb25z dCBzdHJ1Y3QgdmNwdSAqdikKICAqIHRvIGF2b2lkIHJ1bm5pbmcgYSB2Y3B1IHdoZXJlIGl0IHdv dWxkIGxpa2UsIGJ1dCBpcyBub3QgYWxsb3dlZCB0byEKICAqLwogc3RhdGljIGlubGluZSB2b2lk Ci1hZmZpbml0eV9iYWxhbmNlX2NwdW1hc2soY29uc3Qgc3RydWN0IHZjcHUgKnYsIGludCBzdGVw LCBjcHVtYXNrX3QgKm1hc2spCithZmZpbml0eV9iYWxhbmNlX2NwdW1hc2soY29uc3Qgc3RydWN0 IHNjaGVkX3VuaXQgKnVuaXQsIGludCBzdGVwLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNw dW1hc2tfdCAqbWFzaykKIHsKICAgICBpZiAoIHN0ZXAgPT0gQkFMQU5DRV9TT0ZUX0FGRklOSVRZ ICkKICAgICB7Ci0gICAgICAgIGNwdW1hc2tfYW5kKG1hc2ssIHYtPmNwdV9zb2Z0X2FmZmluaXR5 LCB2LT5jcHVfaGFyZF9hZmZpbml0eSk7CisgICAgICAgIGNwdW1hc2tfYW5kKG1hc2ssIHVuaXQt PmNwdV9zb2Z0X2FmZmluaXR5LCB1bml0LT5jcHVfaGFyZF9hZmZpbml0eSk7CiAKICAgICAgICAg aWYgKCB1bmxpa2VseShjcHVtYXNrX2VtcHR5KG1hc2spKSApCi0gICAgICAgICAgICBjcHVtYXNr X2NvcHkobWFzaywgdi0+Y3B1X2hhcmRfYWZmaW5pdHkpOworICAgICAgICAgICAgY3B1bWFza19j b3B5KG1hc2ssIHVuaXQtPmNwdV9oYXJkX2FmZmluaXR5KTsKICAgICB9CiAgICAgZWxzZSAvKiBz dGVwID09IEJBTEFOQ0VfSEFSRF9BRkZJTklUWSAqLwotICAgICAgICBjcHVtYXNrX2NvcHkobWFz aywgdi0+Y3B1X2hhcmRfYWZmaW5pdHkpOworICAgICAgICBjcHVtYXNrX2NvcHkobWFzaywgdW5p dC0+Y3B1X2hhcmRfYWZmaW5pdHkpOwogfQogCiB2b2lkIHNjaGVkX3JtX2NwdSh1bnNpZ25lZCBp bnQgY3B1KTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oIGIveGVuL2luY2x1 ZGUveGVuL3NjaGVkLmgKaW5kZXggODc4MDg4ODYwMy4uOTQ5YmI2YjY5NiAxMDA2NDQKLS0tIGEv eGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKQEAg LTIxMiw5ICsyMTIsNiBAQCBzdHJ1Y3QgdmNwdQogICAgIGJvb2wgICAgICAgICAgICAgaGNhbGxf Y29tcGF0OwogI2VuZGlmCiAKLSAgICAvKiBEb2VzIHNvZnQgYWZmaW5pdHkgYWN0dWFsbHkgcGxh eSBhIHJvbGUgKGdpdmVuIGhhcmQgYWZmaW5pdHkpPyAqLwotICAgIGJvb2wgICAgICAgICAgICAg c29mdF9hZmZfZWZmZWN0aXZlOwotCiAgICAgLyogVGhlIENQVSwgaWYgYW55LCB3aGljaCBpcyBo b2xkaW5nIG9udG8gdGhpcyBWQ1BVJ3Mgc3RhdGUuICovCiAjZGVmaW5lIFZDUFVfQ1BVX0NMRUFO ICh+MHUpCiAgICAgdW5zaWduZWQgaW50ICAgICBkaXJ0eV9jcHU7CkBAIC0yNDYsMTQgKzI0Myw2 IEBAIHN0cnVjdCB2Y3B1CiAgICAgZXZ0Y2huX3BvcnRfdCAgICB2aXJxX3RvX2V2dGNobltOUl9W SVJRU107CiAgICAgc3BpbmxvY2tfdCAgICAgICB2aXJxX2xvY2s7CiAKLSAgICAvKiBCaXRtYXNr IG9mIENQVXMgb24gd2hpY2ggdGhpcyBWQ1BVIG1heSBydW4uICovCi0gICAgY3B1bWFza192YXJf dCAgICBjcHVfaGFyZF9hZmZpbml0eTsKLSAgICAvKiBVc2VkIHRvIHNhdmUgYWZmaW5pdHkgZHVy aW5nIHRlbXBvcmFyeSBwaW5uaW5nLiAqLwotICAgIGNwdW1hc2tfdmFyX3QgICAgY3B1X2hhcmRf YWZmaW5pdHlfc2F2ZWQ7Ci0KLSAgICAvKiBCaXRtYXNrIG9mIENQVXMgb24gd2hpY2ggdGhpcyBW Q1BVIHByZWZlcnMgdG8gcnVuLiAqLwotICAgIGNwdW1hc2tfdmFyX3QgICAgY3B1X3NvZnRfYWZm aW5pdHk7Ci0KICAgICAvKiBUYXNrbGV0IGZvciBjb250aW51ZV9oeXBlcmNhbGxfb25fY3B1KCku ICovCiAgICAgc3RydWN0IHRhc2tsZXQgICBjb250aW51ZV9oeXBlcmNhbGxfdGFza2xldDsKIApA QCAtMjgwLDYgKzI2OSwxNSBAQCBzdHJ1Y3Qgc2NoZWRfdW5pdCB7CiAgICAgc3RydWN0IHNjaGVk X3VuaXQgICAgICpuZXh0X2luX2xpc3Q7CiAgICAgc3RydWN0IHNjaGVkX3Jlc291cmNlICpyZXM7 CiAgICAgdW5zaWduZWQgaW50ICAgICAgICAgICB1bml0X2lkOworCisgICAgLyogRG9lcyBzb2Z0 IGFmZmluaXR5IGFjdHVhbGx5IHBsYXkgYSByb2xlIChnaXZlbiBoYXJkIGFmZmluaXR5KT8gKi8K KyAgICBib29sICAgICAgICAgICAgICAgICAgIHNvZnRfYWZmX2VmZmVjdGl2ZTsKKyAgICAvKiBC aXRtYXNrIG9mIENQVXMgb24gd2hpY2ggdGhpcyBWQ1BVIG1heSBydW4uICovCisgICAgY3B1bWFz a192YXJfdCAgICAgICAgICBjcHVfaGFyZF9hZmZpbml0eTsKKyAgICAvKiBVc2VkIHRvIHNhdmUg YWZmaW5pdHkgZHVyaW5nIHRlbXBvcmFyeSBwaW5uaW5nLiAqLworICAgIGNwdW1hc2tfdmFyX3Qg ICAgICAgICAgY3B1X2hhcmRfYWZmaW5pdHlfc2F2ZWQ7CisgICAgLyogQml0bWFzayBvZiBDUFVz IG9uIHdoaWNoIHRoaXMgVkNQVSBwcmVmZXJzIHRvIHJ1bi4gKi8KKyAgICBjcHVtYXNrX3Zhcl90 ICAgICAgICAgIGNwdV9zb2Z0X2FmZmluaXR5OwogfTsKIAogI2RlZmluZSBmb3JfZWFjaF9zY2hl ZF91bml0KGQsIGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBA IC05OTYsNyArOTk0LDcgQEAgc3RhdGljIGlubGluZSBib29sIGhhcF9lbmFibGVkKGNvbnN0IHN0 cnVjdCBkb21haW4gKmQpCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNfaHdkb21fcGlubmVkX3ZjcHUo Y29uc3Qgc3RydWN0IHZjcHUgKnYpCiB7CiAgICAgcmV0dXJuIChpc19oYXJkd2FyZV9kb21haW4o di0+ZG9tYWluKSAmJgotICAgICAgICAgICAgY3B1bWFza193ZWlnaHQodi0+Y3B1X2hhcmRfYWZm aW5pdHkpID09IDEpOworICAgICAgICAgICAgY3B1bWFza193ZWlnaHQodi0+c2NoZWRfdW5pdC0+ Y3B1X2hhcmRfYWZmaW5pdHkpID09IDEpOwogfQogCiAjaWZkZWYgQ09ORklHX0hBU19QQVNTVEhS T1VHSAotLSAKMi4xNi40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVj dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1k ZXZlbA==