PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjxodG1sPgoJPGhlYWQ+CiAgICAJPHRpdGxlPkNvbmZpZ3VyZSB0aGUgZ2VuZXJhdGlvbjogJmx0O2NvbmZpZyZndDsgdGFnPC90aXRsZT4KICAgIAk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJ1c2VyZ3VpZGUuY3NzIj4KICAgCTwvaGVhZD4KCiAgIAk8Ym9keT4KICAgICAgCTxoMj5Db25maWd1cmUgdGhlIGdlbmVyYXRpb246ICZsdDtjb25maWcmZ3Q7IHRhZzwvaDI+CgoJICAJPHA+VGhlIHRhZyA8Yj48c3BhbiBjbGFzcz0iY29kZSI+Jmx0O2NvbmZpZyZndDs8L3NwYW4+PC9iPiBtdXN0IGJlIGRlZmluZWQgPGI+PHU+b25seSBvbmNlPC91PjwvYj4sIG9uIHRvcCBvZiB0aGUgdGVtcGxhdGUgZG9jdW1lbnQuPC9wPgoJICAJPHA+VGhpcyB0YWcgZGVmaW5lcyB0aGUgcGF0aCBvZiB0aGUgb3V0cHV0IGRvY3VtZW50LCBhbmQgYSBsaXN0IG9mIGdsb2JhbCBwYXJhbWV0ZXJzIGZvciB0aGUgdGVtcGxhdGUuPC9wPgogICAgICAKICAgICAgCTxoMj5EZWZpbmUgZ2VuZXJhdGlvbiBvdXRwdXQ8L2gyPgoJCQoJCTxwPjxiPjxzcGFuIGNsYXNzPSJjb2RlIj4mbHQ7b3V0cHV0Jmd0Ozwvc3Bhbj48L2I+IHRhZyBpcyBvcHRpb25hbC4gSWYgbm90IHByZXNlbnQsIHRoZSBkb2N1bWVudCBpcyBnZW5lcmF0ZWQgYXQgdGVtcGxhdGUKCQlsb2NhdGlvbiwgd2l0aCBzdWZmaXggJ19nZW5lcmF0ZWQnPC9wPgkJCgkJCgkJPHA+SWYgZGVmaW5lZCwgdGhlIHN5bnRheCBpcyB0aGUgZm9sbG93aW5nOjwvcD4KCQkKCQk8ZGl2IGNsYXNzPSJjb2RlQm94IGNiQmciPgkJCgkJCTxwIGNsYXNzPSJjb2RlIj4KCQkJCSZsdDtjb25maWcmZ3Q7PGJyLz4JCQkKCQkJCSZlbXNwOyZlbXNwOyZsdDtvdXRwdXQgcGF0aD0mbHQ7Jmx0O0Fic29sdXRlIHBhdGggb2YgdGhlIGRvY3VtZW50IHRvIGJlIGdlbmVyYXRlZCZndDsmZ3Q7IC8mZ3Q7CQkJCgkJCQkmZW1zcDsmZW1zcDsuLi48YnIvPgkJCQoJCQkJJmx0Oy9jb25maWcmZ3Q7CgkJCTwvcD4JCQoJCTwvZGl2PgoJCQoJCTxwIGNsYXNzPU1zb05vcm1hbD48c3BhbiBsYW5nPUVOLVVTPkdsb2JhbCBwYXJhbWV0ZXJzIGNhbiBiZSB1c2VkIHRvIGRlZmluZSBhCgkJcmVsYXRpdmUgcGF0aC48L3NwYW4+PC9wPgoJCQoJCTxkaXYgY2xhc3M9ImNvZGVCb3ggY2JCZyI+CgkJCTxwPjx1PkV4YW1wbGU8L3U+OiBUaGUgZ2VuZXJhdGVkIGRvY3VtZW50IHdpbGwgYmVsb2NhdGVkIGluIEQ6L2dlbmVyYXRlZEZpbGUuZG9jeDwvcD4JCQkKCQkJPHAgY2xhc3M9ImNvZGUiPgoJCQkJJmx0O2NvbmZpZyZndDs8YnIvPgkJCQoJCQkJJmVtc3A7JmVtc3A7Jmx0O291dHB1dCBwYXRoPSdEOi9nZW5lcmF0ZWRGaWxlLmRvY3gnIC8mZ3Q7PGJyLz4KCQkJCSZlbXNwOyZlbXNwOy4uLjxici8+CQkJCgkJCQkmbHQ7L2NvbmZpZyZndDsKCQkJPC9wPgkJCgkJPC9kaXY+CgoJCTxhIG5hbWU9Il9EZWZpbmVfZ2xvYmFsX3BhcmFtZXRlcnMiLz48aDI+RGVmaW5lIGdsb2JhbCBwYXJhbWV0ZXJzIGZvciB0aGUgdGVtcGxhdGU8L2gyPgoJCQoJCTxwID5HbG9iYWwgcGFyYW1ldGVycyBmb3IgdGhlIHRlbXBsYXRlIGNhbiBiZSBkZWZpbmVkLCBmb3IgZXhhbXBsZSB0byBkZWZpbmUgbW9kZWwgcGF0aCwKCQlmb2xkZXJzIHRvIHVzZSBvciBhbnkgb3RoZXIgc3RhdGljIHZhbHVlIHRvIGJlIHVzZWQgaW4gdGVtcGxhdGUuPC9wPgoJCQoJCTxwPlBhcmFtZXRlcnMgYXJlIGRlZmluZWQgaW4gPGI+Jmx0O2NvbmZpZyZndDs8L2I+IHRhZyB3aXRoIHRoZSBmb2xsb3dpbmcgc3ludGF4OjwvcD4KCQkKCQk8ZGl2IGNsYXNzPSJjb2RlQm94Ij4JCQoJCQk8cCBjbGFzcz0iY29kZSI+Jmx0O2NvbmZpZyZndDsgPGJyLz4KCQkJCSZlbXNwOyZlbXNwOy4uLjxici8+CgkJCQkmZW1zcDsmZW1zcDsmbHQ7cGFyYW0ga2V5PSZsdDsmbHQ7UGFyYW1ldGVyMV9rZXkmZ3Q7Jmd0OyB2YWx1ZT0mbHQ7Jmx0O1BhcmFtZXRlcjFfdmFsdWUmZ3Q7Jmd0OyAvJmd0Ozxici8+CgkJCQkmZW1zcDsmZW1zcDsmbHQ7cGFyYW0ga2V5PSZsdDsmbHQ7UGFyYW1ldGVyMl9rZXkmZ3Q7Jmd0OyB2YWx1ZT0mbHQ7Jmx0O1BhcmFtZXRlcjJfdmFsdWUmZ3Q7Jmd0OyAvJmd0Ozxici8+CgkJCQkmZW1zcDsmZW1zcDsmbHQ7cGFyYW0gLi4uLyZndDs8YnIvPgkJCgkJCQkmbHQ7L2NvbmZpZyZndDsKCQkJPC9wPgkJCgkJPC9kaXY+CgoJCTxwPkhvdyB0byBhY2Nlc3MgcGFyYW1ldGVycz88L3A+CgkJPHVsPgoJCQk8bGk+PGI+JHs8L2I+PGk+cGFyYW1LZXk8L2k+PGI+fTwvYj4gaW5zaWRlIDxzcGFuIGNsYXNzPSJjb2RlIj4mbHQ7Y29udGV4dCZndDs8L3NwYW4+IG9yIG90aGVyIDxzcGFuIGNsYXNzPSJjb2RlIj4mbHQ7cGFyYW0mZ3Q7PC9zcGFuPiAsIDwvbGk+CgkJCTxsaT4gPGI+Z0dldCg8L2I+PGk+cGFyYW1LZXk8L2k+PGI+KTwvYj4gaW5zaWRlIGEgPHNwYW4gY2xhc3M9ImNvZGUiPiZsdDtnZW5kb2MmZ3Q7PC9zcGFuPiB0YWc8L2xpPgoJCTwvdWw+CgoJCTxkaXYgY2xhc3M9ImNvZGVCb3ggY2JCZyI+CgkJCTxwPjx1PkV4YW1wbGU8L3U+OqAgY3JlYXRpb24gb2YgZ2xvYmFsIHBhcmFtZXRlcnMKCQkJZm9yIG1vZGVsIGZvbGRlciwgbW9kZWwgcGF0aCwgYW5kIHBhdGggb2YgYSBzcGVjaWZpYyBwYWNrYWdlIGluc2lkZSBtb2RlbCBhbmQKCQkJZXhhbXBsZSBvZiB1c2FnZSBpbiAmbHQ7Y29udGV4dCZndDsgdGFnLjwvcD4KCgkJCTxwIGNsYXNzPSJjb2RlIj4KCQkJCSZsdDtjb25maWcmZ3Q7PGJyLz4KCQkJCSZlbXNwOyZlbXNwOyZsdDtwYXJhbSBrZXk9JzxzcGFuIGNsYXNzPSJibHVlIj5tb2RlbF9wYXRoPC9zcGFuPicgdmFsdWU9J0Q6L01vZGVscy9Nb2RlbF92MS9NeV9tb2RlbC51bWwnLyZndDs8YnIvPgoJCQkJJmVtc3A7JmVtc3A7Jmx0O3BhcmFtIGtleT0nPHNwYW4gY2xhc3M9ImJsdWUiPlVDX3BhY2thZ2VfcGF0aDwvc3Bhbj4nIHZhbHVlPScvTXlVTUxNb2RlbC9Vc2VDYXNlcycvJmd0Ozxici8+CgkJCQkmbHQ7L2NvbmZpZyZndDs8YnIvPgoJCQkJJmx0O2NvbnRleHQgbW9kZWw9JzxzcGFuIGNsYXNzPSJibHVlIj4ke21vZGVsX3BhdGh9PC9zcGFuPicgZWxlbWVudD0nPHNwYW4gY2xhc3M9ImJsdWUiPiR7VUNfcGFja2FnZV9wYXRofTwvc3Bhbj4nLyZndDsKCQkJPC9wPgoJCTwvZGl2PgoKCQk8aDI+UHJlLWRlZmluZWQgcGFyYW1ldGVyczwvaDI+CgoJCTxwPlNvbWUgPGI+PHNwYW4gY2xhc3M9ImNvZGUiPiZsdDtwYXJhbSZndDs8L3NwYW4+PC9iPiBhcmUgcHJlLWRlZmluZWQgaW4gR2VuZG9jIGFuZCBjYW4gYmUgdXNlZCBkaXJlY3RseSBpbiB0aGUgdGVtcGxhdGUuPC9wPgoJCTx1bD4KCQkJPGxpPjxwPjxiPiR7aW5wdXR9PC9iPiBpcyB0aGUgbmFtZSBvZiB0aGUgaW5wdXQgdGVtcGxhdGUgZG9jdW1lbnQ8L3A+PC9saT4KCQk8L3VsPgoKCQk8ZGl2IGNsYXNzPSJjb2RlQm94IGNiQmciPgoJCQk8cD5FeGFtcGxlOjwvcD4JCQoJCQk8cCBjbGFzcz0iY29kZSI+CgkJCQkmbHQ7cGFyYW0ga2V5PSc8c3BhbiBjbGFzcz0iYmx1ZSI+Z2VuZXJhdGlvbl9mb2xkZXI8L3NwYW4+JyB2YWx1ZT0nRDovR2VuZXJhdGVkJy8mZ3Q7PGJyLz4KCQkJCSZsdDtvdXRwdXQgcGF0aD0nPHNwYW4gY2xhc3M9ImJsdWUiPiR7Z2VuZXJhdGlvbl9mb2xkZXJ9PC9zcGFuPi88c3BhbiBjbGFzcz0iYmx1ZSI+JHtpbnB1dH08L3NwYW4+LWdlbmVyYXRlZC5kb2N4JyAvJmd0OwoJCQk8L3A+CQkKCQk8L2Rpdj4KCgkJPHAgPklmIHRoZSBpbnB1dCBkb2N1bWVudCBpcyBuYW1lZCB0ZW1wbGF0ZTEuZG9jeCwgdGhlIHJlc3VsdCBmaWxlIGlzIG5hbWVkCgkJdGVtcGxhdGUxLWdlbmVyYXRlZC5kb2N4LiA8L3A+CgkJCgkJPHA+VGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIGFsc28gcmVhZHkgdG8gYmUgdXNlZCBieSBkZWZhdWx0OjwvcD4KCQkKCQk8dWw+CgkJCTxsaT48Yj4ke2RhdGV9PC9iPiBpcyB0aGUgZGF0ZSBvZiB0aGUgZ2VuZXJhdGlvbi4gVGhlIGZvcm1hdCBvZiB0aGUgZGF0ZSBpcyAneXl5eS1NTS1kZC1ISG1tc3MnLjwvbGk+CgkJCTxsaT48Yj4ke2lucHV0X2RpcmVjdG9yeX08L2I+IGxvY2F0aW9uIGRpcmVjdG9yeSBvZiB0aGUgdGVtcGxhdGUuPC9saT4KCQk8L3VsPgoJCTxkaXYgY2xhc3M9ImNvZGVCb3ggY2JCZyI+CgkJCTxwPkV4YW1wbGU6PC9wPgkJCgkJCTxwPjxiPjxzcGFuIGNsYXNzPSJjb2RlIj4mbHQ7b3V0cHV0CXBhdGg9JzxzcGFuIGNsYXNzPSJibHVlIj4ke2lucHV0X2RpcmVjdG9yeX08L3NwYW4+LzxzcGFuIGNsYXNzPSJibHVlIj4ke2lucHV0fTwvc3Bhbj4tZ2VuZXJhdGVkLTxzcGFuIGNsYXNzPSJibHVlIj4ke2RhdGV9PC9zcGFuPi5kb2N4JyAvJmd0Ozwvc3Bhbj48L2I+PC9wPgkJCgkJCTxwPlJlc3VsdCBmaWxlIGV4YW1wbGU6IHRlbXBsYXRlLWdlbmVyYXRlZC0yMDE0LTA4LTAyLTA5MzcwNy5kb2N4PC9wPgoJCTwvZGl2PgoJCQoJCTxoMj5Vc2Ugb2YgdmFyaWFibGVzIGluc2lkZSBwYXJhbWV0ZXJzPC9oMj4KCQkKCQk8cD5JdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHVzZSB2YXJpYWJsZXMgZGVmaW5lZCBpbiBwcm9qZWN0IG9mIHRoZSBkb2N1bWVudC48L3A+CgkJPHA+RnJvbSB0aGUgcHJvamVjdCBvbiBQcm9qZWN0IEV4cGxvcmVyIHZpZXcsIHJpZ2h0IGNsaWNrICZndDsgUHJvcGVydGllcyAmZ3Q7IFJlc291cmNlICZndDsgTGlua2VkIFJlc291cmNlcyAmZ3Q7IFBhdGggVmFyaWFibGVzPC9wPgoJCTxpbWcgc3JjPSJpbWcvY29uZmlndXJlX3NldF92YXJpYWJsZXNfZGlhbG9nLnBuZyIvPgoJCTxwPlByZWRlZmluZWQgdmFyaWFibGVzIG9yIHVzZXIgdmFyaWFibGVzIGNhbiBiZSB1c2VkIGluIHRoZSB0ZW1wbGF0ZS4gVGhleSBhcmUgTk9UIGNhc2Utc2Vuc2l0aXZlLjwvcD4KCQk8ZGl2IGNsYXNzPSJjb2RlQm94IGNiQmciPgoJCQk8cD48dT5FeGFtcGxlPC91PiA6PC9wPgoJCQk8cD48c3BhbiBjbGFzcz0iY29kZSI+PGI+Jmx0O291dHB1dCBwYXRoPScke3Byb2plY3RfbG9jfS8ke2lucHV0fS1nZW5lcmF0ZWQuZG9jeCcgLyZndDs8L2I+PC9zcGFuPjwvcD4JCQoJCTwvZGl2PgoKCTxoMj40LjUgVmFyaWFibGVzIHN0b3JlZCBpbiBhbm90aGVyIGZpbGU8L2gyPgoKCTxwPkFzIHlvdSBtYXkgbmVlZCB0byBwdXQgbWFueSBhZGRpdGlvbmFsIHZhcmlhYmxlcyBpbnNpZGUgeW91ciBwcm9qZWN0LCBpbiBvcmRlciB0byBtYWtlIHRoZSBjb25maWcgdGFnIAoJICAgbW9yZSByZWFkYWJsZSBhbmQgbW9yZSByZXVzYWJsZSwgeW91IGNhbiBwdXQgdGhlIHZhcmlhYmxlcyBpbiBhIGZpbGUgd2l0aCAucHJvcGVydGllcyBleHRlbnNpb24uIAoJICAgVG8gYWNjZXNzIHRoZSBjb250ZW50IG9mIHRoaXMgZmlsZSB5b3Ugc2hvdWxkIGFkZCB0aGUgPHNwYW4gY2xhc3M9ImNvZGUiPiZsdDtwcm9wZXJ0aWVzJmd0Ozwvc3Bhbj4gdGFnIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyOjwvcD4KCTxkaXYgY2xhc3M9ImNvZGVCb3ggY2JCZyI+CgkJPHA+PHU+RXhhbXBsZTwvdT4gOjwvcD4KCQk8cCBjbGFzcz0iY29kZSI+Jmx0O3Byb3BlcnRpZXMgcGF0aD0nPHNwYW4gY2xhc3M9ImJsdWUiPiR7aW5wdXRfZGlyZWN0b3J5fTwvc3Bhbj4vdmFycy5wcm9wZXJ0aWVzJyAvJmd0OzwvcD4KCTwvZGl2PgoJCgk8cD5XaGVyZSB0aGUgdmFycy5wcm9wZXJ0aWVzIG1heSBoYXZlIHRoZSBjb250ZW50IGxpa2UgdGhpczo8L3A+Cgk8ZGl2IGNsYXNzPSJjb2RlQm94IGNiQmciPgoJCTxwPjx1PkV4YW1wbGU8L3U+IDo8L3A+CgkJPHAgY2xhc3M9ImNvZGUiPgoJCQlvdXRwdXRfZ2VuZXJhdGlvbj0ke3dvcmtzcGFjZV9sb2N9L2dlbmVyYXRlZC0ke2RhdGV9LmRvY3g8YnIvPgoJCQlpbnB1dF9tb2RlbF9wcm9wPSR7aW5wdXR9L21vZGVsLnVtbDxici8+CgkJCWltYWdlX3Rlc3Q9JHtwcm9qZWN0X2xvY30vY29tcGFueV9sb2dvLmpwZwoJCTxwLz4KCTwvZGl2PgoJCgk8cD5UaGVzZSB2YXJpYWJsZXMgY2FuIGJlIHVzZWQgaW4gR2VuZG9jIHRhZ3MgOjwvcD4KCTxkaXYgY2xhc3M9ImNvZGVCb3ggY2JCZyI+CQoJCTxwPjx1PkV4YW1wbGU8L3U+IDo8L3A+CgkJPHAgY2xhc3M9ImNvZGUiPiZsdDtvdXRwdXQgcGF0aD0nPHNwYW4gY2xhc3M9ImJsdWUiPiR7b3V0cHV0X2dlbmVyYXRpb259PC9zcGFuPicgLyZndDs8L3A+Cgk8L2Rpdj4KCQoJPGgyPjQuNiBDb250ZXh0IHdpdGggQ0RPIG1vZGVsczwvaDI+CgoJPHA+WW91IGNhbiB1c2UgQ0RPIFVSSXMgaW4gY29udGV4dCB0YWdzPC9wPgoJPGRpdiBjbGFzcz0iY29kZUJveCBjYkJnIj4JCgkJPHA+PHU+RXhhbXBsZTwvdT4gOjwvcD4KCQk8cCBjbGFzcz0iY29kZSI+Jmx0O2NvbnRleHQgbW9kZWw9JnJzcXVvO2Nkby5uZXQ0ai50Y3A6Ly9sb2NhbGhvc3Q6MjAzNi9yZXBvc2l0b3J5L3Jlc291cmNlP3RyYW5zYWN0aW9uYWw9dHJ1ZSZyc3F1bzsgZWxlbWVudD0mcnNxdW87ezB9JnJzcXVvOy8mZ3Q7PC9wPgoJPC9kaXY+CiAgIDwvYm9keT4KPC9odG1sPgo=