T24gV2VkLCAyMDEyLTA4LTI5IGF0IDE1OjE3ICswMjAwLCBEZW55cyBWbGFzZW5rbyB3cm90ZToK PiBPbiAwOC8yOS8yMDEyIDAxOjU4IFBNLCBPbGFmIEtpcmNoIHdyb3RlOgo+ID4gWW91ciBmZWVk YmFjayBpcyB2ZXJ5IG11Y2ggd2VsY29tZSEKPiA+IAo+ID4gUmVnYXJkcywKPiA+IE9sYWYKPiAK PiAJCVdoeSBEaWQgWW91IERvIFRoaXM/IQo+IAo+IERvIHdlIHJlYWxseSBuZWVkIHlldCBhbm90 aGVyIG5ldHdvcmsgbWFuYWdlbWVudCB0aGluZz8KPiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gCj4gTm8sIG5vdCByZWFsbHkuIFdlIGFs cmVhZHkgaGF2ZSB0aGUgZ29vZCBvbGQgaWZ1cC9pZmRvd24gc2NyaXB0cywgd2hpY2gKPiBhcmUg ZG9pbmcgdGhlaXIgam9iIG5pY2VseS4KPiAKPiAqKiogTm8gdGhleSBkb24ndC4KPiAKPiAKPiBJ ZiB5b3UgZG9uJ3Qgc3RyYWluIHRoZW0gdG9vIG11Y2ggb3IgdHJ5IHRvCj4gdGVhY2ggdGhlbSBu ZXcgdHJpY2tzIChsaWtlIGludGVncmF0aW5nIHdpdGggc3lzdGVtZCkuIE9mIGFsbCB0aGUKPiB0 dW5hYmxlcyBhbmQga25vYnMgdGhlIGtlcm5lbCBzdXBwb3J0cyBmb3IgZWFjaCBuZXR3b3JrIGlu dGVyZmFjZSwgd2UncmUKPiBjb3ZlcmluZyBtYXliZSAxMCUsIGJ1dCB3aGF0IHdhcyBnb29kIGVu b3VnaCBmb3IgZ3JhbmRwYSBzaG91bGQgYmUKPiBnb29kIGVub3VnaCBmb3IgbWUgYXMgd2VsbCwg cmlnaHQ/Cj4gCj4gV2UndmUgZ290IHVkZXYgbWVzc2luZyBhcm91bmQgd2l0aCBuZXR3b3JrIGlu dGVyZmFjZSBuYW1lcywgYmVjYXVzZQo+IHVzZXJzIGRvbid0IGxpa2UgaXQgd2hlbiB3aGF0J3Mg Y2FsbGVkIGV0aDAgdG9kYXkgaXMgY2FsbGVkIGV0aDE1Cj4gb24gdGhlIG5leHQgYm9vdC4gV2hp Y2ggd29ya3MgbmljZWx5IGV4Y2VwdCB3aGVuIGl0IGZhaWxzLCBmb3Igb25lCj4gb3IgdGhlIG90 aGVyIHdlaXJkIHJlYXNvbi4KPiAKPiBXZSd2ZSBnb3QgTmV0d29yayBNYW5hZ2VyLCB3aGljaCBp cyBhbHNvIGRvaW5nIGl0J3Mgam9iIG5pY2VseSBhbmQgd29uJ3QKPiBnaXZlIHlvdSBhbnkgaGVh ZGFjaGVzIGlmIHlvdSBwcmV2ZW50IGl0IGZyb20gc3RlcHBpbmcgb24gYW55Ym9keSBlbHNlJ3MK PiB0b2VzLiBPciB0cnkgdG8gbWFrZSBpdCBtYW5hZ2UgYSB0aG91c2FuZCBkZXZpY2VzLCBsaWtl IG9uIFN5c3RlbSB6Lgo+IAo+ICoqKiBOZXR3b3JrIE1hbmFnZXIgaXMganVzdCBhbm90aGVyIGRh ZW1vbiBjcmVhdGVkIGZvciBhIHRhc2sKPiB3aGljaCBoaXN0b3JpY2FsbHkgb2Z0ZW4gZGlkIG5v dCBuZWVkIGFueSBkYWVtb25zLiBJdCdzIGFsbW9zdCBhcyBpZgo+IHRoZSBuZXcgZ2VuZXJhdGlv biBvZiBVbml4IGhhY2tlcnMgd2FudHMgdG8gcmVkbyBldmVyeXRoaW5nIC0KPiBpbiB4MTAgb3Ig eDEwMCB0aW1lcyBibG9hdGVkIGFuZCBtb3JlIGNvbXBsZXggd2F5IHRoYW4gaXQgd2FzIGRvbmUK PiBiZWZvcmUuIFllcywgZ3V5cywgb2xkIHN0dWZmIGhhcyBwcm9ibGVtcyBhbmQgbGltaXRhdGlv bnMuIEJ1dAo+IHN3aXRjaGluZyBpbnRvIGhpZ2ggZ2VhciBhbmQgd3JpdGluZyBhIHRvbiBvZiBz dHVmZiBpcyBub3QgYSBzb2x1dGlvbgo+IEkgbGlrZS4gQ2FuIHlvdSAqdGhpbmsgaXQgdGhyb3Vn aCogYW5kIGZpeC9pbXByb3ZlIHN0dWZmIFdJVEhPVVQKPiBpbmNyZWFzaW5nIGl0cyBjb21wbGV4 aXR5IHRlbmZvbGQgYXMgYSBtaW5pbXVtPyBZZXMsIEkgZG8gcmVhbGl6ZQo+IHRoYXQgZWxlZ2Fu dCBzb2x1dGlvbiBpcyBoYXJkZXIgdG8gZG8gdGhhbiBjb2Rpbmcgc3ByZWUgc29sdXRpb24sCj4g YnV0IEkgc3RpbGwgaG9wZS4uLgoKSGlzdG9yaWNhbGx5IGl0IGRpZG4ndCByZXF1aXJlIGRhZW1v bnMsIGJ1dCB0aGVzZSBkYXlzIG5ldHdvcmtpbmcgaXMgYQpsb3QgbW9yZSBjb21wbGV4LCBhbmQg cGVvcGxlIG9mdGVuIHJ1biBtdWx0aXBsZSBpbnRlcmZhY2VzLCBhbmQKc29tZXRoaW5nIGdldHMg dG8gbWVkaWF0ZSBiZXR3ZWVuIG11bHRpcGxlIGludGVyZmFjZXMuICBJIG9mdGVuIGFyZ3VlCnRo YXQgdGhlICpvbGQqIHN5c3RlbSBvZiBhIHRvbiBvZiBzaGVsbHNjcmlwdHMgYW5kIG1hbnkgZGlm ZmVyZW50CnByb2Nlc3NlcyAoZGhjcCwgcHBwLCB2cG4sIHdwYV9zdXBwbGljYW50LCBpcHNlYywg ZXRjKSBhbGwgZG9pbmcgdGhlaXIKb3duIHRoaW5nIGFuZCBiZWluZyBsb29zZWx5IHRpZWQgdG9n ZXRoZXIgdmlhIGEgYnVuY2ggb2YKY29iYmxlZC10b2dldGhlciBzaGVsbHNjcmlwdHMgaXMgKm1v cmUqIGNvbXBsZXgsIGJlY2F1c2U6CgoxKSBlcnJvciBoYW5kbGluZyBhbmQgcmVwb3J0aW5nIGlz IHZlcnkgaGFyZCB0byBnZXQgcmlnaHQgaW4gc2hlbGwKMikgdGhlcmUncyBhYm91dCAxMHggbW9y ZSBjcmFja3MgZm9yIHRoaW5ncyB0byBmYWxsIHRocm91Z2ggYW5kIHByb2JsZW1zCnRvIG9jY3Vy IGluIGEgbG9vc2VseSB0aWVkIHRvZ2V0aGVyIHN5c3RlbSBsaWtlIHRoaXMKMykgZWFjaCB0b29s IGhhcyBpdCdzIG93biBjb25maWd1cmF0aW9uIGZvcm1hdCBhbmQgaXQncyBvd24KY29tbWFuZC9j b250cm9sIGZvcm1hdCwgYW5kIG5vbmUgb2YgdGhlc2UgYXJlIGFueXRoaW5nIGxpa2UgdGhlIG90 aGVycwo0KSBoYW5kbGluZyBldmVudHMgZnJvbSB0aGVzZSB0b29scyBvZnRlbiByZXF1aXJlcyBh IGRhZW1vbi10eXBlIHByb2Nlc3MKYW55d2F5CjUpIGhhbGYgb3IgbW9yZSBvZiB0aGUgZWZmb3J0 IGdvZXMgaW50byBtYWtpbmcgYWxsIHRoZXNlIHRvb2xzIHdvcmsKdG9nZXRoZXIgYW5kIHRhbGsg cmVsaWFibHkgYW5kIHRvIHByb3ZpZGUgYSBjb25zaXN0ZW50IGludGVyZmFjZSBvbiB0b3AKb2Yg YWxsIG9mIHRoZW0sIGluc3RlYWQgb2YgYWN0dWFsbHkgbWFraW5nIHRoZSBuZXR3b3JraW5nIHN5 c3RlbSBiZXR0ZXIKClRoZXJlJ3Mgbm8gcmVhc29uICp3aHkqIGEgc3lzdGVtIGxpa2UgTmV0d29y a01hbmFnZXIgc2hvdWxkIGJlIGFzCmNvbXBsZXggYXMgeW91IHRoaW5rIGl0IGlzLCBhbmQgSSdk IGFyZ3VlIHRoYXQgaXQncyBub3QuICBDZXJ0aWFubHkgIG5vdAoxMHggYXMgY29tcGxleCBhcyB0 aGUgb2xkIHN5c3RlbS4gIEknbSBub3QgYWN1dGFsbHkgc3VyZSB3aGF0IGEgIm1vcmUKZWxlZ2Fu dCIgc2V0dXAgdGhhdCB5b3UgZW52aXNpb24gd291bGQgYmU7IGFueSBjaGFuY2UgeW91IGNhbiBz aGFyZSBzb21lCnRob3VnaHRzPwoKRGFuCgo+IAo+IFRoZW4gd2UndmUgZ290IGxpYnZpcnQgYW5k IG5ldGNmLCB3aGljaCBkbyBraW5kIG9mIGFuIG9rYXkgam9iIGlmIHlvdQo+IG1hbmFnZSB0byBm cm9iIG5ldGNmIGVub3VnaCB0aGF0IGl0IGRlYWxzIHdpdGggY29uZmlndXJhdGlvbiBmaWxlcyBv dGhlcgo+IHRoYW4gUmVkSGF0J3MsIGFuZCBhcyBsb25nIGFzIHlvdXIgbmV0d29yayBjb25maWd1 cmF0aW9uIGRvZXNuJ3QgZ2V0IHRvbwo+IGNvbXBsaWNhdGVkLiBXaGljaCBoYXBwZW5zIHF1aWNr bHkgaW4gYSB2aXJ0dWFsaXphdGlvbiBlbnZpcm9ubWVudC4KPiAKPiBCZXlvbmQgdGhlc2UsIHRo ZXJlIGFyZSB0aGluZ3MgbGlrZSBvcGVudnN3aXRjaCwgd2hpY2ggaXMgY3J1Y2lhbCBpbgo+IGEg Y2xvdWQgZW52aXJvbm1lbnQgYnV0IG5vdCBhdCBhbGwgaW50ZWdyYXRlZCB3aXRoIGFueSBvZiB0 aGUgb3RoZXIKPiBjb21wb25lbnRzLgo+IAo+IFNvIG5vLCB3ZSBkb24ndCByZWFsbHkgbmVlZCB5 ZXQgYW5vdGhlciBuZXR3b3JrIG1hbmFnZW1lbnQgdGhpbmd5Lgo+IAo+IFdlIG5lZWQgYSBtYW5h Z2VtZW50IHRoaW5neSB0aGF0IHJlcGxhY2VzIGEgbG90IG9mIHRoaXMgc3R1ZmYuCj4gCj4gCj4g Cj4gWWVhaCwgYnV0IGl0IGtpbmQgb2Ygd29ya3MsIHdoeSBzaG91bGQgd2UgbWVzcyB3aXRoIGl0 Cj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Cj4gCj4gUXVpY2ssIHVzaW5nIGFueSBvZiB0aGUgZXhpc3RpbmcgZnJhbWV3b3JrcywgY2FuIHlv dSB0ZWxsIG1lIGhvdyB0by4uLgo+IAo+ICAtIC4uLiBkaXNhYmxlIElQdjYgb24gYSBzcGVjaWZp YyBpbnRlcmZhY2U/Cj4gIC0gLi4uIHNldCB1cCBhbiBpbnRlcmZhY2UgZm9yIERIQ1B2NCBhbmQg REhDUHY2Pwo+ICAtIC4uLiBjaGFuZ2UgdGhlIGxpbmsgc3BlZWQgb24gYW4gRXRoZXJuZXQgaW50 ZXJmYWNlPwo+ICAtIC4uLiByZWNvbmZpZ3VyZSBhIGJvbmRpbmcgZGV2aWNlIHdpdGhvdXQgYnJp bmdpbmcgaXQgZG93bj8KPiAgLSAuLi4gc2V0IHVwIGEgYnJpZGdlIHVzaW5nIHR3byBib25kZWQg TklDcyBhcyBvbmUgb2YgaXRzIHBvcnRzPwo+ICAtIC4uLiB0aGUgc2FtZSBhcyBhYm92ZSwgd2l0 aCBWTEFOIHRhZ2dpbmc/Cj4gIC0gLi4uIGNoYW5nZSB0aGUgZmlyZXdhbGwgcnVsZXMgb24geW91 ciBVTVRTIG1vZGVtPwo+ICAtIC4uLiBzZXQgdXAgODAyLjF4IGF1dGhlbnRpY2F0aW9uIGZvciB5 b3VyIEV0aGVybmV0IE5JQz8KPiAgLSAuLi4gc2V0IHVwIHBlcnNpc3RlbnQgbmFtZXMgZm9yIHlv dXIgU3lzdGVtIHogZGV2aWNlcz8KPiAKPiBJZiB5b3UgY291bGQgYW5zd2VyIGFsbCBvZiB0aGVt IGF0IHRoZSBzbmFwIG9mIGEgZmluZ2VyLCBwbGVhc2Ugc2VuZCBtZSB5b3VyIENWLgo+IAo+ICoq KiBJIHdvdWxkIHJhdGhlciBzZW5kIHlvdSBhIGZldyBVUkxzOgo+IAo+IGh0dHA6Ly9idXN5Ym94 Lm5ldC9+dmRhL25vX2lmdXAudHh0Cj4gaHR0cDovL2dpdC5idXN5Ym94Lm5ldC9idXN5Ym94L3Ry ZWUvZXhhbXBsZXMvdmFyX3NlcnZpY2UvUkVBRE1FCj4gCj4gCj4gCj4gU28sIHdoYXQgcHJvcGVy dGllcyBzaG91bGQgYSBuZXcgbmV0d29yayBtYW5hZ2VtZW50IGZyYW1ld29yayBoYXZlPwo+ID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KPiAKPiBPYnZpb3VzbHksIHRoZXJlIGFyZSBhIG51bWJlciBvZiBhc3BlY3RzIG9m IHRoZSBleGlzdGluZyBzeXN0ZW1zIHRoYXQKPiBtYWtlIHRoZW0gdXNlZnVsIHRvIHBlb3BsZTsg cmV0YWluaW5nIHRoZXNlIGlzIHdvcnRod2hpbGUuCj4gCj4gRm9yIGluc3RhbmNlLCBoYXZpbmcg YSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlIGlzIGNydWNpYWwgdG8gbWFueQo+IHBlb3BsZS4gWW91 IG5lZWQgdG8gYmUgYWJsZSB0byBjaGFuZ2UgeW91ciBuZXR3b3JrIHNldHRpbmdzIGZyb20gYW4g c3NoCj4gc2Vzc2lvbjsgYW5kIHlvdSB3YW50IHRvIGJlIGFibGUgdG8gc2NyaXB0IG5ldHdvcmsg bWFuYWdlbWVudCB0YXNrcywgdG9vLgo+IAo+IFNpbWlsYXJseSwgcGVvcGxlIGxpa2UgTmV0d29y a01hbmFnZXIgYmVjYXVzZSBpdCBhbGxvd3MgdGhlbSB0byBzZXQgdXAKPiBuZXR3b3JrIGludGVy ZmFjZXMgaW4gcmVzcG9uc2UgdG8gdmFyaW91cyBldmVudHMsIGFuZCBpdCBkb2VzIHNvIG1vcmUK PiBvciBsZXNzIGF1dG9tYXRpY2FsbHksIGFuZCB3aXRob3V0IHRoZSB1c2VyIGhhdmluZyB0byBi ZSByb290Lgo+IAo+IEZyb20gYSBtYWludGVuYW5jZSBwZXJzcGVjdGl2ZSwgZXh0ZW5zaWJpbGl0 eSBhbmQgZGVidWdnaW5nIGFyZSBjcml0aWNhbCwKPiB0b28uIFdoaWxlIHNoZWxsIHNjcmlwdHMg YXJlIGNlcnRhaW5seSBub3QgdGhlIGxhdGVzdCBpbiBTb2Z0d2FyZSBFbmdpbmVlcmluZywKPiAK PiAqKiogc2hlbGwgc2NyaXB0cyBhcmUgdGltZSB0ZXN0ZWQgdG9vbHMuIEJlZm9yZSB5b3UgZGlz cGFyYWdlIHRoZW0sCj4gY29sbGVjdCBhdCBsZWFzdCB0ZW4geWVhcnMgb2Ygc3VjY2Vzc2Z1bCB1 c2FnZSB1bmRlciB5b3VyIHRvb2wncyBiZWx0Lgo+IAo+IGl0IGlzIGNlcnRhaW5seSBlYXN5IHRv IGV4dGVuZCBhbiBleGlzdGluZyBzY3JpcHQgKHByb3ZpZGVkIHlvdSB1bmRlcnN0YW5kCj4gd2hh dCBpdCdzIGRvaW5nKSwgYW5kIHRvIGluc2VydCBkZWJ1ZyBvdXRwdXQsIGV0Yy4KPiAKPiAqKiog ZXhhY3RseS4gRG8gdGhlIHNhbWUgdG8gWE1MPyBJIGRvbid0IHRoaW5rIHNvLgo+IAo+IAo+IEJl eW9uZCBzdWNoIGFzcGVjdHMsIHRoZXJlIGFyZSBhIG51bWJlciBvZiBkZXNpcmFibGUgcHJvcGVy dGllcy4KPiAKPiBPbmUsIGEgbW9kZXJuIG5ldHdvcmsgbWFuYWdlbWVudCBmcmFtZXdvcmsgc2hv dWxkIHJ1biBhcyBhIHNlcnZpY2UuIFRoZQo+IGtlcm5lbCBvZmZlcnMgYSBwbGV0aG9yYSBvZiBu b3RpZmljYXRpb25zIHZpYSBydG5ldGxpbmssIGFuZCBpbmNyZWFzaW5nbHkKPiBleHBlY3RzIHVz ZXIgc3BhY2UgdG8gcmVhY3QgdG8gdGhlc2UgKGZvciBpbnN0YW5jZSBpbiB0aGUgSVB2NiBhcmVh KS4KPiBSdW5uaW5nIGEgbmV0d29yayBtYW5hZ2VtZW50IGRhZW1vbiBhbGxvd3MgdXMgdG8gdHJh Y2sgdGhlIHN0YXRlLCBkZXRlY3QKPiBjaGFuZ2VzLCBhbmQgcmVhY3QgdG8gdGhlbSBhcHByb3By aWF0ZWx5Lgo+IAo+IFR3bywgYSBtb2Rlcm4gbmV0d29yayBtYW5hZ2VtZW50IGZyYW1ld29yayBz aG91bGQgYmUgbGF5ZXJlZCAtIGJvdGggaW4KPiBpdHMgaW1wbGVtZW50YXRpb24sIGFuZCBpdHMg Y29uZmlndXJhdGlvbi4gT25lIG9mIHRoZSByZWFzb25zIHdoeSB0aGUKPiBleGlzdGluZyBpZmNm ZyBmaWxlcyBhcmUgc3VjaCBhIG1lc3MgYXJlIHRoZSBpbmhlcmVudCBsaW1pdGF0aW9ucyBvZgo+ IHNoZWxsIHNjcmlwdHMgYW5kIHNoZWxsIHZhcmlhYmxlcyBkZWFsaW5nIHdpdGggY29tcGxleCB0 eXBlcy4KPiAKPiAJQk9PVFBST1RPPSdzdGF0aWMnCj4gCVNUQVJUTU9ERT0nYXV0bycKPiAJTkFN RT0nODI1NjZETS0yIEdpZ2FiaXQgTmV0d29yayBDb25uZWN0aW9uJwo+IAlFVEhUT09MX09QVElP TlM9JycKPiAJVVNFUkNPTlRST0w9J25vJwo+IAlJUEFERFI9JzEuMi4zLjQvMjQnCj4gCUlQQURE Ul8wPScxLjIuOC4xNy8yNCcKPiAKPiBUaGlzIG1peGVzIC0gaW4gcmFuZG9tIG9yZGVyIC0gYWRk cmVzcyBjb25maWd1cmF0aW9uLCBoYXJkd2FyZSBjb25maWd1cmF0aW9uLAo+IGJlaGF2aW9yIGNv bnRyb2wsIGFuZCBVSSBpbmZvcm1hdGlvbi4gQW5kIHRoaW5ncyB3aWxsIGJlY29tZSB3b3JzZSB0 aGUgbW9tZW50Cj4geW91IHN0YXJ0IHRvIHN1cHBvcnQgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZv ciB5b3VyIG5ldHdvcmsgZGV2aWNlcyAtIGJlY2F1c2UKPiB5b3Ugd2lsbCBxdWlja2x5IGVuZCB1 cCB3aXRoIFZFUllfTE9OR19WQVJJQUJMRV9OQU1FU19OT0JPRFlfV0lMTF9FVkVSX1JFTUVNQkVS Lgo+IAo+ICoqKiBZb3UgaG9uZXN0bHkgdGhpbmsgWE1MIGlzIG1vcmUgcmVhZGFibGU/IElmIG5v dCwgdGhlbiB0aGlzIHBhcnRpY3VsYXIKPiBwb2ludCBhYm91dCBWRVJZX0xPTkdfVkFSSUFCTEVf TkFNRVNfTk9CT0RZX1dJTExfRVZFUl9SRU1FTUJFUiBpcyBpbnZhbGlkLgo+IEJ1dCB5ZXMsIHRo ZSBnZW5lcmFsIHBvaW50IHN0YW5kcy4KPiAKPiBBbmQgc29tZSB0aGluZ3MgYXJlIGp1c3QgdG91 Z2ggdG8gZG8gdXNpbmcgc2hlbGwgdmFyaWFibGVzICh3aGlsZSBzdGlsbCBtYWludGFpbmluZwo+ IGEgY2VydGFpbiBsZXZlbCBvZiBzYW5pdHkpLCBzbyB0aGF0IGF1eGlsaWFyeSBmaWxlIGZvcm1h dHMgaGFkIHRvIGJlIGludmVudGVkIC0KPiB2aXogdGhlIGlmY2ZnLXJvdXRlcyBmaWxlIGluIG9w ZW5zdXNlLgo+IAo+IElkZWFsbHksIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgZm9ybWF0IHNob3Vs ZCBzdHJ1Y3R1cmUgb3B0aW9ucyBpbnRvIGxvZ2ljYWwKPiB1bml0cyAtIGhhdmluZyBzeW50YWN0 aWMgZ3JvdXBzIGZvciBsdW1wcyBvZiBkYXRhIHRoYXQgYmVsb25nIHRvZ2V0aGVyOwo+IGJlaW5n IGFibGUgdG8gb3JnYW5pemUgc2V2ZXJhbCBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgdHlwZSBvZiBk YXRhIChzdWNoCj4gYXMgc2F5IGEgc3RhdGljIHJvdXRlKSBpbnRvIGEgbGlzdDsgZXRjLgo+IAo+ IExheWVyaW5nIGlzIGFsc28gY3J1Y2lhbCBmb3IgdGhlIGltcGxlbWVudGF0aW9uLCBiZWNhdXNl IGl0IG1ha2VzIHN1cmUgeW91Cj4gc3VwcG9ydCBhIHVuaWZvcm0gc2V0IG9mIGZlYXR1cmVzIGFj cm9zcyBhbGwgdHlwZXMgb2YgZGV2aWNlcy4gVG9kYXksIHNldHRpbmcKPiB1cCBhIGZpcmV3YWxs IG9uIGEgc2VyaWFsIFBQUCBkZXZpY2UgaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSBkb2luZyBpdCBv biBhbiBFdGhlcm5ldAo+IGludGVyZmFjZSwgYW5kIHRoYXQgYWdhaW4gaXMgdmVyeSBkaWZmZXJl bnQgZnJvbSBkb2luZyBpdCBvbiBhIFVNVFMgUFBQIHNlc3Npb24KPiBzdGFydGVkIGJ5IE5ldHdv cmtNYW5hZ2VyLgo+IAo+IFRocmVlLCBhIG1vZGVybiBuZXR3b3JrIG1hbmFnZW1lbnQgZnJhbWV3 b3JrIHNob3VsZCBzdXBwb3J0IGEgd2F5IHRvIGlkZW50aWZ5Cj4gbmV0d29yayBkZXZpY2VzIGJ5 IG1lYW5zIG90aGVyIHRoYW4gdGhlaXIgbmFtZS4gVGhhdCBuYW1lIGlzIHJlYWxseSBzZWNvbmRh cnk7Cj4gYW5kIHRvb2xzIHNob3VsZCBub3QgcmVseSBvbiBpdC4gSW5zdGVhZCwgdGhlIG1hbmFn ZW1lbnQgZnJhbWV3b3JrIHNob3VsZCBwcm92aWRlCj4gbmFtaW5nIGZhY2lsaXRpZXMgdGhhdCBh bGxvdyB5b3UgdG8gaWRlbnRpZnkgaW50ZXJmYWNlcyBieSBhIHNldCBvZiBhdHRyaWJ1dGVzIC0K PiBmb3IgaW5zdGFuY2UsIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBpZGVudGlmeSBhIFVNVFMg c3RpY2sgYnkgdGhlIElNRUkgb2YKPiBpdHMgR1NNIGNhcmQuIE9yIGl0IHNob3VsZCBiZSBwb3Nz aWJsZSB0byBpZGVudGlmeSBhIGhvdHBsdWcgRXRoZXJuZXQgY2FyZAo+IGJ5IHRoZSBQQ0kgSUQg b2YgaXRzIGVuY2xvc3VyZSwgd2hpY2ggZW5zdXJlcyB0aGF0IHdoZW4geW91IHJlcGxhY2UgdGhl IGNhcmQsCj4gdGhlIG5ldyBvbmUgd2lsbCByZWNlaXZlIHRoZSBzYW1lIGNvbmZpZ3VyYXRpb24g YXMgdGhlIG9sZCBvbmUuCj4gCj4gRm91ciwgYSBtb2Rlcm4gbmV0d29yayBtYW5hZ2VtZW50IGZy YW1ld29yayBzaG91bGQgbW9kZWwgaW50ZXJmYWNlIGRlcGVuZGVuY2llcy4KPiBDb25zaWRlciBh IGJyaWRnZSBzaXR0aW5nIG9uIHRvcCBvZiBhIFZMQU4gYnVpbHQgb24gYSBwYWlyIG9mIGJvbmRl ZCBOSUNzLgo+IEJlZm9yZSBicmluZ2luZyB1cCBhbnkgb2YgdGhlc2UsIHRoZSBtYW5hZ2VtZW50 IGZyYW1ld29yayBzaG91bGQgYnJpbmcgdXAgdGhlCj4gbG93ZXItbGF5ZXIgZGV2aWNlLiBUaGlz IGRvZXNuJ3QgcmVhbGx5IGhhcHBlbiB3aXRoIHRvZGF5J3Mgc2NyaXB0cy4KPiAKPiBGaXZlLCBh IG1vZGVybiBuZXR3b3JrIG1hbmFnZW1lbnQgZnJhbWV3b3JrIHNob3VsZCBwcm92aWRlIHRyaWdn ZXJzIGZvciBhbGwgc29ydHMKPiBvZiB0aGluZ3MuIEZvciBpbnN0YW5jZSwgaWYgeW91IGhhdmUg YW4gTkZTIG1vdW50LCB3b3VsZG4ndCBpdCBiZSBuaWNlIGlmIHlvdQo+IGNvdWxkIHRlbGwgdGhl IG1hbmFnZW1lbnQgZnJhbWV3b3JrIHRvIG5vdGlmeSB5b3UgYXMgc29vbiBhcyB0aGUgc2VydmVy J3MgaG9zdAo+IG5hbWUgY2FuIGJlIHJlc29sdmVkLCBhbmQgdGhlIGFkZHJlc3MgaXMga25vd24g dG8gYmUgcmVhY2hhYmxlPwo+IAo+IAo+IFdoeSBkb24ndCB5b3UgdXNlIHRvb2wgWFlaPwo+ID09 PT09PT09PT09PT09PT09PT09PT09PT09PQo+IAo+IFdlIGxvb2tlZCBhdCBhbGwgb2YgdGhlIGF2 YWlsYWJsZSB0b29scywgYnV0IHdlIGRpZG4ndCBjb21lIGFjcm9zcyBhbnl0aGluZwo+IHRoYXQg aGFkIHNpbWlsYXIgZ29hbHMgdG8gdGhlIG9uZXMgYWJvdmUuIFNvbWUgd2VudCBhIGxvbmcgd2F5 LCBidXQgdGhleSB3ZXJlCj4gZWl0aGVyIHZlcnkgbXVjaCBmb2N1c2VkIG9uIGEgZGVza3RvcC1s aWtlIHVzZSBjYXNlIHdpdGggZmV3IGRldmljZXMgKG1vc3RseQo+IEV0aGVybmV0LCBXTEFOIGFu ZCBVTVRTKSwgb3IgdGhleSB3ZXJlIGZvY3VzZWQgb24gdGhlIEVudGVycHJpc2UgZW5kIG9mIHRo ZQo+IHNwZWN0cnVtIHdpdGggbGl0dGxlIHN1cHBvcnQgZm9yIHRoZSBuZWVkcyBvZiB0aGUgc2lu Z2xlIGVuZCB1c2VyLgo+IAo+IFNvLCBJIHN0YXJ0ZWQgdG8gd29yayBvbiBzb21ldGhpbmcgSSBj YWxsZWQgd2lja2VkIGluaXRpYWxseSwgd2hpY2ggd2FzIGEgUkVTVAo+IGJhc2VkIHNlcnZpY2Uu IElmIHlvdSBoYXZlbid0IGd1ZXNzIHNvIGZhciwgSSBoYXZlIGEgcGFzc2lvbiBmb3IgcmVhbGx5 IGNoZWVzeQo+IHB1bnMgLSBSRVNUIGZvciB0aGUgd2lja2VkIHdhcyBzb21ldGhpbmcgSSBjb3Vs ZG4ndCBwYXNzIHVwLgo+IAo+IFRoZSB0aGluZyBldm9sdmVkIHF1aXRlIGEgYml0IG92ZXIgdGlt ZSwgbW92aW5nIGZyb20gUkVTVCB0byBhIGRidXMKPiBiYXNlZCB0cmFuc3BvcnQsIGFtb25nIG90 aGVycyAtIGFuZCBpdCBrZWVwcyBldm9sdmluZy4gQW1vbmcgb3RoZXIKPiB0aGluZ3MsIGl0J2xs IHByb2JhYmx5IGNoYW5nZSBpdHMgbmFtZSBpbiB0aGUgbm90IHRvbyBkaXN0YW50IGZ1dHVyZSwK PiBiZWNhdXNlIHBlb3BsZSBrZWVwIGNvbmZ1c2luZyB3aWNrZWQgd2l0aCBXSUNELiBJIGp1c3Qg bmVlZCB0byBjb21lIHVwCj4gd2l0aCBhbm90aGVyIGNoZWVzeSBwdW4uCj4gCj4gCj4gQmFzaWMg YXJjaGl0ZWN0dXJlCj4gPT09PT09PT09PT09PT09PT09Cj4gCj4gVGhlIGJhc2ljIGFyY2hpdGVj dHVyZSBvZiB0aGUgd2hvbGUgc2VydmljZSBpcyByYXRoZXIgc2ltcGxlLiBUaGVyZSdzCj4gYSBk YWVtb24gcHJvY2Vzcywgd2lja2VkZCwgcGFzc2l2ZWx5IG1vbml0b3JpbmcgYWxsIGludGVyZmFj ZXMsIHdpdGhvdXQKPiB0b3VjaGluZyBhbnkgb2YgdGhlbSB1bmxlc3MgdG9sZCBvdGhlcndpc2Uu Cj4gCj4gSXQgb2ZmZXJzIGEgdmlldyBvZiB0aGVzZSBkZXZpY2VzIHZpYSBEQnVzLCB3aXRoIGEg bnVtYmVyIG9mIERCdXMKPiBpbnRlcmZhY2VzIGF0dGFjaGVkIHRvIGVhY2ggb2YgdGhlbS4KPiAK PiBDbGllbnRzIGNhbiB0YWxrIHRvIHRoaXMgc2VydmljZSBhbmQgcmVxdWVzdCBhIHNwZWNpZmlj IG9wZXJhdGlvbiBvbiBhbnkKPiBzdWNoIGRldmljZS4KPiAKPiAqKiogSG93IGRvIHlvdSBzZXQg dXAgbmV0d29yayBwYXJhbWV0ZXJzPyBJT1c6IGRvZXMgd2lja2VkZAo+IHJlaW1wbGVtZW50IHN1 Y2ggdG9vbHMgbGlrZSBpcCwgZXRodG9vbCwgaXdjb25maWcsIGRoY3BjIGNsaWVudCwKPiBwcHA/ Cj4gCj4gKioqIENhbiB5b3Ugc2hvdyB0aGUgbGRkIGFuZCBzaXplIG91dHB1dCBvbiB5b3VyIHdp Y2tlZGQgYmluYXJ5Pwo+IAo+IAo+IFRoZXJlIGlzIGEgY29tbWFuZCBsaW5lIGNsaWVudCBjYWxs ZWQgd2lja2VkIHdob3NlIG1haW4gcHVycG9zZSBpdCBpcwo+IHRvIGFjdCBhcyBhIGJhY2tlbmQg dG8gaWZ1cCBhbmQgaWZkb3duLiBUaGlzIGNsaWVudCBjYW4gY29uZmlndXJlIGFueQo+IG51bWJl ciBvZiBpbnRlcmZhY2VzIGluIHBhcmFsbGVsLCBhbmQgYWxzbyB0YWtlcyBjYXJlIG9mIGRlcGVu ZGVuY2llcwo+IGJldHdlZW4gaW50ZXJmYWNlcy4KPiAKPiBUaGVyZSBpcyBhbm90aGVyIGFwcGxp Y2F0aW9uIGNhbGxlZCBuZXR3b3JrLW5hbm55LCB3aGljaCB0cmllcyB0byBkbyB3aGF0Cj4gTmV0 d29ya01hbmFnZXIgaXMgY3VycmVudGx5IGRvaW5nLCB1c2luZyB0aGUgV2lja2VkIHNlcnZpY2Uu IEl0IGlzIGZhaXJseQo+IHRpZ2h0bHkgaW50ZWdyYXRlZCB3aXRoIHRoZSBvdGhlciBjb21wb25l bnRzIG9mIG1hbmFnZW1lbnQgZnJhbWV3b3JrLAo+IGFuZCBzaGFyZXMgYSBzaWduaWZpY2FudCBh bW91bnQgb2YgY29kZSB3aXRoIHRoZSBjb21tYW5kIGxpbmUgY2xpZW50Lgo+IAo+IAo+IAo+IAo+ IAo+IFRoZSBzYW1lLCBidXQgc2hvd2luZyB0aGUgbGF5ZXJpbmcgYXQgd29yazoKPiAKPiA8aW50 ZXJmYWNlPgo+ICAgPG5hbWU+ZXRoMDwvbmFtZT4KPiAKPiAgIDxjb250cm9sPgo+ICAgICA8bW9k ZT5ib290PC9tb2RlPgo+ICAgICA8bGluay1kZXRlY3Rpb24+Cj4gICAgICAgPHRpbWVvdXQ+NjA8 L3RpbWVvdXQ+Cj4gICAgICAgPHJlcXVpcmUtbGluayAvPgo+ICAgICA8L2xpbmstZGV0ZWN0aW9u Pgo+ICAgPC9jb250cm9sPgo+IAo+ICAgPGV0aGVybmV0Pgo+ICAgICA8cG9ydC10eXBlPnRwPC9w b3J0LXR5cGU+Cj4gICAgIDxsaW5rLXNwZWVkPjEwMDA8L2xpbmstc3BlZWQ+Cj4gICAgIDxvZmZs b2FkPgo+ICAgICAgIDx0c28+ZGlzYWJsZTwvdHNvPgo+ICAgICA8L29mZmxvYWQ+Cj4gICA8L2V0 aGVybmV0Pgo+IAo+ICAgPGxpbms+Cj4gICAgIDxtdHU+ODAwMDwvbXR1Pgo+ICAgICA8dHhxbGVu PjUwPC90eHFsZW4+Cj4gICA8L2xpbms+Cj4gCj4gICA8ZmlyZXdhbGw+Cj4gICAgIDx6b25lPnNl Y3VyZTwvem9uZT4KPiAgIDwvZmlyZXdhbGw+Cj4gCj4gICA8aXB2NDpkaGNwPgo+ICAgICA8ZW5h YmxlZD50cnVlPC9lbmFibGVkPgo+ICAgICA8YWNxdWlyZS10aW1lb3V0PjE1PC9hY3F1aXJlLXRp bWVvdXQ+Cj4gICA8L2lwdjQ6ZGhjcD4KPiA8L2ludGVyZmFjZT4KPiAKPiBBcyB5b3UgY2FuIHNl ZSwgb3B0aW9ucyBzcGVjaWZpYyB0byB0aGUgcGh5c2ljYWwgZGV2aWNlIGFyZSBncm91cGVkIGlu Cj4gb25lIFhNTCBlbGVtZW50LCBnZW5lcmljIGxpbmstbGF5ZXIgb3B0aW9ucyBpbiBhbm90aGVy LCBhbmQgZmlyZXdhbGwKPiBzZXR0aW5ncyBpbiB5ZXQgYW5vdGhlciBlbGVtZW50Lgo+IAo+ICoq KiBGaXJld2FsbCBjb25maWd1cmF0aW9uIG9mdGVuIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggcGFy dGljdWxhcgo+IGludGVyZmFjZS4gSXQgYWxzbyBjYW4gYmUgYXJiaXRyYXJpbHkgY29tcGxleC4g RHVtYmluZyBpdCBkb3duCj4gdG8gcGVyLWludGVyZmFjZSBzZXR0aW5nIGlzIGV4dHJlbWVseSBs aW1pdGluZy4KCgotLSAKZGV2ZWwgbWFpbGluZyBsaXN0CmRldmVsQGxpc3RzLmZlZG9yYXByb2pl Y3Qub3JnCmh0dHBzOi8vYWRtaW4uZmVkb3JhcHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9k ZXZlbA==