Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp7821718ioo; Fri, 3 Jun 2022 14:29:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzt162WOwWEST7TWLQ6f9iVkeSAi8FltPOXDc2XHtko5g9AkSJDUncbtYr7CM7ds6s1aVnx X-Received: by 2002:a17:903:2444:b0:167:5fe8:4a16 with SMTP id l4-20020a170903244400b001675fe84a16mr378171pls.20.1654291748372; Fri, 03 Jun 2022 14:29:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654291748; cv=none; d=google.com; s=arc-20160816; b=R/tWg2f2uCw61+xMIxlFV9sHK6wM/FuSltM6I0/F8eIWu40V3eGeXShSJ1jSp9oLet x/fFlJLUitN3ygT857Hu9nnJsAS1Wazptvh1RgQB2LItB5xlMK0QB5QERoPqgReBwHgH 4AofqD7/3SC+zO5IrATmY4oHCa102tpt+/MhxSHFQwuT4PaE4yZ17QCDA44y0fBQVN22 oU/+eGRU3AJlTVvlhAVMgCHv44hDliqpsoJxNm43FLcfmkcd0Ul1XZRVmim9QR93eeQ4 Dq3kpXrplcFPvEbuW17lPFjU59bo7rNYFH/BBDtNAgTb8E2r+JrTVCB0hW/Hp0Jdk1l0 bPwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from; bh=NO9uCZe4S3Ck3PRhRAIhMh2dqNXKkmDZ3EvjbCC9Zu4=; b=bbBU1vP8IZG66tnO0Ok54lr186YeFXKvGUt53I28N1uYiZupwGwsGdqxqTMvt8NSWN P+MLjw9MY2yeX05s/kGxfa4FqO5fVSSJS1fuplfpGo8HEpqVeoEVNSp5r+6ucO23H0l7 EfCHrQ+DFlD0AZgfiqnGBHgoxZiHoGO5XQxzmRmsRIkGWyYZJCiJ/03EdNcmOBnTu1ny qpjLEhs0Hr+Lhlbee4KHwXG6d5KFdodKrdR0FKcKIm01cqVP0JeAZm6zjI5saAvWELDD jneymd4TRBvhCIULQ1Aq1qvLvX/76r6F4ehX1gBDfeJEs3PZUSOEMyrxKkyAn1r0+5Pe HZlw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c12-20020a655a8c000000b003fa8a90ca7bsi11179714pgt.498.2022.06.03.14.28.54; Fri, 03 Jun 2022 14:29:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245622AbiFCPn6 (ORCPT + 99 others); Fri, 3 Jun 2022 11:43:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50746 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231160AbiFCPn4 (ORCPT ); Fri, 3 Jun 2022 11:43:56 -0400 Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 12FAC6241; Fri, 3 Jun 2022 08:43:53 -0700 (PDT) Received: from fraeml707-chm.china.huawei.com (unknown [172.18.147.200]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4LF6WC5jGqz67yLV; Fri, 3 Jun 2022 23:39:19 +0800 (CST) Received: from fraeml714-chm.china.huawei.com (10.206.15.33) by fraeml707-chm.china.huawei.com (10.206.15.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Fri, 3 Jun 2022 17:43:51 +0200 Received: from fraeml714-chm.china.huawei.com ([10.206.15.33]) by fraeml714-chm.china.huawei.com ([10.206.15.33]) with mapi id 15.01.2375.024; Fri, 3 Jun 2022 17:43:51 +0200 From: Roberto Sassu To: KP Singh CC: "ast@kernel.org" , "daniel@iogearbox.net" , "andrii@kernel.org" , "bpf@vger.kernel.org" , "netdev@vger.kernel.org" , "linux-kselftest@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH 1/3] bpf: Add BPF_F_VERIFY_ELEM to require signature verification on map values Thread-Topic: [PATCH 1/3] bpf: Add BPF_F_VERIFY_ELEM to require signature verification on map values Thread-Index: AQHYcDpckKyFNQT2PU2oWx8V6Vr5oK09gwmAgAAxm2CAAAOQgIAAJWng Date: Fri, 3 Jun 2022 15:43:51 +0000 Message-ID: References: <20220525132115.896698-1-roberto.sassu@huawei.com> <20220525132115.896698-2-roberto.sassu@huawei.com> <89db5543066f4dccbfebd78ed3c025e7@huawei.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.204.63.21] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiBGcm9tOiBLUCBTaW5naCBbbWFpbHRvOmtwc2luZ2hAa2VybmVsLm9yZ10NCj4gU2VudDogRnJp ZGF5LCBKdW5lIDMsIDIwMjIgNToxOCBQTQ0KPiBPbiBGcmksIEp1biAzLCAyMDIyIGF0IDM6MTEg UE0gUm9iZXJ0byBTYXNzdSA8cm9iZXJ0by5zYXNzdUBodWF3ZWkuY29tPg0KPiB3cm90ZToNCj4g Pg0KPiA+ID4gRnJvbTogS1AgU2luZ2ggW21haWx0bzprcHNpbmdoQGtlcm5lbC5vcmddDQo+ID4g PiBTZW50OiBGcmlkYXksIEp1bmUgMywgMjAyMiAyOjA4IFBNDQo+ID4gPiBPbiBXZWQsIE1heSAy NSwgMjAyMiBhdCAzOjIxIFBNIFJvYmVydG8gU2Fzc3UNCj4gPHJvYmVydG8uc2Fzc3VAaHVhd2Vp LmNvbT4NCj4gPiA+IHdyb3RlOg0KPiA+ID4gPg0KPiA+ID4gPiBJbiBzb21lIGNhc2VzLCBpdCBp cyBkZXNpcmFibGUgdG8gZW5zdXJlIHRoYXQgYSBtYXAgY29udGFpbnMgZGF0YSBmcm9tDQo+ID4g PiA+IGF1dGhlbnRpY2F0ZWQgc291cmNlcywgZm9yIGV4YW1wbGUgaWYgbWFwIGRhdGEgYXJlIHVz ZWQgZm9yIG1ha2luZw0KPiBzZWN1cml0eQ0KPiA+ID4gPiBkZWNpc2lvbnMuDQo+ID4gPg0KPiA+ ID4gSSBhbSBndWVzc2luZyB0aGlzIGNvbWVzIGZyb20gdGhlIGRpc2N1c3Npb24gd2UgaGFkIGFi b3V0IGRpZ2lsaW0uDQo+ID4gPiBJIHJlbWVtYmVyIHdlIGRpc2N1c3NlZCBhIEJQRiBoZWxwZXIg dGhhdCBjb3VsZCB2ZXJpZnkgc2lnbmF0dXJlcy4NCj4gPiA+IFdoeSB3b3VsZCB0aGF0IGFwcHJv YWNoIG5vdCB3b3JrPw0KPiA+DQo+ID4gVGhlIG1haW4gcmVhc29uIGlzIHRoYXQgc2lnbmF0dXJl IHZlcmlmaWNhdGlvbiBjYW4gYmUgZG9uZSBhbHNvDQo+ID4gZm9yIG5vbi1zbGVlcGFibGUgaG9v a3MuIEZvciBleGFtcGxlLCBvbmUgaXMgZmV4aXQvYXJyYXlfbWFwX3VwZGF0ZV9lbGVtLg0KPiAN Cj4gRm9yIHlvdXIgdXNlLWNhc2UsIHdoeSBpcyBpdCBub3QgcG9zc2libGUgdG8gaG9vayB0aGUg TFNNIGhvb2sgImJwZiINCj4gaS5lIHNlY3VyaXR5X2JwZiBhbmQgdGhlbiBjaGVjayBpZiB0aGVy ZSBpcyBhIE1BUF9VUERBVEVfRUxFTSBvcGVyYXRpb24/DQoNCkl0IHdvdWxkIHJlcXVpcmUgdGhl IGZvbGxvd2luZzogYSBuZXcgaGVscGVyIHRvIGNvbXBhcmUgdGhlIHVzZXIgc3BhY2UNCmZkIHdp dGggdGhlIGFkZHJlc3Mgb2YgdGhlIG1hcCBpbiB0aGUgZUJQRiBwcm9ncmFtOyBjb3B5IGRhdGEg ZnJvbQ0KdXNlciBzcGFjZSB0byBrZXJuZWwgc3BhY2UgKHZlcmlmeV9wa2NzN19zaWduYXR1cmVJ KCkgZXhwZWN0cyBrZXJuZWwNCm1lbW9yeSkuIFRoYXQgY29weSB3b3VsZCBoYXBwZW4gdHdpY2Uu DQoNCj4gPiBDdXJyZW50bHkgdGhlIGhlbHBlciBpbiBwYXRjaCAyIGp1c3QgcmV0dXJucyB0aGUg c2l6ZSBvZiB2ZXJpZmllZCBkYXRhLg0KPiA+IFdpdGggYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXIs IGl0IGNvdWxkIGFsc28gYmUgdXNlZCBhcyBhIGhlbHBlciBmb3INCj4gPiBzaWduYXR1cmUgdmVy aWZpY2F0aW9uIGJ5IGFueSBlQlBGIHByb2dyYW1zLg0KPiA+DQo+IA0KPiBZb3VyIGJwZl9tYXBf dmVyaWZ5X3ZhbHVlX3NpZyBoYXJkIGNvZGVzIHRoZSB0eXBlIG9mIHNpZ25hdHVyZQ0KPiAoYnBm X21hcF92ZXJpZnlfdmFsdWVfc2lnIGFzIHZlcmlmeV9wa2NzN19zaWduYXR1cmUpDQo+IGl0cyBp bXBsZW1lbnRhdGlvbi4gVGhpcyBpcyBub3QgZXh0ZW5zaWJsZS4NCg0KSXQgaXMgaGFyZGNvZGVk IG5vdywgYnV0IGl0IHdvdWxkbid0IGlmIHRoZXJlIGFyZSBtb3JlIHZlcmlmaWNhdGlvbg0KZnVu Y3Rpb25zLiBGb3IgZXhhbXBsZSwgaWYgJ2lkX3R5cGUnIG9mIG1vZHVsZV9zaWduYXR1cmUgaXMg c2V0DQp0byBQS0VZX0lEX1BHUCwgYnBmX21hcF92ZXJpZnlfdmFsdWVfc2lnKCkgd291bGQgY2Fs bA0KdmVyaWZ5X3BncF9zaWduYXR1cmUoKSAoYXNzdW1pbmcgdGhhdCBzdXBwb3J0IGZvciBQR1Ag a2V5cyBhbmQNCnNpZ25hdHVyZXMgaXMgYWRkZWQgdG8gdGhlIGtlcm5lbCkuDQoNClJvYmVydG8N Cg0KSFVBV0VJIFRFQ0hOT0xPR0lFUyBEdWVzc2VsZG9yZiBHbWJILCBIUkIgNTYwNjMNCk1hbmFn aW5nIERpcmVjdG9yOiBMaSBQZW5nLCBZYW5nIFhpLCBMaSBIZQ0KDQo+IFdoYXQgd2UgZGlzY3Vz c2VkIHdhcyBhbiBleHRlbnNpYmxlIGhlbHBlciB0aGF0IGNhbiBiZSB1c2VkIGZvcg0KPiBkaWZm ZXJlbnQgc2lnbmF0dXJlIHR5cGVzLg0KPiANCj4gPiBUbyBiZSBob25lc3QsIEkgbGlrZSBtb3Jl IHRoZSBpZGVhIG9mIGEgbWFwIGZsYWcsIGFzIGl0IGlzIG1vcmUNCj4gPiBjbGVhciB0aGF0IHNp Z25hdHVyZSB2ZXJpZmljYXRpb24gaXMgYmVpbmcgZG9uZS4gT3RoZXJ3aXNlLA0KPiA+IHdlIHdv dWxkIG5lZWQgdG8gaW5mZXIgaXQgZnJvbSB0aGUgZUJQRiBwcm9ncmFtIGNvZGUuDQo+ID4NCj4g PiBUaGFua3MNCj4gPg0KPiA+IFJvYmVydG8NCj4gPg0KPiA+IEhVQVdFSSBURUNITk9MT0dJRVMg RHVlc3NlbGRvcmYgR21iSCwgSFJCIDU2MDYzDQo+ID4gTWFuYWdpbmcgRGlyZWN0b3I6IExpIFBl bmcsIFlhbmcgWGksIExpIEhlDQo+ID4NCj4gPiA+ID4gU3VjaCByZXN0cmljdGlvbiBpcyBhY2hp ZXZlZCBieSB2ZXJpZnlpbmcgdGhlIHNpZ25hdHVyZSBvZiBtYXAgdmFsdWVzLCBhdA0KPiA+ID4g PiB0aGUgdGltZSB0aG9zZSB2YWx1ZXMgYXJlIGFkZGVkIHRvIHRoZSBtYXAgd2l0aCB0aGUgYnBm KCkgc3lzdGVtIGNhbGwNCj4gKG1vcmUNCj4gPiA+ID4gc3BlY2lmaWNhbGx5LCB3aGVuIHRoZSBj b21tYW5kcyBwYXNzZWQgdG8gYnBmKCkgYXJlDQo+IEJQRl9NQVBfVVBEQVRFX0VMRU0NCj4gPiA+ IG9yDQo+ID4gPiA+IEJQRl9NQVBfVVBEQVRFX0JBVENIKS4gTW1hcHBhYmxlIG1hcHMgYXJlIG5v dCBhbGxvd2VkIGluIHRoaXMNCj4gY2FzZS4NCj4gPiA+ID4NCj4gPiA+ID4gU2lnbmF0dXJlIHZl cmlmaWNhdGlvbiBpcyBpbml0aWFsbHkgZG9uZSB3aXRoIGtleXMgaW4gdGhlIHByaW1hcnkgYW5k DQo+ID4gPiA+IHNlY29uZGFyeSBrZXJuZWwga2V5cmluZ3MsIHNpbWlsYXJseSB0byBrZXJuZWwg bW9kdWxlcy4gVGhpcyBhbGxvd3Mgc3lzdGVtDQo+ID4gPiA+IG93bmVycyB0byBlbmZvcmNlIGEg c3lzdGVtLXdpZGUgcG9saWN5IGJhc2VkIG9uIHRoZSBrZXlzIHRoZXkgdHJ1c3QuDQo+ID4gPiA+ IFN1cHBvcnQgZm9yIGFkZGl0aW9uYWwga2V5cmluZ3MgY291bGQgYmUgYWRkZWQgbGF0ZXIsIGJh c2VkIG9uIHVzZSBjYXNlDQo+ID4gPiA+IG5lZWRzLg0KPiA+ID4gPg0KPiA+ID4gPiBTaWduYXR1 cmUgdmVyaWZpY2F0aW9uIGlzIGRvbmUgb25seSBmb3IgdGhvc2UgbWFwcyBmb3Igd2hpY2ggdGhl IG5ldyBtYXANCj4gPiA+ID4gZmxhZyBCUEZfRl9WRVJJRllfRUxFTSBpcyBzZXQuIFdoZW4gdGhl IGZsYWcgaXMgc2V0LCB0aGUga2VybmVsIGV4cGVjdHMNCj4gbWFwDQo+ID4gPiA+IHZhbHVlcyB0 byBiZSBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDoNCj4gPiA+ID4NCj4gPiA+ID4gKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tKw0KPiA+ID4gPiB8IHZlcmlmaWVkIGRhdGErc2lnIHNpemUgKGJlMzIpIHwgdmVyaWZp ZWQgZGF0YSB8IHNpZyB8IHVudmVyaWZpZWQgZGF0YSB8DQo+ID4gPiA+ICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLS0tLS0tLS0t LSsNCj4gPiA+ID4NCj4gPiA+ID4gd2hlcmUgc2lnIGlzIGEgbW9kdWxlLXN0eWxlIGFwcGVuZGVk IHNpZ25hdHVyZSBhcyBnZW5lcmF0ZWQgYnkgdGhlDQo+ID4gPiA+IHNpZ24tZmlsZSB0b29sLiBU aGUgdmVyaWZpZWQgZGF0YStzaWcgc2l6ZSAoaW4gYmlnIGVuZGlhbikgbXVzdCBiZQ0KPiA+ID4g PiBleHBsaWNpdGx5IHByb3ZpZGVkIChpdCBpcyBub3QgZ2VuZXJhdGVkIGJ5IHNpZ24tZmlsZSks IGFzIGl0IGNhbm5vdCBiZQ0KPiA+ID4gPiBkZXRlcm1pbmVkIGluIG90aGVyIHdheXMgKGN1cnJl bnRseSwgdGhlIG1hcCB2YWx1ZSBzaXplIGlzIGZpeGVkKS4gSXQgY2FuDQo+ID4gPiA+IGJlIG9i dGFpbmVkIGZyb20gdGhlIHNpemUgb2YgdGhlIGZpbGUgY3JlYXRlZCBieSBzaWduLWZpbGUuDQo+ ID4gPiA+DQo+ID4gPiA+IEludHJvZHVjZSB0aGUgbmV3IG1hcCBmbGFnIEJQRl9GX1ZFUklGWV9F TEVNLCBhbmQgYWRkaXRpb25hbGx5IGNhbGwgdGhlDQo+ID4gPiBuZXcNCj4gPiA+ID4gZnVuY3Rp b24gYnBmX21hcF92ZXJpZnlfdmFsdWVfc2lnKCkgZnJvbSBicGZfbWFwX3VwZGF0ZV92YWx1ZSgp IGlmIHRoZQ0KPiBmbGFnDQo+ID4gPiA+IGlzIHNldC4gYnBmX21hcF92ZXJpZnlfdmFsdWVfc2ln KCksIGRlY2xhcmVkIGFzIGdsb2JhbCBmb3IgYSBuZXcgaGVscGVyLCBpcw0KPiA+ID4gPiBiYXNp Y2FsbHkgZXF1aXZhbGVudCB0byBtb2RfdmVyaWZ5X3NpZygpLiBJdCBhZGRpdGlvbmFsbHkgZG9l cyB0aGUgbWFya2VyDQo+ID4gPiA+IGNoZWNrLCB0aGF0IGZvciBrZXJuZWwgbW9kdWxlcyBpcyBk b25lIGluIG1vZHVsZV9zaWdfY2hlY2soKSwgYW5kIHRoZQ0KPiA+ID4gPiBwYXJzaW5nIG9mIHRo ZSB2ZXJpZmllZCBkYXRhK3NpZyBzaXplLg0KPiA+ID4gPg0KPiA+ID4gPiBDdXJyZW50bHksIGVu YWJsZSB0aGUgdXNhZ2Ugb2YgdGhlIGZsYWcgb25seSBmb3IgdGhlIGFycmF5IG1hcC4gU3VwcG9y dCBmb3INCj4gPiA+ID4gbW9yZSBtYXAgdHlwZXMgY2FuIGJlIGFkZGVkIGxhdGVyLg0KPiA+ID4g Pg0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBSb2JlcnRvIFNhc3N1IDxyb2JlcnRvLnNhc3N1QGh1 YXdlaS5jb20+DQo+ID4gPiA+IC0tLQ0KPiANCj4gWy4uLl0NCj4gDQo+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOw0KPiA+ID4g PiArICAgICAgICAgICAgICAgaWYgKHJldCA8IDApDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiByZXQ7DQo+ID4gPiA+ICsgICAgICAgfQ0KPiA+ID4gPiArDQo+ID4gPiA+ ICsgICAgICAgcmV0dXJuIG1vZGxlbjsNCj4gPiA+ID4gK30NCj4gPiA+ID4gK0VYUE9SVF9TWU1C T0xfR1BMKGJwZl9tYXBfdmVyaWZ5X3ZhbHVlX3NpZyk7DQo+ID4gPiA+DQo+ID4gPiA+ICAjZGVm aW5lIEJQRl9NQVBfVVBEQVRFX0VMRU1fTEFTVF9GSUVMRCBmbGFncw0KPiA+ID4gPg0KPiA+ID4g PiBkaWZmIC0tZ2l0IGEvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oIGIvdG9vbHMvaW5j bHVkZS91YXBpL2xpbnV4L2JwZi5oDQo+ID4gPiA+IGluZGV4IGY0MDA5ZGJkZjYyZC4uYThlNzgw M2QyNTkzIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS90b29scy9pbmNsdWRlL3VhcGkvbGludXgvYnBm LmgNCj4gPiA+ID4gKysrIGIvdG9vbHMvaW5jbHVkZS91YXBpL2xpbnV4L2JwZi5oDQo+ID4gPiA+ IEBAIC0xMjI2LDYgKzEyMjYsOSBAQCBlbnVtIHsNCj4gPiA+ID4NCj4gPiA+ID4gIC8qIENyZWF0 ZSBhIG1hcCB0aGF0IGlzIHN1aXRhYmxlIHRvIGJlIGFuIGlubmVyIG1hcCB3aXRoIGR5bmFtaWMg bWF4DQo+IGVudHJpZXMNCj4gPiA+ICovDQo+ID4gPiA+ICAgICAgICAgQlBGX0ZfSU5ORVJfTUFQ ICAgICAgICAgPSAoMVUgPDwgMTIpLA0KPiA+ID4gPiArDQo+ID4gPiA+ICsvKiBWZXJpZnkgbWFw IHZhbHVlIChmbXQ6IHZlciBkYXRhK3NpZyBzaXplKGJlMzIpLCB2ZXIgZGF0YSwgc2lnLCB1bnZl cg0KPiBkYXRhKSAqLw0KPiA+ID4gPiArICAgICAgIEJQRl9GX1ZFUklGWV9FTEVNICAgICAgID0g KDFVIDw8IDEzKQ0KPiA+ID4gPiAgfTsNCj4gPiA+ID4NCj4gPiA+ID4gIC8qIEZsYWdzIGZvciBC UEZfUFJPR19RVUVSWS4gKi8NCj4gPiA+ID4gLS0NCj4gPiA+ID4gMi4yNS4xDQo+ID4gPiA+DQo=