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 705EE42CBA; Wed, 14 Jun 2023 22:24:50 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 45E9D40E0F; Wed, 14 Jun 2023 22:24:50 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 0A16840DDB for ; Wed, 14 Jun 2023 22:24:48 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35EJuwAd004345; Wed, 14 Jun 2023 13:24:48 -0700 Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2103.outbound.protection.outlook.com [104.47.55.103]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3r7ky1r520-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 14 Jun 2023 13:24:48 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AB55XfJ3DKsBnXzsFFb07J/+jrdZqGi+ruygCbFHRQxcmhRrjj8y2hzzmMt8CCSgVNb4vboy8S/GJU3fEwzYkmJnZUPIMLCRPgANCRLBesy39wFxRrEWHMPXJtqqD48jqO4EVdzOHTJydclt1jMKPkh0wJ0bt03gLEmAnR0dI+nZrYD9B2W3Bw1Pr7BJj4wz9LmH5DLohNXBU9+9r9vNXSU7cifuZidqlZ4Xk0cAHimq2KFpgriL42VsevffC8OOup005m9wLb/fyrO46R8EOH63/npoWT+OihfPVulKhU5b0IOYUP3306JH2a+25MTWw6/RaMTlG75pG7JaPvEJjA== 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=deFzxQk/a7vN7Cnqd+GfVBb8XDFub0+er3JxA3aaNJM=; b=SoDS3U6kDKz2x/E1rhj9stbEIwPpvjVTaeH1paqL2P/y8i4ud6V2npVtZQlTfYgTDCcl4lJjtqLjrbCQFazproiei205xpCQwEJNwJQQDhlS/pv/IBSnPP513mlBSqXPj4JLxgvv9cxLgF/xJa3bY3y3+TVBiA8kUfCDTgK4DvYbksIdGyT/zZGDGPptWUiGNuRvKvmkfkxghXv/OSJQHrJrOQamTH+XqfoDii69au6MMXIswM+pxccdDn/u/4AyZm5DdbAPA/EpCYl7g3u+TaysFCqouorFi1PjA3GM+P8GYR6gpFl+AZg8+sf0/OejVYbrg1PwINzPiA1K/hPD1Q== 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=deFzxQk/a7vN7Cnqd+GfVBb8XDFub0+er3JxA3aaNJM=; b=AvVzIxU7QF2tRKw0Mw9wnC7+HIeJXYeWLD2kzHQTHXXQeGVDJKJjTQeW9Rl5TqZPvFPfUOwfgFYl2L9Lv0GPYrBmU8+XfSZ1iup/5TOQzrwfDLDpktUq6M+pjfk57aDWuG0PHNgVtyyY/KBchytddgj1QpS43V6t55GFM5tRXWc= Received: from PH0PR18MB4086.namprd18.prod.outlook.com (2603:10b6:510:3::9) by PH0PR18MB3862.namprd18.prod.outlook.com (2603:10b6:510:22::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.37; Wed, 14 Jun 2023 20:24:42 +0000 Received: from PH0PR18MB4086.namprd18.prod.outlook.com ([fe80::600f:e50f:8159:d89]) by PH0PR18MB4086.namprd18.prod.outlook.com ([fe80::600f:e50f:8159:d89%6]) with mapi id 15.20.6477.037; Wed, 14 Jun 2023 20:24:42 +0000 From: Pavan Nikhilesh Bhagavatula To: Patrick Robb , Jerin Jacob CC: Jerin Jacob Kollanukkaran , Shijith Thotton , Nithin Kumar Dabilpuram , Kiran Kumar Kokkilagadda , Sunil Kumar Kori , Satha Koteswara Rao Kottidi , "dev@dpdk.org" Subject: RE: [EXT] Re: [PATCH v2 3/3] event/cnxk: use WFE in Tx fc wait Thread-Topic: [EXT] Re: [PATCH v2 3/3] event/cnxk: use WFE in Tx fc wait Thread-Index: AQHZndkUKz4sudSuz0yt5RTiKria36+KG3wAgACEcgCAACAN4A== Date: Wed, 14 Jun 2023 20:24:42 +0000 Message-ID: References: <20230516143752.4941-1-pbhagavatula@marvell.com> <20230613092548.1315-1-pbhagavatula@marvell.com> <20230613092548.1315-3-pbhagavatula@marvell.com> In-Reply-To: Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-ref: =?utf-8?B?UEcxbGRHRStQR0YwSUc1dFBTSmliMlI1TG5SNGRDSWdjRDBpWXpwY2RYTmxj?= =?utf-8?B?bk5jY0dKb1lXZGhkbUYwZFd4aFhHRndjR1JoZEdGY2NtOWhiV2x1WjF3d09X?= =?utf-8?B?UTRORGxpTmkwek1tUXpMVFJoTkRBdE9EVmxaUzAyWWpnMFltRXlPV1V6TldK?= =?utf-8?B?Y2JYTm5jMXh0YzJjdE4ySTVORFpoTnpNdE1HRm1NUzB4TVdWbExXSTJZMlV0?= =?utf-8?B?TkdNd016Um1OV1poWVRNeVhHRnRaUzEwWlhOMFhEZGlPVFEyWVRjMUxUQmha?= =?utf-8?B?akV0TVRGbFpTMWlObU5sTFRSak1ETTBaalZtWVdFek1tSnZaSGt1ZEhoMElp?= =?utf-8?B?QnplajBpTVRZMU5qWWlJSFE5SWpFek16TXhNalEzT0RjNE1qSTNNRGcyT0NJ?= =?utf-8?B?Z2FEMGlUbTFDTUdvMEwwZEpabFJSV210R2RXUklUSGd2U0VSTk1YTmpQU0ln?= =?utf-8?B?YVdROUlpSWdZbXc5SWpBaUlHSnZQU0l4SWlCamFUMGlZMEZCUVVGRlVraFZN?= =?utf-8?B?VkpUVWxWR1RrTm5WVUZCUzBsUFFVRkRWWEptUlRrdmNEZGFRVlo2ZG1oc1lU?= =?utf-8?B?TXlkMWRMV0U4clIxWnlabUpDV1c5WVFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVoQlFVRkJRWGxFWjBGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVVZCUVZGRlFrRkJRVUZTTDNoWWFHZERRVUZSUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGS05FRkJRVUpvUVVkUlFWcEJRbmxCUjFWQlkzZENla0ZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZGUVVGQlFVRkJRVUZCUVVGQlFVRkJSVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZuUVVGQlFVRkJibWRCUVVGSFRVRmtVVUo2UVVoUlFXSjNRblJC?= =?utf-8?B?UmpoQlkwRkNiRUZJU1VGamQwSjJRVWMwUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlowRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVZGQlFVRkJRVUZCUVVGRFFVRkJRVUZCUTJWQlFVRkJXWGRDTVVGSVRV?= =?utf-8?B?RmtRVUoyUVVjd1FWaDNRbmRCUjJkQlluZENkVUZIVlVGaVowSXhRVWN3UVZs?= =?utf-8?B?blFteEJTRWxCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVSkJRVUZCUVVGQlFVRkJTVUZCUVVGQlFVbzBRVUZC?= =?utf-8?B?UW1wQlNGVkJZM2RDTUVGSE9FRmlVVUptUVVoTlFXTjNRblZCUmpoQldrRkNh?= =?utf-8?B?RUZJVFVGaFFVSm1RVWhaUVUxQlFYbEJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-refone: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZGUVVGQlFVRkJRVUZCUVdkQlFVRkJRVUZ1?= =?utf-8?B?WjBGQlFVZE5RV1JSUW5wQlNGRkJZbmRDZEVGR09FRmpkMEo2UVVjMFFWaDNR?= =?utf-8?B?bkpCUjFWQlpWRkNNMEZIT0VGalowSnJRVWhOUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlVVRkJRVUZCUVVGQlFV?= =?utf-8?B?TkJRVUZCUVVGRFpVRkJRVUZaZDBJeFFVaE5RV1JCUW5aQlJ6QkJXSGRDZWtG?= =?utf-8?B?SVRVRmlaMEptUVVjMFFXSjNRbXRCUjFWQllrRkNjRUZITUVGaFVVSXdRVWRW?= =?utf-8?B?UVdOblFtWkJTRmxCVFVGQmVVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRa0ZC?= =?utf-8?B?UVVGQlFVRkJRVUZKUVVGQlFVRkJTalJCUVVGQ2FrRklWVUZqZDBJd1FVYzRR?= =?utf-8?B?V0pSUW1aQlNFMUJZM2RDZFVGR09FRmpkMEozUVVkRlFWbDNRbXhCUmpoQlpH?= =?utf-8?B?ZEJkMEZFU1VGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVWQlFVRkJRVUZCUVVGQlowRkJRVUZCUVc1blFVRkJSMUZCWWtG?= =?utf-8?B?Q2QwRkdPRUZqZDBKeVFVaHJRV05CUW14QlJqaEJXWGRDYjBGSFJVRmtRVUpt?= =?utf-8?B?UVVjd1FWcFJRbnBCU0UxQldWRkNia0ZIVlVGWWQwSXlRVVJCUVUxblFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRlJRVUZCUVVGQlFVRkJRMEZCUVVGQlFVTmxR?= =?utf-8?B?VUZCUVZwQlFuTkJTRUZCV0hkQ2VrRkhkMEZaVVVKcVFVZHpRVmgzUW1wQlIy?= =?utf-8?B?ZEJXVkZDTUVGR09FRmlVVUpzUVVoTlFXTjNRbWhCUjJOQldsRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-reftwo: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZDUVVGQlFVRkJRVUZCUVVsQlFVRkJR?= =?utf-8?B?VUZLTkVGQlFVSnJRVWQzUVdOQlFtWkJTRkZCV2xGQ2FFRkhNRUZqZDBKbVFV?= =?utf-8?B?YzRRV0puUW14QlIxRkJZMmRDY0VGSVdVRmFVVUptUVVkWlFXRlJRbk5CUjFW?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlJVRkJRVUZCUVVG?= =?utf-8?B?QlFVRm5RVUZCUVVGQmJtZEJRVUZIVlVGaVVVSm9RVWRyUVdKQlFtWkJSMFZC?= =?utf-8?B?V2tGQ2EwRklTVUZhVVVKNlFVaE5RVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZFWjBGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VkZCUVVGQlFVRkJRVUZEUVVGQlFVRkJRMlZCUVVGQllsRkNhRUZJU1VGa1ow?= =?utf-8?B?SnNRVWQzUVZoM1FuZEJTRWxCWW5kQ2NVRkhWVUZaZDBJd1FVWTRRV0puUW1o?= =?utf-8?B?QlJ6QkJXbEZDZWtGR09FRlpkMEoyUVVjMFFWcG5RbkJCUjFGQldsRkNkVUZJ?= =?utf-8?B?VVVGaFVVSm9RVWQzUVZoM1FtaEJSM2RCWW5kQ2RVRkhWVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVKQlFVRkJRVUZCUVVGQlNVRkJRVUZCUVVvMFFVRkJRblJC?= =?utf-8?B?UjBWQlkyZENNa0ZIVlVGaVFVSm1RVWhCUVdOblFuWkJSMjlCV2xGQ2FrRklV?= =?utf-8?B?VUZZZDBKMVFVZEZRV0pSUW14QlNFMUJXSGRDZVVGSFZVRmpkMEl3UVVoSlFX?= =?utf-8?B?RlJRbXBCU0ZGQldsRkNhMEZHT0VGWlVVSnpRVWM0UVdKblFteEJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkZRVUZCUVVGQlFVRkJRV2RCUVVGQlFV?= =?utf-8?B?RnVaMEZCUVVjd1FWbFJRbmxCU0ZsQldsRkNjMEZHT0VGalFVSjVRVWM0UVdG?= =?utf-8?B?blFteEJSMDFCWkVGQ1prRkhORUZaVVVKMFFVZFZRV04zUW1aQlNFbEJXbEZD?= =?utf-8?B?ZWtGSVVVRmpaMEp3UVVkTlFXUkJRbXhCUjFGQldIZENiMEZIVlVGbFFVSnFR?= =?utf-8?B?VWM0UVZwQlFteEJTRTFCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCVVVGQlFVRkJRVUZC?= =?utf-8?B?UVVOQlFVRkJRVUZEWlVGQlFVRmlVVUpvUVVoSlFXUm5RbXhCUjNkQllrRkNa?= =?utf-8?B?a0ZIUlVGalowSjBRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?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?QlFVRkJRVUZCUVVGQlFVRkNRVUZCUVVGQlFVRkJRVUZCUVVGQlFrRkJRVUZC?= =?utf-8?B?UVVGQlFVRkpRVUZCUVVGQlNqUkJRVUZDZEVGSFJVRmpaMEl5UVVkVlFXSkJR?= =?utf-8?B?bk5CUmpoQlduZENka0ZIT0VGYWQwSnpRVWRWUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVVZCUVVGQlFVRkJRVUZCWjBGQlFVRkJRVzVuUVVGQlJ6QkJXVkZDZVVG?= =?utf-8?B?SVdVRmFVVUp6UVVkM1FWaDNRbmRCU0VsQlluZENjVUZIVlVGWmQwSXdRVVk0?= =?utf-8?B?UVdKblFtaEJSekJCV2xGQ2VrRkdPRUZaZDBKMlFVYzBRVnBuUW5CQlIxRkJX?= =?utf-8?B?bEZDZFVGSVVVRmhVVUpvUVVkM1FWaDNRblJCUjBWQlkyZENNa0ZIVlVGaVFV?= =?utf-8?B?SnpRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGUlFVRkJRVUZCUVVGQlEwRkJRVUZCUVVObFFVRkJR?= =?utf-8?B?V0pSUW1oQlNFbEJaR2RDYkVGSGQwRmlRVUptUVVoQlFXTm5RblpCUjI5Qlds?= =?utf-8?B?RkNha0ZJVVVGWWQwSjFRVWRGUVdKUlFteEJTRTFCV0hkQ2FrRkhPRUZpWjBK?= =?utf-8?B?dFFVZHJRVnBCUW14QlJ6UkJaRUZDY0VGSFJVRmlRVUptUVVjd1FWbFJRbmxC?= =?utf-8?B?U0ZsQldsRkNjMEZIZDBGWWQwSjJRVWhKUVZoM1FtaEJTRWxCWWxGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkNRVUZCUVVGQlFVRkJRVWxCUVVG?= =?utf-8?B?QlFVRktORUZCUVVKMFFVZEZRV05uUWpKQlIxVkJZa0ZDYzBGR09FRmpRVUo1?= =?utf-8?B?UVVjNFFXRm5RbXhCUjAxQlpFRkNaa0ZITkVGWlVVSjBRVWRWUVdOM1FtWkJS?= =?utf-8?B?MDFCWW5kQ2RVRkhXVUZoVVVKclFVZFZRV0puUWpCQlIydEJXVkZDYzBGR09F?= =?utf-8?B?RmlVVUpvUVVoSlFXUm5RbXhCUjNkQllrRkNaa0ZIT0VGalowSm1RVWRqUVdK?= =?utf-8?B?M1FuWkJSMk5CWWtGQ2JFRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUlVGQlFVRkJR?= =?utf-8?B?VUZCUVVGblFVRkJRVUZCYm1kQlFVRkhNRUZaVVVKNVFVaFpRVnBSUW5OQlIz?= =?utf-8?B?ZEJXSGRDZDBGSVNVRmlkMEp4UVVkVlFWbDNRakJCUmpoQlltZENhRUZITUVG?= =?utf-8?B?YVVVSjZRVVk0UVdOblFteEJTRTFCWkVGQ2VVRkhhMEZaZDBJd1FVZFZRVnBC?= =?utf-8?B?UW1aQlJ6QkJXVkZDZVVGSVdVRmFVVUp6UVVkM1FVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-reffour: QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFDQUFBQUFBQ2VBQUFBYlFCaEFISUFkZ0JsQUd3QWJBQmZBSEFBY2dCdkFHb0FaUUJqQUhRQVh3QnVBR0VBYlFCbEFITUFYd0J5QUdVQWN3QjBBSElBYVFCakFIUUFaUUJrQUY4QWJRQmhBSElBZGdCbEFHd0FiQUJmQUc4QWNnQmZBR0VBY2dCdEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBSUFBQUFBQUo0QUFBQnRBR0VBY2dCMkFHVUFiQUJzQUY4QWRBQmxBSElBYlFCcEFHNEFkUUJ6QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQWdBQUFBQUFuZ0FBQUcwQVlRQnlBSFlBWlFCc0FHd0FYd0IzQUc4QWNnQmtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFBQUFBPSIvPjwvbWV0YT4= x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR18MB4086:EE_|PH0PR18MB3862:EE_ x-ms-office365-filtering-correlation-id: 22973718-c43e-4f36-a3f0-08db6d156316 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: f9yMWO7eID542M1z64wI5ctTKT+owwxb6xwUPPcnjN4bd7HGtvjMvJaHmIbfORx4UMuMWzm5icUNkrMO3Qr/HNfe9k+qulyA3K3leI8SuOQdcjxcMNMY24Cr7zOcqyyojGqAuK5pu5Fxy6lboOvwhMIVErGk23b7dgAV6Mz9SgCcfgzb1w4ZA1BwAVY0VzfOdAVy12wLstvlRHDiTzd7FzSgoQPA47vBy5xk+Pi/O3kqtvOlKAFAyxBTxw//z69E6A+LClYnlzrItmjA8QxPY8MCeJ4e9xeQd2odXlWF1LzBvJYsZPwX/Di6hfDa6IZFEh/XKG7oPDJUMMGT3q/nqJEVBJ/oISd/o7zwr8kBNqUUnHEQ0KJn+Un5jSccu43DwKzSkIYLZK0DYqQJgJGEY89Hxp3/CUWYEh7jqhQIgqhTkITJHAbZuLGokaS/teqSY8uywvkrg1L1SWkJz3v3uV90PgkCFOzS+6xsXTFcQiSKaoz2rM0giTakGX8KOHYc+y+cnWCT+rvyuqaxvrI8sOMy+W+eV1CLe18A4bUqR+PcLHNwVbSphOB850279+12TM9AOOcSNJIgQrvU+qV6Hc2790oIBKqR3Mt0/ZAYO6n9dQ80T3yaeV+cpU3Oq9eR7x++nUo1RIQm+wf3Rbiarg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR18MB4086.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(376002)(396003)(136003)(39860400002)(346002)(366004)(451199021)(33656002)(2906002)(30864003)(86362001)(38070700005)(52536014)(55016003)(966005)(7696005)(83380400001)(186003)(26005)(53546011)(9686003)(6506007)(5660300002)(122000001)(478600001)(71200400001)(110136005)(54906003)(66946007)(66556008)(66476007)(64756008)(66446008)(76116006)(4326008)(316002)(38100700002)(8676002)(41300700001)(8936002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SzlON2tXaE1iM3dmdnBuVjd3K1V6MDNUQ2Y0VFVncjA0V0pmRys5cEFiVEdt?= =?utf-8?B?aXhkbzBsSld5S3k4NTBtbXV2RE5UbzVpbVBkcFVpWGc4REVsZ0t2eUtwaUdj?= =?utf-8?B?elNaS1kwamZEMDFEclJOWFY1U0RwVmpraFRKcWxLaTJtZ1FSSGR6ZUtGSk9B?= =?utf-8?B?MVl6bmY5WkVndko4QnFpWWhScGFNQU5FN1RYSHRyeXdYNmlrN2xIMk5vZ3pL?= =?utf-8?B?djZVdnNiQVZQVVdGa3N4anZla1lubXo5SFJVanR6bG1VdDdQZk9kTlowUHND?= =?utf-8?B?SEVIbmdkdWpSd3ZTKzZlVWVyNzJPRWxnS2JFWm9qeVJmMXJsZi91NXJ2MTA5?= =?utf-8?B?ai9mVENTYWhKcU41VVdZWDNaV3cyYnFrSStXQWdTWHZQMWhXTlNMYXoxN3lh?= =?utf-8?B?UmpXVWliK3VTczBIZUZnMXRnN1BpM0dxenhWY1ZMbUVQY1FQVU15OFdYazVY?= =?utf-8?B?OFg2TWw4YTd0b1Frc2xBMk1XZW5kT0pCNE0wQ0wrNUw0eTdtTmxzRXZtSGNO?= =?utf-8?B?a2dhOFpmb3phV0UyYm1zb3BOdldsYStmMzc0elFuSFN2cVlySzFsS0JBYys5?= =?utf-8?B?elEvT0dHWFRqUWlPLzRlaUJVMVlWSldoNE5xQ3dwc3hsZ1Rwek1idWpoOUs1?= =?utf-8?B?R0JXbGJ5VVk4SUx6bFF3N1F1bkFUeGFadG9uZ3RZSGpYRk0vRjJjZTFoaE1I?= =?utf-8?B?VmNrNjZjT1gyUXdsVzZnOGp2ODkveDlaR1NtWkppdUpNSkhkQ3dhbFZvTkJZ?= =?utf-8?B?NWg5eVprVXRNYkNHcFNuSjEyMzlTVFkwSnJPdEFRdmlhcEhUUEU5Y1haZUJn?= =?utf-8?B?cUJicFozWkVsQnZ4NkNFMi9zbEZyeDQwU2RDcFM5MDZCTk5RbjNZd213b3NH?= =?utf-8?B?VFpqanFVbEdwN0E0RE94MWVqR0x1azhuZnc1d28rcGlMWVVXeXY3WTJpU1Ra?= =?utf-8?B?bWNFbUhqWmJXTHNKc3NvaWhVZ1BVejJQNm1sMTlodldGc2Y0S2dRV29GWjBs?= =?utf-8?B?dlVYR0oreW1pSDVKTFJLT1JSNW9GbTY2SmxFWE41S1NUYUxJSURFd0t5aUJS?= =?utf-8?B?aTlRRHdyTk1MdWxMN2gyZ3lENFdRVzkwTmZna1E0V21HKzV3SldiTUNEQ094?= =?utf-8?B?aEt4WVh3VUFiNzRuT3ZWUDRZNHRFbFhkQVMzWDZFRk45bXE0T3JsUVgxSHcw?= =?utf-8?B?dTY2V2tsdUdTcHZHblRYQzJOWmNQQ0pKSHdiOFc3U3F2TUNzZWZXZncyWHhw?= =?utf-8?B?MTlRNFlyRWY3Nzd3YUNhWnVpNzY1S1pPZ2RZYWlLSEw0bDRCZkpVRjQxM3BR?= =?utf-8?B?TDVoalBha3JBQUpSbzRDcGs5N3N0dGZDbTFvQ0cyVk1xbDRsTWhYRk5ybHk5?= =?utf-8?B?QkRoTmNPOWxtTGtUNzZFcXBKaVR6T2czd1BKYU4yS2MvUTZ2c2ZuV1pkN2c2?= =?utf-8?B?SnZMSVpwQUN2N0ZBMjdiY3B2SEpRRUt5aU5aVnZSOHNBWld1TGR5b1k2ZmR5?= =?utf-8?B?UUZxMHNlNWdPZ1JFYkhYc0pFWFd3aGpzdU9MOFBORUsrT0YyWUJjUGFTYjZO?= =?utf-8?B?aWdzQ1N3c1VsRmIrRmRuTzBWK1lzcHVYaGZjZktOOHB6SzB0dS9qUUNkV0NB?= =?utf-8?B?aXF3WUVRWlVkemlQWlB1YUt5NGJNdUwxRXdWQW5Wb2hac29uSkNvQnRGaGNp?= =?utf-8?B?WXhpS1pDcDVwcmwxOW5jUndqL2ZqNE9ieiszRVFBSElvUGNTeWNhdFpCM2Fv?= =?utf-8?B?RGg2NnpuSnhleEtmelU1YWRJOFNKeHZ1WGlEMDl0MEFNTXhMTHNiUTdLcEhx?= =?utf-8?B?QjVNUEVkSUE1NU05dHl0VHhYTGpFOG5SbEVQcDFubTg0RS9RN016UHpYOUdW?= =?utf-8?B?RjVydi9tMWZ1YjNEN3hPYjNXa1pVVG5jNXptS0tHeUpnSjhvOGI4Y21zRlJk?= =?utf-8?B?V1VNTG4rTDNoOGlRNHpRaE0wNTZoNE13RUVMV2d0aFZ4WC96VkRSZUFPbnRj?= =?utf-8?B?c0tFSVg0amNmNGNxcGVpN3hZZjV1RzM0MnlxUDcxczRkUmRoUVUrajRqdXVk?= =?utf-8?B?eXg1YjlNTWduU2M1SmhNZzhDY0JjTnptZE1MckowWGtCTGw0OGpXRGxnT3hr?= =?utf-8?Q?c/2Ti/Lj2/CwpA5XHFfRtVRV/?= 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: PH0PR18MB4086.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 22973718-c43e-4f36-a3f0-08db6d156316 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jun 2023 20:24:42.6677 (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: AHKjVYg+OeMnrOryQKkbFwW5wHUoQncsVhvvFGFe5lsAHlh7co6pce1wR17miCUwj2XinnJ0OF+sBkE5/0/S73IxiteLyPgRuudUtDz1Szw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR18MB3862 X-Proofpoint-GUID: kAwJo6pEDMhYEzA4MdOuybyANLBvRvH- X-Proofpoint-ORIG-GUID: kAwJo6pEDMhYEzA4MdOuybyANLBvRvH- 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-14_14,2023-06-14_02,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 VGhhbmtzIFBhdHJpY2ssIA0KDQpJIGhhdmUgc2VudCBvdXQgYSBmaXguDQpodHRwczovL21haWxz LmRwZGsub3JnL2FyY2hpdmVzL2Rldi8yMDIzLUp1bmUvMjcxMjA5Lmh0bWwNCg0KUGF2YW4uIA0K DQpGcm9tOiBQYXRyaWNrIFJvYmIgPHByb2JiQGlvbC51bmguZWR1PiANClNlbnQ6IFdlZG5lc2Rh eSwgSnVuZSAxNCwgMjAyMyAxMTo1NyBQTQ0KVG86IEplcmluIEphY29iIDxqZXJpbmphY29ia0Bn bWFpbC5jb20+DQpDYzogUGF2YW4gTmlraGlsZXNoIEJoYWdhdmF0dWxhIDxwYmhhZ2F2YXR1bGFA bWFydmVsbC5jb20+OyBKZXJpbiBKYWNvYiBLb2xsYW51a2thcmFuIDxqZXJpbmpAbWFydmVsbC5j b20+OyBTaGlqaXRoIFRob3R0b24gPHN0aG90dG9uQG1hcnZlbGwuY29tPjsgTml0aGluIEt1bWFy IERhYmlscHVyYW0gPG5kYWJpbHB1cmFtQG1hcnZlbGwuY29tPjsgS2lyYW4gS3VtYXIgS29ra2ls YWdhZGRhIDxraXJhbmt1bWFya0BtYXJ2ZWxsLmNvbT47IFN1bmlsIEt1bWFyIEtvcmkgPHNrb3Jp QG1hcnZlbGwuY29tPjsgU2F0aGEgS290ZXN3YXJhIFJhbyBLb3R0aWRpIDxza290ZXNod2FyQG1h cnZlbGwuY29tPjsgZGV2QGRwZGsub3JnDQpTdWJqZWN0OiBbRVhUXSBSZTogW1BBVENIIHYyIDMv M10gZXZlbnQvY254azogdXNlIFdGRSBpbiBUeCBmYyB3YWl0DQoNCkV4dGVybmFsIEVtYWlsIA0K X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KSGVsbG8gUGF2YW4gYW5k IEplcmluLA0KDQpUaGUgQ29tbXVuaXR5IExhYidzIENJIHRlc3RpbmcgZmFpbGVkIHRoaXMgcGF0 Y2hzZXJpZXMgb24gY2xhbmcgY29tcGlsZSBvbiBBUk0gc3lzdGVtcy4gVGhhdCB3YXNuJ3QgcHJv cGVybHkgcmVwb3J0ZWQgdG8gUGF0Y2h3b3JrIGR1ZSB0byBpc3N1ZXMgd2l0aCBvdXIgcmVwb3J0 aW5nIHByb2Nlc3MsIHdoaWNowqB3ZSBhcmUgcmVzb2x2aW5nIGN1cnJlbnRseS4gVGhpcyB1cGRh dGVkIHJlcG9ydCBzaG93IHRoZSBmYWlsZWQgY29tcGlsZS4gQXBvbG9naWVzIGZvciB0aGUgaW5j b21wbGV0ZSBpbml0aWFsIHJlcG9ydC7CoA0KDQpodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2lu dC5jb20vdjIvdXJsP3U9aHR0cC0zQV9fbWFpbHMuZHBkay5vcmdfYXJjaGl2ZXNfdGVzdC0yRHJl cG9ydF8yMDIzLTJESnVuZV80MTEzMDMuaHRtbCZkPUR3TUdhUSZjPW5LaldlYzJiNlIwbU95UGF6 N3h0ZlEmcj1FM1NnWU1qdEtDTVZzQi1mbXZnR1Yzby1nX2ZqTGhrNVB1cGk5aWpvaHBjJm09cVpU QU5XMm10QU9iS3J4REt6SGc1T2dKMnhudW9LLVJLbGNVYUxNaW9taGlMRkc1XzEzMVRTMHJWUnVq bFRJNSZzPVU3VzFjUldJbmVNaDM3SVNjekxmWnRUSzVhS0MtZnFveXRWV0hkNklnYXMmZT0NCg0K T24gV2VkLCBKdW4gMTQsIDIwMjMgYXQgNjozM+KAr0FNIEplcmluIEphY29iIDxtYWlsdG86amVy aW5qYWNvYmtAZ21haWwuY29tPiB3cm90ZToNCk9uIFR1ZSwgSnVuIDEzLCAyMDIzIGF0IDI6NTbi gK9QTSA8bWFpbHRvOnBiaGFnYXZhdHVsYUBtYXJ2ZWxsLmNvbT4gd3JvdGU6DQo+DQo+IEZyb206 IFBhdmFuIE5pa2hpbGVzaCA8bWFpbHRvOnBiaGFnYXZhdHVsYUBtYXJ2ZWxsLmNvbT4NCj4NCj4g VXNlIFdGRSBpcyBUeCBwYXRoIHdoZW4gd2FpdGluZyBmb3Igc3BhY2UgaW4gdGhlIFR4IHF1ZXVl Lg0KPiBEZXBlbmRpbmcgdXBvbiB0aGUgVHggcXVldWUgY29udGVudGlvbiBhbmQgc2l6ZSwgV0ZF IHdpbGwNCj4gcmVkdWNlIHRoZSBjYWNoZSBwcmVzc3VyZSBhbmQgcG93ZXIgY29uc3VtcHRpb24u DQo+IEluIG11bHRpLWNvcmUgc2NlbmFyaW9zIHdlIGhhdmUgb2JzZXJ2ZWQgdXAgdG8gOFcgcG93 ZXIgcmVkdWN0aW9uLg0KPg0KPiBTaWduZWQtb2ZmLWJ5OiBQYXZhbiBOaWtoaWxlc2ggPG1haWx0 bzpwYmhhZ2F2YXR1bGFAbWFydmVsbC5jb20+DQoNClNlcmllcyBBcHBsaWVkIHRvIGRwZGstbmV4 dC1uZXQtZXZlbnRkZXYvZm9yLW1haW4uIFRoYW5rcw0KDQo+IC0tLQ0KPsKgIGRyaXZlcnMvZXZl bnQvY254ay9jbjEwa190eF93b3JrZXIuaCB8wqAgMTggKysrKw0KPsKgIGRyaXZlcnMvbmV0L2Nu eGsvY24xMGtfdHguaMKgIMKgIMKgIMKgIMKgIHwgMTUyICsrKysrKysrKysrKysrKysrKysrKysr LS0tLQ0KPsKgIDIgZmlsZXMgY2hhbmdlZCwgMTQ3IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9u cygtKQ0KPg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ldmVudC9jbnhrL2NuMTBrX3R4X3dvcmtl ci5oIGIvZHJpdmVycy9ldmVudC9jbnhrL2NuMTBrX3R4X3dvcmtlci5oDQo+IGluZGV4IGI2Yzli YjFkMjYuLmRlYTZjZGNkZTIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZXZlbnQvY254ay9jbjEw a190eF93b3JrZXIuaA0KPiArKysgYi9kcml2ZXJzL2V2ZW50L2NueGsvY24xMGtfdHhfd29ya2Vy LmgNCj4gQEAgLTI0LDkgKzI0LDI3IEBAIGNuMTBrX3Nzb19od3NfeHRyYWN0X21ldGEoc3RydWN0 IHJ0ZV9tYnVmICptLCBjb25zdCB1aW50NjRfdCAqdHhxX2RhdGEpDQo+wqAgc3RhdGljIF9fcnRl X2Fsd2F5c19pbmxpbmUgdm9pZA0KPsKgIGNuMTBrX3Nzb190eHFfZmNfd2FpdChjb25zdCBzdHJ1 Y3QgY24xMGtfZXRoX3R4cSAqdHhxKQ0KPsKgIHsNCj4gKyNpZmRlZiBSVEVfQVJDSF9BUk02NA0K PiArwqAgwqAgwqAgwqB1aW50NjRfdCBzcGFjZTsNCj4gKw0KPiArwqAgwqAgwqAgwqBhc20gdm9s YXRpbGUoUExUX0NQVV9GRUFUVVJFX1BSRUFNQkxFDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCAiwqAgwqAgwqAgwqAgwqAgbGR4ciAlW3NwYWNlXSwgWyVbYWRkcl1dwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgXG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAiwqAg wqAgwqAgwqAgwqAgY21wICVbYWRqXSwgJVtzcGFjZV3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCBcbiINCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICLCoCDCoCDCoCDCoCDC oCBiLmhpIC5MZG5lJT3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBc biINCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICLCoCDCoCDCoCDCoCDCoCBzZXZs wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgXG4i DQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAiLkxydHklPTrCoCB3ZmXCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFxuIg0KPiAr wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIGxkeHIgJVtzcGFj ZV0sIFslW2FkZHJdXcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFxuIg0KPiArwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIGNtcCAlW2Fkal0sICVbc3BhY2VdwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgXG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCAiwqAgwqAgwqAgwqAgwqAgaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29t L3YyL3VybD91PWh0dHAtM0FfX2IubHMmZD1Ed01HYVEmYz1uS2pXZWMyYjZSMG1PeVBhejd4dGZR JnI9RTNTZ1lNanRLQ01Wc0ItZm12Z0dWM28tZ19makxoazVQdXBpOWlqb2hwYyZtPXFaVEFOVzJt dEFPYktyeERLekhnNU9nSjJ4bnVvSy1SS2xjVWFMTWlvbWhpTEZHNV8xMzFUUzByVlJ1amxUSTUm cz04QUhOZW43YnFtNm9QMmQ4SURFLWxrWldENV9fM1UyZUJmRHBNTnRISFVvJmU9IC5McnR5JT3C oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcbiINCj4gK8KgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgICIuTGRuZSU9OsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFxuIg0KPiArwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgOiBbc3BhY2VdICI9JnIiKHNwYWNlKQ0KPiArwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgOiBbYWRqXSAiciIodHhxLT5uYl9zcWJfYnVmc19hZGopLCBbYWRk cl0gInIiKHR4cS0+ZmNfbWVtKQ0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgOiAi bWVtb3J5Iik7DQo+ICsjZWxzZQ0KPsKgIMKgIMKgIMKgIMKgd2hpbGUgKCh1aW50NjRfdCl0eHEt Pm5iX3NxYl9idWZzX2FkaiA8PQ0KPsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIF9fYXRvbWljX2xv YWRfbih0eHEtPmZjX21lbSwgX19BVE9NSUNfUkVMQVhFRCkpDQo+wqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqA7DQo+ICsjZW5kaWYNCj7CoCB9DQo+DQo+wqAgc3RhdGljIF9fcnRlX2Fsd2F5c19p bmxpbmUgaW50MzJfdA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY254ay9jbjEwa190eC5o IGIvZHJpdmVycy9uZXQvY254ay9jbjEwa190eC5oDQo+IGluZGV4IGEzNjVjYmUwZWUuLmQwZTgz NTBjZTIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2NueGsvY24xMGtfdHguaA0KPiArKysg Yi9kcml2ZXJzL25ldC9jbnhrL2NuMTBrX3R4LmgNCj4gQEAgLTEwMiwyNyArMTAyLDcyIEBAIGNu MTBrX25peF90eF9tYnVmX3ZhbGlkYXRlKHN0cnVjdCBydGVfbWJ1ZiAqbSwgY29uc3QgdWludDMy X3QgZmxhZ3MpDQo+wqAgfQ0KPg0KPsKgIHN0YXRpYyBfX3BsdF9hbHdheXNfaW5saW5lIHZvaWQN Cj4gLWNuMTBrX25peF92d3FlX3dhaXRfZmMoc3RydWN0IGNuMTBrX2V0aF90eHEgKnR4cSwgaW50 NjRfdCByZXEpDQo+ICtjbjEwa19uaXhfdndxZV93YWl0X2ZjKHN0cnVjdCBjbjEwa19ldGhfdHhx ICp0eHEsIHVpbnQxNl90IHJlcSkNCj7CoCB7DQo+wqAgwqAgwqAgwqAgwqBpbnQ2NF90IGNhY2hl ZCwgcmVmaWxsOw0KPiArwqAgwqAgwqAgwqBpbnQ2NF90IHBrdHM7DQo+DQo+wqAgcmV0cnk6DQo+ ICsjaWZkZWYgUlRFX0FSQ0hfQVJNNjQNCj4gKw0KPiArwqAgwqAgwqAgwqBhc20gdm9sYXRpbGUo UExUX0NQVV9GRUFUVVJFX1BSRUFNQkxFDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCAiwqAgwqAgwqAgwqAgwqAgbGR4ciAlW3BrdHNdLCBbJVthZGRyXV3CoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoFxuIg0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgIsKgIMKgIMKg IMKgIMKgIHRieiAlW3BrdHNdLCA2MywgLkxkbmUlPcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFxu Ig0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIHNldmzC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcbiIN Cj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICIuTHJ0eSU9OsKgIHdmZcKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXG4iDQo+ICvC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAiwqAgwqAgwqAgwqAgwqAgbGR4ciAlW3BrdHNd LCBbJVthZGRyXV3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFxuIg0KPiArwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIHRibnogJVtwa3RzXSwgNjMsIC5McnR5 JT3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFxuIg0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgIi5MZG5lJT06wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgXG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCA6IFtwa3RzXSAiPSZyIihwa3RzKQ0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg OiBbYWRkcl0gInIiKCZ0eHEtPmZjX2NhY2hlX3BrdHMpDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCA6ICJtZW1vcnkiKTsNCj4gKyNlbHNlDQo+ICvCoCDCoCDCoCDCoFJURV9TRVRf VVNFRChwa3RzKTsNCj7CoCDCoCDCoCDCoCDCoHdoaWxlIChfX2F0b21pY19sb2FkX24oJnR4cS0+ ZmNfY2FjaGVfcGt0cywgX19BVE9NSUNfUkVMQVhFRCkgPCAwKQ0KPsKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgOw0KPiArI2VuZGlmDQo+wqAgwqAgwqAgwqAgwqBjYWNoZWQgPSBfX2F0b21pY19m ZXRjaF9zdWIoJnR4cS0+ZmNfY2FjaGVfcGt0cywgcmVxLCBfX0FUT01JQ19BQ1FVSVJFKSAtIHJl cTsNCj7CoCDCoCDCoCDCoCDCoC8qIENoZWNrIGlmIHRoZXJlIGlzIGVub3VnaCBzcGFjZSwgZWxz ZSB1cGRhdGUgYW5kIHJldHJ5LiAqLw0KPiAtwqAgwqAgwqAgwqBpZiAoY2FjaGVkIDwgMCkgew0K PiAtwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAvKiBDaGVjayBpZiB3ZSBoYXZlIHNwYWNlIGVsc2Ug cmV0cnkuICovDQo+IC3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGRvIHsNCj4gLcKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgcmVmaWxsID0gdHhxLT5uYl9zcWJfYnVmc19hZGogLQ0K PiAtwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgX19hdG9t aWNfbG9hZF9uKHR4cS0+ZmNfbWVtLCBfX0FUT01JQ19SRUxBWEVEKTsNCj4gLcKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgcmVmaWxsID0gKHJlZmlsbCA8PCB0eHEtPnNxZXNfcGVy X3NxYl9sb2cyKSAtIHJlZmlsbDsNCj4gLcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfSB3aGlsZSAo cmVmaWxsIDw9IDApOw0KPiAtwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBfX2F0b21pY19jb21wYXJl X2V4Y2hhbmdlKCZ0eHEtPmZjX2NhY2hlX3BrdHMsICZjYWNoZWQsICZyZWZpbGwsDQo+IC3CoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oDAsIF9fQVRPTUlDX1JFTEVBU0UsDQo+IC3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoF9fQVRPTUlDX1JFTEFYRUQpOw0KPiArwqAg wqAgwqAgwqBpZiAoY2FjaGVkID49IDApDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHJldHVy bjsNCj4gKw0KPiArwqAgwqAgwqAgwqAvKiBDaGVjayBpZiB3ZSBoYXZlIHNwYWNlIGVsc2UgcmV0 cnkuICovDQo+ICsjaWZkZWYgUlRFX0FSQ0hfQVJNNjQNCj4gK8KgIMKgIMKgIMKgaW50NjRfdCB2 YWw7DQo+ICsNCj4gK8KgIMKgIMKgIMKgYXNtIHZvbGF0aWxlKFBMVF9DUFVfRkVBVFVSRV9QUkVB TUJMRQ0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIGxk eHIgJVt2YWxdLCBbJVthZGRyXV3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcbiINCj4gK8Kg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICLCoCDCoCDCoCDCoCDCoCBzdWIgJVt2YWxdLCAl W2Fkal0sICVbdmFsXcKgIMKgIMKgIMKgIMKgIMKgIMKgIFxuIg0KPiArwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIGxzbCAlW3JlZmlsbF0sICVbdmFsXSwgJVtz aGZ0XcKgIMKgIMKgIMKgIMKgIFxuIg0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg IsKgIMKgIMKgIMKgIMKgIHN1YiAlW3JlZmlsbF0sICVbcmVmaWxsXSwgJVt2YWxdwqAgwqAgwqAg wqAgXG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAiwqAgwqAgwqAgwqAgwqAg c3ViICVbcmVmaWxsXSwgJVtyZWZpbGxdLCAlW3N1Yl3CoCDCoCDCoCDCoCBcbiINCj4gK8KgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICLCoCDCoCDCoCDCoCDCoCBjbXAgJVtyZWZpbGxdLCAj MHgwwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBcbiINCj4gK8KgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgICLCoCDCoCDCoCDCoCDCoCBodHRwczovL3VybGRlZmVuc2UucHJvb2Zw b2ludC5jb20vdjIvdXJsP3U9aHR0cC0zQV9fYi5nZSZkPUR3TUdhUSZjPW5LaldlYzJiNlIwbU95 UGF6N3h0ZlEmcj1FM1NnWU1qdEtDTVZzQi1mbXZnR1Yzby1nX2ZqTGhrNVB1cGk5aWpvaHBjJm09 cVpUQU5XMm10QU9iS3J4REt6SGc1T2dKMnhudW9LLVJLbGNVYUxNaW9taGlMRkc1XzEzMVRTMHJW UnVqbFRJNSZzPXNiWkJ2cFRfSzJHTE5xVF84aDZRSGQtdUN3Ym1lRnlqZVR2UWVVRDA2eFUmZT0g LkxkbmUlPcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFxuIg0KPiAr wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIHNldmzCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcbiINCj4gK8Kg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICIuTHJ0eSU9OsKgIHdmZcKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXG4iDQo+ICvCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAiwqAgwqAgwqAgwqAgwqAgbGR4ciAlW3ZhbF0sIFslW2Fk ZHJdXcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFxuIg0KPiArwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIHN1YiAlW3ZhbF0sICVbYWRqXSwgJVt2YWxdwqAg wqAgwqAgwqAgwqAgwqAgwqAgXG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAi wqAgwqAgwqAgwqAgwqAgbHNsICVbcmVmaWxsXSwgJVt2YWxdLCAlW3NoZnRdwqAgwqAgwqAgwqAg wqAgXG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAiwqAgwqAgwqAgwqAgwqAg c3ViICVbcmVmaWxsXSwgJVtyZWZpbGxdLCAlW3ZhbF3CoCDCoCDCoCDCoCBcbiINCj4gK8KgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICLCoCDCoCDCoCDCoCDCoCBzdWIgJVtyZWZpbGxdLCAl W3JlZmlsbF0sICVbc3ViXcKgIMKgIMKgIMKgIFxuIg0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIGNtcCAlW3JlZmlsbF0sICMweDDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoFxuIg0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg IsKgIMKgIMKgIMKgIMKgIGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/ dT1odHRwLTNBX19iLmx0JmQ9RHdNR2FRJmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPUUzU2dZ TWp0S0NNVnNCLWZtdmdHVjNvLWdfZmpMaGs1UHVwaTlpam9ocGMmbT1xWlRBTlcybXRBT2JLcnhE S3pIZzVPZ0oyeG51b0stUktsY1VhTE1pb21oaUxGRzVfMTMxVFMwclZSdWpsVEk1JnM9MXdObHpR TUM3VmhrTk5scWV1NndJeE9YSGg3Wm10TFNYalZSM2MyTndWNCZlPSAuTHJ0eSU9wqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgXG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCAiLkxkbmUlPTrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcbiINCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIDogW3JlZmlsbF0gIj0mciIocmVmaWxsKSwgW3ZhbF0gIj0mciIgKHZhbCkNCj4g K8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDogW2FkZHJdICJyIih0eHEtPmZjX21lbSks IFthZGpdICJyIih0eHEtPm5iX3NxYl9idWZzX2FkaiksDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCBbc2hmdF0gInIiKHR4cS0+c3Flc19wZXJfc3FiX2xvZzIpLCBbc3ViXSAi ciIocmVxKQ0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgOiAibWVtb3J5Iik7DQo+ ICsjZWxzZQ0KPiArwqAgwqAgwqAgwqBkbyB7DQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHJl ZmlsbCA9ICh0eHEtPm5iX3NxYl9idWZzX2FkaiAtIF9fYXRvbWljX2xvYWRfbih0eHEtPmZjX21l bSwgX19BVE9NSUNfUkVMQVhFRCkpOw0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqByZWZpbGwg PSAocmVmaWxsIDw8IHR4cS0+c3Flc19wZXJfc3FiX2xvZzIpIC0gcmVmaWxsOw0KPiArwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqByZWZpbGwgLT0gcmVxOw0KPiArwqAgwqAgwqAgwqB9IHdoaWxlIChy ZWZpbGwgPCAwKTsNCj4gKyNlbmRpZg0KPiArwqAgwqAgwqAgwqBpZiAoIV9fYXRvbWljX2NvbXBh cmVfZXhjaGFuZ2UoJnR4cS0+ZmNfY2FjaGVfcGt0cywgJmNhY2hlZCwgJnJlZmlsbCwNCj4gK8Kg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgMCwgX19BVE9N SUNfUkVMRUFTRSwNCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgX19BVE9NSUNfUkVMQVhFRCkpDQo+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBn b3RvIHJldHJ5Ow0KPiAtwqAgwqAgwqAgwqB9DQo+wqAgfQ0KPg0KPsKgIC8qIEZ1bmN0aW9uIHRv IGRldGVybWluZSBubyBvZiB0eCBzdWJkZXNjIHJlcXVpcmVkIGluIGNhc2UgZXh0DQo+IEBAIC0y ODMsMTAgKzMyOCwyNyBAQCBzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2b2lkDQo+wqAgY24x MGtfbml4X3NlY19mY193YWl0X29uZShzdHJ1Y3QgY24xMGtfZXRoX3R4cSAqdHhxKQ0KPsKgIHsN Cj7CoCDCoCDCoCDCoCDCoHVpbnQ2NF90IG5iX2Rlc2MgPSB0eHEtPmNwdF9kZXNjOw0KPiAtwqAg wqAgwqAgwqB1aW50NjRfdCAqZmMgPSB0eHEtPmNwdF9mYzsNCj4gLQ0KPiAtwqAgwqAgwqAgwqB3 aGlsZSAobmJfZGVzYyA8PSBfX2F0b21pY19sb2FkX24oZmMsIF9fQVRPTUlDX1JFTEFYRUQpKQ0K PiArwqAgwqAgwqAgwqB1aW50NjRfdCBmYzsNCj4gKw0KPiArI2lmZGVmIFJURV9BUkNIX0FSTTY0 DQo+ICvCoCDCoCDCoCDCoGFzbSB2b2xhdGlsZShQTFRfQ1BVX0ZFQVRVUkVfUFJFQU1CTEUNCj4g K8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICLCoCDCoCDCoCDCoCDCoCBsZHhyICVbc3Bh Y2VdLCBbJVthZGRyXV3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcbiINCj4gK8KgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgICLCoCDCoCDCoCDCoCDCoCBjbXAgJVtuYl9kZXNjXSwgJVtzcGFj ZV3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcbiINCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgICLCoCDCoCDCoCDCoCDCoCBiLmhpIC5MZG5lJT3CoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCBcbiINCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg ICLCoCDCoCDCoCDCoCDCoCBzZXZswqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgXG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAi LkxydHklPTrCoCB3ZmXCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoFxuIg0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgIsKgIMKg IMKgIMKgIMKgIGxkeHIgJVtzcGFjZV0sIFslW2FkZHJdXcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IFxuIg0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIGNt cCAlW25iX2Rlc2NdLCAlW3NwYWNlXcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFxuIg0KPiArwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIGh0dHBzOi8vdXJsZGVm ZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRwLTNBX19iLmxzJmQ9RHdNR2FRJmM9bktq V2VjMmI2UjBtT3lQYXo3eHRmUSZyPUUzU2dZTWp0S0NNVnNCLWZtdmdHVjNvLWdfZmpMaGs1UHVw aTlpam9ocGMmbT1xWlRBTlcybXRBT2JLcnhES3pIZzVPZ0oyeG51b0stUktsY1VhTE1pb21oaUxG RzVfMTMxVFMwclZSdWpsVEk1JnM9OEFITmVuN2JxbTZvUDJkOElERS1sa1pXRDVfXzNVMmVCZkRw TU50SEhVbyZlPSAuTHJ0eSU9wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgXG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAiLkxkbmUlPTrCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBc biINCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDogW3NwYWNlXSAiPSZyIihmYykN Cj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDogW25iX2Rlc2NdICJyIihuYl9kZXNj KSwgW2FkZHJdICJyIih0eHEtPmNwdF9mYykNCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIDogIm1lbW9yeSIpOw0KPiArI2Vsc2UNCj4gK8KgIMKgIMKgIMKgUlRFX1NFVF9VU0VEKGZj KTsNCj4gK8KgIMKgIMKgIMKgd2hpbGUgKG5iX2Rlc2MgPD0gX19hdG9taWNfbG9hZF9uKHR4cS0+ Y3B0X2ZjLCBfX0FUT01JQ19SRUxBWEVEKSkNCj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDsN Cj4gKyNlbmRpZg0KPsKgIH0NCj4NCj7CoCBzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2b2lk DQo+IEBAIC0yOTQsNyArMzU2LDcgQEAgY24xMGtfbml4X3NlY19mY193YWl0KHN0cnVjdCBjbjEw a19ldGhfdHhxICp0eHEsIHVpbnQxNl90IG5iX3BrdHMpDQo+wqAgew0KPsKgIMKgIMKgIMKgIMKg aW50MzJfdCBuYl9kZXNjLCB2YWwsIG5ld3ZhbDsNCj7CoCDCoCDCoCDCoCDCoGludDMyX3QgKmZj X3N3Ow0KPiAtwqAgwqAgwqAgwqB2b2xhdGlsZSB1aW50NjRfdCAqZmM7DQo+ICvCoCDCoCDCoCDC oHVpbnQ2NF90ICpmYzsNCj4NCj7CoCDCoCDCoCDCoCDCoC8qIENoZWNrIGlmIHRoZXJlIGlzIGFu eSBDUFQgaW5zdHJ1Y3Rpb24gdG8gc3VibWl0ICovDQo+wqAgwqAgwqAgwqAgwqBpZiAoIW5iX3Br dHMpDQo+IEBAIC0zMDIsMjEgKzM2NCw1OSBAQCBjbjEwa19uaXhfc2VjX2ZjX3dhaXQoc3RydWN0 IGNuMTBrX2V0aF90eHEgKnR4cSwgdWludDE2X3QgbmJfcGt0cykNCj4NCj7CoCBhZ2FpbjoNCj7C oCDCoCDCoCDCoCDCoGZjX3N3ID0gdHhxLT5jcHRfZmNfc3c7DQo+IC3CoCDCoCDCoCDCoHZhbCA9 IF9fYXRvbWljX2ZldGNoX3N1YihmY19zdywgbmJfcGt0cywgX19BVE9NSUNfUkVMQVhFRCkgLSBu Yl9wa3RzOw0KPiArI2lmZGVmIFJURV9BUkNIX0FSTTY0DQo+ICvCoCDCoCDCoCDCoGFzbSB2b2xh dGlsZShQTFRfQ1BVX0ZFQVRVUkVfUFJFQU1CTEUNCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgICLCoCDCoCDCoCDCoCDCoCBsZHhyICV3W3BrdHNdLCBbJVthZGRyXV3CoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCBcbiINCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICLCoCDC oCDCoCDCoCDCoCB0YnogJXdbcGt0c10sIDMxLCAuTGRuZSU9wqAgwqAgwqAgwqAgwqAgwqAgwqAg wqBcbiINCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICLCoCDCoCDCoCDCoCDCoCBz ZXZswqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg XG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAiLkxydHklPTrCoCB3ZmXCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFxuIg0K PiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIGxkeHIgJXdb cGt0c10sIFslW2FkZHJdXcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFxuIg0KPiArwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIHRibnogJXdbcGt0c10sIDMxLCAu THJ0eSU9wqAgwqAgwqAgwqAgwqAgwqAgwqAgXG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCAiLkxkbmUlPTrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcbiINCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIDogW3BrdHNdICI9JnIiKHZhbCkNCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IDogW2FkZHJdICJyIihmY19zdykNCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDog Im1lbW9yeSIpOw0KPiArI2Vsc2UNCj4gK8KgIMKgIMKgIMKgLyogV2FpdCBmb3IgcHJpbWFyeSBj b3JlIHRvIHJlZmlsbCBGQy4gKi8NCj4gK8KgIMKgIMKgIMKgd2hpbGUgKF9fYXRvbWljX2xvYWRf bihmY19zdywgX19BVE9NSUNfUkVMQVhFRCkgPCAwKQ0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqA7DQo+ICsjZW5kaWYNCj4gKw0KPiArwqAgwqAgwqAgwqB2YWwgPSBfX2F0b21pY19mZXRjaF9z dWIoZmNfc3csIG5iX3BrdHMsIF9fQVRPTUlDX0FDUVVJUkUpIC0gbmJfcGt0czsNCj7CoCDCoCDC oCDCoCDCoGlmIChsaWtlbHkodmFsID49IDApKQ0KPsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg cmV0dXJuOw0KPg0KPsKgIMKgIMKgIMKgIMKgbmJfZGVzYyA9IHR4cS0+Y3B0X2Rlc2M7DQo+wqAg wqAgwqAgwqAgwqBmYyA9IHR4cS0+Y3B0X2ZjOw0KPiArI2lmZGVmIFJURV9BUkNIX0FSTTY0DQo+ ICvCoCDCoCDCoCDCoGFzbSB2b2xhdGlsZShQTFRfQ1BVX0ZFQVRVUkVfUFJFQU1CTEUNCj4gK8Kg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICLCoCDCoCDCoCDCoCDCoCBsZHhyICVbcmVmaWxs XSwgWyVbYWRkcl1dwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBcbiINCj4gK8KgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgICLCoCDCoCDCoCDCoCDCoCBzdWIgJVtyZWZpbGxdLCAlW2Rlc2NdLCAl W3JlZmlsbF3CoCDCoCDCoCDCoFxuIg0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg IsKgIMKgIMKgIMKgIMKgIHN1YiAlW3JlZmlsbF0sICVbcmVmaWxsXSwgJVtwa3RzXcKgIMKgIMKg IMKgXG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAiwqAgwqAgwqAgwqAgwqAg Y21wICVbcmVmaWxsXSwgIzB4MMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXG4iDQo+ ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAiwqAgwqAgwqAgwqAgwqAgaHR0cHM6Ly91 cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHAtM0FfX2IuZ2UmZD1Ed01HYVEm Yz1uS2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9RTNTZ1lNanRLQ01Wc0ItZm12Z0dWM28tZ19makxo azVQdXBpOWlqb2hwYyZtPXFaVEFOVzJtdEFPYktyeERLekhnNU9nSjJ4bnVvSy1SS2xjVWFMTWlv bWhpTEZHNV8xMzFUUzByVlJ1amxUSTUmcz1zYlpCdnBUX0syR0xOcVRfOGg2UUhkLXVDd2JtZUZ5 amVUdlFlVUQwNnhVJmU9IC5MZG5lJT3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCBcbiINCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICLCoCDCoCDCoCDC oCDCoCBzZXZswqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgXG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAiLkxydHklPTrCoCB3 ZmXCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oFxuIg0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIGxk eHIgJVtyZWZpbGxdLCBbJVthZGRyXV3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFxuIg0KPiArwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgIsKgIMKgIMKgIMKgIMKgIHN1YiAlW3JlZmlsbF0s ICVbZGVzY10sICVbcmVmaWxsXcKgIMKgIMKgIMKgXG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCAiwqAgwqAgwqAgwqAgwqAgc3ViICVbcmVmaWxsXSwgJVtyZWZpbGxdLCAlW3Br dHNdwqAgwqAgwqAgwqBcbiINCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICLCoCDC oCDCoCDCoCDCoCBjbXAgJVtyZWZpbGxdLCAjMHgwwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqBcbiINCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICLCoCDCoCDCoCDCoCDC oCBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cC0zQV9fYi5s dCZkPUR3TUdhUSZjPW5LaldlYzJiNlIwbU95UGF6N3h0ZlEmcj1FM1NnWU1qdEtDTVZzQi1mbXZn R1Yzby1nX2ZqTGhrNVB1cGk5aWpvaHBjJm09cVpUQU5XMm10QU9iS3J4REt6SGc1T2dKMnhudW9L LVJLbGNVYUxNaW9taGlMRkc1XzEzMVRTMHJWUnVqbFRJNSZzPTF3Tmx6UU1DN1Zoa05ObHFldTZ3 SXhPWEhoN1ptdExTWGpWUjNjMk53VjQmZT0gLkxydHklPcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIFxuIg0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg Ii5MZG5lJT06wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgXG4iDQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA6IFty ZWZpbGxdICI9JnIiKG5ld3ZhbCkNCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDog W2FkZHJdICJyIihmYyksIFtkZXNjXSAiciIobmJfZGVzYyksIFtwa3RzXSAiciIobmJfcGt0cykN Cj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDogIm1lbW9yeSIpOw0KPiArI2Vsc2UN Cj7CoCDCoCDCoCDCoCDCoHdoaWxlICh0cnVlKSB7DQo+wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqBuZXd2YWwgPSBuYl9kZXNjIC0gX19hdG9taWNfbG9hZF9uKGZjLCBfX0FUT01JQ19SRUxBWEVE KTsNCj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoG5ld3ZhbCAtPSBuYl9wa3RzOw0KPsKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgaWYgKG5ld3ZhbCA+PSAwKQ0KPsKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgYnJlYWs7DQo+wqAgwqAgwqAgwqAgwqB9DQo+ICsjZW5kaWYN Cj4NCj4gLcKgIMKgIMKgIMKgaWYgKCFfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlX24oZmNfc3cs ICZ2YWwsIG5ld3ZhbCwgZmFsc2UsDQo+IC3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBfX0FUT01JQ19SRUxBWEVELCBfX0FUT01JQ19S RUxBWEVEKSkNCj4gK8KgIMKgIMKgIMKgaWYgKCFfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlX24o ZmNfc3csICZ2YWwsIG5ld3ZhbCwgZmFsc2UsIF9fQVRPTUlDX1JFTEVBU0UsDQo+ICvCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBfX0FU T01JQ19SRUxBWEVEKSkNCj7CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGdvdG8gYWdhaW47DQo+ wqAgfQ0KPg0KPiBAQCAtMzAzMywxMCArMzEzMywxNiBAQCBjbjEwa19uaXhfeG1pdF9wa3RzX3Zl Y3Rvcih2b2lkICp0eF9xdWV1ZSwgdWludDY0X3QgKndzLA0KPsKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgd2QuZGF0YVsxXSB8PSAoKHVpbnQ2NF90KShsbnVtIC0gMTcpKSA8PCAxMjsNCj7CoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoHdkLmRhdGFbMV0gfD0gKHVpbnQ2NF90KShsbXRfaWQgKyAx Nik7DQo+DQo+IC3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGlmIChmbGFncyAmIE5JWF9UWF9WV1FF X0YpDQo+IC3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGNuMTBrX25peF92d3Fl X3dhaXRfZmModHhxLA0KPiAtwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqBidXJzdCAtIChjbjEwa19uaXhfcGt0c19wZXJfdmVjX2Jyc3QoZmxhZ3MpID4+DQo+ IC3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCAxKSk7DQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGlmIChmbGFncyAmIE5JWF9UWF9W V1FFX0YpIHsNCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgaWYgKGZsYWdz ICYgTklYX1RYX01VTFRJX1NFR19GKSB7DQo+ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoGlmIChidXJzdCAtIChjbjEwa19uaXhfcGt0c19wZXJfdmVjX2Jy c3QoZmxhZ3MpID4+IDEpID4gMCkNCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgY24xMGtfbml4X3Z3cWVfd2FpdF9mYyh0eHEsDQo+ ICvCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoGJ1cnN0IC0gKGNuMTBrX25peF9wa3RzX3Blcl92ZWNfYnJzdChmbGFn cykgPj4gMSkpOw0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB9IGVsc2Ug ew0KPiArwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBjbjEw a19uaXhfdndxZV93YWl0X2ZjKHR4cSwNCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgYnVyc3QgLSAoY24xMGtf bml4X3BrdHNfcGVyX3ZlY19icnN0KGZsYWdzKSA+PiAxKSk7DQo+ICvCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoH0NCj4gK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfQ0KPsKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgLyogU1RFT1IxICovDQo+wqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqByb2NfbG10X3N1Ym1pdF9zdGVvcmwod2QuZGF0YVsxXSwgcGEpOw0KPsKgIMKgIMKgIMKg IMKgfSBlbHNlIGlmIChsbnVtKSB7DQo+IC0tDQo+IDIuMjUuMQ0KPg0KDQoNCg0KLS0gDQpQYXRy aWNrIFJvYmINClRlY2huaWNhbCBTZXJ2aWNlIE1hbmFnZXINClVOSCBJbnRlck9wZXJhYmlsaXR5 IExhYm9yYXRvcnkNCjIxIE1hZGJ1cnkgUmQsIFN1aXRlIDEwMCwgRHVyaGFtLCBOSCAwMzgyNA0K aHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHAtM0FfX3d3dy5p b2wudW5oLmVkdV8mZD1Ed01HYVEmYz1uS2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9RTNTZ1lNanRL Q01Wc0ItZm12Z0dWM28tZ19makxoazVQdXBpOWlqb2hwYyZtPXFaVEFOVzJtdEFPYktyeERLekhn NU9nSjJ4bnVvSy1SS2xjVWFMTWlvbWhpTEZHNV8xMzFUUzByVlJ1amxUSTUmcz1RakR0YldBZWZo TG1mY2VjS0JtVjdjZ2R3RUU4X3psdk1IM3B0VnRRSmRvJmU9DQoNCg0K