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 3733C42C6F; Fri, 9 Jun 2023 16:03:21 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 28B0442D8F; Fri, 9 Jun 2023 16:03:21 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id A623B40EDB for ; Fri, 9 Jun 2023 16:03:19 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 359BkTJA009013; Fri, 9 Jun 2023 07:03:18 -0700 Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2042.outbound.protection.outlook.com [104.47.66.42]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3r329c7pfw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 09 Jun 2023 07:03:17 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GQjBoCjqTF0gNdzVIAgUt/bBDvYKmJ8K4gJunSTIJDFrLfr7jU/TotychJQ73Z9u3FThD4468ohiWkWrsWZbv/9f6aXJQC2anMCO45omyhPYbJoW/Ab/DJXcrfWDf8tTyXzMRIAAD+Yp28SNzawf0yz0ru9Sf7azFce9jndW9Qk6qr41u511rRIPN93zHaARSXvNhIXeuJDSSzrwENRjmYHsYiD/7wJOXaZXTHU4ZQdN49hNyTnSyv0Z9KjvN9KG5RAdhueiiA520CxslMTslGKQTTsloNsVPwj9a0HkTHGt7XDgCuTz1F8BI/4v1myI6AGYtzKDYYYkjHgbUVON/g== 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=aE9f8PqYv1S2VxE4gjpHNg9CFx9VJCz4q5CcN9Pe5nA=; b=k6VtFi17LO2AAoOI21TgGYk42CrbXPxxE+sygfT6YSj62Xp0bR0iYw7X0lkdtiXeJAY8Fg5SZxBtQPRwBzncjO8r8nazWjtgDPAc16xp6heuZ9ASZQBYl+Y4s4Mh2/wkO9Xd5H0PdNJKbnxF5M2tSl3mJUwFf3dIOudLgVrDyInWC6X85rZYT1ALYwjz05f4Wi1Cx6TFt6gB7pZOhqEw5+zRROLg8ZqlVErQCeDpcvae29BHBzDhZJWWU5DgX/zAQVVTgvKG6kj8sglsOus0dW5vwifIlafAONUTHelYG+u27MS9GmCuD7jKTbLNZHVeB6laO5HY4/IFrYi3RWfDZw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aE9f8PqYv1S2VxE4gjpHNg9CFx9VJCz4q5CcN9Pe5nA=; b=eCZbyUl8XbEn6fLPb3Lz5gu3x0dfvNVy0CanYI6s8rvR+eITpsMF+Bo+HapJmcOZC7l6kL83+Cm+f8tDBJyDYSBQbuoRMO6lm2ewcsfumr3j8KAGlxbPb1gplyd7ifmkhikk4GOKNvYGWQHQcse9DtA7nV7zRaviRyhk76iPOPY= Received: from PH0PR18MB5167.namprd18.prod.outlook.com (2603:10b6:510:168::7) by LV3PR18MB5688.namprd18.prod.outlook.com (2603:10b6:408:1a5::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.33; Fri, 9 Jun 2023 14:03:13 +0000 Received: from PH0PR18MB5167.namprd18.prod.outlook.com ([fe80::75fe:8527:aaf:bbda]) by PH0PR18MB5167.namprd18.prod.outlook.com ([fe80::75fe:8527:aaf:bbda%6]) with mapi id 15.20.6455.039; Fri, 9 Jun 2023 14:03:13 +0000 From: Amit Prakash Shukla To: Cheng Jiang , "thomas@monjalon.net" , "bruce.richardson@intel.com" , "mb@smartsharesystems.com" , "chenbo.xia@intel.com" CC: "dev@dpdk.org" , "jiayu.hu@intel.com" , "xuan.ding@intel.com" , "wenwux.ma@intel.com" , "yuanx.wang@intel.com" , "xingguang.he@intel.com" , Jerin Jacob Kollanukkaran , Anoob Joseph Subject: RE: [EXT] [PATCH v5] app/dma-perf: introduce dma-perf application Thread-Topic: [EXT] [PATCH v5] app/dma-perf: introduce dma-perf application Thread-Index: AQHZmepn8Ay2saxq4UmTb0GXDxiflK+CeT9A Date: Fri, 9 Jun 2023 14:03:12 +0000 Message-ID: References: <20230420072215.19069-1-cheng1.jiang@intel.com> <20230608084355.16209-1-cheng1.jiang@intel.com> In-Reply-To: <20230608084355.16209-1-cheng1.jiang@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-ref: =?utf-8?B?UEcxbGRHRStQR0YwSUc1dFBTSmliMlI1TG5SNGRDSWdjRDBpWXpwY2RYTmxj?= =?utf-8?B?bk5jWVcxcGRIQnlZV3RoYzJoelhHRndjR1JoZEdGY2NtOWhiV2x1WjF3d09X?= =?utf-8?B?UTRORGxpTmkwek1tUXpMVFJoTkRBdE9EVmxaUzAyWWpnMFltRXlPV1V6TldK?= =?utf-8?B?Y2JYTm5jMXh0YzJjdE5XTmxNall6WVRrdE1EWmpaUzB4TVdWbExXSTJaRGN0?= =?utf-8?B?WTJReU9ERmpZMlU1T0dFMlhHRnRaUzEwWlhOMFhEVmpaVEkyTTJGaExUQTJZ?= =?utf-8?B?MlV0TVRGbFpTMWlObVEzTFdOa01qZ3hZMk5sT1RoaE5tSnZaSGt1ZEhoMElp?= =?utf-8?B?QnplajBpT1RReE5pSWdkRDBpTVRNek16QTNPVEk1T1RBeE5qazFPREV4SWlC?= =?utf-8?B?b1BTSXlZVzR2WnpOWlFuUlpVMGw0YmtOMk5WQmFZWEJVVjJNNWNGRTlJaUJw?= =?utf-8?B?WkQwaUlpQmliRDBpTUNJZ1ltODlJakVpSUdOcFBTSmpRVUZCUVVWU1NGVXhV?= =?utf-8?B?bE5TVlVaT1EyZFZRVUZPTkZCQlFVSkVaelJuWmpJMWNscEJWbUkzWmtGREx6?= =?utf-8?B?ZG5PRXBXZG5RNFFVd3ZkVVIzYTFwQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCU0VGQlFVRkNkVVIzUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJSVUZCVVVWQ1FVRkJRVWszY1ZSd1FVTkJRVkZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVvMFFVRkJRbWhCUjFGQldrRkNlVUZIVlVGamQwSjZRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkZRVUZCUVVG?= =?utf-8?B?QlFVRkJRV2RCUVVGQlFVRnVaMEZCUVVkTlFXUlJRbnBCU0ZGQlluZENkRUZH?= =?utf-8?B?T0VGalFVSnNRVWhKUVdOM1FuWkJSelJCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCVVVGQlFVRkJRVUZCUVVOQlFVRkJRVUZEWlVGQlFVRlpkMEl4UVVoTlFX?= =?utf-8?B?UkJRblpCUnpCQldIZENkMEZIWjBGaWQwSjFRVWRWUVdKblFqRkJSekJCV1dk?= =?utf-8?B?Q2JFRklTVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkNRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFrRkJRVUZCUVVGQlFVRkpRVUZCUVVGQlNqUkJRVUZD?= =?utf-8?B?YWtGSVZVRmpkMEl3UVVjNFFXSlJRbVpCU0UxQlkzZENkVUZHT0VGYVFVSm9R?= =?utf-8?B?VWhOUVdGQlFtWkJTRmxCVFVGQmVVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-refone: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVVZCUVVGQlFVRkJRVUZCWjBGQlFVRkJRVzVu?= =?utf-8?B?UVVGQlIwMUJaRkZDZWtGSVVVRmlkMEowUVVZNFFXTjNRbnBCUnpSQldIZENj?= =?utf-8?B?a0ZIVlVGbFVVSXpRVWM0UVdOblFtdEJTRTFCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGUlFVRkJRVUZCUVVGQlEw?= =?utf-8?B?RkJRVUZCUVVObFFVRkJRVmwzUWpGQlNFMUJaRUZDZGtGSE1FRllkMEo2UVVo?= =?utf-8?B?TlFXSm5RbVpCUnpSQlluZENhMEZIVlVGaVFVSndRVWN3UVdGUlFqQkJSMVZC?= =?utf-8?B?WTJkQ1prRklXVUZOUVVGNVFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkNRVUZC?= =?utf-8?B?UVVGQlFVRkJRVWxCUVVGQlFVRktORUZCUVVKcVFVaFZRV04zUWpCQlJ6aEJZ?= =?utf-8?B?bEZDWmtGSVRVRmpkMEoxUVVZNFFXTjNRbmRCUjBWQldYZENiRUZHT0VGa1ow?= =?utf-8?B?RjNRVVJKUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUlVGQlFVRkJRVUZCUVVGblFVRkJRVUZCYm1kQlFVRkhVVUZpUVVK?= =?utf-8?B?M1FVWTRRV04zUW5KQlNHdEJZMEZDYkVGR09FRlpkMEp2UVVkRlFXUkJRbVpC?= =?utf-8?B?UnpCQldsRkNla0ZJVFVGWlVVSnVRVWRWUVZoM1FqSkJSRUZCVFdkQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFWRkJRVUZCUVVGQlFVRkRRVUZCUVVGQlEyVkJR?= =?utf-8?B?VUZCV2tGQ2MwRklRVUZZZDBKNlFVZDNRVmxSUW1wQlIzTkJXSGRDYWtGSFow?= =?utf-8?B?RlpVVUl3UVVZNFFXSlJRbXhCU0UxQlkzZENhRUZIWTBGYVVVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-reftwo: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUpCUVVGQlFVRkJRVUZCU1VGQlFVRkJR?= =?utf-8?B?VW8wUVVGQlFtdEJSM2RCWTBGQ1prRklVVUZhVVVKb1FVY3dRV04zUW1aQlJ6?= =?utf-8?B?aEJZbWRDYkVGSFVVRmpaMEp3UVVoWlFWcFJRbVpCUjFsQllWRkNjMEZIVlVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGRlFVRkJRVUZCUVVG?= =?utf-8?B?QlFXZEJRVUZCUVVGdVowRkJRVWRWUVdKUlFtaEJSMnRCWWtGQ1prRkhSVUZh?= =?utf-8?B?UVVKclFVaEpRVnBSUW5wQlNFMUJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVVZSUVVGQlFVRkJRVUZCUVVGQlFVRkJV?= =?utf-8?B?VUZCUVVGQlFVRkJRVU5CUVVGQlFVRkRaVUZCUVVGaVVVSm9RVWhKUVdSblFt?= =?utf-8?B?eEJSM2RCV0hkQ2QwRklTVUZpZDBKeFFVZFZRVmwzUWpCQlJqaEJZbWRDYUVG?= =?utf-8?B?SE1FRmFVVUo2UVVZNFFWbDNRblpCUnpSQldtZENjRUZIVVVGYVVVSjFRVWhS?= =?utf-8?B?UVdGUlFtaEJSM2RCV0hkQ2FFRkhkMEZpZDBKMVFVZFZRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUWtGQlFVRkJRVUZCUVVGSlFVRkJRVUZCU2pSQlFVRkNkRUZI?= =?utf-8?B?UlVGalowSXlRVWRWUVdKQlFtWkJTRUZCWTJkQ2RrRkhiMEZhVVVKcVFVaFJR?= =?utf-8?B?VmgzUW5WQlIwVkJZbEZDYkVGSVRVRllkMEo1UVVkVlFXTjNRakJCU0VsQllW?= =?utf-8?B?RkNha0ZJVVVGYVVVSnJRVVk0UVZsUlFuTkJSemhCWW1kQ2JFRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVVkJRVUZCUVVGQlFVRkJaMEZCUVVGQlFX?= =?utf-8?B?NW5RVUZCUnpCQldWRkNlVUZJV1VGYVVVSnpRVVk0UVdOQlFubEJSemhCWVdk?= =?utf-8?B?Q2JFRkhUVUZrUVVKbVFVYzBRVmxSUW5SQlIxVkJZM2RDWmtGSVNVRmFVVUo2?= =?utf-8?B?UVVoUlFXTm5RbkJCUjAxQlpFRkNiRUZIVVVGWWQwSnZRVWRWUVdWQlFtcEJS?= =?utf-8?B?emhCV2tGQ2JFRklUVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZSUVVGQlFVRkJRVUZC?= =?utf-8?B?UTBGQlFVRkJRVU5sUVVGQlFXSlJRbWhCU0VsQlpHZENiRUZIZDBGaVFVSm1R?= =?utf-8?B?VWRGUVdOblFuUkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-rorf: true x-dg-refthree: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQ1FVRkJRVUZC?= =?utf-8?B?UVVGQlFVbEJRVUZCUVVGS05FRkJRVUowUVVkRlFXTm5RakpCUjFWQllrRkNj?= =?utf-8?B?MEZHT0VGYWQwSjJRVWM0UVZwM1FuTkJSMVZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJSVUZCUVVGQlFVRkJRVUZuUVVGQlFVRkJibWRCUVVGSE1FRlpVVUo1UVVo?= =?utf-8?B?WlFWcFJRbk5CUjNkQldIZENkMEZJU1VGaWQwSnhRVWRWUVZsM1FqQkJSamhC?= =?utf-8?B?V1hkQ2RrRkhVVUZhVVVKNlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVZGQlFVRkJRVUZCUVVGRFFVRkJRVUZCUTJWQlFVRkJZ?= =?utf-8?B?bEZDYUVGSVNVRmtaMEpzUVVkM1FXSkJRbVpCU0VGQlkyZENka0ZIYjBGYVVV?= =?utf-8?B?SnFRVWhSUVZoM1FtcEJSemhCV2tGQ2JFRklUVUZZZDBKclFVZHJRVmwzUWpC?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVSkJRVUZCUVVGQlFVRkJTVUZCUVVG?= =?utf-8?B?QlFVbzBRVUZCUW5SQlIwVkJZMmRDTWtGSFZVRmlRVUp6UVVZNFFXTkJRbmxC?= =?utf-8?B?UnpoQllXZENiRUZIVFVGa1FVSm1RVWMwUVZsUlFuUkJSMVZCWTNkQ1prRkhU?= =?utf-8?B?VUZpZDBKMVFVZFpRV0ZSUW10QlIxVkJZbWRDTUVGSGEwRlpVVUp6UVVZNFFX?= =?utf-8?B?SlJRbWhCU0VsQlpHZENiRUZIZDBGaVFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZGUVVGQlFVRkJR?= =?utf-8?B?VUZCUVdkQlFVRkJRVUZ1WjBGQlFVY3dRVmxSUW5sQlNGbEJXbEZDYzBGSGQw?= =?utf-8?B?RllkMEozUVVoSlFXSjNRbkZCUjFWQldYZENNRUZHT0VGaVowSm9RVWN3UVZw?= =?utf-8?B?UlFucEJSamhCV1hkQ2RrRkhORUZhWjBKd1FVZFJRVnBSUW5WQlNGRkJZVkZD?= =?utf-8?B?YUVGSGQwRllkMEowUVVkRlFXTm5RakpCUjFWQllrRkNjMEZHT0VGaWQwSjVR?= =?utf-8?B?VVk0UVZsUlFubEJSekJCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-reffour: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlVVRkJR?= =?utf-8?B?VUZCUVVGQlFVTkJRVUZCUVVGRFpVRkJRVUZpVVVKb1FVaEpRV1JuUW14QlIz?= =?utf-8?B?ZEJZa0ZDWmtGSVFVRmpaMEoyUVVkdlFWcFJRbXBCU0ZGQldIZENkVUZIUlVG?= =?utf-8?B?aVVVSnNRVWhOUVZoM1FtcEJSemhCWW1kQ2JVRkhhMEZhUVVKc1FVYzBRV1JC?= =?utf-8?B?UW5CQlIwVkJZa0ZDWmtGSE1FRlpVVUo1UVVoWlFWcFJRbk5CUjNkQldIZENk?= =?utf-8?B?a0ZJU1VGWWQwSnVRVWM0UVdKM1FtNUJSM2RCV2xGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRa0ZCUVVGQlFVRkJRVUZKUVVGQlFVRkJTalJCUVVGQ2RFRkhSVUZq?= =?utf-8?B?WjBJeVFVZFZRV0pCUW5OQlJqaEJZMEZDZVVGSE9FRmhaMEpzUVVkTlFXUkJR?= =?utf-8?B?bVpCUnpSQldWRkNkRUZIVlVGamQwSm1RVWhKUVZwUlFucEJTRkZCWTJkQ2NF?= =?utf-8?B?RkhUVUZrUVVKc1FVZFJRVmgzUW5SQlIwVkJZMmRDTWtGSFZVRmlRVUp6UVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVWQlFVRkJRVUZCUVVGQlowRkJRVUZCUVc1blFV?= =?utf-8?B?RkJSekJCV1ZGQ2VVRklXVUZhVVVKelFVZDNRVmgzUW5kQlNFbEJZbmRDY1VG?= =?utf-8?B?SFZVRlpkMEl3UVVZNFFXSm5RbWhCUnpCQldsRkNla0ZHT0VGalowSnNRVWhO?= =?utf-8?B?UVdSQlFubEJSMnRCV1hkQ01FRkhWVUZhUVVKbVFVY3dRVmxSUW5sQlNGbEJX?= =?utf-8?B?bEZDYzBGSGQwRllkMEoyUVVoSlFWaDNRbWhCU0VsQllsRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRlJRVUZCUVVGQlFVRkJRMEZC?= =?utf-8?B?UVVGQlFVTmxRVUZCUVdKUlFtaEJTRWxCWkdkQ2JFRkhkMEZpUVVKbVFVaFJR?= =?utf-8?B?VnBSUW5sQlJ6QkJZVkZDZFVGSVZVRmpkMEZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZDUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVsQlFVRkJRVUZLTkVGQlFVSjBRVWRGUVdOblFqSkJSMVZCWWtG?= =?utf-8?B?Q2MwRkdPRUZrZDBKMlFVaEpRVnBCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlJVRkJRVUZCUVVGQlFVRm5RVUZCUVVGQklpOCtQQzl0WlhSaFBnPT0=?= x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR18MB5167:EE_|LV3PR18MB5688:EE_ x-ms-office365-filtering-correlation-id: 25bf83de-38aa-4a78-cc76-08db68f243a1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OQ0niP/VzpFnzlpk5uqMwOeCDjEA8bBfcqujS9B9uyEeUVaNiLqdH88odTF0bX02g73+WbEHP3M7Gp32DqFkFweH7zbom6ACggYxcfUbX3NPZMB6xATJpzfMSNRCcpX9jehFeqRxwkVeCFVRdX7goTETzN4cNRT+NIDSsNGZmNw8B6WqjNDi3vp1GaNNDWQ6XVtfYYYgRXB6N9wqo9z9Fj1Yt6AvyuC7B1OU9V3G13pP89AaSBsNkgWKGkbJiJfy19UN9QQ+Zf0TN9oAdiZvsb7fLuiVsfmmSVpLlvygCI09cpqZ9LuezLkGxnToXL/TFtaw6tWKEsGLS0AYvEh06tDPG6aGAd5AdilVw+eIRJEW/MQcR9Fas6rMDb3QFbWuE84q2jPEFgFOLpYZ31pqw4orkwdWurLcgTU8cKA5sP/PQIn+EyAvn6bpJ8iobvz/2GXpu5W/z1cduLCyRKVEm4/YPaOnQd9uWY8VMWiNUUDIQXPmhuvXSJe77cmx5DQpLhOx/eCdItdOsnNPbxsQKrnAmkkYbzd3dm3qi8JQc7oH/N57Q8vUvHDFQ6FXRlJHKw0AZ8NHmOgxbhb8Vz1IHndFFmc3TDQVY4fBFBdlO6VSR1blTC2XvYLFw9A7PCNl x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR18MB5167.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(346002)(396003)(39860400002)(376002)(366004)(136003)(451199021)(9686003)(26005)(53546011)(186003)(38100700002)(83380400001)(107886003)(66574015)(122000001)(33656002)(86362001)(38070700005)(6506007)(55016003)(8676002)(41300700001)(4326008)(110136005)(54906003)(66446008)(478600001)(66946007)(66476007)(76116006)(2906002)(64756008)(8936002)(316002)(52536014)(5660300002)(7416002)(71200400001)(7696005)(66556008); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Q1V4Ymt1NW9XTUJxOXlHMkFqeUFzSzRhV2pROHNiRHVBaHJrRnNYb1c1VzZQ?= =?utf-8?B?WUhyUXM0R3FadGhkOW1nbHNSUURHdm1lVTAxTkJzQkQrMDBTWXdORFhJSTVR?= =?utf-8?B?NmRHaW1rb2pwVTgwMlZpQWplWEt5bjBtNm5jekM1UkVRVklpNE14cGVzUkFr?= =?utf-8?B?YmxSblViZ1JJeFcyVWxDQ2pSOGowdEJZdkdKcjVVZXBGTHdGanZsZ3hTbTF0?= =?utf-8?B?dkluWVpqc2hCTmwrVDM5NFlGQlF5Z0FaVzRIY3hxTG8wbG9SWHVNQkRyaWVl?= =?utf-8?B?M3pvRUlvYW9DRllPeDdQbVRtUE93WndaLy9GUDA2OCttR2JTdFovaThqNll2?= =?utf-8?B?ZXpuY0ZCT0VlSlNiNjFNVTRFQnJrVWpWWkk5MFJGMFlmS2ZZdFJ1ZHBKQy9n?= =?utf-8?B?S21UWFFwNUVVUk5aWllYM0xseGJZS2g0b0oxRkRZby90d2x1a3VubFVMbXBm?= =?utf-8?B?NUh2bkVNVEJLUlNVWWV6ZllHWWxPVy9nVUFsZGxsWXJVQVlLR0JoejhVbito?= =?utf-8?B?bnBHMkdRQUViSURpZzhUWWFwMDZULzJ1VkFEY1lsdVgzMGpsNmlDUGp1WXU4?= =?utf-8?B?eHhNK0lkVkp5M29sMEJFRlZHQmREM01USEN4SHdBQm8wVnBMZ3IxYUhybEZh?= =?utf-8?B?ZFZ0QjJXTG5nVllPRGF4SlJoK1JXMmpTeEpzU1BLNG44MERvbmJ5QW9ydnZL?= =?utf-8?B?d20xb1FlNVZRbXU3R2dOYmROSERXRTAwTVpiSHk4M216eGI1WThxMXFmUjZy?= =?utf-8?B?M3pGc2NLenBlOVNKTHF1THgvWXhwOEpaUXV0RWZlRVBtRSsvZXc3TWFFWVdo?= =?utf-8?B?TlNZMExzdVBiS3pvWDBMRkJ1YXBUdzFuQVh1NSt5dFdJQ3orTWk0ZC9aK2tE?= =?utf-8?B?Mzc4RTNnRzZ1ckltQ1I0L2RXdWVFUXIvb3VIWmQxMW1OODlTeUpxTlZOeE5a?= =?utf-8?B?L2NJamV4cHBLRVd6UEM3RTV4bFRVcjR6bllGcFZURXhrdkxHL2xneGhoMHgx?= =?utf-8?B?T085SXovR2FnbS95d1pwaENoMTZMM0VFSFM3aE5rWlc0bU9RNFFxUDRtWVYr?= =?utf-8?B?T0t6MDR3Y1h4OW9OclJUTVlvMlJoSWg2U3ZOY2NMcWN1VWVwVG04NHVQNllO?= =?utf-8?B?cDJVdTV0U2JBK0xna2VVLzJLeDNIb3VSYnoxSmJSU3RLN2VQMGhLRWJSRW92?= =?utf-8?B?czR1UG1wanZyRk9ycFp1WlQ3cldTTW5mRG1zQVBCdzFvQnJNcEVtVzQ1bUty?= =?utf-8?B?UFppTUxKOTNaYXNDaEtiRThlOTFEVE5vL1llL1hwQzlyVzRxemhhME5yNy9T?= =?utf-8?B?eGJldjNHVU5rUVZRL2w3RmEva2tyM3hXZGd4TUgwUWlITlo0K0ExbEtYRVlN?= =?utf-8?B?bU5YZHpkcFlwVDNFRTBhOC9pazZPc2JvSGRiUUoxQnJxSzNwU3dVMTZmVU9z?= =?utf-8?B?VGVIaThrV2N4ZU1Xdy9zcWpZclVlZnFYWk5waWVjZW1EZ2pUbGJhVUI5ZFhr?= =?utf-8?B?S3Vja01CNEY3U0dUdDhqdlVSeUhCSCtYOVp5OVc5Y0Q3UmhwU2ZzOUJSV0hu?= =?utf-8?B?cS8xNkwwWnNFdTJVbGVVaGM1RGs3eXRia2wxeUZkMVNLdFQ5QmRadkIzN3Ez?= =?utf-8?B?cUllOVFlYzNpcTZtTUNKYVQ4ai9aUkMzaGlWUjgybkwyd1A3c3ZjRzJUejRs?= =?utf-8?B?K3lvWnFsLzhJaEFZektpSVMwdkxGNk8wYzdocCtmL0FOKzY3TmlhaDRLNEVI?= =?utf-8?B?Qm9mak9INmR6T3RFdzd0RlFNK3ZvVHRYVk54Qkw1MkFPUStLT3Nmc2kvWGo4?= =?utf-8?B?S0g3MS92U05HSzUwR2RkM015QzFrRGRMeXFJaE5xeWZQb1hQLzZBVGQvZUt3?= =?utf-8?B?VnBrdVhQcFNkU0w0TkVpS1F5Zm1JTHAwMVcwQ1E2cW81cEU4NWcxN0UyNHdI?= =?utf-8?B?MWJsVGlsVmJrRnZzVjJ3UHlPa3JsdkV1VzYvdUk2RnZqSXV2TGxlczRWUEdZ?= =?utf-8?B?SWdpL2NGK1lOS3RIR3FyUWZFeXhHbSt0SVZXcVZ6MStsdVBWM3o4eERmQjFB?= =?utf-8?B?cEwzMWk5Uk5NVzVxWlRiVmxmV2tVWVFkcXI3SCtxOHNXb2VOSXRTc3V3dWNk?= =?utf-8?Q?z1sK77H3gw+5yVmC5u9b0MVZS?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR18MB5167.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25bf83de-38aa-4a78-cc76-08db68f243a1 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jun 2023 14:03:12.8664 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: yNOCvB7gtvWPlYHOWveQ/nvWY5MQLmbKF9Wynl6nn5fF7oy6NWTETLdPRIEybWhRdxFQnk7RE5CA/OpxNZMTGuKU2FwHK3R9bXYuEZMh2pM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR18MB5688 X-Proofpoint-GUID: jvVr52pPaQF53d4KSv3F7ouKNAvGTri3 X-Proofpoint-ORIG-GUID: jvVr52pPaQF53d4KSv3F7ouKNAvGTri3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-09_10,2023-06-09_01,2023-05-22_02 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQ2hlbmcgSmlhbmcgPGNo ZW5nMS5qaWFuZ0BpbnRlbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBKdW5lIDgsIDIwMjMgMjox NCBQTQ0KPiBUbzogdGhvbWFzQG1vbmphbG9uLm5ldDsgYnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5j b207DQo+IG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbTsgY2hlbmJvLnhpYUBpbnRlbC5jb20NCj4g Q2M6IGRldkBkcGRrLm9yZzsgamlheXUuaHVAaW50ZWwuY29tOyB4dWFuLmRpbmdAaW50ZWwuY29t Ow0KPiB3ZW53dXgubWFAaW50ZWwuY29tOyB5dWFueC53YW5nQGludGVsLmNvbTsgeGluZ2d1YW5n LmhlQGludGVsLmNvbTsNCj4gQ2hlbmcgSmlhbmcgPGNoZW5nMS5qaWFuZ0BpbnRlbC5jb20+DQo+ IFN1YmplY3Q6IFtFWFRdIFtQQVRDSCB2NV0gYXBwL2RtYS1wZXJmOiBpbnRyb2R1Y2UgZG1hLXBl cmYgYXBwbGljYXRpb24NCj4gDQo+IEV4dGVybmFsIEVtYWlsDQo+IA0KPiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+IFRoZXJlIGFyZSBtYW55IGhpZ2gtcGVyZm9ybWFuY2UgRE1BIGRldmljZXMgc3VwcG9ydGVk IGluIERQREsgbm93LA0KPiBhbmQgdGhlc2UgRE1BIGRldmljZXMgY2FuIGFsc28gYmUgaW50ZWdy YXRlZCBpbnRvIG90aGVyIG1vZHVsZXMgb2YgRFBESyBhcw0KPiBhY2NlbGVyYXRvcnMsIHN1Y2gg YXMgVmhvc3QuIEJlZm9yZSBpbnRlZ3JhdGluZyBETUEgaW50byBhcHBsaWNhdGlvbnMsDQo+IGRl dmVsb3BlcnMgbmVlZCB0byBrbm93IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGVzZSBETUEgZGV2aWNl cyBpbiB2YXJpb3VzDQo+IHNjZW5hcmlvcyBhbmQgdGhlIHBlcmZvcm1hbmNlIG9mIENQVXMgaW4g dGhlIHNhbWUgc2NlbmFyaW8sIHN1Y2ggYXMNCj4gZGlmZmVyZW50IGJ1ZmZlciBsZW5ndGhzLiBP bmx5IGluIHRoaXMgd2F5IGNhbiB3ZSBrbm93IHRoZSB0YXJnZXQNCj4gcGVyZm9ybWFuY2Ugb2Yg dGhlIGFwcGxpY2F0aW9uIGFjY2VsZXJhdGVkIGJ5IHVzaW5nIHRoZW0uIFRoaXMgcGF0Y2gNCj4g aW50cm9kdWNlcyBhIGhpZ2gtcGVyZm9ybWFuY2UgdGVzdGluZyB0b29sLCB3aGljaCBzdXBwb3J0 cyBjb21wYXJpbmcgdGhlDQo+IHBlcmZvcm1hbmNlIG9mIENQVSBhbmQgRE1BIGluIGRpZmZlcmVu dCBzY2VuYXJpb3MgYXV0b21hdGljYWxseSB3aXRoIGEgcHJlLQ0KPiBzZXQgY29uZmlnIGZpbGUu IE1lbW9yeSBDb3B5IHBlcmZvcm1hbmNlIHRlc3QgYXJlIHN1cHBvcnRlZCBmb3Igbm93Lg0KPiAN Cj4gU2lnbmVkLW9mZi1ieTogQ2hlbmcgSmlhbmcgPGNoZW5nMS5qaWFuZ0BpbnRlbC5jb20+DQo+ IFNpZ25lZC1vZmYtYnk6IEppYXl1IEh1IDxqaWF5dS5odUBpbnRlbC5jb20+DQo+IFNpZ25lZC1v ZmYtYnk6IFl1YW4gV2FuZyA8eXVhbngud2FuZ0BpbnRlbC5jb20+DQo+IEFja2VkLWJ5OiBNb3J0 ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPg0KPiBBY2tlZC1ieTogQ2hlbmJv IFhpYSA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+DQo+IC0tLQ0KPiB2NToNCj4gICBmaXhlZCBzb21l IExPTkdfTElORSB3YXJuaW5nczsNCj4gdjQ6DQo+ICAgZml4ZWQgaW5hY2N1cmFjeSBvZiB0aGUg bWVtb3J5IGZvb3RwcmludCBkaXNwbGF5Ow0KPiB2MzoNCj4gICBmaXhlZCBzb21lIHR5cG9zOw0K PiB2MjoNCj4gICBhZGRlZCBsY29yZS9kbWFkZXYgZGVzaWduYXRpb247DQo+ICAgYWRkZWQgZXJy b3IgY2FzZSBwcm9jZXNzOw0KPiAgIHJlbW92ZWQgd29ya2VyX3RocmVhZHMgcGFyYW1ldGVyIGZy b20gY29uZmlnLmluaTsNCj4gICBpbXByb3ZlZCB0aGUgbG9nczsNCj4gICBpbXByb3ZlZCBjb25m aWcgZmlsZTsNCj4gDQo+ICBhcHAvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgMSArDQo+ ICBhcHAvdGVzdC1kbWEtcGVyZi9iZW5jaG1hcmsuYyB8IDQ3MiArKysrKysrKysrKysrKysrKysr KysrKysrKysrDQo+IGFwcC90ZXN0LWRtYS1wZXJmL2NvbmZpZy5pbmkgIHwgIDU5ICsrKysNCj4g IGFwcC90ZXN0LWRtYS1wZXJmL21haW4uYyAgICAgIHwgNTY5DQo+ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysNCj4gIGFwcC90ZXN0LWRtYS1wZXJmL21haW4uaCAgICAgIHwgIDY5 ICsrKysrDQo+ICBhcHAvdGVzdC1kbWEtcGVyZi9tZXNvbi5idWlsZCB8ICAxNyArDQo+ICA2IGZp bGVzIGNoYW5nZWQsIDExODcgaW5zZXJ0aW9ucygrKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFw cC90ZXN0LWRtYS1wZXJmL2JlbmNobWFyay5jICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gYXBwL3Rl c3QtZG1hLXBlcmYvY29uZmlnLmluaSAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFwcC90ZXN0LWRtYS0N Cj4gcGVyZi9tYWluLmMgIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcHAvdGVzdC1kbWEtcGVyZi9tYWlu LmggIGNyZWF0ZSBtb2RlDQo+IDEwMDY0NCBhcHAvdGVzdC1kbWEtcGVyZi9tZXNvbi5idWlsZA0K PiANCg0KPHNuaXA+DQoNCj4gKw0KPiArc3RhdGljIGlubGluZSBpbnQNCj4gK2RvX2RtYV9tZW1f Y29weSh2b2lkICpwKQ0KPiArew0KPiArCXVpbnQxNl90ICpwYXJhX2lkeCA9ICh1aW50MTZfdCAq KXA7DQo+ICsJdm9sYXRpbGUgc3RydWN0IGxjb3JlX3BhcmFtcyAqcGFyYSA9IHdvcmtlcl9wYXJh bXNbKnBhcmFfaWR4XTsNCj4gKwl2b2xhdGlsZSBzdHJ1Y3Qgd29ya2VyX2luZm8gKndvcmtlcl9p bmZvID0gJihwYXJhLT53b3JrZXJfaW5mbyk7DQo+ICsJdWludDE2X3QgZGV2X2lkID0gcGFyYS0+ ZGV2X2lkOw0KPiArCXVpbnQzMl90IG5yX2J1ZiA9IHBhcmEtPm5yX2J1ZjsNCj4gKwl1aW50MTZf dCBraWNrX2JhdGNoID0gcGFyYS0+a2lja19iYXRjaDsNCj4gKwl1aW50MzJfdCBidWZfc2l6ZSA9 IHBhcmEtPmJ1Zl9zaXplOw0KPiArCXN0cnVjdCBydGVfbWJ1ZiAqKnNyY3MgPSBwYXJhLT5zcmNz Ow0KPiArCXN0cnVjdCBydGVfbWJ1ZiAqKmRzdHMgPSBwYXJhLT5kc3RzOw0KPiArCWludDY0X3Qg YXN5bmNfY250ID0gMDsNCj4gKwlpbnQgbnJfY3BsID0gMDsNCj4gKwl1aW50MzJfdCBpOw0KPiAr CXVpbnQzMl90IHBvbGxfY250ID0gMDsNCj4gKw0KPiArCXdvcmtlcl9pbmZvLT5zdG9wX2ZsYWcg PSBmYWxzZTsNCj4gKwl3b3JrZXJfaW5mby0+cmVhZHlfZmxhZyA9IHRydWU7DQo+ICsNCj4gKwl3 aGlsZSAoIXdvcmtlcl9pbmZvLT5zdGFydF9mbGFnKQ0KPiArCQk7DQo+ICsNCj4gKwl3aGlsZSAo MSkgew0KPiArCQlmb3IgKGkgPSAwOyBpIDwgbnJfYnVmOyBpKyspIHsNCj4gKwkJCWlmICh1bmxp a2VseShydGVfZG1hX2NvcHkoZGV2X2lkLA0KPiArCQkJCQkJMCwNCj4gKwkJCQkJCXJ0ZV9wa3Rt YnVmX2lvdmEoc3Jjc1tpXSksDQo+ICsJCQkJCQlydGVfcGt0bWJ1Zl9pb3ZhKGRzdHNbaV0pLA0K PiArCQkJCQkJYnVmX3NpemUsDQo+ICsJCQkJCQkwKSA8IDApKSB7DQo+ICsJCQkJcnRlX2RtYV9z dWJtaXQoZGV2X2lkLCAwKTsNCj4gKwkJCQl3aGlsZSAocnRlX2RtYV9idXJzdF9jYXBhY2l0eShk ZXZfaWQsIDApID09DQo+IDApIHsNCj4gKwkJCQkJbnJfY3BsID0gcnRlX2RtYV9jb21wbGV0ZWQo ZGV2X2lkLA0KPiAwLCBNQVhfRE1BX0NQTF9OQiwNCj4gKwkJCQkJCQkJTlVMTCwgTlVMTCk7DQo+ ICsJCQkJCWFzeW5jX2NudCAtPSBucl9jcGw7DQo+ICsJCQkJCXdvcmtlcl9pbmZvLT50b3RhbF9j cGwgKz0gbnJfY3BsOw0KPiArCQkJCX0NCj4gKwkJCQlpZiAocnRlX2RtYV9jb3B5KGRldl9pZCwN Cj4gKwkJCQkJCTAsDQo+ICsJCQkJCQlydGVfcGt0bWJ1Zl9pb3ZhKHNyY3NbaV0pLA0KPiArCQkJ CQkJcnRlX3BrdG1idWZfaW92YShkc3RzW2ldKSwNCj4gKwkJCQkJCWJ1Zl9zaXplLA0KPiArCQkJ CQkJMCkgPCAwKSB7DQo+ICsJCQkJCXByaW50ZigiZW5xdWV1ZSBmYWlsIGFnYWluIGF0ICV1XG4i LA0KPiBpKTsNCj4gKwkJCQkJcHJpbnRmKCJzcGFjZTolZFxuIiwNCj4gcnRlX2RtYV9idXJzdF9j YXBhY2l0eShkZXZfaWQsIDApKTsNCj4gKwkJCQkJcnRlX2V4aXQoRVhJVF9GQUlMVVJFLCAiRE1B DQo+IGVucXVldWUgZmFpbGVkXG4iKTsNCg0KW0FtaXRdOiBPbiBhbGwgc3VjY2VzcyBvciBmYWls dXJlIGV4aXRzLCBwbGVhc2UgY2FsbCBydGVfZG1hX3N0b3AgYW5kIHJ0ZV9kbWFfY2xvc2UgdG8g ZXhpdCBjbGVhbmx5Lg0KDQo+ICsJCQkJfQ0KPiArCQkJfQ0KPiArCQkJYXN5bmNfY250Kys7DQo+ ICsNCj4gKwkJCWlmICgoYXN5bmNfY250ICUga2lja19iYXRjaCkgPT0gMCkgew0KPiArCQkJCXJ0 ZV9kbWFfc3VibWl0KGRldl9pZCwgMCk7DQo+ICsJCQkJLyogYWRkIGEgcG9sbCB0byBhdm9pZCBy aW5nIGZ1bGwgKi8NCj4gKwkJCQlucl9jcGwgPSBydGVfZG1hX2NvbXBsZXRlZChkZXZfaWQsIDAs DQo+IE1BWF9ETUFfQ1BMX05CLCBOVUxMLCBOVUxMKTsNCj4gKwkJCQlhc3luY19jbnQgLT0gbnJf Y3BsOw0KPiArCQkJCXdvcmtlcl9pbmZvLT50b3RhbF9jcGwgKz0gbnJfY3BsOw0KPiArCQkJfQ0K PiArCQl9DQo+ICsNCj4gKwkJaWYgKHdvcmtlcl9pbmZvLT5zdG9wX2ZsYWcpDQo+ICsJCQlicmVh azsNCj4gKwl9DQo+ICsNCj4gKwlydGVfZG1hX3N1Ym1pdChkZXZfaWQsIDApOw0KPiArCXdoaWxl ICgoYXN5bmNfY250ID4gMCkgJiYgKHBvbGxfY250KysgPCBQT0xMX01BWCkpIHsNCj4gKwkJbnJf Y3BsID0gcnRlX2RtYV9jb21wbGV0ZWQoZGV2X2lkLCAwLA0KPiBNQVhfRE1BX0NQTF9OQiwgTlVM TCwgTlVMTCk7DQo+ICsJCWFzeW5jX2NudCAtPSBucl9jcGw7DQo+ICsJfQ0KPiArDQo+ICsJcmV0 dXJuIDA7DQo+ICt9DQo+ICsNCg0KPHNuaXA+DQoNCj4gKw0KPiArdm9pZA0KPiArbWVtX2NvcHlf YmVuY2htYXJrKHN0cnVjdCB0ZXN0X2NvbmZpZ3VyZSAqY2ZnLCBib29sIGlzX2RtYSkgew0KPiAr CXVpbnQxNl90IGk7DQo+ICsJdWludDMyX3Qgb2Zmc2V0Ow0KPiArCXVuc2lnbmVkIGludCBsY29y ZV9pZCA9IDA7DQo+ICsJc3RydWN0IHJ0ZV9tYnVmICoqc3JjcyA9IE5VTEwsICoqZHN0cyA9IE5V TEw7DQo+ICsJc3RydWN0IGxjb3JlX2RtYV9tYXBfdCAqbGRtID0gJmNmZy0+bGNvcmVfZG1hX21h cDsNCj4gKwl1bnNpZ25lZCBpbnQgYnVmX3NpemUgPSBjZmctPmJ1Zl9zaXplLmN1cjsNCj4gKwl1 aW50MTZfdCBraWNrX2JhdGNoID0gY2ZnLT5raWNrX2JhdGNoLmN1cjsNCj4gKwl1aW50MzJfdCBu cl9idWYgPSBjZmctPm5yX2J1ZiA9IChjZmctPm1lbV9zaXplLmN1ciAqIDEwMjQgKiAxMDI0KSAv DQo+IChjZmctPmJ1Zl9zaXplLmN1ciAqIDIpOw0KPiArCXVpbnQxNl90IG5iX3dvcmtlcnMgPSBs ZG0tPmNudDsNCj4gKwl1aW50MTZfdCB0ZXN0X3NlY3MgPSBjZmctPnRlc3Rfc2VjczsNCj4gKwlm bG9hdCBtZW1vcnk7DQo+ICsJdWludDMyX3QgYXZnX2N5Y2xlcyA9IDA7DQo+ICsJZmxvYXQgbW9w czsNCj4gKwlmbG9hdCBiYW5kd2lkdGg7DQo+ICsNCj4gKwlpZiAoc2V0dXBfbWVtb3J5X2Vudihj ZmcsICZzcmNzLCAmZHN0cykgPCAwKQ0KPiArCQlnb3RvIG91dDsNCj4gKw0KPiArCWlmIChpc19k bWEpDQo+ICsJCWlmIChjb25maWdfZG1hZGV2cyhjZmcpIDwgMCkNCj4gKwkJCWdvdG8gb3V0Ow0K PiArDQo+ICsJaWYgKGNmZy0+Y2FjaGVfZmx1c2gpIHsNCj4gKwkJY2FjaGVfZmx1c2hfYnVmKHNy Y3MsIGJ1Zl9zaXplLCBucl9idWYpOw0KPiArCQljYWNoZV9mbHVzaF9idWYoZHN0cywgYnVmX3Np emUsIG5yX2J1Zik7DQo+ICsJCXJ0ZV9tYigpOw0KPiArCX0NCj4gKw0KPiArCXByaW50ZigiU3Rh cnQgdGVzdGluZy4uLi5cbiIpOw0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IG5iX3dvcmtlcnM7 IGkrKykgew0KPiArCQlsY29yZV9pZCA9IGxkbS0+bGNvcmVzW2ldOw0KPiArCQlvZmZzZXQgPSBu cl9idWYgLyBuYl93b3JrZXJzICogaTsNCj4gKw0KPiArCQl3b3JrZXJfcGFyYW1zW2ldID0gcnRl X21hbGxvYyhOVUxMLCBzaXplb2Yoc3RydWN0DQo+IGxjb3JlX3BhcmFtcyksIDApOw0KPiArCQlp ZiAoIXdvcmtlcl9wYXJhbXNbaV0pIHsNCj4gKwkJCXByaW50ZigibGNvcmUgcGFyYW1ldGVycyBt YWxsb2MgZmFpbHVyZSBmb3IgbGNvcmUNCj4gJWRcbiIsIGxjb3JlX2lkKTsNCj4gKwkJCWJyZWFr Ow0KPiArCQl9DQo+ICsJCWlmIChpc19kbWEpIHsNCj4gKwkJCXdvcmtlcl9wYXJhbXNbaV0tPmRt YV9uYW1lID0gbGRtLQ0KPiA+ZG1hX25hbWVzW2ldOw0KPiArCQkJd29ya2VyX3BhcmFtc1tpXS0+ ZGV2X2lkID0gbGRtLT5kbWFfaWRzW2ldOw0KPiArCQkJd29ya2VyX3BhcmFtc1tpXS0+a2lja19i YXRjaCA9IGtpY2tfYmF0Y2g7DQo+ICsJCX0NCj4gKwkJd29ya2VyX3BhcmFtc1tpXS0+d29ya2Vy X2lkID0gaTsNCj4gKwkJd29ya2VyX3BhcmFtc1tpXS0+bnJfYnVmID0gKHVpbnQzMl90KShucl9i dWYgLw0KPiBuYl93b3JrZXJzKTsNCj4gKwkJd29ya2VyX3BhcmFtc1tpXS0+YnVmX3NpemUgPSBi dWZfc2l6ZTsNCj4gKwkJd29ya2VyX3BhcmFtc1tpXS0+dGVzdF9zZWNzID0gdGVzdF9zZWNzOw0K PiArCQl3b3JrZXJfcGFyYW1zW2ldLT5zcmNzID0gc3JjcyArIG9mZnNldDsNCj4gKwkJd29ya2Vy X3BhcmFtc1tpXS0+ZHN0cyA9IGRzdHMgKyBvZmZzZXQ7DQo+ICsJCXdvcmtlcl9wYXJhbXNbaV0t PnNjZW5hcmlvX2lkID0gY2ZnLT5zY2VuYXJpb19pZDsNCj4gKwkJd29ya2VyX3BhcmFtc1tpXS0+ bGNvcmVfaWQgPSBsY29yZV9pZDsNCj4gKw0KPiArCQlpZiAoaXNfZG1hKQ0KPiArCQkJcnRlX2Vh bF9yZW1vdGVfbGF1bmNoKGRvX2RtYV9tZW1fY29weSwgKHZvaWQNCj4gKikoJmkpLCBsY29yZV9p ZCk7DQo+ICsJCWVsc2UNCj4gKwkJCXJ0ZV9lYWxfcmVtb3RlX2xhdW5jaChkb19jcHVfbWVtX2Nv cHksICh2b2lkDQo+ICopKCZpKSwgbGNvcmVfaWQpOw0KPiArCX0NCj4gKw0KPiArCXdoaWxlICgx KSB7DQo+ICsJCWJvb2wgcmVhZHkgPSB0cnVlOw0KPiArCQlmb3IgKGkgPSAwOyBpIDwgbmJfd29y a2VyczsgaSsrKSB7DQo+ICsJCQlpZiAod29ya2VyX3BhcmFtc1tpXS0+d29ya2VyX2luZm8ucmVh ZHlfZmxhZyA9PQ0KPiBmYWxzZSkgew0KPiArCQkJCXJlYWR5ID0gMDsNCj4gKwkJCQlicmVhazsN Cj4gKwkJCX0NCj4gKwkJfQ0KPiArCQlpZiAocmVhZHkpDQo+ICsJCQlicmVhazsNCj4gKwl9DQo+ ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgbmJfd29ya2VyczsgaSsrKQ0KPiArCQl3b3JrZXJfcGFy YW1zW2ldLT53b3JrZXJfaW5mby5zdGFydF9mbGFnID0gdHJ1ZTsNCj4gKw0KPiArCXVzbGVlcChU RVNUX1dBSVRfVV9TRUNPTkQpOw0KPiArCWZvciAoaSA9IDA7IGkgPCBuYl93b3JrZXJzOyBpKysp DQo+ICsJCXdvcmtlcl9wYXJhbXNbaV0tPndvcmtlcl9pbmZvLnRlc3RfY3BsID0NCj4gK3dvcmtl cl9wYXJhbXNbaV0tPndvcmtlcl9pbmZvLnRvdGFsX2NwbDsNCj4gKw0KPiArCXVzbGVlcCh0ZXN0 X3NlY3MgKiAxMDAwICogMTAwMCk7DQo+ICsJZm9yIChpID0gMDsgaSA8IG5iX3dvcmtlcnM7IGkr KykNCj4gKwkJd29ya2VyX3BhcmFtc1tpXS0+d29ya2VyX2luZm8udGVzdF9jcGwgPQ0KPiB3b3Jr ZXJfcGFyYW1zW2ldLT53b3JrZXJfaW5mby50b3RhbF9jcGwgLQ0KPiArCQkJCQkJd29ya2VyX3Bh cmFtc1tpXS0NCj4gPndvcmtlcl9pbmZvLnRlc3RfY3BsOw0KPiArDQo+ICsJZm9yIChpID0gMDsg aSA8IG5iX3dvcmtlcnM7IGkrKykNCj4gKwkJd29ya2VyX3BhcmFtc1tpXS0+d29ya2VyX2luZm8u c3RvcF9mbGFnID0gdHJ1ZTsNCj4gKw0KPiArCXJ0ZV9lYWxfbXBfd2FpdF9sY29yZSgpOw0KPiAr DQo+ICsJZm9yIChpID0gMDsgaSA8IG5iX3dvcmtlcnM7IGkrKykgew0KPiArCQljYWxjX3Jlc3Vs dChidWZfc2l6ZSwgbnJfYnVmLCBuYl93b3JrZXJzLCB0ZXN0X3NlY3MsDQo+ICsJCQl3b3JrZXJf cGFyYW1zW2ldLT53b3JrZXJfaW5mby50ZXN0X2NwbCwNCj4gKwkJCSZtZW1vcnksICZhdmdfY3lj bGVzLCAmYmFuZHdpZHRoLCAmbW9wcyk7DQo+ICsJCW91dHB1dF9yZXN1bHQoY2ZnLT5zY2VuYXJp b19pZCwgd29ya2VyX3BhcmFtc1tpXS0+bGNvcmVfaWQsDQo+ICsJCQkJCXdvcmtlcl9wYXJhbXNb aV0tPmRtYV9uYW1lLA0KPiBhdmdfY3ljbGVzLCBidWZfc2l6ZSwNCj4gKwkJCQkJbnJfYnVmIC8g bmJfd29ya2VycywgbWVtb3J5LA0KPiBiYW5kd2lkdGgsIG1vcHMsIGlzX2RtYSk7DQo+ICsJfQ0K PiArDQo+ICtvdXQ6DQo+ICsJLyogZnJlZSBlbnYgKi8NCj4gKwlpZiAoc3JjcykNCj4gKwkJcnRl X3BrdG1idWZfZnJlZV9idWxrKHNyY3MsIG5yX2J1Zik7DQo+ICsJaWYgKGRzdHMpDQo+ICsJCXJ0 ZV9wa3RtYnVmX2ZyZWVfYnVsayhkc3RzLCBucl9idWYpOw0KPiArDQo+ICsJaWYgKHNyY19wb29s KQ0KPiArCQlydGVfbWVtcG9vbF9mcmVlKHNyY19wb29sKTsNCj4gKwlpZiAoZHN0X3Bvb2wpDQo+ ICsJCXJ0ZV9tZW1wb29sX2ZyZWUoZHN0X3Bvb2wpOw0KPiArDQo+ICsJaWYgKGlzX2RtYSkgew0K PiArCQlmb3IgKGkgPSAwOyBpIDwgbmJfd29ya2VyczsgaSsrKSB7DQo+ICsJCQlwcmludGYoIlN0 b3BwaW5nIGRtYWRldiAlZFxuIiwgbGRtLT5kbWFfaWRzW2ldKTsNCj4gKwkJCXJ0ZV9kbWFfc3Rv cChsZG0tPmRtYV9pZHNbaV0pOw0KDQpbQW1pdF06IEJlbG93IHJ0ZV9kbWFfc3RvcCBwbGVhc2Ug Y2FsbCBydGVfZG1hX2Nsb3NlIGZvciBjbGVhbiBleGl0Lg0KDQo8c25pcD4NCg0KPiArI2VuZGlm IC8qIF9NQUlOX0hfICovDQo+IGRpZmYgLS1naXQgYS9hcHAvdGVzdC1kbWEtcGVyZi9tZXNvbi5i dWlsZCBiL2FwcC90ZXN0LWRtYS0NCj4gcGVyZi9tZXNvbi5idWlsZCBuZXcgZmlsZSBtb2RlIDEw MDY0NCBpbmRleCAwMDAwMDAwMDAwLi5iZDZjMjY0MDAyDQo+IC0tLSAvZGV2L251bGwNCj4gKysr IGIvYXBwL3Rlc3QtZG1hLXBlcmYvbWVzb24uYnVpbGQNCj4gQEAgLTAsMCArMSwxNyBAQA0KPiAr IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlICMgQ29weXJpZ2h0KGMpIDIw MTktMjAyMyBJbnRlbA0KPiArQ29ycG9yYXRpb24NCj4gKw0KPiArIyBtZXNvbiBmaWxlLCBmb3Ig YnVpbGRpbmcgdGhpcyBhcHAgYXMgcGFydCBvZiBhIG1haW4gRFBESyBidWlsZC4NCj4gKw0KPiAr aWYgaXNfd2luZG93cw0KPiArICAgIGJ1aWxkID0gZmFsc2UNCj4gKyAgICByZWFzb24gPSAnbm90 IHN1cHBvcnRlZCBvbiBXaW5kb3dzJw0KPiArICAgIHN1YmRpcl9kb25lKCkNCj4gK2VuZGlmDQo+ ICsNCj4gK2RlcHMgKz0gWydkbWFkZXYnLCAnbWJ1ZicsICdjZmdmaWxlJ10NCj4gKw0KPiArc291 cmNlcyA9IGZpbGVzKA0KPiArICAgICAgICAnbWFpbi5jJywNCj4gKyAgICAgICAgJ2JlbmNobWFy ay5jJywNCj4gKykNCj4gLS0NCj4gMi40MC4xDQoNCg==