Re: Banned on MDN for adding referer warnings, please help.
Bil Corry <[email protected]> Mon, 8 Oct 2018 12:05:45 -0700
| Newsgroups | gmane.comp.mozilla.security |
|---|---|
| Message-ID | <CACdphr6ggrvkhLNVoNss9whD1-mWWNDBy+7HOYyUnWF0-TB6oQ@mail.gmail.com> |
SGkgTWFyaywKCldvdywgdGhlcmUncyBhIGxvdCB0byB1bnBhY2sgaW4gdGhpcyBlbWFpbCB0aHJl YWQuCgpJJ20gbm90IGNsZWFyIHdoYXQgeW91J3JlIGFza2luZyBmb3IsIEkgdGhpbmsgeW91IHdh bnQgY29tbXVuaXR5IHN1cHBvcnQgdG8KYWRkIGJhY2sgaW4geW91ciB3YXJuaW5nIGJhbm5lcnMg cmVnYXJkaW5nIHJlZmVycmVyIHByaXZhY3kgaXNzdWVzLiAgSWYgc28sCnBsZWFzZSBzZW5kIGEg bmV3IGVtYWlsIHRvIHRoZSBjb21tdW5pdHkgYXNraW5nIGZvciBvcGluaW9ucyBhYm91dCBhZGRp bmcgYQp3YXJuaW5nIGJhbm5lciBhbmQgbWVudGlvbiB0aGF0IE1vemlsbGEgaXMgYWdhaW5zdCBh ZGRpbmcgdGhlIGJhbm5lcnMsIGJ1dApwbGVhc2UgZG8gbm90IHF1b3RlIHRoaXMgZW50aXJlIHRo cmVhZC4gIEkgaGF2ZSBzb21lIHRob3VnaHRzIGFib3V0IHlvdXIKYXNrLCBidXQgdGhpcyB0aHJl YWQgaXMgbm93IHVuZm9ydHVuYXRlbHkgYWJvdXQgdGhlIG5hdHVyZSBvZiB5b3VyCmRpc2FncmVl bWVudCB3aXRoIE1vemlsbGEgaW5zdGVhZCBvZiB0aGUgc3Vic3RhbmNlLiAgQSBuZXcgdGhyZWFk IHdpbGwKYWxsb3cgeW91IHRvIHNlZWsgY29tbXVuaXR5IGZlZWRiYWNrIGFib3V0IHlvdXIgc3Bl Y2lmaWMgYXNrLgoKUmVnYXJkaW5nIE1vemlsbGEncyBiZWhhdmlvciBhbmQgeW91ciBvd247IG15 IGludGVycHJldGF0aW9uIHJlYWRpbmcKdGhyb3VnaCB0aGUgdGhyZWFkIGlzIHRoYXQgTW96aWxs YSBoZWFyZCB5b3VyIGZlZWRiYWNrLCBpbmNvcnBvcmF0ZWQgaXQKaW50byBNRE4gYWNjb3JkaW5n IHRvIGhvdyB0aGV5IG1hbmFnZSB0aGVpciBjb250ZW50LCBhbmQgYXNrZWQgeW91IG5vdCB0bwph ZGQgdGhlIHdhcm5pbmcgbGFiZWwuICBJdCBlc2NhbGF0ZWQgYW5kIHRoZXkgcmV2b2tlZCB5b3Vy IGFjY2VzcyB0byBtb2RpZnkKY29udGVudC4KCgotIEJpbAoKCk9uIE1vbiwgT2N0IDgsIDIwMTgg YXQgOTozNiBBTSBNYXJrIFJpY2hhcmRzIDxtYXJrLmFsYW4ucmljaGFyZHNAZ21haWwuY29tPgp3 cm90ZToKCj4gSGV5Cj4KPiBJJ3ZlIGhhZCBteSBNRE4gYWNjb3VudCBiYW5uZWQgZm9yIHRyeWlu ZyB0byBhZGQgcmVmZXJlciB3YXJuaW5ncyBvbnRvIDxhPgo+IGFuZCA8aW1nPiBlbGVtZW50cyBv ciB3b3JzZSBiYW5uZWQgZm9yIGludm9sdmluZyBhdXRob3JpdGllcyB3aG8gYXJlCj4gaW52ZXN0 aWdhdGluZyB0aGUgbWVzcyBvZiBtaWNyb3RhcmdldGluZy4gSXQgYXBwZWFycyBNRE4gYXJlIHJl ZnVzaW5nIGEKPiB3YXJuaW5nIG9uIHRoZSBncm91bmRzIGl0IGlzbid0IGEgbmljZSBwcmVzZW50 YXRpb24sIHJlZ2FyZGxlc3Mgb2YgaG93Cj4gaXJyZXNwb25zaWJsZSBpdCBpcyB0byBub3QgaW5j bHVkZSBpdC4KPgo+IEkgbmVlZCBoZWxwIGFuZCBhcyB0aGUgc2VjdXJpdHkgZGV2cyBJIGhvcGUg Z2l2ZW4gdGhlIGV4dGVudCB0byB3aGljaAo+IEZpcmVmb3ggaGFzIGFkZGVkIGNvbmZpZyBmZWF0 dXJlcyBhbmQgcG9saWNpZXMgdG8gdHJ5IHRvIHJlZHVjZSB0aGUgcmVmZXJlcgo+IG1lc3MgdGhl cmUgYXJlIGNvbW11bml0eSBtZW1iZXJzIHdobyB1bmRlcnN0YW5kIGhvdyBzaWduaWZpY2FudCB0 aGlzIGlzLgo+IFdoYXRldmVyIEZpcmVmb3ggdHJpZXMsIG90aGVyIGJyb3dzZXJzIGhhdmUgYSBi aWdnZXIgbWFya2V0IHNoYXJlLgo+IERvY3VtZW50aW5nIHRoZSByZWZlcmVyIHJpc2tzIGluIE1E TiBkb2VzIHN0YW5kIGEgY2hhbmNlIG9mIGJldHRlcgo+IGVkdWNhdGluZyBkZXZlbG9wZXJzIHNv IHRoZXkgc3RhcnQgcGF5aW5nIGF0dGVudGlvbiB0byB0aGVpciB0aGlyZCBwYXJ0aWVzCj4gYW5k IGZvciBtYW55IGl0IGlzIGltcGVyYXRpdmUgdG8gZG8gc28gZ2l2ZW4gR0RQUiBjaGFuZ2VzLgo+ Cj4gQSBkZXZlbG9wZXIgSSBrbm93IHdobyByZWNlbnRseSBmaW5pc2hlZCBhIHRocmVlIG1vbnRo IGludGVuc2l2ZSBjb3Vyc2Ugb24KPiB0aGUgd2ViIGFkdmlzZWQgdGhlcmUgd2FzIG5vIGNvdmVy YWdlIG9mIHJlZmVyZXIsIHdoaWNoIG1hdGNoZXMgbXkgQ1MKPiBkZWdyZWUgZXhwZXJpZW5jZSBv dmVyIGEgZGVjYWRlIGFnby4gVGhpcyBpc24ndCBhIG9uZS1vZmYgdG8gbWUsIEkgaGF2ZSBtZXQK PiBtYW55IGRldmVsb3BlcnMgd2hvIGRvbid0IHVuZGVyc3RhbmQgdGhlIHJpc2sgb3IgZXZlbiBo YXZlIG1pc2NvbmNlcHRpb25zCj4gYWJvdXQgaG93IGl0IHdvcmtzIChsaWtlIHRoaW5raW5nIGl0 J3Mgbm90IHNlbnQgb24gaHR0cHMgc2l0ZXMpLiBIb3dldmVyCj4gdGhpcyBkZXZlbG9wZXIgZGlk IHNheSB0aGUgY291cnNlIHVzZWQgTUROIHRvIHRlYWNoIGFib3V0IHRoZSB3ZWIgZmVhdHVyZXMK PiBhbmQgdGhpcyBtYXRjaGVzIG15IGRldmVsb3BtZW50IGV4cGVyaWVuY2UsIE1ETiBpcyB2ZXJ5 IG11Y2ggcmVzcGVjdGVkIGJ5Cj4gdGhlIERldiBjb21tdW5pdHkuIEl0IG1heSB3ZWxsIGJlIHRo ZSBjYXNlIE1ETiBoYXMgYSBncmVhdGVyIG1hcmtldCBzaGFyZQo+IGluIHRoZSBEZXYgY29tbXVu aXR5IGFzIGFuIGVkdWNhdGlvbmFsIHJlc291cmNlLCB0aGFuIEZpcmVmb3ggZG9lcyB3aXRoCj4g Y29uc3VtZXJzIGFzIGEgYnJvd3Nlci4KPgo+IFRoZSBNb3ppbGxhIHNlY3VyaXR5IGJsb2cgaGFz IGJlZW4gbXVsdGlwbGUgcmVmZXJlbmNlcyB0byByZWZlcmVycyBvdmVyIHRoZQo+IHllYXJzLCBi dXQgbW9zdCBwZW9wbGUgYXJlIHN0aWxsIGhhdmluZyB0aGVpciBicm93c2VyIGhpc3RvcnkgZGlz dHJpYnV0ZWQKPiBwaWVjZW1lYWwgYnkgaXQuIEJyb3dzZXJzIHN0aWxsIGRvbid0IHByb3RlY3Qg cmVmZXJlcnMgYnkgZGVmYXVsdCBhbmQgZXZlbgo+IGlmIHRoYXQgY2hhbmdlZCB0b21vcnJvdyBp dCBtaWdodCBiZSA1LTEwIHllYXJzIGJlZm9yZSBldmVyeW9uZSB1cGdyYWRlcwo+IHRoZWlyIHZh cmlvdXMgZGV2aWNlcy4KPgo+IGh0dHBzOi8vYmxvZy5tb3ppbGxhLm9yZy9zZWN1cml0eS8yMDE1 LzAxLzIxL21ldGEtcmVmZXJyZXIvCj4KPiBodHRwczovL2Jsb2cubW96aWxsYS5vcmcvc2VjdXJp dHkvMjAxOC8xMC8wMi9zdXBwb3J0aW5nLXJlZmVycmVyLXBvbGljeS1mb3ItY3NzLWluLWZpcmVm b3gtNjQvCj4KPiBodHRwczovL2Jsb2cubW96aWxsYS5vcmcvc2VjdXJpdHkvMjAxOC8wMS8zMS9w cmV2ZW50aW5nLWRhdGEtbGVha3MtYnktc3RyaXBwaW5nLXBhdGgtaW5mb3JtYXRpb24taW4taHR0 cC1yZWZlcnJlcnMvCj4KPiBXaXRoIEdEUFIsIHRoZSBydWxlcyBjaGFuZ2VkIGFuZCBhcmUgYmVp bmcgY29waWVkIGluIG90aGVyIGp1cmlzZGljdGlvbnMuCj4gQnVzaW5lc3NlcyBtdXN0IGhhdmUg YWNjb3VudGFiaWxpdHkgYW5kIHByaXZhY3kgYnkgZGVmYXVsdCwgc28gcmVmZXJlciBpcwo+IGlu IGNvbmZsaWN0IHdpdGggbG9jYWwgbGVnaXNsYXRpb24gbm90IGp1c3QgYmVjYXVzZSBwcml2YWN5 IG9yIHNlY3VyaXR5Cj4gYnJlYWNoZXMgbWF5IGhhdmUgaGFwcGVuZWQsIGJ1dCBwcmltYXJpbHkg YmVjYXVzZSBhIGJ1c2luZXNzIGhhcyB0byBhc3Nlc3MsCj4gZG9jdW1lbnQgYW5kIGRlY2lkZSBv biB0aGUgcmlza3Mgb2Ygd2hpY2ggc3lzdGVtcyBnZXQgZGF0YSBhYm91dCBhIHVzZXIgb2YKPiB0 aGVpciBzaXRlcy4gUHJvZmlsaW5nIG9mIHVzZXJzLCBtYWRlIHBvc3NpYmxlIGJ5IHJlZmVyZXJz IGJ5IGRlZmF1bHQsIHdhcwo+IG9uZSBvZiB0aGUgbW90aXZlcyBmb3IgR0RQUiBzbyBpcyByaWdo dGx5IHBhcnQgb2YgcmVndWxhdG9ycyBpbnZlc3RpZ2F0aW9ucwo+IG5vdywgYnV0IEknbSBub3Qg c3VyZSB0aGUgcmVndWxhdG9ycyByZWFsaXNlZCB0aGF0IHRoZSB0ZWNobmljYWwgZmVhdHVyZSBh dAo+IHRoZSBjZW50cmUgb2YgaXQgaXMgdGhlIHJlZmVyZXIgYW5kIGhvdyBicm9rZW4gdGhlIHdl YiBpcyBmb3IgcHJpdmFjeS4KPiBUcmFja2luZyBwaXhlbHMgYXJlIGFuIGltYWdlLCBhIGNvb2tp ZSBhbmQgcmVmZXJlcnMuLi4gVGhlIGNvb2tpZXMgaGF2ZQo+IGxvbmcgYmVlbiBwYXJ0IG9mIGRh dGEgcHJvdGVjdGlvbiBkaXNjdXNzaW9ucyBhbmQgbGF3cywgeWV0IHlvdSBjYW4gcHJvZmlsZQo+ IHNvbWVvbmUgd2l0aG91dCBhIGNvb2tpZSAoSVAgYWRkcmVzcykgeW91IGNhbid0IGRvIGl0IHdp dGhvdXQgdGhlIHJlZmVyZXIKPiAodW5sZXNzIGV4cGxpY2l0bHkgYWRkIHRoZSBzYW1lIGZ1bmN0 aW9uYWxpdHkgYnkgY29kZSB0byB0aGUgdXJsLCBhdCB3aGljaAo+IHBvaW50IGl0IGlzIGFuIGV4 cGxpY2l0IGFjdCBhbmQgY2FuIGJlIGp1c3RpZmllZCBieSB0aGUgYXV0aG9yKS4gTWFueQo+IHBs YWNlcyBzaG91bGRuJ3QgZ2V0IGEgcmVmZXJlciwgbGlrZSBDRE5zLiBNb3N0IENETnMgbmVlZCB0 byBrbm93IHdobyB0bwo+IGNoYXJnZSAoQVBJIGtleT8pIG5vdCBhIGZ1bGwgcmVmZXJlci4KPgo+ IENoaW5hIGlzIHZlcnkgaW50ZXJlc3RpbmcsIHRoZSBoZWFkbGluZXMgYXJlbid0IG5lY2Vzc2Fy aWx5IGZpbmVzIGZvciBkYXRhCj4gcHJvdGVjdGlvbiB2aW9sYXRpb25zIGJ1dCBvdmVyIDExMDAw IGFycmVzdHMuIEhvdyBtYW55IG9mIHRob3NlIGFyZSB3ZWIKPiBkZXZlbG9wZXJzIG9yIGRpcmVj dG9ycyBvZiBjb21wYW5pZXMgYmVjYXVzZSBvZiB0aGVpciB3ZWJzaXRlPyBIb3cgbWFueQo+IHdp bGwgaXQgYmUgaW4gdGhlIGZ1dHVyZSBhcyByZWd1bGF0b3JzIHJlYWxpc2UgaXQncyBub3QgdGhl IGFkIGNvbXBhbmllcwo+IHRoYXQgc3RlYWwgdGhpcyBkYXRhLCBidXQgaXQncyBnaXZlbiBhd2F5 IGJ5IHdlYnNpdGVzIHByb3RlY3RpbmcgdXNlcnMKPiByZWZlcmVycz8KPgo+IGh0dHBzOi8vYXNp YS5uaWtrZWkuY29tL0J1c2luZXNzL0J1c2luZXNzLVRyZW5kcy9DaGluYS1zLXN0cmljdC1uZXct Y3liZXJzZWN1cml0eS1sYXctZW5zbmFyZXMtSmFwYW5lc2UtY29tcGFuaWVzCj4gLgo+Cj4gVUsg aGFzIGNyaW1pbmFsIHByb3NlY3V0aW9uIG9wdGlvbnMgaW4gaXRzIGRhdGEgcHJvdGVjdGlvbiBs YXdzIGFuZCBJIGhvcGUKPiB0aGF0IHRob3NlIGluIHRoZSBVSyByZXNwb25zaWJsZSBmb3Iga2Vl cGluZyB0cmFja2luZyBvbiB0aGUgTkhTIHdlYnNpdGUKPiBmYWNlIGNyaW1pbmFsIHByb3NlY3V0 aW9uICh0aGV5IGhhZCBhbXBsZSB3YXJuaW5nIGdpdmVuIGl0IGhpdCB0aGUgbmV3cyBpbgo+IDIw MTApLCBidXQgd2hhdCBpcyBvZnRlbiBhbWF6aW5nIGluIHJhaXNpbmcgY29tcGxhaW50cyAod2hp Y2ggSSd2ZSBiZWVuCj4gZG9pbmcgZm9yIHllYXJzIG5vdyByZWxhdGluZyB0byByZWZlcmVyIGxl YWtzKSBpcyBob3cgb2Z0ZW4gSSdtIGFkdmlzZWQgYnkKPiBjb21wYW5pZXMgdGhleSBkb24ndCBz ZW5kIHBlcnNvbmFsIGRhdGEsIGV2ZW4gd2hlbiB0aGV5IGxvYWQgdHJhY2tpbmcgb24KPiBtZW1i ZXJzaGlwIHBhZ2VzIG9yIHNpbWlsYXIgdGhhdCBnaXZlIGF3YXkgZGF0YSB0aGF0IG1pZ2h0IHB1 dCBsaXZlcyBhdAo+IHJpc2sgaW4gdGhlIHdyb25nIGhhbmRzICh2YXJpb3VzIFVLIHBvbGl0aWNh bCBwYXJ0aWVzIGhhdmUgYSBoaXN0b3J5IG9mCj4gYmVpbmcgdGFyZ2V0ZWQgYnkgdGVycm9yaXNt IGFuZCB0aGV5IHNlbnQgdGhlaXIgbWVtYmVyc2hpcCBsaXN0cyB0byBhZAo+IGNvbXBhbmllcyBi eSBsb2FkaW5nIHRyYWNraW5nIG9uIG1lbWJlcnMgb25seSBhcmVhcywgSSd2ZSBiZWVuIGFkdmlz ZWQgYnkgYQo+IG1ham9yIFVLIHBvbGl0aWNhbCBwYXJ0eSB0aGF0IHRoZXkncmUgdW5kZXIgaW52 ZXN0aWdhdGlvbiBmb3IgdHJhY2tpbmcpLgo+Cj4gRm9yIGFueW9uZSBoYW5kcyBvbiB3aXRoIHBy aXZhY3kgaW1wYWN0IGFzc2Vzc21lbnRzLCB5b3UnbGwga25vdyB5b3UgaGF2ZQo+IHRvIGRvY3Vt ZW50IHdoaWNoIHN5c3RlbXMgYW5kIHRoaXJkIHBhcnRpZXMgZ2V0IHBlcnNvbmFsIGRhdGEgYW5k IGEgdXNlcidzCj4gYnJvd3NpbmcgaGFiaXRzIGxpbmtlZCB0byBqdXN0IGFuIElQIGFkZHJlc3Ms IG5ldmVybWluZCBjb29raWVzLCBpcwo+IHBlcnNvbmFsIGRhdGEgKG1vc3Qgb2YgdXMgaGF2aW5n IHJlbGF0aXZlbHkgbG9uZyBsaXZlZCBJUCBhZGRyZXNzZXMsIGV2ZW4KPiB3aGVuIG5vdCBzdGF0 aWMsIGxpa2UgdGhvc2UgdW5pcXVlIHRvIG91ciBtb2JpbGUgZGV2aWNlIG9yIGZhbWlseQo+IGlu dGVybmV0KS4gSWYgZGV2ZWxvcGVycyBhcmVuJ3QgdGhpbmtpbmcgYWJvdXQgcmVmZXJlcnMsIHRo ZXkncmUgbm90Cj4gY29tcGxldGluZyB0aGVpciBwcml2YWN5IGltcGFjdCBhc3Nlc3NtZW50cyBw cm9wZXJseSBvciBhZHZpc2luZyB0aGVpciBkYXRhCj4gcHJvdGVjdGlvbiBvZmZpY2VyL21hbmFn ZW1lbnQgcHJvcGVybHkgYWJvdXQgdGhpcmQgcGFydGllcyB0aGF0IG1heSBiZQo+IGFkZGVkIG91 dHNpZGUgb2YgRGV2IHdvcmtmbG93cy4gQnkgbm90IGRvaW5nIHRoaXMgd29yayB0aGV5J3JlIHVu bGlrZWx5IHRvCj4gYmVpbmcgcHJpdmF0ZSBieSBkZWZhdWx0L2Rlc2lnbi4uLnRoZXkncmUgbGlr ZWx5IGJyZWFjaGluZyBHRFBSIGFuZAo+IHNpbWlsYXIuCj4KPiBJJ20gcmVhbGx5IGFwcGFsbGVk IGF0IENocmlzIGZvciB0ZWFyaW5nIGRvd24gdGhpcyB3YXJuaW5nLCBidXQgbGVzcyBzbyBvZgo+ IE1vemlsbGEgaWYgaXQncyBqdXN0IGEgY291cGxlIG9mIGd1eXMgd2hvIHRoaW5rIHByZXNlbnRh dGlvbiBpcyBtb3JlCj4gaW1wb3J0YW50IHRoYW4gcHJpdmFjeSBhbmQgc2VjdXJpdHkuIFdoaWNo IGlzIGl0PyBDYW4geW91IGhlbHAgZml4IHRoaXMKPiBtZXNzLiBXaGF0ZXZlciB3ZWIgYnJvd3Nl cnMgZG8gYWJvdXQgcmVmZXJlcnMsIGF0IGxlYXN0IG1ha2UgaXQgYSBwcmlvcml0eQo+IHRvIHRl bGwgd2ViIGRldmVsb3BlcnMgc28gdGhleSBjYW4gcHJvdGVjdCB1c2VycyBpbnN0ZWFkLgo+Cj4g UmVnYXJkaW5nIHRoZSBzZWN1cml0eSBhc3BlY3QsIHBsZWFzZSBsb29rIGF0IGhvdyBtYW55IHdl YnNpdGVzIHlvdSB1c2UgaW4KPiB5b3VyIHBhc3N3b3JkIG1hbmFnZXIgYW5kIHN0YXJ0IHJlc2V0 dGluZyB5b3VyIHBhc3N3b3Jkcy4gWW91IG1pZ2h0IGJlCj4gYW1hemVkIGF0IGhvdyBtYW55IGFk IGNvbXBhbmllcyBnZXQgdG9rZW5zIHRvIHRha2Ugb3ZlciB1c2VyIGFjY291bnRzLCBob3cKPiBs b25nIGxpdmVkIHRoZXkgYXJlIGFuZCBob3cgbWFueSBhcmUgcmUtdXNhYmFsZSBmb3IgZGF5cy4u IE9uZSBmaW5hbmNlCj4gY29tcGFueSBhZHZpc2VkIG1lIDUlIG9mIHRoZWlyIHJlc2V0IHBhc3N3 b3JkIHJlcXVlc3RzIGludm9sdmVkIG11bHRpcGxlCj4gSVBzIGFzIHVzZXJzIGRpZG4ndCBjb21w bGV0ZSB0aGUgZmlyc3QgYXR0ZW1wdCBhbmQgaG9wZWZ1bGx5IGp1c3QgY2hhbmdlZAo+IGRldmlj ZSBvciBuZXR3b3JrLiBNZWFud2hpbGUgVVJMcyBhcmUgb2Z0ZW4gYSBwbGFjZSBvZiBzZWN1cml0 eSBmYWlsaW5ncwo+IGxpa2UganNlc3Npb25pZCBpbiB0aGUgVVJMIG9yIGV2ZW4gdXNlcm5hbWVz IGFuZCBwYXNzd29yZHMgZm9yIHN0YXJ0dXBzIHdobwo+IGFjY2lkZW50YWxseSB1c2UgR0VUIGlu c3RlYWQgb2YgUE9TVCBmb3IgYSBmb3JtIG9yIGp1c3QgdXNlcnMgd2hvIHR5cGUgYQo+IHBhc3N3 b3JkIGFuZCBwcmVzcyBlbnRlci4gVGhlIHNoYXJpbmcgbGluayBwcm9ibGVtIGhpdCBEcm9wYm94 IHByZXZpb3VzbHkKPiB3aGVyZSBpZiB5b3Ugb3BlbmVkIGNvbnRlbnQgaW4gRHJvcGJveCB0aGF0 IGluY2x1ZGVkIGEgbGluayB0byBhIHRoaXJkCj4gcGFydHksIHRoYXQgdGhpcmQgcGFydHkgd2Fz IHNlbnQgdGhlIHJlZmVyZXIgKHRoZSBzaGFyZSBsaW5rKQo+IGh0dHBzOi8vd3d3LmdyYWhhbWNs dWxleS5jb20vZHJvcGJveC12dWxuZXJhYmlsaXR5LXByaXZhY3kvCj4gRHJvcGJveCBoYXZlIGhv cGVmdWxseSBmaXhlZCB0aGlzLCBidXQgd2hhdCB3aWxsIHRoZSBuZXh0IHBvcHVsYXIgdXNlcgo+ IGNvbnRlbnQgc2l0ZSBkbz8gV2Uga2VlcCByZXBlYXRpbmcgdGhlIHNhbWUgbWlzdGFrZXMgd2hl biBpdCBjb21lcyB0bwo+IHJlZmVyZXIgYW5kIGEgdmVyeSBvYnZpb3VzIHJlYXNvbiBmb3IgcmVw ZWF0aW5nIGEgbWlzdGFrZSBpbiBhIGNvbW11bml0eSBpcwo+IGEgbGFjayBvZiBlZHVjYXRpb24g YWJvdXQgaG93IGVhc3kgaXQgaXMgdG8gbWFrZSB0aGF0IG1pc3Rha2UuCj4KPiBSZWdhcmRzCj4g TWFyawo+Cj4KPgo+Cj4gLS0tLS0tLS0tLSBGb3J3YXJkZWQgbWVzc2FnZSAtLS0tLS0tLS0KPiBG cm9tOiBNYXJrIFJpY2hhcmRzIDxtYXJrLmFsYW4ucmljaGFyZHNAZ21haWwuY29tPgo+IERhdGU6 IEZyaSwgNSBPY3QgMjAxOCwgMTM6MjUKPiBTdWJqZWN0OiBSZTogRWRpdHMgdG8gPGE+IGFuZCA8 aW1nPiBwYWdlcyBvbiBNRE4KPiBUbzogPGluY2x1c2lvbkBtb3ppbGxhLmNvbT4sIENocmlzIE1p bGxzIDxjbWlsbHNAbW96aWxsYS5jb20+Cj4gQ2M6IEdlb2ZmIFdoaXRlIDxnZW9mZkBnd2hpdGUu aW5mbz4sIDxjYXNld29ya0BpY28ub3JnLnVrPiwgQ3VzdG9tZXIKPiBDb250YWN0IENlbnRyZSA8 Y29uc3VtZXIucXVlcmllc0BmY2Eub3JnLnVrPgo+Cj4KPiBDaHJpcywKPgo+IFdoYXQgaXMgd3Jv bmcgd2l0aCB0aGUgYWN0aW9uIG9mIHRyeWluZyB0byBwcm90ZWN0IHVzZXJzPwo+IFdoeSBkbyB5 b3UgcGVyY2VpdmUgdGhhdCBhY3Rpb24gYXMgd3Jvbmc/Cj4KPiBJJ3ZlIGV4cGxhaW5lZCBteSBh dHRpdHVkZSBhbmQgdGhlIGNvbnRlbnQsIGhhcyBhbHdheXMgYmVlbiB0byBwcm90ZWN0Cj4gcGVv cGxlLiBUaGUgY29udGVudCBoYXMga2VwdCB0byB0aGF0IG5hcnJhdGl2ZSBhbmQgSSBkb24ndCBu ZWVkIHRvIHdyaXRlIGFuCj4gZXNzYXkgdG8ganVzdGlmeSBhbnl0aGluZyBtb3JlIHRoYW4gaXMg b2J2aW91cyBmcm9tIHdoYXQgSSd2ZSB3cml0dGVuLiBZb3VyCj4gcXVlc3Rpb25zIGFyZSBub3Qg YSByZXF1aXJlbWVudCBmb3Igb3RoZXIgY29udHJpYnV0b3JzIGFuZCBJJ20gbm90IHN1cmUKPiB3 aGF0IHlvdSBhcmUgdHJ5aW5nIHRvIG1vZGVyYXRlIGJ5IG1lIGFuc3dlcmluZyB0aGVtPyBEbyB5 b3Ugd2FudCB0bwo+IG1vZGVyYXRlIHdoYXQga2luZHMgb2YgcGVvcGxlIGNhbiBjb250cmlidXRl IG9yIGp1c3Qgd2hldGhlciB0aGVpcgo+IGNvbnRyaWJ1dGlvbnMgYXJlIGFwcHJvcHJpYXRlPwo+ Cj4gSWYgTW96aWxsYSdzIHBvc2l0aW9uIGlzIHRoYXQgYW55b25lIHdobyB0dXJucyB0byByZWd1 bGF0b3JzIGFuZAo+IGpvdXJuYWxpc3RzIHRvIHJhaXNlIGF3YXJlbmVzcyBvZiBhbiBpc3N1ZSBz aG91bGQgYmUgYmFubmVkIGZyb20KPiB2b2x1bnRlZXJpbmcgdGhlaXIgdGltZSwgdGhlbiBJIHRo aW5rIHRoZSByZWd1bGF0b3JzIHNob3VsZCBpbnZlc3RpZ2F0ZQo+IHdoZXRoZXIgdGhpcyBicmVh Y2hlcyBsYXdzIGZvciBwcm90ZWN0aW5nIGRpc2Nsb3N1cmUgaW4gdGhlIHB1YmxpYwo+IGludGVy ZXN0LiBPcmdhbmlzYXRpb25zIGFyZSBub3Qgc3VwcG9zZWQgdG8gcHVuaXNoIGluZGl2aWR1YWxz IGZvciB0aGUgYWN0Cj4gb2YgaW52b2x2aW5nIHJlZ3VsYXRvcnMgYW5kIHlvdXIganVzdGlmaWNh dGlvbiBmb3IgYmFubmluZyBtZSBhcHBlYXJzIHRvIGJlCj4gYmFzZWQgaW4gcGFydCBvbiB0aGUg Y2xhaW0gSSd2ZSAidGhyZWF0ZW5lZCIgYnkgaW52b2x2aW5nIHRoZW0uIFNvcnJ5LCBidXQKPiB3 aGF0ZXZlciB0aHJlYXQgeW91IHBlcmNlaXZlLCBpdCdzIGp1c3RpZmllZC4gTGlrZSB3aGVuIHNv bWVvbmUgY2FsbHMgdGhlCj4gcG9saWNlLCBpZiB0aGV5IHNwb3Qgc29tZXRoaW5nIHdyb25nIGFu ZCB0aGV5IGRvbid0IGhhdmUgY29udHJvbCBvdmVyIGl0Li4uCj4gVGhleSBpbnZvbHZlIGF1dGhv cml0aWVzIHRoYXQgY2FuIHByb3RlY3Qgb3RoZXJzIG9yIHJlYWN0LiBZb3UgZG9uJ3QgYXBwZWFy Cj4gdG8gcmVjb2duaXNlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYmVpbmcgY2hhbGxlbmdlZCBh bmQgYmVpbmcKPiB0aHJlYXRlbmVkLi4uIEl0J3Mgbm90IG5pY2UgdG8gYmUgb24gdGhlIHJlY2Vp dmluZyBlbmQsIGJ1dCB0aGF0IGRvZXNuJ3QKPiBqdXN0aWZ5IHBlbmFsaXNpbmcgdGhlIHBlcnNv biB3aG8gY2hhbGxlbmdlZCB5b3UuCj4KPiBSZWdhcmRpbmcgeW91ciBtb2RlcmF0aW5nLi4KPiBN dWx0aXBsZSBwZW9wbGUgaGF2ZSB0cmllZCB0byBwdXQgdGhlIHdhcm5pbmcgb24gdGhlIHdlYiBk b2NzIGFuZCB5b3UndmUKPiB0b3JuIGl0IGRvd24uIE1vemlsbGEgaXMgc3VwcG9zZWQgdG8gYmUg YSBjb21tdW5pdHkgZHJpdmVuIHByb2plY3QsIHlldAo+IHlvdSd2ZSBzaHVubmVkIHRoZSBjb21t dW5pdHkuIERvIHRoaW5rIEkgbWlzbGVkIHRob3NlIHVzZXJzIG9yIGRvIHlvdSB0aGluawo+IEkg ZXhwbGFpbmVkIHRoZSBzaXR1YXRpb24gaG9uZXN0bHkgYW5kIHRoZXkgd2VyZSBhcHBhbGxlZCB0 b28/Cj4KPiBMZXQncyBiZSBjbGVhci4uLgo+Cj4gSWYgYSB0ZWFjaGVyIHNob3dzIGtpZHMgaG93 IHRvIHVzZSBzY2lzc29ycyBhbmQgZG9lc24ndCB0ZWxsIHRoZW0gdGhlCj4gZGFuZ2VycyBvZiBz aGFycCBvYmplY3RzLCBub3QgdG8gcnVuIHdpdGggdGhlbSwgaG93IHRvIGhvbGQgdGhlbSBzYWZl bHksCj4gZXRjIHVudGlsIGFuIG9wdGlvbmFsIGZ1cnRoZXIgbGVzc29uLCBJJ2QgaG9wZSB0aGV5 IGNvdWxkIGJlIGphaWxlZCBpZiBtYWRlCj4gYXdhcmUgb2YgdGhlIGVycm9yIG9mIHRoZWlyIHdh eXMgYW5kIHRvbGQgb2YgbnVtZXJvdXMgaW5jaWRlbnRzIGFscmVhZHksCj4gdGhleSBjb250aW51 ZSByZWdhcmRsZXNzLgo+Cj4gWW91IHRvIG1lIGFyZSBsaWtlIHRoYXQgdGVhY2hlci4uLiBZb3Ug YXJlIHRlYWNoaW5nIHdlYiBkZXZlbG9wZXJzIGhvdyB0bwo+IGNyZWF0ZSB3ZWJzaXRlcywgd2l0 aG91dCBleHBsYWluaW5nIHRoYXQgYnkgZGVmYXVsdCB0aGV5IHdpbGwgYnJlYWsgdGhlIGxhdwo+ IGluIG1hbnkgY291bnRyaWVzIGFuZCBtb3JlIGltcG9ydGFudGx5LCB0aGV5J2xsIGJlIGJyZWFj aGluZyB1c2VyIHByaXZhY3kKPiB3aGljaCBpcyBhIGh1bWFuIHJpZ2h0IGJleW9uZCB3aGV0aGVy IGxvY2FsIGxhd3MgaGF2ZSBjYXVnaHQgdXAuCj4KPiBZb3VyIGFjdGlvbnMgYW5kIGF0dGl0dWRl IHN1Z2dlc3QgeW91IGNhbm5vdCBiZSByZWFzb25lZCB3aXRoLiBZb3UgcmVmdXNlCj4gdG8gYWNr bm93bGVkZ2UgdGhlIGNvbmZsaWN0IHdpdGggc29jaWFsIG5vcm1zIGFuZCB0aGF0IG5vIHJlYXNv bmFibGUgcGVyc29uCj4gY2FuIGFjY2VwdCB5b3VyIGRlbGV0aW9uIG9mIHRoZSB3YXJuaW5nLiBO b2JvZHkgaW4gdGhlaXIgcmlnaHQgbWluZCB0YWtlcwo+IGRvd24gYSB3YXJuaW5nIHNpZ24gd2hl biB0aGVyZSBpcyBzaWduaWZpY2FudCBldmlkZW5jZSB0aGF0IHBlb3BsZSBuZWVkIGl0Cj4gYW5k IGFyZSBzdWZmZXJpbmcuCj4KPiBCaWxsaW9ucyBvZiBwZW9wbGUgYXJlIGJlaW5nIHN1cnZlaWxs ZWQgYnkgdGhlIGFkIGluZHVzdHJ5LCB0aGVyZSBpcyBhbgo+IGluY3JlZGlibGUgaW52YXNpb24g b2YgcHJpdmFjeSBhdCB0aGUgY2VudHJlIG9mIHRoZSBSZWZlcmVyIGxlYWtpbmcgdXNlcnMKPiB3 ZWIgaGlzdG9yeS4gV2hhdGV2ZXIgcGVvcGxlIGNhbXBhaWduIGFib3V0IGNoYW5naW5nIHRoZSB3 ZWIsIE1vemlsbGEgYXMgYW4KPiBvcmdhbmlzYXRpb24gdGhhdCBtYWtlcyBhIHdlYiBicm93c2Vy IGFuZCBvZmZlcnMgZG9jdW1lbnRhdGlvbiBmb3Igd2ViCj4gZGV2ZWxvcGVycywgc2hvdWxkIG5v dCBiZSBkZWxldGluZyB3YXJuaW5ncyBvZiB0aGlzIGFuZCBpdCBwdXRzIGludG8KPiBxdWVzdGlv biBNb3ppbGxhJ3MgcHVycG9zZSwgYXMgaXQncyBhIG5vdCBmb3IgcHJvZml0LCBvYmxpZ2VkIHRv IGFjdCBmb3IKPiB0aGUgcHVibGljIGJlbmVmaXQsIHRoaXMgYXBwZWFycyB0byBiZSBhbiBpbnRl bnQgdG8gcHV0IHBlb3BsZSBpbiBoYXJtcwo+IHdheS4KPgo+IEFnYWluLCBwbGVhc2UgdGFrZSBh IHN0ZXAgYmFjayBhbmQgY29uc2lkZXIgdGhpcyBmcm9tIHRoZSBwb3NpdGlvbiBvZgo+IHNvbWVv bmUgd2hvIGhhcyByZWFsaXNlZCBob3cgc2lnbmlmaWNhbnQgdGhlIGhhcm0gb2YgdGhlIHJlZmVy ZXIgaXMsIHRvb2sKPiB0aGUgdGltZSB0byBhZGQgYSB3YXJuaW5nIHRvIHByb3RlY3Qgb3RoZXJz IGFuZCBoYWQgaXQgdGFrZW4gZG93bi4KPgo+IFJlZ2FyZHMKPiBNYXJrCj4KPgo+Cj4KPiBPbiBU aHUsIDI3IFNlcCAyMDE4IGF0IDEyOjEzLCBDaHJpcyBNaWxscyA8Y21pbGxzQG1vemlsbGEuY29t PiB3cm90ZToKPgo+ID4gSGkgTWFyaywKPiA+Cj4gPiBJIGdldCB5b3VyIGZpcnN0IHBvaW50IGhl cmUuIFRoZSB0cm91YmxlIGhvd2V2ZXIgd2l0aCBzdWNoIHNpdHVhdGlvbnMgaXMKPiA+IHRoYXQg dGhlIGludGVudCBkb2VzbuKAmXQgcmVhbGx5IG1hdHRlciBpZiBob3cgb3RoZXJzIHBlcmNlaXZl IHlvdXIgYWN0aW9ucwo+ID4gY29tZXMgb3V0IHdyb25nbHkvYmFkbHkuCj4gPgo+ID4gWWVzLCB3 ZSBhcmUgYSBjb21tdW5pdHkgc2l0ZSwgYW5kIHdlIHNwZW5kIGEgbG90IG9mIHRpbWUgbWVudG9y aW5nCj4gPiBjb21tdW5pdHkgbWVtYmVycywgaGVscGluZyB0aGVtIGdldCBjb250ZW50IHVwIG9u bGluZSwgc2V0dGxpbmcgZGlzcHV0ZXMsCj4gPiBldGMuIEJ1dCBvbmUga2V5IGZlYXR1cmUgb2Yg YSBjb21tdW5pdHkgaXMgdGhhdCB0aGVyZSBhcmUgbW9kZXJhdG9ycywgYW5kCj4gPiBpZiBhIG1v ZGVyYXRvciBhc2tzIHlvdSB0byBzdG9wIGRvaW5nIHNvbWV0aGluZywgdGhleSBwcm9iYWJseSBo YXZlIGEKPiBnb29kCj4gPiByZWFzb24gZm9yIGRvaW5nIHNvLiBGcm9tIHRoZSBtb2RlcmF0b3Li gJlzIHBvaW50IG9mIHZpZXcsIGl0IGlzIGEgcmVhbCByZWQKPiA+IGZsYWcgaWYgYSBuZXcgY29t bXVuaXR5IG1lbWJlciBpcyBhc2tlZCB0byBzdG9wIGRvaW5nIHNvbWV0aGluZywgYW5kIHRoZXkK PiA+IHJlc3BvbmQgYnkgaWdub3JpbmcgeW91IGFuZCBzZW5kaW5nIHlvdSBsb25nLCBhZ2dyZXNz aXZlIG1haWxzIHRoYXQgYXJlCj4gPiBwZXJjZWl2ZWQgYXMgc2hvdXR5IGFuZCB0aHJlYXRlbmlu Zy4gSSBiYW5uZWQgeW91IGJlY2F1c2UgSSBob25lc3RseQo+IGRpZG7igJl0Cj4gPiBmZWVsIHRo ZXJlIHdhcyBhbnkgb3RoZXIgd2F5IGZvcndhcmQuIEkgZGlkbuKAmXQgYmVsaWV2ZSB0aGF0IHJl YXNvbmluZwo+IHdpdGgKPiA+IHlvdSB3b3VsZCB3b3JrIGJlY2F1c2UgeW91IHNlZW1lZCB1bnJl YXNvbmFibGUsIGluIHRoZSBsaXRlcmFsIHNlbnNlIG9mCj4gdGhlCj4gPiB3b3JkLgo+ID4KPiA+ IEkgYWxzbyBhY2tub3dsZWRnZSB0aGF0IHlvdSBkaWRu4oCZdCBkaXJlY3RseSB0aHJlYXRlbiBh bnlvbmUsIGJ1dCBzZXZlcmFsCj4gPiB0aW1lcyB5b3UgdXNlZCBwcm9zZSBhbG9uZyB0aW1lIGxp bmVzIG9mIOKAnGFsbCBvZiB0aGVzZSBiYWQgdGhpbmdzIHdpbGwKPiA+IGJlZmFsbCBwZW9wbGUg d2hvIHJlYWQgeW91ciBwYWdlcyBpZiBJIGRvbuKAmXQgZ2V0IG15IHdheeKAnSwgd2hpY2ggZG9l cyBjb21lCj4gPiBhY3Jvc3MgYXMgdGhyZWF0ZW5pbmcsIGFsYmVpdCBpbmRpcmVjdGx5LiBBbmQg Y2PigJlpbmcgcmVndWxhdG9yeSBib2RpZXMKPiBhbmQKPiA+IGpvdXJuYWxpc3RzIG9uIHRoZSBt YWlsIHNlcnZlcyB0byBtYWtlIHVzIGZlZWwgYnVsbGllZCwgbGlrZSBhIHdpdGNoCj4gaHVudC4K PiA+IEFnYWluLCB0aGlzIGlzbuKAmXQgZ29pbmcgdG8gbWFrZSB1cyBtb3JlIGxpa2VseSB0byBs aXN0ZW4gdG8geW91ciBwb2ludCBvZgo+ID4gdmlldy4KPiA+Cj4gPiBBbnl3YXksIHdlIGNvdWxk IGFyZ3VlIGFib3V0IHRoZSBtaW51dGlhZSBvZiBvdXIgaW50ZXJhY3Rpb25zIGFsbCBkYXkKPiA+ IGxvbmcsIGJ1dCBpdCB3b3VsZCBwcm9iYWJseSBiZSBtb3JlIHByb2R1Y3RpdmUgdG8gZHJhdyBh IGxpbmUgaW4gdGhlIHNhbmQKPiA+IGFuZCBkbyBiZXR0ZXIgZ29pbmcgZm9yd2FyZC4KPiA+Cj4g PiAtLS0tLS0KPiA+Cj4gPiBJIG5vdyBiZWxpZXZlIHdlIGNhbiBtYWtlIHNvbWUgcHJvZ3Jlc3Mg 4oCUIGluIHRoaXMgbGFzdCBtYWlsIHlvdSBoYXZlCj4gc2hvd24KPiA+IHNvbWUgZW1wYXRoeSB0 b3dhcmRzIG91ciBzaXR1YXRpb24uIEnigJlkIGxpa2UgdG8gYWZmb3JkIHlvdSB0aGUgc2FtZSBn b29kCj4gPiB0cmVhdG1lbnQsIGFuZCBzYXkgc29ycnkgaWYgb3VyIGFjdGlvbnMgY2FtZSBhY3Jv c3MgYXMgYWdncmVzc2l2ZS4gSSBhbHNvCj4gPiBiZWxpZXZlIHRoYXQgeW91IGhhdmUgZ29vZCBp bnRlbnRpb25zIOKAlCB5b3Ugd2FudCB0byBjb250cmlidXRlIHRvIGEgbW9yZQo+ID4gc2VjdXJl LCBwcml2YWN5LWF3YXJlIHdlYiwgYW5kIEkgdGhpbmsgeW91IHNob3VsZCBiZSBhcHBsYXVkZWQg Zm9yIHRoYXQuCj4gSQo+ID4gYWdyZWUgd2l0aCBtYW55IG9mIHlvdXIgcG9pbnRzOyBJ4oCZdmUg YmVlbiBhIHdlYiBkZXZlbG9wZXIgYW5kIHRlY2ggd3JpdGVyCj4gPiBmb3IgMjAgeWVhcnMsIGFu ZCB1bmRlcnN0YW5kIG1hbnkgb2YgdGhlIGlzc3VlcyB5b3UgaGlnaGxpZ2h0IGhlcmUuIEkKPiB0 aGluawo+ID4gd2UgYm90aCB3YW50IGEgbG90IG9mIHRoZSBzYW1lIHRoaW5ncywgYW5kIGNhbiBo ZWxwIGVhY2ggb3RoZXIsIHByb3ZpZGVkCj4gd2UKPiA+IGNhbiBjb21wcm9taXNlIHRvIGZpbmQg YSBtaWRkbGUgZ3JvdW5kIHRoYXQgbWFrZXMgeW91IGhhcHB5IGJ1dCBhbHNvCj4gd29ya3MKPiA+ IHdpdGggb3VyIGNvbnRlbnQgc3RyYXRlZ3kuCj4gPgo+ID4gSeKAmG0gaGFwcHkgdG8gdW5iYW4g eW91IGlmIEkgY2FuIGdldCB5b3VyIGFncmVlbWVudCB0aGF0IHlvdeKAmWxsIGxpc3RlbiB0bwo+ ID4gb3VyIG1vZGVyYXRvcnMgYW5kIHJlc3BlY3Qgb3VyIHdpc2hlcywgYW5kIGVuZ2FnZSBpbiBj b25zdHJ1Y3RpdmUKPiA+IGRpc2N1c3Npb24gYWJvdXQgcHJvc3BlY3RpdmUgY29udGVudC4KPiA+ Cj4gPiBJ4oCZZCBhbHNvIGxpa2UgeW91IHRvIGFuc3dlciBhIHF1ZXN0aW9uIGZvciBtZSDigJQg d2hhdCB3b3VsZCB5b3UgbGlrZSB0bwo+IHNlZQo+ID4gaW4gdGVybXMgb2YgTUROIGNvbnRlbnQg Z29pbmcgZm9yd2FyZD8gR2l2ZSBtZSBhIGhpZ2ggbGV2ZWwgZGVzY3JpcHRpb24sCj4gPiBub3Qg dG9vIG11Y2ggZGV0YWlsIGF0IHRoaXMgc3RhZ2UuCj4gPgo+ID4gVGhpbmdzIHdlIGNhbiBkbzoK PiA+Cj4gPiAqIEFkZCBtb3JlIGNvbnRlbnQgYWJvdXQgc2VjdXJpdHkvcHJpdmFjeSBiZXN0IHBy YWN0aWNlcyByZWxhdGVkIHRvIGZyb250Cj4gPiBlbmQgd2ViIGRldi4gV2UgYXJlIGEgd2ViIGRl dmVsb3BtZW50IHR1dG9yaWFsIHNpdGUsIGFuZCB0aGlzIGlzCj4gZGVmaW5pdGVseQo+ID4gaW4g b3VyIHJlbWl0Lgo+ID4gKiBBZGQgd2FybmluZ3MgaW4gYSB0YXN0ZWZ1bCB3YXkgdGhhdCB3b3Jr cyBmb3Igb3VyIGNvbnRlbnQgc3RyYXRlZ3kuIFdlCj4gPiBoYXZlIGEgcGxhbiBmb3IgdGhlIG5l YXIgZnV0dXJlIHRvIGFkZCBhIGR5bmFtaWNhbGx5LWNvbnN0cnVjdGVkIGJhbm5lcgo+IGF0Cj4g PiB0aGUgdG9wIG9mIHJlZmVyZW5jZSBwYWdlcyB0aGF0IGhpZ2hsaWdodHMgY29uY2VybnMgd2l0 aCB0aGF0IHdlYgo+IGZlYXR1cmUsCj4gPiBlLmcuIHByaXZhY3ksIHNlY3VyaXR5LCBhY2Nlc3Np YmlsaXR5LCBwZXJmb3JtYW5jZeKApgo+ID4gKiBBZGQgYWRkaXRpb25hbCBTZWN1cml0eSBhbmQg cHJpdmFjeSBjb25jZXJucyBzZWN0aW9ucyB0byBvdGhlciBwYWdlcwo+ID4gdGhhdCBuZWVkIGl0 LiBJIGFtIHZlcnkgaW50ZXJlc3RlZCBpbiBwcm92aWRpbmcgc3VjaCBpbmZvcm1hdGlvbi4KPiA+ Cj4gPiBUaGluZ3Mgd2UgY2Fu4oCZdCBkbzoKPiA+Cj4gPiAqIFByb3ZpZGUgZXh0ZW5zaXZlIHJl Z3VsYXRvcnkvcG9saWN5L2xlZ2FsIGFkdmljZS4gVGhpcyBpcyBhIG1pbmVmaWVsZAo+ID4gdGhh dCB3ZSBkbyBub3QgaGF2ZSB0aGUgdGltZSBvciBrbm93bGVkZ2UgdG8gd2FsayB0aHJvdWdoLgo+ ID4gKiBDaGFuZ2UgdGhlIHdlYiBwbGF0Zm9ybS4gSSBhbSBub3QgZ29pbmcgdG8sIGZvciBleGFt cGxlLCBoZWxwIHdpdGggYQo+ID4gY2FtcGFpZ24gaW5zaWRlIE1vemlsbGEgdG8gZ2V0IHJpZCBv ZiB0aGUgUmVmZXJyZXIgaGVhZGVyLCBvciBtYWtlIGl0Cj4gbGVhawo+ID4gbm8gZGF0YSBieSBk ZWZhdWx0LiBJZiBNb3ppbGxhIGRpZCB0aGF0LCBsb3RzIG9mIGh1Z2Ugc2l0ZXMgdGhhdCByZWx5 IG9uCj4gPiB0cmFja2luZywgZXRjLiBmb3IgdGhlaXIgYnVzaW5lc3MgbW9kZWwgd291bGQgYmxv Y2sgRmlyZWZveCwgdGhlbiB3ZeKAmWQKPiBsb3NlCj4gPiBvdXIgbWFya2V0IHNoYXJlIGFuZCB0 aGVyZeKAmWQgYmUgbm8gRmlyZWZveCBhdCBhbGwuIFN1Y2ggZGlzY3Vzc2lvbnMgd291bGQKPiA+ IGhhdmUgdG8gc3RhcnQgb24gYSBXM0MgbGV2ZWwuIEl04oCZcyB0aGUgdWdseSB0cnV0aC4gSSBo YXRlIGl0IGFzIG11Y2ggYXMKPiB5b3UKPiA+IGRvLCBiZWxpZXZlIG1lLgo+ID4gKiBBZGQgbG90 cyBvZiByYW5kb20gcmVkIGJhbm5lcnMgZXZlcnl3aGVyZS4gSWYgd2UgZGlkIHRoaXMgZm9yIGV2 ZXJ5Cj4gPiBkaWZmZXJlbnQgcGVyc29uIHdobyBjYW1lIGFsb25nIGFuZCB3YW50ZWQgcmVkIGJh bm5lcnMgdG8gc3VwcG9ydCB0aGVpcgo+ID4gY2hvc2VuIGNhdXNlLCBNRE4gd291bGQgYmUgYSBj b21wbGV0ZSBtZXNzLCBhbmQgbm8tb25lIHdvdWxkIHRha2UgaXQKPiA+IHNlcmlvdXNseS4gV2Ug aGF2ZSBsb3RzIG9mIGV2aWRlbmNlIHRvIHN1cHBvcnQgdGhlIG5vdGlvbiB0aGF0IHNjYXJ5Cj4g PiBiYW5uZXJzIGRvbuKAmXQgcmVhbGx5IG1ha2UgbXVjaCBkaWZmZXJlbnQgYXQgYWxsIOKAlCBl c3RhYmxpc2hlZCB3ZWIgZGV2cwo+IHRlbmQKPiA+IHRvIGp1bXAgYXJvdW5kIGFuZCB1c2Ugc3Bl Y2lmaWMgaXRlbXMgaW4gcmVmZXJlbmNlIHBhZ2VzLCBzdWNoIGFzIHRoZQo+IGNvZGUKPiA+IGV4 YW1wbGUsIG9yIHRoZSBjb21wYXQgZGF0YS4gVGhleSB0ZW5kIHRvIGlnbm9yZSBzdWNoIGJhbm5l cnMuIEJlZ2lubmVycwo+IG9uCj4gPiB0aGUgb3RoZXIgaGFuZCBhcmUgbW9yZSBsaWtlbHkgdG8g cmVhZCB0aGUgV2hvbGUgcGFnZSBidXQgcHJvYmFibHkgd29u4oCZdAo+ID4gcmVhbGx5IGdldCBp dCBvciB3aHkgaXTigJlzIGltcG9ydGFudCwgYW5kIGJlIHB1dCBvZmYgYnkgaXQuIFRoZXkgbmVl ZCB0bwo+ID4ga25vdyB3aGF0IGFuIDxhPiBlbGVtZW50IGlzIGZpcnN0LCBiZWZvcmUgYmVpbmcg Ym9tYmFyZGVkIHdpdGggc2NhcnkKPiA+IHdhcm5pbmdzLiBXZSBuZWVkIGEgZGlmZmVyZW50IGFw cHJvYWNoLgo+ID4KPiA+IEJlc3QgcmVnYXJkcywKPiA+Cj4gPiAtLS0KPiA+Cj4gPiBDaHJpcyBN aWxscwo+ID4gTUROIGNvbnRlbnQgbGVhZCAmIHdyaXRlcnMnIHRlYW0gbWFuYWdlcgo+ID4gTURO IFdlYiBEb2NzCj4gPiBNb3ppbGxhCj4gPiBAY2hyaXNkYXZpZG1pbGxzCj4gPgo+ID4gT24gU2Vw IDI2LCAyMDE4LCBhdCA5OjM1IFBNLCBNYXJrIFJpY2hhcmRzIDxtYXJrLmFsYW4ucmljaGFyZHNA Z21haWwuY29tCj4gPgo+ID4gd3JvdGU6Cj4gPgo+ID4gQ2hyaXMsCj4gPgo+ID4gWW91J3JlIG1p eGluZyB1cCBwcm90ZXN0IHdpdGggaW5hcHByb3ByaWF0ZSBhZ2dyZXNzaXZlIGJlaGF2aW91ci4K PiA+Cj4gPiBUaGUgdHdvIGFyZSBkaWZmZXJlbnQgYW5kIHdoaWxzdCBwcm90ZXN0IGlzIGFnZ3Jl c3NpdmUsIGl0IGlzIGEgd2FycmFudGVkCj4gPiBmb3JtIG9mIGV4cHJlc3Npb24sIHR5cGljYWxs eSBwcm90ZWN0ZWQgYnkgbGF3LiBJIGhhdmUgbm90IGV4cHJlc3NlZCBhbnkKPiA+IGFnZ3Jlc3Np b24gdGhhdCB3b3VsZCBzZWVrIHRvIGhhcm0geW91LiBQcm90ZXN0IGlzIG5vdCBhbiBlbmpveWFi bGUKPiA+IGV4cGVyaWVuY2UgdG8gYmUgb24gdGhlIHJlY2VpdmluZyBzaWRlIG9mLCBzb3JyeSB0 byB5b3UgYW5kIFdpbGwgZm9yCj4gdGhpcy4KPiA+IEl0IGlzIG5vdCBlbmpveWFibGUgZm9yIG1l IHRvIGZlZWwgdGhpcyBpcyBhIG5lY2Vzc2FyeSBhY3QgYW5kIHlvdQo+IGVuZ2FnZWQKPiA+IGlu IHN0YXJ0aW5nIGEgcHJvdGVzdCBhZ2FpbnN0IG15IGFkZGl0aW9uIG9mIHRoZSB3YXJuaW5nLCBz byBJJ20gZ3Vlc3NpbmcKPiA+IHdlIHByb2JhYmx5IHNoYXJlIHNvbWUgIHNpbWlsYXIgZmVlbGlu Z3MgYWJvdXQgdGhpcyBzaXR1YXRpb24gYW5kIGdpdmVuIGEKPiA+IHBvc2l0aW9uIHJldmVyc2Fs IG1heWJlIEkgd291bGQgaGF2ZSBibG9ja2VkIHlvdS4KPiA+Cj4gPiBJJ3ZlIGJlZW4gYWN0aXZl IG9uIHRoZSBwcm9ibGVtIG9mIFJlZmVyZXJzIG9uIGFuZCBvZmYgZm9yIHRocmVlIHllYXJzLAo+ ID4gSSdtIG5vdCBzdG9wcGluZyB0b2RheS4gSSd2ZSBzZWVuIGVub3VnaCBkYXRhIGxvc3QgdG8g dGhpcmQgcGFydGllcyBhbmQKPiBub3QKPiA+IGp1c3QgcmVzZXQgcGFzc3dvcmQgbGlua3MsIGJ1 dCBzZXNzaW9uIGxvZ2luIHRva2VucyB0aGF0IGV4cGlyZWQgYWZ0ZXIgYQo+ID4geWVhciBhbmQg dXNlcm5hbWVzIGFuZCBwYXNzd29yZHMgdXNlZCBpbiBmb3JtIEdFVCByZXF1ZXN0cyAoZGVmYXVs dAo+ID4gYmVoYXZpb3VyIG9mIGEgZm9ybSBpcyBhIEdFVCBhbmQgbm9ib2R5IHNob3VsZCB1c2Ug dGhpcywgYW5vdGhlciBwcm9ibGVtCj4gPiB3aXRoIGJyb3dzZXJzIGZyb20gcmV0YWluaW5nIDE5 OTBzIGRlc2lnbiwgYnV0IGlmIGEgc2l0ZSB1c2VzIEphdmFTY3JpcHQKPiB0bwo+ID4gcHJvY2Vz cyB0aGUgZm9ybSB0aGUgRGV2IGNhbiBzd2FwIHRvIGFuIEFqYXggcG9zdCwgYnV0IGlmIHRoZSBk ZXZlbG9wZXIKPiA+IGlzbid0IGRlZmVuc2l2ZSBpbiBzZXR0aW5nIHRoZSBtZXRob2QgYW55d2F5 IHRvIHBvc3Qgb3IgcHV0LCB0aGVuIHdoZW4KPiB0aGUKPiA+IHNjcmlwdCBmYWlscyB0byBsb2Fk IGluIHRpbWUgb3IgYmVjYXVzZSBvZiBhIG5ldHdvcmsgZmFpbHVyZSAod2hpY2ggaXNuJ3QKPiA+ IHVubGlrZWx5IG9uIG1vYmlsZXMpIHRoZW4gdGhlIGJyb3dzZXIgd2lsbCBieSBkZWZhdWx0IHBl cmZvcm0gYSBHRVQgYW5kCj4gPiBsZWFrIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgdG8gdGhp cmQgcGFydGllcyB0cmFja2luZyB0aGUgc2FtZSBwYWdlLi4uCj4gPiBIYWQgdGhlIHNjcmlwdCBs b2FkZWQgaXQgd291bGQgaGF2ZSBvdmVyd3JpdHRlbiB0aGUgYmVoYXZpb3VyLi4gdGhpcyBpcwo+ ID4gbW9yZSBjb21tb24gdGhhdCB5b3UgbWlnaHQgaGF2ZSB0aG91Z2h0LiBJdCdzIG5vdCBqdXN0 IHNjcmlwdHMgbm90Cj4gbG9hZGluZwo+ID4gZWl0aGVyLCBpZiB0aGUgc2NyaXB0IGhpdHMgYW4g ZXhjZXB0aW9uIGJlZm9yZSBjaGFuZ2luZyB0aGUgZGVmYXVsdAo+ID4gYmVoYXZpb3VyIG9mIHRo ZSBmb3JtLCB0aGUgZm9ybSB3aWxsIHJlbWFpbiBpbiB0aGUgR0VUIGRlZmF1bHQsIHNvIGlmIHRo ZQo+ID4gZm9ybSB2YWxpZGF0aW9uIGxvZ2ljIGhpdHMgc29tZXRoaW5nIHVuZXhwZWN0ZWQsIGl0 IG1pZ2h0IG5vdCBnZXQgYXJvdW5kCj4gdG8KPiA+IGNoYW5naW5nIHRoZSBzdWJtaXNzaW9uIGJl aGF2aW91cikuCj4gPgo+ID4gUGxlYXNlIGRvbid0IGZpZ2h0IHRvIGhpZGUgdGhpcyB3YXJuaW5n IGFzIGEgZm9vdG5vdGUgZGV2ZWxvcGVycyBtaWdodAo+ID4gZmluZC4gSSdtIG5vdCB0aGUgb25s eSBvbmUgd2hvIGNhcmVzIGFib3V0IHRoaXMgYW5kIEkgaG9wZSBvdGhlcnMgcHJvdGVzdAo+ID4g dG9vIGFib3V0IE1vemlsbGEgcmVtb3ZpbmcgdGhpcyB3YXJuaW5nLiBJIGFtIGxpa2VseSBvbmUg b2YgdGhlIG1pbm9yaXR5Cj4gb2YKPiA+IGRldmVsb3BlcnMgd2hvIGdvZXMgb3V0IG9mIHRoZWly IHdheSB0byByZXNlYXJjaCB0aGlzIHRvcGljIGFuZCBJIHdvdWxkCj4gPiBlbmNvdXJhZ2UgeW91 IHRvIHRyeSBzb21lIHJlc2VhcmNoLgo+ID4KPiA+IE1heWhlIHVzZSB0aGUgd2ViIGFuZCBjaGVj ayB3aGF0IHJlZmVyZXJzIHlvdSBjYW4gZmluZCBsZWFrZWQgYW5kIHRvCj4gd2hvbS4KPiA+IFlv dSBjYW4gcHJvYmFibHkgdHVybiBvbiBoYXIgZGF0YSBsb2dnaW5nIGluIEZpcmVmb3gsIGNodWNr IGl0IGludG8gYQo+IEpTT04KPiA+IGZpbGUgb3ZlciBhIGZldyBtb250aHMgYW5kIHRoZW4gcGFy c2UgdGhhdCBpbnRvIGEgZGF0YWJhc2UsIG1heWJlIEVsYXN0aWMKPiA+IFNlYXJjaCBhbmQgc2Vh cmNoIGZvciB3aG8gZ290IHlvdXIgZW1haWwsIHdobyBrbm93cyB3aGljaCB3ZWJzaXRlcyB5b3UK PiA+IHZpc2l0ZWQsIGRpZCBhbnlvbmUgZ2V0IGEgcGFzc3dvcmQsIGV0Yy4gWW91J2xsIG5lZWQg dG8gZG8gdGhpcyB3aXRob3V0Cj4gYW55Cj4gPiBwcml2YWN5IHBsdWdpbnMgZW5hYmxlZCB0aGF0 IG1pZ2h0IHN0b3AgdGhpcmQgcGFydGllcyBsb2FkaW5nIG9yIGNoYW5naW5nCj4gPiByZWZlcmVy cy4gU2FkbHkgdGhlIGJlc3QgcmVzZWFyY2ggY2FuIG9mdGVuIHB1dCB0aGUgcmVzZWFyY2hlciBh dCBzb21lCj4gPiByaXNrcywgc28gb25seSBkbyB0aGlzIGlmIHlvdSBhcmUgY29tZm9ydGFibGUg ZG9pbmcgaXQuCj4gPgo+ID4gTWVhbndoaWxlLCBwbGVhc2UgdGFrZSBhIHN0ZXAgYmFjayBhbmQg bG9vayBhdCB0aGlzIGFnYWluLgo+ID4KPiA+IE5vdGU6IEkgZGlkIGFsc28gc3ltcGF0aGlzZSB3 aXRoIHlvdXIgcG9zaXRpb24gYWJvdXQgYSBib2xkIHJlZCB3YXJuaW5nCj4gPiBhbmQgd2hlbiB0 aGUgYmxvY2sgb2YgdGV4dCBJIHdyb3RlIG1vdmVkIGRvd24gdGhlIHBhZ2UsIEkgb25seSBwdXQg YQo+IHNtYWxsCj4gPiAxLTIgbGluZSB3YXJuaW5nLi4uIEkgd2FzIHRyeWluZyB0byBiZSByZXNw ZWN0ZnVsIG9mIHlvdXIgb3IgV2lsbCdzCj4gPiBwb3NpdGlvbiBhdCB0aGUgdGltZSBhbmQgc2lu Y2UgYXNrZWQgcmVwZWF0ZWRseSBpZiB5b3UgaGFkIGFueSBpZGVhcyB0bwo+ID4ga2VlcCBzb21l dGhpbmcgYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSB0aGF0IGFjaGlldmVzIHRoZSBzYW1lIGdvYWwu IFRvCj4gd2hpY2gKPiA+IHlvdSBib3RoIGp1c3Qga2VwdCBkZWxldGluZyBpdCBhbmQgbGVkIHVz IHRvIHRoaXMgc3RhdGUuCj4gPgo+ID4gQmVzdAo+ID4gTWFyayBSaWNoYXJkcwo+ID4KPiA+Cj4g Pgo+ID4KPiA+Cj4gPgo+ID4gT24gV2VkLCAyNiBTZXAgMjAxOCwgMTc6NDUgQ2hyaXMgTWlsbHMs IDxjbWlsbHNAbW96aWxsYS5jb20+IHdyb3RlOgo+ID4KPiA+PiAocmVtb3ZpbmcgYWxsIHRoZSBv dGhlciBlLW1haWwgYWRkcmVzc2VzIHlvdSd2ZSBhdHRhY2hlZCB0byB0aGUgbWFpbCwgYXMKPiA+ PiBJIGRvbid0IGtub3cgdGhlc2UgcGVvcGxlIG9yIHRoZWlyIGludm9sdmVtZW50IGluIHRoaXMu IEFsc28gcmVtb3ZpbmcKPiBXaWxsLikKPiA+Pgo+ID4+IEhpIE1hcmssCj4gPj4KPiA+PiBJJ20g Q2hyaXMsIFdpbGwncyBtYW5hZ2VyLgo+ID4+Cj4gPj4gSSBzZWUgdGhhdCB5b3UndmUgYWdhaW4g aWdub3JlZCBvdXIgbXVsdGlwbGUgcmVxdWVzdHMgdG8gc3RvcCByZXZlcnRpbmcKPiA+PiBvdXIg Y2hhbmdlcy4gWW91J3ZlIGFsc28gc2VudCB1cyBtdWx0aXBsZSBlbWFpbHMgdGhhdCBoYXZlIGNv bWUgYWNyb3NzCj4gYXMKPiA+PiBhZ2dyZXNzaXZlIGFuZCBzb21ld2hhdCB0aHJlYXRlbmluZy4g QW5kIGFsbCBvZiB0aGlzIGFmdGVyIHdlIGhhdmUgdGFrZW4KPiA+PiBtdWx0aXBsZSBzdGVwcyB0 byBtZWV0IHlvdXIgY29udGVudCBkZW1hbmRzLCBidXQgaW4gYSB3YXkgdGhhdCB3b3JrcyBmb3IK PiA+PiBvdXIgY29udGVudCBzdHJhdGVneS4gSSB0aGVyZWZvcmUgaGF2ZSBubyBjaG9pY2UgYnV0 IHRvIGJhbiB5b3VyCj4gYWNjb3VudC4KPiA+Pgo+ID4+IFRoaXMgaXMgYSBzaGFtZSwgYW5kIG5v dCBzb21ldGhpbmcgSSBlbmpveSBkb2luZyBvciB0YWtlIGxpZ2h0bHkuIFdlCj4gPj4gYWdyZWUg d2l0aCBtYW55IG9mIHlvdXIgcG9pbnRzIG9mIHZpZXcsIGhvd2V2ZXIgd2UgYWxzbyBoYXZlIG91 ciBvd24KPiA+PiByZWFzb25zIGZvciB3b3JkaW5nIGFuZCBwcmVzZW50aW5nIGRvY3VtZW50YXRp b24gbGlrZSB3ZSBkbywgYW5kIHdlIGhhdmUKPiA+PiB0aGUgdWx0aW1hdGUgc2F5IG9uIE1ETiBj b250ZW50IGRpc3B1dGVzLiBUaGlzIG11c3QgYmUgcmVzcGVjdGVkIGJlZm9yZQo+IHdlCj4gPj4g Y2FuIGVuZ2FnZSB3aXRoIGNvbnRyaWJ1dG9ycyBpbiBhIG1lYW5pbmdmdWwgd2F5Lgo+ID4+Cj4g Pj4gQmVzdCByZWdhcmRzLAo+ID4+Cj4gPj4gLS0tCj4gPj4KPiA+PiBDaHJpcyBNaWxscwo+ID4+ IE1ETiBjb250ZW50IGxlYWQgJiB3cml0ZXJzJyB0ZWFtIG1hbmFnZXIKPiA+PiBNRE4gV2ViIERv Y3MKPiA+PiBNb3ppbGxhCj4gPj4gQGNocmlzZGF2aWRtaWxscwo+ID4+Cj4gPj4gT24gU2VwIDI1 LCAyMDE4LCBhdCAyOjQ1IEFNLCBNYXJrIFJpY2hhcmRzIDwKPiBtYXJrLmFsYW4ucmljaGFyZHNA Z21haWwuY29tPgo+ID4+IHdyb3RlOgo+ID4+Cj4gPj4gQ2hyaXMgYW5kIFdpbGxpYW0sCj4gPj4K PiA+PiBUaGlzIHBhZ2Ugd2lsbCBtaXNsZWFkIHdlYiBkZXZlbG9wZXJzLgo+ID4+Cj4gPj4KPiBo dHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9TZWN1cml0eS9SZWZl cmVyX2hlYWRlcjpfcHJpdmFjeV9hbmRfc2VjdXJpdHlfY29uY2VybnMKPiA+Pgo+ID4+IEkgZG9u J3Qgd2FudCB0byBpbXByb3ZlIGl0LCBiZWNhdXNlIHRoaXMgbmF0dXJlIG9mICBkb2N1bWVudCBz aG91bGQgYmUKPiA+PiBjZW50cmUgc3RhZ2Ugb2YgdGhlIFJlZmVyZXIgcGFnZQo+ID4+IGh0dHBz Oi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvSGVhZGVycy9SZWZl cmVyCj4gPj4KPiA+PiBUaGUgcmVmZXJlciB1bmV4cGVjdGVkbHkgKG1vc3QgdXNlcnMgZG9uJ3Qg a25vdyB0aGlzIGhhcHBlbnMsIGV2ZW4gYQo+ID4+IHN1cnByaXNpbmcgbnVtYmVyIGluIHRoZSB0 ZWNoIGNvbW11bml0eSBkb24ndCkgc2VuZHMgdGhlIHBhZ2UgeW91IGFyZQo+ID4+IGN1cnJlbnRs eSBvbiB0byB0aGUgdGFyZ2V0IHdoZW4gdGhlaXIgY29udGVudCBpcyBsb2FkZWQgb24gYSBwYWdl IChsaWtlCj4gYW4KPiA+PiBpbWFnZSkgb3Igd2hlbiB5b3UgZm9sbG93IGEgbGluayB0byB0aGVp ciBwYWdlLgo+ID4+Cj4gPj4gQnkgZGVzaWduIHRoaXMgaXMgYSBicmVhY2ggb2YgcHJpdmFjeSwg aWYgdGhlIHRhcmdldCBpcyBhIHRoaXJkIHBhcnR5Lgo+ID4+IFRoZXkgYXJlIGJlaW5nIHRvbGQg eW91IGFyZSBhIHVzZWQgb2YgdGhlIG9yaWdpbiB3ZWJzaXRlIGFuZCB0aGF0J3MKPiA+PiBwZXJz b25hbCBkYXRhIGFib3V0IHNvbWVvbmUncyBhY3Rpdml0aWVzLCBvZnRlbiBtYXBwZWQgdG8gYW4g YXBwcm94aW1hdGUKPiA+PiBpZGVudGl0eSAocHN1ZWRvbnltLCBJUCBhZGRyZXNzLCBldGMpIG9y IHJlYWwgaWRlbnRpdHkgKCBhIHVzZXIgYWNjb3VudAo+IG9uCj4gPj4gdGhlIHRhcmdldCkgYW5k IGFsbG93cyBmb3IgdGhpbmdzIGxpa2UgZGlzY3JpbWluYXRpb24uLiBjb21pbmcgZnJvbSBhCj4g Pj4gcmVsaWdpb3VzIHNpdGUgdG8gYSBzaG9wcGluZyBzaXRlIGFuZCB3aWxsIHRoZWlyIHN0b2Nr IHN0aWxsIGJlCj4gYXZhaWxhYmxlPwo+ID4+IFRoZXJlIGFyZSBpbm5vY2VudCB1c2UgY2FzZXMs IGJ1dCB5b3UncmUgbWlzcmVwcmVzZW50aW5nIHRoZW0uCj4gPj4KPiA+PiBPYnZpb3VzbHksIHRo ZSBpbnRlcm5ldCBpcyBmdWxsIG9mIGFkIHRyYWNraW5nIGFuZCB0aGlzIGlzIHRoZSBnbGFyaW5n bHkKPiA+PiBvYnZpb3VzIHByb2JsZW0gaGl0dGluZyBoZWFkbGluZXMgYWJvdXQgbGVnYWwgY2Fz ZXMgYW5kIHJlZ3VsYXRvcnkKPiBhY3Rpb24KPiA+PiBpbiB2YXJpb3VzIGNvdW50cmllcywgYnV0 IHdoYXQgeW91J3ZlIGRlc2NyaWJlZCBhcyAiaW5ub2NlbnQiIGxhcmdlbHkKPiBpc250Cj4gPj4g dG8gYmUgaWdub3JlZCBhbmQgaXQgaXMgdGhlIHJlYXNvbiB3aHkgSSB0aXRsZWQgdGhlIHNlY3Rp b24gb3JpZ2luYWxseQo+IGFzCj4gPj4gbm90IGp1c3QgYWJvdXQgcHJpdmFjeSBhbmQgc2VjdXJp dHksIGJ1dCByZWd1bGF0b3J5IGNvbmNlcm5zLiBJZiB0aGUKPiA+PiB0YXJnZXRpbmcgZGlzYXBw ZWFyZWQgdG9tb3Jyb3csIHRoaXMgd291bGQgc3RpbGwgbmVlZCB0byBiZSBhIGZlYXR1cmUKPiBh bGwKPiA+PiB3ZWIgZGV2ZWxvcGVycyBuZWVkIHRvIHVuZGVyc3RhbmQuCj4gPj4KPiA+PiBJZiBh IHdlYnNpdGUgdXNlcyBsb2dnaW5nLCBhbmFseXRpY3Mgb3IgY2FjaGUgb3B0aW1pemF0aW9uLCBm cm9tIGEgdGhpcmQKPiA+PiBwYXJ0eSwgd2hpY2ggaXMgb2Z0ZW4gdGhlIGNhc2UgdGhlc2UgZGF5 cywgaWYgdGhlIHdlYiBkZXZlbG9wZXIgZG9lcyBub3QKPiA+PiB1bmRlcnN0YW5kIHdoYXQgZGF0 YSB0aGUgdGhpcmQgcGFydGllcyBnZXQsIHRoZW4gdGhleSBtYXkgaGF2ZSBqdXN0IHB1dAo+ID4+ IHRoZWlyIGJ1c2luZXNzIGF0IHJpc2sgb2YgYnJlYWNoaW5nIHJlZ3VsYXRpb25zLCBsaWtlIHRo ZSBkYXRhCj4gcHJvdGVjdGlvbgo+ID4+IGxhd3MsIHdoaWNoIHJlcXVpcmUgYXBwcm9wcmlhdGUg Y29uc2lkZXJhdGlvbiBmb3IgY29uc2VudHMsCj4gYWNjb3VudGFiaWxpdHkKPiA+PiBhbmQgaW5j bHVzaW9uIGluIGRvY3VtZW50YXRpb24gdG8gdXNlcnMgYXMgcHJpdmFjeSBwb2xpY2llcy4KPiA+ Pgo+ID4+IFNvIHJlZ2FyZGxlc3Mgb2YgaG93IGlubm9jZW50IGFueSBvZiB0aGVzZSBzZXJ2aWNl cyBhcmUsIGRlZWxvcGVycyB3aWxsCj4gPj4gaGF2ZSBsZXQgZG93biB0aGVtc2VsdmVzLCB0aGVp ciBidXNpbmVzcyBhbmQgdGhlaXIgdXNlcnMsIHRvIGFuIGV4dGVudAo+IHRoYXQKPiA+PiBjb3Vs ZCByZXN1bHQgaW4gZmluZXMsIGxlZ2FsIGFjdGlvbiBhbmQgZGlzdHJlc3MsIGlmIHRoZXkgZmFp bCB0bwo+IHJlYWxpc2UKPiA+PiB0aGUgZXhhY3QgcGFnZSB1c2VycyBhcmUgdmlzaXRpbmcgaXMg c2hhcmVkIHdpdGggdGhlIHRhcmdldCBhbmQgdGFrZW4KPiA+PiBhcHByb3ByaWF0ZSBzdGVwcyB0 byBsZXQgdGhlIGJ1c2luZXNzIHVwZGF0ZSBjb25zZW50IGZsb3dzLCB1cGRhdGUgR0RQUgo+ID4+ IGltcGFjdCBhc3Nlc3NtZW50cywgcG9saWNpZXMsIHJpc2sgcmVnaXN0ZXJzIGFuZCBhbnl0aGlu ZyBlbHNlIHRoYXQKPiBtaWdodAo+ID4+IGJlIGEgZnVydGhlciByZXF1aXJlbWVudCBvZiBhbnkg aW5kdXN0cnkgc3BlY2lmaWMgcmVndWxhdGlvbiBmb3Igd2hlcmUKPiB0aGV5Cj4gPj4gbWF5IG9w ZXJhdGUgKGhlYWx0aCwgZmluYW5jZSwgZ292ZXJubWVudCwgbWlsaXRhcnkgY2xpbmljYWwgdHJp YWxzLCBldGMKPiBtYXkKPiA+PiB3ZWxsIHJlcXVpcmUgYWRkaXRpb25hbCBwcm9jZXNzZXMgYW5k IG91dHB1dHMgYmV5b25kIEdEUFIpLgo+ID4+Cj4gPj4gU28gdW5sZXNzIHlvdSB3YW50IGEgbG90 IG9mIGRhdGEgcHJvdGVjdGlvbiBvZmZpY2VycyBmYWNpbmcKPiA+PiBpbnZlc3RpZ2F0aW9ucywg YnVzaW5lc3NlcyBmYWNpbmcgZmluZXMgYW5kIHdlYiB1c2VycyBkaXN0cmVzc2VkLCBldmVuCj4g Pj4gY29uc2lkZXJpbmcgbGVnYWwgYWN0aW9ucyBhZ2FpbnN0IHdlYnNpdGVzLCBwbGVhc2UgZG9u J3QgcGxheSBkb3duIHRoZQo+ID4+IHNpZ25pZmljYW5jZSBvZiBtYW5hZ2luZyByZWZlcmVyIGhl YWRlcnMgcHJvcGVybHkuIEV2ZXJ5IHNpbmdsZSB3ZWIKPiA+PiBkZXZlbG9wZXIgbmVlZHMgdG8g a25vdyBhbmQgaXQgbWlnaHQgYmUgYWJvdXQgbmFzdHkgYWQgdHJhY2tpbmcsIGJ1dAo+ID4+IHRo ZXJlJ3MgYSBtdWNoIGJpZ2dlciByZWFzb24gd2h5IGV2ZXJ5IGRldmVsb3BlciBuZWVkcyB0byBr bm93IGFuZCBpdAo+IG1heQo+ID4+IGdldCB0aGVtIGZpcmVkLi4gYXMgZm9yIHRoZSB3aG9sZSBv ZiB0aGUgRVUsIHRoZXJlIGhhcyB0byBiZSBhbgo+ID4+IHVuZGVyc3RhbmRpbmcgYXMgcGFydCBv ZiBtZWV0aW5nIEdEUFIgYW5kIEVVIHByaXZhY3kgZGlyZWN0aXZlIGFuZAo+IHNpbWlsYXIKPiA+ PiByZWd1bGF0aW9ucyBhcmUgYmVpbmcgZHJhZnRlZCBvciBhbHJlYWR5IGV4aXN0IGluIHZhcmlv dXMgY291bnRyaWVzCj4gYXJvdW5kCj4gPj4gbXVjaCBvZiB0aGUgd29ybGQuCj4gPj4KPiA+PiBJ ZiB5b3UgZG9uJ3QgdW5kZXJzdGFuZCBteSBtb3RpdmVzIGZvciB0aGUgY2hhbmdlcyBJJ3ZlIG1h ZGUgb3IgZG9uJ3QKPiA+PiB1bmRlcnN0YW5kIHRoZSBicmVhZHRoIG9mIHdoeSBpdCBpcyBzbyBp bXBvcnRhbnQgdGhhdCBNb3ppbGxhIGVuc3VyZQo+IHRoZXJlCj4gPj4gaXMgYXBwcm9wcmlhdGUg Z3VpZGFuY2UgZm9yIHdlYiBkZXZlbG9wZXJzLCB0aGVuIGFjdHVhbGx5IHRhbGsgYWJvdXQgaXQK PiA+PiBpbnN0ZWFkIG9mIGp1c3QgZGVsZXRpbmcgc29tZW9uZSdzIHdvcmsgb3IgYW1lbmRpbmcg aXQgdG8gbGVzc2VuIHRoZQo+ID4+IHNpZ25pZmljYW5jZS4uLmFzayBtZSBxdWVzdGlvbnMgYXMg dG8gd2h5IEkndmUgd29yZGVkIHNvbWV0aGluZyB0aGlzCj4gd2F5LAo+ID4+IGl0IGlzIG5vdCB3 aXRoIG1hbGljZSwgaXQgaXMgdG8gaGVscCBwcm90ZWN0IHdlYiB1c2VycywgZGV2ZWxvcGVycyBh bmQKPiA+PiBidXNpbmVzc2VzLgo+ID4+Cj4gPj4gSSdtIHJlYWxseSBmcnVzdHJhdGVkIHRoYXQg TW96aWxsYSBoYXMgZmFpbGVkIG9uIHByaXZhY3kgc28KPiBzaWduaWZpY2FudGx5Cj4gPj4gZm9y IHNvIGxvbmcsIGJ1dCBJJ20gdHJ5aW5nIHRvIHBsYXkgYSBwb3NpdGl2ZSByb2xlIGluIGhlbHBp bmcgdG8KPiBpbXByb3ZlCj4gPj4gdGhhdCBieSB1cGRhdGluZyBkb2NzIHRvIGhlbHAgZGV2ZWxv cGVycyBhdm9pZCB0aGUgcHJpdmFjeSwgc2VjdXJpdHkgYW5kCj4gPj4gcmVndWxhdG9yeSBjb21w bGlhbmNlIGhvbGVzIGl0J3Mgc28gZWFzeSB0byBmYWxsIGludG8gd2hlbiBtYWtpbmcKPiB3ZWJz aXRlcy4KPiA+PiBJZiBicm93c2VycyBjb3VsZCByZW1vdmUgdGhvc2UgaG9sZXMsIGdyZWF0IGJ1 dCB1bnRpbCB0aGVuIHdlIG5lZWQgdGhlc2UKPiA+PiBkb2NzLgo+ID4+Cj4gPj4gWW91J3JlIHN1 cHBvc2VkIHRvIGNhcmUgYWJvdXQgcHJpdmFjeSB0b28sIHNvIHBsZWFzZSByZXNlYXJjaCBhbmQK PiA+PiB1bmRlcnN0YW5kIHRoZSBwcm9ibGVtIGZ1bGx5LiBSZWFkIHRoZSBJQ08gZ3VpZGFuY2Ug b24gaW1wYWN0Cj4gYXNzZXNzbWVudHMsCj4gPj4gcHJpdmFjeSBwb2xpY2llcywgbWljcm90YXJn ZXRpbmcsIGNvbnNlbnQsIGFjY291bnRhYmlsaXR5LCBwcml2YWN5IGJ5Cj4gPj4gZGVzaWduIGFu ZCBkZWZhdWx0Li4uIFBsZWFzZSB1bmRlcnN0YW5kIHdoYXQgeW91IGFyZSByaXNraW5nIGJ5IHJl bW92aW5nCj4gPj4gdGhpcyBhbmQgd2h5IHdoYXQgbWF5IGFwcGVhciBhcyBhbiBpbm5vdmF0aXZl IHVzZSBjYXNlLCBpcyBhY3R1YWxseSBhCj4gPj4gdHJpZ2dlciBmb3IgYSBjaGFpbiBvZiBidXNp bmVzcyBwcm9jZXNzZXMgdG8gZW5zdXJlIHRoYXQgaXQgaXMgaW5ub2NlbnQKPiBhbmQKPiA+PiB0 aGUgYnVzaW5lc3MgY2FuIGFjY291bnQgZm9yIHRoYXQgdG8gaXRzIHVzZXJzIGFuZCByZWd1bGF0 b3JzLgo+ID4+Cj4gPj4gSSBhbSBncmF0ZWZ1bCB5b3UndmUgbWFkZSBhbiBlZmZvcnQgdG8ga2Vl cCBzb21lIG9mIHRoZSBpbnRlbnQgb2YgbXkKPiA+PiB3b3JrLCBidXQgSSdtIG5vdCBhdCBhbGwg aGFwcHkgYWJvdXQgdGhlIGF0dGl0dWRlIHNob3duIGhlcmUgYW5kIGl0IGRvZXMKPiA+PiBub3Qg aGVscCB0aGF0IHlvdSBkb24ndCBhcHBlYXIgdG8gdW5kZXJzdGFuZC4gSSBhc2tlZCBpbiBhIHBy ZXZpb3VzCj4gZW1haWwKPiA+PiB0byBnZXQgeW91ciBsZWdhbCB0ZWFtIGludm9sdmVkIGFuZCBj b3Jwb3JhdGUgc29jaWFsIHJlc3BvbnNpYmlsaXR5Cj4gdGVhbToKPiA+PiBub3QgYmVjYXVzZSBJ IHBsYW4gdG8gdGFrZSBsZWdhbCBhY3Rpb24gb3IgYXNrIGZvciBkb25hdGlvbnMuLi4gQnV0Cj4g YmVjYXVzZQo+ID4+IHRoZXkgaG9wZWZ1bGx5IGhhdmUgdGhlIGV4cGVydGlzZSB0byByZWFkIGlu dG8gdGhlIHJlZ3VsYXRvcnkgY29uY2VybnMKPiBhbmQKPiA+PiB0aGUgcHJpdmFjeSBpc3N1ZXMg cmFpc2VkIGFuZCBwbGF5IGEgcGFydCBpbiBpZGVudGlmeWluZyB0aGUgbmVlZCBmb3IKPiB0aGlz Cj4gPj4gZG9jdW1lbnRhdGlvbiBpbnN0ZWFkIG9mIHRocm93aW5nIGJ1c2luZXNzZXMgaW50byB0 aGUgbGluZSBvZiBmaXJlIG9mCj4gZGF0YQo+ID4+IHByb3RlY3Rpb24gbWlzaGFwcy4KPiA+Pgo+ ID4+IEJlc3QKPiA+PiBNYXJrIFJpY2hhcmRzCj4gPj4KPiA+Pgo+ID4+IE9uIE1vbiwgMjQgU2Vw IDIwMTgsIDIxOjIwIE1hcmsgUmljaGFyZHMsIDxtYXJrLmFsYW4ucmljaGFyZHNAZ21haWwuY29t Cj4gPgo+ID4+IHdyb3RlOgo+ID4+Cj4gPj4+IENocmlzLAo+ID4+Pgo+ID4+PiBJcyBpdCByZWFs bHkgbmVjZXNzYXJ5IHRvIGNvbnRpbnVlIHRvIHJlbW92ZSB0aGUgd2FybmluZz8KPiA+Pj4KPiA+ Pj4gSWYgeW91IHdhbGsgaW50byBhIGJ1aWxkaW5nIGFuZCB0aGUgdGlsZWQgZmxvb3IgaXMgd2V0 LCBwZW9wbGUgbWlnaHQKPiBnZXQKPiA+Pj4gaHVydCwgc28geW91IHB1dCBhIHNpZ24gdXAgYW5k IHlvdSB3YXJuIHRoZW0uIFlvdSBkb24ndCBzdGF0ZSwgImJ1dCB0aGUKPiA+Pj4gYnJpZ2h0IHll bGxvdyBzaWduIGRvZXNuJ3QgZml0IHdpdGggdGhlIGRlc2lnbiBvZiB0aGUgZWxlZ2FudCBoYWxs d2F5Igo+IC4uLgo+ID4+PiBzb3JyeSwgYnV0IHNvbWV0aW1lcyB0aGVyZSBhcmUgbW9yZSBpbXBv cnRhbnQgbWF0dGVycyB0aGFuIGRlc2lnbiBhbmQKPiB5b3UKPiA+Pj4gaGF2ZSB0byBsaXZlIHdp dGggaW5jb252ZW5pZW5jZSBiZWNhdXNlIGl0J3MgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvLgo+ID4+ Pgo+ID4+PiBJZiBhIGJyb3dzZXIgZmVhdHVyZSBieSBkZWZhdWx0LCBieSBkZXNpZ24sIGZ1bmN0 aW9ucyBpbiBhIG1hbm5lciB0aGF0Cj4gPj4+IGxlYWtzIHByaXZhdGUgZGF0YSAoc29tZXRoaW5n IHRoYXQgbGlrZWx5IHdhcyBub3QgYXMgb2J2aW91cyBhIGNvbmNlcm4KPiBpbgo+ID4+PiB3aGF0 IDE5OTYoPykgd2hlbiByZWZlcmVyIHdhcyBpbmNsdWRlZCBpbiB0aGUgSFRUUCBSRkMpIHRoZW4g c2hvdWxkbid0Cj4geW91Cj4gPj4+IHB1dCBhIHdhcm5pbmcgdXAgZmlyc3QsIGJlZm9yZSBtb3Jl IGRldmVsb3BlcnMgY2F1c2UgbW9yZSBoYXJtIHRvIHRoZQo+ID4+PiBwdWJsaWM/Cj4gPj4+Cj4g Pj4+IEl0IGlzIHdyb25nIHRvIHRha2UgdGhlIHNpZ24gZG93biBhbmQgbGVhdmUgYSBub3RlIHVw IHRvd2FyZHMgdGhlIGVuZAo+IG9mCj4gPj4+IHRoZSB0aWxlZCBmbG9vciwgbG9uZyBhZnRlciBt YW55IHdpbGwgaGF2ZSBhbHJlYWR5IGZhbGxlbiBvdmVyIHN0YXRpbmcKPiBiZQo+ID4+PiBjYXJl ZnVsLCBkZXRhaWxzIGluIGFub3RoZXIgcm9vbS4gU28gd2h5IGFyZSB5b3UgZG9pbmcgdGhpcz8K PiA+Pj4KPiA+Pj4gSSdtIHNvcnJ5IGl0J3Mgbm90IHByZXR0eSwgd2FybmluZyBzaWducyBhcmVu J3QgYW5kIEknbSBzdXJlIG1hbnkKPiA+Pj4gcHJvZHVjdHMgd2lzaGVkIHRoZXkgZGlkbid0IG5l ZWQgdG8gaW5jbHVkZSBzbW9raW5nIGtpbGxzLCBmbGFtbWFibGUsCj4gbm90Cj4gPj4+IHN1aXRh YmxlIGZvciBjaGlsZHJlbiwgaGVhdnkgbG9hZCwgLi4uIHdhcm5pbmdzLiBXaHkgaXMgaXQgb2th eSBmb3IKPiB0aGUgd2ViCj4gPj4+IHRvIG5vdCB3YXJuIHBlb3BsZSBmaXJzdCwgd2hlbiBldmVy eW9uZSBlbHNlIGhhcyB0bz8KPiA+Pj4KPiA+Pj4gQmVzdAo+ID4+PiBNYXJrIFJpY2hhcmRzCj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IE9uIFNhdCwgMjIgU2VwIDIw MTgsIDE1OjQ1IE1hcmsgUmljaGFyZHMsIDwKPiBtYXJrLmFsYW4ucmljaGFyZHNAZ21haWwuY29t Pgo+ID4+PiB3cm90ZToKPiA+Pj4KPiA+Pj4+IFdpbGxpYW0gcGxlYXNlIGNhbiB5b3UgaW52b2x2 ZSB5b3VyIGNvcnBvcmF0ZSBzb2NpYWwgcmVzcG9uc2liaWxpdHkgb3IKPiA+Pj4+IHNpbWlsYXIg ZGVwYXJ0bWVudCBhbmQgbGVnYWwgdGVhbS4KPiA+Pj4+Cj4gPj4+PiBJJ20gc29ycnksIGJ1dCBh Z2FpbiB0aGlzIGlzIG5vdCBhcHByb3ByaWF0ZS4KPiA+Pj4+Cj4gPj4+PiBJZiB5b3Ugbm93IGdv IHRvCj4gPj4+PiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9I VE1ML0VsZW1lbnQvYQo+ID4+Pj4KPiA+Pj4+IFlvdSBhcmUgZmlyc3QgdGF1Z2h0IGhvdyB0byBh YnVzZSBzb21lb25lJ3MgcHJpdmFjeSBieSB3cml0aW5nCj4gaW5zZWN1cmUKPiA+Pj4+IGNvZGUg dGhhdCBsZWFrcyByZWZlcmVycyBpZGVudGlmeWluZyB1c2VycyBvbmxpbmUgaGFiaXRzLgo+ID4+ Pj4KPiA+Pj4+IE9mIG1hbnkgY29tcGxhaW50cyB0byBkYXRhIHByb3RlY3Rpb24gb2ZmaWNlcnMg dGhpcyB5ZWFyLCBzaXR0aW5nIGluCj4gPj4+PiB0aGUgY2VudHJlIG9mIG15IGNvbXBsYWludCBp cyB0aGF0IHRoZSB3ZWJzaXRlIGlzIHNoYXJpbmcgdGhlIHBhZ2VzCj4gcGVvcGxlCj4gPj4+PiB2 aXNpdCwgc28gaGVhbHRoY2FyZSBvcmdhbml6YXRpb25zIGlkZW50aWZ5aW5nIHBlb3BsZSB3aG8g YXJlCj4gaW50ZXJlc3RlZCBpbgo+ID4+Pj4gSElWIHRvIGFkIGNvbXBhbmllcywgcG9saXRpY2Fs IHBhcnRpZXMgcmV2ZWFsaW5nIHRoZWlyIG1lbWJlcnNoaXAgdG8KPiBhZCBhbmQKPiA+Pj4+IGFu YWx5dGljcyBjb21wYW5pZXMsIGV2ZW4gYSByZWxpZ2lvdXMgc2l0ZSBpZGVudGlmeWluZyB3aG8g aW50ZW5kcyB0bwo+ID4+Pj4gcHJheS4uLiBUaGVzZSBhcmUgYWxsIHNlbnNpdGl2ZSBkYXRhLiBU aGUgcmVzZXQgcGFzc3dvcmQgY29uY2VybnMKPiBpbmNsdWRpbmcKPiA+Pj4+IHB1YmxpYyBoZWFs dGggc2l0ZXMgYW5kIGEgY3JlZGl0IHJlcG9ydCBjb21wYW55Lgo+ID4+Pj4KPiA+Pj4+IE9ubHkg aWYgeW91ciBoYWJpdCBpcyAgdG8gcmVhZCB0aGUgd2hvbGUgZG9jdW1lbnQsIGJleW9uZCB3aGF0 IHlvdQo+IG5lZWQKPiA+Pj4+IHRvIGdldCBzb21ldGhpbmcgd29ya2luZywgd291bGQgeW91IHRo ZW4gbGF0ZXIgZGlzY292ZXIgdGhhdCB0aGUKPiBkZWZhdWx0Cj4gPj4+PiBpbXBsZW1lbnRhdGlv biBvZiB3ZWIgbGlua3MgaXMgdG8gYnJlYWNoIHByaXZhY3kgYW5kIGluIHRvbyBtYW55IGNhc2Vz Cj4gPj4+PiBzZWN1cml0eS4KPiA+Pj4+Cj4gPj4+PiBTbywgeW91J3ZlIHJlcGVhdGVkIGV4YWN0 bHkgd2hhdCBJIGFza2VkIHlvdSBub3QgdG8gZG8gYW5kIGNvbnRpbnVlIHRvCj4gPj4+PiB0ZWFj aCB3ZWIgZGV2ZWxvcGVycyBob3cgdG8gYWJ1c2UgcGVvcGxlJ3MgcHJpdmFjeSBhbmQgc2VjdXJp dHkgYW5kCj4gbGVhdmUKPiA+Pj4+IHRoZW0gdG8gbWF5YmUgbGF0ZXIgZmluZCBvdXQgd2hhdCB0 aGV5IGdvdCB3cm9uZy4KPiA+Pj4+Cj4gPj4+PiBGb3IgYSBjb21wYW55IHRoYXQgY2xhaW1zIHRv IGNhcmUgYWJvdXQgcHJpdmFjeSwgeW91IHNlZW0gZGV0ZXJtaW5lZAo+IHRvCj4gPj4+PiBwdXQg cGVvcGxlIGluIGhhcm1zIHdheS4KPiA+Pj4+Cj4gPj4+PiBTbyBwbGVhc2UgdHJ5IGFnYWluIGFu ZCBzdG9wIGhpZGluZyB0aGUgZGVzaWduIGZhaWx1cmVzIGluIHlvdXIKPiBwcm9kdWN0Cj4gPj4+ PiB0byBwYWdlcyBwZW9wbGUgbWlnaHQgY2hhbmNlIG9uLCBub3QgbmVlZCB0byBzZWUuCj4gPj4+ Pgo+ID4+Pj4gUmVnYXJkcwo+ID4+Pj4KPiA+Pj4+IE1hcmsgUmljaGFyZHMKPiA+Pj4+Cj4gPj4+ Pgo+ID4+Pj4KPiA+Pj4+Cj4gPj4+PiBPbiBTYXQsIDIyIFNlcCAyMDE4LCAxNToyMiBXaWxsaWFt IEJhbWJlcmcsIDx3YmFtYmVyZ0Btb3ppbGxhLmNvbT4KPiA+Pj4+IHdyb3RlOgo+ID4+Pj4KPiA+ Pj4+PiBIaSBNYXJrCj4gPj4+Pj4KPiA+Pj4+PiBXZSd2ZSBkaXNjdXNzZWQgdGhpcyBpbnRlcm5h bGx5LCBhbmQgdGhpcyBpcyB3aGF0IHdlJ3JlIGdvaW5nIHRvIGRvOgo+ID4+Pj4+Cj4gPj4+Pj4g KiB3cml0ZSBhIHNlcGFyYXRlIHBhZ2Ugb3V0bGluaW5nIHNlY3VyaXR5IGFuZCBwcml2YWN5IGNv bmNlcm5zCj4gYXJvdW5kCj4gPj4+Pj4gdGhlIHJlZmVyZXIgaGVhZGVyLCBhbmQgbWl0aWdhdGlv bnMuIFdlJ3ZlIGRyYWZ0ZWQgc29tZSBjb250ZW50IGF0Cj4gPj4+Pj4KPiBodHRwczovL2RldmVs b3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9TZWN1cml0eS9SZWZlcmVyX2hlYWRlcjpf cHJpdmFjeV9hbmRfc2VjdXJpdHlfY29uY2VybnMKPiAuCj4gPj4+Pj4gV2UgdGhpbmsgdGhpcyBz aG91bGQgY29uY2VudHJhdGUgb24gdG9vbHMgYW5kIGRlc2lnbnMgYXZhaWxhYmxlIHRvCj4gY29t YmF0Cj4gPj4+Pj4gdGhlc2UgcHJvYmxlbXMgKHN1Y2ggYXMgdGhlIFJlZmVycmVyLVBvbGljeSBo ZWFkZXIsIGFuZCBtYWtpbmcKPiBwYXNzd29yZAo+ID4+Pj4+IHJlc2V0IFVSTHMgc2luZ2xlLXVz ZSkgcmF0aGVyIHRoYW4gb24gYXVkaXRpbmcgZXZlcnkgdGFyZ2V0Lgo+ID4+Pj4+Cj4gPj4+Pj4g KiBsaW5rIHRvIHRoaXMgcGFnZSBmcm9tIHJlbGV2YW50IHBhZ2VzLCBzdWNoIGFzIHRoZSBwYWdl IGZvciB0aGUgPGE+Cj4gPj4+Pj4gYW5kIDxpbWc+IGVsZW1lbnRzLgo+ID4+Pj4+Cj4gPj4+Pj4g V2UgZG9uJ3QgdGhpbmsgaXQncyBhcHByb3ByaWF0ZSB0byBoYXZlIGEgcmVkIHdhcm5pbmcgYmFu bmVyIGF0IHRoZQo+ID4+Pj4+IHRvcHMgb2YgdGhlIHBhZ2VzLiBUaGF0IGtpbmQgb2YgZGVzaWdu IGVsZW1lbnQgaXMgb25lIHdlIHRyeSB0bwo+IGF2b2lkIG9uCj4gPj4+Pj4gTUROIHVubGVzcyBp dCdzIGhpZ2hsaWdodGluZyB0aGUgdmVyeSBmaXJzdCB0aGluZyB5b3UgbmVlZCB0byBrbm93Cj4g YWJvdXQKPiA+Pj4+PiB0aGUgaXRlbSwgd2hpY2ggd2UgZG9uJ3QgdGhpbmsgaXQgaXMgaW4gdGhp cyBjYXNlLCBhbHRob3VnaCB3ZSBkbwo+ID4+Pj4+IGFwcHJlY2lhdGUgdGhhdCBpdCBpcyBpbXBv cnRhbnQuCj4gPj4+Pj4KPiA+Pj4+PiBUaGFua3MgZm9yIGJyaW5naW5nIHRoaXMgdXAuCj4gPj4+ Pj4KPiA+Pj4+PiBXaWxsCj4gPj4+Pj4KPiA+Pj4+Pgo+ID4+Pj4+IE9uIFNhdCwgU2VwIDE1LCAy MDE4IGF0IDc6NTAgUE0gTWFyayBSaWNoYXJkcyA8Cj4gPj4+Pj4gbWFyay5hbGFuLnJpY2hhcmRz QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPj4+Pj4KPiA+Pj4+Pj4gV2hlbiBhIGZlYXR1cmUncyBkZWZh dWx0IGltcGxlbWVudGF0aW9uIHB1dHMgcGVvcGxlIGluIGhhcm1zIHdheSwKPiA+Pj4+Pj4gdGhl biB1c2VycyBuZWVkIGEgd2FybmluZyB0byBwcm90ZWN0IHRoZW1zZWx2ZXMgYW5kIG90aGVycy4K PiA+Pj4+Pj4KPiA+Pj4+Pj4gSXMgaXQgTW96aWxsYSdzIHBvc2l0aW9uIHRvIHRlYWNoIHNvZnR3 YXJlIGRldmVsb3BlcnMgaG93IHRvIHVzZQo+ID4+Pj4+PiBmZWF0dXJlcyBpbiBhIG1hbm5lciB0 aGF0IGxlYWtzIGRhdGEsIGxlYXZpbmcgZGV0YWlscyBvZiBob3cgdG8KPiBhdm9pZCBpdCwKPiA+ Pj4+Pj4gdG93YXJkcyB0aGUgZW5kIG9mIGRvY3VtZW50YXRpb24sIHJhcmVseSB0byBiZSBmb3Vu ZD8KPiA+Pj4+Pj4KPiA+Pj4+Pj4gSSdtIGhhdmUgYmVlbiBhbmQgY3VycmVudGx5IGFtIGludm9s dmVkIGluIHZhcmlvdXMgY29tcGxhaW50cyB0bwo+ID4+Pj4+PiByZWd1bGF0b3JzIHJlZ2FyZGlu ZyBjb21wYW5pZXMgaW4gZmluYW5jZSwgaGVhbHRoLCBwb2xpdGljcyBhbmQKPiByZWxpZ2lvbgo+ ID4+Pj4+PiBhbGwgZGlzY2xvc2luZyBkYXRhIGJlY2F1c2Ugb2YgdGhlc2UgcHJpdmFjeSBhbmQg c2VjdXJpdHkgZmFpbGluZ3MuCj4gPj4+Pj4+Cj4gPj4+Pj4+IEluIHNvbWUgY2FzZXMgcHV0dGlu ZyBhY2NvdW50IHNlY3VyaXR5IGF0IHJpc2sgYWxsb3dpbmcgZm9yIGFjY2Vzcwo+IHRvCj4gPj4+ Pj4+IEludmVzdG1lbnRzIG9yIHRvIHRha2Ugb3V0IGxvYW5zIGluIHNvbWVvbmUncyBuYW1lIG9y IGRhdGEgdGhhdAo+IGNvdWxkCj4gPj4+Pj4+IGVhc2lseSBwdXQgc29tZSBwZW9wbGUgZWFzaWx5 IGluIGhhcm1zIHdheSBpbiB0aGUgd3JvbmcgaGFuZHMuCj4gPj4+Pj4+Cj4gPj4+Pj4+IEkgZG8g bm90IG1pbmQgaWYgeW91IGhhdmUgYW4gaW5ub3ZhdGl2ZSBzdWdnZXN0aW9uIHRoYXQgZWR1Y2F0 ZXMKPiA+Pj4+Pj4gZGV2ZWxvcGVycyBhYm91dCBob3cgdG8gcHJvdGVjdCBwcml2YWN5IHdoZW4g dXNpbmcgdGhlc2UgZmVhdHVyZXMsCj4gYnV0Cj4gPj4+Pj4+IHVudGlsIHRoZW4gaXQgc2VlbXMg YXBwcm9wcmlhdGUgdG8gY29uc2lkZXIgbGVuZ3RocyBhcyBmYXIgYXMgdGhlCj4gInNtb2tpbmcK PiA+Pj4+Pj4ga2lsbHMiIHN0eWxlIHdhcm5pbmdzIG9uIGNpZ2FyZXR0ZSBwYWNrYWdpbmcsIHRv IHRoZSBkb2N1bWVudGF0aW9uCj4gZm9yIHRoZQo+ID4+Pj4+PiB3ZWJzaXRlLi4uIEkndmUgbm90 IGdvbmUgdGhhdCBmYXIuCj4gPj4+Pj4+Cj4gPj4+Pj4+IFNvIGRvIHlvdSBjYXJlIGFib3V0IHBy aXZhY3kgb3IgZG8geW91IHdhbnQgdG8gdGVhY2ggdGhlIG5leHQKPiA+Pj4+Pj4gZ2VuZXJhdGlv biBvZiB3ZWIgZGV2ZWxvcGVycyBob3cgdG8gY3JlYXRlIHdlYnNpdGVzIHRoYXQgcHV0IHBlb3Bs ZQo+IGF0IHJpc2s/Cj4gPj4+Pj4+Cj4gPj4+Pj4+IElmIHlvdSBoYXZlIGEgYmV0dGVyIHNvbHV0 aW9uIHRoYW4gdGhlIHdhcm5pbmcgbWVzc2FnZSBwbGVhc2UKPiBwcm9wb3NlCj4gPj4+Pj4+IGl0 IGluc3RlYWQsIGJ1dCBkb24ndCBkZWxldGUgd2FybmluZ3MgdGhlcmUgdG8gcHJvdGVjdCBwZW9w bGUgZnJvbQo+IHRoZQo+ID4+Pj4+PiBwcml2YWN5IGZhaWxpbmdzIGVuZGVtaWMgdGhlIGRlc2ln biBvZiB0aGUgd2ViIHNwZWNzLgo+ID4+Pj4+Pgo+ID4+Pj4+PiBCZXN0Cj4gPj4+Pj4+IE1hcmsK PiA+Pj4+Pj4KPiA+Pj4+Pj4KPiA+Pj4+Pj4KPiA+Pj4+Pj4gT24gU2F0LCAxNSBTZXAgMjAxOCwg MTk6MjkgV2lsbGlhbSBCYW1iZXJnLCA8d2JhbWJlcmdAbW96aWxsYS5jb20+Cj4gPj4+Pj4+IHdy b3RlOgo+ID4+Pj4+Pgo+ID4+Pj4+Pj4gSGkKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBUaGFua3MgZm9y IHRoZSBjb250cmlidXRpb25zIHlvdSd2ZSBtYWRlIHRvIE1ETi4gSSBkbyBhcHByZWNpYXRlCj4g eW91Cj4gPj4+Pj4+PiBkcmF3aW5nIGF0dGVudGlvbiB0byB0aGUgcHJpdmFjeSBpc3N1ZXMgYXJv dW5kIGNlcnRhaW4gSFRNTAo+IGVsZW1lbnRzIHN1Y2gKPiA+Pj4+Pj4+IGFzIDxhPiBhbmQgPGlt Zz4uCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gSG93ZXZlciBJJ2QgbGlrZSB0byByZXF1ZXN0IHRoYXQg eW91IHN0b3AgcmVpbnN0YXRpbmcgdGhlICJ3YXJuaW5nIgo+ID4+Pj4+Pj4gYmFubmVyIGF0IHRo ZSB0b3BzIG9mIHRoZSBwYWdlcy4gVGhlcmUgYXJlIHZlcnkgZmV3IHNpdHVhdGlvbnMgaW4KPiB3 aGljaAo+ID4+Pj4+Pj4gaXQncyBhcHByb3ByaWF0ZSB0byB1c2UgdGhpcyBiYW5uZXIgYXQgdGhl IHRvcCBvZiB0aGUgcGFnZSwgYW5kIEkKPiBkb24ndAo+ID4+Pj4+Pj4gdGhpbmsgaXQncyBhcHBy b3ByaWF0ZSBpbiB0aGlzIHNpdHVhdGlvbi4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBUaGFua3MKPiA+ Pj4+Pj4+Cj4gPj4+Pj4+PiBXaWxsCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4KPiA+Pgo+ID4KPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRldi1zZWN1cml0 eSBtYWlsaW5nIGxpc3QKPiBkZXYtc2VjdXJpdHlAbGlzdHMubW96aWxsYS5vcmcKPiBodHRwczov L2xpc3RzLm1vemlsbGEub3JnL2xpc3RpbmZvL2Rldi1zZWN1cml0eQo+Cl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRldi1zZWN1cml0eSBtYWlsaW5nIGxp c3QKZGV2LXNlY3VyaXR5QGxpc3RzLm1vemlsbGEub3JnCmh0dHBzOi8vbGlzdHMubW96aWxsYS5v cmcvbGlzdGluZm8vZGV2LXNlY3VyaXR5Cg==