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 98689A0032; Tue, 13 Sep 2022 12:02:40 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7DCFA40156; Tue, 13 Sep 2022 12:02:40 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id A857E40151 for ; Tue, 13 Sep 2022 12:02:39 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 28D07t69017006; Tue, 13 Sep 2022 03:00:30 -0700 Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2043.outbound.protection.outlook.com [104.47.51.43]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3jgt3n2uuq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 13 Sep 2022 03:00:30 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JzYLjkLGnwDbd4CqYuRd4uy7AOXrD6OgZSHbRyCozaYVwDns2gp1xOWVIu1n305TRz90MDTsBxr41wpPQEVmy4NaQ1ipdN/8aArJx5zvRvK1quUgkPeysGxcly00vgzpGldjNTxhAjDlmuEWdQrAod+EVGFIWGbGkkN95ew1JQfZPQpW6UhDjA+wNW3W3hk6RInjyw3Uklqw+vLsLvWSJI5efK73+C/OMaE2bwV5wLBrQbr+LMXXaAHyqpZ9jGYBKPtFGxC+l6gBU2eHc4wT1YruytpJ4hc1kpOm84sqF/yD8b/cqHmBcTfuDemzCLO9ZoFz9UEJlnKLNjW7ijFw3g== 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=0OAp0qtrVCKeEbka6zcq4B41Ytto9tWbSMzplSnia/o=; b=LAlFFYtdxd1iJN9BmvkpAOrz+ERar1R1nuxBvtfsqniHwXe6kH/JAY+m0+2jjT2440bnOxhOvUF0mSVM4nBX4dHLnrMok+TjQU6/3PZqWKmnV8YqnjNvcFbbA4wTrdUBTOiK09BmkFlqrUPPqyQQ0H0wznCzgbksEaQo/O9Lq2MY8R6fnREOETzfr+KOL3wfISNbhyv9any3PcS1vmsjLV/+NmIvDUuvCzrTosYFaidrLUxsO+E0LLjrf5dpBhWB0KttItyPgVnFIb3AaA4/U/YEQm1zoRWJVZ93VUsuS+EKlspDYVffEOqytKTeFpUDe9wnSWkJaNdmCkBg8sTCdQ== 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=0OAp0qtrVCKeEbka6zcq4B41Ytto9tWbSMzplSnia/o=; b=l5H1UkCW1jlsa3OjTBTTwnhupLLMHxxJNPW5g2YQ0Xv7qirehycuUmeZ/UQQ/++B0rHrIMEwPXvcNORNmMBMXQ176KCqfQc3iATtYL+zVztOZPLEiwJx3wajvgYrDEyoLHrTUk0V7oxHGQMVKrMvf2NZyGS5C5/8D4R3u1ac51Y= Received: from PH0PR18MB4750.namprd18.prod.outlook.com (2603:10b6:510:cd::11) by SJ0PR18MB3833.namprd18.prod.outlook.com (2603:10b6:a03:2cb::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.22; Tue, 13 Sep 2022 10:00:28 +0000 Received: from PH0PR18MB4750.namprd18.prod.outlook.com ([fe80::a03c:8f55:3d23:6c48]) by PH0PR18MB4750.namprd18.prod.outlook.com ([fe80::a03c:8f55:3d23:6c48%3]) with mapi id 15.20.5612.022; Tue, 13 Sep 2022 10:00:27 +0000 From: Hanumanth Reddy Pothula To: Ferruh Yigit , "Ding, Xuan" , Thomas Monjalon , Andrew Rybchenko CC: "dev@dpdk.org" , "Wu, WenxuanX" , "Li, Xiaoyun" , "stephen@networkplumber.org" , "Wang, YuanX" , "mdr@ashroe.eu" , "Zhang, Yuying" , "Zhang, Qi Z" , "viacheslavo@nvidia.com" , Jerin Jacob Kollanukkaran , Nithin Kumar Dabilpuram Subject: RE: [EXT] Re: [PATCH v2 1/3] ethdev: introduce pool sort capability Thread-Topic: [EXT] Re: [PATCH v2 1/3] ethdev: introduce pool sort capability Thread-Index: AQHYrnCMDyPkZ/Wts0iubYwzR+1tZq27420AgAJddwCACL4lQIALeYSAgAEwFBCAAFNBAIAADzgQgAk+cgCAAAhRAA== Date: Tue, 13 Sep 2022 10:00:27 +0000 Message-ID: References: <20220812104648.1019978-1-hpothula@marvell.com> <20220812172451.1208933-1-hpothula@marvell.com> <76e4091d-4037-ef5b-377f-7daa183e27d3@xilinx.com> <1e1ae69c-8cf3-5447-762f-ef00616dc225@xilinx.com> <473d82bf-c10f-7a0d-f624-d22e50df068e@xilinx.com> In-Reply-To: <473d82bf-c10f-7a0d-f624-d22e50df068e@xilinx.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR18MB4750:EE_|SJ0PR18MB3833:EE_ x-ms-office365-filtering-correlation-id: 8bcaf3c5-a05a-4e60-ec60-08da956ec91d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UoHGWOQX6wbuRj3Hx0hKz05jY0CBzmTsNqGq5/03+dsbZ77R4QNI6Ef4WGP04xe3tEMs9k/rXBa56Pwsq06uIyxxg7nIkdHDqvMStfVV3dQtlF0vRCg4QHbOXZHuJFjLWbPD8RIWSfltoZQoBtigPJkGnJsFrObbnZ4geX2HZg8jN9gsjcWX0yQ+IGnIxrIaknGxCdrYS7RyOrx0GUOYDAZ53on0ZtqFzqiNSBftUu4/UAgX3iOBinJmjxxlfm1IXVVgz0METicX5VatnWeQitFcWz+ol16/iORaDBQPVg65f7HKNXUSGx+6WR/Lv0IausgEJrK8OD9cEzk8S3D61VBPoZxNIPYdz9R/Ww7rMLBhIWR7QhwcTKhI7Q3+kIdU5ERr3QLf4nytRUrWTMyGYvvoN6Xbhuzm56wIVM2tvTRYXfTNB8VH0p8hOhOuNZWV1FD0Uy1OJG9pGj6GiKNrc51xhps5+jXtZtskizZQ282i8BMtK1ZL4e84Y0Rk8LgugoUkFoVZ8TCkOnRz3L6fpxqBUcncFkz4HUVMfZHoo+TvYGNY5JseBUmcmNPntd2AxRLFiK23uxiXvJyaSC+4A9YKFGtyir0gl5YHVDaUaZPAth25sq2a+nUsn6JOE160YZ7omCBdLVbEPO+P5WcHYhy6DGTXyY/L+FAvzjQ5+H9efybxggI/lagb7VDpbWsUCMQr5O/g0NV24i1wqtFjaX6tGfAfCJm7Yn62wD8PQ0h6rL8zdU1mYatUYqSb71j5r0t1ifuHZBuuIayTl+MCfg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR18MB4750.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(346002)(39860400002)(376002)(366004)(396003)(136003)(451199015)(478600001)(107886003)(66946007)(41300700001)(71200400001)(9686003)(4326008)(52536014)(26005)(53546011)(86362001)(33656002)(55016003)(2906002)(76116006)(186003)(38070700005)(66476007)(6506007)(7416002)(8676002)(66446008)(316002)(54906003)(64756008)(66556008)(122000001)(83380400001)(8936002)(110136005)(30864003)(38100700002)(7696005)(5660300002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WnRqWHIzUDVnNVNWUXc3VVFwWEZyaU90eEJIS01GZ1JSYWY4bjF3S0V3NHZR?= =?utf-8?B?bEVUZ2NwVmlHbUNVck1Wd1NZQVd4WUZ1UDZvUkpPUkVGVll4cHhTSlpNbktl?= =?utf-8?B?Zkl6VXdlT1play8zcFlpWnh2Rm9pZWFOYWRaWmI4czBsVG1vYXlHaXVqdnNK?= =?utf-8?B?dWVFYS9nK3VoVzVoUVBtMjhqemcxMU5YVW50dDA0R0RrWTVFSG1aRTRyelpy?= =?utf-8?B?Ujl4dGFodHB6enFUdU02UUJJcFQ3eFRyUExNcVNhS0VpdFE0MUk2bzFvNVhh?= =?utf-8?B?Z3dLMWltUEJmeGJRODdrSmdzeXJhc0d5VVQ5TEdOemU5ekFwV1lxUUxIVzds?= =?utf-8?B?Y1lXdGR0NW01c2xydTFEbXp3NmVCOHNENlFYVFFCYXhlcFFwdFNERngreFNC?= =?utf-8?B?eHMycG9xQ3lZUnJxM3JqYTNQUHZ5TmQ1MGh6bjJNSWZ0Qi9DWHB0QXFBaXNK?= =?utf-8?B?bHFLZlNrdWhVK2ZYYXBWNGF0UVVpM25leHo5cXhCYXVyMmRZaGcvRTJwalhn?= =?utf-8?B?TllILzFhRTJWTk1JMWlEbFJjbU9lL3hwa21QOU9GNmVObFh0MGdGTnBDUEN4?= =?utf-8?B?dHdTQ1o5TWRXQ2YzR3o5QjhXMGRVSVQ2Y3pEWnRNNHlrVHR2MGVGWWFXWXlQ?= =?utf-8?B?UlM4RXQzTDFMZlpnSUhDdXJ0eExkQnNHYWszTmg0S2M0elJvVGtEcXNOeXpP?= =?utf-8?B?dWxOVWRITHIyUUJZcHlVK0x6MDY0RVMvcTRRSVNFcTZody9Lb3pYRy9iTFpk?= =?utf-8?B?RFhSRUtpdXUyUkkxeXF5V3lqcm9Ka1FFdFAvbmRCT3puSG4weGp2MjN1OHZv?= =?utf-8?B?aXAzd29FMXFwYWtkL2hJUWpaZTdjK0U2WGoyTERPV2FjZ3MvMmRhd3FtQmND?= =?utf-8?B?RmFxZXdlejdoTWRKdDhVdzVQQWlvd0F4RkIvZVBHMTJJV0tnN2ZqMVJicElT?= =?utf-8?B?WktYQXh3dGpXNGhVN3hnS1J3RmNDc1k2UFJha2pQNCtzelJoci8zWktCSUdX?= =?utf-8?B?OW8xM1BTNDkzc2IwWFMyMzk5clVmZ0xFSFRDUDh3TUxlaFQ5Y0RwbVlKQ2dC?= =?utf-8?B?WVBpVCs2VzVPektNRUZZWUdPdEppSFBKK2VaV3VQNWs0THV4VWV2YnFBcENW?= =?utf-8?B?cm8wWUhRSDJEa3ZLemVzbnN2cFJKc0FSSlNOM2ZRMlFYZzNwZGZTWHdsV3dv?= =?utf-8?B?K0pCMEpHNTk4Vk52Q3dYYVVBQ1RuM3ZuNE9tWFZNL2RMelZaREgyRG05b3NW?= =?utf-8?B?MGdpUjhDUkRhbUU4SFlpeDFxS28rRnB1d1BZc2lrNzRjZmtkQ3RlMk5GNWov?= =?utf-8?B?Z3NqWXZvSForSGhHUm9iUEgzenovZmJhRFdlOG9SOHBPU2duVlQ4SFB2eFZH?= =?utf-8?B?T2tmaHc3TUZIZUxFKzk2WERMK2h6OFpYWHlRZStYQnVMb2Vzayt6U0pTQlpk?= =?utf-8?B?aXhGSElDcVJ0eS8rTEl4aUFLZVNWbHRDSXd4RHVwa2x1VmZ4cHZDNlZjZFl2?= =?utf-8?B?cXB6dXdQYU81aVY3UDVHQzRmTFlPVWxnU3JKTWt5WlppMXl0OXZYcTlWbjZE?= =?utf-8?B?MDFsNVFJaTZzZjBvWW1CVURWVy9YZUVyM1dEcEUwUnM5ZzFzV3VucVNQaTZB?= =?utf-8?B?L1BzU3F3UjdwVFBsMGNKdERaWUtmSFppUURrckc5clEzeCtQK0RZRVRwVVFW?= =?utf-8?B?dnMra3VYbWxPUmtrcVpxTUYzQTBJcHB4SExFRUZwQ3QrcHRUN3VJeUNGNTJK?= =?utf-8?B?eVpLQ0lQQ0w4VkdHVnJIdlo0UFRUM3ZYTjNoZzUvb3IvQ1BUMGRxemlPTUda?= =?utf-8?B?YVJ0dWNaOExLa2FWbzZIbGk3QzdvdGloQ1REVllPZmxMZ1lZRmNGMzVneDBQ?= =?utf-8?B?VzFzY1ltYlE0OTlLamZpRElBcmM1S0hRN0NnQjlEeHIxdTB4em5ndHN6a2pv?= =?utf-8?B?Qi9yN3pkYy9FclljbW9SaWFJQi9NMGFpcFZyY2lOUkZtZSsxd3o3bWNsLzhk?= =?utf-8?B?NWgvL0VIdFRDZTFMNDdyZVAvL2RicmZVc0R0MUExazlJdzB0dlpNVUpZQzVS?= =?utf-8?B?RUpnZTRnRHJMbEREZUEwZ3M2WThJWHhHeXZ4MXp2a1J0OVN6NGZsTXNPaWpn?= =?utf-8?Q?ZnhhzIg+/9USTS9c/Rb4aaXcH?= 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: PH0PR18MB4750.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8bcaf3c5-a05a-4e60-ec60-08da956ec91d X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Sep 2022 10:00:27.9156 (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: ob7VEju2XTG/1IV35T2Z+knYY4Y9y/TzxTp0A/GweczNvu8fhQmwMH+icPY52e92H53lZfuurYnnjOMBUN/O6Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR18MB3833 X-Proofpoint-ORIG-GUID: SQs1qccMlgVmfhT5NXbyLCGCUwt0Q8k7 X-Proofpoint-GUID: SQs1qccMlgVmfhT5NXbyLCGCUwt0Q8k7 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.528,FMLib:17.11.122.1 definitions=2022-09-13_03,2022-09-12_02,2022-06-22_01 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAeGlsaW54LmNvbT4NCj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDEzLCAy MDIyIDI6NTkgUE0NCj4gVG86IEhhbnVtYW50aCBSZWRkeSBQb3RodWxhIDxocG90aHVsYUBtYXJ2 ZWxsLmNvbT47IERpbmcsIFh1YW4NCj4gPHh1YW4uZGluZ0BpbnRlbC5jb20+OyBUaG9tYXMgTW9u amFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+OyBBbmRyZXcNCj4gUnliY2hlbmtvIDxhbmRyZXcu cnliY2hlbmtvQG9rdGV0bGFicy5ydT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgV3UsIFdlbnh1YW5Y IDx3ZW54dWFueC53dUBpbnRlbC5jb20+OyBMaSwgWGlhb3l1bg0KPiA8eGlhb3l1bi5saUBpbnRl bC5jb20+OyBzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZzsgV2FuZywgWXVhblgNCj4gPHl1YW54 LndhbmdAaW50ZWwuY29tPjsgbWRyQGFzaHJvZS5ldTsgWmhhbmcsIFl1eWluZw0KPiA8eXV5aW5n LnpoYW5nQGludGVsLmNvbT47IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT47DQo+ IHZpYWNoZXNsYXZvQG52aWRpYS5jb207IEplcmluIEphY29iIEtvbGxhbnVra2FyYW4gPGplcmlu akBtYXJ2ZWxsLmNvbT47DQo+IE5pdGhpbiBLdW1hciBEYWJpbHB1cmFtIDxuZGFiaWxwdXJhbUBt YXJ2ZWxsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtFWFRdIFJlOiBbUEFUQ0ggdjIgMS8zXSBldGhk ZXY6IGludHJvZHVjZSBwb29sIHNvcnQgY2FwYWJpbGl0eQ0KPiANCj4gT24gOS83LzIwMjIgMTA6 MzEgUE0sIEhhbnVtYW50aCBSZWRkeSBQb3RodWxhIHdyb3RlOg0KPiA+DQo+ID4NCj4gPj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogRmVycnVoIFlpZ2l0IDxmZXJydWgu eWlnaXRAeGlsaW54LmNvbT4NCj4gPj4gU2VudDogV2VkbmVzZGF5LCBTZXB0ZW1iZXIgNywgMjAy MiA0OjU0IFBNDQo+ID4+IFRvOiBIYW51bWFudGggUmVkZHkgUG90aHVsYSA8aHBvdGh1bGFAbWFy dmVsbC5jb20+OyBEaW5nLCBYdWFuDQo+ID4+IDx4dWFuLmRpbmdAaW50ZWwuY29tPjsgVGhvbWFz IE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PjsNCj4gQW5kcmV3DQo+ID4+IFJ5YmNoZW5r byA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+DQo+ID4+IENjOiBkZXZAZHBkay5vcmc7 IFd1LCBXZW54dWFuWCA8d2VueHVhbngud3VAaW50ZWwuY29tPjsgTGksIFhpYW95dW4NCj4gPj4g PHhpYW95dW4ubGlAaW50ZWwuY29tPjsgc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc7IFdhbmcs IFl1YW5YDQo+ID4+IDx5dWFueC53YW5nQGludGVsLmNvbT47IG1kckBhc2hyb2UuZXU7IFpoYW5n LCBZdXlpbmcNCj4gPj4gPHl1eWluZy56aGFuZ0BpbnRlbC5jb20+OyBaaGFuZywgUWkgWiA8cWku ei56aGFuZ0BpbnRlbC5jb20+Ow0KPiA+PiB2aWFjaGVzbGF2b0BudmlkaWEuY29tOyBKZXJpbiBK YWNvYiBLb2xsYW51a2thcmFuDQo+ID4+IDxqZXJpbmpAbWFydmVsbC5jb20+OyBOaXRoaW4gS3Vt YXIgRGFiaWxwdXJhbQ0KPiA+PiA8bmRhYmlscHVyYW1AbWFydmVsbC5jb20+DQo+ID4+IFN1Ympl Y3Q6IFJlOiBbRVhUXSBSZTogW1BBVENIIHYyIDEvM10gZXRoZGV2OiBpbnRyb2R1Y2UgcG9vbCBz b3J0DQo+ID4+IGNhcGFiaWxpdHkNCj4gPj4NCj4gPj4gT24gOS83LzIwMjIgODowMiBBTSwgSGFu dW1hbnRoIFJlZGR5IFBvdGh1bGEgd3JvdGU6DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlp Z2l0QHhpbGlueC5jb20+DQo+ID4+Pj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDYsIDIwMjIg NTo0OCBQTQ0KPiA+Pj4+IFRvOiBIYW51bWFudGggUmVkZHkgUG90aHVsYSA8aHBvdGh1bGFAbWFy dmVsbC5jb20+OyBEaW5nLCBYdWFuDQo+ID4+Pj4gPHh1YW4uZGluZ0BpbnRlbC5jb20+OyBUaG9t YXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+Ow0KPiA+PiBBbmRyZXcNCj4gPj4+PiBS eWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+Pj4+IENjOiBkZXZA ZHBkay5vcmc7IFd1LCBXZW54dWFuWCA8d2VueHVhbngud3VAaW50ZWwuY29tPjsgTGksDQo+IFhp YW95dW4NCj4gPj4+PiA8eGlhb3l1bi5saUBpbnRlbC5jb20+OyBzdGVwaGVuQG5ldHdvcmtwbHVt YmVyLm9yZzsgV2FuZywgWXVhblgNCj4gPj4+PiA8eXVhbngud2FuZ0BpbnRlbC5jb20+OyBtZHJA YXNocm9lLmV1OyBaaGFuZywgWXV5aW5nDQo+ID4+Pj4gPHl1eWluZy56aGFuZ0BpbnRlbC5jb20+ OyBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+Ow0KPiA+Pj4+IHZpYWNoZXNsYXZv QG52aWRpYS5jb207IEplcmluIEphY29iIEtvbGxhbnVra2FyYW4NCj4gPj4+PiA8amVyaW5qQG1h cnZlbGwuY29tPjsgTml0aGluIEt1bWFyIERhYmlscHVyYW0NCj4gPj4+PiA8bmRhYmlscHVyYW1A bWFydmVsbC5jb20+DQo+ID4+Pj4gU3ViamVjdDogUmU6IFtFWFRdIFJlOiBbUEFUQ0ggdjIgMS8z XSBldGhkZXY6IGludHJvZHVjZSBwb29sIHNvcnQNCj4gPj4+PiBjYXBhYmlsaXR5DQo+ID4+Pj4N Cj4gPj4+PiBPbiA4LzMwLzIwMjIgMTowOCBQTSwgSGFudW1hbnRoIFJlZGR5IFBvdGh1bGEgd3Jv dGU6DQo+ID4+Pj4+DQo+ID4+Pj4+DQo+ID4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+Pj4+Pj4gRnJvbTogRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAeGlsaW54LmNvbT4N Cj4gPj4+Pj4+IFNlbnQ6IFdlZG5lc2RheSwgQXVndXN0IDI0LCAyMDIyIDk6MDQgUE0NCj4gPj4+ Pj4+IFRvOiBEaW5nLCBYdWFuIDx4dWFuLmRpbmdAaW50ZWwuY29tPjsgSGFudW1hbnRoIFJlZGR5 IFBvdGh1bGENCj4gPj4+Pj4+IDxocG90aHVsYUBtYXJ2ZWxsLmNvbT47IFRob21hcyBNb25qYWxv biA8dGhvbWFzQG1vbmphbG9uLm5ldD47DQo+ID4+Pj4gQW5kcmV3DQo+ID4+Pj4+PiBSeWJjaGVu a28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+Pj4+Pj4gQ2M6IGRldkBkcGRr Lm9yZzsgV3UsIFdlbnh1YW5YIDx3ZW54dWFueC53dUBpbnRlbC5jb20+OyBMaSwNCj4gPj4gWGlh b3l1bg0KPiA+Pj4+Pj4gPHhpYW95dW4ubGlAaW50ZWwuY29tPjsgc3RlcGhlbkBuZXR3b3JrcGx1 bWJlci5vcmc7IFdhbmcsIFl1YW5YDQo+ID4+Pj4+PiA8eXVhbngud2FuZ0BpbnRlbC5jb20+OyBt ZHJAYXNocm9lLmV1OyBaaGFuZywgWXV5aW5nDQo+ID4+Pj4+PiA8eXV5aW5nLnpoYW5nQGludGVs LmNvbT47IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT47DQo+ID4+Pj4+PiB2aWFj aGVzbGF2b0BudmlkaWEuY29tOyBKZXJpbiBKYWNvYiBLb2xsYW51a2thcmFuDQo+ID4+Pj4+PiA8 amVyaW5qQG1hcnZlbGwuY29tPjsgTml0aGluIEt1bWFyIERhYmlscHVyYW0NCj4gPj4+Pj4+IDxu ZGFiaWxwdXJhbUBtYXJ2ZWxsLmNvbT4NCj4gPj4+Pj4+IFN1YmplY3Q6IFtFWFRdIFJlOiBbUEFU Q0ggdjIgMS8zXSBldGhkZXY6IGludHJvZHVjZSBwb29sIHNvcnQNCj4gPj4+Pj4+IGNhcGFiaWxp dHkNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBFeHRlcm5hbCBFbWFpbA0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ID4+Pj4+PiAtLQ0KPiA+Pj4+Pj4gLS0NCj4gPj4+Pj4+IC0NCj4gPj4+Pj4N Cj4gPj4+Pj4NCj4gPj4+Pj4gVGhhbmtzIERpbmcgWHVhbiBhbmQgRmVycnVoIFlpZ2l0IGZvciBy ZXZpZXdpbmcgdGhlIGNoYW5nZXMgYW5kDQo+ID4+Pj4+IGZvciBwcm92aWRpbmcNCj4gPj4+PiB5 b3VyIHZhbHVhYmxlIGZlZWRiYWNrLg0KPiA+Pj4+PiBQbGVhc2UgZmluZCByZXNwb25zZXMgaW5s aW5lLg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4gT24gOC8yMy8yMDIyIDQ6MjYgQU0sIERpbmcsIFh1YW4g d3JvdGU6DQo+ID4+Pj4+Pj4gSGkgSGFudW1hbnRoLA0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+Pj4+IEZyb206IEhhbnVtYW50aCBQb3Ro dWxhIDxocG90aHVsYUBtYXJ2ZWxsLmNvbT4NCj4gPj4+Pj4+Pj4gU2VudDogU2F0dXJkYXksIEF1 Z3VzdCAxMywgMjAyMiAxOjI1IEFNDQo+ID4+Pj4+Pj4+IFRvOiBUaG9tYXMgTW9uamFsb24gPHRo b21hc0Btb25qYWxvbi5uZXQ+OyBGZXJydWggWWlnaXQNCj4gPj4+Pj4+Pj4gPGZlcnJ1aC55aWdp dEB4aWxpbnguY29tPjsgQW5kcmV3IFJ5YmNoZW5rbw0KPiA+Pj4+Pj4+PiA8YW5kcmV3LnJ5YmNo ZW5rb0Bva3RldGxhYnMucnU+DQo+ID4+Pj4+Pj4+IENjOiBkZXZAZHBkay5vcmc7IERpbmcsIFh1 YW4gPHh1YW4uZGluZ0BpbnRlbC5jb20+OyBXdSwNCj4gPj4+Pj4+Pj4gV2VueHVhblggPHdlbnh1 YW54Lnd1QGludGVsLmNvbT47IExpLCBYaWFveXVuDQo+ID4+Pj4+Pj4+IDx4aWFveXVuLmxpQGlu dGVsLmNvbT47IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnOyBXYW5nLA0KPiBZdWFuWA0KPiA+ PiA8eXVhbngud2FuZ0BpbnRlbC5jb20+Ow0KPiA+Pj4+Pj4+PiBtZHJAYXNocm9lLmV1OyBaaGFu ZywgWXV5aW5nIDx5dXlpbmcuemhhbmdAaW50ZWwuY29tPjsgWmhhbmcsDQo+ID4+Pj4+Pj4+IFFp IFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsgdmlhY2hlc2xhdm9AbnZpZGlhLmNvbTsNCj4gPj4+ Pj4+Pj4gamVyaW5qQG1hcnZlbGwuY29tOyBuZGFiaWxwdXJhbUBtYXJ2ZWxsLmNvbTsgSGFudW1h bnRoIFBvdGh1bGENCj4gPj4+Pj4+Pj4gPGhwb3RodWxhQG1hcnZlbGwuY29tPg0KPiA+Pj4+Pj4+ PiBTdWJqZWN0OiBbUEFUQ0ggdjIgMS8zXSBldGhkZXY6IGludHJvZHVjZSBwb29sIHNvcnQgY2Fw YWJpbGl0eQ0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBQcmVzZW50bHksIHRoZSAnQnVmZmVyIFNw bGl0JyBmZWF0dXJlIHN1cHBvcnRzIHNlbmRpbmcgbXVsdGlwbGUNCj4gPj4+Pj4+Pj4gc2VnbWVu dHMgb2YgdGhlIHJlY2VpdmVkIHBhY2tldCB0byBQTUQsIHdoaWNoIHByb2dyYW1zIHRoZSBIVw0K PiA+Pj4+Pj4+PiB0byByZWNlaXZlIHRoZSBwYWNrZXQgaW4gc2VnbWVudHMgZnJvbSBkaWZmZXJl bnQgcG9vbHMuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IFRoaXMgcGF0Y2ggZXh0ZW5kcyB0aGUg ZmVhdHVyZSB0byBzdXBwb3J0IHRoZSBwb29sIHNvcnQgY2FwYWJpbGl0eS4NCj4gPj4+Pj4+Pj4g U29tZSBvZiB0aGUgSFcgaGFzIHN1cHBvcnQgZm9yIGNob29zaW5nIG1lbW9yeSBwb29scyBiYXNl ZCBvbg0KPiA+Pj4+Pj4+PiB0aGUgcGFja2V0J3Mgc2l6ZS4gVGhlIHBvb2wgc29ydCBjYXBhYmls aXR5IGFsbG93cyBQTUQgdG8NCj4gPj4+Pj4+Pj4gY2hvb3NlIGEgbWVtb3J5IHBvb2wgYmFzZWQg b24gdGhlIHBhY2tldCdzIGxlbmd0aC4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gVGhpcyBpcyBv ZnRlbiB1c2VmdWwgZm9yIHNhdmluZyB0aGUgbWVtb3J5IHdoZXJlIHRoZQ0KPiA+Pj4+Pj4+PiBh cHBsaWNhdGlvbiBjYW4gY3JlYXRlIGEgZGlmZmVyZW50IHBvb2wgdG8gc3RlZXIgdGhlIHNwZWNp ZmljDQo+ID4+Pj4+Pj4+IHNpemUgb2YgdGhlIHBhY2tldCwgdGh1cyBlbmFibGluZyBlZmZlY3Rp dmUgdXNlIG9mIG1lbW9yeS4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gRm9yIGV4YW1wbGUsIGxl dCdzIHNheSBIVyBoYXMgYSBjYXBhYmlsaXR5IG9mIHRocmVlIHBvb2xzLA0KPiA+Pj4+Pj4+PiAg ICAgIC0gcG9vbC0xIHNpemUgaXMgMksNCj4gPj4+Pj4+Pj4gICAgICAtIHBvb2wtMiBzaXplIGlz ID4gMksgYW5kIDwgNEsNCj4gPj4+Pj4+Pj4gICAgICAtIHBvb2wtMyBzaXplIGlzID4gNEsNCj4g Pj4+Pj4+Pj4gSGVyZSwNCj4gPj4+Pj4+Pj4gICAgICAgICAgICAgcG9vbC0xIGNhbiBhY2NvbW1v ZGF0ZSBwYWNrZXRzIHdpdGggc2l6ZXMgPCAySw0KPiA+Pj4+Pj4+PiAgICAgICAgICAgICBwb29s LTIgY2FuIGFjY29tbW9kYXRlIHBhY2tldHMgd2l0aCBzaXplcyA+IDJLIGFuZCA8IDRLDQo+ID4+ Pj4+Pj4+ICAgICAgICAgICAgIHBvb2wtMyBjYW4gYWNjb21tb2RhdGUgcGFja2V0cyB3aXRoIHNp emVzID4gNEsNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gV2l0aCBwb29sIHNvcnQgY2FwYWJpbGl0 eSBlbmFibGVkIGluIFNXLCBhbiBhcHBsaWNhdGlvbiBtYXkNCj4gPj4+Pj4+Pj4gY3JlYXRlIHRo cmVlIHBvb2xzIG9mIGRpZmZlcmVudCBzaXplcyBhbmQgc2VuZCB0aGVtIHRvIFBNRC4NCj4gPj4+ Pj4+Pj4gQWxsb3dpbmcgUE1EIHRvIHByb2dyYW0gSFcgYmFzZWQgb24gcGFja2V0IGxlbmd0aHMu IFNvIHRoYXQNCj4gPj4+Pj4+Pj4gcGFja2V0cyB3aXRoIGxlc3MgdGhhbiAySyBhcmUgcmVjZWl2 ZWQgb24gcG9vbC0xLCBwYWNrZXRzIHdpdGgNCj4gPj4+Pj4+Pj4gbGVuZ3RocyBiZXR3ZWVuIDJL IGFuZCA0SyBhcmUgcmVjZWl2ZWQgb24gcG9vbC0yIGFuZCBmaW5hbGx5DQo+ID4+Pj4+Pj4+IHBh Y2tldHMgZ3JlYXRlciB0aGFuIDRLIGFyZSByZWNlaXZlZCBvbiBwb29sLQ0KPiA+Pj4+Pj4gMy4N Cj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gVGhlIGZvbGxvd2luZyB0d28gY2FwYWJpbGl0aWVzIGFy ZSBhZGRlZCB0byB0aGUNCj4gPj4+Pj4+Pj4gcnRlX2V0aF9yeHNlZ19jYXBhIHN0cnVjdHVyZSwg MS4gcG9vbF9zb3J0IC0tPiB0ZWxscyBwb29sIHNvcnQNCj4gPj4+Pj4+Pj4gY2FwYWJpbGl0eQ0K PiA+PiBpcyBzdXBwb3J0ZWQgYnkgSFcuDQo+ID4+Pj4+Pj4+IDIuIG1heF9ucG9vbCAtLT4gbWF4 IG51bWJlciBvZiBwb29scyBzdXBwb3J0ZWQgYnkgSFcuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ IERlZmluZWQgbmV3IHN0cnVjdHVyZSBydGVfZXRoX3J4c2VnX3NvcnQsIHRvIGJlIHVzZWQgb25s eSB3aGVuDQo+ID4+Pj4+Pj4+IHBvb2wgc29ydCBjYXBhYmlsaXR5IGlzIHByZXNlbnQuIElmIHJl cXVpcmVkIHRoaXMgbWF5IGJlDQo+ID4+Pj4+Pj4+IGV4dGVuZGVkIGZ1cnRoZXIgdG8gc3VwcG9y dCBtb3JlIGNvbmZpZ3VyYXRpb25zLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBTaWduZWQtb2Zm LWJ5OiBIYW51bWFudGggUG90aHVsYSA8aHBvdGh1bGFAbWFydmVsbC5jb20+DQo+ID4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4+IHYyOg0KPiA+Pj4+Pj4+PiAgICAgIC0gQWxvbmcgd2l0aCBzcGVjIGNoYW5n ZXMsIHVwbG9hZGluZyB0ZXN0cG1kIGFuZCBkcml2ZXIgY2hhbmdlcy4NCj4gPj4+Pj4+Pg0KPiA+ Pj4+Pj4+IFRoYW5rcyBmb3IgQ0NpbmcuIEl0J3MgYW4gaW50ZXJlc3RpbmcgZmVhdHVyZS4NCj4g Pj4+Pj4+Pg0KPiA+Pj4+Pj4+IEJ1dCBJIGhhdmUgb25lIHF1ZXN0aW9uIGhlcmU6DQo+ID4+Pj4+ Pj4gQnVmZmVyIHNwbGl0IGlzIGZvciBzcGxpdCByZWNlaXZpbmcgcGFja2V0cyBpbnRvIG11bHRp cGxlDQo+ID4+Pj4+Pj4gc2VnbWVudHMsIHdoaWxlIHBvb2wgc29ydCBzdXBwb3J0cyBQTUQgdG8g cHV0IHRoZSByZWNlaXZpbmcNCj4gPj4+Pj4+PiBwYWNrZXRzIGludG8gZGlmZmVyZW50IHBvb2xz DQo+ID4+Pj4+PiBhY2NvcmRpbmcgdG8gcGFja2V0IHNpemUuDQo+ID4+Pj4+Pj4gRXZlcnkgcGFj a2V0IGlzIHN0aWxsIGludGFjdC4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFNvLCBhdCB0aGlzIGxl dmVsLCBwb29sIHNvcnQgZG9lcyBub3QgYmVsb25nIHRvIGJ1ZmZlciBzcGxpdC4NCj4gPj4+Pj4+ PiBBbmQgeW91IGFscmVhZHkgdXNlIGEgZGlmZmVyZW50IGZ1bmN0aW9uIHRvIGNoZWNrIHBvb2wg c29ydA0KPiA+Pj4+Pj4+IHJhdGhlciB0aGFuIGNoZWNrDQo+ID4+Pj4+PiBidWZmZXIgc3BsaXQu DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBTaG91bGQgYSBuZXcgUlggb2ZmbG9hZCBiZSBpbnRyb2R1 Y2VkPyBsaWtlDQo+ID4+Pj4+PiAiUlRFX0VUSF9SWF9PRkZMT0FEX1BPT0xfU09SVCIuDQo+ID4+ Pj4+Pj4NCj4gPj4+Pj4gUGxlYXNlIGZpbmQgbXkgcmVzcG9uc2UgYmVsb3cuDQo+ID4+Pj4+Pg0K PiA+Pj4+Pj4gSGkgSGFudW1hbnRoLA0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEkgaGFkIHRoZSBzaW1p bGFyIGNvbmNlcm4gd2l0aCB0aGUgZmVhdHVyZS4gSSBhc3N1bWUgeW91IHdhbnQgdG8NCj4gPj4+ Pj4+IGJlbmVmaXQgZnJvbSBleGl0aW5nIGNvbmZpZyBzdHJ1Y3R1cmUgdGhhdCBnZXRzIG11bHRp cGxlIG1lbXBvb2wNCj4gPj4+Pj4+IGFzIGFyZ3VtZW50LCBzaW5jZSB0aGlzIGZlYXR1cmUgYWxz byBuZWVkcyBtdWx0aXBsZSBtZW1wb29scywgYnV0DQo+ID4+Pj4+PiB0aGUgZmVhdHVyZSBpcw0K PiA+Pj4+IGRpZmZlcmVudC4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBJdCBsb29rcyB0byBtZSB3cm9u ZyB0byBjaGVjayAnT0ZGTE9BRF9CVUZGRVJfU1BMSVQnIG9mZmxvYWQgdG8NCj4gPj4+Pj4+IGRl Y2lkZSBpZiB0byByZWNlaXZlIGludG8gbXVsdGlwbGUgbWVtcG9vbCBvciBub3QsIHdoaWNoIGRv ZXNuJ3QNCj4gPj4+Pj4+IGhhdmUNCj4gPj4+PiBhbnl0aGluZyByZWxhdGVkIHNwbGl0Lg0KPiA+ Pj4+Pj4gQWxzbyBub3Qgc3VyZSBhYm91dCB1c2luZyB0aGUgJ3NvcnQnIGtleXdvcmQuDQo+ID4+ Pj4+PiBXaGF0IGRvIHlvdSB0aGluayB0byBpbnRyb2R1Y2UgbmV3IGZldGF1cmUsIGluc3RlYWQg b2YgZXh0ZW5kaW5nDQo+ID4+Pj4+PiBleGlzdGluZyBzcGxpdCBvbmU/DQo+ID4+Pj4+DQo+ID4+ Pj4+IEFjdHVhbGx5IHdlIHRob3VnaHQgYm90aCBCVUZGRVJfU1BMSVQgYW5kIFBPT0xfU09SVCBh cmUgc2ltaWxhcg0KPiA+Pj4+PiBmZWF0dXJlcyB3aGVyZSBSWCBwb29scyBhcmUgY29uZmlndXJl ZCBpbiBjZXJ0YWluIHdheSBhbmQgdGhvdWdodA0KPiA+Pj4+PiBub3QgdXNlIHVwIG9uZSBtb3Jl IFJYIG9mZmxvYWQgY2FwYWJpbGl0eSwgYXMgdGhlIGV4aXN0aW5nDQo+ID4+Pj4+IHNvZnR3YXJl IGFyY2hpdGVjdHVyZQ0KPiA+Pj4+IGNhbiBiZSBleHRlbmRlZCB0byBzdXBwb3J0IHBvb2xfc29y dCBjYXBhYmlsaXR5Lg0KPiA+Pj4+PiBZZXMsIGFzIHBhcnQgb2YgcG9vbCBzb3J0LCB0aGVyZSBp cyBubyBidWZmZXIgc3BsaXQgYnV0IHBvb2xzIGFyZQ0KPiA+Pj4+PiBwaWNrZWQgYmFzZWQgb24N Cj4gPj4+PiB0aGUgYnVmZmVyIGxlbmd0aC4NCj4gPj4+Pj4NCj4gPj4+Pj4gU2luY2UgeW91IHRo aW5rIGl0J3MgYmV0dGVyIHRvIHVzZSBuZXcgUlggb2ZmbG9hZCBmb3IgUE9PTF9TT1JULA0KPiA+ Pj4+PiB3aWxsIGdvIGFoZWFkDQo+ID4+Pj4gYW5kIGltcGxlbWVudCB0aGUgc2FtZS4NCj4gPj4+ Pj4NCj4gPj4+Pj4+IFRoaXMgaXMgb3B0aW1pc2F0aW9uLCByaWdodD8gVG8gZW5hYmxlIHVzIHRv IHVzZSBsZXNzIG1lbW9yeSBmb3INCj4gPj4+Pj4+IHRoZSBwYWNrZXQgYnVmZmVyLCBkb2VzIGl0 IHF1YWxpZnkgdG8gYSBkZXZpY2Ugb2ZmbG9hZD8NCj4gPj4+Pj4+DQo+ID4+Pj4+IFllcywgaXRz IHF1YWxpZnkgYXMgYSBkZXZpY2Ugb2ZmbG9hZCBhbmQgc2F2ZXMgbWVtb3J5Lg0KPiA+Pj4+PiBN YXJ2ZWwgTklDIGhhcyBhIGNhcGFiaWxpdHkgdG8gcmVjZWl2ZSBwYWNrZXRzIG9uICB0d28gZGlm ZmVyZW50DQo+ID4+Pj4+IHBvb2xzIGJhc2VkDQo+ID4+Pj4gb24gaXRzIGxlbmd0aC4NCj4gPj4+ Pj4gQmVsb3cgZXhwbGFpbmVkIG1vcmUgb24gdGhlIHNhbWUuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4g QWxzbywgd2hhdCBpcyB0aGUgcmVsYXRpb24gd2l0aCBzZWdtZW50ZWQgUngsIGhvdyBhIFBNRCBk ZWNpZGUgdG8NCj4gPj4+Pj4+IHVzZSBzZWdtZW50ZWQgUnggb3IgYmlnZ2VyIG1lbXBvb2w/IEhv dyBjYW4gYXBwbGljYXRpb24gY2FuDQo+ID4+Pj4+PiBjb25maWd1cmUNCj4gPj4gdGhpcz8NCj4g Pj4+Pj4+DQo+ID4+Pj4+PiBOZWVkIHRvIGNsYXJpZnkgdGhlIHJ1bGVzLCBiYXNlZCBvbiB5b3Vy IHNhbXBsZSwgaWYgYSA1MTIgYnl0ZXMNCj4gPj4+Pj4+IHBhY2tldCByZWNlaXZlZCwgZG9lcyBp dCBoYXZlIHRvIGdvIHBvb2wtMSwgb3IgY2FuIGl0IGdvIHRvIGFueQ0KPiA+Pj4+Pj4gb2YgdGhy ZWUNCj4gPj4gcG9vbHM/DQo+ID4+Pj4+Pg0KPiA+Pj4+PiBIZXJlLCBNYXJ2ZWxsIE5JQyBzdXBw b3J0cyB0d28gSFcgcG9vbHMsIFNQQihzbWFsbCBwYWNrZXQgYnVmZmVyKQ0KPiA+Pj4+PiBwb29s IGFuZA0KPiA+Pj4+IExQQihsYXJnZSBwYWNrZXQgYnVmZmVyKSBwb29sLg0KPiA+Pj4+PiBTUEIg cG9vbCBjYW4gaG9sZCB1cCB0byA0S0INCj4gPj4+Pj4gTFBCIHBvb2wgY2FuIGhvbGQgYW55dGhp bmcgbW9yZSB0aGFuIDRLQiBTbWFsbGVyIHBhY2tldHMgYXJlDQo+ID4+Pj4+IHJlY2VpdmVkIG9u IFNQQiBwb29sIGFuZCBsYXJnZXIgcGFja2V0cyBvbiBMUEIgcG9vbCwgYmFzZWQgb24gdGhlDQo+ ID4+Pj4+IFJRDQo+ID4+IGNvbmZpZ3VyYXRpb24uDQo+ID4+Pj4+IEhlcmUsIGluIG91ciBjYXNl IEhXIHBvb2xzIGhvbGRzIHdob2xlIHBhY2tldC4gU28gaWYgYSBwYWNrZXQgaXMNCj4gPj4+Pj4g ZGl2aWRlZCBpbnRvIHNlZ21lbnRzLCBsb3dlciBsYXllciBIVyBnb2luZyB0byByZWNlaXZlIGFs bA0KPiA+Pj4+PiBzZWdtZW50cyBvZiB0aGUgcGFja2V0IGFuZCB0aGVuIGdvaW5nIHRvIHBsYWNl IHRoZSB3aG9sZSBwYWNrZXQgaW4NCj4gPj4+Pj4gU1BCL0xQQiBwb29sLCBiYXNlZA0KPiA+Pj4+ IG9uIHRoZSBwYWNrZXQgbGVuZ3RoLg0KPiA+Pj4+Pg0KPiA+Pj4+DQo+ID4+Pj4gSWYgdGhlIHBh Y2tldCBpcyBiaWdnZXIgdGhhbiA0S0IsIHlvdSBoYXZlIHR3byBvcHRpb25zLA0KPiA+Pj4+IDEt IFVzZSBtdWx0aXBsZSBjaGFpbmVkIGJ1ZmZlcnMgaW4gU1BCDQo+ID4+Pj4gMi0gVXNlIHNpbmds ZSBMUEIgYnVmZmVyDQo+ID4+Pj4NCj4gPj4+PiBBcyBJIHVuZGVyc3RhbmQgKDIpIGlzIHVzZWQg aW4gdGhpcyBjYXNlLCBidXQgSSB0aGluayB3ZSBzaG91bGQNCj4gPj4+PiBjbGFyaWZ5IGhvdyB0 aGlzIGZlYXR1cmUgd29ya3Mgd2l0aCAnUlRFX0VUSF9SWF9PRkZMT0FEX1NDQVRURVInDQo+ID4+ Pj4gb2ZmbG9hZCwgaWYgaXQgaXMgcmVxdWVzdGVkIGJ5IHVzZXIuDQo+ID4+Pj4NCj4gPj4+PiBP ciBsZXRzIHNheSBIVyBoYXMgdHdvIHBvb2xzIHdpdGggMUsgYW5kIDJLIHNpemVzLCB3aGF0IGlz IGV4cGVjdGVkDQo+ID4+Pj4gd2l0aCA0SyBwYWNrZXQsIHdpdGggb3Igd2l0aG91dCBzY2F0dGVy ZWQgUnggb2ZmbG9hZD8NCj4gPj4+Pg0KPiA+Pj4NCj4gPj4+IEFzIG1lbnRpb25lZCwgTWFydmVs bCBzdXBwb3J0cyB0d28gcG9vbHMsIHBvb2wtMShTUEIpIGFuZA0KPiA+Pj4gcG9vbC0yKExQQikg SWYgdGhlIHBhY2tldCBsZW5ndGggaXMgd2l0aGluIHBvb2wtMSBsZW5ndGggYW5kIGhhcw0KPiA+ Pj4gb25seSBvbmUgc2VnbWVudCB0aGVuIHRoZQ0KPiA+PiBwYWNrZXQgaXMgYWxsb2NhdGVkIGZy b20gcG9vbC0xLg0KPiA+Pj4gSWYgdGhlIHBhY2tldCBsZW5ndGggaXMgZ3JlYXRlciB0aGFuIHBv b2wtMSBvciBoYXMgbW9yZSB0aGFuIG9uZQ0KPiA+Pj4gc2VnbWVudCB0aGVuDQo+ID4+IHRoZSBw YWNrZXQgaXMgYWxsb2NhdGVkIGZyb20gcG9vbC0yLg0KPiA+Pj4NCj4gPj4+IFNvLCBoZXJlIHBh Y2tldHMgd2l0aCBhIHNpbmdsZSBzZWdtZW50IGFuZCBsZW5ndGggbGVzcyB0aGFuIDFLIGFyZQ0K PiA+Pj4gYWxsb2NhdGVkIGZyb20gcG9vbC0xIGFuZCBwYWNrZXRzIHdpdGggbXVsdGlwbGUgc2Vn bWVudHMgb3IgcGFja2V0cw0KPiA+Pj4gd2l0aA0KPiA+PiBsZW5ndGggZ3JlYXRlciB0aGFuIDFL IGFyZSBhbGxvY2F0ZWQgZnJvbSBwb29sLTIuDQo+ID4+Pg0KPiA+Pg0KPiA+PiBUbyBoYXZlIG11 bHRpcGxlIHNlZ21lbnQgb3Igbm90IGlzIEhXIGNvbmZpZ3VyYXRpb24sIGl0IGlzIG5vdCBleHRl cm5hbA0KPiB2YXJpYWJsZS4NCj4gPj4gRHJpdmVycyBtb3N0bHkgZGVjaWRlIHRvIGNvbmZpZ3Vy ZSBIVyB0byByZWNlaXZlIG11bHRpcGxlIHNlZ21lbnQgb3INCj4gPj4gbm90IGJhc2VkIG9uIGJ1 ZmZlciBzaXplIGFuZCBtYXggcGFja2V0IHNpemUgZGV2aWNlIHN1cHBvcnQuDQo+ID4+IEluIHRo aXMgY2FzZSBzaW5jZSBidWZmZXIgc2l6ZSBpcyBub3QgZml4ZWQsIHRoZXJlIGFyZSBtdWx0aXBs ZQ0KPiA+PiBidWZmZXIgc2l6ZXMsIGhvdyBkcml2ZXIgd2lsbCBjb25maWd1cmUgSFc/DQo+ID4+ DQo+ID4+IFRoaXMgaXMgbm90IHNwZWNpZmljIHRvIE1hcnZlbGwgSFcsIGZvciB0aGUgY2FzZSBt dWx0aXBsZSBtZW1wb29sDQo+ID4+IHN1cHBvcnRlZCwgaXQgaXMgYmV0dGVyIHRvIGNsYXJpZnkg aW4gdGhpcyBwYXRjaCBob3cgaXQgaXMgd29ya3Mgd2l0aA0KPiA+PiAnUlRFX0VUSF9SWF9PRkZM T0FEX1NDQVRURVInIG9mZmxvYWQuDQo+ID4+DQo+ID4NCj4gPiBIZXJlLCBhcHBsaWNhdGlvbiBz ZW5kcyBtdWx0aXBsZSBwb29scyB3aXRoIGRpZmZlcmVudCBidWZmZXIgbGVuZ3RocyB0byBQTUQN Cj4gYW5kIFBNRCBmdXJ0aGVyIHByb2dyYW1zIEhXIGRlcGVuZGluZyBvbiBpdHMgYXJjaGl0ZWN0 dXJlLg0KPiA+IFNpbWlsYXJseSwgaW4gdGhpcyBjYXNlLCB3aGVyZSBtdWx0aXBsZSBIVyBwb29s cyBhcmUgcHJlc2VudCwgIHdpdGgNCj4gJ1JURV9FVEhfUlhfT0ZGTE9BRF9TQ0FUVEVSJyBlbmFi bGVkLCBQTUQgcmVjZWl2ZXMgcGFja2V0cy9zZWdtZW50cw0KPiBiYXNlZCBvbiB0aGUgSFcgYXJj aGl0ZWN0dXJlLg0KPiA+IERlcGVuZGluZyB0aGUgYXJjaGl0ZWN0dXJlLCBpZiBhbnkgZXh0cmEg cHJvZ3JhbW1pbmcgaXMgcmVxdWlyZWQoZWl0aGVyIHRvDQo+IGltcGxlbWVudCBzb21lIGxvZ2lj IG9yIEhXIHByb2dyYW1taW5nKSBpbiBSWCBwYXRoLCBpdHMgdG8gYmUgaW1wbGVtZW50ZWQgaW4N Cj4gdGhhdCBOSUMgUE1ELg0KPiANCj4gTXkgaW50ZW50aW9uIGlzIHRvIGNsYXJpZnkgdGhlIHJl bGF0aW9uIGJldHdlZW4gZmVhdHVyZXMsIGxpa2UgQW5kcmV3IHN1Z2dlc3RlZA0KPiB0byBoYXZl IFJ4IHNlZ21lbnRhdGlvbiBvbiBhbnkgcG9vbHMgaW5jbHVkaW5nIG1peHR1cmUgb2YgcG9vbHMs IHRoYXQgaXMgYW4NCj4gb3B0aW9uLCBvbmx5IHBsZWFzZSBkb2N1bWVudCB0aGlzIGluIHRoZSBB UEkgZG9jdW1lbnRhdGlvbiBzbyB0aGF0IGl0IGlzIGNsZWFyIGZvcg0KPiBmdXR1cmUgUE1EL2Fw cCBkZXZlbG9wZXJzLg0KDQpTdXJlLCB3aWxsIGRvY3VtZW50IHRoaXMgaW4gdGhlIEFQSSBkb2N1 bWVudGF0aW9uLg0KIA0KPiANCj4gPiBBcyBmYXIgYXMgbXVsdGlwbGUgcG9vbCBzdXBwb3J0IGlz IGNvbnNpZGVyZWQsIGluIE1hcnZlbGwgY2FzZSwgb25jZSBIVyBwb29scw0KPiBhcmUgcHJvZ3Jh bW1lZCBpbiBjb250cm9sIHBhdGgsIHRoZXJlIGlzIG5vdGhpbmcgdG8gYmUgZG9uZSBvbiBmYXN0 IHBhdGguDQo+ID4NCj4gDQo+IE91dCBvZiBjdXJpb3NpdHksIGhvdyB0aGlzIGlzIHRyYW5zcGFy ZW50IGluIGZhc3QgcGF0aC4gTm9ybWFsbHkgbWJ1ZiB3aWxsIHBvaW50IHRvDQo+IGEgZGF0YSBi dWZmZXIsIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBwb29scywgaG93IHRoaXMgaXMgbm90IGVmZmVj dGVkPw0KPiBJcyB0aGVyZSBhbnkgcmVkaXJlY3Rpb24sIGxpa2UgbWJ1ZiBidWZmZXIgcG9pbnRz IHRvIHNvbWUga2luZCBvZiBtZXRlZGF0YSAoZXZlbnQNCj4gZXRjLi4pPw0KPiANCj4gPiBTbywg SSB0aGluaywgSXQgZGVwZW5kcyBvbiBIVyBhcmNoaXRlY3R1cmUgb2YgaG93IG11bHRpcGxlIHBv b2wgYW5kIG11bHRpcGxlDQo+IHNlZ21lbnQgcmVjZWl2ZSBpcyBpbXBsZW1lbnRlZC4NCj4gPg0K PiA+IFBsZWFzZSBzdWdnZXN0LCBpZiBJIGFtIG1pc3NpbmcgYW55IGdlbmVyaWMgc2NlbmFyaW8o dXNlIGNhc2UpIGhlcmUuDQo+ID4NCj4gPj4+Pj4gQXMgcG9vbHMgYXJlIHBpY2tlZCBiYXNlZCBv biB0aGUgcGFja2V0cyBsZW5ndGggd2UgdXNlZCBTT1JUIHRlcm0uDQo+ID4+Pj4+IEluIGNhc2UN Cj4gPj4+PiB5b3UgaGF2ZSBhbnkgYmV0dGVyIHRlcm0od29yZCksIHBsZWFzZSBzdWdnZXN0Lg0K PiA+Pj4+Pg0KPiA+Pj4+DQo+ID4+Pj4gd2hhdCBhYm91dCBtdWx0aXBsZSBwb29sLCBsaWtlIFJU RV9FVEhfUlhfT0ZGTE9BRF9NVUxUSVBMRV9QT09MLCBJDQo+ID4+Pj4gdGhpbmsgaXQgaXMgbW9y ZSBjbGVhciBidXQgSSB3b3VsZCBsaWtlIHRvIGdldCBtb3JlIGNvbW1lbnRzIGZyb20NCj4gPj4+ PiBvdGhlcnMsIG5hbWluZyBpcyBoYXJkIDspDQo+ID4+Pj4NCj4gPj4+IFllcywgUlRFX0VUSF9S WF9PRkZMT0FEX01VTFRJUExFX1BPT0wgaXMgY2xlYXJlciB0aGFuDQo+ID4+IFJURV9FVEhfUlhf T0ZGTE9BRF9TT1JUX1BPT0wuDQo+ID4+PiBUaGFua3MgZm9yIHRoZSBzdWdnZXN0aW9uLg0KPiA+ Pj4gV2lsbCB1cGxvYWQgVjQgd2l0aCBSVEVfRVRIX1JYX09GRkxPQURfTVVMVElQTEVfUE9PTC4N Cj4gPj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gQW5kIEkgZG9uJ3Qgc2VlIGFueSBjaGFuZ2UgaW4g dGhlICduZXQvY254aycgUnggYnVyc3QgY29kZSwgd2hlbg0KPiA+Pj4+Pj4gbXVsdGlwbGUgbWVt cG9vbCB1c2VkLCB3aGlsZSBmaWxsaW5nIHRoZSBtYnVmcyBzaG91bGRuJ3QgaXQgY2hlY2sNCj4g Pj4+Pj4+IHdoaWNoIG1lbXBvb2wgaXMgZmlsbGVkLiBIb3cgdGhpcyB3b3JrcyB3aXRob3V0IHVw ZGF0ZSBpbiB0aGUgUngNCj4gPj4+Pj4+IGJ1cnN0IGNvZGUsIG9yIGFtIEkgbWlzc2luZyBzb21l IGltcGxlbWVudGF0aW9uIGRldGFpbD8NCj4gPj4+Pj4+DQo+ID4+Pj4+IFBsZWFzZSBmaW5kIFBN RCBjaGFuZ2VzIGluIHBhdGNoIFt2MiwzLzNdIG5ldC9jbnhrOiBpbnRyb2R1Y2UgcG9vbA0KPiA+ Pj4+PiBzb3J0IGNhcGFiaWxpdHkgSGVyZSwgaW4gY29udHJvbCBwYXRoLCBIVyBwb29scyBhcmUg cHJvZ3JhbW1lZA0KPiA+Pj4+PiBiYXNlZCBvbiB0aGUNCj4gPj4+PiBpbnB1dHMgaXQgcmVjZWl2 ZWQgZnJvbSB0aGUgYXBwbGljYXRpb24uDQo+ID4+Pj4+IE9uY2UgdGhlIEhXIGlzIHByb2dyYW1t ZWQsIHBhY2tldHMgYXJlIHJlY2VpdmVkIG9uIEhXIHBvb2xzIGJhc2VkDQo+ID4+Pj4+IHRoZQ0K PiA+Pj4+IHBhY2tldHMgc2l6ZXMuDQo+ID4+Pj4NCj4gPj4+PiBJIHdhcyBleHBlY3RpbmcgdG8g Y2hhbmdlcyBpbiBkYXRhcGF0aCB0b28sIHNvbWV0aGluZyBsaWtlIGluIFJ4DQo+ID4+Pj4gYnVy c3QgZnVuY3Rpb24gY2hlY2sgaWYgc3BiIG9yIGxwYiBpcyB1c2VkIGFuZCB1cGRhdGUgbWJ1ZiBw b2ludGVycw0KPiA+PiBhY2NvcmRpbmdseS4NCj4gPj4+PiBCdXQgaXQgc2VlbXMgSFcgZG9lc24n dCB3b3JrIHRoaXMgd2F5LCBjYW4geW91IHBsZWFzZSBleHBsYWluIGhvdw0KPiA+Pj4+IHRoaXMg ZmVhdHVyZSB3b3JrcyB0cmFuc3BhcmVudCB0byBkYXRhcGF0aCBjb2RlPw0KPiA+Pj4+DQo+ID4+ Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBJIHdpbGwgdXBsb2FkIFYzIHdoZXJlIFBPT0xfU09SVCBp cyBpbXBsZW1lbnRlZCBhcyBuZXcgUlggT0ZGTE9BRCwNCj4gPj4+Pj4gdW5sZXNzDQo+ID4+Pj4g SWYgeW91IGhhdmUgYW55IG90aGVyIHN1Z2dlc3Rpb24vdGhvdWdodHMuDQo+ID4+Pj4+DQo+ID4+ Pj4NCj4gPj4+PiA8Li4uPg0KPiA+Pj4NCj4gPg0KDQo=