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) server-digest SHA256)
 (No client certificate requested)
 by lists.proxmox.com (Postfix) with ESMTPS id 87F8D899A9
 for <pve-devel@lists.proxmox.com>; Tue, 18 Oct 2022 08:23:51 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
 by firstgate.proxmox.com (Proxmox) with ESMTP id 7805125591
 for <pve-devel@lists.proxmox.com>; Tue, 18 Oct 2022 08:23:51 +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>; Tue, 18 Oct 2022 08:23:48 +0200 (CEST)
Received: from CYLNEXC01.cyllene.corp (unknown [10.0.250.28])
 by mail02.cetsi.fr (Postfix) with ESMTP id 0CEE44050287
 for <pve-devel@lists.proxmox.com>; Tue, 18 Oct 2022 08:23:47 +0200 (CEST)
DKIM-Filter: OpenDKIM Filter v2.11.0 mail02.cetsi.fr 0CEE44050287
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groupe-cyllene.com;
 s=dkim; t=1666074227;
 bh=uAwgjcYmCXrShBk4BMM7mJ1ztMvVjb2j4v/SUKq9jiY=;
 h=From:To:Subject:Date:References:In-Reply-To:From;
 b=onsg7K7nv9gliEXlFjs63ThEq9t6hksd+MfS10BOSQ0y5YxFp1lytY6eDJA2kPW1q
 GaqjxdBsV3Mk9l8AWNgaIzWwwJvPn9qqoDnsGqLGgzJ4tuKTT/uYQAfXsT/6UdCihs
 CxoHnYA7l5gtvDQBMyDYQPRmzyGc7ZxkSIbY7alg=
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.2375.31; Tue, 18 Oct
 2022 08:23:45 +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.2375.31 via Frontend Transport; Tue, 18 Oct 2022 08:23:45 +0200
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Wn5lKY7v2EDeXNjFQk/9/Xf/FAc9i8WIxjoCSc2dJQnFqFRgjSIVI/uzIaBnSUhRdm0W1NQ6SfRCJTJo0hTvcNUPs0vprp9koNyjNHJE3b+QICZOMM5ewUpq+Wh7ADdSWyPdiu/qoC3v440w1cQqkoicnmEekQtexPP76zs+J7seBc8hWIoASwpGi1Lg8kpkb04LZcVvVTGo5kgctW5tzWRb7qwKL2gEi+pP1z5DkLUfDKx56IH7oWR/mawyf3hJDlzYi0nlAXJa/QtM+S6Ng5+l/JwkD/W/krmdBHjYzMMOOOtwEtZ5o0gXhajNClODVqyIcPxgCdHcQTX13XjonQ==
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=uAwgjcYmCXrShBk4BMM7mJ1ztMvVjb2j4v/SUKq9jiY=;
 b=VSOdDPcy5RSAnmrfpibK9TfWKj9HBgxYhxoYobRwkwhqYNMhYbEGtVmRMftWxAE9x+RYNSFf0hJlfdWLl4tj19lq/fIcymBqQM3wkO0c22vsMD7ni1auafgqA5sXNbnJIWLd6hnCRkn+RJT3YyJnybUkKzgUE0AiVcF5+oRhTxR+a6OVGPmfTYiPifLkkeYDzMILSFDSnu1ZmMk6yba/vCxQNedC/lfiQPPJ6SGanESf+3gttIypMemhdZ4vTDLaexSffWPViO8bS9qJb32P445x4maYWgFikB+5g47KuUGd+CZLRmuzQZBeYzFW9ALPCsA5aFqn1ExxwjG0hn7eeQ==
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=uAwgjcYmCXrShBk4BMM7mJ1ztMvVjb2j4v/SUKq9jiY=;
 b=Ot2/bx73wM4YU0lgeiF+Z8JOURQaIHwp0ipL1wYke7LHCE6b/zpcQy0lq8FlhkTd8oKDQw5QB+45Gf1jxL3E/pcazjUY/N7mOYJ2YZYepLAFzMe4Y0EgHYAJ1LnTS74OzrHKG1EGSrdrlGHIqSUoBaKqVPDD7BT2GUYZ2oef4PU=
Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:32::17)
 by MRZP264MB2086.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:f::16) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.33; Tue, 18 Oct
 2022 06:23:45 +0000
Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM
 ([fe80::6c2d:e529:cb69:feeb]) by MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM
 ([fe80::6c2d:e529:cb69:feeb%5]) with mapi id 15.20.5723.033; Tue, 18 Oct 2022
 06:23:45 +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 v6 qemu-server 2/6] mtunnel: add API endpoints
Thread-Index: AQHY0zkTcXIWLGSa+0SN2Pg6cR4Zuq4TzeeA
Date: Tue, 18 Oct 2022 06:23:45 +0000
Message-ID: <348d9d2d-525d-9231-5b5c-82080361885c@groupe-cyllene.com>
References: <20220928125059.1139296-1-f.gruenbichler@proxmox.com>
 <20220928125059.1139296-9-f.gruenbichler@proxmox.com>
In-Reply-To: <20220928125059.1139296-9-f.gruenbichler@proxmox.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
 Thunderbird/102.3.3
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_|MRZP264MB2086:EE_
x-ms-office365-filtering-correlation-id: 072f383e-45aa-483d-54e1-08dab0d14fb2
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: Ob32V+OcxXmNOUT3chX57n+QjN/PQjb3jlTIM4fF2EU6ZGkurkCT0Wi2DEZZDaoKQXRvki/toZe1owVBFXN+HxEkoRfk0if449fuIHNgxpMqeNLm3oCm1UjrGEKPiU5tnCb+dTz09KVDLknC2/jhg6xg9wShNV6OIVjxD+pow7DOXwkbLpABe/GKZaJfEWKsu/ByRhknocBlFeuXIkmfW8RFUKPaCmUgxc0swd6SlHf1YAAs/SKH4i0luJkXK4fVotaPKaL2CzdHehpAIjh0VcSK3GFtSxGofb+JHq/llq1fxDWMHvzpj40Qbo9Jrj/koVrA7VKsmhxglGq3SCQGJSqpqCc0OKYsBtbLWdf5ZuIe1CyWVmSkTd1IXDpMPDo7DOPM3Q2ZYq7SwAUXCa0FFaGAw0xCdWpiZVYUywYeTswTIDw+8WJRD3P2PrAl5vqJpD3Rtcs09/OgEnNCy8GKxHD/bQjZ0RqfnF0acV/YyEEtlMDtvyLcj9tn32hMxDh3PZnCK3Fdc8FPtaAfFdrJxJqRgClz3DfaleP7B+HPOUPLmBu8ud3PoaX6TReKrMjULAdEsQ/xtpvjah7zA0OFTfPQq56Kxoa2F40GHLVrKRQgxR+CI8hbTYn7NjkNc0x85xHhrPZs7TvP3gcVyddvDrDBKXF2g3Aqe7mzaDXopZ82qYCFmsgakXU3LmOu76MDIDPiUqatWF8EK2UYqnPrP2Bi7xDDIw72cTHWeVY2BhCVLVsAiLrzcULd3dSnkCjq5BQKMNCe5HmEJ64CNdVLffDs/f/4o4kYXJlGSKanbQavz8suydZuDFJ5La1y0ejifNuqD/7KgiQtCB1l8V9NPA==
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:(13230022)(4636009)(376002)(366004)(396003)(136003)(39850400004)(346002)(451199015)(38100700002)(31686004)(6486002)(478600001)(71200400001)(6512007)(26005)(36756003)(6506007)(66556008)(66476007)(66946007)(76116006)(41300700001)(6916009)(8936002)(83380400001)(8676002)(30864003)(316002)(38070700005)(122000001)(91956017)(66574015)(31696002)(2906002)(4001150100001)(186003)(64756008)(66446008)(5660300002)(2616005)(86362001)(43740500002)(45980500001)(579004)(559001);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?amEvWjJJMStyMmdNQ283ck1ZRnhreWRWU05ZTHdDaHZ4cHlxTmZyUTQrdGpW?=
 =?utf-8?B?YjdhakJJeWJGbjF1Rkkvby9BeGJONmp6N3VvNG5wcWpMdFUzSjJtelJ0ZUkz?=
 =?utf-8?B?Y05PMGtwZlRTVWVCQnJFaUQ5Y3hKbVArT3hCZlZWYmJlWjdGdHp4V1lGdndT?=
 =?utf-8?B?Q1RMVHRRZFdDdFBjRW45YVpKTTd6TTkxMXI2NnlFclJEWjh5M0JsN2hsUkt0?=
 =?utf-8?B?bkkvNVN1QXRITDNFT1BrK0ovRFpqYm54VC84Q241N0s3Y216cjhlcXNSWkRZ?=
 =?utf-8?B?bWxTVmcxMnJGdVNBelBad0V6QzlweWJnNW1hRlp1bTJxT1RYL0d4bEYwNHJ3?=
 =?utf-8?B?RkdLMUdtVFJuWjlvcWNwS09jLzZjc2dVeE4vN0hhVS9IOFdLTG9xWEJ4cWQx?=
 =?utf-8?B?eEM1cW8yQjNWUW5SaVNTMm5WYjhlR2xmVG9BdlF4eHVOc3J6K0h2VVdmRFRI?=
 =?utf-8?B?akVEQ1ZtWGVtTmJqaUFhNWk1ampNMnZHeWhMYUd3dmpyNi9ka05LcVlaZWxa?=
 =?utf-8?B?ZmlmUy9tK2hJcFZpaUlKZ0xaeUlGeGNlT2FCTTQrbnBwL3RRRWNxUGJLV2pZ?=
 =?utf-8?B?THlOcDF1NjRja0Y0WkcxWFhCUXR4ZlZwVW4wKzNlYlFncUhMNFJ1WFJoWk9O?=
 =?utf-8?B?d29CWTVxcXJaWDExZ09ldlZxM2JkSWg4SmRSV1dONXFBRHU3Y0VZY0oxZVF4?=
 =?utf-8?B?ZTJ5WjRmRFl6NnloanBYellvZUhia1RJMm5FelVyN29YdHlJK1FTNXg5MTJX?=
 =?utf-8?B?Zm16MVhtVWpqUFZobDVKMWt4WGUxazRDRGNQSlNFbDNZOE9sYVZMd3pkL3BZ?=
 =?utf-8?B?L3pac1V0OVBkaHpHRjI4MHhTYk9aNFJVa0VsQW1CRGZaK244UnkrVmlOa1c5?=
 =?utf-8?B?TDBuZTE4QUM0blRoMDhoK1piTittdUFYMlNIeFVKNzQ0eENIb1JMbk1Kd2JX?=
 =?utf-8?B?YlFoaUFQMktuUk9ENHVxOWpFSnJlUVhnQTJNS0J0NGp0VFRJekkrVU9uV2pt?=
 =?utf-8?B?VlgrYm56MWc4RkRDa1RnSmJPam9qcG5KNGdnRWxlUGszMW5HakdQV05CZnd5?=
 =?utf-8?B?MUJXYmpkcnozK0xqckVSblBvZFJEa0pzU3FQL01CWXNIT3dEM0ZyU09weHFC?=
 =?utf-8?B?WDBtSXpBZzM3ZXkwTDRiWEZmU2FyQS9iQ2tyTmtFR3RrT3doTTBBYkc0dGNq?=
 =?utf-8?B?QU5EM09FVFdSL2VlaHRtRWZVS1dXTk42VGdBZmtQQXpldHNpbXhGVVBmUjJZ?=
 =?utf-8?B?ZHlQSkZLZ01FUjF5RStoVjluajhUT2hjSXZDSzhUWmZlcWJRZ3M4MU52UTNq?=
 =?utf-8?B?YzNLWFdGMngzcTZ3ZjNJTTBaeFhZZ09HblpRbHI3Mmk4R1FCWXh3V3ViYW9q?=
 =?utf-8?B?ZUF6bTdPYXlkb2ZNSDBMWjVWdkVwRTdxZUQyL3RnalVmcUJ3Y21QN1NveDcz?=
 =?utf-8?B?aDZGMkNQeDd6Z3g2eEpvMEh3ODJGcTJlTG81V2ZvQ25kMnM3emhIbXdlOVVI?=
 =?utf-8?B?Z0dnRENjTWhkVzFxbFBZZ0JPOW1wSXlFdGxHUzl4WUgvMHF3VENrOUR4RjdC?=
 =?utf-8?B?eVBKbmJNN3dlVmNBUXNJcWg0WGlTZldQYVFHSmlCWldicDcwaVU0Q3BYa1hR?=
 =?utf-8?B?VmFSU21vTGE2OUNOa3ROU1M3TUsxbkZDNGduajNoejZYRWZPNFl2R3JyQnhN?=
 =?utf-8?B?QlluUTd4RzR3Q0VIc1dmYU8vcDNMR2c4OWtxZml0Nyt5d08yZWlGMlpjOTI3?=
 =?utf-8?B?TFY4ZFJoUzA1c1JUOFpEM0o0U3dVcFFvMnp4ZElpUi94Nmt6ZDAwQ3dXQlFO?=
 =?utf-8?B?ZUQ4ZGltSWE2cnd0VE9iR3BIaC9yMk5Yc2pRZzBpVHVBS2dlQkJCdWVLWURz?=
 =?utf-8?B?YVFVOStNem1HWURqMms5R0ZJWEFma1JTQStiaVk1WWx4clQ3b3dpMXRlWG5W?=
 =?utf-8?B?ZmJTWm9KY0N0S1N5YXZRN2ZZOS9MTWN1Y0ErZEo1UHlYMmRLalc0dnlENnND?=
 =?utf-8?B?Q2c2WUdIM0F0RVM2MkZtMHI2eHg3Njd2VGtqVkEvYXhOM0crNzJMLy91cG9I?=
 =?utf-8?B?ZmhFenh2SSs0cmh6NVZBRDRldnJjV3FkQmlUelRMeXVEVytIMU83b2EzZU5m?=
 =?utf-8?B?dVFuUWZBakpMTndQM0Ywb2d2aEU3WnVjakRFTVlqaDRTc0tCY3JQRVRSY0g2?=
 =?utf-8?Q?Yey9gUBimuPH7uFdYuSOOUPHgMlMTTzoywBpXIE5fer/?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <2C80F31E73556146882423BACA66D0BE@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: 072f383e-45aa-483d-54e1-08dab0d14fb2
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Oct 2022 06:23:45.7775 (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: 4GgYppynSza4HMrkABkVJWgphuTCIXNuay7ov8pK7qp5zSsoC1dcNr2xG/p4Q7TnjIj4MbTh0J0hJb3UrOqSE5Il9JLupRYs0SJiFEAS9p3MehRpxo/NP8uNaLYc4jom
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRZP264MB2086
X-OriginatorOrg: groupe-cyllene.com
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.220 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 NICE_REPLY_A           -0.001 Looks like a legit reply (A)
 POISEN_SPAM_PILL          0.1 Meta: its spam
 POISEN_SPAM_PILL_1        0.1 random spam to be learned in bayes
 POISEN_SPAM_PILL_3        0.1 random spam to be learned in bayes
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an 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. [groupe-cyllene.com, qemu.pm, groupecyllene.onmicrosoft.com]
Subject: Re: [pve-devel] [PATCH v6 qemu-server 2/6] mtunnel: add API
 endpoints
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: Tue, 18 Oct 2022 06:23:51 -0000

SSB0aGluayBpdCdzIG1pc3NpbmcgY2xlYW5pbmcgb2Ygdm0gb24gcmVtb3RlIHN0b3JhZ2UsDQoN
CmlmIG1pZ3JhdGlvbiBpcyBhYm9ydGVkIG9uIHBoYXNlMSBvciBwaGFzZTIuDQoNCkl0IHNhZmUg
dG8gZGVsZXRlIHZtIGNvbmYgJiYgZGlzayBvbiByZW1vdGVob3N0IHVudGlsIHRoZSBlbmQgb2Yg
dGhlIHBoYXNlMiwNCndoZW4gZGlzayBhcmUgc3dpdGNoZWQuDQoNCg0KSWYgam9iIGlzIGFib3J0
ZWQsIEl0IHRyaWdnZXIgIm10dW5uZWwgZXhpdGVkIHVuZXhwZWN0ZWRseSIgb24gDQpyZW1vdGVo
b3N0LCB3aXRob3V0IGFueSBjbGVhbmluZy4NCihhbmQgZXZlbiBpbiBwaGFzZTJfY2xlYW51cCwg
cmVtb3RlaG9zdCBkb24ndCByZWNlaXZlIHRoZSAic3RvcCIgY29tbWFuZCANCmluIHRoZSB0dW5u
ZWwpDQoNCg0KDQpleGFtcGxlMToNCg0Kb24gcGhhc2UxLCBJIGhhZCBhIGhhbmdpbmcgc291cmNl
IHN0b3JhZ2UsIGFuZCB0aGUgam9iIHdhcyBoYW5pbmcgb24gDQpzY2FuX2xvY2FsX3ZvbHVtZXMo
KS4NCg0KSSBoYXZlIG1hbnVhbGx5IGFib3J0ZWQgdGhlIGpvYi4NCg0Kb24gc291cmNlOg0KIjIw
MjItMTAtMTggMDY6MDA6MjUgbG9jYWwgV1MgdHVubmVsIHZlcnNpb246IDINCjIwMjItMTAtMTgg
MDY6MDA6MjUgcmVtb3RlIFdTIHR1bm5lbCB2ZXJzaW9uOiAyDQoyMDIyLTEwLTE4IDA2OjAwOjI1
IG1pbmltdW0gcmVxdWlyZWQgV1MgdHVubmVsIHZlcnNpb246IDINCndlYnNvY2tldCB0dW5uZWwg
c3RhcnRlZA0KMjAyMi0xMC0xOCAwNjowMDoyNSBzdGFydGluZyBtaWdyYXRpb24gb2YgVk0gMTEx
IHRvIG5vZGUgJ2Zvcm1hdGlvbmt2bTEnIA0KKDEwLjMuOTQuMTApDQp0dW5uZWw6IC0+IHNlbmRp
bmcgY29tbWFuZCAiYndsaW1pdCIgdG8gcmVtb3RlDQp0dW5uZWw6IDwtIGdvdCByZXBseQ0KQ01E
IHdlYnNvY2tldCB0dW5uZWwgZGllZDogY29tbWFuZCAncHJveG1veC13ZWJzb2NrZXQtdHVubmVs
JyBmYWlsZWQ6IA0KaW50ZXJydXB0ZWQgYnkgc2lnbmFsDQoNCjIwMjItMTAtMTggMDY6MDI6MDMg
RVJST1I6IFByb2JsZW0gZm91bmQgd2hpbGUgc2Nhbm5pbmcgdm9sdW1lcyAtIHJiZCANCmVycm9y
OiBpbnRlcnJ1cHRlZCBieSBzaWduYWwNCjIwMjItMTAtMTggMDY6MDI6MDMgYWJvcnRpbmcgcGhh
c2UgMSAtIGNsZWFudXAgcmVzb3VyY2VzDQoyMDIyLTEwLTE4IDA2OjAyOjA0IEVSUk9SOiB3cml0
aW5nIHRvIHR1bm5lbCBmYWlsZWQ6IGJyb2tlbiBwaXBlDQoyMDIyLTEwLTE4IDA2OjAyOjA0IEVS
Uk9SOiBtaWdyYXRpb24gYWJvcnRlZCAoZHVyYXRpb24gMDA6MDE6MzkpOiANClByb2JsZW0gZm91
bmQgd2hpbGUgc2Nhbm5pbmcgdm9sdW1lcyAtIHJiZCBlcnJvcjogaW50ZXJydXB0ZWQgYnkgc2ln
bmFsDQoiDQoNCg0Kb24gcmVtb3RlIGhvc3Q6DQoNCiINCm10dW5uZWwgc3RhcnRlZA0KcmVjZWl2
ZWQgY29tbWFuZCAndmVyc2lvbicNClRBU0sgRVJST1I6IG10dW5uZWwgZXhpdGVkIHVuZXhwZWN0
ZWRseQ0KIg0Kd2l0aCBhIGxvY2sgb24gdGhlIHZtIGNvbmZpZy4gKG5vIGRpc2sgY3JlYXRlZCB5
ZXQpLg0KDQoNCg0KDQoNCmV4YW1wbGUyOg0KbWFudWFsbHkgYWJvcnQgam9iIHdoZW4gZGlzayB0
cmFuc2ZlcnQgaXMgcnVubmluZw0KDQoNCm9uIHNvdXJjZToNCiINCnR1bm5lbDogLT4gc2VuZGlu
ZyBjb21tYW5kICJ2ZXJzaW9uIiB0byByZW1vdGUNCnR1bm5lbDogPC0gZ290IHJlcGx5DQoyMDIy
LTEwLTE4IDA2OjM1OjQ3IGxvY2FsIFdTIHR1bm5lbCB2ZXJzaW9uOiAyDQoyMDIyLTEwLTE4IDA2
OjM1OjQ3IHJlbW90ZSBXUyB0dW5uZWwgdmVyc2lvbjogMg0KMjAyMi0xMC0xOCAwNjozNTo0NyBt
aW5pbXVtIHJlcXVpcmVkIFdTIHR1bm5lbCB2ZXJzaW9uOiAyDQp3ZWJzb2NrZXQgdHVubmVsIHN0
YXJ0ZWQNCjIwMjItMTAtMTggMDY6MzU6NDcgc3RhcnRpbmcgbWlncmF0aW9uIG9mIFZNIDExMSB0
byBub2RlICdmb3JtYXRpb25rdm0xJyANCigxMC4zLjk0LjEwKQ0KdG90byBtb25wYnMNCnRvdG8g
cmVwbGljYXQyeA0KdHVubmVsOiAtPiBzZW5kaW5nIGNvbW1hbmQgImJ3bGltaXQiIHRvIHJlbW90
ZQ0KdHVubmVsOiA8LSBnb3QgcmVwbHkNCg0KMjAyMi0xMC0xOCAwNjozNTo0OCBmb3VuZCBsb2Nh
bCBkaXNrICdyZXBsaWNhdDJ4OnZtLTExMS1kaXNrLTAnIChpbiANCmN1cnJlbnQgVk0gY29uZmln
KQ0KMjAyMi0xMC0xOCAwNjozNTo0OCBtYXBwZWQ6IG5ldDAgZnJvbSB2bWJyMCB0byB2bWJyMA0K
MjAyMi0xMC0xOCAwNjozNTo0OCBtYXBwZWQ6IG5ldDEgZnJvbSB2bWJyMCB0byB2bWJyMA0KMjAy
Mi0xMC0xOCAwNjozNTo0OCBBbGxvY2F0aW5nIHZvbHVtZSBmb3IgZHJpdmUgJ3Njc2kwJyBvbiBy
ZW1vdGUgDQpzdG9yYWdlICdsb2NhbC1sdm0nLi4NCnR1bm5lbDogLT4gc2VuZGluZyBjb21tYW5k
ICJkaXNrIiB0byByZW1vdGUNCnR1bm5lbDogPC0gZ290IHJlcGx5DQoyMDIyLTEwLTE4IDA2OjM1
OjQ5IHZvbHVtZSAncmVwbGljYXQyeDp2bS0xMTEtZGlzay0wJyBpcyANCidsb2NhbC1sdm06dm0t
MTAwMDUtZGlzay0wJyBvbiB0aGUgdGFyZ2V0DQp0dW5uZWw6IC0+IHNlbmRpbmcgY29tbWFuZCAi
Y29uZmlnIiB0byByZW1vdGUNCnR1bm5lbDogPC0gZ290IHJlcGx5DQp0dW5uZWw6IC0+IHNlbmRp
bmcgY29tbWFuZCAic3RhcnQiIHRvIHJlbW90ZQ0KdHVubmVsOiA8LSBnb3QgcmVwbHkNCjIwMjIt
MTAtMTggMDY6MzU6NTIgU2V0dGluZyB1cCB0dW5uZWwgZm9yICcvcnVuL3FlbXUtc2VydmVyLzEx
MS5taWdyYXRlJw0KMjAyMi0xMC0xOCAwNjozNTo1MiBTZXR0aW5nIHVwIHR1bm5lbCBmb3IgJy9y
dW4vcWVtdS1zZXJ2ZXIvMTExX25iZC5taWdyYXRlJw0KMjAyMi0xMC0xOCAwNjozNTo1MiBzdGFy
dGluZyBzdG9yYWdlIG1pZ3JhdGlvbg0KMjAyMi0xMC0xOCAwNjozNTo1MiBzY3NpMDogc3RhcnQg
bWlncmF0aW9uIHRvIA0KbmJkOnVuaXg6L3J1bi9xZW11LXNlcnZlci8xMTFfbmJkLm1pZ3JhdGU6
ZXhwb3J0bmFtZT1kcml2ZS1zY3NpMA0KZHJpdmUgbWlycm9yIGlzIHN0YXJ0aW5nIGZvciBkcml2
ZS1zY3NpMA0KdHVubmVsOiBhY2NlcHRlZCBuZXcgY29ubmVjdGlvbiBvbiAnL3J1bi9xZW11LXNl
cnZlci8xMTFfbmJkLm1pZ3JhdGUnDQp0dW5uZWw6IHJlcXVlc3RpbmcgV1MgdGlja2V0IHZpYSB0
dW5uZWwNCnR1bm5lbDogZXN0YWJsaXNoZWQgbmV3IFdTIGZvciBmb3J3YXJkaW5nICcvcnVuL3Fl
bXUtc2VydmVyLzExMV9uYmQubWlncmF0ZScNCmRyaXZlLXNjc2kwOiB0cmFuc2ZlcnJlZCAwLjAg
QiBvZiAzMi4wIEdpQiAoMC4wMCUpIGluIDBzDQpkcml2ZS1zY3NpMDogdHJhbnNmZXJyZWQgMTAx
LjAgTWlCIG9mIDMyLjAgR2lCICgwLjMxJSkgaW4gMXMNCmRyaXZlLXNjc2kwOiB0cmFuc2ZlcnJl
ZCAyMDkuMCBNaUIgb2YgMzIuMCBHaUIgKDAuNjQlKSBpbiAycw0KZHJpdmUtc2NzaTA6IHRyYW5z
ZmVycmVkIDMxOC4wIE1pQiBvZiAzMi4wIEdpQiAoMC45NyUpIGluIDNzDQpkcml2ZS1zY3NpMDog
dHJhbnNmZXJyZWQgNDI4LjAgTWlCIG9mIDMyLjAgR2lCICgxLjMxJSkgaW4gNHMNCg0KZHJpdmUt
c2NzaTA6IENhbmNlbGxpbmcgYmxvY2sgam9iDQpDTUQgd2Vic29ja2V0IHR1bm5lbCBkaWVkOiBj
b21tYW5kICdwcm94bW94LXdlYnNvY2tldC10dW5uZWwnIGZhaWxlZDogDQppbnRlcnJ1cHRlZCBi
eSBzaWduYWwNCg0KZHJpdmUtc2NzaTA6IERvbmUuDQoyMDIyLTEwLTE4IDA2OjM2OjMxIEVSUk9S
OiBvbmxpbmUgbWlncmF0ZSBmYWlsdXJlIC0gYmxvY2sgam9iIChtaXJyb3IpIA0KZXJyb3I6IGlu
dGVycnVwdGVkIGJ5IHNpZ25hbA0KMjAyMi0xMC0xOCAwNjozNjozMSBhYm9ydGluZyBwaGFzZSAy
IC0gY2xlYW51cCByZXNvdXJjZXMNCjIwMjItMTAtMTggMDY6MzY6MzEgbWlncmF0ZV9jYW5jZWwN
CjIwMjItMTAtMTggMDY6MzY6MzEgRVJST1I6IHdyaXRpbmcgdG8gdHVubmVsIGZhaWxlZDogYnJv
a2VuIHBpcGUNCjIwMjItMTAtMTggMDY6MzY6MzEgRVJST1I6IG1pZ3JhdGlvbiBmaW5pc2hlZCB3
aXRoIHByb2JsZW1zIChkdXJhdGlvbiANCjAwOjAwOjQ0KQ0KDQpUQVNLIEVSUk9SOiBtaWdyYXRp
b24gcHJvYmxlbXMNCiINCg0Kb24gcmVtb3RlIGhvc3Q6DQoiDQptdHVubmVsIHN0YXJ0ZWQNCnJl
Y2VpdmVkIGNvbW1hbmQgJ3ZlcnNpb24nDQpyZWNlaXZlZCBjb21tYW5kICdid2xpbWl0Jw0KcmVj
ZWl2ZWQgY29tbWFuZCAnZGlzaycNCiAgIFdBUk5JTkc6IFlvdSBoYXZlIG5vdCB0dXJuZWQgb24g
cHJvdGVjdGlvbiBhZ2FpbnN0IHRoaW4gcG9vbHMgcnVubmluZyANCm91dCBvZiBzcGFjZS4NCiAg
IFdBUk5JTkc6IFNldCBhY3RpdmF0aW9uL3RoaW5fcG9vbF9hdXRvZXh0ZW5kX3RocmVzaG9sZCBi
ZWxvdyAxMDAgdG8gDQp0cmlnZ2VyIGF1dG9tYXRpYyBleHRlbnNpb24gb2YgdGhpbiBwb29scyBi
ZWZvcmUgdGhleSBnZXQgZnVsbC4NCiAgIExvZ2ljYWwgdm9sdW1lICJ2bS0xMDAwNS1kaXNrLTAi
IGNyZWF0ZWQuDQogICBXQVJOSU5HOiBTdW0gb2YgYWxsIHRoaW4gdm9sdW1lIHNpemVzICg2OS4w
MCBHaUIpIGV4Y2VlZHMgdGhlIHNpemUgb2YgDQp0aGluIHBvb2wgcHZlL2RhdGEgYW5kIHRoZSBh
bW91bnQgb2YgZnJlZSBzcGFjZSBpbiB2b2x1bWUgZ3JvdXAgKDEzLjg3IEdpQikuDQpyZWNlaXZl
ZCBjb21tYW5kICdjb25maWcnDQp1cGRhdGUgVk0gMTAwMDU6IC1ib290IG9yZGVyPXNjc2kwO2lk
ZTI7bmV0MCAtY29yZXMgNCAtaWRlMiANCm5vbmUsbWVkaWE9Y2Ryb20gLW1hY2hpbmUgcGMtaTQ0
MGZ4LTYuMiAtbWVtb3J5IDIwNDggLW5hbWUgZGViaWFuOCAtbmV0MCANCnZpcnRpbz01RTo1NzpD
NzowMTpDQjpGQyxicmlkZ2U9dm1icjAsZmlyZXdhbGw9MSxxdWV1ZXM9Mix0YWc9OTQgLW5ldDEg
DQp2aXJ0aW89NUU6NTc6Qzc6MDE6Q0I6RkUsYnJpZGdlPXZtYnIwLGZpcmV3YWxsPTEscXVldWVz
PTIsdGFnPTk0IC1udW1hIDAgDQotb3N0eXBlIGwyNiAtc2NzaTAgbG9jYWwtbHZtOnZtLTEwMDA1
LWRpc2stMCxmb3JtYXQ9cmF3LHNpemU9MzJHIC1zY3NpaHcgDQp2aXJ0aW8tc2NzaS1wY2kgLXNt
YmlvczEgdXVpZD01YmQ2OGJjOC1jMGZkLTRmNTAtOTY0OS1mNzhhOGY4MDVlNGMgDQotc29ja2V0
cyAyDQpyZWNlaXZlZCBjb21tYW5kICdzdGFydCcNCm1pZ3JhdGlvbiBsaXN0ZW5zIG9uIHVuaXg6
L3J1bi9xZW11LXNlcnZlci8xMDAwNS5taWdyYXRlDQpzdG9yYWdlIG1pZ3JhdGlvbiBsaXN0ZW5z
IG9uIA0KbmJkOnVuaXg6L3J1bi9xZW11LXNlcnZlci8xMDAwNV9uYmQubWlncmF0ZTpleHBvcnRu
YW1lPWRyaXZlLXNjc2kwIA0Kdm9sdW1lOmxvY2FsLWx2bTp2bS0xMDAwNS1kaXNrLTAsZm9ybWF0
PXJhdyxzaXplPTMyRw0KcmVjZWl2ZWQgY29tbWFuZCAndGlja2V0Jw0KVEFTSyBFUlJPUjogbXR1
bm5lbCBleGl0ZWQgdW5leHBlY3RlZGx5DQoiDQoNCndpdGggYSBsb2NrIG9uIHRoZSB2bWNvbmZp
ZyBpbiBtaWdyYXRlIHN0YXRlLg0KDQoNCkxlIDI4LzA5LzIyIMOgIDE0OjUwLCBGYWJpYW4gR3LD
vG5iaWNobGVyIGEgw6ljcml0wqA6DQo+IHRoZSBmb2xsb3dpbmcgdHdvIGVuZHBvaW50cyBhcmUg
dXNlZCBmb3IgbWlncmF0aW9uIG9uIHRoZSByZW1vdGUgc2lkZQ0KPiANCj4gUE9TVCAvbm9kZXMv
Tk9ERS9xZW11L1ZNSUQvbXR1bm5lbA0KPiANCj4gd2hpY2ggY3JlYXRlcyBhbmQgbG9ja3MgYW4g
ZW1wdHkgVk0gY29uZmlnLCBhbmQgc3Bhd25zIHRoZSBtYWluIHFtdHVubmVsDQo+IHdvcmtlciB3
aGljaCBiaW5kcyB0byBhIFZNLXNwZWNpZmljIFVOSVggc29ja2V0Lg0KPiANCj4gdGhpcyB3b3Jr
ZXIgaGFuZGxlcyBKU09OLWVuY29kZWQgbWlncmF0aW9uIGNvbW1hbmRzIGNvbWluZyBpbiB2aWEg
dGhpcw0KPiBVTklYIHNvY2tldDoNCj4gLSBjb25maWcgKHNldCB0YXJnZXQgVk0gY29uZmlnKQ0K
PiAtLSBjaGVja3MgcGVybWlzc2lvbnMgZm9yIHVwZGF0aW5nIGNvbmZpZw0KPiAtLSBzdHJpcHMg
cGVuZGluZyBjaGFuZ2VzIGFuZCBzbmFwc2hvdHMNCj4gLS0gc2V0cyAob3B0aW9uYWwpIGZpcmV3
YWxsIGNvbmZpZw0KPiAtIGRpc2sgKGFsbG9jYXRlIGRpc2sgZm9yIE5CRCBtaWdyYXRpb24pDQo+
IC0tIGNoZWNrcyBwZXJtaXNzaW9uIGZvciB0YXJnZXQgc3RvcmFnZQ0KPiAtLSByZXR1cm5zIGRy
aXZlIHN0cmluZyBmb3IgYWxsb2NhdGVkIHZvbHVtZQ0KPiAtIGRpc2staW1wb3J0LCBxdWVyeS1k
aXNrLWltcG9ydCwgYndsaW1pdA0KPiAtLSBoYW5kbGVkIGJ5IFBWRTo6U3RvcmFnZVR1bm5lbA0K
PiAtIHN0YXJ0IChyZXR1cm5pbmcgbWlncmF0aW9uIGluZm8pDQo+IC0gZnN0cmltICh2aWEgYWdl
bnQpDQo+IC0gdGlja2V0IChjcmVhdGVzIGEgdGlja2V0IGZvciBhIFdTIGNvbm5lY3Rpb24gdG8g
YSBzcGVjaWZpYyBzb2NrZXQpDQo+IC0gcmVzdW1lDQo+IC0gc3RvcA0KPiAtIG5iZHN0b3ANCj4g
LSB1bmxvY2sNCj4gLSBxdWl0ICgrIGNsZWFudXApDQo+IA0KPiB0aGlzIHdvcmtlciBzZXJ2ZXMg
YXMgYSByZXBsYWNlbWVudCBmb3IgYm90aCAncW0gbXR1bm5lbCcgYW5kIHZhcmlvdXMNCj4gbWFu
dWFsIGNhbGxzIHZpYSBTU0guIHRoZSBBUEkgY2FsbCB3aWxsIHJldHVybiBhIHRpY2tldCB2YWxp
ZCBmb3INCj4gY29ubmVjdGluZyB0byB0aGUgd29ya2VyJ3MgVU5JWCBzb2NrZXQgdmlhIGEgd2Vi
c29ja2V0IGNvbm5lY3Rpb24uDQo+IA0KPiBHRVQrV2ViU29ja2V0IHVwZ3JhZGUgL25vZGVzL05P
REUvcWVtdS9WTUlEL210dW5uZWx3ZWJzb2NrZXQNCj4gDQo+IGdldHMgY2FsbGVkIGZvciBjb25u
ZWN0aW5nIHRvIGEgVU5JWCBzb2NrZXQgdmlhIHdlYnNvY2tldCBmb3J3YXJkaW5nLA0KPiBpLmUu
IG9uY2UgZm9yIHRoZSBtYWluIGNvbW1hbmQgbXR1bm5lbCwgYW5kIG9uY2UgZWFjaCBmb3IgdGhl
IG1lbW9yeQ0KPiBtaWdyYXRpb24gYW5kIGVhY2ggTkJEIGRyaXZlLW1pcnJvci9zdG9yYWdlIG1p
Z3JhdGlvbi4NCj4gDQo+IGFjY2VzcyBpcyBndWFyZGVkIGJ5IGEgc2hvcnQtbGl2ZWQgdGlja2V0
IGJpbmRpbmcgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlcg0KPiB0byB0aGUgc29ja2V0IHBhdGguIHN1
Y2ggdGlja2V0cyBjYW4gYmUgcmVxdWVzdGVkIG92ZXIgdGhlIG1haW4gbXR1bm5lbCwNCj4gd2hp
Y2gga2VlcHMgdHJhY2sgb2Ygc29ja2V0IHBhdGhzIGN1cnJlbnRseSB1c2VkIGJ5IHRoYXQNCj4g
bXR1bm5lbC9taWdyYXRpb24gaW5zdGFuY2UuDQo+IA0KPiBlYWNoIGNvbW1hbmQgaGFuZGxlciBz
aG91bGQgY2hlY2sgcHJpdmlsZWdlcyBmb3IgdGhlIHJlcXVlc3RlZCBhY3Rpb24gaWYNCj4gbmVj
ZXNzYXJ5Lg0KPiANCj4gYm90aCBtdHVubmVsIGFuZCBtdHVubmVsd2Vic29ja2V0IGVuZHBvaW50
cyBhcmUgbm90IHByb3hpZWQsIHRoZQ0KPiBjbGllbnQvY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZv
ciBlbnN1cmluZyB0aGUgcGFzc2VkICdub2RlJyBwYXJhbWV0ZXINCj4gYW5kIHRoZSBlbmRwb2lu
dCBoYW5kbGluZyB0aGUgY2FsbCBhcmUgbWF0Y2hpbmcuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBG
YWJpYW4gR3LDvG5iaWNobGVyIDxmLmdydWVuYmljaGxlckBwcm94bW94LmNvbT4NCj4gLS0tDQo+
IA0KPiBOb3RlczoNCj4gICAgICB2NjoNCj4gICAgICAtIGNoZWNrIGZvciBTeXMuSW5jb21pbmcg
aW4gbXR1bm5lbA0KPiAgICAgIC0gYWRkIGRlZmluZWRuZXNzIGNoZWNrcyBpbiAnY29uZmlnJyBj
b21tYW5kDQo+ICAgICAgLSBzd2l0Y2ggdG8gdm1fcnVubmluZ19sb2NhbGx5IGluICdyZXN1bWUn
IGNvbW1hbmQNCj4gICAgICAtIG1vdmVkICRzb2NrZXRfYWRkciBjbG9zZXIgdG8gdXNhZ2UNCj4g
ICAgICB2NToNCj4gICAgICAtIHVzIHZtX3J1bm5pbmdfbG9jYWxseQ0KPiAgICAgIC0gbW92ZSAn
JHNvY2tldF9hZGRyJyBkZWNsYXJhdGlvbiBjbG9zZXIgdG8gdXNhZ2UNCj4gICAgICB2NDoNCj4g
ICAgICAtIGFkZCB0aW1lb3V0IHRvIGFjY2VwdCgpDQo+ICAgICAgLSBtb3ZlICdid2xpbWl0JyB0
byBQVkU6OlN0b3JhZ2VUdW5uZWwgYW5kIGV4dGVuZCBpdA0KPiAgICAgIC0gbWFyayBtdHVubmVs
KHdlYnNvY2tldCkgYXMgbm9uLXByb3hpZWQsIGFuZCBjaGVjayAkbm9kZSBhY2NvcmRpbmdseQ0K
PiAgICAgIHYzOg0KPiAgICAgIC0gaGFuZGxlIG1ldGEgYW5kIHZtZ2VuaWQgYmV0dGVyDQo+ICAg
ICAgLSBoYW5kbGUgZmFpbHVyZSBvZiAnY29uZmlnJyB1cGRhdGluZw0KPiAgICAgIC0gbW92ZSAn
ZGlzay1pbXBvcnQnIGFuZCAncXVlcnktZGlzay1pbXBvcnQnIGhhbmRsZXJzIHRvIHB2ZS1ndWVz
dC1jb21tb24NCj4gICAgICAtIGltcHJvdmUgdHVubmVsIGV4aXQgYnkgbGV0dGluZyBjbGllbnQg
Y2xvc2UgdGhlIGNvbm5lY3Rpb24NCj4gICAgICAtIHVzZSBzdHJpY3QgVk0gY29uZmlnIHBhcnNl
cg0KPiAgICAgIHYyOiBpbmNvcnBvcmF0ZWQgRmFiaWFuIEVibmVyJ3MgZmVlZGJhY2ssIG1haW5s
eToNCj4gICAgICAtIHVzZSBtb2RpZmllZCBuYmQgYWxsb2MgaGVscGVyIGluc3RlYWQgb2YgZHVw
bGljYXRpbmcNCj4gICAgICAtIGZpeCBkaXNrIGNsZWFudXAsIGFsc28gY2xlYW51cCBpbXBvcnRl
ZCBkaXNrcw0KPiAgICAgIC0gZml4IGZpcmV3YWxsLWNvbmYgdnMgZmlyZXdhbGwtY29uZmlnIG1p
c21hdGNoDQo+ICAgICAgDQo+ICAgICAgcmVxdWlyZXMNCj4gICAgICAtIHB2ZS1hY2Nlc3MtY29u
dHJvbCB3aXRoIHR1bm5lbCB0aWNrZXQgc3VwcG9ydCAoYWxyZWFkeSBtYXJrZWQgaW4gZC9jb250
cm9sKQ0KPiAgICAgIC0gcHZlLWFjY2Vzcy1jb250cm9sIHdpdGggU3lzLkluY29taW5nIHByaXZp
bGVnZSAobm90IHlldCBhcHBsaWVkL2J1bXBlZCEpDQo+ICAgICAgLSBwdmUtaHR0cC1zZXJ2ZXIg
d2l0aCB3ZWJzb2NrZXQgZml4ZXMgKGNvdWxkIGJlIGRvbmUgdmlhIGJyZWFrcz8gb3IgYnVtcGVk
IGluDQo+ICAgICAgICBwdmUtbWFuYWdlci4uKQ0KPiANCj4gICBQVkUvQVBJMi9RZW11LnBtIHwg
NTI3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystDQo+ICAg
ZGViaWFuL2NvbnRyb2wgICB8ICAgMiArLQ0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgNTI3IGluc2Vy
dGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvUFZFL0FQSTIvUWVt
dS5wbSBiL1BWRS9BUEkyL1FlbXUucG0NCj4gaW5kZXggM2VjMzFjMjYuLjkyNzBjYTc0IDEwMDY0
NA0KPiAtLS0gYS9QVkUvQVBJMi9RZW11LnBtDQo+ICsrKyBiL1BWRS9BUEkyL1FlbXUucG0NCj4g
QEAgLTQsMTAgKzQsMTMgQEAgdXNlIHN0cmljdDsNCj4gICB1c2Ugd2FybmluZ3M7DQo+ICAgdXNl
IEN3ZCAnYWJzX3BhdGgnOw0KPiAgIHVzZSBOZXQ6OlNTTGVheTsNCj4gLXVzZSBQT1NJWDsNCj4g
ICB1c2UgSU86OlNvY2tldDo6SVA7DQo+ICt1c2UgSU86OlNvY2tldDo6VU5JWDsNCj4gK3VzZSBJ
UEM6Ok9wZW4zOw0KPiArdXNlIEpTT047DQo+ICAgdXNlIFVSSTo6RXNjYXBlOw0KPiAgIHVzZSBD
cnlwdDo6T3BlblNTTDo6UmFuZG9tOw0KPiArdXNlIFNvY2tldCBxdyhTT0NLX1NUUkVBTSk7DQo+
ICAgDQo+ICAgdXNlIFBWRTo6Q2x1c3RlciBxdyAoY2ZzX3JlYWRfZmlsZSBjZnNfd3JpdGVfZmls
ZSk7Ow0KPiAgIHVzZSBQVkU6OlJSRDsNCj4gQEAgLTM4LDYgKzQxLDcgQEAgdXNlIFBWRTo6VlpE
dW1wOjpQbHVnaW47DQo+ICAgdXNlIFBWRTo6RGF0YUNlbnRlckNvbmZpZzsNCj4gICB1c2UgUFZF
OjpTU0hJbmZvOw0KPiAgIHVzZSBQVkU6OlJlcGxpY2F0aW9uOw0KPiArdXNlIFBWRTo6U3RvcmFn
ZVR1bm5lbDsNCj4gICANCj4gICBCRUdJTiB7DQo+ICAgICAgIGlmICghJEVOVntQVkVfR0VORVJB
VElOR19ET0NTfSkgew0KPiBAQCAtMTA4Nyw2ICsxMDkxLDcgQEAgX19QQUNLQUdFX18tPnJlZ2lz
dGVyX21ldGhvZCh7DQo+ICAgCSAgICB7IHN1YmRpciA9PiAnc3BpY2Vwcm94eScgfSwNCj4gICAJ
ICAgIHsgc3ViZGlyID0+ICdzZW5ka2V5JyB9LA0KPiAgIAkgICAgeyBzdWJkaXIgPT4gJ2ZpcmV3
YWxsJyB9LA0KPiArCSAgICB7IHN1YmRpciA9PiAnbXR1bm5lbCcgfSwNCj4gICAJICAgIF07DQo+
ICAgDQo+ICAgCXJldHVybiAkcmVzOw0KPiBAQCAtNDk2NSw0ICs0OTcwLDUyNCBAQCBfX1BBQ0tB
R0VfXy0+cmVnaXN0ZXJfbWV0aG9kKHsNCj4gICAJcmV0dXJuIFBWRTo6UWVtdVNlcnZlcjo6Q2xv
dWRpbml0OjpkdW1wX2Nsb3VkaW5pdF9jb25maWcoJGNvbmYsICRwYXJhbS0+e3ZtaWR9LCAkcGFy
YW0tPnt0eXBlfSk7DQo+ICAgICAgIH19KTsNCj4gICANCj4gK19fUEFDS0FHRV9fLT5yZWdpc3Rl
cl9tZXRob2Qoew0KPiArICAgIG5hbWUgPT4gJ210dW5uZWwnLA0KPiArICAgIHBhdGggPT4gJ3t2
bWlkfS9tdHVubmVsJywNCj4gKyAgICBtZXRob2QgPT4gJ1BPU1QnLA0KPiArICAgIHByb3RlY3Rl
ZCA9PiAxLA0KPiArICAgIGRlc2NyaXB0aW9uID0+ICdNaWdyYXRpb24gdHVubmVsIGVuZHBvaW50
IC0gb25seSBmb3IgaW50ZXJuYWwgdXNlIGJ5IFZNIG1pZ3JhdGlvbi4nLA0KPiArICAgIHBlcm1p
c3Npb25zID0+IHsNCj4gKwljaGVjayA9Pg0KPiArCVsgJ2FuZCcsDQo+ICsJICBbJ3Blcm0nLCAn
L3Ztcy97dm1pZH0nLCBbICdWTS5BbGxvY2F0ZScgXV0sDQo+ICsJICBbJ3Blcm0nLCAnLycsIFsg
J1N5cy5JbmNvbWluZycgXV0sDQo+ICsJXSwNCj4gKwlkZXNjcmlwdGlvbiA9PiAiWW91IG5lZWQg
J1ZNLkFsbG9jYXRlJyBwZXJtaXNzaW9ucyBvbiAnL3Ztcy97dm1pZH0nIGFuZCBTeXMuSW5jb21p
bmciIC4NCj4gKwkgICAgICAgICAgICAgICAiIG9uICcvJy4gRnVydGhlciBwZXJtaXNzaW9uIGNo
ZWNrcyBoYXBwZW4gZHVyaW5nIHRoZSBhY3R1YWwgbWlncmF0aW9uLiIsDQo+ICsgICAgfSwNCj4g
KyAgICBwYXJhbWV0ZXJzID0+IHsNCj4gKwlhZGRpdGlvbmFsUHJvcGVydGllcyA9PiAwLA0KPiAr
CXByb3BlcnRpZXMgPT4gew0KPiArCSAgICBub2RlID0+IGdldF9zdGFuZGFyZF9vcHRpb24oJ3B2
ZS1ub2RlJyksDQo+ICsJICAgIHZtaWQgPT4gZ2V0X3N0YW5kYXJkX29wdGlvbigncHZlLXZtaWQn
KSwNCj4gKwkgICAgc3RvcmFnZXMgPT4gew0KPiArCQl0eXBlID0+ICdzdHJpbmcnLA0KPiArCQlm
b3JtYXQgPT4gJ3B2ZS1zdG9yYWdlLWlkLWxpc3QnLA0KPiArCQlvcHRpb25hbCA9PiAxLA0KPiAr
CQlkZXNjcmlwdGlvbiA9PiAnTGlzdCBvZiBzdG9yYWdlcyB0byBjaGVjayBwZXJtaXNzaW9uIGFu
ZCBhdmFpbGFiaWxpdHkuIFdpbGwgYmUgY2hlY2tlZCBhZ2FpbiBmb3IgYWxsIGFjdHVhbGx5IHVz
ZWQgc3RvcmFnZXMgZHVyaW5nIG1pZ3JhdGlvbi4nLA0KPiArCSAgICB9LA0KPiArCX0sDQo+ICsg
ICAgfSwNCj4gKyAgICByZXR1cm5zID0+IHsNCj4gKwlhZGRpdGlvbmFsUHJvcGVydGllcyA9PiAw
LA0KPiArCXByb3BlcnRpZXMgPT4gew0KPiArCSAgICB1cGlkID0+IHsgdHlwZSA9PiAnc3RyaW5n
JyB9LA0KPiArCSAgICB0aWNrZXQgPT4geyB0eXBlID0+ICdzdHJpbmcnIH0sDQo+ICsJICAgIHNv
Y2tldCA9PiB7IHR5cGUgPT4gJ3N0cmluZycgfSwNCj4gKwl9LA0KPiArICAgIH0sDQo+ICsgICAg
Y29kZSA9PiBzdWIgew0KPiArCW15ICgkcGFyYW0pID0gQF87DQo+ICsNCj4gKwlteSAkcnBjZW52
ID0gUFZFOjpSUENFbnZpcm9ubWVudDo6Z2V0KCk7DQo+ICsJbXkgJGF1dGh1c2VyID0gJHJwY2Vu
di0+Z2V0X3VzZXIoKTsNCj4gKw0KPiArCW15ICRub2RlID0gZXh0cmFjdF9wYXJhbSgkcGFyYW0s
ICdub2RlJyk7DQo+ICsJbXkgJHZtaWQgPSBleHRyYWN0X3BhcmFtKCRwYXJhbSwgJ3ZtaWQnKTsN
Cj4gKw0KPiArCW15ICRzdG9yYWdlcyA9IGV4dHJhY3RfcGFyYW0oJHBhcmFtLCAnc3RvcmFnZXMn
KTsNCj4gKw0KPiArCW15ICRub2RlbmFtZSA9IFBWRTo6SU5vdGlmeTo6bm9kZW5hbWUoKTsNCj4g
Kw0KPiArCXJhaXNlX3BhcmFtX2V4Yyh7IG5vZGUgPT4gIm5vZGUgbmVlZHMgdG8gYmUgJ2xvY2Fs
aG9zdCcgb3IgbG9jYWwgaG9zdG5hbWUgJyRub2RlbmFtZSciIH0pDQo+ICsJICAgIGlmICRub2Rl
IG5lICdsb2NhbGhvc3QnICYmICRub2RlIG5lICRub2RlbmFtZTsNCj4gKw0KPiArCSRub2RlID0g
JG5vZGVuYW1lOw0KPiArDQo+ICsJbXkgJHN0b3JlY2ZnID0gUFZFOjpTdG9yYWdlOjpjb25maWco
KTsNCj4gKwlmb3JlYWNoIG15ICRzdG9yZWlkIChQVkU6OlRvb2xzOjpzcGxpdF9saXN0KCRzdG9y
YWdlcykpIHsNCj4gKwkgICAgJGNoZWNrX3N0b3JhZ2VfYWNjZXNzX21pZ3JhdGUtPigkcnBjZW52
LCAkYXV0aHVzZXIsICRzdG9yZWNmZywgJHN0b3JlaWQsICRub2RlKTsNCj4gKwl9DQo+ICsNCj4g
KwlQVkU6OkNsdXN0ZXI6OmNoZWNrX2Nmc19xdW9ydW0oKTsNCj4gKw0KPiArCW15ICRsb2NrID0g
J2NyZWF0ZSc7DQo+ICsJZXZhbCB7IFBWRTo6UWVtdUNvbmZpZy0+Y3JlYXRlX2FuZF9sb2NrX2Nv
bmZpZygkdm1pZCwgMCwgJGxvY2spOyB9Ow0KPiArDQo+ICsJcmFpc2VfcGFyYW1fZXhjKHsgdm1p
ZCA9PiAidW5hYmxlIHRvIGNyZWF0ZSBlbXB0eSBWTSBjb25maWcgLSAkQCJ9KQ0KPiArCSAgICBp
ZiAkQDsNCj4gKw0KPiArCW15ICRyZWFsY21kID0gc3ViIHsNCj4gKwkgICAgbXkgJHN0YXRlID0g
ew0KPiArCQlzdG9yZWNmZyA9PiBQVkU6OlN0b3JhZ2U6OmNvbmZpZygpLA0KPiArCQlsb2NrID0+
ICRsb2NrLA0KPiArCQl2bWlkID0+ICR2bWlkLA0KPiArCSAgICB9Ow0KPiArDQo+ICsJICAgIG15
ICRydW5fbG9ja2VkID0gc3ViIHsNCj4gKwkJbXkgKCRjb2RlLCAkcGFyYW1zKSA9IEBfOw0KPiAr
CQlyZXR1cm4gUFZFOjpRZW11Q29uZmlnLT5sb2NrX2NvbmZpZygkc3RhdGUtPnt2bWlkfSwgc3Vi
IHsNCj4gKwkJICAgIG15ICRjb25mID0gUFZFOjpRZW11Q29uZmlnLT5sb2FkX2NvbmZpZygkc3Rh
dGUtPnt2bWlkfSk7DQo+ICsNCj4gKwkJICAgICRzdGF0ZS0+e2NvbmZ9ID0gJGNvbmY7DQo+ICsN
Cj4gKwkJICAgIGRpZSAiRW5jb3VudGVyZWQgd3JvbmcgbG9jayAtIGFib3J0aW5nIG10dW5uZWwg
Y29tbWFuZCBoYW5kbGluZy5cbiINCj4gKwkJCWlmICRzdGF0ZS0+e2xvY2t9ICYmICFQVkU6OlFl
bXVDb25maWctPmhhc19sb2NrKCRjb25mLCAkc3RhdGUtPntsb2NrfSk7DQo+ICsNCj4gKwkJICAg
IHJldHVybiAkY29kZS0+KCRwYXJhbXMpOw0KPiArCQl9KTsNCj4gKwkgICAgfTsNCj4gKw0KPiAr
CSAgICBteSAkY21kX2Rlc2MgPSB7DQo+ICsJCWNvbmZpZyA9PiB7DQo+ICsJCSAgICBjb25mID0+
IHsNCj4gKwkJCXR5cGUgPT4gJ3N0cmluZycsDQo+ICsJCQlkZXNjcmlwdGlvbiA9PiAnRnVsbCBW
TSBjb25maWcsIGFkYXB0ZWQgZm9yIHRhcmdldCBjbHVzdGVyL25vZGUnLA0KPiArCQkgICAgfSwN
Cj4gKwkJICAgICdmaXJld2FsbC1jb25maWcnID0+IHsNCj4gKwkJCXR5cGUgPT4gJ3N0cmluZycs
DQo+ICsJCQlkZXNjcmlwdGlvbiA9PiAnVk0gZmlyZXdhbGwgY29uZmlnJywNCj4gKwkJCW9wdGlv
bmFsID0+IDEsDQo+ICsJCSAgICB9LA0KPiArCQl9LA0KPiArCQlkaXNrID0+IHsNCj4gKwkJICAg
IGZvcm1hdCA9PiBQVkU6OkpTT05TY2hlbWE6OmdldF9zdGFuZGFyZF9vcHRpb24oJ3B2ZS1xbS1p
bWFnZS1mb3JtYXQnKSwNCj4gKwkJICAgIHN0b3JhZ2UgPT4gew0KPiArCQkJdHlwZSA9PiAnc3Ry
aW5nJywNCj4gKwkJCWZvcm1hdCA9PiAncHZlLXN0b3JhZ2UtaWQnLA0KPiArCQkgICAgfSwNCj4g
KwkJICAgIGRyaXZlID0+IHsNCj4gKwkJCXR5cGUgPT4gJ29iamVjdCcsDQo+ICsJCQlkZXNjcmlw
dGlvbiA9PiAncGFyc2VkIGRyaXZlIGluZm9ybWF0aW9uIHdpdGhvdXQgdm9saWQgYW5kIGZvcm1h
dCcsDQo+ICsJCSAgICB9LA0KPiArCQl9LA0KPiArCQlzdGFydCA9PiB7DQo+ICsJCSAgICBzdGFy
dF9wYXJhbXMgPT4gew0KPiArCQkJdHlwZSA9PiAnb2JqZWN0JywNCj4gKwkJCWRlc2NyaXB0aW9u
ID0+ICdwYXJhbXMgcGFzc2VkIHRvIHZtX3N0YXJ0X25vbG9jaycsDQo+ICsJCSAgICB9LA0KPiAr
CQkgICAgbWlncmF0ZV9vcHRzID0+IHsNCj4gKwkJCXR5cGUgPT4gJ29iamVjdCcsDQo+ICsJCQlk
ZXNjcmlwdGlvbiA9PiAnbWlncmF0ZV9vcHRzIHBhc3NlZCB0byB2bV9zdGFydF9ub2xvY2snLA0K
PiArCQkgICAgfSwNCj4gKwkJfSwNCj4gKwkJdGlja2V0ID0+IHsNCj4gKwkJICAgIHBhdGggPT4g
ew0KPiArCQkJdHlwZSA9PiAnc3RyaW5nJywNCj4gKwkJCWRlc2NyaXB0aW9uID0+ICdzb2NrZXQg
cGF0aCBmb3Igd2hpY2ggdGhlIHRpY2tldCBzaG91bGQgYmUgdmFsaWQuIG11c3QgYmUga25vd24g
dG8gY3VycmVudCBtdHVubmVsIGluc3RhbmNlLicsDQo+ICsJCSAgICB9LA0KPiArCQl9LA0KPiAr
CQlxdWl0ID0+IHsNCj4gKwkJICAgIGNsZWFudXAgPT4gew0KPiArCQkJdHlwZSA9PiAnYm9vbGVh
bicsDQo+ICsJCQlkZXNjcmlwdGlvbiA9PiAncmVtb3ZlIFZNIGNvbmZpZyBhbmQgZGlza3MsIGFi
b3J0aW5nIG1pZ3JhdGlvbicsDQo+ICsJCQlkZWZhdWx0ID0+IDAsDQo+ICsJCSAgICB9LA0KPiAr
CQl9LA0KPiArCQknZGlzay1pbXBvcnQnID0+ICRQVkU6OlN0b3JhZ2VUdW5uZWw6OmNtZF9zY2hl
bWEtPnsnZGlzay1pbXBvcnQnfSwNCj4gKwkJJ3F1ZXJ5LWRpc2staW1wb3J0JyA9PiAkUFZFOjpT
dG9yYWdlVHVubmVsOjpjbWRfc2NoZW1hLT57J3F1ZXJ5LWRpc2staW1wb3J0J30sDQo+ICsJCWJ3
bGltaXQgPT4gJFBWRTo6U3RvcmFnZVR1bm5lbDo6Y21kX3NjaGVtYS0+e2J3bGltaXR9LA0KPiAr
CSAgICB9Ow0KPiArDQo+ICsJICAgIG15ICRjbWRfaGFuZGxlcnMgPSB7DQo+ICsJCSd2ZXJzaW9u
JyA9PiBzdWIgew0KPiArCQkgICAgIyBjb21wYXJlZCBhZ2FpbnN0IG90aGVyIGVuZCdzIHZlcnNp
b24NCj4gKwkJICAgICMgYnVtcC9yZXNldCBmb3IgYnJlYWtpbmcgY2hhbmdlcw0KPiArCQkgICAg
IyBidW1wL2J1bXAgZm9yIG9wdC1pbiBjaGFuZ2VzDQo+ICsJCSAgICByZXR1cm4gew0KPiArCQkJ
YXBpID0+IDIsDQo+ICsJCQlhZ2UgPT4gMCwNCj4gKwkJICAgIH07DQo+ICsJCX0sDQo+ICsJCSdj
b25maWcnID0+IHN1YiB7DQo+ICsJCSAgICBteSAoJHBhcmFtcykgPSBAXzsNCj4gKw0KPiArCQkg
ICAgIyBwYXJzZSBhbmQgd3JpdGUgb3V0IFZNIEZXIGNvbmZpZyBpZiBnaXZlbg0KPiArCQkgICAg
aWYgKG15ICRmd19jb25mID0gJHBhcmFtcy0+eydmaXJld2FsbC1jb25maWcnfSkgew0KPiArCQkJ
bXkgKCRwYXRoLCAkZmgpID0gUFZFOjpUb29sczo6dGVtcGZpbGVfY29udGVudHMoJGZ3X2NvbmYs
IDcwMCk7DQo+ICsNCj4gKwkJCW15ICRlbXB0eV9jb25mID0gew0KPiArCQkJICAgIHJ1bGVzID0+
IFtdLA0KPiArCQkJICAgIG9wdGlvbnMgPT4ge30sDQo+ICsJCQkgICAgYWxpYXNlcyA9PiB7fSwN
Cj4gKwkJCSAgICBpcHNldCA9PiB7fSAsDQo+ICsJCQkgICAgaXBzZXRfY29tbWVudHMgPT4ge30s
DQo+ICsJCQl9Ow0KPiArCQkJbXkgJGNsdXN0ZXJfZndfY29uZiA9IFBWRTo6RmlyZXdhbGw6Omxv
YWRfY2x1c3RlcmZ3X2NvbmYoKTsNCj4gKw0KPiArCQkJIyBUT0RPOiBhZGQgZmxhZyBmb3Igc3Ry
aWN0IHBhcnNpbmc/DQo+ICsJCQkjIFRPRE86IGFkZCBpbXBvcnQgc3ViIHRoYXQgZG9lcyBhbGwg
dGhpcyBnaXZlbiByYXcgY29udGVudD8NCj4gKwkJCW15ICR2bWZ3X2NvbmYgPSBQVkU6OkZpcmV3
YWxsOjpnZW5lcmljX2Z3X2NvbmZpZ19wYXJzZXIoJHBhdGgsICRjbHVzdGVyX2Z3X2NvbmYsICRl
bXB0eV9jb25mLCAndm0nKTsNCj4gKwkJCSR2bWZ3X2NvbmYtPnt2bWlkfSA9ICRzdGF0ZS0+e3Zt
aWR9Ow0KPiArCQkJUFZFOjpGaXJld2FsbDo6c2F2ZV92bWZ3X2NvbmYoJHN0YXRlLT57dm1pZH0s
ICR2bWZ3X2NvbmYpOw0KPiArDQo+ICsJCQkkc3RhdGUtPntjbGVhbnVwfS0+e2Z3fSA9IDE7DQo+
ICsJCSAgICB9DQo+ICsNCj4gKwkJICAgIG15ICRjb25mX2ZuID0gImluY29taW5nL3FlbXUtc2Vy
dmVyLyRzdGF0ZS0+e3ZtaWR9LmNvbmYiOw0KPiArCQkgICAgbXkgJG5ld19jb25mID0gUFZFOjpR
ZW11U2VydmVyOjpwYXJzZV92bV9jb25maWcoJGNvbmZfZm4sICRwYXJhbXMtPntjb25mfSwgMSk7
DQo+ICsJCSAgICBkZWxldGUgJG5ld19jb25mLT57bG9ja307DQo+ICsJCSAgICBkZWxldGUgJG5l
d19jb25mLT57ZGlnZXN0fTsNCj4gKw0KPiArCQkgICAgIyBUT0RPIGhhbmRsZSBwcm9wZXJseT8N
Cj4gKwkJICAgIGRlbGV0ZSAkbmV3X2NvbmYtPntzbmFwc2hvdHN9Ow0KPiArCQkgICAgZGVsZXRl
ICRuZXdfY29uZi0+e3BhcmVudH07DQo+ICsJCSAgICBkZWxldGUgJG5ld19jb25mLT57cGVuZGlu
Z307DQo+ICsNCj4gKwkJICAgICMgbm90IGhhbmRsZWQgYnkgdXBkYXRlX3ZtX2FwaQ0KPiArCQkg
ICAgbXkgJHZtZ2VuaWQgPSBkZWxldGUgJG5ld19jb25mLT57dm1nZW5pZH07DQo+ICsJCSAgICBt
eSAkbWV0YSA9IGRlbGV0ZSAkbmV3X2NvbmYtPnttZXRhfTsNCj4gKw0KPiArCQkgICAgJG5ld19j
b25mLT57dm1pZH0gPSAkc3RhdGUtPnt2bWlkfTsNCj4gKwkJICAgICRuZXdfY29uZi0+e25vZGV9
ID0gJG5vZGU7DQo+ICsNCj4gKwkJICAgIFBWRTo6UWVtdUNvbmZpZy0+cmVtb3ZlX2xvY2soJHN0
YXRlLT57dm1pZH0sICdjcmVhdGUnKTsNCj4gKw0KPiArCQkgICAgZXZhbCB7DQo+ICsJCQkkdXBk
YXRlX3ZtX2FwaS0+KCRuZXdfY29uZiwgMSk7DQo+ICsJCSAgICB9Ow0KPiArCQkgICAgaWYgKG15
ICRlcnIgPSAkQCkgew0KPiArCQkJIyByZXZlcnQgdG8gbG9ja2VkIHByZXZpb3VzIGNvbmZpZw0K
PiArCQkJbXkgJGNvbmYgPSBQVkU6OlFlbXVDb25maWctPmxvYWRfY29uZmlnKCRzdGF0ZS0+e3Zt
aWR9KTsNCj4gKwkJCSRjb25mLT57bG9ja30gPSAnY3JlYXRlJzsNCj4gKwkJCVBWRTo6UWVtdUNv
bmZpZy0+d3JpdGVfY29uZmlnKCRzdGF0ZS0+e3ZtaWR9LCAkY29uZik7DQo+ICsNCj4gKwkJCWRp
ZSAkZXJyOw0KPiArCQkgICAgfQ0KPiArDQo+ICsJCSAgICBteSAkY29uZiA9IFBWRTo6UWVtdUNv
bmZpZy0+bG9hZF9jb25maWcoJHN0YXRlLT57dm1pZH0pOw0KPiArCQkgICAgJGNvbmYtPntsb2Nr
fSA9ICdtaWdyYXRlJzsNCj4gKwkJICAgICRjb25mLT57dm1nZW5pZH0gPSAkdm1nZW5pZCBpZiBk
ZWZpbmVkKCR2bWdlbmlkKTsNCj4gKwkJICAgICRjb25mLT57bWV0YX0gPSAkbWV0YSBpZiBkZWZp
bmVkKCRtZXRhKTsNCj4gKwkJICAgIFBWRTo6UWVtdUNvbmZpZy0+d3JpdGVfY29uZmlnKCRzdGF0
ZS0+e3ZtaWR9LCAkY29uZik7DQo+ICsNCj4gKwkJICAgICRzdGF0ZS0+e2xvY2t9ID0gJ21pZ3Jh
dGUnOw0KPiArDQo+ICsJCSAgICByZXR1cm47DQo+ICsJCX0sDQo+ICsJCSdid2xpbWl0JyA9PiBz
dWIgew0KPiArCQkgICAgbXkgKCRwYXJhbXMpID0gQF87DQo+ICsJCSAgICByZXR1cm4gUFZFOjpT
dG9yYWdlVHVubmVsOjpoYW5kbGVfYndsaW1pdCgkcGFyYW1zKTsNCj4gKwkJfSwNCj4gKwkJJ2Rp
c2snID0+IHN1YiB7DQo+ICsJCSAgICBteSAoJHBhcmFtcykgPSBAXzsNCj4gKw0KPiArCQkgICAg
bXkgJGZvcm1hdCA9ICRwYXJhbXMtPntmb3JtYXR9Ow0KPiArCQkgICAgbXkgJHN0b3JlaWQgPSAk
cGFyYW1zLT57c3RvcmFnZX07DQo+ICsJCSAgICBteSAkZHJpdmUgPSAkcGFyYW1zLT57ZHJpdmV9
Ow0KPiArDQo+ICsJCSAgICAkY2hlY2tfc3RvcmFnZV9hY2Nlc3NfbWlncmF0ZS0+KCRycGNlbnYs
ICRhdXRodXNlciwgJHN0YXRlLT57c3RvcmVjZmd9LCAkc3RvcmVpZCwgJG5vZGUpOw0KPiArDQo+
ICsJCSAgICBteSAkc3RvcmFnZW1hcCA9IHsNCj4gKwkJCWRlZmF1bHQgPT4gJHN0b3JlaWQsDQo+
ICsJCSAgICB9Ow0KPiArDQo+ICsJCSAgICBteSAkc291cmNlX3ZvbHVtZXMgPSB7DQo+ICsJCQkn
ZGlzaycgPT4gWw0KPiArCQkJICAgIHVuZGVmLA0KPiArCQkJICAgICRzdG9yZWlkLA0KPiArCQkJ
ICAgIHVuZGVmLA0KPiArCQkJICAgICRkcml2ZSwNCj4gKwkJCSAgICAwLA0KPiArCQkJICAgICRm
b3JtYXQsDQo+ICsJCQldLA0KPiArCQkgICAgfTsNCj4gKw0KPiArCQkgICAgbXkgJHJlcyA9IFBW
RTo6UWVtdVNlcnZlcjo6dm1fbWlncmF0ZV9hbGxvY19uYmRfZGlza3MoJHN0YXRlLT57c3RvcmVj
Zmd9LCAkc3RhdGUtPnt2bWlkfSwgJHNvdXJjZV92b2x1bWVzLCAkc3RvcmFnZW1hcCk7DQo+ICsJ
CSAgICBpZiAoZGVmaW5lZCgkcmVzLT57ZGlza30pKSB7DQo+ICsJCQkkc3RhdGUtPntjbGVhbnVw
fS0+e3ZvbHVtZXN9LT57JHJlcy0+e2Rpc2t9LT57dm9saWR9fSA9IDE7DQo+ICsJCQlyZXR1cm4g
JHJlcy0+e2Rpc2t9Ow0KPiArCQkgICAgfSBlbHNlIHsNCj4gKwkJCWRpZSAiZmFpbGVkIHRvIGFs
bG9jYXRlIE5CRCBkaXNrLi5cbiI7DQo+ICsJCSAgICB9DQo+ICsJCX0sDQo+ICsJCSdkaXNrLWlt
cG9ydCcgPT4gc3ViIHsNCj4gKwkJICAgIG15ICgkcGFyYW1zKSA9IEBfOw0KPiArDQo+ICsJCSAg
ICAkY2hlY2tfc3RvcmFnZV9hY2Nlc3NfbWlncmF0ZS0+KA0KPiArCQkJJHJwY2VudiwNCj4gKwkJ
CSRhdXRodXNlciwNCj4gKwkJCSRzdGF0ZS0+e3N0b3JlY2ZnfSwNCj4gKwkJCSRwYXJhbXMtPntz
dG9yYWdlfSwNCj4gKwkJCSRub2RlDQo+ICsJCSAgICApOw0KPiArDQo+ICsJCSAgICAkcGFyYW1z
LT57dW5peH0gPSAiL3J1bi9xZW11LXNlcnZlci8kc3RhdGUtPnt2bWlkfS5zdG9yYWdlIjsNCj4g
Kw0KPiArCQkgICAgcmV0dXJuIFBWRTo6U3RvcmFnZVR1bm5lbDo6aGFuZGxlX2Rpc2tfaW1wb3J0
KCRzdGF0ZSwgJHBhcmFtcyk7DQo+ICsJCX0sDQo+ICsJCSdxdWVyeS1kaXNrLWltcG9ydCcgPT4g
c3ViIHsNCj4gKwkJICAgIG15ICgkcGFyYW1zKSA9IEBfOw0KPiArDQo+ICsJCSAgICByZXR1cm4g
UFZFOjpTdG9yYWdlVHVubmVsOjpoYW5kbGVfcXVlcnlfZGlza19pbXBvcnQoJHN0YXRlLCAkcGFy
YW1zKTsNCj4gKwkJfSwNCj4gKwkJJ3N0YXJ0JyA9PiBzdWIgew0KPiArCQkgICAgbXkgKCRwYXJh
bXMpID0gQF87DQo+ICsNCj4gKwkJICAgIG15ICRpbmZvID0gUFZFOjpRZW11U2VydmVyOjp2bV9z
dGFydF9ub2xvY2soDQo+ICsJCQkkc3RhdGUtPntzdG9yZWNmZ30sDQo+ICsJCQkkc3RhdGUtPnt2
bWlkfSwNCj4gKwkJCSRzdGF0ZS0+e2NvbmZ9LA0KPiArCQkJJHBhcmFtcy0+e3N0YXJ0X3BhcmFt
c30sDQo+ICsJCQkkcGFyYW1zLT57bWlncmF0ZV9vcHRzfSwNCj4gKwkJICAgICk7DQo+ICsNCj4g
Kw0KPiArCQkgICAgaWYgKCRpbmZvLT57bWlncmF0ZX0tPntwcm90b30gbmUgJ3VuaXgnKSB7DQo+
ICsJCQlQVkU6OlFlbXVTZXJ2ZXI6OnZtX3N0b3AodW5kZWYsICRzdGF0ZS0+e3ZtaWR9LCAxLCAx
KTsNCj4gKwkJCWRpZSAibWlncmF0aW9uIG92ZXIgbm9uLVVOSVggc29ja2V0cyBub3QgcG9zc2li
bGVcbiI7DQo+ICsJCSAgICB9DQo+ICsNCj4gKwkJICAgIG15ICRzb2NrZXQgPSAkaW5mby0+e21p
Z3JhdGV9LT57YWRkcn07DQo+ICsJCSAgICBjaG93biAkc3RhdGUtPntzb2NrZXRfdWlkfSwgLTEs
ICRzb2NrZXQ7DQo+ICsJCSAgICAkc3RhdGUtPntzb2NrZXRzfS0+eyRzb2NrZXR9ID0gMTsNCj4g
Kw0KPiArCQkgICAgbXkgJHVuaXhfc29ja2V0cyA9ICRpbmZvLT57bWlncmF0ZX0tPnt1bml4X3Nv
Y2tldHN9Ow0KPiArCQkgICAgZm9yZWFjaCBteSAkc29ja2V0IChAJHVuaXhfc29ja2V0cykgew0K
PiArCQkJY2hvd24gJHN0YXRlLT57c29ja2V0X3VpZH0sIC0xLCAkc29ja2V0Ow0KPiArCQkJJHN0
YXRlLT57c29ja2V0c30tPnskc29ja2V0fSA9IDE7DQo+ICsJCSAgICB9DQo+ICsJCSAgICByZXR1
cm4gJGluZm87DQo+ICsJCX0sDQo+ICsJCSdmc3RyaW0nID0+IHN1YiB7DQo+ICsJCSAgICBpZiAo
UFZFOjpRZW11U2VydmVyOjpxZ2FfY2hlY2tfcnVubmluZygkc3RhdGUtPnt2bWlkfSkpIHsNCj4g
KwkJCWV2YWwgeyBtb25fY21kKCRzdGF0ZS0+e3ZtaWR9LCAiZ3Vlc3QtZnN0cmltIikgfTsNCj4g
KwkJCXdhcm4gImZzdHJpbSBmYWlsZWQ6ICRAXG4iIGlmICRAOw0KPiArCQkgICAgfQ0KPiArCQkg
ICAgcmV0dXJuOw0KPiArCQl9LA0KPiArCQknc3RvcCcgPT4gc3ViIHsNCj4gKwkJICAgIFBWRTo6
UWVtdVNlcnZlcjo6dm1fc3RvcCh1bmRlZiwgJHN0YXRlLT57dm1pZH0sIDEsIDEpOw0KPiArCQkg
ICAgcmV0dXJuOw0KPiArCQl9LA0KPiArCQknbmJkc3RvcCcgPT4gc3ViIHsNCj4gKwkJICAgIFBW
RTo6UWVtdVNlcnZlcjo6bmJkX3N0b3AoJHN0YXRlLT57dm1pZH0pOw0KPiArCQkgICAgcmV0dXJu
Ow0KPiArCQl9LA0KPiArCQkncmVzdW1lJyA9PiBzdWIgew0KPiArCQkgICAgaWYgKFBWRTo6UWVt
dVNlcnZlcjo6SGVscGVyczo6dm1fcnVubmluZ19sb2NhbGx5KCRzdGF0ZS0+e3ZtaWR9KSkgew0K
PiArCQkJUFZFOjpRZW11U2VydmVyOjp2bV9yZXN1bWUoJHN0YXRlLT57dm1pZH0sIDEsIDEpOw0K
PiArCQkgICAgfSBlbHNlIHsNCj4gKwkJCWRpZSAiVk0gJHN0YXRlLT57dm1pZH0gbm90IHJ1bm5p
bmdcbiI7DQo+ICsJCSAgICB9DQo+ICsJCSAgICByZXR1cm47DQo+ICsJCX0sDQo+ICsJCSd1bmxv
Y2snID0+IHN1YiB7DQo+ICsJCSAgICBQVkU6OlFlbXVDb25maWctPnJlbW92ZV9sb2NrKCRzdGF0
ZS0+e3ZtaWR9LCAkc3RhdGUtPntsb2NrfSk7DQo+ICsJCSAgICBkZWxldGUgJHN0YXRlLT57bG9j
a307DQo+ICsJCSAgICByZXR1cm47DQo+ICsJCX0sDQo+ICsJCSd0aWNrZXQnID0+IHN1YiB7DQo+
ICsJCSAgICBteSAoJHBhcmFtcykgPSBAXzsNCj4gKw0KPiArCQkgICAgbXkgJHBhdGggPSAkcGFy
YW1zLT57cGF0aH07DQo+ICsNCj4gKwkJICAgIGRpZSAiTm90IGFsbG93ZWQgdG8gZ2VuZXJhdGUg
dGlja2V0IGZvciB1bmtub3duIHNvY2tldCAnJHBhdGgnXG4iDQo+ICsJCQlpZiAhZGVmaW5lZCgk
c3RhdGUtPntzb2NrZXRzfS0+eyRwYXRofSk7DQo+ICsNCj4gKwkJICAgIHJldHVybiB7IHRpY2tl
dCA9PiBQVkU6OkFjY2Vzc0NvbnRyb2w6OmFzc2VtYmxlX3R1bm5lbF90aWNrZXQoJGF1dGh1c2Vy
LCAiL3NvY2tldC8kcGF0aCIpIH07DQo+ICsJCX0sDQo+ICsJCSdxdWl0JyA9PiBzdWIgew0KPiAr
CQkgICAgbXkgKCRwYXJhbXMpID0gQF87DQo+ICsNCj4gKwkJICAgIGlmICgkcGFyYW1zLT57Y2xl
YW51cH0pIHsNCj4gKwkJCWlmICgkc3RhdGUtPntjbGVhbnVwfS0+e2Z3fSkgew0KPiArCQkJICAg
IFBWRTo6RmlyZXdhbGw6OnJlbW92ZV92bWZ3X2NvbmYoJHN0YXRlLT57dm1pZH0pOw0KPiArCQkJ
fQ0KPiArDQo+ICsJCQlmb3IgbXkgJHZvbGlkIChrZXlzICRzdGF0ZS0+e2NsZWFudXB9LT57dm9s
dW1lc30tPiUqKSB7DQo+ICsJCQkgICAgcHJpbnQgImZyZWVpbmcgdm9sdW1lICckdm9saWQnIGFz
IHBhcnQgb2YgY2xlYW51cFxuIjsNCj4gKwkJCSAgICBldmFsIHsgUFZFOjpTdG9yYWdlOjp2ZGlz
a19mcmVlKCRzdGF0ZS0+e3N0b3JlY2ZnfSwgJHZvbGlkKSB9Ow0KPiArCQkJICAgIHdhcm4gJEAg
aWYgJEA7DQo+ICsJCQl9DQo+ICsNCj4gKwkJCVBWRTo6UWVtdVNlcnZlcjo6ZGVzdHJveV92bSgk
c3RhdGUtPntzdG9yZWNmZ30sICRzdGF0ZS0+e3ZtaWR9LCAxKTsNCj4gKwkJICAgIH0NCj4gKw0K
PiArCQkgICAgcHJpbnQgInN3aXRjaGluZyB0byBleGl0LW1vZGUsIHdhaXRpbmcgZm9yIGNsaWVu
dCB0byBkaXNjb25uZWN0XG4iOw0KPiArCQkgICAgJHN0YXRlLT57ZXhpdH0gPSAxOw0KPiArCQkg
ICAgcmV0dXJuOw0KPiArCQl9LA0KPiArCSAgICB9Ow0KPiArDQo+ICsJICAgICRydW5fbG9ja2Vk
LT4oc3ViIHsNCj4gKwkJbXkgJHNvY2tldF9hZGRyID0gIi9ydW4vcWVtdS1zZXJ2ZXIvJHN0YXRl
LT57dm1pZH0ubXR1bm5lbCI7DQo+ICsJCXVubGluayAkc29ja2V0X2FkZHI7DQo+ICsNCj4gKwkJ
JHN0YXRlLT57c29ja2V0fSA9IElPOjpTb2NrZXQ6OlVOSVgtPm5ldygNCj4gKwkgICAgICAgICAg
ICBUeXBlID0+IFNPQ0tfU1RSRUFNKCksDQo+ICsJCSAgICBMb2NhbCA9PiAkc29ja2V0X2FkZHIs
DQo+ICsJCSAgICBMaXN0ZW4gPT4gMSwNCj4gKwkJKTsNCj4gKw0KPiArCQkkc3RhdGUtPntzb2Nr
ZXRfdWlkfSA9IGdldHB3bmFtKCd3d3ctZGF0YScpDQo+ICsJCSAgICBvciBkaWUgIkZhaWxlZCB0
byByZXNvbHZlIHVzZXIgJ3d3dy1kYXRhJyB0byBudW1lcmljIFVJRFxuIjsNCj4gKwkJY2hvd24g
JHN0YXRlLT57c29ja2V0X3VpZH0sIC0xLCAkc29ja2V0X2FkZHI7DQo+ICsJICAgIH0pOw0KPiAr
DQo+ICsJICAgIHByaW50ICJtdHVubmVsIHN0YXJ0ZWRcbiI7DQo+ICsNCj4gKwkgICAgbXkgJGNv
bm4gPSBldmFsIHsgUFZFOjpUb29sczo6cnVuX3dpdGhfdGltZW91dCgzMDAsIHN1YiB7ICRzdGF0
ZS0+e3NvY2tldH0tPmFjY2VwdCgpIH0pIH07DQo+ICsJICAgIGlmICgkQCkgew0KPiArCQl3YXJu
ICJGYWlsZWQgdG8gYWNjZXB0IHR1bm5lbCBjb25uZWN0aW9uIC0gJEBcbiI7DQo+ICsNCj4gKwkJ
d2FybiAiUmVtb3ZpbmcgdHVubmVsIHNvY2tldC4uXG4iOw0KPiArCQl1bmxpbmsgJHN0YXRlLT57
c29ja2V0fTsNCj4gKw0KPiArCQl3YXJuICJSZW1vdmluZyB0ZW1wb3JhcnkgVk0gY29uZmlnLi5c
biI7DQo+ICsJCSRydW5fbG9ja2VkLT4oc3ViIHsNCj4gKwkJICAgIFBWRTo6UWVtdVNlcnZlcjo6
ZGVzdHJveV92bSgkc3RhdGUtPntzdG9yZWNmZ30sICRzdGF0ZS0+e3ZtaWR9LCAxKTsNCj4gKwkJ
fSk7DQo+ICsNCj4gKwkJZGllICJFeGl0aW5nIG10dW5uZWxcbiI7DQo+ICsJICAgIH0NCj4gKw0K
PiArCSAgICAkc3RhdGUtPntjb25ufSA9ICRjb25uOw0KPiArDQo+ICsJICAgIG15ICRyZXBseV9l
cnIgPSBzdWIgew0KPiArCQlteSAoJG1zZykgPSBAXzsNCj4gKw0KPiArCQlteSAkcmVwbHkgPSBK
U09OOjplbmNvZGVfanNvbih7DQo+ICsJCSAgICBzdWNjZXNzID0+IEpTT046OmZhbHNlLA0KPiAr
CQkgICAgbXNnID0+ICRtc2csDQo+ICsJCX0pOw0KPiArCQkkY29ubi0+cHJpbnQoIiRyZXBseVxu
Iik7DQo+ICsJCSRjb25uLT5mbHVzaCgpOw0KPiArCSAgICB9Ow0KPiArDQo+ICsJICAgIG15ICRy
ZXBseV9vayA9IHN1YiB7DQo+ICsJCW15ICgkcmVzKSA9IEBfOw0KPiArDQo+ICsJCSRyZXMtPntz
dWNjZXNzfSA9IEpTT046OnRydWU7DQo+ICsJCW15ICRyZXBseSA9IEpTT046OmVuY29kZV9qc29u
KCRyZXMpOw0KPiArCQkkY29ubi0+cHJpbnQoIiRyZXBseVxuIik7DQo+ICsJCSRjb25uLT5mbHVz
aCgpOw0KPiArCSAgICB9Ow0KPiArDQo+ICsJICAgIHdoaWxlIChteSAkbGluZSA9IDwkY29ubj4p
IHsNCj4gKwkJY2hvbXAgJGxpbmU7DQo+ICsNCj4gKwkJIyB1bnRhaW50LCB3ZSB2YWxpZGF0ZSBi
ZWxvdyBpZiBuZWVkZWQNCj4gKwkJKCRsaW5lKSA9ICRsaW5lID1+IC9eKC4qKSQvOw0KPiArCQlt
eSAkcGFyc2VkID0gZXZhbCB7IEpTT046OmRlY29kZV9qc29uKCRsaW5lKSB9Ow0KPiArCQlpZiAo
JEApIHsNCj4gKwkJICAgICRyZXBseV9lcnItPigiZmFpbGVkIHRvIHBhcnNlIGNvbW1hbmQgLSAk
QCIpOw0KPiArCQkgICAgbmV4dDsNCj4gKwkJfQ0KPiArDQo+ICsJCW15ICRjbWQgPSBkZWxldGUg
JHBhcnNlZC0+e2NtZH07DQo+ICsJCWlmICghZGVmaW5lZCgkY21kKSkgew0KPiArCQkgICAgJHJl
cGx5X2Vyci0+KCInY21kJyBtaXNzaW5nIik7DQo+ICsJCX0gZWxzaWYgKCRzdGF0ZS0+e2V4aXR9
KSB7DQo+ICsJCSAgICAkcmVwbHlfZXJyLT4oInR1bm5lbCBpcyBpbiBleGl0LW1vZGUsIHByb2Nl
c3NpbmcgJyRjbWQnIGNtZCBub3QgcG9zc2libGUiKTsNCj4gKwkJICAgIG5leHQ7DQo+ICsJCX0g
ZWxzaWYgKG15ICRoYW5kbGVyID0gJGNtZF9oYW5kbGVycy0+eyRjbWR9KSB7DQo+ICsJCSAgICBw
cmludCAicmVjZWl2ZWQgY29tbWFuZCAnJGNtZCdcbiI7DQo+ICsJCSAgICBldmFsIHsNCj4gKwkJ
CWlmICgkY21kX2Rlc2MtPnskY21kfSkgew0KPiArCQkJICAgIFBWRTo6SlNPTlNjaGVtYTo6dmFs
aWRhdGUoJGNtZF9kZXNjLT57JGNtZH0sICRwYXJzZWQpOw0KPiArCQkJfSBlbHNlIHsNCj4gKwkJ
CSAgICAkcGFyc2VkID0ge307DQo+ICsJCQl9DQo+ICsJCQlteSAkcmVzID0gJHJ1bl9sb2NrZWQt
PigkaGFuZGxlciwgJHBhcnNlZCk7DQo+ICsJCQkkcmVwbHlfb2stPigkcmVzKTsNCj4gKwkJICAg
IH07DQo+ICsJCSAgICAkcmVwbHlfZXJyLT4oImZhaWxlZCB0byBoYW5kbGUgJyRjbWQnIGNvbW1h
bmQgLSAkQCIpDQo+ICsJCQlpZiAkQDsNCj4gKwkJfSBlbHNlIHsNCj4gKwkJICAgICRyZXBseV9l
cnItPigidW5rbm93biBjb21tYW5kICckY21kJyBnaXZlbiIpOw0KPiArCQl9DQo+ICsJICAgIH0N
Cj4gKw0KPiArCSAgICBpZiAoJHN0YXRlLT57ZXhpdH0pIHsNCj4gKwkJcHJpbnQgIm10dW5uZWwg
ZXhpdGVkXG4iOw0KPiArCSAgICB9IGVsc2Ugew0KPiArCQlkaWUgIm10dW5uZWwgZXhpdGVkIHVu
ZXhwZWN0ZWRseVxuIjsNCj4gKwkgICAgfQ0KPiArCX07DQo+ICsNCj4gKwlteSAkc29ja2V0X2Fk
ZHIgPSAiL3J1bi9xZW11LXNlcnZlci8kdm1pZC5tdHVubmVsIjsNCj4gKwlteSAkdGlja2V0ID0g
UFZFOjpBY2Nlc3NDb250cm9sOjphc3NlbWJsZV90dW5uZWxfdGlja2V0KCRhdXRodXNlciwgIi9z
b2NrZXQvJHNvY2tldF9hZGRyIik7DQo+ICsJbXkgJHVwaWQgPSAkcnBjZW52LT5mb3JrX3dvcmtl
cigncW10dW5uZWwnLCAkdm1pZCwgJGF1dGh1c2VyLCAkcmVhbGNtZCk7DQo+ICsNCj4gKwlyZXR1
cm4gew0KPiArCSAgICB0aWNrZXQgPT4gJHRpY2tldCwNCj4gKwkgICAgdXBpZCA9PiAkdXBpZCwN
Cj4gKwkgICAgc29ja2V0ID0+ICRzb2NrZXRfYWRkciwNCj4gKwl9Ow0KPiArICAgIH19KTsNCj4g
Kw0KPiArX19QQUNLQUdFX18tPnJlZ2lzdGVyX21ldGhvZCh7DQo+ICsgICAgbmFtZSA9PiAnbXR1
bm5lbHdlYnNvY2tldCcsDQo+ICsgICAgcGF0aCA9PiAne3ZtaWR9L210dW5uZWx3ZWJzb2NrZXQn
LA0KPiArICAgIG1ldGhvZCA9PiAnR0VUJywNCj4gKyAgICBwZXJtaXNzaW9ucyA9PiB7DQo+ICsJ
ZGVzY3JpcHRpb24gPT4gIllvdSBuZWVkIHRvIHBhc3MgYSB0aWNrZXQgdmFsaWQgZm9yIHRoZSBz
ZWxlY3RlZCBzb2NrZXQuIFRpY2tldHMgY2FuIGJlIGNyZWF0ZWQgdmlhIHRoZSBtdHVubmVsIEFQ
SSBjYWxsLCB3aGljaCB3aWxsIGNoZWNrIHBlcm1pc3Npb25zIGFjY29yZGluZ2x5LiIsDQo+ICsg
ICAgICAgIHVzZXIgPT4gJ2FsbCcsICMgY2hlY2sgaW5zaWRlDQo+ICsgICAgfSwNCj4gKyAgICBk
ZXNjcmlwdGlvbiA9PiAnTWlncmF0aW9uIHR1bm5lbCBlbmRwb2ludCBmb3Igd2Vic29ja2V0IHVw
Z3JhZGUgLSBvbmx5IGZvciBpbnRlcm5hbCB1c2UgYnkgVk0gbWlncmF0aW9uLicsDQo+ICsgICAg
cGFyYW1ldGVycyA9PiB7DQo+ICsJYWRkaXRpb25hbFByb3BlcnRpZXMgPT4gMCwNCj4gKwlwcm9w
ZXJ0aWVzID0+IHsNCj4gKwkgICAgbm9kZSA9PiBnZXRfc3RhbmRhcmRfb3B0aW9uKCdwdmUtbm9k
ZScpLA0KPiArCSAgICB2bWlkID0+IGdldF9zdGFuZGFyZF9vcHRpb24oJ3B2ZS12bWlkJyksDQo+
ICsJICAgIHNvY2tldCA9PiB7DQo+ICsJCXR5cGUgPT4gInN0cmluZyIsDQo+ICsJCWRlc2NyaXB0
aW9uID0+ICJ1bml4IHNvY2tldCB0byBmb3J3YXJkIHRvIiwNCj4gKwkgICAgfSwNCj4gKwkgICAg
dGlja2V0ID0+IHsNCj4gKwkJdHlwZSA9PiAic3RyaW5nIiwNCj4gKwkJZGVzY3JpcHRpb24gPT4g
InRpY2tldCByZXR1cm4gYnkgaW5pdGlhbCAnbXR1bm5lbCcgQVBJIGNhbGwsIG9yIHJldHJpZXZl
ZCB2aWEgJ3RpY2tldCcgdHVubmVsIGNvbW1hbmQiLA0KPiArCSAgICB9LA0KPiArCX0sDQo+ICsg
ICAgfSwNCj4gKyAgICByZXR1cm5zID0+IHsNCj4gKwl0eXBlID0+ICJvYmplY3QiLA0KPiArCXBy
b3BlcnRpZXMgPT4gew0KPiArCSAgICBwb3J0ID0+IHsgdHlwZSA9PiAnc3RyaW5nJywgb3B0aW9u
YWwgPT4gMSB9LA0KPiArCSAgICBzb2NrZXQgPT4geyB0eXBlID0+ICdzdHJpbmcnLCBvcHRpb25h
bCA9PiAxIH0sDQo+ICsJfSwNCj4gKyAgICB9LA0KPiArICAgIGNvZGUgPT4gc3ViIHsNCj4gKwlt
eSAoJHBhcmFtKSA9IEBfOw0KPiArDQo+ICsJbXkgJHJwY2VudiA9IFBWRTo6UlBDRW52aXJvbm1l
bnQ6OmdldCgpOw0KPiArCW15ICRhdXRodXNlciA9ICRycGNlbnYtPmdldF91c2VyKCk7DQo+ICsN
Cj4gKwlteSAkbm9kZW5hbWUgPSBQVkU6OklOb3RpZnk6Om5vZGVuYW1lKCk7DQo+ICsJbXkgJG5v
ZGUgPSBleHRyYWN0X3BhcmFtKCRwYXJhbSwgJ25vZGUnKTsNCj4gKw0KPiArCXJhaXNlX3BhcmFt
X2V4Yyh7IG5vZGUgPT4gIm5vZGUgbmVlZHMgdG8gYmUgJ2xvY2FsaG9zdCcgb3IgbG9jYWwgaG9z
dG5hbWUgJyRub2RlbmFtZSciIH0pDQo+ICsJICAgIGlmICRub2RlIG5lICdsb2NhbGhvc3QnICYm
ICRub2RlIG5lICRub2RlbmFtZTsNCj4gKw0KPiArCW15ICR2bWlkID0gJHBhcmFtLT57dm1pZH07
DQo+ICsJIyBjaGVjayBWTSBleGlzdHMNCj4gKwlQVkU6OlFlbXVDb25maWctPmxvYWRfY29uZmln
KCR2bWlkKTsNCj4gKw0KPiArCW15ICRzb2NrZXQgPSAkcGFyYW0tPntzb2NrZXR9Ow0KPiArCVBW
RTo6QWNjZXNzQ29udHJvbDo6dmVyaWZ5X3R1bm5lbF90aWNrZXQoJHBhcmFtLT57dGlja2V0fSwg
JGF1dGh1c2VyLCAiL3NvY2tldC8kc29ja2V0Iik7DQo+ICsNCj4gKwlyZXR1cm4geyBzb2NrZXQg
PT4gJHNvY2tldCB9Ow0KPiArICAgIH19KTsNCj4gKw0KPiAgIDE7DQo+IGRpZmYgLS1naXQgYS9k
ZWJpYW4vY29udHJvbCBiL2RlYmlhbi9jb250cm9sDQo+IGluZGV4IGE5MGVjZDZmLi5jZTQ2OWNi
ZCAxMDA2NDQNCj4gLS0tIGEvZGViaWFuL2NvbnRyb2wNCj4gKysrIGIvZGViaWFuL2NvbnRyb2wN
Cj4gQEAgLTMzLDcgKzMzLDcgQEAgRGVwZW5kczogZGJ1cywNCj4gICAgICAgICAgICBsaWJqc29u
LXBlcmwsDQo+ICAgICAgICAgICAgbGlianNvbi14cy1wZXJsLA0KPiAgICAgICAgICAgIGxpYm5l
dC1zc2xlYXktcGVybCwNCj4gLSAgICAgICAgIGxpYnB2ZS1hY2Nlc3MtY29udHJvbCAoPj0gNS4w
LTcpLA0KPiArICAgICAgICAgbGlicHZlLWFjY2Vzcy1jb250cm9sICg+PSA3LjAtNyksDQo+ICAg
ICAgICAgICAgbGlicHZlLWNsdXN0ZXItcGVybCwNCj4gICAgICAgICAgICBsaWJwdmUtY29tbW9u
LXBlcmwgKD49IDcuMS00KSwNCj4gICAgICAgICAgICBsaWJwdmUtZ3Vlc3QtY29tbW9uLXBlcmwg
KD49IDQuMS0xKSwNCg0K