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 3D56E9B1F6E for ; Wed, 2 Nov 2022 15:06:49 +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=L8940OQW DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1667398008; 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=2jf4Id8JS47B7k+3UyTqzVbwapS6kaSdZwlME3DJWj8=; b=L8940OQWXB6qN95r/4MvPu6QCXCRNGOFxhpqeAV+Mpk46c8gCh4+ahbLrKzSfd4v76yPVE t/WkgC7Kz2Ta3i4zcXCuARCOhNg7V91i35pkJvet75SYrRVWfvqwFAOc/MbUZPLj+BKtdX R/J/jHsetQ8SZZwe4cCLo1r5J+60b4M= Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-339-l-BC69-YNringg7aSphSxg-1; Wed, 02 Nov 2022 10:06:45 -0400 X-MC-Unique: l-BC69-YNringg7aSphSxg-1 Received: by mail-ej1-f72.google.com with SMTP id ga26-20020a1709070c1a00b007ad4a55d6e1so9791106ejc.6 for ; Wed, 02 Nov 2022 07:06:45 -0700 (PDT) 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=2jf4Id8JS47B7k+3UyTqzVbwapS6kaSdZwlME3DJWj8=; b=n/+df/sNGz+lcG5xfzoVtRVez3RTvDXeQtKSAPGiliLHoternkgXnMDh6CGd0WFl+9 9liVqLD/e7YGKBoF6U2Wa6Dhuo46Y5e1c91BcAgNpqYMsXRxOyoyma2+jtdoxl4qXpQo awZkuJscR44RQzQqYgzOYatCzR5BJpf4lyzGXNBHdxeBnk8HFmE0X1n41G9KrYIyYhZ1 XDrPqwQ5N7P+mO2FF/1yCRVw90sOfKlRq7JVqts2sj7TQ1lxvKoX1dVB0b35LsbnIkas C9qKD65nlKxcn7ALgZxUt+OcrNNVJ5TtYah7xsRa0uIYvxX79sOTTO8PCgw7k9frsi/X 06PA== X-Gm-Message-State: ACrzQf2Z4TSMBO1EkOILsiBD8haMBLYFKRNNohQ33dtR/x9mk2jc8Avo DWhI7eeXsmlUHXLdu4l63AuTLK+50M/AL3/kJm1j+hmzPhCZJ7Q/5HX0rd0FZgk5Y02fJn4eoxa gzXuxBPgkKL07mnZnHbcF X-Received: by 2002:a17:906:eecb:b0:73c:5bcb:8eb3 with SMTP id wu11-20020a170906eecb00b0073c5bcb8eb3mr24267395ejb.284.1667398004330; Wed, 02 Nov 2022 07:06:44 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4Tj2FaxU3roPtMp95VNAskvSpB86ZGmAP7J3JbRyK9bWHjEuushbYOKSfv/6bTQnP1PveiZw== X-Received: by 2002:a17:906:eecb:b0:73c:5bcb:8eb3 with SMTP id wu11-20020a170906eecb00b0073c5bcb8eb3mr24267358ejb.284.1667398004086; Wed, 02 Nov 2022 07:06:44 -0700 (PDT) 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 f14-20020a056402150e00b004610899742asm5799369edw.13.2022.11.02.07.06.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 02 Nov 2022 07:06:43 -0700 (PDT) From: Jesper Dangaard Brouer X-Google-Original-From: Jesper Dangaard Brouer Message-ID: <48ba6e77-1695-50b3-b27f-e82750ee70bb@redhat.com> Date: Wed, 2 Nov 2022 15:06:41 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 To: Martin KaFai Lau , Stanislav Fomichev References: <20221027200019.4106375-1-sdf@google.com> <635bfc1a7c351_256e2082f@john.notmuch> <20221028110457.0ba53d8b@kernel.org> <635c62c12652d_b1ba208d0@john.notmuch> <20221028181431.05173968@kernel.org> <5aeda7f6bb26b20cb74ef21ae9c28ac91d57fae6.camel@siemens.com> <875yg057x1.fsf@toke.dk> <77b115a0-bbba-48eb-89bd-3078b5fb7eeb@linux.dev> <0c00ba33-f37b-dfe6-7980-45920ffa273b@linux.dev> In-Reply-To: <0c00ba33-f37b-dfe6-7980-45920ffa273b@linux.dev> 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: OFJR24DEOL4XVE3MQUN5ZLR6FDHXUYZQ X-Message-ID-Hash: OFJR24DEOL4XVE3MQUN5ZLR6FDHXUYZQ 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, "Bezdeka, Florian" , "kuba@kernel.org" , "john.fastabend@gmail.com" , "alexandr.lobakin@intel.com" , "anatoly.burakov@intel.com" , "song@kernel.org" , "Deric, Nemanja" , "andrii@kernel.org" , "Kiszka, Jan" , "magnus.karlsson@gmail.com" , "willemb@google.com" , "ast@kernel.org" , "yhs@fb.com" , "kpsingh@kernel.org" , "daniel@iogearbox.net" , "bpf@vger.kernel.org" , "mtahhan@redhat.com" , "xdp-hints@xdp-project.net" , "netdev@vger.kernel.org" , "jolsa@kernel.org" , "haoluo@google.com" , Toke Hoiland Jorgensen X-Mailman-Version: 3.3.5 Precedence: list Subject: [xdp-hints] Re: [RFC bpf-next 0/5] xdp: hints via kfuncs List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQoNCk9uIDAxLzExLzIwMjIgMTguMDUsIE1hcnRpbiBLYUZhaSBMYXUgd3JvdGU6DQo+IE9uIDEw LzMxLzIyIDY6NTkgUE0sIFN0YW5pc2xhdiBGb21pY2hldiB3cm90ZToNCj4+IE9uIE1vbiwgT2N0 IDMxLCAyMDIyIGF0IDM6NTcgUE0gTWFydGluIEthRmFpIExhdSANCj4+IDxtYXJ0aW4ubGF1QGxp bnV4LmRldj4gd3JvdGU6DQo+Pj4NCj4+PiBPbiAxMC8zMS8yMiAxMDowMCBBTSwgU3RhbmlzbGF2 IEZvbWljaGV2IHdyb3RlOg0KPj4+Pj4gMi4gQUZfWERQIHByb2dyYW1zIHdvbid0IGJlIGFibGUg dG8gYWNjZXNzIHRoZSBtZXRhZGF0YSB3aXRob3V0IA0KPj4+Pj4gdXNpbmcgYQ0KPj4+Pj4gY3Vz dG9tIFhEUCBwcm9ncmFtIHRoYXQgY2FsbHMgdGhlIGtmdW5jcyBhbmQgcHV0cyB0aGUgZGF0YSBp bnRvIHRoZQ0KPj4+Pj4gbWV0YWRhdGEgYXJlYS4gV2UgY291bGQgc29sdmUgdGhpcyB3aXRoIHNv bWUgY29kZSBpbiBsaWJ4ZHAsIA0KPj4+Pj4gdGhvdWdoOyBpZg0KPj4+Pj4gdGhpcyBjb2RlIGNh biBiZSBtYWRlIGdlbmVyaWMgZW5vdWdoIChzbyBpdCBqdXN0IGR1bXBzIHRoZSBhdmFpbGFibGUN Cj4+Pj4+IG1ldGFkYXRhIGZ1bmN0aW9ucyBmcm9tIHRoZSBydW5uaW5nIGtlcm5lbCBhdCBsb2Fk IHRpbWUpLCBpdCBtYXkgYmUNCj4+Pj4+IHBvc3NpYmxlIHRvIG1ha2UgaXQgZ2VuZXJpYyBlbm91 Z2ggdGhhdCBpdCB3aWxsIGJlIGZvcndhcmQtY29tcGF0aWJsZQ0KPj4+Pj4gd2l0aCBuZXcgdmVy c2lvbnMgb2YgdGhlIGtlcm5lbCB0aGF0IGFkZCBuZXcgZmllbGRzLCB3aGljaCBzaG91bGQNCj4+ Pj4+IGFsbGV2aWF0ZSBGbG9yaWFuJ3MgY29uY2VybiBhYm91dCBrZWVwaW5nIHRoaW5ncyBpbiBz eW5jLg0KPj4+Pg0KPj4+PiBHb29kIHBvaW50LiBJIGhhZCB0byBjb252ZXJ0IHRvIGEgY3VzdG9t IHByb2dyYW0gdG8gdXNlIHRoZSBrZnVuY3MgOi0oDQo+Pj4+IEJ1dCB5b3VyIHN1Z2dlc3Rpb24g c291bmRzIGdvb2Q7IG1heWJlIGxpYnhkcCBjYW4gYWNjZXB0IHNvbWUgZXh0cmENCj4+Pj4gaW5m byBhYm91dCBhdCB3aGljaCBvZmZzZXQgdGhlIHVzZXIgd291bGQgbGlrZSB0byBwbGFjZSB0aGUg bWV0YWRhdGENCj4+Pj4gYW5kIHRoZSBsaWJyYXJ5IGNhbiBnZW5lcmF0ZSB0aGUgcmVxdWlyZWQg Ynl0ZWNvZGU/DQo+Pj4+DQo+Pj4+PiAzLiBJdCB3aWxsIG1ha2UgaXQgaGFyZGVyIHRvIGNvbnN1 bWUgdGhlIG1ldGFkYXRhIHdoZW4gYnVpbGRpbmcgDQo+Pj4+PiBTS0JzLiBJDQo+Pj4+PiB0aGlu ayB0aGUgQ1BVTUFQIGFuZCB2ZXRoIHVzZSBjYXNlcyBhcmUgYWxzbyBxdWl0ZSBpbXBvcnRhbnQs IGFuZCB0aGF0DQo+Pj4+PiB3ZSB3YW50IG1ldGFkYXRhIHRvIGJlIGF2YWlsYWJsZSBmb3IgYnVp bGRpbmcgU0tCcyBpbiB0aGlzIHBhdGguIE1heWJlDQo+Pj4+PiB0aGlzIGNhbiBiZSByZXNvbHZl ZCBieSBoYXZpbmcgYSBjb252ZW5pZW50IGtmdW5jIGZvciB0aGlzIHRoYXQgY2FuIGJlDQo+Pj4+ PiB1c2VkIGZvciBwcm9ncmFtcyBkb2luZyBzdWNoIHJlZGlyZWN0cy4gRS5nLiwgeW91IGNvdWxk IGp1c3QgY2FsbA0KPj4+Pj4geGRwX2NvcHlfbWV0YWRhdGFfZm9yX3NrYigpIGJlZm9yZSBkb2lu ZyB0aGUgYnBmX3JlZGlyZWN0LCBhbmQgdGhhdA0KPj4+Pj4gd291bGQgcmVjdXJzaXZlbHkgZXhw YW5kIGludG8gYWxsIHRoZSBrZnVuYyBjYWxscyBuZWVkZWQgdG8gZXh0cmFjdCANCj4+Pj4+IHRo ZQ0KPj4+Pj4gbWV0YWRhdGEgc3VwcG9ydGVkIGJ5IHRoZSBTS0IgcGF0aD8NCj4+Pj4NCj4+Pj4g U28gdGhpcyB4ZHBfY29weV9tZXRhZGF0YV9mb3Jfc2tiIHdpbGwgY3JlYXRlIGEgbWV0YWRhdGEg bGF5b3V0IHRoYXQNCj4+Pg0KPj4+IENhbiB0aGUgeGRwX2NvcHlfbWV0YWRhdGFfZm9yX3NrYiBi ZSB3cml0dGVuIGFzIGEgYnBmIHByb2cgaXRzZWxmPw0KPj4+IE5vdCBzdXJlIHdoZXJlIGlzIHRo ZSBiZXN0IHBvaW50IHRvIHNwZWNpZnkgdGhpcyBwcm9nIHRob3VnaC4gIA0KPj4+IFNvbWVob3cg ZHVyaW5nDQo+Pj4gYnBmX3hkcF9yZWRpcmVjdF9tYXA/DQo+Pj4gb3IgdGhpcyBwcm9nIGJlbG9u Z3MgdG8gdGhlIHRhcmdldCBjcHVtYXAgYW5kIHRoZSB4ZHAgcHJvZyANCj4+PiByZWRpcmVjdGlu ZyB0byB0aGlzDQo+Pj4gY3B1bWFwIGhhcyB0byB3cml0ZSB0aGUgbWV0YSBsYXlvdXQgaW4gYSB3 YXkgdGhhdCB0aGUgY3B1bWFwIGlzIA0KPj4+IGV4cGVjdGluZz8NCj4+DQo+PiBXZSdyZSBwcm9i YWJseSBpbnRlcmVzdGVkIGluIHRyaWdnZXJpbmcgaXQgZnJvbSB0aGUgcGxhY2VzIHdoZXJlIHhk cA0KPj4gZnJhbWVzIGNhbiBldmVudHVhbGx5IGJlIGNvbnZlcnRlZCBpbnRvIHNrYnM/DQo+PiBT byBmb3IgcGxhaW4gJ3JldHVybiBYRFBfUEFTUycgYW5kIHRoaW5ncyBsaWtlIGJwZl9yZWRpcmVj dC9ldGM/IChJT1csDQo+PiBhbnl0aGluZyB0aGF0J3Mgbm90IFhEUF9EUk9QIC8gQUZfWERQIHJl ZGlyZWN0KS4NCj4+IFdlIGNhbiBwcm9iYWJseSBtYWtlIGl0IG1hZ2ljYWxseSB3b3JrLCBhbmQg Y2FuIGdlbmVyYXRlDQo+PiBrZXJuZWwtZGlnZXN0aWJsZSBtZXRhZGF0YSB3aGVuZXZlciBkYXRh ID09IGRhdGFfbWV0YSwgYnV0IHRoZQ0KPj4gcXVlc3Rpb24gLSBzaG91bGQgd2U/DQo+PiAobmVl ZCB0byBtYWtlIHN1cmUgd2Ugd29uJ3QgcmVncmVzcyBhbnkgZXhpc3RpbmcgY2FzZXMgdGhhdCBh cmUgbm90DQo+PiByZWx5aW5nIG9uIHRoZSBtZXRhZGF0YSkNCj4gDQo+IEluc3RlYWQgb2YgaGF2 aW5nIHNvbWUga2VybmVsLWRpZ2VzdGlibGUgbWV0YSBkYXRhLCBob3cgYWJvdXQgY2FsbGluZyAN Cj4gYW5vdGhlciBicGYgcHJvZyB0byBpbml0aWFsaXplIHRoZSBza2IgZmllbGRzIGZyb20gdGhl IG1ldGEgYXJlYSBhZnRlciANCj4gX194ZHBfYnVpbGRfc2tiX2Zyb21fZnJhbWUoKSBpbiB0aGUg Y3B1bWFwLCBzbyANCj4gcnVuX3hkcF9zZXRfc2tiX2ZpbGVkc19mcm9tX21ldGFkYXRhKCkgbWF5 IGJlIGEgYmV0dGVyIG5hbWUuDQo+IA0KDQpJIHZlcnkgbXVjaCBsaWtlIHRoaXMgaWRlYSBvZiBj YWxsaW5nIGFub3RoZXIgYnBmIHByb2cgdG8gaW5pdGlhbGl6ZSB0aGUNClNLQiBmaWVsZHMgZnJv bSB0aGUgbWV0YSBhcmVhLiAoQXMgYSByZW1pbmRlciwgZGF0YSBuZWVkIHRvIGNvbWUgZnJvbQ0K bWV0YSBhcmVhLCBiZWNhdXNlIGF0IHRoaXMgcG9pbnQgdGhlIGhhcmR3YXJlIFJYLWRlc2MgaXMg b3V0LW9mLXNjb3BlKS4NCkknbSBvbmJvYXJkIHdpdGggeGRwX2NvcHlfbWV0YWRhdGFfZm9yX3Nr YigpIHBvcHVsYXRpbmcgdGhlIG1ldGEgYXJlYS4NCg0KV2UgY291bGQgaW52b2tlIHRoaXMgQlBG LXByb2cgaW5zaWRlIF9feGRwX2J1aWxkX3NrYl9mcm9tX2ZyYW1lKCkuDQoNCldlIG1pZ2h0IG5l ZWQgYSBuZXcgQlBGX1BST0dfVFlQRV9YRFAyU0tCIGFzIHRoaXMgbmV3IEJQRi1wcm9nDQpydW5f eGRwX3NldF9za2JfZmllbGRzX2Zyb21fbWV0YWRhdGEoKSB3b3VsZCBuZWVkIGJvdGggeGRwX2J1 ZmYgKyBTS0IgYXMNCmNvbnRleHQgaW5wdXRzLiBSaWdodD8gIChOb3Qgc3VyZSwgaWYgdGhpcyBp cyBhY2NlcHRhYmxlIHdpdGggdGhlIEJQRg0KbWFpbnRhaW5lcnMgbmV3IHJ1bGVzKQ0KDQo+IFRo ZSB4ZHBfcHJvZ0ByeCBzZXRzIHRoZSBtZXRhIGRhdGEgYW5kIHRoZW4gcmVkaXJlY3QuwqAgSWYg dGhlIA0KPiB4ZHBfcHJvZ0ByeCBjYW4gYWxzbyBzcGVjaWZ5IGEgeGRwIHByb2cgdG8gaW5pdGlh bGl6ZSB0aGUgc2tiIGZpZWxkcyANCj4gZnJvbSB0aGUgbWV0YSBhcmVhLCB0aGVuIHRoZXJlIGlz IG5vIG5lZWQgdG8gaGF2ZSBhIGtmdW5jIHRvIGVuZm9yY2UgYSANCj4ga2VybmVsLWRpZ2VzdGli bGUgbGF5b3V0LsKgIE5vdCBzdXJlIHdoYXQgaXMgYSBnb29kIHdheSB0byBzcGVjaWZ5IHRoaXMg DQo+IHhkcF9wcm9nIHRob3VnaC4uLg0KDQpUaGUgY2hhbGxlbmdlIG9mIHJ1bm5pbmcgdGhpcyAo QlBGX1BST0dfVFlQRV9YRFAyU0tCKSBCUEYtcHJvZyBpbnNpZGUNCl9feGRwX2J1aWxkX3NrYl9m cm9tX2ZyYW1lKCkgaXMgdGhhdCBpdCBuZWVkIHRvIGtub3cgaG93dG8gZGVjb2RlIHRoZQ0KbWV0 YSBhcmVhIGZvciBldmVyeSBkZXZpY2UgZHJpdmVyIG9yIFhEUC1wcm9nIHBvcHVsYXRpbmcgdGhp cyAoYXMgdmV0aA0KYW5kIGNwdW1hcCBjYW4gZ2V0IHJlZGlyZWN0ZWQgcGFja2V0cyBmcm9tIG11 bHRpcGxlIGRldmljZSBkcml2ZXJzKS4NClN1cmUsIHVzaW5nIGEgY29tbW9uIGZ1bmN0aW9uL2hl bHBlci9tYWNybyBsaWtlDQp4ZHBfY29weV9tZXRhZGF0YV9mb3Jfc2tiKCkgY291bGQgaGVscCBy ZWR1Y2UgdGhpcyBtdWx0aXBsZXhpbmcsIGJ1dCB3ZQ0Kd2FudCB0byBoYXZlIG1heGltdW0gZmxl eGliaWxpdHkgdG8gZXh0ZW5kIHRoaXMgd2l0aG91dCBoYXZpbmcgdG8gdXBkYXRlDQp0aGUga2Vy bmVsLCByaWdodC4NCg0KRm9ydHVuYXRlbHkgX194ZHBfYnVpbGRfc2tiX2Zyb21fZnJhbWUoKSBo YXZlIGEgbmV0X2RldmljZSBwYXJhbWV0ZXIsDQp0aGF0IHBvaW50cyB0byB0aGUgZGV2aWNlIGlz IHdhcyByZWNlaXZlZCBvbiAoeGRwX2ZyYW1lLT5kZXZfcngpLg0KVGh1cywgd2UgY291bGQgZXh0 ZW5kIG5ldF9kZXZpY2UgYW5kIGFkZCB0aGlzIEJQRi1wcm9nIG9uIGEgcGVyDQpuZXRfZGV2aWNl IGJhc2lzLiAgVGhpcyBjb3VsZCBmdW5jdGlvbiBhcyBhIGRyaXZlciBCUEYtcHJvZyBjYWxsYmFj aw0KdGhhdCBwb3B1bGF0ZXMgdGhlIFNLQiBmaWVsZHMgZnJvbSB0aGUgWERQIG1ldGEgZGF0YS4N CklzIHRoaXMgYSBnb29kIG9yIGJhZCBpZGVhPw0KDQoNCj4+Pj4gdGhlIGtlcm5lbCB3aWxsIGJl IGFibGUgdG8gdW5kZXJzdGFuZCB3aGVuIGNvbnZlcnRpbmcgYmFjayB0byBza2I/DQo+Pj4+IElJ VUMsIHRoZSB4ZHAgcHJvZ3JhbSB3aWxsIGxvb2sgc29tZXRoaW5nIGxpa2UgdGhlIGZvbGxvd2lu ZzoNCj4+Pj4NCj4+Pj4gaWYgKHhkcCBwYWNrZXQgaXMgdG8gYmUgY29uc3VtZWQgYnkgYWZfeGRw KSB7DQo+Pj4+IMKgwqDCoCAvLyBkbyBhIGJ1bmNoIG9mIGJwZl94ZHBfbWV0YWRhdGFfPG1ldGFk YXRhPiBjYWxscyBhbmQgYXNzZW1ibGUgDQo+Pj4+IHlvdXINCj4+Pj4gb3duIG1ldGFkYXRhIGxh eW91dA0KPj4+PiDCoMKgwqAgcmV0dXJuIGJwZl9yZWRpcmVjdF9tYXAoeHNrLCAuLi4pOw0KPj4+ PiB9IGVsc2Ugew0KPj4+PiDCoMKgwqAgLy8gaWYgdGhlIHBhY2tldCBpcyB0byBiZSBjb25zdW1l ZCBieSB0aGUga2VybmVsDQo+Pj4+IMKgwqDCoCB4ZHBfY29weV9tZXRhZGF0YV9mb3Jfc2tiKGN0 eCk7DQo+Pj4+IMKgwqDCoCByZXR1cm4gYnBmX3JlZGlyZWN0KC4uLik7DQo+Pj4+IH0NCj4+Pj4N Cj4+Pj4gU291bmRzIGxpa2UgYSBncmVhdCBzdWdnZXN0aW9uISB4ZHBfY29weV9tZXRhZGF0YV9m b3Jfc2tiIGNhbiBtYXliZQ0KPj4+PiBwdXQgc29tZSBtYWdpYyBudW1iZXIgaW4gdGhlIGZpcnN0 IGJ5dGUocykgb2YgdGhlIG1ldGFkYXRhIHNvIHRoZQ0KPj4+PiBrZXJuZWwgY2FuIGNoZWNrIHdo ZXRoZXIgeGRwX2NvcHlfbWV0YWRhdGFfZm9yX3NrYiBoYXMgYmVlbiBjYWxsZWQNCj4+Pj4gcHJl dmlvdXNseSAob3IgbWF5YmUgeGRwX2ZyYW1lIGNhbiBjYXJyeSB0aGlzIGV4dHJhIHNpZ25hbCwg aWRrKS4NCg0KSSdtIGluIGZhdm9yIG9mIGFkZGluZyBhIGZsYWcgYml0IHRvIHhkcF9mcmFtZSB0 byBzaWduYWwgdGhpcy4NCkluIF9feGRwX2J1aWxkX3NrYl9mcm9tX2ZyYW1lKCkgd2UgY291bGQg Y2hlY2sgdGhpcyBmbGFnIHNpZ25hbCBhbmQgdGhlbg0KaW52b2tlIHRoZSBCUEYtcHJvZyB0eXBl IEJQRl9QUk9HX1RZUEVfWERQMlNLQi4NCg0KLS1KZXNwZXINCg0K