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=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 CD108C31E5E for ; Wed, 19 Jun 2019 16:02:14 +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 985892187F for ; Wed, 19 Jun 2019 16:02:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="k1JQXfYN" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 985892187F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amd.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 1hdd22-0006K7-3G; Wed, 19 Jun 2019 16:01:54 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hdd20-0006Jy-Tu for xen-devel@lists.xenproject.org; Wed, 19 Jun 2019 16:01:52 +0000 X-Inumbo-ID: 8c6980de-92ab-11e9-8980-bc764e045a96 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (unknown [40.107.75.80]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 8c6980de-92ab-11e9-8980-bc764e045a96; Wed, 19 Jun 2019 16:01:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fvtSL42g8g7ngz4IxqdOGU6+2Z3qCr+jLvA8F/5s6EA=; b=k1JQXfYND1MEdQ3EF20gQ8O6ZV1uKvrOj2JB2FCxtOo4cOU+929Ioo1G1Cp3UDBIsmHtQBhA2RjVTY6ZFMDQk3zxVHJis8zRb5Ze7Nhn0faLvnJdeQeEZHbgyLWNMU3x7JlZVlJyvs9nRGvPUYbvs2RVrBVo9tlhxm2DxGUMrjc= Received: from DM6PR12MB3515.namprd12.prod.outlook.com (20.179.106.151) by DM6PR12MB3626.namprd12.prod.outlook.com (20.178.199.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.13; Wed, 19 Jun 2019 16:01:48 +0000 Received: from DM6PR12MB3515.namprd12.prod.outlook.com ([fe80::9dea:57a2:93ff:57b0]) by DM6PR12MB3515.namprd12.prod.outlook.com ([fe80::9dea:57a2:93ff:57b0%3]) with mapi id 15.20.1987.014; Wed, 19 Jun 2019 16:01:48 +0000 From: "Woods, Brian" To: Roger Pau Monne Thread-Topic: [PATCH v3 12/13] pci: switch pci_conf_write32 to use pci_sbdf_t Thread-Index: AQHVHRK6G/SHk45WlUOY0zOD6Nr7g6ajNnEA Date: Wed, 19 Jun 2019 16:01:48 +0000 Message-ID: <20190619160145.GE20907@amd.com> References: <20190607092232.83179-1-roger.pau@citrix.com> <20190607092232.83179-13-roger.pau@citrix.com> In-Reply-To: <20190607092232.83179-13-roger.pau@citrix.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: DM5PR07CA0091.namprd07.prod.outlook.com (2603:10b6:4:ae::20) To DM6PR12MB3515.namprd12.prod.outlook.com (2603:10b6:5:18a::23) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Brian.Woods@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [165.204.77.1] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: df3be1da-fbd9-4c96-5f2d-08d6f4cf6f5e x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:DM6PR12MB3626; x-ms-traffictypediagnostic: DM6PR12MB3626: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4714; x-forefront-prvs: 0073BFEF03 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(396003)(136003)(366004)(376002)(346002)(189003)(199004)(305945005)(8676002)(81166006)(81156014)(6246003)(71190400001)(486006)(186003)(25786009)(5660300002)(8936002)(2906002)(71200400001)(53936002)(33656002)(386003)(229853002)(6506007)(26005)(446003)(2616005)(11346002)(6436002)(86362001)(7736002)(72206003)(30864003)(1076003)(6512007)(66066001)(478600001)(316002)(53946003)(6916009)(54906003)(256004)(14444005)(36756003)(14454004)(476003)(4326008)(66556008)(102836004)(64756008)(66476007)(99286004)(7416002)(66946007)(3846002)(73956011)(6116002)(66446008)(52116002)(6486002)(68736007)(76176011); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR12MB3626; H:DM6PR12MB3515.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: p77OB0jOAYqrsYCTRbG6BtYNMfcaj25joInJoLRHEdJvZXV5vVx+AlHYxCb7GJIVkST/LzwavN/6/51R116Xy49IUd5I6PnNQtY67N4tvsgdhd1J07GGmy+WrXY0WkBTZYqEtM0v9+OXZw3yiJLcXdN+n0GL//m05BXYcM5onw4QMErA74EwlOHUcxrw4RoxKn0ZZz4leX2uU8toEpWxWh77rc4YniYjNq/3HZgfIWkvkR8s9A0Pczv9izNqGJTEBFXU0I45WDJGsXhm92djNnkrU0+E8UAUJkuUj8HEqyIss50V4FEuWpU4hEP46GmTHXBl5XRd3GNZsIPOqJChcKeX5htDd95WQK+u3bvDhkd+/7/zaWfCf0O79mmVkCyfilW18XmGV+eMcKySYtPNl1kWek2yfuQ3mCU1blkcfBo= Content-ID: <9A034BA86893774BA6CB3277F5F6BAE8@namprd12.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: df3be1da-fbd9-4c96-5f2d-08d6f4cf6f5e X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jun 2019 16:01:48.7414 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: brwoods@amd.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3626 Subject: Re: [Xen-devel] [PATCH v3 12/13] pci: switch pci_conf_write32 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 , "Suthikulpanit, Suravee" , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , "xen-devel@lists.xenproject.org" , "Woods, Brian" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gRnJpLCBKdW4gMDcsIDIwMTkgYXQgMTE6MjI6MzFBTSArMDIwMCwgUm9nZXIgUGF1IE1vbm5l IHdyb3RlOgo+IFRoaXMgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIHBhcmFtZXRlcnMgb2YgdGhlIGZ1 bmN0aW9uIHRvIHR3bywgYW5kCj4gc2ltcGxpZmllcyBzb21lIG9mIHRoZSBjYWxsaW5nIHNpdGVz Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu Y29tPgoKQXMgZmFyIGFzIEFNRCBJT01NVQoKQWNrZWQtYnk6IEJyaWFuIFdvb2RzIDxicmlhbi53 b29kc0BhbWQuY29tCgo+IC0tLQo+IENjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ Cj4gQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Cj4gQ2M6IFdl aSBMaXUgPHdsQHhlbi5vcmc+Cj4gQ2M6IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAZXUu Y2l0cml4LmNvbT4KPiBDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+ Cj4gQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+Cj4gQ2M6IEtvbnJhZCBS emVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KPiBDYzogU3RlZmFubyBTdGFi ZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgo+IENjOiBUaW0gRGVlZ2FuIDx0aW1AeGVu Lm9yZz4KPiBDYzogU3VyYXZlZSBTdXRoaWt1bHBhbml0IDxzdXJhdmVlLnN1dGhpa3VscGFuaXRA YW1kLmNvbT4KPiBDYzogQnJpYW4gV29vZHMgPGJyaWFuLndvb2RzQGFtZC5jb20+Cj4gQ2M6IEtl dmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgo+IC0tLQo+ICB4ZW4vYXJjaC94ODYvY3B1 L2FtZC5jICAgICAgICAgICAgICAgICAgIHwgIDQgKystLQo+ICB4ZW4vYXJjaC94ODYvbXNpLmMg ICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysrKy0tLS0tLS0tCj4gIHhlbi9hcmNoL3g4Ni9v cHJvZmlsZS9vcF9tb2RlbF9hdGhsb24uYyAgfCAgNCArKystCj4gIHhlbi9hcmNoL3g4Ni94ODZf NjQvcGNpLmMgICAgICAgICAgICAgICAgfCAxNyArKysrLS0tLS0tLS0tLS0tLQo+ICB4ZW4vZHJp dmVycy9jaGFyL2VoY2ktZGJncC5jICAgICAgICAgICAgIHwgIDUgKysrLS0KPiAgeGVuL2RyaXZl cnMvY2hhci9uczE2NTUwLmMgICAgICAgICAgICAgICB8IDIyICsrKysrKysrKysrKy0tLS0tLS0t LS0KPiAgeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYyB8ICA4ICsrKyst LS0tCj4gIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jICAgICAgICAgICAgfCAgOCArKysr LS0tLQo+ICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcXVpcmtzLmMgICAgIHwgIDggKysr Ky0tLS0KPiAgeGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYyAgICAgICAgICAgICAgICB8ICA3ICsr Ky0tLS0KPiAgeGVuL2RyaXZlcnMvdnBjaS92cGNpLmMgICAgICAgICAgICAgICAgICB8ICAyICst Cj4gIHhlbi9pbmNsdWRlL3hlbi9wY2kuaCAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0tCj4g IDEyIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQo+IAo+ IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2FtZC5jIGIveGVuL2FyY2gveDg2L2NwdS9h bWQuYwo+IGluZGV4IDJlNjUyOWZiYTMuLjg2MjczYjZhMDcgMTAwNjQ0Cj4gLS0tIGEveGVuL2Fy Y2gveDg2L2NwdS9hbWQuYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMKPiBAQCAtNzA3 LDExICs3MDcsMTEgQEAgc3RhdGljIHZvaWQgaW5pdF9hbWQoc3RydWN0IGNwdWluZm9feDg2ICpj KQo+ICAJCQkJICAgICAgIChoICYgMHgxKSA/ICJjbGVhcmluZyBEMThGM3g1Q1swXSIgOiAiIik7 Cj4gIAo+ICAJCQlpZiAobCAmIDB4MWYpCj4gLQkJCQlwY2lfY29uZl93cml0ZTMyKDAsIDAsIDB4 MTgsIDMsIDB4NTgsCj4gKwkJCQlwY2lfY29uZl93cml0ZTMyKFBDSV9TQkRGKDAsIDAsIDB4MTgs IDMpLCAweDU4LAo+ICAJCQkJCQkgbCAmIH4weDFmKTsKPiAgCj4gIAkJCWlmIChoICYgMHgxKQo+ IC0JCQkJcGNpX2NvbmZfd3JpdGUzMigwLCAwLCAweDE4LCAzLCAweDVjLAo+ICsJCQkJcGNpX2Nv bmZfd3JpdGUzMihQQ0lfU0JERigwLCAwLCAweDE4LCAzKSwgMHg1YywKPiAgCQkJCQkJIGggJiB+ MHgxKTsKPiAgCQl9Cj4gIAo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbXNpLmMgYi94ZW4v YXJjaC94ODYvbXNpLmMKPiBpbmRleCBjYmMxZTNiM2YwLi45YTFjZTMzYjQyIDEwMDY0NAo+IC0t LSBhL3hlbi9hcmNoL3g4Ni9tc2kuYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9tc2kuYwo+IEBAIC0y NTEsMjEgKzI1MSwxNyBAQCBzdGF0aWMgaW50IHdyaXRlX21zaV9tc2coc3RydWN0IG1zaV9kZXNj ICplbnRyeSwgc3RydWN0IG1zaV9tc2cgKm1zZykKPiAgICAgIHsKPiAgICAgICAgICBzdHJ1Y3Qg cGNpX2RldiAqZGV2ID0gZW50cnktPmRldjsKPiAgICAgICAgICBpbnQgcG9zID0gZW50cnktPm1z aV9hdHRyaWIucG9zOwo+IC0gICAgICAgIHUxNiBzZWcgPSBkZXYtPnNlZzsKPiAtICAgICAgICB1 OCBidXMgPSBkZXYtPmJ1czsKPiAtICAgICAgICB1OCBzbG90ID0gUENJX1NMT1QoZGV2LT5kZXZm bik7Cj4gLSAgICAgICAgdTggZnVuYyA9IFBDSV9GVU5DKGRldi0+ZGV2Zm4pOwo+ICAgICAgICAg IGludCBuciA9IGVudHJ5LT5tc2lfYXR0cmliLmVudHJ5X25yOwo+ICAKPiAgICAgICAgICBBU1NF UlQoKG1zZy0+ZGF0YSAmIChlbnRyeVstbnJdLm1zaS5udmVjIC0gMSkpID09IG5yKTsKPiAgICAg ICAgICBpZiAoIG5yICkKPiAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gIAo+IC0gICAgICAgIHBj aV9jb25mX3dyaXRlMzIoc2VnLCBidXMsIHNsb3QsIGZ1bmMsIG1zaV9sb3dlcl9hZGRyZXNzX3Jl Zyhwb3MpLAo+ICsgICAgICAgIHBjaV9jb25mX3dyaXRlMzIoZGV2LT5zYmRmLCBtc2lfbG93ZXJf YWRkcmVzc19yZWcocG9zKSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZy0+YWRkcmVz c19sbyk7Cj4gICAgICAgICAgaWYgKCBlbnRyeS0+bXNpX2F0dHJpYi5pc182NCApCj4gICAgICAg ICAgewo+IC0gICAgICAgICAgICBwY2lfY29uZl93cml0ZTMyKHNlZywgYnVzLCBzbG90LCBmdW5j LCBtc2lfdXBwZXJfYWRkcmVzc19yZWcocG9zKSwKPiArICAgICAgICAgICAgcGNpX2NvbmZfd3Jp dGUzMihkZXYtPnNiZGYsIG1zaV91cHBlcl9hZGRyZXNzX3JlZyhwb3MpLAo+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1zZy0+YWRkcmVzc19oaSk7Cj4gICAgICAgICAgICAgIHBjaV9j b25mX3dyaXRlMTYoZGV2LT5zYmRmLCBtc2lfZGF0YV9yZWcocG9zLCAxKSwgbXNnLT5kYXRhKTsK PiAgICAgICAgICB9Cj4gQEAgLTM5NSw3ICszOTEsNyBAQCBzdGF0aWMgYm9vbCBtc2lfc2V0X21h c2tfYml0KHN0cnVjdCBpcnFfZGVzYyAqZGVzYywgYm9vbCBob3N0LCBib29sIGd1ZXN0KQo+ICAg ICAgICAgICAgICBtYXNrX2JpdHMgPSBwY2lfY29uZl9yZWFkMzIocGRldi0+c2JkZiwgZW50cnkt Pm1zaS5tcG9zKTsKPiAgICAgICAgICAgICAgbWFza19iaXRzICY9IH4oKHUzMikxIDw8IGVudHJ5 LT5tc2lfYXR0cmliLmVudHJ5X25yKTsKPiAgICAgICAgICAgICAgbWFza19iaXRzIHw9ICh1MzIp ZmxhZyA8PCBlbnRyeS0+bXNpX2F0dHJpYi5lbnRyeV9ucjsKPiAtICAgICAgICAgICAgcGNpX2Nv bmZfd3JpdGUzMihzZWcsIGJ1cywgc2xvdCwgZnVuYywgZW50cnktPm1zaS5tcG9zLCBtYXNrX2Jp dHMpOwo+ICsgICAgICAgICAgICBwY2lfY29uZl93cml0ZTMyKHBkZXYtPnNiZGYsIGVudHJ5LT5t c2kubXBvcywgbWFza19iaXRzKTsKPiAgICAgICAgICB9Cj4gICAgICAgICAgYnJlYWs7Cj4gICAg ICBjYXNlIFBDSV9DQVBfSURfTVNJWDoKPiBAQCAtNzE2LDcgKzcxMiw3IEBAIHN0YXRpYyBpbnQg bXNpX2NhcGFiaWxpdHlfaW5pdChzdHJ1Y3QgcGNpX2RldiAqZGV2LAo+ICAgICAgICAgIC8qIEFs bCBNU0lzIGFyZSB1bm1hc2tlZCBieSBkZWZhdWx0LCBNYXNrIHRoZW0gYWxsICovCj4gICAgICAg ICAgbWFza2JpdHMgPSBwY2lfY29uZl9yZWFkMzIoZGV2LT5zYmRmLCBtcG9zKTsKPiAgICAgICAg ICBtYXNrYml0cyB8PSB+KHUzMikwID4+ICgzMiAtIG1heHZlYyk7Cj4gLSAgICAgICAgcGNpX2Nv bmZfd3JpdGUzMihzZWcsIGJ1cywgc2xvdCwgZnVuYywgbXBvcywgbWFza2JpdHMpOwo+ICsgICAg ICAgIHBjaV9jb25mX3dyaXRlMzIoZGV2LT5zYmRmLCBtcG9zLCBtYXNrYml0cyk7Cj4gICAgICB9 Cj4gICAgICBsaXN0X2FkZF90YWlsKCZlbnRyeS0+bGlzdCwgJmRldi0+bXNpX2xpc3QpOwo+ICAK PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L29wcm9maWxlL29wX21vZGVsX2F0aGxvbi5jIGIv eGVuL2FyY2gveDg2L29wcm9maWxlL29wX21vZGVsX2F0aGxvbi5jCj4gaW5kZXggM2JmMGIwMjE0 ZC4uNWM0OGY4NjhhZSAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvb3BfbW9k ZWxfYXRobG9uLmMKPiArKysgYi94ZW4vYXJjaC94ODYvb3Byb2ZpbGUvb3BfbW9kZWxfYXRobG9u LmMKPiBAQCAtNDcyLDcgKzQ3Miw5IEBAIHN0YXRpYyBpbnQgX19pbml0IGluaXRfaWJzX25taSh2 b2lkKQo+ICAJCQkJaWYgKCh2ZW5kb3JfaWQgPT0gUENJX1ZFTkRPUl9JRF9BTUQpICYmCj4gIAkJ CQkJKGRldl9pZCA9PSBQQ0lfREVWSUNFX0lEX0FNRF8xMEhfTkJfTUlTQykpIHsKPiAgCj4gLQkJ CQkJcGNpX2NvbmZfd3JpdGUzMigwLCBidXMsIGRldiwgZnVuYywgSUJTQ1RMLAo+ICsJCQkJCXBj aV9jb25mX3dyaXRlMzIoCj4gKwkJCQkJCVBDSV9TQkRGKDAsIGJ1cywgZGV2LCBmdW5jKSwKPiAr CQkJCQkJSUJTQ1RMLAo+ICAJCQkJCQlJQlNDVExfTFZUT0ZGU0VUVkFMIHwgQVBJQ19FSUxWVF9M VlRPRkZfSUJTKTsKPiAgCj4gIAkJCQkJdmFsdWUgPSBwY2lfY29uZl9yZWFkMzIoUENJX1NCREYo MCwgYnVzLCBkZXYsIGZ1bmMpLAo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L3Bj aS5jIGIveGVuL2FyY2gveDg2L3g4Nl82NC9wY2kuYwo+IGluZGV4IGYwMTRmZTBmYzUuLmFhZDFj M2Y3Y2YgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9wY2kuYwo+ICsrKyBiL3hl bi9hcmNoL3g4Ni94ODZfNjQvcGNpLmMKPiBAQCAtNjYsMTkgKzY2LDEwIEBAIHZvaWQgcGNpX2Nv bmZfd3JpdGUxNihwY2lfc2JkZl90IHNiZGYsIHVuc2lnbmVkIGludCByZWcsIHVpbnQxNl90IGRh dGEpCj4gICAgICAgICAgcGNpX2NvbmZfd3JpdGUoUENJX0NPTkZfQUREUkVTUyhzYmRmLCByZWcp LCByZWcgJiAyLCAyLCBkYXRhKTsKPiAgfQo+ICAKPiAtI3VuZGVmIFBDSV9DT05GX0FERFJFU1MK PiAtI2RlZmluZSBQQ0lfQ09ORl9BRERSRVNTKGJ1cywgZGV2LCBmdW5jLCByZWcpIFwKPiAtICAg ICgweDgwMDAwMDAwIHwgKGJ1cyA8PCAxNikgfCAoZGV2IDw8IDExKSB8IChmdW5jIDw8IDgpIHwg KHJlZyAmIH4zKSkKPiAtCj4gLXZvaWQgcGNpX2NvbmZfd3JpdGUzMigKPiAtICAgIHVuc2lnbmVk IGludCBzZWcsIHVuc2lnbmVkIGludCBidXMsIHVuc2lnbmVkIGludCBkZXYsIHVuc2lnbmVkIGlu dCBmdW5jLAo+IC0gICAgdW5zaWduZWQgaW50IHJlZywgdWludDMyX3QgZGF0YSkKPiArdm9pZCBw Y2lfY29uZl93cml0ZTMyKHBjaV9zYmRmX3Qgc2JkZiwgdW5zaWduZWQgaW50IHJlZywgdWludDMy X3QgZGF0YSkKPiAgewo+IC0gICAgaWYgKCBzZWcgfHwgcmVnID4gMjU1ICkKPiAtICAgICAgICBw Y2lfbW1jZmdfd3JpdGUoc2VnLCBidXMsIFBDSV9ERVZGTihkZXYsIGZ1bmMpLCByZWcsIDQsIGRh dGEpOwo+ICsgICAgaWYgKCBzYmRmLnNlZyB8fCByZWcgPiAyNTUgKQo+ICsgICAgICAgIHBjaV9t bWNmZ193cml0ZShzYmRmLnNlZywgc2JkZi5idXMsIHNiZGYuZGV2Zm4sIHJlZywgNCwgZGF0YSk7 Cj4gICAgICBlbHNlCj4gLSAgICB7Cj4gLSAgICAgICAgQlVHX09OKChidXMgPiAyNTUpIHx8IChk ZXYgPiAzMSkgfHwgKGZ1bmMgPiA3KSk7Cj4gLSAgICAgICAgcGNpX2NvbmZfd3JpdGUoUENJX0NP TkZfQUREUkVTUyhidXMsIGRldiwgZnVuYywgcmVnKSwgMCwgNCwgZGF0YSk7Cj4gLSAgICB9Cj4g KyAgICAgICAgcGNpX2NvbmZfd3JpdGUoUENJX0NPTkZfQUREUkVTUyhzYmRmLCByZWcpLCAwLCA0 LCBkYXRhKTsKPiAgfQo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9jaGFyL2VoY2ktZGJncC5j IGIveGVuL2RyaXZlcnMvY2hhci9laGNpLWRiZ3AuYwo+IGluZGV4IGI3ODAzMzQ5NTMuLmI2ZTE1 NWQxN2IgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvY2hhci9laGNpLWRiZ3AuYwo+ICsrKyBi L3hlbi9kcml2ZXJzL2NoYXIvZWhjaS1kYmdwLmMKPiBAQCAtMTAxMiw3ICsxMDEyLDggQEAgc3Rh dGljIHZvaWQgbnZpZGlhX3NldF9kZWJ1Z19wb3J0KHN0cnVjdCBlaGNpX2RiZ3AgKmRiZ3AsIHVu c2lnbmVkIGludCBwb3J0KQo+ICAKPiAgICAgIGR3b3JkICY9IH4oMHgwZiA8PCAxMik7Cj4gICAg ICBkd29yZCB8PSAocG9ydCAmIDB4MGYpIDw8IDEyOwo+IC0gICAgcGNpX2NvbmZfd3JpdGUzMigw LCBkYmdwLT5idXMsIGRiZ3AtPnNsb3QsIGRiZ3AtPmZ1bmMsIDB4NzQsIGR3b3JkKTsKPiArICAg IHBjaV9jb25mX3dyaXRlMzIoUENJX1NCREYoMCwgZGJncC0+YnVzLCBkYmdwLT5zbG90LCBkYmdw LT5mdW5jKSwgMHg3NCwKPiArICAgICAgICAgICAgICAgICAgICAgZHdvcmQpOwo+ICAgICAgZGJn cF9wcmludGsoInNldCBkZWJ1ZyBwb3J0IHRvICV1XG4iLCBwb3J0KTsKPiAgfQo+ICAKPiBAQCAt MTQzNiw3ICsxNDM3LDcgQEAgc3RhdGljIHZvaWQgZWhjaV9kYmdwX3Jlc3VtZShzdHJ1Y3Qgc2Vy aWFsX3BvcnQgKnBvcnQpCj4gICAgICBpZiAoICFkYmdwLT5laGNpX2RlYnVnICkKPiAgICAgICAg ICByZXR1cm47Cj4gIAo+IC0gICAgcGNpX2NvbmZfd3JpdGUzMigwLCBkYmdwLT5idXMsIGRiZ3At PnNsb3QsIGRiZ3AtPmZ1bmMsIGRiZ3AtPmJhciwKPiArICAgIHBjaV9jb25mX3dyaXRlMzIoUENJ X1NCREYoMCwgZGJncC0+YnVzLCBkYmdwLT5zbG90LCBkYmdwLT5mdW5jKSwgZGJncC0+YmFyLAo+ ICAgICAgICAgICAgICAgICAgICAgICBkYmdwLT5iYXJfdmFsKTsKPiAgICAgIHBjaV9jb25mX3dy aXRlMTYoUENJX1NCREYoMCwgZGJncC0+YnVzLCBkYmdwLT5zbG90LCBkYmdwLT5mdW5jKSwKPiAg ICAgICAgICAgICAgICAgICAgICAgUENJX0NPTU1BTkQsIGRiZ3AtPnBjaV9jcik7Cj4gZGlmZiAt LWdpdCBhL3hlbi9kcml2ZXJzL2NoYXIvbnMxNjU1MC5jIGIveGVuL2RyaXZlcnMvY2hhci9uczE2 NTUwLmMKPiBpbmRleCAyMGVhZWNlZTU5Li5lNTE4ZjJkNzkwIDEwMDY0NAo+IC0tLSBhL3hlbi9k cml2ZXJzL2NoYXIvbnMxNjU1MC5jCj4gKysrIGIveGVuL2RyaXZlcnMvY2hhci9uczE2NTUwLmMK PiBAQCAtNjMwLDcgKzYzMCw4IEBAIHN0YXRpYyB2b2lkIHBjaV9zZXJpYWxfZWFybHlfaW5pdChz dHJ1Y3QgbnMxNjU1MCAqdWFydCkKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICh1YXJ0LT5p b19iYXNlICYgMHhGMDAwKSB8Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAoKHVhcnQtPmlv X2Jhc2UgJiAweEYwMDApID4+IDgpKTsKPiAgCj4gLSAgICBwY2lfY29uZl93cml0ZTMyKDAsIHVh cnQtPnBzX2JkZlswXSwgdWFydC0+cHNfYmRmWzFdLCB1YXJ0LT5wc19iZGZbMl0sCj4gKyAgICBw Y2lfY29uZl93cml0ZTMyKFBDSV9TQkRGKDAsIHVhcnQtPnBzX2JkZlswXSwgdWFydC0+cHNfYmRm WzFdLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1YXJ0LT5wc19iZGZbMl0pLAo+ ICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQkFTRV9BRERSRVNTXzAsCj4gICAgICAgICAgICAg ICAgICAgICAgIHVhcnQtPmlvX2Jhc2UgfCBQQ0lfQkFTRV9BRERSRVNTX1NQQUNFX0lPKTsKPiAg ICAgIHBjaV9jb25mX3dyaXRlMTYoUENJX1NCREYoMCwgdWFydC0+cHNfYmRmWzBdLCB1YXJ0LT5w c19iZGZbMV0sCj4gQEAgLTg2MCwxMyArODYxLDE0IEBAIHN0YXRpYyB2b2lkIF9uczE2NTUwX3Jl c3VtZShzdHJ1Y3Qgc2VyaWFsX3BvcnQgKnBvcnQpCj4gIAo+ICAgICAgaWYgKCB1YXJ0LT5iYXIg KQo+ICAgICAgewo+IC0gICAgICAgcGNpX2NvbmZfd3JpdGUzMigwLCB1YXJ0LT5wc19iZGZbMF0s IHVhcnQtPnBzX2JkZlsxXSwgdWFydC0+cHNfYmRmWzJdLAo+ICsgICAgICAgcGNpX2NvbmZfd3Jp dGUzMihQQ0lfU0JERigwLCB1YXJ0LT5wc19iZGZbMF0sIHVhcnQtPnBzX2JkZlsxXSwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWFydC0+cHNfYmRmWzJdKSwKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgUENJX0JBU0VfQUREUkVTU18wICsgdWFydC0+YmFyX2lkeCo0LCB1 YXJ0LT5iYXIpOwo+ICAKPiAgICAgICAgICAvKiBJZiA2NCBiaXQgQkFSLCB3cml0ZSBoaWdoZXIg MzIgYml0cyB0byBCQVIrNCAqLwo+ICAgICAgICAgIGlmICggdWFydC0+YmFyICYgUENJX0JBU0Vf QUREUkVTU19NRU1fVFlQRV82NCApCj4gLSAgICAgICAgICAgIHBjaV9jb25mX3dyaXRlMzIoMCwg dWFydC0+cHNfYmRmWzBdLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICB1YXJ0LT5wc19iZGZb MV0sIHVhcnQtPnBzX2JkZlsyXSwKPiArICAgICAgICAgICAgcGNpX2NvbmZfd3JpdGUzMihQQ0lf U0JERigwLCB1YXJ0LT5wc19iZGZbMF0sICB1YXJ0LT5wc19iZGZbMV0sCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWFydC0+cHNfYmRmWzJdKSwKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgUENJX0JBU0VfQUREUkVTU18wICsgKHVhcnQtPmJhcl9pZHgrMSkqNCwg dWFydC0+YmFyNjQpOwo+ICAKPiAgICAgICAgIHBjaV9jb25mX3dyaXRlMTYoUENJX1NCREYoMCwg dWFydC0+cHNfYmRmWzBdLCB1YXJ0LT5wc19iZGZbMV0sCj4gQEAgLTExMjEsMTEgKzExMjMsMTEg QEAgcGNpX3VhcnRfY29uZmlnKHN0cnVjdCBuczE2NTUwICp1YXJ0LCBib29sX3Qgc2tpcF9hbXQs IHVuc2lnbmVkIGludCBpZHgpCj4gICAgICAgICAgICAgICAgICAvKiBNTUlPIGJhc2VkICovCj4g ICAgICAgICAgICAgICAgICBpZiAoIHBhcmFtLT5tbWlvICYmICEoYmFyICYgUENJX0JBU0VfQURE UkVTU19TUEFDRV9JTykgKQo+ICAgICAgICAgICAgICAgICAgewo+IC0gICAgICAgICAgICAgICAg ICAgIHBjaV9jb25mX3dyaXRlMzIoMCwgYiwgZCwgZiwKPiArICAgICAgICAgICAgICAgICAgICBw Y2lfY29uZl93cml0ZTMyKFBDSV9TQkRGKDAsIGIsIGQsIGYpLAo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUENJX0JBU0VfQUREUkVTU18wICsgYmFyX2lkeCo0LCB+MHUp Owo+ICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHBjaV9jb25mX3JlYWQzMihQQ0lfU0JERigw LCBiLCBkLCBmKSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UENJX0JBU0VfQUREUkVTU18wICsgYmFyX2lkeCAqIDQpOwo+IC0gICAgICAgICAgICAgICAgICAg IHBjaV9jb25mX3dyaXRlMzIoMCwgYiwgZCwgZiwKPiArICAgICAgICAgICAgICAgICAgICBwY2lf Y29uZl93cml0ZTMyKFBDSV9TQkRGKDAsIGIsIGQsIGYpLAo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUENJX0JBU0VfQUREUkVTU18wICsgYmFyX2lkeCo0LCBiYXIpOwo+ ICAKPiAgICAgICAgICAgICAgICAgICAgICAvKiBIYW5kbGUgNjQgYml0IEJBUiBpZiBmb3VuZCAq Lwo+IEBAIC0xMTMzLDExICsxMTM1LDExIEBAIHBjaV91YXJ0X2NvbmZpZyhzdHJ1Y3QgbnMxNjU1 MCAqdWFydCwgYm9vbF90IHNraXBfYW10LCB1bnNpZ25lZCBpbnQgaWR4KQo+ICAgICAgICAgICAg ICAgICAgICAgIHsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgYmFyXzY0ID0gcGNpX2NvbmZf cmVhZDMyKFBDSV9TQkRGKDAsIGIsIGQsIGYpLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBDSV9CQVNFX0FERFJFU1NfMCArIChiYXJfaWR4ICsgMSkgKiA0KTsKPiAt ICAgICAgICAgICAgICAgICAgICAgICAgcGNpX2NvbmZfd3JpdGUzMigwLCBiLCBkLCBmLAo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBwY2lfY29uZl93cml0ZTMyKFBDSV9TQkRGKDAsIGIsIGQs IGYpLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQkFTRV9BRERS RVNTXzAgKyAoYmFyX2lkeCsxKSo0LCB+MHUpOwo+ICAgICAgICAgICAgICAgICAgICAgICAgICBs ZW5fNjQgPSBwY2lfY29uZl9yZWFkMzIoUENJX1NCREYoMCwgYiwgZCwgZiksCj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9CQVNFX0FERFJFU1NfMCArIChiYXJfaWR4 ICsgMSkgKiA0KTsKPiAtICAgICAgICAgICAgICAgICAgICAgICAgcGNpX2NvbmZfd3JpdGUzMigw LCBiLCBkLCBmLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICBwY2lfY29uZl93cml0ZTMyKFBD SV9TQkRGKDAsIGIsIGQsIGYpLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQQ0lfQkFTRV9BRERSRVNTXzAgKyAoYmFyX2lkeCsxKSo0LCBiYXJfNjQpOwo+ICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplICA9ICgodTY0KX4wIDw8IDMyKSB8IFBDSV9CQVNFX0FERFJF U1NfTUVNX01BU0s7Cj4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgJj0gKCh1NjQpbGVu XzY0IDw8IDMyKSB8IGxlbjsKPiBAQCAtMTE1MSwxMSArMTE1MywxMSBAQCBwY2lfdWFydF9jb25m aWcoc3RydWN0IG5zMTY1NTAgKnVhcnQsIGJvb2xfdCBza2lwX2FtdCwgdW5zaWduZWQgaW50IGlk eCkKPiAgICAgICAgICAgICAgICAgIC8qIElPIGJhc2VkICovCj4gICAgICAgICAgICAgICAgICBl bHNlIGlmICggIXBhcmFtLT5tbWlvICYmIChiYXIgJiBQQ0lfQkFTRV9BRERSRVNTX1NQQUNFX0lP KSApCj4gICAgICAgICAgICAgICAgICB7Cj4gLSAgICAgICAgICAgICAgICAgICAgcGNpX2NvbmZf d3JpdGUzMigwLCBiLCBkLCBmLAo+ICsgICAgICAgICAgICAgICAgICAgIHBjaV9jb25mX3dyaXRl MzIoUENJX1NCREYoMCwgYiwgZCwgZiksCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQQ0lfQkFTRV9BRERSRVNTXzAgKyBiYXJfaWR4KjQsIH4wdSk7Cj4gICAgICAgICAg ICAgICAgICAgICAgbGVuID0gcGNpX2NvbmZfcmVhZDMyKFBDSV9TQkRGKDAsIGIsIGQsIGYpLAo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQkFTRV9BRERS RVNTXzApOwo+IC0gICAgICAgICAgICAgICAgICAgIHBjaV9jb25mX3dyaXRlMzIoMCwgYiwgZCwg ZiwKPiArICAgICAgICAgICAgICAgICAgICBwY2lfY29uZl93cml0ZTMyKFBDSV9TQkRGKDAsIGIs IGQsIGYpLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0JBU0Vf QUREUkVTU18wICsgYmFyX2lkeCo0LCBiYXIpOwo+ICAgICAgICAgICAgICAgICAgICAgIHNpemUg PSBsZW4gJiBQQ0lfQkFTRV9BRERSRVNTX0lPX01BU0s7Cj4gIAo+IGRpZmYgLS1naXQgYS94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL2lvbW11X2luaXQuYwo+IGluZGV4IDYwODNkNTFiOTEuLmQxOTUzMTQ5M2IgMTAw NjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYwo+ICsr KyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMKPiBAQCAtODQzLDIy ICs4NDMsMjIgQEAgc3RhdGljIHZvaWQgYW1kX2lvbW11X2VycmF0dW1fNzQ2X3dvcmthcm91bmQo c3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCj4gICAgICAgICAgIChib290X2NwdV9kYXRhLng4Nl9t b2RlbCA+IDB4MWYpICkKPiAgICAgICAgICByZXR1cm47Cj4gIAo+IC0gICAgcGNpX2NvbmZfd3Jp dGUzMihpb21tdS0+c2VnLCBidXMsIGRldiwgZnVuYywgMHhmMCwgMHg5MCk7Cj4gKyAgICBwY2lf Y29uZl93cml0ZTMyKFBDSV9TQkRGMihpb21tdS0+c2VnLCBpb21tdS0+YmRmKSwgMHhmMCwgMHg5 MCk7Cj4gICAgICB2YWx1ZSA9IHBjaV9jb25mX3JlYWQzMihQQ0lfU0JERjIoaW9tbXUtPnNlZywg aW9tbXUtPmJkZiksIDB4ZjQpOwo+ICAKPiAgICAgIGlmICggdmFsdWUgJiAoMSA8PCAyKSApCj4g ICAgICAgICAgcmV0dXJuOwo+ICAKPiAgICAgIC8qIFNlbGVjdCBOQiBpbmRpcmVjdCByZWdpc3Rl ciAweDkwIGFuZCBlbmFibGUgd3JpdGluZyAqLwo+IC0gICAgcGNpX2NvbmZfd3JpdGUzMihpb21t dS0+c2VnLCBidXMsIGRldiwgZnVuYywgMHhmMCwgMHg5MCB8ICgxIDw8IDgpKTsKPiArICAgIHBj aV9jb25mX3dyaXRlMzIoUENJX1NCREYyKGlvbW11LT5zZWcsIGlvbW11LT5iZGYpLCAweGYwLCAw eDkwIHwgKDEgPDwgOCkpOwo+ICAKPiAtICAgIHBjaV9jb25mX3dyaXRlMzIoaW9tbXUtPnNlZywg YnVzLCBkZXYsIGZ1bmMsIDB4ZjQsIHZhbHVlIHwgKDEgPDwgMikpOwo+ICsgICAgcGNpX2NvbmZf d3JpdGUzMihQQ0lfU0JERjIoaW9tbXUtPnNlZywgaW9tbXUtPmJkZiksIDB4ZjQsIHZhbHVlIHwg KDEgPDwgMikpOwo+ICAgICAgcHJpbnRrKFhFTkxPR19JTkZPCj4gICAgICAgICAgICAgIkFNRC1W aTogQXBwbHlpbmcgZXJyYXR1bSA3NDYgd29ya2Fyb3VuZCBmb3IgSU9NTVUgYXQgJTA0eDolMDJ4 OiUwMnguJXVcbiIsCj4gICAgICAgICAgICAgaW9tbXUtPnNlZywgYnVzLCBkZXYsIGZ1bmMpOwo+ ICAKPiAgICAgIC8qIENsZWFyIHRoZSBlbmFibGUgd3JpdGluZyBiaXQgKi8KPiAtICAgIHBjaV9j b25mX3dyaXRlMzIoaW9tbXUtPnNlZywgYnVzLCBkZXYsIGZ1bmMsIDB4ZjAsIDB4OTApOwo+ICsg ICAgcGNpX2NvbmZfd3JpdGUzMihQQ0lfU0JERjIoaW9tbXUtPnNlZywgaW9tbXUtPmJkZiksIDB4 ZjAsIDB4OTApOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBlbmFibGVfaW9tbXUoc3RydWN0IGFt ZF9pb21tdSAqaW9tbXUpCj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Bj aS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKPiBpbmRleCBmZjQwMGU5YTMxLi41 MjcxZjhkNjljIDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCj4g KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKPiBAQCAtNjM4LDcgKzYzOCw3IEBA IHVuc2lnbmVkIGludCBwY2lfc2l6ZV9tZW1fYmFyKHBjaV9zYmRmX3Qgc2JkZiwgdW5zaWduZWQg aW50IHBvcywKPiAgICAgIEFTU0VSVCghKChmbGFncyAmIFBDSV9CQVJfVkYpICYmIChmbGFncyAm IFBDSV9CQVJfUk9NKSkpOwo+ICAgICAgQVNTRVJUKChmbGFncyAmIFBDSV9CQVJfUk9NKSB8fAo+ ICAgICAgICAgICAgIChiYXIgJiBQQ0lfQkFTRV9BRERSRVNTX1NQQUNFKSA9PSBQQ0lfQkFTRV9B RERSRVNTX1NQQUNFX01FTU9SWSk7Cj4gLSAgICBwY2lfY29uZl93cml0ZTMyKHNiZGYuc2VnLCBz YmRmLmJ1cywgc2JkZi5kZXYsIHNiZGYuZm4sIHBvcywgfjApOwo+ICsgICAgcGNpX2NvbmZfd3Jp dGUzMihzYmRmLCBwb3MsIH4wKTsKPiAgICAgIGlmICggaXM2NGJpdHMgKQo+ICAgICAgewo+ICAg ICAgICAgIGlmICggZmxhZ3MgJiBQQ0lfQkFSX0xBU1QgKQo+IEBAIC02NTEsMTcgKzY1MSwxNyBA QCB1bnNpZ25lZCBpbnQgcGNpX3NpemVfbWVtX2JhcihwY2lfc2JkZl90IHNiZGYsIHVuc2lnbmVk IGludCBwb3MsCj4gICAgICAgICAgICAgIHJldHVybiAxOwo+ICAgICAgICAgIH0KPiAgICAgICAg ICBoaSA9IHBjaV9jb25mX3JlYWQzMihzYmRmLCBwb3MgKyA0KTsKPiAtICAgICAgICBwY2lfY29u Zl93cml0ZTMyKHNiZGYuc2VnLCBzYmRmLmJ1cywgc2JkZi5kZXYsIHNiZGYuZm4sIHBvcyArIDQs IH4wKTsKPiArICAgICAgICBwY2lfY29uZl93cml0ZTMyKHNiZGYsIHBvcyArIDQsIH4wKTsKPiAg ICAgIH0KPiAgICAgIHNpemUgPSBwY2lfY29uZl9yZWFkMzIoc2JkZiwgcG9zKSAmIG1hc2s7Cj4g ICAgICBpZiAoIGlzNjRiaXRzICkKPiAgICAgIHsKPiAgICAgICAgICBzaXplIHw9ICh1aW50NjRf dClwY2lfY29uZl9yZWFkMzIoc2JkZiwgcG9zICsgNCkgPDwgMzI7Cj4gLSAgICAgICAgcGNpX2Nv bmZfd3JpdGUzMihzYmRmLnNlZywgc2JkZi5idXMsIHNiZGYuZGV2LCBzYmRmLmZuLCBwb3MgKyA0 LCBoaSk7Cj4gKyAgICAgICAgcGNpX2NvbmZfd3JpdGUzMihzYmRmLCBwb3MgKyA0LCBoaSk7Cj4g ICAgICB9Cj4gICAgICBlbHNlIGlmICggc2l6ZSApCj4gICAgICAgICAgc2l6ZSB8PSAodWludDY0 X3QpfjAgPDwgMzI7Cj4gLSAgICBwY2lfY29uZl93cml0ZTMyKHNiZGYuc2VnLCBzYmRmLmJ1cywg c2JkZi5kZXYsIHNiZGYuZm4sIHBvcywgYmFyKTsKPiArICAgIHBjaV9jb25mX3dyaXRlMzIoc2Jk ZiwgcG9zLCBiYXIpOwo+ICAgICAgc2l6ZSA9IC1zaXplOwo+ICAKPiAgICAgIGlmICggcGFkZHIg KQo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcXVpcmtzLmMgYi94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcXVpcmtzLmMKPiBpbmRleCAyOGU5NTk3MDE0Li5i NmUyZDMxM2YwIDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xdWly a3MuYwo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xdWlya3MuYwo+IEBAIC00 NDEsNyArNDQxLDcgQEAgdm9pZCBwY2lfdnRkX3F1aXJrKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpw ZGV2KQo+ICAgICAgY2FzZSAweDM3Mjg6IC8qIFhlb24gQzU1MDAvQzM1MDAgKEphc3BlckZvcmVz dCkgKi8KPiAgICAgIGNhc2UgMHgzYzI4OiAvKiBTYW5keWJyaWRnZSAqLwo+ICAgICAgICAgIHZh bCA9IHBjaV9jb25mX3JlYWQzMihwZGV2LT5zYmRmLCAweDFBQyk7Cj4gLSAgICAgICAgcGNpX2Nv bmZfd3JpdGUzMihzZWcsIGJ1cywgZGV2LCBmdW5jLCAweDFBQywgdmFsIHwgKDEgPDwgMzEpKTsK PiArICAgICAgICBwY2lfY29uZl93cml0ZTMyKHBkZXYtPnNiZGYsIDB4MUFDLCB2YWwgfCAoMSA8 PCAzMSkpOwo+ICAgICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyAiTWFza2VkIFZULWQgZXJyb3Ig c2lnbmFsaW5nIG9uICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+ICAgICAgICAgICAgICAgICBzZWcs IGJ1cywgZGV2LCBmdW5jKTsKPiAgICAgICAgICBicmVhazsKPiBAQCAtNDg5LDkgKzQ4OSw5IEBA IHZvaWQgcGNpX3Z0ZF9xdWlyayhjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldikKPiAgICAgICAg ICAgICAgYWN0aW9uID0gIkZvdW5kIG1hc2tlZCI7Cj4gICAgICAgICAgZWxzZSBpZiAoICFmZiAp Cj4gICAgICAgICAgewo+IC0gICAgICAgICAgICBwY2lfY29uZl93cml0ZTMyKHNlZywgYnVzLCBk ZXYsIGZ1bmMsIHBvcyArIFBDSV9FUlJfVU5DT1JfTUFTSywKPiArICAgICAgICAgICAgcGNpX2Nv bmZfd3JpdGUzMihwZGV2LT5zYmRmLCBwb3MgKyBQQ0lfRVJSX1VOQ09SX01BU0ssCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmFsIHwgUENJX0VSUl9VTkNfVU5TVVApOwo+IC0gICAg ICAgICAgICBwY2lfY29uZl93cml0ZTMyKHNlZywgYnVzLCBkZXYsIGZ1bmMsIHBvcyArIFBDSV9F UlJfQ09SX01BU0ssCj4gKyAgICAgICAgICAgIHBjaV9jb25mX3dyaXRlMzIocGRldi0+c2JkZiwg cG9zICsgUENJX0VSUl9DT1JfTUFTSywKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 YWwyIHwgUENJX0VSUl9DT1JfQURWX05GQVQpOwo+ICAgICAgICAgICAgICBhY3Rpb24gPSAiTWFz a2VkIjsKPiAgICAgICAgICB9Cj4gQEAgLTUwMCw3ICs1MDAsNyBAQCB2b2lkIHBjaV92dGRfcXVp cmsoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4gIAo+ICAgICAgICAgIC8qIFhQVU5DRVJS TVNLIFNlbmQgQ29tcGxldGlvbiB3aXRoIFVuc3VwcG9ydGVkIFJlcXVlc3QgKi8KPiAgICAgICAg ICB2YWwgPSBwY2lfY29uZl9yZWFkMzIocGRldi0+c2JkZiwgMHgyMGMpOwo+IC0gICAgICAgIHBj aV9jb25mX3dyaXRlMzIoc2VnLCBidXMsIGRldiwgZnVuYywgMHgyMGMsIHZhbCB8ICgxIDw8IDQp KTsKPiArICAgICAgICBwY2lfY29uZl93cml0ZTMyKHBkZXYtPnNiZGYsIDB4MjBjLCB2YWwgfCAo MSA8PCA0KSk7Cj4gIAo+ICAgICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyAiJXMgVVIgc2lnbmFs aW5nIG9uICUwNHg6JTAyeDolMDJ4LiV1XG4iLAo+ICAgICAgICAgICAgICAgICBhY3Rpb24sIHNl ZywgYnVzLCBkZXYsIGZ1bmMpOwo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL2hlYWRl ci5jIGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYwo+IGluZGV4IGYzNzdlNmFiZGYuLjNjNzk0 ZjQ4NmQgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYwo+ICsrKyBiL3hl bi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMKPiBAQCAtODUsNyArODUsNiBAQCBzdGF0aWMgdm9pZCBt b2RpZnlfZGVjb2RpbmcoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVpbnQxNl90IGNtZCwK PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcm9tX29ubHkpCj4gIHsKPiAgICAg IHN0cnVjdCB2cGNpX2hlYWRlciAqaGVhZGVyID0gJnBkZXYtPnZwY2ktPmhlYWRlcjsKPiAtICAg IHVpbnQ4X3Qgc2xvdCA9IFBDSV9TTE9UKHBkZXYtPmRldmZuKSwgZnVuYyA9IFBDSV9GVU5DKHBk ZXYtPmRldmZuKTsKPiAgICAgIGJvb2wgbWFwID0gY21kICYgUENJX0NPTU1BTkRfTUVNT1JZOwo+ ICAgICAgdW5zaWduZWQgaW50IGk7Cj4gIAo+IEBAIC0xMTMsNyArMTEyLDcgQEAgc3RhdGljIHZv aWQgbW9kaWZ5X2RlY29kaW5nKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1aW50MTZfdCBj bWQsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXAgPyBQQ0lfUk9NX0FERFJFU1Nf RU5BQkxFIDogMCk7Cj4gIAo+ICAgICAgICAgICAgICBoZWFkZXItPmJhcnNbaV0uZW5hYmxlZCA9 IGhlYWRlci0+cm9tX2VuYWJsZWQgPSBtYXA7Cj4gLSAgICAgICAgICAgIHBjaV9jb25mX3dyaXRl MzIocGRldi0+c2VnLCBwZGV2LT5idXMsIHNsb3QsIGZ1bmMsIHJvbV9wb3MsIHZhbCk7Cj4gKyAg ICAgICAgICAgIHBjaV9jb25mX3dyaXRlMzIocGRldi0+c2JkZiwgcm9tX3BvcywgdmFsKTsKPiAg ICAgICAgICAgICAgcmV0dXJuOwo+ICAgICAgICAgIH0KPiAgCj4gQEAgLTM5NSw3ICszOTQsNyBA QCBzdGF0aWMgdm9pZCBiYXJfd3JpdGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2ln bmVkIGludCByZWcsCj4gICAgICAgICAgdmFsIHw9IGJhci0+cHJlZmV0Y2hhYmxlID8gUENJX0JB U0VfQUREUkVTU19NRU1fUFJFRkVUQ0ggOiAwOwo+ICAgICAgfQo+ICAKPiAtICAgIHBjaV9jb25m X3dyaXRlMzIocGRldi0+c2VnLCBwZGV2LT5idXMsIHNsb3QsIGZ1bmMsIHJlZywgdmFsKTsKPiAr ICAgIHBjaV9jb25mX3dyaXRlMzIocGRldi0+c2JkZiwgcmVnLCB2YWwpOwo+ICB9Cj4gIAo+ICBz dGF0aWMgdm9pZCByb21fd3JpdGUoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVk IGludCByZWcsCj4gQEAgLTQyNiw3ICs0MjUsNyBAQCBzdGF0aWMgdm9pZCByb21fd3JpdGUoY29u c3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsCj4gICAgICB7Cj4gICAg ICAgICAgLyogSnVzdCB1cGRhdGUgdGhlIFJPTSBCQVIgZmllbGQuICovCj4gICAgICAgICAgaGVh ZGVyLT5yb21fZW5hYmxlZCA9IG5ld19lbmFibGVkOwo+IC0gICAgICAgIHBjaV9jb25mX3dyaXRl MzIocGRldi0+c2VnLCBwZGV2LT5idXMsIHNsb3QsIGZ1bmMsIHJlZywgdmFsKTsKPiArICAgICAg ICBwY2lfY29uZl93cml0ZTMyKHBkZXYtPnNiZGYsIHJlZywgdmFsKTsKPiAgICAgIH0KPiAgICAg IC8qCj4gICAgICAgKiBQYXNzIFBDSV9DT01NQU5EX01FTU9SWSBvciAwIHRvIHNpZ25hbCBhIG1h cC91bm1hcCByZXF1ZXN0LCBub3RlIHRoYXQKPiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvdnBj aS92cGNpLmMgYi94ZW4vZHJpdmVycy92cGNpL3ZwY2kuYwo+IGluZGV4IGI2MTY3MmYyOTUuLmRk YmZhNTY0ODkgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMKPiArKysgYi94 ZW4vZHJpdmVycy92cGNpL3ZwY2kuYwo+IEBAIC0yNTMsNyArMjUzLDcgQEAgc3RhdGljIHZvaWQg dnBjaV93cml0ZV9odyhwY2lfc2JkZl90IHNiZGYsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVk IGludCBzaXplLAo+ICAgICAgc3dpdGNoICggc2l6ZSApCj4gICAgICB7Cj4gICAgICBjYXNlIDQ6 Cj4gLSAgICAgICAgcGNpX2NvbmZfd3JpdGUzMihzYmRmLnNlZywgc2JkZi5idXMsIHNiZGYuZGV2 LCBzYmRmLmZuLCByZWcsIGRhdGEpOwo+ICsgICAgICAgIHBjaV9jb25mX3dyaXRlMzIoc2JkZiwg cmVnLCBkYXRhKTsKPiAgICAgICAgICBicmVhazsKPiAgCj4gICAgICBjYXNlIDM6Cj4gZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9wY2kuaCBiL3hlbi9pbmNsdWRlL3hlbi9wY2kuaAo+IGlu ZGV4IGNiOTBkMmY3ODUuLmU2YWY0NWNmZTcgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUveGVu L3BjaS5oCj4gKysrIGIveGVuL2luY2x1ZGUveGVuL3BjaS5oCj4gQEAgLTE3Nyw5ICsxNzcsNyBA QCB1aW50MTZfdCBwY2lfY29uZl9yZWFkMTYocGNpX3NiZGZfdCBzYmRmLCB1bnNpZ25lZCBpbnQg cmVnKTsKPiAgdWludDMyX3QgcGNpX2NvbmZfcmVhZDMyKHBjaV9zYmRmX3Qgc2JkZiwgdW5zaWdu ZWQgaW50IHJlZyk7Cj4gIHZvaWQgcGNpX2NvbmZfd3JpdGU4KHBjaV9zYmRmX3Qgc2JkZiwgdW5z aWduZWQgaW50IHJlZywgdWludDhfdCBkYXRhKTsKPiAgdm9pZCBwY2lfY29uZl93cml0ZTE2KHBj aV9zYmRmX3Qgc2JkZiwgdW5zaWduZWQgaW50IHJlZywgdWludDE2X3QgZGF0YSk7Cj4gLXZvaWQg cGNpX2NvbmZfd3JpdGUzMigKPiAtICAgIHVuc2lnbmVkIGludCBzZWcsIHVuc2lnbmVkIGludCBi dXMsIHVuc2lnbmVkIGludCBkZXYsIHVuc2lnbmVkIGludCBmdW5jLAo+IC0gICAgdW5zaWduZWQg aW50IHJlZywgdWludDMyX3QgZGF0YSk7Cj4gK3ZvaWQgcGNpX2NvbmZfd3JpdGUzMihwY2lfc2Jk Zl90IHNiZGYsIHVuc2lnbmVkIGludCByZWcsIHVpbnQzMl90IGRhdGEpOwo+ICB1aW50MzJfdCBw Y2lfY29uZl9yZWFkKHVpbnQzMl90IGNmOCwgdWludDhfdCBvZmZzZXQsIHVpbnQ4X3QgYnl0ZXMp Owo+ICB2b2lkIHBjaV9jb25mX3dyaXRlKHVpbnQzMl90IGNmOCwgdWludDhfdCBvZmZzZXQsIHVp bnQ4X3QgYnl0ZXMsIHVpbnQzMl90IGRhdGEpOwo+ICBpbnQgcGNpX21tY2ZnX3JlYWQodW5zaWdu ZWQgaW50IHNlZywgdW5zaWduZWQgaW50IGJ1cywKPiAtLSAKPiAyLjIwLjEgKEFwcGxlIEdpdC0x MTcpCj4gCgotLSAKQnJpYW4gV29vZHMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m by94ZW4tZGV2ZWw=