From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Alexandre.DERUMIER@groupe-cyllene.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by lists.proxmox.com (Postfix) with ESMTPS id BB6059D1D1
 for <pve-devel@lists.proxmox.com>; Fri,  2 Jun 2023 14:12:12 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
 by firstgate.proxmox.com (Proxmox) with ESMTP id 9A4C92A26A
 for <pve-devel@lists.proxmox.com>; Fri,  2 Jun 2023 14:12:12 +0200 (CEST)
Received: from mail02.cetsi.fr (mail02.cetsi.fr [91.151.64.22])
 (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by firstgate.proxmox.com (Proxmox) with ESMTPS
 for <pve-devel@lists.proxmox.com>; Fri,  2 Jun 2023 14:12:11 +0200 (CEST)
Received: from CYLNEXC01.cyllene.corp (unknown [10.0.250.28])
 by mail02.cetsi.fr (Postfix) with ESMTP id 322174050294
 for <pve-devel@lists.proxmox.com>; Fri,  2 Jun 2023 14:12:10 +0200 (CEST)
DKIM-Filter: OpenDKIM Filter v2.11.0 mail02.cetsi.fr 322174050294
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groupe-cyllene.com;
 s=dkim; t=1685707930;
 bh=V8nCKyoFOvy1mlFm5x2zAcBDXwrlXRWZ5NNhcWWZinw=;
 h=From:To:Subject:Date:References:In-Reply-To:From;
 b=GBJCGuKPMPS3K70NBKmCwlR4NgwWSA2GKg/OJK9xLZlotWKr8p+vqJK+MFUoMZzoU
 4vqPOaG7ZMkmpTkEU5/zno91jiFZzyCAElUNOPoss8iR1SvPB2hwnH32eiXudSynjS
 veQY00SnYCnlaNLQq0361BYd+SbSR3PnQ4baORng=
Received: from CYLNEXC01.cyllene.corp (10.0.250.28) by CYLNEXC01.cyllene.corp
 (10.0.250.28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Fri, 2 Jun
 2023 14:12:10 +0200
Received: from FRA01-MR2-obe.outbound.protection.outlook.com (10.0.250.254) by
 CYLNEXC01.cyllene.corp (10.0.250.28) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.23 via Frontend Transport; Fri, 2 Jun 2023 14:12:10 +0200
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nghg3JOslxRI0hTQfTfBfTjwdmu7GNveP84juCQKAZTDD1L+S/QaXX9JxgilL+GcDlfX7udbLbEy6sdwdlezkm7lOpYBY13QVlwcJfUE+jlPIzHXc6RrgdEuUnNiczci9C063WBAFfxlk/1yWnnpOhN9/LFkUlS8jh/hTVRSFbQpjrN9hRoYSVQ75MlrbgCcD5BW4pfq+T8ajqSIS6K731AMJI/q+DQGSoO9S+oNZMWFGL4+zN9jf5rLlJIiCOBOKM60KStGcSpSw0Awkemz42EI/ofi+H+Sm8uJsud4gYdSr0bDPcPwGoXAbawnYSxh9H/nSvAjXHh4RLlH2ukzDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=V8nCKyoFOvy1mlFm5x2zAcBDXwrlXRWZ5NNhcWWZinw=;
 b=FzOzdHLYaOwpjQPMm/YFOdpyQtxsHZG+4EagcW3Zlp8zOP6SzAYns+vbOl71wTVbE/zspBQntnIUz2y0+ua5po1SqkRTsgbd76+CdZxceVeIWzG2DKzRGWUa1VK14gpnHpKJ30BPpW7VW+2No0eThiDObAQ9wDc9IYM/zEE2rBSa4ridp2pWfwextqGKzjWKtxCwVzZRCtxHSxIe5beXzvW01P277LEt4pVah77oDeCE+0bjDE3v2wBDBlXfJxp2nolcYTFBd/al4yrbE2Zod9bsPrzfrRPtCZycZFWZU6xWQDfUJ2RP1EXqGzB+kZKqJKJ33ObEIoNlrA76uUP/sQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=groupe-cyllene.com; dmarc=pass action=none
 header.from=groupe-cyllene.com; dkim=pass header.d=groupe-cyllene.com;
 arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=groupecyllene.onmicrosoft.com; s=selector2-groupecyllene-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=V8nCKyoFOvy1mlFm5x2zAcBDXwrlXRWZ5NNhcWWZinw=;
 b=cPIev36Fh1ELz3wVZTjyFLM1sj35cmkOS8NQoG8aVpDHux2tRaJxHmt4DefoSCRtjui+bAO2VDSvp8i+xtnuXVDu+y3LIVYoQppx5WfI0DhG4sdCCDA2ogHYcsAZICpNOLQeb41s+R80A1VX347SeGbg+hT4s7gjIUrsz3iWGCo=
Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:32::17)
 by PR1P264MB1902.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:192::9) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.24; Fri, 2 Jun
 2023 12:12:09 +0000
Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM
 ([fe80::cef1:6229:8d42:b0ee]) by MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM
 ([fe80::cef1:6229:8d42:b0ee%2]) with mapi id 15.20.6455.024; Fri, 2 Jun 2023
 12:12:09 +0000
From: "DERUMIER, Alexandre" <alexandre.derumier@groupe-cyllene.com>
To: "pve-devel@lists.proxmox.com" <pve-devel@lists.proxmox.com>
Thread-Topic: [pve-devel] [PATCH qemu-server 1/1] api2: add
 check_bridge_access for create/update vm
Thread-Index: AQHZj6R/Ags2wZIeW0OjJ6jh1ioGda93b5aAgAAIB4A=
Date: Fri, 2 Jun 2023 12:12:09 +0000
Message-ID: <2ded7b16a00bb521fe45c166e668e2eb26f074f2.camel@groupe-cyllene.com>
References: <20230526073347.1615981-1-aderumier@odiso.com>
 <20230526073347.1615981-2-aderumier@odiso.com>
 <1685705445.0kkr7b9mhh.astroid@yuna.none>
In-Reply-To: <1685705445.0kkr7b9mhh.astroid@yuna.none>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Evolution 3.48.1-0ubuntu1 
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=groupe-cyllene.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: MR1P264MB2481:EE_|PR1P264MB1902:EE_
x-ms-office365-filtering-correlation-id: d4e206ac-c117-4d2c-1ee0-08db636296d3
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: /dMETCNVnCVOcB6rQlKLUh3z1i6NBCKKzdxM2f+O8ltkEuR/QEQ8+g9EWXyRMCjulVoNf9FI5ZaACduY+GHT0XkviYEgoPjrK8HBO94sfC4Mo/L0hIMVzDJiemWwUHETnB/m69/CvjIEXA0ntK+/RA2u5i/yCDSlzVav/WWeDPTwOaRBYxEgiPyo6kTIsbUod3yvZq7D47my35xyBlptKKYxOSweLCdTrTDv7rIRhPaywyr1Tgg97NF/ejtm3VBAblqXklTKIA/bPBp/cDO1mg2C09ycj1UFPpFmDaslzMD+cCWBOku/Nibnejafi6yUDF0SFFoyg06Wx3pNtFKqmmUMmWXFMoEPaDLFO1mbNQJhEyqLxJ4P1Tbs3LZI2aoESRTEZiB/zN5R+FFROOsqOjg7BazXh8vEUfQUtIDFZndg4tgu4TsHwQuwi5BEFg7xI3zRhP7M1efkO2+qm4Ys0tXdfzAkRVad6KQSOE2diy6ahUnhEIInPU1mRB86JM0rey0uW5POWF/IapTl0VyyyonjZn+vZWunsSpCY+TtxJ5LjLJu6gFTd5r3YmKlZhDQyRU2mp/pG8RA/ZvQMg5SU4XlYpc/8MZ0aDXma2mSBAU=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE;
 SFS:(13230028)(4636009)(396003)(366004)(376002)(39850400004)(136003)(346002)(451199021)(6512007)(6506007)(53546011)(186003)(966005)(6486002)(71200400001)(66574015)(2616005)(83380400001)(41300700001)(5660300002)(316002)(15650500001)(8676002)(2906002)(8936002)(478600001)(91956017)(76116006)(64756008)(66446008)(66556008)(66946007)(6916009)(66476007)(86362001)(36756003)(38070700005)(38100700002)(122000001);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aEU3Q0h2eUg2UUk3VGdLTVprZ1k5cTc1M3NHSHpBRGJHdllRQUxONzV1OGdR?=
 =?utf-8?B?VkYwMXlPQ1FzWXppY2RzOXpxQzVTZ3RhZzFBam9saE1qRU5jNnlXRUdkTUhP?=
 =?utf-8?B?Q0IyVUpTVmNvZ201TnA2MVN5YXR3U1J0MUFrZ1A3RlU1dmU4UDVQeXRsWVhl?=
 =?utf-8?B?YTV2Rk9YTm9iVTZjRmRzLzhSODZlU0JZOEZzejlnakYwVy9SK3NnT0tvbnlT?=
 =?utf-8?B?eENtT1NRSGNpWWdOTGdXNStWU2pNRHpBNk4yMHM1QXI5TWIzSlFmTk84bG1j?=
 =?utf-8?B?UHhiNWxVSU45OHNnMGJteURHcVo1WDdCVlNGZWs4QktvL2NBUC9nSy9lTDRQ?=
 =?utf-8?B?dFdsQmlWdi9qZ2MvREpXcXErcmRqTnRQcHJwOVB6THpVQnJEbWJkTGFUSGcz?=
 =?utf-8?B?UFJQVHBMQnhWSlcrSzNPL1htMVlpdGNRR2JtS2s4azg2dFArYXU4VDR2SkhO?=
 =?utf-8?B?WTRwOFFXQkRvMzN3TDBaTkNremVwaXgwNlpLaEV3Z040NnpWU2padXNzbFVi?=
 =?utf-8?B?b2I2R21BYmVUcHZBVTdrWUtRZUpnbVNzRzQzTUpEWEdlZ2FPSDNRMkZNcDMz?=
 =?utf-8?B?WEhJSzhsU1FNWCtqUXFsQm9wSkNYME11NklCNHZoNE9hVGVSdGtBSmd3QXVK?=
 =?utf-8?B?N0psVmd0djRkaXNBdnpCVjlOKzFOTXQ3cE9mV0p4cG5wNHNuY0VPSmhHUU9W?=
 =?utf-8?B?VHVXZmVzQ0F2cmdQQksyTXhIYW5NMDJXWTNxMnNaZGZsUzZrUWhmZ1dzSUcx?=
 =?utf-8?B?ZVFVNm01MFdBOVRzMlh1NWw4cm5sN3ZVeEdkemJYT3UvTjVhL2loL3R0UGw3?=
 =?utf-8?B?VStWUERNUFZydnRQaWJ4bW01TDdTVWJ5UmRQK2RwY1FYYW1DVUwxTGtGWVRy?=
 =?utf-8?B?eUl5VEZ5bTVOd1NoOG53Tm5RWVlMeFEvRkJLaDNxeERCekZSOHpLQWp4RzNT?=
 =?utf-8?B?MVVsTFN1ekQxbGNPTlNTdGs0UzZWT1ZtK0lTWmk4WlNkd0RNWWxJaXFXMjd0?=
 =?utf-8?B?OFlWMTdtbXYxYm1USjdKa3BvZWVaVFBNS1dMS1NoVHp2MEVUR1ZKMFc3RE51?=
 =?utf-8?B?RERISWRwUW83Z2RDVHVka3JjNklBWTlGdzFaY2EzMHNkdEt3ZmkrNCsvVFN4?=
 =?utf-8?B?TG01UFpYNDdKaVhzTDgycFNqb0lpMmkxRFFGNXNqeTBZMTBYN3MzNEg0ZHh2?=
 =?utf-8?B?SDBRckltemhtVVFnV3Vwb2kyRTJwbitEUUtTYnFXOHpLckgzd2x1Z3FRdHgr?=
 =?utf-8?B?VkQvb3lUemdVUDlrazU0WjhHeFkrTWtoVFJGVUhEYlFQQWZiT2VlZGNKTUpy?=
 =?utf-8?B?YUVqc0dpenZLcytDd25wRUtjWXNtSk9XVzJEa3lqMlZpcCttRGsrbk14U3k1?=
 =?utf-8?B?c2JUblp4M3R2UTZ0NCtTdXRZQjFpcHAzVFovZVFxYjZQbXU4UEdXZkhLTVpl?=
 =?utf-8?B?cG5XSUxpZHJza01xT1BabUsrM2JsSjUrS0VoRE1tODhGcmFnNmdQdHhIbngx?=
 =?utf-8?B?S3N6Ymt0MVRRYmdTMVM5VHk3Slg4VVpoSURhc2VQeUFoRFVhK0VId2l6L0Er?=
 =?utf-8?B?Z1hPQzVEZEdQcUdQUDB3bm9kSyticU9iNFB2WTRxd1R4cHg4ZjZLSEpkOHdw?=
 =?utf-8?B?NEZvQlhrWUdYMk43UElUTU5DOGUzb0tNNHVONWpqVGU1OTVwQTFmVnd1NFR0?=
 =?utf-8?B?cWRGcyt2a3pGRTJ4VUlWZlhrM3gvOUdVVTBQa0k5czQ5Z0Y1UlVuM3N6cXJr?=
 =?utf-8?B?Mi9WWFJOV3g1VHJsbjY2eTdIcVlWZVhqMDg5MUR2SVNwUE9SUkJnQ0xXcmQ0?=
 =?utf-8?B?QVQwcHpPSFZQL0k1WmFnTkxRMzZ3dTBXTUczdW5XYXRsYkpvMmQ5V2NrdVc1?=
 =?utf-8?B?eEpmWXRRdGl4emF0WnhIRDFWamNzWWRlQVBnMnBqbExJZXByOVR2QzU2aSs2?=
 =?utf-8?B?dzRINjQ3TFRUTkhwak5kYWxxQTZhMlF1K1VrbmVNQnFZS0RCNWpiK3lPYk5o?=
 =?utf-8?B?K3dUWTQxV21KalNLZXpSeGhVNFN0Q0huWXhaZjdndU1BR1h4cGNxMlphTTlt?=
 =?utf-8?B?YzBqZXR5ZGVXalFaYVpFeTV0bVJqV3lmSDlLWGpDN3ZoWEhYR05FUmR1ejlT?=
 =?utf-8?B?aTM1ODY5b3RMVVV4NlI5RFBDWDRoNWRVbllSVFVwZlZuUGs2amtHbEZSaHFj?=
 =?utf-8?Q?m5Q344sm72diAALTJDgXWxWOUws/Rxqzq9tL76fzFoVQ?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <6F781C2B2218F3428CB58A196D75334A@FRAP264.PROD.OUTLOOK.COM>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: d4e206ac-c117-4d2c-1ee0-08db636296d3
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jun 2023 12:12:09.1083 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: ee11ccf7-112c-4284-848b-f229745e715b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: XezQyOCSvlOui+RiI5vo8hOC91M/dx89/eT6z3yS1d9JY326fUXVPRNA/5+7RgkMZEBbCgrCDi2CdcIBzr96XeWJj0TcBZMAW0m4/src75QHsqV7/8tQU/Q9omBKDog8
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR1P264MB1902
X-OriginatorOrg: groupe-cyllene.com
X-SPAM-LEVEL: Spam detection results:  0
 ARC_SIGNED              0.001 Message has a ARC signature
 ARC_VALID               0.001 Message has a valid ARC signature
 AWL -0.455 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain DMARC_MISSING             0.1 Missing DMARC policy
 KAM_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible
 spam tricks
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
 T_SCC_BODY_TEXT_LINE    -0.01 -
 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more
 information. [groupecyllene.onmicrosoft.com, proxmox.com, qemu.pm, cetsi.fr,
 groupe-cyllene.com]
Subject: Re: [pve-devel] [PATCH qemu-server 1/1] api2: add
 check_bridge_access for create/update vm
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
X-List-Received-Date: Fri, 02 Jun 2023 12:12:12 -0000

TGUgdmVuZHJlZGkgMDIganVpbiAyMDIzIMOgIDEzOjQzICswMjAwLCBGYWJpYW4gR3LDvG5iaWNo
bGVyIGEgw6ljcml0wqA6DQo+IGEgZmV3IG1vcmUgcGxhY2VzIHRoYXQgY29tZSB0byBteSBtaW5k
IHRoYXQgbWlnaHQgd2FycmFudCBmdXJ0aGVyDQo+IHRoaW5raW5nIG9yIGRpc2N1c3Npb246DQo+
IC0gcmVzdG9yaW5nIGEgYmFja3VwDQpkb2Vzbid0IGl0IGFsc28gdXNlIGNyZWF0ZV92bSA/DQoN
Cl9fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2Qoew0KICAgIG5hbWUgPT4gJ2NyZWF0ZV92bScs
DQogICAgcGF0aCA9PiAnJywNCiAgICBtZXRob2QgPT4gJ1BPU1QnLA0KICAgIGRlc2NyaXB0aW9u
ID0+ICJDcmVhdGUgb3IgcmVzdG9yZSBhIHZpcnR1YWwgbWFjaGluZS4iLA0KDQoNCj4gLSBjbG9u
aW5nIGEgVk0NCg0KZm9yIGNsb25pbmcsIHdlIGNhbid0IGNoYW5nZSB0aGUgdGFyZ2V0IGJyaWRn
ZSwgc28gaWYgdXNlciBoYXZlIGFjY2Vzcw0KdG8gdGhlIGNsb25lLCBpc24ndCBpdCBlbm91Z2gg
Pw0KDQoNCg0KPiANCj4gT24gTWF5IDI2LCAyMDIzIDk6MzMgYW0sIEFsZXhhbmRyZSBEZXJ1bWll
ciB3cm90ZToNCj4gPiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgRGVydW1pZXIgPGFkZXJ1bWll
ckBvZGlzby5jb20+DQo+ID4gLS0tDQo+ID4gwqBQVkUvQVBJMi9RZW11LnBtIHwgMzcgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiA+IMKgMSBmaWxlIGNoYW5nZWQsIDM2
IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvUFZF
L0FQSTIvUWVtdS5wbSBiL1BWRS9BUEkyL1FlbXUucG0NCj4gPiBpbmRleCA1ODdiYjIyLi5lYmVm
OTNmIDEwMDY0NA0KPiA+IC0tLSBhL1BWRS9BUEkyL1FlbXUucG0NCj4gPiArKysgYi9QVkUvQVBJ
Mi9RZW11LnBtDQo+ID4gQEAgLTQ2LDYgKzQ2LDEyIEBAIHVzZSBQVkU6OlNTSEluZm87DQo+ID4g
wqB1c2UgUFZFOjpSZXBsaWNhdGlvbjsNCj4gPiDCoHVzZSBQVkU6OlN0b3JhZ2VUdW5uZWw7DQo+
ID4gwqANCj4gPiArbXkgJGhhdmVfc2RuOw0KPiA+ICtldmFsIHsNCj4gPiArwqDCoMKgIHJlcXVp
cmUgUFZFOjpOZXR3b3JrOjpTRE47DQo+ID4gK8KgwqDCoCAkaGF2ZV9zZG4gPSAxOw0KPiA+ICt9
Ow0KPiA+ICsNCj4gPiDCoEJFR0lOIHsNCj4gPiDCoMKgwqDCoCBpZiAoISRFTlZ7UFZFX0dFTkVS
QVRJTkdfRE9DU30pIHsNCj4gPiDCoMKgwqDCoMKgwqDCoMKgcmVxdWlyZSBQVkU6OkhBOjpFbnY6
OlBWRTI7DQo+ID4gQEAgLTYwMSw2ICs2MDcsMzMgQEAgbXkgJGNoZWNrX3ZtX2NyZWF0ZV91c2Jf
cGVybSA9IHN1YiB7DQo+ID4gwqDCoMKgwqAgcmV0dXJuIDE7DQo+ID4gwqB9Ow0KPiA+IMKgDQo+
ID4gK215ICRjaGVja19icmlkZ2VfYWNjZXNzID0gc3ViIHsNCj4gPiArwqDCoMKgIG15ICgkcnBj
ZW52LCAkYXV0aHVzZXIsICRwYXJhbSkgPSBAXzsNCj4gPiArDQo+ID4gK8KgwqDCoCByZXR1cm4g
MSBpZiAkYXV0aHVzZXIgZXEgJ3Jvb3RAcGFtJzsNCj4gPiArDQo+ID4gK8KgwqDCoCBmb3JlYWNo
IG15ICRvcHQgKGtleXMgJXskcGFyYW19KSB7DQo+ID4gK8KgwqDCoMKgwqDCoMKgbmV4dCBpZiAk
b3B0ICF+IG0vXm5ldFxkKyQvOw0KPiA+ICvCoMKgwqDCoMKgwqDCoG15ICRuZXQgPSBQVkU6OlFl
bXVTZXJ2ZXI6OnBhcnNlX25ldCgkcGFyYW0tPnskb3B0fSk7DQo+ID4gK8KgwqDCoMKgwqDCoMKg
bXkgJGJyaWRnZSA9ICRuZXQtPnticmlkZ2V9Ow0KPiA+ICvCoMKgwqDCoMKgwqDCoG15ICR0YWcg
PSAkbmV0LT57dGFnfTsNCj4gPiArwqDCoMKgwqDCoMKgwqBteSAkem9uZSA9ICdsb2NhbCc7DQo+
ID4gKw0KPiA+ICvCoMKgwqDCoMKgwqDCoGlmICgkaGF2ZV9zZG4pIHsNCj4gPiArwqDCoMKgwqDC
oMKgwqDCoMKgwqAgbXkgJHZuZXRfY2ZnID0gUFZFOjpOZXR3b3JrOjpTRE46OlZuZXRzOjpjb25m
aWcoKTsNCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGRlZmluZWQobXkgJHZuZXQgPQ0K
PiA+IFBWRTo6TmV0d29yazo6U0ROOjpWbmV0czo6c2RuX3ZuZXRzX2NvbmZpZygkdm5ldF9jZmcs
ICRicmlkZ2UsIDEpKSkNCj4gPiB7DQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCR6b25lID0gJHZuZXQtPnt6b25lfTsNCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQ0KPiA+
ICvCoMKgwqDCoMKgwqDCoH0NCj4gPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gMSBpZiAkcnBjZW52
LT5jaGVja19hbnkoJGF1dGh1c2VyLA0KPiA+ICIvc2RuL3pvbmVzLyR6b25lIiwgWydTRE4uQXVk
aXQnLCAnU0ROLkFsbG9jYXRlJ10sIDEpOw0KPiANCj4gd2h5IGlzIHRoaXMgJG5vZXJyPyBzaG91
bGQgYmUgYSBoYXJkIGZhaWwgQUZBSUNUISBhLCByZS1yZWFkaW5nIHRoZQ0KPiBjb3ZlciBsZXR0
ZXIsIHRoaXMgaXMgaW50ZW50aW9uYWwuIG1pZ2h0IGJlIHdvcnRoIGEgY2FsbG91dCBoZXJlIGlu
IGENCj4gY29tbWVudCAoYW5kIG9uY2UgdGhpcyBpcyBmaW5hbGl6ZWQsIGluIHRoZSBkb2NzIDsp
KQ0KeWVzLCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hlY2sgbGF0ZXIgaWYgd2UgaGF2ZSBwZXJtaXNz
b2lucyBvbg0KYnJpZGdlL3RhZw0KDQo+IA0KPiA+ICvCoMKgwqDCoMKgwqDCoHJldHVybiAxIGlm
ICR0YWcgJiYgJHJwY2Vudi0+Y2hlY2tfYW55KCRhdXRodXNlciwNCj4gPiAiL3Nkbi92bmV0cy8k
YnJpZGdlLiR0YWciLCBbJ1NETi5BdWRpdCcsICdTRE4uQWxsb2NhdGUnXSwgMSk7DQo+IA0KPiBz
YW1lIGhlcmUsIEkgdGhpbmsgSSdkIHByZWZlciAvc2RuL3ZuZXRzLyRicmlkZ2UvJHRhZyBpZiB3
ZSBnbyBkb3duDQo+IHRoYXQNCj4gcm91dGUhIHRoZW4gdGhpcyB3b3VsZCBhbHNvIGJlIGltcHJv
dmVkLCBzaW5jZSBoYXZpbmcgYWNjZXNzIHRvIHRoZQ0KPiB0YWcNCj4gYWxzbyBjaGVja3MgYWNj
ZXNzIHRvIHRoZSBicmlkZ2UsIGFuZCB0aGlzIGNvdWxkIGJlIHR1cm5lZCBpbnRvIGENCj4gaGFy
ZA0KPiBmYWlsLCB3aGljaCBpdCBzaG91bGQgYmUhDQo+IA0KSSBoYWQgdHJpZWQgdGhpcyB3YXks
IEkgZG9uJ3QgcmVtZW1iZXIsIEkgdGhpbmsgSSBoYWQgYSBwcm9ibGVtDQpzb21ld2hlcmUsDQpi
dXQgSSdsbCByZXRyeSBpdCBhZ2FpbiwgYXMgaXQncyBjbGVhbmVyIGluZGVlZC4NCg0KDQo+IHdo
YXQgYWJvdXQgdHJ1bmtpbmc/DQo+IA0Kbm90IGltcGxlbWVudGVkIGluZGVlZCwgYnV0IEkgdGhp
bmsgd2UgY291bGQgY29tcGFyZSB0aGUgdHJ1bmsgdmxhbnMNCmxpc3QgdG8gdGhlIHZsYW4gcGF0
aCBwZXJtaXNzaW9ucy4NCg0KT3IgbWF5YmUgd2UganVzdCB3YW50IHRoYXQgdXNlciBoYXZlIGZ1
bGwgYnJpZGdlIHBlcm1pc3Npb25zLHRvIGRlZmluZWQNCnRoZSBhbnkgdmxhbnMgaW4gdGhlIHRy
dW5rID8NCg0KDQo+ID4gKw0KPiA+ICvCoMKgwqDCoMKgwqDCoCRycGNlbnYtPmNoZWNrX2FueSgk
YXV0aHVzZXIsICIvc2RuL3ZuZXRzLyRicmlkZ2UiLA0KPiA+IFsnU0ROLkF1ZGl0JywgJ1NETi5B
bGxvY2F0ZSddKTsNCj4gDQo+IGZvciB0aGUgd2hvbGUgYmxvY2sgb2YgY2hlY2tzIGhlcmU6DQo+
IA0KPiB3aGF0IGFyZSB0aGUgc2VtYW50aWNzIG9mIEF1ZGl0IGFuZCBBbGxvY2F0ZSBoZXJlPyBk
byB3ZSBuZWVkIGFub3RoZXINCj4gbGV2ZWwgYmV0d2VlbiAic2VlcyBicmlkZ2Uvdm5ldCIgYW5k
ICJjYW4gYWRtaW5pc3Rlci9yZWNvbmZpZ3VyZQ0KPiBicmlkZ2Uvdm5ldCIgdGhhdCBzYXlzICJj
YW4gdXNlIGJyaWRnZS92bmV0Ij8NCg0KbW1tbSwgdGhlIFNETi5BbGxvY2F0ZSBvbiAvc2RuL3Zu
ZXRzIGluZGVlZCBkb24ndCBtYWtlIHNlbnNlLg0KKGl0J3Mgb25seSBvbiB0aGUgL3Nkbi96b25l
cywgd2hlcmUgeW91IGFsbG9jYXRlIHRoZSB2bmV0cykuDQoNCml0IHNob3VsZCBiZSBTRE4uQXVk
aXQgb25seS4NCg0KDQoNCg0KPiANCj4gPiArwqDCoMKgIH0NCj4gPiArwqDCoMKgIHJldHVybiAx
Ow0KPiA+ICt9Ow0KPiA+ICsNCj4gPiDCoG15ICRjaGVja192bV9tb2RpZnlfY29uZmlnX3Blcm0g
PSBzdWIgew0KPiA+IMKgwqDCoMKgIG15ICgkcnBjZW52LCAkYXV0aHVzZXIsICR2bWlkLCAkcG9v
bCwgJGtleV9saXN0KSA9IEBfOw0KPiA+IMKgDQo+ID4gQEAgLTg3OCw3ICs5MTEsNyBAQCBfX1BB
Q0tBR0VfXy0+cmVnaXN0ZXJfbWV0aG9kKHsNCj4gPiDCoA0KPiA+IMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgJiRjaGVja192bV9jcmVhdGVfc2VyaWFsX3Blcm0oJHJwY2VudiwgJGF1dGh1c2VyLA0K
PiA+ICR2bWlkLCAkcG9vbCwgJHBhcmFtKTsNCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICYk
Y2hlY2tfdm1fY3JlYXRlX3VzYl9wZXJtKCRycGNlbnYsICRhdXRodXNlciwgJHZtaWQsDQo+ID4g
JHBvb2wsICRwYXJhbSk7DQo+ID4gLQ0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAmJGNoZWNr
X2JyaWRnZV9hY2Nlc3MoJHJwY2VudiwgJGF1dGh1c2VyLCAkcGFyYW0pOw0KPiA+IMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgJiRjaGVja19jcHVfbW9kZWxfYWNjZXNzKCRycGNlbnYsICRhdXRodXNl
ciwgJHBhcmFtKTsNCj4gPiDCoA0KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJGNoZWNrX2Ry
aXZlX3BhcmFtLT4oJHBhcmFtLCAkc3RvcmVjZmcpOw0KPiA+IEBAIC0xNTc4LDYgKzE2MTEsOCBA
QCBteSAkdXBkYXRlX3ZtX2FwacKgID0gc3ViIHsNCj4gPiDCoA0KPiA+IMKgwqDCoMKgICYkY2hl
Y2tfc3RvcmFnZV9hY2Nlc3MoJHJwY2VudiwgJGF1dGh1c2VyLCAkc3RvcmVjZmcsICR2bWlkLA0K
PiA+ICRwYXJhbSk7DQo+ID4gwqANCj4gPiArwqDCoMKgICYkY2hlY2tfYnJpZGdlX2FjY2Vzcygk
cnBjZW52LCAkYXV0aHVzZXIsICRwYXJhbSk7DQo+ID4gKw0KPiA+IMKgwqDCoMKgIG15ICR1cGRh
dGVmbiA9wqAgc3ViIHsNCj4gPiDCoA0KPiA+IMKgwqDCoMKgwqDCoMKgwqBteSAkY29uZiA9IFBW
RTo6UWVtdUNvbmZpZy0+bG9hZF9jb25maWcoJHZtaWQpOw0KPiA+IC0tIA0KPiA+IDIuMzAuMg0K
PiA+IA0KPiA+IA0KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fDQo+ID4gcHZlLWRldmVsIG1haWxpbmcgbGlzdA0KPiA+IHB2ZS1kZXZlbEBsaXN0cy5w
cm94bW94LmNvbQ0KPiA+IGh0dHBzOi8vYW50aXBoaXNoaW5nLmNldHNpLmZyL3Byb3h5L3YzP2k9
Wms5MlZFRkthR1E0VW1zNGNuWkVVV01UcGZIYVhGUUdSdzFfQ25Pb09IMCZyPWJIQTFkR1YzTldK
UVZVbG9hV05GVVpQdTBmSzJCZldObkVIYURMRHdHMHJ0RGVkcGx1WkJJZmZTTDFNNWNqM0YmZj1T
bGhEYkU5dVMybGFTMkphWkZwTld2bXN4YWkxemxKUDlsbGdubDVISXYtNGpBamk4RGgyQlFhd3p4
SUQ1YnpyNlV2LTNFUWQtZWx1UWJzUGZjVU9UZyZ1PWh0dHBzJTNBLy9saXN0cy5wcm94bW94LmNv
bS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsJms9WFJLVQ0KPiA+IA0KPiA+IA0K
PiA+IA0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fDQo+IHB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gcHZlLWRldmVsQGxpc3RzLnByb3ht
b3guY29tDQo+IGh0dHBzOi8vYW50aXBoaXNoaW5nLmNldHNpLmZyL3Byb3h5L3YzP2k9Wms5MlZF
RkthR1E0VW1zNGNuWkVVV01UcGZIYVhGUUdSdzFfQ25Pb09IMCZyPWJIQTFkR1YzTldKUVZVbG9h
V05GVVpQdTBmSzJCZldObkVIYURMRHdHMHJ0RGVkcGx1WkJJZmZTTDFNNWNqM0YmZj1TbGhEYkU5
dVMybGFTMkphWkZwTld2bXN4YWkxemxKUDlsbGdubDVISXYtNGpBamk4RGgyQlFhd3p4SUQ1Ynpy
NlV2LTNFUWQtZWx1UWJzUGZjVU9UZyZ1PWh0dHBzJTNBLy9saXN0cy5wcm94bW94LmNvbS9jZ2kt
YmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsJms9WFJLVQ0KPiANCg0K