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=-9.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 7CAF2C46476 for ; Fri, 7 Jun 2019 09:23:56 +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 459FB208E3 for ; Fri, 7 Jun 2019 09:23:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 459FB208E3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.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 1hZB60-0002lW-Cw; Fri, 07 Jun 2019 09:23:36 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hZB5z-0002kL-F4 for xen-devel@lists.xenproject.org; Fri, 07 Jun 2019 09:23:35 +0000 X-Inumbo-ID: eac410b8-8905-11e9-8980-bc764e045a96 Received: from esa1.hc3370-68.iphmx.com (unknown [216.71.145.142]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id eac410b8-8905-11e9-8980-bc764e045a96; Fri, 07 Jun 2019 09:23:32 +0000 (UTC) Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=roger.pau@citrix.com; spf=SoftFail smtp.mailfrom=roger.pau@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of roger.pau@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible Received-SPF: SoftFail (esa1.hc3370-68.iphmx.com: domain of roger.pau@citrix.com is inclined to not designate 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 include:spf.citrix.com include:spf2.citrix.com include:ironport.citrix.com exists:%{i}._spf.mta.salesforce.com ~all" Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: ZpqqMApMI4KhGdAv5HMl2oryJO89M83ZTCyo61Gj54P4nrpkHZvCoxPvmKaiPitBJNMB3hp69E bUWIpmgQql5T2Mh4ZfSL2uhxNNW8pJabeAvCKrJOTaaMKXrc/8X4NzEwdk4IFmM7LDz/V6EP5y 4M4BapvhvWNHPgSEKVR5KPzdHo1M3WkDTfHjWiae/s2z5VktQxaAwh7H8oQiCnK1+qIGDXyPeK td3Ly9bMP7rYIS5/winI3fg48p3P/Sp//WaX0c6JrLtK0Q9OZHSsPVK4xxa4ni4M2gAkO7TQZF WgM= X-SBRS: -0.9 X-MesageID: 1451672 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.63,562,1557201600"; d="scan'208";a="1451672" From: Roger Pau Monne To: Date: Fri, 7 Jun 2019 11:22:28 +0200 Message-ID: <20190607092232.83179-10-roger.pau@citrix.com> X-Mailer: git-send-email 2.20.1 (Apple Git-117) In-Reply-To: <20190607092232.83179-1-roger.pau@citrix.com> References: <20190607092232.83179-1-roger.pau@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v3 09/13] pci: switch pci_conf_read32 to use pci_sbdf_t 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: Kevin Tian , Stefano Stabellini , Suravee Suthikulpanit , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , Brian Woods , Roger Pau Monne Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" VGhpcyByZWR1Y2VzIHRoZSBudW1iZXIgb2YgcGFyYW1ldGVycyBvZiB0aGUgZnVuY3Rpb24gdG8g dHdvLCBhbmQKc2ltcGxpZmllcyBzb21lIG9mIHRoZSBjYWxsaW5nIHNpdGVzLgoKU2lnbmVkLW9m Zi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci0tLQpDYzogSmFu IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNv b3BlcjNAY2l0cml4LmNvbT4KQ2M6IFdlaSBMaXUgPHdsQHhlbi5vcmc+CkNjOiBHZW9yZ2UgRHVu bGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmph Y2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5j b20+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkNj OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBUaW0gRGVl Z2FuIDx0aW1AeGVuLm9yZz4KQ2M6IFN1cmF2ZWUgU3V0aGlrdWxwYW5pdCA8c3VyYXZlZS5zdXRo aWt1bHBhbml0QGFtZC5jb20+CkNjOiBCcmlhbiBXb29kcyA8YnJpYW4ud29vZHNAYW1kLmNvbT4K Q2M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9j cHUvYW1kLmMgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrKy0tCiB4ZW4vYXJjaC94ODYvbW0u YyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L21zaS5jICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMjggKysrKysrLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4 Ni9vcHJvZmlsZS9vcF9tb2RlbF9hdGhsb24uYyAgICB8ICA2ICsrLS0KIHhlbi9hcmNoL3g4Ni94 ODZfNjQvbW1jb25mLWZhbTEwaC5jICAgICAgICB8ICA4ICsrKy0tCiB4ZW4vYXJjaC94ODYveDg2 XzY0L21tY29uZmlnLXNoYXJlZC5jICAgICAgfCAxMiArKysrLS0tLQogeGVuL2FyY2gveDg2L3g4 Nl82NC9wY2kuYyAgICAgICAgICAgICAgICAgIHwgMjcgKysrKysrKy0tLS0tLS0tLQogeGVuL2Ry aXZlcnMvY2hhci9laGNpLWRiZ3AuYyAgICAgICAgICAgICAgIHwgMjAgKysrKysrKy0tLS0tCiB4 ZW4vZHJpdmVycy9jaGFyL25zMTY1NTAuYyAgICAgICAgICAgICAgICAgfCAxOCArKysrKystLS0t LQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2RldGVjdC5jIHwgIDIgKy0KIHhl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMgICB8ICA0ICstLQogeGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMgICAgICAgICAgICAgIHwgMTUgKysrKy0tLS0tCiB4ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcXVpcmtzLmMgICAgICAgfCAzNiArKysrKysrKysrKyst LS0tLS0tLS0tCiB4ZW4vZHJpdmVycy9wY2kvcGNpLmMgICAgICAgICAgICAgICAgICAgICAgfCAg NCArLS0KIHhlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMgICAgICAgICAgICAgICAgICB8ICA2ICsr LS0KIHhlbi9kcml2ZXJzL3ZwY2kvbXNpeC5jICAgICAgICAgICAgICAgICAgICB8ICA2ICsrLS0K IHhlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jICAgICAgICAgICAgICAgICAgICB8ICA1ICsrLQogeGVu L2luY2x1ZGUveGVuL3BjaS5oICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKy0tCiAxOCBmaWxl cyBjaGFuZ2VkLCAxMDEgaW5zZXJ0aW9ucygrKSwgMTA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMgYi94ZW4vYXJjaC94ODYvY3B1L2FtZC5jCmluZGV4 IDNjMDY5MzkxZjQuLjM3ZjYwYzA4NjIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvYW1k LmMKKysrIGIveGVuL2FyY2gveDg2L2NwdS9hbWQuYwpAQCAtNDE3LDcgKzQxNyw4IEBAIHN0YXRp YyB2b2lkIGRpc2FibGVfYzFfcmFtcGluZyh2b2lkKQogCWludCBub2RlLCBucl9ub2RlczsKIAog CS8qIFJlYWQgdGhlIG51bWJlciBvZiBub2RlcyBmcm9tIHRoZSBmaXJzdCBOb3J0aGJyaWRnZS4g Ki8KLQlucl9ub2RlcyA9ICgocGNpX2NvbmZfcmVhZDMyKDAsIDAsIDB4MTgsIDB4MCwgMHg2MCk+ PjQpJjB4MDcpKzE7CisJbnJfbm9kZXMgPSAoKHBjaV9jb25mX3JlYWQzMihQQ0lfU0JERigwLCAw LCAweDE4LCAwKSwgMHg2MCkgPj4gNCkgJgorCQkgICAgMHgwNykgKyAxOwogCWZvciAobm9kZSA9 IDA7IG5vZGUgPCBucl9ub2Rlczsgbm9kZSsrKSB7CiAJCS8qIFBNTTc6IGJ1cz0wLCBkZXY9MHgx OCtub2RlLCBmdW5jdGlvbj0weDMsIHJlZ2lzdGVyPTB4ODcuICovCiAJCXBtbTcgPSBwY2lfY29u Zl9yZWFkOChQQ0lfU0JERigwLCAwLCAweDE4ICsgbm9kZSwgMyksIDB4ODcpOwpAQCAtNjk2LDgg KzY5Nyw4IEBAIHN0YXRpYyB2b2lkIGluaXRfYW1kKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIAog CWlmIChjLT54ODYgPT0gMHgxNiAmJiBjLT54ODZfbW9kZWwgPD0gMHhmKSB7CiAJCWlmIChjID09 ICZib290X2NwdV9kYXRhKSB7Ci0JCQlsID0gcGNpX2NvbmZfcmVhZDMyKDAsIDAsIDB4MTgsIDB4 MywgMHg1OCk7Ci0JCQloID0gcGNpX2NvbmZfcmVhZDMyKDAsIDAsIDB4MTgsIDB4MywgMHg1Yyk7 CisJCQlsID0gcGNpX2NvbmZfcmVhZDMyKFBDSV9TQkRGKDAsIDAsIDB4MTgsIDMpLCAweDU4KTsK KwkJCWggPSBwY2lfY29uZl9yZWFkMzIoUENJX1NCREYoMCwgMCwgMHgxOCwgMyksIDB4NWMpOwog CQkJaWYgKChsICYgMHgxZikgfCAoaCAmIDB4MSkpCiAJCQkJcHJpbnRrKEtFUk5fV0FSTklORwog CQkJCSAgICAgICAiQXBwbHlpbmcgd29ya2Fyb3VuZCBmb3IgZXJyYXR1bSA3OTI6ICVzJXMlc1xu IiwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMKaW5k ZXggZGYyYzAxMzBmMS4uZTY3MTE5ZGJlNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tLmMK KysrIGIveGVuL2FyY2gveDg2L21tLmMKQEAgLTU5NDksNyArNTk0OSw3IEBAIGNvbnN0IHN0cnVj dCBwbGF0Zm9ybV9iYWRfcGFnZSAqX19pbml0IGdldF9wbGF0Zm9ybV9iYWRwYWdlcyh1bnNpZ25l ZCBpbnQgKmFycmF5CiAgICAgfQogCiAgICAgKmFycmF5X3NpemUgPSBBUlJBWV9TSVpFKHNuYl9i YWRfcGFnZXMpOwotICAgIGlnZF9pZCA9IHBjaV9jb25mX3JlYWQzMigwLCAwLCAyLCAwLCAwKTsK KyAgICBpZ2RfaWQgPSBwY2lfY29uZl9yZWFkMzIoUENJX1NCREYoMCwgMCwgMiwgMCksIDApOwog ICAgIGlmICggSVNfU05CX0dGWChpZ2RfaWQpICkKICAgICAgICAgcmV0dXJuIHNuYl9iYWRfcGFn ZXM7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tc2kuYyBiL3hlbi9hcmNoL3g4Ni9tc2ku YwppbmRleCBlZDk4NjI2MWMzLi4zOTJjYmVjZmU0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv bXNpLmMKKysrIGIveGVuL2FyY2gveDg2L21zaS5jCkBAIC0xOTEsMTYgKzE5MSwxMyBAQCBzdGF0 aWMgYm9vbCByZWFkX21zaV9tc2coc3RydWN0IG1zaV9kZXNjICplbnRyeSwgc3RydWN0IG1zaV9t c2cgKm1zZykKICAgICB7CiAgICAgICAgIHN0cnVjdCBwY2lfZGV2ICpkZXYgPSBlbnRyeS0+ZGV2 OwogICAgICAgICBpbnQgcG9zID0gZW50cnktPm1zaV9hdHRyaWIucG9zOwotICAgICAgICB1MTYg ZGF0YSwgc2VnID0gZGV2LT5zZWc7Ci0gICAgICAgIHU4IGJ1cyA9IGRldi0+YnVzOwotICAgICAg ICB1OCBzbG90ID0gUENJX1NMT1QoZGV2LT5kZXZmbik7Ci0gICAgICAgIHU4IGZ1bmMgPSBQQ0lf RlVOQyhkZXYtPmRldmZuKTsKKyAgICAgICAgdWludDE2X3QgZGF0YTsKIAotICAgICAgICBtc2ct PmFkZHJlc3NfbG8gPSBwY2lfY29uZl9yZWFkMzIoc2VnLCBidXMsIHNsb3QsIGZ1bmMsCisgICAg ICAgIG1zZy0+YWRkcmVzc19sbyA9IHBjaV9jb25mX3JlYWQzMihkZXYtPnNiZGYsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2lfbG93ZXJfYWRkcmVzc19yZWco cG9zKSk7CiAgICAgICAgIGlmICggZW50cnktPm1zaV9hdHRyaWIuaXNfNjQgKQogICAgICAgICB7 Ci0gICAgICAgICAgICBtc2ctPmFkZHJlc3NfaGkgPSBwY2lfY29uZl9yZWFkMzIoc2VnLCBidXMs IHNsb3QsIGZ1bmMsCisgICAgICAgICAgICBtc2ctPmFkZHJlc3NfaGkgPSBwY2lfY29uZl9yZWFk MzIoZGV2LT5zYmRmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1zaV91cHBlcl9hZGRyZXNzX3JlZyhwb3MpKTsKICAgICAgICAgICAgIGRhdGEgPSBwY2lf Y29uZl9yZWFkMTYoZGV2LT5zYmRmLCBtc2lfZGF0YV9yZWcocG9zLCAxKSk7CiAgICAgICAgIH0K QEAgLTM5Niw3ICszOTMsNyBAQCBzdGF0aWMgYm9vbCBtc2lfc2V0X21hc2tfYml0KHN0cnVjdCBp cnFfZGVzYyAqZGVzYywgYm9vbCBob3N0LCBib29sIGd1ZXN0KQogICAgICAgICB7CiAgICAgICAg ICAgICB1MzIgbWFza19iaXRzOwogCi0gICAgICAgICAgICBtYXNrX2JpdHMgPSBwY2lfY29uZl9y ZWFkMzIoc2VnLCBidXMsIHNsb3QsIGZ1bmMsIGVudHJ5LT5tc2kubXBvcyk7CisgICAgICAgICAg ICBtYXNrX2JpdHMgPSBwY2lfY29uZl9yZWFkMzIocGRldi0+c2JkZiwgZW50cnktPm1zaS5tcG9z KTsKICAgICAgICAgICAgIG1hc2tfYml0cyAmPSB+KCh1MzIpMSA8PCBlbnRyeS0+bXNpX2F0dHJp Yi5lbnRyeV9ucik7CiAgICAgICAgICAgICBtYXNrX2JpdHMgfD0gKHUzMilmbGFnIDw8IGVudHJ5 LT5tc2lfYXR0cmliLmVudHJ5X25yOwogICAgICAgICAgICAgcGNpX2NvbmZfd3JpdGUzMihzZWcs IGJ1cywgc2xvdCwgZnVuYywgZW50cnktPm1zaS5tcG9zLCBtYXNrX2JpdHMpOwpAQCAtNDY1LDEw ICs0NjIsNyBAQCBzdGF0aWMgaW50IG1zaV9nZXRfbWFza19iaXQoY29uc3Qgc3RydWN0IG1zaV9k ZXNjICplbnRyeSkKICAgICBjYXNlIFBDSV9DQVBfSURfTVNJOgogICAgICAgICBpZiAoICFlbnRy eS0+bXNpX2F0dHJpYi5tYXNrYml0ICkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICByZXR1 cm4gKHBjaV9jb25mX3JlYWQzMihlbnRyeS0+ZGV2LT5zZWcsIGVudHJ5LT5kZXYtPmJ1cywKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QoZW50cnktPmRldi0+ZGV2Zm4p LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRlVOQyhlbnRyeS0+ZGV2LT5k ZXZmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5tc2kubXBvcykg Pj4KKyAgICAgICAgcmV0dXJuIChwY2lfY29uZl9yZWFkMzIoZW50cnktPmRldi0+c2JkZiwgZW50 cnktPm1zaS5tcG9zKSA+PgogICAgICAgICAgICAgICAgIGVudHJ5LT5tc2lfYXR0cmliLmVudHJ5 X25yKSAmIDE7CiAgICAgY2FzZSBQQ0lfQ0FQX0lEX01TSVg6CiAgICAgICAgIGlmICggdW5saWtl bHkoIW1zaXhfbWVtb3J5X2RlY29kZWQoZW50cnktPmRldiwKQEAgLTcyMyw3ICs3MTcsNyBAQCBz dGF0aWMgaW50IG1zaV9jYXBhYmlsaXR5X2luaXQoc3RydWN0IHBjaV9kZXYgKmRldiwKICAgICAg ICAgdTMyIG1hc2tiaXRzOwogCiAgICAgICAgIC8qIEFsbCBNU0lzIGFyZSB1bm1hc2tlZCBieSBk ZWZhdWx0LCBNYXNrIHRoZW0gYWxsICovCi0gICAgICAgIG1hc2tiaXRzID0gcGNpX2NvbmZfcmVh ZDMyKHNlZywgYnVzLCBzbG90LCBmdW5jLCBtcG9zKTsKKyAgICAgICAgbWFza2JpdHMgPSBwY2lf Y29uZl9yZWFkMzIoZGV2LT5zYmRmLCBtcG9zKTsKICAgICAgICAgbWFza2JpdHMgfD0gfih1MzIp MCA+PiAoMzIgLSBtYXh2ZWMpOwogICAgICAgICBwY2lfY29uZl93cml0ZTMyKHNlZywgYnVzLCBz bG90LCBmdW5jLCBtcG9zLCBtYXNrYml0cyk7CiAgICAgfQpAQCAtODA4LDcgKzgwMiw3IEBAIHN0 YXRpYyB1NjQgcmVhZF9wY2lfbWVtX2Jhcih1MTYgc2VnLCB1OCBidXMsIHU4IHNsb3QsIHU4IGZ1 bmMsIHU4IGJpciwgaW50IHZmKQogCiAgICAgaWYgKCBiaXIgPj0gbGltaXQgKQogICAgICAgICBy ZXR1cm4gMDsKLSAgICBhZGRyID0gcGNpX2NvbmZfcmVhZDMyKHNlZywgYnVzLCBzbG90LCBmdW5j LCBiYXNlICsgYmlyICogNCk7CisgICAgYWRkciA9IHBjaV9jb25mX3JlYWQzMihQQ0lfU0JERihz ZWcsIGJ1cywgc2xvdCwgZnVuYyksIGJhc2UgKyBiaXIgKiA0KTsKICAgICBpZiAoIChhZGRyICYg UENJX0JBU0VfQUREUkVTU19TUEFDRSkgPT0gUENJX0JBU0VfQUREUkVTU19TUEFDRV9JTyApCiAg ICAgICAgIHJldHVybiAwOwogICAgIGlmICggKGFkZHIgJiBQQ0lfQkFTRV9BRERSRVNTX01FTV9U WVBFX01BU0spID09IFBDSV9CQVNFX0FERFJFU1NfTUVNX1RZUEVfNjQgKQpAQCAtODE3LDcgKzgx MSw3IEBAIHN0YXRpYyB1NjQgcmVhZF9wY2lfbWVtX2Jhcih1MTYgc2VnLCB1OCBidXMsIHU4IHNs b3QsIHU4IGZ1bmMsIHU4IGJpciwgaW50IHZmKQogICAgICAgICBpZiAoICsrYmlyID49IGxpbWl0 ICkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gYWRkciArIGRpc3AgKwot ICAgICAgICAgICAgICAgKCh1NjQpcGNpX2NvbmZfcmVhZDMyKHNlZywgYnVzLCBzbG90LCBmdW5j LAorICAgICAgICAgICAgICAgKCh1NjQpcGNpX2NvbmZfcmVhZDMyKFBDSV9TQkRGKHNlZywgYnVz LCBzbG90LCBmdW5jKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNl ICsgYmlyICogNCkgPDwgMzIpOwogICAgIH0KICAgICByZXR1cm4gKGFkZHIgJiBQQ0lfQkFTRV9B RERSRVNTX01FTV9NQVNLKSArIGRpc3A7CkBAIC04ODYsOCArODgwLDcgQEAgc3RhdGljIGludCBt c2l4X2NhcGFiaWxpdHlfaW5pdChzdHJ1Y3QgcGNpX2RldiAqZGV2LAogICAgIH0KIAogICAgIC8q IExvY2F0ZSBNU0ktWCB0YWJsZSByZWdpb24gKi8KLSAgICB0YWJsZV9vZmZzZXQgPSBwY2lfY29u Zl9yZWFkMzIoc2VnLCBidXMsIHNsb3QsIGZ1bmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1zaXhfdGFibGVfb2Zmc2V0X3JlZyhwb3MpKTsKKyAgICB0YWJsZV9vZmZzZXQg PSBwY2lfY29uZl9yZWFkMzIoZGV2LT5zYmRmLCBtc2l4X3RhYmxlX29mZnNldF9yZWcocG9zKSk7 CiAgICAgYmlyID0gKHU4KSh0YWJsZV9vZmZzZXQgJiBQQ0lfTVNJWF9CSVJNQVNLKTsKICAgICB0 YWJsZV9vZmZzZXQgJj0gflBDSV9NU0lYX0JJUk1BU0s7CiAKQEAgLTkzMyw4ICs5MjYsNyBAQCBz dGF0aWMgaW50IG1zaXhfY2FwYWJpbGl0eV9pbml0KHN0cnVjdCBwY2lfZGV2ICpkZXYsCiAgICAg ICAgIFdBUk5fT04ocmFuZ2VzZXRfb3ZlcmxhcHNfcmFuZ2UobW1pb19yb19yYW5nZXMsIG1zaXgt PnRhYmxlLmZpcnN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1z aXgtPnRhYmxlLmxhc3QpKTsKIAotICAgICAgICBwYmFfb2Zmc2V0ID0gcGNpX2NvbmZfcmVhZDMy KHNlZywgYnVzLCBzbG90LCBmdW5jLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1zaXhfcGJhX29mZnNldF9yZWcocG9zKSk7CisgICAgICAgIHBiYV9vZmZzZXQgPSBwY2lf Y29uZl9yZWFkMzIoZGV2LT5zYmRmLCBtc2l4X3BiYV9vZmZzZXRfcmVnKHBvcykpOwogICAgICAg ICBiaXIgPSAodTgpKHBiYV9vZmZzZXQgJiBQQ0lfTVNJWF9CSVJNQVNLKTsKICAgICAgICAgcGJh X3BhZGRyID0gcmVhZF9wY2lfbWVtX2JhcihzZWcsIHBidXMsIHBzbG90LCBwZnVuYywgYmlyLCB2 Zik7CiAgICAgICAgIFdBUk5fT04oIXBiYV9wYWRkcik7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvb3Byb2ZpbGUvb3BfbW9kZWxfYXRobG9uLmMgYi94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvb3Bf bW9kZWxfYXRobG9uLmMKaW5kZXggM2Q2ZTI2ZjYzNi4uM2JmMGIwMjE0ZCAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L29wcm9maWxlL29wX21vZGVsX2F0aGxvbi5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9vcHJvZmlsZS9vcF9tb2RlbF9hdGhsb24uYwpAQCAtNDYzLDcgKzQ2Myw4IEBAIHN0YXRpYyBp bnQgX19pbml0IGluaXRfaWJzX25taSh2b2lkKQogCWZvciAoYnVzID0gMDsgYnVzIDwgMjU2OyBi dXMrKykgewogCQlmb3IgKGRldiA9IDA7IGRldiA8IDMyOyBkZXYrKykgewogCQkJZm9yIChmdW5j ID0gMDsgZnVuYyA8IDg7IGZ1bmMrKykgewotCQkJCWlkID0gcGNpX2NvbmZfcmVhZDMyKDAsIGJ1 cywgZGV2LCBmdW5jLCBQQ0lfVkVORE9SX0lEKTsKKwkJCQlpZCA9IHBjaV9jb25mX3JlYWQzMihQ Q0lfU0JERigwLCBidXMsIGRldiwgZnVuYyksCisJCQkJCQkgICAgIFBDSV9WRU5ET1JfSUQpOwog CiAJCQkJdmVuZG9yX2lkID0gaWQgJiAweGZmZmY7CiAJCQkJZGV2X2lkID0gKGlkID4+IDE2KSAm IDB4ZmZmZjsKQEAgLTQ3NCw3ICs0NzUsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBpbml0X2lic19u bWkodm9pZCkKIAkJCQkJcGNpX2NvbmZfd3JpdGUzMigwLCBidXMsIGRldiwgZnVuYywgSUJTQ1RM LAogCQkJCQkJSUJTQ1RMX0xWVE9GRlNFVFZBTCB8IEFQSUNfRUlMVlRfTFZUT0ZGX0lCUyk7CiAK LQkJCQkJdmFsdWUgPSBwY2lfY29uZl9yZWFkMzIoMCwgYnVzLCBkZXYsIGZ1bmMsIElCU0NUTCk7 CisJCQkJCXZhbHVlID0gcGNpX2NvbmZfcmVhZDMyKFBDSV9TQkRGKDAsIGJ1cywgZGV2LCBmdW5j KSwKKwkJCQkJCQkJSUJTQ1RMKTsKIAogCQkJCQlpZiAodmFsdWUgIT0gKElCU0NUTF9MVlRPRkZT RVRWQUwgfAogCQkJCQkJQVBJQ19FSUxWVF9MVlRPRkZfSUJTKSkgewpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L3g4Nl82NC9tbWNvbmYtZmFtMTBoLmMgYi94ZW4vYXJjaC94ODYveDg2XzY0L21t Y29uZi1mYW0xMGguYwppbmRleCBlZDBhY2I5OTY4Li5mOTk3Njg4YWQ0IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYveDg2XzY0L21tY29uZi1mYW0xMGguYworKysgYi94ZW4vYXJjaC94ODYveDg2 XzY0L21tY29uZi1mYW0xMGguYwpAQCAtNTIsNyArNTIsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQg Z2V0X2ZhbTEwaF9wY2lfbW1jb25mX2Jhc2Uodm9pZCkKIAogCQlidXMgPSBwY2lfcHJvYmVzW2ld LmJ1czsKIAkJc2xvdCA9IHBjaV9wcm9iZXNbaV0uc2xvdDsKLQkJaWQgPSBwY2lfY29uZl9yZWFk MzIoMCwgYnVzLCBzbG90LCAwLCBQQ0lfVkVORE9SX0lEKTsKKwkJaWQgPSBwY2lfY29uZl9yZWFk MzIoUENJX1NCREYoMCwgYnVzLCBzbG90LCAwKSwgUENJX1ZFTkRPUl9JRCk7CiAKIAkJdmVuZG9y ID0gaWQgJiAweGZmZmY7CiAJCWRldmljZSA9IChpZD4+MTYpICYgMHhmZmZmOwpAQCAtODMsMTIg KzgzLDE0IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBnZXRfZmFtMTBoX3BjaV9tbWNvbmZfYmFzZSh2 b2lkKQogCSAqIGFib3ZlIDRHCiAJICovCiAJZm9yIChoaV9tbWlvX251bSA9IGkgPSAwOyBpIDwg ODsgaSsrKSB7Ci0JCXZhbCA9IHBjaV9jb25mX3JlYWQzMigwLCBidXMsIHNsb3QsIDEsIDB4ODAg KyAoaSA8PCAzKSk7CisJCXZhbCA9IHBjaV9jb25mX3JlYWQzMihQQ0lfU0JERigwLCBidXMsIHNs b3QsIDEpLAorCQkJCSAgICAgIDB4ODAgKyAoaSA8PCAzKSk7CiAJCWlmICghKHZhbCAmIDMpKQog CQkJY29udGludWU7CiAKIAkJc3RhcnQgPSAodmFsICYgMHhmZmZmZmYwMCkgPDwgODsgLyogMzk6 MTYgb24gMzE6OCovCi0JCXZhbCA9IHBjaV9jb25mX3JlYWQzMigwLCBidXMsIHNsb3QsIDEsIDB4 ODQgKyAoaSA8PCAzKSk7CisJCXZhbCA9IHBjaV9jb25mX3JlYWQzMihQQ0lfU0JERigwLCBidXMs IHNsb3QsIDEpLAorCQkJCSAgICAgIDB4ODQgKyAoaSA8PCAzKSk7CiAJCWVuZCA9ICgodmFsICYg MHhmZmZmZmYwMCkgPDwgOCkgfCAweGZmZmY7IC8qIDM5OjE2IG9uIDMxOjgqLwogCiAJCWlmIChl bmQgPCB0b20yKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9tbWNvbmZpZy1zaGFy ZWQuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW1jb25maWctc2hhcmVkLmMKaW5kZXggOWQxZGI1 OTBkOS4uY2MwOGI1MmEzNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9tbWNvbmZp Zy1zaGFyZWQuYworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L21tY29uZmlnLXNoYXJlZC5jCkBA IC04OSw3ICs4OSw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIF9faW5pdCAqcGNpX21tY2ZnX2ludGVs Xzk0NSh2b2lkKQogCiAgICAgcGNpX21tY2ZnX2NvbmZpZ19udW0gPSAxOwogCi0gICAgcGNpZXhi YXIgPSBwY2lfY29uZl9yZWFkMzIoMCwgMCwgMCwgMCwgMHg0OCk7CisgICAgcGNpZXhiYXIgPSBw Y2lfY29uZl9yZWFkMzIoUENJX1NCREYoMCwgMCwgMCwgMCksIDB4NDgpOwogCiAgICAgLyogRW5h YmxlIGJpdCAqLwogICAgIGlmICghKHBjaWV4YmFyICYgMSkpCkBAIC0yMTMsMTQgKzIxMywxNCBA QCBzdGF0aWMgY29uc3QgY2hhciBfX2luaXQgKnBjaV9tbWNmZ19udmlkaWFfbWNwNTUodm9pZCkK ICAgICAgICAgdTMyIGwsIGV4dGNmZzsKICAgICAgICAgdTE2IHZlbmRvciwgZGV2aWNlOwogCi0g ICAgICAgIGwgPSBwY2lfY29uZl9yZWFkMzIoMCwgYnVzLCAwLCAwLCAwKTsKKyAgICAgICAgbCA9 IHBjaV9jb25mX3JlYWQzMihQQ0lfU0JERigwLCBidXMsIDAsIDApLCAwKTsKICAgICAgICAgdmVu ZG9yID0gbCAmIDB4ZmZmZjsKICAgICAgICAgZGV2aWNlID0gKGwgPj4gMTYpICYgMHhmZmZmOwog CiAgICAgICAgIGlmIChQQ0lfVkVORE9SX0lEX05WSURJQSAhPSB2ZW5kb3IgfHwgMHgwMzY5ICE9 IGRldmljZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGV4dGNmZyA9IHBjaV9j b25mX3JlYWQzMigwLCBidXMsIDAsIDAsIGV4dGNmZ19yZWdudW0pOworICAgICAgICBleHRjZmcg PSBwY2lfY29uZl9yZWFkMzIoUENJX1NCREYoMCwgYnVzLCAwLCAwKSwgZXh0Y2ZnX3JlZ251bSk7 CiAKICAgICAgICAgaWYgKGV4dGNmZyAmIGV4dGNmZ19lbmFibGVfbWFzaykKICAgICAgICAgICAg IGkrKzsKQEAgLTIzOSwxNCArMjM5LDE0IEBAIHN0YXRpYyBjb25zdCBjaGFyIF9faW5pdCAqcGNp X21tY2ZnX252aWRpYV9tY3A1NSh2b2lkKQogICAgICAgICB1MTYgdmVuZG9yLCBkZXZpY2U7CiAg ICAgICAgIGludCBzaXplX2luZGV4OwogCi0gICAgICAgIGwgPSBwY2lfY29uZl9yZWFkMzIoMCwg YnVzLCAwLCAwLCAwKTsKKyAgICAgICAgbCA9IHBjaV9jb25mX3JlYWQzMihQQ0lfU0JERigwLCBi dXMsIDAsIDApLCAwKTsKICAgICAgICAgdmVuZG9yID0gbCAmIDB4ZmZmZjsKICAgICAgICAgZGV2 aWNlID0gKGwgPj4gMTYpICYgMHhmZmZmOwogCiAgICAgICAgIGlmIChQQ0lfVkVORE9SX0lEX05W SURJQSAhPSB2ZW5kb3IgfHwgMHgwMzY5ICE9IGRldmljZSkKICAgICAgICAgICAgIGNvbnRpbnVl OwogCi0gICAgICAgIGV4dGNmZyA9IHBjaV9jb25mX3JlYWQzMigwLCBidXMsIDAsIDAsIGV4dGNm Z19yZWdudW0pOworICAgICAgICBleHRjZmcgPSBwY2lfY29uZl9yZWFkMzIoUENJX1NCREYoMCwg YnVzLCAwLCAwKSwgZXh0Y2ZnX3JlZ251bSk7CiAKICAgICAgICAgaWYgKCEoZXh0Y2ZnICYgZXh0 Y2ZnX2VuYWJsZV9tYXNrKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMzEyLDcgKzMxMiw3 IEBAIHN0YXRpYyBpbnQgX19pbml0IHBjaV9tbWNmZ19jaGVja19ob3N0YnJpZGdlKHZvaWQpCiAg ICAgZm9yIChpID0gMDsgIW5hbWUgJiYgaSA8IEFSUkFZX1NJWkUocGNpX21tY2ZnX3Byb2Jlcyk7 IGkrKykgewogICAgICAgICBidXMgPSAgcGNpX21tY2ZnX3Byb2Jlc1tpXS5idXM7CiAgICAgICAg IGRldmZuID0gcGNpX21tY2ZnX3Byb2Jlc1tpXS5kZXZmbjsKLSAgICAgICAgbCA9IHBjaV9jb25m X3JlYWQzMigwLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLCAwKTsKKyAg ICAgICAgbCA9IHBjaV9jb25mX3JlYWQzMihQQ0lfU0JERjMoMCwgYnVzLCBkZXZmbiksIDApOwog ICAgICAgICB2ZW5kb3IgPSBsICYgMHhmZmZmOwogICAgICAgICBkZXZpY2UgPSAobCA+PiAxNikg JiAweGZmZmY7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvcGNpLmMgYi94ZW4v YXJjaC94ODYveDg2XzY0L3BjaS5jCmluZGV4IGZlMzZiNjBjNTAuLmI4YjgyYTZmZTcgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvcGNpLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82 NC9wY2kuYwpAQCAtMzcsMjggKzM3LDIzIEBAIHVpbnQxNl90IHBjaV9jb25mX3JlYWQxNihwY2lf c2JkZl90IHNiZGYsIHVuc2lnbmVkIGludCByZWcpCiAgICAgcmV0dXJuIHBjaV9jb25mX3JlYWQo UENJX0NPTkZfQUREUkVTUyhzYmRmLCByZWcpLCByZWcgJiAyLCAyKTsKIH0KIAotI3VuZGVmIFBD SV9DT05GX0FERFJFU1MKLSNkZWZpbmUgUENJX0NPTkZfQUREUkVTUyhidXMsIGRldiwgZnVuYywg cmVnKSBcCi0gICAgKDB4ODAwMDAwMDAgfCAoYnVzIDw8IDE2KSB8IChkZXYgPDwgMTEpIHwgKGZ1 bmMgPDwgOCkgfCAocmVnICYgfjMpKQotCi11aW50MzJfdCBwY2lfY29uZl9yZWFkMzIoCi0gICAg dW5zaWduZWQgaW50IHNlZywgdW5zaWduZWQgaW50IGJ1cywgdW5zaWduZWQgaW50IGRldiwgdW5z aWduZWQgaW50IGZ1bmMsCi0gICAgdW5zaWduZWQgaW50IHJlZykKK3VpbnQzMl90IHBjaV9jb25m X3JlYWQzMihwY2lfc2JkZl90IHNiZGYsIHVuc2lnbmVkIGludCByZWcpCiB7Ci0gICAgdTMyIHZh bHVlOwotCi0gICAgaWYgKCBzZWcgfHwgcmVnID4gMjU1ICkKKyAgICBpZiAoIHNiZGYuc2VnIHx8 IHJlZyA+IDI1NSApCiAgICAgewotICAgICAgICBwY2lfbW1jZmdfcmVhZChzZWcsIGJ1cywgUENJ X0RFVkZOKGRldiwgZnVuYyksIHJlZywgNCwgJnZhbHVlKTsKKyAgICAgICAgdWludDMyX3QgdmFs dWU7CisKKyAgICAgICAgcGNpX21tY2ZnX3JlYWQoc2JkZi5zZWcsIHNiZGYuYnVzLCBzYmRmLmRl dmZuLCByZWcsIDQsICZ2YWx1ZSk7CiAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICB9Ci0gICAg ZWxzZQotICAgIHsKLSAgICAgICAgQlVHX09OKChidXMgPiAyNTUpIHx8IChkZXYgPiAzMSkgfHwg KGZ1bmMgPiA3KSk7Ci0gICAgICAgIHJldHVybiBwY2lfY29uZl9yZWFkKFBDSV9DT05GX0FERFJF U1MoYnVzLCBkZXYsIGZ1bmMsIHJlZyksIDAsIDQpOwotICAgIH0KKworICAgIHJldHVybiBwY2lf Y29uZl9yZWFkKFBDSV9DT05GX0FERFJFU1Moc2JkZiwgcmVnKSwgMCwgNCk7CiB9CiAKKyN1bmRl ZiBQQ0lfQ09ORl9BRERSRVNTCisjZGVmaW5lIFBDSV9DT05GX0FERFJFU1MoYnVzLCBkZXYsIGZ1 bmMsIHJlZykgXAorICAgICgweDgwMDAwMDAwIHwgKGJ1cyA8PCAxNikgfCAoZGV2IDw8IDExKSB8 IChmdW5jIDw8IDgpIHwgKHJlZyAmIH4zKSkKKwogdm9pZCBwY2lfY29uZl93cml0ZTgoCiAgICAg dW5zaWduZWQgaW50IHNlZywgdW5zaWduZWQgaW50IGJ1cywgdW5zaWduZWQgaW50IGRldiwgdW5z aWduZWQgaW50IGZ1bmMsCiAgICAgdW5zaWduZWQgaW50IHJlZywgdWludDhfdCBkYXRhKQpkaWZm IC0tZ2l0IGEveGVuL2RyaXZlcnMvY2hhci9laGNpLWRiZ3AuYyBiL3hlbi9kcml2ZXJzL2NoYXIv ZWhjaS1kYmdwLmMKaW5kZXggNjQyNThkYTJkYy4uOWI5MDI1ZmIzMyAxMDA2NDQKLS0tIGEveGVu L2RyaXZlcnMvY2hhci9laGNpLWRiZ3AuYworKysgYi94ZW4vZHJpdmVycy9jaGFyL2VoY2ktZGJn cC5jCkBAIC02ODIsNyArNjgyLDggQEAgc3RhdGljIGludCBkYmdwX2NvbnRyb2xfbXNnKHN0cnVj dCBlaGNpX2RiZ3AgKmRiZ3AsIHVuc2lnbmVkIGludCBkZXZudW0sCiAKIHN0YXRpYyB1bnNpZ25l ZCBpbnQgX19pbml0IF9fZmluZF9kYmdwKHU4IGJ1cywgdTggc2xvdCwgdTggZnVuYykKIHsKLSAg ICB1MzIgY2xhc3MgPSBwY2lfY29uZl9yZWFkMzIoMCwgYnVzLCBzbG90LCBmdW5jLCBQQ0lfQ0xB U1NfUkVWSVNJT04pOworICAgIHVpbnQzMl90IGNsYXNzID0gcGNpX2NvbmZfcmVhZDMyKFBDSV9T QkRGKDAsIGJ1cywgc2xvdCwgZnVuYyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUENJX0NMQVNTX1JFVklTSU9OKTsKIAogICAgIGlmICggKGNsYXNzID4+IDgpICE9IFBD SV9DTEFTU19TRVJJQUxfVVNCX0VIQ0kgKQogICAgICAgICByZXR1cm4gMDsKQEAgLTEwMDYsNyAr MTAwNyw4IEBAIHN0YXRpYyBzZXRfZGVidWdfcG9ydF90IF9fcmVhZF9tb3N0bHkgc2V0X2RlYnVn X3BvcnQgPSBkZWZhdWx0X3NldF9kZWJ1Z19wb3J0OwogCiBzdGF0aWMgdm9pZCBudmlkaWFfc2V0 X2RlYnVnX3BvcnQoc3RydWN0IGVoY2lfZGJncCAqZGJncCwgdW5zaWduZWQgaW50IHBvcnQpCiB7 Ci0gICAgdTMyIGR3b3JkID0gcGNpX2NvbmZfcmVhZDMyKDAsIGRiZ3AtPmJ1cywgZGJncC0+c2xv dCwgZGJncC0+ZnVuYywgMHg3NCk7CisgICAgdWludDMyX3QgZHdvcmQgPSBwY2lfY29uZl9yZWFk MzIoUENJX1NCREYoMCwgZGJncC0+YnVzLCBkYmdwLT5zbG90LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiZ3AtPmZ1bmMpLCAweDc0KTsKIAogICAgIGR3 b3JkICY9IH4oMHgwZiA8PCAxMik7CiAgICAgZHdvcmQgfD0gKHBvcnQgJiAweDBmKSA8PCAxMjsK QEAgLTEwMzksNyArMTA0MSw4IEBAIHN0YXRpYyB2b2lkIGVoY2lfZGJncF9iaW9zX2hhbmRvZmYo c3RydWN0IGVoY2lfZGJncCAqZGJncCwgdTMyIGhjY19wYXJhbXMpCiAgICAgaWYgKCAhb2Zmc2V0 ICkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2FwID0gcGNpX2NvbmZfcmVhZDMyKDAsIGRiZ3At PmJ1cywgZGJncC0+c2xvdCwgZGJncC0+ZnVuYywgb2Zmc2V0KTsKKyAgICBjYXAgPSBwY2lfY29u Zl9yZWFkMzIoUENJX1NCREYoMCwgZGJncC0+YnVzLCBkYmdwLT5zbG90LCBkYmdwLT5mdW5jKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0KTsKICAgICBkYmdwX3ByaW50aygiZGJn cDogRUhDSSBCSU9TIHN0YXRlICUwOHhcbiIsIGNhcCk7CiAKICAgICBpZiAoIChjYXAgJiAweGZm KSA9PSAxICYmIChjYXAgJiBFSENJX1VTQkxFR1NVUF9CSU9TKSApCkBAIC0xMDU0LDcgKzEwNTcs OCBAQCBzdGF0aWMgdm9pZCBlaGNpX2RiZ3BfYmlvc19oYW5kb2ZmKHN0cnVjdCBlaGNpX2RiZ3Ag KmRiZ3AsIHUzMiBoY2NfcGFyYW1zKQogICAgIHsKICAgICAgICAgbWRlbGF5KDEwKTsKICAgICAg ICAgbXNlYyAtPSAxMDsKLSAgICAgICAgY2FwID0gcGNpX2NvbmZfcmVhZDMyKDAsIGRiZ3AtPmJ1 cywgZGJncC0+c2xvdCwgZGJncC0+ZnVuYywgb2Zmc2V0KTsKKyAgICAgICAgY2FwID0gcGNpX2Nv bmZfcmVhZDMyKFBDSV9TQkRGKDAsIGRiZ3AtPmJ1cywgZGJncC0+c2xvdCwgZGJncC0+ZnVuYyks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQpOwogICAgIH0KIAogICAgIGlm ICggY2FwICYgRUhDSV9VU0JMRUdTVVBfQklPUyApCkBAIC0xMzA3LDcgKzEzMTEsNyBAQCBzdGF0 aWMgdm9pZCBfX2luaXQgZWhjaV9kYmdwX2luaXRfcHJlaXJxKHN0cnVjdCBzZXJpYWxfcG9ydCAq cG9ydCkKICAgICB1MzIgZGVidWdfcG9ydCwgb2Zmc2V0OwogICAgIHZvaWQgX19pb21lbSAqZWhj aV9iYXI7CiAKLSAgICBkZWJ1Z19wb3J0ID0gcGNpX2NvbmZfcmVhZDMyKDAsIGRiZ3AtPmJ1cywg ZGJncC0+c2xvdCwgZGJncC0+ZnVuYywKKyAgICBkZWJ1Z19wb3J0ID0gcGNpX2NvbmZfcmVhZDMy KFBDSV9TQkRGKDAsIGRiZ3AtPmJ1cywgZGJncC0+c2xvdCwgZGJncC0+ZnVuYyksCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYmdwLT5jYXApOwogICAgIG9mZnNldCA9IChkZWJ1 Z19wb3J0ID4+IDE2KSAmIDB4ZmZmOwogCkBAIC0xNTA0LDcgKzE1MDgsNyBAQCB2b2lkIF9faW5p dCBlaGNpX2RiZ3BfaW5pdCh2b2lkKQogICAgIGVsc2UKICAgICAgICAgcmV0dXJuOwogCi0gICAg ZGVidWdfcG9ydCA9IHBjaV9jb25mX3JlYWQzMigwLCBkYmdwLT5idXMsIGRiZ3AtPnNsb3QsIGRi Z3AtPmZ1bmMsCisgICAgZGVidWdfcG9ydCA9IHBjaV9jb25mX3JlYWQzMihQQ0lfU0JERigwLCBk YmdwLT5idXMsIGRiZ3AtPnNsb3QsIGRiZ3AtPmZ1bmMpLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGJncC0+Y2FwKTsKICAgICBkYmdwLT5iYXIgPSAoZGVidWdfcG9ydCA+PiAy OSkgJiAweDc7CiAgICAgZGJncC0+YmFyID0gKChkYmdwLT5iYXIgLSAxKSAqIDQpICsgUENJX0JB U0VfQUREUkVTU18wOwpAQCAtMTUxNiw4ICsxNTIwLDggQEAgdm9pZCBfX2luaXQgZWhjaV9kYmdw X2luaXQodm9pZCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGRiZ3AtPmJhcl92YWwg PSBiYXJfdmFsID0gcGNpX2NvbmZfcmVhZDMyKDAsIGRiZ3AtPmJ1cywgZGJncC0+c2xvdCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYmdwLT5mdW5jLCBk YmdwLT5iYXIpOworICAgIGRiZ3AtPmJhcl92YWwgPSBiYXJfdmFsID0gcGNpX2NvbmZfcmVhZDMy KFBDSV9TQkRGKDAsIGRiZ3AtPmJ1cywgZGJncC0+c2xvdCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYmdwLT5mdW5jKSwgZGJncC0+YmFy KTsKICAgICBkYmdwX3ByaW50aygiYmFyX3ZhbDogJTA4eFxuIiwgYmFyX3ZhbCk7CiAgICAgaWYg KCBiYXJfdmFsICYgflBDSV9CQVNFX0FERFJFU1NfTUVNX01BU0sgKQogICAgIHsKZGlmZiAtLWdp dCBhL3hlbi9kcml2ZXJzL2NoYXIvbnMxNjU1MC5jIGIveGVuL2RyaXZlcnMvY2hhci9uczE2NTUw LmMKaW5kZXggOTljMTI1NGNhYy4uZmU3MTQwNmNjMSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMv Y2hhci9uczE2NTUwLmMKKysrIGIveGVuL2RyaXZlcnMvY2hhci9uczE2NTUwLmMKQEAgLTExMTIs MjcgKzExMTIsMjggQEAgcGNpX3VhcnRfY29uZmlnKHN0cnVjdCBuczE2NTUwICp1YXJ0LCBib29s X3Qgc2tpcF9hbXQsIHVuc2lnbmVkIGludCBpZHgpCiAgICAgICAgICAgICAgICAgfQogCiAgICAg ICAgICAgICAgICAgdWFydC0+aW9fYmFzZSA9IDA7Ci0gICAgICAgICAgICAgICAgYmFyID0gcGNp X2NvbmZfcmVhZDMyKDAsIGIsIGQsIGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBDSV9CQVNFX0FERFJFU1NfMCArIGJhcl9pZHgqNCk7CisgICAgICAgICAgICAgICAg YmFyID0gcGNpX2NvbmZfcmVhZDMyKFBDSV9TQkRGKDAsIGIsIGQsIGYpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQkFTRV9BRERSRVNTXzAgKyBiYXJfaWR4ICog NCk7CiAKICAgICAgICAgICAgICAgICAvKiBNTUlPIGJhc2VkICovCiAgICAgICAgICAgICAgICAg aWYgKCBwYXJhbS0+bW1pbyAmJiAhKGJhciAmIFBDSV9CQVNFX0FERFJFU1NfU1BBQ0VfSU8pICkK ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHBjaV9jb25mX3dyaXRlMzIo MCwgYiwgZCwgZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQkFT RV9BRERSRVNTXzAgKyBiYXJfaWR4KjQsIH4wdSk7Ci0gICAgICAgICAgICAgICAgICAgIGxlbiA9 IHBjaV9jb25mX3JlYWQzMigwLCBiLCBkLCBmLCBQQ0lfQkFTRV9BRERSRVNTXzAgKyBiYXJfaWR4 KjQpOworICAgICAgICAgICAgICAgICAgICBsZW4gPSBwY2lfY29uZl9yZWFkMzIoUENJX1NCREYo MCwgYiwgZCwgZiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ Q0lfQkFTRV9BRERSRVNTXzAgKyBiYXJfaWR4ICogNCk7CiAgICAgICAgICAgICAgICAgICAgIHBj aV9jb25mX3dyaXRlMzIoMCwgYiwgZCwgZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQQ0lfQkFTRV9BRERSRVNTXzAgKyBiYXJfaWR4KjQsIGJhcik7CiAKICAgICAgICAg ICAgICAgICAgICAgLyogSGFuZGxlIDY0IGJpdCBCQVIgaWYgZm91bmQgKi8KICAgICAgICAgICAg ICAgICAgICAgaWYgKCBiYXIgJiBQQ0lfQkFTRV9BRERSRVNTX01FTV9UWVBFXzY0ICkKICAgICAg ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgYmFyXzY0ID0gcGNpX2Nv bmZfcmVhZDMyKDAsIGIsIGQsIGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBDSV9CQVNFX0FERFJFU1NfMCArIChiYXJfaWR4KzEpKjQpOworICAgICAgICAgICAgICAg ICAgICAgICAgYmFyXzY0ID0gcGNpX2NvbmZfcmVhZDMyKFBDSV9TQkRGKDAsIGIsIGQsIGYpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQkFTRV9BRERSRVNTXzAg KyAoYmFyX2lkeCArIDEpICogNCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBwY2lfY29uZl93 cml0ZTMyKDAsIGIsIGQsIGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ Q0lfQkFTRV9BRERSRVNTXzAgKyAoYmFyX2lkeCsxKSo0LCB+MHUpOwotICAgICAgICAgICAgICAg ICAgICAgICAgbGVuXzY0ID0gcGNpX2NvbmZfcmVhZDMyKDAsIGIsIGQsIGYsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQkFTRV9BRERSRVNTXzAgKyAoYmFyX2lkeCsx KSo0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbl82NCA9IHBjaV9jb25mX3JlYWQzMihQ Q0lfU0JERigwLCBiLCBkLCBmKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBDSV9CQVNFX0FERFJFU1NfMCArIChiYXJfaWR4ICsgMSkgKiA0KTsKICAgICAgICAgICAgICAg ICAgICAgICAgIHBjaV9jb25mX3dyaXRlMzIoMCwgYiwgZCwgZiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBDSV9CQVNFX0FERFJFU1NfMCArIChiYXJfaWR4KzEpKjQsIGJh cl82NCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBzaXplICA9ICgodTY0KX4wIDw8IDMyKSB8 IFBDSV9CQVNFX0FERFJFU1NfTUVNX01BU0s7CkBAIC0xMTQ5LDcgKzExNTAsOCBAQCBwY2lfdWFy dF9jb25maWcoc3RydWN0IG5zMTY1NTAgKnVhcnQsIGJvb2xfdCBza2lwX2FtdCwgdW5zaWduZWQg aW50IGlkeCkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHBjaV9jb25m X3dyaXRlMzIoMCwgYiwgZCwgZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQQ0lfQkFTRV9BRERSRVNTXzAgKyBiYXJfaWR4KjQsIH4wdSk7Ci0gICAgICAgICAgICAgICAg ICAgIGxlbiA9IHBjaV9jb25mX3JlYWQzMigwLCBiLCBkLCBmLCBQQ0lfQkFTRV9BRERSRVNTXzAp OworICAgICAgICAgICAgICAgICAgICBsZW4gPSBwY2lfY29uZl9yZWFkMzIoUENJX1NCREYoMCwg YiwgZCwgZiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lf QkFTRV9BRERSRVNTXzApOwogICAgICAgICAgICAgICAgICAgICBwY2lfY29uZl93cml0ZTMyKDAs IGIsIGQsIGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0JBU0Vf QUREUkVTU18wICsgYmFyX2lkeCo0LCBiYXIpOwogICAgICAgICAgICAgICAgICAgICBzaXplID0g bGVuICYgUENJX0JBU0VfQUREUkVTU19JT19NQVNLOwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvYW1kL2lvbW11X2RldGVjdC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv YW1kL2lvbW11X2RldGVjdC5jCmluZGV4IDNjNWQ0ZGUxYTMuLjA2OWRmMTU2ZGUgMTAwNjQ0Ci0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9kZXRlY3QuYworKysgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfZGV0ZWN0LmMKQEAgLTQ4LDcgKzQ4LDcgQEAg c3RhdGljIGludCBfX2luaXQgZ2V0X2lvbW11X2NhcGFiaWxpdGllcygKIHsKICAgICB1OCB0eXBl OwogCi0gICAgaW9tbXUtPmNhcC5oZWFkZXIgPSBwY2lfY29uZl9yZWFkMzIoc2VnLCBidXMsIGRl diwgZnVuYywgY2FwX3B0cik7CisgICAgaW9tbXUtPmNhcC5oZWFkZXIgPSBwY2lfY29uZl9yZWFk MzIoUENJX1NCREYoc2VnLCBidXMsIGRldiwgZnVuYyksIGNhcF9wdHIpOwogICAgIHR5cGUgPSBn ZXRfZmllbGRfZnJvbV9yZWdfdTMyKGlvbW11LT5jYXAuaGVhZGVyLCBQQ0lfQ0FQX1RZUEVfTUFT SywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQ0FQX1RZUEVfU0hJRlQp OwogCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5j IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYwppbmRleCAxYjNlN2Rl MTBkLi42MDgzZDUxYjkxIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv aW9tbXVfaW5pdC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0 LmMKQEAgLTg0NCw3ICs4NDQsNyBAQCBzdGF0aWMgdm9pZCBhbWRfaW9tbXVfZXJyYXR1bV83NDZf d29ya2Fyb3VuZChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKICAgICAgICAgcmV0dXJuOwogCiAg ICAgcGNpX2NvbmZfd3JpdGUzMihpb21tdS0+c2VnLCBidXMsIGRldiwgZnVuYywgMHhmMCwgMHg5 MCk7Ci0gICAgdmFsdWUgPSBwY2lfY29uZl9yZWFkMzIoaW9tbXUtPnNlZywgYnVzLCBkZXYsIGZ1 bmMsIDB4ZjQpOworICAgIHZhbHVlID0gcGNpX2NvbmZfcmVhZDMyKFBDSV9TQkRGMihpb21tdS0+ c2VnLCBpb21tdS0+YmRmKSwgMHhmNCk7CiAKICAgICBpZiAoIHZhbHVlICYgKDEgPDwgMikgKQog ICAgICAgICByZXR1cm47CkBAIC0xMjMxLDcgKzEyMzEsNyBAQCBzdGF0aWMgYm9vbF90IF9faW5p dCBhbWRfc3A1MTAwX2VycmF0dW0yOCh2b2lkKQogCiAgICAgZm9yIChidXMgPSAwOyBidXMgPCAy NTY7IGJ1cysrKQogICAgIHsKLSAgICAgICAgaWQgPSBwY2lfY29uZl9yZWFkMzIoMCwgYnVzLCAw eDE0LCAwLCBQQ0lfVkVORE9SX0lEKTsKKyAgICAgICAgaWQgPSBwY2lfY29uZl9yZWFkMzIoUENJ X1NCREYoMCwgYnVzLCAweDE0LCAwKSwgUENJX1ZFTkRPUl9JRCk7CiAKICAgICAgICAgdmVuZG9y X2lkID0gaWQgJiAweGZmZmY7CiAgICAgICAgIGRldl9pZCA9IChpZCA+PiAxNikgJiAweGZmZmY7 CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3BjaS5jCmluZGV4IDcwMzA1NmY3YjkuLjgwODg3YWY2NmMgMTAwNjQ0Ci0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3BjaS5jCkBAIC02MzIsOCArNjMyLDcgQEAgdW5zaWduZWQgaW50IHBjaV9zaXplX21l bV9iYXIocGNpX3NiZGZfdCBzYmRmLCB1bnNpZ25lZCBpbnQgcG9zLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDY0X3QgKnBhZGRyLCB1aW50NjRfdCAqcHNpemUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7Ci0gICAgdWludDMy X3QgaGkgPSAwLCBiYXIgPSBwY2lfY29uZl9yZWFkMzIoc2JkZi5zZWcsIHNiZGYuYnVzLCBzYmRm LmRldiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYmRmLmZu LCBwb3MpOworICAgIHVpbnQzMl90IGhpID0gMCwgYmFyID0gcGNpX2NvbmZfcmVhZDMyKHNiZGYs IHBvcyk7CiAgICAgdWludDY0X3Qgc2l6ZTsKICAgICBib29sIGlzNjRiaXRzID0gIShmbGFncyAm IFBDSV9CQVJfUk9NKSAmJgogICAgICAgICAoYmFyICYgUENJX0JBU0VfQUREUkVTU19NRU1fVFlQ RV9NQVNLKSA9PSBQQ0lfQkFTRV9BRERSRVNTX01FTV9UWVBFXzY0OwpAQCAtNjU1LDE1ICs2NTQs MTMgQEAgdW5zaWduZWQgaW50IHBjaV9zaXplX21lbV9iYXIocGNpX3NiZGZfdCBzYmRmLCB1bnNp Z25lZCBpbnQgcG9zLAogICAgICAgICAgICAgKnBzaXplID0gMDsKICAgICAgICAgICAgIHJldHVy biAxOwogICAgICAgICB9Ci0gICAgICAgIGhpID0gcGNpX2NvbmZfcmVhZDMyKHNiZGYuc2VnLCBz YmRmLmJ1cywgc2JkZi5kZXYsIHNiZGYuZm4sIHBvcyArIDQpOworICAgICAgICBoaSA9IHBjaV9j b25mX3JlYWQzMihzYmRmLCBwb3MgKyA0KTsKICAgICAgICAgcGNpX2NvbmZfd3JpdGUzMihzYmRm LnNlZywgc2JkZi5idXMsIHNiZGYuZGV2LCBzYmRmLmZuLCBwb3MgKyA0LCB+MCk7CiAgICAgfQot ICAgIHNpemUgPSBwY2lfY29uZl9yZWFkMzIoc2JkZi5zZWcsIHNiZGYuYnVzLCBzYmRmLmRldiwg c2JkZi5mbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcykgJiBtYXNrOworICAgIHNp emUgPSBwY2lfY29uZl9yZWFkMzIoc2JkZiwgcG9zKSAmIG1hc2s7CiAgICAgaWYgKCBpczY0Yml0 cyApCiAgICAgewotICAgICAgICBzaXplIHw9ICh1aW50NjRfdClwY2lfY29uZl9yZWFkMzIoc2Jk Zi5zZWcsIHNiZGYuYnVzLCBzYmRmLmRldiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNiZGYuZm4sIHBvcyArIDQpIDw8IDMyOworICAgICAgICBzaXplIHw9ICh1 aW50NjRfdClwY2lfY29uZl9yZWFkMzIoc2JkZiwgcG9zICsgNCkgPDwgMzI7CiAgICAgICAgIHBj aV9jb25mX3dyaXRlMzIoc2JkZi5zZWcsIHNiZGYuYnVzLCBzYmRmLmRldiwgc2JkZi5mbiwgcG9z ICsgNCwgaGkpOwogICAgIH0KICAgICBlbHNlIGlmICggc2l6ZSApCkBAIC03NTAsNyArNzQ3LDcg QEAgaW50IHBjaV9hZGRfZGV2aWNlKHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4sCiAgICAgICAg ICAgICBmb3IgKCBpID0gMDsgaSA8IFBDSV9TUklPVl9OVU1fQkFSUzsgKQogICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBpZHggPSBwb3MgKyBQQ0lfU1JJT1ZfQkFS ICsgaSAqIDQ7Ci0gICAgICAgICAgICAgICAgdTMyIGJhciA9IHBjaV9jb25mX3JlYWQzMihzZWcs IGJ1cywgc2xvdCwgZnVuYywgaWR4KTsKKyAgICAgICAgICAgICAgICB1MzIgYmFyID0gcGNpX2Nv bmZfcmVhZDMyKHBkZXYtPnNiZGYsIGlkeCk7CiAgICAgICAgICAgICAgICAgcGNpX3NiZGZfdCBz YmRmID0gUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbik7CiAKICAgICAgICAgICAgICAgICBpZiAo IChiYXIgJiBQQ0lfQkFTRV9BRERSRVNTX1NQQUNFKSA9PQpAQCAtMTAwMiw3ICs5OTksNyBAQCBi b29sX3QgX19pbml0IHBjaV9kZXZpY2VfZGV0ZWN0KHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2LCB1 OCBmdW5jKQogewogICAgIHUzMiB2ZW5kb3I7CiAKLSAgICB2ZW5kb3IgPSBwY2lfY29uZl9yZWFk MzIoc2VnLCBidXMsIGRldiwgZnVuYywgUENJX1ZFTkRPUl9JRCk7CisgICAgdmVuZG9yID0gcGNp X2NvbmZfcmVhZDMyKFBDSV9TQkRGKHNlZywgYnVzLCBkZXYsIGZ1bmMpLCBQQ0lfVkVORE9SX0lE KTsKICAgICAvKiBzb21lIGJyb2tlbiBib2FyZHMgcmV0dXJuIDAgb3IgfjAgaWYgYSBzbG90IGlz IGVtcHR5OiAqLwogICAgIGlmICggKHZlbmRvciA9PSAweGZmZmZmZmZmKSB8fCAodmVuZG9yID09 IDB4MDAwMDAwMDApIHx8CiAgICAgICAgICAodmVuZG9yID09IDB4MDAwMGZmZmYpIHx8ICh2ZW5k b3IgPT0gMHhmZmZmMDAwMCkgKQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv dnRkL3F1aXJrcy5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3F1aXJrcy5jCmluZGV4 IDQ3NTk3Yzk2MDAuLjI4ZTk1OTcwMTQgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9xdWlya3MuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcXVpcmtz LmMKQEAgLTEyOCw5ICsxMjgsMTEgQEAgc3RhdGljIHZvaWQgX19pbml0IG1hcF9pZ2RfcmVnKHZv aWQpCiAgICAgaWYgKCBpZ2RfcmVnX3ZhICkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWdkX21t aW8gICA9IHBjaV9jb25mX3JlYWQzMigwLCAwLCBJR0RfREVWLCAwLCBQQ0lfQkFTRV9BRERSRVNT XzEpOworICAgIGlnZF9tbWlvICAgPSBwY2lfY29uZl9yZWFkMzIoUENJX1NCREYoMCwgMCwgSUdE X0RFViwgMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQkFTRV9BRERS RVNTXzEpOwogICAgIGlnZF9tbWlvIDw8PSAzMjsKLSAgICBpZ2RfbW1pbyAgKz0gcGNpX2NvbmZf cmVhZDMyKDAsIDAsIElHRF9ERVYsIDAsIFBDSV9CQVNFX0FERFJFU1NfMCk7CisgICAgaWdkX21t aW8gICs9IHBjaV9jb25mX3JlYWQzMihQQ0lfU0JERigwLCAwLCBJR0RfREVWLCAwKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9CQVNFX0FERFJFU1NfMCk7CiAgICAgaWdk X3JlZ192YSA9IGlvcmVtYXAoaWdkX21taW8gJiBJR0RfQkFSX01BU0ssIDB4MzAwMCk7CiB9CiAK QEAgLTI4MCw3ICsyODIsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgdHlsZXJzYnVyZ19pbnRyZW1h cF9xdWlyayh2b2lkKQogICAgIGZvciAoIGJ1cyA9IDA7IGJ1cyA8IDB4MTAwOyBidXMrKyApCiAg ICAgewogICAgICAgICAvKiBNYXRjaCBvbiBTeXN0ZW0gTWFuYWdlbWVudCBSZWdpc3RlcnMgb24g RGV2aWNlIDIwIEZ1bmN0aW9uIDAgKi8KLSAgICAgICAgZGV2aWNlID0gcGNpX2NvbmZfcmVhZDMy KDAsIGJ1cywgMjAsIDAsIFBDSV9WRU5ET1JfSUQpOworICAgICAgICBkZXZpY2UgPSBwY2lfY29u Zl9yZWFkMzIoUENJX1NCREYoMCwgYnVzLCAyMCwgMCksIFBDSV9WRU5ET1JfSUQpOwogICAgICAg ICByZXYgPSBwY2lfY29uZl9yZWFkOChQQ0lfU0JERigwLCBidXMsIDIwLCAwKSwgUENJX1JFVklT SU9OX0lEKTsKIAogICAgICAgICBpZiAoIHJldiA9PSAweDEzICYmIGRldmljZSA9PSAweDM0MmU4 MDg2ICkKQEAgLTI5Niw4ICsyOTgsOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgdHlsZXJzYnVyZ19p bnRyZW1hcF9xdWlyayh2b2lkKQogLyogaW5pdGlhbGl6ZSBwbGF0Zm9ybSBpZGVudGlmaWNhdGlv biBmbGFncyAqLwogdm9pZCBfX2luaXQgcGxhdGZvcm1fcXVpcmtzX2luaXQodm9pZCkKIHsKLSAg ICBpb2hfaWQgPSBwY2lfY29uZl9yZWFkMzIoMCwgMCwgSU9IX0RFViwgMCwgMCk7Ci0gICAgaWdk X2lkID0gcGNpX2NvbmZfcmVhZDMyKDAsIDAsIElHRF9ERVYsIDAsIDApOworICAgIGlvaF9pZCA9 IHBjaV9jb25mX3JlYWQzMihQQ0lfU0JERigwLCAwLCBJT0hfREVWLCAwKSwgMCk7CisgICAgaWdk X2lkID0gcGNpX2NvbmZfcmVhZDMyKFBDSV9TQkRGKDAsIDAsIElHRF9ERVYsIDApLCAwKTsKIAog ICAgIC8qIE1vYmlsZSA0IFNlcmllcyBDaGlwc2V0IG5lZ2xlY3RzIHRvIHNldCBSV0JGIGNhcGFi aWxpdHkuICovCiAgICAgaWYgKCBpb2hfaWQgPT0gMHgyYTQwODA4NiApCkBAIC0zNTYsMTUgKzM1 OCwxNSBAQCBpbnQgbWVfd2lmaV9xdWlyayhzdHJ1Y3QgZG9tYWluICpkb21haW4sIHU4IGJ1cywg dTggZGV2Zm4sIGludCBtYXApCiAgICAgdTMyIGlkOwogICAgIGludCByYyA9IDA7CiAKLSAgICBp ZCA9IHBjaV9jb25mX3JlYWQzMigwLCAwLCAwLCAwLCAwKTsKKyAgICBpZCA9IHBjaV9jb25mX3Jl YWQzMihQQ0lfU0JERigwLCAwLCAwLCAwKSwgMCk7CiAgICAgaWYgKCBJU19DVEcoaWQpICkKICAg ICB7CiAgICAgICAgIC8qIHF1aXQgaWYgTUUgZG9lcyBub3QgZXhpc3QgKi8KLSAgICAgICAgaWYg KCBwY2lfY29uZl9yZWFkMzIoMCwgMCwgMywgMCwgMCkgPT0gMHhmZmZmZmZmZiApCisgICAgICAg IGlmICggcGNpX2NvbmZfcmVhZDMyKFBDSV9TQkRGKDAsIDAsIDMsIDApLCAwKSA9PSAweGZmZmZm ZmZmICkKICAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIC8qIGlmIGRldmljZSBpcyBX TEFOIGRldmljZSwgbWFwIE1FIHBoYW50b20gZGV2aWNlIDA6My43ICovCi0gICAgICAgIGlkID0g cGNpX2NvbmZfcmVhZDMyKDAsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiks IDApOworICAgICAgICBpZCA9IHBjaV9jb25mX3JlYWQzMihQQ0lfU0JERjMoMCwgYnVzLCBkZXZm biksIDApOwogICAgICAgICBzd2l0Y2ggKGlkKQogICAgICAgICB7CiAgICAgICAgICAgICBjYXNl IDB4NDIzMjgwODY6CkBAIC0zODQsMTEgKzM4NiwxMSBAQCBpbnQgbWVfd2lmaV9xdWlyayhzdHJ1 Y3QgZG9tYWluICpkb21haW4sIHU4IGJ1cywgdTggZGV2Zm4sIGludCBtYXApCiAgICAgZWxzZSBp ZiAoIElTX0lMSyhpZCkgfHwgSVNfQ1BUKGlkKSApCiAgICAgewogICAgICAgICAvKiBxdWl0IGlm IE1FIGRvZXMgbm90IGV4aXN0ICovCi0gICAgICAgIGlmICggcGNpX2NvbmZfcmVhZDMyKDAsIDAs IDIyLCAwLCAwKSA9PSAweGZmZmZmZmZmICkKKyAgICAgICAgaWYgKCBwY2lfY29uZl9yZWFkMzIo UENJX1NCREYoMCwgMCwgMjIsIDApLCAwKSA9PSAweGZmZmZmZmZmICkKICAgICAgICAgICAgIHJl dHVybiAwOwogCiAgICAgICAgIC8qIGlmIGRldmljZSBpcyBXTEFOIGRldmljZSwgbWFwIE1FIHBo YW50b20gZGV2aWNlIDA6MjIuNyAqLwotICAgICAgICBpZCA9IHBjaV9jb25mX3JlYWQzMigwLCBi dXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLCAwKTsKKyAgICAgICAgaWQgPSBw Y2lfY29uZl9yZWFkMzIoUENJX1NCREYzKDAsIGJ1cywgZGV2Zm4pLCAwKTsKICAgICAgICAgc3dp dGNoIChpZCkKICAgICAgICAgewogICAgICAgICAgICAgY2FzZSAweDAwODc4MDg2OiAgICAgICAg LyogS2lsbWVyIFBlYWsgKi8KQEAgLTQzOCw3ICs0NDAsNyBAQCB2b2lkIHBjaV92dGRfcXVpcmso Y29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAgICAgY2FzZSAweDM0MmU6IC8qIFR5bGVyc2J1 cmcgY2hpcHNldCAoTmVoYWxlbSAvIFdlc3RtZXJlIHN5c3RlbXMpICovCiAgICAgY2FzZSAweDM3 Mjg6IC8qIFhlb24gQzU1MDAvQzM1MDAgKEphc3BlckZvcmVzdCkgKi8KICAgICBjYXNlIDB4M2My ODogLyogU2FuZHlicmlkZ2UgKi8KLSAgICAgICAgdmFsID0gcGNpX2NvbmZfcmVhZDMyKHNlZywg YnVzLCBkZXYsIGZ1bmMsIDB4MUFDKTsKKyAgICAgICAgdmFsID0gcGNpX2NvbmZfcmVhZDMyKHBk ZXYtPnNiZGYsIDB4MUFDKTsKICAgICAgICAgcGNpX2NvbmZfd3JpdGUzMihzZWcsIGJ1cywgZGV2 LCBmdW5jLCAweDFBQywgdmFsIHwgKDEgPDwgMzEpKTsKICAgICAgICAgcHJpbnRrKFhFTkxPR19J TkZPICJNYXNrZWQgVlQtZCBlcnJvciBzaWduYWxpbmcgb24gJTA0eDolMDJ4OiUwMnguJXVcbiIs CiAgICAgICAgICAgICAgICBzZWcsIGJ1cywgZGV2LCBmdW5jKTsKQEAgLTQ2MSw3ICs0NjMsNyBA QCB2b2lkIHBjaV92dGRfcXVpcmsoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRVhUX0NBUF9JRF9WTkRSKTsK ICAgICAgICAgICAgIHdoaWxlICggcG9zICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg ICB2YWwgPSBwY2lfY29uZl9yZWFkMzIoc2VnLCBidXMsIGRldiwgZnVuYywgcG9zICsgUENJX1ZO RFJfSEVBREVSKTsKKyAgICAgICAgICAgICAgICB2YWwgPSBwY2lfY29uZl9yZWFkMzIocGRldi0+ c2JkZiwgcG9zICsgUENJX1ZORFJfSEVBREVSKTsKICAgICAgICAgICAgICAgICBpZiAoIFBDSV9W TkRSX0hFQURFUl9JRCh2YWwpID09IDQgJiYgUENJX1ZORFJfSEVBREVSX1JFVih2YWwpID09IDEg KQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgcG9zICs9IFBDSV9WTkRS X0hFQURFUjsKQEAgLTQ4MSw4ICs0ODMsOCBAQCB2b2lkIHBjaV92dGRfcXVpcmsoY29uc3Qgc3Ry dWN0IHBjaV9kZXYgKnBkZXYpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAg ICAgIHZhbCA9IHBjaV9jb25mX3JlYWQzMihzZWcsIGJ1cywgZGV2LCBmdW5jLCBwb3MgKyBQQ0lf RVJSX1VOQ09SX01BU0spOwotICAgICAgICB2YWwyID0gcGNpX2NvbmZfcmVhZDMyKHNlZywgYnVz LCBkZXYsIGZ1bmMsIHBvcyArIFBDSV9FUlJfQ09SX01BU0spOworICAgICAgICB2YWwgPSBwY2lf Y29uZl9yZWFkMzIocGRldi0+c2JkZiwgcG9zICsgUENJX0VSUl9VTkNPUl9NQVNLKTsKKyAgICAg ICAgdmFsMiA9IHBjaV9jb25mX3JlYWQzMihwZGV2LT5zYmRmLCBwb3MgKyBQQ0lfRVJSX0NPUl9N QVNLKTsKICAgICAgICAgaWYgKCAodmFsICYgUENJX0VSUl9VTkNfVU5TVVApICYmICh2YWwyICYg UENJX0VSUl9DT1JfQURWX05GQVQpICkKICAgICAgICAgICAgIGFjdGlvbiA9ICJGb3VuZCBtYXNr ZWQiOwogICAgICAgICBlbHNlIGlmICggIWZmICkKQEAgLTQ5Nyw3ICs0OTksNyBAQCB2b2lkIHBj aV92dGRfcXVpcmsoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAgICAgICAgICAgICBhY3Rp b24gPSAiTXVzdCBub3QgbWFzayI7CiAKICAgICAgICAgLyogWFBVTkNFUlJNU0sgU2VuZCBDb21w bGV0aW9uIHdpdGggVW5zdXBwb3J0ZWQgUmVxdWVzdCAqLwotICAgICAgICB2YWwgPSBwY2lfY29u Zl9yZWFkMzIoc2VnLCBidXMsIGRldiwgZnVuYywgMHgyMGMpOworICAgICAgICB2YWwgPSBwY2lf Y29uZl9yZWFkMzIocGRldi0+c2JkZiwgMHgyMGMpOwogICAgICAgICBwY2lfY29uZl93cml0ZTMy KHNlZywgYnVzLCBkZXYsIGZ1bmMsIDB4MjBjLCB2YWwgfCAoMSA8PCA0KSk7CiAKICAgICAgICAg cHJpbnRrKFhFTkxPR19JTkZPICIlcyBVUiBzaWduYWxpbmcgb24gJTA0eDolMDJ4OiUwMnguJXVc biIsCkBAIC01MTQsOCArNTE2LDggQEAgdm9pZCBwY2lfdnRkX3F1aXJrKGNvbnN0IHN0cnVjdCBw Y2lfZGV2ICpwZGV2KQogICAgIGNhc2UgMHgxNjEwOiBjYXNlIDB4MTYxNDogY2FzZSAweDE2MTg6 IC8qIEJyb2Fkd2VsbCAqLwogICAgIGNhc2UgMHgxOTAwOiBjYXNlIDB4MTkwNDogY2FzZSAweDE5 MDg6IGNhc2UgMHgxOTBjOiBjYXNlIDB4MTkwZjogLyogU2t5bGFrZSAqLwogICAgIGNhc2UgMHgx OTEwOiBjYXNlIDB4MTkxODogY2FzZSAweDE5MWY6IC8qIFNreWxha2UgKi8KLSAgICAgICAgYmFy ID0gcGNpX2NvbmZfcmVhZDMyKHNlZywgYnVzLCBkZXYsIGZ1bmMsIDB4NmMpOwotICAgICAgICBi YXIgPSAoYmFyIDw8IDMyKSB8IHBjaV9jb25mX3JlYWQzMihzZWcsIGJ1cywgZGV2LCBmdW5jLCAw eDY4KTsKKyAgICAgICAgYmFyID0gcGNpX2NvbmZfcmVhZDMyKHBkZXYtPnNiZGYsIDB4NmMpOwor ICAgICAgICBiYXIgPSAoYmFyIDw8IDMyKSB8IHBjaV9jb25mX3JlYWQzMihwZGV2LT5zYmRmLCAw eDY4KTsKICAgICAgICAgcGEgPSBiYXIgJiAweDdmZmZmZmYwMDBVTDsgLyogYml0cyAxMi4uLjM4 ICovCiAgICAgICAgIGlmICggKGJhciAmIDEpICYmIHBhICYmCiAgICAgICAgICAgICAgcGFnZV9p c19yYW1fdHlwZShwYWRkcl90b19wZm4ocGEpLCBSQU1fVFlQRV9SRVNFUlZFRCkgKQpkaWZmIC0t Z2l0IGEveGVuL2RyaXZlcnMvcGNpL3BjaS5jIGIveGVuL2RyaXZlcnMvcGNpL3BjaS5jCmluZGV4 IDVlNWUwZjA1MzguLmIyNDcwMmUwYzMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3BjaS9wY2ku YworKysgYi94ZW4vZHJpdmVycy9wY2kvcGNpLmMKQEAgLTkzLDcgKzkzLDcgQEAgaW50IHBjaV9m aW5kX25leHRfZXh0X2NhcGFiaWxpdHkoaW50IHNlZywgaW50IGJ1cywgaW50IGRldmZuLCBpbnQg c3RhcnQsIGludCBjYXAKICAgICBpbnQgdHRsID0gNDgwOyAvKiAzODQwIGJ5dGVzLCBtaW5pbXVt IDggYnl0ZXMgcGVyIGNhcGFiaWxpdHkgKi8KICAgICBpbnQgcG9zID0gbWF4KHN0YXJ0LCAweDEw MCk7CiAKLSAgICBoZWFkZXIgPSBwY2lfY29uZl9yZWFkMzIoc2VnLCBidXMsIFBDSV9TTE9UKGRl dmZuKSwgUENJX0ZVTkMoZGV2Zm4pLCBwb3MpOworICAgIGhlYWRlciA9IHBjaV9jb25mX3JlYWQz MihQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSwgcG9zKTsKIAogICAgIC8qCiAgICAgICogSWYg d2UgaGF2ZSBubyBjYXBhYmlsaXRpZXMsIHRoaXMgaXMgaW5kaWNhdGVkIGJ5IGNhcCBJRCwKQEAg LTEwOSw3ICsxMDksNyBAQCBpbnQgcGNpX2ZpbmRfbmV4dF9leHRfY2FwYWJpbGl0eShpbnQgc2Vn LCBpbnQgYnVzLCBpbnQgZGV2Zm4sIGludCBzdGFydCwgaW50IGNhcAogICAgICAgICBwb3MgPSBQ Q0lfRVhUX0NBUF9ORVhUKGhlYWRlcik7CiAgICAgICAgIGlmICggcG9zIDwgMHgxMDAgKQogICAg ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGhlYWRlciA9IHBjaV9jb25mX3JlYWQzMihzZWcsIGJ1 cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiksIHBvcyk7CisgICAgICAgIGhlYWRl ciA9IHBjaV9jb25mX3JlYWQzMihQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSwgcG9zKTsKICAg ICB9CiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL2hlYWRl ci5jIGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYwppbmRleCAwYjE3NmI0OTBhLi43NDc2NjM0 OTgyIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jCisrKyBiL3hlbi9kcml2 ZXJzL3ZwY2kvaGVhZGVyLmMKQEAgLTUxMSw3ICs1MTEsNyBAQCBzdGF0aWMgaW50IGluaXRfYmFy cyhzdHJ1Y3QgcGNpX2RldiAqcGRldikKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9 CiAKLSAgICAgICAgdmFsID0gcGNpX2NvbmZfcmVhZDMyKHBkZXYtPnNlZywgcGRldi0+YnVzLCBz bG90LCBmdW5jLCByZWcpOworICAgICAgICB2YWwgPSBwY2lfY29uZl9yZWFkMzIocGRldi0+c2Jk ZiwgcmVnKTsKICAgICAgICAgaWYgKCAodmFsICYgUENJX0JBU0VfQUREUkVTU19TUEFDRSkgPT0g UENJX0JBU0VfQUREUkVTU19TUEFDRV9JTyApCiAgICAgICAgIHsKICAgICAgICAgICAgIGJhcnNb aV0udHlwZSA9IFZQQ0lfQkFSX0lPOwpAQCAtNTYxLDggKzU2MSw4IEBAIHN0YXRpYyBpbnQgaW5p dF9iYXJzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogICAgICAgICByb20tPnR5cGUgPSBWUENJX0JB Ul9ST007CiAgICAgICAgIHJvbS0+c2l6ZSA9IHNpemU7CiAgICAgICAgIHJvbS0+YWRkciA9IGFk ZHI7Ci0gICAgICAgIGhlYWRlci0+cm9tX2VuYWJsZWQgPSBwY2lfY29uZl9yZWFkMzIocGRldi0+ c2VnLCBwZGV2LT5idXMsIHNsb3QsIGZ1bmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcm9tX3JlZykgJiBQQ0lfUk9NX0FERFJFU1NfRU5BQkxFOworICAg ICAgICBoZWFkZXItPnJvbV9lbmFibGVkID0gcGNpX2NvbmZfcmVhZDMyKHBkZXYtPnNiZGYsIHJv bV9yZWcpICYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9ST01fQUREUkVTU19F TkFCTEU7CiAKICAgICAgICAgcmMgPSB2cGNpX2FkZF9yZWdpc3RlcihwZGV2LT52cGNpLCB2cGNp X2h3X3JlYWQzMiwgcm9tX3dyaXRlLCByb21fcmVnLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDQsIHJvbSk7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL21zaXguYyBiL3hl bi9kcml2ZXJzL3ZwY2kvbXNpeC5jCmluZGV4IDhlNmNkMDcwZDAuLmM2MGNiYTAxMzcgMTAwNjQ0 Ci0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvbXNpeC5jCisrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvbXNp eC5jCkBAIC00NjksMTEgKzQ2OSw5IEBAIHN0YXRpYyBpbnQgaW5pdF9tc2l4KHN0cnVjdCBwY2lf ZGV2ICpwZGV2KQogICAgIHBkZXYtPnZwY2ktPm1zaXgtPnBkZXYgPSBwZGV2OwogCiAgICAgcGRl di0+dnBjaS0+bXNpeC0+dGFibGVzW1ZQQ0lfTVNJWF9UQUJMRV0gPQotICAgICAgICBwY2lfY29u Zl9yZWFkMzIocGRldi0+c2VnLCBwZGV2LT5idXMsIHNsb3QsIGZ1bmMsCi0gICAgICAgICAgICAg ICAgICAgICAgICBtc2l4X3RhYmxlX29mZnNldF9yZWcobXNpeF9vZmZzZXQpKTsKKyAgICAgICAg cGNpX2NvbmZfcmVhZDMyKHBkZXYtPnNiZGYsIG1zaXhfdGFibGVfb2Zmc2V0X3JlZyhtc2l4X29m ZnNldCkpOwogICAgIHBkZXYtPnZwY2ktPm1zaXgtPnRhYmxlc1tWUENJX01TSVhfUEJBXSA9Ci0g ICAgICAgIHBjaV9jb25mX3JlYWQzMihwZGV2LT5zZWcsIHBkZXYtPmJ1cywgc2xvdCwgZnVuYywK LSAgICAgICAgICAgICAgICAgICAgICAgIG1zaXhfcGJhX29mZnNldF9yZWcobXNpeF9vZmZzZXQp KTsKKyAgICAgICAgcGNpX2NvbmZfcmVhZDMyKHBkZXYtPnNiZGYsIG1zaXhfcGJhX29mZnNldF9y ZWcobXNpeF9vZmZzZXQpKTsKIAogICAgIGZvciAoIGkgPSAwOyBpIDwgcGRldi0+dnBjaS0+bXNp eC0+bWF4X2VudHJpZXM7IGkrKykKICAgICB7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNp L3ZwY2kuYyBiL3hlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jCmluZGV4IDFhNGMyZWU0ZjEuLjIxMDYy NTU4NjMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jCisrKyBiL3hlbi9kcml2 ZXJzL3ZwY2kvdnBjaS5jCkBAIC0xMjAsOCArMTIwLDcgQEAgdWludDMyX3QgdnBjaV9od19yZWFk MTYoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsCiB1aW50MzJf dCB2cGNpX2h3X3JlYWQzMihjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50 IHJlZywKICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEpCiB7Ci0gICAgcmV0dXJu IHBjaV9jb25mX3JlYWQzMihwZGV2LT5zZWcsIHBkZXYtPmJ1cywgUENJX1NMT1QocGRldi0+ZGV2 Zm4pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0ZVTkMocGRldi0+ZGV2Zm4pLCBy ZWcpOworICAgIHJldHVybiBwY2lfY29uZl9yZWFkMzIocGRldi0+c2JkZiwgcmVnKTsKIH0KIAog aW50IHZwY2lfYWRkX3JlZ2lzdGVyKHN0cnVjdCB2cGNpICp2cGNpLCB2cGNpX3JlYWRfdCAqcmVh ZF9oYW5kbGVyLApAQCAtMjExLDcgKzIxMCw3IEBAIHN0YXRpYyB1aW50MzJfdCB2cGNpX3JlYWRf aHcocGNpX3NiZGZfdCBzYmRmLCB1bnNpZ25lZCBpbnQgcmVnLAogICAgIHN3aXRjaCAoIHNpemUg KQogICAgIHsKICAgICBjYXNlIDQ6Ci0gICAgICAgIGRhdGEgPSBwY2lfY29uZl9yZWFkMzIoc2Jk Zi5zZWcsIHNiZGYuYnVzLCBzYmRmLmRldiwgc2JkZi5mbiwgcmVnKTsKKyAgICAgICAgZGF0YSA9 IHBjaV9jb25mX3JlYWQzMihzYmRmLCByZWcpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug MzoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9wY2kuaCBiL3hlbi9pbmNsdWRlL3hlbi9w Y2kuaAppbmRleCBjZjRjMjIzZjdjLi4yYTU3MDU1NjBlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS94ZW4vcGNpLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3BjaS5oCkBAIC0xNzQsOSArMTc0LDcg QEAgdm9pZCBwY2lfY2hlY2tfZGlzYWJsZV9kZXZpY2UodTE2IHNlZywgdTggYnVzLCB1OCBkZXZm bik7CiAKIHVpbnQ4X3QgcGNpX2NvbmZfcmVhZDgocGNpX3NiZGZfdCBzYmRmLCB1bnNpZ25lZCBp bnQgcmVnKTsKIHVpbnQxNl90IHBjaV9jb25mX3JlYWQxNihwY2lfc2JkZl90IHNiZGYsIHVuc2ln bmVkIGludCByZWcpOwotdWludDMyX3QgcGNpX2NvbmZfcmVhZDMyKAotICAgIHVuc2lnbmVkIGlu dCBzZWcsIHVuc2lnbmVkIGludCBidXMsIHVuc2lnbmVkIGludCBkZXYsIHVuc2lnbmVkIGludCBm dW5jLAotICAgIHVuc2lnbmVkIGludCByZWcpOwordWludDMyX3QgcGNpX2NvbmZfcmVhZDMyKHBj aV9zYmRmX3Qgc2JkZiwgdW5zaWduZWQgaW50IHJlZyk7CiB2b2lkIHBjaV9jb25mX3dyaXRlOCgK ICAgICB1bnNpZ25lZCBpbnQgc2VnLCB1bnNpZ25lZCBpbnQgYnVzLCB1bnNpZ25lZCBpbnQgZGV2 LCB1bnNpZ25lZCBpbnQgZnVuYywKICAgICB1bnNpZ25lZCBpbnQgcmVnLCB1aW50OF90IGRhdGEp OwotLSAKMi4yMC4xIChBcHBsZSBHaXQtMTE3KQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s aXN0aW5mby94ZW4tZGV2ZWw=