From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mail.toke.dk (Postfix) with ESMTPS id 5ED969CD9F6 for ; Fri, 9 Dec 2022 13:59:38 +0100 (CET) Authentication-Results: mail.toke.dk; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=gnPsaT1V DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1670590777; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IeC3V4Nv/NsdvdBX2htp9hv5uXYY+hSvBqMVRWFE8oI=; b=gnPsaT1V/dqTyLL57dQosHohN9lKvvVaoS39H8C5fVhPB9O8nYV0EKgP0GKb6q08NrGX0q GBMKBX9YZAdr/4zUzjfDtE3a9HNS14jnWnMG1pcSWpMYHN7alFr0gOpNWHx2uC7hHH5q76 jNe9w/jonacy1UmNP9QLqkach/ujjbk= Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-357-caX3Z57MP-iLEEWtcr7Fsg-1; Fri, 09 Dec 2022 07:59:28 -0500 X-MC-Unique: caX3Z57MP-iLEEWtcr7Fsg-1 Received: by mail-ed1-f70.google.com with SMTP id m18-20020a056402511200b0046db14dc1c9so1339209edd.10 for ; Fri, 09 Dec 2022 04:59:28 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:references:to :content-language:subject:cc:user-agent:mime-version:date:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=IeC3V4Nv/NsdvdBX2htp9hv5uXYY+hSvBqMVRWFE8oI=; b=PirXKHnCUlSmbZ9Se6OtzEhLwVWO2pnJ28xZApDwLLzlUiDsNu4MeHMAd9NE/vR6T9 iSnNi6ri612JXHhzyKVzc2U6kR7Sim7MeoGOjTu/K1aMlzKkMtTzdWPhCJtY05Dkqm+I tr4F1eeiAKTIGl15DNdXZYRNesddR6Sj3+ic6gIbs7tvJc7UQEtYCIgAYgvU2kvq1E88 /bhgtq5MkYTScjAyHTrNN698mT2ScSJv6U0sHnmafrB5p/9RqNBUywQHlA8a+N3coVbH eSt6vQLTQitWsjILhjCNPvPSJA0fgY4Xg5eQ6QsRg7wTMZRjZ3FfwaGswYel7zHN4W3I +gLg== X-Gm-Message-State: ANoB5pkuC/Fc0Aw4zMJxbLlvBvADA+2gqpWtfiGcOUqJYqDtJeYQcGjs 9qqQeEYAznv5MJSct2ismr8PdnfGldzNhsxglmOon0MZcHQTB+Laq0JPHRCFaEnARpUPGvivvew skPnVteM7M/Ldtjbz+nN7 X-Received: by 2002:aa7:cc09:0:b0:461:b2d7:46b5 with SMTP id q9-20020aa7cc09000000b00461b2d746b5mr4823454edt.7.1670590767248; Fri, 09 Dec 2022 04:59:27 -0800 (PST) X-Google-Smtp-Source: AA0mqf62yqbyHKMXuCwuCnCOSrMW7y2E0jvLw7+w8XTVt3ir1lQes3EUGT1RFAq952dNBRtdmzNRpQ== X-Received: by 2002:aa7:cc09:0:b0:461:b2d7:46b5 with SMTP id q9-20020aa7cc09000000b00461b2d746b5mr4823422edt.7.1670590766878; Fri, 09 Dec 2022 04:59:26 -0800 (PST) Received: from [192.168.41.200] (83-90-141-187-cable.dk.customer.tdc.net. [83.90.141.187]) by smtp.gmail.com with ESMTPSA id p4-20020aa7d304000000b00461cdda400esm624646edq.4.2022.12.09.04.59.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 09 Dec 2022 04:59:26 -0800 (PST) From: Jesper Dangaard Brouer X-Google-Original-From: Jesper Dangaard Brouer Message-ID: <66fa1861-30dd-6d00-ed14-0cf4a6b39f3c@redhat.com> Date: Fri, 9 Dec 2022 13:59:23 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 To: Saeed Mahameed , Stanislav Fomichev References: <20221206024554.3826186-1-sdf@google.com> <20221206024554.3826186-12-sdf@google.com> <875yellcx6.fsf@toke.dk> <87359pl9zy.fsf@toke.dk> <87tu25ju77.fsf@toke.dk> <87o7sdjt20.fsf@toke.dk> In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: HUOAQRCHZLV27SORSRCXEQ4N2NDNZYEM X-Message-ID-Hash: HUOAQRCHZLV27SORSRCXEQ4N2NDNZYEM X-MailFrom: jbrouer@redhat.com 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: brouer@redhat.com, =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= , Alexei Starovoitov , bpf , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Hao Luo , Jiri Olsa , Saeed Mahameed , David Ahern , Jakub Kicinski , Willem de Bruijn , Anatoly Burakov , Alexander Lobakin , Magnus Karlsson , Maryam Tahhan , xdp-hints@xdp-project.net, Network Development X-Mailman-Version: 3.3.7 Precedence: list Subject: [xdp-hints] Re: [PATCH bpf-next v3 11/12] mlx5: Support RX XDP metadata List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQpPbiAwOS8xMi8yMDIyIDA2LjI0LCBTYWVlZCBNYWhhbWVlZCB3cm90ZToNCj4gT24gMDggRGVj IDE4OjU3LCBTdGFuaXNsYXYgRm9taWNoZXYgd3JvdGU6DQo+PiBPbiBUaHUsIERlYyA4LCAyMDIy IGF0IDQ6NTQgUE0gVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIA0KPj4gPHRva2VAcmVkaGF0LmNv bT4gd3JvdGU6DQo+Pj4NCj4+PiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFsZXhlaS5zdGFyb3ZvaXRv dkBnbWFpbC5jb20+IHdyaXRlczoNCj4+Pg0KPj4+ID4gT24gVGh1LCBEZWMgOCwgMjAyMiBhdCA0 OjI5IFBNIFRva2UgSMO4aWxhbmQtSsO4cmdlbnNlbiA8dG9rZUByZWRoYXQuY29tPiB3cm90ZToN Cj4+PiA+Pg0KPj4+ID4+IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YWxleGVpLnN0YXJvdm9pdG92QGdt YWlsLmNvbT4gd3JpdGVzOg0KPj4+ID4+DQo+Pj4gPj4gPiBPbiBUaHUsIERlYyA4LCAyMDIyIGF0 IDQ6MDIgUE0gVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQHJlZGhhdC5jb20+IHdyb3Rl Og0KPj4+ID4+ID4+DQo+Pj4gPj4gPj4gU3RhbmlzbGF2IEZvbWljaGV2IDxzZGZAZ29vZ2xlLmNv bT4gd3JpdGVzOg0KPj4+ID4+ID4+DQo+Pj4gPj4gPj4gPiBPbiBUaHUsIERlYyA4LCAyMDIyIGF0 IDI6NTkgUE0gVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQHJlZGhhdC5jb20+IHdyb3Rl Og0KPj4+ID4+ID4+ID4+DQo+Pj4gPj4gPj4gPj4gU3RhbmlzbGF2IEZvbWljaGV2IDxzZGZAZ29v Z2xlLmNvbT4gd3JpdGVzOg0KPj4+ID4+ID4+ID4+DQo+Pj4gPj4gPj4gPj4gPiBGcm9tOiBUb2tl IEjDuGlsYW5kLUrDuHJnZW5zZW4gPHRva2VAcmVkaGF0LmNvbT4NCj4+PiA+PiA+PiA+PiA+DQo+ Pj4gPj4gPj4gPj4gPiBTdXBwb3J0IFJYIGhhc2ggYW5kIHRpbWVzdGFtcCBtZXRhZGF0YSBrZnVu Y3MuIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgY3FlDQo+Pj4gPj4gPj4gPj4gPiBwb2ludGVyIHRv IHRoZSBtbHg1ZV9za2JfZnJvbSogZnVuY3Rpb25zIHNvIGl0IGNhbiBiZSByZXRyaWV2ZWQgZnJv bSB0aGUNCj4+PiA+PiA+PiA+PiA+IFhEUCBjdHggdG8gZG8gdGhpcy4NCj4+PiA+PiA+PiA+Pg0K Pj4+ID4+ID4+ID4+IFNvIEkgZmluYWxseSBtYW5hZ2VkIHRvIGdldCBlbm91Z2ggZHVja3MgaW4g cm93IHRvIGFjdHVhbGx5IGJlbmNobWFyaw0KPj4+ID4+ID4+ID4+IHRoaXMuIFdpdGggdGhlIGNh dmVhdCB0aGF0IEkgc3VkZGVubHkgY2FuJ3QgZ2V0IHRoZSB0aW1lc3RhbXAgc3VwcG9ydCB0bw0K Pj4+ID4+ID4+ID4+IHdvcmsgKGl0IHdhcyB3b3JraW5nIGluIGFuIGVhcmxpZXIgdmVyc2lvbiwg YnV0IG5vdw0KPj4+ID4+ID4+ID4+IHRpbWVzdGFtcF9zdXBwb3J0ZWQoKSBqdXN0IHJldHVybnMg ZmFsc2UpLiBJJ20gbm90IHN1cmUgaWYgdGhpcyBpcyBhbg0KPj4+ID4+ID4+ID4+IGlzc3VlIHdp dGggdGhlIGVuYWJsZW1lbnQgcGF0Y2gsIG9yIGlmIEkganVzdCBoYXZlbid0IGdvdHRlbiB0aGUN Cj4+PiA+PiA+PiA+PiBoYXJkd2FyZSBjb25maWd1cmVkIHByb3Blcmx5LiBJJ2xsIGludmVzdGln YXRlIHNvbWUgbW9yZSwgYnV0IGZpZ3VyZWQNCj4+PiA+PiA+PiA+PiBJJ2QgcG9zdCB0aGVzZSBy ZXN1bHRzIG5vdzoNCj4+PiA+PiA+PiA+Pg0KPj4+ID4+ID4+ID4+IEJhc2VsaW5lIFhEUF9EUk9Q OsKgwqDCoMKgwqDCoMKgwqAgMjUsNjc4LDI2MiBwcHMgLyAzOC45NCBucy9wa3QNCj4+PiA+PiA+ PiA+PiBYRFBfRFJPUCArIHJlYWQgbWV0YWRhdGE6wqAgMjMsOTI0LDEwOSBwcHMgLyA0MS44MCBu cy9wa3QNCj4+PiA+PiA+PiA+PiBPdmVyaGVhZDrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgMSw3NTQsMTUzIHBwcyAvwqAgMi44NiBucy9wa3QNCj4+PiA+PiA+PiA+Pg0KPj4+ ID4+ID4+ID4+IEFzIHBlciB0aGUgYWJvdmUsIHRoaXMgaXMgd2l0aCBjYWxsaW5nIHRocmVlIGtm dW5jcy9wa3QNCj4+PiA+PiA+PiA+PiAobWV0YWRhdGFfc3VwcG9ydGVkKCksIHJ4X2hhc2hfc3Vw cG9ydGVkKCkgYW5kIHJ4X2hhc2goKSkuIFNvIHRoYXQncw0KPj4+ID4+ID4+ID4+IH4wLjk1IG5z IHBlciBmdW5jdGlvbiBjYWxsLCB3aGljaCBpcyBhIGJpdCBsZXNzLCBidXQgbm90IGZhciBvZmYg ZnJvbQ0KPj4+ID4+ID4+ID4+IHRoZSB+MS4yIG5zIHRoYXQgSSdtIHVzZWQgdG8uIFRoZSB0ZXN0 cyB3aGVyZSBJIGFjY2lkZW50YWxseSBjYWxsZWQgdGhlDQo+Pj4gPj4gPj4gPj4gZGVmYXVsdCBr ZnVuY3MgY3V0IG9mZiB+MS4zIG5zIGZvciBvbmUgbGVzcyBrZnVuYyBjYWxsLCBzbyBpdCdzDQo+ Pj4gPj4gPj4gPj4gZGVmaW5pdGVseSBpbiB0aGF0IGJhbGxwYXJrLg0KPj4+ID4+ID4+ID4+DQo+ Pj4gPj4gPj4gPj4gSSdtIG5vdCBkb2luZyBhbnl0aGluZyB3aXRoIHRoZSBkYXRhLCBqdXN0IHJl YWRpbmcgaXQgaW50byBhbiBvbi1zdGFjaw0KPj4+ID4+ID4+ID4+IGJ1ZmZlciwgc28gdGhpcyBp cyB0aGUgc21hbGxlc3QgcG9zc2libGUgZGVsdGEgZnJvbSBqdXN0IGdldHRpbmcgdGhlDQo+Pj4g Pj4gPj4gPj4gZGF0YSBvdXQgb2YgdGhlIGRyaXZlci4gSSBkaWQgY29uZmlybSB0aGF0IHRoZSBj YWxsIGluc3RydWN0aW9ucyBhcmUNCj4+PiA+PiA+PiA+PiBzdGlsbCBpbiB0aGUgQlBGIHByb2dy YW0gYnl0ZWNvZGUgd2hlbiBpdCdzIGR1bXBlZCBiYWNrIG91dCBmcm9tIHRoZQ0KPj4+ID4+ID4+ ID4+IGtlcm5lbC4NCj4+PiA+PiA+PiA+Pg0KPj4+ID4+ID4+ID4+IC1Ub2tlDQo+Pj4gPj4gPj4g Pj4NCj4+PiA+PiA+PiA+DQo+Pj4gPj4gPj4gPiBPaCwgdGhhdCdzIGdyZWF0LCB0aGFua3MgZm9y IHJ1bm5pbmcgdGhlIG51bWJlcnMhIFdpbGwgZGVmaW5pdGVseQ0KPj4+ID4+ID4+ID4gcmVmZXJl bmNlIHRoZW0gaW4gdjQhDQo+Pj4gPj4gPj4gPiBQcmVzdW1hYmx5LCB3ZSBzaG91bGQgYmUgYWJs ZSB0byBhdCBsZWFzdCB1bnJvbGwgbW9zdCBvZiB0aGUNCj4+PiA+PiA+PiA+IF9zdXBwb3J0ZWQg Y2FsbGJhY2tzIGlmIHdlIHdhbnQsIHRoZXkgc2hvdWxkIGJlIHJlbGF0aXZlbHkgZWFzeTsgYnV0 DQo+Pj4gPj4gPj4gPiB0aGUgbnVtYmVycyBsb29rIGZpbmUgYXMgaXM/DQo+Pj4gPj4gPj4NCj4+ PiA+PiA+PiBXZWxsLCB0aGlzIGlzIGZvciBvbmUgKGFuZCBhIGhhbGYpIHBpZWNlIG9mIG1ldGFk YXRhLiBJZiB3ZSBleHRyYXBvbGF0ZQ0KPj4+ID4+ID4+IGl0IGFkZHMgdXAgcXVpY2tseS4gU2F5 IHdlIGFkZCBjc3VtIGFuZCB2bGFuIHRhZ3MsIHNheSwgYW5kIG1heWJlDQo+Pj4gPj4gPj4gYW5v dGhlciBjYWxsYmFjayB0byBnZXQgdGhlIHR5cGUgb2YgaGFzaCAobDMvbDQpLiBUaG9zZSB3b3Vs ZCBwcm9iYWJseQ0KPj4+ID4+ID4+IGJlIHJlbGV2YW50IGZvciBtb3N0IHBhY2tldHMgaW4gYSBm YWlybHkgY29tbW9uIHNldHVwLiBFeHRyYXBvbGF0aW5nDQo+Pj4gPj4gPj4gZnJvbSB0aGUgfjEg bnMvY2FsbCBmaWd1cmUsIHRoYXQncyA4IG5zL3BrdCwgd2hpY2ggaXMgMjAlIG9mIHRoZQ0KPj4+ ID4+ID4+IGJhc2VsaW5lIG9mIDM5IG5zLg0KPj4+ID4+ID4+DQo+Pj4gPj4gPj4gU28gaW4gdGhh dCBzZW5zZSBJIHN0aWxsIHRoaW5rIHVucm9sbGluZyBtYWtlcyBzZW5zZS4gQXQgbGVhc3QgZm9y IHRoZQ0KPj4+ID4+ID4+IF9zdXBwb3J0ZWQoKSBjYWxscywgYXMgZWF0aW5nIGEgd2hvbGUgZnVu Y3Rpb24gY2FsbCBqdXN0IGZvciB0aGF0IGlzDQo+Pj4gPj4gPj4gcHJvYmFibHkgYSBiaXQgbXVj aCAod2hpY2ggSSB0aGluayB3YXMgYWxzbyBKYWt1YidzIHBvaW50IGluIGEgc2libGluZw0KPj4+ ID4+ID4+IHRocmVhZCBzb21ld2hlcmUpLg0KPj4+ID4+ID4NCj4+PiA+PiA+IGltbyB0aGUgb3Zl cmhlYWQgaXMgdGlueSBlbm91Z2ggdGhhdCB3ZSBjYW4gd2FpdCB1bnRpbA0KPj4+ID4+ID4gZ2Vu ZXJpYyAna2Z1bmMgaW5saW5pbmcnIGluZnJhIGlzIHJlYWR5Lg0KPj4+ID4+ID4NCj4+PiA+PiA+ IFdlJ3JlIHBsYW5uaW5nIHRvIGR1YWwtY29tcGlsZSBzb21lX2tlcm5lbF9maWxlLmMNCj4+PiA+ PiA+IGludG8gbmF0aXZlIGFyY2ggYW5kIGludG8gYnBmIGFyY2guDQo+Pj4gPj4gPiBUaGVuIHRo ZSB2ZXJpZmllciB3aWxsIGF1dG9tYXRpY2FsbHkgaW5saW5lIGJwZiBhc20NCj4+PiA+PiA+IG9m IGNvcnJlc3BvbmRpbmcga2Z1bmMuDQo+Pj4gPj4NCj4+PiA+PiBJcyB0aGF0ICJwbGFubmluZyIg b3IgImFjdGl2ZWx5IHdvcmtpbmcgb24iPyBKdXN0IHRyeWluZyB0byBnZXQgYSBzZW5zZQ0KPj4+ ID4+IG9mIHRoZSB0aW1lIGZyYW1lcyBoZXJlLCBhcyB0aGlzIHNvdW5kcyBuZWF0LCBidXQgYWxz byBzb21ldGhpbmcgdGhhdA0KPj4+ID4+IGNvdWxkIHBvdGVudGlhbGx5IHJlcXVpcmUgcXVpdGUg YSBiaXQgb2YgZmlkZGxpbmcgd2l0aCB0aGUgYnVpbGQgc3lzdGVtDQo+Pj4gPj4gdG8gZ2V0IHRv IHdvcms/IDopDQo+Pj4gPg0KPj4+ID4gInBsYW5uaW5nIiwgYnV0IHJlZ2FyZGxlc3MgaG93IGxv bmcgaXQgdGFrZXMgSSdkIHJhdGhlciBub3QNCj4+PiA+IGFkZCBhbnkgbW9yZSB0ZWNoIGRlYnQg aW4gdGhlIGZvcm0gb2YgbWFudWFsIGJwZiBhc20gZ2VuZXJhdGlvbi4NCj4+PiA+IFdlIGhhdmUg dG9vIG11Y2ggb2YgaXQgYWxyZWFkeTogZ2VuX2xvb2t1cCwgY29udmVydF9jdHhfYWNjZXNzLCBl dGMuDQo+Pj4NCj4+PiBSaWdodCwgSSdtIG5vIGZhbiBvZiB0aGUgbWFudWFsIEFTTSBzdHVmZiBl aXRoZXIuIEhvd2V2ZXIsIGlmIHdlJ3JlDQo+Pj4gc3R1Y2sgd2l0aCB0aGUgZnVuY3Rpb24gY2Fs bCBvdmVyaGVhZCBmb3IgdGhlIGZvcmVzZWVhYmxlIGZ1dHVyZSwgbWF5YmUNCj4+PiB3ZSBzaG91 bGQgdGhpbmsgYWJvdXQgb3RoZXIgd2F5cyBvZiBjdXR0aW5nIGRvd24gdGhlIG51bWJlciBvZiBm dW5jdGlvbg0KPj4+IGNhbGxzIG5lZWRlZD8NCj4+Pg0KPj4+IE9uZSB0aGluZyBJIGNhbiB0aGlu ayBvZiBpcyB0byBnZXQgcmlkIG9mIHRoZSBpbmRpdmlkdWFsIF9zdXBwb3J0ZWQoKQ0KPj4+IGtm dW5jcyBhbmQgaW5zdGVhZCBoYXZlIGEgc2luZ2xlIG9uZSB0aGF0IGxldHMgeW91IHF1ZXJ5IG11 bHRpcGxlDQo+Pj4gZmVhdHVyZXMgYXQgb25jZSwgbGlrZToNCj4+Pg0KPj4+IF9fdTY0IGZlYXR1 cmVzX3N1cHBvcnRlZCwgZmVhdHVyZXNfd2FudGVkID0gWERQX01FVEFfUlhfSEFTSCB8IA0KPj4+ IFhEUF9NRVRBX1RJTUVTVEFNUDsNCj4+Pg0KPj4+IGZlYXR1cmVzX3N1cHBvcnRlZCA9IGJwZl94 ZHBfbWV0YWRhdGFfcXVlcnlfZmVhdHVyZXMoY3R4LCANCj4+PiBmZWF0dXJlc193YW50ZWQpOw0K Pj4+DQo+Pj4gaWYgKGZlYXR1cmVzX3N1cHBvcnRlZCAmIFhEUF9NRVRBX1JYX0hBU0gpDQo+Pj4g wqAgaGFzaCA9IGJwZl94ZHBfbWV0YWRhdGFfcnhfaGFzaChjdHgpOw0KPj4+DQo+Pj4gLi4uZXRj DQo+Pg0KPj4gSSdtIG5vdCB0b28gaGFwcHkgYWJvdXQgaGF2aW5nIHRoZSBiaXRtYXNrcyB0Ymgg Oi0oDQo+PiBJZiB3ZSB3YW50IHRvIGdldCByaWQgb2YgdGhlIGNvc3Qgb2YgdGhvc2UgX3N1cHBv cnRlZCBjYWxscywgbWF5YmUgd2UNCj4+IGNhbiBkbyBzb21lIGtpbmQgb2YgbGliYnBmLWxpa2Ug cHJvYmluZz8gVGhhdCB3b3VsZCByZXF1aXJlIGxvYWRpbmcgYQ0KPj4gcHJvZ3JhbSArIHdhaXRp bmcgZm9yIHNvbWUgcGFja2V0IHRob3VnaCA6LSgNCj4+DQo+PiBPciBtYXliZSB0aGV5IGNhbiBq dXN0IGJlIGNhY2hlZCBmb3Igbm93Pw0KPj4NCj4+IGlmICh1bmxpa2VseSghZ290X2ZpcnN0X3Bh Y2tldCkpIHsNCj4+IMKgaGF2ZV9oYXNoID0gYnBmX3hkcF9tZXRhZGF0YV9yeF9oYXNoX3N1cHBv cnRlZCgpOw0KPj4gwqBoYXZlX3RpbWVzdGFtcCA9IGJwZl94ZHBfbWV0YWRhdGFfcnhfdGltZXN0 YW1wX3N1cHBvcnRlZCgpOw0KPj4gwqBnb3RfZmlyc3RfcGFja2V0ID0gdHJ1ZTsNCj4+IH0NCj4g DQo+IGhhc2gvdGltZXN0YXAvY3N1bSBpcyBwZXIgcGFja2V0IC4uIHZsYW4gYXMgd2VsbCBkZXBl bmRpbmcgaG93IHlvdSBsb29rIGF0DQo+IGl0Li4NCg0KVHJ1ZSwgd2UgY2Fubm90IGNhY2hlIHRo aXMgYXMgaXQgaXMgKnBlciBwYWNrZXQqIGluZm8uDQoNCj4gU29ycnkgSSBoYXZlbid0IGJlZW4g Zm9sbG93aW5nIHRoZSBwcm9ncmVzcyBvZiB4ZHAgbWV0YSBkYXRhLCBidXQgd2h5IGRpZA0KPiB3 ZSBkcm9wIHRoZSBpZGVhIG9mIGJ0ZiBhbmQgZHJpdmVyIGNvcHlpbmcgbWV0ZGF0YSBpbiBmcm9u dCBvZiB0aGUgeGRwDQo+IGZyYW1lID8NCj4gDQoNCkl0IHRvb2sgbWUgc29tZSB0aW1lIHRvIHVu ZGVyc3RhbmQgdGhpcyBuZXcgYXBwcm9hY2gsIGFuZCB3aHkgaXQgbWFrZXMNCnNlbnNlLiAgVGhp cyBpcyBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBkZXNpZ24gZGlyZWN0aW9uIGNoYW5nZToNCg0K VGhpcyBhcHByb2FjaCBnaXZlcyBtb3JlIGNvbnRyb2wgdG8gdGhlIFhEUCBCUEYtcHJvZyB0byBw aWNrIGFuZCBjaG9vc2UNCndoaWNoIFhEUCBoaW50cyBhcmUgcmVsZXZhbnQgZm9yIHRoZSBzcGVj aWZpYyB1c2UtY2FzZS4gIEJQRi1wcm9nIGNhbg0KYWxzbyBza2lwIHN0b3JpbmcgaGludHMgYW55 d2hlcmUgYW5kIGp1c3QgcmVhZCtyZWFjdCBvbiB2YWx1ZSAodGhhdCBlLmcuDQpjb21lcyBmcm9t IFJYLWRlc2MpLg0KDQpGb3IgdGhlIHVzZS1jYXNlcyByZWRpcmVjdCwgQUZfWERQLCBjaGFpbmVk IEJQRi1wcm9ncywgWERQLXRvLVRDLA0KU0tCLWNyZWF0aW9uLCB3ZSAqZG8qIG5lZWQgdG8gc3Rv cmUgaGludHMgc29tZXdoZXJlLCBhcyBSWC1kZXNjIHdpbGwgYmUNCm91dC1vZi1zY29wZS4gIEkg dGhpcyBwYXRjaHNldCBoYW5kLXdhdmVzIGFuZCBzYXlzIEJQRi1wcm9nIGNhbiBqdXN0DQptYW51 YWxseSBzdG9yZSB0aGlzIGluIGEgcHJvZyBjdXN0b20gbGF5b3V0IGluIG1ldGFkYXRhIGFyZWEu ICBJJ20gbm90DQpzdXBlciBoYXBweSB3aXRoIGlnbm9yaW5nL2hhbmQtd2F2aW5nIGFsbCB0aGVz ZSB1c2UtY2FzZSwgYnV0IEkNCmhvcGUvdGhpbmsgd2UgbGF0ZXIgY2FuIGV4dGVuZCB0aGlzIHNv bWUgbW9yZSBzdHJ1Y3R1cmUgdG8gc3VwcG9ydCB0aGVzZQ0KdXNlLWNhc2VzIGJldHRlciAod2l0 aCB0aGlzIHBhdGNoc2V0IGFzIGEgZm91bmRhdGlvbikuDQoNCkkgYWN0dWFsbHkgbGlrZSB0aGlz IGtmdW5jIGRlc2lnbiwgYmVjYXVzZSB0aGUgQlBGLXByb2cncyBnZXQgYW4NCmludHVpdGl2ZSBB UEksIGFuZCBvbiBkcml2ZXIgc2lkZSB3ZSBjYW4gaGlkZSB0aGUgZGV0YWlscyBvZiBob3d0bw0K ZXh0cmFjdCB0aGUgSFcgaGludHMuDQoNCg0KPiBob3BlZnVsbHkgZnV0dXJlIEhXIGdlbmVyYXRp b25zIHdpbGwgZG8gdGhhdCBmb3IgZnJlZSAuLg0KDQpUcnVlLiAgSSB0aGluayBpdCBpcyB3b3J0 aCByZXBlYXRpbmcsIHRoYXQgdGhlIGFwcHJvYWNoIG9mIHN0b3JpbmcgSFcNCmhpbnRzIGluIG1l dGFkYXRhIGFyZWEgKGluLWZyb250IG9mIHBhY2tldCBkYXRhKSB3YXMgdG8gYWxsb3cgZnV0dXJl IEhXDQpnZW5lcmF0aW9ucyB0byB3cml0ZSB0aGlzLiAgVGh1cywgZWxpbWluYXRpbmcgdGhlIDYg bnMgKHRoYXQgSSBzaG93ZWQgaXQNCmNvc3QpLCBhbmQgdGhlbiBpdCB3b3VsZCBiZSB1cC10byBY RFAgQlBGLXByb2cgdG8gcGljayBhbmQgY2hvb3NlIHdoaWNoDQp0byByZWFkLCBsaWtlIHRoaXMg cGF0Y2hzZXQgYWxyZWFkeSBvZmZlcnMuDQoNClRoaXMgcGF0Y2hzZXQgaXNuJ3QgaW5jb21wYXRp YmxlIHdpdGggZnV0dXJlIEhXIGdlbmVyYXRpb25zIGRvaW5nIHRoaXMsDQphcyB0aGUga2Z1bmMg d291bGQgaGlkZSB0aGUgZGV0YWlscyBhbmQgcG9pbnQgdG8gdGhpcyBhcmVhIGluc3RlYWQgb2YN CnRoZSBSWC1kZXNjLiAgV2hpbGUgd2UgZ2V0IHRoZSAic3RvcmUgZm9yIGZyZWUiIGZyb20gaGFy ZHdhcmUsIEkgZG8NCndvcnJ5IHRoYXQgcmVhZGluZyB0aGlzIG1lbW9yeSBhcmVhICh3aGljaCB3 aWxsIHBhcnQgb2YgRE1BIGFyZWEpIGlzDQpnb2luZyB0byBiZSBzbG93ZXIgdGhhbiByZWFkaW5n IGZyb20gUlgtZGVzYy4NCg0KPiBpZiBidGYgaXMgdGhlIHByb2JsZW0gdGhlbiBlYWNoIHZlbmRv ciBjYW4gcHJvdmlkZSBhIGJwZiBmdW5jKHMpIHRoYXQgd291bGQNCj4gcGFyc2UgdGhlIG1ldGRh dGEgaW5zaWRlIG9mIHRoZSB4ZHAvYnBmIHByb2cgZG9tYWluIHRvIGhlbHAgcHJvZ3JhbXMNCj4g ZXh0cmFjdCB0aGUgdmVuZG9yIHNwZWNpZmljIGRhdGEuLg0KPiANCg0KSW4gc29tZSBzZW5zZSwg aWYgdW5yb2xsIHdpbGwgYmVjb21lcyBhIHRoaW5nLCB0aGVuIHRoaXMgcGF0Y2hzZXQgaXMNCnBh cnRseSBkb2luZyB0aGlzLg0KDQpJIGRpZCBpbWFnaW5lIHRoYXQgYWZ0ZXIvZm9sbG93dXAgb24g WERQLWhpbnRzIHdpdGggQlRGIHBhdGNoc2V0LCB3ZQ0Kd291bGQgYWxsb3cgZHJpdmVycyB0byBs b2FkIGFuIEJQRi1wcm9nIHRoYXQgY2hhbmdlZC9zZWxlY3RlZCB3aGljaCBIVw0KaGludHMgd2Vy ZSByZWxldmFudCwgdG8gcmVkdWNlIHRob3NlIDYgbnMgb3ZlcmhlYWQgd2UgaW50cm9kdWNlZC4N Cg0KLS1KZXNwZXINCg0K