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 6A583A0566; Mon, 8 Mar 2021 16:36:15 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2F2CD22A3B8; Mon, 8 Mar 2021 16:36:14 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 87BA622A3B8 for ; Mon, 8 Mar 2021 16:36:11 +0100 (CET) IronPort-SDR: G5IH3/mVmEcgJpgNV5tPw00U6jwDviTnFwGPhPifToU5RCU1QClCcmZE1DZN/bH6MUWWp4s6D3 V+LtDqgmbPHg== X-IronPort-AV: E=McAfee;i="6000,8403,9917"; a="187412979" X-IronPort-AV: E=Sophos;i="5.81,232,1610438400"; d="scan'208";a="187412979" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Mar 2021 07:36:00 -0800 IronPort-SDR: si/RrRNYqPlye1dH0IyjPjDkS+Hq547Dmu69nlXoLF8Yt1bgCYJxlmce89tAqnCBXpN2ShIdMB rVV0T6g/RL6g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,232,1610438400"; d="scan'208";a="508960702" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga001.fm.intel.com with ESMTP; 08 Mar 2021 07:36:00 -0800 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Mon, 8 Mar 2021 07:35:58 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Mon, 8 Mar 2021 07:35:58 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Mon, 8 Mar 2021 07:35:58 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C4Fiu832NUUuMDX0euZRSQnqKhxtqF9D1somLerlZf/b/jtqfI7qRXEaAx2qrXWLYZsAoKsjOru7jr4BT2+fR9/b9aGFzcfXlLVWBe4lmBCh4xos0UhoXMMlchcZEc1Jazpm2p0meEnl4OGLtthOUOLb2Z+9FngVANrxClBKF0nzI6AJmll8jn5rZqHL97+gzBCwTH2hEuyP9VZw++DfTGBYGh7asS85SsfZHOLi/EGSYh8lZHbutnbgi98xZbqeo4/ZWovrvSxbkfgmH+tC8UDuC63/kU1qMnBE4xmBeDIkUoethNryXUx8eELaQLSUZ+sMVJjw7D+L2nmGlCWg8Q== 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=Fga6kOWUF9I8+7RIVxfptV33MD+YhUmzH6rfntYMwvg=; b=c2xPyUOCIEruJ5qxYEMFwC5ArrG3cSXEBC9qP8rv2efsQzlmq2EsSA2vXImlRzJWYTST7GQckIngYBSQ9TGxELDDMHUpHa1Cp7iQ9Co5H6obyGTuk4aqIgLxDO2ei5Xchsnyv4kFrK1eGRQFti2m71SaG7yFhCiDTEG7PplL+cceN0NSzR+5j+CN+0Jf6nu/nbYkoFTysHTk5ydNwrvrJIM+7HFjxJuVDKiGIFp3EHJd7/OilgeKxrrA653N4a3CCE3w+J0TfuCozDymU5SZWlrLTf0PNYQfPxcD1ePc9iHMCUhNlAGrog7GRJ29OuVgQowNZQhwsuzVit3nlu6A4w== 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=Fga6kOWUF9I8+7RIVxfptV33MD+YhUmzH6rfntYMwvg=; b=HnCUx/wp8nArpzlIjsGIpQ8VVUzxPu43VRrksXW6xP+Lovk1Bzm8s/N0YFvgae4zA22Xr7lRp4ztnGpmEXV2ld/LKgs8ddp1UqKJ6rqFtAeal8SoTZ/5Jj66ejizqvkmY18R0yVwp2iZWetTlCvCKUcbYVdwxRMTsfsmiYClwLc= Received: from PH0PR11MB5207.namprd11.prod.outlook.com (2603:10b6:510:32::15) by PH0PR11MB4840.namprd11.prod.outlook.com (2603:10b6:510:43::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.26; Mon, 8 Mar 2021 15:35:56 +0000 Received: from PH0PR11MB5207.namprd11.prod.outlook.com ([fe80::4435:d1de:299d:dcb]) by PH0PR11MB5207.namprd11.prod.outlook.com ([fe80::4435:d1de:299d:dcb%7]) with mapi id 15.20.3912.027; Mon, 8 Mar 2021 15:35:56 +0000 From: "Walsh, Conor" To: "Burakov, Anatoly" , "jerinj@marvell.com" , "stephen@networkplumber.org" , "Iremonger, Bernard" , "Ananyev, Konstantin" , "Medvedkin, Vladimir" CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v3 4/5] examples/l3fwd: implement FIB lookup method Thread-Index: AQHXBtGPAh7hdCqOZUKiaU55Fnnd9qpyOcsAgAgT6yA= Date: Mon, 8 Mar 2021 15:35:56 +0000 Message-ID: References: <20210218152056.1893590-1-conor.walsh@intel.com> <20210219150945.2071651-1-conor.walsh@intel.com> <20210219150945.2071651-5-conor.walsh@intel.com> <94472bc7-a475-cc60-8343-6d605945eae5@intel.com> In-Reply-To: <94472bc7-a475-cc60-8343-6d605945eae5@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.5.1.3 dlp-product: dlpe-windows authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [86.40.70.33] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 80935acd-f4cb-411f-3573-08d8e247ddc8 x-ms-traffictypediagnostic: PH0PR11MB4840: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VBtvL0qzt4lqbTlNB7QA5tWQOPMwVxr6lcIDgm1rr0fai3SEB4fbhTvTwe7T8yPybeYufsWgN66Kbtu5Hjl0yIAtTE3uBichMU15nVEnEOsHvw65e43+uB2F8RCsvhG5eByvN/Xv0CDg4I2Kzv+8S6A3XmJCBcEjX/QKSc8l/ms1MylF9qZPu8OkK/ka7SBAlVcpT75z3/vKZwB1vodyjKnMwymHCeBOWRXC9r2ojrGdZSbNIGPwLLZ4EJ05UrJFzLcZ9szZB71az4IY0LC2YG1mFJn7rxjYsRntX/8wQ1CCERJlNSj0ca6fpkGxjYSkrMI7JB8wg8ivmeaCeA0Fp0tN4PwYqOcKT0emLBX3D1dPnCq0huCluzpNYHySomRDo9mm9Ol0YvFtEhbr/MJBjhrP2Z3RjDYbSmJUt1KofOTavrgPb8eZ0UnoLa6K8GxG0dlA95kbg3/6RJKJN0KnzT1TbEkZ9DrclvS5Gtqfzt0WxXRL6r/g7jC9RNLgJu1ZjLkOcXHc5OsqalilVsiW7UXSC5+QAtjOm5JYvXTRdkdY41FpdsjiqYQ0lJCxPENz x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB5207.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(39860400002)(376002)(346002)(366004)(136003)(396003)(6506007)(5660300002)(921005)(53546011)(4326008)(66946007)(76116006)(66446008)(33656002)(9686003)(6636002)(478600001)(7696005)(186003)(110136005)(316002)(52536014)(86362001)(55016002)(8936002)(71200400001)(8676002)(26005)(66476007)(66556008)(64756008)(2906002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?SjBFVXpHMkorR3gvZE5ULzRlcTMyaHkxZ1Uya3o0a1cxbURaeE0rK3NtUHdF?= =?utf-8?B?RjNhTWxkbUt2WXE1MExCdjZXVDVyVzgxa1F2K28xQ2lINEU0RXF0ei9sejIr?= =?utf-8?B?b01jb0tYd1Y2TndiZlNrVm10cVBOaXliRzhsdWRudm1NTEp2WXBSUTFYZGNw?= =?utf-8?B?VDNFb3lGTlg4amJwVTh0OE1hNUNVaGRKMk51L0JhZlZtWjY5dEpaRDlZb0tK?= =?utf-8?B?eHJxR0pYc3oyK3MydUU2YkVlN2hkb21saWY3SVNWYlhFY0dJWkwySjRIYWtK?= =?utf-8?B?KzM5TzB4UDBZZVVtZlVvQXQ5RnhLTnBuVkNCNDNyNi92U015QVd4ODlXdGRT?= =?utf-8?B?MVFyTE03aWYzOVdESVFJR2lkTk9wb3EyblErMTJxWjVlUEMrL3ArU3dxVERu?= =?utf-8?B?MkpzMXNZSmJ0cUhvaFcwQkt4eGZ6TTc3Z3BpVS85SDVFa1dIRU1WWlROVmV4?= =?utf-8?B?UGlRK3lKeWRJdnJoTy81dHNGdTFZK1RBTmo4WUk1NFZNMlFtTWJoZlcvc0ha?= =?utf-8?B?Y3hUdWMzVURLUkdheDFwbmNhT1MzcEwyR0ZPNjBtWUpPdHBlbmluWFZQbmZr?= =?utf-8?B?c3BCV050VkxQSmhJNjY2VDRtUGYwSXQ2OWo2ZnF6OHAvRVpPZG1kZDRjS0Jx?= =?utf-8?B?SUFtWERaMGtJcUVSVTE4ZWtVWGRIM0JYNlMvVmxMeVFMVU92bkJhVmt4WEk4?= =?utf-8?B?b0lZcTZiYWJ3TlVuRnVNdXhjV0JkZXFOSkJOb0cvUGpURXo3ZFpTdlROdndw?= =?utf-8?B?YXdrRXVYRUpIQmtiUXRPaE0yZHBUYldmaUtzV21XcjRMQ1B1em1JMXUyK28x?= =?utf-8?B?THRaVzhJNmUvSWtYaVFuUTNOaXBpaE9pQmFtK1llOG4xTCtNcm9zYWdxbWZs?= =?utf-8?B?Z0wxS1RMOUtPSjFrMDRjMytPU1NKMTNJUzkrZGFSSDJ3OWxPbWs1akNsVjBi?= =?utf-8?B?OHR1SXUwV0tCWVp1bktwVk9yWmNhL0JkOENXTFVFMnhFazBmVVE3dVUxZGtq?= =?utf-8?B?WEtvQTNKQ2pHRHJpOWFKd1hpNFozMzZsWndjUXBSdktCTEtmSk1GTmRPL3NV?= =?utf-8?B?RDNhZ1hkOUVxR05GK0x0SlBDT3h4NVVFbXdWMTk4anlFYkQzbnVHaGpkeHNX?= =?utf-8?B?c2NzaUE4Tm5XN3pCL0hlVXNGdTNQQW85NFlUUTVYc0ozV3JlVmVvN1pCcHZY?= =?utf-8?B?M2RMNG5VK1d1VUF5Sm15ZkxXaG5oQUdYOThUT3NQcTVhN1FNUnRqcTRmcDVY?= =?utf-8?B?R1I0K0hKOXBsS1QxdW9jOUxyUEdGZE9VSm5JNHFIaFlpbzVOd1BXdTZhd2pk?= =?utf-8?B?SkVWUldBTmg2dmhYVXBCVDY2eTU0RW9OdXpVRFdRTDV3S1RkTkZubWNMZkFM?= =?utf-8?B?UTdwL0dEdjRINDVKZWZXbUh5ellFTExxNC8wcHBUMVpJczFWdnRHbTlvUTFI?= =?utf-8?B?R3kxeHBQbjM4aEpUL01UcW5Pajl1bTFNc2VoWVErQytwaWU2SkhhQWM5ZWFu?= =?utf-8?B?a1g4Yjh4M3hqZDRNdVVtRTA3dVc1UmEzM0d6K3VGek5qQ0hGV3BocjRNNUJE?= =?utf-8?B?NjhobmFjV1RBQmlOVXJjblhQQzRCbmpHTGlWVUg2NkQ4enNPRTl6NUtNMUNz?= =?utf-8?B?clJCTWJTMHFLOWRVYUs0bzV4SlM2dG9HRGZnZzBneTlyaFp6S2haTVZDT1BB?= =?utf-8?B?UmRDb3QxdGhLUkdYdXdpSVlRRWpWYlRNYXRSYkxpakhZUlNhVm5tS1RXSEhO?= =?utf-8?Q?pRT8knI2E9oFVskJyQ=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: PH0PR11MB5207.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 80935acd-f4cb-411f-3573-08d8e247ddc8 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Mar 2021 15:35:56.3509 (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: vAcmUSqlEGfcIHcGPcKpwydMxL1r4iU7MW5kl1lcHS3BcwcmGlt0hlIXC9l7tkiopIqzD2V+2DHG8xO+vfQhNw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4840 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v3 4/5] examples/l3fwd: implement FIB lookup method 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" PiBGcm9tOiBCdXJha292LCBBbmF0b2x5IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPg0KPiBT ZW50OiBXZWRuZXNkYXkgMyBNYXJjaCAyMDIxIDExOjUzDQo+IFRvOiBXYWxzaCwgQ29ub3IgPGNv bm9yLndhbHNoQGludGVsLmNvbT47IGplcmluakBtYXJ2ZWxsLmNvbTsNCj4gc3RlcGhlbkBuZXR3 b3JrcGx1bWJlci5vcmc7IElyZW1vbmdlciwgQmVybmFyZA0KPiA8YmVybmFyZC5pcmVtb25nZXJA aW50ZWwuY29tPjsgQW5hbnlldiwgS29uc3RhbnRpbg0KPiA8a29uc3RhbnRpbi5hbmFueWV2QGlu dGVsLmNvbT47IE1lZHZlZGtpbiwgVmxhZGltaXINCj4gPHZsYWRpbWlyLm1lZHZlZGtpbkBpbnRl bC5jb20+DQo+IENjOiBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BB VENIIHYzIDQvNV0gZXhhbXBsZXMvbDNmd2Q6IGltcGxlbWVudCBGSUINCj4gbG9va3VwIG1ldGhv ZA0KPiANCj4gT24gMTktRmViLTIxIDM6MDkgUE0sIENvbm9yIFdhbHNoIHdyb3RlOg0KPiA+IFRo aXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgRm9yd2FyZGluZyBJbmZvcm1hdGlvbiBCYXNlIChGSUIp IGxpYnJhcnkNCj4gPiBpbiBsM2Z3ZCB1c2luZyB0aGUgZnVuY3Rpb24gY2FsbHMgYW5kIGluZnJh c3RydWN0dXJlIGludHJvZHVjZWQgaW4NCj4gPiB0aGUgcHJldmlvdXMgcGF0Y2guDQo+ID4NCj4g PiBTaWduZWQtb2ZmLWJ5OiBDb25vciBXYWxzaCA8Y29ub3Iud2Fsc2hAaW50ZWwuY29tPg0KPiA+ IC0tLQ0KPiANCj4gPHNuaXA+DQo+IA0KPiA+ICsJCQkgfHwgZGVmaW5lZCBSVEVfQVJDSF9QUENf NjQNCj4gPiArI2RlZmluZSBGSUJfU0VORF9NVUxUSQ0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4g K3N0YXRpYyBzdHJ1Y3QgcnRlX2ZpYiAqaXB2NF9sM2Z3ZF9maWJfbG9va3VwX3N0cnVjdFtOQl9T T0NLRVRTXTsNCj4gPiArc3RhdGljIHN0cnVjdCBydGVfZmliNiAqaXB2Nl9sM2Z3ZF9maWJfbG9v a3VwX3N0cnVjdFtOQl9TT0NLRVRTXTsNCj4gPiArDQo+ID4gKy8qIFBhcnNlIHBhY2tldCB0eXBl IGFuZCBpcCBhZGRyZXNzLiAqLw0KPiA+ICtzdGF0aWMgaW5saW5lIHZvaWQNCj4gPiArZmliX3Bh cnNlX3BhY2tldChzdHJ1Y3QgcnRlX21idWYgKm1idWYsDQo+ID4gKwkJICAgICAgIHVpbnQzMl90 ICppcHY0LCB1aW50MzJfdCAqaXB2NF9jbnQsDQo+ID4gKwkJICAgICAgIHVpbnQ4X3QgaXB2NltS VEVfRklCNl9JUFY2X0FERFJfU0laRV0sDQo+ID4gKwkJICAgICAgIHVpbnQzMl90ICppcHY2X2Nu dCwgdWludDhfdCAqaXBfdHlwZSkNCj4gDQo+IE5pdHBpY2tpbmcsIGJ1dCBoZXJlIGFuZCBpbiBh IGJ1bmNoIG9mIG90aGVyIHBsYWNlcywgdGhlIGluZGVudGF0aW9uIGlzDQo+IHF1aXRlIG9kZCA6 KQ0KDQpIaSBBbmF0b2x5LA0KSSBoYXZlIGNvcnJlY3RlZCB0aGUgaW5kZW50YXRpb24gaXNzdWVz IGluIHRoZSB2NCBvZiB0aGUgcGF0Y2hzZXQuDQoNCj4gDQo+IDxzbmlwPg0KPiANCj4gPiArDQo+ ID4gKy8qIEJ1bGsgcGFyc2UsIGZpYiBsb29rdXAgYW5kIHNlbmQuICovDQo+ID4gK3N0YXRpYyBp bmxpbmUgdm9pZA0KPiA+ICtmaWJfc2VuZF9wYWNrZXRzKGludCBuYl9yeCwgc3RydWN0IHJ0ZV9t YnVmICoqcGt0c19idXJzdCwNCj4gPiArCQkJdWludDE2X3QgcG9ydGlkLCBzdHJ1Y3QgbGNvcmVf Y29uZiAqcWNvbmYpDQo+ID4gK3sNCj4gPiArCXVpbnQzMl90IGlwdjRfYXJyW25iX3J4XTsNCj4g PiArCXVpbnQ4X3QgaXB2Nl9hcnJbbmJfcnhdW1JURV9GSUI2X0lQVjZfQUREUl9TSVpFXTsNCj4g PiArCXVpbnQxNl90IGhvcHNbbmJfcnhdOw0KPiA+ICsJdWludDY0X3QgaG9wc3Y0W25iX3J4XSwg aG9wc3Y2W25iX3J4XTsNCj4gPiArCXVpbnQ4X3QgdHlwZV9hcnJbbmJfcnhdOw0KPiA+ICsJdWlu dDMyX3QgaXB2NF9jbnQgPSAwLCBpcHY2X2NudCA9IDA7DQo+ID4gKwl1aW50MzJfdCBpcHY0X3Jl YXNzZW0gPSAwLCBpcHY2X3JlYXNzZW0gPSAwOw0KPiANCj4gSSBkb24ndCBxdWl0ZSBmb2xsb3cg dGhlIG5hbWluZyBoZXJlIC0gdGhpcyBsb29rcyBsaWtlIGl0J3MNCj4gInJlYXNzZW1ibGluZyIg c29tZXRoaW5nIGJ1dCBpIGRvbid0IHNlZSBhbnkgSVAgcmVhc3NlbWJseSBnb2luZyBvbj8NCj4g QXJ0aWZhY3RzIG9mIGNvcHktcGFzdGU/DQoNCkZvciBGSUIgbG9va3VwcyB0aGUgcGFja2V0cyBu ZWVkIHRvIGJlIHNwbGl0IGludG8gaXB2NCBhbmQgaXB2Ni4NClRoZXNlIGxvb2t1cHMgY3JlYXRl IHNlcGFyYXRlIGFycmF5cyBvZiAnaG9wcycgZm9yIGlwdjQgYW5kIGlwdjYgd2hpY2ggbmVlZCB0 byBiZSBhc3NlbWJsZWQgaW50byBhIHNpbmdsZSAnaG9wcycgYXJyYXkuDQpJIHVzZSBpcHY0X3Jl YXNzZW0gQW5kIGlwdjZfcmVhc3NlbSBhcyBjb3VudGVycyBmb3IgdGhpcyBwdXJwb3NlLg0KVG8g dHJ5IGFuZCBhdm9pZCBjb25mdXNpb24gSSBoYXZlIHJlbmFtZWQgdGhlbSBhcyBmb2xsb3dzIGlw djRfcmVhc3NlbSAtPiBpcHY0X2Fycl9hc3NlbSBhbmQgaXB2Nl9yZWFzc2VtIC0+IGlwdjZfYXJy X2Fzc2VtIGluIHY0Lg0KDQo+IA0KPiA+ICsJaW50MzJfdCBpOw0KPiA+ICsNCj4gPiArCS8qIFBy ZWZldGNoIGZpcnN0IHBhY2tldHMuICovDQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgRklCX1BSRUZF VENIX09GRlNFVCAmJiBpIDwgbmJfcng7IGkrKykNCj4gPiArCQlydGVfcHJlZmV0Y2gwKHJ0ZV9w a3RtYnVmX210b2QocGt0c19idXJzdFtpXSwgdm9pZCAqKSk7DQo+ID4gKw0KPiA+ICsJLyogUGFy c2UgcGFja2V0IGluZm8gYW5kIHByZWZldGNoLiAqLw0KPiA+ICsJZm9yIChpID0gMDsgaSA8IChu Yl9yeCAtIEZJQl9QUkVGRVRDSF9PRkZTRVQpOyBpKyspIHsNCj4gPiArCQkvKiBQcmVmZXRjaCBw YWNrZXQuICovDQo+ID4gKwkJcnRlX3ByZWZldGNoMChydGVfcGt0bWJ1Zl9tdG9kKHBrdHNfYnVy c3RbDQo+ID4gKwkJCQkJICAgICAgIGkgKyBGSUJfUFJFRkVUQ0hfT0ZGU0VUXSwNCj4gPiArCQkJ CQkgICAgICAgdm9pZCAqKSk7DQo+ID4gKwkJZmliX3BhcnNlX3BhY2tldChwa3RzX2J1cnN0W2ld LA0KPiA+ICsJCQkJICAgICAgICZpcHY0X2FycltpcHY0X2NudF0sICZpcHY0X2NudCwNCj4gPiAr CQkJCSAgICAgICBpcHY2X2FycltpcHY2X2NudF0sICZpcHY2X2NudCwNCj4gPiArCQkJCSAgICAg ICAmdHlwZV9hcnJbaV0pOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCS8qIFBhcnNlIHJlbWFpbmlu ZyBwYWNrZXQgaW5mby4gKi8NCj4gPiArCWZvciAoOyBpIDwgbmJfcng7IGkrKykNCj4gPiArCQlm aWJfcGFyc2VfcGFja2V0KHBrdHNfYnVyc3RbaV0sDQo+ID4gKwkJCQkgICAgICAgJmlwdjRfYXJy W2lwdjRfY250XSwgJmlwdjRfY250LA0KPiA+ICsJCQkJICAgICAgIGlwdjZfYXJyW2lwdjZfY250 XSwgJmlwdjZfY250LA0KPiA+ICsJCQkJICAgICAgICZ0eXBlX2FycltpXSk7DQo+ID4gKw0KPiA+ ICsJLyogTG9va3VwIElQdjQgaG9wcyBpZiBJUHY0IHBhY2tldHMgYXJlIHByZXNlbnQuICovDQo+ ID4gKwlpZiAobGlrZWx5KGlwdjRfY250ID4gMCkpDQo+ID4gKwkJcnRlX2ZpYl9sb29rdXBfYnVs ayhxY29uZi0+aXB2NF9sb29rdXBfc3RydWN0LA0KPiA+ICsJCQkJICAgIGlwdjRfYXJyLCBob3Bz djQsIGlwdjRfY250KTsNCj4gPiArDQo+ID4gKwkvKiBMb29rdXAgSVB2NiBob3BzIGlmIElQdjYg cGFja2V0cyBhcmUgcHJlc2VudC4gKi8NCj4gPiArCWlmIChpcHY2X2NudCA+IDApDQo+ID4gKwkJ cnRlX2ZpYjZfbG9va3VwX2J1bGsocWNvbmYtPmlwdjZfbG9va3VwX3N0cnVjdCwNCj4gPiArCQkJ CSAgICAgaXB2Nl9hcnIsIGhvcHN2NiwgaXB2Nl9jbnQpOw0KPiA+ICsNCj4gPiArCS8qIEFkZCBJ UHY0IGFuZCBJUHY2IGhvcHMgdG8gb25lIGFycmF5IGRlcGVuZGluZyBvbiB0eXBlLiAqLw0KPiA+ ICsJZm9yIChpID0gMDsgaSA8IG5iX3J4OyBpKyspIHsNCj4gPiArCQlpZiAodHlwZV9hcnJbaV0p IHsNCj4gPiArCQkJaWYgKGhvcHN2NFtpcHY0X3JlYXNzZW1dICE9IEZJQl9ERUZBVUxUX0hPUCkN Cj4gPiArCQkJCWhvcHNbaV0gPSAodWludDE2X3QpaG9wc3Y0W2lwdjRfcmVhc3NlbV07DQo+ID4g KwkJCWVsc2UNCj4gPiArCQkJCWhvcHNbaV0gPSBwb3J0aWQ7DQo+ID4gKwkJCWlwdjRfcmVhc3Nl bSsrOw0KPiANCj4gTml0cGlja2luZywgYnV0IGNvdWxkIGJlIG1hZGUgc2xpZ2h0bHkgbW9yZSBj b25jaXNlIGFuZCByZWFkYWJsZToNCj4gDQo+IGNvbnN0IHVpbnQxNl90IG5oID0gKHVpbnQxNl90 KWhvcHN2NFtpcHY0X3JlYXNzZW0rK107DQo+IGhvcHNbaV0gPSBuaCAhPSBGSUJfREVGQVVMVF9I T1AgPyBuaCA6IHBvcnRpZDsNCj4gDQo+IFNhbWUgZm9yIElQdjYuDQoNCkkgaGF2ZSBjaGFuZ2Vk IHRoaXMgaW4gdGhlIHY0IG9mIHRoZSBwYXRjaHNldCB3aGljaCB3aWxsIGJlIHJlbGVhc2VkIHNv b24uDQoNClRoYW5rcywNCkNvbm9yLg0KDQo+IA0KPiAtLQ0KPiBUaGFua3MsDQo+IEFuYXRvbHkN Cg==