PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSTwvdGl0bGU+Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZXMuY3NzIj4KPC9oZWFkPgo8Ym9keT4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAgMHB4OyI+CgkJVGhlIDxiPkJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSTwvYj4gbWFjcm8gcmVwZWF0cyBhIG1hY3JvIGZvciBlYWNoIGVsZW1lbnQgaW4gYSA8aT5saXN0PC9pPi4KCTwvZGl2PgoJPGg0PlVzYWdlPC9oND4KCQk8ZGl2IGNsYXNzPSJjb2RlIj4KCQkJPGI+Qk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JPC9iPig8aT5tYWNybzwvaT4sIDxpPmRhdGE8L2k+LCA8aT5saXN0PC9pPikKCQk8L2Rpdj4KCTxoND5Bcmd1bWVudHM8L2g0PgoJCTxkbD4KCQkJPGR0Pm1hY3JvPC9kdD4KCQkJPGRkPgoJCQkJQSBtYWNybyBvZiB0aGUgZm9ybSA8aT5tYWNybzwvaT4oPGk+cjwvaT4sIDxpPmRhdGE8L2k+LCA8aT5pPC9pPiwgPGk+ZWxlbTwvaT4pLiZuYnNwOwoJCQkJVGhpcyBtYWNybyBpcyBleHBhbmRlZCBieSA8Yj5CT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0k8L2I+IHdpdGggZWFjaCBlbGVtZW50IGluIDxpPmxpc3Q8L2k+LiZuYnNwOwoJCQkJSXQgaXMgZXhwYW5kZWQgd2l0aCB0aGUgbmV4dCBhdmFpbGFibGUgPGI+Qk9PU1RfUFBfRk9SPC9iPiByZXBldGl0aW9uLCB0aGUgYXV4aWxpYXJ5IDxpPmRhdGE8L2k+LCB0aGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgZWxlbWVudCwgYW5kIHRoZSBjdXJyZW50IGVsZW1lbnQuCgkJCTwvZGQ+CgkJCTxkdD5kYXRhPC9kdD4KCQkJPGRkPgoJCQkJQXV4aWxpYXJ5IGRhdGEgcGFzc2VkIHRvIDxpPm1hY3JvPC9pPi4KCQkJPC9kZD4KCQkJPGR0Pmxpc3Q8L2R0PgoJCQk8ZGQ+CgkJCQlUaGUgPGk+bGlzdDwvaT4gZm9yIHdoaWNoIDxpPm1hY3JvPC9pPiB3aWxsIGJlIGludm9rZWQgb24gZWFjaCBlbGVtZW50LgoJCQk8L2RkPgoJCTwvZGw+Cgk8aDQ+UmVtYXJrczwvaDQ+CgkJPGRpdj4KCQkJVGhpcyBtYWNybyBpcyBhIHJlcGV0aXRpb24gY29uc3RydWN0LiZuYnNwOwoJCQlJZiA8aT5saXN0PC9pPiBpcyAoPGk+YTwvaT4sICg8aT5iPC9pPiwgKDxpPmM8L2k+LCA8Yj5CT09TVF9QUF9OSUw8L2I+KSkpLCBpdCBleHBhbmRzIHRvIHRoZSBzZXF1ZW5jZToKCQkJPGRpdj4KCQkJCTxpPm1hY3JvPC9pPig8aT5yPC9pPiwgPGk+ZGF0YTwvaT4sIDxpPjA8L2k+LCA8aT5hPC9pPikgPGk+bWFjcm88L2k+KDxpPnI8L2k+LCA8aT5kYXRhPC9pPiwgPGk+MTwvaT4sIDxpPmI8L2k+KSA8aT5tYWNybzwvaT4oPGk+cjwvaT4sIDxpPmRhdGE8L2k+LCA8aT4yPC9pPiwgPGk+YzwvaT4pCgkJCTwvZGl2PgoJCTwvZGl2PgoJCTxkaXY+CgkJCVByZXZpb3VzbHksIHRoaXMgbWFjcm8gY291bGQgbm90IGJlIHVzZWQgaW5zaWRlIDxiPkJPT1NUX1BQX0ZPUjwvYj4uJm5ic3A7CgkJCVRoZXJlIGlzIG5vIGxvbmdlciBhbnkgc3VjaCByZXN0cmljdGlvbi4mbmJzcDsKCQkJSXQgaXMgbW9yZSBlZmZpY2llbnQsIGhvd2V2ZXIsIHRvIHVzZSA8Yj5CT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfUjwvYj4gaW4gc3VjaCBhIHNpdHVhdGlvbi4KCQk8L2Rpdj4KCTxoND5TZWUgQWxzbzwvaDQ+CgkJPHVsPgoJCQk8bGk+PGEgaHJlZj0ibGlzdF9mb3JfZWFjaF9pX3IuaHRtbCI+Qk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX1I8L2E+PC9saT4KCQk8L3VsPgoJPGg0PlJlcXVpcmVtZW50czwvaDQ+CgkJPGRpdj4KCQkJPGI+SGVhZGVyOjwvYj4gJm5ic3A7PGEgaHJlZj0iLi4vaGVhZGVycy9saXN0L2Zvcl9lYWNoX2kuaHRtbCI+Jmx0O2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2Zvcl9lYWNoX2kuaHBwJmd0OzwvYT4KCQk8L2Rpdj4KCTxoND5TYW1wbGUgQ29kZTwvaDQ+CjxkaXY+PHByZT4KI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvY2F0Lmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPC9hPiZndDsKI2luY2x1ZGUgJmx0OzxhIGhyZWY9Ii4uL2hlYWRlcnMvbGlzdC9mb3JfZWFjaF9pLmh0bWwiPmJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2Zvcl9lYWNoX2kuaHBwPC9hPiZndDsKCiNkZWZpbmUgTElTVCAodywgKHgsICh5LCAoeiwgPGEgaHJlZj0ibmlsLmh0bWwiPkJPT1NUX1BQX05JTDwvYT4pKSkpCgojZGVmaW5lIE1BQ1JPKHIsIGRhdGEsIGksIGVsZW0pIDxhIGhyZWY9ImNhdC5odG1sIj5CT09TVF9QUF9DQVQ8L2E+KGVsZW0sIDxhIGhyZWY9ImNhdC5odG1sIj5CT09TVF9QUF9DQVQ8L2E+KGRhdGEsIGkpKQoKPGEgaHJlZj0ibGlzdF9mb3JfZWFjaF9pLmh0bWwiPkJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSTwvYT4oTUFDUk8sIF8sIExJU1QpIC8vIGV4cGFuZHMgdG8gd18wIHhfMSB5XzIgel8zCjwvcHJlPjwvZGl2PgoJPGhyIHNpemU9IjEiPgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDBweDsiPgoJCTxpPqkgQ29weXJpZ2h0IDxhIGhyZWY9Imh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tIiB0YXJnZXQ9Il90b3AiPkhvdXNlbWFycXVlIE95PC9hPiAyMDAyPC9pPgoJCTwvYnI+PGk+qSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDI8L2k+Cgk8L2Rpdj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8cD48c21hbGw+RGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCgkJYWNjb21wYW55aW5nIGZpbGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vTElDRU5TRV8xXzAudHh0Ij5MSUNFTlNFXzFfMC50eHQ8L2E+IG9yCgkJY29weSBhdCA8YSBocmVmPQoJCSJodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQiPnd3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0PC9hPik8L3NtYWxsPjwvcD4KCTwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4K