From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qk1-f181.google.com (mail-qk1-f181.google.com [209.85.222.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6B9A363A3; Sun, 17 Dec 2023 09:32:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aYcTHJG4" Received: by mail-qk1-f181.google.com with SMTP id af79cd13be357-77f320ca2d5so168546285a.1; Sun, 17 Dec 2023 01:32:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702805547; x=1703410347; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=AYgbvFbc651hSucNzc13NR4vR18Ijwdd2sBGbj5gCiE=; b=aYcTHJG48NZH2IkVoopThsXnbeLSlQ8JALLkVExwTww98AifFv4wCQmQfN6C7PJmXU cFUJxeLdehYJHpxeVIqDJSxQD5n/46mCslZCojXJZqwL3a6La2NVAD+biN36BorGOQHe WYbYv+odf3YR+eN6mZ++Joy+v/pdjgEVjLtAQh6G+SQngVox4xCTxrVzPJFuo/7BAygi nTgdCyTgP1d3ymV8pME/G0tjbCx4l+pV+5WoKMW/PLwZrETZLwQdkEX0QuF9KyIpngQA b5wuUoQ3irMheyMrdVtbqg+Qlp66r0Uq1Qt3A4R3MFuZQU/8VedwFoMNNuEU7Rf+Whu5 PCuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702805547; x=1703410347; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AYgbvFbc651hSucNzc13NR4vR18Ijwdd2sBGbj5gCiE=; b=rmj/gK6+nq1qB3iwS7j4Dmx9P7q7/WS4z81nKrKz0LjEFJXOKmStDLSIodC9BD4Kwq Xi//hWT98sEv3sQB7DivRNyZ3dODU5liusMyDZ55G81EEizKfu18rm3bldiLSWyFVCTU 7nX0R04NnNMn+XeB8z5/e2xwsqpi3IvwOB1ZFprmVe+FxAsH7SQ8GPnpovF0DHn7qIxR vVYaH/uqpnS3+LpPLH9GbaxhZze1VwugAZ4YEgMvdG8F+ddNSdiH5MLw66vYQLRYOTFE avDllb8e2X7RMyW5Kpq20cFrBZqsg+qz2hNUMCrllAbADHhE9qzgSXzNAU6KmJF1EFRX OTNw== X-Gm-Message-State: AOJu0YxrApCWEjLXXNi5eYVoQ6ARchCSjlPceJCc5FVkVCMP69mFjSVT 1NWFqu1z/a5HxfL/WxdMMn/9XhZPQPJjCOQ5eR0= X-Google-Smtp-Source: AGHT+IH3PaGiNcaIanZwKUHmvWmiaD6dbQ+VGgW1jriDoXnyIC8pX42JlN6X1eEh0YqPzW10W78T8JV0bY1+1ymerFY= X-Received: by 2002:a05:620a:4950:b0:77f:89e:986d with SMTP id vz16-20020a05620a495000b0077f089e986dmr18486113qkn.78.1702805547194; Sun, 17 Dec 2023 01:32:27 -0800 (PST) Precedence: bulk X-Mailing-List: linux-unionfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <0000000000003362ba060ca8beac@google.com> In-Reply-To: From: Amir Goldstein Date: Sun, 17 Dec 2023 11:32:16 +0200 Message-ID: Subject: Re: [PATCH] ovl: fix BUG: Dentry still in use in unmount To: Edward Adam Davis , viro@zeniv.linux.org.uk Cc: syzbot+8608bb4553edb8c78f41@syzkaller.appspotmail.com, chao@kernel.org, jaegeuk@kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, phillip@squashfs.org.uk, reiserfs-devel@vger.kernel.org, squashfs-devel@lists.sourceforge.net, syzkaller-bugs@googlegroups.com, terrelln@fb.com, overlayfs , Miklos Szeredi Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Edward, Thanks for the quick fix, but it is incorrect. On Sun, Dec 17, 2023 at 10:11=E2=80=AFAM Edward Adam Davis = wrote: > > workdir and destdir could be the same when copying up to indexdir. This is not the reason for the bug, the reason is: syzbot exercised the forbidden practice of moving the workdir under lowerdir while overlayfs is mounted and tripped a dentry reference leak= . > > Fixes: c63e56a4a652 ("ovl: do not open/llseek lower file with upper sb_wr= iters held") > Reported-and-tested-by: syzbot+8608bb4553edb8c78f41@syzkaller.appspotmail= .com > Signed-off-by: Edward Adam Davis > --- > fs/overlayfs/copy_up.c | 20 +++++++++++++------- > 1 file changed, 13 insertions(+), 7 deletions(-) > > diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c > index 4382881b0709..ae5eb442025d 100644 > --- a/fs/overlayfs/copy_up.c > +++ b/fs/overlayfs/copy_up.c > @@ -731,10 +731,14 @@ static int ovl_copy_up_workdir(struct ovl_copy_up_c= tx *c) > .rdev =3D c->stat.rdev, > .link =3D c->link > }; > + err =3D -EIO; > + /* workdir and destdir could be the same when copying up to index= dir */ > + if (lock_rename(c->workdir, c->destdir) !=3D NULL) > + goto unlock; You can't do that. See comment below ovl_copy_up_data(). > > err =3D ovl_prep_cu_creds(c->dentry, &cc); > if (err) > - return err; > + goto unlock; > > ovl_start_write(c->dentry); > inode_lock(wdir); > @@ -743,8 +747,9 @@ static int ovl_copy_up_workdir(struct ovl_copy_up_ctx= *c) > ovl_end_write(c->dentry); > ovl_revert_cu_creds(&cc); > > + err =3D PTR_ERR(temp); > if (IS_ERR(temp)) > - return PTR_ERR(temp); > + goto unlock; > > /* > * Copy up data first and then xattrs. Writing data after > @@ -760,10 +765,9 @@ static int ovl_copy_up_workdir(struct ovl_copy_up_ct= x *c) > * If temp was moved, abort without the cleanup. > */ > ovl_start_write(c->dentry); > - if (lock_rename(c->workdir, c->destdir) !=3D NULL || > - temp->d_parent !=3D c->workdir) { > + if (temp->d_parent !=3D c->workdir) { dput(temp); here is all that should be needed to fix the leak. > err =3D -EIO; > - goto unlock; > + goto unlockcd; > } else if (err) { > goto cleanup; > } See my suggested fix at https://github.com/amir73il/linux/commits/ovl-fixes Al, Heads up. This fix will have a minor conflict with a8b0026847b8 ("rename(): avoid a deadlock in the case of parents having no common ancestor") on your work.rename branch. I plan to push my fix to linux-next soon, but I see that work.rename is not in linux-next yet. Thanks, Amir. 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 Received: from lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 269EEC3DA6E for ; Sun, 17 Dec 2023 09:32:42 +0000 (UTC) Received: from [127.0.0.1] (helo=sfs-ml-2.v29.lw.sourceforge.com) by sfs-ml-2.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1rEnVo-0003Dm-Fb; Sun, 17 Dec 2023 09:32:41 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-2.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1rEnVn-0003DY-J6; Sun, 17 Dec 2023 09:32:40 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:Content-Type:Cc:To: Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=AYgbvFbc651hSucNzc13NR4vR18Ijwdd2sBGbj5gCiE=; b=iblChlvETsl6lCrX+zV8jJLRTj 446btIu9tjh7i3sM9SRr6cNRvV5qrC4Y+wnaB6F27euNBN2b2FE1QgbPsn5GoyL84jV0WB8jESxhA F5l5Cp1uX0nIo58aZXwL3AgKXLp5D+kxq9+hlFFi8JKJj9tGyGdTM69+a1nJrbG/7pNM=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:Content-Type:Cc:To:Subject:Message-ID:Date:From :In-Reply-To:References:MIME-Version:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=AYgbvFbc651hSucNzc13NR4vR18Ijwdd2sBGbj5gCiE=; b=m8ZKDKMAdKmQCR9EIojW+YXj2i LknNhpw+11IqUAsuvqIpnIX60SPh5hnov7cO7zG1UXx+xUtUT0fst+MCkk8ceroje/+e0A5GxKNrp 4hwOQbKUPUmiNJLQ3Ku5S4zs8jJS8SJ91rACxw9Tn409xOAChT03vfRe482Dy7+kD8VM=; Received: from mail-qk1-f170.google.com ([209.85.222.170]) by sfi-mx-2.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.95) id 1rEnVm-0007xG-54; Sun, 17 Dec 2023 09:32:40 +0000 Received: by mail-qk1-f170.google.com with SMTP id af79cd13be357-77f43042268so252621985a.1; Sun, 17 Dec 2023 01:32:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702805547; x=1703410347; darn=lists.sourceforge.net; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=AYgbvFbc651hSucNzc13NR4vR18Ijwdd2sBGbj5gCiE=; b=mLr6f/HqsDFaft8wkmlZyxTjvdkx2US/aTJjLMun9R49s49rEKfGGgVMD5iWDxaFU1 XKHz3+IPq/RMfT/eF9xnqK7CRcPF++Xvh9a93H25B0nEt+HojvblhnNxoOkvlnV9L86T 4C87aJX8RzRFERbOhRlOdFx2xw3yLYz/uczXBxR/avBRgykeURxUTpWwqNmR/SDjRxt0 0sLpRTOvVdD5Frw5ZYAhw8bX3IPKMk9+TW9lzgTgnxLo8GJiWIooZmLKHAj9y3OKaU/+ 3ZS6bh4qLbJ75iKKC72zYtHo0nh0YIdL3MFCxBH/GPpU4D52scfMzP7ymlbcj7f+JTdE +L5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702805547; x=1703410347; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AYgbvFbc651hSucNzc13NR4vR18Ijwdd2sBGbj5gCiE=; b=LK2J0Y7RYHEAHgceSHTlWrYjn2Va5RDJS7UkqjLpdFEhnhj/X6AooCiRPXhLzeFLzd ywkIakrm1dXRDj1biU82l7DOHzVvCRrnUK3Uia4bGG0XhryMPWwIQoC1EvQiTo9Xgblq RiHi3xqlz+OlEpyViW8DXHbZ+b/NG2soUfg85+78NSNgRarHEcnyyJSYR4ioMsjWcF7b NHWNQAaMYNLIDOEeMzIz94ib+7amvcn6fbzUUEQKXtd8NqxBRA+oEUeRrLlwi5l3yoab M7fHb2y2xowCaycil4XQL2rbml+8DW1F5A+uEUx7l3GDBTr7moaNW/E1D/TDKuYEwy7Y ui4A== X-Gm-Message-State: AOJu0YyUJMtmciWjCOt5RPxzu6qkXMDg7+YfPnwv94GTxYfCxOfeAb7V lOYdLJDwri9kiBwWT6v6TptXCMBULeGrpQ4uDic= X-Google-Smtp-Source: AGHT+IH3PaGiNcaIanZwKUHmvWmiaD6dbQ+VGgW1jriDoXnyIC8pX42JlN6X1eEh0YqPzW10W78T8JV0bY1+1ymerFY= X-Received: by 2002:a05:620a:4950:b0:77f:89e:986d with SMTP id vz16-20020a05620a495000b0077f089e986dmr18486113qkn.78.1702805547194; Sun, 17 Dec 2023 01:32:27 -0800 (PST) MIME-Version: 1.0 References: <0000000000003362ba060ca8beac@google.com> In-Reply-To: From: Amir Goldstein Date: Sun, 17 Dec 2023 11:32:16 +0200 Message-ID: To: Edward Adam Davis , viro@zeniv.linux.org.uk X-Headers-End: 1rEnVm-0007xG-54 Subject: Re: [f2fs-dev] [PATCH] ovl: fix BUG: Dentry still in use in unmount X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: squashfs-devel@lists.sourceforge.net, reiserfs-devel@vger.kernel.org, Miklos Szeredi , syzbot+8608bb4553edb8c78f41@syzkaller.appspotmail.com, syzkaller-bugs@googlegroups.com, linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, terrelln@fb.com, phillip@squashfs.org.uk, linux-fsdevel@vger.kernel.org, jaegeuk@kernel.org, overlayfs Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net SGkgRWR3YXJkLAoKVGhhbmtzIGZvciB0aGUgcXVpY2sgZml4LCBidXQgaXQgaXMgaW5jb3JyZWN0 LgoKT24gU3VuLCBEZWMgMTcsIDIwMjMgYXQgMTA6MTHigK9BTSBFZHdhcmQgQWRhbSBEYXZpcyA8 ZWFkYXZpc0BxcS5jb20+IHdyb3RlOgo+Cj4gd29ya2RpciBhbmQgZGVzdGRpciBjb3VsZCBiZSB0 aGUgc2FtZSB3aGVuIGNvcHlpbmcgdXAgdG8gaW5kZXhkaXIuCgpUaGlzIGlzIG5vdCB0aGUgcmVh c29uIGZvciB0aGUgYnVnLCB0aGUgcmVhc29uIGlzOgoKICAgIHN5emJvdCBleGVyY2lzZWQgdGhl IGZvcmJpZGRlbiBwcmFjdGljZSBvZiBtb3ZpbmcgdGhlIHdvcmtkaXIgdW5kZXIKICAgIGxvd2Vy ZGlyIHdoaWxlIG92ZXJsYXlmcyBpcyBtb3VudGVkIGFuZCB0cmlwcGVkIGEgZGVudHJ5IHJlZmVy ZW5jZSBsZWFrLgoKPgo+IEZpeGVzOiBjNjNlNTZhNGE2NTIgKCJvdmw6IGRvIG5vdCBvcGVuL2xs c2VlayBsb3dlciBmaWxlIHdpdGggdXBwZXIgc2Jfd3JpdGVycyBoZWxkIikKPiBSZXBvcnRlZC1h bmQtdGVzdGVkLWJ5OiBzeXpib3QrODYwOGJiNDU1M2VkYjhjNzhmNDFAc3l6a2FsbGVyLmFwcHNw b3RtYWlsLmNvbQo+IFNpZ25lZC1vZmYtYnk6IEVkd2FyZCBBZGFtIERhdmlzIDxlYWRhdmlzQHFx LmNvbT4KPiAtLS0KPiAgZnMvb3ZlcmxheWZzL2NvcHlfdXAuYyB8IDIwICsrKysrKysrKysrKyst LS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygt KQo+Cj4gZGlmZiAtLWdpdCBhL2ZzL292ZXJsYXlmcy9jb3B5X3VwLmMgYi9mcy9vdmVybGF5ZnMv Y29weV91cC5jCj4gaW5kZXggNDM4Mjg4MWIwNzA5Li5hZTVlYjQ0MjAyNWQgMTAwNjQ0Cj4gLS0t IGEvZnMvb3ZlcmxheWZzL2NvcHlfdXAuYwo+ICsrKyBiL2ZzL292ZXJsYXlmcy9jb3B5X3VwLmMK PiBAQCAtNzMxLDEwICs3MzEsMTQgQEAgc3RhdGljIGludCBvdmxfY29weV91cF93b3JrZGlyKHN0 cnVjdCBvdmxfY29weV91cF9jdHggKmMpCj4gICAgICAgICAgICAgICAgIC5yZGV2ID0gYy0+c3Rh dC5yZGV2LAo+ICAgICAgICAgICAgICAgICAubGluayA9IGMtPmxpbmsKPiAgICAgICAgIH07Cj4g KyAgICAgICBlcnIgPSAtRUlPOwo+ICsgICAgICAgLyogd29ya2RpciBhbmQgZGVzdGRpciBjb3Vs ZCBiZSB0aGUgc2FtZSB3aGVuIGNvcHlpbmcgdXAgdG8gaW5kZXhkaXIgKi8KPiArICAgICAgIGlm IChsb2NrX3JlbmFtZShjLT53b3JrZGlyLCBjLT5kZXN0ZGlyKSAhPSBOVUxMKQo+ICsgICAgICAg ICAgICAgICBnb3RvIHVubG9jazsKCllvdSBjYW4ndCBkbyB0aGF0LiBTZWUgY29tbWVudCBiZWxv dyBvdmxfY29weV91cF9kYXRhKCkuCgo+Cj4gICAgICAgICBlcnIgPSBvdmxfcHJlcF9jdV9jcmVk cyhjLT5kZW50cnksICZjYyk7Cj4gICAgICAgICBpZiAoZXJyKQo+IC0gICAgICAgICAgICAgICBy ZXR1cm4gZXJyOwo+ICsgICAgICAgICAgICAgICBnb3RvIHVubG9jazsKPgo+ICAgICAgICAgb3Zs X3N0YXJ0X3dyaXRlKGMtPmRlbnRyeSk7Cj4gICAgICAgICBpbm9kZV9sb2NrKHdkaXIpOwo+IEBA IC03NDMsOCArNzQ3LDkgQEAgc3RhdGljIGludCBvdmxfY29weV91cF93b3JrZGlyKHN0cnVjdCBv dmxfY29weV91cF9jdHggKmMpCj4gICAgICAgICBvdmxfZW5kX3dyaXRlKGMtPmRlbnRyeSk7Cj4g ICAgICAgICBvdmxfcmV2ZXJ0X2N1X2NyZWRzKCZjYyk7Cj4KPiArICAgICAgIGVyciA9IFBUUl9F UlIodGVtcCk7Cj4gICAgICAgICBpZiAoSVNfRVJSKHRlbXApKQo+IC0gICAgICAgICAgICAgICBy ZXR1cm4gUFRSX0VSUih0ZW1wKTsKPiArICAgICAgICAgICAgICAgZ290byB1bmxvY2s7Cj4KPiAg ICAgICAgIC8qCj4gICAgICAgICAgKiBDb3B5IHVwIGRhdGEgZmlyc3QgYW5kIHRoZW4geGF0dHJz LiBXcml0aW5nIGRhdGEgYWZ0ZXIKPiBAQCAtNzYwLDEwICs3NjUsOSBAQCBzdGF0aWMgaW50IG92 bF9jb3B5X3VwX3dvcmtkaXIoc3RydWN0IG92bF9jb3B5X3VwX2N0eCAqYykKPiAgICAgICAgICAq IElmIHRlbXAgd2FzIG1vdmVkLCBhYm9ydCB3aXRob3V0IHRoZSBjbGVhbnVwLgo+ICAgICAgICAg ICovCj4gICAgICAgICBvdmxfc3RhcnRfd3JpdGUoYy0+ZGVudHJ5KTsKPiAtICAgICAgIGlmIChs b2NrX3JlbmFtZShjLT53b3JrZGlyLCBjLT5kZXN0ZGlyKSAhPSBOVUxMIHx8Cj4gLSAgICAgICAg ICAgdGVtcC0+ZF9wYXJlbnQgIT0gYy0+d29ya2Rpcikgewo+ICsgICAgICAgaWYgKHRlbXAtPmRf cGFyZW50ICE9IGMtPndvcmtkaXIpIHsKCiAgICAgICAgICAgICAgICAgIGRwdXQodGVtcCk7Cgpo ZXJlIGlzIGFsbCB0aGF0IHNob3VsZCBiZSBuZWVkZWQgdG8gZml4IHRoZSBsZWFrLgoKCj4gICAg ICAgICAgICAgICAgIGVyciA9IC1FSU87Cj4gLSAgICAgICAgICAgICAgIGdvdG8gdW5sb2NrOwo+ ICsgICAgICAgICAgICAgICBnb3RvIHVubG9ja2NkOwo+ICAgICAgICAgfSBlbHNlIGlmIChlcnIp IHsKPiAgICAgICAgICAgICAgICAgZ290byBjbGVhbnVwOwo+ICAgICAgICAgfQoKU2VlIG15IHN1 Z2dlc3RlZCBmaXggYXQgaHR0cHM6Ly9naXRodWIuY29tL2FtaXI3M2lsL2xpbnV4L2NvbW1pdHMv b3ZsLWZpeGVzCgpBbCwKCkhlYWRzIHVwLgpUaGlzIGZpeCB3aWxsIGhhdmUgYSBtaW5vciBjb25m bGljdCB3aXRoIGE4YjAwMjY4NDdiOCAoInJlbmFtZSgpOiBhdm9pZAphIGRlYWRsb2NrIGluIHRo ZSBjYXNlIG9mIHBhcmVudHMgaGF2aW5nIG5vIGNvbW1vbiBhbmNlc3RvciIpCm9uIHlvdXIgd29y ay5yZW5hbWUgYnJhbmNoLgoKSSBwbGFuIHRvIHB1c2ggbXkgZml4IHRvIGxpbnV4LW5leHQgc29v biwgYnV0IEkgc2VlIHRoYXQgd29yay5yZW5hbWUKaXMgbm90IGluIGxpbnV4LW5leHQgeWV0LgoK VGhhbmtzLApBbWlyLgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkxpbnV4LWYyZnMtZGV2ZWwgbWFpbGluZyBsaXN0CkxpbnV4LWYyZnMtZGV2ZWxAbGlz dHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xp c3RpbmZvL2xpbnV4LWYyZnMtZGV2ZWwK