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 AFBDDA0C41; Thu, 30 Sep 2021 11:59:38 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 76E87410EB; Thu, 30 Sep 2021 11:59:38 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 9A15E410EA for ; Thu, 30 Sep 2021 11:59:36 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10122"; a="205301292" X-IronPort-AV: E=Sophos;i="5.85,335,1624345200"; d="scan'208";a="205301292" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2021 02:59:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,335,1624345200"; d="scan'208";a="487266970" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by orsmga008.jf.intel.com with ESMTP; 30 Sep 2021 02:59:34 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Thu, 30 Sep 2021 02:59:34 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Thu, 30 Sep 2021 02:59:34 -0700 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.43) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Thu, 30 Sep 2021 02:59:34 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EE/97/7c3/D6S02SnPvgbNOWe0ryp9b/P0uuENCUsQA00JMA2I9T1nduhZkBsR7aAocyK2s4DT+wlaipxQJ+JwRtzxU8Hqe6KFDlPNiM6iTPFyVgN1dTRXqJ+je0eZ4aIG7WzEWDLYlk1YJnQhgz/ugmF+42aGGkLy12NIs6QdaJ5dKlLajYhe7hiPnsFzVrwNudFU0clIGR8y4jJr0z1uC0OEnv5OY5OgVCMoQLq6q3Um0NYkPFrTZQVZh2GBnWpIIUKuLyjY1+UR9sNkd/aMdZYxSsmwn2j5tKiafiTKHT+cb6w2KFX+2cmmLGCPXpVRjK7hByGWUmZZw5KmhvTA== 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; bh=T4Sha/XOmOc0Vo2m5IHd8qO6cNwUPvjmTB0X0qSkUgc=; b=X3pHWc5KXE+eMxpglr+fygLcahAcRSikVVF9oxc5NO78IQ7MsGYlyy4jIZPfNibMq1zO83xeju69KkTnISQjUv8itb337YqMvph2NxxXUOB1xpEBIcwLTcds6yCkryy9qy1AzkqGMwdAgENVzNBSiz8XvVKzO0ia6rVQJgPjKdGZJd1FANLHs9Z9d7rx+lxcLZzprmX5IVEujstEFAyP+8ZxkXDtvjBgd5BRu21jRbxW/6cf7CRRGmCFhFp57sxBdfHRzElfSHFSER7nB+M4R90Jh1EnlXtCXJS8SzjQNwxWIIjqFoPhY8ReU4pqQZM7G6oNzSsrNVmzRDLEQAfqbw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=T4Sha/XOmOc0Vo2m5IHd8qO6cNwUPvjmTB0X0qSkUgc=; b=p47HllHd6TlFcRhfsTzJ+z7CODT82V4wWiWj2/chP1P+I6sMLt4NeDktaV49Nih9KqcK8mHeDaTHIPE431yj3zh8ZqD9E0KtBeKqu/A9gASLuWHMebmy8spsRCXxmn+6OuYtaOBTOeVmcpvEbZpc64nXjJTsJXDl70J7Z0zKfHA= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB4187.namprd11.prod.outlook.com (2603:10b6:5:19e::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.18; Thu, 30 Sep 2021 09:59:32 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::740e:126e:c785:c8fd]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::740e:126e:c785:c8fd%4]) with mapi id 15.20.4566.014; Thu, 30 Sep 2021 09:59:32 +0000 From: "Ananyev, Konstantin" To: "Xueming(Steven) Li" , "jerinjacobk@gmail.com" , Raslan Darawsheh CC: NBU-Contact-Thomas Monjalon , "andrew.rybchenko@oktetlabs.ru" , "dev@dpdk.org" , "Yigit, Ferruh" Thread-Topic: [dpdk-dev] [PATCH v1] ethdev: introduce shared Rx queue Thread-Index: AQHXjSWyH8VFYJkIWkOxWCsDakefPatt9JUtgABDWZOAR96KAIADZ48AgAAiN4CAABZsAIAAB6SAgAADvQCAAASrUIAADHMAgACDXqCAAKphgIAAFpkggAA5BACAAVES0A== Date: Thu, 30 Sep 2021 09:59:32 +0000 Message-ID: References: <20210727034204.20649-1-xuemingl@nvidia.com> <20210809114716.22035-1-xuemingl@nvidia.com> <6d4308c307a72d62b0be4d61f70f8d0c64a4e7ba.camel@nvidia.com> <15b1590a8899d85e85bb4f7c104b9399654ee160.camel@nvidia.com> <543d0e4ac61633fa179506906f88092a6d928fe6.camel@nvidia.com> <847b881fadbda7a2a4f3defc7ac7824395646497.camel@nvidia.com> In-Reply-To: <847b881fadbda7a2a4f3defc7ac7824395646497.camel@nvidia.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6c2f30a0-d0e6-425c-4e20-08d983f90022 x-ms-traffictypediagnostic: DM6PR11MB4187: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +5jv9pQbSYh52uq9sX0SUkaRacr/v6FBdlOPOfq5xgzQ97CITewSQjLoAgIrCX/+sK0a5EFqBpSn0PwBBGFzgSTAfMEKjnqfrgvJ7dLezsOxKnB+mKyMVQBY+PboZmiw9zbs7ISJxFFINC1iVTIobvsamqwWwwW0ubESgIEI0dP8SN73iHgO1TnRdgKeGGrXg1Ar49iD/k6dXvmunXoioVJHzoFEoifsJjGH419UK+6lYOaHxKWASkPqrxNYNcapcqzMG5cLMGIX3MczjF4hQNlnHUpX2yByvrQnOfE9nag4pVOofMZsIjAuWiGfkeRtei8UPqb6Fp2xEZAFWXmAetG+I9bzHUosCpABX/hMB3GCi7Sv/qnO/rX0K1Jz+6vIN4KPHEJZ0MPcXc1OcuZLr4FoEe/f7LB1De6eyZVRvLhERnQrFCe3b8oGP5Vi6D+OuzBQf1V1QczLIMKTHEqIiWF+pagFhLn6Stla/uQ8oLlmNfOThmcjW61fCXfM0ady20bU5/3DL8VsJjmclR8X6m5pj/ESJ3WfvovA1RQdYhNQMcm+bg6smLa9wdT4BjXwqqF5iTmV660aXi8KL9X9IWEKyvelGOTeJF8To/DiCrdiIFfWxYKP3VXQ04TzkTuZnnKyDNKKmTTzdEpESTu12eXp4psVarBSEuW8wyU4JfPBGCksc2UdNm00+IWeU9/AdzYVpvGEdXaFMZ1S8uKi9Q== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(71200400001)(8676002)(55236004)(38070700005)(55016002)(186003)(122000001)(30864003)(7696005)(66476007)(8936002)(52536014)(508600001)(5660300002)(64756008)(66446008)(66946007)(26005)(6506007)(76116006)(66556008)(4326008)(86362001)(83380400001)(9686003)(33656002)(110136005)(54906003)(2906002)(316002)(107886003)(38100700002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UUErYURLUkpKS0xxZUQzemdhQ3M4Rjl3b0hudnprQnd5OSs2NGxiWFM5SkFx?= =?utf-8?B?T3FkdGZBeVlBem9qZFRMNEl2cnJnZ29qV0VMYmhMeC9nR3JDeVA3S1hZRHJt?= =?utf-8?B?TU9xMHAweW1selpBZUdKaWtwdmt0U0RIQmpxN1daTVJKdDdVWFMweDRmbmdo?= =?utf-8?B?dHR5UnVnd2w0N0dYSUhiamZzWTEvMXNlRGd6eS9VMlBKRDM4bEQwME5hbHY1?= =?utf-8?B?L2dlbkxBN3NKdEZGOUozbTJHNmt3cit1bzNmN2pVQ1R3UlgwVEN0QzcxS1BM?= =?utf-8?B?YkdiQjMwUWcyaWNFN3RYaVVUbzJuaFN5YzJFb1d0dllEa3cwNUhac0Z1alUr?= =?utf-8?B?bHBkb3h4eVM5YTJIY2FibHk0bWJROHU5WmhGTHhuRGI2S3hERHpGdHd2VXhD?= =?utf-8?B?aTJGMGd0WTY0a2Z2NTVWUk5SdTFKU2lZSE5HTVRGZFJ5UXFZZmJJeFcvMXV5?= =?utf-8?B?QVZBcVpWZTI2TVBzdHRwVVJ1cEhjeTc5cWR3dk9rKy9Td3Rpekx6UHN6NE8w?= =?utf-8?B?aWlUZ21QZE1SZDA1TUwzL21oVHFCSng5SkRpZ2ozMTJMSXBUMXA2aUNiQmlR?= =?utf-8?B?N21OV1VZNmVIbU01czFjdkhnZHdxd2QvQjBveG1ZL3h3MitiU1JLbTBlSzVi?= =?utf-8?B?UWd6T2E5S2g5bDIzNHRzUFZuTDEzd25ncmkrLytoV1ZtQ0lRRkRhZlROVURU?= =?utf-8?B?UCtkbFU2bWVEY1AveFhlU1BnMThVV2VGc1htSEc1TzR5YmdnRkliS0E1SmVR?= =?utf-8?B?YjcyUk5HQjJDckxLUjEvcUl4Q2tldVpTZHovQjdUVlp6MmMyK08vLzFPTVZP?= =?utf-8?B?WjUycS9mK2tzaHB6cjdBTDhFZDFZclJzdXZtU3RQRWg1R05Oa2ZGT0ZtSWRD?= =?utf-8?B?MDFzYkxvemZtL0xGWEhaT2xDRGhKejVOVnBoZEZpSVpyWm4wSGhZQzZPcmxk?= =?utf-8?B?VTdTb2xFYlFEaGVscVkxNERveHNDZGxxTWkxUDBaTitiSTY3R1JlSC9HVVJt?= =?utf-8?B?cWRGUmZSakI0OFU1YUZiWnIreVhBV0pFb2JtTm1PUmJxUitzRS9sQXBBdnpO?= =?utf-8?B?ZE5BZ2ozY0ZwNm9RYnBMTGh5WkhQUXIzVTVWL3J2ZXVJNkMrT3p2QW1aVEZW?= =?utf-8?B?RDY5NHBUVXNOT2ZkQTM2c25zS1ZoaytPWkVVeEVxYktLQXpuNlpLREFKZ2Nk?= =?utf-8?B?NUM1Q0lGMHZlUkFrOUZ4dHgyZjFzS2lHaFRWSERERldIbFJSaGhZNmhNMGtL?= =?utf-8?B?aFNlelVHUjBQSGllZTRnUmNDVlA2UlQyaTF2ajN5dG5HenpyeDRoSDB6QWVm?= =?utf-8?B?eU5OclhHenNkRWRwaVo0ZUNHUEY2c0ZsZHpZWDM4VXFreGw5TnA4b1lCK2VC?= =?utf-8?B?VFpNU2tvSVhNL2EyMVM1VnlpdE1rLzRjOGtaNGtGN2Y2MkxiUnUxOTJVbmZ3?= =?utf-8?B?emp2ZlRINFBVSDVUUEt4V0t4RjJjUzgwMC9sb2tRdVpRbWtPZWE3YitBTG4y?= =?utf-8?B?c1Boa0ZSWHhjcEdGbkkwUmQ1bjRsckdqRDM0NS9aTTJGaS8vVXNYTEhqcFJT?= =?utf-8?B?UXYxR2poQ3dGK2hRR0Fpd3AvQmRGeFhaditreUtmMUkyL2MrVFFpMzdObk9m?= =?utf-8?B?LzBWVVZMSkEzbitSWW04cGQvai8wU1hjT2VGR0pTajBmUjFnemFpYktMNVpM?= =?utf-8?B?R1IxSFE3UUNXeUh1L0RUOGpSamZTcjdxUUFTODIxT1BkZ2JYalIzRjIzTjFo?= =?utf-8?Q?V5BR1uAJZF2bGrbFFfpVSh6e3QtIYHlBwyCzX+i?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6c2f30a0-d0e6-425c-4e20-08d983f90022 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Sep 2021 09:59:32.0690 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: FdKM0lhw2oyAe7zlKOWeUIr/8KODxHX1uo8ntqitoHll3kKAMiPAisIpmeMWYp0zAax3IH1Kgoqlu8vnJIb9EkD2mzRUCRNiA4bNVzAugaY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4187 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v1] ethdev: introduce shared Rx queue X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gT24gV2VkLCAyMDIxLTA5LTI5IGF0IDEwOjIwICswMDAwLCBBbmFueWV2LCBLb25zdGFu dGluIHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSW4gY3VycmVu dCBEUERLIGZyYW1ld29yaywgZWFjaCBSWA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gcXVldWUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGlzDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBwcmUtbG9hZGVkIHdpdGggbWJ1ZnMNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGZvciBpbmNvbWluZyBwYWNrZXRzLiBX aGVuIG51bWJlciBvZg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcmVwcmVz ZW50b3JzIHNjYWxlIG91dCBpbiBhDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiBzd2l0Y2ggZG9tYWluLCB0aGUgbWVtb3J5IGNvbnN1bXB0aW9uDQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiBiZWNhbWUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IHNpZ25pZmljYW50LiBNb3N0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiBpbXBvcnRhbnQsIHBvbGxpbmcgYWxsIHBvcnRzIGxlYWRzIHRvDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBoaWdoDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiBjYWNoZSBtaXNzLCBoaWdoDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiBsYXRlbmN5IGFuZCBsb3cgdGhyb3VnaHB1dC4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGlzIHBh dGNoIGludHJvZHVjZXMgc2hhcmVkIFJYDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiBxdWV1ZS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFBvcnRzDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB3aXRoIHNhbWUNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGNvbmZpZ3VyYXRpb24gaW4gYSBzd2l0Y2ggZG9tYWlu DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBjb3VsZA0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc2hhcmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IFJYIHF1ZXVlIHNldCBieSBzcGVjaWZ5aW5nIHNoYXJpbmcNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGdyb3VwLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gUG9sbGluZyBhbnkgcXVldWUgdXNpbmcgc2FtZSBzaGFyZWQNCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFJYDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiBxdWV1ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcmVj ZWl2ZXMgcGFja2V0cyBmcm9tDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBh bGwgbWVtYmVyIHBvcnRzLiBTb3VyY2UgcG9ydCBpcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gaWRlbnRpZmllZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gYnkgbWJ1Zi0+cG9ydC4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBQb3J0IHF1ZXVlIG51bWJlciBpbiBh IHNoYXJlZCBncm91cA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc2hvdWxk IGJlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBpZGVudGljYWwuIFF1ZXVl DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBpbmRleCBpcw0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gMToxIG1hcHBlZCBpbiBzaGFyZWQgZ3JvdXAuDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gU2hhcmUgUlggcXVldWUgaXMgc3VwcG9zZWQgdG8gYmUNCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHBvbGxlZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gb24NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNh bWUgdGhyZWFkLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE11bHRpcGxlIGdyb3VwcyBpcyBzdXBwb3J0ZWQg YnkgZ3JvdXANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IElELg0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gSXMgdGhpcyBvZmZsb2FkIHNwZWNpZmljIHRvIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+IHJlcHJlc2VudG9yPyBJZg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IHNvIGNhbiB0aGlzIG5hbWUgYmUgY2hhbmdlZA0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+IHNwZWNpZmljYWxseSB0bw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IHJlcHJlc2VudG9yPw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBZZXMsIFBGIGFuZCByZXByZXNlbnRvciBp biBzd2l0Y2ggZG9tYWluDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGNvdWxkDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRha2UgYWR2YW50YWdlLg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IElmIGl0IGlzIGZvciBhIGdlbmVyaWMgY2FzZSwgaG93IHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+IGZsb3cNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBv cmRlcmluZyB3aWxsIGJlIG1haW50YWluZWQ/DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE5vdCBxdWl0ZSBzdXJlIHRoYXQg SSB1bmRlcnN0b29kIHlvdXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcXVlc3Rp b24uDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFRoZSBjb250cm9sIHBhdGggb2Yg aXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYWxtb3N0IHNhbWUgYXMgYmVmb3Jl LCBQRiBhbmQgcmVwcmVzZW50b3INCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcG9y dA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBzdGlsbCBuZWVkZWQsIHJ0ZSBmbG93 cyBub3QgaW1wYWN0ZWQuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFF1ZXVlcyBz dGlsbCBuZWVkZWQgZm9yIGVhY2ggbWVtYmVyIHBvcnQsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IGRlc2NyaXB0b3JzKG1idWYpIHdpbGwgYmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gc3VwcGxpZWQgZnJvbSBzaGFyZWQgUnggcXVldWUgaW4gbXkgUE1EDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGltcGxlbWVudGF0aW9uLg0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE15IHF1ZXN0 aW9uIHdhcyBpZiBjcmVhdGUgYSBnZW5lcmljDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiBSVEVfRVRIX1JYX09GRkxPQURfU0hBUkVEX1JYUSBvZmZsb2FkLA0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gbXVsdGlwbGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGV0 aGRldiByZWNlaXZlIHF1ZXVlcyBsYW5kIGludG8NCj4gPiA+ID4gPiA+ID4gdGhlIHNhbWUNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHJlY2VpdmUgcXVldWUsIEluIHRoYXQgY2FzZSwg aG93IHRoZSBmbG93DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBvcmRlcg0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IG1haW50YWluZWQgZm9yIHJlc3BlY3RpdmUgcmVjZWl2ZSBxdWV1ZXMuDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJIGd1ZXNzIHRoZSBx dWVzdGlvbiBpcyB0ZXN0cG1kIGZvcndhcmQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBz dHJlYW0/DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlDQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gZm9yd2FyZGluZyBsb2dpYyBoYXMgdG8gYmUgY2hhbmdlZCBzbGlnaHRseQ0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGluDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gY2FzZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG9mIHNoYXJlZCByeHEuDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYmFzaWNhbGx5IGZvciBlYWNoIHBhY2tldCBpbiByeF9i dXJzdCByZXN1bHQsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gbG9va3VwDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gc291cmNlIHN0cmVhbSBhY2NvcmRpbmcgdG8gbWJ1Zi0+cG9y dCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBmb3J3YXJkaW5nDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gdG8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0YXJnZXQgZnMu DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gUGFja2V0cyBmcm9tIHNhbWUgc291cmNlIHBv cnQgY291bGQgYmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBncm91cGVkIGFzDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNt YWxsIGJ1cnN0IHRvIHByb2Nlc3MsIHRoaXMgd2lsbCBhY2NlbGVyYXRlcw0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHBlcmZvcm1h bmNlIGlmIHRyYWZmaWMNCj4gPiA+ID4gPiA+ID4gY29tZSBmcm9tDQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gbGltaXRlZCBwb3J0cy4gSSdsbCBpbnRyb2R1Y2Ugc29tZSBjb21tb24gYXBp DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdG8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiBkbw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNoYXJkIHJ4cSBmb3J3YXJkaW5n LCBjYWxsIGl0IHdpdGggcGFja2V0cw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGhhbmRs aW5nDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY2FsbGJhY2ssIHNvIGl0IHN1aXRlcyBm b3INCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBhbGwgZm9yd2FyZGluZyBlbmdpbmUuIFdp bGwgc2VudCBwYXRjaGVzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc29vbi4NCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiBBbGwgcG9ydHMgd2lsbCBwdXQgdGhlIHBhY2tldHMgaW4gdG8g dGhlIHNhbWUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcXVldWUNCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gKHNoYXJlIHF1ZXVlKSwgcmlnaHQ/IERvZXMNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gdGhpcyBtZWFucyBvbmx5IHNpbmdsZSBjb3JlIHdpbGwgcG9sbCBvbmx5LA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB3aGF0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHdp bGwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaGFwcGVuIGlmIHRoZXJlIGFyZQ0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiBtdWx0aXBsZSBjb3JlcyBwb2xsaW5nLCB3b24ndCBpdCBjYXVz ZSBwcm9ibGVtPw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiBBbmQgaWYgdGhpcyByZXF1aXJlcyBzcGVjaWZpYyBjaGFuZ2VzIGluIHRoZQ0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBhcHBsaWNhdGlvbiwgSSBhbSBub3Qgc3VyZSBhYm91dA0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUgc29sdXRpb24sIGNhbid0IHRoaXMgd29yayBp biBhIHRyYW5zcGFyZW50DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHdheQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiB0bw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUgYXBwbGlj YXRpb24/DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g RGlzY3Vzc2VkIHdpdGggSmVyaW4sIG5ldyBBUEkgaW50cm9kdWNlZCBpbiB2Mw0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gMi84DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGF0DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiBhZ2dyZWdhdGUgcG9ydHMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IGluIHNhbWUgZ3JvdXAgaW50byBvbmUgbmV3IHBvcnQuIFVzZXJzIGNvdWxkDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiBzY2hlZHVsZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcG9sbGluZyBv biB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGFnZ3JlZ2F0ZWQgcG9ydCBpbnN0ZWFkIG9m IGFsbCBtZW1iZXIgcG9ydHMuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiBUaGUgdjMgc3RpbGwgaGFzIHRlc3RwbWQgY2hhbmdlcyBpbiBmYXN0cGF0aC4NCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiBSaWdodD8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBJTU8sDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gRm9yIHRoaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBmZWF0 dXJlLCB3ZSBzaG91bGQgbm90IGNoYW5nZSBmYXN0cGF0aCBvZiB0ZXN0cG1kDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gYXBwbGljYXRpb24uIEluc3RlYWQsIHRlc3RwbWQgY2FuIHVzZSBhZ2dyZWdh dGVkDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcG9ydHMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBw cm9iYWJseSBhcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNlcGFyYXRlIGZ3ZF9lbmdpbmUgdG8g c2hvdyBob3cgdG8gdXNlIHRoaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBmZWF0dXJlLg0KPiA+ ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBHb29kIHBvaW50IHRvIGRpc2N1 c3MgOikgVGhlcmUgYXJlIHR3byBzdHJhdGVnaWVzIHRvDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHBv bGxpbmcNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYSBzaGFyZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4g UnhxOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAxLiBwb2xsaW5nIGVhY2ggbWVtYmVyIHBvcnQNCj4g PiA+ID4gPiA+ID4gPiA+ID4gwqDCoMKgQWxsIGZvcndhcmRpbmcgZW5naW5lcyBjYW4gYmUgcmV1 c2VkIHRvIHdvcmsgYXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYmVmb3JlLg0KPiA+ID4gPiA+ID4g PiA+ID4gPiDCoMKgwqBNeSB0ZXN0cG1kIHBhdGNoZXMgYXJlIGVmZm9ydHMgdG93YXJkcyB0aGlz DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGRpcmVjdGlvbi4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gwqDC oMKgRG9lcyB5b3VyIFBNRCBzdXBwb3J0IHRoaXM/DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+ID4gTm90IHVuZm9ydHVuYXRlbHkuIE1vcmUgdGhhbiB0aGF0LCBldmVyeSBhcHBs aWNhdGlvbg0KPiA+ID4gPiA+ID4gPiA+ID4gbmVlZHMNCj4gPiA+ID4gPiA+ID4gPiA+IHRvDQo+ ID4gPiA+ID4gPiA+ID4gPiBjaGFuZ2UNCj4gPiA+ID4gPiA+ID4gPiA+IHRvIHN1cHBvcnQgdGhp cyBtb2RlbC4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEJvdGggc3RyYXRlZ2ll cyBuZWVkIHVzZXIgYXBwbGljYXRpb24gdG8gcmVzb2x2ZSBwb3J0IElEDQo+ID4gPiA+ID4gPiA+ ID4gZnJvbQ0KPiA+ID4gPiA+ID4gPiA+IG1idWYgYW5kDQo+ID4gPiA+ID4gPiA+ID4gcHJvY2Vz cyBhY2NvcmRpbmdseS4NCj4gPiA+ID4gPiA+ID4gPiBUaGlzIG9uZSBkb2Vzbid0IGRlbWFuZCBh Z2dyZWdhdGVkIHBvcnQsIG5vIHBvbGxpbmcNCj4gPiA+ID4gPiA+ID4gPiBzY2hlZHVsZQ0KPiA+ ID4gPiA+ID4gPiA+IGNoYW5nZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSSB3YXMg dGhpbmtpbmcsIG1idWYgd2lsbCBiZSB1cGRhdGVkIGZyb20gZHJpdmVyL2FnZ3JlZ2F0b3INCj4g PiA+ID4gPiA+ID4gcG9ydCBhcw0KPiA+ID4gPiA+ID4gPiB3aGVuIGl0DQo+ID4gPiA+ID4gPiA+ IGNvbWVzIHRvIGFwcGxpY2F0aW9uLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAyLiBwb2xsaW5nIGFnZ3JlZ2F0 ZWQgcG9ydA0KPiA+ID4gPiA+ID4gPiA+ID4gPiDCoMKgwqBCZXNpZGVzIGZvcndhcmRpbmcgZW5n aW5lLCBuZWVkIG1vcmUgd29yayB0byB0bw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBkZW1vDQo+ID4g PiA+ID4gPiA+ID4gPiA+IGl0Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPiDCoMKgwqBUaGlzIGlzIGFu IG9wdGlvbmFsIEFQSSwgbm90IHN1cHBvcnRlZCBieSBteSBQTUQNCj4gPiA+ID4gPiA+ID4gPiA+ ID4geWV0Lg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IFdlIGFyZSB0aGlu a2luZyBvZiBpbXBsZW1lbnRpbmcgdGhpcyBQTUQgd2hlbiBpdCBjb21lcw0KPiA+ID4gPiA+ID4g PiA+ID4gdG8NCj4gPiA+ID4gPiA+ID4gPiA+IGl0LA0KPiA+ID4gPiA+ID4gPiA+ID4gaWUuDQo+ ID4gPiA+ID4gPiA+ID4gPiB3aXRob3V0IGFwcGxpY2F0aW9uIGNoYW5nZSBpbiBmYXN0cGF0aA0K PiA+ID4gPiA+ID4gPiA+ID4gbG9naWMuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g PiBGYXN0cGF0aCBoYXZlIHRvIHJlc29sdmUgcG9ydCBJRCBhbnl3YXkgYW5kIGZvcndhcmRpbmcN Cj4gPiA+ID4gPiA+ID4gPiBhY2NvcmRpbmcNCj4gPiA+ID4gPiA+ID4gPiB0bw0KPiA+ID4gPiA+ ID4gPiA+IGxvZ2ljLiBGb3J3YXJkaW5nIGVuZ2luZSBuZWVkIHRvIGFkYXB0IHRvIHN1cHBvcnQg c2hhcmQNCj4gPiA+ID4gPiA+ID4gPiBSeHEuDQo+ID4gPiA+ID4gPiA+ID4gRm9ydHVuYXRlbHks IGluIHRlc3RwbWQsIHRoaXMgY2FuIGJlIGRvbmUgd2l0aCBhbg0KPiA+ID4gPiA+ID4gPiA+IGFi c3RyYWN0DQo+ID4gPiA+ID4gPiA+ID4gQVBJLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ID4gTGV0J3MgZGVmZXIgcGFydCAyIHVudGlsIHNvbWUgUE1EIHJlYWxseSBzdXBwb3J0IGl0 IGFuZA0KPiA+ID4gPiA+ID4gPiA+IHRlc3RlZCwNCj4gPiA+ID4gPiA+ID4gPiBob3cgZG8NCj4g PiA+ID4gPiA+ID4gPiB5b3UgdGhpbms/DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFdl IGFyZSBub3QgcGxhbm5pbmcgdG8gdXNlIHRoaXMgZmVhdHVyZSBzbyBlaXRoZXIgd2F5IGl0IGlz DQo+ID4gPiA+ID4gPiA+IE9LDQo+ID4gPiA+ID4gPiA+IHRvDQo+ID4gPiA+ID4gPiA+IG1lLg0K PiA+ID4gPiA+ID4gPiBJIGxlYXZlIHRvIGV0aGRldiBtYWludGFpbmVycyBkZWNpZGUgYmV0d2Vl biAxIHZzIDIuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEkgZG8gaGF2ZSBhIHN0cm9u ZyBvcGluaW9uIG5vdCBjaGFuZ2luZyB0aGUgdGVzdHBtZCBiYXNpYw0KPiA+ID4gPiA+ID4gPiBm b3J3YXJkDQo+ID4gPiA+ID4gPiA+IGVuZ2luZXMNCj4gPiA+ID4gPiA+ID4gZm9yIHRoaXMgZmVh dHVyZS5JIHdvdWxkIGxpa2UgdG8ga2VlcCBpdCBzaW1wbGUgYXMgZmFzdHBhdGgNCj4gPiA+ID4g PiA+ID4gb3B0aW1pemVkIGFuZCB3b3VsZA0KPiA+ID4gPiA+ID4gPiBsaWtlIHRvIGFkZCBhIHNl cGFyYXRlIEZvcndhcmRpbmcgZW5naW5lIGFzIG1lYW5zIHRvIHZlcmlmeQ0KPiA+ID4gPiA+ID4g PiB0aGlzDQo+ID4gPiA+ID4gPiA+IGZlYXR1cmUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g KzEgdG8gdGhhdC4NCj4gPiA+ID4gPiA+IEkgZG9uJ3QgdGhpbmsgaXQgYSAnY29tbW9uJyBmZWF0 dXJlLg0KPiA+ID4gPiA+ID4gU28gc2VwYXJhdGUgRldEIG1vZGUgc2VlbXMgbGlrZSBhIGJlc3Qg Y2hvaWNlIHRvIG1lLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLTEgOikNCj4gPiA+ID4gPiBUaGVy ZSB3YXMgc29tZSBpbnRlcm5hbCByZXF1aXJlbWVudCBmcm9tIHRlc3QgdGVhbSwgdGhleSBuZWVk DQo+ID4gPiA+ID4gdG8NCj4gPiA+ID4gPiB2ZXJpZnkNCj4gPiA+ID4gPiBhbGwgZmVhdHVyZXMg bGlrZSBwYWNrZXQgY29udGVudCwgcnNzLCB2bGFuLCBjaGVja3N1bSwNCj4gPiA+ID4gPiBydGVf Zmxvdy4uLg0KPiA+ID4gPiA+IHRvDQo+ID4gPiA+ID4gYmUgd29ya2luZyBiYXNlZCBvbiBzaGFy ZWQgcnggcXVldWUuDQo+ID4gPiA+DQo+ID4gPiA+IFRoZW4gSSBzdXBwb3NlIHlvdSdsbCBuZWVk IHRvIHdyaXRlIHJlYWxseSBjb21wcmVoZW5zaXZlIGZ3ZC0NCj4gPiA+ID4gZW5naW5lDQo+ID4g PiA+IHRvIHNhdGlzZnkgeW91ciB0ZXN0IHRlYW0gOikNCj4gPiA+ID4gU3BlYWtpbmcgc2VyaW91 c2x5LCBJIHN0aWxsIGRvbid0IHVuZGVyc3RhbmQgd2h5IGRvIHlvdSBuZWVkIGFsbA0KPiA+ID4g PiBhdmFpbGFibGUgZndkLWVuZ2luZXMgdG8gdmVyaWZ5IHRoaXMgZmVhdHVyZS4NCj4gPiA+DQo+ ID4gPiBUaGUgc2hhcmVkIFJ4cSBpcyBsb3cgbGV2ZWwgZmVhdHVyZSwgbmVlZCB0byBtYWtlIHN1 cmUgZHJpdmVyDQo+ID4gPiBoaWdoZXINCj4gPiA+IGxldmVsIGZlYXR1cmVzIHdvcmtpbmcgcHJv cGVybHkuIGZ3ZC1lbmdpbmVzIGxpa2UgY3N1bSBjaGVja3MgaW5wdXQNCj4gPiA+IHBhY2tldCBh bmQgZW5hYmxlIEwzL0w0IGNoZWNrc3VtIGFuZCB0dW5uZWwgb2ZmbG9hZHMgYWNjb3JkaW5nbHks DQo+ID4gPiBvdGhlciBlbmdpbmVzIGRvIHRoZWlyIG93biBmZWF0dXJlIHZlcmlmaWNhdGlvbi4g QWxsIHRlc3QNCj4gPiA+IGF1dG9tYXRpb24NCj4gPiA+IGNvdWxkIGJlIHJldXNlZCB3aXRoIHRo ZXNlIGVuZ2luZXMgc3VwcG9ydGVkIHNlYW1sZXNzbHkuDQo+ID4gPg0KPiA+ID4gPiBGcm9tIHdo YXQgSSB1bmRlcnN0YW5kLCBtYWluIHB1cnBvc2Ugb2YgeW91ciBjaGFuZ2VzIHRvIHRlc3QtcG1k Og0KPiA+ID4gPiBhbGxvdyB0byBmd2QgcGFja2V0IHRob3VnaCBkaWZmZXJlbnQgZndkX3N0cmVh bSAoVFggdGhyb3VnaA0KPiA+ID4gPiBkaWZmZXJlbnQNCj4gPiA+ID4gSFcgcXVldWUpLg0KPiA+ ID4NCj4gPiA+IFllcywgZWFjaCBtYnVmIGluIGJ1cnN0IGNvbWUgZnJvbSBkaWZmZXJudCBwb3J0 LCB0ZXN0cG1kIGN1cnJlbnQNCj4gPiA+IGZ3ZC0NCj4gPiA+IGVuZ2luZXMgcmVsaWVzIGhlYXZp bHkgb24gc291cmNlIGZvcndhcmRpbmcgc3RyZWFtLCB0aGF0J3Mgd2h5IHRoZQ0KPiA+ID4gcGF0 Y2ggZGV2aWRlIGJ1cnN0IHJlc3VsdCBtYnVmcyBpbnRvIHN1Yi1idXJzdCBhbmQgdXNlIG9yZ2lu YWwgZndkLQ0KPiA+ID4gZW5naW5lIGNhbGxiYWNrIHRvIGhhbmRsZS4gSG93IHRvIGhhbmRsZSBp cyBub3QgY2hhbmdlZC4NCj4gPiA+DQo+ID4gPiA+IEluIHRoZW9yeSwgaWYgaW1wbGVtZW50ZWQg aW4gZ2VuZXJpYyBhbmQgZXh0ZW5kYWJsZSB3YXkgLSB0aGF0DQo+ID4gPiA+IG1pZ2h0IGJlIGEg dXNlZnVsIGFkZC1vbiB0byB0ZXNwbWQgZndkIGZ1bmN0aW9uYWxpdHkuDQo+ID4gPiA+IEJ1dCBj dXJyZW50IGltcGxlbWVudGF0aW9uIGxvb2tzIHZlcnkgY2FzZSBzcGVjaWZpYy4NCj4gPiA+ID4g QW5kIGFzIEkgZG9uJ3QgdGhpbmsgaXQgaXMgYSBjb21tb24gY2FzZSwgSSBkb24ndCBzZWUgbXVj aCBwb2ludA0KPiA+ID4gPiB0bw0KPiA+ID4gPiBwb2xsdXRlDQo+ID4gPiA+IGJhc2ljIGZ3ZCBj YXNlcyB3aXRoIGl0Lg0KPiA+ID4NCj4gPiA+IFNoYXJlZCBSeHEgaXMgYSBldGhkZXYgZmVhdHVy ZSB0aGF0IGltcGFjdHMgaG93IHBhY2tldHMgZ2V0DQo+ID4gPiBoYW5kbGVkLg0KPiA+ID4gSXQn cyBuYXR1cmFsIHRvIHVwZGF0ZSBmb3J3YXJkaW5nIGVuZ2luZXMgdG8gYXZvaWQgYnJva2VuLg0K PiA+DQo+ID4gV2h5IGlzIHRoYXQ/DQo+ID4gQWxsIGl0IGFmZmVjdHMgdGhlIHdheSB5b3UgUlgg dGhlIHBhY2tldHMuDQo+ID4gU28gd2h5ICphbGwqIEZXRCBlbmdpbmVzIGhhdmUgdG8gYmUgdXBk YXRlZD8NCj4gDQo+IFBlb3BsZSB3aWxsIGFzayB3aHkgc29tZSBGV0QgZW5naW5lIGNhbid0IHdv cms/DQoNCkl0IGNhbiBiZSBkb2N1bWVudGVkOiB3aGljaCBmd2QgZW5naW5lIHN1cHBvc2VkIHRv IHdvcmsgcHJvcGVybHkNCndpdGggdGhpcyBmZWF0dXJlLCB3aGljaCBub3QuDQpCVFcsIGFzIEkg dW5kZXJzdGFuZCwgYXMgbG9uZyBhcyBSWCBxdWV1ZXMgYXJlIHByb3Blcmx5IGFzc2lnbmVkIHRv IGxjb3JlcywNCmFueSBmd2QgZW5naW5lIHdpbGwgY29udGludWUgdG8gd29yay4NCkp1c3QgZm9y IGVuZ2luZXMgdGhhdCBhcmUgbm90IGF3YXJlIGFib3V0IHRoaXMgZmVhdHVyZSBwYWNrZXRzIGNh biBiZSBzZW5kDQpvdXQgdmlhIHdyb25nIFRYIHF1ZXVlLiANCiANCj4gPiBMZXQgc2F5IHdoYXQg c3BlY2lmaWMgeW91IGFyZSBnb2luZyB0byB0ZXN0IHdpdGggbWFjc3dhcCB2cyBtYWNmd2QNCj4g PiBtb2RlIGZvciB0aGF0IGZlYXR1cmU/DQo+IA0KPiBJZiBwZW9wbGUgd2FudCB0byB0ZXN0IE5J QyB3aXRoIHJlYWwgc3dpdGNoLCBvciBtYWtlIHN1cmUgTDIgbGF5ZXIgbm90DQo+IGdldCBjb3Jy dXB0ZWQuDQoNCkkgdW5kZXJzdGFuZCB0aGF0LCB3aGF0IEkgYW0gc2F5aW5nIHRoYXQgeW91IHBy b2JhYmx5IGRvbid0IG5lZWQgYm90aCB0byB0ZXN0IHRoaXMgZmVhdHVyZS4NCg0KPiA+IEkgc3Rp bGwgdGhpbmsgb25lIHNwZWNpZmljIEZXRCBlbmdpbmUgaXMgZW5vdWdoIHRvIGNvdmVyIG1ham9y aXR5IG9mDQo+ID4gdGVzdCBjYXNlcy4NCj4gDQo+IFllcywgcnhvbmx5IHNob3VsZCBiZSBzdWZm aWNpZW50IHRvIHZlcmlmeSB0aGUgZnVuZGFtZXRhbCwgYnV0IHRvDQo+IHZlcmlmeSBjc3VtLCB0 aW1pbmcsIG5lZWQgb3RoZXJzLiBTb21lIGJhY2syYmFjayB0ZXN0IHN5c3RlbSBuZWVkIGlvDQo+ IGZvcndhcmRpbmcsIHJlYWwgc3dpdGNoIGRlcG9seW1lbnQgbmVlZCBtYWNzd2FwLi4uDQoNCk9r LCBidXQgbm90aGluZyBzdG9wcyB5b3UgdG8gcGlja3VwIGZvciB5b3VyIHB1cnBvc2VzIGEgRldE IGVuZ2luZSB3aXRoIG1vc3QgY29tcHJlaGVuc2l2ZSBmdW5jdGlvbmFsaXR5Og0KbWFjc3dhcCwg IDV0c3dhcCwgZXZlbiA1dHN3YXArY3N1bSB1cGRhdGUgLi4uLg0KDQo+IA0KPiANCj4gPg0KPiA+ ID4gVGhlIG5ldyBtYWNybyBpcyBpbnRyb2R1Y2VkIHRvIG1pbmltaXplIHBlcmZvcm1hbmNlIGlt cGFjdCwgSSdtDQo+ID4gPiBhbHNvDQo+ID4gPiB3b25kZXJpbmcgaXMgdGhlcmUgYW4gZWxlZ2Fu dCBzb2x1dGlvbiA6KQ0KPiA+DQo+ID4gSSB0aGluayBKZXJpbiBzdWdnZXN0ZWQgYSBnb29kIGFs dGVybmF0aXZlIHdpdGggZXZlbnRkZXYuDQo+ID4gQXMgYW5vdGhlciBhcHByb2FjaCAtIG1pZ2h0 IGJlIGNvbnNpZGVyIHRvIGFkZCBhbiBSWCBjYWxsYmFjayB0aGF0DQo+ID4gd2lsbCByZXR1cm4g cGFja2V0cyBvbmx5IGZvciBvbmUgcGFydGljdWxhciBwb3J0ICh3aGlsZSBrZWVwaW5nDQo+ID4g cGFja2V0cw0KPiA+IGZvciBvdGhlciBwb3J0cyBjYWNoZWQgaW50ZXJuYWxseSkuDQo+IA0KPiBU aGlzIGFuZCB0aGUgYWdncmVhdGUgcG9ydCBBUEkgY291bGQgYmUgb3B0aW9ucyBpbiBldGhkZXYg bGF5ZXIgbGF0ZXIuDQo+IEl0IGNhbid0IGJlIHRoZSBmdW5kYW1lbnRhbCBkdWUgcGVyZm9ybWFu Y2UgbG9zcyBhbmQgcG90ZW50aWFsIGNhY2hlDQo+IG1pc3MuDQo+IA0KPiA+IEFzIGEgJ3dpbGQn IHRob3VnaHQgLSBjaGFuZ2UgdGVzdHBtZCBmd2QgbG9naWMgdG8gYWxsb3cgbXVsdGlwbGUgVFgN Cj4gPiBxdWV1ZXMNCj4gPiBwZXIgZndkX3N0cmVhbSBhbmQgYWRkIGEgZnVuY3Rpb24gdG8gZG8g VFggc3dpdGNoaW5nIGxvZ2ljLg0KPiA+IEJ1dCB0aGF0J3MgcHJvYmFibHkgcXVpdGUgYSBiaWcg Y2hhbmdlIHRoYXQgbmVlZHMgYSBsb3Qgb2Ygd29yay4NCj4gPg0KPiA+ID4gQ3VycmVudCBwZXJm b3JtYW5jZSBwZW5hbHR5DQo+ID4gPiBpcyBvbmUgImlmIHVubGlrZWx5IiBwZXIgYnVyc3QuDQo+ ID4NCj4gPiBJdCBpcyBub3Qgb25seSBhYm91dCBwZXJmb3JtYW5jZSBpbXBhY3QuDQo+ID4gSXQg aXMgYWJvdXQga2VlcGluZyB0ZXN0LXBtZCBjb2RlIHNpbXBsZSBhbmQgbWFpbnRhaW5hYmxlLg0K PiA+ID4NCj4gPiA+IFRoaW5rIGluIHJldmVyc2UgZGlyZWN0aW9uLCBpZiB3ZSBkb24ndCB1cGRh dGUgZndkLWVuZ2luZXMgaGVyZSwNCj4gPiA+IGFsbA0KPiA+ID4gbWFsZnVuY3Rpb24gd2hlbiBz aGFyZWQgcnhxIGVuYWJsZWQsIHVzZXJzIGNhbid0IHZlcmlmeSBkcml2ZXINCj4gPiA+IGZlYXR1 cmVzLCBhcmUgeW91IGV4cGVjdGluZyB0aGlzPw0KPiA+DQo+ID4gSSBleHBlY3QgZGV2ZWxvcGVy cyBub3QgdG8gcmV3cml0ZSB3aG9sZSB0ZXN0LXBtZCBmd2QgY29kZSBmb3IgZWFjaA0KPiA+IG5l dyBldGhkZXYgZmVhdHVyZS4NCj4gDQo+IEhlcmUganVzdCBhYnN0cmFjdCBkdXBsaWNhdGVkIGNv ZGUgZnJvbSBmd2QtZW5naW5lcywgYW4gaW1wcm92ZW1lbnQsDQo+IGtlZXAgdGVzdC1wbWQgY29k ZSBzaW1wbGUgYW5kIG1hbnRhaW5hYmxlLg0KPiANCj4gPiBTcGVjaWFsbHkgZm9yIHRoZSBmZWF0 dXJlIHRoYXQgaXMgbm90IHdpZGVseSB1c2VkLg0KPiANCj4gQmFzZWQgb24gdGhlIGh1Z2UgbWVt b3J5IHNhdmluZywgcGVyZm9ybWFuY2UgYW5kIGxhdGVuY3kgZ2FpbnMsIGl0IHdpbGwNCj4gYmUg cG9wdWxhciB0byB1c2Vycy4NCj4gDQo+IEJ1dCB0aGUgdGVzdC1wbWQgaXMgbm90IGNyaXRpY2Fs IHRvIHRoaXMgZmVhdHVyZSwgSSdtIG9rIHRvIGRyb3AgdGhlDQo+IGZ3ZC1lbmdpbmUgc3VwcG9y dCBpZiB5b3UgYWdyZWUuDQoNCk5vdCBzdXJlIGZ1bGx5IHVuZGVyc3RhbmQgeW91IGhlcmUuLi4N CklmIHlvdSBzYXlpbmcgdGhhdCB5b3UgZGVjaWRlZCB0byBkZW1vbnN0cmF0ZSB0aGlzIGZlYXR1 cmUgdmlhIHNvbWUgb3RoZXIgYXBwL2V4YW1wbGUNCmFuZCBwcmVmZXIgdG8gYWJhbmRvbiB0aGVz ZSBjaGFuZ2VzIGluIHRlc3RwbWQgLQ0KdGhlbiwgeWVzIEkgZG9uJ3Qgc2VlIGFueSBwcm9ibGVt cyB3aXRoIHRoYXQuDQo=