From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: michael.d.kinney@intel.com) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by groups.io with SMTP; Thu, 09 May 2019 19:23:50 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 May 2019 19:23:49 -0700 X-ExtLoop1: 1 Received: from orsmsx110.amr.corp.intel.com ([10.22.240.8]) by orsmga008.jf.intel.com with ESMTP; 09 May 2019 19:23:50 -0700 Received: from orsmsx125.amr.corp.intel.com (10.22.240.125) by ORSMSX110.amr.corp.intel.com (10.22.240.8) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 9 May 2019 19:23:48 -0700 Received: from orsmsx113.amr.corp.intel.com ([169.254.9.24]) by ORSMSX125.amr.corp.intel.com ([169.254.3.172]) with mapi id 14.03.0415.000; Thu, 9 May 2019 19:23:48 -0700 From: "Michael D Kinney" To: Laszlo Ersek , "devel@edk2.groups.io" , "sean.brogan@microsoft.com" , "Kinney, Michael D" Subject: Re: [edk2-devel] RFC for Edk2-Library Thread-Topic: [edk2-devel] RFC for Edk2-Library Thread-Index: AQHVBR1gzyAh0v7/oEeSRuZO3ilWVqZhc3aAgAGit7CAAMmKAP//mb8QgAAp67A= Date: Fri, 10 May 2019 02:23:48 +0000 Message-ID: References: <24030.1557264917803034398@groups.io> <46700279-e217-0a45-8637-9c24cb5cc4eb@redhat.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.600.7 dlp-reaction: no-action x-originating-ip: [10.22.254.138] MIME-Version: 1.0 Return-Path: michael.d.kinney@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvLA0KDQpJIGZvcmdvdCB0byBtZW50aW9uIHRoYXQgcGlwIHN1cHBvcnRzIHZpcnR1YWwg ZW52aXJvbm1lbnRzLg0KDQpodHRwczovL3BhY2thZ2luZy5weXRob24ub3JnL2d1aWRlcy9pbnN0 YWxsaW5nLXVzaW5nLXBpcC1hbmQtdmlydHVhbC1lbnZpcm9ubWVudHMvDQoNClRoaXMgbWVhbnMg dGhhdCBhIHZpcnR1YWwgZW52aXJvbm1lbnQgY2FuIGJlIGNyZWF0ZWQgZm9yIEVESyBJSQ0KYnVp bGRzIGFuZCBwaXAgaW5zdGFsbCBvcGVyYXRpb25zIGNhbiBiZSBwZXJmb3JtZWQgaW4gdGhhdCBF REsgSUkNCnNwZWNpZmljIHZpcnR1YWwgZW52aXJvbm1lbnQgYW5kIHdpbGwgbm90IGltcGFjdCB0 aGUgc3lzdGVtIHdpZGUNCnBpcCBpbnN0YWxsYXRpb25zLg0KDQpNaWtlDQoNCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS2lubmV5LCBNaWNoYWVsIEQNCj4gU2VudDogVGh1 cnNkYXksIE1heSA5LCAyMDE5IDU6MDIgUE0NCj4gVG86IExhc3psbyBFcnNlayA8bGVyc2VrQHJl ZGhhdC5jb20+Ow0KPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgc2Vhbi5icm9nYW5AbWljcm9zb2Z0 LmNvbTsgS2lubmV5LA0KPiBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0K PiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFJGQyBmb3IgRWRrMi1MaWJyYXJ5DQo+IA0KPiBM YXN6bG8sDQo+IA0KPiAxKSBXZSBhbHNvIHVzZSBPcGVuU1NMIGNvbW1hbmQgbGluZSB0b29sIHRv IGxvY2FsbHkgc2lnbg0KPiAgICBjYXBzdWxlcyBhbmQgcmVjb3ZlcnkgaW1hZ2VzIGZvciBsb2Nh bCB0ZXN0aW5nLiAgU28NCj4gYm90aA0KPiAgICB0b29sIGRlcGVuZGVuY3kgYW5kIHNvdXJjZSBk ZXBlbmRlbmN5IGFwcGx5IHRvIHRoZQ0KPiBPcGVuU1NMDQo+ICAgIGNvbnRlbnQuDQo+IA0KPiAy KSBJZiBhIGRldiBzdWJtaXRzIGEgUFIsIGFuZCB0aGVyZSBhcmUgbWFueSByZXZpZXcNCj4gY29t bWVudHMNCj4gICAgdGhhdCByZXF1aXJlIGNvZGUgY2hhbmdlcywgdGhlbiB0aG9zZSBjb2RlIGNo YW5nZXMgYXJlDQo+ICAgIGFkZGVkIHRvIHRoYXQgUFIgdW50aWwgYWxsIGZlZWRiYWNrIGlzIGFk ZHJlc3NlZC4gIEF0DQo+IHRoYXQNCj4gICAgcG9pbnQsIGlmIHRoZSBjaGFuZ2UgaXMgc29tZXRo aW5nIHRoYXQgc2hvdWxkIGJlIGluIGENCj4gc2luZ2xlDQo+ICAgIGNvbW1pdCwgdGhlbiBkb2lu ZyBhIHNxdWFzaCBtZXJnZSB3aXRoIGEgY2xlYW5lZCB1cA0KPiBjb21taXQNCj4gICAgbWVzc2Fn ZSB3b3VsZCBiZSBhcHByb3ByaWF0ZS4gIEFuZCB0aGUgaGlzdG9yeSBvZiBhbGwNCj4gdGhlDQo+ ICAgIHJldmlldyBmZWVkYmFjayBwcmVzZXJ2ZWQgaW4gdGhlIFBSLg0KPiANCj4gICAgSWYgd2Ug Y3JlYXRlIGEgMm5kIFBSIHdpdGggdGhlIGNsZWFuZWQgdXAgY29udGVudCwNCj4gdGhlbiB0aGUN Cj4gICAgY29ubmVjdGlvbiB0byB0aGUgMXN0IFBSIGZlZWRiYWNrIG1heSBiZSBsb3N0LiAgSQ0K PiBhZ3JlZSB0aGlzDQo+ICAgIG1hdGNoZXMgd2hhdCB3ZSBkbyBpbiBlbWFpbCByZXZpZXdzIHRv IGNyZWF0ZSBhIFYyDQo+IHBhdGNoIHNlcmllcy4NCj4gICAgVGhlIFYxIGFuZCBWMiB0aHJlYWRz IGFyZSBpbiB0aGUgZW1haWwgYXJjaGl2ZS4gIEkNCj4gd29uZGVyIGlmDQo+ICAgIHRoZXJlIGlz IGEgd2F5IHRvIGxpbmsgYSAybmQgUFIgdG8gdGhlIDFzdCBQUiBhbmQNCj4gZ3VhcmFudGVlDQo+ ICAgIHRoYXQgYm90aCBQUnMgYXJlIHByZXNlcnZlZD8gIFRoaXMgd291bGQgYWxzbyBhbGxvdw0K PiB0aGUgMm5kDQo+ICAgIGNsZWFuZWQgdXAgUFIgdG8gY29udGFpbiBhIHNlcmllcywgYW5kIGlm IHRoZXJlIHdhcyBhDQo+IHdheSB0bw0KPiAgICBtYWtlIHRoZSBzcXVhc2ggbWVyZ2Ugb3B0aW9u YWwsIHRoZW4gdGhlIGRldmVsb3BlciBjYW4NCj4gY2hvb3NlDQo+ICAgIHRoZSB3YXkgdGhlIHBh dGNoZXMgYXJlIGNvbW1pdHRlZC4NCj4gDQo+ICAgIEp1c3QgYSBmZXcgaWRlYXMgdG8gZXhwbG9y ZS4uLlBlcmhhcHMgU2VhbiBjYW4gcHJvdmlkZQ0KPiBzb21lDQo+ICAgIGFkZGl0aW9uYWwgaWRl YXMgdG8gbWFuYWdlIGNvbXBsZXggY2hhbmdlcyBpbiBQUnMuDQo+IA0KPiBCZXN0IHJlZ2FyZHMs DQo+IA0KPiBNaWtlDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJv bTogTGFzemxvIEVyc2VrIFttYWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+ID4gU2VudDogVGh1 cnNkYXksIE1heSA5LCAyMDE5IDM6NTYgUE0NCj4gPiBUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgc2Vh bi5icm9nYW5AbWljcm9zb2Z0LmNvbQ0KPiA+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gUkZD IGZvciBFZGsyLUxpYnJhcnkNCj4gPg0KPiA+IE9uIDA1LzA5LzE5IDIwOjA2LCBLaW5uZXksIE1p Y2hhZWwgRCB3cm90ZToNCj4gPiA+IEhlbGxvLA0KPiA+ID4NCj4gPiA+IEl0IGlzIGRpZmZpY3Vs dCB0byB0ZWxsIGlmIHRoZSByZXBvIG5hbWUgZWRrMi1saWJyYXJ5DQo+ID4gaXMgZm9yIGZpcm13 YXJlDQo+ID4gPiBvciB0b29scywgc28gSSByZWNvbW1lbmQgd2Ugd29yayBvbiBhIG5hbWUgdGhh dA0KPiBjbGVhcmx5DQo+ID4gaWRlbnRpZmllcw0KPiA+ID4gdGhhdCB0aGlzIHJlcG8gaXMgcmVs YXRlZCB0byB0b29scy4NCj4gPg0KPiA+IEdvb2QgaWRlYS4NCj4gPg0KPiA+ID4gRm9yIHRoZSBw aXAgZGVwZW5kZW5jaWVzLCBpcyB0aGUgY29uY2VybiB0aGF0IGENCj4gPiBwbGF0Zm9ybSB0aGF0 IGRlcGVuZHMNCj4gPiA+IG9uIHRoZXNlIHRvb2xzIHdpbGwgbm90IGJlIGJ1aWxkYWJsZSB3aXRo b3V0IHJ1bm5pbmcNCj4gYQ0KPiA+ICJwaXAgaW5zdGFsbCINCj4gPiA+IGNvbW1hbmQgdGhhdCBw dWxscyBjb250ZW50IGZyb20gdGhlIG5ldHdvcms/DQo+ID4NCj4gPiBBbG1vc3QuIE5vdCBleGFj dGx5Lg0KPiA+DQo+ID4gRmlyc3QsIHRoZSBjb25jZXJuIGlzIG5vdCBzcGVjaWZpYyB0byBhbnkg Z2l2ZW4NCj4gcGxhdGZvcm0uDQo+ID4gTXkNCj4gPiB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhl IGV4dHJhY3Rpb24gd291bGQgdGFyZ2V0LCBpbg0KPiB0aGUNCj4gPiBsb25nZXIgdGVybSwNCj4g PiBnZW5lcmFsIEJhc2VUb29scyBmdW5jdGlvbmFsaXR5LiBUaGF0IHdvdWxkIGltcGFjdCBhbGwN Cj4gPiBwbGF0Zm9ybXMgdGhhdA0KPiA+IGNvbnN1bWUgJiBidWlsZCBhZ2FpbnN0IGVkazIuDQo+ ID4NCj4gPiBTZWNvbmQsIGl0J3Mgbm90IHRoZSBuZXR3b3JrIGFjY2VzcyB0aGF0J3MgY29uY2Vy bmluZw0KPiBwZXINCj4gPiBzZS4gSXQncyB0aGUNCj4gPiBjb21wYXRpYmlsaXR5IC8gaW50ZXJv cGVyYXRpb24gd2l0aCBhbnkgZ2l2ZW4gTGludXgNCj4gPiBkaXN0cmlidXRpb24ncyBvd24NCj4g PiAobmF0aXZlKSBwYWNrYWdlIG1hbmFnZW1lbnQgc3lzdGVtLiBTdWNoIGEgcGFja2FnZQ0KPiA+ IG1hbmFnZW1lbnQgc3lzdGVtIGlzDQo+ID4gZ2VuZXJhbGx5IG5vdCB1c2VkIG9uIFdpbmRvd3Ms IHRoZXJlZm9yZSBXaW5kb3dzIHVzZXJzDQo+ID4gYXJlIGFjY3VzdG9tZWQgdG8NCj4gPiBpbnN0 YWxsaW5nIHNvZnR3YXJlIHBhY2thZ2VzIGZyb20gYSBib2F0bG9hZCBvZg0KPiB2ZW5kb3JzLg0K PiA+IFRoaXMgaXMgbm90IHRoZQ0KPiA+IGNhc2Ugb24gTGludXggZGlzdHJvcyAtLSB5b3VyIGRp c3RybyB2ZW5kb3Igb2ZmZXJzIGENCj4gPiBjdXJhdGVkIHNldCBvZg0KPiA+IHBhY2thZ2VzLCBz dWNoIHRoYXQgZXZlcnl0aGluZyBpbnRlcm9wZXJhdGVzIHdpdGgNCj4gPiBldmVyeXRoaW5nIChp ZGVhbGx5KSwNCj4gPiB0aGVyZSBhcmUgbm8gZmlsZSBjb25mbGljdHMsIHZlcnNpb24gZGVwZW5k ZW5jaWVzIGFyZQ0KPiA+IGhhbmRsZWQNCj4gPiBhdXRvbWF0aWNhbGx5IChlLmcuIGlmIHlvdSBp bnN0YWxsIGEgaGlnaC1sZXZlbA0KPiBwYWNrYWdlLA0KPiA+IGl0cw0KPiA+IGRlcGVuZGVuY2ll cyBhcmUgcHVsbGVkIGluIGF1dG9tYXRpY2FsbHkpLCBhbmQgc28gb24uDQo+ID4NCj4gPiBDbGVh cmx5IHRoZSBkaXN0cm8gdmVuZG9yIGRvZXMgbm90ICphdXRob3IqIGFsbCB0aGlzDQo+ID4gc29m dHdhcmUgKGFsdGhvdWdoDQo+ID4gdGhleSBhcmUgc3Ryb25nbHkgZW5jb3VyYWdlZCB0byBjb250 cmlidXRlIHRvIHRoZQ0KPiA+IHVwc3RyZWFtIHNvZnR3YXJlDQo+ID4gcHJvamVjdHMgdGhleSBw YWNrYWdlIGFuZCBzaGlwKS4gVGhlIGRpc3RybyB2ZW5kb3IgaXMNCj4gPiByZXNwb25zaWJsZSBm b3INCj4gPiB0aGUgaW50ZWdyYXRpb24gb2YgYWxsIHRoZXNlIHBhY2thZ2VzIGludG8gYSBjb25z aXN0ZW50DQo+ID4gT1MsIGludG8NCj4gPiBjb25zaXN0ZW50IGZlYXR1cmUgc2V0cywgYW5kIHNv IG9uLg0KPiA+DQo+ID4gInBpcCIgYW5kIHNpbWlsYXIgdG9vbHMgYXJlIGdlbmVyYWxseSB1bmZp dCBmb3IgdGhpcw0KPiA+IGFwcHJvYWNoLCBiZWNhdXNlDQo+ID4gdGhleSBpbXBsZW1lbnQgYSBw YXJhbGxlbCBwYWNrYWdlIG1hbmFnZW1lbnQgc3lzdGVtLCB0bw0KPiA+IG15DQo+ID4gdW5kZXJz dGFuZGluZy4gSWYgdGhleSBhcmUgY2FyZWZ1bGx5IHVzZWQgaW4gYSB1c2VyJ3MNCj4gPiBob21l IGRpcmVjdG9yeSwNCj4gPiB0aGV5IG1pZ2h0IHdvcmsuIElmIHBhY2thZ2VzIHdlcmUgaW5zdGFs bGVkIHdpdGggInBpcCINCj4gPiBzeXN0ZW0td2lkZSwgdGhleQ0KPiA+IHdvdWxkIGFsbW9zdCBj ZXJ0YWlubHkgYnJlYWsgKGNvbmZsaWN0IHdpdGgpIHRoZQ0KPiBkaXN0cm8tDQo+ID4gcHJvdmlk ZWQNCj4gPiBwYWNrYWdlcy4NCj4gPg0KPiA+IFRoZXJlZm9yZSwgd2hlbiB1c2VycyB3b3VsZCBs aWtlIHRvIGdldCBhIG5ldyBwaWVjZSBvZg0KPiA+IHNvZnR3YXJlDQo+ID4gcGFja2FnZWQsIG9y IGFuIGV4aXN0ZW50IHBhY2thZ2UgcmVmcmVzaGVkICh0byBhIG1vcmUNCj4gPiByZWNlbnQgdXBz dHJlYW0NCj4gPiB2ZXJzaW9uKSwgdGhleSBmaWxlIGEgZmVhdHVyZSByZXF1c3Qgd2l0aCB0aGVp ciBkaXN0cm8NCj4gPiB2ZW5kb3IgKHVubGVzcw0KPiA+IHRoZSBkaXN0cm8gdmVuZG9yIGFscmVh ZHkgdHJhY2tzIHRoZSB1cHN0cmVhbSBwcm9qZWN0DQo+ID4gY2xvc2VseSBhbmQNCj4gPiBwZXJm b3JtcyBwZXJpb2RpYyByZWJhc2VzIGFueXdheSkuIFRoZW4gdGhlIGRpc3Rybw0KPiB2ZW5kb3IN Cj4gPiBzaGlwcyBhIG5ldw0KPiA+IChvciByZWZyZXNoZWQpIHBhY2thZ2UsIGFnYWluIG5pY2Vs eSBpbnRlZ3JhdGVkIHdpdGgNCj4gdGhlDQo+ID4gcmVzdCBvZiB0aGUNCj4gPiBzeXN0ZW0uDQo+ ID4NCj4gPiA+IFdlIGFscmVhZHkgaGF2ZSB0byBwdWxsIGNvbnRlbnQgdG8gZ2V0IHRoZSBzb3Vy Y2VzDQo+IGFuZA0KPiA+IHBvdGVudGlhbGx5DQo+ID4gPiBvdGhlciBkZXBlbmRlbnQgdG9vbHMg KE5BU00sIGlBU0wsIG9wZW5zc2wpLg0KPiA+DQo+ID4gWWVzLCB0aGVzZSBhcmUgZ29vZCBleGFt cGxlcyB0byBkZW1vbnN0cmF0ZSB0aGUNCj4gPiBkaWZmZXJlbmNlLiBDb25zaWRlcg0KPiA+IE5B U00uIElmIGEgV2luZG93cyB1c2VyIHdvdWxkIGxpa2UgdG8gaW5zdGFsbCBOQVNNLA0KPiB0aGV5 DQo+ID4gZ29vZ2xlICJOQVNNDQo+ID4gZm9yIFdpbmRvd3MiLCB0aGVuIGdvIHRvOg0KPiA+DQo+ ID4NCj4gaHR0cHM6Ly93d3cubmFzbS51cy9wdWIvbmFzbS9yZWxlYXNlYnVpbGRzLzIuMTQuMDIv d2luNjQvDQo+ID4NCj4gPiBkb3dubG9hZCB0aGUgWklQIGZpbGUgb3IgRVhFIGZpbGUsIGFuZCBp bnN0YWxsIGl0Lg0KPiA+DQo+ID4gSW4gY29tcGFyaXNvbiwgYSBGZWRvcmEgdXNlciBydW5zDQo+ ID4NCj4gPiAgIGRuZiBpbnN0YWxsIG5hc20NCj4gPg0KPiA+IGFuZCB0aGV5IGdldCB0aGUgcGFj a2FnZSBmcm9tIHRoZSBGZWRvcmEgcGFja2FnZQ0KPiA+IHJlcG9zaXRvcnkuIEEgRGViaWFuDQo+ ID4gdXNlciB3b3VsZCBydW4NCj4gPg0KPiA+ICAgYXB0LWdldCBpbnN0YWxsIG5hc20NCj4gPg0K PiA+IGFuZCB0aGV5IHdvdWxkIGdldCB0aGUgcGFja2FnZSAod2hpY2ggd291bGQgYmUgZW50aXJl bHkNCj4gPiBpbmRlcGVuZGVudCBvZg0KPiA+IEZlZG9yYSdzKSBmcm9tIHRoZSBEZWJpYW4gcGFj a2FnZSByZXBvc2l0b3J5Lg0KPiA+DQo+ID4gVGhlIHZhcmlvdXMgKkJTRHMgd291bGQgcnVuIGEg dmFyaWFudCBvZg0KPiA+DQo+ID4gICBwa2dfYWRkIG5hc20NCj4gPg0KPiA+IEkgYmVsaWV2ZS4N Cj4gPg0KPiA+IFRoZSBzYW1lIGFwcGxpZXMgdG8gaUFTTC4NCj4gPg0KPiA+DQo+ID4gT3BlblNT TCBpcyBhIHNwZWNpYWwgY2FzZS4gSXQgaXMgZGlmZmVyZW50IGZyb20gTkFTTQ0KPiBhbmQNCj4g PiBpQVNMLiBOQVNNIGFuZA0KPiA+IGlBU0wgYXJlIG5hdGl2ZSAoaG9zdGVkKSBhcHBsaWNhdGlv bnMsIHNvIGFueSBMaW51eA0KPiA+IGRpc3RybyBjYW4gZWFzaWx5DQo+ID4gYnVpbGQgdGhlbSAo Zm9yIGl0c2VsZiksIGFuZCB0aGUgYmluYXJpZXMgY2FuIGJlDQo+IHNoaXBwZWQNCj4gPiB0byB1 c2VycywgcmVhZHkNCj4gPiB0byBydW4uIEJ1dCBmb3IgdGhlIHB1cnBvc2VzIG9mIGVkazIsIE9w ZW5TU0wgaXMgbm90DQo+ID4gbmVlZGVkIGFzIGEgbmF0aXZlDQo+ID4gKGhvc3RlZCkgdXRpbGl0 eSwgbGlrZSBOQVNNIGFuZCBpQVNMIC0tIGl0IGlzIG5lZWRlZCBhcw0KPiBhDQo+ID4gKmNyb3Nz LWJ1aWx0Kg0KPiA+IHN0YXRpYyBsaWJyYXJ5LCB0YXJnZXRpbmcgdGhlIGZpcm13YXJlIGFyY2hp dGVjdHVyZQ0KPiAobm90DQo+ID4gdGhlIGhvc3QNCj4gPiBhcmNoaXRlY3R1cmUpLiBVbmZvcnR1 bmF0ZWx5LCBPcGVuU1NMICh0aGUgdXBzdHJlYW0NCj4gPiBwcm9qZWN0KSBkb2VzIG5vdA0KPiA+ IGZ1bGx5IHN1cHBvcnQgdGhpcyB1c2UgY2FzZSB5ZXQsIHRoZXJlZm9yZSBMaW51eA0KPiBkaXN0 cm9zDQo+ID4gY2Fubm90IGp1c3QNCj4gPiBjcm9zcy1jb21waWxlIE9wZW5TU0wgZm9yIGVkazIs IGFuZCBvZmZlciBzdGF0aWMNCj4gbGlicmFyeQ0KPiA+IHBhY2thZ2VzLiBUaGlzDQo+ID4gaXMg d2h5IHVwc3RyZWFtIGVkazIgY29uc3VtZXMgT3BlblNTTCB0aHJvdWdoIGEgZ2l0DQo+ID4gc3Vi bW9kdWxlLCBpbiBzb3VyY2UNCj4gPiBmb3JtLg0KPiA+DQo+ID4gKkhvd2V2ZXIqOiBjb25jZXB0 dWFsbHksIHRoZXJlIGlzIG5vIGRpZmZlcmVuY2UuIEluDQo+ID4gRmVkb3JhIGFuZCBSSEVMLCB3 ZQ0KPiA+IGRvbid0IGJ1aWxkIE9WTUYgYWdhaW5zdCB1cHN0cmVhbSBPcGVuU1NMLiBXZSBidWls ZCBpdA0KPiA+IGFnYWluc3QgdGhlDQo+ID4gZG93bnN0cmVhbSBPcGVuU1NMIHNvdXJjZSBjb2Rl LiBTbyB1bHRpbWF0ZWx5IHRoZXJlIGlzDQo+IG5vDQo+ID4gZGlmZmVyZW5jZSBpbg0KPiA+IHRo ZSBkaXN0cm8gdmVuZG9yJ3MgYXBwcm9hY2ggLS0gdGhlIHNvdXJjZXMgYW5kIHRoZQ0KPiA+IGJp bmFyaWVzIGNvbWUgZnJvbQ0KPiA+IHRoZSBkaXN0cm8gdmVuZG9yLg0KPiA+DQo+ID4NCj4gPiBT byB3aGF0IGZvbGxvd3MgZnJvbSB0aGlzPyBJdCBtZWFucyB0aGF0LCBmb3IgdXNpbmcNCj4gPiBC YXNlVG9vbHMgb24gYSBMaW51eA0KPiA+IGRpc3RybywgdXNlcnMgd2lsbCBoYXZlIHRvIGluc3Rh bGwgc29tZSBleHRyYSBQeXRob24NCj4gPiBwYWNrYWdlcywgaW4NCj4gPiBhZGRpdGlvbiB0byBO QVNNIGFuZCBpQVNMLCBmcm9tIHRoZWlyIHZlbmRvcidzDQo+ID4gcmVwb3NpdG9yeS4gSW4gb3Ro ZXINCj4gPiB3b3JkcywgdGhlICJlZGsyLWxpYnJhcnkiIChvciAiZWRrMi10b29scyIpIHByb2pl Y3QNCj4gPiBzaG91bGQgZG8gdXBzdHJlYW0NCj4gPiByZWxlYXNlcywgc28gdGhhdCBMaW51eCBk aXN0cm9zIGNhbiBwYWNrYWdlIHRoZW0gaW4NCj4gdGhlaXINCj4gPiBuYXRpdmUgcGFja2FnZQ0K PiA+IHN5c3RlbXMuIEFuZCBzb21lIGNvbGxhYm9yYXRpb24gYmV0d2VlbiB1cHN0cmVhbSBhbmQN Cj4gPiBkb3duc3RyZWFtcyBpcw0KPiA+IGV4cGVjdGVkIGZvciB0aGlzLiAoRXhhY3RseSBhcyBp dCBvY2N1cnMgd2l0aCB0aGUgaUFTTA0KPiA+IGFuZCBOQVNNIHVwc3RyZWFtDQo+ID4gcHJvamVj dHMuKQ0KPiA+DQo+ID4gPiBDYW4gd2UgbGltaXQgdGhlIGluaXRpYWwgc2NvcGUgdG8gdG9vbHMg dGhhdCBsYXllciBvbg0KPiA+IHRvcCBvZiBlZGsyLCBhbmQNCj4gPiA+IGEgZGlmZmVyZW50IGZ1 dHVyZSBSRkMgd291bGQgYmUgcmVxdWlyZWQgaWYgdGhlcmUgaXMNCj4gYQ0KPiA+IHByb3Bvc2Fs IGZvcg0KPiA+ID4gdGhlIGVkazIgcmVwbyB0byBkZXBlbmQgb24gYW5vdGhlciByZXBvPw0KPiA+ DQo+ID4gWWVzLCB0aGF0IHdvdWxkIGJlIHZlcnkgbmljZS4NCj4gPg0KPiA+ID4gSWYgd2UgYWNj ZXB0IHRoaXMgbGltaXRlZCBzY29wZSwgYXJlIHRoZXJlIHN0aWxsDQo+ID4gY29uY2VybnMgYWJv dXQNCj4gPiA+IGluaXRpYWxseSB1c2luZyBzcXVhc2ggY29tbWl0cyBmb3IgY2hhbmdlcyB0byB0 aGVzZQ0KPiA+IHRvb2xzLg0KPiA+DQo+ID4gWWVzLCBJIHN0aWxsIGhhdmUgdGhlIHNhbWUgY29u Y2VybiAtLSBhbHRob3VnaCBpdCdzIGENCj4gPiBtaWxkZXIgY29uY2VybiwNCj4gPiBkZXBlbmRl bnQgb24gaG93IGxvbmcgc3F1YXNoIG1lcmdlcyBhcmUgdG9sZXJhdGVkLg0KPiA+DQo+ID4gQXNz dW1lIHRoYXQgYSBzZWNvbmQsIHNlcGFyYXRlIFJGQyBnZXRzIHBvc3RlZCBkb3duIHRoZQ0KPiA+ IHJvYWQsIGxldCdzIHNheQ0KPiA+IGEgeWVhciBpbiwgd2hpY2ggcHJvcG9zZXMgdG8gcmVwbGFj ZSB0aGUgaW4tbGluZQ0KPiA+IGNvbXBvbmVudCBGb29CYXIgb2YNCj4gPiBCYXNlVG9vbHMsIHdp dGggdGhlIGV4dGVybmFsIHByb2plY3QgImVkazItbGlicmFyeSIgKG9yDQo+ID4gImVkazItdG9v bHMiKS4NCj4gPiBBdCB0aGF0IHBvaW50LCB0aGUgZ2l0IGhpc3RvcnkgYWNjcnVlZCB0aHVzIGZh ciwgaW4NCj4gZWRrMi0NCj4gPiB0b29scywgd291bGQNCj4gPiBzdWRkZW5seSBiZSBpbmhlcml0 ZWQgYnkgYWxsIEJhc2VUb29scyB1c2Vycy4gQW5kIHRoYXQNCj4gPiBoaXN0b3J5IHdvdWxkbid0 DQo+ID4gYmUgcmVhbGx5IGhlbHBmdWwuDQo+ID4NCj4gPiBGb3IgYW4gZXhhbXBsZSwgd2UgbmVl ZCBub3QgbG9vayBwYXN0IHRoZSBlZGsyDQo+IHJlcG9zaXRvcnkNCj4gPiBpdHNlbGYuIExldCdz DQo+ID4gc2F5IEknZCBsaWtlIHRvIGxlYXJuIGFib3V0IHRoZSBpbXBsZW1lbnRhdGlvbiBoaXN0 b3J5DQo+IG9mDQo+ID4gdGhlDQo+ID4gSGFuZGxlUHJvdG9jb2woKSBib290IHNlcnZpY2UsIGlu IGVkazIuIFNvIEkgcnVuOg0KPiA+DQo+ID4gJCBnaXQgYmxhbWUgbWFzdGVyIC0tDQo+IE1kZU1v ZHVsZVBrZy9Db3JlL0R4ZS9IYW5kL0hhbmRsZS5jDQo+ID4NCj4gPiBhbmQgSSBsb29rIHVwIHRo ZSBDb3JlSGFuZGxlUHJvdG9jb2woKSBmdW5jdGlvbiwgYW5kDQo+IGZpbmQNCj4gPiB0aGlzOg0K PiA+DQo+ID4gPiAyOGEwMDI5NzE4OWMzIE1kZU1vZHVsZVBrZy9Db3JlL0R4ZS9IYW5kL2hhbmRs ZS5jDQo+ID4gKHlzaGFuZzEgICAgICAgICAgMjAwNy0wNy0wNCAxMDo1MTo1NCArMDAwMCAgOTMx KQ0KPiA+IEVGSV9TVEFUVVMNCj4gPiA+IDI4YTAwMjk3MTg5YzMgTWRlTW9kdWxlUGtnL0NvcmUv RHhlL0hhbmQvaGFuZGxlLmMNCj4gPiAoeXNoYW5nMSAgICAgICAgICAyMDA3LTA3LTA0IDEwOjUx OjU0ICswMDAwICA5MzIpDQo+IEVGSUFQSQ0KPiA+ID4gMjhhMDAyOTcxODljMyBNZGVNb2R1bGVQ a2cvQ29yZS9EeGUvSGFuZC9oYW5kbGUuYw0KPiA+ICh5c2hhbmcxICAgICAgICAgIDIwMDctMDct MDQgMTA6NTE6NTQgKzAwMDAgIDkzMykNCj4gPiBDb3JlSGFuZGxlUHJvdG9jb2wgKA0KPiA+ID4g MjhhMDAyOTcxODljMyBNZGVNb2R1bGVQa2cvQ29yZS9EeGUvSGFuZC9oYW5kbGUuYw0KPiA+ICh5 c2hhbmcxICAgICAgICAgIDIwMDctMDctMDQgMTA6NTE6NTQgKzAwMDAgIDkzNCkgICBJTg0KPiA+ IEVGSV9IQU5ETEUgICAgICAgVXNlckhhbmRsZSwNCj4gPiA+IDI4YTAwMjk3MTg5YzMgTWRlTW9k dWxlUGtnL0NvcmUvRHhlL0hhbmQvaGFuZGxlLmMNCj4gPiAoeXNoYW5nMSAgICAgICAgICAyMDA3 LTA3LTA0IDEwOjUxOjU0ICswMDAwICA5MzUpICAgSU4NCj4gPiBFRklfR1VJRCAgICAgICAgICpQ cm90b2NvbCwNCj4gPiA+IDI4YTAwMjk3MTg5YzMgTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0hhbmQv aGFuZGxlLmMNCj4gPiAoeXNoYW5nMSAgICAgICAgICAyMDA3LTA3LTA0IDEwOjUxOjU0ICswMDAw ICA5MzYpICAgT1VUDQo+ID4gVk9JRCAgICAgICAgICAgICoqSW50ZXJmYWNlDQo+ID4gPiAyOGEw MDI5NzE4OWMzIE1kZU1vZHVsZVBrZy9Db3JlL0R4ZS9IYW5kL2hhbmRsZS5jDQo+ID4gKHlzaGFu ZzEgICAgICAgICAgMjAwNy0wNy0wNCAxMDo1MTo1NCArMDAwMCAgOTM3KSAgICkNCj4gPiA+IDI4 YTAwMjk3MTg5YzMgTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0hhbmQvaGFuZGxlLmMNCj4gPiAoeXNo YW5nMSAgICAgICAgICAyMDA3LTA3LTA0IDEwOjUxOjU0ICswMDAwICA5MzgpIHsNCj4gPiA+IDI4 YTAwMjk3MTg5YzMgTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0hhbmQvaGFuZGxlLmMNCj4gPiAoeXNo YW5nMSAgICAgICAgICAyMDA3LTA3LTA0IDEwOjUxOjU0ICswMDAwICA5MzkpDQo+ID4gcmV0dXJu IENvcmVPcGVuUHJvdG9jb2wgKA0KPiA+ID4gMDIyYzZkNDVlZjc4NiBNZGVNb2R1bGVQa2cvQ29y ZS9EeGUvSGFuZC9IYW5kbGUuYw0KPiA+IChxaHVhbmc4ICAgICAgICAgIDIwMDgtMDctMjQgMDI6 NTQ6NDUgKzAwMDAgIDk0MCkNCj4gPiBVc2VySGFuZGxlLA0KPiA+ID4gMDIyYzZkNDVlZjc4NiBN ZGVNb2R1bGVQa2cvQ29yZS9EeGUvSGFuZC9IYW5kbGUuYw0KPiA+IChxaHVhbmc4ICAgICAgICAg IDIwMDgtMDctMjQgMDI6NTQ6NDUgKzAwMDAgIDk0MSkNCj4gPiBQcm90b2NvbCwNCj4gPiA+IDAy MmM2ZDQ1ZWY3ODYgTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0hhbmQvSGFuZGxlLmMNCj4gPiAocWh1 YW5nOCAgICAgICAgICAyMDA4LTA3LTI0IDAyOjU0OjQ1ICswMDAwICA5NDIpDQo+ID4gSW50ZXJm YWNlLA0KPiA+ID4gMDIyYzZkNDVlZjc4NiBNZGVNb2R1bGVQa2cvQ29yZS9EeGUvSGFuZC9IYW5k bGUuYw0KPiA+IChxaHVhbmc4ICAgICAgICAgIDIwMDgtMDctMjQgMDI6NTQ6NDUgKzAwMDAgIDk0 MykNCj4gPiBnRHhlQ29yZUltYWdlSGFuZGxlLA0KPiA+ID4gMDIyYzZkNDVlZjc4NiBNZGVNb2R1 bGVQa2cvQ29yZS9EeGUvSGFuZC9IYW5kbGUuYw0KPiA+IChxaHVhbmc4ICAgICAgICAgIDIwMDgt MDctMjQgMDI6NTQ6NDUgKzAwMDAgIDk0NCkNCj4gPiBOVUxMLA0KPiA+ID4gMjhhMDAyOTcxODlj MyBNZGVNb2R1bGVQa2cvQ29yZS9EeGUvSGFuZC9oYW5kbGUuYw0KPiA+ICh5c2hhbmcxICAgICAg ICAgIDIwMDctMDctMDQgMTA6NTE6NTQgKzAwMDAgIDk0NSkNCj4gPiBFRklfT1BFTl9QUk9UT0NP TF9CWV9IQU5ETEVfUFJPVE9DT0wNCj4gPiA+IDI4YTAwMjk3MTg5YzMgTWRlTW9kdWxlUGtnL0Nv cmUvRHhlL0hhbmQvaGFuZGxlLmMNCj4gPiAoeXNoYW5nMSAgICAgICAgICAyMDA3LTA3LTA0IDEw OjUxOjU0ICswMDAwICA5NDYpDQo+ID4gKTsNCj4gPiA+IDI4YTAwMjk3MTg5YzMgTWRlTW9kdWxl UGtnL0NvcmUvRHhlL0hhbmQvaGFuZGxlLmMNCj4gPiAoeXNoYW5nMSAgICAgICAgICAyMDA3LTA3 LTA0IDEwOjUxOjU0ICswMDAwICA5NDcpIH0NCj4gPg0KPiA+IEludGVyZXN0aW5nLCBpdCBzZWVt cyBsaWtlIHRoZSBmdW5jdGlvbiB3YXMgb3JpZ2luYWxseQ0KPiA+IGFkZGVkIGluIGNvbW1pdA0K PiA+IDI4YTAwMjk3MTg5YzMsIGFuZCB0aGVuIHRoZSBhcmd1bWVudCBsaXN0IHdhcyBtb2RpZmll ZA0KPiBpbg0KPiA+IGNvbW1pdA0KPiA+IDAyMmM2ZDQ1ZWY3ODYsIGEgeWVhciBsYXRlci4gU28g bGV0J3MgY2hlY2sgb3V0IHRoZQ0KPiA+IHJhdGlvbmFsZSBmb3IgdGhhdA0KPiA+IGFyZ3VtZW50 IGxpc3QgdXBkYXRlOg0KPiA+DQo+ID4gJCBnaXQgc2hvdyAtLWNvbG9yIDAyMmM2ZDQ1ZWY3ODYN Cj4gPg0KPiA+IFdlbGwuLi4gVGhlIGNvbW1pdCBtZXNzYWdlIHNheXMsICJDb2RlIFNjcnViIGZv ciBEeGUNCj4gPiBDb3JlIi4gVGhhdCdzIGFsbC4NCj4gPiBXZSBhbHNvIGxlYXJuIGl0IGNvbWVz IGZyb20gU1ZOIHJldmlzaW9uIDU1NjAuIEFuZCB0aGUNCj4gPiBkaWZmc3RhdCBmb3IgdGhlDQo+ ID4gcGF0Y2ggaXM6DQo+ID4NCj4gPiA+ICAzOCBmaWxlcyBjaGFuZ2VkLCAyNDk5IGluc2VydGlv bnMoKyksIDI1MDQNCj4gZGVsZXRpb25zKC0NCj4gPiApDQo+ID4NCj4gPiBJdCBpcyBub3Qgb3Zl cmx5IGhlbHBmdWwuDQo+ID4NCj4gPiBDbGVhcmx5LCBDb3JlSGFuZGxlUHJvdG9jb2woKSBpcyBh IHN1cGVyLXJvYnVzdCwgc3VwZXItDQo+ID4gbWF0dXJlIGZ1bmN0aW9uLA0KPiA+IHNvIHdlIGRv bid0IHJlYWxseSBjYXJlIGZvciBpdHMgZGV2ZWxvcG1lbnQgaGlzdG9yeQ0KPiA+IHRvZGF5Lg0K PiA+DQo+ID4gSSBiZWxpZXZlIHRoZSBzYW1lIHdvdWxkIG5vdCBhcHBseSB0byB0aGUgImVkazIt DQo+IGxpYnJhcnkiDQo+ID4gKG9yDQo+ID4gImVkazItdG9vbHMiKSBwcm9qZWN0LiBXaGVuIGl0 IHJlcGxhY2VkIHRoZSBpbi1saW5lDQo+ID4gY29tcG9uZW50IEZvb0JhciBvZg0KPiA+IEJhc2VU b29scywgaXQncyBwbGF1c2libGUgaXQgd291bGQgYmUgc3VkZGVubHkgZXhwb3NlZA0KPiB0bw0K PiA+IGEgbGFyZ2VyDQo+ID4gdXNlcmJhc2UuIE5ldyBpc3N1ZXMgd291bGQgYmUgZW5jb3VudGVy ZWQsIGFuZCBwZW9wbGUNCj4gPiBtaWdodCB3YW50IHRvIGxvb2sNCj4gPiBhdCB0aGUgZ2l0IGhp c3RvcnkgLS0gaWYgZm9yIG5vdGhpbmcgZWxzZSwgdGhlbg0KPiByYXRpb25hbGUNCj4gPiAoY29t bWl0DQo+ID4gbWVzc2FnZXMpIG9uIHNtYWxsIHBhcnRzIG9mIHRoZSBjb2RlLg0KPiA+DQo+ID4N Cj4gPiBJIGNhbiBhbHNvIG5hbWUgbW9yZSByZWNlbnQgZXhhbXBsZXMuIEknbSBub3QgYQ0KPiBm cmVxdWVudA0KPiA+IEJhc2VUb29scw0KPiA+IGNvbnRyaWJ1dG9yLCBidXQgaXQgaGFzIGhhcHBl bmVkIG9jY2FzaW9uYWxseS4gKEkndmUNCj4gZ290DQo+ID4gNDEgcGF0Y2hlcyBpbg0KPiA+IHRo ZSBlZGsyIGdpdCBoaXN0b3J5IHRoYXQgdG91Y2hlZCBCYXNlVG9vbHMvLCBhcyBvZg0KPiA+IGNv bW1pdA0KPiA+IDBhNTA2ZmM3YWI4Yi4pDQo+ID4NCj4gPiAqIEZvcg0KPiA+IDxodHRwczovL2J1 Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTE1NDAyNDQ+LA0KPiBJDQo+ID4gcHVz aGVkDQo+ID4gICA1KzEgcGF0Y2hlczoNCj4gPg0KPiA+ICAgICA2Nzk4MzQ4NGE0NDMgQmFzZVRv b2xzL2Zvb3Rlci5tYWtlZmlsZTogZXhwYW5kDQo+ID4gQlVJTERfQ0ZMQUdTIGxhc3QgZm9yIEMg ZmlsZXMgdG9vDQo+ID4gICAgIDAzMjUyYWUyODdjNCBCYXNlVG9vbHMvaGVhZGVyLm1ha2VmaWxl OiByZW1vdmUgIi1jIg0KPiA+IGZyb20gQlVJTERfQ0ZMQUdTDQo+ID4gICAgIGI4YTY2MTcwMjY0 MyBCYXNlVG9vbHMvU291cmNlL0M6IHNwbGl0ICItTzIiIHRvDQo+ID4gQlVJTERfT1BURkxBR1MN Cj4gPiAgICAgYjBjYTVkYWU3OGZmIEJhc2VUb29scy9Tb3VyY2UvQzogdGFrZQ0KPiBFWFRSQV9P UFRGTEFHUw0KPiA+IGZyb20gdGhlIGNhbGxlcg0KPiA+ICAgICA4MTUwMmNlZTIwYWMgQmFzZVRv b2xzL1NvdXJjZS9DOiB0YWtlIEVYVFJBX0xERkxBR1MNCj4gPiBmcm9tIHRoZSBjYWxsZXINCj4g PiAgICAgKw0KPiA+ICAgICBhYTRlMGRmMWYwYzcgQmFzZVRvb2xzL1ZmckNvbXBpbGU6IGhvbm9y DQo+ID4gRVhUUkFfTERGTEFHUw0KPiA+DQo+ID4gKiBGb3INCj4gPiA8aHR0cHM6Ly9idWd6aWxs YS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc3PiwNCj4gSQ0KPiA+IHB1c2hlZCAy Ng0KPiA+ICAgcGF0Y2hlczoNCj4gPg0KPiA+ICAgICA4ZmYxMjIxMTk5NDEgRW11bGF0b3JQa2c6 IHJlcXVpcmUgR0NDNDggb3IgbGF0ZXINCj4gPiAgICAgOGQ3Y2RmYWU4Y2I4IE92bWZQa2c6IHJl cXVpcmUgR0NDNDggb3IgbGF0ZXINCj4gPiAgICAgZmQxNTg0MzdkY2NlIFZsdjJUYmx0RGV2aWNl UGtnOiBhc3N1bWUgR0NDNDggb3INCj4gbGF0ZXINCj4gPiAgICAgN2E5ZGJmMmM5NGQxIEJhc2VU b29scy9Db25mL3Rvb2xzX2RlZi50ZW1wbGF0ZToNCj4gZHJvcA0KPiA+IEFSTS9BQVJDSCBzdXBw b3J0IGZyb20gR0NDNDYvR0NDNDcNCj4gPiAgICAgNDhlNjQ0OThjOTYxIEJhc2VUb29scy90b29s c19kZWYudGVtcGxhdGU6IGZpeCB1cA0KPiBMRi0NCj4gPiBvbmx5IGxpbmUgdGVybWluYXRvcg0K PiA+ICAgICA3MzgxYTY2MjdhNjYgQmFzZVRvb2xzL3Rvb2xzX2RlZi50ZW1wbGF0ZTogc3RyaXAN Cj4gPiB0cmFpbGluZyB3aGl0ZXNwYWNlDQo+ID4gICAgIDliYmYxNTZmYWFhZCBCYXNlVG9vbHMv dG9vbHNfZGVmLnRlbXBsYXRlOiByZW1vdmUNCj4gPiBHQ0M0OF9JQTMyX1g2NF9ETElOS19DT01N T04gZGVhZC1lbmQNCj4gPiAgICAgM2M1NjEzYzU5MzJjIEJhc2VUb29scy90b29sc19kZWYudGVt cGxhdGU6IHJlbW92ZQ0KPiA+IEdDQzQ3IGxlYWYgZGVmaW5pdGlvbnMNCj4gPiAgICAgZmM4N2I4 ZDdmNDExIEJhc2VUb29scy90b29sc19kZWYudGVtcGxhdGU6DQo+IHByb3BhZ2F0ZQ0KPiA+IGxv c3Mgb2YgR0NDNDcgcmVmZXJlbmNlcw0KPiA+ICAgICA5MWE2N2UwZjExMWUgQmFzZVRvb2xzL3Rv b2xzX2RlZi50ZW1wbGF0ZTogcmVtb3ZlDQo+ID4gR0NDNDcgZG9jdW1lbnRhdGlvbg0KPiA+ICAg ICAwZjIzNGZiOGE2NjIgQmFzZVRvb2xzL3Rvb2xzX2RlZi50ZW1wbGF0ZTogcmVtb3ZlDQo+ID4g R0NDNDYgbGVhZiBkZWZpbml0aW9ucw0KPiA+ICAgICA4M2E4ZjMxMzg4NGEgQmFzZVRvb2xzL3Rv b2xzX2RlZi50ZW1wbGF0ZToNCj4gcHJvcGFnYXRlDQo+ID4gbG9zcyBvZiBHQ0M0NiByZWZlcmVu Y2VzDQo+ID4gICAgIGJlMzU5ZmE3Y2VlYyBCYXNlVG9vbHMvdG9vbHNfZGVmLnRlbXBsYXRlOiBy ZW1vdmUNCj4gPiBHQ0M0NiBkb2N1bWVudGF0aW9uDQo+ID4gICAgIDE0NThhZjBjYmNlMCBCYXNl VG9vbHMvdG9vbHNfZGVmLnRlbXBsYXRlOiByZW1vdmUNCj4gPiBHQ0M0NSBsZWFmIGRlZmluaXRp b25zDQo+ID4gICAgIDAyNDU3Njg5NmQ0MiBCYXNlVG9vbHMvdG9vbHNfZGVmLnRlbXBsYXRlOg0K PiBwcm9wYWdhdGUNCj4gPiBsb3NzIG9mIEdDQzQ1IHJlZmVyZW5jZXMNCj4gPiAgICAgM2U3N2Qy MGY1Y2IzIEJhc2VUb29scy90b29sc19kZWYudGVtcGxhdGU6IHJlbW92ZQ0KPiA+IEdDQzQ1IGRv Y3VtZW50YXRpb24NCj4gPiAgICAgZTA0NmRjNjBmYjg5IEJhc2VUb29scy90b29sc19kZWYudGVt cGxhdGU6IHJlbW92ZQ0KPiA+IEdDQzQ0IGxlYWYgZGVmaW5pdGlvbnMNCj4gPiAgICAgMzhjNTcw ZWZlZGUwIEJhc2VUb29scy90b29sc19kZWYudGVtcGxhdGU6DQo+IHByb3BhZ2F0ZQ0KPiA+IGxv c3Mgb2YgR0NDNDQgcmVmZXJlbmNlcw0KPiA+ICAgICAzODNkMjkwOTY4NDYgQmFzZVRvb2xzL3Rv b2xzX2RlZi50ZW1wbGF0ZTogcmVuYW1lDQo+ID4gR0NDNDRfQUxMX0NDX0ZMQUdTIHRvIEdDQzQ4 X0FMTF9DQ19GTEFHUw0KPiA+ICAgICAwZGI5MWRhZjUyMjggQmFzZVRvb2xzL3Rvb2xzX2RlZi50 ZW1wbGF0ZToNCj4gZWxpbWluYXRlDQo+ID4gR0NDNDRfSUEzMl9YNjRfRExJTktfRkxBR1MNCj4g PiAgICAgODRkMjFhYmY0ZTM2IEJhc2VUb29scy90b29sc19kZWYudGVtcGxhdGU6IHJlbmFtZQ0K PiA+IEdDQzQ0X0lBMzJfWDY0X0RMSU5LX0NPTU1PTiB0bw0KPiA+IEdDQzQ4X0lBMzJfWDY0X0RM SU5LX0NPTU1PTg0KPiA+ICAgICA1YzZjY2Q1MzI0NGIgQmFzZVRvb2xzL3Rvb2xzX2RlZi50ZW1w bGF0ZTogcmVtb3ZlDQo+ID4gY29tbWVudCBhYm91dCBHQ0M0NCArIEx6bWFGODZDb21wcmVzcw0K PiA+ICAgICAzYmM2NTMyNmQ2ZWQgQmFzZVRvb2xzL3Rvb2xzX2RlZi50ZW1wbGF0ZTogcmVtb3Zl DQo+ID4gR0NDNDQgZG9jdW1lbnRhdGlvbg0KPiA+ICAgICBmNzI4MjAyM2U3NTggQXJtUGtnL0Fy bVNvZnRGbG9hdExpYjogZHJvcCBidWlsZA0KPiBmbGFncw0KPiA+IHNwZWNpZmljIHRvIEdDQzQ2 L0dDQzQ3DQo+ID4gICAgIDMwMGI4YzVmMTUwYyBDcnlwdG9Qa2cvQmFzZUNyeXB0TGliOiBkcm9w IGJ1aWxkDQo+IGZsYWdzDQo+ID4gc3BlY2lmaWMgdG8gR0NDNDQNCj4gPiAgICAgNzQyM2JhOWQ0 OTliIFJldmVydCAiTWRlUGtnOiBhdm9pZA0KPiA+IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpIG9u IEdDQyB2NC40Ig0KPiA+DQo+ID4gICAoTm90ZSwgZnJvbSB0aGlzIGxpc3QsIDdhOWRiZjJjOTRk MSB3YXMgYXV0aG9yZWQgYnkNCj4gPiBBcmQsIEkganVzdA0KPiA+ICAgaW5jbHVkZWQgaXQgYXQg dGhlIHJpZ2h0IHNwb3QuKQ0KPiA+DQo+ID4gQWxsIG9mIHRoZXNlIHBhdGNoIHNlcmllcyB3ZXJl IGNhcmVmdWxseSBzdHJ1Y3R1cmVkLA0KPiBhbmQNCj4gPiBjYXJlZnVsbHkNCj4gPiBkb2N1bWVu dGVkIChpbiB0aGUgY29tbWl0IG1lc3NhZ2VzKS4gSSB3b3VsZCBoYXZlIGJlZW4NCj4gPiBkZXZh c3RhdGVkLCBoYWQNCj4gPiB0aGV5IGJlZW4gc3F1YXNoZWQuDQo+ID4NCj4gPiAoQW5kIGl0IHdv dWxkIGhhdmUgYmVlbiBxdWVzdGlvbmFibGUgdG8gc3F1YXNoIEFyZCdzDQo+ID4gcGF0Y2ggd2l0 aCBwYXRjaGVzDQo+ID4gYXV0aG9yZWQgYnkgbWUuKQ0KPiA+DQo+ID4NCj4gPiA+IElzIHRoZXJl IGEgd2F5IGZvciBHaXRIdWIgdG8gc3VwcG9ydCBib3RoIHNxdWFzaA0KPiA+IGNvbW1pdHMgZm9y IHNvbWUgUFJzDQo+ID4gPiBhbmQgcHJlc2VydmUgYSBwYXRjaCBzZXJpZXMgZm9yIG90aGVyIFBS cz8NCj4gPg0KPiA+IEkgZG9uJ3Qga25vdy4NCj4gPg0KPiA+IEJ1dCBob25lc3RseSwgd2hhdCBp cyB0aGUgcHVycG9zZSBvZiBzcXVhc2ggbWVyZ2VzPw0KPiBEb24ndA0KPiA+IHdlIGV4cGVjdA0K PiA+ICphbGwqIGNvbnRyaWJ1dGlvbnMgaW4gd2VsbCBzdHJ1Y3R1cmVkIHBhdGNoIHNlcmllcz8N Cj4gPg0KPiA+IElmIHJldmlldyBkaXNjb3ZlcnMgYW4gaXNzdWUgd2l0aCB0aGUgc3RydWN0dXJl IG9mIHRoZQ0KPiA+IHNlcmllcyAoZm9yDQo+ID4gZXhhbXBsZSwgbm90IGJ1aWxkYWJsZSBpbiB0 aGUgbWlkZGxlLCBvciB0aGUgc3RlcHMgYXJlDQo+ID4gbm90IGxvZ2ljYWwgaW4NCj4gPiB0aGF0 IG9yZGVyLCBvciBzb21lIHBhdGNoZXMgZG8gdG9vIG1hbnkgdGhpbmdzIGF0IG9uY2UNCj4gPiBh bmQgc2hvdWxkIGJlDQo+ID4gc3BsaXQgdXAsIG9yIGEgcGF0Y2ggaW4gdGhlIG1pZGRsZSBoYXMg YSB0eXBvKSwgdGhlDQo+IGZpeGVzDQo+ID4gc2hvdWxkbid0IGJlDQo+ID4ganVzdCBoZWFwZWQg b24gdG9wLiBUaGUgc3VibWl0dGVyIHNob3VsZCByZXN0cnVjdHVyZQ0KPiA+IChyZWJhc2UpIHRo ZQ0KPiA+IHNlcmllcywgYW5kIHN1Ym1pdCB0aGUgcmV3b3JrZWQgc2VyaWVzIG9uIGEgbmV3IHRv cGljDQo+ID4gYnJhbmNoIC8gcHVsbA0KPiA+IHJlcXVlc3QuDQo+ID4NCj4gPiBJc24ndCB0aGlz IHRoZSBjb250cmlidXRpb24gcGF0dGVybiB3ZSdkIGxpa2UgdG8gc2VlIGluDQo+ID4gYWxsDQo+ ID4gc3ViLXByb2plY3RzLCB3aGVyZSB3ZSAodGhlIFRpYW5vQ29yZSBjb21tdW5pdHkpIGhhdmUN Cj4gPiByZXZpZXdlciAvDQo+ID4gbWFpbnRhaW5lciByZXNwb25zaWJpbGl0aWVzPw0KPiA+DQo+ ID4gVGhhbmtzLA0KPiA+IExhc3psbw0KPiA+DQo+ID4gPiBUaGFua3MsDQo+ID4gPg0KPiA+ID4g TWlrZQ0KPiA+ID4NCj4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+IEZy b206IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gW21haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5p b10NCj4gPiA+PiBPbiBCZWhhbGYgT2YgTGFzemxvIEVyc2VrDQo+ID4gPj4gU2VudDogV2VkbmVz ZGF5LCBNYXkgOCwgMjAxOSAyOjU2IEFNDQo+ID4gPj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlv OyBzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tDQo+ID4gPj4gU3ViamVjdDogUmU6IFtlZGsyLWRl dmVsXSBSRkMgZm9yIEVkazItTGlicmFyeQ0KPiA+ID4+DQo+ID4gPj4gT24gMDUvMDcvMTkgMjM6 MzUsIFNlYW4gdmlhIEdyb3Vwcy5JbyB3cm90ZToNCj4gPiA+Pj4gUkZDICBFZGsyLUxpYnJhcnkg Y3JlYXRpb24NCj4gPiA+Pj4NCj4gPiA+Pj4gQ3JlYXRlIGEgbmV3IHRpYW5vY29yZSBvd25lZCBy ZXBvc2l0b3J5IHRvIGhvc3QgYQ0KPiA+ID4+IHB5dGhvbiBsaWJyYXJ5DQo+ID4gPj4+IHBhY2th Z2UgaW4gc3VwcG9ydCBvZiBVRUZJIGRldmVsb3BtZW50LiAgVGhpcw0KPiBwYWNrYWdlDQo+ID4g Pj4gd2lsbCBhbGxvdyBlYXN5DQo+ID4gPj4+IHNoYXJpbmcgb2YgcHl0aG9uIGxpYnJhcnkgY29k ZSB0byBmYWNpbGl0YXRlIHJldXNlLg0KPiA+ID4+IEluY2x1c2lvbiBvZiB0aGlzDQo+ID4gPj4+ IHBhY2thZ2UgYW5kIGRlcGVuZGVuY3kgbWFuYWdlbWVudCBzaG91bGQgYmUgbWFuYWdlZA0KPiA+ ID4+IHVzaW5nIFBpcC9QeXBpLiBUbw0KPiA+ID4+PiBzdGFydCB0aGlzIGlzIGEgc3VwcGxlbWVu dGFsIHBhY2thZ2UgYW5kIGlzIG5vdA0KPiA+ID4+IHJlcXVpcmVkIHRvIGJlIHVzZWQNCj4gPiA+ Pj4gZm9yIGVkazIgYnVpbGRzLg0KPiA+ID4+DQo+ID4gPj4gWzFdDQo+ID4gPj4NCj4gPiA+Pj4g RXhhbXBsZXMgb2YgY29udGVudCBoZXJlDQo+ID4gPj4+DQo+ID4gPj4+ICogRWRrMiBmaWxlIHR5 cGUgcGFyc2luZw0KPiA+ID4+PiAqIFVFRkkgc3RydWN0dXJlIGVuY29kZS9kZWNvZGUgaW4gcHl0 aG9uDQo+ID4gPj4+ICogUGFja2FnaW5nIHRvb2xzIChDYXBzdWxlcyBnZW5lcmF0aW9uLCBzaWdu aW5nLA0KPiBJTkYNCj4gPiA+PiBnZW4sIENhdCBnZW4pDQo+ID4gPj4+ICogVFBNIHN1cHBvcnQg Y29kZQ0KPiA+ID4+PiAqIFBvdGVudGlhbGx5IG1vdmUgY29udGVudCBmcm9tDQo+ID4gPj4gYmFz ZXRvb2xzL3NvdXJjZS9weXRob24vY29tbW9uLyoNCj4gPiA+Pg0KPiA+ID4+IFsyXQ0KPiA+ID4+ DQo+ID4gPj4+ICogTm8gY29tbWFuZCBsaW5lIHRvb2xzL2ludGVyZmFjZQ0KPiA+ID4+Pg0KPiA+ ID4+PiBNYWludGFpbmVycw0KPiA+ID4+Pg0KPiA+ID4+PiAqIFNlYW4gQnJvZ2FuDQo+ID4gPj4+ ICogQnJldCBCYXJrZWxldw0KPiA+ID4+PiAqIFBsYWNlaG9sZGVyIGZvciBleGlzdGluZyBtYWlu dGFpbmVyIGZyb20gdGhlDQo+ID4gPj4gYmFzZXRvb2xzDQo+ID4gPj4+DQo+ID4gPj4+IExpY2Vu c2UNCj4gPiA+Pj4NCj4gPiA+Pj4gKiBCU0QgKyBQYXRlbnQgKGVkazIgYWxpZ25lZCkNCj4gPiA+ Pj4NCj4gPiA+Pj4gQ29udHJpYnV0aW9uIHByb2Nlc3MgYW5kIGlzc3VlIHRyYWNraW5nDQo+ID4g Pj4+DQo+ID4gPj4+ICogRm9sbG93IEdpdGh1YiBQUiBwcm9jZXNzIGZvciBjb250cmlidXRpb25z IGFuZA0KPiA+IGlzc3VlDQo+ID4gPj4gdHJhY2tpbmcNCj4gPiA+Pj4gKiBDb250cmlidXRvciBm b3JrcyByZXBvIGluIGdpdGh1Yg0KPiA+ID4+PiAqIENvbnRyaWJ1dG9yIGNyZWF0ZXMgYnJhbmNo IGZvciB3b3JrDQo+ID4gPj4+ICogQ29udHJpYnV0b3IgdXBkYXRlcyByZWxlYXNlIG5vdGVzIHRv IGluZGljYXRlDQo+ID4gY2hhbmdlDQo+ID4gPj4gKGlmIG5lY2Vzc2FyeSkNCj4gPiA+Pj4gKiBD b250cmlidXRvciBzdWJtaXRzIFBSIHRvIG1hc3RlciBicmFuY2ggb2YNCj4gPiA+PiB0aWFub2Nv cmUvRWRrMi1MaWJyYXJ5DQo+ID4gPj4+ICAgcmVwbw0KPiA+ID4+PiAqIFJldmlldyBmZWVkYmFj ayBpcyBnaXZlbiBpbiBQUg0KPiA+ID4+PiAqIFB5dGhvbiBUZXN0cyBhcmUgcnVuIG9uIHRoZSBy ZXBvIChuZXcNCj4gY29udHJpYnV0aW9ucw0KPiA+ID4+IG5lZWQgdW5pdCB0ZXN0cykNCj4gPiA+ Pj4gKiBQeXRob24gU3R5bGUgKGZsYWtlOCkgbXVzdCBwYXNzDQo+ID4gPj4+ICogQWxsIHJldmll dyBmZWVkYmFjayBtdXN0IGJlIGNvbXBsZXRlZCwNCj4gbWFpbnRhaW5lcnMNCj4gPiA+PiBhcHBy b3ZlZCwgYW5kDQo+ID4gPj4+ICAgdGVzdHMgcnVuIHN1Y2Nlc3NmdWxseSBiZWZvcmUgUFIgaXMg KnNxdWFzaA0KPiBtZXJnZWQqDQo+ID4gPj4gaW50byBtYXN0ZXINCj4gPiA+Pg0KPiA+ID4+IFRo ZSBzZW50ZW5jZXMNCj4gPiA+Pg0KPiA+ID4+IFsxXSAiVG8gc3RhcnQgdGhpcyBpcyBhIHN1cHBs ZW1lbnRhbCBwYWNrYWdlIGFuZCBpcw0KPiA+IG5vdA0KPiA+ID4+IHJlcXVpcmVkIHRvIGJlDQo+ ID4gPj4gICAgICB1c2VkIGZvciBlZGsyIGJ1aWxkcy4iDQo+ID4gPj4NCj4gPiA+PiBbMl0gIlBv dGVudGlhbGx5IG1vdmUgY29udGVudCBmcm9tDQo+ID4gPj4gYmFzZXRvb2xzL3NvdXJjZS9weXRo b24vY29tbW9uLyoiDQo+ID4gPj4NCj4gPiA+PiBmb3Jlc2hhZG93IHRoYXQgc3VjaCBhIGNvZGUg bW92ZW1lbnQgbWlnaHQgaGFwcGVuDQo+IGRvd24NCj4gPiA+PiB0aGUgcm9hZCwgYW5kIHRoZQ0K PiA+ID4+IGV4dGVybmFsIHBhY2thZ2UgY291bGQgYmVjb21lIGEgcmVxdWlyZW1lbnQgZm9yDQo+ ID4gYnVpbGRpbmcNCj4gPiA+PiBlZGsyLg0KPiA+ID4+DQo+ID4gPj4gVGhhdCBzdGVwIHdvdWxk IG1lYW4gdGhlIGZvbGxvd2luZzoNCj4gPiA+Pg0KPiA+ID4+IChhKSBFZGsyIHdvdWxkIG5vdCBy ZW1haW4gYnVpbGRhYmxlIGZyb20gYSBzaW5nbGUNCj4gPiA+PiBjb21tYW5kDQo+ID4gPj4NCj4g PiA+PiAgICAgZ2l0IGNsb25lIC0tcmVjdXJzZS1zdWJtb2R1bGVzDQo+ID4gPj4NCj4gPiA+PiAg ICAgQnVpbGRpbmcgZWRrMiB3b3VsZCByZXF1aXJlIEdOVS9MaW51eCB1c2VycyB0bw0KPiA+IHN0 YXJ0DQo+ID4gPj4gdHJhY2tpbmcNCj4gPiA+PiAgICAgcGFja2FnZXMgd2l0aCAicGlwIiwgd2hp Y2ggaXMgaW5kZXBlbmRlbnQgb2YgYW55DQo+ID4gPj4gZ2l2ZW4gZGlzdHJvJ3Mgb3duDQo+ID4g Pj4gICAgIHBhY2thZ2UgbWFuYWdlbWVudCwgYW5kIG1heSBjYXVzZSBjb25mbGljdHMgaWYNCj4g bm90DQo+ID4gPj4gdXNlZCBjYXJlZnVsbHk6DQo+ID4gPj4NCj4gPiA+Pg0KPiA+ID4+DQo+ID4N Cj4gaHR0cHM6Ly9kZXZlbG9wZXIuZmVkb3JhcHJvamVjdC5vcmcvdGVjaC9sYW5ndWFnZXMvcHl0 aG8NCj4gPiA+PiBuL3B5cGktaW5zdGFsbGF0aW9uLmh0bWwNCj4gPiA+Pg0KPiA+ID4+ICAgICBU aGlzIHJlcXVpcmVtZW50IG9uICJwaXAiIHdvdWxkIG9ubHkgZ28gYXdheQ0KPiBvbmNlDQo+ID4g Pj4gdGhlIGV4dGVybmFsDQo+ID4gPj4gICAgIHB5dGhvbiBkZXBlbmRlbmNpZXMgd2VyZSBwYWNr YWdlZCBmb3IgYXQgbGVhc3QNCj4gdGhlDQo+ID4gPj4gbGFyZ2VyIEdOVS9MaW51eA0KPiA+ID4+ ICAgICBkaXN0cm9zLg0KPiA+ID4+DQo+ID4gPj4gKGIpIEVkazIgdXNlcnMgcnVubmluZyBpbnRv IGJ1aWxkIHByb2JsZW1zIHJlbGF0ZWQNCj4gdG8NCj4gPiA+PiB0aGUgZXh0ZXJuYWwNCj4gPiA+ PiAgICAgcHl0aG9uIGRlcGVuZGVuY2llcyB3b3VsZCBoYXZlIHRvIGNvbnRyaWJ1dGUNCj4gPiB0 aHJvdWdoDQo+ID4gPj4gYSBnaXRodWItb25seQ0KPiA+ID4+ICAgICB3b3JrZmxvdy4gVGhhdCdz IG5vdCBhIGRlYWwtYnJlYWtlciBwZXIgc2UgLS0gaWYNCj4gPiB3ZQ0KPiA+ID4+IHdhbnQgdG8N Cj4gPiA+PiAgICAgY29udHJpYnV0ZSB0byBvdGhlciBlZGsyIGRlcGVuZGVuY2llcywgc3VjaCBh cw0KPiA+ID4+IE9wZW5TU0wgb3IgbmFzbSwgd2UNCj4gPiA+PiAgICAgYWxzbyBoYXZlIHRvIGNv bmZvcm0gdG8gdGhlaXIgc3BlY2lmaWMNCj4gZGV2ZWxvcG1lbnQNCj4gPiA+PiBtb2RlbHMsIGNs ZWFybHkuDQo+ID4gPj4NCj4gPiA+PiAgICAgSG93ZXZlciwgInNxdWFzaCBtZXJnZSIgaXMgYSBj YXRhc3Ryb3BoaWNhbGx5DQo+IGJhZA0KPiA+ID4+IGRldmVsb3BtZW50IG1vZGVsLA0KPiA+ID4+ ICAgICBhbmQgSSdkIG9iamVjdCB0byBpbnRyb2R1Y2luZyBhIG5ldyBlZGsyIGJ1aWxkDQo+ID4g Pj4gZGVwZW5kZW5jeSB0aGF0DQo+ID4gPj4gICAgIGZvbGxvd2VkIHRoYXQgbW9kZWwuDQo+ID4g Pj4NCj4gPiA+PiAgICAgKFRoZXJlIGFyZSBvdGhlciBpc3N1ZXMgd2l0aCB0aGUgR2l0SHViLmNv bQ0KPiA+ID4+IGRldmVsb3BtZW50IHdvcmtmbG93LCBhcw0KPiA+ID4+ICAgICBkaXNjdXNzZWQg ZWxzZXdoZXJlLCBidXQgInNxdWFzaCBtZXJnZSIgdGFrZXMNCj4gdGhlDQo+ID4gPj4gY2FrZS4p DQo+ID4gPj4NCj4gPiA+PiBQcm9ibGVtIChhKSB3b3VsZCBiZSBzb2x2YWJsZSBpbiB0aGUgbG9u ZyB0ZXJtDQo+ID4gKHRocm91Z2gNCj4gPiA+PiBjb2xsYWJvcmF0aW9uDQo+ID4gPj4gd2l0aCBk aXN0cm8gbWFpbnRhaW5lcnMsIGkuZS4gZG93bnN0cmVhbSBwYWNrYWdpbmcpLA0KPiA+IGJ1dA0K PiA+ID4+IHByb2JsZW0gKGIpDQo+ID4gPj4gd291bGQgbm90IGJlLiBUaHVzIEknbSBmaW5lIHdp dGggdGhlIHByb3Bvc2FsLCBpbg0KPiBpdHMNCj4gPiA+PiBjdXJyZW50IGZvcm0sIG9ubHkNCj4g PiA+PiBpZiB0aGUgbmV3IHBhY2thZ2UgaXMgMTAwJSBhbiBhZGRpdGlvbiBvbiB0b3Agb2YNCj4g ZWRrMiwNCj4gPiA+PiBldmVuIGluIHRoZSBsb25nDQo+ID4gPj4gdGVybSwgYW5kIG5vdCBpbiBh bnkgcGFydCBpbnRlbmRlZCBhcyBhIGZ1dHVyZQ0KPiA+ID4+IHJlcGxhY2VtZW50IGZvciBjdXJy ZW50DQo+ID4gPj4gZWRrMiBmdW5jdGlvbmFsaXR5Lg0KPiA+ID4+DQo+ID4gPj4gVGhhbmtzLA0K PiA+ID4+IExhc3psbw0KPiA+ID4+DQo+ID4gPj4gDQo+ID4gPg0KDQo=