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 483E9A00C3; Wed, 15 Dec 2021 14:06:42 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C8E1040688; Wed, 15 Dec 2021 14:06:41 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 4D52D40041 for ; Wed, 15 Dec 2021 14:06:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1639573600; x=1671109600; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=IisM0AaJQ+YjPXut10xzDLVGrOjMEviVk6kJ9JEuZA8=; b=gfU8cZcAKFBlf18cvWLw6RjZcrOn8vUHEzN7NaxSLGyT+PE3fHkc8EHa uLf5I6O0I2scK3TaHwO4JP242HEiU+HaUUxIEJuILPDWhDXhe2mBPwF1i zKHqSKLVRsLUEnwUgCwyxyzRs9RfdzSGSIE3NWiwPQc/h+V+TTQDwyb9l 4/2piR0+ESMS8QF34LYWIql/YBC1kIokZohj4Q6lIkV+07TkxBz2QFTyI mQIwK8rledQnjHkb8Q4CZNA4lsHS1RhOGpK1f1px/HEsR5CLWMoINfibs sKcbZ/fDk1u/FBSlHPIvZ16MT4fUqMGfif3sqqCRmZUf75gQ5gX5FQPNs Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10198"; a="263371250" X-IronPort-AV: E=Sophos;i="5.88,207,1635231600"; d="scan'208";a="263371250" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2021 05:06:38 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,207,1635231600"; d="scan'208";a="584198127" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga004.fm.intel.com with ESMTP; 15 Dec 2021 05:06:38 -0800 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) 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.2308.20; Wed, 15 Dec 2021 05:06:38 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Wed, 15 Dec 2021 05:06:37 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Wed, 15 Dec 2021 05:06:37 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.174) 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.2308.20; Wed, 15 Dec 2021 05:06:37 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g+Ui5jFrRn/Hr9K6yKAEozHtv1QXIXSjTpdD5zUbjKvXNQQayZDTuRyzDAZuxC6Il6T8a5+PFZNMvzSMOdxEzCrXEQ8xbUn0KpsLb6efnC1cLrP101smgZ9keOywRnyiD41/ovK7R9JpscsXU7xQpZiuwIz79dIE7dmGVYu6bP2wt6EtXGczJyQQE0oNTJqWsxQwFN0ECdfdOc6y53dggd4p/k1JuksfGbFzgDxFUXrPpzbr+kCaEQMTB5lYvyB2qSJjNr2yKxSIG1yo1UwGi/oSzOcYpJbQyXnO6FOx9ktyVmRCLgPIccHZM+2mJ0zSHr9b2tKHHiZe4gjTSDZY0g== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IisM0AaJQ+YjPXut10xzDLVGrOjMEviVk6kJ9JEuZA8=; b=JcxQ2Fnsi5qcD38i4l1Pgd+RG1XZX4tOJy70KdkAoahZcr1dqFtj3cqSnz50GG9V1oakNZ2nN7C2XLN5jd7opJtunYWjFgQY5Hnwu0ooSjL3GaBHEXhu924yRjil6uY6lIEKrWT5AsZrFS9ysfsUJToHx+4bGqDfzsFs1KftkI2ncJxAI/v/57f8mnsfZXKU39XSOLQm3/QcG/7VmZ8HFriEr6kpQY301n2n+BGAeBWCny/EUpvnrO0uHQystj4nL+2r1Nx4WTV7He0lNN6NT8pOUKwxCvCxXFrgPnUbVVRCjpYOQWB610F/RIY9ilRtHgHvhBTA90H4IhMIK2r9Cg== 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 Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB3018.namprd11.prod.outlook.com (2603:10b6:5:68::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.11; Wed, 15 Dec 2021 13:06:36 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::fc25:a06b:f39b:569a]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::fc25:a06b:f39b:569a%5]) with mapi id 15.20.4801.014; Wed, 15 Dec 2021 13:06:36 +0000 From: "Ananyev, Konstantin" To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "Stephen Hemminger" CC: "Randles, Ronan" , "dev@dpdk.org" , "Van Haaren, Harry" Subject: RE: [PATCH 02/12] net: add function to pretty print IPv4 Thread-Topic: [PATCH 02/12] net: add function to pretty print IPv4 Thread-Index: AQHX8PTFP9hsNqd7j0O0/WdLpn6lkqwyPuCAgAB9U2CAACdrgIAAQ7QAgABaRwA= Date: Wed, 15 Dec 2021 13:06:36 +0000 Message-ID: References: <20211214141242.3383831-1-ronan.randles@intel.com> <20211214141242.3383831-3-ronan.randles@intel.com> <98CBD80474FA8B44BF855DF32C47DC35D86D6F@smartserver.smartshare.dk> <20211214192053.54ea2f2f@hermes.local> <98CBD80474FA8B44BF855DF32C47DC35D86D72@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35D86D72@smartserver.smartshare.dk> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8d448fa5-b1a8-442c-df3e-08d9bfcbb9c1 x-ms-traffictypediagnostic: DM6PR11MB3018:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: GxbAcNrVYFozcdxIrqSRx6k6QKv6JHTk1p5JXm5yQFp+m5IE+nv3DJSBca1V5Qfff8nGjULneHsJ8VJESRx5aVluILQE5u1QHz01v8Jra7gS2UI2j9HNwaOKWtru/UeeeJAur7cwI/v8y33YlQjgC/Mg3yQkZxiLt/yYfb4G/prEdJWpP8z4XNoKc7+hzYbEVANjkrVQcFYrd16HydAbyaOgpfyCKLcC90b/o59gTxRtkkLtTF+3P5XWIUm9SSpf4IjHH4kuZ3R59pc2lWezTywF/5ePLOC3SrZSTZxXe79rkZSbIINeD0I1fCkBzi8Fqat6xAjaC1hfiwhfoxvtAl7s1GYWZaFttmU6rcyjBUi/WZxAv5SSzl1RGovV3ApWL4M6n7o+ww9K9DSv7PYIffUvHsxRkTANr0uzKhN5Z0w673MAsyKvm14P7yJq//UGErQ8gTxdqrHUthGGxCuVS6nIJ/e1x6IpNoJpMbYFnAp7o+TvNAJhZOaUUlbALvm1le6kF4x60/Qt6zJX9DYDZ+1PTiBw788Ow5hu2POZSQAUxjr/m9aV9EgWPTqyuAfWbyCcddCY7vSTes7nu4UGjPeKR1/rus8hD0SoVry15F83Qb15r2oROwb/LQFcKn4mwzaUaXPYMd0z4bElvxCT3GeEI0qrX+pfYZX751y1B4E3QrMsgwsNiIYjCsoPgunEmD++I88+RB31Shqn0tyR4A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(26005)(38070700005)(86362001)(66476007)(7696005)(2906002)(55236004)(83380400001)(55016003)(76116006)(64756008)(8676002)(66946007)(38100700002)(8936002)(6506007)(66446008)(66556008)(186003)(508600001)(66574015)(71200400001)(107886003)(122000001)(54906003)(110136005)(82960400001)(33656002)(9686003)(4326008)(5660300002)(316002)(52536014)(53546011); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bjE1ajZNSVo3dk1LZ1lRb2VIa3E4Wkt0bFJ5cEZoOElJL0dVcU9JbmozZjlv?= =?utf-8?B?UHVHYmNveVltUzRCZGcwR013YVcwRDN3VU1SNWxqbkJqTk5uQjRlYXZMeWYx?= =?utf-8?B?RERMNUdGNGNaNTd4dUtiMm5EcXZrYVlmc25iTDZrRTB4ODhnZkV5VG9WdW85?= =?utf-8?B?Y3dHMjFBU0w2MFRJZ2lHZ2tpUWJydnBrUjhCMUl2ZEFZTzU0S1R4bkdIb0tH?= =?utf-8?B?eGRJbm1JTnR6Zk1VQlM0UVAxeG8zdzhKS3JKNHlRM2M2WEJGOEJTS0ZPMVk4?= =?utf-8?B?S2xMb2FuQ2VuUDgyNWdCWEpSc3FJaW1MY0IveU1JeDl3QTkrZzEyeThuZllk?= =?utf-8?B?SUFrNDAwb3ZFeFJkd0hYSHFYai8xQ3pDdmZCQkNlSlBWRFRCTVdEc1NDT25Z?= =?utf-8?B?RXYvbkQ4aUVMOWZXV1l1ckxuZGgxVFQ0M0Y4aGFvcy9pTk5sNlgxdHJwQ2d5?= =?utf-8?B?Tld1UVlHdjUyVkRpYWZkQzhQVnc5VGhxYVl1dGVpdmNJSXJPRGlQUGp2czFm?= =?utf-8?B?Rk1MTVEzZlMyZ0tJNUlrUnNwVldqaGNNWitScUlSVzZOYnJxRDM0V0phTSt4?= =?utf-8?B?cEhGNUEwTTMwS3A1LzVobk1pY0tPc2hNdVZSOEM0SGIzYUE0SkIzZzRCYXVH?= =?utf-8?B?bjNXWjdOZXIxTnd6TitPek9TS1ZEQVZZdlNvTHlUcmNYaTNya2lHR1RoTEp3?= =?utf-8?B?MGVnMVpMMHJTekhvQkFoVVFMNXNJMVhBWkQvN0xmZ1dMbkpQQUREdXRETHFp?= =?utf-8?B?N0pmSXQ4VXBhemw4SFNlZnVrQjFTU0R0QUNjcDNSaGkwNEdkRUlZNEdZd25O?= =?utf-8?B?ZW5nQ2xod2NSRitINzVueUpQNG5LZ05Mdk5YQ05pM3lwNWFnMm1reUhnYThO?= =?utf-8?B?N1hLK2NFME9nWFZ5WTBsZ2c4R3VYTEg2RlhyVEI0ZlFaSGJMVXJvY0ZpTnF0?= =?utf-8?B?WlhkQk01Und1NnBuR3UzK3VCSk0yaDQ3SittcW1tM0krcFBCNmE2QVloSlor?= =?utf-8?B?QVhNOENsamhaTkJ1NkJzeVA5VDIvVGdOdTNRdnRsM1haODQxVFVvUXUvT0lw?= =?utf-8?B?bkEwbldpS0pRa2s1VS90bXZyUmUzZ205dEw0QzBraldOcWZMc2poQmgyaVQr?= =?utf-8?B?aHFVNlVUYzVvcGZLTHdpazB0eUtlZXo1bjVMODZGaFFHd1RUVnM5Vmk2SWxQ?= =?utf-8?B?TkJ0VUZkcExHeHAxaGtOSFlaNFRGZVNIS0piajZSQlRVQ1dCRkVHQUR3dHZC?= =?utf-8?B?UnBSSFlQZzI2VndBdFR3RVJINFc0TGxjSkFkTE9KL002dXA4NHY1dnNXZi9y?= =?utf-8?B?M1BLN20yWFI3a3Z1cTdnWDFFdzQ2SFg0MFgxRWMzMU1NZElyMjkwVCtVeVQz?= =?utf-8?B?ZDhpVGt0d1BmYnpEWGdKanRNakwwRzVmMXgzSkNQcVRvTkUxVXV1OS9hbFpm?= =?utf-8?B?bTVRY2ZVc09pNWplRHVkeDgxSkc1S0tXUHNXbjAyd3VYbC9GVmlOQklOZEs5?= =?utf-8?B?dGVYdEFUaU8vT1ozUExSTDl6anBTdEtGSW93Q2FzVFJ0aTJZUlN4SmlRYklh?= =?utf-8?B?VjUxeXNEeUVPWFFPb21JTFh1UU56UlYvSHMrOGFISGZPT01OTWZnUTFocDB1?= =?utf-8?B?ZmFlRlEwYW1tR0hCYW1MTllRTENhRXRPNzEyZ1hXeFBnTVE2dHR0SytTU01V?= =?utf-8?B?Z2xWZmUzUnNlZE5scktqY1lSUWFWSC9QNkptcDc0S3RMTnVlbktyc0VZS01O?= =?utf-8?B?MzN6U2ZmN2ZXcThOTW1VUTBPbzJWRnpmRnRKU3pjSGNtUUdKS0ZHNjVRcHg4?= =?utf-8?B?TDJqWC95cERBM1NVcHBseUNhbDVkQnVodldXSTFaSFpDV0Vuak5YeG9Zc1BZ?= =?utf-8?B?emJHaVJINUg2WnNKcTNGc0tuT1dFekJJUldGcDhDQTdwSzBhazlyTld3T01Y?= =?utf-8?B?b093OE1kR3J2WGpLMkg3TDNaMFdRSGx4WGpuWXQ1TXVTUlNEd3ZmWUVsNFlW?= =?utf-8?B?bFdoa1N2RDVDK1JGajZneU1zcTh4VVhPSTI0Z2dNdkhrOTN1a1l1L0ltOWd1?= =?utf-8?B?d2c4VXNRQ1dWY2puMytlcmVXM0gxM1RCQjc2WXdxbTliZjRSVjVMYVJpa1Rk?= =?utf-8?B?d1k0c0h1aUpaVnNuRHc3amxEanhnTVlhWmR1UWcxbUdZL0FkajVaTk5Udmpk?= =?utf-8?B?bVM4bk9KY3VtRW1NdkxvTFN1UE1qbjFxY2pySGZFMGFCdTB2UGpXTEZZZ3pa?= =?utf-8?B?N1IxQVdxSno5VDNPWE93aXJEMHJBPT0=?= 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: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d448fa5-b1a8-442c-df3e-08d9bfcbb9c1 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Dec 2021 13:06:36.4455 (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: lJVManHGAHe8QVIer89kRI3jDWc+1nq0qr5dL4EGagssODbfkhoB9zhBHAA1qx1hJXAmNq/37zYbX5WBje1YlZ5Ut+DFN2DllEcODLCcNkE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3018 X-OriginatorOrg: intel.com 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 DQoNCiANCj4gPiBGcm9tOiBTdGVwaGVuIEhlbW1pbmdlciBbbWFpbHRvOnN0ZXBoZW5AbmV0d29y a3BsdW1iZXIub3JnXQ0KPiA+IFNlbnQ6IFdlZG5lc2RheSwgMTUgRGVjZW1iZXIgMjAyMSAwNC4y MQ0KPiA+DQo+ID4gT24gV2VkLCAxNSBEZWMgMjAyMSAwMTowNjoxNCArMDAwMA0KPiA+ICJBbmFu eWV2LCBLb25zdGFudGluIiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4gd3JvdGU6DQo+ ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogTW9y dGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4gPiA+ID4gU2VudDogVHVl c2RheSwgRGVjZW1iZXIgMTQsIDIwMjEgNTozMSBQTQ0KPiA+ID4gPiBUbzogUmFuZGxlcywgUm9u YW4gPHJvbmFuLnJhbmRsZXNAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4gPiA+IENjOiBW YW4gSGFhcmVuLCBIYXJyeSA8aGFycnkudmFuLmhhYXJlbkBpbnRlbC5jb20+DQo+ID4gPiA+IFN1 YmplY3Q6IFJFOiBbUEFUQ0ggMDIvMTJdIG5ldDogYWRkIGZ1bmN0aW9uIHRvIHByZXR0eSBwcmlu dCBJUHY0DQo+ID4gPiA+DQo+ID4gPiA+ID4gRnJvbTogUm9uYW4gUmFuZGxlcyBbbWFpbHRvOnJv bmFuLnJhbmRsZXNAaW50ZWwuY29tXQ0KPiA+ID4gPiA+IFNlbnQ6IFR1ZXNkYXksIDE0IERlY2Vt YmVyIDIwMjEgMTUuMTMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoaXMgZnVuY3Rpb24gYWNjZXB0 cyBhbiB1aW50MzJfdCByZXByZXNlbnRhdGlvbiBvZiBhbiBJUCBhZGRyZXNzDQo+ID4gYW5kDQo+ ID4gPiA+ID4gcHJvZHVjZXMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gc3RvcmVkIGluIGEgY2hh ciAqIGJ1ZmZlci4NCj4gPiBSZWFsYXZlbnQNCj4gPiA+ID4gPiB1bml0IHRlc3RzIGFsc28gaW5j bHVkZWQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBSb25hbiBSYW5kbGVz IDxyb25hbi5yYW5kbGVzQGludGVsLmNvbT4NCj4gPiA+ID4NCj4gPiA+ID4gW3NuaXBdDQo+ID4g PiA+DQo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9uZXQvcnRlX2lwLmggYi9saWIvbmV0L3J0 ZV9pcC5oDQo+ID4gPiA+ID4gaW5kZXggMTg4MDU0ZmRhNC4uZTQ2ZjBiNDFiYSAxMDA2NDQNCj4g PiA+ID4gPiAtLS0gYS9saWIvbmV0L3J0ZV9pcC5oDQo+ID4gPiA+ID4gKysrIGIvbGliL25ldC9y dGVfaXAuaA0KPiA+ID4gPiA+IEBAIC00NDQsNiArNDQ0LDI2IEBAIF9fcnRlX2V4cGVyaW1lbnRh bA0KPiA+ID4gPiA+ICBpbnQzMl90DQo+ID4gPiA+ID4gIHJ0ZV9pcF9wYXJzZV9hZGRyKGNvbnN0 IGNoYXIgKnNyY19pcCwgdWludDMyX3QgKm91dHB1dF9hZGRyKTsNCj4gPiA+ID4gPg0KPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiArLyoqDQo+ID4gPiA+ID4gKyAqIFByaW50IElQIGFkZHJlc3MgZnJv bSAzMiBiaXQgaW50IGludG8gY2hhciAqIGJ1ZmZlci4NCj4gPiA+ID4gPiArICoNCj4gPiA+ID4g PiArICogQHBhcmFtIGlwX2FkZHINCj4gPiA+ID4gPiArICogICBpcCBhZGRyZXNzIHRvIGJlIHBy aW50ZWQuDQo+ID4gPiA+ID4gKyAqIEBwYXJhbSBidWZmZXINCj4gPiA+ID4gPiArICogICBUaGUg YnVmZmVyIHRoZSBzdHJpbmcgd2lsbCBiZSBzYXZlZCBpbnRvLg0KPiA+ID4gPiA+ICsgKiBAcGFy YW0gYnVmZmVyX3NpemUNCj4gPiA+ID4gPiArICogICBzaXplIG9mIGJ1ZmZlciB0byBiZSB1c2Vk Lg0KPiA+ID4gPiA+ICsgKg0KPiA+ID4gPiA+ICsgKiBAcmV0dmFsIDANCj4gPiA+ID4gPiArICog ICBTdWNjZXNzLg0KPiA+ID4gPiA+ICsgKiBAcmV0dmFsIC0xDQo+ID4gPiA+ID4gKyAqICAgRmFp bHVyZSBkdWUgdG8gaW52YWxpZCBpbnB1dCBhcmd1bWVudHMuDQo+ID4gPiA+ID4gKyAqLw0KPiA+ ID4gPiA+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPiA+ID4gPiAraW50MzJfdA0KPiA+ID4gPiA+ ICtydGVfaXBfcHJpbnRfYWRkcih1aW50MzJfdCBpcF9hZGRyLCBjaGFyICpidWZmZXIsIHVpbnQz Ml90DQo+ID4gPiA+ID4gYnVmZmVyX3NpemUpOw0KPiA+ID4gPiA+ICsNCj4gPiA+ID4NCj4gPiA+ ID4gSW4gY29udGludWF0aW9uIG9mIG15IGVtYWlsIHJlcGx5IGFib3V0IHRoZSBJUHY0IHBhcnNl IGZ1bmN0aW9uLi4uDQo+ID4gPiA+DQo+ID4gPiA+IEkgaGF2ZSBhIGZldyBzdWdnZXN0aW9ucyB0 byB0aGUgSVB2NCBwcmludCBmdW5jdGlvbiB0b286DQo+ID4gPiA+DQo+ID4gPiA+IFRoZSByZXR1 cm4gdmFsdWUgc2hvdWxkIGJlIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB3cml0dGVuIHRvIHRo ZQ0KPiA+IG91dHB1dCBzdHJpbmcsIGFuZCBzdGlsbCAtMSBvbiBlcnJvci4gV2l0aCB0aGlzIG1v ZGlmaWNhdGlvbiwgeW91IGNvdWxkDQo+ID4gPiA+IHVzZSB0aGUgcmV0dXJuIHR5cGUgc3NpemVf dCBpbnN0ZWFkIG9mIGludDMyX3QuDQo+ID4gPiA+DQo+ID4gPiA+IEZ1cnRoZXJtb3JlLCBJIHdv dWxkIHByZWZlciBoYXZpbmcgdGhlIHBhcmFtZXRlcnMgaW4gdGhlIHNhbWUgb3JkZXINCj4gPiBh cyBzbnByaW50ZigpOiBjaGFyICpzdHIsIHNpemVfdCBzaXplLCBjb25zdCB1aW50MzJfdCBpcF9h ZGRyLiBQbGVhc2UNCj4gPiA+ID4gYWxzbyBub3RpY2UgdGhlIHN1Z2dlc3RlZCBjaGFuZ2VkIHR5 cGUgZm9yIHRoZSBzaXplLCBhbmQgdGhlIGNvbnN0DQo+ID4gYWRkZWQgdG8gdGhlIGlwX2FkZHIu DQo+ID4gPiA+DQo+ID4gPiBIb25lc3RseSwgSSBkb24ndCB1bmRlcnN0YW5kIHdoeSB3ZSBuZWVk IHRvIGludHJvZHVjZSBzdWNoIGZ1bmN0aW9ucw0KPiA+ID4gaW5zaWRlIERQREsgYXQgYWxsLg0K PiA+ID4gV2hhdCdzIHdyb25nIHdpdGggZXhpc3Rpbmcgc3RhbmRhcmQgb25lczogaW5ldF9udG9w KCkgYW5kDQo+ID4gaW5ldF9wdG9uKCk/DQo+ID4NCj4gPiBBZ3JlZWQsIEkgc2VlIG5vIGFkZGVk IHZhbHVlIGluIHJlaW52ZW50aW5nIGhlcmUNCj4gDQo+IEkgdGhpbmsgdGhhdCBEUERLIGZ1bmN0 aW9ucyBmb3IgY29udmVydGluZyBhbGwgc29ydHMgb2YgdHlwZXMgdG8vZnJvbSBzdHJpbmdzIHdv dWxkIGJlIHVzZWZ1bDsgbm90IG9ubHkgSVAgYWRkcmVzc2VzLCBidXQgYWxzbyBNQUMgYWRkcmVz c2VzLA0KPiBUQ1AvVURQIHBvcnQgbnVtYmVycyBhbmQgVkxBTiBJRHMuDQoNCkZvciBNQUNzIHdl IGFscmVhZHkgaGF2ZToNCnJ0ZV9ldGhlcl9mb3JtYXRfYWRkcigpL3J0ZV9ldGhlcl91bmZvcm1h dF9hZGRyKCkNCg0KPiANCj4gSWYgeW91IGRvbid0IGxpa2UgSVAgYWRkcmVzcyBzdHJpbmcgY29u dmVyc2lvbiBmdW5jdGlvbnMgaW4gdGhlIG5ldCBsaWJyYXJ5LCBEUERLIGNvdWxkIGhhdmUgYSBz dHJpbmcgY29udmVyc2lvbnMgbGlicmFyeS4gVGhhdCBsaWJyYXJ5IGNvdWxkDQo+IGV4cG9zZSBh IG11bHRpdHVkZSBvZiBBUElzIGZvciB0aGUgc2FtZSBwdXJwb3NlLCBzbyB0aGUgYXBwbGljYXRp b24gY2FuIHVzZSB0aGUgQVBJIHRoYXQgYmVzdCBmaXRzIGVhY2ggYXBwbGljYXRpb24gdXNlLg0K DQpJIGRvbuKAmXQgbWluZCB0byBhZGQgbmV3IGZ1bmN0aW9ucyBpbnRvIG5ldCBsaWIsIGlmIHRo ZXkgYXJlIHVzZWZ1bCBvbmVzLg0KQnV0IGZvciB0aGF0IHBhcnRpY3VsYXIgY2FzZSwgSSBqdXN0 IGRvbid0IHNlZSB3aGF0IGlzIHRoZSByZWFzb24gdG8NCmRldmVsb3AgYW5kIG1haW50YWluIG91 ciBvd24gZnVuY3Rpb25zIHdoaWxlIGV4aXN0aW5nIGFuYWxvZ3VlczoNCi0gYXJlIHdlbGwga25v d24sIHdpZGVseSBhZG9wdGVkIGFuZCBmaWVsZCBwcm92ZW4NCi0gZG8gcHJvdmlkZSB0aGUgc2Ft ZSBvciBldmVuIG1vcmUgY29tcHJlaGVuc2l2ZSBmdW5jdGlvbmFsaXR5DQogIA0KDQoNCiANCg0K