PD9waHAgCnJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsKcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAKcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCgokQXBwID0gbmV3IEFwcCgpOwokTmF2ID0gbmV3IE5hdigpOwokTWVudSA9IG5ldyBNZW51KCk7CgppbmNsdWRlKCRBcHAtPmdldFByb2plY3RDb21tb24oKSk7ICAgIAoKIwojIEJlZ2luOiBwYWdlLXNwZWNpZmljIHNldHRpbmdzLiAgQ2hhbmdlIHRoZXNlLiAKJHBhZ2VUaXRsZSAJPSAiSGVuc2hpbiAtIEluc3RhbGxhdGlvbiI7CiRwYWdlS2V5d29yZHMJPSAiRU1GLCBIZW5zaGluLCBtb2RlbCB0cmFuc2Zvcm1hdGlvbiwgaW5zdGFsbGF0aW9uIjsKJHBhZ2VBdXRob3IJPSAiQ2hyaXN0aWFuIEtyYXVzZSwgRGFuaWVsIFN0cvxiZXIiOwoKIyBBZGQgcGFnZS1zcGVjaWZpYyBOYXYgYmFycyBoZXJlCiMgRm9ybWF0IGlzIExpbmsgdGV4dCwgbGluayBVUkwgKGNhbiBiZSBodHRwOi8vd3d3LnNvbWVvdGhlcnNpdGUuY29tLyksIHRhcmdldCAoX3NlbGYsIF9ibGFuayksIGxldmVsICgxLCAyIG9yIDMpCiMgJE5hdi0+YWRkTmF2U2VwYXJhdG9yKCJNeSBQYWdlIExpbmtzIiwgCSJkb3dubG9hZHMucGhwIik7CiMgJE5hdi0+YWRkQ3VzdG9tTmF2KCJNeSBMaW5rIiwgIm15cGFnZS5waHAiLCAiX3NlbGYiLCAzKTsKIyAkTmF2LT5hZGRDdXN0b21OYXYoIkdvb2dsZSIsICJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIiwgIl9ibGFuayIsIDMpOwoKIyBFbmQ6IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MKIwoJCQojIFBhc3RlIHlvdXIgSFRNTCBjb250ZW50IGJldHdlZW4gdGhlIEVPSFRNTCBtYXJrZXJzIQkKJGh0bWwgPSA8PDxFT0hUTUwKCjxkaXYgaWQ9Im1haW5jb250ZW50Ij4KCjxkaXYgaWQ9Im1pZGNvbHVtbiI+CjxoMT4kcGFnZVRpdGxlPC9oMT4KCQkKPGgyPkluc3RhbGwgZnJvbSB1cGRhdGUgc2l0ZTwvaDI+Cgo8cD5IZW5zaGluIGlzIGEgcGx1Zy1pbiBmb3IgcmVjZW50IHZlcnNpb25zIG9mIHRoZSBFY2xpcHNlIE1vZGVsaW5nIFRvb2xzIChsYXN0IHRlc3RlZCB2ZXJzaW9uOiAyMDE5LTEyKS4gVG8gb2J0YWluIHRoZSBtb3N0IHJlY2VudCBFY2xpcHNlIHZlcnNpb24sIGdvIHRvIHRoZSA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9kb3dubG9hZHMvcGFja2FnZXMvIj5kb3dubG9hZCBwYWdlPC9hPiBhbmQgZG93bmxvYWQgdGhlIEVjbGlwc2UgTW9kZWxpbmcgVG9vbHMuPC9wPgoKPHA+VG8gaW5zdGFsbCBIZW5zaGluLCBvcGVuIEVjbGlwc2UsIGdvIHRvIDxpPkhlbHAgLT4gSW5zdGFsbCBOZXcgU29mdHdhcmUuLi48L2k+IGFuZCBpbnNlcnQgb25lIG9mIHRoZSBmb2xsb3dpbmcgdXBkYXRlIHNpdGUgVVJMczo8L3A+Cjx1bD4KPGxpPkN1cnJlbnQgcmVsZWFzZTogPGEgaHJlZj0iaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL21vZGVsaW5nL2VtZnQvaGVuc2hpbi91cGRhdGVzL3JlbGVhc2UiPmh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9tb2RlbGluZy9lbWZ0L2hlbnNoaW4vdXBkYXRlcy9yZWxlYXNlPC9hPiAoMS42LjApPC9saT4KPGxpPk5pZ2h0bHkgYnVpbGRzOiA8YSBocmVmPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvbW9kZWxpbmcvZW1mdC9oZW5zaGluL3VwZGF0ZXMvbmlnaHRseSI+aHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL21vZGVsaW5nL2VtZnQvaGVuc2hpbi91cGRhdGVzL25pZ2h0bHk8L2E+PC9saT4KPGxpPlBlcm1hbmVudCBVUkxzIG9mIGN1cnJlbnQgYW5kIHByZXZpb3VzIHJlbGVhc2VzOgo8dWw+CjxsaT48YSBocmVmPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvbW9kZWxpbmcvZW1mdC9oZW5zaGluL3VwZGF0ZXMvMS42LjAiPmh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9tb2RlbGluZy9lbWZ0L2hlbnNoaW4vdXBkYXRlcy8xLjYuMDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL21vZGVsaW5nL2VtZnQvaGVuc2hpbi91cGRhdGVzLzEuNC4wIj5odHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvbW9kZWxpbmcvZW1mdC9oZW5zaGluL3VwZGF0ZXMvMS40LjA8L2E+PC9saT4KPGxpPjxhIGhyZWY9Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9tb2RlbGluZy9lbWZ0L2hlbnNoaW4vdXBkYXRlcy8xLjIuMCI+aHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL21vZGVsaW5nL2VtZnQvaGVuc2hpbi91cGRhdGVzLzEuMi4wPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvbW9kZWxpbmcvZW1mdC9oZW5zaGluL3VwZGF0ZXMvMS4wLjAiPmh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9tb2RlbGluZy9lbWZ0L2hlbnNoaW4vdXBkYXRlcy8xLjAuMDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL21vZGVsaW5nL2VtZnQvaGVuc2hpbi91cGRhdGVzLzAuOS4yIj5odHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvbW9kZWxpbmcvZW1mdC9oZW5zaGluL3VwZGF0ZXMvMC45LjI8L2E+PC9saT4KPC91bD4KPC91bD4KCkF0IGEgbWluaW11bSwgaW5zdGFsbCB0aGUgSGVuc2hpbiBTREsgZmVhdHVyZS4gRnJvbSB2ZXJzaW9uIDEuNi4wLCB5b3UgY2FuIGNob29zZSBhbiBhZGRpdGlvbmFsIHBvd2VyZnVsIGZlYXR1cmUgZm9yIHZhcmlhbnQgbWFuYWdlbWVudCAoSGVuc2hpbiBWYXJpYWJpbGl0eSBTREspLCBhbmQgc291cmNlIHZlcnNpb25zIG9mIGJvdGggZmVhdHVyZXMgKGZvciBpbnNwZWN0aW5nIHRoZSBmZWF0dXJlcycgc291cmNlIGNvZGUgaW4gRWNsaXBzZSkuCgo8aDI+SW5zdHJ1Y3Rpb25zIGZvciBpbnN0YWxsaW5nIGxlZ2FjeSB2ZXJzaW9uczwvaDI+Cgo8cD4KSWYgeW91IHdhbnQgdG8gaW5zdGFsbCBhIGxlZ2FjeSB2ZXJzaW9uIG9mIEhlbnNoaW4gKDw9IDEuNC4wKSBpbiBhIG5ld2VyIEVjbGlwc2UgdmVyc2lvbiAoPj0gRWNsaXBzZSBPeHlnZW4pLCBwbGVhc2UgdXNlIHRoZSBmb2xsb3dpbmcgaW5zdHJ1Y3Rpb25zICh0aGFua3MgdG8gPGEgaHJlZj0iaHR0cDovL2pncmVlbi5kZS8iIHRhcmdldD0iX2JsYW5rIj5Kb2VsIEdyZWVueWVyPC9hPiBmb3IgcHJvdmlkaW5nIHRoZXNlIGluc3RydWN0aW9ucyk6CjwvcD4KCjx1bD4KIDxsaT5JbnN0YWxsIEdNRiBUb29saW5nIHYzLjIuMSB2aWEgPGEgaHJlZj0iaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL21vZGVsaW5nL2dtcC9nbWYtdG9vbGluZy91cGRhdGVzL3JlbGVhc2VzLTMuMi4xLyI+VXBkYXRlIHNpdGU8L2E+IDxpPihyaWdodCBjbGljayAtPiBjb3B5Li4uKTwvaT48L2xpPgogPGxpPkluc3RhbGwgTTJFY2xpcHNlIHZpYSA8YSBocmVmPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvdGVjaG5vbG9neS9tMmUvcmVsZWFzZXMiPlVwZGF0ZSBzaXRlPC9hPiA8aT4ocmlnaHQgY2xpY2sgLT4gY29weS4uLik8L2k+PC9saT4KIDxsaT5JbnN0YWxsIHRoZSByZXF1aXJlZCBIZW5zaGluIHZlcnNpb24uPC9saT4KPC91bD4KCjwhLS08aDI+RWNsaXBzZSBLZXBsZXIsIEx1bmEsIE1hcnMgb3IgTmVvbjwvaDI+CgkJCjxwPgpIZW5zaGluIGNhbiBiZSBpbnN0YWxsZWQgZGlyZWN0bHkgZnJvbSB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9tYXJrZXRwbGFjZS5lY2xpcHNlLm9yZy9jb250ZW50L2hlbnNoaW4taW5jdWJhdGlvbiI+RWNsaXBzZSBNYXJrZXRwbGFjZTwvYT4uCjwvcD4KCi0tPgoKPC91bD4KPC9wPgoKCjxoMj5Tb3VyY2VzPC9oMj4KPHA+CllvdSBjYW4gYWxzbyBnZXQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UgY29kZSBkaXJlY3RseSBmcm9tIG91ciBHaXQgcmVwb3NpdG9yeSAod2VibGluayk6Cjx1bD4KPGxpPjxhIGhyZWY9Imh0dHA6Ly9naXQuZWNsaXBzZS5vcmcvYy9oZW5zaGluL29yZy5lY2xpcHNlLmVtZnQuaGVuc2hpbi5naXQvIj5odHRwOi8vZ2l0LmVjbGlwc2Uub3JnL2MvaGVuc2hpbi9vcmcuZWNsaXBzZS5lbWZ0LmhlbnNoaW4uZ2l0LzwvYT48L2xpPgo8L3VsPgo8L3A+CgoKPGgyPkJ1aWxkIEpvYnM8L2gyPgo8cD4KUmVsZWFzZSBhbmQgbmlnaGx5IGJ1aWxkcyBhcmUgY29tcGlsZWQgdXNpbmcgSHVkc29uIGpvYnM6Cjx1bD4KPGxpPlJlbGVhc2VzOiA8YSBocmVmPSJodHRwczovL2NpLmVjbGlwc2Uub3JnL2hlbnNoaW4vam9iL2NiaV9oZW5zaGluX3JlbGVhc2UvIj5odHRwczovL2NpLmVjbGlwc2Uub3JnL2hlbnNoaW4vam9iL2NiaV9oZW5zaGluX3JlbGVhc2UvPC9hPjwvbGk+CjxsaT5OaWdodGx5IEJ1aWxkczogPGEgaHJlZj0iaHR0cHM6Ly9jaS5lY2xpcHNlLm9yZy9oZW5zaGluL2pvYi9jYmlfaGVuc2hpbl9uaWdodGx5LyI+aHR0cHM6Ly9jaS5lY2xpcHNlLm9yZy9oZW5zaGluL2pvYi9jYmlfaGVuc2hpbl9uaWdodGx5LzwvYT48L2xpPgo8L3VsPgo8L3A+CgoKPCEtLQoKPGRpdiBjbGFzcz0iaG9tZWl0ZW0iPgo8aDM+TmFycm93IGNvbHVtbjwvaDM+Cjx1bD4KPGxpPjxhIGhyZWY9IiMiPkxpbms8L2E+LiBUZWFzZXIgdGV4dCA8YSBocmVmPSIjIj4nUmVmZXJlbmNlJzwvYT48c3BhbiBjbGFzcz0iZGF0ZXMiPjAyLzA1LzA1PC9zcGFuPjwvbGk+CjxsaT48YSBocmVmPSIjIj5MaW5rPC9hPi4gVGVhc2VyIHRleHQgPGEgaHJlZj0iIyI+J1JlZmVyZW5jZSc8L2E+PHNwYW4gY2xhc3M9ImRhdGVzIj4wMi8wNS8wNTwvc3Bhbj48L2xpPgo8bGk+PGEgaHJlZj0iIyI+TGluazwvYT4uIFRlYXNlciB0ZXh0IDxhIGhyZWY9IiMiPidSZWZlcmVuY2UnPC9hPjxzcGFuIGNsYXNzPSJkYXRlcyI+MDIvMDUvMDU8L3NwYW4+PC9saT4KPC91bD4KPC9kaXY+CgkJCjxkaXYgY2xhc3M9ImhvbWVpdGVtIj4KPGgzPk5hcnJvdyBjb2x1bW48L2gzPgo8dWw+CjxsaT48YSBocmVmPSIjIj5MaW5rPC9hPi4gVGVhc2VyIHRleHQgPGEgaHJlZj0iIyI+J1JlZmVyZW5jZSc8L2E+PHNwYW4gY2xhc3M9ImRhdGVzIj4wMi8wNS8wNTwvc3Bhbj48L2xpPgo8bGk+PGEgaHJlZj0iIyI+TGluazwvYT4uIFRlYXNlciB0ZXh0IDxhIGhyZWY9IiMiPidSZWZlcmVuY2UnPC9hPjxzcGFuIGNsYXNzPSJkYXRlcyI+MDIvMDUvMDU8L3NwYW4+PC9saT4KPGxpPjxhIGhyZWY9IiMiPkxpbms8L2E+LiBUZWFzZXIgdGV4dCA8YSBocmVmPSIjIj4nUmVmZXJlbmNlJzwvYT48c3BhbiBjbGFzcz0iZGF0ZXMiPjAyLzA1LzA1PC9zcGFuPjwvbGk+CjwvdWw+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJob21laXRlbTNjb2wiPgo8aDM+VGhpcyBpcyBhIHdpZGUgY29sdW1uPC9oMz4KPHVsPgo8bGk+PGEgaHJlZj0iIyI+TGluazwvYT4uIFRlYXNlciB0ZXh0IDxhIGhyZWY9IiMiPidSZWZlcmVuY2UnPC9hPjxzcGFuIGNsYXNzPSJkYXRlcyI+MDIvMDUvMDU8L3NwYW4+PC9saT4KPGxpPjxhIGhyZWY9IiMiPkxpbms8L2E+LiBUZWFzZXIgdGV4dCA8YSBocmVmPSIjIj4nUmVmZXJlbmNlJzwvYT48c3BhbiBjbGFzcz0iZGF0ZXMiPjAyLzA1LzA1PC9zcGFuPjwvbGk+CjxsaT48YSBocmVmPSIjIj5MaW5rPC9hPi4gVGVhc2VyIHRleHQgPGEgaHJlZj0iIyI+J1JlZmVyZW5jZSc8L2E+PHNwYW4gY2xhc3M9ImRhdGVzIj4wMi8wNS8wNTwvc3Bhbj48L2xpPgo8L3VsPgo8L2Rpdj4KPGhyIGNsYXNzPSJjbGVhcmVyIiAvPgo8cD5Tb21lIGZyZWUgdGV4dDwvcD4KPHVsIGNsYXNzPSJtaWRsaXN0Ij4KPGxpPmxpc3Qgb2YgaXRlbXMgaW4gZnJlZSB0ZXh0PC9saT4KPGxpPmxpc3Qgb2YgaXRlbXMgaW4gZnJlZSB0ZXh0PC9saT4KPGxpPmxpc3Qgb2YgaXRlbXMgaW4gZnJlZSB0ZXh0PC9saT4KPC91bD4KPG9sPgo8bGk+T3JkZXJlZCBsaXN0PC9saT4KPGxpPk9yZGVyZWQgbGlzdDwvbGk+CjxsaT5PcmRlcmVkIGxpc3Q8L2xpPgo8L29sPgoJCi0tPgoJCQo8L2Rpdj4KPC9kaXY+CgpFT0hUTUw7CgojIEdlbmVyYXRlIHRoZSB3ZWIgcGFnZQokQXBwLT5nZW5lcmF0ZVBhZ2UoJHRoZW1lLCAkTWVudSwgJE5hdiwgJHBhZ2VBdXRob3IsICRwYWdlS2V5d29yZHMsICRwYWdlVGl0bGUsICRodG1sKTsKCj8+Cg==