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 CDFF6A0C43; Sun, 10 Oct 2021 16:04:52 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 932FD40040; Sun, 10 Oct 2021 16:04:51 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2045.outbound.protection.outlook.com [40.107.94.45]) by mails.dpdk.org (Postfix) with ESMTP id 128834003C for ; Sun, 10 Oct 2021 16:04:50 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UFg3NVQypUPfcCEdJ7sxytbCqGAMBCGYojZWyEJgJXip0uqAFIOeym2YUE6nkgyhrQhvuK9hNW9DZ198OA8A7uFD0zQs9ewBV673qCJdN/tX4mGGl8iPMFseX6K5UxE3hZhu75Kfdd3R3VWowCW+0gAI7vK+BfEvwaZLlVZ0Bfbr0Q6Qz8nuejJQSRK6IQyuZkHJuNKgtvwOBCh5rKDBs2/DjTFJkcXzEue/yfO0Cnz9XxFgD9u7Ioj3Mzt/TIzUdxBq+dG9V45q87MWzBqL6BwhMsAbJ1w548GjBKI0Ost/kcOBzHAd6QqMds51PnUq8UB1Vw5kXo686UvfiVwqeA== 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=WCjceDutOcJd/NKPM8oxwUUQfw1Fh8zf4+rGo8xOqaY=; b=XLeDxZQRmMSCqRljGlNDmFOI0Jum6EmrhFud0As+WC/NcE5klu5OnNSQNrhw6FrpZ28huEDWXOgvrefmOdMwz6jQy6dt6Q1EV1Le3LgtU5WDCFsp95UpEBKDmmO15XlVWeSY+3I/lySNcdxWXdVXUZYqrfJbHdnX7vVhmp9AoZ6KXahuPqPtmFCc3u/mscIvnWvWLK6UkA29YYxZP4Pf/CI2atmrCxSQ80fYWGHOIWObbWCTrfq0BjW/q6x8Xzn2I5vgmGlfkD6EGnM906K8O9192xUZTWwnfym5PX7mm7wVsxuayWrVhexlvAXFTrm6JL5gz0j8neYiMAiabRKIsA== 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=WCjceDutOcJd/NKPM8oxwUUQfw1Fh8zf4+rGo8xOqaY=; b=RmIlXCGBF9eLTh1g8gaDQ6jcpGSp74smP3Gi6Pp3D72Ei5UKwKXuzg8afDkKIMhVQeYkJOhqTGAmu9rGMNcfvgHOFQ2xpj4VchTqrRRpIiZzhwg/UGqsHfP12NTDcDOe0fvPCIeUPQQOH3nkhT+R/yfxuy48fEySuRFFDjtnXUt+5je41FIaF+aLLDt23ukRWR2yphcAaPyOx0hTlHF1gyyqDApshoon83JGW3R0urOdrljhiZbYUiXPYhw92qw4htFEzyUIBMwTWa29e0CkF/W99UnceZkrfJGS5c8qnvqnr7zoBSUclHaRuh+bmqSGTsxCkiWa6Q/s2/i15AMl2g== Received: from DM8PR12MB5400.namprd12.prod.outlook.com (2603:10b6:8:3b::12) by DM8PR12MB5414.namprd12.prod.outlook.com (2603:10b6:8:3e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18; Sun, 10 Oct 2021 14:04:48 +0000 Received: from DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::d03d:1f75:ca20:6a32]) by DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::d03d:1f75:ca20:6a32%6]) with mapi id 15.20.4587.025; Sun, 10 Oct 2021 14:04:48 +0000 From: Ori Kam To: Ivan Malov , "dev@dpdk.org" CC: NBU-Contact-Thomas Monjalon , Xiaoyun Li , Ferruh Yigit , Andrew Rybchenko Thread-Topic: [PATCH v2 01/12] ethdev: add port representor item to flow API Thread-Index: AQHXvWqBha//uHfJuUqQCqQ7aUDqnqvL+qFwgABAZwCAAAF4wA== Date: Sun, 10 Oct 2021 14:04:48 +0000 Message-ID: References: <20211001134716.1608857-1-andrew.rybchenko@oktetlabs.ru> <20211010000503.28712-1-ivan.malov@oktetlabs.ru> <20211010000503.28712-2-ivan.malov@oktetlabs.ru> <3f3cf1b1-c3a4-9408-52ef-fcd4bcf99f7e@oktetlabs.ru> In-Reply-To: <3f3cf1b1-c3a4-9408-52ef-fcd4bcf99f7e@oktetlabs.ru> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: oktetlabs.ru; dkim=none (message not signed) header.d=none;oktetlabs.ru; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9988a696-4531-462b-a818-08d98bf6ebac x-ms-traffictypediagnostic: DM8PR12MB5414: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qqVz8jlxl7rfYP3drHQ2nkcMaCXAHymYXH6iXS2D8HoO/HHS5f4Bpb7tXLzRjlpVhWV/rWVhANKf4kDryzG0K7sHr6VDxnqVGJtAUUwC/jkftvrCifml6NBWmtuDnL582H9TLxTR3qajBu+TUMnqFco1AXCQhAmdO/HKUKuK4E1UCd6nXs3OK2XpKeuhpd3QGn36gMUdwlfbp1q7D6rFJnbWUr7kiSDknCVzSFaLX0pfjmqn/3k4bD8ozD0WlDIYHoc75JixTqS8gsXAU+W3TBlYFQtuj9iVlAOZgPzdY01NqhB4d1BRtuOMpAga5jbybmuH87A2JKnmjMvtl02DmJt+tct4BL5iS6kN4+MvY14RdYfmuPzta6fBflfIVDwKmCFNVJ7hMgPX0TOiBAsPLkVfLe8H0UwbOEJycT2+UcVpCwzCf5VzNJQLGOd0MDc625LShDfeuNKfmPrTWoq9ZORKM975nMCjAjuprUVRJ7vuPwEwxBHVODiDr7pRcpCFKc3mDX+Mhs/n5gy7+Mh4FD2qhSZxBXkJV+UdWD+0bdrrhtY3Y3lTSwOUTia9h4BfeblM00P1cv6hnxHGRXwgeHiGbhBRQgRn1ZddSaTuo0PIZbDa9/lDIooLUDbbsJoThfdh8DEqrY1y6agkdzkPsh3vl8RyOI6g3T7dJEdtuC1/msQgUU7ttgtia/BIeIo42KAEdsntPk1qtqCtvMQeQQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR12MB5400.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(316002)(8676002)(54906003)(86362001)(66946007)(122000001)(66476007)(33656002)(52536014)(38100700002)(53546011)(6506007)(110136005)(2906002)(8936002)(76116006)(66556008)(30864003)(83380400001)(66446008)(64756008)(4326008)(55016002)(9686003)(38070700005)(508600001)(7696005)(186003)(5660300002)(71200400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VW1jNTRLSHRlQXdKZWc1bEdSQUZWaENSdVdiZnpJQk9JR0RZcFpsVFU4TnlT?= =?utf-8?B?bTB2ZnZwVGZKRjM0cmhCOHBOR2lKMUR5emhnMENBb0ZKQVg1ZFBHK0d0cTBD?= =?utf-8?B?cWpKL3JlUTZYbThLVC8rTDFYd08zTzFwa2hLWTdobEx1YVdRa2pIeGFKcTR2?= =?utf-8?B?bjgwSHNXb1Y3RlEzb3FlcFoxOG5FNUtOMnltVFd3M0ZhK3lUU3p3RUpxRHdD?= =?utf-8?B?QkZTaG9SKzMwNWUyd0tXN0NReUh2dVJYRmRDVHBQRW4zbE1oY1g1RE1IU1Y5?= =?utf-8?B?Ujh2V2dNMzBreUM0QnBvd2FIUzg3RDEzUG1uOXF6RWQ2dDMyR3BJdXBUQUNB?= =?utf-8?B?MjVHOWxLa1B6a1pJUU03LytaRnlKQ3cyTWpvcW8ydlZHaTRZSXRkSzcrSnNp?= =?utf-8?B?emp6bmhpZGplZ0dKOVp0Z3IyQkpXRkVQWGxCRUFHU0FxU1Y5WXUyaDUzOFBN?= =?utf-8?B?bjNXbHh1YWdnejkvZnQva1BuQndVdTljckc0dXhBdEEzZjRvV2dPWC9NQjdr?= =?utf-8?B?c2xjeFk1Z2tjQnAwcURhRWVJOVM0R2xEamVKZCtkU052dE1FZzhGVmNNRE54?= =?utf-8?B?ekhESStZeVMydjk3dHYwR1VTSkJ4dWQzV2swZExzckFsbFVqNXZxd2FPblRi?= =?utf-8?B?bDNiYmJJVG1XY0VXTHk4cGJnRjFpaXZZOFlqbVRmUTA2RG1BMHFiNUpaTXZh?= =?utf-8?B?STJXNnZ4Rzd4Q1M3OTFQZGlnVm40NGNIWktjWUcwWHlCZ3RUM2JUUlNYRm9D?= =?utf-8?B?QTZlRDJMMXBPQXdhWXBsd2ZGUndMVUZCQ0s3RTE3WHFxaW41bE9rR0NwK0Ft?= =?utf-8?B?cjFBV21Jb1JSMWtaRFB6U0RLSHYvQ01uL2o4TFdBNWtROTQrbE5Bc3pDUzk3?= =?utf-8?B?a0F3ZXJpRnRmMDJHb2VCV0RZdTJid1VTNGtkd0lMRHlvMzNEUVpGeDVsQjg2?= =?utf-8?B?aVZwRDhOMVhoUUE4cHhCMDh0b3lrVDE5WTBJUkpxRUYrNFBRRGRMMTNPd0Qr?= =?utf-8?B?dXp5eUFmSEw5dWhRV2NhUkM0Z1B1eEVHNDFCV1ozNHgwMytYNE16QzVFcjha?= =?utf-8?B?ckdrYVNJUGtmZEdyZTJPQTR6S1l4NkF5ZWp3Z215anRidkJTNE9FTlRoNis2?= =?utf-8?B?RFRxVnRKQXA2RzU3L21BOWhWYmpRNzZvTDZrV24vTmRPUHdGMVJVdkZBOWlI?= =?utf-8?B?dTlCVXd3RTFwRGdpMnRRckhqblMwd3dJNWltU1EwK0hNOUdxZ3BaZitNMVQy?= =?utf-8?B?cHltaTAxVmF2UGRyWEk4ZlUvSmlvR0VLOGljM2liMG8yTUgvM3FGOUk4UFN5?= =?utf-8?B?WGh3SFJidlorZWVubnhCRk1sRmVUYkp5RXlDR05BUDhnTlg2US9KUzRGaUI2?= =?utf-8?B?MzA0Q1A1UjVaZXYxMjJHWE5FZVlSNGJRTnBmd0pVdktvNXlkS1R6OXpQVmdL?= =?utf-8?B?aVJDMU9YYmlVRUJub1VOZldNWmFSUFhNblA4NFdkcDF6elJMa24vUzd5QW83?= =?utf-8?B?NjVNQUUzbGlxYk9nYVY5cjJKWEpTYjFhRjJPT3ZIeDBoUE1DSVpGa1U3UjRv?= =?utf-8?B?QnMxeGlFUnlrQ0V4Y3pIUTFXVW9PUDZVZkk2SE9GbmZ4ZitoNmVZTDN6dE8r?= =?utf-8?B?QklOMU1JN1NJakVicVIwb0hsbC9KZWgwd21zZGpYN1l5b1AzV0JSb3VuS3o4?= =?utf-8?B?NStzdEtJdTFnWXBaSVJBV0R4MVJWeS9zK1E4YWxiS3ZkbkRYOE9SVExaODlH?= =?utf-8?B?NzBqT3JCZHhoQWI5MCs4Vk9Iblo5N25odmRKTkdBWHYxRkxLdENnMjZmb0d3?= =?utf-8?B?bHhaMXNxOXdic1VtV0JCNnU4eVhadDdBeGZHb1ZkMi8rbXNvSEtScDM3eith?= =?utf-8?Q?XftLlZQqCpklx?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR12MB5400.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9988a696-4531-462b-a818-08d98bf6ebac X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Oct 2021 14:04:48.0518 (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: qT9amEFkLG+9zvoh6tn6v7XojJ+v2SNFaIyAhyArVTCLm7Nbb5tAcL0a08jsBRfiEvcPANrm5Bej6QQGdTv9Ow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR12MB5414 Subject: Re: [dpdk-dev] [PATCH v2 01/12] ethdev: add port representor item to flow API 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" SGkgSXZhbi4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBJdmFuIE1h bG92IDxJdmFuLk1hbG92QG9rdGV0bGFicy5ydT4NCj4gU2VudDogU3VuZGF5LCBPY3RvYmVyIDEw LCAyMDIxIDQ6MzAgUE0NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MiAwMS8xMl0gZXRoZGV2OiBh ZGQgcG9ydCByZXByZXNlbnRvciBpdGVtIHRvIGZsb3cgQVBJDQo+IA0KPiBIaSBPcmksDQo+IA0K PiBUaGFua3MgYSBsb3QgZm9yIHJldmlld2luZyB0aGlzLg0KPiANCj4gT24gMTAvMTAvMjAyMSAx NDoxNSwgT3JpIEthbSB3cm90ZToNCj4gPiBIaSBJdmFuLA0KPiA+DQo+ID4+RnJvbSB0aGUgbmV3 IHBhdGNoZXMgSSBzYXcgeW91IGNob29zZSBwb3J0X3JlcHJlc2VudG9yIGFuZA0KPiA+PnJlcHJl c2VudGVkX3BvcnQNCj4gPiBEaWRuJ3Qgd2UgYWdyZWUgdG8gZ28gd2l0aCBFVEhERVZfUE9SVCBh bmQgU0hBRE9XX1BPUlQ/DQo+IA0KPiBZZXMsIGluIHRoZSBwcmV2aW91cyB0aHJlYWQgSSBzdWdn ZXN0ZWQgYSBkaWZmZXJlbnQgb3B0aW9uLiBCdXQgSSBnYXZlIGl0IG1vcmUgdGhvdWdodCBhbmQg ZGVjaWRlZCB0byBnbyBmb3INCj4gUE9SVF9SRVBSRVNFTlRPUiBhbmQgUkVQUkVTRU5URURfUE9S VCBpbnN0ZWFkLiBJbiBhbnkgY2FzZSwgSSBhcG9sb2dpc2UgZm9yIGl0IGJlaW5nIHN1Y2ggc2hv cnQNCj4gbm90aWNlLg0KPiANCj4gPiBUaGUgb25seSB0aGluZyB0aGF0IHdvcnJpZXMgbWUgaXMg dGhhdCB0aGUgbmFtaW5nIGFyZSB2ZXJ5IGVhc3kgdG8gZ2V0IHdyb25nLg0KPiA+IHBvcnRfcmVw cmVzZW50b3IgYW5kIHJlcHJlc2VudGVkX3BvcnQuDQo+IA0KPiBJcyB0aGF0IHNvPyBJbiAicG9y dCByZXByZXNlbnRvciIsIHRoZSBrZXkgd29yZCBpcyAicmVwcmVzZW50b3IiLCBhIG5vdW4uIElu ICJyZXByZXNlbnRlZCBwb3J0IiwgdGhlIGtleQ0KPiB3b3JkIGlzICJwb3J0Ii4gV29yZCAicmVw cmVzZW50ZWQiDQo+IGFjdHMgbGlrZSBhbiBhZGplY3RpdmUuIE1vcmUgdG8gdGhhdCwgdGhlIG9y ZGVyIG9mIHdvcmRzIGlzIGNob3NlbiBvbiBwdXJwb3NlIHRvIHByZXZlbnQgc29tZW9uZSBmcm9t DQo+IGFjY2lkZW50YWxseSB3cml0aW5nICJyZXByZXNlbnRPUl9wb3J0Ig0KPiBpbiB0aGVpciBj b2RlLCBmb3IgZXhhbXBsZS4gVGhhdCBzaW1wbHkgd29uJ3QgY29tcGlsZS4NCj4gDQo+IFdlbGws IGF0IGxlYXN0LCB0aGVzZSB0d28gYXJlIGhhcmRlciB0byBnZXQgd3JvbmcgY29tcGFyZWQgdG8g ImVtcGxveWVyIg0KPiBhbmQgImVtcGxveWVlIiwgZm9yIGV4YW1wbGUuDQo+IA0KPiBUaGUgbmV3 IG5hbWVzIGFyZSBiZXR0ZXIgYmVjYXVzZSB0aGV5IGFyZSBwYWlyZWQgdGVybXMuIEVhY2ggb25l IHN1Z2dlc3RzIHRoZSBleGlzdGVuY2Ugb2YgdGhlIG90aGVyDQo+IG9uZS4gVGhpcyBzcGFyZXMg b25lIGZyb20gdGhlIG5lZWQgdG8gaGF2ZSB3b3JkeSBleHBsYW5hdGlvbnMgb2YgdGhlIHN5bW1l dHJ5IG9mIHRoZSBkaWFncmFtLg0KPiBUaGUgbmV3IG5hbWVzIHNwZWFrIHRoZW1zZWx2ZXMuDQo+ IA0KPiBTYXlpbmcgInNoYWRvdyIgaXMgaW4gZmFjdCB2YWd1ZS4gVGhlIHJlYWRlciBkb2Vzbid0 IHNlZSBjbGVhcmx5IHRoYXQgaXQncyB0aGUgc2hhZG93IG9mIHRoZSBldGhkZXYuIEFuZCwgaW4N Cj4gdHVybiwgImV0aGRldiIgaXMgYWxzbyBub3QgYXMgZ29vZCBhcyAicmVwcmVzZW50b3IiLiBJ dCdzIGV2ZW4gaGFyZCB0byBwcm9ub3VuY2UgYmVjYXVzZSBvZiBiZWluZyBhDQo+IGNvbWJpbmF0 aW9uIG9mIG11bHRpcGxlIGNvbnRyYWN0aW9ucy4NCj4gDQo+IEkgaG9wZSB5b3UgZ2V0IHRoZSBp ZGVhLg0KPiANCg0KSSBnZXQgdGhlIGlkZWEsIHNpbmNlIG15IEVuZ2xpc2ggaXMgbm90IHBlcmZl Y3QgZnJvbSBteSB2aWV3IHBvaW50IHRob3NlIGFyZSBhIGJpdCBtb3JlIGNvbmZ1c2luZyBhbmQg ZWFzeQ0KdG8gZ2V0IHdyb25nIGJ1dCBJIGhhdmUgbm8gb2JqZWN0aW9uIHRvIGtlZXAgdGhlbS4N CkxldHMgc2VlIHdoYXQgb3RoZXJzIHdpbGwgdGhpbmsgYWJvdXQgaXQuDQoNCj4gPg0KPiA+IEFs c28gdGhlcmUgaXMgYW4gaXNzdWUgd2l0aCB3b3JkaW5nIGlmIHdlIGFzc3VtZSBsaWtlIGluIHBy ZXZpb3VzDQo+ID4gdGhyZWFkIHRoYXQgRFBESyBjYW4gaGF2ZSBib3RoIHRoZSByZXByZXNlbnRv ciBwb3J0IGFuZCBhbHNvIHRoZSByZXByZXNlbnRlZF9wb3J0Lg0KPiA+IFdoaWxlIGlmIHdlIGxv b2sgYXQgZm9yIGV4YW1wbGUgZXRoZGV2X3BvcnQgYW5kIHNoYWRvdyBwb3J0IGFyZSBiZXR0ZXIN Cj4gPiBkZWZpbmVkIGFzIGV0aGRldl9wb3J0IC0+IHRoZSBwb3J0IHRoYXQgaXMgY2xvc2VzdCB0 byB0aGUgRFBESyBldGhkZXYNCj4gPiB3aGlsZSBzaGFkb3cgcG9ydCBpcyBkZWZpbmVkIGFzIHRo ZSBvdGhlciBzaWRlIG9mIHRoZSBldGhkZXYgcG9ydC4NCj4gPg0KPiA+IFdoYXQgZG8geW91IHRo aW5rPw0KPiANCj4gVGhlIHNlbWFudGljcyBoYXNuJ3QgY2hhbmdlZCBzaW5jZSB0aGUgcHJldmlv dXMgdGhyZWFkLg0KPiBSZXByZXNlbnRvciBjb2luY2lkZXMgd2l0aCB0aGUgZXRoZGV2LCBzbyBp dCdzIHN0aWxsIHRoZSBjbG9zZXN0IHBvcnQuDQo+IEFuZCByZXByZXNlbnRlZCBwb3J0IGlzIHN0 aWxsIHRoZSBvdGhlciBzaWRlLiBJdCdzIGFsbCB0aGUgc2FtZSBpbiBmYWN0Lg0KPiANCj4gSWYg Ym90aCBWRiBhbmQgaXRzIHJlcHJlc2VudG9yIGFyZSBwbHVnZ2VkIHRvIERQREssIHRoZXkgcmVw cmVzZW50IGVhY2ggb3RoZXIgaW4gZmFjdC4gTXV0dWFsDQo+IHJlcHJlc2VudG9ycy4gWW91IGNh biBlcXVhbGx5IG5hbWUgdGhlIGZpcnN0IG9uZSBhIHJlcHJlc2VudG9yIGFuZCB0aGUgb3RoZXIg b25lIGEgcmVwcmVzZW50ZWQgcG9ydCwgLQ0KPiBhbmQgdmljZSB2ZXJzYS4NCj4gDQo+IFRoZSBu ZXcgbmFtaW5nIGRvZXNuJ3QgZGVueSBib3RoIHRoZXNlIHBvcnRzIGJlaW5nIGV0aGRldnMsIHdo aWxlIHRoZSBwcmV2aW91cyBvcHRpb24gKGV0aGRldiBhbmQNCj4gc2hhZG93KSBtYXkgdHJpY2sg dGhlIHJlYWRlciBpbnRvIHRoaW5raW5nIHRoYXQgb25seSBvbmUgb2YgdGhlIHR3byBjYW4gYmUg YW4gZXRoZGV2LiBUaGUgcmVhZGVyIG1heQ0KPiB0aGluayB0aGF0IHRoaXMgdXNlIGNhc2UgKHdo ZW4gVkYgYW5kIGl0cyByZXByZXNlbnRvciBhcmUgcGx1Z2dlZCB0byB0aGUgYXBwbGljYXRpb24p IGlzIGNvbXBsZXRlbHkgd3JvbmcuDQo+IExldCdzIGF2b2lkIHRoaXMgbWlzdGFrZS4NCj4gDQoN CkkgYWdyZWUgdGhvc2UgYXJlIHNlbWFudGljcyBhbmQgdGhlcmUgaXMgbm8gcGVyZmVjdCB3b3Js ZC4NCkkgYWNjZXB0IHlvdXIgY2FzZS4NCg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4+IEZyb206IEl2YW4gTWFsb3YgPGl2YW4ubWFsb3ZAb2t0ZXRsYWJzLnJ1Pg0K PiA+PiBTZW50OiBTdW5kYXksIE9jdG9iZXIgMTAsIDIwMjEgMzowNSBBTQ0KPiA+PiBTdWJqZWN0 OiBbUEFUQ0ggdjIgMDEvMTJdIGV0aGRldjogYWRkIHBvcnQgcmVwcmVzZW50b3IgaXRlbSB0byBm bG93DQo+ID4+IEFQSSA/DQo+ID4+IEZvciB1c2UgaW4gInRyYW5zZmVyIiBmbG93cy4gU3VwcG9z ZWQgdG8gbWF0Y2ggdHJhZmZpYyBlbnRlcmluZyB0aGUNCj4gPj4gZW1iZWRkZWQgc3dpdGNoIGZy b20gdGhlIGdpdmVuIGV0aGRldi4NCj4gPg0KPiA+DQo+ID4gSSB3b3VsZCBhbHNvIGFkZCBhIGNv bW1lbnQgdGhhdCBzYXlzIHRoZSBzaW5jZSB3ZSBhcmUgaW4gdHJhbnNmZXIgaXQNCj4gPiBtZWFu cyB0aGF0IGFsbCBydWxlcyBhcmUgbG9jYXRlZCBpbiB0aGUgRS1Td2l0Y2ggd2hpY2ggbWVhbnMg dGhhdCB0aGUNCj4gPiBtYXRjaGluZyBpcyBkb25lIG9uIHRoZSBzb3VyY2UgcG9ydCBvZiB0aGUg dHJhZmZpYy4NCj4gDQo+IExldCBtZSBwdXQgaXQgY2xlYXI6IEkgZG9uJ3QgbWluZCBhZGRpbmcg bW9yZSBjb21tZW50cy4gSSBjYW4gZG8gdGhhdCwgeWVzLiBCdXQgbG9vay4gWW91IHNheSAibWF0 Y2hpbmcgaXMNCj4gZG9uZSBvbiB0aGUgc291cmNlIHBvcnQiLiBJc24ndCB0aGF0IHdoYXQgImVu dGVyaW5nIHRoZSBlbWJlZGRlZCBzd2l0Y2ggRlJPTSB0aGUgZ2l2ZW4gZXRoZGV2IiBhbHJlYWR5 DQo+IHNheXM/DQo+IA0KWWVzLCAgdGhlIGlkZWEgb2YgdGhpcyBzZXJpZXMgaXMgdG8gY2xlYXIg ZXZlcnl0aGluZy4NCkRvIHlvdSB0aGluayB0aGF0IHNvbWVvbmUgd2hvIGp1c3QgcmVhZCB0aGlz IGNvbW1pdCBsb2cgY2FuIHdpdGhvdXQgcHJpb3Iga25vd2xlZGdlIG9mIFJURSBmbG93DQphbmQg dHJhbnNmZXIgY2FuIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGlkZWE/DQoNCklmIHNvIEknbSwgTy5L LiB3aXRoIGxlYXZpbmcgdGhlIGNvbW1lbnQgYXMgaXMuDQoNCkluIG1vc3QgcmVsYXRlZCBjb21t ZW50IGFib3V0IHBoYXJzaW5nIEknbSBnaXZpbmcgbXkgdmlldyBwb2ludCB3aXRoIGFsbA0KdGhl IGNvbW1lbnRzIEkgZ290IGFib3V0IGhvdyBtdWNoIGhhcmQgaXQgaXMgdG8gY3JlYXRlIHJ1bGVz IGFuZCB1bmRlcnN0YW5kIHRoZQ0KZG9jdW1lbnRhdGlvbi4NCg0KVW5sZXNzIHRoZXJlIGlzIHNv bWV0aGluZyB3cm9uZyBvciBtaXNsZWFkaW5nIEkgY2FuIGV4Y2VwdCBtb3N0IGFuc3dlcnMgYW5k IGNvbW1lbnRzLA0KYnV0IEkgc3RlZWwgdGhpbmsgdGhhdCBzb21ldGltZSBpdCBpcyB3b3J0aCBz YXlpbmcgdGhlbSBldmVuIGlmIGl0IGlzIGp1c3QgZm9yIHRoZSBkZXZlbG9wZXIgdG8gdGhpbmsN CmFnYWluIGlmIHNvbWV0aGluZyBjYW4gYmUgaW1wcm92ZWQuDQoNCj4gPg0KPiA+IEkgdGhpbmsg dGhpcyB3aWxsIGFsc28gaGVscCB1bmRlcnN0YW5kIHRoZSB2aWV3IHBvaW50IHRoYXQgd2UgYXJl DQo+ID4gbG9va2luZyBmcm9tIHRoZSBwb2ludCBvZiB0aGUgc3dpdGNoLCBhbmQgdG8gYWRkIHRo ZSBkcmF3aW5nLg0KPiANCj4gV2VsbCwgYXMgSSBzYWlkLCB0ZWNobmljYWxseSwgSSBkb24ndCBv YmplY3QgYWRkaW5nIG1vcmUgY29tbWVudHMuIEJ1dCB0aGUgYWJvdmUgZGVzY3JpcHRpb24gc2F5 czogImVudGVyaW5nDQo+IHRoZSBlbWJlZGRlZCBzd2l0Y2giLiBEb2Vzbid0IGl0IGluZGljYXRl IHRoZSB2aWV3cG9pbnQgY2xlYXIgZW5vdWdoPyBTaG91bGQgSSByZXdvcmQgdGhpcz8NCj4gDQo+ IEFsc28sICJmbG93IGVuZ2luZSIgaXMgc2hvd2VkIGluIHRoZSBkaWFncmFtLiBBbmQgdGhlcmUg YXJlIGFycm93cy4NCj4gRG9lc24ndCB0aGF0IGV4cGxhaW4gdGhlIHZpZXdwb2ludCBmdWxseT8N Cj4gDQo+IEknbSByZWFkeSB0byBkaXNjdXNzIC8gaW1wcm92ZS4NCg0KWWVzLCBidXQgSSB3YXMg dGhpbmtpbmcgYWJvdXQgYWxzbyBhZGRpbmcgaXQgaW4gdGhlIGNvbW1pdCBsb2cuDQoNCj4gDQo+ ID4NCj4gPj4NCj4gPj4gTXVzdCBub3QgYmUgY29tYmluZWQgd2l0aCBkaXJlY3Rpb24gYXR0cmli dXRlcy4NCj4gPj4NCj4gPj4gU2lnbmVkLW9mZi1ieTogSXZhbiBNYWxvdiA8aXZhbi5tYWxvdkBv a3RldGxhYnMucnU+DQo+ID4+IC0tLQ0KPiA+PiAgIGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cu YyAgICAgICAgICAgICAgICAgfCAyNyArKysrKysrKysrDQo+ID4+ICAgZG9jL2d1aWRlcy9wcm9n X2d1aWRlL3J0ZV9mbG93LnJzdCAgICAgICAgICB8IDU5ICsrKysrKysrKysrKysrKysrKysrKw0K PiA+PiAgIGRvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjFfMTEucnN0ICAgICAgfCAgMiAr DQo+ID4+ICAgZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdCB8ICA0 ICsrDQo+ID4+ICAgbGliL2V0aGRldi9ydGVfZmxvdy5jICAgICAgICAgICAgICAgICAgICAgICB8 ICAxICsNCj4gPj4gICBsaWIvZXRoZGV2L3J0ZV9mbG93LmggICAgICAgICAgICAgICAgICAgICAg IHwgMjcgKysrKysrKysrKw0KPiA+PiAgIDYgZmlsZXMgY2hhbmdlZCwgMTIwIGluc2VydGlvbnMo KykNCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhL2FwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYw0K PiA+PiBiL2FwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYyBpbmRleA0KPiA+PiBiYjIyMjk0ZGQz Li5hOTEyYThkODE1IDEwMDY0NA0KPiA+PiAtLS0gYS9hcHAvdGVzdC1wbWQvY21kbGluZV9mbG93 LmMNCj4gPj4gKysrIGIvYXBwL3Rlc3QtcG1kL2NtZGxpbmVfZmxvdy5jDQo+ID4+IEBAIC0zMDYs NiArMzA2LDggQEAgZW51bSBpbmRleCB7DQo+ID4+ICAgCUlURU1fUE9MX1BPUlQsDQo+ID4+ICAg CUlURU1fUE9MX01FVEVSLA0KPiA+PiAgIAlJVEVNX1BPTF9QT0xJQ1ksDQo+ID4+ICsJSVRFTV9Q T1JUX1JFUFJFU0VOVE9SLA0KPiA+PiArCUlURU1fUE9SVF9SRVBSRVNFTlRPUl9QT1JUX0lELA0K PiA+Pg0KPiA+PiAgIAkvKiBWYWxpZGF0ZS9jcmVhdGUgYWN0aW9ucy4gKi8NCj4gPj4gICAJQUNU SU9OUywNCj4gPj4gQEAgLTEwMDAsNiArMTAwMiw3IEBAIHN0YXRpYyBjb25zdCBlbnVtIGluZGV4 IG5leHRfaXRlbVtdID0gew0KPiA+PiAgIAlJVEVNX0dFTkVWRV9PUFQsDQo+ID4+ICAgCUlURU1f SU5URUdSSVRZLA0KPiA+PiAgIAlJVEVNX0NPTk5UUkFDSywNCj4gPj4gKwlJVEVNX1BPUlRfUkVQ UkVTRU5UT1IsDQo+ID4+ICAgCUVORF9TRVQsDQo+ID4+ICAgCVpFUk8sDQo+ID4+ICAgfTsNCj4g Pj4gQEAgLTEzNjgsNiArMTM3MSwxMiBAQCBzdGF0aWMgY29uc3QgZW51bSBpbmRleCBpdGVtX2lu dGVncml0eV9sdltdID0gew0KPiA+PiAgIAlaRVJPLA0KPiA+PiAgIH07DQo+ID4+DQo+ID4+ICtz dGF0aWMgY29uc3QgZW51bSBpbmRleCBpdGVtX3BvcnRfcmVwcmVzZW50b3JbXSA9IHsNCj4gPj4g KwlJVEVNX1BPUlRfUkVQUkVTRU5UT1JfUE9SVF9JRCwNCj4gPj4gKwlJVEVNX05FWFQsDQo+ID4+ ICsJWkVSTywNCj4gPj4gK307DQo+ID4+ICsNCj4gPj4gICBzdGF0aWMgY29uc3QgZW51bSBpbmRl eCBuZXh0X2FjdGlvbltdID0gew0KPiA+PiAgIAlBQ1RJT05fRU5ELA0KPiA+PiAgIAlBQ1RJT05f Vk9JRCwNCj4gPj4gQEAgLTM2MDgsNiArMzYxNywyMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRv a2VuIHRva2VuX2xpc3RbXSA9IHsNCj4gPj4gICAJCQkgICAgIGl0ZW1fcGFyYW0pLA0KPiA+PiAg IAkJLmFyZ3MgPSBBUkdTKEFSR1NfRU5UUlkoc3RydWN0IHJ0ZV9mbG93X2l0ZW1fY29ubnRyYWNr LCBmbGFncykpLA0KPiA+PiAgIAl9LA0KPiA+PiArCVtJVEVNX1BPUlRfUkVQUkVTRU5UT1JdID0g ew0KPiA+PiArCQkubmFtZSA9ICJwb3J0X3JlcHJlc2VudG9yIiwNCj4gPj4gKwkJLmhlbHAgPSAi bWF0Y2ggdHJhZmZpYyBlbnRlcmluZyB0aGUgZW1iZWRkZWQgc3dpdGNoIGZyb20gdGhlDQo+ID4+ IGdpdmVuIGV0aGRldiIsDQo+ID4+ICsJCS5wcml2ID0gUFJJVl9JVEVNKFBPUlRfUkVQUkVTRU5U T1IsDQo+ID4+ICsJCQkJICBzaXplb2Yoc3RydWN0IHJ0ZV9mbG93X2l0ZW1fZXRoZGV2KSksDQo+ ID4+ICsJCS5uZXh0ID0gTkVYVChpdGVtX3BvcnRfcmVwcmVzZW50b3IpLA0KPiA+PiArCQkuY2Fs bCA9IHBhcnNlX3ZjLA0KPiA+PiArCX0sDQo+ID4+ICsJW0lURU1fUE9SVF9SRVBSRVNFTlRPUl9Q T1JUX0lEXSA9IHsNCj4gPj4gKwkJLm5hbWUgPSAicG9ydF9pZCIsDQo+ID4+ICsJCS5oZWxwID0g ImV0aGRldiBwb3J0IElEIiwNCj4gPj4gKwkJLm5leHQgPSBORVhUKGl0ZW1fcG9ydF9yZXByZXNl bnRvciwNCj4gPj4gTkVYVF9FTlRSWShDT01NT05fVU5TSUdORUQpLA0KPiA+PiArCQkJICAgICBp dGVtX3BhcmFtKSwNCj4gPj4gKwkJLmFyZ3MgPSBBUkdTKEFSR1NfRU5UUlkoc3RydWN0IHJ0ZV9m bG93X2l0ZW1fZXRoZGV2LA0KPiA+PiBwb3J0X2lkKSksDQo+ID4+ICsJfSwNCj4gPj4gICAJLyog VmFsaWRhdGUvY3JlYXRlIGFjdGlvbnMuICovDQo+ID4+ICAgCVtBQ1RJT05TXSA9IHsNCj4gPj4g ICAJCS5uYW1lID0gImFjdGlvbnMiLA0KPiA+PiBAQCAtODM0Myw2ICs4MzY3LDkgQEAgZmxvd19p dGVtX2RlZmF1bHRfbWFzayhjb25zdCBzdHJ1Y3QNCj4gPj4gcnRlX2Zsb3dfaXRlbQ0KPiA+PiAq aXRlbSkNCj4gPj4gICAJY2FzZSBSVEVfRkxPV19JVEVNX1RZUEVfUEZDUDoNCj4gPj4gICAJCW1h c2sgPSAmcnRlX2Zsb3dfaXRlbV9wZmNwX21hc2s7DQo+ID4+ICAgCQlicmVhazsNCj4gPj4gKwlj YXNlIFJURV9GTE9XX0lURU1fVFlQRV9QT1JUX1JFUFJFU0VOVE9SOg0KPiA+PiArCQltYXNrID0g JnJ0ZV9mbG93X2l0ZW1fZXRoZGV2X21hc2s7DQo+ID4+ICsJCWJyZWFrOw0KPiA+PiAgIAlkZWZh dWx0Og0KPiA+PiAgIAkJYnJlYWs7DQo+ID4+ICAgCX0NCj4gPj4gZGlmZiAtLWdpdCBhL2RvYy9n dWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QNCj4gPj4gYi9kb2MvZ3VpZGVzL3Byb2dfZ3Vp ZGUvcnRlX2Zsb3cucnN0DQo+ID4+IGluZGV4IDJiNDJkNWVjOGMuLjJlMGY1OTA3NzcgMTAwNjQ0 DQo+ID4+IC0tLSBhL2RvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QNCj4gPj4gKysr IGIvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdA0KPiA+PiBAQCAtMTQyNSw2ICsx NDI1LDY1IEBAIE1hdGNoZXMgYSBjb25udHJhY2sgc3RhdGUgYWZ0ZXIgY29ubnRyYWNrIGFjdGlv bi4NCj4gPj4gICAtIGBgZmxhZ3NgYDogY29ubnRyYWNrIHBhY2tldCBzdGF0ZSBmbGFncy4NCj4g Pj4gICAtIERlZmF1bHQgYGBtYXNrYGAgbWF0Y2hlcyBhbGwgc3RhdGUgYml0cy4NCj4gPj4NCj4g Pj4gK0l0ZW06IGBgUE9SVF9SRVBSRVNFTlRPUmBgDQo+ID4+ICteXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXg0KPiA+PiArDQo+ID4+ICtNYXRjaGVzIHRyYWZmaWMgZW50ZXJpbmcgdGhlIGVtYmVk ZGVkIHN3aXRjaCBmcm9tIHRoZSBnaXZlbiBldGhkZXYuDQo+ID4+ICsNCj4gPj4gK1Rlcm0gKipl dGhkZXYqKiBhbmQgdGhlIGNvbmNlcHQgb2YgKipwb3J0IHJlcHJlc2VudG9yKiogYXJlIHN5bm9u eW1vdXMuDQo+ID4+ICtUaGUgKipyZXByZXNlbnRlZCBwb3J0KiogaXMgYW4gKmVudGl0eSogcGx1 Z2dlZCB0byB0aGUgZW1iZWRkZWQNCj4gPj4gK3N3aXRjaCBhdCB0aGUgb3Bwb3NpdGUgZW5kIG9m IHRoZSAid2lyZSIgbGVhZGluZyB0byB0aGUgZXRoZGV2Lg0KPiA+PiArDQo+ID4+ICs6Og0KPiA+ PiArDQo+ID4+ICsgICAgLi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS4NCj4gPj4gKyAgICB8ICAg IFBPUlRfUkVQUkVTRU5UT1IgICAgfCAgRXRoZGV2IChBcHBsaWNhdGlvbiBQb3J0IFJlZmVycmVk IHRvIGJ5IGl0cyBJRCkNCj4gPj4gKyAgICAnLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJw0KPiA+ PiArICAgICAgICAgICAgICAgIHx8DQo+ID4+ICsgICAgICAgICAgICAgICAgXC8NCj4gPj4gKyAg ICAuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLg0KPiA+PiArICAgIHwgIEVtYmVkZGVkIFN3aXRj aCBQb3J0ICB8ICBMb2dpY2FsIFBvcnQNCj4gPj4gKyAgICAnLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tJw0KPiA+PiArICAgICAgICAgICAgICAgIHx8DQo+ID4+ICsgICAgICAgICAgICAgICAgfHwN Cj4gPj4gKyAgICAgICAgICAgICAgICB8fA0KPiA+PiArICAgICAgICAgICAgICAgIFwvDQo+ID4+ ICsgICAgLi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS4NCj4gPj4gKyAgICB8ICBFbWJlZGRlZCBG bG93IEVuZ2luZSAgfA0KPiA+PiArICAgICctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0nDQo+ID4+ ICsgICAgICAgICAgICAgICAgOg0KPiA+PiArICAgICAgICAgICAgICAgICA6DQo+ID4+ICsgICAg ICAgICAgICAgICAgOg0KPiA+PiArICAgICAgICAgICAgICAgICA6DQo+ID4+ICsgICAgLi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS4NCj4gPj4gKyAgICB8ICBFbWJlZGRlZCBTd2l0Y2ggUG9ydCAg fCAgTG9naWNhbCBQb3J0DQo+ID4+ICsgICAgJy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLScNCj4g Pj4gKyAgICAgICAgICAgICAgICA6DQo+ID4+ICsgICAgICAgICAgICAgICAgIDoNCj4gPj4gKyAg ICAuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLg0KPiA+PiArICAgIHwgICAgUkVQUkVTRU5URURf UE9SVCAgICB8ICBOZXQgLyBHdWVzdCAvIEFub3RoZXIgRXRoZGV2IChTYW1lDQo+ID4+IEFwcGxp Y2F0aW9uKQ0KPiA+PiArICAgICctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0nDQo+ID4+ICsNCj4g Pj4gKw0KPiA+DQo+ID4gSSB0aGluayB0aGlzIGRyYXdpbmcgaXMgaGFyZGVyIHRvIHVuZGVyc3Rh bmQgdGhhbiB0aGUgb25lIHlvdSBkcmF3IGluDQo+ID4gdGhlIHByZXZpb3VzIHRocmVhZCAoQS0+ IGV0aGRldiwgYi0+IGVtYmVkZGVkIHN3aXRjaCwgc3dpdGNoICwgYy0+IGVtYmVkZGVkIHN3aXRj aCwgZCAtPiByZXByZXNlbnRlZA0KPiBlbnRpdHkgKHNoYWRvdyBwb3J0KS4NCj4gDQo+IElzIHRo YXQgc28/IEhlcmUncyB0aGUgcHJldmlvdXMgZHJhd2luZzoNCj4gDQo+IA0KPiAgICAgICBbIEEg XSAgICAgICA8LS0gZXRoZGV2DQo+ICAgICAgICAgfA0KPiAgICAgICBbIEIgXSAgICAgICA8LS0g ZW1iZWRkZWQgc3dpdGNoIChsb2dpY2FsKSBwb3J0DQo+ICAgICAgICAgfA0KPiAgICAgICAgIHwN Cj4gICAgICAgICB8DQo+ID09PT09PT09PT09PT09PSAgPC0tIHBsYW5lIG9mIHN5bW1ldHJ5DQo+ ICAgICAgICAgfA0KPiAgICAgICAgIHwNCj4gICAgICAgICB8DQo+ICAgICAgIFsgQyBdICAgICAg IDwtLSBlbWJlZGRlZCBzd2l0Y2ggKGxvZ2ljYWwpIHBvcnQNCj4gICAgICAgICB8DQo+ICAgICAg IFsgRCBdICAgICAgIDwtLSByZXByZXNlbnRlZCBlbnRpdHkNCj4gDQo+IA0KPiBUZWNobmljYWxs eSwgdGhlc2UgdHdvIGFyZSBleGFjdGx5IHRoZSBzYW1lLiBZZXMsIEkgdXNlIHByZWNpc2UgbmFt ZXMgaW5zdGVhZCBvZiBsZXR0ZXJzIChBLCBCLCBDLCBEKSBhbmQNCj4gbW9yZSBmb3JtYXR0aW5n LCBidXQgdGhhdCBzaG91bGQgaGVscCwgbm90IGNvbmZ1c2UuDQo+IA0KPiBBbmQsIGFzIEkgc2F5 LCBpbiB0aGUgbmV3IG9uZSwgSSBkb24ndCBoYXZlIHRvIHVzZSBjb21wbGV4IHRlcm1zIGxpa2Ug InBsYW5lIG9mIHN5bW1ldHJ5Ii4gVGhlIG5hbWVzDQo+IHNwZWFrIGZvciBpdCB0aGVtc2VsdmVz Lg0KPiANCg0KVGhhdCB3YXMgd2hhdCBJIHdhcyBtaXNzaW5nIGFuZCB0aGUgb25seSBkaWZmZXJl bmNlIGJldHdlZW4gdGhlIHR3bywNClRoIHBsYW5lIG9mIHN5bW1ldHJ5IChJJ20gbm90IHN1cmUg SSBsaWtlIHRoaXMgbmFtZSkgYnV0IGl0IGlzIG11Y2ggY2xlYXJlZCB0aGVtIGVtYmVkZGVkIGVu Z2luZS4NCkVtYmVkZGVkIGVuZ2luZSBoYXMgbWVhbmluZyBmb3IgbWUgd2hpY2ggaXMgdmVyeSBk aWZmZXJlbnQuDQptYXliZSBqdXN0IHJlcGxhY2UgaXQgd2l0aCAgc3dpdGNoPyBPciBFbWJlZGRl ZCBzd2l0Y2g/DQogDQo+ID4NCj4gPj4gKy0gSW5jb21wYXRpYmUgd2l0aCBgQXR0cmlidXRlOiBU cmFmZmljIGRpcmVjdGlvbmBfLg0KPiA+PiArLSBSZXF1aXJlcyBgQXR0cmlidXRlOiBUcmFuc2Zl cmBfLg0KPiA+PiArDQo+ID4+ICsuLiBfdGFibGVfcnRlX2Zsb3dfaXRlbV9ldGhkZXY6DQo+ID4+ ICsNCj4gPj4gKy4uIHRhYmxlOjogYGBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9ldGhkZXZgYA0KPiA+ PiArDQo+ID4+ICsgICArLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSsNCj4gPj4gKyAgIHwgRmllbGQgICAgfCBTdWJmaWVsZCAgICB8IFZhbHVlICAg ICAgICAgICAgICAgICAgICAgfA0KPiA+PiArICAgKz09PT09PT09PT0rPT09PT09PT09PT09PSs9 PT09PT09PT09PT09PT09PT09PT09PT09PT0rDQo+ID4+ICsgICB8IGBgc3BlY2BgIHwgYGBwb3J0 X2lkYGAgfCBldGhkZXYgcG9ydCBJRCAgICAgICAgICAgIHwNCj4gPj4gKyAgICstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+PiArICAgfCBg YGxhc3RgYCB8IGBgcG9ydF9pZGBgIHwgdXBwZXIgcmFuZ2UgdmFsdWUgICAgICAgICB8DQo+ID4+ ICsgICArLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsNCj4gPj4gKyAgIHwgYGBtYXNrYGAgfCBgYHBvcnRfaWRgYCB8IHplcm9lZCBmb3Igd2lsZGNh cmQgbWF0Y2ggfA0KPiA+PiArICAgKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rDQo+ID4+ICsNCj4gPj4gKy0gRGVmYXVsdCBgYG1hc2tgYCBwcm92 aWRlcyBleGFjdCBtYXRjaCBiZWhhdmlvdXIuDQo+ID4+ICsNCj4gPj4gICBBY3Rpb25zDQo+ID4+ ICAgfn5+fn5+fg0KPiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMv cmVsZWFzZV8yMV8xMS5yc3QNCj4gPj4gYi9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIx XzExLnJzdA0KPiA+PiBpbmRleCA4OWQ0YjMzZWYxLi4xMjYxY2IyYmYzIDEwMDY0NA0KPiA+PiAt LS0gYS9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIxXzExLnJzdA0KPiA+PiArKysgYi9k b2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIxXzExLnJzdA0KPiA+PiBAQCAtMTg4LDYgKzE4 OCw4IEBAIEFQSSBDaGFuZ2VzDQo+ID4+ICAgICAgQWxzbywgbWFrZSBzdXJlIHRvIHN0YXJ0IHRo ZSBhY3R1YWwgdGV4dCBhdCB0aGUgbWFyZ2luLg0KPiA+PiAgICAgID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPj4NCj4gPj4gKyogZXRo ZGV2OiBBZGRlZCBpdGVtIGBgUE9SVF9SRVBSRVNFTlRPUmBgIHRvIGZsb3cgQVBJLg0KPiA+PiAr DQo+ID4+ICAgKiBrdmFyZ3M6IFRoZSBleHBlcmltZW50YWwgZnVuY3Rpb24gYGBydGVfa3Zhcmdz X3N0cmNtcCgpYGAgaGFzIGJlZW4NCj4gPj4gICAgIHJlbW92ZWQuIEl0cyB1c2FnZXMgaGF2ZSBi ZWVuIHJlcGxhY2VkIGJ5IGEgbmV3IGZ1bmN0aW9uDQo+ID4+ICAgICBgYHJ0ZV9rdmFyZ3NfZ2V0 X3dpdGhfdmFsdWUoKWBgLg0KPiA+PiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy90ZXN0cG1kX2Fw cF91Zy90ZXN0cG1kX2Z1bmNzLnJzdA0KPiA+PiBiL2RvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcv dGVzdHBtZF9mdW5jcy5yc3QNCj4gPj4gaW5kZXggOGVhZDdhNGE3MS4uZGNiOWY0N2Q5OCAxMDA2 NDQNCj4gPj4gLS0tIGEvZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJz dA0KPiA+PiArKysgYi9kb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0 DQo+ID4+IEBAIC0zNzk1LDYgKzM3OTUsMTAgQEAgVGhpcyBzZWN0aW9uIGxpc3RzIHN1cHBvcnRl ZCBwYXR0ZXJuIGl0ZW1zIGFuZA0KPiA+PiB0aGVpciBhdHRyaWJ1dGVzLCBpZiBhbnkuDQo+ID4+ DQo+ID4+ICAgLSBgYGNvbm50cmFja2BgOiBtYXRjaCBjb25udHJhY2sgc3RhdGUuDQo+ID4+DQo+ ID4+ICstIGBgcG9ydF9yZXByZXNlbnRvcmBgOiBtYXRjaCB0cmFmZmljIGVudGVyaW5nIHRoZSBl bWJlZGRlZCBzd2l0Y2gNCj4gPj4gK2Zyb20gdGhlIGdpdmVuIGV0aGRldg0KPiA+PiArDQo+ID4+ ICsgIC0gYGBwb3J0X2lkIHt1bnNpZ25lZH1gYDogZXRoZGV2IHBvcnQgSUQNCj4gPj4gKw0KPiA+ PiAgIEFjdGlvbnMgbGlzdA0KPiA+PiAgIF5eXl5eXl5eXl5eXg0KPiA+Pg0KPiA+PiBkaWZmIC0t Z2l0IGEvbGliL2V0aGRldi9ydGVfZmxvdy5jIGIvbGliL2V0aGRldi9ydGVfZmxvdy5jIGluZGV4 DQo+ID4+IDhjYjdhMDY5YzguLjVlOTMxN2M2ZDEgMTAwNjQ0DQo+ID4+IC0tLSBhL2xpYi9ldGhk ZXYvcnRlX2Zsb3cuYw0KPiA+PiArKysgYi9saWIvZXRoZGV2L3J0ZV9mbG93LmMNCj4gPj4gQEAg LTEwMCw2ICsxMDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2Rlc2NfZGF0YQ0K PiA+PiBydGVfZmxvd19kZXNjX2l0ZW1bXSA9IHsNCj4gPj4gICAJTUtfRkxPV19JVEVNKEdFTkVW RV9PUFQsIHNpemVvZihzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9nZW5ldmVfb3B0KSksDQo+ID4+ICAg CU1LX0ZMT1dfSVRFTShJTlRFR1JJVFksIHNpemVvZihzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9pbnRl Z3JpdHkpKSwNCj4gPj4gICAJTUtfRkxPV19JVEVNKENPTk5UUkFDSywgc2l6ZW9mKHVpbnQzMl90 KSksDQo+ID4+ICsJTUtfRkxPV19JVEVNKFBPUlRfUkVQUkVTRU5UT1IsIHNpemVvZihzdHJ1Y3QN Cj4gPj4gcnRlX2Zsb3dfaXRlbV9ldGhkZXYpKSwNCj4gPj4gICB9Ow0KPiA+Pg0KPiA+PiAgIC8q KiBHZW5lcmF0ZSBmbG93X2FjdGlvbltdIGVudHJ5LiAqLyBkaWZmIC0tZ2l0DQo+ID4+IGEvbGli L2V0aGRldi9ydGVfZmxvdy5oIGIvbGliL2V0aGRldi9ydGVfZmxvdy5oIGluZGV4DQo+ID4+IDdi MWVkN2YxMTAuLjM2MjVmZDJjMTIgMTAwNjQ0DQo+ID4+IC0tLSBhL2xpYi9ldGhkZXYvcnRlX2Zs b3cuaA0KPiA+PiArKysgYi9saWIvZXRoZGV2L3J0ZV9mbG93LmgNCj4gPj4gQEAgLTU3NCw2ICs1 NzQsMTUgQEAgZW51bSBydGVfZmxvd19pdGVtX3R5cGUgew0KPiA+PiAgIAkgKiBAc2VlIHN0cnVj dCBydGVfZmxvd19pdGVtX2Nvbm50cmFjay4NCj4gPj4gICAJICovDQo+ID4+ICAgCVJURV9GTE9X X0lURU1fVFlQRV9DT05OVFJBQ0ssDQo+ID4+ICsNCj4gPj4gKwkvKioNCj4gPj4gKwkgKiBbTUVU QV0NCj4gPj4gKwkgKg0KPiA+PiArCSAqIE1hdGNoZXMgdHJhZmZpYyBlbnRlcmluZyB0aGUgZW1i ZWRkZWQgc3dpdGNoIGZyb20gdGhlIGdpdmVuIGV0aGRldi4NCj4gPj4gKwkgKg0KPiA+PiArCSAq IEBzZWUgc3RydWN0IHJ0ZV9mbG93X2l0ZW1fZXRoZGV2DQo+ID4+ICsJICovDQo+ID4+ICsJUlRF X0ZMT1dfSVRFTV9UWVBFX1BPUlRfUkVQUkVTRU5UT1IsDQo+ID4+ICAgfTsNCj4gPj4NCj4gPj4g ICAvKioNCj4gPj4gQEAgLTE3OTksNiArMTgwOCwyNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJ0 ZV9mbG93X2l0ZW1fY29ubnRyYWNrDQo+ID4+IHJ0ZV9mbG93X2l0ZW1fY29ubnRyYWNrX21hc2sg PSB7ICB9OyAgI2VuZGlmDQo+ID4+DQo+ID4+ICsvKioNCj4gPj4gKyAqIEB3YXJuaW5nDQo+ID4+ ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgc3RydWN0dXJlIG1heSBjaGFuZ2Ugd2l0aG91dCBw cmlvciBub3RpY2UNCj4gPj4gKyAqDQo+ID4+ICsgKiBQcm92aWRlcyBhbiBldGhkZXYgcG9ydCBJ RCBmb3IgdXNlIHdpdGggdGhlIGZvbGxvd2luZyBpdGVtczoNCj4gPj4gKyAqIFJURV9GTE9XX0lU RU1fVFlQRV9QT1JUX1JFUFJFU0VOVE9SLg0KPiA+PiArICovDQo+ID4+ICtzdHJ1Y3QgcnRlX2Zs b3dfaXRlbV9ldGhkZXYgew0KPiA+PiArCXVpbnQxNl90IHBvcnRfaWQ7IC8qKjwgZXRoZGV2IHBv cnQgSUQgKi8gfTsNCj4gPj4gKw0KPiA+PiArLyoqIERlZmF1bHQgbWFzayBmb3IgaXRlbXMgYmFz ZWQgb24gc3RydWN0IHJ0ZV9mbG93X2l0ZW1fZXRoZGV2ICovDQo+ID4+ICsjaWZuZGVmIF9fY3Bs dXNwbHVzIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9ldGhkZXYNCj4gPj4gK3J0 ZV9mbG93X2l0ZW1fZXRoZGV2X21hc2sgPSB7DQo+ID4+ICsJLnBvcnRfaWQgPSAweGZmZmYsDQo+ ID4+ICt9Ow0KPiA+PiArI2VuZGlmDQo+ID4+ICsNCj4gPj4gICAvKioNCj4gPj4gICAgKiBNYXRj aGluZyBwYXR0ZXJuIGl0ZW0gZGVmaW5pdGlvbi4NCj4gPj4gICAgKg0KPiA+PiAtLQ0KPiA+PiAy LjIwLjENCj4gDQo+IC0tDQo+IEl2YW4gTQ0KDQpCZXN0LA0KT3JpDQo=