PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0lURVJBVEU8L3RpdGxlPgoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vc3R5bGVzLmNzcyI+CjwvaGVhZD4KPGJvZHk+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogIDBweDsiPgoJCVRoZSA8Yj5CT09TVF9QUF9JVEVSQVRFPC9iPiBtYWNybyBpbml0aWF0ZXMgYSA8aT5maWxlLWl0ZXJhdGlvbjwvaT4uCgk8L2Rpdj4KCTxoND5Vc2FnZTwvaDQ+CgkJPGRpdiBjbGFzcz0iY29kZSI+CgkJCSNpbmNsdWRlIDxiPkJPT1NUX1BQX0lURVJBVEU8L2I+KCkKCQk8L2Rpdj4KCTxoND5SZW1hcmtzPC9oND4KCQk8ZGl2PgoJCQlBcmd1bWVudHMgdG8gdGhpcyBtYWNybyBhcmUgcGFzc2VkIGFzIDxpPmV4dGVybmFsIG5hbWVkIGFyZ3VtZW50czwvaT4gaW4gb25lIG9mIHR3bwoJCQl3YXlzLS1laXRoZXIgdGhyb3VnaCA8Yj5CT09TVF9QUF9GSUxFTkFNRV88aT54PC9pPjwvYj4gYW5kIDxiPkJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFM8L2I+IDxpPm9yPC9pPgoJCQl0aHJvdWdoIDxiPkJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfPGk+eDwvaT48L2I+LiZuYnNwOwoJCTwvZGl2PgoJCTxkaXY+CgkJCVRocmVlIHBpZWNlcyBvZiBpbmZvcm1hdGlvbiBhcmUgcmVxdWlyZWQgdG8gcGVyZm9ybSBhIDxpPmZpbGUtaXRlcmF0aW9uPC9pPi4mbmJzcDsKCQkJRmlyc3QsIHRoZSBuYW1lIG9mIGEgZmlsZSB0byBpdGVyYXRlIG92ZXIuJm5ic3A7CgkJCVRoaXMgaXMgcGFzc2VkIHZpYSA8Yj5CT09TVF9QUF9GSUxFTkFNRV88aT54PC9pPjwvYj4gPGk+b3I8L2k+IGFzIHBhcnQgb2YgPGI+Qk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU188aT54PC9pPjwvYj4uJm5ic3A7CgkJCVRoZSA8aT5maWxlLWl0ZXJhdGlvbjwvaT4gbWVjaGFuaXNtIHdpbGwgcmVwZWF0ZWRseSBpbmNsdWRlIHRoaXMgZmlsZSB3aXRoIGl0ZXJhdGlvbiB2YWx1ZXMgcmFuZ2luZyBmcm9tIGEgbG93ZXIgYm91bmQgdG8gYW4gdXBwZXIgYm91bmQtLXRoZSBzZWNvbmQgYW5kIHRoaXJkIDxpPnJlcXVpcmVkPC9pPiBwYXJhbWV0ZXJzLiZuYnNwOwoJCQlUaGVzZSB0d28gYm91bmRhcmllcyBhcmUgZWl0aGVyIHBhc3NlZCB0aHJvdWdoIDxiPkJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFM8L2I+IDxpPm9yPC9pPiBhcyBwYXJ0IG9mIDxiPkJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfPGk+eDwvaT48L2I+LgoJCTwvZGl2PgoJCTxkaXY+CgkJCU9wdGlvbmFsbHksIGEgZm91cnRoIHBhcmFtZXRlciBtYXkgYmUgcGFzc2VkIHRoYXQgYXNzb2NpYXRlcyBmbGFncyB3aXRoIGFuIGl0ZXJhdGlvbi4mbmJzcDsKCQkJVGhlc2UgZmxhZ3MgYXJlIHByaW1hcmlseSB1c2VmdWwgdG8gZGlzdGluZ3Vpc2ggb25lIGl0ZXJhdGlvbiBmcm9tIGFub3RoZXIgaW4gdGhlIHNhbWUgZmlsZS4mbmJzcDsKCQkJVGhpcyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUgcGFzc2VkIHRocm91Z2ggPGI+Qk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU188aT54PC9pPjwvYj4uCgkJPC9kaXY+CgkJPGRpdj4KCQkJV2hpbGUgYSA8aT5maWxlLWl0ZXJhdGlvbjwvaT4gaXMgaW4gcHJvZ3Jlc3MsIDxiPkJPT1NUX1BQX0lTX0lURVJBVElORzwvYj4gaXMgZGVmaW5lZCBhcyA8aT4xPC9pPi4KCQk8L2Rpdj4KCTxoND5TZWUgQWxzbzwvaDQ+CgkJPHVsPgoJCQk8bGk+PGEgaHJlZj0iZmlsZW5hbWVfeC5odG1sIj5CT09TVF9QUF9GSUxFTkFNRV88aT54PC9pPjwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iaXNfaXRlcmF0aW5nLmh0bWwiPkJPT1NUX1BQX0lTX0lURVJBVElORzwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0iaXRlcmF0aW9uX2xpbWl0cy5odG1sIj5CT09TVF9QUF9JVEVSQVRJT05fTElNSVRTPC9hPjwvbGk+CgkJCTxsaT48YSBocmVmPSJpdGVyYXRpb25fcGFyYW1zX3guaHRtbCI+Qk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU188aT54PC9pPjwvYT48L2xpPgoJCTwvdWw+Cgk8aDQ+UmVxdWlyZW1lbnRzPC9oND4KCQk8ZGl2PgoJCQk8Yj5IZWFkZXI6PC9iPiAmbmJzcDs8YSBocmVmPSIuLi9oZWFkZXJzL2l0ZXJhdGlvbi9pdGVyYXRlLmh0bWwiPiZsdDtib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2l0ZXJhdGUuaHBwJmd0OzwvYT4KCQk8L2Rpdj4KCTxoND5TYW1wbGUgQ29kZTwvaDQ+CjxkaXY+PHByZT4KLy8gZmlsZS5oCiNpZiAhPGEgaHJlZj0iaXNfaXRlcmF0aW5nLmh0bWwiPkJPT1NUX1BQX0lTX0lURVJBVElORzwvYT4KCiAgICNpZm5kZWYgRklMRV9IXwogICAjZGVmaW5lIEZJTEVfSF8KCiAgICNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2l0ZXJhdGlvbi9pdGVyYXRlLmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vaXRlcmF0ZS5ocHA8L2E+Jmd0OwoKICAgI2RlZmluZSA8YSBocmVmPSJpdGVyYXRpb25fcGFyYW1zX3guaHRtbCI+Qk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xPC9hPiAoMywgKDEsIDEwLCAiZmlsZS5oIikpCiAgICNpbmNsdWRlIDxhIGhyZWY9Iml0ZXJhdGUuaHRtbCI+Qk9PU1RfUFBfSVRFUkFURTwvYT4oKQoKICAgI2RlZmluZSA8YSBocmVmPSJmaWxlbmFtZV94Lmh0bWwiPkJPT1NUX1BQX0ZJTEVOQU1FXzE8L2E+ICJmaWxlLmgiCiAgICNkZWZpbmUgPGEgaHJlZj0iaXRlcmF0aW9uX2xpbWl0cy5odG1sIj5CT09TVF9QUF9JVEVSQVRJT05fTElNSVRTPC9hPiAoMTEsIDIwKQogICAjaW5jbHVkZSA8YSBocmVmPSJpdGVyYXRlLmh0bWwiPkJPT1NUX1BQX0lURVJBVEU8L2E+KCkKCiAgICNlbmRpZgoKI2Vsc2UKCiAgIGN1cnJlbnQgaXRlcmF0aW9uIHZhbHVlIGlzIDxhIGhyZWY9Iml0ZXJhdGlvbi5odG1sIj5CT09TVF9QUF9JVEVSQVRJT048L2E+KCkKCiNlbmRpZgo8L3ByZT48L2Rpdj4KCTxociBzaXplPSIxIj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8aT6pIENvcHlyaWdodCA8YSBocmVmPSJodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbSIgdGFyZ2V0PSJfdG9wIj5Ib3VzZW1hcnF1ZSBPeTwvYT4gMjAwMjwvaT4KCQk8L2JyPjxpPqkgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyPC9pPgoJPC9kaXY+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPHA+PHNtYWxsPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQoJCWFjY29tcGFueWluZyBmaWxlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uL0xJQ0VOU0VfMV8wLnR4dCI+TElDRU5TRV8xXzAudHh0PC9hPiBvcgoJCWNvcHkgYXQgPGEgaHJlZj0KCQkiaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Ij53d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dDwvYT4pPC9zbWFsbD48L3A+Cgk8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==