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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BFD09C05027 for ; Fri, 10 Feb 2023 00:15:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229935AbjBJAP6 (ORCPT ); Thu, 9 Feb 2023 19:15:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44992 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229933AbjBJAP5 (ORCPT ); Thu, 9 Feb 2023 19:15:57 -0500 Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com [IPv6:2607:f8b0:4864:20::62a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2F0CE5DC3F for ; Thu, 9 Feb 2023 16:15:56 -0800 (PST) Received: by mail-pl1-x62a.google.com with SMTP id iz19so3426289plb.13 for ; Thu, 09 Feb 2023 16:15:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20210112.gappssmtp.com; s=20210112; t=1675988155; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=tNPbNYoCct7d8eWLCTkz69o5QdTPIXkMuLL30IOxMRg=; b=f/XkvHql8tA6g9Cwp0u4jf8f7Qc7FIeFETTNtvSG78+1PpDL1dUGRltWrU0WGseC2f mDxL9UuS7jf0nQ5VXmX2WYUeMJX2fbUos36ISufxoZKygSb6hJZzBjnoRRV7OxXVyxyS M7zeWiG1IjpRvcHqDAm4O6OD4wpBHUKty7+4YHhYQ9TeLCBGbO00pUEPxKPHnPLEq5Tj 5yGd2jb/pIPponyzOm4vV8cOYitmD2Fb4fV30wo+wSI1bm5PFh6GSuqtZx8L2cGpMFxk qZ3MZJjgdq+ZhZsCQ5d34PmZeyi/8LfyVoIiJWWmJP2zmz8z6rvUXdqqhXhq/AGNhx/v nqgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1675988155; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=tNPbNYoCct7d8eWLCTkz69o5QdTPIXkMuLL30IOxMRg=; b=68+HM86JdUJcjoBAymq0N7YtTxvWcm+20woxI/aQ+ucuNy74L9rZJKLedzZsYp8MLn +Dnei5lYFEVllMh7aptgfU8Ci9GfmfzObVs15ZMvJKmqs5WOcPPNG/barEzZAER1DdXE rNv4AGtM1h1nX6qDGCG5mTnBPv73hk4QDBTjxDwJQZTBEBQHE+HbnRT3Lf0JxOhbi/ZM FOEsvm8S8EaXwIaNX6PE4vfF+yT8wwAYlVuA7qKgyJEbcby7x0UPa9qQJbtmssHkLFs+ Z6pSZSPYEfucj9bwSa2XB7I90X/CwgUr3RdusC/o5YNpY4+N3W7KOYCmUvIKgtDSOfDM NlBw== X-Gm-Message-State: AO0yUKVw5LbXagIuKesGM6oFx72EhMHRidgm7dDE7asDTK6PH+Y8awmR vPMkQom55dTXG1bgexJrwL9NIA== X-Google-Smtp-Source: AK7set9i4GZy425eJQ60VEHt8ZyiMscBINILO96QjW9OdkxX3UWegtHHMx/XPbkaa3kfxkBKfne7wA== X-Received: by 2002:a17:903:32c3:b0:199:4362:93f6 with SMTP id i3-20020a17090332c300b00199436293f6mr9399565plr.4.1675988155556; Thu, 09 Feb 2023 16:15:55 -0800 (PST) Received: from [192.168.1.136] ([198.8.77.157]) by smtp.gmail.com with ESMTPSA id jj5-20020a170903048500b00198d5c7cafasm2109067plb.156.2023.02.09.16.15.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Feb 2023 16:15:55 -0800 (PST) Message-ID: <6939adfb-ce2c-1911-19ee-af32f7d9a5ca@kernel.dk> Date: Thu, 9 Feb 2023 17:15:53 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH v2] io_uring,audit: don't log IORING_OP_MADVISE Content-Language: en-US To: Steve Grubb , Richard Guy Briggs , Paul Moore Cc: Linux-Audit Mailing List , LKML , io-uring@vger.kernel.org, Eric Paris , Christian Brauner , Stefan Roesch References: <13293926.uLZWGnKmhe@x2> From: Jens Axboe In-Reply-To: <13293926.uLZWGnKmhe@x2> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: io-uring@vger.kernel.org On 2/9/23 3:54 PM, Steve Grubb wrote: > On Thursday, February 9, 2023 5:37:22 PM EST Paul Moore wrote: >> On Thu, Feb 9, 2023 at 4:53 PM Richard Guy Briggs wrote: >>> On 2023-02-01 16:18, Paul Moore wrote: >>>> On Wed, Feb 1, 2023 at 3:34 PM Richard Guy Briggs > wrote: >>>>> fadvise and madvise both provide hints for caching or access pattern >>>>> for file and memory respectively. Skip them. >>>> >>>> You forgot to update the first sentence in the commit description :/ >>> >>> I didn't forget. I updated that sentence to reflect the fact that the >>> two should be treated similarly rather than differently. >> >> Ooookay. Can we at least agree that the commit description should be >> rephrased to make it clear that the patch only adjusts madvise? Right >> now I read the commit description and it sounds like you are adjusting >> the behavior for both fadvise and madvise in this patch, which is not >> true. >> >>>> I'm still looking for some type of statement that you've done some >>>> homework on the IORING_OP_MADVISE case to ensure that it doesn't end >>>> up calling into the LSM, see my previous emails on this. I need more >>>> than "Steve told me to do this". >>>> >>>> I basically just want to see that some care and thought has gone into >>>> this patch to verify it is correct and good. >>> >>> Steve suggested I look into a number of iouring ops. I looked at the >>> description code and agreed that it wasn't necessary to audit madvise. >>> The rationale for fadvise was detemined to have been conflated with >>> fallocate and subsequently dropped. Steve also suggested a number of >>> others and after investigation I decided that their current state was >>> correct. *getxattr you've advised against, so it was dropped. It >>> appears fewer modifications were necessary than originally suspected. >> >> My concern is that three of the four changes you initially proposed >> were rejected, which gives me pause about the fourth. You mention >> that based on your reading of madvise's description you feel auditing >> isn't necessary - and you may be right - but based on our experience >> so far with this patchset I would like to hear that you have properly >> investigated all of the madvise code paths, and I would like that in >> the commit description. > > I think you're being unnecessarily hard on this. Yes, the commit message > might be touched up. But madvise is advisory in nature. It is not security > relevant. And a grep through the security directory doesn't turn up any > hooks. Agree, it's getting a bit anal... FWIW, patch looks fine to me. -- Jens Axboe 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 us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (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 791A2C636CD for ; Fri, 10 Feb 2023 13:16:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676034976; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=BI97yVcp1AFhsBvy0UGrfVCOlJft8Sg/OAXiZu2UwpA=; b=CU/hRky3rlrPYLViLov9rPagNaSDKTFO+ZIKlqh3mldMrlJntRBrMQW6GDUdlsmYlqWlpJ vwQCdnzWVdMhYcEWeBEtOA68M+juwrhx4EUJLnnpEMp11qBqf5GUQbwEUrtwktEbBqALpd q/PZEhsJThgwtS1bNX1hMDF/+yteQQE= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-651-4BAVkav0MA6U46lz3PhD3Q-1; Fri, 10 Feb 2023 08:16:14 -0500 X-MC-Unique: 4BAVkav0MA6U46lz3PhD3Q-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 423EC299E756; Fri, 10 Feb 2023 13:16:13 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id D0E44140EBF4; Fri, 10 Feb 2023 13:16:11 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 03FA319465A8; Fri, 10 Feb 2023 13:15:56 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id D41751946589 for ; Fri, 10 Feb 2023 00:15:59 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id C484B492B01; Fri, 10 Feb 2023 00:15:58 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast08.extmail.prod.ext.rdu2.redhat.com [10.11.55.24]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BCAE3492C3E for ; Fri, 10 Feb 2023 00:15:58 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6F17F382C973 for ; Fri, 10 Feb 2023 00:15:58 +0000 (UTC) Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-448-PU1TdhmVO1i2oRUAg_bQTw-1; Thu, 09 Feb 2023 19:15:56 -0500 X-MC-Unique: PU1TdhmVO1i2oRUAg_bQTw-1 Received: by mail-pl1-f181.google.com with SMTP id w5so4770349plg.8 for ; Thu, 09 Feb 2023 16:15:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1675988155; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=tNPbNYoCct7d8eWLCTkz69o5QdTPIXkMuLL30IOxMRg=; b=Db9q+Bbo0dShm4f21mf/FtTNGL+6fsimJFwnZs1V4Va/5d6gI8qdNS6cnplEZzyKCr ieHEwPG4oQhJdS+LgBQcGDTxKGcd64fhD0UrVeij2sjHIXfL4vnFyBtTtmP7YBtc2rsx YOJurtLDRFnY4N70HCLX44VA3+JOYaApO6d3nhL09uTzlGUwINjMVdcVrMwLaS+kg5B+ UBGznYt5tgZRrZ/W/UUYc8/NpgxNZmCNV/LIo4N/xJlWw6EDROSnuzYlUwSn24DakS08 jF1pmDo7oiOx1l7jiOf7U0XfRKyvj6a6KSGY2Xdq7TTVhIb3T4ZlO6tTPmgjUWq7P3bX nMRQ== X-Gm-Message-State: AO0yUKXbaLWYj7avkyjCiu28h0XCLFHb/n/kdCXNdNbOCPqJ6BGZfeVN 1RysKrShHSNydFbxcs207nysUQ== X-Google-Smtp-Source: AK7set9i4GZy425eJQ60VEHt8ZyiMscBINILO96QjW9OdkxX3UWegtHHMx/XPbkaa3kfxkBKfne7wA== X-Received: by 2002:a17:903:32c3:b0:199:4362:93f6 with SMTP id i3-20020a17090332c300b00199436293f6mr9399565plr.4.1675988155556; Thu, 09 Feb 2023 16:15:55 -0800 (PST) Received: from [192.168.1.136] ([198.8.77.157]) by smtp.gmail.com with ESMTPSA id jj5-20020a170903048500b00198d5c7cafasm2109067plb.156.2023.02.09.16.15.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Feb 2023 16:15:55 -0800 (PST) Message-ID: <6939adfb-ce2c-1911-19ee-af32f7d9a5ca@kernel.dk> Date: Thu, 9 Feb 2023 17:15:53 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH v2] io_uring,audit: don't log IORING_OP_MADVISE To: Steve Grubb , Richard Guy Briggs , Paul Moore References: <13293926.uLZWGnKmhe@x2> From: Jens Axboe In-Reply-To: <13293926.uLZWGnKmhe@x2> X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 3.1 on 10.11.54.10 X-Mailman-Approved-At: Fri, 10 Feb 2023 13:15:55 +0000 X-BeenThere: linux-audit@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Audit Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Christian Brauner , LKML , Linux-Audit Mailing List , Stefan Roesch , Eric Paris , io-uring@vger.kernel.org Errors-To: linux-audit-bounces@redhat.com Sender: "Linux-audit" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T24gMi85LzIzIDM6NTTigK9QTSwgU3RldmUgR3J1YmIgd3JvdGU6Cj4gT24gVGh1cnNkYXksIEZl YnJ1YXJ5IDksIDIwMjMgNTozNzoyMiBQTSBFU1QgUGF1bCBNb29yZSB3cm90ZToKPj4gT24gVGh1 LCBGZWIgOSwgMjAyMyBhdCA0OjUzIFBNIFJpY2hhcmQgR3V5IEJyaWdncyA8cmdiQHJlZGhhdC5j b20+IHdyb3RlOgo+Pj4gT24gMjAyMy0wMi0wMSAxNjoxOCwgUGF1bCBNb29yZSB3cm90ZToKPj4+ PiBPbiBXZWQsIEZlYiAxLCAyMDIzIGF0IDM6MzQgUE0gUmljaGFyZCBHdXkgQnJpZ2dzIDxyZ2JA cmVkaGF0LmNvbT4gCj4gd3JvdGU6Cj4+Pj4+IGZhZHZpc2UgYW5kIG1hZHZpc2UgYm90aCBwcm92 aWRlIGhpbnRzIGZvciBjYWNoaW5nIG9yIGFjY2VzcyBwYXR0ZXJuCj4+Pj4+IGZvciBmaWxlIGFu ZCBtZW1vcnkgcmVzcGVjdGl2ZWx5LiAgU2tpcCB0aGVtLgo+Pj4+Cj4+Pj4gWW91IGZvcmdvdCB0 byB1cGRhdGUgdGhlIGZpcnN0IHNlbnRlbmNlIGluIHRoZSBjb21taXQgZGVzY3JpcHRpb24gOi8K Pj4+Cj4+PiBJIGRpZG4ndCBmb3JnZXQuICBJIHVwZGF0ZWQgdGhhdCBzZW50ZW5jZSB0byByZWZs ZWN0IHRoZSBmYWN0IHRoYXQgdGhlCj4+PiB0d28gc2hvdWxkIGJlIHRyZWF0ZWQgc2ltaWxhcmx5 IHJhdGhlciB0aGFuIGRpZmZlcmVudGx5Lgo+Pgo+PiBPb29va2F5LiAgQ2FuIHdlIGF0IGxlYXN0 IGFncmVlIHRoYXQgdGhlIGNvbW1pdCBkZXNjcmlwdGlvbiBzaG91bGQgYmUKPj4gcmVwaHJhc2Vk IHRvIG1ha2UgaXQgY2xlYXIgdGhhdCB0aGUgcGF0Y2ggb25seSBhZGp1c3RzIG1hZHZpc2U/ICBS aWdodAo+PiBub3cgSSByZWFkIHRoZSBjb21taXQgZGVzY3JpcHRpb24gYW5kIGl0IHNvdW5kcyBs aWtlIHlvdSBhcmUgYWRqdXN0aW5nCj4+IHRoZSBiZWhhdmlvciBmb3IgYm90aCBmYWR2aXNlIGFu ZCBtYWR2aXNlIGluIHRoaXMgcGF0Y2gsIHdoaWNoIGlzIG5vdAo+PiB0cnVlLgo+Pgo+Pj4+IEkn bSBzdGlsbCBsb29raW5nIGZvciBzb21lIHR5cGUgb2Ygc3RhdGVtZW50IHRoYXQgeW91J3ZlIGRv bmUgc29tZQo+Pj4+IGhvbWV3b3JrIG9uIHRoZSBJT1JJTkdfT1BfTUFEVklTRSBjYXNlIHRvIGVu c3VyZSB0aGF0IGl0IGRvZXNuJ3QgZW5kCj4+Pj4gdXAgY2FsbGluZyBpbnRvIHRoZSBMU00sIHNl ZSBteSBwcmV2aW91cyBlbWFpbHMgb24gdGhpcy4gIEkgbmVlZCBtb3JlCj4+Pj4gdGhhbiAiU3Rl dmUgdG9sZCBtZSB0byBkbyB0aGlzIi4KPj4+Pgo+Pj4+IEkgYmFzaWNhbGx5IGp1c3Qgd2FudCB0 byBzZWUgdGhhdCBzb21lIGNhcmUgYW5kIHRob3VnaHQgaGFzIGdvbmUgaW50bwo+Pj4+IHRoaXMg cGF0Y2ggdG8gdmVyaWZ5IGl0IGlzIGNvcnJlY3QgYW5kIGdvb2QuCj4+Pgo+Pj4gU3RldmUgc3Vn Z2VzdGVkIEkgbG9vayBpbnRvIGEgbnVtYmVyIG9mIGlvdXJpbmcgb3BzLiAgSSBsb29rZWQgYXQg dGhlCj4+PiBkZXNjcmlwdGlvbiBjb2RlIGFuZCBhZ3JlZWQgdGhhdCBpdCB3YXNuJ3QgbmVjZXNz YXJ5IHRvIGF1ZGl0IG1hZHZpc2UuCj4+PiBUaGUgcmF0aW9uYWxlIGZvciBmYWR2aXNlIHdhcyBk ZXRlbWluZWQgdG8gaGF2ZSBiZWVuIGNvbmZsYXRlZCB3aXRoCj4+PiBmYWxsb2NhdGUgYW5kIHN1 YnNlcXVlbnRseSBkcm9wcGVkLiAgU3RldmUgYWxzbyBzdWdnZXN0ZWQgYSBudW1iZXIgb2YKPj4+ IG90aGVycyBhbmQgYWZ0ZXIgaW52ZXN0aWdhdGlvbiBJIGRlY2lkZWQgdGhhdCB0aGVpciBjdXJy ZW50IHN0YXRlIHdhcwo+Pj4gY29ycmVjdC4gICpnZXR4YXR0ciB5b3UndmUgYWR2aXNlZCBhZ2Fp bnN0LCBzbyBpdCB3YXMgZHJvcHBlZC4gIEl0Cj4+PiBhcHBlYXJzIGZld2VyIG1vZGlmaWNhdGlv bnMgd2VyZSBuZWNlc3NhcnkgdGhhbiBvcmlnaW5hbGx5IHN1c3BlY3RlZC4KPj4KPj4gTXkgY29u Y2VybiBpcyB0aGF0IHRocmVlIG9mIHRoZSBmb3VyIGNoYW5nZXMgeW91IGluaXRpYWxseSBwcm9w b3NlZAo+PiB3ZXJlIHJlamVjdGVkLCB3aGljaCBnaXZlcyBtZSBwYXVzZSBhYm91dCB0aGUgZm91 cnRoLiAgWW91IG1lbnRpb24KPj4gdGhhdCBiYXNlZCBvbiB5b3VyIHJlYWRpbmcgb2YgbWFkdmlz ZSdzIGRlc2NyaXB0aW9uIHlvdSBmZWVsIGF1ZGl0aW5nCj4+IGlzbid0IG5lY2Vzc2FyeSAtIGFu ZCB5b3UgbWF5IGJlIHJpZ2h0IC0gYnV0IGJhc2VkIG9uIG91ciBleHBlcmllbmNlCj4+IHNvIGZh ciB3aXRoIHRoaXMgcGF0Y2hzZXQgSSB3b3VsZCBsaWtlIHRvIGhlYXIgdGhhdCB5b3UgaGF2ZSBw cm9wZXJseQo+PiBpbnZlc3RpZ2F0ZWQgYWxsIG9mIHRoZSBtYWR2aXNlIGNvZGUgcGF0aHMsIGFu ZCBJIHdvdWxkIGxpa2UgdGhhdCBpbgo+PiB0aGUgY29tbWl0IGRlc2NyaXB0aW9uLgo+IAo+IEkg dGhpbmsgeW91J3JlIGJlaW5nIHVubmVjZXNzYXJpbHkgaGFyZCBvbiB0aGlzLiBZZXMsIHRoZSBj b21taXQgbWVzc2FnZSAKPiBtaWdodCBiZSB0b3VjaGVkIHVwLiBCdXQgbWFkdmlzZSBpcyBhZHZp c29yeSBpbiBuYXR1cmUuIEl0IGlzIG5vdCBzZWN1cml0eSAKPiByZWxldmFudC4gQW5kIGEgZ3Jl cCB0aHJvdWdoIHRoZSBzZWN1cml0eSBkaXJlY3RvcnkgZG9lc24ndCB0dXJuIHVwIGFueSAKPiBo b29rcy4KCkFncmVlLCBpdCdzIGdldHRpbmcgYSBiaXQgYW5hbC4uLiBGV0lXLCBwYXRjaCBsb29r cyBmaW5lIHRvIG1lLgoKLS0gCkplbnMgQXhib2UKCgotLQpMaW51eC1hdWRpdCBtYWlsaW5nIGxp c3QKTGludXgtYXVkaXRAcmVkaGF0LmNvbQpodHRwczovL2xpc3RtYW4ucmVkaGF0LmNvbS9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWF1ZGl0Cg==