From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by mail.toke.dk (Postfix) with ESMTPS id 373FFA3D6B3 for ; Thu, 16 Nov 2023 15:31:07 +0100 (CET) Authentication-Results: mail.toke.dk; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=N8xb9+UL Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id CBE3A61A10; Thu, 16 Nov 2023 14:31:04 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1DCEDC433C8; Thu, 16 Nov 2023 14:30:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1700145064; bh=EhGHuwDh91cqarIXUDT3tp44P964N6cVpra9ZSSgrHQ=; h=Date:Cc:Subject:To:References:From:In-Reply-To:From; b=N8xb9+ULvNniRwmzMdpxBtU8u7OyH+mGbDxyCcbK0uJacZTjERDbNmjFrqCHyY3qv 97gcZFgeT9L/lulv7LSGjCUfM3+cPCdrSR1xyS/sagSzpgQZWwj46Q0GGG1SJZue+w pfRTQHAWokyDjTEFlSTQxlCgokaEHDpUk6rOsQQ6MLEpfFXvxrgWe0shARZKYaqmiE nwm0lbYi/xO8RI70dFP2fmt6KzJqFgpFQOgelf4eFQINQPGzEboEgm4fs79OY8aNnr 7b9+q+3noy3GFEUMkE4VIJFqXwTfwSMCvb4vJLuLQHzXde5Um8+dAUMvjpVubhZRiN mrsyKtNVMUz7g== Message-ID: Date: Thu, 16 Nov 2023 15:30:55 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Stanislav Fomichev References: <20231102225837.1141915-1-sdf@google.com> <20231102225837.1141915-3-sdf@google.com> <2ed17b27-f211-4f58-95b5-5a71914264f3@kernel.org> From: Jesper Dangaard Brouer In-Reply-To: Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: V762TUW3ZWSORG7GQRNS4GB27X2AQL5F X-Message-ID-Hash: V762TUW3ZWSORG7GQRNS4GB27X2AQL5F X-MailFrom: hawk@kernel.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: hawk@kernel.org, bpf@vger.kernel.org, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, martin.lau@linux.dev, song@kernel.org, yhs@fb.com, john.fastabend@gmail.com, kpsingh@kernel.org, haoluo@google.com, jolsa@kernel.org, kuba@kernel.org, toke@kernel.org, willemb@google.com, dsahern@kernel.org, magnus.karlsson@intel.com, bjorn@kernel.org, maciej.fijalkowski@intel.com, yoong.siang.song@intel.com, netdev@vger.kernel.org, xdp-hints@xdp-project.net X-Mailman-Version: 3.3.8 Precedence: list Subject: [xdp-hints] Re: [PATCH bpf-next v5 02/13] xsk: Add TX timestamp and TX checksum offload support List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQoNCk9uIDExLzE1LzIzIDE0OjM3LCBTdGFuaXNsYXYgRm9taWNoZXYgd3JvdGU6DQo+IE9uIDEx LzE1LCBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIHdyb3RlOg0KPj4NCj4+DQo+PiBPbiAxMS8xMy8y MyAxODowMiwgU3RhbmlzbGF2IEZvbWljaGV2IHdyb3RlOg0KPj4+IE9uIDExLzEzLCBKZXNwZXIg RGFuZ2FhcmQgQnJvdWVyIHdyb3RlOg0KPj4+Pg0KPj4+Pg0KPj4+PiBPbiAxMS8xMy8yMyAxNTox MCwgU3RhbmlzbGF2IEZvbWljaGV2IHdyb3RlOg0KPj4+Pj4gT24gTW9uLCBOb3YgMTMsIDIwMjMg YXQgNToxNuKAr0FNIEplc3BlciBEYW5nYWFyZCBCcm91ZXIgPGhhd2tAa2VybmVsLm9yZz4gd3Jv dGU6DQo+Pj4+Pj4NCj4+Pj4+Pg0KPj4+Pj4+IE9uIDExLzIvMjMgMjM6NTgsIFN0YW5pc2xhdiBG b21pY2hldiB3cm90ZToNCj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9p Zl94ZHAuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9pZl94ZHAuaA0KPj4+Pj4+PiBpbmRleCAyZWNm NzkyODJjMjYuLmIwZWU3YWQxOWI1MSAxMDA2NDQNCj4+Pj4+Pj4gLS0tIGEvaW5jbHVkZS91YXBp L2xpbnV4L2lmX3hkcC5oDQo+Pj4+Pj4+ICsrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9pZl94ZHAu aA0KPj4+Pj4+PiBAQCAtMTA2LDYgKzEwNiw0MSBAQCBzdHJ1Y3QgeGRwX29wdGlvbnMgew0KPj4+ Pj4+PiAgICAgICNkZWZpbmUgWFNLX1VOQUxJR05FRF9CVUZfQUREUl9NQVNLIFwNCj4+Pj4+Pj4g ICAgICAgICAgKCgxVUxMIDw8IFhTS19VTkFMSUdORURfQlVGX09GRlNFVF9TSElGVCkgLSAxKQ0K Pj4+Pj4+Pg0KPj4+Pj4+PiArLyogUmVxdWVzdCB0cmFuc21pdCB0aW1lc3RhbXAuIFVwb24gY29t cGxldGlvbiwgcHV0IGl0IGludG8gdHhfdGltZXN0YW1wDQo+Pj4+Pj4+ICsgKiBmaWVsZCBvZiBz dHJ1Y3QgeHNrX3R4X21ldGFkYXRhLg0KPj4+Pj4+PiArICovDQo+Pj4+Pj4+ICsjZGVmaW5lIFhE UF9UWE1EX0ZMQUdTX1RJTUVTVEFNUCAgICAgICAgICAgICAoMSA8PCAwKQ0KPj4+Pj4+PiArDQo+ Pj4+Pj4+ICsvKiBSZXF1ZXN0IHRyYW5zbWl0IGNoZWNrc3VtIG9mZmxvYWQuIENoZWNrc3VtIHN0 YXJ0IHBvc2l0aW9uIGFuZCBvZmZzZXQNCj4+Pj4+Pj4gKyAqIGFyZSBjb21tdW5pY2F0ZWQgdmlh IGNzdW1fc3RhcnQgYW5kIGNzdW1fb2Zmc2V0IGZpZWxkcyBvZiBzdHJ1Y3QNCj4+Pj4+Pj4gKyAq IHhza190eF9tZXRhZGF0YS4NCj4+Pj4+Pj4gKyAqLw0KPj4+Pj4+PiArI2RlZmluZSBYRFBfVFhN RF9GTEFHU19DSEVDS1NVTSAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQ0KPj4+Pj4+PiAr DQo+Pj4+Pj4+ICsvKiBBRl9YRFAgb2ZmbG9hZHMgcmVxdWVzdC4gJ3JlcXVlc3QnIHVuaW9uIG1l bWJlciBpcyBjb25zdW1lZCBieSB0aGUgZHJpdmVyDQo+Pj4+Pj4+ICsgKiB3aGVuIHRoZSBwYWNr ZXQgaXMgYmVpbmcgdHJhbnNtaXR0ZWQuICdjb21wbGV0aW9uJyB1bmlvbiBtZW1iZXIgaXMNCj4+ Pj4+Pj4gKyAqIGZpbGxlZCBieSB0aGUgZHJpdmVyIHdoZW4gdGhlIHRyYW5zbWl0IGNvbXBsZXRp b24gYXJyaXZlcy4NCj4+Pj4+Pj4gKyAqLw0KPj4+Pj4+PiArc3RydWN0IHhza190eF9tZXRhZGF0 YSB7DQo+Pj4+Pj4+ICsgICAgIHVuaW9uIHsNCj4+Pj4+Pj4gKyAgICAgICAgICAgICBzdHJ1Y3Qg ew0KPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgX191MzIgZmxhZ3M7DQo+Pj4+Pj4+ICsN Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIC8qIFhEUF9UWE1EX0ZMQUdTX0NIRUNLU1VN ICovDQo+Pj4+Pj4+ICsNCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIC8qIE9mZnNldCBm cm9tIGRlc2MtPmFkZHIgd2hlcmUgY2hlY2tzdW1taW5nIHNob3VsZCBzdGFydC4gKi8NCj4+Pj4+ Pj4gKyAgICAgICAgICAgICAgICAgICAgIF9fdTE2IGNzdW1fc3RhcnQ7DQo+Pj4+Pj4+ICsgICAg ICAgICAgICAgICAgICAgICAvKiBPZmZzZXQgZnJvbSBjc3VtX3N0YXJ0IHdoZXJlIGNoZWNrc3Vt IHNob3VsZCBiZSBzdG9yZWQuICovDQo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICBfX3Ux NiBjc3VtX29mZnNldDsNCj4+Pj4+Pj4gKyAgICAgICAgICAgICB9IHJlcXVlc3Q7DQo+Pj4+Pj4+ ICsNCj4+Pj4+Pj4gKyAgICAgICAgICAgICBzdHJ1Y3Qgew0KPj4+Pj4+PiArICAgICAgICAgICAg ICAgICAgICAgLyogWERQX1RYTURfRkxBR1NfVElNRVNUQU1QICovDQo+Pj4+Pj4+ICsgICAgICAg ICAgICAgICAgICAgICBfX3U2NCB0eF90aW1lc3RhbXA7DQo+Pj4+Pj4+ICsgICAgICAgICAgICAg fSBjb21wbGV0aW9uOw0KPj4+Pj4+PiArICAgICB9Ow0KPj4+Pj4+PiArfTsNCj4+Pj4+Pg0KPj4+ Pj4+IFRoaXMgbG9va3Mgd3JvbmcgdG8gbWUuIEl0IGxvb2tzIGxpa2UgbWVtYmVyIEBmbGFncyBp cyBub3QgYXZhaWwgYXQNCj4+Pj4+PiBjb21wbGV0aW9uIHRpbWUuICBBdCBjb21wbGV0aW9uIHRp bWUsIEkgYXNzdW1lIHdlIGFsc28gd2FudCB0byBrbm93IGlmDQo+Pj4+Pj4gc29tZW9uZSByZXF1 ZXN0ZWQgdG8gZ2V0IHRoZSB0aW1lc3RhbXAgZm9yIHRoaXMgcGFja2V0IChlbHNlIHdlIGNvdWxk DQo+Pj4+Pj4gcmVhZCBnYXJiYWdlKS4NCj4+Pj4+DQo+Pj4+PiBJJ3ZlIG1vdmVkIHRoZSBwYXJ0 cyB0aGF0IGFyZSBwcmVzZXJ2ZWQgYWNyb3NzIHR4IGFuZCB0eCBjb21wbGV0aW9uDQo+Pj4+PiBp bnRvIHhza190eF9tZXRhZGF0YV9jb21wbC4NCj4+Pj4+IFRoaXMgaXMgdG8gYWRkcmVzcyBNYWdu dXMvTWFjaWVqIGZlZWRiYWNrIHdoZXJlIHVzZXJzcGFjZSBtaWdodCByYWNlDQo+Pj4+PiB3aXRo IHRoZSBrZXJuZWwuDQo+Pj4+PiBTZWU6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2JwZi9aTm9K ZW56S1hXNVFTUjNFQGJveGVyLw0KPj4+Pj4NCj4+Pj4NCj4+Pj4gRG9lcyB0aGlzIG1lYW4gdGhh dCBldmVyeSBkcml2ZXIgaGF2ZSB0byBleHRlbmQgdGhlaXIgVFgtZGVzYyByaW5nIHdpdGgNCj4+ Pj4gc2l6ZW9mKHN0cnVjdCB4c2tfdHhfbWV0YWRhdGFfY29tcGwpPw0KPj4+PiBXb24ndCB0aGlz IGFmZmVjdCB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhpcyBWNT8NCj4+Pg0KPj4+IFllcywgYnV0IGl0 IGRvZXNuJ3QgaGF2ZSB0byBiZSBhIGRlc2NyaXB0b3IuIE1pZ2h0IGJlIHNvbWUgaW50ZXJuYWwN Cj4+PiBkcml2ZXIgY29tcGxldGlvbiBxdWV1ZSAoYXMgaW4gdGhlIGNhc2Ugb2YgbWx4NSkuIEFu ZCBkZWZpbml0ZWx5IGRvZXMNCj4+PiBhZmZlY3QgcGVyZm9ybWFuY2UgOi0oIChzZWUgYWxsIHRo ZSBzdGF0aWMgYnJhbmNoZXMgdG8gZGlzYWJsZSBpdCkNCj4+Pj4gICAgJCBwYWhvbGUgLUMgeHNr X3R4X21ldGFkYXRhX2NvbXBsDQo+Pj4+IC4vZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9z dG1tYWMvc3RtbWFjLmtvDQo+Pj4+ICAgIHN0cnVjdCB4c2tfdHhfbWV0YWRhdGFfY29tcGwgew0K Pj4+PiAJX191NjQgKiAgICAgICAgICAgICAgdHhfdGltZXN0YW1wOyAgICAgICAgIC8qICAgICAw ICAgICA4ICovDQo+Pj4+DQo+Pj4+IAkvKiBzaXplOiA4LCBjYWNoZWxpbmVzOiAxLCBtZW1iZXJz OiAxICovDQo+Pj4+IAkvKiBsYXN0IGNhY2hlbGluZTogOCBieXRlcyAqLw0KPj4+PiAgICB9Ow0K Pj4+Pg0KPj4+PiBHdWVzcywgSSBtdXN0IGJlIG1pc3VuZGVyc3RhbmRpbmcsIGFzIEkgd2FzIGV4 cGVjdGluZyB0byBzZWUgdGhlIEBmbGFncw0KPj4+PiBtZW1iZXIgYmVpbmcgcHJlc2VydmVkIGFj cm9zcywgYXMgSSBnZXQgdGhlIHJhY2UgdGhlcmUuDQo+Pj4+DQo+Pj4+IExvb2tpbmcgYXQgc3Rt bWFjIGRyaXZlciwgaXQgZG9lcyBsb29rIGxpa2UgdGhpcyB4c2tfdHhfbWV0YWRhdGFfY29tcGwN Cj4+Pj4gaXMgcGFydCBvZiB0aGUgVFgtcmluZyBmb3IgY29tcGxldGlvbiAodHhfc2tidWZmX2Rt YSkgYW5kIHRoZQ0KPj4+PiB0eF90aW1lc3RhbXAgZGF0YSBpcyBnZXR0aW5nIHN0b3JlZCBoZXJl LiAgSG93IGlzIHVzZXJzcGFjZSBBRl9YRFANCj4+Pj4gYXBwbGljYXRpb24gZ2V0dGluZyBhY2Nl c3MgdG8gdGhlIHR4X3RpbWVzdGFtcCBkYXRhPw0KPj4+PiBJIHRob3VnaCB0aGlzIHdhcyBzdXBw b3NlIHRvIGdldCBzdG9yZWQgaW4gbWV0YWRhdGEgZGF0YSBhcmVhICh1bWVtKT8NCj4+Pj4NCj4+ Pj4gQWxzbyBsb29raW5nIGF0IHRoZSBjb2RlLCB0aGUga2VybmVsIHdvdWxkIG5vdCBoYXZlIGEg ImNyYXNoIiByYWNlIG9uDQo+Pj4+IHRoZSBmbGFncyBtZW1iZXIgKGlmIHdlIHByZXNlcnZlIGlu IHN0cnVjdCksIGJlY2F1c2UgdGhlIGNvZGUgY2hlY2tzIHRoZQ0KPj4+PiBkcml2ZXIgSFctVFMg Y29uZmlnLXN0YXRlICsgVFgtZGVzY3JpcHRvciBmb3IgdGhlIGF2YWlsYWJpbGl0eSBvZiBhDQo+ Pj4+IEhXLVRTIGluIHRoZSBkZXNjcmlwdG9yLg0KPj4+DQo+Pj4geHNrX3R4X21ldGFkYXRhX2Nv bXBsIHN0b3JlcyBhIHBvaW50ZXIgdG8gdGhlIGNvbXBsZXRpb24gdGltZXN0YW1wDQo+Pj4gaW4g dGhlIHVtZW0sIHNvIGV2ZXJ5dGhpbmcgc3RpbGwgYXJyaXZlcyB2aWEgdGhlIG1ldGFkYXRhIGFy ZWEuDQo+Pj4NCj4+PiBXZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgZmxhZ3MgYXJlIG5vdCBjaGFu Z2luZyBhY3Jvc3MgdHggYW5kIHR4IGNvbXBsZXRpb24uDQo+Pj4gSW5zdGVhZCBvZiBzYXZpbmcg dGhlIGZsYWdzLCB3ZSBqdXN0IHVzZSB0aGF0IHhza190eF9tZXRhZGF0YV9jb21wbCB0bw0KPj4+ IHNpZ25hbCB0byB0aGUgY29tcGxldGlvbiB0aGF0ICJJIGtub3cgdGhhdCBJJ3ZlIHJlcXVlc3Rl ZCB0aGUgdHgNCj4+PiBjb21wbGV0aW9uIHRpbWVzdGFtcCwgcGxlYXNlIHB1dCBpdCBhdCB0aGlz IGFkZHJlc3MgaW4gdW1lbSIuDQo+Pj4NCj4+PiBJIHN0b3JlIHRoZSBwb2ludGVyIGluc3RlYWQg b2YgZmxhZ3MgdG8gYXZvaWQgZG9pbmcgcG9pbnRlciBtYXRoIGFnYWluDQo+Pj4gYXQgY29tcGxl dGlvbi4gQnV0IGl0J3MgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIGFuZCBzb21ld2hhdCBhYnN0 cmFjdGVkDQo+Pj4gZnJvbSB0aGUgZHJpdmVycyAoYmVzaWRlcyB0aGUgZmFjdCB0aGF0IGl0J3Mg cHJvYmFibHkgaGFzIHRvIGZpdCBpbiA4DQo+Pj4gYnl0ZXMpLg0KPj4NCj4+IEkgc2VlIGl0IG5v dyAod2hhdCBJIG1pc3NlZCkuIEF0IFRYIHRpbWUgeW91IGFyZSBzdG9yaW5nIGEgcG9pbnRlciB3 aGVyZQ0KPj4gdG8gKGxhdGVyKSB3cml0ZSB0aGUgVFMgYXQgY29tcGxldGlvbiB0aW1lLiAgSXQg anVzdCBzZWVtcyBvdmVya2lsbCB0bw0KPj4gc3RvcmUgOCBieXRlIChwb2ludGVyKSB0byBzaWdu YWwgKHZpYSBOVUxMKSBpZiB0aGUgSFdUUyB3YXMgcmVxdWVzdGVkLg0KPj4gU3BhY2UgaW4gdGhl IGRyaXZlcnMgVFgtcmluZyBpcyBwZXJmb3JtYW5jZSBjcml0aWNhbCwgYW5kIEkgdGhpbmsgZHJp dmVyDQo+PiBkZXZlbG9wZXJzIHdvdWxkIHByZWZlciB0byBmaW5kIGEgYml0IHRvIGluZGljYXRl IEhXVFMgcmVxdWVzdGVkLg0KPj4NCj4+IElmIEhXVFMgd2FzICpOT1QqIHJlcXVlc3RlZCwgdGhl biB0aGUgbWV0YWRhdGEgYXJlYSB3aWxsIG5vdCBiZSB1cGRhdGVkDQo+PiAocmlnaHQsIGNvcnJl Y3Q/KS4gVGhlbiBtZW1vcnkgYXJlYSBpcyBiYXNpY2FsbHkgZ2FyYmFnZSB0aGF0IHN1cnZpdmVk Lg0KPj4gSG93IGRvZXMgdGhlIEFGX1hEUCBhcHBsaWNhdGlvbiBrbm93IHRoaXMgcGFja2V0IGNv bnRhaW5zIGEgSFdUUyBvciBub3Q/DQo+Pg0KPj4gIEZyb20gYW4gVUFQSSBQb1Ygd291bGRuJ3Qg aXQgYmUgZWFzaWVyIHRvIHVzZSAoYW5kIGV4dGVuZCkgdmlhIGtlZXBpbmcNCj4+IHRoZSBAZmxh Z3MgbWVtYmVyIChpbiBzdHJ1Y3QgeHNrX3R4X21ldGFkYXRhKSwgYnV0IChhcyB5b3UgYWxyZWFk eSBkbykNCj4+IG5vdCBsZXQga2VybmVsIGNoZWNrcyBkZXBlbmQgb24gaXQgKHRvIGF2b2lkIHRo ZSByYWNlcykuDQo+IA0KPiBJIHdhcyBhc3N1bWluZyB0aGUgdXNlcnNwYWNlIGNhbiBrZWVwIHRo aXMgc2lnbmFsIG91dCBvZiBiYW5kIG9yIHVzZQ0KPiB0aGUgc2FtZSBpZGVhIGFzIHN1Z2dlc3Rl ZCB3aXRoIHBhZGRpbmcgc3RydWN0IHhza190eF9tZXRhZGF0YSB0byBrZWVwDQo+IHNvbWUgZGF0 YSBhcm91bmQuIEJ1dCBJIHNlZSB5b3VyIHBvaW50LCBpdCBtaWdodCBiZSBjb252ZW5pZW50IHRv DQo+IGtlZXAgdGhlIG9yaWdpbmFsIGZsYWdzIGFyb3VuZCBkdXJpbmcgY29tcGxldGlvbiBvbiB0 aGUgdWFwaSBzaWRlLg0KPiANCj4gSSB0aGluayBJIGNhbiBqdXN0IG1vdmUgZmxhZ3MgZnJvbSB0 aGUgcmVxdWVzdCB1bmlvbiBtZW1iZXIgdG8gdGhlIG91dGVyDQo+IHN0cnVjdC4gU28gdGhlIHN0 cnVjdCB4c2tfdHhfbWV0YWRhdGEgd291bGQgbG9vayBsaWtlOg0KPiANCj4gc3RydWN0IHhza190 eF9tZXRhZGF0YSB7DQo+IAlfX3UzMiBmbGFnczsgLyogbWF5YmUgY2FuIGV2ZW4gbWFrZSB0aGlz IHU2ND8gKi8NCj4gDQoNClllcyB0byB1NjQgZm9yIHR3byByZWFzb25zICgxKSB0aGlzIGJlY29t ZXMgVUFQSSBhbmQNCigyKSBiZXR0ZXIgYWxpZ25tZW50IGZvciB0eF90aW1lc3RhbXAuDQpCdXQg SSdtIG9wZW4gdG8ga2VlcGluZyBpdCB1MzIuDQoNCj4gCXVuaW9uIHsNCj4gCQlfX3UxNiBjc3Vt X3N0YXJ0Ow0KPiAJCV9fdTE2IGNzdW1fb2Zmc2V0Ow0KPiAJfSByZXF1ZXN0Ow0KPiANCj4gCXVu aW9uIHsNCj4gCQlfX3U2NCB0eF90aW1lc3RhbXA7DQo+IAl9IGNvbXBsZXRpb247DQo+IA0KPiAJ X191MzIgcGFkZGluZzsgLyogdG8gZHJvcCB0aGlzIHBhZGRpbmcgKi8NCj4gfTsNCj4gDQo+IEJ1 dCBJJ2QgYWxzbyBrZWVwIHRoZSBleGlzdGluZyB4c2tfdHhfbWV0YWRhdGFfY29tcGwgdG8gY2Fy cnkgdGhlDQo+IHBvaW50ZXIrc2lnbmFsIGFyb3VuZC4gQXMgSSBtZW50aW9uZWQgcHJldmlvdXNs eSwgaXQncyBjb21wbGV0ZWx5DQo+IG9wYXF1ZSB0byB0aGUgZHJpdmVyIGFuZCB3ZSBjYW4gY2hh bmdlIHRoZSBpbnRlcm5hbHMgaW4gdGhlIGZ1dHVyZS4NCj4gDQoNClN1cmUsIGl0IGlzIGFuIGlt cGxlbWVudGF0aW9uIGRldGFpbCBhbmQgbXkgb2JqZWN0aW9ucyBhcmUgbW9zdGx5IHRoYXQgSQ0K ZG9uJ3QgZmluZCBpdCBhcyBhIHByZXR0eSBjb2RlIGFwcHJvYWNoIHRoYXQgY2FuIGJlIGhhcmQg dG8gZm9sbG93Lg0KTWF5YmUgZHJpdmVyIGRldmVsb3BlciB3aWxsIG9iamVjdCBhbmQgY2hhbmdl IHRoaXMgbGF0ZXIgaWYgaXQgY29zdCB0b28NCm11Y2ggdG8gaW5jcmVhc2UgdGhlIGVsZW1lbnQg c2l6ZSBpbiB0aGVpciBUWC1yaW5nIHF1ZXVlcy4NCg0KPiBJT1csIHdlIHdvbid0IG92ZXJyaWRl IHRoZSBmbGFncyBmcm9tIHRoZSBrZXJuZWwgc2lkZSBhbmQgYXMgbG9uZw0KPiBhcyB0aGUgdXNl cnNwYWNlIGNvbnN1bWVyIGRvZXNuJ3QgbWVzcyB0aGVtIHVwIGl0IHNob3VsZCByZWNlaXZlDQo+ IHRoZSBvcmlnaW5hbCB2YWx1ZSBhdCBjb21wbGV0aW9uLg0KPiANCj4gV291bGQgdGhhdCB3b3Jr IGZvciB5b3U/DQoNClllcywgdGhhdCB3aWxsIHdvcmsgZm9yIG1lLCB0aGFua3MhDQoNCi0tSmVz cGVyDQo=