SSBnZW5lcmFsbHkgYXZvaWQgcHVibGljIGNvbW1lbnQgb24gbW9zdCBwb3B1bGlzdCBoZWFsdGgg aXNzdWVzLgpZZXN0ZXJkYXlzIHdpc2RvbSBpcyBsaWFibGUgdG8gYmUgdG9tb3Jyb3dzIGRpc2Fz dGVyIGFuZCwgc29tZXRpbWVzLCBuZXh0CnllYXIncyByZS1kaXNjb3ZlcmVkIHdpc2RvbS4gT3Ig bm90LgoKQnV0OiBJZiB5b3Uga25vdyBhbnlvbmUgd2hvIGlzIHByZWduYW50IG9yIGludGVuZGlu ZyB0byBiZSwgcGxlYXNlIHJlYWQgdGhlCmZvbGxvd2luZyBhbmQgZGVjaWRlIGlmIGl0cyB3b3J0 aCBwYXNzaW5nIG9uLiBUaGUgcmVmZXJlbmNlcyBhdCB0aGUgZW5kCnByb3ZpZGUgdGhlIHJlbGF0 ZWQgc2NpZW50aWZpYyBiYWNrZ3JvdW5kLgoKRGVzcGl0ZSB0aGUgZ2VuZXJhbGx5IHdpZGVzcHJl YWQgb3BpbmlvbnMgdGhhdCB0YWtpbmcgZmlzaG9pbCBzdXBwbGVtZW50cwpkdXJpbmcgcHJlZ25h bmN5IGlzIHNhZmUgYW5kIG1heSBiZSBiZW5lZmljaWFsIHRvIHBvc3QgYmlydGggY2hpbGQKZGV2 ZWxvcG1lbnQsCgoqU3VtbWFyeToqCgpSZWNlbnQgcmVzZWFyY2ggc3Ryb25nbHkgc3VnZ2VzdHMg dGhhdAoKKi0gQ29tbWVyY2lhbCBmaXNob2lsIHN1cHBsZW1lbnRzIGFyZSBtb3JlIG9mdGVuIHRo YW4gbm90IGxpa2VseSB0byBiZSBqdW5rCigqMiwgKjMpIChiZWxvdyBjbGFpbWVkIG9yIHJlcXVp cmVkIGxldmVscyBpbiBhY3RpdmUgaW5ncmVkaWVudHMsIGFuZCBiYWRseQpveGlkaXNlZCksIGFu ZCB0aGF0ICoKCgoqLSBEYW5nZXJvdXMgaW1wYWN0cyBvbiB0aGUgdW5ib3JuIGNoaWxkIG1heSBy ZXN1bHQgKCoxKSoKClRoaXMgYXJlYSBpcyBsaWtlbHkgdG8gYmUgdGhlIHN1YmplY3Qgb2YgaW50 ZW5zaXZlIGludGVybmF0aW9uYWwgcmVzZWFyY2gKaW4gdGhlIGltbWVkaWF0ZSBmdXR1cmUgYnV0 LCBmb3Igbm93IC0KCiAgICAgICAgKkF2b2lkaW5nIGZpc2gtb2lsIHN1cHBsZW1lbnRzIHdoZW4g cHJlZ25hbnQgd291bGQgc2VlbSB0byBiZQoqZXh0cmVtZWx5KiB3aXNlKgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KClRoaXMgInNjYXJlIiBTRUVNUyB0 byBiZSB3b3J0aHdoaWxlIGVub3VnaCB0byBwcnVkZW50bHkgdGFrZSBub3RlIG9mIHVudGlsCm1v cmUgaXMga25vd24uCgogLSBJdCBzZWVtcyBwb3NzaWJsZSB0aGF0IHN1cHBsZW1lbnRhbCBmaXNo b2lsIHRha2VuIGJ5IHByZWduYW50IG1vdGhlcnMKTUFZIGJlIGJhZCBvciBldmVuIHZlcnkgYmFk IGZvciB0aGUgZGV2ZWxvcGluZyBiYWJ5LioxCgogLSBJdCBzZWVtcyBoaWdobHkgbGlrZWx5IHRo YXQgdGhlIGNsYWltZWQgY29udGVudCBsZXZlbCBvZiBiZWxpZXZlZApiZW5lZmljaWFsIGNvbXBv bmVudHMgaW4gYWxtb3N0IGFsbCBmaXNob2lscyBzb2xkIGFyZSBiZWxvdyBvciB3ZWxsIGJlbG93 CnRob3NlIGNsYWltZWQuICoyCgogLSBJdCBzZWVtcyBsaWtlbHkgdGhhdCBzdXBwbGVtZW50YWwg ZmlzaG9pbCBpcyBvZnRlbiBveGlkaXNlZCB0byBhCmRhbmdlcm91cyBvciBtYXliZSBwb3RlbnRp YWxseSBkYW5nZXJvdXMgZXh0ZW50LiAqMwoKSWYgSSB3YXMgaW4gYSBwb3NpdGlvbiB3aGVyZSB0 aGlzIG1hdHRlcmVkIHRvIG1lIG9yIGZhbWlseSBvciBmcmllbmRzIEknZApzdHJvbmdseSByZWNv bW1lbmQgbm90IHRha2luZyBmaXNob2lsIGF0IHByZXNlbnQuIFRoaXMgd2lsbCBzb3J0IGl0c2Vs ZiBvdXQKaW4gdGhlIG5vdCB0b28gZGlzdGFudCBmdXR1cmUuIElmIHlvdSByZWFsbHkgYmVsaWV2 ZSBPbWVnYSAzIGFuZCBmcmllbmRzCm9mZmVyIGEgc3Vic3RhbnRpYWwgZWRnZSwgZnJlc2ggZmlz aCBzZWVtcyBhIGxvdCBzYWZlciBzb3VyY2UKCl9fX19fX19fX19fX19fCgpUaGVyZSBhcmUgbWFu eSBpZidzIGFuZCBidXQgYW5kIG1heWJlcyBoZXJlLgpUaG9zZSBjb25jZXJuZWQgY2FuIGRpZyBk ZWVwZXIgZm9yIHRoZW0gc2VsdmVzLgoKKjEgVGhpcyBpcyBiYXNlZCBvbiBzdHVkaWVzIHdpdGgg bGl2ZSByYXRzLiBJIGFtIG5vdCBhd2FyZSBvZiBhbnkKY29uZmlybWluZyBzdHVkaWVzIHRodXMg ZmFyIG9mIGVmZmVjdHMgb24gcGVvcGxlLiBCVVQgdGhlIG1hZ25pdHVkZSBvZiB0aGUKYXBwYXJl bnQgcmVzdWx0IGlzIHNvIGxhcmdlIGFzIHRvIHN1Z2dlc3QgdmVyeSBncmVhdCBjYXJlIGlzIGlu IG9yZGVyLgoKaWUgUmVjZW50IE5aIHJlc2VhcmNoIGJ5IGEgcmVzcGVjdGVkIHJlc2VhcmNoIG9y Z2FuaXNhdGlvbiBpbmRpY2F0ZXMgdGhhdApveGlkaXNlZCBmaXNob2lsIGZlZCB0byBwcmVnbmFu dCByYXRzIGF0IGhpZ2ggYnV0IG5vdCBsdWRpY3JvdXMgbGV2ZWxzCmFwcGVhcmVkIHRvIGNhdXNl IGV4dHJlbWVseSBoaWdoIGJhYnktcmF0ICBkZWF0aCByYXRlcyAoMzAlICEhISkgaW4gdGhlIGZl dwpkYXlzIHBvc3QgYmlydGguCkNvbnRyb2wgZ3JvdXBzIGZlZCB1bm94aWRpc2VkIGZpc2hvaWwg YW5kIGFub3RoZXIgZmVkIHdhdGVyIGRpZCBub3Qgc2hvdwp0aGUgZmF0YWxpdHkgaW5jcmVhc2Uu IChSYXRzIGZlZCB1bm94aWRpc2VkIGZpc2hvaWwgc2VlbWVkIHRvIGZhciBiZXR0ZXIKdGhhbiB0 aGUgd2F0ZXIgZ3JvdXAgYmFzZWQgb24gbXkgcXVpY2sgcmVhZGluZyBvZiB0aGUgcmVzZWFyY2gg cGFwZXIgLSBidXQKd2hldGhlciB0aGlzIGlzIHNpZ25pZmljYW50IEkga25vdyBub3QuCgoqMiAq MyAtIFBhc3QgaW52ZXN0aWdhdGlvbnMgb2YgMzArIGNvbW1lcmNpYWwgZmlzaG9pbCBzdXBwbGVt ZW50cyBzb2xkIGluCk5aIHNob3dlZCB0aGVzZSByZXN1bHRzIGluIHRlcm1zIG9mIGxvdyBsZXZl bHMgb2YgY2xhaW1lZCBhY3RpdmUKaW5ncmVkaWVudHMgKGNvbXBhcmVkIHRvIGluZHVzdHJ5IHN0 YW5kYXJkcyBhbmQgbGFiZWwgY2xhaW1zKSBhbmQKIGdlbmVyYWxseSBveGlkaWRhdGlvbiBsZXZl bHMgYWJvdmUgYWxsb3dlZCBzdGFuZGFyZHMuCgpUbyBteSBleWUgYWJvdXQgMyBvZiAzMSBicmFu ZHMgbG9va2VkIHdpdGhpbiBzcGVjIC0gYnJhbmRzIG5vdCBpZGVudGlmaWVkCmluIHJlcG9ydHMu CgoKCgogICAgICAgICAgICBSdXNzZWxsIE1jTWFob24KCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KCgoqRmlzaCBvaWwgc3R1ZHk6IGZpdmUgdGhpbmdz IHlvdSBuZWVkIHRvIGtub3cqCkF1Z3VzdCAxMSAyMDE2LiBOWiBIZXJhbGQgLSBsYXJnZXN0IE5a IG5ld3NwYXBlci4KCgpodHRwOi8vd3d3Lm56aGVyYWxkLmNvLm56L256L25ld3MvYXJ0aWNsZS5j Zm0/Y19pZD0xJm9iamVjdGlkPTExNjkxNzk0JnJlZj1OWkhfRkJwYWdlCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KVGhyZWUgaW4gdGVuIHJhdCBvZmZzcHJpbmcgZGllIGFmdGVyIG1v dGhlcnMgZmVkIG94aWRpc2VkIGZpc2ggb2lsOiBzdHVkeQpBdWNrbGFuZCBVbml2ZXJzaXR5IHBh Z2UuCjIyIEp1bHkgMjAxNgoKCmh0dHBzOi8vd3d3LmF1Y2tsYW5kLmFjLm56L2VuL2Fib3V0L25l d3MtZXZlbnRzLWFuZC1ub3RpY2VzL25ld3MvbmV3cy0yMDE2LzA3L3JhdC1iYWJpZXMtZGllLW94 aWRpc2VkLWZpc2gtb2lsLXByZWduYW5jeS5odG1sCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpPeGlkaXNlZCBmaXNoIG9pbCBpbiByYXQgcHJlZ25hbmN5IGNhdXNlcyBoaWdoIG5ld2Jv cm4gbW9ydGFsaXR5IGFuZAppbmNyZWFzZXMgbWF0ZXJuYWwgaW5zdWxpbiByZXNpc3RhbmNlCipB bWVyaWNhbiBKb3VybmFsIG9mIFBoeXNpb2xvZ3kgLSBSZWd1bGF0b3J5LCBJbnRlZ3JhdGl2ZSBh bmQgQ29tcGFyYXRpdmUKUGh5c2lvbG9neSoKCgpodHRwOi8vYWpwcmVndS5waHlzaW9sb2d5Lm9y Zy9jb250ZW50L2Vhcmx5LzIwMTYvMDcvMDYvYWpwcmVndS4wMDAwNS4yMDE2LmZ1bGwucGRmK2h0 bWwKCiAgICAgIFByZS1wcmludCBQREY6Cmh0dHA6Ly9hanByZWd1LnBoeXNpb2xvZ3kub3JnL2Nv bnRlbnQvYWpwcmVndS9lYXJseS8yMDE2LzA3LzA2L2FqcHJlZ3UuMDAwMDUuMjAxNi5mdWxsLnBk ZgoKQmVuamFtaW4gQi4gQWxiZXJ0LCBNYXJrIEggVmlja2VycywgQ2xpbnQgR3JheSwgQ2xhcmUg TSBSZXlub2xkcywgU3RlcGhhbmllCkEgU2Vnb3ZpYSwgSm9zw6kgRy4gQi4gRGVycmFpaywgUGF1 bCBBLiBMZXdhbmRvd3NraSwgTWFub2hhciBMLiBHYXJnLCBEYXZpZApDYW1lcm9uLVNtaXRoLFBh dWwgTCBIb2ZtYW4sIFdheW5lIFMuIEN1dGZpZWxkCjEgMTAgTGlnZ2lucyBJbnN0aXR1dGUsIFVu aXZlcnNpdHkgb2YgQXVja2xhbmQsIEF1Y2tsYW5kLCBOZXcgWmVhbGFuZCAyIDExClNjaG9vbCBv ZiBNZWRpY2luZSBhbmQgQ2VudHJlIGZvciBNb2xlY3VsYXIgYW5kIE1lZGljYWwgUmVzZWFyY2gs IERlYWtpbgpVbml2ZXJzaXR5LCBXYXVybiAxMiBQb25kcywgVmljdG9yaWEsIEF1c3RyYWxpYSAz IDEzIE51dHJhY2V1dGljYWxzClJlc2VhcmNoIEdyb3VwLCBTY2hvb2wgb2YgQmlvbWVkaWNhbCBT Y2llbmNlcyBhbmQgUGhhcm1hY3ksIFVuaXZlcnNpdHkgb2YKMTQgTmV3Y2FzdGxlLCBDYWxsYWdo YW4sIE5TVywgQXVzdHJhbGlhIDE1IDE2ICogQ29ycmVzcG9uZGVuY2UgdG86ClByb2Zlc3NvciBX YXluZSBDdXRmaWVsZCwgTGlnZ2lucyBJbnN0aXR1dGUsIFVuaXZlcnNpdHkgb2YgQXVja2xhbmQs ClByaXZhdGUgQmFnIDE3IDkyMDE5LCBBdWNrbGFuZCwgTmV3IFplYWxhbmQ7IEVtYWlsOgp3LmN1 dGZpZWxkQGF1Y2tsYW5kLmFjLm56CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwoKRmlzaCBvaWwgc3VwcGxlbWVudHMgaW4gTmV3IFplYWxhbmQgYXJlIGhpZ2hseSBv eGlkaXNlZCBhbmQgZG8gbm90IG1lZXQKbGFiZWwgY29udGVudCBvZiBuLTMgUFVGQQoqTmF0dXJl LiAyMSBKYW51YXJ5IDIwMTUuKgoKICAgICAgICBodHRwOi8vd3d3Lm5hdHVyZS5jb20vYXJ0aWNs ZXMvc3JlcDA3OTI4I2YyCgpfX19fX19fX19fX19fX19fX19fX19fXwoKKkxpZ2dpbnMgaW5zdGl0 dXRlIC0gd2hvIHRoZXkgYXJlIC0gd2hhdCB0aGV5IGRvKgoKCmh0dHA6Ly93d3cubGlnZ2lucy5h dWNrbGFuZC5hYy5uei9lbi9hYm91dC9yZXNlYXJjaC10aGVtZXMvZW5kb2NyaW5vbG9neS1hbmQt bnV0cml0aW9uL2NsaW5pY2FsZW5kb2NyaW5vbG9neS5odG1sCi0tIApodHRwOi8vd3d3LnBpY2xp c3QuY29tL3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlClZpZXcvY2hh bmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cmh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFp bG1hbi9saXN0aW5mby9waWNsaXN0Cg== .