PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0VOVU1fejwvdGl0bGU+Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAgMHB4OyI+CgkJVGhlIDxiPkJPT1NUX1BQX0VOVU1fPGk+ejwvaT48L2I+IG1hY3JvIHJlcHJlc2VudHMgYSByZWVudHJ5IGludG8gdGhlIDxiPkJPT1NUX1BQX0VOVU08L2I+IHJlcGV0aXRpb24gY29uc3RydWN0LgoJPC9kaXY+Cgk8aDQ+VXNhZ2U8L2g0PgoJCTxkaXYgY2xhc3M9ImNvZGUiPgoJCQk8Yj5CT09TVF9QUF9FTlVNXzwvYj4gIyMgPGk+ejwvaT4oPGk+Y291bnQ8L2k+LCA8aT5tYWNybzwvaT4sIDxpPmRhdGE8L2k+KQoJCTwvZGl2PgoJPGg0PkFyZ3VtZW50czwvaDQ+CgkJPGRsPgoJCQk8ZHQ+ejwvZHQ+CgkJCTxkZD4KCQkJCVRoZSBuZXh0IGF2YWlsYWJsZSA8Yj5CT09TVF9QUF9SRVBFQVQ8L2I+IGRpbWVuc2lvbi4KCQkJPC9kZD4KCQkJPGR0PmNvdW50PC9kdD4KCQkJPGRkPgoJCQkJVGhlIG51bWJlciBvZiByZXBldGl0aW91cyBjYWxscyB0byA8aT5tYWNybzwvaT4uJm5ic3A7CgkJCQlWYWxpZCB2YWx1ZXMgcmFuZ2UgZnJvbSA8aT4wPC9pPiB0byA8Yj5CT09TVF9QUF9MSU1JVF9SRVBFQVQ8L2I+LgoJCQk8L2RkPgoJCQk8ZHQ+bWFjcm88L2R0PgoJCQk8ZGQ+CgkJCQlBIHRlcm5hcnkgb3BlcmF0aW9uIG9mIHRoZSBmb3JtIDxpPm1hY3JvPC9pPig8aT56PC9pPiwgPGk+bjwvaT4sIDxpPmRhdGE8L2k+KS4mbmJzcDsKCQkJCVRoaXMgbWFjcm8gaXMgZXhwYW5kZWQgYnkgPGI+Qk9PU1RfUFBfRU5VTTwvYj4gd2l0aCB0aGUgbmV4dCBhdmFpbGFibGUgcmVwZXRpdGlvbiBkZXB0aCwKCQkJCXRoZSBjdXJyZW50IHJlcGV0aXRpb24gbnVtYmVyLCBhbmQgdGhlIGF1eGlsaWFyeSA8aT5kYXRhPC9pPiBhcmd1bWVudC4mbmJzcDsKCQkJPC9kZD4KCQkJPGR0PmRhdGE8L2R0PgoJCQk8ZGQ+CgkJCQlBdXhpbGlhcnkgZGF0YSBwYXNzZWQgdG8gPGk+bWFjcm88L2k+LgoJCQk8L2RkPgoJCTwvZGw+Cgk8aDQ+UmVtYXJrczwvaDQ+CgkJPGRpdj4KCQkJVGhpcyBtYWNybyBleHBhbmRzIHRvIHRoZSBzZXF1ZW5jZToKCQkJPGRpdj4KCQkJCTxpPm1hY3JvPC9pPig8aT56PC9pPiwgPGk+MDwvaT4sIDxpPmRhdGE8L2k+KSwgPGk+bWFjcm88L2k+KDxpPno8L2k+LCA8aT4xPC9pPiwgPGk+ZGF0YTwvaT4pLCAuLi4gPGk+bWFjcm88L2k+KDxpPno8L2k+LCA8aT5jb3VudDwvaT4gLSA8aT4xPC9pPiwgPGk+ZGF0YTwvaT4pCgkJCTwvZGl2PgoJCTwvZGl2PgoJCTxkaXY+CgkJCUF0IGNlcnRhaW4gdGltZXMsIGl0IG1heSBiZSBuZWNlc3NhcnkgdG8gcGVyZm9ybSB0aGUgY29uY2F0ZW5hdGlvbiB3aXRoIDxiPkJPT1NUX1BQX0NBVDwvYj4gcmF0aGVyIHRoYW4gdGhlIHByZXByb2Nlc3NvciB0b2tlbi1wYXN0aW5nIG9wZXJhdG9yLiZuYnNwOwoJCQlUaGlzIGhhcHBlbnMgd2hlbiB0aGUgPGk+ejwvaT4gdmFsdWUgaXMgYSBtYWNybyBpbnZvY2F0aW9uIGl0c2VsZi4mbmJzcDsKCQkJSXQgbmVlZHMgYSBkZWxheSB0byBhbGxvdyBpdCB0byBleHBhbmQuJm5ic3A7CgkJCVRoZSBzeW50YXggaW4gc3VjaCBhIHNjZW5hcmlvIGJlY29tZXM6CgkJCTxkaXY+CgkJCQk8Yj5CT09TVF9QUF9DQVQ8L2I+KDxiPkJPT1NUX1BQX0VOVU1fPC9iPiwgPGk+ejwvaT4pKDxpPmNvdW50PC9pPiwgPGk+bWFjcm88L2k+LCA8aT5kYXRhPC9pPikKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8aDQ+U2VlIEFsc288L2g0PgoJCTx1bD4KCQkJPGxpPjxhIGhyZWY9ImNhdC5odG1sIj5CT09TVF9QUF9DQVQ8L2E+PC9saT4KCQkJPGxpPjxhIGhyZWY9ImVudW0uaHRtbCI+Qk9PU1RfUFBfRU5VTTwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0ibGltaXRfcmVwZWF0Lmh0bWwiPkJPT1NUX1BQX0xJTUlUX1JFUEVBVDwvYT48L2xpPgoJCTwvdWw+Cgk8aDQ+UmVxdWlyZW1lbnRzPC9oND4KCQk8ZGl2PgoJCQk8Yj5IZWFkZXI6PC9iPiAmbmJzcDs8YSBocmVmPSIuLi9oZWFkZXJzL3JlcGV0aXRpb24vZW51bS5odG1sIj4mbHQ7Ym9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bS5ocHAmZ3Q7PC9hPgoJCTwvZGl2PgoJPGg0PlNhbXBsZSBDb2RlPC9oND4KPGRpdj48cHJlPgojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9hcml0aG1ldGljL2luYy5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9pbmMuaHBwPC9hPiZndDsKI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvcmVwZXRpdGlvbi9lbnVtLmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW0uaHBwPC9hPiZndDsKCiNkZWZpbmUgVEVYVCh6LCBuLCB0ZXh0KSB0ZXh0CgojZGVmaW5lIFRUUCh6LCBuLCBfKSBcCiAgIHRlbXBsYXRlJmx0OyBcCiAgICAgIDxhIGhyZWY9ImVudW1fei5odG1sIj5CT09TVF9QUF9FTlVNXzwvYT4gIyMgeig8YSBocmVmPSJpbmMuaHRtbCI+Qk9PU1RfUFBfSU5DPC9hPihuKSwgVEVYVCwgY2xhc3MpIFwKICAgJmd0OyBcCiAgIGNsYXNzIFQgIyMgbiBcCiAgIC8qKi8KCjxhIGhyZWY9ImVudW0uaHRtbCI+Qk9PU1RfUFBfRU5VTTwvYT4oMywgVFRQLCBuaWwpCiAgIC8qCiAgICAgIGV4cGFuZHMgdG8uLi4KICAgICAgdGVtcGxhdGUmbHQ7Y2xhc3MmZ3Q7IGNsYXNzIFQwLAogICAgICB0ZW1wbGF0ZSZsdDtjbGFzcywgY2xhc3MmZ3Q7IGNsYXNzIFQxLAogICAgICB0ZW1wbGF0ZSZsdDtjbGFzcywgY2xhc3MsIGNsYXNzJmd0OyBjbGFzcyBUMgogICAqLwo8L3ByZT48L2Rpdj4KCTxociBzaXplPSIxIj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8aT6pIENvcHlyaWdodCA8YSBocmVmPSJodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbSIgdGFyZ2V0PSJfdG9wIj5Ib3VzZW1hcnF1ZSBPeTwvYT4gMjAwMjwvaT4KCQk8L2JyPjxpPqkgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyPC9pPgoJPC9kaXY+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPHA+PHNtYWxsPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQoJCWFjY29tcGFueWluZyBmaWxlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uL0xJQ0VOU0VfMV8wLnR4dCI+TElDRU5TRV8xXzAudHh0PC9hPiBvcgoJCWNvcHkgYXQgPGEgaHJlZj0KCQkiaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Ij53d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dDwvYT4pPC9zbWFsbD48L3A+Cgk8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==