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 763BEC31E5B for ; Wed, 19 Jun 2019 16:00:18 +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 3567E2187F for ; Wed, 19 Jun 2019 16:00:18 +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="yjJVN27m" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3567E2187F 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 1hdd09-0004wp-Fa; Wed, 19 Jun 2019 15:59:57 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hdd07-0004we-Uz for xen-devel@lists.xenproject.org; Wed, 19 Jun 2019 15:59:56 +0000 X-Inumbo-ID: 46aed782-92ab-11e9-913d-c77e9ecc59f0 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (unknown [40.107.77.42]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 46aed782-92ab-11e9-913d-c77e9ecc59f0; Wed, 19 Jun 2019 15:59:53 +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=ab/nmwLDJy6QIqO/VKhFIYnuzTUg31o/PrG3/cToqFI=; b=yjJVN27mrjby1UrhbBpagSR/Uoi13uF4T19VWkXh9XafYqEdHKshVQQMVhHh8d6jWx6lY9S0aYGW0wa49Cw8MQbrHgceLdeJPS0DrHZG+YRJ1EUHd8fipgfieqnDcBqcYIO1g5/d6UKxhjXiQI6hNc5NUWpFfPHcLWuhFeRPasc= Received: from DM6PR12MB3515.namprd12.prod.outlook.com (20.179.106.151) by DM6PR12MB3561.namprd12.prod.outlook.com (20.178.199.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.15; Wed, 19 Jun 2019 15:59:52 +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 15:59:52 +0000 From: "Woods, Brian" To: Roger Pau Monne Thread-Topic: [PATCH v3 07/13] pci: switch pci_conf_read8 to use pci_sbdf_t Thread-Index: AQHVHRKp+ixQwGaP6kex6QzeN+tX2aajNeaA Date: Wed, 19 Jun 2019 15:59:51 +0000 Message-ID: <20190619155949.GB20907@amd.com> References: <20190607092232.83179-1-roger.pau@citrix.com> <20190607092232.83179-8-roger.pau@citrix.com> In-Reply-To: <20190607092232.83179-8-roger.pau@citrix.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: DM6PR06CA0058.namprd06.prod.outlook.com (2603:10b6:5:54::35) 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: 112d3554-fdf0-4089-b2c7-08d6f4cf29c7 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:DM6PR12MB3561; x-ms-traffictypediagnostic: DM6PR12MB3561: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4125; x-forefront-prvs: 0073BFEF03 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(376002)(346002)(366004)(136003)(39860400002)(189003)(199004)(2616005)(30864003)(256004)(476003)(8676002)(5660300002)(2906002)(8936002)(11346002)(81166006)(446003)(53936002)(53946003)(6512007)(81156014)(14444005)(6246003)(6916009)(1076003)(68736007)(316002)(229853002)(6436002)(6486002)(486006)(7416002)(36756003)(72206003)(33656002)(14454004)(186003)(26005)(6116002)(54906003)(102836004)(52116002)(99286004)(3846002)(76176011)(386003)(6506007)(66446008)(7736002)(66946007)(305945005)(71190400001)(71200400001)(4326008)(25786009)(66066001)(64756008)(66476007)(66556008)(86362001)(73956011)(478600001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR12MB3561; 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: YxRCYGKUSFISfeOwfxUF/RdrYDYr2PpPJrcT0GiILoHhn1gjEhSedG9fPRBhw3MTyd6u0uTQQN//FSqQ2LE0V64Trph4Jg6s63LD1h9pnJA340XTFtmwM9+igafvuyJIqEi1lz7Oe2C3x8MEnynGM+wn72AZ8pd85zKFx+MDGnx8AzR2TCyXOekXbrH2vISKawYIt5U7qwMtHJu2egoWUINPmvwibHluHEFY5hfQXRop5T0oOil6Oyvd7PvQb+GNEpqUma9VwRVWIjTy+nw39G2Vm6kdeKqvpZyxYJUvS6Pg7YCpttvRcjOlfg6SVCIQyHZR+66v5ZWEUMcK0C83R/KgTLdazGb5SKM2tV/OLL2XCl0vV5/tp/GnvUqrw/ahYv8WwZD7ja7d60OQs+1MC5/w8+3InrrSKnHjxgw9n9M= Content-ID: <97072B1188C5904BB3AFA132D3B96A86@namprd12.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 112d3554-fdf0-4089-b2c7-08d6f4cf29c7 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jun 2019 15:59:51.9372 (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: DM6PR12MB3561 Subject: Re: [Xen-devel] [PATCH v3 07/13] pci: switch pci_conf_read8 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" T24gRnJpLCBKdW4gMDcsIDIwMTkgYXQgMTE6MjI6MjZBTSArMDIwMCwgUm9nZXIgUGF1IE1vbm5l IHdyb3RlOgo+IFRoaXMgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIHBhcmFtZXRlcnMgb2YgdGhlIGZ1 bmN0aW9uIHRvIHR3bywgYW5kCj4gc2ltcGxpZmllcyBzb21lIG9mIHRoZSBjYWxsaW5nIHNpdGVz Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu Y29tPgoKQXMgZmFyIGFzIEFNRCBJT01NVQoKQWNrZWQtYnk6IEJyaWFuIFdvb2RzIDxicmlhbi53 b29kc0BhbWQuY29tPgoKPiAtLS0KPiBDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29t Pgo+IENjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgo+IENjOiBX ZWkgTGl1IDx3bEB4ZW4ub3JnPgo+IENjOiBHZW9yZ2UgRHVubGFwIDxHZW9yZ2UuRHVubGFwQGV1 LmNpdHJpeC5jb20+Cj4gQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29t Pgo+IENjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgo+IENjOiBLb25yYWQg Unplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+Cj4gQ2M6IFN0ZWZhbm8gU3Rh YmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KPiBDYzogVGltIERlZWdhbiA8dGltQHhl bi5vcmc+Cj4gQ2M6IFN1cmF2ZWUgU3V0aGlrdWxwYW5pdCA8c3VyYXZlZS5zdXRoaWt1bHBhbml0 QGFtZC5jb20+Cj4gQ2M6IEJyaWFuIFdvb2RzIDxicmlhbi53b29kc0BhbWQuY29tPgo+IENjOiBL ZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KPiAtLS0KPiAgeGVuL2FyY2gveDg2L2Nw dS9hbWQuYyAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KPiAgeGVuL2FyY2gveDg2L21zaS5j ICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHhlbi9hcmNoL3g4Ni94ODZfNjQvcGNp LmMgICAgICAgICAgICAgICAgfCAyNSArKysrKysrKysrKystLS0tLS0tLS0tLS0KPiAgeGVuL2Ry aXZlcnMvY2hhci9laGNpLWRiZ3AuYyAgICAgICAgICAgICB8ICA1ICsrKy0tCj4gIHhlbi9kcml2 ZXJzL2NoYXIvbnMxNjU1MC5jICAgICAgICAgICAgICAgfCAgNiArKysrLS0KPiAgeGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYyB8ICAyICstCj4gIHhlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3BjaS5jICAgICAgICAgICAgfCAyMSArKysrKysrKy0tLS0tLS0tLS0tLQo+ICB4 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZG1hci5jICAgICAgIHwgIDYgKysrLS0tCj4gIHhl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xdWlya3MuYyAgICAgfCAgNiArKystLS0KPiAgeGVu L2RyaXZlcnMvcGNpL3BjaS5jICAgICAgICAgICAgICAgICAgICB8ICA5ICsrKystLS0tLQo+ICB4 ZW4vZHJpdmVycy92aWRlby92Z2EuYyAgICAgICAgICAgICAgICAgIHwgIDMgKy0tCj4gIHhlbi9k cml2ZXJzL3ZwY2kvaGVhZGVyLmMgICAgICAgICAgICAgICAgfCAgMyArLS0KPiAgeGVuL2RyaXZl cnMvdnBjaS92cGNpLmMgICAgICAgICAgICAgICAgICB8ICA4ICsrKy0tLS0tCj4gIHhlbi9pbmNs dWRlL3hlbi9wY2kuaCAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0tCj4gIDE0IGZpbGVzIGNo YW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDU3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvY3B1L2FtZC5jIGIveGVuL2FyY2gveDg2L2NwdS9hbWQuYwo+IGluZGV4 IDg0MDRjZjI5MGYuLjNjMDY5MzkxZjQgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L2NwdS9h bWQuYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMKPiBAQCAtNDIwLDEyICs0MjAsMTIg QEAgc3RhdGljIHZvaWQgZGlzYWJsZV9jMV9yYW1waW5nKHZvaWQpCj4gIAlucl9ub2RlcyA9ICgo cGNpX2NvbmZfcmVhZDMyKDAsIDAsIDB4MTgsIDB4MCwgMHg2MCk+PjQpJjB4MDcpKzE7Cj4gIAlm b3IgKG5vZGUgPSAwOyBub2RlIDwgbnJfbm9kZXM7IG5vZGUrKykgewo+ICAJCS8qIFBNTTc6IGJ1 cz0wLCBkZXY9MHgxOCtub2RlLCBmdW5jdGlvbj0weDMsIHJlZ2lzdGVyPTB4ODcuICovCj4gLQkJ cG1tNyA9IHBjaV9jb25mX3JlYWQ4KDAsIDAsIDB4MTgrbm9kZSwgMHgzLCAweDg3KTsKPiArCQlw bW03ID0gcGNpX2NvbmZfcmVhZDgoUENJX1NCREYoMCwgMCwgMHgxOCArIG5vZGUsIDMpLCAweDg3 KTsKPiAgCQkvKiBJbnZhbGlkIHJlYWQgbWVhbnMgd2UndmUgdXBkYXRlZCBldmVyeSBOb3J0aGJy aWRnZS4gKi8KPiAgCQlpZiAocG1tNyA9PSAweEZGKQo+ICAJCQlicmVhazsKPiAgCQlwbW03ICY9 IDB4RkM7IC8qIGNsZWFyIHBtbTdbMTowXSAqLwo+IC0JCXBjaV9jb25mX3dyaXRlOCgwLCAwLCAw eDE4K25vZGUsIDB4MywgMHg4NywgcG1tNyk7Cj4gKwkJcGNpX2NvbmZfd3JpdGU4KDAsIDAsIDB4 MTggKyBub2RlLCAweDMsIDB4ODcsIHBtbTcpOwo+ICAJCXByaW50ayAoIkFNRDogRGlzYWJsaW5n IEMxIENsb2NrIFJhbXBpbmcgTm9kZSAjJXhcbiIsIG5vZGUpOwo+ICAJfQo+ICB9Cj4gZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9tc2kuYyBiL3hlbi9hcmNoL3g4Ni9tc2kuYwo+IGluZGV4IGJh YmM0MTQ3YzQuLjY3MzM5ZWRjNjggMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L21zaS5jCj4g KysrIGIveGVuL2FyY2gveDg2L21zaS5jCj4gQEAgLTgwMCw3ICs4MDAsNyBAQCBzdGF0aWMgdTY0 IHJlYWRfcGNpX21lbV9iYXIodTE2IHNlZywgdTggYnVzLCB1OCBzbG90LCB1OCBmdW5jLCB1OCBi aXIsIGludCB2ZikKPiAgICAgICAgICBkaXNwID0gdmYgKiBwZGV2LT52Zl9ybGVuW2Jpcl07Cj4g ICAgICAgICAgbGltaXQgPSBQQ0lfU1JJT1ZfTlVNX0JBUlM7Cj4gICAgICB9Cj4gLSAgICBlbHNl IHN3aXRjaCAoIHBjaV9jb25mX3JlYWQ4KHNlZywgYnVzLCBzbG90LCBmdW5jLAo+ICsgICAgZWxz ZSBzd2l0Y2ggKCBwY2lfY29uZl9yZWFkOChQQ0lfU0JERihzZWcsIGJ1cywgc2xvdCwgZnVuYyks Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9IRUFERVJfVFlQRSkgJiAw eDdmICkKPiAgICAgIHsKPiAgICAgIGNhc2UgUENJX0hFQURFUl9UWVBFX05PUk1BTDoKPiBkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9wY2kuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQv cGNpLmMKPiBpbmRleCA2ZTNmNWNmMjAzLi5iNzAzODNmYjAzIDEwMDY0NAo+IC0tLSBhL3hlbi9h cmNoL3g4Ni94ODZfNjQvcGNpLmMKPiArKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L3BjaS5jCj4g QEAgLTgsMjcgKzgsMjYgQEAKPiAgI2luY2x1ZGUgPHhlbi9wY2kuaD4KPiAgI2luY2x1ZGUgPGFz bS9pby5oPgo+ICAKPiAtI2RlZmluZSBQQ0lfQ09ORl9BRERSRVNTKGJ1cywgZGV2LCBmdW5jLCBy ZWcpIFwKPiAtICAgICgweDgwMDAwMDAwIHwgKGJ1cyA8PCAxNikgfCAoZGV2IDw8IDExKSB8IChm dW5jIDw8IDgpIHwgKHJlZyAmIH4zKSkKPiArI2RlZmluZSBQQ0lfQ09ORl9BRERSRVNTKHNiZGYs IHJlZykgXAo+ICsgICAgKDB4ODAwMDAwMDAgfCAoKHNiZGYpLmJkZiA8PCA4KSB8ICgocmVnKSAm IH4zKSkKPiAgCj4gLXVpbnQ4X3QgcGNpX2NvbmZfcmVhZDgoCj4gLSAgICB1bnNpZ25lZCBpbnQg c2VnLCB1bnNpZ25lZCBpbnQgYnVzLCB1bnNpZ25lZCBpbnQgZGV2LCB1bnNpZ25lZCBpbnQgZnVu YywKPiAtICAgIHVuc2lnbmVkIGludCByZWcpCj4gK3VpbnQ4X3QgcGNpX2NvbmZfcmVhZDgocGNp X3NiZGZfdCBzYmRmLCB1bnNpZ25lZCBpbnQgcmVnKQo+ICB7Cj4gLSAgICB1MzIgdmFsdWU7Cj4g KyAgICB1aW50MzJfdCB2YWx1ZTsKPiAgCj4gLSAgICBpZiAoIHNlZyB8fCByZWcgPiAyNTUgKQo+ ICsgICAgaWYgKCBzYmRmLnNlZyB8fCByZWcgPiAyNTUgKQo+ICAgICAgewo+IC0gICAgICAgIHBj aV9tbWNmZ19yZWFkKHNlZywgYnVzLCBQQ0lfREVWRk4oZGV2LCBmdW5jKSwgcmVnLCAxLCAmdmFs dWUpOwo+ICsgICAgICAgIHBjaV9tbWNmZ19yZWFkKHNiZGYuc2VnLCBzYmRmLmJ1cywgc2JkZi5k ZXZmbiwgcmVnLCAxLCAmdmFsdWUpOwo+ICAgICAgICAgIHJldHVybiB2YWx1ZTsKPiAgICAgIH0K PiAtICAgIGVsc2UKPiAtICAgIHsKPiAtICAgICAgICBCVUdfT04oKGJ1cyA+IDI1NSkgfHwgKGRl diA+IDMxKSB8fCAoZnVuYyA+IDcpKTsKPiAtICAgICAgICByZXR1cm4gcGNpX2NvbmZfcmVhZChQ Q0lfQ09ORl9BRERSRVNTKGJ1cywgZGV2LCBmdW5jLCByZWcpLCByZWcgJiAzLCAxKTsKPiAtICAg IH0KPiArCj4gKyAgICByZXR1cm4gcGNpX2NvbmZfcmVhZChQQ0lfQ09ORl9BRERSRVNTKHNiZGYs IHJlZyksIHJlZyAmIDMsIDEpOwo+ICB9Cj4gIAo+ICsjdW5kZWYgUENJX0NPTkZfQUREUkVTUwo+ ICsjZGVmaW5lIFBDSV9DT05GX0FERFJFU1MoYnVzLCBkZXYsIGZ1bmMsIHJlZykgXAo+ICsgICAg KDB4ODAwMDAwMDAgfCAoYnVzIDw8IDE2KSB8IChkZXYgPDwgMTEpIHwgKGZ1bmMgPDwgOCkgfCAo cmVnICYgfjMpKQo+ICsKPiAgdWludDE2X3QgcGNpX2NvbmZfcmVhZDE2KAo+ICAgICAgdW5zaWdu ZWQgaW50IHNlZywgdW5zaWduZWQgaW50IGJ1cywgdW5zaWduZWQgaW50IGRldiwgdW5zaWduZWQg aW50IGZ1bmMsCj4gICAgICB1bnNpZ25lZCBpbnQgcmVnKQo+IGRpZmYgLS1naXQgYS94ZW4vZHJp dmVycy9jaGFyL2VoY2ktZGJncC5jIGIveGVuL2RyaXZlcnMvY2hhci9laGNpLWRiZ3AuYwo+IGlu ZGV4IDQ3NWRjNDE3NjcuLjcxZjBhYWE2YWMgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvY2hh ci9laGNpLWRiZ3AuYwo+ICsrKyBiL3hlbi9kcml2ZXJzL2NoYXIvZWhjaS1kYmdwLmMKPiBAQCAt NzEzLDcgKzcxMyw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgX19pbml0IGZpbmRfZGJncChzdHJ1 Y3QgZWhjaV9kYmdwICpkYmdwLAo+ICAgICAgICAgICAgICAgICAgY2FwID0gX19maW5kX2RiZ3Ao YnVzLCBzbG90LCBmdW5jKTsKPiAgICAgICAgICAgICAgICAgIGlmICggIWNhcCB8fCBlaGNpX251 bS0tICkKPiAgICAgICAgICAgICAgICAgIHsKPiAtICAgICAgICAgICAgICAgICAgICBpZiAoICFm dW5jICYmICEocGNpX2NvbmZfcmVhZDgoMCwgYnVzLCBzbG90LCBmdW5jLAo+ICsgICAgICAgICAg ICAgICAgICAgIGlmICggIWZ1bmMgJiYgIShwY2lfY29uZl9yZWFkOChQQ0lfU0JERigwLCBidXMs IHNsb3QsIGZ1bmMpLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQQ0lfSEVBREVSX1RZUEUpICYgMHg4MCkgKQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsKPiAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiBAQCAtMTMx Miw3ICsxMzEyLDggQEAgc3RhdGljIHZvaWQgX19pbml0IGVoY2lfZGJncF9pbml0X3ByZWlycShz dHJ1Y3Qgc2VyaWFsX3BvcnQgKnBvcnQpCj4gICAgICBvZmZzZXQgPSAoZGVidWdfcG9ydCA+PiAx NikgJiAweGZmZjsKPiAgCj4gICAgICAvKiBkb3VibGUgY2hlY2sgaWYgdGhlIG1lbSBzcGFjZSBp cyBlbmFibGVkICovCj4gLSAgICBkYmdwLT5wY2lfY3IgPSBwY2lfY29uZl9yZWFkOCgwLCBkYmdw LT5idXMsIGRiZ3AtPnNsb3QsIGRiZ3AtPmZ1bmMsCj4gKyAgICBkYmdwLT5wY2lfY3IgPSBwY2lf Y29uZl9yZWFkOChQQ0lfU0JERigwLCBkYmdwLT5idXMsIGRiZ3AtPnNsb3QsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYmdwLT5mdW5jKSwKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9DT01NQU5EKTsKPiAgICAgIGlmICggIShk YmdwLT5wY2lfY3IgJiBQQ0lfQ09NTUFORF9NRU1PUlkpICkKPiAgICAgIHsKPiBkaWZmIC0tZ2l0 IGEveGVuL2RyaXZlcnMvY2hhci9uczE2NTUwLmMgYi94ZW4vZHJpdmVycy9jaGFyL25zMTY1NTAu Ywo+IGluZGV4IDE4OWUxMjFiN2UuLjU0NzI3MGQwZTEgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZl cnMvY2hhci9uczE2NTUwLmMKPiArKysgYi94ZW4vZHJpdmVycy9jaGFyL25zMTY1NTAuYwo+IEBA IC0xMTg4LDggKzExODgsMTAgQEAgcGNpX3VhcnRfY29uZmlnKHN0cnVjdCBuczE2NTUwICp1YXJ0 LCBib29sX3Qgc2tpcF9hbXQsIHVuc2lnbmVkIGludCBpZHgpCj4gICAgICAgICAgICAgICAgICB1 YXJ0LT5iYXI2NCA9IGJhcl82NDsKPiAgICAgICAgICAgICAgICAgIHVhcnQtPmlvX3NpemUgPSBt YXgoOFUgPDwgcGFyYW0tPnJlZ19zaGlmdCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGFyYW0tPnVhcnRfb2Zmc2V0KTsKPiAtICAgICAgICAgICAgICAgIHVhcnQtPmly cSA9IHBjaV9jb25mX3JlYWQ4KDAsIGIsIGQsIGYsIFBDSV9JTlRFUlJVUFRfUElOKSA/Cj4gLSAg ICAgICAgICAgICAgICAgICAgcGNpX2NvbmZfcmVhZDgoMCwgYiwgZCwgZiwgUENJX0lOVEVSUlVQ VF9MSU5FKSA6IDA7Cj4gKyAgICAgICAgICAgICAgICB1YXJ0LT5pcnEgPSBwY2lfY29uZl9yZWFk OChQQ0lfU0JERigwLCBiLCBkLCBmKSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBDSV9JTlRFUlJVUFRfUElOKSA/Cj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwY2lfY29uZl9yZWFkOChQQ0lfU0JERigwLCBiLCBkLCBmKSwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9JTlRFUlJVUFRfTElORSkgOiAw Owo+ICAKPiAgICAgICAgICAgICAgICAgIHJldHVybiAwOwo+ICAgICAgICAgICAgICB9Cj4gZGlm ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jCj4gaW5kZXggNzJlYTg4MjRiMC4u MzBkZTY4NGY2ZCAxMDA2NDQKPiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9t bXVfaW5pdC5jCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQu Ywo+IEBAIC0xMjQxLDcgKzEyNDEsNyBAQCBzdGF0aWMgYm9vbF90IF9faW5pdCBhbWRfc3A1MTAw X2VycmF0dW0yOCh2b2lkKQo+ICAgICAgICAgIGlmICh2ZW5kb3JfaWQgIT0gMHgxMDAyIHx8IGRl dl9pZCAhPSAweDQzODUpCj4gICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICAKPiAtICAgICAgICBi eXRlID0gcGNpX2NvbmZfcmVhZDgoMCwgYnVzLCAweDE0LCAwLCAweGFkKTsKPiArICAgICAgICBi eXRlID0gcGNpX2NvbmZfcmVhZDgoUENJX1NCREYoMCwgYnVzLCAweDE0LCAwKSwgMHhhZCk7Cj4g ICAgICAgICAgaWYgKCAoYnl0ZSA+PiAzKSAmIDEgKQo+ICAgICAgICAgIHsKPiAgICAgICAgICAg ICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HICJBTUQtVmk6IFNQNTEwMCBlcnJhdHVtIDI4IGRldGVj dGVkLCBkaXNhYmxpbmcgSU9NTVUuXG4iCj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3BjaS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKPiBpbmRleCBlODg2 ODk0MjVkLi4zNDBlOTU3OTU0IDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3BjaS5jCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKPiBAQCAtMjYwLDcg KzI2MCw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrX3BkZXYoY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBk ZXYpCj4gICAgICAgICAgfQo+ICAgICAgfQo+ICAKPiAtICAgIHN3aXRjaCAoIHBjaV9jb25mX3Jl YWQ4KHNlZywgYnVzLCBkZXYsIGZ1bmMsIFBDSV9IRUFERVJfVFlQRSkgJiAweDdmICkKPiArICAg IHN3aXRjaCAoIHBjaV9jb25mX3JlYWQ4KHBkZXYtPnNiZGYsIFBDSV9IRUFERVJfVFlQRSkgJiAw eDdmICkKPiAgICAgIHsKPiAgICAgIGNhc2UgUENJX0hFQURFUl9UWVBFX0JSSURHRToKPiAgICAg ICAgICBpZiAoICFicmlkZ2VfY3RsX21hc2sgKQo+IEBAIC0zNzAsMTAgKzM3MCw4IEBAIHN0YXRp YyBzdHJ1Y3QgcGNpX2RldiAqYWxsb2NfcGRldihzdHJ1Y3QgcGNpX3NlZyAqcHNlZywgdTggYnVz LCB1OCBkZXZmbikKPiAgCj4gICAgICAgICAgY2FzZSBERVZfVFlQRV9QQ0llMlBDSV9CUklER0U6 Cj4gICAgICAgICAgY2FzZSBERVZfVFlQRV9MRUdBQ1lfUENJX0JSSURHRToKPiAtICAgICAgICAg ICAgc2VjX2J1cyA9IHBjaV9jb25mX3JlYWQ4KHBzZWctPm5yLCBidXMsIFBDSV9TTE9UKGRldmZu KSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKGRldmZu KSwgUENJX1NFQ09OREFSWV9CVVMpOwo+IC0gICAgICAgICAgICBzdWJfYnVzID0gcGNpX2NvbmZf cmVhZDgocHNlZy0+bnIsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLAo+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUENJX0ZVTkMoZGV2Zm4pLCBQQ0lfU1VCT1JESU5BVEVfQlVT KTsKPiArICAgICAgICAgICAgc2VjX2J1cyA9IHBjaV9jb25mX3JlYWQ4KHBkZXYtPnNiZGYsIFBD SV9TRUNPTkRBUllfQlVTKTsKPiArICAgICAgICAgICAgc3ViX2J1cyA9IHBjaV9jb25mX3JlYWQ4 KHBkZXYtPnNiZGYsIFBDSV9TVUJPUkRJTkFURV9CVVMpOwo+ICAKPiAgICAgICAgICAgICAgc3Bp bl9sb2NrKCZwc2VnLT5idXMyYnJpZGdlX2xvY2spOwo+ICAgICAgICAgICAgICBmb3IgKCA7IHNl Y19idXMgPD0gc3ViX2J1czsgc2VjX2J1cysrICkKPiBAQCAtNDM2LDE2ICs0MzQsMTIgQEAgc3Rh dGljIHZvaWQgZnJlZV9wZGV2KHN0cnVjdCBwY2lfc2VnICpwc2VnLCBzdHJ1Y3QgcGNpX2RldiAq cGRldikKPiAgICAgIC8qIHVwZGF0ZSBidXMyYnJpZGdlICovCj4gICAgICBzd2l0Y2ggKCBwZGV2 LT50eXBlICkKPiAgICAgIHsKPiAtICAgICAgICB1OCBkZXYsIGZ1bmMsIHNlY19idXMsIHN1Yl9i dXM7Cj4gKyAgICAgICAgdWludDhfdCBzZWNfYnVzLCBzdWJfYnVzOwo+ICAKPiAgICAgICAgICBj YXNlIERFVl9UWVBFX1BDSWUyUENJX0JSSURHRToKPiAgICAgICAgICBjYXNlIERFVl9UWVBFX0xF R0FDWV9QQ0lfQlJJREdFOgo+IC0gICAgICAgICAgICBkZXYgPSBQQ0lfU0xPVChwZGV2LT5kZXZm bik7Cj4gLSAgICAgICAgICAgIGZ1bmMgPSBQQ0lfRlVOQyhwZGV2LT5kZXZmbik7Cj4gLSAgICAg ICAgICAgIHNlY19idXMgPSBwY2lfY29uZl9yZWFkOChwc2VnLT5uciwgcGRldi0+YnVzLCBkZXYs IGZ1bmMsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfU0VDT05E QVJZX0JVUyk7Cj4gLSAgICAgICAgICAgIHN1Yl9idXMgPSBwY2lfY29uZl9yZWFkOChwc2VnLT5u ciwgcGRldi0+YnVzLCBkZXYsIGZ1bmMsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQQ0lfU1VCT1JESU5BVEVfQlVTKTsKPiArICAgICAgICAgICAgc2VjX2J1cyA9IHBj aV9jb25mX3JlYWQ4KHBkZXYtPnNiZGYsIFBDSV9TRUNPTkRBUllfQlVTKTsKPiArICAgICAgICAg ICAgc3ViX2J1cyA9IHBjaV9jb25mX3JlYWQ4KHBkZXYtPnNiZGYsIFBDSV9TVUJPUkRJTkFURV9C VVMpOwo+ICAKPiAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZwc2VnLT5idXMyYnJpZGdlX2xvY2sp Owo+ICAgICAgICAgICAgICBmb3IgKCA7IHNlY19idXMgPD0gc3ViX2J1czsgc2VjX2J1cysrICkK PiBAQCAtMTA4Miw3ICsxMDc2LDggQEAgc3RhdGljIGludCBfX2luaXQgX3NjYW5fcGNpX2Rldmlj ZXMoc3RydWN0IHBjaV9zZWcgKnBzZWcsIHZvaWQgKmFyZykKPiAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gLUVOT01FTTsKPiAgICAgICAgICAgICAgICAgIH0KPiAgCj4gLSAgICAgICAgICAg ICAgICBpZiAoICFmdW5jICYmICEocGNpX2NvbmZfcmVhZDgocHNlZy0+bnIsIGJ1cywgZGV2LCBm dW5jLAo+ICsgICAgICAgICAgICAgICAgaWYgKCAhZnVuYyAmJiAhKHBjaV9jb25mX3JlYWQ4KFBD SV9TQkRGKHBzZWctPm5yLCBidXMsIGRldiwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jKSwKPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfSEVBREVSX1RZUEUpICYgMHg4MCkgKQo+ ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgICAgICB9Cj4gZGlmZiAtLWdp dCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9kbWFyLmMgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQvZG1hci5jCj4gaW5kZXggYjg1OGZlN2M4MC4uOWM5NGRlYWMwYiAxMDA2NDQK PiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZG1hci5jCj4gKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL2RtYXIuYwo+IEBAIC0zNDgsNyArMzQ4LDcgQEAgc3RhdGlj IGludCBfX2luaXQgYWNwaV9wYXJzZV9kZXZfc2NvcGUoCj4gIAo+ICAgICAgICAgIHdoaWxlICgg LS1kZXB0aCA+IDAgKQo+ICAgICAgICAgIHsKPiAtICAgICAgICAgICAgYnVzID0gcGNpX2NvbmZf cmVhZDgoc2VnLCBidXMsIHBhdGgtPmRldiwgcGF0aC0+Zm4sCj4gKyAgICAgICAgICAgIGJ1cyA9 IHBjaV9jb25mX3JlYWQ4KFBDSV9TQkRGKHNlZywgYnVzLCBwYXRoLT5kZXYsIHBhdGgtPmZuKSwK PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NFQ09OREFSWV9CVVMpOwo+ ICAgICAgICAgICAgICBwYXRoKys7Cj4gICAgICAgICAgfQo+IEBAIC0zNTYsOSArMzU2LDkgQEAg c3RhdGljIGludCBfX2luaXQgYWNwaV9wYXJzZV9kZXZfc2NvcGUoCj4gICAgICAgICAgc3dpdGNo ICggYWNwaV9zY29wZS0+ZW50cnlfdHlwZSApCj4gICAgICAgICAgewo+ICAgICAgICAgIGNhc2Ug QUNQSV9ETUFSX1NDT1BFX1RZUEVfQlJJREdFOgo+IC0gICAgICAgICAgICBzZWNfYnVzID0gcGNp X2NvbmZfcmVhZDgoc2VnLCBidXMsIHBhdGgtPmRldiwgcGF0aC0+Zm4sCj4gKyAgICAgICAgICAg IHNlY19idXMgPSBwY2lfY29uZl9yZWFkOChQQ0lfU0JERihzZWcsIGJ1cywgcGF0aC0+ZGV2LCBw YXRoLT5mbiksCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfU0VD T05EQVJZX0JVUyk7Cj4gLSAgICAgICAgICAgIHN1Yl9idXMgPSBwY2lfY29uZl9yZWFkOChzZWcs IGJ1cywgcGF0aC0+ZGV2LCBwYXRoLT5mbiwKPiArICAgICAgICAgICAgc3ViX2J1cyA9IHBjaV9j b25mX3JlYWQ4KFBDSV9TQkRGKHNlZywgYnVzLCBwYXRoLT5kZXYsIHBhdGgtPmZuKSwKPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TVUJPUkRJTkFURV9CVVMpOwo+ ICAgICAgICAgICAgICBpZiAoIGlvbW11X3ZlcmJvc2UgKQo+ICAgICAgICAgICAgICAgICAgcHJp bnRrKFZURFBSRUZJWAo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv cXVpcmtzLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcXVpcmtzLmMKPiBpbmRleCBk NmRiODYyNjc4Li5mZjczYjBlN2Y0IDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9xdWlya3MuYwo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xdWly a3MuYwo+IEBAIC05Miw4ICs5Miw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBjYW50aWdhX2IzX2Vy cmF0YV9pbml0KHZvaWQpCj4gICAgICBpZiAoIHZpZCAhPSAweDgwODYgKQo+ICAgICAgICAgIHJl dHVybjsKPiAgCj4gLSAgICBkaWRfaGkgPSBwY2lfY29uZl9yZWFkOCgwLCAwLCBJR0RfREVWLCAw LCAzKTsKPiAtICAgIHJpZCA9IHBjaV9jb25mX3JlYWQ4KDAsIDAsIElHRF9ERVYsIDAsIDgpOwo+ ICsgICAgZGlkX2hpID0gcGNpX2NvbmZfcmVhZDgoUENJX1NCREYoMCwgMCwgSUdEX0RFViwgMCks IDMpOwo+ICsgICAgcmlkID0gcGNpX2NvbmZfcmVhZDgoUENJX1NCREYoMCwgMCwgSUdEX0RFViwg MCksIDgpOwo+ICAKPiAgICAgIGlmICggKGRpZF9oaSA9PSAweDJBKSAmJiAocmlkID09IDB4Nykg KQo+ICAgICAgICAgIGlzX2NhbnRpZ2FfYjMgPSAxOwo+IEBAIC0yODEsNyArMjgxLDcgQEAgc3Rh dGljIHZvaWQgX19pbml0IHR5bGVyc2J1cmdfaW50cmVtYXBfcXVpcmsodm9pZCkKPiAgICAgIHsK PiAgICAgICAgICAvKiBNYXRjaCBvbiBTeXN0ZW0gTWFuYWdlbWVudCBSZWdpc3RlcnMgb24gRGV2 aWNlIDIwIEZ1bmN0aW9uIDAgKi8KPiAgICAgICAgICBkZXZpY2UgPSBwY2lfY29uZl9yZWFkMzIo MCwgYnVzLCAyMCwgMCwgUENJX1ZFTkRPUl9JRCk7Cj4gLSAgICAgICAgcmV2ID0gcGNpX2NvbmZf cmVhZDgoMCwgYnVzLCAyMCwgMCwgUENJX1JFVklTSU9OX0lEKTsKPiArICAgICAgICByZXYgPSBw Y2lfY29uZl9yZWFkOChQQ0lfU0JERigwLCBidXMsIDIwLCAwKSwgUENJX1JFVklTSU9OX0lEKTsK PiAgCj4gICAgICAgICAgaWYgKCByZXYgPT0gMHgxMyAmJiBkZXZpY2UgPT0gMHgzNDJlODA4NiAp Cj4gICAgICAgICAgewo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wY2kvcGNpLmMgYi94ZW4v ZHJpdmVycy9wY2kvcGNpLmMKPiBpbmRleCAxYzgwOGQ2NjMyLi5lM2Y4ODNmYzVjIDEwMDY0NAo+ IC0tLSBhL3hlbi9kcml2ZXJzL3BjaS9wY2kuYwo+ICsrKyBiL3hlbi9kcml2ZXJzL3BjaS9wY2ku Ywo+IEBAIC0yMSwxMiArMjEsMTIgQEAgaW50IHBjaV9maW5kX2NhcF9vZmZzZXQodTE2IHNlZywg dTggYnVzLCB1OCBkZXYsIHU4IGZ1bmMsIHU4IGNhcCkKPiAgCj4gICAgICB3aGlsZSAoIG1heF9j YXAtLSApCj4gICAgICB7Cj4gLSAgICAgICAgcG9zID0gcGNpX2NvbmZfcmVhZDgoc2VnLCBidXMs IGRldiwgZnVuYywgcG9zKTsKPiArICAgICAgICBwb3MgPSBwY2lfY29uZl9yZWFkOChQQ0lfU0JE RihzZWcsIGJ1cywgZGV2LCBmdW5jKSwgcG9zKTsKPiAgICAgICAgICBpZiAoIHBvcyA8IDB4NDAg KQo+ICAgICAgICAgICAgICBicmVhazsKPiAgCj4gICAgICAgICAgcG9zICY9IH4zOwo+IC0gICAg ICAgIGlkID0gcGNpX2NvbmZfcmVhZDgoc2VnLCBidXMsIGRldiwgZnVuYywgcG9zICsgUENJX0NB UF9MSVNUX0lEKTsKPiArICAgICAgICBpZCA9IHBjaV9jb25mX3JlYWQ4KFBDSV9TQkRGKHNlZywg YnVzLCBkZXYsIGZ1bmMpLCBwb3MgKyBQQ0lfQ0FQX0xJU1RfSUQpOwo+ICAKPiAgICAgICAgICBp ZiAoIGlkID09IDB4ZmYgKQo+ICAgICAgICAgICAgICBicmVhazsKPiBAQCAtNDYsMTMgKzQ2LDEy IEBAIGludCBwY2lfZmluZF9uZXh0X2NhcCh1MTYgc2VnLCB1OCBidXMsIHVuc2lnbmVkIGludCBk ZXZmbiwgdTggcG9zLCBpbnQgY2FwKQo+ICAKPiAgICAgIHdoaWxlICggdHRsLS0gKQo+ICAgICAg ewo+IC0gICAgICAgIHBvcyA9IHBjaV9jb25mX3JlYWQ4KHNlZywgYnVzLCBQQ0lfU0xPVChkZXZm biksIFBDSV9GVU5DKGRldmZuKSwgcG9zKTsKPiArICAgICAgICBwb3MgPSBwY2lfY29uZl9yZWFk OChQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSwgcG9zKTsKPiAgICAgICAgICBpZiAoIHBvcyA8 IDB4NDAgKQo+ICAgICAgICAgICAgICBicmVhazsKPiAgCj4gICAgICAgICAgcG9zICY9IH4zOwo+ IC0gICAgICAgIGlkID0gcGNpX2NvbmZfcmVhZDgoc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwg UENJX0ZVTkMoZGV2Zm4pLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zICsgUENJ X0NBUF9MSVNUX0lEKTsKPiArICAgICAgICBpZCA9IHBjaV9jb25mX3JlYWQ4KFBDSV9TQkRGMyhz ZWcsIGJ1cywgZGV2Zm4pLCBwb3MgKyBQQ0lfQ0FQX0xJU1RfSUQpOwo+ICAKPiAgICAgICAgICBp ZiAoIGlkID09IDB4ZmYgKQo+ICAgICAgICAgICAgICBicmVhazsKPiBkaWZmIC0tZ2l0IGEveGVu L2RyaXZlcnMvdmlkZW8vdmdhLmMgYi94ZW4vZHJpdmVycy92aWRlby92Z2EuYwo+IGluZGV4IDZh NjRmZDkwMTMuLjc4NTMzYWQwYjEgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvdmlkZW8vdmdh LmMKPiArKysgYi94ZW4vZHJpdmVycy92aWRlby92Z2EuYwo+IEBAIC0xMzYsOCArMTM2LDcgQEAg dm9pZCBfX2luaXQgdmlkZW9fZW5kYm9vdCh2b2lkKQo+ICAgICAgICAgICAgICAgICAgICAgICAg ICBiID0gMDsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgICAg ICAgICAgICAgY2FzZSAxOgo+IC0gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKCBwY2lf Y29uZl9yZWFkOCgwLCBiLCBQQ0lfU0xPVChkZiksCj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKGRmKSwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgc3dpdGNoICggcGNpX2NvbmZfcmVhZDgoUENJX1NCREYzKDAsIGIsIGRmKSwKPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0hFQURF Ul9UWVBFKSApCj4gICAgICAgICAgICAgICAgICAgICAgICAgIHsKPiAgICAgICAgICAgICAgICAg ICAgICAgICAgY2FzZSBQQ0lfSEVBREVSX1RZUEVfQlJJREdFOgo+IGRpZmYgLS1naXQgYS94ZW4v ZHJpdmVycy92cGNpL2hlYWRlci5jIGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYwo+IGluZGV4 IDI1OGI5MWRlZWQuLjU2NGM3YjZhN2QgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9o ZWFkZXIuYwo+ICsrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMKPiBAQCAtNDYzLDggKzQ2 Myw3IEBAIHN0YXRpYyBpbnQgaW5pdF9iYXJzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+ICAgICAg c3RydWN0IHZwY2lfYmFyICpiYXJzID0gaGVhZGVyLT5iYXJzOwo+ICAgICAgaW50IHJjOwo+ICAK PiAtICAgIHN3aXRjaCAoIHBjaV9jb25mX3JlYWQ4KHBkZXYtPnNlZywgcGRldi0+YnVzLCBzbG90 LCBmdW5jLCBQQ0lfSEVBREVSX1RZUEUpCj4gLSAgICAgICAgICAgICAmIDB4N2YgKQo+ICsgICAg c3dpdGNoICggcGNpX2NvbmZfcmVhZDgocGRldi0+c2JkZiwgUENJX0hFQURFUl9UWVBFKSAmIDB4 N2YgKQo+ICAgICAgewo+ICAgICAgY2FzZSBQQ0lfSEVBREVSX1RZUEVfTk9STUFMOgo+ICAgICAg ICAgIG51bV9iYXJzID0gUENJX0hFQURFUl9OT1JNQUxfTlJfQkFSUzsKPiBkaWZmIC0tZ2l0IGEv eGVuL2RyaXZlcnMvdnBjaS92cGNpLmMgYi94ZW4vZHJpdmVycy92cGNpL3ZwY2kuYwo+IGluZGV4 IGNhNTk4Njc1ZWEuLmM0MDMwMzMzYTUgMTAwNjQ0Cj4gLS0tIGEveGVuL2RyaXZlcnMvdnBjaS92 cGNpLmMKPiArKysgYi94ZW4vZHJpdmVycy92cGNpL3ZwY2kuYwo+IEBAIC0yMjIsOCArMjIyLDcg QEAgc3RhdGljIHVpbnQzMl90IHZwY2lfcmVhZF9odyhwY2lfc2JkZl90IHNiZGYsIHVuc2lnbmVk IGludCByZWcsCj4gICAgICAgICAgICovCj4gICAgICAgICAgaWYgKCByZWcgJiAxICkKPiAgICAg ICAgICB7Cj4gLSAgICAgICAgICAgIGRhdGEgPSBwY2lfY29uZl9yZWFkOChzYmRmLnNlZywgc2Jk Zi5idXMsIHNiZGYuZGV2LCBzYmRmLmZuLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVnKTsKPiArICAgICAgICAgICAgZGF0YSA9IHBjaV9jb25mX3JlYWQ4KHNiZGYsIHJl Zyk7Cj4gICAgICAgICAgICAgIGRhdGEgfD0gcGNpX2NvbmZfcmVhZDE2KHNiZGYuc2VnLCBzYmRm LmJ1cywgc2JkZi5kZXYsIHNiZGYuZm4sCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlZyArIDEpIDw8IDg7Cj4gICAgICAgICAgfQo+IEBAIC0yMzEsOCArMjMwLDcgQEAg c3RhdGljIHVpbnQzMl90IHZwY2lfcmVhZF9odyhwY2lfc2JkZl90IHNiZGYsIHVuc2lnbmVkIGlu dCByZWcsCj4gICAgICAgICAgewo+ICAgICAgICAgICAgICBkYXRhID0gcGNpX2NvbmZfcmVhZDE2 KHNiZGYuc2VnLCBzYmRmLmJ1cywgc2JkZi5kZXYsIHNiZGYuZm4sCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVnKTsKPiAtICAgICAgICAgICAgZGF0YSB8PSBwY2lfY29u Zl9yZWFkOChzYmRmLnNlZywgc2JkZi5idXMsIHNiZGYuZGV2LCBzYmRmLmZuLAo+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZyArIDIpIDw8IDE2Owo+ICsgICAgICAgICAg ICBkYXRhIHw9IHBjaV9jb25mX3JlYWQ4KHNiZGYsIHJlZyArIDIpIDw8IDE2Owo+ICAgICAgICAg IH0KPiAgICAgICAgICBicmVhazsKPiAgCj4gQEAgLTI0MSw3ICsyMzksNyBAQCBzdGF0aWMgdWlu dDMyX3QgdnBjaV9yZWFkX2h3KHBjaV9zYmRmX3Qgc2JkZiwgdW5zaWduZWQgaW50IHJlZywKPiAg ICAgICAgICBicmVhazsKPiAgCj4gICAgICBjYXNlIDE6Cj4gLSAgICAgICAgZGF0YSA9IHBjaV9j b25mX3JlYWQ4KHNiZGYuc2VnLCBzYmRmLmJ1cywgc2JkZi5kZXYsIHNiZGYuZm4sIHJlZyk7Cj4g KyAgICAgICAgZGF0YSA9IHBjaV9jb25mX3JlYWQ4KHNiZGYsIHJlZyk7Cj4gICAgICAgICAgYnJl YWs7Cj4gIAo+ICAgICAgZGVmYXVsdDoKPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3Bj aS5oIGIveGVuL2luY2x1ZGUveGVuL3BjaS5oCj4gaW5kZXggMDVlZTExNTcxNS4uYjJhNjJjYjM2 NiAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vcGNpLmgKPiArKysgYi94ZW4vaW5jbHVk ZS94ZW4vcGNpLmgKPiBAQCAtMTcyLDkgKzE3Miw3IEBAIHN0cnVjdCBwY2lfZGV2ICpwY2lfZ2V0 X3BkZXZfYnlfZG9tYWluKGNvbnN0IHN0cnVjdCBkb21haW4gKiwgaW50IHNlZywKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJ1cywgaW50IGRldmZuKTsKPiAg dm9pZCBwY2lfY2hlY2tfZGlzYWJsZV9kZXZpY2UodTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbik7 Cj4gIAo+IC11aW50OF90IHBjaV9jb25mX3JlYWQ4KAo+IC0gICAgdW5zaWduZWQgaW50IHNlZywg dW5zaWduZWQgaW50IGJ1cywgdW5zaWduZWQgaW50IGRldiwgdW5zaWduZWQgaW50IGZ1bmMsCj4g LSAgICB1bnNpZ25lZCBpbnQgcmVnKTsKPiArdWludDhfdCBwY2lfY29uZl9yZWFkOChwY2lfc2Jk Zl90IHNiZGYsIHVuc2lnbmVkIGludCByZWcpOwo+ICB1aW50MTZfdCBwY2lfY29uZl9yZWFkMTYo Cj4gICAgICB1bnNpZ25lZCBpbnQgc2VnLCB1bnNpZ25lZCBpbnQgYnVzLCB1bnNpZ25lZCBpbnQg ZGV2LCB1bnNpZ25lZCBpbnQgZnVuYywKPiAgICAgIHVuc2lnbmVkIGludCByZWcpOwo+IC0tIAo+ IDIuMjAuMSAoQXBwbGUgR2l0LTExNykKPiAKCi0tIApCcmlhbiBXb29kcwoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0 Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==