From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web11.521.1588286387140531700 for ; Thu, 30 Apr 2020 15:39:47 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=PaagBJPG; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: nathaniel.l.desimone@intel.com) IronPort-SDR: GzlqTeeSoUWBaZWVNqGZJ9ydhZddvWzFkK6Z4/9DGk+5NmZ7yRVuemd+u4QYC1/nL1w6cuhMBl SuEvyVDt9zPA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Apr 2020 15:07:29 -0700 IronPort-SDR: aC2RAwUyYqnsdwJnEnoTIj0dgf8WJZbKhHvqMJhf6lf5p9M/x9wFL8NWoPxNzC9Mt0vbAmszn5 rwxVg1PSnAtw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,337,1583222400"; d="scan'208";a="258450282" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga003.jf.intel.com with ESMTP; 30 Apr 2020 15:07:29 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 30 Apr 2020 15:07:28 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 30 Apr 2020 15:07:28 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 30 Apr 2020 15:07:28 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.102) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 30 Apr 2020 15:07:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kciJBqHIc9k/XMtQYFUl0TZ6pUOvPmHNqfeay0HD5xrmK2zUL8KMjAWX3+yGOSy//fc05KU5E/rfKwSt1FLhgMjcyfYWyt7QeiHb+sNfzyQq37vp4Ry6bUFgZ8IjkV9dvjruLW01VRi3glcxVHea/KNFJJQS5LblgvyjDOjB3HN/ycpr3/YiMPgecZ9kKYxWmux7+a0s/FPIMdKVoYY9VczdFOHkw3rxSZsYYkhhy5fqZqNZCVyDSuUFq+XJ9Tb0t+DWBFDOcs9WrBvo9/qgBG5KZTZ+7Kf0EGzIKACj0yg8opZUKSjsqftaLF7kYGFSgdD8IDoiDADpcyyjXcYxSw== 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=GG2RIpkEwWi7/RUvrOrFQFVx0SJxGNnWubaD0susFWY=; b=T4XlG/rRwYMHJ5DfN77l5u07eiWDhCmZrSkH9JBqMotekn2c7Z2CMawEBSf2x7Q2woeJQCi91bQVYqGUD95MPiJbqoK2IJarV5ZhLymPtdemrqeq5EyYqvl6IefY5T1ubcCZb5GNWCE1R22uBLcNJiXB36O6hz5oCD2KTcrDDzDrBEGMDsvljVQBn9rMKAs2JXISu0xKj2yJT/HyxzrYWjfo1uEYt8M7VlZiwfrjRPn42NKN9EwYle2WazM0cydpo2lRJKiqHXLN+vyDJmMoAvXOjk6ldO54LNFuTiF6Uy8RoFA3jLOk93axVTQ/GGLK+Nw2GGNinv+DXTrif53HDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GG2RIpkEwWi7/RUvrOrFQFVx0SJxGNnWubaD0susFWY=; b=PaagBJPGI64QixwKOUSiuGHQY2DEoLnSaCUuXZH/z5sri8Sp3vTU1TgOxXXAE0MJ2BoLN3/Xhu1JZwyx4mspnkGHntaveQGx2J8z33yE3ZCNApCu46veqWvj+faS76FT45+WdxAblEdsGikOlWNjLU5RWsHrGE+4c2BfyhFXzLg= Received: from BL0PR11MB3489.namprd11.prod.outlook.com (2603:10b6:208:75::29) by BL0PR11MB3235.namprd11.prod.outlook.com (2603:10b6:208:6b::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.22; Thu, 30 Apr 2020 22:07:18 +0000 Received: from BL0PR11MB3489.namprd11.prod.outlook.com ([fe80::d0f8:bfd7:bae2:3e42]) by BL0PR11MB3489.namprd11.prod.outlook.com ([fe80::d0f8:bfd7:bae2:3e42%7]) with mapi id 15.20.2937.026; Thu, 30 Apr 2020 22:07:18 +0000 From: "Nate DeSimone" To: "Bjorge, Erik C" , "Desimone, Ashley E" , "devel@edk2.groups.io" CC: "Pandya, Puja" , Bret Barkelew , "Agyeman, Prince" Subject: Re: [edk2-staging/EdkRepo] [PATCH 5/7] EdkRepo: Add ability to find projects across all manifest repositories Thread-Topic: [edk2-staging/EdkRepo] [PATCH 5/7] EdkRepo: Add ability to find projects across all manifest repositories Thread-Index: AQHWHagVxJ91fJTjIEm7RoOnaGSrlqiSLlHAgAAGVID//5IdgA== Date: Thu, 30 Apr 2020 22:07:18 +0000 Message-ID: <51A46C55-F745-442B-86F4-B7DBB1166E5E@intel.com> References: <20200428215710.45504-1-ashley.e.desimone@intel.com> <20200428215710.45504-6-ashley.e.desimone@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/16.36.20041300 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [134.134.136.215] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1ba74fb9-eba6-41b4-5d43-08d7ed52d931 x-ms-traffictypediagnostic: BL0PR11MB3235: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0389EDA07F x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR11MB3489.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(39860400002)(366004)(376002)(136003)(346002)(396003)(6512007)(478600001)(107886003)(4326008)(86362001)(2906002)(8936002)(8676002)(33656002)(6486002)(316002)(2616005)(71200400001)(54906003)(110136005)(66946007)(76116006)(91956017)(66446008)(66556008)(186003)(64756008)(66476007)(5660300002)(26005)(53546011)(6506007)(36756003)(37363001);DIR:OUT;SFP:1102; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ZOblCi94GW41Y9cZlvB6V4xz64G/lCtBo6/POTqbQ8PzOE6ZgWUbX06sTRroba2rPb4wDdd4fMNBDabmki7h4qA2ji+AyeWVNEYvEuSoi4rP+qW/P1ZjZs7qZCUAxsGhNTRjN1sZEEinpaNTKa0W64kngkwbLgoDFp83H7cuXCuijkUXKLWkzC9BYtnD5h5utbN8lVLclqVqhNs0tbRsR/jq25/i4gFOKoTVNji9LCcBVX9xBcKxqjFBzJaMPkqa0o0ERgWb49lIcteXMGoQzH3AyO9OC7zePZDjL3psv5DmwScLfj7i6UugCPLR3ePP67VHb4qf52a8tEFRKOxiOlDQF9uk/EO5u2dqpQ/apDxYPDMOtUbvCnZm4kMm6Z23IfYXM6kFdbE9ZzuBpPEL6/gLXAEhsqhH9ouE/ZwJaoj4MHqu+zjLzspMNTJ5vd2I1gsS+0xG2fichv/7vK6XsLuGQ1J2Mkaoxj0EpwvWj0XzIl7tvn8lWlibc00PZiav x-ms-exchange-antispam-messagedata: Yc1nIueM8Rg9sqKXjj/R3pn43+0jIKRWSKrmrizDDkZe3FVhR7l4w+Y7sYItmyrm7I0cihg82efuH+dOo2fzN3bPpjhJm+DgEG5bS+DaDpw8zolyCjMTROHFkjM/gGActROFM9D0GUfYS1myhZcFxlYEfy10eWlwayUMwR7chh6l5tyS4nnjg+tDbRsYYjo+WalHQiMeiL8TY4bJJQqH6EesZSYKgZTzrjLQ2P3FAPn2ij8+u2UiAGAcZiGRvAsyv7/NrhewDkQ6rBGBS7cd3exxAYco5s4k5UcXAtAyx/139KUV3LmNgzfTXhAqlvIf1tG0oY5LwQ1nR7jA0NNnuXqTW7OL3pxBEJ/w3uzLiVSr9/z2t3638P02g8MVXZINqBYuBgt2q7ATSD7r5DXODEULD+tykLTef+EifiLQhkaKqLKGCVNZwdEZ3T+qQM6WIjmLPpF3YGUcU1NnB2DGX25FKypHRykrICeDaT8cH3rQGzuXEx8aPQvJWRJQQHETrmLGPEgrt5KPcCqcXwOp/GbovXIKIzEnDA2SHyRZ9X8JEXUvmZgQhoTSKRlj53NWC/sNX62vSN71+JntfW88M7AQEAHno2NdqJlXWgS36oRhjmTA/HEV8xs3ElG5+flE6ySiyJ4tf9waYxuvQNn49yi1pso9uhBCz6S9g6NzG+eClAg78gvfNWoESx+z364uNmjPIIyuzGIYBgd4TyWKiqaFgaJu5sVbYpKx76jMmWY9f66mvyLiZRhIaAfMFsfKU0oadkOQLG3zn2x4mkJc7lDPUU1R3m0am4I/VF9Bu+LBmk+ra8D3BpzkQzQoodEO MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 1ba74fb9-eba6-41b4-5d43-08d7ed52d931 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2020 22:07:18.1817 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: DHYeluto12e3nJVL4hV7PhC7UGLn0eGSt83QphTZTkHSez7DN7IHs2KvOQq3J5jvn2n1wz5eUTju/NQkYdIMxNda7AAoCLRXy5FQD4mNydo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR11MB3235 Return-Path: nathaniel.l.desimone@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 SGkgRXJpaywNCg0KU3VyZSwgc291bmRzIGdvb2QuDQoNClRoYW5rcywNCk5hdGUNCg0K77u/T24g NC8zMC8yMCwgMjo0MCBQTSwgIkJqb3JnZSwgRXJpayBDIiA8ZXJpay5jLmJqb3JnZUBpbnRlbC5j b20+IHdyb3RlOg0KDQogICAgSSBhZ3JlZSB3aXRoIHlvdXIgY29tbWVudCBhYm91dCBtb3Zpbmcg bWFnaWMgc3RyaW5ncyB0byBhIGNvbW1vbiBsb2NhdGlvbi4gIEkgd291bGQgc3VnZ2VzdCB0aGF0 IHdlIHB1dCBpdCBzb21lcGxhY2Ugb3RoZXIgdGhhbiBodW1ibGUucHkuICBJIHRoaW5rIHdlIHNo b3VsZCBhZGQgYSBuZXcgZmlsZSBmb3IgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBsaWtlIHRoaXMu ICBJIHRoaW5rIHNvbWV0aGluZyBsaWtlIHRvb2xfY29uZmlnLnB5IHdvdWxkIGJlIGdvb2QuDQoN CiAgICBUaGFua3MsDQogICAgLUVyaWsNCg0KICAgIC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQogICAgRnJvbTogRGVzaW1vbmUsIE5hdGhhbmllbCBMIDxuYXRoYW5pZWwubC5kZXNpbW9uZUBp bnRlbC5jb20+IA0KICAgIFNlbnQ6IFRodXJzZGF5LCBBcHJpbCAzMCwgMjAyMCAyOjI5IFBNDQog ICAgVG86IERlc2ltb25lLCBBc2hsZXkgRSA8YXNobGV5LmUuZGVzaW1vbmVAaW50ZWwuY29tPjsg ZGV2ZWxAZWRrMi5ncm91cHMuaW8NCiAgICBDYzogUGFuZHlhLCBQdWphIDxwdWphLnBhbmR5YUBp bnRlbC5jb20+OyBCam9yZ2UsIEVyaWsgQyA8ZXJpay5jLmJqb3JnZUBpbnRlbC5jb20+OyBCcmV0 IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+OyBBZ3llbWFuLCBQcmluY2Ug PHByaW5jZS5hZ3llbWFuQGludGVsLmNvbT4NCiAgICBTdWJqZWN0OiBSRTogW2VkazItc3RhZ2lu Zy9FZGtSZXBvXSBbUEFUQ0ggNS83XSBFZGtSZXBvOiBBZGQgYWJpbGl0eSB0byBmaW5kIHByb2pl Y3RzIGFjcm9zcyBhbGwgbWFuaWZlc3QgcmVwb3NpdG9yaWVzDQoNCiAgICBIaSBBc2hsZXksDQoN CiAgICBQbGVhc2Ugc2VlIGNvbW1lbnRzIGlubGluZS4NCg0KICAgIFRoYW5rcywNCiAgICBOYXRl DQoNCiAgICA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQogICAgPiBGcm9tOiBEZXNpbW9u ZSwgQXNobGV5IEUgPGFzaGxleS5lLmRlc2ltb25lQGludGVsLmNvbT4NCiAgICA+IFNlbnQ6IFR1 ZXNkYXksIEFwcmlsIDI4LCAyMDIwIDI6NTcgUE0NCiAgICA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbw0KICAgID4gQ2M6IERlc2ltb25lLCBOYXRoYW5pZWwgTCA8bmF0aGFuaWVsLmwuZGVzaW1v bmVAaW50ZWwuY29tPjsgUGFuZHlhLCANCiAgICA+IFB1amEgPHB1amEucGFuZHlhQGludGVsLmNv bT47IEJqb3JnZSwgRXJpayBDIA0KICAgID4gPGVyaWsuYy5iam9yZ2VAaW50ZWwuY29tPjsgQnJl dCBCYXJrZWxldyANCiAgICA+IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+OyBBZ3llbWFu LCBQcmluY2UgDQogICAgPiA8cHJpbmNlLmFneWVtYW5AaW50ZWwuY29tPg0KICAgID4gU3ViamVj dDogW2VkazItc3RhZ2luZy9FZGtSZXBvXSBbUEFUQ0ggNS83XSBFZGtSZXBvOiBBZGQgYWJpbGl0 eSB0byANCiAgICA+IGZpbmQgcHJvamVjdHMgYWNyb3NzIGFsbCBtYW5pZmVzdCByZXBvc2l0b3Jp ZXMNCiAgICA+IA0KICAgID4gQWRkIGZpbmRfcHJvamVjdF9pbl9hbGxfaW5kaWNpZXMoKSB0byBz ZWFyY2ggZm9yIGFuZCByZXR1cm4gYSB0dXBsZSANCiAgICA+IChzb3VyY2UgcmVwbywgc291cmNl IGNvbmZpZywgcGF0aCB0byBtYW5pZmVzdCkgaWYgYSBtYXRjaGluZyBwcm9qZWN0IGlzIGZvdW5k Lg0KICAgID4gDQogICAgPiBBZGQgZmluZF9wcm9qZWN0X2luX3NpbmdsZV9pbmRleCgpIHRvIGZp bmQgdGhlIHBhdGggdG8gYSBwcm9qZWN0IA0KICAgID4gd2l0aGluIGEgc2luZ2xlIG1hbmlmZXN0 IHJlcG9zaXRvcmllcyBpbmRleCBmaWxlIGFuZCByZXR1cm4gYSB3aGV0aGVyIA0KICAgID4gdGhl IHNwZWNpZmllZCBwcm9qZWN0IHdhcyBmb3VuZCBhbmQgaWYgc28gaXRzIHBhdGggd2l0aGluIHRo ZSBtYW5pZmVzdCByZXBvc2l0b3J5Lg0KICAgID4gDQogICAgPiBTaWduZWQtb2ZmLWJ5OiBBc2hs ZXkgRSBEZXNpbW9uZSA8YXNobGV5LmUuZGVzaW1vbmVAaW50ZWwuY29tPg0KICAgID4gQ2M6IE5h dGUgRGVTaW1vbmUgPG5hdGhhbmllbC5sLmRlc2ltb25lQGludGVsLmNvbT4NCiAgICA+IENjOiBQ dWphIFBhbmR5YSA8cHVqYS5wYW5keWFAaW50ZWwuY29tPg0KICAgID4gQ2M6IEVyaWsgQmpvcmdl IDxlcmlrLmMuYmpvcmdlQGludGVsLmNvbT4NCiAgICA+IENjOiBCcmV0IEJhcmtlbGV3IDxCcmV0 LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+DQogICAgPiBDYzogUHJpbmNlIEFneWVtYW4gPHByaW5j ZS5hZ3llbWFuQGludGVsLmNvbT4NCiAgICA+IC0tLQ0KICAgID4gIC4uLi9tYW5pZmVzdF9yZXBv c19tYWludGVuYW5jZS5weSAgICAgICAgICAgICAgICAgIHwgNzANCiAgICA+ICsrKysrKysrKysr KysrKysrKysrKy0NCiAgICA+ICAuLi4vd29ya3NwYWNlX21haW50ZW5hbmNlL3dvcmtzcGFjZV9t YWludGVuYW5jZS5weSB8IDE3ICsrKysrLQ0KICAgID4gIDIgZmlsZXMgY2hhbmdlZCwgODQgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCiAgICA+IA0KICAgID4gZGlmZiAtLWdpdA0KICAg ID4gYS9lZGtyZXBvL2NvbW1vbi93b3Jrc3BhY2VfbWFpbnRlbmFuY2UvbWFuaWZlc3RfcmVwb3Nf bWFpbnRlbmFuYw0KICAgID4gZS5weQ0KICAgID4gYi9lZGtyZXBvL2NvbW1vbi93b3Jrc3BhY2Vf bWFpbnRlbmFuY2UvbWFuaWZlc3RfcmVwb3NfbWFpbnRlbmFuYw0KICAgID4gZS5weQ0KICAgID4g aW5kZXggNGJkZWQ0Ni4uOWI0NDFhYyAxMDA2NDQNCiAgICA+IC0tLQ0KICAgID4gYS9lZGtyZXBv L2NvbW1vbi93b3Jrc3BhY2VfbWFpbnRlbmFuY2UvbWFuaWZlc3RfcmVwb3NfbWFpbnRlbmFuYw0K ICAgID4gZS5weQ0KICAgID4gKysrDQogICAgPiBiL2Vka3JlcG8vY29tbW9uL3dvcmtzcGFjZV9t YWludGVuYW5jZS9tYW5pZmVzdF9yZXBvc19tYWludGVuYW5jDQogICAgPiBlLnB5DQogICAgPiBA QCAtMTUsMTEgKzE1LDEyIEBAIGltcG9ydCBnaXQNCiAgICA+ICBmcm9tIGdpdCBpbXBvcnQgUmVw bw0KICAgID4gDQogICAgPiAgaW1wb3J0IGVka3JlcG8uY29uZmlnLmNvbmZpZ19mYWN0b3J5IGFz IGNmZyAtZnJvbSANCiAgICA+IGVka3JlcG8uY29tbW9uLmVka3JlcG9fZXhjZXB0aW9uIGltcG9y dCANCiAgICA+IEVka3JlcG9VbmNvbW1pdGVkQ2hhbmdlc0V4Y2VwdGlvbg0KICAgID4gK2Zyb20g ZWRrcmVwby5jb21tb24uZWRrcmVwb19leGNlcHRpb24gaW1wb3J0IA0KICAgID4gK0Vka3JlcG9V bmNvbW1pdGVkQ2hhbmdlc0V4Y2VwdGlvbiwNCiAgICA+IEVka3JlcG9JbnZhbGlkUGFyYW1ldGVy c0V4Y2VwdGlvbg0KICAgID4gIGZyb20gZWRrcmVwby5jb21tb24ucHJvZ3Jlc3NfaGFuZGxlciBp bXBvcnQgR2l0UHJvZ3Jlc3NIYW5kbGVyIGltcG9ydCANCiAgICA+IGVka3JlcG8uY29tbW9uLndv cmtzcGFjZV9tYWludGVuYW5jZS5odW1ibGUubWFuaWZlc3RfcmVwb3NfbWFpbnQNCiAgICA+IGVu YW5jZV9odW1ibGUgYXMgaHVtYmxlICBmcm9tDQogICAgPiBlZGtyZXBvLmNvbW1vbi53b3Jrc3Bh Y2VfbWFpbnRlbmFuY2Uud29ya3NwYWNlX21haW50ZW5hbmNlIGltcG9ydCANCiAgICA+IGdlbmVy YXRlX25hbWVfZm9yX29ic29sZXRlX2JhY2t1cA0KICAgID4gLQ0KICAgID4gK2Zyb20gZWRrcmVw by5jb21tb24ud29ya3NwYWNlX21haW50ZW5hbmNlLndvcmtzcGFjZV9tYWludGVuYW5jZQ0KICAg ID4gaW1wb3J0DQogICAgPiArY2FzZV9pbnNlbnNpdGl2ZV9zaW5nbGVfbWF0Y2ggZnJvbQ0KICAg ID4gZWRrcmVwb19tYW5pZmVzdF9wYXJzZXIuZWRrX21hbmlmZXN0DQogICAgPiAraW1wb3J0IENp SW5kZXhYbWwsIE1hbmlmZXN0WG1sDQogICAgPiANCiAgICA+ICBkZWYgcHVsbF9zaW5nbGVfbWFu aWZlc3RfcmVwbyh1cmwsIGJyYW5jaCwgbG9jYWxfcGF0aCwgcmVzZXRfaGFyZD1GYWxzZSk6DQog ICAgPiAgICAgICcnJw0KICAgID4gQEAgLTEzNSwzICsxMzYsNjggQEAgZGVmIGxpc3RfYXZhaWxh YmxlX21hbl9yZXBvcyhlZGtyZXBvX2NmZywNCiAgICA+IGVka3JlcG9fdXNlcl9jZmcpOg0KICAg ID4gICAgICByZXR1cm4gY2ZnX21hbl9yZXBvcywgdXNlcl9jZmdfbWFuX3JlcG9zLCBjb25mbGlj dHMNCiAgICA+IA0KICAgID4gDQogICAgPiArZGVmIGZpbmRfcHJvamVjdF9pbl9zaW5nbGVfaW5k ZXggKHByb2plY3QsIGluZGV4X2ZpbGUsIG1hbmlmZXN0X2Rpcik6DQogICAgPiArICAgICcnJw0K ICAgID4gKyAgICBGaW5kcyBhIHByb2plY3QgaW4gYSBzaW5nbGUgZ2xvYmFsIG1hbmlmZXN0IHJl cG9zaXRvcmllcyBpbmRleCBmaWxlLiBJZiBmb3VuZA0KICAgID4gKyAgICByZXR1cm5zIChUcnVl LCBwYXRoIHRvIGZpbGUpIGlmIG5vdCByZXR1cm5zIChGYWxzZSwgTm9uZSkNCiAgICA+ICsgICAg JycnDQogICAgPiArICAgIGdsb2JhbF9tYW5pZmVzdF9wYXRoID0gTm9uZQ0KICAgID4gKyAgICB0 cnk6DQogICAgPiArICAgICAgICBwcm9qX25hbWUgPSBjYXNlX2luc2Vuc2l0aXZlX3NpbmdsZV9t YXRjaChwcm9qZWN0LA0KICAgID4gaW5kZXhfZmlsZS5wcm9qZWN0X2xpc3QpDQogICAgPiArICAg IGV4Y2VwdDoNCiAgICA+ICsgICAgICAgIHByb2pfbmFtZSA9IE5vbmUNCiAgICA+ICsgICAgaWYg cHJval9uYW1lOg0KICAgID4gKyAgICAgICAgY2lfaW5kZXhfeG1sX3JlbF9wYXRoID0NCiAgICA+ IG9zLnBhdGgubm9ybXBhdGgoaW5kZXhfZmlsZS5nZXRfcHJvamVjdF94bWwocHJval9uYW1lKSkN CiAgICA+ICsgICAgICAgIGdsb2JhbF9tYW5pZmVzdF9wYXRoID0gb3MucGF0aC5qb2luKG1hbmlm ZXN0X2RpciwNCiAgICA+IGNpX2luZGV4X3htbF9yZWxfcGF0aCkNCiAgICA+ICsgICAgICAgIHJl dHVybiBUcnVlLCBnbG9iYWxfbWFuaWZlc3RfcGF0aA0KICAgID4gKyAgICBlbHNlOg0KICAgID4g KyAgICAgICAgcmV0dXJuIEZhbHNlLCBnbG9iYWxfbWFuaWZlc3RfcGF0aA0KICAgID4gKw0KICAg ID4gKw0KICAgID4gK2RlZiBmaW5kX3Byb2plY3RfaW5fYWxsX2luZGljZXMgKHByb2plY3QsIGVk a3JlcG9fY2ZnLCANCiAgICA+ICtlZGtyZXBvX3VzZXJfY2ZnLA0KICAgID4gZXhjZXB0X21zZ19t YW5fcmVwbywgZXhjZXB0X21zZ19ub3RfZm91bmQsIG1hbl9yZXBvPU5vbmUpOg0KICAgID4gKyAg ICAnJycNCiAgICA+ICsgICAgRmluZHMgdGhlIHByb2plY3QgaW4gYWxsIG1hbmlmZXN0IHJlcG9z aXRvcmllcyBsaXN0ZWQgaW4gdGhlIGVka3JlcG8uZWZnIGFuZA0KICAgID4gKyAgICBlZGtyZXBv X3VzZXIuY2ZnLiBJZiBhIHByb2plY3Qgd2l0aCB0aGUgc2FtZSBuYW1lIGlzIGZvdW5kIHVzZXMN CiAgICA+IG1hbl9yZXBvIHRvIHNlbGVjdA0KICAgID4gKyAgICB0aGUgY29ycmVjdCBlbnRyeQ0K ICAgID4gKyAgICAnJycNCiAgICA+ICsgICAgY2ZnX21hbl9yZXBvcywgdXNlcl9jZmdfbWFuX3Jl cG9zLCBjb25mbGljdHMgPQ0KICAgID4gbGlzdF9hdmFpbGFibGVfbWFuX3JlcG9zKGVka3JlcG9f Y2ZnLCBlZGtyZXBvX3VzZXJfY2ZnKQ0KICAgID4gKyAgICBwcm9qZWN0cyA9IHt9DQogICAgPiAr ICAgIGZvciByZXBvIGluIGNmZ19tYW5fcmVwb3M6DQogICAgPiArICAgICAgICBtYW5pZmVzdF9k aXIgPSBlZGtyZXBvX2NmZy5tYW5pZmVzdF9yZXBvX2Fic19wYXRoKHJlcG8pDQogICAgPiArICAg ICAgICBpbmRleF9maWxlID0gQ2lJbmRleFhtbChvcy5wYXRoLmpvaW4obWFuaWZlc3RfZGlyLCAN CiAgICA+ICsgJ0NpSW5kZXgueG1sJykpDQoNCiAgICBUaGUgbWFnaWMgc3RyaW5nICdDaUluZGV4 LnhtbCcgaXMgcmVwZWF0ZWQgc2V2ZXJhbCB0aW1lcy4gSXQgd291bGQgYmUgZ29vZCB0byBoYXZl IHNvbWV0aGluZyBsaWtlIGh1bWJsZS5weSB0aGF0IHN0b3JlcyB0aGUgbWFnaWMgc3RyaW5nLCBz byB0aGF0IGlmIHdlIGV2ZXIgY2hhbmdlIGl0IHRoYXQgY2FuIGJlIGRvbmUgcXVpY2tseS4NCg0K ICAgID4gKyAgICAgICAgZm91bmQsIG1hbl9wYXRoID0gZmluZF9wcm9qZWN0X2luX3NpbmdsZV9p bmRleChwcm9qZWN0LCANCiAgICA+ICsgaW5kZXhfZmlsZSwNCiAgICA+IG1hbmlmZXN0X2RpcikN CiAgICA+ICsgICAgICAgIGlmIGZvdW5kOg0KICAgID4gKyAgICAgICAgICAgIHByb2plY3RzW3Jl cG9dID0gKCdlZGtyZXBvX2NmZycsIG1hbl9wYXRoKQ0KICAgID4gKyAgICBmb3IgcmVwbyBpbiB1 c2VyX2NmZ19tYW5fcmVwb3M6DQogICAgPiArICAgICAgICBtYW5pZmVzdF9kaXIgPSBlZGtyZXBv X3VzZXJfY2ZnLm1hbmlmZXN0X3JlcG9fYWJzX3BhdGgocmVwbykNCiAgICA+ICsgICAgICAgIGlu ZGV4X2ZpbGUgPSBDaUluZGV4WG1sKG9zLnBhdGguam9pbihtYW5pZmVzdF9kaXIsICdDaUluZGV4 LnhtbCcpKQ0KICAgID4gKyAgICAgICAgZm91bmQsIG1hbl9wYXRoID0gZmluZF9wcm9qZWN0X2lu X3NpbmdsZV9pbmRleChwcm9qZWN0LCANCiAgICA+ICsgaW5kZXhfZmlsZSwNCiAgICA+IG1hbmlm ZXN0X2RpcikNCiAgICA+ICsgICAgICAgIGlmIGZvdW5kOg0KICAgID4gKyAgICAgICAgICAgIHBy b2plY3RzW3JlcG9dID0gKCdlZGtyZXBvX3VzZXJfY2ZnJywgbWFuX3BhdGgpDQogICAgPiArICAg IGlmIGxlbihwcm9qZWN0cy5rZXlzKCkpID09IDE6DQogICAgPiArICAgICAgICByZXBvID0gbGlz dChwcm9qZWN0cy5rZXlzKCkpWzBdDQogICAgPiArICAgICAgICByZXR1cm4gcmVwbywgcHJvamVj dHNbcmVwb11bMF0sIHByb2plY3RzW3JlcG9dWzFdDQogICAgPiArICAgIGVsaWYgbGVuKHByb2pl Y3RzLmtleXMoKSkgPiAxIGFuZCBtYW5fcmVwbzoNCiAgICA+ICsgICAgICAgIHRyeToNCiAgICA+ ICsgICAgICAgICAgICByZXR1cm4gbWFuX3JlcG8sIHByb2plY3RzW21hbl9yZXBvXVswXSwgcHJv amVjdHNbbWFuX3JlcG9dWzFdDQogICAgPiArICAgICAgICBleGNlcHQgS2V5RXJyb3I6DQogICAg PiArICAgICAgICAgICAgcmFpc2UgRWRrcmVwb0ludmFsaWRQYXJhbWV0ZXJzRXhjZXB0aW9uKGV4 Y2VwdF9tc2dfbWFuX3JlcG8pDQogICAgPiArICAgIGVsaWYgb3MucGF0aC5pc2Ficyhwcm9qZWN0 KToNCiAgICA+ICsgICAgICAgIHJldHVybiBOb25lLCBOb25lLCBwcm9qZWN0DQogICAgPiArICAg IGVsaWYgb3MucGF0aC5pc2ZpbGUob3MucGF0aC5qb2luKG9zLmdldGN3ZCgpLCBwcm9qZWN0KSk6 DQogICAgPiArICAgICAgICByZXR1cm4gTm9uZSwgTm9uZSwgb3MucGF0aC5qb2luKG9zLmdldGN3 ZCgpLCBwcm9qZWN0KQ0KICAgID4gKyAgICBlbGlmIG5vdCBvcy5wYXRoLmRpcm5hbWUocHJvamVj dCk6DQogICAgPiArICAgICAgICBmb3IgcmVwbyBpbiBjZmdfbWFuX3JlcG9zOg0KICAgID4gKyAg ICAgICAgICAgIGlmIChtYW5fcmVwbyBhbmQgKHJlcG8gPT0gbWFuX3JlcG8pKSBvciBub3QgbWFu X3JlcG86DQogICAgPiArICAgICAgICAgICAgICAgIGZvciBkaXJwYXRoLCBkaXJuYW1lLCBmaWxl bmFtZXMgaW4NCiAgICA+IG9zLndhbGsoZWRrcmVwb19jZmcubWFuaWZlc3RfcmVwb19hYnNfcGF0 aChyZXBvKSk6DQogICAgPiArICAgICAgICAgICAgICAgICAgICBpZiBwcm9qZWN0IGluIGZpbGVu YW1lczoNCiAgICA+ICsgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVwbywgJ2Vka3Jl cG9fY2ZnJywgb3MucGF0aC5qb2luKGRpcnBhdGgsIHByb2plY3QpDQogICAgPiArICAgICAgICBm b3IgcmVwbyBpbiB1c2VyX2NmZ19tYW5fcmVwb3M6DQogICAgPiArICAgICAgICAgICAgaWYgKG1h bl9yZXBvIGFuZCAocmVwbyA9PSBtYW5fcmVwbykpIG9yIG5vdCBtYW5fcmVwbzoNCiAgICA+ICsg ICAgICAgICAgICAgICAgZm9yIGRpcnBhdGgsIGRpcm5hbWUsIGZpbGVuYW1lcyBpbg0KICAgID4g b3Mud2FsayhlZGtyZXBvX3VzZXJfY2ZnLm1hbmlmZXN0X3JlcG9fYWJzX3BhdGgocmVwbykpOg0K ICAgID4gKyAgICAgICAgICAgICAgICAgICAgaWYgcHJvamVjdCBpbiBmaWxlbmFtZXM6DQogICAg PiArICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcG8sICdlZGtyZXBvX3VzZXJfY2Zn JywgDQogICAgPiArb3MucGF0aC5qb2luKGRpcnBhdGgsIHByb2plY3QpDQoNCiAgICBJZiBtYW5f cmVwbyBpcyBOb25lLCBhbmQgdGhlIHByb2plY3QgbmFtZSBleGlzdHMgaW4gbW9yZSB0aGFuIDEg bWFuaWZlc3QgcmVwb3NpdG9yeSwgdGhlbiB5b3Ugd2lsbCByZWFjaCB0aGUgZW5kIG9mIHRoaXMg ZnVuY3Rpb24gYW5kIHJldHVybiBOb25lLiBJdCBzZWVtcyBsaWtlIHRoYXQgc2hvdWxkIGJlIGEg cmFpc2VkIGV4Y2VwdGlvbiBpbnN0ZWFkLCB0ZWxsaW5nIHRoZSB1c2VyIHRoYXQgdGhleSBuZWVk IHRvIHNwZWNpZmljIGEgc3BlY2lmaWMgbWFuaWZlc3QgcmVwb3NpdG9yeSB0byBkaXNhbWJpZ3Vh dGUuDQoNCiAgICA+ICsNCiAgICA+ICsNCiAgICA+ICsNCiAgICA+ICsNCiAgICA+IGRpZmYgLS1n aXQNCiAgICA+IGEvZWRrcmVwby9jb21tb24vd29ya3NwYWNlX21haW50ZW5hbmNlL3dvcmtzcGFj ZV9tYWludGVuYW5jZS5weQ0KICAgID4gYi9lZGtyZXBvL2NvbW1vbi93b3Jrc3BhY2VfbWFpbnRl bmFuY2Uvd29ya3NwYWNlX21haW50ZW5hbmNlLnB5DQogICAgPiBpbmRleCA2ZTIwZDQzLi5iYTYy ZjZkIDEwMDY0NA0KICAgID4gLS0tDQogICAgPiBhL2Vka3JlcG8vY29tbW9uL3dvcmtzcGFjZV9t YWludGVuYW5jZS93b3Jrc3BhY2VfbWFpbnRlbmFuY2UucHkNCiAgICA+ICsrKw0KICAgID4gYi9l ZGtyZXBvL2NvbW1vbi93b3Jrc3BhY2VfbWFpbnRlbmFuY2Uvd29ya3NwYWNlX21haW50ZW5hbmNl LnB5DQogICAgPiBAQCAtMTAsNiArMTAsMTAgQEANCiAgICA+ICAnJycgQ29udGFpbnMgc2hhcmVk IHdvcmtzcGFjZSBtYWludGVuYW5jZSBmdW5jdGlvbnMuICcnJw0KICAgID4gDQogICAgPiAgaW1w b3J0IG9zDQogICAgPiAraW1wb3J0IHVuaWNvZGVkYXRhDQogICAgPiArDQogICAgPiArZnJvbSBl ZGtyZXBvLmNvbW1vbi5lZGtyZXBvX2V4Y2VwdGlvbiBpbXBvcnQgDQogICAgPiArRWRrcmVwb0Zv dW5kTXVsdGlwbGVFeGNlcHRpb24sIEVka3JlcG9Ob3RGb3VuZEV4Y2VwdGlvbiBmcm9tIA0KICAg ID4gK2Vka3JlcG8uY29tbW9uLmh1bWJsZSBpbXBvcnQgR0VOX0FfTk9UX0lOX0IsDQogICAgPiBH RU5fRk9VTkRfTVVMVF9BX0lOX0INCiAgICA+IA0KICAgID4gIGRlZiBnZW5lcmF0ZV9uYW1lX2Zv cl9vYnNvbGV0ZV9iYWNrdXAoYWJzb2x1dGVfcGF0aCk6DQogICAgPiAgICAgIGlmIG5vdCBvcy5w YXRoLmV4aXN0cyhhYnNvbHV0ZV9wYXRoKToNCiAgICA+IEBAIC0yNyw0ICszMSwxNSBAQCBkZWYN CiAgICA+IGdlbmVyYXRlX25hbWVfZm9yX29ic29sZXRlX2JhY2t1cChhYnNvbHV0ZV9wYXRoKToN CiAgICA+ICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4oZGlyX25h bWUsIHVuaXF1ZV9uYW1lKSk6DQogICAgPiAgICAgICAgICAgICAgdW5pcXVlX25hbWVfZm91bmQg PSBUcnVlDQogICAgPiAgICAgICAgICBpbmRleCArPSAxDQogICAgPiAtICAgIHJldHVybiB1bmlx dWVfbmFtZQ0KICAgID4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQogICAgPiArICAgIHJl dHVybiB1bmlxdWVfbmFtZQ0KICAgID4gKw0KICAgID4gK2RlZiBjYXNlX2luc2Vuc2l0aXZlX2Vx dWFsKHN0cjEsIHN0cjIpOg0KICAgID4gKyAgICByZXR1cm4gdW5pY29kZWRhdGEubm9ybWFsaXpl KCJORktEIiwgc3RyMS5jYXNlZm9sZCgpKSA9PSANCiAgICA+ICt1bmljb2RlZGF0YS5ub3JtYWxp emUoIk5GS0QiLCBzdHIyLmNhc2Vmb2xkKCkpDQogICAgPiArDQogICAgPiArZGVmIGNhc2VfaW5z ZW5zaXRpdmVfc2luZ2xlX21hdGNoKHN0cjEsIHN0cl9saXN0KToNCiAgICA+ICsgICAgbWF0Y2hl cyA9IFt4IGZvciB4IGluIHN0cl9saXN0IGlmIGNhc2VfaW5zZW5zaXRpdmVfZXF1YWwoc3RyMSwg eCldDQogICAgPiArICAgIGlmIGxlbihtYXRjaGVzKSA9PSAwOg0KICAgID4gKyAgICAgICAgcmFp c2UgRWRrcmVwb05vdEZvdW5kRXhjZXB0aW9uKEdFTl9BX05PVF9JTl9CLmZvcm1hdChzdHIxLA0K ICAgID4gc3RyX2xpc3QpKQ0KICAgID4gKyAgICBlbGlmIGxlbihtYXRjaGVzKSA+IDE6DQogICAg PiArICAgICAgICByYWlzZQ0KICAgID4gRWRrcmVwb0ZvdW5kTXVsdGlwbGVFeGNlcHRpb24oR0VO X0ZPVU5EX01VTFRfQV9JTl9CLmZvcm1hdChzdHIxLA0KICAgID4gc3RyX2xpc3QpKQ0KICAgID4g KyAgICByZXR1cm4gbWF0Y2hlc1swXQ0KICAgID4gLS0NCiAgICA+IDIuMTYuMi53aW5kb3dzLjEN Cg0KDQo=