From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2F153A04E7; Mon, 2 Nov 2020 20:32:28 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D8D4F2B93; Mon, 2 Nov 2020 20:32:26 +0100 (CET) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40079.outbound.protection.outlook.com [40.107.4.79]) by dpdk.org (Postfix) with ESMTP id B24E528EE for ; Mon, 2 Nov 2020 20:32:25 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NXIDwS4auFFn31jJzsagNUf2VgFwf1ij50+kwcUO5No=; b=vGnIo5tEwYec8ex5Xl4RSgl3CLqtcHbbGyfGPPFViL8vz57qzA8LkBsRARn4b/8HnZoQJtZWOWCOky0uA61BBaAIQiyMfrmH8LYa91aAqc0deAQ5eLz+liKGz+P1aG6qrdCoKHdGskjukAcbNP4rbwKm38vw3mTBxM3ObJbZurg= Received: from MR2P264CA0159.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:1::22) by PR3PR08MB5610.eurprd08.prod.outlook.com (2603:10a6:102:91::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18; Mon, 2 Nov 2020 19:32:23 +0000 Received: from VE1EUR03FT050.eop-EUR03.prod.protection.outlook.com (2603:10a6:501:1:cafe::23) by MR2P264CA0159.outlook.office365.com (2603:10a6:501:1::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18 via Frontend Transport; Mon, 2 Nov 2020 19:32:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT050.mail.protection.outlook.com (10.152.19.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3520.15 via Frontend Transport; Mon, 2 Nov 2020 19:32:22 +0000 Received: ("Tessian outbound c189680f801b:v64"); Mon, 02 Nov 2020 19:32:22 +0000 X-CR-MTA-TID: 64aa7808 Received: from ef2bd7cfa5b2.4 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 94D3263C-4099-4EC0-9F9E-1E95D3FC08F1.1; Mon, 02 Nov 2020 19:32:17 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ef2bd7cfa5b2.4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 02 Nov 2020 19:32:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I146jg36xeDgL4LPhynkd/BZ1yltFWESIcf1wj3kGtppXDbImJGAJnnrZ6kLBPvyk/5/1+R/cKxkSuV+WGsMpfCl6EAk8rOQnDskvLHDPZC2oXMpU2WN7D9lyrs34+fN2nOq39WSVkb85+4KpYkNrgg1dUGFBSTHxKLBi1w13aQAnr2XLvtdGHnLxr0Z0HTpitT1guaRvWL7ZbkrtNqy6K2YvlKKaU40yUDUX+J2XFQxVKBX2/CA1p1fi/TpNz6JLBh4QxHmstme9OKYhV/NMg+mlmIpKcLfWF7ISCjEIKeQFLlysDYgaFJFeehERNZtbrhXv7L0zwjLTb9HIx50Rg== 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-SenderADCheck; bh=NXIDwS4auFFn31jJzsagNUf2VgFwf1ij50+kwcUO5No=; b=Cqrj1rkt2lCIA3myizH2OBKk1jW+zhin7ow1GsjHwinyKO5QuuuXVEyxWiMW2+hfnT5K6TW9S/bMbPjODr2IbayLIojW6FI0n5s8KX5EoPcemMFeGitjiayakWbBN6Z4bF3JfBbvUJKBH1FG8jJncvrQireArNBwvAW/tgp0ooN+bQbLhcExxn5ulOT8nvOnJbpjlXBWJqVYps8l/71RRnbrslzOn5ZfI+RXmpNChofQCwPd1XqEqq1TYI3UJh5KZ/gyAyqO0Cbphc9TV1lvnaLsYe5CDxEOIRl5kjg8P9dXc9p+5OOp+sER1OxN3vqILr9nDJJZsRN6tFLqKMm1mQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NXIDwS4auFFn31jJzsagNUf2VgFwf1ij50+kwcUO5No=; b=vGnIo5tEwYec8ex5Xl4RSgl3CLqtcHbbGyfGPPFViL8vz57qzA8LkBsRARn4b/8HnZoQJtZWOWCOky0uA61BBaAIQiyMfrmH8LYa91aAqc0deAQ5eLz+liKGz+P1aG6qrdCoKHdGskjukAcbNP4rbwKm38vw3mTBxM3ObJbZurg= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by DBBPR08MB4872.eurprd08.prod.outlook.com (2603:10a6:10:d9::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18; Mon, 2 Nov 2020 19:32:13 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::7814:9c1:781f:475d]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::7814:9c1:781f:475d%4]) with mapi id 15.20.3499.030; Mon, 2 Nov 2020 19:32:13 +0000 From: Honnappa Nagarahalli To: =?utf-8?B?SnVyYWogTGlua2XFoQ==?= , "bruce.richardson@intel.com" , Ruifeng Wang , Phil Yang , "vcchunga@amazon.com" , Dharmik Thakkar , "jerinjacobk@gmail.com" , "hemant.agrawal@nxp.com" CC: "dev@dpdk.org" , nd , Honnappa Nagarahalli , nd Thread-Topic: [PATCH v4 2/6] build: refactor Arm build Thread-Index: AQHWq9bPhcaoO33KoUuGpt+rWvzyyqmsHFuwgAIzPwCAALDZMIAA+1wAgAVHWqA= Date: Mon, 2 Nov 2020 19:32:13 +0000 Message-ID: References: <1603280261-20206-1-git-send-email-juraj.linkes@pantheon.tech> <1603464488-25493-1-git-send-email-juraj.linkes@pantheon.tech> <1603464488-25493-3-git-send-email-juraj.linkes@pantheon.tech> <57446a00a9a948c1836b2732eb921945@pantheon.tech> In-Reply-To: <57446a00a9a948c1836b2732eb921945@pantheon.tech> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 05E5FA15291B784289E352F22EF994D9.0 x-checkrecipientchecked: true Authentication-Results-Original: pantheon.tech; dkim=none (message not signed) header.d=none; pantheon.tech; dmarc=none action=none header.from=arm.com; x-originating-ip: [70.113.13.105] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 6c77a9a4-4a66-4b53-b946-08d87f66058e x-ms-traffictypediagnostic: DBBPR08MB4872:|PR3PR08MB5610: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: NRR566JWrIdJUAuNbSo2PjVzvdvAUwWRtOxDr4g1vs+NV4hRBYNmThnoOm/kQs72gYlQXkXWknLmy6j0ihLMLDt1iJxsyr2PCHnL1PD22p50LcsWrcHkk94NbJOBoYLwXp5KRcSSOa+D70YLnsjV/hJTW3QlSYyORRm5guueayofzSbwaJVZI7Z8NAKO+YNVDLC/eEXPbPZzYT2pui8FA+RhFmHp41KnXxcqHbHko1JirvWoLPu24/RmvLaCHKpBCXPDoNXAKLkV/jxoeEVk2eKO3VqSxgbVCEF3C+snD1DTUBdF9FGRzPwK9Gevl1a/3r7IXqh9CwUUBN7+xQccjw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR08MB5814.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(346002)(136003)(39850400004)(366004)(396003)(7696005)(76116006)(66556008)(66946007)(9686003)(110136005)(66476007)(64756008)(66446008)(55016002)(54906003)(316002)(5660300002)(30864003)(52536014)(8936002)(83380400001)(8676002)(2906002)(186003)(6506007)(478600001)(33656002)(71200400001)(4326008)(26005)(86362001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: J4ZIMGAD6L1051mafvfoC3sH85awdVb6WL8PSx7F7Ob8dqnAdTptamj2Fto5DY+IDRX1DyhZQd+URLEC0qZiM7T6VU+9U0Ru9WeLn5x7Y6hf+A/GY3dNVBQtuboY2L6OtEYi+1ijVH6QlthFNSDyvipvT7XDDCfp/gNTyj6NGqvmrt9xIj72f0gdZ/kLrCQ5S1rcZjHq505K6g3x40s/0LZ5EHOR1NhaNrl4SLs8qhShPkrrZ1Ot05LVOOjmQdzEVI8BjcAyP1cA37c6FSUQ9oLWcVUwaqvvL1PpPVULjHUJcgIDdBF3oRzu7CPv9ol2I5Enq56T6LKH+Wt/V7g5/QGCc/D+iuzOPQR1/Bgry6YZY6OG3MyeAlApJk2ABbnP/3U5R4OIPuL2ZpblXdIWXj2jVTgEzEzH+3bIeH3tWabisPTKTnKvfGyfNPmsqT/BF/Pbq5cyb45AZNmZlpq//mvCVPOaqmXFaRHZRP+iesq8aT3JAZksb//tQkTfe12ycP4V0dHGDJApxwoGEwnDCenezDedyqI4g7Q4nlKt+82g8OraCLF2CtqXPKORhs5oo61X1wqEn8w+3uF0OGyW9BVP2lUqzUUCcvWcTYSJ0wTjDtYC9Ap57dsgHE2OcTiqEM0u63f44PNgRFykmoo4Rw== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4872 Original-Authentication-Results: pantheon.tech; dkim=none (message not signed) header.d=none; pantheon.tech; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT050.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 6cebcc2c-9321-48e0-6eeb-08d87f65ffc1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: G7iR+XONfiUu8hkAQvcbSH1tb7VMrCiY6HRjRDeOg245+7alKfzkz2LVdI6T32Wv1Ws4G9/Jw1IhA2ztsDTw0xb4pTKIlgxVtvTYK8e1sKj9PeIPQxceUoNdJwSjPX3mWYDQ+37+al3rdI64dpSjNInwQ/YwKCsMYz10iShG5mnBp45aFuvIJbD5kUWmJkQhBAvO/70ALgeaieJ8BJYEpGXqxgXXs9kDeLyR1K7UF/mTVhBRBGD0GYRYqGmxyG04tR3WpdTisMHvNSxcO3i36Ui7XhciPPOp8YQzODgxs7QBTb6LGwYGEptoo/9U/tZtzFjRdmV9QWuEzH0RVi0OKaP9twHDj8r46zUM6Jl3U7uS4RP914Ki4zjy0mn7t+2Cf1r0SMzhiVmWVs3PqmUIxg== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(136003)(396003)(39850400004)(376002)(346002)(46966005)(55016002)(26005)(70206006)(4326008)(52536014)(82310400003)(54906003)(110136005)(2906002)(70586007)(33656002)(478600001)(30864003)(5660300002)(9686003)(316002)(47076004)(8936002)(7696005)(36906005)(336012)(81166007)(356005)(8676002)(6506007)(86362001)(82740400003)(186003)(83380400001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2020 19:32:22.8137 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6c77a9a4-4a66-4b53-b946-08d87f66058e X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT050.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5610 Subject: Re: [dpdk-dev] [PATCH v4 2/6] build: refactor Arm build X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PHNuaXA+DQoNCj4gPiA+ID4NCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvY29uZmlnL2FybS9tZXNv bi5idWlsZCBiL2NvbmZpZy9hcm0vbWVzb24uYnVpbGQNCj4gPiA+ID4gPiBpbmRleA0KPiA+ID4g PiA+IDQ5MTg0MmNhZC4uNmMzMWFiMTY3IDEwMDY0NA0KPiA+ID4gPiA+IC0tLSBhL2NvbmZpZy9h cm0vbWVzb24uYnVpbGQNCj4gPiA+ID4gPiArKysgYi9jb25maWcvYXJtL21lc29uLmJ1aWxkDQo+ ID4gPiA+ID4gQEAgLTMsMTIgKzMsMTIgQEANCj4gPiA+ID4gPiAgIyBDb3B5cmlnaHQoYykgMjAx NyBDYXZpdW0sIEluYyAgIyBDb3B5cmlnaHQoYykgMjAyMA0KPiA+ID4gPiA+IFBBTlRIRU9OLnRl Y2ggcy5yLm8uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtIyBmb3IgY2hlY2tpbmcgZGVmaW5lcyB3 ZSBuZWVkIHRvIHVzZSB0aGUgY29ycmVjdCBjb21waWxlcg0KPiA+ID4gPiA+IGZsYWdzIC1tYXJj aF9vcHQgPSAnLW1hcmNoPUAwQCcuZm9ybWF0KG1hY2hpbmUpDQo+ID4gPiA+ID4gLQ0KPiA+ID4g PiA+ICsjIHNldCBhcm1fZm9yY2VfbmF0aXZlX21hcmNoIGlmIHlvdSB3YW50IHRvIHVzZSBtYWNo aW5lIGFyZ3MNCj4gPiA+ID4gPiArYmVsb3cgIyBpbnN0ZWFkIG9mIGRpc2NvdmVyZWQgdmFsdWVz OyBvbmx5IHdvcmtzIHdoZW4gZG9pbmcgYW4NCj4gPiA+ID4gPiArYWN0dWFsIG5hdGl2ZSBidWls ZA0KPiA+ID4gPiA+ICBhcm1fZm9yY2VfbmF0aXZlX21hcmNoID0gZmFsc2UNCj4gPiA+ID4gPiAt YXJtX2ZvcmNlX2dlbmVyaWNfbWFyY2ggPSAobWFjaGluZSA9PSAnZ2VuZXJpYycpDQo+ID4gPiA+ ID4gK25hdGl2ZV9tYWNoaW5lX2FyZ3MgPSBbJy1tYXJjaD1uYXRpdmUnLCAnLW10dW5lPW5hdGl2 ZSddDQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gWy4uLl0NCj4gPiA+ID4NCj4gPiA+ID4g PiAtDQo+ID4gPiA+ID4gLW1hY2hpbmVfYXJnc19kZWZhdWx0ID0gWw0KPiA+ID4gPiA+IC0JWydk ZWZhdWx0JywgWyctbWFyY2g9YXJtdjgtYStjcmMnLCAnLW1vdXRsaW5lLWF0b21pY3MnXV0sDQo+ ID4gPiA+ID4gLQlbJ25hdGl2ZScsIFsnLW1hcmNoPW5hdGl2ZSddXSwNCj4gPiA+ID4gPiAtCVsn MHhkMDMnLCBbJy1tY3B1PWNvcnRleC1hNTMnXV0sDQo+ID4gPiA+ID4gLQlbJzB4ZDA0JywgWyct bWNwdT1jb3J0ZXgtYTM1J11dLA0KPiA+ID4gPiA+IC0JWycweGQwNycsIFsnLW1jcHU9Y29ydGV4 LWE1NyddXSwNCj4gPiA+ID4gPiAtCVsnMHhkMDgnLCBbJy1tY3B1PWNvcnRleC1hNzInXV0sDQo+ ID4gPiA+ID4gLQlbJzB4ZDA5JywgWyctbWNwdT1jb3J0ZXgtYTczJ11dLA0KPiA+ID4gPiA+IC0J WycweGQwYScsIFsnLW1jcHU9Y29ydGV4LWE3NSddXSwNCj4gPiA+ID4gPiAtCVsnMHhkMGInLCBb Jy1tY3B1PWNvcnRleC1hNzYnXV0sDQo+ID4gPiA+ID4gLQlbJzB4ZDBjJywgWyctbWFyY2g9YXJt djguMi1hK2NyYytjcnlwdG8nLCAnLW1jcHU9bmVvdmVyc2UtDQo+IG4xJ10sDQo+ID4gPiA+ID4g ZmxhZ3NfbjFzZHBfZXh0cmFdXQ0KPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAtbWFjaGluZV9hcmdz X2Nhdml1bSA9IFsNCj4gPiA+ID4gPiAtCVsnZGVmYXVsdCcsIFsnLW1hcmNoPWFybXY4LWErY3Jj K2NyeXB0bycsJy1tY3B1PXRodW5kZXJ4J11dLA0KPiA+ID4gPiA+IC0JWyduYXRpdmUnLCBbJy1t YXJjaD1uYXRpdmUnXV0sDQo+ID4gPiA+ID4gLQlbJzB4YTEnLCBbJy1tY3B1PXRodW5kZXJ4dDg4 J10sIGZsYWdzX3RodW5kZXJ4X2V4dHJhXSwNCj4gPiA+ID4gPiAtCVsnMHhhMicsIFsnLW1jcHU9 dGh1bmRlcnh0ODEnXSwgZmxhZ3NfdGh1bmRlcnhfZXh0cmFdLA0KPiA+ID4gPiA+IC0JWycweGEz JywgWyctbWNwdT10aHVuZGVyeHQ4MyddLCBmbGFnc190aHVuZGVyeF9leHRyYV0sDQo+ID4gPiA+ ID4gLQlbJzB4YWYnLCBbJy1tYXJjaD1hcm12OC4xLWErY3JjK2NyeXB0bycsJy0NCj4gbWNwdT10 aHVuZGVyeDJ0OTknXSwNCj4gPiA+ID4gPiBmbGFnc190aHVuZGVyeDJfZXh0cmFdLA0KPiA+ID4g PiA+IC0JWycweGIyJywgWyctbWFyY2g9YXJtdjguMi1hK2NyYytjcnlwdG8rbHNlJywnLQ0KPiBt Y3B1PW9jdGVvbnR4MiddLA0KPiA+ID4gPiA+IGZsYWdzX29jdGVvbnR4Ml9leHRyYV1dDQo+ID4g PiA+ID4gLQ0KPiA+ID4gPiA+IC1tYWNoaW5lX2FyZ3NfZW1hZyA9IFsNCj4gPiA+ID4gPiAtCVsn ZGVmYXVsdCcsIFsnLW1hcmNoPWFybXY4LWErY3JjK2NyeXB0bycsICctbXR1bmU9ZW1hZyddXSwN Cj4gPiA+ID4gPiAtCVsnbmF0aXZlJywgWyctbWFyY2g9bmF0aXZlJ11dXQ0KPiA+ID4gPiA+ICsJ WydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVlXSBdICMgYXJtIGNvbmZpZw0KPiAoaW1wbGVt ZW50ZXINCj4gPiA+ID4gPiArMHg0MSkgaXMgdGhlIGRlZmF1bHQgY29uZmlnIHBuX2NvbmZpZ19k ZWZhdWx0DQo+ID4gPiA+IFdoYXQgZG9lcyBpdCBtZWFuIGJ5ICdkZWZhdWx0JyBoZXJlPyBJIGFt IHNvbWV3aGF0IGNvbmZ1c2VkDQo+ID4gPiA+IGJldHdlZW4NCj4gPiA+ICdkZWZhdWx0Jw0KPiA+ ID4gPiBhbmQgJ2dlbmVyaWMnLiBXZSBzaG91bGQgbG9vayB0byByZW1vdmUgJ2RlZmF1bHQnIGFz IG11Y2ggYXMNCj4gPiA+ID4gcG9zc2libGUgYW5kIHN0aWNrIHdpdGggJ2dlbmVyaWMnLg0KPiA+ ID4gPg0KPiA+ID4NCj4gPiA+IFRoaXMgZGVmYXVsdCBtZWFucyB3aGF0IGRlZmF1bHQgbWVhbnMs IG5vIHNwZWNpYWwgbWVhbmluZywgdGhhdCBpcw0KPiA+ID4gaWYgdGhlcmUgaXNuJ3QgYSBtb3Jl IHNwZWNpZmljIGNvbmZpZ3VyYXRpb24sIGRlZmF1bHQgdG8gdGhpcyBvbmUuDQo+ID4gPiBJdCdz IHBvc3NpYmxlIHRoYXQgZ2VuZXJpYyBpcyBiZXR0ZXIsIGJ1dCBub3cgdGhhdCBJIHRoaW5rIGFi b3V0IGl0LA0KPiA+ID4gdXNpbmcgc29tZXRoaW5nIGVsc2UgdGhhbiBkZWZhdWx0IG9yIGdlbmVy aWMgbWlnaHQgYmUgdGhlIGJlc3QgdG8NCj4gPiA+IGF2b2lkIGNvbmZ1c2lvbi4gUG9zc2libHkg anVzdCBwYXJ0X251bWJlcl9hcm0sIHdoaWNoIHdpbGwgbWFrZSBpdA0KPiA+ID4gaW4gbGluZSB3 aXRoIHRoZQ0KPiA+IG90aGVyIHZhciBuYW1lcy4NCj4gPiBBZ3JlZSwgYmV0dGVyIHRvIGNhbGwg aXQgJ3BhcnRfbnVtYmVyX2FybScuDQo+ID4NCj4gPiA+DQo+ID4gPiA+ID4gKz0gew0KPiA+ID4g PiA+ICsJJ2dlbmVyaWMnOiBbWyctbWFyY2g9YXJtdjgtYStjcmMnLCAnLW1vdXRsaW5lLWF0b21p Y3MnXV0sDQo+ID4gPiA+IEkgbGlrZSB0aGF0IHdlIGhhdmUgdGFrZW4gb3V0ICduYXRpdmUnIGZy b20gdGhpcyBsaXN0LiBXb3VsZCBpdCBiZQ0KPiA+ID4gPiBwb3NzaWJsZSB0byB0YWtlIG91dCAn Z2VuZXJpYycgZnJvbSB0aGlzIGFuZCBvdGhlcnMgYmVsb3cuIFRoaXMgaXMNCj4gPiA+ID4gYmVj YXVzZSB0aGUgYmluYXJ5IGJ1aWx0IHdpdGggJ2dlbmVyaWMnIGJ1aWxkIHNob3VsZCBydW4gb24g YW55DQo+ID4gPiA+IEFybSBwbGF0Zm9ybS4gVGhlcmUgaXMgbm8gZGVwZW5kZW5jeSBvbiBhbnkg dW5kZXJseWluZyBwbGF0Zm9ybS4NCj4gPiA+ID4NCj4gPiA+DQo+ID4gPiBUaGlzIGFjdHVhbGx5 IG1lYW5zIGdlbmVyaWMgcGFydCBmb3IgdGhlIGltcGxlbWVudGVyLCBub3QgZ2VuZXJpYw0KPiA+ ID4gZm9yIGV2ZXJ5dGhpbmcuIEkgdW5kZXJzdGFuZCB0aGlzIGlzIGhlcmUgdG8gcHJvZHVjZSBi aW5hcmllcyB0aGF0DQo+ID4gPiB3b3VsZCBydW4gb24gZXZlcnl0aGluZyBmcm9tIHRoYXQgaW1w ZWxlbWV0ZXIgKGluIGxpbmUgb2Ygd2hhdCB5b3UNCj4gPiA+IG1lbnRpb24gYmVsb3csIHRoaXMg d291bGQgYmUgaW1wbGVtZW50ZXItZ2VuZXJpYyBjb25maWd1cmF0aW9uLCBhDQo+ID4gPiBmb3Vy dGggY2F0ZWdvcnkpLiBJbiBteSBwYXRjaHNldCwgaXQncyBhbHNvIGEgZmFsbGJhY2sgd2hlbiBi dWlsZGluZw0KPiA+ID4gZm9yIGFuIHVua25vd24gcGFydCBudW1iZXIgZnJvbSB0aGUgaW1wbGVt ZW50ZXIuDQo+ID4gV2UgZG8gbm90IG5lZWQgaW1wbGVtZW50ZXItZ2VuZXJpYyBiaW5hcmllcy9i dWlsZC4gSG93ZXZlciwgd2Ugd2lsbA0KPiA+IGhhdmUgc29tZSBwYXJhbWV0ZXJzIHRoYXQgYXJl IGNvbW1vbiBhY3Jvc3MgYWxsIHRoZSBwYXJ0IG51bWJlcnMgZnJvbQ0KPiA+IHRoYXQgaW1wbGVt ZW50ZXIgKHByb2JhYmx5IHdlIHNob3VsZCBub3QgY2FsbCBpdCBhcw0KPiA+ICdpbXBsZW1lbnRl ci1nZW5lcmljJyB0byBhdm9pZCBjb25mdXNpb24uIE1heSBiZSAnaW1wbGVtZW50ZXItY29tbW9u LQ0KPiBmbGFncycgb3IgJ2ltcGxlbWVudGVyLWZsYWdzLWV4dHJhJykuDQo+ID4gVGhvc2UgcGFy YW1ldGVycyBjYW4gYmUgdXNlZCBmb3IgZXZlcnkgcGFydCBudW1iZXIuDQo+IA0KPiBUaGVzZSBh cmUgY3VycmVudGx5IG5hbWVkIGZsYWdzXzxpbXBsZW1lbnRlcj4gc3VjaCBhcyBmbGFnc19hcm0g YW5kDQo+IGZsYWdzX2Nhdml1bS4gV2UgY291bGQgcmVuYW1lIHRoZW0gdG8NCj4gaW1wbGVtZW50 ZXJfZmxhZ3NfPGltcGxlbWVudGVyPi4NCk9rDQoNCj4gDQo+ID4NCj4gPiBJZiB3ZSBrbm93IHRo ZSBpbXBsZW1lbnRlciwgd2Ugd2lsbCBoYXZlIHRoZSBwYXJ0IG51bWJlciBhcyB3ZWxsICh0aGlz DQo+ID4gaXMgcGFydCBvZiB0aGUgQXJtIGFyY2hpdGVjdHVyZSBkZWZpbml0aW9uKS4gVW5rbm93 biBwYXJ0IG51bWJlcg0KPiA+IHNob3VsZCByZXN1bHQgaW4gYW4gZXJyb3IgbWVzc2FnZS4NCj4g Pg0KPiANCj4gWWVzLCB3ZSdsbCBhbHdheXMgaGF2ZSBib3RoLiBCdXQgdGhlcmUgYXJlIHN0aWxs IGEgY291cGxlIG9mIGNvcm5lciBjYXNlcyB3aXRoDQo+IG5hdGl2ZSBidWlsZHMsIHdoaWNoIHNo b3VsZCBhbHdheXMgd29yazoNCkkgZG8gbm90IHRoaW5rIHRoZXNlIGFyZSBjb3JuZXIgY2FzZXMu IFRoZXNlIGFyZSBiYXNpY2FsbHkgY2FzZXMgd2hlcmUgdGhlIHN1cHBvcnQgaXMgbm90IGFkZGVk IHlldCBpbiB0aGUgYnVpbGQgc3lzdGVtLiBXZSBkbyBub3QgbmVlZCB0byBoYW5kbGUgdGhlc2Ug c3BlY2lmaWNhbGx5Lg0KSSBhbHNvIGRvIG5vdCB0aGluayB0aGUgbm90aW9uIHRoYXQgdGhlICdu YXRpdmUnIGJ1aWxkIHNob3VsZCBhbHdheXMgd29yayBpcyBjb3JyZWN0IChhdCBsZWFzdCBvbiBB cm0gcGxhdGZvcm1zKS4gVGhlIHJlYXNvbiBJIHNheSB0aGF0IGlzIGJlY2F1c2UgJ25hdGl2ZScs IElNTywgbm90IG9ubHkgZGVmaW5lcyB0aGUgSVNBLCBidXQgb3RoZXIgcGFyYW1ldGVycyBhcyB3 ZWxsIGluIERQREsuDQoNCj4gMS4gV2UgZG9uJ3Qgc3VwcG9ydCB0aGUgaW1wbGVtZW50ZXIgKGku ZS4gdGhlcmUncyBubyB2YXJpYWJsZSB3aXRoIG5hbWUNCj4gaW1wbGVtZW50ZXJfPGltcGxlbWVu dGVyX2lkPikuIEluIHRoaXMgY2FzZSwgd2hhdCBkbyBkZWZhdWx0IHRvPyBUaGUNCj4gZ2VuZXJp YyBidWlsZCwgd2hpY2ggaXMgdGhlIGN1cnJlbnQgYmVoYXZpb3I/DQpUaGlzIHNob3VsZCByZXN1 bHQgaW4gYW4gZXJyb3IuIFRoZSBpbXBsZW1lbnRlciBzaG91bGQgYWRkIHN1cHBvcnQgaW4gbWVz b24uYnVpbGQNCg0KPiAyLiBXZSBzdXBwb3J0IHRoZSBpbXBsZW1lbnRlciwgYnV0IHdlIGRvbid0 IHN1cHBvcnQgdGhlIHBhcnQgbnVtYmVyLiBJbg0KPiB0aGlzIGNhc2UsIHdlIGNhbiBqdXN0IHVz ZSBuYXRpdmUgbWFjaGluZSBhcmdzICgtbWFyY2g9bmF0aXZlKSBhbmQgdXNlIG9ubHkNCj4gaW1w bGVtZW50ZXIgc3BlY2lmaWMgZmxhZ3MuDQpTYW1lIHRoaW5nLCBzaG91bGQgcmVzdWx0IGluIGVy cm9yLiBUaGUgaW1wbGVtZW50ZXIgc2hvdWxkIGFkZCBzdXBwb3J0IGluIG1lc29uLmJ1aWxkLg0K DQo+IA0KPiBGb3IgZ2VuZXJpYywgc29jLXNwZWNpZmMgYW5kIGNyb3NzIGJ1aWxkcyBpdCBtYWtl cyBzZW5zZSB0byBlcnJvciB3aXRoIHVrbm93bg0KPiBpbXBsZW1lbnRlci9wYXJ0IG51bWJlciwg c2luY2Ugd2Ugd291bGRuJ3Qga25vdyB3aGF0IHRvIGJ1aWxkIG90aGVyd2lzZS4NCj4gDQo+ID4g Pg0KPiA+ID4gU2luY2UgdGhpcyBpcyBub3QgZ2VuZXJpYyBmb3IgZXZlcnl0aGluZywgb25seSBm b3IgdGhlIGltcGxlbWVudGVyLA0KPiA+ID4gd2UncmUgbGFja2luZyB0aGUgdHJ1ZSBjb21tb24g ZGVmYXVsdCBtYWNoaW5lIGFyZ3MgZm9yIGV2ZXJ5dGhpbmcuDQo+ID4gPg0KPiA+ID4gPiA+ICsJ JzB4ZDAzJzogW1snLW1jcHU9Y29ydGV4LWE1MyddXSwNCj4gPiA+ID4gPiArCScweGQwNCc6IFtb Jy1tY3B1PWNvcnRleC1hMzUnXV0sDQo+ID4gPiA+ID4gKwknMHhkMDcnOiBbWyctbWNwdT1jb3J0 ZXgtYTU3J11dLA0KPiA+ID4gPiA+ICsJJzB4ZDA4JzogW1snLW1jcHU9Y29ydGV4LWE3MiddXSwN Cj4gPiA+ID4gPiArCScweGQwOSc6IFtbJy1tY3B1PWNvcnRleC1hNzMnXV0sDQo+ID4gPiA+ID4g KwknMHhkMGEnOiBbWyctbWNwdT1jb3J0ZXgtYTc1J11dLA0KPiA+ID4gPiA+ICsJJzB4ZDBiJzog W1snLW1jcHU9Y29ydGV4LWE3NiddXSwNCj4gPiA+ID4gPiArCScweGQwYyc6IFtbJy1tYXJjaD1h cm12OC4yLWErY3JjK2NyeXB0bycsDQo+ID4gPiA+ID4gKyctbWNwdT1uZW92ZXJzZS1uMSddLCBm bGFnc19uMXNkcF9leHRyYV0NCj4gPiA+ID4gJ2ZsYWdzX24xc2RwX2V4dHJhJyBkb2VzIG5vdCBm aXQgaGVyZS4gRm9yIHRoZSBwYXJ0IG51bWJlciAnMHhkMGMnDQo+ID4gPiA+IHRoZXJlIGNvdWxk IGJlIG11bHRpcGxlIFNvQ3MgKE4xU0RQIGlzIG9uZSBvZiB0aGVtKS4gU28sIGlmIHRoZQ0KPiA+ ID4gPiBTb0MgaXMgbm90IGtub3duLCBidXQgaWYgd2Uga25vdyB0aGF0IHRoZSBDUFUgaXMgTjEs IHRoZW4gd2UNCj4gPiA+ID4gc2hvdWxkIGJ1aWxkIGEgTjEtDQo+ID4gPiBHZW5lcmljIGJ1aWxk Lg0KPiA+ID4NCj4gPiA+IFRoaXMgc2hvdWxkIGJlIGNvcmUtZ2VuZXJpYyBjb25maWd1cmF0aW9u LCBJIGNhbiByZW5hbWUgaXQgdG8NCj4gPiA+IGZsYWdzX24xZ2VuZXJpY19leHRyYS4NCj4gPiBB Z3JlZS4NCj4gPg0KPiA+ID4NCj4gPiA+ID4gU28sIGZyb20gbXkgcGVyc3BlY3RpdmUsIHRoZXJl IGFyZSAzIGtpbmRzIG9mIGJpbmFyaWVzOg0KPiA+ID4gPiAxKSBnZW5lcmljIC0gYmVzdCBwb3J0 YWJpbGl0eSAtICAocG9zc2libHkpIGxlYXN0IG9wdGltaXplZCBmb3IgYQ0KPiA+ID4gPiBnaXZl biBwbGF0Zm9ybQ0KPiA+ID4gPiAyKSBDb3JlLUdlbmVyaWMgKGZvciBleDogTjEtZ2VuZXJpYykg LSBQb3J0YWJsZSBvbiBhbGwgTjEgYmFzZWQNCj4gPiA+ID4gU29DcyBvbmx5IC0gT3B0aW1pemVk IGZvciBOMSBjb3Jlcw0KPiA+ID4gPiAzKSBTb0Mgc3BlY2lmaWMgLSAocG9zc2libHkpIE5vdCBw b3J0YWJsZSAtIE1vc3Qgb3B0aW1pemVkIGZvciB0aGUNCj4gPiA+ID4gU29DDQo+ID4gPiA+DQo+ ID4gPg0KPiA+ID4gVGhlIGZvdXJ0aCBjYXRlZ29yeSBJIG1lbnRpb25lZCBhYm92ZSwgaW1wbGVt ZW50ZXItZ2VuZXJpYywgaXMgdXNlZA0KPiA+ID4gaW4gaG93DQo+ID4gV2Ugc2hvdWxkIG5vdCBo YXZlIHRoaXMgY2F0ZWdvcnkuDQo+ID4NCj4gPiA+IHRoZSBhcm0gY29uZmlndXJhdGlvbiBpcyBj dXJyZW50bHkgcHJvY2Vzc2VkOg0KPiA+ID4gMSkgZGVmYXVsdCBjb25maWd1cmF0aW9uDQo+ID4g PiBBZGRlZCB0by9vdmVyd3JpdHRlbiBieQ0KPiA+ID4gMikgaW1wbGVtZW50ZXIgY29uZmlndXJh dGlvbiAob25lIG9mIHdoaWNoIGlzIHRoZSBjb25maWd1cmF0aW9uIGZvcg0KPiA+ID4gZ2VuZXJp Yw0KPiA+ID4gYnVpbGQpIEFkZGVkIHRvL292ZXJ3cml0dGVuIGJ5DQo+ID4gVGhpcyBzaG91bGQg YmUganVzdCBwYXJhbWV0ZXJzIHRoYXQgYXJlIGNvbW1vbiBhY3Jvc3MgYWxsIHRoZSBwYXJ0DQo+ ID4gbnVtYmVycyBvZiB0aGF0IGltcGxlbWVudGVyIChmb3IgZXg6IFJURV9DQUNIRV9MSU5FX1NJ WkUgPSAxMjgpLCBub3QgYQ0KPiBidWlsZC4NCj4gPg0KPiANCj4gSXQncyBub3QgYSBidWlsZCwg anVzdCBob3cgdGhlIGNvbmZpZ2F0aW9uIGlzIG9yZ2FuaXplZCBhbmQgcHJvY2Vzc2VkLCBhcyBp biB3ZQ0KPiBhcHBseSB0aGUgY29tbW9uIGRlZmF1bHQgZmxhZ3MsIHRoZW4gaW1wbGVtZW50ZXIg ZmxhZ3MsIHRoZW4gcGFydCBudW1iZXINCj4gZmxhZ3MgYW5kIHRoZW4gc29jIGZsYWdzLCBvdmVy d3JpdGluZyBmbGFncyBpbiBhbGwgb2YgdGhlIHN0ZXBzLg0KT2sNCg0KPiANCj4gPiA+IDMpIHBh cnQgbnVtYmVyIChvciBjb3JlLWdlbmVyaWMpIGNvbmZpZ3VyYXRpb24gQWRkZWQgdG8vb3Zlcndy aXR0ZW4NCj4gPiA+IGJ5DQo+ID4gPiA0KSBTb0MgY29uZmlndXJhdGlvbiAod2hhdCB3ZSdyZSBh ZGRpbmcgbm93KQ0KPiA+ID4NCj4gPiA+IEl0J3Mgbm90IG9yZ2FuaXplZCBhcyBjbGVhbmx5IC0g dGhlIG1hY2hpbmUgYXJncyBjb250YWluIGJvdGggMikgYW5kIDMpLg0KPiA+ID4gRGVwZW5kaW5n IG9uIHdoYXQgd2Ugd2FudCB0byBkbyB3aXRoIHRoZSAnZ2VuZXJpYycgcGFydCBudW1iZXIgSSds bA0KPiA+ID4gYWRqdXN0IHRoZSBjb25maWcgb3JnYW5pemF0aW9uLg0KPiA+ID4NCj4gPiA+ID4g IH0gcG5fY29uZmlnX2Nhdml1bSA9IHsNCj4gPiA+ID4gPiArCSdnZW5lcmljJzogW1snLW1hcmNo PWFybXY4LWErY3JjK2NyeXB0bycsICctDQo+IG1jcHU9dGh1bmRlcngnXV0sDQo+ID4gPiA+ICdn ZW5lcmljJyBkb2VzIG5vdCBtYWtlIHNlbnNlIGhlcmUuDQo+ID4gPiA+DQo+ID4gPiA+ID4gKwkn MHhhMSc6IFtbJy1tY3B1PXRodW5kZXJ4dDg4J10sIGZsYWdzX3RodW5kZXJ4X2V4dHJhXSwNCj4g PiA+ID4gPiArCScweGEyJzogW1snLW1jcHU9dGh1bmRlcnh0ODEnXSwgZmxhZ3NfdGh1bmRlcnhf ZXh0cmFdLA0KPiA+ID4gPiA+ICsJJzB4YTMnOiBbWyctbWNwdT10aHVuZGVyeHQ4MyddLCBmbGFn c190aHVuZGVyeF9leHRyYV0sDQo+ID4gPiA+ID4gKwknMHhhZic6IFtbJy1tYXJjaD1hcm12OC4x LWErY3JjK2NyeXB0bycsJy0NCj4gbWNwdT10aHVuZGVyeDJ0OTknXSwNCj4gPiA+ID4gPiBmbGFn c190aHVuZGVyeDJfZXh0cmFdLA0KPiA+ID4gPiA+ICsJJzB4YjInOg0KPiA+ID4gPiA+ICtbWyct bWFyY2g9YXJtdjguMi1hK2NyYytjcnlwdG8rbHNlJywnLW1jcHU9b2N0ZW9udHgyJ10sDQo+ID4g PiA+ID4gK2ZsYWdzX29jdGVvbnR4Ml9leHRyYV0sIH0gcG5fY29uZmlnX2VtYWcgPSB7DQo+ID4g PiA+ID4gKwknZ2VuZXJpYyc6IFtbJy1tYXJjaD1hcm12OC1hK2NyYytjcnlwdG8nLCAnLW10dW5l PWVtYWcnXV0gfQ0KPiA+ID4gPiBTYW1lIGhlcmUuDQo+ID4gPiA+IEkgdW5kZXJzdGFuZCB0aGF0 IHRoaXMgaXMgY29taW5nIGZyb20gdGhlIGV4aXN0aW5nIGNvZGUuIEJ1dCwgSQ0KPiA+ID4gPiB0 aGluayB3ZSBzaG91bGQgdHJ5IHRvIHNldCBpdCByaWdodC4NCj4gPiA+ID4NCj4gPiA+DQo+ID4g PiBUaGUgZ2VuZXJpYyBjb25maWcgZm9yIHRoZXNlIG1ha2VzIHNlbnNlIGlmIGEgZm91cnRoIGNh dGVnb3J5LA0KPiA+ID4gaW1wbGVtZW50ZXItIGdlbmVyaWMgbWFrZXMgc2Vuc2UuDQo+ID4gPiBG b3IgZXhhbXBsZSwgZm9yIHBhcnRfbnVtYmVyX2NvbmZpZ19lbWFnIHRoaXMgbWVhbnM6IGZvcg0K PiBpbXBsZW1lbnRlcg0KPiA+ID4gXzB4NTAgKEFtcGVyZSBDb21wdXRpbmcpIHVzZSB0aGUgZ2Vu ZXJpYyBtYWNoaW5lIGFyZ3MgaWYgdGhlcmUncw0KPiA+ID4gbm90aGluZyBtb3JlIHNwZWNpZmlj ICh3aGljaCB0aGVyZSBpc24ndCAtIG5vIG90aGVyIHBhcnQgbnVtYmVyKS4NCj4gPiBUaGVyZSBz aG91bGQgYmUgYSBwYXJ0IG51bWJlciBmb3IgdGhpcy4gTm90IHN1cmUgd2h5IGl0IGlzIG5vdCBw cmVzZW50DQo+ID4gaGVyZS4gSSB3aWxsIGZpbmQgb3V0IHRoZSBpbmZvLg0KPiA+DQo+ID4gPg0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gICMjIEFybSBpbXBsZW1lbnRlciBJRCAoQVJNIERESSAwNDg3 Qy5hLCBTZWN0aW9uIEc3LjIuMTA2LCBQYWdlDQo+ID4gPiA+ID4gRzctNTMyMSkNCj4gPiA+ID4g Tml0LCBXb3VsZCBiZSBnb29kIHRvIHJlbW92ZSB0aGUgcmVmZXJlbmNlIHRvIHRoZSBkb2MNCj4g PiA+ID4NCj4gPiA+DQo+ID4gPiBJcyB0aGF0IGJlY2F1c2UgdGhlIGRvY3MgbWVudGlvbmVkIGhl cmUgbWF5IG5vdCBiZSB0aGUgbW9zdCByZWNlbnQ/DQo+ID4gPiBJdCB3YXMgdXNlZnVsIHRvIG1l IGluIHVuZGVyc3RhbmRpbmcgd2hlcmUgdGhlIGltcGxlbWVudGVyL3BhcnQNCj4gPiA+IG51bWJl ciB2YWx1ZXMgY29tZSBmcm9tLg0KPiA+IFllcywgbWFpbmx5IGJlY2F1c2UgdGhlIHNwZWMgZ2V0 cyB1cGRhdGVkLiBJbnN0ZWFkIHlvdSBjb3VsZCBzYXkNCj4gPiAiUmVmZXIgdG8gTUlEUiBpbiBB cm0gQXJjaGl0ZWN0dXJlIFJlZmVyZW5jZSBNYW51YWwiKQ0KPiA+DQo+IA0KPiBPaywgSSdsbCBt YWtlIHRoaXMgY2hhbmdlLg0KPiANCj4gPiA+DQo+ID4gPiA+ID4gLWltcGxfZ2VuZXJpYyA9IFsn R2VuZXJpYyBhcm12OCcsIGZsYWdzX2dlbmVyaWMsDQo+ID4gPiA+ID4gbWFjaGluZV9hcmdzX2Rl ZmF1bHRdDQo+ID4gPiA+ID4gLWltcGxfMHg0MSA9IFsnQXJtJywgZmxhZ3NfYXJtLCBtYWNoaW5l X2FyZ3NfZGVmYXVsdF0NCj4gPiA+ID4gPiAtaW1wbF8weDQyID0gWydCcm9hZGNvbScsIGZsYWdz X2dlbmVyaWMsIG1hY2hpbmVfYXJnc19kZWZhdWx0XQ0KPiA+ID4gPiA+IC1pbXBsXzB4NDMgPSBb J0Nhdml1bScsIGZsYWdzX2Nhdml1bSwgbWFjaGluZV9hcmdzX2Nhdml1bV0NCj4gPiA+ID4gPiAt aW1wbF8weDQ0ID0gWydERUMnLCBmbGFnc19nZW5lcmljLCBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0N Cj4gPiA+ID4gPiAtaW1wbF8weDQ5ID0gWydJbmZpbmVvbicsIGZsYWdzX2dlbmVyaWMsIG1hY2hp bmVfYXJnc19kZWZhdWx0XQ0KPiA+ID4gPiA+IC1pbXBsXzB4NGQgPSBbJ01vdG9yb2xhJywgZmxh Z3NfZ2VuZXJpYywgbWFjaGluZV9hcmdzX2RlZmF1bHRdDQo+ID4gPiA+ID4gLWltcGxfMHg0ZSA9 IFsnTlZJRElBJywgZmxhZ3NfZ2VuZXJpYywgbWFjaGluZV9hcmdzX2RlZmF1bHRdDQo+ID4gPiA+ ID4gLWltcGxfMHg1MCA9IFsnQW1wZXJlIENvbXB1dGluZycsIGZsYWdzX2VtYWcsDQo+IG1hY2hp bmVfYXJnc19lbWFnXQ0KPiA+ID4gPiA+IC1pbXBsXzB4NTEgPSBbJ1F1YWxjb21tJywgZmxhZ3Nf Z2VuZXJpYywgbWFjaGluZV9hcmdzX2RlZmF1bHRdDQo+ID4gPiA+ID4gLWltcGxfMHg1MyA9IFsn U2Ftc3VuZycsIGZsYWdzX2dlbmVyaWMsIG1hY2hpbmVfYXJnc19kZWZhdWx0XQ0KPiA+ID4gPiA+ IC1pbXBsXzB4NTYgPSBbJ01hcnZlbGwgQVJNQURBJywgZmxhZ3NfYXJtYWRhLA0KPiA+ID4gPiA+ IG1hY2hpbmVfYXJnc19kZWZhdWx0XQ0KPiA+ID4gPiA+IC1pbXBsXzB4NjkgPSBbJ0ludGVsJywg ZmxhZ3NfZ2VuZXJpYywgbWFjaGluZV9hcmdzX2RlZmF1bHRdDQo+ID4gPiA+ID4gLWltcGxfZHBh YSA9IFsnTlhQIERQQUEnLCBmbGFnc19kcGFhLCBtYWNoaW5lX2FyZ3NfZGVmYXVsdF0NCj4gPiA+ ID4gPiAraW1wbF9nZW5lcmljID0gWydHZW5lcmljIGFybXY4JywgZmxhZ3NfZ2VuZXJpYywNCj4g PiA+ID4gPiArcG5fY29uZmlnX2RlZmF1bHRdDQo+ID4gPiA+ID4gK2ltcGxfMHg0MSA9IFsnQXJt JywgZmxhZ3NfYXJtLCBwbl9jb25maWdfZGVmYXVsdF0NCj4gPiA+ID4gPiAraW1wbF8weDQyID0g WydCcm9hZGNvbScsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiA+ID4gPiA+ ICtpbXBsXzB4NDMgPSBbJ0Nhdml1bScsIGZsYWdzX2Nhdml1bSwgcG5fY29uZmlnX2Nhdml1bV0N Cj4gPiA+ID4gPiAraW1wbF8weDQ0ID0gWydERUMnLCBmbGFnc19nZW5lcmljLCBwbl9jb25maWdf ZGVmYXVsdF0NCj4gPiA+ID4gPiAraW1wbF8weDQ5ID0gWydJbmZpbmVvbicsIGZsYWdzX2dlbmVy aWMsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiA+ID4gPiA+ICtpbXBsXzB4NGQgPSBbJ01vdG9yb2xh JywgZmxhZ3NfZ2VuZXJpYywgcG5fY29uZmlnX2RlZmF1bHRdDQo+ID4gPiA+ID4gK2ltcGxfMHg0 ZSA9IFsnTlZJRElBJywgZmxhZ3NfZ2VuZXJpYywgcG5fY29uZmlnX2RlZmF1bHRdDQo+ID4gPiA+ ID4gK2ltcGxfMHg1MCA9IFsnQW1wZXJlIENvbXB1dGluZycsIGZsYWdzX2VtYWcsIHBuX2NvbmZp Z19lbWFnXQ0KPiA+ID4gPiA+ICtpbXBsXzB4NTEgPSBbJ1F1YWxjb21tJywgZmxhZ3NfZ2VuZXJp YywgcG5fY29uZmlnX2RlZmF1bHRdDQo+ID4gPiA+ID4gK2ltcGxfMHg1MyA9IFsnU2Ftc3VuZycs IGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19kZWZhdWx0XQ0KPiA+ID4gPiA+ICtpbXBsXzB4NTYg PSBbJ01hcnZlbGwgQVJNQURBJywgZmxhZ3NfYXJtYWRhLCBwbl9jb25maWdfZGVmYXVsdF0NCj4g PiA+ID4gPiAraW1wbF8weDY5ID0gWydJbnRlbCcsIGZsYWdzX2dlbmVyaWMsIHBuX2NvbmZpZ19k ZWZhdWx0XQ0KPiA+ID4gPiA+ICtpbXBsX2RwYWEgPSBbJ05YUCBEUEFBJywgZmxhZ3NfZHBhYSwg cG5fY29uZmlnX2RlZmF1bHRdDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgZHBka19jb25mLnNldCgn UlRFX0FSQ0hfQVJNJywgMSkNCj4gPiA+ID4gPiBkcGRrX2NvbmYuc2V0KCdSVEVfRk9SQ0VfSU5U UklOU0lDUycsIDEpDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgaWYgZHBka19jb25mLmdldCgnUlRF X0FSQ0hfMzInKQ0KPiA+ID4gPiA+ICsJIyBhcm12NyBidWlsZA0KPiA+ID4gPiA+ICAJZHBka19j b25mLnNldCgnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDY0KQ0KPiA+ID4gPiA+ICAJZHBka19jb25m LnNldCgnUlRFX0FSQ0hfQVJNdjcnLCAxKQ0KPiA+ID4gPiA+ICAJIyB0aGUgbWluaW11bSBhcmNo aXRlY3R1cmUgc3VwcG9ydGVkLCBhcm12Ny1hLCBuZWVkcyB0aGUNCj4gZm9sbG93aW5nLA0KPiA+ ID4gPiA+ICAJIyBtay9tYWNoaW5lL2FybXY3YS9ydGUudmFycy5tayBzZXRzIGl0IHRvbw0KPiA+ ID4gPiA+ICAJbWFjaGluZV9hcmdzICs9ICctbWZwdT1uZW9uJw0KPiA+ID4gPiA+ICBlbHNlDQo+ ID4gPiA+ID4gLQlkcGRrX2NvbmYuc2V0KCdSVEVfQ0FDSEVfTElORV9TSVpFJywgMTI4KQ0KPiA+ ID4gPiA+IC0JZHBka19jb25mLnNldCgnUlRFX0FSQ0hfQVJNNjQnLCAxKQ0KPiA+ID4gPiA+ICsJ IyBhYXJjaDY0IGJ1aWxkDQo+ID4gPiA+ID4gKwlpZiBub3QgbWVzb24uaXNfY3Jvc3NfYnVpbGQo KQ0KPiA+ID4gPiA+ICsJCWlmIG1hY2hpbmUgPT0gJ2dlbmVyaWMnDQo+ID4gPiA+ID4gKwkJCSMg ZGVmYXVsdCBidWlsZA0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXl5eXl5eXl5eXl4gR2VuZXJpYyBidWlsZD8NCj4gPiA+ID4NCj4gPiA+DQo+ ID4gPiBBbHJlYWR5IGFkZHJlc3NlZCBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0KPiA+ID4NCj4gPiA+ ID4gPiArCQkJaW1wbF9jb25maWcgPSBpbXBsX2dlbmVyaWMNCj4gPiA+ID4gPiArCQkJcGFydF9u dW1iZXIgPSAnZ2VuZXJpYycNCj4gPiA+ID4gPiArCQllbHNlDQo+ID4gPiA+ID4gKwkJCSMgbmF0 aXZlIGJ1aWxkDQo+ID4gPiA+ID4gKwkJCSMgVGhlIHNjcmlwdCByZXR1cm5zIFsnSW1wbGVtZW50 ZXInLCAnVmFyaWFudCcsDQo+ID4gPiA+ID4gJ0FyY2hpdGVjdHVyZScsDQo+ID4gPiA+ID4gKwkJ CSMgJ1ByaW1hcnkgUGFydCBudW1iZXInLCAnUmV2aXNpb24nXQ0KPiA+ID4gPiA+ICsJCQlkZXRl Y3RfdmVuZG9yID0gZmluZF9wcm9ncmFtKGpvaW5fcGF0aHMoDQo+ID4gPiA+ID4gKwkJCQkJbWVz b24uY3VycmVudF9zb3VyY2VfZGlyKCksDQo+ID4gPiA+ID4gJ2FybXY4X21hY2hpbmUucHknKSkN Cj4gPiA+ID4gPiArCQkJY21kID0gcnVuX2NvbW1hbmQoZGV0ZWN0X3ZlbmRvci5wYXRoKCkpDQo+ ID4gPiA+ID4gKwkJCWlmIGNtZC5yZXR1cm5jb2RlKCkgPT0gMA0KPiA+ID4gPiA+ICsJCQkJY21k X291dHB1dCA9DQo+ID4gPiA+ID4gY21kLnN0ZG91dCgpLnRvX2xvd2VyKCkuc3RyaXAoKS5zcGxp dCgnICcpDQo+ID4gPiA+ID4gKwkJCWVuZGlmDQo+ID4gPiA+ID4gKwkJCWlmIGFybV9mb3JjZV9u YXRpdmVfbWFyY2ggPT0gdHJ1ZQ0KPiA+ID4gPiA+ICsJCQkJcGFydF9udW1iZXIgPSAnbmF0aXZl Jw0KPiA+ID4gPiA+ICsJCQllbHNlDQo+ID4gPiA+ID4gKwkJCQlwYXJ0X251bWJlciA9IGNtZF9v dXRwdXRbM10NCj4gPiA+ID4gPiArCQkJZW5kaWYNCj4gPiA+ID4gPiArCQkJIyBTZXQgdG8gZ2Vu ZXJpYyBpbXBsZW1lbnRlciBpZiBpbXBsZW1lbnRlcg0KPiBpcyBub3QNCj4gPiA+ID4gPiBmb3Vu ZA0KPiA+ID4gPiA+ICsJCQlpbXBsX2NvbmZpZyA9IGdldF92YXJpYWJsZSgnaW1wbF8nICsNCj4g Y21kX291dHB1dFswXSwNCj4gPiA+ID4gPiAnaW1wbF9nZW5lcmljJykNCj4gPiA+ID4gPiArCQll bmRpZg0KPiA+ID4gPiA+ICsJZWxzZQ0KPiA+ID4gPiA+ICsJCSMgY3Jvc3MgYnVpbGQNCj4gPiA+ ID4gPiArCQlpbXBsX2lkID0NCj4gbWVzb24uZ2V0X2Nyb3NzX3Byb3BlcnR5KCdpbXBsZW1lbnRl cl9pZCcsDQo+ID4gPiA+ID4gJ2dlbmVyaWMnKQ0KPiA+ID4gPiA+ICsJCXBhcnRfbnVtYmVyID0N Cj4gbWVzb24uZ2V0X2Nyb3NzX3Byb3BlcnR5KCdwYXJ0X251bWJlcicsDQo+ID4gPiA+ID4gJ2dl bmVyaWMnKQ0KPiA+ID4gPiA+ICsJCWltcGxfY29uZmlnID0gZ2V0X3ZhcmlhYmxlKCdpbXBsXycg KyBpbXBsX2lkKQ0KPiA+ID4gPiA+ICsJZW5kaWYNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0JbWFj aGluZSA9IFtdDQo+ID4gPiA+ID4gLQljbWRfZ2VuZXJpYyA9IFsnZ2VuZXJpYycsICcnLCAnJywg J2RlZmF1bHQnLCAnJ10NCj4gPiA+ID4gPiAtCWNtZF9vdXRwdXQgPSBjbWRfZ2VuZXJpYyAjIFNl dCBnZW5lcmljIGJ5IGRlZmF1bHQNCj4gPiA+ID4gPiAtCW1hY2hpbmVfYXJncyA9IFtdICMgQ2xl YXIgcHJldmlvdXMgbWFjaGluZSBhcmdzDQo+ID4gPiA+ID4gLQlpZiBhcm1fZm9yY2VfZ2VuZXJp Y19tYXJjaCBhbmQgbm90IG1lc29uLmlzX2Nyb3NzX2J1aWxkKCkNCj4gPiA+ID4gPiAtCQltYWNo aW5lID0gaW1wbF9nZW5lcmljDQo+ID4gPiA+ID4gLQkJaW1wbF9wbiA9ICdkZWZhdWx0Jw0KPiA+ ID4gPiA+ICsJbWVzc2FnZSgnQXJtIGltcGxlbWVudGVyOiAnICsgaW1wbF9jb25maWdbMF0pDQo+ ID4gPiA+ID4gKwltZXNzYWdlKCdBcm0gcGFydCBudW1iZXI6ICcgKyBwYXJ0X251bWJlcikNCj4g PiA+ID4gPiArDQo+ID4gPiA+ID4gKwlpbXBsZW1lbnRlcl9mbGFncyA9IGltcGxfY29uZmlnWzFd DQo+ID4gPiA+ID4gKwlwYXJ0X251bWJlcl9jb25maWcgPSBpbXBsX2NvbmZpZ1syXQ0KPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiArCWlmIHBhcnRfbnVtYmVyX2NvbmZpZy5oYXNfa2V5KHBhcnRfbnVt YmVyKQ0KPiA+ID4gPiA+ICsJCSMgdXNlIHRoZSBzcGVjaWZpZWQgcGFydF9udW1iZXIgbWFjaGlu ZSBhcmdzIGlmDQo+IGZvdW5kDQo+ID4gPiA+ID4gKwkJcGFydF9udW1iZXJfY29uZmlnID0NCj4g cGFydF9udW1iZXJfY29uZmlnW3BhcnRfbnVtYmVyXQ0KPiA+ID4gPiA+ICsJZWxpZiBwYXJ0X251 bWJlciA9PSAnbmF0aXZlJw0KPiA+ID4gPiA+ICsJCSMgdXNlIG5hdGl2ZSBtYWNoaW5lIGFyZ3MN Cj4gPiA+ID4gPiArCQlwYXJ0X251bWJlcl9jb25maWcgPSBbW25hdGl2ZV9tYWNoaW5lX2FyZ3Nd XQ0KPiA+ID4gPiA+ICAJZWxpZiBub3QgbWVzb24uaXNfY3Jvc3NfYnVpbGQoKQ0KPiA+ID4gPiA+ IC0JCSMgVGhlIHNjcmlwdCByZXR1cm5zIFsnSW1wbGVtZW50ZXInLCAnVmFyaWFudCcsDQo+ICdB cmNoaXRlY3R1cmUnLA0KPiA+ID4gPiA+IC0JCSMgJ1ByaW1hcnkgUGFydCBudW1iZXInLCAnUmV2 aXNpb24nXQ0KPiA+ID4gPiA+IC0JCWRldGVjdF92ZW5kb3IgPSBmaW5kX3Byb2dyYW0oam9pbl9w YXRocygNCj4gPiA+ID4gPiAtCQkJCW1lc29uLmN1cnJlbnRfc291cmNlX2RpcigpLA0KPiA+ID4g PiA+ICdhcm12OF9tYWNoaW5lLnB5JykpDQo+ID4gPiA+ID4gLQkJY21kID0gcnVuX2NvbW1hbmQo ZGV0ZWN0X3ZlbmRvci5wYXRoKCkpDQo+ID4gPiA+ID4gLQkJaWYgY21kLnJldHVybmNvZGUoKSA9 PSAwDQo+ID4gPiA+ID4gLQkJCWNtZF9vdXRwdXQgPQ0KPiBjbWQuc3Rkb3V0KCkudG9fbG93ZXIo KS5zdHJpcCgpLnNwbGl0KCcNCj4gPiA+ID4gPiAnKQ0KPiA+ID4gPiA+IC0JCWVuZGlmDQo+ID4g PiA+ID4gLQkJIyBTZXQgdG8gZ2VuZXJpYyBpZiB2YXJpYWJsZSBpcyBub3QgZm91bmQNCj4gPiA+ ID4gPiAtCQltYWNoaW5lID0gZ2V0X3ZhcmlhYmxlKCdpbXBsXycgKyBjbWRfb3V0cHV0WzBdLA0K PiBbJ2dlbmVyaWMnXSkNCj4gPiA+ID4gPiAtCQlpZiBtYWNoaW5lWzBdID09ICdnZW5lcmljJw0K PiA+ID4gPiA+IC0JCQltYWNoaW5lID0gaW1wbF9nZW5lcmljDQo+ID4gPiA+ID4gLQkJCWNtZF9v dXRwdXQgPSBjbWRfZ2VuZXJpYw0KPiA+ID4gPiA+IC0JCWVuZGlmDQo+ID4gPiA+ID4gLQkJaW1w bF9wbiA9IGNtZF9vdXRwdXRbM10NCj4gPiA+ID4gPiAtCQlpZiBhcm1fZm9yY2VfbmF0aXZlX21h cmNoID09IHRydWUNCj4gPiA+ID4gPiAtCQkJaW1wbF9wbiA9ICduYXRpdmUnDQo+ID4gPiA+ID4g LQkJZW5kaWYNCj4gPiA+ID4gPiArCQkjIGRlZmF1bHQgdG8gZ2VuZXJpYyBtYWNoaW5lIGFyZ3Mg aWYgcGFydF9udW1iZXIgaXMNCj4gbm90IGZvdW5kDQo+ID4gPiA+ID4gKwkJIyBhbmQgbm90IGZv cmNpbmcgbmF0aXZlIG1hY2hpbmUgYXJncw0KPiA+ID4gPiA+ICsJCSMgYnV0IGRvbid0IGRlZmF1 bHQgaW4gY3Jvc3MtYnVpbGRzOyBpZiBwYXJ0X251bWJlciBpcw0KPiBzcGVjaWZpZWQNCj4gPiA+ ID4gPiArCQkjIGluY29ycmVjdGx5IGluIGEgY3Jvc3MtZmlsZSwgaXQgbmVlZHMgdG8gYmUgZml4 ZWQgdGhlcmUNCj4gPiA+ID4gPiArCQlwYXJ0X251bWJlcl9jb25maWcgPQ0KPiBwYXJ0X251bWJl cl9jb25maWdbJ2dlbmVyaWMnXQ0KPiA+ID4gPiA+ICAJZWxzZQ0KPiA+ID4gPiA+IC0JCWltcGxf aWQgPQ0KPiBtZXNvbi5nZXRfY3Jvc3NfcHJvcGVydHkoJ2ltcGxlbWVudG9yX2lkJywNCj4gPiA+ ID4gPiAnZ2VuZXJpYycpDQo+ID4gPiA+ID4gLQkJaW1wbF9wbiA9DQo+IG1lc29uLmdldF9jcm9z c19wcm9wZXJ0eSgnaW1wbGVtZW50b3JfcG4nLA0KPiA+ID4gPiA+ICdkZWZhdWx0JykNCj4gPiA+ ID4gPiAtCQltYWNoaW5lID0gZ2V0X3ZhcmlhYmxlKCdpbXBsXycgKyBpbXBsX2lkKQ0KPiA+ID4g PiA+ICsJCSMgY3Jvc3MgYnVpbGQgYW5kIHBhcnQgbnVtYmVyIGlzIG5vdCBpbg0KPiBwYXJ0X251 bWJlcl9jb25maWcNCj4gPiA+ID4gPiArCQllcnJvcignQ3Jvc3MgYnVpbGQgcGFydCBudW1iZXIg MEAwIG5vdA0KPiA+ID4gPiA+IGZvdW5kLicuZm9ybWF0KHBhcnRfbnVtYmVyKSkNCj4gPiA+ID4g PiAgCWVuZGlmDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtCSMgQXBwbHkgQ29tbW9uIERlZmF1bHRz LiBUaGVzZSBzZXR0aW5ncyBtYXkgYmUNCj4gb3ZlcndyaXR0ZW4gYnkNCj4gPiA+ID4gPiBtYWNo aW5lDQo+ID4gPiA+ID4gLQkjIHNldHRpbmdzIGxhdGVyLg0KPiA+ID4gPiA+IC0JZm9yZWFjaCBm bGFnOiBmbGFnc19jb21tb25fZGVmYXVsdA0KPiA+ID4gPiA+IC0JCWlmIGZsYWcubGVuZ3RoKCkg PiAwDQo+ID4gPiA+ID4gLQkJCWRwZGtfY29uZi5zZXQoZmxhZ1swXSwgZmxhZ1sxXSkNCj4gPiA+ ID4gPiArCWRwZGtfZmxhZ3MgPSBmbGFnc19jb21tb25fZGVmYXVsdCArIGltcGxlbWVudGVyX2Zs YWdzDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsJaWYgcGFydF9udW1iZXJfY29uZmlnLmxlbmd0 aCgpID4gMQ0KPiA+ID4gPiA+ICsJCWRwZGtfZmxhZ3MgKz0gcGFydF9udW1iZXJfY29uZmlnWzFd DQo+ID4gPiA+ID4gKwllbmRpZg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArCW1hY2hpbmVfYXJn cyA9IFtdICMgQ2xlYXIgcHJldmlvdXMgbWFjaGluZSBhcmdzDQo+ID4gPiA+ID4gKwlmb3JlYWNo IGZsYWc6IHBhcnRfbnVtYmVyX2NvbmZpZ1swXQ0KPiA+ID4gPiA+ICsJCWlmIGNjLmhhc19hcmd1 bWVudChmbGFnKQ0KPiA+ID4gPiA+ICsJCQltYWNoaW5lX2FyZ3MgKz0gZmxhZw0KPiA+ID4gPiA+ ICAJCWVuZGlmDQo+ID4gPiA+ID4gIAllbmRmb3JlYWNoDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAt CW1lc3NhZ2UoJ0ltcGxlbWVudGVyIDogJyArIG1hY2hpbmVbMF0pDQo+ID4gPiA+ID4gLQlmb3Jl YWNoIGZsYWc6IG1hY2hpbmVbMV0NCj4gPiA+ID4gPiArCWZvcmVhY2ggZmxhZzogZHBka19mbGFn cw0KPiA+ID4gPiA+ICAJCWlmIGZsYWcubGVuZ3RoKCkgPiAwDQo+ID4gPiA+ID4gIAkJCWRwZGtf Y29uZi5zZXQoZmxhZ1swXSwgZmxhZ1sxXSkNCj4gPiA+ID4gPiAgCQllbmRpZg0KPiA+ID4gPiA+ ICAJZW5kZm9yZWFjaA0KPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAtCWZvcmVhY2ggbWFyZzogbWFj aGluZVsyXQ0KPiA+ID4gPiA+IC0JCWlmIG1hcmdbMF0gPT0gaW1wbF9wbg0KPiA+ID4gPiA+IC0J CQlmb3JlYWNoIGZsYWc6IG1hcmdbMV0NCj4gPiA+ID4gPiAtCQkJCWlmIGNjLmhhc19hcmd1bWVu dChmbGFnKQ0KPiA+ID4gPiA+IC0JCQkJCW1hY2hpbmVfYXJncyArPSBmbGFnDQo+ID4gPiA+ID4g LQkJCQllbmRpZg0KPiA+ID4gPiA+IC0JCQllbmRmb3JlYWNoDQo+ID4gPiA+ID4gLQkJCSMgQXBw bHkgYW55IGV4dHJhIG1hY2hpbmUgc3BlY2lmaWMgZmxhZ3MuDQo+ID4gPiA+ID4gLQkJCWZvcmVh Y2ggZmxhZzogbWFyZy5nZXQoMiwgZmxhZ3NfZGVmYXVsdF9leHRyYSkNCj4gPiA+ID4gPiAtCQkJ CWlmIGZsYWcubGVuZ3RoKCkgPiAwDQo+ID4gPiA+ID4gLQkJCQkJZHBka19jb25mLnNldChmbGFn WzBdLA0KPiBmbGFnWzFdKQ0KPiA+ID4gPiA+IC0JCQkJZW5kaWYNCj4gPiA+ID4gPiAtCQkJZW5k Zm9yZWFjaA0KPiA+ID4gPiA+IC0JCWVuZGlmDQo+ID4gPiA+ID4gLQllbmRmb3JlYWNoDQo+ID4g PiA+ID4gIGVuZGlmDQo+ID4gPiA+ID4gLW1lc3NhZ2UobWFjaGluZV9hcmdzKQ0KPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiArbWVzc2FnZSgnVXNpbmcgbWFjaGluZSBhcmdzOiBAMEAnLmZvcm1hdCht YWNoaW5lX2FyZ3MpKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gIGlmIChjYy5nZXRfZGVmaW5lKCdf X0FSTV9ORU9OJywgYXJnczogbWFjaGluZV9hcmdzKSAhPSAnJyBvcg0KPiA+ID4gPiA+ICAgICAg Y2MuZ2V0X2RlZmluZSgnX19hYXJjaDY0X18nLCBhcmdzOiBtYWNoaW5lX2FyZ3MpICE9ICcnKQ0K PiA+ID4gPiA+IC0tDQo+ID4gPiA+ID4gMi4yMC4xDQoNCg==