From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B632921D091AB for ; Wed, 26 Jul 2017 10:43:40 -0700 (PDT) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga105.jf.intel.com with ESMTP; 26 Jul 2017 10:45:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.40,416,1496127600"; d="scan'208";a="115990259" Received: from orsmsx105.amr.corp.intel.com ([10.22.225.132]) by orsmga002.jf.intel.com with ESMTP; 26 Jul 2017 10:45:42 -0700 Received: from orsmsx162.amr.corp.intel.com (10.22.240.85) by ORSMSX105.amr.corp.intel.com (10.22.225.132) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 26 Jul 2017 10:45:41 -0700 Received: from orsmsx113.amr.corp.intel.com ([169.254.9.9]) by ORSMSX162.amr.corp.intel.com ([169.254.3.52]) with mapi id 14.03.0319.002; Wed, 26 Jul 2017 10:45:41 -0700 From: "Kinney, Michael D" To: "Justen, Jordan L" , "edk2-devel@lists.01.org" , "Kinney, Michael D" CC: Leif Lindholm , Andrew Fish , Laszlo Ersek Thread-Topic: [Patch v4 3/6] edk2: Update to TianoCore Contribution Agreement 1.1 Thread-Index: AQHTBWyS1cE5+mkS/0eKWShOziwzzaJk0C7ggAH9JwD//5R1UA== Date: Wed, 26 Jul 2017 17:45:41 +0000 Message-ID: References: <20170724234516.12552-1-michael.d.kinney@intel.com> <20170724234516.12552-4-michael.d.kinney@intel.com> <150100419707.16362.3894920649442321083@jljusten-skl> <150108874474.30351.16986605600876589470@jljusten-skl> In-Reply-To: <150108874474.30351.16986605600876589470@jljusten-skl> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 10.0.102.7 dlp-reaction: no-action x-originating-ip: [10.22.254.139] MIME-Version: 1.0 Subject: Re: [Patch v4 3/6] edk2: Update to TianoCore Contribution Agreement 1.1 X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Jul 2017 17:43:40 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgSm9yZGFuLA0KDQpOb3Qgc3VyZSBJIHVuZGVyc3RhbmQgdGhlICd3aGl0ZXNwYWNlJyB1c2Fn ZS4NCg0KQ2FuIHlvdSBwcm92aWRlIHNvbWUgZXhhbXBsZSBzdWJqZWN0IGxpbmVzIGZvciANCmRv Y3VtZW50YXRpb24gcGF0Y2hlcyB0aGF0IEkgY2FuIGFkZCB0byB0aGUgDQp0aWFub2NvcmUtZG9j cyB3aWtpPw0KDQpMYXJnZXIgZG9jdW1lbnRzIGFyZSBicm9rZW4gdXAgaW50byBkaXJlY3Rvcmll cyBpbg0KdGhlIGRvY3VtZW50IHJlcG9zaXRvcnkgd2l0aCBhIGNoYXB0ZXIgbnVtYmVyIGFuZC9v cg0KY2hhcHRlciB0aXRsZSBpbiB0aGUgZGlyZWN0b3J5IG5hbWUuICBWZXJ5IGxhcmdlDQpkb2N1 bWVudHMgbWF5IGhhdmUgbXVsdGlwbGUgZGlyZWN0b3J5IGxldmVscy4NCg0KRm9yIHNtYWxsZXIg ZG9jdW1lbnRzLCB0aGUgLm1kIGZpbGUgYXJlIHVzdWFsbHkgYWxsDQppbiB0aGUgcm9vdCBkaXJl Y3RvcnkuDQoNClRoYW5rcywNCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+IEZyb206IEp1c3RlbiwgSm9yZGFuIEwNCj4gU2VudDogV2VkbmVzZGF5LCBKdWx5IDI2LCAy MDE3IDEwOjA2IEFNDQo+IFRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+OyBlZGsyLQ0KPiBkZXZlbEBsaXN0cy4wMS5vcmcNCj4gQ2M6IExlaWYgTGluZGhv bG0gPGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz47IEFuZHJldyBGaXNoDQo+IDxhZmlzaEBhcHBs ZS5jb20+OyBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiBTdWJqZWN0OiBSRTog W1BhdGNoIHY0IDMvNl0gZWRrMjogVXBkYXRlIHRvIFRpYW5vQ29yZQ0KPiBDb250cmlidXRpb24g QWdyZWVtZW50IDEuMQ0KPiANCj4gT24gMjAxNy0wNy0yNSAxMDo1NTo0NSwgS2lubmV5LCBNaWNo YWVsIEQgd3JvdGU6DQo+ID4gSGkgSm9yZGFuLA0KPiA+DQo+ID4gSSBhbHNvIGNvbnNpZGVyZWQg Y2hhbmdpbmcgQ29kZU1vZHVsZSB0byBNb2R1bGUuICBJIHdpbGwNCj4gPiBtYWtlIHRoYXQgY2hh bmdlLg0KPiA+DQo+ID4gSSBsaWtlIHRoZSBpZGVhIG9mIHByb3ZpZGluZyBhIGNoYXB0ZXIgb3Ig c2VjdGlvbiByZWZlcmVuY2UNCj4gPiBpbiBhIGRvY3VtZW50IHBhdGNoIHdoZW4gYXBwbGljYWJs ZS4gIEkgd2lsbCB1cGRhdGUgdGhlDQo+ID4gdGlhbm9jb3JlLWRvY3Mgd2lraSB3aXRoIHRoYXQg cmVjb21tZW5kYXRpb24gYXMgd2VsbC4NCj4gDQo+IFRoaXMgc291bmRzIGdvb2QsIGV4Y2VwdCBJ IGRvbid0IHRoaW5rICdjaDEwJyBpcyBhcyB1c2VmdWwgYXMNCj4gc29tZXRoaW5nIGxpa2UgJ3do aXRlc3BhY2UnLg0KPiANCj4gLUpvcmRhbg0KPiANCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IEp1c3RlbiwgSm9yZGFuIEwNCj4gPiA+IFNlbnQ6IFR1 ZXNkYXksIEp1bHkgMjUsIDIwMTcgMTA6MzcgQU0NCj4gPiA+IFRvOiBLaW5uZXksIE1pY2hhZWwg RCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBlZGsyLQ0KPiA+ID4gZGV2ZWxAbGlzdHMu MDEub3JnDQo+ID4gPiBDYzogTGVpZiBMaW5kaG9sbSA8bGVpZi5saW5kaG9sbUBsaW5hcm8ub3Jn PjsgQW5kcmV3IEZpc2gNCj4gPiA+IDxhZmlzaEBhcHBsZS5jb20+DQo+ID4gPiBTdWJqZWN0OiBS ZTogW1BhdGNoIHY0IDMvNl0gZWRrMjogVXBkYXRlIHRvIFRpYW5vQ29yZQ0KPiA+ID4gQ29udHJp YnV0aW9uIEFncmVlbWVudCAxLjENCj4gPiA+DQo+ID4gPiBPbiAyMDE3LTA3LTI0IDE2OjQ1OjEz LCBNaWNoYWVsIEQgS2lubmV5IHdyb3RlOg0KPiA+ID4gPiBodHRwczovL2J1Z3ppbGxhLnRpYW5v Y29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOQ0KPiA+ID4gPg0KPiA+ID4gPiBVcGRhdGUgdGhl IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IGZyb20gVmVyc2lvbg0KPiAxLjANCj4g PiA+ID4gdG8gVmVyc2lvbiAxLjEgdG8gY292ZXIgb3BlbiBzb3VyY2UgZG9jdW1lbnRhdGlvbg0K PiBhc3NvY2lhdGVkDQo+ID4gPiA+IHdpdGggdGhlIFRpYW5vQ29yZSBwcm9qZWN0Lg0KPiA+ID4g Pg0KPiA+ID4gPiBWZXJzaW9uIDEuMCBjb3ZlcnMgc291cmNlIGNvZGUgZmlsZXMuICBWZXJzaW9u IDEuMSBpcyBhDQo+ID4gPiA+IGJhY2t3YXJkcyBjb21wYXRpYmxlIGV4dGVuc2lvbiB0aGF0IGFk ZHMgc3VwcG9ydCBmb3INCj4gZG9jdW1lbnQNCj4gPiA+ID4gZmlsZXMgaW4gYm90aCBzb3VyY2Ug Zm9ybSBhbmQgY29tcGlsZWQgZm9ybS4NCj4gPiA+ID4NCj4gPiA+ID4gVGhlIGVkazIgcmVwb3Np dG9yeSBpcyB1cGRhdGVkIHNvIHRoZSBzYW1lIGNvbnRyaWJ1dGlvbg0KPiA+ID4gPiBhZ3JlZW1l bnQgaXMgdXNlZCBieSBkZXZlbG9wZXJzIHRoYXQgd29yayBvbiBUaWFub0NvcmUNCj4gPiA+ID4g cmVsYXRlZCBzb3VyY2UgY29kZSBvciBUaWFub0NvcmUgcmVsYXRlZCBkb2N1bWVudHMuDQo+ID4g PiA+DQo+ID4gPiA+IExpbmtzIHRvIFJGQyBhbmQgV2lraSBvbiB0aGUgR2l0Qm9vayBkb2N1bWVu dGF0aW9uIHByb2Nlc3MNCj4gPiA+ID4gKiBodHRwczovL2xpc3RzLjAxLm9yZy9waXBlcm1haWwv ZWRrMi1kZXZlbC8yMDE3LQ0KPiA+ID4gTWFyY2gvMDA4NjU0Lmh0bWwNCj4gPiA+ID4gKiBodHRw czovL2dpdGh1Yi5jb20vdGlhbm9jb3JlLWRvY3MvZWRrMi0NCj4gPiA+IFRlbXBsYXRlU3BlY2lm aWNhdGlvbi93aWtpDQo+ID4gPiA+DQo+ID4gPiA+IENjOiBMZWlmIExpbmRob2xtIDxsZWlmLmxp bmRob2xtQGxpbmFyby5vcmc+DQo+ID4gPiA+IENjOiBBbmRyZXcgRmlzaCA8YWZpc2hAYXBwbGUu Y29tPg0KPiA+ID4gPiBDYzogSm9yZGFuIEp1c3RlbiA8am9yZGFuLmwuanVzdGVuQGludGVsLmNv bT4NCj4gPiA+ID4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdy ZWVtZW50IDEuMQ0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEQgS2lubmV5DQo+IDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ID4gLS0tDQo+ID4gPiA+ICBDb250cmli dXRpb25zLnR4dCB8IDQzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0NCj4gLS0t LQ0KPiA+ID4gLS0tLS0NCj4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCsp LCAxMyBkZWxldGlvbnMoLSkNCj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL0NvbnRyaWJ1 dGlvbnMudHh0IGIvQ29udHJpYnV0aW9ucy50eHQNCj4gPiA+ID4gaW5kZXggZjg3Y2JkNzNjNi4u ZTUyZmQxYWRjYyAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvQ29udHJpYnV0aW9ucy50eHQNCj4gPiA+ ID4gKysrIGIvQ29udHJpYnV0aW9ucy50eHQNCj4gPiA+ID4gQEAgLTEsNCArMSwzIEBADQo+ID4g PiA+IC0NCj4gPiA+ID4gID09PT09PT09PT09PT09PT09PT09PT0NCj4gPiA+ID4gID0gQ29kZSBD b250cmlidXRpb25zID0NCj4gPiA+ID4gID09PT09PT09PT09PT09PT09PT09PT0NCj4gPiA+ID4g QEAgLTEyLDcgKzExLDcgQEAgVG8gbWFrZSBhIGNvbnRyaWJ1dGlvbiB0byBhIFRpYW5vQ29yZQ0K PiA+ID4gcHJvamVjdCwgZm9sbG93IHRoZXNlIHN0ZXBzLg0KPiA+ID4gPiAgICAgY29udHJpYnV0 aW9uIGlzIG1hZGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBzcGVjaWZpZWQNCj4gPiA+ID4gICAg IGNvbnRyaWJ1dGlvbiBhZ3JlZW1lbnQuICBZb3VyICJDb250cmlidXRlZC11bmRlciINCj4gbWVz c2FnZQ0KPiA+ID4gPiAgICAgbXVzdCBpbmNsdWRlIHRoZSBuYW1lIG9mIGNvbnRyaWJ1dGlvbiBh Z3JlZW1lbnQgYW5kDQo+ID4gPiB2ZXJzaW9uLg0KPiA+ID4gPiAtICAgRm9yIGV4YW1wbGU6IENv bnRyaWJ1dGVkLXVuZGVyOiBUaWFub0NvcmUgQ29udHJpYnV0aW9uDQo+ID4gPiBBZ3JlZW1lbnQg MS4wDQo+ID4gPiA+ICsgICBGb3IgZXhhbXBsZTogQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29y ZSBDb250cmlidXRpb24NCj4gPiA+IEFncmVlbWVudCAxLjENCj4gPiA+ID4gICAgIFRoZSAiVGlh bm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQiIGlzIGluY2x1ZGVkDQo+IGJlbG93DQo+ID4g PiBpbg0KPiA+ID4gPiAgICAgdGhpcyBkb2N1bWVudC4NCj4gPiA+ID4gIDQuIFN1Ym1pdCB5b3Vy IGNvZGUgdG8gdGhlIFRpYW5vQ29yZSBwcm9qZWN0IHVzaW5nIHRoZQ0KPiA+ID4gcHJvY2Vzcw0K PiA+ID4gPiBAQCAtMjgsNiArMjcsMTAgQEAgVG8gbWFrZSBhIGNvbnRyaWJ1dGlvbiB0byBhIFRp YW5vQ29yZQ0KPiA+ID4gcHJvamVjdCwgZm9sbG93IHRoZXNlIHN0ZXBzLg0KPiA+ID4gPiAgICAg KiBQeXRob24tMi4wOiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvUHl0aG9uLQ0KPiAy LjANCj4gPiA+ID4gICAgICogWmxpYjogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL1ps aWINCj4gPiA+ID4NCj4gPiA+ID4gKyAgIEZvciBkb2N1bWVudGF0aW9uOg0KPiA+ID4gPiArICAg KiBGcmVlQlNEIERvY3VtZW50YXRpb24gTGljZW5zZQ0KPiA+ID4gPiArICAgICBodHRwczovL3d3 dy5mcmVlYnNkLm9yZy9jb3B5cmlnaHQvZnJlZWJzZC1kb2MtDQo+ID4gPiBsaWNlbnNlLmh0bWwN Cj4gPiA+ID4gKw0KPiA+ID4gPiAgICAgQ29udHJpYnV0aW9ucyBvZiBjb2RlIHB1dCBpbnRvIHRo ZSBwdWJsaWMgZG9tYWluIGNhbg0KPiBhbHNvDQo+ID4gPiBiZQ0KPiA+ID4gPiAgICAgYWNjZXB0 ZWQuDQo+ID4gPiA+DQo+ID4gPiA+IEBAIC00NywxMSArNTAsMTEgQEAgYW5kIHRoZSAiQ29udHJp YnV0ZWQtdW5kZXIiIG1lc3NhZ2UuDQo+ID4gPiA+ICA9PT0gU3RhcnQgb2Ygc2FtcGxlIHBhdGNo IGVtYWlsIG1lc3NhZ2UgPT09DQo+ID4gPiA+DQo+ID4gPiA+ICBGcm9tOiBDb250cmlidXRvciBO YW1lIDxjb250cmlidXRvckBleGFtcGxlLmNvbT4NCj4gPiA+ID4gLVN1YmplY3Q6IFtQQVRDSF0g Q29kZU1vZHVsZTogQnJpZWYtc2luZ2xlLWxpbmUtc3VtbWFyeQ0KPiA+ID4gPiArU3ViamVjdDog W1JlcG9zaXRvcnkvQnJhbmNoIFBBVENIXSBDb2RlTW9kdWxlOiBCcmllZi0NCj4gc2luZ2xlLQ0K PiA+ID4gbGluZS1zdW1tYXJ5DQo+ID4gPiA+DQo+ID4gPiA+ICBGdWxsLWNvbW1pdC1tZXNzYWdl DQo+ID4gPiA+DQo+ID4gPiA+IC1Db250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1 dGlvbiBBZ3JlZW1lbnQgMS4wDQo+ID4gPiA+ICtDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3Jl IENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4gPiA+ICBTaWduZWQtb2ZmLWJ5OiBDb250 cmlidXRvciBOYW1lIDxjb250cmlidXRvckBleGFtcGxlLmNvbT4NCj4gPiA+ID4gIC0tLQ0KPiA+ ID4gPg0KPiA+ID4gPiBAQCAtNjUsMjkgKzY4LDM3IEBAIFBhdGNoIGNvbnRlbnQgaW5saW5lIG9y IGF0dGFjaGVkDQo+ID4gPiA+ICA9PT0gTm90ZXMgZm9yIHNhbXBsZSBwYXRjaCBlbWFpbCA9PT0N Cj4gPiA+ID4NCj4gPiA+ID4gICogVGhlIGZpcnN0IGxpbmUgb2YgY29tbWl0IG1lc3NhZ2UgaXMg dGFrZW4gZnJvbSB0aGUNCj4gZW1haWwncw0KPiA+ID4gc3ViamVjdA0KPiA+ID4gPiAtICBsaW5l IGZvbGxvd2luZyBbUEFUQ0hdLiBUaGUgcmVtYWluaW5nIHBvcnRpb24gb2YgdGhlDQo+IGNvbW1p dA0KPiA+ID4gbWVzc2FnZQ0KPiA+ID4gPiArICBsaW5lIGZvbGxvd2luZyBbUmVwb3NpdG9yeS9C cmFuY2ggUEFUQ0hdLiBUaGUgcmVtYWluaW5nDQo+ID4gPiBwb3J0aW9uIG9mIHRoZSBjb21taXQg bWVzc2FnZQ0KPiA+ID4gPiAgICBpcyB0aGUgZW1haWwncyBjb250ZW50IHVudGlsIHRoZSAnLS0t JyBsaW5lLg0KPiA+ID4gPiAgKiBnaXQgZm9ybWF0LXBhdGNoIGlzIG9uZSB3YXkgdG8gY3JlYXRl IHRoaXMgZm9ybWF0DQo+ID4gPiA+DQo+ID4gPiA+ICA9PT0gRGVmaW5pdGlvbnMgZm9yIHNhbXBs ZSBwYXRjaCBlbWFpbCA9PT0NCj4gPiA+ID4NCj4gPiA+ID4gLSogIkNvZGVNb2R1bGUiIGlzIGEg c2hvcnQgaWRlbmZpZXIgZm9yIHRoZSBhZmZlY3RlZCBjb2RlLg0KPiA+ID4gRm9yDQo+ID4gPiA+ IC0gIGV4YW1wbGUgTWRlUGtnLCBvciBNZGVNb2R1bGVQa2cgVXNiQnVzRHhlLg0KPiA+ID4gPiAr KiAiUmVwb3NpdG9yeSIgaXMgdGhlIGlkZW50aWZpZXIgb2YgdGhlIHJlcG9zaXRvcnkgdGhlDQo+ IHBhdGNoDQo+ID4gPiBhcHBsaWVzLg0KPiA+ID4gPiArICBUaGlzIGlkZW50aWZpZXIgc2hvdWxk IG9ubHkgYmUgcHJvdmlkZWQgZm9yDQo+IHJlcG9zaXRvcmllcw0KPiA+ID4gb3RoZXIgdGhhbg0K PiA+ID4gPiArICAnZWRrMicuIEZvciBleGFtcGxlICdlZGsyLUJ1aWxkU3BlY2lmaWNhdGlvbicg b3INCj4gJ3N0YWdpbmcnLg0KPiA+ID4gPiArKiAiQnJhbmNoIiBpcyB0aGUgaWRlbnRpZmllciBv ZiB0aGUgYnJhbmNoIHRoZSBwYXRjaA0KPiBhcHBsaWVzLg0KPiA+ID4gVGhpcw0KPiA+ID4gPiAr ICBpZGVudGlmaWVyIHNob3VsZCBvbmx5IGJlIHByb3ZpZGVkIGZvciBicmFuY2hlcyBvdGhlcg0K PiB0aGFuDQo+ID4gPiAnZWRrMi9tYXN0ZXInLg0KPiA+ID4gPiArICBGb3IgZXhhbXBsZSAnZWRr Mi9VREsyMDE1JywgJ2VkazItDQo+ID4gPiBCdWlsZFNwZWNpZmljYXRpb24vcmVsZWFzZS8xLjI3 Jywgb3INCj4gPiA+ID4gKyAgJ3N0YWdpbmcvZWRrMi10ZXN0Jy4NCj4gPiA+ID4gKyogIkNvZGVN b2R1bGUiIGlzIGEgc2hvcnQgaWRlbnRpZmllciBmb3IgdGhlIGFmZmVjdGVkDQo+IGNvZGUuDQo+ ID4gPiBUaGlzIGlkZW50aWZpZXINCj4gPiA+ID4gKyAgc2hvdWxkIG5vdCBiZSBwcm92aWRlZCBm b3IgZG9jdW1lbnRhdGlvbiBwYXRjaGVzLiBGb3INCj4gPiA+IGV4YW1wbGUgJ01kZVBrZycsDQo+ ID4gPiA+ICsgIG9yICdNZGVNb2R1bGVQa2cvVXNiQnVzRHhlJw0KPiA+ID4NCj4gPiA+IE1heWJl IHdlIGNvdWxkIHJlbmFtZSB0aGlzIGZyb20gQ29kZU1vZHVsZSB0byBNb2R1bGU/IEkNCj4gdGhp bmsgaXQNCj4gPiA+IGNvdWxkDQo+ID4gPiBhbmQgc2hvdWxkIGJlIHVzZSBpbiBkb2N1bWVudHMg d2hlcmUgZmVhc2libGUuDQo+ID4gPg0KPiA+ID4gRm9yIGV4YW1wbGUsIGluIHRoZSBzdHlsZSBn dWlkZToNCj4gPiA+DQo+ID4gPiAqIHdoaXRlc3BhY2U6IENoYW5nZSBpbnZvbHZpbmcgd2hpdGVz cGFjZSBzdHlsZQ0KPiA+ID4NCj4gPiA+ICogY2FzZTogQ2hhbmdlIGludm9sdmluZyB3b3JkIGNh c2Ugc3R5bGUNCj4gPiA+DQo+ID4gPiBJIHRoaW5rIHRoaXMgc2hvdWxkIGJlIGFwcGxpY2FibGUg aW4gYWxsIGJ1dCB0aGUgbW9zdA0KPiB0cml2aWFsDQo+ID4gPiBkb2N1bWVudHMgb3IgY29kZSBw YWNrYWdlcy4NCj4gPiA+DQo+ID4gPiBJIGFsc28gaGFkIGEgY29tbWVudCBvbiBwYXRjaCA2LCBi dXQgb3RoZXJ3aXNlIHNlcmllczoNCj4gPiA+DQo+ID4gPiBSZXZpZXdlZC1ieTogSm9yZGFuIEp1 c3RlbiA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT4NCj4gPiA+DQo+ID4gPiA+ICAqICJCcmll Zi1zaW5nbGUtbGluZS1zdW1tYXJ5IiBpcyBhIHNob3J0IHN1bW1hcnkgb2YgdGhlDQo+ID4gPiBj aGFuZ2UuDQo+ID4gPiA+ICAqIFRoZSBlbnRpcmUgZmlyc3QgbGluZSBzaG91bGQgYmUgbGVzcyB0 aGFuIH43MA0KPiBjaGFyYWN0ZXJzLg0KPiA+ID4gPiAgKiAiRnVsbC1jb21taXQtbWVzc2FnZSIg YSB2ZXJib3NlIG11bHRpcGxlIGxpbmUgY29tbWVudA0KPiA+ID4gZGVzY3JpYmluZw0KPiA+ID4g PiAgICB0aGUgY2hhbmdlLiAgRWFjaCBsaW5lIHNob3VsZCBiZSBsZXNzIHRoYW4gfjcwDQo+IGNo YXJhY3RlcnMuDQo+ID4gPiA+IC0qICJDb250cmlidXRlZC11bmRlciIgZXhwbGljaXRlbHkgc3Rh dGVzIHRoYXQgdGhlDQo+ID4gPiBjb250cmlidXRpb24gaXMNCj4gPiA+ID4gLSAgbWFkZSB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIGNvbnRyaWJ0aW9uIGFncmVlbWVudC4NCj4gVGhpcw0KPiA+ID4g PiArKiAiQ29udHJpYnV0ZWQtdW5kZXIiIGV4cGxpY2l0bHkgc3RhdGVzIHRoYXQgdGhlDQo+IGNv bnRyaWJ1dGlvbg0KPiA+ID4gaXMNCj4gPiA+ID4gKyAgbWFkZSB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIGNvbnRyaWJ1dGlvbiBhZ3JlZW1lbnQuDQo+IFRoaXMNCj4gPiA+ID4gICAgYWdyZWVtZW50 IGlzIGluY2x1ZGVkIGJlbG93IGluIHRoaXMgZG9jdW1lbnQuDQo+ID4gPiA+ICAqICJTaWduZWQt b2ZmLWJ5IiBpcyB0aGUgY29udHJpYnV0b3IncyBzaWduYXR1cmUNCj4gaWRlbnRpZnlpbmcNCj4g PiA+IHRoZW0NCj4gPiA+ID4gICAgYnkgdGhlaXIgcmVhbC9sZWdhbCBuYW1lIGFuZCB0aGVpciBl bWFpbCBhZGRyZXNzLg0KPiA+ID4gPg0KPiA+ID4gPiAgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KPiA+ID4gPiAtPSBUaWFub0NvcmUgQ29udHJpYnV0aW9uIEFncmVl bWVudCAxLjAgPQ0KPiA+ID4gPiArPSBUaWFub0NvcmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAx LjEgPQ0KPiA+ID4gPiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K PiA+ID4gPg0KPiA+ID4gPiAtSU5URUwgQ09SUE9SQVRJT04gKCJJTlRFTCIpIE1BS0VTIEFWQUlM QUJMRSBTT0ZUV0FSRSwNCj4gPiA+IERPQ1VNRU5UQVRJT04sDQo+ID4gPiA+ICtJTlRFTCBDT1JQ T1JBVElPTiAoIklOVEVMIikgTUFLRVMgQVZBSUxBQkxFIFNPRlRXQVJFLA0KPiA+ID4gRE9DVU1F TlRBVElPTiAoIkRPQ1VNRU5UQVRJT04iKSwNCj4gPiA+ID4gIElORk9STUFUSU9OIEFORC9PUiBP VEhFUiBNQVRFUklBTFMgRk9SIFVTRSBJTiBUSEUNCj4gVElBTk9DT1JFDQo+ID4gPiBPUEVOIFNP VVJDRQ0KPiA+ID4gPiAgUFJPSkVDVCAoQ09MTEVDVElWRUxZICJDT05URU5UIikuIFVTRSBPRiBU SEUgQ09OVEVOVCBJUw0KPiA+ID4gR09WRVJORUQgQlkgVEhFDQo+ID4gPiA+ICBURVJNUyBBTkQg Q09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBCRVRXRUVOIFlPVSBBTkQNCj4gSU5URUwNCj4g PiA+IEFORC9PUiBUSEUNCj4gPiA+ID4gQEAgLTEwMCwxNCArMTExLDIwIEBAIEFHUkVFTUVOVCBB TkQgVEhFIFRFUk1TIEFORA0KPiBDT05ESVRJT05TDQo+ID4gPiBPRiBBTlkgQVBQTElDQUJMRSBM SUNFTlNFDQo+ID4gPiA+ICBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVS RU5DRUQgQkVMT1csIFRIRU4NCj4gWU9VDQo+ID4gPiBNQVkgTk9UDQo+ID4gPiA+ICBVU0UgVEhF IENPTlRFTlQuDQo+ID4gPiA+DQo+ID4gPiA+IC1Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwg YWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgb24NCj4gdGhlDQo+ID4gPiBUaWFub0NvcmUNCj4g PiA+ID4gK1VubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCAoZXhjZXB0DQo+ ID4gPiBEb2N1bWVudGF0aW9uKSBtYWRlIGF2YWlsYWJsZSBvbiB0aGUgVGlhbm9Db3JlDQo+ID4g PiA+ICBzaXRlIGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlv bnMgb2YNCj4gdGhlDQo+ID4gPiBCU0QNCj4gPiA+ID4gIExpY2Vuc2UgKCJCU0QiKS4gQSBjb3B5 IG9mIHRoZSBCU0QgTGljZW5zZSBpcyBhdmFpbGFibGUNCj4gYXQNCj4gPiA+ID4gIGh0dHA6Ly9v cGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4gPiA+ID4gIG9yIHdoZW4g YXBwbGljYWJsZSwgaW4gdGhlIGFzc29jaWF0ZWQgTGljZW5zZS50eHQgZmlsZS4NCj4gPiA+ID4N Cj4gPiA+ID4gK1VubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgRG9jdW1lbnRhdGlvbiBt YWRlDQo+IGF2YWlsYWJsZQ0KPiA+ID4gb24gdGhlDQo+ID4gPiA+ICtUaWFub0NvcmUgc2l0ZSBp cyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZA0KPiA+ID4gY29uZGl0aW9ucyBv ZiB0aGUNCj4gPiA+ID4gK0ZyZWVCU0QgRG9jdW1lbnRhdGlvbiBMaWNlbnNlICgiRnJlZUJTRCIp LiBBIGNvcHkgb2YgdGhlDQo+IEJTRA0KPiA+ID4gTGljZW5zZSBpcw0KPiA+ID4gPiArYXZhaWxh YmxlIGF0IGh0dHBzOi8vd3d3LmZyZWVic2Qub3JnL2NvcHlyaWdodC9mcmVlYnNkLQ0KPiBkb2Mt DQo+ID4gPiBsaWNlbnNlLmh0bWwgb3IsDQo+ID4gPiA+ICt3aGVuIGFwcGxpY2FibGUsIGluIHRo ZSBhc3NvY2lhdGVkIExpY2Vuc2UudHh0IGZpbGUuDQo+ID4gPiA+ICsNCj4gPiA+ID4gIENlcnRh aW4gb3RoZXIgY29udGVudCBtYXkgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgb3RoZXINCj4gPiA+ IGxpY2Vuc2VzIGFzDQo+ID4gPiA+IC1pbmRpY2F0ZWQgaW4gb3Igd2l0aCBzdWNoIENvbnRlbnQu IChGb3IgZXhhbXBsZSwgaW4gYQ0KPiA+ID4gTGljZW5zZS50eHQgZmlsZS4pDQo+ID4gPiA+ICtp bmRpY2F0ZWQgaW4gb3Igd2l0aCBzdWNoIENvbnRlbnQgKGZvciBleGFtcGxlLCBpbiBhDQo+ID4g PiBMaWNlbnNlLnR4dCBmaWxlKS4NCj4gPiA+ID4NCj4gPiA+ID4gIFlvdSBhY2NlcHQgYW5kIGFn cmVlIHRvIHRoZSBmb2xsb3dpbmcgdGVybXMgYW5kDQo+IGNvbmRpdGlvbnMNCj4gPiA+IGZvciBZ b3VyDQo+ID4gPiA+ICBwcmVzZW50IGFuZCBmdXR1cmUgQ29udHJpYnV0aW9ucyBzdWJtaXR0ZWQg dG8gVGlhbm9Db3JlDQo+IHNpdGUuDQo+ID4gPiBFeGNlcHQNCj4gPiA+ID4gLS0NCj4gPiA+ID4g Mi4xMy4xLndpbmRvd3MuMg0KPiA+ID4gPg0K