ZGlmZiAtLWdpdCBhL19wcm9qZWN0Q29tbW9uLnBocCBiL19wcm9qZWN0Q29tbW9uLnBocAppbmRleCAzZWU2OTI3Li4zN2FkNDZiIDEwMDY0NAotLS0gYS9fcHJvamVjdENvbW1vbi5waHAKKysrIGIvX3Byb2plY3RDb21tb24ucGhwCkBAIC0xOCw4ICsxOCw4IEBACiAgICROYXYtPmFkZE5hdlNlcGFyYXRvcigiUHJvamVjdCBNYW5hZ2VtZW50IiwgIi9lY2QiKTsKICAgJE5hdi0+YWRkTmF2U2VwYXJhdG9yKCJQcm9qZWN0IENoYXJ0ZXIiLCAiaHR0cHM6Ly93aWtpLmVjbGlwc2Uub3JnL0VDRC9DaGFydGVyI0VjbGlwc2VfQ2xvdWRfRGV2ZWxvcG1lbnRfQ2hhcnRlciIpOwogICAkTmF2LT5hZGROYXZTZXBhcmF0b3IoIlByb2plY3QgV2lraSIsICJodHRwczovL3dpa2kuZWNsaXBzZS5vcmcvRUNELyIpOwotICAkTmF2LT5hZGROYXZTZXBhcmF0b3IoIlByb2plY3QgRkFRIiwgIi9lY2QvZW5fZmFxLnBocCIpOwotICAkTmF2LT5hZGROYXZTZXBhcmF0b3IoIlN1Yi1Qcm9qZWN0cyIsICIvZWNkIik7CisgICROYXYtPmFkZE5hdlNlcGFyYXRvcigiUHJvamVjdCBGQVEiLCAiL2VjZC8jZmFxIik7CisgICROYXYtPmFkZE5hdlNlcGFyYXRvcigiU3ViLVByb2plY3RzIiwgIi9lY2QvI3N1Yi1wcm9qZWN0cyIpOwogCiAgICROYXYtPmFkZEN1c3RvbU5hdigiQ2hlIiwgImh0dHA6Ly9lY2xpcHNlLm9yZy9jaGUiLCAiX3NlbGYiLCBOVUxMKTsKICAgJE5hdi0+YWRkQ3VzdG9tTmF2KCJGbHV4IiwgImh0dHA6Ly9lY2xpcHNlLm9yZy9mbHV4IiwgIl9zZWxmIiwgTlVMTCk7CmRpZmYgLS1naXQgYS9jb250ZW50L2VuX2ZhcS5waHAgYi9jb250ZW50L2VuX2ZhcS5waHAKaW5kZXggZjkwNDljYy4uMGI2MzU2YiAxMDA2NDQKLS0tIGEvY29udGVudC9lbl9mYXEucGhwCisrKyBiL2NvbnRlbnQvZW5fZmFxLnBocApAQCAtMTA0LDE1ICsxMDQsNCBAQAogR2V0IHN0YXJ0ZWQgYnkgY2xvbmluZyB0aGUgc291cmNlIGFuZCBnZXR0aW5nIGFjdGl2ZSBhdCBFY2xpcHNlLiAgaHR0cHM6Ly9naXRodWIuY29tL2NvZGVudnkvc2RrCiAKIDwvZGl2PgotPCEtLSAuL2VuZCAgI21pZGNvbHVtbiAtLT4KLQotPCEtLSBTdGFydCBvZiB0aGUgcmlnaHQgY29sdW1uCi08ZGl2IGlkPSJyaWdodGNvbHVtbiI+Ci0gIDxkaXYgY2xhc3M9InNpZGVpdGVtIj4KLSAgICA8aDI+UmVsYXRlZCBMaW5rczwvaDI+Ci0gICAgPHVsPgotICAgICAgPGxpPjxhIHRhcmdldD0iX3NlbGYiIGhyZWY9Ii9lY2xpcHNlLm9yZy1jb21tb24vdGhlbWVzL3NvbHN0aWNlL2RvY3MvIj5Eb2N1bWVudGF0aW9uPC9hPjwvbGk+Ci0gICAgPC91bD4KLSAgPC9kaXY+Ci08L2Rpdj4KLS0tPgorPCEtLSAuL2VuZCAgI21pZGNvbHVtbiAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250ZW50L2VuX2luZGV4LnBocCBiL2NvbnRlbnQvZW5faW5kZXgucGhwCmluZGV4IGYyODMzMzIuLjBlZDU1NzkgMTAwNjQ0Ci0tLSBhL2NvbnRlbnQvZW5faW5kZXgucGhwCisrKyBiL2NvbnRlbnQvZW5faW5kZXgucGhwCkBAIC0xOCwyMyArMTgsMTA5IEBACiAgICAgVGhlIG1pc3Npb24gb2YgRUNEIGlzIHRvIGNyZWF0ZSB0ZWNobm9sb2dpZXMsIHBsYXRmb3JtcywgYW5kIHRvb2xzIG5lY2Vzc2FyeSB0byBlbmFibGUgdGhlIGRlbGl2ZXJ5IG9mIGhpZ2hseSBpbnRlZ3JhdGVkIGNsb3VkIGRldmVsb3BtZW50IGFuZCBjbG91ZCBkZXZlbG9wZXIgZW52aXJvbm1lbnRzLlwKICAgICBPdXIgdmlzaW9uIGlzIHRvIG1lZXQgdGhlIG5lZWRzIG9mIGJvdGggdGhlIEVjbGlwc2UgdG9vbC1idWlsZGluZyBjb21tdW5pdHkgYW5kIGl0cyB1c2VycyBieSBwcm92aWRpbmcgYSBjb21wcmVoZW5zaXZlIHNldCBvZiB0ZWNobm9sb2dpZXMgdGhhdCBvcGVyYXRlIG9uIHRvcCBvZiBjbG91ZCBzdGFuZGFyZHMsIGNsb3VkIGluZnJhc3RydWN0dXJlcyAoQVdTLCBldGMuKSwgYW5kIGNsb3VkIHBsYXRmb3JtcyAoQ2xvdWRGb3VuZHJ5LCBPcGVuU2hpZnQsIFN0cmF0b3MpLgogICAgICAgCi0gICAgPGgyPlN1Yi1Qcm9qZWN0czwvaDI+CisgICAgPGgyIGlkPSJzdWItcHJvamVjdHMiPlN1Yi1Qcm9qZWN0czwvaDI+CiAgICAgPHVsPgogICAgICAgPGxpPjxhIGhyZWY9Ii9jaGUiPkNoZTwvYT48YnIgLz4KIENoZSBpcyBhIHByb2plY3QgdG8gY3JlYXRlIGEgcGxhdGZvcm0gZm9yIGNyZWF0aW5nIGNsb3VkIGRldmVsb3BlciBlbnZpcm9ubWVudHMuICBBIGNsb3VkIGRldmVsb3BlciBlbnZpcm9ubWVudCBjb250YWlucyB0aGUgdG9vbHMsIGluZnJhc3RydWN0dXJlLCBhbmQgcHJvY2Vzc2VzIG5lY2Vzc2FyeSBmb3IgYSBkZXZlbG9wZXIgdG8gZWRpdCwgYnVpbGQsIHRlc3QsIGFuZCBkZWJ1ZyBhbiBhcHBsaWNhdGlvbi4gQSBjbG91ZCBkZXZlbG9wZXIgZW52aXJvbm1lbnQgaXMgaG9zdGVkLCB3aGV0aGVyIHJ1bm5pbmcgb24geW91ciBkZXNrdG9wLCBpbiB5b3VyIGRhdGFjZW50ZXIsIG9yIGluIHRoZSBjbG91ZC4gVGhlIGVudmlyb25tZW50IGNhbiBiZSBjbG9uZWQsIGVtYmVkZGVkLCBhbmQgc2hhcmVkIGluIHdheXMgdGhhdCBkZWNlbnRyYWxpemVkIHdvcmtzcGFjZXMgY2Fubm90LiBDaGUgY29udGFpbnMgYSBzZXQgb2YgbWljcm9zZXJ2aWNlcyByZXByZXNlbnRpbmcgdGhlIGRldmVsb3BlciB3b3JrZmxvdyB0aGF0IGFyZSBjb25uZWN0ZWQgdGhyb3VnaCBDTEksIEFQSSwgYW5kIGEgSmF2YVNjcmlwdCBjbGllbnQuIFRoZSBKYXZhU2NyaXB0IGNsaWVudCBpcyBiYXNlZCB1cG9uIGFuIG9wZW4ga2VybmFsIGFyY2hpdGVjdHVyZSB0aGF0IGlzIGZ1bGx5IGV4dGVuc2libGUsIGZvbGxvd2luZyB0aGUgRWNsaXBzZSBSQ1AgYXJjaGl0ZWN0dXJhbCBhcHByb2FjaCBmb3IgZGlzdHJpYnV0ZWQgV2ViIGFwcGxpY2F0aW9ucy4gQ2hlIGlzIGF1dGhvcmVkIGluIEphdmEsIHdpdGggYSBkZXNpZ24gb3B0aW1pemVkIHRvIG1pbmltaXplIHRoZSBwb3J0IG9mIEVjbGlwc2UgUkNQIHBsdWctaW5zIHRvIG9wZXJhdGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gd2l0aCBhIEphdmFTY3JpcHQgZnJvbnQtZW5kLiBUaGUgQ2hlIHByb2plY3QgaW5jbHVkZXMgZG96ZW5zIG9mIHBsdWctaW5zLCBjb3ZlcmluZyBhIHZhcmlldHkgb2YgZWRpdG9ycywgbGFuZ3VhZ2VzLCBidWlsZGVycywgc291cmNlIGNvZGUgbWFuYWdlbWVudCwgYW5kIGRlYnVnZ2Vycy4KICAgICAgIDwvbGk+CiAgICAgICA8bGk+PGEgaHJlZj0iL2ZsdXgiPkZsdXg8L2E+PGJyIC8+CiBUaGlzIHByb2plY3QgYWltcyBhdCBkZXNpZ25pbmcgYW5kIGltcGxlbWVudGluZyBhIG5ldyBhcmNoaXRlY3R1cmUgYW5kIGluZnJhc3RydWN0dXJlIGZvciBpbnRlZ3JhdGluZyBkZXZlbG9wbWVudCB0b29scyBhY3Jvc3MgZGVza3RvcCwgYnJvd3NlciwgYW5kIHNlcnZlcnMuIFRoZSBnb2FsIGlzIHRvIHByb3ZpZGUgYW4gZXh0cmVtZWx5IGZsZXhpYmxlIHBsYXRmb3JtIGFuZCBpbmZyYXN0cnVjdHVyZSB0aGF0IGFsbG93cyBuZXcgY2xvdWQtYmFzZWQgdG9vbGluZyBjb21wb25lbnRzIHRvIGJlIGJ1aWx0IGhpZ2hseSBkZWNvdXBsZWQgZnJvbSBlYWNoIG90aGVyIGFuZCB0aGF0IGJyaWRnZXMgdGhlIGdhcCB0byBleGlzdGluZyBkZXNrdG9wIElERXMgYXQgdGhlIHNhbWUgdGltZS4KLQotCi0KICAgICAgIDwvbGk+CiAgICAgICA8bGk+PGEgaHJlZj0iL29yaW9uIj5PcmlvbjwvYT48YnIgLz4KIE9yaW9uJ3Mgb2JqZWN0aXZlIGlzIHRvIGNyZWF0ZSBhIGJyb3dzZXItYmFzZWQgb3BlbiB0b29sIGludGVncmF0aW9uIHBsYXRmb3JtIHdoaWNoIGlzIGVudGlyZWx5IGZvY3VzZWQgb24gZGV2ZWxvcGluZyBmb3IgdGhlIHdlYiwgaW4gdGhlIHdlYi4gVG9vbHMgYXJlIHdyaXR0ZW4gaW4gSmF2YVNjcmlwdCBhbmQgcnVuIGluIHRoZSBicm93c2VyLiBVbmxpa2Ugb3RoZXIgYXR0ZW1wdHMgYXQgY3JlYXRpbmcgYnJvd3Nlci1iYXNlZCBkZXZlbG9wbWVudCB0b29scywgdGhpcyBpcyBub3QgYW4gSURFIHJ1bm5pbmcgaW4gYSBzaW5nbGUgdGFiLiBMaW5rcyB3b3JrIGFuZCBjYW4gYmUgc2hhcmVkLiBZb3UgY2FuIG9wZW4gYSBmaWxlIGluIGEgbmV3IHRhYi4gR3JlYXQgY2FyZSBoYXMgYmVlbiB0YWtlbiB0byBwcm92aWRlIGEgd2ViIGV4cGVyaWVuY2UgZm9yIGRldmVsb3BtZW50LgogICAgICAgPC9saT4KICAgICAgIDwvdWw+CiAgICAgCi0gICAgPHA+PGEgaHJlZj0ic29sc3RpY2Utc3RhcnRlcmtpdC56aXAiIGNsYXNzPSJidG4gYnRuLXdhcm5pbmciPkRvd25sb2FkIFN0YXJ0ZXJraXQ8L2E+PC9wPgorCis8aDIgaWQ9ImZhcSI+U3ViLVByb2plY3RzPC9oMj4KKzxoMz5XaGF0IGlzIGJlaW5nIGFubm91bmNlZD88L2gzPgorRWNsaXBzZSBpcyBhbm5vdW5jaW5nIHRoZSBmb3JtYXRpb24gb2YgYSBuZXcgVG9wIExldmVsIFByb2plY3QsIJNFY2xpcHNlIENsb3VkIERldmVsb3BtZW50lCB0byBjcmVhdGUgdGhlIHRlY2hub2xvZ2llcywgcGxhdGZvcm1zLCBhbmQgdG9vbHMgbmVjZXNzYXJ5IHRvIGVuYWJsZSB0aGUgZGVsaXZlcnkgb2YgaGlnaGx5IGludGVncmF0ZWQgY2xvdWQgZGV2ZWxvcG1lbnQgYW5kIGNsb3VkIGRldmVsb3BlciBlbnZpcm9ubWVudHMuICBUaGUgRUNEIGNoYXJ0ZXIgaXMgYXZhaWxhYmxlIGhlcmUuCisKK1RoaXMgVExQIGluaXRpYWxseSBjb21iaW5lcyBFY2xpcHNlIE9yaW9uLCBFY2xpcHNlIENoZSwgYW5kIEVjbGlwc2UgRmx1eCB3aXRoIFNBUCBzaWduYWxpbmcgdGhhdCBEaXJpZ2libGUgd2lsbCBiZWNvbWUgcGFydCBvZiB0aGUgaW5pdGlhdGl2ZS4gIFRoZSBFY2xpcHNlIGJvYXJkIG9mIGRpcmVjdG9ycyB2b3RlZCB0byBhcHByb3ZlIHRoaXMgbmV3IHByb2plY3Qgb24gU2VwdGVtYmVyIDE3dGgsIDIwMTQsIGFuZCBhIG5ldyBwcm9qZWN0IG1hbmFnZW1lbnQgY29tbWl0dGVlIGhhcyBiZWVuIGZvcm1lZC4gIAorCitBZGRpdGlvbmFsbHksIENvZGVudnkgaXMgYW5ub3VuY2luZyB0aGUgY3JlYXRpb24gb2YgcHJvamVjdCBDaGUsIHdoaWNoIGNvbnRhaW5zIHRoZWlyIElQIHRoYXQgbWFrZXMgdXAgdGhlIENvZGVudnkgU0RLLCBDb2RlbnZ5IElERSwgYW5kIDUwIHBsdWctaW5zIHRoYXQgcHJvdmlkZSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgc291cmNlIGNvZGUgY29udHJvbCwgZGVwbG95bWVudCwgYW5kIGJ1aWxkIC8gZGVidWdnZXIgc3VwcG9ydCBmb3IgY2xvdWQgZGV2ZWxvcG1lbnQuICBDb2RlbnZ5IHdpbGwgYmUgY29udHJpYnV0aW5nIDMwIGZ1bGwgdGltZSByZXNvdXJjZXMgdG8gdGhlIG9uZ29pbmcgZGV2ZWxvcG1lbnQgb2YgRWNsaXBzZSBwcm9qZWN0cywgdGhlIGRldmVsb3BtZW50IG9mIHRoZSBjb21tdW5pdHkgYXJvdW5kIGNsb3VkIGRldmVsb3BtZW50LCBhbmQgdGhlIHByb21vdGlvbiBvZiB0aGUgRWNvc3lzdGVtIHRoYXQgbWFrZXMgdXAgdGhlIEVDRC4KKworQ29kZW52eSBoYXMgYmVjb21lIGEgc3RyYXRlZ2ljIGRldmVsb3BlciBtZW1iZXIgb2YgRWNsaXBzZSwgYW5kIHRha2VuIGEgYm9hcmQgb2YgZGlyZWN0b3JzIHNlYXQgd2l0aCB0aGUgZm91bmRhdGlvbi4gIAorCis8aDM+V2h5IGlzIEVjbGlwc2UgY3JlYXRpbmcgYSB0b3AgbGV2ZWwgcHJvamVjdCBkZWRpY2F0ZWQgdG8gY2xvdWQgZGV2ZWxvcG1lbnQ/PC9oMz4KK1RoZXJlIGFyZSBvdmVyIDIyIG1pbGxpb24gcHJvZmVzc2lvbmFsIGRldmVsb3BlcnMsIGFuZCBtb3JlIHRoYW4gOTklIG9mIGFsbCBkZXZlbG9wbWVudCBpcyBzdGlsbCBkb25lIG9uIHRoZSBkZXNrdG9wLiAgVGhlIGNsb3VkIGhhcyBwcm92ZW4gYmVuZWZpdHMgdG8gZWxpbWluYXRlIGNvbmZpZ3VyYXRpb24gb3ZlcmhlYWQgYW5kIGltcHJvdmUgdmlzaWJpbGl0eSBhbmQgY29udHJvbCBmb3Igb3JnYW5pemF0aW9ucy4gIFRoZSB0cmFuc2l0aW9uIHRvIGNsb3VkIGRldmVsb3BtZW50IGF3YXkgZnJvbSB0aGUgZGVza3RvcCBoYXMgYmVndW4uCisKK092ZXIgdGhlIHBhc3QgNSB5ZWFycywgdGhlcmUgaGF2ZSBiZWVuIDEwMHMgb2YgZ2xvYmFsIGluaXRpYXRpdmVzIHRvIHdvcmsgb24gZGV2ZWxvcG1lbnQgdG9vbHMgb3IgdW5kZXJseWluZyBpbmZyYXN0cnVjdHVyZSBuZWNlc3NhcnkgdG8gZW5hYmxlIGRldmVsb3BtZW50IGVudGlyZWx5IGluIHRoZSBjbG91ZC4gIFdpdGggdGhyZWUgcHJvamVjdHMgYXQgRWNsaXBzZSBhbHJlYWR5IHdvcmtpbmcgb24gY2xvdWQgZGV2ZWxvcG1lbnQsIGFuZCBtb3JlIGNvbWluZyBzb29uLCB0aGUgdGltZSBoYXMgY29tZSB0byBmb2N1cyB0aGUgaW5kdXN0cnmScyBlZmZvcnRzIG9uIGVuYWJsaW5nIHRoaXMgdHJhbnNpdGlvbi4gIAorCitCeSBjcmVhdGluZyBhIFRvcCBMZXZlbCBQcm9qZWN0LCB0aGUgY29tYmluZWQgcHJvamVjdHMgYXJlIGJldHRlciBhYmxlIHRvIGNvbmNlbnRyYXRlIHRoZWlyIHJlc291cmNlcywgbW9yZSBlYXNpbHkgYWxpZ24gb24gdGVjaG5vbG9naWNhbCBhbmQgbWFya2V0IG9iamVjdGl2ZXMsIGFuZCBjcmVhdGUgYSBzdHJlYW1saW5lZCBwYXRoIGZvciBvbmJvYXJkaW5nIGFkZGl0aW9uYWwgZWNvc3lzdGVtIHByb2plY3RzLCBkZXZlbG9wZXJzLCBhbmQgY29tbWl0dGVycyB0byBjbG91ZCBkZXZlbG9wbWVudC4KKworPGgzPldoaWNoIHByb2plY3RzIHdpbGwgYmUgcGFydCBvZiB0aGUgQ2xvdWQgRGV2ZWxvcG1lbnQgUGxhdGZvcm0gdG9wIGxldmVsIHByb2plY3Q/PC9oMz4KK0VjbGlwc2UgT3Jpb24sIENoZSwgYW5kIEZsdXguICBTQVAgRGlyaWdpYmxlIGlzIGFsc28gcGxhbm5lZCBmb3Igc3VibWlzc2lvbiBhbmQgd2lsbCBiZWNvbWUgcGFydCBvZiB0aGUgVExQLgorCis8aDM+V2hhdCBpcyB0aGUgQ2hlIHByb2plY3Q/PC9oMz4KK1lvdSBjYW4gcmVhZCB0aGUgRWNsaXBzZSBDaGUgcHJvamVjdCBwcm9wb3NhbCA8YSBocmVmPSJodHRwOi8vZWNsaXBzZS5vcmcvY2hlIj5oZXJlLjwvYT4KKworPGgzPldoYXQgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBPcmlvbiBhbmQgQ2hlPzwvaDM+CitPcmlvbiAmIENoZToKKzx1bD4KKzxsaT5Qcm92aWRlIGEgcnVudGltZSBmb3IgaG9zdGluZywgbWFuYWdpbmcgYW5kIHNjYWxpbmcgZGV2ZWxvcGVyIGVudmlyb25tZW50cyBhcyBXZWIgYXBwcy48L2xpPgorPGxpPlByb3ZpZGUgYW4gU0RLIGZvciBwYWNrYWdpbmcsIGxvYWRpbmcsIGFuZCBydW5uaW5nIHRvb2xpbmcgcGx1Zy1pbnMuPC9saT4KKzxsaT5Qcm92aWRlIGEgZGVmYXVsdCBzZXQgb2YgcGx1Zy1pbnMgcmVsYXRlZCB0byBwcm9ncmFtbWluZyBsYW5ndWFnZXMsIHNvdXJjZSBjb2RlLCBkZXBsb3ltZW50LCBhbmQgb3RoZXIgZWxlbWVudHMgdGhhdCBhcmUgcGFydCBvZiB0aGUgZGV2ZWxvcGVyIHdvcmtmbG93LjwvbGk+Cis8bGk+UHJvdmlkZSBhIGRlZmF1bHQgY2xvdWQgSURFIHRoYXQgY29tYmluZXMgYSBzZXQgb2YgcGx1Zy1pbnMsIHRoZSBTREssIGFuZCBydW50aW1lIHRvZ2V0aGVyIHRvIG9mZmVyIGEgaG9zdGVkIGRldmVsb3BlciBleHBlcmllbmNlLjwvbGk+Cis8bGk+SGF2ZSB3YXlzIChvciBwbGFucyBmb3Igd2F5cykgdG8gY29ubmVjdCBkZXNrdG9wIElERXMgKGxpa2UgRWNsaXBzZSBhbmQgSW50ZWxsaUopIGRpcmVjdGx5IGludG8gdGhlIGhvc3RlZCBzZXJ2aWNlczwvbGk+Cis8L3VsPgorCitUaGlzIGNvbW1vbmFsaXR5IGlzIGFsc28gd2hhdCBtYWtlcyB0aGVtIGRpZmZlcmVudC4gIE9yaW9uIGhhcyBiZWVuIGF1dGhvcmVkIHdpdGggTm9kZS5qcyBhbmQgSmF2YVNjcmlwdCwgdG8gY3JlYXRlIGEgc3lzdGVtIG9wdGltaXplZCBmb3IgY3JlYXRpbmcsIHRlc3RpbmcsIGFuZCBkZXBsb3lpbmcgaW50ZXJwcmV0ZWQgbGFuZ3VhZ2Ugc3lzdGVtcyBlbnRpcmVseSB1c2luZyB0aGUgbGF0ZXN0IFdlYiB0ZWNobm9sb2dpZXMuIFRvIGFjaGlldmUgdGhpcyBnb2FsLCBpdCBoYXMgYWRvcHRlZCBhIHVuaXF1ZSBhcmNoaXRlY3R1cmUgdGhhdCBpcyBvcHRpbWl6ZWQgYXJvdW5kIHRoZSB0eXBlcyBvZiBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgbWVhbnQgdG8gYmUgYnVpbHQgd2l0aCBpdC4gIFdpdGggdGhpcywgT3Jpb24gcHJvdmlkZXMgbWFueSBhZHZhbmNlbWVudHMgYXJvdW5kIEphdmFTY3JpcHQgYW5kIG90aGVyIGludGVycHJldGVkIGxhbmd1YWdlcy4KKworQ2hlIGhhcyBiZWVuIGF1dGhvcmVkIGluIEphdmEgYW5kIGZvbGxvd3MgbWFueSBvZiB0aGUgYXJjaGl0ZWN0dXJhbCBwcmluY2lwbGVzIHVzZWQgYnkgdGhlIEVjbGlwc2UgUkNQIGFuZCBKYXZhIERldmVsb3BtZW50IFRvb2xzIHByb2plY3RzLiAgQ2hlIHByb3ZpZGVzIGFuIGFyY2hpdGVjdHVyZSBhbmQgZGVzaWduIG9wdGltaXplZCBmb3IgY29tcGlsZWQgbGFuZ3VhZ2VzIGFsb25nIHdpdGggaW4tZGVwdGggZXh0ZW5zaW9ucyByZWxhdGVkIHRvIHRoZSBKYXZhIGVjb3N5c3RlbSBsaWtlIG1hdmVuLCBKYXZhIGRlYnVnZ2luZywgYW50LCBhbmQgc28gb24uICBUaGUgQ2hlIGFyY2hpdGVjdHVyZSB3YXMgY3JlYXRlZCB0byBtaW5pbWl6ZSB0aGUgZWZmb3J0IHJlcXVpcmVkIHRvIHBvcnQgRWNsaXBzZSBwbHVnLWlucyB0byB3b3JrIHdpdGhpbiBDaGUgZm9yIGEgV2ViIGV4cGVyaWVuY2UuICBXaGlsZSBwbHVnLWlucyBtdXN0IGJlIHJld3JpdHRlbiBpbiBDaGUgaW50ZXJmYWNlcywgdGhlIHBsdWctaW4gbGlmZWN5Y2xlIGFuZCB0b29saW5nIHN1cHBvcnQgZm9yIENoZSBwbHVnLWlucyBpcyBkZXNpZ25lZCB0byBtYWtlIHRoZSB0cmFuc2l0aW9uIHRheCBhcyBsb3cgYXMgcG9zc2libGUuICBBZGRpdGlvbmFsbHksIHRoZSBDaGUgcnVudGltZSBtb2RlbCBzdXBwb3J0cyBkZXZlbG9waW5nIG5vbi1XZWIgYXBwbGljYXRpb25zIGluY2x1ZGluZyBtb2JpbGUsIGRlc2t0b3AsIGNvbnNvbGUsIGFuZCBBUEktb3JpZW50ZWQgYXBwbGljYXRpb25zIHRoYXQgZG8gbm90IGhhdmUgYSBuYXRpdmUgSFRNTCBvdXRwdXQuCisKK0FkZGl0aW9uYWxseSwgdGhlIENoZSBwcm9qZWN0IGFsc28gaGFzIHRoZSBzY29wZSB0byBidWlsZCBvdXQgaW5mcmFzdHJ1Y3R1cmUgc3VwcG9ydGluZyBhIGRldmVsb3BlciBlbnZpcm9ubWVudCBQQUFTLCBmb3IgcnVubmluZyBkZXZlbG9wZXIgZW52aXJvbm1lbnRzIHdpdGggbGFyZ2UgbnVtYmVycyBvZiBjb25jdXJyZW50IGRldmVsb3BlcnMsIGJ1aWxkcywgcnVucywgYW5kIHByb2plY3RzIG9uIGEgdW5pZmllZCBzZXQgb2YgaGFyZHdhcmUsIHdoaWxlIHByb3ZpZGluZyBlbnRlcnByaXNlIGJlaGF2aW9yYWwgYW5kIGFjY2VzcyBjb250cm9scy4gIFRoZSBQQUFTIGluZnJhc3RydWN0dXJlIHRoYXQgaXMgcGFydCBvZiB0aGUgQ2hlIHByb2plY3Qgd2lsbCBiZSBkZXNpZ25lZCB0byBzdXBwb3J0IGFueSB0eXBlIG9mIGVkaXRvciwgY2xvdWQgSURFLCBvciBkZXZlbG9wbWVudCBydW50aW1lLCBlbmFibGluZyBzY2FsZSBvdXQgb2YgdGhvc2Ugc2VydmljZXMuICBTbywgT3Jpb24gY2FuIHdvcmsgd2l0aGluIGl0IGFzIHdlbGwuCisKKzxoMz5XaGF0IGlzIERpcmlnaWJsZSBhbmQgaG93IGRvZXMgdGhhdCByZWxhdGUgdG8gQ2hlIGFuZCBPcmlvbj88L2gzPgorRGlyaWdpYmxlIGV4dGVuZHMgdGhlIGNvbmNlcHRzIHByb21vdGVkIGJ5IE9yaW9uIGFuZCBDaGUgdG8gZGVsaXZlciBvbiBhIHJhcGlkIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50IGZyYW1ld29yaywgZnVsbHkgaG9zdGVkIGluIHRoZSBjbG91ZC4gIERpcmlnaWJsZSBhYnN0cmFjdGlvbnMgbWFrZSBkZXZlbG9waW5nIFdlYiBzZXJ2aWNlcyBhbmQgdGhlIGNsaWVudHMgdGhhdCBjb25zdW1lIHRoZW0gc3RydWN0dXJlZCB3aXRoIHNjYWZmb2xkaW5nLCByYXBpZCwgYW5kIGVhc2llciB0byBtYWludGFpbi4gIFJhcGlkIGRldmVsb3BtZW50IGZyYW1ld29ya3MgaGF2ZSBjb21tb25seSBiZWVuIGRlcGxveWVkIHRvIHN1cHBvcnQgZGF0YWJhc2UgYW5kIHBhY2thZ2VkIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50LCBhbmQgRGlyaWdpYmxlIGJyaW5ncyB0aG9zZSBjb25jZXB0cyB0byBjbG91ZCBkZXZlbG9wZXIgZW52aXJvbm1lbnRzLgorCitBbGwgdGhyZWUgcHJvamVjdHMgcHJvdmlkZSBob3N0ZWQgZGV2ZWxvcGVyIGVudmlyb25tZW50cy4gIEJ1dCBvdXIgY29tbW9uYWxpdHkgYW5kIGFncmVlbWVudCBvbiBhIGNvbW1vbiB2aXNpb24gbWVhbnMgdGhhdCB0aGVyZSB3aWxsIGJlIG5pY2UgcmV1c2UgYW5kIGFsaWdubWVudCBiZXR3ZWVuIHRoZSBwcm9qZWN0cy4gIEFsbCBvZiB0aGUgcHJvamVjdHMgYWdyZWUgb24gY29yZSBwcmluY2lwbGVzIHJlbGF0aW5nIHRvIHByb3ZpZGluZyBkZXZlbG9wZXIgc2VydmljZXMgYXMgYXRvbWljIG1pY3Jvc2VydmljZXMsIGRlY291cGxpbmcgdGhlIGNsaWVudHMgKElERXMpIHRoYXQgY29uc3VtZSB0aG9zZSBzZXJ2aWNlcyBmcm9tIHRoZSBzZXJ2aWNlcyB0aGVtc2VsdmVzLCBzdXBwb3J0aW5nIGEgYnJvYWQgcmFuZ2Ugb2YgY2xpZW50cyAod2hldGhlciBvdXIgYnJvd3NlciBJREVzIG9yIGRlc2t0b3AgSURFcyBjb25uZWN0ZWQgb3ZlciBhIGJ1cyksIGFuZCBwcm92aWRpbmcgYSBjb25zaXN0ZW50IHdheSB0byBwcm92aXNpb24sIHNoYXJlIGFuZCBzY2FsZSBob3N0ZWQgZGV2ZWxvcGVyIGVudmlyb25tZW50cyB0b2dldGhlci4KKworPGgzPldoZW4gc2hvdWxkIGEgZGV2ZWxvcGVyIHVzZXIgY2hvb3NlIE9yaW9uIGFuZCB3aGVuIHNob3VsZCB0aGV5IGNob29zZSBDaGU/PC9oMz4KK1RoZXkgc2hvdWxkIGNob29zZSBib3RoIDopLiAgQnV0IG1vcmUgc2VyaW91c2x5LCB3aGlsZSBhIGRldmVsb3BlciBzaG91bGQgdHJ5IGJvdGggcHJvZHVjdHMgZm9yIGFsbCBraW5kcyBvZiBhcHBsaWNhdGlvbnMsIGlmIGEgZGV2ZWxvcGVyIGlzIGRvaW5nIGEgSmF2YVNjcmlwdCBwcm9qZWN0LCB0aGV5IHNob3VsZCBleHBlcmllbmNlIE9yaW9uLiAgSWYgdGhlaXIgcHJvamVjdCBoYXMgSmF2YSBsYW5ndWFnZSBleHRlbnNpb25zLCBFY2xpcHNlIHBsdWctaW5zLCBtb2JpbGUgZGV2ZWxvcG1lbnQsIG9yIG90aGVyIG5vbi1XZWIgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQsIHRoZW4gdGhleSBzaG91bGQgZ2l2ZSBDaGUgYSB0cnkuCisKK0JvdGggT3Jpb24gYW5kIENoZSB3aWxsIGJlIHdvcmtpbmcgb24gYSB2YXJpZXR5IG9mIGNvbW1vbiBpbmZyYXN0cnVjdHVyZSBwcm9qZWN0cyB0aGF0IHdpbGwgbWFrZSBpdCBlYXN5IGZvciBwcm9qZWN0cyB0byBtaWdyYXRlIGJldHdlZW4gQ2hlIGFuZCBvcmlvbiwgYWxvbmcgd2l0aCB0aGUgQ2hlIC8gT3Jpb24gSURFcyBvcGVyYXRpbmcgb24gYSBjb21tb24gc2V0IG9mIGVudGVycHJpc2UgaW5mcmFzdHJ1Y3R1cmUuCisKKzxoMz5Ib3cgd2lsbCBPcmlvbiwgQ2hlLCBGbHV4LCBhbmQgRGlyaWdpYmxlIGNvbGxhYm9yYXRlIHRvZ2V0aGVyPzwvaDM+CitXZSBoYXZlIGlkZW50aWZpZWQgYSBudW1iZXIgb2YgaW5pdGlhdGl2ZXMgdGhhdCB0aGUgcHJvamVjdHMgd2lsbCBhbGlnbiBvbi4gIFRoZXNlIGluY2x1ZGU6CitGaW5kaW5nIHdheXMgdG8gaGF2ZSBDaGUgYW5kIE9yaW9uIHBsdWctaW5zIHdvcmsgd2l0aGluIGVhY2ggb3RoZXKScyBzeXN0ZW1zLgorU3RhbmRhcmRpemluZyBvbiB0aGUgc3luY2hyb25vdXMgUkVTVCBBUEkgbW9kZWwgdGhhdCBhbGxvd3MgYnJvd3NlciBjbGllbnRzIHRvIGNvbW11bmljYXRlIHdpdGggc2VydmVyLXNpZGUgc3lzdGVtcy4gIEEgc2FtcGxlIHNldCBvZiBBUElzIGNhbiBiZSBzZWVuIGF0IGRvY3MuY29kZW52eS5jb20uCitVc2luZyBGbHV4IHRvIHN0YW5kYXJkaXplIG9uIHRoZSBhc3luY2hyb25vdXMgY29tbXVuaWNhdGlvbiBtb2RlbCBiZXR3ZWVuIHZhcmlvdXMgY2xvdWQgc3lzdGVtcywgYWxvbmcgd2l0aCBlbmFibGluZyBicm93c2VyIGFuZCBkZXNrdG9wIGNsaWVudHMgdG8gaGF2ZSBkZWNvdXBsZWQgYWNjZXNzIHRvIGNsb3VkIHN5c3RlbXMuCitDb2xsYWJvcmF0aW5nIG9uIGEgbW9kZWwgdGhhdCBhbGxvd3MgZm9yIG9uLWRlbWFuZCwgYXV0aGVudGljYXRpb24tbGVzcyBlbnZpcm9ubWVudCBjcmVhdGlvbiB0aHJvdWdoIFVSTHMsIHNpbWlsYXIgdG8gdGhlIGVmZmVjdHMgc2VlbiBieSBDb2RlbnZ5IEZhY3RvcnksIGFzIGRvY3VtZW50ZWQgYXQgZG9jcy5jb2RlbnZ5LmNvbS91c2VyLiAgVGVtcG9yYXJ5IGVudmlyb25tZW50cyB3aWxsIGJlIHBvc3NpYmxlIHRvIGJlIGdlbmVyYXRlZCBvbiBhbnkgc3lzdGVtIHN1cHBvcnRpbmcgdGhlIGZvcm1hdC4KK0FsaWduIG9uIGNvbW1vbiB1bmRlcmx5aW5nIGVudGVycHJpc2UgaW5mcmFzdHJ1Y3R1cmUsIHRoYXQgd2lsbCBzZWFtbGVzc2x5IHRha2UgYSBzaW5nbGUgc2VydmVyIGNsb3VkIElERSBwYWNrYWdlLCBhbmQgYWxsb3cgaXQgdG8gYmUgZGVwbG95ZWQgd2l0aGluIGFuIGVudGVycHJpc2Ugc3lzdGVtIHRoYXQgcHJvdmlkZXMgbXVsdGktdGVuYW5jeSwgZWxhc3RpY2l0eSwgYW5kIHNlY3VyaXR5LgorSW5jb3Jwb3JhdGUgdGhlIERpcmlnaWJsZSBjb25maWd1cmF0ZS1zdG9yZWQtYXMtYS1tb2RlbCBhcHByb2FjaCB0byBjcmVhdGUgYW4gYWJzdHJhY3Rpb24gdG8gc3VwcG9ydCBhIHZhcmlldHkgb2YgcmFwaWQgZGV2ZWxvcG1lbnQgYXBwcm9hY2hlcyBhbmQgZnJhbWV3b3Jrcy4KKworPGgzPldoYXQgaXMgdGhlIGZ1dHVyZSBvZiBjbG91ZCBkZXZlbG9wbWVudCwgYW5kIHlvdXIgcm9hZG1hcCBoZXJlPzwvaDM+CitDbG91ZCBkZXZlbG9wbWVudJJzIGJlbmVmaXRzIGFyZSBzaWduaWZpY2FudCB0byBpbmRpdmlkdWFsIGRldmVsb3BlcnMsIGRldmVsb3BtZW50IHRlYW1zLCBhbmQgZW50ZXJwcmlzZSBvcmdhbml6YXRpb25zLiAgVGhlcmUgYXJlIGh1Z2UgY29uZmlndXJhdGlvbiB0YXhlcyB0aGF0IGV4aXN0IHRvZGF5IGR1ZSB0byBlbnZpcm9ubWVudCBjcmVhdGlvbiwgZW52aXJvbm1lbnRhbCB0ZWNobmljYWwgZGVidCwgZW52aXJvbm1lbnRhbCB0cmliYWwga25vd2xlZGdlLCBoYXJkd2FyZSBpbnRlcm9wZXJhYmlsaXR5IGlzc3VlcywgYW5kIHRoZSBnZW5lcmFsIGludGVyb3BlcmFiaWxpdHkgaXNzdWVzIHRoYXQgZXhpc3QgYmV0d2VlbiBtYWtpbmcgYW4gZWNvc3lzdGVtIG9mIHRvb2xzIGFuZCBwbHVnLWlucyB3b3JrIHRvZ2V0aGVyLiAgQWxsIG9mIHRoZXNlIHByb2JsZW1zIGNhbiBiZSBkcmFtYXRpY2FsbHkgcmVkdWNlZCB3aXRoIGEgY2xvdWQgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gdGhhdCBhdXRvbWF0ZXMgdGhlIGZ1bGwgbGlmZWN5Y2xlIG9mIGRldmVsb3BlciBlbnZpcm9ubWVudCBhbmQgaXRzIHN1cHBvcnRlZCB0b29saW5nLgorCitUbyBhY2hpZXZlIHRoaXMgdmlzaW9uLCBtdWNoIG1vcmUgdGhhbiBhIGNsb3VkIElERSBpcyByZXF1aXJlZC4gIEEgY2xvdWQgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gKENEUCkgdGFrZXMgYSBjbG91ZCBJREUgYW5kIHR1cm5zIGl0IGludG8gYW4gb3JjaGVzdHJhdGlvbiBzeXN0ZW0gZm9yIGRldmVsb3BlciBlbnZpcm9ubWVudHMuICBUaGUgcG93ZXIgb2YgdGhlIENEUCBpcyB0aGF0IGl0IGNhbiBhdXRvbWF0ZSBtYW55IG9mIHRoZSB3b3JrZmxvd3MgdGhhdCBtYWtlIHVwIHRoZSB0YXNrcyBjYXJyaWVkIG91dCBieSBkZXZlbG9wZXJzLCBRQSwgcHJvZHVjdCBtYW5hZ2VycywgZG9jdW1lbnRhdGlvbiBzcGVjaWFsaXN0cywgYW5kIGRldm9wcyBwcm9mZXNzaW9uYWxzLiAgV2h5IHNob3VsZCBlYWNoIGRldmVsb3BlciBvbmx5IGhhdmUgYSBzaW5nbGUgZGV2ZWxvcGVyIGVudmlyb25tZW50IHRoYXQgbGl2ZXMgaW5kZWZpbml0ZWx5IChzdGF0aWNhbGx5KSBvbiB0aGVpciBkZXNrdG9wLCB3aGVuIC0gd2l0aCBmdWxsIGF1dG9tYXRpb24gLSBldmVyeSBkZXZlbG9wZXIgYW5kIHN5c3RlbSBjYW4gaGF2ZSBhIHVuaXF1ZSBkZXZlbG9wZXIgZW52aXJvbm1lbnQgZm9yIGVhY2ggdGFzayB0aGV5IGNhcnJ5IG91dCBkdXJpbmcgdGhlIGRheT8gIFdoZXRoZXIgaXSScyBmaXhpbmcgYSBidWcsIGludmVzdGlnYXRpbmcgYSBsZWdhY3kgYnJhbmNoLCB3b3JraW5nIG9uIGEgbmV3IGZlYXR1cmUsIG9yIGV4cGxvcmluZyBhIG5ldyB0ZWNobm9sb2d5IGxpYnJhcnksIGEgY2xvdWQgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gY2FuIGF1dG8tcHJvdmlzaW9uIGEgc3BlY2lhbGl6ZWQgZW52aXJvbm1lbnQgZm9yIGVhY2ggdGFzaywgb24tZGVtYW5kLCB3aXRoIG5vIGRvd25sb2FkcyBvciBjb25maWd1cmF0aW9uIHJlcXVpcmVkIGJ5IHRoZSBkZXZlbG9wZXIuCisKK1RoZSBDRFAgY2FuIHRoZW4gcHJvdmlkZSBudW1lcm91cyBzZXJ2aWNlcyB0byBtYWtlIHRoZSBkZXZlbG9wZXKScyB3b3JrZmxvdyBzaG9ydGVyIGFuZCBsZXNzIGVycm9yIHByb25lLiAgVGhlc2UgaW5jbHVkZSBhZHZhbmNlZCBlZGl0b3JzLCBkZXBlbmRlbmN5IGFuYWx5c2lzLCBhdXRvbWF0ZWQgdW5pdCB0ZXN0aW5nLCBkZWJ1Z2dpbmcsIGJ1aWxkaW5nLCBwYWNrYWdpbmcsIGFuZCBzb3VyY2UgY29kZSBtYW5hZ2VtZW50IGludGVncmF0aW9uLiAgVGhlIENEUCBjYW4gdGFrZSB0aGVzZSBvcGVyYXRpb25zIGF0IHNjYWxlLCBhbmQgbWFrZSB0aGVtIHJ1biBmYXN0ZXIgdGhhbiB0aGV5IHdvdWxkIG5vcm1hbGx5IHJ1biBvbiBhbiBpbmRpdmlkdWFsIGRlc2t0b3AsIGJ1dCBhbHNvIHJlcXVpcmUgbGVzcyBoYXJkd2FyZSBmb3IgYSBsYXJnZSBvcmdhbml6YXRpb24gdGhhbiBwZXJmb3JtaW5nIHRoZXNlIGZ1bmN0aW9ucyBvbiBkZXNrdG9wcyBzaW5jZSB0aGUgY2xvdWQgY2FuIGJlIG9wZXJhdGVkIG9uIGEgZGVuc2UgaGFyZHdhcmUgY2x1c3Rlci4gICAKKworRmluYWxseSwgd2l0aCBkZXZlbG9wbWVudCBjZW50cmFsaXplZCwgZGV2b3BzIGFuZCBkZXZlbG9wbWVudCBsZWFkZXJzLCBjYW4gYmV0dGVyIHN1cHBvcnQgdGhlIGRldmVsb3BtZW50IG9mIGEgcG9wdWxhdGlvbiBvZiBkZXZlbG9wZXJzIGJ5IGluY29ycG9yYXRpbmcgYmVzdCBwcmFjdGljZXMsIGJlaGF2aW9yYWwgYWNjZXNzIGNvbnRyb2xzLCBhbmQgbW9uaXRvcmluZyB0b29scyB0byBlbnN1cmUgSVAgY29tcGxpYW5jZSBhbmQgbWF4aW11bSBwcm9kdWN0aXZpdHkgb2YgaW5kaXZpZHVhbHMuICBJbWFnaW5lIGJlaW5nIGFibGUgdG8gZGlyZWN0IGFuIGV4dHJhIDIwR0Igb2YgUkFNIHRvIGEgZGV2ZWxvcGVyIHRoYXQgdXJnZW50bHkgbmVlZHMgaXQgZm9yIGNvbXBpbGF0aW9uLCBvciBjcmVhdGluZyBhIHNwZWNpYWwgc2V0IG9mIHNhbmQgYm94ZXMgdG8gc3VwcG9ydCB3aGl0ZSByb29tIGRldmVsb3BtZW50IG9mIHNlY3VyZSBJUCwgb3IgYWxsb3dpbmcgYW4gaW5zdHJ1Y3RvciB0byBjcmVhdGUgYSBwcm9ncmFtbWluZyBleGFtIGFjY2Vzc2libGUgdG8gaGlzIHN0dWRlbnRzIGZvciBleGFjdGx5IG9uZSBob3VyIHdpdGggY29udHJvbHMgdG8gZGV0ZWN0IGFueSBwbGFnaWFyaXNtIG9yIGNoZWF0aW5nLiAgV2l0aCBhIENEUCwgYWxsIG9mIHRoZXNlIHNjZW5hcmlvcyBhcmUgY29uZmlndXJhYmxlLCBzaW1wbHkuCisKK05ldCwgbmV0OiBGYXN0ZXIgZGV2ZWxvcG1lbnQuICBDaGVhcGVyIGRldmVsb3BtZW50LiAgRGV2ZWxvcG1lbnQgZG9uZSB3aXRoIGNvbXBsaWFuY2UgYW5kIHNlY3VyaXR5LgorCitPdXIgcm9hZG1hcCB0byBzdXBwb3J0IHRoaXMgdmlzaW9uIGluY2x1ZGVzOgorQWR2YW5jaW5nIGVhY2ggVExQIHByb2plY3QgdGhyb3VnaCB0aGVpciBub3JtYWwgcm9hZG1hcCBhbmQgZXZvbHV0aW9uIHByb2Nlc3Nlcy4KK1JlY3J1aXRpbmcgbmV3IHByb2plY3RzIHRoYXQgcHJvdmlkZSBjcml0aWNhbCBkZXZlbG9wZXIgc2VydmljZXMgaW4gdGhlIGNsb3VkIGludG8gdGhlIEVDRCBUTFAuCitBbGlnbmluZyBjb3JlIHBsdWctaW4sIGVkaXRvciwgYW5kIEFQSSAvIGludGVyZmFjZSBtb2RlbHMgYmV0d2VlbiB0aGUgcHJvamVjdHMuCitUaGVyZSB3aWxsIGJlIGNvbWJpbmVkIGVjb3N5c3RlbSwgZXZhbmdlbGlzbSwgYW5kIGJ1c2luZXNzIGRldmVsb3BtZW50IGVmZm9ydHMgdG8gYnJpbmcgbW9yZSBkZXZlbG9wZXJzLCBwcm9qZWN0cywgYW5kIHBsdWctaW5zIHRvIEVDRCBtb2RlbCBpbmNsdWRpbmcgc3BlY2lhbCBlZmZvcnRzIGFuZCBhdHRlbnRpb24gdG8gbWlncmF0aW5nIGV4aXN0aW5nIEVjbGlwc2UgcGx1Zy1pbnMuCitDb2RlbnZ5IHdpbGwgY3JlYXRlIGFuIGFkZGl0aW9uYWwgcHJvamVjdCB0aGF0IGZvY3VzZXMgb24gdGhlIGVudGVycHJpc2Ugc2NhbGUgZWxlbWVudHMgb2YgYSBFQ0QsIGFuZCBGbHV4IC8gT3Jpb24gLyBDaGUgd2lsbCB3b3JrIHRvIHN0YW5kYXJkaXplIGRlcGxveW1lbnQgb2YgZWFjaCBzeXN0ZW0gd2l0aGluIHRoZSBlbnRlcnByaXNlIGluZnJhc3RydWN0dXJlLgorQW4gZWZmb3J0IHRvIHN0dWR5IGhvdyBhbmFseXRpY3MsIGV2ZW50cywgYW5kIHRoZSBCSSBvZiBkZXZlbG9wbWVudCB3b3JrZmxvd3Mgd2lsbCBiZSBjcmVhdGVkLgorCis8aDM+V2h5IGlzIENvZGVudnkgZG9uYXRpbmcgdGhlaXIgY29yZSBJUD88L2gzPgorQ29kZW52eSBiZWxpZXZlcyBpbiBvcGVubmVzcywgdHJhbnNwYXJlbmN5LCBlY29zeXN0ZW0sIGFuZCBFY2xpcHNlLiAgVGhlIGNsb3VkIGRldmVsb3BtZW50IHByb2JsZW0gaXMgbWFzc2l2ZSBhbmQgY2Fubm90IGJlIHNvbHZlZCBpbmRpdmlkdWFsbHkuICBCeSB3b3JraW5nIHdpdGggdGhlIEVjbGlwc2UgZm91bmRhdGlvbiwgQ29kZW52eSBpcyBhYmxlIHRvIGNvbmNlbnRyYXRlIHRoZWlyIHJlc291cmNlcyB3aXRoIG90aGVycyB0aGF0IGhhdmUgYSBzaW1pbGFyIHZhbHVlIHN5c3RlbSBhbmQgdmlzaW9uLiAgCisKKzxoMz5XaGVuIHdpbGwgdGhlIENoZSBjb2RlIGJlIGF2YWlsYWJsZT8gRm9yIHdoaWNoIJNwYXJ0c5Qgb2YgdGhlIHBsYXRmb3JtPzwvaDM+CitUaGUgaW5pdGlhbCBDaGUgY29kZSBpcyBhdmFpbGFibGUgdW5kZXIgRVBMIGF0IGdpdGh1Yi5jb20vY29kZW52eS9zZGsuICBXZSBhcmUgd29ya2luZyB3aXRoaW4gdGhlIEVjbGlwc2UgcHJvY2VzcyB0byBnZXQgdGhyb3VnaCBJbmN1YmF0aW9uIG5vdy4KKworPGgzPldoYXQga2luZHMgb2YgcHJvZHVjdHMsIGFwcGxpY2F0aW9ucyBjYW4gd2UgZXhwZWN0IHRvIHNlZSBhcyBhIHJlc3VsdCBvZiB0aGlzIGNvbGxhYm9yYXRpb24/PC9oMz4KK1lvdSBjYW4gZXhwZWN0IHRvIHNlZSBuZXcgSURFcywgbmV3IHBsdWctaW5zLCBuZXcgZW50ZXJwcmlzZSB0ZWNobm9sb2dpZXMgdG8gc3VwcG9ydCBleGVjdXRpbmcgdGhlc2Ugc3lzdGVtcyBhdCBzY2FsZSwgYW5kIHlvdSBjYW4gZXhwZWN0IHRvIHNlZSBpbnRlZ3JhdGlvbiBicmlkZ2VzIHRoYXQgYmluZCBFQ0QgaW50byBvdGhlciBjb3JlIGRldmVsb3BtZW50IHBsYXRmb3JtcyBsaWtlIEplbmtpbnMgYW5kIEppcmEuCisKKzxoMz5Ib3cgY2FuIEkgY29udHJpYnV0ZSB0byBhbmQgcGFydGljaXBhdGUgaW4gdGhlIENoZSBwcm9qZWN0PzwvaDM+CitHZXQgc3RhcnRlZCBieSBjbG9uaW5nIHRoZSBzb3VyY2UgYW5kIGdldHRpbmcgYWN0aXZlIGF0IEVjbGlwc2UuICBodHRwczovL2dpdGh1Yi5jb20vY29kZW52eS9zZGsKKwogPC9kaXY+CiA8IS0tIC4vZW5kICAjbWlkY29sdW1uIC0tPgogCg==