PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LUxhbmd1YWdlIiBjb250ZW50PSJlbi11cyI+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXdpbmRvd3MtMTI1MiI+Cjx0aXRsZT5JQ1UncyBVbmljb2RlIFRvb2xzIFJlYWQgTWU8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0iQ09QWVJJR0hUIiBjb250ZW50PQogICAgIkNvcHlyaWdodCAoYykgMjAwNC0yMDA2IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiIgLz4KPHN0eWxlPgo8IS0tCmxpICAgICAgICAgICB7IG1hcmdpbi10b3A6IDAuNWVtOyBtYXJnaW4tYm90dG9tOiAwLjVlbSB9Ci0tPgo8L3N0eWxlPgo8L2hlYWQ+Cgo8Ym9keT4KCjxoMT5Vbmljb2RlVG9vbHM8L2gxPgo8cD5UaGlzIGZpbGUgcHJvdmlkZXMgaW5zdHJ1Y3Rpb25zIGZvciBidWlsZGluZyBhbmQgcnVubmluZyB0aGUgVW5pY29kZVRvb2xzLCB3aGljaDxicj4KY2FuIGJlIHVzZWQgdG86PC9wPgo8dWw+CiAgPGxpPmJ1aWxkIHRoZSBEZXJpdmVkIFVuaWNvZGUgZmlsZXMgaW4gdGhlIFVDRCAoVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UpLDwvbGk+CiAgPGxpPmJ1aWxkIHRoZSB0cmFuc2Zvcm1lZCBVQ0EgKFVuaWNvZGUgQ29sbGF0aW9uIEFsZ29yaXRobSkgZmlsZXMgbmVlZGVkIGJ5IElDVS48L2xpPgogIDxsaT5ydW4gY29uc2lzdGVuY3kgY2hlY2tzIG9uIGJldGEgcmVsZWFzZXMgb2YgdGhlIFVDRCBhbmQgdGhlIFVDQS48L2xpPgogIDxsaT5idWlsZCA0IGNoYXJ0IGZvbGRlcnMgb24gdGhlIHVuaWNvZGUgc2l0ZTwvbGk+CjwvdWw+CjxwPjxmb250IGNvbG9yPSIjRkYwMDAwIj48Yj5XQVJOSU5HISE8L2I+PC9mb250PjwvcD4KPHVsPgogIDxsaT5UaGlzIGlzIE5PVCBwcm9kdWN0aW9uIGxldmVsIGNvZGUsIGFuZCBzaG91bGQgbmV2ZXIgYmUgdXNlZCBpbiBwcm9ncmFtcy48L2xpPgogIDxsaT5UaGUgQVBJIGlzIHN1YmplY3QgdG8gY2hhbmdlIHdpdGhvdXQgbm90aWNlLCBhbmQgd2lsbCBub3QgYmUgbWFpbnRhaW5lZC48L2xpPgogIDxsaT5UaGUgc291cmNlIGlzIHVuY29tbWVudGVkLCBhbmQgaGFzIG1hbnkgd2FydHM7IHNpbmNlIGl0IGlzIG5vdCBwcm9kdWN0aW9uIGNvZGUsIGl0IGhhcyBub3QgCiAgYmVlbiB3b3J0aCB0aGUgdGltZSB0byBjbGVhbiBpdCB1cC48L2xpPgogIDxsaT5JdCB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIG9uIFVuaXggb3IgTWFjIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGZpbGUgc2VwYXJhdG9yLjwvbGk+CiAgPGxpPkN1cnJlbnRseSBpdCB1c2VzIGhhcmQtY29kZWQgZGlyZWN0b3J5IG5hbWVzLjwvbGk+CiAgPGxpPlRoZSBjb250ZW50cyBvZiBtdWx0aXBsZSB2ZXJzaW9ucyBvZiB0aGUgVUNEIG11c3QgYmUgY29waWVkIHRvIGEgbG9jYWwgZGlyZWN0b3J5LCBhcyBkZXNjcmliZWQgCiAgYmVsb3cuPC9saT4KPC91bD4KPGgyPkluc3RydWN0aW9uczo8L2gyPgo8aDM+MC4gWW91IHdpbGwgbmVlZCB0byBnZXQgSUNVNEogb24geW91ciBzeXN0ZW0sIHVzaW5nIENWUy48L2gzPgo8cD5UaGUgcmVzdCBvZiB0aGlzIHdpbGwgYXNzdW1lIHRoYXQgeW91IGhhdmUgc2V0IHVwIENWUyBzbyB0aGF0IHlvdSBsb2FkIHRoZSBJQ1U0SiBwcm9qZWN0IGludG8gCkM6XElDVTRKPGJyPgo8YnI+CllvdSBuZWVkIGJvdGggdGhlIG1haW4gaWN1NGogYW5kIGEgc3VicHJvamVjdCBjYWxsZWQgdW5pY29kZXRvb2xzLiBTZWU6CjxhIGhyZWY9Imh0dHA6Ly93d3cuaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uL2ljdS9yZXBvc2l0b3J5LmpzcCI+Cmh0dHA6Ly93d3cuaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uL2ljdS9yZXBvc2l0b3J5LmpzcDwvYT4uIEluc2lkZSB1bmljb2RldG9vbHMsIGxvb2sgYXQgY29tL2libS90ZXh0LiBUaGUgCm1haW4gZGlyZWN0b3JpZXMgb2YgaW50ZXJlc3QgYXJlIFVDRCwgVUNBIGFuZCB1dGlsaXR5LjwvcD4KPGg0PjBhLiBJZiB5b3UgYXJlIHVzaW5nIEVjbGlwc2UgZm9yIHlvdXIgSURFLCBsb29rIGF0IHRoZSBpbnN0cnVjdGlvbnMgb24KPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvZG9jcy9lY2xpcHNlX2hvd3RvL2VjbGlwc2VfaG93dG8uaHRtbCI+Cmh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2RvY3MvZWNsaXBzZV9ob3d0by9lY2xpcHNlX2hvd3RvLmh0bWw8L2E+IDwvaDQ+CjxwPlNldCB1cCBFY2xpcHNlIHRvIGJ1aWxkIHR3byBwcm9qZWN0czogSUNVNEogYW5kIFVuaWNvZGVUb29sczo8YnI+Cjxicj4KPGI+UHJvamVjdCBOYW1lOiA8L2I+SUNVNEo8YnI+CjxiPkRpcmVjdG9yeTogPC9iPkM6XElDVTRKXGljdTRqPGJyPgo8Yj5EZWZhdWx0IG91dHB1dCBmb2xkZXIgPSA8L2I+SUNVNEovY2xhc3Nlczxicj4KPGJyPgo8Yj5Qcm9qZWN0IE5hbWU6IDwvYj51bmljb2RldG9vbHM8YnI+CjxiPkNyZWF0ZSBwcm9qZWN0IGZyb20gZXhpc3Rpbmcgc291cmNlOiA8L2I+QzpcSUNVNEpcdW5pY29kZXRvb2xzPGJyPgo8Yj5EZWZhdWx0IE91dHB1dCBGb2xkZXI6IDwvYj51bmljb2RldG9vbHMvY2xhc3Nlczxicj4KPGJyPgpBZnRlciBFY2xpcHNlIGlzIHNldCB1cCB3aXRoIHRoZXNlLCBleGNsdWRlIGNlcnRhaW4gZmlsZXMgZnJvbSB1bmljb2RldG9vbHM6PGJyPgo8YnI+ClJpZ2h0LUNsaWNrIFVuaWNvZGVUb29scyAmZ3Q7IFByb3BlcnRpZXMgJmd0OyBKYXZhIEJ1aWxkIFBhdGggJmd0OyBFeGNsdXNpb25zPGJyPgpjb20vaWJtL3JibS88YnI+CmNvbS9pYm0vdGV4dC91dGlsaXR5L1VuaWNvZGVNYXBJbnQuamF2YTxicj4KY29tL2libS90ZXh0L3V0aWxpdHkvVGVzdFV0aWxpdHkuamF2YTxicj4KY29tL2libS90ZXh0L1VDRC9HZW5lcmF0ZVRoYWlCcmVha3Mtb2xkLmphdmEvPGJyPgpjb20vaWJtL3RleHQvVUNEL1Byb2Nlc3NVbmloYW4uamF2YS88YnI+CmNvbS9pYm0vdGV4dC9VQ0EvV3JpdGVIVE1MQ29sbGF0aW9uLmphdmEvPGJyPgo8YnI+ClVuaWNvZGVUb29scyBtdXN0IGFsc28gaW5jbHVkZSB0aGUgSUNVNEogcHJvamVjdCwgd2l0aDxicj4KPGJyPgpSaWdodC1DbGljayBVbmljb2RlVG9vbHMgJmd0OyBQcm9wZXJ0aWVzICZndDsgSmF2YSBCdWlsZCBQYXRoICZndDsgUHJvamVjdHM8L3A+CjxoMz4xLiBJbiBVQ0QsIHlvdSBtdXN0IGVkaXQgVUNEX1R5cGVzLmphdmEgYXQgdGhlIHRvcCwgdG8gc2V0IHRoZSBkaXJlY3RvcmllcyBmb3IgdGhlIGJ1aWxkOjwvaDM+CjxwPnB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfRElSID0gJnF1b3Q7QzpcXERBVEFcXCZxdW90Ozs8YnI+CnB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFVDRF9ESVIgPSBCQVNFX0RJUiArICZxdW90O1VDRFxcJnF1b3Q7Ozxicj4KcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQklOX0RJUiA9IERBVEFfRElSICsgJnF1b3Q7QklOXFwmcXVvdDs7PGJyPgpwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBHRU5fRElSID0gREFUQV9ESVIgKyAmcXVvdDtHRU5cXCZxdW90Ozs8YnI+Cjxicj4KTWFrZSBzdXJlIHRoYXQgZWFjaCBvZiB0aGVzZSBkaXJlY3RvcmllcyBleGlzdC4gQWxzbyBtYWtlIHN1cmUgdGhhdCB0aGUgZm9sbG93aW5nPGJyPgpleGlzdDo8YnI+Cjxicj4KJmx0O0dFTl9ESVImZ3Q7L0Rlcml2ZWREYXRhPGJyPgombHQ7R0VOX0RJUiZndDsvRGVyaXZlZERhdGEvRXh0cmFjdGVkUHJvcGVydGllczxicj4KJmx0O1VDRF9ESVImZ3Q7L0VYVFJBUy1VcGRhdGU8L3A+CjxoMz4yLiBEb3dubG9hZCBhbGwgb2YgdGhlIFVuaWNvZGVEYXRhIGZpbGVzIGZvciBlYWNoIHZlcnNpb24gaW50byBVQ0RfRElSLjwvaDM+CjxwPlRoZSBmb2xkZXIgbmFtZXMgbXVzdCBiZSBvZiB0aGUgZm9ybTogJnF1b3Q7My4yLjAtVXBkYXRlJnF1b3Q7LCBzbyByZW5hbWUgdGhlIGZvbGRlcnMgb24gdGhlPGJyPgpVbmljb2RlIHNpdGUgdG8gdGhpcyBmb3JtYXQuIEk8c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI0ZGRkYwMCI+ZiB0aGUgCmZvbGRlciBjb250YWlucyB1Y2QsIHRoZW4gbWFrZSB0aGUgY29udGVudHMgb2YgdGhhdCBkaXJlY3RvcnkgYmUgdGhlIGNvbnRlbnRzIG9mIAp0aGUgeC54LngtVXBkYXRlIGRpcmVjdG9yeS4gVGhhdCBpcywgZWFjaCBkaXJlY3Rvcnkgd2lsbCBkaXJlY3RseSBjb250YWluIGZpbGVzIApsaWtlIFByb3BMaXN0Li4uLnR4dDwvc3Bhbj48L3A+CjxoND4yYSBFbnN1cmUgQ29tcGxldGUgUmVsZWFzZTwvaDQ+CjxwPklmIHlvdSBhcmUgZG93bmxvYWRpbmcgYW55ICZxdW90O2luY29tcGxldGUmcXVvdDsgcmVsZWFzZSAob25lIHRoYXQgZG9lcyBub3QgY29udGFpbiBhIGNvbXBsZXRlIHNldCBvZiBkYXRhIApmaWxlcyBmb3IgdGhhdCByZWxlYXNlLCB5b3UgbmVlZCB0byBhbHNvIGRvd25sb2FkIHRoZSBwcmV2aW91cyBjb21wbGV0ZSByZWxlYXNlKS4gTW9zdCBvZiB0aGUgTi5NLVVwZGF0ZSAKZGlyZWN0b3JpZXNzIGFyZSBjb21wbGV0ZSwgKmV4Y2VwdCo6PC9wPgo8cD40LjAtVXBkYXRlLCB3aGljaCBkb2VzIG5vdCBjb250YWluIGEgY29weSBvZiBVbmloYW4udHh0IGFuZCBzb21lIG90aGVyIGZpbGVzPGJyPgozLjEtVXBkYXRlLCB3aGljaCBkb2VzIG5vdCBjb250YWluIGEgY29weSBvZiBCaWRpTWlycm9yaW5nLnR4dDwvcD4KPHA+QWxzbywgbWFrZSB0aGUgZm9sbG93aW5nIGNoYW5nZXMgdG8gVW5pY29kZURhdGEgZm9yIDEuMS41OjwvcD4KPHA+PGI+RGVsZXRlPC9iPjwvcD4KPHByZT4zNDAwO0hBTkdVTCBTWUxMQUJMRSBLSVlFT0sgQTtMbzswO0w7MTEwMCAxMTYxOzs7O047Ozs7OwouLi4KNERGRjtIQU5HVUwgU1lMTEFCTEUgTUlFVU0gV0VPIFJJRVVMLVRISUVVVEg7TG87MDtMOzExMDYgMTE2RiAxMUI0Ozs7O047Ozs7Owo0RTAwOzxjamsgSURFT0dSQVBIIFJFUFJFU0VOVEFUSVZFPjtMbzswO0w7Ozs7O047Ozs7OzwvcHJlPgo8cD48Yj5BZGQ6PC9iPjwvcD4KPHByZT40RTAwOzxjamsgSWRlb2dyYXBoLCBGaXJzdD47TG87MDtMOzs7OztOOzs7OzsKOUZBNTs8Y2prIElkZW9ncmFwaCwgTGFzdD47TG87MDtMOzs7OztOOzs7OzsKRTAwMDs8cHJpdmF0ZSBVc2UsIEZpcnN0PjtDbzswO0w7Ozs7O047Ozs7OwpGOEZGOzxwcml2YXRlIFVzZSwgTGFzdD47Q287MDtMOzs7OztOOzs7Ozs8L3ByZT4KPHA+PGI+QW5kIGZyb20gYSBsYXRlIHZlcnNpb24gb2YgVW5pY29kZSwgYWRkOjwvYj48L3A+CjxwcmU+RjkwMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMDtMbzswO0w7OEM0ODs7OztOOzs7OzsKLi4uCkZBMkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkQ7TG87MDtMOzlEQjQ7Ozs7Tjs7Ozs7PC9wcmU+CjxoND4yYi4gVUNBIGRhdGE8L2g0Pgo8cD5JZiB5b3UgYXJlIGJ1aWxkaW5nIGFueSBvZiB0aGUgVUNBIHRvb2xzLCB5b3UgbmVlZCB0byBnZXQgYSBjb3B5IG9mIHRoZSBVQ0EgZGF0YSBmaWxlPGJyPgpmcm9tIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjEwLyNBbGxLZXlzLiBUaGUgZGVmYXVsdCBsb2NhdGlvbiBmb3IgdGhpcyBpczo8YnI+Cjxicj4KQkFTRV9ESVIgKyAmcXVvdDtDb2xsYXRpb25cYWxsa2V5cyZxdW90OyArIFZFUlNJT04gKyAmcXVvdDsudHh0JnF1b3Q7Ljxicj4KPGJyPgpJZiB5b3UgaGF2ZSBpdCBpbiBhIGRpZmZlcmVudCBsb2NhdGlvbiwgY2hhbmdlIHRoYXQgdmFsdWUgZm9yIEtFWVMgaW4gVUNBLmphdmEsIGFuZCA8YnI+CnRoZSB2YWx1ZSBmb3IgQkFTRV9ESVI8L3A+CjxoND4yYy4gSGVyZSBpcyBhbiBleGFtcGxlIG9mIHRoZSBkZWZhdWx0IGRpcmVjdG9yeSBzdHJ1Y3R1cmUgd2l0aCBmaWxlcy4gQWxsIG9mIAp0aGUgeWVsbG93IG9uZXMgc2hvdWxkIGV4aXN0PC9oND4KPHByZT5DOi8vREFUQS8KCiAgICAgICAgQklOLwogICAgCjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRjAwIj4gICAgICAgIENvbGxhdGlvbi8KICAgICAgICAgICAgYWxsa2V5cy0zLjEuMS50eHQKPC9zcGFuPiAgICAgICAgCiAgICAgICAgR0VOLwogICAgICAgICAgICBEZXJpdmVkRGF0YS8KPHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNGRkZGMDAiPiAgICAgICAgPC9zcGFuPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRjAwIj5VQ0QvCiAgICAgICAgICAgIDMuMC4wLVVwZGF0ZS8KICAgICAgICAgICAgICAgIFVuaWhhbi0zLjIuMC50eHQKICAgICAgICAgICAgICAgIC4uLgogICAgICAgICAgICAzLjAuMS1VcGRhdGUvCiAgICAgICAgICAgICAgICAuLi4KICAgICAgICAgICAgMy4xLjAtVXBkYXRlLwogICAgICAgICAgICAgICAgLi4uCiAgICAgICAgICAgIDMuMS4xLVVwZGF0ZS8KICAgICAgICAgICAgICAgIC4uLgogICAgICAgICAgICAzLjIuMC1VcGRhdGUvCiAgICAgICAgICAgICAgICAuLi4KICAgICAgICAgICAgNC4wLjAtVXBkYXRlLwogICAgICAgICAgICAgICAgQXJhYmljU2hhcGluZy00LjAuMGQxNGIudHh0CiAgICAgICAgICAgICAgICBCaWRpTWlycm9yaW5nLTQuMC4wZDFiLnR4dAogICAgICAgICAgICAgICAgLi4uCiAgICAgICAgICAgIEVYVFJBUy1VcGRhdGUvPC9zcGFuPjwvcHJlPgo8aDM+My4gVmVyc2lvbnM8L2gzPgo8cD5BbGwgb2YgdGhlIGZvbGxvd2luZyBoYXZlICZxdW90O3ZlcnNpb24gWCZxdW90OyBpbiB0aGUgb3B0aW9ucyB5b3UgZ2l2ZSB0byBKYXZhIChlaXRoZXIgb24gdGhlJm5ic3A7IApjb21tYW5kIGxpbmUsIG9yIGluIHRoZSBFY2xpcHNlICdydW4nIG9wdGlvbnMuIElmIHlvdSB3YW50IGEgc3BlY2lmaWMgdmVyc2lvbiBsaWtlIDMuMS4wLCB0aGVuIHlvdSAKd291bGQgd3JpdGUgJnF1b3Q7dmVyc2lvbiAzLjEuMSZxdW90Oy4gSWYgeW91IHdhbnQgdGhlIGxhdGVzdCB2ZXJzaW9uICg0LjEuMCksIHlvdSBjYW4gb21pdCB0aGUgJnF1b3Q7dmVyc2lvbiBYJnF1b3Q7LjwvcD4KPGgzPjQuIEJ1aWxkaW5nIEZpbGVzPC9oMz4KPG9sPgoJPGxpPjxiPlNldHVwPC9iPjxvbD4KCQk8bGk+SW4gRWNsaXBzZSwgb3BlbiB0aGUgUGFja2FnZSBFeHBsb3JlciAoVXNlIFdpbmRvdyZndDtTaG93IFZpZXcgaWYgeW91IAoJCWRvbid0IHNlZSBpdCk8L2xpPgoJCTxsaT5PcGVuIFVuaWNvZGVUb29sczx1bD4KCQkJPGxpPmNvbS5pYm0udGV4dC5VQ0Q8dWw+CgkJCQk8bGk+TWFrZVVuaWNvZGVGaWxlcy48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI0ZGRkYwMCI+dHh0PC9zcGFuPjxwPlRoaXMgZmlsZSBkcml2ZXMgdGhlIHByb2R1Y3Rpb24gb2YgCgkJCQl0aGUgZGVyaXZlZCBVbmljb2RlIGZpbGVzLiBUaGUgZmlyc3QgdGhyZWUgbGluZXMgY29udGFpbiAKCQkJCXBhcmFtZXRlcnMgdGhhdCB5b3UgbWF5IHdhbnQgdG8gbW9kaWZ5IGF0IHNvbWUgdGltZXM6PC9wPgoJCQkJPHByZT5HZW5lcmF0ZTogPGI+LipzY3JpcHQuKjwvYj4gPGk+Ly8gdGhpcyBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4gVXNlIC4qIGZvciBhbGwgZmlsZXM8L2k+CkRlbHRhVmVyc2lvbjogPGI+MTA8L2I+IDxpPiAgICAvLyBUaGlzIGdldHMgYXBwZW5kZWQgdG8gdGhlIGZpbGUgbmFtZS4gUGljayAxKyB0aGUgaGlnaGVzdCB2YWx1ZSBpbiBQdWJsaWM8L2k+CkNvcHlyaWdodFllYXI6IDxiPjIwMDY8L2I+IDxpPiAvLyBQaWNrIHRoZSBjdXJyZW50IHllYXI8L2k+PC9wcmU+CgkJCQk8L2xpPgoJCQk8L3VsPgoJCQk8L2xpPgoJCTwvdWw+CgkJPC9saT4KCQk8bGk+T3BlbiBpbiBQYWNrYWdlIEV4cGxvcmVyIAoJCTx1bD4KCQkJPGxpPmNvbS5pYm0udGV4dC5VQ0Q8dWw+CgkJCQk8bGk+TWFpbjwvbGk+CgkJCTwvdWw+CgkJCTwvbGk+CgkJPC91bD4KCQk8L2xpPgoJCTxsaT5SdW4mZ3Q7UnVuIEFzLi4uPG9sPgoJCQk8bGk+Q2hvb3NlIEphdmEgQXBwbGljYXRpb248dWw+CgkJCQk8bGk+aXQgd2lsbCBmYWlsLCBkb24ndCB3b3JyeTsgeW91IG5lZWQgdG8gc2V0IHNvbWUgcGFyYW1ldGVycy48L2xpPgoJCQk8L3VsPgoJCQk8L2xpPgoJCTwvb2w+CgkJPC9saT4KCQk8bGk+UnVuJmd0O1J1bi4uLjx1bD4KCQkJPGxpPlNlbGVjdCB0aGUgQXJndW1lbnRzIHRhYiwgYW5kIGZpbGwgaW4gdGhlIGZvbGxvd2luZzx1bD4KCQkJCTxsaT5Qcm9ncmFtIGFyZ3VtZW50czo8cHJlPmJ1aWxkIDUuMDxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRjAwIj4uMDwvc3Bhbj4gTWFrZVVuaWNvZGVGaWxlczwvcHJlPgoJCQkJPC9saT4KCQkJCTxsaT5WTSBhcmd1bWVudHM6IAoJCQkJPHByZT4tWG1zNTEybSAtWG14NTEybTwvcHJlPgoJCQkJPC9saT4KCQkJPC91bD4KCQkJPC9saT4KCQkJPGxpPkNsb3NlIGFuZCBTYXZlPC9saT4KCQk8L3VsPgoJCTwvbGk+Cgk8L29sPgoJPC9saT4KCTxsaT48Yj5SdW48L2I+PG9sPgoJCTxsaT5Zb3UnbGwgc2VlIGl0IGJ1aWxkIHRoZSA1LjAgZmlsZXMsIHdpdGggc29tZXRoaW5nIGxpa2UgdGhlIGZvbGxvd2luZyAKCQlyZXN1bHRzOjxwcmU+V3JpdGluZyBVQ0RfRGF0YTUuMC4wCkRhdGEgU2l6ZTogMTA5LDgwMgpXcm90ZSBEYXRhIDEwOTgwMjwvcHJlPgoJCTwvbGk+CgkJPGxpPkZvciBlYWNoIHZlcnNpb24sIHRoZSB0b29scyBidWlsZCBhIHNldCBvZiBiaW5hcnkgZGF0YSBpbiBCSU4gdGhhdCAKCQljb250YWluIHRoZSBpbmZvcm1hdGlvbiBmb3IgdGhhdCByZWxlYXNlLiBUaGlzIGlzIGRvbmUgYXV0b21hdGljYWxseSwgb3IgCgkJeW91IGNhbiBtYW51YWxseSBkbyBpdCB3aXRoIHRoZSBQcm9ncmFtIEFyZ3VtZW50czxwcmU+dmVyc2lvbiBYIGJ1aWxkPC9wcmU+CgkJPHA+VGhpcyBidWlsZHMgYW4gY29tcHJlc3NlZCBmb3JtYXQgb2YgYWxsIHRoZSBVQ0QgZGF0YSAoZXhjZXB0IGJsb2NrcyAKCQlhbmQgVW5paGFuKSBpbnRvIHRoZSBCSU4gZGlyZWN0b3J5LiBEb24ndCB3b3JyeSBhYm91dCB0aGUgdm9sdW1pbm91cyAKCQljb25zb2xlIG1lc3NhZ2VzLCB1bmxlc3Mgb25lIHNheXMgJnF1b3Q7RkFJTCZxdW90Oy48L3A+CgkJPHA+PGZvbnQgY29sb3I9IiNGRjAwMDAiPjxpPllvdSBoYXZlIHRvIG1hbnVhbGx5IGRvIHRoaXMgaWYgeW91IGNoYW5nZSAKCQlhbnkgb2YgdGhlIGRhdGEgZmlsZXMgaW4gdGhhdCB2ZXJzaW9uITwvaT48L2ZvbnQ+PC9wPgoJCTxwPk5vdGU6IGlmIGZvciBhbnkgcmVhc29uIHlvdSBtb2RpZnkgdGhlIGJpbmFyeSBmb3JtYXQgb2YgdGhlIEJJTiBmaWxlcywgeW91IGFsc28gaGF2ZSB0byBidW1wIHRoZSAKdmFsdWUgaW4gdGhhdCBmaWxlOjwvcD4KCQk8cHJlPnN0YXRpYyBmaW5hbCBieXRlIEJJTkFSWV9GT1JNQVQgPSA4OyAvLyBidW1wZWQgaWYgYmluYXJ5IGZvcm1hdCBvZiBVQ0QgY2hhbmdlczwvcHJlPgoJCTwvbGk+Cgk8L29sPgoJPC9saT4KCTxsaT5SZXN1bHRzIGluIDxhIGhyZWY9ImZpbGU6Ly8vQzovREFUQS9HRU4vRGVyaXZlZERhdGEiPgoJQzpcREFUQVxHRU5cRGVyaXZlZERhdGE8L2E+PG9sPgoJCTxsaT5UaGUgZmlsZXMgd2lsbCBiZSBpbiB0aGlzIGRpcmVjdG9yeS48L2xpPgoJCTxsaT5UaGVyZSBhcmUgYWxzbyBESUZGIGZvbGRlcnMsIHRoYXQgY29udGFpbiBCQVQgZmlsZXMgdGhhdCB5b3UgY2FuIHJ1biAKCQlvbiBXaW5kb3dzIHdpdGggQ29tcGFyZUl0LiAoWW91IGNhbiBtb2RpZnkgdGhlIGNvZGUgdG8gYnVpbGQgQkFUcyB3aXRoIAoJCWFub3RoZXIgRGlmZiBwcm9ncmFtIGlmIHlvdSB3YW50KS48b2w+CgkJCTxsaT5Gb3IgYW55IGZpbGUgd2l0aCBhIHNpZ25pZmljYW50IGRpZmZlcmVuY2UsIGl0IHdpbGwgYnVpbGQgdHdvIAoJCQlCQVQgZmlsZXMsIHN1Y2ggYXMgdGhlIGZpcnN0IHR3byBiZWxvdy48cHJlPkRpZmZfUHJvcExpc3QtNS4wLjBkMTAudHh0LmJhdApPTERFUi1EaWZmX1Byb3BMaXN0LTUuMC4wZDEwLnR4dC5iYXQKClVOQ0hBTkdFRC1EaWZmX1Byb3BlcnR5VmFsdWVBbGlhc2VzLTUuMC4wZDEwLnR4dC5iYXQ8L3ByZT4KCQkJPC9saT4KCQk8L29sPgoJCTwvbGk+CgkJPGxpPkFueSBmaWxlcyB3aXRob3V0IHNpZ25pZmljYW50IGNoYW5nZXMgd2lsbCBoYXZlICZxdW90O1VOQ0hBTkdFRCZxdW90OyBhcyBhIAoJCXByZWZpeDogaWdub3JlIHRoZW0uJm5ic3A7IFRoZSBPTERFUiBwcmVmaXggaXMgdGhlIGNvbXBhcmlzb24gdG8gdGhlIAoJCWxhc3QgdmVyc2lvbiBvZiBVbmljb2RlLjwvbGk+CgkJPGxpPk9uIFdpbmRvd3MgeW91IGNhbiBydW4gdGhlc2UgQkFUcyB0byBjb21wYXJlIGZpbGVzOjwvbGk+Cgk8L29sPgoJPC9saT4KCTxsaT48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI0ZGRkYwMCI+TkZTa2lwcGFibGU8L3NwYW4+PG9sPgoJPGxpPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRjAwIj5BIGZpbGUgaXMgbmVlZGVkIGJ5IElDVSB0aGF0IGlzIAoJZ2VuZXJhdGVkIHdpdGggdGhlIHNhbWUgdG9vbC4gSnVzdCB1c2UgdGhlIGlucHV0IHBhcmFtZXRlciAmcXVvdDtORlNraXBwYWJsZSZxdW90OyB0byAKCWdlbmVyYXRlIHRoZSBmaWxlIE5GU2FmZVNldHMudHh0LCBhbHNvIGluIDwvc3Bhbj4KCTxhIGhyZWY9ImZpbGU6Ly8vQzovREFUQS9HRU4iPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRjAwIj4KCWZpbGU6Ly8vQzovREFUQS9HRU48L3NwYW4+PC9hPjwvbGk+Cjwvb2w+Cgk8L2xpPgo8L29sPgo8aDM+NS4gSW52YXJpYW50IENoZWNraW5nPC9oMz4KPG9sPgoJPGxpPlNldHVwPG9sPgoJCTxsaT5PcGVuIGluIFBhY2thZ2UgRXhwbG9yZXI8dWw+CgkJCTxsaT5jb20uaWJtLnRleHQuVUNEPHVsPgoJCQkJPGxpPlRlc3RVbmljb2RlSW52YXJpYW50cy5qYXZhPC9saT4KCQkJPC91bD4KCQkJPC9saT4KCQk8L3VsPgoJCTwvbGk+CgkJPGxpPlJ1biZndDtSdW4gQXMuLi4gSmF2YSBBcHBsaWNhdGlvbjxicj4KCQlXaWxsIGNyZWF0ZSB0aGUgZm9sbG93aW5nIGZpbGUgb2YgcmVzdWx0czo8cHJlPjxhIGhyZWY9ImZpbGU6Ly8vQzovREFUQS9HRU4vVW5pY29kZUludmFyaWFudFJlc3VsdHMudHh0LyI+QzpcREFUQVxHRU5cVW5pY29kZUludmFyaWFudFJlc3VsdHMudHh0XDwvYT48L3ByZT4KCQk8cD5BbmQgb24gdGhlIGNvbnNvbGUgd2lsbCBsaXN0IHdoZXRoZXIgYW55IHByb2JsZW1zIGFyZSBmb3VuZC4gVGh1cyBpbiAKCQl0aGUgZm9sbG93aW5nIGNhc2UgdGhlcmUgd2FzIG9uZSBmYWlsdXJlOjwvcD4KCQk8cHJlPlBhcnNlRXJyb3JDb3VudD0wClRlc3RGYWlsdXJlQ291bnQ9MTwvcHJlPgoJCTwvbGk+CgkJPGxpPlRoZSBoZWFkZXIgb2YgdGhlIHJlc3VsdCBmaWxlIGV4cGxhaW5zIHRoZSBzeW50YXggb2YgdGhlIHRlc3RzLjwvbGk+CgkJPGxpPk9wZW4gdGhhdCBmaWxlIGFuZCBzZWFyY2ggZm9yICZxdW90OyoqKiogU1RBUlQgRXJyb3IgSW5mbyAqKioqJnF1b3Q7LiBFYWNoIHN1Y2ggCgkJcG9pbnQgcHJvdmlkZXMgYSBkdW1wIG9mIGNvbXBhcmlzb24gaW5mb3JtYXRpb24uPG9sPgoJCTxsaT5GYWlsdXJlcyBwcmludCBhIGxpc3Qgb2YgZGlmZmVyZW5jZXMgYmV0d2VlbiB0d28gc2V0cyBiZWluZyAKCQljb21wYXJlZC4gU28gaWYgQSBhbmQgQiBhcmUgYmVpbmcgY29tcGFyZWQsIGl0IHByaW50cyBhbGwgdGhlIGl0ZW1zIGluIAoJCUEtQiwgdGhlbiBpbiBCLUEsIHRoZW4gaW4gQSZhbXA7Qi48L2xpPgoJCTxsaT5Gb3IgZXhhbXBsZSwgaGVyZSBpcyBhIGxpc3Rpbmcgb2YgYSBwcm9ibGVtIHRoYXQgbXVzdCBiZSBjb3JyZWN0ZWQuIAoJCU5vdGUgdGhhdCB1c3VhbGx5IHRoZXJlIGlzIGEgY29tbWVudCB0aGF0IGV4cGxhaW5zIHdoYXQgdGhlIGZvbGxvd2luZyAKCQlsaW5lIG9yIGxpbmVzIGFyZSBzdXBwb3NlZCB0byB0ZXN0LiBUaGVuIHdpbGwgY29tZSBGQUxTRSAoaW5kaWNhdGluZyAKCQl0aGF0IHRoZSB0ZXN0IGZhaWxlZCksIHRoZW4gdGhlIGRldGFpbGVkIGVycm9yIHJlcG9ydC48cHJlPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDlwdCI+IyBDYW5vbmljYWwgZGVjb21wb3NpdGlvbnMgKG1pbnVzIGV4Y2x1c2lvbnMpIG11c3QgYmUgaWRlbnRpY2FsIGFjcm9zcyByZWxlYXNlcwpbJERlY29tcG9zaXRpb25fVHlwZTpDYW5vbmljYWwgLSAkRnVsbF9Db21wb3NpdGlvbl9FeGNsdXNpb25dID0gWyTXRGVjb21wb3NpdGlvbl9UeXBlOkNhbm9uaWNhbCAtICTXRnVsbF9Db21wb3NpdGlvbl9FeGNsdXNpb25dCgpGQUxTRQoqKioqIFNUQVJUIEVycm9yIEluZm8gKioqKgoKSW4gWyTXRGVjb21wb3NpdGlvbl9UeXBlOkNhbm9uaWNhbCAtICTXRnVsbF9Db21wb3NpdGlvbl9FeGNsdXNpb25dLCBidXQgbm90IGluIFskRGVjb21wb3NpdGlvbl9UeXBlOkNhbm9uaWNhbCAtICRGdWxsX0NvbXBvc2l0aW9uX0V4Y2x1c2lvbl0gOgoKIyBUb3RhbCBjb2RlIHBvaW50czogMAoKTm90IGluIFsk10RlY29tcG9zaXRpb25fVHlwZTpDYW5vbmljYWwgLSAk10Z1bGxfQ29tcG9zaXRpb25fRXhjbHVzaW9uXSwgYnV0IGluIFskRGVjb21wb3NpdGlvbl9UeXBlOkNhbm9uaWNhbCAtICRGdWxsX0NvbXBvc2l0aW9uX0V4Y2x1c2lvbl0gOgoxQjA2ICAgICAgICAgICAjIExvICAgICAgIEJBTElORVNFIExFVFRFUiBBS0FSQSBURURVTkcKMUIwOCAgICAgICAgICAgIyBMbyAgICAgICBCQUxJTkVTRSBMRVRURVIgSUtBUkEgVEVEVU5HCjFCMEEgICAgICAgICAgICMgTG8gICAgICAgQkFMSU5FU0UgTEVUVEVSIFVLQVJBIFRFRFVORwoxQjBDICAgICAgICAgICAjIExvICAgICAgIEJBTElORVNFIExFVFRFUiBSQSBSRVBBIFRFRFVORwoxQjBFICAgICAgICAgICAjIExvICAgICAgIEJBTElORVNFIExFVFRFUiBMQSBMRU5HQSBURURVTkcKMUIxMiAgICAgICAgICAgIyBMbyAgICAgICBCQUxJTkVTRSBMRVRURVIgT0tBUkEgVEVEVU5HCjFCM0IgICAgICAgICAgICMgTWMgICAgICAgQkFMSU5FU0UgVk9XRUwgU0lHTiBSQSBSRVBBIFRFRFVORwoxQjNEICAgICAgICAgICAjIE1jICAgICAgIEJBTElORVNFIFZPV0VMIFNJR04gTEEgTEVOR0EgVEVEVU5HCjFCNDAuLjFCNDEgICAgICMgTWMgICBbMl0gQkFMSU5FU0UgVk9XRUwgU0lHTiBUQUxJTkcgVEVEVU5HLi5CQUxJTkVTRSBWT1dFTCBTSUdOIFRBTElORyBSRVBBIFRFRFVORwoxQjQzICAgICAgICAgICAjIE1jICAgICAgIEJBTElORVNFIFZPV0VMIFNJR04gUEVQRVQgVEVEVU5HCgojIFRvdGFsIGNvZGUgcG9pbnRzOiAxMQoKSW4gYm90aCBbJNdEZWNvbXBvc2l0aW9uX1R5cGU6Q2Fub25pY2FsIC0gJNdGdWxsX0NvbXBvc2l0aW9uX0V4Y2x1c2lvbl0sIGFuZCBpbiBbJERlY29tcG9zaXRpb25fVHlwZTpDYW5vbmljYWwgLSAkRnVsbF9Db21wb3NpdGlvbl9FeGNsdXNpb25dIDoKMDBDMC4uMDBDNSAgICAgIyBMJmFtcDsgICBbNl0gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEdSQVZFLi5MQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRQowMEM3Li4wMENGICAgICAjIEwmYW1wOyAgIFs5XSBMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0VESUxMQS4uTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUwowMEQxLi4wMEQ2ICAgICAjIEwmYW1wOyAgIFs2XSBMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggVElMREUuLkxBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVMKLi4uCjMwRjcuLjMwRkEgICAgICMgTG8gICBbNF0gS0FUQUtBTkEgTEVUVEVSIFZBLi5LQVRBS0FOQSBMRVRURVIgVk8KMzBGRSAgICAgICAgICAgIyBMbSAgICAgICBLQVRBS0FOQSBWT0lDRUQgSVRFUkFUSU9OIE1BUksKQUMwMC4uRDdBMyAgICAgIyBMbyBbMTExNzJdIEhBTkdVTCBTWUxMQUJMRSBHQS4uSEFOR1VMIFNZTExBQkxFIEhJSAoKIyBUb3RhbCBjb2RlIHBvaW50czogMTIwODkKKioqKiBFTkQgRXJyb3IgSW5mbyAqKioqPC9zcGFuPjwvcHJlPgoJCTwvbGk+Cgk8L29sPgoJCTwvbGk+CgkJPGxpPk9wdGlvbnM6PG9sPgoJCTxsaT4tciZuYnNwOyZuYnNwOyZuYnNwOyBQcmludCB0aGUgZmFpbHVyZXMgYXMgYSByYW5nZSBsaXN0LjwvbGk+CgkJPGxpPi1meHh4Jm5ic3A7Jm5ic3A7Jm5ic3A7IFVzZSBhIGRpZmZlcmVudCBpbnB1dCBmaWxlLCBzdWNoIGFzIC1mSW52YXJpYW50VGVzdC50eHQ8L2xpPgoJPC9vbD4KCQk8L2xpPgoJPC9vbD4KCTwvbGk+Cjwvb2w+CjxoMz42LiBPcHRpb25zPC9oMz4KPG9sPgoJPGxpPklmIHlvdSB3YW50IHRvIHNlZSBmaWxlcyB0aGF0IGFyZSBvcGVuZWQgd2hpbGUgcHJvY2Vzc2luZywgZG8gdGhlIAoJZm9sbG93aW5nOjxvbD4KCQk8bGk+UnVuJmd0O1J1bjwvbGk+CgkJPGxpPlNlbGVjdCB0aGUgQXJndW1lbnRzIHRhYiwgYW5kIGFkZCB0aGUgZm9sbG93aW5nPG9sPgoJCQk8bGk+Vk0gYXJndW1lbnRzOgoJCQk8cHJlPi1EU0hPV19GSUxFUzwvcHJlPgoJCQk8L2xpPgoJCTwvb2w+CgkJPC9saT4KCTwvb2w+Cgk8L2xpPgo8L29sPgo8aDM+NS4gVUNBPC9oMz4KPG9sPgoJPGxpPllvdSB3aWxsIHVzZSBjb20uaWJtLnRleHQuVUNBLk1haW4gYXMgeW91ciBtYWluIGNsYXNzLCBjcmVhdGluZyBhbG9uZyAKCXRoZSBzYW1lIGxpbmVzIGFzIGFib3ZlLjwvbGk+Cgk8bGk+VG8gdGVzdCB3aGV0aGVyIHRoZSBVQ0EgZmlsZXMgYXJlIHZhbGlkLCB1c2UgdGhlCgk8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IDQwMCI+b3B0aW9ucyAoPGk+bm90ZTogeW91IG11c3QgYWxzbyBidWlsZCB0aGUgSUNVIAoJZmlsZXMgYmVsb3csIHNpbmNlIHRoZXkgdGVzdCBvdGhlciBhc3BlY3RzPC9pPikuPC9zcGFuPjxwcmU+d3JpdGVDb2xsYXRpb25WYWxpZGl0eUxvZzwvcHJlPgoJPHA+SXQgd2lsbCBjcmVhdGUgYSBmaWxlOjwvcD4KCTxwcmU+PGEgaHJlZj0iZmlsZTovLy9DOi9EQVRBL0dFTi9jb2xsYXRpb24vNS4wLjAvQ2hlY2tDb2xsYXRpb25WYWxpZGl0eS5odG1sIj5DOlxEQVRBXEdFTlxjb2xsYXRpb25cNS4wLjBcQ2hlY2tDb2xsYXRpb25WYWxpZGl0eS5odG1sPC9hPjwvcHJlPgoJPG9sPgoJCTxsaT5SZXZpZXcgdGhpcyBmaWxlLiBJdCB3aWxsIGxpc3QgZXJyb3JzLiBTb21lIG9mIHRob3NlIGFyZSBhY3R1YWxseSAKCXdhcm5pbmdzLCBhbmQgaW5kaWNhdGUgcG9zc2libGUgcHJvYmxlbXMgKHRoaXMgaXMgaW5kaWNhdGVkIGluIHRoZSB0ZXh0LCAKCXN1Y2ggYXMgYnk6ICZxdW90O1RoZXNlIGFyZSBub3QgbmVjZXNzYXJpbHkgZXJyb3JzLCBidXQgc2hvdWxkIGJlIGV4YW1pbmVkIGZvciAKCQk8aT5wb3NzaWJsZTwvaT4gZXJyb3JzJnF1b3Q7KS4gSW4gdGhvc2UgY2FzZXMsIHRoZSBpdGVtcyBzaG91bGQgYmUgcmV2aWV3ZWQgdG8gbWFrZSAKCXN1cmUgdGhhdCB0aGVyZSBhcmUgbm8gaW5hZHZlcnRlbnQgcHJvYmxlbXMuPC9saT4KCQk8bGk+SWYgaXQgaXMgbm90IHNvIG1hcmtlZCwgaXQgaXMgYSB0cnVlIGVycm9yLCBhbmQgbXVzdCBiZSBmaXhlZC48L2xpPgoJCTxsaT5BdCB0aGUgZW5kLCB0aGVyZSBpcyBzZWN0aW9uIDxiPjExLiBDb3ZlcmFnZTwvYj4uIFRoZXJlIGFyZSB0d28gc2VjdGlvbnM6PG9sPgoJCQk8bGk+SW4gVUNEeHh4LCBidXQgbm90IGluIGFsbGtleXMuIENoZWNrIHRoaXMgb3ZlciB0byBtYWtlIHN1cmUgdGhhdCB0aGVzZSAKCWFyZSBhbGwgdGhlIGNoYXJhY3RlcnMgdGhhdCBzaG91bGQgZ2V0IDxiPjxpPmltcGxpY2l0PC9pPjwvYj4gd2VpZ2h0cy48L2xpPgoJCQk8bGk+SW4gYWxsa2V5cywgYnV0IG5vdCBpbiBVQ0QuIFRoZXNlIHNob3VsZCBiZSA8Yj48aT5vbmx5PC9pPjwvYj4gCgljb250cmFjdGlvbnMuIENoZWNrIHRoZW0gb3ZlciB0byBtYWtlIHN1cmUgdGhleSBsb29rIHJpZ2h0IGFsc28uPC9saT4KCQk8L29sPjwvbGk+Cgk8L29sPjwvbGk+Cgk8bGk+Cgk8aDQ+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiA0MDAiPlRvIGJ1aWxkIGFsbCB0aGUgY2hhcnRzIChpbmNsdWRpbmcgZm9yIAoJdGhlIFVDQSksIHVzZSB0aGUgb3B0aW9uczogPC9zcGFuPjwvaDQ+Cgk8cHJlPm5vcm1hbGl6YXRpb25DaGFydCBjYXNlQ2hhcnQgc2NyaXB0Q2hhcnQgaW5kZXhDaGFydDwvcHJlPgoJPHA+VGhleSB3aWxsIGJlIGJ1aWx0IGludG88L3A+Cgk8cHJlPjxhIGhyZWY9ImZpbGU6Ly8vQzovREFUQS9HRU4vY2hhcnRzIj5DOlxEQVRBXEdFTlxjaGFydHM8L2E+PC9wcmU+Cgk8cD48Yj5PbmNlIFVDQSBpcyByZWxlYXNlZCwgdGhlbiBjb3B5IHRob3NlIGZpbGVzIHVwIHRvIHRoZSByaWdodCBzcG90cyBpbiAKCXRoZSBVbmljb2RlIHNpdGU6PC9iPjx1bD4KCQk8bGk+CgkJPHByZT48YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL2NoYXJ0cy9ub3JtYWxpemF0aW9uLyI+aHR0cDovL3d3dy51bmljb2RlLm9yZy9jaGFydHMvbm9ybWFsaXphdGlvbi88L2E+PC9wcmU+CgkJPC9saT4KCQk8bGk+CgkJPHByZT48YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL2NoYXJ0cy9jb2xsYXRpb24vIj5odHRwOi8vd3d3LnVuaWNvZGUub3JnL2NoYXJ0cy9jb2xsYXRpb24vPC9hPiA8L3ByZT4KCQk8L2xpPgoJCTxsaT4KCQk8cHJlPjxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvY2hhcnRzL2Nhc2UvIj5odHRwOi8vd3d3LnVuaWNvZGUub3JnL2NoYXJ0cy9jYXNlLzwvYT4gPC9wcmU+CgkJPC9saT4KCQk8bGk+CgkJPHByZT48YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL2NoYXJ0cy9jb2xsYXRpb24vIj5odHRwOi8vd3d3LnVuaWNvZGUub3JnL2NoYXJ0cy9jb2xsYXRpb24vPC9hPiA8L3ByZT4KCQk8L2xpPgoJPC91bD4KCTwvbGk+Cgk8bGk+Cgk8aDQ+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiA0MDAiPlRvIGJ1aWxkIGFsbCB0aGUgVUNBIGZpbGVzIHVzZWQgYnkgSUNVLCB1c2UgdGhlIAoJb3B0aW9uOjwvc3Bhbj48L2g0PgoJPHByZT5JQ1U8L3ByZT4KCTxwPlRoZXkgd2lsbCBiZSBidWlsdCBpbnRvOjwvcD4KCTxwcmU+PGEgaHJlZj0iZmlsZTovLy9DOi9EQVRBL0dFTi9jb2xsYXRpb24vNS4wLjAiPkM6XERBVEFcR0VOXGNvbGxhdGlvblw1LjAuMDwvYT48L3ByZT4KCTwvbGk+Cgk8bGk+WW91IHNob3VsZCB0aGVuIGJ1aWxkIGEgc2V0IG9mIHRoZSBJQ1UgZmlsZXMgZm9yIHRoZSBwcmV2aW91cyB2ZXJzaW9uLCAKCWlmIHlvdSBkb24ndCBoYXZlIHRoZW0uIFVzZSB0aGUgb3B0aW9uczo8cHJlPnZlcnNpb24gNC4xLjAgSUNVPC9wcmU+Cgk8cD5PciB3aGF0ZXZlciB0aGUgbGFzdCB2ZXJzaW9uIHdhcy48L2xpPgoJPGxpPk5vdywgeW91IHdpbGwgd2FudCB0byBjb21wYXJlIHZlcnNpb25zLiBUaGUga2V5IGZpbGUgaXMgCglVQ0FfUnVsZXNfTm9DRS50eHQuIEl0IGNvbnRhaW5zIHRoZSBydWxlcyBleHByZXNzZWQgaW4gSUNVIGZvcm1hdCwgd2hpY2ggCglhbGxvd3MgZm9yIGNvbXBhcmlzb24gYWNyb3NzIHZlcnNpb25zIG9mIFVDQSB3aXRob3V0IHNwdXJpb3VzIHZhcmlhdGlvbnMgb2YgCgl0aGUgbnVtYmVycyBnZXR0aW5nIGluIHRoZSB3YXkuPG9sPgoJCTxsaT5EbyBhIERpZmYgYmV0d2VlbiB0aGUgbGFzdCBhbmQgY3VycmVudCB2ZXJzaW9ucyBvZiB0aGVzZSBmaWxlcywgYW5kIAoJCXZlcmlmeSB0aGF0IGFsbCB0aGUgZGlmZmVyZW5jZXMgYXJlIGVpdGhlciBuZXcgY2hhcmFjdGVycywgb3Igd2VyZSAKCQlhdXRob3JpemVkIHRvIGJlIGNoYW5nZWQgYnkgdGhlIFVUQy48L2xpPgoJPC9vbD48L2xpPgo8L29sPgoKPC9ib2R5PgoKPC9odG1sPg==