PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfUjwvdGl0bGU+Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAgMHB4OyI+CgkJVGhlIDxiPkJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfUjwvYj4gbWFjcm8gcmVwZWF0cyBhIG1hY3JvIGZvciBlYWNoIGVsZW1lbnQgaW4gYSA8aT5saXN0PC9pPi4mbmJzcDsKCQlJdCByZWVudGVycyA8Yj5CT09TVF9QUF9GT1I8L2I+IHdpdGggbWF4aW11bSBlZmZpY2llbmN5LgoJPC9kaXY+Cgk8aDQ+VXNhZ2U8L2g0PgoJCTxkaXYgY2xhc3M9ImNvZGUiPgoJCQk8Yj5CT09TVF9QUF9MSVNUX0ZPUl9FQUNIX1I8L2I+KDxpPnI8L2k+LCA8aT5tYWNybzwvaT4sIDxpPmRhdGE8L2k+LCA8aT5saXN0PC9pPikKCQk8L2Rpdj4KCTxoND5Bcmd1bWVudHM8L2g0PgoJCTxkbD4KCQkJPGR0PnI8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgbmV4dCBhdmFpbGFibGUgPGI+Qk9PU1RfUFBfRk9SPC9iPiByZXBldGl0aW9uLgoJCQk8L2RkPgoJCQk8ZHQ+bWFjcm88L2R0PgoJCQk8ZGQ+CgkJCQlBIHRlcm5hcnkgbWFjcm8gb2YgdGhlIGZvcm0gPGk+bWFjcm88L2k+KDxpPnI8L2k+LCA8aT5kYXRhPC9pPiwgPGk+ZWxlbTwvaT4pLiZuYnNwOwoJCQkJVGhpcyBtYWNybyBpcyBleHBhbmRlZCBieSA8Yj5CT09TVF9QUF9MSVNUX0ZPUl9FQUNIPC9iPiB3aXRoIGVhY2ggZWxlbWVudCBpbiA8aT5saXN0PC9pPi4mbmJzcDsKCQkJCUl0IGlzIGV4cGFuZGVkIHdpdGggdGhlIG5leHQgYXZhaWxhYmxlIDxiPkJPT1NUX1BQX0ZPUjwvYj4gcmVwZXRpdGlvbiwgdGhlIGF1eGlsaWFyeSA8aT5kYXRhPC9pPiwgYW5kIHRoZSBjdXJyZW50IGVsZW1lbnQuCgkJCTwvZGQ+CgkJCTxkdD5kYXRhPC9kdD4KCQkJPGRkPgoJCQkJQXV4aWxpYXJ5IGRhdGEgcGFzc2VkIHRvIDxpPm1hY3JvPC9pPi4KCQkJPC9kZD4KCQkJPGR0Pmxpc3Q8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgPGk+bGlzdDwvaT4gZm9yIHdoaWNoIDxpPm1hY3JvPC9pPiB3aWxsIGJlIGludm9rZWQgb24gZWFjaCBlbGVtZW50LgoJCQk8L2RkPgoJCTwvZGw+Cgk8aDQ+UmVtYXJrczwvaDQ+CgkJPGRpdj4KCQkJVGhpcyBtYWNybyBpcyBhIHJlcGV0aXRpb24gY29uc3RydWN0LiZuYnNwOwoJCQlJZiA8aT5saXN0PC9pPiBpcyAoPGk+YTwvaT4sICg8aT5iPC9pPiwgKDxpPmM8L2k+LCA8Yj5CT09TVF9QUF9OSUw8L2I+KSkpLCBpdCBleHBhbmRzIHRvIHRoZSBzZXF1ZW5jZToKCQkJPGRpdj4KCQkJCTxpPm1hY3JvPC9pPig8aT5yPC9pPiwgPGk+ZGF0YTwvaT4sIDxpPmE8L2k+KSA8aT5tYWNybzwvaT4oPGk+cjwvaT4sIDxpPmRhdGE8L2k+LCA8aT5iPC9pPikgPGk+bWFjcm88L2k+KDxpPnI8L2k+LCA8aT5kYXRhPC9pPiwgPGk+YzwvaT4pCgkJCTwvZGl2PgoJCTwvZGl2PgoJPGg0PlNlZSBBbHNvPC9oND4KCQk8dWw+CgkJCTxsaT48YSBocmVmPSJsaXN0X2Zvcl9lYWNoLmh0bWwiPkJPT1NUX1BQX0xJU1RfRk9SX0VBQ0g8L2E+PC9saT4KCQk8L3VsPgoJPGg0PlJlcXVpcmVtZW50czwvaDQ+CgkJPGRpdj4KCQkJPGI+SGVhZGVyOjwvYj4gJm5ic3A7PGEgaHJlZj0iLi4vaGVhZGVycy9saXN0L2Zvcl9lYWNoLmh0bWwiPiZsdDtib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb3JfZWFjaC5ocHAmZ3Q7PC9hPgoJCTwvZGl2PgoJPGg0PlNhbXBsZSBDb2RlPC9oND4KPGRpdj48cHJlPgojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9saXN0L2FkdC5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hZHQuaHBwPC9hPiZndDsKI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvbGlzdC9mb3JfZWFjaC5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb3JfZWFjaC5ocHA8L2E+Jmd0OwojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9yZXBldGl0aW9uL2Zvci5odG1sIj5ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9mb3IuaHBwPC9hPiZndDsKCiNkZWZpbmUgTElTVCAoeCwgKHksICh6LCA8YSBocmVmPSJuaWwuaHRtbCI+Qk9PU1RfUFBfTklMPC9hPikpKQoKI2RlZmluZSBNQUNST18yKHIsIGRhdGEsIGVsZW0pIGVsZW0KCiNkZWZpbmUgUFJFRChyLCBzdGF0ZSkgPGEgaHJlZj0ibGlzdF9pc19jb25zLmh0bWwiPkJPT1NUX1BQX0xJU1RfSVNfQ09OUzwvYT4oc3RhdGUpCiNkZWZpbmUgT1Aociwgc3RhdGUpIDxhIGhyZWY9Imxpc3RfcmVzdC5odG1sIj5CT09TVF9QUF9MSVNUX1JFU1Q8L2E+KHN0YXRlKQojZGVmaW5lIE1BQ1JPKHIsIHN0YXRlKSBbIDxhIGhyZWY9Imxpc3RfZm9yX2VhY2hfci5odG1sIj5CT09TVF9QUF9MSVNUX0ZPUl9FQUNIX1I8L2E+KHIsIE1BQ1JPXzIsIF8sIHN0YXRlKSBdCgo8YSBocmVmPSJmb3IuaHRtbCI+Qk9PU1RfUFBfRk9SPC9hPihMSVNULCBQUkVELCBPUCwgTUFDUk8pCiAgIC8vIGV4cGFuZHMgdG8gW3ggeSB6XSBbeSB6XSBbel0KPC9wcmU+PC9kaXY+Cgk8aHIgc2l6ZT0iMSI+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPGk+qSBDb3B5cmlnaHQgPGEgaHJlZj0iaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20iIHRhcmdldD0iX3RvcCI+SG91c2VtYXJxdWUgT3k8L2E+IDIwMDI8L2k+CgkJPC9icj48aT6pIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMjwvaT4KCTwvZGl2PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxwPjxzbWFsbD5EaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKCQlhY2NvbXBhbnlpbmcgZmlsZSA8YSBocmVmPSIuLi8uLi8uLi8uLi9MSUNFTlNFXzFfMC50eHQiPkxJQ0VOU0VfMV8wLnR4dDwvYT4gb3IKCQljb3B5IGF0IDxhIGhyZWY9CgkJImh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCI+d3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KTwvc21hbGw+PC9wPgoJPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=