From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 3105AA0501;
	Mon, 28 Mar 2022 12:54:19 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id E3583427EA;
	Mon, 28 Mar 2022 12:54:18 +0200 (CEST)
Received: from mga04.intel.com (mga04.intel.com [192.55.52.120])
 by mails.dpdk.org (Postfix) with ESMTP id 3FF7741104
 for <dev@dpdk.org>; Mon, 28 Mar 2022 12:54:14 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1648464856; x=1680000856;
 h=from:to:cc:subject:date:message-id:references:
 in-reply-to:content-transfer-encoding:mime-version;
 bh=SBFuxsu5ISoZLN46J/OnucMHB7bkqEpogB33SIhphEo=;
 b=dBJJv8Nsns+OgmrcIAfOwMitha7sveNGld+fYN6GczqVJhhmlWSzKjRj
 hTEZKQnNL4PXHWSVub5Uo9u8XPRXjCXxKwWoC5VOR67USWXoz9ChNagk5
 GaUnfPcmKvvIaD8gcOdT8Vn/snjMi1lQgRMcs7jTfJRqYKkY9+0jcYvr8
 iJZgqCM7WLnUk6VEvVfY9NNNzFBiGQCcAuNv1BPX4zGXwMIQ7IsR2ncAK
 Lc7QZR9i5n0wEET04Loaxi7CtRydwtJM72jnw3kJGXUU+y6UsH0JsaW70
 L09Ile3Q6DXF8ol2eN6IBm1ybSoY6XycbPB0BEqJZeDZkk76rx38Ahc/a g==;
X-IronPort-AV: E=McAfee;i="6200,9189,10299"; a="257798564"
X-IronPort-AV: E=Sophos;i="5.90,217,1643702400"; d="scan'208";a="257798564"
Received: from orsmga002.jf.intel.com ([10.7.209.21])
 by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 28 Mar 2022 03:54:13 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.90,217,1643702400"; d="scan'208";a="518008568"
Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19])
 by orsmga002.jf.intel.com with ESMTP; 28 Mar 2022 03:54:13 -0700
Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by
 ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2308.27; Mon, 28 Mar 2022 03:54:13 -0700
Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by
 ORSMSX609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2308.27; Mon, 28 Mar 2022 03:54:12 -0700
Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by
 orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2308.27 via Frontend Transport; Mon, 28 Mar 2022 03:54:12 -0700
Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.170)
 by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2308.21; Mon, 28 Mar 2022 03:54:12 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=epB+GlQXVpI1Qj8tfygsIA8842EzHapc+EWT0FzACvaxdfw43pfT+nvrcu0gFo6tkEDE8Mp7D2R4nGsxRuR+yFCi7OQA4d8BwLku3tjndHdd69Fb6qk0pXM7XxzsJsZgR7O+raoJA0vpRfsS+JhROex7PiCP7VOG1VkEH8/bJt8pV3w3czPEqGwMxdnrAcpWAm6i7F4Hgl/zU3bqZs/Pq9CCFzS0ESoApUlZbmeirmLfwcjydhH42ofu0gpKpyFglOJU5vHjOGmxWwd1xcnTC3OIUp+BTsORufV/Ko4qn2A3IG2v3AVZv/2aRSlN4XXWSRroucrM6w7v0Fv/wUdpjw==
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=SBFuxsu5ISoZLN46J/OnucMHB7bkqEpogB33SIhphEo=;
 b=ECpvitNonIGGmXQ8hyCX+4VSkwBtr9CIOKqZvt3IbG+K9Pd6t6ktaSNLiBCg+KjQ7Yruy06oKHTliknyxNH30XXwlsJc4Yp2OYWo8WwyhjKYmBdVA4ePGxbgitAQ/Y3mwek+nzVkxXl26n7ae/orNbO7vd52mM7dQmYgVObSrJpX0x0yvPgvTNH+4xOfws6Zn49W9dep0qBtr7pW9E6Oz5NkprRhTXD1vVvagHakjr8CF3SxikgYMQaZ80dEU7GdDPUZnoy1/+foc1e1fG9FulRHGkmN9F/x6t3e0d8clrRIp/rSBvLjQZL4juXgpDCFy3rY8SKz+7POgvSIFXxE3Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19)
 by BN6PR11MB1380.namprd11.prod.outlook.com (2603:10b6:404:3c::18) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Mon, 28 Mar
 2022 10:53:34 +0000
Received: from DM6PR11MB4491.namprd11.prod.outlook.com
 ([fe80::ad2b:63fd:4cdd:130d]) by DM6PR11MB4491.namprd11.prod.outlook.com
 ([fe80::ad2b:63fd:4cdd:130d%4]) with mapi id 15.20.5102.023; Mon, 28 Mar 2022
 10:53:34 +0000
From: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>
To: mattias.ronnblom <mattias.ronnblom@ericsson.com>, "dev@dpdk.org"
 <dev@dpdk.org>
CC: Thomas Monjalon <thomas@monjalon.net>, David Marchand
 <david.marchand@redhat.com>, "Olsen, Onar" <onar.olsen@ericsson.com>,
 "Honnappa.Nagarahalli@arm.com" <Honnappa.Nagarahalli@arm.com>, "nd@arm.com"
 <nd@arm.com>, "mb@smartsharesystems.com" <mb@smartsharesystems.com>,
 "stephen@networkplumber.org" <stephen@networkplumber.org>, Ola Liljedahl
 <ola.liljedahl@arm.com>
Subject: RE: [RFC] eal: add seqlock
Thread-Topic: [RFC] eal: add seqlock
Thread-Index: AQHYQIaKHXaPgtdbSEGn3Z4qILHbfKzTTrBwgAA0UACAAQHTIA==
Date: Mon, 28 Mar 2022 10:53:34 +0000
Message-ID: <DM6PR11MB4491FDC957C312689FD633169A1D9@DM6PR11MB4491.namprd11.prod.outlook.com>
References: <ef0fe83b-0af0-3210-4c40-e26c5b7d416b@ericsson.com>
 <20220325202428.94628-1-mattias.ronnblom@ericsson.com>
 <DM6PR11MB44916E6635D263B2B3A6D8B29A1C9@DM6PR11MB4491.namprd11.prod.outlook.com>
 <77168168-eadb-9a0b-b51e-9ccdf8ad7230@ericsson.com>
In-Reply-To: <77168168-eadb-9a0b-b51e-9ccdf8ad7230@ericsson.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
dlp-product: dlpe-windows
dlp-reaction: no-action
dlp-version: 11.6.401.20
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: b17208cc-f270-4e49-a0e0-08da10a93493
x-ms-traffictypediagnostic: BN6PR11MB1380:EE_
x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
x-microsoft-antispam-prvs: <BN6PR11MB13809FC60677577D1C33BE2E9A1D9@BN6PR11MB1380.namprd11.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 8Xr/m0PqbI4XRZ3+cG8dppik9Mnh1NchguB+XL0Z3cDE4IAdYYcirnd4/sO8HysSvWY4sF2PP/yXlUEUo4FRhOvA8saKsxJpZG+uW6Yy0lEUQ4E+H4eJC3RYDL1bGtu100+bYxt7ghu6LfOGE2JpQvvEHDod1aruv5EF5ozXLkxZ5y4CIMlliYKC+an8CAAhdoMzSDQ3huUicTw+xyuskkerAwW/ocfFd+Gj/LT4pMioRcUm4caQ1RqC0lD1lYFy78TVg1kQz242pESybiObTa2vpW/XV81p3nvEPNPrdxR5uL4EdErNxq/dxEVPfLb5FuFhmR4WHogr4EMxlh74ucFuixrIo88dXYRj9ed9locSQ1jXQdsttiMmpl71Yhfj1g7+VKc89G6TqpTIV0cOjMoMfyKO6n2lQ563GBhiqOlZR523t51NAXtLjX1bvG+Bnc9u9N3hVRCpZikAmHGUInpYO0k9VWAO8RyZ1MItAhl7iOf3ed9L/HBKUkReAi35owYFfj5EbvGfB8DjSuOWSEOmFm4c7KSqU2pZlLztGOL5UEjrakJdL0ooePgYmp/i3F1nodM1xykeY9njgxxulTMyfrIGHmEDhAkcsaXIrvbDHDgslX56sOEdbdgh0MWX6QTfsYsCRBJTATS8v5FmDQBqogZvR0D6aO1lsoE78N2N9h26hjHd1R8NTT5PJf9YGGeUeD6PzRFG03blgaKDNA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230001)(366004)(110136005)(82960400001)(71200400001)(7696005)(2906002)(6506007)(83380400001)(33656002)(38100700002)(9686003)(38070700005)(316002)(186003)(26005)(55016003)(52536014)(122000001)(66476007)(5660300002)(508600001)(64756008)(8676002)(76116006)(66446008)(66946007)(66556008)(8936002)(54906003)(7416002)(86362001)(4326008);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eXcyVHJoQlAycFhrUnpDOGd0K0Y0aUJ5VDYyNkZpcVZoWmdreUVIZHVPK2k0?=
 =?utf-8?B?RWNaenV3WEowZW9MYmkyNWlEdnZlZkxlcVpHTG13MndTTS9oQ3BhVWV3MXBa?=
 =?utf-8?B?SStOWHNWZ2g0ME5qNEVueVRpekhBU05qYUp6YzYxcHY1U3dsTUxCVnc3aVhq?=
 =?utf-8?B?L0NJVHZkYS9qMG9uUFJweEw1QVFzZDdEVzI0eEkrS0NCbExrdTViZUhYZE1y?=
 =?utf-8?B?QlMwekxSUHE5V1ViNDVOVkJ2TXptdkl2RkNZa2JNL0FiTWVNVGVva3dzMTB3?=
 =?utf-8?B?ZFcxSUFVb0I0UDdSSExpTjFac2E1Skwyb0hiVWpCaXAzcUphZFpiVms1dUZ5?=
 =?utf-8?B?MFRUVGs5NlVNUHhDakR3R0xGNVBsSkQ0ZFE0NUczQjd5VStWQmRtQ2lJUkxY?=
 =?utf-8?B?THU4Z2VES29tK2VZOEMwWTVsWWI3a2dmSVF3QmRBV3A5M0RYcTVVY3RCeG5O?=
 =?utf-8?B?ZEsrSWwyRUJVOFNRblcyMlZZbnkzbXlmUUZUVkUycUQzb1p4c0JlSXVxR0xL?=
 =?utf-8?B?UHk0T0dFOEhJVmpINUllSGtTTEE4V1lrQjVBdDlPU0xIRS9vM2huai9HZ2hG?=
 =?utf-8?B?TVQwbEc2WnNzKzUxbmVaUm1qTklQMFR4OXRSejZiWFhVT2YxelVVbzNrdXBY?=
 =?utf-8?B?OWx2b211aHRwZndrUnpvYTEwL3RHTkVTWWFSOUcrU3VRMzczeHlJVlpBSmZo?=
 =?utf-8?B?VDBjUkZmTUx2dytWRXBQdnY4Qzk3eUVUWHA2RzEvbHlwbG9wN2ErZ2Q0U3Fp?=
 =?utf-8?B?dTBQa0U4bUUzYUdGL0VDOE4rZGdUdk9QOWNCR2NubHk0STVNcGhDamo5b1Zm?=
 =?utf-8?B?dkF6ZzZaTmdPc2FGR2FncnRxK1QxdzRueDVSRE1BY1YySzhxUWlBcm9iZDJH?=
 =?utf-8?B?T283TjBtaGY5SXhFaWhBdW01Unc5Q0JVZWlrdTNGeFJmdTIyZWR3aFJFQ25U?=
 =?utf-8?B?c09nR3BWYk9LSWZPZU9KeXVPQmxJV1FjSGRsME9XSG9HTVQxQnVUYlU0Vks1?=
 =?utf-8?B?N1dLQTNUTjBmUWhma2trYUc2TTY4ZGU0N3RuRlEwVVZvVzF1RnQxMGpiaVdS?=
 =?utf-8?B?WGN5U2lFWGVjYUNqRytsRkNRZEt3REpjNkxjWHNtV1o4dUpVaHREL2lTaERp?=
 =?utf-8?B?V09Rc2M4eWhxbDNxMWdiano1OHpsVzZSc25iR3ZGZTh5VTdsOWNWYnc4UEtv?=
 =?utf-8?B?bk1VcmdmaDVTVk4vaGgvV01IMWx4TnBQRjMyZDg3YnN3QndSMkZwdENtZVlr?=
 =?utf-8?B?RVd0L1NZcFRPNk4yK0wvd1E3MHEwVGxibGoxc3B3RmpWZnBIZ0ZsS1hQenYz?=
 =?utf-8?B?cFdjNWc1YndPWFU4OGFTRVIyN1lXMlBqWnRidGpYdHIvdFNkdzQ4ZUxGdkpw?=
 =?utf-8?B?dHRIcUtiQlhNZ1cvOWlmbTREYWk1U1c5U29RWGdPQXdubEdkZVhCVS9ZUWNU?=
 =?utf-8?B?UG40Nm9XS2dSa1RySWJMclRXL0E2bU90MnZOWlNzamlQYkFnTVhKRXNOd3Vp?=
 =?utf-8?B?NlZyTUxpNFMzRnZ6RndBbUhVdFd0bER3K20ydXoyREhROEZHOG9weE1oeTlO?=
 =?utf-8?B?aTFZbTFPRFU3Rm0vbGh4WU1RMjE5L29UVGdROXlZdDBuWXdCY3kyZmFxVEZ3?=
 =?utf-8?B?SXV2ZlBiQ2czSEdiR1NsRVdFU2N1SURBUEU1OGcyOWQ0cDZVQ3F5SXBCeDhY?=
 =?utf-8?B?eTlteHptb2tMQkZaQWhJN1VCNDJpYVZFZThya0IyRENNSjlQWE02SW5hT3ow?=
 =?utf-8?B?MnltOWR4elRDc2FOQjZYc3hkdzI2N1I3TEZNK2ZjRHRUNVR0ejVGdXBaNHVQ?=
 =?utf-8?B?SnRlRjZJRnRiQ3NIMTcrL0x4WFEwRWlOU0VVZ2VGSSt0RzhKdG15NjJXQi8w?=
 =?utf-8?B?TkE2c0ZrMkZXRy9jNks2MkVKN1NiTVVPVW5welB4QUxTWlUzcEMrRHdwTkhJ?=
 =?utf-8?B?bGJhNWZ4dG9peCtMYW1xWUp5M2tBK1h6TFkyc3BBQndINWZTNXU4bHhGYWpW?=
 =?utf-8?B?NncvQlN1WUdJaC9kb0hwam5ueTVjRmZvTnZFWGRVZ1RzOVkySWVZbDlobGNH?=
 =?utf-8?B?cWhrdUlOb0tMZ3FTdXl3ak1rdmprSkpIeG1rOXpkUnZwc3RGQ0owNy9VQm04?=
 =?utf-8?B?eGlkZ1UrbFg2SlpjQjRoSEl3RHVqTGZ3dWJYWWM5ZVRqa0cwdW15OGV5TzJE?=
 =?utf-8?B?WlNONDlCd0I1NGFnbXU3YmViYVpadUVEam41UzF2QWx5NVEzdFREM2lHenQ0?=
 =?utf-8?B?YzlKTk00Z2IzczRXQ2p1VUZ3L2xKRTdOaDNaV0dScldjeVhPdEw2WVRiMVpk?=
 =?utf-8?B?aXNFYWZyMWZGbGgyWjU5RGRUVG5pL3pMN080OVoxdExzSEU0SzdnQW9teFpK?=
 =?utf-8?Q?n/y/WCgULUlNu9Eo=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b17208cc-f270-4e49-a0e0-08da10a93493
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Mar 2022 10:53:34.3172 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: v+YfT6rdnV3r6QcTYRw4YdL9VjZArBHxn/jGPvTbtj0uFYgYiRHwnW+AgOPXiBmrFyfYSrcfbZP/2+SKejlebgivODxOi7ui4288DDVR2jA=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1380
X-OriginatorOrg: intel.com
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

DQo+ID4+IGRpZmYgLS1naXQgYS9saWIvZWFsL2luY2x1ZGUvbWVzb24uYnVpbGQgYi9saWIvZWFs
L2luY2x1ZGUvbWVzb24uYnVpbGQNCj4gPj4gaW5kZXggOTcwMDQ5NDgxNi4uNDhkZjVmMWEyMSAx
MDA2NDQNCj4gPj4gLS0tIGEvbGliL2VhbC9pbmNsdWRlL21lc29uLmJ1aWxkDQo+ID4+ICsrKyBi
L2xpYi9lYWwvaW5jbHVkZS9tZXNvbi5idWlsZA0KPiA+PiBAQCAtMzYsNiArMzYsNyBAQCBoZWFk
ZXJzICs9IGZpbGVzKA0KPiA+PiAgICAgICAgICAgJ3J0ZV9wZXJfbGNvcmUuaCcsDQo+ID4+ICAg
ICAgICAgICAncnRlX3JhbmRvbS5oJywNCj4gPj4gICAgICAgICAgICdydGVfcmVjaXByb2NhbC5o
JywNCj4gPj4gKyAgICAgICAgJ3J0ZV9zZXFsb2NrLmgnLA0KPiA+PiAgICAgICAgICAgJ3J0ZV9z
ZXJ2aWNlLmgnLA0KPiA+PiAgICAgICAgICAgJ3J0ZV9zZXJ2aWNlX2NvbXBvbmVudC5oJywNCj4g
Pj4gICAgICAgICAgICdydGVfc3RyaW5nX2Zucy5oJywNCj4gPj4gZGlmZiAtLWdpdCBhL2xpYi9l
YWwvaW5jbHVkZS9ydGVfc2VxbG9jay5oIGIvbGliL2VhbC9pbmNsdWRlL3J0ZV9zZXFsb2NrLmgN
Cj4gPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPj4gaW5kZXggMDAwMDAwMDAwMC4uYjk3NWNh
ODQ4YQ0KPiA+PiAtLS0gL2Rldi9udWxsDQo+ID4+ICsrKyBiL2xpYi9lYWwvaW5jbHVkZS9ydGVf
c2VxbG9jay5oDQo+ID4+IEBAIC0wLDAgKzEsODQgQEANCj4gPj4gKy8qIFNQRFgtTGljZW5zZS1J
ZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gPj4gKyAqIENvcHlyaWdodChjKSAyMDIyIEVyaWNz
c29uIEFCDQo+ID4+ICsgKi8NCj4gPj4gKw0KPiA+PiArI2lmbmRlZiBfUlRFX1NFUUxPQ0tfSF8N
Cj4gPj4gKyNkZWZpbmUgX1JURV9TRVFMT0NLX0hfDQo+ID4+ICsNCj4gPj4gKyNpbmNsdWRlIDxz
dGRib29sLmg+DQo+ID4+ICsjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ID4+ICsNCj4gPj4gKyNpbmNs
dWRlIDxydGVfYXRvbWljLmg+DQo+ID4+ICsjaW5jbHVkZSA8cnRlX2JyYW5jaF9wcmVkaWN0aW9u
Lmg+DQo+ID4+ICsjaW5jbHVkZSA8cnRlX3NwaW5sb2NrLmg+DQo+ID4+ICsNCj4gPj4gK3N0cnVj
dCBydGVfc2VxbG9jayB7DQo+ID4+ICsJdWludDY0X3Qgc247DQo+ID4+ICsJcnRlX3NwaW5sb2Nr
X3QgbG9jazsNCj4gPj4gK307DQo+ID4+ICsNCj4gPj4gK3R5cGVkZWYgc3RydWN0IHJ0ZV9zZXFs
b2NrIHJ0ZV9zZXFsb2NrX3Q7DQo+ID4+ICsNCj4gPj4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiA+
PiArdm9pZA0KPiA+PiArcnRlX3NlcWxvY2tfaW5pdChydGVfc2VxbG9ja190ICpzZXFsb2NrKTsN
Cj4gPiBQcm9iYWJseSB3b3J0aCB0byBoYXZlIHN0YXRpYyBpbml0aWFsaXplciB0b28uDQo+ID4N
Cj4gDQo+IEkgd2lsbCBhZGQgdGhhdCBpbiB0aGUgbmV4dCB2ZXJzaW9uLCB0aGFua3MuDQo+IA0K
PiA+PiArDQo+ID4+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPj4gK3N0YXRpYyBpbmxpbmUgdWlu
dDY0X3QNCj4gPj4gK3J0ZV9zZXFsb2NrX3JlYWRfYmVnaW4oY29uc3QgcnRlX3NlcWxvY2tfdCAq
c2VxbG9jaykNCj4gPj4gK3sNCj4gPj4gKwkvKiBfX0FUT01JQ19BQ1FVSVJFIHRvIHByZXZlbnQg
bG9hZHMgYWZ0ZXIgKGluIHByb2dyYW0gb3JkZXIpDQo+ID4+ICsJICogZnJvbSBoYXBwZW5pbmcg
YmVmb3JlIHRoZSBzbiBsb2FkLiBTeW5jcm9uaXplcy13aXRoIHRoZQ0KPiA+PiArCSAqIHN0b3Jl
IHJlbGVhc2UgaW4gcnRlX3NlcWxvY2tfZW5kKCkuDQo+ID4+ICsJICovDQo+ID4+ICsJcmV0dXJu
IF9fYXRvbWljX2xvYWRfbigmc2VxbG9jay0+c24sIF9fQVRPTUlDX0FDUVVJUkUpOw0KPiA+PiAr
fQ0KPiA+PiArDQo+ID4+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPj4gK3N0YXRpYyBpbmxpbmUg
Ym9vbA0KPiA+PiArcnRlX3NlcWxvY2tfcmVhZF9yZXRyeShjb25zdCBydGVfc2VxbG9ja190ICpz
ZXFsb2NrLCB1aW50NjRfdCBiZWdpbl9zbikNCj4gPj4gK3sNCj4gPj4gKwl1aW50NjRfdCBlbmRf
c247DQo+ID4+ICsNCj4gPj4gKwkvKiBtYWtlIHN1cmUgdGhlIGRhdGEgbG9hZHMgaGFwcGVucyBi
ZWZvcmUgdGhlIHNuIGxvYWQgKi8NCj4gPj4gKwlydGVfYXRvbWljX3RocmVhZF9mZW5jZShfX0FU
T01JQ19BQ1FVSVJFKTsNCj4gPiBUaGF0J3Mgc29ydCBvZiAncmVhZF9lbmQnIGNvcnJlY3Q/DQo+
ID4gSWYgc28sIHNob3VsZG4ndCBpdCBiZSAnX19BVE9NSUNfUkVMRUFTRScgaW5zdGVhZCBoZXJl
LA0KPiA+IGFuZA0KPiA+IGVuZF9zbiA9IF9fYXRvbWljX2xvYWRfbiguLi4sIChfX0FUT01JQ19B
Q1FVSVJFKQ0KPiA+IG9uIHRoZSBsaW5lIGJlbG93Pw0KPiANCj4gQSByZWxlYXNlIGZlbmNlIHBy
ZXZlbnRzIHJlb3JkZXJpbmcgb2Ygc3RvcmVzLiBUaGUgcmVhZGVyIGRvZXNuJ3QgZG8gYW55DQo+
IHN0b3Jlcywgc28gSSBkb24ndCB1bmRlcnN0YW5kIHdoeSB5b3Ugd291bGQgdXNlIGEgcmVsZWFz
ZSBmZW5jZSBoZXJlLg0KPiBDb3VsZCB5b3UgZWxhYm9yYXRlPw0KDQpGcm9tIG15IHVuZGVyc3Rh
bmRpbmc6ICANCnJ0ZV9hdG9taWNfdGhyZWFkX2ZlbmNlKF9fQVRPTUlDX0FDUVVJUkUpOw0Kc2Vy
dmVzIGFzIGEgaG9pc3QgYmFycmllciBoZXJlLCBzbyBpdCB3b3VsZCBvbmx5IHByZXZlbnQgbGF0
ZXIgaW5zdHJ1Y3Rpb25zDQp0byBiZSBleGVjdXRlZCBiZWZvcmUgdGhhdCBwb2ludC4NCkJ1dCBp
dCB3b3VsZG4ndCBwcmV2ZW50IGVhcmxpZXIgaW5zdHJ1Y3Rpb25zIHRvIGJlIGV4ZWN1dGVkIGFm
dGVyIHRoYXQgcG9pbnQuDQpXaGlsZSB3ZSBkbyBuZWVkIHRvIGd1YXJhbnRlZSB0aGF0IGNwdSB3
aWxsIGZpbmlzaCBhbGwgcHJldmlvdXMgcmVhZHMgYmVmb3JlDQpwcm9ncmVzc2luZyBmdXJ0aGVy
LiANCg0KU3VwcG9zZSB3ZSBoYXZlIHNvbWV0aGluZyBsaWtlIHRoYXQ6DQoNCnN0cnVjdCB7DQoJ
dWludDY0X3Qgc2hhcmVkOw0KCXJ0ZV9zZXFsb2NrX3QgbG9jazsNCn0gZGF0YTsNCg0KLi4uDQpz
biA9IC4uLg0KdWludDY0X3QgeCA9IGRhdGEuc2hhcmVkOyANCi8qIGluc2lkZSBydGVfc2VxbG9j
a19yZWFkX3JldHJ5KCk6ICovDQouLi4NCnJ0ZV9hdG9taWNfdGhyZWFkX2ZlbmNlKF9fQVRPTUlD
X0FDUVVJUkUpOw0KZW5kX3NuID0gX19hdG9taWNfbG9hZF9uKCZkYXRhLmxvY2suc24sIF9fQVRP
TUlDX1JFTEFYRUQpOw0KDQpIZXJlIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgcmVhZCBvZiBk
YXRhLnNoYXJlZCB3aWxsIGFsd2F5cyBoYXBwZW4NCmJlZm9yZSByZWFkaW5nIG9mIGRhdGEubG9j
ay5zbi4gDQpJdCBpcyBub3QgYSBwcm9ibGVtIG9uIElBIChhcyByZWFkcyBhcmUgbm90IHJlb3Jk
ZXJlZCksIGJ1dCBvbiBtYWNoaW5lcyB3aXRoIA0KcmVsYXhlZCBtZW1vcnkgb3JkZXJpbmcgKEFS
TSwgZXRjLikgIGl0IGNhbiBoYXBwZW4uDQpTbyB0byBwcmV2ZW50IGl0IHdlIGRvIG5lZWQgYSBz
aW5rIGJhcnJpZXIgaGVyZSBmaXJzdCAoQVRPTUlDX1JFTEVBU0UpLg0KDQpIb25uYXBwYSBhbmQg
b3RoZXIgQVJNICYgYXRvbWljcyBleHBlcnRzLCBwbGVhc2UgY29ycmVjdCBtZSBpZiBJIGFtIHdy
b25nIGhlcmUuICAgIA0KDQo+ID4+ICsNCj4gPj4gKwllbmRfc24gPSBfX2F0b21pY19sb2FkX24o
JnNlcWxvY2stPnNuLCBfX0FUT01JQ19SRUxBWEVEKTsNCj4gPj4gKw0KPiA+PiArCXJldHVybiB1
bmxpa2VseShiZWdpbl9zbiAmIDEgfHwgYmVnaW5fc24gIT0gZW5kX3NuKTsNCj4gPj4gK30NCj4g
Pj4gKw0KPiA+PiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4+ICtzdGF0aWMgaW5saW5lIHZvaWQN
Cj4gPj4gK3J0ZV9zZXFsb2NrX3dyaXRlX2JlZ2luKHJ0ZV9zZXFsb2NrX3QgKnNlcWxvY2spDQo+
ID4+ICt7DQo+ID4+ICsJdWludDY0X3Qgc247DQo+ID4+ICsNCj4gPj4gKwkvKiB0byBzeW5jaHJv
bml6ZSB3aXRoIG90aGVyIHdyaXRlcnMgKi8NCj4gPj4gKwlydGVfc3BpbmxvY2tfbG9jaygmc2Vx
bG9jay0+bG9jayk7DQo+ID4+ICsNCj4gPj4gKwlzbiA9IHNlcWxvY2stPnNuICsgMTsNCj4gPj4g
Kw0KPiA+PiArCV9fYXRvbWljX3N0b3JlX24oJnNlcWxvY2stPnNuLCBzbiwgX19BVE9NSUNfUkVM
QVhFRCk7DQo+ID4+ICsNCj4gPj4gKwkvKiBfX0FUT01JQ19SRUxFQVNFIHRvIHByZXZlbnQgc3Rv
cmVzIGFmdGVyIChpbiBwcm9ncmFtIG9yZGVyKQ0KPiA+PiArCSAqIGZyb20gaGFwcGVuaW5nIGJl
Zm9yZSB0aGUgc24gc3RvcmUuDQo+ID4+ICsJICovDQo+ID4+ICsJcnRlX2F0b21pY190aHJlYWRf
ZmVuY2UoX19BVE9NSUNfUkVMRUFTRSk7DQo+ID4gSSB0aGluayBpdCBuZWVkcyB0byBiZSAnX19B
VE9NSUNfQUNRVUlSRScgaGVyZSBpbnN0ZWFkIG9mICdfX0FUT01JQ19SRUxFQVNFJy4NCj4gDQo+
IFBsZWFzZSBlbGFib3JhdGUgb24gd2h5Lg0KDQpBcyB5b3Ugc2FpZCBpbiB0aGUgY29tbWVudHMg
YWJvdmUsIHdlIG5lZWQgdG8gcHJldmVudCBsYXRlciBzdG9yZXMNCnRvIGJlIGV4ZWN1dGVkIGJl
Zm9yZSB0aGF0IHBvaW50LiBTbyB3ZSBkbyBuZWVkIGEgaG9pc3QgYmFycmllciBoZXJlLg0KQUZB
SUsgdG8gZ3VhcmFudGVlIGEgaG9pc3QgYmFycmllciAnX19BVE9NSUNfQUNRVUlSRScgaXMgcmVx
dWlyZWQuDQoNCj4gDQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gK19fcnRlX2V4cGVyaW1lbnRhbA0K
PiA+PiArc3RhdGljIGlubGluZSB2b2lkDQo+ID4+ICtydGVfc2VxbG9ja193cml0ZV9lbmQocnRl
X3NlcWxvY2tfdCAqc2VxbG9jaykNCj4gPj4gK3sNCj4gPj4gKwl1aW50NjRfdCBzbjsNCj4gPj4g
Kw0KPiA+PiArCXNuID0gc2VxbG9jay0+c24gKyAxOw0KPiA+PiArDQo+ID4+ICsJLyogc3luY2hy
b25pemVzLXdpdGggdGhlIGxvYWQgYWNxdWlyZSBpbiBydGVfc2VxbG9ja19iZWdpbigpICovDQo+
ID4+ICsJX19hdG9taWNfc3RvcmVfbigmc2VxbG9jay0+c24sIHNuLCBfX0FUT01JQ19SRUxFQVNF
KTsNCj4gPj4gKw0KPiA+PiArCXJ0ZV9zcGlubG9ja191bmxvY2soJnNlcWxvY2stPmxvY2spOw0K
PiA+PiArfQ0KPiA+PiArDQoNCg==