SSB3b3VsZCBjaGFuZ2UgdGhlIHdvcmRpbmcganVzdCBzbGlnaHRseToKCkluc3RlYWQgb2YgIlRv IGJlIGNvbnNpZGVyZWQgZm9yIHRoaXMgcG9zaXRpb24sIHlvdSBtdXN0IGhhdmUgYW4gaW50aW1h dGUKdW5kZXJzdGFuZGluZwpvZiB0aGUgaW5uZXIgd29ya2luZ3Mgb2YgYSBtaWNyb2NvbnRyb2xs ZXIiOwpEZWNsYXJlOiAiTXVzdCBiZSBhYmxlIHRvIGRlbW9uc3RyYXRlIGFuIGludGltYXRlIHVu ZGVyc3RhbmRpbmcKb2YgdGhlIGlubmVyIHdvcmtpbmdzIG9mIGEgbWljcm9jb250cm9sbGVyLiI7 CgpUaGF0IHdpbGwgc2NhcmUgc29tZSBmb2xrcyBvZmYgd2hvIG1heSBiZSB0ZW1wdGVkIHRvIHRh bGsgdGhlaXIgd2F5IGludG8KdGhlICJjb29sIHNvdW5kaW5nIGpvYiIgd2hpY2ggbW9zdGx5IHN0 YXRlcyBzb21lb25lIG11c3Qgc2ltcGx5IGhhdmUKa25vd2xlZGdlIG9yIHVuZGVyc3RhbmRpbmcs IGJ1dCBkb2Vzbid0IHByZWVtcHQgdGhhdCB0aGV5IHdpbGwgYmUgdGVzdGVkIG9yCmFza2VkIHRv IGRlbW9uc3RyYXRlIHRoaXMga25vd2xlZGdlLiBGcm9tIG15IGV4cGVyaWVuY2UgdGhpcyB3aWxs IHB1dCBvZmYKbWFueSBqdW5pb3IgZGV2ZWxvcGVycyBmcm9tIGFwcGx5aW5nLiBHb29kIGx1Y2sh CgpSeWFuCgpPbiA4IEZlYnJ1YXJ5IDIwMTggYXQgMTE6MTYsIERlbm55IEVzdGVybGluZSA8ZGVz dGVybGluZUBnbWFpbC5jb20+IHdyb3RlOgoKPiBCZWxvdyBpcyB0aGUgdGV4dCBvZiB0aGUgbGFz dCBwb3N0aW5nIEkgbGV0IG91dC4gSSdtIHN0aWxsIGF0IGEgbG9zcyBhcyB0bwo+IGhvdyBpdCBh dHRyYWN0ZWQgbm90aGluZyBidXQgImJpZyBpcm9uIiBwcm9ncmFtbWVycy4gQW55IHN1Z2dlc3Rp b25zIHdvdWxkCj4gYmUgd2VsY29tZS4KPgo+IC1EZW5ueQo+Cj4gSm9iIERlc2NyaXB0aW9uCj4K PiBXZSBhcmUgbG9va2luZyB0byBoaXJlIGFuIGV4cGVyaWVuY2VkIEVtYmVkZGVkIEZpcm13YXJl IEVuZ2luZWVyIHRvIHdvcmsgYXMKPiBwYXJ0IG9mIGEgc21hbGwgZW5naW5lZXJpbmcgdGVhbSB0 byBkZXZlbG9wLCBpbXByb3ZlLCBhbmQgbWFpbnRhaW4KPiAqZW1iZWRkZWQKPiBmaXJtd2FyZSog d3JpdHRlbiBpbiB0aGUgKkMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuKgo+Cj4gVG8gYmUgY29uc2lk ZXJlZCBmb3IgdGhpcyBwb3NpdGlvbiwgeW91IG11c3QgaGF2ZSBhbiBpbnRpbWF0ZSB1bmRlcnN0 YW5kaW5nCj4gb2YgdGhlIGlubmVyIHdvcmtpbmdzIG9mIGEgbWljcm9jb250cm9sbGVyLCBhbmQg dGhlIGFiaWxpdHkgdG8gd3JpdGUKPiBzb2Z0d2FyZSBvbiAiYmFyZSBtZXRhbCIgKE9TLWxlc3Mp IHN5c3RlbXMuIEluIHRoZSBpbnRlcnZpZXcsIHlvdSBjYW4KPiBleHBlY3QgdG8gYmUgYXNrZWQg cXVlc3Rpb25zIGFib3V0IHJlZ2lzdGVycywgbWVtb3J5IG1hcHMsIEFEQ3MsIGludGVycnVwdAo+ IHByb2Nlc3NpbmcsIHRpbWVycywgY29tcGlsZXIgdGhlb3J5LCBhbmQgc3RhdGUgbWFjaGluZXMu Cj4KPiBUaGUgaWRlYWwgY2FuZGlkYXRlIG11c3QgaGF2ZSB3b3JraW5nIGtub3dsZWRnZSBvZiAx Ni8zMiBiaXQKPiBtaWNyb2NvbnRyb2xsZXJzLCBhcyB3ZWxsIGFzIGNvbW1vbiBwZXJpcGhlcmFs cyBhbmQgcHJvdG9jb2xzOiBVQVJULCBJMkMsCj4gU1BJLCBDQU4sIExJTiwgVENQL0lQLiBUaGUg Y2FuZGlkYXRlIHdvdWxkIGJlIGV4cGVjdGVkIHRvIGtub3cgaG93IHRvIHRha2UKPiBhIHByb3Rv Y29sIHNwZWNpZmljYXRpb24gc3RhbmRhcmQsIGFuZCBpbXBsZW1lbnQgaXQgaW4gZmlybXdhcmUu Cj4KPiBBIHN0cm9uZyBlbGVjdHJvbmljcyBiYWNrZ3JvdW5kIGlzIGFsc28gYSBtdXN0LiBUaGUg Y2FuZGlkYXRlIG11c3QgYmUgYWJsZQo+IHRvIHJlYWQgc2NoZW1hdGljcywgYm9hcmQgbGF5b3V0 cywgYW5kIGRhdGFzaGVldHMsIGFzIHdlbGwgYXMgdXNlIGNvbW1vbgo+IGhhcmR3YXJlIGRlYnVn Z2luZyB0b29sczogb3NjaWxsb3Njb3BlcywgbXVsdGltZXRlcnMsIGxvZ2ljIGFuYWx5emVycywg YW5kCj4gc2lnbmFsIGdlbmVyYXRvcnMuCj4KPgo+Cj4gKlByaW5jaXBhbCBEdXRpZXMqCj4KPiDC tyAgICAgICAgRGVmaW5lLCBjbGFyaWZ5IGFuZCBjYXB0dXJlIHByb2plY3QgZ29hbHMgJiByZXF1 aXJlbWVudHMKPgo+IMK3ICAgICAgICBEZXNpZ24sIGltcGxlbWVudCwgaW1wcm92ZSwgcmVmYWN0 b3IsIHRlc3QsIGFuZCBkZWJ1ZyBmaXJtd2FyZQo+Cj4gwrcgICAgICAgIFVzZSBhbiBBZ2lsZSBh cHByb2FjaCB0byB3cml0ZSBlbGVnYW50LCByZWxpYWJsZSwgYW5kCj4gc2VsZi1kb2N1bWVudGlu ZyBjb2RlCj4KPiDCtyAgICAgICAgUGFydGljaXBhdGUgaW4gZGVzaWduICYgY29kZSByZXZpZXdz Cj4KPiDCtyAgICAgICAgUG9ydCBleGlzdGluZyBDIGNvZGUgdG8gbmV3IHBsYXRmb3Jtcwo+Cj4g KlF1YWxpZmljYXRpb25zKgo+Cj4gKk5hdHVyYWwgVGFsZW50cyAoUmVxdWlyZWQpKgo+Cj4gwrcg ICAgICAgIFBhc3Npb24gZm9yICp3cml0aW5nIHF1YWxpdHkgY29kZSAqb24gKnNtYWxsIGVtYmVk ZGVkIHBsYXRmb3JtcyoKPgo+IMK3ICAgICAgICBTdHJvbmcgKmF0dGVudGlvbiB0byBkZXRhaWwg KmFuZCAqYW5hbHl0aWNhbC9wcm9ibGVtLXNvbHZpbmcqCj4gc2tpbGxzCj4KPiDCtyAgICAgICAg Kk91dC1vZi10aGUtYm94KiB0aGlua2luZwo+Cj4gwrcgICAgICAgIFN0YXlpbmcgKmZvY3VzZWQg KmFuZCAqb3JnYW5pemVkKgo+Cj4gwrcgICAgICAgICpTZWxmLW1vdGl2YXRlZCoKPgo+IMK3ICAg ICAgICAqRXhjZWxsZW50IGNvbW11bmljYXRpb25zIHNpbGxzLCBib3RoIHdyaXR0ZW4gYW5kIHZl cmJhbCoKPgo+IMK3ICAgICAgICAqUmVjZXB0aXZlICp0byAqY29uc3RydWN0aXZlIGNyaXRpY2lz bSoKPgo+Cj4KPiAqU2tpbGxzL0V4cGVyaWVuY2UgKFJlcXVpcmVkKSoKPgo+IMK3ICAgICAgICBX cml0aW5nICpDIGNvZGUgKmZvciBzbWFsbCAqMTYvMzItYml0IG1pY3JvcyAqKDQrIHllYXJzKQo+ Cj4gwrcgICAgICAgIFJlYWRpbmcgKnNjaGVtYXRpY3MsIGRhdGFzaGVldHMqICYgKnByb3RvY29s IHNwZWNpZmljYXRpb25zKgo+Cj4gwrcgICAgICAgIFVzaW5nICpvc2NpbGxvc2NvcGUsIG11bHRp bWV0ZXIsIGxvZ2ljIGFuYWx5emVyLCAqYW5kICpzaWduYWwKPiBnZW5lcmF0b3IqCj4KPiAqQm9u dXMgU2tpbGxzL0V4cGVyaWVuY2UgKEhlbHBmdWwpKgo+Cj4gwrcgICAgICAgICpNaWNyb2NoaXAg UElDLCBBUk0gKmRldmVsb3BtZW50IGV4cGVyaWVuY2UKPgo+IMK3ICAgICAgICAqVGVjaG5pY2Fs IHdyaXRpbmcqCj4KPiDCtyAgICAgICAgVW5kZXJzdGFuZGluZyBvZiAqQ0FOIEJVUyoKPgo+IMK3 ICAgICAgICBFeHBlcmllbmNlIHdpdGggKldpRmkqIGFuZCAqQmx1ZXRvb3RoKiBwcm90b2NvbCBz dGFja3MKPgo+IMK3ICAgICAgICAqVEREKgo+Cj4KPgo+IFNhbGFyeQo+Cj4gVGhlIHNhbGFyeSBy YW5nZSBmb3IgdGhpcyBwb3NpdGlvbiBpcyBuZWdvdGlhYmxlLCBkZXBlbmRpbmcgb24gYWN0dWFs Cj4gcXVhbGlmaWNhdGlvbnMgYW5kIGV4cGVyaWVuY2UuIFdlIHBheSBhYm92ZSBtYXJrZXQgd2Fn ZXMgYW5kIGhhdmUgYQo+IHBlcmZvcm1hbmNlLWJhc2VkIHN5c3RlbSBvZiBib251c2VzIGFuZCBy YWlzZXMuCj4KPiBCZW5lZml0cwo+Cj4gwrcgICAgICAgIFBhaWQgKnZhY2F0aW9uKiBhbmQgKmhv bGlkYXlzICoKPgo+IMK3ICAgICAgICAqTWVkaWNhbCwgZGVudGFsIGFuZCB2aXNpb24gYiplbmVm aXRzCj4KPiDCtyAgICAgICAgKkdlbmVyb3VzIDQwMShrKSBtYXRjaCoKPgo+Cj4KPiBQZXJrcwo+ Cj4gwrcgICAgICAgIEFuIG9wcG9ydHVuaXR5IHRvICpsZWFybiAqYW5kICpncm93IHlvdXIgY2Fy ZWVyKgo+Cj4gwrcgICAgICAgICpGbGV4aWJsZSBzY2hlZHVsZSAqYW5kICp3b3JrL2xpZmUgYmFs YW5jZSoKPgo+IMK3ICAgICAgICAqTG93IHN0cmVzcyAqYXRtb3NwaGVyZSBhbmQgKmZyaWVuZGx5 LCBjb21wZXRlbnQgY28td29ya2VycyoKPgo+IMK3ICAgICAgICAqQ2FzdWFsICpkcmVzcyBjb2Rl Cj4KPiDCtyAgICAgICAgKlRoaXMgaXMgYSBmdWxsLXRpbWUgcG9zaXRpb24gaW4gb3VyIE5vcnRo d2VzdCBUdWNzb24gb2ZmaWNlKgo+Cj4gwrcgICAgICAgICpSZWxvY2F0aW9uIGFzc2lzdGFuY2Ug bWF5IGJlIHByb3ZpZGVkIGZvciB0aGUgcmlnaHQgY2FuZGlkYXRlKgo+Cj4KPgo+IEFwcGxpY2F0 aW9uIFByb2Nlc3MKPgo+IEVtYWlsIHlvdXIgb25lLXBhZ2UgcmVzdW1lIGFuZCB5b3VyIHByb2pl Y3QgcG9ydGZvbGlvIHRvCj4ga2Z5dzh3aHk2QGdtYWlsLmNvbQo+Cj4gVXNlIHRoZSBib2R5IG9m IHRoZSBlbWFpbCBhcyB0aGUgY292ZXIgbGV0dGVyLiBJbiB0aGUgY292ZXIgbGV0dGVyLAo+Cj4g wrcgICAgICAgIEV4cGxhaW4gd2h5IHlvdSBmZWVsIHlvdSBhcmUgdGhlIHJpZ2h0IGNhbmRpZGF0 ZSBmb3IgdGhpcyBwb3NpdGlvbgo+Cj4gwrcgICAgICAgIEdpdmUgdXMgeW91ciBzYWxhcnkgcmVx dWlyZW1lbnRzCj4KPgo+Cj4gV2UgbG9vayBmb3J3YXJkIHRvIGhlYXJpbmcgZnJvbSB5b3UhCj4g LS0KPiBodHRwOi8vd3d3LnBpY2xpc3QuY29tL3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYg bGlzdCBhcmNoaXZlCj4gVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKPiBo dHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlzdAo+Ci0tIApodHRw Oi8vd3d3LnBpY2xpc3QuY29tL3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNo aXZlClZpZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cmh0dHA6Ly9tYWlsbWFu Lm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNsaXN0Cg== .