VGhpcyBjYW1lIGZyb20gYSBuZXdzIGJsb2cgSSBzdWJzY3JpYmUgdG86CgpDb2ZmZWUgaGFzIGJl ZW4gc2hvd24gdG8gcmVkdWNlIHRoZSByaXNrIG9mIHNraW4gY2FuY2VyIGJ5IGhlbHBpbmcga2ls bCAKb2ZmIGRhbWFnZWQgY2VsbHMgdGhhdCBjb3VsZCBvdGhlcndpc2UgdHVybiBpbnRvIHR1bW9y cywgYWNjb3JkaW5nIHRvIGEgCm5ldyBVLlMuIHN0dWR5LiAKClRoZSBmaW5kaW5ncyBpbmRpY2F0 ZSB0aGF0IG1vZGVyYXRlIGNhZmZlaW5lIGRyaW5raW5nLCBvciBwZXJoYXBzIGV2ZW4gCmFwcGx5 aW5nIGNvZmZlZSB0byB0aGUgc2tpbiwgY291bGQgYmUgdXNlZnVsIGluIHdhcmRpbmcgb2ZmIApu b24tbWVsYW5vbWEgY2FuY2VyLCB0aGUgbW9zdCBjb21tb25seSBkaWFnbm9zZWQgb2YgYWxsIHNr aW4gY2FuY2Vycy4gCgpVc2luZyBtaWNlIHRoYXQgaGFkIGJlZW4gZ2VuZXRpY2FsbHkgYWx0ZXJl ZCB0byBzdXBwcmVzcyBhIHByb3RlaW4gCmVuenltZSBjYWxsZWQgQVRSLCByZXNlYXJjaGVycyBz aG93ZWQgdGhhdCB0aGUgbWljZSB3ZXJlIGFibGUgdG8gZmVuZCAKb2ZmIGNhbmNlciBldmVuIHdo ZW4gZXhwb3NlZCB0byB1bHRyYXZpb2xldCBsaWdodC4gCgpQcmV2aW91cyBzdHVkaWVzIGhhdmUg c3VnZ2VzdGVkIHRoYXQgZHJpbmtpbmcgYWJvdXQgYSBjdXAgb2YgCmNhZmZlaW5hdGVkIGNvZmZl ZSBwZXIgZGF5IGhhcyB0aGUgZWZmZWN0IG9mIHN1cHByZXNzaW5nIEFUUiBhbmQgCnRyaWdnZXJp bmcgdGhlIGRpZS1vZmYgb2YgY2VsbHMgaGFybWVkIGJ5IFVWIHJheXMuIAoKVGhlIGFsdGVyZWQg bWljZSBldmVudHVhbGx5IGRpZCBkZXZlbG9wIGNhbmNlciwgYnV0IHRocmVlIHdlZWtzIGxhdGVy IAp0aGFuIG5vcm1hbCBtaWNlLCBhY2NvcmRpbmcgdG8gdGhlIHN0dWR5IHB1Ymxpc2hlZCBNb25k YXkgaW4gdGhlIApQcm9jZWVkaW5ncyBvZiB0aGUgTmF0aW9uYWwgQWNhZGVteSBvZiBTY2llbmNl cy4gCgpBZnRlciAxOSB3ZWVrcyBvZiB1bHRyYXZpb2xldCBsaWdodCBleHBvc3VyZSwgdGhlIGVu Z2luZWVyZWQgbWljZSAKc2hvd2VkIDY5IHBlcmNlbnQgZmV3ZXIgdHVtb3JzIGFuZCBmb3VyIHRp bWVzIGZld2VyIGludmFzaXZlIHR1bW9ycyAKdGhhbiB0aGUgY29udHJvbCBncm91cC4gCgpIb3dl dmVyLCB0aGUgcHJvdGVjdGl2ZSBlZmZlY3RzIG9ubHkgd2VudCBzbyBmYXIuIEFmdGVyIDM0IHdl ZWtzIG9mIFVWIApleHBvc3VyZSwgYWxsIHRoZSBtaWNlIGRldmVsb3BlZCB0dW1vcnMuIAoKIkV2 ZW50dWFsbHksIGlmIHlvdSB0cmVhdCB0aGVtIGxvbmcgZW5vdWdoLCB0aGUgbWljZSB3aWxsIGRl dmVsb3AgCmNhbmNlciBzbyBpdCBpcyBub3QgMTAwIHBlcmNlbnQgcHJvdGVjdGlvbiBmb3JldmVy LCIgQWxsYW4gQ29ubmV5LCBvbmUgCm9mIHRoZSBzdHVkeSdzIGF1dGhvcnMsIHRvbGQgQUZQLiAK CiJSZWFsbHksIHdpdGggYWxtb3N0IGFueSBjYXJjaW5vZ2VuLCBldmVudHVhbGx5IGFsbCB0aGUg YW5pbWFscyB3aWxsIApkZXZlbG9wIHR1bW9ycywiIGFkZGVkIENvbm5leSwgd2hvIGlzIGRpcmVj dG9yIG9mIHRoZSBTdXNhbiBMZWhtYW4gCkN1bGxtYW4gTGFib3JhdG9yeSBmb3IgQ2FuY2VyIFJl c2VhcmNoIGF0IFJ1dGdlcnMgVW5pdmVyc2l0eSBpbiBOZXcgCkplcnNleS4gCgpDb25uZXkgYW5k IGhpcyB0ZWFtIHdlcmUgYWJsZSB0byBjb25maXJtIHRoZWlyIGh5cG90aGVzaXMgdGhhdCBjYWZm ZWluZSAK4oCUIHdoZW4gY29uc3VtZWQgb3IgYXBwbGllZCB0byB0aGUgc2tpbiDigJQgd29ya3Mg YnkgaW5oaWJpdGluZyBBVFIuIApOb3cgdGhleSBzYXkgbW9yZSBzdHVkaWVzIGFyZSBuZWVkZWQg dG8gc2VlIGhvdyBpdCBtYXkgd29yayBvbiBodW1hbnMuIAoKIldlIHdhbnQgdG8gc2VlIHdoZXRo ZXIgY2FmZmVpbmUgaGFzIGFuIGVmZmVjdCBpbiBwZW9wbGUgd2hlbiB5b3UgZ2l2ZSAKaXQgdG9w aWNhbGx5LCIgaGUgc2FpZC4gCgoiQ2FmZmVpbmUgbWlnaHQgYmVjb21lIGEgd2VhcG9uIGluIHBy ZXZlbnRpb24gYmVjYXVzZSBpdCBpbmhpYml0cyBBVFIgCmFuZCBhbHNvIGFjdHMgYXMgYSBzdW5z Y3JlZW4gYW5kIGRpcmVjdGx5IGFic29yYnMgZGFtYWdpbmcgVVYgbGlnaHQuIgoKU2tpbiBjYW5j ZXIgaXMgdGhlIG1vc3QgcHJldmFsZW50IGNhbmNlciBpbiB0aGUgVW5pdGVkIFN0YXRlcywgd2l0 aCAKbW9yZSB0aGFuIG9uZSBtaWxsaW9uIG5ldyBjYXNlcyBlYWNoIHllYXIsIGFjY29yZGluZyB0 byB0aGUgTmF0aW9uYWwgCkNhbmNlciBJbnN0aXR1dGUuIAoKTm9uLW1lbGFub21hIHR5cGVzIG9m IHNraW4gY2FuY2VyLCBpbmNsdWRpbmcgYmFzYWwgY2VsbCBhbmQgc3F1YW1vdXMgCmNlbGwgdHlw ZXMsIGFyZSB0aGUgbW9zdCBjb21tb25seSBkaWFnbm9zZWQgYW5kIGFyZSBvZnRlbiB0cmVhdGFi bGUgaWYgCmRldGVjdGVkIGVhcmx5LiAKClByZXZpb3VzIHN0dWRpZXMgaGF2ZSBzaG93biBjb2Zm ZWUgZHJpbmtlcnMgdGVuZCB0byBoYXZlIGZld2VyIAppbmNpZGVuY2VzIG9mIGJyZWFzdCwgdXRl cmluZSwgcHJvc3RhdGUsIGFuZCBjb2xvbiBjYW5jZXJzLCBidXQgdGhlIApiZW5lZmljaWFsIGVm ZmVjdHMgYXJlIG5vdCBzZWVuIGluIHBlb3BsZSB3aG8gZHJpbmsgZGVjYWZmZWluYXRlZCAKY29m ZmVlLiAKClNvdXJjZTogd3d3Lm5ld3NtYXhoZWFsdGguY29tCkJvYiBHbGFzc2NvY2sKR3JlZW52 aWxsZSwgQUwKCgoKUXVvdGluZyBCcnlhbiBXcmF5IDxid3JheV90aGF0Y29mZmVlZ3V5QHlhaG9v LmNvbT46Cj4gVGhlIG1vcmUgZXhwZW5zaXZlIGEgYmVhbiBpcyB0aGUgbW9yZSBhdWRpYmxlIHRo ZSBjcmFja3MuIMKgWW91IHNob3VsZCB0cnkKPiByb2FzdGluZyBFc21lcmFsZGEuIMKgWW91IG5l ZWQgZWFycGx1Z3MuIMKgOikKPgo+IC1icnkKPiBCcnlhbiBXcmF5Cj4KPiAtLS0gT24gU3VuLCA4 LzE0LzExLCBFZHdhcmQgQm91cmdlb2lzIDxlZGJvdXJnZW9pc0BnbWFpbC5jb20+IHdyb3RlOgo+ Cj4gRnJvbTogRWR3YXJkIEJvdXJnZW9pcyA8ZWRib3VyZ2VvaXNAZ21haWwuY29tPgo+IFN1Ympl Y3Q6IFJlOiBbSG9tZXJvYXN0XSBOZXJ2ZXMgcm9hc3RpbmcgJDE4L2xiIGNvZmZlZSEgQW5kIHJl c3VsdGluZyByb2FzdAo+IHF1ZXN0aW9ucy4uLi4gCj4gVG86ICJBIGxpc3QgdG8gZGlzY3VzcyBo b21lIGNvZmZlZSByb2FzdGluZy4gVGhlcmUgYXJlIHJ1bGVzIGZvciB0aGlzIGxpc3QsCj4gYXZh aWxhYmxlIGF0IGh0dHA6Ly93d3cuc3dlZXRtYXJpYXMuY29tL21haWxsaXN0aW5mby5odG1sIgo+ IDxob21lcm9hc3RAbGlzdHMuc3dlZXRtYXJpYXNjb2ZmZWUuY29tPgo+IERhdGU6IFN1bmRheSwg QXVndXN0IDE0LCAyMDExLCAxOjQzIFBNCj4KPiBObyBleHBlcmllbmNlIHdpdGggYSBHZW5lLCBi dXQgc29tZSBndWVzc2VzLCBpZiB0aGUgMXN0IGNyYWNrcyB3ZXJlCj4gbW9yZSBwb3dlcmZ1bCBh bmQgZmFzdCBpdCB3YXMgbW9zdCBsaWtlbHkgdGhlIGJlYW5zIHdlcmUgdGFraW5nIG9uCj4gaGln aCBoZWF0IHJhcGlkbHkuIFRoZSBoZWF0IHRyYW5zZmVyIGluIGEgaGFyZGVyIGJlYW4gaXMgZmFz dGVyIHNvCj4gdGhleSBtaWdodCBoYXZlIG1hZGUgdGhlIGZhc3QgcmFtcCB3aXRob3V0IGRhbWFn ZS4gWW91IG1pZ2h0IGxvc2Ugc29tZQo+IGZsYXZvciBkZXZlbG9wbWVudCBkdWUgdG8gdGhlIGZh c3QgZmluaXNoIGZyb20gdGhlIHN0YXJ0IG9mIDFzdCB0bwo+IGR1bXAuIEFsc28sIGJlYW5zIGZy b20gYSByZWFsbHkgc3Ryb25nIDFzdCBjcmFjayBzZWVtIHRvIGFnZSBxdWlja2VyCj4gZHVlIHRv IG1vcmUgZXhwYW5zaW9uL2ZyYWN0dXJlcy4gCj4KPiBPbiBGcmksIEF1ZyAxMiwgMjAxMSBhdCAz OjQxIFBNLCBLZW4gS25vdHQgPGVzcHJjb3JuQGhvdG1haWwuY29tPiB3cm90ZToKPiA+Cj4gPiBT byBJIGRlY2lkZWQgdG8gdGFrZSB0aGUgcGx1bmdlIGFuZCBzZWUganVzdCB3aGF0IGFuICQxOC9s YiBjb2ZmZWUgCj4gbXVzdCB0YXN0ZQo+IGxpa2UuLi4gwqBJIGJvdWdodCBhIGxiIG9mIHRoZSBH dWF0ZW1hbGEgQWNhdGVuYW5nbyBHZXNoYS4gCj4gPgo+ID4gSSB1c2UgYSBHZW5lIENhZmUgcm9h c3RlciBhbmQgdGhlIGZvbGxvd2luZyBwcm9maWxlLiDCoFRoZSB0aW1lcyBsaXN0ZWQgYQo+IHRv dGFsIHRpbWUuLi4gwqBBbmQgdGhlIHRlbXBzIGFyZSByb2FzdGVyIG5vdCBiZWFuIHRlbXBzLi4u IAo+ID4KPiA+IDAtNSBtaW4gMzAwCj4gPiA1LTkgbWluIDQ1Mgo+ID4gOS0xMSBtaW4gNDYyCj4g PiAxMS0gRmlyc3QgQ3JhY2sgNDgyCj4gPiBGaXJzdCBDcmFjayB0byBmaW5pc2ggLSA0NjIKPiA+ Cj4gPiBOb3cgd2l0aCB0aGUgR2VuZSBDYWZlIHlvdXIgdGFraW5nIHNvbWUgdGltZSB0byByZWFj aCB0aG9zZSB0ZW1wcy4uIAo+IMKgSXQgbWlnaHQKPiB0YWtlIHVudGlsIDkgbWluIHRvIGdldCB0 byA0NjIuLiAxMSB0byBnZXQgdG8gNDgyLCBldGMuLi4gCj4gPgo+ID4gVGhlIGZpcnN0IDUgbWlu IGFyZSBiYXNpY2FsbHkgZXF1aWxpYnJhdGluZyB0aGUgYmVhbnMuLiAKPiA+Cj4gPiBUaGlzIFJv YXN0IFByb2ZpbGUgaXMgb25lIHRoYXQgSSBoYXZlIGJlZW4gdXNpbmcgZm9yIHllYXJzIGFuZCB3 YXMgCj4gZGV2ZWxvcGVkCj4gYnkgc29tZW9uZSBtdWNoIG1vcmUga25vd2xlZGdlYWJsZSBvbiB0 aGUgbWVzc2FnZSBib2FyZCBhbmQgSSdtIGp1c3QgCj4gZHVwbGljYXRpbmcKPiBpdC4uLiAKPiA+ Cj4gPiBBbnl3aG9vby4uLi4gwqBIZXJlJ3MgY29tZXMgdGhlIG5lcnZvdXMgcGFydC4uLi4gCj4g Pgo+ID4gQmV0d2VlbiBteSBwcmV2aW91cyByb2FzdCBhbmQgdGhlIEdlc2hhIEkgZm9yZ290IHRv IHJlc2V0IHRoZSB0ZW1wIAo+IHRvIDMwMCBhbmQKPiBpbnN0ZWFkIHN0YXJ0ZWQgaXQgYXQgNDYy Li4uIMKgU28gdGhlIHJhbXAgd2FzIGZhc3RlciB0aGFuIHVzdWFsLi4uIMKgSSBqdXN0Cj4gYWRq dXN0ZWQgYnkgY2hhbmdpbmcgdGhlIHRlbXBzIHdoZW4gaXQgcmVhY2hlZCB0aGUgZW5kIHBvaW50 IHJhdGhlciB0aGFuIGF0Cj4gc3BlY2lmaWMgdGltZSBwb2ludHMuIAo+ID4KPiA+IFNvLCBoZXJl J3MgbXkgcXVlc3Rpb24uLi4gCj4gPgo+ID4gV2hlbiBJIHJlYWNoZWQgZmlyc3QgY3JhY2sgdGhp cyB0aW1lIGl0IHdhcyBtdWNoIGxvdWRlciAoYW5kIGEgCj4gbWludXRlIG9yIHR3bwo+IGZhc3Rl ciB0aGFuIHVzdWFsKSwgdmlicmFudCBhbmQgbG9uZ2VyIGxhc3RpbmcgdGhhbiB3aGVuIEkgZG8g dGhlIHR5cGljYWwKPiBwcm9maWxlIEkgbGlzdGVkIGFib3ZlLiDCoElTIHRoYXQgdGhlIHJlc3Vs dCBvZiB0aGUgZmFzdGVyIHRlbXBlcmF0dXJlIHJhbXA/Cj4gwqBPciB0aGUgYmVhbnM/IMKgT3Ig Pz8/Cj4gPiBXaGF0IHdpbGwgYmUgdGhlIHJlc3VsdD8gwqBBbmQgaXMgYSBicmlnaHQsIGxvdWQg Zmlyc3QgY3JhY2sgCj4gbGFzdGluZyBhYm91dCBhCj4gbWludXRlIHdoYXQgSSdtIHJlYWxseSBz dXBwb3NlZCB0byBiZSBnb2luZyBmb3I/Cj4gPgo+ID4gQW55d2F5LCBJJ20gZ29pbmcgdG8gZ2l2 ZSBpdCBhIGZldyBkYXlzIHRvIHJlc3QgYW5kIEknbGwgbGV0IHlvdSAKPiBrbm93IGhvdyBpdAo+ IHRhc3RlcyEKPiA+Cj4gPiBKYXZhc2xpbmdlcgo+ID4KPiA+Cj4gPgo+ID4KPiA+Cj4gPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gSG9tZXJvYXN0 IG1haWxpbmcgbGlzdAo+ID4gSG9tZXJvYXN0QGxpc3RzLnN3ZWV0bWFyaWFzY29mZmVlLmNvbQo+ ID4KPiBodHRwOi8vbGlzdHMuc3dlZXRtYXJpYXNjb2ZmZWUuY29tL21haWxtYW4vbGlzdGluZm8v aG9tZXJvYXN0X2xpc3RzLnN3ZWV0bWFyaWFzY29mZmVlLmNvbQo+ID4gSG9tZXJvYXN0IGNvbW11 bml0eSBwaWN0dXJlcyAtdXBsb2FkIHlvdXJzISkgOgo+IGh0dHA6Ly93d3cuc3dlZXRtYXJpYXNj b2ZmZWUuY29tL2dhbGxlcnkvbWFpbi5waHA/ZzJfaXRlbUlkPTc4MjAKPiA+Cj4KPgo+Cj4gLS0g RWQgQm91cmdlb2lzIGFrYSBmYXJtcm9hc3QKPiBBbWhlcnN0IE1BLiAKPiBodHRwOi8vY29mZmVl LXJvYXN0aW5nLmJsb2dzcG90LmNvbS8KPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gSG9tZXJvYXN0IG1haWxpbmcgbGlzdAo+IEhvbWVyb2FzdEBs aXN0cy5zd2VldG1hcmlhc2NvZmZlZS5jb20KPiBodHRwOi8vbGlzdHMuc3dlZXRtYXJpYXNjb2Zm ZWUuY29tL21haWxtYW4vbGlzdGluZm8vaG9tZXJvYXN0X2xpc3RzLnN3ZWV0bWFyaWFzY29mZmVl LmNvbQo+IEhvbWVyb2FzdCBjb21tdW5pdHkgcGljdHVyZXMgLXVwbG9hZCB5b3VycyEpIDoKPiBo dHRwOi8vd3d3LnN3ZWV0bWFyaWFzY29mZmVlLmNvbS9nYWxsZXJ5L21haW4ucGhwP2cyX2l0ZW1J ZD03ODIwCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K PiBIb21lcm9hc3QgbWFpbGluZyBsaXN0Cj4gSG9tZXJvYXN0QGxpc3RzLnN3ZWV0bWFyaWFzY29m ZmVlLmNvbQo+IGh0dHA6Ly9saXN0cy5zd2VldG1hcmlhc2NvZmZlZS5jb20vbWFpbG1hbi9saXN0 aW5mby9ob21lcm9hc3RfbGlzdHMuc3dlZXRtYXJpYXNjb2ZmZWUuY29tCj4gSG9tZXJvYXN0IGNv bW11bml0eSBwaWN0dXJlcyAtdXBsb2FkIHlvdXJzISkgOgo+IGh0dHA6Ly93d3cuc3dlZXRtYXJp YXNjb2ZmZWUuY29tL2dhbGxlcnkvbWFpbi5waHA/ZzJfaXRlbUlkPTc4MjAKPgoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkhvbWVyb2FzdCBtYWlsaW5n IGxpc3QKSG9tZXJvYXN0QGxpc3RzLnN3ZWV0bWFyaWFzY29mZmVlLmNvbQpodHRwOi8vbGlzdHMu c3dlZXRtYXJpYXNjb2ZmZWUuY29tL21haWxtYW4vbGlzdGluZm8vaG9tZXJvYXN0X2xpc3RzLnN3 ZWV0bWFyaWFzY29mZmVlLmNvbQpIb21lcm9hc3QgY29tbXVuaXR5IHBpY3R1cmVzIC11cGxvYWQg eW91cnMhKSA6IGh0dHA6Ly93d3cuc3dlZXRtYXJpYXNjb2ZmZWUuY29tL2dhbGxlcnkvbWFpbi5w aHA/ZzJfaXRlbUlkPTc4MjA= |