From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40049.outbound.protection.outlook.com [40.107.4.49]) by dpdk.org (Postfix) with ESMTP id 01AC425D9 for ; Tue, 22 Jan 2019 11:15:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sMIovQrWBYxLik10TGxEy528cn9Bz7/EJNK730YkkNM=; b=aihlgoYLf2/5zqk52FkI44Izyceat4Ltk29qW1q2d+AjRHhXKis0GnKRNsWpFVlSCfJ1vVC9L+2Pzg85AfFaYTazMpPkBi+Ji0DVNsWNJCNLwM5TXfw2YVvzOAtE7R+IzM38RzRiElWyov9Q1mHUf7bBxCCbbTRvlTNdThoqKwg= Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com (10.168.95.140) by HE1PR0801MB1481.eurprd08.prod.outlook.com (10.167.190.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.16; Tue, 22 Jan 2019 10:15:04 +0000 Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::f5e3:70fc:e834:3c42]) by HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::f5e3:70fc:e834:3c42%3]) with mapi id 15.20.1537.031; Tue, 22 Jan 2019 10:15:04 +0000 From: Ola Liljedahl To: "gage.eads@intel.com" , "dev@dpdk.org" CC: "olivier.matz@6wind.com" , "stephen@networkplumber.org" , "bruce.richardson@intel.com" , "arybchenko@solarflare.com" , "konstantin.ananyev@intel.com" Thread-Topic: [dpdk-dev] [PATCH v3 0/5] Add non-blocking ring Thread-Index: AQHUr0HtVw1YlpRb8kGtX078AL74eaW7CuMAgAANTYA= Date: Tue, 22 Jan 2019 10:15:04 +0000 Message-ID: <1548152109.5247.32.camel@arm.com> References: <20190115235227.14013-1-gage.eads@intel.com> <20190118152326.22686-1-gage.eads@intel.com> <1548149252.5247.8.camel@arm.com> In-Reply-To: <1548149252.5247.8.camel@arm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Evolution 3.18.5.2-0ubuntu3.2 authentication-results: spf=none (sender IP is ) smtp.mailfrom=Ola.Liljedahl@arm.com; x-originating-ip: [217.140.106.54] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1PR0801MB1481; 6:mqKDmW/Q7W3LXvKtSGb99iTmKcwf133d6un5dzsfGsSoFnmVW4+2Dgpznoi9OJj1pxeXpdAJWPYpijg2ueoSumNgxSMm7tzSsFiODo9i+/O6R0eywu0GH25b0DZYPsDLNRXMujSZ7koSgvVVyMV8Cvu4MB5/+yeqgOK4AvEsLXMauX7/HrrSdHjg2CjwyyOMAS/VWr33/+Za4v76EQWOWXjOqH4cclXMrRavckAXblu4t+42zYthSBAgWZKGpXBI4U/gOsdUuYyMVPaWdAqNk4ZIObLcxTsiUE0i4I51CBJ1+HbhN4Czbwpoc/IelKS058kOswQnS7zNA3XCuZZ49e5acMdmqKdKcXF2VR/M9WGXYorb0bxxpsYEoWw2ibXGHTilSoKzb/NgM26qu5SW8Or1EblrNxgn476do+WLfsTmgYLPFCE1vSA4WBqhPJ2798x8/j5M3wsRfpoupSJBKQ==; 5:yF36XTf+8LImVUsHr5uS5vWlsJ+kPOQDcw9R8vny8+HaQf4h8AUOS2uvKMfSOjNcxLgeZlWnzy23mfwbjo/6U5PAUx5NXxaa1MfFGX7/dOXR1f3Xhp8kslKWnfsd3bOfG2M5iYSpc9A2VkPQfPH4puJDG42EydGqORDK/9D/H5bsBQJQMb0XMPAgYkoG4+WtZTSiAQ3pybmPEEQrIjwy/Q==; 7:SfK8hGe2v/pVmzYQ5I19Lk1G5OTYZNOhYPJ3g4EBuQRCogortPe1PLxRCejiFuQSVjCpxApVpSEWnQdjKz7zBbR9jRYu5bDR/xUhFGkDyJc+0bzyBGwIaKIfY59uK2gjrq++tKOrpWNtNJ+vo9zmQQ== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 650f8bf1-832e-4201-5929-08d680527a6e x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600109)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:HE1PR0801MB1481; x-ms-traffictypediagnostic: HE1PR0801MB1481: x-microsoft-antispam-prvs: x-forefront-prvs: 0925081676 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(136003)(396003)(376002)(366004)(346002)(40434004)(199004)(189003)(2906002)(53936002)(6436002)(76176011)(6246003)(26005)(486006)(6486002)(97736004)(103116003)(8676002)(81156014)(81166006)(8936002)(99286004)(305945005)(7736002)(446003)(186003)(476003)(2616005)(11346002)(106356001)(68736007)(105586002)(6512007)(6306002)(66066001)(102836004)(71200400001)(71190400001)(14444005)(50226002)(5024004)(256004)(316002)(478600001)(3846002)(6116002)(72206003)(36756003)(14454004)(54906003)(86362001)(4326008)(229853002)(110136005)(966005)(2501003)(25786009)(6506007)(99106002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0801MB1481; H:HE1PR0801MB2076.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 33r6Qac0S/hyeWFM2F9HEeQO8KXgrqA02hYDpTVrhme/2O082+mbGHfdiWySkfr+sLco0yXb1uECbV9eFrERlm83J2pmDciLHQtRKj9iUsQUfDb2ZpRLJwrnFNlZbIwW/N5OheMYK75QIzUotIRPaAcS/bP5tjahqTLtUUMtRgsu7/frydvojEjAtk89zrtORM/ZtHlJTrsUUS+8JzUxNCfln38Qjv7W8SyOUE3YZkIbmGWNG/BJKKYyXdW6iVIZIIF0OoB99n3ApOolx559kV3O4fdMrtByHmbuf+0HLsKuRAnfxO02uWCURzTlLEw+VoEPVD7laTaXw0kHRcoaE5djP12n9zXPVCAoIG+YsGUuCSK1tkB+N8EdhLMlMfkqX/7QJwUEXPeOa287lPPYKPpoZZXe2VH2WSG0DouwvXU= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <836EE64DF177034CB9716B10B356AB2C@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 650f8bf1-832e-4201-5929-08d680527a6e X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jan 2019 10:15:04.7678 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1481 Subject: Re: [dpdk-dev] [PATCH v3 0/5] Add non-blocking ring X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jan 2019 10:15:07 -0000 U29ycnkgYWJvdXQgdGhlIGNvbmZpZGVudGFsIGZvb3Rlci4gSSB0cmllZCB0byByZW1vdmUgaXQg dXNpbmcgc29tZSBFeGhhbmdlDQptYWdpYyBidXQgaXQgc2VlbXMgbm90IHRvIHdvcmsgd2l0aCBF dm9sdXRpb24uIEknbGwgdHJ5IHNvbWUgb3RoZXIgd2F5Lg0KDQotLSBPbGENCg0KT24gVHVlLCAy MDE5LTAxLTIyIGF0IDA5OjI3ICswMDAwLCBPbGEgTGlsamVkYWhsIHdyb3RlOg0KPiBPbiBGcmks IDIwMTktMDEtMTggYXQgMDk6MjMgLTA2MDAsIEdhZ2UgRWFkcyB3cm90ZToNCj4gPg0KPiA+IEZv ciBzb21lIHVzZXJzLCB0aGUgcnRlIHJpbmcncyAibm9uLXByZWVtcHRpdmUiIGNvbnN0cmFpbnQg aXMgbm90DQo+ID4gYWNjZXB0YWJsZTsNCj4gPiBmb3IgZXhhbXBsZSwgaWYgdGhlIGFwcGxpY2F0 aW9uIHVzZXMgYSBtaXh0dXJlIG9mIHBpbm5lZCBoaWdoLQ0KPiA+IHByaW9yaXR5IHRocmVhZHMN Cj4gPiBhbmQgbXVsdGlwbGV4ZWQgbG93LXByaW9yaXR5IHRocmVhZHMgdGhhdCBzaGFyZSBhIG1l bXBvb2wuDQo+ID4NCiAgIEkuIFRoaXMgcGF0Y2hzZXQgaW50cm9kdWNlcyBhIG5vbi1ibG9ja2lu ZyByaW5nLCBvbiB0b3Agb2Ygd2hpY2ggYQ0KPiA+IG1lbXBvb2wgY2FuIHJ1bi4NCj4gPiBDcnVj aWFsbHksIHRoZSBub24tYmxvY2tpbmcgYWxnb3JpdGhtIHJlbGllcyBvbiBhIDEyOC1iaXQgY29t cGFyZS0NCj4gPiBhbmQtc3dhcCwgc28NCj4gPiBpdCBpcyBjdXJyZW50bHkgbGltaXRlZCB0byB4 ODZfNjQgbWFjaGluZXMuIFRoaXMgaXMgYWxzbyBhbg0KPiA+IGV4cGVyaW1lbnRhbCBBUEksDQo+ ID4gc28gUklOR19GX05CIHVzZXJzIG11c3QgYnVpbGQgd2l0aCB0aGUgQUxMT1dfRVhQRVJJTUVO VEFMX0FQSSBmbGFnLg0KPiA+DQo+ID4gVGhlIHJpbmcgdXNlcyBtb3JlIGNvbXBhcmUtYW5kLXN3 YXAgYXRvbWljIG9wZXJhdGlvbnMgdGhhbiB0aGUNCj4gPiByZWd1bGFyIHJ0ZSByaW5nOg0KPiA+ IFdpdGggbm8gY29udGVudGlvbiwgYW4gZW5xdWV1ZSBvZiBuIHBvaW50ZXJzIHVzZXMgKDEgKyAy bikgQ0FTDQo+ID4gb3BlcmF0aW9ucyBhbmQgYQ0KPiA+IGRlcXVldWUgb2YgbiBwb2ludGVycyB1 c2VzIDIuIFRoaXMgYWxnb3JpdGhtIGhhcyB3b3JzZSBhdmVyYWdlLWNhc2UNCj4gPiBwZXJmb3Jt YW5jZQ0KPiA+IHRoYW4gdGhlIHJlZ3VsYXIgcnRlIHJpbmcgKHBhcnRpY3VsYXJseSBhIGhpZ2hs eS1jb250ZW5kZWQgcmluZyB3aXRoDQo+ID4gbGFyZ2UgYnVsaw0KPiA+IGFjY2Vzc2VzKSwgaG93 ZXZlcjoNCj4gPiAtIEZvciBhcHBsaWNhdGlvbnMgd2l0aCBwcmVlbXB0aWJsZSBwdGhyZWFkcywg dGhlIHJlZ3VsYXIgcnRlIHJpbmcncw0KPiA+IHdvcnN0LWNhc2UNCj4gPiAgIHBlcmZvcm1hbmNl IChpLmUuIG9uZSB0aHJlYWQgYmVpbmcgcHJlZW1wdGVkIGluIHRoZSB1cGRhdGVfdGFpbCgpDQo+ ID4gY3JpdGljYWwNCj4gPiAgIHNlY3Rpb24pIGlzIG11Y2ggd29yc2UgdGhhbiB0aGUgbm9uLWJs b2NraW5nIHJpbmcncy4NCj4gPiAtIFNvZnR3YXJlIGNhY2hpbmcgY2FuIG1pdGlnYXRlIHRoZSBh dmVyYWdlIGNhc2UgcGVyZm9ybWFuY2UgZm9yDQo+ID4gcmluZy1iYXNlZA0KPiA+ICAgYWxnb3Jp dGhtcy4gRm9yIGV4YW1wbGUsIGEgbm9uLWJsb2NraW5nIHJpbmcgYmFzZWQgbWVtcG9vbCAoYQ0K PiA+IGxpa2VseSB1c2UgY2FzZQ0KPiA+ICAgZm9yIHRoaXMgcmluZykgd2l0aCBwZXItdGhyZWFk IGNhY2hpbmcuDQo+ID4NCj4gPiBUaGUgbm9uLWJsb2NraW5nIHJpbmcgaXMgZW5hYmxlZCB2aWEg YSBuZXcgZmxhZywgUklOR19GX05CLiBGb3IgZWFzZS0NCj4gPiBvZi11c2UsDQo+ID4gZXhpc3Rp bmcgcmluZyBlbnF1ZXVlL2RlcXVldWUgZnVuY3Rpb25zIHdvcmsgd2l0aCBib3RoICJyZWd1bGFy IiBhbmQNCj4gPiBub24tYmxvY2tpbmcgcmluZ3MuDQo+ID4NCj4gPiBUaGlzIHBhdGNoc2V0IGFs c28gYWRkcyBub24tYmxvY2tpbmcgdmVyc2lvbnMgb2YgcmluZ19hdXRvdGVzdCBhbmQNCj4gPiBy aW5nX3BlcmZfYXV0b3Rlc3QsIGFuZCBhIG5vbi1ibG9ja2luZyByaW5nIGJhc2VkIG1lbXBvb2wu DQo+ID4NCj4gPiBUaGlzIHBhdGNoc2V0IG1ha2VzIG9uZSBBUEkgY2hhbmdlOyBhIGRlcHJlY2F0 aW9uIG5vdGljZSB3aWxsIGJlDQo+ID4gcG9zdGVkIGluIGENCj4gPiBzZXBhcmF0ZSBjb21taXQu DQo+ID4NCj4gPiBUaGlzIHBhdGNoc2V0IGRlcGVuZHMgb24gdGhlIG5vbi1ibG9ja2luZyBzdGFj ayBwYXRjaHNldFsxXS4NCj4gPg0KPiA+IFsxXSBodHRwOi8vbWFpbHMuZHBkay5vcmcvYXJjaGl2 ZXMvZGV2LzIwMTktSmFudWFyeS8xMjM2NTMuaHRtbA0KPiA+DQo+ID4gdjM6DQo+ID4gIC0gQXZv aWQgdGhlIEFCSSBicmVhayBieSBwdXR0aW5nIDY0LWJpdCBoZWFkIGFuZCB0YWlsIHZhbHVlcyBp biB0aGUNCj4gPiBzYW1lDQo+ID4gICAgY2FjaGVsaW5lIGFzIHN0cnVjdCBydGVfcmluZydzIHBy b2QgYW5kIGNvbnMgbWVtYmVycy4NCj4gPiAgLSBEb24ndCBhdHRlbXB0IHRvIGNvbXBpbGUgcnRl X2F0b21pYzEyOF9jbXBzZXQgd2l0aG91dA0KPiA+ICAgIEFMTE9XX0VYUEVSSU1FTlRBTF9BUEks IGFzIHRoaXMgd291bGQgYnJlYWsgYSBsYXJnZSBudW1iZXIgb2YNCj4gPiBsaWJyYXJpZXMuDQo+ ID4gIC0gQWRkIGEgaGVscGZ1bCB3YXJuaW5nIHRvIF9fcnRlX3JpbmdfZG9fbmJfZW5xdWV1ZV9t cCgpIGluIGNhc2UNCj4gPiBzb21lb25lIHRyaWVzDQo+ID4gICAgdG8gdXNlIFJJTkdfRl9OQiB3 aXRob3V0IHRoZSBBTExPV19FWFBFUklNRU5UQUxfQVBJIGZsYWcuDQo+ID4gIC0gVXBkYXRlIHRo ZSByaW5nIG1lbXBvb2wgdG8gdXNlIGV4cGVyaW1lbnRhbCBBUElzDQo+ID4gIC0gQ2xhcmlmeSB0 aGF0IFJJTkJfRl9OQiBpcyBvbmx5IGxpbWl0ZWQgdG8geDg2XzY0IGN1cnJlbnRseTsNCj4gPiBB Uk12OC4xLUEgYnVpbGRzDQo+ID4gICAgY2FuIGV2ZW50dWFsbHkgc3VwcG9ydCBpdCB3aXRoIHRo ZSBDQVNQIGluc3RydWN0aW9uLg0KPiBBUk12OC4wIHNob3VsZCBiZSBhYmxlIHRvIGltcGxlbWVu dCBhIDEyOC1iaXQgYXRvbWljIGNvbXBhcmUgZXhjaGFuZ2UNCj4gb3BlcmF0aW9uIHVzaW5nIExE WFAvU1RYUC4NCj4NCj4gRnJvbSBhbiBBUk0gcGVyc3BlY3RpdmUsIEkgd2FudCBhbGwgYXRvbWlj IG9wZXJhdGlvbnMgdG8gdGFrZSBtZW1vcnkNCj4gb3JkZXJpbmcgYXJndW1lbnRzIChlLmcuIGFj cXVpcmUsIHJlbGVhc2UpLiBOb3QgYWxsIHVzYWdlcyBvZiBlLmcuDQo+IGF0b21pYyBjb21wYXJl IGV4Y2hhbmdlIHJlcXVpcmUgc2VxdWVudGlhbCBjb25zaXN0ZW5jeSAod2hpY2ggSSB0aGluaw0K PiB3aGF0IHg4NiBjbXB4Y2hnIGluc3RydWN0aW9uIHByb3ZpZGVzKS4gRFBESyBmdW5jdGlvbnMg c2hvdWxkIG5vdCBiZQ0KPiBtb2RlbGxlZCBhZnRlciB4ODYgYmVoYXZpb3VyLg0KPg0KPiBMb2Nr LWZyZWUgMTI4LWJpdCBhdG9taWNzIGltcGxlbWVudGF0aW9ucyBmb3IgQVJNL0FBcmNoNjQgYW5k IHg4Ni02NA0KPiBhcmUgYXZhaWxhYmxlIGhlcmU6DQo+IGh0dHBzOi8vZ2l0aHViLmNvbS9BUk0t c29mdHdhcmUvcHJvZ3Jlc3M2NC9ibG9iL21hc3Rlci9zcmMvbG9ja2ZyZWUuaA0KPg0KPiA+DQo+ ID4NCj4gPiB2MjoNCj4gPiAgLSBNZXJnZSBzZXBhcmF0ZSBkb2NzIGNvbW1pdCBpbnRvIHBhdGNo ICM1DQo+ID4gIC0gQ29udmVydCB1aW50cHRyX3QgdG8gc2l6ZV90DQo+ID4gIC0gQWRkIGEgY29t cGlsZS10aW1lIGNoZWNrIGZvciB0aGUgc2l6ZSBvZiBzaXplX3QNCj4gPiAgLSBGaXggYSBzcGFj ZS1hZnRlci10eXBlY2FzdCBpc3N1ZQ0KPiA+ICAtIEZpeCBhbiB1bm5lY2Vzc2FyeS1wYXJlbnRo ZXNlcyBjaGVja3BhdGNoIHdhcm5pbmcNCj4gPiAgLSBCdW1wIGxpYnJ0ZV9yaW5nJ3MgbGlicmFy eSB2ZXJzaW9uDQo+ID4NCj4gPiBHYWdlIEVhZHMgKDUpOg0KPiA+ICAgcmluZzogYWRkIDY0LWJp dCBoZWFkdGFpbCBzdHJ1Y3R1cmUNCj4gPiAgIHJpbmc6IGFkZCBhIG5vbi1ibG9ja2luZyBpbXBs ZW1lbnRhdGlvbg0KPiA+ICAgdGVzdF9yaW5nOiBhZGQgbm9uLWJsb2NraW5nIHJpbmcgYXV0b3Rl c3QNCj4gPiAgIHRlc3RfcmluZ19wZXJmOiBhZGQgbm9uLWJsb2NraW5nIHJpbmcgcGVyZiB0ZXN0 DQo+ID4gICBtZW1wb29sL3Jpbmc6IGFkZCBub24tYmxvY2tpbmcgcmluZyBoYW5kbGVycw0KPiA+ DQo+ID4gIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9lbnZfYWJzdHJhY3Rpb25fbGF5ZXIucnN0IHwg ICAyICstDQo+ID4gIGRyaXZlcnMvbWVtcG9vbC9yaW5nL01ha2VmaWxlICAgICAgICAgICAgICAg ICAgIHwgICAxICsNCj4gPiAgZHJpdmVycy9tZW1wb29sL3JpbmcvbWVzb24uYnVpbGQgICAgICAg ICAgICAgICAgfCAgIDIgKw0KPiA+ICBkcml2ZXJzL21lbXBvb2wvcmluZy9ydGVfbWVtcG9vbF9y aW5nLmMgICAgICAgICB8ICA1OCArKy0NCj4gPiAgbGliL2xpYnJ0ZV9ldmVudGRldi9ydGVfZXZl bnRfcmluZy5oICAgICAgICAgICAgfCAgIDIgKy0NCj4gPiAgbGliL2xpYnJ0ZV9yaW5nL01ha2Vm aWxlICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0NCj4gPiAgbGliL2xpYnJ0ZV9yaW5n L3J0ZV9yaW5nLmMgICAgICAgICAgICAgICAgICAgICAgfCAgNzIgKystDQo+ID4gIGxpYi9saWJy dGVfcmluZy9ydGVfcmluZy5oICAgICAgICAgICAgICAgICAgICAgIHwgNTc0DQo+ID4gKysrKysr KysrKysrKysrKysrKysrKy0tDQo+ID4gIGxpYi9saWJydGVfcmluZy9ydGVfcmluZ19nZW5lcmlj XzY0LmggICAgICAgICAgIHwgMTUyICsrKysrKysNCj4gPiAgbGliL2xpYnJ0ZV9yaW5nL3J0ZV9y aW5nX3ZlcnNpb24ubWFwICAgICAgICAgICAgfCAgIDcgKw0KPiA+ICB0ZXN0L3Rlc3QvdGVzdF9y aW5nLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1NyArKy0NCj4gPiAgdGVzdC90ZXN0 L3Rlc3RfcmluZ19wZXJmLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKy0NCj4gPiAgMTIg ZmlsZXMgY2hhbmdlZCwgODc0IGluc2VydGlvbnMoKyksIDc1IGRlbGV0aW9ucygtKQ0KPiA+ICBj cmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9yaW5nL3J0ZV9yaW5nX2dlbmVyaWNfNjQuaA0K PiA+DQo+IElNUE9SVEFOVCBOT1RJQ0U6IFRoZSBjb250ZW50cyBvZiB0aGlzIGVtYWlsIGFuZCBh bnkgYXR0YWNobWVudHMgYXJlDQo+IGNvbmZpZGVudGlhbCBhbmQgbWF5IGFsc28gYmUgcHJpdmls ZWdlZC4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkDQo+IHJlY2lwaWVudCwgcGxlYXNlIG5v dGlmeSB0aGUgc2VuZGVyIGltbWVkaWF0ZWx5IGFuZCBkbyBub3QgZGlzY2xvc2UgdGhlDQo+IGNv bnRlbnRzIHRvIGFueSBvdGhlciBwZXJzb24sIHVzZSBpdCBmb3IgYW55IHB1cnBvc2UsIG9yIHN0 b3JlIG9yIGNvcHkgdGhlDQo+IGluZm9ybWF0aW9uIGluIGFueSBtZWRpdW0uIFRoYW5rIHlvdS4N CklNUE9SVEFOVCBOT1RJQ0U6IFRoZSBjb250ZW50cyBvZiB0aGlzIGVtYWlsIGFuZCBhbnkgYXR0 YWNobWVudHMgYXJlIGNvbmZpZGVudGlhbCBhbmQgbWF5IGFsc28gYmUgcHJpdmlsZWdlZC4gSWYg eW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgcGxlYXNlIG5vdGlmeSB0aGUgc2Vu ZGVyIGltbWVkaWF0ZWx5IGFuZCBkbyBub3QgZGlzY2xvc2UgdGhlIGNvbnRlbnRzIHRvIGFueSBv dGhlciBwZXJzb24sIHVzZSBpdCBmb3IgYW55IHB1cnBvc2UsIG9yIHN0b3JlIG9yIGNvcHkgdGhl IGluZm9ybWF0aW9uIGluIGFueSBtZWRpdW0uIFRoYW5rIHlvdS4NCg==