PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0FTU0lHTl9TTE9UPC90aXRsZT4KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlcy5jc3MiPgo8L2hlYWQ+Cjxib2R5PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICAwcHg7Ij4KCQlUaGUgPGI+Qk9PU1RfUFBfQVNTSUdOX1NMT1Q8L2I+IG1hY3JvIGZ1bGx5IGV2YWx1YXRlcyBhIG51bWVyaWMgbWFjcm8gb3IgZXhwcmVzc2lvbi4KCTwvZGl2PgoJPGg0PlVzYWdlPC9oND4KCQk8ZGl2IGNsYXNzPSJjb2RlIj4KCQkJI2luY2x1ZGUgPGI+Qk9PU1RfUFBfQVNTSUdOX1NMT1Q8L2I+KDxpPmk8L2k+KQoJCTwvZGl2PgoJPGg0PkFyZ3VtZW50czwvaDQ+CgkJPGRsPgoJCQk8ZHQ+aTwvZHQ+CgkJCTxkZD4KCQkJCVRoZSA8aT5zbG90PC9pPiBpbmRleCB0aGF0IGlzIHRvIGJlIGFzc2lnbmVkLiZuYnNwOwoJCQkJVGhpcyB2YWx1ZSBtdXN0IGJlIGluIHRoZSByYW5nZSBvZiA8aT4xPC9pPiB0byA8Yj5CT09TVF9QUF9MSU1JVF9TTE9UX0NPVU5UPC9iPi4KCQkJPC9kZD4KCQk8L2RsPgoJPGg0PlJlbWFya3M8L2g0PgoJCTxkaXY+CgkJCVByaW9yIHRvIHVzZSwgdGhlIDxpPm5hbWVkIGV4dGVybmFsIGFyZ3VtZW50PC9pPiA8Yj5CT09TVF9QUF9WQUxVRTwvYj4gbXVzdCBiZSBkZWZpbmVkLiZuYnNwOwoJCQlBbHNvLCBpdCBtdXN0IGV4cGFuZCB0byBhIG51bWVyaWMgdmFsdWUgdGhhdCBpcyBpbiB0aGUgcmFuZ2Ugb2YgPGk+MDwvaT4gdG8gPGk+MjwvaT5ePGk+MzI8L2k+IC0gPGk+MTwvaT4uCgkJPC9kaXY+Cgk8aDQ+U2VlIEFsc288L2g0PgoJCTx1bD4KCQkJPGxpPjxhIGhyZWY9ImxpbWl0X3Nsb3RfY291bnQuaHRtbCI+Qk9PU1RfUFBfTElNSVRfU0xPVF9DT1VOVDwvYT48L2xpPgoJCQk8bGk+PGEgaHJlZj0idmFsdWUuaHRtbCI+Qk9PU1RfUFBfVkFMVUU8L2E+PC9saT4KCQk8L3VsPgoJPGg0PlJlcXVpcmVtZW50czwvaDQ+CgkJPGRpdj4KCQkJPGI+SGVhZGVyOjwvYj4gJm5ic3A7PGEgaHJlZj0iLi4vaGVhZGVycy9zbG90L3Nsb3QuaHRtbCI+Jmx0O2Jvb3N0L3ByZXByb2Nlc3Nvci9zbG90L3Nsb3QuaHBwJmd0OzwvYT4KCQk8L2Rpdj4KCTxoND5TYW1wbGUgQ29kZTwvaDQ+CjxkaXY+PHByZT4KI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvc2xvdC9zbG90Lmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L3Nsb3QuaHBwPC9hPiZndDsKCiNkZWZpbmUgWCgpIDQKCiNkZWZpbmUgPGEgaHJlZj0idmFsdWUuaHRtbCI+Qk9PU1RfUFBfVkFMVUU8L2E+IDEgKyAyICsgMyArIFgoKQojaW5jbHVkZSA8YSBocmVmPSJhc3NpZ25fc2xvdC5odG1sIj5CT09TVF9QUF9BU1NJR05fU0xPVDwvYT4oMSkKCiN1bmRlZiBYCgo8YSBocmVmPSJzbG90Lmh0bWwiPkJPT1NUX1BQX1NMT1Q8L2E+KDEpIC8vIGV4cGFuZHMgdG8gMTAKPC9wcmU+PC9kaXY+Cgk8aHIgc2l6ZT0iMSI+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPGk+qSBDb3B5cmlnaHQgPGEgaHJlZj0iaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20iIHRhcmdldD0iX3RvcCI+SG91c2VtYXJxdWUgT3k8L2E+IDIwMDI8L2k+CgkJPC9icj48aT6pIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMjwvaT4KCTwvZGl2PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxwPjxzbWFsbD5EaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKCQlhY2NvbXBhbnlpbmcgZmlsZSA8YSBocmVmPSIuLi8uLi8uLi8uLi9MSUNFTlNFXzFfMC50eHQiPkxJQ0VOU0VfMV8wLnR4dDwvYT4gb3IKCQljb3B5IGF0IDxhIGhyZWY9CgkJImh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCI+d3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQ8L2E+KTwvc21hbGw+PC9wPgoJPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=