PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgiX3Byb2plY3RDb21tb24ucGhwIik7ICAgICMgQWxsIG9uIHRoZSBzYW1lIGxpbmUgdG8gdW5jbHV0dGVyIHRoZSB1c2VyJ3MgZGVza3RvcCcKCgojCiMgQmVnaW46IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MuICBDaGFuZ2UgdGhlc2UuCiRwYWdlVGl0bGUgCQk9ICJEb29ycyBPcGVuIGZvciBFY2xpcHNlQ29uIDIwMDkiOwokcGFnZUtleXdvcmRzCT0gImVjbGlwc2Vjb24sIGNvbW11bml0eSwgcHJlc3MsIHJlbGVhc2UiOwokcGFnZUF1dGhvcgkJPSAiTHlubiBHYXlvd3NraSI7CgojIEFkZCBwYWdlLXNwZWNpZmljIE5hdiBiYXJzIGhlcmUKIyBGb3JtYXQgaXMgTGluayB0ZXh0LCBsaW5rIFVSTCAoY2FuIGJlIGh0dHA6Ly93d3cuc29tZW90aGVyc2l0ZS5jb20vKSwgdGFyZ2V0IChfc2VsZiwgX2JsYW5rKQojICROYXYtPmFkZEN1c3RvbU5hdigiTXkgTGluayIsICJteXBhZ2UucGhwIiwgIl9zZWxmIik7CiMgJE5hdi0+YWRkQ3VzdG9tTmF2KCJHb29nbGUiLCAiaHR0cDovL3d3dy5nb29nbGUuY29tLyIsICJfYmxhbmsiKTsKCiMgRW5kOiBwYWdlLXNwZWNpZmljIHNldHRpbmdzCiMKCiMgUGFzdGUgeW91ciBIVE1MIGNvbnRlbnQgYmV0d2VlbiB0aGUgRU9IVE1MIG1hcmtlcnMhCiRodG1sID0gPDw8RU9IVE1MCgkJPHN0eWxlPgoJCS5wYWRkZWRsaXN0IGxpIHsJcGFkZGluZy1ib3R0b206N3B4Owl9Cgk8L3N0eWxlPgo8ZGl2IGlkPSJtYWluY29udGVudCI+Cgk8ZGl2IGlkPSJtaWRjb2x1bW4iPgoJCTxoMj5QcmVzcyBSZWxlYXNlPC9oMj4KCgkJPGgxPiRwYWdlVGl0bGU8L2gxPgoKCQk8cD48aT5Db21tdW5pdHkgTWVtYmVycyBBbm5vdW5jZSBOZXcgSW5ub3ZhdGlvbnMgYW5kIFByb2R1Y3RzPC9pPjwvcD4JCgoJCTxwPjxzdHJvbmc+RUNMSVBTRUNPTiAyMDA5LCBTQU5UQSBDTEFSQSwgQ2FsaWYuLCBNYXJjaCAyNCwgMjAwOSAmIzE1MDsgPC9zdHJvbmc+CgkJRWNsaXBzZUNvbiAyMDA5LCB0aGUgc2l4dGggYW5udWFsIEVjbGlwc2UgY29tbXVuaXR5IGNvbmZlcmVuY2UsIG9wZW5zIHRvZGF5IGF0IHRoZSBTYW50YSBDbGFyYSBDb252ZW50aW9uCgkJQ2VudGVyIGluIFNhbnRhIENsYXJhLCBDYWxpZi4gVGhlIGNvbmZlcmVuY2UgZmVhdHVyZXMgdGhlIGxhdGVzdCBFY2xpcHNlIGRldmVsb3BtZW50cyBhbmQgcHJvdmlkZXMgYQoJCWZvcnVtIGZvciBhdHRlbmRlZXMgdG8gZGlzY3VzcyBrZXkgYnVzaW5lc3MgYW5kIHRlY2huaWNhbCBpc3N1ZXMgZmFjaW5nIHRoZSBjb21tdW5pdHkuCgkJPC9wPgoJCQoJCTxwPkNsYXkgU2hpcmt5LCBBZGp1bmN0IFByb2Zlc3NvciBmb3IgdGhlIEludGVyYWN0aXZlIFRlbGVjb20gUHJvZ3JhbSBhdCBOWVUsIGFuZCBKZWZmIEF0d29vZCwgYmxvZ2dlcgoJCWFuZCBDRU8gb2Ygc3RhY2tvdmVyZmxvdy5jb20sIHdpbGwgZGVsaXZlciB0aGUgb3BlbmluZyBrZXlub3RlIHByZXNlbnRhdGlvbi4gV2VkbmVzZGF5J3Mga2V5bm90ZSB3aWxsIGJlCgkJZ2l2ZW4gYnkgUGV0ZXIgVm9zc2hhbGwsIFZpY2UgUHJlc2lkZW50IGFuZCBEaXN0aW5ndWlzaGVkIEVuZ2luZWVyIGF0IEFtYXpvbi5jb20sIGFuZCBEb24gTWFjQXNraWxsLAoJCUNvLWZvdW5kZXIgYW5kIENFTyBvZiBTbXVnTXVnLCBhbmQgVGh1cnNkYXkncyBrZXlub3RlIHdpbGwgYmUgZ2l2ZW4gYnkgVGltIFdhZ25lciwgUHJpbmNpcGFsIERldmVsb3BtZW50CgkJTWFuYWdlciBmb3IgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gUGxhdGZvcm0gYW5kIEtldmluIE1jR3VpcmUsIEVjbGlwc2UgVUkgQXJjaGl0ZWN0IGFuZCBEZXNpZ24gJmFtcDsKCQlVc2FiaWxpdHkgTGVhZCBhdCBJQk0uIAoJCTwvcD4KCQkKCQk8cD5FY2xpcHNlQ29uIDIwMDkgZmVhdHVyZXMgdGVjaG5pY2FsIHRhbGtzIGFuZCB0dXRvcmlhbHMgb24gYSB2YXJpZXR5IG9mIEVjbGlwc2UgcHJvamVjdHMgYW5kCgkJdGVjaG5vbG9naWVzLCBpbmNsdWRpbmcgRXF1aW5veCwgRWNsaXBzZSBSaWNoIENsaWVudCBQbGF0Zm9ybSAoUkNQKSwgUmljaCBBamF4IFBsYXRmb3JtIChSQVApLCBNeWx5biwKCQlEZXZpY2UgRGV2ZWxvcGVyIFNvZnR3YXJlIFBsYXRmb3JtIChEU0RQKSwgRWNsaXBzZSBNb2RlbGluZyBwcm9qZWN0IGFuZCBtYW55IG90aGVycy4gRWNsaXBzZUNvbiAyMDA5CgkJYWxzbyBmZWF0dXJlcyB0aGUgT1NHaSBEZXZDb24uIAoJCTwvcD4KCQkKCQk8cD5UaGVyZSBhcmUgMzYgb3JnYW5pemF0aW9ucyBwYXJ0aWNpcGF0aW5nIGFzIGNvbmZlcmVuY2Ugc3BvbnNvcnMgdGhpcyB5ZWFyLCBpbmNsdWRpbmcgR29sZCBzcG9uc29ycwoJCUJJUlQgRXhjaGFuZ2UsIEJsdSBBZ2UsIElCTSwgSkJvc3MsIFNvcGVyYSwgU3VuIE1pY3Jvc3lzdGVtcyBhbmQgV2luZCBSaXZlci4gQSBudW1iZXIgb2YgRWNsaXBzZSBtZW1iZXIKCQljb21wYW5pZXMgYXJlIGFsc28gYW5ub3VuY2luZyBhIHZhcmlldHkgb2YgZXhjaXRpbmcgbmV3IGluaXRpYXRpdmVzIGF0IHRoaXMgeWVhcpJzIGNvbmZlcmVuY2UsIGluY2x1ZGluZzogCgoJCQk8dWw+CgoJCQk8bGk+PGI+QWN0dWF0ZSBDb3Jwb3JhdGlvbjwvYj4gKE5BU0RBUTogQUNUVSksIHRoZSBsZWFkZXIgaW4gZGVsaXZlcmluZyBSaWNoIEludGVybmV0IEFwcGxpY2F0aW9ucwoJCQlXaXRob3V0IExpbWl0JnRyYWRlOyBhbmQgZm91bmRlciBhbmQgY28tbGVhZGVyIG9mIHRoZSBCSVJUIHByb2plY3Qgd2l0aCB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLAoJCQlhbm5vdW5jZWQgdGhlIGNyZWF0aW9uIG9mIHRoZSBBY3R1YXRlIEJJUlQgR2xvYmFsIFBhcnRuZXIgQ29ubmVjdGlvbi4gIFRoZSBuZXcgcHJvZ3JhbSB3aWxsIHVuaXRlCgkJCW9yZ2FuaXphdGlvbnMgZ2xvYmFsbHkgdXNpbmcgQklSVCwgdGhlIGxlYWRpbmcgb3BlbiBzb3VyY2UgaW5mb3JtYXRpb24gYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQKCQkJZW52aXJvbm1lbnQsIGFuZCB3aWxsIGJyaW5nIHRvZ2V0aGVyIGEgY29tbXVuaXR5IG9mIHRlY2hub2xvZ3kgcHJvdmlkZXJzIG9mZmVyaW5nIGhpZ2gtdmFsdWVkCgkJCXByb2R1Y3RzLCBzb2x1dGlvbnMgYW5kIHNlcnZpY2VzIGFyb3VuZCBCSVJULjxicj4KCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5hY3R1YXRlLmNvbS9jb21wYW55L25ld3MvcHJlc3MtcmVsZWFzZXMtcmVzb3VyY2VzLmFzcD9BcnRpY2xlSWQ9MTQzMzgiIHRhcmdldD0iYmxhbmsiPmh0dHA6Ly93d3cuYWN0dWF0ZS5jb20vY29tcGFueS9uZXdzL3ByZXNzLXJlbGVhc2VzLXJlc291cmNlcy5hc3A/QXJ0aWNsZUlkPTE0MzM4PC9hPgoJCQk8L2xpPgoJCQkKCQkJPGxpPjxiPkFueXdhcmUgVGVjaG5vbG9naWVzPC9iPiBhbm5vdW5jZXMgRWNsaXBzZSBUaW1lLCBhIGNvbmZlcmVuY2Ugd2hpY2ggcHJlc2VudHMgbWFueSBFY2xpcHNlCgkJCXRvcGljcyAodGVjaG5pY2FsLCBzdHJhdGVnaWMpIGR1cmluZyBzZXNzaW9ucyBkZWxpdmVyZWQgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgRWNsaXBzZSBleHBlcnRzCgkJCWFuZCBpbmR1c3RyeSBzcGVha2Vycy4gQXR0ZW5kZWVzIGFyZSB0ZWNobmljYWwgZGV2ZWxvcGVycyBhbmQgbWFuYWdlcnMgZnJvbSBtYW55IGZpZWxkcyBvZiBhY3Rpdml0eToKCQkJZW1iZWRkZWQsIGFlcm9uYXV0aWNzLCBzcGFjZSwgcmVzZWFyY2ggYW5kIGNvbW11bmljYXRpb25zLiBHYXRoZXJpbmcgbW9yZSB0aGFuIG9uZSBodW5kcmVkIHBlb3BsZSwKCQkJdGhlIGV2ZW50IGZvY3VzZXMgb24gaG93IEVjbGlwc2UgY2FuIGJlIGFuIGFuc3dlciB0byBpbmR1c3RyeSB0b3BpY3MuPGJyPgoJCQk8YSBocmVmPSJodHRwOi8vd3d3LmFueXdhcmUtdGVjaC5jb20vZW4vbmV3cy9ldmVudHMuaHRtbCIgdGFyZ2V0PSJibGFuayI+aHR0cDovL3d3dy5hbnl3YXJlLXRlY2guY29tL2VuL25ld3MvZXZlbnRzLmh0bWw8L2E+CgkJCTwvbGk+CgoJCQk8bGk+PGI+QVJTIENvbXB1dGVyIHVuZCBDb25zdWx0aW5nIEdtYkg8L2I+LCBhbiBJQk0gUHJlbWllciBCdXNpbmVzcyBQYXJ0bmVyIHNpbmNlIDE5OTQsIGFubm91bmNlZAoJCQlpdCBoYXMgam9pbmVkIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gYXMgYSBTb2x1dGlvbnMgTWVtYmVyIGF0IEVjbGlwc2VDb24uIFRoZSBtZWRpdW0tc2l6ZWQgc29mdHdhcmUKCQkJZGV2ZWxvcG1lbnQsIGludGVncmF0aW9uIGFuZCB0cmFpbmluZyBzcGVjaWFsaXN0IHVuZGVycGlucyBpdHMgY29tbWl0bWVudCB0byBPcGVuIFNvdXJjZSwgZXNwZWNpYWxseQoJCQlFY2xpcHNlLWJhc2VkIGRldmVsb3BtZW50IGVudmlyb25tZW50cywgUmljaCBDbGllbnRzIGFuZCBSdW50aW1lIHBsYXRmb3Jtcy4gQnkgam9pbmluZyB0aGUgRWNsaXBzZQoJCQlGb3VuZGF0aW9uLCBBUlMgaW50ZW5kcyB0byBzaGlmdCBmcm9tIGEgY29uc3VtZXIgcm9sZSB0byBhY3RpdmVseSBzdXBwb3J0aW5nIGFuZCBjb250cmlidXRpbmcgdG8gdGhlCgkJCUVjbGlwc2UgY29tbXVuaXR5Ljxicj4KCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5hcnMuZGUvd2ViL2Zpcm1hL2Fyc19pc3RfbmV1ZXNfbWl0Z2xpZWRfZGVyX2VjbGlwc2VfZm91bmRhdGlvbi5kbyIgdGFyZ2V0PSJibGFuayI+aHR0cDovL3d3dy5hcnMuZGUvd2ViL2Zpcm1hL2Fyc19pc3RfbmV1ZXNfbWl0Z2xpZWRfZGVyX2VjbGlwc2VfZm91bmRhdGlvbi5kbzwvYT4KCQkJPC9saT4KCQkJCgkJCTxsaT48Yj5BdmFudFNvZnQ8L2I+IHByb3ZpZGVzIGV4Y2VsbGVudCB0cmFpbmluZyBhbmQgZGV2ZWxvcG1lbnQgc2VydmljZXMgZm9yIEVjbGlwc2UgUGx1Z2lucywgUkNQLAoJCQlHRUYsIEVNRiwgRmxleCwgYW5kIEoyRUUuIEF2YW50U29mdCdzIEVjbGlwc2UgVW5pdmVyc2l0eSBvZmZlcnMgY3VzdG9taXplZCBjb3Jwb3JhdGUgdHJhaW5pbmcgYW5kCgkJCXB1YmxpYyB2aXJ0dWFsIGNsYXNzZXMuIEFsbCBFY2xpcHNlQ29uMjAwOSBwcmVzZW50YXRpb25zIGFyZSBwdWJsaXNoZWQgdXNpbmcgaW5ub3ZhdGl2ZSBGbGV4LWJhc2VkCgkJCXBsYXRmb3JtIGdwdWJsaWNhdGlvbi5jb20uIEF2YW50U29mdCYjMTQ2O3MgTXlFdmVudFBvcnRhbCBzb2x1dGlvbiBlbmFibGVzIGN1c3RvbSBwb3J0YWxzIHdpdGggY29udGVudCwKCQkJbmV0d29ya2luZywgYW5kIGNvbW11bml0eSBzdXBwb3J0Ljxicj4KCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNldW5pdmVyc2l0eS5vcmcvcHJlc3NyZWxlYXNlLmh0bSIgdGFyZ2V0PSJibGFuayI+aHR0cDovL3d3dy5lY2xpcHNldW5pdmVyc2l0eS5vcmcvcHJlc3NyZWxlYXNlLmh0bTwvYT4KCQkJPC9saT4KCgkJCTxsaT48Yj5CYW5kIFhJIEludGVybmF0aW9uYWwsIExMQzwvYj4gaXMgc3VjY2Vzc2Z1bGx5IGNvbW1lcmNpYWxpemluZyB0aGUgcmVzdWx0cyBvZiB0aGVpciBVUyBBcm15CgkJCVNtYWxsIEJ1c2luZXNzIElubm92YXRpb24gUmVzZWFyY2ggKFNCSVIpIGdyYW50cyB0byBidWlsZCB0aGUgTW9iaWxlIEVtYmVkZGVkIENvbXBvbmVudCBTdWl0ZQoJCQkoTUVDUyksIGFuIGVtYmVkZGVkIEphdmEmdHJhZGU7IGZvdW5kYXRpb24gdXNpbmcgRWNsaXBzZSBFcXVpbm94IGFzIGEgcnVudGltZS4gIEJhbmQgWEkgaXMgYXBwbHlpbmcKCQkJdGhlIGNvcmUgY29tcG9uZW50IGZyYW1ld29ya3MgdG8gYWRkcmVzcyBwcm9nbm9zdGljcyBhbmQgZGlhZ25vc3RpY3MgaW4gY29uZGl0aW9uLWJhc2VkIG1haW50ZW5hbmNlCgkJCW9mIHZlaGljbGUgZmxlZXRzLiBUaGUgc2FtZSBzb2Z0d2FyZSBwcm92aWRlcyB0aGUgYmFzaXMgZm9yIHZhcmlvdXMgbWlsaXRhcnkgYW5kIGluZHVzdHJpYWwKCQkJYXBwbGljYXRpb25zLjxicj4KCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5iYW5keGkuY29tL3NiaXIvZWMyMDA5cHIuaHRtbCIgdGFyZ2V0PSJibGFuayI+aHR0cDovL3d3dy5iYW5keGkuY29tL3NiaXIvZWMyMDA5cHIuaHRtbDwvYT4KCQkJPC9saT4KCQkJCgkJCTxsaT48Yj5CTFUgQUdFIENvcnAuPC9iPiwgbGVhZGVyIGluIGFnaWxlIG1vZGVsIHRyYW5zZm9ybWF0aW9uLCBhbm5vdW5jZXMgdGhlIGxhdW5jaCBvZiB0aGVpciBMZWdhY3kKCQkJTW9kZWwtRHJpdmVuIG1vZGVybml6YXRpb24gc29sdXRpb246ICYjMTQ3O0JMVSBBR0UgUmV2ZXJzZSBNb2RlbGluZyYjMTQ4OyBhbmQgJiMxNDc7QkxVIEFHRSBNb2Rlcm5pemF0aW9uJiMxNDg7LiAgVGhpcwoJCQlncm91bmRicmVha2luZyBzb2x1dGlvbiBlbmFibGVzIGNvbXBsZXRlIHJldmVyc2UgbW9kZWxpbmcgYW5kIHJlLWVuZ2luZWVyaW5nIG9mIHRoZSBtb3N0IGNyaXRpY2FsCgkJCUVudGVycHJpc2UgYXBwbGljYXRpb25zLjxicj4KCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5ibHVhZ2UuY29tL2luZGV4LnBocD9jSUQ9bmV3cyIgdGFyZ2V0PSJibGFuayI+aHR0cDovL3d3dy5ibHVhZ2UuY29tL2luZGV4LnBocD9jSUQ9bmV3czwvYT4KCQkJPC9saT4KCQkJCgkJCTxsaT48Yj5CcmVkZXg8L2I+IEF0IEVjbGlwc2VDb24sIEJyZWRleCB3aWxsIGJlIHJlcHJlc2VudGVkIGJ5IEFjaGltIEwmb3VtbDtya2UsIHByZXNlbnRpbmcgYW4KCQkJYXBwcm9hY2ggdG8gdXNpbmcgbW9kZWxzIHRvIGVhc2UgdGhlIHN0YXJ0LXVwIG9mIEdVSSB0ZXN0aW5nLCBhbmQgQWxleGFuZHJhIEltcmllLCB0YWxraW5nIGFib3V0CgkJCXVzYWJpbGl0eSBpbiBFY2xpcHNlIGFwcGxpY2F0aW9ucy4gSW4gdGhlIGV4aGliaXRpb24gaGFsbCAoc3RhbmQgMjA0KSwgQWNoaW0gYW5kIEFsZXggd2lsbAoJCQlkZW1vbnN0cmF0ZSB0aGUgdXBjb21pbmcgdmVyc2lvbiAzLjAgb2YgR1VJZGFuY2VyLCB3aGljaCBpcyBhIGZpbmFsaXN0IGluIHRoZSBFY2xpcHNlIEF3YXJkcyBpbiB0aGUKCQkJJiMxNDc7QmVzdCBDb21tZXJjaWFsIERldmVsb3BlciBUb29sJiMxNDg7IGNhdGVnb3J5Ljxicj4KCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5icmVkZXguZGUvZW4vbmV3cy9wZGYvQnJlZGV4QXRFY2xpcHNlQ29uX2VuLnBkZiIgdGFyZ2V0PSJibGFuayI+aHR0cDovL3d3dy5icmVkZXguZGUvZW4vbmV3cy9wZGYvQnJlZGV4QXRFY2xpcHNlQ29uX2VuLnBkZjwvYT4KCQkJPC9saT4KCgkJCTxsaT48Yj5FY2xpcHNlU291cmNlPC9iPiwgdGhlIGxlYWRpbmcgcHJvdmlkZXIgb2YgRWNsaXBzZSBydW50aW1lIHByb2R1Y3RzIGFuZCBzZXJ2aWNlcywgYW5ub3VuY2VkCgkJCVlveG9zIFNlY3VyZVNvdXJjZSwgYSBzdWJzY3JpcHRpb24tYmFzZWQgc2VydmljZSB0aGF0IHByb3ZpZGVzIHNlY3VyZSBhY2Nlc3MgdG8gYSByZXBvc2l0b3J5IG9mCgkJCWNlcnRpZmllZCBvcGVuIHNvdXJjZSBwbHVnLWlucy4gVGhlIG5ldyBzZXJ2aWNlIHByb3ZpZGVzIGRldmVsb3BtZW50IHRlYW1zIHdpdGggc2VjdXJlZCwgcmVsaWFibGUKCQkJYWNjZXNzIHRvIGFuIHVuY29tcHJvbWlzZWQgYW5kIGNvbnNpc3RlbnQgY29kZSBiYXNlIGFuZCBpcyBkZXNpZ25lZCB0byBhbGxldmlhdGUgY29uY2VybnMgYWJvdXQKCQkJc291cmNlIGNvZGUgYXV0aGVudGljaXR5IGFuZCBvcmlnaW4uPGJyPgoJCQk8YSBocmVmPSJodHRwOi8vZWNsaXBzZXNvdXJjZS5jb20vZW4vYWJvdXQvcHJlc3MtcmVsZWFzZXMvZW4vZWNsaXBzZXNvdXJjZS1pbnRyb2R1Y2VzLXNlY3VyaXR5LWZvci1vcGVuLXNvdXJjZS1kb3dubG9hZHMvIiB0YXJnZXQ9ImJsYW5rIj5odHRwOi8vZWNsaXBzZXNvdXJjZS5jb20vZW4vYWJvdXQvcHJlc3MtcmVsZWFzZXMvZW4vZWNsaXBzZXNvdXJjZS1pbnRyb2R1Y2VzLXNlY3VyaXR5LWZvci1vcGVuLXNvdXJjZS1kb3dubG9hZHMvPC9hPgoJCQk8L2xpPgoJCQkKCQkJPGxpPjxiPkV0ZXJhdGlvbiwgYS5zLjwvYj4sIGFuIEVjbGlwc2UgZXhwZXJ0IGFuZCBsb25nIHRpbWUgY29tbWl0dGVyIHRvIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24KCQkJYW5ub3VuY2VzIG9wZW4gZWR1Y2F0aW9uIGFuZCBjb3Vyc2V3YXJlIGZvciB3ZWIgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQuIFRoaXMgaW5pdGlhdGl2ZSBpcyBhIHBhcnQKCQkJb2YgdGhlIFdlYiBUb29scyBwbGF0Zm9ybSBwcm9qZWN0LiAgRXRlcmF0aW9uIGlzIGEgcHJvdmlkZXIgb2Ygc2VydmljZXMgYW5kIGVkdWNhdGlvbiBmb3IKCQkJRW50ZXJwcmlzZSBDdXN0b21lcnMgaW4gRXVyb3BlIGFuZCBBc2lhLjxicj4KCQkJPC9saT4KCQkJCgkJCTxsaT48Yj5mcm9nbG9naWMgR21iSDwvYj4gaXMgc2hvd2luZyBhIHByZXZpZXcgb2YgU3F1aXNoIDQuMCBhdCBFY2xpcHNlQ29uIDIwMDkuIFNxdWlzaCBpcyBhCgkJCXByb2Zlc3Npb25hbCwgY3Jvc3MtcGxhdGZvcm0gR1VJIGFuZCByZWdyZXNzaW9uIHRlc3RpbmcgdG9vbCB0aGF0IGVuYWJsZXMgdGVzdGVycyB0byBjcmVhdGUgYW5kCgkJCWV4ZWN1dGUgYXV0b21hdGVkIEdVSSB0ZXN0cyBmb3IgYXBwbGljYXRpb25zIGJhc2VkIG9uIGEgdmFyaWV0eSBvZiBkaWZmZXJlbnQgR1VJIHRlY2hub2xvZ2llcy4KCQkJU3F1aXNoIHN0YW5kcyBvdXQgZnJvbSBvdGhlciBHVUkgdGVzdCB0b29scyB0aGFua3MgdG8gaXRzIGNsb3NlIGludGVncmF0aW9uIHdpdGggZWFjaCBzdXBwb3J0ZWQKCQkJR1VJIHRlY2hub2xvZ3kuPGJyPgoJCQk8YSBocmVmPSJodHRwOi8vd3d3LmZyb2dsb2dpYy5jb20vcGc/aWQ9TmV3c0V2ZW50cyZjYXRlZ29yeT0xMDgiIHRhcmdldD0iYmxhbmsiPmh0dHA6Ly93d3cuZnJvZ2xvZ2ljLmNvbS9wZz9pZD1OZXdzRXZlbnRzJmNhdGVnb3J5PTEwODwvYT4KCQkJPC9saT4KCgkJCTxsaT48Yj5HZW51aXRlYzwvYj4gcmVsZWFzZWQgTXlFY2xpcHNlIDcuMSBCbHVlIEVkaXRpb24sIHNvZnR3YXJlIHRoYXQgYWxsb3dzIGNvbXBhbmllcyB0byB1bmxlYXNoCgkJCXRoZWlyIFdlYlNwaGVyZSBpbnZlc3RtZW50IHdpdGggV1NBRC9SQUQgcHJvamVjdCBzdXBwb3J0IGFuZCBXZWJTcGhlcmUgNyBjb21wYXRpYmlsaXR5LiBBbHNvLCBuV2lyZQoJCQlTb2Z0d2FyZSBnaXZlcyBHZW51aXRlYyYjMTQ2O3MgUHVsc2UgdXNlcnMgYSBib29zdCB3aXRoIGlubm92YXRpdmUgY29kZSBleHBsb3JhdGlvbi4gQW5kLCBRdWVzdCBTb2Z0d2FyZQoJCQloYXMgam9pbmVkIEdlbnVpdGVjJ3MgUHVsc2UgTmV0d29yayB3aXRoIHBvcHVsYXIgSmF2YSBwcm9maWxlciBKUHJvYmUmcmVnOy48YnI+CgkJCTwvbGk+CgkJCQoJCQk8bGk+PGI+SW5zdGFudGlhdGlvbnM8L2I+LCBhIGxlYWRpbmcgcHJvdmlkZXIgb2YgRWNsaXBzZS1iYXNlZCBzb2Z0d2FyZSBxdWFsaXR5LCBzZWN1cml0eSwgR1VJIGJ1aWxkaW5nCgkJCWFuZCB0ZXN0aW5nIHNvbHV0aW9ucyByZWxlYXNlZCB2ZXJzaW9uIDcuMCBvZiBXaW5kb3dCdWlsZGVyIFBybyBKYXZhIEdVSSBidWlsZGVyIGZvciBTd2luZywgU1dUIGFuZCBHV1QuCgkJCVdpbmRvd0J1aWxkZXIgUHJvLCB3aGljaCB3YXMgbm9taW5hdGVkIGZvciBhIDIwMDkgRWNsaXBzZSBBd2FyZCwgYWRkcyBtYW55IGZlYXR1cmVzIHRvIHY3LjAgaW5jbHVkaW5nIFVJCgkJCUZhY3RvcmllcywgRWNsaXBzZSBOZWJ1bGEgd2lkZ2V0cyBpbnRlZ3JhdGlvbiwgaW1wcm92ZWQgcGFyc2luZywgbmV3IGN1c3RvbWl6YXRpb24gQVBJIGZvciB0aGlyZCBwYXJ0eQoJCQlleHRlbnNpYmlsaXR5LCBTd2luZyBEYXRhIEJpbmRpbmcgYW5kIGZ1bGwgc3VwcG9ydCBmb3IgR1dULUV4dCB3aWRnZXQgc2V0Ljxicj4KCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5pbnN0YW50aWF0aW9ucy5jb20vcHJlc3MvcmVsZWFzZS8wOTAzMjQuaHRtbCIgdGFyZ2V0PSJibGFuayI+aHR0cDovL3d3dy5pbnN0YW50aWF0aW9ucy5jb20vcHJlc3MvcmVsZWFzZS8wOTAzMjQuaHRtbDwvYT4KCQkJPC9saT4KCQkJCgkJCTxsaT48Yj5pdGVtaXM8L2I+LCBzdHJhdGVnaWMgbWVtYmVyIG9mIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHByZXNlbnRzIHRoZSBuZXcgZGV2ZWxvcG1lbnQgb2YKCQkJVE1GLVh0ZXh0LCB3aGljaCB3aWxsIGJlIHJlbGVhc2VkIGluIHRoZSBuZXh0IHZlcnNpb24gb2YgRWNsaXBzZSBpbiBKdW5lIDIwMDksIGFuZCB0aGUgbmV3IHByb2plY3QKCQkJRU1GLUluZGV4LiAgQm90aCBvZiB0aGUgcHJvamVjdHMgd2lsbCBiZSBwcmVzZW50ZWQgaW4gc2Vzc2lvbnMgYXQgRWNsaXBzZUNvbiBvbiBUdWVzZGF5LCBNYXJjaCAyNDoKCQkJJiMxNDc7TmV4dCBnZW5lcmF0aW9uIHRleHR1YWwgRFNMcyB3aXRoIFh0ZXh0JiMxNDg7IGFuZCAmIzE0NztNYW5hZ2luZyBCaWcgRWNvcmUgTW9kZWxzIHdpdGggRU1GIEluZGV4JiMxNDg7Ljxicj4KCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5pdGVtaXMuY29tL2l0ZW1pcy1hZy9uZXdzLzIwMDkvbGFuZ3VhZ2U9ZW4vdGFwcz01OTAvMjAzNjUvZWNsaXBzZWNvbi0yMDA5IiB0YXJnZXQ9ImJsYW5rIj5odHRwOi8vd3d3Lml0ZW1pcy5jb20vaXRlbWlzLWFnL25ld3MvMjAwOS9sYW5ndWFnZT1lbi90YXBzPTU5MC8yMDM2NS9lY2xpcHNlY29uLTIwMDk8L2E+CgkJCTwvbGk+CgoJCQk8bGk+PGI+TWljcm9Eb2M8L2I+IGlzIHBsYW5uaW5nIHRvIHJlbGVhc2UgJiMxNDc7SmF2YSBCaW5kaW5ncyBmb3Igb3BlblZHJiMxNDg7IHVuZGVyIEVQTCBpbiBRMiBvZiAyMDA5LgoJCQlPcGVuVkcmdHJhZGU7IGlzIGEgY3Jvc3MtcGxhdGZvcm0gQVBJIHRoYXQgcHJvdmlkZXMgYSBsb3ctbGV2ZWwgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIGludGVyZmFjZQoJCQlmb3IgdmVjdG9yIGdyYXBoaWNzIGxpYnJhcmllcy4gVGhlIEphdmEmdHJhZGU7IGJpbmRpbmdzIHdpbGwgbWFrZSBoYXJkd2FyZSBhY2NlbGVyYXRlZCAyRCB2ZWN0b3IKCQkJZ3JhcGhpY3MgYXZhaWxhYmxlIGZvciB1c2VycyBvZiBlUkNQIGFwcGxpY2F0aW9ucyBvbiBtb2JpbGUgYW5kIGVtYmVkZGVkIGRldmljZXMuICBNaWNyb0RvYyBpcyBhbHNvCgkJCW9yZ2FuaXppbmcgPGEgaHJlZj0iaHR0cDovL3d3dy5taWNyb2RvYy5jb20vbm9kZS8zMTIiIHRhcmdldD0iYmxhbmsiPkVjbGlwc2UgRW1iZWRkZWQgRGF5PC9hPiBpbgoJCQlTdHV0dGdhcnQsIEdlcm1hbnkgb24gSnVuZSAyNSwgMjAwOS48YnI+CgkJCTxhIGhyZWY9Imh0dHA6Ly93d3cubWljcm9kb2MuY29tL29wZW52ZyIgdGFyZ2V0PSJibGFuayI+aHR0cDovL3d3dy5taWNyb2RvYy5jb20vb3BlbnZnPC9hPgoJCQk8L2xpPgoKCQkJPGxpPjxiPk9yYWNsZTwvYj4gYW5ub3VuY2VkIE9yYWNsZSZyZWc7IEVudGVycHJpc2UgUGFjayBmb3IgRWNsaXBzZSBSZWxlYXNlIDExZywgYSBmcmVlIGNvbXBvbmVudCBvZgoJCQlPcmFjbGUgRnVzaW9uIE1pZGRsZXdhcmUgZGVzaWduZWQgdG8gaGVscCBkZXZlbG9wZXJzIGxldmVyYWdlIHRoZWlyIGV4cGVydGlzZSBpbiBFY2xpcHNlIHdpdGggdGhlCgkJCWNvbXByZWhlbnNpdmUgY2FwYWJpbGl0aWVzIG9mIE9yYWNsZSBGdXNpb24gTWlkZGxld2FyZS4gS2V5IGVuaGFuY2VtZW50cyBpbiB0aGlzIHJlbGVhc2UgaW5jbHVkZQoJCQlPYmplY3QtUmVsYXRpb25hbCBNYXBwaW5nIChPUk0pLCBTcHJpbmcgYW5kIFdlYiBTZXJ2aWNlIHRvb2xzIHRvIGhlbHAgcmVkdWNlIGRldmVsb3BtZW50IGNvbXBsZXhpdHkKCQkJZm9yIEphdmEgYW5kIGRhdGFiYXNlIGRldmVsb3BlcnMgdGFyZ2V0aW5nIE9yYWNsZSBwbGF0Zm9ybXMuPGJyPgoJCQk8YSBocmVmPSJodHRwOi8vd3d3Lm9yYWNsZS5jb20vdXMvY29ycG9yYXRlL3ByZXNzLzAxODA1OV9FTiIgdGFyZ2V0PSJibGFuayI+aHR0cDovL3d3dy5vcmFjbGUuY29tL3VzL2NvcnBvcmF0ZS9wcmVzcy8wMTgwNTlfRU48L2E+CgkJCTwvbGk+CgoJCQk8bGk+PGI+UGVyZm9yY2UgU29mdHdhcmU8L2I+LCBhbiBFY2xpcHNlIG1lbWJlciBjb21wYW55LCBhbm5vdW5jZWQgdGhlIGxhdGVzdCByZWxlYXNlIG9mIGl0cwoJCQlQZXJmb3JjZSBQbHVnLWluIGZvciBFY2xpcHNlIHdoaWNoIGludGVncmF0ZXMgRWNsaXBzZSB3aXRoIFBlcmZvcmNlLCBUaGUgRmFzdCBTb2Z3YXJlIENvbmZpZ3VyYXRpb24KCQkJTWFuYWdlbWVudCBTeXN0ZW0uIFRoaXMgdmVyc2lvbiBpbnRyb2R1Y2VzIHRoZSBTeW5jaHJvbml6ZSB2aWV3LCBlbmhhbmNlZCBSZXNvbHZlIGRpYWxvZyBhbmQgYSBuZXcKCQkJSW50ZWdyYXRlIGRpYWxvZywgYWxvbmcgd2l0aCBudW1lcm91cyBwZXJmb3JtYW5jZSBlbmhhbmNlbWVudHMuPGJyPgoJCQk8YSBocmVmPSJodHRwOi8vd3d3LnBlcmZvcmNlLmNvbS9wZXJmb3JjZS9wcmVzcy9wcjEwNl84LjJFY2xpcHNlUGx1Z2luLnBkZiIgdGFyZ2V0PSJibGFuayI+aHR0cDovL3d3dy5wZXJmb3JjZS5jb20vcGVyZm9yY2UvcHJlc3MvcHIxMDZfOC4yRWNsaXBzZVBsdWdpbi5wZGY8L2E+CgkJCTwvbGk+CgkJCQoJCQk8bGk+PGI+UHJvU3lzdDwvYj4sIDxhIGhyZWY9Imh0dHA6Ly93d3cucHJvc3lzdC5jb20iIHRhcmdldD0iYmxhbmsiPnd3dy5wcm9zeXN0LmNvbTwvYT4sIGFuIE9TR2kKCQkJcGlvbmVlciBhbmQgQWN0aXZlIENvbnRyaWJ1dG9yIHRvIEVxdWlub3ggd2l0aCAyIEVxdWlub3ggY29tbWl0dGVycyBoYXMgam9pbmVkIHRoZSBFY2xpcHNlIFRyYWluaW5nCgkJCUFsbGlhbmNlLCBhcyBhIHByZW1pdW0gbWVtYmVyLiAgUHJvU3lzdCBvZmZlcnMgdmFyaW91cyBFbWJlZGRlZCBhbmQgRW50ZXJwcmlzZSBPU0dpIHRyYWluaW5nIGNvdXJzZXMKCQkJYXMgd2VsbCBhcyBFY2xpcHNlIGVSQ1AuICBQcm9TeXN0IHdvdWxkIGFsc28gYmUgcGxlYXNlZCB0byBvZmZlciBhbiBvbnNpdGUgdHJhaW5pbmcgLSBjdXN0b21pemVkIGZvcgoJCQl5b3VyIGNvbXBhbnkuPGJyPgoJCQk8YSBocmVmPSJodHRwOi8vd3d3LnByb3N5c3QuY29tL25ld3MvbmV3cy8yMDA5L2V0YS5odG1sIiB0YXJnZXQ9ImJsYW5rIj5odHRwOi8vd3d3LnByb3N5c3QuY29tL25ld3MvbmV3cy8yMDA5L2V0YS5odG1sPC9hPgoJCQk8L2xpPgoKCQkJPGxpPjxiPlByb3RlY29kZTwvYj4gYW5ub3VuY2VkIFJlbGVhc2UgMi4wIG9mIGl0cyBzb2Z0d2FyZSBnb3Zlcm5hbmNlIHByb2R1Y3RzIHdoaWNoIG1ha2UgdGhlCgkJCW1hbmFnaW5nIG9mIGxpY2Vuc2luZyBvYmxpZ2F0aW9ucyBvZiBPcGVuIFNvdXJjZSBhbmQgb3RoZXIgM3JkLXBhcnR5IHNvZnR3YXJlIG11Y2ggZWFzaWVyOiB0aGUKCQkJRW50ZXJwcmlzZSBJUCBBbmFseXplciBUTSBmb3IgYnVsayBhbmFseXNpcyBvZiBleGlzdGluZyBjb2RlLCBhbmQgdGhlIEVjbGlwc2UgcGx1Zy1pbiBEZXZlbG9wZXIKCQkJSVAgQXNzaXN0YW50IFRNLCBpbmR1c3RyeSYjMTQ2O3MgZmlyc3QgcmVhbC10aW1lIHByZXZlbnRpdmUgSVAgbWFuYWdlbWVudCBzb2x1dGlvbi48YnI+CgkJCTxhIGhyZWY9Imh0dHA6Ly93d3cucHJvdGVjb2RlLmNvbS9wcmVzcy1yZWxlYXNlcy8yMDA5LzAzMjMwOS1wcm90ZWNvZGUtcmVsZWFzZTItSVAtbWFuYWdlbWVudC1wcm9kdWN0cy5waHAiIHRhcmdldD0iYmxhbmsiPmh0dHA6Ly93d3cucHJvdGVjb2RlLmNvbS9wcmVzcy1yZWxlYXNlcy8yMDA5LzAzMjMwOS1wcm90ZWNvZGUtcmVsZWFzZTItSVAtbWFuYWdlbWVudC1wcm9kdWN0cy5waHA8L2E+CgkJCTwvbGk+CgoJCQk8bGk+PGI+U09QRVJBPC9iPiBpcyBvZmZlcmluZyBhIG1hdHVyZSBvcGVuIHNvdXJjZSBwbGF0Zm9ybSBmb3IgU09BIChTZXJ2aWNlIE9yaWVudGVkIEFyY2hpdGVjdHVyZSkuCgkJCVdpdGggdGhlIG5ldyBhbmQgaW1tZWRpYXRlbHkgYXZhaWxhYmxlIFJlbGVhc2UgMy4yLCB0aGUgZnVuY3Rpb25hbCBzY29wZSBvZiB0aGUgc3VpdGUgaGFzIGFnYWluIGJlZW4KCQkJZXhwYW5kZWQgc2lnbmlmaWNhbnRseTogSXQgbm93IGFsc28gaW5jbHVkZXMgaW50ZWdyYXRpb24gY29tcG9uZW50cyBmb3IgVGFsZW5kIE9wZW4gU3R1ZGlvLCB0aGUKCQkJbGVhZGluZyBPcGVuIFNvdXJjZSBzb2Z0d2FyZSBmb3IgZGF0YSBpbnRlZ3JhdGlvbiwgYW5kIEh5cGVyaWMgSFEsIHRoZSBtdWx0aXBsZSBwcml6ZS13aW5uaW5nIE9wZW4KCQkJU291cmNlIHNvbHV0aW9uIGZvciBzeXN0ZW0gbWFuYWdlbWVudCBhbmQgbW9uaXRvcmluZy48YnI+CgkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuc29wZXJhLmRlL2VuL3ByZXNzL3ByZXNzLXJlbGVhc2UvMTkwMzIwMDkvIiB0YXJnZXQ9ImJsYW5rIj5odHRwOi8vd3d3LnNvcGVyYS5kZS9lbi9wcmVzcy9wcmVzcy1yZWxlYXNlLzE5MDMyMDA5LzwvYT4KCQkJPC9saT4KCgkJCTxsaT48Yj5Tb3lhdGVjPC9iPiBwcm91ZGx5IGFubm91bmNlcyBhIG1hc3NpdmUgc291cmNlIGNvbnRyaWJ1dGlvbiB0byB0aGUgZTQgcHJvamVjdCBvbiBEZWNsYXJhdGl2ZQoJCQlVSTogWFdUIGFuZCB0aGUgYXZhaWxhYmlsaXR5IG9mIGEgVGVjaG5pY2FsIFByZXZpZXcgUmVsZWFzZSBvZiBlY2xpcHNlNHNsIChwcm9wb3NlZCBhcyBlY2xpcHNlIFNMRFQpCgkJCW9uIE1hYyBPUyBYLiAgU295YXRlYyBjb250aW51ZXMgdG8gc2hvdyBhIHN0cm9uZyBjb21taXRtZW50IHRvIGxlYWQgYW5kIGRldmVsb3Agc2V2ZXJhbCBFY2xpcHNlCgkJCXByb2plY3RzIHN1Y2ggYXMgWFdULCBQTUYsIEVHRiBhbmQgU0xEVCBhbmQgdG8gcHJvbW90ZSBFY2xpcHNlIGluIHRoZSBDaGluYSBtYXJrZXQuPGJyPgoJCQk8YSBocmVmPSJodHRwOi8vd3d3LnNveWF0ZWMuY29tL2NvbXBhbnkvZTQteHd0LnBocCIgdGFyZ2V0PSJibGFuayI+aHR0cDovL3d3dy5zb3lhdGVjLmNvbS9jb21wYW55L2U0LXh3dC5waHA8L2E+CgkJCTwvbGk+CgkJCQkJCQoJCQk8bGk+PGI+U3ByaW5nU291cmNlPC9iPiBoYXMgcmVsZWFzZWQgU3ByaW5nU291cmNlIFRvb2wgU3VpdGUgKFNUUykgMi4wLCB0aGUgbW9zdCBjb21wcmVoZW5zaXZlCgkJCWVudmlyb25tZW50IGZvciBidWlsZGluZyBTcHJpbmctcG93ZXJlZCBKYXZhIGFwcGxpY2F0aW9ucy4gU1RTIDIuMCBpcyBhbiBFY2xpcHNlLWJhc2VkIHBsYXRmb3JtIHRoYXQKCQkJYWRkcyBzdWNoIGZlYXR1cmVzIGFzIHdpemFyZHMgZm9yIGNyZWF0aW5nIHByb2plY3RzLCBmb3Jtcy1iYXNlZCBjb25maWd1cmF0aW9uIGVkaXRpbmcsIGFuZCBtb3JlLgoJCQlBbHNvIGluY2x1ZGVkIGluIFNUUyAyLjAgYXJlIHRvb2xzIHdoaWNoIGhlbHAgZGV2ZWxvcGVycyBkZXBsb3kgbW9kdWxhciBPU0dpIGFwcGxpY2F0aW9ucy48YnI+CgkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuc3ByaW5nc291cmNlLmNvbS9ub2RlLzEzODQiIHRhcmdldD0iYmxhbmsiPmh0dHA6Ly93d3cuc3ByaW5nc291cmNlLmNvbS9ub2RlLzEzODQ8L2E+CgkJCTwvbGk+CgoJCQk8bGk+PGI+V2VpZ2xlIFdpbGN6ZWs8L2I+IGFubm91bmNlcyB0aGF0IGl0IGlzIGV4cGFuZGluZyB0byB0aGUgVW5pdGVkIEtpbmdkb20gd2l0aCBOZWlsIEJhcnRsZXR0LCBhbgoJCQlpbnRlcm5hdGlvbmFsbHkgcmVjb2duaXNlZCBPU0dpIGV4cGVydCBhbmQgYXV0aG9yIG9mIHRoZSB1cGNvbWluZyBib29rICYjMTQ3O09TR2kgaW4gUHJhY3RpY2UmIzE0ODssIGFzIGEgZm91bmRpbmcKCQkJcGFydG5lciBvZiB0aGUgdXBjb21pbmcgTG9uZG9uIG9mZmljZS4gIEFzIHdlbGwsIGl0ZW1pcywgUHJvU3lzdCBhbmQgU09QRVJBIGhhdmUgam9pbmVkIHRoZSBFY2xpcHNlCgkJCVRyYWluaW5nIEFsbGlhbmNlLiAgQXMgYW4gaW50ZXJuYXRpb25hbCBleHBlcnQgbmV0d29yaywgdGhlIEVjbGlwc2UgVHJhaW5pbmcgQWxsaWFuY2UgcG9vbHMgdGhlIGV4dGVuc2l2ZQoJCQlFY2xpcHNlIGtub3dsZWRnZSBvZiBpdHMgYXNzb2NpYXRlIGNvbXBhbmllcy48YnI+CgkJCTxhIGhyZWY9Imh0dHA6Ly93d3cud2VpZ2xld2lsY3play5jb20vYmxvZy8/cD02MzciIHRhcmdldD0iYmxhbmsiPmh0dHA6Ly93d3cud2VpZ2xld2lsY3play5jb20vYmxvZy8/cD02Mzc8L2E+CgkJCTxhIGhyZWY9Imh0dHA6Ly93d3cud2VpZ2xld2lsY3play5jb20vYmxvZy8/cD02MzQiIHRhcmdldD0iYmxhbmsiPmh0dHA6Ly93d3cud2VpZ2xld2lsY3play5jb20vYmxvZy8/cD02MzQ8L2E+CQkJCQoJCQk8L2xpPgoJCQkKCQkJPC91bD4KCQk8L3A+CgkJCgkJPHA+CgkJCTxzdHJvbmc+QWJvdXQgdGhlIEVjbGlwc2UgRm91bmRhdGlvbjwvc3Ryb25nPjxiciAvPgoJCQlFY2xpcHNlIGlzIGFuIG9wZW4gc291cmNlIGNvbW11bml0eSwgd2hvc2UgcHJvamVjdHMgYXJlIGZvY3VzZWQgb24gYnVpbGRpbmcgYW4gb3BlbiBkZXZlbG9wbWVudAoJCQlwbGF0Zm9ybSBjb21wcmlzZWQgb2YgZXh0ZW5zaWJsZSBmcmFtZXdvcmtzLCB0b29scyBhbmQgcnVudGltZXMgZm9yIGJ1aWxkaW5nLCBkZXBsb3lpbmcgYW5kIG1hbmFnaW5nCgkJCXNvZnR3YXJlIGFjcm9zcyB0aGUgbGlmZWN5Y2xlLiBBIGxhcmdlLCB2aWJyYW50IGVjb3N5c3RlbSBvZiBtYWpvciB0ZWNobm9sb2d5IHZlbmRvcnMsIGlubm92YXRpdmUKCQkJc3RhcnQtdXBzLCB1bml2ZXJzaXRpZXMgYW5kIHJlc2VhcmNoIGluc3RpdHV0aW9ucyBhbmQgaW5kaXZpZHVhbHMgZXh0ZW5kLCBjb21wbGVtZW50IGFuZCBzdXBwb3J0IHRoZQoJCQlFY2xpcHNlIFBsYXRmb3JtLgoJCTwvcD4KCQkKCQk8cD4KCQkJVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBhIG5vdC1mb3ItcHJvZml0LCBtZW1iZXIgc3VwcG9ydGVkIGNvcnBvcmF0aW9uIHRoYXQgaG9zdHMgdGhlIEVjbGlwc2UgcHJvamVjdHMuIEZ1bGwgZGV0YWlscyBvZgoJCQlFY2xpcHNlIGFuZCB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGFyZSBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZyI+d3d3LmVjbGlwc2Uub3JnPC9hPi4KCQk8L3A+CgkJCgkJPHA+CgkJCTxicj4JCQoJCQk8aT5BbGwgY29tcGFueS9wcm9kdWN0IG5hbWVzIGFuZCBzZXJ2aWNlIG1hcmtzIG1heSBiZSB0cmFkZW1hcmtzIG9yIHJlZ2lzdGVyZWQgdHJhZGVtYXJrcyBvZgoJCQl0aGVpciByZXNwZWN0aXZlIGNvbXBhbmllcy48L2k+CgkJCTxicj48YnI+CgkJPC9wPgoJCQoJCTxwPgoJCQk8c3Ryb25nPlByZXNzIENvbnRhY3Q6PC9zdHJvbmc+PGJyPgkKCQkJQ2hhbnRhbCBZYW5nPGJyPgoJCQlQYWdlIE9uZSBQUiBmb3IgRWNsaXBzZSBGb3VuZGF0aW9uPGJyPgoJCQk0MTUtODc1LTc0OTQ8YnI+CgkJCTxhIGhyZWY9Im1haWx0bzplY2xpcHNlQHBhZ2VvbmVwci5jb20iPmVjbGlwc2VAcGFnZW9uZXByLmNvbTwvYT48YnI+CgkJCTxicj4KCQk8L3A+CgoJPC9kaXY+Cgo8L2Rpdj4KCgoJCQoKRU9IVE1MOwoKCgkjIEdlbmVyYXRlIHRoZSB3ZWIgcGFnZQoJJEFwcC0+Z2VuZXJhdGVQYWdlKCR0aGVtZSwgJE1lbnUsICROYXYsICRwYWdlQXV0aG9yLCAkcGFnZUtleXdvcmRzLCAkcGFnZVRpdGxlLCAkaHRtbCk7Cj8+Cgo=