From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 0FB3D9D1E6 for ; Fri, 2 Jun 2023 14:21:49 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id E15802A375 for ; Fri, 2 Jun 2023 14:21:18 +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 ; Fri, 2 Jun 2023 14:21:17 +0200 (CEST) Received: from CYLNEXC01.cyllene.corp (unknown [10.0.250.28]) by mail02.cetsi.fr (Postfix) with ESMTP id 227C14050294 for ; Fri, 2 Jun 2023 14:21:16 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mail02.cetsi.fr 227C14050294 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groupe-cyllene.com; s=dkim; t=1685708476; bh=mecxXrgNOfurRT6v+12Nx6fgF8emwxu4+IKR2pnhQ2Y=; h=From:To:Subject:Date:References:In-Reply-To:From; b=03CZ+E8Fq1jEDZxAI1lL0eIYKLG1uho0hTJaJjAZqwq3xuaYwqcbCHwnYJKWCkP/Y 1m3dtLlbQehSCooHR49sYF77wyVBnNtQ8IzbNEKULIXctR4uLVRhSuv7cAY9BXtdfx RVTwvzVhebvZdkr3fQge3YHMgIozhre+f/qOzZHk= 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:21:16 +0200 Received: from FRA01-PR2-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:21:16 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QdrS6gGZTt27HbFX1JigTDqo5APCGOt5gHkeT5cV8L0+5TjXphIQBvE81Y71B49qSwpAPWNinus98D+V2MWTF89Rdj6vOEfPMZlmplS/2mLAm1MHYMRcM+Jp8Z6sYkr764U9juz2m4AqqKNkPiY5P3qtAwbSeIoq/LeA/eCH9pznPvzmjvEu1WuPZ0VACHtjdyR3OSoKmURDAQ1gltoJ7o/ASxL5E1NHUp6BLoxbu4V1H+tNms5meNb4ZUy4LnsTKcgocFWXN+Jv/qbF8/Fwf+bb0cvwJFDUcVQJCTc3UnkRHJXEHc8whOrUlblVkW6hmZ/NzWUeO2oKegAl8s1Z1w== 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=mecxXrgNOfurRT6v+12Nx6fgF8emwxu4+IKR2pnhQ2Y=; b=VVGDTYOqwQyFjIJjh/+iCFn0S+Ut+62fXH9BxKCAS5t+tq8me6a0lVfSpPRdNtBThwH8+/tTUnMfcH+qka+msgcUy1AGlivskfUkyKiwIyp0qqeR9/RX1dw7kxA+yGAKdw4Cmbx3XiwZWuZaor8wRKXEX/kekxaNDepWrXKsllaJeSBsnovqQ9J+syKcCgBBzBlvGYqfyKeOOS/w4wdlzESZvXuw+4HaOnnEdj/hG9iwnckTl5fLFGU0N+DDRK40+gcwgz6WgKRAkFtPww68UscZi1O3UtbzX8xpPHTddPtKieZIC/7+gIF4hBGupvXUKJzj0lvoS8fF7rIMMKDBrg== 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=mecxXrgNOfurRT6v+12Nx6fgF8emwxu4+IKR2pnhQ2Y=; b=jDY4upPhuvPmaSyncmoT6xrR+xSEvOXpfrFh7tfGh2nbH8alpaqvaWEYR93zRJ2u6TFOdgDlPwLWGjRF1fGXXG3kGeB56XhrakOUKtj/FvQmkQ/SjHhOa/Q/OpHBERLp348gG+whpRMDKQZ5mXw9MpZBnwVvd0vtcEr1AuNIYs8= Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:32::17) by PR0P264MB2025.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:16c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.23; Fri, 2 Jun 2023 12:21:15 +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:21:15 +0000 From: "DERUMIER, Alexandre" To: "pve-devel@lists.proxmox.com" Thread-Topic: [pve-devel] [PATCH pve-manager 2/4] add permissions management for "local" network zone Thread-Index: AQHZj6ORNrA9O7dy+E2zvsXMw+zeZ693bosAgAALoAA= Date: Fri, 2 Jun 2023 12:21:15 +0000 Message-ID: <4e03c5b89c3c7a3b6810bb9f5e4e87e751d3bc4f.camel@groupe-cyllene.com> References: <20230526072724.1605613-1-aderumier@odiso.com> <20230526072724.1605613-3-aderumier@odiso.com> <1685703147.w34rasy2o5.astroid@yuna.none> In-Reply-To: <1685703147.w34rasy2o5.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_|PR0P264MB2025:EE_ x-ms-office365-filtering-correlation-id: 34cb7efe-bccc-41c7-4f1a-08db6363dc8a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2Kw2FsRuX7idYj/lhjMsV/xjZtdA6ksAQzy9tH8BNHTDtrvIXa9jn49CGtw8iZnhWjhhm+DH8XWBLmo0/EpUmjEe04E3rmdUaAmHlwj/GEX5ZeE8ZSJ/xOOyqhiclfZ/gLOxJhyQj+jXil0/ex0nrMd0S7VuQye4cEZtcCsPPMn7rBSm2Sn2SAWZX6VJUhi+t/sNJhRbNeg/cNmbs+Ah7IrAqqP4FRzjlljXC580FeyGinWuAwYO/TK+W9YWxViGw6Obx+JZ9lRHGRVln9NwCBOefEL+pnYs5fe9YMp19umob0t4wgsmes9MHUVwHpVdPvE2TNjXGjNS45zgT8PZ3oMYhIh1hZdsMsrOkI5g4KwVqic0mpAHHOypI7P7VnjgaGuyLQuzGDnw0V47OWa+VKurQT6ttAjtKinzD50FC+XxktAOWZ3G3s5GetzmExfP2lfHyFV0eQ54TSt2j0XuxU2l6IHg/g3B1FTFm2t55RTGJkn2SFwcvbYanwwVGCXGY0vmshaZN2Ot+ciw2aFDSuTs3+a9lh3QcFkrbCb1SHD4lNHkPTgny7H2zKo5nbtL1rbe3hVPlTaznyWLq8RG5TVo7J11WwEfPEGw1NRVjkE= 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)(136003)(346002)(376002)(396003)(39850400004)(366004)(451199021)(66574015)(83380400001)(122000001)(36756003)(41300700001)(38070700005)(38100700002)(316002)(6486002)(53546011)(71200400001)(6506007)(966005)(6512007)(6916009)(64756008)(66446008)(66476007)(66946007)(66556008)(76116006)(91956017)(2906002)(8676002)(8936002)(5660300002)(2616005)(19627235002)(478600001)(86362001)(186003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?REthSXlUNGRBM3lZSllxTSs0L1REMzBiZUpVMGZXN1ZZYnhpZkhtUDE0ZGJN?= =?utf-8?B?ZWhVTm52VVZvME1BZDNtOEV4YS9nVzBXLzZRQkVkdFZPVEx6U1RMZVIxdk5P?= =?utf-8?B?U1d6T2MrOVhWSzNWd2dLa3ZpQnR2THUxVmJDSGk1RjYrdlRiVjdvNzh3dHFk?= =?utf-8?B?aFJzRDVhZTJoVlhkQUUxQmd4N0NmMXAwTEVhblk4TXhBSWZ0WmcwSUU2Y2lZ?= =?utf-8?B?cVY0eWdUeXpxcmh3SVM2Nkl1V1J1VjlYWGgwMG5LcFIwQnhOSzlBQ3dGcG5j?= =?utf-8?B?THZtbkM0TmR2a0h4QURGTXNTT3VnRHRGTUdGUHhxeFpxS1Q3VHBtbmhPVXd1?= =?utf-8?B?YVJhMmx6NE5JR2VTWjhMWENRQk45UkFXaXNOSG1FLzkyb3dIL0NCUGtlMGpk?= =?utf-8?B?dnlSRzdSa3EwVXBZSExuUTZ4OC9jSFpqZWJFMkxVRGZnRU1OVWJXRitIYStn?= =?utf-8?B?a0xKeHBVa1V6V3k0NitDNWlCSUR1cy83bGZYMnJVckRGYzVDc2tDMEJzM3NP?= =?utf-8?B?WC9SNXNRQWdMVlprV2p3R3hBT0QrRkhVT3E0K1YrWTdIdTBjeVo5aFpBcXli?= =?utf-8?B?RFRycEREcDFYelF1TXhtalJHTDBnYU1MRDd2THBBaXRsbG5hVWRPenpVK0lY?= =?utf-8?B?SUI5dVYwbkdkcnJXQit6Wjd0SU05QjRkTmtreFprZEtoSnB4Q1Y1cVl4b2Qz?= =?utf-8?B?VFJEZ2s0OUhYUWV5Q1FacGJrTnF3dU1YWGZzM0dyZTM5K2JuS2dSSnk4Z3Z5?= =?utf-8?B?MUZ1djJiaDliRHpwbXYyOGVuVFlsTGd4TEptRWN3ZCtTdFFobThWbGUyV2VN?= =?utf-8?B?V2JORWkvR1pkblkyanFLdlppdGZMQWNkNzc5OEVLSS8zdjNqU0NJVGk2TU0y?= =?utf-8?B?OHJUeVdXakp4R0xsZ0NFMWk4Y2V4RlVOcGg2WFlIOWtJa2VES2E2dDNvblVr?= =?utf-8?B?dTNLL2ZXdGVOVXlkWDZDa0FUcCtVWUxQanNuYmVLTW9URUhPNERXVmJZMkla?= =?utf-8?B?Wkw4bHJsOUhUaUZ3SkV5VjNKNmtXS3F4SUk0SlMxa3drbVgvQStOK0hkanRF?= =?utf-8?B?M1I5NFdOL0dDc1RpOUNkMWFhaGd4ei9OR3ZZcVhUZllYM1k2dVVraEtncHg3?= =?utf-8?B?S3NYWEo1dFJ5c2dyZ2RKSGd1OGdoVWE3MjIrR2JjbDFCNFBQTkFrRjBJakFi?= =?utf-8?B?a2NQK1UyZk9JVjZnSTRQVkR5WUNQeUw1OHB2b0Q5OVQ2YktENDlGL2Q0V0M5?= =?utf-8?B?aVYvRFZQY2lVZDdjRDRUbmR2WjR4aHhRMG04TTcrMEk4STIwTHl4VTN1Nm9p?= =?utf-8?B?Qk5pdmt4SzJYZFdzYWdIdS9nR2tNZFk4SXdvM3hCM2N1cXpkSXExeWczb29R?= =?utf-8?B?UHd1WEVKZmc3c1FoN0VWOVZXc2Q5amJDanhvUE1idGRSankveHFLUVlDN2Jl?= =?utf-8?B?dFpBNnJxbDZ3QVVVMXpIckpDTnJZQUcxRWgwQTJIRHFqTnJKcVdHVE5zWnZz?= =?utf-8?B?UTJYcDZleER2TTZUckUwTy81MHIxUGxORjlaUlZSTHhYcXhEb1pkNVlIVmRX?= =?utf-8?B?dllvVnhxbWM3OUlGbnNGZCtjeWYvSlAvVEovUXkrUTVYTzdVbG9Yd2VrQ0hG?= =?utf-8?B?U1hWUm92YWxXZ2V1bGxtUkYvVlJlQi9UeVppSFFocVNWalBWcnFzTkFmZnYr?= =?utf-8?B?L3d6ajZpT3NRUzNXODR5Qk0rM0JHQStUWnhJVEFqdTRnTllJVnorRlY2eXJ6?= =?utf-8?B?cWUyVU4yb2pScU90cmVMTWM2N2JKTmVWY3Qwa24zc0R1eXZyN2kwbjdrRE1v?= =?utf-8?B?dGtLcjVCUXdySGpDYURxZEQvRkR6Rnc0Qk15U201aC9jampXamQ3UDI1bE1k?= =?utf-8?B?elZkMkJ3TmVHeVl5U1FhNkhMV0tuYlNiMFZQcFFaSW9TcHJWQlp5TEZnc2xH?= =?utf-8?B?RzF3TGw0Z0oyVGJMdWhleWV3c3p0K2t6T010LzBSZkcrU0ozVU1hQU1CTDBo?= =?utf-8?B?YldGVk1KRVJQODYwVWF3NFpnelhoV0xUQ094NGV6amdyVndVaXJkdS92QmYz?= =?utf-8?B?WXJEYjNCa28rb2pzSVRSOTZxcHptdWw2U2U3NU8yU3ZyZmhacHNmcjlTdWYr?= =?utf-8?B?NW5KbjRUZDczWk5lVWttZjlmeWh3OTRZRVhJL2R4UU9oUEYvSVNYMkJ2dENo?= =?utf-8?Q?jhCV4MXZdP/WtHfsCQbtmKUi9PPG7/wrJbX3/8sPx1gT?= Content-Type: text/plain; charset="utf-8" Content-ID: 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: 34cb7efe-bccc-41c7-4f1a-08db6363dc8a X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jun 2023 12:21:15.5721 (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: 3wvRBZSfycb2GgI9ocrdDCFgGcno/+LAWBiFS4fp0xAwL50Jj4xwUsXUUuNK+3P6CRPv4w5PsaAc24y5sSLKI3h68juop0gcNYEBtK/1w/Nj0Hrfa4i0NKpdndriYZsd X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR0P264MB2025 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.451 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. [cetsi.fr, cluster.pm, network.pm, groupe-cyllene.com, groupecyllene.onmicrosoft.com, me.zone, proxmox.com] Subject: Re: [pve-devel] [PATCH pve-manager 2/4] add permissions management for "local" network zone X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jun 2023 12:21:49 -0000 TGUgdmVuZHJlZGkgMDIganVpbiAyMDIzIMOgIDEzOjM5ICswMjAwLCBGYWJpYW4gR3LDvG5iaWNo bGVyIGEgw6ljcml0wqA6Cj4gT24gTWF5IDI2LCAyMDIzIDk6MjcgYW0sIEFsZXhhbmRyZSBEZXJ1 bWllciB3cm90ZToKPiA+IGFkZCBhIGRlZmF1bHQgdmlydHVhbCB6b25lIGNhbGxlZCAnbG9jYWwn IGluIHRoZSByZXNzb3VyY2UgdHJlZSwKPiA+IGFuZCBoYW5kbGUgcGVybWlzc2lvbnMgbGlrZSBh IHRydWUgc2RuIHpvbmUKPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIERlcnVtaWVy IDxhZGVydW1pZXJAb2Rpc28uY29tPgo+ID4gLS0tCj4gPiDCoFBWRS9BUEkyL0NsdXN0ZXIucG3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDEyICsrKysrKysrKysrKwo+ID4gwqBQ VkUvQVBJMi9OZXR3b3JrLnBtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDUg KysrLS0KPiA+IMKgd3d3L21hbmFnZXI2L3Nkbi9ab25lQ29udGVudFZpZXcuanMgfCAyNwo+ID4g KysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPiDCoDMgZmlsZXMgY2hhbmdlZCwgNDEgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL1BWRS9BUEky L0NsdXN0ZXIucG0gYi9QVkUvQVBJMi9DbHVzdGVyLnBtCj4gPiBpbmRleCAyZTk0MjM2OC4uZThm NWUwNmUgMTAwNjQ0Cj4gPiAtLS0gYS9QVkUvQVBJMi9DbHVzdGVyLnBtCj4gPiArKysgYi9QVkUv QVBJMi9DbHVzdGVyLnBtCj4gPiBAQCAtNDc0LDYgKzQ3NCwxOCBAQCBfX1BBQ0tBR0VfXy0+cmVn aXN0ZXJfbWV0aG9kKHsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ID4gwqDCoMKgwqDC oMKgwqDCoH0KPiA+IMKgCj4gPiArwqDCoMKgwqDCoMKgwqAjYWRkIGRlZmF1bHQgImxvY2FsIiBu ZXR3b3JrIHpvbmUKPiA+ICvCoMKgwqDCoMKgwqDCoGZvcmVhY2ggbXkgJG5vZGUgKEAkbm9kZWxp c3QpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBteSAkbG9jYWxfc2RuID0gewo+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlkID0+ICJzZG4vJG5vZGUvbG9jYWwiLAo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHNkbiA9PiAnbG9jYWwnLAo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG5vZGUgPT4gJG5vZGUsCj4gPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgdHlwZSA9PiAnc2RuJywKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBzdGF0dXMgPT4gJ29rJywKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Owo+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIHB1c2ggQCRyZXMsICRsb2NhbF9zZG47Cj4gPiArwqDC oMKgwqDCoMKgwqB9Cj4gPiArCj4gCj4gc2hvdWxkIHRoaXMgYWxzIG9iZSBndWFyZGVkIGJ5IHRo ZSB0eXBlIGNoZWNrIGxpa2UgYmVsb3c/IGlzIHRoZXJlCj4gYW55dGhpbmcgdGhhdCBlbnN1cmVz IHRoYXQgYSAnbG9jYWwnIHpvbmUgZG9lc24ndCBhbHJlYWR5IGV4aXN0IGFzCj4gcmVndWxhciBT RE4tbWFuYWdlZCB6b25lPwoKSSB3YXMgbW9yZSB0aGlua2luZyB0byBmb3JiaWQgImxvY2FsIiBu YW1lIGluIHNkbiBjb2RlIGluIGFub3RoZXIKcGF0Y2gsCmFzIHNkbiBpdCdzIHN0aWxsIGluIGJl dGEgYW55d2F5LCB1c2VyIGNvdWxkIHN0aWxsIHJlbmFtZSB6b25lIG1hbnVhbGx5CmluIGNmZy4K CmlmIG5vdCwgdXNlciB3aWxsIG5vdCBiZSBhYmxlIHRvIG1hbmFnZSBsb2NhbCBicmlkZ2VzIHBl cm1pc3Npb25zLgoKCj4gCj4gPiDCoMKgwqDCoMKgwqDCoMKgaWYgKCRoYXZlX3Nkbikgewo+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoISRwYXJhbS0+e3R5cGV9IHx8ICRwYXJhbS0+e3R5 cGV9IGVxICdzZG4nKSB7Cj4gPiDCoAo+ID4gZGlmZiAtLWdpdCBhL1BWRS9BUEkyL05ldHdvcmsu cG0gYi9QVkUvQVBJMi9OZXR3b3JrLnBtCj4gPiBpbmRleCBhNDM1NzlmYS4uYjNmYWJhMWEgMTAw NjQ0Cj4gPiAtLS0gYS9QVkUvQVBJMi9OZXR3b3JrLnBtCj4gPiArKysgYi9QVkUvQVBJMi9OZXR3 b3JrLnBtCj4gPiBAQCAtMjA5LDcgKzIwOSw3IEBAIF9fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRo b2Qoewo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0eXBlID0+IHsKPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgZGVzY3JpcHRpb24gPT4gIk9ubHkgbGlzdCBzcGVjaWZpYyBp bnRlcmZhY2UKPiA+IHR5cGVzLiIsCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHR5cGUgPT4gJ3N0cmluZycsCj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZW51 bSA9PiBbIEAkbmV0d29ya190eXBlX2VudW0sICdhbnlfYnJpZGdlJyBdLAo+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGVudW0gPT4gWyBAJG5ldHdvcmtfdHlwZV9lbnVtLCAnYW55 X2JyaWRnZScsCj4gPiAnYW55X2xvY2FsX2JyaWRnZScgXSwKPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgb3B0aW9uYWwgPT4gMSwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg fSwKPiA+IMKgwqDCoMKgwqDCoMKgwqB9LAo+ID4gQEAgLTI1NCw3ICsyNTQsOCBAQCBfX1BBQ0tB R0VfXy0+cmVnaXN0ZXJfbWV0aG9kKHsKPiA+IMKgCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGZvciBteSAkayAoc29ydCBrZXlzICRpZmFjZXMtPiUqKSB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoG15ICR0eXBlID0gJGlmYWNlcy0+eyRrfS0+e3R5cGV9Owo+ID4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG15ICRtYXRjaCA9ICR0ZmlsdGVyIGVxICR0eXBl IHx8ICgkdGZpbHRlciBlcQo+ID4gJ2FueV9icmlkZ2UnICYmICgkdHlwZSBlcSAnYnJpZGdlJyB8 fCAkdHlwZSBlcSAnT1ZTQnJpZGdlJykpOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoG15ICRtYXRjaCA9ICR0ZmlsdGVyIGVxICR0eXBlIHx8ICgkdGZpbHRlciA9fgo+ID4gL15h bnkoX2xvY2FsKT9fYnJpZGdlJC8gJiYgKCR0eXBlIGVxICdicmlkZ2UnIHx8ICR0eXBlIGVxCj4g PiAnT1ZTQnJpZGdlJykpOwo+IAo+IHRoaXMgbGluZSBpcyBnZXR0aW5nIGEgYml0IGxvbmcsIG1h eWJlIGl0IGNvdWxkIGJlIHJlZm9ybWF0ZWQgb3IKPiByZWZhY3RvcmVkPwoKeWVzIHN1cmUuCgo+ IAo+ID4gKwo+IAo+IG5pdDogdGhpcyBibGFuayBuZXdsaW5lIGlzIGludHJvZHVjZWQgaGVyZSBh bmQgcmVtb3ZlZCBpbiB0aGUgbmV4dAo+IHBhdGNoIDspCj4gCj4gPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGRlbGV0ZSAkaWZhY2VzLT57JGt9IGlmICEoJG1hdGNoICYmCj4gPiAk Y2FuX2FjY2Vzc192bmV0LT4oJGspKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ID4g wqAKPiA+IGRpZmYgLS1naXQgYS93d3cvbWFuYWdlcjYvc2RuL1pvbmVDb250ZW50Vmlldy5qcwo+ ID4gYi93d3cvbWFuYWdlcjYvc2RuL1pvbmVDb250ZW50Vmlldy5qcwo+ID4gaW5kZXggMDhmYTlk ODEuLjFhOTk0ZmM5IDEwMDY0NAo+ID4gLS0tIGEvd3d3L21hbmFnZXI2L3Nkbi9ab25lQ29udGVu dFZpZXcuanMKPiA+ICsrKyBiL3d3dy9tYW5hZ2VyNi9zZG4vWm9uZUNvbnRlbnRWaWV3LmpzCj4g PiBAQCAtMjYsNiArMjYsOSBAQCBFeHQuZGVmaW5lKCdQVkUuc2RuLlpvbmVDb250ZW50Vmlldycs IHsKPiA+IMKgwqDCoMKgwqDCoMKgwqB9Cj4gPiDCoAo+ID4gwqDCoMKgwqDCoMKgwqDCoHZhciBi YXNldXJsID0gIi9ub2Rlcy8iICsgbWUubm9kZW5hbWUgKyAiL3Nkbi96b25lcy8iICsKPiA+IG1l LnpvbmUgKyAiL2NvbnRlbnQiOwo+ID4gK8KgwqDCoMKgwqDCoMKgaWYgKG1lLnpvbmUgPT09ICds b2NhbCcpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBiYXNldXJsID0gIi9ub2Rlcy8iICsg bWUubm9kZW5hbWUgKwo+ID4gIi9uZXR3b3JrP3R5cGU9YW55X2xvY2FsX2JyaWRnZSI7Cj4gPiAr wqDCoMKgwqDCoMKgwqB9Cj4gPiDCoMKgwqDCoMKgwqDCoMKgdmFyIHN0b3JlID0gRXh0LmNyZWF0 ZSgnRXh0LmRhdGEuU3RvcmUnLCB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1vZGVsOiAn cHZlLXNkbnpvbmUtY29udGVudCcsCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdyb3VwRmll bGQ6ICdjb250ZW50JywKPiA+IEBAIC05NSw3ICs5OCwyOSBAQCBFeHQuZGVmaW5lKCdQVkUuc2Ru LlpvbmVDb250ZW50VmlldycsIHsKPiA+IMKgwqDCoMKgIEV4dC5kZWZpbmUoJ3B2ZS1zZG56b25l LWNvbnRlbnQnLCB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgZXh0ZW5kOiAnRXh0LmRhdGEuTW9kZWwn LAo+ID4gwqDCoMKgwqDCoMKgwqDCoGZpZWxkczogWwo+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg ICd2bmV0JywgJ3N0YXR1cycsICdzdGF0dXNtc2cnLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg IHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBuYW1lOiAnaWZhY2UnLAo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbnZlcnQ6IGZ1bmN0aW9uKHZhbHVlLCBy ZWNvcmQpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy9tYXAg bG9jYWwgdm1iciB0byB2bmV0Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGlmIChyZWNvcmQuZGF0YS5pZmFjZSkgewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZWNvcmQuZGF0YS52bmV0ID0gcmVjb3JkLmRhdGEuaWZh Y2U7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHZhbHVlOwo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0sCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSwK PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgbmFtZTogJ2NvbW1lbnRzJywKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBjb252ZXJ0OiBmdW5jdGlvbih2YWx1ZSwgcmVjb3JkKSB7Cj4gPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vbWFwIGxvY2FsIHZtYnIgY29tbWVudHMgdG8gdm5ldCBh bGlhcwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAocmVjb3Jk LmRhdGEuY29tbWVudHMpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgcmVjb3JkLmRhdGEuYWxpYXMgPSByZWNvcmQuZGF0YS5jb21tZW50czsKPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gdmFsdWU7Cj4gPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgfSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCB9LAo+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgICd2bmV0JywKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAnc3Rh dHVzJywKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAnc3RhdHVzbXNnJywKPiA+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgewo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBuYW1l OiAndGV4dCcsCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbnZlcnQ6IGZ1 bmN0aW9uKHZhbHVlLCByZWNvcmQpIHsKPiA+IC0tIAo+ID4gMi4zMC4yCj4gPiAKPiA+IAo+ID4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IHB2ZS1k ZXZlbCBtYWlsaW5nIGxpc3QKPiA+IHB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+ID4gaHR0 cHM6Ly9hbnRpcGhpc2hpbmcuY2V0c2kuZnIvcHJveHkvdjM/aT1aazkyVkVGS2FHUTRVbXM0Y25a RVVXTVRwZkhhWEZRR1J3MV9Dbk9vT0gwJnI9YkhBMWRHVjNOV0pRVlVsb2FXTkZVWlB1MGZLMkJm V05uRUhhRExEd0cwcnREZWRwbHVaQklmZlNMMU01Y2ozRiZmPVNsaERiRTl1UzJsYVMySmFaRnBO V3Ztc3hhaTF6bEpQOWxsZ25sNUhJdi00akFqaThEaDJCUWF3enhJRDVienI2VXYtM0VRZC1lbHVR YnNQZmNVT1RnJnU9aHR0cHMlM0EvL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9s aXN0aW5mby9wdmUtZGV2ZWwmaz1YUktVCj4gPiAKPiA+IAo+ID4gCj4gCj4gCj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBwdmUtZGV2ZWwgbWFpbGlu ZyBsaXN0Cj4gcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCj4gaHR0cHM6Ly9hbnRpcGhpc2hp bmcuY2V0c2kuZnIvcHJveHkvdjM/aT1aazkyVkVGS2FHUTRVbXM0Y25aRVVXTVRwZkhhWEZRR1J3 MV9Dbk9vT0gwJnI9YkhBMWRHVjNOV0pRVlVsb2FXTkZVWlB1MGZLMkJmV05uRUhhRExEd0cwcnRE ZWRwbHVaQklmZlNMMU01Y2ozRiZmPVNsaERiRTl1UzJsYVMySmFaRnBOV3Ztc3hhaTF6bEpQOWxs Z25sNUhJdi00akFqaThEaDJCUWF3enhJRDVienI2VXYtM0VRZC1lbHVRYnNQZmNVT1RnJnU9aHR0 cHMlM0EvL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2 ZWwmaz1YUktVCj4gCgo=