From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jXoav-0004Ie-TB for barebox@lists.infradead.org; Sun, 10 May 2020 16:14:31 +0000 Date: Sun, 10 May 2020 18:14:19 +0200 From: Roland Hieber Message-ID: <20200510161419.4ifpqyhljm5xnute@pengutronix.de> References: <20200508062149.30753-1-a.fatoum@pengutronix.de> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200508062149.30753-1-a.fatoum@pengutronix.de> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: Re: [PATCH 1/3] LICENSES: replace LGPL-2.1-or-later with Linux license text To: Ahmad Fatoum Cc: barebox@lists.infradead.org T24gRnJpLCBNYXkgMDgsIDIwMjAgYXQgMDg6MjE6NDdBTSArMDIwMCwgQWhtYWQgRmF0b3VtIHdy b3RlOgo+IFRoZXkgc2VlbSB0byBiZSB0aGUgc2FtZSwgYnV0IHRoZSBMaW51eCBjb3B5IGNvbnRh aW5zIHNvbWUgaW50cm9kdWN0b3J5Cj4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgZGVzY3JpcHRp b24gdGV4dCBhbmQgaXMgbGluZS13cmFwcGVkIHRvIDgwCj4gY2hhcmFjdGVycy4gUmVwbGFjZSBv dXIgY29weSB3aXRoIHRoZSBMaW51eCB2NS42IGNvcHkgdG8gcmVkdWNlCj4gZGlmZmVyZW5jZXMu CgpJIGRvbid0IHVuZGVyc3RhbmQgd2h5IHRoYXQgaXMgaW1wb3J0YW50LCBhbmQgSSB3b3VsZCBn byB3aXRoIHRoZSB0ZXh0CnRoYXQgU1BEWCBoYXMgb24gZmlsZSwgYXMgbG9uZyBhcyBib3RoIGNv bnRhaW4gdGhlIHNhbWUgY29udGVudC4KClRoYXQgYmVpbmcgc2FpZOKApgoKPiBUaGUgbGljZW5z ZSB0ZXh0IGl0c2VsZiBpcyBhcHBsaWNhYmxlIHRvIGJvdGggTEdQTC0yLjEtb3ItbGF0ZXIgYW5k Cj4gTEdQTC0yLjEuIEl0IGp1c3QgZGVzY3JpYmVzIHdoYXQgZnVydGhlciB0ZXJtcyBhcHBseSB3 aGVuIHRoZSBsaWNlbnNlZAo+IHdvcmsgc3BlY2lmaWVkICJvciBsYXRlciIuCj4gCj4gUmVuYW1l IHRoZSBsaWNlbnNlIHRvIHRoZSBzYW1lIG5hbWUgTGludXggaXMgdXNpbmcuCj4gCj4gQ2M6IFJv bGFuZCBIaWViZXIgPHJoaUBwZW5ndXRyb25peC5kZT4KPiBTaWduZWQtb2ZmLWJ5OiBBaG1hZCBG YXRvdW0gPGEuZmF0b3VtQHBlbmd1dHJvbml4LmRlPgo+IC0tLQo+ICBMSUNFTlNFUy9wcmVmZXJy ZWQvTEdQTC0yLjEgICAgICAgICAgfCA1MDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4g IExJQ0VOU0VTL3ByZWZlcnJlZC9MR1BMLTIuMS1vci1sYXRlciB8IDQ2OCAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCgpMR1BMLTIuMS1vci1sYXRlciBpcyB1c2VkIGluIGF0IGxlYXN0IHR3byBm aWxlcyBpbiB0aGUgdHJlZeKApgoKPiAgMiBmaWxlcyBjaGFuZ2VkLCA1MDMgaW5zZXJ0aW9ucygr KSwgNDY4IGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgTElDRU5TRVMvcHJlZmVy cmVkL0xHUEwtMi4xCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBMSUNFTlNFUy9wcmVmZXJyZWQvTEdQ TC0yLjEtb3ItbGF0ZXIKPiAKPiBkaWZmIC0tZ2l0IGEvTElDRU5TRVMvcHJlZmVycmVkL0xHUEwt Mi4xIGIvTElDRU5TRVMvcHJlZmVycmVkL0xHUEwtMi4xCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK PiBpbmRleCAwMDAwMDAwMDAwMDAuLjI3YmI0MzQyYTNlOAo+IC0tLSAvZGV2L251bGwKPiArKysg Yi9MSUNFTlNFUy9wcmVmZXJyZWQvTEdQTC0yLjEKPiBAQCAtMCwwICsxLDUwMyBAQAo+ICtWYWxp ZC1MaWNlbnNlLUlkZW50aWZpZXI6IExHUEwtMi4xCj4gK1ZhbGlkLUxpY2Vuc2UtSWRlbnRpZmll cjogTEdQTC0yLjErCgrigKZidXQgZG9lcyBub3QgYXBwZWFyIGhlcmUuIFBsZWFzZSBhZGQgaXQg OikKCj4gK1NQRFgtVVJMOiBodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzL0xHUEwtMi4xLmh0bWwK PiArVXNhZ2UtR3VpZGU6Cj4gKyAgVG8gdXNlIHRoaXMgbGljZW5zZSBpbiBzb3VyY2UgY29kZSwg cHV0IG9uZSBvZiB0aGUgZm9sbG93aW5nIFNQRFgKPiArICB0YWcvdmFsdWUgcGFpcnMgaW50byBh IGNvbW1lbnQgYWNjb3JkaW5nIHRvIHRoZSBwbGFjZW1lbnQKPiArICBndWlkZWxpbmVzIGluIHRo ZSBsaWNlbnNpbmcgcnVsZXMgZG9jdW1lbnRhdGlvbi4KPiArICBGb3IgJ0dOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSAoTEdQTCkgdmVyc2lvbiAyLjEgb25seScgdXNlOgo+ICsgICAg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IExHUEwtMi4xCj4gKyAgRm9yICdHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgKExHUEwpIHZlcnNpb24gMi4xIG9yIGFueSBsYXRlcgo+ICsg IHZlcnNpb24nIHVzZToKPiArICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBMR1BMLTIuMSsK CkknZCBhbHNvIG9wdCB0byBtb3ZlIHRvIHRoZSBuZXctc3R5bGUgIkxHUEwtMi4xLW9yLWxhdGVy IiBmcm9tIGhlcmUsIGFzCiJMR1BMLTIuMSsiIGlzIGRlcHJlY2F0ZWQgc2luY2UgU1BEWCAzLjAu CgogLSBSb2xhbmQKCj4gK0xpY2Vuc2UtVGV4dDoKPiArCj4gK0dOVSBMRVNTRVIgR0VORVJBTCBQ VUJMSUMgTElDRU5TRQo+ICtWZXJzaW9uIDIuMSwgRmVicnVhcnkgMTk5OQo+ICsKPiArQ29weXJp Z2h0IChDKSAxOTkxLCAxOTk5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgo+ICs1MSBG cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCj4g Kwo+ICtFdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRp bSBjb3BpZXMgb2YgdGhpcwo+ICtsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMg bm90IGFsbG93ZWQuCj4gKwo+ICtbVGhpcyBpcyB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBv ZiB0aGUgTGVzc2VyIEdQTC4gSXQgYWxzbyBjb3VudHMgYXMKPiArdGhlIHN1Y2Nlc3NvciBvZiB0 aGUgR05VIExpYnJhcnkgUHVibGljIExpY2Vuc2UsIHZlcnNpb24gMiwgaGVuY2UgdGhlCj4gK3Zl cnNpb24gbnVtYmVyIDIuMS5dCj4gKwo+ICtQcmVhbWJsZQo+ICsKPiArVGhlIGxpY2Vuc2VzIGZv ciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRv Cj4gK3NoYXJlIGFuZCBjaGFuZ2UgaXQuIEJ5IGNvbnRyYXN0LCB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2VzIGFyZQo+ICtpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRv IHNoYXJlIGFuZCBjaGFuZ2UgZnJlZSBzb2Z0d2FyZS0tdG8KPiArbWFrZSBzdXJlIHRoZSBzb2Z0 d2FyZSBpcyBmcmVlIGZvciBhbGwgaXRzIHVzZXJzLgo+ICsKPiArVGhpcyBsaWNlbnNlLCB0aGUg TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGFwcGxpZXMgdG8gc29tZSBzcGVjaWFsbHkK PiArZGVzaWduYXRlZCBzb2Z0d2FyZSBwYWNrYWdlcy0tdHlwaWNhbGx5IGxpYnJhcmllcy0tb2Yg dGhlIEZyZWUgU29mdHdhcmUKPiArRm91bmRhdGlvbiBhbmQgb3RoZXIgYXV0aG9ycyB3aG8gZGVj aWRlIHRvIHVzZSBpdC4gWW91IGNhbiB1c2UgaXQgdG9vLCBidXQKPiArd2Ugc3VnZ2VzdCB5b3Ug Zmlyc3QgdGhpbmsgY2FyZWZ1bGx5IGFib3V0IHdoZXRoZXIgdGhpcyBsaWNlbnNlIG9yIHRoZQo+ ICtvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIHRoZSBiZXR0ZXIgc3RyYXRlZ3kg dG8gdXNlIGluIGFueQo+ICtwYXJ0aWN1bGFyIGNhc2UsIGJhc2VkIG9uIHRoZSBleHBsYW5hdGlv bnMgYmVsb3cuCj4gKwo+ICtXaGVuIHdlIHNwZWFrIG9mIGZyZWUgc29mdHdhcmUsIHdlIGFyZSBy ZWZlcnJpbmcgdG8gZnJlZWRvbSBvZiB1c2UsIG5vdAo+ICtwcmljZS4gT3VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UgaGF2ZQo+ICt0 aGUgZnJlZWRvbSB0byBkaXN0cmlidXRlIGNvcGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hh cmdlIGZvciB0aGlzCj4gK3NlcnZpY2UgaWYgeW91IHdpc2gpOyB0aGF0IHlvdSByZWNlaXZlIHNv dXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91Cj4gK3dhbnQgaXQ7IHRoYXQgeW91IGNhbiBj aGFuZ2UgdGhlIHNvZnR3YXJlIGFuZCB1c2UgcGllY2VzIG9mIGl0IGluIG5ldyBmcmVlCj4gK3By b2dyYW1zOyBhbmQgdGhhdCB5b3UgYXJlIGluZm9ybWVkIHRoYXQgeW91IGNhbiBkbyB0aGVzZSB0 aGluZ3MuCj4gKwo+ICtUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIG1ha2UgcmVz dHJpY3Rpb25zIHRoYXQgZm9yYmlkCj4gK2Rpc3RyaWJ1dG9ycyB0byBkZW55IHlvdSB0aGVzZSBy aWdodHMgb3IgdG8gYXNrIHlvdSB0byBzdXJyZW5kZXIgdGhlc2UKPiArcmlnaHRzLiBUaGVzZSBy ZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91 IGlmCj4gK3lvdSBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgbGlicmFyeSBvciBpZiB5b3UgbW9k aWZ5IGl0Lgo+ICsKPiArRm9yIGV4YW1wbGUsIGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiB0 aGUgbGlicmFyeSwgd2hldGhlciBncmF0aXMgb3IgZm9yCj4gK2EgZmVlLCB5b3UgbXVzdCBnaXZl IHRoZSByZWNpcGllbnRzIGFsbCB0aGUgcmlnaHRzIHRoYXQgd2UgZ2F2ZSB5b3UuIFlvdQo+ICtt dXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZSBvciBjYW4gZ2V0IHRoZSBzb3Vy Y2UgY29kZS4gSWYgeW91Cj4gK2xpbmsgb3RoZXIgY29kZSB3aXRoIHRoZSBsaWJyYXJ5LCB5b3Ug bXVzdCBwcm92aWRlIGNvbXBsZXRlIG9iamVjdCBmaWxlcyB0bwo+ICt0aGUgcmVjaXBpZW50cywg c28gdGhhdCB0aGV5IGNhbiByZWxpbmsgdGhlbSB3aXRoIHRoZSBsaWJyYXJ5IGFmdGVyIG1ha2lu Zwo+ICtjaGFuZ2VzIHRvIHRoZSBsaWJyYXJ5IGFuZCByZWNvbXBpbGluZyBpdC4gQW5kIHlvdSBt dXN0IHNob3cgdGhlbSB0aGVzZQo+ICt0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIgcmlnaHRzLgo+ ICsKPiArV2UgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIGEgdHdvLXN0ZXAgbWV0aG9kOiAoMSkg d2UgY29weXJpZ2h0IHRoZQo+ICtsaWJyYXJ5LCBhbmQgKDIpIHdlIG9mZmVyIHlvdSB0aGlzIGxp Y2Vuc2UsIHdoaWNoIGdpdmVzIHlvdSBsZWdhbAo+ICtwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3Ry aWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgbGlicmFyeS4KPiArCj4gK1RvIHByb3RlY3QgZWFjaCBk aXN0cmlidXRvciwgd2Ugd2FudCB0byBtYWtlIGl0IHZlcnkgY2xlYXIgdGhhdCB0aGVyZSBpcyBu bwo+ICt3YXJyYW50eSBmb3IgdGhlIGZyZWUgbGlicmFyeS4gQWxzbywgaWYgdGhlIGxpYnJhcnkg aXMgbW9kaWZpZWQgYnkgc29tZW9uZQo+ICtlbHNlIGFuZCBwYXNzZWQgb24sIHRoZSByZWNpcGll bnRzIHNob3VsZCBrbm93IHRoYXQgd2hhdCB0aGV5IGhhdmUgaXMgbm90Cj4gK3RoZSBvcmlnaW5h bCB2ZXJzaW9uLCBzbyB0aGF0IHRoZSBvcmlnaW5hbCBhdXRob3IncyByZXB1dGF0aW9uIHdpbGwg bm90IGJlCj4gK2FmZmVjdGVkIGJ5IHByb2JsZW1zIHRoYXQgbWlnaHQgYmUgaW50cm9kdWNlZCBi eSBvdGhlcnMuCj4gKwo+ICtGaW5hbGx5LCBzb2Z0d2FyZSBwYXRlbnRzIHBvc2UgYSBjb25zdGFu dCB0aHJlYXQgdG8gdGhlIGV4aXN0ZW5jZSBvZiBhbnkKPiArZnJlZSBwcm9ncmFtLiBXZSB3aXNo IHRvIG1ha2Ugc3VyZSB0aGF0IGEgY29tcGFueSBjYW5ub3QgZWZmZWN0aXZlbHkKPiArcmVzdHJp Y3QgdGhlIHVzZXJzIG9mIGEgZnJlZSBwcm9ncmFtIGJ5IG9idGFpbmluZyBhIHJlc3RyaWN0aXZl IGxpY2Vuc2UKPiArZnJvbSBhIHBhdGVudCBob2xkZXIuIFRoZXJlZm9yZSwgd2UgaW5zaXN0IHRo YXQgYW55IHBhdGVudCBsaWNlbnNlIG9idGFpbmVkCj4gK2ZvciBhIHZlcnNpb24gb2YgdGhlIGxp YnJhcnkgbXVzdCBiZSBjb25zaXN0ZW50IHdpdGggdGhlIGZ1bGwgZnJlZWRvbSBvZgo+ICt1c2Ug c3BlY2lmaWVkIGluIHRoaXMgbGljZW5zZS4KPiArCj4gK01vc3QgR05VIHNvZnR3YXJlLCBpbmNs dWRpbmcgc29tZSBsaWJyYXJpZXMsIGlzIGNvdmVyZWQgYnkgdGhlIG9yZGluYXJ5IEdOVQo+ICtH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBUaGlzIGxpY2Vuc2UsIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCj4gK0xpY2Vuc2UsIGFwcGxpZXMgdG8gY2VydGFpbiBkZXNpZ25hdGVkIGxpYnJh cmllcywgYW5kIGlzIHF1aXRlIGRpZmZlcmVudAo+ICtmcm9tIHRoZSBvcmRpbmFyeSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlLiBXZSB1c2UgdGhpcyBsaWNlbnNlIGZvciBjZXJ0YWluCj4gK2xpYnJh cmllcyBpbiBvcmRlciB0byBwZXJtaXQgbGlua2luZyB0aG9zZSBsaWJyYXJpZXMgaW50byBub24t ZnJlZQo+ICtwcm9ncmFtcy4KPiArCj4gK1doZW4gYSBwcm9ncmFtIGlzIGxpbmtlZCB3aXRoIGEg bGlicmFyeSwgd2hldGhlciBzdGF0aWNhbGx5IG9yIHVzaW5nIGEKPiArc2hhcmVkIGxpYnJhcnks IHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgdHdvIGlzIGxlZ2FsbHkgc3BlYWtpbmcgYSBjb21iaW5l ZAo+ICt3b3JrLCBhIGRlcml2YXRpdmUgb2YgdGhlIG9yaWdpbmFsIGxpYnJhcnkuIFRoZSBvcmRp bmFyeSBHZW5lcmFsIFB1YmxpYwo+ICtMaWNlbnNlIHRoZXJlZm9yZSBwZXJtaXRzIHN1Y2ggbGlu a2luZyBvbmx5IGlmIHRoZSBlbnRpcmUgY29tYmluYXRpb24gZml0cwo+ICtpdHMgY3JpdGVyaWEg b2YgZnJlZWRvbS4gVGhlIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHBlcm1pdHMgbW9y ZSBsYXgKPiArY3JpdGVyaWEgZm9yIGxpbmtpbmcgb3RoZXIgY29kZSB3aXRoIHRoZSBsaWJyYXJ5 Lgo+ICsKPiArV2UgY2FsbCB0aGlzIGxpY2Vuc2UgdGhlICJMZXNzZXIiIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYmVjYXVzZSBpdCBkb2VzCj4gK0xlc3MgdG8gcHJvdGVjdCB0aGUgdXNlcidzIGZy ZWVkb20gdGhhbiB0aGUgb3JkaW5hcnkgR2VuZXJhbCBQdWJsaWMKPiArTGljZW5zZS4gSXQgYWxz byBwcm92aWRlcyBvdGhlciBmcmVlIHNvZnR3YXJlIGRldmVsb3BlcnMgTGVzcyBvZiBhbgo+ICth ZHZhbnRhZ2Ugb3ZlciBjb21wZXRpbmcgbm9uLWZyZWUgcHJvZ3JhbXMuIFRoZXNlIGRpc2FkdmFu dGFnZXMgYXJlIHRoZQo+ICtyZWFzb24gd2UgdXNlIHRoZSBvcmRpbmFyeSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtYW55Cj4gK2xpYnJhcmllcy4gSG93ZXZlciwgdGhlIExlc3NlciBsaWNl bnNlIHByb3ZpZGVzIGFkdmFudGFnZXMgaW4gY2VydGFpbgo+ICtzcGVjaWFsIGNpcmN1bXN0YW5j ZXMuCj4gKwo+ICtGb3IgZXhhbXBsZSwgb24gcmFyZSBvY2Nhc2lvbnMsIHRoZXJlIG1heSBiZSBh IHNwZWNpYWwgbmVlZCB0byBlbmNvdXJhZ2UKPiArdGhlIHdpZGVzdCBwb3NzaWJsZSB1c2Ugb2Yg YSBjZXJ0YWluIGxpYnJhcnksIHNvIHRoYXQgaXQgYmVjb21lcyBhIGRlLWZhY3RvCj4gK3N0YW5k YXJkLiBUbyBhY2hpZXZlIHRoaXMsIG5vbi1mcmVlIHByb2dyYW1zIG11c3QgYmUgYWxsb3dlZCB0 byB1c2UgdGhlCj4gK2xpYnJhcnkuIEEgbW9yZSBmcmVxdWVudCBjYXNlIGlzIHRoYXQgYSBmcmVl IGxpYnJhcnkgZG9lcyB0aGUgc2FtZSBqb2IgYXMKPiArd2lkZWx5IHVzZWQgbm9uLWZyZWUgbGli cmFyaWVzLiBJbiB0aGlzIGNhc2UsIHRoZXJlIGlzIGxpdHRsZSB0byBnYWluIGJ5Cj4gK2xpbWl0 aW5nIHRoZSBmcmVlIGxpYnJhcnkgdG8gZnJlZSBzb2Z0d2FyZSBvbmx5LCBzbyB3ZSB1c2UgdGhl IExlc3Nlcgo+ICtHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgo+ICsKPiArSW4gb3RoZXIgY2FzZXMs IHBlcm1pc3Npb24gdG8gdXNlIGEgcGFydGljdWxhciBsaWJyYXJ5IGluIG5vbi1mcmVlIHByb2dy YW1zCj4gK2VuYWJsZXMgYSBncmVhdGVyIG51bWJlciBvZiBwZW9wbGUgdG8gdXNlIGEgbGFyZ2Ug Ym9keSBvZiBmcmVlCj4gK3NvZnR3YXJlLiBGb3IgZXhhbXBsZSwgcGVybWlzc2lvbiB0byB1c2Ug dGhlIEdOVSBDIExpYnJhcnkgaW4gbm9uLWZyZWUKPiArcHJvZ3JhbXMgZW5hYmxlcyBtYW55IG1v cmUgcGVvcGxlIHRvIHVzZSB0aGUgd2hvbGUgR05VIG9wZXJhdGluZyBzeXN0ZW0sIGFzCj4gK3dl bGwgYXMgaXRzIHZhcmlhbnQsIHRoZSBHTlUvTGludXggb3BlcmF0aW5nIHN5c3RlbS4KPiArCj4g K0FsdGhvdWdoIHRoZSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBMZXNzIHByb3Rl Y3RpdmUgb2YgdGhlIHVzZXJzJwo+ICtmcmVlZG9tLCBpdCBkb2VzIGVuc3VyZSB0aGF0IHRoZSB1 c2VyIG9mIGEgcHJvZ3JhbSB0aGF0IGlzIGxpbmtlZCB3aXRoIHRoZQo+ICtMaWJyYXJ5IGhhcyB0 aGUgZnJlZWRvbSBhbmQgdGhlIHdoZXJld2l0aGFsIHRvIHJ1biB0aGF0IHByb2dyYW0gdXNpbmcg YQo+ICttb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBMaWJyYXJ5Lgo+ICsKPiArVGhlIHByZWNpc2Ug dGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZp Y2F0aW9uCj4gK2ZvbGxvdy4gUGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgZGlmZmVyZW5jZSBi ZXR3ZWVuIGEgIndvcmsgYmFzZWQgb24gdGhlCj4gK2xpYnJhcnkiIGFuZCBhICJ3b3JrIHRoYXQg dXNlcyB0aGUgbGlicmFyeSIuIFRoZSBmb3JtZXIgY29udGFpbnMgY29kZQo+ICtkZXJpdmVkIGZy b20gdGhlIGxpYnJhcnksIHdoZXJlYXMgdGhlIGxhdHRlciBtdXN0IGJlIGNvbWJpbmVkIHdpdGgg dGhlCj4gK2xpYnJhcnkgaW4gb3JkZXIgdG8gcnVuLgo+ICsKPiArVEVSTVMgQU5EIENPTkRJVElP TlMgRk9SIENPUFlJTkcsIERJU1RSSUJVVElPTiBBTkQgTU9ESUZJQ0FUSU9OCj4gKwo+ICswLiBU aGlzIExpY2Vuc2UgQWdyZWVtZW50IGFwcGxpZXMgdG8gYW55IHNvZnR3YXJlIGxpYnJhcnkgb3Ig b3RoZXIgcHJvZ3JhbQo+ICsgICB3aGljaCBjb250YWlucyBhIG5vdGljZSBwbGFjZWQgYnkgdGhl IGNvcHlyaWdodCBob2xkZXIgb3Igb3RoZXIKPiArICAgYXV0aG9yaXplZCBwYXJ0eSBzYXlpbmcg aXQgbWF5IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzCj4gKyAgIExlc3Nl ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChhbHNvIGNhbGxlZCAidGhpcyBMaWNlbnNlIikuIEVh Y2gKPiArICAgbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgo+ICsKPiArICAgQSAibGli cmFyeSIgbWVhbnMgYSBjb2xsZWN0aW9uIG9mIHNvZnR3YXJlIGZ1bmN0aW9ucyBhbmQvb3IgZGF0 YQo+ICsgICBwcmVwYXJlZCBzbyBhcyB0byBiZSBjb252ZW5pZW50bHkgbGlua2VkIHdpdGggYXBw bGljYXRpb24gcHJvZ3JhbXMKPiArICAgKHdoaWNoIHVzZSBzb21lIG9mIHRob3NlIGZ1bmN0aW9u cyBhbmQgZGF0YSkgdG8gZm9ybSBleGVjdXRhYmxlcy4KPiArCj4gKyAgIFRoZSAiTGlicmFyeSIs IGJlbG93LCByZWZlcnMgdG8gYW55IHN1Y2ggc29mdHdhcmUgbGlicmFyeSBvciB3b3JrIHdoaWNo Cj4gKyAgIGhhcyBiZWVuIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZXNlIHRlcm1zLiBBICJ3b3JrIGJh c2VkIG9uIHRoZSBMaWJyYXJ5Igo+ICsgICBtZWFucyBlaXRoZXIgdGhlIExpYnJhcnkgb3IgYW55 IGRlcml2YXRpdmUgd29yayB1bmRlciBjb3B5cmlnaHQgbGF3Ogo+ICsgICB0aGF0IGlzIHRvIHNh eSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIExpYnJhcnkgb3IgYSBwb3J0aW9uIG9mIGl0LCBlaXRo ZXIKPiArICAgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVk IHN0cmFpZ2h0Zm9yd2FyZGx5IGludG8KPiArICAgYW5vdGhlciBsYW5ndWFnZS4gKEhlcmVpbmFm dGVyLCB0cmFuc2xhdGlvbiBpcyBpbmNsdWRlZCB3aXRob3V0Cj4gKyAgIGxpbWl0YXRpb24gaW4g dGhlIHRlcm0gIm1vZGlmaWNhdGlvbiIuKQo+ICsKPiArICAgIlNvdXJjZSBjb2RlIiBmb3IgYSB3 b3JrIG1lYW5zIHRoZSBwcmVmZXJyZWQgZm9ybSBvZiB0aGUgd29yayBmb3IgbWFraW5nCj4gKyAg IG1vZGlmaWNhdGlvbnMgdG8gaXQuIEZvciBhIGxpYnJhcnksIGNvbXBsZXRlIHNvdXJjZSBjb2Rl IG1lYW5zIGFsbCB0aGUKPiArICAgc291cmNlIGNvZGUgZm9yIGFsbCBtb2R1bGVzIGl0IGNvbnRh aW5zLCBwbHVzIGFueSBhc3NvY2lhdGVkIGludGVyZmFjZQo+ICsgICBkZWZpbml0aW9uIGZpbGVz LCBwbHVzIHRoZSBzY3JpcHRzIHVzZWQgdG8gY29udHJvbCBjb21waWxhdGlvbiBhbmQKPiArICAg aW5zdGFsbGF0aW9uIG9mIHRoZSBsaWJyYXJ5Lgo+ICsKPiArICAgIEFjdGl2aXRpZXMgb3RoZXIg dGhhbiBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kIG1vZGlmaWNhdGlvbiBhcmUgbm90Cj4gKyAg ICBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZTsgdGhleSBhcmUgb3V0c2lkZSBpdHMgc2NvcGUuIFRo ZSBhY3Qgb2YgcnVubmluZwo+ICsgICAgYSBwcm9ncmFtIHVzaW5nIHRoZSBMaWJyYXJ5IGlzIG5v dCByZXN0cmljdGVkLCBhbmQgb3V0cHV0IGZyb20gc3VjaCBhCj4gKyAgICBwcm9ncmFtIGlzIGNv dmVyZWQgb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBhIHdvcmsgYmFzZWQgb24gdGhl Cj4gKyAgICBMaWJyYXJ5IChpbmRlcGVuZGVudCBvZiB0aGUgdXNlIG9mIHRoZSBMaWJyYXJ5IGlu IGEgdG9vbCBmb3Igd3JpdGluZwo+ICsgICAgaXQpLiBXaGV0aGVyIHRoYXQgaXMgdHJ1ZSBkZXBl bmRzIG9uIHdoYXQgdGhlIExpYnJhcnkgZG9lcyBhbmQgd2hhdCB0aGUKPiArICAgIHByb2dyYW0g dGhhdCB1c2VzIHRoZSBMaWJyYXJ5IGRvZXMuCj4gKwo+ICsxLiBZb3UgbWF5IGNvcHkgYW5kIGRp c3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBMaWJyYXJ5J3MgY29tcGxldGUKPiArICAg c291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRo YXQgeW91Cj4gKyAgIGNvbnNwaWN1b3VzbHkgYW5kIGFwcHJvcHJpYXRlbHkgcHVibGlzaCBvbiBl YWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUKPiArICAgY29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xh aW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZSBub3RpY2VzCj4gKyAgIHRoYXQg cmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7 IGFuZAo+ICsgICBkaXN0cmlidXRlIGEgY29weSBvZiB0aGlzIExpY2Vuc2UgYWxvbmcgd2l0aCB0 aGUgTGlicmFyeS4KPiArCj4gKyAgIFlvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5c2lj YWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksIGFuZAo+ICsgICB5b3UgbWF5IGF0IHlvdXIg b3B0aW9uIG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgo+ ICsKPiArMi4gWW91IG1heSBtb2RpZnkgeW91ciBjb3B5IG9yIGNvcGllcyBvZiB0aGUgTGlicmFy eSBvciBhbnkgcG9ydGlvbiBvZiBpdCwKPiArICAgdGh1cyBmb3JtaW5nIGEgd29yayBiYXNlZCBv biB0aGUgTGlicmFyeSwgYW5kIGNvcHkgYW5kIGRpc3RyaWJ1dGUgc3VjaAo+ICsgICBtb2RpZmlj YXRpb25zIG9yIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMSBhYm92ZSwgcHJvdmlk ZWQgdGhhdAo+ICsgICB5b3UgYWxzbyBtZWV0IGFsbCBvZiB0aGVzZSBjb25kaXRpb25zOgo+ICsK PiArICAgYSkgVGhlIG1vZGlmaWVkIHdvcmsgbXVzdCBpdHNlbGYgYmUgYSBzb2Z0d2FyZSBsaWJy YXJ5Lgo+ICsKPiArICAgYikgWW91IG11c3QgY2F1c2UgdGhlIGZpbGVzIG1vZGlmaWVkIHRvIGNh cnJ5IHByb21pbmVudCBub3RpY2VzIHN0YXRpbmcKPiArICAgICAgdGhhdCB5b3UgY2hhbmdlZCB0 aGUgZmlsZXMgYW5kIHRoZSBkYXRlIG9mIGFueSBjaGFuZ2UuCj4gKwo+ICsgICBjKSBZb3UgbXVz dCBjYXVzZSB0aGUgd2hvbGUgb2YgdGhlIHdvcmsgdG8gYmUgbGljZW5zZWQgYXQgbm8gY2hhcmdl IHRvCj4gKyAgICAgIGFsbCB0aGlyZCBwYXJ0aWVzIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExp Y2Vuc2UuCj4gKwo+ICsgICBkKSBJZiBhIGZhY2lsaXR5IGluIHRoZSBtb2RpZmllZCBMaWJyYXJ5 IHJlZmVycyB0byBhIGZ1bmN0aW9uIG9yIGEgdGFibGUKPiArICAgICAgb2YgZGF0YSB0byBiZSBz dXBwbGllZCBieSBhbiBhcHBsaWNhdGlvbiBwcm9ncmFtIHRoYXQgdXNlcyB0aGUKPiArICAgICAg ZmFjaWxpdHksIG90aGVyIHRoYW4gYXMgYW4gYXJndW1lbnQgcGFzc2VkIHdoZW4gdGhlIGZhY2ls aXR5IGlzCj4gKyAgICAgIGludm9rZWQsIHRoZW4geW91IG11c3QgbWFrZSBhIGdvb2QgZmFpdGgg ZWZmb3J0IHRvIGVuc3VyZSB0aGF0LCBpbgo+ICsgICAgICB0aGUgZXZlbnQgYW4gYXBwbGljYXRp b24gZG9lcyBub3Qgc3VwcGx5IHN1Y2ggZnVuY3Rpb24gb3IgdGFibGUsIHRoZQo+ICsgICAgICBm YWNpbGl0eSBzdGlsbCBvcGVyYXRlcywgYW5kIHBlcmZvcm1zIHdoYXRldmVyIHBhcnQgb2YgaXRz IHB1cnBvc2UKPiArICAgICAgcmVtYWlucyBtZWFuaW5nZnVsLgo+ICsKPiArICAgKEZvciBleGFt cGxlLCBhIGZ1bmN0aW9uIGluIGEgbGlicmFyeSB0byBjb21wdXRlIHNxdWFyZSByb290cyBoYXMg YQo+ICsgICAgcHVycG9zZSB0aGF0IGlzIGVudGlyZWx5IHdlbGwtZGVmaW5lZCBpbmRlcGVuZGVu dCBvZiB0aGUKPiArICAgIGFwcGxpY2F0aW9uLiBUaGVyZWZvcmUsIFN1YnNlY3Rpb24gMmQgcmVx dWlyZXMgdGhhdCBhbnkKPiArICAgIGFwcGxpY2F0aW9uLXN1cHBsaWVkIGZ1bmN0aW9uIG9yIHRh YmxlIHVzZWQgYnkgdGhpcyBmdW5jdGlvbiBtdXN0IGJlCj4gKyAgICBvcHRpb25hbDogaWYgdGhl IGFwcGxpY2F0aW9uIGRvZXMgbm90IHN1cHBseSBpdCwgdGhlIHNxdWFyZSByb290Cj4gKyAgICBm dW5jdGlvbiBtdXN0IHN0aWxsIGNvbXB1dGUgc3F1YXJlIHJvb3RzLikKPiArCj4gKyAgIFRoZXNl IHJlcXVpcmVtZW50cyBhcHBseSB0byB0aGUgbW9kaWZpZWQgd29yayBhcyBhIHdob2xlLiBJZgo+ ICsgICBpZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBm cm9tIHRoZSBMaWJyYXJ5LCBhbmQKPiArICAgY2FuIGJlIHJlYXNvbmFibHkgY29uc2lkZXJlZCBp bmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4KPiArICAgdGhlbXNlbHZlcywgdGhlbiB0 aGlzIExpY2Vuc2UsIGFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZQo+ICsgICBz ZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuIEJ1dCB3 aGVuIHlvdQo+ICsgICBkaXN0cmlidXRlIHRoZSBzYW1lIHNlY3Rpb25zIGFzIHBhcnQgb2YgYSB3 aG9sZSB3aGljaCBpcyBhIHdvcmsgYmFzZWQgb24KPiArICAgdGhlIExpYnJhcnksIHRoZSBkaXN0 cmlidXRpb24gb2YgdGhlIHdob2xlIG11c3QgYmUgb24gdGhlIHRlcm1zIG9mIHRoaXMKPiArICAg TGljZW5zZSwgd2hvc2UgcGVybWlzc2lvbnMgZm9yIG90aGVyIGxpY2Vuc2VlcyBleHRlbmQgdG8g dGhlIGVudGlyZQo+ICsgICB3aG9sZSwgYW5kIHRodXMgdG8gZWFjaCBhbmQgZXZlcnkgcGFydCBy ZWdhcmRsZXNzIG9mIHdobyB3cm90ZSBpdC4KPiArCj4gKyAgIFRodXMsIGl0IGlzIG5vdCB0aGUg aW50ZW50IG9mIHRoaXMgc2VjdGlvbiB0byBjbGFpbSByaWdodHMgb3IgY29udGVzdAo+ICsgICB5 b3VyIHJpZ2h0cyB0byB3b3JrIHdyaXR0ZW4gZW50aXJlbHkgYnkgeW91OyByYXRoZXIsIHRoZSBp bnRlbnQgaXMgdG8KPiArICAgZXhlcmNpc2UgdGhlIHJpZ2h0IHRvIGNvbnRyb2wgdGhlIGRpc3Ry aWJ1dGlvbiBvZiBkZXJpdmF0aXZlIG9yCj4gKyAgIGNvbGxlY3RpdmUgd29ya3MgYmFzZWQgb24g dGhlIExpYnJhcnkuCj4gKwo+ICsgICBJbiBhZGRpdGlvbiwgbWVyZSBhZ2dyZWdhdGlvbiBvZiBh bm90aGVyIHdvcmsgbm90IGJhc2VkIG9uIHRoZSBMaWJyYXJ5Cj4gKyAgIHdpdGggdGhlIExpYnJh cnkgKG9yIHdpdGggYSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5KSBvbiBhIHZvbHVtZSBvZiBh Cj4gKyAgIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSBkb2VzIG5vdCBicmluZyB0aGUg b3RoZXIgd29yayB1bmRlciB0aGUKPiArICAgc2NvcGUgb2YgdGhpcyBMaWNlbnNlLgo+ICsKPiAr My4gWW91IG1heSBvcHQgdG8gYXBwbHkgdGhlIHRlcm1zIG9mIHRoZSBvcmRpbmFyeSBHTlUgR2Vu ZXJhbCBQdWJsaWMKPiArICAgTGljZW5zZSBpbnN0ZWFkIG9mIHRoaXMgTGljZW5zZSB0byBhIGdp dmVuIGNvcHkgb2YgdGhlIExpYnJhcnkuIFRvIGRvCj4gKyAgIHRoaXMsIHlvdSBtdXN0IGFsdGVy IGFsbCB0aGUgbm90aWNlcyB0aGF0IHJlZmVyIHRvIHRoaXMgTGljZW5zZSwgc28gdGhhdAo+ICsg ICB0aGV5IHJlZmVyIHRvIHRoZSBvcmRpbmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwg dmVyc2lvbiAyLAo+ICsgICBpbnN0ZWFkIG9mIHRvIHRoaXMgTGljZW5zZS4gKElmIGEgbmV3ZXIg dmVyc2lvbiB0aGFuIHZlcnNpb24gMiBvZiB0aGUKPiArICAgb3JkaW5hcnkgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgaGFzIGFwcGVhcmVkLCB0aGVuIHlvdSBjYW4gc3BlY2lmeQo+ICsgICB0 aGF0IHZlcnNpb24gaW5zdGVhZCBpZiB5b3Ugd2lzaC4pIERvIG5vdCBtYWtlIGFueSBvdGhlciBj aGFuZ2UgaW4gdGhlc2UKPiArICAgbm90aWNlcy4KPiArCj4gKyAgIE9uY2UgdGhpcyBjaGFuZ2Ug aXMgbWFkZSBpbiBhIGdpdmVuIGNvcHksIGl0IGlzIGlycmV2ZXJzaWJsZSBmb3IgdGhhdAo+ICsg ICBjb3B5LCBzbyB0aGUgb3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGll cyB0byBhbGwKPiArICAgc3Vic2VxdWVudCBjb3BpZXMgYW5kIGRlcml2YXRpdmUgd29ya3MgbWFk ZSBmcm9tIHRoYXQgY29weS4KPiArCj4gKyAgIFRoaXMgb3B0aW9uIGlzIHVzZWZ1bCB3aGVuIHlv dSB3aXNoIHRvIGNvcHkgcGFydCBvZiB0aGUgY29kZSBvZiB0aGUKPiArICAgTGlicmFyeSBpbnRv IGEgcHJvZ3JhbSB0aGF0IGlzIG5vdCBhIGxpYnJhcnkuCj4gKwo+ICs0LiBZb3UgbWF5IGNvcHkg YW5kIGRpc3RyaWJ1dGUgdGhlIExpYnJhcnkgKG9yIGEgcG9ydGlvbiBvciBkZXJpdmF0aXZlIG9m Cj4gKyAgIGl0LCB1bmRlciBTZWN0aW9uIDIpIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUg Zm9ybSB1bmRlciB0aGUgdGVybXMKPiArICAgb2YgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBwcm92 aWRlZCB0aGF0IHlvdSBhY2NvbXBhbnkgaXQgd2l0aCB0aGUKPiArICAgY29tcGxldGUgY29ycmVz cG9uZGluZyBtYWNoaW5lLXJlYWRhYmxlIHNvdXJjZSBjb2RlLCB3aGljaCBtdXN0IGJlCj4gKyAg IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9u IGEgbWVkaXVtCj4gKyAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdl Lgo+ICsKPiArICAgSWYgZGlzdHJpYnV0aW9uIG9mIG9iamVjdCBjb2RlIGlzIG1hZGUgYnkgb2Zm ZXJpbmcgYWNjZXNzIHRvIGNvcHkgZnJvbSBhCj4gKyAgIGRlc2lnbmF0ZWQgcGxhY2UsIHRoZW4g b2ZmZXJpbmcgZXF1aXZhbGVudCBhY2Nlc3MgdG8gY29weSB0aGUgc291cmNlCj4gKyAgIGNvZGUg ZnJvbSB0aGUgc2FtZSBwbGFjZSBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50IHRvIGRpc3RyaWJ1 dGUgdGhlCj4gKyAgIHNvdXJjZSBjb2RlLCBldmVuIHRob3VnaCB0aGlyZCBwYXJ0aWVzIGFyZSBu b3QgY29tcGVsbGVkIHRvIGNvcHkgdGhlCj4gKyAgIHNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmpl Y3QgY29kZS4KPiArCj4gKzUuIEEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIG5vIGRlcml2YXRpdmUg b2YgYW55IHBvcnRpb24gb2YgdGhlIExpYnJhcnksIGJ1dAo+ICsgICBpcyBkZXNpZ25lZCB0byB3 b3JrIHdpdGggdGhlIExpYnJhcnkgYnkgYmVpbmcgY29tcGlsZWQgb3IgbGlua2VkIHdpdGgKPiAr ICAgaXQsIGlzIGNhbGxlZCBhICJ3b3JrIHRoYXQgdXNlcyB0aGUgTGlicmFyeSIuIFN1Y2ggYSB3 b3JrLCBpbiBpc29sYXRpb24sCj4gKyAgIGlzIG5vdCBhIGRlcml2YXRpdmUgd29yayBvZiB0aGUg TGlicmFyeSwgYW5kIHRoZXJlZm9yZSBmYWxscyBvdXRzaWRlIHRoZQo+ICsgICBzY29wZSBvZiB0 aGlzIExpY2Vuc2UuCj4gKwo+ICsgICBIb3dldmVyLCBsaW5raW5nIGEgIndvcmsgdGhhdCB1c2Vz IHRoZSBMaWJyYXJ5IiB3aXRoIHRoZSBMaWJyYXJ5IGNyZWF0ZXMKPiArICAgYW4gZXhlY3V0YWJs ZSB0aGF0IGlzIGEgZGVyaXZhdGl2ZSBvZiB0aGUgTGlicmFyeSAoYmVjYXVzZSBpdCBjb250YWlu cwo+ICsgICBwb3J0aW9ucyBvZiB0aGUgTGlicmFyeSksIHJhdGhlciB0aGFuIGEgIndvcmsgdGhh dCB1c2VzIHRoZQo+ICsgICBsaWJyYXJ5Ii4gVGhlIGV4ZWN1dGFibGUgaXMgdGhlcmVmb3JlIGNv dmVyZWQgYnkgdGhpcyBMaWNlbnNlLiBTZWN0aW9uIDYKPiArICAgc3RhdGVzIHRlcm1zIGZvciBk aXN0cmlidXRpb24gb2Ygc3VjaCBleGVjdXRhYmxlcy4KPiArCj4gKyAgIFdoZW4gYSAid29yayB0 aGF0IHVzZXMgdGhlIExpYnJhcnkiIHVzZXMgbWF0ZXJpYWwgZnJvbSBhIGhlYWRlciBmaWxlCj4g KyAgIHRoYXQgaXMgcGFydCBvZiB0aGUgTGlicmFyeSwgdGhlIG9iamVjdCBjb2RlIGZvciB0aGUg d29yayBtYXkgYmUgYQo+ICsgICBkZXJpdmF0aXZlIHdvcmsgb2YgdGhlIExpYnJhcnkgZXZlbiB0 aG91Z2ggdGhlIHNvdXJjZSBjb2RlIGlzCj4gKyAgIG5vdC4gV2hldGhlciB0aGlzIGlzIHRydWUg aXMgZXNwZWNpYWxseSBzaWduaWZpY2FudCBpZiB0aGUgd29yayBjYW4gYmUKPiArICAgbGlua2Vk IHdpdGhvdXQgdGhlIExpYnJhcnksIG9yIGlmIHRoZSB3b3JrIGlzIGl0c2VsZiBhIGxpYnJhcnku IFRoZQo+ICsgICB0aHJlc2hvbGQgZm9yIHRoaXMgdG8gYmUgdHJ1ZSBpcyBub3QgcHJlY2lzZWx5 IGRlZmluZWQgYnkgbGF3Lgo+ICsKPiArICAgSWYgc3VjaCBhbiBvYmplY3QgZmlsZSB1c2VzIG9u bHkgbnVtZXJpY2FsIHBhcmFtZXRlcnMsIGRhdGEgc3RydWN0dXJlCj4gKyAgIGxheW91dHMgYW5k IGFjY2Vzc29ycywgYW5kIHNtYWxsIG1hY3JvcyBhbmQgc21hbGwgaW5saW5lIGZ1bmN0aW9ucyAo dGVuCj4gKyAgIGxpbmVzIG9yIGxlc3MgaW4gbGVuZ3RoKSwgdGhlbiB0aGUgdXNlIG9mIHRoZSBv YmplY3QgZmlsZSBpcwo+ICsgICB1bnJlc3RyaWN0ZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBp dCBpcyBsZWdhbGx5IGEgZGVyaXZhdGl2ZQo+ICsgICB3b3JrLiAoRXhlY3V0YWJsZXMgY29udGFp bmluZyB0aGlzIG9iamVjdCBjb2RlIHBsdXMgcG9ydGlvbnMgb2YgdGhlCj4gKyAgIExpYnJhcnkg d2lsbCBzdGlsbCBmYWxsIHVuZGVyIFNlY3Rpb24gNi4pCj4gKwo+ICsgICBPdGhlcndpc2UsIGlm IHRoZSB3b3JrIGlzIGEgZGVyaXZhdGl2ZSBvZiB0aGUgTGlicmFyeSwgeW91IG1heQo+ICsgICBk aXN0cmlidXRlIHRoZSBvYmplY3QgY29kZSBmb3IgdGhlIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9m IFNlY3Rpb24KPiArICAgNi4gQW55IGV4ZWN1dGFibGVzIGNvbnRhaW5pbmcgdGhhdCB3b3JrIGFs c28gZmFsbCB1bmRlciBTZWN0aW9uIDYsCj4gKyAgIHdoZXRoZXIgb3Igbm90IHRoZXkgYXJlIGxp bmtlZCBkaXJlY3RseSB3aXRoIHRoZSBMaWJyYXJ5IGl0c2VsZi4KPiArCj4gKzYuIEFzIGFuIGV4 Y2VwdGlvbiB0byB0aGUgU2VjdGlvbnMgYWJvdmUsIHlvdSBtYXkgYWxzbyBjb21iaW5lIG9yIGxp bmsgYQo+ICsgICAid29yayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiIHdpdGggdGhlIExpYnJhcnkg dG8gcHJvZHVjZSBhIHdvcmsKPiArICAgY29udGFpbmluZyBwb3J0aW9ucyBvZiB0aGUgTGlicmFy eSwgYW5kIGRpc3RyaWJ1dGUgdGhhdCB3b3JrIHVuZGVyIHRlcm1zCj4gKyAgIG9mIHlvdXIgY2hv aWNlLCBwcm92aWRlZCB0aGF0IHRoZSB0ZXJtcyBwZXJtaXQgbW9kaWZpY2F0aW9uIG9mIHRoZSB3 b3JrCj4gKyAgIGZvciB0aGUgY3VzdG9tZXIncyBvd24gdXNlIGFuZCByZXZlcnNlIGVuZ2luZWVy aW5nIGZvciBkZWJ1Z2dpbmcgc3VjaAo+ICsgICBtb2RpZmljYXRpb25zLgo+ICsKPiArICAgWW91 IG11c3QgZ2l2ZSBwcm9taW5lbnQgbm90aWNlIHdpdGggZWFjaCBjb3B5IG9mIHRoZSB3b3JrIHRo YXQgdGhlCj4gKyAgIExpYnJhcnkgaXMgdXNlZCBpbiBpdCBhbmQgdGhhdCB0aGUgTGlicmFyeSBh bmQgaXRzIHVzZSBhcmUgY292ZXJlZCBieQo+ICsgICB0aGlzIExpY2Vuc2UuIFlvdSBtdXN0IHN1 cHBseSBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlLiBJZiB0aGUgd29yayBkdXJpbmcKPiArICAgZXhl Y3V0aW9uIGRpc3BsYXlzIGNvcHlyaWdodCBub3RpY2VzLCB5b3UgbXVzdCBpbmNsdWRlIHRoZSBj b3B5cmlnaHQKPiArICAgbm90aWNlIGZvciB0aGUgTGlicmFyeSBhbW9uZyB0aGVtLCBhcyB3ZWxs IGFzIGEgcmVmZXJlbmNlIGRpcmVjdGluZyB0aGUKPiArICAgdXNlciB0byB0aGUgY29weSBvZiB0 aGlzIExpY2Vuc2UuIEFsc28sIHlvdSBtdXN0IGRvIG9uZSBvZiB0aGVzZSB0aGluZ3M6Cj4gKwo+ ICsgICBhKSBBY2NvbXBhbnkgdGhlIHdvcmsgd2l0aCB0aGUgY29tcGxldGUgY29ycmVzcG9uZGlu ZyBtYWNoaW5lLXJlYWRhYmxlCj4gKyAgICAgIHNvdXJjZSBjb2RlIGZvciB0aGUgTGlicmFyeSBp bmNsdWRpbmcgd2hhdGV2ZXIgY2hhbmdlcyB3ZXJlIHVzZWQgaW4KPiArICAgICAgdGhlIHdvcmsg KHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSk7 Cj4gKyAgICAgIGFuZCwgaWYgdGhlIHdvcmsgaXMgYW4gZXhlY3V0YWJsZSBsaW5rZWQgd2l0aCB0 aGUgTGlicmFyeSwgd2l0aCB0aGUKPiArICAgICAgY29tcGxldGUgbWFjaGluZS1yZWFkYWJsZSAi d29yayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiLCBhcyBvYmplY3QKPiArICAgICAgY29kZSBhbmQv b3Igc291cmNlIGNvZGUsIHNvIHRoYXQgdGhlIHVzZXIgY2FuIG1vZGlmeSB0aGUgTGlicmFyeSBh bmQKPiArICAgICAgdGhlbiByZWxpbmsgdG8gcHJvZHVjZSBhIG1vZGlmaWVkIGV4ZWN1dGFibGUg Y29udGFpbmluZyB0aGUgbW9kaWZpZWQKPiArICAgICAgTGlicmFyeS4gKEl0IGlzIHVuZGVyc3Rv b2QgdGhhdCB0aGUgdXNlciB3aG8gY2hhbmdlcyB0aGUgY29udGVudHMgb2YKPiArICAgICAgZGVm aW5pdGlvbnMgZmlsZXMgaW4gdGhlIExpYnJhcnkgd2lsbCBub3QgbmVjZXNzYXJpbHkgYmUgYWJs ZSB0bwo+ICsgICAgICByZWNvbXBpbGUgdGhlIGFwcGxpY2F0aW9uIHRvIHVzZSB0aGUgbW9kaWZp ZWQgZGVmaW5pdGlvbnMuKQo+ICsKPiArICAgYikgVXNlIGEgc3VpdGFibGUgc2hhcmVkIGxpYnJh cnkgbWVjaGFuaXNtIGZvciBsaW5raW5nIHdpdGggdGhlCj4gKyAgICAgIExpYnJhcnkuIEEgc3Vp dGFibGUgbWVjaGFuaXNtIGlzIG9uZSB0aGF0ICgxKSB1c2VzIGF0IHJ1biB0aW1lIGEgY29weQo+ ICsgICAgICBvZiB0aGUgbGlicmFyeSBhbHJlYWR5IHByZXNlbnQgb24gdGhlIHVzZXIncyBjb21w dXRlciBzeXN0ZW0sIHJhdGhlcgo+ICsgICAgICB0aGFuIGNvcHlpbmcgbGlicmFyeSBmdW5jdGlv bnMgaW50byB0aGUgZXhlY3V0YWJsZSwgYW5kICgyKSB3aWxsCj4gKyAgICAgIG9wZXJhdGUgcHJv cGVybHkgd2l0aCBhIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIGlmIHRoZSB1c2Vy Cj4gKyAgICAgIGluc3RhbGxzIG9uZSwgYXMgbG9uZyBhcyB0aGUgbW9kaWZpZWQgdmVyc2lvbiBp cyBpbnRlcmZhY2UtY29tcGF0aWJsZQo+ICsgICAgICB3aXRoIHRoZSB2ZXJzaW9uIHRoYXQgdGhl IHdvcmsgd2FzIG1hZGUgd2l0aC4KPiArCj4gKyAgIGMpIEFjY29tcGFueSB0aGUgd29yayB3aXRo IGEgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlCj4gKyAgICAgIHllYXJz LCB0byBnaXZlIHRoZSBzYW1lIHVzZXIgdGhlIG1hdGVyaWFscyBzcGVjaWZpZWQgaW4gU3Vic2Vj dGlvbgo+ICsgICAgICA2YSwgYWJvdmUsIGZvciBhIGNoYXJnZSBubyBtb3JlIHRoYW4gdGhlIGNv c3Qgb2YgcGVyZm9ybWluZyB0aGlzCj4gKyAgICAgIGRpc3RyaWJ1dGlvbi4KPiArCj4gKyAgIGQp IElmIGRpc3RyaWJ1dGlvbiBvZiB0aGUgd29yayBpcyBtYWRlIGJ5IG9mZmVyaW5nIGFjY2VzcyB0 byBjb3B5IGZyb20gYQo+ICsgICAgICBkZXNpZ25hdGVkIHBsYWNlLCBvZmZlciBlcXVpdmFsZW50 IGFjY2VzcyB0byBjb3B5IHRoZSBhYm92ZSBzcGVjaWZpZWQKPiArICAgICAgbWF0ZXJpYWxzIGZy b20gdGhlIHNhbWUgcGxhY2UuCj4gKwo+ICsgICBlKSBWZXJpZnkgdGhhdCB0aGUgdXNlciBoYXMg YWxyZWFkeSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlc2UgbWF0ZXJpYWxzCj4gKyAgICAgIG9yIHRo YXQgeW91IGhhdmUgYWxyZWFkeSBzZW50IHRoaXMgdXNlciBhIGNvcHkuCj4gKwo+ICsgICBGb3Ig YW4gZXhlY3V0YWJsZSwgdGhlIHJlcXVpcmVkIGZvcm0gb2YgdGhlICJ3b3JrIHRoYXQgdXNlcyB0 aGUgTGlicmFyeSIKPiArICAgbXVzdCBpbmNsdWRlIGFueSBkYXRhIGFuZCB1dGlsaXR5IHByb2dy YW1zIG5lZWRlZCBmb3IgcmVwcm9kdWNpbmcgdGhlCj4gKyAgIGV4ZWN1dGFibGUgZnJvbSBpdC4g SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgdGhlIG1hdGVyaWFscyB0byBiZQo+ICsg ICBkaXN0cmlidXRlZCBuZWVkIG5vdCBpbmNsdWRlIGFueXRoaW5nIHRoYXQgaXMgbm9ybWFsbHkg ZGlzdHJpYnV0ZWQgKGluCj4gKyAgIGVpdGhlciBzb3VyY2Ugb3IgYmluYXJ5IGZvcm0pIHdpdGgg dGhlIG1ham9yIGNvbXBvbmVudHMgKGNvbXBpbGVyLAo+ICsgICBrZXJuZWwsIGFuZCBzbyBvbikg b2YgdGhlIG9wZXJhdGluZyBzeXN0ZW0gb24gd2hpY2ggdGhlIGV4ZWN1dGFibGUgcnVucywKPiAr ICAgdW5sZXNzIHRoYXQgY29tcG9uZW50IGl0c2VsZiBhY2NvbXBhbmllcyB0aGUgZXhlY3V0YWJs ZS4KPiArCj4gKyAgIEl0IG1heSBoYXBwZW4gdGhhdCB0aGlzIHJlcXVpcmVtZW50IGNvbnRyYWRp Y3RzIHRoZSBsaWNlbnNlIHJlc3RyaWN0aW9ucwo+ICsgICBvZiBvdGhlciBwcm9wcmlldGFyeSBs aWJyYXJpZXMgdGhhdCBkbyBub3Qgbm9ybWFsbHkgYWNjb21wYW55IHRoZQo+ICsgICBvcGVyYXRp bmcgc3lzdGVtLiBTdWNoIGEgY29udHJhZGljdGlvbiBtZWFucyB5b3UgY2Fubm90IHVzZSBib3Ro IHRoZW0KPiArICAgYW5kIHRoZSBMaWJyYXJ5IHRvZ2V0aGVyIGluIGFuIGV4ZWN1dGFibGUgdGhh dCB5b3UgZGlzdHJpYnV0ZS4KPiArCj4gKzcuIFlvdSBtYXkgcGxhY2UgbGlicmFyeSBmYWNpbGl0 aWVzIHRoYXQgYXJlIGEgd29yayBiYXNlZCBvbiB0aGUgTGlicmFyeQo+ICsgICBzaWRlLWJ5LXNp ZGUgaW4gYSBzaW5nbGUgbGlicmFyeSB0b2dldGhlciB3aXRoIG90aGVyIGxpYnJhcnkgZmFjaWxp dGllcwo+ICsgICBub3QgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHN1 Y2ggYSBjb21iaW5lZCBsaWJyYXJ5LAo+ICsgICBwcm92aWRlZCB0aGF0IHRoZSBzZXBhcmF0ZSBk aXN0cmlidXRpb24gb2YgdGhlIHdvcmsgYmFzZWQgb24gdGhlIExpYnJhcnkKPiArICAgYW5kIG9m IHRoZSBvdGhlciBsaWJyYXJ5IGZhY2lsaXRpZXMgaXMgb3RoZXJ3aXNlIHBlcm1pdHRlZCwgYW5k IHByb3ZpZGVkCj4gKyAgIHRoYXQgeW91IGRvIHRoZXNlIHR3byB0aGluZ3M6Cj4gKwo+ICsgICBh KSBBY2NvbXBhbnkgdGhlIGNvbWJpbmVkIGxpYnJhcnkgd2l0aCBhIGNvcHkgb2YgdGhlIHNhbWUg d29yayBiYXNlZCBvbgo+ICsgICAgICB0aGUgTGlicmFyeSwgdW5jb21iaW5lZCB3aXRoIGFueSBv dGhlciBsaWJyYXJ5IGZhY2lsaXRpZXMuIFRoaXMgbXVzdAo+ICsgICAgICBiZSBkaXN0cmlidXRl ZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIFNlY3Rpb25zIGFib3ZlLgo+ICsKPiArICAgYikgR2l2 ZSBwcm9taW5lbnQgbm90aWNlIHdpdGggdGhlIGNvbWJpbmVkIGxpYnJhcnkgb2YgdGhlIGZhY3Qg dGhhdCBwYXJ0Cj4gKyAgICAgIG9mIGl0IGlzIGEgd29yayBiYXNlZCBvbiB0aGUgTGlicmFyeSwg YW5kIGV4cGxhaW5pbmcgd2hlcmUgdG8gZmluZAo+ICsgICAgICB0aGUgYWNjb21wYW55aW5nIHVu Y29tYmluZWQgZm9ybSBvZiB0aGUgc2FtZSB3b3JrLgo+ICsKPiArOC4gWW91IG1heSBub3QgY29w eSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBsaW5rIHdpdGgsIG9yIGRpc3RyaWJ1dGUgdGhlCj4gKyAg IExpYnJhcnkgZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2Uu IEFueSBhdHRlbXB0Cj4gKyAgIG90aGVyd2lzZSB0byBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2Us IGxpbmsgd2l0aCwgb3IgZGlzdHJpYnV0ZSB0aGUKPiArICAgTGlicmFyeSBpcyB2b2lkLCBhbmQg d2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzCj4gKyAg IExpY2Vuc2UuIEhvd2V2ZXIsIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzLCBvciBy aWdodHMsIGZyb20geW91Cj4gKyAgIHVuZGVyIHRoaXMgTGljZW5zZSB3aWxsIG5vdCBoYXZlIHRo ZWlyIGxpY2Vuc2VzIHRlcm1pbmF0ZWQgc28gbG9uZyBhcwo+ICsgICBzdWNoIHBhcnRpZXMgcmVt YWluIGluIGZ1bGwgY29tcGxpYW5jZS4KPiArCj4gKzkuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRv IGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZlIG5vdCBzaWduZWQKPiArICAgaXQu IEhvd2V2ZXIsIG5vdGhpbmcgZWxzZSBncmFudHMgeW91IHBlcm1pc3Npb24gdG8gbW9kaWZ5IG9y IGRpc3RyaWJ1dGUKPiArICAgdGhlIExpYnJhcnkgb3IgaXRzIGRlcml2YXRpdmUgd29ya3MuIFRo ZXNlIGFjdGlvbnMgYXJlIHByb2hpYml0ZWQgYnkgbGF3Cj4gKyAgIGlmIHlvdSBkbyBub3QgYWNj ZXB0IHRoaXMgTGljZW5zZS4gVGhlcmVmb3JlLCBieSBtb2RpZnlpbmcgb3IKPiArICAgZGlzdHJp YnV0aW5nIHRoZSBMaWJyYXJ5IChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUgTGlicmFyeSksIHlv dQo+ICsgICBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNv LCBhbmQgYWxsIGl0cyB0ZXJtcyBhbmQKPiArICAgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlz dHJpYnV0aW5nIG9yIG1vZGlmeWluZyB0aGUgTGlicmFyeSBvciB3b3Jrcwo+ICsgICBiYXNlZCBv biBpdC4KPiArCj4gKzEwLiBFYWNoIHRpbWUgeW91IHJlZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSAo b3IgYW55IHdvcmsgYmFzZWQgb24gdGhlCj4gKyAgICBMaWJyYXJ5KSwgdGhlIHJlY2lwaWVudCBh dXRvbWF0aWNhbGx5IHJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZQo+ICsgICAgb3JpZ2luYWwg bGljZW5zb3IgdG8gY29weSwgZGlzdHJpYnV0ZSwgbGluayB3aXRoIG9yIG1vZGlmeSB0aGUgTGli cmFyeQo+ICsgICAgc3ViamVjdCB0byB0aGVzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucy4gWW91IG1h eSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCj4gKyAgICByZXN0cmljdGlvbnMgb24gdGhlIHJlY2lw aWVudHMnIGV4ZXJjaXNlIG9mIHRoZSByaWdodHMgZ3JhbnRlZAo+ICsgICAgaGVyZWluLiBZb3Ug YXJlIG5vdCByZXNwb25zaWJsZSBmb3IgZW5mb3JjaW5nIGNvbXBsaWFuY2UgYnkgdGhpcmQKPiAr ICAgIHBhcnRpZXMgd2l0aCB0aGlzIExpY2Vuc2UuCj4gKwo+ICsxMS4gSWYsIGFzIGEgY29uc2Vx dWVuY2Ugb2YgYSBjb3VydCBqdWRnbWVudCBvciBhbGxlZ2F0aW9uIG9mIHBhdGVudAo+ICsgICAg aW5mcmluZ2VtZW50IG9yIGZvciBhbnkgb3RoZXIgcmVhc29uIChub3QgbGltaXRlZCB0byBwYXRl bnQgaXNzdWVzKSwKPiArICAgIGNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVy IGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKPiArICAgIG90aGVyd2lzZSkgdGhhdCBjb250 cmFkaWN0IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QKPiArICAg IGV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuIElmIHlvdSBj YW5ub3QKPiArICAgIGRpc3RyaWJ1dGUgc28gYXMgdG8gc2F0aXNmeSBzaW11bHRhbmVvdXNseSB5 b3VyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMKPiArICAgIExpY2Vuc2UgYW5kIGFueSBvdGhlciBw ZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UKPiArICAgIG1h eSBub3QgZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSBhdCBhbGwuIEZvciBleGFtcGxlLCBpZiBhIHBh dGVudCBsaWNlbnNlCj4gKyAgICB3b3VsZCBub3QgcGVybWl0IHJveWFsdHktZnJlZSByZWRpc3Ry aWJ1dGlvbiBvZiB0aGUgTGlicmFyeSBieSBhbGwKPiArICAgIHRob3NlIHdobyByZWNlaXZlIGNv cGllcyBkaXJlY3RseSBvciBpbmRpcmVjdGx5IHRocm91Z2ggeW91LCB0aGVuIHRoZQo+ICsgICAg b25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxk IGJlIHRvIHJlZnJhaW4KPiArICAgIGVudGlyZWx5IGZyb20gZGlzdHJpYnV0aW9uIG9mIHRoZSBM aWJyYXJ5Lgo+ICsKPiArICAgIElmIGFueSBwb3J0aW9uIG9mIHRoaXMgc2VjdGlvbiBpcyBoZWxk IGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgo+ICsgICAgYW55IHBhcnRpY3VsYXIgY2ly Y3Vtc3RhbmNlLCB0aGUgYmFsYW5jZSBvZiB0aGUgc2VjdGlvbiBpcyBpbnRlbmRlZCB0bwo+ICsg ICAgYXBwbHksIGFuZCB0aGUgc2VjdGlvbiBhcyBhIHdob2xlIGlzIGludGVuZGVkIHRvIGFwcGx5 IGluIG90aGVyCj4gKyAgICBjaXJjdW1zdGFuY2VzLgo+ICsKPiArICAgIEl0IGlzIG5vdCB0aGUg cHVycG9zZSBvZiB0aGlzIHNlY3Rpb24gdG8gaW5kdWNlIHlvdSB0byBpbmZyaW5nZSBhbnkKPiAr ICAgIHBhdGVudHMgb3Igb3RoZXIgcHJvcGVydHkgcmlnaHQgY2xhaW1zIG9yIHRvIGNvbnRlc3Qg dmFsaWRpdHkgb2YgYW55Cj4gKyAgICBzdWNoIGNsYWltczsgdGhpcyBzZWN0aW9uIGhhcyB0aGUg c29sZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlCj4gKyAgICBpbnRlZ3JpdHkgb2YgdGhlIGZy ZWUgc29mdHdhcmUgZGlzdHJpYnV0aW9uIHN5c3RlbSB3aGljaCBpcyBpbXBsZW1lbnRlZAo+ICsg ICAgYnkgcHVibGljIGxpY2Vuc2UgcHJhY3RpY2VzLiBNYW55IHBlb3BsZSBoYXZlIG1hZGUgZ2Vu ZXJvdXMKPiArICAgIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHdpZGUgcmFuZ2Ugb2Ygc29mdHdhcmUg ZGlzdHJpYnV0ZWQgdGhyb3VnaCB0aGF0Cj4gKyAgICBzeXN0ZW0gaW4gcmVsaWFuY2Ugb24gY29u c2lzdGVudCBhcHBsaWNhdGlvbiBvZiB0aGF0IHN5c3RlbTsgaXQgaXMgdXAKPiArICAgIHRvIHRo ZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nIHRvIGRpc3Ry aWJ1dGUKPiArICAgIHNvZnR3YXJlIHRocm91Z2ggYW55IG90aGVyIHN5c3RlbSBhbmQgYSBsaWNl bnNlZSBjYW5ub3QgaW1wb3NlIHRoYXQKPiArICAgIGNob2ljZS4KPiArCj4gKyAgICBUaGlzIHNl Y3Rpb24gaXMgaW50ZW5kZWQgdG8gbWFrZSB0aG9yb3VnaGx5IGNsZWFyIHdoYXQgaXMgYmVsaWV2 ZWQgdG8KPiArICAgIGJlIGEgY29uc2VxdWVuY2Ugb2YgdGhlIHJlc3Qgb2YgdGhpcyBMaWNlbnNl Lgo+ICsKPiArMTIuIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgTGlicmFy eSBpcyByZXN0cmljdGVkIGluIGNlcnRhaW4KPiArICAgIGNvdW50cmllcyBlaXRoZXIgYnkgcGF0 ZW50cyBvciBieSBjb3B5cmlnaHRlZCBpbnRlcmZhY2VzLCB0aGUgb3JpZ2luYWwKPiArICAgIGNv cHlyaWdodCBob2xkZXIgd2hvIHBsYWNlcyB0aGUgTGlicmFyeSB1bmRlciB0aGlzIExpY2Vuc2Ug bWF5IGFkZCBhbgo+ICsgICAgZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1p dGF0aW9uIGV4Y2x1ZGluZyB0aG9zZQo+ICsgICAgY291bnRyaWVzLCBzbyB0aGF0IGRpc3RyaWJ1 dGlvbiBpcyBwZXJtaXR0ZWQgb25seSBpbiBvciBhbW9uZyBjb3VudHJpZXMKPiArICAgIG5vdCB0 aHVzIGV4Y2x1ZGVkLiBJbiBzdWNoIGNhc2UsIHRoaXMgTGljZW5zZSBpbmNvcnBvcmF0ZXMgdGhl Cj4gKyAgICBsaW1pdGF0aW9uIGFzIGlmIHdyaXR0ZW4gaW4gdGhlIGJvZHkgb2YgdGhpcyBMaWNl bnNlLgo+ICsKPiArMTMuIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gbWF5IHB1Ymxpc2gg cmV2aXNlZCBhbmQvb3IgbmV3IHZlcnNpb25zIG9mCj4gKyAgICB0aGUgTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuIFN1Y2ggbmV3IHZlcnNpb25zCj4gKyAg ICB3aWxsIGJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBt YXkgZGlmZmVyIGluCj4gKyAgICBkZXRhaWwgdG8gYWRkcmVzcyBuZXcgcHJvYmxlbXMgb3IgY29u Y2VybnMuCj4gKwo+ICsgICAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcg dmVyc2lvbiBudW1iZXIuIElmIHRoZSBMaWJyYXJ5Cj4gKyAgICBzcGVjaWZpZXMgYSB2ZXJzaW9u IG51bWJlciBvZiB0aGlzIExpY2Vuc2Ugd2hpY2ggYXBwbGllcyB0byBpdCBhbmQgImFueQo+ICsg ICAgbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0 ZXJtcyBhbmQKPiArICAgIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgdmVyc2lvbiBvciBvZiBh bnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkKPiArICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24uIElmIHRoZSBMaWJyYXJ5IGRvZXMgbm90IHNwZWNpZnkgYSBsaWNlbnNlCj4gKyAg ICB2ZXJzaW9uIG51bWJlciwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUKPiArICAgIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4gKwo+ICsxNC4gSWYg eW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUgcGFydHMgb2YgdGhlIExpYnJhcnkgaW50byBvdGhlciBm cmVlCj4gKyAgICBwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgaW5j b21wYXRpYmxlIHdpdGggdGhlc2UsCj4gKyAgICB3cml0ZSB0byB0aGUgYXV0aG9yIHRvIGFzayBm b3IgcGVybWlzc2lvbi4gRm9yIHNvZnR3YXJlIHdoaWNoIGlzCj4gKyAgICBjb3B5cmlnaHRlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy ZQo+ICsgICAgRm91bmRhdGlvbjsgd2Ugc29tZXRpbWVzIG1ha2UgZXhjZXB0aW9ucyBmb3IgdGhp cy4gT3VyIGRlY2lzaW9uIHdpbGwgYmUKPiArICAgIGd1aWRlZCBieSB0aGUgdHdvIGdvYWxzIG9m IHByZXNlcnZpbmcgdGhlIGZyZWUgc3RhdHVzIG9mIGFsbAo+ICsgICAgZGVyaXZhdGl2ZXMgb2Yg b3VyIGZyZWUgc29mdHdhcmUgYW5kIG9mIHByb21vdGluZyB0aGUgc2hhcmluZyBhbmQgcmV1c2UK PiArICAgIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KPiArCj4gK05PIFdBUlJBTlRZCj4gKwo+ICsx NS4gQkVDQVVTRSBUSEUgTElCUkFSWSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUg SVMgTk8gV0FSUkFOVFkKPiArICAgIEZPUiBUSEUgTElCUkFSWSwgVE8gVEhFIEVYVEVOVCBQRVJN SVRURUQgQlkgQVBQTElDQUJMRSBMQVcuIEVYQ0VQVCBXSEVOCj4gKyAgICBPVEhFUldJU0UgU1RB VEVEIElOIFdSSVRJTkcgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORC9PUiBPVEhFUiBQQVJUSUVT Cj4gKyAgICBQUk9WSURFIFRIRSBMSUJSQVJZICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWSBPRiBB TlkgS0lORCwgRUlUSEVSCj4gKyAgICBFWFBSRVNTRUQgT1IgSU1QTElFRCwgSU5DTFVESU5HLCBC VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECj4gKyAgICBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFRIRQo+ICsg ICAgRU5USVJFIFJJU0sgQVMgVE8gVEhFIFFVQUxJVFkgQU5EIFBFUkZPUk1BTkNFIE9GIFRIRSBM SUJSQVJZIElTIFdJVEgKPiArICAgIFlPVS4gU0hPVUxEIFRIRSBMSUJSQVJZIFBST1ZFIERFRkVD VElWRSwgWU9VIEFTU1VNRSBUSEUgQ09TVCBPRiBBTEwKPiArICAgIE5FQ0VTU0FSWSBTRVJWSUNJ TkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgo+ICsKPiArMTYuIElOIE5PIEVWRU5UIFVOTEVTUyBS RVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwo+ICsgICAg V0lMTCBBTlkgQ09QWVJJR0hUIEhPTERFUiwgT1IgQU5ZIE9USEVSIFBBUlRZIFdITyBNQVkgTU9E SUZZIEFORC9PUgo+ICsgICAgUkVESVNUUklCVVRFIFRIRSBMSUJSQVJZIEFTIFBFUk1JVFRFRCBB Qk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IKPiArICAgIERBTUFHRVMsIElOQ0xVRElORyBBTlkg R0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMCj4gKyAgICBEQU1B R0VTIEFSSVNJTkcgT1VUIE9GIFRIRSBVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSEUgTElCUkFS WQo+ICsgICAgKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRiBEQVRBIE9SIERB VEEgQkVJTkcgUkVOREVSRUQKPiArICAgIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBC WSBZT1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YKPiArICAgIFRIRSBMSUJSQVJZ IFRPIE9QRVJBVEUgV0lUSCBBTlkgT1RIRVIgU09GVFdBUkUpLCBFVkVOIElGIFNVQ0ggSE9MREVS IE9SCj4gKyAgICBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU WSBPRiBTVUNIIERBTUFHRVMuCj4gKwo+ICtFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKPiAr Cj4gK0hvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBMaWJyYXJpZXMKPiArCj4g K0lmIHlvdSBkZXZlbG9wIGEgbmV3IGxpYnJhcnksIGFuZCB5b3Ugd2FudCBpdCB0byBiZSBvZiB0 aGUgZ3JlYXRlc3QKPiArcG9zc2libGUgdXNlIHRvIHRoZSBwdWJsaWMsIHdlIHJlY29tbWVuZCBt YWtpbmcgaXQgZnJlZSBzb2Z0d2FyZSB0aGF0Cj4gK2V2ZXJ5b25lIGNhbiByZWRpc3RyaWJ1dGUg YW5kIGNoYW5nZS4gWW91IGNhbiBkbyBzbyBieSBwZXJtaXR0aW5nCj4gK3JlZGlzdHJpYnV0aW9u IHVuZGVyIHRoZXNlIHRlcm1zIChvciwgYWx0ZXJuYXRpdmVseSwgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZQo+ICtvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlKS4KPiArCj4gK1RvIGFwcGx5 IHRoZXNlIHRlcm1zLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBsaWJyYXJ5 LiBJdCBpcwo+ICtzYWZlc3QgdG8gYXR0YWNoIHRoZW0gdG8gdGhlIHN0YXJ0IG9mIGVhY2ggc291 cmNlIGZpbGUgdG8gbW9zdCBlZmZlY3RpdmVseQo+ICtjb252ZXkgdGhlIGV4Y2x1c2lvbiBvZiB3 YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdCB0aGUKPiArImNvcHly aWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3Vu ZC4KPiArCj4gK29uZSBsaW5lIHRvIGdpdmUgdGhlIGxpYnJhcnkncyBuYW1lIGFuZCBhbiBpZGVh IG9mIHdoYXQgaXQgZG9lcy4KPiArQ29weXJpZ2h0IChDKSB5ZWFyIG5hbWUgb2YgYXV0aG9yCj4g Kwo+ICtUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeSBpdAo+ICt1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPiArdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQK PiAreW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+ICsKPiArVGhpcyBsaWJyYXJ5IGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRI T1VUCj4gK0FOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m IE1FUkNIQU5UQUJJTElUWSBvcgo+ICtGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g U2VlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKPiArZm9yIG1vcmUgZGV0 YWlscy4KPiArCj4gK1lvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQo+ICthbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAo+ICtJbmMuLCA1 MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNB IEFsc28gYWRkCj4gK2luZm9ybWF0aW9uIG9uIGhvdyB0byBjb250YWN0IHlvdSBieSBlbGVjdHJv bmljIGFuZCBwYXBlciBtYWlsLgo+ICsKPiArWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxv eWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKPiArc2Nob29sLCBpZiBh bnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgbGlicmFyeSwgaWYK PiArbmVjZXNzYXJ5LiBIZXJlIGlzIGEgc2FtcGxlOyBhbHRlciB0aGUgbmFtZXM6Cj4gKwo+ICtZ b3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGlu Cj4gK3RoZSBsaWJyYXJ5IGBGcm9iJyAoYSBsaWJyYXJ5IGZvciB0d2Vha2luZyBrbm9icykgd3Jp dHRlbgo+ICtieSBKYW1lcyBSYW5kb20gSGFja2VyLgo+ICsKPiArc2lnbmF0dXJlIG9mIFR5IENv b24sIDEgQXByaWwgMTk5MAo+ICtUeSBDb29uLCBQcmVzaWRlbnQgb2YgVmljZQo+ICtUaGF0J3Mg YWxsIHRoZXJlIGlzIHRvIGl0IQo+IGRpZmYgLS1naXQgYS9MSUNFTlNFUy9wcmVmZXJyZWQvTEdQ TC0yLjEtb3ItbGF0ZXIgYi9MSUNFTlNFUy9wcmVmZXJyZWQvTEdQTC0yLjEtb3ItbGF0ZXIKPiBk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwNGJiMTU2ZTc3ZDUuLjAwMDAwMDAwMDAw MAo+IC0tLSBhL0xJQ0VOU0VTL3ByZWZlcnJlZC9MR1BMLTIuMS1vci1sYXRlcgo+ICsrKyAvZGV2 L251bGwKPiBAQCAtMSw0NjggKzAsMCBAQAo+IC1HTlUgTEVTU0VSIEdFTkVSQUwgUFVCTElDIExJ Q0VOU0UKPiAtCj4gLVZlcnNpb24gMi4xLCBGZWJydWFyeSAxOTk5Cj4gLQo+IC1Db3B5cmlnaHQg KEMpIDE5OTEsIDE5OTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCj4gLQo+IC01MSBG cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCj4g LQo+IC1FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRp bSBjb3BpZXMgb2YgdGhpcyBsaWNlbnNlCj4gLWRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMg bm90IGFsbG93ZWQuCj4gLQo+IC1bVGhpcyBpcyB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBv ZiB0aGUgTGVzc2VyIEdQTC4gSXQgYWxzbyBjb3VudHMgYXMgdGhlCj4gLXN1Y2Nlc3NvciBvZiB0 aGUgR05VIExpYnJhcnkgUHVibGljIExpY2Vuc2UsIHZlcnNpb24gMiwgaGVuY2UgdGhlIHZlcnNp b24KPiAtbnVtYmVyIDIuMS5dCj4gLQo+IC1QcmVhbWJsZQo+IC0KPiAtVGhlIGxpY2Vuc2VzIGZv ciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRv IHNoYXJlCj4gLWFuZCBjaGFuZ2UgaXQuIEJ5IGNvbnRyYXN0LCB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2VzIGFyZSBpbnRlbmRlZCB0bwo+IC1ndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRv IHNoYXJlIGFuZCBjaGFuZ2UgZnJlZSBzb2Z0d2FyZS0tdG8gbWFrZSBzdXJlIHRoZQo+IC1zb2Z0 d2FyZSBpcyBmcmVlIGZvciBhbGwgaXRzIHVzZXJzLgo+IC0KPiAtVGhpcyBsaWNlbnNlLCB0aGUg TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGFwcGxpZXMgdG8gc29tZSBzcGVjaWFsbHkK PiAtZGVzaWduYXRlZCBzb2Z0d2FyZSBwYWNrYWdlcy0tdHlwaWNhbGx5IGxpYnJhcmllcy0tb2Yg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgo+IC1hbmQgb3RoZXIgYXV0aG9ycyB3aG8gZGVj aWRlIHRvIHVzZSBpdC4gWW91IGNhbiB1c2UgaXQgdG9vLCBidXQgd2Ugc3VnZ2VzdAo+IC15b3Ug Zmlyc3QgdGhpbmsgY2FyZWZ1bGx5IGFib3V0IHdoZXRoZXIgdGhpcyBsaWNlbnNlIG9yIHRoZSBv cmRpbmFyeSBHZW5lcmFsCj4gLVB1YmxpYyBMaWNlbnNlIGlzIHRoZSBiZXR0ZXIgc3RyYXRlZ3kg dG8gdXNlIGluIGFueSBwYXJ0aWN1bGFyIGNhc2UsIGJhc2VkCj4gLW9uIHRoZSBleHBsYW5hdGlv bnMgYmVsb3cuCj4gLQo+IC1XaGVuIHdlIHNwZWFrIG9mIGZyZWUgc29mdHdhcmUsIHdlIGFyZSBy ZWZlcnJpbmcgdG8gZnJlZWRvbSBvZiB1c2UsIG5vdCBwcmljZS4KPiAtT3VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UgaGF2ZSB0aGUg ZnJlZWRvbQo+IC10byBkaXN0cmlidXRlIGNvcGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hh cmdlIGZvciB0aGlzIHNlcnZpY2UgaWYgeW91Cj4gLXdpc2gpOyB0aGF0IHlvdSByZWNlaXZlIHNv dXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91IHdhbnQgaXQ7IHRoYXQgeW91Cj4gLWNhbiBj aGFuZ2UgdGhlIHNvZnR3YXJlIGFuZCB1c2UgcGllY2VzIG9mIGl0IGluIG5ldyBmcmVlIHByb2dy YW1zOyBhbmQgdGhhdAo+IC15b3UgYXJlIGluZm9ybWVkIHRoYXQgeW91IGNhbiBkbyB0aGVzZSB0 aGluZ3MuCj4gLQo+IC1UbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIG1ha2UgcmVz dHJpY3Rpb25zIHRoYXQgZm9yYmlkIGRpc3RyaWJ1dG9ycwo+IC10byBkZW55IHlvdSB0aGVzZSBy aWdodHMgb3IgdG8gYXNrIHlvdSB0byBzdXJyZW5kZXIgdGhlc2UgcmlnaHRzLiBUaGVzZSByZXN0 cmljdGlvbnMKPiAtdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91 IGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZgo+IC10aGUgbGlicmFyeSBvciBpZiB5b3UgbW9k aWZ5IGl0Lgo+IC0KPiAtRm9yIGV4YW1wbGUsIGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiB0 aGUgbGlicmFyeSwgd2hldGhlciBncmF0aXMgb3IgZm9yCj4gLWEgZmVlLCB5b3UgbXVzdCBnaXZl IHRoZSByZWNpcGllbnRzIGFsbCB0aGUgcmlnaHRzIHRoYXQgd2UgZ2F2ZSB5b3UuIFlvdSBtdXN0 Cj4gLW1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZSBvciBjYW4gZ2V0IHRoZSBzb3Vy Y2UgY29kZS4gSWYgeW91IGxpbmsKPiAtb3RoZXIgY29kZSB3aXRoIHRoZSBsaWJyYXJ5LCB5b3Ug bXVzdCBwcm92aWRlIGNvbXBsZXRlIG9iamVjdCBmaWxlcyB0byB0aGUKPiAtcmVjaXBpZW50cywg c28gdGhhdCB0aGV5IGNhbiByZWxpbmsgdGhlbSB3aXRoIHRoZSBsaWJyYXJ5IGFmdGVyIG1ha2lu ZyBjaGFuZ2VzCj4gLXRvIHRoZSBsaWJyYXJ5IGFuZCByZWNvbXBpbGluZyBpdC4gQW5kIHlvdSBt dXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5Cj4gLWtub3cgdGhlaXIgcmlnaHRzLgo+ IC0KPiAtV2UgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIGEgdHdvLXN0ZXAgbWV0aG9kOiAoMSkg d2UgY29weXJpZ2h0IHRoZSBsaWJyYXJ5LAo+IC1hbmQgKDIpIHdlIG9mZmVyIHlvdSB0aGlzIGxp Y2Vuc2UsIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCj4gLWRpc3Ry aWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgbGlicmFyeS4KPiAtCj4gLVRvIHByb3RlY3QgZWFjaCBk aXN0cmlidXRvciwgd2Ugd2FudCB0byBtYWtlIGl0IHZlcnkgY2xlYXIgdGhhdCB0aGVyZSBpcyBu bwo+IC13YXJyYW50eSBmb3IgdGhlIGZyZWUgbGlicmFyeS4gQWxzbywgaWYgdGhlIGxpYnJhcnkg aXMgbW9kaWZpZWQgYnkgc29tZW9uZQo+IC1lbHNlIGFuZCBwYXNzZWQgb24sIHRoZSByZWNpcGll bnRzIHNob3VsZCBrbm93IHRoYXQgd2hhdCB0aGV5IGhhdmUgaXMgbm90Cj4gLXRoZSBvcmlnaW5h bCB2ZXJzaW9uLCBzbyB0aGF0IHRoZSBvcmlnaW5hbCBhdXRob3IncyByZXB1dGF0aW9uIHdpbGwg bm90IGJlCj4gLWFmZmVjdGVkIGJ5IHByb2JsZW1zIHRoYXQgbWlnaHQgYmUgaW50cm9kdWNlZCBi eSBvdGhlcnMuCj4gLQo+IC1GaW5hbGx5LCBzb2Z0d2FyZSBwYXRlbnRzIHBvc2UgYSBjb25zdGFu dCB0aHJlYXQgdG8gdGhlIGV4aXN0ZW5jZSBvZiBhbnkgZnJlZQo+IC1wcm9ncmFtLiBXZSB3aXNo IHRvIG1ha2Ugc3VyZSB0aGF0IGEgY29tcGFueSBjYW5ub3QgZWZmZWN0aXZlbHkgcmVzdHJpY3Qg dGhlCj4gLXVzZXJzIG9mIGEgZnJlZSBwcm9ncmFtIGJ5IG9idGFpbmluZyBhIHJlc3RyaWN0aXZl IGxpY2Vuc2UgZnJvbSBhIHBhdGVudCBob2xkZXIuCj4gLVRoZXJlZm9yZSwgd2UgaW5zaXN0IHRo YXQgYW55IHBhdGVudCBsaWNlbnNlIG9idGFpbmVkIGZvciBhIHZlcnNpb24gb2YgdGhlCj4gLWxp YnJhcnkgbXVzdCBiZSBjb25zaXN0ZW50IHdpdGggdGhlIGZ1bGwgZnJlZWRvbSBvZiB1c2Ugc3Bl Y2lmaWVkIGluIHRoaXMKPiAtbGljZW5zZS4KPiAtCj4gLU1vc3QgR05VIHNvZnR3YXJlLCBpbmNs dWRpbmcgc29tZSBsaWJyYXJpZXMsIGlzIGNvdmVyZWQgYnkgdGhlIG9yZGluYXJ5IEdOVQo+IC1H ZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBUaGlzIGxpY2Vuc2UsIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljIExpY2Vuc2UsCj4gLWFwcGxpZXMgdG8gY2VydGFpbiBkZXNpZ25hdGVkIGxpYnJh cmllcywgYW5kIGlzIHF1aXRlIGRpZmZlcmVudCBmcm9tIHRoZSBvcmRpbmFyeQo+IC1HZW5lcmFs IFB1YmxpYyBMaWNlbnNlLiBXZSB1c2UgdGhpcyBsaWNlbnNlIGZvciBjZXJ0YWluIGxpYnJhcmll cyBpbiBvcmRlcgo+IC10byBwZXJtaXQgbGlua2luZyB0aG9zZSBsaWJyYXJpZXMgaW50byBub24t ZnJlZSBwcm9ncmFtcy4KPiAtCj4gLVdoZW4gYSBwcm9ncmFtIGlzIGxpbmtlZCB3aXRoIGEgbGli cmFyeSwgd2hldGhlciBzdGF0aWNhbGx5IG9yIHVzaW5nIGEgc2hhcmVkCj4gLWxpYnJhcnksIHRo ZSBjb21iaW5hdGlvbiBvZiB0aGUgdHdvIGlzIGxlZ2FsbHkgc3BlYWtpbmcgYSBjb21iaW5lZCB3 b3JrLCBhCj4gLWRlcml2YXRpdmUgb2YgdGhlIG9yaWdpbmFsIGxpYnJhcnkuIFRoZSBvcmRpbmFy eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHRoZXJlZm9yZQo+IC1wZXJtaXRzIHN1Y2ggbGlua2lu ZyBvbmx5IGlmIHRoZSBlbnRpcmUgY29tYmluYXRpb24gZml0cyBpdHMgY3JpdGVyaWEgb2YgZnJl ZWRvbS4KPiAtVGhlIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHBlcm1pdHMgbW9yZSBs YXggY3JpdGVyaWEgZm9yIGxpbmtpbmcgb3RoZXIKPiAtY29kZSB3aXRoIHRoZSBsaWJyYXJ5Lgo+ IC0KPiAtV2UgY2FsbCB0aGlzIGxpY2Vuc2UgdGhlICJMZXNzZXIiIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYmVjYXVzZSBpdCBkb2VzIExlc3MKPiAtdG8gcHJvdGVjdCB0aGUgdXNlcidzIGZyZWVk b20gdGhhbiB0aGUgb3JkaW5hcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gSXQKPiAtYWxzbyBw cm92aWRlcyBvdGhlciBmcmVlIHNvZnR3YXJlIGRldmVsb3BlcnMgTGVzcyBvZiBhbiBhZHZhbnRh Z2Ugb3ZlciBjb21wZXRpbmcKPiAtbm9uLWZyZWUgcHJvZ3JhbXMuIFRoZXNlIGRpc2FkdmFudGFn ZXMgYXJlIHRoZSByZWFzb24gd2UgdXNlIHRoZSBvcmRpbmFyeQo+IC1HZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtYW55IGxpYnJhcmllcy4gSG93ZXZlciwgdGhlIExlc3NlciBsaWNlbnNlIHBy b3ZpZGVzCj4gLWFkdmFudGFnZXMgaW4gY2VydGFpbiBzcGVjaWFsIGNpcmN1bXN0YW5jZXMuCj4g LQo+IC1Gb3IgZXhhbXBsZSwgb24gcmFyZSBvY2Nhc2lvbnMsIHRoZXJlIG1heSBiZSBhIHNwZWNp YWwgbmVlZCB0byBlbmNvdXJhZ2UgdGhlCj4gLXdpZGVzdCBwb3NzaWJsZSB1c2Ugb2YgYSBjZXJ0 YWluIGxpYnJhcnksIHNvIHRoYXQgaXQgYmVjb21lcyBhIGRlLWZhY3RvIHN0YW5kYXJkLgo+IC1U byBhY2hpZXZlIHRoaXMsIG5vbi1mcmVlIHByb2dyYW1zIG11c3QgYmUgYWxsb3dlZCB0byB1c2Ug dGhlIGxpYnJhcnkuIEEgbW9yZQo+IC1mcmVxdWVudCBjYXNlIGlzIHRoYXQgYSBmcmVlIGxpYnJh cnkgZG9lcyB0aGUgc2FtZSBqb2IgYXMgd2lkZWx5IHVzZWQgbm9uLWZyZWUKPiAtbGlicmFyaWVz LiBJbiB0aGlzIGNhc2UsIHRoZXJlIGlzIGxpdHRsZSB0byBnYWluIGJ5IGxpbWl0aW5nIHRoZSBm cmVlIGxpYnJhcnkKPiAtdG8gZnJlZSBzb2Z0d2FyZSBvbmx5LCBzbyB3ZSB1c2UgdGhlIExlc3Nl ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgo+IC0KPiAtSW4gb3RoZXIgY2FzZXMsIHBlcm1pc3Np b24gdG8gdXNlIGEgcGFydGljdWxhciBsaWJyYXJ5IGluIG5vbi1mcmVlIHByb2dyYW1zCj4gLWVu YWJsZXMgYSBncmVhdGVyIG51bWJlciBvZiBwZW9wbGUgdG8gdXNlIGEgbGFyZ2UgYm9keSBvZiBm cmVlIHNvZnR3YXJlLiBGb3IKPiAtZXhhbXBsZSwgcGVybWlzc2lvbiB0byB1c2UgdGhlIEdOVSBD IExpYnJhcnkgaW4gbm9uLWZyZWUgcHJvZ3JhbXMgZW5hYmxlcwo+IC1tYW55IG1vcmUgcGVvcGxl IHRvIHVzZSB0aGUgd2hvbGUgR05VIG9wZXJhdGluZyBzeXN0ZW0sIGFzIHdlbGwgYXMgaXRzIHZh cmlhbnQsCj4gLXRoZSBHTlUvTGludXggb3BlcmF0aW5nIHN5c3RlbS4KPiAtCj4gLUFsdGhvdWdo IHRoZSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBMZXNzIHByb3RlY3RpdmUgb2Yg dGhlIHVzZXJzJwo+IC1mcmVlZG9tLCBpdCBkb2VzIGVuc3VyZSB0aGF0IHRoZSB1c2VyIG9mIGEg cHJvZ3JhbSB0aGF0IGlzIGxpbmtlZCB3aXRoIHRoZQo+IC1MaWJyYXJ5IGhhcyB0aGUgZnJlZWRv bSBhbmQgdGhlIHdoZXJld2l0aGFsIHRvIHJ1biB0aGF0IHByb2dyYW0gdXNpbmcgYSBtb2RpZmll ZAo+IC12ZXJzaW9uIG9mIHRoZSBMaWJyYXJ5Lgo+IC0KPiAtVGhlIHByZWNpc2UgdGVybXMgYW5k IGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uCj4g LWZvbGxvdy4gUGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEg IndvcmsgYmFzZWQgb24gdGhlCj4gLWxpYnJhcnkiIGFuZCBhICJ3b3JrIHRoYXQgdXNlcyB0aGUg bGlicmFyeSIuIFRoZSBmb3JtZXIgY29udGFpbnMgY29kZSBkZXJpdmVkCj4gLWZyb20gdGhlIGxp YnJhcnksIHdoZXJlYXMgdGhlIGxhdHRlciBtdXN0IGJlIGNvbWJpbmVkIHdpdGggdGhlIGxpYnJh cnkgaW4KPiAtb3JkZXIgdG8gcnVuLgo+IC0KPiAtVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIENP UFlJTkcsIERJU1RSSUJVVElPTiBBTkQgTU9ESUZJQ0FUSU9OCj4gLQo+IC0wLiBUaGlzIExpY2Vu c2UgQWdyZWVtZW50IGFwcGxpZXMgdG8gYW55IHNvZnR3YXJlIGxpYnJhcnkgb3Igb3RoZXIgcHJv Z3JhbQo+IC13aGljaCBjb250YWlucyBhIG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBo b2xkZXIgb3Igb3RoZXIgYXV0aG9yaXplZAo+IC1wYXJ0eSBzYXlpbmcgaXQgbWF5IGJlIGRpc3Ry aWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExlc3NlciBHZW5lcmFsCj4gLVB1YmxpYyBM aWNlbnNlIChhbHNvIGNhbGxlZCAidGhpcyBMaWNlbnNlIikuIEVhY2ggbGljZW5zZWUgaXMgYWRk cmVzc2VkIGFzCj4gLSJ5b3UiLgo+IC0KPiAtQSAibGlicmFyeSIgbWVhbnMgYSBjb2xsZWN0aW9u IG9mIHNvZnR3YXJlIGZ1bmN0aW9ucyBhbmQvb3IgZGF0YSBwcmVwYXJlZAo+IC1zbyBhcyB0byBi ZSBjb252ZW5pZW50bHkgbGlua2VkIHdpdGggYXBwbGljYXRpb24gcHJvZ3JhbXMgKHdoaWNoIHVz ZSBzb21lCj4gLW9mIHRob3NlIGZ1bmN0aW9ucyBhbmQgZGF0YSkgdG8gZm9ybSBleGVjdXRhYmxl cy4KPiAtCj4gLVRoZSAiTGlicmFyeSIsIGJlbG93LCByZWZlcnMgdG8gYW55IHN1Y2ggc29mdHdh cmUgbGlicmFyeSBvciB3b3JrIHdoaWNoIGhhcwo+IC1iZWVuIGRpc3RyaWJ1dGVkIHVuZGVyIHRo ZXNlIHRlcm1zLiBBICJ3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5IiBtZWFucyBlaXRoZXIKPiAt dGhlIExpYnJhcnkgb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRlciBjb3B5cmlnaHQgbGF3OiB0 aGF0IGlzIHRvIHNheSwgYQo+IC13b3JrIGNvbnRhaW5pbmcgdGhlIExpYnJhcnkgb3IgYSBwb3J0 aW9uIG9mIGl0LCBlaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zCj4gLWFuZC9v ciB0cmFuc2xhdGVkIHN0cmFpZ2h0Zm9yd2FyZGx5IGludG8gYW5vdGhlciBsYW5ndWFnZS4gKEhl cmVpbmFmdGVyLCB0cmFuc2xhdGlvbgo+IC1pcyBpbmNsdWRlZCB3aXRob3V0IGxpbWl0YXRpb24g aW4gdGhlIHRlcm0gIm1vZGlmaWNhdGlvbiIuKQo+IC0KPiAtIlNvdXJjZSBjb2RlIiBmb3IgYSB3 b3JrIG1lYW5zIHRoZSBwcmVmZXJyZWQgZm9ybSBvZiB0aGUgd29yayBmb3IgbWFraW5nIG1vZGlm aWNhdGlvbnMKPiAtdG8gaXQuIEZvciBhIGxpYnJhcnksIGNvbXBsZXRlIHNvdXJjZSBjb2RlIG1l YW5zIGFsbCB0aGUgc291cmNlIGNvZGUgZm9yIGFsbAo+IC1tb2R1bGVzIGl0IGNvbnRhaW5zLCBw bHVzIGFueSBhc3NvY2lhdGVkIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzLCBwbHVzCj4gLXRo ZSBzY3JpcHRzIHVzZWQgdG8gY29udHJvbCBjb21waWxhdGlvbiBhbmQgaW5zdGFsbGF0aW9uIG9m IHRoZSBsaWJyYXJ5Lgo+IC0KPiAtQWN0aXZpdGllcyBvdGhlciB0aGFuIGNvcHlpbmcsIGRpc3Ry aWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFyZSBub3QgY292ZXJlZAo+IC1ieSB0aGlzIExpY2Vu c2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiBUaGUgYWN0IG9mIHJ1bm5pbmcgYSBwcm9n cmFtCj4gLXVzaW5nIHRoZSBMaWJyYXJ5IGlzIG5vdCByZXN0cmljdGVkLCBhbmQgb3V0cHV0IGZy b20gc3VjaCBhIHByb2dyYW0gaXMgY292ZXJlZAo+IC1vbmx5IGlmIGl0cyBjb250ZW50cyBjb25z dGl0dXRlIGEgd29yayBiYXNlZCBvbiB0aGUgTGlicmFyeSAoaW5kZXBlbmRlbnQgb2YKPiAtdGhl IHVzZSBvZiB0aGUgTGlicmFyeSBpbiBhIHRvb2wgZm9yIHdyaXRpbmcgaXQpLiBXaGV0aGVyIHRo YXQgaXMgdHJ1ZSBkZXBlbmRzCj4gLW9uIHdoYXQgdGhlIExpYnJhcnkgZG9lcyBhbmQgd2hhdCB0 aGUgcHJvZ3JhbSB0aGF0IHVzZXMgdGhlIExpYnJhcnkgZG9lcy4KPiAtCj4gLTEuIFlvdSBtYXkg Y29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIExpYnJhcnkncyBjb21w bGV0ZSBzb3VyY2UKPiAtY29kZSBhcyB5b3UgcmVjZWl2ZSBpdCwgaW4gYW55IG1lZGl1bSwgcHJv dmlkZWQgdGhhdCB5b3UgY29uc3BpY3VvdXNseSBhbmQKPiAtYXBwcm9wcmlhdGVseSBwdWJsaXNo IG9uIGVhY2ggY29weSBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCBkaXNjbGFp bWVyCj4gLW9mIHdhcnJhbnR5OyBrZWVwIGludGFjdCBhbGwgdGhlIG5vdGljZXMgdGhhdCByZWZl ciB0byB0aGlzIExpY2Vuc2UgYW5kIHRvCj4gLXRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsg YW5kIGRpc3RyaWJ1dGUgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoCj4gLXRoZSBM aWJyYXJ5Lgo+IC0KPiAtWW91IG1heSBjaGFyZ2UgYSBmZWUgZm9yIHRoZSBwaHlzaWNhbCBhY3Qg b2YgdHJhbnNmZXJyaW5nIGEgY29weSwgYW5kIHlvdQo+IC1tYXkgYXQgeW91ciBvcHRpb24gb2Zm ZXIgd2FycmFudHkgcHJvdGVjdGlvbiBpbiBleGNoYW5nZSBmb3IgYSBmZWUuCj4gLQo+IC0yLiBZ b3UgbWF5IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBMaWJyYXJ5IG9yIGFueSBw b3J0aW9uIG9mIGl0LAo+IC10aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5 LCBhbmQgY29weSBhbmQgZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMKPiAtb3Igd29yayB1 bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxIGFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNv IG1lZXQgYWxsCj4gLW9mIHRoZXNlIGNvbmRpdGlvbnM6Cj4gLQo+IC0gICAgICBhKSBUaGUgbW9k aWZpZWQgd29yayBtdXN0IGl0c2VsZiBiZSBhIHNvZnR3YXJlIGxpYnJhcnkuCj4gLQo+IC1iKSBZ b3UgbXVzdCBjYXVzZSB0aGUgZmlsZXMgbW9kaWZpZWQgdG8gY2FycnkgcHJvbWluZW50IG5vdGlj ZXMgc3RhdGluZyB0aGF0Cj4gLXlvdSBjaGFuZ2VkIHRoZSBmaWxlcyBhbmQgdGhlIGRhdGUgb2Yg YW55IGNoYW5nZS4KPiAtCj4gLWMpIFlvdSBtdXN0IGNhdXNlIHRoZSB3aG9sZSBvZiB0aGUgd29y ayB0byBiZSBsaWNlbnNlZCBhdCBubyBjaGFyZ2UgdG8gYWxsCj4gLXRoaXJkIHBhcnRpZXMgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZS4KPiAtCj4gLWQpIElmIGEgZmFjaWxpdHkgaW4g dGhlIG1vZGlmaWVkIExpYnJhcnkgcmVmZXJzIHRvIGEgZnVuY3Rpb24gb3IgYSB0YWJsZSBvZgo+ IC1kYXRhIHRvIGJlIHN1cHBsaWVkIGJ5IGFuIGFwcGxpY2F0aW9uIHByb2dyYW0gdGhhdCB1c2Vz IHRoZSBmYWNpbGl0eSwgb3RoZXIKPiAtdGhhbiBhcyBhbiBhcmd1bWVudCBwYXNzZWQgd2hlbiB0 aGUgZmFjaWxpdHkgaXMgaW52b2tlZCwgdGhlbiB5b3UgbXVzdCBtYWtlCj4gLWEgZ29vZCBmYWl0 aCBlZmZvcnQgdG8gZW5zdXJlIHRoYXQsIGluIHRoZSBldmVudCBhbiBhcHBsaWNhdGlvbiBkb2Vz IG5vdCBzdXBwbHkKPiAtc3VjaCBmdW5jdGlvbiBvciB0YWJsZSwgdGhlIGZhY2lsaXR5IHN0aWxs IG9wZXJhdGVzLCBhbmQgcGVyZm9ybXMgd2hhdGV2ZXIKPiAtcGFydCBvZiBpdHMgcHVycG9zZSBy ZW1haW5zIG1lYW5pbmdmdWwuCj4gLQo+IC0oRm9yIGV4YW1wbGUsIGEgZnVuY3Rpb24gaW4gYSBs aWJyYXJ5IHRvIGNvbXB1dGUgc3F1YXJlIHJvb3RzIGhhcyBhIHB1cnBvc2UKPiAtdGhhdCBpcyBl bnRpcmVseSB3ZWxsLWRlZmluZWQgaW5kZXBlbmRlbnQgb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGVy ZWZvcmUsIFN1YnNlY3Rpb24KPiAtMmQgcmVxdWlyZXMgdGhhdCBhbnkgYXBwbGljYXRpb24tc3Vw cGxpZWQgZnVuY3Rpb24gb3IgdGFibGUgdXNlZCBieSB0aGlzIGZ1bmN0aW9uCj4gLW11c3QgYmUg b3B0aW9uYWw6IGlmIHRoZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCBzdXBwbHkgaXQsIHRoZSBzcXVh cmUgcm9vdCBmdW5jdGlvbgo+IC1tdXN0IHN0aWxsIGNvbXB1dGUgc3F1YXJlIHJvb3RzLikKPiAt Cj4gLVRoZXNlIHJlcXVpcmVtZW50cyBhcHBseSB0byB0aGUgbW9kaWZpZWQgd29yayBhcyBhIHdo b2xlLiBJZiBpZGVudGlmaWFibGUKPiAtc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVy aXZlZCBmcm9tIHRoZSBMaWJyYXJ5LCBhbmQgY2FuIGJlIHJlYXNvbmFibHkKPiAtY29uc2lkZXJl ZCBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4gdGhlbXNlbHZlcywgdGhlbiB0aGlz IExpY2Vuc2UsCj4gLWFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZSBzZWN0aW9u cyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMKPiAtc2VwYXJhdGUgd29ya3MuIEJ1dCB3aGVu IHlvdSBkaXN0cmlidXRlIHRoZSBzYW1lIHNlY3Rpb25zIGFzIHBhcnQgb2YgYSB3aG9sZQo+IC13 aGljaCBpcyBhIHdvcmsgYmFzZWQgb24gdGhlIExpYnJhcnksIHRoZSBkaXN0cmlidXRpb24gb2Yg dGhlIHdob2xlIG11c3QgYmUKPiAtb24gdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwgd2hvc2Ug cGVybWlzc2lvbnMgZm9yIG90aGVyIGxpY2Vuc2VlcyBleHRlbmQKPiAtdG8gdGhlIGVudGlyZSB3 aG9sZSwgYW5kIHRodXMgdG8gZWFjaCBhbmQgZXZlcnkgcGFydCByZWdhcmRsZXNzIG9mIHdobyB3 cm90ZQo+IC1pdC4KPiAtCj4gLVRodXMsIGl0IGlzIG5vdCB0aGUgaW50ZW50IG9mIHRoaXMgc2Vj dGlvbiB0byBjbGFpbSByaWdodHMgb3IgY29udGVzdCB5b3VyCj4gLXJpZ2h0cyB0byB3b3JrIHdy aXR0ZW4gZW50aXJlbHkgYnkgeW91OyByYXRoZXIsIHRoZSBpbnRlbnQgaXMgdG8gZXhlcmNpc2UK PiAtdGhlIHJpZ2h0IHRvIGNvbnRyb2wgdGhlIGRpc3RyaWJ1dGlvbiBvZiBkZXJpdmF0aXZlIG9y IGNvbGxlY3RpdmUgd29ya3MgYmFzZWQKPiAtb24gdGhlIExpYnJhcnkuCj4gLQo+IC1JbiBhZGRp dGlvbiwgbWVyZSBhZ2dyZWdhdGlvbiBvZiBhbm90aGVyIHdvcmsgbm90IGJhc2VkIG9uIHRoZSBM aWJyYXJ5IHdpdGgKPiAtdGhlIExpYnJhcnkgKG9yIHdpdGggYSB3b3JrIGJhc2VkIG9uIHRoZSBM aWJyYXJ5KSBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2UKPiAtb3IgZGlzdHJpYnV0aW9uIG1lZGl1 bSBkb2VzIG5vdCBicmluZyB0aGUgb3RoZXIgd29yayB1bmRlciB0aGUgc2NvcGUgb2YgdGhpcwo+ IC1MaWNlbnNlLgo+IC0KPiAtMy4gWW91IG1heSBvcHQgdG8gYXBwbHkgdGhlIHRlcm1zIG9mIHRo ZSBvcmRpbmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQo+IC1pbnN0ZWFkIG9mIHRoaXMg TGljZW5zZSB0byBhIGdpdmVuIGNvcHkgb2YgdGhlIExpYnJhcnkuIFRvIGRvIHRoaXMsIHlvdSBt dXN0Cj4gLWFsdGVyIGFsbCB0aGUgbm90aWNlcyB0aGF0IHJlZmVyIHRvIHRoaXMgTGljZW5zZSwg c28gdGhhdCB0aGV5IHJlZmVyIHRvIHRoZQo+IC1vcmRpbmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSwgdmVyc2lvbiAyLCBpbnN0ZWFkIG9mIHRvIHRoaXMgTGljZW5zZS4KPiAtKElmIGEg bmV3ZXIgdmVyc2lvbiB0aGFuIHZlcnNpb24gMiBvZiB0aGUgb3JkaW5hcnkgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKPiAtaGFzIGFwcGVhcmVkLCB0aGVuIHlvdSBjYW4gc3BlY2lmeSB0aGF0 IHZlcnNpb24gaW5zdGVhZCBpZiB5b3Ugd2lzaC4pIERvIG5vdAo+IC1tYWtlIGFueSBvdGhlciBj aGFuZ2UgaW4gdGhlc2Ugbm90aWNlcy4KPiAtCj4gLU9uY2UgdGhpcyBjaGFuZ2UgaXMgbWFkZSBp biBhIGdpdmVuIGNvcHksIGl0IGlzIGlycmV2ZXJzaWJsZSBmb3IgdGhhdCBjb3B5LAo+IC1zbyB0 aGUgb3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBhbGwgc3Vi c2VxdWVudCBjb3BpZXMKPiAtYW5kIGRlcml2YXRpdmUgd29ya3MgbWFkZSBmcm9tIHRoYXQgY29w eS4KPiAtCj4gLVRoaXMgb3B0aW9uIGlzIHVzZWZ1bCB3aGVuIHlvdSB3aXNoIHRvIGNvcHkgcGFy dCBvZiB0aGUgY29kZSBvZiB0aGUgTGlicmFyeQo+IC1pbnRvIGEgcHJvZ3JhbSB0aGF0IGlzIG5v dCBhIGxpYnJhcnkuCj4gLQo+IC00LiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdGhlIExp YnJhcnkgKG9yIGEgcG9ydGlvbiBvciBkZXJpdmF0aXZlIG9mCj4gLWl0LCB1bmRlciBTZWN0aW9u IDIpIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUgZm9ybSB1bmRlciB0aGUgdGVybXMgb2YK PiAtU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBwcm92aWRlZCB0aGF0IHlvdSBhY2NvbXBhbnkgaXQg d2l0aCB0aGUgY29tcGxldGUgY29ycmVzcG9uZGluZwo+IC1tYWNoaW5lLXJlYWRhYmxlIHNvdXJj ZSBjb2RlLCB3aGljaCBtdXN0IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZgo+IC1T ZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNv ZnR3YXJlIGludGVyY2hhbmdlLgo+IC0KPiAtSWYgZGlzdHJpYnV0aW9uIG9mIG9iamVjdCBjb2Rl IGlzIG1hZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIHRvIGNvcHkgZnJvbSBhIGRlc2lnbmF0ZWQKPiAt cGxhY2UsIHRoZW4gb2ZmZXJpbmcgZXF1aXZhbGVudCBhY2Nlc3MgdG8gY29weSB0aGUgc291cmNl IGNvZGUgZnJvbSB0aGUgc2FtZQo+IC1wbGFjZSBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50IHRv IGRpc3RyaWJ1dGUgdGhlIHNvdXJjZSBjb2RlLCBldmVuIHRob3VnaAo+IC10aGlyZCBwYXJ0aWVz IGFyZSBub3QgY29tcGVsbGVkIHRvIGNvcHkgdGhlIHNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmpl Y3QgY29kZS4KPiAtCj4gLTUuIEEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIG5vIGRlcml2YXRpdmUg b2YgYW55IHBvcnRpb24gb2YgdGhlIExpYnJhcnksIGJ1dAo+IC1pcyBkZXNpZ25lZCB0byB3b3Jr IHdpdGggdGhlIExpYnJhcnkgYnkgYmVpbmcgY29tcGlsZWQgb3IgbGlua2VkIHdpdGggaXQsCj4g LWlzIGNhbGxlZCBhICJ3b3JrIHRoYXQgdXNlcyB0aGUgTGlicmFyeSIuIFN1Y2ggYSB3b3JrLCBp biBpc29sYXRpb24sIGlzIG5vdAo+IC1hIGRlcml2YXRpdmUgd29yayBvZiB0aGUgTGlicmFyeSwg YW5kIHRoZXJlZm9yZSBmYWxscyBvdXRzaWRlIHRoZSBzY29wZSBvZgo+IC10aGlzIExpY2Vuc2Uu Cj4gLQo+IC1Ib3dldmVyLCBsaW5raW5nIGEgIndvcmsgdGhhdCB1c2VzIHRoZSBMaWJyYXJ5IiB3 aXRoIHRoZSBMaWJyYXJ5IGNyZWF0ZXMgYW4KPiAtZXhlY3V0YWJsZSB0aGF0IGlzIGEgZGVyaXZh dGl2ZSBvZiB0aGUgTGlicmFyeSAoYmVjYXVzZSBpdCBjb250YWlucyBwb3J0aW9ucwo+IC1vZiB0 aGUgTGlicmFyeSksIHJhdGhlciB0aGFuIGEgIndvcmsgdGhhdCB1c2VzIHRoZSBsaWJyYXJ5Ii4g VGhlIGV4ZWN1dGFibGUKPiAtaXMgdGhlcmVmb3JlIGNvdmVyZWQgYnkgdGhpcyBMaWNlbnNlLiBT ZWN0aW9uIDYgc3RhdGVzIHRlcm1zIGZvciBkaXN0cmlidXRpb24KPiAtb2Ygc3VjaCBleGVjdXRh Ymxlcy4KPiAtCj4gLVdoZW4gYSAid29yayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiIHVzZXMgbWF0 ZXJpYWwgZnJvbSBhIGhlYWRlciBmaWxlIHRoYXQKPiAtaXMgcGFydCBvZiB0aGUgTGlicmFyeSwg dGhlIG9iamVjdCBjb2RlIGZvciB0aGUgd29yayBtYXkgYmUgYSBkZXJpdmF0aXZlIHdvcmsKPiAt b2YgdGhlIExpYnJhcnkgZXZlbiB0aG91Z2ggdGhlIHNvdXJjZSBjb2RlIGlzIG5vdC4gV2hldGhl ciB0aGlzIGlzIHRydWUgaXMKPiAtZXNwZWNpYWxseSBzaWduaWZpY2FudCBpZiB0aGUgd29yayBj YW4gYmUgbGlua2VkIHdpdGhvdXQgdGhlIExpYnJhcnksIG9yIGlmCj4gLXRoZSB3b3JrIGlzIGl0 c2VsZiBhIGxpYnJhcnkuIFRoZSB0aHJlc2hvbGQgZm9yIHRoaXMgdG8gYmUgdHJ1ZSBpcyBub3Qg cHJlY2lzZWx5Cj4gLWRlZmluZWQgYnkgbGF3Lgo+IC0KPiAtSWYgc3VjaCBhbiBvYmplY3QgZmls ZSB1c2VzIG9ubHkgbnVtZXJpY2FsIHBhcmFtZXRlcnMsIGRhdGEgc3RydWN0dXJlIGxheW91dHMK PiAtYW5kIGFjY2Vzc29ycywgYW5kIHNtYWxsIG1hY3JvcyBhbmQgc21hbGwgaW5saW5lIGZ1bmN0 aW9ucyAodGVuIGxpbmVzIG9yIGxlc3MKPiAtaW4gbGVuZ3RoKSwgdGhlbiB0aGUgdXNlIG9mIHRo ZSBvYmplY3QgZmlsZSBpcyB1bnJlc3RyaWN0ZWQsIHJlZ2FyZGxlc3Mgb2YKPiAtd2hldGhlciBp dCBpcyBsZWdhbGx5IGEgZGVyaXZhdGl2ZSB3b3JrLiAoRXhlY3V0YWJsZXMgY29udGFpbmluZyB0 aGlzIG9iamVjdAo+IC1jb2RlIHBsdXMgcG9ydGlvbnMgb2YgdGhlIExpYnJhcnkgd2lsbCBzdGls bCBmYWxsIHVuZGVyIFNlY3Rpb24gNi4pCj4gLQo+IC1PdGhlcndpc2UsIGlmIHRoZSB3b3JrIGlz IGEgZGVyaXZhdGl2ZSBvZiB0aGUgTGlicmFyeSwgeW91IG1heSBkaXN0cmlidXRlCj4gLXRoZSBv YmplY3QgY29kZSBmb3IgdGhlIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gNi4gQW55 IGV4ZWN1dGFibGVzCj4gLWNvbnRhaW5pbmcgdGhhdCB3b3JrIGFsc28gZmFsbCB1bmRlciBTZWN0 aW9uIDYsIHdoZXRoZXIgb3Igbm90IHRoZXkgYXJlIGxpbmtlZAo+IC1kaXJlY3RseSB3aXRoIHRo ZSBMaWJyYXJ5IGl0c2VsZi4KPiAtCj4gLTYuIEFzIGFuIGV4Y2VwdGlvbiB0byB0aGUgU2VjdGlv bnMgYWJvdmUsIHlvdSBtYXkgYWxzbyBjb21iaW5lIG9yIGxpbmsgYSAid29yawo+IC10aGF0IHVz ZXMgdGhlIExpYnJhcnkiIHdpdGggdGhlIExpYnJhcnkgdG8gcHJvZHVjZSBhIHdvcmsgY29udGFp bmluZyBwb3J0aW9ucwo+IC1vZiB0aGUgTGlicmFyeSwgYW5kIGRpc3RyaWJ1dGUgdGhhdCB3b3Jr IHVuZGVyIHRlcm1zIG9mIHlvdXIgY2hvaWNlLCBwcm92aWRlZAo+IC10aGF0IHRoZSB0ZXJtcyBw ZXJtaXQgbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGZvciB0aGUgY3VzdG9tZXIncyBvd24gdXNl Cj4gLWFuZCByZXZlcnNlIGVuZ2luZWVyaW5nIGZvciBkZWJ1Z2dpbmcgc3VjaCBtb2RpZmljYXRp b25zLgo+IC0KPiAtWW91IG11c3QgZ2l2ZSBwcm9taW5lbnQgbm90aWNlIHdpdGggZWFjaCBjb3B5 IG9mIHRoZSB3b3JrIHRoYXQgdGhlIExpYnJhcnkKPiAtaXMgdXNlZCBpbiBpdCBhbmQgdGhhdCB0 aGUgTGlicmFyeSBhbmQgaXRzIHVzZSBhcmUgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UuCj4gLVlv dSBtdXN0IHN1cHBseSBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlLiBJZiB0aGUgd29yayBkdXJpbmcg ZXhlY3V0aW9uIGRpc3BsYXlzCj4gLWNvcHlyaWdodCBub3RpY2VzLCB5b3UgbXVzdCBpbmNsdWRl IHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciB0aGUgTGlicmFyeSBhbW9uZwo+IC10aGVtLCBhcyB3 ZWxsIGFzIGEgcmVmZXJlbmNlIGRpcmVjdGluZyB0aGUgdXNlciB0byB0aGUgY29weSBvZiB0aGlz IExpY2Vuc2UuCj4gLUFsc28sIHlvdSBtdXN0IGRvIG9uZSBvZiB0aGVzZSB0aGluZ3M6Cj4gLQo+ IC1hKSBBY2NvbXBhbnkgdGhlIHdvcmsgd2l0aCB0aGUgY29tcGxldGUgY29ycmVzcG9uZGluZyBt YWNoaW5lLXJlYWRhYmxlIHNvdXJjZQo+IC1jb2RlIGZvciB0aGUgTGlicmFyeSBpbmNsdWRpbmcg d2hhdGV2ZXIgY2hhbmdlcyB3ZXJlIHVzZWQgaW4gdGhlIHdvcmsgKHdoaWNoCj4gLW11c3QgYmUg ZGlzdHJpYnV0ZWQgdW5kZXIgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSk7IGFuZCwgaWYgdGhlIHdv cmsgaXMgYW4KPiAtZXhlY3V0YWJsZSBsaW5rZWQgd2l0aCB0aGUgTGlicmFyeSwgd2l0aCB0aGUg Y29tcGxldGUgbWFjaGluZS1yZWFkYWJsZSAid29yawo+IC10aGF0IHVzZXMgdGhlIExpYnJhcnki LCBhcyBvYmplY3QgY29kZSBhbmQvb3Igc291cmNlIGNvZGUsIHNvIHRoYXQgdGhlIHVzZXIKPiAt Y2FuIG1vZGlmeSB0aGUgTGlicmFyeSBhbmQgdGhlbiByZWxpbmsgdG8gcHJvZHVjZSBhIG1vZGlm aWVkIGV4ZWN1dGFibGUgY29udGFpbmluZwo+IC10aGUgbW9kaWZpZWQgTGlicmFyeS4gKEl0IGlz IHVuZGVyc3Rvb2QgdGhhdCB0aGUgdXNlciB3aG8gY2hhbmdlcyB0aGUgY29udGVudHMKPiAtb2Yg ZGVmaW5pdGlvbnMgZmlsZXMgaW4gdGhlIExpYnJhcnkgd2lsbCBub3QgbmVjZXNzYXJpbHkgYmUg YWJsZSB0byByZWNvbXBpbGUKPiAtdGhlIGFwcGxpY2F0aW9uIHRvIHVzZSB0aGUgbW9kaWZpZWQg ZGVmaW5pdGlvbnMuKQo+IC0KPiAtYikgVXNlIGEgc3VpdGFibGUgc2hhcmVkIGxpYnJhcnkgbWVj aGFuaXNtIGZvciBsaW5raW5nIHdpdGggdGhlIExpYnJhcnkuIEEKPiAtc3VpdGFibGUgbWVjaGFu aXNtIGlzIG9uZSB0aGF0ICgxKSB1c2VzIGF0IHJ1biB0aW1lIGEgY29weSBvZiB0aGUgbGlicmFy eQo+IC1hbHJlYWR5IHByZXNlbnQgb24gdGhlIHVzZXIncyBjb21wdXRlciBzeXN0ZW0sIHJhdGhl ciB0aGFuIGNvcHlpbmcgbGlicmFyeQo+IC1mdW5jdGlvbnMgaW50byB0aGUgZXhlY3V0YWJsZSwg YW5kICgyKSB3aWxsIG9wZXJhdGUgcHJvcGVybHkgd2l0aCBhIG1vZGlmaWVkCj4gLXZlcnNpb24g b2YgdGhlIGxpYnJhcnksIGlmIHRoZSB1c2VyIGluc3RhbGxzIG9uZSwgYXMgbG9uZyBhcyB0aGUg bW9kaWZpZWQKPiAtdmVyc2lvbiBpcyBpbnRlcmZhY2UtY29tcGF0aWJsZSB3aXRoIHRoZSB2ZXJz aW9uIHRoYXQgdGhlIHdvcmsgd2FzIG1hZGUgd2l0aC4KPiAtCj4gLWMpIEFjY29tcGFueSB0aGUg d29yayB3aXRoIGEgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJz LAo+IC10byBnaXZlIHRoZSBzYW1lIHVzZXIgdGhlIG1hdGVyaWFscyBzcGVjaWZpZWQgaW4gU3Vi c2VjdGlvbiA2YSwgYWJvdmUsIGZvcgo+IC1hIGNoYXJnZSBubyBtb3JlIHRoYW4gdGhlIGNvc3Qg b2YgcGVyZm9ybWluZyB0aGlzIGRpc3RyaWJ1dGlvbi4KPiAtCj4gLWQpIElmIGRpc3RyaWJ1dGlv biBvZiB0aGUgd29yayBpcyBtYWRlIGJ5IG9mZmVyaW5nIGFjY2VzcyB0byBjb3B5IGZyb20gYSBk ZXNpZ25hdGVkCj4gLXBsYWNlLCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byBjb3B5IHRoZSBh Ym92ZSBzcGVjaWZpZWQgbWF0ZXJpYWxzIGZyb20KPiAtdGhlIHNhbWUgcGxhY2UuCj4gLQo+IC1l KSBWZXJpZnkgdGhhdCB0aGUgdXNlciBoYXMgYWxyZWFkeSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl c2UgbWF0ZXJpYWxzIG9yCj4gLXRoYXQgeW91IGhhdmUgYWxyZWFkeSBzZW50IHRoaXMgdXNlciBh IGNvcHkuCj4gLQo+IC1Gb3IgYW4gZXhlY3V0YWJsZSwgdGhlIHJlcXVpcmVkIGZvcm0gb2YgdGhl ICJ3b3JrIHRoYXQgdXNlcyB0aGUgTGlicmFyeSIgbXVzdAo+IC1pbmNsdWRlIGFueSBkYXRhIGFu ZCB1dGlsaXR5IHByb2dyYW1zIG5lZWRlZCBmb3IgcmVwcm9kdWNpbmcgdGhlIGV4ZWN1dGFibGUK PiAtZnJvbSBpdC4gSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgdGhlIG1hdGVyaWFs cyB0byBiZSBkaXN0cmlidXRlZAo+IC1uZWVkIG5vdCBpbmNsdWRlIGFueXRoaW5nIHRoYXQgaXMg bm9ybWFsbHkgZGlzdHJpYnV0ZWQgKGluIGVpdGhlciBzb3VyY2Ugb3IKPiAtYmluYXJ5IGZvcm0p IHdpdGggdGhlIG1ham9yIGNvbXBvbmVudHMgKGNvbXBpbGVyLCBrZXJuZWwsIGFuZCBzbyBvbikg b2YgdGhlCj4gLW9wZXJhdGluZyBzeXN0ZW0gb24gd2hpY2ggdGhlIGV4ZWN1dGFibGUgcnVucywg dW5sZXNzIHRoYXQgY29tcG9uZW50IGl0c2VsZgo+IC1hY2NvbXBhbmllcyB0aGUgZXhlY3V0YWJs ZS4KPiAtCj4gLUl0IG1heSBoYXBwZW4gdGhhdCB0aGlzIHJlcXVpcmVtZW50IGNvbnRyYWRpY3Rz IHRoZSBsaWNlbnNlIHJlc3RyaWN0aW9ucyBvZgo+IC1vdGhlciBwcm9wcmlldGFyeSBsaWJyYXJp ZXMgdGhhdCBkbyBub3Qgbm9ybWFsbHkgYWNjb21wYW55IHRoZSBvcGVyYXRpbmcgc3lzdGVtLgo+ IC1TdWNoIGEgY29udHJhZGljdGlvbiBtZWFucyB5b3UgY2Fubm90IHVzZSBib3RoIHRoZW0gYW5k IHRoZSBMaWJyYXJ5IHRvZ2V0aGVyCj4gLWluIGFuIGV4ZWN1dGFibGUgdGhhdCB5b3UgZGlzdHJp YnV0ZS4KPiAtCj4gLTcuIFlvdSBtYXkgcGxhY2UgbGlicmFyeSBmYWNpbGl0aWVzIHRoYXQgYXJl IGEgd29yayBiYXNlZCBvbiB0aGUgTGlicmFyeSBzaWRlLWJ5LXNpZGUKPiAtaW4gYSBzaW5nbGUg bGlicmFyeSB0b2dldGhlciB3aXRoIG90aGVyIGxpYnJhcnkgZmFjaWxpdGllcyBub3QgY292ZXJl ZCBieQo+IC10aGlzIExpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHN1Y2ggYSBjb21iaW5lZCBsaWJy YXJ5LCBwcm92aWRlZCB0aGF0IHRoZSBzZXBhcmF0ZQo+IC1kaXN0cmlidXRpb24gb2YgdGhlIHdv cmsgYmFzZWQgb24gdGhlIExpYnJhcnkgYW5kIG9mIHRoZSBvdGhlciBsaWJyYXJ5IGZhY2lsaXRp ZXMKPiAtaXMgb3RoZXJ3aXNlIHBlcm1pdHRlZCwgYW5kIHByb3ZpZGVkIHRoYXQgeW91IGRvIHRo ZXNlIHR3byB0aGluZ3M6Cj4gLQo+IC1hKSBBY2NvbXBhbnkgdGhlIGNvbWJpbmVkIGxpYnJhcnkg d2l0aCBhIGNvcHkgb2YgdGhlIHNhbWUgd29yayBiYXNlZCBvbiB0aGUKPiAtTGlicmFyeSwgdW5j b21iaW5lZCB3aXRoIGFueSBvdGhlciBsaWJyYXJ5IGZhY2lsaXRpZXMuIFRoaXMgbXVzdCBiZSBk aXN0cmlidXRlZAo+IC11bmRlciB0aGUgdGVybXMgb2YgdGhlIFNlY3Rpb25zIGFib3ZlLgo+IC0K PiAtYikgR2l2ZSBwcm9taW5lbnQgbm90aWNlIHdpdGggdGhlIGNvbWJpbmVkIGxpYnJhcnkgb2Yg dGhlIGZhY3QgdGhhdCBwYXJ0IG9mCj4gLWl0IGlzIGEgd29yayBiYXNlZCBvbiB0aGUgTGlicmFy eSwgYW5kIGV4cGxhaW5pbmcgd2hlcmUgdG8gZmluZCB0aGUgYWNjb21wYW55aW5nCj4gLXVuY29t YmluZWQgZm9ybSBvZiB0aGUgc2FtZSB3b3JrLgo+IC0KPiAtOC4gWW91IG1heSBub3QgY29weSwg bW9kaWZ5LCBzdWJsaWNlbnNlLCBsaW5rIHdpdGgsIG9yIGRpc3RyaWJ1dGUgdGhlIExpYnJhcnkK PiAtZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuIEFueSBh dHRlbXB0IG90aGVyd2lzZSB0bwo+IC1jb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIGxpbmsgd2l0 aCwgb3IgZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSBpcyB2b2lkLCBhbmQKPiAtd2lsbCBhdXRvbWF0 aWNhbGx5IHRlcm1pbmF0ZSB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2UuIEhvd2V2ZXIs IHBhcnRpZXMKPiAtd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzLCBvciByaWdodHMsIGZyb20geW91 IHVuZGVyIHRoaXMgTGljZW5zZSB3aWxsIG5vdAo+IC1oYXZlIHRoZWlyIGxpY2Vuc2VzIHRlcm1p bmF0ZWQgc28gbG9uZyBhcyBzdWNoIHBhcnRpZXMgcmVtYWluIGluIGZ1bGwgY29tcGxpYW5jZS4K PiAtCj4gLTkuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNp bmNlIHlvdSBoYXZlIG5vdCBzaWduZWQKPiAtaXQuIEhvd2V2ZXIsIG5vdGhpbmcgZWxzZSBncmFu dHMgeW91IHBlcm1pc3Npb24gdG8gbW9kaWZ5IG9yIGRpc3RyaWJ1dGUgdGhlCj4gLUxpYnJhcnkg b3IgaXRzIGRlcml2YXRpdmUgd29ya3MuIFRoZXNlIGFjdGlvbnMgYXJlIHByb2hpYml0ZWQgYnkg bGF3IGlmIHlvdQo+IC1kbyBub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gVGhlcmVmb3JlLCBieSBt b2RpZnlpbmcgb3IgZGlzdHJpYnV0aW5nIHRoZSBMaWJyYXJ5Cj4gLShvciBhbnkgd29yayBiYXNl ZCBvbiB0aGUgTGlicmFyeSksIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBM aWNlbnNlCj4gLXRvIGRvIHNvLCBhbmQgYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3Ig Y29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZwo+IC10aGUgTGlicmFyeSBvciB3b3Jr cyBiYXNlZCBvbiBpdC4KPiAtCj4gLTEwLiBFYWNoIHRpbWUgeW91IHJlZGlzdHJpYnV0ZSB0aGUg TGlicmFyeSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlIExpYnJhcnkpLAo+IC10aGUgcmVjaXBp ZW50IGF1dG9tYXRpY2FsbHkgcmVjZWl2ZXMgYSBsaWNlbnNlIGZyb20gdGhlIG9yaWdpbmFsIGxp Y2Vuc29yCj4gLXRvIGNvcHksIGRpc3RyaWJ1dGUsIGxpbmsgd2l0aCBvciBtb2RpZnkgdGhlIExp YnJhcnkgc3ViamVjdCB0byB0aGVzZSB0ZXJtcwo+IC1hbmQgY29uZGl0aW9ucy4gWW91IG1heSBu b3QgaW1wb3NlIGFueSBmdXJ0aGVyIHJlc3RyaWN0aW9ucyBvbiB0aGUgcmVjaXBpZW50cycKPiAt ZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVpbi4gWW91IGFyZSBub3QgcmVzcG9u c2libGUgZm9yIGVuZm9yY2luZwo+IC1jb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgd2l0aCB0 aGlzIExpY2Vuc2UuCj4gLQo+IC0xMS4gSWYsIGFzIGEgY29uc2VxdWVuY2Ugb2YgYSBjb3VydCBq dWRnbWVudCBvciBhbGxlZ2F0aW9uIG9mIHBhdGVudCBpbmZyaW5nZW1lbnQKPiAtb3IgZm9yIGFu eSBvdGhlciByZWFzb24gKG5vdCBsaW1pdGVkIHRvIHBhdGVudCBpc3N1ZXMpLCBjb25kaXRpb25z IGFyZSBpbXBvc2VkCj4gLW9uIHlvdSAod2hldGhlciBieSBjb3VydCBvcmRlciwgYWdyZWVtZW50 IG9yIG90aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRoZQo+IC1jb25kaXRpb25zIG9mIHRoaXMg TGljZW5zZSwgdGhleSBkbyBub3QgZXhjdXNlIHlvdSBmcm9tIHRoZSBjb25kaXRpb25zIG9mCj4g LXRoaXMgTGljZW5zZS4gSWYgeW91IGNhbm5vdCBkaXN0cmlidXRlIHNvIGFzIHRvIHNhdGlzZnkg c2ltdWx0YW5lb3VzbHkgeW91cgo+IC1vYmxpZ2F0aW9ucyB1bmRlciB0aGlzIExpY2Vuc2UgYW5k IGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMKPiAtYSBjb25zZXF1ZW5j ZSB5b3UgbWF5IG5vdCBkaXN0cmlidXRlIHRoZSBMaWJyYXJ5IGF0IGFsbC4gRm9yIGV4YW1wbGUs IGlmIGEKPiAtcGF0ZW50IGxpY2Vuc2Ugd291bGQgbm90IHBlcm1pdCByb3lhbHR5LWZyZWUgcmVk aXN0cmlidXRpb24gb2YgdGhlIExpYnJhcnkKPiAtYnkgYWxsIHRob3NlIHdobyByZWNlaXZlIGNv cGllcyBkaXJlY3RseSBvciBpbmRpcmVjdGx5IHRocm91Z2ggeW91LCB0aGVuIHRoZQo+IC1vbmx5 IHdheSB5b3UgY291bGQgc2F0aXNmeSBib3RoIGl0IGFuZCB0aGlzIExpY2Vuc2Ugd291bGQgYmUg dG8gcmVmcmFpbiBlbnRpcmVseQo+IC1mcm9tIGRpc3RyaWJ1dGlvbiBvZiB0aGUgTGlicmFyeS4K PiAtCj4gLUlmIGFueSBwb3J0aW9uIG9mIHRoaXMgc2VjdGlvbiBpcyBoZWxkIGludmFsaWQgb3Ig dW5lbmZvcmNlYWJsZSB1bmRlciBhbnkKPiAtcGFydGljdWxhciBjaXJjdW1zdGFuY2UsIHRoZSBi YWxhbmNlIG9mIHRoZSBzZWN0aW9uIGlzIGludGVuZGVkIHRvIGFwcGx5LAo+IC1hbmQgdGhlIHNl Y3Rpb24gYXMgYSB3aG9sZSBpcyBpbnRlbmRlZCB0byBhcHBseSBpbiBvdGhlciBjaXJjdW1zdGFu Y2VzLgo+IC0KPiAtSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0byBpbmR1 Y2UgeW91IHRvIGluZnJpbmdlIGFueSBwYXRlbnRzCj4gLW9yIG90aGVyIHByb3BlcnR5IHJpZ2h0 IGNsYWltcyBvciB0byBjb250ZXN0IHZhbGlkaXR5IG9mIGFueSBzdWNoIGNsYWltczsKPiAtdGhp cyBzZWN0aW9uIGhhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlIGludGVncml0 eSBvZiB0aGUgZnJlZQo+IC1zb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtIHdoaWNoIGlzIGlt cGxlbWVudGVkIGJ5IHB1YmxpYyBsaWNlbnNlIHByYWN0aWNlcy4KPiAtTWFueSBwZW9wbGUgaGF2 ZSBtYWRlIGdlbmVyb3VzIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHdpZGUgcmFuZ2Ugb2Ygc29mdHdh cmUKPiAtZGlzdHJpYnV0ZWQgdGhyb3VnaCB0aGF0IHN5c3RlbSBpbiByZWxpYW5jZSBvbiBjb25z aXN0ZW50IGFwcGxpY2F0aW9uIG9mIHRoYXQKPiAtc3lzdGVtOyBpdCBpcyB1cCB0byB0aGUgYXV0 aG9yL2Rvbm9yIHRvIGRlY2lkZSBpZiBoZSBvciBzaGUgaXMgd2lsbGluZyB0bwo+IC1kaXN0cmli dXRlIHNvZnR3YXJlIHRocm91Z2ggYW55IG90aGVyIHN5c3RlbSBhbmQgYSBsaWNlbnNlZSBjYW5u b3QgaW1wb3NlCj4gLXRoYXQgY2hvaWNlLgo+IC0KPiAtVGhpcyBzZWN0aW9uIGlzIGludGVuZGVk IHRvIG1ha2UgdGhvcm91Z2hseSBjbGVhciB3aGF0IGlzIGJlbGlldmVkIHRvIGJlIGEKPiAtY29u c2VxdWVuY2Ugb2YgdGhlIHJlc3Qgb2YgdGhpcyBMaWNlbnNlLgo+IC0KPiAtMTIuIElmIHRoZSBk aXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgTGlicmFyeSBpcyByZXN0cmljdGVkIGluIGNl cnRhaW4KPiAtY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGlu dGVyZmFjZXMsIHRoZSBvcmlnaW5hbCBjb3B5cmlnaHQKPiAtaG9sZGVyIHdobyBwbGFjZXMgdGhl IExpYnJhcnkgdW5kZXIgdGhpcyBMaWNlbnNlIG1heSBhZGQgYW4gZXhwbGljaXQgZ2VvZ3JhcGhp Y2FsCj4gLWRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZyB0aG9zZSBjb3VudHJpZXMs IHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzCj4gLXBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nIGNv dW50cmllcyBub3QgdGh1cyBleGNsdWRlZC4gSW4gc3VjaCBjYXNlLCB0aGlzCj4gLUxpY2Vuc2Ug aW5jb3Jwb3JhdGVzIHRoZSBsaW1pdGF0aW9uIGFzIGlmIHdyaXR0ZW4gaW4gdGhlIGJvZHkgb2Yg dGhpcyBMaWNlbnNlLgo+IC0KPiAtMTMuIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gbWF5 IHB1Ymxpc2ggcmV2aXNlZCBhbmQvb3IgbmV3IHZlcnNpb25zIG9mCj4gLXRoZSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmcm9tIHRpbWUgdG8gdGltZS4gU3VjaCBuZXcgdmVyc2lvbnMg d2lsbAo+IC1iZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLCBidXQg bWF5IGRpZmZlciBpbiBkZXRhaWwgdG8gYWRkcmVzcwo+IC1uZXcgcHJvYmxlbXMgb3IgY29uY2Vy bnMuCj4gLQo+IC1FYWNoIHZlcnNpb24gaXMgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9u IG51bWJlci4gSWYgdGhlIExpYnJhcnkgc3BlY2lmaWVzCj4gLWEgdmVyc2lvbiBudW1iZXIgb2Yg dGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kICJhbnkgbGF0ZXIgdmVyc2lvbiIs Cj4gLXlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0 aW9ucyBlaXRoZXIgb2YgdGhhdCB2ZXJzaW9uCj4gLW9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiBJZiB0aGUKPiAtTGlicmFy eSBkb2VzIG5vdCBzcGVjaWZ5IGEgbGljZW5zZSB2ZXJzaW9uIG51bWJlciwgeW91IG1heSBjaG9v c2UgYW55IHZlcnNpb24KPiAtZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbi4KPiAtCj4gLTE0LiBJZiB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSBwYXJ0cyBvZiB0 aGUgTGlicmFyeSBpbnRvIG90aGVyIGZyZWUgcHJvZ3JhbXMKPiAtd2hvc2UgZGlzdHJpYnV0aW9u IGNvbmRpdGlvbnMgYXJlIGluY29tcGF0aWJsZSB3aXRoIHRoZXNlLCB3cml0ZSB0byB0aGUgYXV0 aG9yCj4gLXRvIGFzayBmb3IgcGVybWlzc2lvbi4gRm9yIHNvZnR3YXJlIHdoaWNoIGlzIGNvcHly aWdodGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCj4gLUZvdW5kYXRpb24sIHdyaXRlIHRvIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHdlIHNvbWV0aW1lcyBtYWtlIGV4Y2VwdGlvbnMKPiAt Zm9yIHRoaXMuIE91ciBkZWNpc2lvbiB3aWxsIGJlIGd1aWRlZCBieSB0aGUgdHdvIGdvYWxzIG9m IHByZXNlcnZpbmcgdGhlIGZyZWUKPiAtc3RhdHVzIG9mIGFsbCBkZXJpdmF0aXZlcyBvZiBvdXIg ZnJlZSBzb2Z0d2FyZSBhbmQgb2YgcHJvbW90aW5nIHRoZSBzaGFyaW5nCj4gLWFuZCByZXVzZSBv ZiBzb2Z0d2FyZSBnZW5lcmFsbHkuCj4gLQo+IC0gICBOTyBXQVJSQU5UWQo+IC0KPiAtMTUuIEJF Q0FVU0UgVEhFIExJQlJBUlkgSVMgTElDRU5TRUQgRlJFRSBPRiBDSEFSR0UsIFRIRVJFIElTIE5P IFdBUlJBTlRZIEZPUgo+IC1USEUgTElCUkFSWSwgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQgQlkg QVBQTElDQUJMRSBMQVcuIEVYQ0VQVCBXSEVOIE9USEVSV0lTRQo+IC1TVEFURUQgSU4gV1JJVElO RyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMgUFJPVklERSBUSEUg TElCUkFSWQo+IC0iQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUiBF WFBSRVNTRUQgT1IgSU1QTElFRCwgSU5DTFVESU5HLAo+IC1CVVQgTk9UIExJTUlURUQgVE8sIFRI RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTCj4gLUZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZ IEFORCBQRVJGT1JNQU5DRQo+IC1PRiBUSEUgTElCUkFSWSBJUyBXSVRIIFlPVS4gU0hPVUxEIFRI RSBMSUJSQVJZIFBST1ZFIERFRkVDVElWRSwgWU9VIEFTU1VNRQo+IC1USEUgQ09TVCBPRiBBTEwg TkVDRVNTQVJZIFNFUlZJQ0lORywgUkVQQUlSIE9SIENPUlJFQ1RJT04uCj4gLQo+IC0xNi4gSU4g Tk8gRVZFTlQgVU5MRVNTIFJFUVVJUkVEIEJZIEFQUExJQ0FCTEUgTEFXIE9SIEFHUkVFRCBUTyBJ TiBXUklUSU5HCj4gLVdJTEwgQU5ZIENPUFlSSUdIVCBIT0xERVIsIE9SIEFOWSBPVEhFUiBQQVJU WSBXSE8gTUFZIE1PRElGWSBBTkQvT1IgUkVESVNUUklCVVRFCj4gLVRIRSBMSUJSQVJZIEFTIFBF Uk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFO WQo+IC1HRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF UyBBUklTSU5HIE9VVCBPRiBUSEUgVVNFCj4gLU9SIElOQUJJTElUWSBUTyBVU0UgVEhFIExJQlJB UlkgKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRiBEQVRBCj4gLU9SIERBVEEg QkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBU SElSRCBQQVJUSUVTCj4gLU9SIEEgRkFJTFVSRSBPRiBUSEUgTElCUkFSWSBUTyBPUEVSQVRFIFdJ VEggQU5ZIE9USEVSIFNPRlRXQVJFKSwgRVZFTiBJRiBTVUNICj4gLUhPTERFUiBPUiBPVEhFUiBQ QVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMu Cj4gLUVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUwo+IC0KPiAtSG93IHRvIEFwcGx5IFRoZXNl IFRlcm1zIHRvIFlvdXIgTmV3IExpYnJhcmllcwo+IC0KPiAtSWYgeW91IGRldmVsb3AgYSBuZXcg bGlicmFyeSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9mIHRoZSBncmVhdGVzdCBwb3NzaWJsZQo+ IC11c2UgdG8gdGhlIHB1YmxpYywgd2UgcmVjb21tZW5kIG1ha2luZyBpdCBmcmVlIHNvZnR3YXJl IHRoYXQgZXZlcnlvbmUgY2FuCj4gLXJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlLiBZb3UgY2FuIGRv IHNvIGJ5IHBlcm1pdHRpbmcgcmVkaXN0cmlidXRpb24gdW5kZXIKPiAtdGhlc2UgdGVybXMgKG9y LCBhbHRlcm5hdGl2ZWx5LCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIG9yZGluYXJ5IEdlbmVyYWwg UHVibGljCj4gLUxpY2Vuc2UpLgo+IC0KPiAtVG8gYXBwbHkgdGhlc2UgdGVybXMsIGF0dGFjaCB0 aGUgZm9sbG93aW5nIG5vdGljZXMgdG8gdGhlIGxpYnJhcnkuIEl0IGlzIHNhZmVzdAo+IC10byBh dHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVj dGl2ZWx5IGNvbnZleQo+IC10aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBmaWxl IHNob3VsZCBoYXZlIGF0IGxlYXN0IHRoZSAiY29weXJpZ2h0Igo+IC1saW5lIGFuZCBhIHBvaW50 ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLgo+IC0KPiAtPG9uZSBsaW5lIHRv IGdpdmUgdGhlIGxpYnJhcnkncyBuYW1lIGFuZCBhbiBpZGVhIG9mIHdoYXQgaXQgZG9lcy4+Cj4g LQo+IC1Db3B5cmlnaHQgKEMpIDx5ZWFyPiA8bmFtZSBvZiBhdXRob3I+Cj4gLQo+IC1UaGlzIGxp YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeSBpdCB1bmRlcgo+IC10aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKPiAtU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p Cj4gLWFueSBsYXRlciB2ZXJzaW9uLgo+IC0KPiAtVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCj4gLUFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTCj4gLUZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUKPiAtZGV0YWlscy4KPiAtCj4g LVlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhbG9uZwo+IC13aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0 ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MQo+IC1GcmFua2xpbiBT dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCj4gLQo+IC1BbHNv IGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQg cGFwZXIgbWFpbC4KPiAtCj4gLVlvdSBzaG91bGQgYWxzbyBnZXQgeW91ciBlbXBsb3llciAoaWYg eW91IHdvcmsgYXMgYSBwcm9ncmFtbWVyKSBvciB5b3VyIHNjaG9vbCwKPiAtaWYgYW55LCB0byBz aWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIGxpYnJhcnksIGlmIG5lY2Vzc2Fy eS4gSGVyZQo+IC1pcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5hbWVzOgo+IC0KPiAtWW95b2R5bmUs IEluYy4sIGhlcmVieSBkaXNjbGFpbXMgYWxsIGNvcHlyaWdodCBpbnRlcmVzdCBpbgo+IC0KPiAt dGhlIGxpYnJhcnkgYEZyb2InIChhIGxpYnJhcnkgZm9yIHR3ZWFraW5nIGtub2JzKSB3cml0dGVu Cj4gLQo+IC1ieSBKYW1lcyBSYW5kb20gSGFja2VyLgo+IC0KPiAtPCBzaWduYXR1cmUgb2YgVHkg Q29vbiA+ICwgMSBBcHJpbCAxOTkwCj4gLQo+IC1UeSBDb29uLCBQcmVzaWRlbnQgb2YgVmljZQo+ IC0KPiAtVGhhdCdzIGFsbCB0aGVyZSBpcyB0byBpdCEKPiAtLSAKPiAyLjI2LjIKPiAKPiAKCi0t IApSb2xhbmQgSGllYmVyLCBQZW5ndXRyb25peCBlLksuICAgICAgICAgIHwgci5oaWViZXJAcGVu Z3V0cm9uaXguZGUgICAgIHwKU3RldWVyd2FsZGVyIFN0ci4gMjEgICAgICAgICAgICAgICAgICAg ICB8IGh0dHBzOi8vd3d3LnBlbmd1dHJvbml4LmRlLyB8CjMxMTM3IEhpbGRlc2hlaW0sIEdlcm1h bnkgICAgICAgICAgICAgICAgfCBQaG9uZTogKzQ5LTUxMjEtMjA2OTE3LTAgICAgfApBbXRzZ2Vy aWNodCBIaWxkZXNoZWltLCBIUkEgMjY4NiAgICAgICAgIHwgRmF4OiAgICs0OS01MTIxLTIwNjkx Ny01NTU1IHwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmJhcmVib3ggbWFpbGluZyBsaXN0CmJhcmVib3hAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2JhcmVib3gK