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 9A6464660C for ; Wed, 23 Apr 2025 14:30:04 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8355A4029D; Wed, 23 Apr 2025 14:30:04 +0200 (CEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2050.outbound.protection.outlook.com [40.107.92.50]) by mails.dpdk.org (Postfix) with ESMTP id 870EF400D5 for ; Wed, 23 Apr 2025 14:30:02 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=io25QEqn/z0MkjEeZr80BP+J/00W3Tx65/ewMZQQ5Lqk5/XOvQUBAtoz9IL1uDI/u+rGQ4KwRivzWhXvBgJ0QXWwme8tmLY7sZbCE/69agXEE6Z6rM4oRxEScBLeHalyLRp3LYPyfVWTOi9p5riuSusR1+rGfKtMETRS73XKp9B3N9tXBMKHrHS/3I3l1IAm1W69i9IH/XWwD6gnAvCLfr3CF6WPNRDZHwuLsyA8zl5C+s+JueGxxpaBSI4ZBl3bJEZ/7aHjgW3RvT+yfymHJKv3y6c2sTxIbhFgz2o82BH+vxjdyzg3kjYYnXiko5CAPo82AdEcHI8qH8ZxW7vIhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gFR0gXWunmhUmaMQXi1xcLW8m3sscc3nYe1z6iUExxg=; b=yBl3+RvBvMOd/G8xi/nZDZTBjle2Kuw/LLSvKyYVNgUCobdET0JmApt4lnf/6z6XlRHOffvBrUuXUYO0xPdRKn/XBgVuJX5Wug8Llx3ioER2fpev4aRCYsEm4sadAog9KlkE81fwep6qKUIeazJU6KiuugPwK8UqN3MSd+0m8ELMFnFlJxWWRgojNCS2DbXrt3Q8+KItopNkQ5SxCkYkUjogzijAwxzm+85hwbRET2AyxDL5FKDC5ey3mawQuZIsAK+lSx1a2BOVE565jv7qK2gQ/WLrdKoDPjcjxgnSTiImYMwMuB2z1M+ooezQ3osfNwIOosXRJFiuNd3yMsJbKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gFR0gXWunmhUmaMQXi1xcLW8m3sscc3nYe1z6iUExxg=; b=aI0+DXIVqSPXMHOI+TX1mRs+kCYDD5imO/ZPh9oLaiSNjIL27j8vj1iAbSXqfEsxu8C1Ls5kdAcfzkQLyRvSELgYxdSczmVLRsRIOUjnayyVmmlPUjRIlWe4o+q02Iphma9j3iNKZeHRMhdrJigT1LSIbXi4Ri8xEebsFvwca/H2w9wn7enbi9V2ym3aNdyaJfz0f7mb2btIQKAsd8Kl86XskaGwbsayRI3JVacdMpBONb33xKEcDVZZI6JS3oLzy4PoqfE/RPdHNcR4vB2f65Uz8sPpmd8Jzfr13jW6FmMMWl3AH1W50EMTnIaVUpPFYkV/YofJ123j5Dbv4A7o4Q== Received: from DS0PR12MB8561.namprd12.prod.outlook.com (2603:10b6:8:166::8) by PH0PR12MB7982.namprd12.prod.outlook.com (2603:10b6:510:28d::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Wed, 23 Apr 2025 12:29:58 +0000 Received: from DS0PR12MB8561.namprd12.prod.outlook.com ([fe80::9b96:73cf:f78:e41f]) by DS0PR12MB8561.namprd12.prod.outlook.com ([fe80::9b96:73cf:f78:e41f%4]) with mapi id 15.20.8655.021; Wed, 23 Apr 2025 12:29:58 +0000 From: Slava Ovsiienko To: =?utf-8?B?THVrw6HFoSDFoGnFoW1pxaE=?= , "users@dpdk.org" Subject: RE: Determining vendor and model from the port ID Thread-Topic: Determining vendor and model from the port ID Thread-Index: AQHbnYpxZaNlbjCtnU+sTL37gP/wELOD+HSQgASM7YCABMeggIAkDoYg Date: Wed, 23 Apr 2025 12:29:58 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DS0PR12MB8561:EE_|PH0PR12MB7982:EE_ x-ms-office365-filtering-correlation-id: 43a29266-efb3-4bd1-a8d9-08dd82628fcd x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?VlY3MExTVnA0SjFqc2FwdWM4QnJQLzI3Vm8vclhycWJ2VmpRYTZZOURJWXMz?= =?utf-8?B?TFc2NUJXYTBlc1JHUld4Z0dYUHRCRjF2Nndrckc5WHU3aHZWMDBaQk9zbjMr?= =?utf-8?B?VFBjVCtXTnBTazRWNm5nVi9DVUpVeU5CRUpLdGI5Y210Mmd4MVBxd0R3RjQ4?= =?utf-8?B?N2pERk1PbXJwOEFmbUdPOUwzM3M4Z0RUQW1QcE1xTWJTTldlVHZmTndLNVVW?= =?utf-8?B?MzA1SzkvWElMdE0yUzBoNGhmNEdGQU5UcnpDdldUTldlOGo5dktOYTEyMTdj?= =?utf-8?B?WHA2TTRGTXh0azZtc0k1VUMwSnlVZDNNWE9pQVZVaGxGK05HVDhkTDE1S0xy?= =?utf-8?B?aXBaVEszY1pGV2tZNTZDRTl5Tm1BdkNmb0V6VExnQnJ4ZWdSUXVEcUN5aCtE?= =?utf-8?B?SFBER1E4dW1KVEtYVzJ6dm5wT0V2clUvRzBGRXpTU2V4djM2VXdMV3N6dkRZ?= =?utf-8?B?akZWYThoVDQvWllvZnhuajdySHRqVEp4QzM2WGZjdDV5cDFqREtSb1p3cHhQ?= =?utf-8?B?alVDeFFjbWoyRW5LVG53V3hWb0p4cXQ4bExMS2dDMlMweEdtRGRjdHdUNEJH?= =?utf-8?B?cmI2YUVJQTBQQ2VPRnBjaEV5aDRuUDU4Z2Q5VUtsSlFGRkNJdDJqSzkxdDJn?= =?utf-8?B?Wlk0RXM1UjZxUjBTWm1JcWRXQUtvWUo4VEN1MUNlczYybnVZM0FqN1poMGIv?= =?utf-8?B?dmVEUVlwbDVSaXBacEViR2oxTXlMbFlNbW1rQmFBSWJmbG9DcXRFZjB6UGFO?= =?utf-8?B?Vzg1MHlIdHdtR3ZHZWltY1NyQlZ3c3RUWEdSUE5LNnJUZEZldW40UXZmenJv?= =?utf-8?B?K2RLand1RlpFY3RhM0gzVFdmWDZXS2Y3TlQ2dThJdStnRnREcm9vWnZsanNw?= =?utf-8?B?Z2F2Q2FZMzVxZEpwQllrR2tjMTBQdWhpQ0lscFFTMWdycms3V2pka2t6dlBS?= =?utf-8?B?MWx0eW4zYkpESE9tdDlTWFRPUVVueDFFOWtoVlk5WlZ6MXhZS1dlb2tKRmdS?= =?utf-8?B?c1VZaEQyOTYwQk5OZzhYQXZzWjVyS0NmcDNPRitYL2FvL3Q4TVBDWGFIOXVs?= =?utf-8?B?OExyNmhucEdqZTNiL0haemZscHZ0N1JJWUJ0RzBsVlJIZnZUWmFUcE1CWXBP?= =?utf-8?B?aGc1OFkzNHZKY2kyWFA2YXd4NDlaeSs3aVltLzc5b0JOL0h2SHA2Yzk1SXA5?= =?utf-8?B?MzdJMVlNMkNneGJrcWxZUnMvMTR3d25mdUw1RkpBNWRTRWlyWjZ2akFUSEhB?= =?utf-8?B?MWN6K0xKbkhpTjVaQ3YxM3VFZUNCSkFZR0h5dmI1Y1F3RXBaTVM1enpIb2dp?= =?utf-8?B?czhyaVVuSmhIQ2dUUmVoUkMrUXJDbGwvUzZhMUVxeTFNRTZLVjRpZnZZMEhY?= =?utf-8?B?WXcxNHJ6alplWUliaWhsaURXcUpvcnhVNTBPanZrcnNQWXZOOVdBZ3YrSGE1?= =?utf-8?B?WWZQQTUzenBWYXpYZkVGVDJ5eFkwaFBkeG5IM0tpVThod2grRm1ocXYyMEla?= =?utf-8?B?WjVwOW8yRGxNSld0MWxoVFowTEhXVTgwWHV2WS9lbUhjNVVNZjVZOTdubVUv?= =?utf-8?B?TDJNcHc1c0pSbHBwcDlYTjBRellYeFB3OHRMV3pXNHJ2LzNBdU94ZDNBVVl1?= =?utf-8?B?QUVLS2UvdVN3SWRnRlJJeGFrVG1QNVRlYUxreUp4REZOcW9aWnZSeHZGM0JC?= =?utf-8?B?Qk1nMVlhTWlOa0VjYjJ3LzA2QmFvVkJIMHMxc0dvQnZ6MHVOVFo1dFRBbHpu?= =?utf-8?B?R2E3YTdPZ2hzTFBxQWExdFV3OENzVE5pcUdwa2JydklEZ0dLSkdrWEVtTDZK?= =?utf-8?B?YW5XSmhucEg1azRnOXRrRU81bGsvSHlPakgwZzhoKytuRGNNVjM3WmVtcEZ3?= =?utf-8?B?T29nSTgrTkZZTkZJTnpoMUhuVGxKb2U0K3pJaTkzdHdLcC9VaEx4dHJ5UkVq?= =?utf-8?B?RjQzVVdiV2VWL29ETFRsSEZHQ2d4ZWM5NXVHdGF4YzhUMmhoRU5ObUdacTJB?= =?utf-8?Q?nAp4FUdpNc0Y1N4bM1T4IP0Zen33yc=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DS0PR12MB8561.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UGliMERkZHBJckFGU2o1MmpuQjd1djk2RUdtOHFoUnhzYjYwM1lNampRbk03?= =?utf-8?B?OWRaTE1iaE96L3o2U1VsVXgwMkduSkNSMC8ralpENjhOVkNXb2ZVcDF2QTNx?= =?utf-8?B?dHF4OTR5d1VIa290MktFN0cvL1VzcHhRcFhhcWREQWF0M25VN3pGcWl4ZWRK?= =?utf-8?B?aVdaTk9ocFVodWVPbDRaQTB5TWpmRFp4bENXY2tKNFR2RmM1YU1JMGZIaHUy?= =?utf-8?B?WGRKdkcyditUdXJRWG1uZWY4amJDQXlsbmpmaGFyUHZyUVUzcXhsc0x2dmhw?= =?utf-8?B?aktOb3Via25udlgzcFZwclVBWTUxSy9pNExtWUcvVXJqS0dRU0xyQUlQZUhu?= =?utf-8?B?V3hpS0IwS2huN2EvMXlwbDRaKzM1TnZSbEFHU2NPU2x5TG93Wmp0UTJ5K21Q?= =?utf-8?B?RUVSTjZuQithUUFnVndKblNhL0RxSUxIN0JYdG1WQm9JVUxJSExVK0VLNDNp?= =?utf-8?B?ajVjRmJoSk84Q05HenBITFhIamJiUDJweUs1RzhiWUZLNTkwSkQvOXUwL3hG?= =?utf-8?B?K3QwT242Q1pEMEtLRlBBUDB5T2EyWkc1OCtXSHFJZTQ0NlN0VVlNM0FmRnZF?= =?utf-8?B?S2ROTkVROGNMR2Zoc040eGRKaWVMMFVkNGQ1a1h1VXNiYkNDc09qMTZDdXpJ?= =?utf-8?B?RWlkV3hJZEZIQU5qVmx1TW1aeFI4cllDNTlOZXpxNk9YclFuZm5DZXVDSy9F?= =?utf-8?B?bXY4clo0UldoYXNGdGJnZFk4djE5K1BFN0tVQU41R1ZSYUU3NkUrMlAvRnlI?= =?utf-8?B?clY0Wko5NWUxYzNybGdhZWl3eXlPcERuYkN2dHVxN09iYUlCazcyaG9GVysv?= =?utf-8?B?blFYMkZOSkJTUGV0VFlCSDJlWjlmN2FmTWpXV1cyQ1VXQVluY2JqbDBFeXYx?= =?utf-8?B?cEp1VDhRU29aU0MvZnFGdTVkL0NVZzhyLy8vVU1jdFNaZnVJb0hRYStmeE1s?= =?utf-8?B?Zk12MTBkQ3JaU2RKdHNMb1hyUVZqZ240cVhFS0wrb0VTK3gvRjIzaWpSTmJ5?= =?utf-8?B?d21jM2s2RWVnb0JtTHpwUVY3OTFQOHU3NlhpUmsrZUxsQ1d5cjI2VHkrUEky?= =?utf-8?B?UEhGTFo2Z2hVYzZTcW9HVWRpUlhrMnc0MCtyVlY3YkVHcXV1bUNLU3puam81?= =?utf-8?B?bGNhWEdvNndCQm1BOXJSMkdjOXh4QndrbmN0VzR0TTdSVGwybHIxcGphZ0ww?= =?utf-8?B?STY3U3RLWDd0MUNMSk1PM2FhMitROXBPUHdkWFdabk5tUVBPMW5PSjNGTW1z?= =?utf-8?B?YXAveEdPKzdlOWhYYmd1R0NOTEI2WGc4cld5UDV6UW4xYjFHSjdXdkRiKzJR?= =?utf-8?B?Mk55bk1sTXFrcGxnTXVpdnc3NGZxMHpCc29ka2c2N2QvQUkxTWcvYnM5L0NU?= =?utf-8?B?elloR29PMU16TUt6QVdTbkgvenJZTldKZFQxcXUzKytSUUhua2lGem5SaU10?= =?utf-8?B?RmE1YmEwdTFEQkkxSDA0a09zSy9VOStZMGNFZHJ4ekhDRmdRd3lObTlmZVdk?= =?utf-8?B?bTJsdEVyNnRpaTB1Q2Fyd0tETFdZbVR3emY0TEd3L0s5aGpseGIrcnkzdXAv?= =?utf-8?B?eXFVd2ZtbTdFTmNoaEQzOFBacmhGNGJiVS9uOWkvTW9uY04rVDIxanYxOFJy?= =?utf-8?B?TTgrRUorNnhvVmFHUmhjOEJBZ2lsWm93T1Backd3Y2lhRDk3YkVZWmJXWHBU?= =?utf-8?B?ZmNWdWJSS1ltcXg5UUk1M2ltM1FBbHhOSDc1cGp3MHdIYWNrelBOZlBvS1FO?= =?utf-8?B?KytZb09rL01GWmI1YVhRQ3hoY3AvMFdPZFVhL0hWakJHbyt6M1U3QXVPSGhY?= =?utf-8?B?NjdidFZEVHFDSkdMSkxjckp6MlUyMmUxTjNzSU9JUFdQdjl1MnBjSHdXYURR?= =?utf-8?B?ZVZtZXJEN3hyeFI0MkxJNzFHU1hib1JqbVpVMThzRXFtcTEzSiszdi9Bd1Ez?= =?utf-8?B?Q29oZm5vVEI5dXV2bVliTzJ2cnpHTDZ3YVpvWURLN0NRcm9ISTY0a3A3NnVT?= =?utf-8?B?Zk5McDJzYTNNTVdUNk9VZkUzMWlaMTVwVnBHdmhhRlRxT0JHQWhQTDNqOGNZ?= =?utf-8?B?TmJlTWxBNHR5ZzVYVVBZRkI0Z2lWQXpCZWp2RWZwbnBMQ0ljZC90RWh0ZVJE?= =?utf-8?Q?DUwVPu7kYp1ypF2ZcBV2758P+?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB8561.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 43a29266-efb3-4bd1-a8d9-08dd82628fcd X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2025 12:29:58.7440 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: smItf4Sd31MgV0HTx1Qx6gO8VAk/wQRFV4kkWmRrkTP8NfUz3XGj7bHeFipmna49uTfWH8rWNnNbTBc8Iyqvxw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7982 X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org SGksDQoNClRoZSBmaXJzdCB2ZXJzaW9uOiBodHRwczovL3BhdGNoZXMuZHBkay5vcmcvcHJvamVj dC9kcGRrL3BhdGNoLzIwMjUwNDIzMTIyODA3LjEyMTk5MC0xLXZpYWNoZXNsYXZvQG52aWRpYS5j b20vDQoNCldpdGggYmVzdCByZWdhcmRzLA0KU2xhdmENCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBTbGF2YSBPdnNpaWVua28gPHZpYWNoZXNsYXZvQG52aWRpYS5jb20+ DQo+IFNlbnQ6IE1vbmRheSwgTWFyY2ggMzEsIDIwMjUgNDo1NCBQTQ0KPiBUbzogTHVrw6HFoSDF oGnFoW1pxaEgPHNpc21pc0BjZXNuZXQuY3o+OyB1c2Vyc0BkcGRrLm9yZw0KPiBTdWJqZWN0OiBS RTogRGV0ZXJtaW5pbmcgdmVuZG9yIGFuZCBtb2RlbCBmcm9tIHRoZSBwb3J0IElEDQo+IA0KPiBI aSwgTHVrYXMNCj4gDQo+IFRoYW5rIHlvdSBmb3IgdGhlIGNvbmZpcm1hdGlvbi4NCj4gDQo+ID4g RG8geW91IHRoaW5rIHRoaXMgY2FuIGJlIGNoYW5nZWQgb2ZmaWNpYWxseSBpbiB0aGUgRFBESyB2 ZXJzaW9ucz8NCj4gWWVzLCBub3cgY29uc2lkZXJpbmcgdGhlIG9mZmljaWFsIHBhdGNoIHRvIGhh dmUgdGhpcyBtaXRpZ2F0aW9uLg0KPiBBbmQsIGluIGFkZGl0aW9uLCB0aGUgY29udmVyc2lvbiBl cnJvcnMgdG8gd2FybmluZ3MgbGlrZQ0KPiAiVGhlIHJlcXVlc3RlZCBxdWV1ZSBjYXBhY2l0eSBp cyBub3QgZ3VhcmFudGVlZCIuDQo+IA0KPiBXaXRoIGJlc3QgcmVnYXJkcywNCj4gU2xhdmENCj4g DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBMdWvDocWhIMWgacWh bWnFoSA8c2lzbWlzQGNlc25ldC5jej4NCj4gPiBTZW50OiBGcmlkYXksIE1hcmNoIDI4LCAyMDI1 IDI6NTIgUE0NCj4gPiBUbzogU2xhdmEgT3ZzaWllbmtvIDx2aWFjaGVzbGF2b0BudmlkaWEuY29t PjsgdXNlcnNAZHBkay5vcmcNCj4gPiBTdWJqZWN0OiBSZTogRGV0ZXJtaW5pbmcgdmVuZG9yIGFu ZCBtb2RlbCBmcm9tIHRoZSBwb3J0IElEDQo+ID4NCj4gPiBIaSBTbGF2YSwNCj4gPg0KPiA+IHRo YW5rcyBmb3IgeW91ciByZXBseSAoYW5kIGEgZGV0YWlsZWQgZXhwbGFuYXRpb24hKSwgdGhlIHBh dGNoIHdvcmtzIGFuZA0KPiA+IEkgY2FuIHNlZSAzMmstbG9uZyBSWC9UWCBxdWV1ZXMgY29uZmln dXJlZCBvbiB0aGUgQ29ubmVjdFgtNCBjYXJkLg0KPiA+IChNQ1g0MTZBLUNDQVQpIC0gSSB0cmll ZCBpdCBvbiBEUERLIHYyNC4xMS4xDQo+ID4gRG8geW91IHRoaW5rIHRoaXMgY2FuIGJlIGNoYW5n ZWQgb2ZmaWNpYWxseSBpbiB0aGUgRFBESyB2ZXJzaW9ucz8NCj4gPg0KPiA+IFRoYW5rIHlvdS4N Cj4gPg0KPiA+IEJlc3QsDQo+ID4NCj4gPiBMdWthcw0KPiA+DQo+ID4gT24gMy8yNS8yNSAyMjo1 NywgU2xhdmEgT3ZzaWllbmtvIHdyb3RlOg0KPiA+ID4gSGksIEx1a2FzDQo+ID4gPg0KPiA+ID4g U29tZSBvbGRlciBOSUNzIChkZXBlbmRpbmcgb24gSFcgZ2VuZXJhdGlvbiBhbmQgb24gRlcgY29u ZmlndXJhdGlvbikNCj4gPiBtYXkgcmVxdWlyZQ0KPiA+ID4gdGhlIHBhY2tldCBkYXRhIHRvIGJl IGlubGluZSAoaW5jYXBzdWxhdGVkKSBpbnRvIHRoZSBXUUUgKGhhcmR3YXJlDQo+ID4gZGVzY3Jp cHRvciBvZiB0aGUgVHggcXVldWUpDQo+ID4gPiB0byBhbGxvdyBzb21lIHN0ZWVyaW5nIGVuZ2lu ZSBmZWF0dXJlcyB3b3JrIGNvcnJlY3RseS4gVGhlIG1pbmltYWwNCj4gbnVtYmVyDQo+ID4gb2Yg Ynl0ZXMgdG8gYmUgaW5saW5lDQo+ID4gPiBpcyBvYnRhaW5lZCBieSBEUERLIGZyb20gRlcgKGl0 IHJlcG9ydHMgdGhlIG5lZWRlZCBMMi9MMy9MNC90dW5uZWwNCj4gPiBoZWFkZXJzIGFuZCBtbHg1 IFBNRA0KPiA+ID4gY2FsY3VsYXRlcyB0aGUgc2l6ZSBpbiBieXRlcyksIGFuZCB0aGUgbWluaW1h bCBpcyAxOEIgKGlmIGFueSkuDQo+ID4gPg0KPiA+ID4gVGhlbiwgdGhlIFR4IHF1ZXVlIGhhcyBh YnNvbHV0ZSBsaW1pdGF0aW9uIGZvciBudW1iZXIgb2YgZGVzY3JpcHRvcnMsIGZvcg0KPiA+IENY NC81LzYvNyBpdCBpcyAzMksNCj4gPiA+ICh0eXBpY2FsIHZhbHVlLCBhbHNvIHF1ZXJpZWQgZnJv bSBGVyAoZGV2X2NhcC5tYXhfcXBfd3IpLiBBcHBsaWNhdGlvbg0KPiBhbHNvDQo+ID4gYXNrcyBm b3IgdGhlIGdpdmVuDQo+ID4gPiBUeCBxdWV1ZSBjYXBhY2l0eSwgc3BlY2lmeWluZyB0aGUgbnVt YmVyIG9mIGFic3RyYWN0IGRlc2NyaXB0b3IsIHRvIG1ha2UNCj4gPiBzdXJlIFR4IHF1ZXVlIGNh biBzdG9yZQ0KPiA+ID4gdGhlIGdpdmVuIG51bWJlciBvZiBwYWNrZXRzLiBGb3IgdGhlIG1heGlt YWwgYWxsb3dlZCBxdWV1ZSBzaXplIHRoZQ0KPiA+IHR4cV9jYWxjX2lubGluZV9tYXgoKQ0KPiA+ ID4gcm91dGluZSByZXR1cm5zIDEyQiAoTUxYNV9EU0VHX01JTl9JTkxJTkVfU0laRSkuIFRoaXMg aXMgdGhlIG1heGltYWwNCj4gPiBudW1iZXIgb2YgaW5saW5lIGJ5dGVzDQo+ID4gPiB0byBrZWVw IFdRRSBzaXplIHNtYWxsIGVub3VnaCBhbmQgZ3VhcmFudGVlIHRoZSByZXF1ZXN0ZWQgbnVtYmVy IG9mDQo+ID4gV1FFcyB3aXRoaW4gcXVldWUNCj4gPiA+IG9mIGxpbWl0ZWQgc2l6ZS4NCj4gPiA+ DQo+ID4gPiBTbywgaXQgc2VlbXMgQ29ubmVjdFgtNCBvbiB5b3VyIHNpdGUgcmVxdWlyZXMgMThC IG9mIGlubGluZSBkYXRhLCBidXQgZm9yDQo+IHRoZQ0KPiA+IG1heGltYWwgcXVldWUgc2l6ZQ0K PiA+ID4gdGhlIFdRRSBzaXplIGlzIDY0QiBhbmQgd2UgY2FuIGlubGluZSBvbmx5IDEyQi4gVGhl IGdvb2QgbmV3cyBpcyB0aGF0DQo+ID4gdHhxX2NhbGNfaW5saW5lX21heCgpDQo+ID4gPiBlc3Rp bWF0aW9uIGlzIHRvbyBjb25zZXJ2YXRpdmUsIGFuZCBpbiB0aGlzIHJlYWxpdHkgd2UgY2FuIGlu bGluZSAxOEIuIEkgdGhpbmsNCj4gPiB3ZSBjYW4gcmVwbGFjZSB0aGUNCj4gPiA+IE1MWDVfRFNF R19NSU5fSU5MSU5FX1NJWkUgd2l0aCBNTFg1X0VTRUdfTUlOX0lOTElORV9TSVpFIGluIHRoZQ0K PiA+IHR4cV9jYWxjX2lubGluZV9tYXgoKQ0KPiA+ID4gYW5kIHRyeS4gQ291bGQgeW91LCBwbGVh c2UgPw0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tbHg1L21seDVfdHhx LmMgYi9kcml2ZXJzL25ldC9tbHg1L21seDVfdHhxLmMNCj4gPiA+IGluZGV4IDNlOTM1MTczMjMu LjE5MTMwOTRlNWMgMTAwNjQ0DQo+ID4gPiAtLS0gYS9kcml2ZXJzL25ldC9tbHg1L21seDVfdHhx LmMNCj4gPiA+ICsrKyBiL2RyaXZlcnMvbmV0L21seDUvbWx4NV90eHEuYw0KPiA+ID4gQEAgLTcz OSw3ICs3MzksNyBAQCB0eHFfY2FsY19pbmxpbmVfbWF4KHN0cnVjdCBtbHg1X3R4cV9jdHJsICp0 eHFfY3RybCkNCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgTUxYNV9XUUVfRVNFR19TSVpFIC0N Cj4gPiA+ICAgICAgICAgICAgICAgICAgICAgTUxYNV9XU0VHX1NJWkUgLQ0KPiA+ID4gICAgICAg ICAgICAgICAgICAgICBNTFg1X1dTRUdfU0laRSArDQo+ID4gPiAtICAgICAgICAgICAgICAgICAg TUxYNV9EU0VHX01JTl9JTkxJTkVfU0laRTsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICBNTFg1 X0VTRUdfTUlOX0lOTElORV9TSVpFOw0KPiA+ID4gICAgICAgICAgcmV0dXJuIHdxZV9zaXplOw0K PiA+ID4gICB9DQo+ID4gPg0KPiA+ID4gV2l0aCBiZXN0IHJlZ2FyZHMsDQo+ID4gPiBTbGF2YQ0K PiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gPj4gRnJvbTogTHVrw6HFoSDFoGnFoW1pxaEgPHNpc21pc0BjZXNuZXQuY3o+DQo+ID4gPj4g U2VudDogVHVlc2RheSwgTWFyY2ggMjUsIDIwMjUgMzozMyBQTQ0KPiA+ID4+IFRvOiB1c2Vyc0Bk cGRrLm9yZzsgRGFyaXVzeiBTb3Nub3dza2kgPGRzb3Nub3dza2lAbnZpZGlhLmNvbT47IFNsYXZh DQo+ID4gPj4gT3ZzaWllbmtvIDx2aWFjaGVzbGF2b0BudmlkaWEuY29tPg0KPiA+ID4+IFN1Ympl Y3Q6IERldGVybWluaW5nIHZlbmRvciBhbmQgbW9kZWwgZnJvbSB0aGUgcG9ydCBJRA0KPiA+ID4+ DQo+ID4gPj4gSGVsbG8gYWxsLA0KPiA+ID4+DQo+ID4gPj4gSSBhbSB0cnlpbmcgdG8gZGV0ZXJt aW5lIHdoYXQgaXMgdGhlIHZlbmRvciBhbmQgbW9kZWwgb2YgdGhlIHBvcnQgSUQNCj4gPiA+PiB0 aGF0IEkgYW0gaW50ZXJhY3Rpbmcgd2l0aCBidXQgYWxsIHJlZmVyZW5jZXMgbGVhZCBtZSB0byBh biBvYnNvbGV0ZSBBUEkuDQo+ID4gPj4NCj4gPiA+PiBUaGUgZ29hbCBpcyB0byBleGVjdXRlIHNw ZWNpZmljIGNvZGUgb25seSB3aGVuIEkgYW0gZGVhbGluZyB3aXRoDQo+ID4gPj4gTWVsbGFub3gg Q29ubmVjdFgtNC1mYW1pbHkgY2FyZHMuIExvbmdlciBleHBsYW5hdGlvbiBiZWxvdy4NCj4gPiA+ Pg0KPiA+ID4+IEkgd291bGQgbGlrZSB0byBhY2Nlc3MgInN0cnVjdCBydGVfcGNpX2lkIiBidXQg aXQgYWx3YXlzIHNlZW1zIGhpZGRlbg0KPiA+ID4+IG9ubHkgb24gdGhlIGRyaXZlciBsZXZlbC4N Cj4gPiA+Pg0KPiA+ID4+IElzIHRoZXJlIGFueSB3YXkgaG93IHRvIGFwcHJvYWNoIHRoaXM/DQo+ ID4gPj4NCj4gPiA+Pg0KPiA+ID4+IExvbmdlciBleHBsYW5hdGlvbiBvZiB0aGUgcHJvYmxlbToN Cj4gPiA+Pg0KPiA+ID4+IEluIGh0dHBzOi8vZ2l0aHViLmNvbS9PSVNGL3N1cmljYXRhL3B1bGwv MTI2NTQgSSBhbSB1c2luZyBkZXZfaW5mbyB0bw0KPiA+ID4+IGdldCB0aGUgbWF4aW11bSBudW1i ZXIgb2YgYWxsb3dlZCBUWCBkZXNjcmlwdG9ycyBmb3IgdGhlIHBvcnQgdGhhdCBpcw0KPiA+ID4+ IGFkdmVydGlzZWQgYnkgdGhlIFBNRC4gQnV0IHdoZW4gSSBzZXQgdGhlIGFjdHVhbCBudW1iZXIg b2YgVFgNCj4gPiA+PiBkZXNjcmlwdG9ycyB0aGVuIHRoZSBkcml2ZXIgY29tcGxhaW5zICJtaW5p bWFsIGRhdGEgaW5saW5lIHJlcXVpcmVtZW50cw0KPiA+ID4+ICgxOCkgYXJlIG5vdCBzYXRpc2Zp ZWQgKDEyKSBvbiBwb3J0IDAsIHRyeSB0aGUgc21hbGxlciBUeCBxdWV1ZSBzaXplDQo+ID4gPj4g KDMyNzY4KSIuIEhvd2V2ZXIsIHRoaXMgcHJvYmxlbSBvY2N1cnMgb25seSBvbiBDb25uZWN0WC00 IGZhbWlseSBhbmQNCj4gbm90DQo+ID4gPj4gb24gQ1g1LzYvNyAodGhhdCdzIHdoeSBJIGNhbm5v dCBsaW1pdCB0aGlzIHRvIGp1c3QgbWx4NSBQTUQpLg0KPiA+ID4+DQo+ID4gPj4gQWx0ZXJuYXRp dmVseSwgY2FuIHRoaXMgYmUgZml4ZWQvYWRkcmVzc2VkIGRpcmVjdGx5IGluIHRoZSBNTFg1IFBN RD8NCj4gPiA+PiBNTFg1IFBNRCBuZWVkcyB0byBhZHZlcnRpc2UgMTYzODQgVFggZGVzY3JpcHRv cnMgYXMgdGhlIG1heGltdW0gb25seQ0KPiA+IGZvcg0KPiA+ID4+IENvbm5lY3RYLTQgZmFtaWx5 Lg0KPiA+ID4+IChQdXR0aW5nIERhcml1cywgVmlhY2hlc2xhdiBpbiB0aGUgbG9vcCwgcGxlYXNl IHJlYXNzaWduIGlmIG5lZWRlZCkNCj4gPiA+Pg0KPiA+ID4+IFRoYW5rIHlvdS4NCj4gPiA+Pg0K PiA+ID4+IEJlc3QsDQo+ID4gPj4NCj4gPiA+PiBMdWthcw0K