PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0VYUEFORDwvdGl0bGU+Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAgMHB4OyI+CgkJVGhlIDxiPkJPT1NUX1BQX0VYUEFORDwvYj4gbWFjcm8gcGVyZm9ybXMgYSBkb3VibGUgbWFjcm8tZXhwYW5zaW9uIG9uIGl0cyBhcmd1bWVudC4KCTwvZGl2PgoJPGg0PlVzYWdlPC9oND4KCQk8ZGl2IGNsYXNzPSJjb2RlIj4KCQkJPGI+Qk9PU1RfUFBfRVhQQU5EPC9iPig8aT54PC9pPikKCQk8L2Rpdj4KCTxoND5Bcmd1bWVudHM8L2g0PgoJCTxkbD4KCQkJPGR0Png8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgYXJndW1lbnQgdG8gYmUgZXhwYW5kZWQgdHdpY2UuCgkJCTwvZGQ+CgkJPC9kbD4KCTxoND5SZW1hcmtzPC9oND4KCQk8ZGl2PgoJCQlUaGlzIG1hY3JvIGlzIHVzZWZ1bCB3aGVuIGEgZGVsYXkgaXMgbmVjZXNzYXJ5IHRvIHByb2R1Y2UgdGhlIGNvcnJlY3Qgc2VtYW50aWNzIG9mIGEgbWFjcm8gaW52b2NhdGlvbi4mbmJzcDsKCQkJRm9yIGV4YW1wbGUsIHdoZW4gYSBtYWNybyBleHBhbmRzIHRvIGFuIGFyZ3VtZW50IGxpc3QgdG8gYW5vdGhlciBtYWNyby4mbmJzcDsKCQkJVGhpcyBtYWNybyB3aWxsIGV4cGFuZCB0aGUgdGhlIGFyZ3VtZW50IGxpc3Qgb24gdGhlIGZpcnN0IHBhc3MsIGFuZCB0aGVuIHJlc2NhbiB0byBleHBhbmQgYW55IG1vcmUgbWFjcm9zLgoJCTwvZGl2PgoJPGg0PlJlcXVpcmVtZW50czwvaDQ+CgkJPGRpdj4KCQkJPGI+SGVhZGVyOjwvYj4gJm5ic3A7PGEgaHJlZj0iLi4vaGVhZGVycy9mYWNpbGl0aWVzL2V4cGFuZC5odG1sIj4mbHQ7Ym9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZXhwYW5kLmhwcCZndDs8L2E+CgkJPC9kaXY+Cgk8aDQ+U2FtcGxlIENvZGU8L2g0Pgo8ZGl2PjxwcmU+CiNpbmNsdWRlICZsdDs8YSBocmVmPSIuLi9oZWFkZXJzL2NvbnRyb2wvaWYuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvaWYuaHBwPC9hPiZndDsKI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvZmFjaWxpdGllcy9leHBhbmQuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZXhwYW5kLmhwcDwvYT4mZ3Q7CgojZGVmaW5lIE1BQ1JPKGEsIGIsIGMpIChhKShiKShjKQojZGVmaW5lIEFSR1MoKSAoMSwgMiwgMykKCjxhIGhyZWY9ImV4cGFuZC5odG1sIj5CT09TVF9QUF9FWFBBTkQ8L2E+KE1BQ1JPIEFSR1MoKSkgLy8gZXhwYW5kcyB0byAoMSkoMikoMykKCiNkZWZpbmUgU0FNUExFKG4pIFwKICAgPGEgaHJlZj0iZXhwYW5kLmh0bWwiPkJPT1NUX1BQX0VYUEFORDwvYT4oIFwKICAgICAgTUFDUk8gXAogICAgICA8YSBocmVmPSJpZi5odG1sIj5CT09TVF9QUF9JRjwvYT4oIFwKICAgICAgICAgbiwgXAogICAgICAgICAoeCwgeSwgeiksIFwKICAgICAgICAgKGEsIGIsIGMpIFwKICAgICAgKSBcCiAgICkgXAogICAvKiovCgpTQU1QTEUoMCkgLy8gZXhwYW5kcyB0byAoYSkoYikoYykKU0FNUExFKDEpIC8vIGV4cGFuZHMgdG8gKHgpKHkpKHopCjwvcHJlPjwvZGl2PgoJPGhyIHNpemU9IjEiPgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxpPqkgQ29weXJpZ2h0IDxhIGhyZWY9Imh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tIiB0YXJnZXQ9Il90b3AiPkhvdXNlbWFycXVlIE95PC9hPiAyMDAyPC9pPgoJCTwvYnI+PGk+qSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDI8L2k+Cgk8L2Rpdj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8cD48c21hbGw+RGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCgkJYWNjb21wYW55aW5nIGZpbGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vTElDRU5TRV8xXzAudHh0Ij5MSUNFTlNFXzFfMC50eHQ8L2E+IG9yCgkJY29weSBhdCA8YSBocmVmPQoJCSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPnd3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPik8L3NtYWxsPjwvcD4KCTwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K