PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTjwvdGl0bGU+Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAgMHB4OyI+CgkJVGhlIDxiPkJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTjwvYj4gbWFjcm8gZXhwYW5kcyB0byB0aGUgaXRlcmF0aW9uIHZhbHVlIG9mIGFuIGFic29sdXRlIDxpPmZpbGUtaXRlcmF0aW9uPC9pPiBkZXB0aC4KCTwvZGl2PgoJPGg0PlVzYWdlPC9oND4KCQk8ZGl2IGNsYXNzPSJjb2RlIj4KCQkJPGI+Qk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OPC9iPig8aT5pPC9pPikKCQk8L2Rpdj4KCTxoND5Bcmd1bWVudHM8L2g0PgoJCTxkbD4KCQkJPGR0Pmk8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgYWJzb2x1dGUgZGVwdGggb2YgdGhlIGZyYW1lIHdob3NlIGl0ZXJhdGlvbiB2YWx1ZSBpcyB0byBiZSByZXRyZWl2ZWQuJm5ic3A7CgkJCQlWYWxpZCB2YWx1ZXMgcmFuZ2UgZnJvbSA8aT4xPC9pPiB0byA8Yj5CT09TVF9QUF9JVEVSQVRJT05fREVQVEg8L2I+KCkuCgkJCTwvZGQ+CgkJPC9kbD4KCTxoND5SZW1hcmtzPC9oND4KCQk8ZGl2PgoJCQlUaGlzIG1hY3JvIGlzIG9ubHkgdmFsaWQgd2hlbiBhIDxpPmZpbGUtaXRlcmF0aW9uPC9pPiBpcyBpbiBwcm9ncmVzcy4KCQk8L2Rpdj4KCTxoND5SZXF1aXJlbWVudHM8L2g0PgoJCTxkaXY+CgkJCTxiPkhlYWRlcjo8L2I+ICZuYnNwOzxhIGhyZWY9Ii4uL2hlYWRlcnMvaXRlcmF0aW9uL2l0ZXJhdGUuaHRtbCI+Jmx0O2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vaXRlcmF0ZS5ocHAmZ3Q7PC9hPgoJCTwvZGl2PgoJPGg0PlNhbXBsZSBDb2RlPC9oND4KPGRpdj48cHJlPgovLyBmaWxlLmgKI2lmICE8YSBocmVmPSJpc19pdGVyYXRpbmcuaHRtbCI+Qk9PU1RfUFBfSVNfSVRFUkFUSU5HPC9hPgoKICAgI2lmbmRlZiBGSUxFX0hfCiAgICNkZWZpbmUgRklMRV9IXwoKICAgI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvaXRlcmF0aW9uL2l0ZXJhdGUuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9pdGVyYXRlLmhwcDwvYT4mZ3Q7CgogICAjZGVmaW5lIDxhIGhyZWY9Iml0ZXJhdGlvbl9wYXJhbXNfeC5odG1sIj5CT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzE8L2E+ICgzLCAoMSwgMTAsICJmaWxlLmgiKSkKICAgI2luY2x1ZGUgPGEgaHJlZj0iaXRlcmF0ZS5odG1sIj5CT09TVF9QUF9JVEVSQVRFPC9hPigpCgogICAjZW5kaWYKCiNlbGlmIDxhIGhyZWY9Iml0ZXJhdGlvbl9kZXB0aC5odG1sIj5CT09TVF9QUF9JVEVSQVRJT05fREVQVEg8L2E+KCkgPT0gMQoKICAgLS0KICAgI2RlZmluZSA8YSBocmVmPSJpdGVyYXRpb25fcGFyYW1zX3guaHRtbCI+Qk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18yPC9hPiBcCiAgICAgICgzLCAoMSwgPGEgaHJlZj0iaXRlcmF0aW9uLmh0bWwiPkJPT1NUX1BQX0lURVJBVElPTjwvYT4oKSwgImZpbGUuaCIpKSAgIFwKICAgICAgLyoqLwoKICAgI2luY2x1ZGUgPGEgaHJlZj0iaXRlcmF0ZS5odG1sIj5CT09TVF9QUF9JVEVSQVRFPC9hPigpCgojZWxzZQoKICAgb3V0ZXI6IDxhIGhyZWY9ImZyYW1lX2l0ZXJhdGlvbi5odG1sIj5CT09TVF9QUF9GUkFNRV9JVEVSQVRJT048L2E+KDEpCiAgIGlubmVyOiA8YSBocmVmPSJmcmFtZV9pdGVyYXRpb24uaHRtbCI+Qk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OPC9hPigyKQoKI2VuZGlmCjwvcHJlPjwvZGl2PgoJPGhyIHNpemU9IjEiPgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxpPqkgQ29weXJpZ2h0IDxhIGhyZWY9Imh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tIiB0YXJnZXQ9Il90b3AiPkhvdXNlbWFycXVlIE95PC9hPiAyMDAyPC9pPgoJCTwvYnI+PGk+qSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDI8L2k+Cgk8L2Rpdj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8cD48c21hbGw+RGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCgkJYWNjb21wYW55aW5nIGZpbGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vTElDRU5TRV8xXzAudHh0Ij5MSUNFTlNFXzFfMC50eHQ8L2E+IG9yCgkJY29weSBhdCA8YSBocmVmPQoJCSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPnd3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPik8L3NtYWxsPjwvcD4KCTwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K