From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 25AC7C282DD for ; Thu, 9 Jan 2020 13:36:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EC8232067D for ; Thu, 9 Jan 2020 13:36:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="rmPFqplF" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731195AbgAINgf (ORCPT ); Thu, 9 Jan 2020 08:36:35 -0500 Received: from mail-pf1-f195.google.com ([209.85.210.195]:36041 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728974AbgAINge (ORCPT ); Thu, 9 Jan 2020 08:36:34 -0500 Received: by mail-pf1-f195.google.com with SMTP id x184so3410092pfb.3 for ; Thu, 09 Jan 2020 05:36:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=cf95WORT6GX1WJSn8Af/G1OCB1Irn/cMBwQxwXC43X4=; b=rmPFqplFiG2J23km4wRX/Ng/4kLCh6mrZt9F0tbMq9Fkk952L8sqSIO4o7LgYULfwU 1KtC1gWAKTfa0XSUUAQOR/AmiotKOiyRCtMVmsyZgWl7wiNros6lsyIzVBKk/lEPxX0N 5O4IjgJWkFY0lyOJzBgBeSNBDQagktLXZMzfFMLURXzGXfLJjyf9u7JhjvdvJVIPPoIV +FpzI1GmzdsT0mwz6RfBwpQvN5KYst18bnDXEZX/R66raaG4xngUb7fMMFDFr4XRrHLC HS0EaXm5BYy8/MMd3k9yPgsTCotJx3MtIWFki3GxVm5+umLuLYzDRu1kI/QqXQdGnzea 4fzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=cf95WORT6GX1WJSn8Af/G1OCB1Irn/cMBwQxwXC43X4=; b=ESoiF44ANtBrD2REWUY99BRe3TRL3cTTuQKjwlGy1oGtiDvosD9C6KdCu5euc7C/D5 6kSr1U701C/DqciSlHTLlyCfTIyWuvVB/JzC9ZUkKaLxA9XFZ2BdzP++y634GbfvBBjn 2sisN3TyVvwx9QBun5Xop7N7Z996gwXNplFMaFIqVZg9JHO/erp6EsfMh/gFUGTe8rYZ aMoY60g+FnU0X4crnrK/61CsipqTDx6yExdmU0x8OmzsHT0qhDd6QQQVQPvSVERbgwPG iJ8GKCqSlMlTirTkEe0NGc4c3+vUllDITWMCS9uykbxk4g8/zrACUx3kGI3X45GoY/qM H4Tw== X-Gm-Message-State: APjAAAVExdD493MjGGKdIj86Tyv0tvYA1mRyA30+hdiPiV2jyEauEwoq maMv8YEf8YND0pAR0P7p8DHhUV8dtXuASl2mIGU= X-Google-Smtp-Source: APXvYqzYs38vcWA8XTYQ6/bQR6VN+il7W5RyHWICEMlfnkK4VOVNx6yJKOpUbeM/o/gNmhfTvQD92qFBUgw0+jdnlik= X-Received: by 2002:a63:3dc6:: with SMTP id k189mr10954174pga.396.1578576993895; Thu, 09 Jan 2020 05:36:33 -0800 (PST) MIME-Version: 1.0 References: <20200108152100.7630-1-sergey.dyasli@citrix.com> <20200108152100.7630-5-sergey.dyasli@citrix.com> In-Reply-To: <20200108152100.7630-5-sergey.dyasli@citrix.com> From: Paul Durrant Date: Thu, 9 Jan 2020 13:36:22 +0000 Message-ID: Subject: Re: [PATCH v1 4/4] xen/netback: Fix grant copy across page boundary with KASAN To: Sergey Dyasli Cc: xen-devel@lists.xen.org, kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrey Ryabinin , Alexander Potapenko , Dmitry Vyukov , Boris Ostrovsky , Juergen Gross , Stefano Stabellini , George Dunlap , Ross Lagerwall , Andrew Morton , Wei Liu Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 8 Jan 2020 at 15:21, Sergey Dyasli wrote: > > From: Ross Lagerwall > > When KASAN (or SLUB_DEBUG) is turned on, the normal expectation that > allocations are aligned to the next power of 2 of the size does not > hold. Therefore, handle grant copies that cross page boundaries. > > Signed-off-by: Ross Lagerwall > Signed-off-by: Sergey Dyasli > --- > RFC --> v1: > - Added BUILD_BUG_ON to the netback patch > - xenvif_idx_release() now located outside the loop > > CC: Wei Liu > CC: Paul Durrant [snip] > > +static void __init __maybe_unused build_assertions(void) > +{ > + BUILD_BUG_ON(sizeof(struct xenvif_tx_cb) > 48); FIELD_SIZEOF(struct sk_buff, cb) rather than a magic '48' I think. Paul > +} > + > MODULE_LICENSE("Dual BSD/GPL"); > MODULE_ALIAS("xen-backend:vif"); > -- > 2.17.1 > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 528BBC33CA1 for ; Thu, 9 Jan 2020 13:36:37 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id F05B22067D for ; Thu, 9 Jan 2020 13:36:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="rmPFqplF" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F05B22067D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 42DDC8E000E; Thu, 9 Jan 2020 08:36:36 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3DC9D8E0001; Thu, 9 Jan 2020 08:36:36 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2CBDD8E000E; Thu, 9 Jan 2020 08:36:36 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0179.hostedemail.com [216.40.44.179]) by kanga.kvack.org (Postfix) with ESMTP id 1391A8E0001 for ; Thu, 9 Jan 2020 08:36:36 -0500 (EST) Received: from smtpin23.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with SMTP id AB5EB180AD807 for ; Thu, 9 Jan 2020 13:36:35 +0000 (UTC) X-FDA: 76358195550.23.burst23_90d506e6d5c15 X-HE-Tag: burst23_90d506e6d5c15 X-Filterd-Recvd-Size: 4086 Received: from mail-pf1-f194.google.com (mail-pf1-f194.google.com [209.85.210.194]) by imf01.hostedemail.com (Postfix) with ESMTP for ; Thu, 9 Jan 2020 13:36:35 +0000 (UTC) Received: by mail-pf1-f194.google.com with SMTP id 195so3386213pfw.11 for ; Thu, 09 Jan 2020 05:36:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=cf95WORT6GX1WJSn8Af/G1OCB1Irn/cMBwQxwXC43X4=; b=rmPFqplFiG2J23km4wRX/Ng/4kLCh6mrZt9F0tbMq9Fkk952L8sqSIO4o7LgYULfwU 1KtC1gWAKTfa0XSUUAQOR/AmiotKOiyRCtMVmsyZgWl7wiNros6lsyIzVBKk/lEPxX0N 5O4IjgJWkFY0lyOJzBgBeSNBDQagktLXZMzfFMLURXzGXfLJjyf9u7JhjvdvJVIPPoIV +FpzI1GmzdsT0mwz6RfBwpQvN5KYst18bnDXEZX/R66raaG4xngUb7fMMFDFr4XRrHLC HS0EaXm5BYy8/MMd3k9yPgsTCotJx3MtIWFki3GxVm5+umLuLYzDRu1kI/QqXQdGnzea 4fzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=cf95WORT6GX1WJSn8Af/G1OCB1Irn/cMBwQxwXC43X4=; b=SXdMhBPzkvT4Jr8anXj8BaNQM5XJxRVNeXq4hmJOb+P71m2mCvoZkNlH9khjaYrUZl Rq8wtpXeloqErKbfQGhtqPghIwfFCz9gtSgwtmxKscLVezshD1WNJWYm1rkn63pOmCcw +sGRANnAItZhVUYMII7vtjqcVBdRfOPTxgq5P//VebVQe98qZCE1zJVAHJOQH+1vkfgi CMfcEoD2FxTvyyWC2CtTO03GDzlTpqfZp7+dxZBaLFimGg8CnTGkuweJ5MZdpkVh81rL vV8MCN1XIMk1Fn/k0zTjG/0ukluPFHeZDQtRCYYIE+XCbVRjKzOg2B8hkRwmxwYctvGY zXuA== X-Gm-Message-State: APjAAAUb4gylyycDQ1mMTbOztwDW0G/4nK70TQafrhFkxSSZLQnKqcVU OYZOdQXla4qlV+KDZK7GXnK/1iprTek08pX5BcM= X-Google-Smtp-Source: APXvYqzYs38vcWA8XTYQ6/bQR6VN+il7W5RyHWICEMlfnkK4VOVNx6yJKOpUbeM/o/gNmhfTvQD92qFBUgw0+jdnlik= X-Received: by 2002:a63:3dc6:: with SMTP id k189mr10954174pga.396.1578576993895; Thu, 09 Jan 2020 05:36:33 -0800 (PST) MIME-Version: 1.0 References: <20200108152100.7630-1-sergey.dyasli@citrix.com> <20200108152100.7630-5-sergey.dyasli@citrix.com> In-Reply-To: <20200108152100.7630-5-sergey.dyasli@citrix.com> From: Paul Durrant Date: Thu, 9 Jan 2020 13:36:22 +0000 Message-ID: Subject: Re: [PATCH v1 4/4] xen/netback: Fix grant copy across page boundary with KASAN To: Sergey Dyasli Cc: xen-devel@lists.xen.org, kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrey Ryabinin , Alexander Potapenko , Dmitry Vyukov , Boris Ostrovsky , Juergen Gross , Stefano Stabellini , George Dunlap , Ross Lagerwall , Andrew Morton , Wei Liu Content-Type: text/plain; charset="UTF-8" X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, 8 Jan 2020 at 15:21, Sergey Dyasli wrote: > > From: Ross Lagerwall > > When KASAN (or SLUB_DEBUG) is turned on, the normal expectation that > allocations are aligned to the next power of 2 of the size does not > hold. Therefore, handle grant copies that cross page boundaries. > > Signed-off-by: Ross Lagerwall > Signed-off-by: Sergey Dyasli > --- > RFC --> v1: > - Added BUILD_BUG_ON to the netback patch > - xenvif_idx_release() now located outside the loop > > CC: Wei Liu > CC: Paul Durrant [snip] > > +static void __init __maybe_unused build_assertions(void) > +{ > + BUILD_BUG_ON(sizeof(struct xenvif_tx_cb) > 48); FIELD_SIZEOF(struct sk_buff, cb) rather than a magic '48' I think. Paul > +} > + > MODULE_LICENSE("Dual BSD/GPL"); > MODULE_ALIAS("xen-backend:vif"); > -- > 2.17.1 > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 56238C282DD for ; Thu, 9 Jan 2020 13:36:50 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1F8652067D for ; Thu, 9 Jan 2020 13:36:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="rmPFqplF" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1F8652067D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ipXzI-0002BA-Uv; Thu, 09 Jan 2020 13:36:36 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ipXzH-0002B4-M8 for xen-devel@lists.xen.org; Thu, 09 Jan 2020 13:36:35 +0000 X-Inumbo-ID: 0d9497ea-32e5-11ea-b89f-bc764e2007e4 Received: from mail-pf1-x441.google.com (unknown [2607:f8b0:4864:20::441]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 0d9497ea-32e5-11ea-b89f-bc764e2007e4; Thu, 09 Jan 2020 13:36:35 +0000 (UTC) Received: by mail-pf1-x441.google.com with SMTP id q8so3398460pfh.7 for ; Thu, 09 Jan 2020 05:36:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=cf95WORT6GX1WJSn8Af/G1OCB1Irn/cMBwQxwXC43X4=; b=rmPFqplFiG2J23km4wRX/Ng/4kLCh6mrZt9F0tbMq9Fkk952L8sqSIO4o7LgYULfwU 1KtC1gWAKTfa0XSUUAQOR/AmiotKOiyRCtMVmsyZgWl7wiNros6lsyIzVBKk/lEPxX0N 5O4IjgJWkFY0lyOJzBgBeSNBDQagktLXZMzfFMLURXzGXfLJjyf9u7JhjvdvJVIPPoIV +FpzI1GmzdsT0mwz6RfBwpQvN5KYst18bnDXEZX/R66raaG4xngUb7fMMFDFr4XRrHLC HS0EaXm5BYy8/MMd3k9yPgsTCotJx3MtIWFki3GxVm5+umLuLYzDRu1kI/QqXQdGnzea 4fzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=cf95WORT6GX1WJSn8Af/G1OCB1Irn/cMBwQxwXC43X4=; b=g5yIuJbQXIcSjx8af4YGg/TDTzESyrh2TyHYJjnHAnRQ4fgGIa7BvxDQd5LafUlW2v dyKhpvAt4pWQn08bYO/NvAtLf4nydKG+NROEhS68ywHwJEam2MqmOzpvlX0aoTtJj1vN EP8Uc96ry/Xke/ScfbzZtvYNRE8o8NTI2vabT4Z5I2Q6tWANfzr7AZ6PKCe8tjMD1+8H 8nJQFdrgJud2O3YML/4KeCZS5/dknxWsrsWNVO09GP/2gzdnTkePSEjoRYMHbkwG367P ZcSph2M8BhOaTsYLT6xKuA6OP1z3KEBFwzbtN/ZQRcQGyRDQL5NccgGcE/x2gjjcCc4Z gKpg== X-Gm-Message-State: APjAAAV+9OZjoMr3xVYXZVj1oIatmS5xl3J0wkOmJYfrlrrdIlHRW1aN hC19VWrniCjHE6DXqiGEZyOkCKv4enoB8REdndY= X-Google-Smtp-Source: APXvYqzYs38vcWA8XTYQ6/bQR6VN+il7W5RyHWICEMlfnkK4VOVNx6yJKOpUbeM/o/gNmhfTvQD92qFBUgw0+jdnlik= X-Received: by 2002:a63:3dc6:: with SMTP id k189mr10954174pga.396.1578576993895; Thu, 09 Jan 2020 05:36:33 -0800 (PST) MIME-Version: 1.0 References: <20200108152100.7630-1-sergey.dyasli@citrix.com> <20200108152100.7630-5-sergey.dyasli@citrix.com> In-Reply-To: <20200108152100.7630-5-sergey.dyasli@citrix.com> From: Paul Durrant Date: Thu, 9 Jan 2020 13:36:22 +0000 Message-ID: To: Sergey Dyasli Subject: Re: [Xen-devel] [PATCH v1 4/4] xen/netback: Fix grant copy across page boundary with KASAN X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Wei Liu , Stefano Stabellini , Ross Lagerwall , George Dunlap , linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, xen-devel@lists.xen.org, linux-mm@kvack.org, Alexander Potapenko , Andrey Ryabinin , Boris Ostrovsky , Andrew Morton , Dmitry Vyukov Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gV2VkLCA4IEphbiAyMDIwIGF0IDE1OjIxLCBTZXJnZXkgRHlhc2xpIDxzZXJnZXkuZHlhc2xp QGNpdHJpeC5jb20+IHdyb3RlOgo+Cj4gRnJvbTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3 YWxsQGNpdHJpeC5jb20+Cj4KPiBXaGVuIEtBU0FOIChvciBTTFVCX0RFQlVHKSBpcyB0dXJuZWQg b24sIHRoZSBub3JtYWwgZXhwZWN0YXRpb24gdGhhdAo+IGFsbG9jYXRpb25zIGFyZSBhbGlnbmVk IHRvIHRoZSBuZXh0IHBvd2VyIG9mIDIgb2YgdGhlIHNpemUgZG9lcyBub3QKPiBob2xkLiBUaGVy ZWZvcmUsIGhhbmRsZSBncmFudCBjb3BpZXMgdGhhdCBjcm9zcyBwYWdlIGJvdW5kYXJpZXMuCj4K PiBTaWduZWQtb2ZmLWJ5OiBSb3NzIExhZ2Vyd2FsbCA8cm9zcy5sYWdlcndhbGxAY2l0cml4LmNv bT4KPiBTaWduZWQtb2ZmLWJ5OiBTZXJnZXkgRHlhc2xpIDxzZXJnZXkuZHlhc2xpQGNpdHJpeC5j b20+Cj4gLS0tCj4gUkZDIC0tPiB2MToKPiAtIEFkZGVkIEJVSUxEX0JVR19PTiB0byB0aGUgbmV0 YmFjayBwYXRjaAo+IC0geGVudmlmX2lkeF9yZWxlYXNlKCkgbm93IGxvY2F0ZWQgb3V0c2lkZSB0 aGUgbG9vcAo+Cj4gQ0M6IFdlaSBMaXUgPHdlaS5saXVAa2VybmVsLm9yZz4KPiBDQzogUGF1bCBE dXJyYW50IDxwYXVsQHhlbi5vcmc+CltzbmlwXQo+Cj4gK3N0YXRpYyB2b2lkIF9faW5pdCBfX21h eWJlX3VudXNlZCBidWlsZF9hc3NlcnRpb25zKHZvaWQpCj4gK3sKPiArICAgICAgIEJVSUxEX0JV R19PTihzaXplb2Yoc3RydWN0IHhlbnZpZl90eF9jYikgPiA0OCk7CgpGSUVMRF9TSVpFT0Yoc3Ry dWN0IHNrX2J1ZmYsIGNiKSByYXRoZXIgdGhhbiBhIG1hZ2ljICc0OCcgSSB0aGluay4KCiAgUGF1 bAoKPiArfQo+ICsKPiAgTU9EVUxFX0xJQ0VOU0UoIkR1YWwgQlNEL0dQTCIpOwo+ICBNT0RVTEVf QUxJQVMoInhlbi1iYWNrZW5kOnZpZiIpOwo+IC0tCj4gMi4xNy4xCj4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v cmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=