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 1218AA04FF; Thu, 31 Mar 2022 15:51:37 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 93D5C428FD; Thu, 31 Mar 2022 15:51:36 +0200 (CEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70079.outbound.protection.outlook.com [40.107.7.79]) by mails.dpdk.org (Postfix) with ESMTP id 59D5D4014F for ; Thu, 31 Mar 2022 15:51:34 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XxbKYoWpWwMCZZdMqiLDlfoDdQp4BOzVNA9R3GL5a+MrUXKGalxRjs9kD2ewWk1VGCIjFQPHJexbrfmjTj+AEJi2iVg1p/8OSRXpbv7dTRzK67Us21o61svt6/NEFuNK1DDJ0mqbryOquVtn+EmRLhF5NQ9budwjlG94og/LylxB9y9hZmn91hQyATH9Oa6RUZw/uVPeHdjPgkXS/XG7BayWehAbAWBnrSRVHSsJ5YlqMwmO2RQQ7RP3N6EMr3dUjpdLuFfFB88EEgKZdnTZt1/okC+3YX46OrPtuXJxwZfnRlohtKNpPbk7Y86kU87rlACvizYOBkKswGbuwGkm/A== 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=xYEmLnbR7wXxA8vY1E19lOoiZTx0OHi03py4xeo4Dv8=; b=MorkSnR68cGeqiBLkJ3j4c3DVhaKmvJ3qcX0hiy93abB3hYRv6AkOXUcCppHtbl1RHKA1ICfwQrjxqGtCXpVHPSRtLgO53/c8A9Ft1BtkAHTbp9hVAPSUD2jKcAN0T49rZjWFEVv/g02A1ivB6a7IVj0MSth5SUoBIP7UwF1JHpRictn1h/QZrgyro/0AT1LZ3kC1yWgvRZHsz9a6ahjfEnkVQ7eEWOfrWa8F+3U6nwfzlDkMu516RzhrmrmbOOXrTSpKeDvPsSVKV6ynpbfJQP0guR2RVzBBES6ht011K05ZhySBdD+Of5ss3Y9tR45QI+k1iT1lRrH6aZX8Vun/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xYEmLnbR7wXxA8vY1E19lOoiZTx0OHi03py4xeo4Dv8=; b=ncNoL/0jP7MLI1oMH190bUrwicJF5e1AZAZeYlUaNmDRZNaPXVqnBGi8t9GFbTbI8Bs5Gd/4ehn8k0pYpP+NEguEBLdlBGYiIEsSSFOLty3lUFs3Gq+n2IeCyKYuyfEpJy6v9Lwmi2nSOxGKFAJCTQ28T5hxL06VTGpUwGQFj5s= Received: from DB7PR07MB5978.eurprd07.prod.outlook.com (2603:10a6:10:80::15) by AM7PR07MB6389.eurprd07.prod.outlook.com (2603:10a6:20b:134::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.21; Thu, 31 Mar 2022 13:51:33 +0000 Received: from DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::8058:d193:21b1:4715]) by DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::8058:d193:21b1:4715%6]) with mapi id 15.20.5123.021; Thu, 31 Mar 2022 13:51:32 +0000 From: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , Ola Liljedahl , "dev@dpdk.org" CC: Thomas Monjalon , David Marchand , Onar Olsen , "Honnappa.Nagarahalli@arm.com" , "nd@arm.com" , "konstantin.ananyev@intel.com" , "stephen@networkplumber.org" Subject: Re: [PATCH v2] eal: add seqlock Thread-Topic: [PATCH v2] eal: add seqlock Thread-Index: AQHYREI+kT+uv97lukSNh7J9kuxXh6zZHjuAgAAWB4CAAAWrAIAASmuA Date: Thu, 31 Mar 2022 13:51:32 +0000 Message-ID: References: <98CBD80474FA8B44BF855DF32C47DC35D86F84@smartserver.smartshare.dk> <20220330142602.108061-1-mattias.ronnblom@ericsson.com> <3888e595-de18-3cf0-707b-309b153c2b02@ericsson.com> <37d60d0f-9911-7692-cdb6-62cd5da540ac@arm.com> <98CBD80474FA8B44BF855DF32C47DC35D86F8D@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35D86F8D@smartserver.smartshare.dk> Accept-Language: en-US, sv-SE Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2e5d949f-d8f0-4600-65ec-08da131d90b0 x-ms-traffictypediagnostic: AM7PR07MB6389:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: usoSj/y0oDuDEu0KoQ0nZIOddROLahepqqgkCXkDh2s70qzgEV4vFLfP4DabNPQQ4T7E88zmiTyQDuSJygtQidLl79UnKp4D6ZK0Xz2+f3De3G/INd0dwakOQ1wTCePlt3PWbY126UCN8GrrOLFQc9JSk/LK560FK/rW6aJIqywApxoR00j32LDp6zmk6j8ojOqznBBJ5j8iJmv2TLdWQm2Q4GJMEaAEHm4LrrmCy+WPINIbppwXDZZmBmz2d1qR9HnmEfqT3cHu/uQHNnKvyc7KKfVPtwWaqXs5Ut6DMKp4/8kVchLvfXonjcKNDT8iazkaTGxhM+tuSbEYulayr0hriAiV3NyWt1jSX60r/gFrrsTFCCKA7iR30lXWMkh/z8AHwTkdvxf14zPaICKu2RIb5AnCj9xJvVps9Um+hHPNuf3njs66ujEszgGZIQ7nVgimuz1/G08YJRBhEPjLn7wJmdtrApFHfhE4juXdkvT0g5AHUPh2mtfrHUHWkcZdrAQo3FARcv11bLZ2voWyFR9eaZa5jmBCgav25rMAq6c7V1GYWjoFYn0djCgUi0ie8xCaiIgZ0svEbIki3eptkYuYnGAGF9BMDsfKepJOj9wcXU5GBMHkh2djoTHuXLnnkuD+LWSnam3m+2NBF6ThG4h9Dk1dGJC6sApd2Wkm3BxPiAcP7MK/VPQXyeh9v82yOOJk4RFNZiDk36808uROAyUVmIGu9hXZGdo5ZbX/Ssh4hn9nzPWf0q8YuzWB1njnyy6i8kKkv3jtmQNu7Ks6Kg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR07MB5978.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(6506007)(71200400001)(66556008)(31686004)(8676002)(186003)(38100700002)(6486002)(66476007)(2616005)(4326008)(66946007)(86362001)(38070700005)(26005)(5660300002)(85182001)(76116006)(316002)(31696002)(91956017)(53546011)(85202003)(66446008)(64756008)(508600001)(83380400001)(82960400001)(110136005)(122000001)(54906003)(6512007)(66574015)(36756003)(2906002)(8936002)(45980500001)(43740500002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dGNwUEhqQkgxWVFIQi91MW11R1NvOGVrQmpaYVludURMcUthSEc5K3lWK1Ev?= =?utf-8?B?QTBaUDZ0c0pkL0JCK1dNdWY2enkyKzgvbUdTcFlKd04vZElHZGxXNGJNRWYy?= =?utf-8?B?L3pTZ2JMbkw3VnlsbUJxNWEvclg3YytzUnprNGF4OWJzdnIzcCtDMVpzZWta?= =?utf-8?B?U1l3NGQ5WXY4SUdBMnBBS0pzMkJ1c0Q4NmdKbDBsYkNab3VoWU1yQnpWb2V3?= =?utf-8?B?RXdzMjVJbWlXUTBJY0tnQTZSR0lKWlkzTnpkRmxBZDZvNTVxQmVJdU5wY1ZW?= =?utf-8?B?b2RzaHA0eWpUaFd4dnEvOWtuUjZ2M3BnU0tDQ2lIWlE4dHRhQjlPOSt6QUtD?= =?utf-8?B?dnJ2bHg5MWk5bU14VXZuU01QUlVYMkpkb2RzVmhPZ3dvbjJPWjk1OHlTTzBC?= =?utf-8?B?QTFQazJzdlBPK3FnT1RieEtGY3VQejJsVDZtTWpQVC9SUUpLdGluOE5WK2dO?= =?utf-8?B?MjFZMk9sbnBuNFZkZytrQUQ3RStBelJWdS9QdndyQ2xRcDZiYitiL0twQmxK?= =?utf-8?B?SDhJekQ5ZklENDZhMUZqWFFGTmRFWWpGZVplejBuZ3JGZTlqRjZmalA0dGs3?= =?utf-8?B?WnI0OXBjaFFTZyt6dmtGL2c3am9Ma01NcStteEZ6cHM4ZGxXc3ZpUjNvaUNN?= =?utf-8?B?ZkkvcDFQZ2lRbVFYeWJhcEVNYWlJc3JxZHVicVFTeGt6YVdwcFo2ZW1WL1l2?= =?utf-8?B?WG1MbmxkN2hJckhhMG1VTEhXbmtsTUpYU1BFaGRjV0tqZGtFZENDMk9Kakty?= =?utf-8?B?TlNEL202UWJNbTZYZGc4Q2IxUEU5d29kT1IrSTFVMXhMZmZtU2tWeHZPRTNG?= =?utf-8?B?MGdxMzhKOWJTbHF3azl5emtNOVJ5RnJ6RFhySlZBdDdoS2pjOVBBN2habEpv?= =?utf-8?B?MTNya1NUbXM5T2NOMzh2V0JrSFFwc0xRT0xtdDU3NlRaVWxnVjd2Z28wVnRZ?= =?utf-8?B?RmVjRFZuRHRucHJNdW5kM2Nwb3MzVktNa2NmMG5TaTQzSENySmJUWFRqNENB?= =?utf-8?B?b08xMzl0YkhkNWNTTXdYVEpFV2orY0ZsdGpJU0JWNmtNQk9Xbmt1ejVTQ0x6?= =?utf-8?B?ckZQNkk1STJqVENYckNsbGVYK0ZGbXVEaHhDbmo4a0hhb2VRVHZ5a1JneUVI?= =?utf-8?B?L2h5Vzh4YTc2emszYVZkdDlrVlUzRkc3cFNTWUdYc3psZGdvY2g1WWtpckg1?= =?utf-8?B?MFYrUmVmUHhYemlYRHBYRk1mOXZ1ZUJZeWEvTlN2QWxrNFZZOG4rbW5nTjIx?= =?utf-8?B?UThBenhkV24yTHFWUGJYOVZsRGhJZ0ExVVAwNDZjcjNhdml4aS9zNWdyRXkz?= =?utf-8?B?ZXpNdjFBWGsyRXdoV1RoQWN6MXNlekpMVjljUWV1WGkxTjF2aWlpeHI0c2JG?= =?utf-8?B?b2NOcDB6bVlxa2RFcU9WQjk0RlpXYmVsYlVEVUJHTFRqcEQyamJRc00vejUr?= =?utf-8?B?YitBK0tmUG9yWXZYWXBQTUpXazhZTzgvSGNwV0pwSWYxN0o5YlhqaVlmT244?= =?utf-8?B?QlI5VGdoT2FBRXlPMUVOTjRURTByeDJtZ1RrRDF5QnVua0hZempPUWU5eWZ4?= =?utf-8?B?OEtrL3FvWjhDVWxqMkl2WVZSbTl3RGxKSXJmREJuaGI5eWJtdVlaWU5McFVH?= =?utf-8?B?aTI0M05KWmhlQnRXWUZjY3RZWEYzM2lubWtyd1ZpZHVyTm91NGJYSzRWeGZC?= =?utf-8?B?STRKZ0NXZFRnTUhDSjhVdkpCY1NheDJyS1hsbzdaN2hlL3lxdVRIVjlDYlQ2?= =?utf-8?B?Q0NHdGNFQzBORjBjeGU0clJ1emdVOXhpV1lnN3Zpc2t3MFdTQVp4VXlQZ05M?= =?utf-8?B?amdsNHFENkkwVXFHWXkyYU8zTi9oZ3p4bWJNQjJoWSs2MHYrdWdsWDM2YTFz?= =?utf-8?B?VzM4TGt3eldQVmg1NDNOb0N6ejFvVzN0eGFiM09jMGNCYUcvVXE1Q01Pc2VM?= =?utf-8?B?dExOMzlnQkU1U0J1WjdIVGgxaXhmVjFiaU44UE1ucGJCZ1AxMkw5ZVlHWmNx?= =?utf-8?B?VERHS3Rybk9qb3NEdWdJcFVwT09xQlRocXI0YlVQdi9qMjdHS2xXSFkvL0Vq?= =?utf-8?B?ZjRXOW1NYjdaMVk4UVk5Q1o2N0ZyeGovNmVvcENXVTRIK1ZyVGZXdFBucDVD?= =?utf-8?B?enBGMVpGYmRlU0xxRXA4KzJ3WDk0RTFLRVdjMGlBWW0wTjg2Zmd4aFRXaXNO?= =?utf-8?B?RENDZENWR0hFL01mR3piMnRIQ3k3VUsvTWpUdHY5VWVneUFLSStwNnZiZDJP?= =?utf-8?B?VUVoRm9wcGtvUGJvTXdrc1JjaUpTNFhHZ0tjK09aYzAzZHBOUzdicWJqcXdl?= =?utf-8?B?TGcyU1FXSGMxbWhxY3ZZbW9HNmxaVnllOSt0SjBBZzYxN3J3YkJSU3BIaDFU?= =?utf-8?Q?/WVUeZpSOhcl/fV4=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <26DA8BCA967BDB43BA797AA086BB5DA9@eurprd07.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB7PR07MB5978.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e5d949f-d8f0-4600-65ec-08da131d90b0 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2022 13:51:32.6461 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: dE1O4pOu2d4qpkQqnS6qZvWUELRMhdkt0DPFc1aaZ8yShM/8DZlTEzACcOQt24LCkBB0jpPcKMit2GPVIIPtbS9XyaPmYhOW56FtF+ALo5I= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR07MB6389 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 T24gMjAyMi0wMy0zMSAxMToyNSwgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+PiBGcm9tOiBPbGEg TGlsamVkYWhsIFttYWlsdG86b2xhLmxpbGplZGFobEBhcm0uY29tXQ0KPj4gU2VudDogVGh1cnNk YXksIDMxIE1hcmNoIDIwMjIgMTEuMDUNCj4+DQo+PiBPbiAzLzMxLzIyIDA5OjQ2LCBNYXR0aWFz IFLDtm5uYmxvbSB3cm90ZToNCj4+PiBPbiAyMDIyLTAzLTMwIDE2OjI2LCBNYXR0aWFzIFLDtm5u YmxvbSB3cm90ZToNCj4+Pj4gQSBzZXF1ZW5jZSBsb2NrIChzZXFsb2NrKSBpcyBzeW5jaHJvbml6 YXRpb24gcHJpbWl0aXZlIHdoaWNoIGFsbG93cw0KPj4+PiBmb3IgZGF0YS1yYWNlIGZyZWUsIGxv dy1vdmVyaGVhZCwgaGlnaC1mcmVxdWVuY3kgcmVhZHMsIGVzcGVjaWFsbHkNCj4+IGZvcg0KPj4+ PiBkYXRhIHN0cnVjdHVyZXMgc2hhcmVkIGFjcm9zcyBtYW55IGNvcmVzIGFuZCB3aGljaCBhcmUg dXBkYXRlZCB3aXRoDQo+Pj4+IHJlbGF0aXZlbHkgaW5mcmVxdWVudGx5Lg0KPj4+Pg0KPj4+Pg0K Pj4+DQo+Pj4gPHNuaXA+DQo+Pj4NCj4+PiBTb21lIHF1ZXN0aW9ucyBJIGhhdmU6DQo+Pj4NCj4+ PiBJcyBhIHZhcmlhbnQgb2YgdGhlIHNlcWxvY2sgd2l0aG91dCB0aGUgc3BpbmxvY2sgcmVxdWly ZWQ/IFRoZSByZWFzb24NCj4+IEkNCj4+PiBsZWZ0IHN1Y2ggb3V0IHdhcyB0aGF0IEkgdGhvdWdo dCB0aGF0IGluIG1vc3QgY2FzZXMgd2hlcmUgb25seSBhDQo+PiBzaW5nbGUNCj4+PiB3cml0ZXIg aXMgdXNlZCAob3Igc2VyaWFsaXphdGlvbiBpcyBleHRlcm5hbCB0byB0aGUgc2VxbG9jayksIHRo ZQ0KPj4+IHNwaW5sb2NrIG92ZXJoZWFkIGlzIG5lZ2xpZ2libGUsIHNpbmNlIHVwZGF0ZXMgYXJl IHJlbGF0aXZlbHkNCj4+IGluZnJlcXVlbnQuDQo+IA0KPiBNYXR0aWFzLCB3aGVuIHlvdSBzdWdn ZXN0ZWQgYWRkaW5nIHRoZSBzZXFsb2NrLCBJIGNvbnNpZGVyZWQgdGhpcyB0b28sIGFuZCBjYW1l IHRvIHRoZSBzYW1lIGNvbmNsdXNpb24gYXMgeW91Lg0KPiANCj4+IFlvdSBjYW4gY29tYmluZSB0 aGUgc3BpbmxvY2sgYW5kIHRoZSBzZXF1ZW5jZSBudW1iZXIuIE9kZCBzZXF1ZW5jZQ0KPj4gbnVt YmVyIG1lYW5zIHRoZSBzZXFsb2NrIGlzIGJ1c3kuIFRoYXQgd291bGQgcmVwbGFjZSBhIG5vbi1h dG9taWMgUk1XDQo+PiBvZg0KPj4gdGhlIHNlcXVlbmNlIG51bWJlciB3aXRoIGFuIGF0b21pYyBS TVcgQ0FTIGFuZCBhdm9pZCB0aGUgc3BpbiBsb2NrDQo+PiBhdG9taWMgUk1XIG9wZXJhdGlvbi4g Tm90IHN1cmUgaG93IG11Y2ggaXQgaGVscHMuDQo+Pg0KPj4+DQo+Pj4gU2hvdWxkIHRoZSBydGVf c2VxbG9ja19yZWFkX3JldHJ5KCkgYmUgY2FsbGVkIHJ0ZV9zZXFsb2NrX3JlYWRfZW5kKCksDQo+ PiBvcg0KPj4+IHNvbWUgdGhpcmQgYWx0ZXJuYXRpdmU/IEkgd2FudGVkIHRvIG1ha2UgY2xlYXIg aXQncyBub3QganVzdCBhDQo+PiAicmVsZWFzZQ0KPj4+IHRoZSBsb2NrIiBmdW5jdGlvbi4gWW91 IGNvdWxkIHVzZQ0KPj4+IHRoZXx8fF9fYXR0cmlidXRlX18oKHdhcm5fdW51c2VkX3Jlc3VsdCkp IGFubm90YXRpb24gdG8gbWFrZSBjbGVhcg0KPj4gdGhlDQo+Pj4gcmV0dXJuIHZhbHVlIGNhbm5v dCBiZSBpZ25vcmVkLCBhbHRob3VnaCBJJ20gbm90IHN1cmUgRFBESyBldmVyIHVzZQ0KPj4gdGhh dA0KPj4+IGF0dHJpYnV0ZS4NCj4gDQo+IEkgc3Ryb25nbHkgc3VwcG9ydCBhZGRpbmcgX19hdHRy aWJ1dGVfXygod2Fybl91bnVzZWRfcmVzdWx0KSkgdG8gdGhlIGZ1bmN0aW9uLiBUaGVyZSdzIGEg Zmlyc3QgdGltZSBmb3IgZXZlcnl0aGluZywgYW5kIHRoaXMgYXR0cmlidXRlIGlzIHZlcnkgcmVs ZXZhbnQgaGVyZSENCj4gDQoNClRoYXQgd291bGQgYmUgYSBzZXBhcmF0ZSBwYXRjaCwgSSBhc3N1 bWUuIERvZXMgYW55b25lIGtub3cgaWYgdGhpcyANCmF0dHJpYnV0ZSBpcyBhdmFpbGFibGUgaW4g YWxsIHN1cHBvcnRlZCBjb21waWxlcnM/DQoNCj4+IFdlIGhhdmUgdG8gZGVjaWRlIGhvdyB0byB1 c2UgdGhlIHNlcWxvY2sgQVBJIGZyb20gdGhlIGFwcGxpY2F0aW9uDQo+PiBwZXJzcGVjdGl2ZS4N Cj4+IFlvdXIgY3VycmVudCBwcm9wb3NhbDoNCj4+IGRvIHsNCj4+ICAgICAgIHNuID0gcnRlX3Nl cWxvY2tfcmVhZF9iZWdpbigmc2VxbG9jaykNCj4+ICAgICAgIC8vcmVhZCBwcm90ZWN0ZWQgZGF0 YQ0KPj4gfSB3aGlsZSAocnRlX3NlcWxvY2tfcmVhZF9yZXRyeSgmc2VxbG9jaywgc24pKTsNCj4+ DQo+PiBvciBwZXJoYXBzDQo+PiBzbiA9IHJ0ZV9zZXFsb2NrX3JlYWRfbG9jaygmc2VxbG9jayk7 DQo+PiBkbyB7DQo+PiAgICAgICAvL3JlYWQgcHJvdGVjdGVkIGRhdGENCj4+IH0gd2hpbGUgKCFy dGVfc2VxbG9ja19yZWFkX3RyeXVubG9jaygmc2VxbG9jaywgJnNuKSk7DQo+Pg0KPj4gVHJ5dW5s b2NrIHNob3VsZCBzaWduYWwgdG8gdGhlIHVzZXIgdGhhdCB0aGUgdW5sb2NrIG9wZXJhdGlvbiBt aWdodCBub3QNCj4+IHN1Y2NlZWQgYW5kIHNvbWV0aGluZyBuZWVkcyB0byBiZSByZXBlYXRlZC4N Cj4gDQo+IFBlcmhhcHMgcmVuYW1lIHJ0ZV9zZXFsb2NrX3JlYWRfcmV0cnkoKSB0byBydGVfc2Vx bG9ja19yZWFkX3RyeWVuZCgpPyBBcyBPbGEgbWVudGlvbnMsIHRoaXMgYWxzbyBpbnZlcnNlcyB0 aGUgYm9vbGVhbiByZXN1bHQgdmFsdWUuIElmIHlvdSBjb25zaWRlciB0aGlzLCBwbGVhc2UgY2hl Y2sgdGhhdCB0aGUgcmVzdWx0aW5nIGFzc2VtYmx5IG91dHB1dCByZW1haW5zIGVmZmljaWVudC4N Cj4gDQo+IEkgdGhpbmsgbG9jaygpL3VubG9jaygpIHNob3VsZCBiZSBhdm9pZGVkIGluIHRoZSBy ZWFkIG9wZXJhdGlvbiBuYW1lcywgYmVjYXVzZSBubyBsb2NrIGlzIHRha2VuIGR1cmluZyByZWFk LiBJIGxpa2UgdGhlIGNyaXRpY2FsIHJlZ2lvbiBiZWdpbigpL2VuZCgpIG5hbWVzLg0KPiANCj4g UmVnYXJkaW5nIG5hbWluZywgeW91IHNob3VsZCBhbHNvIGNvbnNpZGVyIHJlbmFtaW5nIHJ0ZV9z ZXFsb2NrX3dyaXRlX2JlZ2luL2VuZCgpIHRvIHJ0ZV9zZXFsb2NrX3dyaXRlX2xvY2svdW5sb2Nr KCksIGZvbGxvd2luZyB0aGUgbmFtaW5nIGNvbnZlbnRpb24gb2YgdGhlIG90aGVyIGxvY2tzLiBU aGlzIGNvdWxkIHByZXBhcmUgZm9yIGZ1dHVyZSBleHRlbnNpb25zLCBzdWNoIGFzIHJ0ZV9zZXFs b2NrX3dyaXRlX3RyeWxvY2soKS4gSnVzdCBhIHRob3VnaHQ7IEkgZG9uJ3QgZmVlbCBzdHJvbmds eSBhYm91dCB0aGlzLg0KPiANCj4gT2xhLCB0aGUgcnRlX3NlcWxvY2tfcmVhZF9sb2NrKCZzZXFs b2NrKSBtdXN0IHJlbWFpbiBpbnNpZGUgdGhlIGxvb3AsIGJlY2F1c2UgcmV0cmllcyBjYW4gYmUg dHJpZ2dlcmVkIGJ5IGEgd3JpdGUgb3BlcmF0aW9uIGhhcHBlbmluZyBiZXR3ZWVuIHRoZSByZWFk X2JlZ2luKCkgYW5kIHJlYWRfdHJ5ZW5kKCksIGFuZCB0aGVuIHRoZSBuZXcgc24gbXVzdCBiZSB1 c2VkIGJ5IHRoZSByZWFkIG9wZXJhdGlvbi4NCj4gDQo=