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 14595A0C47; Tue, 12 Oct 2021 12:55:47 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AE7A141150; Tue, 12 Oct 2021 12:55:46 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2069.outbound.protection.outlook.com [40.107.93.69]) by mails.dpdk.org (Postfix) with ESMTP id 8B16441147 for ; Tue, 12 Oct 2021 12:55:44 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mrW0H12MgoeszC+qzS4jQZBbCwROAA7SZdaFr+AjL9n5pPD/L5/Z7AU9Cc+SquwAnHJ40CvlyDN6yCijucNQkYK7PQVRXOVSqIEWLisAo2uPryatP9+6KcNthCKjCYmxDZRmgrnu9KULbSwK4V+iCzeMH07bRtkOKMnEoFRXcxhWNEiPHRL3kd9akIfJMoH8o+X6NFYsaTK13M2uC7J3/YMf7MTLBM2z8AFyL2TA0aUuCqfAriE1o4wWJHS9jSHif6OvQrf+Kl8LbFkywofY+8kUA2KTT3N4vdkDgseWIAQq+jdYOpIIOe/bUO/fquCNurfEml0R+WtFPv0VAN0dPg== 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=f0yKc8SvgSjoqfprlZIk8jLVpgHPZ4C64jHo1mkd4lY=; b=moMNgEDOvZirhSJbu/Zqv7S+iTGebBqS+rcI1lc+la3c5gxxn5fl3MTx0kZIWwBpNwLDfMunGqhg1BJfTubd64UM8KK6YNrGsKphFJF/hJ19Mx2eJGgHAMVTuGsNk5+YDT4u8hrHCQxeg/lTZXgDGpgdiCngVTOuSMBzd7vX5VA2VSzPti1Ph8SwJ4YPw5lmKlOSirGZN9H64xoVIRTYmrxxmWsfjlmT5I5LGPeGYmdQ3Q0WWxjcEK0k4OvFnyjL52DunaE093RstzO6Mf3s3azN61M8jzO431TojkqEflAO6gA3/kSILbEXVHHcu2JLpBYxWaF41AmPo0UOUMi6/A== 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=f0yKc8SvgSjoqfprlZIk8jLVpgHPZ4C64jHo1mkd4lY=; b=pjdLj6QWeVL1PMktPXg0HyRInKW6wZru9mhRjPZDdExRpxcUS7LPT9m0k9GC8+tvCwYMjRRWh9/5vsWB5FVhiLcxsmhmO1lUY8WK26LXe3fzNaC4mixXe8UtMjjnGEDhEyaVI4uDDwO2jVXVgLzle+/65JuStXN5bJpuS/BIBkqcHwP6lRg13qRomh4AZS2Y5eB86QqU/znfJIj6NM2mzAIhy1gPIq0DIXVt4nPoN9t4EItNy1o54DIgd7pJc81lw30OPnyDKNmQLuCOWG2aX/a3z1YUp8zzKVXgRU2haAPWtBX1w4XZYfJYnnvVaTsqhfIsHdMQROBV0l9t5Juu9w== Received: from DM4PR12MB5373.namprd12.prod.outlook.com (2603:10b6:5:39a::17) by DM4PR12MB5136.namprd12.prod.outlook.com (2603:10b6:5:393::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.20; Tue, 12 Oct 2021 10:55:43 +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.4587.026; Tue, 12 Oct 2021 10:55:43 +0000 From: "Xueming(Steven) Li" To: "andrew.rybchenko@oktetlabs.ru" , "dev@dpdk.org" CC: "jerinjacobk@gmail.com" , NBU-Contact-Thomas Monjalon , Lior Margalit , Slava Ovsiienko , "konstantin.ananyev@intel.com" , "ferruh.yigit@intel.com" Thread-Topic: [PATCH v4 0/6] ethdev: introduce shared Rx queue Thread-Index: AQHXtgthpEJvT1hnv0uKtjd5vS1emqvNwAUAgAA4WgCAAQLkAIAAJIaAgAAjhgA= Date: Tue, 12 Oct 2021 10:55:43 +0000 Message-ID: <88a4a603bb3ca68898fdac21e4a3effd92a1d6e3.camel@nvidia.com> References: <20210727034204.20649-1-xuemingl@nvidia.com> <20210930145602.763969-1-xuemingl@nvidia.com> <8494d5f3-f134-e9d7-d782-dca9a9efaa03@oktetlabs.ru> <5584827eb502362297c71432991be7852438e94b.camel@nvidia.com> <2cfa1d1cf5b7fc01d361b04ec4fdf1500c89c50b.camel@nvidia.com> <6a61a2db-6a55-e857-52df-5fe97b5bd60e@oktetlabs.ru> In-Reply-To: <6a61a2db-6a55-e857-52df-5fe97b5bd60e@oktetlabs.ru> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.40.4 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: 9a3829c8-30df-4fa0-e49c-08d98d6ed66c x-ms-traffictypediagnostic: DM4PR12MB5136: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qUXnvNUsr1lU69EqxS2O8oPBs+k7zz/FF3utVYBJFohT7Q2TZp9L6TGwwkXlsAIPYXRF6iEjIxMqizCuMsYX4ZBwUT5/0xArAkHZCADSyqtdvbyIwMZCGpbwfq9CZ3a54QaXJVgma8qswfcDZf+C/KluNKUXw2+YD5vuAumStb7dyRy1k4XtXzj85mkA00IazLYWMjS63okT81xBUh88dcN9IeO+iIDwL9YwJd611uMpUikr4DM35u2aBsWaBwi1sfdfonpqVfKCIusZgxlsjEAIfk3hdg4yHfUO7FGvQSGga0fh0ZOkxS1mvKNlcIiVMdRI5pcho7bhgkKq9/jSH39EQ4rb0btER+W8DJHJQpjb6g8rekXwNLSZulAqt+Lb4sb8CjTT1nwPDFAY3eNSVZv4XfBN8KJ/tpFHI2uEcD8ivfL9bZl0Nk6EOpYHHHwuprbXA+W43uSAv2Lp4jS0p9AhSuiDvFIXSdbNq8zRDg1/MkZSxL12hcmJb349erkxTexKHMcazmtp6edDVwzAkrRq+SY4w370bbwFiEE1ttw6RAzvp2TlnNmKH6k9wkwnKzV3NnIJewnVl1odkBXUL4aIm3cPes28Km9flDjiWTL5qyvsdr+WuII5BJi8LqDQT8/rD9KfdRbwwe5v4OCsgG9xygA8lmCYA3intCSOOlcHs/c0s9EaKNtvwAZM8DviMZVfN0FMpLMlKznscp4mDw== 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)(186003)(8936002)(508600001)(110136005)(5660300002)(30864003)(2616005)(54906003)(66556008)(4001150100001)(66446008)(64756008)(6486002)(36756003)(38100700002)(26005)(122000001)(71200400001)(66476007)(66946007)(6506007)(8676002)(6512007)(316002)(53546011)(2906002)(86362001)(4326008)(83380400001)(91956017)(38070700005)(76116006); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UjVDMDVzUEZhOGJkWnVVbHlNWG1WMGdOOUI4cTArZHlsOEYxR1pOS3daUFEw?= =?utf-8?B?aWlDNzlPN1E0TTkyeUhCSWNGdkl6VVhFTjF2MVFJTUFxVWM4Rk1qTnI5cnpI?= =?utf-8?B?MDd1Y0Vka0NMZzZJQlVPYWJ1VHpOZldlUkpRc3h4d01neGhqcjgycWVza2Zi?= =?utf-8?B?ODFYT0NoR3FnUzBPMFFBcjN0WXgxNkZRWVZZME5QanQrVSsrSitsQThNdjl3?= =?utf-8?B?QWZZK05UM2VudnJqWUdYeS9ZMCtVQmRTcERlMlpvOW4rM2F5UXgwdUhoZmFs?= =?utf-8?B?UStDNGZ2UTBUbDFqMjNoNEdQUGlwMTJ4OGE0MlR1dVd4a05RakE0QVR6b3hl?= =?utf-8?B?NW14NnhUYkwrODVYMDNpeDAyUUo5ckFUOHJLSEZsdUUwNXV1Z3lGY1NXUTIz?= =?utf-8?B?c2daVExPQ2VHeHBWOUNxbFJOenZkUEV4YXdEOVNOTnJkQTI4OWZlNVVFTVM1?= =?utf-8?B?QU5yVmNlcU5PVnRFWFlCcnpQNytudWg5RThLR01NbllUYjNkZ3kwTndHL1JX?= =?utf-8?B?NFByUm1ZbXlQdjdheHprNCtYaE1YdDdqRHZFcFgzZmN0VUJqc05ybWlTTk1S?= =?utf-8?B?U2FmbHMyaUJsZTBWNk5telR2VEVoZ1drRElyanFXUjcyRXh4bDFzT3ViNWV3?= =?utf-8?B?ZWkvaGQrWnY4SU1qcVVSZkoyd1J0M0x3clhnMjJURmxoZVBMczhWUmtkOFNx?= =?utf-8?B?TjI3Y0piNVk0R3lxZjlOMjVIdkNkTGZ0N2Jnc3hQdkcwOXFQMUxpYTAzbit1?= =?utf-8?B?OVdDQ2VyajloK29scXFyMlgrTFZiSTROR0llZWZFdkNCbzk0SkRXaE8rdE8r?= =?utf-8?B?TWNuVXNZNEVGTXJvVjZkSUZUZkcwQkVCUzJ1R2tHQzVjSG5uenNxaCtaVFhk?= =?utf-8?B?STZvbnh1WDdCWGFMa2pwMDBUSzhXV1NVckdYWk5GOTl3czMrVkFOOE1NTUds?= =?utf-8?B?dU9JYVZnQ0N1cnZoVHluYUFqM0FteCtUTFR1VzExM1NhRnZzR0tzQUhDWitw?= =?utf-8?B?Z0YvQWdrcE91R0pwVUFGL0JGaUtBYzUxZ2crSndZbzhpNDlwZS8wWHBJWVQy?= =?utf-8?B?QkRBa3BNcnVUWUFSVnZ5K1ZEY0ZLZTR6OXJacGRCeHVHaE5TZnZhbCthMi9V?= =?utf-8?B?akZkVER0cHRFM3IwcmVjVkZ5YlBBdDF0dWt4Y1lFa01mVExoL1dXNE9PYnlw?= =?utf-8?B?ZmhRcEgxcGhkUm43UWhZV0dCV29tbzhRRFRvTGxNeTFPU3c4QjJYa3hOcjhm?= =?utf-8?B?R05CQ1VCaTdVM1NZQWo0V2ZUTjREejRqQStmbmliQUt5aVRRbHZKV255cmg5?= =?utf-8?B?cktxWTFsL2F0elArUUs1MkZOeGRSWmpRNFhrNzJobFA2aHBKVGFIWXZWMCto?= =?utf-8?B?aEExRXR1MEdRRXoyVUwvdU95QmhQdnI3UGJ4eTl0aGYrMzFYd2xJMTg0WTRE?= =?utf-8?B?SW53clh3Tmt3Ykh3clpLTFdBVVRCekU0ODhoMGlGMGk5ckwxZmRjM2Z3SEdq?= =?utf-8?B?cjFOQ1B2SUJ2OFlsbjQwZEFxdkRudHlTYmF3dndQSll6ek1UM2ExMzJCeit4?= =?utf-8?B?VXhDNVVXd3JyNWp1TGROZmdqWHBoS3IzS05Zdlo3TUtJSElXMGhlVDhhR1NP?= =?utf-8?B?UERESVN2WG8yMVRCTWVkdXJKTEd0bE53NnNCKzlYWXVucmxJTmVoWXdCemg1?= =?utf-8?B?RnNMcm5uWlduTzN0V0dQY1c1OFVPNlhQN2JjMVpTSXJJU25QSStYam1JenBo?= =?utf-8?B?d1lVRFdpRm8yL085VlJFWnVLTitObTBGMnVMODl2enFxOTY3Nk14TUZxdFVQ?= =?utf-8?B?bUhGOHBZK3Z3eVhOQWk2QT09?= 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: 9a3829c8-30df-4fa0-e49c-08d98d6ed66c X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Oct 2021 10:55:43.2278 (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: rKklxn2lId0tHL7GPLaa/pUhc7L1iEk2lvVLiK+sjDL3PeWZs0O2aBvK/5nJgjeWG7vgtIbPqWXuwyQRJhHj8g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5136 Subject: Re: [dpdk-dev] [PATCH v4 0/6] 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" T24gVHVlLCAyMDIxLTEwLTEyIGF0IDExOjQ4ICswMzAwLCBBbmRyZXcgUnliY2hlbmtvIHdyb3Rl Og0KPiBPbiAxMC8xMi8yMSA5OjM3IEFNLCBYdWVtaW5nKFN0ZXZlbikgTGkgd3JvdGU6DQo+ID4g T24gTW9uLCAyMDIxLTEwLTExIGF0IDIzOjExICswODAwLCBYdWVtaW5nIExpIHdyb3RlOg0KPiA+ ID4gT24gTW9uLCAyMDIxLTEwLTExIGF0IDE0OjQ5ICswMzAwLCBBbmRyZXcgUnliY2hlbmtvIHdy b3RlOg0KPiA+ID4gPiBIaSBYdWVtaW5nLA0KPiA+ID4gPiANCj4gPiA+ID4gT24gOS8zMC8yMSA1 OjU1IFBNLCBYdWVtaW5nIExpIHdyb3RlOg0KPiA+ID4gPiA+IEluIGN1cnJlbnQgRFBESyBmcmFt ZXdvcmssIGFsbCBSWCBxdWV1ZXMgaXMgcHJlLWxvYWRlZCB3aXRoIG1idWZzIGZvcg0KPiA+ID4g PiA+IGluY29taW5nIHBhY2tldHMuIFdoZW4gbnVtYmVyIG9mIHJlcHJlc2VudG9ycyBzY2FsZSBv dXQgaW4gYSBzd2l0Y2gNCj4gPiA+ID4gPiBkb21haW4sIHRoZSBtZW1vcnkgY29uc3VtcHRpb24g YmVjYW1lIHNpZ25pZmljYW50LiBGdXJ0aGVyIG1vcmUsDQo+ID4gPiA+ID4gcG9sbGluZyBhbGwg cG9ydHMgbGVhZHMgdG8gaGlnaCBjYWNoZSBtaXNzLCBoaWdoIGxhdGVuY3kgYW5kIGxvdw0KPiA+ ID4gPiA+IHRocm91Z2hwdXRzLg0KPiA+ID4gPiA+ICANCj4gPiA+ID4gPiBUaGlzIHBhdGNoIGlu dHJvZHVjZXMgc2hhcmVkIFJYIHF1ZXVlLiBQRiBhbmQgcmVwcmVzZW50b3JzIHdpdGggc2FtZQ0K PiA+ID4gPiA+IGNvbmZpZ3VyYXRpb24gaW4gc2FtZSBzd2l0Y2ggZG9tYWluIGNvdWxkIHNoYXJl IFJYIHF1ZXVlIHNldCBieQ0KPiA+ID4gPiA+IHNwZWNpZnlpbmcgc2hhcmVkIFJ4IHF1ZXVlIG9m ZmxvYWRpbmcgZmxhZyBhbmQgc2hhcmluZyBncm91cC4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBB bGwgcG9ydHMgdGhhdCBTaGFyZWQgUnggcXVldWUgYWN0dWFsbHkgc2hhcmVzIE9uZSBSeCBxdWV1 ZSBhbmQgb25seQ0KPiA+ID4gPiA+IHByZS1sb2FkIG1idWZzIHRvIG9uZSBSeCBxdWV1ZSwgbWVt b3J5IGlzIHNhdmVkLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IFBvbGxpbmcgYW55IHF1ZXVlIHVz aW5nIHNhbWUgc2hhcmVkIFJYIHF1ZXVlIHJlY2VpdmVzIHBhY2tldHMgZnJvbSBhbGwNCj4gPiA+ ID4gPiBtZW1iZXIgcG9ydHMuIFNvdXJjZSBwb3J0IGlzIGlkZW50aWZpZWQgYnkgbWJ1Zi0+cG9y dC4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBNdWx0aXBsZSBncm91cHMgaXMgc3VwcG9ydGVkIGJ5 IGdyb3VwIElELiBQb3J0IHF1ZXVlIG51bWJlciBpbiBhIHNoYXJlZA0KPiA+ID4gPiA+IGdyb3Vw IHNob3VsZCBiZSBpZGVudGljYWwuIFF1ZXVlIGluZGV4IGlzIDE6MSBtYXBwZWQgaW4gc2hhcmVk IGdyb3VwLg0KPiA+ID4gPiA+IEFuIGV4YW1wbGUgb2YgcG9sbGluZyB0d28gc2hhcmUgZ3JvdXBz Og0KPiA+ID4gPiA+ICAgY29yZQlncm91cAlxdWV1ZQ0KPiA+ID4gPiA+ICAgMAkwCTANCj4gPiA+ ID4gPiAgIDEJMAkxDQo+ID4gPiA+ID4gICAyCTAJMg0KPiA+ID4gPiA+ICAgMwkwCTMNCj4gPiA+ ID4gPiAgIDQJMQkwDQo+ID4gPiA+ID4gICA1CTEJMQ0KPiA+ID4gPiA+ICAgNgkxCTINCj4gPiA+ ID4gPiAgIDcJMQkzDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gU2hhcmVkIFJYIHF1ZXVlIG11c3Qg YmUgcG9sbGVkIG9uIHNpbmdsZSB0aHJlYWQgb3IgY29yZS4gSWYgYm90aCBQRjAgYW5kDQo+ID4g PiA+ID4gcmVwcmVzZW50b3IwIGpvaW5lZCBzYW1lIHNoYXJlIGdyb3VwLCBjYW4ndCBwb2xsIHBm MHJ4cTAgb24gY29yZTEgYW5kDQo+ID4gPiA+ID4gcmVwMHJ4cTAgb24gY29yZTIuIEFjdHVhbGx5 LCBwb2xsaW5nIG9uZSBwb3J0IHdpdGhpbiBzaGFyZSBncm91cCBpcw0KPiA+ID4gPiA+IHN1ZmZp Y2llbnQgc2luY2UgcG9sbGluZyBhbnkgcG9ydCBpbiBncm91cCB3aWxsIHJldHVybiBwYWNrZXRz IGZvciBhbnkNCj4gPiA+ID4gPiBwb3J0IGluIGdyb3VwLg0KPiA+ID4gPiANCj4gPiA+ID4gSSBh cG9sb2dpemUgdGhhdCBJIGp1bXAgaW4gaW50byB0aGUgcmV2aWV3IHByb2Nlc3MgdGhhdCBsYXRl Lg0KPiA+ID4gDQo+ID4gPiBBcHByZWNpYXRlIHRoZSBib2xkIHN1Z2dlc3Rpb24sIG5ldmVyIHRv byBsYXRlIDopDQo+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IEZyYW5rbHkgc3BlYWtpbmcgSSBk b3VidCB0aGF0IGl0IGlzIHRoZSBiZXN0IGRlc2lnbiB0byBzb2x2ZQ0KPiA+ID4gPiB0aGUgcHJv YmxlbS4gWWVzLCBJIGNvbmZpcm0gdGhhdCB0aGUgcHJvYmxlbSBleGlzdHMsIGJ1dCBJDQo+ID4g PiA+IHRoaW5rIHRoZXJlIGlzIGJldHRlciBhbmQgc2ltcGxlciB3YXkgdG8gc29sdmUgaXQuDQo+ ID4gPiA+IA0KPiA+ID4gPiBUaGUgcHJvYmxlbSBvZiB0aGUgc3VnZ2VzdGVkIHNvbHV0aW9uIGlz IHRoYXQgaXQgcHV0cyBhbGwNCj4gPiA+ID4gdGhlIGhlYWRhY2hlIGFib3V0IGNvbnNpc3RlbmN5 IHRvIGFwcGxpY2F0aW9uIGFuZCBQTURzDQo+ID4gPiA+IHdpdGhvdXQgYW55IGhlbHAgZnJvbSBl dGhkZXYgbGF5ZXIgdG8gZ3VhcmFudGVlIHRoZQ0KPiA+ID4gPiBjb25zaXN0ZW5jeS4gQXMgdGhl IHJlc3VsdCBJIGJlbGlldmUgaXQgd2lsbCBiZSBlaXRoZXINCj4gPiA+ID4gbWlzc2luZy9sb3N0 IGNvbnNpc3RlbmN5IGNoZWNrcyBvciBodWdlIGR1cGxpY2F0aW9uIGluDQo+ID4gPiA+IGVhY2gg UE1EIHdoaWNoIHN1cHBvcnRzIHRoZSBmZWF0dXJlLiBTaGFyZWQgUnhRcyBtdXN0IGJlDQo+ID4g PiA+IGVxdWFsbHkgY29uZmlndXJlZCBpbmNsdWRpbmcgbnVtYmVyIG9mIHF1ZXVlcywgb2ZmbG9h ZHMNCj4gPiA+ID4gKHRha2luZyBkZXZpY2UgbGV2ZWwgUnggb2ZmbG9hZHMgaW50byBhY2NvdW50 KSwgUlNTDQo+ID4gPiA+IHNldHRpbmdzIGV0Yy4gU28sIGFwcGxpY2F0aW9ucyBtdXN0IGNhcmUg YWJvdXQgaXQgYW5kDQo+ID4gPiA+IFBNRHMgKG9yIGV0aGRldiBsYXllcikgbXVzdCBjaGVjayBp dC4NCj4gPiA+IA0KPiA+ID4gVGhlIG5hbWUgbWlnaHQgYmUgY29uZnVzaW5nLCBoZXJlIGlzIG15 IHVuZGVyc3RhbmRpbmc6DQo+ID4gPiAxLiBOSUMgIHNoYXJlcyB0aGUgYnVmZmVyIHN1cHBseSBI VyBRIGJldHdlZW4gc2hhcmVkIFJ4UXMgLSBmb3IgbWVtb3J5DQo+ID4gPiAyLiBQTUQgcG9sbHMg b25lIHNoYXJlZCBSeFEgLSBmb3IgbGF0ZW5jeSBhbmQgcGVyZm9ybWFuY2UNCj4gPiA+IDMuIE1v c3QgcGVyIHF1ZXVlIGZlYXR1cmVzIGxpa2Ugb2ZmbG9hZHMgYW5kIFJTUyBub3QgaW1wYWN0ZWQu IFRoYXQncw0KPiA+ID4gd2h5IHRoaXMgbm90IG1lbnRpb25lZC4gU29tZSBvZmZsb2FkaW5nIG1p Z2h0IG5vdCBiZWluZyBzdXBwb3J0ZWQgZHVlDQo+ID4gPiB0byBQTUQgb3IgaHcgbGltaXRhdGlv biwgbmVlZCB0byBhZGQgY2hlY2sgaW4gUE1EIGNhc2UgYnkgY2FzZS4NCj4gPiA+IDQuIE11bHRp cGxlIGdyb3VwIGlzIGRlZmluZWQgZm9yIHNlcnZpY2UgbGV2ZWwgZmxleGliaWxpdHkuIEZvcg0K PiA+ID4gZXhhbXBsZSwgUEYgYW5kIFZJUCBjdXN0b21lcidzIGxvYWQgZGlzdHJpYnV0ZWQgdmlh IHF1ZXVlcyBhbmQgZGVkaWNhdGUNCj4gPiA+IGNvcmVzLiBMb3cgcHJpb3JpdHkgY3VzdG9tZXJz IHNoYXJlIG9uZSBjb3JlIHdpdGggb25lIHNoYXJlZCBxdWV1ZS4NCj4gPiA+IG11bHRpcGxlIGdy b3VwcyBlbmFibGVzIG1vcmUgY29tYmluYXRpb24uDQo+ID4gPiA1LiBPbmUgcG9ydCBjb3VsZCBh c3NpZ24gcXVldWVzIHRvIGRpZmZlcmVudCBncm91cCBmb3IgcG9sbGluZw0KPiA+ID4gZmxleGli aWxpdHkuIEZvciBleGFtcGxlIGZpcnN0IDQgcXVldWVzIGluIGdyb3VwIDAgYW5kIG5leHQgNCBx dWV1ZXMgaW4NCj4gPiA+IGdyb3VwMSwgZWFjaCBncm91cCBoYXZlIG90aGVyIG1lbWJlciBwb3J0 cyB3aXRoIDQgcXVldWVzLCBzbyB0aGUgcG9ydA0KPiA+ID4gd2l0aCA4IHF1ZXVlcyBjb3VsZCBi ZSBwb2xsZWQgd2l0aCA4IGNvcmVzIHcvbyBub24tc2hhcmVkIHJ4cSBwZW5hbHR5LA0KPiA+ID4g aW4gb3RoZXIgd29yZHMsIGVhY2ggY29yZSBvbmx5IHBvbGwgb25lIHNoYXJlZCBSeFEuDQo+ID4g PiANCj4gPiA+ID4gDQo+ID4gPiA+IFRoZSBhZHZhbnRhZ2Ugb2YgdGhlIHNvbHV0aW9uIGlzIHRo YXQgYW55IGRldmljZSBtYXkNCj4gPiA+ID4gY3JlYXRlIGdyb3VwIGFuZCBzdWJzZXF1ZW50IGRl dmljZXMgam9pbi4gQWJzZW5jZSBvZg0KPiA+ID4gPiBwcmltYXJ5IGRldmljZSBpcyBuaWNlLiBC dXQgZG8gd2UgcmVhbGx5IG5lZWQgaXQ/DQo+ID4gPiA+IFdpbGwgdGhlIGRlc2lnbiB3b3JrIGlm IHNvbWUgcmVwcmVzZW50b3JzIGFyZSBjb25maWd1cmVkDQo+ID4gPiA+IHRvIHVzZSBzaGFyZWQg UnhRLCBidXQgc29tZSBkbyBub3Q/IFRoZW9yZXRpY2FsbHkgaXQNCj4gPiA+ID4gaXMgcG9zc2li bGUsIGJ1dCBjb3VsZCByZXF1aXJlIGV4dHJhIG5vbi10cml2aWFsIGNvZGUNCj4gPiA+ID4gb24g ZmFzdCBwYXRoLg0KPiA+ID4gDQo+ID4gPiBJZiBtdWx0aXBsZSBncm91cHMsIGFueSBkZXZpY2Ug Y291bGQgYmUgaG90LXVucGx1Z2dlZC4NCj4gPiA+IA0KPiA+ID4gTWl4ZWQgY29uZmlndXJhdGlv biBpcyBzdXBwb3J0ZWQsIHRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgaG93IHRvIHNldA0KPiA+ID4g bWJ1Zi0+cG9ydC4gU2luY2UgZ3JvdXAgaXMgcGVyIHF1ZXVlLCBtaXhlZCBpcyBiZXR0ZXIgdG8g YmUgc3VwcG9ydGVkLA0KPiA+ID4gZGlkbid0IHNlZSBhbnkgZGlmZmljdWx0eSBoZXJlLg0KPiA+ ID4gDQo+ID4gPiBQRE0gY291bGQgc2VsZWN0IHRvIHN1cHBvcnQgb25seSBncm91cCAwLCBzYW1l IHNldHRpbmdzIGZvciBlYWNoIHJ4cSwNCj4gPiA+IHRoYXQgZml0cyBtb3N0IHNjZW5hcmlvLg0K PiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiBBbHNvIGxvb2tpbmcgYXQgdGhlIGZpcnN0IHR3byBw YXRjaCBJIGRvbid0IHVuZGVyc3RhbmQNCj4gPiA+ID4gaG93IGFwcGxpY2F0aW9uIHdpbGwgZmlu ZCBvdXQgd2hpY2ggZGV2aWNlcyBtYXkgc2hhcmUNCj4gPiA+ID4gUnhRcy4gRS5nLiBpZiB3ZSBo YXZlIHR3byBkaWZmZXJlbmNlIE5JQ3Mgd2hpY2ggc3VwcG9ydA0KPiA+ID4gPiBzaGFyaW5nLCB3 ZSBjYW4gdHJ5IHRvIHNldHVwIG9ubHkgb25lIGdyb3VwIDAsIGJ1dA0KPiA+ID4gPiBmaW5hbGx5 IHdpbGwgaGF2ZSB0d28gZGV2aWNlcyAobm90IG9uZSkgd2hpY2ggbXVzdCBiZQ0KPiA+ID4gPiBw b2xsZWQuDQo+ID4gPiA+IA0KPiA+ID4gPiAxLiBXZSBuZWVkIGV4dHJhIGZsYWcgaW4gZGV2X2lu Zm8tPmRldl9jYXBhDQo+ID4gPiA+ICAgIFJURV9FVEhfREVWX0NBUEFfUlhfU0hBUkUgdG8gYWR2 ZXJ0aXNlIHRoYXQNCj4gPiA+ID4gICAgdGhlIGRldmljZSBzdXBwb3J0cyBSeCBzaGFyaW5nLg0K PiA+ID4gDQo+ID4gPiBkZXZfaW5mby0+cnhfcXVldWVfb2ZmbG9hZF9jYXBhIGNvdWxkIGJlIHVz ZWQgaGVyZSwgbm8/DQo+IA0KPiBJdCBkZXBlbmRzLiBCdXQgd2UgZGVmaW5pdGVseSBuZWVkIGEg ZmxhZyB3aGljaA0KPiBzYXlzIHRoYXQgYmVsb3cgcnhfZG9tYWluIG1ha2VzIHNlbnNlLiBJdCBj b3VsZCBiZQ0KPiBlaXRoZXIgUlRFX0VUSF9ERVZfQ0FQQV9SWF9TSEFSRSBvciBhbiBSeCBvZmZs b2FkDQo+IGNhcGFiaWxpdHkuDQo+IA0KPiBUaGUgcXVlc3Rpb24gaXMgaWYgaXQgaXMgcmVhbGx5 IGFuIG9mZmxvYWQuIFRoZSBvZmZsb2FkIGlzDQo+IHdoZW4gc29tZXRoaW5nIGNvdWxkIGJlIGRv bmUgYnkgSFcvRlcgYW5kIHJlc3VsdCBpcyBwcm92aWRlZA0KPiB0byBTVy4gTWF5IGJlIGl0IGlz IGp1c3QgYSBuaXQgcGlja2luZy4uLg0KPiANCj4gTWF5IGJlIHdlIGRvbid0IG5lZWQgYW4gb2Zm bG9hZCBhdCBhbGwuIEp1c3QgaGF2ZQ0KPiBSVEVfRVRIX0RFVl9DQVBBX1JYUV9TSEFSRSBhbmQg dXNlIG5vbi16ZXJvIGdyb3VwIElEDQo+IGFzIGEgZmxhZyB0aGF0IGFuIFJ4USBzaG91bGQgYmUg c2hhcmVkICh6ZXJvIC0gZGVmYXVsdCwNCj4gbm8gc2hhcmluZykuIGV0aGRldiBsYXllciBtYXkg Y2hlY2sgY29uc2lzdGVuY3kgb24NCj4gaXRzIGxheWVyIHRvIGVuc3VyZSB0aGF0IHRoZSBkZXZp Y2UgY2FwYWJpbGl0eSBpcw0KPiByZXBvcnRlZCBpZiBub24temVybyBncm91cCBpcyBzcGVjaWZp ZWQgb24gcXVldWUgc2V0dXAuDQo+IA0KPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiAyLiBJIHRo aW5rIHdlIG5lZWQgInJ4X2RvbWFpbiIgaW4gZGV2aWNlIGluZm8NCj4gPiA+ID4gICAgKHdoaWNo IHNob3VsZCBiZSB0cmVhdGVkIGluIGJvdW5kYXJpZXMgb2YgdGhlDQo+ID4gPiA+ICAgIHN3aXRj aF9kb21haW4pIGlmIGFuZCBvbmx5IGlmDQo+ID4gPiA+ICAgIFJURV9FVEhfREVWX0NBUEFfUlhf U0hBUkUgaXMgYWR2ZXJ0aXNlZC4NCj4gPiA+ID4gICAgT3RoZXJ3aXNlIHJ4X2RvbWFpbiB2YWx1 ZSBkb2VzIG5vdCBtYWtlIHNlbnNlLg0KPiA+ID4gDQo+ID4gPiBJIHNlZSwgdGhpcyB3aWxsIGdp dmUgZmxleGliaWxpdHkgb2YgZGlmZmVyZW50IGh3LCB3aWxsIGFkZCBpdC4NCj4gPiA+IA0KPiA+ ID4gPiANCj4gPiA+ID4gKDEpIGFuZCAoMikgd2lsbCBhbGxvdyBhcHBsaWNhdGlvbiB0byBmaW5k IG91dCB3aGljaA0KPiA+ID4gPiBkZXZpY2VzIGNhbiBzaGFyZSBSeC4NCj4gPiA+ID4gDQo+ID4g PiA+IDMuIFByaW1hcnkgZGV2aWNlIChyZXByZXNlbnRvcnMgYmFja2luZyBkZXZpY2UpIHNob3Vs ZA0KPiA+ID4gPiAgICBhZHZlcnRpc2Ugc2hhcmVkIFJ4USBvZmZsb2FkLiBFbmFibGluZyBvZiB0 aGUgb2ZmbG9hZA0KPiA+ID4gPiAgICB0ZWxscyB0aGUgZGV2aWNlIHRvIHByb3ZpZGUgcGFja2V0 cyB0byBhbGwgZGV2aWNlIGluDQo+ID4gPiA+ICAgIHRoZSBSeCBkb21haW4gd2l0aCBtYnVmLT5w b3J0IGZpbGxlZCBpbiBhcHByb3ByaWF0ZWx5Lg0KPiA+ID4gPiAgICBBbHNvIGl0IGFsbG93cyBh cHAgdG8gaWRlbnRpZnkgcHJpbWFyeSBkZXZpY2UgaW4gdGhlDQo+ID4gPiA+ICAgIFJ4IGRvbWFp bi4gV2hlbiBhcHBsaWNhdGlvbiBlbmFibGVzIHRoZSBvZmZsb2FkLCBpdA0KPiA+ID4gPiAgICBt dXN0IGVuc3VyZSB0aGF0IGl0IGRvZXMgbm90IHRyZWF0IHVzZWQgcG9ydF9pZCBhcyBhbg0KPiA+ ID4gPiAgICBpbnB1dCBwb3J0X2lkLCBidXQgYWx3YXlzIGNoZWNrIG1idWYtPnBvcnQgZm9yIGVh Y2gNCj4gPiA+ID4gICAgcGFja2V0Lg0KPiA+ID4gPiANCj4gPiA+ID4gNC4gQSBuZXcgUnggbW9k ZSBzaG91bGQgYmUgaW50cm9kdWNlZCBmb3Igc2Vjb25kYXJ5DQo+ID4gPiA+ICAgIGRldmljZXMu IEl0IHNob3VsZCBub3QgYWxsb3cgdG8gY29uZmlndXJlIFJTUywgc3BlY2lmeQ0KPiA+ID4gPiAg ICBhbnkgUnggb2ZmbG9hZHMgZXRjLiBldGhkZXYgbXVzdCBlbnN1cmUgaXQuDQo+ID4gPiA+ICAg IEl0IGlzIGFuIG9wZW4gcXVlc3Rpb24gcmlnaHQgbm93IGlmIGl0IHNob3VsZCByZXF1aXJlDQo+ ID4gPiA+ICAgIHRvIHByb3ZpZGUgcHJpbWFyeSBwb3J0X2lkLiBJbiB0aGVvcnkgcmVwcmVzZW50 b3JzDQo+ID4gPiA+ICAgIGhhdmUgaXQuIEhvd2V2ZXIsIG1heSBiZSBpdCBpcyBuaWNlIGZvciBj b25zaXN0ZW5jeQ0KPiA+ID4gPiAgICB0byBlbnN1cmUgdGhhdCBhcHBsaWNhdGlvbiBrbm93cyB0 aGF0IGl0IGRvZXMuDQo+ID4gPiA+ICAgIElmIHNoYXJlZCBSeCBtb2RlIGlzIHNwZWNpZmllZCBm b3IgZGV2aWNlLCBhcHBsaWNhdGlvbg0KPiA+ID4gPiAgICBkb2VzIG5vdCBuZWVkIHRvIHNldHVw IFJ4UXMgYW5kIGF0dGVtcHRzIHRvIGRvIGl0DQo+ID4gPiA+ICAgIHNob3VsZCBiZSBkaXNjYXJk ZWQgaW4gZXRoZGV2Lg0KPiA+ID4gPiAgICBGb3IgY29uc2lzdGVuY3kgaXQgaXMgYmV0dGVyIHRv IGVuc3VyZSB0aGF0IG51bWJlciBvZg0KPiA+ID4gPiAgICBxdWV1ZXMgbWF0Y2guDQo+ID4gPiAN Cj4gPiA+IFJTUyBhbmQgUnggb2ZmbG9hZHMgc2hvdWxkIGJlIHN1cHBvcnRlZCBhcyBpbmRpdmlk dWFsLCBQTUQgbmVlZHMgdG8NCj4gPiA+IGNoZWNrIGlmIG5vdCBzdXBwb3J0ZWQuDQo+IA0KPiBU aGlua2luZyBhIGJpdCBtb3JlIGFib3V0IGl0IEkgYWdyZWUgdGhhdCBSU1Mgc2V0dGluZ3MgY291 bGQNCj4gYmUgaW5kaXZpZHVhbC4gT2ZmbG9hZCBjb3VsZCBiZSBpbmRpdmlkdWFsIGFzIHdlbGws IGJ1dCBJJ20NCj4gbm90IHN1cmUgYWJvdXQgYWxsIG9mZmxvYWRzLiBFLmcuIFJ4IHNjYXR0ZXIg d2hpY2ggaXMgcmVsYXRlZA0KPiB0byBSeCBidWZmZXIgc2l6ZSAod2hpY2ggaXMgc2hhcmVkIHNp bmNlIFJ4IG1lbXBvb2wgaXMgc2hhcmVkKQ0KPiB2cyBNVFUuIE1heSBiZSBpdCBpcyBhY2NlcHRh YmxlLiBXZSBqdXN0IG11c3QgZGVmaW5lIHJ1bGVzDQo+IHdoYXQgc2hvdWxkIGhhcHBlbiBpZiBv ZmZsb2FkcyBjb250cmFkaWN0IHRvIGVhY2ggb3RoZXIuDQo+IEl0IHNob3VsZCBiZSBoaWdobGln aHRlZCBpbiB0aGUgZGVzY3JpcHRpb24gaW5jbHVkaW5nDQo+IGRyaXZlciBjYWxsYmFjayB0byBl bnN1cmUgdGhhdCBQTUQgbWFpbnRhaW5lcnMgYXJlIHJlc3BvbnNpYmxlDQo+IGZvciBjb25zaXN0 ZW5jeSBjaGVja3MuDQo+IA0KPiA+ID4gDQo+ID4gPiA+ICAgIEl0IGlzIGFuIGludGVyZXN0aW5n IHF1ZXN0aW9uIHdoYXQgc2hvdWxkIGhhcHBlbiBpZg0KPiA+ID4gPiAgICBwcmltYXJ5IGRldmlj ZSBpcyByZWNvbmZpZ3VyZWQgYW5kIHNoYXJlZCBSeCBpcw0KPiA+ID4gPiAgICBkaXNhYmxlZCBv biByZWNvbmZpZ3VyYXRpb24uDQo+ID4gPiANCj4gPiA+IEkgZmVlbCBiZXR0ZXIgbm8gcHJpbWFy eSBwb3J0L3F1ZXVlIGFzc3VtcHRpb24gaW4gY29uZmlndXJhdGlvbiwgYWxsDQo+ID4gPiBtZW1i ZXJzIGFyZSBlcXVhbGx5IHRyZWF0ZWQsIGVhY2ggcXVldWUgY2FuIGpvaW4gb3IgcXVpdCBzaGFy ZSBncm91cCwNCj4gPiA+IHRoYXQncyBpbXBvcnRhbnQgdG8gc3VwcG9ydCBtdWx0aXBsZSBncm91 cHMuDQo+IA0KPiBJIGFncmVlLiBUaGUgcHJvYmxlbSBvZiBtYW55IGZsZXhpYmxlIHNvbHV0aW9u cyBpcw0KPiBjb21wbGV4aXR5IHRvIHN1cHBvcnQuIFdlJ2xsIHNlZSBob3cgaXQgZ29lcy4NCj4g DQo+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IDUuIElmIHNvLCBpbiB0aGVvcnkgaW1wbGVtZW50 YXRpb24gb2YgdGhlIFJ4IGJ1cnN0DQo+ID4gPiA+ICAgIGluIHRoZSBzZWNvbmRhcnkgY291bGQg c2ltcGx5IGNhbGwgUnggYnVyc3Qgb24NCj4gPiA+ID4gICAgcHJpbWFyeSBkZXZpY2UuDQo+ID4g PiA+IA0KPiA+ID4gPiBBbmRyZXcuDQo+ID4gPiANCj4gPiANCj4gPiBIaSBBbmRyZXcsDQo+ID4g DQo+ID4gSSByZWFsaXplZCB0aGF0IHdlIGFyZSB0YWxraW5nIGRpZmZlcmVudCB0aGluZ3MsIHRo aXMgZmVhdHVyZQ0KPiA+IGludHJvZHVjZWQgMiBSeFEgc2hhcmU6DQo+ID4gMS4gU2hhcmUgbWVt cG9vbCB0byBzYXZlIG1lbW9yeQ0KPiA+IDIuIFNoYXJlIHBvbGxpbmcgdG8gc2F2ZSBsYXRlbmN5 DQo+ID4gDQo+ID4gV2hhdCB5b3Ugc3VnZ2VzdGVkIGlzIHJldXNlIGFsbCBSeFEgY29uZmlndXJh dGlvbiBJSVVDLCBtYXliZSB3ZSBzaG91bGQNCj4gPiBicmVhayB0aGUgZmxhZyBpbnRvIDMsIHNv IGFwcGxpY2F0aW9uIGNvdWxkIGxlYXJuIFBNRCBjYXBhYmlsaXR5IGFuZA0KPiA+IGNvbmZpZ3Vy ZSBhY2NvcmRpbmdseSwgaG93IGRvIHlvdSB0aGluaz8NCj4gPiBSVEVfRVRIX1JYX09GRkxPQURf UlhRX1NIQVJFX1BPT0wNCj4gDQo+IE5vdCBzdXJlIHRoYXQgSSB1bmRlcnN0YW5kLiBKdXN0IHNw ZWNpZnkgdGhlIHNhbWUgbWVtcG9vbA0KPiBvbiBSeCBxdWV1ZSBzZXR1cC4gSXNuJ3QgaXQgc3Vm ZmljaWVudD8NCj4gDQo+ID4gUlRFX0VUSF9SWF9PRkZMT0FEX1JYUV9TSEFSRV9QT0xMDQo+IA0K PiBJdCBpbXBsaWVzIHBvb2wgc2hhcmluZyBpZiBJJ20gbm90IG1pc3Rha2VuLiBPZiBjb3Vyc2Us DQo+IHdlIGNhbiBwb29sIG1hbnkgZGlmZmVyZW50IEhXIHF1ZXVlcyBpbiBvbmUgcG9sbCwgYnV0 IGl0DQo+IGhhcmRseSBtYWtlcyBzZW5zZSB0byBjYXJlIHNwZWNpYWxseSBhYm91dCBpdC4NCj4g SU1ITyBSeFEgc2hhcmluZyBpcyBhIHNoYXJpbmcgb2YgdGhlIHVuZGVybHlpbmcgSFcgUnggcXVl dWUuDQo+IA0KPiA+IFJURV9FVEhfUlhfT0ZGTE9BRF9SWFFfU0hBUkVfQ0ZHIC8vaW1wbGllcyBQ T09MIGFuZCBQT0xMDQo+IA0KPiBJdCBpcyBoYXJkbHkgYSBmZWF0dXJlLiBSYXRoZXIgYSBwb3Nz aWJsZSBsaW1pdGF0aW9uLg0KDQpUaGFua3MsIHRoZW4gSSdkIGRyb3AgdGhpcyBzdWdnZXN0aW9u IHRoZW4uDQoNCkhlcmUgaXMgdGhlIFRPRE8gbGlzdCwgbGV0IG1lIGtub3cgaWYgYW55dGhpbmcg bWlzc2luZzoNCjEuIGNoYW5nZSBvZmZsb2FkIGZsYWcgdG8gUlRFX0VUSF9ERVZfQ0FQQV9SWF9T SEFSRQ0KMi4gUnhRIHNoYXJlIGdyb3VwIGNoZWNrIGluIGV0aGRldg0KMy4gYWRkIHJ4X2RvbWFp biBpbnRvIGRldmljZSBpbmZvDQoNCj4gDQo+IEFuZHJldy4NCg0K