From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8958DA0A0A; Fri, 22 Jan 2021 08:49:14 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5530D140D21; Fri, 22 Jan 2021 08:49:14 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id D3521140D3A for ; Fri, 22 Jan 2021 08:49:11 +0100 (CET) IronPort-SDR: QxFK4wYp/zkIKKDh0zlRsa9OIE4acpFY+DelLHyrJjy5c/7QgED7PDSZtpjLPt1prVs+WlYs3s 7Tj2lWxreITQ== X-IronPort-AV: E=McAfee;i="6000,8403,9871"; a="158584823" X-IronPort-AV: E=Sophos;i="5.79,366,1602572400"; d="scan'208";a="158584823" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jan 2021 23:49:10 -0800 IronPort-SDR: Kgm5NRrcSUk6/KrcBWUwLRlAbFFE54v5mlCPNOLZNOAUwZP5p5Pm1jmIJ/QJR8EPUzg6b+wSU/ UZR7MMwxjbfA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,366,1602572400"; d="scan'208";a="367255182" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga002.jf.intel.com with ESMTP; 21 Jan 2021 23:49:10 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 21 Jan 2021 23:49:10 -0800 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 21 Jan 2021 23:49:09 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 21 Jan 2021 23:49:09 -0800 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (104.47.44.54) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Thu, 21 Jan 2021 23:49:09 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nIF+O7cNafid/uaOIUYzQ6oAN0JqhYm2AB80QBcVOLehYHY8h9l7cKfckK1YogrPKE35S3q2aco6kF0sxAoTe5oENJyYtE5o5LBDQny3Z79BzhW2EIehWzny2VSgVbrYzIRxD6fA0V5gjOFsYPGCxK//wQVdc1/ZGY4C2a0uw1ZhTRGsb/BVM+81AePXlZLYHU7rQcaC4QEoM9veooT16bCu7QhoysBun4LLY/NzNkGxswRwynu+CKlGaf1D6x3cfNVRR1Sv8yg8KFoUBcllX6+uANZfSQV8NbDnwZlLPtVsuMd7ZhkUlo03QnWC8LRp8oS9grVY8gm64hhCoF3Ozw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2fS5ZMC4JLKgA9XDgOhOknZUAgDPdJBOWL4i9wWU5OU=; b=ePmFghpLgQFLZt9AvpGLiM7sAFkJA0glQcWF0BTmXODwBo8vrUTsPW2Rn0bKYQgytsC8HD+9pKvh065/ZG8A7kpC62NQdhuKZNP/8KDh1/yI4BJKQ+hK4J/wnoziVIjdS6W9T/0hkONGNDbZRsQEMnuXMG1jmK6qfVyLIhXlSgpQqUYpKLndyzuDQoqlMPz4BUETPK6+bXzPgAAubKHHZ8IorVe4/ggiz5vNs19s/nASI2FLdf2mBF9zUey8egDOzRJFQ6QG5kOcMyv8zRNQyQQM2N8iSJFruaFGfViefRoZ7rqtOBnRzQA9jyQg54ECAGw6jIevbVPnGdqNHUW0nw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2fS5ZMC4JLKgA9XDgOhOknZUAgDPdJBOWL4i9wWU5OU=; b=MCaMn+qrZRAYUSdTQEuRhDkD+2mWO83hShG6aNz6uYowYSO/g+7zvCswYqd5gMSPbrSAJPoKABr0+OT/5mh/VvNXvMxb6RfqKYdRcAWB1REK0lOfbveOmtyrfjjl1hsFj1JhGgk0SPWdhOgDz/fgPfACQHnWzVe3Zu7Ay5vZD1M= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3789.namprd11.prod.outlook.com (2603:10b6:208:f2::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.14; Fri, 22 Jan 2021 07:49:05 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::4c5:a27c:aab2:a2ed]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::4c5:a27c:aab2:a2ed%7]) with mapi id 15.20.3763.014; Fri, 22 Jan 2021 07:49:05 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "olivier.matz@6wind.com" , "amorenoz@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [PATCH v2 30/44] net/virtio: add Virtio-user vring setting ops Thread-Index: AQHW7qn1Nbb9OTHLIEyZsEFE/b5UOaozSLRQ Date: Fri, 22 Jan 2021 07:49:05 +0000 Message-ID: References: <20210119212507.1043636-1-maxime.coquelin@redhat.com> <20210119212507.1043636-31-maxime.coquelin@redhat.com> In-Reply-To: <20210119212507.1043636-31-maxime.coquelin@redhat.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8a49c4d2-15cf-48e2-cc44-08d8beaa3143 x-ms-traffictypediagnostic: MN2PR11MB3789: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:785; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: JLe7ZWGEUGMyWd6JRkaMrtu+92VIclGx1Hp/2aGjPwhYsVLoqScfnRGA1V/6lYxBrE8bxmj+IBXrVnysPzZEB9PBDP1TnyDE+6oxZ5R/oPRadp9qm2gvck6LVvWco5HQYzLVJIxDfIkk9xN358zlGXx1lxDlCi6E9l9YwVBLbleUzUeGsPemeRWxqc+nWdsTsbk00rP1605LC0I8U7s8wdcYB17iN9RR7TEsF0UHhwuNzt1awhUZbbhQBNy23dXZQVdrrYyx8jqWS9GxEKZlCh2LG0NJt7npMnKQb5ySKXsepax2N4Ikb7efAsWYgrt4LSpVFRbl/YsJ/VIcq2+AdyGiZDni3mmNUuWJGTKw/7x5HYioulvBwOoPQUUkh3an95riiGmIefxf2B0/AvoM8A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(136003)(39860400002)(376002)(366004)(346002)(83380400001)(2906002)(53546011)(86362001)(26005)(6506007)(9686003)(186003)(71200400001)(76116006)(110136005)(52536014)(478600001)(66556008)(55016002)(66946007)(7696005)(33656002)(64756008)(316002)(5660300002)(30864003)(66446008)(8936002)(8676002)(66476007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?WENzRGZLZjhYMHRjdllMMXdUVWtlemlnaUV0NDNGNUxyekJEWHcvZWJibWVi?= =?utf-8?B?dFFmSGVoWFRYNE0rTVdJYW02UzMwNFhwWjY5U3YydGtUNWpSS2V0Z2pEbDZ3?= =?utf-8?B?VDNvQlRwVUthUUcvUlp3cENBajQwdkhHQzJpL1dIYlBGVE41YVhHeDZvTGVu?= =?utf-8?B?ZHVsYWdMOVZjZDhxWkNnTUtyTTVPazdKcUJoRGJ2VFVlc3lHdHRHZGdQdmpB?= =?utf-8?B?TThHZTgzcjZQeFR2d3hZNDZhQTR3TnRSbkRFbXFHRUZPUDVUSjlZSElUOXh1?= =?utf-8?B?QkR3YUtKaVBaMlpndFVaWVZHcDZXdHdkbjRwaW1qdXRMU3BkSXNOWTk3c2lw?= =?utf-8?B?c3IraE1xVEZ4ckhMUmdyZlZLQmtiKzhYS3RkcTRYbFdwNWszZzhGTkljbzc1?= =?utf-8?B?ZVB4YU5xSi85YmtaS3FvZTNQMHo1MHhsckFxTXEvbUtrK2dhNnNvelByamll?= =?utf-8?B?ckpyNStITUZwV2RvZ1E5Q3pTUFZ4QUNFcG5ON2FxSlBPYmkxV2l6OVBWZW5Z?= =?utf-8?B?Y0JYZGJIWEdOeG1hcmF6VWJmdzV2Q2V0SHl4THlGTmtsOGIxM2dYem4rN29l?= =?utf-8?B?QzJuSDhKd3VIdGRGYWUrRmIzYlo4dzloeDBqamhzcVdBOHdoVkxNM1FUZDVl?= =?utf-8?B?eDhyZ01SNXFkcFNmZ3UrZnRFMXRGWEhYTUoyYU53eDY2OERUMGgrRTJmTHlK?= =?utf-8?B?OVR1R2xJTCtabXJnTEt6aWpRK0JZekdPWUtHTHd0WjB3Zk5CcXA4endXdFZa?= =?utf-8?B?WnJOaFI2dFN1cVBVKzNodTdzdWZxaWg2WVFhanZnRFpLUGR6OTFMdkpicldV?= =?utf-8?B?L2I2bDlCa1VvZGhvSW4yeXZpTFFTV2UrQ1Jsa1AyeStOazF6NXBkWWlhSmww?= =?utf-8?B?elRPa0FqWVR3UklKWWRtRDE4NkwvQnFIVDF5ekVJYlBGSUo1VXl3NzVHTUNi?= =?utf-8?B?ekFJak12Y1ZMckxWeEF6cSt5M3pPOTZjUGYzYlZKMmkyMnRMcGZBUDBJWTdP?= =?utf-8?B?ejl6Tkl0REVDVG1IeUUrbHFmZ094ZkE2aGVTUG8va3NIM0FQZ2UzNG5FRk5u?= =?utf-8?B?RGY5MUYvK3JKS0M3U2h4MEw3U21NZUVBMTBHd1FYVUVrMVR6M3ByL00xYzdJ?= =?utf-8?B?VDZkR3RMS0NKUFEvWEF4MkRCN2t6aXRGV3piYlJsTzA1RFBuNlBlWlFXVzI0?= =?utf-8?B?QnJXcDZpOEdiRnVFVGJOcjhtUXNKV0JJdDNDMDFQMHI3MUIxM1FNdjVnWTJv?= =?utf-8?B?MTFxRmM3eWhNdlRGTE9CTDFHUUFIYkdQMEh1K25FZTU3aGRiYmFIc1BYTE1S?= =?utf-8?Q?kBo5JeBFNT97M=3D?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8a49c4d2-15cf-48e2-cc44-08d8beaa3143 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jan 2021 07:49:05.1780 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 78jr6oFvqG+9hPj1usZE50YaWQWZCTXNcMVP2XerkuUcAqDxb4XuP0q4nFredtPqfL/rcg84S4g2249srctKOw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3789 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v2 30/44] net/virtio: add Virtio-user vring setting ops X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1h eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgMjAs IDIwMjEgNToyNSBBTQ0KPiBUbzogZGV2QGRwZGsub3JnOyBYaWEsIENoZW5ibyA8Y2hlbmJvLnhp YUBpbnRlbC5jb20+OyBvbGl2aWVyLm1hdHpANndpbmQuY29tOw0KPiBhbW9yZW5vekByZWRoYXQu Y29tOyBkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tDQo+IENjOiBNYXhpbWUgQ29xdWVsaW4gPG1h eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjIgMzAvNDRdIG5l dC92aXJ0aW86IGFkZCBWaXJ0aW8tdXNlciB2cmluZyBzZXR0aW5nIG9wcw0KPiANCj4gVGhpcyBw YXRjaCBpbnRyb2R1Y2VzIG5ldyBjYWxsYmFja3MgZm9yIHNldHRpbmcNCj4gYW5kIGdldHRpbmcg dnJpbmcgc3RhdGUuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBNYXhpbWUgQ29xdWVsaW4gPG1heGlt ZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiAtLS0NCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0 aW9fdXNlci92aG9zdC5oICAgICAgICB8ICAgMyArDQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmly dGlvX3VzZXIvdmhvc3Rfa2VybmVsLmMgfCAgNDkgKysrKysrKy0NCj4gIGRyaXZlcnMvbmV0L3Zp cnRpby92aXJ0aW9fdXNlci92aG9zdF91c2VyLmMgICB8IDExMyArKysrKysrKysrKysrLS0tLS0N Cj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF92ZHBhLmMgICB8ICA0MSAr KysrKy0tDQo+ICAuLi4vbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuYyAg fCAgIDkgKy0NCj4gIDUgZmlsZXMgY2hhbmdlZCwgMTY1IGluc2VydGlvbnMoKyksIDUwIGRlbGV0 aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNl ci92aG9zdC5oDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0LmgNCj4g aW5kZXggNDYzODAxZjU2My4uMmQ0MzNkNTk2NiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQv dmlydGlvL3ZpcnRpb191c2VyL3Zob3N0LmgNCj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3Zp cnRpb191c2VyL3Zob3N0LmgNCj4gQEAgLTExNSw2ICsxMTUsOSBAQCBzdHJ1Y3QgdmlydGlvX3Vz ZXJfYmFja2VuZF9vcHMgew0KPiAgCWludCAoKmdldF9wcm90b2NvbF9mZWF0dXJlcykoc3RydWN0 IHZpcnRpb191c2VyX2RldiAqZGV2LCB1aW50NjRfdA0KPiAqZmVhdHVyZXMpOw0KPiAgCWludCAo KnNldF9wcm90b2NvbF9mZWF0dXJlcykoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCB1aW50 NjRfdA0KPiBmZWF0dXJlcyk7DQo+ICAJaW50ICgqc2V0X21lbW9yeV90YWJsZSkoc3RydWN0IHZp cnRpb191c2VyX2RldiAqZGV2KTsNCj4gKwlpbnQgKCpzZXRfdnJpbmdfbnVtKShzdHJ1Y3Qgdmly dGlvX3VzZXJfZGV2ICpkZXYsIHN0cnVjdA0KPiB2aG9zdF92cmluZ19zdGF0ZSAqc3RhdGUpOw0K PiArCWludCAoKnNldF92cmluZ19iYXNlKShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHN0 cnVjdA0KPiB2aG9zdF92cmluZ19zdGF0ZSAqc3RhdGUpOw0KPiArCWludCAoKmdldF92cmluZ19i YXNlKShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHN0cnVjdA0KPiB2aG9zdF92cmluZ19z dGF0ZSAqc3RhdGUpOw0KPiAgCWludCAoKnNlbmRfcmVxdWVzdCkoc3RydWN0IHZpcnRpb191c2Vy X2RldiAqZGV2LA0KPiAgCQkJICAgIGVudW0gdmhvc3RfdXNlcl9yZXF1ZXN0IHJlcSwNCj4gIAkJ CSAgICB2b2lkICphcmcpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRp b191c2VyL3Zob3N0X2tlcm5lbC5jDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2Vy L3Zob3N0X2tlcm5lbC5jDQo+IGluZGV4IDJkMzBmNTcyYjYuLmUxMmZlNzRmNDYgMTAwNjQ0DQo+ IC0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJuZWwuYw0KPiAr KysgYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsLmMNCj4gQEAg LTIxOSwxMiArMjE5LDQ5IEBAIHZob3N0X2tlcm5lbF9zZXRfbWVtb3J5X3RhYmxlKHN0cnVjdCB2 aXJ0aW9fdXNlcl9kZXYNCj4gKmRldikNCj4gIAlyZXR1cm4gLTE7DQo+ICB9DQo+IA0KPiArc3Rh dGljIGludA0KPiArdmhvc3Rfa2VybmVsX3NldF92cmluZyhzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2 ICpkZXYsIHVpbnQ2NF90IHJlcSwgc3RydWN0DQo+IHZob3N0X3ZyaW5nX3N0YXRlICpzdGF0ZSkN Cj4gK3sNCj4gKwlpbnQgcmV0LCBmZDsNCj4gKwl1bnNpZ25lZCBpbnQgaW5kZXggPSBzdGF0ZS0+ aW5kZXg7DQo+ICsNCj4gKwkvKiBDb252ZXJ0IGZyb20gcXVldWUgaW5kZXggdG8gcXVldWUtcGFp ciAmIG9mZnNldCAqLw0KPiArCWZkID0gZGV2LT52aG9zdGZkc1tzdGF0ZS0+aW5kZXggLyAyXTsN Cj4gKwlzdGF0ZS0+aW5kZXggJT0gMjsNCj4gKw0KPiArCXJldCA9IHZob3N0X2tlcm5lbF9pb2N0 bChmZCwgcmVxLCBzdGF0ZSk7DQo+ICsJaWYgKHJldCA8IDApIHsNCj4gKwkJUE1EX0RSVl9MT0co RVJSLCAiRmFpbGVkIHRvIHNldCB2cmluZyAocmVxdWVzdCAlIiBQUkl1NjQgIikiLCByZXEpOw0K PiArCQlyZXR1cm4gLTE7DQo+ICsJfQ0KPiArDQo+ICsJLyogcmVzdG9yZSBpbmRleCBiYWNrIHRv IHF1ZXVlIGluZGV4ICovDQo+ICsJc3RhdGUtPmluZGV4ID0gaW5kZXg7DQo+ICsNCj4gKwlyZXR1 cm4gMDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludA0KPiArdmhvc3Rfa2VybmVsX3NldF92cmlu Z19udW0oc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCBzdHJ1Y3QNCj4gdmhvc3RfdnJpbmdf c3RhdGUgKnN0YXRlKQ0KPiArew0KPiArCXJldHVybiB2aG9zdF9rZXJuZWxfc2V0X3ZyaW5nKGRl diwgVkhPU1RfU0VUX1ZSSU5HX05VTSwgc3RhdGUpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50 DQo+ICt2aG9zdF9rZXJuZWxfc2V0X3ZyaW5nX2Jhc2Uoc3RydWN0IHZpcnRpb191c2VyX2RldiAq ZGV2LCBzdHJ1Y3QNCj4gdmhvc3RfdnJpbmdfc3RhdGUgKnN0YXRlKQ0KPiArew0KPiArCXJldHVy biB2aG9zdF9rZXJuZWxfc2V0X3ZyaW5nKGRldiwgVkhPU1RfU0VUX1ZSSU5HX0JBU0UsIHN0YXRl KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludA0KPiArdmhvc3Rfa2VybmVsX2dldF92cmluZ19i YXNlKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgc3RydWN0DQo+IHZob3N0X3ZyaW5nX3N0 YXRlICpzdGF0ZSkNCj4gK3sNCj4gKwlyZXR1cm4gdmhvc3Rfa2VybmVsX3NldF92cmluZyhkZXYs IFZIT1NUX0dFVF9WUklOR19CQVNFLCBzdGF0ZSk7DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyB1aW50 NjRfdCB2aG9zdF9yZXFfdXNlcl90b19rZXJuZWxbXSA9IHsNCj4gIAlbVkhPU1RfVVNFUl9SRVNF VF9PV05FUl0gPSBWSE9TVF9SRVNFVF9PV05FUiwNCj4gIAlbVkhPU1RfVVNFUl9TRVRfVlJJTkdf Q0FMTF0gPSBWSE9TVF9TRVRfVlJJTkdfQ0FMTCwNCj4gLQlbVkhPU1RfVVNFUl9TRVRfVlJJTkdf TlVNXSA9IFZIT1NUX1NFVF9WUklOR19OVU0sDQo+IC0JW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0JB U0VdID0gVkhPU1RfU0VUX1ZSSU5HX0JBU0UsDQo+IC0JW1ZIT1NUX1VTRVJfR0VUX1ZSSU5HX0JB U0VdID0gVkhPU1RfR0VUX1ZSSU5HX0JBU0UsDQo+ICAJW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0FE RFJdID0gVkhPU1RfU0VUX1ZSSU5HX0FERFIsDQo+ICAJW1ZIT1NUX1VTRVJfU0VUX1ZSSU5HX0tJ Q0tdID0gVkhPU1RfU0VUX1ZSSU5HX0tJQ0ssDQo+ICB9Ow0KPiBAQCAtMjQ1LDEwICsyODIsNyBA QCB2aG9zdF9rZXJuZWxfc2VuZF9yZXF1ZXN0KHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwN Cj4gIAlyZXFfa2VybmVsID0gdmhvc3RfcmVxX3VzZXJfdG9fa2VybmVsW3JlcV07DQo+IA0KPiAg CXN3aXRjaCAocmVxX2tlcm5lbCkgew0KPiAtCWNhc2UgVkhPU1RfU0VUX1ZSSU5HX05VTToNCj4g IAljYXNlIFZIT1NUX1NFVF9WUklOR19BRERSOg0KPiAtCWNhc2UgVkhPU1RfU0VUX1ZSSU5HX0JB U0U6DQo+IC0JY2FzZSBWSE9TVF9HRVRfVlJJTkdfQkFTRToNCj4gIAljYXNlIFZIT1NUX1NFVF9W UklOR19LSUNLOg0KPiAgCWNhc2UgVkhPU1RfU0VUX1ZSSU5HX0NBTEw6DQo+ICAJCXF1ZXVlX3Nl bCA9ICoodW5zaWduZWQgaW50ICopYXJnOw0KPiBAQCAtNDAzLDYgKzQzNyw5IEBAIHN0cnVjdCB2 aXJ0aW9fdXNlcl9iYWNrZW5kX29wcyB2aXJ0aW9fb3BzX2tlcm5lbCA9IHsNCj4gIAkuZ2V0X2Zl YXR1cmVzID0gdmhvc3Rfa2VybmVsX2dldF9mZWF0dXJlcywNCj4gIAkuc2V0X2ZlYXR1cmVzID0g dmhvc3Rfa2VybmVsX3NldF9mZWF0dXJlcywNCj4gIAkuc2V0X21lbW9yeV90YWJsZSA9IHZob3N0 X2tlcm5lbF9zZXRfbWVtb3J5X3RhYmxlLA0KPiArCS5zZXRfdnJpbmdfbnVtID0gdmhvc3Rfa2Vy bmVsX3NldF92cmluZ19udW0sDQo+ICsJLnNldF92cmluZ19iYXNlID0gdmhvc3Rfa2VybmVsX3Nl dF92cmluZ19iYXNlLA0KPiArCS5nZXRfdnJpbmdfYmFzZSA9IHZob3N0X2tlcm5lbF9nZXRfdnJp bmdfYmFzZSwNCj4gIAkuc2VuZF9yZXF1ZXN0ID0gdmhvc3Rfa2VybmVsX3NlbmRfcmVxdWVzdCwN Cj4gIAkuZW5hYmxlX3FwID0gdmhvc3Rfa2VybmVsX2VuYWJsZV9xdWV1ZV9wYWlyDQo+ICB9Ow0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3VzZXIu Yw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF91c2VyLmMNCj4gaW5k ZXggOTQ1MzNlMzFjZS4uYzM5YmUyNGNlNCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmly dGlvL3ZpcnRpb191c2VyL3Zob3N0X3VzZXIuYw0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8v dmlydGlvX3VzZXIvdmhvc3RfdXNlci5jDQo+IEBAIC00MTcsMTcgKzQxNyw5NCBAQCB2aG9zdF91 c2VyX3NldF9tZW1vcnlfdGFibGUoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2KQ0KPiAgCXJl dHVybiAtMTsNCj4gIH0NCj4gDQo+ICtzdGF0aWMgaW50DQo+ICt2aG9zdF91c2VyX3NldF92cmlu ZyhzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIGVudW0gdmhvc3RfdXNlcl9yZXF1ZXN0IHJl cSwNCj4gKwkJc3RydWN0IHZob3N0X3ZyaW5nX3N0YXRlICpzdGF0ZSkNCj4gK3sNCj4gKwlpbnQg cmV0Ow0KPiArCXN0cnVjdCB2aG9zdF91c2VyX21zZyBtc2cgPSB7DQo+ICsJCS5yZXF1ZXN0ID0g cmVxLA0KPiArCQkuZmxhZ3MgPSBWSE9TVF9VU0VSX1ZFUlNJT04sDQo+ICsJCS5zaXplID0gc2l6 ZW9mKCpzdGF0ZSksDQo+ICsJCS5wYXlsb2FkLnN0YXRlID0gKnN0YXRlLA0KPiArCX07DQo+ICsN Cj4gKwlyZXQgPSB2aG9zdF91c2VyX3dyaXRlKGRldi0+dmhvc3RmZCwgJm1zZywgTlVMTCwgMCk7 DQo+ICsJaWYgKHJldCA8IDApIHsNCj4gKwkJUE1EX0RSVl9MT0coRVJSLCAiRmFpbGVkIHRvIHNl dCB2cmluZyBzdGF0ZSAocmVxdWVzdCAlZCkiLCByZXEpOw0KPiArCQlyZXR1cm4gLTE7DQo+ICsJ fQ0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3Zob3N0 X3VzZXJfc2V0X3ZyaW5nX2VuYWJsZShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHN0cnVj dA0KPiB2aG9zdF92cmluZ19zdGF0ZSAqc3RhdGUpDQo+ICt7DQo+ICsJcmV0dXJuIHZob3N0X3Vz ZXJfc2V0X3ZyaW5nKGRldiwgVkhPU1RfVVNFUl9TRVRfVlJJTkdfRU5BQkxFLCBzdGF0ZSk7DQo+ ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3Zob3N0X3VzZXJfc2V0X3ZyaW5nX251bShzdHJ1 Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHN0cnVjdA0KPiB2aG9zdF92cmluZ19zdGF0ZSAqc3Rh dGUpDQo+ICt7DQo+ICsJcmV0dXJuIHZob3N0X3VzZXJfc2V0X3ZyaW5nKGRldiwgVkhPU1RfVVNF Ul9TRVRfVlJJTkdfTlVNLCBzdGF0ZSk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3Zo b3N0X3VzZXJfc2V0X3ZyaW5nX2Jhc2Uoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCBzdHJ1 Y3QNCj4gdmhvc3RfdnJpbmdfc3RhdGUgKnN0YXRlKQ0KPiArew0KPiArCXJldHVybiB2aG9zdF91 c2VyX3NldF92cmluZyhkZXYsIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0JBU0UsIHN0YXRlKTsNCj4g K30NCj4gKw0KPiArc3RhdGljIGludA0KPiArdmhvc3RfdXNlcl9nZXRfdnJpbmdfYmFzZShzdHJ1 Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHN0cnVjdA0KPiB2aG9zdF92cmluZ19zdGF0ZSAqc3Rh dGUpDQo+ICt7DQo+ICsJaW50IHJldDsNCj4gKwlzdHJ1Y3Qgdmhvc3RfdXNlcl9tc2cgbXNnOw0K PiArCXVuc2lnbmVkIGludCBpbmRleCA9IHN0YXRlLT5pbmRleDsNCj4gKw0KPiArCXJldCA9IHZo b3N0X3VzZXJfc2V0X3ZyaW5nKGRldiwgVkhPU1RfVVNFUl9HRVRfVlJJTkdfQkFTRSwgc3RhdGUp Ow0KPiArCWlmIChyZXQgPCAwKSB7DQo+ICsJCVBNRF9EUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBz ZW5kIHJlcXVlc3QiKTsNCj4gKwkJZ290byBlcnI7DQo+ICsJfQ0KPiArDQo+ICsJcmV0ID0gdmhv c3RfdXNlcl9yZWFkKGRldi0+dmhvc3RmZCwgJm1zZyk7DQo+ICsJaWYgKHJldCA8IDApIHsNCj4g KwkJUE1EX0RSVl9MT0coRVJSLCAiRmFpbGVkIHRvIHJlYWQgcmVwbHkiKTsNCj4gKwkJZ290byBl cnI7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKG1zZy5yZXF1ZXN0ICE9IFZIT1NUX1VTRVJfR0VUX1ZS SU5HX0JBU0UpIHsNCj4gKwkJUE1EX0RSVl9MT0coRVJSLCAiVW5leHBlY3RlZCByZXF1ZXN0IHR5 cGUgKCVkKSIsIG1zZy5yZXF1ZXN0KTsNCj4gKwkJZ290byBlcnI7DQo+ICsJfQ0KPiArDQo+ICsJ aWYgKG1zZy5zaXplICE9IHNpemVvZigqc3RhdGUpKSB7DQo+ICsJCVBNRF9EUlZfTE9HKEVSUiwg IlVuZXhwZWN0ZWQgcGF5bG9hZCBzaXplICgldSkiLCBtc2cuc2l6ZSk7DQo+ICsJCWdvdG8gZXJy Ow0KPiArCX0NCj4gKw0KPiArCWlmIChtc2cucGF5bG9hZC5zdGF0ZS5pbmRleCAhPSBpbmRleCkg ew0KPiArCQlQTURfRFJWX0xPRyhFUlIsICJVbmV4cGVjdGVkIHJpbmcgaW5kZXggKCV1KSIsIHN0 YXRlLT5pbmRleCk7DQo+ICsJCWdvdG8gZXJyOw0KPiArCX0NCj4gKw0KPiArCSpzdGF0ZSA9IG1z Zy5wYXlsb2FkLnN0YXRlOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICtlcnI6DQo+ICsJUE1EX0RS Vl9MT0coRVJSLCAiRmFpbGVkIHRvIGdldCB2cmluZyBiYXNlIik7DQo+ICsJcmV0dXJuIC0xOw0K PiArfQ0KPiArDQo+ICBzdGF0aWMgc3RydWN0IHZob3N0X3VzZXJfbXNnIG07DQo+IA0KPiAgY29u c3QgY2hhciAqIGNvbnN0IHZob3N0X21zZ19zdHJpbmdzW10gPSB7DQo+ICAJW1ZIT1NUX1VTRVJf UkVTRVRfT1dORVJdID0gIlZIT1NUX1JFU0VUX09XTkVSIiwNCj4gIAlbVkhPU1RfVVNFUl9TRVRf VlJJTkdfQ0FMTF0gPSAiVkhPU1RfU0VUX1ZSSU5HX0NBTEwiLA0KPiAtCVtWSE9TVF9VU0VSX1NF VF9WUklOR19OVU1dID0gIlZIT1NUX1NFVF9WUklOR19OVU0iLA0KPiAtCVtWSE9TVF9VU0VSX1NF VF9WUklOR19CQVNFXSA9ICJWSE9TVF9TRVRfVlJJTkdfQkFTRSIsDQo+IC0JW1ZIT1NUX1VTRVJf R0VUX1ZSSU5HX0JBU0VdID0gIlZIT1NUX0dFVF9WUklOR19CQVNFIiwNCj4gIAlbVkhPU1RfVVNF Ul9TRVRfVlJJTkdfQUREUl0gPSAiVkhPU1RfU0VUX1ZSSU5HX0FERFIiLA0KPiAgCVtWSE9TVF9V U0VSX1NFVF9WUklOR19LSUNLXSA9ICJWSE9TVF9TRVRfVlJJTkdfS0lDSyIsDQo+IC0JW1ZIT1NU X1VTRVJfU0VUX1ZSSU5HX0VOQUJMRV0gPSAiVkhPU1RfU0VUX1ZSSU5HX0VOQUJMRSIsDQo+ICAJ W1ZIT1NUX1VTRVJfU0VUX1NUQVRVU10gPSAiVkhPU1RfU0VUX1NUQVRVUyIsDQo+ICAJW1ZIT1NU X1VTRVJfR0VUX1NUQVRVU10gPSAiVkhPU1RfR0VUX1NUQVRVUyIsDQo+ICB9Ow0KPiBAQCAtNDk1 LDE5ICs1NzIsNiBAQCB2aG9zdF91c2VyX3NvY2soc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2 LA0KPiAgCQlmZHNbZmRfbnVtKytdID0gKigoaW50ICopYXJnKTsNCj4gIAkJYnJlYWs7DQo+IA0K PiAtCWNhc2UgVkhPU1RfVVNFUl9TRVRfVlJJTkdfTlVNOg0KPiAtCWNhc2UgVkhPU1RfVVNFUl9T RVRfVlJJTkdfQkFTRToNCj4gLQljYXNlIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0VOQUJMRToNCj4g LQkJbWVtY3B5KCZtc2cucGF5bG9hZC5zdGF0ZSwgYXJnLCBzaXplb2YobXNnLnBheWxvYWQuc3Rh dGUpKTsNCj4gLQkJbXNnLnNpemUgPSBzaXplb2YobS5wYXlsb2FkLnN0YXRlKTsNCj4gLQkJYnJl YWs7DQo+IC0NCj4gLQljYXNlIFZIT1NUX1VTRVJfR0VUX1ZSSU5HX0JBU0U6DQo+IC0JCW1lbWNw eSgmbXNnLnBheWxvYWQuc3RhdGUsIGFyZywgc2l6ZW9mKG1zZy5wYXlsb2FkLnN0YXRlKSk7DQo+ IC0JCW1zZy5zaXplID0gc2l6ZW9mKG0ucGF5bG9hZC5zdGF0ZSk7DQo+IC0JCW5lZWRfcmVwbHkg PSAxOw0KPiAtCQlicmVhazsNCj4gLQ0KPiAgCWNhc2UgVkhPU1RfVVNFUl9TRVRfVlJJTkdfQURE UjoNCj4gIAkJbWVtY3B5KCZtc2cucGF5bG9hZC5hZGRyLCBhcmcsIHNpemVvZihtc2cucGF5bG9h ZC5hZGRyKSk7DQo+ICAJCW1zZy5zaXplID0gc2l6ZW9mKG0ucGF5bG9hZC5hZGRyKTsNCj4gQEAg LTU1NiwxNCArNjIwLDYgQEAgdmhvc3RfdXNlcl9zb2NrKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYg KmRldiwNCj4gIAkJCX0NCj4gIAkJCSooKF9fdTY0ICopYXJnKSA9IG1zZy5wYXlsb2FkLnU2NDsN Cj4gIAkJCWJyZWFrOw0KPiAtCQljYXNlIFZIT1NUX1VTRVJfR0VUX1ZSSU5HX0JBU0U6DQo+IC0J CQlpZiAobXNnLnNpemUgIT0gc2l6ZW9mKG0ucGF5bG9hZC5zdGF0ZSkpIHsNCj4gLQkJCQlQTURf RFJWX0xPRyhFUlIsICJSZWNlaXZlZCBiYWQgbXNnIHNpemUiKTsNCj4gLQkJCQlyZXR1cm4gLTE7 DQo+IC0JCQl9DQo+IC0JCQltZW1jcHkoYXJnLCAmbXNnLnBheWxvYWQuc3RhdGUsDQo+IC0JCQkg ICAgICAgc2l6ZW9mKHN0cnVjdCB2aG9zdF92cmluZ19zdGF0ZSkpOw0KPiAtCQkJYnJlYWs7DQo+ ICAJCWRlZmF1bHQ6DQo+ICAJCQkvKiBSZXBseS1hY2sgaGFuZGxpbmcgKi8NCj4gIAkJCWlmICht c2cuc2l6ZSAhPSBzaXplb2YobS5wYXlsb2FkLnU2NCkpIHsNCj4gQEAgLTY3MSwxMCArNzI3LDEw IEBAIHZob3N0X3VzZXJfZW5hYmxlX3F1ZXVlX3BhaXIoc3RydWN0IHZpcnRpb191c2VyX2RldiAq ZGV2LA0KPiAgCWZvciAoaSA9IDA7IGkgPCAyOyArK2kpIHsNCj4gIAkJc3RydWN0IHZob3N0X3Zy aW5nX3N0YXRlIHN0YXRlID0gew0KPiAgCQkJLmluZGV4ID0gcGFpcl9pZHggKiAyICsgaSwNCj4g LQkJCS5udW0gICA9IGVuYWJsZSwNCj4gKwkJCS5udW0gPSBlbmFibGUsDQo+ICAJCX07DQo+IA0K PiAtCQlpZiAodmhvc3RfdXNlcl9zb2NrKGRldiwgVkhPU1RfVVNFUl9TRVRfVlJJTkdfRU5BQkxF LCAmc3RhdGUpKQ0KPiArCQlpZiAodmhvc3RfdXNlcl9zZXRfdnJpbmdfZW5hYmxlKGRldiwgJnN0 YXRlKSkNCj4gIAkJCXJldHVybiAtMTsNCj4gIAl9DQo+IA0KPiBAQCAtNjkwLDYgKzc0Niw5IEBA IHN0cnVjdCB2aXJ0aW9fdXNlcl9iYWNrZW5kX29wcyB2aXJ0aW9fb3BzX3VzZXIgPSB7DQo+ICAJ LmdldF9wcm90b2NvbF9mZWF0dXJlcyA9IHZob3N0X3VzZXJfZ2V0X3Byb3RvY29sX2ZlYXR1cmVz LA0KPiAgCS5zZXRfcHJvdG9jb2xfZmVhdHVyZXMgPSB2aG9zdF91c2VyX3NldF9wcm90b2NvbF9m ZWF0dXJlcywNCj4gIAkuc2V0X21lbW9yeV90YWJsZSA9IHZob3N0X3VzZXJfc2V0X21lbW9yeV90 YWJsZSwNCj4gKwkuc2V0X3ZyaW5nX251bSA9IHZob3N0X3VzZXJfc2V0X3ZyaW5nX251bSwNCj4g Kwkuc2V0X3ZyaW5nX2Jhc2UgPSB2aG9zdF91c2VyX3NldF92cmluZ19iYXNlLA0KPiArCS5nZXRf dnJpbmdfYmFzZSA9IHZob3N0X3VzZXJfZ2V0X3ZyaW5nX2Jhc2UsDQo+ICAJLnNlbmRfcmVxdWVz dCA9IHZob3N0X3VzZXJfc29jaywNCj4gIAkuZW5hYmxlX3FwID0gdmhvc3RfdXNlcl9lbmFibGVf cXVldWVfcGFpcg0KPiAgfTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0 aW9fdXNlci92aG9zdF92ZHBhLmMNCj4gYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIv dmhvc3RfdmRwYS5jDQo+IGluZGV4IGJkN2RhZWJmMGMuLjMyMzc1MTA5M2EgMTAwNjQ0DQo+IC0t LSBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF92ZHBhLmMNCj4gKysrIGIv ZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3ZkcGEuYw0KPiBAQCAtMzIsMjQg KzMyLDE3IEBADQo+ICAjZGVmaW5lIFZIT1NUX1ZEUEFfR0VUX0RFVklDRV9JRCBfSU9SKFZIT1NU X1ZJUlRJTywgMHg3MCwgX191MzIpDQo+ICAjZGVmaW5lIFZIT1NUX1ZEUEFfR0VUX1NUQVRVUyBf SU9SKFZIT1NUX1ZJUlRJTywgMHg3MSwgX191OCkNCj4gICNkZWZpbmUgVkhPU1RfVkRQQV9TRVRf U1RBVFVTIF9JT1coVkhPU1RfVklSVElPLCAweDcyLCBfX3U4KQ0KPiAtI2RlZmluZSBWSE9TVF9W RFBBX1NFVF9WUklOR19FTkFCTEUJX0lPVyhWSE9TVF9WSVJUSU8sIDB4NzUsIFwNCj4gLQkJCQkJ ICAgICBzdHJ1Y3Qgdmhvc3RfdnJpbmdfc3RhdGUpDQo+ICsjZGVmaW5lIFZIT1NUX1ZEUEFfU0VU X1ZSSU5HX0VOQUJMRSBfSU9XKFZIT1NUX1ZJUlRJTywgMHg3NSwgc3RydWN0DQo+IHZob3N0X3Zy aW5nX3N0YXRlKQ0KPiAgI2RlZmluZSBWSE9TVF9TRVRfQkFDS0VORF9GRUFUVVJFUyBfSU9XKFZI T1NUX1ZJUlRJTywgMHgyNSwgX191NjQpDQo+ICAjZGVmaW5lIFZIT1NUX0dFVF9CQUNLRU5EX0ZF QVRVUkVTIF9JT1IoVkhPU1RfVklSVElPLCAweDI2LCBfX3U2NCkNCj4gDQo+ICBzdGF0aWMgdWlu dDY0X3Qgdmhvc3RfcmVxX3VzZXJfdG9fdmRwYVtdID0gew0KPiAgCVtWSE9TVF9VU0VSX1JFU0VU X09XTkVSXSA9IFZIT1NUX1JFU0VUX09XTkVSLA0KPiAgCVtWSE9TVF9VU0VSX1NFVF9WUklOR19D QUxMXSA9IFZIT1NUX1NFVF9WUklOR19DQUxMLA0KPiAtCVtWSE9TVF9VU0VSX1NFVF9WUklOR19O VU1dID0gVkhPU1RfU0VUX1ZSSU5HX05VTSwNCj4gLQlbVkhPU1RfVVNFUl9TRVRfVlJJTkdfQkFT RV0gPSBWSE9TVF9TRVRfVlJJTkdfQkFTRSwNCj4gLQlbVkhPU1RfVVNFUl9HRVRfVlJJTkdfQkFT RV0gPSBWSE9TVF9HRVRfVlJJTkdfQkFTRSwNCj4gIAlbVkhPU1RfVVNFUl9TRVRfVlJJTkdfQURE Ul0gPSBWSE9TVF9TRVRfVlJJTkdfQUREUiwNCj4gIAlbVkhPU1RfVVNFUl9TRVRfVlJJTkdfS0lD S10gPSBWSE9TVF9TRVRfVlJJTkdfS0lDSywNCj4gIAlbVkhPU1RfVVNFUl9TRVRfU1RBVFVTXSA9 IFZIT1NUX1ZEUEFfU0VUX1NUQVRVUywNCj4gIAlbVkhPU1RfVVNFUl9HRVRfU1RBVFVTXSA9IFZI T1NUX1ZEUEFfR0VUX1NUQVRVUywNCj4gLQlbVkhPU1RfVVNFUl9TRVRfVlJJTkdfRU5BQkxFXSA9 IFZIT1NUX1ZEUEFfU0VUX1ZSSU5HX0VOQUJMRSwNCj4gLQlbVkhPU1RfVVNFUl9HRVRfUFJPVE9D T0xfRkVBVFVSRVNdID0gVkhPU1RfR0VUX0JBQ0tFTkRfRkVBVFVSRVMsDQo+IC0JW1ZIT1NUX1VT RVJfU0VUX1BST1RPQ09MX0ZFQVRVUkVTXSA9IFZIT1NUX1NFVF9CQUNLRU5EX0ZFQVRVUkVTLA0K PiAgfTsNCj4gDQo+ICAvKiBubyBhbGlnbm1lbnQgcmVxdWlyZW1lbnQgKi8NCj4gQEAgLTM0Nyw2 ICszNDAsMzAgQEAgdmhvc3RfdmRwYV9zZXRfbWVtb3J5X3RhYmxlKHN0cnVjdCB2aXJ0aW9fdXNl cl9kZXYgKmRldikNCj4gIAlyZXR1cm4gcmV0Ow0KPiAgfQ0KPiANCj4gK3N0YXRpYyBpbnQNCj4g K3Zob3N0X3ZkcGFfc2V0X3ZyaW5nX2VuYWJsZShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYs IHN0cnVjdA0KPiB2aG9zdF92cmluZ19zdGF0ZSAqc3RhdGUpDQo+ICt7DQo+ICsJcmV0dXJuIHZo b3N0X3ZkcGFfaW9jdGwoZGV2LT52aG9zdGZkLCBWSE9TVF9WRFBBX1NFVF9WUklOR19FTkFCTEUs DQo+IHN0YXRlKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludA0KPiArdmhvc3RfdmRwYV9zZXRf dnJpbmdfbnVtKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgc3RydWN0DQo+IHZob3N0X3Zy aW5nX3N0YXRlICpzdGF0ZSkNCj4gK3sNCj4gKwlyZXR1cm4gdmhvc3RfdmRwYV9pb2N0bChkZXYt PnZob3N0ZmQsIFZIT1NUX1NFVF9WUklOR19OVU0sIHN0YXRlKTsNCj4gK30NCj4gKw0KPiArc3Rh dGljIGludA0KPiArdmhvc3RfdmRwYV9zZXRfdnJpbmdfYmFzZShzdHJ1Y3QgdmlydGlvX3VzZXJf ZGV2ICpkZXYsIHN0cnVjdA0KPiB2aG9zdF92cmluZ19zdGF0ZSAqc3RhdGUpDQo+ICt7DQo+ICsJ cmV0dXJuIHZob3N0X3ZkcGFfaW9jdGwoZGV2LT52aG9zdGZkLCBWSE9TVF9TRVRfVlJJTkdfQkFT RSwgc3RhdGUpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50DQo+ICt2aG9zdF92ZHBhX2dldF92 cmluZ19iYXNlKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgc3RydWN0DQo+IHZob3N0X3Zy aW5nX3N0YXRlICpzdGF0ZSkNCj4gK3sNCj4gKwlyZXR1cm4gdmhvc3RfdmRwYV9pb2N0bChkZXYt PnZob3N0ZmQsIFZIT1NUX0dFVF9WUklOR19CQVNFLCBzdGF0ZSk7DQo+ICt9DQo+ICsNCj4gIC8q IHdpdGggYmVsb3cgZmVhdHVyZXMsIHZob3N0IHZkcGEgZG9lcyBub3QgbmVlZCB0byBkbyB0aGUg Y2hlY2tzdW0gYW5kIFRTTywNCj4gICAqIHRoZXNlIGluZm8gd2lsbCBiZSBwYXNzZWQgdG8gdmly dGlvX3VzZXIgdGhyb3VnaCB2aXJ0aW8gbmV0IGhlYWRlci4NCj4gICAqLw0KPiBAQCAtMzc1LDEw ICszOTIsNyBAQCB2aG9zdF92ZHBhX3NlbmRfcmVxdWVzdChzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2 ICpkZXYsDQo+ICAJcmVxX3ZkcGEgPSB2aG9zdF9yZXFfdXNlcl90b192ZHBhW3JlcV07DQo+IA0K PiAgCXN3aXRjaCAocmVxX3ZkcGEpIHsNCj4gLQljYXNlIFZIT1NUX1NFVF9WUklOR19OVU06DQo+ ICAJY2FzZSBWSE9TVF9TRVRfVlJJTkdfQUREUjoNCj4gLQljYXNlIFZIT1NUX1NFVF9WUklOR19C QVNFOg0KPiAtCWNhc2UgVkhPU1RfR0VUX1ZSSU5HX0JBU0U6DQo+ICAJY2FzZSBWSE9TVF9TRVRf VlJJTkdfS0lDSzoNCj4gIAljYXNlIFZIT1NUX1NFVF9WUklOR19DQUxMOg0KPiAgCQlQTURfRFJW X0xPRyhERUJVRywgInZob3N0ZmQ9JWQsIGluZGV4PSV1IiwNCj4gQEAgLTQ0MCw3ICs0NTQsNyBA QCB2aG9zdF92ZHBhX2VuYWJsZV9xdWV1ZV9wYWlyKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRl diwNCj4gIAkJCS5udW0gICA9IGVuYWJsZSwNCj4gIAkJfTsNCj4gDQo+IC0JCWlmICh2aG9zdF92 ZHBhX3NlbmRfcmVxdWVzdChkZXYsIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0VOQUJMRSwNCj4gJnN0 YXRlKSkNCj4gKwkJaWYgKHZob3N0X3ZkcGFfc2V0X3ZyaW5nX2VuYWJsZShkZXYsICZzdGF0ZSkp DQo+ICAJCQlyZXR1cm4gLTE7DQo+ICAJfQ0KPiANCj4gQEAgLTQ1Nyw2ICs0NzEsOSBAQCBzdHJ1 Y3QgdmlydGlvX3VzZXJfYmFja2VuZF9vcHMgdmlydGlvX29wc192ZHBhID0gew0KPiAgCS5nZXRf cHJvdG9jb2xfZmVhdHVyZXMgPSB2aG9zdF92ZHBhX2dldF9iYWNrZW5kX2ZlYXR1cmVzLA0KPiAg CS5zZXRfcHJvdG9jb2xfZmVhdHVyZXMgPSB2aG9zdF92ZHBhX3NldF9iYWNrZW5kX2ZlYXR1cmVz LA0KPiAgCS5zZXRfbWVtb3J5X3RhYmxlID0gdmhvc3RfdmRwYV9zZXRfbWVtb3J5X3RhYmxlLA0K PiArCS5zZXRfdnJpbmdfbnVtID0gdmhvc3RfdmRwYV9zZXRfdnJpbmdfbnVtLA0KPiArCS5zZXRf dnJpbmdfYmFzZSA9IHZob3N0X3ZkcGFfc2V0X3ZyaW5nX2Jhc2UsDQo+ICsJLmdldF92cmluZ19i YXNlID0gdmhvc3RfdmRwYV9nZXRfdnJpbmdfYmFzZSwNCj4gIAkuc2VuZF9yZXF1ZXN0ID0gdmhv c3RfdmRwYV9zZW5kX3JlcXVlc3QsDQo+ICAJLmVuYWJsZV9xcCA9IHZob3N0X3ZkcGFfZW5hYmxl X3F1ZXVlX3BhaXIsDQo+ICAJLmRtYV9tYXAgPSB2aG9zdF92ZHBhX2RtYV9tYXBfYmF0Y2gsDQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJf ZGV2LmMNCj4gYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2 LmMNCj4gaW5kZXggY2I4ZjhhODcyYy4uMGIzMGMxMDAxNiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5jDQo+ICsrKyBiL2RyaXZl cnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuYw0KPiBAQCAtNzMsMTMg KzczLDEzIEBAIHZpcnRpb191c2VyX2tpY2tfcXVldWUoc3RydWN0IHZpcnRpb191c2VyX2RldiAq ZGV2LA0KPiB1aW50MzJfdCBxdWV1ZV9zZWwpDQo+IA0KPiAgCXN0YXRlLmluZGV4ID0gcXVldWVf c2VsOw0KPiAgCXN0YXRlLm51bSA9IHZyaW5nLT5udW07DQo+IC0JZGV2LT5vcHMtPnNlbmRfcmVx dWVzdChkZXYsIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX05VTSwgJnN0YXRlKTsNCj4gKwlkZXYtPm9w cy0+c2V0X3ZyaW5nX251bShkZXYsICZzdGF0ZSk7DQo+IA0KPiAgCXN0YXRlLmluZGV4ID0gcXVl dWVfc2VsOw0KPiAgCXN0YXRlLm51bSA9IDA7IC8qIG5vIHJlc2VydmF0aW9uICovDQo+ICAJaWYg KGRldi0+ZmVhdHVyZXMgJiAoMVVMTCA8PCBWSVJUSU9fRl9SSU5HX1BBQ0tFRCkpDQo+ICAJCXN0 YXRlLm51bSB8PSAoMSA8PCAxNSk7DQo+IC0JZGV2LT5vcHMtPnNlbmRfcmVxdWVzdChkZXYsIFZI T1NUX1VTRVJfU0VUX1ZSSU5HX0JBU0UsICZzdGF0ZSk7DQo+ICsJZGV2LT5vcHMtPnNldF92cmlu Z19iYXNlKGRldiwgJnN0YXRlKTsNCj4gDQo+ICAJZGV2LT5vcHMtPnNlbmRfcmVxdWVzdChkZXYs IFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0FERFIsICZhZGRyKTsNCj4gDQo+IEBAIC0yMTgsOSArMjE4 LDggQEAgaW50IHZpcnRpb191c2VyX3N0b3BfZGV2aWNlKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYg KmRldikNCj4gIAkvKiBTdG9wIHRoZSBiYWNrZW5kLiAqLw0KPiAgCWZvciAoaSA9IDA7IGkgPCBk ZXYtPm1heF9xdWV1ZV9wYWlycyAqIDI7ICsraSkgew0KPiAgCQlzdGF0ZS5pbmRleCA9IGk7DQo+ IC0JCWlmIChkZXYtPm9wcy0+c2VuZF9yZXF1ZXN0KGRldiwgVkhPU1RfVVNFUl9HRVRfVlJJTkdf QkFTRSwNCj4gLQkJCQkJICAgJnN0YXRlKSA8IDApIHsNCj4gLQkJCVBNRF9EUlZfTE9HKEVSUiwg ImdldF92cmluZ19iYXNlIGZhaWxlZCwgaW5kZXg9JXVcbiIsDQo+ICsJCWlmIChkZXYtPm9wcy0+ Z2V0X3ZyaW5nX2Jhc2UoZGV2LCAmc3RhdGUpIDwgMCkgew0KPiArCQkJUE1EX0RSVl9MT0coRVJS LCAiZ2V0X3ZyaW5nX2Jhc2UgZmFpbGVkLCBpbmRleD0ldSIsDQo+ICAJCQkJICAgIGkpOw0KPiAg CQkJZXJyb3IgPSAtMTsNCj4gIAkJCWdvdG8gb3V0Ow0KPiAtLQ0KPiAyLjI5LjINCg0KUmV2aWV3 ZWQtYnk6IENoZW5ibyBYaWEgPGNoZW5iby54aWFAaW50ZWwuY29tPg0K