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 A18A5A0C4D; Mon, 6 Sep 2021 05:32:42 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9085C410ED; Mon, 6 Sep 2021 05:32:42 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 14EBC410E9 for ; Mon, 6 Sep 2021 05:32:39 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10098"; a="305431720" X-IronPort-AV: E=Sophos;i="5.85,271,1624345200"; d="scan'208";a="305431720" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Sep 2021 20:32:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,271,1624345200"; d="scan'208";a="693978512" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga005.fm.intel.com with ESMTP; 05 Sep 2021 20:32:36 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Sun, 5 Sep 2021 20:32:36 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Sun, 5 Sep 2021 20:32:36 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Sun, 5 Sep 2021 20:32:36 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.173) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Sun, 5 Sep 2021 20:32:35 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KlXEjHhgJbhv6ysu2ORl3sOp+DweslCPogznrQv121EqEniD4TA9RO0OD+dK9wdlN5BV49SxkOFk7RZ1eZ2I8K0pZyTHyh9sZMQnIoseNn+zkTMuGg9xhUlxV8PpBLk4CVS4yU6xSQJIVTXkw985qY7QCWhqtz6fYqw2KubjoCQ6FFElSLrszpQlHv8p0E2pOIzVKGeXmMP65Wu9qasRtfxbJky/AKn1njgX4xOdUyBzTuDhuWbEDciWFz4N3xlsyxyJQ7XulUywWL08hEWGdnJ0ZuQgu0PkIkN5aRj5wU84WqruOKUjtZy0DheYgXk2+CLtkMwFkuEtnTK60C2Dww== 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; bh=KmXxbkN2Eu1axaQlIpX4eTyPxxlqiLFuiOFt2Ycja8g=; b=IaNwdu9Ec42QB75jH0otA2/SO+AQAxhjwC5tbAb6KkmxfLla0LiRpex4NfjV35Ctw79+M+mWo+dLVR5Je+MAvdOie3HmFr2V3jU3bP5bwyo25jH6zXoG7g5EkTUFqL7NsoTdGwI+rM+/GYUkxQ9yLeochGsu5lM5JA3QORupeM4AoWvgn7npzXAiGN9sq3n97tj9J6Fg3IDsmUw3WIUN89WhB1e7kT0NxVYzWTu6+XtjtCV++28MKElmFBRicW1tiW/9xC3TK/UBuEXvHMHB1EgSov7exsttjObtnQZzg/ItKlG8sv5wRzO11I10m7WYCw1B1YDKR6mlZJGssyfplA== 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=KmXxbkN2Eu1axaQlIpX4eTyPxxlqiLFuiOFt2Ycja8g=; b=y+bVJDNo4qgWmW73kIlwy50vXCQtYZ4JMkMc+wgCuU0s9cd2wbZlxhfv2x4HvfLoGax0vpXQiB28CEctADeLPxpq9tNwDNHG/sd72uUJqQdtj7nC5fR28/UzHUkVsXotRTOp3bAHOWPFWWthaYYaegLltRDG8OLGxntpzX4mg8s= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB4030.namprd11.prod.outlook.com (2603:10b6:208:156::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.19; Mon, 6 Sep 2021 03:32:33 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::6873:dced:7f68:801]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::6873:dced:7f68:801%3]) with mapi id 15.20.4478.025; Mon, 6 Sep 2021 03:32:33 +0000 From: "Xia, Chenbo" To: "Xia, Chenbo" , Gaoxiang Liu CC: "maxime.coquelin@redhat.com" , "dev@dpdk.org" , "liugaoxiang@huawei.com" Thread-Topic: [dpdk-dev] [PATCH v6] vhost: fix crash on port deletion Thread-Index: AQHXos/U5sBPigT+D0Wqam8eyN1Vvg== Date: Mon, 6 Sep 2021 03:32:32 +0000 Message-ID: References: <20210820154615.551-1-gaoxiangliu0@163.com> <20210827141925.1500-1-gaoxiangliu0@163.com> <120eb1f4.155.17ba7294da6.Coremail.gaoxiangliu0@163.com> In-Reply-To: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b7c93b66-5fa3-4d43-100c-08d970e6f694 x-ms-traffictypediagnostic: MN2PR11MB4030: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3173; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 1LEOuj28VbVZzefbDatQHY5yl57ScnrQqzoH3WVYaA0BaNeAvPIctvBx1PQjGAJ1Y12u7j0NVmXGBlxbrgbZXJXiIWjo97Rg6L9KEonq1Pn/0tehToPI44KId32yln/e20nbipDiho6r03ByQfwAifQXxKXWsBLdQdEyf36FVBsTZnVD29BXBp/D5kwlDOTULLS2Mu/zhWKWuNgsUjyTlNgWd8VSc5gBGJvawFx7V2aA9oV+mDPfGncoZCaShjC60VkXE5aKQC1fZkoReFtlmUoYcvJTIP+CYD6gaZi/wewHeMO1p/UQlKlRmnvxlt7P06hidNrgJT/2E2uf1nBsG709uQJ0OPPZf2nqF41yUCMl+aw/SMCiufAbC7mVUWy6/nHd3iT92FsQ64ixXVFbxGMiZXqUqRPuT8nWN+rS9EpcfC2JQUeja9gqrM1QoixeJqnx4O7JSoEPoS/UWZUEqiV3fRQNeey341qQwLgkHn9NfzO+7z5jmKsGeJGzb1GU6rV1iNi85UhN2gCVbRwCwXnhunW/HIw0AN7r/J5aQ1ZdEdVdrH8cXF3LsCeCtgvYv1EhdvweJ3pPqtSX2QsIDb+yLOgJUOgR1JUlAq+fiHx4UtI+t37m1tJtfe8V8D6bcj+c/vc5DIu8yrcAnPvvD5YbeskGIrSVrLM8mMFbHXnPz2nvXNhLN0m5mDAQQig3cwk2D6XfGXQx9BvZtFEeMA== 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)(39860400002)(346002)(136003)(376002)(396003)(366004)(6506007)(76116006)(316002)(38070700005)(478600001)(66946007)(53546011)(7696005)(86362001)(66446008)(52536014)(66476007)(38100700002)(2906002)(83380400001)(64756008)(26005)(8676002)(4326008)(9686003)(71200400001)(2940100002)(186003)(5660300002)(54906003)(55016002)(110136005)(8936002)(33656002)(122000001)(66556008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RmgrSGpCdEtPNmtodHQ1WUtvVkVBOGVwQS9NTlpPZEw4RzV3ZXhUUkdJK2xr?= =?utf-8?B?ZSsrTFdxZktXRHk1UDNGWndsbW03aGtpTnNJV3EwS0ZXeTRLSk5pdjdMU1dT?= =?utf-8?B?bm5mMW82SHh5aC8wV3hMU3JkdDFRVzlqV251dE5jOUc2Y0dKMmYxK3UzdHdh?= =?utf-8?B?UTl6bGRsTmVwbVArS0tLbUZVQkFwS1BpZm50UWdHM1ZTWWMya0tYTkZncGd4?= =?utf-8?B?WjN5aWpDa2VHU1Z0Rkp0WW5KdkxoQXRGZk1nQVE3V2FiSzVzd1FEOEtzN3JD?= =?utf-8?B?alBKNjhCS0xSUzlVTUpEUTV5VFVYamt0UGNrcXN0cVA0c3pIdWtPRW9GcVNw?= =?utf-8?B?OEdOVmlEZ2FpU2Z3a0NTUGlpakJTVjg2NjB6U1FTM3c2R2RQL0gzaFI5akhB?= =?utf-8?B?MkwxVEpwdjVSUTdKZWpBVlNqVWp2K3dWR3FmVGJQOUc1OElPMVhqbWNTMEdw?= =?utf-8?B?M0ZMbTQvL3RzQnJ3Mk1MZUpJVGd6enRZSDkyZXNHeEdvcmdIV3NFR2VDNG1D?= =?utf-8?B?c2hWMjlyMGx5K1BCMzA5TVZCV0liczRnRjY5WTRTNlcvdDFWdHZaRG1PaTBN?= =?utf-8?B?WjhxbXZoaG1tK3NYNE9DRUZzb3VGK0p1bFVHRjBTeW1ZVXRWQk44c3lMeHd2?= =?utf-8?B?M0lWaXpqZXNzZzRkd1VXd08vN1FUYmVjNzgvTDc3eUpUZEp6VWdwL2ZTMUhJ?= =?utf-8?B?Si83T0dOK3RnUmtTdEpZVWtmOWNQd1dZeUhEUm9MQ0E1ZkRpbEdkY1piNXhj?= =?utf-8?B?eWxqSU54WXJ2YzVJVEE5RVR0NW8xQ1hGVE5UUElWNUZPVXJQNlc5bTdZOHQx?= =?utf-8?B?QnVxVS9kR1NBY3ZFTTB0Wk4rVWdBRXhQakc0d2NKczdqd3FmdER4eWdLTEVC?= =?utf-8?B?cWxxZk1UcVRLdlVqNVQzZGtKWUd0ekF4c2Y3Y2RmSEQvL0VDR3YxS09wRDJP?= =?utf-8?B?cWhpU1JVYndkTGRlWDBLOUFMUFloWjhvaEsrUytmVUNTUTg2YUx2d0pCVGR3?= =?utf-8?B?MHhBSVZNY1hib3h6c2h2UHhubTZpbHRINmxJYTJ2ZEdaOE8zTUZnSnE3MU1K?= =?utf-8?B?VDV3bmRkK3g2bXEwL3hYc2poNzZVUU1xb2Q2SzJ2ZzhwTFdnMUhFa28rQkNR?= =?utf-8?B?Z3NZZXdNY3QzTVNMemZTK0xDTGZNV0s5V2JaZWQxbXFXN09ZQkxRT0lNcFZX?= =?utf-8?B?WUd1R0FTektKalRnaUNibHRYOEhUcitxSEorWXdzK2dDNnhldHk3Mlhhamxn?= =?utf-8?B?eW83ZnM2TGo3ei9jVklWRnUxeHQxR0ppdWdkdTFMb3lCOE1Xc1J4enVxM2R6?= =?utf-8?B?NkkrMk1yYzMwelp0TWVtVjlqSlh2enRucTMvUEVzV0c3dkJSMlJLSlRQSFR6?= =?utf-8?B?Mm1zbDBpRnhHWEZqcVhTWWMrL3kwSVE4MFZLNXo5bkVtRXdyM2Z1dnViQVVF?= =?utf-8?B?NmtzcGtNQ0tnallZcFcxWTVqZUNYNnM3eU13RXdYV2ZmOXdBVTUzd01UZDRa?= =?utf-8?B?REJXUDRuQWVmd0hhMGwyeDVpMHh4VlFRSHJ6QU5pMzhJWExQd1UzaGhVcFJ0?= =?utf-8?B?eEJ1QVVIYVhiSFIzRXFueHF5amxaL1N4Q1MrdjhpVTZaVHh5WHNvczdUTlJN?= =?utf-8?B?WDFodGNqd0xZZkZMaFhuRlhiYy81TUppM1BaNEpJaVNrc2hLMTdiLzhKK1Z0?= =?utf-8?B?T0RvY1ZqV05BVHcxaWhHcEdobVhjanhidTVRTXE4c3JsbXpsQjZGMGFoTk05?= =?utf-8?Q?3XAN9t8JBXXiAbXkh0=3D?= 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: b7c93b66-5fa3-4d43-100c-08d970e6f694 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Sep 2021 03:32:33.0234 (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: b/7r63ScxIeTL8rYiL/2Ne6RYbNfYJyCNUI0hJDMYd3NcQSTdZ46rE8FJXshTqu+xuYqP9fDxKM2A4JQzUKn0Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4030 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v6] vhost: fix crash on port deletion 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" SGkgR2FveGlhbmcsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2 IDxkZXYtYm91bmNlc0BkcGRrLm9yZz4gT24gQmVoYWxmIE9mIFhpYSwgQ2hlbmJvDQo+IFNlbnQ6 IE1vbmRheSwgU2VwdGVtYmVyIDYsIDIwMjEgMTE6MTggQU0NCj4gVG86IEdhb3hpYW5nIExpdSA8 Z2FveGlhbmdsaXUwQDE2My5jb20+DQo+IENjOiBtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbTsg ZGV2QGRwZGsub3JnOyBsaXVnYW94aWFuZ0BodWF3ZWkuY29tDQo+IFN1YmplY3Q6IFJlOiBbZHBk ay1kZXZdIFtQQVRDSCB2Nl0gdmhvc3Q6IGZpeCBjcmFzaCBvbiBwb3J0IGRlbGV0aW9uDQo+IA0K PiBIaSBHYW94aWFuZywNCj4gDQo+ID4NCj4gPg0KPiA+RnJvbTogR2FveGlhbmcgTGl1IDxnYW94 aWFuZ2xpdTBAMTYzLmNvbT4NCj4gPlNlbnQ6IFRodXJzZGF5LCBTZXB0ZW1iZXIgMiwgMjAyMSAx MTozOCBQTQ0KPiA+VG86IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT4NCj4gPkNj OiBtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbTsgZGV2QGRwZGsub3JnOyBsaXVnYW94aWFuZ0Bo dWF3ZWkuY29tDQo+ID5TdWJqZWN0OiBSZTpSRTogW1BBVENIIHY2XSB2aG9zdDogZml4IGNyYXNo IG9uIHBvcnQgZGVsZXRpb24NCj4gPg0KPiA+DQo+ID5IaSBjaGVuYm8sDQo+ID53aHkgdGhpcyBp cyBub3QgbW92ZWQgdXA/DQo+ID4+PiArCQlpZiAodnNvY2tldC0+aXNfc2VydmVyKSB7DQo+ID4+ PiArCQkJY2xvc2UodnNvY2tldC0+c29ja2V0X2ZkKTsNCj4gPj4+ICsJCQl1bmxpbmsocGF0aCk7 DQo+ID4+PiAgCQl9DQo+ID49PT5CZWNhdXNlIGlmIHRoaXMgaXMgbW92ZWQgdXAsIGFuZCBpZiBk ZWxldGluZyBjb25uIGZkIGZyb20gZmRzZXRzIGZhaWxlZCwNCj4gPml0IHdpbGwgYXJyaXZlIHRo ZSAiYWdhaW4iIGxhYmVsLCB0aGVuIGNsb3NlIHZzb2NrZXQtPnNvY2tldF9mZCBhbmQgdXBsaW5r DQo+ICJwYXRoIiBhZ2Fpbi4NCj4gPml0J3Mgbm90wqBuZWNlc3NhcnkuDQo+ID5BbmQgY2xvc2lu ZyBzb2NrZXRfZmQgZG9lcyBub3TCoMKgdHJpZ2dlcsKgdmhvc3RfdXNlcl9zZXJ2ZXJfbmV3X2Nv bm5lY3Rpb24uDQo+IA0KPiBCdXQgc2FtZSBpc3N1ZSBoYXBwZW5zIHdoZW4geW91IGRlbGV0ZWQg J3Zzb2NrZXQtPnNvY2tldF9mZCcgYnV0IGZhaWxlZCB0bw0KPiBkZWxldGUgb25lDQo+IG9mIHRo ZSBjb25uX2ZkOiB5b3Ugd2lsbCBnb3RvIGFnYWluIGFuZCB0cnkgdG8gZGVsZXRlIHNvY2tldF9m ZCBhZ2FpbiBhbmQgdGhlbg0KPiBsb29wDQo+IGZvcmV2ZXIuIFNvIGFueXdheSB5b3UgbmVlZCB0 byBwcmV2ZW50IHRoaXMgZnJvbSBoYXBwZW5pbmcuDQoNClBsZWFzZSBpZ25vcmUgdGhpcy4gSSB0 aG91Z2h0IGRlbGV0ZSBzb2NrZXRfZmQgYWdhaW4gd2lsbCByZXR1cm4gLTEuDQpTbyBJIGFtIGZp bmUgd2l0aCBwdXR0aW5nIGl0IGxhdGVyIG90aGVyd2lzZSB3ZSBoYXZlIHRvIGludHJvZHVjZSBh IGZsYWcgdG8ga25vdyBpZg0KU29ja2V0X2ZkIGRlbGV0aW9uIGhhcHBlbmVkIG9uY2UuDQoNClRo YW5rcywNCkNoZW5ibw0KDQo+IA0KPiBUaGFua3MsDQo+IENoZW5ibw0KPiANCj4gPg0KPiA+VGhh bmtzLg0KPiA+R2FveGlhbmcNCj4gDQo+IEF0IDIwMjEtMDgtMzEgMTM6Mzc6MzgsICJYaWEsIENo ZW5ibyIgPG1haWx0bzpjaGVuYm8ueGlhQGludGVsLmNvbT4gd3JvdGU6DQo+ID5IaSBHYW94aWFu ZywNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBHYW94 aWFuZyBMaXUgPG1haWx0bzpnYW94aWFuZ2xpdTBAMTYzLmNvbT4NCj4gPj4gU2VudDogRnJpZGF5 LCBBdWd1c3QgMjcsIDIwMjEgMTA6MTkgUE0NCj4gPj4gVG86IG1haWx0bzptYXhpbWUuY29xdWVs aW5AcmVkaGF0LmNvbTsgWGlhLCBDaGVuYm8NCj4gPG1haWx0bzpjaGVuYm8ueGlhQGludGVsLmNv bT4NCj4gPj4gQ2M6IG1haWx0bzpkZXZAZHBkay5vcmc7IG1haWx0bzpsaXVnYW94aWFuZ0BodWF3 ZWkuY29tOyBHYW94aWFuZyBMaXUNCj4gPG1haWx0bzpnYW94aWFuZ2xpdTBAMTYzLmNvbT4NCj4g Pj4gU3ViamVjdDogW1BBVENIIHY2XSB2aG9zdDogZml4IGNyYXNoIG9uIHBvcnQgZGVsZXRpb24N Cj4gPj4NCj4gPj4gVGhlIHJ0ZV92aG9zdF9kcml2ZXJfdW5yZWdpc3RlcigpIGFuZCB2aG9zdF91 c2VyX3JlYWRfY2IoKQ0KPiA+PiBjYW4gYmUgY2FsbGVkIGF0IHRoZSBzYW1lIHRpbWUgYnkgMiB0 aHJlYWRzLg0KPiA+PiB3aGVuIG1lbW9yeSBvZiB2c29ja2V0IGlzIGZyZWVkIGluIHJ0ZV92aG9z dF9kcml2ZXJfdW5yZWdpc3RlcigpLA0KPiA+PiB0aGUgaW52YWxpZCBtZW1vcnkgb2YgdnNvY2tl dCBpcyBhY2Nlc3NlZCBpbiB2aG9zdF91c2VyX3JlYWRfY2IoKS4NCj4gPj4gSXQncyBhIGJ1ZyBv ZiBib3RoIG1vZGUgZm9yIHZob3N0IGFzIHNlcnZlciBvciBjbGllbnQuDQo+ID4+DQo+ID4+IEUu Zy4sdmhvc3R1c2VyIHBvcnQgaXMgY3JlYXRlZCBhcyBzZXJ2ZXIuDQo+ID4NCj4gPlB1dCBhIHNw YWNlIGFmdGVyICcsJw0KPiA+DQo+ID4+IFRocmVhZDEgY2FsbHMgcnRlX3Zob3N0X2RyaXZlcl91 bnJlZ2lzdGVyKCkuDQo+ID4+IEJlZm9yZSB0aGUgbGlzdGVuIGZkIGlzIGRlbGV0ZWQgZnJvbSBw b2xsIHdhaXRpbmcgZmRzLA0KPiA+PiAidmhvc3QtZXZlbnRzIiB0aHJlYWQgdGhlbiBjYWxscyB2 aG9zdF91c2VyX3NlcnZlcl9uZXdfY29ubmVjdGlvbigpLA0KPiA+PiB0aGVuIGEgbmV3IGNvbm4g ZmQgaXMgYWRkZWQgaW4gZmRzZXQgd2hlbiB0cnlpbmcgdG8gcmVjb25uZWN0Lg0KPiA+PiAidmhv c3QtZXZlbnRzIiB0aHJlYWQgdGhlbiBjYWxscyB2aG9zdF91c2VyX3JlYWRfY2IoKSBhbmQNCj4g Pj4gYWNjZXNzZXMgaW52YWxpZCBtZW1vcnkgb2Ygc29ja2V0IHdoaWxlIHRocmVhZDEgZnJlZXMg dGhlIG1lbW9yeSBvZg0KPiA+PiB2c29ja2V0Lg0KPiA+Pg0KPiA+PiBFLmcuLHZob3N0dXNlciBw b3J0IGlzIGNyZWF0ZWQgYXMgY2xpZW50Lg0KPiA+DQo+ID5TYW1lIGhlcmUuDQo+ID4NCj4gPj4g VGhyZWFkMSBjYWxscyBydGVfdmhvc3RfZHJpdmVyX3VucmVnaXN0ZXIoKS4NCj4gPj4gQmVmb3Jl IHZzb2NrZXQgb2YgcmVjb25uIGlzIGRlbGV0ZWQgZnJvbSByZWNvbm4gbGlzdCwNCj4gPj4gInZo b3N0X3JlY29ubiIgdGhyZWFkIHRoZW4gY2FsbHMgdmhvc3RfdXNlcl9hZGRfY29ubmVjdGlvbigp DQo+ID4+IHRoZW4gYSBuZXcgY29ubiBmZCBpcyBhZGRlZCBpbiBmZHNldCB3aGVuIHRyeWluZyB0 byByZWNvbm5lY3QuDQo+ID4+ICJ2aG9zdC1ldmVudHMiIHRocmVhZCB0aGVuIGNhbGxzIHZob3N0 X3VzZXJfcmVhZF9jYigpIGFuZA0KPiA+PiBhY2Nlc3NlcyBpbnZhbGlkIG1lbW9yeSBvZiBzb2Nr ZXQgd2hpbGUgdGhyZWFkMSBmcmVlcyB0aGUgbWVtb3J5IG9mDQo+ID4+IHZzb2NrZXQuDQo+ID4+ DQo+ID4+IFRoZSBmaXggaXMgdG8gbW92ZSB0aGUgImZkc2V0X3RyeV9kZWwiIGluIGZyb250IG9m IGZyZWUgbWVtb3J5IG9mIGNvbm4sDQo+ID4+IHRoZW4gYXZvaWQgdGhlIHJhY2UgY29uZGl0aW9u Lg0KPiA+Pg0KPiA+PiBUaGUgY29yZSB0cmFjZSBpczoNCj4gPj4gUHJvZ3JhbSB0ZXJtaW5hdGVk IHdpdGggc2lnbmFsIDExLCBTZWdtZW50YXRpb24gZmF1bHQuDQo+ID4+DQo+ID4+IEZpeGVzOiA1 MmQ4NzRkYzY3MDUgKCJ2aG9zdDogZml4IGNyYXNoIG9uIGNsb3NpbmcgaW4gY2xpZW50IG1vZGUi KQ0KPiA+Pg0KPiA+PiBTaWduZWQtb2ZmLWJ5OiBHYW94aWFuZyBMaXUgPG1haWx0bzpsaXVnYW94 aWFuZ0BodWF3ZWkuY29tPg0KPiA+PiAtLS0NCj4gPj4NCj4gPj4gdjI6DQo+ID4+ICogRml4IGNv ZGluZyBzdHlsZSBpc3N1ZXMuDQo+ID4+DQo+ID4+IHYzOg0KPiA+PiAqIEFkZCBkZXRhaWxlZCBs b2cuDQo+ID4+DQo+ID4+IHY0Og0KPiA+PiAqIEFkZCB0aGUgcmVhc29uLCB3aGVuIHZob3N0dXNl ciBwb3J0IGlzIGNyZWF0ZWQgYXMgc2VydmVyLg0KPiA+Pg0KPiA+PiB2NToNCj4gPj4gKiBBZGQg ZGV0YWlsZWQgbG9nIHdoZW4gdmhvc3R1c2VyIHBvcnQgaXMgY3JlYXRlZCBhcyBjbGllbnQNCj4g Pj4NCj4gPj4gdjY6DQo+ID4+ICogQWRkICdwYXRoJyBjaGVjayBiZWZvcmUgZGVsZXRpbmcgbGlz dGVuIGZkDQo+ID4+ICogRml4IHNwZWxsaW5nIGlzc3Vlcw0KPiA+PiAtLS0NCj4gPj4gIGxpYi92 aG9zdC9zb2NrZXQuYyB8IDEwOCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPj4gIDEgZmlsZSBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCA1NCBkZWxl dGlvbnMoLSkNCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhL2xpYi92aG9zdC9zb2NrZXQuYyBiL2xp Yi92aG9zdC9zb2NrZXQuYw0KPiA+PiBpbmRleCA1ZDBkNzI4ZDUuLjI3ZDVlODY5NSAxMDA2NDQN Cj4gPj4gLS0tIGEvbGliL3Zob3N0L3NvY2tldC5jDQo+ID4+ICsrKyBiL2xpYi92aG9zdC9zb2Nr ZXQuYw0KPiA+PiBAQCAtMTAyMyw2NiArMTAyMyw2NiBAQCBydGVfdmhvc3RfZHJpdmVyX3VucmVn aXN0ZXIoY29uc3QgY2hhciAqcGF0aCkNCj4gPj4NCj4gPj4gIAlmb3IgKGkgPSAwOyBpIDwgdmhv c3RfdXNlci52c29ja2V0X2NudDsgaSsrKSB7DQo+ID4+ICAJCXN0cnVjdCB2aG9zdF91c2VyX3Nv Y2tldCAqdnNvY2tldCA9IHZob3N0X3VzZXIudnNvY2tldHNbaV07DQo+ID4+ICsJCWlmIChzdHJj bXAodnNvY2tldC0+cGF0aCwgcGF0aCkpIHsNCj4gPj4gKwkJCWNvbnRpbnVlOw0KPiA+PiArCQl9 DQo+ID4NCj4gPmJyYWNlcyB7fSBhcmUgbm90IG5lY2Vzc2FyeSBmb3Igc2luZ2xlIHN0YXRlbWVu dCBibG9ja3MNCj4gPg0KPiA+Pg0KPiA+PiAtCQlpZiAoIXN0cmNtcCh2c29ja2V0LT5wYXRoLCBw YXRoKSkgew0KPiA+PiAtCQkJcHRocmVhZF9tdXRleF9sb2NrKCZ2c29ja2V0LT5jb25uX211dGV4 KTsNCj4gPj4gLQkJCWZvciAoY29ubiA9IFRBSUxRX0ZJUlNUKCZ2c29ja2V0LT5jb25uX2xpc3Qp Ow0KPiA+PiAtCQkJICAgICBjb25uICE9IE5VTEw7DQo+ID4+IC0JCQkgICAgIGNvbm4gPSBuZXh0 KSB7DQo+ID4+IC0JCQkJbmV4dCA9IFRBSUxRX05FWFQoY29ubiwgbmV4dCk7DQo+ID4+IC0NCj4g Pj4gLQkJCQkvKg0KPiA+PiAtCQkJCSAqIElmIHIvd2NiIGlzIGV4ZWN1dGluZywgcmVsZWFzZSB2 c29ja2V0J3MNCj4gPj4gLQkJCQkgKiBjb25uX211dGV4IGFuZCB2aG9zdF91c2VyJ3MgbXV0ZXgg bG9ja3MsIGFuZA0KPiA+PiAtCQkJCSAqIHRyeSBhZ2FpbiBzaW5jZSB0aGUgci93Y2IgbWF5IHVz ZSB0aGUNCj4gPj4gLQkJCQkgKiBjb25uX211dGV4IGFuZCBtdXRleCBsb2Nrcy4NCj4gPj4gLQkJ CQkgKi8NCj4gPj4gLQkJCQlpZiAoZmRzZXRfdHJ5X2RlbCgmdmhvc3RfdXNlci5mZHNldCwNCj4g Pj4gLQkJCQkJCSAgY29ubi0+Y29ubmZkKSA9PSAtMSkgew0KPiA+PiAtCQkJCQlwdGhyZWFkX211 dGV4X3VubG9jaygNCj4gPj4gLQkJCQkJCQkmdnNvY2tldC0+Y29ubl9tdXRleCk7DQo+ID4+IC0J CQkJCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ2aG9zdF91c2VyLm11dGV4KTsNCj4gPj4gLQkJCQkJ Z290byBhZ2FpbjsNCj4gPj4gLQkJCQl9DQo+ID4+IC0NCj4gPj4gLQkJCQlWSE9TVF9MT0dfQ09O RklHKElORk8sDQo+ID4+IC0JCQkJCSJmcmVlIGNvbm5mZCA9ICVkIGZvciBkZXZpY2UgJyVzJ1xu IiwNCj4gPj4gLQkJCQkJY29ubi0+Y29ubmZkLCBwYXRoKTsNCj4gPj4gLQkJCQljbG9zZShjb25u LT5jb25uZmQpOw0KPiA+PiAtCQkJCXZob3N0X2Rlc3Ryb3lfZGV2aWNlKGNvbm4tPnZpZCk7DQo+ ID4+IC0JCQkJVEFJTFFfUkVNT1ZFKCZ2c29ja2V0LT5jb25uX2xpc3QsIGNvbm4sIG5leHQpOw0K PiA+PiAtCQkJCWZyZWUoY29ubik7DQo+ID4+IC0JCQl9DQo+ID4+IC0JCQlwdGhyZWFkX211dGV4 X3VubG9jaygmdnNvY2tldC0+Y29ubl9tdXRleCk7DQo+ID4+IC0NCj4gPj4gLQkJCWlmICh2c29j a2V0LT5pc19zZXJ2ZXIpIHsNCj4gPj4gLQkJCQkvKg0KPiA+PiAtCQkJCSAqIElmIHIvd2NiIGlz IGV4ZWN1dGluZywgcmVsZWFzZSB2aG9zdF91c2VyJ3MNCj4gPj4gLQkJCQkgKiBtdXRleCBsb2Nr LCBhbmQgdHJ5IGFnYWluIHNpbmNlIHRoZSByL3djYg0KPiA+PiAtCQkJCSAqIG1heSB1c2UgdGhl IG11dGV4IGxvY2suDQo+ID4+IC0JCQkJICovDQo+ID4+IC0JCQkJaWYgKGZkc2V0X3RyeV9kZWwo JnZob3N0X3VzZXIuZmRzZXQsDQo+ID4+IC0JCQkJCQl2c29ja2V0LT5zb2NrZXRfZmQpID09IC0x KSB7DQo+ID4+IC0JCQkJCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ2aG9zdF91c2VyLm11dGV4KTsN Cj4gPj4gLQkJCQkJZ290byBhZ2FpbjsNCj4gPj4gLQkJCQl9DQo+ID4+IC0NCj4gPj4gLQkJCQlj bG9zZSh2c29ja2V0LT5zb2NrZXRfZmQpOw0KPiA+PiAtCQkJCXVubGluayhwYXRoKTsNCj4gPj4g LQkJCX0gZWxzZSBpZiAodnNvY2tldC0+cmVjb25uZWN0KSB7DQo+ID4+IC0JCQkJdmhvc3RfdXNl cl9yZW1vdmVfcmVjb25uZWN0KHZzb2NrZXQpOw0KPiA+PiArCQlpZiAodnNvY2tldC0+aXNfc2Vy dmVyKSB7DQo+ID4+ICsJCQkvKg0KPiA+PiArCQkJICogSWYgci93Y2IgaXMgZXhlY3V0aW5nLCBy ZWxlYXNlIHZob3N0X3VzZXIncw0KPiA+PiArCQkJICogbXV0ZXggbG9jaywgYW5kIHRyeSBhZ2Fp biBzaW5jZSB0aGUgci93Y2INCj4gPj4gKwkJCSAqIG1heSB1c2UgdGhlIG11dGV4IGxvY2suDQo+ ID4+ICsJCQkgKi8NCj4gPj4gKwkJCWlmIChmZHNldF90cnlfZGVsKCZ2aG9zdF91c2VyLmZkc2V0 LCB2c29ja2V0LT5zb2NrZXRfZmQpID09DQo+ID4+IC0xKSB7DQo+ID4+ICsJCQkJcHRocmVhZF9t dXRleF91bmxvY2soJnZob3N0X3VzZXIubXV0ZXgpOw0KPiA+PiArCQkJCWdvdG8gYWdhaW47DQo+ ID4+ICAJCQl9DQo+ID4+ICsJCX0gZWxzZSBpZiAodnNvY2tldC0+cmVjb25uZWN0KSB7DQo+ID4+ ICsJCQl2aG9zdF91c2VyX3JlbW92ZV9yZWNvbm5lY3QodnNvY2tldCk7DQo+ID4+ICsJCX0NCj4g Pj4NCj4gPj4gLQkJCXB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmdnNvY2tldC0+Y29ubl9tdXRleCk7 DQo+ID4+IC0JCQl2aG9zdF91c2VyX3NvY2tldF9tZW1fZnJlZSh2c29ja2V0KTsNCj4gPj4gKwkJ cHRocmVhZF9tdXRleF9sb2NrKCZ2c29ja2V0LT5jb25uX211dGV4KTsNCj4gPj4gKwkJZm9yIChj b25uID0gVEFJTFFfRklSU1QoJnZzb2NrZXQtPmNvbm5fbGlzdCk7DQo+ID4+ICsJCQkgY29ubiAh PSBOVUxMOw0KPiA+PiArCQkJIGNvbm4gPSBuZXh0KSB7DQo+ID4+ICsJCQluZXh0ID0gVEFJTFFf TkVYVChjb25uLCBuZXh0KTsNCj4gPj4NCj4gPj4gLQkJCWNvdW50ID0gLS12aG9zdF91c2VyLnZz b2NrZXRfY250Ow0KPiA+PiAtCQkJdmhvc3RfdXNlci52c29ja2V0c1tpXSA9IHZob3N0X3VzZXIu dnNvY2tldHNbY291bnRdOw0KPiA+PiAtCQkJdmhvc3RfdXNlci52c29ja2V0c1tjb3VudF0gPSBO VUxMOw0KPiA+PiAtCQkJcHRocmVhZF9tdXRleF91bmxvY2soJnZob3N0X3VzZXIubXV0ZXgpOw0K PiA+PiArCQkJLyoNCj4gPj4gKwkJCSAqIElmIHIvd2NiIGlzIGV4ZWN1dGluZywgcmVsZWFzZSB2 c29ja2V0J3MNCj4gPj4gKwkJCSAqIGNvbm5fbXV0ZXggYW5kIHZob3N0X3VzZXIncyBtdXRleCBs b2NrcywgYW5kDQo+ID4+ICsJCQkgKiB0cnkgYWdhaW4gc2luY2UgdGhlIHIvd2NiIG1heSB1c2Ug dGhlDQo+ID4+ICsJCQkgKiBjb25uX211dGV4IGFuZCBtdXRleCBsb2Nrcy4NCj4gPj4gKwkJCSAq Lw0KPiA+PiArCQkJaWYgKGZkc2V0X3RyeV9kZWwoJnZob3N0X3VzZXIuZmRzZXQsDQo+ID4+ICsJ CQkJCSAgY29ubi0+Y29ubmZkKSA9PSAtMSkgew0KPiA+PiArCQkJCXB0aHJlYWRfbXV0ZXhfdW5s b2NrKCZ2c29ja2V0LT5jb25uX211dGV4KTsNCj4gPj4gKwkJCQlwdGhyZWFkX211dGV4X3VubG9j aygmdmhvc3RfdXNlci5tdXRleCk7DQo+ID4+ICsJCQkJZ290byBhZ2FpbjsNCj4gPj4gKwkJCX0N Cj4gPj4gKw0KPiA+PiArCQkJVkhPU1RfTE9HX0NPTkZJRyhJTkZPLA0KPiA+PiArCQkJCSJmcmVl IGNvbm5mZCA9ICVkIGZvciBkZXZpY2UgJyVzJ1xuIiwNCj4gPj4gKwkJCQljb25uLT5jb25uZmQs IHBhdGgpOw0KPiA+PiArCQkJY2xvc2UoY29ubi0+Y29ubmZkKTsNCj4gPj4gKwkJCXZob3N0X2Rl c3Ryb3lfZGV2aWNlKGNvbm4tPnZpZCk7DQo+ID4+ICsJCQlUQUlMUV9SRU1PVkUoJnZzb2NrZXQt PmNvbm5fbGlzdCwgY29ubiwgbmV4dCk7DQo+ID4+ICsJCQlmcmVlKGNvbm4pOw0KPiA+PiArCQl9 DQo+ID4+ICsJCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ2c29ja2V0LT5jb25uX211dGV4KTsNCj4g Pj4NCj4gPj4gLQkJCXJldHVybiAwOw0KPiA+PiArCQlpZiAodnNvY2tldC0+aXNfc2VydmVyKSB7 DQo+ID4+ICsJCQljbG9zZSh2c29ja2V0LT5zb2NrZXRfZmQpOw0KPiA+PiArCQkJdW5saW5rKHBh dGgpOw0KPiA+PiAgCQl9DQo+ID4NCj4gPkkgdGhpbmsgeW91IG1pc3MgbXkgY29tbWVudCBpbiBW NSBvZiBhc2tpbmcgd2h5IHRoaXMgaXMgbm90IG1vdmVkIHVwIGFmdGVyDQo+ID5mZHNldF90cnlf ZGVsIHNlcnZlciBzb2NrZXQgZmQuDQo+ID4NCj4gPlRoYW5rcywNCj4gPkNoZW5ibw0KPiA+DQo+ ID4+ICsNCj4gPj4gKwkJcHRocmVhZF9tdXRleF9kZXN0cm95KCZ2c29ja2V0LT5jb25uX211dGV4 KTsNCj4gPj4gKwkJdmhvc3RfdXNlcl9zb2NrZXRfbWVtX2ZyZWUodnNvY2tldCk7DQo+ID4+ICsN Cj4gPj4gKwkJY291bnQgPSAtLXZob3N0X3VzZXIudnNvY2tldF9jbnQ7DQo+ID4+ICsJCXZob3N0 X3VzZXIudnNvY2tldHNbaV0gPSB2aG9zdF91c2VyLnZzb2NrZXRzW2NvdW50XTsNCj4gPj4gKwkJ dmhvc3RfdXNlci52c29ja2V0c1tjb3VudF0gPSBOVUxMOw0KPiA+PiArCQlwdGhyZWFkX211dGV4 X3VubG9jaygmdmhvc3RfdXNlci5tdXRleCk7DQo+ID4+ICsJCXJldHVybiAwOw0KPiA+PiAgCX0N Cj4gPj4gIAlwdGhyZWFkX211dGV4X3VubG9jaygmdmhvc3RfdXNlci5tdXRleCk7DQo+ID4+DQo+ ID4+IC0tDQo+ID4+IDIuMzIuMA0KPiA+Pg0KPiA+DQo+IA0KPiANCg==