PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiINCiAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+DQo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiLz4NCjx0aXRsZT5BYm91dCBBU00gMy4zLjE8L3RpdGxlPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tVVMiPg0KPGgxPkFTTSAzLjMuMTwvaDE+DQoNCjxoMj5MaWNlbnNlIDwvaDI+DQo8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiANCiAgICBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyANCglhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KSBhbmQgDQoJRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAok0VETJQpLiBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgYXQgDQoJPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4gDQoJYW5kIGEgY29weSBvZiB0aGUgRURMIGlzIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZWRsLXYxMC5waHAiPiANCglodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZWRsLXYxMC5waHA8L2E+LiAgRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiANCgl3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPg0KPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgDQogIENvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5ICgmcXVvdDtSZWRpc3RyaWJ1dG9yJnF1b3Q7KSANCiAgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkgYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIA0KICBpbiB0aGUgQ29udGVudC4gQ2hlY2sgdGhlIFJlZGlzdHJpYnV0b3ImIzgyMTc7cyBsaWNlbnNlIHRoYXQgd2FzIHByb3ZpZGVkIHdpdGggDQogIHRoZSBDb250ZW50LiBJZiBubyBzdWNoIGxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIA0KICBpbmRpY2F0ZWQgYmVsb3csIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIGFuZCBFREwgc3RpbGwgYXBwbHkgdG8gYW55IHNvdXJjZSANCiAgY29kZSBpbiB0aGUgQ29udGVudCBhbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZyI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZzwvYT4uPC9wPg0KPGgyPlRoaXJkIFBhcnR5IENvbnRlbnQ8L2gyPg0KPHA+VGhlIENvbnRlbnQgaW5jbHVkZXMgaXRlbXMgdGhhdCBoYXZlIGJlZW4gc291cmNlZCBmcm9tIHRoaXJkIHBhcnRpZXMgYXMgc2V0IA0KICBvdXQgYmVsb3cuIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgDQogIHRoZSBmb2xsb3dpbmcgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSwgYW5kIHlvdSBzaG91bGQgbG9vayANCiAgdG8gdGhlIFJlZGlzdHJpYnV0b3ImIzgyMTc7cyBsaWNlbnNlIGZvciB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UuPC9wPg0KPGgzPjxhIG5hbWU9IkFTTSIgaWQ9IkFTTSI+PC9hPkFTTSB2My4zLjEgPC9oMz4NCjxibG9ja3F1b3RlPiANCiAgPHA+VGhlIEVjbGlwc2VMaW5rIFByb2plY3QgaW5jbHVkZXMgQVNNIGZvciB0aGUgcHVycG9zZSBvZiANCiAgICBieXRlIGNvZGUgd2VhdmluZy4gVGhlIEFNUyBsaWJyYXJ5IGlzIHJlLXBhY2thZ2VkIHdpdGhpbiB0aGUgc291cmNlIG9mIHRoZSANCiAgICBwcm9qZWN0IChvcmcucGVyc2lzdGVuY2UuZWNsaXBzZS5pbnRlcm5hbC5saWJyYXJpZXMuYXNtLiopIHRvIGF2b2lkIHZlcnNpb24gDQogICAgY29sbGlzaW9ucyB3aXRoIG90aGVyIHVzYWdlIG9mIEFTTS4gDQogIDwvcD4NCiAgPHA+VGhlIHNvdXJjZSBjb2RlIGlzIGF2YWlsYWJsZSB3aXRoaW4gdGhlIHByb2plY3QncyBzdWJ2ZXJzaW9uIHJlcG9zaXRvcnkuIA0KICAgIFRoZSBiaW5hcmllcyBhcmUgZGlzdHJpYnV0ZWQgd2l0aGluIHRoZSBlY2xpcHNlbGluay5qYXIgYW5kIGluIHRoZSBvcmcuZWNsaXBzZS5wZXJzaXN0ZW5jZS5hc21fKi5qYXIgDQogICAgYnVuZGxlLiA8L3A+DQogIDxwPiA8YSBocmVmPSJodHRwOi8vYXNtLm9iamVjdHdlYi5vcmcvbGljZW5zZS5odG1sIj5odHRwOi8vYXNtLm9iamVjdHdlYi5vcmcvbGljZW5zZS5odG1sPC9hPjwvcD4NCiAgPHA+Q29weXJpZ2h0IChjKSAyMDAwLTIwMDUgSU5SSUEsIEZyYW5jZSBUZWxlY29tLCBBbGwgcmlnaHRzIHJlc2VydmVkLjwvcD4NCiAgPHA+UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgDQogICAgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OjwvcD4NCiAgPG9sPg0KICAgIDxsaT4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCANCiAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuPC9saT4NCiAgICA8bGk+IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgDQogICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIA0KICAgICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uPC9saT4NCiAgICA8bGk+IE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXJzIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyANCiAgICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IA0KICAgICAgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLjwvbGk+DQogIDwvb2w+DQogIDxwPlRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgJnF1b3Q7QVMgDQogICAgSVMmcXVvdDtBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCANCiAgICBUTywgVEhFSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIA0KICAgIFBVUlBPU0VBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgDQogICAgQkVMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SQ09OU0VRVUVOVElBTCANCiAgICBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0ZTVUJTVElUVVRFIEdPT0RTIE9SIA0KICAgIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIA0KICAgIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU5DT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgDQogICAgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKUFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSANCiAgICBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0ZUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuPC9wPg0KPC9ibG9ja3F1b3RlPg0KPHA+PC9wPg0KPC9ib2R5Pg0KPC9odG1sPg0K