PGh0bWw+CjxoZWFkPgoJPHRpdGxlPkJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9kPC90aXRsZT4KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlcy5jc3MiPgo8L2hlYWQ+Cjxib2R5PgoJPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6ICAwcHg7Ij4KCQlUaGUgPGI+Qk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzxpPmQ8L2k+PC9iPiBtYWNybyBmb2xkcyAob3IgYWNjdW11bGF0ZXMpIHRoZSBlbGVtZW50cyBvZiBhIDxpPmxpc3Q8L2k+IHJpZ2h0LXRvLWxlZnQuJm5ic3A7CgkJSXQgcmVlbnRlcnMgPGI+Qk9PU1RfUFBfV0hJTEU8L2I+IHdpdGggbWF4aW11bSBlZmZpY2llbmN5LgoJPC9kaXY+Cgk8aDQ+VXNhZ2U8L2g0PgoJCTxkaXYgY2xhc3M9ImNvZGUiPgoJCQk8Yj5CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfPC9iPiAjIyA8aT5kPC9pPig8aT5vcDwvaT4sIDxpPnN0YXRlPC9pPiwgPGk+bGlzdDwvaT4pCgkJPC9kaXY+Cgk8aDQ+QXJndW1lbnRzPC9oND4KCQk8ZGw+CgkJCTxkdD5kPC9kdD4KCQkJPGRkPgoJCQkJVGhlIG5leHQgYXZhaWxhYmxlIDxiPkJPT1NUX1BQX1dISUxFPC9iPiBpdGVyYXRpb24uCgkJCTwvZGQ+CgkJCTxkdD5vcDwvZHQ+CgkJCTxkZD4KCQkJCUEgdGVybmFyeSBvcGVyYXRpb24gb2YgdGhlIGZvcm0gPGk+b3A8L2k+KDxpPmQ8L2k+LCA8aT5zdGF0ZTwvaT4sIDxpPmVsZW08L2k+KS4mbmJzcDsKCQkJCVRoaXMgbWFjcm8gaXMgY2FsbGVkIGZvciBlYWNoIGVsZW1lbnQgaW4gPGk+bGlzdDwvaT4tLWVhY2ggdGltZSByZXR1cm5pbmcgYSBuZXcgPGk+c3RhdGU8L2k+LiZuYnNwOwoJCQkJVGhpcyBvcGVyYXRpb24gaXMgZXhwYW5kZWQgYnkgPGI+Qk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUPC9iPiB3aXRoIHRoZSBuZXh0IGF2YWlsYWJsZSA8Yj5CT09TVF9QUF9XSElMRTwvYj4gaXRlcmF0aW9uLAoJCQkJdGhlIGN1cnJlbnQgPGk+c3RhdGU8L2k+LCBhbmQgdGhlIGN1cnJlbnQgZWxlbWVudC4KCQkJPC9kZD4KCQkJPGR0PnN0YXRlPC9kdD4KCQkJPGRkPgoJCQkJVGhlIGluaXRpYWwgc3RhdGUgb2YgdGhlIGZvbGQuCgkJCTwvZGQ+CgkJCTxkdD5saXN0PC9kdD4KCQkJPGRkPgoJCQkJVGhlIDxpPmxpc3Q8L2k+IHRvIGJlIGZvbGRlZC4KCQkJPC9kZD4KCQk8L2RsPgoJPGg0PlJlbWFya3M8L2g0PgoJCTxkaXY+CgkJCUZvciB0aGUgPGk+bGlzdDwvaT4sICg8aT4wPC9pPiwgKDxpPjE8L2k+LCAoPGk+MjwvaT4sIDxiPkJPT1NUX1BQX05JTDwvYj4pKSksIHRoaXMgbWFjcm8gZXhwYW5kcyB0bzoKCQkJPGRpdj4KCQkJCTxpPm9wPC9pPig8aT5kPC9pPiwgPGk+b3A8L2k+KDxpPmQ8L2k+LCA8aT5vcDwvaT4oPGk+ZDwvaT4sIDxpPnN0YXRlPC9pPiwgPGk+MjwvaT4pLCA8aT4xPC9pPiksIDxpPjA8L2k+KQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTxoND5TZWUgQWxzbzwvaDQ+CgkJPHVsPgoJCQk8bGk+PGEgaHJlZj0ibGlzdF9mb2xkX3JpZ2h0Lmh0bWwiPkJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVDwvYT48L2xpPgoJCTwvdWw+Cgk8aDQ+UmVxdWlyZW1lbnRzPC9oND4KCQk8ZGl2PgoJCQk8Yj5IZWFkZXI6PC9iPiAmbmJzcDs8YSBocmVmPSIuLi9oZWFkZXJzL2xpc3QvZm9sZF9yaWdodC5odG1sIj4mbHQ7Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZm9sZF9yaWdodC5ocHAmZ3Q7PC9hPgoJCTwvZGl2PgoJPGg0PlNhbXBsZSBDb2RlPC9oND4KPGRpdj48cHJlPgojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9jYXQuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA8L2E+Jmd0OwojaW5jbHVkZSAmbHQ7PGEgaHJlZj0iLi4vaGVhZGVycy9saXN0L2ZvbGRfcmlnaHQuaHRtbCI+Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZm9sZF9yaWdodC5ocHA8L2E+Jmd0OwoKI2RlZmluZSBMMSAoYSwgKGIsIChjLCA8YSBocmVmPSJuaWwuaHRtbCI+Qk9PU1RfUFBfTklMPC9hPikpKQojZGVmaW5lIEwyIChMMSwgKEwxLCAoTDEsIDxhIGhyZWY9Im5pbC5odG1sIj5CT09TVF9QUF9OSUw8L2E+KSkpCgojZGVmaW5lIE9QKGQsIHN0YXRlLCB4KSAoPGEgaHJlZj0ibGlzdF9mb2xkX3JpZ2h0X2QuaHRtbCI+Qk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzwvYT4gIyMgZChPUF8yLCBfLCB4KSwgc3RhdGUpCiNkZWZpbmUgT1BfMihkLCBzdGF0ZSwgeCkgPGEgaHJlZj0iY2F0Lmh0bWwiPkJPT1NUX1BQX0NBVDwvYT4oc3RhdGUsIHgpCgo8YSBocmVmPSJsaXN0X2ZvbGRfcmlnaHQuaHRtbCI+Qk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUPC9hPihPUCwgPGEgaHJlZj0ibmlsLmh0bWwiPkJPT1NUX1BQX05JTDwvYT4sIEwyKQovKgogICBleHBhbmRzIHRvOgogICAoX2NiYSwgKF9jYmEsIChfY2JhLCA8YSBocmVmPSJuaWwuaHRtbCI+Qk9PU1RfUFBfTklMPC9hPikpKQoqLwo8L3ByZT48L2Rpdj4KCTxociBzaXplPSIxIj4KCTxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwcHg7Ij4KCQk8aT6pIENvcHlyaWdodCA8YSBocmVmPSJodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbSIgdGFyZ2V0PSJfdG9wIj5Ib3VzZW1hcnF1ZSBPeTwvYT4gMjAwMjwvaT4KCQk8L2JyPjxpPqkgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyPC9pPgoJPC9kaXY+Cgk8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMHB4OyI+CgkJPHA+PHNtYWxsPkRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQoJCWFjY29tcGFueWluZyBmaWxlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uL0xJQ0VOU0VfMV8wLnR4dCI+TElDRU5TRV8xXzAudHh0PC9hPiBvcgoJCWNvcHkgYXQgPGEgaHJlZj0KCQkiaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Ij53d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dDwvYT4pPC9zbWFsbD48L3A+Cgk8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+Cg==