From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id 346B5802A5 for ; Mon, 12 Oct 2026 10:29:59 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69CASf2R020510; Mon, 12 Oct 2026 13:28:41 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69CASf2R020510 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=sashiko.virtuozzo.com header.i=@sashiko.virtuozzo.com header.b="ddHoMmlb"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amazonses.com header.i=@amazonses.com header.b="Dz6w5pXJ" Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69CASdVE020506 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Mon, 12 Oct 2026 13:28:39 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69CASdVE020506 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-48c69bdeaacso1396758f8f.0 for ; Mon, 12 Oct 2026 03:28:39 -0700 (PDT) X-Gm-Message-State: AFq9FYIPFwTiR5PRTFiIhGdYrsIBKKLvUJ5pAaW1cCeJKYR17RhanxQB gXF1hQUAFP+f1otvNQ1MpUz///uQzf5vd/UL7/b8aFBhTEMtWGcAfDieRIWpwNoqiBI45aKV8Ig coMkgEJowuKSbdUa8w/nGUtqIamNcapWGHD8MvppCvTfWMQgBc0HbEg== X-Gm-Gg: AYBFou0lcrdQZd1DBPolFdjPRGD+hlXybIl8RBLtjSpjutpr6izvgfYOlAntGNuNqH5 whF8X109X4+TKCDb7nwVpoH5boWlnEvFXON2N52gDrl2nvi3YCrnYsmKX+/RuVhGYytSNHtDSzV eQbHV+OLH3KAYfg5mWzAHntSn/7LuGTA651/GZRcXla3I77VYIBddAjjPy7ZtIjfLx9YIsyeoIt LQ+xUjkBGH5ynPFTOXiLx8ZYbfu58z9PCoBjHRPFhUw4Xl16vdLf+k4+uDVgspmU9rRTDxDNe4N fcD89ukiKlKc31Cv3gxC46nqCb0fN9bU8O9+mDnveneHKY3HIIL/flWg/mtyvJe9Q6eTQxcrZO1 C/aSLLyEPXZ/V6uqt8Q4z6C063lwPSdfi6pNz8D/EoOQbt6s6PudIL4XlIyyd8uBlIY+3p4uwUC JKfL9Tot9Weqou1B4XYXvKuFuvdleYCxsDanDvHYqAchR79qvjs3naljphagttLnmoPEdSD5dUX 4/1/UYOOgpU+/FeYHGx X-Received: by 2002:a05:6000:2601:b0:48a:f571:7b50 with SMTP id ffacd0b85a97d-48dbaae7245mr17433347f8f.27.1791800919094; Mon, 12 Oct 2026 03:28:39 -0700 (PDT) X-Received: by 2002:a05:6000:2601:b0:48a:f571:7b50 with SMTP id ffacd0b85a97d-48dbaae7245mr17433284f8f.27.1791800918382; Mon, 12 Oct 2026 03:28:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1791800918; cv=none; d=google.com; s=arc-20260327; b=lG1FZlBDKTVPSFFAWwH4ledeeYnpGdwH9ik0uh8PUhlR8x5ZEwWaMvcQr1a7DLl7H7 ziG+3nWP+PhVHKUSM7fjy8vZkbdqiEFKVJs7WxUPN6LIQvx3f2kx44hNYS43x98vO157 hSqp/OXKDZ3/umRxIRLyEpbOZN3bEa0srOjGtUrnlvv8vBHEiV6jlXA3Ew9MF7LiS57Z S519V8k8p7dLy6/HBk68/8toUbzK0yubu0AwW5Xl5tUqpkCURKZXuX8XOHO4Z7qXmj9b Q9B/bw1syNSyK9AfO6t1wpDqJ7k57Yl26lYkgRHLMVZCQ84Ju7p2LCeqEmfMZhsopq/1 QQlQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=feedback-id:date:content-transfer-encoding:references:in-reply-to :cc:to:subject:from:message-id:dkim-signature:dkim-signature; bh=cnM6morEAc5B16rMUUbsfKGpUwHuRtm3SWZ6QKtRCPo=; fh=DxgDGhW4EsrmKFde72KuytiZA/pTUWHLT4z632Z57kY=; b=oCMGAui8OWYuVy/QO3Kn1tjPzAhs5awTcP63I0cAY5OLClJUJo1Zo2M6yrSBHLEIiK vhG+FS3GEu0kjz+k+hTdGMDDrabQ6ERcHY3K8bwxcQIL2KHM/GjmO8IwvnldKe9URhVI HT56WtB3CrTNLiCXz3E+7dkSBkPreOjcpae/Qr6Z2GUewWpiDA7ywXnVUa6IsbpKR5VS KjsWAneqgAHY7O6m+84FNE0EwX6xhUiTMSQ2aGKite4fhrMOWinmWJrYufDrW2hmrP3c QDftqjpjH9OV3GKcF/QCeRoX/AqKg0KOFAIJ6PyASS3AN6kvUhqF00GH5DHOtn5bSTap Fsmg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sashiko.virtuozzo.com header.s=23yjbh4k34hwzfubhuiim7m4inbd3ick header.b=ddHoMmlb; dkim=pass header.i=@amazonses.com header.s=qftdzk2dqsatjnlrq4r5brjbihpfcrsh header.b=Dz6w5pXJ; spf=pass (google.com: domain of 010701a12fa83f87-0716a1bc-6fe8-438e-920a-ce20a69254a3-000000@eu-central-1.amazonses.com designates 69.169.224.1 as permitted sender) smtp.mailfrom=010701a12fa83f87-0716a1bc-6fe8-438e-920a-ce20a69254a3-000000@eu-central-1.amazonses.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from b224-1.smtp-out.eu-central-1.amazonses.com (b224-1.smtp-out.eu-central-1.amazonses.com. [69.169.224.1]) by mx.google.com with ESMTPS id ffacd0b85a97d-48db9adedc6si17385042f8f.294.2026.10.12.03.28.38 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 12 Oct 2026 03:28:38 -0700 (PDT) Received-SPF: pass (google.com: domain of 010701a12fa83f87-0716a1bc-6fe8-438e-920a-ce20a69254a3-000000@eu-central-1.amazonses.com designates 69.169.224.1 as permitted sender) client-ip=69.169.224.1; Authentication-Results: mx.google.com; dkim=pass header.i=@sashiko.virtuozzo.com header.s=23yjbh4k34hwzfubhuiim7m4inbd3ick header.b=ddHoMmlb; dkim=pass header.i=@amazonses.com header.s=qftdzk2dqsatjnlrq4r5brjbihpfcrsh header.b=Dz6w5pXJ; spf=pass (google.com: domain of 010701a12fa83f87-0716a1bc-6fe8-438e-920a-ce20a69254a3-000000@eu-central-1.amazonses.com designates 69.169.224.1 as permitted sender) smtp.mailfrom=010701a12fa83f87-0716a1bc-6fe8-438e-920a-ce20a69254a3-000000@eu-central-1.amazonses.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=23yjbh4k34hwzfubhuiim7m4inbd3ick; d=sashiko.virtuozzo.com; t=1791800918; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date; bh=JVEC9Aqw2+NeIYtVx7fpsaarAPfRCq8tz1er08WO0b0=; b=ddHoMmlbLQg3c5zCzUzmc3hXgzIyajUTTPNxIRCTY7b0s71Ic5SMsGS4aLin+qxl Ov/jl+KXz/NN3wtWpcTlUxubdGrk2Uu82Gn7uZECJwx9cgy9NoipGgYeWYqEPTY9Hws rSimBLiN4DUyLO1yheiftGiF3CxiENa2VQsL8wB7CTEmvx7UOxRA9/o9BsgCk2Bv0Vf o3fAtPnQal6anH+BKBsGhLvZ1Hy2ZiwMDSJmGzX/zRYRXO4wFhrfjgxZbpozZ/M7fau 84Hwlqo9W1PqmeNqx72I2OHpKs/fOyJjDSAeLzEUTDHxyAy3hS4EEu7OnFkNotsbTPH zFI6u745IA== DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=qftdzk2dqsatjnlrq4r5brjbihpfcrsh; d=amazonses.com; t=1791800918; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date:Feedback-ID; bh=JVEC9Aqw2+NeIYtVx7fpsaarAPfRCq8tz1er08WO0b0=; b=Dz6w5pXJKP1eHCgFnjyGmcPUiK5Yb5RO+LgYbVGrl/AwAL73qNvt4tkVVTuKIQwn /Xn9WcXmNbt4z4DG0B6Pnj9clfNnEhQ1NFA69ClPpH9Mwoc2uhp2Xq29ugWpFeJBP22 jyndTLnlmlLQiMtUKOdKsuuuVVi6jSDwYrLZNQNM= Message-ID: <010701a12fa83f87-0716a1bc-6fe8-438e-920a-ce20a69254a3-000000@eu-central-1.amazonses.com> From: no-reply@sashiko.virtuozzo.com To: ptikhomirov@virtuozzo.com, khorenko@virtuozzo.com, Mirian Shilakadze In-Reply-To: <20261012102058.46896-1-mirian.shilakadze@virtuozzo.com> References: <20261012102058.46896-1-mirian.shilakadze@virtuozzo.com> Date: Mon, 12 Oct 2026 10:28:37 +0000 Feedback-ID: ::1.eu-central-1.2wRQJBpg9g1fGRYexx3dUuYGS25Bux+2TEOx72/m6U4=:AmazonSES X-SES-Outgoing: 2026.10.12-69.169.224.1 X-OZ-Fwd: true X-MIME-Autoconverted: from quoted-printable to 8bit by mail.openvz.org id 69CASdVE020506 Cc: devel@openvz.org Subject: Re: [Devel] [PATCH vz10] fs: let the protection flags of a mount be locked from userspace X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MyBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW01lZGl1bV0gZnM6IGRvX3JlbW91 bnQoKSByZXR1cm5zIC1FUEVSTSBhZnRlciByZWNvbmZpZ3VyZV9zdXBlcigpIGFscmVhZHkgY2hh bmdlZCB0aGUgc2IKLSBbTG93XSBmczogTU9VTlRfQVRUUl9WRV9MT0NLIGxvY2sgc3RhdGUgaXMg d3JpdGUtb25seSwgbm90IHJlcG9ydGVkIGJ5IG1udF90b19hdHRyX2ZsYWdzKCkKLSBbTG93XSBw ZXJmIGJlYXV0eTogTU9VTlRfQVRUUl9WRV9MT0NLIGdyb3dzIGZzbW91bnRfYXR0cl9mbGFncyB0 byA2NSBlbnRyaWVzLCBVQiBvbiAzMi1iaXQKLS0KCmNvbW1pdCA4YzBmMTY5ZmQwM2YyZjQ3YzY3 NTVkMTg0OThmMDQ3MzdhOGY3ZjIxCkF1dGhvcjogTWlyaWFuIFNoaWxha2FkemUgPG1pcmlhbi5z aGlsYWthZHplQHZpcnR1b3p6by5jb20+CgpmczogbGV0IHRoZSBwcm90ZWN0aW9uIGZsYWdzIG9m IGEgbW91bnQgYmUgbG9ja2VkIGZyb20gdXNlcnNwYWNlCgpUaGlzIHBhdGNoIGFkZHMgTU9VTlRf QVRUUl9WRV9MT0NLIHRvIG1vdW50X3NldGF0dHIoKS4gV2l0aCBpdCwgYSBob3N0IHRhc2sKd2l0 aCBDQVBfU1lTX0FETUlOIGNhbiBsb2NrIG9yIHVubG9jayB0aGUgcm8sIG5vc3VpZCwgbm9kZXYg YW5kIG5vZXhlYwpwcm90ZWN0aW9ucyBvZiBhIG1vdW50LiBJdCBhbHNvIHJlLXRlc3RzIGNhbl9j aGFuZ2VfbG9ja2VkX2ZsYWdzKCkgdW5kZXIgdGhlCm1vdW50IGhhc2ggaW4gZG9fcmVjb25maWd1 cmVfbW50KCkgYW5kIGRvX3JlbW91bnQoKS4KCkxpbms6IGh0dHBzOi8vdmlydHVvenpvLmF0bGFz c2lhbi5uZXQvYnJvd3NlL1ZTVE9SLTE0MTA5MgoKPiBkaWZmIC0tZ2l0IGEvZnMvbmFtZXNwYWNl LmMgYi9mcy9uYW1lc3BhY2UuYwo+IC0tLSBhL2ZzL25hbWVzcGFjZS5jCj4gKysrIGIvZnMvbmFt ZXNwYWNlLmMKClsgLi4uIF0KCj4gQEAgLTM0ODMsNyArMzUyMCwxNSBAQCBzdGF0aWMgaW50IGRv X3JlbW91bnQoc3RydWN0IHBhdGggKnBhdGgsIGludCBtc19mbGFncywgaW50IHNiX2ZsYWdzLAo+ ICAJCQllcnIgPSByZWNvbmZpZ3VyZV9zdXBlcihmYyk7Cj4gIAkJCWlmICghZXJyKSB7Cj4gIAkJ CQlsb2NrX21vdW50X2hhc2goKTsKPiAtCQkJCXNldF9tb3VudF9hdHRyaWJ1dGVzKG1udCwgbW50 X2ZsYWdzKTsKPiArCQkJCS8qCj4gKwkJCQkgKiBBIGxvY2sgbWF5IGhhdmUgbGFuZGVkIHNpbmNl IHRoZSBmaXJzdCB0ZXN0Lgo+ICsJCQkJICogVGhlIHN1cGVyYmxvY2sgY2hhbmdlIGFib3ZlIHN0 YW5kcywgdGhlIG1vdW50Cj4gKwkJCQkgKiBmbGFncyBkbyBub3QgY2hhbmdlLgo+ICsJCQkJICov Cj4gKwkJCQlpZiAoY2FuX2NoYW5nZV9sb2NrZWRfZmxhZ3MobW50LCBtbnRfZmxhZ3MpKQo+ICsJ CQkJCXNldF9tb3VudF9hdHRyaWJ1dGVzKG1udCwgbW50X2ZsYWdzKTsKPiArCQkJCWVsc2UKPiAr CQkJCQllcnIgPSAtRVBFUk07Cj4gIAkJCQl1bmxvY2tfbW91bnRfaGFzaCgpOwo+ICAJCQl9Cj4g IAkJfQoKW1NldmVyaXR5OiBNZWRpdW1dCkNhbiBkb19yZW1vdW50KCkgcmV0dXJuIC1FUEVSTSBh ZnRlciB0aGUgc3VwZXJibG9jayBoYXMgYWxyZWFkeSBiZWVuCmNoYW5nZWQ/CgpUaGUgZmlyc3Qg Y2FuX2NoYW5nZV9sb2NrZWRfZmxhZ3MoKSB0ZXN0IGlzIG1hZGUgd2l0aCBubyBsb2NrIGhlbGQu IFRoZW4KcmVjb25maWd1cmVfc3VwZXIoZmMpIHJ1bnMgdW5kZXIgc191bW91bnQuIEl0IHJld3Jp dGVzIHNiLT5zX2ZsYWdzIChmb3IKZXhhbXBsZSBpdCBjbGVhcnMgU0JfUkRPTkxZKSBhbmQgY2Fs bHMgZmMtPm9wcy0+cmVjb25maWd1cmUoKS4gTmVpdGhlciBjYW4KYmUgcm9sbGVkIGJhY2suCgpt b3VudF9zZXRhdHRyKCkgdGFrZXMgb25seSB0aGUgbW91bnQgaGFzaCwgbm90IHNfdW1vdW50LiBT byBub3RoaW5nCnNlcmlhbGl6ZXMgYSBob3N0IE1PVU5UX0FUVFJfVkVfTE9DSyBhZ2FpbnN0IHRo aXMgd2luZG93LiBJZiB0aGUgbG9jayBsYW5kcwpiZXR3ZWVuIHRoZSBmaXJzdCB0ZXN0IGFuZCB0 aGUgcmUtdGVzdCwgdGhlIHJlLXRlc3QgZmFpbHMgYW5kIGVyciBpcyBzZXQgdG8KLUVQRVJNLgoK VGhlIGNhbGxlciB0aGVuIHNlZXMgYSBmYWlsdXJlLCBidXQgdGhlIHNoYXJlZCBzdXBlcmJsb2Nr IG1heSBoYXZlIGdvbmUgcncKb3IgdGFrZW4gbmV3IG9wdGlvbnMuIFRoYXQgYWZmZWN0cyBldmVy eSBvdGhlciBtb3VudCBvZiB0aGUgc2FtZSBzYi4gVGhlCmNvbW1lbnQgaW4gdGhlIHBhdGNoIHNh eXMgIlRoZSBzdXBlcmJsb2NrIGNoYW5nZSBhYm92ZSBzdGFuZHMiLgoKV291bGQgaXQgYmUgcG9z c2libGUgdG8gcnVuIHRoZSByZS10ZXN0IGJlZm9yZSByZWNvbmZpZ3VyZV9zdXBlcigpLCBvciB0 bwpleGNsdWRlIHRoZSBsb2NrIHBhdGggZnJvbSByZW1vdW50LCBmb3IgZXhhbXBsZSBieSB0YWtp bmcgc191bW91bnQgc2hhcmVkIGluCnRoZSBsb2NrIHBhdGg/CgpbIC4uLiBdCgo+IEBAIC01MjMw LDggKzUyNzgsMzMgQEAgc3RhdGljIGludCBidWlsZF9tb3VudF9rYXR0cihjb25zdCBzdHJ1Y3Qg bW91bnRfYXR0ciAqYXR0ciwgc2l6ZV90IHVzaXplLAo+ICAJaWYgKChhdHRyLT5hdHRyX3NldCB8 IGF0dHItPmF0dHJfY2xyKSAmIH5NT1VOVF9TRVRBVFRSX1ZBTElEX0ZMQUdTKQo+ICAJCXJldHVy biAtRUlOVkFMOwo+ICAKPiArCWthdHRyLT52ZV9sb2NrID0gISEoYXR0ci0+YXR0cl9zZXQgJiBN T1VOVF9BVFRSX1ZFX0xPQ0spOwoKW1NldmVyaXR5OiBMb3ddClRoaXMgaXNuJ3QgYSBidWcsIGJ1 dCB0aGUgbG9jayBzdGF0ZSBzZXQgaGVyZSBsb29rcyB3cml0ZS1vbmx5LiBDYW4KdXNlcnNwYWNl IHJlYWQgaXQgYmFjaz8KClRoaXMgaXMgdGhlIG9ubHkgcGxhY2UgdGhlIG5ldyBmbGFnIGlzIGNv bnN1bWVkLiBtbnRfdG9fYXR0cl9mbGFncygpLCB3aGljaApidWlsZHMgdGhlIGF0dHJpYnV0ZSB3 b3JkIHRoYXQgc3RhdG1vdW50KCkgcmV0dXJucyBhcyBzbS5tbnRfYXR0ciwgaWdub3JlcwpNTlRf TE9DS19SRUFET05MWSwgTU5UX0xPQ0tfTk9TVUlELCBNTlRfTE9DS19OT0RFViBhbmQgTU5UX0xP Q0tfTk9FWEVDLiBJdApuZXZlciByZXR1cm5zIE1PVU5UX0FUVFJfVkVfTE9DSy4KClRoZSBjb21t aXQgbWVzc2FnZSBzYXlzIGxpYnZ6Y3RsIGxvY2tzIGJpbmRtb3VudHMgYXQgY29udGFpbmVyIHN0 YXJ0LCBvbiBhCmxpdmUgYWRkIGFuZCBhZ2FpbiBhZnRlciByZXN0b3JlLiBIb3cgaXMgaXQgZXhw ZWN0ZWQgdG8gbGVhcm4gd2hldGhlciBhCm1vdW50IGlzIGFscmVhZHkgbG9ja2VkPyBUaGUgb25s eSBwcm9iZSBhcHBlYXJzIHRvIGJlIGEgcmVtb3VudCB0aGF0IGlzCmV4cGVjdGVkIHRvIGZhaWwg d2l0aCBFUEVSTS4KClsgLi4uIF0KCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdHJhY2UvYmVh dXR5L2luY2x1ZGUvdWFwaS9saW51eC9tb3VudC5oIGIvdG9vbHMvcGVyZi90cmFjZS9iZWF1dHkv aW5jbHVkZS91YXBpL2xpbnV4L21vdW50LmgKPiAtLS0gYS90b29scy9wZXJmL3RyYWNlL2JlYXV0 eS9pbmNsdWRlL3VhcGkvbGludXgvbW91bnQuaAo+ICsrKyBiL3Rvb2xzL3BlcmYvdHJhY2UvYmVh dXR5L2luY2x1ZGUvdWFwaS9saW51eC9tb3VudC5oCgpbIC4uLiBdCgo+ICsjZGVmaW5lIE1PVU5U X0FUVFJfVkVfTE9DSwkweDgwMDAwMDAwMDAwMDAwMDBVTEwKCltTZXZlcml0eTogTG93XQpDYW4g dGhpcyBkZWZpbmUgYnJlYWsgdGhlIHBlcmYgYmVhdXR5IGZsYWcgdGFibGUgb24gMzItYml0IGJ1 aWxkcz8KCnRvb2xzL3BlcmYvdHJhY2UvYmVhdXR5L2ZzbW91bnQuc2ggbWF0Y2hlcyB0aGUgZGVm aW5lIHdpdGggaXRzIHJlZ2V4LiBUaGUKVUxMIHN1ZmZpeCBpcyBhYnNvcmJlZCBieSB0aGUgdHJh aWxpbmcgIi4qIi4gSXQgdGhlbiBlbWl0cyB0aGlzIGVudHJ5OgoKCVtpbG9nMigweDgwMDAwMDAw MDAwMDAwMDApICsgMV0gPSAiVkVfTE9DSyIsCgpUaGF0IGlzIGluZGV4IDY0LCBzbyBmc21vdW50 X2F0dHJfZmxhZ3MgZ3Jvd3MgdG8gNjUgZW50cmllcy4Kc3RyYXJyYXlfX3NjbnByaW50Zl9mbGFn cygpIHRoZW4gbG9vcHMgb3ZlciB0aG9zZSBlbnRyaWVzOgoKdG9vbHMvcGVyZi90cmFjZS9iZWF1 dHkvcGtleV9hbGxvYy5jOnN0cmFycmF5X19zY25wcmludGZfZmxhZ3MoKSB7Cglmb3IgKGkgPSAx OyBpIDwgc2EtPm5yX2VudHJpZXM7ICsraSkgewoJCXVuc2lnbmVkIGxvbmcgYml0ID0gMVVMIDw8 IChpIC0gMSk7CgkJLi4uCn0KCk9uIGEgMzItYml0IGhvc3QsIHVuc2lnbmVkIGxvbmcgaXMgMzIg Yml0cyB3aWRlLiBFdmVyeSBpdGVyYXRpb24gd2l0aAppID49IDM0IHNoaWZ0cyBieSAzMyBvciBt b3JlLCB3aGljaCBpcyB1bmRlZmluZWQgYmVoYXZpb3VyLiBUaGUgc2hpZnQKY2FuIGFsaWFzIGxv dyBmbGFnIGJpdHMsIHNvIHBlcmYgdHJhY2UgbWF5IHByaW50IHdyb25nIGZsYWcgbmFtZXMgZm9y CmZzbW91bnQoKSBhdHRyaWJ1dGVzLgoKQmVmb3JlIHRoaXMgcGF0Y2ggdGhlIGhpZ2hlc3QgaW5k ZXggd2FzIGFyb3VuZCAyMi4gQWxzbywgZnNtb3VudCgpIHRha2VzCm9ubHkgMzItYml0IGF0dHJp YnV0ZXMsIHNvIHRoZSBWRV9MT0NLIGVudHJ5IHdvdWxkIG5ldmVyIGJlIHVzZWQgdGhlcmUuCgpD b3VsZCB0aGlzIGRlZmluZSBiZSBrZXB0IG91dCBvZiB0aGUgY29weSB0aGF0IHRoZSBiZWF1dHkg c2NyaXB0cyBwYXJzZSwgb3IKY291bGQgZnNtb3VudC5zaCBza2lwIGVudHJpZXMgdGhhdCBkbyBu b3QgZml0IGluIDMyIGJpdHM/CgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0cHM6Ly9zYXNo aWtvLnZ6aW50LmRldi8jL3BhdGNoc2V0LzIwMjYxMDEyMTAyMDU4LjQ2ODk2LTEtbWlyaWFuLnNo aWxha2FkemVAdmlydHVvenpvLmNvbT9wYXJ0PTEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkRldmVsIG1haWxpbmcgbGlzdApEZXZlbEBvcGVudnoub3Jn Cmh0dHBzOi8vbGlzdHMub3BlbnZ6Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RldmVsCg==