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.133.124]) by mail.toke.dk (Postfix) with ESMTPS id AA83499E8A4 for ; Fri, 9 Sep 2022 16:13:59 +0200 (CEST) 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=XouuKGyw DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1662732838; 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=Xk32t8ThwwHLTdGdpwN3jqOuQlPi1iyqPkh3M3TzE+U=; b=XouuKGywlHq4FFJrTpJvtKJN8eoT091J76ZZoKoOucfHpVRR/D8roRxIRFvd9pAUBxMqR7 VJHAgcD0WyIBBuAHlkeROPnyrPsRKqVd+8xuPb8ZpmZQWb0mBCDwy/te1zUzkD587gpreL gaddVL/7G/9wmmf2VC+Yr8FwjqgH2LE= Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-578-NFfXAclFPU6LwN1oG2VxIQ-1; Fri, 09 Sep 2022 10:13:57 -0400 X-MC-Unique: NFfXAclFPU6LwN1oG2VxIQ-1 Received: by mail-ej1-f69.google.com with SMTP id sh44-20020a1709076eac00b00741a01e2aafso1101701ejc.22 for ; Fri, 09 Sep 2022 07:13:56 -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; bh=Xk32t8ThwwHLTdGdpwN3jqOuQlPi1iyqPkh3M3TzE+U=; b=Vjgbq7dxzwKzbaqQD6Ot5G5PYdGL8sbaYp/XqFifOZGoYSEADzB8LsK8OF5Y6bhcfP O7znKtDd5yKo4v+mugmGiapy4lPx9fP6Gy7cSIhrxF29m7R+Dxi+qeLorEfa9kR35o6c aqnQ6ENkcCKg3gPeXbC3aeAZScGPmlg+VQeywHzpMQlzZVBd3TE7y/u695x0qj9JKdcQ 8KDwNUp+pNcnlN4p/3NjPZP58kXHqFqg/zz7YjZqETWS16v9ZOIiQgdaBABwCUPuq2hw M2EDeLitjFNAbCamYIi8vP2ZJQDNZxQx6W5Cq77g3und0yMK1Wt4hf5GwoeqdnisNNkn KPCQ== X-Gm-Message-State: ACgBeo2/aw9CVbSYQ8VIjUzWC/7Afc2TJu8Awub2toLsnt4oTg3Con4u 1udoFB4mk9YncvFzACvE10zN9qUV8JGzj3rpFVYEzsaCe9o/tJf8ZdUsh2kyWsYEoSfXIro2WWB xt5q3htygmeYRTLu8L2V4 X-Received: by 2002:a17:907:2da6:b0:73d:d587:6213 with SMTP id gt38-20020a1709072da600b0073dd5876213mr10104240ejc.5.1662732835960; Fri, 09 Sep 2022 07:13:55 -0700 (PDT) X-Google-Smtp-Source: AA6agR4EY90EagVDvuKxXzjyal5aWEq+43WPQ4My0vxpoU99rwNuKuJYIARjTDUjajUYtM6uM0Hqsw== X-Received: by 2002:a17:907:2da6:b0:73d:d587:6213 with SMTP id gt38-20020a1709072da600b0073dd5876213mr10104207ejc.5.1662732835573; Fri, 09 Sep 2022 07:13:55 -0700 (PDT) Received: from [192.168.41.81] (83-90-141-187-cable.dk.customer.tdc.net. [83.90.141.187]) by smtp.gmail.com with ESMTPSA id r7-20020a056402018700b0044e96f11359sm473025edv.3.2022.09.09.07.13.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 09 Sep 2022 07:13:54 -0700 (PDT) From: Jesper Dangaard Brouer X-Google-Original-From: Jesper Dangaard Brouer Message-ID: <74a68399-35b2-c0f2-92cb-236a0773837e@redhat.com> Date: Fri, 9 Sep 2022 16:13:53 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 To: "Burakov, Anatoly" , bpf@vger.kernel.org References: <166256538687.1434226.15760041133601409770.stgit@firesoul> <166256552083.1434226.577215984964402996.stgit@firesoul> 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: 6QEVM754DQVVYRR3VBJSX5GUALYFIMG2 X-Message-ID-Hash: 6QEVM754DQVVYRR3VBJSX5GUALYFIMG2 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, netdev@vger.kernel.org, xdp-hints@xdp-project.net, larysa.zaremba@intel.com, memxor@gmail.com, Lorenzo Bianconi , mtahhan@redhat.com, Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , dave@dtucker.co.uk, Magnus Karlsson , bjorn@kernel.org, Alexander Lobakin X-Mailman-Version: 3.3.5 Precedence: list Subject: [xdp-hints] Re: [PATCH RFCv2 bpf-next 04/18] net: create xdp_hints_common and set functions List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQoNCk9uIDA5LzA5LzIwMjIgMTIuNDksIEJ1cmFrb3YsIEFuYXRvbHkgd3JvdGU6DQo+IE9uIDA3 LVNlcC0yMiA0OjQ1IFBNLCBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIHdyb3RlOg0KPj4gWERQLWhp bnRzIHZpYSBCVEYgYXJlIGFib3V0IGdpdmluZyBkcml2ZXJzIHRoZSBhYmlsaXR5IHRvIGV4dGVu ZCB0aGUNCj4+IGNvbW1vbiBzZXQgb2YgaGFyZHdhcmUgb2ZmbG9hZCBoaW50cyBpbiBhIGZsZXhp YmxlIHdheS4NCj4+DQo+PiBUaGlzIHBhdGNoIHN0YXJ0IG91dCB3aXRoIGRlZmluaW5nIHRoZSBj b21tb24gc2V0LCBiYXNlZCBvbiB3aGF0IGlzDQo+PiB1c2VkIGF2YWlsYWJsZSBpbiB0aGUgU0tC LiBIYXZpbmcgdGhpcyBhcyBhIGNvbW1vbiBzdHJ1Y3QgaW4gY29yZQ0KPj4gdm1saW51eCBtYWtl cyBpdCBlYXNpZXIgdG8gaW1wbGVtZW50IHhkcF9mcmFtZSB0byBTS0IgY29udmVyc2lvbg0KPj4g cm91dGluZXMgYXMgbm9ybWFsIEMtY29kZSwgc2VlIGxhdGVyIHBhdGNoZXMuDQo+Pg0KPj4gRHJp dmVycyBjYW4gcmVkZWZpbmUgdGhlIGxheW91dCBvZiB0aGUgZW50aXJlIG1ldGFkYXRhIGFyZWEs IGJ1dCBhcmUNCj4+IGVuY291cmFnZWQgdG8gdXNlIHRoaXMgY29tbW9uIHN0cnVjdCBhcyB0aGUg YmFzZSwgb24gd2hpY2ggdGhleSBjYW4NCj4+IGV4dGVuZCBvbiB0b3AgZm9yIHRoZWlyIGV4dHJh IGhhcmR3YXJlIG9mZmxvYWQgaGludHMuIFdoZW4gZG9pbmcgc28sDQo+PiBkcml2ZXJzIGNhbiBt YXJrIHRoZSB4ZHBfYnVmZiAoYW5kIHhkcF9mcmFtZSkgd2l0aCBmbGFncyBpbmRpY2F0aW5nDQo+ PiB0aGlzIGl0IGNvbXBhdGlibGUgd2l0aCB0aGUgY29tbW9uIHN0cnVjdC4NCj4+DQo+PiBQYXRj aCBhbHNvIHByb3ZpZGVzIFhEUC1oaW50cyBkcml2ZXIgaGVscGVyIGZ1bmN0aW9ucyBmb3IgdXBk YXRpbmcgdGhlDQo+PiBjb21tb24gc3RydWN0LiBIZWxwZXJzIGdldHMgaW5saW5lZCBhbmQgYXJl IGRlZmluZWQgZm9yIG1heGltdW0NCj4+IHBlcmZvcm1hbmNlLCB3aGljaCBkb2VzIHJlcXVpcmUg c29tZSBleHRyYSBjYXJlIGluIGRyaXZlcnMsIGUuZy4gdG8NCj4+IGtlZXAgdHJhY2sgb2YgZmxh Z3MgdG8gcmVkdWNlIGRhdGEgZGVwZW5kZW5jaWVzLCBzZWUgY29kZSBET0MuDQo+Pg0KPj4gVXNl cnNwYWNlIGFuZCBCUEYtcHJvZydzIE1VU1Qgbm90IGNvbnNpZGVyIHRoZSBjb21tb24gc3RydWN0 IFVBUEkuDQo+PiBUaGUgY29tbW9uIHN0cnVjdCAoYW5kIGVudW0gZmxhZ3MpIGFyZSBvbmx5IGV4 cG9zZWQgdmlhIEJURiwgd2hpY2gNCj4+IGltcGxpZXMgY29uc3VtZXJzIG11c3QgcmVhZCBhbmQg ZGVjb2RlIHRoaXMgQlRGIGJlZm9yZSB1c2luZy9jb25zdW1pbmcNCj4+IGRhdGEgbGF5b3V0Lg0K Pj4NCj4+IFNpZ25lZC1vZmYtYnk6IEplc3BlciBEYW5nYWFyZCBCcm91ZXIgPGJyb3VlckByZWRo YXQuY29tPg0KPj4gLS0tDQo+PiDCoCBpbmNsdWRlL25ldC94ZHAuaCB8wqAgMTQ3IA0KPj4gKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+IMKg IG5ldC9jb3JlL3hkcC5jwqDCoMKgIHzCoMKgwqAgNSArKw0KPj4gwqAgMiBmaWxlcyBjaGFuZ2Vk LCAxNTIgaW5zZXJ0aW9ucygrKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC94ZHAu aCBiL2luY2x1ZGUvbmV0L3hkcC5oDQo+PiBpbmRleCAwNGM4NTJjN2E3N2YuLmVhNTgzNmNjZWU4 MiAxMDA2NDQNCj4+IC0tLSBhL2luY2x1ZGUvbmV0L3hkcC5oDQo+PiArKysgYi9pbmNsdWRlL25l dC94ZHAuaA0KPj4gQEAgLTgsNiArOCwxNTEgQEANCj4+IMKgICNpbmNsdWRlIDxsaW51eC9za2J1 ZmYuaD4gLyogc2tiX3NoYXJlZF9pbmZvICovDQo+PiArLyoqDQo+PiArICogc3RydWN0IHhkcF9o aW50c19jb21tb24gLSBDb21tb24gWERQLWhpbnRzIG9mZmxvYWRzIHNoYXJlZCB3aXRoIA0KPj4g bmV0c3RhY2sNCj4+ICsgKiBAYnRmX2Z1bGxfaWQ6IFRoZSBtb2R1bGVzIEJURiBvYmplY3QgKyB0 eXBlIElEIGZvciBzcGVjaWZpYyBzdHJ1Y3QNCj4+ICsgKiBAdmxhbl90Y2k6IEhhcmR3YXJlIHBy b3ZpZGVkIFZMQU4gdGFnICsgcHJvdG8gdHlwZSBpbiANCj4+IEB4ZHBfaGludHNfZmxhZ3MNCj4+ ICsgKiBAcnhfaGFzaDMyOiBIYXJkd2FyZSBwcm92aWRlZCBSU1MgaGFzaCB2YWx1ZQ0KPj4gKyAq IEB4ZHBfaGludHNfZmxhZ3M6IHNlZSAmZW51bSB4ZHBfaGludHNfZmxhZ3MNCj4+ICsgKg0KPj4g KyAqIFRoaXMgc3RydWN0dXJlIGNvbnRhaW5zIHRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgaGFyZHdh cmUgb2ZmbG9hZHMgDQo+PiBoaW50cw0KPj4gKyAqIHByb3ZpZGVkIGJ5IE5JQyBkcml2ZXJzIGFu ZCBzdXBwb3J0ZWQgYnkgdGhlIFNLQi4NCj4+ICsgKg0KPj4gKyAqIERyaXZlciBhcmUgZXhwZWN0 ZWQgdG8gZXh0ZW5kIHRoaXMgc3RydWN0dXJlIGJ5IGluY2x1ZGUgJnN0cnVjdA0KPj4gKyAqIHhk cF9oaW50c19jb21tb24gYXMgcGFydCBvZiB0aGUgZHJpdmVycyBvd24gc3BlY2lmaWMgeGRwX2hp bnRzIA0KPj4gc3RydWN0J3MsIGJ1dA0KPj4gKyAqIGF0IHRoZSBlbmQtb2YgdGhlaXIgc3RydWN0 IGdpdmVuIFhEUCBtZXRhZGF0YSBhcmVhIGdyb3dzIGJhY2t3YXJkcy4NCj4+ICsgKg0KPj4gKyAq IFRoZSBtZW1iZXIgQGJ0Zl9mdWxsX2lkIGlzIHBvcHVsYXRlZCBieSBkcml2ZXIgbW9kdWxlcyB0 byB1bmlxdWVseSANCj4+IGlkZW50aWZ5DQo+PiArICogdGhlIEJURiBzdHJ1Y3QuwqAgVGhlIGhp Z2ggMzItYml0cyBzdG9yZSB0aGUgbW9kdWxlcyBCVEYgb2JqZWN0IElEIA0KPj4gYW5kIHRoZQ0K Pj4gKyAqIGxvd2VyIDMyLWJpdCB0aGUgQlRGIHR5cGUgSUQgd2l0aGluIHRoYXQgQlRGIG9iamVj dC4NCj4+ICsgKi8NCj4+ICtzdHJ1Y3QgeGRwX2hpbnRzX2NvbW1vbiB7DQo+PiArwqDCoMKgIHVu aW9uIHsNCj4+ICvCoMKgwqDCoMKgwqDCoCBfX3dzdW3CoMKgwqDCoMKgwqDCoCBjc3VtOw0KPj4g K8KgwqDCoMKgwqDCoMKgIHN0cnVjdCB7DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX3Ux NsKgwqDCoCBjc3VtX3N0YXJ0Ow0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX191MTbCoMKg wqAgY3N1bV9vZmZzZXQ7DQo+PiArwqDCoMKgwqDCoMKgwqAgfTsNCj4+ICvCoMKgwqAgfTsNCj4+ ICvCoMKgwqAgdTE2IHJ4X3F1ZXVlOw0KPj4gK8KgwqDCoCB1MTYgdmxhbl90Y2k7DQo+PiArwqDC oMKgIHUzMiByeF9oYXNoMzI7DQo+PiArwqDCoMKgIHUzMiB4ZHBfaGludHNfZmxhZ3M7DQo+PiAr wqDCoMKgIHU2NCBidGZfZnVsbF9pZDsgLyogQlRGIG9iamVjdCArIHR5cGUgSUQgKi8NCj4+ICt9 IF9fYXR0cmlidXRlX18oKGFsaWduZWQoNCkpKSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsNCj4g DQo+IEknbSBhc3N1bWluZyBhbnkgVHggbWV0YWRhdGEgd2lsbCBoYXZlIHRvIGdvIGJlZm9yZSB0 aGUgUnggY2hlY2tzdW0gdW5pb24/DQo+IA0KDQpOb3BlLiAgVGhlIHBsYW4gaXMgdGhhdCB0aGUg VFggbWV0YWRhdGEgY2FuIHJldXNlIHRoZSBzYW1lIG1ldGFkYXRhIGFyZWENCndpdGggaXRzIG93 biBsYXlvdXQuICBJIGltYWdpbmUgYSBuZXcgeGRwX2J1ZmYtPmZsYWdzIGJpdCB0aGF0IHRlbGwg dXMNCnRoZSBsYXlvdXQgaXMgbm93IFRYLWxheW91dCB3aXRoIHhkcF9oaW50c19jb21tb25fdHgu DQoNCldlIGNvdWxkIHJlbmFtZSB4ZHBfaGludHNfY29tbW9uIHRvIHhkcF9oaW50c19jb21tb25f cnggdG8gYW50aWNpcGF0ZQ0KYW5kIHByZXBhcmUgZm9yIHRoaXMuIEJ1dCB0aGF0IHdvdWxkIGJl IGdldHRpbmcgYSBoZWFkIG9mIG91cnNlbHZlcywNCmJlY2F1c2Ugc29tZW9uZSBpbiB0aGUgY29t bXVuaXR5IG1pZ2h0IGhhdmUgYSBzbWFydGVyIHNvbHV0aW9uLCBlLmcuDQp0aGF0IGNvdWxkIGNv bWJpbmUgY29tbW9uIFJYIGFuZCBUWCBpbiBhIHNpbmdsZSBzdHJ1Y3QuIGUuZy4gb3ZlcmxhcHBp bmcNCmNzdW0gYW5kIHZsYW5fdGNpIG1pZ2h0IG1ha2Ugc2Vuc2UuDQoNCj4+ICsNCj4+ICsNCj4+ ICsvKioNCj4+ICsgKiBlbnVtIHhkcF9oaW50c19mbGFncyAtIGZsYWdzIHVzZWQgYnkgJnN0cnVj dCB4ZHBfaGludHNfY29tbW9uDQo+PiArICoNCj4+ICsgKiBUaGUgJmVudW0geGRwX2hpbnRzX2Zs YWdzIGhhdmUgcmVzZXJ2ZWQgdGhlIGZpcnN0IDE2IGJpdHMgZm9yIA0KPj4gY29tbW9uIGZsYWdz DQo+PiArICogYW5kIGRyaXZlcnMgY2FuIGludHJvZHVjZSB1c2UgdGhlaXIgb3duIGZsYWdzIGJp dHMgZnJvbSBCSVQoMTYpLiBGb3INCj4+ICsgKiBCUEYtcHJvZ3MgdG8gZmluZCB0aGVzZSBmbGFn cyAodmlhIEJURikgZHJpdmVycyBzaG91bGQgZGVmaW5lIGFuIGVudW0NCj4+ICsgKiB4ZHBfaGlu dHNfZmxhZ3NfZHJpdmVyLg0KPj4gKyAqLw0KPj4gK2VudW0geGRwX2hpbnRzX2ZsYWdzIHsNCj4+ ICvCoMKgwqAgSElOVF9GTEFHX0NTVU1fVFlQRV9CSVQwwqAgPSBCSVQoMCksDQo+PiArwqDCoMKg IEhJTlRfRkxBR19DU1VNX1RZUEVfQklUMcKgID0gQklUKDEpLA0KPj4gK8KgwqDCoCBISU5UX0ZM QUdfQ1NVTV9UWVBFX01BU0vCoCA9IDB4MywNCj4+ICsNCj4+ICvCoMKgwqAgSElOVF9GTEFHX0NT VU1fTEVWRUxfQklUMCA9IEJJVCgyKSwNCj4+ICvCoMKgwqAgSElOVF9GTEFHX0NTVU1fTEVWRUxf QklUMSA9IEJJVCgzKSwNCj4+ICvCoMKgwqAgSElOVF9GTEFHX0NTVU1fTEVWRUxfTUFTSyA9IDB4 QywNCj4+ICvCoMKgwqAgSElOVF9GTEFHX0NTVU1fTEVWRUxfU0hJRlQgPSAyLA0KPj4gKw0KPj4g K8KgwqDCoCBISU5UX0ZMQUdfUlhfSEFTSF9UWVBFX0JJVDAgPSBCSVQoNCksDQo+PiArwqDCoMKg IEhJTlRfRkxBR19SWF9IQVNIX1RZUEVfQklUMSA9IEJJVCg1KSwNCj4+ICvCoMKgwqAgSElOVF9G TEFHX1JYX0hBU0hfVFlQRV9NQVNLID0gMHgzMCwNCj4+ICvCoMKgwqAgSElOVF9GTEFHX1JYX0hB U0hfVFlQRV9TSElGVCA9IDB4NCwNCj4+ICsNCj4+ICvCoMKgwqAgSElOVF9GTEFHX1JYX1FVRVVF ID0gQklUKDcpLA0KPj4gKw0KPj4gK8KgwqDCoCBISU5UX0ZMQUdfVkxBTl9QUkVTRU5UwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCA9IEJJVCg4KSwNCj4+ICvCoMKgwqAgSElOVF9GTEFHX1ZMQU5fUFJP VE9fRVRIX1BfODAyMVHCoCA9IEJJVCg5KSwNCj4+ICvCoMKgwqAgSElOVF9GTEFHX1ZMQU5fUFJP VE9fRVRIX1BfODAyMUFEID0gQklUKDEwKSwNCj4+ICvCoMKgwqAgLyogRmxhZ3MgZnJvbSBCSVQo MTYpIGNhbiBiZSB1c2VkIGJ5IGRyaXZlcnMgKi8NCj4gDQo+IElmIHdlIGFzc3VtZWQgd2UgYWxz byBoYXZlIFR4IHNlY3Rpb24sIHdvdWxkIDE2IGJpdHMgYmUgZW5vdWdoPyBGb3IgYSANCj4gYmFz aWMgaW1wbGVtZW50YXRpb24gb2YgVURQIGNoZWNrc3VtbWluZywgQUZfWERQIHdvdWxkIG5lZWQg M3gxNiBtb3JlIA0KPiBiaXRzICh0byBzdG9yZSBMMi9MMy9MNCBvZmZzZXRzKSBwbHVzIHByb2Jh Ymx5IGEgZmxhZyBmaWVsZCBpbmRpY2F0aW5nIA0KPiBwcmVzZW5jZSBvZiBlYWNoLiBJcyB0aGVy ZSBhbnkgd2F5IHRvIGV4cGFuZCBjb21tb24gZmllbGRzIGluIHRoZSBmdXR1cmUgDQo+IChvciBp cyBpdCBhdCBhbGwgaW50ZW5kZWQgdG8gYmUgZXhwYW5kYWJsZSk/DQo+IA0KDQpBcyBhYm92ZSB3 ZSBjb3VsZCBoYXZlIHNlcGFyYXRlIGZsYWdzIGZvciBUWCBzaWRlLCBlLmcuDQp4ZHBfaGludHNf ZmxhZ3NfdHguICBCdXQgc29tZSBvZiB0aGUgZmxhZ3MgbWlnaHQgc3RpbGwgYmUgdmFsaWQgZm9y DQpUWC1zaWRlLCBzbyB0aGV5IGNvdWxkIHBvdGVudGlhbGx5IHNoYXJlIHNvbWUuDQoNCkJVVCBp dCBpcyBhbHNvIGltcG9ydGFudCB0byByZWFsaXplIHRoYXQgSSdtIHNheWluZyB0aGlzIGlzIG5v dCBVQVBJDQpmbGFncyBiZWluZyBleHBvc2VkIChsaWtlIGluIGluY2x1ZGUvdWFwaS9icGYuaCku ICBUaGUgcnVudGltZSB2YWx1ZSBvZg0KdGhlc2UgZW51bSBkZWZpbmVkIGZsYWdzIE1VU1QgYmUg b2J0YWluZWQgdmlhIEJURiAodGhyb3VnaCBoZWxwIG9mDQpsaWJicGYgQ08tUkUgb3IgaW4gdXNl cnNwYWNlIGJ5IHBhcnNpbmcgQlRGKS4NCg0KVGh1cywgaW4gcHJpbmNpcGxlIHRoZSBrZXJuZWwg aXMgZnJlZSB0byBjaGFuZ2UgdGhlc2Ugc3RydWN0cyBhbmQgZW51bXMuDQpJbiBwcmFjdGljZSBp dCB3aWxsIGJlIHZlcnkgYW5ub3lpbmcgZm9yIEJQRi1wcm9ncyBhbmQgQUZfWERQIHVzZXJzcGFj ZQ0KY29kZSBpZiB3ZSBjaGFuZ2UgdGhlIG5hbWVzIG9mIHRoZSBzdHJ1Y3QncyBhbmQgc29tZXdo YXQgYW5ub3lpbmcgaWYNCm1lbWJlcnMgY2hhbmdlIG5hbWUuICBDTy1SRSBjYW4gZGVhbCB3aXRo IGtlcm5lbCBjaGFuZ2VzIGFuZCBmZWF0dXJlDQpkZXRlY3Rpb25bMV0gZG93biB0byB0aGUgYXZh aWwgZW51bXMgZS5nLiB2aWEgdXNpbmcNCmJwZl9jb3JlX2VudW1fdmFsdWVfZXhpc3RzKCkuICBC dXQgd2Ugc2hvdWxkIGF2b2lkIHRvbyBtYW55IGNoYW5nZXMgYXMNCnRoZSBjb2RlIGJlY29tZXMg aGFyZGVyIHRvIHJlYWQuDQoNCi0tSmVzcGVyDQoNClsxXSANCmh0dHBzOi8vbmFrcnlpa28uY29t L3Bvc3RzL2JwZi1jb3JlLXJlZmVyZW5jZS1ndWlkZS8jYnBmLWNvcmUtZW51bS12YWx1ZS1leGlz dHMNCg0K