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 8D33EA0C46; Tue, 28 Sep 2021 07:50:30 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 16C1F40E3C; Tue, 28 Sep 2021 07:50:30 +0200 (CEST) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2073.outbound.protection.outlook.com [40.107.243.73]) by mails.dpdk.org (Postfix) with ESMTP id BEFD640DF6 for ; Tue, 28 Sep 2021 07:50:27 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UjFgJtisY0+DlVbGm3RhEZgPHTzLvmhrGrnQViwl8mgk19v0zjoN2wpXCrX12xuwpyydwHLGIBWbmKfGvGWyJcBFGXqisSs9fhbxrIW4NZRIa19xfpt4+gr4KC4Sm6V7YplRpfdPfXKckCgSw/WTYtz6ejCbVRtk6TU9lrn7Hn/SiFGKyRLReK1N7kSxrQD/bUn+uK6zYYjpAxU1cLqvdUEd6LWQF6dpzlP0+MCp6qjToByBERZDHMebyYE69ZJRnoKoi9umNyot9S+O9bYh55MUdTwBHy9PDLQOgnJnUNOPzub4CsJ8NlO1qvAvwjCjkkDlXVEB89ORssfi2+riyg== 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=RJDhlpg2Nxmg0NcWz0GztF9xTR5R2XYyMlXHk4Am1LQ=; b=VRx40YgSCFeCO+Qyx9RMdougWH37rbtp16YLzfwdiV9mbaWWSz6N4DwN9+znCmvXLoFJo+sr/G9p9n4yFkClq8PTcwfMogPez0MfL9h0QQAdKz7ZywfREiGK5Vohz+6w68SKXgRweTdTidjRBWAq06zquu6A+i2J0VnNJD8i2NBnM1QEK1aq48gc2vj8FzLK9q3DZwdzxNSxszEUw5TSJuQAxoXFI++ZoQYk20sC4KC2qvjKGe8fY6VJHYqtsYsvWbUoTepErT9S7bCARd17y5fISp1e2DdIGLWSR73d6myepjUO8te8E+G2zIQmDGFsR8G0m+V2+wDR0hJeAIxG5w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RJDhlpg2Nxmg0NcWz0GztF9xTR5R2XYyMlXHk4Am1LQ=; b=ZnGVCH+3bUlBNT6DXmk0dBETe/h0z0eG9fosZUgSY05Dhb/iIppBuoL4xQe/YNU7JxqbnMgHg/hFUl1oRqBPj9JAzIZI3Z/SVHLlW56jsHAAMWWyWP8452gvlRJre+b9MRtkrNqbImb1abUMjWGP4M1zDxfWR8nefyXDuTUwA3BG2JjagNF1BZQmQMORuGyNQ0pksAqwQHx1anYZZnJjsEL4hkyzIDLOFNEtq8kUaP+a3+KOx9eWhn3MKg7Jetz9eCYq/uZr/DxDdUebnonj8WWlrP9Gvii0qp+ARGKKelGa7jhmpqQ52KdPz8IgavSIGUtsQSLLqif9MDLTLlddhA== Received: from DM4PR12MB5373.namprd12.prod.outlook.com (2603:10b6:5:39a::17) by DM8PR12MB5399.namprd12.prod.outlook.com (2603:10b6:8:34::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.15; Tue, 28 Sep 2021 05:50:25 +0000 Received: from DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::584f:672a:653f:fe25]) by DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::584f:672a:653f:fe25%5]) with mapi id 15.20.4544.022; Tue, 28 Sep 2021 05:50:25 +0000 From: "Xueming(Steven) Li" To: "jerinjacobk@gmail.com" CC: NBU-Contact-Thomas Monjalon , "andrew.rybchenko@oktetlabs.ru" , "dev@dpdk.org" , "ferruh.yigit@intel.com" Thread-Topic: [PATCH v2 01/15] ethdev: introduce shared Rx queue Thread-Index: AQHXjrnd1i7/1bMsyEmpVz6Kp88Yyqt3eGmAgAAdm6CAAED4gIABKgpggAFXLwCAAGszAIALAnAAgANDfUCAAtzEAIAZfQCAgADiswCAEvY2AA== Date: Tue, 28 Sep 2021 05:50:25 +0000 Message-ID: <216e8930ee05a3d00e4abc362060c74db1a1c2ce.camel@nvidia.com> References: <20210727034204.20649-1-xuemingl@nvidia.com> <20210811140418.393264-1-xuemingl@nvidia.com> <820d6cbe0ddba612ee9bfd6999feb9a3e8312beb.camel@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.40.4 authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: dfd4d359-ed2d-43d4-8b48-08d98243de62 x-ms-traffictypediagnostic: DM8PR12MB5399: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr 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: IqAc8AnFe0zcTuXwRP4BPdcVjOVuKh6+U6RAxHqkhwZhA/h2B/kS7WtqyFju/uFMZhkFd/lFp9bE2iRXlS6jUk0T0AiiYBS8IEqVkHe6/wc6Mjfr1mkKB9ks4cJcUMHbstdplSRmGf/PAxFx1K/1ZE9qAk4LDi+ak9nagOAiJ01cUDB397e0bNJ6TA3WJSqjGx1wdbnqvqYwxpeKY2xlfYiX7hCN7UCVYtWC4J8DC1DWvm4fZCg4cxhRZDrR6sLK01LirEhjuBgW6RMcapW+7BD8/I4Fn0EpuDtHirg4tbq1rqGE1nFQ607cCCi9Eh1oRgGB/gTzZq3ghp6lEtd1a/rcqVty0BD0J7kk+DQKn2MuIDm1yexXRGtNGEgV+azJT09FzmH/GqWk7qV62Jw2m+EGp7f9YIaMNMOxdS0WTHFzx7rMbVtErzLN+gJTmUmT9T1i2fdz5VA6RLBeDdocuhTlIm6j86AvRA0wFNuFu+VCfzC8JQcernDjJ8ICHYz6BUC911u7Z9sY/VzhcFytt/rZCspBaLZHJmH08/GVFoK0RFTAmAjXYDjmZVqFDry8wep4dFZ/3bxfp7EiKvLyurzJa9G4J4lN3dapC8Q2a0W9PKR3unkTR3kl6lQrI2pAdtHZJP4aFsxGhZF61OgDqjtQz+TKFtShRUGZJ5NpDqwHJEF/+HiHlomZr5f2oQAiU3zfwhy9GXX5C+s53mpB3Sjz4ObJ+hIDaQcTvOpgDDB5zUkyK3TuJP96QKNqY0YKmScwOX09dJfaEFoFm846fgdFDWUq6DtwaelP+BbipBY= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5373.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(91956017)(6506007)(316002)(6512007)(66476007)(26005)(38070700005)(36756003)(8676002)(508600001)(38100700002)(122000001)(30864003)(53546011)(66946007)(2906002)(64756008)(66446008)(186003)(2616005)(66556008)(83380400001)(76116006)(71200400001)(6486002)(5660300002)(54906003)(966005)(6916009)(8936002)(86362001)(4326008); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?STB2amFsaTF2MHFXam1BM2VrZitESlVQamJHdCtTMFVabHB3cTFMbHU1UFpt?= =?utf-8?B?UG9LQ1pucmkrakwwSDVTeWJsTWZjVTlrQmVQUFpPQ2FxR0xxY3FMMnlOaVNy?= =?utf-8?B?NEUwbGcwSnNUaWZVVmtZVkVDM2N4Y001TktrRmkvVVVQVmhJOWp5S0Z5WlVa?= =?utf-8?B?VkhFMlZwRTZSQVJpSjgzVWNCS2Jnd25lSTFISjRWWHlVZjV3aEFDMlV1VkF6?= =?utf-8?B?dWJ5Q3I0RFJtODVwb1FnaEh4NzRWNTdwdGxyeVFiM1lvcHBabUZFQS9IN2ha?= =?utf-8?B?L2ZITHQyYlZybGRGaS9tdkJCZjNHNnFHNUpVQXN4Y1FpM3hnRCtIMUkvdm10?= =?utf-8?B?TDRzZGVvenNBWmlPVDFpajBRWUdFSFN3bW0rRUc3NE9aeUR0L0kwWThuTWFO?= =?utf-8?B?Yml1cUpwbHFxcnFxN3hyRXRpSDRVOXY3bzZTaGNaOXlnVVJYQlVHL2M1TVFp?= =?utf-8?B?NGhMcXp1cHlzQlNhUGpsZ2xxZGM4ZVpZQklveTVrMk0xYUt5WGxEcTNLbytE?= =?utf-8?B?eWRZRlQxZVVXNVBQVmltZ1oxekxoREtoLzJYUUFNc1laZ1pMdC91TUlQd05F?= =?utf-8?B?Y1dKb3k4aW9LZnRZZk1rZkpKc3VJdk1kN05uRjhNRWgwWnhhZzFod2pGQnlZ?= =?utf-8?B?em1WdjNMZnozLzZEV1U2NzFGLzR2aXlKdldwSWpyYndIa1ZaZnlVNko1NmZ0?= =?utf-8?B?RXNveGt3bGRPd01uRUg3Ylkybmc3WGlnWFl2MzFjSmtzWEVuWm52WC9oSzdH?= =?utf-8?B?RWFXaWpuYkVPMHA1bWo1OE9Rb3hYSmo0RGFseVFoQlFsTE4xcjQxQ3dNT2xX?= =?utf-8?B?aXhmdVFlM1lpdmRTZ3d0U1pBZ1pnbDVSYTFXL0FiNzAzbExPeStqaW52NUh1?= =?utf-8?B?dlhCOVg4czdkVFBPU2VSaHFnOFloWnBVNXAxTjMvZE1HaGhUTUJhamRqd3JI?= =?utf-8?B?WWIwTkl3Zmx5MWNUSE1TcDNQTlBJQi85V3VKbUpLcGN4bzh5YVFHMkM2WGxS?= =?utf-8?B?SmNQOWlrL2lVazlFeU53dFVqeUtlSG1od2s2eXp6QmJGZGE3SUo3b2w3cG9M?= =?utf-8?B?NTBNSU1xL0FzU1hINUl6WnUxY2g0U3p2K1VLUzFNRTFZd01vemNsNG5UT3FN?= =?utf-8?B?NzFXTDJNUUtBUHlndE1iR1N0dGIwb3RlWGh6Z0NyUCtCVkJLV1NTQ0c3SjZm?= =?utf-8?B?d1VkUU1JYXBBZDV6NXVsV1ZIV244N2tqQi80eElXaTZKdUMzQXpjWUxIWEZW?= =?utf-8?B?N2I5eWMyQkJubTRqRnJvZ1VKdXloNk1uRW1rN2RtUkw5YVJWdzMrOW1iVWNL?= =?utf-8?B?d2tnQXhKSUxpV0lRNE9GRCthWU1zdDBjMUM2Q2g0d0NNNVRuS3hIaFdkNW1C?= =?utf-8?B?TjVlOXB2T2JaUlpuK29NdzJFSTdyQzI5TXFXNGMrQmJ4MVlYb09jMjM4SlFk?= =?utf-8?B?V0FYTEJKcUx1bVJSeGw4cVZhNnZ4dWtjTUFxbUdEWDBIZFFmUmJadnVOTkp5?= =?utf-8?B?dzFXNTFtZVo0WXV2dUVaL0RnemdGbkpDZTd2SFNWbkVidklaM2d6VXhiN1BW?= =?utf-8?B?N1lweDc4dDZ5alBVeUxHbzVzZVliYzZqb2k2U1d6cURLZkNYUll3Q1FQakwz?= =?utf-8?B?UXQwQkZyZ0lnRGVpODJiMEM0dE1JRldYOGJGaVprTDVNYnNqdWtMUTRwcEtC?= =?utf-8?B?MDVyNHZkOE0wMVNqdU5NK29YYm0xelZrb3UxRXJwaVNISG5lMUNHN1Z6Mk9U?= =?utf-8?B?c0IyditNQ1lHZXloYjJlczZZNDRaSkY5RG9VOVpVbU9iQ0F1QnIwVmJLdEpt?= =?utf-8?B?VlNXOHFhcklFS3NZcGx6QT09?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5373.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dfd4d359-ed2d-43d4-8b48-08d98243de62 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Sep 2021 05:50:25.4229 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: d6IK0Irx/9P1Mt0CVU+GIH2F3K9fq7bg0AROY11+9oe5Vngn+0UWH0STiPt42hlMU5gFNoFImkEnls80oBiPmQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR12MB5399 Subject: Re: [dpdk-dev] [PATCH v2 01/15] 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" T24gVGh1LCAyMDIxLTA5LTE2IGF0IDA5OjQ2ICswNTMwLCBKZXJpbiBKYWNvYiB3cm90ZToNCj4g T24gV2VkLCBTZXAgMTUsIDIwMjEgYXQgODoxNSBQTSBYdWVtaW5nKFN0ZXZlbikgTGkgPHh1ZW1p bmdsQG52aWRpYS5jb20+IHdyb3RlOg0KPiA+IA0KPiA+IEhpIEplcmluLA0KPiA+IA0KPiA+IE9u IE1vbiwgMjAyMS0wOC0zMCBhdCAxNTowMSArMDUzMCwgSmVyaW4gSmFjb2Igd3JvdGU6DQo+ID4g PiBPbiBTYXQsIEF1ZyAyOCwgMjAyMSBhdCA3OjQ2IFBNIFh1ZW1pbmcoU3RldmVuKSBMaSA8eHVl bWluZ2xAbnZpZGlhLmNvbT4gd3JvdGU6DQo+ID4gPiA+IA0KPiA+ID4gPiANCj4gPiA+ID4gDQo+ ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBGcm9tOiBKZXJp biBKYWNvYiA8amVyaW5qYWNvYmtAZ21haWwuY29tPg0KPiA+ID4gPiA+IFNlbnQ6IFRodXJzZGF5 LCBBdWd1c3QgMjYsIDIwMjEgNzo1OCBQTQ0KPiA+ID4gPiA+IFRvOiBYdWVtaW5nKFN0ZXZlbikg TGkgPHh1ZW1pbmdsQG52aWRpYS5jb20+DQo+ID4gPiA+ID4gQ2M6IGRwZGstZGV2IDxkZXZAZHBk ay5vcmc+OyBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+OyBOQlUtQ29udGFj dC1UaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+Ow0KPiA+ID4gPiA+IEFuZHJl dyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+ID4gPiA+IFN1 YmplY3Q6IFJlOiBbUEFUQ0ggdjIgMDEvMTVdIGV0aGRldjogaW50cm9kdWNlIHNoYXJlZCBSeCBx dWV1ZQ0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IE9uIFRodSwgQXVnIDE5LCAyMDIxIGF0IDU6Mzkg UE0gWHVlbWluZyhTdGV2ZW4pIExpIDx4dWVtaW5nbEBudmlkaWEuY29tPiB3cm90ZToNCj4gPiA+ ID4gPiA+IA0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gRnJvbTogSmVyaW4gSmFjb2IgPGpl cmluamFjb2JrQGdtYWlsLmNvbT4NCj4gPiA+ID4gPiA+ID4gU2VudDogVGh1cnNkYXksIEF1Z3Vz dCAxOSwgMjAyMSAxOjI3IFBNDQo+ID4gPiA+ID4gPiA+IFRvOiBYdWVtaW5nKFN0ZXZlbikgTGkg PHh1ZW1pbmdsQG52aWRpYS5jb20+DQo+ID4gPiA+ID4gPiA+IENjOiBkcGRrLWRldiA8ZGV2QGRw ZGsub3JnPjsgRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsNCj4gPiA+ID4g PiA+ID4gTkJVLUNvbnRhY3QtVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0Pjsg QW5kcmV3IFJ5YmNoZW5rbw0KPiA+ID4gPiA+ID4gPiA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxh YnMucnU+DQo+ID4gPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjIgMDEvMTVdIGV0aGRl djogaW50cm9kdWNlIHNoYXJlZCBSeCBxdWV1ZQ0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ ID4gT24gV2VkLCBBdWcgMTgsIDIwMjEgYXQgNDo0NCBQTSBYdWVtaW5nKFN0ZXZlbikgTGkgPHh1 ZW1pbmdsQG52aWRpYS5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4g PiA+IA0KPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gPiA+IEZyb206IEplcmluIEphY29iIDxqZXJpbmph Y29ia0BnbWFpbC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gPiBTZW50OiBUdWVzZGF5LCBBdWd1c3Qg MTcsIDIwMjEgMTE6MTIgUE0NCj4gPiA+ID4gPiA+ID4gPiA+IFRvOiBYdWVtaW5nKFN0ZXZlbikg TGkgPHh1ZW1pbmdsQG52aWRpYS5jb20+DQo+ID4gPiA+ID4gPiA+ID4gPiBDYzogZHBkay1kZXYg PGRldkBkcGRrLm9yZz47IEZlcnJ1aCBZaWdpdA0KPiA+ID4gPiA+ID4gPiA+ID4gPGZlcnJ1aC55 aWdpdEBpbnRlbC5jb20+OyBOQlUtQ29udGFjdC1UaG9tYXMgTW9uamFsb24NCj4gPiA+ID4gPiA+ ID4gPiA+IDx0aG9tYXNAbW9uamFsb24ubmV0PjsgQW5kcmV3IFJ5YmNoZW5rbw0KPiA+ID4gPiA+ ID4gPiA+ID4gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+ID4gPiA+ID4gPiA+ ID4gU3ViamVjdDogUmU6IFtQQVRDSCB2MiAwMS8xNV0gZXRoZGV2OiBpbnRyb2R1Y2Ugc2hhcmVk IFJ4IHF1ZXVlDQo+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+IE9uIFR1ZSwg QXVnIDE3LCAyMDIxIGF0IDU6MDEgUE0gWHVlbWluZyhTdGV2ZW4pIExpIDx4dWVtaW5nbEBudmlk aWEuY29tPiB3cm90ZToNCj4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEZyb206IEplcmluIEphY29i IDxqZXJpbmphY29ia0BnbWFpbC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gU2VudDogVHVl c2RheSwgQXVndXN0IDE3LCAyMDIxIDU6MzMgUE0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUbzog WHVlbWluZyhTdGV2ZW4pIExpIDx4dWVtaW5nbEBudmlkaWEuY29tPg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IENjOiBkcGRrLWRldiA8ZGV2QGRwZGsub3JnPjsgRmVycnVoIFlpZ2l0DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+OyBOQlUtQ29udGFjdC1UaG9t YXMgTW9uamFsb24NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA8dGhvbWFzQG1vbmphbG9uLm5ldD47 IEFuZHJldyBSeWJjaGVua28NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA8YW5kcmV3LnJ5YmNoZW5r b0Bva3RldGxhYnMucnU+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtQQVRD SCB2MiAwMS8xNV0gZXRoZGV2OiBpbnRyb2R1Y2Ugc2hhcmVkIFJ4DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gcXVldWUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiBPbiBXZWQsIEF1ZyAxMSwgMjAyMSBhdCA3OjM0IFBNIFh1ZW1pbmcgTGkgPHh1ZW1pbmdsQG52 aWRpYS5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiBJbiBjdXJyZW50IERQREsgZnJhbWV3b3JrLCBlYWNoIFJYIHF1ZXVlIGlzIHBy ZS1sb2FkZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHdpdGggbWJ1ZnMgZm9yIGluY29taW5n IHBhY2tldHMuIFdoZW4gbnVtYmVyIG9mDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiByZXByZXNl bnRvcnMgc2NhbGUgb3V0IGluIGEgc3dpdGNoIGRvbWFpbiwgdGhlIG1lbW9yeQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gY29uc3VtcHRpb24gYmVjYW1lIHNpZ25pZmljYW50LiBNb3N0IGltcG9y dGFudCwgcG9sbGluZw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYWxsIHBvcnRzIGxlYWRzIHRv IGhpZ2ggY2FjaGUgbWlzcywgaGlnaCBsYXRlbmN5IGFuZCBsb3cgdGhyb3VnaHB1dC4NCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhpcyBwYXRjaCBp bnRyb2R1Y2VzIHNoYXJlZCBSWCBxdWV1ZS4gUG9ydHMgd2l0aCBzYW1lDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiBjb25maWd1cmF0aW9uIGluIGEgc3dpdGNoIGRvbWFpbiBjb3VsZCBzaGFyZSBS WCBxdWV1ZSBzZXQgYnkgc3BlY2lmeWluZyBzaGFyaW5nIGdyb3VwLg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gUG9sbGluZyBhbnkgcXVldWUgdXNpbmcgc2FtZSBzaGFyZWQgUlggcXVldWUgcmVj ZWl2ZXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHBhY2tldHMgZnJvbSBhbGwgbWVtYmVyIHBv cnRzLiBTb3VyY2UgcG9ydCBpcyBpZGVudGlmaWVkIGJ5IG1idWYtPnBvcnQuDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFBvcnQgcXVldWUgbnVtYmVy IGluIGEgc2hhcmVkIGdyb3VwIHNob3VsZCBiZSBpZGVudGljYWwuDQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiBRdWV1ZSBpbmRleCBpcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gMToxIG1hcHBl ZCBpbiBzaGFyZWQgZ3JvdXAuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IFNoYXJlIFJYIHF1ZXVlIG11c3QgYmUgcG9sbGVkIG9uIHNpbmdsZSB0aHJl YWQgb3IgY29yZS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gTXVsdGlwbGUgZ3JvdXBzIGlzIHN1cHBvcnRlZCBieSBncm91cCBJRC4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTog WHVlbWluZyBMaSA8eHVlbWluZ2xAbnZpZGlhLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IENjOiBKZXJpbiBKYWNvYiA8amVyaW5qYWNvYmtAZ21haWwuY29tPg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBSeCBxdWV1ZSBvYmplY3QgY291 bGQgYmUgdXNlZCBhcyBzaGFyZWQgUnggcXVldWUgb2JqZWN0LA0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gaXQncyBpbXBvcnRhbnQgdG8gY2xlYXIgYWxsIHF1ZXVlIGNvbnRyb2wgY2FsbGJhY2sg YXBpIHRoYXQgdXNpbmcgcXVldWUgb2JqZWN0Og0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBodHRwczovL21haWxzLmRwZGsub3JnL2FyY2hpdmVzL2Rl di8yMDIxLUp1bHkvMjE1NTc0Lmh0bWwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ICAjdW5kZWYgUlRFX1JYX09GRkxPQURfQklUMlNUUiBkaWZmIC0tZ2l0 DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBhL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5oIGIvbGli L2V0aGRldi9ydGVfZXRoZGV2LmggaW5kZXgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGQyYjI3 YzM1MWYuLmE1NzhjOWRiOWQgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAtLS0gYS9s aWIvZXRoZGV2L3J0ZV9ldGhkZXYuaA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKysrIGIvbGli L2V0aGRldi9ydGVfZXRoZGV2LmgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEBAIC0xMDQ3LDYg KzEwNDcsNyBAQCBzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYgew0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gICAgICAgICB1aW50OF90IHJ4X2Ryb3BfZW47IC8qKjwgRHJvcCBwYWNrZXRzIGlmIG5vIGRl c2NyaXB0b3JzIGFyZSBhdmFpbGFibGUuICovDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAg ICAgIHVpbnQ4X3QgcnhfZGVmZXJyZWRfc3RhcnQ7IC8qKjwgRG8gbm90IHN0YXJ0IHF1ZXVlIHdp dGggcnRlX2V0aF9kZXZfc3RhcnQoKS4gKi8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAg ICAgdWludDE2X3QgcnhfbnNlZzsgLyoqPCBOdW1iZXIgb2YgZGVzY3JpcHRpb25zIGluIHJ4X3Nl ZyBhcnJheS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICovDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiArICAgICAgIHVpbnQzMl90IHNoYXJlZF9ncm91cDsgLyoqPCBTaGFyZWQgcG9ydCBncm91 cA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKyBpbmRleCBpbiBzd2l0Y2ggZG9tYWluLiAqLw0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE5vdCB0byBhYmxl IHRvIHNlZSBhbnlvbmUgc2V0dGluZy9jcmVhdGluZyB0aGlzIGdyb3VwIElEIHRlc3QgYXBwbGlj YXRpb24uDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSG93IHRoaXMgZ3JvdXAgaXMgY3JlYXRlZD8N Cj4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiA+IE5pY2UgY2F0Y2gsIHRo ZSBpbml0aWFsIHRlc3RwbWQgdmVyc2lvbiBvbmx5IHN1cHBvcnQgb25lIGRlZmF1bHQgZ3JvdXAo MCkuDQo+ID4gPiA+ID4gPiA+ID4gPiA+IEFsbCBwb3J0cyB0aGF0IHN1cHBvcnRzIHNoYXJlZC1y eHEgYXNzaWduZWQgaW4gc2FtZSBncm91cC4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ ID4gPiA+ID4gPiA+IFdlIHNob3VsZCBiZSBhYmxlIHRvIGNoYW5nZSAiLS1yeHEtc2hhcmVkIiB0 byAiLS1yeHEtc2hhcmVkLWdyb3VwIg0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0byBzdXBwb3J0IGdy b3VwIG90aGVyIHRoYW4gZGVmYXVsdC4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4g PiA+ID4gPiA+IFRvIHN1cHBvcnQgbW9yZSBncm91cHMgc2ltdWx0YW5lb3VzbHksIG5lZWQgdG8g Y29uc2lkZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGVzdHBtZCBmb3J3YXJkaW5nIHN0cmVhbSBj b3JlIGFzc2lnbm1lbnQsIGFsbCBzdHJlYW1zIGluIHNhbWUgZ3JvdXAgbmVlZCB0byBzdGF5IG9u IHNhbWUgY29yZS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSXQncyBwb3NzaWJsZSB0byBzcGVjaWZ5 IGhvdyBtYW55IHBvcnRzIHRvIGluY3JlYXNlIGdyb3VwDQo+ID4gPiA+ID4gPiA+ID4gPiA+IG51 bWJlciwgYnV0IHVzZXIgbXVzdCBzY2hlZHVsZSBzdHJlYW0gYWZmaW5pdHkgY2FyZWZ1bGx5IC0g ZXJyb3IgcHJvbmUuDQo+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBP biB0aGUgb3RoZXIgaGFuZCwgb25lIGdyb3VwIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBtb3N0 DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGN1c3RvbWVyLCB0aGUgZG91YnQgaXMgd2hldGhlciBpdCB2 YWx1YWJsZSB0byBzdXBwb3J0IG11bHRpcGxlIGdyb3VwcyB0ZXN0Lg0KPiA+ID4gPiA+ID4gPiA+ ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiBBY2suIE9uZSBncm91cCBpcyBlbm91Z2ggaW4gdGVzdHBt ZC4NCj4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gTXkgcXVlc3Rpb24gd2Fz IG1vcmUgYWJvdXQgd2hvIGFuZCBob3cgdGhpcyBncm91cCBpcyBjcmVhdGVkLA0KPiA+ID4gPiA+ ID4gPiA+ID4gU2hvdWxkIG4ndCB3ZSBuZWVkIEFQSSB0byBjcmVhdGUgc2hhcmVkX2dyb3VwPyBJ ZiB3ZSBkbyB0aGUgZm9sbG93aW5nLCBhdCBsZWFzdCwgSSBjYW4gdGhpbmssIGhvdyBpdCBjYW4g YmUgaW1wbGVtZW50ZWQgaW4gU1cNCj4gPiA+ID4gPiBvciBvdGhlciBIVy4NCj4gPiA+ID4gPiA+ ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gLSBDcmVhdGUgYWdncmVnYXRpb24gcXVldWUgZ3Jv dXANCj4gPiA+ID4gPiA+ID4gPiA+IC0gQXR0YWNoIG11bHRpcGxlICBSeCBxdWV1ZXMgdG8gdGhl IGFnZ3JlZ2F0aW9uIHF1ZXVlIGdyb3VwDQo+ID4gPiA+ID4gPiA+ID4gPiAtIFB1bGwgdGhlIHBh Y2tldHMgZnJvbSB0aGUgcXVldWUgZ3JvdXAod2hpY2ggaW50ZXJuYWxseSBmZXRjaA0KPiA+ID4g PiA+ID4gPiA+ID4gZnJvbSB0aGUgUnggcXVldWVzIF9hdHRhY2hlZF8pDQo+ID4gPiA+ID4gPiA+ ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+IERvZXMgdGhlIGFib3ZlIGtpbmQgb2Ygc2VxdWVuY2Us IGJyZWFrIHlvdXIgcmVwcmVzZW50b3IgdXNlIGNhc2U/DQo+ID4gPiA+ID4gPiA+ID4gDQo+ID4g PiA+ID4gPiA+ID4gU2VlbXMgbW9yZSBsaWtlIGEgc2V0IG9mIEVBTCB3cmFwcGVyLiBDdXJyZW50 IEFQSSB0cmllcyB0byBtaW5pbWl6ZSB0aGUgYXBwbGljYXRpb24gZWZmb3J0cyB0byBhZGFwdCBz aGFyZWQtcnhxLg0KPiA+ID4gPiA+ID4gPiA+IC0gc3RlcCAxLCBub3Qgc3VyZSBob3cgaW1wb3J0 YW50IGl0IGlzIHRvIGNyZWF0ZSBncm91cCB3aXRoIEFQSSwgaW4gcnRlX2Zsb3csIGdyb3VwIGlz IGNyZWF0ZWQgb24gZGVtYW5kLg0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gV2hpY2gg cnRlX2Zsb3cgcGF0dGVybi9hY3Rpb24gZm9yIHRoaXM/DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4g PiA+IE5vIHJ0ZV9mbG93IGZvciB0aGlzLCBqdXN0IHJlY2FsbGVkIHRoYXQgdGhlIGdyb3VwIGlu IHJ0ZV9mbG93IGlzIG5vdCBjcmVhdGVkIGFsb25nIHdpdGggZmxvdywgbm90IHZpYSBhcGkuDQo+ ID4gPiA+ID4gPiBJIGRvbuKAmXQgc2VlIGFueXRoaW5nIGVsc2UgdG8gY3JlYXRlIGFsb25nIHdp dGggZ3JvdXAsIGp1c3QgZG91YmxlIHdoZXRoZXIgaXQgdmFsdWFibGUgdG8gaW50cm9kdWNlIGEg bmV3IGFwaSBzZXQgdG8gbWFuYWdlIGdyb3VwLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IFNlZSBi ZWxvdy4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4g PiA+ID4gPiAtIHN0ZXAgMiwgY3VycmVudGx5LCB0aGUgYXR0YWNoaW5nIGlzIGRvbmUgaW4gcnRl X2V0aF9yeF9xdWV1ZV9zZXR1cCwgc3BlY2lmeSBvZmZsb2FkIGFuZCBncm91cCBpbiByeF9jb25m IHN0cnVjdC4NCj4gPiA+ID4gPiA+ID4gPiAtIHN0ZXAgMywgZGVmaW5lIGEgZGVkaWNhdGUgYXBp IHRvIHJlY2VpdmUgcGFja2V0cyBmcm9tIHNoYXJlZCByeHE/IExvb2tzIGNsZWFyIHRvIHJlY2Vp dmUgcGFja2V0cyBmcm9tIHNoYXJlZCByeHEuDQo+ID4gPiA+ID4gPiA+ID4gICBjdXJyZW50bHks IHJ4cSBvYmplY3RzIGluIHNoYXJlIGdyb3VwIGlzIHNhbWUgLSB0aGUgc2hhcmVkIHJ4cSwgc28g dGhlIGV0aCBjYWxsYmFjayBldGhfcnhfYnVyc3RfdChyeHFfb2JqLCBtYnVmcywgbikgY291bGQN Cj4gPiA+ID4gPiA+ID4gPiAgIGJlIHVzZWQgdG8gcmVjZWl2ZSBwYWNrZXRzIGZyb20gYW55IHBv cnRzIGluIGdyb3VwLCBub3JtYWxseSB0aGUgZmlyc3QgcG9ydChQRikgaW4gZ3JvdXAuDQo+ID4g PiA+ID4gPiA+ID4gICBBbiBhbHRlcm5hdGl2ZSB3YXkgaXMgZGVmaW5pbmcgYSB2ZGV2IHdpdGgg c2FtZSBxdWV1ZSBudW1iZXIgYW5kIGNvcHkgcnhxIG9iamVjdHMgd2lsbCBtYWtlIHRoZSB2ZGV2 IGEgcHJveHkgb2YNCj4gPiA+ID4gPiA+ID4gPiAgIHRoZSBzaGFyZWQgcnhxIGdyb3VwIC0gdGhp cyBjb3VsZCBiZSBhbiBoZWxwZXIgQVBJLg0KPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4g PiA+IEFueXdheSB0aGUgd3JhcHBlciBkb2Vzbid0IGJyZWFrIHVzZSBjYXNlLCBzdGVwIDMgYXBp IGlzIG1vcmUgY2xlYXIsIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdG8gaW1wbGVtZW50IGVmZmlj aWVudGx5Lg0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gQXJlIHlvdSBkb2luZyB0aGlz IGZlYXR1cmUgYmFzZWQgb24gYW55IEhXIHN1cHBvcnQgb3IgaXQganVzdCBwdXJlDQo+ID4gPiA+ ID4gPiA+IFNXIHRoaW5nLCBJZiBpdCBpcyBTVywgSXQgaXMgYmV0dGVyIHRvIGhhdmUganVzdCBu ZXcgdmRldiBmb3IgbGlrZSBkcml2ZXJzL25ldC9ib25kaW5nLy4gVGhpcyB3ZSBjYW4gaGVscCBh Z2dyZWdhdGUgbXVsdGlwbGUgUnhxIGFjcm9zcw0KPiA+ID4gPiA+IHRoZSBtdWx0aXBsZSBwb3J0 cyBvZiBzYW1lIHRoZSBkcml2ZXIuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IEJhc2VkIG9u IEhXIHN1cHBvcnQuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gSW4gTWFydmVsIEhXLCB3ZSBkbyBz b21lIHN1cHBvcnQsIEkgd2lsbCBvdXRsaW5lIGhlcmUgYW5kIHNvbWUgcXVlcmllcyBvbiB0aGlz Lg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ICMgV2UgbmVlZCB0byBjcmVhdGUgc29tZSBuZXcgSFcg c3RydWN0dXJlIGZvciBhZ2dyZWdhdGlvbiAjIENvbm5lY3QgZWFjaCBSeHEgdG8gdGhlIG5ldyBI VyBzdHJ1Y3R1cmUgZm9yIGFnZ3JlZ2F0aW9uICMgVXNlDQo+ID4gPiA+ID4gcnhfYnVyc3QgZnJv bSB0aGUgbmV3IEhXIHN0cnVjdHVyZS4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBDb3VsZCB5b3Ug b3V0bGluZSB5b3VyIEhXIHN1cHBvcnQ/DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gQWxzbywgSSBh bSBub3QgYWJsZSB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIHdpbGwgcmVkdWNlIHRoZSBtZW1vcnks IGF0bGVhc3QgaW4gb3VyIEhXIG5lZWQgY3JlYXRpbmcgbW9yZSBtZW1vcnkgbm93IHRvIGRlYWwg dGhpcyBhcw0KPiA+ID4gPiA+IHdlIG5lZWQgdG8gZGVhbCBuZXcgSFcgc3RydWN0dXJlLg0KPiA+ ID4gPiA+IA0KPiA+ID4gPiA+IEhvdyBpcyBpbiB5b3VyIEhXIGl0IHJlZHVjZXMgdGhlIG1lbW9y eT8gQWxzbywgaWYgbWVtb3J5IGlzIHRoZSBjb25zdHJhaW50LCB3aHkgTk9UIHJlZHVjZSB0aGUg bnVtYmVyIG9mIHF1ZXVlcy4NCj4gPiA+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IEdsYWQgdG8g a25vdyB0aGF0IE1hcnZlbCBpcyB3b3JraW5nIG9uIHRoaXMsIHdoYXQncyB0aGUgc3RhdHVzIG9m IGRyaXZlciBpbXBsZW1lbnRhdGlvbj8NCj4gPiA+ID4gDQo+ID4gPiA+IEluIG15IFBNRCBpbXBs ZW1lbnRhdGlvbiwgaXQncyB2ZXJ5IHNpbWlsYXIsIGEgbmV3IEhXIG9iamVjdCBzaGFyZWQgbWVt b3J5IHBvb2wgaXMgY3JlYXRlZCB0byByZXBsYWNlIHBlciByeHEgbWVtb3J5IHBvb2wuDQo+ID4g PiA+IExlZ2FjeSByeHEgZmVlZCBxdWV1ZSB3aXRoIGFsbG9jYXRlZCBtYnVmcyBhcyBudW1iZXIg b2YgZGVzY3JpcHRvcnMsIG5vdyBzaGFyZWQgcnhxcyBzaGFyZSB0aGUgc2FtZSBwb29sLCBubyBu ZWVkIHRvIHN1cHBseQ0KPiA+ID4gPiBtYnVmcyBmb3IgZWFjaCByeHEsIGp1c3QgZmVlZCB0aGUg c2hhcmVkIHJ4cS4NCj4gPiA+ID4gDQo+ID4gPiA+IFNvIHRoZSBtZW1vcnkgc2F2aW5nIHJlZmxl Y3RzIHRvIG1idWYgcGVyIHJ4cSwgZXZlbiAxMDAwIHJlcHJlc2VudG9ycyBpbiBzaGFyZWQgcnhx IGdyb3VwLCB0aGUgbWJ1ZnMgY29uc3VtZWQgaXMgb25lIHJ4cS4NCj4gPiA+ID4gSW4gb3RoZXIg d29yZHMsIG5ldyBtZW1iZXJzIGluIHNoYXJlZCByeHEgZG9lc27igJl0IGFsbG9jYXRlIG5ldyBt YnVmcyB0byBmZWVkIHJ4cSwganVzdCBzaGFyZSB3aXRoIGV4aXN0aW5nIHNoYXJlZCByeHEoSFcg bWVtcG9vbCkuDQo+ID4gPiA+IFRoZSBtZW1vcnkgcmVxdWlyZWQgdG8gc2V0dXAgZWFjaCByeHEg ZG9lc24ndCBjaGFuZ2UgdG9vIG11Y2gsIGFncmVlLg0KPiA+ID4gDQo+ID4gPiBXZSBjYW4gYXNr IHRoZSBhcHBsaWNhdGlvbiB0byBjb25maWd1cmUgdGhlIHNhbWUgbWVtcG9vbCBmb3IgbXVsdGlw bGUNCj4gPiA+IFJRIHRvby4gUklnaHQ/IElmIHRoZSBzYXZpbmcgaXMgYmFzZWQgb24gc2hhcmlu ZyB0aGUgbWVtcG9vbA0KPiA+ID4gd2l0aCBtdWx0aXBsZSBSUXMuDQo+ID4gPiANCj4gPiA+ID4g DQo+ID4gPiA+ID4gIyBBbHNvLCBJIHdhcyB0aGlua2luZywgb25lIHdheSB0byBhdm9pZCB0aGUg ZmFzdCBwYXRoIG9yIEFCSSBjaGFuZ2Ugd291bGQgbGlrZS4NCj4gPiA+ID4gPiANCj4gPiA+ID4g PiAjIERyaXZlciBJbml0aWFsaXplcyBvbmUgbW9yZSBldGhfZGV2X29wcyBpbiBkcml2ZXIgYXMg YWdncmVnYXRvciBldGhkZXYgIyBkZXZhcmdzIG9mIG5ldyBldGhkZXYgb3Igc3BlY2lmaWMgQVBJ IGxpa2UNCj4gPiA+ID4gPiBkcml2ZXJzL25ldC9ib25kaW5nL3J0ZV9ldGhfYm9uZC5oIGNhbiB0 YWtlIHRoZSBhcmd1bWVudCAocG9ydCwgcXVldWUpIHR1cGxlcyB3aGljaCBuZWVkcyB0byBhZ2dy ZWdhdGUgYnkgbmV3IGV0aGRldiBwb3J0ICMgTm8NCj4gPiA+ID4gPiBjaGFuZ2UgaW4gZmFzdHBh dGggb3IgQUJJIGlzIHJlcXVpcmVkIGluIHRoaXMgbW9kZWwuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ IA0KPiA+ID4gPiBUaGlzIGNvdWxkIGJlIGFuIG9wdGlvbiB0byBhY2Nlc3Mgc2hhcmVkIHJ4cS4g V2hhdCdzIHRoZSBkaWZmZXJlbmNlIG9mIHRoZSBuZXcgUE1EPw0KPiA+ID4gDQo+ID4gPiBObyBB QkkgYW5kIGZhc3QgY2hhbmdlIGFyZSByZXF1aXJlZC4NCj4gPiA+IA0KPiA+ID4gPiBXaGF0J3Mg dGhlIGRpZmZlcmVuY2Ugb2YgUE1EIGRyaXZlciB0byBjcmVhdGUgdGhlIG5ldyBkZXZpY2U/DQo+ ID4gPiA+IA0KPiA+ID4gPiBJcyBpdCBpbXBvcnRhbnQgaW4geW91ciBpbXBsZW1lbnRhdGlvbj8g RG9lcyBpdCB3b3JrIHdpdGggZXhpc3RpbmcgcnhfYnVyc3QgYXBpPw0KPiA+ID4gDQo+ID4gPiBZ ZXMgLiBJdCB3aWxsIHdvcmsgd2l0aCB0aGUgZXhpc3RpbmcgcnhfYnVyc3QgQVBJLg0KPiA+ID4g DQo+ID4gDQo+ID4gVGhlIGFnZ3JlZ2F0b3IgZXRoZGV2IHJlcXVpcmVkIGJ5IHVzZXIgaXMgYSBw b3J0LCBtYXliZSBpdCBnb29kIHRvIGFkZA0KPiA+IGEgY2FsbGJhY2sgZm9yIFBNRCB0byBwcmVw YXJlIGEgY29tcGxldGUgZXRoZGV2IGp1c3QgbGlrZSBjcmVhdGluZw0KPiA+IHJlcHJlc2VudG9y IGV0aGRldiAtIHBtZCByZWdpc3RlciBuZXcgcG9ydCBpbnRlcm5hbGx5LiBJZiB0aGUgUE1EDQo+ ID4gZG9lbnMndCBwcm92aWRlIHRoZSBjYWxsYmFjaywgZXRoZGV2IGFwaSBmYWxsYmFjayB0byBp bml0aWFsaXplIGFuDQo+ID4gZW1wdHkgZXRoZGV2IGJ5IGNvcHkgcnhxIGRhdGEoc2hhcmVkKSBh bmQgcnhfYnVyc3QgYXBpIGZyb20gc291cmNlIHBvcnQNCj4gPiBhbmQgc2hhcmUgZ3JvdXAuIEFj dHVhbGx5IHVzZXJzIGNhbiBkbyB0aGlzIGZhbGxiYWNrIHRoZW1zZWx2ZXMgb3Igd2l0aA0KPiA+ IGFuIHV0aWwgYXBpLg0KPiA+IA0KPiA+IElJVUMsIGFuIGFnZ3JlZ2F0b3IgZXRoZGV2IG5vdCBh IG11c3QsIGRvIHlvdSB0aGluayB3ZSBjYW4gY29udGludWUgYW5kDQo+ID4gbGVhdmUgdGhhdCBk ZXNpZ24gaW4gbGF0ZXIgc3RhZ2U/DQo+IA0KPiANCj4gSU1PIGFnZ3JlZ2F0b3IgZXRoZGV2IHJl ZHVjZXMgdGhlIGNvbXBsZXhpdHkgZm9yIGFwcGxpY2F0aW9uIGhlbmNlDQo+IGF2b2lkIGFueSBj aGFuZ2UgaW4NCj4gdGVzdCBhcHBsaWNhdGlvbiBldGMuIElNTywgSSBwcmVmZXIgdG8gdGFrZSB0 aGF0LiBJIHdpbGwgbGVhdmUgdGhlDQo+IGRlY2lzaW9uIHRvIGV0aGRldiBtYWludGFpbmVycy4N Cg0KSGkgSmVyaW4sIG5ldyBBUEkgYWRkZWQgZm9yIGFnZ3JlZ2F0b3IsIHRoZSBsYXN0IG9uZSBp biB2MywgdGhhbmtzISANCg0KPiANCj4gDQo+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiA+IA0KPiA+ ID4gPiA+IA0KPiA+ID4gPiA+ID4gTW9zdCB1c2VyIG1pZ2h0IHVzZXMgUEYgaW4gZ3JvdXAgYXMg dGhlIGFuY2hvciBwb3J0IHRvIHJ4IGJ1cnN0LCBjdXJyZW50IGRlZmluaXRpb24gc2hvdWxkIGJl IGVhc3kgZm9yIHRoZW0gdG8gbWlncmF0ZS4NCj4gPiA+ID4gPiA+IGJ1dCBzb21lIHVzZXIgbWln aHQgcHJlZmVyIGdyb3VwaW5nIHNvbWUgaG90DQo+ID4gPiA+ID4gPiBwbHVnL3VucGx1Z2dlZHJl cHJlc2VudG9ycywgRUFMIGNvdWxkIHByb3ZpZGUgd3JhcHBlcnMsIHVzZXJzIGNvdWxkIGRvIHRo YXQgZWl0aGVyIGR1ZSB0byB0aGUgc3RyYXRlZ3kgbm90IGNvbXBsZXggZW5vdWdoLg0KPiA+ID4g PiA+IEFueXdheSwgd2VsY29tZSBhbnkgc3VnZ2VzdGlvbi4NCj4gPiA+ID4gPiA+IA0KPiA+ID4g PiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ICAgICAgICAgLyoqDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAqIFBl ci1xdWV1ZSBSeCBvZmZsb2FkcyB0byBiZSBzZXQgdXNpbmcgREVWX1JYX09GRkxPQURfKiBmbGFn cy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICogT25seSBvZmZsb2FkcyBzZXQg b24gcnhfcXVldWVfb2ZmbG9hZF9jYXBhIG9yDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiByeF9v ZmZsb2FkX2NhcGEgQEAgLTEzNzMsNiArMTM3NCwxMiBAQCBzdHJ1Y3QgcnRlX2V0aF9jb25mDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB7ICNkZWZpbmUgREVWX1JYX09GRkxPQURfT1VURVJfVURQ X0NLU1VNICAweDAwMDQwMDAwDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgI2RlZmluZSBERVZf UlhfT0ZGTE9BRF9SU1NfSEFTSCAgICAgICAgICAgICAgICAweDAwMDgwMDAwDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiAgI2RlZmluZSBSVEVfRVRIX1JYX09GRkxPQURfQlVGRkVSX1NQTElUIDB4 MDAxMDAwMDANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsvKioNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ICsgKiBSeCBxdWV1ZSBpcyBzaGFyZWQgYW1vbmcgcG9ydHMgaW4gc2FtZSBzd2l0Y2gg ZG9tYWluDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArdG8gc2F2ZSBtZW1vcnksDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiArICogYXZvaWQgcG9sbGluZyBlYWNoIHBvcnQuIEFueSBwb3J0IGlu IGdyb3VwIGNhbiBiZSB1c2VkIHRvIHJlY2VpdmUgcGFja2V0cy4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ICsgKiBSZWFsIHNvdXJjZSBwb3J0IG51bWJlciBzYXZlZCBpbiBtYnVmLT5wb3J0IGZp ZWxkLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKyAqLw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gKyNkZWZpbmUgUlRFX0VUSF9SWF9PRkZMT0FEX1NIQVJFRF9SWFEgICAweDAwMjAwMDAwDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAjZGVmaW5l IERFVl9SWF9PRkZMT0FEX0NIRUNLU1VNIChERVZfUlhfT0ZGTE9BRF9JUFY0X0NLU1VNIHwgXA0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg REVWX1JYX09GRkxPQURfVURQX0NLU1VNDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFwNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+IC0tDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAyLjI1LjEN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+IA0KDQo=