From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9])
	by lore.proxmox.com (Postfix) with ESMTPS id D46F51FF163
	for <inbox@lore.proxmox.com>; Thu, 24 Oct 2024 13:01:16 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 26AB1C469;
	Thu, 24 Oct 2024 13:01:12 +0200 (CEST)
To: "pve-devel@lists.proxmox.com" <pve-devel@lists.proxmox.com>,
 "f.gruenbichler@proxmox.com" <f.gruenbichler@proxmox.com>
Date: Thu, 24 Oct 2024 11:01:03 +0000
References: <20240930113153.2896648-1-alexandre.derumier@groupe-cyllene.com>
 <mailman.143.1727695927.332.pve-devel@lists.proxmox.com>
 <723920338.717.1729678408238@webmail.proxmox.com>
 <e976104d8ed7c365d8a482fa320a0691456e69c1.camel@groupe-cyllene.com>
 <1438328354.1331.1729755720501@webmail.proxmox.com>
In-Reply-To: <1438328354.1331.1729755720501@webmail.proxmox.com>
MIME-Version: 1.0
Message-ID: <mailman.532.1729767671.332.pve-devel@lists.proxmox.com>
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Post: <mailto:pve-devel@lists.proxmox.com>
From: "DERUMIER, Alexandre via pve-devel" <pve-devel@lists.proxmox.com>
Precedence: list
Cc: "DERUMIER, Alexandre" <alexandre.derumier@groupe-cyllene.com>
X-Mailman-Version: 2.1.29
X-BeenThere: pve-devel@lists.proxmox.com
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
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/>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
Subject: Re: [pve-devel] [PATCH v2 pve-storage 2/2] add lvmqcow2 plugin:
 (lvm with external qcow2 snapshot)
Content-Type: multipart/mixed; boundary="===============1971800117012363132=="
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

--===============1971800117012363132==
Content-Type: message/rfc822
Content-Disposition: inline

Return-Path: <alexandre.derumier@groupe-cyllene.com>
X-Original-To: pve-devel@lists.proxmox.com
Delivered-To: pve-devel@lists.proxmox.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) server-digest SHA256)
	(No client certificate requested)
	by lists.proxmox.com (Postfix) with ESMTPS id C6F1EC8187
	for <pve-devel@lists.proxmox.com>; Thu, 24 Oct 2024 13:01:10 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id ACACEC424
	for <pve-devel@lists.proxmox.com>; Thu, 24 Oct 2024 13:01:10 +0200 (CEST)
Received: from PR0P264CU014.outbound.protection.outlook.com (mail-francecentralazlp170120004.outbound.protection.outlook.com [IPv6:2a01:111:f403:c20a::4])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by firstgate.proxmox.com (Proxmox) with ESMTPS
	for <pve-devel@lists.proxmox.com>; Thu, 24 Oct 2024 13:01:06 +0200 (CEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=lNAi9Ipa5LTg3ZtQb3slrnoJFwsgQ0i60Y0GSC9jYUp7PmR7QSlZskDrFhbs6qdW2h7syaPEiuomOg1sOCO14esBmQWUiRu+iBck4sFgfIo0UlqBpn5cwOJUye3bzSkgjX6qnpu6e7plubMqAW9iVJck7EjeFZ/XcUAeIr19RI1AA6MbelCjosjhacVadCiAoCef7vV6u/pQE1SjsQFA3FndEwDJC7jMRjhCuh/Xus4aQOz9AHrv+sUdOFj8S/oPF1a3vGn6pzQnDoMEMKzM4refPKO2AOu8aw/BRKVLXkvXCJHJ6elJFYdPhLDIQHTq7ZFZbDO3W6tQ41E08lyQmw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 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=y7xm0aFFaGdJigWiiZZsIgSEnra7SYE1vCCFmuTQLjc=;
 b=zUwU7Ubp8lgJlEZ0DIbFe5KDxw2ZOxH6o8mAESVY40RBQedMXtqhxzLmX//TBpNlPWihn9zhlyendjSW2FWznmxUoEL7hNHwfefiVq7XievqK9OL7UL/m30WzD8kxetfYlETP5PSoMfHsqeASheQk3wlDxVUPidevRtqwyWEa9+qJgU56umQuGzi87Am/FFoVIlu/vk/QvaBhi8mY1DX30EmQ0oWzzMNJHwcw4GqYvPe1Z2k8PL493V/0+axO/QpOVx4J9p1CCQVJJwAUTTPU30wq+Tz+2sDdJ5BtihjFg59BlBQY3oehSCTUucoRouqpwOsPVpMwWHwuga0JnT10A==
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=y7xm0aFFaGdJigWiiZZsIgSEnra7SYE1vCCFmuTQLjc=;
 b=pVvE+YjAhcKXZMCVE5uGhtyVG/hYko2/nkk3ei273tIupmsLxyHttI0rhxYeS5eQ66OnumwymjSMgp9w+X9d4ugazrFRglBaWnPRHjvzW4ubrIj8zsZX/JdQz4NBrFX81gb01WIV06Ze0w3wKtyL1vA2tyKYsemKwyqAUbBN19g=
Received: from PAZP264MB3686.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:d8::7) by
 PATP264MB4857.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:429::20) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8093.17; Thu, 24 Oct 2024 11:01:04 +0000
Received: from PAZP264MB3686.FRAP264.PROD.OUTLOOK.COM
 ([fe80::4c89:3ea0:833e:abb]) by PAZP264MB3686.FRAP264.PROD.OUTLOOK.COM
 ([fe80::4c89:3ea0:833e:abb%7]) with mapi id 15.20.8093.014; Thu, 24 Oct 2024
 11:01:04 +0000
From: "DERUMIER, Alexandre" <alexandre.derumier@groupe-cyllene.com>
To: "pve-devel@lists.proxmox.com" <pve-devel@lists.proxmox.com>,
	"f.gruenbichler@proxmox.com" <f.gruenbichler@proxmox.com>
Subject: Re: [pve-devel] [PATCH v2 pve-storage 2/2] add lvmqcow2 plugin: (lvm
 with external qcow2 snapshot)
Thread-Topic: [pve-devel] [PATCH v2 pve-storage 2/2] add lvmqcow2 plugin: (lvm
 with external qcow2 snapshot)
Thread-Index: AQHbEyxrsu1lbEDa8UmEm4HrVQzY/LKUQg8AgAA7IQCAASziAIAAN5wA
Date: Thu, 24 Oct 2024 11:01:03 +0000
Message-ID:  <d3e6af3b66d993263e1163f47cbc3173d3184f33.camel@groupe-cyllene.com>
References: <20240930113153.2896648-1-alexandre.derumier@groupe-cyllene.com>
	 <mailman.143.1727695927.332.pve-devel@lists.proxmox.com>
	 <723920338.717.1729678408238@webmail.proxmox.com>
	 <e976104d8ed7c365d8a482fa320a0691456e69c1.camel@groupe-cyllene.com>
	 <1438328354.1331.1729755720501@webmail.proxmox.com>
In-Reply-To: <1438328354.1331.1729755720501@webmail.proxmox.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Evolution 3.52.0-1build2 
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: PAZP264MB3686:EE_|PATP264MB4857:EE_
x-ms-office365-filtering-correlation-id: 381bfefd-162b-4b45-ef18-08dcf41b2753
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam:  BCL:0;ARA:13230040|376014|10070799003|366016|1800799024|38070700018;
x-microsoft-antispam-message-info:  =?utf-8?B?S1pRbUpmTU5yNUt6Yk84QjVrMHFaZDArUGlRZFIweWg1TDJmL1g2RkE2T2t5?=
 =?utf-8?B?VTgvdzAzdjBWMVpyY0Z3ZXpKUk90U25VRDVuRTR6YjMxclRnNms5aG1VK1hS?=
 =?utf-8?B?bkVVVzlsdGs4VC9MR2lIbXFzVUFNeTQ4TDJPaThPdTFwM1oyMlZQelM3K1Qw?=
 =?utf-8?B?TStuTWViaFdNM09VUFZkMzhSZkNsZVYwSE1tNkp3ZWVtaFd4S0lkaC9KQlI2?=
 =?utf-8?B?aDdlZnJzWEdSeTZoem81MGJDMjZaMmZZZC9HK1Z1cTAvU0gxbGI4UmZWUjVm?=
 =?utf-8?B?ZkNFdENyV3V2MDdLM2dpdkMwR3gzUFNQNFE0ZTMyS0FkcUV2dDNXTXBTN2FB?=
 =?utf-8?B?Y2JML3pxbHUzQ3ozczBac0ttR0lYVS9VZnRGMVRSRFNZa3laWGd5bXVaa3Vy?=
 =?utf-8?B?V21MaU1hZEZGMHQ3YUZaRnl1aVFUclp2THhMREFOajhlK1JoQVV2dnVpZ21q?=
 =?utf-8?B?S0cxV0QySzRmZXp3M3NFZjVheVJzUi9GQk1vWS9yQ2hwZ1R4bDFnUFozOXVr?=
 =?utf-8?B?S1JwTmI1d3FuVGlsSkR1akR6MFNvMkJSS0U2dEJUcnV3TU43dEpEN0Vac052?=
 =?utf-8?B?elZrbUd3ZFBOVlNCa1IveDVSZ2hqU3QyVVdIbUZReWhSeHpBZUQ2czk2U1cz?=
 =?utf-8?B?cGxHTDkyYVJHQzBVV0VJMlhxcnBZaXBHN3pRSUZENEtPZEpybG5uSThobXI0?=
 =?utf-8?B?S1E4SVdOVnRlTy9OMENrMmNYNk9qaG5kcXcra3U2aDV1NUwycytMV0JzdjZN?=
 =?utf-8?B?MmxJNUI2M2VETVF1R1MzSFdBOS80STFQUkxoNXZ0STNFNkRDaFU4QTNVUlo0?=
 =?utf-8?B?L1p6akV1dkx3NCswUG9vOE1sN2NaZER1ZlFld205R3VLMUVNUCtDTHhNNm9z?=
 =?utf-8?B?cDltU0VSTDFuT1pBZXQvQis1LzNnNHlLOFBvaHRNdEVKK0JpUlV1dGJ5NEV3?=
 =?utf-8?B?VjZmSm9nYy9hMVBNV1g0VkYwdWtIWGpPZXFJWldVMmpBTGIxbjQ5VFBHdHVr?=
 =?utf-8?B?SG1xZ1RIczRaNmRaZ0E3azlrTkpGWVVuanFHZHdnSUdaamI5dVFyWlVZNzA3?=
 =?utf-8?B?RHNCZnl1Zm9ibGVGZjZoa3B5ZEdLK0luRUVYeG5FWUk3cDVqUmZEN2R3UWph?=
 =?utf-8?B?Ry9takNaLzlMM01odWEzY2NKRWFtWW9wbWsrSmVRZU5Mb3k3aGxxVGhhb2tj?=
 =?utf-8?B?UnJhaENERkF5bkdHdVJlVW1GZnZmUnpaTWdvdzJHaHljeWNpWkFveVZPekFW?=
 =?utf-8?B?cGM1Zllmay9GdVNwazZMWlMxQkRta2ZoVGRFcHNZNVpOSkdIbDRLK1NtN3RL?=
 =?utf-8?B?SzNJN2I3anQwY010TEpWWXFwVGhaMUV4UGZaVERGdy9NYTZQUmlVV25aMW1N?=
 =?utf-8?B?OStWZFhQQnFGSXlLYUdkWDUzQi9JOTNkM0RhMnFkNzFibklORVRmWXNnNEYz?=
 =?utf-8?B?UnQ4UTVxNVJNeUlwWnhIRG9kV0pQQ3cxVks1bGNtL2VHK0J3YnJuM0dNVEJl?=
 =?utf-8?B?MnkzY0g4UVRHemNTVjh0N2JQSEJqbkliWXU0aU5RWlZEZGl2anpSWmZyUmhV?=
 =?utf-8?B?UTZacjhJOVBJWkxhM0FPTG5nN0RGUVZOd1VvUmxOSGNKWEZCVGZncTdFeGd5?=
 =?utf-8?B?TlJ4RnZNcDNESTh3eFY3d2VpUlF5MnRNb3l2S290dmNJUkJ6cTVqRjdtQ2hz?=
 =?utf-8?B?b1d0U0cwSkcrMldYS2t4WjFEakhsYmtzbXYzT21iQURManZjWWdDZlMxTGhJ?=
 =?utf-8?Q?o9XKglhYN4po1O33rFm54saDE1TprOLQaKIk8Kx?=
x-forefront-antispam-report:  CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAZP264MB3686.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0:  =?utf-8?B?eW1rVUFuUjZSeXU5eklYck1FK05QWmJqa3Qza0ZrS1lneFRNTnlvU0Y2ZnRv?=
 =?utf-8?B?UFRsTG9jWmQ0K2QxODVuTVIzV1N0TEZIRWloWDhLbFByT084MDM3TExJbTZH?=
 =?utf-8?B?M3NXSVRkMEJqcDc1aWNUNjVhSjlXc3pBM21aSUNGeXd1UUlYMHRJZjZncHRq?=
 =?utf-8?B?U1JrblE4RWRjS2hLUjJQUC8zTHFNRis1Z3NTL0g3cXQ3MEo2aWFwTWhkVWxy?=
 =?utf-8?B?UmlNMERuZlF4VmZBdU9VY0dQNS8xMjlGWG42V245OGpONXFtYTAwNDFGVmZJ?=
 =?utf-8?B?QWF3N2JGYkdQaldGOHpDbDR2TmUzZ0pXRlBPVnllVWVVZ3JjSUtUMlQxdWsw?=
 =?utf-8?B?dGJoTnR4VGJNS0ZTeW4zQjNWbndhOFBtVGxQZ3BnRmk5T3FjVWpNWkVhL0to?=
 =?utf-8?B?Y1hWQVp5aVFKS1R1NW9waUduVVJVdWtVVGpMbTBjQ3JVMjloMDh1OUFycFhO?=
 =?utf-8?B?dUh6d1BSZmZmKzlqb1NZMVM5UVVwZzQ1NCtVenVuY3hza1d5TWpvR1VZSnkw?=
 =?utf-8?B?aFg3Q201Z3RKS29icHRLOVhOVjBpVTBzMHUrUnlHd1FWb0JEU0pJQWNQWVhC?=
 =?utf-8?B?dzNDVUJNekVBR1NtYUx5MFQ1TGJTM08xSjFYdk5JZ1F3aXJGcjhqZlZnNFRI?=
 =?utf-8?B?SUFabEVCRjgzbWMwQ0tnSmx4V3g5Z21FK3hWQStpSFlrN3VFVFllaCt2OVdl?=
 =?utf-8?B?Zy9RYnNYZUxOUUYySEtuSVo0L3dlTVJkTDhqKzhRcG9oNS9JVFRqbzllMWRM?=
 =?utf-8?B?MHBEakJ1RmZTMytzdWZzSUQ1MG5YUDJyd004R0FBVUhENU1qQkJoZlRDUTJh?=
 =?utf-8?B?TFN3T2xiSmFMZmZsRjQyZlZqdDh6dzRjUjl5TkJYSTRQZ3FhR0dFTEhPQlpk?=
 =?utf-8?B?cUpQTVovdzZCMUY5U0wzdnNOUVFrRXRyZkNoekgxanJzZk4vMFB5WmxvSkFn?=
 =?utf-8?B?bWpIUWNHZlZSdWZucXFYZ1BmYmE0LzFiaDJjY1RnNDIzQVhHMmNRMUlRUE9q?=
 =?utf-8?B?bGpRSFV2d29tR0lxbUkzNzE1a0hwL0VxcnMwNjZvVFA2L1cvZHR3ODQ5aTMv?=
 =?utf-8?B?RFFpNldRclRpZFA0V3dhdDVGb0hJU1V3T3Era2E3ODVrdTB3a1RVRHNnTE1K?=
 =?utf-8?B?VE1xRkg3RUNDTmdXcVVFUDZVL05XbklSejhNQWNIU0lpSzk4Q2pLejR0NGJC?=
 =?utf-8?B?bG1zeTkvRHdlWW04M0d2S0d2UlhLdGRkWW1WRVRaT0YvWGVqb3dhVmhaQ0xy?=
 =?utf-8?B?bUhtT1JiS1RJOFV4K211UDZHM3dhaFlPTEJXTk9BRFhEZXF2NEZoOGE0azZY?=
 =?utf-8?B?SjRvUFpWR2Q3U1YxVmpQMXkxRTg3WFZPaGxzTkd1cldzbGE0Z3M0b1BXbzA3?=
 =?utf-8?B?Wld3R21SbnlDc1ZCUFJEcW5rWjFCYjl4L2lNTVcyeitPS2E2NG9DMFpRL0R4?=
 =?utf-8?B?TWQ3c3YxUXAyK2xSa3hzY3RvMC8rRXByVTh4N2l0VXp1V3JIWVJNZklIdURy?=
 =?utf-8?B?eTVCUFZ1VVpOZWF3dEhLZU9OYW5GcllxVXBjNUJZYkZxVUpzVXRZeEIvdlFl?=
 =?utf-8?B?dUNXa2RpZHRUNG91Z0JMcnloOHR0c25rN3Qyby9vQmRzVUc1TWI5T2ZjU3No?=
 =?utf-8?B?RGZPZlBrUkErekVPSTBBRCtnWmhzbVc1K3p1MFpTSWd5TENENiswTzljUndR?=
 =?utf-8?B?Qms0WHVHV2FrRlBldDhKYW9TaEgxcXc1SFJZNU5EQ2tNVVNBYUZCR3ZLNGt0?=
 =?utf-8?B?eDc4SWtzYURpanZvLy93SzRpUW1rNXVjU21wSHYyMlBwdnRYNWpuTXhIMEFq?=
 =?utf-8?B?TWlWU1lvRFNIa0lZWkcxV2lRNFl4WFNmb2g5dHN2ODlLZG4rQ2dUL0NxT2Vk?=
 =?utf-8?B?NVZLU1dUY1VnUm8rRitRWUlZYlh6Q0hZMnZtcjlqL2x3ZnM2WnE2R3RHNTFG?=
 =?utf-8?B?TDhzWnJXdEZvbVB2SW1WMXUyVERoSGExTHovUTlpRTEzbjl1bkVOVnpPTE1m?=
 =?utf-8?B?dTJ1LyswMkFXTm1vQkJKYjhQQTBtc0JhU1FrdnA2aExKR1o5SkY3cWZVYitx?=
 =?utf-8?B?WHZyVFEzT0ZHNjZJeFVCcnNLdFEyY1Q1dUxaU2ZZV0R3WHRPTTJmM251Wmhr?=
 =?utf-8?B?LzVTdGMrM0JOVWpxZW9jTk5uM0NNdDdpYUFEVlRrVS9lWEhnTVkrNXFtNFdJ?=
 =?utf-8?Q?6ii2i4PZGNl5MeF4HGh0irMGE0EOsQszIcYuDLpjk67a?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <C62B8A53A106D5429853B89DB4633662@FRAP264.PROD.OUTLOOK.COM>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: groupe-cyllene.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PAZP264MB3686.FRAP264.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 381bfefd-162b-4b45-ef18-08dcf41b2753
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Oct 2024 11:01:04.0547
 (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: 9pLaVnkPPYb/MaNTYLlSbrhR7yTAZ5Q7VkIYUnT5p3L/yyzulS4veYyUI/g+tIn8yMYlXZu/IPyd3ZK9yCx7U8tHqk7A24eCUC3ywqJ3uOhcr3A9xtsvETc8sy/Q+ouG
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PATP264MB4857
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.446 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
	DMARC_PASS               -0.1 DMARC pass policy
	SPF_HELO_PASS          -0.001 SPF: HELO matches SPF record
	SPF_PASS               -0.001 SPF: sender matches SPF record
	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,pbsplugin.pm,cyllene.com,lvmqcow2plugin.pm,nongnu.org,lvmthinplugin.pm,esxiplugin.pm,defectivebydesign.org]
	URI_NOVOWEL               0.5 URI hostname has long non-vowel sequence

VGhhbmtzIEZhYmlhbiBmb3IgeW91ciB0aW1lICEgDQoNCkkgaGF2ZSB0cmllZCB0byByZXNwb25k
IGFzIG11Y2ggYXMgcG9zc2libGUuIChJJ20gZ29pbmcgdG8gSG9saWRheSBmb3INCjEgd2VlayB0
b21vcnJvdywgc28gc29ycnkgaWYgSSBkb24ndCByZXBseSB0byBhbGwgeW91ciBjb21tZW50cykN
Cg0KDQoNCi0tLS0tLS0tIE1lc3NhZ2UgaW5pdGlhbCAtLS0tLS0tLQ0KRGU6IEZhYmlhbiBHcsO8
bmJpY2hsZXIgPGYuZ3J1ZW5iaWNobGVyQHByb3htb3guY29tPg0Kw4A6ICJERVJVTUlFUiwgQWxl
eGFuZHJlIiA8YWxleGFuZHJlLmRlcnVtaWVyQGdyb3VwZS1jeWxsZW5lLmNvbT4sIHB2ZS0NCmRl
dmVsQGxpc3RzLnByb3htb3guY29tIDxwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20+DQpPYmpl
dDogUmU6IFtwdmUtZGV2ZWxdIFtQQVRDSCB2MiBwdmUtc3RvcmFnZSAyLzJdIGFkZCBsdm1xY293
MiBwbHVnaW46DQoobHZtIHdpdGggZXh0ZXJuYWwgcWNvdzIgc25hcHNob3QpDQpEYXRlOiAyNC8x
MC8yMDI0IDA5OjQyOjAwDQoNCg0KPiBERVJVTUlFUiwgQWxleGFuZHJlIDxhbGV4YW5kcmUuZGVy
dW1pZXJAZ3JvdXBlLWN5bGxlbmUuY29tPiBoYXQgYW0NCj4gMjMuMTAuMjAyNCAxNTo0NSBDRVNU
IGdlc2NocmllYmVuOg0KPiANCj4gwqANCj4gPiA+IEkgYW0gbm90IHlldCBjb252aW5jZWQgdGhp
cyBpcyBzb21laG93IGEgZ29vZCBpZGVhLCBidXQgbWF5YmUgeW91DQo+ID4gPiBjYW4NCj4gPiA+
IGNvbnZpbmNlIG1lIG90aGVyd2lzZSA7KQ0KDQo+PkkgbWF5YmUganVkZ2VkIHRoaXMgdG9vIHF1
aWNrbHkgLSBJIHRob3VnaHQgdGhpcyB3YXMgY29tYmluaW5nIExWTSArDQo+PmEgZGlyLWJhc2Vk
IHN0b3JhZ2UsIGJ1dCB0aGlzIGlzIHB1dHRpbmcgdGhlIHFjb3cyIG92ZXJsYXlzIG9uIExWcywN
Cj4+d2hpY2ggSSBtaXNzZWQgb24gdGhlIGZpcnN0IHBhc3MhDQoNCkFoIG9rICEgXl9eICB5ZXMs
IHRoaXMgaXMgcmVhbGx5IDEwMCUgbHZtIChmb3Igc2hhcmVkIGx2bSkNCg0KDQo+ID4gPiB2YXJp
YW50IEE6IHRoaXMgaXMganVzdCB1c2VmdWwgZm9yIHZlcnkgc2hvcnQtbGl2ZWQgc25hcHNob3Rz
DQo+ID4gPiB2YXJpYW50IEI6IHRoZXNlIHNuYXBzaG90cyBhcmUgc3VwcG9zZWQgdG8gYmUgbG9u
Zy1saXZlZA0KPiANCj4gQ2FuIHlvdSBkZWZpbmVkICJzaG9ydCAiLyAibG9uZyLCoCA/IGFuZCB0
aGUgZGlmZmVyZW50IHVzZWNhc2UgPw0KPiANCj4gYmVjYXVzZSBmb3IgbWUsIGEgc25hcHNob3Qg
aXMgYSBzbmFwc2hvdC4gU29tZXRpbWUgSSB0YWtlIGEgc25hcHNob3QNCj4gYmVmb3JlIGRvaW5n
IHNvbWUgY3JpdGljYWwgY2hhbmdlcywgYnV0IEkgY2FuJ3Qga25vd24gaWYgSSBuZWVkIHRvDQo+
IHJvbGxiYWNrIGluIG5leHQgMmgsIG9yIG5leHQgbW9udGguDQoNCj4+eWVzLCB0aGlzIHdvdWxk
IGJlIGFuIGV4YW1wbGUgb2YgYSBzaG9ydC1saXZlZCBzbmFwc2hvdA0KwqANCm9rDQo+IEkgdGhp
bmsgdGhhdCAibG9uZy1saXZlZCIgdXNlY2FzZSBpcyBiYWNrdXAgKGJ1dCB3ZSBkb24ndCBuZWVk
IGl0KSwNCj4gb3IgcmVwbGljYXRpb24gKHRoaXMgY291bGQgYXBwbHkgaGVyZSwgaWYgd2Ugd2Fu
dCB0byBhZGQgcmVwbGljYXRpb24NCj4gZm9yIGRpc2FzdGVyIHJlY292ZXJ5KQ0KDQo+PmJhY2t1
cCB3b3VsZCBhbHNvIGJlIHNob3J0LWxpdmVkIHVzdWFsbHkgKHRoZSBzbmFwc2hvdCBpcyBqdXN0
IHRvDQo+PnRha2UgdGhlIGJhY2t1cCwgbm90IHRvIGtlZXAgYSBiYWNrdXApLiBsb25nLWxpdmVk
IHVzdWFsbHkgaXMNCj4+c29tZXRoaW5nIGxpa2UgInRha2UgZGFpbHkgc25hcHNob3QgYW5kIGtl
ZXAgZm9yIGEgZmV3IHdlZWtzIGZvciBmaWxlDQo+PnJlY292ZXJ5IiwgaW4gYWRkaXRpb24gdG8g
cmVndWxhciBiYWNrdXBzLiBvciAic25hcHNob3QgYmVjYXVzZSB3ZQ0KPj5qdXN0IGhhZCBhbiBp
bmNpZGVuY2UgYW5kIG1pZ2h0IG5lZWQgdGhpcyBmb3IgZm9yZW5zaWNzIGluIGEgZmV3DQo+Pm1v
bnRocyIgKGNhbiBhbHNvIGJlIHNvbHZlZCB3aXRoIGJhY2t1cHMsIG9mIGNvdXJzZSA7KSkuDQoN
Cj4+dGhlIG1haW4gZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB0d28gaXMgLSBmb3Igc2hvcnQtbGl2
ZWQgc25hcHNob3RzDQo+PnBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucyByZWxhdGVkIHRvIHNuYXBz
aG90cyBleGlzdGluZyBhcmUgbm90IHRoYXQNCj4+aW1wb3J0YW50LiBJIGNhbiBsaXZlIHdpdGgg
YSBmZXcgaG91cnMgb2YgZGVncmFkZWQgcGVyZm9ybWFuY2UsIGlmDQo+PnRoZSBzbmFwc2hvdCBp
cyBwYXJ0IG9mIHNvbWUgaW1wb3J0YW50IHByb2Nlc3Mvd29yayBmbG93LiB3aXRoIGxvbmctDQo+
PmxpdmVkIHNuYXBzaG90cyB0aGVyZSBpcyBhIHJlcXVpcmVtZW50IGZvciB0aGVtIHRvIG5vdCBo
dXJ0DQo+PnBlcmZvcm1hbmNlIGp1c3QgYnkgZXhpc3RpbmcsIGJlY2F1c2Ugb3RoZXJ3aXNlIHlv
dSBjYW4ndCB1c2UgdGhlbS4NCj4+dGhlcmUgaXMgYSBzZWNvbmQgcmVhc29uIHdoeSBsb25nLWxp
dmVkIHNuYXBzaG90cyBjYW4gYmUgaW1wb3NzaWJsZSANCg0Kb2ssIHNvIGhlcmUsIHdpdGggcWNv
dzIgZm9ybWF0LCBwZXJmb3JtYW5jZSBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtLg0KKFRoYXQncyB0
aGUgd2hvbGUgcG9pbnQgb2YgdGhpcyBwYXRjaCwgdXNpbmcgcWNvdzIgZm9ybWF0IGluc3RlYWQg
YmFzaWMNCnNsb3cgbHZtIHNuYXNwaG90KQ0KDQo+PmlmIHlvdSBuZWVkIHRvIGRlY2lkZSB1cC1m
cm9udCBob3cgImJpZyIgdGhlIGRlbHRhIG9mIHRoYXQgc25hcHNob3QNCj4+Y2FuIGdyb3cgYXQg
bW9zdCwgdGhlbiBpbiBQVkUgY29udGV4dCwgeW91IGFsd2F5cyBuZWVkIHRvIGFsbG9jYXRlDQo+
PnRoZSBmdWxsIHZvbHVtZSBzaXplIChyZWd1bGFyIHRoaWNrIExWTSBoYWQgYm90aCBpc3N1ZXMg
LSBiYWQNCj4+cGVyZm9ybWFuY2UsIGFuZCBuZXcgd3JpdGVzIGdvaW5nIGludG8gYSB0aGljayBz
bmFwc2hvdCB2b2x1bWUpLg0KDQphYm91dCB0aGljayBzbmFwaG90IHZvbHVtZSwgdGVjaG5pY2Fs
bHksIGl0IGNvdWxkIGJlIHBvc3NpYmxlIHRvIGNyZWF0ZQ0Kc21hbGxlciBsdm0gdm9sdW1lIHRo
YW4gdGhlIHFjb3cyIHZpcnR1YWwtc2l6ZSwgYW5kIGR5bmFtaWNhbGx5IGV4dGVuZA0KaXQuIG92
aXJ0IGlzIGRvaW5nIGl0IGxpa2UgdGhpcy4gKEkgbmF2ZSBzZW5kIGEgcHJlbGltYXJ5IHBhdGNo
IGluDQpzZXB0ZW1iZXIsIGJ1dCBmb3Igbm93LCBJJ2xsIGxpa2UgdG8ga2VlcCBpdCBzaW1wbGUg
d2l0aCB0aGljaw0Kc25hcHNob3RzIHZvbHVtZSkuDQoNCg0KPj5pZiB5b3UgY2FuIHN1cHBvcnQg
bG9uZy1saXZlZCBzbmFwc2hvdHMsIHRoZW4geW91IGF1dG9tYXRpY2FsbHkgYWxzbw0KPj5zdXBw
b3J0IHNob3J0LWxpdmVkIHNuYXBzaG90cy4gdGhlIG90aGVyIGRpcmVjdGlvbiBkb2Vzbid0IGhv
bGQuDQo+PnNpbmNlIFBWRSBvbmx5IGhhcyBvbmUga2luZCBvZiBzbmFwc2hvdHMsIHRoZXkgbmVl
ZCB0byBiZSB1c2VmdWwgZm9yDQo+PmxvbmctbGl2ZWQgc25hcHNob3RzLg0KDQpvayBnb3QgaXQu
DQo+ID4gPiBBIGlzIG5vdCBzb21ldGhpbmcgd2Ugd2FudC4gd2UgaW50ZW50aW9uYWxseSBkb24n
dCBoYXZlIG5vbi10aGluDQo+ID4gPiBMVk0NCj4gPiA+IHNuYXBzaG90cyBmb3IgZXhhbXBsZS4N
Cj4gDQo+IEFGQUlLLCB3ZSBuZXZlciBoYWQgaW1wbGVtZW50ZWQgaXQgYmVjYXVzZSBMVk0gc25h
c3Bob3QgaXMgc2xvdyBhcw0KPiBoZWxsLihhcyBhIGx2bSBleHRlbnQgYXJlIGFyb3VuZCA0TUIs
IGlmIHlvdSB3YW50IDRrIG9uIGEgc25hcHNob3QsDQo+IHlvdQ0KPiBuZWVkIHRvIHJlcmVhZCBh
bmQgcmV3cml0ZSB0aGUgNE1CLMKgIHNvIGFyb3VuZCAxMDAweCBvdmVyLQ0KPiBhbXBsaWZpY2F0
aW9uIGFuZCBzbG93IGlvcHMpDQoNCj4+c2VlIGFib3ZlIC0gdGhlcmUncyB0d28gaXNzdWVzLCBv
bmUgaXMgcGVyZm9ybWFuY2UsIHRoZSBvdGhlciBpcyB0aGF0DQo+PnlvdSBuZWVkIHRvIGVpdGhl
cg0KPj4tIG1ha2UgdGhlIHNuYXBzaG90IHNtYWxsZXIgdGhhbiB0aGUgb3JpZ2luYWwgdm9sdW1l
IChhbmQgcmlzaw0KPj5ydW5uaW5nIG91dCBvZiBzcGFjZSkNCj4+LSBtYWtlIHRoZSBzbmFwc2hv
dCBhcyBiaWcgYXMgdGhlIG9yaWdpbmFsIHZvbHVtZSAoYW5kIGJsb3cgdXAgc3BhY2UNCj4+cmVx
dWlyZW1lbnRzKQ0KPj4NCj4+KHRoaWNrKSBMVk0gc25hcHNob3RzIGJhc2ljYWxseSBiYXJlbHkg
d29yayBmb3IgdGhlICJ0YWtlIGENCj4+Y29uc2lzdGVudCBiYWNrdXAgZHVyaW5nIHF1aWV0IHBl
cmlvZHMiIHVzZSBjYXNlLCBhbmQgbm90IG11Y2ggZWxzZS4NCg0KDQo+IFRoaXMgaXMgcmVhbGx5
IHRoZSBtYWluIGJsb2NrZXIgZm9yIG15IGN1c3RvbWVycyBtaWdyYXRpbmcgZnJvbQ0KPiB2bXdh
cmUNCj4gKGFuZCB0byBiZSBob25lc3QgSSBoYXZlIHNvbWUgb2YgdGhlbSBnb2luZyB0byBvcmFj
bGUgb3ZsbSAod2l0aA0KPiBvdmlydCksIGJlY2F1c2Ugb3ZpcnQgc3VwcG9ydCBpdCB0aGlzIHdh
eSkuIA0KDQo+ID4gPiBCIG9uY2UgSSBjcmVhdGUgYSBzaW5nbGUgc25hcHNob3QsIHRoZSAib3Jp
Z2luYWwiIHN0b3JhZ2Ugb25seQ0KPiA+ID4gY29udGFpbnMgdGhlIGRhdGEgd3JpdHRlbiB1cCB0
byB0aGF0IHBvaW50LCBhbnl0aGluZyBlbHNlIGlzDQo+ID4gPiBzdG9yZWQNCj4gPiA+IG9uIHRo
ZSAic25hcHNob3QiIHN0b3JhZ2UuIHRoaXMgbWVhbnMgbXkgc25hcHNob3Qgc3RvcmFnZSBtdXN0
IGJlDQo+ID4gPiBhdA0KPiA+ID4gbGVhc3QgYXMgZmFzdC9nb29kL3NoYXJlZC8uLiBhcyBteSBv
cmlnaW5hbCBzdG9yYWdlLiBpbiB0aGF0DQo+ID4gPiBjYXNlLCBJDQo+ID4gPiBjYW4ganVzdCB1
c2UgdGhlIHNuYXBzaG90IHN0b3JhZ2UgZGlyZWN0bHkgYW5kIGRpdGNoIHRoZSBvcmlnaW5hbA0K
PiA+ID4gc3RvcmFnZT8NCj4gDQo+IFNvcnJ5LCBidXQgSSBkb24ndCB1bmRlcnN0YW5kIHdoeSB5
b3UgYXJlIHRhbGtpbmcgYWJvdXQNCj4gb3JpZ2luYWwvc25hcHNob3Qgc3RvcmFnZSA/IEkgbmV2
ZXIgaGF2ZSB0aGlua2VkIHRvIHVzZSBhbm90aGVyDQo+IHN0b3JhZ2UNCj4gZm9yIGV4dGVybmFs
IHNuYXBzaG90Lg0KPiANCj4gVGhlIHBhdGNoIGlzIHJlYWxseSB0byBhZGQgZXh0ZXJuYWwgc25h
cHNob3Qgb24gc2FtZSBsdm0gc3RvcmFnZSwNCj4gdGhyb3VnaCBsdm0gYWRkaXRpb25hbCB2b2x1
bWUsIGJ1dCB3aXRoIHFjb3cyIGZvcm1hdCB0byBoYXZlIGdvb2QNCj4gcGVyZm9ybWFuY2UgKHZz
IHNsb3cgbHZtIHNuYXBzaG90KQ0KDQpzZWUgYWJvdmUgLSBJIG1pc3JlYWQgYW5kIGFuc3dlcmVk
IHRvbyBxdWlja2x5Lg0KDQo+PkkgdG9vayBhIGNsb3NlciBsb29rIGFuZCByZXBsaWVkIGlubGlu
ZSBiZWxvdyB3aXRoIHNvbWUgY29tbWVudHMgLQ0KPj5tdWNoIG9mIGl0IG1pbWljcyB0aGUgY29t
bWVudHMgZm9yIHRoZSBkaXIgcGx1Z2luLi4NCg0KKEknbGwgZG8gYSBmdWxsIHJld29yayB3aXRo
IHNuYXBzaG90bmFtZSBsaWtlIGZvciBkaXIgcGx1Z2luKQ0KDQo+ID4gU2lnbmVkLW9mZi1ieTog
QWxleGFuZHJlIERlcnVtaWVyIDxhbGV4YW5kcmUuZGVydW1pZXJAZ3JvdXBlLQ0KPiA+IGN5bGxl
bmUuY29tPg0KPiA+IC0tLQ0KPiA+IMKgc3JjL1BWRS9TdG9yYWdlLnBtwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIHzCoMKgIDIgKw0KPiA+IMKgc3JjL1BWRS9TdG9yYWdlL0x2bVFjb3cy
UGx1Z2luLnBtIHwgNDYwDQo+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4g
wqBzcmMvUFZFL1N0b3JhZ2UvTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMyArLQ0K
PiA+IMKgMyBmaWxlcyBjaGFuZ2VkLCA0NjQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0K
PiA+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9QVkUvU3RvcmFnZS9Mdm1RY293MlBsdWdpbi5w
bQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9zcmMvUFZFL1N0b3JhZ2UucG0gYi9zcmMvUFZFL1N0
b3JhZ2UucG0NCj4gPiBpbmRleCA1N2IyMDM4Li4xMTk5OThmIDEwMDc1NQ0KPiA+IC0tLSBhL3Ny
Yy9QVkUvU3RvcmFnZS5wbQ0KPiA+ICsrKyBiL3NyYy9QVkUvU3RvcmFnZS5wbQ0KPiA+IEBAIC0y
OCw2ICsyOCw3IEBAIHVzZSBQVkU6OlN0b3JhZ2U6OlBsdWdpbjsNCj4gPiDCoHVzZSBQVkU6OlN0
b3JhZ2U6OkRpclBsdWdpbjsNCj4gPiDCoHVzZSBQVkU6OlN0b3JhZ2U6OkxWTVBsdWdpbjsNCj4g
PiDCoHVzZSBQVkU6OlN0b3JhZ2U6Okx2bVRoaW5QbHVnaW47DQo+ID4gK3VzZSBQVkU6OlN0b3Jh
Z2U6Okx2bVFjb3cyUGx1Z2luOw0KPiA+IMKgdXNlIFBWRTo6U3RvcmFnZTo6TkZTUGx1Z2luOw0K
PiA+IMKgdXNlIFBWRTo6U3RvcmFnZTo6Q0lGU1BsdWdpbjsNCj4gPiDCoHVzZSBQVkU6OlN0b3Jh
Z2U6OklTQ1NJUGx1Z2luOw0KPiA+IEBAIC01NCw2ICs1NSw3IEBAIG91ciAkS05PV05fRVhQT1JU
X0ZPUk1BVFMgPSBbJ3JhdytzaXplJywNCj4gPiAndGFyK3NpemUnLCAncWNvdzIrc2l6ZScsICd2
bWRrK3NpemUnLA0KPiA+IMKgUFZFOjpTdG9yYWdlOjpEaXJQbHVnaW4tPnJlZ2lzdGVyKCk7DQo+
ID4gwqBQVkU6OlN0b3JhZ2U6OkxWTVBsdWdpbi0+cmVnaXN0ZXIoKTsNCj4gPiDCoFBWRTo6U3Rv
cmFnZTo6THZtVGhpblBsdWdpbi0+cmVnaXN0ZXIoKTsNCj4gPiArUFZFOjpTdG9yYWdlOjpMdm1R
Y293MlBsdWdpbi0+cmVnaXN0ZXIoKTsNCj4gPiDCoFBWRTo6U3RvcmFnZTo6TkZTUGx1Z2luLT5y
ZWdpc3RlcigpOw0KPiA+IMKgUFZFOjpTdG9yYWdlOjpDSUZTUGx1Z2luLT5yZWdpc3RlcigpOw0K
PiA+IMKgUFZFOjpTdG9yYWdlOjpJU0NTSVBsdWdpbi0+cmVnaXN0ZXIoKTsNCj4gPiBkaWZmIC0t
Z2l0IGEvc3JjL1BWRS9TdG9yYWdlL0x2bVFjb3cyUGx1Z2luLnBtDQo+ID4gYi9zcmMvUFZFL1N0
b3JhZ2UvTHZtUWNvdzJQbHVnaW4ucG0NCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGlu
ZGV4IDAwMDAwMDAuLjY4Yzg2ODYNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvc3JjL1BW
RS9TdG9yYWdlL0x2bVFjb3cyUGx1Z2luLnBtDQo+ID4gQEAgLTAsMCArMSw0NjAgQEANCj4gPiAr
cGFja2FnZSBQVkU6OlN0b3JhZ2U6Okx2bVFjb3cyUGx1Z2luOw0KPiA+ICsNCj4gPiArdXNlIHN0
cmljdDsNCj4gPiArdXNlIHdhcm5pbmdzOw0KPiA+ICsNCj4gPiArdXNlIElPOjpGaWxlOw0KPiA+
ICsNCj4gPiArdXNlIFBWRTo6VG9vbHMgcXcocnVuX2NvbW1hbmQgdHJpbSk7DQo+ID4gK3VzZSBQ
VkU6OlN0b3JhZ2U6OlBsdWdpbjsNCj4gPiArdXNlIFBWRTo6U3RvcmFnZTo6TFZNUGx1Z2luOw0K
PiA+ICt1c2UgUFZFOjpKU09OU2NoZW1hIHF3KGdldF9zdGFuZGFyZF9vcHRpb24pOw0KPiA+ICsN
Cj4gPiArdXNlIGJhc2UgcXcoUFZFOjpTdG9yYWdlOjpMVk1QbHVnaW4pOw0KDQo+PmNvdWxkIHdl
IGludGVncmF0ZSB0aGlzIGludG8gdGhlIExWTSBwbHVnaW4gaWYgd2UgaW1wbGVtZW50IGl0Pw0K
Pj5iYXNpY2FsbHkgYWRkIHRoZSAic25hcGV4dCIgb3B0aW9uLCB3aGljaCBpcyBmaXhlZCwgYW5k
IGlmIGl0IGlzIHNldCwNCj4+ZGlzYWxsb3cgcm9vdGRpcj8NCg0KeWVzIHN1cmUuIEkgd2FudGVk
IHRvIGtlZXAgaXQgc2VwYXJhdGVkIGZvciBub3cgdG8gYXZvaWQgdG8gcHV0ICJpZg0Kc25hcGV4
dCIgZXZlcndoZXJlLCBhbmQgYWxzbyBsdm10aGluIHBsdWdpbiBpbmhlcml0IGZyb20gbHZtcGx1
Z2luLCANCmJ1dCBJIGNhbiBtZXJnZSBpdCwgbm8gcHJvYmxlbS4NCg0KPj5wcm9iYWJseSBzbmFw
ZXh0IHNob3VsZCBhbHNvIGJlIGZpeGVkIGZvciBkaXIoLWJhc2VkKSBzdG9yYWdlcywgc2luY2UN
Cj4+dG9nZ2xpbmcgaXQgd2hlbiBzbmFwc2hvdHMgZXhpc3Qgd291bGQgYnJlYWsgYSB0b24gb2Yg
c3R1ZmY/DQp5ZXMsIGluZGVlZC4NCg0KPiA+ICsNCj4gPiArIyBDb25maWd1cmF0aW9uDQo+ID4g
Kw0KPiA+ICtzdWIgdHlwZSB7DQo+ID4gK8KgwqDCoCByZXR1cm4gJ2x2bXFjb3cyJzsNCj4gPiAr
fQ0KPiA+ICsNCj4gPiArc3ViIHBsdWdpbmRhdGEgew0KPiA+ICvCoMKgwqAgcmV0dXJuIHsNCj4g
PiArICNjb250YWluZXIgbm90IHlldCBpbXBsZW1lbnRlZCAjbmVlZCB0byBpbXBsZW1lbnRlZCBk
bS1xY293Mg0KPiA+ICsgY29udGVudCA9PiBbIHtpbWFnZXMgPT4gMSwgcm9vdGRpciA9PiAxfSwg
eyBpbWFnZXMgPT4gMSB9XSwNCg0KPj50aGVuIHJvb3RkaXIgc2hvdWxkbid0IGJlIG1lbnRpb25l
ZCBoZXJlIGF0IGFsbD8gdGhlIGZpcnN0IG1lbWJlcg0KPj5jb250YWlucyB0aGUgcG9zc2libGUg
Y29udGVudCB0eXBlcywgdGhlIHNlY29uZCB0aGUgZGVmYXVsdCBpZiBubw0KPj5leHBsaWNpdCBv
bmVzIGFyZSBzZXQuLg0KYWggb2ssIHNvcnJ5Lg0KDQo+ID4gK8KgwqDCoCB9Ow0KPiA+ICt9DQo+
ID4gKw0KPiA+ICtzdWIgcHJvcGVydGllcyB7DQo+ID4gK8KgwqDCoCByZXR1cm4gew0KPiA+ICvC
oMKgwqAgfTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3ViIG9wdGlvbnMgew0KPiA+ICvCoMKgwqAg
cmV0dXJuIHsNCj4gPiArIHZnbmFtZSA9PiB7IGZpeGVkID0+IDEgfSwNCj4gPiArIG5vZGVzID0+
IHsgb3B0aW9uYWwgPT4gMSB9LA0KPiA+ICsgc2hhcmVkID0+IHsgb3B0aW9uYWwgPT4gMSB9LA0K
PiA+ICsgZGlzYWJsZSA9PiB7IG9wdGlvbmFsID0+IDEgfSwNCj4gPiArIHNhZmVyZW1vdmUgPT4g
eyBvcHRpb25hbCA9PiAxIH0sDQo+ID4gKyBzYWZlcmVtb3ZlX3Rocm91Z2hwdXQgPT4geyBvcHRp
b25hbCA9PiAxIH0sDQo+ID4gKyBjb250ZW50ID0+IHsgb3B0aW9uYWwgPT4gMSB9LA0KPiA+ICsg
YmFzZSA9PiB7IGZpeGVkID0+IDEsIG9wdGlvbmFsID0+IDEgfSwNCj4gPiArIHRhZ2dlZF9vbmx5
ID0+IHsgb3B0aW9uYWwgPT4gMSB9LA0KPiA+ICsgYndsaW1pdCA9PiB7IG9wdGlvbmFsID0+IDEg
fSwNCj4gPiArIHNuYXBleHQgPT4geyBmaXhlZCA9PiAxIH0sDQo+ID4gK8KgwqDCoCB9Ow0KPiA+
ICt9DQo+ID4gKw0KPiA+ICsjIFN0b3JhZ2UgaW1wbGVtZW50YXRpb24NCj4gPiArDQo+ID4gK3N1
YiBwYXJzZV92b2xuYW1lIHsNCj4gPiArwqDCoMKgIG15ICgkY2xhc3MsICR2b2xuYW1lKSA9IEBf
Ow0KPiA+ICsNCj4gPiArwqDCoMKgIFBWRTo6U3RvcmFnZTo6UGx1Z2luOjpwYXJzZV9sdm1fbmFt
ZSgkdm9sbmFtZSk7DQo+ID4gK8KgwqDCoCBteSAkZm9ybWF0ID0gJHZvbG5hbWUgPX4gbS9eKC4q
KS1zbmFwLS8gPyAncWNvdzInIDogJ3Jhdyc7DQo+ID4gKw0KPiA+ICvCoMKgwqAgaWYgKCR2b2xu
YW1lID1+IG0vXigodm18YmFzZSktKFxkKyktXFMrKSQvKSB7DQo+ID4gK8KgwqDCoMKgwqDCoMKg
IHJldHVybiAoJ2ltYWdlcycsICQxLCAkMywgdW5kZWYsIHVuZGVmLCAkMiBlcSAnYmFzZScsDQo+
ID4gJGZvcm1hdCk7DQo+ID4gK8KgwqDCoCB9DQoNCj4+SSB3b25kZXIgaWYgaGVyZSB3ZSBhbHNv
IHdhbnQgdG8ga2VlcCB0aGUgdm9saWQvdm9sbmFtZSBsaWtlIGl0IGlzLA0KPj5idXQgbmFtZSB0
aGUgTFZzIGZvciBzbmFwc2hvdHMgZGlmZmVyZW50bHk/DQoNCm1heWJlIGxpa2UgemZzfHJiZFti
dHJmcyBzbmFwc2hvdCwgd2l0aCAgdm9sdW1lQHNuYXBYICBmb3IgZXhhbXBsZSA/DQoNCg0KPiA+
ICsNCj4gPiArwqDCoMKgIGRpZSAidW5hYmxlIHRvIHBhcnNlIGx2bSB2b2x1bWUgbmFtZSAnJHZv
bG5hbWUnXG4iOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdWIgZmlsZXN5c3RlbV9wYXRoIHsNCj4g
PiArwqDCoMKgIG15ICgkY2xhc3MsICRzY2ZnLCAkdm9sbmFtZSwgJHNuYXBuYW1lLCAkY3VycmVu
dF9zbmFwKSA9IEBfOw0KPiA+ICsNCj4gPiArwqDCoMKgIG15ICgkdnR5cGUsICRuYW1lLCAkdm1p
ZCkgPSAkY2xhc3MtPnBhcnNlX3ZvbG5hbWUoJHZvbG5hbWUpOw0KPiA+ICsNCj4gPiArwqDCoMKg
IG15ICR2ZyA9ICRzY2ZnLT57dmduYW1lfTsNCj4gPiArDQo+ID4gK8KgwqDCoCBteSAkcGF0aCA9
ICIvZGV2LyR2Zy8kbmFtZSI7DQo+ID4gKw0KPiA+ICvCoMKgwqAgaWYoJHNuYXBuYW1lKSB7DQo+
ID4gKyAkcGF0aCA9IGdldF9zbmFwX3ZvbG5hbWUoJHBhdGgsICRzbmFwbmFtZSk7DQo+ID4gK8Kg
wqDCoCB9IGVsc2lmICgkY3VycmVudF9zbmFwKSB7DQo+ID4gKyAkcGF0aCA9ICRjdXJyZW50X3Nu
YXAtPntmaWxlfTsNCj4gPiArwqDCoMKgIH0NCg0Kc2VlIGNvbW1lbnQgZm9yIHRoZSBkaXIgc3Rv
cmFnZSA7KQ0KDQo+ID4gKw0KPiA+ICvCoMKgwqAgcmV0dXJuIHdhbnRhcnJheSA/ICgkcGF0aCwg
JHZtaWQsICR2dHlwZSkgOiAkcGF0aDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3ViIGNyZWF0ZV9i
YXNlIHsNCj4gPiArwqDCoMKgIG15ICgkY2xhc3MsICRzdG9yZWlkLCAkc2NmZywgJHZvbG5hbWUp
ID0gQF87DQo+ID4gKw0KPiA+ICvCoMKgwqAgbXkgJHZnID0gJHNjZmctPnt2Z25hbWV9Ow0KDQpu
aXQ6IHRoaXMgY291bGQgbW92ZSBiZWxvdywgY2xvc2VyIHRvIHdoZXJlIGl0IGlzIHVzZWQuLg0K
DQo+ID4gKw0KPiA+ICvCoMKgwqAgbXkgKCR2dHlwZSwgJG5hbWUsICR2bWlkLCAkYmFzZW5hbWUs
ICRiYXNldm1pZCwgJGlzQmFzZSkgPQ0KPiA+ICvCoMKgwqDCoMKgwqDCoCAkY2xhc3MtPnBhcnNl
X3ZvbG5hbWUoJHZvbG5hbWUpOw0KPiA+ICsNCj4gPiArwqDCoMKgIGRpZSAiY3JlYXRlX2Jhc2Ug
bm90IHBvc3NpYmxlIHdpdGggYmFzZSBpbWFnZVxuIiBpZiAkaXNCYXNlOw0KPiA+ICsNCj4gPiAr
wqDCoMKgIGRpZSAidW5hYmxlIHRvIGNyZWF0ZSBiYXNlIHZvbHVtZSAtIGZvdW5kIHNuYXBzaG90
IiBpZiAkY2xhc3MtDQo+ID4gPiBzbmFwc2hvdF9leGlzdCgkc2NmZywgJHN0b3JlaWQsICR2b2xu
YW1lKTsNCj4gPiArDQo+ID4gK8KgwqDCoCBteSAkbmV3bmFtZSA9ICRuYW1lOw0KPiA+ICvCoMKg
wqAgJG5ld25hbWUgPX4gcy9edm0tL2Jhc2UtLzsNCj4gPiArDQo+ID4gK8KgwqDCoCBteSAkY21k
ID0gWycvc2Jpbi9sdnJlbmFtZScsICR2ZywgJHZvbG5hbWUsICRuZXduYW1lXTsNCj4gPiArwqDC
oMKgIHJ1bl9jb21tYW5kKCRjbWQsIGVycm1zZyA9PiAibHZyZW5hbWUgJyR2Zy8kdm9sbmFtZScg
PT4NCj4gPiAnJHZnLyRuZXduYW1lJyBlcnJvciIpOw0KPiA+ICsNCj4gPiArwqDCoMKgICMgc2V0
IGluYWN0aXZlLCByZWFkLW9ubHkgZmxhZ3MNCj4gPiArwqDCoMKgICRjbWQgPSBbJy9zYmluL2x2
Y2hhbmdlJywgJy1hbicsICctcHInLCAiJHZnLyRuZXduYW1lIl07DQo+ID4gK8KgwqDCoCBldmFs
IHsgcnVuX2NvbW1hbmQoJGNtZCk7IH07DQo+ID4gK8KgwqDCoCB3YXJuICRAIGlmICRAOw0KPiA+
ICsNCj4gPiArwqDCoMKgIG15ICRuZXd2b2xuYW1lID0gJG5ld25hbWU7DQo+ID4gKw0KPiA+ICvC
oMKgwqAgcmV0dXJuICRuZXd2b2xuYW1lOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdWIgY2xvbmVf
aW1hZ2Ugew0KPiA+ICvCoMKgwqAgbXkgKCRjbGFzcywgJHNjZmcsICRzdG9yZWlkLCAkdm9sbmFt
ZSwgJHZtaWQsICRzbmFwKSA9IEBfOw0KPiA+ICsNCj4gPiArwqDCoMKgIGRpZSAiY2FuJ3QgY2xv
bmUgaW1hZ2VzIGluIGx2bSBzdG9yYWdlXG4iOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdWIgYWxs
b2NfaW1hZ2Ugew0KPiA+ICvCoMKgwqAgbXkgKCRjbGFzcywgJHN0b3JlaWQsICRzY2ZnLCAkdm1p
ZCwgJGZtdCwgJG5hbWUsICRzaXplKSA9IEBfOw0KPiA+ICsNCj4gPiArwqDCoMKgIGRpZSAidW5z
dXBwb3J0ZWQgZm9ybWF0ICckZm10JyIgaWYgJGZtdCBuZSAncmF3JzsNCg0KPj5oZXJlIEkgYWxz
byB3b25kZXIgd2hldGhlciBpdCB3b3VsZG4ndCBiZSAiZWFzaWVyIiB0byBvbmx5IGFsbG9jYXRl
DQo+PnFjb3cyIGZvcm1hdHRlZCBMVnMgKGFsc28gZm9yIHRoZSBpbml0aWFsIGFsbG9jYXRpb24p
Pw0KPj4NCj4+b3RoZXJ3aXNlLCB0aGlzIGlzIGJhc2ljYWxseSBhbGxvY19pbWFnZSBmcm9tIHRo
ZSBMVk1QbHVnaW4sIGp1c3QNCj4+d2l0aCB0aGUgZXh0cmEgdGFncyBhZGRlZCwgd2hpY2ggY291
bGQgYWxzbyBiZSBkb25lIHdoZXJlIHRoZQ0KPj5zbmFwc2hvdHMgYXJlIGhhbmRsZWQgZnVydGhl
ciBiZWxvdy4uDQoNCklmIHBvc3NpYmxlLCBJIHdvdWxkIGxpa2UgdG8gdHJ5IHRvIGhhdmUgcmF3
IHN1cHBvcnQgdG9vLg0KKHRvIGJlIGFibGUgdG8gZWFzaWx5IGVuYWJsZSBzbmFwc2hvdCBvbiBl
eGlzdGluZyBzdG9yYWdlIHdpdGggbmVlZGluZw0KdG8gY29udmVydCBUQiBvZiBkYXRhcykgYW5k
IGZvciBwZXJmb3JtYW5jZSB0b28uDQoNCkknbGwgZG8gdGVzdCB3aXRoL3dpdGhvdXQgdG8gc2Vl
IGlmIHRoZSBjb2RlIGlzIHJlYWxseSBtb3JlIGNvbXBsZXguDQoNCj4gPiArDQo+ID4gK8KgwqDC
oCBkaWUgImlsbGVnYWwgbmFtZSAnJG5hbWUnIC0gc2hvdWxkIGJlICd2bS0kdm1pZC0qJ1xuIg0K
PiA+ICsgaWbCoCAkbmFtZSAmJiAkbmFtZSAhfiBtL152bS0kdm1pZC0vOw0KPiA+ICsNCj4gPiAr
wqDCoMKgIG15ICR2Z3MgPSBQVkU6OlN0b3JhZ2U6OkxWTVBsdWdpbjo6bHZtX3ZncygpOw0KPiA+
ICsNCj4gPiArwqDCoMKgIG15ICR2ZyA9ICRzY2ZnLT57dmduYW1lfTsNCj4gPiArDQo+ID4gK8Kg
wqDCoCBkaWUgIm5vIHN1Y2ggdm9sdW1lIGdyb3VwICckdmcnXG4iIGlmICFkZWZpbmVkICgkdmdz
LT57JHZnfSk7DQo+ID4gKw0KPiA+ICvCoMKgwqAgbXkgJGZyZWUgPSBpbnQoJHZncy0+eyR2Z30t
PntmcmVlfSk7DQo+ID4gKw0KPiA+ICvCoMKgwqAgZGllICJub3QgZW5vdWdoIGZyZWUgc3BhY2Ug
KCRmcmVlIDwgJHNpemUpXG4iIGlmICRmcmVlIDwNCj4gPiAkc2l6ZTsNCj4gPiArDQo+ID4gK8Kg
wqDCoCAkbmFtZSA9ICRjbGFzcy0+ZmluZF9mcmVlX2Rpc2tuYW1lKCRzdG9yZWlkLCAkc2NmZywg
JHZtaWQpDQo+ID4gKyBpZiAhJG5hbWU7DQo+ID4gKw0KPiA+ICvCoMKgwqAgbXkgJHRhZ3MgPSBb
InB2ZS12bS0kdm1pZCJdOw0KPiA+ICvCoMKgwqAgaWYgKCRuYW1lID1+IG0vXigoKHZtfGJhc2Up
LShcZCspLWRpc2stKFxkKykpKSgtc25hcC0oLiopKT8vKQ0KPiA+IHsNCj4gPiArwqDCoMKgwqDC
oMKgwqAgcHVzaCBAJHRhZ3MsICJcQHB2ZS0kMSI7DQo+ID4gK8KgwqDCoCB9DQoNCj4+SSBkb24n
dCBsaWtlIHRoaXMgcGFydCBmb3IgdHdvIHJlYXNvbnM6DQo+Pg0KPj4xLiB3aXRob3V0IHRoaXMs
IGFsbG9jX2ltYWdlIGlzIGlkZW50aWNhbCB0byBMVk1QbHVnaW4ncyAoc2VlDQo+PmFib3ZlL2Jl
bG93KQ0KPj4yLiB0aGUgd2F5IHRoZSBzbmFwc2hvdCBpcyBlbmNvZGVkIGluIHRoZSB2b2xuYW1l
IG1lYW5zIEkgY2FuICJwdmVzbQ0KPj5hbGxvYyIgc29tZXRoaW5nIHdpdGggYSBzbmFwc2hvdCB2
b2xuYW1lIGFuZCBicmVhayB0aGluZ3MuLg0KPj4NCj4+SSB0aGluayB0aGlzIHNob3VsZCBiZSBy
ZWZhY3RvcmVkOg0KPj4tIGFsbG9jX2ltYWdlIHNob3VsZCBhbGxvdyAob25seT8pIHFjb3cyDQo+
Pi0gaXQgc2hvdWxkIHVzZSBhIGN1c3RvbSBoZWxwZXIgZm9yIHRoZSBhY3R1YWwgbHZjcmVhdGUs
IGJ1dCBiZQ0KPj5yZXN0cmljdGVkIHRvICJwcm9wZXIiIHZvbHVtZSBuYW1lcw0KPj4tIGl0IHNo
b3VsZCB1c2UgYW5vdGhlciBoZWxwZXIgZm9yIHRoZSBxY293MiBmb3JtYXR0aW5nDQo+Pi0gdm9s
dW1lX3NuYXBzaG90IHNob3VsZCB1c2UgdGhlIHNhbWUgaGVscGVycywgYnV0IGNhbGwgdGhlbSB3
aXRoIGENCj4+ZGlmZmVyZW50IExWIG5hbWUNCj4+DQo+PnRoZSBzYW1lIGFsc28gYXBwbGllcyB0
byBmcmVlX2ltYWdlLCBmb3Igc2ltaWxhciByZWFzb25zIChkb24ndCBhbGxvdw0KPj50byBjYWxs
IGZyZWVfaW1hZ2Ugd2l0aCBhIHNuYXBzaG90IGRpcmVjdGx5LCBidXQgdXNlIGEgY29tbW9uIGhl
bHBlcg0KPj5mb3IgZnJlZV9pbWFnZSBhbmQgdm9sdW1lX3NuYXBzaG90X2RlbGV0ZSkNCg0Kb2sg
IQ0KDQo+ID4gKw0KPiA+ICvCoMKgwqAgUFZFOjpTdG9yYWdlOjpMVk1QbHVnaW46Omx2Y3JlYXRl
KCR2ZywgJG5hbWUsICRzaXplLCAkdGFncyk7DQo+ID4gKw0KPiA+ICvCoMKgwqAgcmV0dXJuICRu
YW1lOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdWIgdm9sdW1lX3NuYXBzaG90X2luZm8gew0KPiA+
ICvCoMKgwqAgbXkgKCRjbGFzcywgJHNjZmcsICRzdG9yZWlkLCAkdm9sbmFtZSkgPSBAXzsNCj4g
PiArDQo+ID4gK8KgwqDCoCByZXR1cm4gJGNsYXNzLT5saXN0X3NuYXBzaG90cygkc2NmZywgJHN0
b3JlaWQsICR2b2xuYW1lKTsNCg0Kd2h5IGhhdmUgdHdvIHB1YmxpYyBzdWJzIGZvciB0aGlzPyB0
aGUgJGN1cnJlbnRfb25seSB3b3VsZCBub3QgYmUNCm5lZWRlZCBpZiB0aGUgdm9sdW1lIGl0c2Vs
ZiB3b3VsZCBhbHNvIGJlIHRoZSBjdXJyZW50IHNuYXBzaG90Li4NCg0KPiA+ICt9DQo+ID4gKw0K
PiA+ICtzdWIgYWN0aXZhdGVfdm9sdW1lIHsNCj4gPiArwqDCoMKgIG15ICgkY2xhc3MsICRzdG9y
ZWlkLCAkc2NmZywgJHZvbG5hbWUsICRzbmFwbmFtZSwgJGNhY2hlKSA9DQo+ID4gQF87DQo+ID4g
Kw0KPiA+ICvCoMKgwqAgbXkgJGx2bV9hY3RpdmF0ZV9tb2RlID0gJ2V5JzsNCj4gPiArwqDCoMKg
IG15ICR0YWcgPSB1bmRlZjsNCg0KJHRhZyBpcyB1bmRlZg0KDQo+ID4gKw0KPiA+ICvCoMKgwqAg
I2FjdGl2YXRlIHZvbHVtZSAmJiBhbGwgdm9sdW1lcyBzbmFwc2hvdHMgYnkgdGFnDQo+ID4gK8Kg
wqDCoCBpZigkdm9sbmFtZSA9fiBtL14oKCh2bXxiYXNlKS0oXGQrKS1kaXNrLShcZCspKSkoLXNu
YXAtDQo+ID4gKC4qKSk/LykNCj4gPiB7DQo+ID4gKyAkdGFnID0gIlxAcHZlLXZtLSQ0LWRpc2st
JDUiOw0KDQpoZXJlIG9ubHkgdGhlIGRpc2sgaXRzZWxmIGlzIHB1dCBpbnRvIHRoZSB0YWcsIHRo
ZSBvcHRpb25hbCBzbmFwIHBhcnQNCmlzbid0Li4gYW5kICRzbmFwbmFtZSBpcyBpZ25vcmVkIGFz
IHdlbGwNCg0KPiA+ICvCoMKgwqAgfQ0KDQphbmQgd2hhdCBpZiB0aGUgcmVnZXggZGlkbid0IG1h
dGNoPw0KDQo+ID4gKw0KPiA+ICvCoMKgwqAgbXkgJGNtZCA9IFsnL3NiaW4vbHZjaGFuZ2UnLCAi
LWEkbHZtX2FjdGl2YXRlX21vZGUiLCAkdGFnXTsNCg0KPj5zbyB0aGlzIHdpbGwgb25seSBldmVy
IGFjdGl2YXRlIHRoZSAibWFpbiIgdm9sdW1lPw0KYWxsIHNuYXBzaG90cyBoYXZlIHRoZSBzYW1l
IHRhZyAodGhlIG1haW4gdm9sdW1lIG5hbWUpLCBzbyB0aGlzIHdpbGwNCmFjdGl2YXRlIGV2ZXJ5
IHNuYXNwaG90IC4NCg0KDQo+ID4gK8KgwqDCoCBydW5fY29tbWFuZCgkY21kLCBlcnJtc2cgPT4g
ImNhbid0IGFjdGl2YXRlIExWICckdGFnJyIpOw0KPiA+ICsNCj4gPiArwqDCoMKgICRjbWQgPSBb
Jy9zYmluL2x2Y2hhbmdlJywgJy0tcmVmcmVzaCcsICR0YWddOw0KPiA+ICvCoMKgwqAgcnVuX2Nv
bW1hbmQoJGNtZCwgZXJybXNnID0+ICJjYW4ndCByZWZyZXNoIExWICckdGFnJyBmb3INCj4gPiBh
Y3RpdmF0aW9uIik7DQoNCnRoaXMgc2hvdWxkDQotIG5vdCB1c2UgJHZvbG5hbWUgdG8gdHJhbnNm
ZXIgJHNuYXBuYW1lLCBidXQgcGFzcyBpbiB0aGUgdm9sbmFtZQ0KY29udGFpbmVkIGluIHRoZSB2
b2xpZA0KLSB1c2UgJHNuYXBuYW1lIDspDQoNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3ViIGRlYWN0
aXZhdGVfdm9sdW1lIHsNCj4gPiArwqDCoMKgIG15ICgkY2xhc3MsICRzdG9yZWlkLCAkc2NmZywg
JHZvbG5hbWUsICRzbmFwbmFtZSwgJGNhY2hlKSA9DQo+ID4gQF87DQo+ID4gKw0KPiA+ICvCoMKg
wqAgbXkgJHRhZyA9IHVuZGVmOw0KPiA+ICvCoMKgwqAgI2RlYWN0aXZhdGUgdm9sdW1lICYmIGFs
bCB2b2x1bWVzIHNuYXNwaG90cyBieSB0YWcNCj4gPiArwqDCoMKgIGlmKCR2b2xuYW1lID1+IG0v
XigoKHZtfGJhc2UpLShcZCspLWRpc2stKFxkKykpKSgtc25hcC0NCj4gPiAoLiopKT8vKQ0KPiA+
IHsNCj4gPiArICR0YWcgPSAiXEBwdmUtdm0tJDQtZGlzay0kNSI7DQo+ID4gK8KgwqDCoCB9DQoN
CnNhbWUgYXMgZm9yIGFjdGl2YXRlX3ZvbHVtZSBhcHBsaWVzIGhlcmUgYXMgd2VsbC4uDQoNCj4g
PiArDQo+ID4gK8KgwqDCoCBteSAkY21kID0gWycvc2Jpbi9sdmNoYW5nZScsICctYWxuJywgJHRh
Z107DQo+ID4gK8KgwqDCoCBydW5fY29tbWFuZCgkY21kLCBlcnJtc2cgPT4gImNhbid0IGRlYWN0
aXZhdGUgTFYgJyR0YWcnIik7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N1YiB2b2x1bWVfcmVzaXpl
IHsNCj4gPiArwqDCoMKgIG15ICgkY2xhc3MsICRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUsICRz
aXplLCAkcnVubmluZykgPSBAXzsNCj4gPiArDQo+ID4gK8KgwqDCoCAjd2Ugc2hvdWxkIHJlc2l6
ZSB0aGUgYmFzZSBpbWFnZSBhbmQgcGFyZW50cyBzbmFwc2hvdHMsDQo+ID4gK8KgwqDCoCAjYnV0
IGhvdyB0byBtYW5hZ2Ugcm9sbGJhY2sgPw0KPiA+ICsNCj4gPiArwqDCoMKgIGRpZSAiY2FuJ3Qg
cmVzaXplIGlmIHNuYXNwaG90cyBleGlzdCIgaWYgJGNsYXNzLQ0KPiA+ID4gc25hcHNob3RfZXhp
c3QoJHNjZmcsICRzdG9yZWlkLCAkdm9sbmFtZSk7DQoNCj4+SSBkb24ndCB0aGluayBxZW11IHJl
cXVpcmVzIGJhY2tpbmcgZmlsZSBhbmQgb3ZlcmxheSBzaXplcyB0byBhZ3JlZSAtDQo+Pmp1c3Qg
dGhhdCBpZiB5b3Ugd3JpdGUgYmFjayAoY29tbWl0KSB1cCB0aGUgY2hhaW4sIHlvdSBtaWdodCBu
ZWVkIHRvDQo+PnJlc2l6ZSB0aGUgYmFja2luZyBmaWxlIHRvIGFjY29tbW9kYXRlIHRoZSBhZGRp
dGlvbmFsIGRhdGEvc3BhY2UuIHNvDQo+PnJlc2l6aW5nIHNob3VsZCBiZSBmaW5lIChpbiB0aGVv
cnkgYXQgbGVhc3QpPyBhbHNvIHNlZSB0aGUgZG9jcyBmb3INCj4+YHFlbXUtaW1nIGNvbW1pdGAu
DQoNCkknbGwgdHJ5IHRoYW5rcw0KDQo+ID4gKw0KPiA+ICvCoMKgwqAgcmV0dXJuIDE7DQo+ID4g
K30NCj4gPiArDQo+ID4gK3N1YiB2b2x1bWVfc25hcHNob3Qgew0KPiA+ICvCoMKgwqAgbXkgKCRj
bGFzcywgJHNjZmcsICRzdG9yZWlkLCAkdm9sbmFtZSwgJHNuYXApID0gQF87DQo+ID4gKw0KPiA+
ICvCoMKgwqAgJGNsYXNzLT5hY3RpdmF0ZV92b2x1bWUoJHN0b3JlaWQsICRzY2ZnLCAkdm9sbmFt
ZSwgdW5kZWYsIHt9KTsNCj4gPiArDQo+ID4gK8KgwqDCoCBteSAkY3VycmVudF9wYXRoID0gJGNs
YXNzLT5wYXRoKCRzY2ZnLCAkdm9sbmFtZSwgJHN0b3JlaWQpOw0KPiA+ICvCoMKgwqAgbXkgJGN1
cnJlbnRfZm9ybWF0ID0NCj4gPiAoUFZFOjpTdG9yYWdlOjpQbHVnaW46OmZpbGVfc2l6ZV9pbmZv
KCRjdXJyZW50X3BhdGgpKVsxXTsNCj4gPiArwqDCoMKgIG15ICRzbmFwcGF0aCA9IGdldF9zbmFw
X3ZvbG5hbWUoJGN1cnJlbnRfcGF0aCwgJHNuYXApOw0KPiA+ICsNCj4gPiArwqDCoMKgIG15ICRz
bmFwdm9sbmFtZSA9IGdldF9zbmFwX3ZvbG5hbWUoJHZvbG5hbWUsICRzbmFwKTsNCj4gPiArwqDC
oMKgICNhbGxvY2F0ZSBsdm0gc25hcHNob3Qgdm9sdW1lDQo+ID4gK8KgwqDCoCBteSAoJHZ0eXBl
LCAkbmFtZSwgJHZtaWQsICRiYXNlbmFtZSwgJGJhc2V2bWlkLCAkaXNCYXNlKSA9DQo+ID4gKyAk
Y2xhc3MtPnBhcnNlX3ZvbG5hbWUoJHZvbG5hbWUpOw0KPiA+ICvCoMKgwqAgbXkgJHNpemUgPSAk
Y2xhc3MtPnZvbHVtZV9zaXplX2luZm8oJHNjZmcsICRzdG9yZWlkLCAkdm9sbmFtZSwNCj4gPiA1
KTsNCj4gPiArwqDCoMKgICNhZGQgMTAwTSBmb3IgcWNvdzIgaGVhZGVycw0KPiA+ICvCoMKgwqAg
JHNpemUgPSBpbnQoJHNpemUvMTAyNCkgKyAoMTAwKjEwMjQpOw0KDQphIHBvaW50ZXIgd2hlcmUg
dGhhdCAxMDBNIGNvbWVzIGZyb20gd291bGQgYmUgbmljZSA7KQ0KDQoNCj4gPiArDQo+ID4gK8Kg
wqDCoCAkY2xhc3MtPmFsbG9jX2ltYWdlKCRzdG9yZWlkLCAkc2NmZywgJHZtaWQsICdyYXcnLA0K
PiA+ICRzbmFwdm9sbmFtZSwNCj4gPiAkc2l6ZSk7DQoNCnNvIHRoaXMgY291bGQgaW5zdGVhZCB1
c2UgdGhlIHJlZ3VsYXIgYWxsb2NfaW1hZ2UgZnJvbSBzdG9jayBMVk0sIGFuZA0KdGhlbiBzZXQg
dGhlIHRhZ3MgaGVyZSBpZiB3ZSB3YW50IHRvIGtlZXAgYWxsb2NfaW1hZ2UgYXMgcmF3LW9ubHku
Lg0Kd2hpY2ggSSBkb24ndCB0aGluayB3ZSByZWFsbHkgd2FudCA7KQ0KDQo+ID4gKw0KPiA+ICvC
oMKgwqAgIyBjcmVhdGUgdGhlIHFjb3cyIGZzDQo+ID4gK8KgwqDCoCBldmFsIHsNCj4gPiArwqDC
oMKgwqDCoMKgwqAgbXkgJGNtZCA9IFsnL3Vzci9iaW4vcWVtdS1pbWcnLCAnY3JlYXRlJywgJy1i
JywNCj4gPiAkY3VycmVudF9wYXRoLA0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgJy1GJywgJGN1cnJlbnRfZm9ybWF0LCAnLWYnLCAncWNvdzInLA0KPiA+ICRzbmFw
cGF0aF07DQo+ID4gK8KgwqDCoMKgwqDCoMKgIG15ICRvcHRpb25zID0gImV4dGVuZGVkX2wyPW9u
LCI7DQo+ID4gK8KgwqDCoMKgwqDCoMKgICRvcHRpb25zIC49DQo+ID4gUFZFOjpTdG9yYWdlOjpQ
bHVnaW46OnByZWFsbG9jYXRpb25fY21kX29wdGlvbigkc2NmZywgJ3Fjb3cyJyk7DQo+ID4gK8Kg
wqDCoMKgwqDCoMKgIHB1c2ggQCRjbWQsICctbycsICRvcHRpb25zOw0KPiA+ICvCoMKgwqDCoMKg
wqDCoCBydW5fY29tbWFuZCgkY21kKTsNCj4gPiArwqDCoMKgIH07DQoNCnNlZSBjb21tZW50IGZv
ciBhbGxvY19pbWFnZSBhYm92ZS4uDQoNCj4gPiArwqDCoMKgIGlmICgkQCkgew0KPiA+ICsgZXZh
bCB7ICRjbGFzcy0+ZnJlZV9pbWFnZSgkc3RvcmVpZCwgJHNjZmcsICRzbmFwdm9sbmFtZSwgMCkg
fTsNCg0KSSBndWVzcyB0aGlzIGlzIG9rYXksIGJ1dCBpdCB3b3VsZCByZWFkIGEgYml0IGNsZWFu
ZXIgaWYgdGhpcyB3b3VsZA0KY2FsbCB2b2x1bWVfc25hcHNob3RfZGVsZXRlLi4NCg0KPiA+ICsg
d2FybiAkQCBpZiAkQDsNCj4gPiArwqDCoMKgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArIyBBc3Nl
cnRzIHRoYXQgYSByb2xsYmFjayB0byAkc25hcCBvbiAkdm9sbmFtZSBpcyBwb3NzaWJsZS4NCj4g
PiArIyBJZiBjZXJ0YWluIHNuYXBzaG90cyBhcmUgcHJldmVudGluZyB0aGUgcm9sbGJhY2sgYW5k
ICRibG9ja2Vycw0KPiA+IGlzDQo+ID4gYW4gYXJyYXkNCj4gPiArIyByZWZlcmVuY2UsIHRoZSBz
bmFwc2hvdCBuYW1lcyBjYW4gYmUgcHVzaGVkIG9udG8gJGJsb2NrZXJzIHByaW9yDQo+ID4gdG8g
ZHlpbmcuDQo+ID4gK3N1YiB2b2x1bWVfcm9sbGJhY2tfaXNfcG9zc2libGUgew0KPiA+ICvCoMKg
wqAgbXkgKCRjbGFzcywgJHNjZmcsICRzdG9yZWlkLCAkdm9sbmFtZSwgJHNuYXAsICRibG9ja2Vy
cykgPSBAXzsNCj4gPiArDQo+ID4gK8KgwqDCoCBteSAkcGF0aCA9ICRjbGFzcy0+ZmlsZXN5c3Rl
bV9wYXRoKCRzY2ZnLCAkdm9sbmFtZSk7DQo+ID4gK8KgwqDCoCBteSAkc25hcHBhdGggPSBnZXRf
c25hcF92b2xuYW1lKCRwYXRoLCAkc25hcCk7DQo+ID4gK8KgwqDCoCBteSAkY3VycmVudHBhdGgg
PSAkY2xhc3MtPnBhdGgoJHNjZmcsICR2b2xuYW1lLCAkc3RvcmVpZCk7DQo+ID4gK8KgwqDCoCBy
ZXR1cm4gMSBpZiAkY3VycmVudHBhdGggZXEgJHNuYXBwYXRoOw0KPiA+ICsNCj4gPiArwqDCoMKg
IGRpZSAiY2FuJ3Qgcm9sbGJhY2ssICckc25hcCcgaXMgbm90IG1vc3QgcmVjZW50IHNuYXBzaG90
IG9uDQo+ID4gJyR2b2xuYW1lJ1xuIjsNCj4gPiArDQo+ID4gK8KgwqDCoCByZXR1cm4gMTsNCj4g
PiArfQ0KDQpzYW1lIGNvbW1lbnRzIGFzIGZvciB0aGUgZGlyLWJhc2VkIHBhdGNoZXMgYXBwbHkg
aGVyZSBhcyB3ZWxsIC0gaWYgYXQNCmFsbCBwb3NzaWJsZSwgaGF2aW5nIGEgMToxIG1hcHBpbmcg
b2Ygc25hcHNob3QgbmFtZSB0byBMViBuYW1lIHdvdWxkIGJlDQpncmVhdC4uIG90aGVyIHRoYW4g
TFZzIG5vdCBiZWluZyBoYXJkbGlua2FibGUsIEkgdGhpbmsgdGhlIHNhbWUNCmNvbnNpZGVyYXRp
b25zIGFwcGx5IHRoZXJlIGFzIHdlbGwuLg0KDQo+ID4gKw0KPiA+ICtzdWIgdm9sdW1lX3NuYXBz
aG90X3JvbGxiYWNrIHsNCj4gPiArwqDCoMKgIG15ICgkY2xhc3MsICRzY2ZnLCAkc3RvcmVpZCwg
JHZvbG5hbWUsICRzbmFwKSA9IEBfOw0KPiA+ICsNCj4gPiArwqDCoMKgICRjbGFzcy0+YWN0aXZh
dGVfdm9sdW1lKCRzdG9yZWlkLCAkc2NmZywgJHZvbG5hbWUsIHVuZGVmLCB7fSk7DQo+ID4gK8Kg
wqDCoCAjc2ltcGx5IGRlbGV0ZSB0aGUgY3VycmVudCBzbmFwc2hvdCBhbmQgcmVjcmVhdGUgaXQN
Cj4gPiArDQo+ID4gK8KgwqDCoCBteSAkc25hcHZvbG5hbWUgPSBnZXRfc25hcF92b2xuYW1lKCR2
b2xuYW1lLCAkc25hcCk7DQo+ID4gKw0KPiA+ICvCoMKgwqAgJGNsYXNzLT5mcmVlX2ltYWdlKCRz
dG9yZWlkLCAkc2NmZywgJHNuYXB2b2xuYW1lLCAwKTsNCj4gPiArwqDCoMKgICRjbGFzcy0+dm9s
dW1lX3NuYXBzaG90KCRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUsICRzbmFwKTsNCj4gPiArfQ0K
PiA+ICsNCj4gPiArc3ViIHZvbHVtZV9zbmFwc2hvdF9kZWxldGUgew0KPiA+ICvCoMKgwqAgbXkg
KCRjbGFzcywgJHNjZmcsICRzdG9yZWlkLCAkdm9sbmFtZSwgJHNuYXAsICRydW5uaW5nKSA9IEBf
Ow0KPiA+ICsNCj4gPiArwqDCoMKgIHJldHVybiAxIGlmICRydW5uaW5nOw0KPiA+ICsNCj4gPiAr
wqDCoMKgICRjbGFzcy0+YWN0aXZhdGVfdm9sdW1lKCRzdG9yZWlkLCAkc2NmZywgJHZvbG5hbWUs
IHVuZGVmLCB7fSk7DQo+ID4gKw0KPiA+ICvCoMKgwqAgbXkgJHNuYXBzaG90cyA9ICRjbGFzcy0+
dm9sdW1lX3NuYXBzaG90X2luZm8oJHNjZmcsICRzdG9yZWlkLA0KPiA+ICR2b2xuYW1lKTsNCj4g
PiArwqDCoMKgIG15ICRzbmFwcGF0aCA9ICRzbmFwc2hvdHMtPnskc25hcH0tPntmaWxlfTsNCj4g
PiArwqDCoMKgIGlmKCEkc25hcHBhdGgpIHsNCj4gPiArIHdhcm4gIiRzbmFwIGFscmVhZHkgZGVs
ZXRlZC4gc2tpcFxuIjsNCj4gPiArIHJldHVybjsNCj4gPiArwqDCoMKgIH0NCg0KaG93IGNhbiB0
aGlzIGhhcHBlbj8gdGhlIHNuYXBzaG90IGluZm8gaXMgZ2VuZXJhdGVkIGJ5IHF1ZXJ5aW5nIExW
TSBmb3INCmEgbGlzdCBvZiBMVnMuLg0KDQo+ID4gKw0KPiA+ICvCoMKgwqAgbXkgJHNuYXB2b2xu
YW1lID0gJHNuYXBzaG90cy0+eyRzbmFwfS0+e3ZvbG5hbWV9Ow0KPiA+ICvCoMKgwqAgbXkgJHBh
cmVudHNuYXAgPSAkc25hcHNob3RzLT57JHNuYXB9LT57cGFyZW50fTsNCj4gPiArwqDCoMKgIG15
ICRjaGlsZHNuYXAgPSAkc25hcHNob3RzLT57JHNuYXB9LT57Y2hpbGR9Ow0KPiA+ICvCoMKgwqAg
ZGllICJlcnJvcjogY2FuJ3QgZmluZCBhIHBhcmVudCBmb3IgdGhpcyBzbmFwc2hvdCIgaWYNCj4g
PiAhJHBhcmVudHNuYXA7DQoNCmJ1dCB0aGUgZmlyc3Qgc25hcHNob3QgZG9lc24ndCBoYXZlIGEg
cGFyZW50Pw0KDQo+ID4gKw0KPiA+ICvCoMKgwqAgbXkgJHBhcmVudHBhdGggPSAkc25hcHNob3Rz
LT57JHBhcmVudHNuYXB9LT57ZmlsZX07DQo+ID4gK8KgwqDCoCBteSAkcGFyZW50Zm9ybWF0ID0g
JHNuYXBzaG90cy0+eyRwYXJlbnRzbmFwfS0+eydmb3JtYXQnfSBpZg0KPiA+ICRwYXJlbnRzbmFw
Ow0KPiA+ICvCoMKgwqAgbXkgJGNoaWxkcGF0aCA9ICRzbmFwc2hvdHMtPnskY2hpbGRzbmFwfS0+
e2ZpbGV9IGlmDQo+ID4gJGNoaWxkc25hcDsNCg0KPj51bmxlc3Mgc29tZW9uZSBtYW51YWxseSBt
ZXNzZWQgd2l0aCB0aGUgc25hcHNob3QgdHJlZSwgaW4gdGhlIGN1cnJlbnQNCj4+c2NoZW1lIGFu
eSAic25hcHNob3QiIGhhcyBhIGNoaWxkPw0KdGhlICRzbmFwc2hvdHMgaGF2ZSB0aGUgZnVsbCBj
aGFpbiwgaW5jbHVkaW5nIHRoZSBiYXNlIGltYWdlLg0KSSB0aGluayB0aGlzIHdoeSBJIGNoZWNr
IGl0DQoNCj4gPiArwqDCoMKgIG15ICRjaGlsZGZvcm1hdCA9ICRzbmFwc2hvdHMtPnskY2hpbGRz
bmFwfS0+eydmb3JtYXQnfSBpZg0KPiA+ICRjaGlsZHNuYXA7DQo+ID4gKw0KPiA+ICvCoMKgwqAg
cHJpbnQgIm1lcmdlIHNuYXBzaG90ICRzbmFwIHRvICRwYXJlbnRzbmFwXG4iOw0KPiA+ICvCoMKg
wqAgbXkgJGNtZCA9IFsnL3Vzci9iaW4vcWVtdS1pbWcnLCAnY29tbWl0JywgJHNuYXBwYXRoXTsN
Cj4gPiArwqDCoMKgIHJ1bl9jb21tYW5kKCRjbWQpOw0KPiA+ICsNCj4gPiArwqDCoMKgICNpZiB3
ZSBkZWxldGUgYW4gaW50ZXJtZWRpYXRlIHNuYXBzaG90LCB3ZSBuZWVkIHRvIGxpbmsgdXBwZXIN
Cj4gPiBzbmFwc2hvdCB0byBiYXNlIHNuYXBzaG90DQo+ID4gK8KgwqDCoCBpZigkY2hpbGRwYXRo
ICYmIC1lICRjaGlsZHBhdGgpIHsNCj4gPiArIGRpZSAibWlzc2luZyBwYXJlbnRzbmFwIHNuYXBz
aG90IHRvIHJlYmFzZSBjaGlsZCAkY2hpbGRwYXRoXG4iIGlmDQo+ID4gISRwYXJlbnRwYXRoOw0K
PiA+ICsgcHJpbnQgImxpbmsgJGNoaWxkc25hcCB0byAkcGFyZW50c25hcFxuIjsNCj4gPiArICRj
bWQgPSBbJy91c3IvYmluL3FlbXUtaW1nJywgJ3JlYmFzZScsICctdScsICctYicsICRwYXJlbnRw
YXRoLA0KPiA+ICctDQo+ID4gRicsICRwYXJlbnRmb3JtYXQsICctZicsICRjaGlsZGZvcm1hdCwg
JGNoaWxkcGF0aF07DQo+ID4gKyBydW5fY29tbWFuZCgkY21kKTsNCj4gPiArwqDCoMKgIH0NCg0K
Pj5zYW1lIGhlcmUsIGNvbW1pdCArIHJlYmFzZSAtdSBzaG91bGQgYmUgdGhlIHNhbWUgYXMgcmVi
YXNlID8NCg0KQUZBSUssIHJlYmFzZSBpcyBtb3JlIHVzZWQgd2hlbiB5b3UgdXNlIG11bHRpLWJy
YW5jaCB3aGVuIHlvdSBkZWxldGUNCnNuYXBzaG90IGRlbGV0ZSBhbmQgeW91IG5lZWQgdG8gbWVy
Z2UgdGhlIHNuYXBzaG90IGNvbnRlbnQgaW50bw0KbXVsdGlwbGUgY2hpbGQgc25hcHNob3QuDQph
bmQgY29tbWl0LCBpcyB3aGVuIHlvdSBuZWVkIHRvIG1lcmdlIHRvIHBhcmVudA0KaHR0cHM6Ly9s
aXN0cy5ub25nbnUub3JnL2FyY2hpdmUvaHRtbC9xZW11LWRldmVsLzIwMTktMDgvbXNnMDQwNDMu
aHRtbA0KDQpmcm9tIHdoYXQgSSBoYXZlIHJlYWQgaW4gZGlmZmVyZW50IHBsYWNlLCByZWJhc2Ug
aXMgc2xvd2VyDQpodHRwczovL2xpc3RzLmRlZmVjdGl2ZWJ5ZGVzaWduLm9yZy9hcmNoaXZlL2h0
bWwvcWVtdS1kaXNjdXNzLzIwMTktMDgvbXNnMDAwNDEuaHRtbA0KIkdlbmVyYWxseSwgcmViYXNl
IGlzIGdvaW5nIHRvIGJlIHNsb3dlciBiZWNhdXNlIGl0IHJlYWRzIHNvbWUgY2x1c3RlcnMNCmFu
ZCBjb21wYXJlcyB0aGUgb2xkIHdpdGggdGhlIG5ldyBiYWNraW5nIGZpbGUgdG8gc2VlIHdoZXRo
ZXIgdGhleSBhcmUNCnRoZSBzYW1lLiAgY29tbWl0IHdpbGwgbm90IGRvIHRoYXQuICAoT1RPSCwg
aWYgdGhlcmUgYXJlIG1hbnkgY2x1c3RlcnMNCmluIHRoZSBvbGQgYmFja2luZyBjaGFpbiB0aGF0
IGhhcHBlbiB0byBjb250YWluIHRoZSBzYW1lIGRhdGEgYXMgdGhlDQpuZXcNCm9uZSwgdGhpcyB3
aWxsIHNhdmUgc3BhY2UsIGJlY2F1c2UgaXQgd29u4oCZdCBjb3B5IHRob3NlIGNsdXN0ZXJzIGZy
b20NCnRoZQ0Kb2xkIGJhY2tpbmcgY2hhaW4uKQ0KIg0KDQo+ID4gKw0KPiA+ICvCoMKgwqAgI2Rl
bGV0ZSB0aGUgc25hcHNob3QNCj4gPiArwqDCoMKgICRjbGFzcy0+ZnJlZV9pbWFnZSgkc3RvcmVp
ZCwgJHNjZmcsICRzbmFwdm9sbmFtZSwgMCk7DQo+ID4gKyANCj4gPiArwqDCoMKgIHJldHVybjsN
Cj4gPiArfQ0KPiA+ICsNCj4gPiArc3ViIHZvbHVtZV9oYXNfZmVhdHVyZSB7DQo+ID4gK8KgwqDC
oCBteSAoJGNsYXNzLCAkc2NmZywgJGZlYXR1cmUsICRzdG9yZWlkLCAkdm9sbmFtZSwgJHNuYXBu
YW1lLA0KPiA+ICRydW5uaW5nKSA9IEBfOw0KPiA+ICsNCj4gPiArwqDCoMKgIG15ICRmZWF0dXJl
cyA9IHsNCj4gPiArIHNuYXBzaG90ID0+IHsgY3VycmVudCA9PiAxIH0sDQo+ID4gKyMgY2xvbmUg
PT4geyBiYXNlID0+IDEsIHNuYXAgPT4gMX0swqDCoCAjZG9uJ3QgYWxsb3cgdG8gY2xvbmUgYXMg
d2UNCj4gPiBjYW4ndCBhY3RpdmF0ZSB0aGUgYmFzZSBiZXR3ZWVuIGRpZmZlcmVudCBob3N0ID8N
Cg0KPj50aGF0J3Mgb25seSB0cnVlIGZvciBzaGFyZWQgTFZNIHRob3VnaCwgYW5kIHRoZSByZXN0
IHdvdWxkIGFsc28gd29yaw0KPj5mb3IgbG9jYWwgTFZNPw0KeWVzLCBmb3IgbG9jYWwgbHZtICwg
aXQnbGwgd29yay4gSSdsbCBjaGVjayB0aGUgc2hhcmVkIG9wdGlvbi4NCg0KDQo+ID4gKyB0ZW1w
bGF0ZSA9PiB7IGN1cnJlbnQgPT4gMX0sDQo+ID4gKyBjb3B5ID0+IHsgYmFzZSA9PiAxLCBjdXJy
ZW50ID0+IDEsIHNuYXAgPT4gMX0sDQo+ID4gKyBzcGFyc2Vpbml0ID0+IHsgYmFzZSA9PiAxLCBj
dXJyZW50ID0+IDF9LA0KPiA+ICsgcmVuYW1lID0+IHtjdXJyZW50ID0+IDF9LA0KPiA+ICvCoMKg
wqAgfTsNCj4gPiArDQo+ID4gK8KgwqDCoCBteSAoJHZ0eXBlLCAkbmFtZSwgJHZtaWQsICRiYXNl
bmFtZSwgJGJhc2V2bWlkLCAkaXNCYXNlKSA9DQo+ID4gKyAkY2xhc3MtPnBhcnNlX3ZvbG5hbWUo
JHZvbG5hbWUpOw0KPiA+ICsNCj4gPiArwqDCoMKgIG15ICRrZXkgPSB1bmRlZjsNCj4gPiArwqDC
oMKgIGlmKCRzbmFwbmFtZSl7DQo+ID4gKyAka2V5ID0gJ3NuYXAnOw0KPiA+ICvCoMKgwqAgfWVs
c2V7DQo+ID4gKyAka2V5ID3CoCAkaXNCYXNlID8gJ2Jhc2UnIDogJ2N1cnJlbnQnOw0KPiA+ICvC
oMKgwqAgfQ0KPiA+ICvCoMKgwqAgcmV0dXJuIDEgaWYgJGZlYXR1cmVzLT57JGZlYXR1cmV9LT57
JGtleX07DQo+ID4gKw0KPiA+ICvCoMKgwqAgcmV0dXJuIHVuZGVmOw0KPiA+ICt9DQo+ID4gKw0K
PiA+ICtzdWIgZ2V0X3NuYXBfdm9sbmFtZSB7DQo+ID4gK8KgwqDCoCBteSAoJHBhdGgsICRzbmFw
KSA9IEBfOw0KPiA+ICsNCj4gPiArwqDCoMKgIG15ICRiYXNlcGF0aCA9ICIiOw0KPiA+ICvCoMKg
wqAgbXkgJGJhc2Vmb3JtYXQgPSAiIjsNCj4gPiArwqDCoMKgIGlmICgkcGF0aCA9fiBtL14oKC4q
KSgodm18YmFzZSktKFxkKyktZGlzay0oXGQrKSkpKC1zbmFwLShbYS0NCj4gPiB6QS0NCj4gPiBa
MC05XSspKT8oXC4ocmF3fHFjb3cyKSk/Lykgew0KPiA+ICvCoMKgwqDCoMKgwqDCoCAkYmFzZXBh
dGggPSAkMTsNCj4gPiArwqDCoMKgwqDCoMKgwqAgJGJhc2Vmb3JtYXQgPSAkODsNCj4gPiArwqDC
oMKgIH0NCj4gPiArwqDCoMKgIG15ICRzbmFwdm9sbmFtZSA9ICRiYXNlcGF0aC4iLXNuYXAtJHNu
YXAucWNvdzIiOw0KPiA+ICvCoMKgwqAgcmV0dXJuICRzbmFwdm9sbmFtZTsNCj4gPiArfQ0KPiA+
ICsNCj4gPiArc3ViIGdldF9zbmFwbmFtZV9mcm9tX3BhdGggew0KPiA+ICvCoMKgwqAgbXkgKCRw
YXRoKSA9IEBfOw0KPiA+ICsNCj4gPiArwqDCoMKgIGlmICgkcGF0aCA9fiBtL14oKC4qKSgodm18
YmFzZSktKFxkKyktZGlzay0oXGQrKSkpKC1zbmFwLShbYS0NCj4gPiB6QS0NCj4gPiBaMC05XSsp
KT8oXC4ocmF3fHFjb3cyKSk/Lykgew0KPiA+ICvCoMKgwqDCoMKgwqDCoCBteSAkc25hcG5hbWUg
PSAkNzsNCj4gPiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuICRzbmFwbmFtZTsNCj4gPiArwqDCoMKg
IH0NCj4gPiArwqDCoMKgIGRpZSAiY2FuJ3QgcGFyc2Ugc25hcG5hbWUgZnJvbSBwYXRoICRwYXRo
IjsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3ViIGdldF9jdXJyZW50X3NuYXBzaG90IHsNCj4gPiAr
wqDCoMKgIG15ICgkY2xhc3MsICRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUpID0gQF87DQo+ID4g
Kw0KPiA+ICvCoMKgwqAgI2dldCBtb3JlIHJlY2VudCBjdGltZSB2b2x1bWUNCj4gPiArwqDCoMKg
IHJldHVybiAkY2xhc3MtPmxpc3Rfc25hcHNob3RzKCRzY2ZnLCAkc3RvcmVpZCwgJHZvbG5hbWUs
IDEpOw0KPiA+ICt9DQo+ID4gK215ICRjaGVja190YWdzID0gc3ViIHsNCj4gPiArwqDCoMKgIG15
ICgkdGFncykgPSBAXzsNCj4gPiArDQo+ID4gK8KgwqDCoCByZXR1cm4gZGVmaW5lZCgkdGFncykg
JiYgJHRhZ3MgPX4gLyhefCwpcHZlLXZtLVxkKygsfCQpLzsNCj4gPiArfTsNCj4gPiArDQo+ID4g
K3N1YiBsaXN0X2ltYWdlcyB7DQo+ID4gK8KgwqDCoCBteSAoJGNsYXNzLCAkc3RvcmVpZCwgJHNj
ZmcsICR2bWlkLCAkdm9sbGlzdCwgJGNhY2hlKSA9IEBfOw0KPiA+ICsNCj4gPiArwqDCoMKgIG15
ICR2Z25hbWUgPSAkc2NmZy0+e3ZnbmFtZX07DQo+ID4gKw0KPiA+ICvCoMKgwqAgJGNhY2hlLT57
bHZzfSA9IFBWRTo6U3RvcmFnZTo6TFZNUGx1Z2luOjpsdm1fbGlzdF92b2x1bWVzKCkgaWYNCj4g
PiAhJGNhY2hlLT57bHZzfTsNCj4gPiArDQo+ID4gK8KgwqDCoCBteSAkcmVzID0gW107DQo+ID4g
Kw0KPiA+ICvCoMKgwqAgaWYgKG15ICRkYXQgPSAkY2FjaGUtPntsdnN9LT57JHZnbmFtZX0pIHsN
Cj4gPiArDQo+ID4gKyBmb3JlYWNoIG15ICR2b2xuYW1lIChrZXlzICUkZGF0KSB7DQo+ID4gKw0K
PiA+ICsgwqDCoMKgIG5leHQgaWYgJHZvbG5hbWUgIX4gbS9eKHZtfGJhc2UpLShcZCspLS87DQo+
ID4gKyDCoMKgwqAgbXkgJG93bmVyID0gJDI7DQo+ID4gKw0KPiA+ICsgwqDCoMKgIG15ICRpbmZv
ID0gJGRhdC0+eyR2b2xuYW1lfTsNCj4gPiArDQo+ID4gKyDCoMKgwqAgbmV4dCBpZiAkc2NmZy0+
e3RhZ2dlZF9vbmx5fSAmJiAhJiRjaGVja190YWdzKCRpbmZvLT57dGFnc30pOw0KPiA+ICsNCj4g
PiArIMKgwqDCoCAjIEFsbG93IG1pcnJvcmVkIGFuZCBSQUlEIExWcw0KPiA+ICsgwqDCoMKgIG5l
eHQgaWYgJGluZm8tPntsdl90eXBlfSAhfiBtL15bLW1NclJdJC87DQo+ID4gKw0KPiA+ICsgwqDC
oMKgIG15ICR2b2xpZCA9ICIkc3RvcmVpZDokdm9sbmFtZSI7DQo+ID4gKw0KPiA+ICsgwqDCoMKg
IGlmICgkdm9sbGlzdCkgew0KPiA+ICsgbXkgJGZvdW5kID0gZ3JlcCB7ICRfIGVxICR2b2xpZCB9
IEAkdm9sbGlzdDsNCj4gPiArIG5leHQgaWYgISRmb3VuZDsNCj4gPiArIMKgwqDCoCB9IGVsc2Ug
ew0KPiA+ICsgbmV4dCBpZiBkZWZpbmVkKCR2bWlkKSAmJiAoJG93bmVyIG5lICR2bWlkKTsNCj4g
PiArIMKgwqDCoCB9DQo+ID4gKw0KPiA+ICsgwqDCoMKgIHB1c2ggQCRyZXMsIHsNCj4gPiArIHZv
bGlkID0+ICR2b2xpZCwgZm9ybWF0ID0+ICdyYXcnLCBzaXplID0+ICRpbmZvLT57bHZfc2l6ZX0s
IHZtaWQNCj4gPiA9Pg0KPiA+ICRvd25lciwNCj4gPiArIGN0aW1lID0+ICRpbmZvLT57Y3RpbWV9
LA0KPiA+ICsgwqDCoMKgIH07DQoNCj4+YnV0IGRvZXNuJ3QgdGhpcyBub3cgaW5jbHVkZSBhbGwg
c25hcHNob3QgTFZzIGFzIHdlbGw/IHdoaWxlDQo+PnByZXRlbmRpbmcgdGhleSBhcmUgcmF3Pw0K
eWVzLCBJIHdhcyBub3Qgc3VyZSBoZXJlIGlmIHdlIHdhbnQgdG8gZGlzcGxheSBzbmFzcGhvdCB2
b2x1bWUgb3Igbm90ID8NCg0KDQo+ID4gKyB9DQo+ID4gK8KgwqDCoCB9DQo+ID4gKw0KPiA+ICvC
oMKgwqAgcmV0dXJuICRyZXM7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N1YiBsaXN0X3NuYXBzaG90
cyB7DQo+ID4gK8KgwqDCoCBteSAoJGNsYXNzLCAkc2NmZywgJHN0b3JlaWQsICR2b2xuYW1lLCAk
Y3VycmVudF9vbmx5KSA9IEBfOw0KPiA+ICsNCj4gPiArwqDCoMKgIG15ICR2Z25hbWUgPSAkc2Nm
Zy0+e3ZnbmFtZX07DQo+ID4gKw0KPiA+ICvCoMKgwqAgbXkgJGJhc2V2b2xuYW1lID0gJHZvbG5h
bWU7DQo+ID4gK8KgwqDCoCBteSAkbHZzID0gUFZFOjpTdG9yYWdlOjpMVk1QbHVnaW46Omx2bV9s
aXN0X3ZvbHVtZXMoJHZnbmFtZSk7DQoNCnRoaXMNCg0KPiA+ICsNCj4gPiArwqDCoMKgIG15ICR2
ZyA9ICRsdnMtPnskdmduYW1lfTsNCg0KYW5kIHRoaXMgc2VlbSB0byBiZSB1bnVzZWQ/DQoNCj4g
PiArDQo+ID4gK8KgwqDCoCBteSAoJHZ0eXBlLCAkbmFtZSwgJHZtaWQsICRiYXNlbmFtZSwgJGJh
c2V2bWlkLCAkaXNCYXNlLA0KPiA+ICRmb3JtYXQpID0gJGNsYXNzLT5wYXJzZV92b2xuYW1lKCR2
b2xuYW1lKTsNCj4gPiArwqDCoMKgIG15ICRzbmFwc2hvdHMgPSAkY2xhc3MtPmxpc3RfaW1hZ2Vz
KCRzdG9yZWlkLCAkc2NmZywgJHZtaWQpOw0KPiA+ICsNCj4gPiArwqDCoMKgIG15ICRpbmZvID0g
e307DQo+ID4gK8KgwqDCoCBmb3IgbXkgJHNuYXAgKEAkc25hcHNob3RzKSB7DQo+ID4gKyBteSAk
c25hcF92b2xpZCA9ICRzbmFwLT57dm9saWR9Ow0KPiA+ICsgbmV4dCBpZiAoJHNuYXBfdm9saWQg
IX4gbS8kYmFzZXZvbG5hbWUvKTsNCg0Kc2FtZSBpc3N1ZSBhcyB3aXRoIHRoZSBkaXIgcGF0Y2gg
LSB0aGlzIGFsbG93cyBwYXJ0aWFsIG1hdGNoaW5nIGlmIHR3bw0Kdm9sdW1lcyBzaGFyZSBhIG5h
bWUgcHJlZml4DQoNCj4gPiArDQo+ID4gKyBteSAkc25hcG5hbWUgPSBnZXRfc25hcG5hbWVfZnJv
bV9wYXRoKCRzbmFwX3ZvbGlkKTsNCj4gPiArIG15ICh1bmRlZiwgJHNuYXBfdm9sbmFtZSkgPQ0K
PiA+IFBWRTo6U3RvcmFnZTo6cGFyc2Vfdm9sdW1lX2lkKCRzbmFwX3ZvbGlkKTsNCj4gPiArIG15
ICRzbmFwZmlsZSA9ICRjbGFzcy0+ZmlsZXN5c3RlbV9wYXRoKCRzY2ZnLCAkc25hcF92b2xuYW1l
LA0KPiA+ICRzbmFwbmFtZSk7DQo+ID4gKyAkc25hcG5hbWUgPSAnYmFzZScgaWYgISRzbmFwbmFt
ZTsNCj4gPiArICRpbmZvLT57JHNuYXBuYW1lfS0+e2ZpbGV9ID0gJHNuYXBmaWxlOw0KPiA+ICsg
JGluZm8tPnskc25hcG5hbWV9LT57dm9sbmFtZX0gPSAkc25hcF92b2xuYW1lOw0KPiA+ICsgJGlu
Zm8tPnskc25hcG5hbWV9LT57dm9saWR9ID0gJHNuYXBfdm9saWQ7DQo+ID4gKyAkaW5mby0+eyRz
bmFwbmFtZX0tPntjdGltZX0gPSAkc25hcC0+e2N0aW1lfTsNCj4gPiArDQo+ID4gKyBpZiAoISRj
dXJyZW50X29ubHkpIHsNCj4gPiArIMKgwqDCoCBteSAodW5kZWYsICRmb3JtYXQsIHVuZGVmLCAk
cGFyZW50ZmlsZSwgdW5kZWYpID0NCj4gPiBQVkU6OlN0b3JhZ2U6OlBsdWdpbjo6ZmlsZV9zaXpl
X2luZm8oJHNuYXBmaWxlKTsNCj4gPiArIMKgwqDCoCBuZXh0IGlmICEkcGFyZW50ZmlsZSAmJiAk
c25hcG5hbWUgbmUgJ2Jhc2UnO8KgwqAgI2JhZCB1bmxpbmtlZA0KPiA+IHNuYXNwaG90DQo+ID4g
Kw0KPiA+ICsgwqDCoMKgIG15ICRwYXJlbnRuYW1lID0gZ2V0X3NuYXBuYW1lX2Zyb21fcGF0aCgk
cGFyZW50ZmlsZSkgaWYNCj4gPiAkcGFyZW50ZmlsZTsNCj4gPiArIMKgwqDCoCAkcGFyZW50bmFt
ZSA9ICdiYXNlJyBpZiAhJHBhcmVudG5hbWUgJiYgJHBhcmVudGZpbGU7DQo+ID4gKw0KPiA+ICsg
wqDCoMKgICRpbmZvLT57JHNuYXBuYW1lfS0+eydmb3JtYXQnfSA9ICRmb3JtYXQ7DQo+ID4gKyDC
oMKgwqAgJGluZm8tPnskc25hcG5hbWV9LT57cGFyZW50fSA9ICRwYXJlbnRuYW1lIGlmICRwYXJl
bnRuYW1lOw0KPiA+ICsgwqDCoMKgICRpbmZvLT57JHBhcmVudG5hbWV9LT57Y2hpbGR9ID0gJHNu
YXBuYW1lIGlmICRwYXJlbnRuYW1lOw0KPiA+ICsgfQ0KPiA+ICvCoMKgwqAgfQ0KPiA+ICsNCj4g
PiArwqDCoMKgIG15IEBzbmFwc2hvdHNfc29ydGVkID0gc29ydCB7ICRpbmZvLT57JGJ9e2N0aW1l
fSA8PT4gJGluZm8tDQo+ID4gPiB7JGF9e2N0aW1lfSB9IGtleXMgJSRpbmZvOw0KPiA+ICvCoMKg
wqAgbXkgJGN1cnJlbnRfc25hcG5hbWUgPSAkc25hcHNob3RzX3NvcnRlZFswXTsNCj4gPiArwqDC
oMKgIG15ICRjdXJyZW50X3NuYXBzaG90ID0gJGluZm8tPnskY3VycmVudF9zbmFwbmFtZX07DQo+
ID4gK8KgwqDCoCByZXR1cm4gJGN1cnJlbnRfc25hcHNob3QgaWYgJGN1cnJlbnRfb25seTsNCg0K
dGhpcyAocmV0dXJuaW5nIHRvIGhhc2hlcyB3aXRoIGRpZmZlcmVudCBzdHJ1Y3R1cmUpIGlzIGVh
c3kgdG8gbWlzcyBhbmQNCmdldCB3cm9uZy4uDQoNCj4gPiArDQo+ID4gK8KgwqDCoCAkaW5mby0+
e2N1cnJlbnR9ID0geyAlJGN1cnJlbnRfc25hcHNob3QgfTsNCg0KZXNwZWNpYWxseSBpZiB0aGlz
IGlzIGRvbmUgYW55d2F5LCBzbyB0aGUgY2FsbGVyIGNhbiBqdXN0IGxvb2sgYXQgdGhhdA0KaWYg
dGhleSBvbmx5IHdhbnQgdGhlIGN1cnJlbnQgc25hcHNob3QuLg0KDQo+ID4gK8KgwqDCoCByZXR1
cm4gJGluZm87DQo+ID4gK30NCj4gPiArDQo+ID4gK3N1YiBzbmFwc2hvdF9leGlzdCB7DQo+ID4g
K8KgwqDCoCBteSAoJGNsYXNzLCAkc2NmZywgJHN0b3JlaWQsICR2b2xuYW1lKSA9IEBfOw0KPiA+
ICsNCj4gPiArwqDCoMKgIG15ICRiYXNlcGF0aCA9ICRjbGFzcy0+ZmlsZXN5c3RlbV9wYXRoKCRz
Y2ZnLCAkdm9sbmFtZSk7DQo+ID4gK8KgwqDCoCBteSAkY3VycmVudHBhdGggPSAkY2xhc3MtPnBh
dGgoJHNjZmcsICR2b2xuYW1lLCAkc3RvcmVpZCk7DQo+ID4gKw0KPiA+ICvCoMKgwqAgZGllICJj
YW4ndCByZXNpemUgaWYgc25hc3Bob3RzIGV4aXN0IiBpZiAkY3VycmVudHBhdGggbmUNCj4gPiAk
YmFzZXBhdGg7DQoNCkkgdGhpbmsgc29tZXRoaW5nIGhlcmUgaXMgd3JvbmcgOykNCg0KPiA+ICsN
Cj4gPiArfQ0KPiA+ICsxOw0KPiA+IGRpZmYgLS1naXQgYS9zcmMvUFZFL1N0b3JhZ2UvTWFrZWZp
bGUgYi9zcmMvUFZFL1N0b3JhZ2UvTWFrZWZpbGUNCj4gPiBpbmRleCBkNWNjOTQyLi4xYWY4YWFi
IDEwMDY0NA0KPiA+IC0tLSBhL3NyYy9QVkUvU3RvcmFnZS9NYWtlZmlsZQ0KPiA+ICsrKyBiL3Ny
Yy9QVkUvU3RvcmFnZS9NYWtlZmlsZQ0KPiA+IEBAIC0xNCw3ICsxNCw4IEBAIFNPVVJDRVM9IFwN
Cj4gPiDCoCBQQlNQbHVnaW4ucG0gXA0KPiA+IMKgIEJUUkZTUGx1Z2luLnBtIFwNCj4gPiDCoCBM
dm1UaGluUGx1Z2luLnBtIFwNCj4gPiAtIEVTWGlQbHVnaW4ucG0NCj4gPiArIEVTWGlQbHVnaW4u
cG0gXA0KPiA+ICsgTHZtUWNvdzJQbHVnaW4ucG0NCj4gPiDCoA0KPiA+IMKgLlBIT05ZOiBpbnN0
YWxsDQo+ID4gwqBpbnN0YWxsOg0KPiA+IC0tIA0KPiA+IDIuMzkuMg0KDQoNCg==


--===============1971800117012363132==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

--===============1971800117012363132==--