From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: In-Reply-To: <20200617143125.23999-4-bst@pengutronix.de> MIME-Version: 1.0 Message-Id: From: Michael Olbrich Date: Sat, 20 Jun 2020 00:04:07 +0200 Subject: Re: [ptxdist] [APPLIED] doc: dev_manual: split up into multiple files List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de Cc: Bastian Krause VGhhbmtzLCBhcHBsaWVkIGFzIDVkNDJmNmY0ZWY4MTQyYjE1NjI5MDY0Y2M4MjZhMmI3Mjk4YjQ5 OTUuCgpNaWNoYWVsCgpbc2VudCBmcm9tIHBvc3QtcmVjZWl2ZSBob29rXQoKT24gU2F0LCAyMCBK dW4gMjAyMCAwMDowNDowNyArMDIwMCwgQmFzdGlhbiBLcmF1c2UgPGJzdEBwZW5ndXRyb25peC5k ZT4gd3JvdGU6Cj4gU3BsaXQgdGhlIGxlbmd0aHkgZGV2ZWxvcGVyJ3MgbWFudWFsIGludG8gbXVs dGlwbGUgZmlsZXMgdG8gZWFzZQo+IG5hdmlnYXRpb24gd2hlbiBlZGl0aW5nLgo+IAo+IE5vIGZ1 cnRoZXIgY2hhbmdlIHRvIHRoZSBjb250ZW50Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IEJhc3RpYW4g S3JhdXNlIDxic3RAcGVuZ3V0cm9uaXguZGU+Cj4gUmV2aWV3ZWQtYnk6IFJvbGFuZCBIaWViZXIg PHJoaUBwZW5ndXRyb25peC5kZT4KPiBUZXN0ZWQtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0Bs aW51eC1taXBzLm9yZz4KPiBNZXNzYWdlLUlkOiA8MjAyMDA2MTcxNDMxMjUuMjM5OTktNC1ic3RA cGVuZ3V0cm9uaXguZGU+Cj4gU2lnbmVkLW9mZi1ieTogTWljaGFlbCBPbGJyaWNoIDxtLm9sYnJp Y2hAcGVuZ3V0cm9uaXguZGU+Cj4gCj4gZGlmZiAtLWdpdCBhL2RvYy9kZXZfYWRkX2Jpbl9vbmx5 X2ZpbGVzLnJzdCBiL2RvYy9kZXZfYWRkX2Jpbl9vbmx5X2ZpbGVzLnJzdAo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi45MDMxZTQzN2NkNGYKPiAtLS0gL2Rldi9u dWxsCj4gKysrIGIvZG9jL2Rldl9hZGRfYmluX29ubHlfZmlsZXMucnN0Cj4gQEAgLTAsMCArMSwx MDUgQEAKPiArLi4gX2FkZGluZ19maWxlczoKPiArCj4gK0FkZGluZyBCaW5hcnkgT25seSBGaWxl cwo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArCj4gK1NvbWV0aW1lcyBhIGZldyBiaW5h cnkgZmlsZXMgaGF2ZSB0byBiZSBhZGRlZCBpbnRvIHRoZSByb290IGZpbGVzeXN0ZW0uCj4gK09y IC0gdG8gYmUgbW9yZSBwcmVjaXNlIC0gc29tZSBmaWxlcywgdGhhdCBkbyBub3QgbmVlZCB0byBi ZSBidWlsdCBpbgo+ICthbnkgd2F5Lgo+ICsKPiArT24gdGhlIG90aGVyIGhhbmQsIHNvbWV0aW1l cyBmaWxlcyBzaG91bGQgYmUgaW5jbHVkZWQgdGhhdCBhcmUgbm90Cj4gK2NvdmVyZWQgYnkgYW55 IG9wZW4gc291cmNlIGxpY2Vuc2UgYW5kIHNvLCBzaG91bGQgbm90IGJlIHNoaXBwZWQgaW4gdGhl Cj4gK3NvdXJjZSBjb2RlIGZvcm1hdC4KPiArCj4gK0FkZCBCaW5hcnkgRmlsZXMgRmlsZSBieSBG aWxlCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Cj4gKwo+ICtEb2luZyB0byBvbiBh IGZpbGUgYnkgZmlsZSBiYXNlIGNhbiBoYXBwZW4gYnkganVzdCB1c2luZyB0aGUgYGBpbnN0YWxs X2NvcHlgYAo+ICttYWNybyBpbiB0aGUgKnRhcmdldGluc3RhbGwqIHN0YWdlIGluIG91ciBvd24g Y3VzdG9taXplZCBydWxlcyBmaWxlLgo+ICsKPiArLi4gY29kZS1ibG9jazo6IG5vbmUKPiArCj4g KyAgICBAJChjYWxsIGluc3RhbGxfY29weSwgYmluYXJ5X2V4YW1wbGUsIDAsIDAsIDA2NDQsIFwK PiArICAgICAgIDwvcGF0aC90by9zb21lL2ZpbGUvPnB0eF9sb2dvLnBuZywgXAo+ICsgICAgICAg L2V4YW1wbGUvcHR4X2xvZ28ucG5nKQo+ICsKPiArSXQgY29waWVzIHRoZSBmaWxlIGBgcHR4X2xv Z28ucG5nYGAgZnJvbSBzb21lIGxvY2F0aW9uIHRvIHRhcmdldOKAmXMgcm9vdAo+ICtmaWxlc3lz dGVtLiBSZWZlciA6cmVmOmBpbnN0YWxsX2NvcHlgIGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uIGFi b3V0IHVzaW5nIHRoZQo+ICtgYGluc3RhbGxfY29weWBgIG1hY3JvLgo+ICsKPiArVGhlIGRpc2Fk dmFudGFnZSBvZiB0aGlzIG1ldGhvZCBpczogaWYgd2Ugd2FudCB0byBpbnN0YWxsIG1vcmUgdGhh biBvbmUKPiArZmlsZSwgd2UgbmVlZCBvbmUgY2FsbCB0byB0aGUgYGBpbnN0YWxsX2NvcHlgYCBt YWNybyBwZXIgZmlsZS4gVGhpcyBpcwo+ICtldmVuIGhhcmRlciBpZiBub3Qgb25seSBhIHNldCBv ZiBmaWxlcyBpcyB0byBiZSBpbnN0YWxsZWQsIGJ1dCBhIHdob2xlCj4gK2RpcmVjdG9yeSB0cmVl IHdpdGggZmlsZXMgaW5zdGVhZC4KPiArCj4gK0FkZCBCaW5hcnkgRmlsZXMgdmlhIGFuIEFyY2hp dmUKPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo+ICsKPiArSWYgYSB3aG9sZSB0 cmVlIG9mIGZpbGVzIGlzIHRvIGJlIGluc3RhbGxlZCwgd29ya2luZyB3aXRoIGEgKnRhciogYmFz ZWQKPiArYXJjaGl2ZSBjb3VsZCBtYWtlIGxpZmUgZWFzaWVyLiBJbiB0aGlzIGNhc2UgdGhlIGFy Y2hpdmUgaXRzZWxmIHByb3ZpZGVzCj4gK2FsbCB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gdGhl IGZpbGVzIGFyZSBuZWVkaW5nIHRvIGJlIGluc3RhbGxlZCBpbiBhCj4gK2NvcnJlY3QgbWFubmVy Ogo+ICsKPiArLSAgdGhlIGZpbGUgaXRzZWxmIGFuZCBpdHMgbmFtZQo+ICsKPiArLSAgdGhlIGRp cmVjdG9yeSBzdHJ1Y3R1cmUgYW5kIHRoZSBmaW5hbCBsb2NhdGlvbiBvZiBldmVyeSBmaWxlIGlu IHRoaXMKPiArICAgc3RydWN0dXJlCj4gKwo+ICstICB1c2VyIGFuZCBncm91cCBJRCBvbiBhIHBl ciBmaWxlIGJhc2UKPiArCj4gKy4uIGNvZGUtYmxvY2s6OiBub25lCj4gKwo+ICsgICAgQCQoY2Fs bCBpbnN0YWxsX2FyY2hpdmUsIGJpbmFyeV9leGFtcGxlLCAtLCAtLCBcCj4gKyAgICAgICA8L3Bh dGgvdG8vYW4vPmFyY2hpdmUudGd6LCAvKQo+ICsKPiArUmVmZXIgOnJlZjpgaW5zdGFsbF9hcmNo aXZlYCBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCB1c2luZyB0aGUKPiArYGBpbnN0YWxs X2FyY2hpdmVgYCBtYWNyby4KPiArCj4gK1VzaW5nIGFuIGFyY2hpdmUgY2FuIGJlIHVzZWZ1bCB0 byBpbnN0YWxsIHBhcnRzIG9mIHRoZSByb290IGZpbGVzeXN0ZW0KPiArdGhhdCBhcmUgbm90IGNv dmVyZWQgYnkgYW55IG9wZW4gc291cmNlIGxpY2Vuc2UuIEl0cyBwb3NzaWJsZSB0byBzaGlwCj4g K3RoZSBiaW5hcmllcyB3aXRoaW4gdGhlIHJlZ3VsYXIgQlNQLCB3aXRob3V0IHRoZSBuZWVkIGZv ciB0aGVpciBzb3VyY2VzLgo+ICtIb3dldmVyIGl0IGlzIHBvc3NpYmxlIGZvciB0aGUgY3VzdG9t ZXIgdG8gcmUtY3JlYXRlIGV2ZXJ5dGhpbmcgcmVxdWlyZWQKPiArZnJvbSB0aGUgQlNQIHRvIGdl dCB0aGVpciB0YXJnZXQgdXAgYW5kIHJ1bm5pbmcgYWdhaW4uCj4gKwo+ICtBbm90aGVyIHVzZSBj YXNlIGZvciB0aGUgYXJjaGl2ZSBtZXRob2QgY291bGQgYmUgdGhlIHN1cHBvcnQgZm9yCj4gK2Rp ZmZlcmVudCBkZXZlbG9wbWVudCB0ZWFtcy4gT25lIHRlYW0gcHJvdmlkZXMgYSBzb2Z0d2FyZSBj b21wb25lbnQgaW4KPiArdGhlIGFyY2hpdmUgZm9ybWF0LCB0aGUgb3RoZXIgdGVhbSBkb2VzIG5v dCBuZWVkIHRvIGJ1aWxkIGl0IGJ1dCBjYW4gdXNlCj4gK2l0IGluIHRoZSBzYW1lIHdheSB0aGFu IGV2ZXJ5IG90aGVyIHNvZnR3YXJlIGNvbXBvbmVudC4KPiArCj4gK0NyZWF0aW5nIGEgUnVsZXMg RmlsZQo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn4KPiArCj4gK0xldCBQVFhkaXN0IGNyZWF0ZSBv bmUgZm9yIHVzLgo+ICsKPiArLi4gY29kZS1ibG9jazo6IHRleHQKPiArCj4gKyAgICAkIHB0eGRp c3QgbmV3cGFja2FnZSBmaWxlCj4gKwo+ICsgICAgcHR4ZGlzdDogY3JlYXRpbmcgYSBuZXcgJ2Zp bGUnIHBhY2thZ2U6Cj4gKwo+ICsgICAgcHR4ZGlzdDogZW50ZXIgcGFja2FnZSBuYW1lLi4uLi4u LjogbXlfYmluZmlsZXMKPiArICAgIHB0eGRpc3Q6IGVudGVyIHZlcnNpb24gbnVtYmVyLi4uLi46 IDEKPiArICAgIHB0eGRpc3Q6IGVudGVyIHBhY2thZ2UgYXV0aG9yLi4uLi46IE15IE5hbWUgPG1l QG15LW9yZy5jb20+Cj4gKyAgICBwdHhkaXN0OiBlbnRlciBwYWNrYWdlIHNlY3Rpb24uLi4uOiBy b290ZnMKPiArCj4gK05vdyB0d28gbmV3IGZpbGVzIGFyZSBwcmVzZW50IGluIHRoZSBCU1A6Cj4g Kwo+ICsjLiBgYHJ1bGVzL215X2JpbmZpbGVzLmluYGAgVGhlIHRlbXBsYXRlIGZvciB0aGUgbWVu dQo+ICsKPiArIy4gYGBydWxlcy9teV9iaW5maWxlcy5tYWtlYGAgVGhlIHJ1bGVzIHRlbXBsYXRl Cj4gKwo+ICtCb3RoIGZpbGVzIG5vdyBtdXN0IGJlIGN1c3RvbWl6ZWQgdG8gbWVldCBvdXIgcmVx dWlyZW1lbnRzLiBEdWUgdG8gdGhlCj4gK2Fuc3dlciAqcm9vdGZzKiB0byB0aGUg4oCcYGBlbnRl ciBwYWNrYWdlIHNlY3Rpb25gYOKAnSBxdWVzdGlvbiwgd2Ugd2lsbAo+ICtmaW5kIHRoZSBuZXcg bWVudSBlbnRyeSBpbjoKPiArCj4gKy4uIGNvZGUtYmxvY2s6OiB0ZXh0Cj4gKwo+ICsgICAgUm9v dCBGaWxlc3lzdGVtIC0tLT4KPiArICAgIAk8ID4gbXlfYmluZmlsZXMgKE5FVykKPiArCj4gK0Vu YWJsaW5nIHRoaXMgbmV3IGVudHJ5IHdpbGwgYWxzbyBydW4gb3VyIHN0YWdlcyBpbgo+ICtgYHJ1 bGVzL215X2JpbmZpbGVzLm1ha2VgYCB0aGUgbmV4dCB0aW1lIHdlIGVudGVyOgo+ICsKPiArLi4g Y29kZS1ibG9jazo6IHRleHQKPiArCj4gKyAgICAkIHB0eGRpc3QgZ28KPiBkaWZmIC0tZ2l0IGEv ZG9jL2Rldl9hZGRfbmV3X3BrZ3MucnN0IGIvZG9jL2Rldl9hZGRfbmV3X3BrZ3MucnN0Cj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjRhZTI3NjVjMmNlOQo+IC0t LSAvZGV2L251bGwKPiArKysgYi9kb2MvZGV2X2FkZF9uZXdfcGtncy5yc3QKPiBAQCAtMCwwICsx LDEzMzkgQEAKPiArLi4gX2FkZGluZ19uZXdfcGFja2FnZXM6Cj4gKwo+ICtBZGRpbmcgTmV3IFBh Y2thZ2VzCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0KPiArCj4gK1BUWGRpc3QgcHJvdmlkZXMgYSBo dWdlIGFtb3VudCBvZiBhcHBsaWNhdGlvbnMgc3VmZmljaWVudCBmb3IgdGhlIG1vc3QKPiArZW1i ZWRkZWQgdXNlIGNhc2VzLiBCdXQgdGhlcmUgaXMgc3RpbGwgbmVlZCBmb3Igc29tZSBmYW5jeSBu ZXcgcGFja2FnZXMuCj4gK1RoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIHN0ZXBzIGFuZCB0aGUg YmFja2dyb3VuZCBvbiBob3cgdG8gaW50ZWdyYXRlCj4gK25ldyBwYWNrYWdlcyBpbnRvIHRoZSBw cm9qZWN0Lgo+ICsKPiArQXQgZmlyc3QgYSBzdW1tYXJ5IGFib3V0IHBvc3NpYmxlIGFwcGxpY2F0 aW9uIHR5cGVzIHdoaWNoIFBUWGRpc3QgY2FuCj4gK2hhbmRsZToKPiArCj4gKy0gICoqaG9zdCB0 eXBlKio6IFRoaXMga2luZCBvZiBwYWNrYWdlIGlzIGJ1aWx0IHRvIHJ1biBvbiB0aGUgYnVpbGQK PiArICAgaG9zdC4gTW9zdCBvZiB0aGUgdGltZSBzdWNoIGEgcGFja2FnZSBpcyBuZWVkZWQgaWYg YW5vdGhlcgo+ICsgICB0YXJnZXQtcmVsZXZhbnQgcGFja2FnZSBuZWVkcyB0byBnZW5lcmF0ZSBz b21lIGRhdGEuIEZvciBleGFtcGxlIHRoZQo+ICsgICAqZ2xpYiogcGFja2FnZSBkZXBlbmRzIG9u IGl0cyBvd24gdG8gY3JlYXRlIHNvbWUgZGF0YS4gQnV0IGlmIGl0IGlzCj4gKyAgIGNvbXBpbGVk IGZvciB0aGUgdGFyZ2V0LCBpdCBjYW7igJl0IGRvIHNvLiBUaGF04oCZcyB3aHkgYSBob3N0IGds aWIKPiArICAgcGFja2FnZSBpcyByZXF1aXJlZCB0byBwcm92aWRlIHRoZXNlIHV0aWxpdGllcyBy dW5uYWJsZSBvbiB0aGUgYnVpbGQKPiArICAgaG9zdC4gSXQgc291bmRzIHN0cmFuZ2UgdG8gYnVp bGQgYSBob3N0IHBhY2thZ2UsIGV2ZW4gaWYgb24gdGhlIGJ1aWxkCj4gKyAgIGhvc3Qgc3VjaCB1 dGlsaXRpZXMgYXJlIGFscmVhZHkgaW5zdGFsbGVkLiBCdXQgdGhpcyB3YXkgZW5zdXJlcyB0aGF0 Cj4gKyAgIHRoZXJlIGFyZSBubyBkZXBlbmRlbmNpZXMgcmVnYXJkaW5nIHRoZSBidWlsZCBob3N0 IHN5c3RlbS4KPiArCj4gKy0gICoqdGFyZ2V0IHR5cGUqKjogVGhpcyBraW5kIG9mIHBhY2thZ2Ug aXMgYnVpbHQgZm9yIHRoZSB0YXJnZXQuCj4gKwo+ICstICAqKmNyb3NzIHR5cGUqKjogVGhpcyBr aW5kIG9mIHBhY2thZ2UgaXMgYnVpbHQgZm9yIHRoZSBidWlsZCBob3N0LCBidXQKPiArICAgY3Jl YXRlcyBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgZGF0YSBmb3IgdGhlIHRhcmdldC4KPiArCj4gKy0g ICoqc3JjLWF1dG9jb25mLXByb2cqKjogVGhpcyBraW5kIG9mIHBhY2thZ2UgaXMgYnVpbHQgZm9y IHRoZSB0YXJnZXQuCj4gKyAgIEl0IGlzIGludGVuZGVkIGZvciBkZXZlbG9wbWVudCwgYXMgaXQg ZG9lcyBub3QgaGFuZGxlIGEgcmVsZWFzZWQKPiArICAgYXJjaGl2ZSBidXQgYSBwbGFpbiBzb3Vy Y2UgcHJvamVjdCBpbnN0ZWFkLiBDcmVhdGluZyBzdWNoIGEgcGFja2FnZQo+ICsgICB3aWxsIGFs c28gY3JlYXRlIGEgc21hbGwgYXV0b3Rvb2xzIGJhc2VkIHNvdXJjZSB0ZW1wbGF0ZSBwcm9qZWN0 IG9uCj4gKyAgIGRlbWFuZCB0byBnaXZlIHRoZSBkZXZlbG9wZXIgYW4gZWFzeSBwb2ludCB0byBz dGFydC4gVGhpcyB0ZW1wbGF0ZSBpcwo+ICsgICBwcmVwYXJlZCB0byBidWlsZCBhIHNpbmdsZSBl eGVjdXRhYmxlIHByb2dyYW0uIEZvciBmdXJ0aGVyIGRldGFpbHMgcmVmZXIKPiArICAgc2VjdGlv biA6cmVmOmBhZGRpbmdfc3JjX2F1dG9jb25mX2V4ZWNgLgo+ICsKPiArLSAgKipzcmMtYXV0b2Nv bmYtbGliKio6IFRoaXMga2luZCBvZiBwYWNrYWdlIGlzIGJ1aWx0IGZvciB0aGUgdGFyZ2V0Lgo+ ICsgICBJdCBpcyBpbnRlbmRlZCBmb3IgZGV2ZWxvcG1lbnQsIGFzIGl0IGRvZXMgbm90IGhhbmRs ZSBhIHJlbGVhc2VkCj4gKyAgIGFyY2hpdmUgYnV0IGEgcGxhaW4gc291cmNlIHByb2plY3QgaW5z dGVhZC4gQ3JlYXRpbmcgc3VjaCBhIHBhY2thZ2UKPiArICAgd2lsbCBhbHNvIGNyZWF0ZSBhIHNt YWxsIGF1dG90b29scy9saWJ0b29sIGJhc2VkIHNvdXJjZSB0ZW1wbGF0ZQo+ICsgICBwcm9qZWN0 IG9uIGRlbWFuZCB0byBnaXZlIHRoZSBkZXZlbG9wZXIgYW4gZWFzeSBwb2ludCB0byBzdGFydC4g VGhpcwo+ICsgICB0ZW1wbGF0ZSBpcyBwcmVwYXJlZCB0byBidWlsZCBhIHNpbmdsZSBzaGFyZWQg bGlicmFyeS4gRm9yIGZ1cnRoZXIKPiArICAgZGV0YWlscyByZWZlciBzZWN0aW9uIDpyZWY6YGFk ZGluZ19zcmNfYXV0b2NvbmZfbGliYC4KPiArCj4gKy0gICoqc3JjLWF1dG9jb25mLXByb2dsaWIq KjogVGhpcyBraW5kIG9mIHBhY2thZ2UgaXMgYnVpbHQgZm9yIHRoZQo+ICsgICB0YXJnZXQuIEl0 IGlzIGludGVuZGVkIGZvciBkZXZlbG9wbWVudCwgYXMgaXQgZG9lcyBub3QgaGFuZGxlIGEKPiAr ICAgcmVsZWFzZWQgYXJjaGl2ZSBidXQgYSBwbGFpbiBzb3VyY2UgcHJvamVjdCBpbnN0ZWFkLiBD cmVhdGluZyBzdWNoIGEKPiArICAgcGFja2FnZSB3aWxsIGFsc28gY3JlYXRlIGEgc21hbGwgYXV0 b3Rvb2xzL2xpYnRvb2wgYmFzZWQgdGVtcGxhdGUKPiArICAgcHJvamVjdCBvbiBkZW1hbmQgdG8g Z2l2ZSB0aGUgZGV2ZWxvcGVyIGFuIGVhc3kgcG9pbnQgdG8gc3RhcnQuIFRoaXMKPiArICAgdGVt cGxhdGUgaXMgcHJlcGFyZWQgdG8gYnVpbGQgYSBzaW5nbGUgc2hhcmVkIGxpYnJhcnkgYW5kIGEg c2luZ2xlCj4gKyAgIGV4ZWN1dGFibGUgcHJvZ3JhbS4gVGhlIHByb2dyYW0gd2lsbCBiZSBsaW5r ZWQgYWdhaW5zdCB0aGUgc2hhcmVkCj4gKyAgIGxpYnJhcnkuIEZvciBmdXJ0aGVyIGRldGFpbHMg cmVmZXIgc2VjdGlvbiA6cmVmOmBhZGRpbmdfc3JjX2F1dG9jb25mX2V4ZWNfbGliYC4KPiArCj4g Ky0gICoqZmlsZSoqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBpcyBpbnRlbmRlZCB0byBhZGQgYSBm ZXcgc2ltcGxlIGZpbGVzCj4gKyAgIGludG8gdGhlIGJ1aWxkIHByb2Nlc3MuIFdlIGFzc3VtZSB0 aGVzZSBmaWxlcyBkbyBub3QgbmVlZCBhbnkKPiArICAgcHJvY2Vzc2luZywgdGhleSBhcmUgcmVh ZHkgdG8gdXNlIGFuZCBtdXN0IG9ubHkgYmUgcHJlc2VudCBpbiB0aGUKPiArICAgYnVpbGQgcHJv Y2VzcyBvciBhdCBydW4tdGltZSAoSFRNTCBmaWxlcyBmb3IgZXhhbXBsZSkuIFJlZmVyIHRvIHRo ZQo+ICsgICBzZWN0aW9uIDpyZWY6YGFkZGluZ19maWxlc2AgZm9yIGZ1cnRoZXIgZGV0YWlscyBv biBob3cgdG8gdXNlCj4gKyAgIGl0Lgo+ICsKPiArLSAgKipzcmMtbWFrZS1wcm9nKio6IFRoaXMg a2luZCBvZiBwYWNrYWdlIGlzIGJ1aWx0IGZvciB0aGUgdGFyZ2V0LiBJdOKAmXMKPiArICAgaW50 ZW5kZWQgZm9yIGRldmVsb3BtZW50LCBhcyBpdCBkb2VzIG5vdCBoYW5kbGUgYSByZWxlYXNlZCBh cmNoaXZlCj4gKyAgIGJ1dCBhIHBsYWluIHNvdXJjZSBwcm9qZWN0IGluc3RlYWQuIENyZWF0aW5n IHN1Y2ggYSBwYWNrYWdlIHdpbGwgYWxzbwo+ICsgICBjcmVhdGUgYSBzaW1wbGUgbWFrZWZpbGUt YmFzZWQgdGVtcGxhdGUgcHJvamVjdCB0aGUgZGV2ZWxvcGVyIGNhbiB1c2UKPiArICAgYXMgYSBz dGFydGluZyBwb2ludCBmb3IgZGV2ZWxvcG1lbnQuCj4gKwo+ICstICAqKnNyYy1jbWFrZS1wcm9n Kio6IFRoaXMga2luZCBvZiBwYWNrYWdlIGlzIGJ1aWx0IGZvciB0aGUgdGFyZ2V0Lgo+ICsgICBJ dOKAmXMgaW50ZW5kZWQgZm9yIGRldmVsb3BtZW50cyBiYXNlZCBvbiB0aGUgKmNtYWtlKiBidWls ZHN5c3RlbS4KPiArICAgVmFyaW91cyBwcm9qZWN0cyBhcmUgdXNpbmcgKmNtYWtlKiBpbnN0ZWFk IG9mICptYWtlKiBhbmQgY2FuIGJlIGJ1aWx0Cj4gKyAgIHdpdGggdGhpcyBwYWNrYWdlIHR5cGUu IFBUWGRpc3Qgd2lsbCBwcmVwYXJlIGl0IHRvIGNvbXBpbGUgc291cmNlcyBpbgo+ICsgICBhY2Nv cmRhbmNlIHRvIHRoZSB0YXJnZXQgbGlicmFyaWVzIGFuZCB0aGVpciBzZXR0aW5ncy4gQ3JlYXRp bmcgc3VjaAo+ICsgICBhIHBhY2thZ2Ugd2lsbCBhbHNvIGNyZWF0ZSBhIHNpbXBsZSB0ZW1wbGF0 ZSBwcm9qZWN0IHRvIGJlIHVzZWQgYXMgYQo+ICsgICBzdGFydGluZyBwb2ludCBmb3IgZGV2ZWxv cG1lbnQuCj4gKwo+ICstICAqKnNyYy1xbWFrZS1wcm9nKio6IFRoaXMga2luZCBvZiBwYWNrYWdl IGlzIGJ1aWx0IGZvciB0aGUgdGFyZ2V0Lgo+ICsgICBJdOKAmXMgaW50ZW5kZWQgZm9yIGRldmVs b3BtZW50cyBiYXNlZCBvbiB0aGUgKnFtYWtlKiBidWlsZHN5c3RlbS4gSWYKPiArICAgdGhlIGRl dmVsb3BlciBpcyBnb2luZyB0byBkZXZlbG9wIGEgUVQgYmFzZWQgYXBwbGljYXRpb24sIHRoaXMg cnVsZQo+ICsgICBpcyBwcmVwYXJlZCB0byBjb21waWxlIHNvdXJjZXMgaW4gYWNjb3JkYW5jZSB0 byB0aGUgdGFyZ2V0IGxpYnJhcmllcwo+ICsgICBhbmQgdGhlaXIgc2V0dGluZ3MuIENyZWF0aW5n IHN1Y2ggYSBwYWNrYWdlIHdpbGwgYWxzbyBjcmVhdGUgYSBzaW1wbGUKPiArICAgdGVtcGxhdGUg cHJvamVjdCB0byBiZSB1c2VkIGFzIGEgc3RhcnRpbmcgcG9pbnQgZm9yIGRldmVsb3BtZW50Lgo+ ICsKPiArLSAgKipzcmMtbWVzb24tcHJvZyoqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBpcyBidWls dCBmb3IgdGhlIHRhcmdldC4KPiArICAgSXTigJlzIGludGVuZGVkIGZvciBkZXZlbG9wbWVudHMg YmFzZWQgb24gdGhlICptZXNvbiogYnVpbGRzeXN0ZW0uCj4gKyAgIFZhcmlvdXMgcHJvamVjdHMg YXJlIHVzaW5nICptZXNvbiogdG9kYXkgYW5kIGNhbiBiZSBidWlsdAo+ICsgICB3aXRoIHRoaXMg cGFja2FnZSB0eXBlLiBQVFhkaXN0IHdpbGwgcHJlcGFyZSBpdCB0byBjb21waWxlIHNvdXJjZXMg aW4KPiArICAgYWNjb3JkYW5jZSB0byB0aGUgdGFyZ2V0IGxpYnJhcmllcyBhbmQgdGhlaXIgc2V0 dGluZ3MuIENyZWF0aW5nIHN1Y2gKPiArICAgYSBwYWNrYWdlIHdpbGwgYWxzbyBjcmVhdGUgYSBz aW1wbGUgdGVtcGxhdGUgcHJvamVjdCB0byBiZSB1c2VkIGFzIGEKPiArICAgc3RhcnRpbmcgcG9p bnQgZm9yIGRldmVsb3BtZW50Lgo+ICsKPiArLSAgKipmb250Kio6IFRoaXMgcGFja2FnZSBpcyBh IGhlbHBlciB0byBhZGQgWCBmb250IGZpbGVzIHRvIHRoZSByb290Cj4gKyAgIGZpbGVzeXN0ZW0u IFRoaXMgcGFja2FnZSBkb2VzIG5vdCBjcmVhdGUgYW4gYWRkaXRpb25hbCBJUEtHLCBpbnN0ZWFk Cj4gKyAgIGl0IGFkZHMgdGhlIGZvbnQgdG8gdGhlIGV4aXN0aW5nIGZvbnQgSVBLRy4gVGhpcyBp bmNsdWRlcyB0aGUKPiArICAgZ2VuZXJhdGlvbiBvZiB0aGUgZGlyZWN0b3J5IGluZGV4IGZpbGVz LCByZXF1aXJlZCBieSB0aGUgWG9yZwo+ICsgICBmcmFtZXdvcmsgdG8gcmVjb2duaXplIHRoZSBm b250IGZpbGUuCj4gKwo+ICstICAqKnNyYy1saW51eC1kcml2ZXIqKjogVGhpcyBraW5kIG9mIHBh Y2thZ2UgYnVpbGRzIGFuIG91dCBvZiB0cmVlCj4gKyAgIGtlcm5lbCBkcml2ZXIuIEl0IGFsc28g Y3JlYXRlcyBhIGRyaXZlciB0ZW1wbGF0ZSB0byBnaXZlIHRoZQo+ICsgICBkZXZlbG9wZXIgYW4g ZWFzeSBwb2ludCB0byBzdGFydC4KPiArCj4gKy0gICoqa2VybmVsKio6IFBUWGRpc3QgY29tZXMg d2l0aCB0aGUgYWJpbGl0eSB0byBoYW5kbGUgb25lIGtlcm5lbCBpbiBpdHMKPiArICAgcGxhdGZv cm0uIFRoaXMgdHlwZSBvZiBwYWNrYWdlIGVuYWJsZXMgdXMgdG8gaGFuZGxlIG1vcmUgdGhhbiBv bmUga2VybmVsIGluCj4gKyAgIHRoZSBwcm9qZWN0Lgo+ICsKPiArLSAgKipiYXJlYm94Kio6IFBU WGRpc3QgY29tZXMgd2l0aCB0aGUgYWJpbGl0eSB0byBoYW5kbGUgb25lIGJvb3Rsb2FkZXIgaW4g aXRzCj4gKyAgIHBsYXRmb3JtLiBUaGlzIHR5cGUgb2YgcGFja2FnZSBlbmFibGVzIHVzIHRvIGhh bmRsZSBtb3JlIHRoYW4gb25lIGJvb3Rsb2FkZXIKPiArICAgaW4gdGhlIHByb2plY3QuCj4gKwo+ ICstICAqKmltYWdlLXRneioqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBjcmVhdGVzIGEgdGFyIGJh bGwgZnJvbSBhIGxpc3Qgb2YKPiArICAgcGFja2FnZXMuIEl0IGlzIG9mdGVuIHVzZXMgYXMgYW4g aW5wdXQgZm9yIG90aGVyIGltYWdlIHBhY2thZ2VzLgo+ICsKPiArLSAgKippbWFnZS1nZW5pbWFn ZSoqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBjYW4gaGFuZGxlIGFsbCBraW5kIG9mIGltYWdlCj4g KyAgIGdlbmVyYXRpb24gZm9yIGFsbW9zdCBldmVyeSB0YXJnZXQgaW5kZXBlbmRlbnQgb2YgaXRz IGNvbXBsZXhpdHkuCj4gKwo+ICstICAqKmJsc3BlYy1lbnRyeSoqOiBQVFhkaXN0IGNvbWVzIHdp dGggdGhlIGFiaWxpdHkgdG8gaGFuZGxlIG9uZSBib290c3BlYyBpbiBpdHMKPiArICAgcGxhdGZv cm0uIFRoaXMgdHlwZSBvZiBwYWNrYWdlIGVuYWJsZXMgdXMgdG8gaGFuZGxlIG1vcmUgdGhhbiBv bmUgYm9vdHNwZWMKPiArICAgaW4gdGhlIHByb2plY3QuCj4gKwo+ICsuLiBfZm9vX2V4YW1wbGU6 Cj4gKwo+ICtSdWxlIEZpbGUgQ3JlYXRpb24KPiArfn5+fn5+fn5+fn5+fn5+fn5+Cj4gKwo+ICtU byBjcmVhdGUgc3VjaCBhIG5ldyBwYWNrYWdlLCB3ZSBjcmVhdGUgYSBwcm9qZWN0IGxvY2FsIGBg cnVsZXMvYGAKPiArZGlyZWN0b3J5IGZpcnN0LiBUaGVuIHdlIHJ1bgo+ICsKPiArLi4gY29kZS1i bG9jazo6IHRleHQKPiArCj4gKyAgICAkIHB0eGRpc3QgbmV3cGFja2FnZSA8cGFja2FnZSB0eXBl Pgo+ICsKPiArSWYgd2Ugb21pdCB0aGUgPGBgcGFja2FnZSB0eXBlYGBcID4sIFBUWGRpc3Qgd2ls bCBsaXN0IGFsbCBhdmFpbGFibGUKPiArcGFja2FnZSB0eXBlcy4KPiArCj4gK0luIG91ciBmaXJz dCBleGFtcGxlLCB3ZSB3YW50IHRvIGFkZCBhIG5ldyB0YXJnZXQgdHlwZSBhcmNoaXZlIHBhY2th Z2UuCj4gK1doZW4gcnVubmluZyB0aGUKPiArCj4gKy4uIGNvZGUtYmxvY2s6OiB0ZXh0Cj4gKwo+ ICsgICAgJCBwdHhkaXN0IG5ld3BhY2thZ2UgdGFyZ2V0Cj4gKwo+ICtjb21tYW5kLCBQVFhkaXN0 IGFza3MgYSBmZXcgcXVlc3Rpb25zIGFib3V0IHRoaXMgcGFja2FnZS4gVGhpcwo+ICtpbmZvcm1h dGlvbiBpcyB0aGUgYmFzaWMgZGF0YSBQVFhkaXN0IG11c3Qga25vdyBhYm91dCB0aGUgcGFja2Fn ZS4KPiArCj4gKy4uIGNvZGUtYmxvY2s6OiB0ZXh0Cj4gKwo+ICsgICAgcHR4ZGlzdDogY3JlYXRp bmcgYSBuZXcgJ3RhcmdldCcgcGFja2FnZToKPiArCj4gKyAgICBwdHhkaXN0OiBlbnRlciBwYWNr YWdlIG5hbWUuLi4uLi4uOiBmb28KPiArICAgIHB0eGRpc3Q6IGVudGVyIHZlcnNpb24gbnVtYmVy Li4uLi46IDEuMS4wCj4gKyAgICBwdHhkaXN0OiBlbnRlciBVUkwgb2YgYmFzZWRpci4uLi4uOiBo dHRwOi8vd3d3LmZvby5jb20vZG93bmxvYWQvc3JjCj4gKyAgICBwdHhkaXN0OiBlbnRlciBzdWZm aXguLi4uLi4uLi4uLi4uOiB0YXIuZ3oKPiArICAgIHB0eGRpc3Q6IGVudGVyIHBhY2thZ2UgYXV0 aG9yLi4uLi46IE15IE5hbWUgPG1lQG15LW9yZy5jb20+Cj4gKyAgICBwdHhkaXN0OiBlbnRlciBw YWNrYWdlIHNlY3Rpb24uLi4uOiBwcm9qZWN0X3NwZWNpZmljCj4gKwo+ICtXaGF0IHdlIGhhdmUg dG8gYW5zd2VyOgo+ICsKPiArLSAgKipwYWNrYWdlIG5hbWUqKjogQXMgdGhpcyBraW5kIG9mIHBh Y2thZ2UgaGFuZGxlcyBhIHNvdXJjZSBhcmNoaXZlLAo+ICsgICB0aGUgY29ycmVjdCBhbnN3ZXIg aGVyZSBpcyB0aGUgYmFzZW5hbWUgb2YgdGhlIGFyY2hpdmXigJlzIGZpbGUgbmFtZS4KPiArICAg SWYgaXRzIGZ1bGwgbmFtZSBpcyBgYGZvby0xLjEuMC50YXIuZ3pgYCwgdGhlbiBgYGZvb2BgIGlz IHRoZQo+ICsgICBiYXNlbmFtZSB0byBlbnRlciBoZXJlLgo+ICsKPiArLSAgKip2ZXJzaW9uIG51 bWJlcioqOiBNb3N0IHNvdXJjZSBhcmNoaXZlcyBhcmUgdXNpbmcgYSByZWxlYXNlIG9yCj4gKyAg IHZlcnNpb24gbnVtYmVyIGluIHRoZWlyIGZpbGUgbmFtZS4gSWYgaXRzIGZ1bGwgbmFtZSBpcwo+ ICsgICBgYGZvby0xLjEuMC50YXIuZ3pgYCwgdGhlbiBgYDEuMS4wYGAgaXMgdGhlIHZlcnNpb24g bnVtYmVyIHRvIGVudGVyCj4gKyAgIGhlcmUuCj4gKwo+ICstICAqKlVSTCBvZiBiYXNlZGlyKio6 IFRoaXMgVVJMIHRlbGxzIFBUWGRpc3Qgd2hlcmUgdG8gZG93bmxvYWQgdGhlCj4gKyAgIHNvdXJj ZSBhcmNoaXZlIGZyb20gdGhlIHdlYiAoaWYgbm90IGFscmVhZHkgZG9uZSkuIElmIHRoZSBmdWxs IFVSTCB0bwo+ICsgICBkb3dubG9hZCB0aGUgYXJjaGl2ZSBpcwo+ICsgICBgYGh0dHA6Ly93d3cu Zm9vLmNvbS9kb3dubG9hZC9zcmMvZm9vLTEuMS4wLnRhci5nemBgLCB0aGUgYmFzZWRpcgo+ICsg ICBwYXJ0IGBgaHR0cDovL3d3dy5mb28uY29tL2Rvd25sb2FkL3NyY2BgIGlzIHRvIGJlIGVudGVy ZWQgaGVyZS4KPiArCj4gKy0gICoqc3VmZml4Kio6IEFyY2hpdmVzIGFyZSB1c2luZyB2YXJpb3Vz IGZvcm1hdHMgZm9yIGRpc3RyaWJ1dGlvbi4KPiArICAgUFRYZGlzdCB1c2VzIHRoZSAqc3VmZml4 KiBlbnRyeSB0byBzZWxlY3QgdGhlIG1hdGNoaW5nIGV4dHJhY3Rpb24KPiArICAgdG9vbC4gSWYg dGhlIGFyY2hpdmXigJlzIGZ1bGwgbmFtZSBpcyBgYGZvby0xLjEuMC50YXIuZ3pgYCwgdGhlbgo+ ICsgICBgYHRhci5nemBgIGlzIHRoZSBzdWZmaXggdG8gZW50ZXIgaGVyZS4KPiArCj4gKy0gICoq cGFja2FnZSBhdXRob3IqKjogSWYgd2UgaW50ZW5kIHRvIGNvbnRyaWJ1dGUgdGhpcyBuZXcgcGFj a2FnZSB0bwo+ICsgICBQVFhkaXN0IG1haW5saW5lLCB3ZSBzaG91bGQgYWRkIG91ciBuYW1lIGhl cmUuIFRoaXMgbmFtZSB3aWxsIGJlIHVzZWQKPiArICAgaW4gdGhlIGNvcHlyaWdodCBub3RlIG9m IHRoZSBydWxlIGZpbGUgYW5kIHdpbGwgYWxzbyBiZSBhZGRlZCB0byB0aGUKPiArICAgZ2VuZXJh dGVkIGlwa2cuIFdoZW4geW91IHJ1biBgYHB0eGRpc3Qgc2V0dXBgYCBwcmlvciB0byB0aGlzIGNh bGwsCj4gKyAgIHlvdSBjYW4gZW50ZXIgeW91ciBuYW1lIGFuZCB5b3VyIGVtYWlsIGFkZHJlc3Ms IHNvIFBUWGRpc3Qgd2lsbCB1c2UKPiArICAgaXQgYXMgdGhlIGRlZmF1bHQgKHZlcnkgaGFuZHkg aWYgeW91IGludGVuZCB0byBhZGQgbWFueSBuZXcKPiArICAgcGFja2FnZXMpLgo+ICsKPiArLSAg KipwYWNrYWdlIHNlY3Rpb24qKjogV2UgY2FuIGVudGVyIGhlcmUgdGhlIG1lbnUgc2VjdGlvbiBu YW1lIHdoZXJlCj4gKyAgIG91ciBuZXcgcGFja2FnZSBtZW51IGVudHJ5IHNob3VsZCBiZSBsaXN0 ZWQuIEluIHRoZSBmaXJzdCBzdGVwIHdlIGNhbgo+ICsgICBsZWF2ZSB0aGUgZGVmYXVsdCBuYW1l IHVuY2hhbmdlZC4gSXTigJlzIGEgc3RyaW5nIGluIHRoZSBtZW51IGZpbGUKPiArICAgb25seSwg c28gY2hhbmdpbmcgaXQgbGF0ZXIgb24gaXMgc3RpbGwgcG9zc2libGUuCj4gKwo+ICtNYWtlIGl0 IFdvcmsKPiArfn5+fn5+fn5+fn5+Cj4gKwo+ICtHZW5lcmF0aW5nIHRoZSBydWxlIGZpbGUgaXMg b25seSBvbmUgb2YgdGhlIHJlcXVpcmVkIHN0ZXBzIHRvIGdldCBhIG5ldwo+ICtwYWNrYWdlLiBU aGUgbmV4dCBzdGVwcyB0byBtYWtlIGl0IHdvcmsgYXJlIHRvIGNoZWNrIGlmIGFsbCBzdGFnZXMg YXJlCj4gK3dvcmtpbmcgYXMgZXhwZWN0ZWQgYW5kIHRvIHNlbGVjdCB0aGUgcmVxdWlyZWQgcGFy dHMgdG8gZ2V0IHRoZW0KPiAraW5zdGFsbGVkIGluIHRoZSB0YXJnZXQgcm9vdCBmaWxlc3lzdGVt LiBBbHNvIHdlIG11c3QgZmluZCBhIHJlYXNvbmFibGUKPiArbG9jYXRpb24gd2hlcmUgdG8gYWRk IG91ciBuZXcgbWVudSBlbnRyeSB0byBjb25maWd1cmUgdGhlIHBhY2thZ2UuCj4gKwo+ICtUaGUg Z2VuZXJhdGVkIHNrZWxldG9uIHN0YXJ0cyB0byBhZGQgdGhlIG5ldyBtZW51IGVudHJ5IGluIHRo ZSBtYWluCj4gK2NvbmZpZ3VyZSBtZW51IChpZiB3ZSBsZWZ0IHRoZSBzZWN0aW9uIG5hbWUgdW5j aGFuZ2VkKS4gUnVubmluZwo+ICtgYHB0eGRpc3QgbWVudWNvbmZpZ2BgIHdpbGwgc2hvdyBpdCBv biB0b3Agb2YgYWxsIG90aGVyIG1lbnVzIGVudHJpZXMuCj4gKwo+ICsuLiBpbXBvcnRhbnQ6OiAK PiArICBUbyBiZSBhYmxlIHRvIGltcGxlbWVudCBhbmQgdGVzdCBhbGwgdGhlIG90aGVyIHJlcXVp cmVkIHN0ZXBzIGZvciBhZGRpbmcKPiArICBhIG5ldyBwYWNrYWdlLCB3ZSBmaXJzdCBtdXN0IGVu YWJsZSB0aGUgcGFja2FnZSBmb3IgYnVpbGRpbmcuIChGaW5lCj4gKyAgdHVuaW5nIHRoZSBtZW51 IGNhbiBoYXBwZW4gbGF0ZXIgb24uKQo+ICsKPiArCj4gK1RoZSBydWxlIGZpbGUgc2tlbGV0b24g c3RpbGwgbGFja3Mgc29tZSBpbXBvcnRhbnQgaW5mb3JtYXRpb24uIExldOKAmXMKPiArdGFrZSBh IGxvb2sgaW50byBzb21lIG9mIHRoZSB0b3AgbGluZXMgb2YgdGhlIGdlbmVyYXRlZCBydWxlIGZp bGUKPiArYGAuL3J1bGVzL2Zvby5tYWtlYGA6Cj4gKwo+ICsuLiBjb2RlLWJsb2NrOjogbWFrZQo+ ICsKPiArICAgIEZPT19WRVJTSU9OCTo9IDEuMS4wCj4gKyAgICBGT09fTUQ1CTo9Cj4gKyAgICBG T08JCTo9IGZvby0kKEZPT19WRVJTSU9OKQo+ICsgICAgRk9PX1NVRkZJWAk6PSB0YXIuZ3oKPiAr ICAgIEZPT19VUkwJOj0gaHR0cDovL3d3dy5mb28uY29tL2Rvd25sb2FkL3NyYy8kKEZPTykuJChG T09fU1VGRklYKQo+ICsgICAgRk9PX1NPVVJDRQk6PSAkKFNSQ0RJUikvJChGT08pLiQoRk9PX1NV RkZJWCkKPiArICAgIEZPT19ESVIJOj0gJChCVUlMRERJUikvJChGT08pCj4gKyAgICBGT09fTElD RU5TRQk6PSB1bmtub3duCj4gKwo+ICtXZSBjYW4gZmluZCB0aGVzZSBsaW5lcyB3aXRoIGRpZmZl cmVudCBjb250ZW50IGluIG1vc3Qgb3IgYWxsIG9mIHRoZQo+ICtvdGhlciBydWxlIGZpbGVzIFBU WGRpc3QgY29tZXMgd2l0aC4gVXAgdG8gdGhlIHVuZGVybGluZSBjaGFyYWN0ZXIgaXMKPiArYWx3 YXlzIHRoZSBwYWNrYWdlIG5hbWUgYW5kIGFmdGVyIHRoZSB1bmRlcmxpbmUgY2hhcmFjdGVyIGlz IGFsd2F5cwo+ICtQVFhkaXN0IHNwZWNpZmljLiBXaGF0IGRvZXMgaXQgbWVhbjoKPiArCj4gKy0g IGBgKl9WRVJTSU9OYGAgYnJpbmdzIGluIHRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGUgcmVsZWFz ZSBhbmQgaXMgdXNlZAo+ICsgICBmb3IgdGhlIGRvd25sb2FkIGFuZCBJUEtHL09QS0cgcGFja2Fn ZSBnZW5lcmF0aW9uLgo+ICsKPiArLSAgYGAqX01ENWBgIHRvIGJlIHN1cmUgdGhlIGNvcnJlY3Qg cGFja2FnZSBoYXMgYmVlbiBkb3dubG9hZGVkLCBQVFhkaXN0Cj4gKyAgIGNoZWNrcyB0aGUgZ2l2 ZW4gTUQ1IHN1bSBhZ2FpbnN0IHRoZSBhcmNoaXZlIGNvbnRlbnQuIElmIGJvdGggc3VtcyBkbwo+ ICsgICBub3QgbWF0Y2gsIFBUWGRpc3QgcmVqZWN0cyB0aGUgYXJjaGl2ZSBhbmQgZmFpbHMgdGhl IGN1cnJlbnRseQo+ICsgICBydW5uaW5nIGJ1aWxkLgo+ICsKPiArLSAgYGAqX1NVRkZJWGBgIGRl ZmluZXMgdGhlIGFyY2hpdmUgdHlwZSwgdG8gbWFrZSBQVFhkaXN0IGNob29zaW5nIHRoZQo+ICsg ICBjb3JyZWN0IGV4dHJhY3RpbmcgdG9vbC4KPiArCj4gKy0gIGBgKl9VUkxgYCBkZWZpbmVzIHRo ZSBmdWxsIHF1YWxpZmllZCBVUkwgaW50byB0aGUgd2ViIGZvciBkb3dubG9hZC4gSWYKPiArICAg YWx0ZXJuYXRpdmUgZG93bmxvYWQgbG9jYXRpb25zIGFyZSBrbm93biwgdGhleSBjYW4gYmUgbGlz dGVkIGluIHRoaXMKPiArICAgdmFyaWFibGUsIGRlbGltaXRlciBjaGFyYWN0ZXIgaXMgdGhlIHNw YWNlLgo+ICsKPiArLSAgYGAqX1NPVVJDRWBgIHRlbGxzIFBUWGRpc3Qgd2hlcmUgdG8gc3RvcmUg dGhlIGRvd25sb2FkZWQgcGFja2FnZS4KPiArCj4gKy0gIGBgKl9ESVJgYCBwb2ludHMgdG8gdGhl IGRpcmVjdG9yeSB0aGlzIHBhY2thZ2Ugd2lsbCBiZSBidWlsdCBsYXRlciBvbgo+ICsgICBieSBQ VFhkaXN0Lgo+ICsKPiArLSAgYGAqX0xJQ0VOU0VgYCBlbmFibGVzIHRoZSB1c2VyIHRvIGdldCBh IGxpc3Qgb2YgbGljZW5zZXMgc2hlL2hlIGlzCj4gKyAgIHVzaW5nIGluIGhlci9oaXMgcHJvamVj dCAobGljZW5zZXMgb2YgdGhlIGVuYWJsZWQgcGFja2FnZXMpLgo+ICsKPiArQWZ0ZXIgZW5hYmxp bmcgdGhlIG1lbnUgZW50cnksIHdlIGNhbiBzdGFydCB0byBjaGVjayB0aGUgKmdldCogYW5kCj4g KypleHRyYWN0KiBzdGFnZXMsIGNhbGxpbmcgdGhlbSBtYW51YWxseSBvbmUgYWZ0ZXIgYW5vdGhl ci4KPiArCj4gKy4uIG5vdGU6OiBUaGUgc2hvd24gY29tbWFuZHMgYmVsb3cgZXhwZWN0IHRoYXQg UFRYZGlzdCBkb3dubG9hZHMgdGhlCj4gKyAgYXJjaGl2ZXMgdG8gYSBnbG9iYWwgZGlyZWN0b3J5 IG5hbWVkIGBgZ2xvYmFsX3NyY2BgLiBUaGlzIGlzIG5vdCB0aGUKPiArICBkZWZhdWx0IHNldHRp bmcsIGJ1dCB3ZSByZWNvbW1lbmQgdG8gdXNlIGEgZ2xvYmFsIGRpcmVjdG9yeSB0byBzaGFyZSBh bGwKPiArICBhcmNoaXZlcyBiZXR3ZWVuIFBUWGRpc3QgYmFzZWQgcHJvamVjdHMuIEFkdmFudGFn ZSBpcyBldmVyeSBkb3dubG9hZAo+ICsgIGhhcHBlbnMgb25seSBvbmNlLiBSZWZlciB0byB0aGUg YGBzZXR1cGBgIGNvbW1hbmQgUFRYZGlzdCBwcm92aWRlcy4KPiArCj4gKy4uIGNvZGUtYmxvY2s6 OiB0ZXh0Cj4gKwo+ICsgICAgJCBwdHhkaXN0IGdldCBmb28KPiArCj4gKyAgICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KPiArICAgIHRhcmdldDogZm9vLTEuMS4wLnRhci5nego+ICsgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKwo+ICsgICAgLS0yMDA5LTEyLTIxIDEwOjU0 OjQ1LS0gIGh0dHA6Ly93d3cuZm9vLmNvbS9kb3dubG9hZC9zcmMvZm9vLTEuMS4wLnRhci5nego+ ICsgICAgTGVuZ3RoOiAyOTExOTAgKDI4NEspIFthcHBsaWNhdGlvbi94LWd6aXBdCj4gKyAgICBT YXZpbmcgdG86IGAvZ2xvYmFsX3NyYy9mb28tMS4xLjAudGFyLmd6LlhYWFhPR25jWkEnCj4gKwo+ ICsgICAgMTAwJVs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT5dIDI5MSwx OTAgICAgICAxNzBLL3MgICBpbiAxLjdzCj4gKwo+ICsgICAgMjAwOS0xMi0yMSAxMDo1NDo0OCAo MTcwIEtCL3MpIC0gYC9nbG9iYWxfc3JjL2Zvby0xLjEuMC50YXIuZ3onIHNhdmVkIFsyOTExOTAv MjkxMTkwXQo+ICsKPiArVGhpcyBjb21tYW5kIHNob3VsZCBzdGFydCB0byBkb3dubG9hZCB0aGUg c291cmNlIGFyY2hpdmUuIElmIGl0IGZhaWxzLAo+ICt3ZSBzaG91bGQgY2hlY2sgb3VyIG5ldHdv cmsgY29ubmVjdGlvbiwgcHJveHkgc2V0dXAgb3IgaWYgdGhlIGdpdmVuIFVSTAo+ICtpbiB1c2Ug aXMgY29ycmVjdC4KPiArCj4gKy4uIG5vdGU6OiBTb21ldGltZXMgd2UgZG8gbm90IGtub3cgdGhl IGNvbnRlbnQgb2YgYWxsIHRoZSBvdGhlciB2YXJpYWJsZXMgaW4KPiArICB0aGUgcnVsZSBmaWxl LiBUbyBnZXQgYW4gaWRlYSB3aGF0IGNvbnRlbnQgYSB2YXJpYWJsZSBoYXMsIHdlIGNhbiBhc2sK PiArICBQVFhkaXN0IGFib3V0IGl0Ogo+ICsKPiArLi4gY29kZS1ibG9jazo6IHRleHQKPiArCj4g KyAgICAkIHB0eGRpc3QgcHJpbnQgRk9PX1VSTAo+ICsgICAgaHR0cDovL3d3dy5mb28uY29tL2Rv d25sb2FkL3NyYy9mb28tMS4xLjAudGFyLmd6Cj4gKwo+ICtUaGUgbmV4dCBzdGVwIHdvdWxkIGJl IHRvIGV4dHJhY3QgdGhlIGFyY2hpdmUuIEJ1dCBhcyBQVFhkaXN0IGNoZWNrcyB0aGUKPiArTUQ1 IHN1bSBpbiB0aGlzIGNhc2UsIHRoaXMgc3RlcCB3aWxsIGZhaWwsIGJlY2F1c2UgdGhlIGBgRk9P X01ENWBgCj4gK3ZhcmlhYmxlIGlzIHN0aWxsIGVtcHR5LiBMZXTigJlzIGZpbGwgaXQ6Cj4gKwo+ ICsuLiBjb2RlLWJsb2NrOjogdGV4dAo+ICsKPiArICAgICQgbWQ1c3VtIC9nbG9iYWxfc3JjL2Zv by0xLjEuMC50YXIuZ3oKPiArICAgIDlhMDk4NDBhYjc3NWExMzllYmIwMGY1N2E1ODdiNDQ3Cj4g Kwo+ICtUaGlzIHN0cmluZyBtdXN0IGJlIGFzc2lnbmVkIHRvIHRoZSBGT09fTUQ1IGluIG91ciBu ZXcgYGBmb28ubWFrZWBgCj4gK3J1bGUgZmlsZToKPiArCj4gKy4uIGNvZGUtYmxvY2s6OiB0ZXh0 Cj4gKwo+ICsgICAgRk9PX01ENQkJOj0gOWEwOTg0MGFiNzc1YTEzOWViYjAwZjU3YTU4N2I0NDcK PiArCj4gK1dlIGFyZSBub3cgcHJlcGFyZWQgZm9yIHRoZSBuZXh0IHN0ZXA6Cj4gKwo+ICsuLiBj b2RlLWJsb2NrOjogdGV4dAo+ICsKPiArICAgICQgcHR4ZGlzdCBleHRyYWN0IGZvbwo+ICsKPiAr ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAgICB0YXJnZXQ6IGZvby5leHRyYWN0Cj4g KyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsKPiArICAgIGV4dHJhY3Q6IGFyY2hpdmU9 L2dsb2JhbF9zcmMvZm9vLTEuMS4wLnRhci5nego+ICsgICAgZXh0cmFjdDogZGVzdD0vaG9tZS9q YmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQKPiArICAgIFBBVENISU46IHBhY2tldD1mb28tMS4x LjAKPiArICAgIFBBVENISU46IGRpcj0vaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQv Zm9vLTEuMS4wCj4gKyAgICBQQVRDSElOOiBubyBwYXRjaGVzIGZvciBmb28tMS4xLjAgYXZhaWxh YmxlCj4gKyAgICBGaXhpbmcgdXAgL2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zv by0xLjEuMC9jb25maWd1cmUKPiArICAgIGZpbmlzaGVkIHRhcmdldCBmb28uZXh0cmFjdAo+ICsK PiArSW4gdGhpcyBleGFtcGxlIHdlIGV4cGVjdCBhbiBhdXRvdG9vbGl6ZWQgc291cmNlIHBhY2th Z2UuIEUuZy4gdG8KPiArcHJlcGFyZSB0aGUgYnVpbGQsIHRoZSBhcmNoaXZlIGNvbWVzIHdpdGgg YSBgYGNvbmZpZ3VyZWBgIHNjcmlwdC4gVGhpcwo+ICtpcyB0aGUgZGVmYXVsdCBjYXNlIGZvciBQ VFhkaXN0LiBTbywgdGhlcmUgaXMgbm8gbmVlZCB0byBtb2RpZnkgdGhlIHJ1bGUKPiArZmlsZSBh bmQgd2UgY2FuIHNpbXBseSBydW46Cj4gKwo+ICsuLiBjb2RlLWJsb2NrOjogdGV4dAo+ICsKPiAr ICAgICQgcHR4ZGlzdCBwcmVwYXJlIGZvbwo+ICsKPiArICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4gKyAgICB0YXJnZXQ6IGZvby5wcmVwYXJlCj4gKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICsKPiArICAgIFsuLi5dCj4gKwo+ICsgICAgY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5 cGUuLi4gaTY4Ni1ob3N0LWxpbnV4LWdudQo+ICsgICAgY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlw ZS4uLiB8cHR4ZGlzdENvbXBpbGVyTmFtZXwKPiArICAgIGNoZWNraW5nIHdoZXRoZXIgdG8gZW5h YmxlIG1haW50YWluZXItc3BlY2lmaWMgcG9ydGlvbnMgb2YgTWFrZWZpbGVzLi4uIG5vCj4gKyAg ICBjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uIC91c3IvYmluL2luc3Rh bGwgLWMKPiArICAgIGNoZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4u LiB5ZXMKPiArICAgIGNoZWNraW5nIGZvciBhIHRocmVhZC1zYWZlIG1rZGlyIC1wLi4uIC9iaW4v bWtkaXIgLXAKPiArICAgIGNoZWNraW5nIGZvciBnYXdrLi4uIGdhd2sKPiArICAgIGNoZWNraW5n IHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkuLi4geWVzCj4gKyAgICBjaGVja2luZyBmb3IgfHB0 eGRpc3RDb21waWxlck5hbWV8LXN0cmlwLi4uIHxwdHhkaXN0Q29tcGlsZXJOYW1lfC1zdHJpcAo+ ICsgICAgY2hlY2tpbmcgZm9yIHxwdHhkaXN0Q29tcGlsZXJOYW1lfC1nY2MuLi4gfHB0eGRpc3RD b21waWxlck5hbWV8LWdjYwo+ICsgICAgY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBv dXRwdXQgZmlsZSBuYW1lLi4uIGEub3V0Cj4gKwo+ICsgICAgWy4uLl0KPiArCj4gKyAgICBjb25m aWd1cmU6IGNyZWF0aW5nIC4vY29uZmlnLnN0YXR1cwo+ICsgICAgY29uZmlnLnN0YXR1czogY3Jl YXRpbmcgTWFrZWZpbGUKPiArICAgIGNvbmZpZy5zdGF0dXM6IGNyZWF0aW5nIHBwYV9wcm90b2Nv bC9NYWtlZmlsZQo+ICsgICAgY29uZmlnLnN0YXR1czogY3JlYXRpbmcgY29uZmlnLmgKPiArICAg IGNvbmZpZy5zdGF0dXM6IGV4ZWN1dGluZyBkZXBmaWxlcyBjb21tYW5kcwo+ICsgICAgZmluaXNo ZWQgdGFyZ2V0IGZvby5wcmVwYXJlCj4gKwo+ICtBdCB0aGlzIHN0YWdlIHRoaW5ncyBjYW4gZmFp bDoKPiArCj4gKy0gIEEgd3Jvbmcgb3Igbm8gTUQ1IHN1bSB3YXMgZ2l2ZW4KPiArCj4gKy0gIFRo ZSBgYGNvbmZpZ3VyZWBgIHNjcmlwdCBpcyBub3QgY3Jvc3MgY29tcGlsZSBhd2FyZQo+ICsKPiAr LSAgVGhlIHBhY2thZ2UgZGVwZW5kcyBvbiBleHRlcm5hbCBjb21wb25lbnRzIChsaWJyYXJpZXMg Zm9yIGV4YW1wbGUpCj4gKwo+ICtJZiB0aGUgYGBjb25maWd1cmVgYCBzY3JpcHQgaXMgbm90IGNy b3NzIGNvbXBpbGUgYXdhcmUsIHdlIGFyZSBvdXQgb2YKPiArbHVjay4gV2UgbXVzdCBwYXRjaCB0 aGUgc291cmNlIGFyY2hpdmUgaW4gdGhpcyBjYXNlIHRvIG1ha2UgaXQgd29yay4KPiArUmVmZXIg dG8gdGhlIHNlY3Rpb24gOnJlZjpgY29uZmlndXJlX3JlYnVpbGRgIG9uIGhvdyB0byB1c2UKPiAr UFRYZGlzdOKAmXMgZmVhdHVyZXMgdG8gc2ltcGxpZnkgdGhpcyB0YXNrLgo+ICtJZiB0aGUgcGFj a2FnZSBkZXBlbmRzIG9uIGV4dGVybmFsIGNvbXBvbmVudHMsIHRoZXNlIGNvbXBvbmVudHMgbWln aHQKPiArYmUgYWxyZWFkeSBwYXJ0IG9mIFBUWGRpc3QuIEluIHRoaXMgY2FzZSB3ZSBqdXN0IGhh dmUgdG8gYWRkIHRoaXMKPiArZGVwZW5kZW5jeSBpbnRvIHRoZSBtZW51IGZpbGUgYW5kIHdlIGFy ZSBkb25lLiBCdXQgaWYgUFRYZGlzdCBjYW5ub3QKPiArZnVsZmlsbCB0aGlzIGRlcGVuZGVuY3ks IHdlIGFsc28gbXVzdCBhZGQgaXQgYXMgYSBzZXBhcmF0ZSBwYWNrYWdlCj4gK2ZpcnN0Lgo+ICsK PiArSWYgdGhlICpwcmVwYXJlKiBzdGFnZSBoYXMgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5LCB0aGUg bmV4dCBzdGVwIGlzIHRvCj4gK2NvbXBpbGUgdGhlIHBhY2thZ2UuCj4gKwo+ICsuLiBjb2RlLWJs b2NrOjogdGV4dAo+ICsKPiArICAgICQgcHR4ZGlzdCBjb21waWxlIGZvbwo+ICsKPiArICAgIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKyAgICB0YXJnZXQ6IGZvby5jb21waWxlCj4gKyAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsKPiArICAgIG1ha2VbMV06IEVudGVyaW5nIGRpcmVj dG9yeSBgL2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zvby0xLjEuMCcKPiArICAg IG1ha2UgIGFsbC1yZWN1cnNpdmUKPiArICAgIG1ha2VbMl06IEVudGVyaW5nIGRpcmVjdG9yeSBg L2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zvby0xLjEuMCcKPiArICAgIG1ha2Vb M106IEVudGVyaW5nIGRpcmVjdG9yeSBgL2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0 L2Zvby0xLjEuMCcKPiArCj4gKyAgICBbLi4uXQo+ICsKPiArICAgIG1ha2VbM106IExlYXZpbmcg ZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wJwo+ ICsgICAgbWFrZVsyXTogTGVhdmluZyBkaXJlY3RvcnkgYC9ob21lL2piZS9teV9uZXdfcHJqL2J1 aWxkLXRhcmdldC9mb28tMS4xLjAnCj4gKyAgICBtYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSBg L2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zvby0xLjEuMCcKPiArICAgIGZpbmlz aGVkIHRhcmdldCBmb28uY29tcGlsZQo+ICsKPiArQXQgdGhpcyBzdGFnZSB0aGluZ3MgY2FuIGZh aWw6Cj4gKwo+ICstICBUaGUgYnVpbGQgc3lzdGVtIGlzIG5vdCBjcm9zcyBjb21waWxlIGF3YXJl IChpdCB0cmllcyB0byBleGVjdXRlIGp1c3QKPiArICAgY3JlYXRlZCB0YXJnZXQgYmluYXJpZXMg Zm9yIGV4YW1wbGUpCj4gKwo+ICstICBUaGUgcGFja2FnZSBkZXBlbmRzIG9uIGV4dGVybmFsIGNv bXBvbmVudHMgKGxpYnJhcmllcyBmb3IgZXhhbXBsZSkKPiArICAgbm90IGRldGVjdGVkIGJ5IGBg Y29uZmlndXJlYGAKPiArCj4gKy0gIFNvdXJjZXMgYXJlIGlnbm9yaW5nIHRoZSBlbmRpYW5uZXNz IG9mIHNvbWUgYXJjaGl0ZWN0dXJlcyBvciB1c2luZwo+ICsgICBoZWFkZXIgZmlsZXMgZnJvbSB0 aGUgYnVpbGQgaG9zdCBzeXN0ZW0gKGZyb20gYGAvdXNyL2luY2x1ZGVgYCBmb3IKPiArICAgZXhh bXBsZSkKPiArCj4gKy0gIFRoZSBsaW5rZXIgdXNlcyBsaWJyYXJpZXMgZnJvbSB0aGUgYnVpbGQg aG9zdCBzeXN0ZW0gKGZyb20KPiArICAgYGAvdXNyL2xpYmBgIGZvciBleGFtcGxlKSBieSBhY2Np ZGVudAo+ICsKPiArSW4gYWxsIG9mIHRoZXNlIGNhc2VzIHdlIG11c3QgcGF0Y2ggdGhlIHNvdXJj ZXMgdG8gbWFrZSB0aGVtIHdvcmsuIFJlZmVyCj4gK3RvIHNlY3Rpb24gOnJlZjpgcGF0Y2hpbmdf cGFja2FnZXNgIG9uIGhvdyB0byB1c2UgUFRYZGlzdOKAmXMKPiArZmVhdHVyZXMgdG8gc2ltcGxp ZnkgdGhpcyB0YXNrLgo+ICsKPiArSW4gdGhpcyBleGFtcGxlIHdlIGV4cGVjdCB0aGUgYmVzdCBj YXNlOiBldmVyeXRoaW5nIHdlbnQgZmluZSwgZXZlbiBmb3IKPiArY3Jvc3MgY29tcGlsaW5nLiBT bywgd2UgY2FuIGNvbnRpbnVlIHdpdGggdGhlIG5leHQgc3RhZ2U6ICppbnN0YWxsKgo+ICsKPiAr Li4gY29kZS1ibG9jazo6IHRleHQKPiArCj4gKyAgICAkIHB0eGRpc3QgaW5zdGFsbCBmb28KPiAr Cj4gKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgICAgdGFyZ2V0OiBmb28uaW5zdGFs bAo+ICsgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArCj4gKyAgICBtYWtlWzFdOiBFbnRl cmluZyBkaXJlY3RvcnkgYC9ob21lL2piZS9teV9uZXdfcHJqL2J1aWxkLXRhcmdldC9mb28tMS4x LjAnCj4gKyAgICBtYWtlWzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC9ob21lL2piZS9teV9uZXdf cHJqL2J1aWxkLXRhcmdldC9mb28tMS4xLjAnCj4gKyAgICBtYWtlWzNdOiBFbnRlcmluZyBkaXJl Y3RvcnkgYC9ob21lL2piZS9teV9uZXdfcHJqL2J1aWxkLXRhcmdldC9mb28tMS4xLjAnCj4gKyAg ICB0ZXN0IC16ICIvdXNyL2JpbiIgfHwgL2Jpbi9ta2RpciAtcCAiL2hvbWUvamJlL215X25ld19w cmovYnVpbGQtdGFyZ2V0L2Zvby0xLjEuMC91c3IvYmluIgo+ICsgICAgICAvdXNyL2Jpbi9pbnN0 YWxsIC1jICdmb28nICcvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4w L3Vzci9iaW4vZm9vJwo+ICsgICAgbWFrZVszXTogTGVhdmluZyBkaXJlY3RvcnkgYC9ob21lL2pi ZS9teV9uZXdfcHJqL2J1aWxkLXRhcmdldC9mb28tMS4xLjAnCj4gKyAgICBtYWtlWzJdOiBMZWF2 aW5nIGRpcmVjdG9yeSBgL2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zvby0xLjEu MCcKPiArICAgIG1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3By ai9idWlsZC10YXJnZXQvZm9vLTEuMS4wJwo+ICsgICAgZmluaXNoZWQgdGFyZ2V0IGZvby5pbnN0 YWxsCj4gKwo+ICsgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgICAgdGFyZ2V0 OiBmb28uaW5zdGFsbC5wb3N0Cj4gKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4g Kwo+ICsgICAgZmluaXNoZWQgdGFyZ2V0IGZvby5pbnN0YWxsLnBvc3QKPiArCj4gK1RoaXMgKmlu c3RhbGwqIHN0YWdlIGRvZXMgbm90IGluc3RhbGwgYW55dGhpbmcgdG8gdGhlIHRhcmdldCByb290 Cj4gK2ZpbGVzeXN0ZW0uIEl0IGlzIG1vc3RseSBpbnRlbmRlZCB0byBpbnN0YWxsIGxpYnJhcmll cyBhbmQgaGVhZGVyIGZpbGVzCj4gK290aGVyIHByb2dyYW1zIHNob3VsZCBsaW5rIGFnYWluc3Qg bGF0ZXIgb24uCj4gKwo+ICtUaGUgbGFzdCBzdGFnZSDigJMgKnRhcmdldGluc3RhbGwqIOKAkyBp cyB0aGUgb25lIHRoYXQgZGVmaW5lcyB0aGUgcGFja2FnZeKAmXMKPiArY29tcG9uZW50cyB0byBi ZSBmb3J3YXJkZWQgdG8gdGhlIHRhcmdldOKAmXMgcm9vdCBmaWxlc3lzdGVtLiBEdWUgdG8gdGhl Cj4gK2Fic2VuY2Ugb2YgYSBnZW5lcmljIHdheSwgdGhpcyBpcyB0aGUgdGFzayBvZiB0aGUgZGV2 ZWxvcGVyLiBTbywgYXQgdGhpcwo+ICtwb2ludCBvZiB0aW1lIHdlIG11c3QgcnVuIG91ciBmYXZv dXJpdGUgZWRpdG9yIGFnYWluIGFuZCBtb2RpZnkgb3VyIG5ldwo+ICtydWxlIGZpbGUgYGAuL3J1 bGVzL2Zvby5tYWtlYGAuCj4gKwo+ICtUaGUgc2tlbGV0b24gZm9yIHRoZSAqdGFyZ2V0aW5zdGFs bCogc3RhZ2UgbG9va3MgbGlrZSB0aGlzOgo+ICsKPiArLi4gY29kZS1ibG9jazo6IG1ha2UKPiAr Cj4gKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArICAgICMgVGFyZ2V0LUluc3RhbGwKPiAr ICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsKPiArICAgICQoU1RBVEVESVIpL2Zvby50YXJn ZXRpbnN0YWxsOgo+ICsgICAgCUAkKGNhbGwgdGFyZ2V0aW5mbykKPiArCj4gKyAgICAJQCQoY2Fs bCBpbnN0YWxsX2luaXQsICBmb28pCj4gKyAgICAJQCQoY2FsbCBpbnN0YWxsX2ZpeHVwLCBmb28s UEFDS0FHRSxmb28pCj4gKyAgICAJQCQoY2FsbCBpbnN0YWxsX2ZpeHVwLCBmb28sUFJJT1JJVFks b3B0aW9uYWwpCj4gKyAgICAJQCQoY2FsbCBpbnN0YWxsX2ZpeHVwLCBmb28sVkVSU0lPTiwkKEZP T19WRVJTSU9OKSkKPiArICAgIAlAJChjYWxsIGluc3RhbGxfZml4dXAsIGZvbyxTRUNUSU9OLGJh c2UpCj4gKyAgICAJQCQoY2FsbCBpbnN0YWxsX2ZpeHVwLCBmb28sQVVUSE9SLCJNeSBOYW1lIDxt ZUBteS1vcmcuY29tPiIpCj4gKyAgICAJQCQoY2FsbCBpbnN0YWxsX2ZpeHVwLCBmb28sREVQRU5E UywpCj4gKyAgICAJQCQoY2FsbCBpbnN0YWxsX2ZpeHVwLCBmb28sREVTQ1JJUFRJT04sbWlzc2lu ZykKPiArCj4gKyAgICAJQCQoY2FsbCBpbnN0YWxsX2NvcHksIGZvbywgMCwgMCwgMDc1NSwgJChG T09fRElSKS9mb29iYXIsIC9kZXYvbnVsbCkKPiArCj4gKyAgICAJQCQoY2FsbCBpbnN0YWxsX2Zp bmlzaCwgZm9vKQo+ICsgICAgCUAkKGNhbGwgdG91Y2gpCj4gKwo+ICtUaGUg4oCcaGVhZGVy4oCd IG9mIHRoaXMgc3RhZ2UgZGVmaW5lcyBzb21lIGluZm9ybWF0aW9uIElQS0cgbmVlZHMuIFRoZQo+ ICtpbXBvcnRhbnQgcGFydCB0aGF0IHdlIG11c3QgbW9kaWZ5IGlzIHRoZSBjYWxsIHRvIHRoZSBg YGluc3RhbGxfY29weWBgCj4gK21hY3JvIChyZWZlciB0byBzZWN0aW9uIDpyZWY6YHJlZmVyZW5j ZV9tYWNyb3NgIGZvciBtb3JlIGRldGFpbHMKPiArYWJvdXQgdGhpcyBraW5kIG9mIG1hY3Jvcyku IFRoaXMgY2FsbCBpbnN0cnVjdHMgUFRYZGlzdCB0byBpbmNsdWRlIHRoZQo+ICtnaXZlbiBmaWxl ICh3aXRoIFVJRCwgR0lEIGFuZCBwZXJtaXNzaW9ucykgaW50byB0aGUgSVBLRywgd2hpY2ggbWVh bnMgdG8KPiAraW5zdGFsbCB0aGlzIGZpbGUgdG8gdGhlIHRhcmdldOKAmXMgcm9vdCBmaWxlc3lz dGVtLgo+ICsKPiArRnJvbSB0aGUgcHJldmlvdXMgKmluc3RhbGwqIHN0YWdlIHdlIGtub3cgdGhp cyBwYWNrYWdlIGluc3RhbGxzIGFuCj4gK2V4ZWN1dGFibGUgY2FsbGVkIGBgZm9vYGAgdG8gbG9j YXRpb24gYGAvdXNyL2JpbmBgLiBXZSBjYW4gZG8gdGhlIHNhbWUKPiArZm9yIG91ciB0YXJnZXQg YnkgY2hhbmdpbmcgdGhlICppbnN0YWxsXF9jb3B5KiBsaW5lIHRvOgo+ICsKPiArLi4gY29kZS1i bG9jazo6IG5vbmUKPiArCj4gKyAgICBAJChjYWxsIGluc3RhbGxfY29weSwgZm9vLCAwLCAwLCAw NzU1LCAkKEZPT19ESVIpL2ZvbywgL3Vzci9iaW4vZm9vKQo+ICsKPiArVG8gY2hlY2sgaXQsIHdl IGp1c3QgcnVuOgo+ICsKPiArLi4gY29kZS1ibG9jazo6IHRleHQKPiArCj4gKyAgICAkIHB0eGRp c3QgdGFyZ2V0aW5zdGFsbCBmb28KPiArCj4gKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICsgICAgdGFyZ2V0OiBmb28udGFyZ2V0aW5zdGFsbAo+ICsgICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KPiArCj4gKyAgICBpbnN0YWxsX2luaXQ6ICAgcHJlcGFyaW5nIGZv ciBpbWFnZSBjcmVhdGlvbi4uLgo+ICsgICAgaW5zdGFsbF9pbml0OiAgIEBBUkNIQCAtPiBpMzg2 IC4uLiBkb25lCj4gKyAgICBpbnN0YWxsX2luaXQ6ICAgcHJlaW5zdCBub3QgYXZhaWxhYmxlCj4g KyAgICBpbnN0YWxsX2luaXQ6ICAgcG9zdGluc3Qgbm90IGF2YWlsYWJsZQo+ICsgICAgaW5zdGFs bF9pbml0OiAgIHByZXJtIG5vdCBhdmFpbGFibGUKPiArICAgIGluc3RhbGxfaW5pdDogICBwb3N0 cm0gbm90IGF2YWlsYWJsZQo+ICsgICAgaW5zdGFsbF9maXh1cDogIEBQQUNLQUdFQCAtPiBmb28g Li4uIGRvbmUuCj4gKyAgICBpbnN0YWxsX2ZpeHVwOiAgQFBSSU9SSVRZQCAtPiBvcHRpb25hbCAu Li4gZG9uZS4KPiArICAgIGluc3RhbGxfZml4dXA6ICBAVkVSU0lPTkAgLT4gMS4xLjAgLi4uIGRv bmUuCj4gKyAgICBpbnN0YWxsX2ZpeHVwOiAgQFNFQ1RJT05AIC0+IGJhc2UgLi4uIGRvbmUuCj4g KyAgICBpbnN0YWxsX2ZpeHVwOiAgQEFVVEhPUkAgLT4gIk15IE5hbWUgPG1lXEBteS1vcmcuY29t PiIgLi4uIGRvbmUuCj4gKyAgICBpbnN0YWxsX2ZpeHVwOiAgQERFU0NSSVBUSU9OQCAtPiBtaXNz aW5nIC4uLiBkb25lLgo+ICsgICAgaW5zdGFsbF9jb3B5Ogo+ICsgICAgICBzcmM9L2hvbWUvamJl L215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zvby0xLjEuMC9mb28KPiArICAgICAgZHN0PS91c3Iv YmluL2Zvbwo+ICsgICAgICBvd25lcj0wCj4gKyAgICAgIGdyb3VwPTAKPiArICAgICAgcGVybWlz c2lvbnM9MDc1NQo+ICsgICAgeHBrZ19maW5pc2g6ICAgIGNvbGxlY3RpbmcgbGljZW5zZSAodW5r bm93bikgLi4uIGRvbmUuCj4gKyAgICB4cGtnX2ZpbmlzaDogICAgY3JlYXRpbmcgaXBrZyBwYWNr YWdlIC4uLiBkb25lLgo+ICsgICAgZmluaXNoZWQgdGFyZ2V0IGZvby50YXJnZXRpbnN0YWxsCj4g Kwo+ICsgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsgICAgdGFyZ2V0 OiBmb28udGFyZ2V0aW5zdGFsbC5wb3N0Cj4gKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCj4gKwo+ICsgICAgZmluaXNoZWQgdGFyZ2V0IGZvby50YXJnZXRpbnN0YWxsLnBv c3QKPiArCj4gK0FmdGVyIHRoaXMgY29tbWFuZCwgdGhlIHRhcmdldOKAmXMgcm9vdCBmaWxlc3lz dGVtIGNvbnRhaW5zIGEgZmlsZSBjYWxsZWQKPiArYGAvdXNyL2Jpbi9mb29gYCBvd25lZCBieSBy b290LCBpdHMgZ3JvdXAgaXMgYWxzbyByb290IGFuZCBldmVyeW9uZSBoYXMKPiArZXhlY3V0aW9u IHBlcm1pc3Npb25zLCBidXQgb25seSB0aGUgdXNlciByb290IGhhcyB3cml0ZSBwZXJtaXNzaW9u cy4KPiArCj4gK09uZSBsYXN0IHRhc2sgb2YgdGhpcyBwb3J0IGlzIHN0aWxsIG9wZW46IEEgcmVh c29uYWJsZSBsb2NhdGlvbiBmb3IKPiArdGhlIG5ldyBtZW51IGVudHJ5IGluIFBUWGRpc3TigJlz IG1lbnUgaGllcmFyY2h5LiBQVFhkaXN0IGFycmFuZ2VzIGl0cwo+ICttZW51cyBvbiB0aGUgbWVh bmluZyBvZiBlYWNoIHBhY2thZ2UuIElzIGl0IGEgbmV0d29yayByZWxhdGVkIHRvb2w/IE9yCj4g K2Egc2NyaXB0aW5nIGxhbmd1YWdlPyBPciBhIGdyYXBoaWNhbCBhcHBsaWNhdGlvbj8KPiArRWFj aCBvZiB0aGVzZSBnbG9iYWwgbWVhbmluZ3MgaGFzIGl0cyBvd24gc3VibWVudSwgd2hlcmUgd2Ug Y2FuIGFkZAo+ICtvdXIgbmV3IGVudHJ5IHRvLiBXZSBqdXN0IGhhdmUgdG8gZWRpdCB0aGUgaGVh ZCBvZiBvdXIgbmV3IG1lbnUgZmlsZQo+ICtgYC4vcnVsZXMvZm9vLmluYGAgdG8gYWRkIGl0IHRv IGEgc3BlY2lmaWMgZ2xvYmFsIG1lbnUuIElmIG91ciBuZXcKPiArcGFja2FnZSBpcyBhIG5ldHdv cmsgcmVsYXRlZCB0b29sLCB0aGUgaGVhZCBvZiB0aGUgbWVudSBmaWxlIHNob3VsZAo+ICtsb29r IGxpa2U6Cj4gKwo+ICsuLiBjb2RlLWJsb2NrOjoga2NvbmZpZwo+ICsKPiArICAgICMjIFNFQ1RJ T049bmV0d29ya2luZwo+ICsKPiArV2UgY2FuIGdyZXAgdGhyb3VnaCB0aGUgb3RoZXIgbWVudSBm aWxlcyBmcm9tIHRoZSBQVFhkaXN0IG1haW4KPiAraW5zdGFsbGF0aW9uIGBgcnVsZXMvYGAgZGly ZWN0b3J5IHRvIGdldCBhbiBpZGVhIHdoYXQgc2VjdGlvbiBuYW1lcyBhcmUKPiArYXZhaWxhYmxl Ogo+ICsKPiArLi4gY29kZS1ibG9jazo6IHRleHQKPiArCj4gKyAgICBydWxlcy8gJCBmaW5kIC4g LW5hbWUgXCouaW4gfCB4YXJncyBncmVwICIjIyBTRUNUSU9OIgo+ICsgICAgLi9hY3BpZC5pbjoj IyBTRUNUSU9OPXNoZWxsX2FuZF9jb25zb2xlCj4gKyAgICAuL2Fsc2EtbGliLmluOiMjIFNFQ1RJ T049c3lzdGVtX2xpYnJhcmllcwo+ICsgICAgLi9hbHNhLXV0aWxzLmluOiMjIFNFQ1RJT049bXVs dGltZWRpYV9zb3VuZAo+ICsgICAgLi9hcGFjaGUyLmluOiMjIFNFQ1RJT049bmV0d29ya2luZwo+ ICsgICAgLi9hcGFjaGUyX21vZF9weXRob24uaW46IyMgU0VDVElPTj1uZXR3b3JraW5nCj4gKyAg ICBbLi4uXQo+ICsgICAgLi94a2V5Ym9hcmQtY29uZmlnLmluOiMjIFNFQ1RJT049bXVsdGltZWRp YV94b3JnX2RhdGEKPiArICAgIC4veG9yZy1hcHAteGV2LmluOiMjIFNFQ1RJT049bXVsdGltZWRp YV94b3JnX2FwcAo+ICsgICAgLi94b3JnLWFwcC14cmFuZHIuaW46IyMgU0VDVElPTj1tdWx0aW1l ZGlhX3hvcmdfYXBwCj4gKyAgICAuL2hvc3QtZWdnZGJ1cy5pbjojIyBTRUNUSU9OPWhvc3R0b29s c19ub3Byb21wdAo+ICsgICAgLi9saWJzc2gyLmluOiMjIFNFQ1RJT049bmV0d29ya2luZwo+ICsK PiArUG9ydGluZyBhIG5ldyBwYWNrYWdlIHRvIFBUWGRpc3QgaXMgKGFsbW9zdCkgZmluaXNoZWQg bm93Lgo+ICsKPiArVG8gY2hlY2sgaXQgcmlnaHQgYXdheSwgd2Ugc2ltcGx5IHJ1biB0aGVzZSB0 d28gY29tbWFuZHM6Cj4gKwo+ICsuLiBjb2RlLWJsb2NrOjogdGV4dAo+ICsKPiArICAgICQgcHR4 ZGlzdCBjbGVhbiBmb28KPiArICAgIHJtIC1yZiAvaG9tZS9qYmUvbXlfbmV3X3Byai9zdGF0ZS9m b28uKgo+ICsgICAgcm0gLXJmIC9ob21lL2piZS9teV9uZXdfcHJqL3BhY2thZ2VzL2Zvb18qCj4g KyAgICBybSAtcmYgL2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zvby0xLjEuMAo+ ICsgICAgJCBwdHhkaXN0IHRhcmdldGluc3RhbGwgZm9vCj4gKwo+ICsgICAgWy4uLl0KPiArCj4g Ky4uIGltcG9ydGFudDo6IERpc2NvdmVyIHNvbWVob3cgaGlkZGVuIGRlcGVuZGVuY2llcyB3aXRo IG9uZSBtb3JlIGxhc3QgY2hlY2shCj4gKwo+ICtVcCB0byB0aGlzIHBvaW50IGFsbCB0aGUgZGV2 ZWxvcG1lbnQgb2YgdGhlIG5ldyBwYWNrYWdlIHdhcyBkb25lIGluIGFuIGFscmVhZHkKPiArYnVp bHQgQlNQLiBEb2luZyBzbyBzb21ldGltZXMgc29tZWhvdyBoaWRkZW4gZGVwZW5kZW5jaWVzIGNh bm5vdCBiZSBzZWVuOgo+ICtldmVyeXRoaW5nIHNlZW1zIGZpbmUsIHRoZSBuZXcgcGFja2FnZSBi dWlsZHMgYWx3YXlzIHN1Y2Nlc3NmdWxseSBhbmQgdGhlCj4gK3Jlc3VsdHMgYXJlIHdvcmtpbmcg b24gdGhlIHRhcmdldC4KPiArCj4gK1NvIHRvIGNoZWNrIGZvciB0aGlzIGtpbmQgb2YgZGVwZW5k ZW5jaWVzIHRoZXJlIGlzIHN0aWxsIG9uZSBtb3JlIGZpbmFsIGNoZWNrCj4gK3RvIGRvIChldmVu IGlmIGl0cyBib3JpbmcgYW5kIHRha2VzIHRpbWUpOgo+ICsKPiArLi4gY29kZS1ibG9jazo6IHRl eHQKPiArCj4gKyAgICAkIHB0eGRpc3QgY2xlYW4KPiArICAgIFsuLi5dCj4gKyAgICAkIHB0eGRp c3QgdGFyZ2V0aW5zdGFsbCBmb28KPiArICAgIFsuLi5dCj4gKwo+ICtUaGlzIHdpbGwgcmUtc3Rh cnQgd2l0aCBhICoqY2xlYW4qKiBCU1AgYW5kIGJ1aWxkcyBleGFjdGx5IHRoZSBuZXcgcGFja2Fn ZSBhbmQKPiAraXRzIChrbm93bikgZGVwZW5kZW5jaWVzLiBJZiB0aGlzIGJ1aWxkcyBzdWNjZXNz ZnVsbHkgYXMgd2VsbCB3ZSBhcmUgcmVhbGx5IGRvbmUKPiArd2l0aCB0aGUgbmV3IHBhY2thZ2Uu Cj4gKwo+ICtTb21lIE5vdGVzIGFib3V0IExpY2Vuc2VzCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KPiArCj4gK1RoZSBhbHJlYWR5IG1lbnRpb25lZCBydWxlIHZhcmlhYmxlIGBgKl9MSUNF TlNFYGAgKGUuZy4gYGBGT09fTElDRU5TRWBgIGluIG91cgo+ICtleGFtcGxlKSBpcyB2ZXJ5IGlt cG9ydGFudCBhbmQgbXVzdCBiZSBmaWxsZWQgYnkgdGhlIGRldmVsb3BlciBvZiB0aGUgcGFja2Fn ZS4KPiArTWFueSBsaWNlbnNlcyBicmluZyBpbiBvYmxpZ2F0aW9ucyB1c2luZyB0aGUgY29ycmVz cG9uZGluZyBwYWNrYWdlICgqYXR0cmlidXRpb24qCj4gK2ZvciBleGFtcGxlKS4gVG8gbWFrZSBs aWZlIGVhc2llciBmb3IgZXZlcnlib2R5IHRoZSBsaWNlbnNlIGZvciBhIHBhY2thZ2UgbXVzdAo+ ICtiZSBwcm92aWRlZC4gKlNQRFgqIGxpY2Vuc2UgaWRlbnRpZmllcnMgdW5pZnkgdGhlIGxpY2Vu c2UgbmFtZXMgYW5kIGFyZSB1c2VkCj4gK2luIFBUWGRpc3QgdG8gaWRlbnRpZnkgbGljZW5zZSB0 eXBlcyBhbmQgb2JsaWdhdGlvbnMuCj4gKwo+ICtJZiBhIHBhY2thZ2UgY29tZXMgd2l0aCBtb3Jl IHRoYW4gb25lIGxpY2Vuc2UsIGFsbCBvZiB0aGVpciBTUERYIGlkZW50aWZpZXJzCj4gK211c3Qg YmUgbGlzdGVkIGFuZCBjb25uZWN0ZWQgd2l0aCB0aGUga2V5d29yZCBgYEFORGBgLiBJZiB5b3Vy IHBhY2thZ2UgY29tZXMKPiArd2l0aCBHUEwtMi4wIGFuZCBMR1BMLTIuMSBsaWNlbnNlcywgdGhl IGRlZmluaXRpb24gc2hvdWxkIGxvb2sgbGlrZSB0aGlzOgo+ICsKPiArLi4gY29kZS1ibG9jazo6 IG1ha2UKPiArCj4gKyAgIEZPT19MSUNFTlNFIDo9IEdQTC0yLjAgQU5EIExHUEwtMi4xCj4gKwo+ ICtPbmUgc3BlY2lmaWMgb2JsaWdhdGlvbiBjYW5ub3QgYmUgZGV0ZWN0ZWQgZXhhbWluaW5nIHRo ZSBTUERYIGxpY2Vuc2UgaWRlbnRpZmllcnMKPiArYnkgUFRYZGlzdDogKnRoZSBsaWNlbnNlIGNo b2ljZSouIEluIHRoaXMgY2FzZSBhbGwgbGljZW5zZXMgb2YgY2hvaWNlIG11c3QgYmUKPiArbGlz dGVkIGFuZCBjb25uZWN0ZWQgYnkgdGhlIGtleXdvcmQgYGBPUmBgLgo+ICsKPiArSWYsIGZvciBl eGFtcGxlLCB5b3VyIG9ibGlnYXRpb24gaXMgdG8gc2VsZWN0IG9uZSBvZiB0aGUgbGljZW5zZXMg KkdQTC0yLjAqICoqb3IqKgo+ICsqR1BMLTMuMCosIHRoZSBgYCpfTElDRU5TRWBgIHZhcmlhYmxl IHNob3VsZCBsb29rIGxpa2UgdGhpczoKPiArCj4gKy4uIGNvZGUtYmxvY2s6OiBtYWtlCj4gKwo+ ICsgICBGT09fTElDRU5TRSA6PSBHUEwtMi4wIE9SIEdQTC0zLjAKPiArCj4gK1NQRFggTGljZW5z ZSBJZGVudGlmaWVycwo+ICteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KPiArCj4gK0EgbGlzdCBv ZiBTUERYIGxpY2Vuc2UgaWRlbnRpZmllcnMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gKwo+ICsgICBo dHRwczovL3NwZHgub3JnL2xpY2Vuc2VzLwo+ICsKPiArSGVscCB0byBEZXRlY3QgdGhlIENvcnJl Y3QgTGljZW5zZQo+ICteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCj4gKwo+ICtM aWNlbnNlIGlkZW50aWZpY2F0aW9uIGlzbid0IHRyaXZpYWwuIEEgaGVscCBpbiBkb2luZyBzbyBj YW4gYmUgdGhlIGZvbGxvd2luZwo+ICtyZXBvc2l0b3J5IGFuZCBpdHMgY29udGVudC4gSXQgY29u dGFpbnMgYSBsaXN0IG9mIGtub3duIGxpY2Vuc2VzIGJhc2VkIG9uIHRoZWlyCj4gK1NQRFggaWRl bnRpZmllci4gVGhlIGNvbnRlbnQgaXMgd2l0aG91dCBmb3JtYXR0aW5nIHRvIHNpbXBsaWZ5IHRl eHQgc2VhcmNoLgo+ICsKPiArICAgaHR0cHM6Ly9naXRodWIuY29tL3NwZHgvbGljZW5zZS1saXN0 LWRhdGEvdHJlZS9tYXN0ZXIvdGV4dAo+ICsKPiArQWR2YW5jZWQgUnVsZSBGaWxlcwo+ICt+fn5+ fn5+fn5+fn5+fn5+fn5+Cj4gKwo+ICtUaGUgcHJldmlvdXMgZXhhbXBsZSBvbiBob3cgdG8gY3Jl YXRlIGEgcnVsZSBmaWxlIHNvbWV0aW1lcyB3b3JrcyBhcwo+ICtzaG93biBhYm92ZS4gQnV0IG1v c3Qgb2YgdGhlIHRpbWUgc291cmNlIGFyY2hpdmVzIGFyZSBub3QgdGhhdCBzaW1wbGUuCj4gK0lu IHRoaXMgc2VjdGlvbiB3ZSB3YW50IHRvIGdpdmUgdGhlIHVzZXIgYSBtb3JlIGRldGFpbGVkIHNl bGVjdGlvbiBob3cKPiArdGhlIHBhY2thZ2Ugd2lsbCBiZSBidWlsdC4KPiArCj4gK0FkZGluZyBT dGF0aWMgQ29uZmlndXJlIFBhcmFtZXRlcnMKPiArXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXgo+ICsKPiArVGhlIGBgY29uZmlndXJlYGAgc2NyaXB0cyBvZiB2YXJpb3VzIHNvdXJj ZSBhcmNoaXZlcyBwcm92aWRlIGFkZGl0aW9uYWwKPiArcGFyYW1ldGVycyB0byBlbmFibGUgb3Ig ZGlzYWJsZSBmZWF0dXJlcywgb3IgdG8gY29uZmlndXJlIHRoZW0gaW4gYQo+ICtzcGVjaWZpYyB3 YXkuCj4gKwo+ICtXZSBhc3N1bWUgdGhlIGBgY29uZmlndXJlYGAgc2NyaXB0IG9mIG91ciBgYGZv b2BgIGV4YW1wbGUgKHJlZmVyIHRvCj4gK3NlY3Rpb24gOnJlZjpgZm9vX2V4YW1wbGVgKSBzdXBw b3J0cyB0d28gYWRkaXRpb25hbCBwYXJhbWV0ZXJzOgo+ICsKPiArLSAgKiotLWVuYWJsZS1kZWJ1 ZyoqOiBNYWtlIHRoZSBwcm9ncmFtIG1vcmUgbm9pc3kuIEl04oCZcyBkaXNhYmxlZCBieQo+ICsg ICBkZWZhdWx0Lgo+ICsKPiArLSAgKiotLXdpdGgtYmFyKio6IEFsc28gYnVpbGQgdGhlIHNwZWNp YWwgZXhlY3V0YWJsZSAqKmJhcioqLiBCdWlsZGluZwo+ICsgICB0aGlzIGV4ZWN1dGFibGUgaXMg YWxzbyBkaXNhYmxlZCBieSBkZWZhdWx0Lgo+ICsKPiArV2Ugbm93IHdhbnQgdG8gZm9yd2FyZCB0 aGVzZSBvcHRpb25zIHRvIHRoZSBgYGNvbmZpZ3VyZWBgIHNjcmlwdCB3aGVuIGl0Cj4gK3J1bnMg aW4gdGhlICpwcmVwYXJlKiBzdGFnZS4gVG8gZG8gc28sIHdlIG11c3QgYWdhaW4gb3BlbiB0aGUg cnVsZSBmaWxlCj4gK3dpdGggb3VyIGZhdm91cml0ZSBlZGl0b3IgYW5kIG5hdmlnYXRlIHRvIHRo ZSAqcHJlcGFyZSogc3RhZ2UgZW50cnkuCj4gKwo+ICtQVFhkaXN0IHVzZXMgdGhlIHZhcmlhYmxl IGBgRk9PX0NPTkZfT1BUYGAgYXMgdGhlIGxpc3Qgb2YgcGFyYW1ldGVycyB0bwo+ICtiZSBnaXZl biB0byBgYGNvbmZpZ3VyZWBgLgo+ICsKPiArQ3VycmVudGx5IHRoaXMgdmFyaWFibGUgaXMgY29t bWVudGVkIG91dCBhbmQgZGVmaW5lZCB0bzoKPiArCj4gKy4uIGNvZGUtYmxvY2s6OiBtYWtlCj4g Kwo+ICsgICAgIyBGT09fQ09ORl9PUFQgOj0gJChDUk9TU19BVVRPQ09ORl9VU1IpCj4gKwo+ICtU aGUgdmFyaWFibGUgYGBDUk9TU19BVVRPQ09ORl9VU1JgYCBpcyBwcmVkZWZpbmVkIGJ5IFBUWGRp c3QgYW5kCj4gK2NvbnRhaW5zIGFsbCBiYXNpYyBwYXJhbWV0ZXJzIHRvIGluc3RydWN0IGBgY29u ZmlndXJlYGAgdG8gcHJlcGFyZSBmb3IgYQo+ICsqKmNyb3NzKiogY29tcGlsZSBlbnZpcm9ubWVu dC4KPiArCj4gK1RvIHVzZSB0aGUgdHdvIGFkZGl0aW9uYWwgbWVudGlvbmVkIGBgY29uZmlndXJl YGAgcGFyYW1ldGVycywgd2UgY29tbWVudAo+ICtpbiB0aGlzIGxpbmUgYW5kIHN1cHBsZW1lbnQg dGhpcyBleHByZXNzaW9uIGFzIGZvbGxvd3M6Cj4gKwo+ICsuLiBjb2RlLWJsb2NrOjogbWFrZQo+ ICsKPiArICAgIEZPT19DT05GX09QVCA6PSBcCj4gKyAgICAgICAgJChDUk9TU19BVVRPQ09ORl9V U1IpIFwKPiArICAgICAgICAtLWVuYWJsZS1kZWJ1ZyBcCj4gKyAgICAgICAgLS13aXRoLWJhcgo+ ICsKPiArLi4gbm90ZTo6IFdlIHJlY29tbWVuZCB0byB1c2UgdGhpcyBmb3JtYXQgd2l0aCBlYWNo IHBhcmFtZXRlciBvbiBhIGxpbmUgb2YKPiArIGl0cyBvd24uIFRoaXMgZm9ybWF0IGlzIGVhc2ll ciB0byByZWFkIGFuZCBhIGRpZmYgc2hvd3MgbW9yZSBleGFjdGx5IGFueQo+ICsgY2hhbmdlLgo+ ICsKPiArVG8gZG8gYSBmYXN0IGNoZWNrIGlmIHRoaXMgYWRkaXRpb24gd2FzIHN1Y2Nlc3NmdWws IHdlIHJ1bjoKPiArCj4gKy4uIGNvZGUtYmxvY2s6OiB0ZXh0Cj4gKwo+ICsgICAgJCBwdHhkaXN0 IHByaW50IEZPT19DT05GX09QVAo+ICsgICAgLS1wcmVmaXg9L3VzciAtLXN5c2NvbmZkaXI9L2V0 YyAtLWhvc3Q9fHB0eGRpc3RDb21waWxlck5hbWV8IC0tYnVpbGQ9aTY4Ni1ob3N0LWxpbnV4LWdu dSAtLWVuYWJsZS1kZWJ1ZyAtLXdpdGgtYmFyCj4gKwo+ICsuLiBub3RlOjogSXQgZGVwZW5kcyBv biB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHBsYXRmb3JtIGFuZCBpdHMgYXJjaGl0ZWN0dXJlCj4g KyB3aGF0IGNvbnRlbnQgdGhpcyB2YXJpYWJsZSB3aWxsIGhhdmUuIFRoZSBjb250ZW50IHNob3du IGFib3ZlIGlzIGFuCj4gKyBleGFtcGxlIGZvciBhIHRhcmdldC4KPiArCj4gK09yIHJlLWJ1aWxk IHRoZSBwYWNrYWdlIHdpdGggdGhlIG5ldyBzZXR0aW5nczoKPiArCj4gKy4uIGNvZGUtYmxvY2s6 OiB0ZXh0Cj4gKwo+ICsgICAgJCBwdHhkaXN0IGRyb3AgZm9vIHByZXBhcmUKPiArICAgICQgcHR4 ZGlzdCB0YXJnZXRpbnN0YWxsIGZvbwo+ICsKPiArQWRkaW5nIER5bmFtaWMgQ29uZmlndXJlIFBh cmFtZXRlcnMKPiArXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KPiArCj4gK1Nv bWV0aW1lcyBpdCBtYWtlcyBzZW5zZSB0byBhZGQgdGhpcyBraW5kIG9mIHBhcmFtZXRlcnMgb24g ZGVtYW5kIG9ubHk7Cj4gK2VzcGVjaWFsbHkgYSBwYXJhbWV0ZXIgbGlrZSBgYC0tZW5hYmxlLWRl YnVnYGAuIFRvIGxldCB0aGUgdXNlciBkZWNpZGUKPiAraWYgdGhpcyBwYXJhbWV0ZXIgaXMgdG8g YmUgdXNlZCBvciBub3QsIHdlIG11c3QgYWRkIGEgbWVudSBlbnRyeS4gU28sCj4gK2xldOKAmXMg ZXhwYW5kIG91ciBtZW51LiBIZXJlIGlzIGl0cyBjdXJyZW50IGNvbnRlbnQ6Cj4gKwo+ICsuLiBj b2RlLWJsb2NrOjoga2NvbmZpZwo+ICsKPiArICAgICMjIFNFQ1RJT049cHJvamVjdF9zcGVjaWZp Ywo+ICsKPiArICAgIGNvbmZpZyBGT08KPiArICAgICAgICAgICAgdHJpc3RhdGUKPiArICAgICAg ICAgICAgcHJvbXB0ICJmb28iCj4gKyAgICAgICAgICAgIGhlbHAKPiArICAgICAgICAgICAgICBG SVhNRQo+ICsKPiArV2XigJlsbCBhZGQgdHdvIG1lbnUgZW50cmllcywgb25lIGZvciBlYWNoIG9w dGlvbmFsIHBhcmFtZXRlciB3ZSB3YW50IHRvCj4gK2FkZCBvbiBkZW1hbmQgdG8gdGhlIGBgY29u ZmlndXJlYGAgcGFyYW1ldGVyczoKPiArCj4gKy4uIGNvZGUtYmxvY2s6OiBrY29uZmlnCj4gKwo+ ICsgICAgIyMgU0VDVElPTj1wcm9qZWN0X3NwZWNpZmljCj4gKwo+ICsgICAgY29uZmlnIEZPTwo+ ICsgICAgICAgICAgIHRyaXN0YXRlCj4gKyAgICAgICAgICAgcHJvbXB0ICJmb28iCj4gKyAgICAg ICAgICAgaGVscAo+ICsgICAgICAgICAgICAgRklYTUUKPiArCj4gKyAgICBpZiBGT08KPiArICAg IGNvbmZpZyBGT09fREVCVUcKPiArICAgICAgICAgICBib29sCj4gKyAgICAgICAgICAgcHJvbXB0 ICJhZGQgZGVidWcgbm9pc2UiCj4gKwo+ICsgICAgY29uZmlnIEZPT19CQVIKPiArICAgICAgICAg ICBib29sCj4gKyAgICAgICAgICAgcHJvbXB0ICJidWlsZCBiYXIiCj4gKwo+ICsgICAgZW5kaWYK PiArCj4gKy4uIGltcG9ydGFudDo6IEFsd2F5cyBmb2xsb3cgdGhlIHJ1bGUgdG8gZXh0ZW5kIHRo ZSBiYXNlIG5hbWUgYnkgYSBzdWJvcHRpb24KPiArICBuYW1lIGFzIHRoZSB0cmFpbGluZyBwYXJ0 IG9mIHRoZSB2YXJpYWJsZSBuYW1lLiBUaGlzIGdpdmVzIFBUWGRpc3QgdGhlIGFiaWxpdHkKPiAr ICB0byBkZXRlY3QgYSBjaGFuZ2UgaW4gdGhlIHBhY2thZ2XigJlzIHNldHRpbmdzICh2aWEgbWVu dWNvbmZpZykgdG8gZm9yY2UgaXRzCj4gKyAgcmVidWlsZCBvbiBkZW1hbmQuCj4gKwo+ICtUbyBt YWtlIHVzYWdlIG9mIHRoZSBuZXcgbWVudSBlbnRyaWVzLCB3ZSBtdXN0IGNoZWNrIHRoZW0gaW4g dGhlIHJ1bGUKPiArZmlsZSBhbmQgYWRkIHRoZSBjb3JyZWN0IHBhcmFtZXRlcnM6Cj4gKwo+ICsu LiBjb2RlLWJsb2NrOjogbWFrZQo+ICsKPiArICAgICMKPiArICAgICMgYXV0b2NvbmYKPiArICAg ICMKPiArICAgIEZPT19DT05GX09QVCA6PSBcCj4gKyAgICAgICAgJChDUk9TU19BVVRPQ09ORl9V U1IpIFwKPiArICAgICAgICAtLSQoY2FsbCBwdHgvZW5kaXMsIFBUWENPTkZfRk9PX0RFQlVHKS1k ZWJ1ZyBcCj4gKyAgICAgICAgLS0kKGNhbGwgcHR4L3d3bywgUFRYQ09ORl9GT09fQkFSKS1iYXIK PiArCj4gKy4uIGltcG9ydGFudDo6IFBsZWFzZSBub3RlIHRoZSBsZWFkaW5nIGBgUFRYQ09ORl9g YCBmb3IgZWFjaCBkZWZpbmUuIFdoaWxlIEtjb25maWcgaXMKPiArICB1c2luZyBgYEZPT19CQVJg YCwgdGhlIHJ1bGUgZmlsZSBtdXN0IHVzZSBgYFBUWENPTkZfRk9PX0JBUmBgIGluc3RlYWQuCj4g Kwo+ICsuLiBub3RlOjogUmVmZXIgOnJlZjpgUnVsZSBGaWxlIE1hY3JvIFJlZmVyZW5jZSA8cGFy YW1fbWFjcm9zPmAgZm9yIGZ1cnRoZXIKPiArICAgZGV0YWlscyBhYm91dCB0aGVzZSBzcGVjaWFs IGtpbmQgb2Ygb3B0aW9uIG1hY3JvcyAoZS5nLiBgYHB0eC8uLi5gYCkuCj4gKwo+ICtJdCBpcyBh IGdvb2QgcHJhY3RpY2UgdG8gYWx3YXlzIGFkZCBib3RoIHNldHRpbmdzLCBlLmcuIGBgLS1kaXNh YmxlLWRlYnVnYGAKPiArZXZlbiBpZiB0aGlzIGlzIHRoZSBkZWZhdWx0IGNhc2UuIFNvbWV0aW1l cyBgYGNvbmZpZ3VyZWBgIHRyaWVzIHRvIGd1ZXNzCj4gK3NvbWV0aGluZyBhbmQgdGhlIGJpbmFy eSByZXN1bHQgbWlnaHQgZGlmZmVyIGRlcGVuZGluZyBvbiB0aGUgYnVpbGQKPiArb3JkZXIuIEZv ciBleGFtcGxlIHNvbWUga2luZCBvZiBwYWNrYWdlIHdvdWxkIGFsc28gYnVpbGQgc29tZSBYIHJl bGF0ZWQKPiArdG9vbHMsIGlmIFggbGlicmFyaWVzIGFyZSBmb3VuZC4gSW4gdGhpcyBjYXNlIGl0 IGRlcGVuZHMgb24gdGhlIGJ1aWxkCj4gK29yZGVyLCBpZiB0aGUgWCByZWxhdGVkIHRvb2xzIGFy ZSBidWlsdCBvciBub3QuIEFsbCB0aGUgYXV0b2NoZWNrCj4gK2ZlYXR1cmVzIGFyZSBwcm9ibGVt YXRpYyBoZXJlLiBTbywgaWYgd2UgZG8gbm90IHdhbnQgYGBjb25maWd1cmVgYCB0bwo+ICtndWVz cyBpdHMgc2V0dGluZ3Mgd2UgKiptdXN0IGRpc2FibGUgZXZlcnl0aGluZyB3ZSBkbyBub3Qgd2Fu dCoqLgo+ICsKPiArVG8gc3VwcG9ydCB0aGlzIHByb2Nlc3MsIFBUWGRpc3Qgc3VwcGxpZXMgYSBo ZWxwZXIgc2NyaXB0LCBsb2NhdGVkIGF0Cj4gK2BgL3BhdGgvdG8vcHR4ZGlzdC9zY3JpcHRzL2Nv bmZpZ3VyZS1oZWxwZXIucHlgYCB0aGF0IGNvbXBhcmVzIHRoZSBjb25maWd1cmUKPiArb3V0cHV0 IHdpdGggdGhlIHNldHRpbmdzIGZyb20gYGBGT09fQ09ORl9PUFRgYDoKPiArCj4gKy4uIGNvZGUt YmxvY2s6OiB0ZXh0Cj4gKwo+ICsgICAgJCAvb3B0L3B0eGRpc3QtMjAxNy4wNi4wL3NjcmlwdHMv Y29uZmlndXJlLWhlbHBlci5weSAtcCBsaWJzaWdyb2sKPiArICAgIC0tLSBydWxlcy9saWJzaWdy b2subWFrZQo+ICsgICAgKysrIGxpYnNpZ3Jvay0wLjUuMAo+ICsgICAgQEAgLTQsMyArNCw3NCBA QAo+ICsgICAgIAktLWxpYmRpcj0vdXNyL2xpYgo+ICsgICAgIAktLWJ1aWxkPXg4Nl82NC1ob3N0 LWxpbnV4LWdudQo+ICsgICAgIAktLWhvc3Q9YXJtLXY3YS1saW51eC1nbnVlYWJpaGYKPiArICAg ICsJLS1lbmFibGUtd2FybmluZ3M9bWlufG1heHxmYXRhbHxubwo+ICsgICAgKwktLWRpc2FibGUt bGFyZ2VmaWxlCj4gKyAgICArCS0tZW5hYmxlLWFsbC1kcml2ZXJzCj4gKyAgICArCS0tZW5hYmxl LWFnaWxlbnQtZG1tCj4gKyAgICBbLi4uXQo+ICsgICAgKwktLWVuYWJsZS1ydWJ5Cj4gKyAgICAr CS0tZW5hYmxlLWphdmEKPiArICAgICsJLS13aXRob3V0LWxpYnNlcmlhbHBvcnQKPiArICAgICsJ LS13aXRob3V0LWxpYmZ0ZGkKPiArICAgICsJLS13aXRob3V0LWxpYnVzYgo+ICsgICAgKwktLXdp dGhvdXQtbGlicmV2aXNhCj4gKyAgICArCS0td2l0aG91dC1saWJncGliCj4gKyAgICArCS0td2l0 aG91dC1saWJpZWVlMTI4NAo+ICsgICAgKwktLXdpdGgtam5pLWluY2x1ZGUtcGF0aD1ESVItTElT VAo+ICsKPiArSW4gdGhpcyBleGFtcGxlLCBtYW55IGNvbmZpZ3VyZSBvcHRpb25zIGZyb20gbGli c2lncm9rIChtYXJrZWQgd2l0aCBgYCtgYCkKPiArYXJlIG5vdCB5ZXQgcHJlc2VudCBpbiBgYExJ QlNJR1JPS19DT05GX09QVGBgIGFuZCBtdXN0IGJlIGFkZGVkLCBwb3NzaWJseSBhbHNvCj4gK2J5 IHByb3ZpZGluZyBtb3JlIGR5bmFtaWMgb3B0aW9ucyBpbiB0aGUgcGFja2FnZSBkZWZpbml0aW9u Lgo+ICsKPiArSWYgc29tZSBwYXJ0cyBvZiBhIHBhY2thZ2UgYXJlIGJ1aWx0IG9uIGRlbWFuZCBv bmx5LCB0aGV5IG11c3QgYWxzbyBiZQo+ICtpbnN0YWxsZWQgb24gZGVtYW5kIG9ubHkuIEJlc2lk ZXMgdGhlICpwcmVwYXJlKiBzdGFnZSwgd2UgYWxzbyBtdXN0Cj4gK21vZGlmeSBvdXIgKnRhcmdl dGluc3RhbGwqIHN0YWdlOgo+ICsKPiArLi4gY29kZS1ibG9jazo6IG1ha2UKPiArCj4gKyAgICAJ QCQoY2FsbCBpbnN0YWxsX2NvcHksIGZvbywgMCwgMCwgMDc1NSwgJChGT09fRElSKS9mb28sIC91 c3IvYmluL2ZvbykKPiArCj4gKyAgICBpZmRlZiBQVFhDT05GX0ZPT19CQVIKPiArICAgIAlAJChj YWxsIGluc3RhbGxfY29weSwgZm9vLCAwLCAwLCAwNzU1LCAkKEZPT19ESVIpL2JhciwgL3Vzci9i aW4vYmFyKQo+ICsgICAgZW5kaWYKPiArCj4gKyAgICAJQCQoY2FsbCBpbnN0YWxsX2ZpbmlzaCwg Zm9vKQo+ICsgICAgCUAkKGNhbGwgdG91Y2gpCj4gKwo+ICtOb3cgd2UgY2FuIHBsYXkgd2l0aCBv dXIgbmV3IG1lbnUgZW50cmllcyBhbmQgY2hlY2sgaWYgdGhleSBhcmUgd29ya2luZwo+ICthcyBl eHBlY3RlZDoKPiArCj4gKy4uIGNvZGUtYmxvY2s6OiB0ZXh0Cj4gKwo+ICsgICAgJCBwdHhkaXN0 IG1lbnVjb25maWcKPiArICAgICQgcHR4ZGlzdCB0YXJnZXRpbnN0YWxsIGZvbwo+ICsKPiArV2hl bmV2ZXIgd2UgY2hhbmdlIGEgKkZPTyogcmVsYXRlZCBtZW51IGVudHJ5LCBQVFhkaXN0IHNob3Vs ZCBkZXRlY3QgaXQKPiArYW5kIHJlLWJ1aWxkIHRoZSBwYWNrYWdlIHdoZW4gYSBuZXcgYnVpbGQg aXMgc3RhcnRlZC4KPiArCj4gKy4uIF9leHRlcm5hbF9kZXBlbmRlbmNpZXM6Cj4gKwo+ICtNYW5h Z2luZyBFeHRlcm5hbCBDb21waWxlIFRpbWUgRGVwZW5kZW5jaWVzCj4gK15eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KPiArCj4gK1doaWxlIHJ1bm5pbmcgdGhlIHBy ZXBhcmUgc3RhZ2UsIGl0IGNvdWxkIGhhcHBlbiB0aGF0IGl0IGZhaWxzIGR1ZSB0byBhCj4gK21p c3NpbmcgZXh0ZXJuYWwgZGVwZW5kZW5jeS4KPiArCj4gK0ZvciBleGFtcGxlOgo+ICsKPiArLi4g Y29kZS1ibG9jazo6IHRleHQKPiArCj4gKyAgICBjaGVja2luZyB3aGV0aGVyIHpsaWIgZXhpc3Rz Li4uLmZhaWxlZAo+ICsKPiArSW4gdGhpcyBleGFtcGxlLCBvdXIgbmV3IHBhY2thZ2UgZGVwZW5k cyBvbiB0aGUgY29tcHJlc3Npb24gbGlicmFyeQo+ICsqemxpYiouIFBUWGRpc3QgY29tZXMgd2l0 aCBhIHRhcmdldCAqemxpYiouIEFsbCB3ZSBuZWVkIHRvIGRvIGluIHRoaXMKPiArY2FzZSBpcyB0 byBkZWNsYXJlIHRoYXQgb3VyIG5ldyBwYWNrYWdlICpmb28qIGRlcGVuZHMgb24gKnpsaWIqLiBU aGlzCj4gK2tpbmQgb2YgZGVwZW5kZW5jeSBpcyBtYW5hZ2VkIGluIHRoZSBtZW51IGZpbGUgb2Yg b3VyIG5ldyBwYWNrYWdlIGJ5Cj4gK3NpbXBseSBhZGRpbmcgdGhlIGBgc2VsZWN0IFpMSUJgYCBs aW5lLiBBZnRlciB0aGlzIGFkZGl0aW9uIG91ciBtZW51Cj4gK2ZpbGUgbG9va3MgbGlrZToKPiAr Cj4gKy4uIGNvZGUtYmxvY2s6OiBrY29uZmlnCj4gKwo+ICsgICAgIyMgU0VDVElPTj1wcm9qZWN0 X3NwZWNpZmljCj4gKwo+ICsgICAgY29uZmlnIEZPTwo+ICsgICAgICAgICAgIHRyaXN0YXRlCj4g KyAgICAgICAgICAgc2VsZWN0IFpMSUIKPiArICAgICAgICAgICBwcm9tcHQgImZvbyIKPiArICAg ICAgICAgICBoZWxwCj4gKyAgICAgICAgICAgICBGSVhNRQo+ICsKPiArICAgIGlmIEZPTwo+ICsg ICAgY29uZmlnIEZPT19ERUJVRwo+ICsgICAgICAgICAgIGJvb2wKPiArICAgICAgICAgICBwcm9t cHQgImFkZCBkZWJ1ZyBub2lzZSIKPiArCj4gKyAgICBjb25maWcgRk9PX0JBUgo+ICsgICAgICAg ICAgIGJvb2wKPiArICAgICAgICAgICBwcm9tcHQgImJ1aWxkIGJhciIKPiArCj4gKyAgICBlbmRp Zgo+ICsKPiArUFRYZGlzdCBub3cgYnVpbGRzIHRoZSAqemxpYiogZmlyc3QgYW5kIG91ciBuZXcg cGFja2FnZSB0aGVyZWFmdGVyLgo+ICsKPiArUmVmZXIgOnJlZjpgZXh0ZXJuYWxfZGVwZW5kZW5j aWVzX3ZhcmlhbnRzYCBmb3IgbW9yZSBzcGVjaWZpYyBkZXBlbmRlbmN5Cj4gK2Rlc2NyaXB0aW9u Lgo+ICsKPiArTWFuYWdpbmcgRXh0ZXJuYWwgQ29tcGlsZSBUaW1lIERlcGVuZGVuY2llcyBvbiBE ZW1hbmQKPiArXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl4KPiArCj4gK0l0IGlzIGdvb2QgcHJhY3RpY2UgdG8gYWRkIG9ubHkgdGhvc2UgZGVwZW5k ZW5jaWVzIHRoYXQgYXJlIHJlYWxseQo+ICtyZXF1aXJlZCBmb3IgdGhlIGN1cnJlbnQgY29uZmln dXJhdGlvbiBvZiB0aGUgcGFja2FnZS4gSWYgdGhlIHBhY2thZ2UKPiArcHJvdmlkZXMgdGhlIGZl YXR1cmVzICpmb28qIGFuZCAqYmFyKiBhbmQgaXRzIGBgY29uZmlndXJlYGAgcHJvdmlkZXMKPiAr c3dpdGNoZXMgdG8gZW5hYmxlL2Rpc2FibGUgdGhlbSBpbmRlcGVuZGVudGx5LCB3ZSBjYW4gYWxz byBhZGQKPiArZGVwZW5kZW5jaWVzIG9uIGRlbWFuZC4gTGV04oCZcyBhc3N1bWUgZmVhdHVyZSAq Zm9vKiBuZWVkcyB0aGUgY29tcHJlc3Npb24KPiArbGlicmFyeSAqbGlieiogYW5kICpiYXIqIG5l ZWRzIHRoZSBYTUwyIGxpYnJhcnkgKmxpYnhtbDIqLiBUaGVzZQo+ICtsaWJyYXJpZXMgYXJlIG9u bHkgcmVxdWlyZWQgYXQgcnVuLXRpbWUgaWYgdGhlIGNvcnJlc3BvbmRpbmcgZmVhdHVyZSBpcwo+ ICtlbmFibGVkLiBUbyBhZGQgdGhlc2UgZGVwZW5kZW5jaWVzIG9uIGRlbWFuZCwgdGhlIG1lbnUg ZmlsZSBsb29rcyBsaWtlOgo+ICsKPiArLi4gY29kZS1ibG9jazo6IGtjb25maWcKPiArCj4gKyAg ICAjIyBTRUNUSU9OPXByb2plY3Rfc3BlY2lmaWMKPiArCj4gKyAgICBjb25maWcgRk9PCj4gKyAg ICAgICAgICAgdHJpc3RhdGUKPiArICAgICAgICAgICBzZWxlY3QgWkxJQiBpZiBGT09fRk9PCj4g KyAgICAgICAgICAgc2VsZWN0IExJQlhNTDIgaWYgRk9PX0JBUgo+ICsgICAgICAgICAgIHByb21w dCAiZm9vIgo+ICsgICAgICAgICAgIGhlbHAKPiArICAgICAgICAgICAgIEZJWE1FCj4gKwo+ICsg ICAgaWYgRk9PCj4gKyAgICBjb25maWcgRk9PX0RFQlVHCj4gKyAgICAgICAgICAgYm9vbAo+ICsg ICAgICAgICAgIHByb21wdCAiYWRkIGRlYnVnIG5vaXNlIgo+ICsKPiArICAgIGNvbmZpZyBGT09f Rk9PCj4gKyAgICAgICAgICAgYm9vbAo+ICsgICAgICAgICAgIHByb21wdCAiYnVpbGQgZm9vIgo+ ICsKPiArICAgIGNvbmZpZyBGT09fQkFSCj4gKyAgICAgICAgICAgYm9vbAo+ICsgICAgICAgICAg IHByb21wdCAiYnVpbGQgYmFyIgo+ICsKPiArICAgIGVuZGlmCj4gKwo+ICsuLiBpbXBvcnRhbnQ6 OiBEbyBub3QgYWRkIHRoZXNlIGBgc2VsZWN0YGAgc3RhdGVtZW50cyB0byB0aGUgY29ycmVzcG9u ZGluZyBtZW51IGVudHJ5Lgo+ICsgIFRoZXkgbXVzdCBiZWxvbmcgdG8gdGhlIG1haW4gbWVudSBl bnRyeSBvZiB0aGUgcGFja2FnZSB0byBlbnN1cmUgdGhhdAo+ICsgIHRoZSBjYWxjdWxhdGlvbiBv ZiB0aGUgZGVwZW5kZW5jaWVzIGJldHdlZW4gdGhlIHBhY2thZ2VzIGlzIGRvbmUgaW4gYQo+ICsg IGNvcnJlY3QgbWFubmVyLgo+ICsKPiArTWFuYWdpbmcgRXh0ZXJuYWwgUnVudGltZSBEZXBlbmRl bmNpZXMKPiArXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KPiArCj4gK1Nv bWUgcGFja2FnZXMgYXJlIGJ1aWxkaW5nIGFsbCBvZiB0aGVpciBjb21wb25lbnRzIGFuZCBhbHNv IGluc3RhbGxpbmcKPiArdGhlbSBpbnRvIHRoZSB0YXJnZXTigJlzIHN5c3Jvb3QuIEJ1dCBvbmx5 IHRoZWlyICp0YXJnZXRpbnN0YWxsKiBzdGFnZQo+ICtkZWNpZGVzIHdoaWNoIHBhcnRzIGFyZSBj b3BpZWQgdG8gdGhlIHJvb3QgZmlsZXN5c3RlbS4gU28sIGNvbXBpbGluZyBhbmQKPiArbGlua2lu ZyBvZiBvdXIgcGFja2FnZSB3aWxsIHdvcmssIGJlY2F1c2UgZXZlcnl0aGluZyByZXF1aXJlZCBp cyBmb3VuZAo+ICtpbiB0aGUgdGFyZ2V04oCZcyBzeXNyb290Lgo+ICsKPiArSW4gb3VyIGV4YW1w bGUgdGhlcmUgaXMgYSBoaWRkZW4gZGVwZW5kZW5jeSB0byB0aGUgbWF0aCBsaWJyYXJ5Cj4gK2Bg bGlibWBgLiBPdXIgbmV3IHBhY2thZ2Ugd2FzIGJ1aWx0IHN1Y2Nlc3NmdWxseSwgYmVjYXVzZSB0 aGUgbGlua2VyIHdhcwo+ICthYmxlIHRvIGxpbmsgb3VyIGJpbmFyaWVzIGFnYWluc3QgdGhlIGBg bGlibWBgIGZyb20gdGhlIHRvb2xjaGFpbi4gQnV0Cj4gK2luIHRoaXMgY2FzZSB0aGUgYGBsaWJt YGAgbXVzdCBhbHNvIGJlIGF2YWlsYWJsZSBpbiB0aGUgdGFyZ2V04oCZcyByb290Cj4gK2ZpbGVz eXN0ZW0gdG8gZnVsZmlsIHRoZSBydW4tdGltZSBkZXBlbmRlbmN5OiBXZSBoYXZlIHRvIGZvcmNl IFBUWGRpc3QgdG8KPiAraW5zdGFsbCBgYGxpYm1gYC4gYGBsaWJtYGAgaXMgcGFydCBvZiB0aGUg KmdsaWJjKiBwYWNrYWdlLCBidXQgaXMgbm90Cj4gK2luc3RhbGxlZCBieSBkZWZhdWx0ICh0byBr ZWVwIHRoZSByb290IGZpbGVzeXN0ZW0gc21hbGwpLiBTbywgaXQgKipkb2VzCj4gK25vdCoqIGhl bHAgdG8gc2VsZWN0IHRoZSBgYEdMSUJDYGAgc3ltYm9sLCB0byBnZXQgYSBgYGxpYm1gYCBhdCBy dW4tdGltZS4KPiArCj4gK1RoZSBjb3JyZWN0IHNvbHV0aW9uIGhlcmUgaXMgdG8gYWRkIGEgYGBz ZWxlY3QgTElCQ19NYGAgdG8gb3VyIG1lbnUKPiArZmlsZS4gV2l0aCBhbGwgdGhlIGFkZGl0aW9u cyBhYm92ZSBpdCBub3cgbG9va3MgbGlrZToKPiArCj4gKy4uIGNvZGUtYmxvY2s6OiBrY29uZmln Cj4gKwo+ICsgICAgIyMgU0VDVElPTj1wcm9qZWN0X3NwZWNpZmljCj4gKwo+ICsgICAgY29uZmln IEZPTwo+ICsgICAgICAgICAgIHRyaXN0YXRlCj4gKyAgICAgICAgICAgc2VsZWN0IFpMSUIgaWYg Rk9PX0ZPTwo+ICsgICAgICAgICAgIHNlbGVjdCBMSUJYTUwyIGlmIEZPT19CQVIKPiArICAgICAg ICAgICBzZWxlY3QgTElCQ19NCj4gKyAgICAgICAgICAgcHJvbXB0ICJmb28iCj4gKyAgICAgICAg ICAgaGVscAo+ICsgICAgICAgICAgICAgRklYTUUKPiArCj4gKyAgICBpZiBGT08KPiArICAgIGNv bmZpZyBGT09fREVCVUcKPiArICAgICAgICAgICBib29sCj4gKyAgICAgICAgICAgcHJvbXB0ICJh ZGQgZGVidWcgbm9pc2UiCj4gKwo+ICsgICAgY29uZmlnIEZPT19GT08KPiArICAgICAgICAgICBi b29sCj4gKyAgICAgICAgICAgcHJvbXB0ICJidWlsZCBmb28iCj4gKwo+ICsgICAgY29uZmlnIEZP T19CQVIKPiArICAgICAgICAgICBib29sCj4gKyAgICAgICAgICAgcHJvbXB0ICJidWlsZCBiYXIi Cj4gKwo+ICsgICAgZW5kaWYKPiArCj4gKy4uIG5vdGU6OiBUaGVyZSBhcmUgb3RoZXIgcGFja2Fn ZXMgYXJvdW5kLCB0aGF0IGRvIG5vdCBpbnN0YWxsIGV2ZXJ5dGhpbmcgYnkKPiArICBkZWZhdWx0 LiBJZiBvdXIgbmV3IHBhY2thZ2UgbmVlZHMgc29tZXRoaW5nIHNwZWNpYWwsIHdlIG11c3QgdGFr ZSBhIGxvb2sKPiArICBpbnRvIHRoZSBtZW51IG9mIHRoZSBvdGhlciBwYWNrYWdlIGhvdyB0byBm b3JjZSB0aGUgcmVxdWlyZWQgY29tcG9uZW50cwo+ICsgIHRvIGJlIGluc3RhbGxlZCBhbmQgYWRk IHRoZSBjb3JyZXNwb25kaW5nIGBgc2VsZWN0c2BgIHRvIG91ciBvd24gbWVudQo+ICsgIGZpbGUu IEluIHRoaXMgY2FzZSBpdCBkb2VzIG5vdCBoZWxwIHRvIGVuYWJsZSB0aGUgcmVxdWlyZWQgcGFy dHMgaW4gb3VyCj4gKyAgcHJvamVjdCBjb25maWd1cmF0aW9uLCBiZWNhdXNlIHRoaXMgaGFzIG5v IGVmZmVjdCBvbiB0aGUgYnVpbGQgb3JkZXIhCj4gKwo+ICtNYW5hZ2luZyBQbGFpbiBNYWtlZmls ZSBQYWNrYWdlcwo+ICteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgo+ICsKPiArTWFu eSBwYWNrYWdlcyBhcmUgc3RpbGwgY29taW5nIHdpdGggYSBwbGFpbiBgYE1ha2VmaWxlYGAuIFRo ZSB1c2VyIGhhcwo+ICt0byBhZGFwdCBpdCB0byBtYWtlIGl0IHdvcmsgaW4gYSBjcm9zcyBjb21w aWxlIGVudmlyb25tZW50IGFzIHdlbGwuCj4gK1BUWGRpc3QgY2FuIGFsc28gaGFuZGxlIHRoaXMg a2luZCBvZiBwYWNrYWdlcy4gV2Ugb25seSBoYXZlIHRvIHNwZWNpZnkKPiArYSBzcGVjaWFsICpw cmVwYXJlKiBhbmQgKmNvbXBpbGUqIHN0YWdlLgo+ICsKPiArU3VjaCBwYWNrYWdlcyBvZnRlbiBo YXZlIG5vIHNwZWNpYWwgbmVlZCBmb3IgYW55IGtpbmQgb2YgcHJlcGFyYXRpb24uIEluCj4gK3Ro aXMgd2UgbXVzdCBpbnN0cnVjdCBQVFhkaXN0IHRvIGRvIG5vdGhpbmcgaW4gdGhlICpwcmVwYXJl KiBzdGFnZToKPiArCj4gKy4uIGNvZGUtYmxvY2s6OiBtYWtlCj4gKwo+ICsgICAgRk9PX0NPTkZf VE9PTCA6PSBOTwo+ICsKPiArVG8gY29tcGlsZSB0aGUgcGFja2FnZSwgd2UgY2FuIHVzZSBgYG1h a2VgYFwg4oCZcyBmZWF0dXJlIHRvIG92ZXJ3cml0ZQo+ICt2YXJpYWJsZXMgdXNlZCBpbiB0aGUg YGBNYWtlZmlsZWBgLiBXaXRoIHRoaXMgZmVhdHVyZSB3ZSBjYW4gc3RpbGwgdXNlCj4gK3RoZSBv cmlnaW5hbCBgYE1ha2VmaWxlYGAgYnV0IHdpdGggb3VyIG93biAoY3Jvc3MgY29tcGlsZSkgc2V0 dGluZ3MuCj4gKwo+ICtNb3N0IG9mIHRoZSB0aW1lIHRoZSBnZW5lcmljIGNvbXBpbGUgcnVsZSBj YW4gYmUgdXNlZCwgb25seSBhIGZldwo+ICtzZXR0aW5ncyBhcmUgcmVxdWlyZWQuIEZvciBhIHdl bGwgZGVmaW5lZCBgYE1ha2VmaWxlYGAgaXQgaXMgc3VmZmljaWVudCB0bwo+ICtzZXQgdXAgdGhl IGNvcnJlY3QgY3Jvc3MgY29tcGlsZSBlbnZpcm9ubWVudCBmb3IgdGhlICpjb21waWxlKiBzdGFn ZToKPiArCj4gKy4uIGNvZGUtYmxvY2s6OiBtYWtlCj4gKwo+ICsgICAgRk9PX01BS0VfRU5WIDo9 ICQoQ1JPU1NfRU5WKQo+ICsKPiArYGBtYWtlYGAgd2lsbCBiZSBjYWxsZWQgaW4gdGhpcyBjYXNl IHdpdGg6Cj4gKwo+ICtgYCQoRk9PX01BS0VfRU5WKSAkKE1BS0UpIC1DICQoRk9PX0RJUikgJChG T09fTUFLRV9PUFQpYGAKPiArCj4gK1NvLCBpbiB0aGUgcnVsZSBmaWxlIG9ubHkgdGhlIHR3byB2 YXJpYWJsZXMgYGBGT09fTUFLRV9FTlZgYCBhbmQKPiArYGBGT09fTUFLRV9PUFRgYCBtdXN0IGJl IHNldCwgdG8gZm9yd2FyZCB0aGUgcmVxdWlyZWQgc2V0dGluZ3MgdG8gdGhlCj4gK3BhY2thZ2Xi gJlzIGJ1aWxkc3lzdGVtLiBJZiB0aGUgcGFja2FnZSBjYW5ub3QgYmUgYnVpbHQgaW4gcGFyYWxs ZWwsIHdlCj4gK2NhbiBhbHNvIGFkZCB0aGUgYGBGT09fTUFLRV9QQVLCoDo9wqBOT2BgLiBgYFlF U2BgIGlzIHRoZSBkZWZhdWx0Lgo+ICsKPiArTWFuYWdpbmcgQ01ha2UvUU1ha2UvTWVzb24gUGFj a2FnZXMKPiArXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KPiArCj4gK0J1aWxk aW5nIHBhY2thZ2VzIHRoYXQgdXNlIGBgY21ha2VgYCwgYGBxbWFrZWBgIG9yIGBgbWVzb25gYCBp cyBtdWNoIGxpa2UKPiArYnVpbGRpbmcgcGFja2FnZXMgd2l0aCBhbiBhdXRvdG9vbHMgYmFzZWQg YnVpbGRzeXN0ZW0uIFdlIG5lZWQgdG8gc3BlY2lmeQo+ICt0aGUgY29uZmlndXJhdGlvbiB0b29s Ogo+ICsKPiArLi4gY29kZS1ibG9jazo6IG1ha2UKPiArCj4gKyAgICBGT09fQ09ORl9UT09MIDo9 IGNtYWtlCj4gKwo+ICtvcgo+ICsKPiArLi4gY29kZS1ibG9jazo6IG1ha2UKPiArCj4gKyAgICBG T09fQ09ORl9UT09MIDo9IHFtYWtlCj4gKwo+ICtvciByZXNwZWN0aXZlbHkKPiArCj4gKy4uIGNv ZGUtYmxvY2s6OiBtYWtlCj4gKwo+ICsgICAgRk9PX0NPTkZfVE9PTCA6PSBtZXNvbgo+ICsKPiAr QW5kIHByb3ZpZGUgdGhlIGNvcnJlY3QgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUaGUgc3ludGF4 IGlzIGRpZmZlcmVudCBzbwo+ICtQVFhkaXN0IHByb3ZpZGVzIGFkZGl0aW9uYWwgbWFjcm9zIHRv IHNpbXBsaWZ5IGNvbmZpZ3VyYWJsZSBmZWF0dXJlcy4KPiArRm9yIGBgY21ha2VgYCB0aGUgY29u ZmlndXJhdGlvbiBvcHRpb25zIHR5cGljYWxseSBsb29rIGxpa2UgdGhpczoKPiArCj4gKy4uIGNv ZGUtYmxvY2s6OiBtYWtlCj4gKwo+ICsgICAgRk9PX0NPTkZfT1BUIDo9IFwKPiArICAgIAkkKENS T1NTX0NNQUtFX1VTUikgXAo+ICsgICAgCS1EQlVJTERfVEVTVFM6Qk9PTD1PRkYgXAo+ICsgICAg CS1ERU5BQkxFX0JBUjpCT09MPSQoY2FsbCBwdHgvb25vZmYsIFBUWENPTkZfRk9PX0JBUikKPiAr Cj4gK0ZvciBgYHFtYWtlYGAgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0eXBpY2FsbHkgbG9v ayBsaWtlIHRoaXM6Cj4gKwo+ICsuLiBjb2RlLWJsb2NrOjogbWFrZQo+ICsKPiArICAgIEZPT19D T05GX09QVCA6PSBcCj4gKyAgICAJJChDUk9TU19RTUFLRV9PUFQpIFwKPiArICAgIAlQUkVGSVg9 L3Vzcgo+ICsKPiArQW5kIGZvciBgYG1lc29uYGAgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0 eXBpY2FsbHkgbG9vayBsaWtlIHRoaXM6Cj4gKwo+ICsuLiBjb2RlLWJsb2NrOjogbWFrZQo+ICsK PiArICAgIEZPT19DT05GX09QVCA6PSBcCj4gKyAgICAJJChDUk9TU19NRVNPTl9VU1IpIFwKPiAr ICAgIAktRGJhcj0kKGNhbGwgcHR4L3RydWVmYWxzZSxQVFhDT05GX0ZPT19CQVIpCj4gKwo+ICtQ bGVhc2Ugbm90ZSB0aGF0IGN1cnJlbnRseSBvbmx5IGhvc3QgYW5kIHRhcmdldCBgYGNtYWtlYGBc L2BgbWVzb25gYCBwYWNrYWdlcwo+ICthbmQgb25seSB0YXJnZXQgYGBxbWFrZWBgIHBhY2thZ2Vz IGFyZSBzdXBwb3J0ZWQuCj4gKwo+ICtNYW5hZ2luZyBQeXRob24gUGFja2FnZXMKPiArXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eCj4gKwo+ICtBcyB3aXRoIGFueSBvdGhlciBwYWNrYWdlLCB0aGUg Y29ycmVjdCBjb25maWd1cmF0aW9uIHRvb2wgbXVzdCBiZSBzZWxlY3RlZAo+ICtmb3IgUHl0aG9u IHBhY2thZ2VzOgo+ICsKPiArLi4gY29kZS1ibG9jazo6IG1ha2UKPiArCj4gKyAgICBGT09fQ09O Rl9UT09MIDo9IHB5dGhvbgo+ICsKPiArLi4gbm90ZTo6IEZvciBQeXRob24zIHBhY2thZ2VzIHRo ZSB2YWx1ZSBtdXN0IGJlIGBgcHl0aG9uM2BgLgo+ICsKPiArTm8gTWFrZWZpbGVzIGFyZSB1c2Vk IHdoZW4gYnVpbGRpbmcgUHl0aG9uIHBhY2thZ2VzIHNvIHRoZSB1c3VhbCBgYG1ha2VgYAo+ICth bmQgYGBtYWtlIGluc3RhbGxgYCBmb3IgdGhlICpjb21waWxlKiBhbmQgKmluc3RhbGwqIHN0YWdl cyBjYW5ub3QgYmUgdXNlZC4KPiArUFRYZGlzdCB3aWxsIGNhbGwgYGBweXRob24gc2V0dXAucHkg YnVpbGRgYCBhbmQgYGBweXRob24gc2V0dXAucHkgaW5zdGFsbGBgCj4gK2luc3RlYWQuCj4gKwo+ ICsuLiBub3RlOjogKkZPTyogaXMgc3RpbGwgdGhlIG5hbWUgb2Ygb3VyIGV4YW1wbGUgcGFja2Fn ZS4gSXQgbXVzdCBiZQo+ICsgIHJlcGxhY2VkIGJ5IHRoZSByZWFsIHBhY2thZ2UgbmFtZS4KPiAr Cj4gKwo+ICsuLiBfcGF0Y2hpbmdfcGFja2FnZXM6Cj4gKwo+ICtQYXRjaGluZyBQYWNrYWdlcwo+ ICt+fn5+fn5+fn5+fn5+fn5+fgo+ICsKPiArVGhlcmUgY2FuIGJlIHZhcmlvdXMgcmVhc29ucyB3 aHkgYSBwYWNrYWdlIG11c3QgYmUgcGF0Y2hlZDoKPiArCj4gKy0gIFBhY2thZ2UgaXMgYnJva2Vu IGZvciBjcm9zcyBjb21waWxlIGVudmlyb25tZW50cwo+ICsKPiArLSAgUGFja2FnZSBpcyBicm9r ZW4gd2l0aGluIGEgc3BlY2lmaWMgZmVhdHVyZQo+ICsKPiArLSAgUGFja2FnZSBpcyB2dWxuZXJh YmxlIGFuZCBuZWVkcyBzb21lIGZpeGVzCj4gKwo+ICstICBvciBhbnl0aGluZyBlbHNlICh0aGlz IGNhc2UgaXMgdGhlIG1vc3QgY29tbW9uIG9uZSkKPiArCj4gK0lkZWFsbHksIHRob3NlIHByb2Js ZW1zIHNob3VsZCBiZSBhZGRyZXNzZWQgaW4gdGhlIG9yaWdpbmFsIHByb2plY3QsCj4gK3NvIGFu eSBwYXRjaGVzIHlvdSBhZGQgdG8geW91ciBCU1Agb3IgdG8gUFRYZGlzdCBzaG91bGQgYWxzbyBi ZSBzdWJtaXR0ZWQgdXBzdHJlYW0uCj4gK1RoZSB1cHN0cmVhbSBwcm9qZWN0IGNhbiBvZnRlbiBw cm92aWRlIGJldHRlciBmZWVkYmFjaywgdGhleSBjYW4gaW50ZWdyYXRlIHlvdXIKPiArcGF0Y2gg aW50byBhIG5ldyByZWxlYXNlLCBhbmQgYWxzbyBtYWludGFpbiB5b3VyIGNoYW5nZXMgYXMgcGFy dCBvZiB0aGUgcHJvamVjdC4KPiArVGhpcyB3YXkgd2UgbWFrZSBzdXJlIHRoYXQgYWxsIGFkdmFu dGFnZXMgb2YgdGhlIG9wZW4gc291cmNlIGlkZWEgd29yayBmb3IgdXM7Cj4gK2FuZCB5b3VyIHBh dGNoIGNhbiBiZSByZW1vdmVkIGFnYWluIGxhdGVyIHdoZW4gYSBuZXcgcmVsZWFzZSBvZiB0aGUg cHJvamVjdCBpcwo+ICtpbnRlZ3JhdGVkIGludG8geW91ciBCU1Agb3IgaW50byBQVFhkaXN0Lgo+ ICsKPiArUFRYZGlzdCBoYW5kbGVzIHBhdGNoaW5nIGF1dG9tYXRpY2FsbHkuCj4gK0FmdGVyIGV4 dHJhY3RpbmcgdGhlIGFyY2hpdmUgb2YgYSBwYWNrYWdlLCBQVFhkaXN0IGNoZWNrcyBmb3IgdGhl IGV4aXN0ZW5jZSBvZgo+ICthIHBhdGNoIGRpcmVjdG9yeSBuYW1lZCBsaWtlIGl0cyBgYDxQS0c+ X1BBVENIRVNgYCB2YXJpYWJsZSwgb3IsIGlmIHRoaXMgdmFyaWFibGUKPiAraXMgbm90IHNldCwg bGlrZSBpdHMgYGA8UEtHPmBgIHZhcmlhYmxlLgo+ICtUaGUgcGF0Y2ggZGlyZWN0b3J5IGlzIHRo ZW4gc2VhcmNoZWQgaW4gYWxsIGxvY2F0aW9ucyBsaXN0ZWQgYnkgdGhlCj4gK2BgUFRYRElTVF9Q QVRIX1BBVENIRVNgYCB2YXJpYWJsZSwgYW5kIHRoZSBmaXJzdCBvbmUgZm91bmQgaXMgdXNlZC4K PiArVGFrZSBhbiBleGVtcGxhcnkgcGFja2FnZSBgYGZvb2BgIHdpdGggdmVyc2lvbiBgYDEuMS4w YGA6Cj4gK1RoZSB2YXJpYWJsZSBgYEZPT2BgIHdpbGwgaGF2ZSB0aGUgdmFsdWUgYGBmb28tMS4x LjBgYCwgc28gUFRYZGlzdCB3aWxsIGxvb2sgZm9yCj4gK2EgcGF0Y2ggZGlyZWN0b3J5IG5hbWVk IGBgZm9vLTEuMS4wYGAgaW4gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6Cj4gKwo+ICsjLiB0aGUg Y3VycmVudCBsYXllcjoKPiArCj4gKyAgIGEuIHByb2plY3QgKGBgLi9wYXRjaGVzL2Zvby0xLjEu MGBgKQo+ICsgICBiLiBwbGF0Zm9ybSAoYGAuL2NvbmZpZ3MvfHB0eGRpc3RQbGF0Zm9ybUNvbmZp Z0RpcnwvcGF0Y2hlcy9mb28tMS4xLjBgYCkKPiArCj4gKyMuIGFueSA6cmVmOmBiYXNlIGxheWVy cyA8bGF5ZXJzLWluLXB0eGRpc3Q+YCwKPiArICAgYXBwbHlpbmcgdGhlIHNhbWUgc2VhcmNoIG9y ZGVyIGFzIGFib3ZlIGZvciBlYWNoIGxheWVyIHJlY3Vyc2l2ZWx5Cj4gKwo+ICsjLiBwdHhkaXN0 IChgYDxwdHhkaXN0L2luc3RhbGxhdGlvbi9wYXRoPi9wYXRjaGVzL2Zvby0xLjEuMGBgKQo+ICsK PiArVGhlIHBhdGNoZXMgZnJvbSB0aGUgZmlyc3QgbG9jYXRpb24gZm91bmQgYXJlIHVzZWQuIE5v dGU6IER1ZSB0byB0aGlzCj4gK3NlYXJjaCBvcmRlciwgYSBQVFhkaXN0IHByb2plY3QgY2FuIHJl cGxhY2UgZ2xvYmFsIHBhdGNoZXMgZnJvbSB0aGUKPiArUFRYZGlzdCBpbnN0YWxsYXRpb24uIFRo aXMgY2FuIGJlIHVzZWZ1bCBpZiBhIHByb2plY3Qgc3RpY2tzIHRvIGEKPiArc3BlY2lmaWMgUFRY ZGlzdCByZXZpc2lvbiBidXQgZml4ZXMgZnJvbSBhIG1vcmUgcmVjZW50IHJldmlzaW9uIG9mCj4g K1BUWGRpc3Qgc2hvdWxkIGJlIHVzZWQuCj4gKwo+ICtQVFhkaXN0IHVzZXMgdGhlIHV0aWxpdGll cyAqZ2l0KiwgKnBhdGNoKiBvciAqcXVpbHQqIHRvIHdvcmsgd2l0aAo+ICtwYXRjaGVzIG9yIHBh dGNoIHNlcmllcy4gV2UgcmVjb21tZW5kICpnaXQqLCBhcyBpdCBjYW4gbWFuYWdlIHBhdGNoCj4g K3NlcmllcyBpbiBhIHZlcnkgZWFzeSB3YXkuCj4gKwo+ICtDcmVhdGluZyBhIFBhdGNoIFNlcmll cyBmb3IgYSBQYWNrYWdlCj4gK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4K PiArCj4gK1RvIGNyZWF0ZSBhIHBhdGNoIHNlcmllcyBmb3IgdGhlIGZpcnN0IHRpbWUsIHdlIGNh biBydW4gdGhlIGZvbGxvd2luZwo+ICtzdGVwcy4gV2UgYXJlIHN0aWxsIHVzaW5nIG91ciAqZm9v LTEuMS4wKiBleGFtcGxlIHBhY2thZ2UgaGVyZToKPiArCj4gK1VzaW5nIFF1aWx0Cj4gKyIiIiIi IiIiIiIiCj4gKwo+ICtXZSBjcmVhdGUgYSBzcGVjaWFsIGRpcmVjdG9yeSBmb3IgdGhlIHBhdGNo IHNlcmllcyBpbiB0aGUgbG9jYWwgcHJvamVjdAo+ICtkaXJlY3Rvcnk6Cj4gKwo+ICsuLiBjb2Rl LWJsb2NrOjogdGV4dAo+ICsKPiArICAgICQgbWtkaXIgLXAgcGF0Y2hlcy9mb28tMS4xLjAKPiAr Cj4gK1BUWGRpc3QgZXhwZWN0cyBhIGBgc2VyaWVzYGAgZmlsZSBpbiB0aGUgcGF0Y2ggZGlyZWN0 b3J5IGFuZCBhdCBsZWFzdAo+ICtvbmUgcGF0Y2guIE90aGVyd2lzZSBpdCBmYWlscy4gRHVlIHRv IHRoZSBmYWN0IHRoYXQgd2UgZG8gbm90IGhhdmUgYW55Cj4gK3BhdGNoIGNvbnRlbnQgeWV0LCB3 ZeKAmWxsIHN0YXJ0IHdpdGggYSBkdW1teSBlbnRyeSBpbiB0aGUgYGBzZXJpZXNgYCBmaWxlCj4g K2FuZCBhbiBlbXB0eSBgYHBhdGNoYGAgZmlsZS4KPiArCj4gKy4uIGNvZGUtYmxvY2s6OiB0ZXh0 Cj4gKwo+ICsgICAgJCB0b3VjaCBwYXRjaGVzL2Zvby0xLjEuMC9kdW1teQo+ICsgICAgJCBlY2hv IGR1bW15ID4gcGF0Y2hlcy9mb28tMS4xLjAvc2VyaWVzCj4gKwo+ICtOZXh0IGlzIHRvIGV4dHJh Y3QgdGhlIHBhY2thZ2UgKGlmIGFscmVhZHkgZG9uZSwgd2UgbXVzdCByZW1vdmUgaXQKPiArZmly c3QpOgo+ICsKPiArLi4gY29kZS1ibG9jazo6IHRleHQKPiArCj4gKyAgICAkIHB0eGRpc3QgZXh0 cmFjdCBmb28KPiArCj4gK1RoaXMgd2lsbCBleHRyYWN0IHRoZSBhcmNoaXZlIGFuZCBjcmVhdGUg YSBzeW1ib2xpYyBsaW5rIGluIHRoZSBidWlsZAo+ICtkaXJlY3RvcnkgcG9pbnRpbmcgdG8gb3Vy IGxvY2FsIHBhdGNoIGRpcmVjdG9yeS4gV29ya2luZyB0aGlzIHdheSB3aWxsCj4gK2Vuc3VyZSB0 aGF0IHdlIGRvIG5vdCBsb3NlIG91ciBjcmVhdGVkIHBhdGNoZXMgaWYgd2UgZW50ZXIKPiArYGBw dHhkaXN0IGNsZWFuIGZvb2BgIGJ5IGFjY2lkZW50LiBJbiBvdXIgY2FzZSB0aGUgcGF0Y2hlcyBh cmUgc3RpbGwKPiArcHJlc2VudCBpbiBgYHBhdGNoZXMvZm9vLTEuMS4wYGAgYW5kIGNhbiBiZSB1 c2VkIHRoZSBuZXh0IHRpbWUgd2UKPiArZXh0cmFjdCB0aGUgcGFja2FnZSBhZ2Fpbi4KPiArCj4g K0FsbCB3ZSBoYXZlIHRvIGRvIG5vdyBpcyB0byBkbyB0aGUgbW9kaWZpY2F0aW9uIHdlIG5lZWQg dG8gbWFrZSB0aGUKPiArcGFja2FnZSB3b3JrLiBXZSBjaGFuZ2UgaW50byB0aGUgYnVpbGQgZGly ZWN0b3J5IGFuZCB1c2UgcXVpbHRfIHRvCj4gK2NyZWF0ZSBuZXcgcGF0Y2hlcywgYWRkIGZpbGVz IHRvIHJlc3BlY3RpdmUgcGF0Y2hlcywgbW9kaWZ5IHRoZXNlIGZpbGVzCj4gK2FuZCByZWZyZXNo IHRoZSBwYXRjaGVzIHRvIHNhdmUgb3VyIGNoYW5nZXMuCj4gK1NlZSB0aGUgKnF1aWx0KiBkb2N1 bWVudGF0aW9uIChgYG1hbiAxIHF1aWx0YGApIGZvciBtb3JlIGluZm9ybWF0aW9uLgo+ICsKPiAr Li4gbm90ZTo6IEZvciBwYXRjaGVzIHRoYXQgYXJlIGludGVuZGVkIGZvciBQVFhkaXN0IHVwc3Ry ZWFtIHVzZSB0aGUgZ2l0Cj4gKyAgd29ya2Zsb3cgZGVzY3JpYmVkIGJlbG93IHRvIGdldCBwcm9w ZXIgcGF0Y2ggaGVhZGVycy4KPiArCj4gKy4uIF9xdWlsdDogaHR0cDovL3NhdmFubmFoLm5vbmdu dS5vcmcvcHJvamVjdHMvcXVpbHQKPiArCj4gK1VzaW5nIEdpdAo+ICsiIiIiIiIiIiIKPiArCj4g K0NyZWF0ZSB0aGUgcGF0Y2ggZGlyZWN0b3J5IGxpa2UgYWJvdmUgZm9yICpxdWlsdCosCj4gK2J1 dCBvbmx5IGFkZCBhbiBlbXB0eSBzZXJpZXMgZmlsZToKPiArCj4gKy4uIGNvZGUtYmxvY2s6OiB0 ZXh0Cj4gKwo+ICsgICAgJCBta2RpciAtcCBwYXRjaGVzL2Zvby0xLjEuMAo+ICsgICAgJCB0b3Vj aCBwYXRjaGVzL2Zvby0xLjEuMC9zZXJpZXMKPiArCj4gK1RoZW4gZXh0cmFjdCB0aGUgcGFja2Fn ZSB3aXRoIGFuIGFkZGl0aW9uYWwgY29tbWFuZCBsaW5lIHN3aXRjaDoKPiArCj4gKy4uIGNvZGUt YmxvY2s6OiB0ZXh0Cj4gKwo+ICsgICAgJCBwdHhkaXN0IC0tZ2l0IGV4dHJhY3QgZm9vCj4gKwo+ ICtUaGUgZW1wdHkgc2VyaWVzIGZpbGUgbWFrZXMgUFRYZGlzdCBjcmVhdGUgYSBHaXQgcmVwb3Np dG9yeSBpbiB0aGUKPiArcmVzcGVjdGl2ZSBwYWNrYWdlIGJ1aWxkIGRpcmVjdG9yeSwKPiArYW5k IGltcG9ydCB0aGUgcGFja2FnZSBzb3VyY2UgYXMgdGhlIGZpcnN0IGNvbW1pdC4KPiArCj4gKy4u IG5vdGU6OiBPcHRpb25hbGx5LCB5b3UgY2FuIGVuYWJsZSB0aGUgc2V0dGluZyAqRGV2ZWxvcGVy IE9wdGlvbnMg4oaSCj4gKyAgdXNlIGdpdCB0byBhcHBseSBwYXRjaGVzKiBpbiBgcHR4ZGlzdCBz ZXR1cGAgdG8gZ2V0IHRoaXMgYmVoYXZpb3VyCj4gKyAgYXMgYSBkZWZhdWx0IGZvciBldmVyeSBw YWNrYWdlLgo+ICsgIEhvd2V2ZXIsIG5vdGUgdGhhdCB0aGlzIHNldHRpbmcgaXMgbWVhbnQgZm9y IGRldmVsb3BtZW50IG9ubHksIGFuZCBjYW4gbGVhZAo+ICsgIHRvIGZhaWx1cmVzIOKAkyBzb21l IHBhY2thZ2VzIHRyeSB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmUgYmVpbmcgY29tcGlsZWQgZnJv bQo+ICsgIGEgR2l0IHNvdXJjZSB0cmVlLCBhbmQgYmVoYXZlIGRpZmZlcmVudGx5IGluIHRoYXQg Y2FzZS4KPiArCj4gK1RoZW4geW91IGNhbiBjaGFuZ2UgaW50byB0aGUgcGFja2FnZSBidWlsZCBk aXJlY3RvcnkKPiArKGBgcGxhdGZvcm0tPG5hbWU+L2J1aWxkLXRhcmdldC9mb28tMS4xLjBgYCks Cj4gK3BhdGNoIHRoZSByZXF1aXJlZCBzb3VyY2UgZmlsZXMsCj4gK2FuZCBtYWtlIEdpdCBjb21t aXRzIG9uIHRoZSB3YXkuCj4gK1RoZSBHaXQgaGlzdG9yeSBzaG91bGQgbm93IGxvb2sgc29tZXRo aW5nIGxpa2UgdGhpczoKPiArCj4gKy4uIGNvZGUtYmxvY2s6OiB0ZXh0Cj4gKwo+ICsgICAgJCBn aXQgbG9nIC0tb25lbGluZSAtLWRlY29yYXRlCj4gKyAgICAqIGRmMzQzZTgyMTg1MSAoSEVBRCAt PiBtYXN0ZXIpIE1ha2VmaWxlOiBkb24ndCBidWlsZCB0aGUgdGVzdHMKPiArICAgICogNjVhMzYw YzJiZDYwIHN0cmZyeS5jOiBmcm9ibmljYXRlIHRoZSBleGN1c2F0b3IKPiArICAgICogZmRjMzE1 ZjY4NDRjICh0YWc6IGZvb2Jhci0xLjEuMCwgdGFnOiBiYXNlKSBpbml0aWFsIGNvbW1pdAo+ICsK PiArRmluYWxseSwgY2FsbCBgYGdpdCBwdHgtcGF0Y2hlc2BgIHRvIHRyYW5zZm9ybSB0aG9zZSBH aXQgY29tbWl0cyBpbnRvIHRoZSBwYXRjaAo+ICtzZXJpZXMgaW4gdGhlIGBgcGF0Y2hlcy9mb28t MS4xLjBgYCBmb2xkZXIuCj4gK1RoaXMgd2F5IHRoZXkgZG9uJ3QgZ2V0IGxvc3Qgd2hlbiBjbGVh bmluZyB0aGUgcGFja2FnZS4KPiArCj4gKy4uIG5vdGU6OiBQVFhkaXN0IHdpbGwgb25seSBjcmVh dGUgYSBHaXQgcmVwb3NpdG9yeSBmb3IgcGFja2FnZXMgd2l0aAo+ICsgIHBhdGNoZXMuICBUbyB1 c2UgR2l0IHRvIGdlbmVyYXRlIHRoZSBmaXJzdCBwYXRjaCwgY3JlYXRlIGFuIGVtcHR5IHNlcmll cwo+ICsgIGZpbGUgYGBwYXRjaGVzL2Zvb2Jhci0xLjEuMC9zZXJpZXNgYCBiZWZvcmUgZXh0cmFj dGluZyB0aGUgcGFja2FnZXMuIFRoaXMKPiArICB3aWxsIHRlbGwgUFRYZGlzdCB0byB1c2UgR2l0 IGFueXdheXMgYW5kIGBgZ2l0IHB0eC1wYXRjaGVzYGAgd2lsbCBwdXQgdGhlCj4gKyAgcGF0Y2hl cyB0aGVyZS4KPiArCj4gK0JvdGggYXBwcm9hY2hlcyAoR2l0IGFuZCBxdWlsdCkgYXJlIG5vdCBz dWl0YWJsZSBmb3IgbW9kaWZ5aW5nIGZpbGVzCj4gK3RoYXQgYXJlIGF1dG9nZW5lcmF0ZWQgaW4g YXV0b3Rvb2xzLWJhc2VkIGJ1aWxkc3lzdGVtcy4KPiArUmVmZXIgdG8gdGhlIHNlY3Rpb24gOnJl ZjpgY29uZmlndXJlX3JlYnVpbGRgIG9uIGhvdyBQVFhkaXN0IGNhbgo+ICtoYW5kbGUgdGhpcyBz cGVjaWFsIHRhc2suCj4gKwo+ICtBZGRpbmcgTW9yZSBQYXRjaGVzIHRvIGEgUGFja2FnZQo+ICte Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgo+ICsKPiArSWYgd2Ugd2FudCB0byBhZGQg bW9yZSBwYXRjaGVzIHRvIGFuIGFscmVhZHkgcGF0Y2hlZCBwYWNrYWdlLCB3ZSBjYW4gdXNlCj4g K25lYXJseSB0aGUgc2FtZSB3YXkgYXMgY3JlYXRpbmcgcGF0Y2hlcyBmb3IgdGhlIGZpcnN0IHRp bWUuIEJ1dCBpZiB0aGUKPiArcGF0Y2ggc2VyaWVzIGNvbWVzIGZyb20gdGhlIFBUWGRpc3QgbWFp biBpbnN0YWxsYXRpb24sIHdlIGRvIG5vdCBoYXZlCj4gK3dyaXRlIHBlcm1pc3Npb25zIHRvIHRo ZXNlIGRpcmVjdG9yaWVzIChkbyBORVZFUiB3b3JrIG9uIHRoZSBtYWluCj4gK2luc3RhbGxhdGlv biBkaXJlY3RvcmllcywgTkVWRVIsIE5FVkVSLCBORVZFUikuIER1ZSB0byB0aGUgc2VhcmNoIG9y ZGVyCj4gK2luIHdoaWNoIFBUWGRpc3Qgc2VhcmNoZXMgZm9yIHBhdGNoZXMgZm9yIGEgc3BlY2lm aWMgcGFja2FnZSwgd2UgY2FuCj4gK2NvcHkgdGhlIGdsb2JhbCBwYXRjaCBzZXJpZXMgdG8gb3Vy IGxvY2FsIHByb2plY3QgZGlyZWN0b3J5LiBOb3cgd2UgaGF2ZQo+ICt0aGUgcGVybWlzc2lvbnMg dG8gYWRkIG1vcmUgcGF0Y2hlcyBvciBtb2RpZnkgdGhlIGV4aXN0aW5nIG9uZXMuIEFsc28KPiAr KnF1aWx0KiBhbmQgKmdpdCogYXJlIG91ciBmcmllbmRzIGhlcmUgdG8gbWFuYWdlIHRoZSBwYXRj aCBzZXJpZXMuCj4gKwo+ICtJZiB3ZSB0aGluayB0aGF0IG91ciBuZXcgcGF0Y2hlcyBhcmUgdmFs dWFibGUgYWxzbyBmb3Igb3RoZXJzLCBvciB0aGV5Cj4gK2ZpeCBhbiBlcnJvciwgaXQgY291bGQg YmUgYSBnb29kIGlkZWEgdG8gc2VuZCB0aGVzZSBwYXRjaGVzIHRvIFBUWGRpc3QKPiArbWFpbmxp bmUsIGFuZCB0byB0aGUgdXBzdHJlYW0gcHJvamVjdCB0b28uCj4gKwo+ICsKPiArLi4gX2NvbmZp Z3VyZV9yZWJ1aWxkOgo+ICsKPiArTW9kaWZ5aW5nIEF1dG90b29saXplZCBQYWNrYWdlcwo+ICte Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCj4gKwo+ICtBdXRvdG9vbGl6ZWQgcGFja2Fn ZXMgYXJlIHZlcnkgcGlja3kgd2hlbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmaWxlcwo+ICtn ZXQgcGF0Y2hlZC4gVGhlIHBhdGNoIG9yZGVyIGlzIHZlcnkgaW1wb3J0YW50IGluIHRoaXMgY2Fz ZSBhbmQKPiArc29tZXRpbWVzIGl0IGV2ZW4gZmFpbHMgYW5kIG5vYm9keSBrbm93cyB3aHkuCj4g Kwo+ICtUbyBpbXByb3ZlIGEgcGFja2FnZeKAmXMgYXV0b3Rvb2xzLWJhc2VkIGJ1aWxkIHN5c3Rl bSwgUFRYZGlzdCBjb21lcyB3aXRoCj4gK2l0cyBvd24gcHJvamVjdCBsb2NhbCBhdXRvdG9vbHMg dG8gcmVnZW5lcmF0ZSB0aGUgYXV0b3Rvb2xzIHRlbXBsYXRlCj4gK2ZpbGVzLCBpbnN0ZWFkIG9m IHBhdGNoaW5nIHRoZW0uIFdpdGggdGhpcyBmZWF0dXJlLCBvbmx5IHRoZSB0ZW1wbGF0ZQo+ICtm aWxlcyBtdXN0IGJlIHBhdGNoZWQsIHRoZSByZXF1aXJlZCBgYGNvbmZpZ3VyZWBgIHNjcmlwdCBh bmQgdGhlCj4gK2BgTWFrZWZpbGUuaW5gYCBmaWxlcyBhcmUgcmVnZW5lcmF0ZWQgaW4gdGhlIGZp bmFsIHN0YWdlcyBvZiB0aGUKPiArKnByZXBhcmUqIHN0ZXAuCj4gKwo+ICtUaGlzIGZlYXR1cmUg d29ya3MgbGlrZSB0aGUgcmVndWxhciBwYXRjaGluZyBtZWNoYW5pc20uIFRoZSBvbmx5Cj4gK2Rp ZmZlcmVuY2UgaXMgdGhlIGFkZGl0aW9uYWwgYGBhdXRvZ2VuLnNoYGAgZmlsZSBpbiB0aGUgcGF0 Y2ggZGlyZWN0b3J5Lgo+ICtJZiBpdCBleGlzdHMgYW5kIGhhcyBleGVjdXRpb24gcGVybWlzc2lv bnMsIGl0IHdpbGwgYmUgY2FsbGVkIGFmdGVyIHRoZQo+ICtwYWNrYWdlIHdhcyBwYXRjaGVkICh3 aGlsZSB0aGUgKmV4dHJhY3QqIHN0YWdlIGlzIHJ1bm5pbmcpLgo+ICsKPiArSXRzIGNvbnRlbnQg ZGVwZW5kcyBvbiBkZXZlbG9wZXIgbmVlZHM7IGZvciB0aGUgbW9zdCBzaW1wbGUgY2FzZSB0aGUK PiArY29udGVudCBjYW4gYmU6Cj4gKwo+ICsuLiBjb2RlLWJsb2NrOjogYmFzaAo+ICsKPiArICAg ICMhL2Jpbi9iYXNoCj4gKwo+ICsgICAgYWNsb2NhbCAkQUNMT0NBTF9GTEFHUwo+ICsKPiArICAg IGxpYnRvb2xpemUgXAo+ICsgICAgICAgICAgICAtLWZvcmNlIFwKPiArICAgICAgICAgICAgLS1j b3B5Cj4gKwo+ICsgICAgYXV0b3JlY29uZiBcCj4gKyAgICAgICAgICAgIC0tZm9yY2UgXAo+ICsg ICAgICAgICAgICAtLWluc3RhbGwgXAo+ICsgICAgICAgICAgICAtLXdhcm5pbmdzPWNyb3NzIFwK PiArICAgICAgICAgICAgLS13YXJuaW5ncz1zeW50YXggXAo+ICsgICAgICAgICAgICAtLXdhcm5p bmdzPW9ic29sZXRlIFwKPiArICAgICAgICAgICAgLS13YXJuaW5ncz11bnN1cHBvcnRlZAo+ICsK PiArLi4gbm90ZTo6IEluIHRoaXMgd2F5IG5vdCB5ZXQgYXV0b3Rvb2xpemVkIHBhY2thZ2UgY2Fu IGJlIGF1dG90b29saXplZC4gV2UKPiArICBqdXN0IGhhdmUgdG8gYWRkIHRoZSBjb21tb24gYXV0 b3Rvb2wgdGVtcGxhdGUgZmlsZXMgKGBgY29uZmlndXJlLmFjYGAKPiArICBhbmQgYGBNYWtlZmls ZS5hbWBgIGZvciBleGFtcGxlKSB2aWEgYSBwYXRjaCBzZXJpZXMgdG8gdGhlIHBhY2thZ2UKPiAr ICBzb3VyY2UgYW5kIHRoZSBgYGF1dG9nZW4uc2hgYCB0byB0aGUgcGF0Y2ggZGlyZWN0b3J5Lgo+ IGRpZmYgLS1naXQgYS9kb2MvZGV2X2NyZWF0ZV9uZXdfcGtnX3RlbXBsYXRlcy5yc3QgYi9kb2Mv ZGV2X2NyZWF0ZV9uZXdfcGtnX3RlbXBsYXRlcy5yc3QKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ IGluZGV4IDAwMDAwMDAwMDAwMC4uZDdjMjkyN2I2ODQ2Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBi L2RvYy9kZXZfY3JlYXRlX25ld19wa2dfdGVtcGxhdGVzLnJzdAo+IEBAIC0wLDAgKzEsNzcgQEAK PiArQ3JlYXRpbmcgTmV3IFBhY2thZ2UgVGVtcGxhdGVzCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ICsKPiArRm9yIGxhcmdlciBwcm9qZWN0cyBpdCBjYW4gYmUgY29udmVuaWVu dCB0byBoYXZlIHByb2plY3Qgc3BlY2lmaWMgcGFja2FnZQo+ICt0ZW1wbGF0ZXMuIFRoaXMgY2Fu IGJlIGFjaGlldmVkIGJ5IGVpdGhlciBtb2RpZnlpbmcgZXhpc3RpbmcgdGVtcGxhdGVzIG9yCj4g K2J5IGNyZWF0aW5nIGNvbXBsZXRlbHkgbmV3IHRlbXBsYXRlcy4KPiArCj4gK01vZGlmeWluZyBh IFRlbXBsYXRlCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+Cj4gKwo+ICtBIHRlbXBsYXRlIGNhbiBi ZSBtb2RpZmllZCBieSBwcm92aWRpbmcgbmV3IGlucHV0IGZpbGVzLiBUaGlzIGlzIGVhc2llcgo+ ICt0aGFuIGNyZWF0aW5nIGEgbmV3IHRlbXBsYXRlIGJ1dCBkb2VzIG5vdCBhbGxvdyB0byBzcGVj aWZ5IG5ldyB2YXJpYWJsZXMgdG8KPiArc3Vic3RpdHV0ZSBpbiB0aGUgaW5wdXQgZmlsZXMuCj4g Kwo+ICtQVFhkaXN0IGxvb2tzIGZvciB0ZW1wbGF0ZSBmaWxlcyB0aGUgc2FtZSB3YXkgaXQgbG9v a3MgZm9yIHJ1bGVzIGZpbGVzLiBUaGUKPiArb25seSBkaWZmZXJlbmNlIGlzLCB0aGF0IGl0IHNl YXJjaGVzIGluIHRoZSBgYHRlbXBsYXRlcy9gYCBzdWJkaXJlY3RvcnkuCj4gK1NvIGEgbW9kaWZp ZWQgYGAuL3J1bGVzL3RlbXBsYXRlcy90ZW1wbGF0ZS10YXJnZXQtbWFrZWBgIGNhbiBiZSB1c2Vk IHRvCj4gK3R3ZWFrIHRoZSBgYHRhcmdldGBgIHRlbXBsYXRlLgo+ICsKPiArQ3JlYXRpbmcgYSBO ZXcgVGVtcGxhdGUKPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KPiArCj4gK0ZvciBhIGNvbXBs ZXRlbHkgbmV3IHRlbXBsYXRlLCBzb21lIGJhc2ggc2NyaXB0aW5nIGlzIHJlcXVpcmVkLiBBbGwg c2hlbGwKPiArY29kZSBtdXN0IGJlIHBsYWNlZCBpbiBhIGZpbGUgbmFtZWQgbGlrZSB0aGlzOgo+ ICtgYC4vc2NyaXB0cy9saWIvcHR4ZF9saWJfKi5zaGBgLgo+ICsKPiArVGhlIG1pbmltdW0gcmVx dWlyZW1lbnQgZm9yIGEgbmV3IHRlbXBsYXRlIGlzOgo+ICstICBhIHNoZWxsIGZ1bmN0aW9uIHRo YXQgY3JlYXRlcyB0aGUgbmV3IHBhY2thZ2UKPiArLSAgcmVnaXN0ZXJpbmcgdGhlIG5ldyB0ZW1w bGF0ZQo+ICsKPiArLi4gY29kZS1ibG9jazo6IHNoCj4gKwo+ICsgICAgcHR4ZF90ZW1wbGF0ZV9u ZXdfbXlwa2coKSB7Cj4gKyAgICAgICAgIyBjcmVhdGUgdGhlIHBhY2thZ2UgaGVyZQo+ICsgICAg fQo+ICsgICAgZXhwb3J0IC1mIHB0eGRfdGVtcGxhdGVfbmV3X215cGtnCj4gKyAgICBwdHhkX3Rl bXBsYXRlX2hlbHBfbGlzdFskeyNwdHhkX3RlbXBsYXRlX2hlbHBfbGlzdFtAXX1dPSJteXBrZyIK PiArICAgIHB0eGRfdGVtcGxhdGVfaGVscF9saXN0WyR7I3B0eGRfdGVtcGxhdGVfaGVscF9saXN0 W0BdfV09ImNyZWF0ZSBhd2Vzb21lIG15cGtnIHBhY2thZ2UiCj4gKwo+ICtQVFhkaXN0IHByb3Zp ZGVzIHNldmVyYWwgaGVscGVyIGZ1bmN0aW9ucyB0byBzaW1wbGlmeSB0aGUgdGVtcGxhdGUuCj4g K1VzaW5nIHRob3NlIGZ1bmN0aW9ucywgdGhlIHBhY2thZ2UgY3JlYXRpb24gcHJvY2VzcyBpcyBz cGxpdCBpbnRvIHR3bwo+ICtwYXJ0czoKPiArCj4gKy0gIHF1ZXJ5IHRoZSB1c2VyIGZvciBpbnB1 dCBhbmQgZXhwb3J0IHZhcmlhYmxlcy4KPiArLSAgY3JlYXRlIHRoZSBuZXcgcGFja2FnZSBmaWxl cyBmcm9tIHRoZSB0ZW1wbGF0ZSBzb3VyY2UgZmlsZXMgYnkKPiArICAgc3Vic3RpdHV0aW5nIGFs bCBpbnN0YW5jZXMgb2YgYGBAPHZhcmlhYmxlPkBgYCB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUKPiAr ICAgY29ycmVzcG9uZGluZyB2YXJpYWJsZS4KPiArCj4gK0Egc2ltcGxlIHRlbXBsYXRlIGZ1bmN0 aW9uIGNvdWxkIGxvb2sgbGlrZSB0aGlzOgo+ICsKPiArLi4gY29kZS1ibG9jazo6IHNoCj4gKwo+ ICsgICAgcHR4ZF90ZW1wbGF0ZV9uZXdfbXlwa2coKSB7Cj4gKyAgICAgICAgcHR4ZF90ZW1wbGF0 ZV9yZWFkX2Jhc2ljICYmCj4gKyAgICAgICAgcHR4ZF90ZW1wbGF0ZV9yZWFkICJlbnRlciBkb3du bG9hZCBzZWN0aW9uIiBETF9TRUNUSU9OICJmb29iYXIiCj4gKyAgICAgICAgcHR4ZF90ZW1wbGF0 ZV9yZWFkX2F1dGhvciAmJgo+ICsgICAgICAgIGV4cG9ydCBzZWN0aW9uPSJsb2NhbF8ke2Rsc2Vj dGlvbn0iICYmCj4gKyAgICAgICAgcHR4ZF90ZW1wbGF0ZV93cml0ZV9ydWxlcwo+ICsgICAgfQo+ ICsKPiArVGhpcyB0ZW1wbGF0ZSByZXF1aXJlcyBgYHJ1bGVzL3RlbXBsYXRlcy90ZW1wbGF0ZS1t eXBrZy1tYWtlYGAgYW5kCj4gK2BgcnVsZXMvdGVtcGxhdGVzL3RlbXBsYXRlLW15cGtnLWluYGAg YXMgc291cmNlIGZpbGVzLiBUaGV5IGNvdWxkIGJlCj4gK2Rlcml2ZWQgZnJvbSB0aGUgYGB0YXJn ZXRgYCB0ZW1wbGF0ZSB3aXRoIGEgc2ltcGxlIG1vZGlmaWNhdGlvbjoKPiArCj4gKy4uIGNvZGUt YmxvY2s6OiBtYWtlCj4gKwo+ICsgICAgQFBBQ0tBR0VAX1NVRkZJWAk6PSB0YXIueHoKPiArICAg IEBQQUNLQUdFQF9VUkwJOj0gaHR0cDovL2RsLm15LWNvbXBhbnkubG9jYWwvZG93bmxvYWRzL0BE TF9TRUNUSU9OQC8kKEBQQUNLQUdFQCkuJChAUEFDS0FHRUBfU1VGRklYKQo+ICsKPiArVGhlIGhl bHBlciBmdW5jdGlvbnMgdGhhdCBhcmUgdXNlZCBpbiB0aGUgZXhhbXBsZSBhYm92ZSBhcmUgZGVm aW5lZCBpbgo+ICtgYHNjcmlwdHMvbGliL3B0eGRfbGliX3RlbXBsYXRlLnNoYGAgaW4gdGhlIFBU WGRpc3Qgc291cmNlIHRyZWUuCj4gKwo+ICtUaGUgdGVtcGxhdGUgaXMgYSBub3JtYWwgc2hlbGwg ZnVuY3Rpb24uIEFyYml0cmFyeSB0aGluZ3MgY2FuIGJlIGRvbmUgaGVyZQo+ICt0byBjcmVhdGUg dGhlIG5ldyBwYWNrYWdlLiBUaGUgaGVscGVyIGZ1bmN0aW9ucyBhcmUganVzdCB0aGUgbW9zdAo+ ICtjb252ZW5pZW50IHdheSB0byBjcmF0ZSBzaW1wbGUgdGVtcGxhdGVzLiBJdCBpcyBhbHNvIHBv c3NpYmxlIHRvIGNyZWF0ZQo+ICttb3JlIGZpbGVzLiBGb3IgZXhhbXBsZXMsIHRoZSBidWlsdGlu IGBgZ2VuaW1hZ2VgYCB0ZW1wbGF0ZSBjcmVhdGVzIGEgZXh0cmEKPiArY29uZmlnIGZpbGUgZm9y IHRoZSBuZXcgcGFja2FnZS4KPiBkaWZmIC0tZ2l0IGEvZG9jL2Rldl9kaXJfaGllcmFyY2h5LnJz dCBiL2RvYy9kZXZfZGlyX2hpZXJhcmNoeS5yc3QKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGlu ZGV4IDAwMDAwMDAwMDAwMC4uYmQxYWQ0MGQwYzE5Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2Rv Yy9kZXZfZGlyX2hpZXJhcmNoeS5yc3QKPiBAQCAtMCwwICsxLDEwOCBAQAo+ICsuLiBfZGlyZWN0 b3J5X2hpZXJhcmNoeToKPiArCj4gK1BUWGRpc3TigJlzIERpcmVjdG9yeSBIaWVyYXJjaHkKPiAr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArCj4gKy4uIG5vdGU6OiBSZWZlcmVuY2Vk IGRpcmVjdG9yaWVzIGFyZSBtZWFudCByZWxhdGl2ZSB0byB0aGUgUFRYZGlzdCBtYWluCj4gKyAg aW5zdGFsbGF0aW9uIGxvY2F0aW9uIChpZiBub3Qgb3RoZXJ3aXNlIHN0YXRlZCkuIElmIG5vdCBj b25maWd1cmVkCj4gKyAgZGlmZmVyZW50bHksIHRoaXMgbWFpbiBwYXRoIGlzIGBgL3Vzci9sb2Nh bC9saWIvcHR4ZGlzdC18cHR4ZGlzdFZlbmRvclZlcnNpb258YGAKPiArCj4gK1J1bGUgRmlsZXMK PiArfn5+fn5+fn5+fgo+ICsKPiArV2hlbiBidWlsZGluZyBhIHNpbmdsZSBwYWNrYWdlLCBQVFhk aXN0IG5lZWRzIHRoZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8KPiAraGFuZGxlIHRoZSBwYWNrYWdl LCBpLmUuIG9uIGhvdyB0byBnZXQgaXQgZnJvbSB0aGUgc291cmNlIHVwIHRvIHdoYXQgdGhlCj4g K3RhcmdldCBuZWVkcyBhdCBydW4tdGltZS4gVGhpcyBpbmZvcm1hdGlvbiBpcyBwcm92aWRlZCBi eSBhIHJ1bGUgZmlsZSBwZXIKPiArcGFja2FnZS4KPiArCj4gK1BUWGRpc3QgY29sbGVjdHMgYWxs IHJ1bGUgZmlsZXMgaW4gaXRzIGBgcnVsZXMvYGAgZGlyZWN0b3J5LiBXaGVuZXZlcgo+ICtQVFhk aXN0IGJ1aWxkcyBzb21ldGhpbmcsIGFsbCB0aGVzZSBydWxlIGZpbGVzIGFyZSBzY2FubmVkIGF0 IG9uY2UuCj4gK1RoZXNlIHJ1bGUgZmlsZXMgYXJlIGdsb2JhbCBydWxlIGZpbGVzLCB2YWxpZCBm b3IgYWxsIHByb2plY3RzLiBQVFhkaXN0Cj4gK3VzZXMgYSBtZWNoYW5pc20gdG8gYmUgYWJsZSB0 byBhZGQgb3IgcmVwbGFjZSBzcGVjaWZpYyBydWxlIGZpbGVzIG9uIGEKPiArcGVyIHByb2plY3Qg YmFzZS4gSWYgYSBgYHJ1bGVzL2BgIGRpcmVjdG9yeSBleGlzdHMgaW4gdGhlIGN1cnJlbnQKPiAr cHJvamVjdCwgaXRzIGNvbnRlbnQgaXMgc2Nhbm5lZCB0b28uIFRoZXNlIHByb2plY3QgbG9jYWwg cnVsZSBmaWxlcyBhcmUKPiArdXNlZCBpbiBhZGRpdGlvbiB0byB0aGUgZ2xvYmFsIHJ1bGUgZmls ZXMgb3Ig4oCTIGlmIHRoZXkgYXJlIHVzaW5nIHRoZQo+ICtzYW1lIG5hbWUgYXMgYSBnbG9iYWwg cnVsZSBmaWxlIOKAkyAqKnJlcGxhY2luZyoqIHRoZSBnbG9iYWwgcnVsZSBmaWxlLgo+ICsKPiAr VGhlIHJlcGxhY2luZyBtZWNoYW5pc20gY2FuIGJlIHVzZWQgdG8gZXh0ZW5kIG9yIGFkYXB0IHBh Y2thZ2VzIGZvcgo+ICtzcGVjaWZpYyBwcm9qZWN0IHJlcXVpcmVtZW50cy4gT3IgaXQgY2FuIGJl IHVzZWQgZm9yIGJ1ZyBmaXhpbmcgYnkKPiArYmFja3BvcnRpbmcgcnVsZSBmaWxlcyBmcm9tIG1v cmUgcmVjZW50IFBUWGRpc3QgcmV2aXNpb25zIHRvIHByb2plY3RzCj4gK3RoYXQgYXJlIHN0dWNr IHRvIGFuIG9sZGVyIFBUWGRpc3QgcmV2aXNpb24gZm9yIG1haW50ZW5hbmNlIG9ubHkuCj4gKwo+ ICtQYXRjaCBTZXJpZXMKPiArfn5+fn5+fn5+fn5+Cj4gKwo+ICtUaGVyZSBhcmUgbWFueSBwYWNr YWdlcyBpbiB0aGUgd2lsZCB0aGF0IGFyZSBub3QgY3Jvc3MgYnVpbGQgYXdhcmUuIFRoZXkKPiAr ZmFpbCBjb21waWxpbmcgc29tZSBmaWxlcywgdXNlIHdyb25nIGluY2x1ZGUgcGF0aHMgb3IgdHJ5 IHRvIGxpbmsKPiArYWdhaW5zdCBob3N0IGxpYnJhcmllcy4gVG8gYmUgc3VjY2Vzc2Z1bCBpbiB0 aGUgZW1iZWRkZWQgd29ybGQsIHRoZXNlCj4gK3R5cGVzIG9mIGZhaWx1cmVzIG11c3QgYmUgZml4 ZWQuIElmIHJlcXVpcmVkLCBQVFhkaXN0IHByb3ZpZGVzIHN1Y2gKPiArZml4ZXMgcGVyIHBhY2th Z2UuIFRoZXkgYXJlIG9yZ2FuaXplZCBpbiAqcGF0Y2ggc2VyaWVzKiBhbmQgY2FuIGJlIGZvdW5k Cj4gK2luIGEgYGBwYXRjaGVzL2BgIGRpcmVjdG9yeSB3aXRoaW4gYSBzdWJkaXJlY3RvcnkgdXNp bmcgdGhlIHNhbWUgbmFtZQo+ICthcyB0aGUgcGFja2FnZSBpdHNlbGYuCj4gKwo+ICtQVFhkaXN0 IHVzZXMgdGhlIHV0aWxpdHkgYGBwYXRjaGBgIG9yIGBgcXVpbHRgYCAob3IgYGBnaXRgYCBvbiBk ZW1hbmQpIHRvIGFwcGx5Cj4gK2FuIGV4aXN0aW5nIHBhdGNoIHNlcmllcyBhZnRlciBleHRyYWN0 aW5nIHRoZSBhcmNoaXZlLiBTbywgZXZlcnkgcGF0Y2ggc2VyaWVzCj4gK2NvbnRhaW5zIGEgc2V0 IG9mIHBhdGNoZXMgYW5kIG9uZSBgYHNlcmllc2BgIGZpbGUgdG8gZGVmaW5lIHRoZSBvcmRlciBp bgo+ICt3aGljaCB0aGUgcGF0Y2hlcyBtdXN0IGJlIGFwcGxpZWQuCj4gKwo+ICsuLiBub3RlOjog UGF0Y2hlcyBjYW4gYmUgY29tcHJlc3NlZC4KPiArCj4gK1BhdGNoZXMgYXJlIGxvb2tlZCBmb3Ig YXQgc2V2ZXJhbCBsb2NhdGlvbnM6Cj4gKwo+ICsxLiAgdGhlIGBgcGF0Y2hlcy9gYCBmb2xkZXIg aW4geW91ciBCU1AgKGBgJHtQVFhESVNUX1dPUktTUEFDRX0vcGF0Y2hlc2BgKQo+ICsKPiArMi4g IHRoZSBmb2xkZXIgYGBwYXRjaGVzL2BgIGZvbGRlciByZWxhdGl2ZSB0byB5b3VyIHNlbGVjdGVk IHBsYXRmb3JtY29uZmlnCj4gKyAgICBmaWxlIChgYCR7UFRYRElTVF9QTEFURk9STUNPTkZJR0RJ Un0vcGF0Y2hlc2BgKS4gSWYgeW91ciBwbGF0Zm9ybWNvbmZpZwo+ICsgICAgZmlsZSBpcyBhdCBg YGNvbmZpZ3MvfHB0eGRpc3RQbGF0Zm9ybUNvbmZpZ0RpcnwvcGxhdGZvcm1jb25maWdgYCwgdGhp cwo+ICsgICAgcGF0Y2ggZm9sZGVyIHdpbGwgYmUgYGBjb25maWdzL3xwdHhkaXN0UGxhdGZvcm1D b25maWdEaXJ8L3BhdGNoZXMvYGAuCj4gKwo+ICszLiAgdGhlIGBgcGF0Y2hlcy9gYCBmb2xkZXIg aW4gUFRYZGlzdCdzIG1haW4gaW5zdGFsbGF0aW9uIGRpcmVjdG9yeQo+ICsgICAgKGBgJHtQVFhE SVNUX1RPUERJUn0vcGF0Y2hlc2BgKQo+ICsKPiArVGhlIGxpc3QgaXMgdHJpZWQgZnJvbSBmaXJz dCB0byBsYXN0Lgo+ICtJZiBubyBwYXRjaGVzIHdlcmUgZm91bmQgaW4gb25lIG9mIHRoZSBsb2Nh dGlvbnMsIHRoZSBuZXh0IGxvY2F0aW9uIGlzIHRyaWVkLgo+ICtXaGVuIGFsbCBsb2NhdGlvbnMg aGF2ZSBiZWVuIHRyaWVkIHVuc3VjY2Vzc2Z1bGx5LCB0aGUgcGFja2FnZSBpcyBub3QgcGF0Y2hl ZC4KPiArCj4gK1RoaXMgc2VhcmNoIG9yZGVyIGNhbiBiZSB1c2VkIHRvIHVzZSBzcGVjaWZpYyBw YXRjaCBzZXJpZXMgZm9yIHNwZWNpZmljCj4gK2Nhc2VzLgo+ICsKPiArLSAgcGxhdGZvcm0gc3Bl Y2lmaWMKPiArCj4gKy0gIHByb2plY3Qgc3BlY2lmaWMKPiArCj4gKy0gIGNvbW1vbiBjYXNlCj4g Kwo+ICstICBidWcgZml4aW5nCj4gKwo+ICtUaGUgKmJ1ZyBmaXhpbmcqIGNhc2UgaXMgdXNlZCBp biBhY2NvcmRhbmNlIHRvIGEgcmVwbGFjZW1lbnQgb2YgYSBydWxlCj4gK2ZpbGUuIElmIHRoaXMg d2FzIGRvbmUgZHVlIHRvIGEgYmFja3BvcnQsIGFuZCB0aGUgbW9yZSByZWNlbnQgUFRYZGlzdAo+ ICtyZXZpc2lvbiBkb2VzIG5vdCBvbmx5IGV4Y2hhbmdlIHRoZSBydWxlIGZpbGUgYnV0IGFsc28g dGhlIHBhdGNoIHNlcmllcywKPiArdGhpcyBtZWNoYW5pc20gZW5zdXJlcyB0aGF0IGJvdGggcmVs ZXZhbnQgcGFydHMgY2FuIGJlIHVwZGF0ZWQgaW4gdGhlCj4gK3Byb2plY3QuCj4gKwo+ICtSdW50 aW1lIENvbmZpZ3VyYXRpb24KPiArfn5+fn5+fn5+fn5+fn5+fn5+fn5+Cj4gKwo+ICtNYW55IHBh Y2thZ2VzIGFyZSB1c2luZyBydW4tdGltZSBjb25maWd1cmF0aW9uIGZpbGVzIGFsb25nIHdpdGgg dGhlaXIKPiArZXhlY3V0YWJsZXMgYW5kIGxpYnJhcmllcy4gUFRYZGlzdCBwcm92aWRlcyBkZWZh dWx0IGNvbmZpZ3VyYXRpb24gZmlsZXMKPiArZm9yIHRoZSBtb3N0IGNvbW1vbiBjYXNlcy4gVGhl c2UgZmlsZXMgY2FuIGJlIGZvdW5kIGluIHRoZQo+ICtgYHByb2plY3Ryb290L2V0Y2BgIGRpcmVj dG9yeSBhbmQgdGhleSBhcmUgdXNpbmcgdGhlIHNhbWUgbmFtZXMgYXMgdGhlIG9uZXMKPiArYXQg cnVuLXRpbWUgKGFuZCB0aGVpciBpbnN0YWxsIGRpcmVjdG9yeSBvbiB0aGUgdGFyZ2V0IHNpZGUg d2lsbCBhbHNvIGJlCj4gK2BgL2V0Y2BgKS4KPiArCj4gK0J1dCBzb21lIG9mIHRoZXNlIGRlZmF1 bHQgY29uZmlndXJhdGlvbiBmaWxlcyBhcmUgZW1wdHksIGR1ZSB0byB0aGUKPiArYWJzZW5jZSBv ZiBhIGNvbW1vbiBjYXNlLiBUaGUgcHJvamVjdCBtdXN0IHByb3ZpZGUgcmVwbGFjZW1lbnRzIG9m IHRoZXNlCj4gK2ZpbGVzIHdpdGggYSBtb3JlIHVzZWZ1bCBjb250ZW50IGluIGV2ZXJ5IGNhc2Ug d2hlcmUgdGhlIChlbXB0eSkgZGVmYXVsdAo+ICtvbmUgZG9lcyBub3QgbWVldCB0aGUgdGFyZ2V0 4oCZcyByZXF1aXJlbWVudHMuCj4gKwo+ICtQVFhkaXN0IGZpcnN0IHNlYXJjaGVzIGluIHRoZSBs b2NhbCBwcm9qZWN0IGRpcmVjdG9yeSBmb3IgYSBzcGVjaWZpYwo+ICtjb25maWd1cmF0aW9uIGZp bGUgYW5kIGZhbGxzIGJhY2sgdG8gdXNlIHRoZSBkZWZhdWx0IG9uZSBpZiBub25lIGV4aXN0cwo+ ICtsb2NhbGx5LiBSZWZlciBzZWN0aW9uIDpyZWY6YGluc3RhbGxfYWx0ZXJuYXRpdmVgIGZvciBm dXJ0aGVyCj4gK2RldGFpbHMgaW4gd2hpY2ggb3JkZXIgYW5kIGxvY2F0aW9ucyBQVFhkaXN0IHNl YXJjaGVzIGZvciB0aGVzZSBraW5kIG9mIGZpbGVzLgo+ICsKPiArQSBwb3B1bGFyIGV4YW1wbGUg aXMgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBgYC9ldGMvZnN0YWJgYC4gVGhlIGRlZmF1bHQKPiAr b25lIGNvbWluZyB3aXRoIFBUWGRpc3Qgd29ya3MgZm9yIHRoZSBtb3N0IGNvbW1vbiBjYXNlcy4g QnV0IGlmIG91cgo+ICtwcm9qZWN0IHJlcXVpcmVzIGEgc3BlY2lhbCBzZXR1cCwgd2UgY2FuIGp1 c3QgY29weSB0aGUgZGVmYXVsdCBvbmUgdG8KPiArdGhlIGxvY2FsIGBgLi9wcm9qZWN0cm9vdC9l dGMvZnN0YWJgYCwgbW9kaWZ5IGl0IGFuZCB3ZSBhcmUgZG9uZS4gVGhlCj4gK25leHQgdGltZSBQ VFhkaXN0IGJ1aWxkcyB0aGUgcm9vdCBmaWxlc3lzdGVtIGl0IHdpbGwgdXNlIHRoZSBsb2NhbAo+ ICtgYGZzdGFiYGAgaW5zdGVhZCBvZiB0aGUgZ2xvYmFsIChkZWZhdWx0KSBvbmUuCj4gZGlmZiAt LWdpdCBhL2RvYy9kZXZfbGF5ZXJzX2luX3B0eGRpc3QucnN0IGIvZG9jL2Rldl9sYXllcnNfaW5f cHR4ZGlzdC5yc3QKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4u ZWM5MmM4YzhhODZjCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RvYy9kZXZfbGF5ZXJzX2luX3B0 eGRpc3QucnN0Cj4gQEAgLTAsMCArMSwxMTEgQEAKPiArLi4gX2xheWVycy1pbi1wdHhkaXN0Ogo+ ICsKPiArTGF5ZXJzIGluIFBUWGRpc3QKPiArLS0tLS0tLS0tLS0tLS0tLS0KPiArCj4gK0ZvciBi ZXR0ZXIgbWFpbnRlbmFuY2Ugb3Igb3RoZXIgcmVhc29ucywgYSBQVFhkaXN0IHByb2plY3QgY2Fu IGJlIHNwbGl0Cj4gK2ludG8gbXVsdGlwbGUgbGF5ZXJzLiBFYWNoIGxheWVyIGhhcyBleGFjdGx5 IHRoZSBzYW1lIGRpcmVjdG9yeSBoaWVyYXJjaHkKPiArYXMgZGVzY3JpYmVkIGluIDpyZWY6YGRp cmVjdG9yeV9oaWVyYXJjaHlgIGFuZCBvdGhlciBjaGFwdGVycy4KPiArCj4gK0FsbCBsYXllcnMg YXJlIGV4cGxpY2l0bHkgc3RhY2tlZCBpbiB0aGUgZmlsZXN5c3RlbS4gVGhlIHRvcCBsYXllciBp cyB0aGUKPiArd29ya3NwYWNlIG9mIHRoZSBQVFhkaXN0IHByb2plY3QuIEFueSBgYHNlbGVjdGVk XypgYCBsaW5rcyBhbmQgdGhlIHBsYXRmb3JtCj4gK2J1aWxkIGRpcmVjdG9yeSBhcmUgY3JlYXRl ZCBoZXJlLiBUaGUgbGF5ZXIgYmVsb3cgaXMgZGVmaW5lZCBieSB0aGUKPiArc3ViZGlyZWN0b3J5 IG9yIHN5bWxpbmsgbmFtZWQgYGBiYXNlL2BgLiBNb3JlIGNhbiBiZSBzdGFja2VkIHRoZSBzYW1l Cj4gK3dheSwgc28gYGBiYXNlL2Jhc2UvYGAgaXMgdGhlIHRoaXJkIGxheWVyIGFuZCBzbyBvbi4K PiArSW4gbWFueSB3YXlzLCBQVFhkaXN0IGl0c2VsZiBjYW4gYmUgY29uc2lkZXJlZCBhcyB0aGUg Ym90dG9tIGxheWVyLiBUaGlzIGlzCj4gK2VpdGhlciBpbXBsaWNpdCBvciBleHBsaWNpdCB3aXRo IG9uZSBsYXN0IGBgYmFzZS9gYCBzeW1saW5rLgo+ICsKPiArQSBwcm9qZWN0IGNhbiBvdmVyd3Jp dGUgZmlsZXMgcHJvdmlkZWQgYnkgUFRYZGlzdCBpbiBtYW55IGRpZmZlcmVudCB3YXlzLAo+ICtl LmcuIHJ1bGUgZmlsZXMgb3IgZmlsZXMgaW5zdGFsbGVkIHdpdGggOnJlZjpgaW5zdGFsbF9hbHRl cm5hdGl2ZWAgZXRjLgo+ICtUaGlzIGNvbmNlcHQgZXhwYW5kcyBuYXR1cmFsbHkgdG8gbGF5ZXJz LiBFYWNoIGxheWVyIGNhbiBvdmVyd3JpdGUgZmlsZXMKPiArcHJvdmlkZWQgYnkgbG93ZXIgbGF5 ZXJzIGluIHRoZSBleGFjdCBzYW1lIHdheS4gQW55IGZpbGVzIGFyZSBhbHdheXMKPiArc2VhcmNo ZWQgZm9yIGluIGEgc3RyaWN0IGxheWVyIGJ5IGxheWVyIG9yZGVyLgo+ICsKPiArV3JpdGluZyBM YXllciBBd2FyZSBSdWxlcwo+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Cj4gKwo+ICtGb3Ig dGhlIG1vc3QgcGFydCwgcGFja2FnZSBydWxlcyB3b3JrIGp1c3QgYXMgZXhwZWN0ZWQgd2hlbiBt dWx0aXBsZSBsYXllcnMKPiArYXJlIHVzZWQuIEFueSBsYXllciBzcGVjaWZpYyBoYW5kbGluZyBp cyBkb25lIGltcGxpY2l0bHkgYnkgUFRYZGlzdC4KPiArSG93ZXZlciwgdGhlcmUgYXJlIGEgZmV3 IHRoaW5ncyB0aGF0IG5lZWQgc3BlY2lhbCBoYW5kbGluZy4KPiArCj4gK1RoZSB2YXJpYWJsZXMg OnJlZjpgUFRYRElTVF9XT1JLU1BBQ0U8cHR4ZGlzdF93b3Jrc3BhY2U+YCBhbmQKPiArOnJlZjpg UFRYRElTVF9QTEFURk9STUNPTkZJR0RJUmA8cHR4ZGlzdF9wbGF0Zm9ybWNvbmZpZ2Rpcj5gIGFs d2F5cyByZWZlcgo+ICt0byB0aGUgZGlyZWN0b3JpZXMgaW4gdGhlIHRvcCBsYXllci4gVGhlc2Ug dmFyaWFibGVzIG1pZ2h0IGJlIHVzZWQgaW4gcnVsZXMKPiArZmlsZXMgbGlrZSB0aGlzOgo+ICsK PiArLi4gY29kZS1ibG9jazo6IG1ha2UKPiArCj4gKyAgIE1ZX0tFUk5FTF9DT05GSUcgOj0gJChQ VFhESVNUX1BMQVRGT1JNQ09ORklHRElSKS9rZXJuZWxjb25maWcuc3BlY2lhbAo+ICsKPiArSWYg dGhlIHJlZmVyZW5jZWQgZmlsZSBpcyBpbiBhbnkgbGF5ZXIgYnV0IHRoZSB0b3Agb25lIHRoZW4g aXQgd2lsbCBub3QKPiArYmUgZm91bmQuIFRvIGhhbmRsZSB1c2UtY2FzZXMgbGlrZSB0aGlzLCB0 aGUgbWFjcm9zIDpyZWY6YGluX3BhdGhgIGFuZAo+ICs6cmVmOmBpbl9wbGF0Zm9ybWNvbmZpZ2Rp cmAgY2FuIGJlIHVzZWQ6Cj4gKwo+ICsuLiBjb2RlLWJsb2NrOjogbWFrZQo+ICsKPiArICAgTVlf S0VSTkVMX0NPTkZJRyA6PSAkKGNhbGwgcHR4L2luLXBsYXRmb3JtY29uZmlnZGlyLCBrZXJuZWxj b25maWcuc3BlY2lhbCkKPiArCj4gK1RoaXMgd2F5LCB0aGUgbGF5ZXJzIGFyZSBzZWFyY2hlZCB0 b3AgdG8gYm90dG9tIHVudGlsIHRoZSBjb25maWcgZmlsZSBpcwo+ICtmb3VuZC4KPiArCj4gK1BU WGRpc3QgQ29uZmlnIEZpbGVzIHdpdGggTXVsdGlwbGUgTGF5ZXJzCj4gK35+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Cj4gKwo+ICtJbiBtYW55IGNhc2VzIGEgbGF5ZXIg bWF5IHdhbnQgdG8gbW9kaWZ5IHRoZSAqKnB0eGNvbmZpZyoqIGJ5IGVuYWJsaW5nIG9yCj4gK2Rp c2FibGluZyBzb21lIG9wdGlvbnMuIEFueSBjaGFuZ2VzIG11c3QgYmUgcHJvcGFnYXRlZCB0aHJv dWdoIHRoZSB3aG9sZQo+ICtsYXllciBzdGFjay4KPiArCj4gK1RoZSBmZWF0dXJlcyBhbmQgd29y a2Zsb3cgZGVzY3JpYmVkIGhlcmUgYXBwbHkgdG8gdGhlICoqcHR4Y29uZmlnKiosIHRoZQo+ICsq KnBsYXRmb3JtY29uZmlnKiogYW5kIGFueSAqKmNvbGxlY3Rpb25jb25maWcqKiB1c2VkIGluIHRo ZSBwcm9qZWN0Lgo+ICsKPiArVG8gZG8gdGhpcywgUFRYZGlzdCBzdG9yZXMgYSBkZWx0YSBjb25m aWcgdG8gdGhlIGxheWVyIGJlbG93IGFuZCBhIGZ1bGwKPiArY29uZmlnIGZpbGUgaW4gZWFjaCBs YXllci4gSWYgdGhlIHR3byBmaWxlcyBhcmUgbWlzc2luZyB0aGVuIHRoZSBjb25maWcgaXMKPiAr dW5jaGFuZ2VkLiBUaGUgYm90dG9tIGxheWVyIGhhcyBvbmx5IHRoZSBjb25maWcgZmlsZSBhbmQg bm8gZGVsdGEuCj4gKwo+ICtBdCBydW50aW1lLCBQVFhkaXN0IHdpbGwgYWx3YXlzIHVzZSB0aGUg ZnVsbCBjb25maWcgZmlsZSBpbiB0aGUgdG9wIGxheWVyCj4gK3doZXJlIHRoZSBjb25maWcgZXhp c3RzLiBCZWZvcmUgZG9pbmcgc28sIGl0IHdpbGwgZW5zdXJlIHRoYXQgdGhlIGNvbmZpZyBpcwo+ ICtjb25zaXN0ZW50IGFjcm9zcyBhbGwgbGF5ZXJzLiBUaGlzIG1lYW5zIHRoYXQsIGZvciBhbnkg bGF5ZXIgdGhhdCBjb250YWlucyBhCj4gK2RlbHRhIGNvbmZpZywgdGhlIGZ1bGwgY29uZmlnIGZp bGUgb2YgdGhlIGxheWVyIGJlbG93IGhhcyBub3QgY2hhbmdlZCBzaW5jZQo+ICt0aGUgZGVsdGEg Y29uZmlnIHdhcyBsYXN0IHVwZGF0ZWQuIElmIGFueSBpbmNvbnNpc3RlbmN5IGlzIGRldGVjdGVk LAo+ICtQVFhkaXN0IHdpbGwgYWJvcnQuCj4gKwo+ICtGb3IgYW55IGNvbW1hbmQgdGhhdCBtb2Rp ZmllcyB0aGUgY29uZmlnIGZpbGUsIGV4Y2VwdCBgYG9sZGNvbmZpZ2BgLAo+ICtQVFhkaXN0IHdp bGwgdXNlIGtjb25maWcgaW1wbGljaXRseSBvbiBhbGwgbGF5ZXJzIHRvIGNoZWNrIGlmIHRoZSBj b25maWcKPiArZm9yIHRoaXMgbGF5ZXIgaXMgdXAgdG8gZGF0ZS4gVGhpcyBpcyBhIHN0cmljdGVy IGNoZWNrIHRoYW4gdGhlIGNvbnNpc3RlbmN5Cj4gK3ZhbGlkYXRpb24uIEZvciBleGFtcGxlLCBp ZiBhIG5ldyBwYWNrYWdlIHdhcyBhZGRlZCB0byBhIGxheWVyIHdpdGhvdXQKPiArdXBkYXRpbmcg dGhlICoqcHR4Y29uZmlnKiogdGhlbiB0aGlzIHdpbGwgYmUgZGV0ZWN0ZWQgYW5kIFBUWGRpc3Qg d2lsbAo+ICthYm9ydC4gSWYgYWxsIG90aGVyIGxheWVycyBhcmUgdXAgdG8gZGF0ZSwgdGhlbiBQ VFhkaXN0IHdpbGwgdXNlIHRoZSBkZWx0YQo+ICtjb25maWcgb2YgdGhlIHRvcCBsYXllciwgYXBw bHkgaXQgdG8gdGhlIGZ1bGwgY29uZmlnIG9mIHRoZSBsYXllciBiZWxvdwo+ICthbmQgZXhlY3V0 ZSB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgd2l0aCB0aGUgcmVzdWx0aW5nIGNvbmZpZyBmaWxlLgo+ ICsKPiArLi4gbm90ZTo6IElmIHRoZSBjb25maWcgZmlsZSBkb2VzIG5vdCBleGlzdCB5ZXQgb24g dGhlIHRvcCBsYXllciwgdGhlbiBpdAo+ICsgIHdpbGwgYmUgY3JlYXRlZCBpZiBjaGFuZ2VzIHRv IHRoZSBjb25maWcgYXJlIG1hZGUuIFNpbWlsYXJseSB0aGUgY29uZmlnCj4gKyAgd2lsbCBiZSBk ZWxldGVkIGlmIHRoZSBkZWx0YSBpcyBlbXB0eSBhZnRlciB0aGUgY2hhbmdlcy4gSW4gZWl0aGVy IGNhc2UKPiArICBpdCBtYXkgYmUgbmVjZXNzYXJ5IHRvIHVwZGF0ZSBhbnkgYGBzZWxlY3RlZF8q YGAgbGluayB0byBwb2ludCB0byB0aGUKPiArICBjb3JyZWN0IGNvbmZpZy4KPiArCj4gK0lmIFBU WGRpc3QgZGV0ZWN0cyBhbiBpbmNvbnNpc3RlbmN5IG9yIGFuIG91dCBvZiBkYXRlIGNvbmZpZyBm aWxlIHRoZW4gaXQKPiArbXVzdCBiZSB1cGRhdGVkIGJlZm9yZSB0aGV5IGNhbiBiZSB1c2VkLiBU aGlzIGNhbiBiZSBkb25lIGJ5IHVzaW5nIHRoZQo+ICtgYG9sZGNvbmZpZ2BgIGNvbW1hbmQuIElu IHRoaXMgc3BlY2lhbCBjYXNlLCBQVFhkaXN0IHdpbGwgaXRlcmF0ZSBmcm9tIHRoZQo+ICtib3R0 b20gdG8gdGhlIHRvcCBsYXllciBhbmQgcnVuIGBgb2xkY29uZmlnYGAgZm9yIGVhY2ggb2YgdGhl bS4gSXQgd2lsbAo+ICt1c2UgdGhlIGRlbHRhIGNvbmZpZyBhcHBsaWVkIHRvIHRoZSBmdWxsIGNv bmZpZyBvZiB0aGUgbGF5ZXIgYmVsb3cgYXQgZWFjaAo+ICtzdGVwLiBUaGlzIG1lYW5zIHRoYXQg aXQncyBwb3NzaWJsZSB0byBlbmFibGUgb3IgZGlzYWJsZSBhIG9wdGlvbiBpbiB0aGUKPiArYm90 dG9tIGxheWVyIGFuZCBgYG9sZGNvbmZpZ2BgIHdpbGwgcHJvcGFnYXRlIHRoaXMgY2hhbmdlIHRv IGFsbCBvdGhlcgo+ICtsYXllcnMuCj4gKwo+ICtQYWNrYWdlcyB3aXRoIGtjb25maWcgQmFzZWQg Q29uZmlnIEZpbGVzCj4gK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K PiArCj4gK0ZvciBwYWNrYWdlcyBzdWNoIGFzIHRoZSBMaW51eCBrZXJuZWwgdGhhdCBoYXZlIGtj b25maWcgYmFzZWQgY29uZmlnIGZpbGVzLAo+ICthIGxvdCBvZiB0aGUgaW5mcmFzdHJ1Y3R1cmUg dG8gaGFuZGxlIGNvbmZpZyBmaWxlcyBhbmQgZGVsdGFzIGFjcm9zcwo+ICttdWx0aXBsZSBsYXll cnMgY2FuIGJlIHJldXNlZC4gQ29uc2lzdGVuY3kgdmFsaWRhdGlvbiBpcyBkb25lIGltcGxpY2l0 bHkKPiArYW5kIGBgbWVudWNvbmZpZ2BgIGFuZCBvdGhlciBrY29uZmlnIGNvbW1hbmRzIHdpbGwg dXNlIGNvbmZpZyBmaWxlcyBhbmQKPiArZGVsdGFzIGFzIGV4cGVjdGVkLgo+ICsKPiArSXQncyBu b3QgcG9zc2libGUgdG8gaW1wbGljaXRseSBydW4gYGBvbGRjb25maWdgYCBvbiBvdGhlciBsYXll cnMgKHRoaXMgbWF5Cj4gK3JlcXVpcmUgYSBkaWZmZXJlbnQgc291cmNlIHRyZWUgZm9yIHRoZSBw YWNrYWdlcyksIHNvIGFueSBpbmNvbnNpc3RlbmNpZXMKPiArbXVzdCBiZSByZXNvbHZlZCBtYW51 YWxseSBieSBydW5uaW5nIGBgb2xkY29uZmlnYGAgZXhwbGljaXRseSBvbiBlYWNoCj4gK2xheWVy Lgo+ICsKPiArVGhlIG1ha2UgbWFjcm9zIHRoYXQgcHJvdmlkZSB0aGVzZSBmZWF0dXJlcyBhcmUg Y3VycmVudGx5IHVzZWQgYnkgdGhlCj4gK2JhcmVib3ggYW5kIGtlcm5lbCBwYWNrYWdlcyBhbmQg dGVtcGxhdGVzLgo+IGRpZmYgLS1naXQgYS9kb2MvZGV2X21hbnVhbC5yc3QgYi9kb2MvZGV2X21h bnVhbC5yc3QKPiBpbmRleCA1MDgyN2I2YTljZGQuLjQ3YTc3YTliZTYyZiAxMDA2NDQKPiAtLS0g YS9kb2MvZGV2X21hbnVhbC5yc3QKPiArKysgYi9kb2MvZGV2X21hbnVhbC5yc3QKPiBAQCAtNSwx NzU4ICs1LDEyIEBAIFBUWGRpc3QgRGV2ZWxvcGVy4oCZcyBNYW51YWwKPiAgCj4gIFRoaXMgY2hh cHRlciBzaG93cyBhbGwgKG9yIG1vc3QpIG9mIHRoZSBkZXRhaWxzIG9mIGhvdyBQVFhkaXN0IHdv cmtzLgo+ICAKPiAtLSAgd2hlcmUgYXJlIHRoZSBmaWxlcyBzdG9yZWQgdGhhdCBQVFhkaXN0IHVz ZXMgd2hlbiBidWlsZGluZyBwYWNrYWdlcwo+IC0KPiAtLSAgaG93IHBhdGNoaW5nIHdvcmtzCj4g LQo+IC0tICB3aGVyZSBpcyBQVFhkaXN0IGZldGNoaW5nIGEgcGFja2FnZeKAmXMgcnVuLXRpbWUg Y29uZmlndXJhdGlvbiBmaWxlcwo+IC0gICBmcm9tCj4gLQo+IC0tICBob3cgdG8gY29udHJvbCBh IHBhY2thZ2XigJlzIGJ1aWxkIHN0YWdlcwo+IC0KPiAtLSAgaG93IHRvIGFkZCBuZXcgcGFja2Fn ZXMKPiAtCj4gLS4uIF9kaXJlY3RvcnlfaGllcmFyY2h5Ogo+IC0KPiAtUFRYZGlzdOKAmXMgRGly ZWN0b3J5IEhpZXJhcmNoeQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0KPiAt Li4gbm90ZTo6IFJlZmVyZW5jZWQgZGlyZWN0b3JpZXMgYXJlIG1lYW50IHJlbGF0aXZlIHRvIHRo ZSBQVFhkaXN0IG1haW4KPiAtICBpbnN0YWxsYXRpb24gbG9jYXRpb24gKGlmIG5vdCBvdGhlcndp c2Ugc3RhdGVkKS4gSWYgbm90IGNvbmZpZ3VyZWQKPiAtICBkaWZmZXJlbnRseSwgdGhpcyBtYWlu IHBhdGggaXMgYGAvdXNyL2xvY2FsL2xpYi9wdHhkaXN0LXxwdHhkaXN0VmVuZG9yVmVyc2lvbnxg YAo+IC0KPiAtUnVsZSBGaWxlcwo+IC1+fn5+fn5+fn5+Cj4gLQo+IC1XaGVuIGJ1aWxkaW5nIGEg c2luZ2xlIHBhY2thZ2UsIFBUWGRpc3QgbmVlZHMgdGhlIGluZm9ybWF0aW9uIG9uIGhvdyB0bwo+ IC1oYW5kbGUgdGhlIHBhY2thZ2UsIGkuZS4gb24gaG93IHRvIGdldCBpdCBmcm9tIHRoZSBzb3Vy Y2UgdXAgdG8gd2hhdCB0aGUKPiAtdGFyZ2V0IG5lZWRzIGF0IHJ1bi10aW1lLiBUaGlzIGluZm9y bWF0aW9uIGlzIHByb3ZpZGVkIGJ5IGEgcnVsZSBmaWxlIHBlcgo+IC1wYWNrYWdlLgo+IC0KPiAt UFRYZGlzdCBjb2xsZWN0cyBhbGwgcnVsZSBmaWxlcyBpbiBpdHMgYGBydWxlcy9gYCBkaXJlY3Rv cnkuIFdoZW5ldmVyCj4gLVBUWGRpc3QgYnVpbGRzIHNvbWV0aGluZywgYWxsIHRoZXNlIHJ1bGUg ZmlsZXMgYXJlIHNjYW5uZWQgYXQgb25jZS4KPiAtVGhlc2UgcnVsZSBmaWxlcyBhcmUgZ2xvYmFs IHJ1bGUgZmlsZXMsIHZhbGlkIGZvciBhbGwgcHJvamVjdHMuIFBUWGRpc3QKPiAtdXNlcyBhIG1l Y2hhbmlzbSB0byBiZSBhYmxlIHRvIGFkZCBvciByZXBsYWNlIHNwZWNpZmljIHJ1bGUgZmlsZXMg b24gYQo+IC1wZXIgcHJvamVjdCBiYXNlLiBJZiBhIGBgcnVsZXMvYGAgZGlyZWN0b3J5IGV4aXN0 cyBpbiB0aGUgY3VycmVudAo+IC1wcm9qZWN0LCBpdHMgY29udGVudCBpcyBzY2FubmVkIHRvby4g VGhlc2UgcHJvamVjdCBsb2NhbCBydWxlIGZpbGVzIGFyZQo+IC11c2VkIGluIGFkZGl0aW9uIHRv IHRoZSBnbG9iYWwgcnVsZSBmaWxlcyBvciDigJMgaWYgdGhleSBhcmUgdXNpbmcgdGhlCj4gLXNh bWUgbmFtZSBhcyBhIGdsb2JhbCBydWxlIGZpbGUg4oCTICoqcmVwbGFjaW5nKiogdGhlIGdsb2Jh bCBydWxlIGZpbGUuCj4gLQo+IC1UaGUgcmVwbGFjaW5nIG1lY2hhbmlzbSBjYW4gYmUgdXNlZCB0 byBleHRlbmQgb3IgYWRhcHQgcGFja2FnZXMgZm9yCj4gLXNwZWNpZmljIHByb2plY3QgcmVxdWly ZW1lbnRzLiBPciBpdCBjYW4gYmUgdXNlZCBmb3IgYnVnIGZpeGluZyBieQo+IC1iYWNrcG9ydGlu ZyBydWxlIGZpbGVzIGZyb20gbW9yZSByZWNlbnQgUFRYZGlzdCByZXZpc2lvbnMgdG8gcHJvamVj dHMKPiAtdGhhdCBhcmUgc3R1Y2sgdG8gYW4gb2xkZXIgUFRYZGlzdCByZXZpc2lvbiBmb3IgbWFp bnRlbmFuY2Ugb25seS4KPiAtCj4gLVBhdGNoIFNlcmllcwo+IC1+fn5+fn5+fn5+fn4KPiAtCj4g LVRoZXJlIGFyZSBtYW55IHBhY2thZ2VzIGluIHRoZSB3aWxkIHRoYXQgYXJlIG5vdCBjcm9zcyBi dWlsZCBhd2FyZS4gVGhleQo+IC1mYWlsIGNvbXBpbGluZyBzb21lIGZpbGVzLCB1c2Ugd3Jvbmcg aW5jbHVkZSBwYXRocyBvciB0cnkgdG8gbGluawo+IC1hZ2FpbnN0IGhvc3QgbGlicmFyaWVzLiBU byBiZSBzdWNjZXNzZnVsIGluIHRoZSBlbWJlZGRlZCB3b3JsZCwgdGhlc2UKPiAtdHlwZXMgb2Yg ZmFpbHVyZXMgbXVzdCBiZSBmaXhlZC4gSWYgcmVxdWlyZWQsIFBUWGRpc3QgcHJvdmlkZXMgc3Vj aAo+IC1maXhlcyBwZXIgcGFja2FnZS4gVGhleSBhcmUgb3JnYW5pemVkIGluICpwYXRjaCBzZXJp ZXMqIGFuZCBjYW4gYmUgZm91bmQKPiAtaW4gYSBgYHBhdGNoZXMvYGAgZGlyZWN0b3J5IHdpdGhp biBhIHN1YmRpcmVjdG9yeSB1c2luZyB0aGUgc2FtZSBuYW1lCj4gLWFzIHRoZSBwYWNrYWdlIGl0 c2VsZi4KPiAtCj4gLVBUWGRpc3QgdXNlcyB0aGUgdXRpbGl0eSBgYHBhdGNoYGAgb3IgYGBxdWls dGBgIChvciBgYGdpdGBgIG9uIGRlbWFuZCkgdG8gYXBwbHkKPiAtYW4gZXhpc3RpbmcgcGF0Y2gg c2VyaWVzIGFmdGVyIGV4dHJhY3RpbmcgdGhlIGFyY2hpdmUuIFNvLCBldmVyeSBwYXRjaCBzZXJp ZXMKPiAtY29udGFpbnMgYSBzZXQgb2YgcGF0Y2hlcyBhbmQgb25lIGBgc2VyaWVzYGAgZmlsZSB0 byBkZWZpbmUgdGhlIG9yZGVyIGluCj4gLXdoaWNoIHRoZSBwYXRjaGVzIG11c3QgYmUgYXBwbGll ZC4KPiAtCj4gLS4uIG5vdGU6OiBQYXRjaGVzIGNhbiBiZSBjb21wcmVzc2VkLgo+IC0KPiAtUGF0 Y2hlcyBhcmUgbG9va2VkIGZvciBhdCBzZXZlcmFsIGxvY2F0aW9uczoKPiAtCj4gLTEuICB0aGUg YGBwYXRjaGVzL2BgIGZvbGRlciBpbiB5b3VyIEJTUCAoYGAke1BUWERJU1RfV09SS1NQQUNFfS9w YXRjaGVzYGApCj4gLQo+IC0yLiAgdGhlIGZvbGRlciBgYHBhdGNoZXMvYGAgZm9sZGVyIHJlbGF0 aXZlIHRvIHlvdXIgc2VsZWN0ZWQgcGxhdGZvcm1jb25maWcKPiAtICAgIGZpbGUgKGBgJHtQVFhE SVNUX1BMQVRGT1JNQ09ORklHRElSfS9wYXRjaGVzYGApLiBJZiB5b3VyIHBsYXRmb3JtY29uZmln Cj4gLSAgICBmaWxlIGlzIGF0IGBgY29uZmlncy98cHR4ZGlzdFBsYXRmb3JtQ29uZmlnRGlyfC9w bGF0Zm9ybWNvbmZpZ2BgLCB0aGlzCj4gLSAgICBwYXRjaCBmb2xkZXIgd2lsbCBiZSBgYGNvbmZp Z3MvfHB0eGRpc3RQbGF0Zm9ybUNvbmZpZ0RpcnwvcGF0Y2hlcy9gYC4KPiAtCj4gLTMuICB0aGUg YGBwYXRjaGVzL2BgIGZvbGRlciBpbiBQVFhkaXN0J3MgbWFpbiBpbnN0YWxsYXRpb24gZGlyZWN0 b3J5Cj4gLSAgICAoYGAke1BUWERJU1RfVE9QRElSfS9wYXRjaGVzYGApCj4gLQo+IC1UaGUgbGlz dCBpcyB0cmllZCBmcm9tIGZpcnN0IHRvIGxhc3QuCj4gLUlmIG5vIHBhdGNoZXMgd2VyZSBmb3Vu ZCBpbiBvbmUgb2YgdGhlIGxvY2F0aW9ucywgdGhlIG5leHQgbG9jYXRpb24gaXMgdHJpZWQuCj4g LVdoZW4gYWxsIGxvY2F0aW9ucyBoYXZlIGJlZW4gdHJpZWQgdW5zdWNjZXNzZnVsbHksIHRoZSBw YWNrYWdlIGlzIG5vdCBwYXRjaGVkLgo+IC0KPiAtVGhpcyBzZWFyY2ggb3JkZXIgY2FuIGJlIHVz ZWQgdG8gdXNlIHNwZWNpZmljIHBhdGNoIHNlcmllcyBmb3Igc3BlY2lmaWMKPiAtY2FzZXMuCj4g LQo+IC0tICBwbGF0Zm9ybSBzcGVjaWZpYwo+IC0KPiAtLSAgcHJvamVjdCBzcGVjaWZpYwo+IC0K PiAtLSAgY29tbW9uIGNhc2UKPiAtCj4gLS0gIGJ1ZyBmaXhpbmcKPiAtCj4gLVRoZSAqYnVnIGZp eGluZyogY2FzZSBpcyB1c2VkIGluIGFjY29yZGFuY2UgdG8gYSByZXBsYWNlbWVudCBvZiBhIHJ1 bGUKPiAtZmlsZS4gSWYgdGhpcyB3YXMgZG9uZSBkdWUgdG8gYSBiYWNrcG9ydCwgYW5kIHRoZSBt b3JlIHJlY2VudCBQVFhkaXN0Cj4gLXJldmlzaW9uIGRvZXMgbm90IG9ubHkgZXhjaGFuZ2UgdGhl IHJ1bGUgZmlsZSBidXQgYWxzbyB0aGUgcGF0Y2ggc2VyaWVzLAo+IC10aGlzIG1lY2hhbmlzbSBl bnN1cmVzIHRoYXQgYm90aCByZWxldmFudCBwYXJ0cyBjYW4gYmUgdXBkYXRlZCBpbiB0aGUKPiAt cHJvamVjdC4KPiAtCj4gLVJ1bnRpbWUgQ29uZmlndXJhdGlvbgo+IC1+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KPiAtCj4gLU1hbnkgcGFja2FnZXMgYXJlIHVzaW5nIHJ1bi10aW1lIGNvbmZpZ3VyYXRp b24gZmlsZXMgYWxvbmcgd2l0aCB0aGVpcgo+IC1leGVjdXRhYmxlcyBhbmQgbGlicmFyaWVzLiBQ VFhkaXN0IHByb3ZpZGVzIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlcwo+IC1mb3IgdGhlIG1v c3QgY29tbW9uIGNhc2VzLiBUaGVzZSBmaWxlcyBjYW4gYmUgZm91bmQgaW4gdGhlCj4gLWBgcHJv amVjdHJvb3QvZXRjYGAgZGlyZWN0b3J5IGFuZCB0aGV5IGFyZSB1c2luZyB0aGUgc2FtZSBuYW1l cyBhcyB0aGUgb25lcwo+IC1hdCBydW4tdGltZSAoYW5kIHRoZWlyIGluc3RhbGwgZGlyZWN0b3J5 IG9uIHRoZSB0YXJnZXQgc2lkZSB3aWxsIGFsc28gYmUKPiAtYGAvZXRjYGApLgo+IC0KPiAtQnV0 IHNvbWUgb2YgdGhlc2UgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZpbGVzIGFyZSBlbXB0eSwgZHVl IHRvIHRoZQo+IC1hYnNlbmNlIG9mIGEgY29tbW9uIGNhc2UuIFRoZSBwcm9qZWN0IG11c3QgcHJv dmlkZSByZXBsYWNlbWVudHMgb2YgdGhlc2UKPiAtZmlsZXMgd2l0aCBhIG1vcmUgdXNlZnVsIGNv bnRlbnQgaW4gZXZlcnkgY2FzZSB3aGVyZSB0aGUgKGVtcHR5KSBkZWZhdWx0Cj4gLW9uZSBkb2Vz IG5vdCBtZWV0IHRoZSB0YXJnZXTigJlzIHJlcXVpcmVtZW50cy4KPiAtCj4gLVBUWGRpc3QgZmly c3Qgc2VhcmNoZXMgaW4gdGhlIGxvY2FsIHByb2plY3QgZGlyZWN0b3J5IGZvciBhIHNwZWNpZmlj Cj4gLWNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgZmFsbHMgYmFjayB0byB1c2UgdGhlIGRlZmF1bHQg b25lIGlmIG5vbmUgZXhpc3RzCj4gLWxvY2FsbHkuIFJlZmVyIHNlY3Rpb24gOnJlZjpgaW5zdGFs bF9hbHRlcm5hdGl2ZWAgZm9yIGZ1cnRoZXIKPiAtZGV0YWlscyBpbiB3aGljaCBvcmRlciBhbmQg bG9jYXRpb25zIFBUWGRpc3Qgc2VhcmNoZXMgZm9yIHRoZXNlIGtpbmQgb2YgZmlsZXMuCj4gLQo+ IC1BIHBvcHVsYXIgZXhhbXBsZSBpcyB0aGUgY29uZmlndXJhdGlvbiBmaWxlIGBgL2V0Yy9mc3Rh YmBgLiBUaGUgZGVmYXVsdAo+IC1vbmUgY29taW5nIHdpdGggUFRYZGlzdCB3b3JrcyBmb3IgdGhl IG1vc3QgY29tbW9uIGNhc2VzLiBCdXQgaWYgb3VyCj4gLXByb2plY3QgcmVxdWlyZXMgYSBzcGVj aWFsIHNldHVwLCB3ZSBjYW4ganVzdCBjb3B5IHRoZSBkZWZhdWx0IG9uZSB0bwo+IC10aGUgbG9j YWwgYGAuL3Byb2plY3Ryb290L2V0Yy9mc3RhYmBgLCBtb2RpZnkgaXQgYW5kIHdlIGFyZSBkb25l LiBUaGUKPiAtbmV4dCB0aW1lIFBUWGRpc3QgYnVpbGRzIHRoZSByb290IGZpbGVzeXN0ZW0gaXQg d2lsbCB1c2UgdGhlIGxvY2FsCj4gLWBgZnN0YWJgYCBpbnN0ZWFkIG9mIHRoZSBnbG9iYWwgKGRl ZmF1bHQpIG9uZS4KPiAtCj4gLS4uIF9hZGRpbmdfbmV3X3BhY2thZ2VzOgo+IC0KPiAtQWRkaW5n IE5ldyBQYWNrYWdlcwo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLQo+IC1QVFhkaXN0IHByb3Zp ZGVzIGEgaHVnZSBhbW91bnQgb2YgYXBwbGljYXRpb25zIHN1ZmZpY2llbnQgZm9yIHRoZSBtb3N0 Cj4gLWVtYmVkZGVkIHVzZSBjYXNlcy4gQnV0IHRoZXJlIGlzIHN0aWxsIG5lZWQgZm9yIHNvbWUg ZmFuY3kgbmV3IHBhY2thZ2VzLgo+IC1UaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSBzdGVwcyBh bmQgdGhlIGJhY2tncm91bmQgb24gaG93IHRvIGludGVncmF0ZQo+IC1uZXcgcGFja2FnZXMgaW50 byB0aGUgcHJvamVjdC4KPiAtCj4gLUF0IGZpcnN0IGEgc3VtbWFyeSBhYm91dCBwb3NzaWJsZSBh cHBsaWNhdGlvbiB0eXBlcyB3aGljaCBQVFhkaXN0IGNhbgo+IC1oYW5kbGU6Cj4gLQo+IC0tICAq Kmhvc3QgdHlwZSoqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBpcyBidWlsdCB0byBydW4gb24gdGhl IGJ1aWxkCj4gLSAgIGhvc3QuIE1vc3Qgb2YgdGhlIHRpbWUgc3VjaCBhIHBhY2thZ2UgaXMgbmVl ZGVkIGlmIGFub3RoZXIKPiAtICAgdGFyZ2V0LXJlbGV2YW50IHBhY2thZ2UgbmVlZHMgdG8gZ2Vu ZXJhdGUgc29tZSBkYXRhLiBGb3IgZXhhbXBsZSB0aGUKPiAtICAgKmdsaWIqIHBhY2thZ2UgZGVw ZW5kcyBvbiBpdHMgb3duIHRvIGNyZWF0ZSBzb21lIGRhdGEuIEJ1dCBpZiBpdCBpcwo+IC0gICBj b21waWxlZCBmb3IgdGhlIHRhcmdldCwgaXQgY2Fu4oCZdCBkbyBzby4gVGhhdOKAmXMgd2h5IGEg aG9zdCBnbGliCj4gLSAgIHBhY2thZ2UgaXMgcmVxdWlyZWQgdG8gcHJvdmlkZSB0aGVzZSB1dGls aXRpZXMgcnVubmFibGUgb24gdGhlIGJ1aWxkCj4gLSAgIGhvc3QuIEl0IHNvdW5kcyBzdHJhbmdl IHRvIGJ1aWxkIGEgaG9zdCBwYWNrYWdlLCBldmVuIGlmIG9uIHRoZSBidWlsZAo+IC0gICBob3N0 IHN1Y2ggdXRpbGl0aWVzIGFyZSBhbHJlYWR5IGluc3RhbGxlZC4gQnV0IHRoaXMgd2F5IGVuc3Vy ZXMgdGhhdAo+IC0gICB0aGVyZSBhcmUgbm8gZGVwZW5kZW5jaWVzIHJlZ2FyZGluZyB0aGUgYnVp bGQgaG9zdCBzeXN0ZW0uCj4gLQo+IC0tICAqKnRhcmdldCB0eXBlKio6IFRoaXMga2luZCBvZiBw YWNrYWdlIGlzIGJ1aWx0IGZvciB0aGUgdGFyZ2V0Lgo+IC0KPiAtLSAgKipjcm9zcyB0eXBlKio6 IFRoaXMga2luZCBvZiBwYWNrYWdlIGlzIGJ1aWx0IGZvciB0aGUgYnVpbGQgaG9zdCwgYnV0Cj4g LSAgIGNyZWF0ZXMgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRhdGEgZm9yIHRoZSB0YXJnZXQuCj4g LQo+IC0tICAqKnNyYy1hdXRvY29uZi1wcm9nKio6IFRoaXMga2luZCBvZiBwYWNrYWdlIGlzIGJ1 aWx0IGZvciB0aGUgdGFyZ2V0Lgo+IC0gICBJdCBpcyBpbnRlbmRlZCBmb3IgZGV2ZWxvcG1lbnQs IGFzIGl0IGRvZXMgbm90IGhhbmRsZSBhIHJlbGVhc2VkCj4gLSAgIGFyY2hpdmUgYnV0IGEgcGxh aW4gc291cmNlIHByb2plY3QgaW5zdGVhZC4gQ3JlYXRpbmcgc3VjaCBhIHBhY2thZ2UKPiAtICAg d2lsbCBhbHNvIGNyZWF0ZSBhIHNtYWxsIGF1dG90b29scyBiYXNlZCBzb3VyY2UgdGVtcGxhdGUg cHJvamVjdCBvbgo+IC0gICBkZW1hbmQgdG8gZ2l2ZSB0aGUgZGV2ZWxvcGVyIGFuIGVhc3kgcG9p bnQgdG8gc3RhcnQuIFRoaXMgdGVtcGxhdGUgaXMKPiAtICAgcHJlcGFyZWQgdG8gYnVpbGQgYSBz aW5nbGUgZXhlY3V0YWJsZSBwcm9ncmFtLiBGb3IgZnVydGhlciBkZXRhaWxzIHJlZmVyCj4gLSAg IHNlY3Rpb24gOnJlZjpgYWRkaW5nX3NyY19hdXRvY29uZl9leGVjYC4KPiAtCj4gLS0gICoqc3Jj LWF1dG9jb25mLWxpYioqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBpcyBidWlsdCBmb3IgdGhlIHRh cmdldC4KPiAtICAgSXQgaXMgaW50ZW5kZWQgZm9yIGRldmVsb3BtZW50LCBhcyBpdCBkb2VzIG5v dCBoYW5kbGUgYSByZWxlYXNlZAo+IC0gICBhcmNoaXZlIGJ1dCBhIHBsYWluIHNvdXJjZSBwcm9q ZWN0IGluc3RlYWQuIENyZWF0aW5nIHN1Y2ggYSBwYWNrYWdlCj4gLSAgIHdpbGwgYWxzbyBjcmVh dGUgYSBzbWFsbCBhdXRvdG9vbHMvbGlidG9vbCBiYXNlZCBzb3VyY2UgdGVtcGxhdGUKPiAtICAg cHJvamVjdCBvbiBkZW1hbmQgdG8gZ2l2ZSB0aGUgZGV2ZWxvcGVyIGFuIGVhc3kgcG9pbnQgdG8g c3RhcnQuIFRoaXMKPiAtICAgdGVtcGxhdGUgaXMgcHJlcGFyZWQgdG8gYnVpbGQgYSBzaW5nbGUg c2hhcmVkIGxpYnJhcnkuIEZvciBmdXJ0aGVyCj4gLSAgIGRldGFpbHMgcmVmZXIgc2VjdGlvbiA6 cmVmOmBhZGRpbmdfc3JjX2F1dG9jb25mX2xpYmAuCj4gLQo+IC0tICAqKnNyYy1hdXRvY29uZi1w cm9nbGliKio6IFRoaXMga2luZCBvZiBwYWNrYWdlIGlzIGJ1aWx0IGZvciB0aGUKPiAtICAgdGFy Z2V0LiBJdCBpcyBpbnRlbmRlZCBmb3IgZGV2ZWxvcG1lbnQsIGFzIGl0IGRvZXMgbm90IGhhbmRs ZSBhCj4gLSAgIHJlbGVhc2VkIGFyY2hpdmUgYnV0IGEgcGxhaW4gc291cmNlIHByb2plY3QgaW5z dGVhZC4gQ3JlYXRpbmcgc3VjaCBhCj4gLSAgIHBhY2thZ2Ugd2lsbCBhbHNvIGNyZWF0ZSBhIHNt YWxsIGF1dG90b29scy9saWJ0b29sIGJhc2VkIHRlbXBsYXRlCj4gLSAgIHByb2plY3Qgb24gZGVt YW5kIHRvIGdpdmUgdGhlIGRldmVsb3BlciBhbiBlYXN5IHBvaW50IHRvIHN0YXJ0LiBUaGlzCj4g LSAgIHRlbXBsYXRlIGlzIHByZXBhcmVkIHRvIGJ1aWxkIGEgc2luZ2xlIHNoYXJlZCBsaWJyYXJ5 IGFuZCBhIHNpbmdsZQo+IC0gICBleGVjdXRhYmxlIHByb2dyYW0uIFRoZSBwcm9ncmFtIHdpbGwg YmUgbGlua2VkIGFnYWluc3QgdGhlIHNoYXJlZAo+IC0gICBsaWJyYXJ5LiBGb3IgZnVydGhlciBk ZXRhaWxzIHJlZmVyIHNlY3Rpb24gOnJlZjpgYWRkaW5nX3NyY19hdXRvY29uZl9leGVjX2xpYmAu Cj4gLQo+IC0tICAqKmZpbGUqKjogVGhpcyBraW5kIG9mIHBhY2thZ2UgaXMgaW50ZW5kZWQgdG8g YWRkIGEgZmV3IHNpbXBsZSBmaWxlcwo+IC0gICBpbnRvIHRoZSBidWlsZCBwcm9jZXNzLiBXZSBh c3N1bWUgdGhlc2UgZmlsZXMgZG8gbm90IG5lZWQgYW55Cj4gLSAgIHByb2Nlc3NpbmcsIHRoZXkg YXJlIHJlYWR5IHRvIHVzZSBhbmQgbXVzdCBvbmx5IGJlIHByZXNlbnQgaW4gdGhlCj4gLSAgIGJ1 aWxkIHByb2Nlc3Mgb3IgYXQgcnVuLXRpbWUgKEhUTUwgZmlsZXMgZm9yIGV4YW1wbGUpLiBSZWZl ciB0byB0aGUKPiAtICAgc2VjdGlvbiA6cmVmOmBhZGRpbmdfZmlsZXNgIGZvciBmdXJ0aGVyIGRl dGFpbHMgb24gaG93IHRvIHVzZQo+IC0gICBpdC4KPiAtCj4gLS0gICoqc3JjLW1ha2UtcHJvZyoq OiBUaGlzIGtpbmQgb2YgcGFja2FnZSBpcyBidWlsdCBmb3IgdGhlIHRhcmdldC4gSXTigJlzCj4g LSAgIGludGVuZGVkIGZvciBkZXZlbG9wbWVudCwgYXMgaXQgZG9lcyBub3QgaGFuZGxlIGEgcmVs ZWFzZWQgYXJjaGl2ZQo+IC0gICBidXQgYSBwbGFpbiBzb3VyY2UgcHJvamVjdCBpbnN0ZWFkLiBD cmVhdGluZyBzdWNoIGEgcGFja2FnZSB3aWxsIGFsc28KPiAtICAgY3JlYXRlIGEgc2ltcGxlIG1h a2VmaWxlLWJhc2VkIHRlbXBsYXRlIHByb2plY3QgdGhlIGRldmVsb3BlciBjYW4gdXNlCj4gLSAg IGFzIGEgc3RhcnRpbmcgcG9pbnQgZm9yIGRldmVsb3BtZW50Lgo+IC0KPiAtLSAgKipzcmMtY21h a2UtcHJvZyoqOiBUaGlzIGtpbmQgb2YgcGFja2FnZSBpcyBidWlsdCBmb3IgdGhlIHRhcmdldC4K PiAtICAgSXTigJlzIGludGVuZGVkIGZvciBkZXZlbG9wbWVudHMgYmFzZWQgb24gdGhlICpjbWFr ZSogYnVpbGRzeXN0ZW0uCj4gLSAgIFZhcmlvdXMgcHJvamVjdHMgYXJlIHVzaW5nICpjbWFrZSog aW5zdGVhZCBvZiAqbWFrZSogYW5kIGNhbiBiZSBidWlsdAo+IC0gICB3aXRoIHRoaXMgcGFja2Fn ZSB0eXBlLiBQVFhkaXN0IHdpbGwgcHJlcGFyZSBpdCB0byBjb21waWxlIHNvdXJjZXMgaW4KPiAt ICAgYWNjb3JkYW5jZSB0byB0aGUgdGFyZ2V0IGxpYnJhcmllcyBhbmQgdGhlaXIgc2V0dGluZ3Mu IENyZWF0aW5nIHN1Y2gKPiAtICAgYSBwYWNrYWdlIHdpbGwgYWxzbyBjcmVhdGUgYSBzaW1wbGUg dGVtcGxhdGUgcHJvamVjdCB0byBiZSB1c2VkIGFzIGEKPiAtICAgc3RhcnRpbmcgcG9pbnQgZm9y IGRldmVsb3BtZW50Lgo+IC0KPiAtLSAgKipzcmMtcW1ha2UtcHJvZyoqOiBUaGlzIGtpbmQgb2Yg cGFja2FnZSBpcyBidWlsdCBmb3IgdGhlIHRhcmdldC4KPiAtICAgSXTigJlzIGludGVuZGVkIGZv ciBkZXZlbG9wbWVudHMgYmFzZWQgb24gdGhlICpxbWFrZSogYnVpbGRzeXN0ZW0uIElmCj4gLSAg IHRoZSBkZXZlbG9wZXIgaXMgZ29pbmcgdG8gZGV2ZWxvcCBhIFFUIGJhc2VkIGFwcGxpY2F0aW9u LCB0aGlzIHJ1bGUKPiAtICAgaXMgcHJlcGFyZWQgdG8gY29tcGlsZSBzb3VyY2VzIGluIGFjY29y ZGFuY2UgdG8gdGhlIHRhcmdldCBsaWJyYXJpZXMKPiAtICAgYW5kIHRoZWlyIHNldHRpbmdzLiBD cmVhdGluZyBzdWNoIGEgcGFja2FnZSB3aWxsIGFsc28gY3JlYXRlIGEgc2ltcGxlCj4gLSAgIHRl bXBsYXRlIHByb2plY3QgdG8gYmUgdXNlZCBhcyBhIHN0YXJ0aW5nIHBvaW50IGZvciBkZXZlbG9w bWVudC4KPiAtCj4gLS0gICoqc3JjLW1lc29uLXByb2cqKjogVGhpcyBraW5kIG9mIHBhY2thZ2Ug aXMgYnVpbHQgZm9yIHRoZSB0YXJnZXQuCj4gLSAgIEl04oCZcyBpbnRlbmRlZCBmb3IgZGV2ZWxv cG1lbnRzIGJhc2VkIG9uIHRoZSAqbWVzb24qIGJ1aWxkc3lzdGVtLgo+IC0gICBWYXJpb3VzIHBy b2plY3RzIGFyZSB1c2luZyAqbWVzb24qIHRvZGF5IGFuZCBjYW4gYmUgYnVpbHQKPiAtICAgd2l0 aCB0aGlzIHBhY2thZ2UgdHlwZS4gUFRYZGlzdCB3aWxsIHByZXBhcmUgaXQgdG8gY29tcGlsZSBz b3VyY2VzIGluCj4gLSAgIGFjY29yZGFuY2UgdG8gdGhlIHRhcmdldCBsaWJyYXJpZXMgYW5kIHRo ZWlyIHNldHRpbmdzLiBDcmVhdGluZyBzdWNoCj4gLSAgIGEgcGFja2FnZSB3aWxsIGFsc28gY3Jl YXRlIGEgc2ltcGxlIHRlbXBsYXRlIHByb2plY3QgdG8gYmUgdXNlZCBhcyBhCj4gLSAgIHN0YXJ0 aW5nIHBvaW50IGZvciBkZXZlbG9wbWVudC4KPiAtCj4gLS0gICoqZm9udCoqOiBUaGlzIHBhY2th Z2UgaXMgYSBoZWxwZXIgdG8gYWRkIFggZm9udCBmaWxlcyB0byB0aGUgcm9vdAo+IC0gICBmaWxl c3lzdGVtLiBUaGlzIHBhY2thZ2UgZG9lcyBub3QgY3JlYXRlIGFuIGFkZGl0aW9uYWwgSVBLRywg aW5zdGVhZAo+IC0gICBpdCBhZGRzIHRoZSBmb250IHRvIHRoZSBleGlzdGluZyBmb250IElQS0cu IFRoaXMgaW5jbHVkZXMgdGhlCj4gLSAgIGdlbmVyYXRpb24gb2YgdGhlIGRpcmVjdG9yeSBpbmRl eCBmaWxlcywgcmVxdWlyZWQgYnkgdGhlIFhvcmcKPiAtICAgZnJhbWV3b3JrIHRvIHJlY29nbml6 ZSB0aGUgZm9udCBmaWxlLgo+IC0KPiAtLSAgKipzcmMtbGludXgtZHJpdmVyKio6IFRoaXMga2lu ZCBvZiBwYWNrYWdlIGJ1aWxkcyBhbiBvdXQgb2YgdHJlZQo+IC0gICBrZXJuZWwgZHJpdmVyLiBJ dCBhbHNvIGNyZWF0ZXMgYSBkcml2ZXIgdGVtcGxhdGUgdG8gZ2l2ZSB0aGUKPiAtICAgZGV2ZWxv cGVyIGFuIGVhc3kgcG9pbnQgdG8gc3RhcnQuCj4gLQo+IC0tICAqKmtlcm5lbCoqOiBQVFhkaXN0 IGNvbWVzIHdpdGggdGhlIGFiaWxpdHkgdG8gaGFuZGxlIG9uZSBrZXJuZWwgaW4gaXRzCj4gLSAg IHBsYXRmb3JtLiBUaGlzIHR5cGUgb2YgcGFja2FnZSBlbmFibGVzIHVzIHRvIGhhbmRsZSBtb3Jl IHRoYW4gb25lIGtlcm5lbCBpbgo+IC0gICB0aGUgcHJvamVjdC4KPiAtCj4gLS0gICoqYmFyZWJv eCoqOiBQVFhkaXN0IGNvbWVzIHdpdGggdGhlIGFiaWxpdHkgdG8gaGFuZGxlIG9uZSBib290bG9h ZGVyIGluIGl0cwo+IC0gICBwbGF0Zm9ybS4gVGhpcyB0eXBlIG9mIHBhY2thZ2UgZW5hYmxlcyB1 cyB0byBoYW5kbGUgbW9yZSB0aGFuIG9uZSBib290bG9hZGVyCj4gLSAgIGluIHRoZSBwcm9qZWN0 Lgo+IC0KPiAtLSAgKippbWFnZS10Z3oqKjogVGhpcyBraW5kIG9mIHBhY2thZ2UgY3JlYXRlcyBh IHRhciBiYWxsIGZyb20gYSBsaXN0IG9mCj4gLSAgIHBhY2thZ2VzLiBJdCBpcyBvZnRlbiB1c2Vz IGFzIGFuIGlucHV0IGZvciBvdGhlciBpbWFnZSBwYWNrYWdlcy4KPiAtCj4gLS0gICoqaW1hZ2Ut Z2VuaW1hZ2UqKjogVGhpcyBraW5kIG9mIHBhY2thZ2UgY2FuIGhhbmRsZSBhbGwga2luZCBvZiBp bWFnZQo+IC0gICBnZW5lcmF0aW9uIGZvciBhbG1vc3QgZXZlcnkgdGFyZ2V0IGluZGVwZW5kZW50 IG9mIGl0cyBjb21wbGV4aXR5Lgo+IC0KPiAtLSAgKipibHNwZWMtZW50cnkqKjogUFRYZGlzdCBj b21lcyB3aXRoIHRoZSBhYmlsaXR5IHRvIGhhbmRsZSBvbmUgYm9vdHNwZWMgaW4gaXRzCj4gLSAg IHBsYXRmb3JtLiBUaGlzIHR5cGUgb2YgcGFja2FnZSBlbmFibGVzIHVzIHRvIGhhbmRsZSBtb3Jl IHRoYW4gb25lIGJvb3RzcGVjCj4gLSAgIGluIHRoZSBwcm9qZWN0Lgo+IC0KPiAtLi4gX2Zvb19l eGFtcGxlOgo+IC0KPiAtUnVsZSBGaWxlIENyZWF0aW9uCj4gLX5+fn5+fn5+fn5+fn5+fn5+fgo+ IC0KPiAtVG8gY3JlYXRlIHN1Y2ggYSBuZXcgcGFja2FnZSwgd2UgY3JlYXRlIGEgcHJvamVjdCBs b2NhbCBgYHJ1bGVzL2BgCj4gLWRpcmVjdG9yeSBmaXJzdC4gVGhlbiB3ZSBydW4KPiAtCj4gLS4u IGNvZGUtYmxvY2s6OiB0ZXh0Cj4gLQo+IC0gICAgJCBwdHhkaXN0IG5ld3BhY2thZ2UgPHBhY2th Z2UgdHlwZT4KPiAtCj4gLUlmIHdlIG9taXQgdGhlIDxgYHBhY2thZ2UgdHlwZWBgXCA+LCBQVFhk aXN0IHdpbGwgbGlzdCBhbGwgYXZhaWxhYmxlCj4gLXBhY2thZ2UgdHlwZXMuCj4gLQo+IC1JbiBv dXIgZmlyc3QgZXhhbXBsZSwgd2Ugd2FudCB0byBhZGQgYSBuZXcgdGFyZ2V0IHR5cGUgYXJjaGl2 ZSBwYWNrYWdlLgo+IC1XaGVuIHJ1bm5pbmcgdGhlCj4gLQo+IC0uLiBjb2RlLWJsb2NrOjogdGV4 dAo+IC0KPiAtICAgICQgcHR4ZGlzdCBuZXdwYWNrYWdlIHRhcmdldAo+IC0KPiAtY29tbWFuZCwg UFRYZGlzdCBhc2tzIGEgZmV3IHF1ZXN0aW9ucyBhYm91dCB0aGlzIHBhY2thZ2UuIFRoaXMKPiAt aW5mb3JtYXRpb24gaXMgdGhlIGJhc2ljIGRhdGEgUFRYZGlzdCBtdXN0IGtub3cgYWJvdXQgdGhl IHBhY2thZ2UuCj4gLQo+IC0uLiBjb2RlLWJsb2NrOjogdGV4dAo+IC0KPiAtICAgIHB0eGRpc3Q6 IGNyZWF0aW5nIGEgbmV3ICd0YXJnZXQnIHBhY2thZ2U6Cj4gLQo+IC0gICAgcHR4ZGlzdDogZW50 ZXIgcGFja2FnZSBuYW1lLi4uLi4uLjogZm9vCj4gLSAgICBwdHhkaXN0OiBlbnRlciB2ZXJzaW9u IG51bWJlci4uLi4uOiAxLjEuMAo+IC0gICAgcHR4ZGlzdDogZW50ZXIgVVJMIG9mIGJhc2VkaXIu Li4uLjogaHR0cDovL3d3dy5mb28uY29tL2Rvd25sb2FkL3NyYwo+IC0gICAgcHR4ZGlzdDogZW50 ZXIgc3VmZml4Li4uLi4uLi4uLi4uLjogdGFyLmd6Cj4gLSAgICBwdHhkaXN0OiBlbnRlciBwYWNr YWdlIGF1dGhvci4uLi4uOiBNeSBOYW1lIDxtZUBteS1vcmcuY29tPgo+IC0gICAgcHR4ZGlzdDog ZW50ZXIgcGFja2FnZSBzZWN0aW9uLi4uLjogcHJvamVjdF9zcGVjaWZpYwo+IC0KPiAtV2hhdCB3 ZSBoYXZlIHRvIGFuc3dlcjoKPiAtCj4gLS0gICoqcGFja2FnZSBuYW1lKio6IEFzIHRoaXMga2lu ZCBvZiBwYWNrYWdlIGhhbmRsZXMgYSBzb3VyY2UgYXJjaGl2ZSwKPiAtICAgdGhlIGNvcnJlY3Qg YW5zd2VyIGhlcmUgaXMgdGhlIGJhc2VuYW1lIG9mIHRoZSBhcmNoaXZl4oCZcyBmaWxlIG5hbWUu Cj4gLSAgIElmIGl0cyBmdWxsIG5hbWUgaXMgYGBmb28tMS4xLjAudGFyLmd6YGAsIHRoZW4gYGBm b29gYCBpcyB0aGUKPiAtICAgYmFzZW5hbWUgdG8gZW50ZXIgaGVyZS4KPiAtCj4gLS0gICoqdmVy c2lvbiBudW1iZXIqKjogTW9zdCBzb3VyY2UgYXJjaGl2ZXMgYXJlIHVzaW5nIGEgcmVsZWFzZSBv cgo+IC0gICB2ZXJzaW9uIG51bWJlciBpbiB0aGVpciBmaWxlIG5hbWUuIElmIGl0cyBmdWxsIG5h bWUgaXMKPiAtICAgYGBmb28tMS4xLjAudGFyLmd6YGAsIHRoZW4gYGAxLjEuMGBgIGlzIHRoZSB2 ZXJzaW9uIG51bWJlciB0byBlbnRlcgo+IC0gICBoZXJlLgo+IC0KPiAtLSAgKipVUkwgb2YgYmFz ZWRpcioqOiBUaGlzIFVSTCB0ZWxscyBQVFhkaXN0IHdoZXJlIHRvIGRvd25sb2FkIHRoZQo+IC0g ICBzb3VyY2UgYXJjaGl2ZSBmcm9tIHRoZSB3ZWIgKGlmIG5vdCBhbHJlYWR5IGRvbmUpLiBJZiB0 aGUgZnVsbCBVUkwgdG8KPiAtICAgZG93bmxvYWQgdGhlIGFyY2hpdmUgaXMKPiAtICAgYGBodHRw Oi8vd3d3LmZvby5jb20vZG93bmxvYWQvc3JjL2Zvby0xLjEuMC50YXIuZ3pgYCwgdGhlIGJhc2Vk aXIKPiAtICAgcGFydCBgYGh0dHA6Ly93d3cuZm9vLmNvbS9kb3dubG9hZC9zcmNgYCBpcyB0byBi ZSBlbnRlcmVkIGhlcmUuCj4gLQo+IC0tICAqKnN1ZmZpeCoqOiBBcmNoaXZlcyBhcmUgdXNpbmcg dmFyaW91cyBmb3JtYXRzIGZvciBkaXN0cmlidXRpb24uCj4gLSAgIFBUWGRpc3QgdXNlcyB0aGUg KnN1ZmZpeCogZW50cnkgdG8gc2VsZWN0IHRoZSBtYXRjaGluZyBleHRyYWN0aW9uCj4gLSAgIHRv b2wuIElmIHRoZSBhcmNoaXZl4oCZcyBmdWxsIG5hbWUgaXMgYGBmb28tMS4xLjAudGFyLmd6YGAs IHRoZW4KPiAtICAgYGB0YXIuZ3pgYCBpcyB0aGUgc3VmZml4IHRvIGVudGVyIGhlcmUuCj4gLQo+ IC0tICAqKnBhY2thZ2UgYXV0aG9yKio6IElmIHdlIGludGVuZCB0byBjb250cmlidXRlIHRoaXMg bmV3IHBhY2thZ2UgdG8KPiAtICAgUFRYZGlzdCBtYWlubGluZSwgd2Ugc2hvdWxkIGFkZCBvdXIg bmFtZSBoZXJlLiBUaGlzIG5hbWUgd2lsbCBiZSB1c2VkCj4gLSAgIGluIHRoZSBjb3B5cmlnaHQg bm90ZSBvZiB0aGUgcnVsZSBmaWxlIGFuZCB3aWxsIGFsc28gYmUgYWRkZWQgdG8gdGhlCj4gLSAg IGdlbmVyYXRlZCBpcGtnLiBXaGVuIHlvdSBydW4gYGBwdHhkaXN0IHNldHVwYGAgcHJpb3IgdG8g dGhpcyBjYWxsLAo+IC0gICB5b3UgY2FuIGVudGVyIHlvdXIgbmFtZSBhbmQgeW91ciBlbWFpbCBh ZGRyZXNzLCBzbyBQVFhkaXN0IHdpbGwgdXNlCj4gLSAgIGl0IGFzIHRoZSBkZWZhdWx0ICh2ZXJ5 IGhhbmR5IGlmIHlvdSBpbnRlbmQgdG8gYWRkIG1hbnkgbmV3Cj4gLSAgIHBhY2thZ2VzKS4KPiAt Cj4gLS0gICoqcGFja2FnZSBzZWN0aW9uKio6IFdlIGNhbiBlbnRlciBoZXJlIHRoZSBtZW51IHNl Y3Rpb24gbmFtZSB3aGVyZQo+IC0gICBvdXIgbmV3IHBhY2thZ2UgbWVudSBlbnRyeSBzaG91bGQg YmUgbGlzdGVkLiBJbiB0aGUgZmlyc3Qgc3RlcCB3ZSBjYW4KPiAtICAgbGVhdmUgdGhlIGRlZmF1 bHQgbmFtZSB1bmNoYW5nZWQuIEl04oCZcyBhIHN0cmluZyBpbiB0aGUgbWVudSBmaWxlCj4gLSAg IG9ubHksIHNvIGNoYW5naW5nIGl0IGxhdGVyIG9uIGlzIHN0aWxsIHBvc3NpYmxlLgo+IC0KPiAt TWFrZSBpdCBXb3JrCj4gLX5+fn5+fn5+fn5+fgo+IC0KPiAtR2VuZXJhdGluZyB0aGUgcnVsZSBm aWxlIGlzIG9ubHkgb25lIG9mIHRoZSByZXF1aXJlZCBzdGVwcyB0byBnZXQgYSBuZXcKPiAtcGFj a2FnZS4gVGhlIG5leHQgc3RlcHMgdG8gbWFrZSBpdCB3b3JrIGFyZSB0byBjaGVjayBpZiBhbGwg c3RhZ2VzIGFyZQo+IC13b3JraW5nIGFzIGV4cGVjdGVkIGFuZCB0byBzZWxlY3QgdGhlIHJlcXVp cmVkIHBhcnRzIHRvIGdldCB0aGVtCj4gLWluc3RhbGxlZCBpbiB0aGUgdGFyZ2V0IHJvb3QgZmls ZXN5c3RlbS4gQWxzbyB3ZSBtdXN0IGZpbmQgYSByZWFzb25hYmxlCj4gLWxvY2F0aW9uIHdoZXJl IHRvIGFkZCBvdXIgbmV3IG1lbnUgZW50cnkgdG8gY29uZmlndXJlIHRoZSBwYWNrYWdlLgo+IC0K PiAtVGhlIGdlbmVyYXRlZCBza2VsZXRvbiBzdGFydHMgdG8gYWRkIHRoZSBuZXcgbWVudSBlbnRy eSBpbiB0aGUgbWFpbgo+IC1jb25maWd1cmUgbWVudSAoaWYgd2UgbGVmdCB0aGUgc2VjdGlvbiBu YW1lIHVuY2hhbmdlZCkuIFJ1bm5pbmcKPiAtYGBwdHhkaXN0IG1lbnVjb25maWdgYCB3aWxsIHNo b3cgaXQgb24gdG9wIG9mIGFsbCBvdGhlciBtZW51cyBlbnRyaWVzLgo+IC0KPiAtLi4gaW1wb3J0 YW50OjogCj4gLSAgVG8gYmUgYWJsZSB0byBpbXBsZW1lbnQgYW5kIHRlc3QgYWxsIHRoZSBvdGhl ciByZXF1aXJlZCBzdGVwcyBmb3IgYWRkaW5nCj4gLSAgYSBuZXcgcGFja2FnZSwgd2UgZmlyc3Qg bXVzdCBlbmFibGUgdGhlIHBhY2thZ2UgZm9yIGJ1aWxkaW5nLiAoRmluZQo+IC0gIHR1bmluZyB0 aGUgbWVudSBjYW4gaGFwcGVuIGxhdGVyIG9uLikKPiAtCj4gLQo+IC1UaGUgcnVsZSBmaWxlIHNr ZWxldG9uIHN0aWxsIGxhY2tzIHNvbWUgaW1wb3J0YW50IGluZm9ybWF0aW9uLiBMZXTigJlzCj4g LXRha2UgYSBsb29rIGludG8gc29tZSBvZiB0aGUgdG9wIGxpbmVzIG9mIHRoZSBnZW5lcmF0ZWQg cnVsZSBmaWxlCj4gLWBgLi9ydWxlcy9mb28ubWFrZWBgOgo+IC0KPiAtLi4gY29kZS1ibG9jazo6 IG1ha2UKPiAtCj4gLSAgICBGT09fVkVSU0lPTgk6PSAxLjEuMAo+IC0gICAgRk9PX01ENQk6PQo+ IC0gICAgRk9PCQk6PSBmb28tJChGT09fVkVSU0lPTikKPiAtICAgIEZPT19TVUZGSVgJOj0gdGFy Lmd6Cj4gLSAgICBGT09fVVJMCTo9IGh0dHA6Ly93d3cuZm9vLmNvbS9kb3dubG9hZC9zcmMvJChG T08pLiQoRk9PX1NVRkZJWCkKPiAtICAgIEZPT19TT1VSQ0UJOj0gJChTUkNESVIpLyQoRk9PKS4k KEZPT19TVUZGSVgpCj4gLSAgICBGT09fRElSCTo9ICQoQlVJTERESVIpLyQoRk9PKQo+IC0gICAg Rk9PX0xJQ0VOU0UJOj0gdW5rbm93bgo+IC0KPiAtV2UgY2FuIGZpbmQgdGhlc2UgbGluZXMgd2l0 aCBkaWZmZXJlbnQgY29udGVudCBpbiBtb3N0IG9yIGFsbCBvZiB0aGUKPiAtb3RoZXIgcnVsZSBm aWxlcyBQVFhkaXN0IGNvbWVzIHdpdGguIFVwIHRvIHRoZSB1bmRlcmxpbmUgY2hhcmFjdGVyIGlz Cj4gLWFsd2F5cyB0aGUgcGFja2FnZSBuYW1lIGFuZCBhZnRlciB0aGUgdW5kZXJsaW5lIGNoYXJh Y3RlciBpcyBhbHdheXMKPiAtUFRYZGlzdCBzcGVjaWZpYy4gV2hhdCBkb2VzIGl0IG1lYW46Cj4g LQo+IC0tICBgYCpfVkVSU0lPTmBgIGJyaW5ncyBpbiB0aGUgdmVyc2lvbiBudW1iZXIgb2YgdGhl IHJlbGVhc2UgYW5kIGlzIHVzZWQKPiAtICAgZm9yIHRoZSBkb3dubG9hZCBhbmQgSVBLRy9PUEtH IHBhY2thZ2UgZ2VuZXJhdGlvbi4KPiAtCj4gLS0gIGBgKl9NRDVgYCB0byBiZSBzdXJlIHRoZSBj b3JyZWN0IHBhY2thZ2UgaGFzIGJlZW4gZG93bmxvYWRlZCwgUFRYZGlzdAo+IC0gICBjaGVja3Mg dGhlIGdpdmVuIE1ENSBzdW0gYWdhaW5zdCB0aGUgYXJjaGl2ZSBjb250ZW50LiBJZiBib3RoIHN1 bXMgZG8KPiAtICAgbm90IG1hdGNoLCBQVFhkaXN0IHJlamVjdHMgdGhlIGFyY2hpdmUgYW5kIGZh aWxzIHRoZSBjdXJyZW50bHkKPiAtICAgcnVubmluZyBidWlsZC4KPiAtCj4gLS0gIGBgKl9TVUZG SVhgYCBkZWZpbmVzIHRoZSBhcmNoaXZlIHR5cGUsIHRvIG1ha2UgUFRYZGlzdCBjaG9vc2luZyB0 aGUKPiAtICAgY29ycmVjdCBleHRyYWN0aW5nIHRvb2wuCj4gLQo+IC0tICBgYCpfVVJMYGAgZGVm aW5lcyB0aGUgZnVsbCBxdWFsaWZpZWQgVVJMIGludG8gdGhlIHdlYiBmb3IgZG93bmxvYWQuIElm Cj4gLSAgIGFsdGVybmF0aXZlIGRvd25sb2FkIGxvY2F0aW9ucyBhcmUga25vd24sIHRoZXkgY2Fu IGJlIGxpc3RlZCBpbiB0aGlzCj4gLSAgIHZhcmlhYmxlLCBkZWxpbWl0ZXIgY2hhcmFjdGVyIGlz IHRoZSBzcGFjZS4KPiAtCj4gLS0gIGBgKl9TT1VSQ0VgYCB0ZWxscyBQVFhkaXN0IHdoZXJlIHRv IHN0b3JlIHRoZSBkb3dubG9hZGVkIHBhY2thZ2UuCj4gLQo+IC0tICBgYCpfRElSYGAgcG9pbnRz IHRvIHRoZSBkaXJlY3RvcnkgdGhpcyBwYWNrYWdlIHdpbGwgYmUgYnVpbHQgbGF0ZXIgb24KPiAt ICAgYnkgUFRYZGlzdC4KPiAtCj4gLS0gIGBgKl9MSUNFTlNFYGAgZW5hYmxlcyB0aGUgdXNlciB0 byBnZXQgYSBsaXN0IG9mIGxpY2Vuc2VzIHNoZS9oZSBpcwo+IC0gICB1c2luZyBpbiBoZXIvaGlz IHByb2plY3QgKGxpY2Vuc2VzIG9mIHRoZSBlbmFibGVkIHBhY2thZ2VzKS4KPiAtCj4gLUFmdGVy IGVuYWJsaW5nIHRoZSBtZW51IGVudHJ5LCB3ZSBjYW4gc3RhcnQgdG8gY2hlY2sgdGhlICpnZXQq IGFuZAo+IC0qZXh0cmFjdCogc3RhZ2VzLCBjYWxsaW5nIHRoZW0gbWFudWFsbHkgb25lIGFmdGVy IGFub3RoZXIuCj4gLQo+IC0uLiBub3RlOjogVGhlIHNob3duIGNvbW1hbmRzIGJlbG93IGV4cGVj dCB0aGF0IFBUWGRpc3QgZG93bmxvYWRzIHRoZQo+IC0gIGFyY2hpdmVzIHRvIGEgZ2xvYmFsIGRp cmVjdG9yeSBuYW1lZCBgYGdsb2JhbF9zcmNgYC4gVGhpcyBpcyBub3QgdGhlCj4gLSAgZGVmYXVs dCBzZXR0aW5nLCBidXQgd2UgcmVjb21tZW5kIHRvIHVzZSBhIGdsb2JhbCBkaXJlY3RvcnkgdG8g c2hhcmUgYWxsCj4gLSAgYXJjaGl2ZXMgYmV0d2VlbiBQVFhkaXN0IGJhc2VkIHByb2plY3RzLiBB ZHZhbnRhZ2UgaXMgZXZlcnkgZG93bmxvYWQKPiAtICBoYXBwZW5zIG9ubHkgb25jZS4gUmVmZXIg dG8gdGhlIGBgc2V0dXBgYCBjb21tYW5kIFBUWGRpc3QgcHJvdmlkZXMuCj4gLQo+IC0uLiBjb2Rl LWJsb2NrOjogdGV4dAo+IC0KPiAtICAgICQgcHR4ZGlzdCBnZXQgZm9vCj4gLQo+IC0gICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLSAgICB0YXJnZXQ6IGZvby0xLjEuMC50YXIuZ3oK PiAtICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0KPiAtICAgIC0tMjAwOS0xMi0y MSAxMDo1NDo0NS0tICBodHRwOi8vd3d3LmZvby5jb20vZG93bmxvYWQvc3JjL2Zvby0xLjEuMC50 YXIuZ3oKPiAtICAgIExlbmd0aDogMjkxMTkwICgyODRLKSBbYXBwbGljYXRpb24veC1nemlwXQo+ IC0gICAgU2F2aW5nIHRvOiBgL2dsb2JhbF9zcmMvZm9vLTEuMS4wLnRhci5nei5YWFhYT0duY1pB Jwo+IC0KPiAtICAgIDEwMCVbPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0+ XSAyOTEsMTkwICAgICAgMTcwSy9zICAgaW4gMS43cwo+IC0KPiAtICAgIDIwMDktMTItMjEgMTA6 NTQ6NDggKDE3MCBLQi9zKSAtIGAvZ2xvYmFsX3NyYy9mb28tMS4xLjAudGFyLmd6JyBzYXZlZCBb MjkxMTkwLzI5MTE5MF0KPiAtCj4gLVRoaXMgY29tbWFuZCBzaG91bGQgc3RhcnQgdG8gZG93bmxv YWQgdGhlIHNvdXJjZSBhcmNoaXZlLiBJZiBpdCBmYWlscywKPiAtd2Ugc2hvdWxkIGNoZWNrIG91 ciBuZXR3b3JrIGNvbm5lY3Rpb24sIHByb3h5IHNldHVwIG9yIGlmIHRoZSBnaXZlbiBVUkwKPiAt aW4gdXNlIGlzIGNvcnJlY3QuCj4gLQo+IC0uLiBub3RlOjogU29tZXRpbWVzIHdlIGRvIG5vdCBr bm93IHRoZSBjb250ZW50IG9mIGFsbCB0aGUgb3RoZXIgdmFyaWFibGVzIGluCj4gLSAgdGhlIHJ1 bGUgZmlsZS4gVG8gZ2V0IGFuIGlkZWEgd2hhdCBjb250ZW50IGEgdmFyaWFibGUgaGFzLCB3ZSBj YW4gYXNrCj4gLSAgUFRYZGlzdCBhYm91dCBpdDoKPiAtCj4gLS4uIGNvZGUtYmxvY2s6OiB0ZXh0 Cj4gLQo+IC0gICAgJCBwdHhkaXN0IHByaW50IEZPT19VUkwKPiAtICAgIGh0dHA6Ly93d3cuZm9v LmNvbS9kb3dubG9hZC9zcmMvZm9vLTEuMS4wLnRhci5nego+IC0KPiAtVGhlIG5leHQgc3RlcCB3 b3VsZCBiZSB0byBleHRyYWN0IHRoZSBhcmNoaXZlLiBCdXQgYXMgUFRYZGlzdCBjaGVja3MgdGhl Cj4gLU1ENSBzdW0gaW4gdGhpcyBjYXNlLCB0aGlzIHN0ZXAgd2lsbCBmYWlsLCBiZWNhdXNlIHRo ZSBgYEZPT19NRDVgYAo+IC12YXJpYWJsZSBpcyBzdGlsbCBlbXB0eS4gTGV04oCZcyBmaWxsIGl0 Ogo+IC0KPiAtLi4gY29kZS1ibG9jazo6IHRleHQKPiAtCj4gLSAgICAkIG1kNXN1bSAvZ2xvYmFs X3NyYy9mb28tMS4xLjAudGFyLmd6Cj4gLSAgICA5YTA5ODQwYWI3NzVhMTM5ZWJiMDBmNTdhNTg3 YjQ0Nwo+IC0KPiAtVGhpcyBzdHJpbmcgbXVzdCBiZSBhc3NpZ25lZCB0byB0aGUgRk9PX01ENSBp biBvdXIgbmV3IGBgZm9vLm1ha2VgYAo+IC1ydWxlIGZpbGU6Cj4gLQo+IC0uLiBjb2RlLWJsb2Nr OjogdGV4dAo+IC0KPiAtICAgIEZPT19NRDUJCTo9IDlhMDk4NDBhYjc3NWExMzllYmIwMGY1N2E1 ODdiNDQ3Cj4gLQo+IC1XZSBhcmUgbm93IHByZXBhcmVkIGZvciB0aGUgbmV4dCBzdGVwOgo+IC0K PiAtLi4gY29kZS1ibG9jazo6IHRleHQKPiAtCj4gLSAgICAkIHB0eGRpc3QgZXh0cmFjdCBmb28K PiAtCj4gLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0gICAgdGFyZ2V0OiBmb28uZXh0 cmFjdAo+IC0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtCj4gLSAgICBleHRyYWN0OiBh cmNoaXZlPS9nbG9iYWxfc3JjL2Zvby0xLjEuMC50YXIuZ3oKPiAtICAgIGV4dHJhY3Q6IGRlc3Q9 L2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0Cj4gLSAgICBQQVRDSElOOiBwYWNrZXQ9 Zm9vLTEuMS4wCj4gLSAgICBQQVRDSElOOiBkaXI9L2hvbWUvamJlL215X25ld19wcmovYnVpbGQt dGFyZ2V0L2Zvby0xLjEuMAo+IC0gICAgUEFUQ0hJTjogbm8gcGF0Y2hlcyBmb3IgZm9vLTEuMS4w IGF2YWlsYWJsZQo+IC0gICAgRml4aW5nIHVwIC9ob21lL2piZS9teV9uZXdfcHJqL2J1aWxkLXRh cmdldC9mb28tMS4xLjAvY29uZmlndXJlCj4gLSAgICBmaW5pc2hlZCB0YXJnZXQgZm9vLmV4dHJh Y3QKPiAtCj4gLUluIHRoaXMgZXhhbXBsZSB3ZSBleHBlY3QgYW4gYXV0b3Rvb2xpemVkIHNvdXJj ZSBwYWNrYWdlLiBFLmcuIHRvCj4gLXByZXBhcmUgdGhlIGJ1aWxkLCB0aGUgYXJjaGl2ZSBjb21l cyB3aXRoIGEgYGBjb25maWd1cmVgYCBzY3JpcHQuIFRoaXMKPiAtaXMgdGhlIGRlZmF1bHQgY2Fz ZSBmb3IgUFRYZGlzdC4gU28sIHRoZXJlIGlzIG5vIG5lZWQgdG8gbW9kaWZ5IHRoZSBydWxlCj4g LWZpbGUgYW5kIHdlIGNhbiBzaW1wbHkgcnVuOgo+IC0KPiAtLi4gY29kZS1ibG9jazo6IHRleHQK PiAtCj4gLSAgICAkIHB0eGRpc3QgcHJlcGFyZSBmb28KPiAtCj4gLSAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+IC0gICAgdGFyZ2V0OiBmb28ucHJlcGFyZQo+IC0gICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPiAtCj4gLSAgICBbLi4uXQo+IC0KPiAtICAgIGNoZWNraW5nIGJ1aWxkIHN5 c3RlbSB0eXBlLi4uIGk2ODYtaG9zdC1saW51eC1nbnUKPiAtICAgIGNoZWNraW5nIGhvc3Qgc3lz dGVtIHR5cGUuLi4gfHB0eGRpc3RDb21waWxlck5hbWV8Cj4gLSAgICBjaGVja2luZyB3aGV0aGVy IHRvIGVuYWJsZSBtYWludGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2VmaWxlcy4uLiBu bwo+IC0gICAgY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbC4uLiAvdXNyL2Jp bi9pbnN0YWxsIC1jCj4gLSAgICBjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlz IHNhbmUuLi4geWVzCj4gLSAgICBjaGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcC4u LiAvYmluL21rZGlyIC1wCj4gLSAgICBjaGVja2luZyBmb3IgZ2F3ay4uLiBnYXdrCj4gLSAgICBj aGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpLi4uIHllcwo+IC0gICAgY2hlY2tpbmcg Zm9yIHxwdHhkaXN0Q29tcGlsZXJOYW1lfC1zdHJpcC4uLiB8cHR4ZGlzdENvbXBpbGVyTmFtZXwt c3RyaXAKPiAtICAgIGNoZWNraW5nIGZvciB8cHR4ZGlzdENvbXBpbGVyTmFtZXwtZ2NjLi4uIHxw dHhkaXN0Q29tcGlsZXJOYW1lfC1nY2MKPiAtICAgIGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRl ZmF1bHQgb3V0cHV0IGZpbGUgbmFtZS4uLiBhLm91dAo+IC0KPiAtICAgIFsuLi5dCj4gLQo+IC0g ICAgY29uZmlndXJlOiBjcmVhdGluZyAuL2NvbmZpZy5zdGF0dXMKPiAtICAgIGNvbmZpZy5zdGF0 dXM6IGNyZWF0aW5nIE1ha2VmaWxlCj4gLSAgICBjb25maWcuc3RhdHVzOiBjcmVhdGluZyBwcGFf cHJvdG9jb2wvTWFrZWZpbGUKPiAtICAgIGNvbmZpZy5zdGF0dXM6IGNyZWF0aW5nIGNvbmZpZy5o Cj4gLSAgICBjb25maWcuc3RhdHVzOiBleGVjdXRpbmcgZGVwZmlsZXMgY29tbWFuZHMKPiAtICAg IGZpbmlzaGVkIHRhcmdldCBmb28ucHJlcGFyZQo+IC0KPiAtQXQgdGhpcyBzdGFnZSB0aGluZ3Mg Y2FuIGZhaWw6Cj4gLQo+IC0tICBBIHdyb25nIG9yIG5vIE1ENSBzdW0gd2FzIGdpdmVuCj4gLQo+ IC0tICBUaGUgYGBjb25maWd1cmVgYCBzY3JpcHQgaXMgbm90IGNyb3NzIGNvbXBpbGUgYXdhcmUK PiAtCj4gLS0gIFRoZSBwYWNrYWdlIGRlcGVuZHMgb24gZXh0ZXJuYWwgY29tcG9uZW50cyAobGli cmFyaWVzIGZvciBleGFtcGxlKQo+IC0KPiAtSWYgdGhlIGBgY29uZmlndXJlYGAgc2NyaXB0IGlz IG5vdCBjcm9zcyBjb21waWxlIGF3YXJlLCB3ZSBhcmUgb3V0IG9mCj4gLWx1Y2suIFdlIG11c3Qg cGF0Y2ggdGhlIHNvdXJjZSBhcmNoaXZlIGluIHRoaXMgY2FzZSB0byBtYWtlIGl0IHdvcmsuCj4g LVJlZmVyIHRvIHRoZSBzZWN0aW9uIDpyZWY6YGNvbmZpZ3VyZV9yZWJ1aWxkYCBvbiBob3cgdG8g dXNlCj4gLVBUWGRpc3TigJlzIGZlYXR1cmVzIHRvIHNpbXBsaWZ5IHRoaXMgdGFzay4KPiAtSWYg dGhlIHBhY2thZ2UgZGVwZW5kcyBvbiBleHRlcm5hbCBjb21wb25lbnRzLCB0aGVzZSBjb21wb25l bnRzIG1pZ2h0Cj4gLWJlIGFscmVhZHkgcGFydCBvZiBQVFhkaXN0LiBJbiB0aGlzIGNhc2Ugd2Ug anVzdCBoYXZlIHRvIGFkZCB0aGlzCj4gLWRlcGVuZGVuY3kgaW50byB0aGUgbWVudSBmaWxlIGFu ZCB3ZSBhcmUgZG9uZS4gQnV0IGlmIFBUWGRpc3QgY2Fubm90Cj4gLWZ1bGZpbGwgdGhpcyBkZXBl bmRlbmN5LCB3ZSBhbHNvIG11c3QgYWRkIGl0IGFzIGEgc2VwYXJhdGUgcGFja2FnZQo+IC1maXJz dC4KPiAtCj4gLUlmIHRoZSAqcHJlcGFyZSogc3RhZ2UgaGFzIGZpbmlzaGVkIHN1Y2Nlc3NmdWxs eSwgdGhlIG5leHQgc3RlcCBpcyB0bwo+IC1jb21waWxlIHRoZSBwYWNrYWdlLgo+IC0KPiAtLi4g Y29kZS1ibG9jazo6IHRleHQKPiAtCj4gLSAgICAkIHB0eGRpc3QgY29tcGlsZSBmb28KPiAtCj4g LSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0gICAgdGFyZ2V0OiBmb28uY29tcGlsZQo+ IC0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtCj4gLSAgICBtYWtlWzFdOiBFbnRlcmlu ZyBkaXJlY3RvcnkgYC9ob21lL2piZS9teV9uZXdfcHJqL2J1aWxkLXRhcmdldC9mb28tMS4xLjAn Cj4gLSAgICBtYWtlICBhbGwtcmVjdXJzaXZlCj4gLSAgICBtYWtlWzJdOiBFbnRlcmluZyBkaXJl Y3RvcnkgYC9ob21lL2piZS9teV9uZXdfcHJqL2J1aWxkLXRhcmdldC9mb28tMS4xLjAnCj4gLSAg ICBtYWtlWzNdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC9ob21lL2piZS9teV9uZXdfcHJqL2J1aWxk LXRhcmdldC9mb28tMS4xLjAnCj4gLQo+IC0gICAgWy4uLl0KPiAtCj4gLSAgICBtYWtlWzNdOiBM ZWF2aW5nIGRpcmVjdG9yeSBgL2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zvby0x LjEuMCcKPiAtICAgIG1ha2VbMl06IExlYXZpbmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3 X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wJwo+IC0gICAgbWFrZVsxXTogTGVhdmluZyBkaXJl Y3RvcnkgYC9ob21lL2piZS9teV9uZXdfcHJqL2J1aWxkLXRhcmdldC9mb28tMS4xLjAnCj4gLSAg ICBmaW5pc2hlZCB0YXJnZXQgZm9vLmNvbXBpbGUKPiAtCj4gLUF0IHRoaXMgc3RhZ2UgdGhpbmdz IGNhbiBmYWlsOgo+IC0KPiAtLSAgVGhlIGJ1aWxkIHN5c3RlbSBpcyBub3QgY3Jvc3MgY29tcGls ZSBhd2FyZSAoaXQgdHJpZXMgdG8gZXhlY3V0ZSBqdXN0Cj4gLSAgIGNyZWF0ZWQgdGFyZ2V0IGJp bmFyaWVzIGZvciBleGFtcGxlKQo+IC0KPiAtLSAgVGhlIHBhY2thZ2UgZGVwZW5kcyBvbiBleHRl cm5hbCBjb21wb25lbnRzIChsaWJyYXJpZXMgZm9yIGV4YW1wbGUpCj4gLSAgIG5vdCBkZXRlY3Rl ZCBieSBgYGNvbmZpZ3VyZWBgCj4gLQo+IC0tICBTb3VyY2VzIGFyZSBpZ25vcmluZyB0aGUgZW5k aWFubmVzcyBvZiBzb21lIGFyY2hpdGVjdHVyZXMgb3IgdXNpbmcKPiAtICAgaGVhZGVyIGZpbGVz IGZyb20gdGhlIGJ1aWxkIGhvc3Qgc3lzdGVtIChmcm9tIGBgL3Vzci9pbmNsdWRlYGAgZm9yCj4g LSAgIGV4YW1wbGUpCj4gLQo+IC0tICBUaGUgbGlua2VyIHVzZXMgbGlicmFyaWVzIGZyb20gdGhl IGJ1aWxkIGhvc3Qgc3lzdGVtIChmcm9tCj4gLSAgIGBgL3Vzci9saWJgYCBmb3IgZXhhbXBsZSkg YnkgYWNjaWRlbnQKPiAtCj4gLUluIGFsbCBvZiB0aGVzZSBjYXNlcyB3ZSBtdXN0IHBhdGNoIHRo ZSBzb3VyY2VzIHRvIG1ha2UgdGhlbSB3b3JrLiBSZWZlcgo+IC10byBzZWN0aW9uIDpyZWY6YHBh dGNoaW5nX3BhY2thZ2VzYCBvbiBob3cgdG8gdXNlIFBUWGRpc3TigJlzCj4gLWZlYXR1cmVzIHRv IHNpbXBsaWZ5IHRoaXMgdGFzay4KPiAtCj4gLUluIHRoaXMgZXhhbXBsZSB3ZSBleHBlY3QgdGhl IGJlc3QgY2FzZTogZXZlcnl0aGluZyB3ZW50IGZpbmUsIGV2ZW4gZm9yCj4gLWNyb3NzIGNvbXBp bGluZy4gU28sIHdlIGNhbiBjb250aW51ZSB3aXRoIHRoZSBuZXh0IHN0YWdlOiAqaW5zdGFsbCoK PiAtCj4gLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Cj4gLQo+IC0gICAgJCBwdHhkaXN0IGluc3RhbGwg Zm9vCj4gLQo+IC0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtICAgIHRhcmdldDogZm9v Lmluc3RhbGwKPiAtICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLQo+IC0gICAgbWFrZVsx XTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQv Zm9vLTEuMS4wJwo+IC0gICAgbWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUv bXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wJwo+IC0gICAgbWFrZVszXTogRW50ZXJp bmcgZGlyZWN0b3J5IGAvaG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4w Jwo+IC0gICAgdGVzdCAteiAiL3Vzci9iaW4iIHx8IC9iaW4vbWtkaXIgLXAgIi9ob21lL2piZS9t eV9uZXdfcHJqL2J1aWxkLXRhcmdldC9mb28tMS4xLjAvdXNyL2JpbiIKPiAtICAgICAgL3Vzci9i aW4vaW5zdGFsbCAtYyAnZm9vJyAnL2hvbWUvamJlL215X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zv by0xLjEuMC91c3IvYmluL2ZvbycKPiAtICAgIG1ha2VbM106IExlYXZpbmcgZGlyZWN0b3J5IGAv aG9tZS9qYmUvbXlfbmV3X3Byai9idWlsZC10YXJnZXQvZm9vLTEuMS4wJwo+IC0gICAgbWFrZVsy XTogTGVhdmluZyBkaXJlY3RvcnkgYC9ob21lL2piZS9teV9uZXdfcHJqL2J1aWxkLXRhcmdldC9m b28tMS4xLjAnCj4gLSAgICBtYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSBgL2hvbWUvamJlL215 X25ld19wcmovYnVpbGQtdGFyZ2V0L2Zvby0xLjEuMCcKPiAtICAgIGZpbmlzaGVkIHRhcmdldCBm b28uaW5zdGFsbAo+IC0KPiAtICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtICAg IHRhcmdldDogZm9vLmluc3RhbGwucG9zdAo+IC0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+IC0KPiAtICAgIGZpbmlzaGVkIHRhcmdldCBmb28uaW5zdGFsbC5wb3N0Cj4gLQo+IC1U aGlzICppbnN0YWxsKiBzdGFnZSBkb2VzIG5vdCBpbnN0YWxsIGFueXRoaW5nIHRvIHRoZSB0YXJn ZXQgcm9vdAo+IC1maWxlc3lzdGVtLiBJdCBpcyBtb3N0bHkgaW50ZW5kZWQgdG8gaW5zdGFsbCBs aWJyYXJpZXMgYW5kIGhlYWRlciBmaWxlcwo+IC1vdGhlciBwcm9ncmFtcyBzaG91bGQgbGluayBh Z2FpbnN0IGxhdGVyIG9uLgo+IC0KPiAtVGhlIGxhc3Qgc3RhZ2Ug4oCTICp0YXJnZXRpbnN0YWxs KiDigJMgaXMgdGhlIG9uZSB0aGF0IGRlZmluZXMgdGhlIHBhY2thZ2XigJlzCj4gLWNvbXBvbmVu dHMgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZSB0YXJnZXTigJlzIHJvb3QgZmlsZXN5c3RlbS4gRHVl IHRvIHRoZQo+IC1hYnNlbmNlIG9mIGEgZ2VuZXJpYyB3YXksIHRoaXMgaXMgdGhlIHRhc2sgb2Yg dGhlIGRldmVsb3Blci4gU28sIGF0IHRoaXMKPiAtcG9pbnQgb2YgdGltZSB3ZSBtdXN0IHJ1biBv dXIgZmF2b3VyaXRlIGVkaXRvciBhZ2FpbiBhbmQgbW9kaWZ5IG91ciBuZXcKPiAtcnVsZSBmaWxl IGBgLi9ydWxlcy9mb28ubWFrZWBgLgo+IC0KPiAtVGhlIHNrZWxldG9uIGZvciB0aGUgKnRhcmdl dGluc3RhbGwqIHN0YWdlIGxvb2tzIGxpa2UgdGhpczoKPiAtCj4gLS4uIGNvZGUtYmxvY2s6OiBt YWtlCj4gLQo+IC0gICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLSAgICAjIFRhcmdldC1JbnN0 YWxsCj4gLSAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtCj4gLSAgICAkKFNUQVRFRElSKS9m b28udGFyZ2V0aW5zdGFsbDoKPiAtICAgIAlAJChjYWxsIHRhcmdldGluZm8pCj4gLQo+IC0gICAg CUAkKGNhbGwgaW5zdGFsbF9pbml0LCAgZm9vKQo+IC0gICAgCUAkKGNhbGwgaW5zdGFsbF9maXh1 cCwgZm9vLFBBQ0tBR0UsZm9vKQo+IC0gICAgCUAkKGNhbGwgaW5zdGFsbF9maXh1cCwgZm9vLFBS SU9SSVRZLG9wdGlvbmFsKQo+IC0gICAgCUAkKGNhbGwgaW5zdGFsbF9maXh1cCwgZm9vLFZFUlNJ T04sJChGT09fVkVSU0lPTikpCj4gLSAgICAJQCQoY2FsbCBpbnN0YWxsX2ZpeHVwLCBmb28sU0VD VElPTixiYXNlKQo+IC0gICAgCUAkKGNhbGwgaW5zdGFsbF9maXh1cCwgZm9vLEFVVEhPUiwiTXkg TmFtZSA8bWVAbXktb3JnLmNvbT4iKQo+IC0gICAgCUAkKGNhbGwgaW5zdGFsbF9maXh1cCwgZm9v LERFUEVORFMsKQo+IC0gICAgCUAkKGNhbGwgaW5zdGFsbF9maXh1cCwgZm9vLERFU0NSSVBUSU9O LG1pc3NpbmcpCj4gLQo+IC0gICAgCUAkKGNhbGwgaW5zdGFsbF9jb3B5LCBmb28sIDAsIDAsIDA3 NTUsICQoRk9PX0RJUikvZm9vYmFyLCAvZGV2L251bGwpCj4gLQo+IC0gICAgCUAkKGNhbGwgaW5z dGFsbF9maW5pc2gsIGZvbykKPiAtICAgIAlAJChjYWxsIHRvdWNoKQo+IC0KPiAtVGhlIOKAnGhl YWRlcuKAnSBvZiB0aGlzIHN0YWdlIGRlZmluZXMgc29tZSBpbmZvcm1hdGlvbiBJUEtHIG5lZWRz LiBUaGUKPiAtaW1wb3J0YW50IHBhcnQgdGhhdCB3ZSBtdXN0IG1vZGlmeSBpcyB0aGUgY2FsbCB0 byB0aGUgYGBpbnN0YWxsX2NvcHlgYAo+IC1tYWNybyAocmVmZXIgdG8gc2VjdGlvbiA6cmVmOmBy ZWZlcmVuY2VfbWFjcm9zYCBmb3IgbW9yZSBkZXRhaWxzCj4gLWFib3V0IHRoaXMga2luZCBvZiBt YWNyb3MpLiBUaGlzIGNhbGwgaW5zdHJ1Y3RzIFBUWGRpc3QgdG8gaW5jbHVkZSB0aGUKPiAtZ2l2 ZW4gZmlsZSAod2l0aCBVSUQsIEdJRCBhbmQgcGVybWlzc2lvbnMpIGludG8gdGhlIElQS0csIHdo aWNoIG1lYW5zIHRvCj4gLWluc3RhbGwgdGhpcyBmaWxlIHRvIHRoZSB0YXJnZXTigJlzIHJvb3Qg ZmlsZXN5c3RlbS4KPiAtCj4gLUZyb20gdGhlIHByZXZpb3VzICppbnN0YWxsKiBzdGFnZSB3ZSBr bm93IHRoaXMgcGFja2FnZSBpbnN0YWxscyBhbgo+IC1leGVjdXRhYmxlIGNhbGxlZCBgYGZvb2Bg IHRvIGxvY2F0aW9uIGBgL3Vzci9iaW5gYC4gV2UgY2FuIGRvIHRoZSBzYW1lCj4gLWZvciBvdXIg dGFyZ2V0IGJ5IGNoYW5naW5nIHRoZSAqaW5zdGFsbFxfY29weSogbGluZSB0bzoKPiAtCj4gLS4u IGNvZGUtYmxvY2s6OiBub25lCj4gLQo+IC0gICAgQCQoY2FsbCBpbnN0YWxsX2NvcHksIGZvbywg MCwgMCwgMDc1NSwgJChGT09fRElSKS9mb28sIC91c3IvYmluL2ZvbykKPiAtCj4gLVRvIGNoZWNr IGl0LCB3ZSBqdXN0IHJ1bjoKPiAtCj4gLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Cj4gLQo+IC0gICAg JCBwdHhkaXN0IHRhcmdldGluc3RhbGwgZm9vCj4gLQo+IC0gICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPiAtICAgIHRhcmdldDogZm9vLnRhcmdldGluc3RhbGwKPiAtICAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLQo+IC0gICAgaW5zdGFsbF9pbml0OiAgIHByZXBh cmluZyBmb3IgaW1hZ2UgY3JlYXRpb24uLi4KPiAtICAgIGluc3RhbGxfaW5pdDogICBAQVJDSEAg LT4gaTM4NiAuLi4gZG9uZQo+IC0gICAgaW5zdGFsbF9pbml0OiAgIHByZWluc3Qgbm90IGF2YWls YWJsZQo+IC0gICAgaW5zdGFsbF9pbml0OiAgIHBvc3RpbnN0IG5vdCBhdmFpbGFibGUKPiAtICAg IGluc3RhbGxfaW5pdDogICBwcmVybSBub3QgYXZhaWxhYmxlCj4gLSAgICBpbnN0YWxsX2luaXQ6 ICAgcG9zdHJtIG5vdCBhdmFpbGFibGUKPiAtICAgIGluc3RhbGxfZml4dXA6ICBAUEFDS0FHRUAg LT4gZm9vIC4uLiBkb25lLgo+IC0gICAgaW5zdGFsbF9maXh1cDogIEBQUklPUklUWUAgLT4gb3B0 aW9uYWwgLi4uIGRvbmUuCj4gLSAgICBpbnN0YWxsX2ZpeHVwOiAgQFZFUlNJT05AIC0+IDEuMS4w IC4uLiBkb25lLgo+IC0gICAgaW5zdGFsbF9maXh1cDogIEBTRUNUSU9OQCAtPiBiYXNlIC4uLiBk b25lLgo+IC0gICAgaW5zdGFsbF9maXh1cDogIEBBVVRIT1JAIC0+ICJNeSBOYW1lIDxtZVxAbXkt b3JnLmNvbT4iIC4uLiBkb25lLgo+IC0gICAgaW5zdGFsbF9maXh1cDogIEBERVNDUklQVElPTkAg LT4gbWlzc2luZyAuLi4gZG9uZS4KPiAtICAgIGluc3RhbGxfY29weToKPiAtICAgICAgc3JjPS9o b21lL2piZS9teV9uZXdfcHJqL2J1aWxkLXRhcmdldC9mb28tMS4xLjAvZm9vCj4gLSAgICAgIGRz dD0vdXNyL2Jpbi9mb28KPiAtICAgICAgb3duZXI9MAo+IC0gICAgICBncm91cD0wCj4gLSAgICAg IHBlcm1pc3Npb25zPTA3NTUKPiAtICAgIHhwa2dfZmluaXNoOiAgICBjb2xsZWN0aW5nIGxpY2Vu c2UgKHVua25vd24pIC4uLiBkb25lLgo+IC0gICAgeHBrZ19maW5pc2g6ICAgIGNyZWF0aW5nIGlw a2cgcGFja2FnZSAuLi4gZG9uZS4KPiAtICAgIGZpbmlzaGVkIHRhcmdldCBmb28udGFyZ2V0aW5z dGFsbAo+IC0KPiAtICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtICAg IHRhcmdldDogZm9vLnRhcmdldGluc3RhbGwucG9zdAo+IC0gICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQo+IC0KPiAtICAgIGZpbmlzaGVkIHRhcmdldCBmb28udGFyZ2V0aW5z dGFsbC5wb3N0Cj4gLQo+IC1BZnRlciB0aGlzIGNvbW1hbmQsIHRoZSB0YXJnZXTigJlzIHJvb3Qg ZmlsZXN5c3RlbSBjb250YWlucyBhIGZpbGUgY2FsbGVkCj4gLWBgL3Vzci9iaW4vZm9vYGAgb3du ZWQgYnkgcm9vdCwgaXRzIGdyb3VwIGlzIGFsc28gcm9vdCBhbmQgZXZlcnlvbmUgaGFzCj4gLWV4 ZWN1dGlvbiBwZXJtaXNzaW9ucywgYnV0IG9ubHkgdGhlIHVzZXIgcm9vdCBoYXMgd3JpdGUgcGVy bWlzc2lvbnMuCj4gLQo+IC1PbmUgbGFzdCB0YXNrIG9mIHRoaXMgcG9ydCBpcyBzdGlsbCBvcGVu OiBBIHJlYXNvbmFibGUgbG9jYXRpb24gZm9yCj4gLXRoZSBuZXcgbWVudSBlbnRyeSBpbiBQVFhk aXN04oCZcyBtZW51IGhpZXJhcmNoeS4gUFRYZGlzdCBhcnJhbmdlcyBpdHMKPiAtbWVudXMgb24g dGhlIG1lYW5pbmcgb2YgZWFjaCBwYWNrYWdlLiBJcyBpdCBhIG5ldHdvcmsgcmVsYXRlZCB0b29s PyBPcgo+IC1hIHNjcmlwdGluZyBsYW5ndWFnZT8gT3IgYSBncmFwaGljYWwgYXBwbGljYXRpb24/ Cj4gLUVhY2ggb2YgdGhlc2UgZ2xvYmFsIG1lYW5pbmdzIGhhcyBpdHMgb3duIHN1Ym1lbnUsIHdo ZXJlIHdlIGNhbiBhZGQKPiAtb3VyIG5ldyBlbnRyeSB0by4gV2UganVzdCBoYXZlIHRvIGVkaXQg dGhlIGhlYWQgb2Ygb3VyIG5ldyBtZW51IGZpbGUKPiAtYGAuL3J1bGVzL2Zvby5pbmBgIHRvIGFk ZCBpdCB0byBhIHNwZWNpZmljIGdsb2JhbCBtZW51LiBJZiBvdXIgbmV3Cj4gLXBhY2thZ2UgaXMg YSBuZXR3b3JrIHJlbGF0ZWQgdG9vbCwgdGhlIGhlYWQgb2YgdGhlIG1lbnUgZmlsZSBzaG91bGQK PiAtbG9vayBsaWtlOgo+IC0KPiAtLi4gY29kZS1ibG9jazo6IGtjb25maWcKPiAtCj4gLSAgICAj IyBTRUNUSU9OPW5ldHdvcmtpbmcKPiAtCj4gLVdlIGNhbiBncmVwIHRocm91Z2ggdGhlIG90aGVy IG1lbnUgZmlsZXMgZnJvbSB0aGUgUFRYZGlzdCBtYWluCj4gLWluc3RhbGxhdGlvbiBgYHJ1bGVz L2BgIGRpcmVjdG9yeSB0byBnZXQgYW4gaWRlYSB3aGF0IHNlY3Rpb24gbmFtZXMgYXJlCj4gLWF2 YWlsYWJsZToKPiAtCj4gLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Cj4gLQo+IC0gICAgcnVsZXMvICQg ZmluZCAuIC1uYW1lIFwqLmluIHwgeGFyZ3MgZ3JlcCAiIyMgU0VDVElPTiIKPiAtICAgIC4vYWNw aWQuaW46IyMgU0VDVElPTj1zaGVsbF9hbmRfY29uc29sZQo+IC0gICAgLi9hbHNhLWxpYi5pbjoj IyBTRUNUSU9OPXN5c3RlbV9saWJyYXJpZXMKPiAtICAgIC4vYWxzYS11dGlscy5pbjojIyBTRUNU SU9OPW11bHRpbWVkaWFfc291bmQKPiAtICAgIC4vYXBhY2hlMi5pbjojIyBTRUNUSU9OPW5ldHdv cmtpbmcKPiAtICAgIC4vYXBhY2hlMl9tb2RfcHl0aG9uLmluOiMjIFNFQ1RJT049bmV0d29ya2lu Zwo+IC0gICAgWy4uLl0KPiAtICAgIC4veGtleWJvYXJkLWNvbmZpZy5pbjojIyBTRUNUSU9OPW11 bHRpbWVkaWFfeG9yZ19kYXRhCj4gLSAgICAuL3hvcmctYXBwLXhldi5pbjojIyBTRUNUSU9OPW11 bHRpbWVkaWFfeG9yZ19hcHAKPiAtICAgIC4veG9yZy1hcHAteHJhbmRyLmluOiMjIFNFQ1RJT049 bXVsdGltZWRpYV94b3JnX2FwcAo+IC0gICAgLi9ob3N0LWVnZ2RidXMuaW46IyMgU0VDVElPTj1o b3N0dG9vbHNfbm9wcm9tcHQKPiAtICAgIC4vbGlic3NoMi5pbjojIyBTRUNUSU9OPW5ldHdvcmtp bmcKPiAtCj4gLVBvcnRpbmcgYSBuZXcgcGFja2FnZSB0byBQVFhkaXN0IGlzIChhbG1vc3QpIGZp bmlzaGVkIG5vdy4KPiAtCj4gLVRvIGNoZWNrIGl0IHJpZ2h0IGF3YXksIHdlIHNpbXBseSBydW4g dGhlc2UgdHdvIGNvbW1hbmRzOgo+IC0KPiAtLi4gY29kZS1ibG9jazo6IHRleHQKPiAtCj4gLSAg ICAkIHB0eGRpc3QgY2xlYW4gZm9vCj4gLSAgICBybSAtcmYgL2hvbWUvamJlL215X25ld19wcmov c3RhdGUvZm9vLioKPiAtICAgIHJtIC1yZiAvaG9tZS9qYmUvbXlfbmV3X3Byai9wYWNrYWdlcy9m b29fKgo+IC0gICAgcm0gLXJmIC9ob21lL2piZS9teV9uZXdfcHJqL2J1aWxkLXRhcmdldC9mb28t MS4xLjAKPiAtICAgICQgcHR4ZGlzdCB0YXJnZXRpbnN0YWxsIGZvbwo+IC0KPiAtICAgIFsuLi5d Cj4gLQo+IC0uLiBpbXBvcnRhbnQ6OiBEaXNjb3ZlciBzb21laG93IGhpZGRlbiBkZXBlbmRlbmNp ZXMgd2l0aCBvbmUgbW9yZSBsYXN0IGNoZWNrIQo+IC0KPiAtVXAgdG8gdGhpcyBwb2ludCBhbGwg dGhlIGRldmVsb3BtZW50IG9mIHRoZSBuZXcgcGFja2FnZSB3YXMgZG9uZSBpbiBhbiBhbHJlYWR5 Cj4gLWJ1aWx0IEJTUC4gRG9pbmcgc28gc29tZXRpbWVzIHNvbWVob3cgaGlkZGVuIGRlcGVuZGVu Y2llcyBjYW5ub3QgYmUgc2VlbjoKPiAtZXZlcnl0aGluZyBzZWVtcyBmaW5lLCB0aGUgbmV3IHBh Y2thZ2UgYnVpbGRzIGFsd2F5cyBzdWNjZXNzZnVsbHkgYW5kIHRoZQo+IC1yZXN1bHRzIGFyZSB3 b3JraW5nIG9uIHRoZSB0YXJnZXQuCj4gLQo+IC1TbyB0byBjaGVjayBmb3IgdGhpcyBraW5kIG9m IGRlcGVuZGVuY2llcyB0aGVyZSBpcyBzdGlsbCBvbmUgbW9yZSBmaW5hbCBjaGVjawo+IC10byBk byAoZXZlbiBpZiBpdHMgYm9yaW5nIGFuZCB0YWtlcyB0aW1lKToKPiAtCj4gLS4uIGNvZGUtYmxv Y2s6OiB0ZXh0Cj4gLQo+IC0gICAgJCBwdHhkaXN0IGNsZWFuCj4gLSAgICBbLi4uXQo+IC0gICAg JCBwdHhkaXN0IHRhcmdldGluc3RhbGwgZm9vCj4gLSAgICBbLi4uXQo+IC0KPiAtVGhpcyB3aWxs IHJlLXN0YXJ0IHdpdGggYSAqKmNsZWFuKiogQlNQIGFuZCBidWlsZHMgZXhhY3RseSB0aGUgbmV3 IHBhY2thZ2UgYW5kCj4gLWl0cyAoa25vd24pIGRlcGVuZGVuY2llcy4gSWYgdGhpcyBidWlsZHMg c3VjY2Vzc2Z1bGx5IGFzIHdlbGwgd2UgYXJlIHJlYWxseSBkb25lCj4gLXdpdGggdGhlIG5ldyBw YWNrYWdlLgo+IC0KPiAtU29tZSBOb3RlcyBhYm91dCBMaWNlbnNlcwo+IC1+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+Cj4gLQo+IC1UaGUgYWxyZWFkeSBtZW50aW9uZWQgcnVsZSB2YXJpYWJsZSBg YCpfTElDRU5TRWBgIChlLmcuIGBgRk9PX0xJQ0VOU0VgYCBpbiBvdXIKPiAtZXhhbXBsZSkgaXMg dmVyeSBpbXBvcnRhbnQgYW5kIG11c3QgYmUgZmlsbGVkIGJ5IHRoZSBkZXZlbG9wZXIgb2YgdGhl IHBhY2thZ2UuCj4gLU1hbnkgbGljZW5zZXMgYnJpbmcgaW4gb2JsaWdhdGlvbnMgdXNpbmcgdGhl IGNvcnJlc3BvbmRpbmcgcGFja2FnZSAoKmF0dHJpYnV0aW9uKgo+IC1mb3IgZXhhbXBsZSkuIFRv IG1ha2UgbGlmZSBlYXNpZXIgZm9yIGV2ZXJ5Ym9keSB0aGUgbGljZW5zZSBmb3IgYSBwYWNrYWdl IG11c3QKPiAtYmUgcHJvdmlkZWQuICpTUERYKiBsaWNlbnNlIGlkZW50aWZpZXJzIHVuaWZ5IHRo ZSBsaWNlbnNlIG5hbWVzIGFuZCBhcmUgdXNlZAo+IC1pbiBQVFhkaXN0IHRvIGlkZW50aWZ5IGxp Y2Vuc2UgdHlwZXMgYW5kIG9ibGlnYXRpb25zLgo+IC0KPiAtSWYgYSBwYWNrYWdlIGNvbWVzIHdp dGggbW9yZSB0aGFuIG9uZSBsaWNlbnNlLCBhbGwgb2YgdGhlaXIgU1BEWCBpZGVudGlmaWVycwo+ IC1tdXN0IGJlIGxpc3RlZCBhbmQgY29ubmVjdGVkIHdpdGggdGhlIGtleXdvcmQgYGBBTkRgYC4g SWYgeW91ciBwYWNrYWdlIGNvbWVzCj4gLXdpdGggR1BMLTIuMCBhbmQgTEdQTC0yLjEgbGljZW5z ZXMsIHRoZSBkZWZpbml0aW9uIHNob3VsZCBsb29rIGxpa2UgdGhpczoKPiAtCj4gLS4uIGNvZGUt YmxvY2s6OiBtYWtlCj4gLQo+IC0gICBGT09fTElDRU5TRSA6PSBHUEwtMi4wIEFORCBMR1BMLTIu MQo+IC0KPiAtT25lIHNwZWNpZmljIG9ibGlnYXRpb24gY2Fubm90IGJlIGRldGVjdGVkIGV4YW1p bmluZyB0aGUgU1BEWCBsaWNlbnNlIGlkZW50aWZpZXJzCj4gLWJ5IFBUWGRpc3Q6ICp0aGUgbGlj ZW5zZSBjaG9pY2UqLiBJbiB0aGlzIGNhc2UgYWxsIGxpY2Vuc2VzIG9mIGNob2ljZSBtdXN0IGJl Cj4gLWxpc3RlZCBhbmQgY29ubmVjdGVkIGJ5IHRoZSBrZXl3b3JkIGBgT1JgYC4KPiAtCj4gLUlm LCBmb3IgZXhhbXBsZSwgeW91ciBvYmxpZ2F0aW9uIGlzIHRvIHNlbGVjdCBvbmUgb2YgdGhlIGxp Y2Vuc2VzICpHUEwtMi4wKiAqKm9yKioKPiAtKkdQTC0zLjAqLCB0aGUgYGAqX0xJQ0VOU0VgYCB2 YXJpYWJsZSBzaG91bGQgbG9vayBsaWtlIHRoaXM6Cj4gLQo+IC0uLiBjb2RlLWJsb2NrOjogbWFr ZQo+IC0KPiAtICAgRk9PX0xJQ0VOU0UgOj0gR1BMLTIuMCBPUiBHUEwtMy4wCj4gLQo+IC1TUERY IExpY2Vuc2UgSWRlbnRpZmllcnMKPiAtXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCj4gLQo+IC1B IGxpc3Qgb2YgU1BEWCBsaWNlbnNlIGlkZW50aWZpZXJzIGNhbiBiZSBmb3VuZCBoZXJlOgo+IC0K PiAtICAgaHR0cHM6Ly9zcGR4Lm9yZy9saWNlbnNlcy8KPiAtCj4gLUhlbHAgdG8gRGV0ZWN0IHRo ZSBDb3JyZWN0IExpY2Vuc2UKPiAtXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgo+ IC0KPiAtTGljZW5zZSBpZGVudGlmaWNhdGlvbiBpc24ndCB0cml2aWFsLiBBIGhlbHAgaW4gZG9p bmcgc28gY2FuIGJlIHRoZSBmb2xsb3dpbmcKPiAtcmVwb3NpdG9yeSBhbmQgaXRzIGNvbnRlbnQu IEl0IGNvbnRhaW5zIGEgbGlzdCBvZiBrbm93biBsaWNlbnNlcyBiYXNlZCBvbiB0aGVpcgo+IC1T UERYIGlkZW50aWZpZXIuIFRoZSBjb250ZW50IGlzIHdpdGhvdXQgZm9ybWF0dGluZyB0byBzaW1w bGlmeSB0ZXh0IHNlYXJjaC4KPiAtCj4gLSAgIGh0dHBzOi8vZ2l0aHViLmNvbS9zcGR4L2xpY2Vu c2UtbGlzdC1kYXRhL3RyZWUvbWFzdGVyL3RleHQKPiAtCj4gLUFkdmFuY2VkIFJ1bGUgRmlsZXMK PiAtfn5+fn5+fn5+fn5+fn5+fn5+fgo+IC0KPiAtVGhlIHByZXZpb3VzIGV4YW1wbGUgb24gaG93 IHRvIGNyZWF0ZSBhIHJ1bGUgZmlsZSBzb21ldGltZXMgd29ya3MgYXMKPiAtc2hvd24gYWJvdmUu IEJ1dCBtb3N0IG9mIHRoZSB0aW1lIHNvdXJjZSBhcmNoaXZlcyBhcmUgbm90IHRoYXQgc2ltcGxl Lgo+IC1JbiB0aGlzIHNlY3Rpb24gd2Ugd2FudCB0byBnaXZlIHRoZSB1c2VyIGEgbW9yZSBkZXRh aWxlZCBzZWxlY3Rpb24gaG93Cj4gLXRoZSBwYWNrYWdlIHdpbGwgYmUgYnVpbHQuCj4gLQo+IC1B ZGRpbmcgU3RhdGljIENvbmZpZ3VyZSBQYXJhbWV0ZXJzCj4gLV5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl4KPiAtCj4gLVRoZSBgYGNvbmZpZ3VyZWBgIHNjcmlwdHMgb2YgdmFyaW91 cyBzb3VyY2UgYXJjaGl2ZXMgcHJvdmlkZSBhZGRpdGlvbmFsCj4gLXBhcmFtZXRlcnMgdG8gZW5h YmxlIG9yIGRpc2FibGUgZmVhdHVyZXMsIG9yIHRvIGNvbmZpZ3VyZSB0aGVtIGluIGEKPiAtc3Bl Y2lmaWMgd2F5Lgo+IC0KPiAtV2UgYXNzdW1lIHRoZSBgYGNvbmZpZ3VyZWBgIHNjcmlwdCBvZiBv dXIgYGBmb29gYCBleGFtcGxlIChyZWZlciB0bwo+IC1zZWN0aW9uIDpyZWY6YGZvb19leGFtcGxl YCkgc3VwcG9ydHMgdHdvIGFkZGl0aW9uYWwgcGFyYW1ldGVyczoKPiAtCj4gLS0gICoqLS1lbmFi bGUtZGVidWcqKjogTWFrZSB0aGUgcHJvZ3JhbSBtb3JlIG5vaXN5LiBJdOKAmXMgZGlzYWJsZWQg YnkKPiAtICAgZGVmYXVsdC4KPiAtCj4gLS0gICoqLS13aXRoLWJhcioqOiBBbHNvIGJ1aWxkIHRo ZSBzcGVjaWFsIGV4ZWN1dGFibGUgKipiYXIqKi4gQnVpbGRpbmcKPiAtICAgdGhpcyBleGVjdXRh YmxlIGlzIGFsc28gZGlzYWJsZWQgYnkgZGVmYXVsdC4KPiAtCj4gLVdlIG5vdyB3YW50IHRvIGZv cndhcmQgdGhlc2Ugb3B0aW9ucyB0byB0aGUgYGBjb25maWd1cmVgYCBzY3JpcHQgd2hlbiBpdAo+ IC1ydW5zIGluIHRoZSAqcHJlcGFyZSogc3RhZ2UuIFRvIGRvIHNvLCB3ZSBtdXN0IGFnYWluIG9w ZW4gdGhlIHJ1bGUgZmlsZQo+IC13aXRoIG91ciBmYXZvdXJpdGUgZWRpdG9yIGFuZCBuYXZpZ2F0 ZSB0byB0aGUgKnByZXBhcmUqIHN0YWdlIGVudHJ5Lgo+IC0KPiAtUFRYZGlzdCB1c2VzIHRoZSB2 YXJpYWJsZSBgYEZPT19DT05GX09QVGBgIGFzIHRoZSBsaXN0IG9mIHBhcmFtZXRlcnMgdG8KPiAt YmUgZ2l2ZW4gdG8gYGBjb25maWd1cmVgYC4KPiAtCj4gLUN1cnJlbnRseSB0aGlzIHZhcmlhYmxl IGlzIGNvbW1lbnRlZCBvdXQgYW5kIGRlZmluZWQgdG86Cj4gLQo+IC0uLiBjb2RlLWJsb2NrOjog bWFrZQo+IC0KPiAtICAgICMgRk9PX0NPTkZfT1BUIDo9ICQoQ1JPU1NfQVVUT0NPTkZfVVNSKQo+ IC0KPiAtVGhlIHZhcmlhYmxlIGBgQ1JPU1NfQVVUT0NPTkZfVVNSYGAgaXMgcHJlZGVmaW5lZCBi eSBQVFhkaXN0IGFuZAo+IC1jb250YWlucyBhbGwgYmFzaWMgcGFyYW1ldGVycyB0byBpbnN0cnVj dCBgYGNvbmZpZ3VyZWBgIHRvIHByZXBhcmUgZm9yIGEKPiAtKipjcm9zcyoqIGNvbXBpbGUgZW52 aXJvbm1lbnQuCj4gLQo+IC1UbyB1c2UgdGhlIHR3byBhZGRpdGlvbmFsIG1lbnRpb25lZCBgYGNv bmZpZ3VyZWBgIHBhcmFtZXRlcnMsIHdlIGNvbW1lbnQKPiAtaW4gdGhpcyBsaW5lIGFuZCBzdXBw bGVtZW50IHRoaXMgZXhwcmVzc2lvbiBhcyBmb2xsb3dzOgo+IC0KPiAtLi4gY29kZS1ibG9jazo6 IG1ha2UKPiAtCj4gLSAgICBGT09fQ09ORl9PUFQgOj0gXAo+IC0gICAgICAgICQoQ1JPU1NfQVVU T0NPTkZfVVNSKSBcCj4gLSAgICAgICAgLS1lbmFibGUtZGVidWcgXAo+IC0gICAgICAgIC0td2l0 aC1iYXIKPiAtCj4gLS4uIG5vdGU6OiBXZSByZWNvbW1lbmQgdG8gdXNlIHRoaXMgZm9ybWF0IHdp dGggZWFjaCBwYXJhbWV0ZXIgb24gYSBsaW5lIG9mCj4gLSBpdHMgb3duLiBUaGlzIGZvcm1hdCBp cyBlYXNpZXIgdG8gcmVhZCBhbmQgYSBkaWZmIHNob3dzIG1vcmUgZXhhY3RseSBhbnkKPiAtIGNo YW5nZS4KPiAtCj4gLVRvIGRvIGEgZmFzdCBjaGVjayBpZiB0aGlzIGFkZGl0aW9uIHdhcyBzdWNj ZXNzZnVsLCB3ZSBydW46Cj4gLQo+IC0uLiBjb2RlLWJsb2NrOjogdGV4dAo+IC0KPiAtICAgICQg cHR4ZGlzdCBwcmludCBGT09fQ09ORl9PUFQKPiAtICAgIC0tcHJlZml4PS91c3IgLS1zeXNjb25m ZGlyPS9ldGMgLS1ob3N0PXxwdHhkaXN0Q29tcGlsZXJOYW1lfCAtLWJ1aWxkPWk2ODYtaG9zdC1s aW51eC1nbnUgLS1lbmFibGUtZGVidWcgLS13aXRoLWJhcgo+IC0KPiAtLi4gbm90ZTo6IEl0IGRl cGVuZHMgb24gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBwbGF0Zm9ybSBhbmQgaXRzIGFyY2hpdGVj dHVyZQo+IC0gd2hhdCBjb250ZW50IHRoaXMgdmFyaWFibGUgd2lsbCBoYXZlLiBUaGUgY29udGVu dCBzaG93biBhYm92ZSBpcyBhbgo+IC0gZXhhbXBsZSBmb3IgYSB0YXJnZXQuCj4gLQo+IC1PciBy ZS1idWlsZCB0aGUgcGFja2FnZSB3aXRoIHRoZSBuZXcgc2V0dGluZ3M6Cj4gLQo+IC0uLiBjb2Rl LWJsb2NrOjogdGV4dAo+IC0KPiAtICAgICQgcHR4ZGlzdCBkcm9wIGZvbyBwcmVwYXJlCj4gLSAg ICAkIHB0eGRpc3QgdGFyZ2V0aW5zdGFsbCBmb28KPiAtCj4gLUFkZGluZyBEeW5hbWljIENvbmZp Z3VyZSBQYXJhbWV0ZXJzCj4gLV5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCj4g LQo+IC1Tb21ldGltZXMgaXQgbWFrZXMgc2Vuc2UgdG8gYWRkIHRoaXMga2luZCBvZiBwYXJhbWV0 ZXJzIG9uIGRlbWFuZCBvbmx5Owo+IC1lc3BlY2lhbGx5IGEgcGFyYW1ldGVyIGxpa2UgYGAtLWVu YWJsZS1kZWJ1Z2BgLiBUbyBsZXQgdGhlIHVzZXIgZGVjaWRlCj4gLWlmIHRoaXMgcGFyYW1ldGVy IGlzIHRvIGJlIHVzZWQgb3Igbm90LCB3ZSBtdXN0IGFkZCBhIG1lbnUgZW50cnkuIFNvLAo+IC1s ZXTigJlzIGV4cGFuZCBvdXIgbWVudS4gSGVyZSBpcyBpdHMgY3VycmVudCBjb250ZW50Ogo+IC0K PiAtLi4gY29kZS1ibG9jazo6IGtjb25maWcKPiAtCj4gLSAgICAjIyBTRUNUSU9OPXByb2plY3Rf c3BlY2lmaWMKPiAtCj4gLSAgICBjb25maWcgRk9PCj4gLSAgICAgICAgICAgIHRyaXN0YXRlCj4g LSAgICAgICAgICAgIHByb21wdCAiZm9vIgo+IC0gICAgICAgICAgICBoZWxwCj4gLSAgICAgICAg ICAgICAgRklYTUUKPiAtCj4gLVdl4oCZbGwgYWRkIHR3byBtZW51IGVudHJpZXMsIG9uZSBmb3Ig ZWFjaCBvcHRpb25hbCBwYXJhbWV0ZXIgd2Ugd2FudCB0bwo+IC1hZGQgb24gZGVtYW5kIHRvIHRo ZSBgYGNvbmZpZ3VyZWBgIHBhcmFtZXRlcnM6Cj4gLQo+IC0uLiBjb2RlLWJsb2NrOjoga2NvbmZp Zwo+IC0KPiAtICAgICMjIFNFQ1RJT049cHJvamVjdF9zcGVjaWZpYwo+IC0KPiAtICAgIGNvbmZp ZyBGT08KPiAtICAgICAgICAgICB0cmlzdGF0ZQo+IC0gICAgICAgICAgIHByb21wdCAiZm9vIgo+ IC0gICAgICAgICAgIGhlbHAKPiAtICAgICAgICAgICAgIEZJWE1FCj4gLQo+IC0gICAgaWYgRk9P Cj4gLSAgICBjb25maWcgRk9PX0RFQlVHCj4gLSAgICAgICAgICAgYm9vbAo+IC0gICAgICAgICAg IHByb21wdCAiYWRkIGRlYnVnIG5vaXNlIgo+IC0KPiAtICAgIGNvbmZpZyBGT09fQkFSCj4gLSAg ICAgICAgICAgYm9vbAo+IC0gICAgICAgICAgIHByb21wdCAiYnVpbGQgYmFyIgo+IC0KPiAtICAg IGVuZGlmCj4gLQo+IC0uLiBpbXBvcnRhbnQ6OiBBbHdheXMgZm9sbG93IHRoZSBydWxlIHRvIGV4 dGVuZCB0aGUgYmFzZSBuYW1lIGJ5IGEgc3Vib3B0aW9uCj4gLSAgbmFtZSBhcyB0aGUgdHJhaWxp bmcgcGFydCBvZiB0aGUgdmFyaWFibGUgbmFtZS4gVGhpcyBnaXZlcyBQVFhkaXN0IHRoZSBhYmls aXR5Cj4gLSAgdG8gZGV0ZWN0IGEgY2hhbmdlIGluIHRoZSBwYWNrYWdl4oCZcyBzZXR0aW5ncyAo dmlhIG1lbnVjb25maWcpIHRvIGZvcmNlIGl0cwo+IC0gIHJlYnVpbGQgb24gZGVtYW5kLgo+IC0K PiAtVG8gbWFrZSB1c2FnZSBvZiB0aGUgbmV3IG1lbnUgZW50cmllcywgd2UgbXVzdCBjaGVjayB0 aGVtIGluIHRoZSBydWxlCj4gLWZpbGUgYW5kIGFkZCB0aGUgY29ycmVjdCBwYXJhbWV0ZXJzOgo+ IC0KPiAtLi4gY29kZS1ibG9jazo6IG1ha2UKPiAtCj4gLSAgICAjCj4gLSAgICAjIGF1dG9jb25m Cj4gLSAgICAjCj4gLSAgICBGT09fQ09ORl9PUFQgOj0gXAo+IC0gICAgICAgICQoQ1JPU1NfQVVU T0NPTkZfVVNSKSBcCj4gLSAgICAgICAgLS0kKGNhbGwgcHR4L2VuZGlzLCBQVFhDT05GX0ZPT19E RUJVRyktZGVidWcgXAo+IC0gICAgICAgIC0tJChjYWxsIHB0eC93d28sIFBUWENPTkZfRk9PX0JB UiktYmFyCj4gLQo+IC0uLiBpbXBvcnRhbnQ6OiBQbGVhc2Ugbm90ZSB0aGUgbGVhZGluZyBgYFBU WENPTkZfYGAgZm9yIGVhY2ggZGVmaW5lLiBXaGlsZSBLY29uZmlnIGlzCj4gLSAgdXNpbmcgYGBG T09fQkFSYGAsIHRoZSBydWxlIGZpbGUgbXVzdCB1c2UgYGBQVFhDT05GX0ZPT19CQVJgYCBpbnN0 ZWFkLgo+IC0KPiAtLi4gbm90ZTo6IFJlZmVyIDpyZWY6YFJ1bGUgRmlsZSBNYWNybyBSZWZlcmVu Y2UgPHBhcmFtX21hY3Jvcz5gIGZvciBmdXJ0aGVyCj4gLSAgIGRldGFpbHMgYWJvdXQgdGhlc2Ug c3BlY2lhbCBraW5kIG9mIG9wdGlvbiBtYWNyb3MgKGUuZy4gYGBwdHgvLi4uYGApLgo+IC0KPiAt SXQgaXMgYSBnb29kIHByYWN0aWNlIHRvIGFsd2F5cyBhZGQgYm90aCBzZXR0aW5ncywgZS5nLiBg YC0tZGlzYWJsZS1kZWJ1Z2BgCj4gLWV2ZW4gaWYgdGhpcyBpcyB0aGUgZGVmYXVsdCBjYXNlLiBT b21ldGltZXMgYGBjb25maWd1cmVgYCB0cmllcyB0byBndWVzcwo+IC1zb21ldGhpbmcgYW5kIHRo ZSBiaW5hcnkgcmVzdWx0IG1pZ2h0IGRpZmZlciBkZXBlbmRpbmcgb24gdGhlIGJ1aWxkCj4gLW9y ZGVyLiBGb3IgZXhhbXBsZSBzb21lIGtpbmQgb2YgcGFja2FnZSB3b3VsZCBhbHNvIGJ1aWxkIHNv bWUgWCByZWxhdGVkCj4gLXRvb2xzLCBpZiBYIGxpYnJhcmllcyBhcmUgZm91bmQuIEluIHRoaXMg Y2FzZSBpdCBkZXBlbmRzIG9uIHRoZSBidWlsZAo+IC1vcmRlciwgaWYgdGhlIFggcmVsYXRlZCB0 b29scyBhcmUgYnVpbHQgb3Igbm90LiBBbGwgdGhlIGF1dG9jaGVjawo+IC1mZWF0dXJlcyBhcmUg cHJvYmxlbWF0aWMgaGVyZS4gU28sIGlmIHdlIGRvIG5vdCB3YW50IGBgY29uZmlndXJlYGAgdG8K PiAtZ3Vlc3MgaXRzIHNldHRpbmdzIHdlICoqbXVzdCBkaXNhYmxlIGV2ZXJ5dGhpbmcgd2UgZG8g bm90IHdhbnQqKi4KPiAtCj4gLVRvIHN1cHBvcnQgdGhpcyBwcm9jZXNzLCBQVFhkaXN0IHN1cHBs aWVzIGEgaGVscGVyIHNjcmlwdCwgbG9jYXRlZCBhdAo+IC1gYC9wYXRoL3RvL3B0eGRpc3Qvc2Ny aXB0cy9jb25maWd1cmUtaGVscGVyLnB5YGAgdGhhdCBjb21wYXJlcyB0aGUgY29uZmlndXJlCj4g LW91dHB1dCB3aXRoIHRoZSBzZXR0aW5ncyBmcm9tIGBgRk9PX0NPTkZfT1BUYGA6Cj4gLQo+IC0u LiBjb2RlLWJsb2NrOjogdGV4dAo+IC0KPiAtICAgICQgL29wdC9wdHhkaXN0LTIwMTcuMDYuMC9z Y3JpcHRzL2NvbmZpZ3VyZS1oZWxwZXIucHkgLXAgbGlic2lncm9rCj4gLSAgICAtLS0gcnVsZXMv bGlic2lncm9rLm1ha2UKPiAtICAgICsrKyBsaWJzaWdyb2stMC41LjAKPiAtICAgIEBAIC00LDMg KzQsNzQgQEAKPiAtICAgICAJLS1saWJkaXI9L3Vzci9saWIKPiAtICAgICAJLS1idWlsZD14ODZf NjQtaG9zdC1saW51eC1nbnUKPiAtICAgICAJLS1ob3N0PWFybS12N2EtbGludXgtZ251ZWFiaWhm Cj4gLSAgICArCS0tZW5hYmxlLXdhcm5pbmdzPW1pbnxtYXh8ZmF0YWx8bm8KPiAtICAgICsJLS1k aXNhYmxlLWxhcmdlZmlsZQo+IC0gICAgKwktLWVuYWJsZS1hbGwtZHJpdmVycwo+IC0gICAgKwkt LWVuYWJsZS1hZ2lsZW50LWRtbQo+IC0gICAgWy4uLl0KPiAtICAgICsJLS1lbmFibGUtcnVieQo+ IC0gICAgKwktLWVuYWJsZS1qYXZhCj4gLSAgICArCS0td2l0aG91dC1saWJzZXJpYWxwb3J0Cj4g LSAgICArCS0td2l0aG91dC1saWJmdGRpCj4gLSAgICArCS0td2l0aG91dC1saWJ1c2IKPiAtICAg ICsJLS13aXRob3V0LWxpYnJldmlzYQo+IC0gICAgKwktLXdpdGhvdXQtbGliZ3BpYgo+IC0gICAg KwktLXdpdGhvdXQtbGliaWVlZTEyODQKPiAtICAgICsJLS13aXRoLWpuaS1pbmNsdWRlLXBhdGg9 RElSLUxJU1QKPiAtCj4gLUluIHRoaXMgZXhhbXBsZSwgbWFueSBjb25maWd1cmUgb3B0aW9ucyBm cm9tIGxpYnNpZ3JvayAobWFya2VkIHdpdGggYGArYGApCj4gLWFyZSBub3QgeWV0IHByZXNlbnQg aW4gYGBMSUJTSUdST0tfQ09ORl9PUFRgYCBhbmQgbXVzdCBiZSBhZGRlZCwgcG9zc2libHkgYWxz bwo+IC1ieSBwcm92aWRpbmcgbW9yZSBkeW5hbWljIG9wdGlvbnMgaW4gdGhlIHBhY2thZ2UgZGVm aW5pdGlvbi4KPiAtCj4gLUlmIHNvbWUgcGFydHMgb2YgYSBwYWNrYWdlIGFyZSBidWlsdCBvbiBk ZW1hbmQgb25seSwgdGhleSBtdXN0IGFsc28gYmUKPiAtaW5zdGFsbGVkIG9uIGRlbWFuZCBvbmx5 LiBCZXNpZGVzIHRoZSAqcHJlcGFyZSogc3RhZ2UsIHdlIGFsc28gbXVzdAo+IC1tb2RpZnkgb3Vy ICp0YXJnZXRpbnN0YWxsKiBzdGFnZToKPiAtCj4gLS4uIGNvZGUtYmxvY2s6OiBtYWtlCj4gLQo+ IC0gICAgCUAkKGNhbGwgaW5zdGFsbF9jb3B5LCBmb28sIDAsIDAsIDA3NTUsICQoRk9PX0RJUikv Zm9vLCAvdXNyL2Jpbi9mb28pCj4gLQo+IC0gICAgaWZkZWYgUFRYQ09ORl9GT09fQkFSCj4gLSAg ICAJQCQoY2FsbCBpbnN0YWxsX2NvcHksIGZvbywgMCwgMCwgMDc1NSwgJChGT09fRElSKS9iYXIs IC91c3IvYmluL2JhcikKPiAtICAgIGVuZGlmCj4gLQo+IC0gICAgCUAkKGNhbGwgaW5zdGFsbF9m aW5pc2gsIGZvbykKPiAtICAgIAlAJChjYWxsIHRvdWNoKQo+IC0KPiAtTm93IHdlIGNhbiBwbGF5 IHdpdGggb3VyIG5ldyBtZW51IGVudHJpZXMgYW5kIGNoZWNrIGlmIHRoZXkgYXJlIHdvcmtpbmcK PiAtYXMgZXhwZWN0ZWQ6Cj4gLQo+IC0uLiBjb2RlLWJsb2NrOjogdGV4dAo+IC0KPiAtICAgICQg cHR4ZGlzdCBtZW51Y29uZmlnCj4gLSAgICAkIHB0eGRpc3QgdGFyZ2V0aW5zdGFsbCBmb28KPiAt Cj4gLVdoZW5ldmVyIHdlIGNoYW5nZSBhICpGT08qIHJlbGF0ZWQgbWVudSBlbnRyeSwgUFRYZGlz dCBzaG91bGQgZGV0ZWN0IGl0Cj4gLWFuZCByZS1idWlsZCB0aGUgcGFja2FnZSB3aGVuIGEgbmV3 IGJ1aWxkIGlzIHN0YXJ0ZWQuCj4gLQo+IC0uLiBfZXh0ZXJuYWxfZGVwZW5kZW5jaWVzOgo+IC0K PiAtTWFuYWdpbmcgRXh0ZXJuYWwgQ29tcGlsZSBUaW1lIERlcGVuZGVuY2llcwo+IC1eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCj4gLQo+IC1XaGlsZSBydW5uaW5n IHRoZSBwcmVwYXJlIHN0YWdlLCBpdCBjb3VsZCBoYXBwZW4gdGhhdCBpdCBmYWlscyBkdWUgdG8g YQo+IC1taXNzaW5nIGV4dGVybmFsIGRlcGVuZGVuY3kuCj4gLQo+IC1Gb3IgZXhhbXBsZToKPiAt Cj4gLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Cj4gLQo+IC0gICAgY2hlY2tpbmcgd2hldGhlciB6bGli IGV4aXN0cy4uLi5mYWlsZWQKPiAtCj4gLUluIHRoaXMgZXhhbXBsZSwgb3VyIG5ldyBwYWNrYWdl IGRlcGVuZHMgb24gdGhlIGNvbXByZXNzaW9uIGxpYnJhcnkKPiAtKnpsaWIqLiBQVFhkaXN0IGNv bWVzIHdpdGggYSB0YXJnZXQgKnpsaWIqLiBBbGwgd2UgbmVlZCB0byBkbyBpbiB0aGlzCj4gLWNh c2UgaXMgdG8gZGVjbGFyZSB0aGF0IG91ciBuZXcgcGFja2FnZSAqZm9vKiBkZXBlbmRzIG9uICp6 bGliKi4gVGhpcwo+IC1raW5kIG9mIGRlcGVuZGVuY3kgaXMgbWFuYWdlZCBpbiB0aGUgbWVudSBm aWxlIG9mIG91ciBuZXcgcGFja2FnZSBieQo+IC1zaW1wbHkgYWRkaW5nIHRoZSBgYHNlbGVjdCBa TElCYGAgbGluZS4gQWZ0ZXIgdGhpcyBhZGRpdGlvbiBvdXIgbWVudQo+IC1maWxlIGxvb2tzIGxp a2U6Cj4gLQo+IC0uLiBjb2RlLWJsb2NrOjoga2NvbmZpZwo+IC0KPiAtICAgICMjIFNFQ1RJT049 cHJvamVjdF9zcGVjaWZpYwo+IC0KPiAtICAgIGNvbmZpZyBGT08KPiAtICAgICAgICAgICB0cmlz dGF0ZQo+IC0gICAgICAgICAgIHNlbGVjdCBaTElCCj4gLSAgICAgICAgICAgcHJvbXB0ICJmb28i Cj4gLSAgICAgICAgICAgaGVscAo+IC0gICAgICAgICAgICAgRklYTUUKPiAtCj4gLSAgICBpZiBG T08KPiAtICAgIGNvbmZpZyBGT09fREVCVUcKPiAtICAgICAgICAgICBib29sCj4gLSAgICAgICAg ICAgcHJvbXB0ICJhZGQgZGVidWcgbm9pc2UiCj4gLQo+IC0gICAgY29uZmlnIEZPT19CQVIKPiAt ICAgICAgICAgICBib29sCj4gLSAgICAgICAgICAgcHJvbXB0ICJidWlsZCBiYXIiCj4gLQo+IC0g ICAgZW5kaWYKPiAtCj4gLVBUWGRpc3Qgbm93IGJ1aWxkcyB0aGUgKnpsaWIqIGZpcnN0IGFuZCBv dXIgbmV3IHBhY2thZ2UgdGhlcmVhZnRlci4KPiAtCj4gLVJlZmVyIDpyZWY6YGV4dGVybmFsX2Rl cGVuZGVuY2llc192YXJpYW50c2AgZm9yIG1vcmUgc3BlY2lmaWMgZGVwZW5kZW5jeQo+IC1kZXNj cmlwdGlvbi4KPiAtCj4gLU1hbmFnaW5nIEV4dGVybmFsIENvbXBpbGUgVGltZSBEZXBlbmRlbmNp ZXMgb24gRGVtYW5kCj4gLV5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eCj4gLQo+IC1JdCBpcyBnb29kIHByYWN0aWNlIHRvIGFkZCBvbmx5IHRob3Nl IGRlcGVuZGVuY2llcyB0aGF0IGFyZSByZWFsbHkKPiAtcmVxdWlyZWQgZm9yIHRoZSBjdXJyZW50 IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHBhY2thZ2UuIElmIHRoZSBwYWNrYWdlCj4gLXByb3ZpZGVz IHRoZSBmZWF0dXJlcyAqZm9vKiBhbmQgKmJhciogYW5kIGl0cyBgYGNvbmZpZ3VyZWBgIHByb3Zp ZGVzCj4gLXN3aXRjaGVzIHRvIGVuYWJsZS9kaXNhYmxlIHRoZW0gaW5kZXBlbmRlbnRseSwgd2Ug Y2FuIGFsc28gYWRkCj4gLWRlcGVuZGVuY2llcyBvbiBkZW1hbmQuIExldOKAmXMgYXNzdW1lIGZl YXR1cmUgKmZvbyogbmVlZHMgdGhlIGNvbXByZXNzaW9uCj4gLWxpYnJhcnkgKmxpYnoqIGFuZCAq YmFyKiBuZWVkcyB0aGUgWE1MMiBsaWJyYXJ5ICpsaWJ4bWwyKi4gVGhlc2UKPiAtbGlicmFyaWVz IGFyZSBvbmx5IHJlcXVpcmVkIGF0IHJ1bi10aW1lIGlmIHRoZSBjb3JyZXNwb25kaW5nIGZlYXR1 cmUgaXMKPiAtZW5hYmxlZC4gVG8gYWRkIHRoZXNlIGRlcGVuZGVuY2llcyBvbiBkZW1hbmQsIHRo ZSBtZW51IGZpbGUgbG9va3MgbGlrZToKPiAtCj4gLS4uIGNvZGUtYmxvY2s6OiBrY29uZmlnCj4g LQo+IC0gICAgIyMgU0VDVElPTj1wcm9qZWN0X3NwZWNpZmljCj4gLQo+IC0gICAgY29uZmlnIEZP Two+IC0gICAgICAgICAgIHRyaXN0YXRlCj4gLSAgICAgICAgICAgc2VsZWN0IFpMSUIgaWYgRk9P X0ZPTwo+IC0gICAgICAgICAgIHNlbGVjdCBMSUJYTUwyIGlmIEZPT19CQVIKPiAtICAgICAgICAg ICBwcm9tcHQgImZvbyIKPiAtICAgICAgICAgICBoZWxwCj4gLSAgICAgICAgICAgICBGSVhNRQo+ IC0KPiAtICAgIGlmIEZPTwo+IC0gICAgY29uZmlnIEZPT19ERUJVRwo+IC0gICAgICAgICAgIGJv b2wKPiAtICAgICAgICAgICBwcm9tcHQgImFkZCBkZWJ1ZyBub2lzZSIKPiAtCj4gLSAgICBjb25m aWcgRk9PX0ZPTwo+IC0gICAgICAgICAgIGJvb2wKPiAtICAgICAgICAgICBwcm9tcHQgImJ1aWxk IGZvbyIKPiAtCj4gLSAgICBjb25maWcgRk9PX0JBUgo+IC0gICAgICAgICAgIGJvb2wKPiAtICAg ICAgICAgICBwcm9tcHQgImJ1aWxkIGJhciIKPiAtCj4gLSAgICBlbmRpZgo+IC0KPiAtLi4gaW1w b3J0YW50OjogRG8gbm90IGFkZCB0aGVzZSBgYHNlbGVjdGBgIHN0YXRlbWVudHMgdG8gdGhlIGNv cnJlc3BvbmRpbmcgbWVudSBlbnRyeS4KPiAtICBUaGV5IG11c3QgYmVsb25nIHRvIHRoZSBtYWlu IG1lbnUgZW50cnkgb2YgdGhlIHBhY2thZ2UgdG8gZW5zdXJlIHRoYXQKPiAtICB0aGUgY2FsY3Vs YXRpb24gb2YgdGhlIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRoZSBwYWNrYWdlcyBpcyBkb25lIGlu IGEKPiAtICBjb3JyZWN0IG1hbm5lci4KPiAtCj4gLU1hbmFnaW5nIEV4dGVybmFsIFJ1bnRpbWUg RGVwZW5kZW5jaWVzCj4gLV5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCj4g LQo+IC1Tb21lIHBhY2thZ2VzIGFyZSBidWlsZGluZyBhbGwgb2YgdGhlaXIgY29tcG9uZW50cyBh bmQgYWxzbyBpbnN0YWxsaW5nCj4gLXRoZW0gaW50byB0aGUgdGFyZ2V04oCZcyBzeXNyb290LiBC dXQgb25seSB0aGVpciAqdGFyZ2V0aW5zdGFsbCogc3RhZ2UKPiAtZGVjaWRlcyB3aGljaCBwYXJ0 cyBhcmUgY29waWVkIHRvIHRoZSByb290IGZpbGVzeXN0ZW0uIFNvLCBjb21waWxpbmcgYW5kCj4g LWxpbmtpbmcgb2Ygb3VyIHBhY2thZ2Ugd2lsbCB3b3JrLCBiZWNhdXNlIGV2ZXJ5dGhpbmcgcmVx dWlyZWQgaXMgZm91bmQKPiAtaW4gdGhlIHRhcmdldOKAmXMgc3lzcm9vdC4KPiAtCj4gLUluIG91 ciBleGFtcGxlIHRoZXJlIGlzIGEgaGlkZGVuIGRlcGVuZGVuY3kgdG8gdGhlIG1hdGggbGlicmFy eQo+IC1gYGxpYm1gYC4gT3VyIG5ldyBwYWNrYWdlIHdhcyBidWlsdCBzdWNjZXNzZnVsbHksIGJl Y2F1c2UgdGhlIGxpbmtlciB3YXMKPiAtYWJsZSB0byBsaW5rIG91ciBiaW5hcmllcyBhZ2FpbnN0 IHRoZSBgYGxpYm1gYCBmcm9tIHRoZSB0b29sY2hhaW4uIEJ1dAo+IC1pbiB0aGlzIGNhc2UgdGhl IGBgbGlibWBgIG11c3QgYWxzbyBiZSBhdmFpbGFibGUgaW4gdGhlIHRhcmdldOKAmXMgcm9vdAo+ IC1maWxlc3lzdGVtIHRvIGZ1bGZpbCB0aGUgcnVuLXRpbWUgZGVwZW5kZW5jeTogV2UgaGF2ZSB0 byBmb3JjZSBQVFhkaXN0IHRvCj4gLWluc3RhbGwgYGBsaWJtYGAuIGBgbGlibWBgIGlzIHBhcnQg b2YgdGhlICpnbGliYyogcGFja2FnZSwgYnV0IGlzIG5vdAo+IC1pbnN0YWxsZWQgYnkgZGVmYXVs dCAodG8ga2VlcCB0aGUgcm9vdCBmaWxlc3lzdGVtIHNtYWxsKS4gU28sIGl0ICoqZG9lcwo+IC1u b3QqKiBoZWxwIHRvIHNlbGVjdCB0aGUgYGBHTElCQ2BgIHN5bWJvbCwgdG8gZ2V0IGEgYGBsaWJt YGAgYXQgcnVuLXRpbWUuCj4gLQo+IC1UaGUgY29ycmVjdCBzb2x1dGlvbiBoZXJlIGlzIHRvIGFk ZCBhIGBgc2VsZWN0IExJQkNfTWBgIHRvIG91ciBtZW51Cj4gLWZpbGUuIFdpdGggYWxsIHRoZSBh ZGRpdGlvbnMgYWJvdmUgaXQgbm93IGxvb2tzIGxpa2U6Cj4gLQo+IC0uLiBjb2RlLWJsb2NrOjog a2NvbmZpZwo+IC0KPiAtICAgICMjIFNFQ1RJT049cHJvamVjdF9zcGVjaWZpYwo+IC0KPiAtICAg IGNvbmZpZyBGT08KPiAtICAgICAgICAgICB0cmlzdGF0ZQo+IC0gICAgICAgICAgIHNlbGVjdCBa TElCIGlmIEZPT19GT08KPiAtICAgICAgICAgICBzZWxlY3QgTElCWE1MMiBpZiBGT09fQkFSCj4g LSAgICAgICAgICAgc2VsZWN0IExJQkNfTQo+IC0gICAgICAgICAgIHByb21wdCAiZm9vIgo+IC0g ICAgICAgICAgIGhlbHAKPiAtICAgICAgICAgICAgIEZJWE1FCj4gLQo+IC0gICAgaWYgRk9PCj4g LSAgICBjb25maWcgRk9PX0RFQlVHCj4gLSAgICAgICAgICAgYm9vbAo+IC0gICAgICAgICAgIHBy b21wdCAiYWRkIGRlYnVnIG5vaXNlIgo+IC0KPiAtICAgIGNvbmZpZyBGT09fRk9PCj4gLSAgICAg ICAgICAgYm9vbAo+IC0gICAgICAgICAgIHByb21wdCAiYnVpbGQgZm9vIgo+IC0KPiAtICAgIGNv bmZpZyBGT09fQkFSCj4gLSAgICAgICAgICAgYm9vbAo+IC0gICAgICAgICAgIHByb21wdCAiYnVp bGQgYmFyIgo+IC0KPiAtICAgIGVuZGlmCj4gLQo+IC0uLiBub3RlOjogVGhlcmUgYXJlIG90aGVy IHBhY2thZ2VzIGFyb3VuZCwgdGhhdCBkbyBub3QgaW5zdGFsbCBldmVyeXRoaW5nIGJ5Cj4gLSAg ZGVmYXVsdC4gSWYgb3VyIG5ldyBwYWNrYWdlIG5lZWRzIHNvbWV0aGluZyBzcGVjaWFsLCB3ZSBt dXN0IHRha2UgYSBsb29rCj4gLSAgaW50byB0aGUgbWVudSBvZiB0aGUgb3RoZXIgcGFja2FnZSBo b3cgdG8gZm9yY2UgdGhlIHJlcXVpcmVkIGNvbXBvbmVudHMKPiAtICB0byBiZSBpbnN0YWxsZWQg YW5kIGFkZCB0aGUgY29ycmVzcG9uZGluZyBgYHNlbGVjdHNgYCB0byBvdXIgb3duIG1lbnUKPiAt ICBmaWxlLiBJbiB0aGlzIGNhc2UgaXQgZG9lcyBub3QgaGVscCB0byBlbmFibGUgdGhlIHJlcXVp cmVkIHBhcnRzIGluIG91cgo+IC0gIHByb2plY3QgY29uZmlndXJhdGlvbiwgYmVjYXVzZSB0aGlz IGhhcyBubyBlZmZlY3Qgb24gdGhlIGJ1aWxkIG9yZGVyIQo+IC0KPiAtTWFuYWdpbmcgUGxhaW4g TWFrZWZpbGUgUGFja2FnZXMKPiAtXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KPiAt Cj4gLU1hbnkgcGFja2FnZXMgYXJlIHN0aWxsIGNvbWluZyB3aXRoIGEgcGxhaW4gYGBNYWtlZmls ZWBgLiBUaGUgdXNlciBoYXMKPiAtdG8gYWRhcHQgaXQgdG8gbWFrZSBpdCB3b3JrIGluIGEgY3Jv c3MgY29tcGlsZSBlbnZpcm9ubWVudCBhcyB3ZWxsLgo+IC1QVFhkaXN0IGNhbiBhbHNvIGhhbmRs ZSB0aGlzIGtpbmQgb2YgcGFja2FnZXMuIFdlIG9ubHkgaGF2ZSB0byBzcGVjaWZ5Cj4gLWEgc3Bl Y2lhbCAqcHJlcGFyZSogYW5kICpjb21waWxlKiBzdGFnZS4KPiAtCj4gLVN1Y2ggcGFja2FnZXMg b2Z0ZW4gaGF2ZSBubyBzcGVjaWFsIG5lZWQgZm9yIGFueSBraW5kIG9mIHByZXBhcmF0aW9uLiBJ bgo+IC10aGlzIHdlIG11c3QgaW5zdHJ1Y3QgUFRYZGlzdCB0byBkbyBub3RoaW5nIGluIHRoZSAq cHJlcGFyZSogc3RhZ2U6Cj4gLQo+IC0uLiBjb2RlLWJsb2NrOjogbWFrZQo+IC0KPiAtICAgIEZP T19DT05GX1RPT0wgOj0gTk8KPiAtCj4gLVRvIGNvbXBpbGUgdGhlIHBhY2thZ2UsIHdlIGNhbiB1 c2UgYGBtYWtlYGBcIOKAmXMgZmVhdHVyZSB0byBvdmVyd3JpdGUKPiAtdmFyaWFibGVzIHVzZWQg aW4gdGhlIGBgTWFrZWZpbGVgYC4gV2l0aCB0aGlzIGZlYXR1cmUgd2UgY2FuIHN0aWxsIHVzZQo+ IC10aGUgb3JpZ2luYWwgYGBNYWtlZmlsZWBgIGJ1dCB3aXRoIG91ciBvd24gKGNyb3NzIGNvbXBp bGUpIHNldHRpbmdzLgo+IC0KPiAtTW9zdCBvZiB0aGUgdGltZSB0aGUgZ2VuZXJpYyBjb21waWxl IHJ1bGUgY2FuIGJlIHVzZWQsIG9ubHkgYSBmZXcKPiAtc2V0dGluZ3MgYXJlIHJlcXVpcmVkLiBG b3IgYSB3ZWxsIGRlZmluZWQgYGBNYWtlZmlsZWBgIGl0IGlzIHN1ZmZpY2llbnQgdG8KPiAtc2V0 IHVwIHRoZSBjb3JyZWN0IGNyb3NzIGNvbXBpbGUgZW52aXJvbm1lbnQgZm9yIHRoZSAqY29tcGls ZSogc3RhZ2U6Cj4gLQo+IC0uLiBjb2RlLWJsb2NrOjogbWFrZQo+IC0KPiAtICAgIEZPT19NQUtF X0VOViA6PSAkKENST1NTX0VOVikKPiAtCj4gLWBgbWFrZWBgIHdpbGwgYmUgY2FsbGVkIGluIHRo aXMgY2FzZSB3aXRoOgo+IC0KPiAtYGAkKEZPT19NQUtFX0VOVikgJChNQUtFKSAtQyAkKEZPT19E SVIpICQoRk9PX01BS0VfT1BUKWBgCj4gLQo+IC1TbywgaW4gdGhlIHJ1bGUgZmlsZSBvbmx5IHRo ZSB0d28gdmFyaWFibGVzIGBgRk9PX01BS0VfRU5WYGAgYW5kCj4gLWBgRk9PX01BS0VfT1BUYGAg bXVzdCBiZSBzZXQsIHRvIGZvcndhcmQgdGhlIHJlcXVpcmVkIHNldHRpbmdzIHRvIHRoZQo+IC1w YWNrYWdl4oCZcyBidWlsZHN5c3RlbS4gSWYgdGhlIHBhY2thZ2UgY2Fubm90IGJlIGJ1aWx0IGlu IHBhcmFsbGVsLCB3ZQo+IC1jYW4gYWxzbyBhZGQgdGhlIGBgRk9PX01BS0VfUEFSwqA6PcKgTk9g YC4gYGBZRVNgYCBpcyB0aGUgZGVmYXVsdC4KPiAtCj4gLU1hbmFnaW5nIENNYWtlL1FNYWtlL01l c29uIFBhY2thZ2VzCj4gLV5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCj4gLQo+ IC1CdWlsZGluZyBwYWNrYWdlcyB0aGF0IHVzZSBgYGNtYWtlYGAsIGBgcW1ha2VgYCBvciBgYG1l c29uYGAgaXMgbXVjaCBsaWtlCj4gLWJ1aWxkaW5nIHBhY2thZ2VzIHdpdGggYW4gYXV0b3Rvb2xz IGJhc2VkIGJ1aWxkc3lzdGVtLiBXZSBuZWVkIHRvIHNwZWNpZnkKPiAtdGhlIGNvbmZpZ3VyYXRp b24gdG9vbDoKPiAtCj4gLS4uIGNvZGUtYmxvY2s6OiBtYWtlCj4gLQo+IC0gICAgRk9PX0NPTkZf VE9PTCA6PSBjbWFrZQo+IC0KPiAtb3IKPiAtCj4gLS4uIGNvZGUtYmxvY2s6OiBtYWtlCj4gLQo+ IC0gICAgRk9PX0NPTkZfVE9PTCA6PSBxbWFrZQo+IC0KPiAtb3IgcmVzcGVjdGl2ZWx5Cj4gLQo+ IC0uLiBjb2RlLWJsb2NrOjogbWFrZQo+IC0KPiAtICAgIEZPT19DT05GX1RPT0wgOj0gbWVzb24K PiAtCj4gLUFuZCBwcm92aWRlIHRoZSBjb3JyZWN0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGhl IHN5bnRheCBpcyBkaWZmZXJlbnQgc28KPiAtUFRYZGlzdCBwcm92aWRlcyBhZGRpdGlvbmFsIG1h Y3JvcyB0byBzaW1wbGlmeSBjb25maWd1cmFibGUgZmVhdHVyZXMuCj4gLUZvciBgYGNtYWtlYGAg dGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0eXBpY2FsbHkgbG9vayBsaWtlIHRoaXM6Cj4gLQo+ IC0uLiBjb2RlLWJsb2NrOjogbWFrZQo+IC0KPiAtICAgIEZPT19DT05GX09QVCA6PSBcCj4gLSAg ICAJJChDUk9TU19DTUFLRV9VU1IpIFwKPiAtICAgIAktREJVSUxEX1RFU1RTOkJPT0w9T0ZGIFwK PiAtICAgIAktREVOQUJMRV9CQVI6Qk9PTD0kKGNhbGwgcHR4L29ub2ZmLCBQVFhDT05GX0ZPT19C QVIpCj4gLQo+IC1Gb3IgYGBxbWFrZWBgIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdHlwaWNh bGx5IGxvb2sgbGlrZSB0aGlzOgo+IC0KPiAtLi4gY29kZS1ibG9jazo6IG1ha2UKPiAtCj4gLSAg ICBGT09fQ09ORl9PUFQgOj0gXAo+IC0gICAgCSQoQ1JPU1NfUU1BS0VfT1BUKSBcCj4gLSAgICAJ UFJFRklYPS91c3IKPiAtCj4gLUFuZCBmb3IgYGBtZXNvbmBgIHRoZSBjb25maWd1cmF0aW9uIG9w dGlvbnMgdHlwaWNhbGx5IGxvb2sgbGlrZSB0aGlzOgo+IC0KPiAtLi4gY29kZS1ibG9jazo6IG1h a2UKPiAtCj4gLSAgICBGT09fQ09ORl9PUFQgOj0gXAo+IC0gICAgCSQoQ1JPU1NfTUVTT05fVVNS KSBcCj4gLSAgICAJLURiYXI9JChjYWxsIHB0eC90cnVlZmFsc2UsUFRYQ09ORl9GT09fQkFSKQo+ IC0KPiAtUGxlYXNlIG5vdGUgdGhhdCBjdXJyZW50bHkgb25seSBob3N0IGFuZCB0YXJnZXQgYGBj bWFrZWBgXC9gYG1lc29uYGAgcGFja2FnZXMKPiAtYW5kIG9ubHkgdGFyZ2V0IGBgcW1ha2VgYCBw YWNrYWdlcyBhcmUgc3VwcG9ydGVkLgo+IC0KPiAtTWFuYWdpbmcgUHl0aG9uIFBhY2thZ2VzCj4g LV5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgo+IC0KPiAtQXMgd2l0aCBhbnkgb3RoZXIgcGFja2Fn ZSwgdGhlIGNvcnJlY3QgY29uZmlndXJhdGlvbiB0b29sIG11c3QgYmUgc2VsZWN0ZWQKPiAtZm9y IFB5dGhvbiBwYWNrYWdlczoKPiAtCj4gLS4uIGNvZGUtYmxvY2s6OiBtYWtlCj4gLQo+IC0gICAg Rk9PX0NPTkZfVE9PTCA6PSBweXRob24KPiAtCj4gLS4uIG5vdGU6OiBGb3IgUHl0aG9uMyBwYWNr YWdlcyB0aGUgdmFsdWUgbXVzdCBiZSBgYHB5dGhvbjNgYC4KPiAtCj4gLU5vIE1ha2VmaWxlcyBh cmUgdXNlZCB3aGVuIGJ1aWxkaW5nIFB5dGhvbiBwYWNrYWdlcyBzbyB0aGUgdXN1YWwgYGBtYWtl YGAKPiAtYW5kIGBgbWFrZSBpbnN0YWxsYGAgZm9yIHRoZSAqY29tcGlsZSogYW5kICppbnN0YWxs KiBzdGFnZXMgY2Fubm90IGJlIHVzZWQuCj4gLVBUWGRpc3Qgd2lsbCBjYWxsIGBgcHl0aG9uIHNl dHVwLnB5IGJ1aWxkYGAgYW5kIGBgcHl0aG9uIHNldHVwLnB5IGluc3RhbGxgYAo+IC1pbnN0ZWFk Lgo+IC0KPiAtLi4gbm90ZTo6ICpGT08qIGlzIHN0aWxsIHRoZSBuYW1lIG9mIG91ciBleGFtcGxl IHBhY2thZ2UuIEl0IG11c3QgYmUKPiAtICByZXBsYWNlZCBieSB0aGUgcmVhbCBwYWNrYWdlIG5h bWUuCj4gLQo+IC0KPiAtLi4gX3BhdGNoaW5nX3BhY2thZ2VzOgo+IC0KPiAtUGF0Y2hpbmcgUGFj a2FnZXMKPiAtfn5+fn5+fn5+fn5+fn5+fn4KPiAtCj4gLVRoZXJlIGNhbiBiZSB2YXJpb3VzIHJl YXNvbnMgd2h5IGEgcGFja2FnZSBtdXN0IGJlIHBhdGNoZWQ6Cj4gLQo+IC0tICBQYWNrYWdlIGlz IGJyb2tlbiBmb3IgY3Jvc3MgY29tcGlsZSBlbnZpcm9ubWVudHMKPiAtCj4gLS0gIFBhY2thZ2Ug aXMgYnJva2VuIHdpdGhpbiBhIHNwZWNpZmljIGZlYXR1cmUKPiAtCj4gLS0gIFBhY2thZ2UgaXMg dnVsbmVyYWJsZSBhbmQgbmVlZHMgc29tZSBmaXhlcwo+IC0KPiAtLSAgb3IgYW55dGhpbmcgZWxz ZSAodGhpcyBjYXNlIGlzIHRoZSBtb3N0IGNvbW1vbiBvbmUpCj4gLQo+IC1JZGVhbGx5LCB0aG9z ZSBwcm9ibGVtcyBzaG91bGQgYmUgYWRkcmVzc2VkIGluIHRoZSBvcmlnaW5hbCBwcm9qZWN0LAo+ IC1zbyBhbnkgcGF0Y2hlcyB5b3UgYWRkIHRvIHlvdXIgQlNQIG9yIHRvIFBUWGRpc3Qgc2hvdWxk IGFsc28gYmUgc3VibWl0dGVkIHVwc3RyZWFtLgo+IC1UaGUgdXBzdHJlYW0gcHJvamVjdCBjYW4g b2Z0ZW4gcHJvdmlkZSBiZXR0ZXIgZmVlZGJhY2ssIHRoZXkgY2FuIGludGVncmF0ZSB5b3VyCj4g LXBhdGNoIGludG8gYSBuZXcgcmVsZWFzZSwgYW5kIGFsc28gbWFpbnRhaW4geW91ciBjaGFuZ2Vz IGFzIHBhcnQgb2YgdGhlIHByb2plY3QuCj4gLVRoaXMgd2F5IHdlIG1ha2Ugc3VyZSB0aGF0IGFs bCBhZHZhbnRhZ2VzIG9mIHRoZSBvcGVuIHNvdXJjZSBpZGVhIHdvcmsgZm9yIHVzOwo+IC1hbmQg eW91ciBwYXRjaCBjYW4gYmUgcmVtb3ZlZCBhZ2FpbiBsYXRlciB3aGVuIGEgbmV3IHJlbGVhc2Ug b2YgdGhlIHByb2plY3QgaXMKPiAtaW50ZWdyYXRlZCBpbnRvIHlvdXIgQlNQIG9yIGludG8gUFRY ZGlzdC4KPiAtCj4gLVBUWGRpc3QgaGFuZGxlcyBwYXRjaGluZyBhdXRvbWF0aWNhbGx5Lgo+IC1B ZnRlciBleHRyYWN0aW5nIHRoZSBhcmNoaXZlIG9mIGEgcGFja2FnZSwgUFRYZGlzdCBjaGVja3Mg Zm9yIHRoZSBleGlzdGVuY2Ugb2YKPiAtYSBwYXRjaCBkaXJlY3RvcnkgbmFtZWQgbGlrZSBpdHMg YGA8UEtHPl9QQVRDSEVTYGAgdmFyaWFibGUsIG9yLCBpZiB0aGlzIHZhcmlhYmxlCj4gLWlzIG5v dCBzZXQsIGxpa2UgaXRzIGBgPFBLRz5gYCB2YXJpYWJsZS4KPiAtVGhlIHBhdGNoIGRpcmVjdG9y eSBpcyB0aGVuIHNlYXJjaGVkIGluIGFsbCBsb2NhdGlvbnMgbGlzdGVkIGJ5IHRoZQo+IC1gYFBU WERJU1RfUEFUSF9QQVRDSEVTYGAgdmFyaWFibGUsIGFuZCB0aGUgZmlyc3Qgb25lIGZvdW5kIGlz IHVzZWQuCj4gLVRha2UgYW4gZXhlbXBsYXJ5IHBhY2thZ2UgYGBmb29gYCB3aXRoIHZlcnNpb24g YGAxLjEuMGBgOgo+IC1UaGUgdmFyaWFibGUgYGBGT09gYCB3aWxsIGhhdmUgdGhlIHZhbHVlIGBg Zm9vLTEuMS4wYGAsIHNvIFBUWGRpc3Qgd2lsbCBsb29rIGZvcgo+IC1hIHBhdGNoIGRpcmVjdG9y eSBuYW1lZCBgYGZvby0xLjEuMGBgIGluIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgo+IC0KPiAt Iy4gdGhlIGN1cnJlbnQgbGF5ZXI6Cj4gLQo+IC0gICBhLiBwcm9qZWN0IChgYC4vcGF0Y2hlcy9m b28tMS4xLjBgYCkKPiAtICAgYi4gcGxhdGZvcm0gKGBgLi9jb25maWdzL3xwdHhkaXN0UGxhdGZv cm1Db25maWdEaXJ8L3BhdGNoZXMvZm9vLTEuMS4wYGApCj4gLQo+IC0jLiBhbnkgOnJlZjpgYmFz ZSBsYXllcnMgPGxheWVycy1pbi1wdHhkaXN0PmAsCj4gLSAgIGFwcGx5aW5nIHRoZSBzYW1lIHNl YXJjaCBvcmRlciBhcyBhYm92ZSBmb3IgZWFjaCBsYXllciByZWN1cnNpdmVseQo+IC0KPiAtIy4g cHR4ZGlzdCAoYGA8cHR4ZGlzdC9pbnN0YWxsYXRpb24vcGF0aD4vcGF0Y2hlcy9mb28tMS4xLjBg YCkKPiAtCj4gLVRoZSBwYXRjaGVzIGZyb20gdGhlIGZpcnN0IGxvY2F0aW9uIGZvdW5kIGFyZSB1 c2VkLiBOb3RlOiBEdWUgdG8gdGhpcwo+IC1zZWFyY2ggb3JkZXIsIGEgUFRYZGlzdCBwcm9qZWN0 IGNhbiByZXBsYWNlIGdsb2JhbCBwYXRjaGVzIGZyb20gdGhlCj4gLVBUWGRpc3QgaW5zdGFsbGF0 aW9uLiBUaGlzIGNhbiBiZSB1c2VmdWwgaWYgYSBwcm9qZWN0IHN0aWNrcyB0byBhCj4gLXNwZWNp ZmljIFBUWGRpc3QgcmV2aXNpb24gYnV0IGZpeGVzIGZyb20gYSBtb3JlIHJlY2VudCByZXZpc2lv biBvZgo+IC1QVFhkaXN0IHNob3VsZCBiZSB1c2VkLgo+IC0KPiAtUFRYZGlzdCB1c2VzIHRoZSB1 dGlsaXRpZXMgKmdpdCosICpwYXRjaCogb3IgKnF1aWx0KiB0byB3b3JrIHdpdGgKPiAtcGF0Y2hl cyBvciBwYXRjaCBzZXJpZXMuIFdlIHJlY29tbWVuZCAqZ2l0KiwgYXMgaXQgY2FuIG1hbmFnZSBw YXRjaAo+IC1zZXJpZXMgaW4gYSB2ZXJ5IGVhc3kgd2F5Lgo+IC0KPiAtQ3JlYXRpbmcgYSBQYXRj aCBTZXJpZXMgZm9yIGEgUGFja2FnZQo+IC1eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eCj4gLQo+IC1UbyBjcmVhdGUgYSBwYXRjaCBzZXJpZXMgZm9yIHRoZSBmaXJzdCB0aW1l LCB3ZSBjYW4gcnVuIHRoZSBmb2xsb3dpbmcKPiAtc3RlcHMuIFdlIGFyZSBzdGlsbCB1c2luZyBv dXIgKmZvby0xLjEuMCogZXhhbXBsZSBwYWNrYWdlIGhlcmU6Cj4gLQo+IC1Vc2luZyBRdWlsdAo+ IC0iIiIiIiIiIiIiIgo+IC0KPiAtV2UgY3JlYXRlIGEgc3BlY2lhbCBkaXJlY3RvcnkgZm9yIHRo ZSBwYXRjaCBzZXJpZXMgaW4gdGhlIGxvY2FsIHByb2plY3QKPiAtZGlyZWN0b3J5Ogo+IC0KPiAt Li4gY29kZS1ibG9jazo6IHRleHQKPiAtCj4gLSAgICAkIG1rZGlyIC1wIHBhdGNoZXMvZm9vLTEu MS4wCj4gLQo+IC1QVFhkaXN0IGV4cGVjdHMgYSBgYHNlcmllc2BgIGZpbGUgaW4gdGhlIHBhdGNo IGRpcmVjdG9yeSBhbmQgYXQgbGVhc3QKPiAtb25lIHBhdGNoLiBPdGhlcndpc2UgaXQgZmFpbHMu IER1ZSB0byB0aGUgZmFjdCB0aGF0IHdlIGRvIG5vdCBoYXZlIGFueQo+IC1wYXRjaCBjb250ZW50 IHlldCwgd2XigJlsbCBzdGFydCB3aXRoIGEgZHVtbXkgZW50cnkgaW4gdGhlIGBgc2VyaWVzYGAg ZmlsZQo+IC1hbmQgYW4gZW1wdHkgYGBwYXRjaGBgIGZpbGUuCj4gLQo+IC0uLiBjb2RlLWJsb2Nr OjogdGV4dAo+IC0KPiAtICAgICQgdG91Y2ggcGF0Y2hlcy9mb28tMS4xLjAvZHVtbXkKPiAtICAg ICQgZWNobyBkdW1teSA+IHBhdGNoZXMvZm9vLTEuMS4wL3Nlcmllcwo+IC0KPiAtTmV4dCBpcyB0 byBleHRyYWN0IHRoZSBwYWNrYWdlIChpZiBhbHJlYWR5IGRvbmUsIHdlIG11c3QgcmVtb3ZlIGl0 Cj4gLWZpcnN0KToKPiAtCj4gLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Cj4gLQo+IC0gICAgJCBwdHhk aXN0IGV4dHJhY3QgZm9vCj4gLQo+IC1UaGlzIHdpbGwgZXh0cmFjdCB0aGUgYXJjaGl2ZSBhbmQg Y3JlYXRlIGEgc3ltYm9saWMgbGluayBpbiB0aGUgYnVpbGQKPiAtZGlyZWN0b3J5IHBvaW50aW5n IHRvIG91ciBsb2NhbCBwYXRjaCBkaXJlY3RvcnkuIFdvcmtpbmcgdGhpcyB3YXkgd2lsbAo+IC1l bnN1cmUgdGhhdCB3ZSBkbyBub3QgbG9zZSBvdXIgY3JlYXRlZCBwYXRjaGVzIGlmIHdlIGVudGVy Cj4gLWBgcHR4ZGlzdCBjbGVhbiBmb29gYCBieSBhY2NpZGVudC4gSW4gb3VyIGNhc2UgdGhlIHBh dGNoZXMgYXJlIHN0aWxsCj4gLXByZXNlbnQgaW4gYGBwYXRjaGVzL2Zvby0xLjEuMGBgIGFuZCBj YW4gYmUgdXNlZCB0aGUgbmV4dCB0aW1lIHdlCj4gLWV4dHJhY3QgdGhlIHBhY2thZ2UgYWdhaW4u Cj4gLQo+IC1BbGwgd2UgaGF2ZSB0byBkbyBub3cgaXMgdG8gZG8gdGhlIG1vZGlmaWNhdGlvbiB3 ZSBuZWVkIHRvIG1ha2UgdGhlCj4gLXBhY2thZ2Ugd29yay4gV2UgY2hhbmdlIGludG8gdGhlIGJ1 aWxkIGRpcmVjdG9yeSBhbmQgdXNlIHF1aWx0XyB0bwo+IC1jcmVhdGUgbmV3IHBhdGNoZXMsIGFk ZCBmaWxlcyB0byByZXNwZWN0aXZlIHBhdGNoZXMsIG1vZGlmeSB0aGVzZSBmaWxlcwo+IC1hbmQg cmVmcmVzaCB0aGUgcGF0Y2hlcyB0byBzYXZlIG91ciBjaGFuZ2VzLgo+IC1TZWUgdGhlICpxdWls dCogZG9jdW1lbnRhdGlvbiAoYGBtYW4gMSBxdWlsdGBgKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4K PiAtCj4gLS4uIG5vdGU6OiBGb3IgcGF0Y2hlcyB0aGF0IGFyZSBpbnRlbmRlZCBmb3IgUFRYZGlz dCB1cHN0cmVhbSB1c2UgdGhlIGdpdAo+IC0gIHdvcmtmbG93IGRlc2NyaWJlZCBiZWxvdyB0byBn ZXQgcHJvcGVyIHBhdGNoIGhlYWRlcnMuCj4gLQo+IC0uLiBfcXVpbHQ6IGh0dHA6Ly9zYXZhbm5h aC5ub25nbnUub3JnL3Byb2plY3RzL3F1aWx0Cj4gLQo+IC1Vc2luZyBHaXQKPiAtIiIiIiIiIiIi Cj4gLQo+IC1DcmVhdGUgdGhlIHBhdGNoIGRpcmVjdG9yeSBsaWtlIGFib3ZlIGZvciAqcXVpbHQq LAo+IC1idXQgb25seSBhZGQgYW4gZW1wdHkgc2VyaWVzIGZpbGU6Cj4gLQo+IC0uLiBjb2RlLWJs b2NrOjogdGV4dAo+IC0KPiAtICAgICQgbWtkaXIgLXAgcGF0Y2hlcy9mb28tMS4xLjAKPiAtICAg ICQgdG91Y2ggcGF0Y2hlcy9mb28tMS4xLjAvc2VyaWVzCj4gLQo+IC1UaGVuIGV4dHJhY3QgdGhl IHBhY2thZ2Ugd2l0aCBhbiBhZGRpdGlvbmFsIGNvbW1hbmQgbGluZSBzd2l0Y2g6Cj4gLQo+IC0u LiBjb2RlLWJsb2NrOjogdGV4dAo+IC0KPiAtICAgICQgcHR4ZGlzdCAtLWdpdCBleHRyYWN0IGZv bwo+IC0KPiAtVGhlIGVtcHR5IHNlcmllcyBmaWxlIG1ha2VzIFBUWGRpc3QgY3JlYXRlIGEgR2l0 IHJlcG9zaXRvcnkgaW4gdGhlCj4gLXJlc3BlY3RpdmUgcGFja2FnZSBidWlsZCBkaXJlY3Rvcnks Cj4gLWFuZCBpbXBvcnQgdGhlIHBhY2thZ2Ugc291cmNlIGFzIHRoZSBmaXJzdCBjb21taXQuCj4g LQo+IC0uLiBub3RlOjogT3B0aW9uYWxseSwgeW91IGNhbiBlbmFibGUgdGhlIHNldHRpbmcgKkRl dmVsb3BlciBPcHRpb25zIOKGkgo+IC0gIHVzZSBnaXQgdG8gYXBwbHkgcGF0Y2hlcyogaW4gYHB0 eGRpc3Qgc2V0dXBgIHRvIGdldCB0aGlzIGJlaGF2aW91cgo+IC0gIGFzIGEgZGVmYXVsdCBmb3Ig ZXZlcnkgcGFja2FnZS4KPiAtICBIb3dldmVyLCBub3RlIHRoYXQgdGhpcyBzZXR0aW5nIGlzIG1l YW50IGZvciBkZXZlbG9wbWVudCBvbmx5LCBhbmQgY2FuIGxlYWQKPiAtICB0byBmYWlsdXJlcyDi gJMgc29tZSBwYWNrYWdlcyB0cnkgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGJlaW5nIGNvbXBp bGVkIGZyb20KPiAtICBhIEdpdCBzb3VyY2UgdHJlZSwgYW5kIGJlaGF2ZSBkaWZmZXJlbnRseSBp biB0aGF0IGNhc2UuCj4gLQo+IC1UaGVuIHlvdSBjYW4gY2hhbmdlIGludG8gdGhlIHBhY2thZ2Ug YnVpbGQgZGlyZWN0b3J5Cj4gLShgYHBsYXRmb3JtLTxuYW1lPi9idWlsZC10YXJnZXQvZm9vLTEu MS4wYGApLAo+IC1wYXRjaCB0aGUgcmVxdWlyZWQgc291cmNlIGZpbGVzLAo+IC1hbmQgbWFrZSBH aXQgY29tbWl0cyBvbiB0aGUgd2F5Lgo+IC1UaGUgR2l0IGhpc3Rvcnkgc2hvdWxkIG5vdyBsb29r IHNvbWV0aGluZyBsaWtlIHRoaXM6Cj4gLQo+IC0uLiBjb2RlLWJsb2NrOjogdGV4dAo+IC0KPiAt ICAgICQgZ2l0IGxvZyAtLW9uZWxpbmUgLS1kZWNvcmF0ZQo+IC0gICAgKiBkZjM0M2U4MjE4NTEg KEhFQUQgLT4gbWFzdGVyKSBNYWtlZmlsZTogZG9uJ3QgYnVpbGQgdGhlIHRlc3RzCj4gLSAgICAq IDY1YTM2MGMyYmQ2MCBzdHJmcnkuYzogZnJvYm5pY2F0ZSB0aGUgZXhjdXNhdG9yCj4gLSAgICAq IGZkYzMxNWY2ODQ0YyAodGFnOiBmb29iYXItMS4xLjAsIHRhZzogYmFzZSkgaW5pdGlhbCBjb21t aXQKPiAtCj4gLUZpbmFsbHksIGNhbGwgYGBnaXQgcHR4LXBhdGNoZXNgYCB0byB0cmFuc2Zvcm0g dGhvc2UgR2l0IGNvbW1pdHMgaW50byB0aGUgcGF0Y2gKPiAtc2VyaWVzIGluIHRoZSBgYHBhdGNo ZXMvZm9vLTEuMS4wYGAgZm9sZGVyLgo+IC1UaGlzIHdheSB0aGV5IGRvbid0IGdldCBsb3N0IHdo ZW4gY2xlYW5pbmcgdGhlIHBhY2thZ2UuCj4gLQo+IC0uLiBub3RlOjogUFRYZGlzdCB3aWxsIG9u bHkgY3JlYXRlIGEgR2l0IHJlcG9zaXRvcnkgZm9yIHBhY2thZ2VzIHdpdGgKPiAtICBwYXRjaGVz LiAgVG8gdXNlIEdpdCB0byBnZW5lcmF0ZSB0aGUgZmlyc3QgcGF0Y2gsIGNyZWF0ZSBhbiBlbXB0 eSBzZXJpZXMKPiAtICBmaWxlIGBgcGF0Y2hlcy9mb29iYXItMS4xLjAvc2VyaWVzYGAgYmVmb3Jl IGV4dHJhY3RpbmcgdGhlIHBhY2thZ2VzLiBUaGlzCj4gLSAgd2lsbCB0ZWxsIFBUWGRpc3QgdG8g dXNlIEdpdCBhbnl3YXlzIGFuZCBgYGdpdCBwdHgtcGF0Y2hlc2BgIHdpbGwgcHV0IHRoZQo+IC0g IHBhdGNoZXMgdGhlcmUuCj4gLQo+IC1Cb3RoIGFwcHJvYWNoZXMgKEdpdCBhbmQgcXVpbHQpIGFy ZSBub3Qgc3VpdGFibGUgZm9yIG1vZGlmeWluZyBmaWxlcwo+IC10aGF0IGFyZSBhdXRvZ2VuZXJh dGVkIGluIGF1dG90b29scy1iYXNlZCBidWlsZHN5c3RlbXMuCj4gLVJlZmVyIHRvIHRoZSBzZWN0 aW9uIDpyZWY6YGNvbmZpZ3VyZV9yZWJ1aWxkYCBvbiBob3cgUFRYZGlzdCBjYW4KPiAtaGFuZGxl IHRoaXMgc3BlY2lhbCB0YXNrLgo+IC0KPiAtQWRkaW5nIE1vcmUgUGF0Y2hlcyB0byBhIFBhY2th Z2UKPiAtXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KPiAtCj4gLUlmIHdlIHdhbnQg dG8gYWRkIG1vcmUgcGF0Y2hlcyB0byBhbiBhbHJlYWR5IHBhdGNoZWQgcGFja2FnZSwgd2UgY2Fu IHVzZQo+IC1uZWFybHkgdGhlIHNhbWUgd2F5IGFzIGNyZWF0aW5nIHBhdGNoZXMgZm9yIHRoZSBm aXJzdCB0aW1lLiBCdXQgaWYgdGhlCj4gLXBhdGNoIHNlcmllcyBjb21lcyBmcm9tIHRoZSBQVFhk aXN0IG1haW4gaW5zdGFsbGF0aW9uLCB3ZSBkbyBub3QgaGF2ZQo+IC13cml0ZSBwZXJtaXNzaW9u cyB0byB0aGVzZSBkaXJlY3RvcmllcyAoZG8gTkVWRVIgd29yayBvbiB0aGUgbWFpbgo+IC1pbnN0 YWxsYXRpb24gZGlyZWN0b3JpZXMsIE5FVkVSLCBORVZFUiwgTkVWRVIpLiBEdWUgdG8gdGhlIHNl YXJjaCBvcmRlcgo+IC1pbiB3aGljaCBQVFhkaXN0IHNlYXJjaGVzIGZvciBwYXRjaGVzIGZvciBh IHNwZWNpZmljIHBhY2thZ2UsIHdlIGNhbgo+IC1jb3B5IHRoZSBnbG9iYWwgcGF0Y2ggc2VyaWVz IHRvIG91ciBsb2NhbCBwcm9qZWN0IGRpcmVjdG9yeS4gTm93IHdlIGhhdmUKPiAtdGhlIHBlcm1p c3Npb25zIHRvIGFkZCBtb3JlIHBhdGNoZXMgb3IgbW9kaWZ5IHRoZSBleGlzdGluZyBvbmVzLiBB bHNvCj4gLSpxdWlsdCogYW5kICpnaXQqIGFyZSBvdXIgZnJpZW5kcyBoZXJlIHRvIG1hbmFnZSB0 aGUgcGF0Y2ggc2VyaWVzLgo+IC0KPiAtSWYgd2UgdGhpbmsgdGhhdCBvdXIgbmV3IHBhdGNoZXMg YXJlIHZhbHVhYmxlIGFsc28gZm9yIG90aGVycywgb3IgdGhleQo+IC1maXggYW4gZXJyb3IsIGl0 IGNvdWxkIGJlIGEgZ29vZCBpZGVhIHRvIHNlbmQgdGhlc2UgcGF0Y2hlcyB0byBQVFhkaXN0Cj4g LW1haW5saW5lLCBhbmQgdG8gdGhlIHVwc3RyZWFtIHByb2plY3QgdG9vLgo+IC0KPiAtCj4gLS4u IF9jb25maWd1cmVfcmVidWlsZDoKPiAtCj4gLU1vZGlmeWluZyBBdXRvdG9vbGl6ZWQgUGFja2Fn ZXMKPiAtXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgo+IC0KPiAtQXV0b3Rvb2xpemVk IHBhY2thZ2VzIGFyZSB2ZXJ5IHBpY2t5IHdoZW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZmls ZXMKPiAtZ2V0IHBhdGNoZWQuIFRoZSBwYXRjaCBvcmRlciBpcyB2ZXJ5IGltcG9ydGFudCBpbiB0 aGlzIGNhc2UgYW5kCj4gLXNvbWV0aW1lcyBpdCBldmVuIGZhaWxzIGFuZCBub2JvZHkga25vd3Mg d2h5Lgo+IC0KPiAtVG8gaW1wcm92ZSBhIHBhY2thZ2XigJlzIGF1dG90b29scy1iYXNlZCBidWls ZCBzeXN0ZW0sIFBUWGRpc3QgY29tZXMgd2l0aAo+IC1pdHMgb3duIHByb2plY3QgbG9jYWwgYXV0 b3Rvb2xzIHRvIHJlZ2VuZXJhdGUgdGhlIGF1dG90b29scyB0ZW1wbGF0ZQo+IC1maWxlcywgaW5z dGVhZCBvZiBwYXRjaGluZyB0aGVtLiBXaXRoIHRoaXMgZmVhdHVyZSwgb25seSB0aGUgdGVtcGxh dGUKPiAtZmlsZXMgbXVzdCBiZSBwYXRjaGVkLCB0aGUgcmVxdWlyZWQgYGBjb25maWd1cmVgYCBz Y3JpcHQgYW5kIHRoZQo+IC1gYE1ha2VmaWxlLmluYGAgZmlsZXMgYXJlIHJlZ2VuZXJhdGVkIGlu IHRoZSBmaW5hbCBzdGFnZXMgb2YgdGhlCj4gLSpwcmVwYXJlKiBzdGVwLgo+IC0KPiAtVGhpcyBm ZWF0dXJlIHdvcmtzIGxpa2UgdGhlIHJlZ3VsYXIgcGF0Y2hpbmcgbWVjaGFuaXNtLiBUaGUgb25s eQo+IC1kaWZmZXJlbmNlIGlzIHRoZSBhZGRpdGlvbmFsIGBgYXV0b2dlbi5zaGBgIGZpbGUgaW4g dGhlIHBhdGNoIGRpcmVjdG9yeS4KPiAtSWYgaXQgZXhpc3RzIGFuZCBoYXMgZXhlY3V0aW9uIHBl cm1pc3Npb25zLCBpdCB3aWxsIGJlIGNhbGxlZCBhZnRlciB0aGUKPiAtcGFja2FnZSB3YXMgcGF0 Y2hlZCAod2hpbGUgdGhlICpleHRyYWN0KiBzdGFnZSBpcyBydW5uaW5nKS4KPiAtCj4gLUl0cyBj b250ZW50IGRlcGVuZHMgb24gZGV2ZWxvcGVyIG5lZWRzOyBmb3IgdGhlIG1vc3Qgc2ltcGxlIGNh c2UgdGhlCj4gLWNvbnRlbnQgY2FuIGJlOgo+IC0KPiAtLi4gY29kZS1ibG9jazo6IGJhc2gKPiAt Cj4gLSAgICAjIS9iaW4vYmFzaAo+IC0KPiAtICAgIGFjbG9jYWwgJEFDTE9DQUxfRkxBR1MKPiAt Cj4gLSAgICBsaWJ0b29saXplIFwKPiAtICAgICAgICAgICAgLS1mb3JjZSBcCj4gLSAgICAgICAg ICAgIC0tY29weQo+IC0KPiAtICAgIGF1dG9yZWNvbmYgXAo+IC0gICAgICAgICAgICAtLWZvcmNl IFwKPiAtICAgICAgICAgICAgLS1pbnN0YWxsIFwKPiAtICAgICAgICAgICAgLS13YXJuaW5ncz1j cm9zcyBcCj4gLSAgICAgICAgICAgIC0td2FybmluZ3M9c3ludGF4IFwKPiAtICAgICAgICAgICAg LS13YXJuaW5ncz1vYnNvbGV0ZSBcCj4gLSAgICAgICAgICAgIC0td2FybmluZ3M9dW5zdXBwb3J0 ZWQKPiAtCj4gLS4uIG5vdGU6OiBJbiB0aGlzIHdheSBub3QgeWV0IGF1dG90b29saXplZCBwYWNr YWdlIGNhbiBiZSBhdXRvdG9vbGl6ZWQuIFdlCj4gLSAganVzdCBoYXZlIHRvIGFkZCB0aGUgY29t bW9uIGF1dG90b29sIHRlbXBsYXRlIGZpbGVzIChgYGNvbmZpZ3VyZS5hY2BgCj4gLSAgYW5kIGBg TWFrZWZpbGUuYW1gYCBmb3IgZXhhbXBsZSkgdmlhIGEgcGF0Y2ggc2VyaWVzIHRvIHRoZSBwYWNr YWdlCj4gLSAgc291cmNlIGFuZCB0aGUgYGBhdXRvZ2VuLnNoYGAgdG8gdGhlIHBhdGNoIGRpcmVj dG9yeS4KPiAtCj4gLS4uIF9hZGRpbmdfZmlsZXM6Cj4gLQo+IC1BZGRpbmcgQmluYXJ5IE9ubHkg RmlsZXMKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLQo+IC1Tb21ldGltZXMgYSBmZXcg YmluYXJ5IGZpbGVzIGhhdmUgdG8gYmUgYWRkZWQgaW50byB0aGUgcm9vdCBmaWxlc3lzdGVtLgo+ IC1PciAtIHRvIGJlIG1vcmUgcHJlY2lzZSAtIHNvbWUgZmlsZXMsIHRoYXQgZG8gbm90IG5lZWQg dG8gYmUgYnVpbHQgaW4KPiAtYW55IHdheS4KPiAtCj4gLU9uIHRoZSBvdGhlciBoYW5kLCBzb21l dGltZXMgZmlsZXMgc2hvdWxkIGJlIGluY2x1ZGVkIHRoYXQgYXJlIG5vdAo+IC1jb3ZlcmVkIGJ5 IGFueSBvcGVuIHNvdXJjZSBsaWNlbnNlIGFuZCBzbywgc2hvdWxkIG5vdCBiZSBzaGlwcGVkIGlu IHRoZQo+IC1zb3VyY2UgY29kZSBmb3JtYXQuCj4gLQo+IC1BZGQgQmluYXJ5IEZpbGVzIEZpbGUg YnkgRmlsZQo+IC1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo+IC0KPiAtRG9pbmcgdG8g b24gYSBmaWxlIGJ5IGZpbGUgYmFzZSBjYW4gaGFwcGVuIGJ5IGp1c3QgdXNpbmcgdGhlIGBgaW5z dGFsbF9jb3B5YGAKPiAtbWFjcm8gaW4gdGhlICp0YXJnZXRpbnN0YWxsKiBzdGFnZSBpbiBvdXIg b3duIGN1c3RvbWl6ZWQgcnVsZXMgZmlsZS4KPiAtCj4gLS4uIGNvZGUtYmxvY2s6OiBub25lCj4g LQo+IC0gICAgQCQoY2FsbCBpbnN0YWxsX2NvcHksIGJpbmFyeV9leGFtcGxlLCAwLCAwLCAwNjQ0 LCBcCj4gLSAgICAgICA8L3BhdGgvdG8vc29tZS9maWxlLz5wdHhfbG9nby5wbmcsIFwKPiAtICAg ICAgIC9leGFtcGxlL3B0eF9sb2dvLnBuZykKPiAtCj4gLUl0IGNvcGllcyB0aGUgZmlsZSBgYHB0 eF9sb2dvLnBuZ2BgIGZyb20gc29tZSBsb2NhdGlvbiB0byB0YXJnZXTigJlzIHJvb3QKPiAtZmls ZXN5c3RlbS4gUmVmZXIgOnJlZjpgaW5zdGFsbF9jb3B5YCBmb3IgZnVydGhlciBpbmZvcm1hdGlv biBhYm91dCB1c2luZyB0aGUKPiAtYGBpbnN0YWxsX2NvcHlgYCBtYWNyby4KPiAtCj4gLVRoZSBk aXNhZHZhbnRhZ2Ugb2YgdGhpcyBtZXRob2QgaXM6IGlmIHdlIHdhbnQgdG8gaW5zdGFsbCBtb3Jl IHRoYW4gb25lCj4gLWZpbGUsIHdlIG5lZWQgb25lIGNhbGwgdG8gdGhlIGBgaW5zdGFsbF9jb3B5 YGAgbWFjcm8gcGVyIGZpbGUuIFRoaXMgaXMKPiAtZXZlbiBoYXJkZXIgaWYgbm90IG9ubHkgYSBz ZXQgb2YgZmlsZXMgaXMgdG8gYmUgaW5zdGFsbGVkLCBidXQgYSB3aG9sZQo+IC1kaXJlY3Rvcnkg dHJlZSB3aXRoIGZpbGVzIGluc3RlYWQuCj4gLQo+IC1BZGQgQmluYXJ5IEZpbGVzIHZpYSBhbiBB cmNoaXZlCj4gLX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KPiAtCj4gLUlmIGEgd2hv bGUgdHJlZSBvZiBmaWxlcyBpcyB0byBiZSBpbnN0YWxsZWQsIHdvcmtpbmcgd2l0aCBhICp0YXIq IGJhc2VkCj4gLWFyY2hpdmUgY291bGQgbWFrZSBsaWZlIGVhc2llci4gSW4gdGhpcyBjYXNlIHRo ZSBhcmNoaXZlIGl0c2VsZiBwcm92aWRlcwo+IC1hbGwgdGhlIHJlcXVpcmVkIGluZm9ybWF0aW9u IHRoZSBmaWxlcyBhcmUgbmVlZGluZyB0byBiZSBpbnN0YWxsZWQgaW4gYQo+IC1jb3JyZWN0IG1h bm5lcjoKPiAtCj4gLS0gIHRoZSBmaWxlIGl0c2VsZiBhbmQgaXRzIG5hbWUKPiAtCj4gLS0gIHRo ZSBkaXJlY3Rvcnkgc3RydWN0dXJlIGFuZCB0aGUgZmluYWwgbG9jYXRpb24gb2YgZXZlcnkgZmls ZSBpbiB0aGlzCj4gLSAgIHN0cnVjdHVyZQo+IC0KPiAtLSAgdXNlciBhbmQgZ3JvdXAgSUQgb24g YSBwZXIgZmlsZSBiYXNlCj4gLQo+IC0uLiBjb2RlLWJsb2NrOjogbm9uZQo+IC0KPiAtICAgIEAk KGNhbGwgaW5zdGFsbF9hcmNoaXZlLCBiaW5hcnlfZXhhbXBsZSwgLSwgLSwgXAo+IC0gICAgICAg PC9wYXRoL3RvL2FuLz5hcmNoaXZlLnRneiwgLykKPiAtCj4gLVJlZmVyIDpyZWY6YGluc3RhbGxf YXJjaGl2ZWAgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgdXNpbmcgdGhlCj4gLWBgaW5z dGFsbF9hcmNoaXZlYGAgbWFjcm8uCj4gLQo+IC1Vc2luZyBhbiBhcmNoaXZlIGNhbiBiZSB1c2Vm dWwgdG8gaW5zdGFsbCBwYXJ0cyBvZiB0aGUgcm9vdCBmaWxlc3lzdGVtCj4gLXRoYXQgYXJlIG5v dCBjb3ZlcmVkIGJ5IGFueSBvcGVuIHNvdXJjZSBsaWNlbnNlLiBJdHMgcG9zc2libGUgdG8gc2hp cAo+IC10aGUgYmluYXJpZXMgd2l0aGluIHRoZSByZWd1bGFyIEJTUCwgd2l0aG91dCB0aGUgbmVl ZCBmb3IgdGhlaXIgc291cmNlcy4KPiAtSG93ZXZlciBpdCBpcyBwb3NzaWJsZSBmb3IgdGhlIGN1 c3RvbWVyIHRvIHJlLWNyZWF0ZSBldmVyeXRoaW5nIHJlcXVpcmVkCj4gLWZyb20gdGhlIEJTUCB0 byBnZXQgdGhlaXIgdGFyZ2V0IHVwIGFuZCBydW5uaW5nIGFnYWluLgo+IC0KPiAtQW5vdGhlciB1 c2UgY2FzZSBmb3IgdGhlIGFyY2hpdmUgbWV0aG9kIGNvdWxkIGJlIHRoZSBzdXBwb3J0IGZvcgo+ IC1kaWZmZXJlbnQgZGV2ZWxvcG1lbnQgdGVhbXMuIE9uZSB0ZWFtIHByb3ZpZGVzIGEgc29mdHdh cmUgY29tcG9uZW50IGluCj4gLXRoZSBhcmNoaXZlIGZvcm1hdCwgdGhlIG90aGVyIHRlYW0gZG9l cyBub3QgbmVlZCB0byBidWlsZCBpdCBidXQgY2FuIHVzZQo+IC1pdCBpbiB0aGUgc2FtZSB3YXkg dGhhbiBldmVyeSBvdGhlciBzb2Z0d2FyZSBjb21wb25lbnQuCj4gLQo+IC1DcmVhdGluZyBhIFJ1 bGVzIEZpbGUKPiAtfn5+fn5+fn5+fn5+fn5+fn5+fn5+Cj4gLQo+IC1MZXQgUFRYZGlzdCBjcmVh dGUgb25lIGZvciB1cy4KPiAtCj4gLS4uIGNvZGUtYmxvY2s6OiB0ZXh0Cj4gLQo+IC0gICAgJCBw dHhkaXN0IG5ld3BhY2thZ2UgZmlsZQo+IC0KPiAtICAgIHB0eGRpc3Q6IGNyZWF0aW5nIGEgbmV3 ICdmaWxlJyBwYWNrYWdlOgo+IC0KPiAtICAgIHB0eGRpc3Q6IGVudGVyIHBhY2thZ2UgbmFtZS4u Li4uLi46IG15X2JpbmZpbGVzCj4gLSAgICBwdHhkaXN0OiBlbnRlciB2ZXJzaW9uIG51bWJlci4u Li4uOiAxCj4gLSAgICBwdHhkaXN0OiBlbnRlciBwYWNrYWdlIGF1dGhvci4uLi4uOiBNeSBOYW1l IDxtZUBteS1vcmcuY29tPgo+IC0gICAgcHR4ZGlzdDogZW50ZXIgcGFja2FnZSBzZWN0aW9uLi4u Ljogcm9vdGZzCj4gLQo+IC1Ob3cgdHdvIG5ldyBmaWxlcyBhcmUgcHJlc2VudCBpbiB0aGUgQlNQ Ogo+IC0KPiAtIy4gYGBydWxlcy9teV9iaW5maWxlcy5pbmBgIFRoZSB0ZW1wbGF0ZSBmb3IgdGhl IG1lbnUKPiAtCj4gLSMuIGBgcnVsZXMvbXlfYmluZmlsZXMubWFrZWBgIFRoZSBydWxlcyB0ZW1w bGF0ZQo+IC0KPiAtQm90aCBmaWxlcyBub3cgbXVzdCBiZSBjdXN0b21pemVkIHRvIG1lZXQgb3Vy IHJlcXVpcmVtZW50cy4gRHVlIHRvIHRoZQo+IC1hbnN3ZXIgKnJvb3RmcyogdG8gdGhlIOKAnGBg ZW50ZXIgcGFja2FnZSBzZWN0aW9uYGDigJ0gcXVlc3Rpb24sIHdlIHdpbGwKPiAtZmluZCB0aGUg bmV3IG1lbnUgZW50cnkgaW46Cj4gLQo+IC0uLiBjb2RlLWJsb2NrOjogdGV4dAo+IC0KPiAtICAg IFJvb3QgRmlsZXN5c3RlbSAtLS0+Cj4gLSAgICAJPCA+IG15X2JpbmZpbGVzIChORVcpCj4gLQo+ IC1FbmFibGluZyB0aGlzIG5ldyBlbnRyeSB3aWxsIGFsc28gcnVuIG91ciBzdGFnZXMgaW4KPiAt YGBydWxlcy9teV9iaW5maWxlcy5tYWtlYGAgdGhlIG5leHQgdGltZSB3ZSBlbnRlcjoKPiAtCj4g LS4uIGNvZGUtYmxvY2s6OiB0ZXh0Cj4gLQo+IC0gICAgJCBwdHhkaXN0IGdvCj4gLQo+IC1DcmVh dGluZyBOZXcgUGFja2FnZSBUZW1wbGF0ZXMKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4gLQo+IC1Gb3IgbGFyZ2VyIHByb2plY3RzIGl0IGNhbiBiZSBjb252ZW5pZW50IHRvIGhh dmUgcHJvamVjdCBzcGVjaWZpYyBwYWNrYWdlCj4gLXRlbXBsYXRlcy4gVGhpcyBjYW4gYmUgYWNo aWV2ZWQgYnkgZWl0aGVyIG1vZGlmeWluZyBleGlzdGluZyB0ZW1wbGF0ZXMgb3IKPiAtYnkgY3Jl YXRpbmcgY29tcGxldGVseSBuZXcgdGVtcGxhdGVzLgo+IC0KPiAtTW9kaWZ5aW5nIGEgVGVtcGxh dGUKPiAtfn5+fn5+fn5+fn5+fn5+fn5+fn4KPiAtCj4gLUEgdGVtcGxhdGUgY2FuIGJlIG1vZGlm aWVkIGJ5IHByb3ZpZGluZyBuZXcgaW5wdXQgZmlsZXMuIFRoaXMgaXMgZWFzaWVyCj4gLXRoYW4g Y3JlYXRpbmcgYSBuZXcgdGVtcGxhdGUgYnV0IGRvZXMgbm90IGFsbG93IHRvIHNwZWNpZnkgbmV3 IHZhcmlhYmxlcyB0bwo+IC1zdWJzdGl0dXRlIGluIHRoZSBpbnB1dCBmaWxlcy4KPiAtCj4gLVBU WGRpc3QgbG9va3MgZm9yIHRlbXBsYXRlIGZpbGVzIHRoZSBzYW1lIHdheSBpdCBsb29rcyBmb3Ig cnVsZXMgZmlsZXMuIFRoZQo+IC1vbmx5IGRpZmZlcmVuY2UgaXMsIHRoYXQgaXQgc2VhcmNoZXMg aW4gdGhlIGBgdGVtcGxhdGVzL2BgIHN1YmRpcmVjdG9yeS4KPiAtU28gYSBtb2RpZmllZCBgYC4v cnVsZXMvdGVtcGxhdGVzL3RlbXBsYXRlLXRhcmdldC1tYWtlYGAgY2FuIGJlIHVzZWQgdG8KPiAt dHdlYWsgdGhlIGBgdGFyZ2V0YGAgdGVtcGxhdGUuCj4gLQo+IC1DcmVhdGluZyBhIE5ldyBUZW1w bGF0ZQo+IC1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo+IC0KPiAtRm9yIGEgY29tcGxldGVseSBu ZXcgdGVtcGxhdGUsIHNvbWUgYmFzaCBzY3JpcHRpbmcgaXMgcmVxdWlyZWQuIEFsbCBzaGVsbAo+ IC1jb2RlIG11c3QgYmUgcGxhY2VkIGluIGEgZmlsZSBuYW1lZCBsaWtlIHRoaXM6Cj4gLWBgLi9z Y3JpcHRzL2xpYi9wdHhkX2xpYl8qLnNoYGAuCj4gLQo+IC1UaGUgbWluaW11bSByZXF1aXJlbWVu dCBmb3IgYSBuZXcgdGVtcGxhdGUgaXM6Cj4gLS0gIGEgc2hlbGwgZnVuY3Rpb24gdGhhdCBjcmVh dGVzIHRoZSBuZXcgcGFja2FnZQo+IC0tICByZWdpc3RlcmluZyB0aGUgbmV3IHRlbXBsYXRlCj4g LQo+IC0uLiBjb2RlLWJsb2NrOjogc2gKPiAtCj4gLSAgICBwdHhkX3RlbXBsYXRlX25ld19teXBr ZygpIHsKPiAtICAgICAgICAjIGNyZWF0ZSB0aGUgcGFja2FnZSBoZXJlCj4gLSAgICB9Cj4gLSAg ICBleHBvcnQgLWYgcHR4ZF90ZW1wbGF0ZV9uZXdfbXlwa2cKPiAtICAgIHB0eGRfdGVtcGxhdGVf aGVscF9saXN0WyR7I3B0eGRfdGVtcGxhdGVfaGVscF9saXN0W0BdfV09Im15cGtnIgo+IC0gICAg cHR4ZF90ZW1wbGF0ZV9oZWxwX2xpc3RbJHsjcHR4ZF90ZW1wbGF0ZV9oZWxwX2xpc3RbQF19XT0i Y3JlYXRlIGF3ZXNvbWUgbXlwa2cgcGFja2FnZSIKPiAtCj4gLVBUWGRpc3QgcHJvdmlkZXMgc2V2 ZXJhbCBoZWxwZXIgZnVuY3Rpb25zIHRvIHNpbXBsaWZ5IHRoZSB0ZW1wbGF0ZS4KPiAtVXNpbmcg dGhvc2UgZnVuY3Rpb25zLCB0aGUgcGFja2FnZSBjcmVhdGlvbiBwcm9jZXNzIGlzIHNwbGl0IGlu dG8gdHdvCj4gLXBhcnRzOgo+IC0KPiAtLSAgcXVlcnkgdGhlIHVzZXIgZm9yIGlucHV0IGFuZCBl eHBvcnQgdmFyaWFibGVzLgo+IC0tICBjcmVhdGUgdGhlIG5ldyBwYWNrYWdlIGZpbGVzIGZyb20g dGhlIHRlbXBsYXRlIHNvdXJjZSBmaWxlcyBieQo+IC0gICBzdWJzdGl0dXRpbmcgYWxsIGluc3Rh bmNlcyBvZiBgYEA8dmFyaWFibGU+QGBgIHdpdGggdGhlIHZhbHVlIG9mIHRoZQo+IC0gICBjb3Jy ZXNwb25kaW5nIHZhcmlhYmxlLgo+IC0KPiAtQSBzaW1wbGUgdGVtcGxhdGUgZnVuY3Rpb24gY291 bGQgbG9vayBsaWtlIHRoaXM6Cj4gLQo+IC0uLiBjb2RlLWJsb2NrOjogc2gKPiAtCj4gLSAgICBw dHhkX3RlbXBsYXRlX25ld19teXBrZygpIHsKPiAtICAgICAgICBwdHhkX3RlbXBsYXRlX3JlYWRf YmFzaWMgJiYKPiAtICAgICAgICBwdHhkX3RlbXBsYXRlX3JlYWQgImVudGVyIGRvd25sb2FkIHNl Y3Rpb24iIERMX1NFQ1RJT04gImZvb2JhciIKPiAtICAgICAgICBwdHhkX3RlbXBsYXRlX3JlYWRf YXV0aG9yICYmCj4gLSAgICAgICAgZXhwb3J0IHNlY3Rpb249ImxvY2FsXyR7ZGxzZWN0aW9ufSIg JiYKPiAtICAgICAgICBwdHhkX3RlbXBsYXRlX3dyaXRlX3J1bGVzCj4gLSAgICB9Cj4gLQo+IC1U aGlzIHRlbXBsYXRlIHJlcXVpcmVzIGBgcnVsZXMvdGVtcGxhdGVzL3RlbXBsYXRlLW15cGtnLW1h a2VgYCBhbmQKPiAtYGBydWxlcy90ZW1wbGF0ZXMvdGVtcGxhdGUtbXlwa2ctaW5gYCBhcyBzb3Vy Y2UgZmlsZXMuIFRoZXkgY291bGQgYmUKPiAtZGVyaXZlZCBmcm9tIHRoZSBgYHRhcmdldGBgIHRl bXBsYXRlIHdpdGggYSBzaW1wbGUgbW9kaWZpY2F0aW9uOgo+IC0KPiAtLi4gY29kZS1ibG9jazo6 IG1ha2UKPiAtCj4gLSAgICBAUEFDS0FHRUBfU1VGRklYCTo9IHRhci54ego+IC0gICAgQFBBQ0tB R0VAX1VSTAk6PSBodHRwOi8vZGwubXktY29tcGFueS5sb2NhbC9kb3dubG9hZHMvQERMX1NFQ1RJ T05ALyQoQFBBQ0tBR0VAKS4kKEBQQUNLQUdFQF9TVUZGSVgpCj4gLQo+IC1UaGUgaGVscGVyIGZ1 bmN0aW9ucyB0aGF0IGFyZSB1c2VkIGluIHRoZSBleGFtcGxlIGFib3ZlIGFyZSBkZWZpbmVkIGlu Cj4gLWBgc2NyaXB0cy9saWIvcHR4ZF9saWJfdGVtcGxhdGUuc2hgYCBpbiB0aGUgUFRYZGlzdCBz b3VyY2UgdHJlZS4KPiAtCj4gLVRoZSB0ZW1wbGF0ZSBpcyBhIG5vcm1hbCBzaGVsbCBmdW5jdGlv bi4gQXJiaXRyYXJ5IHRoaW5ncyBjYW4gYmUgZG9uZSBoZXJlCj4gLXRvIGNyZWF0ZSB0aGUgbmV3 IHBhY2thZ2UuIFRoZSBoZWxwZXIgZnVuY3Rpb25zIGFyZSBqdXN0IHRoZSBtb3N0Cj4gLWNvbnZl bmllbnQgd2F5IHRvIGNyYXRlIHNpbXBsZSB0ZW1wbGF0ZXMuIEl0IGlzIGFsc28gcG9zc2libGUg dG8gY3JlYXRlCj4gLW1vcmUgZmlsZXMuIEZvciBleGFtcGxlcywgdGhlIGJ1aWx0aW4gYGBnZW5p bWFnZWBgIHRlbXBsYXRlIGNyZWF0ZXMgYSBleHRyYQo+IC1jb25maWcgZmlsZSBmb3IgdGhlIG5l dyBwYWNrYWdlLgo+IC0KPiAtLi4gX2xheWVycy1pbi1wdHhkaXN0Ogo+IC0KPiAtTGF5ZXJzIGlu IFBUWGRpc3QKPiAtLS0tLS0tLS0tLS0tLS0tLS0KPiAtCj4gLUZvciBiZXR0ZXIgbWFpbnRlbmFu Y2Ugb3Igb3RoZXIgcmVhc29ucywgYSBQVFhkaXN0IHByb2plY3QgY2FuIGJlIHNwbGl0Cj4gLWlu dG8gbXVsdGlwbGUgbGF5ZXJzLiBFYWNoIGxheWVyIGhhcyBleGFjdGx5IHRoZSBzYW1lIGRpcmVj dG9yeSBoaWVyYXJjaHkKPiAtYXMgZGVzY3JpYmVkIGluIDpyZWY6YGRpcmVjdG9yeV9oaWVyYXJj aHlgIGFuZCBvdGhlciBjaGFwdGVycy4KPiAtCj4gLUFsbCBsYXllcnMgYXJlIGV4cGxpY2l0bHkg c3RhY2tlZCBpbiB0aGUgZmlsZXN5c3RlbS4gVGhlIHRvcCBsYXllciBpcyB0aGUKPiAtd29ya3Nw YWNlIG9mIHRoZSBQVFhkaXN0IHByb2plY3QuIEFueSBgYHNlbGVjdGVkXypgYCBsaW5rcyBhbmQg dGhlIHBsYXRmb3JtCj4gLWJ1aWxkIGRpcmVjdG9yeSBhcmUgY3JlYXRlZCBoZXJlLiBUaGUgbGF5 ZXIgYmVsb3cgaXMgZGVmaW5lZCBieSB0aGUKPiAtc3ViZGlyZWN0b3J5IG9yIHN5bWxpbmsgbmFt ZWQgYGBiYXNlL2BgLiBNb3JlIGNhbiBiZSBzdGFja2VkIHRoZSBzYW1lCj4gLXdheSwgc28gYGBi YXNlL2Jhc2UvYGAgaXMgdGhlIHRoaXJkIGxheWVyIGFuZCBzbyBvbi4KPiAtSW4gbWFueSB3YXlz LCBQVFhkaXN0IGl0c2VsZiBjYW4gYmUgY29uc2lkZXJlZCBhcyB0aGUgYm90dG9tIGxheWVyLiBU aGlzIGlzCj4gLWVpdGhlciBpbXBsaWNpdCBvciBleHBsaWNpdCB3aXRoIG9uZSBsYXN0IGBgYmFz ZS9gYCBzeW1saW5rLgo+IC0KPiAtQSBwcm9qZWN0IGNhbiBvdmVyd3JpdGUgZmlsZXMgcHJvdmlk ZWQgYnkgUFRYZGlzdCBpbiBtYW55IGRpZmZlcmVudCB3YXlzLAo+IC1lLmcuIHJ1bGUgZmlsZXMg b3IgZmlsZXMgaW5zdGFsbGVkIHdpdGggOnJlZjpgaW5zdGFsbF9hbHRlcm5hdGl2ZWAgZXRjLgo+ IC1UaGlzIGNvbmNlcHQgZXhwYW5kcyBuYXR1cmFsbHkgdG8gbGF5ZXJzLiBFYWNoIGxheWVyIGNh biBvdmVyd3JpdGUgZmlsZXMKPiAtcHJvdmlkZWQgYnkgbG93ZXIgbGF5ZXJzIGluIHRoZSBleGFj dCBzYW1lIHdheS4gQW55IGZpbGVzIGFyZSBhbHdheXMKPiAtc2VhcmNoZWQgZm9yIGluIGEgc3Ry aWN0IGxheWVyIGJ5IGxheWVyIG9yZGVyLgo+IC0KPiAtV3JpdGluZyBMYXllciBBd2FyZSBSdWxl cwo+IC1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Cj4gLQo+IC1Gb3IgdGhlIG1vc3QgcGFydCwg cGFja2FnZSBydWxlcyB3b3JrIGp1c3QgYXMgZXhwZWN0ZWQgd2hlbiBtdWx0aXBsZSBsYXllcnMK PiAtYXJlIHVzZWQuIEFueSBsYXllciBzcGVjaWZpYyBoYW5kbGluZyBpcyBkb25lIGltcGxpY2l0 bHkgYnkgUFRYZGlzdC4KPiAtSG93ZXZlciwgdGhlcmUgYXJlIGEgZmV3IHRoaW5ncyB0aGF0IG5l ZWQgc3BlY2lhbCBoYW5kbGluZy4KPiAtCj4gLVRoZSB2YXJpYWJsZXMgOnJlZjpgUFRYRElTVF9X T1JLU1BBQ0U8cHR4ZGlzdF93b3Jrc3BhY2U+YCBhbmQKPiAtOnJlZjpgUFRYRElTVF9QTEFURk9S TUNPTkZJR0RJUmA8cHR4ZGlzdF9wbGF0Zm9ybWNvbmZpZ2Rpcj5gIGFsd2F5cyByZWZlcgo+IC10 byB0aGUgZGlyZWN0b3JpZXMgaW4gdGhlIHRvcCBsYXllci4gVGhlc2UgdmFyaWFibGVzIG1pZ2h0 IGJlIHVzZWQgaW4gcnVsZXMKPiAtZmlsZXMgbGlrZSB0aGlzOgo+IC0KPiAtLi4gY29kZS1ibG9j azo6IG1ha2UKPiAtCj4gLSAgIE1ZX0tFUk5FTF9DT05GSUcgOj0gJChQVFhESVNUX1BMQVRGT1JN Q09ORklHRElSKS9rZXJuZWxjb25maWcuc3BlY2lhbAo+IC0KPiAtSWYgdGhlIHJlZmVyZW5jZWQg ZmlsZSBpcyBpbiBhbnkgbGF5ZXIgYnV0IHRoZSB0b3Agb25lIHRoZW4gaXQgd2lsbCBub3QKPiAt YmUgZm91bmQuIFRvIGhhbmRsZSB1c2UtY2FzZXMgbGlrZSB0aGlzLCB0aGUgbWFjcm9zIDpyZWY6 YGluX3BhdGhgIGFuZAo+IC06cmVmOmBpbl9wbGF0Zm9ybWNvbmZpZ2RpcmAgY2FuIGJlIHVzZWQ6 Cj4gLQo+IC0uLiBjb2RlLWJsb2NrOjogbWFrZQo+IC0KPiAtICAgTVlfS0VSTkVMX0NPTkZJRyA6 PSAkKGNhbGwgcHR4L2luLXBsYXRmb3JtY29uZmlnZGlyLCBrZXJuZWxjb25maWcuc3BlY2lhbCkK PiAtCj4gLVRoaXMgd2F5LCB0aGUgbGF5ZXJzIGFyZSBzZWFyY2hlZCB0b3AgdG8gYm90dG9tIHVu dGlsIHRoZSBjb25maWcgZmlsZSBpcwo+IC1mb3VuZC4KPiAtCj4gLVBUWGRpc3QgQ29uZmlnIEZp bGVzIHdpdGggTXVsdGlwbGUgTGF5ZXJzCj4gLX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+Cj4gLQo+IC1JbiBtYW55IGNhc2VzIGEgbGF5ZXIgbWF5IHdhbnQgdG8gbW9k aWZ5IHRoZSAqKnB0eGNvbmZpZyoqIGJ5IGVuYWJsaW5nIG9yCj4gLWRpc2FibGluZyBzb21lIG9w dGlvbnMuIEFueSBjaGFuZ2VzIG11c3QgYmUgcHJvcGFnYXRlZCB0aHJvdWdoIHRoZSB3aG9sZQo+ IC1sYXllciBzdGFjay4KPiAtCj4gLVRoZSBmZWF0dXJlcyBhbmQgd29ya2Zsb3cgZGVzY3JpYmVk IGhlcmUgYXBwbHkgdG8gdGhlICoqcHR4Y29uZmlnKiosIHRoZQo+IC0qKnBsYXRmb3JtY29uZmln KiogYW5kIGFueSAqKmNvbGxlY3Rpb25jb25maWcqKiB1c2VkIGluIHRoZSBwcm9qZWN0Lgo+IC0K PiAtVG8gZG8gdGhpcywgUFRYZGlzdCBzdG9yZXMgYSBkZWx0YSBjb25maWcgdG8gdGhlIGxheWVy IGJlbG93IGFuZCBhIGZ1bGwKPiAtY29uZmlnIGZpbGUgaW4gZWFjaCBsYXllci4gSWYgdGhlIHR3 byBmaWxlcyBhcmUgbWlzc2luZyB0aGVuIHRoZSBjb25maWcgaXMKPiAtdW5jaGFuZ2VkLiBUaGUg Ym90dG9tIGxheWVyIGhhcyBvbmx5IHRoZSBjb25maWcgZmlsZSBhbmQgbm8gZGVsdGEuCj4gLQo+ IC1BdCBydW50aW1lLCBQVFhkaXN0IHdpbGwgYWx3YXlzIHVzZSB0aGUgZnVsbCBjb25maWcgZmls ZSBpbiB0aGUgdG9wIGxheWVyCj4gLXdoZXJlIHRoZSBjb25maWcgZXhpc3RzLiBCZWZvcmUgZG9p bmcgc28sIGl0IHdpbGwgZW5zdXJlIHRoYXQgdGhlIGNvbmZpZyBpcwo+IC1jb25zaXN0ZW50IGFj cm9zcyBhbGwgbGF5ZXJzLiBUaGlzIG1lYW5zIHRoYXQsIGZvciBhbnkgbGF5ZXIgdGhhdCBjb250 YWlucyBhCj4gLWRlbHRhIGNvbmZpZywgdGhlIGZ1bGwgY29uZmlnIGZpbGUgb2YgdGhlIGxheWVy IGJlbG93IGhhcyBub3QgY2hhbmdlZCBzaW5jZQo+IC10aGUgZGVsdGEgY29uZmlnIHdhcyBsYXN0 IHVwZGF0ZWQuIElmIGFueSBpbmNvbnNpc3RlbmN5IGlzIGRldGVjdGVkLAo+IC1QVFhkaXN0IHdp bGwgYWJvcnQuCj4gLQo+IC1Gb3IgYW55IGNvbW1hbmQgdGhhdCBtb2RpZmllcyB0aGUgY29uZmln IGZpbGUsIGV4Y2VwdCBgYG9sZGNvbmZpZ2BgLAo+IC1QVFhkaXN0IHdpbGwgdXNlIGtjb25maWcg aW1wbGljaXRseSBvbiBhbGwgbGF5ZXJzIHRvIGNoZWNrIGlmIHRoZSBjb25maWcKPiAtZm9yIHRo aXMgbGF5ZXIgaXMgdXAgdG8gZGF0ZS4gVGhpcyBpcyBhIHN0cmljdGVyIGNoZWNrIHRoYW4gdGhl IGNvbnNpc3RlbmN5Cj4gLXZhbGlkYXRpb24uIEZvciBleGFtcGxlLCBpZiBhIG5ldyBwYWNrYWdl IHdhcyBhZGRlZCB0byBhIGxheWVyIHdpdGhvdXQKPiAtdXBkYXRpbmcgdGhlICoqcHR4Y29uZmln KiogdGhlbiB0aGlzIHdpbGwgYmUgZGV0ZWN0ZWQgYW5kIFBUWGRpc3Qgd2lsbAo+IC1hYm9ydC4g SWYgYWxsIG90aGVyIGxheWVycyBhcmUgdXAgdG8gZGF0ZSwgdGhlbiBQVFhkaXN0IHdpbGwgdXNl IHRoZSBkZWx0YQo+IC1jb25maWcgb2YgdGhlIHRvcCBsYXllciwgYXBwbHkgaXQgdG8gdGhlIGZ1 bGwgY29uZmlnIG9mIHRoZSBsYXllciBiZWxvdwo+IC1hbmQgZXhlY3V0ZSB0aGUgc3BlY2lmaWVk IGNvbW1hbmQgd2l0aCB0aGUgcmVzdWx0aW5nIGNvbmZpZyBmaWxlLgo+IC0KPiAtLi4gbm90ZTo6 IElmIHRoZSBjb25maWcgZmlsZSBkb2VzIG5vdCBleGlzdCB5ZXQgb24gdGhlIHRvcCBsYXllciwg dGhlbiBpdAo+IC0gIHdpbGwgYmUgY3JlYXRlZCBpZiBjaGFuZ2VzIHRvIHRoZSBjb25maWcgYXJl IG1hZGUuIFNpbWlsYXJseSB0aGUgY29uZmlnCj4gLSAgd2lsbCBiZSBkZWxldGVkIGlmIHRoZSBk ZWx0YSBpcyBlbXB0eSBhZnRlciB0aGUgY2hhbmdlcy4gSW4gZWl0aGVyIGNhc2UKPiAtICBpdCBt YXkgYmUgbmVjZXNzYXJ5IHRvIHVwZGF0ZSBhbnkgYGBzZWxlY3RlZF8qYGAgbGluayB0byBwb2lu dCB0byB0aGUKPiAtICBjb3JyZWN0IGNvbmZpZy4KPiAtCj4gLUlmIFBUWGRpc3QgZGV0ZWN0cyBh biBpbmNvbnNpc3RlbmN5IG9yIGFuIG91dCBvZiBkYXRlIGNvbmZpZyBmaWxlIHRoZW4gaXQKPiAt bXVzdCBiZSB1cGRhdGVkIGJlZm9yZSB0aGV5IGNhbiBiZSB1c2VkLiBUaGlzIGNhbiBiZSBkb25l IGJ5IHVzaW5nIHRoZQo+IC1gYG9sZGNvbmZpZ2BgIGNvbW1hbmQuIEluIHRoaXMgc3BlY2lhbCBj YXNlLCBQVFhkaXN0IHdpbGwgaXRlcmF0ZSBmcm9tIHRoZQo+IC1ib3R0b20gdG8gdGhlIHRvcCBs YXllciBhbmQgcnVuIGBgb2xkY29uZmlnYGAgZm9yIGVhY2ggb2YgdGhlbS4gSXQgd2lsbAo+IC11 c2UgdGhlIGRlbHRhIGNvbmZpZyBhcHBsaWVkIHRvIHRoZSBmdWxsIGNvbmZpZyBvZiB0aGUgbGF5 ZXIgYmVsb3cgYXQgZWFjaAo+IC1zdGVwLiBUaGlzIG1lYW5zIHRoYXQgaXQncyBwb3NzaWJsZSB0 byBlbmFibGUgb3IgZGlzYWJsZSBhIG9wdGlvbiBpbiB0aGUKPiAtYm90dG9tIGxheWVyIGFuZCBg YG9sZGNvbmZpZ2BgIHdpbGwgcHJvcGFnYXRlIHRoaXMgY2hhbmdlIHRvIGFsbCBvdGhlcgo+IC1s YXllcnMuCj4gLQo+IC1QYWNrYWdlcyB3aXRoIGtjb25maWcgQmFzZWQgQ29uZmlnIEZpbGVzCj4g LX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KPiAtCj4gLUZvciBwYWNr YWdlcyBzdWNoIGFzIHRoZSBMaW51eCBrZXJuZWwgdGhhdCBoYXZlIGtjb25maWcgYmFzZWQgY29u ZmlnIGZpbGVzLAo+IC1hIGxvdCBvZiB0aGUgaW5mcmFzdHJ1Y3R1cmUgdG8gaGFuZGxlIGNvbmZp ZyBmaWxlcyBhbmQgZGVsdGFzIGFjcm9zcwo+IC1tdWx0aXBsZSBsYXllcnMgY2FuIGJlIHJldXNl ZC4gQ29uc2lzdGVuY3kgdmFsaWRhdGlvbiBpcyBkb25lIGltcGxpY2l0bHkKPiAtYW5kIGBgbWVu dWNvbmZpZ2BgIGFuZCBvdGhlciBrY29uZmlnIGNvbW1hbmRzIHdpbGwgdXNlIGNvbmZpZyBmaWxl cyBhbmQKPiAtZGVsdGFzIGFzIGV4cGVjdGVkLgo+IC0KPiAtSXQncyBub3QgcG9zc2libGUgdG8g aW1wbGljaXRseSBydW4gYGBvbGRjb25maWdgYCBvbiBvdGhlciBsYXllcnMgKHRoaXMgbWF5Cj4g LXJlcXVpcmUgYSBkaWZmZXJlbnQgc291cmNlIHRyZWUgZm9yIHRoZSBwYWNrYWdlcyksIHNvIGFu eSBpbmNvbnNpc3RlbmNpZXMKPiAtbXVzdCBiZSByZXNvbHZlZCBtYW51YWxseSBieSBydW5uaW5n IGBgb2xkY29uZmlnYGAgZXhwbGljaXRseSBvbiBlYWNoCj4gLWxheWVyLgo+IC0KPiAtVGhlIG1h a2UgbWFjcm9zIHRoYXQgcHJvdmlkZSB0aGVzZSBmZWF0dXJlcyBhcmUgY3VycmVudGx5IHVzZWQg YnkgdGhlCj4gLWJhcmVib3ggYW5kIGtlcm5lbCBwYWNrYWdlcyBhbmQgdGVtcGxhdGVzLgo+ICsu LiB0b2N0cmVlOjoKPiArICAgOmdsb2I6Cj4gKyAgIDptYXhkZXB0aDogMgo+ICsKPiArICAgZGV2 X2Rpcl9oaWVyYXJjaHkKPiArICAgZGV2X2FkZF9uZXdfcGtncwo+ICsgICBkZXZfYWRkX2Jpbl9v bmx5X2ZpbGVzCj4gKyAgIGRldl9jcmVhdGVfbmV3X3BrZ190ZW1wbGF0ZXMKPiArICAgZGV2X2xh eWVyc19pbl9wdHhkaXN0CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpwdHhkaXN0IG1haWxpbmcgbGlzdApwdHhkaXN0QHBlbmd1dHJvbml4LmRlClRvIHVu c3Vic2NyaWJlLCBzZW5kIGEgbWFpbCB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIiB0byBwdHhk aXN0LXJlcXVlc3RAcGVuZ3V0cm9uaXguZGUK