PGh0bWw+CjxoZWFkPgoJPHRpdGxlPnByb2JsZW1zLmh0bWw8L3RpdGxlPgoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vc3R5bGVzLmNzcyI+CjwvaGVhZD4KPGJvZHk+CjxoND5Lbm93biBQcm9ibGVtcyBvZiB0aGUgQy9DKysgUHJlcHJvY2Vzc29yPC9oND4KPGRpdj4KCVByZXByb2Nlc3NvciBtZXRhcHJvZ3JhbW1pbmcgaXMgc3ViamVjdCB0byBoZWF0ZWQgZGlzY3Vzc2lvbnMuJm5ic3A7CglQYXJ0IG9mIHRoaXMgaXMgY2F1c2VkIGJ5IGJhZCBleHBlcmllbmNlcyB3aXRoIGRhbmdlcm91cyB0ZWNobmlxdWVzLAoJc3VjaCBhcyBkZWZpbmluZyBpbmxpbmUgZnVuY3Rpb25zIHVzaW5nIG1hY3Jvcy4mbmJzcDsKCUFzIGEgcnVsZSBvZiB0aHVtYiwgaWYgeW91IGNhbiBmaW5kIGEgY2xlYW4gYW5kIG1hbmFnZWFibGUgd2F5IHRvIGRvIHNvbWV0aGluZwoJd2l0aG91dCB0aGUgcHJlcHJvY2Vzc29yLCB0aGVuIHlvdSBzaG91bGQgZG8gaXQgdGhhdCB3YXkuCjwvZGl2Pgo8ZGl2PgoJTGV0J3Mgc3VydmV5IHNvbWUgb2YgdGhlIHdpZGVseSBrbm93biBwcm9ibGVtcyBvZiB0aGUgcHJlcHJvY2Vzc29yIGluIGEgcHJvYmxlbS9zb2x1dGlvbiBmb3JtYXQuCjwvZGl2Pgo8aDQ+UHJvYmxlbSAjMTwvaDQ+CjxkaXY+CglUaGUgcHJlcHJvY2Vzc29yIGRvZXMgbm90IHJlc3BlY3Qgc2NvcGUsIHRoZXJlZm9yZSBtYWNyb3MgY2FuIGFjY2lkZW50YWxseSBhbmQgc29tZXRpbWVzIHNpbGVudGx5IHJlcGxhY2UgY29kZS4KPC9kaXY+CjxkaXY+Cgk8Yj5Tb2x1dGlvbiBBPC9iPgoJPGRpdj4KCQlVc2UgYWxsIGNhcHMgaWRlbnRpZmllcnMgZm9yIG1hY3JvcyBhbmQgb25seSBtYWNyb3MuJm5ic3A7CgkJVGhpcyBwcmFjdGljYWxseSBlbGltaW5hdGVzIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGEgbWFjcm8gbWlnaHQgcmVwbGFjZSBvdGhlciBraW5kcyBvZiBjb2RlIGFjY2lkZW50YWxseS4KCTwvZGl2Pgo8L2Rpdj4KPGRpdj4KCTxiPlNvbHV0aW9uIEI8L2I+Cgk8ZGl2PgoJCVVzZSB0aGUgbG9jYWwgbWFjcm8gaWRpb206Cgk8L2Rpdj4KPGRpdiBjbGFzcz0iY29kZSI+PHByZT4KI2RlZmluZSBNQUNSTyAuLi4KLy8gdXNlIE1BQ1JPCiN1bmRlZiBNQUNSTwo8L3ByZT48L2Rpdj4KCTxkaXY+CgkJVGhpcyBtYWtlcyBzdXJlIHRoYXQgYSBtYWNybyBjYW5ub3QgYWNjaWRlbnRhbGx5IHJlcGxhY2UgY29kZSBvdXRzaWRlIG9mIHRoZSBzY29wZSBvZiB0aGUgbG9jYWwgbWFjcm8uCgk8L2Rpdj4KCTxkaXY+CgkJQSBwcm9ibGVtIHdpdGggdGhpcyBzb2x1dGlvbiBpcyB0aGF0IHRoZSAjdW5kZWYgY2Fubm90IGJlIGF1dG9tYXRlZCBhbmQgbWF5IGJlIGZvcmdvdHRlbi4mbmJzcDsKCQlFeHBlcmllbmNlZCBwcm9ncmFtbWVycyBnZW5lcmFsbHkgd3JpdGUgdGhlICN1bmRlZiBlaXRoZXIgaW1tZWRpYXRlbHkgYmVmb3JlIChpbiB0aW1lKQoJCW9yIGltbWVkaWF0ZWx5IGFmdGVyIHdyaXRpbmcgdGhlIG1hY3JvIGRlZmluaXRpb24uCgk8L2Rpdj4KPC9kaXY+CjxkaXY+Cgk8Yj5Tb2x1dGlvbiBDPC9iPgoJPGRpdj4KCQlVc2UgdGhlIHVuaXF1ZSBtYWNybyBwcmVmaXggaWRpb20uCgk8L2Rpdj4KPGRpdiBjbGFzcz0iY29kZSI+PHByZT4KI2RlZmluZSBVTVBfTUFDUk8KLy8gdXNlIFVNUF9NQUNSTwo8L3ByZT48L2Rpdj4KCTxkaXY+CgkJVGhpcyBtYWtlcyBhY2NpZGVudGFsIHN1YnN0aXR1dGlvbiBhbmQgY29sbGlzaW9ucyBoaWdobHkgdW5saWtlbHkuJm5ic3A7CgkJUHJvYmxlbXMgd2l0aCB0aGlzIHNvbHV0aW9uIGluY2x1ZGU6Cgk8L2Rpdj4KCTx1bD4KCQk8bGk+VGhlcmUgY2FuIHN0aWxsIGJlIG5hbWluZyBjb2xsaXNpb25zIGluc2lkZSBhIGxhcmdlIHByb2plY3QuPC9saT4KCQk8bGk+TWFjcm9zIHN0aWxsIHBvbGx1dGUgdGhlIGdsb2JhbCBuYW1lc3BhY2UuPC9saT4KCTwvdWw+Cgk8aT5CeSBjb21iaW5pbmcgYWxsIHNvbHV0aW9ucywgd2hlbmV2ZXIgcG9zc2libGUsIHRoZSBzY29wZSBwcm9ibGVtIGNhbiBiZSBsYXJnZWx5IGF2b2lkZWQuPC9pPgo8L2Rpdj4KPGg0PlByb2JsZW0gIzI8L2g0Pgo8ZGl2PgoJUHJlcHJvY2Vzc29yIGNvZGUgaXMgZGlmZmljdWx0IHRvIHJlYWQuJm5ic3A7CglJdCByZXF1aXJlcyBhbiB1bmRlcnN0YW5kaW5nIG9mIHRoZSBiYXNpYyBwcm9jZXNzIG9mIGhvdyB0aGUgcHJlcHJvY2Vzc29yIHJlY3Vyc2l2ZWx5IGV4cGFuZHMgbWFjcm9zLAoJZmluZGluZyBtYWNybyBkZWZpbml0aW9ucywgYW5kIG1lbnRhbGx5IHN1YnN0aXR1dGluZyB0aGUgcGFyYW1ldGVycyBvZiB0aGUgbWFjcm8uCjwvZGl2Pgo8ZGl2PgoJPGI+U29sdXRpb248L2I+Cgk8ZGl2PgoJCUFueSBraW5kIG9mIHByb2dyYW1taW5nIHJlcXVpcmVzIGEgYmFzaWMgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhlIGNvZGUgaXMgZXhlY3V0ZWQuJm5ic3A7CgkJQW55IHBhcmFtZXRlcml6YXRpb24gdGVjaG5pcXVlLCBpbmNsdWRpbmcgc2ltcGxlIGZ1bmN0aW9ucyBhbmQgdGVtcGxhdGVzIHJlcXVpcmVzIGZpbmRpbmcKCQl0aGUgZGVmaW5pdGlvbiBhbmQgbWVudGFsbHkgc3Vic3RpdHV0aW5nIHBhcmFtZXRlcnMuCgk8L2Rpdj4KCTxkaXY+CgkJSG93ZXZlciwgaXQgaXMgZ29vZCB0byBrbm93IGEgZmV3IHRlY2huaXF1ZXM6Cgk8L2Rpdj4KCTx1bD4KCQk8bGk+QnkgdXNpbmcgYXMgbWFueSBsb2NhbCBtYWNyb3MgYXMgcmVhc29uYWJsZSwgdGhlIGJ1bGsgb2YgdGhlIHNlYXJjaGluZyBwcm9jZXNzIGNhbiBiZSBlbGltaW5hdGVkLjwvbGk+CgkJPGxpPkNvZGUgYnJvd3NlcnMgYW5kIHRleHQgc2VhcmNoIHRvb2xzIG1ha2UgaXQgZWFzaWVyIHRvIGZpbmQgdGhlIGRlZmluaXRpb25zLjwvbGk+CgkJPGxpPlRoZSBjb21waWxlciBjYW4gYmUgdXNlZCBmb3IgZ2VuZXJhdGluZyB0aGUgcHJlcHJvY2Vzc2VkIHNvdXJjZSBjb2RlIGluIG9yZGVyIHRvIGxvb2sgZm9yIGJ1Z3MuPC9saT4KCQk8bGk+CgkJCUJlZm9yZSB0dXJuaW5nIHNvbWV0aGluZyBpbnRvIGEgcHJlcHJvY2Vzc29yIG1ldGFwcm9ncmFtLCBmaXJzdCBpbXBsZW1lbnQgYSBzbWFsbCBzY2FsZSB2ZXJzaW9uCgkJCW9mIGl0IHdpdGhvdXQgdGhlIHByZXByb2Nlc3Nvci4mbmJzcDsKCQkJVGhlIHdvcmsgYm90dG9tLXVwLCByZXBsYWNpbmcgaGFuZC13cml0dGVuIGNvbnN0cnVjdHMgYnkgdXNpbmcgdGhlIHByZXByb2Nlc3Nvci4mbmJzcDsKCQkJVGhpcyB3YXkgeW91IGNhbiB0ZXN0IHRoZSBjb2RlIGluY3JlbWVudGFsbHkuJm5ic3A7CgkJCUV4cGVyaWVuY2VkIHByb2dyYW1tZXJzIG9mdGVuIHNraXAgbWFueSBzdGFnZXMsIGJ1dCBpZiBzb21ldGhpbmcgcHJvdmVzIHRvbyBjb21wbGV4IHRvIHdyaXRlCgkJCWRpcmVjdGx5LCBpdCBpcyBhbHdheXMgcG9zc2libGUgdG8gZmFsbCBiYWNrIHRvIGluY3JlbWVudGFsIG1ldGhvZHMuCgkJPC9saT4KCQk8bGk+CgkJCUlmIHlvdSBpbnNlcnQgYSBzcGVjaWFsIHN5bWJvbCBpbnRvIHRoZSBwcmVwcm9jZXNzb3IgY29kZSBpbiBwbGFjZXMgd2hlcmUgdGhlcmUgc2hvdWxkIGJlIGEgbGluZSBicmVhaywKCQkJeW91IGNhbiBtYWtlIGNvZGUgcmVhZGFibGUgYWZ0ZXIgcHJlcHJvY2Vzc2luZyBzaW1wbHkgYnkgdXNpbmcgYSBzZWFyY2ggYW5kIHJlcGxhY2UgdG9vbC4KCQk8L2xpPgoJPC91bD4KCTxpPkFuIGVzcGVjaWFsbHkgaW1wb3J0YW50IHRoaW5nIHRvIHJlbWVtYmVyIGlzIHRvIGxpbWl0IHRoZSB1c2Ugb2YgdGhlIHByZXByb2Nlc3NvciB0bwoJc3RydWN0dXJlZCwgd2VsbC11bmRlcnN0b29kLCBhbmQgc2FmZSBtZXRob2RzLiZuYnNwOwoJU3RydWN0dXJlIGhlbHBzIHRvIHVuZGVyc3RhbmQgY29tcGxleCBzeXN0ZW1zIDxhIGhyZWY9Ii4uL2JpYmxpb2dyYXBoeS5odG1sI21jY29ubmVsbCI+W01jQ29ubmVsbF08L2E+LjwvaT4KPC9kaXY+CjxoND5Qcm9ibGVtICMzPC9oND4KPGRpdj4KCSJJJ2QgbGlrZSB0byBzZWUgQ3BwIGFib2xpc2hlZC4iIC0gPGk+Qmphcm5lIFN0cm91c3RydXA8L2k+IGluIDxhIGhyZWY9Ii4uL2JpYmxpb2dyYXBoeS5odG1sI3N0cm91c3RydXAiPltTdHJvdXN0cnVwXTwvYT4uCjwvZGl2Pgo8ZGl2PgoJPGI+U29sdXRpb248L2I+Cgk8ZGl2PgoJCVRoZSBDL0MrKyBwcmVwcm9jZXNzb3Igd2lsbCBiZSBoZXJlIGZvciBhIGxvbmcgdGltZS4KCTwvZGl2PgoJPGk+SW4gcHJhY3RpY2UsIHByZXByb2Nlc3NvciBtZXRhcHJvZ3JhbW1pbmcgaXMgZmFyIHNpbXBsZXIgYW5kIG1vcmUgcG9ydGFibGUgdGhhbiB0ZW1wbGF0ZSBtZXRhcHJvZ3JhbW1pbmcgPGEgaHJlZj0iLi4vYmlibGlvZ3JhcGh5Lmh0bWwjY3phcm5lY2tpIj5bQ3phcm5lY2tpXTwvYT4uPC9pPgo8L2Rpdj4KPGhyIHNpemU9IjEiPgo8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+Cgk8aT6pIENvcHlyaWdodCA8YSBocmVmPSJodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbSIgdGFyZ2V0PSJfdG9wIj5Ib3VzZW1hcnF1ZSBPeTwvYT4gMjAwMjwvaT4KPC9kaXY+CjxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KUGVybWlzc2lvbiB0byBjb3B5LCB1c2UsIG1vZGlmeSwgc2VsbCBhbmQgZGlzdHJpYnV0ZSB0aGlzIGRvY3VtZW50IGlzIGdyYW50ZWQgcHJvdmlkZWQgdGhpcyBjb3B5cmlnaHQgbm90aWNlIGFwcGVhcnMgaW4gYWxsIGNvcGllcy4mbmJzcDsKVGhpcyBkb2N1bWVudCBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgZXhwcmVzcyBvciBpbXBsaWVkIHdhcnJhbnR5IGFuZCB3aXRoIG5vIGNsYWltIGFzIHRvIGl0cyBzdWl0YWJpbGl0eSBmb3IgYW55IHB1cnBvc2UuCjwvZGl2PgoJPGhyIHNpemU9IjEiPgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxpPqkgQ29weXJpZ2h0IDxhIGhyZWY9Imh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tIiB0YXJnZXQ9Il90b3AiPkhvdXNlbWFycXVlIE95PC9hPiAyMDAyPC9pPgoJCTwvYnI+PGk+qSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDI8L2k+Cgk8L2Rpdj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8cD48c21hbGw+RGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCgkJYWNjb21wYW55aW5nIGZpbGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vTElDRU5TRV8xXzAudHh0Ij5MSUNFTlNFXzFfMC50eHQ8L2E+IG9yCgkJY29weSBhdCA8YSBocmVmPQoJCSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPnd3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPik8L3NtYWxsPjwvcD4KCTwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K