Performance from Previous Plans
Performance from Previous Plans

Performance from Previous Plans

eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IjU3NHItaDVuYyIsIm5hbWUiOiJQZXJmb3JtYW5jZSBmcm9tIFByZXZpb3VzIFBsYW5zIiwibWV0YWRhdGEiOiJ7XCJpbWFnZVwiOlwiL2FwaS9hc3NldHMvQzlDNzk0OUMtMDJBRS00RTE0LTk5NjktNzhEMEFDN0M5RkZCXCJ9IiwiY2F0ZWdvcmllcyI6W3siaWQiOiJ1bmNhdGVnb3JpemVkIiwibmFtZSI6InVuY2F0ZWdvcml6ZWQiLCJnb2FscyI6W3siaWQiOiJydWhiLXZzOHQiLCJuYW1lIjoiUHJpbWFyeSBQdXBpbCBBdHRhaW5tZW50IiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJuYXJyYXRpdmVcIjpbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipLZXkgU3RhZ2UgMioqXFxuXFxuUHVwaWxzIGFnZWQgZnJvbSA3IHRvIDExIHllYXJzIG9sZCB3b3JrIGF0IEtleSBTdGFnZSAyLiBUaGUgbmV3IG1vcmUgY2hhbGxlbmdpbmcgbmF0aW9uYWwgY3VycmljdWx1bSwgd2hpY2ggd2FzIGludHJvZHVjZWQgaW4gMjAxNCwgd2FzIGFzc2Vzc2VkIGJ5IG5ldyB0ZXN0cyBhbmQgaW50ZXJpbSBmcmFtZXdvcmtzIGZvciB0ZWFjaGVyIGFzc2Vzc21lbnQuIFJlc3VsdHMgZm9yIDIwMTYgYW5kIHN1YnNlcXVlbnQgeWVhcnMgYXJlIG5vIGxvbmdlciByZXBvcnRlZCBhcyBsZXZlbHMsIGVhY2ggcHVwaWwgcmVjZWl2ZXMgdGhlaXIgdGVzdCByZXN1bHRzIGFzIGEgc2NhbGVkIHNjb3JlIGFuZCB0ZWFjaGVyIGFzc2Vzc21lbnRzIGJhc2VkIG9uIHRoZSBzdGFuZGFyZHMgaW4gdGhlIGludGVyaW0gZnJhbWV3b3JrLiBUaGUgaW50ZXJpbSBhc3Nlc3NtZW50IGNyaXRlcmlhIHByb3ZpZGVkIGJ5IHRoZSBTdGFuZGFyZHMgYW5kIFRlc3RpbmcgQWdlbmN5IGluZGljYXRlZCB0aGF0IGFzc2Vzc21lbnQgc2hvdWxkIGJlIGJhc2VkIG9uIDEwMCUgYWNoaWV2ZW1lbnQgYW5kIG5vdCBhIOKAmGJlc3QgZml04oCZIG1vZGVsLiBXZXN0IFN1c3NleCBhcHBsaWVkIHRoaXMgYWR2aWNlIHJpZ29yb3VzbHkuIEJlY2F1c2Ugb2YgdGhlIGNoYW5nZXMgZGV0YWlsZWQgYWJvdmUsIGZpZ3VyZXMgZm9yIDIwMTYgYW5kIDIwMTcgYXJlIG5vdCBjb21wYXJhYmxlIHRvIHRob3NlIGZvciBlYXJsaWVyIHllYXJzLiBMZXZlbHMgYXJlIG5vdCBjb21wYXJhYmxlIHdpdGggc2NhbGVkIHNjb3JlcyBvciB0ZWFjaGVyIGFzc2Vzc21lbnQgb3V0Y29tZXMuIFRoZSBleHBlY3RhdGlvbnMgZm9yIHB1cGlscyBhdCB0aGUgZW5kIG9mIGtleSBzdGFnZSAyIGhhdmUgYmVlbiByYWlzZWQuXFxuXFxuKipEZWNlbWJlciAyMDE3IFVwZGF0ZToqKlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKkRlY2VtYmVyIDIwMTcgVXBkYXRlOioqXFxuXFxuLSAtIC1cXG5cXG4qKjIwMTYtMjAxNyBSZWFkaW5nLCBXcml0aW5nIGFuZCBNYXRocyAoUldNKSoqXFxuXFxuVGhlIG1haW4gcHVibGlzaGVkIGluZGljYXRvciByZW1haW5zIFJlYWRpbmcsIFdyaXRpbmcgYW5kIE1hdGhzIChSV00pLCB0aG9zZSBwdXBpbHMgd2hvIHJlYWNoIG9yIGV4Y2VlZCB0aGUgZXhwZWN0ZWQgc3RhbmRhcmQgaW4gYWxsIG9mIHJlYWRpbmcgdGVzdCwgd3JpdGluZyB0ZWFjaGVyIGFzc2Vzc21lbnQgYW5kIG1hdGhzIHRlc3QuIEluIFdlc3QgU3Vzc2V4IDU1JSBvZiBhbGwgcHVwaWxzIHJlYWNoZWQgdGhhdCBzdGFuZGFyZCBjb21wYXJlZCB0byB0aGUgbmF0aW9uYWwgYXZlcmFnZSBvZiA2MiUuIFRoZSBXZXN0IFN1c3NleCBhdmVyYWdlIGhhcyBpbmNyZWFzZWQgbW9yZSByYXBpZGx5IHRoYW4gdGhlIG5hdGlvbmFsIGFuZCB0aGUgZ2FwIGhhcyBub3cgcmVkdWNlZCBieSAyJSB0byBqdXN0IDclLiBUaGUgc2FtZSBwaWN0dXJlIGlzIHJlZmxlY3RlZCBhZ2FpbnN0IHRoZSBTb3V0aCBFYXN0LCB3aGVyZSB0aGUgaW5jcmVhc2UgaXMgb25seSA4JSwgdGhlIGdhcCBoYXMgbm93IHJlZHVjZWQgYnkgMiUgdG8ganVzdCA4JS5cXG5cXG5XaGlsc3QgdGhlcmUgd2FzIGEgMTAlIHBvaW50IGluY3JlYXNlIGZyb20gMjAxNiwgdGhlIHJhdGUgb2YgaW1wcm92ZW1lbnQgbmVlZHMgdG8gYWNjZWxlYXJhdGUgc28gdGhhdCB0aGUgMjAyMiB0YXJnZXQgaXMgcmVhY2hlZC4gV3JpdGluZyBhbmQgbWF0aGVtYXRpY3MgcmVtYWluIHRoZSBhcmVhcyBvZiBjb25jZXJuLlxcblxcbkdyZWF0ZXIgRGVwdGhcXG5cXG5Vc2luZyB0aGUgU3RhbmRhcmQgYW5kIFRlc3RpbmcgQWdlbmN54oCZcyBhc3Nlc3NtZW50IGNyaXRlcmlhLCB0aGUgZXhwZWN0ZWQgc3RhbmRhcmQgaW4gdGhlIHRlc3RzIGlzIGEgc2NhbGVkIHNjb3JlIG9mIDEwMCBvciBhYm92ZS4gU29tZSBwdXBpbHMgd2hvIGF0dGFpbiB0aGUgZXhwZWN0ZWQgc3RhbmRhcmQgYXJlIGp1ZGdlZCB0byBiZSDigJx3b3JraW5nIGF0IGdyZWF0ZXIgZGVwdGggd2l0aGluIHRoZSBleHBlY3RlZCBzdGFuZGFyZOKAnSAoR0RTKS4gR0RTIGlzIHVzZWQgaW4gdGhlIGNoYXJ0cyBiZWxvdywgYnV0IGluIHNvbWUgcHVibGljYXRpb25zIChlLmcuIEFTUCkgdGhlIHRlcm0g4oCcSGlnaCBTdGFuZGFyZOKAnSBpcyB1c2VkIGZvciBzdWNoIHB1cGlscy5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNzI1NjI5QjctQTExOC00NDE2LUI0RjQtOTFDODRFNjU0NzUxXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqSW5kaXZpZHVhbCBTdWJqZWN0cyoqXFxuXFxuQXR0YWlubWVudCBhdCB0aGUgZXhwZWN0ZWQgc3RhbmRhcmQgaW4gdGhlIHRlc3RzIGlzIGhpZ2hlc3QgaW4gR1BTIChncmFtbWFyLCBwdW5jdHVhdGlvbiBhbmQgc3BlbGxpbmcpIGF0IDc0JSBjb21wYXJlZCB0byB0aGUgbmF0aW9uYWwgYXZlcmFnZSBvZiA3OCUgKFNvdXRoIEVhc3QgNzclKS5cXG5cXG5BdHRhaW5tZW50IGlzIGxvd2VzdCBpbiBtYXRocyBhdCA3MSUgY29tcGFyZWQgdG8gdGhlIG5hdGlvbmFsIGF2ZXJhZ2Ugb2YgNzUlIChTb3V0aCBFYXN0IGFsc28gNzUlKS5cXG5cXG5BdHRhaW5tZW50IGluIHJlYWRpbmcgaXMgYXQgNzElIGNvbXBhcmVkIHRvIHRoZSBuYXRpb25hbCBhdmVyYWdlIG9mIDcyJSAoU291dGggRWFzdCA3NCUpLlxcblxcbkluIHdyaXRpbmcgNjklIG9mIHB1cGlscyB3ZXJlIGFzc2Vzc2VkIGJ5IHRlYWNoZXJzIGFzIHdvcmtpbmcgYXQgdGhlIGV4cGVjdGVkIHN0YW5kYXJkLCB0aGlzIHdhcyBsb3dlciB0aGFuIGluIGFueSBvZiB0aGUgdGVzdCBzdWJqZWN0cyBhbmQgY29tcGFyZXMgdG8gdGhlIG5hdGlvbmFsIGF2ZXJhZ2Ugb2YgNzclIChTb3V0aCBFYXN0IGFsc28gNzclKS5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvQjZENEM0MzQtRUY0My00QkExLTg2RDktRkI5MzU3N0I1NEE1XCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzU0NzE4QjQ3LTg1QTctNDIxRS05MTkyLTJBMDIzODk0MDBGQlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJBbHRob3VnaCBzb21lIGdhaW5zIGhhdmUgYmVlbiBtYWRlIGFnYWluc3QgU3RhdGlzdGljYWwgbmVpZ2hib3VycywgV2VzdCBTdXNzZXggcmVtYWlucyBhdCB0aGUgbG93ZXN0IHJhbmsgZm9yIDcgb2YgdGhlIDExIGluZGljYXRvcnMgZm9yIEFsbCBQdXBpbHMuIEJveXMgc2hvdyB0aGUgbW9zdCBpbXByb3ZlbWVudCBhZ2FpbnN0IFN0YXRpc3RpY2FsIE5laWdoYm91cnMsIGFsdGhvdWdoIFdlc3QgU3Vzc2V4IHJlbWFpbnMgcmFua2VkIDEwIG9yIDExIG91dCBvZiAxMSBpbiBtb3JlIHRoYW4gaGFsZiB0aGUgMzMgaW5kaWNhdG9ycyBhY3Jvc3MgYWxsIGdlbmRlcnMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqQ29tcGFyaXNvbiB3aXRoIG90aGVyIExvY2FsIEF1dGhvcml0aWVzIChyYW5raW5ncyk6KipcXG5cXG5OYXRpb25hbC9zdGF0aXN0aWNhbCBuZWlnaGJvdXJzOiBXZXN0IFN1c3NleCdzIEFsbCBQdXBpbHMgbmF0aW9uYWwgcmFua2luZ3MgZm9yIEV4cGVjdGVkIFN0YW5kYXJkIGluIE1hdGhzLCBSV00sIEdQUyBhbmQgU2NpZW5jZSBhbGwgc2hvdyBpbXByb3ZlbWVudC4gVGhlcmUgaXMgaW1wcm92ZW1lbnQgZm9yIEFsbCBQdXBpbHMgaW4gUldNIGF0IEdyZWF0ZXIgVGhhbiBFeHBlY3RlZCBTdGFuZGFyZCB0b28sIHRob3VnaCBhbGwgb3RoZXIgc3ViamVjdHMgYXJlIGRvd24uXFxuXFxuR2lybHMgc2hvdyBpbXByb3ZlbWVudCBpbiBNYXRocyBhdCB0aGUgRXhwZWN0ZWQgU3RhbmRhcmQgYW5kIGdyZWF0ZXIgdGhhbiBFeHBlY3RlZCBhbmQgYXQgdGhlIGV4cGVjdGVkIFN0YW5kYXJkIGZvciBHUFMgYW5kIFNjaWVuY2UuIFRoZSBCb3lzIHNob3cgdGhlIG1vc3QgaW1wcm92ZW1lbnQgaW4gcmFua2luZ3Mgd2l0aCA3IG9mIHRoZSAxMSBpbmRpY2F0b3JzIHVwIG9uIGxhc3QgeWVhciwgd2l0aCBTY2llbmNlIHNob3dpbmcgYW4gaW5jcmVhc2Ugb2YgMzcgcGxhY2VzLiBXaXRoIHRoZSBleGNlcHRpb24gb2YgR3JlYXRlciBUaGFuIEV4cGVjdGVkIFJlYWRpbmcsIFdlc3QgU3Vzc2V4IHJlbWFpbnMgaW4gdGhlIGxvd2VyIGhhbGYgb2YgcmFua2luZ3MgbmF0aW9uYWxseS5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvMzVGRTcxOTMtRDNDNy00MjlELTg0MjEtMjY3QkQzRTVCRjREXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlNvdXRoIEVhc3Q6IFdlc3QgU3Vzc2V44oCZcyByYW5raW5ncywgYWdhaW5zdCB0aGUgMTkgU291dGggRWFzdCBncm91cCBvZiBMb2NhbCBBdXRob3JpdGllcywgYXJlOlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIgUldNIEVYUysgKD0xOHRoIG9mIDE5KVxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8xRTZBODQxNS1ENDU5LTQ2N0EtQUMyOC1CQTJEQzJGNTVENjRcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiIFJlYWRpbmcgRVhTKyA9IDEzdGggb2YgMTlcXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlIDIwMTYga2V5IHN0YWdlIDIgYXNzZXNzbWVudHMgd2VyZSB0aGUgZmlyc3Qgd2hpY2ggYXNzZXNzIHRoZSBuZXcsIG1vcmUgY2hhbGxlbmdpbmcgbmF0aW9uYWwgY3VycmljdWx1bSB3aGljaCB3YXMgaW50cm9kdWNlZCBpbiAyMDE0LiBOZXcgdGVzdHMgYW5kIGludGVyaW0gZnJhbWV3b3JrcyBmb3IgdGVhY2hlciBhc3Nlc3NtZW50IGhhdmUgYmVlbiBpbnRyb2R1Y2VkIHRvIHJlZmxlY3QgdGhlIHJldmlzZWQgY3VycmljdWx1bS4gUmVzdWx0cyBhcmUgbm8gbG9uZ2VyIHJlcG9ydGVkIGFzIGxldmVscywgYW5kIGVhY2ggcHVwaWwgd2lsbCBub3cgcmVjZWl2ZSB0aGVpciB0ZXN0IHJlc3VsdHMgYXMgYSBzY2FsZWQgc2NvcmUgYW5kIHRlYWNoZXIgYXNzZXNzbWVudHMgYmFzZWQgb24gdGhlIHN0YW5kYXJkcyBpbiB0aGUgaW50ZXJpbSBmcmFtZXdvcmsuIFRoZSBleHBlY3RlZCBzdGFuZGFyZCBoYXMgYmVlbiByYWlzZWQgYW5kIHRoZSBhY2NvdW50YWJpbGl0eSBmcmFtZXdvcmsgZm9yIHNjaG9vbHMgaGFzIGFsc28gY2hhbmdlZC4gVGhlc2UgY2hhbmdlcyBtZWFuIHRoYXQgdGhlIGV4cGVjdGVkIHN0YW5kYXJkIGlzIGhpZ2hlciBhbmQgbm90IGNvbXBhcmFibGUgd2l0aCB0aGUgZXhwZWN0ZWQgc3RhbmRhcmQgdXNlZCBpbiBwcmV2aW91cyB5ZWFy4oCZcyBzdGF0aXN0aWNzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8zOUYxOTNFMy1GOEQwLTQzODktQUExNy1ENjg0M0JBNjAyNkZcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiV3JpdGluZyBUQSBFWFMgPSAoMTl0aCBvZiAxOSlcIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvOUJDOEJEMzQtMTI2OC00MDkyLTg2N0EtRUEzNUQxODVBOTRGXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIk1hdGhzIEVYUysgKD0xNHRoIG9mIDE5KVwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9DQTY2MTk0Ri0xNkIxLTRDQ0EtOTE3OC03MDJGOTJDRTVDNTBcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiYWEgXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAyIC0gdG8gdGhlIGVuZCBvZiBTZXB0ZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG4qKktleSBTdGFnZSAxKiogcHJvdmlzaW9uYWwgb3V0Y29tZXMgYXJlIG5vdyBhdmFpbGFibGUgYW5kIHRoZSBkYXRhIGJlbG93IGhhcyBiZWVuIHVwZGF0ZWQuIFdlc3QgU3Vzc2V4IHJlc3VsdHMgYXJlIHN0aWxsIGJlbG93IHRoZSBuYXRpb25hbCBhdmVyYWdlIGJ1dCBpbXByb3ZlZCBhdCBhIGZhc3RlciByYXRlIHRoYW4gdGhlIG5hdGlvbmFsIGF2ZXJhZ2UgYW5kLCB0aGVyZWZvcmUsIGNsb3NpbmcgdGhlIGdhcCB0byB0aGUgbmF0aW9uYWwgZmlndXJlLlxcblxcbioqS2V5IFN0YWdlIDIqKiBwcm92aXNpb25hbCBvdXRjb21lcyBjb25maXJtIHRob3NlIHJlcG9ydGVkIGluIEp1bHkgMjAxNy4gV2VzdCBTdXNzZXggcmVzdWx0cyBhcmUgc3RpbGwgYmVsb3cgdGhlIG5hdGlvbmFsIGF2ZXJhZ2UgYnV0IGFwYXJ0IGZyb20gaW4gcmVhZGluZyAod2hpY2ggaXMgY2xvc2UgdG8gbmF0aW9uYWwgYXZlcmFnZSkgaW1wcm92ZWQgYXQgYSBmYXN0ZXIgcmF0ZSB0aGFuIHRoZSBuYXRpb25hbCBhdmVyYWdlIGFuZCwgdGhlcmVmb3JlLCBjbG9zaW5nIHRoZSBnYXAuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAxIC0gdG8gdGhlIGVuZCBvZiBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuKipLZXkgU3RhZ2UgMSoqIGlzIGFuIGluZGljYXRvciBvZiB0aGUgY3VycmVudCBwaWN0dXJlLiBEYXRhIHNob3duIGlzIHByb3Zpc2lvbmFsIGludGVyaW0gZGF0YSwgYXMgYSB2ZXJ5IHNtYWxsIG51bWJlciBvZiBzY2hvb2xzIGFyZSBzdGlsbCB0byB1cGxvYWQgZGF0YSBzZXRzLiBJdCBpcyB1bmxpa2VseSBpbnRlcmltIGRhdGEgd2lsbCByYWRpY2FsbHkgY2hhbmdlIHdoZW4gcmVtYWluaW5nIHVwbG9hZHMgaGF2ZSBiZWVuIGNvbXBsZXRlZC5cXG5cXG4qKktleSBTdGFnZSAyKiogZGF0YSB3YXMgYXZhaWxhYmxlIGZvciBuYXRpb25hbCBkb3dubG9hZCBmcm9tIHRoZSA0dGggSnVseSAyMDE3LiBUaGUgZGF0YSBzaG93biByZXByZXNlbnRzIHRoZSBwcm9wb3J0aW9uIG9mIHB1cGlscyBhY2hpZXZpbmcgdGhlIOKAmGV4cGVjdGVkIHN0YW5kYXJk4oCZIGFuZCDigJhncmVhdGVyIGRlcHRo4oCZLiBUaGUgcHJvcG9ydGlvbiBvZiBwdXBpbHMgYWNoaWV2aW5nIOKAmGdyZWF0ZXIgZGVwdGjigJkgYXMgYSBzZXBhcmF0ZSBtZWFzdXJlIGlzIG5vdCB5ZXQgYXZhaWxhYmxlLiBBbGwgc2Nob29scyBhcmUgY3VycmVudGx5IHJldmlld2luZyB0aGVpciBkYXRhIGluIHRlcm1zIG9mIHRoZSBudW1iZXIgb2YgcHVwaWxzIGZvciB3aG9tIHRoZXkgd2lsbCBhcHBlYWwgYW5kIHNlZWsgYSByZWNvdW50IC8gcmVtYXJrLiBQdXBpbHMgdHlwaWNhbGx5IHB1dCBmb3J3YXJkIGZvciByZWNvdW50IC8gcmVtYXJrIGFyZSBubyBtb3JlIHRoYW4gMyBwb2ludHMgYmVsb3cgdGhyZXNob2xkIGZvciBhY2hpZXZpbmcgdGhlIOKAmGV4cGVjdGVkIHN0YW5kYXJk4oCZLiBJbiAyMDE2LCB0aGlzIHByb2Nlc3MgaGFkIGErMiUgZGlmZmVyZW5jZSB0byB0aGUgZWFybHkgdW52YWxpZGF0ZWQgZGF0YS4gTmF0aW9uYWwgZGF0YSBoYXMgYmVlbiB0YWtlbiBmcm9tIHRoZSBTdGF0aXN0aWNhbCBGaXJzdCBSZWxlYXNlIChTRlIpIGF2YWlsYWJsZSBvbiB0aGUgRGZFIHdlYnNpdGUuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzBCMTAxQzY4LTE1OTItNDNCNS04MkM0LTE0NUY2Q0EyNDQ4RlwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy80N0M5ODE2Ri1GREU5LTQ4MTQtOTU3Ny01NjMwNEYyQjQyMDNcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNioqXFxuXFxuLSAtIC1cXG5cXG5UaGUgcmV2aXNlZCBLZXkgU3RhZ2UgMiByZXN1bHRzIGhhdmUgYmVlbiByZWxlYXNlZCwgYW5kIGZvciBXZXN0IFN1c3NleCA0NSUgb2YgcHVwaWxzIGFjaGlldmluZyB0aGUgZXhwZWN0ZWQgc3RhbmRhcmQgaW4gcmVhZGluZywgd3JpdGluZyBhbmQgbWF0aGVtYXRpY3MgKGNvbWJpbmVkKSB3aGljaCBpcyByYW5rIDMzIGFnYWluc3QgMzQgU2hpcmUgUGx1cyBjb3VudGllcy4gVGhlc2UgcmVzdWx0cyBhcmUgZnJvbSBuZXcgdGVzdHMgYW5kIHRlYWNoZXIgYXNzZXNzbWVudCBvZiB0aGUgbmV3IG5hdGlvbmFsIEN1cnJpY3VsdW0gYW5kIGFyZSBub3QgZGlyZWN0bHkgY29tcGFyYWJsZSB3aXRoIHByZXZpb3VzIG1lYXN1cmVzLiBUaGVzZSByZXN1bHRzIGFyZSBkaXNhcHBvaW50aW5nLlxcblxcblNjaG9vbCBpbXByb3ZlbWVudCwgd29ya2luZyB3aXRoIHNjaG9vbHMsIGhhdmUgcHJvZHVjZWQgYSBwcm9ncmFtbWUgb2Ygc3VwcG9ydCBhbmQgdHJhaW5pbmcgdG8gaW1wcm92ZSBvdXRjb21lcyBhdCBLZXkgU3RhZ2UgMSBhcyB3ZWxsIGFzIEtleSBTdGFnZSAyLiBXZXN0IFN1c3NleCBvZmZpY2VycyBhcmUgd29ya2luZyB3aXRoIHNjaG9vbHMgb24gdGhpcyBhY3Rpb24gcGxhbiB0byBpbXByb3ZlIEtleSBTdGFnZSAyIG91dGNvbWVzIGluIDIwMTcuXFxuXFxuXCJ9XSxcInVzZV9jdXN0b21fdGl0bGVcIjp0cnVlLFwiY3VzdG9tX3RpdGxlXCI6XCJQdXBpbHMgYWNoaWV2aW5nIHRoZSBleHBlY3RlZCBzdGFuZGFyZCBvZiBkZXZlbG9wbWVudCBhdCB0aGUgZW5kIG9mIEtleSBTdGFnZSAyXCIsXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6dHJ1ZSxcImN1c3RvbV9zdWJ0aXRsZVwiOlwiVGhpcyBnb2FsIGlzIG1lYXN1cmVkIGJ5IHRyYWNraW5nIHB1cGlsIGFjaGlldmVtZW50IGF0IEtleSBTdGFnZSAyLiAgSXQgaXMgb3VyIGFtYml0aW9uIHRvIGJlIGFzIGdvb2QgYXMgdGhlIHRvcCAyNSUgb2YgaGlnaGVzdCBwZXJmb3JtaW5nIGNvdW50aWVzIGluIHRoZSBjb3VudHJ5IGJ5IDIwMTkuXCIsXCJpY29uXCI6XCJ0ZXh0XCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTYtMDktMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiJSIsInRhcmdldCI6NjMsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGEiOjAsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjg0LCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6InNkYzcteTZ0ZiJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI+In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6OCxcInllYXJcIjoyMDE2fSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9LFwiYWN0aW9uX3R5cGVcIjpcImluY3JlYXNlXCIsXCJtYWludGFpbl90eXBlXCI6XCI+XCIsXCJ0YXJnZXRfdHlwZVwiOlwiYWJzb2x1dGVcIn0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9LFwiZW5kXCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNH19LFwic3RhcnRcIjpcIjIwMTQtMDEtMDFUMDA6MDA6MDAuMDAwXCIsXCJlbmRcIjpcIjIwMTQtMDEtMDFUMjM6NTk6NTkuMDAwXCIsXCJtZXRyaWNcIjp7XCJtZXRhZGF0YVwiOlwie1xcXCJ3aXphcmRcXFwiOntcXFwiZmlsdGVyX2FzdFxcXCI6W3tcXFwidmFsdWVzXFxcIjpbe31dfV19fVwiLFwiZGF0YXNldFwiOlwiaWRrNi1kYWllXCJ9LFwidHlwZVwiOlwic2NyYXRjaFwifSxcIm5hbWVcIjpcIlBlcmNlbnRhZ2Ugb2YgYXV0aG9yaXR5IGZvciBwdXBpbCBhdHRhaW5tZW50IGF0IEtleSBTdGFnZSAyXCIsXCJ1c2VfcHJvZ3Jlc3Nfb3ZlcnJpZGVcIjp0cnVlLFwicHJvZ3Jlc3Nfb3ZlcnJpZGVcIjpcImJhZFwifSJ9LCJjcmVhdGVkX2F0IjoiMjAxOC0wNy0yM1QxMDo0NTo0My40OTBaIiwidmVyc2lvbiI6IjIwMTgtMDctMjNUMTA6NDU6NDMuNDkwWiIsInRhcmdldF90b2xlcmFuY2UiOjYsImlkIjoiN2QydC1pZmhoIn0sInJlbGF0ZWRfbWVhc3VyZXMiOlt7Im1ldGFkYXRhIjoiIiwiaWQiOiJ0dXNxLXp2c3kifSx7Im1ldGFkYXRhIjoiIiwiaWQiOiJ3YmdzLXk1aG4ifV0sImJhc2VfZGFzaGJvYXJkIjoiNTc0ci1oNW5jIiwidXBkYXRlZF9hdCI6IjIwMTgtMDctMjNUMTA6NDc6MzQuNDEwWiIsImNyZWF0ZWRfYXQiOiIyMDE4LTA3LTIzVDEwOjQ1OjQzLjU4N1oiLCJ2ZXJzaW9uIjoiMjAxOC0wNy0yM1QxMDo0NzozNC40MTBaIiwiY3JlYXRlZF9ieSI6Ijc5N2ktNnI5ZyJ9XX0seyJpZCI6InZidG4tczhidyIsIm5hbWUiOiJGdXR1cmUgV2VzdCBTdXNzZXggUGxhbiAyMDE1IC0gMjAxOSIsImdvYWxzIjpbeyJpZCI6IjkyenoteGNrdSIsIm5hbWUiOiJZb3VuZyBQZW9wbGUncyBNZW50YWwgSGVhbHRoIiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJpY29uXCI6XCJ0ZXh0XCIsXCJuYXJyYXRpdmVcIjpbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlIENBTUhTIChDaGlsZHJlbiBhbmQgQWRvbGVzY2VudCBNZW50YWwgSGVhbHRoIFNlcnZpY2UpIGFuZCBlbW90aW9uYWwgd2VsbGJlaW5nIHNlcnZpY2VzIGFyZSBjb21taXNzaW9uZWQgYnkgYm90aCBXZXN0IFN1c3NleCBDb3VudHkgQ291bmNpbCBhbmQgbG9jYWwgQ2xpbmljYWwgQ29tbWlzc2lvbmluZyBHcm91cHMgdG8gcHJvdmlkZSBzZXJ2aWNlcyBmb3IgeW91bmcgcGVvcGxlIGluIGVtb3Rpb25hbCBkaXN0cmVzcyB3aG8gcmVxdWlyZSBzdXBwb3J0IGZvciB0aGVpciBlbW90aW9uYWwgd2VsbGJlaW5nLiBDaGlsZHJlbiBhbmQgWW91bmcgcGVvcGxlIGFyZSByZWZlcnJlZCBieSBhIHJhbmdlIG9mIGNoaWxkcmVuJ3MgcHJvZmVzc2lvbmFsIChpbmNsdWRpbmcgR1BzKSBmb3IgYSBudW1iZXIgb2YgZGlmZmVyZW50IHJlYXNvbnMgYW5kIGl0IGlzIGltcG9ydGFudCB0aGF0IHRoZXkgYXJlIHNlZW4gYnkgYXBwcm9wcmlhdGUgc2VydmljZXMgaW4gYSB0aW1lbHkgZmFzaGlvbi5cXG5cXG5XZSBjdXJyZW50bHkgaGF2ZSBhIHBlcmZvcm1hbmNlIHRhcmdldCBvZiBlbnN1cmluZyB0aGF0IDk1JSBvZiB5b3VuZyBwZW9wbGUgcmVmZXJyZWQgdG8gdGhlIHNwZWNpYWxpc3QgQ0FNSFMgc2VydmljZSAocHJvdmlkZWQgYnkgU1BGVCAoU3Vzc2V4IFBhcnRuZXJzaGlwIEZvdW5kYXRpb24gVHJ1c3QpIGFyZSBzZWVuIHdpdGhpbiBmb3VyIHdlZWtzLiBUaGlzIHRhcmdldCBpcyBpbXBhY3RlZCBvbiBieSBudW1iZXJzIG9mIHJlZmVycmFscyBhbmQgc3RhZmZpbmcgYW5kIHJlY3J1aXRtZW50IGlzc3VlcyB3aGljaCBjYW4gZmx1Y3R1YXRlIG1vbnRoIGJ5IG1vbnRoLiBDb21taXNzaW9uZXJzIHdvcmsgd2l0aCB0aGUgcHJvdmlkZXIgdG8gdW5kZXJzdGFuZCBhbnkgdmFyaWF0aW9ucyBpbiBudW1iZXJzIHNlZW4gd2l0aGluIDQgd2Vla3MgYW5kIHRvIHN1cHBvcnQgdGhlbSBpbiBtYW5hZ2luZyB0aGlzLlxcblxcbkZvciBmdXJ0aGVyIGRldGFpbHMgb2YgMjAxNi8xNyBwcm9ncmVzcywgcGxlYXNlIHNlZSB0aGUgbGluayBiZWxvdy5cXG5cXG5baHR0cHM6Ly93d3cud2VzdHN1c3NleC5nb3YudWsvbWVkaWEvMTAwODYvbWFraW5nLXByb2dyZXNzLXJlcG9ydC0yMDE2LTE3LnBkZl1bMF1cXG5cXG5bMF06IGh0dHBzOi8vd3d3Lndlc3RzdXNzZXguZ292LnVrL21lZGlhLzEwMDg2L21ha2luZy1wcm9ncmVzcy1yZXBvcnQtMjAxNi0xNy5wZGZcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipKYW51YXJ5IDIwMTggVXBkYXRlKipcXG5cXG4tIC0gLVxcblxcbkR1cmluZyBKYW51YXJ5IHRoZSBwZXJjZW50YWdlIG9mIHJlZmVycmFscyByZWNlaXZpbmcgYW4gYXNzZXNzbWVudCB3aXRoaW4gNCB3ZWVrcyByb3NlIHRvIDg3JSwgZGVzcGl0ZSB0aGUgbnVtYmVyIG9mIHJlZmVycmFscyBpbmNyZWFzaW5nIHRoaXMgbW9udGguXFxuXFxuU2VydmljZXMgYWNyb3NzIFN1c3NleCBjb250aW51ZSB0byBleHBlcmllbmNlIGNoYWxsZW5nZXMgaW4gbWVldGluZyB0aGUgNCB3ZWVrIHRhcmdldCwgYXMgYSByZXN1bHQgb2YgaW5jcmVhc2VkIGNsaW5pY2FsIGFuZCBzZXJ2aWNlIHJlLWRlc2lnbiBkZW1hbmRzIGFzIHdlbGwgYXMgY29tcGxleGl0eSBvZiByZWZlcnJhbHMuIFdvcmtmb3JjZSByZWNydWl0bWVudCBhbmQgdmFjYW5jaWVzIHJlbWFpbnMgYW4gb25nb2luZyBpc3N1ZS5cXG5cXG5UaGUgc2VydmljZSBjb250aW51ZXMgdG8gd29yayB3aXRoIHRoZSBTdXNzZXggUGFydG5lcnNoaXAgRm91bmRhdGlvbiBUcnVzdCB0byBkaXNjdXNzIG9uZ29pbmcgcGVyZm9ybWFuY2Ugb24gYSBjYXNlIGJ5IGNhc2UgYmFzaXMsIGxvb2tpbmcgYXQgdGhlaXIgcmVhc29ucyBmb3IgZGVsYXlzLCBhY3Rpb25zIGFuZCBsZXNzb25zIGxlYXJudC4gSW4gdGVybXMgb2YgbWl0aWdhdGlvbiB0aGUgZm9sbG93aW5nIGlzIGluIHBsYWNlOi1cXG5cXG4qIHdvcmtmb3JjZSBzdHJhdGVneSBpcyBiZWluZyBkZXZlbG9wZWQgdG8gc3VwcG9ydCB0aGUgYXZhaWxhYmlsaXR5IG9mIGNsaW5pY2FsIHN0YWZmXFxuXFxuKiBNb250aGx5IG1lZXRpbmdzIHdpdGggU1BGVCB0byBzZWVrIGFzc3VyYW5jZSBhbmQgdW5kZXJzdGFuZCBpc3N1ZXMgZmFjZXMgYnkgdGhlIHNlcnZpY2VcXG5cXG4qIEpvaW50IHRyaWFnZSB3aXRoIFRpZXIgMiBzZXJ2aWNlIHRvIGVuc3VyZSB0aGUgcmlnaHQgY2hpbGRyZW4gYXJlIHJlZmVycmVkIHRvIGNsaW5pY2FsIENBTUhTIHNlcnZpY2UuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAyIC0gU2VwdGVtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlcmUgd2VyZSAyNTkgbmV3IHJlZmVycmFscyBmb3IgQXVndXN0IGFuZCAxMDAlIG1ldCB0aGUgNCB3ZWVrIHRhcmdldC4gVGhlcmUgaGFzIGJlZW4gYSBkcm9wIGluIHJlZmVycmFscyBpbiBBdWd1c3QsIHdoaWNoIGlzIGNvbnNpc3RlbnQgd2l0aCBwcmV2aW91cyB5ZWFycyBhbmQgY29uc2lzdGVudCB3aXRoIHNjaG9vbCBob2xpZGF5cy5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhpcyBxdWFydGVyIHNhdyBhIDIwJSBpbmNyZWFzZSBpbiByZWZlcnJhbHMgY29tcGFyZWQgdG8gbGFzdCB5ZWFyLCBhbiBhdmVyYWdlIG9mIDM2MCByZWZlcnJhbHMgcGVyIG1vbnRoIGFuZCBwZWFraW5nIGF0IDQwOSBpbiBNYXkuXFxuXFxuU1BGVCBjYXJlcyBmb3Igb3VyIGxvY2FsIENoaWxkcmVuIGFuZCB5b3VuZyBwZW9wbGUgd2l0aCB0aGUgbW9zdCBjb21wbGV4IG5lZWRzIGFuZCB3ZSB3b3JrIGNsb3NlbHkgd2l0aCB0aGVtIG9uIHRoZSBkZXZlbG9wbWVudCBvZiBhIHJhbmdlIG9mIHNwZWNpYWxpc3Qgc2VydmljZXMgYW5kIGluaXRpYXRpdmVzLiBUaGVzZSBpbmNsdWRlIG91ciBmYW1pbHkgZWF0aW5nIGRpc29yZGVyIHNlcnZpY2UsIEEmRSBsaWFpc29uIHNlcnZpY2UsIGFuZCBjYXJlIGZvciBsb29rZWQgYWZ0ZXIgYW5kIGFkb3B0ZWQgY2hpbGRyZW4sIHVuYWNjb21wYW5pZWQgYXN5bHVtIHNlZWtlcnMsIGNoaWxkcmVuIHdpdGggY29tcGxleCBiZWhhdmlvdXJzIGFuZCBjaGlsZHJlbiBhbmQgeW91bmcgcGVvcGxlIGluIGNyaXNpcy4gV2UgYXJlIGFsc28gY3VycmVudGx5IHdvcmtpbmcgd2l0aCBTUEZUIHRvIGRldmVsb3AgZW5oYW5jZWQgcGF0aHdheXMgZm9yIGNoaWxkcmVuIHdpdGggbmV1cm9kZXZlbG9wbWVudGFsIGRpc29yZGVycy4gU1BGVCBhbHNvIHByb3ZpZGUgb3VyIGNvbW11bml0eSBtZW50YWwgaGVhbHRoIGxpYWlzb24gc2VydmljZSwgb2ZmZXJpbmcgYWR2aWNlIGFuZCB0cmFpbmluZyBmb3IgcHJvZmVzc2lvbmFscy5cXG5cXG5PbmUgb2YgdGhlIHNlcnZpY2VzIGF2YWlsYWJsZSAtIFlFUyAoWW91dGggRW1vdGlvbmFsIFN1cHBvcnQpIG9mZmVycyBlbW90aW9uYWwgc3VwcG9ydCB0byBvdmVyIDIsMjUwIHlvdW5nIHBlb3BsZSBldmVyeSB5ZWFyLCBwcm92aWRpbmcgYSB3aWRlIHJhbmdlIG9mIGVtb3Rpb25hbCB3ZWxsYmVpbmcgaXNzdWVzLiBJdCBoZWxwcyB5b3VuZyBwZW9wbGUgdG8gbWFrZSBwb3NpdGl2ZSBjaG9pY2VzIGFuZCBidWlsZCByZXNpbGllbmNlLiBDbG9zZSB3b3JraW5nIGFuZCBmb3JtYWwgbGlua3Mgd2l0aCBDQUhNUywgY291bnNlbGxpbmcgYW5kIG90aGVyIHNlcnZpY2VzIG1lYW5zIHRoYXQgWUVTIGNhbiBwcm92aWRlIHRhaWxvcmVkLCBzZWFtbGVzcyBzdXBwb3J0LCBvZnRlbiBhZGRyZXNzaW5nIGlzc3VlcyBzdWNoIGFzIGVkdWNhdGlvbiBhbmQgZW1wbG95bWVudCBhbG9uZ3NpZGUgZW1vdGlvbmFsIHdlbGxiZWluZy4gT3BlcmF0aW5nIGZyb20gOCBGaW5kSXRPdXQgY2VudHJlcyBhY3Jvc3MgdGhlIGNvdW50eSwgWUVTIGFjY2VwdHMgc2VsZi1yZWZlcnJhbHMgYW5kIHJlZmVycmFscyBmcm9tIEdQcyBhbmQgcHVibGljIGhlYWx0aCBudXJzZXMuIEl0IGN1cnJlbnRseSBzZWVzIGFyb3VuZCAyMDAgbmV3IHlvdW5nIHBlb3BsZSBldmVyeSBtb250aCBhbmQgaXRzIHN1Y2Nlc3MgbWVhbnMgdGhhdCBvbiBhdmVyYWdlIGxlc3MgdGhhbiAzJSByZXF1aXJlIGEgcmVmZXJyYWwgdG8gQ0FNSFMuXFxuXFxuV2UgY29udGludWUgdG8gbWVldCBhbmQgd29yayB3aXRoIFNQRlQgcmVndWxhcmx5IHRvIGVuc3VyZSBvbmdvaW5nIGltcHJvdmVkIHBlcmZvcm1hbmNlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgNCAtIE1hcmNoIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuKipZZWFyLWVuZCBDb21tZW50YXJ5KipcXG5cXG5UaGUgbnVtYmVycyBvZiByZWZlcnJhbHMgaGFzIHJlbWFpbmVkIGNvbnNpc3RlbnQsIGF2ZXJhZ2luZyBhdCAzMzQgcGVyIG1vbnRoLiBTUEZUIGhhdmUgbWV0IHRoZWlyIG92ZXJhbGwgdGFyZ2V0IGZvciBzZWVpbmcgOTUlIG9mIGNoaWxkcmVuIGFuZCB5b3VuZyBwZW9wbGUgd2l0aGluIDQgd2Vla3MuXFxuXFxuKipIaWdobGlnaHRzIGZvciB0aGUgeWVhciBpbmNsdWRlOioqXFxuXFxuKiBBIFN1c3NleC13aWRlIGVhdGluZyBkaXNvcmRlciBzZXJ2aWNlIGhhcyBiZWVuIGNvbW1pc3Npb25lZCwgZnVuZGVkIGJ5IGhlYWx0aCB0aHJvdWdoIHRoZSBMVFAgKExvY2FsIFRyYW5zZm9ybWF0aW9uIFBsYW4pLiBBIGhpZ2ggbnVtYmVyIG9mIHJlZmVycmFscyAob3ZlciAxNTAgaW4gNiBtb250aHMpIGhhdmUgYmVlbiByZWNlaXZlZCBzaW5jZSB0aGUgc2VydmljZSB3YXMgbGF1bmNoZWQgaW4gT2N0b2JlciAyMDE2LCBpbiBwYXJ0aWN1bGFyIGZyb20gV2VzdCBTdXNzZXguIFRoaXMgc2VydmljZSBpcyBub3RlZCBhcyBleGVtcGxhcnkgYnkgTkhTIEVuZ2xhbmQuXFxuXFxuKiBBZGRpdGlvbmFsIGhlYWx0aCBmdW5kaW5nIHRocm91Z2ggdGhlIExUUCBoYXMgbGVkIHRvIGludmVzdG1lbnQgaW4gYSB3aWRlIHJhbmdlIG9mIGFkZGl0aW9uYWwgZW1vdGlvbmFsIHdlbGxiZWluZyBhbmQgbWVudGFsIGhlYWx0aCBzZXJ2aWNlcyBpbiBXZXN0IFN1c3NleCwgaW5jbHVkaW5nIHRoZXJhcHkgZm9yIHVuYWNjb21wYW5pZWQgYXN5bHVtIHNlZWtpbmcgY2hpbGRyZW4sIHdob2xlIHNjaG9vbHMgYW5kIGNvbGxlZ2VzIGFwcHJvYWNoIHRvIGVtb3Rpb25hbCB3ZWxsYmVpbmcgYW5kIHNjaG9vbHMsIGFkdm9jYWN5IHNlcnZpY2UgKDEzMCBjaGlsZHJlbiBhbmQgeW91bmcgcGVvcGxlIGhhdmUgcmVjZWl2ZWQgc3VwcG9ydCBvdmVyIHRoZSBwYXN0IHllYXIpLCBjb3Vuc2VsbGluZyBmb3IgY2hpbGRyZW4sIHlvdW5nIHBlb3BsZSBhbmQgdGhlaXIgZmFtaWxpZXMgd2hvIGhhdmUgd2l0bmVzc2VkIHNleHVhbCBhYnVzZSBhbmQgZXhwbG9pdGF0aW9uLiBTaW5jZSBKdWx5IDIwMTYgTGlmZWNlbnRyZSBoYXZlIHN1cHBvcnRlZCBvdmVyIDEwMCBjaGlsZHJlbiBhbmQgeW91bmcgcGVvcGxlLlxcblxcbiogVGhlIFlFUyBTZXJ2aWNlIGRlbGl2ZXJlZCBieSBJUEVIIChJbnRlZ3JhdGVkIFByZXZlbnRpb24gYW5kIEVhcmxpZXN0IEhlbHAgU2VydmljZSkgaGF2ZSByZWNlaXZlZCBvdmVyIDIsMjAwIHJlZmVycmFscyBiZXR3ZWVuIDIwMTYtMTcuIER1ZSB0byBkZW1hbmQgdGhlIHNlcnZpY2UgaGFzIGJlZW4gZXh0ZW5kZWQgdG8gb2ZmZXIgYSBzZXJ2aWNlIGZyb20gMTMtMTggeWVhciBvbGRzIHRvIDExLTE4IHllYXIgb2xkcy4gVGhpcyB5ZWFyIHRoZSBzZXJ2aWNlIGhhcyByZXBvcnRlZCB0aGF0IDExJSBvZiBjbGllbnRzIGFyZSBhZ2VkIDExIHllYXJzLiBPbmx5IDIuOCUgb2YgY2FzZXMgd2VyZSBlc2NhbGF0ZWQgdG8gQ0FNSFMuXFxuXFxuKiBJbnZlc3RtZW50IGluIGNvdW5zZWxsaW5nIHNlcnZpY2VzIGZvciB1bmRlciAxOCDigJMgRGlhbG9ndWUgWU1DQSBoYXZlIHJlY2VpdmVkIG92ZXIgNzUwIHJlZmVycmFscyBmb3IgZmFjZSB0byBmYWNlIGNvdW5zZWxsaW5nIG92ZXIgdGhlIHllYXIgYW5kIDIsMDAwIHlvdW5nIHBlb3BsZSBoYXZlIHJlZ2lzdGVyZWQgdG8gdXNlIEtvb3RoIFtodHRwOi8vd3d3Lm5ocy51ay9jb25kaXRpb25zL29ubGluZS1tZW50YWwtaGVhbHRoLXNlcnZpY2VzL1BhZ2VzL2tvb3RoLmFzcHhdWzBdIC4gVGhlIHNlcnZpY2UgcmVjZWl2ZXMgYXJvdW5kIDEsMjUwIGxvZ2lucyBldmVyeSBtb250aCBhbmQgdGhyZWUgcXVhcnRlcnMgb2YgdGhlc2UgYXJlIG91dHNpZGUgb2Ygc2Nob29sIGhvdXJzLlxcblxcbiogT3ZlciA3NTAgbWVtYmVycyBvZiB0aGUgY2hpbGRyZW4gYW5kIHlvdW5nIHBlb3BsZSB3b3JrZm9yY2UgaGF2ZSB0YWtlbiBwYXJ0IGluIHRyYWluaW5nIG9uIGVtb3Rpb25hbCB3ZWxsYmVpbmcgYW5kIHRoZSBtZW50YWwgaGVhbHRoIHByb2dyYW1tZSBvdmVyIHRoZSBwYXN0IHllYXIuXFxuXFxuKiBUaGVyZSBoYXZlIGJlZW4gb2NjYXNpb25zIHdoZW4gU1BGVCBoYXZlIG5vdCBtZXQgdGhlIHRhcmdldCBvZiA5NSUgb2YgY2hpbGRyZW4gYW5kIHlvdW5nIHBlb3BsZSByZWNlaXZpbmcgYXMgc2VydmljZSB3aXRoaW4gNCB3ZWVrcy4gVGhlc2UgaGF2ZSBiZWVuIGRpc2N1c3NlZCBhbmQgYWRkcmVzc2VkIHdpdGggY29tbWlzc2lvbmVycyBhbmQgaGF2ZSBiZWVuIG9mdGVuIGFzc29jaWF0ZWQgdG8gZGVtYW5kIGFuZCBjYXBhY2l0eSBpc3N1ZXMuXFxuXFxuWzBdOiBodHRwOi8vd3d3Lm5ocy51ay9jb25kaXRpb25zL29ubGluZS1tZW50YWwtaGVhbHRoLXNlcnZpY2VzL1BhZ2VzL2tvb3RoLmFzcHhcIn1dLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIkluY3JlYXNlIHRoZSBudW1iZXIgb2YgY2hpbGRyZW4gd2l0aCBhIG1lbnRhbCBoZWFsdGggcmVmZXJyYWwgcmVjZWl2aW5nIGFuIGFzc2Vzc21lbnQgd2l0aGluIGZvdXIgd2Vla3Mgb2YgcmVmZXJyYWxcIixcInVzZV9jdXN0b21fc3VidGl0bGVcIjp0cnVlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJUaGlzIGdvYWwgaXMgbWVhc3VyZWQgYnkgdHJhY2tpbmcgdGhlIHBlcmNlbnRhZ2Ugb2YgY2hpbGRyZW4gd2l0aCBhIG1lbnRhbCBoZWFsdGggcmVmZXJyYWwgcmVjZWl2aW5nIGFuIGFzc2Vzc21lbnQgd2l0aGluIGZvdXIgd2Vla3Mgb2YgcmVmZXJyYWwgXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTMtMDMtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiJSIsInRhcmdldF90eXBlIjoicmVsYXRpdmUiLCJ0YXJnZXRfZGVsdGEiOjAsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjk1LCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6ImM3cmktOXU4ayJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI+In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDEzfSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9LFwiYWN0aW9uX3R5cGVcIjpcIm1haW50YWluXCIsXCJtYWludGFpbl90eXBlXCI6XCI+XCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9fSxcInN0YXJ0XCI6XCIyMDE0LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE0LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwidGhlIHBlcmNlbnRhZ2Ugb2YgcGVvcGxlIHdpdGggYSBtZW50YWwgaGVhbHRoIHJlZmVycmFsIHJlY2VpdmluZyBhbiBhc3Nlc3NtZW50IHdpdGhpbiBmb3VyIHdlZWtzXCIsXCJpc19idXJuZG93bl9kaXNhYmxlZFwiOmZhbHNlLFwiaXNfdHJlbmRsaW5lX2Rpc2FibGVkXCI6dHJ1ZX0ifSwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMTA6MTg6MjkuNDYwWiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDEwOjE4OjI5LjQ2MFoiLCJ0YXJnZXRfdG9sZXJhbmNlIjoxMCwiaWQiOiJrZmc2LTNodTIifSwicmVsYXRlZF9tZWFzdXJlcyI6W10sImJhc2VfZGFzaGJvYXJkIjoiNTc0ci1oNW5jIiwidXBkYXRlZF9hdCI6IjIwMTgtMDctMjNUMTA6MTg6MzUuODYwWiIsImNyZWF0ZWRfYXQiOiIyMDE4LTA3LTIzVDEwOjE4OjI5LjU5NFoiLCJ2ZXJzaW9uIjoiMjAxOC0wNy0yM1QxMDoxODozNS44NjBaIiwiY3JlYXRlZF9ieSI6Ijc5N2ktNnI5ZyJ9LHsiaWQiOiJ1emJoLWZiYm0iLCJuYW1lIjoiQ2hpbGRyZW4ncyBIZWFsdGh5IFdlaWdodCIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRocm91Z2ggaXRzIFB1YmxpYyBIZWFsdGggcm9sZSwgV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgcHJvdmlkZXMgbGVhZGVyc2hpcCB0byBhIGNvdW50eSB3aWRlIGhlYWx0aHkgd2VpZ2h0IG5ldHdvcmsgd2l0aCByZXByZXNlbnRhdGl2ZXMgZnJvbSBtYW55IG9yZ2FuaXNhdGlvbnMgcmVndWxhcmx5IGF0dGVuZGluZy4gVGhlIG5ldHdvcmsgYWN0cyBhcyBhIHN1cHBvcnQgZm9yIGtleSBsb2NhbCBwYXJ0bmVyIG9yZ2FuaXNhdGlvbnMgZGVsaXZlcmluZyB0aGUgYWN0aW9ucyBpbiB0aGUgV2VzdCBTdXNzZXggSGVhbHRoeSB3ZWlnaHQgb3BlcmF0aW9uYWwgcGxhbiAyMDE0LTE3ICh0aGUgcmVmcmVzaCBvZiB0aGUgZWFybGllciByZXBvcnQg4oCYQ3JpdGljYWwgTWFzc+KAmSkuIEJvdGggcHJldmVudGlvbiBhbmQgbWFuYWdlbWVudCBvZiBvdmVyd2VpZ2h0IGFuZCBvYmVzZSBmb3IgYWxsIGFnZSBncm91cHMgZmFsbCB3aXRoaW4gc2NvcGUgZm9yIHRoZSBuZXR3b3JrLiBUaGUgbmV0d29yayBvdmVyc2VlcyBhbmQgbWFpbnRhaW5zIHBhdGh3YXlzIChhY3Jvc3MgYSBudW1iZXIgb2Ygc2VwYXJhdGUgY29tbWlzc2lvbmluZyBhbmQgcHJvdmlkZXIgb3JnYW5pc2F0aW9ucykgdG8gaW1wcm92ZSBob3cgZWZmZWN0aXZlbHkgdGhleSBtZWV0IHRoZSBuZWVkcyBvZiBmYW1pbGllcywgY2hpbGRyZW4gYW5kIHlvdW5nIHBlb3BsZS4gVGhpcyBpbmNsdWRlcyB0cmFpbmluZyBmcm9udGxpbmUgc3RhZmYgdG8gaWRlbnRpZnkgaW5kaXZpZHVhbHMgaW4gbmVlZCBvZiBhZGRpdGlvbmFsIHN1cHBvcnQgYW5kIHJlZmVycmFsLlxcblxcbk5hdGlvbmFsIENoaWxkIE1lYXN1cmVtZW50IFByb2dyYW1tZSBkYXRhIHByb3ZpZGUgYSBwcm94eSBmb3IgcG9wdWxhdGlvbiBwcmV2YWxlbmNlIG9mIGhlYWx0aHkgd2VpZ2h0LCBvdmVyd2VpZ2h0IGFuZCBvYmVzZSBpbiB0d28gc2Nob29sIHllYXIgZ3JvdXBzIGFuZCBhcmUgcmVmcmVzaGVkIGFubnVhbGx5LlxcblxcbiBcXG5cXG5UaGUgbmF0aW9uYWwgQ2hpbGQgb2Jlc2l0eSBhY3Rpb24gcGxhbiB3YXMgcHVibGlzaGVkIGluIEF1Z3VzdCAyMDE2LiBJdCBpZGVudGlmaWVzIDE0IGFjdGlvbnMgZm9yIG5hdGlvbmFsIG9yIGxvY2FsIHByb2dyZXNzaW9uLiBbaHR0cHM6Ly93d3cuZ292LnVrL2dvdmVybm1lbnQvcHVibGljYXRpb25zL2NoaWxkaG9vZC1vYmVzaXR5LWEtcGxhbi1mb3ItYWN0aW9uXVswXS4gSXQgcGxhY2VzIGEgbG90IG9mIGVtcGhhc2lzIG9uIHRoZSByb2xlIG9mIHNjaG9vbHMgdG8gcHJvbW90ZSBwaHlzaWNhbCBhY3Rpdml0eSBhbmQgaGVhbHRoeSBlYXRpbmcuXFxuXFxuXFxuXFxuWzBdOiBodHRwczovL3d3dy5nb3YudWsvZ292ZXJubWVudC9wdWJsaWNhdGlvbnMvY2hpbGRob29kLW9iZXNpdHktYS1wbGFuLWZvci1hY3Rpb25cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMg4oCTIERlY2VtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuKipOQ01QIEZpZ3VyZXMgUHVibGlzaGVkKipcXG5cXG5OSFMgRGlnaXRhbCBwdWJsaXNoZWQgdGhlIG1vc3QgcmVjZW50IE5hdGlvbmFsIENoaWxkaG9vZCBNZWFzdXJlbWVudCBQcm9ncmFtbWUgKE5DTVApIGZpZ3VyZXMgaW4gT2N0b2JlcjsgdGhlc2UgYXJlIHRoZSByZXN1bHRzIGZvciB0aGUgMjAxNi8xNyBhY2FkZW1pYyB5ZWFyLiBJbiBXZXN0IFN1c3NleCwgdGhlIG51bWJlciBvZiBjaGlsZHJlbiB3aG8gYXJlIGNsYXNzaWZpZWQgYXMgb2Jlc2UgaW4gWWVhciA2IGhhcyBiZWVuIGNvbnNpc3RlbnRseSBsb3dlciB0aGFuIHRoZSBmaWd1cmVzIGZvciBFbmdsYW5kIHNpbmNlIDIwMDYvMDcsIGFuZCB0aGlzIHJlbWFpbnMgdGhlIGNhc2UgZm9yIDIwMTYvMTcuSW4gWWVhciA2LCAyOC42JSBvZiBjaGlsZHJlbiBpbiBXZXN0IFN1c3NleCB3ZXJlIGNsYXNzaWZpZWQgYXMgb3ZlcndlaWdodCBvciBvYmVzZSwgYSBkZWNyZWFzZSBmcm9tIDIwMTUvMTYuIDcwLjMlIG9mIFllYXIgNiBjaGlsZHJlbiB3ZXJlIGNsYXNzaWZpZWQgYXMgaGVhbHRoeSB3ZWlnaHQsIGhpZ2hlciB0aGFuIHRoZSBwcmV2YWxlbmNlIGZvciBib3RoIHRoZSBTb3V0aCBFYXN0IGFuZCBFbmdsYW5kLiBUaGlzIHBlcmNlbnRhZ2UgaXMgaGlnaGVyIHRoYW4gdGhlIHByZXZpb3VzIHRocmVlIHllYXJzLCBhbmQgdGhlIHBlcmNlbnRhZ2Ugb2YgY2hpbGRyZW4gY2xhc3NpZmllZCBhcyBoZWFsdGh5IHdlaWdodCBmb3IgWWVhciA2IGhhcyBiZWVuIGNvbnNpc3RlbnRseSBoaWdoZXIgdGhhbiBFbmdsYW5kIHNpbmNlIDIwMDYvMDcuXFxuXFxuIFxcblxcbjcwLjMlIHBsYWNlcyBXZXN0IFN1c3NleCBhdCBncmVlbiBjb21wYXJlZCB0byB0YXJnZXQuXFxuXFxuIFxcblxcblRoZSBwcmV2YWxlbmNlIG9mIG9iZXNpdHkgd2FzIGxvd2VzdCBpbiBIb3JzaGFtICgxMC4yJSkgYW5kIE1pZCBTdXNzZXggKDEyLjIlKSBidXQgaGlnaGVzdCBpbiBBcnVuICgxOS44JSkuXFxuXFxuIFxcblxcblRoZSBwcmV2YWxlbmNlIG9mIGNoaWxkcmVuIGluIFllYXIgNiAoZGVyaXZlZCBmcm9tIHRoZSBwb3N0Y29kZSBvZiB0aGUgc2Nob29sKSBjbGFzc2lmaWVkIGFzIG92ZXJ3ZWlnaHQgYW5kIG9iZXNlIGNvbWJpbmVkLCBhcyBhIHBlcmNlbnRhZ2UuXFxuXFxuKipUaGUgV2VzdCBTdXNzZXggQXBwcm9hY2gqKlxcblxcbiBcXG5cXG5XaXRoaW4gV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwsIHRoZSBJbnRlZ3JhdGVkIFByZXZlbnRpb24gYW5kIEVhcmxpZXN0IEhlbHAgKElQRUgpIHNlcnZpY2UgKENvdW5jaWwgYW5kIEhlYWx0aHkgQ2hpbGQgUHJvZ3JhbW1lIHNlcnZpY2UgLSBIQ1ApIGFpbXMgdG8gcHJldmVudCBhbmQgcmVkdWNlIGV4Y2VzcyB3ZWlnaHQgdGhyb3VnaCBib3RoIHVuaXZlcnNhbCBhbmQgdGFyZ2V0ZWQgYXBwcm9hY2hlcyBhdCBjb21tdW5pdHkgYW5kIGluZGl2aWR1YWwgbGV2ZWwuXFxuXFxuVGhlIHdvcmsgYnkgSVBFSCB0byByZWR1Y2UgY2hpbGRob29kIG9iZXNpdHkgaXMgYmVpbmcgZGV2ZWxvcGVkIGFzIHBhcnQgb2YgYSB3aWRlciAwLTE5LzI1IGludGVncmF0ZWQgc2VydmljZSBvZmZlci4gRXZpZGVuY2Ugc3VnZ2VzdHMgdGhhdCB3ZSBuZWVkIHRvIHRyeSBhbmQgZm9jdXMgZWZmb3J0cyBvbiByZWR1Y2luZyB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIGFuZCB5b3VuZyBwZW9wbGUgYmVjb21pbmcgb3ZlcndlaWdodCAoU3RlZmF0ZXIgZXQgYWwsIDIwMTMpLiBBIE1ha2luZyBFdmVyeSBDb250YWN0IENvdW50IChNRUNDKSBhcHByb2FjaCB3aWxsIGJlIHVzZWQgdG8gcHJvbW90ZSBoZWFsdGh5IGVhdGluZyBhbmQgbGlmZXN0eWxlcyBjb25zaXN0ZW50bHkgaW4gYm90aCB1bml2ZXJzYWwgYW5kIHRhcmdldGVkIHdvcmsgd2l0aCBjaGlsZHJlbiBhbmQgZmFtaWxpZXMuVGhlIG1vZGVsIGJlbG93IHByZXNlbnRzIHRoZSBvZmZlciBmcm9tIElQRUggdG8gY2hpbGRyZW4sIHlvdW5nIHBlb3BsZSBhbmQgZmFtaWxpZXMgYXQgZWFjaCBsZXZlbCBvZiBzZXJ2aWNlIGFjcm9zcyB0aGUgV2VzdCBTdXNzZXggY29udGludXVtIG9mIG5lZWQuIE90aGVyIHN1cHBvcnRpdmUgY29tbXVuaXR5IHNlcnZpY2VzIC8gb3JnYW5pc2F0aW9ucyBhcmUgYWxzbyByZWZsZWN0ZWQuXFxuXFxuQ2hhbmdlNExpZmVcXG5cXG5BIG5ldyBDaGFuZ2U0IExpZmUgY2FtcGFpZ24gbGF1bmNoaW5nIGluIEphbnVhcnkgMjAxOCBhaW1zIHRvIGhlbHAgZmFtaWxpZXMgY2hvb3NlIGhlYWx0aGllciBzbmFja3MuIEl0IHdpbGwgaW50cm9kdWNlIHRoZSBuZXcgc2ltcGxlIHRpcCBvZiDigJxMb29rIGZvciAxMDAgY2Fsb3JpZSBzbmFja3MsIHR3byBhIGRheSBtYXjigJ1UaGUgY2FtcGFpZ24gd2lsbCBiZSBzdXBwb3J0ZWQgYnkgdGhlIENoYW5nZTRMaWZlIOKAnCBGb29kIHNjYW5uZXIgQXBw4oCdIHdoaWNoIHdpbGwgc2hvdyBob3cgbXVjaCBzdWdhciwgc2FsdCBhbmQgc2F0dXJhdGVkIGZhdCBpcyBpbnNpZGUgc25hY2sgZm9vZHMgYW5kIGRyaW5rcyBUaGlzIGFwcCB3aWxsIHJlcGxhY2UgdGhlIHByZXZpb3VzIEJlIEZvb2QgU21hcnQgYXBwIGFuZCB3aWxsIHByb3ZpZGUgY2Fsb3JpZSBpbmZvcm1hdGlvbiwgd2lsbCBoYXZlIGFuIGltcHJvdmVkIHJlc3VsdHMgbGF5b3V0IGFuZCBjb25zdGFudGx5IGltcHJvdmluZyBwcm9kdWN0IGRhdGEuXFxuXFxuUHVibGljIEhlYWx0aCBpcyB3b3JraW5nIHdpdGggaXRzIGNvbGxlYWd1ZXMgaW4gV2VzdCBTdXNzZXggTGlicmFyaWVzIGFuZCBsZWlzdXJlIGNlbnRyZXMgZnJvbSB0aGUgZW5kIG9mIEphbnVhcnkgdG8gcHJvbW90ZSB0aGUgRmFtaWx5IFNuYWNrIGNoYWxsZW5nZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5FYXQgUmlnaHQgU3RheSBCcmlnaHQgKCBFUlNCKSBpcyBkZWxpdmVyZWQgdG8gc2Nob29scyBpbiBXZXN0IFN1c3NleCBhcyBwYXJ0IG9mIHRoZSBzY2hvb2wgbWVhbCBjb250cmFjdCB3aXRoIENoYXJ0d2VsbHMuIEl0IGFpbXMgdG8gaW5jcmVhc2UgdXB0YWtlIG9mIHRoZSBzY2hvb2wgbWVhbHMgYW5kIGltcGFjdCB1cG9uIG9iZXNpdHkgcmF0ZXMgYW5kIHRoZSBhdHRhaW5tZW50IGdhcCBiZXR3ZWVuIHRoZSBtb3N0IGFkdmFudGFnZWQgYW5kIGRpc2FkdmFudGFnZWQuIEl0IGlzIGEgRnVuIGluIHRvIEZvb2QgcHJvZ3JhbW1lIHRhY2tsaW5nIG51dHJpdGlvbiBlZHVjYXRpb24gd2l0aCBhIHdob2xlIHNjaG9vbCBhcHByb2FjaC5cXG5cXG5UaGUgZmlyc3QgeWVhciBvZiB0aGUgcHJvZ3JhbW1lIGluIFdlc3QgU3Vzc2V4IGhhcyBzZWVuIDMyIHNjaG9vbHMgZW5nYWdlIHdpdGggRVJTQiB3aXRoIDY4IGRpZmZlcmVudCB3b3Jrc2hvcCBzZXNzaW9ucyBydW4uIFR3ZWx2ZSBzY2hvb2xzIGhhdmUgaGFkIHJlcGVhdCB2aXNpdHMuIEFwcHJveCAxLDkwNCBjaGlsZHJlbiBoYXZlIHRha2VuIHBhcnQgaW4gdGhlIHdvcmtzaG9wcyBhbmQgcGFyZW50IGV2ZW50cyBoYXZlIGFsc28gYmVlbiBoZWxkIDU3IHRpbWVzLlxcblxcbkZlZWRiYWNrIGZyb20gdGhlIHdvcmtzaG9wcyBpbiBvbmUgc2Nob29sIGlzIGJlbG93LlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlJlY2VwdGlvbiBUZWFjaGVyKiog4oCTIOKAmFdlIGluIHBhcnRpY3VsYXIgaGFkIGEgdmVyeSBwb3NpdGl2ZSBleHBlcmllbmNlIGZvciBvbmUgYm95IHdobyBoYXMgYW4gaXNzdWUgd2l0aCBlYXRpbmcgdGhhdCBjb21lcyB3aXRoIGFzc29jaWF0ZWQgaGVhbHRoIGlzc3Vlcy4gSGUgd2FzIGhhcHB5IHRvIHRyeSBzb21lIG9mIHRoZSBmcnVpdCBhbmQgc2FsYWQgdGhhdCBoZSBwcmV2aW91c2x5IGhhcyBub3Qgd2FudGVkIHRvIHRyeS4gQXMgYSB3aG9sZSBjbGFzcyB3ZSB3ZXJlIHZlcnkgcHJvdWQgb2YgdGhpcyBhY2hpZXZlbWVudCBhbmQgaGUgcmVjZWl2ZWQgYSAnd293JyBtb21lbnQgY2VydGlmaWNhdGUgdG8gdGFrZSBob21lIHRvIGhpcyBtdW0gd2l0aCBwaG90b3Mgb2Ygd2hhdCBoZSBoYWQgZG9uZSB0aGF0IGRheS4gV2UgZmVlbCBoZSB3YXMgaGFwcHkgdG8gdHJ5IHRoZXNlIGZvb2RzIGFzIGl0IHdhcyBkb25lIGluIGEgcmVsYXhlZCBhbmQgZnVuIG1hbm5lci4gSGUgaGFzIG5vdyBiZWVuIGEgbGl0dGxlIG1vcmUgd2lsbGluZyB0byB0cnkgbW9yZSBuZXcgZm9vZHMgaW4gY2xhc3MgYXQgc25hY2sgdGltZS7igJlcXG5cXG4gXFxuXFxuKipSZWNlcHRpb24gVGVhY2hlcioqIOKAkyDigJhUaGUgY2hpbGRyZW4gaGFkIGEgbG92ZWx5IHRpbWUgd2l0aCB5b3Vyc2VsZiBhbmQgeW91ciBjb2xsZWFndWUgbGVhcm5pbmcgYWJvdXQgaGVhbHRoeSBlYXRpbmcgYW5kIHRoZSBvcHBvcnR1bml0eSBmb3Igc29tZSBmb29kIHRhc3RpbmcuIFRoaXMgd2FzIGEgbG92ZWx5IGV4cGVyaWVuY2UgZm9yIHRoZSBjaGlsZHJlbiB0byB0cnkgYSB2YXJpZXR5IG9mIGZydWl0IG9yIHNhbGFkIHRoYXQgdGhleSBtYXkgbm90IGhhdmUgdHJpZWQgYmVmb3JlLuKAmSAtXFxuXFxuIFxcblxcbioqWWVhciAyIFRlYWNoZXIqKiDigJMg4oCYSXTigJlkIGJlIHdvbmRlcmZ1bCB0byBoYXZlIHlvdSBpbiBhZ2FpbiBmb3IgYSBkaWZmZXJlbnQgdG9waWMgd2l0aCB0aGUgY2hpbGRyZW4uIEkga25vdyB0aGF0IG1hbnkgaW4gbXkgY2xhc3MgZG8gc3RydWdnbGUgdG8gZWF0IHRoZSB2ZWdldGFibGVzIGJ1dCB0aGV5IGFsc28gb25seSBrbm93IGFib3V0IHRoZSB0eXBpY2FsIHZlZ2V0YWJsZXMuIFRoZXkgd291bGRu4oCZdCBrbm93IHdoYXQgYSByaHViYXJiIGlzIGZvciBleGFtcGxlIGFuZCBpdCBzZWVtcyBzdWNoIGEgc2hhbWUu4oCZXFxuXFxuKipQYXJlbnQqKiDigJMg4oCYSeKAmW0gYWN0dWFsbHkgcmVhbGx5IHN1cnByaXNlZCB0aGF0IHRoZXNlIGNvbnRhaW4gdGhhdCBtdWNoIHN1Z2FyLiBXaHkgaXMgaXQgYWxsb3dlZD8gTXkgaHVzYmFuZCB3aWxsIGJlIGhvcnJpZmlmZWQuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNUNBQkNGQTEtODdGRS00MjIzLUIyQUItNjcxNzY5NzZFRERCXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvMzk5RERDQkYtNDYwNy00QkFDLTk3MTctRjk4NjI4NEIyQzRBXCJ9XV19LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSBFYXQgUmlnaHQgU3RheSBSaWdodCB3b3Jrc2hvcHMgaW4gV2VzdCBTdXNzZXggc3VwcG9ydCB0aGUgY291bnR54oCZcyBzdWdhciByZWR1Y3Rpb24gcHJvZ3JhbW1lLlxcblxcbioqWWVhciA1IFB1cGlsKirigJMg4oCYSSB0aGluayBJIGVhdCB0b28gbXVjaCBjaG9jb2xhdGUgYWZ0ZXIgRWFzdGVyIEkgd2FudCB0byB0cnkgc3RvcHBpbmcgZWF0aW5nIGl0IGJ1dCBJIHdpbGwgaGF2ZSBhbGwgbXkgZWFzdGVyIGVnZ3PigJkuIEFmdGVyIGRpc2N1c3Npb24gd2l0aCB0aGUgRVJTQiBjb29yZGluYXRvciBhbmQgY2xhc3NtYXRlcyB0aGUgY2hpbGQgb3B0ZWQgdG8gdHJ5IGdpdmluZyB1cCBjaG9jb2xhdGUgZm9yIGxlbnQuXFxuXFxuKipZZWFyIDUgVGVhY2hlcioq4oCT4oCYSXTigJlzIGdyZWF0IHRvIHRlYWNoIHRoZW0gYWxsIGFib3V0IHdoYXQgY2FuIGhhcHBlbiBsYXRlciBvbiBpbiBsaWZlIHdpdGggaGVhcnQgZGlzZWFzZSBhbmQgZGlhYmV0ZXMuIFRoZXkgb2Z0ZW4ganVzdCB0aGluayBhYm91dCB0aGUgZWZmZWN0IG9uIHRoZWlyIHRlZXRoIGJlY2F1c2UgaXTigJlzIHNvbWV0aGluZyB0aGV5IGNhbiBwaHlzaWNhbGx5IHNlZSBhbmQgcHJvYmFibHkgaGF2ZSBzZWVuIG9uIGNoaWxkcmVuIHRoZWlyIGFnZS7igJlcXG5cXG4qKlllYXIgNiBQdXBpbCoq4oCTIOKAmE15IGRhZCBkcmlua3MgdGhpcyBxdWl0ZSBhIGxvdCAoTW9uc3RlciBFbmVyZ3kgRHJpbmspIGFuZCBpdOKAmXMgdHdpY2UgdGhlIGFtb3VudCBvZiBzdWdhciBoZeKAmXMgYWxsb3dlZC4gSeKAmW0gZ29pbmcgdG8gdGVsbCBoaW3igJkuXFxuXFxuKipZZWFyIDUgUHVwaWwqKuKAkyDigJhZb3Ugc2FpZCB0b21hdG8ga2V0Y2h1cCB3YXMgcmVhbGx5IHN1Z2FyeTsgaXMgaXQgd29yc2UgdGhhbiB0aGVzZSBkcmlua3M/4oCZIEVSU0IgY29vcmRpbmF0b3IgZW5jb3VyYWdlZCB0aGUgcHVwaWwgdG8gbG9vayBhdCB0aGUgbGFiZWxzIG9mIGhpcyBib3R0bGUgYXQgaG9tZS4uIO+Ct1xcblxcbioqVGVhY2hpbmcgQXNzaXN0YW50KirigJMg4oCYSSBoYXZlIG9uZSBvZiB0aG9zZSBtaWxrc2hha2VzIGluIG15IGZyaWRnZS4gSSBtaWdodCB0aHJvdyBpdCBvdXQgbm934oCZLiBGdXR1cmUgY29udmVyc2F0aW9ucyB3aXRoIFRBIHJldmVhbGVkIHRoZSBjaGlsZHJlbiByZW1pbmRlZCB0aGUgVEEgdG8gdGhyb3cgb3V0IHRoZSBkcmluay5cXG5cXG5MaXZpbmcgU3RyZWV0cyBkZWxpdmVyIFdhbGsgT25jZSBhIFdlZWsgcHJvZ3JhbW1lcyBpbiBzY2hvb2xzIGluIFdlc3QgU3Vzc2V4LiBUaGV5IGhhdmUgYSBsaXN0IG9mIHNjaG9vbHMgdG8gdGFyZ2V0LCB0aGF0IGZpdCB3aXRoIHRoZSBXZXN0IFN1c3NleCBTdHJhdGVnaWMgZGV2ZWxvcG1lbnQgc2l0ZXMsIHBsdXMgcHVibGljIGhlYWx0aCBwcmlvcml0eSBhcmVhcy4gNSBvdXQgb2YgMTAgbmV3IHByaW1hcnkgc2Nob29scyBhcmUgZW5yb2xsZWQgdG8gV09XLCB0aGUgeWVhci1yb3VuZCB3YWxrIHRvIHNjaG9vbCBjaGFsbGVuZ2UuXFxuXFxuVGhlc2UgYXJlOlxcblxcbkNoaWRoYW0gUGFyb2NoaWFsIFByaW1hcnlcXG5cXG5Bc2h1cnN0IFdvb2QgUHJpbWFyeSwgRWFzdCBHcmluc3RlYWRcXG5cXG5EdXJyaW5ndG9uIEp1bmlvciBTY2hvb2xcXG5cXG5TaGVkZGluZ2RlYW4gUHJpbWFyeSwgQnVyZ2VzcyBIaWxsXFxuXFxuSGVlbmUgUHJpbWFyeSBTY2hvb2wsIFdvcnRoaW5nXFxuXFxu4oCmYWxsIGlmIHdoaWNoIGFyZSBvbiB0aGUgdGFyZ2V0ZWQgbGlzdCBvZiBleHBhbmRpbmcgc2Nob29scywgb3IgaGF2ZSB3b3JrcyBzY2hlZHVsZWQuIEZvdXIgb2YgdGhlc2Ugc2Nob29scyBoYXZlIGxhdW5jaGVkIGFuZCBhcmUgdXNpbmcgVHJhdmVsIFRyYWNrZXIgdG8gbG9nIHRoZWlyIGRhaWx5IGpvdXJuZXlzIHRvIHNjaG9vbC5cXG5cXG4zIHN0cmVldCBhdWRpdHMgYXJlIHBsYW5uZWQsIDIgb2YgdGhlbSB3aXRoIFBhcmtsYW5kcyBSZXNpZGVudHMgQXNzb2NpYXRpb24gaW4gQ2hpY2hlc3RlciwgYSBsYXJnZSBob3VzaW5nIGVzdGF0ZSB3aXRoIGFyb3VuZCAxLDUwMCByZXNpZGVuY2VzLCBvbiB0aGUgZWRnZSBvZiB0aGUgY2l0eSBjZW50cmUgd2l0aCAyIHByaW1hcnkgc2Nob29scywgYSBzZWNvbmRhcnkgc2Nob29sLCBhbiBOSFMgZG9jdG9ycyBzdXJnZXJ5IGFuZCBhIHBhcmFkZSBvZiBzaG9wcyB3aXRoaW4gaXRzIGJvdW5kYXJ5LiBXZSB3aWxsIHJ1biAyIGF1ZGl0cywgYXQgZGlmZmVyZW50IHRpbWVzIG9mIHllYXIsIGFuZCBhcmUgdGFsa2luZyB0byBCaXNob3AgTHVmZmEgU2Nob29sLCBQYXJrbGFuZHMgQ29tbXVuaXR5IFByaW1hcnkgYW5kIENlbnRyYWwgU2Nob29sIGFib3V0IHRoZWlyIHBvdGVudGlhbCBpbnZvbHZlbWVudCBpbiB0aGUgYXVkaXQgcHJvY2Vzcy4gV2UgaG9wZSB0byBzaW11bHRhbmVvdXNseSBpbnZvbHZlIHJlc2lkZW50cyBhcm91bmQgdGhlIGVzdGF0ZSB3aG8gd2lsbCB1bmRlcnRha2UgdGhlaXIgb3duIOKAmHN0cmVldCBzY2FsZSBzdXJ2ZXlz4oCZIHRvIGVuc3VyZSB0aGF0IHRoZSBhdWRpdCBwcm9jZXNzIGlzIGFzIGluY2x1c2l2ZSBhbmQgaG9saXN0aWMgYXMgcG9zc2libGUuIFRoZSBSZXNpZGVudHMgQXNzb2NpYXRpb24gd2lsbCB0aGVuIGJlIGFibGUgdG8gbWFwIHRoZSByZXN1bHRzIHRvIGluZm9ybSBwcmlvcml0aWVzIGZvciB0aGUgZXN0YXRlLiBUaGlzIHdpbGwgYmUgYSB0cmlhbCBhcHByb2FjaCBmb3IgTGl2aW5nIFN0cmVldHMgYW5kIHdpbGwgYmUgdmVyeSBpbnRlcmVzdGluZyB0byBzZWUgdGhlIG91dGNvbWVzIGFuZCBob3cgaXQgY2FuIGV2b2x2ZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuU3VnYXIgcmVkdWN0aW9uIHByb2dyYW1tZSAtIEZ1cnRoZXIgc3VnYXIgcmVkdWN0aW9uIGhhcyBvY2N1cnJlZCBpbiB0aGUgc2Nob29sIG1lYWxzIHByb3ZpZGVkIHRocm91Z2ggdGhlIENoYXJ0d2VsbCBjb250cmFjdCBhbmQgdGhleSBub3cgY29udGFpbiA2NSUgbGVzcyBzdWdhciB0aGFuIHRoZXkgZGlkIHR3byBhbmQgYSBoYWxmIHllYXJzIGFnby4gSW4gdG90YWwgMzAsMDAwIFdlc3QgU3Vzc2V4IGNoaWxkcmVuIHBlciBkYXkgYXJlIGJlbmVmaXRpbmcuIFRoZSBkYWlseSBzdWdhciBjb25zdW1wdGlvbiBoYXMgcmVkdWNlZCBmcm9tIHRoZSAxOC41ZyB0byA2LjZnIHBlciBjaGlsZC5cXG5cXG5UaGUgRXhlY3V0aXZlIENoaWxkIE9iZXNpdHkgVGFzayBhbmQgRmluaXNoIEdyb3VwIChURkcpIHdoaWNoIGNvbXBsZXRlZCBpbiBNYXJjaCAyMDE3IG1hZGUgYSBudW1iZXIgb2YgcmVzb2x1dGlvbnMgaW5jbHVkaW5nOi1cXG5cXG4xLiBEZXZlbG9wIGEgQ291bnR5IENvdW5jaWwgY2hhcnRlciBzdXBwb3J0aW5nIHNpZ251cCB0byB0aGUgbmF0aW9uYWwgaGVhbHRoeSByYXRpbmcgb2Ygc2Nob29scyBzY2hlbWUsIGluY2x1ZGluZyBhIGxvY2FsIGF3YXJkIHNjaGVtZSB0byBlbmNvbXBhc3MgYWxsIFdlc3QgU3Vzc2V4IG51cnNlcmllcywgc2Nob29scyAoIGluY2x1ZGluZyBzcGVjaWFsIHNjaG9vbHMpLCBsb29rZWQgYWZ0ZXIgY2hpbGRyZW4sY2hpbGRyZW4gYW5kIGZhbWlseSBjZW50cmVzIGFuZCBpbmNsdWRpbmcgbGVpc3VyZSBjZW50cmVzIHdoZXJlIGFwcHJvcHJpYXRlLlxcblxcbjEuIFRoYXQgd2hlbiB0aGV5IGJlY29tZSBhdmFpbGFibGUsIHRoZSBuYXRpb25hbCBndWlkZWxpbmVzIGZvciBpbXBsZW1lbnRhdGlvbiBvZiBoZWFsdGhpZXIgZm9vZCBpbiBsZWlzdXJlIGNlbnRyZXMgYXJlIHByb3ZpZGVkIHRvIHRoZSBDYWJpbmV0IE1lbWJlciBhbmQgZ3VpZGFuY2UgYW5kIHN1cHBvcnQgaXMgb2ZmZXJlZCB0byB0aGUgRGlzdHJpY3QgYW5kIEJvcm91Z2hzLCBhcyBjb21taXNzaW9uZXJzIG9mIGxlaXN1cmUsIHRvIGhlbHAgdGhpcyBzZWN0b3IgYWNoaWV2ZSB0aGVzZSBzdGFuZGFyZHMuXFxuXFxuMS4gVG8gbWFpbnRhaW4gYSBsb25nIHRlcm0gY29tbWl0bWVudCB0byB0aGUgQ291bnR5IENvdW5jaWwgQ2hhcnRlciBpbmNsdWRpbmcgYSDigJxoZWFsdGggaW1wYWN0IGFzc2Vzc21lbnTigJ10byBlbnN1cmUgdGhhdCBhbnkgY2hhbmdlcyB0byBwbGFubmluZyBhbmQgcG9saWN5IHdpdGhpbiBlYWNoIGVzdGFibGlzaG1lbnQsIGNvbnNpZGVycyB0aGUgd2lkZXIgaW1wYWN0IG9uIHRoZSBoZWFsdGggYW5kIHdlbGxiZWluZyBvZiB5b3VuZyBwZW9wbGUuXFxuXFxuMS4gVGhlIFB1YmxpYyBIZWFsdGggVGVhbSBhcnJhbmdlIGZvciBhIGdyb3VwIG9mIHlvdW5nIHBlb3BsZSB0byB0ZXN0IGFuZCBjb21tZW50IG9uIHRoZSBQSEUvU0FQSE5BIGFwcCBvbmNlIGl0IGlzIGxhdW5jaGVkLCBhbG9uZ3NpZGUgb3RoZXIgYXBwcyB3aGljaCBhZGRyZXNzIGhlYWx0aHkgZWF0aW5nIGhhYml0cyBhbmQgcGh5c2ljYWwgYWN0aXZpdHksIHRvIGV2YWx1YXRlIHdoZXRoZXIgb25lIHNob3VsZCBiZSByZWNvbW1lbmRlZCBieSB0aGUgVGVhbSB0byBXZXN0IFN1c3NleCBTY2hvb2xzLlxcblxcbjEuIFRoZSBQdWJsaWMgSGVhbHRoIFRlYW0gY29vcmRpbmF0ZSBjb21tdW5pY2F0aW9uIGFuZCBjbG9zZXIgd29ya2luZyB3aXRoIHNjaG9vbHMgdG8gaGVscCBpbmNyZWFzZSBkZW1hbmQgZm9yIHRoZSBhdmFpbGFibGUgQmlrZSBhYmlsaXR5IENvdXJzZXMgYW5kIGxpYWlzZSB3aXRoIG90aGVyIENvdW50eSBDb3VuY2lsIERlcGFydG1lbnRzIG9uIGEgbWV0aG9kIGZvciBldmFsdWF0aW5nIHRoZSBpbnRlcnZlbnRpb24sIHNob3VsZCB0aGUgcmVzb3VyY2VzIGJlY29tZSBhdmFpbGFibGUuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciA0IC0gTWFyY2ggMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5OSFMgRGlnaXRhbCBwdWJsaXNoZWQgdGhlIG1vc3QgcmVjZW50IHJlbGVhc2Ugb2YgdGhlIE5DTVAgaW4gTm92ZW1iZXIgMjAxNi4gVGhlc2UgcmVzdWx0cyBhcmUgZm9yIHRoZSAyMDE1LzE2IGFjYWRlbWljIHllYXIuXFxuXFxuSW4gV2VzdCBTdXNzZXggMzAuNCUgb2YgeWVhciA2IGNoaWxkcmVuIGFyZSBtZWFzdXJlZCBhcyBvdmVyd2VpZ2h0IG9yIG9iZXNlLiAxLjElIG9mIHRoaXMgYWdlIGdyb3VwIGlzIHVuZGVyd2VpZ2h0LCByZXN1bHRpbmcgaW4gNjguNSUgb2YgY2hpbGRyZW4gYmVpbmcgYSBoZWFsdGh5IHdlaWdodC4gVGhlIHBlcmNlbnRhZ2Ugb2YgY2hpbGRyZW4gd2l0aCBhIGhlYWx0aHkgd2VpZ2h0IGlzIGhpZ2hlciBpbiBXZXN0IFN1c3NleCB0aGFuIEVuZ2xhbmQuIFRoZXJlIGlzIG5vIHNpZ25pZmljYW50IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGVzZSBmaWd1cmVzIGFuZCB0aG9zZSBvZiAyMDE0LzE1LlxcblxcblRoaXMgcGxhY2VzIHVzIGF0IGFtYmVyIGNvbXBhcmVkIHRvIHRhcmdldCwgYXQgeWVhciBlbmQsIGFzIHByZWRpY3RlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIHllYXIuXFxuXFxuKipGaW5hbCBmaWd1cmVzIGZyb20gdGhlIHNwZWNpYWxpc3Qgc2VydmljZSAoV2VpZ2h0IE1hbmFnZW1lbnQgQ2VudHJlKSBmb3IgMjAxNi8yMDE3IGFyZSBhcyBmb2xsb3dzKipcXG5cXG4qIFR3byBodW5kcmVkIGFuZCBmaWZ0ZWVuIGZhbWlsaWVzIGVucm9sbGVkIG9uIHRoZSBBbGl2ZSBOIEtpY2tpbmcgcHJvZ3JhbW1lIGZvciBjaGlsZHJlbi5cXG5cXG4qIEp1c3Qgb3ZlciA4MCUgY29tcGxldGVkIHRoZSBwcm9ncmFtbWUgYW5kIDQ4JSBtYWludGFpbmVkIG9yIHJlZHVjZWQgdGhlaXIgQk1JLlxcblwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqQ2hhbmdlNExpZmUgQmUgRm9vZCBTbWFydCBDYW1wYWlnbioqXFxuXFxuV2VzdCBTdXNzZXggUHVibGljIEhlYWx0aCBEaXJlY3RvcmF0ZSBzdXBwb3J0cyB0aGUgbmF0aW9uYWwgQ2hhbmdlNExpZmUgY2FtcGFpZ24sIHdoaWNoIGxhdW5jaGVkIEJlIEZvb2QgU21hcnQgaW4gSmFudWFyeS4gVGhpcyBjYW1wYWlnbiBoaWdobGlnaHRzIHRoZSBzdXJwcmlzaW5nIGFtb3VudCBvZiBzdWdhciwgc2F0dXJhdGVkIGZhdCBhbmQgc2FsdCBmb3VuZCBpbiBldmVyeWRheSBmb29kIGFuZCBkcmluay5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipCZSBGb29kIFNtYXJ0IFRlYW0gdmlzaXRlZCBDcmF3bGV5ISoqXFxuXFxuVGhlIFB1YmxpYyBIZWFsdGggRW5nbGFuZCAoUEhFKSBCZSBGb29kIFNtYXJ0IFRlYW0gdmlzaXRlZCBUZXNjbyBFeHRyYSBpbiBIYXplbHdpY2ssIENyYXdsZXkgb24gRnJpZGF5LCAxN3RoIE1hcmNoIDIwMTcgdG8gcmFpc2UgYXdhcmVuZXNzIG9mIHRoZSBCZSBGb29kIFNtYXJ0IGNhbXBhaWduIGFuZCB0byBlbmNvdXJhZ2Ugc2hvcHBlcnMgdG8gZG93bmxvYWQgdGhlIGZyZWUgQmUgRm9vZCBTbWFydCBhcHAsIHdoaWNoIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBpVHVuZXMgc3RvcmUgb3IgR29vZ2xlIFBsYXkuIFRoZSB0ZWFtIHByb3ZpZGVkIGFkdmljZSB0byBzaG9wcGVycyBhYm91dCB0aGUgYW1vdW50IG9mIHN1Z2FyLCBzYXR1cmF0ZWQgZmF0IGFuZCBzYWx0IGZvdW5kIGluIHBvcHVsYXIgZmFtaWx5IGZvb2RzLCBhbmQgaW4gc29tZSBpbnN0YW5jZXMsIHNob3BwZXJzIGRlY2lkZWQgdG8gZXhjaGFuZ2UgdGhlaXIgcHVyY2hhc2VzIGZvciBoZWFsdGhpZXIgb3B0aW9ucy4gVGhlIHN0YW5kIHdhcyBpbiBhbiBhcmVhIG9mIGhpZ2ggZm9vdGZhbGwgaW4gdGhlIHN0b3JlIGFuZCB0aGUgdGVhbSBoYWQgZ2l2ZW4gb3V0IG92ZXIgODAwIHBhY2tzIGJ5IGx1bmNoIHRpbWUuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqSG9yc2hhbSBKdW5pb3IgQ2l0aXplbnMgRXZlbnQqKlxcblxcbk1lbWJlcnMgb2YgdGhlIFB1YmxpYyBIZWFsdGggVGVhbSBhbmQgSG9yc2hhbSBXZWxsYmVpbmcgbGVkIOKAmEJlIEZvb2QgU21hcnTigJkgQ2hhbGxlbmdlLCBhdCB0aGlzIGV2ZW50IHdoaWNoIHRvb2sgcGxhY2UgaW4gZWFybHkgQXByaWwuIFRoZSBhbm51YWwgZXZlbnQgYWltcyB0byB0ZWFjaCBlc3NlbnRpYWwgbGlmZSBza2lsbHMgdG8gb3ZlciAxMjAwIHByaW1hcnkgc2Nob29sIGNoaWxkcmVuIGFnZWQgbmluZSB0byBlbGV2ZW4geWVhcnMgb2xkIHdobyBhdHRlbmQgc2Nob29scyB3aXRoaW4gdGhlIEhvcnNoYW0gZGlzdHJpY3QsIHRocm91Z2ggYSBudW1iZXIgb2YgZnVuIGFuZCB0aG91Z2h0LXByb3Zva2luZyBzY2VuYXJpb3MuXFxuXFxuXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvQkI0MDE3NUYtMzk0Mi00RTUwLTg2MkItMDkxODgzNUZDOTdDXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzFCNUE5Q0MzLTI1QzUtNDMzRi1CQzJELTdFQzhEOTc3MzNBNVwifV1dfSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzgyNTgwQzdFLTEyNUItNENEMy1CODNBLTI2OTJEMkRERTA3RFwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0E3MkEyNzBBLTBFQjQtNDMwQi1BQUI2LTg3QUFGQUM3OTQ0N1wifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyAtIERlY2VtYmVyIDIwMTYqKlxcblxcbi0gLSAtXFxuXFxuTkhTIERpZ2l0YWwgcHVibGlzaGVkIHRoZSBtb3N0IHJlY2VudCByZWxlYXNlIG9mIHRoZSBOQ01QIGluIE5vdmVtYmVyIDIwMTYuIFRoZXNlIHJlc3VsdHMgYXJlIGZvciB0aGUgMjAxNS8xNiBhY2FkZW1pYyB5ZWFyLiBJbiBXZXN0IFN1c3NleCAzMC40JSBvZiB5ZWFyIDYgY2hpbGRyZW4gYXJlIG1lYXN1cmVkIGFzIG92ZXJ3ZWlnaHQgb3Igb2Jlc2UuIDEuMSUgb2YgdGhpcyBhZ2UgZ3JvdXAgaXMgdW5kZXJ3ZWlnaHQsIHJlc3VsdGluZyBpbiA2OC41JSBvZiBjaGlsZHJlbiBiZWluZyBhIGhlYWx0aHkgd2VpZ2h0LiBUaGUgcGVyY2VudGFnZSBvZiBjaGlsZHJlbiB3aXRoIGEgaGVhbHRoeSB3ZWlnaHQgaXMgaGlnaGVyIGluIFdlc3QgU3Vzc2V4IHRoYW4gRW5nbGFuZC4gVGhlcmUgaXMgbm8gc2lnbmlmaWNhbnQgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIGZpZ3VyZXMgYW5kIHRob3NlIG9mIDIwMTQvMTUuVGhpcyBwbGFjZXMgdXMgYXQgYW1iZXIgY29tcGFyZWQgdG8gdGFyZ2V0LCBhdCB5ZWFyIGVuZCwgYXMgcHJlZGljdGVkIGF0IHRoZSBzdGFydCBvZiB0aGUgeWVhci4gVGhlIHByZXZhbGVuY2Ugb2Ygb2Jlc2l0eSB3YXMgc2lnbmlmaWNhbnRseSBsb3dlciBpbiBIb3JzaGFtICgxMS43JSkgYW5kIE1pZCBTdXNzZXggKDExLjklKSB0aGFuIGFsbCBvdGhlciBsb2NhbCBhdXRob3JpdGllcyBpbiBXZXN0IFN1c3NleC4gQ3Jhd2xleSBpcyB0aGUgYXJlYSB3aXRoIGdyZWF0ZXN0IG9iZXNpdHkgcHJldmFsZW5jZSBpbiBXZXN0IFN1c3NleCAoMjEuNyUpLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9BRkNEOEQzMS02OTQ4LTQxQUItOTJGMS1DNzc2MUYzOUM3REJcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipGdXJ0aGVyIEluZm9ybWF0aW9uKipcXG5cXG4jIEFsaXZlIE4gS2lja2luZ1xcblxcblRoZSBXZWlnaHQgTWFuYWdlbWVudCBDZW50cmUgaGFzIGNvbnRpbnVlZCB0byBkZWxpdmVyIEFsaXZlIE4gS2lja2luZyB3ZWlnaHQgbWFuYWdlbWVudCBwcm9ncmFtbWUgdG8gY2hpbGRyZW4gYW5kIHlvdW5nIHBlb3BsZSB0aHJvdWdob3V0IHRoZSB5ZWFyLiBUbyBkYXRlIDE0MCBmYW1pbGllcyBoYXZlIGVuZ2FnZWQgd2l0aCB0aGUgcHJvZ3JhbW1lLCB3aXRoIGhhbGYgb2YgdGhlbSByZWR1Y2luZyBvciBtYWludGFpbmluZyB0aGVpciB3ZWlnaHQuIFRoZSBtYWpvcml0eSBvZiByZWZlcnJhbHMgaW50byBBbGl2ZSBOIEtpY2tpbmcgY29udGludWUgdG8gY29tZSBmcm9tIHRoZSBzY2hvb2wgcHJvZ3JhbW1lIFNUT1AsIGFuZCBzY2hvb2wgbnVyc2VzLlxcblxcblRlc3RpbW9uaWFsIGZyb20gYSBtb3RoZXIgb2YgYSB5b3VuZyBwZXJzb24gd2hvIGF0dGVuZGVkIEFsaXZlIE4gS2lja2luZ1xcblxcbl9cXFwiU2luY2UgYXR0ZW5kaW5nIHRoZSBBbGl2ZSBuIEtpY2tpbmcgcHJvZ3JhbW1lIEkgaGF2ZSBmb3VuZCB0aGF0IGFzIGEgcGFyZW50IEkgaGF2ZSBub3RpY2VkIGEgaHVnZSBkaWZmZXJlbmNlIGluIG15IGRhdWdodGVycyBwZXJzb25hbGl0eS4gQmVmb3JlIHRoZSBjb3Vyc2Ugc2hlIGhhdGVkIHNjaG9vbCBhbmQgd2FzIGJ1bGxpZWQgZHVlIHRvIHdlaWdodCByZWxhdGVkIGlzc3Vlcy4gU2hlIHNlZW1lZCBzbyB1bmhhcHB5IEkgdG9vayBoZXIgdG8gdGhlIERvY3RvcnMgYmVjYXVzZSBJIHRob3VnaHQgc2hlIG1heSBiZSBkZXByZXNzZWQuIFNpbmNlIHJlZ3VsYXIgZXhlcmNpc2UgYW5kIGxvc2luZyBzb21lIFdlaWdodCB0aGVyZSBoYXMgYmVlbiBhIG1hc3NpdmUgZGlmZmVyZW5jZSBpbiBoZXIgYmVoYXZpb3VyIGF0IHNjaG9vbCBhbmQgYXQgaG9tZS4gSXQgc2VlbXMgbGlrZSBhIHdlaWdodCBoYXMgYmVlbiBsaWZ0ZWQsIHNoZSBoYXMgbW9yZSBlbnRodXNpYXNtIHRvd2FyZHMgZXhlcmNpc2UsIGVhdGluZyBhbmQgZXZlbiBnb2luZyB0byBzY2hvb2wuIFNoZSB1c2VkIHRvIGxheSBhcm91bmQgYW5kIGRpZG4ndCB3YW50IHRvIGxlYXZlIHRoZSBob3VzZSBub3cgaXQncyBoYXJkIHRvIGtlZXAgaGVyIGluZG9vcnMhIFRoaXMgaGFzIGFsc28gaGFkIGEga25vY2sgYWZmZWN0IGludG8gbXkgbGlmZSBhcyBhIG11bSwgSSBhbSBtdWNoIGhhcHBpZXIuIE15IGRhdWdodGVyIGlzIGhhcHB5IGFmdGVyIHdoYXQgc2VlbXMgbGlrZSBhIGxpZmV0aW1lISBBbG9uZ3NpZGUgc2lkZSBoZWxwaW5nIGhlciBJIGhhdmUgYWxzbyBkb25lIGV4dHJlbWVseSB3ZWxsIGFuZCBsb3NpbmcgNmtncyBpbiA4IHdlZWtzIGFuZCBJIHdvdWxkIGhpZ2hseSByZWNvbW1lbmQgdGhpcyBwcm9ncmFtbWUgdG8gYW55IGtpZHMgc3VmZmVyaW5nIGZyb20gYmVpbmcgb3ZlcndlaWdodCwgc2hlIGhhcyBsb3N0IDJrZy5cXFwiX1xcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIjIEJlIEZvb2QgU21hcnRcXG5cXG5UaGUgUHVibGljIEhlYWx0aCBFbmdsYW5kIChQSEUpIEJFIEZvb2QgU21hcnQgY2FtcGFpZ24gbGF1bmNoZWQgbmF0aW9uYWxseSBvbiAzcmQgSmFudWFyeSAyMDE3LCB3aXRoIHRoZSBuZXdzIHN0b3JpZXMgdGhhdCBjaGlsZHJlbiBhcmUgZWF0aW5nIG1vcmUgdGhhbiBoYWxmIG9mIHRoZWlyIGRhaWx5IHN1Z2FyIGludGFrZSBpbiB0aGVpciBicmVha2Zhc3QuXFxuXFxuW2h0dHA6Ly93d3cuYmJjLmNvLnVrL25ld3MvaGVhbHRoLTM4NDY3ODYxXVswXVxcblxcblRoZSBjYW1wYWlnbiBmZWVkYmFjayBmcm9tIFBIRSBzaG93ZWQgdGhhdCAxMTUgbmV3IHJlZ2lzdHJhdGlvbnMgZnJvbSBXZXN0IFN1c3NleCB3ZXJlIGxvZ2dlZCBvbnRvIHRoZSBDaGFuZ2U0TGlmZSB3ZWJzaXRlIGR1cmluZyB0aGUgY2FtcGFpZ24gcGVyaW9kLiAyNCwwNTEgZW1haWxzIHdlcmUgc2VudCBmcm9tIENoYW5nZTRMaWZlIHRvIFdlc3QgU3Vzc2V4IHJlc2lkZW50cyB3aXRoIGFuIGF2ZXJhZ2UgMTIuOCUgb3BlbiByYXRlLiBGdXJ0aGVyIGNoYW5nZXMgdG8gcHJpbWFyeSBzY2hvb2wgbWVhbHMgcHJvdmlkZWQgYnkgQ2hhcnR3ZWxscyBoYXZlIHJlc3VsdGVkIGluIG1vcmUgc3VnYXIgYmVpbmcgcmVtb3ZlZC5cXG5cXG5bMF06IGh0dHA6Ly93d3cuYmJjLmNvLnVrL25ld3MvaGVhbHRoLTM4NDY3ODYxXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0JFNkZBNDM2LUZBMDAtNDBDNC1CNUVELTEyQTk3ODhFOTQxNVwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlByb21vdGlvbiBvZiB0aGUgUHVibGljIEhlYWx0aCBFbmdsYW5kIFN1Z2FyIFNtYXJ0IGNhbXBhaWduIGhhcyBpbmNyZWFzZWQgdGhlIGF3YXJlbmVzcyBvZiB0aGUgbWVzc2FnZXMgYXJvdW5kIHN1Z2FyIHJlZHVjdGlvbiwgYW5kIGFkdmljZSBvbiBsb3dlciBzdWdhciBzd2Fwcy4gQWRkaXRpb25hbCBzY2hvb2wgYmFzZWQgc3VnYXIgcmVkdWN0aW9uIGRlYmF0ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgQ2hpY2hlc3RlciBEaXN0cmljdC5cXG5cXG5BIHBpbG90IDYgd2VlayB3ZWlnaHQgbWFuYWdlbWVudCBwcm9ncmFtbWUgZm9yIGNoaWxkcmVuIHdpdGggc3BlY2lhbCBlZHVjYXRpb25hbCBuZWVkcyBhbmQgZGlzYWJpbGl0aWVzIGhhcyBydW4gaW4gTWlkIFN1c3NleC4gQXQgdGhlIGVuZCBvZiB0aGUgcHJvZ3JhbW1lIHRoZSBmaXRuZXNzIGxldmVsIG9mIHRoZSB5b3VuZyBwZW9wbGUgaGFkIGluY3JlYXNlZC4gd2VpZ2h0IGhhZCBiZWVuIG1haW50YWluZWQsIGFuZCB0aGV5IHdlcmUgcmVwb3J0aW5nIGNoYW5nZXMgdGhhdCB0aGV5IGhhZCBtYWRlIHRvIHRoZWlyIGZvb2QgaW50YWtlLlxcblxcblwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzc1MUYzQUUzLUY5QTAtNEE4Qy04OEU3LUM2MTdEQ0YwNkZBOFwifV1dfSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzk0NEMyRkQxLTdDNTctNEYzOS04QzY1LUE1NEU4RTJFQTAxQlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJFZHVjYXRpb25hbCBzZXNzaW9ucyB0byBwcmltYXJ5IGNhcmUgc3RhZmYgZnJvbSBDb2FzdGFsIFdlc3QgU3Vzc2V4IENDRyBoYXZlIGJlZW4gZGVsaXZlcmVkIGJ5IHRoZSBwdWJsaWMgaGVhbHRoIHRlYW0gb24gaWRlbnRpZmljYXRpb24gb2Ygb3ZlcndlaWdodCBjaGlsZHJlbiBhbmQgeW91bmcgcGVvcGxlLiBUaGUgdGVhbSBhbHNvIGRlbGl2ZXJlZCBhIHN1Z2FyIHJlZHVjdGlvbiBkaXNwbGF5IGluIHRoZSBtYXJrZXQgcGxhY2UgYXQgdGhlIHNhbWUgZXZlbnQgYXR0ZW5kZWQgYnkgb3ZlciBhIGh1bmRyZWQgcHJvZmVzc2lvbmFscy5cXG5cXG5cIn1dLFt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJBIHNjaG9vbCBiYXNlZCBjb21wZXRpdGlvbiB0byBkZXNpZ24gYSBXZXN0IFN1c3NleCBzdWdhciByZWR1Y3Rpb24gbG9nbyB3YXMgd29uIGJ5IGEgcHVwaWwgZnJvbSBTdG9ycmluZ3RvbiBGaXJzdCBTY2hvb2wsIFRoZSB3aW5uaW5nIGRlc2lnbiBpcyBzaG93biBvbiB0aGUgbGVmdC5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvMTJCMEJBN0EtMTc5MC00QkM3LUExNDMtMzE5M0U4NDY4NDQwXCJ9XV19LHtcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiIyBBd2FyZHNcXG5cXG5XZXN0IFN1c3NleCBQdWJsaWMgSGVhbHRoIGFuZCBDb3VudHkgQ2F0ZXJpbmcgd29uIGFuIGF3YXJkIGZvciB0aGVpciBwb3N0ZXIgcHJlc2VudGVkIHRoZSBuYXRpb25hbCBQdWJsaWMgSGVhbHRoIEVuZ2xhbmQgQ29uZmVyZW5jZSBpbiBXYXJ3aWNrIGVhcmx5IFNlcHRlbWJlciBmb3IgdGhlaXIgd29yayBvbiByZWR1Y2luZyBzdWdhciBpbiBzY2hvb2wgbWVhbHMuIFRvIGRhdGUgdGhlIGVxdWl2YWxlbnQgd2VpZ2h0IG9mIHRocmVlIExvbmRvbiBkb3VibGUgZGVja2VyIGJ1c2VzIG9mIHN1Z2FyIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBXZXN0IFN1c3NleCBwcmltYXJ5IHNjaG9vbCBtZWFscyBpbiB0aGUgbGFzdCAyMCBtb250aHMuIFRoaXMgd29yayBpcyBjb250aW51aW5nIHdpdGggQ2hhcnR3ZWxscy0gdGhlIHNjaG9vbCBtZWFsIHByb3ZpZGVyLlxcblxcblwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0REQTcxMUFCLUFCQUMtNDJEQi04QjY2LURDNjdFNjI2MDNCRlwifV1dfSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9CRTBENTNDNi1BMEYyLTQwMjYtQTRDMy00REFCNDAxRUQ1Q0RcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiIyBXaHkgV2VpZ2h0XFxuXFxuQmVpbmcgb3ZlcndlaWdodCBhcyBhIGNoaWxkIGluY3JlYXNlcyB0aGUgcmlzayBvZiBiZWluZyBvdmVyd2VpZ2h0IGFzIGFuIGFkdWx0LiBJdCBhbHNvIGNhbiBhZmZlY3QgYSBjaGlsZOKAmXMgaGVhbHRoLCBhYmlsaXR5IHRvIHRha2UgcGFydCBpbiBhbiBsaXZlbHkgbGlmZSBhbmQgc2Nob29sIHBlcmZvcm1hbmNlLiBUbyBoZWxwIGNoaWxkcmVuIGFuZCBmYW1pbGllcyB0aGluayBhYm91dCB0aGVpciBkaWV0IGFuZCBiZWluZyBhY3RpdmUgdGhlcmUgaXMgaGVscCBhbmQgc3VwcG9ydCBhdmFpbGFibGUgaW4gV2VzdCBTdXNzZXguIFRyaWVkIGFuZCB0ZXN0ZWQgcHJvZ3JhbW1lcyB3aGljaCBwcm92aWRlIGFuIGVmZmVjdGl2ZSB3YXkgdG8gbWFuYWdlIHdlaWdodCBhbmQgZW5jb3VyYWdlIGFkb3B0aW5nIGhlYWx0aGllciBoYWJpdHMgZm9yIGxpZmUgYXJlIGZ1bmRlZCBieSBXZXN0IFN1c3NleCBDb3VudHkgQ291bmNpbC5cXG5cXG4gXFxuXFxuRm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gY2FsbCB0aGUgV2h5V2VpZ2h0IGhlbHBsaW5lIG9uIDAzMDAgMTIzIDA4OTIuXFxuXFxuW3d3dy53aHl3ZWlnaHR3ZXN0c3Vzc2V4LmNvLnVrXVswXVxcblxcblswXTogaHR0cDovL3d3dy53aHl3ZWlnaHR3ZXN0c3Vzc2V4LmNvLnVrXCJ9XSxcInVzZV9jdXN0b21fdGl0bGVcIjp0cnVlLFwiY3VzdG9tX3RpdGxlXCI6XCJJbmNyZWFzZSB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHdpdGggaGVhbHRoeSB3ZWlnaHQgaW4gdGhlaXIgbGFzdCB5ZWFyIG9mIHByaW1hcnkgc2Nob29sXCIsXCJpY29uXCI6XCJjcm9zc2hhaXJcIixcInVzZV9jdXN0b21fc3VidGl0bGVcIjp0cnVlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJUaGlzIGdvYWwgaXMgbWVhc3VyZWQgYnkgdHJhY2tpbmcgQ2hpbGRyZW4ncyBIZWFsdGh5IFdlaWdodCBpbiBwZXJjZW50YWdlLlwifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDEzLTA0LTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6IiUiLCJ0YXJnZXQiOjcwLjQsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGEiOjAsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjcwLjQsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoiZmdnei1rd2VxIn0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjozLFwieWVhclwiOjIwMTN9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwiaW5jcmVhc2VcIixcIm1haW50YWluX3R5cGVcIjpcIj5cIn0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjMsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTZ9fSxcInN0YXJ0XCI6XCIyMDE1LTA0LTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE2LTAzLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dLFxcXCJ2YWx1ZVR5cGVcXFwiOlxcXCJvbmVcXFwifX1cIixcImRhdGFzZXRcIjpcInFxbnotZjI5aFwiLFwiY29tcHV0ZVwiOntcImFnZ3JlZ2F0aW9uX2Z1bmN0aW9uXCI6XCJhdmVyYWdlXCJ9LFwiY29sdW1uMVwiOlwiYWN0dWFsXCIsXCJkYXRlX2NvbHVtblwiOlwiZGF0ZVwiLFwiZGF0YXNldF9kb21haW5cIjpcInBlcmZvcm1hbmNlLndlc3RzdXNzZXguZ292LnVrXCJ9LFwidHlwZVwiOlwic2NyYXRjaFwifSxcIm5hbWVcIjpcIkNoaWxkcmVuJ3MgSGVhbHRoeSBXZWlnaHRcIixcInVzZV9wcm9ncmVzc19vdmVycmlkZVwiOnRydWUsXCJwcm9ncmVzc19vdmVycmlkZVwiOlwiZ29vZFwiLFwieVNjYWxlXCI6e1widXNlX2RlZmF1bHRcIjpmYWxzZSxcIm1pblwiOjY1LFwibWF4XCI6NzV9fSJ9LCJjcmVhdGVkX2F0IjoiMjAxOC0wNy0yM1QxMDoxOTozOC4zNDJaIiwidmVyc2lvbiI6IjIwMTgtMDctMjNUMTA6MTk6MzguMzQyWiIsInRhcmdldF90b2xlcmFuY2UiOjEsImlkIjoiNWdpNy00bWN3In0sInJlbGF0ZWRfbWVhc3VyZXMiOltdLCJiYXNlX2Rhc2hib2FyZCI6IjU3NHItaDVuYyIsInVwZGF0ZWRfYXQiOiIyMDE4LTA3LTIzVDEwOjE5OjU3LjU3OFoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wNy0yM1QxMDoxOTozOC4zOTZaIiwidmVyc2lvbiI6IjIwMTgtMDctMjNUMTA6MTk6NTcuNTc4WiIsImNyZWF0ZWRfYnkiOiI3OTdpLTZyOWcifSx7ImlkIjoiYW5hZy1iM3VnIiwibmFtZSI6IkZhbWlsaWVzIHR1cm5lZCBhcm91bmQiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGlzIG1lYXN1cmUgcmVwb3J0cyBvbiBXU0ND4oCZcyBhYmlsaXR5IHRvIGRlbGl2ZXIgdGFyZ2V0cyBsYWlkIGRvd24gYnkgdGhlIERDTEcgKERlcGFydG1lbnQgZm9yIENvbW11bml0aWVzIGFuZCBMb2NhbCBHb3Zlcm5tZW50KSBhcyBwYXJ0IG9mIHRoZSBuYXRpb25hbCBUcm91YmxlZCBGYW1pbGllcyBwcm9ncmFtbWUgdG8gMjAyMC4gVGhlc2UgcmVsYXRlIHRvIOKAmHR1cm5pbmcgYXJvdW5k4oCZIGZhbWlsaWVzIGFnYWluc3QgbmF0aW9uYWwgdnVsbmVyYWJpbGl0eSBjcml0ZXJpYSwgd2hlcmUgdGhleSBoYXZlIGF0IGxlYXN0IHR3byBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcmlzdGljczpcXG5cXG4qIENoaWxkcmVuIHdobyBoYXZlIG5vdCBiZWVuIGF0dGVuZGluZyBzY2hvb2wgcmVndWxhcmx5O1xcbiogUGFyZW50cyBhbmQgY2hpbGRyZW4gaW52b2x2ZWQgaW4gY3JpbWUgYW5kIGFudGktc29jaWFsIGJlaGF2aW91cjtcXG4qIERvbWVzdGljIHZpb2xlbmNlIGFuZCBhYnVzZTtcXG4qIENoaWxkcmVuIHdobyBuZWVkIGhlbHA7XFxuKiBQYXJlbnRzIGFuZCBjaGlsZHJlbiB3aXRoIGEgcmFuZ2Ugb2YgaGVhbHRoIHByb2JsZW1zO1xcbiogQWR1bHRzIG91dCBvZiB3b3JrIG9yIGF0IHJpc2sgb2YgZmluYW5jaWFsIGV4Y2x1c2lvbjtcXG4qIFlvdW5nIHBlb3BsZSBhdCByaXNrIG9mIHdvcmtsZXNzbmVzc1xcblxcblN1Y2ggZmFtaWxpZXMgb2Z0ZW4gaGF2ZSB2ZXJ5IGxvbmctc3RhbmRpbmcgaXNzdWVzLCBhbmQgcmVwcmVzZW50IGEgaGlnaCBjb3N0IHRvIGEgcmFuZ2Ugb2YgcHVibGljIHNlcnZpY2VzLiBJbnRlcnZlbnRpb24gaXMgdGhyb3VnaCBhbiBpbnRlbnNpdmUga2V5d29ya2VyIHNlcnZpY2UsIG9yIGFsdGVybmF0aXZlbHkgdGhyb3VnaCBhIHJhbmdlIG9mIHBhcnRuZXJzIG9mZmVyaW5nIGVhcmx5IGhlbHAgaW50ZXJ2ZW50aW9ucy4gSXQgd2lsbCBvZnRlbiB0YWtlIGFyb3VuZCAxMiBtb250aHMgYmVmb3JlIOKAmHN1Y2Nlc3PigJkgY2FuIGJlIHJlcG9ydGVkOiB0aGUgaW50ZW50aW9uIGlzIHRvIHByb3ZpZGUgc2lnbmlmaWNhbnQgb3V0Y29tZXMgd2hpY2ggYSBmYW1pbHkgY2FuIHN1c3RhaW4gaW50byB0aGUgZnV0dXJlLiBUaGVyZSBpcyBhbiBhY2NvbXBhbnlpbmcgbWV0aG9kb2xvZ3kgd2hpY2ggbWVhc3VyZXMgaG93IGZhciB0aGUgZmFtaWx5IGhhcyB0cmF2ZWxsZWQgdG93YXJkcyBzdXN0YWluYWJpbGl0eSwgdG8gYWxsb3cgYXVkaXQgYW5kIGV2YWx1YXRpb24gb2YgdGhlIHJlc3VsdHMuIFdvcmsgd2l0aCBmYW1pbGllcyBpcyBwYXJ0LWZ1bmRlZCBieSB0aGUgRENMRywgYW5kIHN1cHBvcnRlZCBieSB0aGUgRFdQIChEZXBhcnRtZW50IG9mIFdvcmsgYW5kIFBlbnNpb25zKS4gQSByYW5nZSBvZiBXU0NDIGFuZCBjb21taXNzaW9uZWQgcHJpdmF0ZSBhbmQgdGhpcmQgc2VjdG9yIHNlcnZpY2VzIGpvaW50bHkgY29udHJpYnV0ZSB0byB0aGVzZSBvdXRjb21lcywgZmFjaWxpdGF0ZWQgYnkgdGhlIENvdW50eSBDb3VuY2lsLiBUaGUgVGhpbmsgRmFtaWx5IFBhcnRuZXJzaGlwIGluY2x1ZGVzIERpc3RyaWN0IENvdW5jaWxzLCBTdXNzZXggUG9saWNlLCBIZWFsdGgsIEhvdXNpbmcsIFNjaG9vbHMsIENoaWxkcmVu4oCZcyBTb2NpYWwgQ2FyZSBhbmQgYSB3aWRlIHJhbmdlIG9mIGNoYXJpdGllcy5cXG5cXG4qKlF1YXJ0ZXIgMyAtIERlY2VtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVXAgdG8gMzFzdCBEZWNlbWJlciAyMDE3IHRoZSBhdXRob3JpdHkgaGFzIGNsYWltZWQgYSB0b3RhbCBvZiAxLDc0MSBzdWNjZXNzZXMuIEEgZnVydGhlciA4OCBjYXNlcyB3aWxsIGJlIGNsYWltZWQgaW4gSmFudWFyeSAyMDE4LCBnaXZpbmcgYSB0b3RhbCBvZiAxLDgyOS4gQSBzdHJvbmcgcGxhbiBpcyBpbiBwbGFjZSB0byBhY2hpZXZlIG91ciBvdmVyYWxsIE1hcmNoIDIwMjAgdGFyZ2V0IG9mIDMsOTQwIGZhbWlsaWVzIHR1cm5lZCBhcm91bmQgYWdhaW5zdCBuYXRpb25hbCBjcml0ZXJpYSwgYWx0aG91Z2ggc29tZSB2YXJpYWJpbGl0eSBpbiBpbmRpdmlkdWFsIHF1YXJ0ZXJzIGlzIHRvIGJlIGV4cGVjdGVkIGFjcm9zcyBhIGZpdmUteWVhciBwcm9ncmFtbWUuIEluIHRoZSBtZWFudGltZSwgd2UgaGF2ZSBtYWRlIDYsMzk0IGF0dGFjaG1lbnRzIG9mIHF1YWxpZnlpbmcgZmFtaWxpZXMg4oCTIGkuZS4gdGhvc2Ugd2UgaGF2ZSBhY3RpdmVseSB3b3JrZWQgd2l0aCBvciBhcmUgY3VycmVudGx5IHdvcmtpbmcgd2l0aCBzaW5jZSBTZXB0ZW1iZXIgMjAxNC4gVGhpcyBzdWdnZXN0cyB0aGF0IHRoZSBuZWVkIGZvciBwcmV2ZW50YXRpdmUsIGVhcmx5IGludGVydmVudGlvbiBzZXJ2aWNlcyByZW1haW5zIGhpZ2guIFdlc3QgU3Vzc2V4IGlzIHJlZ2FyZGVkIGFzIGEgbGVhZGluZyBhdXRob3JpdHkgaW4gdGhlIGxvY2FsIGRlbGl2ZXJ5IG9mIHRoZSBnb3Zlcm5tZW504oCZcyBhbWJpdGlvbnMgZm9yIGZhbWlsaWVzIHRocm91Z2ggdGhlIG5hdGlvbmFsIHByb2dyYW1tZSwgYW5kIHRoZXNlIGZpZ3VyZXMgYXJlIGluIGxpbmUgd2l0aCBjdXJyZW50IGFuZCBwcm9qZWN0ZWQgc3VjY2VzcyB0YXJnZXRzLlxcblxcbioqUXVhcnRlciAyIC0gU2VwdGVtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVXAgdG8gMzB0aCBTZXB0ZW1iZXIgMjAxNyB0aGUgYXV0aG9yaXR5IGhhcyBjbGFpbWVkIGEgdG90YWwgb2YgMSw1MTEgc3VjY2Vzc2VzLiBBIGZ1cnRoZXIgMjMwIGNhc2VzIGhhdmUgYmVlbiBwcmVzZW50ZWQgdG8gdGhlIERDTEcgYXQgdGhlIGJlZ2lubmluZyBvZiBPY3RvYmVyIDIwMTcgYW5kIGFyZSB1bmRlcmdvaW5nIHRoZSBhdWRpdCBwcm9jZXNzIHdpdGhpbiBEQ0xHLiBUaGVzZSBmaWd1cmVzIGFyZSBpbiBsaW5lIHdpdGggY3VycmVudCBzdWNjZXNzIHRhcmdldHMuXFxuXFxuSW4gdGhlIG1lYW50aW1lLCB3ZSBoYXZlIG1hZGUgNSw4MDkgYXR0YWNobWVudHMgb2YgcXVhbGlmeWluZyBmYW1pbGllcyDigJMgaS5lLiB0aG9zZSB3ZSBoYXZlIGFjdGl2ZWx5IHdvcmtlZCB3aXRoIG9yIGFyZSBjdXJyZW50bHkgd29ya2luZyB3aXRoIGluIFBoYXNlIDIgc2luY2UgU2VwdGVtYmVyIDIwMTQuIFRoZSBudW1iZXIgb2YgYWN0aXZlIGF0dGFjaGVkIGNhc2VzIGN1cnJlbnRseSBiZWluZyB3b3JrZWQgb24gYnkgV2VzdCBTdXNzZXggaXMgMiwyNzAuXFxuXFxuKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVXAgdG8gMzB0aCBKdW5lIDIwMTcgdGhlIGF1dGhvcml0eSBoYXMgY2xhaW1lZCBhIHRvdGFsIG9mIDEsMjgxIHN1Y2Nlc3Nlcy4gQSBmdXJ0aGVyIGNsYWltIGlzIGN1cnJlbnRseSBiZWluZyBwcmVwYXJlZCBmb3IgYW4gYWRkaXRpb25hbCAyMzAgY2FzZXMgd2hpY2ggd2lsbCBiZSBwcmVzZW50ZWQgdG8gdGhlIERDTEcgYXQgdGhlIGVuZCBvZiBKdWx5IDIwMTcuIFRoZXNlIGZpZ3VyZXMgYXJlIGluIGxpbmUgd2l0aCBjdXJyZW50IHN1Y2Nlc3MgdGFyZ2V0cy4gSW4gdGhlIG1lYW50aW1lLCB3ZSBoYXZlIG1hZGUgNSwzNDAgYXR0YWNobWVudHMgb2YgcXVhbGlmeWluZyBmYW1pbGllcyDigJMgaS5lLiB0aG9zZSB3ZSBoYXZlIGFjdGl2ZWx5IHdvcmtlZCB3aXRoIG9yIGFyZSBjdXJyZW50bHkgd29ya2luZyB3aXRoIGluIFBoYXNlIDIgc2luY2UgU2VwdGVtYmVyIDIwMTQuIFRoZSBudW1iZXIgb2YgYWN0aXZlIGNhc2VzIGN1cnJlbnRseSBiZWluZyB3b3JrZWQgb24gYnkgV2VzdCBTdXNzZXggaXMgMiwxOTMuXFxuXFxuKipRdWFydGVyIDQgLSBNYXJjaCAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBUaGluayBGYW1pbHkgcHJvZ3JhbW1lIGhhcyByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIHNlY29uZCBmdWxsIHllYXIgb2YgUGhhc2UgMiwgd2hpY2ggbGFzdHMgdW50aWwgTWFyY2ggMjAyMC4gVXAgdG8gMzFzdCBNYXJjaCAyMDE3IHRoZSBhdXRob3JpdHkgaGFzIGNsYWltZWQgYSB0b3RhbCBvZiAxLDI4MSB3aGljaCBpcyBpbiBsaW5lIHdpdGggdGhlIHRhcmdldC4gSW4gdGhlIG1lYW50aW1lLCB3ZSBoYXZlIG1hZGUgNCw3NjAgYXR0YWNobWVudHMgb2YgcXVhbGlmeWluZyBmYW1pbGllcyDigJMgaS5lLiB0aG9zZSB3ZSBoYXZlIGFjdGl2ZWx5IHdvcmtlZCB3aXRoIG9yIGFyZSBjdXJyZW50bHkgd29ya2luZyB3aXRoIGluIFBoYXNlIDIgc2luY2UgU2VwdGVtYmVyIDIwMTQgd2hpY2ggaXMgd2VsbCBhYm92ZSB0YXJnZXQuIFRoZSBudW1iZXIgb2YgYWN0aXZlIGNhc2VzIGN1cnJlbnRseSBiZWluZyB3b3JrZWQgb24gYnkgV2VzdCBTdXNzZXggaXMgMiwxMTMuIEl0IHNob3VsZCBiZSBub3RlZCB0aGF0IHRoZSBEQ0xHIHBoYXNlIDIgKFNlcCAyMDE0IOKAk01hciAyMDIwKSB0YXJnZXQgaGFzIHJlZHVjZWQgZnJvbSA0LDA2MCB0byAzLDk0MC5cXG5cXG5cIn1dLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIkluY3JlYXNlIHRoZSBudW1iZXIgb2YgZmFtaWxpZXMgd2UgaGF2ZSBoZWxwZWQgdG8gY2hhbmdlLCBpbXByb3ZlIGFuZCB0dXJuIHRoZWlyIGxpdmVzIGFyb3VuZFwiLFwiaWNvblwiOlwidGV4dFwiLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOnRydWUsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRoaXMgZ29hbCBpcyBtZWFzdXJlZCBieSB0aGUgbnVtYmVyIG9mIHRyb3VibGVkIGZhbWlsaWVzIHR1cm5lZCBhcm91bmQuXCIsXCJ0aXRsZV9pbWFnZVwiOlwiL2FwaS9hc3NldHMvRjY2OEY0MDAtNDJEMi00RjMwLUJENUUtMkI1MDQ5NEUxQjdFXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTUtMDMtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiZmFtaWxpZXMiLCJ0YXJnZXQiOjM5NDAsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoieWJ0aS1oYjd3In0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTV9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH19LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE1fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTV9fSxcInN0YXJ0XCI6XCIyMDE1LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE1LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwidGhlIG51bWJlciBvZiBmYW1pbGllcyB0dXJuZWQgYXJvdW5kXCIsXCJ1c2VfcHJvZ3Jlc3Nfb3ZlcnJpZGVcIjp0cnVlLFwicHJvZ3Jlc3Nfb3ZlcnJpZGVcIjpcImdvb2RcIixcInlTY2FsZVwiOntcInVzZV9kZWZhdWx0XCI6ZmFsc2V9LFwiaXNfdHJlbmRsaW5lX2Rpc2FibGVkXCI6ZmFsc2V9In0sImNyZWF0ZWRfYXQiOiIyMDE4LTA3LTIzVDEwOjI2OjE4LjMwOFoiLCJ2ZXJzaW9uIjoiMjAxOC0wNy0yM1QxMDoyNjoxOC4zMDhaIiwidGFyZ2V0X3RvbGVyYW5jZSI6MjAwLCJpZCI6ImU1cHotZWE5MiJ9LCJyZWxhdGVkX21lYXN1cmVzIjpbXSwiYmFzZV9kYXNoYm9hcmQiOiI1NzRyLWg1bmMiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNy0yM1QxMDoyNjo0OC45ODBaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMTA6MjY6MTguMzQ4WiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDEwOjI2OjQ4Ljk4MFoiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn0seyJpZCI6IjMydmgteHdzaSIsIm5hbWUiOiJDaGlsZHJlbiBMb29rZWQgQWZ0ZXIgUG9wdWxhdGlvbiIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwiaWNvblwiOlwidGV4dFwiLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIldlc3QgU3Vzc2V4IEFkb3B0aW9uIGlzIHdvcmtpbmcgaW4gcGFydG5lcnNoaXAgd2l0aCBCcmlnaHRvbiBhbmQgSG92ZSwgRWFzdCBTdXNzZXggYW5kIFN1cnJleSBMb2NhbCBBdXRob3JpdHkgQWRvcHRpb24gQWdlbmNpZXMgdG8gZGV2ZWxvcCBBZG9wdGlvbiBTb3V0aCBFYXN0LiBUaGUgYWltIG9mIHRoaXMgcmVnaW9uYWwgcGFydG5lcnNoaXAgaXMgdG8gc2hhcmUgcmVzb3VyY2VzIGFuZCBleHBlcnRpc2Ugc28gdGhhdCA4MCUgb2YgQWRvcHRpb24gU291dGggRWFzdCBjaGlsZHJlbiBhcmUgcGxhY2VkIHdpdGhpbiB0aGUgcmVnaW9uLCB3aXRoIGluY3JlYXNlZCBjaG9pY2Ugb2YgYWRvcHRlcnMsIHJlZHVjZWQgd2FpdGluZyB0aW1lcyBhbmQgbW9yZSBzdWNjZXNzZnVsIGFkb3B0aW9ucy5cXG5cXG4gXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqRmVicnVhcnkgMjAxOCoqXFxuXFxuLSAtIC1cXG5cXG5UaGlzIGluZGljYXRvciBoYXMgaW5jcmVhc2VkIGJ5IDYgZGF5cyBvdmVyIHRoZSBwYXN0IG1vbnRoIGR1ZSB0byBhIHNtYWxsIG51bWJlciBvZiBjaGlsZHJlbiB3aXRoIHNpZ25pZmljYW50IG5lZWRzIHdobyBoYWQgc3BlbnQgYSBjb25zaWRlcmFibGUgdGltZSBpbiBmb3N0ZXIgY2FyZSBhbmQgdGhlbiB3aXRoIHRoZWlyIGFkb3B0ZXJzIHByaW9yIHRvIGFkb3B0aW9uIG9yZGVycyBiZWluZyBncmFudGVkLiBGdXJ0aGVyIGRldGFpbCB3aWxsIGZvbGxvdyBpbiB0aGUgcXVhcnRlcmx5IHVwZGF0ZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBhdmVyYWdlIHRpbWUgYmV0d2VlbiBhIGNoaWxkIGVudGVyaW5nIGNhcmUgYW5kIG1vdmluZyBpbiB3aXRoIHRoZWlyIGFkb3B0aXZlIGZhbWlseSBoYXMgaW5jcmVhc2VkIGluIHRoZSBsYXN0IHF1YXJ0ZXIgdG8gNDgzLjMgZGF5cy4gVGhpcyBpbmNyZWFzZWQgdGltZXNjYWxlIGNhbiBiZSBhdHRyaWJ1dGVkIHRvIHR3byBjaGlsZHJlbiB3aXRoIGFkb3B0aW9uIGNhcmUgcGxhbnMgd2hvIHdlcmUgYWRvcHRlZCBpbiBRdWFydGVyIDM6IENoaWxkIDEgaXMgYSBjaGlsZCB3aXRoIHNwZWNpYWwgbmVlZHMgd2hvIHdhcyBwbGFjZWQgZm9yIGFkb3B0aW9uIG91dCBvZiBjb3VudHkgYWZ0ZXIgYSBsb25nIHNlYXJjaDsgaGVyIHByb3NwZWN0aXZlIGFkb3B0ZXJzIHRoZW4gc2VwYXJhdGVkIHdoaWNoIGxlZCB0byBkZWxpbmtpbmcsIHRoZW4gYXJlIGFzc2Vzc21lbnQgb2YgYWRvcHRpdmUgbW90aGVyIGFzIGEgc2luZ2xlIGFkb3B0ZXIgdG9vayBwbGFjZSBwcmlvciB0byBhbiBBZG9wdGlvbiBPcmRlciBiZWluZyBncmFudGVkLiBDaGlsZCAyIGV4cGVyaWVuY2VkIGRlbGF5cyBpbiBiZWluZyBwbGFjZWQgZm9yIGFkb3B0aW9uIGR1ZSB0byBoaXMgYWRkaXRpb25hbCBuZWVkcy4gSGUgaGFkIGJlZW4gbG9va2VkIGFmdGVyIGZvciAyIHllYXJzIGJlZm9yZSBhIFBsYWNlbWVudCBPcmRlciB3YXMgZ3JhbnRlZC4gSGUgd2FzIG9sZGVyIHdoZW4gaGUgd2FzIHBsYWNlZCBmb3IgYWRvcHRpb247IHRoZXJlIHdlcmUgY29uY2VybnMgYXJvdW5kIHByZXNlbnRpbmcgYmVoYXZpb3VycyBpbmRpY2F0aW5nIGVhcmx5IHRyYXVtYSBhbmQgYSA0IHllYXIgZ2FwIGJldHdlZW4gcGxhY2VtZW50IGFuZCBhZG9wdGlvbiBiZWNhdXNlIG9mIHRoZXNlIG5lZWRzLlxcblxcbiBcXG5cXG5UaGVyZSBhcmUgY3VycmVudGx5IDM1IGNoaWxkcmVuIGluIGFkb3B0aXZlIHBsYWNlbWVudHMgcHJlIEFkb3B0aW9uIE9yZGVyLiBCYXNlZCBvbiB0aGUgbGlrZWxpaG9vZCBvZiBBZG9wdGlvbiBPcmRlcnMgZm9yIDE1IG9mIHRoZXNlIGNoaWxkcmVuIGJlaW5nIGdyYW50ZWQgd2l0aGluIHRoZSBuZXh0IHF1YXJ0ZXIsIHRoZSBwcmVkaWN0aW9uIGlzIHRoYXQgdGhpcyBtZWFzdXJlIHdpbGwgZGVjcmVhc2UgdG8gYXJvdW5kIDQ2NSBkYXlzIGJ5IHRoZSBlbmQgb2YgdGhlIHllYXIgd2hpY2ggd2lsbCBtYWtlIHRoZSB5ZWFyIGVuZCBwcmVkaWN0aW9uIEFtYmVyLlRoaXMgd2lsbCBpbXByb3ZlIHByb2dyZXNzIHRvd2FyZHMgdGhlIHRhcmdldCBvZiA0MjYgZGF5cyBieSB0aGUgZW5kIG9mIE1hcmNoIDIwMTkuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAyIC0gU2VwdGVtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlcmUgaXMgYSAqKjQ2MS43MyoqIGRheXMgYXZlcmFnZSBmb3IgdGhlIGNoaWxkcmVuIG9uIFBsYWNlbWVudCBPcmRlcnMgZnJvbSBlbnRlcmluZyBjYXJlIHRvIGJlaW5nIHBsYWNlZCBmb3IgYWRvcHRpb247IHRoaXMgZXZpZGVuY2VzIHRoYXQgV2VzdCBTdXNzZXggaXMgcGxhY2luZyBjaGlsZHJlbiBpbiBhIHRpbWVseSBtYW5uZXI7IHRoZSBwZXJmb3JtYW5jZSBhZ2FpbnN0IHRoaXMgaW5kaWNhdG9yIGluIHRoZSBwcmV2aW91cyBxdWFydGVyIHdhcyA0NjYuNyBkYXlzLCBhbmQgcmVtYWlucyBsb3dlciB0aGFuIHRoZSBuYXRpb25hbCBhdmVyYWdlIHdoaWNoIGlzIDUzMiBkYXlzLiBUaGUgYWRvcHRpb24gdGVhbSBjb250aW51ZXMgdG8gcHJpb3JpdGlzZSBsaW5raW5nIGNoaWxkcmVuIHdpdGggYWRvcHRlcnMgaW4gYSB0aW1lbHkgbWFubmVyLCBhbmQgaGF2ZSByZXNwb25kZWQgZmxleGlibHkgdG8gdGhlIGluY3JlYXNlZCBkZW1hbmQgZm9yIGZhbWlseSBmaW5kaW5nIGR1ZSB0byB0aGUgY29udGludWVkIGluY3JlYXNlIGluIFBsYWNlbWVudCBvcmRlcnMgZm9yIFdlc3QgU3Vzc2V4IGNoaWxkcmVuLiBUaGUgTG9jYWwgQXV0aG9yaXR5IGZhY2VzIGEgc2lnbmlmaWNhbnQgYWRvcHRlciBzdWZmaWNpZW5jeSBjaGFsbGVuZ2UsIGR1ZSB0byB0aGlzIGluY3JlYXNlLiBUaGUgZGVtYW5kIGZvciBhZG9wdGl2ZSBwbGFjZW1lbnRzIGZvciBjaGlsZHJlbiB3aG8gYXJlIGluIHNpYmxpbmcgZ3JvdXBzLCBvdmVyIDIgeWVhcnMgb2YgYWdlLCBmcm9tIGRpdmVyc2UgZXRobmljIGJhY2tncm91bmRzIGFuZCBhIG51bWJlciB3aXRoIHNwZWNpYWwgbmVlZHMsIGlzIHVuYWJsZSB0byBiZSBzYXRpc2ZhY3RvcmlseSBtZXQgZnJvbSB0aGUgTG9jYWwgQXV0aG9yaXR54oCZcyBleGlzdGluZyBwb29sIG9mIGFkb3B0ZXJzLlxcblxcblRoZSBBZG9wdGlvbiBUZWFtIGhhcyBkZXZlbG9wZWQgY2xlYXIgcHJvY2Vzc2VzIGFuZCB0aW1lIGZyYW1lcyB0byBlbnN1cmUgdGhhdCByZWNydWl0bWVudCBhbmQgYXNzZXNzbWVudCBpcyBwcmlvcml0aXNlZC4gVGhlcmUgaXMgYSBuZXcgRHV0eSBXb3JrZXIgYXMgdGhlIGZpcnN0IHBvaW50IG9mIGNvbnRhY3QgZm9yIGVucXVpcmVycyBpbiBvcmRlciB0byBwcm92aWRlIGEgdGltZWx5IGFuZCBjb25zaXN0ZW50IHJlc3BvbnNlLiBUaGUgY29sbGFib3JhdGlvbiBvZiB0aGUgQWRvcHRpb24gdGVhbSBhcyBwYXJ0IG9mIHRoZSBkZXZlbG9waW5nIHJlZ2lvbmFsIEFkb3B0aW9uIEFnZW5jeSwgQWRvcHRpb24gU291dGggRWFzdCAoQVNFKSwgZW5zdXJlcyB0aGF0IGFwcGxpY2FudHMgaGF2ZSBhY2Nlc3MgdG8gaW5mb3JtYXRpb24gZXZlbmluZ3MgYXQgYSB0aW1lIGFuZCBsb2NhdGlvbiBjb252ZW5pZW50IHRvIHRoZW0uIEFTRSB3b3JrcyB0b2dldGhlciB0byBpZGVudGlmeSBsb2NhbCBmYW1pbGllcyBmb3IgdGhlaXIgY2hpbGRyZW4gdG8gcHJldmVudCBwbGFjZW1lbnRzIGJlaW5nIHRvbyBmYXIgYWZpZWxkLiBUaGUgbmV4dCBBU0UgQWRvcHRpb24gRXhjaGFuZ2UgaXMgYmVpbmcgaGVsZCBvbiAxNnRoIE9jdG9iZXIgMjAxNyBhdCB0aGUgc3RhcnQgb2YgTmF0aW9uYWwgQWRvcHRpb24gV2Vlay4gVGhlIHByZXNlbmNlIG9mIHRoZSBMb2NhbCBBdXRob3JpdHnigJlzIEFkb3B0aW9uIFNlcnZpY2UgYW5kIHRoZSBuZWVkIGZvciBhZG9wdGVycyBpcyBiZWluZyBwcm9tb3RlZCB0aHJvdWdoIGEgdmFyaWV0eSBvZiBtZWRpYSBhbmQgZXZlbnRzLiBQbGFubmluZyBpcyBhbHNvIHVuZGVyd2F5IHRvIGRldmVsb3AgYW4gQWRvcHRpb24gU291dGggRWFzdCB3ZWJzaXRlLCBhcyByZXNlYXJjaCBwYXBlciBldmlkZW5jZWQgdGhhdCB0aGUgbWFqb3JpdHkgb2YgcGVvcGxlIGludGVyZXN0ZWQgaW4gYWRvcHRpb24gbWFkZSB0aGVpciBmaXJzdCBzdGVwcyB0aHJvdWdoIG9ubGluZSBhY3Rpdml0eS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlcmUgaXMgYSA0MDkgZGF5cyBhdmVyYWdlIGZvciB0aGUgNyBjaGlsZHJlbiBhZG9wdGVkIGluIHRoZSBmaXJzdCBxdWFydGVyIG9mIDIwMTcgZnJvbSBlbnRlcmluZyBjYXJlIHRvIGJlaW5nIHBsYWNlZCBmb3IgYWRvcHRpb24sIGV2aWRlbmNpbmcgdGhhdCB3ZSBhcmUgcGxhY2luZyBjaGlsZHJlbiBpbiBhIHRpbWVseSBtYW5uZXIuIFRoZXJlIGFyZSBoaXN0b3JpYyBjaGlsZHJlbiBmcm9tIHRoZSBwYXN0IHRocmVlIHllYXJzIHdob3NlIHRpbWVzY2FsZXMgZnJvbSBlbnRlcmluZyBjYXJlIHRvIGJlaW5nIHBsYWNlZCBmb3IgYWRvcHRpb24gaGF2ZSBiZWVuIHNpZ25pZmljYW50bHkgbG9uZ2VyIHRoYW4gd2Ugd291bGQgbGlrZSwgYnV0IGdpdmVuIHRoZWlyIHNwZWNpZmljIG5lZWRzLHRoZXNlIHBsYW5zIGhhdmUgYmVlbiBpbiB0aGVpciBiZXN0IGludGVyZXN0cy5cXG5cXG5UaGUgbWFpbiBwcmlvcml0eSBmb3IgdGhlIEFkb3B0aW9uIFNlcnZpY2UgY3VycmVudGx5IGlzIGluIHJlY3J1aXRpbmcgYSBsYXJnZXIgcG9vbCBvZiBhZG9wdGVycyB0byBtZWV0IHRoZSBuZWVkcyBvZiB0aGUgaW5jcmVhc2VkIG51bWJlciBvZiBjaGlsZHJlbiB3aXRoIGFkb3B0aW9uIGNhcmUgcGxhbnMuIFRoZXJlIGhhcyBiZWVuIGluY3JlYXNlZCBtYXJrZXRpbmcgYWN0aXZpdHkgYW5kIHRoZXJlIGlzIG1vcmUgY2FwYWNpdHkgaW4gU3RhZ2UgMSBBZG9wdGlvbiB0byByZXNwb25kIHRvIGVucXVpcmVycyBpbiBhIHRpbWVseSBtYW5uZXIuIEFsb25nc2lkZSB0aGlzLCBjYXBhY2l0eSB3aXRoaW4gdGhlIEFkb3B0aW9uIHRlYW0gaXMgYmVpbmcgcmV2aWV3ZWQgdG8gZW5zdXJlIHRoYXQgd2UgYXJlIGFibGUgdG8gcHJvZ3Jlc3MgYXBwbGljYXRpb25zIGV4cGVkaWVudGx5LlxcblxcblRoZSBBZG9wdGlvbiBQYXJ0bmVyc2hpcCBpcyBhbHJlYWR5IHNoYXJpbmcgaW5mb3JtYXRpb24gZXZlbnRzIGFuZCBwcmVwYXJhdGlvbiBncm91cHMsIGFuZCB0aGUgZmlyc3QgQWRvcHRpb24gRXhjaGFuZ2UgZXZlbnQgaGFzIHRha2VuIHBsYWNlLCB3aXRoIHRoZSBwbGFuIHRvIGhvbGQgdGhlc2UgZXZlbnRzIDMgdGltZXMgYSB5ZWFyLlxcblxcbiAgXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciA0IC0gTWFyY2ggMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5JbiB0aGUgeWVhciAyMDE2LTIwMTcgLCBXZXN0IFN1c3NleCBoYXMgYWNoaWV2ZWQgYWRvcHRpb24gZm9yIDQ4IGNoaWxkcmVuIGFnYWluc3QgaXRzIHRhcmdldCBvZiA0MCBjaGlsZHJlbiwgd2hpY2ggaXMgYSBzaWduaWZpY2FudCBpbmNyZWFzZSBvbiB0aGUgcHJldmlvdXMgeWVhcuKAmXMgdG90YWwgb2YgMzMgYWRvcHRlZCBjaGlsZHJlbi4gMTMgb2YgdGhlIGNoaWxkcmVuIGFkb3B0ZWQgb3ZlciB0aGUgcGFzdCB5ZWFyIGhhZCBiZWVuIHBsYWNlZCBmb3IgYWRvcHRpb24gZm9yIHVwIHRvIDE4IG1vbnRocyBwcmlvciB0byBBZG9wdGlvbiBPcmRlcnMgYmVpbmcgZ3JhbnRlZCwgcmVhc29ucyBmb3Igd2hpY2ggaW5jbHVkZWQgY2hpbGRyZW4gd2l0aCBjb21wbGV4IG5lZWRzLCBvbGRlciBjaGlsZHJlbiBhbmQgY2hpbGRyZW4gd2l0aCBkaXNhYmlsaXRpZXMgYmVpbmcgYWRvcHRlZCBieSB0aGVpciBmb3N0ZXIgY2FyZXJzIGFmdGVyIGJlaW5nIGluIHBsYWNlbWVudCBmb3Igc29tZSB0aW1lLiBTb2NpYWwgd29ya2VycyB3aXRoaW4gQWRvcHRpb24gaGF2ZSBzaG93biBhIGhpZ2ggbGV2ZWwgb2YgY29tbWl0bWVudCB0byB3b3JraW5nIGluIHBhcnRuZXJzaGlwIHdpdGggdGhlaXIgQ2hpbGRyZW4gTG9va2VkIEFmdGVyIGNvbGxlYWd1ZXMsIGluIHRyYWNraW5nIGNoaWxkcmVuIHdpdGggcGxhbnMgZm9yIHBlcm1hbmVuY3kgdGhyb3VnaCBtb250aGx5IG1lZXRpbmdzIGFuZCB3aXRoIHRoZSBzdXBwb3J0IG9mIHRoZSBQZXJtYW5lbmN5IFBsYW5uaW5nIENvLW9yZGluYXRvci4gVGhlc2Ugc3lzdGVtcyBoYXZlIGVuYWJsZWQgd29ya2VycyB0byBpZGVudGlmeSBhZG9wdGVycyBhdCBhbiBlYXJseSBzdGFnZSB3aGVyZXZlciBwb3NzaWJsZSBhbmQgdG8gbG9vayBmdXJ0aGVyIGFmaWVsZCBhcyBzb29uIGFzIHBvc3NpYmxlIGZvciBmYW1pbHkgZmluZGluZyBmb3IgY2hpbGRyZW4gd2hvc2UgbmVlZHMgY2Fubm90IGJlIG1ldCB3aXRoaW4gV2VzdCBTdXNzZXggcmVzb3VyY2VzLlxcblxcblRoZXJlIGhhcyBiZWVuIGEgNjAlIGluY3JlYXNlIGluIENhcmUgUHJvY2VlZGluZ3Mgd2l0aGluIFdlc3QgU3Vzc2V4IG92ZXIgdGhlIHBhc3QgdHdvIHllYXJzLCB3aGljaCBpbiB0dXJuIGhhcyBpbmNyZWFzZWQgdGhlIG51bWJlciBvZiBjaGlsZHJlbiB3aXRoIGFkb3B0aW9uIGNhcmUgcGxhbnMuIFRoZXJlIGhhcyBiZWVuIGluY3JlYXNlZCBwdWJsaWNpdHkgYXJvdW5kIGFkb3B0aW9uIHRvIGFkdmlzZSB0aGUgcHVibGljIHRoYXQgV2VzdCBTdXNzZXggd291bGQgbGlrZSB0byBoZWFyIGZyb20gZmFtaWxpZXMgaW50ZXJlc3RlZCBpbiBhZG9wdGlvbiwgYW5kIHRoYXQgdGhlcmUgaXMgaW4gdGhlIHJlZ2lvbiBvZiA1MCBjaGlsZHJlbiBmcm9tIGJhYmllcyB1cHdhcmRzIHdpdGggYSBwbGFuIGZvciBhZG9wdGlvbi4gVGhlIFJlY3J1aXRtZW50IFN0cmF0ZWd5IGlzIHVuZGVyIHJldmlldywgd2l0aCBpbmNyZWFzZWQgc29jaWFsIG1lZGlhIHByZXNlbmNlIGluIHBsYWNlIGFuZCBtb250aGx5IHJldmlldyBtZWV0aW5ncyB0byBhc2NlcnRhaW4gdGhlIGltcGFjdCBvZiBtYXJrZXRpbmcgdXBvbiByZWNydWl0bWVudC5cXG5cXG5cIn1dLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOnRydWUsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRoZSBnb2FsIGlzIHRvIGFjaGlldmUgc3VjY2Vzc2Z1bCBvdXRjb21lcyBmb3IgQ2hpbGRyZW4gTG9va2VkIEFmdGVyLiBTdWNjZXNzIGluIHRoaXMgZ29hbCBpcyBtZWFzdXJlZCB1c2luZyB0aGUgYXZlcmFnZSB0aW1lIGJldHdlZW4gYSBjaGlsZCBlbnRlcmluZyBjYXJlIGFuZCBtb3ZpbmcgaW4gd2l0aCB0aGVpciBhZG9wdGl2ZSBmYW1pbHkgKGluIGRheXMpXCIsXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiUmVkdWNpbmcgdGhlIGF2ZXJhZ2UgbnVtYmVyIG9mIGRheXMsIGJldHdlZW4gYSBjaGlsZCBlbnRlcmluZyBjYXJlIGFuZCBtb3ZpbmcgaW4gd2l0aCB0aGVpciBhZG9wdGl2ZSBmYW1pbHkgXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTUtMTAtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiZGF5cyIsInRhcmdldCI6NDI2LCJ0YXJnZXRfdHlwZSI6ImFic29sdXRlIiwidGFyZ2V0X2RlbHRhIjo0MjYsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjQ4NiwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiJjdnlxLTRxZWkifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPCJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjksXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJyZWR1Y2VcIixcInRhcmdldF90eXBlXCI6XCJhYnNvbHV0ZVwifSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNn0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE2fX0sXCJzdGFydFwiOlwiMjAxNi0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNi0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9fSxcIm5hbWVcIjpcInRoZSBhdmVyYWdlIG51bWJlciBvZiBkYXlzLCBiZXR3ZWVuIGEgY2hpbGQgZW50ZXJpbmcgY2FyZSBhbmQgbW92aW5nIGluIHdpdGggdGhlaXIgYWRvcHRpdmUgZmFtaWx5XCJ9In0sImNyZWF0ZWRfYXQiOiIyMDE4LTA3LTIzVDEwOjI4OjEwLjE4NFoiLCJ2ZXJzaW9uIjoiMjAxOC0wNy0yM1QxMDoyODoxMC4xODRaIiwidGFyZ2V0X3RvbGVyYW5jZSI6NTAsImlkIjoidmt4bS1qbnEyIn0sInJlbGF0ZWRfbWVhc3VyZXMiOlt7Im1ldGFkYXRhIjoiIiwiaWQiOiJhYjR5LWZwNWkifV0sImJhc2VfZGFzaGJvYXJkIjoiNTc0ci1oNW5jIiwidXBkYXRlZF9hdCI6IjIwMTgtMDctMjNUMTA6Mjg6NTIuMzcyWiIsImNyZWF0ZWRfYXQiOiIyMDE4LTA3LTIzVDEwOjI4OjEwLjIzM1oiLCJ2ZXJzaW9uIjoiMjAxOC0wNy0yM1QxMDoyODo1Mi4zNzJaIiwiY3JlYXRlZF9ieSI6Ijc5N2ktNnI5ZyJ9LHsiaWQiOiJkbWE1LTVzeDciLCJuYW1lIjoiUXVhbGl0eSBvZiBDaGlsZHJlbidzIFNlcnZpY2VzIiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJpY29uXCI6XCJjcm9zc2hhaXJcIixcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlJhdGluZ3MqKlxcblxcbigxKSBPdXRzdGFuZGluZywgKDIpIEdvb2QsICgzKSBSZXF1aXJlcyBJbXByb3ZlbWVudCBhbmQgKDQpIEluYWRlcXVhdGVcXG5cXG5UaGUgb3V0Y29tZSBvZiB0aGUgbW9zdCByZWNlbnQgT2ZzdGVkIEluc3BlY3Rpb24gdG8gYmUgY29uZHVjdGVkIGZvciB0aGVzZSBzZXJ2aWNlcyB3aXRoaW4gV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgcmF0ZWQgdGhlIGF1dGhvcml0eSBhcyAnUmVxdWlyZXMgSW1wcm92ZW1lbnQnLiBUaGlzIGlzIGFzIHBlciB0aGUgaW5zcGVjdGlvbiByZXBvcnQgaXNzdWVkIGluIEphbnVhcnkgMjAxNi5cXG5cXG5QcmlvciB0byB0aGF0LCBvdXIgbGFzdCBPZnN0ZWQgaW5zcGVjdGlvbiBvZiBvdXIgY2hpbGQgcHJvdGVjdGlvbiBhcnJhbmdlbWVudHMgaW4gRmVicnVhcnkgMjAxMywgT2ZzdGVkIGp1ZGdlZCB0aGUgc2VydmljZSB0aGF0IHdlIHByb3ZpZGUgdG8ga2VlcCBjaGlsZHJlbiBhbmQgeW91bmcgcGVvcGxlIHNhZmUgdG8gYmUgXFxcImFkZXF1YXRlXFxcIi4gVGhpcyBmb2xsb3dlZCBhIHByZXZpb3VzIGluc3BlY3Rpb24gaW4gTm92ZW1iZXIgMjAxMCB3aGljaCBjb25zaWRlcmVkIG91ciBzZXJ2aWNlIHRvIGJlIFxcXCJpbmFkZXF1YXRlXFxcIi4gRHVlIHRvIHRoZSB3YXkgaW4gd2hpY2ggT2ZzdGVkIGNvbmR1Y3RzIGluc3BlY3Rpb25zIGl0IHdvdWxkIGhhdmUgYmVlbiBpbXBvc3NpYmxlIGZvciB0aGUgQ291bnR5IENvdW5jaWwgdG8gYWNoaWV2ZSBhIHJhdGluZyBiZXR0ZXIgdGhhbiBcXFwiYWRlcXVhdGVcXFwiIGZvbGxvd2luZyBhbiBcXFwiaW5hZGVxdWF0ZVxcXCIgcmF0aW5nIGluIDIwMTAuXFxuXFxuSW1wcm92ZW1lbnRzIGhhdmUgdGhlcmVmb3JlIGJlZW4gbWFkZSB0byB0aGUgc2VydmljZSB3ZSBwcm92aWRlIHRvIGtlZXAgY2hpbGRyZW4gYW5kIHlvdW5nIHBlb3BsZSBzYWZlIGJ1dCB3ZSBhcmUgbm90IGNvbXBsYWNlbnQuIEl0IGlzIG91ciBhbWJpdGlvbiB0byByZWNlaXZlIGEgXFxcImdvb2RcXFwiIG9yIGJldHRlciByYXRpbmcgYXQgb3VyIG5leHQgT2ZzdGVkIGluc3BlY3Rpb24uIFBsYW5zIGFyZSBpbiBwbGFjZSB0byBpbXByb3ZlIG91ciBzZXJ2aWNlcyBmb3IgdnVsbmVyYWJsZSBjaGlsZHJlbiBhbmQgeW91bmcgcGVvcGxlIGFuZCB3ZSBiZWxpZXZlIHRoYXQgdGhlIGVmZm9ydHMgd2UgYXJlIG1ha2luZyB3aWxsIHJlc3VsdCBpbiBmdXJ0aGVyIGltcHJvdmVtZW50cyB0byBvdXIgT2ZzdGVkIHJhdGluZyBhdCBvdXIgbmV4dCBpbnNwZWN0aW9uLlxcblxcbldoaWxlIG91ciBzYWZlZ3VhcmRpbmcgc2VydmljZXMgaGF2ZSBiZWVuIHRoZSBzdWJqZWN0IG9mIEdvdmVybm1lbnQgaW50ZXJ2ZW50aW9uIGFuZCBhcmUgbm93IGFkZXF1YXRlLCBvdXIgRm9zdGVyaW5nIGFuZCBBZG9wdGlvbiBzZXJ2aWNlcyBoYXZlIGJvdGggYmVlbiBpbnNwZWN0ZWQgaW4gdGhlIGxhc3QgdHdvIHllYXJzIGFuZCBib3RoIHNlcnZpY2VzIHdlcmUganVkZ2VkIHRvIGJlIEdvb2Qgd2l0aCBPdXRzdGFuZGluZyBmZWF0dXJlcy5cXG5cXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgT2ZzdGVkIHJlZ3VsYXRlcyBhbmQgaW5zcGVjdHMgY2hpbGRyZW7igJlzIHNvY2lhbCBjYXJlLCBwbGVhc2UgZ28gdG8gdGhlIE9mc3RlZCB3ZWJzaXRlOlxcblxcbiBcXG5cXG5baHR0cDovL3d3dy5vZnN0ZWQuZ292LnVrL2NoaWxkcmVuLWFuZC1mYW1pbGllcy1zZXJ2aWNlc11bMF1cXG5cXG5bMF06IGh0dHA6Ly93d3cub2ZzdGVkLmdvdi51ay9jaGlsZHJlbi1hbmQtZmFtaWxpZXMtc2VydmljZXNcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblJlc3BvbmRpbmcgdG8gY29uY2VybnMgaGFzIGJlZW4gYSBwcmlvcml0eSBhcmVhIGZvciB1cyBhbmQgd2UgY2FuIG5vdyBkZW1vbnN0cmF0ZSB0aGF0IDk5JSBvZiByZWZlcnJhbHMgYXJlIGRlYWx0IHdpdGggd2l0aGluIDI0aHJzLlxcblxcbldvcmsgaGFzIGFsc28gZm9jdXNlZCBvbiBpbXByb3ZpbmcgdGhlIHRpbWVsaW5lc3Mgb2YgY2hpbGQgcHJvdGVjdGlvbiBjb25mZXJlbmNlcyB0byBlbnN1cmUgdGhhdCBjaGlsZHJlbiBhcmUgc2FmZSBhbmQgcmVndWxhcmx5IHJldmlld2VkLiBDdXJyZW50IGRhdGEgc2hvd3MgdGhhdCA5MiUgb2YgY29uZmVyZW5jZXMgYXJlIGhlbGQgb24gdGltZS4gVGhpcyBjb21wYXJlcyB0byBhIG5hdGlvbmFsIGZpZ3VyZSBvZiA3NyUuXFxuXFxuKiBBZGRpdGlvbmFsbHkgd2UgYXJlIHVuZGVydGFraW5nIHJlZ3VsYXIgYXVkaXRzIG9mIGNoaWxkIHByb3RlY3Rpb24gcGxhbnMgdG8gZW5zdXJlIHRoYXQgd2UgaGF2ZSBzdHJlbmd0aGVuZWQgZGVjaXNpb24gbWFraW5nIGFuZCB0aGF0IHB1cnBvc2VmdWwgd29yayBpcyB0YWtpbmcgcGxhY2Ugd2l0aCBjaGlsZHJlbiBhdCByaXNrIG9mIGhhcm0uXFxuXFxuT3ZlcmFsbCBwZXJmb3JtYW5jZSBoYXMgY29udGludWVkIHRvIGltcHJvdmUgaW4gUXVhcnRlciAzIGFuZCB3ZSBoYXZlIHJvYnVzdCBwbGFucyBpbiBwbGFjZSB0byBlbnN1cmUgdGhhdCB3ZSBmb2N1cyBvbiBxdWFsaXR5IG9mIHByYWN0aWNlIHNvIHRoYXQgb3VyIGNoaWxkcmVuIGFuZCB0aGVpciBmYW1pbGllcyBnZXQgdGhlIGJlc3Qgc2VydmljZXMgYW5kIHN1cHBvcnQgdG8gbWVldCB0aGVpciBuZWVkcy5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLUp1bmUgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5JbiB0aGlzIHF1YXJ0ZXIgd2UgaGF2ZSBiZWVuIGFibGUgdG8gaW1wcm92ZSBob3cgcXVpY2tseSB3ZSBjYW4gbWFrZSBkZWNpc2lvbnMgd2hlbiB3ZSBhcmUgYXNrZWQgaWYgd2UgY2FuIHByb3ZpZGUgc3VwcG9ydCB0byBhIGNoaWxkLiBOb3cgNzAlIG9mIHJlZmVycmFscyBoYXZlIGEgZGVjaXNpb24gd2l0aGluIDI0IGhvdXJzLiBPdXIgdGFyZ2V0IGZvciB0aGlzIHllYXIgaXMgdG8gYmUgYWJsZSB0byBhY2hpZXZlIHRoaXMgaW4gODUlIG9mIGNhc2VzLiBMYXRlciB0aGlzIHllYXIgaW4gU2VwdGVtYmVyLCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5ldyByZWNvcmRpbmcgdG9vbCB3aWxsIHN1cHBvcnQgaW1wcm92ZWQgdGltZWxpbmVzcy5cXG5cXG5XZSB3YW50IHRvIGVuc3VyZSB0aGUgYmVzdCBvdXRjb21lcyBmb3IgY2hpbGRyZW4gd2UgbG9vayBhZnRlci4gV2Ugd2FudCB0byBlbnN1cmUgY2hpbGRyZW4gd2hvIG5lZWQgc3BlY2lhbGlzdCBlbW90aW9uYWwgb3IgcHN5Y2hvbG9naWNhbCBzdXBwb3J0IGFzIGEgcmVzdWx0IG9mIHRyYXVtYSB0aGV5IGhhdmUgc3VmZmVyZWQgYXJlIGlkZW50aWZpZWQgYW5kIHByb3ZpZGVkIHdpdGggc2VydmljZXMgd2l0aG91dCBkZWxheS4gSW4gUXVhcnRlciwgMSwgOTQlIG9mIGNoaWxkcmVuIGxvb2tlZCBhZnRlciBoYWQgYW4gYXNzZXNzbWVudCBvZiBuZWVkIGNhbGxlZCBhIHN0cmVuZ3RocyBhbmQgZGlmZmljdWx0aWVzIHF1ZXN0aW9ubmFpcmUuIFdlIGhhdmUgZXhjZWVkZWQgb3VyIHRhcmdldCBmb3IgdGhpcyB5ZWFyLiBXZSBoYXZlIGFsc28gYmVlbiBhYmxlIHRvIGVuc3VyZSBjaGlsZHJlbiBkbyBub3Qgd2FpdCBmb3IgcHN5Y2hvbG9naWNhbCBhc3Nlc3NtZW50IG9yIHRoZXJhcHkgd2l0aCA5NSUgb2YgY2hpbGRyZW4gcmVjZWl2aW5nIGhlbHAgd2l0aGluIHRpbWUgc2NhbGVzLlxcblxcbiBcXG5cXG5XZSB3YW50IHRvIG5hcnJvdyB0aGUgYWNoaWV2ZW1lbnQgZ2FwIGJldHdlZW4gY2hpbGRyZW4gbG9va2VkIGFmdGVyIGFuZCBvdGhlciBjaGlsZHJlbiwgYW5kIHN1cHBvcnQgdGhlbSB0byBiZSByZWFkeSBmb3Igd29yayBhcyB0aGV5IGdldCBvbGRlci4gSW4gUXVhcnRlciAxLCA2NiUgb2YgY2FyZSBsZWF2ZXJzIHdlcmUgaW52b2x2ZWQgaW4gZWR1Y2F0aW9uLCB0cmFpbmluZyBvciBlbXBsb3ltZW50LiBUaGlzIGlzIGFuIGltcHJvdmVtZW50IG9uIGxhc3QgeWVhciBhbmQgaXMgYmV0dGVyIHRoYW4gc2ltaWxhciBhdXRob3JpdGllcyBtYXRjaGVkIGZvciBuZWVkLiBPdXIgYW1iaXRpb24gaXMgdG8gY29udGludWUgdG8gYWNoaWV2ZSBpbXByb3ZlbWVudCBpbiB0aGlzIHJlc3BlY3Qgc28gdGhhdCB5b3VuZyBwZW9wbGUgbWFrZSBhIGdvb2QgdHJhbnNpdGlvbiB0byBhZHVsdCBsaWZlIGFsdGhvdWdoIHdlIGhhdmUgbWV0IHRoZSB0YXJnZXQgWzY1JV0gc2V0IGZvciB0aGlzIHllYXIuXFxuXFxuV2Ugd2FudCB0byBtYWtlIHN1cmUgeW91bmcgY2hpbGRyZW4gd2hvIGNhbm5vdCBsaXZlIHNhZmVseSB3aXRoIHRoZWlyIHBhcmVudHMgZG8gbm90IHdhaXQgYmVmb3JlIHRoZXkgY2FuIGpvaW4gYSBzYWZlIHBlcm1hbmVudCBmYW1pbHkgdGhyb3VnaCBhZG9wdGlvbi4gRnJvbSBDb3VydCBwZXJtaXNzaW9uIHRvIG1hdGNoIHdpdGggYWRvcHRlcnMgaGFzIGJlZW4gMTg3IGRheXMgaW4gUXVhcnRlciAxLiBXZSBoYXZlIGluY3JlYXNlZCByZWNydWl0bWVudCBhbmQgd2lsbCBjb250aW51ZSB0byB3b3JrIG9uIGluY3JlYXNpbmcgb3VyIHBvb2wgb2YgYWRvcHRlcnMuIE91ciBwZXJmb3JtYW5jZSBpbiB0aW1lbGluZXNzIG9mIHNlY3VyaW5nIGEgcGVybWFuZW50IHBsYWNlbWVudCBmb3IgYSBjaGlsZCByZW1haW5zIGdvb2Qgd2hlbiBjb21wYXJlZCB0byBzaW1pbGFyIGF1dGhvcml0aWVzLlxcblxcbk92ZXJhbGwgcGVyZm9ybWFuY2UgaGFzIGNvbnRpbnVlZCB0byBpbXByb3ZlIGluIFF1YXJ0ZXIgMSBXZSB3aWxsIGFsc28gY29udGludWUgdG8gZm9jdXMgb24gcXVhbGl0eSBvZiBwcmFjdGljZSB0byBlbnN1cmUgb3VyIGNoaWxkcmVuIGFuZCBmYW1pbGllcyBnZXQgdGhlIGJlc3Qgc2VydmljZXMuIFRoaXMgd2lsbCBwb3NpdGlvbiB0aGUgc2VydmljZSB3ZWxsIHRvIGFjaGlldmUgYSDigJxHb29k4oCdIGp1ZGdlbWVudCBhdCBmdXR1cmUgaW5zcGVjdGlvbiBpZiB3ZSBjb250aW51ZSB0byBkcml2ZSBjb25zaXN0ZW50IGdvb2QgcHJhY3RpY2UuIFRoaXMgaXMgY2hhbGxlbmdlZCBieSBpbmNyZWFzZWQgY2FzZS13b3JrIGRlbWFuZCBpbiBRdWFydGVyIDEgY3JlYXRpbmcgc29tZSB3b3JrbG9hZCBwcmVzc3VyZXMgYWNyb3NzIHRoZSBzZXJ2aWNlLlxcblxcblwifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiSW1wcm92ZSBvdXIgQ2hpbGRyZW4ncyBTZXJ2aWNlcycgT2ZzdGVkIHJhdGluZyB0byBnb29kXCIsXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6dHJ1ZSxcImN1c3RvbV9zdWJ0aXRsZVwiOlwiVGhpcyBnb2FsIGlzIG1lYXN1cmVkIHVzaW5nIHRoZSBPZnN0ZWQgZnJhbWV3b3JrIGZvciB0aGUgaW5zcGVjdGlvbiBvZiBzZXJ2aWNlcyBmb3IgY2hpbGRyZW4gaW4gbmVlZCBvZiBoZWxwIGFuZCBwcm90ZWN0aW9uLCBjaGlsZHJlbiBsb29rZWQgYWZ0ZXIgYW5kIGNhcmUgbGVhdmVyc1wifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDEyLTA2LTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6InJhdGluZyIsInRhcmdldCI6MiwidGFyZ2V0X3R5cGUiOiJhYnNvbHV0ZSIsInRhcmdldF9kZWx0YSI6MCwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJiYXNlbGluZSI6MiwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiJtOHZzLTJpaTMifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPiJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjUsXCJ5ZWFyXCI6MjAxMn0sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJpbmNyZWFzZVwiLFwibWFpbnRhaW5fdHlwZVwiOlwiPlwifSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNH0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fX0sXCJzdGFydFwiOlwiMjAxNC0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNC0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9fSxcIm5hbWVcIjpcIm91ciBDaGlsZHJlbidzJyBTZXJ2aWNlcyBPZnN0ZWQgcmF0aW5nIFwiLFwidXNlX3Byb2dyZXNzX292ZXJyaWRlXCI6dHJ1ZSxcInByb2dyZXNzX292ZXJyaWRlXCI6XCJ3aXRoaW5fdG9sZXJhbmNlXCJ9In0sImNyZWF0ZWRfYXQiOiIyMDE4LTA3LTIzVDEwOjM1OjE1LjM4MloiLCJ2ZXJzaW9uIjoiMjAxOC0wNy0yM1QxMDozNToxNS4zODJaIiwiaWQiOiJjN2Z4LTU0eGUifSwicmVsYXRlZF9tZWFzdXJlcyI6W10sImJhc2VfZGFzaGJvYXJkIjoiNTc0ci1oNW5jIiwidXBkYXRlZF9hdCI6IjIwMTgtMDctMjNUMTA6Mzc6MzIuMjQ2WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTA3LTIzVDEwOjM1OjE1LjQyNVoiLCJ2ZXJzaW9uIjoiMjAxOC0wNy0yM1QxMDozNzozMi4yNDZaIiwiY3JlYXRlZF9ieSI6Ijc5N2ktNnI5ZyJ9LHsiaWQiOiJoaGc1LWV5dmgiLCJuYW1lIjoiUHJvZ3Jlc3MgY2hlY2sgb2YgY2hpbGQgZGV2ZWxvcG1lbnQiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcImljb25cIjpcImNyb3NzaGFpclwiLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqVGhpcyBtZWFzdXJlIHJlbGF0ZXMgdG8gY2hpbGRyZW4gaW4gTmF0aW9uYWwgQ3VycmljdWx1bSB5ZWFyIGdyb3VwIFJlY2VwdGlvbiAoY2hpbGRyZW4gYWdlZCA0LTUgeWVhcnMpKipcXG5cXG5UaGUgc3RhdHV0b3J5IEVhcmx5IFllYXJzIEZvdW5kYXRpb24gU3RhZ2UgKEVZRlMpIGZyYW1ld29yayByZXF1aXJlcyBhIHByb2ZpbGUgYXNzZXNzbWVudCB0byBiZSBjYXJyaWVkIG91dCBpbiB0aGUgZmluYWwgdGVybSBvZiB0aGUgeWVhciBpbiB3aGljaCBhIGNoaWxkIHJlYWNoZXMgYWdlIDUuIFRoZSBtYWluIHB1cnBvc2Ugb2YgdGhlIHByb2ZpbGUgaXMgdG8gcHJvdmlkZSBhIHJlbGlhYmxlLCB2YWxpZCBhbmQgYWNjdXJhdGUgYXNzZXNzbWVudCBvZiBpbmRpdmlkdWFsIGNoaWxkcmVuLlxcblxcbiBDaGlsZHJlbiBhcmUgZGVmaW5lZCBhcyBoYXZpbmcgcmVhY2hlZCBhIGdvb2QgbGV2ZWwgb2YgZGV2ZWxvcG1lbnQgYXQgdGhlIGVuZCBvZiB0aGUgRVlGUyBpZiB0aGV5IGhhdmUgYWNoaWV2ZWQgYXQgbGVhc3QgdGhlIGV4cGVjdGVkIGxldmVsIGluICAzIHByaW1lIGFyZWFzIG9mIGxlYXJuaW5nOi1cXG5cXG4qIHBlcnNvbmFsLCBzb2NpYWwgYW5kIGVtb3Rpb25hbCBkZXZlbG9wbWVudFxcblxcbiogcGh5c2ljYWwgZGV2ZWxvcG1lbnRcXG5cXG4qIGNvbW11bmljYXRpb24gYW5kIGxhbmd1YWdlXFxuXFxuYW5kIHNwZWNpZmljIGFyZWFzIGluOi1cXG5cXG4qIG1hdGhlbWF0aWNzXFxuXFxuKiBsaXRlcmFjeVxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKk5vdmVtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuR0xEIGZvciBhbGwgY2hpbGRyZW4gaW4gMjAxNyBpcyA3MC42JSBhbiBpbXByb3ZlbWVudCBvZiAyLjMlIGNvbXBhcmVkIHRvIDIwMTY7IGNvbnRpbnVpbmcgdGhlIHRyZW5kIG9mIHllYXIgb24geWVhciBpbXByb3ZlbWVudC5cXG5cXG5XZXN0IFN1c3NleCBhbHNvIGNvbnRpbnVlcyB0byByaXNlIGluIHRoZSBuYXRpb25hbCByYW5raW5ncyBmb3IgR0xELGJlaW5nIHBsYWNlZCA3OHRoIHRoaXMgeWVhciwgYW4gaW1wcm92ZW1lbnQgb2YgMTkgcGxhY2VzIG5hdGlvbmFsbHkuQ29tcGFyZWQgdG8gc3RhdGlzdGljYWwgbmVpZ2hib3VycywgV2VzdCBTdXNzZXggaXMgcmFua2VkIDd0aCBvZiAxMSBMb2NhbCBBdXRob3JpdGllcywgYW4gaW1wcm92ZW1lbnQgb2YgMiBwbGFjZXMgc2luY2UgMjAxNi5cXG5cXG5UaGUgYXR0YWlubWVudCBnYXAgYmV0d2VlbiB0aGUgbG93ZXN0IGFjaGlldmluZyAyMCUgb2YgY2hpbGRyZW4gYW5kIHRoZSByZXN0IGhhcyB3aWRlbmVkIGluIDIwMTcgYXQgdGhlIHNhbWUgcmF0ZSBhcyB0aGUgbmF0aW9uYWwgYXR0YWlubWVudCBnYXAuIFRoZSBhdHRhaW5tZW50IGdhcCBmb3IgRW5nbGFuZCB3aWRlbmVkIGZyb20gMzEuNCUgdG8gMzEuNyU7IHdoaWxzdCB0aGUgZ2FwIGluIFdlc3QgU3Vzc2V4IGhhcyB3aWRlbmVkIGZyb20gMjcuMSUgdG8gMjcuNCVcXG5cXG5HaXJsc+KAmSBhdHRhaW5tZW50IGluIFdlc3QgU3Vzc2V4IGNvbnRpbnVlcyB0byBiZSBoaWdoZXIgdGhhbiBib3lz4oCZLCB3aXRoIHRoZSBncmVhdGVzdCBkaWZmZXJlbmNlcyBpbiBMaXRlcmFjeSBhbmQgRXhwcmVzc2l2ZSBBcnRzIGFuZCBkZXNpZ24uXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAxIC0gSnVuZSAyMDE3KipcXG5cXG4tIC0gLVxcblxcbldvcmsgdG8gcmFpc2UgR29vZCBMZXZlbCBvZiBEZXZlbG9wbWVudCAoIEdMRCkgYWNyb3NzIHRoZSBjb3VudHkgaGFzIGNvbnRpbnVlZCB3aXRoIHN1cHBvcnQgYmVpbmcgcHJvdmlkZWQgZm9yIGFsbCBzY2hvb2xzIHdoZXJlIEdMRCB3YXMgYmVsb3cgbmF0aW9uYWwgYXZlcmFnZS4gVGhlIGxldmVsIG9mIEdMRCBpcyByZWNvcmRlZCBlYWNoIHN1bW1lciBidXQgdGhlIGZ1bGwgcmVzdWx0cyBhcmUgbm90IHlldCBhdmFpbGFibGUgZm9yIDIwMTcuIEVhcmx5IGluZGljYXRpb25zIGFyZSB0aGF0IHN0YW5kYXJkcyBoYXZlIHJpc2VuIGJvdGggaW4gV2VzdCBTdXNzZXggYW5kIG5hdGlvbmFsbHkgd2l0aCBXZXN0IFN1c3NleCBiZWluZyBicm9hZGx5IGluIGxpbmUgd2l0aCBuYXRpb25hbCBhdmVyYWdlcy5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipOb3ZlbWJlciAyMDE2KipcXG5cXG4tIC0gLVxcblxcbkdvb2QgbGV2ZWwgb2YgZGV2ZWxvcG1lbnQgKEdMRCkgZm9yIGFsbCBjaGlsZHJlbiBpbiAyMDE2IHdhcyA2OC4zJSwgYW4gaW1wcm92ZW1lbnQgb2YgNC4zJSBjb21wYXJlZCB0byAyMDE1IGFuZCBjb250aW51aW5nIHRoZSB0cmVuZCBvZiA0IG9yIDUlIHBvaW50IGluY3JlYXNlcyBzaW5jZSAyMDEzLCB3aGVyZWFzIHRoZSBhdmVyYWdlIGluY3JlYXNlIGluIEdMRCBhY3Jvc3MgdGhlIFNvdXRoIEVhc3Qgd2FzIG9ubHkgMi45JS5cXG5cXG5BcyBpbiBFbmdsYW5kIGFuZCB0aGUgU291dGggRWFzdCwgdGhlcmUgaXMgYSBkaXN0aW5jdCBnZW5kZXIgZ2FwIGluIEdMRCBhdHRhaW5tZW50IGluIFdlc3QgU3Vzc2V4LiBBbHRob3VnaCB0aGUgZ2FwIGhhcyByZWR1Y2VkIHRvIDE1LjIlIHRoaXMgeWVhciBmcm9tIDE4LjQlIGluIDIwMTMsIGl0IHJlbWFpbnMgZ3JlYXRlciB0aGFuIHRoZSBTb3V0aCBlYXN0IGF0IDE0LjQlIGFuZCBFbmdsYW5kIGF0IDE0LjclLlxcblxcbkNoaWxkcmVu4oCZcyBiaXJ0aCBkYXRlLCBhbmQgdGhlcmVmb3JlIHRoZSBhZ2UgYXQgd2hpY2ggdGhleSBhcmUgYXNzZXNzZWQsIGNvbnRpbnVlcyB0byBiZSBhIHNpZ25pZmljYW50IGZhY3Rvci4gVGhpcyB5ZWFyIDc4JSBvZiBhdXR1bW4gYm9ybiBjaGlsZHJlbiBhdHRhaW5lZCBHTEQsIHdoaWxzdCBvbmx5IDU2JSBvZiBzdW1tZXIgYm9ybiBjaGlsZHJlbiBhdHRhaW5lZCBHTEQuXFxuXFxuVGhlcmUgaXMgYWxzbyBhIHNpZ25pZmljYW50IGF0dGFpbm1lbnQgZ2FwIGJldHdlZW4gY2hpbGRyZW4gd2l0aCBhbiBFZHVjYXRpb24gSGVhbHRoIGFuZCBDYXJlIFBsYW4sIGEgc3RhdGVtZW50IG9mIFNFTiBvciB3aG8gcmVjZWl2ZSBTRU4gc2Nob29sIHN1cHBvcnQuIDIxJSBvZiB0aGVzZSBjaGlsZHJlbiBhY2hpZXZlZCBHTEQgY29tcGFyZWQgdG8gNjguMyUgb2YgdGhlIHBvcHVsYXRpb24uIFRoZXJlIHdlcmUgNzQ0IGNoaWxkcmVuIGluIHRoaXMgZ3JvdXAuXFxuXFxuUmVzdWx0cyBmb3IgY2hpbGRyZW4gd2hvIHdlcmUgZWxpZ2libGUgZm9yIDIgeWVhciBvbGQgZnVuZGVkIHBsYWNlcyBzaG93IHRoYXQgNTMlIG9mIHRoZSBjb2hvcnQgd2VudCBvbiB0byBhY2hpZXZlIEdMRCBjb21wYXJlZCB0byA2OC4zJSBvZiB0aGUgcG9wdWxhdGlvbi5cXG5cXG4qKkltcHJvdmVtZW50cyBwbGFubmVkKipcXG5cXG5TY2hvb2wgSW1wcm92ZW1lbnQgQWR2aXNlcnMgaGF2ZSBiZWVuIG1ha2luZyB0ZXJtbHkgdmlzaXRzIHRvIGFsbCBzY2hvb2xzIHNpbmNlIHRoZSBzdW1tZXIgdGVybTsgdGhlc2UgaW5jbHVkZSBzcGVjaWZpYyBxdWVzdGlvbnMgZm9yIGFsbCBIZWFkcyBhbmQgRVlGUyBsZWFkZXJzIG9uIHB1cGlsIHByb2dyZXNzLCB0YXJnZXQgc2V0dGluZyBhbmQgbW9uaXRvcmluZyBhdHRhaW5tZW50LiBUaGUgZWFybHkgeWVhcnMgYWR2aXNvcnkgdGVhbSBvZmZlciB0YXJnZXRlZCBzdXBwb3J0IHRvIHNjaG9vbHMganVkZ2VkIGJ5IE9mc3RlZCB0byBiZSBJbmFkZXF1YXRlIG9yIFJlcXVpcmVzIEltcHJvdmVtZW50IGFuZCB0byBzY2hvb2xzIGF0dGFpbmluZyBsb3cgR0xELiBUaGlzIGludm9sdmVzIHF1YWxpdHkgYXNzdXJpbmcgcHJhY3RpY2UgYW5kIHRhcmdldCBzZXR0aW5nIGZvciBncm91cHMgb2YgY2hpbGRyZW4uIFRoaXMgYXBwcm9hY2ggd2l0aCBzY2hvb2xzIGlzIG9uLWdvaW5nLlxcblxcblBvb3IgdHJhbnNpdGlvbiBpcyBhIGNvbnRyaWJ1dG9yeSBmYWN0b3IgdG8gbG93IEdMRCBhcyBjaGlsZHJlbiBtYWtlIG9wdGltYWwgcHJvZ3Jlc3Mgd2hlbiBpbmZvcm1hdGlvbiBhYm91dCB0aGVpciBhdHRhaW5tZW50IGFuZCBwcm9ncmVzcyBmcm9tIHN0YXJ0aW5nIHBvaW50cyBpcyBzaGFyZWQgZWZmZWN0aXZlbHkgYW5kIGluIGdvb2QgdGltZS4gVG8gYXNzaXN0IHByZS1zY2hvb2wgcHJhY3RpdGlvbmVycyBhbmQgc2Nob29sIHRlYWNoZXJzIGluIG1hbmFnaW5nIGVmZmVjdGl2ZSB0cmFuc2l0aW9ucyB3ZSBhcmUgdGFraW5nIGEgbnVtYmVyIG9mIGFjdGlvbnM6XFxuXFxuKiBFbWJlZGRpbmcgQ291bnR5LXdpZGUgc2Nob29sIGFuZCBzZXR0aW5nIHRyYW5zaXRpb24gZXZlbnRzIGFscmVhZHkgaW4gcGxhY2VcXG4qIFByb2R1Y2luZyB1bml2ZXJzYWwgYW5kIHN1cHBvcnRlZCB0cmFuc2l0aW9uIGd1aWRhbmNlIGluY2x1ZGluZyBjYXNlIHN0dWRpZXMgb2YgYmVzdCBwcmFjdGljZVxcbiogUmUtZHJhZnRpbmcgdHJhbnNpdGlvbiBndWlkYW5jZSBmb3IgcGFyZW50cyBhbmQgY2FyZXJzXFxuKiBQcm9kdWNpbmcgZ3VpZGFuY2Ugb24gaG9tZSB2aXNpdGluZyBmb3Igc2V0dGluZ3MgYW5kIHNjaG9vbHMgYW5kIHByb21vdGluZyBpdCBhcyBnb29kIHByYWN0aWNlXFxuKiBQcm9kdWNpbmcgYSAxLXBhZ2UgcHJvZmlsZSwgdGFrZW4gZnJvbSB0aGUgZXhpc3RpbmcgTGVhcm5pbmcgSm91cm5leSBkb2N1bWVudCwgdG8gYmUgcGFzc2VkIGZyb20gc2V0dGluZyB0byBzY2hvb2wgZm9yIGVhY2ggY2hpbGRcXG4qIFdvcmtpbmcgd2l0aCBIZWFkIFRlYWNoZXJzIGFuZCBFYXJseSBZZWFycyBsZWFkZXJzIHRvIHNldCBvdXQgYWdyZWVkIHByaW5jaXBsZXMgYW5kIGV4cGVjdGF0aW9ucyBvZiBjaGlsZHJlbuKAmXMgcmVhZGluZXNzIGZvciBzY2hvb2wsIGFuZCBzY2hvb2xz4oCZIHJlYWRpbmVzcyBmb3IgY2hpbGRyZW4sIGFuZCB1c2luZyB0aGVzZSB0byB1bmRlcnBpbiBvbi1nb2luZyBndWlkYW5jZSBhbmQgdHJhaW5pbmcuXFxuXFxuVGhlIHZ1bG5lcmFibGUgbGVhcm5lcnMgYXVkaXQgd2lsbCBjb250aW51ZSB0byBiZSBjYXJyaWVkIG91dCB0ZXJtbHkgYnkgYWR2aXNlcnMgaW4gdGhlIEVhcmx5IENoaWxkaG9vZCBTZXJ2aWNlLiBQcmUtc2Nob29sIHNldHRpbmdzIGlkZW50aWZpZWQgaW4gdGhlIHN1bW1lciB0ZXJtIGFzIGxlc3MgYWJsZSB0byBzdXBwb3J0IHZ1bG5lcmFibGUgbGVhcm5lcnMgd2lsbCBiZSBwcmlvcml0aXNlZCBmb3IgdmlzaXRzIGJ5IGVhcmx5IHllYXJzIGFuZCBjaGlsZGNhcmUgYWR2aXNlcnMuIFNldHRpbmdzIHdoZXJlIHZ1bG5lcmFibGUgbGVhcm5lcnMgYXJlIHdlbGwgc3VwcG9ydGVkIHdpbGwgcmVjZWl2ZSB0ZWxlcGhvbmUgc3VwcG9ydC4gUHJhY3RpY2UgaW4gc2V0dGluZ3Mgb2ZmZXJpbmcgZnJlZSAyIHllYXIgb2xkIHBsYWNlcyB3aWxsIGJlIHNjcnV0aW5pc2VkIHRocm91Z2ggdGhlIHZ1bG5lcmFibGUgbGVhcm5lcnMgYXVkaXQgcHJvY2Vzcy4gV2Ugd2lsbCByZXZpc2l0IGEgcHJvamVjdCBkZXZlbG9wZWQgd2l0aCBDYW50ZXJidXJ5IENocmlzdGNodXJjaCBVbml2ZXJzaXR5IGluIDIwMTQgdG8gaW1wcm92ZSB0aGUgcXVhbGl0eSBvZiBlYXJseSB5ZWFycyBwcmFjdGljZSBpbiB3b3JraW5nIHdpdGggMiB5ZWFyIG9sZHMgdGhyb3VnaCBvdXIgZXN0YWJsaXNoZWQgbG9jYWxpdHkgYmFzZWQgbmV0d29ya3MgYW5kIHRyYWluaW5nIHByb2dyYW1tZS5cXG5cXG5BIHByb2dyYW1tZSBvZiBtb2RlcmF0aW9uIGFjdGl2aXR5IHRocm91Z2ggbG9jYWxpdHkgYmFzZWQgbmV0d29ya3MgaGFzIGJlZW4gZW1iZWRkZWQgYW5kIHdlIGJlbGlldmUgdGhhdCB0aGlzIGhhcyBoYWQgYSBwb3NpdGl2ZSBpbXBhY3Qgb24gR0xEIGluIDIwMTUtMTYuIFRoZXJlIHdhcyBhIHN1c3RhaW5lZCBmb2N1cyBvbiBib3lzIHdyaXRpbmcgd2hpY2ggcmVzdWx0ZWQgaW4gdGVhY2hlcnMgYmVpbmcgYWJsZSB0byBtYWtlIGp1ZGdtZW50cyBiYXNlZCBvbiBzb3VuZCBldmlkZW5jZS4gVGhpcyBhcHByb2FjaCB3aWxsIGNvbnRpbnVlLCBhbmQgdHJhaW5pbmcgZXZlbnRzIGR1cmluZyAyMDE2LTE3IHdpbGwgc3VwcG9ydCBkaXNzZW1pbmF0aW9uIG9mIGJlc3QgcHJhY3RpY2UsIHBlZXIgY29hY2hpbmcgYW5kIGVuc3VyZSB0aGUgUmVjZXB0aW9uIHRlYWNoZXJzIGFyZSBjb25maWRlbnQgaW4gbWFraW5nIGFjY3VyYXRlIGFuZCBjb25zaXN0ZW50IGFzc2Vzc21lbnRzIG9mIGNoaWxkcmVu4oCZcyBsZWFybmluZyBhbmQgZGV2ZWxvcG1lbnQuXFxuXFxuVGhlIFNjaG9vbCBJbXByb3ZlbWVudCBTZXJ2aWNlIG9mZmVyIHRyYWluaW5nIGZvY3VzaW5nIG9uIGFyZWFzIG9mIHRoZSBjdXJyaWN1bHVtIHdoZXJlIGZld2VyIGNoaWxkcmVuIGFjaGlldmUgR0xELiBUcmFpbmluZyBpcyBjdXJyZW50bHkgYmVpbmcgZGVsaXZlcmVkIGFuZCBhIHNlcmllcyBvZiB0cmFpbmluZyBldmVudHMgaGFzIGJlZW4gcGxhbm5lZCB0byBpbXByb3ZlIHRlYWNoZXJz4oCZIGtub3dsZWRnZSBhbmQgc2tpbGxzLCBmb3IgZXhhbXBsZSwgYWRkcmVzc2luZyBnZW5kZXIgaXNzdWVzIGluIGxlYXJuaW5nIGdlbmVyYWxseSBhbmQgcGFydGljdWxhcmx5IGluIHdyaXRpbmcsIGxlYWRlcnNoaXAgaW4gc2Nob29scywgYW5kIHVzaW5nIGRhdGEgdG8gaW5mb3JtIHBsYW5uaW5nLiBUcmFpbmluZyBjb250aW51ZXMgdG8gYmUgYXZhaWxhYmxlIHRocm91Z2ggYSBzdWJzY3JpcHRpb24gcHJvZ3JhbW1lIGZvciBwcmUtc2Nob29scyB0aHJvdWdoIHRoZSBFYXJseSBDaGlsZGhvb2QgU2VydmljZSwgYW5kIHRoaXMgY29udGludWVzIHRvIHRhcmdldCBhc3BlY3RzIG9mIGxlYXJuaW5nIHdoZXJlIEdMRCByZXN1bHRzIGFyZSBwb29yLCBhbmQgdG8gYWRkcmVzcyB0aGVtZXMgZW1lcmdpbmcgZnJvbSBPZnN0ZWQgaW5zcGVjdGlvbnMuIFdlIGhhdmUgYW5hbHlzZWQgR0xEIGJ5IENoaWxkcmVuIGFuZCBGYW1pbHkgQ2VudHJlIHJlYWNoIGFyZWFzIGxvb2tpbmcgYXQgYXR0YWlubWVudCBpbiBzcGVjaWZpYyBhc3BlY3RzIG9mIGxlYXJuaW5nIGFuZCB0aGlzIHdpbGwgZHJpdmUgdGFyZ2V0ZWQgaW50ZXJ2ZW50aW9ucyBhbmQgdHJhaW5pbmcgbGVkIGJ5IENoaWxkcmVuIGFuZCBGYW1pbHkgQ2VudHJlcywgYW5kIHRocm91Z2ggbG9jYWxpdHkgYmFzZWQgbmV0d29ya3MgZHVyaW5nIDIwMTYtMTcuXFxuXFxuVGhlIEVhcmx5IENoaWxkaG9vZCBTZXJ2aWNlIHdpbGwgY29udGludWUgdG8gc3VwcG9ydCBhbmQgY2hhbGxlbmdlIHByZS1zY2hvb2wgcHJvdmlkZXJzIHRvIGluY2x1ZGUgYWxsIGNoaWxkcmVuIGFuZCB0byByZWZpbmUgb3VyIHJlZmVycmFsIHByb2Nlc3NlcyBmb3IgY2hpbGRyZW4gd2l0aCBTRU5ELiBXZSBjb250aW51ZSB0byBtb25pdG9yIHRoZSBvdXRjb21lcyBvZiBjaGlsZHJlbiB3aG8gcmVjZWl2ZSBmdW5kaW5nIGZvciBzdXBwb3J0IGluIHByZS1zY2hvb2xzLCBpbmNsdWRpbmcgdGhvc2UgY2hpbGRyZW4gd2hvIGdvIG9uIHRvIHJlY2VpdmUgYW4gRWR1Y2F0aW9uIEhlYWx0aCBhbmQgQ2FyZSBuZWVkcyBhc3Nlc3NtZW50LlxcblxcblwifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiSW5jcmVhc2luZyB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIGFzc2Vzc2VkIGF0IGEgZ29vZCBsZXZlbCBvZiBkZXZlbG9wbWVudFwiLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOnRydWUsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRhcmdldDogaW5jcmVhc2UgcGVyZm9ybWFuY2UgdG8gYXQgbGVhc3QgdGhlIGxldmVsIG9mIHVwcGVyIHF1YXJ0aWxlIHBlcmZvcm1hbmNlIGZvciB0aGUgU291dGggRWFzdCBieSAyMDE5XCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTMtMDEtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiJSIsInRhcmdldCI6NzUsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoiMjZ2Zy1wMmJ5In0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDEzfSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9LFwiYWN0aW9uX3R5cGVcIjpcImluY3JlYXNlXCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9fSxcInN0YXJ0XCI6XCIyMDE0LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE0LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwicHJvZ3Jlc3MgY2hlY2sgb2YgY2hpbGQgZGV2ZWxvcG1lbnRcIixcInlTY2FsZVwiOntcInVzZV9kZWZhdWx0XCI6ZmFsc2V9LFwidXNlX3Byb2dyZXNzX292ZXJyaWRlXCI6dHJ1ZSxcInByb2dyZXNzX292ZXJyaWRlXCI6XCJ3aXRoaW5fdG9sZXJhbmNlXCJ9In0sImNyZWF0ZWRfYXQiOiIyMDE4LTA3LTIzVDExOjAzOjAwLjc5OFoiLCJ2ZXJzaW9uIjoiMjAxOC0wNy0yM1QxMTowMzowMC43OThaIiwidGFyZ2V0X3RvbGVyYW5jZSI6MTAsImlkIjoibWlkNC1xaWV1In0sInJlbGF0ZWRfbWVhc3VyZXMiOltdLCJiYXNlX2Rhc2hib2FyZCI6IjU3NHItaDVuYyIsInVwZGF0ZWRfYXQiOiIyMDE4LTA3LTIzVDExOjAzOjEyLjM2NFoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wNy0yM1QxMTowMzowMC44NTNaIiwidmVyc2lvbiI6IjIwMTgtMDctMjNUMTE6MDM6MTIuMzY0WiIsImNyZWF0ZWRfYnkiOiI3OTdpLTZyOWcifSx7ImlkIjoiaTZyaC1xcjdzIiwibmFtZSI6IlByaW1hcnkgUHVwaWwgQXR0YWlubWVudCIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqS2V5IFN0YWdlIDIqKlxcblxcblB1cGlscyBhZ2VkIGZyb20gNyB0byAxMSB5ZWFycyBvbGQgd29yayBhdCBLZXkgU3RhZ2UgMi4gVGhlIG5ldyBtb3JlIGNoYWxsZW5naW5nIG5hdGlvbmFsIGN1cnJpY3VsdW0sIHdoaWNoIHdhcyBpbnRyb2R1Y2VkIGluIDIwMTQsIHdhcyBhc3Nlc3NlZCBieSBuZXcgdGVzdHMgYW5kIGludGVyaW0gZnJhbWV3b3JrcyBmb3IgdGVhY2hlciBhc3Nlc3NtZW50LiBSZXN1bHRzIGZvciAyMDE2IGFuZCBzdWJzZXF1ZW50IHllYXJzIGFyZSBubyBsb25nZXIgcmVwb3J0ZWQgYXMgbGV2ZWxzLCBlYWNoIHB1cGlsIHJlY2VpdmVzIHRoZWlyIHRlc3QgcmVzdWx0cyBhcyBhIHNjYWxlZCBzY29yZSBhbmQgdGVhY2hlciBhc3Nlc3NtZW50cyBiYXNlZCBvbiB0aGUgc3RhbmRhcmRzIGluIHRoZSBpbnRlcmltIGZyYW1ld29yay4gVGhlIGludGVyaW0gYXNzZXNzbWVudCBjcml0ZXJpYSBwcm92aWRlZCBieSB0aGUgU3RhbmRhcmRzIGFuZCBUZXN0aW5nIEFnZW5jeSBpbmRpY2F0ZWQgdGhhdCBhc3Nlc3NtZW50IHNob3VsZCBiZSBiYXNlZCBvbiAxMDAlIGFjaGlldmVtZW50IGFuZCBub3QgYSDigJhiZXN0IGZpdOKAmSBtb2RlbC4gV2VzdCBTdXNzZXggYXBwbGllZCB0aGlzIGFkdmljZSByaWdvcm91c2x5LiBCZWNhdXNlIG9mIHRoZSBjaGFuZ2VzIGRldGFpbGVkIGFib3ZlLCBmaWd1cmVzIGZvciAyMDE2IGFuZCAyMDE3IGFyZSBub3QgY29tcGFyYWJsZSB0byB0aG9zZSBmb3IgZWFybGllciB5ZWFycy4gTGV2ZWxzIGFyZSBub3QgY29tcGFyYWJsZSB3aXRoIHNjYWxlZCBzY29yZXMgb3IgdGVhY2hlciBhc3Nlc3NtZW50IG91dGNvbWVzLiBUaGUgZXhwZWN0YXRpb25zIGZvciBwdXBpbHMgYXQgdGhlIGVuZCBvZiBrZXkgc3RhZ2UgMiBoYXZlIGJlZW4gcmFpc2VkLlxcblxcbioqRGVjZW1iZXIgMjAxNyBVcGRhdGU6KipcXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipEZWNlbWJlciAyMDE3IFVwZGF0ZToqKlxcblxcbi0gLSAtXFxuXFxuKioyMDE2LTIwMTcgUmVhZGluZywgV3JpdGluZyBhbmQgTWF0aHMgKFJXTSkqKlxcblxcblRoZSBtYWluIHB1Ymxpc2hlZCBpbmRpY2F0b3IgcmVtYWlucyBSZWFkaW5nLCBXcml0aW5nIGFuZCBNYXRocyAoUldNKSwgdGhvc2UgcHVwaWxzIHdobyByZWFjaCBvciBleGNlZWQgdGhlIGV4cGVjdGVkIHN0YW5kYXJkIGluIGFsbCBvZiByZWFkaW5nIHRlc3QsIHdyaXRpbmcgdGVhY2hlciBhc3Nlc3NtZW50IGFuZCBtYXRocyB0ZXN0LiBJbiBXZXN0IFN1c3NleCA1NSUgb2YgYWxsIHB1cGlscyByZWFjaGVkIHRoYXQgc3RhbmRhcmQgY29tcGFyZWQgdG8gdGhlIG5hdGlvbmFsIGF2ZXJhZ2Ugb2YgNjIlLiBUaGUgV2VzdCBTdXNzZXggYXZlcmFnZSBoYXMgaW5jcmVhc2VkIG1vcmUgcmFwaWRseSB0aGFuIHRoZSBuYXRpb25hbCBhbmQgdGhlIGdhcCBoYXMgbm93IHJlZHVjZWQgYnkgMiUgdG8ganVzdCA3JS4gVGhlIHNhbWUgcGljdHVyZSBpcyByZWZsZWN0ZWQgYWdhaW5zdCB0aGUgU291dGggRWFzdCwgd2hlcmUgdGhlIGluY3JlYXNlIGlzIG9ubHkgOCUsIHRoZSBnYXAgaGFzIG5vdyByZWR1Y2VkIGJ5IDIlIHRvIGp1c3QgOCUuXFxuXFxuV2hpbHN0IHRoZXJlIHdhcyBhIDEwJSBwb2ludCBpbmNyZWFzZSBmcm9tIDIwMTYsIHRoZSByYXRlIG9mIGltcHJvdmVtZW50IG5lZWRzIHRvIGFjY2VsZWFyYXRlIHNvIHRoYXQgdGhlIDIwMjIgdGFyZ2V0IGlzIHJlYWNoZWQuIFdyaXRpbmcgYW5kIG1hdGhlbWF0aWNzIHJlbWFpbiB0aGUgYXJlYXMgb2YgY29uY2Vybi5cXG5cXG5HcmVhdGVyIERlcHRoXFxuXFxuVXNpbmcgdGhlIFN0YW5kYXJkIGFuZCBUZXN0aW5nIEFnZW5jeeKAmXMgYXNzZXNzbWVudCBjcml0ZXJpYSwgdGhlIGV4cGVjdGVkIHN0YW5kYXJkIGluIHRoZSB0ZXN0cyBpcyBhIHNjYWxlZCBzY29yZSBvZiAxMDAgb3IgYWJvdmUuIFNvbWUgcHVwaWxzIHdobyBhdHRhaW4gdGhlIGV4cGVjdGVkIHN0YW5kYXJkIGFyZSBqdWRnZWQgdG8gYmUg4oCcd29ya2luZyBhdCBncmVhdGVyIGRlcHRoIHdpdGhpbiB0aGUgZXhwZWN0ZWQgc3RhbmRhcmTigJ0gKEdEUykuIEdEUyBpcyB1c2VkIGluIHRoZSBjaGFydHMgYmVsb3csIGJ1dCBpbiBzb21lIHB1YmxpY2F0aW9ucyAoZS5nLiBBU1ApIHRoZSB0ZXJtIOKAnEhpZ2ggU3RhbmRhcmTigJ0gaXMgdXNlZCBmb3Igc3VjaCBwdXBpbHMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzcyNTYyOUI3LUExMTgtNDQxNi1CNEY0LTkxQzg0RTY1NDc1MVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKkluZGl2aWR1YWwgU3ViamVjdHMqKlxcblxcbkF0dGFpbm1lbnQgYXQgdGhlIGV4cGVjdGVkIHN0YW5kYXJkIGluIHRoZSB0ZXN0cyBpcyBoaWdoZXN0IGluIEdQUyAoZ3JhbW1hciwgcHVuY3R1YXRpb24gYW5kIHNwZWxsaW5nKSBhdCA3NCUgY29tcGFyZWQgdG8gdGhlIG5hdGlvbmFsIGF2ZXJhZ2Ugb2YgNzglIChTb3V0aCBFYXN0IDc3JSkuXFxuXFxuQXR0YWlubWVudCBpcyBsb3dlc3QgaW4gbWF0aHMgYXQgNzElIGNvbXBhcmVkIHRvIHRoZSBuYXRpb25hbCBhdmVyYWdlIG9mIDc1JSAoU291dGggRWFzdCBhbHNvIDc1JSkuXFxuXFxuQXR0YWlubWVudCBpbiByZWFkaW5nIGlzIGF0IDcxJSBjb21wYXJlZCB0byB0aGUgbmF0aW9uYWwgYXZlcmFnZSBvZiA3MiUgKFNvdXRoIEVhc3QgNzQlKS5cXG5cXG5JbiB3cml0aW5nIDY5JSBvZiBwdXBpbHMgd2VyZSBhc3Nlc3NlZCBieSB0ZWFjaGVycyBhcyB3b3JraW5nIGF0IHRoZSBleHBlY3RlZCBzdGFuZGFyZCwgdGhpcyB3YXMgbG93ZXIgdGhhbiBpbiBhbnkgb2YgdGhlIHRlc3Qgc3ViamVjdHMgYW5kIGNvbXBhcmVzIHRvIHRoZSBuYXRpb25hbCBhdmVyYWdlIG9mIDc3JSAoU291dGggRWFzdCBhbHNvIDc3JSkuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0I2RDRDNDM0LUVGNDMtNEJBMS04NkQ5LUZCOTM1NzdCNTRBNVwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy81NDcxOEI0Ny04NUE3LTQyMUUtOTE5Mi0yQTAyMzg5NDAwRkJcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiQWx0aG91Z2ggc29tZSBnYWlucyBoYXZlIGJlZW4gbWFkZSBhZ2FpbnN0IFN0YXRpc3RpY2FsIG5laWdoYm91cnMsIFdlc3QgU3Vzc2V4IHJlbWFpbnMgYXQgdGhlIGxvd2VzdCByYW5rIGZvciA3IG9mIHRoZSAxMSBpbmRpY2F0b3JzIGZvciBBbGwgUHVwaWxzLiBCb3lzIHNob3cgdGhlIG1vc3QgaW1wcm92ZW1lbnQgYWdhaW5zdCBTdGF0aXN0aWNhbCBOZWlnaGJvdXJzLCBhbHRob3VnaCBXZXN0IFN1c3NleCByZW1haW5zIHJhbmtlZCAxMCBvciAxMSBvdXQgb2YgMTEgaW4gbW9yZSB0aGFuIGhhbGYgdGhlIDMzIGluZGljYXRvcnMgYWNyb3NzIGFsbCBnZW5kZXJzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKkNvbXBhcmlzb24gd2l0aCBvdGhlciBMb2NhbCBBdXRob3JpdGllcyAocmFua2luZ3MpOioqXFxuXFxuTmF0aW9uYWwvc3RhdGlzdGljYWwgbmVpZ2hib3VyczogV2VzdCBTdXNzZXgncyBBbGwgUHVwaWxzIG5hdGlvbmFsIHJhbmtpbmdzIGZvciBFeHBlY3RlZCBTdGFuZGFyZCBpbiBNYXRocywgUldNLCBHUFMgYW5kIFNjaWVuY2UgYWxsIHNob3cgaW1wcm92ZW1lbnQuIFRoZXJlIGlzIGltcHJvdmVtZW50IGZvciBBbGwgUHVwaWxzIGluIFJXTSBhdCBHcmVhdGVyIFRoYW4gRXhwZWN0ZWQgU3RhbmRhcmQgdG9vLCB0aG91Z2ggYWxsIG90aGVyIHN1YmplY3RzIGFyZSBkb3duLlxcblxcbkdpcmxzIHNob3cgaW1wcm92ZW1lbnQgaW4gTWF0aHMgYXQgdGhlIEV4cGVjdGVkIFN0YW5kYXJkIGFuZCBncmVhdGVyIHRoYW4gRXhwZWN0ZWQgYW5kIGF0IHRoZSBleHBlY3RlZCBTdGFuZGFyZCBmb3IgR1BTIGFuZCBTY2llbmNlLiBUaGUgQm95cyBzaG93IHRoZSBtb3N0IGltcHJvdmVtZW50IGluIHJhbmtpbmdzIHdpdGggNyBvZiB0aGUgMTEgaW5kaWNhdG9ycyB1cCBvbiBsYXN0IHllYXIsIHdpdGggU2NpZW5jZSBzaG93aW5nIGFuIGluY3JlYXNlIG9mIDM3IHBsYWNlcy4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIEdyZWF0ZXIgVGhhbiBFeHBlY3RlZCBSZWFkaW5nLCBXZXN0IFN1c3NleCByZW1haW5zIGluIHRoZSBsb3dlciBoYWxmIG9mIHJhbmtpbmdzIG5hdGlvbmFsbHkuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzM1RkU3MTkzLUQzQzctNDI5RC04NDIxLTI2N0JEM0U1QkY0RFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJTb3V0aCBFYXN0OiBXZXN0IFN1c3NleOKAmXMgcmFua2luZ3MsIGFnYWluc3QgdGhlIDE5IFNvdXRoIEVhc3QgZ3JvdXAgb2YgTG9jYWwgQXV0aG9yaXRpZXMsIGFyZTpcXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiIFJXTSBFWFMrICg9MTh0aCBvZiAxOSlcXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvMUU2QTg0MTUtRDQ1OS00NjdBLUFDMjgtQkEyREMyRjU1RDY0XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiBSZWFkaW5nIEVYUysgPSAxM3RoIG9mIDE5XFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSAyMDE2IGtleSBzdGFnZSAyIGFzc2Vzc21lbnRzIHdlcmUgdGhlIGZpcnN0IHdoaWNoIGFzc2VzcyB0aGUgbmV3LCBtb3JlIGNoYWxsZW5naW5nIG5hdGlvbmFsIGN1cnJpY3VsdW0gd2hpY2ggd2FzIGludHJvZHVjZWQgaW4gMjAxNC4gTmV3IHRlc3RzIGFuZCBpbnRlcmltIGZyYW1ld29ya3MgZm9yIHRlYWNoZXIgYXNzZXNzbWVudCBoYXZlIGJlZW4gaW50cm9kdWNlZCB0byByZWZsZWN0IHRoZSByZXZpc2VkIGN1cnJpY3VsdW0uIFJlc3VsdHMgYXJlIG5vIGxvbmdlciByZXBvcnRlZCBhcyBsZXZlbHMsIGFuZCBlYWNoIHB1cGlsIHdpbGwgbm93IHJlY2VpdmUgdGhlaXIgdGVzdCByZXN1bHRzIGFzIGEgc2NhbGVkIHNjb3JlIGFuZCB0ZWFjaGVyIGFzc2Vzc21lbnRzIGJhc2VkIG9uIHRoZSBzdGFuZGFyZHMgaW4gdGhlIGludGVyaW0gZnJhbWV3b3JrLiBUaGUgZXhwZWN0ZWQgc3RhbmRhcmQgaGFzIGJlZW4gcmFpc2VkIGFuZCB0aGUgYWNjb3VudGFiaWxpdHkgZnJhbWV3b3JrIGZvciBzY2hvb2xzIGhhcyBhbHNvIGNoYW5nZWQuIFRoZXNlIGNoYW5nZXMgbWVhbiB0aGF0IHRoZSBleHBlY3RlZCBzdGFuZGFyZCBpcyBoaWdoZXIgYW5kIG5vdCBjb21wYXJhYmxlIHdpdGggdGhlIGV4cGVjdGVkIHN0YW5kYXJkIHVzZWQgaW4gcHJldmlvdXMgeWVhcuKAmXMgc3RhdGlzdGljcy5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvMzlGMTkzRTMtRjhEMC00Mzg5LUFBMTctRDY4NDNCQTYwMjZGXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIldyaXRpbmcgVEEgRVhTID0gKDE5dGggb2YgMTkpXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzlCQzhCRDM0LTEyNjgtNDA5Mi04NjdBLUVBMzVEMTg1QTk0RlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJNYXRocyBFWFMrICg9MTR0aCBvZiAxOSlcIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvQ0E2NjE5NEYtMTZCMS00Q0NBLTkxNzgtNzAyRjkyQ0U1QzUwXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcImFhIFxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIHRvIHRoZSBlbmQgb2YgU2VwdGVtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuKipLZXkgU3RhZ2UgMSoqIHByb3Zpc2lvbmFsIG91dGNvbWVzIGFyZSBub3cgYXZhaWxhYmxlIGFuZCB0aGUgZGF0YSBiZWxvdyBoYXMgYmVlbiB1cGRhdGVkLiBXZXN0IFN1c3NleCByZXN1bHRzIGFyZSBzdGlsbCBiZWxvdyB0aGUgbmF0aW9uYWwgYXZlcmFnZSBidXQgaW1wcm92ZWQgYXQgYSBmYXN0ZXIgcmF0ZSB0aGFuIHRoZSBuYXRpb25hbCBhdmVyYWdlIGFuZCwgdGhlcmVmb3JlLCBjbG9zaW5nIHRoZSBnYXAgdG8gdGhlIG5hdGlvbmFsIGZpZ3VyZS5cXG5cXG4qKktleSBTdGFnZSAyKiogcHJvdmlzaW9uYWwgb3V0Y29tZXMgY29uZmlybSB0aG9zZSByZXBvcnRlZCBpbiBKdWx5IDIwMTcuIFdlc3QgU3Vzc2V4IHJlc3VsdHMgYXJlIHN0aWxsIGJlbG93IHRoZSBuYXRpb25hbCBhdmVyYWdlIGJ1dCBhcGFydCBmcm9tIGluIHJlYWRpbmcgKHdoaWNoIGlzIGNsb3NlIHRvIG5hdGlvbmFsIGF2ZXJhZ2UpIGltcHJvdmVkIGF0IGEgZmFzdGVyIHJhdGUgdGhhbiB0aGUgbmF0aW9uYWwgYXZlcmFnZSBhbmQsIHRoZXJlZm9yZSwgY2xvc2luZyB0aGUgZ2FwLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIHRvIHRoZSBlbmQgb2YgSnVuZSAyMDE3KipcXG5cXG4tIC0gLVxcblxcbioqS2V5IFN0YWdlIDEqKiBpcyBhbiBpbmRpY2F0b3Igb2YgdGhlIGN1cnJlbnQgcGljdHVyZS4gRGF0YSBzaG93biBpcyBwcm92aXNpb25hbCBpbnRlcmltIGRhdGEsIGFzIGEgdmVyeSBzbWFsbCBudW1iZXIgb2Ygc2Nob29scyBhcmUgc3RpbGwgdG8gdXBsb2FkIGRhdGEgc2V0cy4gSXQgaXMgdW5saWtlbHkgaW50ZXJpbSBkYXRhIHdpbGwgcmFkaWNhbGx5IGNoYW5nZSB3aGVuIHJlbWFpbmluZyB1cGxvYWRzIGhhdmUgYmVlbiBjb21wbGV0ZWQuXFxuXFxuKipLZXkgU3RhZ2UgMioqIGRhdGEgd2FzIGF2YWlsYWJsZSBmb3IgbmF0aW9uYWwgZG93bmxvYWQgZnJvbSB0aGUgNHRoIEp1bHkgMjAxNy4gVGhlIGRhdGEgc2hvd24gcmVwcmVzZW50cyB0aGUgcHJvcG9ydGlvbiBvZiBwdXBpbHMgYWNoaWV2aW5nIHRoZSDigJhleHBlY3RlZCBzdGFuZGFyZOKAmSBhbmQg4oCYZ3JlYXRlciBkZXB0aOKAmS4gVGhlIHByb3BvcnRpb24gb2YgcHVwaWxzIGFjaGlldmluZyDigJhncmVhdGVyIGRlcHRo4oCZIGFzIGEgc2VwYXJhdGUgbWVhc3VyZSBpcyBub3QgeWV0IGF2YWlsYWJsZS4gQWxsIHNjaG9vbHMgYXJlIGN1cnJlbnRseSByZXZpZXdpbmcgdGhlaXIgZGF0YSBpbiB0ZXJtcyBvZiB0aGUgbnVtYmVyIG9mIHB1cGlscyBmb3Igd2hvbSB0aGV5IHdpbGwgYXBwZWFsIGFuZCBzZWVrIGEgcmVjb3VudCAvIHJlbWFyay4gUHVwaWxzIHR5cGljYWxseSBwdXQgZm9yd2FyZCBmb3IgcmVjb3VudCAvIHJlbWFyayBhcmUgbm8gbW9yZSB0aGFuIDMgcG9pbnRzIGJlbG93IHRocmVzaG9sZCBmb3IgYWNoaWV2aW5nIHRoZSDigJhleHBlY3RlZCBzdGFuZGFyZOKAmS4gSW4gMjAxNiwgdGhpcyBwcm9jZXNzIGhhZCBhKzIlIGRpZmZlcmVuY2UgdG8gdGhlIGVhcmx5IHVudmFsaWRhdGVkIGRhdGEuIE5hdGlvbmFsIGRhdGEgaGFzIGJlZW4gdGFrZW4gZnJvbSB0aGUgU3RhdGlzdGljYWwgRmlyc3QgUmVsZWFzZSAoU0ZSKSBhdmFpbGFibGUgb24gdGhlIERmRSB3ZWJzaXRlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8wQjEwMUM2OC0xNTkyLTQzQjUtODJDNC0xNDVGNkNBMjQ0OEZcIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNDdDOTgxNkYtRkRFOS00ODE0LTk1NzctNTYzMDRGMkI0MjAzXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAyIC0gU2VwdGVtYmVyIDIwMTYqKlxcblxcbi0gLSAtXFxuXFxuVGhlIHJldmlzZWQgS2V5IFN0YWdlIDIgcmVzdWx0cyBoYXZlIGJlZW4gcmVsZWFzZWQsIGFuZCBmb3IgV2VzdCBTdXNzZXggNDUlIG9mIHB1cGlscyBhY2hpZXZpbmcgdGhlIGV4cGVjdGVkIHN0YW5kYXJkIGluIHJlYWRpbmcsIHdyaXRpbmcgYW5kIG1hdGhlbWF0aWNzIChjb21iaW5lZCkgd2hpY2ggaXMgcmFuayAzMyBhZ2FpbnN0IDM0IFNoaXJlIFBsdXMgY291bnRpZXMuIFRoZXNlIHJlc3VsdHMgYXJlIGZyb20gbmV3IHRlc3RzIGFuZCB0ZWFjaGVyIGFzc2Vzc21lbnQgb2YgdGhlIG5ldyBuYXRpb25hbCBDdXJyaWN1bHVtIGFuZCBhcmUgbm90IGRpcmVjdGx5IGNvbXBhcmFibGUgd2l0aCBwcmV2aW91cyBtZWFzdXJlcy4gVGhlc2UgcmVzdWx0cyBhcmUgZGlzYXBwb2ludGluZy5cXG5cXG5TY2hvb2wgaW1wcm92ZW1lbnQsIHdvcmtpbmcgd2l0aCBzY2hvb2xzLCBoYXZlIHByb2R1Y2VkIGEgcHJvZ3JhbW1lIG9mIHN1cHBvcnQgYW5kIHRyYWluaW5nIHRvIGltcHJvdmUgb3V0Y29tZXMgYXQgS2V5IFN0YWdlIDEgYXMgd2VsbCBhcyBLZXkgU3RhZ2UgMi4gV2VzdCBTdXNzZXggb2ZmaWNlcnMgYXJlIHdvcmtpbmcgd2l0aCBzY2hvb2xzIG9uIHRoaXMgYWN0aW9uIHBsYW4gdG8gaW1wcm92ZSBLZXkgU3RhZ2UgMiBvdXRjb21lcyBpbiAyMDE3LlxcblxcblwifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiUHVwaWxzIGFjaGlldmluZyB0aGUgZXhwZWN0ZWQgc3RhbmRhcmQgb2YgZGV2ZWxvcG1lbnQgYXQgdGhlIGVuZCBvZiBLZXkgU3RhZ2UgMlwiLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOnRydWUsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRoaXMgZ29hbCBpcyBtZWFzdXJlZCBieSB0cmFja2luZyBwdXBpbCBhY2hpZXZlbWVudCBhdCBLZXkgU3RhZ2UgMi4gIEl0IGlzIG91ciBhbWJpdGlvbiB0byBiZSBhcyBnb29kIGFzIHRoZSB0b3AgMjUlIG9mIGhpZ2hlc3QgcGVyZm9ybWluZyBjb3VudGllcyBpbiB0aGUgY291bnRyeSBieSAyMDE5LlwiLFwiaWNvblwiOlwidGV4dFwifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDE2LTA5LTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6IiUiLCJ0YXJnZXQiOjYzLCJ0YXJnZXRfdHlwZSI6ImFic29sdXRlIiwidGFyZ2V0X2RlbHRhIjowLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsImJhc2VsaW5lIjo4NCwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiJ2bmZhLXJycTMifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPiJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjgsXCJ5ZWFyXCI6MjAxNn0sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJpbmNyZWFzZVwiLFwibWFpbnRhaW5fdHlwZVwiOlwiPlwiLFwidGFyZ2V0X3R5cGVcIjpcImFic29sdXRlXCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9fSxcInN0YXJ0XCI6XCIyMDE0LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE0LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIixcImRhdGFzZXRcIjpcImlkazYtZGFpZVwifSxcInR5cGVcIjpcInNjcmF0Y2hcIn0sXCJuYW1lXCI6XCJQZXJjZW50YWdlIG9mIGF1dGhvcml0eSBmb3IgcHVwaWwgYXR0YWlubWVudCBhdCBLZXkgU3RhZ2UgMlwiLFwidXNlX3Byb2dyZXNzX292ZXJyaWRlXCI6dHJ1ZSxcInByb2dyZXNzX292ZXJyaWRlXCI6XCJiYWRcIn0ifSwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMTA6NDc6NTYuNzMyWiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDEwOjQ3OjU2LjczMloiLCJ0YXJnZXRfdG9sZXJhbmNlIjo2LCJpZCI6InBjcjktaGV4YSJ9LCJyZWxhdGVkX21lYXN1cmVzIjpbeyJtZXRhZGF0YSI6IiIsImlkIjoiajNiei1xOHhzIn0seyJtZXRhZGF0YSI6IiIsImlkIjoiZGc0NS02dGU4In1dLCJiYXNlX2Rhc2hib2FyZCI6IjU3NHItaDVuYyIsInVwZGF0ZWRfYXQiOiIyMDE4LTA3LTIzVDEwOjQ5OjA4LjE4MloiLCJjcmVhdGVkX2F0IjoiMjAxOC0wNy0yM1QxMDo0Nzo1Ni44MDNaIiwidmVyc2lvbiI6IjIwMTgtMDctMjNUMTA6NDk6MDguMTgyWiIsImNyZWF0ZWRfYnkiOiI3OTdpLTZyOWcifSx7ImlkIjoiOWkyay11OTdqIiwibmFtZSI6IktleSBTdGFnZSA0IFByb2dyZXNzIDggc2NvcmUgMC4wMyIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwiaWNvblwiOlwiY29tcG9zZVwiLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAzIC0gdG8gdGhlIGVuZCBvZiBEZWNlbWJlciAyMDE3KipcXG5cXG5JbiAyMDE2IHRoZSBoZWFkbGluZSBtZWFzdXJlIGZvciBLZXkgU3RhZ2UgNCByZXN1bHRzIChHQ1NFKSBoYXMgY2hhbmdlZCB0byBQcm9ncmVzcyA4LCBhIG1lYXN1cmUgb2YgdGhlIHByb2dyZXNzIHB1cGlscyBtYWtlIGZyb20gS2V5IFN0YWdlIDIgKHByaW1hcnkgc2Nob29sIFllYXIgNikgdG8gS2V5IFN0YWdlIDQgKHNlY29uZGFyeSBzY2hvb2wgWWVhciAxMSkgaW4gYSByYW5nZSBvZiBzdWJqZWN0cyBpbmNsdWRpbmcgRW5nbGlzaCwgTWF0aGVtYXRpY3MsIGF0IGxlYXN0IDMgRW5nbGlzaCBCYWNjYWxhdXJlYXRlIHN1YmplY3RzIGFuZCB1cCB0byB0aHJlZSBvdGhlciBnb29kIEdDU0Ugc3ViamVjdHMuIEZ1cnRoZXIgaW5mb3JtYXRpb24gaXMgaGVsZCB1bmRlcjpbaHR0cHM6Ly93d3cuZ292LnVrL2dvdmVybm1lbnQvcHVibGljYXRpb25zL3Byb2dyZXNzLTgtc2Nob29sLXBlcmZvcm1hbmNlLW1lYXN1cmVdWzBdXFxuXFxuRm9yIDIwMTYvMTcsIFdlc3QgU3Vzc2V4J3MgYXZlcmFnZSBQcm9ncmVzcyA4IHNjb3JlIGlzIDAuMDMsIHdoaWNoIGlzIGJldHRlciB0aGFuIGJvdGggdGhlIHdob2xlIG9mIEVuZ2xhbmQgKC0wLjAzKSBhbmQgdGhlIFNvdXRoIEVhc3QgKC0wLjAyKS4gV2VzdCBTdXNzZXggaXMgY3VycmVudGx5IHJhbmtlZD01MHRoLCBhbmQgaXMgaW4gdGhlIHNlY29uZCBxdWFydGlsZSwgaW4gcmVsYXRpb24gdG8gYWxsIGxvY2FsIGF1dGhvcml0aWVzLlxcblxcbkJBU0lDUzogQXMgYXBlcmNlbnRhZ2Ugb2YgYWxsIHB1cGlscyBhdCB0aGUgZW5kIG9mIGtleSBzdGFnZSA0LiBJbiAyMDE0LzE1IGFuZCBlYXJsaWVyLCB3aGVyZSB0aGUgRW5nbGlzaCBsYW5ndWFnZSBhbmQgRW5nbGlzaCBsaXRlcmF0dXJlIG9wdGlvbiB3YXMgY2hvc2VuIGluIEVuZ2xpc2gsIGV4YW1zIGluIGJvdGggbXVzdCBiZSB0YWtlbiBhbmQgYSBDIGdyYWRlIG9yIGFib3ZlIGFjaGlldmVkIGluIEVuZ2xpc2ggbGFuZ3VhZ2UuIEZyb20gMjAxNS8xNiwgdG8gbWVldCB0aGUgRW5nbGlzaCByZXF1aXJlbWVudCBvZiB0aGUgQSotQyBpbiBFbmdsaXNoIGFuZCBtYXRocyBhdHRhaW5tZW50IG1lYXN1cmUsIGEgQyBpbiBlaXRoZXIgRW5nbGlzaCBsYW5ndWFnZSBvciBFbmdsaXNoIGxpdGVyYXR1cmUgY291bnRzIGFuZCB0aGVyZSBpcyBubyByZXF1aXJlbWVudCB0byB0YWtlIGJvdGguXFxuXFxuSW4gMjAxNi8xNywgZm9sbG93aW5nIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIHJlZm9ybWVkIDkgdG8gMSBHQ1NFcyBpbiBFbmdsaXNoLCBhIGdyYWRlIDVvciBhYm92ZSBpbiBlaXRoZXIgRW5nbGlzaCBsYW5ndWFnZSBvciBFbmdsaXNoIGxpdGVyYXR1cmUgY291bnRzIGFuZCB0aGVyZSByZW1haW5zIG5vIHJlcXVpcmVtZW50IHRvIHRha2UgYm90aCBpbiBvcmRlciB0byBhY2hpZXZlIGEgcGFzcy4gRm9yIDIwMTYvMTcgV2VzdCBTdXNzZXgncyBwZXJjZW50YWdlIHdhcyA0NC44JSwgY29tcGFyZWQgdG8gNDIuNCUgZm9yIEVuZ2xhbmQgYW5kIDQ1LjQlIGZvciB0aGUgU291dGggRWFzdC5cXG5cXG5FTkdMSVNIIEJBQ0NBTEFVUkVBVEU6IEFzIGEgcGVyY2VudGFnZSBvZiBwdXBpbHMgYXQgdGhlIGVuZCBvZiBrZXkgc3RhZ2UgNC4gSW4gMjAxNC8xNSBhbmQgZWFybGllciwgd2hlcmUgdGhlIEVuZ2xpc2ggbGFuZ3VhZ2UgYW5kIEVuZ2xpc2ggbGl0ZXJhdHVyZSBvcHRpb24gd2FzIGNob3NlbiBpbiBFQmFjYyBFbmdsaXNoLCBleGFtcyBpbiBib3RoIGhhZCB0byBiZSB0YWtlbiBhbmQgYSBDIGdyYWRlIG9yIGFib3ZlIGFjaGlldmVkIGluIEVuZ2xpc2ggbGFuZ3VhZ2UuIEluIDIwMTUvMTYsIHRvIG1lZXQgdGhlIEVuZ2xpc2ggcmVxdWlyZW1lbnQgb2YgdGhlIEVCYWNjLCBleGFtcyBpbiBib3RoIGhhZCB0byBiZSB0YWtlbiBhbmQgYSBDIGdyYWRlIG9yIGFib3ZlIGFjaGlldmVkIGluIGVpdGhlciBFbmdsaXNoIGxhbmd1YWdlIG9yIEVuZ2xpc2ggbGl0ZXJhdHVyZS4gRnJvbSAyMDE3LCB0aGUgZGVmaW5pdGlvbiBvZiAncGVyY2VudGFnZSBhY2hpZXZpbmcgdGhlIEVuZ2xpc2ggQmFjY2FsYXVyZWF0ZScgaGFzIGNoYW5nZWQgdG8gJ3RoZSBwcm9wb3J0aW9uIG9mIHB1cGlscyBhY2hpZXZpbmcgdGhlIEVCYWNjIHdoaWNoIGluY2x1ZGVzIGEgZ3JhZGUgNSBvciBhYm92ZSBpbiBFbmdsaXNoIGFuZG1hdGhlbWF0aWNzLCBhbmQgZ3JhZGUgQyBvciBhYm92ZSBpbiB1bnJlZm9ybWVkIHN1YmplY3RzJyBmb2xsb3dpbmcgdGhlIGludHJvZHVjdGlvbiBvZiB0aGUgcmVmb3JtZWQgOSB0byAxIEdDU0VzIGluIEVuZ2xpc2ggYW5kIG1hdGhlbWF0aWNzLlxcblxcbkV4YW1zIGluIGJvdGggRW5nbGlzaCBsaXRlcmF0dXJlIGFuZCBFbmdsaXNoIGxhbmd1YWdlIHN0aWxsIGhhdmUgdG8gYmUgdGFrZW4gYW5kIGEgZ3JhZGUgNSBvciBhYm92ZSBhY2hpZXZlZCBpbiBvbmUgdG8gYWNoaWV2ZSBhIHBhc3MgaW4gdGhlIEVuZ2xpc2ggcmVxdWlyZW1lbnQgb2YgdGhlIEVCYWNjLiBUaGUgOS00IHBhc3Mgc2hvd3MgcHVwaWxzIHdobyBhY2hpZXZlZCBhIGdyYWRlIDQgb3IgYWJvdmUgaW4gRW5nbGlzaCBhbmRtYXRoZW1hdGljcywgYW5kIGEgZ3JhZGUgQyBpbiB1bnJlZm9ybWVkIHN1YmplY3RzIGFuZCBpcyBzaG93biBhbG9uZ3NpZGUgdGhlIGhlYWRsaW5lIG1lYXN1cmUgZm9yIHRyYW5zcGFyZW5jeSBhbmQgY29tcGFyYWJpbGl0eS5Gb3IgMjAxNi8xNyBXZXN0IFN1c3NleCdzIHBlcmNlbnRhZ2Ugd2FzIDIxLjAlLCBjb21wYXJlZCB0byAyMS4yJSBmb3IgRW5nbGFuZCBhbmQgMjMuNiUgZm9yIHRoZVNvdXRoIEVhc3QuXFxuXFxuUmV2aXNlZCBkYXRhIGlzcmVsZWFzZWQgYXQgdGhlIGVuZCBvZiBKYW51YXJ5IDIwMTguXFxuXFxuWzBdOiBodHRwczovL3d3dy5nb3YudWsvZ292ZXJubWVudC9wdWJsaWNhdGlvbnMvcHJvZ3Jlc3MtOC1zY2hvb2wtcGVyZm9ybWFuY2UtbWVhc3VyZVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSDigJMgdG8gdGhlIGVuZCBvZiBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuQXMgdGhlIGN1cnJlbnQgcmVzdWx0cyBhcmUgYmFzZWQgb24gYW5udWFsIGV4YW1pbmF0aW9ucyBzYXQgaW4gSnVuZSAyMDE2IHRoZSBvdXRjb21lcyBvbmx5IGNoYW5nZSBtYXJnaW5hbGx5IHRocm91Z2hvdXQgdGhlIHllYXIuIFZhbGlkYXRlZCByZXN1bHRzIHdlcmUgcHVibGlzaGVkIGluIEphbnVhcnkgMjAxNy4gVGhlIHJlc3VsdHMgZm9yIHRoZSBleGFtaW5hdGlvbnMgc2F0IGluIEp1bmUgMjAxNyB3aWxsIGJlIHJlcG9ydGVkIHdoZW4gdGhleSBiZWNvbWUgYXZhaWxhYmxlIGluIHRoZSBhdXR1bW4uXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciA0IOKAkyB0byB0aGUgZW5kIG9mIE1hcmNoIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuT24gdGhlIG5ldyBtZWFzdXJlLCBQcm9ncmVzcyA4LCBXZXN0IFN1c3NleOKAmXMgb3V0Y29tZSBpcyB3ZWxsIGFib3ZlIHRoZSBuYXRpb25hbCBhdmVyYWdlIGF0ICswLjEgKG5hdGlvbmFsIGF2ZXJhZ2Ug4oCTMC4wMykgaXMgcmFua2VkIDNyZCBvZiB0aGUgMzQgU2hpcmUgcGx1cyBjb3VudGllcyBhbmQgaW4gdGhlIHRvcCAyMCUgb2YgYWxsIGxvY2FsIGF1dGhvcml0aWVzLiBXZXN0IFN1c3NleCBpcyBhbHNvIGFib3ZlIHRoZSBuYXRpb25hbCBhdmVyYWdlIGZvciBvdGhlciByZXBvcnRlZCBvdXRjb21lczogQXR0YWlubWVudCA4LCBFbmdsaXNoIEJhY2NhbGF1cmVhdGUgYW5kIEJhc2ljcyAoQSotQyBpbiBib3RoIEVuZ2xpc2ggYW5kIG1hdGhlbWF0aWNzKS5cXG5cXG5cIn1dLFwidGl0bGVfaW1hZ2VcIjpcIi9hcGkvYXNzZXRzLzBCNTEyQzA0LTdGNDYtNDE3OS1COERBLUJFMTUzN0U4REEwNVwiLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIkluY3JlYXNlIEtleSBTdGFnZSA0IFByb2dyZXNzIDggc2NvcmUgdG8gYmUgaW4gdGhlIHRvcCBxdWFydGlsZSBvZiBhbGwgTG9jYWwgQXV0aG9yaXRpZXMgYnkgMjAyMlwifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDE2LTA5LTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6IiBzY29yZSAiLCJ0YXJnZXQiOjAuMDcsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoiMnVqeC04NDNpIn0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjo4LFwieWVhclwiOjIwMTZ9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH19LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE3fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTd9fSxcInN0YXJ0XCI6XCIyMDE3LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE3LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwiS2V5IFN0YWdlIDQgUHJvZ3Jlc3MgOCBzY29yZVwiLFwidXNlX3Byb2dyZXNzX292ZXJyaWRlXCI6dHJ1ZSxcInByb2dyZXNzX292ZXJyaWRlXCI6XCJ3aXRoaW5fdG9sZXJhbmNlXCJ9In0sImNyZWF0ZWRfYXQiOiIyMDE4LTA3LTIzVDEwOjQ5OjUzLjU3OFoiLCJ2ZXJzaW9uIjoiMjAxOC0wNy0yM1QxMDo0OTo1My41NzhaIiwidGFyZ2V0X3RvbGVyYW5jZSI6MC4wNCwiaWQiOiJ5ZXJwLTY2dTQifSwicmVsYXRlZF9tZWFzdXJlcyI6W3sibWV0YWRhdGEiOiIiLCJpZCI6IjZ3YW0tM3lnaiJ9XSwiYmFzZV9kYXNoYm9hcmQiOiI1NzRyLWg1bmMiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNy0yM1QxMDo1MDowNi40NjVaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMTA6NDk6NTMuNjQ1WiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDEwOjUwOjA2LjQ2NVoiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn0seyJpZCI6Im1hNmgtYW5tcyIsIm5hbWUiOiJQdXBpbHMgYXQgc2Nob29scyBHb29kIG9yIE91dHN0YW5kaW5nIGluIFcuIFN1c3NleCBhcyBqdWRnZWQgYnkgT2ZzdGVkIiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJpY29uXCI6XCJ0ZXh0XCIsXCJuYXJyYXRpdmVcIjpbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipPdmVydmlldyoqXFxuXFxuVW5kZXJzdGFuZGluZyBPZnN0ZWQgcmVwb3J0c1xcblxcbk9mc3RlZCAoT2ZmaWNlIGZvciBTdGFuZGFyZHMgaW4gRWR1Y2F0aW9uLCBDaGlsZHJlbuKAmXMgU2VydmljZXMgYW5kIFNraWxscykgaXMgYSBnb3Zlcm5tZW50IGRlcGFydG1lbnQgdGhhdCBpbnNwZWN0cyBhbmQgcmVndWxhdGVzIGVkdWNhdGlvbmFsIGluc3RpdHV0aW9ucy4gQWxsIHNjaG9vbHMgYXJlIGluc3BlY3RlZCBhcyBwYXJ0IG9mIGEgY3ljbGUgb2YgaW5zcGVjdGlvbiB3aXRoIGluYWRlcXVhdGUgYW5kIFJJIChSZXF1aXJlcyBJbXByb3ZlbWVudCkgc2Nob29scyBiZWluZyBpbnNwZWN0ZWQgd2l0aGluIHR3byB5ZWFycyBhbmQgZ29vZCBzY2hvb2xzIGV2ZXJ5IHRocmVlIHllYXJzLiBPdXRzdGFuZGluZyBzY2hvb2xzIGFyZSBub3Qgcm91dGluZWx5IGluc3BlY3RlZC5cXG5cXG5BZnRlciB0aGUgaW5zcGVjdGlvbiwgT2ZzdGVkIHB1Ymxpc2hlcyBhIHB1YmxpYyByZXBvcnQgdGhhdCBjb250YWlucyBpbmZvcm1hdGlvbiBvbiB0aGUgc2Nob29s4oCZcyBwZXJmb3JtYW5jZS5JbnNwZWN0b3JzIG1ha2Uga2V5IGp1ZGdlbWVudHMgb24gdGhlIGZvbGxvd2luZyBhcmVhczpcXG5cXG4qIG92ZXJhbGwgZWZmZWN0aXZlbmVzc1xcbiogZWZmZWN0aXZlbmVzcyBvZiBsZWFkZXJzaGlwIGFuZCBtYW5hZ2VtZW50XFxuKiBxdWFsaXR5IG9mIHRlYWNoaW5nLCBsZWFybmluZyBhbmQgYXNzZXNzbWVudFxcbiogcGVyc29uYWwgZGV2ZWxvcG1lbnQsIGJlaGF2aW91ciBhbmQgd2VsZmFyZVxcbiogb3V0Y29tZXMgZm9yIHB1cGlsc1xcblxcbkp1ZGdlbWVudHMgYXJlIG1hZGUgdXNpbmcgYSBmb3VyLXBvaW50IHNjYWxlOlxcblxcbiogZ3JhZGUgMSAtIE91dHN0YW5kaW5nXFxuKiBncmFkZSAyIC0gR29vZFxcbiogZ3JhZGUgMyAtIFJlcXVpcmVzIEltcHJvdmVtZW50XFxuKiBncmFkZSA0IOKAkyBJbmFkZXF1YXRlXFxuXFxuSW4ganVkZ2luZyBvdmVyYWxsIGVmZmVjdGl2ZW5lc3MsIGluc3BlY3RvcnMgd2lsbCB0YWtlIGFjY291bnQgb2YgdGhlIGZvdXIga2V5IGp1ZGdlbWVudHMuIEluc3BlY3RvcnMgc2hvdWxkIGZpcnN0IG1ha2UgdGhlIGtleSBqdWRnZW1lbnRzIG9uOlxcblxcbiogdGhlIHF1YWxpdHkgb2YgdGVhY2hpbmcsIGxlYXJuaW5nIGFuZCBhc3Nlc3NtZW50XFxuKiBwZXJzb25hbCBkZXZlbG9wbWVudCwgYmVoYXZpb3VyIGFuZCB3ZWxmYXJlXFxuKiBvdXRjb21lcyBmb3IgcHVwaWxzXFxuXFxuVGhlIExvY2FsIEF1dGhvcml0eSBpcyBjb21taXR0ZWQgdG8gZW5zdXJpbmcgdGhhdCBhbGwgcHVwaWxzIGluIHRoZSBjb3VudHkgYXR0ZW5kIGEgc2Nob29sIGp1ZGdlZCB0byBiZSBhdCBsZWFzdCBnb29kIG9yIG91dHN0YW5kaW5nLiBUaGUgRGlyZWN0b3JhdGUgb2YgRWR1Y2F0aW9uIGFuZCBTa2lsbHMgd29ya3MgaW4gcGFydG5lcnNoaXAgd2l0aCBhbGwgc2Nob29scyBhbmQgc3Rha2Vob2xkZXJzIHRvIGVuc3VyZSB0aGlzIGlzIGFjaGlldmVkLiBJdCBjb250aW51ZXMgdG8gdGFyZ2V0IHVuZGVyIHBlcmZvcm1pbmcgc2Nob29scyBieSBwcm92aWRpbmcgY2hhbGxlbmdlIGFuZCBzdXBwb3J0IHRvIHNlY3VyZSByYXBpZCBhbmQgc3VzdGFpbmFibGUgaW1wcm92ZW1lbnRzIGFuZCByYWlzZSBzdGFuZGFyZHMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSBMb2NhbCBBdXRob3JpdHkgaXMgY29tbWl0dGVkIHRvIGVuc3VyaW5nIHRoYXQgYWxsIHB1cGlscyBpbiB0aGUgY291bnR5IGF0dGVuZCBhIGdvb2Qgb3Igb3V0c3RhbmRpbmcgc2Nob29sIGFuZCB0aGUgRWR1Y2F0aW9uIGFuZCBTa2lsbHMgc2VydmljZSBpcyB3b3JraW5nIHdpdGggc2Nob29scyBhbmQgcGFydG5lcnMgdG93YXJkcyB0aGlzIG91dGNvbWUuIFdoZXJlIGl0IGlzIGNvbnNpZGVyZWQgdGhhdCBhIHNjaG9vbCBpcyB1bmRlcnBlcmZvcm1pbmcsIG9yIGF0IHJpc2sgb2YgdW5kZXJwZXJmb3JtaW5nLCBpdCBjb250aW51ZXMgdG8gdGFyZ2V0IHRoZXNlIHNjaG9vbHMsIGFuZCB3aWxsIHdvcmsgYWxvbmdzaWRlIHRoZSBzY2hvb2wgdG8gZWl0aGVyIGltcHJvdmUgdGhlaXIgcmF0aW5nIGF0IHRoZSBuZXh0IGluc3BlY3Rpb24sIG9yIHRvIGhlbHAgdGhlbSB0byBlbnN1cmUgdGhhdCB0aGV5IHJlbWFpbiBnb29kLiBUaGUgRWR1Y2F0aW9uIGFuZCBTa2lsbHMgc2VydmljZSBoYXMgYSBwb3NpdGl2ZSB0cmFjayByZWNvcmQgb2Ygc3VwcG9ydGluZyB0aGVzZSBzY2hvb2xzLlxcblxcblNjaG9vbCBwZXJmb3JtYW5jZSBpcyB0cmFja2VkIGJ5IG1lYXN1cmluZyB0aGUgcHJvcG9ydGlvbiBvZiBwdXBpbHMgd2hvIGF0dGVuZCBnb29kIG9yIG91dHN0YW5kaW5nIHNjaG9vbHMgYXQgdGhlIHNjaG9vbHPigJkgbGFzdCBpbnNwZWN0aW9uLlxcblxcbkFsbCBzY2hvb2xzIGFyZSBpbnNwZWN0ZWQgYXMgcGFydCBvZiBhIGN5Y2xlIG9mIGluc3BlY3Rpb24gd2l0aCBpbmFkZXF1YXRlIGFuZCBSSSAoUmVxdWlyZXMgSW1wcm92ZW1lbnQpIHNjaG9vbHMgYmVpbmcgaW5zcGVjdGVkIHdpdGhpbiB0d28geWVhcnMgYW5kIGdvb2Qgc2Nob29scyBldmVyeSB0aHJlZSB5ZWFycy4gT3V0c3RhbmRpbmcgc2Nob29scyBhcmUgbm90IHJvdXRpbmVseSBpbnNwZWN0ZWQuXFxuXFxuICBcXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipQZXJmb3JtYW5jZSBvZiBXZXN0IFN1c3NleCBTY2hvb2xzIC0gRGVjZW1iZXIgMjAxNyoqXFxuXFxuVGhlIHRvdGFsIGZvciBwdXBpbHMgYXR0ZW5kaW5nIFdlc3QgU3Vzc2V4IHNjaG9vbHMgdGhhdCBhcmUganVkZ2VkIGdvb2Qgb3Igb3V0c3RhbmRpbmcgaGFzIGluY3JlYXNlZCB0byBhIDE2LW1vbnRoIGhpZ2ggb2YgODQuMiUuIFRoZSBpbmNyZWFzZSBmcm9tIFNlcHRlbWJlciAyMDE2IHRvIERlY2VtYmVyIDIwMTcgaXMgMy4yJS5cXG5cXG5Gb3IgRGVjZW1iZXIsIHRoZSBwZXJjZW50YWdlIGZvciBlYWNoIHNjaG9vbCBwaGFzZSBpcyBhcyBmb2xsb3dzOlxcblxcbiogwrcgUHJpbWFyeSBTY2hvb2wgcHVwaWxzID0gODMlXFxuKiDCtyBTZWNvbmRhcnkgU2Nob29sIHB1cGlscyA9IDg1JVxcbiogwrcgU3BlY2lhbCBTY2hvb2wgcHVwaWxzID0gOTYlXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUGVyZm9ybWFuY2Ugb2YgV2VzdCBTdXNzZXggU2Nob29scyAtIE5vdmVtYmVyIDIwMTcqKlxcblxcblRoZSB0b3RhbCBmb3IgcHVwaWxzIGF0dGVuZGluZyBXZXN0IFN1c3NleCBzY2hvb2xzIHRoYXQgYXJlIGp1ZGdlZCBnb29kIG9yIG91dHN0YW5kaW5nIGhhcyByZW1haW5lZCBzdGVhZHkgdGhpcyBtb250aCBhdCBhcm91bmQgODQlLiBGb3IgTm92ZW1iZXIsIHRoZSBwZXJjZW50YWdlIGZvciBlYWNoIHNjaG9vbCBwaGFzZSBpcyBhcyBmb2xsb3dzOlxcblxcbiogwrcgUHJpbWFyeSBTY2hvb2wgcHVwaWxzID0gODIlXFxuKiDCtyBTZWNvbmRhcnkgU2Nob29sIHB1cGlscyA9IDg1JVxcbiogwrcgU3BlY2lhbCBTY2hvb2wgcHVwaWxzID0gMTAwJVxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlBlcmZvcm1hbmNlIG9mIFdlc3QgU3Vzc2V4IFNjaG9vbHMgLSBPY3RvYmVyIDIwMTcqKlxcblxcblBlcmZvcm1hbmNlIGlzIG1lYXN1cmVkIG1vbnRobHkgYmFzZWQgb24gdGhlIHB1Ymxpc2hlZCBvdXRjb21lcyBvZiBPZnN0ZWQgaW5zcGVjdGlvbnMgb2YgV2VzdCBTdXNzZXggc2Nob29scyBpbmNsdWRpbmcgYWNhZGVtaWVzIGFuZCBmcmVlIHNjaG9vbHMuXFxuXFxuT3VyIGFtYml0aW9uIGlzIHRvIGJlIGluIHRoZSB0b3AgMjUlIG9mIGNvdW50aWVzIG5hdGlvbmFsbHkuXFxuXFxuU2luY2UgQXByaWwgMjAxNSB0aGUgcGVyY2VudGFnZSBvZiBzY2hvb2xzIGp1ZGdlZCB0byBiZSBnb29kIG9yIG91dHN0YW5kaW5nIGhhcyBnZW5lcmFsbHkgaW1wcm92ZWQgbW9udGgtb24tbW9udGggZnJvbSA3NSUgdG8gODQlIGluIE9jdG9iZXIgMjAxNy5cXG5cXG5UaGUgV2VzdCBTdXNzZXggU3RyYXRlZ3kgZm9yIFNjaG9vbCBJbXByb3ZlbWVudCwgaW50cm9kdWNlZCBpbiBBcHJpbCAyMDE2LCBoYXMgY29udHJpYnV0ZWQgdG8gaW5jcmVhc2luZyB0aGUgcHJvcG9ydGlvbiBvZiBwdXBpbHMgdGF1Z2h0IGluIFdlc3QgU3Vzc2V4IHNjaG9vbHMgdGhhdCBhcmUganVkZ2VkIGFzIGdvb2Qgb3Igb3V0c3RhbmRpbmcuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0M3QzMzNUQ5LTBERDgtNDEwMy05OUVBLUQ0MzFDODMxQzMwRVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcbkJldHdlZW4gSnVuZSBhbmQgU2VwdGVtYmVyIDIwMTcgdGhlIHByb3BvcnRpb24gb2YgcHVwaWxzIGluIGdvb2QgYW5kIG91dHN0YW5kaW5nIHNjaG9vbHMgaW1wcm92ZWQgYnkgMSUuIFRoZSBpbmNyZWFzZSBpcyBsYXJnZWx5IHRoZSByZXN1bHQgb2YgaW5zcGVjdGlvbiB0aGF0IHRvb2sgcGxhY2UgaW4gSnVseSBhcyBubyBpbnNwZWN0aW9ucyB0b29rIHBsYWNlIGR1cmluZyBBdWd1c3QgYW5kIHRoZSByZXBvcnRzIG9uIHRob3NlIHRoYXQgaGF2ZSB0YWtlbiBwbGFjZSBpbiBTZXB0ZW1iZXIgaGF2ZSB5ZXQgdG8gYmUgcHVibGlzaGVkLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5DaGFuZ2VzIGluIHRoZSBwcm9wb3J0aW9uIG9mIHB1cGlscyBhdHRlbmRpbmcgZ29vZCBhbmQgb3V0c3RhbmRpbmcgc2Nob29scyBhcmUgZGVwZW5kZW50IHRoZSBudW1iZXIgb2YgcHVwaWxzIGluIHNjaG9vbHMgdGhhdCBhcmUgaW5zcGVjdGVkIGFuZCBtb3ZlIGludG8gZ29vZCBvciBvdXRzdGFuZGluZyBjYXRlZ29yaWVzIGZyb20gUmVxdWlyZXMgSW1wcm92ZW1lbnQgb3IgSW5hZGVxdWF0ZS4gSW4gSnVuZSAyMDE3IHRoZSBpbmNyZWFzZSBpbiB0aGUgcHJvcG9ydGlvbiBvZiBwdXBpbHMgYXR0ZW5kaW5nIGdvb2Qgb3IgYmV0dGVyIHNjaG9vbHMgd2FzIDElLiBJbiBXZXN0IFN1c3NleCBvdXIgdG90YWwgcHVwaWwgcG9wdWxhdGlvbiBpcyBjaXJjYSAxMTIsMDAwLiBUaGlzIG1lYW5zIHRoYXQgc2Nob29scyBpbnNwZWN0ZWQgYnkgT2ZzdGVkLCB3aXRoIHNtYWxsIG51bWJlcnMgb2YgcHVwaWxzLCB3aG8gbW92ZSBpbnRvIHRoZSBnb29kIG9yIG91dHN0YW5kaW5nIGNhdGVnb3JpZXMgbWFrZSBsaXR0bGUgZGlmZmVyZW5jZSB0byB0aGUgb3ZlcmFsbCBwcm9wb3J0aW9uIG9mIHB1cGlscyB0YXVnaHQgaW4gZ29vZCBvciBiZXR0ZXIgc2Nob29scy4gQXBwcm94LiAxLDEyMCBwdXBpbHMgYXJlIHJlcXVpcmVkIHRvIGJlIHRhdWdodCBpbiBzY2hvb2xzIHRoYXQgUmVxdWlyZXMgSW1wcm92ZW1lbnQgb3IgSW5hZGVxdWF0ZSB0byBiZSBpbnNwZWN0ZWQgYXMgZ29vZCBvciBvdXRzdGFuZGluZyB0byBtYWtlIGEgMSUgZGlmZmVyZW5jZSB0aGlzIHJlcHJlc2VudHMgdGhlIHB1cGlscyBwb3B1bGF0aW9uIGluIGFwcHJveC4gMSBtZWRpdW0gc2l6ZWQgc2Vjb25kYXJ5IHNjaG9vbCBhbmQgMiBwcmltYXJ5IHNjaG9vbHMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciA0IC0gTWFyY2ggMjAxNyoqXFxuXFxuUGVyZm9ybWFuY2UgaXMgbWVhc3VyZWQgbW9udGhseSBiYXNlZCBvbiB0aGUgcHVibGlzaGVkIG91dGNvbWVzIG9mIE9mc3RlZCBpbnNwZWN0aW9ucyBvZiBXZXN0IFN1c3NleCBzY2hvb2xzIGluY2x1ZGluZyBhY2FkZW1pZXMgYW5kIGZyZWUgc2Nob29scy4gVGhlIGdvYWwgaXMgbWVhc3VyZWQgYnkgdHJhY2tpbmcgdGhlIHBlcmNlbnRhZ2Ugb2YgcHVwaWxzIGF0dGVuZGluZyBnb29kIGFuZCBvdXRzdGFuZGluZyBzY2hvb2xzLiBPdXIgYW1iaXRpb24gaXMgdG8gYmUgb25lIG9mIHRoZSB0b3AgMjUlIG9mIGhpZ2hlc3QgcGVyZm9ybWluZyBjb3VudGllcy5cXG5cXG5TaW5jZSBNYXJjaCAyMDE2IHRoZSBwZXJjZW50YWdlIGhhcyBpbXByb3ZlZCBmcm9tIDc5JSBhbmQgZm9yIGEgcGVyaW9kIGR1cmluZyB0aGUgeWVhciB3YXMgYXMgaGlnaCBhcyA4MyUuIFRoZSB2YXJpYXRpb24gZnJvbSBtb250aCB0byBtb250aCBpcyB0byBhbiBleHRlbnQgZGVwZW5kZW50IG9uIHdoaWNoIHNjaG9vbHMgYXJlIGluc3BlY3RlZCBhcyBhIGxhcmdlIHNlY29uZGFyeSBzY2hvb2wgaGFzIGEgYmlnZ2VyIGltcGFjdCBvbiB0aGUgb3ZlcmFsbCBmaWd1cmUgdGhhbiBhIHNtYWxsIHByaW1hcnkgc2Nob29sLiBUaGVyZSBjYW4gYWxzbyBiZSBjb25zaWRlcmFibGUgdmFyaWF0aW9ucyBpbiB0aGUgbGVuZ3RoIG9mIHRpbWUgdGFrZW4gZm9yIHJlcG9ydHMgdG8gYmUgcHVibGlzaGVkIGFmdGVyIGFuIGluc3BlY3Rpb24uXFxuXFxuVGhlIFdlc3QgU3Vzc2V4IFN0cmF0ZWd5IGZvciBTY2hvb2wgSW1wcm92ZW1lbnQsIGludHJvZHVjZWQgZHVyaW5nIDIwMTYsIGFuZCBpbmNsdWRpbmcgbW9yZSByZWd1bGFyIHZpc2l0cyBieSBhZHZpc2VycyB0byBhbGwgc2Nob29scywgaGFzIGNvbnRyaWJ1dGVkIHRvIGluY3JlYXNpbmcgdGhlIG51bWJlciBhbmQgcHJvcG9ydGlvbiBvZiBXZXN0IFN1c3NleCBzY2hvb2xzIHRoYXQgYXJlIGdvb2Qgb3Igb3V0c3RhbmRpbmcuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUmFua2luZ3MgYXMgb2YgRGVjZW1iZXIgMjAxNjoqKlxcblxcbkZyb20gdGhlIGxhdGVzdCBBbm51YWwgcmVwb3J0IChsaW5rIGJlbG93KSwgcHVibGlzaGVkIERlY2VtYmVyIDIwMTY6XFxuXFxuKiBOYXRpb25hbGx5LCBXZXN0IFN1c3NleCBpcyByYW5rZWQgMTQxc3Qgb2YgMTUwIGZvciBQcmltYXJ5IFNjaG9vbHMgYW5kIDY5dGggb2YgMTUwIGZvciBTZWNvbmRhcnkgU2Nob29sc1xcbiogV2l0aGluIHRoZSBTb3V0aCBFYXN0IFJlZ2lvbiwgV2VzdCBTdXNzZXggaXMgcmFua2VkIDE3dGggb2YgMTkgZm9yIFByaW1hcnkgU2Nob29scyBhbmQgOXRoIG9mIDE5IGZvciBTZWNvbmRhcnkgU2Nob29scy4gKEFsc28sIDM0dGggb2YgMzQgU2hpcmUgUGx1cyBDb3VudGllcyBhbmQgU2Vjb25kYXJ5IFNjaG9vbHMgYXJlIHJhbmtlZCAxM3RoIG9mIDM0KVxcblxcbkZ1cnRoZXIgcmVnaW9uYWwgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGF0IHRoZSDigJxBbm51YWwgUmVwb3J0IDIwMTUvMTYgcmVnaW9uYWwgaW5mb3JtYXRpb24gcGFjazogU291dGggRWFzdOKAnXNlY3Rpb24gb2YgdGhlIGZvbGxvd2luZyBsaW5rOiBbaHR0cHM6Ly93d3cuZ292LnVrL2dvdmVybm1lbnQvcHVibGljYXRpb25zL29mc3RlZC1hbm51YWwtcmVwb3J0LTIwMTUxNi1lZHVjYXRpb24tZWFybHkteWVhcnMtYW5kLXNraWxsc11bMF1cXG5cXG4qKlJhbmtpbmdzIGFzIG9mIERlY2VtYmVyIDIwMTc6KipcXG5cXG5UaGUgZGF0ZSBvZiBuZXh0IHVwZGF0ZTogRmVicnVhcnkgMjAxOCAocmVsZWFzZWQgLSBEZWNlbWJlciAyMDE3KVxcblxcblswXTogaHR0cHM6Ly93d3cuZ292LnVrL2dvdmVybm1lbnQvcHVibGljYXRpb25zL29mc3RlZC1hbm51YWwtcmVwb3J0LTIwMTUxNi1lZHVjYXRpb24tZWFybHkteWVhcnMtYW5kLXNraWxsc1wifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiUHVwaWxzIGluIFdlc3QgU3Vzc2V4IHNjaG9vbHMganVkZ2VkIGdvb2Qgb3Igb3V0c3RhbmRpbmcgLSB0byBiZSBpbiB0aGUgdG9wIHF1YXJ0aWxlIG9mIGFsbCBMb2NhbCBBdXRob3JpdGllc1wiLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOnRydWUsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRoaXMgZ29hbCBpcyBtZWFzdXJlZCBieSB0cmFja2luZyB0aGUgcGVyY2VudGFnZSBvZiBwdXBpbHMgaW4gV2VzdCBTdXNzZXggYXR0ZW5kaW5nIGdvb2Qgb3Igb3V0c3RhbmRpbmcgc2Nob29scy4gXCIsXCJ0aXRsZV9pbWFnZVwiOlwiL2FwaS9hc3NldHMvNzNGNkM2MjctOTVCOC00OUFBLTlCNEItQ0YzRUNEOUJDQ0QyXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTUtMDQtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiJSIsInRhcmdldCI6ODYsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGEiOjAsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjkxLCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6Inh5anctcXk0OSJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI+In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6MyxcInllYXJcIjoyMDE1fSxcImVuZFwiOntcImRhdGVcIjpcImVuZFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTh9LFwiYWN0aW9uX3R5cGVcIjpcImluY3JlYXNlXCIsXCJtYWludGFpbl90eXBlXCI6XCI+XCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9fSxcInN0YXJ0XCI6XCIyMDE0LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE0LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwidGhlIHByb3BvcnRpb24gb2YgcHVwaWxzIHdobyBhdHRlbmQgc2Nob29scyBpbiBXZXN0IFN1c3NleCB0aGF0IGFyZSBqdWRnZWQgZ29vZCBvciBvdXRzdGFuZGluZyBieSBPZnN0ZWQgXCIsXCJ1c2VfcHJvZ3Jlc3Nfb3ZlcnJpZGVcIjp0cnVlLFwicHJvZ3Jlc3Nfb3ZlcnJpZGVcIjpcIndpdGhpbl90b2xlcmFuY2VcIn0ifSwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMTA6NTE6NDIuMzA2WiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDEwOjUxOjQyLjMwNloiLCJ0YXJnZXRfdG9sZXJhbmNlIjo3LjcsImlkIjoidTZldS0yd3doIn0sInJlbGF0ZWRfbWVhc3VyZXMiOlt7Im1ldGFkYXRhIjoiIiwiaWQiOiJ0OTJnLWJ0c2cifSx7Im1ldGFkYXRhIjoiIiwiaWQiOiJ5NDRqLXo2ODUifV0sImJhc2VfZGFzaGJvYXJkIjoiNTc0ci1oNW5jIiwidXBkYXRlZF9hdCI6IjIwMTgtMDctMjNUMTA6NTE6NTEuMjU4WiIsImNyZWF0ZWRfYXQiOiIyMDE4LTA3LTIzVDEwOjUxOjQyLjM4MFoiLCJ2ZXJzaW9uIjoiMjAxOC0wNy0yM1QxMDo1MTo1MS4yNThaIiwiY3JlYXRlZF9ieSI6Ijc5N2ktNnI5ZyJ9LHsiaWQiOiI4NmtqLTRuYXciLCJuYW1lIjoiRWNvbm9taWMgZ3Jvd3RoIiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJpY29uXCI6XCJ1cHdhcmRzbGluZWNoYXJ0XCIsXCJuYXJyYXRpdmVcIjpbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipFY29ub21pYyBHcm93dGg6IC0gR3Jvc3MgVmFsdWUgQWRkZWQgcGVyIEhlYWQqKlxcblxcbiBcXG5cXG5Hcm9zcyBWYWx1ZSBBZGRlZCAoR1ZBKSBpbmRpY2F0ZXMgdGhlIGxldmVsIG9mIGVjb25vbWljIGFjdGl2aXR5IHdpdGhpbiBhbiBhcmVhIGJ5IG1lYXN1cmluZyBpdHMgcHJvZHVjdGlvbiBvZiBnb29kcyBhbmQgc2VydmljZXMuIEl0IGlzIGEgbWVhc3VyZSB0aGF0IGFsbG93cyBjb21wYXJpc29uIG9mIGFyZWFzLCBhbmQgaGlnaGxpZ2h0cyB2YXJpYXRpb25zIGluIHBlcmZvcm1hbmNlIHdpdGggYSByZWdpb24sIGFuZCB0cmVuZHMgb3ZlciB0aW1lLiBUaGUgR1ZBIGZpZ3VyZSAod29ya3BsYWNlIGJhc2VkKSBkaXZpZGVkIGJ5IHRoZSB0b3RhbCByZXNpZGVudGlhbCBwb3B1bGF0aW9uIChyZXNpZGVudCBiYXNlZCkgZ2l2ZXMgYW4gZXN0aW1hdGUgZm9yIEdWQSBwZXIgSGVhZCwgd2hpbHN0IG5vdCBhIG1lYXN1cmUgb2YgcHJvZHVjdGl2aXR5IGl0IGlzLCBuZXZlcnRoZWxlc3MgYSB3aWRlbHkgdXNlZCBtZWFzdXJlIHRvIGluZGljYXRlIHRoZSBlY29ub21pYyB3ZWxsLWJlaW5nIG9mIGFuIGFyZWEgYW5kIGFnYWluLCBwcm92aWRlcyBjb21wYXJpc29uL2JlbmNobWFya2luZyB3aXRoIG90aGVyIGFyZWFzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJPTlMgcmVsZWFzZSBhbm51YWwgc3ViLXJlZ2lvbmFsIGVzdGltYXRlcyBvZiBHVkEgYW5kIEdWQSBwZXIgaGVhZC4gVGhlIG1vc3QgcmVjZW50IHVwZGF0ZSB3YXMgcmVsZWFzZWQgaW4gRGVjZW1iZXIgMjAxNyBhbmQgY292ZXJzIHRoZSBwZXJpb2QgdXAgdG8gMjAxNi4gQXMgaW4gdGhlIHByZXZpb3VzIHllYXIgdGhlIGRhdGEgaXMgcmVsZWFzZWQgYnkgdGhlIDIwMTUgTlVUUzMgYXJlYXMg4oCTIHdoaWNoIHNwbGl0IFdlc3QgU3Vzc2V4IGludG8gdHdvIGFyZWFzOiBXZXN0IFN1c3NleCBTb3V0aCBXZXN0IChXU1NXKSBpbmNsdWRpbmcgQWR1ciwgQXJ1biwgQ2hpY2hlc3RlciBhbmQgV29ydGhpbmcsIGFuZCBXZXN0IFN1c3NleCBOb3J0aCBFYXN0IChXU05FKSBpbmNsdWRpbmcgQ3Jhd2xleSwgSG9yc2hhbSBhbmQgTWlkIFN1c3NleC4gTk9NSVMgaGFkIHByZXZpb3VzbHkgcmV3b3JrZWQgdGhlIE5VVFMzIGRhdGEgdG8gcHJvdmlkZSBlc3RpbWF0ZXMgZm9yIGNvdW50eSBsZXZlbCBnZW9ncmFwaGllcywgd2hpbHN0IHRoZSBuZXcgZGF0YSBoYXMgYmVlbiByZWxlYXNlZCBOT01JUyBoYXZlIG5vdCB5ZXQgdW5kZXJ0YWtlbiB0aGlzIGV4ZXJjaXNlLCB0aG91Z2ggd2UgY2FuIG1ha2Ugc29tZSBlc3RpbWF0ZSBvZiB0aGUgV2VzdCBTdXNzZXggZmlndXJlIGluIHRoZSBtZWFudGltZS5cXG5cXG4gXFxuXFxuTlVUUzMgOiBbaHR0cDovL05vbWVuY2xhdHVyZV1bMF0gb2YgVGVycml0b3JpYWwgVW5pdHMgZm9yIFN0YXRpc3RpY3MgLSBHZW9ncmFwaGllcyB1c2VkIGFjcm9zcyBFVSBmb3Igc3RhdGlzdGljYWwgcHVycG9zZXNcXG5cXG5bMF06IGh0dHA6Ly9Ob21lbmNsYXR1cmVcIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvQzczN0RFMzktMjU2OS00NDg0LTk2NTYtRjZGQTY5QUMxNUJCXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSBsZXZlbHMgb2YgR1ZBIHBlciBoZWFkIGluIFdTU1cgY29udGludWUgdG8gYmUgc2lnbmlmaWNhbnRseSBsb3dlciB0aGFuIHRoZSBOb3J0aCBFYXN0IG9mIHRoZSBjb3VudHkgd2hlcmUgR1ZBIHBlciBoZWFkIGlzIGhpZ2hlciB0aGFuIHRoZSByZWdpb25hbCBhbmQgbmF0aW9uYWwgcmF0ZSDigJNkdWUgdG8gdGhlIHByZXNlbmNlIG9mIEdhdHdpY2sgQWlycG9ydCBiZWluZyB0aGUga2V5IGVjb25vbWljIGRyaXZlciBmb3IgdGhhdCBzdWIgcmVnaW9uLiBUaGUgZXN0aW1hdGUgZm9yIFdlc3QgU3Vzc2V4IHN1Z2dlc3QgdGhhdCBpdCBpcyBqdXN0IHVuZGVyIDklIGxvd2VyIHRoZSBmaWd1cmUgZm9yIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbiDigJMgYXMgbGlnaHQgcmVkdWN0aW9uIGluIHRoZSBnYXAgYmV0d2VlbiB0aGUgcmVnaW9uYWwgYW5kIGNvdW50eSBmaWd1cmUgY29tcGFyZWQgd2l0aCB0aGUgcHJldmlvdXMgeWVhci5cXG5cXG5PdmVyIHRoZSBsYXN0IHllYXIgKDIwMTUtMjAxNikgR1ZBIHBlciBoZWFkIGdyZXcgaW4gV1NORSBieSAxLjY0JSBuZWFybHkgNyB0aW1lcyBtb3JlIHRoYW4gdGhhdCBzZWVuIGluIFdTU1cgd2hpY2ggZ3JldyBieSAwLjI0JS4gUmVnaW9uYWwgZ3Jvd3RoIHdhcyAxLjY2JSBhbmQgdGhhdCBmb3IgRW5nbGFuZCBhdCAyLjclLiBMb29raW5nIGF0IHRoZSBhcmVhcyB3aXRoaW4gdGhlIFNvdXRoIEVhc3QgcmVnaW9uIE1pbHRvbiBLZXluZXMgc2F3IHRoZSBoaWdoZXN0IGdyb3d0aCBvdmVyIHRoZSB5ZWFyIGF0IDYuODklIGFuZCBpbiBzb21lIGFyZWEgR1ZBIHBlciBoZWFkIGZlbGwg4oCTIHRoZSBncmVhdGVzdCBmYWxsIGJlaW5nIHNlZW4gaW4gTm9ydGggSGFudHMgYXQgLTEuMTElLiBPZiBhbGwgdGhlc2UgMjEgYXJlYXMgV1NORSB3YXMgcmFua2VkIDl0aCBoaWdoZXN0LCBhbmQgV1NTVyBhdCAxNnRoXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0E0MURDMThFLTYxMzMtNENGNS05N0M5LUYxOTA2RkQ3RjVBOFwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIkVzdGltYXRlcyBmb3IgV2VzdCBTdXNzZXggc3VnZ2VzdCB0aGF0IGluIDE5OTcgKHRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgY3VycmVudCB0aW1lIHNlcmllcyksIEdWQSBwZXIgaGVhZCB3YXMgwqMxNCwwMDYgZm9yIFdlc3QgU3Vzc2V4OyBzbGlnaHRseSBoaWdoZXIgdGhhbiBmb3IgRW5nbGFuZCBhdCDCozEzLDY3NiwgYW5kIDUgbG93ZXIgdGhhbiB0aGUgU291dGggRWFzdCBhdCDCozE0LDY5Ni4gT3ZlciB0aW1lIGhvd2V2ZXIsIEdWQSBmaWd1cmVzIGhhdmUgcmlzZW4gaW4gRW5nbGFuZCBhbmQgdGhlIFNvdXRoIEVhc3QgYXQgYSBoaWdoZXIgcmF0ZSB0aGFuIGluIFdlc3QgU3Vzc2V4LCB0aGUgZ2FwIGluIEdWQSBwZXIgaGVhZCBiZXR3ZWVuIFdlc3QgU3Vzc2V4IGFuZCB0aGUgU291dGggRWFzdCBoYXMgbm93IHJpc2VuIHRvIDkuMSUgaW4gMjAxNC5cXG5cXG5Mb29raW5nIGF0IHRoZSBjb3VudHkgZXN0aW1hdGVzIGZyb20gTm9taXMgaXQgaXMgZXZpZGVudCB0aGF0IFdlc3QgU3Vzc2V4IGRvZXMgbm90IGNvbXBhcmUgZmF2b3VyYWJseSB3aXRoIG90aGVyIGNvdW50eSBhcmVhcyBpbiB0aGUgU291dGggRWFzdCByZWdpb24sIGl0IGxpZXMgaW4gdGhlIGJvdHRvbSA1MCUgb2YgYXV0aG9yaXRpZXMgd2hlcmUgdGhlIHJhbmdlIGluIEdEUCBwZXIgaGVhZCBpcyBmcm9tIMKjMTcsMzM5IGluIE1lZHdheSB0byB0aGUgaGlnaGVzdCBpbiBXZXN0IEJlcmtzaGlyZSBvZiDCozQ1LDczOCDigJMgd2hpY2ggaXMgbW9yZSB0aGFuIGRvdWJsZSB0aGUgbGV2ZWwgb2YgdGhhdCBzZWVuIGluIFdlc3QgU3Vzc2V4IFNvdXRoIFdlc3QgYXJlYS5cXG5cXG5XZXN0IFN1c3NleCBkb2VzIGNvbXBhcmUgYmV0dGVyIHdpdGggdGhvc2UgR1ZBIHBlciBIZWFkIGxldmVscyBvZiBvdXIgU3RhdGlzdGljYWwgTmVpZ2hib3VycyDigJNhcyBzaG93biBiZWxvdyBhbmQgbGllcyBpbiB0aGUgaGlnaGVzdCBxdWFydGlsZS4gVGhlIGFtYml0aW9uIGlzIHRvIGJyaW5nIHRoZSBHVkEgcGVyIGhlYWQgZmlndXJlIGZvciBXZXN0IFN1c3NleCB0byB0aGUgcmVnaW9uYWwgKFNvdXRoIEVhc3QpIGF2ZXJhZ2UuXFxuXFxuXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNjUxQzE5NzgtQTJDMC00Qzk1LUJFNUItNzM3NzBGQ0U4NkRCXCJ9XV19LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAyIC0gU2VwdGVtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIGxhdGVzdCBkYXRhIGZvciBHcm9zcyBWYWx1ZSBBZGRlZCAoR1ZBKSB3YXMgcmVsZWFzZWQgaW4gRGVjZW1iZXIgMjAxNiBhbmQgY292ZXJzIHRoZSBwZXJpb2QgdXAgdG8gMjAxNS4gVGhlIG5leHQgcmVsZWFzZSBvZiB0aGlzIGRhdGEgZnJvbSBPTlMgaXMgZXhwZWN0ZWQgaW4gaXMgYSByZWNvZ25pc2VkIG1lYXN1cmUgb2YgZWNvbm9taWMgYWN0aXZpdHkgYnJvYWRseSBkZWZpbmVkIGFzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHZhbHVlIG9mIHRoZSBnb29kcyBhbmQgc2VydmljZXMgcHJvZHVjZWQgYW5kIHRoZSBjb3N0IG9mIHJhdyBtYXRlcmlhbHMgYW5kIG90aGVyIGlucHV0cyB1c2VkIGluIHByb2R1Y3Rpb24uIFRoZSBkYXRhIGlzIHJlbGVhc2VkIGFubnVhbGx5IGZyb20gT05TLCBhbmQgaW5jbHVkZXMgdGhlIHN1Yi1yZWdpb25hbCBlc3RpbWF0ZXMgZm9yIEdWQSBmb3IgdGhlIHR3byBXZXN0IFN1c3NleCBTdWIgQXJlYXM6XFxuXFxuMS4gV2VzdCBTdXNzZXjigJNTb3V0aCBXZXN0IChXU1NXKSDigJMgY29tcHJpc2VzIENoaWNoZXN0ZXIsIEFydW4sIEFkdXIgYW5kIFdvcnRoaW5nXFxuMS4gV2VzdCBTdXNzZXjigJNOb3J0aCBFYXN0IChXU05FKSDigJMgY29tcHJpc2VzIENyYXdsZXksIEhvcnNoYW0gYW5kIE1pZCBTdXNzZXhcXG5cXG5UaGUgbGF0ZXN0IGRhdGEsYWxyZWFkeSByZXBvcnRlZCwgd2FzIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMTYsIGFuZCBjb3ZlcnMgdGhlIHBlcmlvZCB1cCB0bzIwMTUsIHRoZSBmaWd1cmVzIGFuZCB0cmVuZHMgZm9yIHRoZSB0d28gV2VzdCBTdXNzZXggYXJlYXMgd2VyZSByZXBvcnRlZCBhdCB0aGVlbmQgb2YgdGhlIHByZXZpb3VzIHF1YXJ0ZXIgYW5kIHRoZXJlIGlzIG5vIHVwZGF0ZSBpbiB0ZXJtcyBvZiB0aGUgbG9jYWxwaWN0dXJlLiBUaGUgbmV4dCByZWxlYXNlIG9mIGRhdGEgaXMgZXhwZWN0ZWQgaW4gRGVjZW1iZXIgMjAxNy4gSG93ZXZlciwgaW4gTWFyY2ggMjAxNyB0YWJsZXMgc2hvd2luZyBHVkEgYWxsb2NhdGVkIHRvbG9jYWwgYXV0aG9yaXRpZXMgaW4gdGhlIFVLIHdlcmUgcmVsZWFzZWQsIHRoZSBkYXRhIHdhcyBwcm9kdWNlZCBpbiByZXNwb25zZSB0b3VzZXIgbmVlZCBidXQgd2hpbGUgbm90IE5hdGlvbmFsIFN0YXRpc3RpY3MsIG5ldmVydGhlbGVzcyBnaXZlIHNvbWUgaW5kaWNhdGlvbmFzIHRvIHRoZSBzY2FsZSBvZiBHVkEgYXQgbG9jYWwgYXV0aG9yaXR5IGxldmVsLCBhbmQgdGhlIGNvbnRyaWJ1dGlvbiB0aGF0IGVhY2hvZiB0aGUgYnJvYWQgbGV2ZWwgc2VjdG9ycyBtYWtlIHRvIHRoZSBsb2NhbCBlY29ub215LlxcblxcbltodHRwczovL3d3dy5vbnMuZ292LnVrL2Vjb25vbXkvZ3Jvc3N2YWx1ZWFkZGVkZ3ZhL2RhdGFzZXRzL3JlZ2lvbmFsZ3ZhaWJ5bG9jYWxhdXRob3JpdHlpbnRoZXVrXVswXVxcblxcblswXTogaHR0cHM6Ly93d3cub25zLmdvdi51ay9lY29ub215L2dyb3NzdmFsdWVhZGRlZGd2YS9kYXRhc2V0cy9yZWdpb25hbGd2YWlieWxvY2FsYXV0aG9yaXR5aW50aGV1a1wifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzJGMjQ5ODAxLTQ1RUMtNEZDNy1CODNGLTc4MDNGQUE0QzQ5Q1wifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0M0RjE5OTQ3LUQzNjEtNEUxMi1BRkY0LUM4MjlDRUVFQjJEMlwifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGUgbWFpbiBwb2ludHMgZnJvbSB0aGUgKE9OUykgc3VtbWFyeSBvZiB0aGUgKEdCKSBTaG9ydC10ZXJtIGVjb25vbWljIGluZGljYXRvcnMgcHVibGlzaGVkIGluIGVhcmx5IFNlcHRlbWJlciAyMDE3IGFyZTpcXG5cXG4qIFRvdGFsIHByb2R1Y3Rpb24gb3V0cHV0IHNhdyBhIHNsaWdodCBpbmNyZWFzZSBpbiB0aGUgMyBtb250aHMgdG8gSnVseSAyMDE3IGFuZCBpbmNyZWFzZWQgYnkgMC4zJTtcXG4qIE1hbnVmYWN0dXJpbmcgcmVtYWlucyByZWxhdGl2ZWx5IHN1YmR1ZWQgc2luY2UgdGhlIGJlZ2lubmluZyBvZiB0aGUgeWVhciwgdGhvdWdoIHNvbWUgZ3Jvd3RoIHNlZW4gZnJvbSBKdWx5IGF0dHJpYnV0ZWQgdG8gc3Ryb25nZXIgZ3Jvd3RoIGluIGNhciBwcm9kdWN0aW9uO1xcbiogQ29uc3RydWN0aW9uIG91dHB1dCBmZWxsIGZvciB0aGUgZm91cnRoIG1vbnRoIGluIGEgcm93LCB3aXRoIHByaXZhdGUgaG91c2luZyBidWlsZGluZyBjb250cmFjdGluZyBpbiBKdWx5IDIwMTcgYWZ0ZXIgc2VlaW5nIGdyb3d0aCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB5ZWFyLlxcblxcbltodHRwczovL3d3dy5vbnMuZ292LnVrL2Vjb25vbXkvZWNvbm9taWNvdXRwdXRhbmRwcm9kdWN0aXZpdHkvb3V0cHV0L2FydGljbGVzL3Nob3J0dGVybWluZGljYXRvcnNlY29ub21pY2NvbW1lbnRhcnkvc2VwdDIwMTddWzBdXFxuXFxuWzBdOiBodHRwczovL3d3dy5vbnMuZ292LnVrL2Vjb25vbXkvZWNvbm9taWNvdXRwdXRhbmRwcm9kdWN0aXZpdHkvb3V0cHV0L2FydGljbGVzL3Nob3J0dGVybWluZGljYXRvcnNlY29ub21pY2NvbW1lbnRhcnkvc2VwdDIwMTdcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQgLSBNYXJjaCAyMDE3KipcXG5cXG4tIC0gLVxcblxcbkdyb3NzIFZhbHVlIEFkZGVkIChHVkEpIGlzIGEgcmVjb2duaXNlZCBtZWFzdXJlIG9mIGVjb25vbWljIGFjdGl2aXR5IGJyb2FkbHkgZGVmaW5lZCBhcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB2YWx1ZSBvZiB0aGUgZ29vZHMgYW5kIHNlcnZpY2VzIHByb2R1Y2VkIGFuZCB0aGUgY29zdCBvZiByYXcgbWF0ZXJpYWxzIGFuZCBvdGhlciBpbnB1dHMgdXNlZCBpbiBwcm9kdWN0aW9uLiBUaGUgZGF0YSBpcyByZWxlYXNlZCBhbm51YWxseSBmcm9tIE9OUywgYW5kIGluY2x1ZGVzIHRoZSBzdWItcmVnaW9uYWwgZXN0aW1hdGVzIGZvciBHVkEgZm9yIHRoZSB0d28gV2VzdCBTdXNzZXggU3ViIEFyZWFzOlxcblxcbjEuIFdlc3QgU3Vzc2V4IOKAk1NvdXRoIFdlc3QgKFdTU1cpIOKAkyBjb21wcmlzZXMgQ2hpY2hlc3RlciwgQXJ1biwgQWR1ciBhbmQgV29ydGhpbmdcXG4xLiBXZXN0IFN1c3NleCDigJNOb3J0aCBFYXN0IChXU05FKSDigJMgY29tcHJpc2VzIENyYXdsZXksIEhvcnNoYW0gYW5kIE1pZCBTdXNzZXhcXG5cXG5UaGUgbGF0ZXN0IGRhdGEgd2FzIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMTYsIGFuZCBjb3ZlcnMgdGhlIHBlcmlvZCB1cCB0byAyMDE1LCB0aGUgZmlndXJlcyBhbmQgdHJlbmRzIGZvciB0aGUgdHdvIFdlc3QgU3Vzc2V4IGFyZWFzIHdlcmUgcmVwb3J0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgcHJldmlvdXMgcXVhcnRlciBhbmQgdGhlcmUgaXMgbm8gdXBkYXRlIGluIHRlcm1zIG9mIHRoZSBsb2NhbCBwaWN0dXJlLiBUaGUgbmV4dCByZWxlYXNlIG9mIGRhdGEgaXMgZXhwZWN0ZWQgaW4gRGVjZW1iZXIgMjAxNy5cXG5cXG5Ib3dldmVyLCBpbiB0ZXJtcyBvZiB0aGUgbmF0aW9uYWwgcGljdHVyZSwgdGhlcmUgaXMgc29tZSBjb21tZW50YXJ5IGZyb20gdmFyaW91cyBzb3VyY2VzIGluY2x1ZGluZyBPTlMgaXRzZWxmIGFuZCB0aGUgQmFuayBvZiBFbmdsYW5kLlxcblxcbk9OUyBNb250aGx5IEVjb25vbWljIGNvbW1lbnRhcnkgKE1hcmNoIDIwMTcpIHN1Z2dlc3RzIHRoYXQgdGhlIFVLIGVjb25vbXkgZ3JldyBieSAwLjclIGluIFF1YXJ0ZXIgNCAoT2N0IHRvIERlYykgMjAxNiwgYW5kIGJ5IDEuOCUgZm9yIHRoZSB3aG9sZSBvZiAyMDE2LiBXaG9sZSBlY29ub215IGluZGljYXRvcnMgb2YgZWNvbm9taWMgd2VsbC1iZWluZyBhcmUgcmVwb3J0ZWQgYXMgYmVpbmcgZ2VuZXJhbGx5IHBvc2l0aXZlLHdpdGggZ3Jvd3RoIGluIEdEUCBwZXIgaGVhZCwgc3BlbmRpbmcgcGVyIGhlYWQgYW5kIG5ldCBuYXRpb25hbCBkaXNwb3NhYmxlIGluY29tZSwgdGhvdWdoIGhvdXNlaG9sZCBpbmNvbWUgc2F3IGEgZGVjbGluZS4gVGhlIGdyb3d0aCBpbiBwcm9kdWN0aW9uIGFuZCBjb25zdHJ1Y3Rpb24gb3V0cHV0IHNlZW4gdG93YXJkcyB0aGUgZW5kIG9mIDIwMTYgaGFkIGZsYXR0ZW5lZCBvdXQgaW4gSmFudWFyeSAyMDE3IGFuZCB3aGlsc3Qgc2VydmljZSBzZWN0b3JzIGRyb3BwZWQgc2xpZ2h0bHkgaW4gSmFudWFyeSB0aGUgbG9uZyB0ZXJtIHBpY3R1cmUgaXMgc3RpbGwgb25lIG9mIGV4cGVjdGVkIGdyb3d0aC4gT3ZlcmFsbCwgbW9zdCBvZiB0aGUgYnJvYWRlciBtZWFzdXJlcyBvZiB0aGUgVUsgZWNvbm9teSBhcmUgY29udGludWluZyB0aGUgdHJlbmRzIHNlZW4gZHVyaW5nIDIwMTYuIEZvciBleGFtcGxlLGNvbnN1bWVyIHNwZW5kaW5nIHJlbWFpbnMgcmVsYXRpdmVseSBzdHJvbmcsIHNlcnZpY2VzIG91dHB1dCBpcyBpbmNyZWFzaW5nLG1hbnVmYWN0dXJpbmcgb3V0cHV0IGlzIHJpc2luZywgcGFydGljdWxhcmx5IGluIHRoZSBwcm9kdWN0aW9uIG9mIG1vdG9yIHZlaGljbGVzIGFuZCB1bmVtcGxveW1lbnQgaXMgbG93LiBIb3VzZWhvbGRzIGFyZSBob3dldmVyIHNlZWluZyByaXNpbmcgcHJpY2VzIGZvciBnb29kcyBhbmQgc2VydmljZXMgaW4gc29tZSBrZXkgYXJlYXMgc3VjaCBhcyBmb29kIGFuZCBmdWVsLCB3aGljaCBpcyBwdXR0aW5nIGRvd253YXJkIHByZXNzdXJlIG9uIHJlYWwgd2FnZXMgYW5kIGluY29tZXMuXFxuXFxuwqAgW2h0dHBzOi8vd3d3Lm9ucy5nb3YudWsvZWNvbm9teS9uYXRpb25hbGFjY291bnRzL3Vrc2VjdG9yYWNjb3VudHMvYXJ0aWNsZXMvbW9udGhseWVjb25vbWljY29tbWVudGFyeS9tYXIyMDE3XVswXVxcblxcbk1vcmUgbmF0aW9uYWwgbGV2ZWwgZGF0YSB3aWxsIGJlY29tZSBhdmFpbGFibGUgb3ZlciB0aGUgY29taW5nIG1vbnRocywgdGhvdWdoIGl0IHdpbGwgYmUgbXVjaCBsb25nZXIgYmVmb3JlIGRhdGEgZm9yIFdlc3QgU3Vzc2V4IHdpbGwgYmUgcmVsZWFzZWQgYW5kIHdlIGNhbiBzZWUgd2hhdCB0aGUgZW1lcmdpbmcgcGljdHVyZSBpcyBmb3IgdGhlIGxvY2FsIGVjb25vbXkgcGFydGljdWxhcmx5IGluIGxpZ2h0IG9mIHRoZSBwb3N0IEVVIHZvdGUsIHRyaWdnZXJpbmcgb2YgQXJ0aWNsZSA1MCBhbmQgc3Vic2VxdWVudCBuZWdvdGlhdGlvbnMuXFxuXFxuWzBdOiBodHRwczovL3d3dy5vbnMuZ292LnVrL2Vjb25vbXkvbmF0aW9uYWxhY2NvdW50cy91a3NlY3RvcmFjY291bnRzL2FydGljbGVzL21vbnRobHllY29ub21pY2NvbW1lbnRhcnkvbWFyMjAxN1wifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyAtIERlY2VtYmVyIDIwMTYqKlxcblxcbi0gLSAtXFxuXFxuR3Jvc3MgVmFsdWUgQWRkZWQgKEdWQSkgaXMgYSByZWNvZ25pc2VkIG1lYXN1cmUgb2YgZWNvbm9taWMgYWN0aXZpdHkgYnJvYWRseSBkZWZpbmVkIGFzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHZhbHVlIG9mIHRoZSBnb29kcyBhbmQgc2VydmljZXMgcHJvZHVjZWQgYW5kIHRoZSBjb3N0IG9mIHJhdyBtYXRlcmlhbHMgYW5kIG90aGVyIGlucHV0cyB1c2VkIGluIHByb2R1Y3Rpb24uIFRoZSBkYXRhIGlzIHJlbGVhc2VkIGFubnVhbGx5IGZyb20gT05TLCB0aGUgbGF0ZXN0IHN1Yi1yZWdpb25hbCBlc3RpbWF0ZXMgZm9yIEdWQSB3YXMgcmVsZWFzZWQgaW4gRGVjZW1iZXIgMjAxNiwgYW5kIHRoZSBuZXh0IHJlbGVhc2UgaXMgZXhwZWN0ZWQgaW4gRGVjZW1iZXIgMjAxNy5cXG5cXG5UaGUgZGF0YSBpcyBhdmFpbGFibGUgYXQ6IFtodHRwczovL3d3dy5vbnMuZ292LnVrL2Vjb25vbXkvZ3Jvc3N2YWx1ZWFkZGVkZ3ZhL2RhdGFzZXRzL3JlZ2lvbmFsZ3Jvc3N2YWx1ZWFkZGVkaW5jb21lYXBwcm9hY2hdWzBdXFxuXFxuUHJldmlvdXMgdG8gMjAxNSB0aGUgR1ZBIGRhdGEgd2FzIHJlbGVhc2VkIGF0IGNvdW50eSBsZXZlbCBhbmQgdGhlcmVmb3JlIGF2YWlsYWJsZSBmb3IgV2VzdCBTdXNzZXguIFNpbmNlIHRoZW4sIHRoZSBmaWd1cmVzIGhhdmUgYmVlbiByZWxlYXNlZCBhdCByZXZpc2VkIGdlb2dyYXBoaWNhbCBsZXZlbHMgd2hpY2ggc3BsaXQgdGhlIGNvdW50eSBpbnRvIHR3byBhcmVhcyB0byBpbmNsdWRlOlxcblxcbjEuIFdlc3QgU3Vzc2V4IOKAkyBTb3V0aCBXZXN0IChXU1NXKSDigJMgY29tcHJpc2VzIENoaWNoZXN0ZXIsIEFydW4sIEFkdXIgYW5kIFdvcnRoaW5nXFxuMS4gV2VzdCBTdXNzZXgg4oCTIE5vcnRoIEVhc3QgKFdTTkUpIOKAkyBjb21wcmlzZXMgQ3Jhd2xleSwgSG9yc2hhbSBhbmQgTWlkIFN1c3NleFxcblxcblRoaXMgc3BsaXQgaXMgaGVscGZ1bCBhcyBXZXN0IFN1c3NleOKAk1NvdXRoIFdlc3QgKFdTU1cpIG1hdGNoZXMgd2l0aCBDb2FzdGFsIFdlc3QgU3Vzc2V4IGFuZCBXZXN0IFN1c3NleC1Ob3J0aCBFYXN0IChXU05FKSB3aXRoIHRoYXQgYXJlYSBvZiBXZXN0IFN1c3NleCB0aGF0IGxpZXMgd2l0aGluIEdhdHdpY2sgRGlhbW9uZCBzbyB0aGVyZSBpcyBtb3JlIGRldGFpbCBmb3IgdGhlc2UgdHdvIHZlcnkgZGlmZmVyZW50IGVjb25vbWljIGFyZWFzIG9mIHRoZSBjb3VudHkuIFdoaWxzdCB0aGUgZmlndXJlIHNhcmUgbm90IHJlbGVhc2VkIGJ5IE9OUyBmb3IgV2VzdCBTdXNzZXggQ291bnR5IGFyZWEgdGhleSBjYW4gYmUgZXN0aW1hdGVkIGJ5IGNvbWJpbmluZyB0aGUgdHdvIG5ldyBhcmVhcy4gVGhlIGxhdGVzdCBmaWd1cmVzIHN1Z2dlc3QgdGhhdCBhdCAyMDE1OlxcblxcbiogV2l0aGluIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbiBCZXJrc2hpcmUgaGFkIHRoZSBoaWdoZXN0IEdWQSBhdCDCozM1LDg0NW0gYW5kIElzbGUgb2YgV2lnaHQgdGhlIGxvd2VzdCBhdCDCozIsNDczbS5cXG4qIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBQb3J0c21vdXRoIGFsbCBhcmVhcyB3aXRoaW4gdGhlIFNvdXRoIEVhc3QgZXhwZXJpZW5jZWQgZ3Jvd3RoIGluIEdWQSBvdmVyIHRoZSB5ZWFyIDIwMTQtMjAxNS4gVGhlIGhpZ2hlc3QgcGVyY2VudGFnZSBncm93dGggd2FzIHNlZW4gaW4gS2VudCBUaGFtZXMgR2F0ZXdheSBhdCA2LjElLCBQb3J0c21vdXRoIHNhdyBhIGZhbGwgaW4gR1ZBIG9mIDAuNCUgb3ZlciB0aGUgeWVhci4gT3V0IG9mIHRoZSAyMSBzdWIgYXJlYXMgaW4gdGhlIFNvdXRoIEVhc3QgcmVnaW9uIOKAmFdlc3QgU3Vzc2V4IC0gU291dGggV2VzdCcgc2F3IHRoZSBzZWNvbmQgbG93ZXN0IGdyb3d0aCBvZiAwLjElIGNvbXBhcmVkIHdpdGggZ3Jvd3RoIGluIFdlc3QgU3Vzc2V4IE5vcnRoIEVhc3Qgb2YgMyUuIFRoaXMgY29tcGFyZXMgd2l0aCB0aGUgZ3Jvd3RoIG92ZXIgdGhlIHllYXIgZm9yIEVuZ2xhbmQgYXQgMy4wJSBhbmQgZm9yIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbiBhIGdyb3d0aCBvZiAzLjIlLlxcbiogV2VzdCBTdXNzZXggTm9ydGggRWFzdCBpcyByYW5rZWQgN3RoIChvdXQgb2YgMjEgYXJlYXMgaW4gdGhlIHJlZ2lvbikgYXQgwqMxMSw3OTltLCBhbmQgV2VzdCBTdXNzZXggU291dGggV2VzdCBoYXMgZmFsbGVuIGZyb20gMTF0aCB0byAxM3RoIHBvc2l0aW9uIG92ZXIgdGhlIGxhc3QgeWVhciBhdCDCozksMjkybS4gVGhlIFdlc3QgU3Vzc2V4IGVjb25vbXkgYXMgYSB3aG9sZSBpcyB0aGVyZWZvcmUgZXN0aW1hdGVkIHRvIGJlIMKjMjEsMDkxbS5cXG5cXG5bMF06IGh0dHBzOi8vd3d3Lm9ucy5nb3YudWsvZWNvbm9teS9ncm9zc3ZhbHVlYWRkZWRndmEvZGF0YXNldHMvcmVnaW9uYWxncm9zc3ZhbHVlYWRkZWRpbmNvbWVhcHByb2FjaFwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9ENkVEOEQ4MC1GQUU1LTRFMzYtOEEwQi0wMjU0N0Q0MjJGN0RcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiR3Jvc3MgVmFsdWUgQWRkZWQgcGVyIGhlYWRcXG5cXG5Hcm9zcyBWYWx1ZSBBZGRlZCBwZXIgaGVhZCB1c2VzIGEgd29ya3BsYWNlLWJhc2VkIG51bWVyYXRvciBpLmUuIHRoYXQgR1ZBIHByb2R1Y2VkIGluIHRoYXQgYXJlYSBkaXZpZGVkIGJ5IHRoZSByZXNpZGVuY2UgYmFzZWQgZGVub21pbmF0b3IgKHRvdGFsIHJlc2lkZW50aWFsIHBvcHVsYXRpb24pLiBJdCBhbGxvd3MgY29tcGFyaXNvbiBvZiB0aGUgd2VhbHRoIGdlbmVyYXRpb24gY2FwYWJpbGl0eSBhdCB2YXJpb3VzIGdlb2dyYXBoaWNhbCBhcmVhcyBidXQgY2FuIHByb3ZpZGUgc2xpZ2h0bHkgbWlzbGVhZGluZyByZXN1bHRzIGFzIHRoZSBtZWFzdXJlcyBhcmUgbWl4ZWQgYmV0d2VlbiB3b3JrcGxhY2UgYmFzZWQgR1ZBIGdlbmVyYXRlZCBpbiB0aGF0IGFyZWEgYW5kIHRoZSByZXNpZGVudCBiYXNlZCBwb3B1bGF0aW9uLiBUaGUgd2VhbHRoIGNyZWF0aW9uIG9mIHRob3NlIHdobyBjb21tdXRlIGlzIGNvdW50ZWQgYXQgdGhlIHdvcmtwbGFjZSBzbyB0aGF0IGFyZWFzIG9mIHNpZ25pZmljYW50IG91dC1jb21tdXRpbmcgbWF5IGhhdmUgdGhlIGVmZmVjdCBvZiB1bmRlcnN0YXRpbmcgR1ZBIGxldmVscyBhcyB3b3VsZCB0aG9zZSBhcmVhcyB3aXRoIGEgaGlnaCByZXRpcmVtZW50IHBvcHVsYXRpb24uXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzJEODVFQkQ4LTFDN0MtNDI3NS1CNzU5LUQ3NTk4RTc1Q0U3QVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJFc3RpbWF0ZXMgb2YgR1ZBIHBlciBoZWFkIGluZGljYXRlIHRoYXQgV2VzdCBTdXNzZXggU291dGggV2VzdCBsZXZlbHMgYXJlIGxvd2VyIHRoYW4gdGhlIHJlZ2lvbmFsIGFuZCBuYXRpb25hbCBsZXZlbHMsIHdoZXJlYXMgV2VzdCBTdXNzZXggTm9ydGggRWFzdCBsZXZlbHMgYXJlIGhpZ2hlci4gR1ZBIHBlciBoZWFkIGZvciBXZXN0IFN1c3NleCBhdCAyMDE1IGlzIGVzdGltYXRlZCB0byBiZSDCozI1LDIyMCwgYWdhaW4gbG93ZXIgdGhhbiB0aGF0IGZvciBFbmdsYW5kICjCozI2LDE1OSkgYW5kIGZvciB0aGUgU291dGggRWFzdCByZWdpb24gKMKjMjcsODQ3KS4gU2luY2UgMTk5NyB0aGUgZ2FwIGluIEdWQSBwZXIgaGVhZCBiZXR3ZWVuIFdlc3QgU3Vzc2V4IGFuZCB0aGUgU291dGggRWFzdCBoYXMgbm93IHJpc2VuIGZyb20gNCUgdG8gb3ZlciAxMCUgaW4gMjAxNS4gVGhlIGxhdGVzdCBmaWd1cmVzIHNob3cgdGhhdDpcXG5cXG4qIEluIDIwMTQgR3Jvc3MgVmFsdWUgQWRkZWQgKEdWQSkgcGVyIGhlYWQgb2YgcG9wdWxhdGlvbiBpbmNyZWFzZWQgaW4gYWxsIHJlZ2lvbnMgaW4gdGhlIFVLLiBUaGUgaGlnaGVzdCBhbm51YWwgZ3Jvd3RoIHdhcyBpbiB0aGUgTm9ydGggV2VzdCBhdCAzLjAlIGFuZCB0aGUgbG93ZXN0IGluIHRoZSBFYXN0IE1pZGxhbmRzIGF0IDEuMCUuIFRoZSBTb3V0aCBFYXN0IGV4cGVyaWVuY2VkIGEgZ3Jvd3RoIG9mIDIuMyUgaGlnaGVyIHRoYW4gdGhhdCBmb3IgRW5nbGFuZCBhdCAyLjElLiBXaXRoIHRoZSBleGNlcHRpb24gb2YgWW9ya3NoaXJlIGFuZCBUaGUgSHVtYmVyIGFsbCByZWdpb25zIGluIEVuZ2xhbmQgZXhwZXJpZW5jZWQgYSBsb3dlciBsZXZlbCBvZiBncm93dGggaW4gR1ZBIHBlciBoZWFkIG92ZXIgdGhlIHllYXIgMjAxNC0yMDE1IHRoYW4gdGhhdCBvdmVyIHRoZSBwcmV2aW91cyB5ZWFyLlxcblxcbiogV2l0aGluIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbiBNaWx0b24gS2V5bmVzIGhhcyB0aGUgaGlnaGVzdCBHVkEgcGVyIGhlYWQgb2YgYWxsIGFyZWFzIGF0IMKjNDEsNTgxIGFuZCBFYXN0IEtlbnQgdGhlIGxvd2VzdCBhdCDCozE3LDIzMi5cXG5cXG4qIFdlc3QgU3Vzc2V4IE5vcnRoIEVhc3QgR1ZBIHBlciBoZWFkIGF0IMKjMzAsMDY5IGlzIGhpZ2hlciB0aGFuIHRoZSBhdmVyYWdlIGZvciBFbmdsYW5kICjCozI2LDE1MCkgYW5kIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbiAowqMyNyw4NDcpIGFuZCBpcyByYW5rZWQgN3RoIGhpZ2hlc3Qgb3V0IG9mIHRoZSAyMSBnZW9ncmFwaGllcyBpbiB0aGUgcmVnaW9uLiBJdCBjb21wYXJlcyB3aXRoIHRoZSBHVkEgcGVyIGhlYWQgc2VlbiBpbiBXZXN0IFN1c3NleCBTb3V0aCBFYXN0IG9mIMKjMjAsOTMzIChyYW5rZWQgMTYvMjEpLlxcblxcbiogT3ZlciB0aGUgbGFzdCB0ZW4geWVhcnMgMjAwNS0yMDE1IEdWQSBwZXIgaGVhZCBpbmNyZWFzZWQgaW4gdGhlIFNvdXRoIEVhc3QgcmVnaW9uIGJ5IDI1LjMlLiBXaXRoaW4gdGhlIFNvdXRoIEVhc3QgTWlsdG9uIEtleW5lcyBzYXcgdGhlIGhpZ2hlc3QgZ3Jvd3RoIG9mIG92ZXIgNDAlIGNvbXBhcmVkIHdpdGggdGhlIGxvd2VzdCBncm93dGggb2YgNS44JSBpbiBTb3V0aGFtcHRvbi4gSW4gV2VzdCBTdXNzZXggdGhlIGdyb3d0aCBpbiB0aGUgTm9ydGggRWFzdCBvZiB0aGUgY291bnR5IGF0IDM1LjglIHdhcyB0aGUgc2Vjb25kIGhpZ2hlc3QgcmF0ZSBvZiBncm93dGggaW4gdGhlIHJlZ2lvbiwgYW5kIG92ZXIgdHdpY2UgdGhhdCBzZWVuIGluIFdlc3QgU3Vzc2V4IFNvdXRoIFdlc3QgYXQgMTYlIGdyb3d0aC4gSG93ZXZlciwgb3ZlciB0aGUgbGFzdCB5ZWFyIGluIDE0LTE1IGdyb3d0aCBpbiBHVkEgcGVyIGhlYWQgaGFzIGdlbmVyYWxseSBmYWxsZW4gc2luY2UgdGhlIHByZXZpb3VzIHllYXIuIEluZGVlZCBXZXN0IFN1c3NleCBTb3V0aCBXZXN0IGlzIG9uZSBvZiB0d28gYXJlYXMgaW4gdGhlIHJlZ2lvbmFsIHRvIGhhdmUgc2VlbiBhIGRyb3Agb24gR1ZBIHBlciBoZWFkIGxldmVscygtMC43JSApIFdlc3QgU3Vzc2V4IE5vcnRoIEVhc3Qgc2F3IGFuIGluY3JlYXNlIG9mIDEwOSUgaW4gMjAxNC0xNSBjb21wYXJlZCB3aXRoIDYuNyUgZ3Jvd3RoIGluIHRoZSBwcmV2aW91cyB5ZWFyLlxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9EQjVDRTQwRS1FNTQxLTRFMDktOTcwQy03QTA3RDFDRTg3Q0FcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNioqXFxuXFxuLSAtIC1cXG5cXG5ObyBmdXJ0aGVyIGVzdGltYXRlcyBvZiBHVkEgYXQgbG9jYWwgbGV2ZWwgd2lsbCBiZSByZWxlYXNlZCBmcm9tIE9OUyB1bnRpbCBtaWQtRGVjZW1iZXIgMjAxNiB3aGljaCB3aWxsIGdpdmUgR1ZBIGFuZCBHVkEgcGVyIGhlYWQgZXN0aW1hdGVzIHVwIHRvIDIwMTUuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAxIC0gSnVuZSAyMDE2KipcXG5cXG4tIC0gLVxcblxcbldoYXQgd2lsbCBoYXBwZW4gdG8gdGhlc2UgbWVhc3VyZXMsIGluIHJlc3BlY3Qgb2YgdGhlIG5hdGlvbmFsL3JlZ2lvbmFsL2xvY2FsIGVjb25vbXksIGdpdmVuIHRoZSBFVSByZWZlcmVuZHVtIHJlc3VsdCwgaXMgc3RpbGwgdG8gYmUgZGV0ZXJtaW5lZC5cXG5cXG5UaGUgYXV0aG9yaXR5IGlzIHRha2luZyBmb3J3YXJkIGEgcmFuZ2Ugb2YgYWN0aW9ucyB0byBpbXByb3ZlIG1hdHRlcnMgaGVyZS4gVGhlc2UgaW5jbHVkZTotXFxuXFxuKiBQcm9tb3RpbmcgZ3Jvd3RoIG9mIHRoZSBIZWFsdGggYW5kIExpZmUgU2NpZW5jZXMgc2VjdG9yXFxuKiBDcmVhdGluZyBuZXcgZWNvbm9taWMgYXNzZXRzIHRvIHRoZSBzb3V0aCBvZiB0aGUgYWlycG9ydCBhbmQgdG8gZW5jb3VyYWdlIG1vcmUgaGlnaCB2YWx1ZSBHVkEgYnVzaW5lc3NlcyB0byBiYXNlIHRoZW1zZWx2ZXMgaW4gdGhlIGFyZWFcXG4qIERldmVsb3BtZW50IG9mIERpc3RyaWN0IC8gQm9yb3VnaCBQbGFjZSBQbGFucyBhbmQgdGhlIGVzdGFibGlzaG1lbnQgb2YgR3Jvd3RoIEJvYXJkcyB0byBzdXBwb3J0IHRoZXNlIHBsYW5zLlxcblxcblRvZ2V0aGVyIHRoZXNlIGZvcm0gdGhlIFdlc3QgU3Vzc2V4IEdyb3d0aCBQbGFuLiBUaGUgYW1hbGdhbWF0ZWQgR3Jvd3RoIFBsYW4gd2FzIGluIHBsYWNlIGJ5IERlY2VtYmVyIDIwMTUuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqMjAxNSBHVkEgRGF0YSBSZWxlYXNlKipcXG5cXG4tIC0gLVxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGUgUmVnaW9uYWwgR3Jvc3MgVmFsdWUgQWRkZWQgKEluY29tZSBBcHByb2FjaCkgZGF0YSB3aGljaCBpbmNsdWRlcyBkYXRhIGZvciBXZXN0IFN1c3NleCBpcyBwdWJsaXNoZWQgYW5udWFsbHksIHRoZSBsYXRlc3QgcmVsZWFzZSB3YXMgaW4gRGVjZW1iZXIgMjAxNSBhbmQgcmVsYXRlcyB0byB0aGUgeWVhcnMgdXB0byAyMDE0OyB0aGUgbmV4dCByZWxlYXNlIGlzIGV4cGVjdGVkIGluIERlY2VtYmVyIDIwMTYuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0I2RjM4NDg3LTQ5QTEtNEU1NS04NkE1LTYyOTdBNkM5NEE0NlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJHcm9zcyBWYWx1ZSBBZGRlZCAoR1ZBKSBpcyBhIHJlY29nbmlzZWQgbWVhc3VyZSBvZiBlY29ub21pYyBhY3Rpdml0eSBicm9hZGx5IGRlZmluZWQgYXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdmFsdWUgb2YgdGhlIGdvb2RzIGFuZCBzZXJ2aWNlcyBwcm9kdWNlZCBhbmQgdGhlIGNvc3Qgb2ZyYXcgbWF0ZXJpYWxzIGFuZCBvdGhlciBpbnB1dHMgdXNlZCBpbiBwcm9kdWN0aW9uLiBJbiBEZWNlbWJlciAyMDE1IE9OUyByZWxlYXNlZCB0aGUgbGF0ZXN0IHN1YiByZWdpb25hbCBlc3RpbWF0ZXMgZm9yIEdWQS4gVGhlIGRhdGEgaXMgYXZhaWxhYmxlIGF0OlxcblxcbltodHRwOi8vd3d3Lm9ucy5nb3YudWsvb25zL3JlbC9yZWdpb25hbC1hY2NvdW50cy9yZWdpb25hbC1ncm9zcy12YWx1ZS1hZGRlZC0taW5jb21lLWFwcHJvYWNoLS9kZWNlbWJlci0yMDE1L3N0Yi1yZWdpb25hbC1ndmEtZGVjLTIwMTUuaHRtbF1bMF1cXG5cXG5VcCB1bnRpbCB0aGlzIHJlbGVhc2UgR1ZBIGRhdGEgaGFzIGJlZW4gYXZhaWxhYmxlIGZvciBmb3JtZXIgTlVUUzMgZ2VvZ3JhcGhpZXMgd2hpY2ggY292ZXJlZCB0aGUgV2VzdCBTdXNzZXggQ291bnR5IGFyZWEuIEhvd2V2ZXIsdGhpcyBsYXRlc3QgZGF0YSBpcyBwdWJsaXNoZWQsIGZvciB0aGUgZmlyc3QgdGltZSwgdXNpbmcgcmV2aXNlZCBOVVRTMyBnZW9ncmFwaGllcywgd2hpY2ggc3BsaXRzIHRoZSBjb3VudHkgaW50byB0d28gdG8gaW5jbHVkZTpcXG5cXG4gXFxuXFxuMS4gV2VzdCBTdXNzZXgg4oCTIFNvdXRoIFdlc3QgKFdTU1cpIOKAkyBtYWRlIHVwIG9mIENoaWNoZXN0ZXIsIEFydW4sIEFkdXIgYW5kIFdvcnRoaW5nXFxuMS4gV2VzdCBTdXNzZXgg4oCTIE5vcnRoIEVhc3QgKFdTTkUpIOKAkyBtYWRlIHVwIG9mIENyYXdsZXksIEhvcnNoYW0gYW5kIE1pZCBTdXNzZXhcXG4gXFxuXFxuVGhpcyBzcGxpdCBpcyBoZWxwZnVsIGFzIFdlc3QgU3Vzc2V4IOKAk1NvdXRoIFdlc3QgKFdTU1cpIG1hdGNoZXMgd2l0aCBDb2FzdGFsIFdlc3QgU3Vzc2V4IGFuZCBXZXN0IFN1c3NleCBOb3J0aCBFYXN0IChXU05FKSB3aXRoIHRoYXQgYXJlYSBvZiBXZXN0IFN1c3NleCB0aGF0IGxpZXMgd2l0aGluIEdhdHdpY2sgRGlhbW9uZC4gU28gZm9yIHRoZSBmaXJzdCB0aW1lIHdlIGhhdmUg4oCYb2ZmaWNpYWzigJkgZmlndXJlcyBmb3IgdGhlc2UgdHdvIHZlcnkgZGlmZmVyZW50IGVjb25vbWljIGFyZWFzIGluIFdlc3QgU3Vzc2V4LiBUYWtpbmcgaW50byBhY2NvdW50IHRoZSBzcGxpdCB0aGF0IGhhcyBvY2N1cnJlZCBpbiBTdXJyZXkgc28gdGhhdCBTdXJyZXkgRWFzdCAoRXBzb20gYW5kIEV3ZWxsLCBUYW5kcmlkZ2UsIE1vbGUgVmFsbGV5LCBSZWlnYXRlIGFuZCBCYW5zdGVkKSwgdG9nZXRoZXIgd2l0aCBXZXN0IFN1c3NleCBOb3J0aCBFYXN0IG1hdGNoZXMgdGhlIHdob2xlIEdhdHdpY2sgRGlhbW9uZCBhcmVhLiBUaGUgbGF0ZXN0IHNldCBvZiBkYXRhIGluY2x1ZGVzIHRyZW5kcyBmcm9tIDE5OTctMjAxNC4gTkIg4oCTIHRoZSAyMDE0IGVzdGltYXRlcyBhcmUgcHJvdmlzaW9uYWwgYW5kIHN1YmplY3QgdG8gcmV2aWV3IGJ5IE9OUy5cXG5cXG4gXFxuXFxuV2hpbHN0IHRoZSBmaWd1cmVzIGFyZSBub3QgcmVsZWFzZWQgYnkgT05TIGZvciBXZXN0IFN1c3NleCBDb3VudHkgYXJlYSB0aGV5IGNhbiBiZSBlc3RpbWF0ZWQgYnkgY29tYmluaW5nIHRoZSB0d28gbmV3IGFyZWFzLlxcblxcblswXTogaHR0cDovL3d3dy5vbnMuZ292LnVrL29ucy9yZWwvcmVnaW9uYWwtYWNjb3VudHMvcmVnaW9uYWwtZ3Jvc3MtdmFsdWUtYWRkZWQtLWluY29tZS1hcHByb2FjaC0vZGVjZW1iZXItMjAxNS9zdGItcmVnaW9uYWwtZ3ZhLWRlYy0yMDE1Lmh0bWxcIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvMTU5QkVGMzAtN0I3Mi00NjNELTg3OTctNjMwNjZFOTMwQjEwXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiogV2l0aGluIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbiBCZXJrc2hpcmUgaGFzIHRoZSBoaWdoZXN0IEdWQSBvZiBhbGwgYXJlYXMgYXQgwqMzNCw1MDZtIGFuZCB0aGUgSXNsZSBvZiBXaWdodCB0aGUgbG93ZXN0IC0gwqMzMDcxbS5cXG5cXG4qIFdlc3QgU3Vzc2V4IE5vcnRoIEVhc3QgaXMgcmFua2VkIDd0aCAob3V0IG9mIDIxIGFyZWFzIGluIHRoZSByZWdpb24pIGF0IMKjMTEsMTQ2bSwgYW5kIFdlc3QgU3Vzc2V4IFNvdXRoIFdlc3QgMTF0aCBhdCDCozksMzYwbSwgbWVhbmluZyB0aGF0IHRoZSBXZXN0IFN1c3NleCBlY29ub215IGFzIGEgd2hvbGUgaXMgZXN0aW1hdGVkIHRvIGJlIMKjMjAsNTA2bVxcblxcbiogQWxsIGFyZWFzIHdpdGhpbiB0aGUgU291dGggRWFzdCBleHBlcmllbmNlZCBncm93dGggaW4gR1ZBIG92ZXIgdGhlIHllYXIgMjAxMy0yMDE0LiBXZXN0IEtlbnQgZXhwZXJpZW5jZWQgdGhlIGhpZ2hlc3QgZ3Jvd3RoIGF0IDQuOSUgYW5kIE5vcnRoIEhhbXBzaGlyZSB0aGUgbG93ZXN0IGF0IDAuOCVJbiB0aGUgcHJldmlvdXMgeWVhciwgMjAxMi0yMDEzIFdlc3QgU3Vzc2V4IE5vcnRoIEVhc3QsIGFuZCBTdXJyZXkgRWFzdCBzYXcgc2lnbmlmaWNhbnQgcmF0ZXMgb2YgZ3Jvd3RoIOKAkyBXU05FIGhhZCBleHBlcmllbmNlZCB0aGUgM3JkIGhpZ2hlc3QgcmF0ZSBvZiBncm93dGggaW4gdGhlIFNvdXRoIEVhc3QgcmVnaW9uLCBob3dldmVyIGluIGJvdGggYXJlYXMgdGhpcyBncm93dGggYXMgZmFsbGVuIGNvbnNpZGVyYWJseSBkdXJpbmcgMjAxMy0xNCBhZmZlY3RpbmcgZ3Jvd3RoIGluIEdhdHdpY2sgRGlhbW9uZCB3aGljaCBpcyBsZXNzIHRoYW4gaGFsZiB3aGF0IGl0IHdhcyBpbiAyMDEyLeKAmDEzLlxcblxcbiogV1NTVyBoYXMgY29udGludWFsbHkgc2VlbiBsb3dlciByYXRlcyBmb3IgZ3Jvd3RoIGluIEdWQSB0aGFuIFdTTkUgYW5kIGluZGVlZCBsb3dlciByYXRlcyB0aGFuIHRoZSByZWdpb25hbCBhbmQgbmF0aW9uYWwgYXZlcmFnZTsgZ3Jvd3RoIGluIFdlc3QgU3Vzc2V4IENvdW50eSBpcyB2ZXJ5IG11Y2ggYnVveWVkIHVwIGJ5IHRoZSBncm93dGggdGFraW5nIHBsYWNlIGluIHRoZSBOb3J0aCBFYXN0IG9mIHRoZSBjb3VudHkuIEluIHRoZSBsYXN0IHRlbiB5ZWFycyBncm93dGggaW4gdGhlIG5vcnRoIGVhc3Qgb2YgdGhlIGNvdW50eSBoYXMgYmVlbiBoaWdoZXIgdGhhbiB0aGUgbmF0aW9uYWwgYW5kIHJlZ2lvbmFsIGF2ZXJhZ2UuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqR1ZBIHBlciBoZWFkKipcXG5cXG4qKkdyb3NzIFZhbHVlIEFkZGVkIHBlciBoZWFkKipcXG5cXG5Hcm9zcyBWYWx1ZSBBZGRlZCBwZXIgaGVhZCB1c2VzIGEgd29ya3BsYWNlLWJhc2VkIG51bWVyYXRvciBpLmUuIHRoYXQgR1ZBIHByb2R1Y2VkIGluIHRoYXQgYXJlYSBkaXZpZGVkIGJ5IHRoZSByZXNpZGVuY2UgYmFzZWQgZGVub21pbmF0b3IgKHRvdGFsIHJlc2lkZW50aWFsIHBvcHVsYXRpb24pLiBJdCBpcyBhIGtleSBtZWFzdXJlIG9mIHRoZSB3ZWFsdGggZ2VuZXJhdGlvbiBjYXBhYmlsaXR5IG9mIGFuIGFyZWHigJlzIGVjb25vbXkuIEhvd2V2ZXIgaXQgY2FuIHByb3ZpZGUgc2xpZ2h0bHkgbWlzbGVhZGluZyByZXN1bHRzIGFzIHRoZSBtZWFzdXJlcyBhcmUgbWl4ZWQgYmV0d2VlbiB3b3JrcGxhY2UgYmFzZWQgR1ZBIGdlbmVyYXRlZCBpbiB0aGF0IGFyZWEgYW5kIHRoZSByZXNpZGVudCBiYXNlZCBwb3B1bGF0aW9uLCB0aGUgd2VhbHRoIGNyZWF0aW9uIG9mIHRob3NlIHdobyBjb21tdXRlIGlzIGNvdW50ZWQgYXQgdGhlIHdvcmtwbGFjZSBzbyB0aGF0IGFyZWFzIG9mIHNpZ25pZmljYW50IG91dC1jb21tdXRpbmcgbWF5IGhhdmUgdGhlIGVmZmVjdCBvZiB1bmRlcnN0YXRpbmcgR1ZBIGxldmVscy4gSW4gV2VzdCBTdXNzZXggbWFueSByZXNpZGVudCB3b3JrZXJzIG1heSBjb21tdXRlIHRvIGUuZy4gTG9uZG9uL1N1cnJleS8gQnJpZ2h0b24gYW5kIEhvdmUgZXRjLiwgc28gdGhlIHdlYWx0aCByZWFjdGlvbiBvZiB0aG9zZSB3b3JrZXJzIHdpbGwgYmUgY291bnRlZCB0aGVyZS4gQ29udmVyc2VseSwgZm9yIGV4YW1wbGUsIExvbmRvbuKAmXMgR1ZBIHBlciBoZWFkIGZpZ3VyZXMgd2lsbCBiZSBvdmVyc3RhdGVkIGFzIExvbmRvbiBpcyBzdWNoIGEgbWFqb3IgaW1wb3J0ZXIgb2YgbGFib3VyLiBUaG9zZSBhcmVhcyB3aXRoIGEgaGlnaCByZXRpcmVtZW50IGFsc28gcHJvZHVjZSB1bmRlcnN0YXRlZCBlc3RpbWF0ZXMgb2YgR1ZBIHBlciBoZWFkLiBDb2FzdCB0byBDYXBpdGFsIExFUCBoYXZlIHByb3ZpZGVkIHNvbWUgZXN0aW1hdGVzIG9mIEdWQSBwZXIgam9iIHdoaWNoIGlzIGEgYmV0dGVyIG1lYXN1cmUgb2YgcHJvZHVjdGl2aXR5IG9mIGFuIGFyZWEsIHRob3VnaCBHVkEgcGVyIGNhcGl0YSBpcyBhIHVzZWZ1bCBpbmRpY2F0b3Igb2YgZWNvbm9taWMgcGVyZm9ybWFuY2UgaW4gYW4gYXJlYSwgYW5kIE9OUyBkbyBtYWtlIHRoZSBmaWd1cmVzIGF2YWlsYWJsZS5cXG5cXG5Fc3RpbWF0ZXMgb2YgR1ZBIHBlciBoZWFkIGZvciBXZXN0IFN1c3NleCBzdWdnZXN0cyB0aGF0IGluIDE5OTcgKHRoZSBzdGFydGluZyBwb2ludCBvZiB0aGUgY3VycmVudCB0aW1lIHNlcmllcykgR1ZBIHBlciBoZWFkIHdhcyDCozE0LDAwNiBmb3IgV2VzdCBTdXNzZXg7IHNsaWdodGx5IGxvd2VyIHRoYW4gZm9yIEVuZ2xhbmQgKMKjMTMsNjc2KSwgYW5kIDUlIGhpZ2hlciB0aGFuIHRoYXQgZm9yIHRoZSBTb3V0aCBFYXN0IGF0IMKjMTQsNjk4LiBPdmVyIHRpbWUgaG93ZXZlciBHVkEgZmlndXJlcyBoYXZlIHJpc2VuIGluIEVuZ2xhbmQgYW5kIHRoZSBTb3V0aCBFYXN0IGF0IGEgaGlnaGVyIHJhdGUgdGhhbiBzZWVuIGluIFdlc3QgU3Vzc2V4LiBUaGUgZ2FwIGluIEdWQSBwZXIgaGVhZCBiZXR3ZWVuIFdlc3QgU3Vzc2V4IGFuZCB0aGUgU291dGggRWFzdCBoYXMgbm93IHJpc2VuIHRvIDkuMSUgaW4gMjAxNC5cXG5cXG5bMV0gR2F0d2ljayBEaWFtb25kID0gV2VzdCBTdXNzZXggTkUgcGx1cyBTdXJyZXkgRWFzdFxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy81NTBERkQ5NC01OUEyLTQxRDktOTQwMy0wMkMwQzkyQjE0MzNcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKiBJbiAyMDE0IEdyb3NzIFZhbHVlIEFkZGVkIChHVkEpIHBlciBoZWFkIG9mIHBvcHVsYXRpb24gaW5jcmVhc2VkIGluIGFsbHJlZ2lvbnMgaW4gdGhlIFVLLiBUaGUgaGlnaGVzdCBhbm51YWwgZ3Jvd3RoIHdhcyBpbiBMb25kb24gYXQgNS4zJSBhbmQgdGhlIGxvd2VzdCBhbm51YWwgZ3Jvd3RoIHdhcyBpbiBOb3J0aGVybiBJcmVsYW5kIGF0IDEuOSUuIFRoZSBTb3V0aCBFYXN0IGV4cGVyaWVuY2VkIGEgZ3Jvd3RoIG9mIDIuOCUgbG93ZXIgdGhhbiB0aGF0IGZvciBFbmdsYW5kIGF0IDMuNyUuXFxuXFxuKiBBdCB0aGUgcmVnaW9uYWwgbGV2ZWwsIGluIDIwMTQgTG9uZG9uIGhhZCB0aGUgaGlnaGVzdCBHVkEgcGVyIGhlYWQgYXQgwqM0Miw2NjYsIHdoaWxlIFdhbGVzIGhhZCB0aGUgbG93ZXN0IGF0IMKjMTcsNTczLiBUaGUgU291dGggRWFzdCByZWdpb24gaGFkIHRoZSBzZWNvbmQgaGlnaGVzdCBHVkEgcGVyIGhlYWQgYXQgwqMyNywwMTIgYW5kIGNvbXBhcmVzIHdpdGggdGhhdCBmb3IgRW5nbGFuZCBhdCDCozI1LDM2Ny5cXG5cXG4qIFdpdGhpbiB0aGUgU291dGggRWFzdCByZWdpb24gTWlsdG9uIEtleW5lcyBoYWQgdGhlIGhpZ2hlc3QgR1ZBIHBlciBoZWFkYXQgwqMzOSw3MDkgY29tcGFyZWQgd2l0aCBNZWR3YXkgd2hpY2ggaGFkIHRoZSBsb3dlc3QgbGV2ZWwgYXQgwqMxNywwMzguIEJvdGggTm9ydGggRWFzdCBXZXN0IFN1c3NleCwgYW5kIFNvdXRoIFdlc3QgV2VzdCBTdXNzZXggaGFkIGxldmVscyBvZiBHVkEgcGVyIGhlYWQgbG93ZXIgdGhhbiB0aGUgcmVnaW9uYWwgYXZlcmFnZSBhdCDCozI2LDY5NSAoNnRoIG91dCBvZiAyMSkgYW5kIMKjMjEsMjc0IChyYW5rZWQgMTd0aCkgcmVzcGVjdGl2ZWx5LlxcblxcbiogTm8gYXJlYXMgb2YgdGhlIFNvdXRoIEVhc3QgaGFkIGV4cGVyaWVuY2VkIGEgZmFsbCBpbiBHVkEgcGVyIGhlYWQgaW4gdGhlIGxhc3QgeWVhci4gV2VzdCBLZW50IHNhdyB0aGUgaGlnaGVzdCBpbmNyZWFzZSBvdmVyIHRoZSB5ZWFyIDIwMTMg4oCTIDIwMTQgYXQgNC45JSwgV2VzdCBTdXNzZXgg4oCTIFNvdXRoIFdlc3QgYW5kIFdlc3QgU3Vzc2V4IOKAkyBOb3J0aCBFYXN0IGhhdmUgc2VlbiBzaW1pbGFyIGxldmVscyBvZiBncm93dGggaW4gR1ZBIHBlciBoZWFkIGF0IDEuOCUgYW5kIDEuNyUuIEZvciBXZXN0IFN1c3NleCBOb3J0aCBFYXN0IHRoaXMgd2FzIGNvbnNpZGVyYWJseSBsb3dlciB0aGFuIHRoYXQgc2VlbiBzaW5jZSAyMDExIHdoZW4gYW5udWFsIGdyb3d0aCBoYWQgYmVlbiBvdmVyIDYlLlxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKjIwMTQgR1ZBIERhdGEgUmVsZWFzZSoqXFxuXFxuLSAtIC1cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiIFxcblxcbkdyb3NzIFZhbHVlIEFkZGVkIChHVkEpIGlzIGEgcmVjb2duaXNlZCBtZWFzdXJlIG9mIGVjb25vbWljIGFjdGl2aXR5IGJyb2FkbHkgZGVmaW5lZCBhcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB2YWx1ZSBvZiB0aGUgZ29vZHMgYW5kIHNlcnZpY2VzIHByb2R1Y2VkIGFuZCB0aGUgY29zdCBvZiByYXcgbWF0ZXJpYWxzIGFuZCBvdGhlciBpbnB1dHMgdXNlZCBpbiBwcm9kdWN0aW9uLiBJbiBEZWNlbWJlciAyMDE0IE9OUyByZWxlYXNlZCB0aGUgbGF0ZXN0IHN1YiByZWdpb25hbCBlc3RpbWF0ZXMgZm9yIEdWQS5UaGUgbmV4dCB1cGRhdGUgb2YgdGhpcyBkYXRhIGlzIGV4cGVjdGVkIGluIERlY2VtYmVyIDIwMTUuIFRoZSBkYXRhIGlzIGF2YWlsYWJsZSBhdDpcXG5cXG5baHR0cDovL3d3dy5vbnMuZ292LnVrL29ucy9wdWJsaWNhdGlvbnMvcmUtcmVmZXJlbmNlLXRhYmxlcy5odG1sP2VkaXRpb249dGNtJTNBNzctMzM5NTk4XVswXVxcblxcblRoZSBsYXRlc3QgKHByb3Zpc2lvbmFsKSBmaWd1cmUgZm9yIEdyb3NzIFZhbHVlIEFkZGVkIChHVkEpIHN1Z2dlc3RzIHRoYXQgYXQgMjAxMyBHVkEgZm9yIFdlc3QgU3Vzc2V4IHdhcyDCozE5LDg0OG1uLCBtYWtpbmcgdXAgYXJvdW5kIDguNSUgb2YgdGhlIFNvdXRoIEVhc3QgR1ZBLiBUaGlzIGNvbnRyaWJ1dGlvbiBoYXMgZmFsbGVuIGZyb20gb3ZlciA5JSBpbiAxOTk3LlxcblxcblRoZSBTb3V0aCBFYXN0IGVjb25vbXkgZXhwYW5kZWQgYnkgMi44JSBhY2NvcmRpbmcgdG8gdGhlc2UgcHJlbGltaW5hcnkgZXN0aW1hdGVzIGZyb20gT05TLCB0aGlzIHdhcyBsb3dlciB0aGFuIGdyb3d0aCBhY3Jvc3MgdGhlIFVLLCBMb25kb24sIEVhc3Qgb2YgRW5nbGFuZCBhbmQgdGhlIFNvdXRoIFdlc3QuIFRoZSBwcm92aXNpb25hbCBlc3RpbWF0ZXMgb2YgR1ZBIGZvciBjb3VudHkgYW5kIHVuaXRhcnkgYXV0aG9yaXRpZXMgc2hvdyB0aGF0IFdlc3QgU3Vzc2V4LCBhdCA0LjQlIGdyb3d0aCwgaGFkIHRoZSBmb3VydGggaGlnaGVzdCBncm93dGggaW4gdGhlIFNvdXRoIEVhc3QgYmV0d2VlbiAyMDEyIGFuZCAyMDEzLCBsYWdnaW5nIGJlaGluZCBTb3V0aGFtcHRvbiAoOSUpLCBNaWx0b24gS2V5bmVzICg0LjklKSBhbmQgQnJpZ2h0b24gYW5kIEhvdmUgKDQuNyUpLCBzbyB3YXMgdGhlIGZhc3Rlc3QgZ3Jvd2luZyBjb3VudHkgaW4gdGhlIFNvdXRoIEVhc3QuXFxuXFxuSW4gMTk5NyBXZXN0IFN1c3NleCBoYWQgYSBoaWdoZXIgR1ZBIHBlciBoZWFkIHRoYW4gRW5nbGFuZCBhbmQgd2FzIGF0IGEgc2ltaWxhciBsZXZlbCBhdCDCozE0LDExNCB0byB0aGUgU291dGggRWFzdCBhdmVyYWdlICjCozE0LDc0MCkuIFNpbmNlIGFyb3VuZCAyMDA0IGhvd2V2ZXIgY291bnR5IEdWQSBwZXIgaGVhZCBoYXMgYmVlbiBnZW5lcmFsbHkgbG93ZXIgdGhhbiB0aGF0IHNlZW4gbmF0aW9uYWxseSBhbmQgZ3Jvd3RoIGluIFdlc3QgU3Vzc2V4IGhhcyBiZWVuIGxvd2VyIHRoYW4gdGhhdCBzZWVuIHJlZ2lvbmFsbHkgc28gdGhlIGdhcCBiZXR3ZWVuIHRoZSByZWdpb25hbCBhbmQgY291bnR5IEdWQSBwZXIgaGVhZCBmaWd1cmUgaGFzIHdpZGVuZWQuIEluIDIwMTMgdGhlIEdWQSBwZXIgaGVhZCBmb3IgV2VzdCBTdXNzZXggd2FzIGVzdGltYXRlZCB0byBiZSDCozI0LDE2NSAocHJvdmlzaW9uYWwgZmlndXJlcykgY29tcGFyZWQgZm9yIHRoZSBTb3V0aCBFYXN0IGF2ZXJhZ2UgYXQgwqMyNSw4NDMuIFRoZSBHVkEgZm9yIFdlc3QgU3Vzc2V4IGluIDIwMTMgd2FzIGFib3V0IDMuMyUgYWJvdmUgdGhlIFVLIGF2ZXJhZ2UgYW5kIGl0IGhhZCBpbmNyZWFzZWQgYnkgMy42JSBzaWduaWZpY2FudGx5IHNsb3dlciB0aGFuIGluIDIwMTIgKDYuNCUpIGJ1dCBmYXN0ZXIgdGhhbiB0aGUgVUsgYXZlcmFnZSBhbmQgZmFzdGVyIHRoYW4gaW4gYW55IG90aGVyIGNvdW50eSBpbiB0aGUgU291dGggRWFzdCBpbiAyMDEzLiBBdCAzLjglIEJyaWdodG9uIGFuZCBIb3ZlIGhhZCB0aGUgZmFzdGVzdCBncm93dGggaW4gR1ZBIHBlciBoZWFkIGluIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbi4gQ3VtdWxhdGl2ZSBncm93dGggaW4gR1ZBIHBlciBoZWFkIGluIFdlc3QgU3Vzc2V4IGJldHdlZW4gMjAwOSBhbmQgMjAxMyB3YXMgMTMuMSUgbWFyZ2luYWxseSBzbG93ZXIgdGhhbiBpbiBTdXJyZXksIGJ1dCBmYXN0ZXIgdGhhbiBpbiB0aGUgSGFtcHNoaXJlIENvdW50eSBDb3VuY2lsIEFyZWEsIEtlbnQgYW5kIEVhc3QgU3Vzc2V4IGFuZCB0aGUgcmVnaW9uYWwgYW5kIG5hdGlvbmFsIGF2ZXJhZ2UuXFxuXFxuWzBdOiBodHRwOi8vd3d3Lm9ucy5nb3YudWsvb25zL3B1YmxpY2F0aW9ucy9yZS1yZWZlcmVuY2UtdGFibGVzLmh0bWw/ZWRpdGlvbj10Y20lMjUyNTNBNzctMzM5NTk4XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiogR1ZBIHBlciBoZWFkIGlzIGEgcmF0aW8gb2YgdG90YWwgKHdvcmtwbGFjZSBiYXNlZCBHVkEpIGFuZCB0b3RhbCAocmVzaWRlbmNlIGJhc2VkIHBvcHVsYXRpb24pLiBSZWxhdGl2ZWx5IGxhcmdlIGVjb25vbWljYWxseSBpbmFjdGl2ZSBwb3B1bGF0aW9uIHRlbmRzIHRvIGRlcHJlc3MgR1ZBIHBlciBoZWFkIGFuZCBHVkEgcGVyIGhlYWQgZ3Jvd3RoIHJhdGVzLiBHVkEgcGVyIGhlYWQgaXMgYSB1c2VmdWwgbWVhc3VyZSBmb3IgY29tcGFyaW5nIGFyZWFzIG9mIGRpZmZlcmVuY2Ugc2l6ZXNcXG5cXG4qIFJlZ2lvbmFsIEdyb3NzIFZhbHVlIEFkZGVkIFRhYmxlcyAocmVsZWFzZWQgRGVjZW1iZXIgMjAxNCDigJMgT05TKVxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy81RDg2QkY4Qy0yOEUzLTRDRkUtOTc0NS0zRDlGOTdGMDg3RjFcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKiBTb3VyY2U6IFRhYmxlIDMuMiBSZWdpb25hbCBHcm9zcyBWYWx1ZSBBZGRlZCBUYWJsZXMsIE9OU1xcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGVyZSBpcyBhIHR3ZWx2ZSBtb250aCBkYXRhIGxhZyBiZXR3ZWVuIHRoZSBoZWFkbGluZSBwcmVsaW1pbmFyeSBlc3RpbWF0ZSBvZiBzdWIgcmVnaW9uYWwgR1ZBIGFuZCB0aGUgZXN0aW1hdGVzIG9mIEdWQSBieSBicm9hZCBzZWN0b3Igc28gdGhlIGxhdGVzdCBHVkEgc3BsaXQgYnkgc2VjdG9yIGlzIGZvciAyMDEyLiBUaGUgZmlndXJlcyBmb3IgV2VzdCBTdXNzZXggc3VnZ2VzdCBzdHJvbmcgZ3Jvd3RoIGluIGZpbmFuY2lhbCBhbmQgaW5zdXJhbmNlLCByZWFsIGVzdGF0ZSwgZGlzdHJpYnV0aW9uLCB0cmFuc3BvcnQsIGFjY29tbW9kYXRpb24gYW5kIGZvb2QsIG1hbnVmYWN0dXJpbmcgYW5kIGJ1c2luZXNzIHNlcnZpY2Ugc2VjdG9ycy4gRmFzdGVyIGdyb3d0aCBvdmVyYWxsIHdhcyBoZWxkIGJhY2sgYnkgY29uc3RydWN0aW9uIGFuZCBpbmZvcm1hdGlvbiBhbmQgY29tbXVuaWNhdGlvbi5cXG5cXG5EaXN0cmlidXRpb24sIHRyYW5zcG9ydCwgYWNjb21tb2RhdGlvbiBhbmQgZm9vZCBpcyB0aGUgbGFyZ2VzdCBicm9hZCBzZWN0b3IgaW4gV2VzdCBTdXNzZXggYXMgaXQgYWNjb3VudHMgZm9yIGFyb3VuZCAyNCUgb2YgdG90YWwgR1ZBLiBUaGlzIHNlY3RvciBleHBhbmRlZCBieSBhcm91bmQgOS43JSBmcm9tIDIwMTEtMTIgY29tcGFyZWQgdG8gMi4zJSBpbiB0aGUgVUsuIFRoZSByZWFsIGVzdGF0ZSBzZWN0b3IgaW4gV2VzdCBTdXNzZXggaXMgdGhlIHNlY29uZCBsYXJnZXN0IGJyb2FkIHNlY3RvciBvZiB0aGUgZWNvbm9teSBhbmQgYWNjb3VudGVkIGZvciAxMy4zJSBvZiBHVkEuIEZpbmFuY2lhbCBhbmQgaW5zdXJhbmNlIHNlcnZpY2VzIGFjY291bnQgZm9yIGFyb3VuZCA2JSBvZiB0aGUgV2VzdCBTdXNzZXggZWNvbm9teS4gVGhpcyBzZWN0b3IgdGhvdWdoIHdhcyB0aGUgYmVzdCBwZXJmb3JtaW5nIHNlY3RvciBpbiBXZXN0IFN1c3NleCBpbiAyMDEzLCBhZnRlciBjb250cmFjdGluZyBpbiAyMDExIHRvdGFsIG91dHB1dCBpbiB0aGlzIHNlY3RvciBpbmNyZWFzZWQgYnkgYXJvdW5kIDIwJSBpbiAyMDEyLlxcblxcbk9OUyBkbyBub3QgcmVsZWFzZSBlc3RpbWF0ZXMgb2YgR1ZBIGF0IGRpc3RyaWN0IGF1dGhvcml0eSBsZXZlbC5cXG5cXG4gXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0IxNzYyOEE2LTQ0NTgtNERBRC04QjFCLTE1NkU5QzA5MDk3RFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqIFNvdXJjZTogLSBDb2FzdCB0byBDYXBpdGFsIExFUCAtZmlndXJlcyBpbiBpdGFsaWNzIGFyZSBlc3RpbWF0ZXMsIGZpZ3VyZXMgZnJvbSBDb2FzdCB0byBDYXBpdGFsIGFuZCBXZXN0IFN1c3NleCBmcm9tIE9OU1xcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJIb3dldmVyLCBlc3RpbWF0ZXMgZm9yIFdlc3QgU3Vzc2V4IGRpc3RyaWN0cyBhbmQgYm9yb3VnaHMgaGF2ZSBiZWVuIGVzdGltYXRlZCBieSBDb2FzdCB0byBDYXBpdGFsIExFUCB1c2luZyB0aGUgbGF0ZXN0IHdvcmtwbGFjZSBiYXNlZCBtZWFuIGdyb3NzIHdlZWtseSBlYXJuaW5ncyAsIHRvdGFsIGVtcGxveWVlcyBhbmQgdGhlIGJlbmNobWFyayBvZiB0aGUgQ291bnR5IGxldmVsIHJlZ2lvbmFsIEdWQSBlc3RpbWF0ZXMgZnJvbSBPTlMuIEVzdGltYXRlcyBzdWdnZXN0IHRoYXQgQXJ1biBoYXMgdGhlIGxvd2VzdCBHVkEgcGVyIGhlYWQsIGFuZCB1bnN1cnByaXNpbmdseSBDcmF3bGV5IHRoZSBoaWdoZXN0IGF0IMKjNTcsMjkwLiBHVkEgZmlndXJlcyBhcmUgd29ya3BsYWNlLWJhc2VkIGkuZS4gYmFzZWQgb24gb3V0cHV0IHByb2R1Y2VkIGF0IHRoZSB3b3JrcGxhY2U7IEdWQSBwZXIgaGVhZCBpcyB3aGVyZSBHVkEgaXMgZXhwcmVzc2VkIGFzIGEgdmFsdWUgcGVyIHJlc2lkZW50IHBvcHVsYXRpb24sYW5kIHRoZXJlZm9yZSBpcyBtaXhpbmcgd29ya3BsYWNlIGFuZCByZXNpZGVudCBiYXNlZCBtZWFzdXJlcy4gV2UgbmVlZCB0byBiZSBtaW5kZnVsIHRoYXQgR1ZBIHBlciBoZWFkIGNhbiBwcm9kdWNlIHNsaWdodGx5IG1pc2xlYWRpbmcgcmVzdWx0cyBzbyB0aGF0IHdoZXJlIHRoZXJlIGlzIGEgaGlnaCBsZXZlbCBvZiBjb21tdXRpbmcgb3V0IG9mIGFuIGFyZWEgdGhlIEdWQSBwZXIgaGVhZCBmaWd1cmUgY291bGQgYmUgdW5kZXJzdGF0ZWQgYXMgdGhlIHdlYWx0aCBjcmVhdGlvbiBvZiB0aG9zZSB3aG8gY29tbXV0ZSBpcyBjb3VudGVkIGF0IHRoZWlyIHdvcmtwbGFjZS4gQXJlYXMgd2hlcmUgdGhlcmUgaXMgYSBoaWdoIGxldmVsIG9mIGluLWNvbW11dGluZyBjYW4gcHJvZHVjZSBvdmVyIHN0YXRlZCBsZXZlbHMgb2YgR1ZBIHBlciBoZWFkLiBUaGF0IHNhaWQgR1ZBIHBlciBoZWFkIG1lYXN1cmVzIGFyZSB3aWRlbHkgdXNlZCB0byBpbmRpY2F0ZSB0aGUgZWNvbm9taWMgd2VsbC1iZWluZyBvZiBhbiBhcmVhIGFuZCB0byBwcm92aWRlIGNvbXBhcmlzb24vYmVuY2htYXJraW5nIHdpdGggb3RoZXIgYXJlYXMuXFxuXFxuV1NDQyBpcyBjb21taXR0ZWQgdG8gaW1wcm92aW5nIEdWQSBwZXIgY2FwaXRhIGluIFdlc3QgU3Vzc2V4IHdoaWNoIGlzIGN1cnJlbnRseSBiZWxvdyB0aGF0IG9mIG91ciBuZWlnaGJvdXJzIGFuZCB0aGUgU291dGggRWFzdCBhdmVyYWdlIGFuZCBhcyBhIHJlc3BvbnNlLCBpcyBkZXZlbG9waW5nIGFwcHJvYWNoZXMgdGhhdCwgb3ZlciB0aGUgbG9uZ2VyIHRlcm0gLGlzIGludGVuZGVkIHRvIGVuY291cmFnZSBlY29ub21pYyBncm93dGguIFRoZSBpbml0aWF0aXZlcyBpbmNsdWRlIHRoZSBkZXZlbG9wbWVudCBvZiBhIHNlcmllcyBvZiBCb2xkIElkZWFzLCB3aGljaCwgaWYgc3VjY2Vzc2Z1bCBzaG91bGQgY3JlYXRlIGEgZW5jb3VyYWdlIGVjb25vbWljIGFjdGl2aXR5IHRoYXQgd2lsbCBwb3NpdGl2ZWx5IGFmZmVjdCB0aGUgV2VzdCBTdXNzZXggRWNvbm9teSwgdGhlc2UgaWRlYXMgYnVpbGQgb24gdGhlIGNvdW50eeKAmXMgZXhpc3RpbmcgZWNvbm9taWMgYXNzZXRzIHRvIGRyYXcgbW9yZSBoaWdoIHZhbHVlIGpvYnMgaW50byB0aGUgYXJlYSwgc2Vjb25kbHkgdGhleSBpbnRlbmQgdG8gbGV2ZXJhZ2UgdGhlIENvdW50eeKAmXMgbG9jYXRpb24gdG8gTG9uZG9uLCB0byBhdHRyYWN0IENhcGl0YWwvcyBjdXJyZW50IGFuZCBmdXR1cmUgeW91bmcgd2VhbHRoIGNyZWF0b3JzIGludG8gdGhlIGNvdW50eS5cXG5cXG5UaGUgSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzIHNlY3RvciBoYXMgYmVlbiBpZGVudGlmaWVkIGFzIGJlaW5nIGEgcHJpb3JpdHkgc2VjdG9yIGZvciBncm93dGggaW4gV2VzdCBTdXNzZXgsIGFuZCB0aGUgQ291bmNpbCBpcyBjb25zaWRlcmluZyBob3cgYmVzdCB0byBpbnZlc3QgaW50byB0aGUgc2VjdG9yLiBBIEhlYWx0aCBhbmQgTGlmZSBTY2llbmNlcyBjbHVzdGVyIGVuZ2FnZW1lbnQgZXZlbnQgZm9yIGJ1c2luZXNzZXMgYW5kIGtleSBwYXJ0bmVycyB3YXMgaGVsZCBpbiBKdWx5IGJyaW5naW5nIHRvZ2V0aGVyIGxvY2FsIGNvbXBhbmllcyBhbG9uZyB3aXRoIHBhcnRuZXJzLCBzdWNoIGFzIGhvc3BpdGFscywgQ0NHcyBhbmQgdW5pdmVyc2l0aWVzIGFuZCBjcmVhdGluZyBhbiBvcHBvcnR1bml0eSBmb3IgbmV0d29ya2luZyBhcyB3ZWxsIGluZm9ybWluZyB0aGUgZGViYXRlIG9uIGhvdyBpbnZlc3RtZW50cyBzaG91bGQgYmUgYmVzdCBtYWRlIHRvIGhlbHAgZ3Jvd3RoIGFuZCB3aGF0IHJvbGUgcGFydG5lcnMgY2FuIHBsYXkgaW4gZGV2ZWxvcGluZyB0aGUgc2VjdG9yLlxcblxcbkl0IGlzIHRoZSBjb3VuY2ls4oCZcyBhbWJpdGlvbiB0byBjcmVhdGUgbmV3IGVjb25vbWljIGFzc2V0cyB0byB0aGUgc291dGggb2YgR2F0d2ljayBBaXJwb3J0IGFuZCB0byBlbmNvdXJhZ2UgbW9yZSBoaWdoIHZhbHVlIEdWQSBidXNpbmVzc2VzIHRvIGJhc2UgdGhlbXNlbHZlcyBpbiB0aGUgYXJlYSBhbmQgaXMgZXhwbG9yaW5nIHRoZSBpZGVhIG9mIGVzdGFibGlzaGluZyBhIG11bHRpLXRlbmFudGVkIGNvbGQgY2hhaW4gc3RvcmFnZSBmYWNpbGl0eSBmb3IgdXNlIGJ5IHBoYXJtYWNldXRpY2FsIGFuZCBiaW8gZW5naW5lZXJpbmcgY29tcGFuaWVzLCBpbiBjbG9zZSBwcm94aW1pdHkgdG8gR2F0d2ljayBBaXJwb3J0LiBUaGUgZmFjaWxpdHkgd291bGQgYmUgaW50ZWdyYWxseSBsaW5rZWQgdG8gQ29hc3QgdG8gQ2FwaXRhbOKAmXMgU3RyYXRlZ2ljIEVjb25vbWljIFBsYW7igJlzIGFtYml0aW9ucyB0byBncm93IHRyYWRlIHdpdGggdGhlIEFzc29jaWF0aW9uIG9mIFNvdXRoZWFzdCBBc2lhIChBU0VBTikgTmF0aW9ucy4gR2F0d2ljayBpdHNlbGYgaGFzIHJvdXRlIHN0cmF0ZWdpZXMgYXJvdW5kIEFTRUFOIE5hdGlvbnMsIGFuZCB0aGUgZGVtYW5kIGZvciBoZWFsdGhjYXJlIHByb2R1Y3RzLCBzZXJ2aWNlcyBhbmQgaW5ub3ZhdGlvbiBpcyBncm93aW5nIGh1Z2VseSBpbiB0aG9zZSBzZWN0b3JzLlxcblxcblRoZSBXZXN0IFN1c3NleCBXZWVrZW5kcyBjYW1wYWlnbiB3YXMgbGF1bmNoZWQgaW4gdGhlIGVhcmx5IHN1bW1lciBhaW1pbmcgdG8gYXBwZWFsIHRvIHlvdW5nIHVyYmFuIHByb2Zlc3Npb25hbHMgbGl2aW5nIGluIExvbmRvbiwgYnkgcG9zaXRpb25pbmcgV2VzdCBTdXNzZXggYXMgYSAnZ28gdG8nIHBsYWNlIGZvciBoZWFsdGh5LCBhY3RpdmUsIG91dGRvb3Igc2hvcnQgYnJlYWtzLiBUaGUgY2FtcGFpZ24gYW5kIGNvcnJlc3BvbmRpbmcgd2Vic2l0ZSBbd3d3Lndlc3Qtc3Vzc2V4LXdlZWtlbmRzLmNvbV1bMF0gd2FzIGxhdW5jaGVkIG9uIDE0dGggSnVuZSBhbmQgc28gZmFyIGhhdmUgc2VlbiBpbXByZXNzaXZlIHByZWxpbWluYXJ5IGFuYWx5dGljcyByZXN1bHRzLiBDYW1wYWlnbiB2aXN1YWxzIGFuZCBmdWxsLXBhZ2UgZWRpdG9yaWFscyBoYXZlIGJlZW4gZmVhdHVyZWQgaW4gYm90aCB0aGUgTWV0cm8gYW5kIEV2ZW5pbmcgU3RhbmRhcmQuIFRoZXJlIGlzIGN1cnJlbnRseSBzb21lIGZvbGxvdy11cCB3b3JrIHVuZGVyd2F5IHRoYXQgd2lsbCBhc3Nlc3MgdGhlIGVmZmVjdGl2ZW5lc3Mgb2Z0aGUgY2FtcGFpZ24gdG8gZGF0ZS5cXG5cXG5JbiBhZGRpdGlvbiBEaXN0cmljdCAvIEJvcm91Z2ggUGxhY2UgUGxhbnMgYXJlIGJlaW5nIGRldmVsb3BlZCBhbmQgR3Jvd3RoIEJvYXJkcyBoYXZlIGJlZW4gZXN0YWJsaXNoZWQgdG8gc3VwcG9ydCB0aGVpciBkZXZlbG9wbWVudC4gVG9nZXRoZXIgdGhlc2Ugd2lsbCBmb3JtIHRoZSBXZXN0IFN1c3NleCBHcm93dGggUGxhbiwgYSBjbGVhciBJbnZlc3RtZW50IGFuZCBEZWxpdmVyeSBQbGFuIHdoaWNoIHdpbGwgZW5zdXJlIHRoYXQgY3Jvc3MgY291bnR5IGlzc3VlcyBhcmUgYWRkcmVzc2VkIOKAkyBlLmcuIHN0cmF0ZWdpYyByb2FkLCByYWlsLCB0cmFuc3BvcnQsIHNraWxscywgdXRpbGl0aWVzLCBOSFMsIFNETlA7IHRoYXQgY3Jvc3MgYXV0aG9yaXR5IC8gc3Rha2Vob2xkZXIgZnVuZGluZyBvcHBvcnR1bml0aWVzLCBwcmlvcml0aWVzIGFuZCBwcm9wb3NhbHMgYXJlIGFkZHJlc3NlZCBhbmQgd2lsbCBwcm92aWRlIGEgY2xlYXIgbG9iYnlpbmcgdG9vbCB0aGF0IHdpbGwgc2VjdXJlIGZ1bmRpbmcuIFRoZSBhbWFsZ2FtYXRlZCBHcm93dGggUGxhbiB3aWxsIGJlIGRyYWZ0ZWQgYnkgZW5kIERlY2VtYmVyIDIwMTUuXFxuXFxuWzBdOiBodHRwOi8vd3d3Lndlc3Qtc3Vzc2V4LXdlZWtlbmRzLmNvbVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJDb21wYXJpc29uIG9mIG1lZGlhbiBlYXJuaW5ncyB3aXRoaW4gV2VzdCBTdXNzZXggRGlzdHJpY3QgYW5kIEJvcm91Z2hzXFxuXFxuXCJ9LHtcInR5cGVcIjpcInZpelwiLFwiZGF0YXNldFwiOlwiMmNiOC1qOHMyXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIkNvbXBhcmlzb24gb2YgR1ZBIGFnYWluc3QgcmVnaW9uYWwgYW5kIG5hdGlvbmFsIHBlcmZvcm1hbmNlIG92ZXIgdGltZVwifSx7XCJ0eXBlXCI6XCJ2aXpcIixcImRhdGFzZXRcIjpcInBpMjQtOGZ2YlwifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiSW5jcmVhc2luZyB3b3JrcGxhY2UgYmFzZWQgR3Jvc3MgVmFsdWUgQWRkZWQgKEdWQSkgcGVyIGhlYWQgdG8gYmUgYWJvdmUgdGhlIFNvdXRoIEVhc3QgYXZlcmFnZSBieSAyMDIyXCIsXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6ZmFsc2UsXCJjdXN0b21fc3VidGl0bGVcIjpcIlwiLFwidGl0bGVfaW1hZ2VcIjpcIi9hcGkvYXNzZXRzLzNGNTA5QjhDLUI3MTctNEU3RS1CNDFCLTQwN0Q3NUNGRDlGOFwifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIxOTk3LTAxLTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6IsKjcyBwZXIgaGVhZCIsInRhcmdldCI6MjExODAsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGEiOjAsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjI3ODQ3LCJtZXRyaWMiOnsibWV0YWRhdGEiOiIiLCJpZCI6IjY5Y2QtZTVnNiJ9LCJjb21wYXJpc29uIjp7ImNvbXBhcmlzb25fZnVuY3Rpb24iOiI+In0sIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wiZWRpdFwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOjEsXCJtb250aFwiOjAsXCJ5ZWFyXCI6MTk5N30sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJpbmNyZWFzZVwiLFwidGFyZ2V0X3R5cGVcIjpcImFic29sdXRlXCIsXCJtYWludGFpbl90eXBlXCI6XCI+XCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9fSxcInN0YXJ0XCI6XCIyMDE0LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE0LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn0sXCJ0eXBlXCI6XCJzdGF0aWNcIn0sXCJuYW1lXCI6XCJHcm9zcyBWYWx1ZSBBZGRlZCAoR1ZBKSBwZXIgaGVhZCBvZiBwb3B1bGF0aW9uXCIsXCJ5U2NhbGVcIjp7XCJ1c2VfZGVmYXVsdFwiOnRydWUsXCJtYXhcIjoyNjAwMH0sXCJ1c2VfcHJvZ3Jlc3Nfb3ZlcnJpZGVcIjpmYWxzZSxcInByb2dyZXNzX292ZXJyaWRlXCI6XCJnb29kXCIsXCJpc19idXJuZG93bl9kaXNhYmxlZFwiOmZhbHNlLFwiaXNfdHJlbmRsaW5lX2Rpc2FibGVkXCI6dHJ1ZX0ifSwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMDk6MTQ6NTkuMDc4WiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDA5OjE0OjU5LjA3OFoiLCJ0YXJnZXRfdG9sZXJhbmNlIjoyNjI2LCJpZCI6Im40cWgtY2Q1eiJ9LCJyZWxhdGVkX21lYXN1cmVzIjpbXSwiYmFzZV9kYXNoYm9hcmQiOiI1NzRyLWg1bmMiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNy0yM1QwOToxNToyNC4zMDZaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMDk6MTQ6NTkuMTIxWiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDA5OjE1OjI0LjMwNloiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn0seyJpZCI6ImI4NzMtZXptOCIsIm5hbWUiOiJBdmVyYWdlIEdyb3NzIFdlZWtseSBFYXJuaW5ncyBmb3IgcmVzaWRlbnRzIGluIFdlc3QgU3Vzc2V4IiwiaXNfcHVibGljIjp0cnVlLCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcInJldGlyZW1lbnRfbmFycmF0aXZlXCI6W10sXCJuYXJyYXRpdmVcIjpbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipBdmVyYWdlIGdyb3NzIHdlZWtseSBlYXJuaW5ncyBmb3IgZnVsbCB0aW1lIHdvcmtlcnMgd2hvIGxpdmUgaW4gV2VzdCBTdXNzZXgqKlxcblxcblRoZSBBbm51YWwgU3VydmV5IG9mIEhvdXJzIGFuZCBFYXJuaW5ncyAoQVNIRSkgcHJvdmlkZXMgZGF0YSBvbiBlYXJuaW5ncyBsZXZlbHMgZG93biB0byBsb2NhbCBhdXRob3JpdHkgZ2VvZ3JhcGhpZXMgZm9yIGJvdGggdGhvc2UgbGl2aW5nIGluIHRoZSBhcmVhIGFuZCB0aG9zZSB3b3JraW5nIGluIHRoZSBhcmVhLiBUaGlzIG1lYXN1cmUgaXMgYSByZXNpZGVudCBiYXNlZCBtZWFzdXJlIOKAkyBpLmUuIGl0IGlzIG1lYXN1cmluZyB0aGUgZWFybmluZ3MgbGV2ZWxzIGZvciByZXNpZGVudHMgaW4gV2VzdCBTdXNzZXggd2hlcmV2ZXIgdGhleSBtaWdodCBiZSB3b3JraW5nLiBUaGUgQVNIRSBkYXRhIGlzIHB1Ymxpc2hlZCBhbm51YWxseSBieSBPTlMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAzIC0gRGVjZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG4qKkF2ZXJhZ2UgZ3Jvc3Mgd2Vla2x5IGVhcm5pbmdzIGZvciBmdWxsIHRpbWUgd29ya2VycyB3aG8gbGl2ZSBpbiBXZXN0IFN1c3NleCoqXFxuXFxuVGhlIEFubnVhbCBTdXJ2ZXkgb2YgSG91cnMgYW5kIEVhcm5pbmdzIChBU0hFKSBpcyBhIFVLIHdpZGUgc3VydmV5IHRoYXQgcHJvdmlkZXMgaW5mb3JtYXRpb24gb24gaG91cmx5LCB3ZWVrbHkgYW5kIGFubnVhbCBlYXJuaW5ncyBieSBnZW5kZXIgYW5kIHdvcmsgcGF0dGVybnMsYW5kIGF0IG5hdGlvbmFsIGFuZCByZWdpb25hbCBsZXZlbCBnZW9ncmFwaGllcyBvbiBpbmR1c3RyeSBhbmQgb2NjdXBhdGlvbixpbmNsdWRpbmcgcHVibGljIHZlcnN1cyBwcml2YXRlIHNlY3RvciBwYXkgY29tcGFyaXNvbnMuIFRoZSBhbm51YWwgc2VyaWVzIGRhdGVzIGJhY2sgdG8gMTk5NyBhbmQgdGhlIGxhdGVzdCBkYXRhIGlzIGZvciAyMDE3IHdpdGggdGhlIDIwMTggZGF0YSBleHBlY3RlZCB0byBiZSByZWxlYXNlZCBsYXRlciBpbiBOb3ZlbWJlci4gVGhlIGRhdGEgaXMgZ2VuZXJhbGx5IGF2YWlsYWJsZSBhdCBsb2NhbCBhdXRob3JpdHkgbGV2ZWwsIHRob3VnaCBpbiBzb21lIGNhc2VzLCBiZWNhdXNlIG9mIHNhbXBsaW5nIGlzc3VlcyB0aGUgZGF0YSBpcyBzb21ldGltZXMgc3VwcHJlc3NlZCBmb3IgcGFydGljdWxhciB2YXJpYWJsZXMgYW5kIGlzIG5vdCBhdmFpbGFibGUgYXQgZGlzdHJpY3QgbGV2ZWwgYnkgaW5kdXN0cmlhbCBzZWN0b3Igb3Igb2NjdXBhdGlvbmFsIHR5cGVzLiBUaGlzIG1lYXN1cmUgaXMgYSByZXNpZGVudCBiYXNlZCBtZWFzdXJlIOKAkyBpLmUuIGl0IGlzIG1lYXN1cmluZyB0aGUgZWFybmluZ3MgbGV2ZWxzIGZvciByZXNpZGVudHMgaW4gV2VzdCBTdXNzZXggd2hlcmV2ZXIgdGhleSBtaWdodCBiZSB3b3JraW5nLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9ERDhCQjA3Ni1EODA0LTQ0M0ItOURGRC1CNEQzQjg1OTAzNzlcIn0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9CQTBERTJBNy04MzczLTQxQzgtOTRCNS0xMkVBM0EzRjQ3MjJcIn1dLFt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJXZXN0IFN1c3NleCBncm9zcyB3ZWVrbHkgZWFybmluZ3MgZm9yIGZ1bGwgdGltZSB3b3JrZXJzIGxldmVscyBkbyBub3QgbWVhc3VyZSBmYXZvdXJhYmx5IGNvbXBhcmVkIHdpdGggdGhlIG5hdGlvbmFsIGFuZCByZWdpb25hbCBsZXZlbHMsIHRoZSBlYXJuaW5ncyBsZXZlbHMgZm9yIFdlc3QgU3Vzc2V4IGFyZSBsb3dlciB0aGFuIGJvdGggdGhlc2UgYXJlYXMuIEluZGVlZCBvdmVyIHRoZSB5ZWFyIDIwMTYtMjAxNyBlYXJuaW5ncyBsZXZlbHMgZmVsbCBpbiBXZXN0IFN1c3NleCwgYSB0cmVuZCBzZWVuIGluIDUgb2YgdGhlIDE5IHVwcGVyIHRpZXIgYXV0aG9yaXRpZXMgaW4gdGhlIFNvdXRoIEVhc3QsIFJlYWRpbmcgaGFkIHNlZW4gYW4gNy44JSBpbmNyZWFzZSBpbiBlYXJuaW5ncyxXZXN0IFN1c3NleCBhIGZhbGwgb2YgMC41JSBhbmQgV29raW5naGFtIHRoZSBoaWdoZXN0IGRyb3Agb2YgOS41JS4gUmVnaW9uYWxseSBlYXJuaW5ncyBsZXZlbHMgaW5jcmVhc2UgYnkgMi41JSBvdmVyIHRoZSB5ZWFyIGFuZCB0aGVyZSB3YXMgYSAyJSBpbmNyZWFzZSBFbmdsYW5kIGFzIGEgd2hvbGUuIENvbXBhcmVkIHdpdGggdGhlIDE5IHVwcGVyIHRpZXIgYXV0aG9yaXRpZXMgaW4gdGhlIFNvdXRoIEVhc3QgcmVnaW9uIFdlc3QgU3Vzc2V4IGF2ZXJhZ2UgZ3Jvc3Mgd2Vla2x5IGVhcm5pbmdzIGxldmVscyByYW5rcyBhcyB0aGUgNXRoIGxvd2VzdCBsZXZlbC5cXG5cXG4gXFxuXFxuV2VzdCBTdXNzZXggbGV2ZWwgb2YgZWFybmluZ3MgY29tcGFyZXMgbW9yZSBmYXZvdXJhYmx5IHdpdGggaXRzIHN0YXRpc3RpY2FsIG5laWdoYm91cnMsIGl0IHJlbWFpbnMgaW4gdGhlIGhpZ2hlc3QgcXVhcnRpbGUsIHRob3VnaCBpcyDCozQ5LjYgcGVyIHdlZWsgbG93ZXIgdGhhbiB0aGUgbGV2ZWxzIHNlZW4gaW4gSGFtcHNoaXJlXFxuXFxuXCJ9XV19LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZXJlIGlzIHNpZ25pZmljYW50IHZhcmlhdGlvbiBpbiByZXNpZGVudCBlYXJuaW5ncyBsZXZlbHMgd2l0aGluIFdlc3QgU3Vzc2V4IHdpdGggQWR1ciBoYXZpbmcgdGhlIGxvd2VzdCBsZXZlbHMgb2YgZWFybmluZ3Mg4oCTIGF0IGFyb3VuZCDCozQ3OCBwZXIgd2VlayBjb21wYXJlZCB3aXRoIHRoYXQgaW4gTWlkIFN1c3NleCBvZiDCozY1Mi4gQXJ1biwgQ2hpY2hlc3RlciBhbmQgTWlkIFN1c3NleCBzYXcgc29tZSBpbmNyZWFzZSBpbiB0aGUgd2Vla2x5IGxldmVsIG9mIGVhcm5pbmdzIG92ZXIgdGhlIGxhc3QgeWVhciAoMjAxNi0yMDE3KSB0aGUgaGlnaGVzdCBpbmNyZWFzZSBiZWluZyBpbiBBcnVuIG9mIDcuNSUsIGFuZCBmYWxscyBpbiBlYXJuaW5ncyB3ZXJlIHNlZW4gaW4gdGhlIHJlbWFpbmluZyBsb2NhbCBhdXRob3JpdHkgYXJlYXMg4oCTIHRoZSBsYXJnZXN0IGRyb3AgYmVpbmcgc2VlbiBpbiBDcmF3bGV5IHdoZXJlIGVhcm5pbmdzIG9mIHJlc2lkZW50cyBmZWxsIGJ5IDYuNyUuXFxuXFxuQ29tcGFyaXNvbiBiZXR3ZWVuIHRoZSBlYXJuaW5ncyBmb3IgdGhvc2Ugd2hvIGxpdmUgaW4gdGhlIGNvdW50eSBhbmQgdGhvc2Ugd2hvIHdvcmsgaW4gdGhlIGNvdW50eSBzaG93IHRoYXQgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIENyYXdsZXkgYW5kIEFkdXIgcmVzaWRlbnQgZWFybmluZ3MgYXJlIGhpZ2hlci4gVGhlIGJpZ2dlc3QgZGlmZmVyZW5jZSBpcyBpbiBNaWQgU3Vzc2V4IHdoZXJlIGVhcm5pbmdzIGZvciB0aG9zZSBsaXZpbmcgaW4gTWlkIFN1c3NleCBhcmUsIG9uIGF2ZXJhZ2UsIMKjMTA4IGhpZ2hlciB0aGFuIGZvciB0aG9zZSB3b3JraW5nIGluIHRoZSBkaXN0cmljdC4gSW4gQWR1ciBlYXJuaW5ncyBmb3IgdGhvc2Ugd29ya2luZyBpbiB0aGUgYXJlYSBhcmUgwqMxMy41IHRoYW4gdGhlIGVhcm5pbmdzIGZvciByZXNpZGVudHMgYW5kIGluIENyYXdsZXkgZWFybmluZ3MgZm9yIHRob3NlIHdvcmtpbmcgaW4gQ3Jhd2xleSBhcmUgwqM2NiBwZXIgd2VlayBoaWdoZXIgdGhhbiBlYXJuaW5ncyBvZiByZXNpZGVudHM7IGluZGVlZCBDcmF3bGV5IGhhcyB0aGUgaGlnaGVzdCBsZXZlbCBvZiB3b3JrcGxhY2UgYmFzZWQgZWFybmluZ3MgaW4gV2VzdCBTdXNzZXjigJNpbmRpY2F0aW5nIHRoYXQgbG9jYWwgcmVzaWRlbnRzIGFyZSBub3QgYWNjZXNzaW5nIGxvY2FsLCBtb3JlIGhpZ2hseSBwYWlkLCBhbmQgaGlnaGx5IHNraWxsZWQgam9icywgdGhvdWdoIHRoZSB3b3JrcGxhY2UgZWFybmluZ3MgaGF2ZSBkZWNyZWFzZWQgb3ZlciB0aGUgeWVhci5cXG5cXG4gXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzYyNzZDNzZFLTA1MDMtNEFDNy04MzBGLTI3M0M4MDBCNzY3MVwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy81NDAxRTgxQy1FODA1LTRCNDMtOEY5Qy1DNDU4OUQxODQxRDJcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipBdmVyYWdlIGdyb3NzIHdlZWtseSBlYXJuaW5ncyBmb3IgZnVsbCB0aW1lIHdvcmtlcnMgd2hvIGxpdmUgaW4gV2VzdCBTdXNzZXgqKlxcblxcblRoZSBBbm51YWwgU3VydmV5IG9mIEhvdXJzIGFuZCBFYXJuaW5ncyAoQVNIRSkgcHJvdmlkZXMgZGF0YSBvbiBlYXJuaW5ncyBsZXZlbHMgZG93biB0byBsb2NhbCBhdXRob3JpdHkgZ2VvZ3JhcGhpZXMgZm9yIGJvdGggdGhvc2UgbGl2aW5nIGluIHRoZSBhcmVhIGFuZCB0aG9zZSB3b3JraW5nIGluIHRoZSBhcmVhLiBUaGlzIG1lYXN1cmUgaXMgYSByZXNpZGVudCBiYXNlZCBtZWFzdXJlIOKAkyBpLmUuIGl0IGlzIG1lYXN1cmluZyB0aGUgZWFybmluZ3MgbGV2ZWxzIGZvciByZXNpZGVudHMgaW4gV2VzdCBTdXNzZXggd2hlcmV2ZXIgdGhleSBtaWdodCBiZSB3b3JraW5nLiBUaGUgQVNIRSBkYXRhIGlzIHB1Ymxpc2hlZCBhbm51YWxseSBieSBPTlMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiV2VzdCBTdXNzZXggcmVzaWRlbnQgYmFzZWQgd2Vla2x5IGVhcm5pbmdzIGFyZSBsb3dlciB0aGFuIHRoZSByZWdpb25hbCBsZXZlbCwgYnV0IGhpZ2hlciB0aGFuIGZvciBFbmdsYW5kLlxcblxcbldlc3QgU3Vzc2V4IGRvZXMgbm90IGNvbXBhcmUgZmF2b3VyYWJseSBjb21wYXJlZCB3aXRoIHRoZSAxOSB1cHBlciB0aWVyL3VuaXRhcnkgYXV0aG9yaXR5IGFyZWFzIGluIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbiBiZWNhdXNlIG9mIGNvdXJzZSB0aGUgZWFybmluZ3MgbGV2ZWxzIGFyZSBzb21lIG9mIHRoZSBoaWdoZXN0LCBvdXRzaWRlIExvbmRvbiwgaW4gdGhlIGNvdW50eSDigJMgcGFydGljdWxhcmx5IHRob3NlIG9mIFN1cnJleSwgQnVja2luZ2hhbXNoaXJlLCBXZXN0IEJlcmtzaGlyZSBwcm9iYWJseSBiZWNhdXNlIG9mIHRoZWlyIGNsb3NlIHByb3hpbWl0eSB0byBMb25kb24gbGVuZGluZyB0aGVtc2VsdmVzIHRvIGhpZ2ggbGV2ZWxzIG9mIG91dCBjb21tdXRpbmcgdG8gTG9uZG9uLiBUaGUgcGljdHVyZSBpcyBkaWZmZXJlbnQgdGhvdWdoIHdoZW4gY29tcGFyaW5nIHJlc2lkZW50IGVhcm5pbmdzIGxldmVscyB3aXRoIFN0YXRpc3RpY2FsIE5laWdoYm91cnMg4oCTYXMgc2hvd24gcmlnaHQuXFxuXFxuXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvRDI0ODFFOTgtRkU4MC00QkUyLUJENjQtMTY2MTg3RUExRjFFXCJ9XV19LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIldlc3QgU3Vzc2V4IGxpZXMgaW4gdGhlIHRvcCBxdWFydGlsZSB3aGVuIGNvbXBhcmVkIHdpdGggU3RhdGlzdGljYWwgTmVpZ2hib3VyIGF1dGhvcml0aWVzIOKAkyBob3dldmVyIHRoZXJlIGlzIGEgc2lnbmlmaWNhbnQgZ2FwIGJldHdlZW4gdGhlIGhpZ2hlc3QgbGV2ZWwgYXMgc2VlbiBpbiBFc3NleCBhbmQgdGhhdCBmb3IgV2VzdCBTdXNzZXgsIHRoZSBhbWJpdGlvbiBpcywgdGhlcmVmb3JlIHRvIG1hdGNoIHRoZSBvdmVyYWxsIFNvdXRoIEVhc3QgKHJlZ2lvbmFsKSBlYXJuaW5ncyBsZXZlbHMuXFxuXFxuVGhlcmUgaXMgc2lnbmlmaWNhbnQgdmFyaWF0aW9uIGluIHJlc2lkZW50IGVhcm5pbmdzIGxldmVscyB3aXRoaW4gV2VzdCBTdXNzZXggd2l0aCBBZHVyIGFuZCBBcnVuIGhhdmluZyB0aGUgbG93ZXN0IGxldmVscyBvZiBlYXJuaW5ncyDigJMgYXQgYXJvdW5kIMKjNDc3IHBlciB3ZWVrIGNvbXBhcmVkIHdpdGggdGhhdCBpbiBIb3JzaGFtIGFuZCBNaWQgU3Vzc2V4IG9mIMKjNjIyLlxcblxcbkNvbXBhcmlzb24gYmV0d2VlbiB0aGUgZWFybmluZ3MgZm9yIHRob3NlIHdobyBsaXZlIGluIHRoZSBjb3VudHkgYW5kIHRob3NlIHdobyB3b3JrIGluIHRoZSBjb3VudHkgc2hvdyB0aGF0IHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBDcmF3bGV5IHJlc2lkZW50IGVhcm5pbmdzIGFyZSBoaWdoZXIuIEluIENyYXdsZXkgaG93ZXZlciwgZWFybmluZ3MgZm9yIHRob3NlIHdvcmtpbmcgaW4gQ3Jhd2xleSBhcmUgY29uc2lkZXJhYmx5IGhpZ2hlciB0aGFuIGVhcm5pbmdzIG9mIHJlc2lkZW50cywgYW5kIGluZGVlZCBDcmF3bGV5IGhhcyB0aGUgaGlnaGVzdCBsZXZlbCBvZiB3b3JrcGxhY2UgYmFzZWQgZWFybmluZ3MgaW4gV2VzdCBTdXNzZXgg4oCTaW5kaWNhdGluZyB0aGF0IGxvY2FsIHJlc2lkZW50cyBhcmUgbm90IGFjY2Vzc2luZyBsb2NhbCwgbW9yZSBoaWdobHkgcGFpZCwgYW5kIGhpZ2hseSBza2lsbGVkIGpvYnMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0Y4NENDQjcwLUZFNzUtNEEyQi04NEQ0LUU5REQ3MjIyN0U0RlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBsYXRlc3QgZGF0YSBmb3IgR3Jvc3MgVmFsdWUgQWRkZWQgKEdWQSkgd2FzIHJlbGVhc2VkIGluIERlY2VtYmVyIDIwMTYgYW5kIGNvdmVycyB0aGUgcGVyaW9kIHVwIHRvIDIwMTUuIFRoZSBuZXh0IHJlbGVhc2Ugb2YgdGhpcyBkYXRhIGZyb20gT05TIGlzIGV4cGVjdGVkIGluIGlzIGEgcmVjb2duaXNlZCBtZWFzdXJlIG9mIGVjb25vbWljIGFjdGl2aXR5IGJyb2FkbHkgZGVmaW5lZCBhcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB2YWx1ZSBvZiB0aGUgZ29vZHMgYW5kIHNlcnZpY2VzIHByb2R1Y2VkIGFuZCB0aGUgY29zdCBvZiByYXcgbWF0ZXJpYWxzIGFuZCBvdGhlciBpbnB1dHMgdXNlZCBpbiBwcm9kdWN0aW9uLiBUaGUgZGF0YSBpcyByZWxlYXNlZCBhbm51YWxseSBmcm9tIE9OUywgYW5kIGluY2x1ZGVzIHRoZSBzdWItcmVnaW9uYWwgZXN0aW1hdGVzIGZvciBHVkEgZm9yIHRoZSB0d28gV2VzdCBTdXNzZXggU3ViIEFyZWFzOlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIjEuICoqV2VzdCBTdXNzZXjigJNTb3V0aCBXZXN0IChXU1NXKSDigJMgY29tcHJpc2VzIENoaWNoZXN0ZXIsIEFydW4sIEFkdXIgYW5kIFdvcnRoaW5nKipcXG5cXG4xLiAqKldlc3QgU3Vzc2V44oCTTm9ydGggRWFzdCAoV1NORSkg4oCTIGNvbXByaXNlcyBDcmF3bGV5LCBIb3JzaGFtIGFuZCBNaWQgU3Vzc2V4KipcXG5cXG5UaGUgbGF0ZXN0IGRhdGEsIGFscmVhZHkgcmVwb3J0ZWQsIHdhcyByZWxlYXNlZCBpbiBEZWNlbWJlciAyMDE2LCBhbmQgY292ZXJzIHRoZSBwZXJpb2QgdXAgdG8gMjAxNSwgdGhlIGZpZ3VyZXMgYW5kIHRyZW5kcyBmb3IgdGhlIHR3byBXZXN0IFN1c3NleCBhcmVhcyB3ZXJlIHJlcG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIHByZXZpb3VzIHF1YXJ0ZXIgYW5kIHRoZXJlIGlzIG5vIHVwZGF0ZSBpbiB0ZXJtcyBvZiB0aGUgbG9jYWwgcGljdHVyZS4gVGhlIG5leHQgcmVsZWFzZSBvZiBkYXRhIGlzIGV4cGVjdGVkIGluIERlY2VtYmVyIDIwMTcuXFxuXFxuSG93ZXZlciwgaW4gTWFyY2ggMjAxNyB0YWJsZXMgc2hvd2luZyBHVkEgYWxsb2NhdGVkIHRvIGxvY2FsIGF1dGhvcml0aWVzIGluIHRoZSBVSyB3ZXJlIHJlbGVhc2VkLCB0aGUgZGF0YSB3YXMgcHJvZHVjZWQgaW4gcmVzcG9uc2UgdG8gdXNlciBuZWVkIGJ1dCB3aGlsZSBub3QgTmF0aW9uYWwgU3RhdGlzdGljcywgbmV2ZXJ0aGVsZXNzIGdpdmUgc29tZSBpbmRpY2F0aW9uIGFzIHRvIHRoZSBzY2FsZSBvZiBHVkEgYXQgbG9jYWwgYXV0aG9yaXR5IGxldmVsLCBhbmQgdGhlIGNvbnRyaWJ1dGlvbiB0aGF0IGVhY2ggb2YgdGhlIGJyb2FkIGxldmVsIHNlY3RvcnMgbWFrZSB0byB0aGUgbG9jYWwgZWNvbm9teS4gW2h0dHBzOi8vd3d3Lm9ucy5nb3YudWsvZWNvbm9teS9ncm9zc3ZhbHVlYWRkZWRndmEvZGF0YXNldHMvcmVnaW9uYWxndmFpYnlsb2NhbGF1dGhvcml0eWludGhldWtdWzBdXFxuXFxuWzBdOiBodHRwczovL3d3dy5vbnMuZ292LnVrL2Vjb25vbXkvZ3Jvc3N2YWx1ZWFkZGVkZ3ZhL2RhdGFzZXRzL3JlZ2lvbmFsZ3ZhaWJ5bG9jYWxhdXRob3JpdHlpbnRoZXVrXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0YxQzNDMjRCLUQ3QTYtNDM2MS05RUZDLUM1NzFENDZFOUNFOFwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzI3RkNCMTE5LTE4NjYtNEY1QS04MTBFLTVCN0ZGQTAwRkFCRlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGUgbWFpbiBwb2ludHMgZnJvbSB0aGUgKE9OUykgc3VtbWFyeSBvZiB0aGUgKEdCKSBTaG9ydC10ZXJtIGVjb25vbWljIGluZGljYXRvcnMgcHVibGlzaGVkIGluIGVhcmx5IFNlcHRlbWJlciAyMDE3IGFyZTpcXG5cXG4qIFRvdGFsIHByb2R1Y3Rpb24gb3V0cHV0IHNhdyBhIHNsaWdodCBpbmNyZWFzZSBpbiB0aGUgMyBtb250aHMgdG8gSnVseSAyMDE3IGFuZCBpbmNyZWFzZWQgYnkgMC4zJTtcXG5cXG4qIE1hbnVmYWN0dXJpbmcgcmVtYWlucyByZWxhdGl2ZWx5IHN1YmR1ZWQgc2luY2UgdGhlIGJlZ2lubmluZyBvZiB0aGUgeWVhciwgdGhvdWdoIHNvbWUgZ3Jvd3RoIHNlZW4gZnJvbSBKdWx5IGF0dHJpYnV0ZWQgdG8gc3Ryb25nZXIgZ3Jvd3RoIGluIGNhciBwcm9kdWN0aW9uO1xcblxcbiogQ29uc3RydWN0aW9uIG91dHB1dCBmZWxsIGZvciB0aGUgZm91cnRoIG1vbnRoIGluIGEgcm93LCB3aXRoIHByaXZhdGUgaG91c2luZyBidWlsZGluZyBjb250cmFjdGluZyBpbiBKdWx5IDIwMTcgYWZ0ZXIgc2VlaW5nIGdyb3d0aCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB5ZWFyLlxcblxcbltodHRwczovL3d3dy5vbnMuZ292LnVrL2Vjb25vbXkvZWNvbm9taWNvdXRwdXRhbmRwcm9kdWN0aXZpdHkvb3V0cHV0L2FydGljbGVzL3Nob3J0dGVybWluZGljYXRvcnNlY29ub21pY2NvbW1lbnRhcnkvc2VwdDIwMTddWzBdXFxuXFxuWzBdOiBodHRwczovL3d3dy5vbnMuZ292LnVrL2Vjb25vbXkvZWNvbm9taWNvdXRwdXRhbmRwcm9kdWN0aXZpdHkvb3V0cHV0L2FydGljbGVzL3Nob3J0dGVybWluZGljYXRvcnNlY29ub21pY2NvbW1lbnRhcnkvc2VwdDIwMTdcIn1dXX0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQgLSBNYXJjaCAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBBbm51YWwgU3VydmV5IG9mIEhvdXJzIGFuZCBFYXJuaW5ncyAoQVNIRSkgaXMgYSBVSy13aWRlIHN1cnZleSB0aGF0IHByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGhvdXJseSwgd2Vla2x5IGFuZCBhbm51YWwgZWFybmluZ3MgYnkgZ2VuZGVyIGFuZCB3b3JrIHBhdHRlcm5zLGFuZCBhdCBuYXRpb25hbCBhbmQgcmVnaW9uYWwgbGV2ZWwgZ2VvZ3JhcGhpZXMgb24gaW5kdXN0cnkgYW5kIG9jY3VwYXRpb24sIGluY2x1ZGluZyBwdWJsaWMgdmVyc3VzIHByaXZhdGUgc2VjdG9yIHBheSBjb21wYXJpc29ucy4gVGhlIGFubnVhbCBzZXJpZXMgZGF0ZXMgYmFjayB0byAyMDAyLCB0aG91Z2ggdGhlcmUgaGF2ZSBiZWVuIHNvbWUgbWV0aG9kb2xvZ2ljYWwgY2hhbmdlcyBvdmVyIHRoaXMgdGltZS4gVGhlIGRhdGEgaXMgZ2VuZXJhbGx5IGF2YWlsYWJsZSBhdCBsb2NhbCBhdXRob3JpdHkgbGV2ZWwsIHRob3VnaCBpbiBzb21lIGNhc2VzIGR1ZSB0byBzYW1wbGluZyBpc3N1ZXMgdGhlIGRhdGEgY2FuIGJlIHN1cHByZXNzZWQgZm9yIHBhcnRpY3VsYXIgdmFyaWFibGVzLlxcblxcblRoZSBsYXRlc3QgZmlndXJlcyBhcmUgZm9yIDIwMTYgKHJlbGVhc2VkIE9jdG9iZXIgMjAxNikgYW5kIHdlcmUgcmVwb3J0ZWQgZm9yIFdlc3QgU3Vzc2V4IGFuZCBpdHMgbG9jYWwgYXV0aG9yaXRpZXMgYWxvbmcgd2l0aCBjb21wYXJpc29ucyBhdCByZWdpb25hbCBsYW5kIG5hdGlvbmFsIGxldmVsLCBhdCB0aGUgZW5kIG9mIHRoZSBwcmV2aW91cyBxdWFydGVyLCBhbmQgdGhlcmUgaXMgbm8gZnVydGhlciB1cGRhdGUgYXQgdGhpcyBnZW9ncmFwaHkuIFRoZSBuZXh0IHJlbGVhc2Ugb2YgZGF0YSBpcyBleHBlY3RlZCBpbiBOb3ZlbWJlciAyMDE3Llxcblxcbkhvd2V2ZXIsIHNpbmNlIHRoZSByZXBvcnRpbmcgb2YgdGhlIGxhc3QgQW5udWFsIFN1cnZleSBvZiBIb3VycyBhbmQgRWFybmluZ3MgZGF0YSwgT05TLCBpbiBEZWNlbWJlciAyMDE2LCByZWxlYXNlZCBzbWFsbCBhcmVhIG1vZGVsIGJhc2VkIGluY29tZSBlc3RpbWF0ZXMsIGZvciB0aGUgZmluYW5jaWFsIHllYXIgZW5kaW5nIDIwMTQuIFRoZXkgYXJlIG9mZmljaWFsIGVzdGltYXRlcyBvZiB3ZWVrbHkgaG91c2Vob2xkIGluY29tZSBhdCBtaWRkbGUgbGF5ZXIgc3VwZXIgb3V0cHV0IGFyZWFzIChNU09BKSBjYWxjdWxhdGVkIHVzaW5nIGEgbW9kZWwgYmFzZWQgbWV0aG9kLCB1c2luZyBhIGNvbWJpbmF0aW9uIG9mIHN1cnZleSBkYXRhLCBwcmV2aW91c2x5IHB1Ymxpc2hlZCBkYXRhIGZyb20gdGhlIDIwMTEgQ2Vuc3VzIGFuZCBhIG51bWJlciBvZiBhZG1pbmlzdHJhdGl2ZSBkYXRhIHNvdXJjZXMuXFxuXFxuQSBtaWRkbGUgc3VwZXIgb3V0cHV0IGFyZWEgaXMgYSBsb3cgbGV2ZWwgZ2VvZ3JhcGh5LCB3aXRoIGEgbWluaW11bSBzaXplIG9mIDUsMDAwIHJlc2lkZW50cyBhbmQgMiwwMDAgaG91c2Vob2xkcy4gVGhlcmUgaXMgYW4gYXZlcmFnZSBwb3B1bGF0aW9uIG9mIDcsNTAwIHdoaWNoIGZpdCBpbnRvIGxvY2FsIGF1dGhvcml0eSBib3VuZGFyaWVzLiBUaGVyZSBhcmUgMTAwIG1pZGRsZSBzdXBlciBvdXRwdXQgYXJlYXMgaW4gV2VzdCBTdXNzZXguXFxuXFxuVGhlIGVzdGltYXRlcyBzaG93IHRoYXQgTVNPQSBDcmF3bGV5IDAwOCAoaW5jbHVkZXMgYXJlYXMgUG91bmQgSGlsbCwgV29ydGggYW5kIE1haWRlbmJvd2VyIOKAkyBuZWFyYnkgdG8gQ2hyaXN0cyBIb3NwaXRhbCAoanVzdCBvdmVyIGFuIGhvdXIgdG8gTG9uZG9uIFZpY3RvcmlhKSBoYXMgdGhlIGhpZ2hlc3QgYXZlcmFnZSBzYWxhcnkgaW4gV2VzdCBTdXNzZXggYXQgwqM2Miw5MjDigJNIb3JzaGFtIDAwOSBpbmNsdWRlcyBTb3V0aHdhdGVyIGhhcyB0aGUgMm5kIGhpZ2hlc3QgYXZlcmFnZSBzYWxhcnkgaW4gV2VzdCBTdXNzZXggYXQgwqM2MCwzMjAgYW5kIEhvcnNoYW0gMDA4IChydXJhbCBhcmVhIGluY2x1ZGluZyBNYW5uaW5ncyBIZWF0aCwgTnV0aHVyc3QgYW5kIENvcHNhbGUpIGhhcyB0aGUgM3JkIGhpZ2hlc3QgYXZlcmFnZSBpbmNvbWUgaW4gV2VzdCBTdXNzZXggYXQgwqM1OSw4MDAuXFxuXFxuVGhlIHRocmVlIGxvd2VzdCBpbmNvbWUgbGV2ZWxzIGFyZSBzZWVuIGluIHRoZSBNU09BczpcXG5cXG7igKIgQXJ1biAwMTcgwqMzMyw4MDAgLSAoQm9nbm9yIHNlYWZyb250KVxcblxcbuKAoiBBcnVuIDAxOSAvIDAxMSDCozMyLDc2MCAtIChQYWdoYW0gLyBMaXR0bGVoYW1wdG9uXFxuXFxu4oCiIENoaWNoZXN0ZXIgMDE0IMKjMzIsMjQwIOKAkyhTZWxzZXkpXFxuXFxuwqAgIFtodHRwczovL3d3dy5vbnMuZ292LnVrL3Blb3BsZXBvcHVsYXRpb25hbmRjb21tdW5pdHkvcGVyc29uYWxhbmRob3VzZWhvbGRmaW5hbmNlcy9pbmNvbWVhbmR3ZWFsdGgvYXJ0aWNsZXMvc21hbGxhcmVhbW9kZWxiYXNlZGluY29tZWVzdGltYXRlc2VuZ2xhbmRhbmR3YWxlcy9maW5hbmNpYWx5ZWFyZW5kaW5nMjAxNF1bMF1cXG5cXG5bMF06IGh0dHBzOi8vd3d3Lm9ucy5nb3YudWsvcGVvcGxlcG9wdWxhdGlvbmFuZGNvbW11bml0eS9wZXJzb25hbGFuZGhvdXNlaG9sZGZpbmFuY2VzL2luY29tZWFuZHdlYWx0aC9hcnRpY2xlcy9zbWFsbGFyZWFtb2RlbGJhc2VkaW5jb21lZXN0aW1hdGVzZW5nbGFuZGFuZHdhbGVzL2ZpbmFuY2lhbHllYXJlbmRpbmcyMDE0XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAzIOKAkyBEZWNlbWJlciAyMDE2KipcXG5cXG4tIC0gLVxcblxcblRoZSBBbm51YWwgU3VydmV5IG9mIEhvdXJzIGFuZCBFYXJuaW5ncyAoQVNIRSkgaXMgYSBVSy13aWRlIHN1cnZleSB0aGF0IHByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGhvdXJseSwgd2Vla2x5IGFuZCBhbm51YWwgZWFybmluZ3MgYnkgZ2VuZGVyIGFuZCB3b3JrIHBhdHRlcm5zLCBhbmQgYXQgbmF0aW9uYWwgYW5kIHJlZ2lvbmFsIGxldmVsIGdlb2dyYXBoaWVzIG9uIGluZHVzdHJ5IGFuZCBvY2N1cGF0aW9uLCBpbmNsdWRpbmcgcHVibGljIHZlcnN1cyBwcml2YXRlIHNlY3RvciBwYXkgY29tcGFyaXNvbnMuIFRoZSBhbm51YWwgc2VyaWVzIGRhdGVzIGJhY2sgdG8gMjAwMiwgdGhvdWdoIHRoZXJlIGhhdmUgYmVlbiBzb21lIG1ldGhvZG9sb2dpY2FsIGNoYW5nZXMgb3ZlciB0aGlzIHRpbWUuIFRoZSBsYXRlc3QgZmlndXJlcyBhcmUgZm9yIDIwMTYgKHJlbGVhc2VkIE9jdG9iZXIgMjAxNikuIFRoZSBkYXRhIGlzIGdlbmVyYWxseSBhdmFpbGFibGUgYXQgbG9jYWwgYXV0aG9yaXR5IGxldmVsLCB0aG91Z2ggaW4gc29tZSBjYXNlcyBkdWUgdG8gc2FtcGxpbmcgaXNzdWVzIHRoZSBkYXRhIGNhbiBiZSBzdXBwcmVzc2VkIGZvciBwYXJ0aWN1bGFyIHZhcmlhYmxlcy4gRWFybmluZ3MgZGF0YSBpcyBub3QgYXZhaWxhYmxlIGF0IGFsbCBhdCBsb2NhbCBhdXRob3JpdHkgbGV2ZWwgYnkgaW5kdXN0cmlhbCBzZWN0b3Igb3Igb2NjdXBhdGlvbmFsIHR5cGVzLlRoZSBsYXRlc3Qgc2V0IG9mIGZpZ3VyZXMgc3VnZ2VzdCB0aGF0IHRoZSBhbm51YWwgYXZlcmFnZSB3ZWVrbHkgZWFybmluZ3MgZm9yIGZ1bGwgdGltZSB3b3JrZXJzIGxpdmluZyBpbiBXZXN0IFN1c3NleCBpcyDCozU1Ny4yLCBoaWdoZXIgdGhhbiB0aGUgbmF0aW9uYWwgYXZlcmFnZSwgYnV0IGxvd2VyIHRoYW4gdGhlIHJlZ2lvbmFsIGF2ZXJhZ2UuIFRoZSBoaWdoZXN0IGVhcm5lcnMgbGl2ZSBpbiBIb3JzaGFtIGFuZCBoYXZlIGF2ZXJhZ2Ugd2Vla2x5IGZ1bGwgdGltZSBlYXJuaW5ncyBvZiDCozYyMjsgdGhlIGxvd2VzdCBlYXJuZXJzIGxpdmUgaW4gQXJ1biB3aXRoIGNvbnNpZGVyYWJseSBsb3dlciBhdmVyYWdlIGxldmVscyBvZiBwYXkgYXQgwqM0NzYuMS5cXG5cXG5cIn0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJPdmVyIHRoZSBsYXN0IGZpdmUgeWVhcnMgcGF5IGxldmVscyBmb3IgV2VzdCBTdXNzZXggb3ZlcmFsbCBoYXZlIGluY3JlYXNlZCBieSA5LjMlIGNvbXBhcmVkIHdpdGggdGhlIGluY3JlYXNlIGluIEVuZ2xhbmQgYXQgNy45JSBhbmQgZm9yIHRoZSBTb3V0aCBFYXN0IHJlZ2lvbiBhdCA0LjklLiBIb3dldmVyIHRoZSB2YXJpYXRpb24gd2l0aGluIHRoZSBjb3VudHkgaXMgc2lnbmlmaWNhbnQg4oCTIEFkdXIgaGFzIHNlZW4gdGhlIGhpZ2hlc3QgaW5jcmVhc2UgYXQgb3ZlciAxNiUgYW5kIE1pZCBTdXNzZXggdGhlIGxvd2VzdCBpbmNyZWFzZSBhdCA0LjYlLiBXaGlsc3Qgb3ZlciB0aGUgbGFzdCB5ZWFyICgyMDE1LTIwMTYpIFdlc3QgU3Vzc2V4IHNhdyBhIGdyb3d0aCBpbiB3ZWVrbHkgZWFybmluZ3Mgb2YgMSUgKGNvbXBhcmVkIHdpdGggRW5nbGFuZCBvZiAyLjQlIGFuZCB0aGUgU291dGggRWFzdCBvZiAxLjIlKSBBZHVyLCBBcnVuLCBIb3JzaGFtIGFuZCBXb3J0aGluZyBoYXZlIHNlZW4gYSBmYWxsIGluIHJlc2lkZW50IGVhcm5pbmdzIGxldmVscy5cXG5cXG5cIn1dLFt7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8yQUFBREJCMC1EODkxLTRGQTQtQURBMy0zNjk3MkFBNUIyMzdcIn1dXX0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9GOTg1REEzOC05MEU4LTQxNUEtOTlBNy1GQTU3RDk2NjgwMzFcIn1dLFt7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8zNjg3ODBCQS03MDQyLTQ5OUQtOUVCMi0zNjNGODg0MEZCMzFcIn1dXX0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJDaGFuZ2UgaW4gd2Vla2x5IGVhcm5pbmdzIGZvciBmdWxsIHRpbWUgd29ya2VyczogR3Jvd3RoIGluIHRoZSBlYXJuaW5ncyBvZiBwZW9wbGUgd29ya2luZyBpbiBhbiBhcmVhICh3b3JrZXJzKSBoYXNu4oCZdCBiZWVuIHNvIGhpZ2ggYXMgZm9yIHRob3NlIHBlb3BsZSBsaXZpbmcgaW4gdGhvc2UgYXJlYXMgKHJlc2lkZW50cykuIEluIFdlc3QgU3Vzc2V4IHBlb3BsZSB3b3JraW5nIGluIHRoZSBjb3VudHkgb3ZlcmFsbCBoYXZlIGVuam95ZWQgYW4gaW5jcmVhc2Ugb2YgNCUgaW4gZWFybmluZ3MgbGV2ZWxzIG92ZXIgdGhlIGxhc3QgNSB5ZWFycywgY29tcGFyZWQgd2l0aCBhbiBpbmNyZWFzZSBpbiBvdmVyIDklIG9mIHRob3NlIHdvcmtlcnMgbGl2aW5nIGluIHRoZSBjb3VudHkuIE92ZXIgdGhlIGxhc3QgeWVhciwgMjAxNS0xNiBXZXN0IFN1c3NleCwgQXJ1biwgSG9yc2hhbSBhbmQgTWlkIFN1c3NleCBlYXJuaW5ncyBsZXZlbHMgb2Ygd29ya2VycyBpbiB0aGVzZSBhcmVhcyBoYXZlIGZhbGxlbiDigJMgbW9zdCBtYXJrZWQgaW4gV29ydGhpbmcuXFxuXFxuXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvREIyRTkzN0MtOUQ1QS00MTU1LTk5QzktQjlCRDQwMTYxREE5XCJ9XV19LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSBzb3VyY2Ugb2YgdGhlIGNvbXBsZXRlIGRhdGEgc2V0IOKAkyBBbm51YWwgU3VydmV5IG9mIEhvdXJzIGFuZCBFYXJuaW5ncyAyMDE2IGlzIGFjY2Vzc2VkOiBbaHR0cHM6Ly93d3cub25zLmdvdi51ay9lbXBsb3ltZW50YW5kbGFib3VybWFya2V0L3Blb3BsZWlud29yay9lYXJuaW5nc2FuZHdvcmtpbmdob3Vycy9idWxsZXRpbnMvYW5udWFsc3VydmV5b2Zob3Vyc2FuZGVhcm5pbmdzL3ByZXZpb3VzUmVsZWFzZXNdWzBdXFxuXFxuWzBdOiBodHRwczovL3d3dy5vbnMuZ292LnVrL2VtcGxveW1lbnRhbmRsYWJvdXJtYXJrZXQvcGVvcGxlaW53b3JrL2Vhcm5pbmdzYW5kd29ya2luZ2hvdXJzL2J1bGxldGlucy9hbm51YWxzdXJ2ZXlvZmhvdXJzYW5kZWFybmluZ3MvcHJldmlvdXNSZWxlYXNlc1wifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIChVcGRhdGVkIE9jdG9iZXIgMjAxNikqKlxcblxcbi0gLSAtXFxuXFxuVGhlc2UgZmlndXJlcyBhcmUgcmVsZWFzZWQgYW5udWFsbHkgZnJvbSB0aGUgQW5udWFsIFN1cnZleSBvZiBIb3VycyBhbmQgRWFybmluZ3MuIFRoZSAyMDE2IHByb3Zpc2lvbmFsIGVzdGltYXRlcyBmb3IgYXZlcmFnZSBlYXJuaW5ncyByZWxlYXNlZCBvbiB0aGUgMjZ0aCBPY3RvYmVyIHNob3cgdGhhdCB0aGUgZmlndXJlIGZvciBXZXN0IFN1c3NleCBpcyDCozU1Ny4yMCwgYW4gaW5jcmVhc2Ugb2YgMS4xJSBvbiB0aGUgMjAxNSBmaW5hbCBmaWd1cmUuXFxuXFxuRm9yIEF2ZXJhZ2UgZWFybmluZ3MgaW4gRW5nbGFuZCwgbWVkaWFuIGdyb3NzIHdlZWtseSBwYXkgb2YgZW1wbG95ZWVzIGJ5IHJlc2lkZW5jZSAocmVzaWRlbnQgYmFzZSksIHRoZSAyMDE2IGZpZ3VyZSBmb3IgRW5nbGFuZCB3YXMgwqM1NDQuNzAsIGEgcmlzZSBvZiAyLjQlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlciAyMDE2KipcXG5cXG4tIC0gLVxcblxcblRoZXNlIGZpZ3VyZXMgYXJlIHJlbGVhc2VkIGFubnVhbGx5IGZyb20gdGhlIEFubnVhbCBTdXJ2ZXkgb2YgSG91cnMgYW5kIEVhcm5pbmdzLiBUaGUgMjAxNiBwcm92aXNpb25hbCBlc3RpbWF0ZXMgZm9yIGF2ZXJhZ2UgZWFybmluZ3MgYXJlIGV4cGVjdGVkIHRvIGJlIHJlbGVhc2VkIG9uIHRoZSAyNnRoIE9jdG9iZXIuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAxIC0gSnVuZSAyMDE2KipcXG5cXG4tIC0gLVxcblxcbldoYXQgd2lsbCBoYXBwZW4gdG8gdGhlc2UgbWVhc3VyZXMsIGluIHJlc3BlY3Qgb2YgdGhlIG5hdGlvbmFsL3JlZ2lvbmFsL2xvY2FsIGVjb25vbXksIGdpdmVuIHRoZSBFVSByZWZlcmVuZHVtIHJlc3VsdCwgaXMgc3RpbGwgdG8gYmUgZGV0ZXJtaW5lZC4gVGhpcyBpcyBpbmNyZWFzaW5nIHllYXItb24teWVhci4gVGhpcyBmaWd1cmUgaXMgYWxzbyBhYm92ZSB0aGUgRW5nbGFuZCB0b3RhbCBidXQgaXMgYmVsb3cgU291dGgtRWFzdCwgYWx0aG91Z2ggdGhlIGdhcCBpcyBncmFkdWFsbHkgY2xvc2luZy4gVGhlIG5leHQgdXBkYXRlIHdpbGwgYmUgaW4gTm92ZW1iZXIvRGVjZW1iZXIgMjAxNi5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQgLSBNYXJjaCAyMDE2KipcXG5cXG4tIC0gLVxcblxcblRoZSBBbm51YWwgU3VydmV5IG9mIEhvdXJzIGFuZCBFYXJuaW5ncyAoQVNIRSkgaXMgYSBVSyB3aWRlIHN1cnZleSB0aGF0IHByb3ZpZGVzIGluZm9ybWF0aW9uIG9uIGhvdXJseSwgd2Vla2x5IGFuZCBhbm51YWwgZWFybmluZ3MgYnkgZ2VuZGVyIGFuZCB3b3JrIHBhdHRlcm5zLCBhbmQgYXQgbmF0aW9uYWwgYW5kIHJlZ2lvbmFsIGxldmVsIGdlb2dyYXBoaWVzIG9uIGluZHVzdHJ5IGFuZCBvY2N1cGF0aW9uLCBpbmNsdWRpbmcgcHVibGljIHZlcnN1cyBwcml2YXRlIHNlY3RvciBwYXkgY29tcGFyaXNvbnMuIFRoZSBhbm51YWwgc2VyaWVzIGRhdGVzIGJhY2sgdG8gMTk5NyBhbmQgdGhlIGxhdGVzdCBmaWd1cmVzIGFyZSBmb3IgMjAxNSAocmVsZWFzZWQgTm92ZW1iZXIgMjAxNSkuIFRoZSAyMDE2IGRhdGEgaXMgZXhwZWN0ZWQgdG8gYmUgcHVibGlzaGVkIGluIE5vdmVtYmVyIDIwMTYuIFRoZSBkYXRhIGlzIGdlbmVyYWxseSBhdmFpbGFibGUgYXQgbG9jYWwgYXV0aG9yaXR5IGxldmVsLCB0aG91Z2ggaW4gc29tZSBjYXNlcywgYmVjYXVzZSBvZiBzYW1wbGluZyBpc3N1ZXMgdGhlIGRhdGEgaXMgc29tZXRpbWVzIHN1cHByZXNzZWQgZm9yIHBhcnRpY3VsYXIgdmFyaWFibGVzIGFuZCBpcyBub3QgYXZhaWxhYmxlIGF0IGRpc3RyaWN0IGxldmVsIGJ5IGluZHVzdHJpYWwgc2VjdG9yIG9yIG9jY3VwYXRpb25hbCB0eXBlcy5cXG5cXG5UaGUgbGF0ZXN0IHNldCBvZiBmaWd1cmVzIHN1Z2dlc3QgdGhhdCB0aGUgYW5udWFsIGF2ZXJhZ2Ugd2Vla2x5IGVhcm5pbmdzIGZvciBmdWxsIHRpbWUgd29ya2VycyBsaXZpbmcgaW4gV2VzdCBTdXNzZXggaXMgwqM1NTIuNywgaGlnaGVyIHRoYW4gdGhlIG5hdGlvbmFsIGF2ZXJhZ2UsIGJ1dCBsb3dlciB0aGFuIHRoZSByZWdpb25hbCBhdmVyYWdlLiBUaGUgaGlnaGVzdCBlYXJuZXJzIGxpdmUgaW4gSG9yc2hhbSBhbmQgaGF2ZSBhdmVyYWdlIHdlZWtseSBmdWxsIHRpbWUgZWFybmluZ3Mgb2YgwqM2MjcuOSwgdGhlIGxvd2VzdCBlYXJuZXJzIGxpdmUgaW4gQXJ1biB3aXRoIGNvbnNpZGVyYWJseSBsb3dlciBhdmVyYWdlIGxldmVscyBvZiBwYXkgYXQgwqM0ODYuMi4gUGF5IGxldmVscyBoYXZlIGluY3JlYXNlZCBzdGVhZGlseSBvdmVyIHRpbWUsIG92ZXIgdGhlIHllYXIgMjAxNC0xNSBXZXN0IFN1c3NleCBoYXMgc2VlbiBhIDIuNCUgZ3Jvd3RoIGluIGF2ZXJhZ2Ugd2Vla2x5IGVhcm5pbmdzLCBoaWdoZXIgdGhhbiBuYXRpb25hbGx5IG9yIHJlZ2lvbmFsbHksIEFkdXIsIEFydW4gYW5kIENoaWNoZXN0ZXIgaGF2ZSBzZWVuIGhpZ2hlciBpbmNyZWFzZSBpbiBlYXJuaW5ncyB0aGFuIHRoZSBjb3VudHkgYXZlcmFnZS4gT3ZlciB0aGUgbG9uZ2VyIHRlcm0sIHNpbmNlIDIwMTAsIFdlc3QgU3Vzc2V4IGhhcyBzZWVuIGFuIGluY3JlYXNlIG9mIMKjNDcuOCBwZXIgd2Vlaywgb3IgOS41JSBncm93dGggaW4gZWFybmluZ3MgaGlnaGVyIHRoYW4gcmVnaW9uYWxseSAoNC45JSkgb3IgbmF0aW9uYWxseSAoNS4zJSksIHdpdGggQWR1ciBzZWVpbmcgdGhlIGhpZ2hlc3QgcGVyY2VudGFnZSBncm93dGggYXQgMjIuNiUgYW5kIENyYXdsZXkgdGhlIGxvd2VzdCBncm93dGggYXQgNC4xJS5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvOUIwRTVGNjMtOTBDQS00MEU4LTk5QjgtQzg1Q0EyMDFENTUxXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlNvdXJjZTogQW5udWFsIFN1cnZleSBvZiBIb3VycyBhbmQgRWFybmluZ3MsIDIwMTUgKE9OUy9ub21pcylcXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiSW4gMjAxNSB0aGUgYXZlcmFnZSBhbm51YWwgZ3Jvc3MgcGF5IGZvciByZXNpZGVudHMgaW4gV2VzdCBTdXNzZXggd2FzIMKjMzAsODUzLCBzbGlnaHRlciBoaWdoZXIgdGhhbiB0aGUgYXZlcmFnZSBmb3IgRW5nbGFuZCAowqMzMCwxNjUpIGJ1dCBtb3JlIHRoYW4gMTAlIGxvd2VyIHRoYW4gdGhlIHJlZ2lvbmFsIGF2ZXJhZ2UgKMKjMzMsMzgyKS4gT3ZlciB0aGUgbGFzdCBmaXZlIHllYXJzLCAyMDEwLTIwMTUgcmVzaWRlbnQgYmFzZWQgZWFybmluZ3MgaW4gV2VzdCBTdXNzZXggaW5jcmVhc2VkIGJ5IDkuMiUsbW9yZSB0aGFuIGRvdWJsZSB0aGF0IHNlZW4gaW4gdGhlIFNvdXRoIEVhc3QgcmVnaW9uICg0LjMlKSAuIEF2ZXJhZ2UgYW5udWFsIHdvcmtwbGFjZSBiYXNlZCBlYXJuaW5ncyBpbiBXZXN0IFN1c3NleCBhcmUgbG93ZXIgdGhhbiBmb3IgcmVzaWRlbnQgYmFzZWQgZWFybmluZ3MgYXQgwqMyNiw4MzEgbG93ZXIgdGhhbiB0aGUgbmF0aW9uYWwgYW5kIHJlZ2lvbmFsIGVhcm5pbmdzIGxldmVscyBwb3NzaWJseSBhbiBpbmRpY2F0aW9uIG9mIHRoZSBleHRlbnQgb2YgbG93ZXIgcGFpZCBqb2JzIGluIFdlc3QgU3Vzc2V4LiBXb3JrcGxhY2UgYmFzZWQgZWFybmluZ3MgaGF2ZSBpbmNyZWFzZWQgb3ZlciB0aGUgbGFzdCA1IHllYXJzIOKAkyAyMDEwIOKAkyAyMDE1IGJ5IDQuNiUuXFxuXFxuVGhlcmUgaXMgc2lnbmlmaWNhbnQgdmFyaWF0aW9uIHRocm91Z2hvdXQgdGhlIENvdW50eSBpbiBlYXJuaW5nIGxldmVscy4gSW4gMjAxNSBIb3JzaGFtIHJlc2lkZW50cyBoYXZlIHRoZSBoaWdoZXN0IGF2ZXJhZ2Ugd2Vla2x5IGVhcm5pbmdzIGxldmVscyBvZiDCozYyNy45IGFuZCBBcnVuIHRoZSBsb3dlc3QgYXQgwqM0ODYuMi4gQ2VydGFpbmx5IGVhcm5pbmdzIGFyZSBsb3dlciBpbiB0aGUgQ29hc3RhbCBEaXN0cmljdHMgLCBhbmQgaGlnaGVyIGluIENyYXdsZXksIEhvcnNoYW0gYW5kIE1pZCBTdXNzZXgg4oCTIHBvc3NpYmx5IGEgcmVmbGVjdGlvbiBvZiBhY2Nlc3MgdG8gaGlnaGVyIHBhaWQgZW1wbG95bWVudCBvcHBvcnR1bml0aWVzIGluIFN1cnJleSBhbmQvb3IgTG9uZG9uIGZyb20gdGhlIHRocmVlIEdhdHdpY2sgRGlhbW9uZCBkaXN0cmljdHMuXFxuXFxuSW4gYWxsIGRpc3RyaWN0cyBhbmQgYm9yb3VnaHMgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIENyYXdsZXkgdGhlIGFubnVhbCBhdmVyYWdlIHdlZWtseSBlYXJuaW5ncyBvZiByZXNpZGVudHMgaXMgaGlnaGVyIHRoYW4gaXQgaXMgZm9yIHBlb3BsZSB3b3JraW5nIGluIHRoZSBhcmVhLiBHcm93dGggaW4gdGhlIGVhcm5pbmdzIG9mIHdvcmtlcnMgaGFzbuKAmXQgYmVlbiBzbyBoaWdoIGFzIGZvciByZXNpZGVudHMsIG92ZXJhbGwgcGVvcGxlIHdvcmtpbmcgaW4gV2VzdCBTdXNzZXggaGF2ZSBlbmpveWVkIGFuIGluY3JlYXNlIG9mIDYuMCUgb2Ygd2Vla2x5IGVhcm5pbmcgcmF0ZXMgZnJvbSAyMDEwLTIwMTQsIHRob3VnaCBvdmVyIHRoZSB5ZWFyIDIwMTMtMjAxNCBXZXN0IFN1c3NleCwgQWR1ciwgQXJ1biBDaGljaGVzdGVyIGFuZCBXb3J0aGluZyBlYXJuaW5ncyBsZXZlbHMgb2Ygd29ya2VycyBpbiB0aGVzZSBhcmVhcyBoYXZlIGZhbGxlbi5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvRkU1OTk1RkMtNjI1Ri00OTBDLUI3QjYtODlFNUZFNjdDOTc2XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlNvdXJjZTogQW5udWFsIFN1cnZleSBIb3VycyBhbmQgRWFybmluZ3MsIDIwMTUgKE9OUy9ub21pcylcXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiTGluayB0byBlYXJuaW5ncyBkYXRhIGh0dHA6Ly93d3cub25zLmdvdi51ay9vbnMvcmVsL2FzaGUvYW5udWFsLXN1cnZleS1vZi1ob3Vycy1hbmQtZWFybmluZ3MvaW5kZXguaHRtbFxcblxcblwifV0sXCJ1c2VfY3VzdG9tX3RpdGxlXCI6dHJ1ZSxcImN1c3RvbV90aXRsZVwiOlwiSW1wcm92aW5nIGdyb3NzIHdlZWtseSBwYXkgZm9yIGZ1bGwgdGltZSB3b3JrZXJzIHJlc2lkZW50IGluIFdlc3QgU3Vzc2V4IHRvIGJlIGF0IG9yIGFib3ZlIMKjNTIyLjcwXCIsXCJpY29uXCI6XCJjcm9zc2hhaXJcIixcInVzZV9jdXN0b21fc3VidGl0bGVcIjp0cnVlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCIgR3Jvc3Mgd2Vla2x5IHBheSBmb3IgZnVsbCB0aW1lIHdvcmtlcnMgcmVzaWRlbnQgaW4gV2VzdCBTdXNzZXhcIixcInRpdGxlX2ltYWdlXCI6XCIvYXBpL2Fzc2V0cy8wQkZBMDA2QS04Mjc3LTQ4MEEtOUE3NC0wQzAyMjJERDg3OUFcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAwMi0wMS0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiJQb3VuZHMiLCJ0YXJnZXQiOjUyMi43LCJ0YXJnZXRfdHlwZSI6ImFic29sdXRlIiwidGFyZ2V0X2RlbHRhIjowLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsImJhc2VsaW5lIjo1MzMuMiwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiJtYm1jLWN4Z3UifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPiJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMDJ9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwiaW5jcmVhc2VcIixcInRhcmdldF90eXBlXCI6XCJhYnNvbHV0ZVwiLFwibWFpbnRhaW5fdHlwZVwiOlwiPlwifSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE1fX0sXCJzdGFydFwiOlwiMjAxNS0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNS0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9fSxcIm5hbWVcIjpcInRoZSBhdmVyYWdlIGVhcm5pbmdzIGluIFdlc3QgU3Vzc2V4XCIsXCJ1c2VfcHJvZ3Jlc3Nfb3ZlcnJpZGVcIjpmYWxzZSxcInByb2dyZXNzX292ZXJyaWRlXCI6XCJiYWRcIn0ifSwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMDk6MTM6NDAuNzU3WiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDA5OjEzOjQwLjc1N1oiLCJ0YXJnZXRfdG9sZXJhbmNlIjo0LCJpZCI6ImRyenMtY3d1dCJ9LCJyZWxhdGVkX21lYXN1cmVzIjpbXSwiYmFzZV9kYXNoYm9hcmQiOiI1NzRyLWg1bmMiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNy0yM1QwOToxNDowMC44MDZaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMDk6MTM6NDAuODAyWiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDA5OjE0OjAwLjgwNloiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn0seyJpZCI6Ijl5ZzUtNHN5MiIsIm5hbWUiOiJQYXltZW50IHRvIFNtYWxsICYgTWljcm8gQnVzaW5lc3NlcyIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwiaWNvblwiOlwiY3Jvc3NoYWlyXCIsXCJuYXJyYXRpdmVcIjpbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcbkR1cmluZyBRMyAoT2N0b2JlciB0byBEZWNlbWJlciAyMDE3KSBhIHRvdGFsIG9mIDM2LDExNCBpbnZvaWNlcyB3aXRoIDIwIGRheSBwYXltZW50IHRlcm1zIHdlcmUgcmVjZWl2ZWQsIGFuZCA5NCUgd2VyZSBwYWlkIG9uIHRpbWUuIEFsdGhvdWdoIGFuIGltcHJvdmVtZW50IGNvbXBhcmVkIHRvIHByZXZpb3VzIG1vbnRoLCBpdCBpcyB1bmxpa2VseSB0aGF0IHdlIHdpbGwgYWNoaWV2ZSA5NiUgYnkgeWVhci1lbmQuXFxuXFxuXCJ9XSxcInVzZV9jdXN0b21fc3VidGl0bGVcIjp0cnVlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJQYXltZW50IHRvIHNtYWxsIGFuZCBtaWNybyBidXNpbmVzc2VzLiBXU0NDIHdpbGwgYWltIHRvIHBheSA5NiUgb2YgaW52b2ljZXMgdG8gc21hbGwgYW5kIG1pY3JvIGJ1c2luZXNzZXMgdGhhdCBhcmUgZG9pbmcgYnVzaW5lc3Mgd2l0aCB1cyB3aXRoaW4gMjAgd29ya2luZyBkYXlzXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTctMDQtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiJSIsInRhcmdldCI6MTAwLCJ0YXJnZXRfdHlwZSI6InJlbGF0aXZlIiwidGFyZ2V0X2RlbHRhIjowLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsImJhc2VsaW5lIjo5NiwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiIzcWpkLTZlNW0ifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPiJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjMsXCJ5ZWFyXCI6MjAxN30sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJtYWludGFpblwiLFwibWFpbnRhaW5fdHlwZVwiOlwiPlwifSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNn0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE2fX0sXCJzdGFydFwiOlwiMjAxNi0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNi0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9fSxcIm5hbWVcIjpcIkludm9pY2VzIHBhaWQgd2l0aGluIDIwIHdvcmtpbmcgZGF5c1wifSJ9LCJjcmVhdGVkX2F0IjoiMjAxOC0wNy0yM1QwOToxMjozMC4zMTRaIiwidmVyc2lvbiI6IjIwMTgtMDctMjNUMDk6MTI6MzAuMzE0WiIsInRhcmdldF90b2xlcmFuY2UiOjUsImlkIjoiMzhkNy1ycXpkIn0sInJlbGF0ZWRfbWVhc3VyZXMiOltdLCJiYXNlX2Rhc2hib2FyZCI6IjU3NHItaDVuYyIsInVwZGF0ZWRfYXQiOiIyMDE4LTA3LTIzVDA5OjEyOjM2LjcwMVoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wNy0yM1QwOToxMjozMC4zNjJaIiwidmVyc2lvbiI6IjIwMTgtMDctMjNUMDk6MTI6MzYuNzAxWiIsImNyZWF0ZWRfYnkiOiI3OTdpLTZyOWcifSx7ImlkIjoiNzZ0dS1teWt1IiwibmFtZSI6IkJ1c2luZXNzIFN1cHBvcnQgYW5kIEdyYW50cyIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwiaWNvblwiOlwidGV4dFwiLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAzIC0gRGVjZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5CdXNpbmVzc2VzIHN1cHBvcnRlZCBieSBXU0NDLWxlZCBhbmQgc3VwcG9ydGVkIGJ1c2luZXNzIHN1cHBvcnQgaW5pdGlhdGl2ZXMg4oCTIHRoaXMgZ29hbCBpcyBtZWFzdXJlZCBieSB0cmFja2luZyB0aGUgbnVtYmVyIG9mIGJ1c2luZXNzZXMgc3VwcG9ydGVkIGJ5IFdTQ0MgbGVkIGFuZCBzdXBwb3J0ZWQgYnVzaW5lc3Mgc3VwcG9ydCBpbml0aWF0aXZlcy4gV2UgYWltIHRvIGluY3JlYXNlIHRoZSBudW1iZXIgb2YgYnVzaW5lc3NlcyBzdXBwb3J0ZWQgdG8gMzAwIGJ1c2luZXNzZXMgYnkgTWFyY2ggMjAxNy5cXG5cXG5UaGUgbnVtYmVycyBvZiBidXNpbmVzc2VzIHN1cHBvcnRlZCB0aHJvdWdoIFdTQ0Mgb3IgV1NDQyBzdXBwb3J0ZWQgaW5pdGlhdGl2ZXMgYXJvdW5kIGJ1c2luZXNzIHN1cHBvcnRcXG5cXG4qKkhlYWx0aCBhbmQgTGlmZSoqICoqU2NpZW5jZXMqKlxcblxcbkR1cmluZyBRMyBXU0NDJ3MgY29tbWl0bWVudCB0byBzY2llbmNlLCB0ZWNobm9sb2d5LCBlbmdpbmVlcmluZyAmIG1hdGhlbWF0aWMgKFNURU0pIGhhcyBjb250aW51ZWQgdGhyb3VnaCBzcG9uc29yc2hpcCBhbmQgb2ZmaWNlciB0aW1lLCBwcmVwYXJhdGlvbiBpcyBpbiBmdWxsIHN3aW5nIGZvciAyMDE44oCZcyBTVEVNIGV2ZW50cy4gVXBjb21pbmcgU1RFTSBldmVudHMgY2FuIGJlIGZvdW5kIG9uIHRoZVtTVEVNIFN1c3NleCB3ZWJzaXRlXVswXS4gQWN0aXZpdGllcyBhcmUgcGxhbm5lZCBmb3IgYm90aCBwcmltYXJ5IGFnZSBwdXBpbHMgYW5kIHNlY29uZGFyeSBzY2hvb2wgc3R1ZGVudHMuIFBhcnRuZXJzaGlwcyBhY3Jvc3MgV2VzdCBTdXNzZXggYXJlIHdvcmtpbmcgaGFyZCB0byBlbnN1cmUgdGhhdCB5b3VuZyBwZW9wbGUgZGV2ZWxvcCB0aGUgc2tpbGxzIG5lZWRlZCBieSBpbmR1c3RyeS5cXG5cXG5JbiBRMSBhbiBFUkRGIHNlY3RvciBzdXBwb3J0IGNhbGwgY29uc2lzdGluZyBvZiBsaWZlIHNjaWVuY2UsIGRpZ2l0YWwsIGFuZCBhZHZhbmNlZCBtYW51ZmFjdHVyaW5nIOKAmGxvdHPigJkgd2FzIHJlbGVhc2VkLiBUaGUgcHJveGltaXR5IG9mIHRoZSBjYWxs4oCZcyByZWxlYXNlIHRvIHRoZSBzdW1tZXIgaG9saWRheXMgbWVhbnQgdGhhdCBubyBiaWRzIHdlcmUgc3VibWl0dGVkIGFuZCB0aGUgY2FsbCBoYXMgbm93IGJlZW4gcmUgcmVsZWFzZWQgaW4gUTMuIFdTQ0MsIHRocm91Z2ggdGhlIEVVIFByb2plY3QgUmVzb3VyY2VzIFByb2plY3QgaGFzIGJlZW4gYWN0aXZlbHkgZW5nYWdpbmcgcG90ZW50aWFsIHBhcnRuZXJzIHRvIGdlbmVyYXRlIGludGVyZXN0IGFuZCBpbmNyZWFzZSB0aGUgbGlrZWxpaG9vZCBvZiBhIHN0cm9uZyBjb25zb3J0aXVtIGZvcm1pbmcgdG8gbGV2ZXJhZ2UgdGhlIGF2YWlsYWJsZSBmdW5kcyB0byBzdXBwb3J0IGJ1c2luZXNzZXMgaW4gdGhlIGFyZWEuIEEgbmF0aW9uYWwgb3JnYW5pc2F0aW9uIGhhcyBiZWVuIGlkZW50aWZpZWQgYXMgYSBwb3RlbnRpYWwgbGVhZCBwYXJ0bmVyIGFuZCBwb3NpdGl2ZSBjb252ZXJzYXRpb25zIGFyZSB1bmRlcndheSB0byBzaGFwZSB0aGUgc3VibWlzc2lvbi4gSWYgc3VjY2Vzc2Z1bCwgYSB0b3RhbCBwcm9qZWN0IHZhbHVlIG9mIHVwIHRvIMKjMTBtIGNvdWxkIGJlIGRlbGl2ZXJlZCBhY3Jvc3MgdGhlIENvYXN0IHRvIENhcGl0YWwgUmVnaW9uLlxcblxcbkR1cmluZyB0aGUgYXV0dW1uIHRoZSBEZXBhcnRtZW50IGZvciBCdXNpbmVzcywgRW5lcmd5IGFuZCBJbmR1c3RyaWFsIFN0cmF0ZWd5IHJlbGVhc2VkIHRoZSBzZWNvbmQgd2F2ZSBvZiBzY2llbmNlIGFuZCBpbm5vdmF0aW9uIHJlcG9ydHMuVGhlIHJlcG9ydHMgYXJlIEdvdmVybm1lbnQgc3BvbnNvcmVkIGF1ZGl0cyBkZXNpZ25lZCB0byBtYXAgYXNzZXRzIGFuZCBzaG93Y2FzZSByZWdpb25hbCBleGNlbGxlbmNlLiBUaGUgY291bnR5IG9mIFdlc3QgU3Vzc2V4IGlzIGluY29ycG9yYXRlZCBpbnRvIGFuIGF1ZGl0IGNhbGxlZCDigJhJbm5vdmF0aW9uIFNvdXRo4oCZLCBhIHJlZ2lvbiB3aGljaCBzdHJldGNoZXMgZnJvbSBEb3JzZXQgaW4gdGhlIHdlc3QsYWNyb3NzIHRvIEtlbnQgaW4gdGhlIGVhc3QsIGFuZCB1cCB0byBSZWFkaW5nLiBXU0NDIHByb3ZpZGVkIHNwb25zb3JzaGlwIGFuZCBoYWQgYW4gYWN0aXZlIHJvbGUgYXMgYSBjb25zb3J0aXVtIG1lbWJlciBpbiB0aGUgYXVkaXQuIFRoZSByZXBvcnQgZGVtb25zdHJhdGVzIHRoZSByZWdpb27igJlzIGV4Y2VsbGVuY2UgaW4gNSDigJhkaWdpdGFsIGVuYWJsaW5nIHRlY2hub2xvZ2llc+KAmWFjcm9zcyBmb3VyIHNlY3RvcnM6IGluY2x1ZGluZyBDb25uZWN0ZWQgRGlnaXRhbCwgTWFyaW5lIGFuZCBNYXJpdGltZSwgQmlvIHNjaWVuY2UgYW5kIEFkdmFuY2VkIEVuZ2luZWVyaW5nLiBJdCBmb2N1c3NlcyBvbiB0aGUgcmVnaW9u4oCZcyBoaWdoIGdyb3d0aCxoaWdoIHZhbHVlIGFuZCBhIGhpZ2hseSBzdWNjZXNzZnVsIGtub3dsZWRnZS1iYXNlZCByZWdpb25hbCBlY29ub215IGFuZCBpdHMgb3V0c3RhbmRpbmcgcG90ZW50aWFsIGZvciBmdXJ0aGVyIGlubm92YXRpb24gYW5kIGdyb3d0aC4gVGhlIHJlcG9ydCBjYW4gYmUgYWNjZXNzZWQgaGVyZTpcXG5cXG5wYWdlIFtodHRwczovL3d3dy5lbnRlcnByaXNlbTMub3JnLnVrL2lubm92YXRpb24tc291dGgtc2lhXVsxXVxcblxcbioqQm9nbm9yIFJlZ2lzIENyZWF0aXZlIERpZ2l0YWwgSHViKipcXG5cXG5UaGVyZSB3YXMgbm8gZXZlbnQgaGVsZCBvdmVyIHRoZSBsYXN0IHF1YXJ0ZXIgaG93ZXZlciBjb250YWN0IHdpdGggdGhlIGNyZWF0aXZlIGRpZ2l0YWwgc2VjdG9yIHRocm91Z2ggb3VyIHdlYnNpdGUgYW5kIHNvY2lhbCBtZWRpYSBwcmVzZW5jZSBoYXMgYmVlbiBtYWludGFpbmVkLiBJbiBRMywgd2UgaGFkIDE4NiBlbmdhZ2VtZW50cyBvbiBUd2l0dGVyIGZyb20gdGhlIGNvbW11bml0eSwgYW5kIHR3byBjb21wYW5pZXMgcG9zdGVkIHRoZWlyIGNvbnRlbnQgb24gb3VyIEZhY2Vib29rIGNvbW11bml0eSBwYWdlIHRvIHNoYXJlIHdpdGggdGhlIG90aGVyIGNvbW11bml0eSBtZW1iZXJzLiBUaGVyZSBoYXMgYmVlbiBlbmdhZ2VtZW50IHdpdGggc2l4IGJ1c2luZXNzZXMgaW4gcmVsYXRpb24gdG8gdGhlIHVwY29taW5nIHByb2N1cmVtZW50IGZvciBhIEh1YiBvcGVyYXRvci5cXG5cXG5BcyBiZWZvcmUsIHdlIGhhdmUgYSBjb250YWN0IGRhdGFiYXNlIG9mIGFyb3VuZCAyMDAgYnVzaW5lc3NlcyByZWNlaXZpbmcgcmVndWxhciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgSHViIGNvbW11bml0eSBhbmQgZXZlbnRzIGV0Yy5cXG5cXG4qKkV4cGVyaWVuY2UgV2VzdCBTdXNzZXgqKlxcblxcblRoZSBFeHBlcmllbmNlIFdlc3QgU3Vzc2V4IDIwMTcgbWFya2V0aW5nIGNhbXBhaWduIGhhcyBub3cgY29uY2x1ZGVkLCBhbmQgdGhlIHdlYnNpdGUgbm93IGZlYXR1cmVzIGFyb3VuZCAyMzYgYnVzaW5lc3NlcywgYW4gaW5jcmVhc2Ugb2YgMTUgYnVzaW5lc3NlcyBmcm9tIE9jdG9iZXIgMjAxNy4gQW5hbHlzaXMgb2YgdGhlIDIwMTcgY2FtcGFpZ24gaXMgY3VycmVudGx5IHVuZGVyd2F5IGFuZCBmZWVkYmFjayBpcyBiZWluZyBzb3VnaHQgZnJvbSBmZWF0dXJlZCBidXNpbmVzc2VzIG9uY2UgYWdhaW4uIFRoZSBjYW1wYWlnbiBpcyBjb250aW51aW5nIGluIDIwMTggYW5kIHdpbGwgYmUgbGVkIGJ5IFdlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsLHdvcmtpbmcgd2l0aCBwYXJ0bmVycyBmcm9tIHRoZSBEaXN0cmljdCBhbmQgQm9yb3VnaHMgYW5kIHRoZSBTb3V0aCBEb3ducyBOYXRpb25hbCBQYXJrLlxcblxcbioqTEVBREVSKipcXG5cXG5UaGUgTEVBREVSIHRvdGFscyBmb3IgY3VycmVudCBwcm9ncmFtbWUgYXJlOlxcblxcbkV4cHJlc3Npb25zIG9mIEludGVyZXN0IHJlY2VpdmVkIGFuZCBwcm9jZXNzZWQgPSAxMTdcXG5cXG5HcmFudCBhcHBsaWNhdGlvbnMgYXBwcm92ZWQgPSAzNCBwcm9qZWN0cyBUb3RhbCBncmFudCBhcHByb3ZlZCA9wqMgMSwxMjIsMDg3XFxuXFxuQXNzb2NpYXRlZCBtYXRjaCBmdW5kaW5nID0gwqMyLjJtXFxuXFxuTmV3IGpvYnMgdGhhdCB3aWxsIGJlIGNyZWF0ZWQgYnkgYXBwcm92ZWQgcHJvamVjdHMgPSAzOCBGVEVzXFxuXFxuQWRkaXRpb25hbCBvdmVybmlnaHQgc3RheXMgZm9yZWNhc3QgZm9yIG5leHQgMyB5ZWFycyA9IDYsOTA3XFxuXFxuTkIgLSB0aGUgZmlndXJlcyBhcmUgZm9yIHRoZSBwcm9ncmFtbWUgYXMgYSB3aG9sZSBub3QgdGhlIGxhc3QgcXVhcnRlclxcblxcbioqVGFzdGUgV2VzdCBTdXNzZXgqKlxcblxcbldlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsIGlzIHByb2dyZXNzaW5nIGEgVGFzdGUgV2VzdCBTdXNzZXggLSBicmluZ2luZyBwcm9kdWNlcnMgYW5kIGJ1eWVycyB0b2dldGhlciBpbml0aWF0aXZlLiBUaGUgbG9jYWwgZm9vZCBhbmQgZHJpbmsgc2VjdG9yIGlzIHZlcnkgaW1wb3J0YW50IHRvIHRoZSBlY29ub215IG9mIHRoZSBDb3VudHksIGFuZCBwcm9kdWNlcnMgd2lsbCBiZSBzdXBwb3J0ZWQgdG8gYWNjZXNzIG5ldyBtYXJrZXRzIGFuZCBidXllcnMgb2YgbG9jYWwgcHJvZHVjZS4gQSBzYW1wbGUgb2YgbG9jYWwgZm9vZCBhbmQgZHJpbmsgcHJvZHVjZXJzIHdlcmUgY29uc3VsdGVkIG9uIGRldmVsb3BtZW50IHN1cHBvcnQgdG8gZ3JvdyB0aGVpciBidXNpbmVzc2VzIHRocm91Z2ggb2ZmZXJpbmcgcHJvZHVjdHMgdG8gbmV3IGJ1eWVycywgYW5kIGJ5IGJ1aWxkaW5nIGxvbmcgdGVybSByZWxhdGlvbnNoaXBzIHdpdGggYnV5ZXJzLiBUaGUgY29uc3VsdGF0aW9uIGhhcyBzaGFwZWQgYSB0cmFpbmluZyBwcm9ncmFtbWUgZm9yIHByb2R1Y2VycyB0YWtpbmcgcGxhY2UgaW4gSmFudWFyeSAmIEZlYnJ1YXJ5LCBhbmQgYSAnTWVldCB0aGUgQnV5ZXInIEV2ZW50IHRoYXQgd2lsbCBicmluZyBwcm9kdWNlcnMgYW5kIGJ1eWVycyB0b2dldGhlciBpbiBGZWJydWFyeS5cXG5cXG5bMF06IGh0dHA6Ly93d3cuc3RlbXN1c3NleC5jby51ay9cXG5bMV06IGh0dHBzOi8vd3d3LmVudGVycHJpc2VtMy5vcmcudWsvaW5ub3ZhdGlvbi1zb3V0aC1zaWFcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipMYXRlc3QgdXBkYXRlIC0gT2N0b2JlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcbioqV2VzdCBTdXNzZXggSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzIENsdXN0ZXIqKlxcblxcblRoZSBsYXRlc3QgY2x1c3RlciBkaXJlY3RvcnkgYW5kIGNvbXBhbnkgbWFwIGhhdmUgbm93IGJlZW4gcmVsZWFzZWQgb25saW5lIGFuZCBjYW4gYmUgZm91bmQgb24gdGhlIFdTSExDIHdlYnNpdGUuIFRoZSBkaXJlY3RvcnkgY29uc2lzdHMgb2YgYSBzZXJpZXMgb2YgcHJvZmlsZXMgd2hpY2ggcHJvdmlkZSBhbiBpbnRlcmVzdGluZyBpbnNpZ2h0IGludG8gdGhlIGFjdGl2aXRpZXMgb2Ygb3ZlciAxNDAgY29tcGFuaWVzIGluIHRoZSBjbHVzdGVyLlxcblxcbkR1cmluZyBRMiB0aGUgY291bnR5IGNvdW5jaWwgcGFydG5lcmVkIHdpdGggQ29nZW50IFNraWxscywgdGhlIFVLIHN0cmF0ZWdpYyBza2lsbHMgYm9keSBmb3IgdGhlIHNjaWVuY2UgaW5kdXN0cmllcywgdG8gaG9sZCBhbiBpbmZvcm1hdGl2ZSBhcHByZW50aWNlc2hpcCBsZXZ5IHdlYmluYXIuIDI1IHBlb3BsZSBhY2Nlc3NlZCB0aGUgbGl2ZSB3ZWJpbmFyIHdoaWNoIHdhcyByZWNvcmRlZCBhbmQgcGxhY2VkIG9ubGluZSBhcyBhIHNvdXJjZSB0b29sIGZvciB0aG9zZSB3aG8gd2VyZSB1bmFibGUgdG8gcGFydGljaXBhdGUgaW4gdGhlIGxpdmUgc3RyZWFtaW5nLiBCdXNpbmVzc2VzIHdpc2hpbmcgdG8gbGVhcm4gYWJvdXQgdGhlIHJlY2VudCByZWZvcm1zIGFuZCB0YWtlIGFkdmFudGFnZSBvZiB0aGUgY3VycmVudCA5MDoxMCBnb3Zlcm5tZW50IGFwcHJlbnRpY2VzaGlwIGZ1bmRpbmcgbW9kZWwgY2FuIGFjY2VzcyB0aGUgd2ViaW5hciBmb3IgZnJlZTpcXG5cXG5baHR0cHM6Ly9yZWdpc3Rlci5nb3Rvd2ViaW5hci5jb20vcmVnaXN0ZXIvOTQ0OTY4MTA3MjY0NDI3NTRdWzBdLlxcblxcbkR1cmluZyBRMiB0aGUgcmVzdWx0cyBmcm9tIHRoZSBDbHVzdGVyIFNraWxscyBhbmQgQnVzaW5lc3MgU3VwcG9ydCBTdXJ2ZXkgd2VyZSByZWNlaXZlZCB3aGljaCB3aWxsIGFzc2lzdCBpbiB1bmRlcnN0YW5kaW5nIHRoZSBuZWVkcyBvZiB0aGUgY2x1c3Rlci4gVGhlIEV4ZWN1dGl2ZSBTdW1tYXJ5IHdpbGwgc2hvcnRseSBiZSByZWxlYXNlZC4gV29yayB3aXRoIHRob3NlIGNvbXBhbmllcyB3aG8sIGluIHRoZSBzdXJ2ZXksIHJlcXVlc3RlZCB0YWlsb3JlZCBzdXBwb3J0LCB3aWxsIGJlZ2luIGluIHRoZSBuZWFyIGZ1dHVyZS4gSW4gYWRkaXRpb24gdG8gdGhlc2UgYWN0aXZpdGllcywgY2x1c3RlciBlbmdhZ2VtZW50IGhhcyBjb250aW51ZWQgd2hpY2ggaW5jbHVkZXMsIHRocm91Z2ggbmV3c2xldHRlcnMgZXRjLiByZWd1bGFybHkgdXBkYXRpbmcgb3ZlciAzNjAgc3Rha2Vob2xkZXJzIG9uIGxpZmUgc2NpZW5jZSBhbmQgU1RFTSBhY3Rpdml0aWVzIGluIHRoZSBsb2NhbCByZWdpb24sIG5hdGlvbmFsIG9wcG9ydHVuaXRpZXMsIGV2ZW50cywgYW5kIGZ1bmRpbmcgb3Bwb3J0dW5pdGllcy5cXG5cXG4qKkxFQURFUioqXFxuXFxuVGhlIExFQURFUiBwcm9ncmFtbWUsIGxhdW5jaGVkIGluIE5vdmVtYmVyIDIwMTUgaXMgYSBncmFudCBmdW5kaW5nIHByb2dyYW1tZSB0aGF0IHN1cHBvcnRzIHRoZSBncm93dGggYW5kIGRldmVsb3BtZW50IG9mIHJ1cmFsIGJ1c2luZXNzZXMgYW5kIGlzIHBhcnQgb2YgdGhlIFJ1cmFsIERldmVsb3BtZW50IHByb2dyYW1tZSBmb3IgRW5nbGFuZCB3aGljaCBhaW1zIHRvIGltcHJvdmUgdGhlIGNvbXBldGl0aXZlbmVzcyBvZiBmYXJtaW5nIGFuZCBmb3Jlc3RyeSwgc3VwcG9ydGluZyBhIGRpdmVyc2UgYW5kIHN1Y2Nlc3NmdWwgcnVyYWwgZWNvbm9teSBhbmQgaGVscGluZyB0byBkZXZlbG9wIHZpYnJhbnQgYW5kIHRocml2aW5nIHJ1cmFsIGNvbW11bml0aWVzLlxcblxcblRvIGRhdGU6XFxuXFxuKiBFeHByZXNzaW9ucyBvZiBJbnRlcmVzdCByZWNlaXZlZCBhbmQgcHJvY2Vzc2VkID0gOTdcXG4qIEdyYW50IGFwcGxpY2F0aW9ucyBhcHByb3ZlZCA9IDI5IHByb2plY3RzXFxuKiBUb3RhbCBncmFudCBhcHByb3ZlZCA9IMKjODQxLDcwMVxcbiogQXNzb2NpYXRlZCBtYXRjaCBmdW5kaW5nID0gwqMxLjY4bVxcbiogTmV3IGpvYnMgdGhhdCB3aWxsIGJlIGNyZWF0ZWQgYnkgcHJvamVjdHMgPSAzNS41IEZURXNcXG4qIEFkZGl0aW9uYWwgb3Zlcm5pZ2h0IHN0YXlzIGZvcmVjYXN0IGZvciBuZXh0IDMgeWVhcnMgPSA2LDkwN1xcblxcbioqVGFzdGUgV2VzdCBTdXNzZXgg4oCTIEVudGVycHJpc2UgUHJvbW90aW9uKipcXG5cXG5Xb3JrIGlzIHVuZGVyd2F5IGluIHByZXBhcmF0aW9uIGZvciBBIE1lZXQgdGhlIEJ1eWVyIGV2ZW50IHRvIGJlIGhlbGQgaW4gU3ByaW5nIDIwMTggd2l0aCB0aGUgcHVycG9zZSBvZiBpbmNyZWFzaW5nIHRoZSBvcHBvcnR1bml0aWVzIGZvciBXZXN0IFN1c3NleCBmb29kIGFuZCBkcmluayBwcm9kdWNlcnMgdG8gYWNjZXNzIHBvdGVudGlhbCBwdXJjaGFzZXJzLiBQcmlvciB0byB0aGUgZXZlbnQsIHByb2R1Y2VycyB3aWxsIGdldCBhY2Nlc3MgdG8gdHJhaW5pbmcgYW5kIGJ1c2luZXNzIHN1cHBvcnQgdG8gYWxsb3cgdGhlbSB0byBtYWtlIHRoZSBtb3N0IG9mIHRoZSBldmVudC4gSW4gdGVybXMgb2YgcHJvZ3Jlc3MgY29uc3VsdGF0aW9uIHdpdGggcHJvZ3JhbW1lIHBhcnRpY2lwYW50cyBoYXMgYmVlbiB1bmRlcnRha2VuLCB3aGljaCB3aWxsIGluZm9ybSB0cmFpbmluZyByZXF1aXJlbWVudHMuIEFuIG91dGxpbmUgZGVzaWduIG9mIHRyYWluaW5nLCBicmFuZGluZyBhbmQgZXZlbnQgc2NvcGUgaXMgYmVpbmcgZGV2ZWxvcGVkLiBBIENvbW11bmljYXRpb25zIFByb2dyYW1tZSBpcyB1bmRlcndheSBhbmQgdGhlcmUgaGFzIGJlZW4gYSBoaWdoIGxldmVsIG9mIGludGVyZXN0IGluIHBhcnRpY2lwYXRpbmcgaW4gdGhlIGV2ZW50IGZyb20gZm9vZCBhbmQgZHJpbmsgcHJvZHVjZXJzLiBEZXRhaWxzIG9uIHRoZSB0cmFpbmluZyBhbmQgdGhlIGV2ZW50IGl0c2VsZiB3aWxsIGJlIGF2YWlsYWJsZSBhdCB0aGUgZW5kIG9mIHRoZSBuZXh0IHF1YXJ0ZXIuXFxuXFxuKipFeHBlcmllbmNlIFdlc3QgU3Vzc2V4KipcXG5cXG5UaGUgKipFeHBlcmllbmNlIFdlc3QgU3Vzc2V4KiogdG91cmlzbSBjYW1wYWlnbiBsYXVuY2hlZCBpbiBNYXkgMjAxNywgYW5kIG5vdyBmZWF0dXJlcyBhcm91bmQgMjIxIGJ1c2luZXNzZXMsIGFuIGluY3JlYXNlIG9mIDEwMyBmcm9tIDIwMTYuIFByZXZpb3VzbHkgYnJhbmRlZCBhcyBXZXN0IFN1c3NleCBXZWVrZW5kcywgRXhwZXJpZW5jZSBXZXN0IFN1c3NleCBzaG93IGNhc2VzIHRoZSBuZXcgdGhlbWVzIG9mIGFjdGl2ZSBkYXlzLCBuZXcgZXhwZXJpZW5jZXMsIGJhY2stdG8tbmF0dXJlIGZhbWlseSBvdXRpbmdzIGFuZCBjdWx0dXJhbCBlbmNvdW50ZXJzIGFjcm9zcyB0aGUgY291bnR5LiBUaGUgd2Vic2l0ZSBhbmQgc29jaWFsIG1lZGlhIHBsYXRmb3JtcyBpbmNsdWRlIGZpcnN0IHBlcnNvbiBzdG9yaWVzLCB3ZWVrZW5kIGl0aW5lcmFyaWVzLCBldmVudHMgYXMgd2VsbCBhcyBncmVhdCBwbGFjZXMgdG8gZWF0LCBkcmluayBhbmQgc3RvcCBvZmYuIFRoZSBjYW1wYWlnbiBpcyBpbnRlbmRlZCB0byBpbnNwaXJlIHZpc2l0b3JzIGFuZCByZXNpZGVudHMgYW5kIHRvIGJlbmVmaXQgbG9jYWwgYnVzaW5lc3NlcyB0aHJvdWdoIGZlYXR1cmluZyB0aGVtIGluIHRoZSBjYW1wYWlnbi4gQnVzaW5lc3NlcyBoYXZlIGFsc28gYmVlbiBzdXBwb3J0ZWQgdGhyb3VnaCBzaWducG9zdGluZyB0byBncmFudCBmdW5kaW5nIGFuZCBjb21tZXJjaWFsIHNwYWNlIG9wcG9ydHVuaXRpZXMsIGFuZCB0aHJvdWdoIGV4cG9zdXJlIGZyb20gZmVhdHVyZXMgaW4gVGFzdGUgV2VzdCBTdXNzZXggbWFnYXppbmUuIFRoZSBjYW1wYWlnbiBpcyBsZWQgYnkgV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwsIHdvcmtpbmcgd2l0aCBwYXJ0bmVycyBpbmNsdWRpbmcgdGhlIENvYXN0YWwgV2VzdCBTdXNzZXggVG91cmlzbSBHcm91cCBhbmQgdGhlIFNvdXRoIERvd25zIE5hdGlvbmFsIFBhcmsuXFxuXFxuKipUaGVyZSBhcmUgbm93IGFyb3VuZCAyMjAgYnVzaW5lc3NlcyBmZWF0dXJlZCBvbiB0aGUgRXhwZXJpZW5jZSBXZXN0IFN1c3NleCB3ZWJzaXRlLCBuZWFybHkgZG91YmxlIHRoYXQgcmVwb3J0ZWQgaW4gRGVjZW1iZXIgMjAxNi4qKlxcblxcbioqQm9nbm9yIFJlZ2lzIENyZWF0aXZlIERpZ2l0YWwgSHViKipcXG5cXG5UaGUgKipCb2dub3IgUmVnaXMgQ3JlYXRpdmUgRGlnaXRhbCBIdWIqKiBwcm9qZWN0IGFpbXMgdG8gZGV2ZWxvcCB0aGUgY3JlYXRpdmUgYW5kIGRpZ2l0YWwgc2VjdG9ycyBpbiBCb2dub3IgUmVnaXMgYW5kIGNvYXN0YWwgV2VzdCBTdXNzZXgsIHRvIGNyZWF0ZSBoaWdoIHZhbHVlIGpvYnMgaW4gaGlnaCBncm93dGggc2VjdG9ycy4gVGhlIHByb2plY3QgaW52b2x2ZXMgdGhlIGVzdGFibGlzaG1lbnQgb2YgYSBzaGFyZWQgYW5kIGNvbGxhYm9yYXRpdmUgd29ya3NwYWNlIHdpdGhpbiBCb2dub3IgUmVnaXMgcmFpbHdheSBzdGF0aW9uLCBhbmQgaXMgZHVlIHRvIGJlIGRlbGl2ZXJlZCBpbiBKdW5lIDIwMTguIEFzIHBhcnQgb2YgdGhlIHNlY3RvciBlbmdhZ2VtZW50IHdvcmsgaW4gc3VwcG9ydCBvZiB0aGUgQm9nbm9yIFJlZ2lzIENyZWF0aXZlIERpZ2l0YWwgSHViIHByb2plY3QsIHR3byBldmVudHMgd2VyZSBkZWxpdmVyZWQgaW4gUTIgYnkgV2lyZWQgU3Vzc2V4LlxcblxcblRoZSBmaXJzdCB3YXMgYSB3b3Jrc2hvcCBvbiAyN3RoIEp1bHkgZm9yIHByaW1hcnkgc2Nob29sLWFnZWQgY2hpbGRyZW4gaW4gZGlnaXRhbCBhbmltYXRpb24gYW5kIHdhcyBoZWxkIGF0IHRoZSBCYXNlIFNrYXRlcGFyayBpbiBCb2dub3IgUmVnaXMuIFRoZSBzZXNzaW9uIHdhcyBhdHRlbmRlZCBieSAyNCBjaGlsZHJlbiBmcm9tIDExIGxvY2FsIHByaW1hcnkgc2Nob29scywgYW5kIHdhcyBhIHBpbG90IGZvciBvdXRyZWFjaCBkaWdpdGFsIHNraWxscyBhY3Rpdml0aWVzIHRoYXQgbWF5IGJlIGNhcnJpZWQgb3V0IGJ5IHRoZSBIdWIgaW4gdGhlIGxvY2FsIGNvbW11bml0eS5cXG5cXG5UaGUgc2Vjb25kIGV2ZW50IHdhcyBoZWxkIG9uIDI3dGggU2VwdGVtYmVyIGF0IFRoZSBQaWVyIGluIEJvZ25vciBSZWdpcyBhbmQgd2FzIGEgbmV0d29ya2luZyBldmVudCBmb3IgdGhlIEh1YiBidXNpbmVzcyBjb21tdW5pdHkuIFRoZXJlIHdlcmUgZml2ZSBpbnZpdGVkIHNwZWFrZXJzIHdobyBzaGFyZWQgdGhlaXIgZXhwZXJpZW5jZXMgd2l0aCB0aGUgYXVkaWVuY2Ugb2YgMjYgYnVzaW5lc3MgcGVvcGxlLlxcblxcblRoZXJlIGFyZSBjdXJyZW50bHkgMjAyIGNvbnRhY3RzIG9uIHRoZSBDcmVhdGl2ZSBEaWdpdGFsIEh1YiBjb250YWN0IGRhdGFiYXNlLCB3aG8gcmVjZWl2ZSByZWd1bGFyIGVtYWlsIHVwZGF0ZXMuXFxuXFxuWzBdOiBodHRwczovL3JlZ2lzdGVyLmdvdG93ZWJpbmFyLmNvbS9yZWdpc3Rlci85NDQ5NjgxMDcyNjQ0Mjc1NFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG4qKkJ1c2luZXNzZXMgc3VwcG9ydGVkIGJ5IFdTQ0MtbGVkIGFuZCBzdXBwb3J0ZWQgYnVzaW5lc3Mgc3VwcG9ydCBpbml0aWF0aXZlcyoqIOKAkyB0aGlzIGdvYWwgaXMgbWVhc3VyZWQgYnkgdHJhY2tpbmcgdGhlIG51bWJlciBvZiBidXNpbmVzc2VzIHN1cHBvcnRlZCBieSBXU0NDIGxlZCBhbmQgc3VwcG9ydGVkIGJ1c2luZXNzIHN1cHBvcnQgaW5pdGlhdGl2ZXMuXFxuXFxuT3ZlciB0aGUgbGFzdCBxdWFydGVyIE92ZXIgMTQwIGhlYWx0aCBhbmQgbGlmZSBzY2llbmNlIHJlbGF0ZWQgY29tcGFuaWVzIGhhdmUgbm93IGJlZW4gaWRlbnRpZmllZCBpbiB0aGUgY291bnR5LiBXZXN0IFN1c3NleCBDb3VudHkgQ291bmNpbCBoYXMgY29udGludWVkIHRvIGZhY2lsaXRhdGUgaW50ZXJhY3Rpb25zIGJldHdlZW4gV2VzdCBTdXNzZXggSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzIENsdXN0ZXIgY29tcGFuaWVzLCB1cGRhdGluZyB0aGVtIG9uIHNlY3RvciBmdW5kaW5nLCBvcHBvcnR1bml0aWVzIGFuZCBhY3Rpdml0aWVzLlxcblxcblRoaXMgcXVhcnRlciBoYXMgc2VlbiB0aGUgZGVsaXZlcnkgb2Ygc2V2ZXJhbCBTVEVNIChzY2llbmNlLCB0ZWNobm9sb2d5LCBlbmdpbmVlcmluZyBhbmQgbWF0aGVtYXRpY3MpIGFjdGl2aXRpZXMgYWltZWQgYXQgaW5zcGlyaW5nIHRoZSBuZXh0IGdlbmVyYXRpb24gdG8gc3R1ZHkgYW5kIGJ1aWxkIGNhcmVlcnMsIGFuZCB0byBkZXZlbG9wIHRoZSB0b29scyBhbmQgdGVjaG5pcXVlcyB0aGF0IHdpbGwgZHJpdmUgdGhlIGVjb25vbXkgb2YgdGhlIGZ1dHVyZS5NaWQgU3Vzc2V4IFNjaWVuY2UgV2VlaywgYW4gaW5pdGlhdGl2ZSBhaW1lZCBhdCBwcmltYXJ5IGFnZWQgc3R1ZGVudHMgaW4gdGhlIE1pZCBTdXNzZXggYXJlYSB0b29rIHBsYWNlIGluIE1pZC1KdW5lLiBDcmF3bGV5IFNURU0gZmVzdCwgbm93IGluIGl0cyBzaXh0aCB5ZWFyIHJhbiBmcm9tIE1heS1KdW5lLiBDcmF3bGV5IFNURU0gZmVzdCBpbmNsdWRlZCBpbi1zY2hvb2wgYWN0aXZpdGllcywgY29tcGFueSBzaXRlIHZpc2l0cywgYW5kIGEgY29tbXVuaXR5IGRheSBpbiBDcmF3bGV5LiBJdCBjdWxtaW5hdGVkIHdpdGggb3ZlciA5LDAwMCBzdHVkZW50cywgNDAgbG9jYWwgU1RFTSBlbXBsb3llcnMgYW5kIGEgbnVtYmVyIG9mIG5hdGlvbmFsIG9yZ2FuaXNhdGlvbnMgcGFydGljaXBhdGluZyBpbiB0aGUgQmlnIEJhbmcgRmFpciBTb3V0aCBFYXN0IGluIEFyZGluZ2x5LlxcblxcbkFuIEVSREYgc2VjdG9yIHN1cHBvcnQgY2FsbCBjb250YWluaW5nIGEgbGlmZSBzY2llbmNlcyBlbGVtZW50IGhhcyBiZWVuIHJlbGVhc2VkIGZvciB0aGUgQ29hc3QgdG8gQ2FwaXRhbCByZWdpb24uIFdTQ0MsIHRocm91Z2ggdGhlIEVVIFByb2plY3QgUmVzb3VyY2VzIFByb2plY3QgaGFzIGJlZW4gYWN0aXZlbHkgZW5nYWdpbmcgcG90ZW50aWFsIHBhcnRuZXJzIHRvIGdlbmVyYXRlIGludGVyZXN0IGFuZCBpbmNyZWFzZSB0aGUgbGlrZWxpaG9vZCBvZiBhIHN0cm9uZyBjb25zb3J0aXVtIGZvcm1pbmcgdG8gbGV2ZXJhZ2UgdGhlIGF2YWlsYWJsZSBmdW5kcyB0byBzdXBwb3J0IGJ1c2luZXNzZXMgaW4gdGhlIGFyZWEuXFxuXFxuSW4gcmVsYXRpb24gdG8gdGhlIENyZWF0aXZlIERpZ2l0YWwgSHViIHNlY3RvciB3b3JrIGFyb3VuZCBCb2dub3IgUmVnaXMgYSBidXNpbmVzcyBicmVha2Zhc3Qgd2FzIGhlbGQgYXQgVGhlIFBpZXIgQm9nbm9yIFJlZ2lzIGluIE1heSBieSBXaXJlZCBTdXNzZXguIFBlZXIgdG8gcGVlciBhZHZpY2UgYW5kIGlkZWFzIHNlc3Npb25zIGhlbGQgaW4gZm91ciBncm91cHMgYWRkcmVzc2VkIGlzc3VlcyBpbmNsdWRpbmcgbWFya2V0aW5nIGFuZCBmaW5hbmNlcy4gMjUgYnVzaW5lc3NlcyB0b29rIHBhcnQuIEFuZCBpbiBKdW5lIDIwMTcgYW4g4oCYSWRlYXMgQ2xpbmlj4oCZIHdhcyBoZWxkIGF0IHRoZSBVbml2ZXJzaXR5IG9mIENoaWNoZXN0ZXIgQm9nbm9yIFJlZ2lzIGNhbXB1cyB3aGljaCBpbmNsdWRlZCBhbiBpbnRlbnNpdmUgcHJvYmxlbS1zb2x2aW5nIHNlc3Npb24gd2l0aCBsb2NhbCBjb21tdW5pdHkgYnVzaW5lc3Mgb3JnYW5pc2VycywgaW5jbHVkaW5nIHNvY2lhbCBlbnRlcnByaXNlcy4gU2V2ZW4gYnVzaW5lc3NlcyBhdHRlbmRlZCBhbmQgYWR2aWNlIHdhcyBwcm92aWRlZCBieSBhIEJ1c2luZXNzIE5hdmlnYXRvciBhbmQgdGhlIFVuaXZlcnNpdHnigJlzIGluY3ViYXRvciBtYW5hZ2VyLlxcblxcblVuZGVyIHRoZSBMRUFERVIgcHJvZ3JhbW1lIGFzIGF0IDMwIEp1bmUgb3VyIHR3byBMRUFERVIgTG9jYWwgQWN0aW9uIEdyb3VwcyBoYXZlIGFwcHJvdmVkIGdyYW50cyB0b3RhbGxpbmcgwqM2MTQsNjM4IGZvciAyMSBwcm9qZWN0cy5cXG5cXG5BdCBsZWFzdCAxNyBidXNpbmVzc2VzIGhhdmUgYmVlbiBkaXJlY3RseSBzdXBwb3J0ZWQuXFxuXFxuVG90YWwgdmFsdWUgb2YgdGhlIHByb2plY3RzIChpbmNsdWRpbmcgTEVBREVSIGdyYW50KSBpcyDCozEuOW0uXFxuXFxuVGhlIHByb2plY3RzIHdpbGwgY3JlYXRlIDM0IEZURSBqb2JzIGFuZCA0LDgxNCBhZGRpdGlvbmFsIG92ZXJuaWdodCBzdGF5cy5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQgLSBNYXJjaCAyMDE3KipcXG5cXG4tIC0gLVxcblxcbioqQnVzaW5lc3NlcyBzdXBwb3J0ZWQgYnkgV1NDQy1sZWQgYW5kIHN1cHBvcnRlZCBidXNpbmVzcyBzdXBwb3J0IGluaXRpYXRpdmVzKiog4oCTIHRoaXMgZ29hbCBpcyBtZWFzdXJlZCBieSB0cmFja2luZyB0aGUgbnVtYmVyIG9mIGJ1c2luZXNzZXMgc3VwcG9ydGVkIGJ5IFdTQ0MgbGVkIGFuZCBzdXBwb3J0ZWQgYnVzaW5lc3Mgc3VwcG9ydCBpbml0aWF0aXZlcy4gV2UgYWltIHRvIGluY3JlYXNlIHRoZSBudW1iZXIgb2ZidXNpbmVzc2VzIHN1cHBvcnRlZCB0byAzMDAgYnVzaW5lc3NlcyBieSBNYXJjaCAyMDE3LlxcblxcbioqMzUxKyBidXNpbmVzc2VzIGFzIFF1YXJ0ZXIgNCDigJNNYXJjaCAyMDE3KipcXG5cXG5UaGUgbnVtYmVycyBvZiBidXNpbmVzc2VzIHN1cHBvcnRlZCB0aHJvdWdoIFdTQ0Mgb3IgV1NDQyBzdXBwb3J0ZWQgaW5pdGlhdGl2ZXMgYXJvdW5kIGJ1c2luZXNzIHN1cHBvcnQ6XFxuXFxuT3ZlciB0aGUgbGFzdCBxdWFydGVyIHRoZSB1cGRhdGluZyBvZiBvdXIgZXhpc3RpbmcgKipXZXN0IFN1c3NleCBIZWFsdGggYW5kIExpZmUgU2NpZW5jZXMgQ2x1c3RlcioqIGNvbXBhbmllcyBvbiBmdW5kaW5nIG9wcG9ydHVuaXRpZXMsIGFuZCBoZWFsdGggYW5kIGxpZmUgc2NpZW5jZSBhY3Rpdml0aWVzIHRha2luZyBwbGFjZSBpbiB0aGUgcmVnaW9uIGhhcyBjb250aW51ZWQuIEluIGFkZGl0aW9uIHRoZXJlIGhhcyBiZWVuIHNvbWUgZW5nYWdlbWVudCB3aXRoIG5ldyBjbHVzdGVyIGNvbXBhbmllcywgYXMgd2VsbCBhcyBrbm93bGVkZ2UgdHJhbnNmZXIgbmV0d29ya3MgYW5kIG5hdGlvbmFsIHNlY3RvciBvcmdhbmlzYXRpb25zLiBUaGVyZSBoYXMgYmVlbiBhY3RpdmUgaW52b2x2ZW1lbnQgaW4gdGhlIElubm92YXRpb24gU291dGggU2NpZW5jZSBhbmQgSW5ub3ZhdGlvbiBBdWRpdCwgYSBHb3Zlcm5tZW50IGJhY2tlZCBpbml0aWF0aXZlIHRoYXQgaXMgY3VycmVudGx5IHRha2luZyBwbGFjZSBhbmQgd2hpY2ggYWltcyB0byBhc3Nlc3MgdGhlIFNvdXRoIG9mIEVuZ2xhbmTigJlzIHN0cmVuZ3RocyBpbiBkaWdpdGFsIGVuYWJsaW5nIHRlY2hub2xvZ2llcywgd2l0aCBwYXJ0aWN1bGFyIGFwcGxpY2F0aW9uIHRvIHRoZSBiaW8gc2NpZW5jZSwgYWR2YW5jZWQgZW5naW5lZXJpbmcsIG1hcmluZSBhbmQgbWFyaXRpbWUgYW5kIGNvbm5lY3RlZCBkaWdpdGFsIHNlY3RvcnMuIFdTQ0MgaGFzIHBhcnRpY2lwYXRlZCBpbiB0aGUgYXVkaXQgYW5kIGVuY291cmFnZWQgV1NITFNDIG1lbWJlcnMgdG8gYXR0ZW5kIGEgYmlvc2NpZW5jZSB0aGVtZWQgd29ya3Nob3Agd2hpY2ggdG9vayBwbGFjZSBpbiBDcmF3bGV5IGluIE1hcmNoLCBhbmQgZm9yIG1lbWJlcnMgdG8gY29udHJpYnV0ZSBldmlkZW5jZSB0byBzdXBwb3J0IHRoZSBzdHVkeS4gRmluZGluZ3MgZnJvbSB0aGUgYnVzaW5lc3Mgc3VydmV5IHVuZGVydGFrZW4gdG8gdW5kZXJzdGFuZCB0aGUgc2tpbGxzIGFuZCBidXNpbmVzcyBzdXBwb3J0IG5lZWRzIG9mIHRoZSBjbHVzdGVyIGlzIGV4cGVjdGVkIGxhdGVyIG9uIGluIHRoZSBTcHJpbmcuXFxuXFxuSW4gdGhlIGxhc3QgcXVhcnRlciwgQ29hc3RhbCBTVEVNZmVzdCBoYXMgbGF1bmNoZWQsIEdTSyBzaXRlIHZpc2l0cyBoYXZlIGNvbW1lbmNlZCBhbmQgdGhlIEJpZyBCYW5nQEJ1dGxpbnMgdG9vayBwbGFjZSBvbiBNYXJjaCAxNHRoIGR1cmluZyBOYXRpb25hbCBTY2llbmNlIFdlZWsgd2hpY2ggaW5jbHVkZWQgYSBudW1iZXIgb2YgYWN0aXZpdGllcyBwcm92aWRlZCBieSBsb2NhbCBhbmQgd2lkZXIgYWZpZWxkIGNvbXBhbmllcyBhbmQgb3JnYW5pc2F0aW9ucyBkZXNpZ25lZCB0byBpbnNwaXJlIGtleSBzdGFnZSAzICYgNCBzdHVkZW50cyB0byBjb250aW51ZSBzdHVkeWluZyBTVEVNIHN1YmplY3RzLCBhbmQgZGlzY292ZXIgY2FyZWVyIG9wcG9ydHVuaXRpZXMgYW5kIGlkZW50aWZ5IHBhdGh3YXlzIHRvIHJlYWNoIHRoZWlyIGFzcGlyYXRpb25zLiBPdmVyIDc1MCBwdXBpbHMsIGFuZCB0ZWFjaGVycyBhdHRlbmRlZCB0aGUgZXZlbnQuIC4gTWlkLVN1c3NleCBTY2llbmNlIFdlZWsgYW5kIENyYXdsZXkgU1RFTWZlc3QgaGF2ZSBib3RoIGxhdW5jaGVkIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBhY3Rpdml0aWVzIGFuZCBCaWcgQmFuZyBldmVudHMgc2NoZWR1bGVkIHRvIHRha2UgcGxhY2UgbGF0ZXIgb24gaW4gdGhlIHllYXIuXFxuXFxuSW4gdGhlIGxhc3QgcXVhcnRlciwgdGhlIEJvZ25vciBSZWdpcyBDcmVhdGl2ZSBEaWdpdGFsIEh1YiBwcm9qZWN0IGhhcyBlbmdhZ2VkIHdpdGggY3JlYXRpdmUgYW5kIGRpZ2l0YWwgYnVzaW5lc3NlcyBpbiBhbmQgYXJvdW5kIEJvZ25vciBSZWdpcyB0aHJvdWdoIG91ciBXaXJlZCBTdXNzZXggc2VjdG9yIGVuZ2FnZW1lbnQgY29udHJhY3QuIEFuIGV2ZW50IHdhcyBoZWxkIG9uIDI0dGggSmFudWFyeSBhdCB0aGUgVW5pdmVyc2l0eSBvZiBDaGljaGVzdGVy4oCZcyBCb2dub3IgUmVnaXMgY2FtcHVzLCBhbmQgd2FzIGF0dGVuZGVkIGJ5IDQ4IGJ1c2luZXNzZXMuIFRoZSBmb2N1cyBvZiB0aGUgZXZlbnQgd2FzIGFzcGlyYXRpb25zLCBnb2FscyBhbmQgcmVzb2x1dGlvbnMgZm9yIDIwMTcsIGFuZCBpbmNsdWRlZCBhIHBhbmVsIGRpc2N1c3Npb24gd2l0aCBsb2NhbCBjcmVhdGl2ZSBhbmQgZGlnaXRhbCBidXNpbmVzcyBsZWFkZXJzLlxcblxcblRoaXMgd2FzIHRoZSBsYXN0IG9mIGZpdmUgYnVzaW5lc3MgZW5nYWdlbWVudCBldmVudHMgb3JnYW5pc2VkIG9uIG91ciBiZWhhbGYgYnkgV2lyZWQgU3Vzc2V4IGluIDE2LzE3LiBUaGUgY3VtdWxhdGl2ZSB0b3RhbCBvZiBidXNpbmVzc2VzIGF0dGVuZGluZyB0aGVzZSBldmVudHMgaW4gdGhlIHJlcG9ydGluZyB5ZWFyIHdhcyAxNDAsIHdpdGggYXZlcmFnZSBhdHRlbmRhbmNlIGF0IHRoZSBldmVudHMgaW5jcmVhc2luZyBmcm9tIDIwIGF0dGVuZGVlcyBpbiBBcHJpbCAyMDE2IHRvIDQ4IGluIEphbnVhcnkgMjAxNy5cXG5cXG5JbiBhZGRpdGlvbiwgYXJvdW5kIDI0MCBidXNpbmVzc2VzIGFyZSB1cGRhdGVkIG1vbnRobHkgYW5kIGVuZ2FnZWQgdGhyb3VnaCB0aGUgcHJvamVjdCBjb250YWN0IGRhdGFiYXNlLCBhbmQgc29jaWFsIG1lZGlhIGFjY291bnRzLlxcblxcblVuZGVyIHRoZSBjdXJyZW50IExFQURFUiBwcm9ncmFtbWUgYSB0b3RhbCBvZiA1NyBvdXRsaW5lIGFwcGxpY2F0aW9ucyBoYXZlIGJlZW4gcmVjZWl2ZWQgdG8gZGF0ZSwgd2l0aCwgc28gZmFyLCBhIHRvdGFsIG9mwqM0MjEsMjQ3IGJlaW5nIGNvbW1pdHRlZCB0byAxNCBhcHByb3ZlZCBwcm9qZWN0cy4gVGhlc2UgcHJvamVjdHMgd2lsbCBjcmVhdGUgYXBwcm94LiAyNiBGVEUgam9icyBhbmQgYW4gZXh0cmEgNCw4MTQgb3Zlcm5pZ2h0IHN0YXlzLiBUaGUgdG90YWwgbWF0Y2ggZnVuZGluZyBpcyDCozEsMDUyLDkzNywgc28gdG90YWwgdmFsdWUgb2YgdGhlIDE0IHByb2plY3RzID3CozEsNDc0LDE4NC4gQSBmdXJ0aGVyIDIxIHByb2plY3RzIGhhdmUgYmVlbiBpbnZpdGVkIHRvIGZ1bGwgYXBwbGljYXRpb24g4oCTIHJlcXVlc3RpbmcgZ3JhbnQgb2YgYXBwcm94LsKjNzUwLDAwMC4gQWxsIExFQURFUiBmdW5kaW5nIG11c3QgYmUgY29tbWl0dGVkIGJlZm9yZSB0aGUgVUsgbGVhdmVzIHRoZSBFVS5cXG5cXG4qKkJ1c2luZXNzIEZpbmFuY2UgUHJvamVjdCoqXFxuXFxuVGhlIGNhbGwgZm9yIGFwcGxpY2F0aW9ucyBoYXMgbm93IGNsb3NlZC4gT3ZlcmFsbCAyMDEgZW5xdWlyaWVzIGFuZCAxMDcgZXhwcmVzc2lvbnMgb2YgaW50ZXJlc3Qgd2VyZSByZWNlaXZlZCBmcm9tIGNvbXBhbmllcyBpbnRlcmVzdGVkIGluIGFwcGx5aW5nIGZvciBhIEJ1c2luZXNzIEdyb3d0aCBHcmFudC4gVGhpcyBjb252ZXJ0ZWQgdG8gMzYgZnVsbCBhcHBsaWNhdGlvbnMgYW5kIHJlc3VsdGVkIGluIDIzIGNvbXBhbmllcyByZWNlaXZpbmcgYW4gYXBwcm92YWwgZnJvbSB0aGUgR3Jvd3RoIEdyYW50IHBhbmVscyBpbiAyMDE2LzE3IHdoaWNoLGlmIGZ1bGx5IHNwZW50LCB3aWxsIHRvdGFsIMKjOTYwLDIxMC5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE2KipcXG5cXG4tIC0gLVxcblxcblRoZSBudW1iZXJzIG9mIGJ1c2luZXNzZXMgc3VwcG9ydGVkIHRocm91Z2ggV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgKFdTQ0MpIG9yIFdTQ0Mgc3VwcG9ydGVkIGluaXRpYXRpdmVzIGFyb3VuZCBidXNpbmVzcyBzdXBwb3J0OlxcblxcbiogT3ZlciAxMjAgaGVhbHRoIGFuZCBsaWZlIHNjaWVuY2VzIHJlbGF0ZWQgY29tcGFuaWVzIGhhdmUgYmVlbiBzdXBwb3J0ZWQgdGhyb3VnaCB0aGUgSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzIGNsdXN0ZXIgbmV0d29yay4gQ29tcGFuaWVzIHdpdGhpbiB0aGUgY2x1c3RlciBhcmUgcmVndWxhcmx5IHVwZGF0ZWQgYWJvdXQgdGhlIHNlY3RvciBpbml0aWF0aXZlcyBXU0NDIGlzIHByb2dyZXNzaW5nLCByZWdpb25hbCBldmVudHMsIGZ1bmRpbmcgb3Bwb3J0dW5pdGllcywgbG9jYWwgcmVzZWFyY2gsIGFuZCBTVEVNIG9wcG9ydHVuaXRpZXMuIFdvcmsgaGFzIGNvbW1lbmNlZCB0byB1bmRlcnN0YW5kIHRoZSBza2lsbHMgYW5kIGJ1c2luZXNzIHN1cHBvcnQgbmVlZHMgb2YgdGhlIGNsdXN0ZXIgYW5kIGEgYnVzaW5lc3Mgc3VydmV5IGhhcyBiZWVuIGNvbW1pc3Npb25lZCBhbmQgcmVsZWFzZWQuIEFsbCBjbHVzdGVyIGNvbXBhbmllcyBoYXZlIGJlZW4gZ2l2ZW4gdGhlIG9wcG9ydHVuaXR5IHRvIGNvbnRyaWJ1dGUgdG8gdGhlIHdvcmsgYnkgaGlnaGxpZ2h0aW5nIGFueSBjaGFsbGVuZ2VzIHRoYXQgdGhleSBmYWNlLiBPbiBOb3ZlbWJlciA0dGggV1NITFNDIHBhcnRuZXJlZCB3aXRoIENvZ2VudCBTa2lsbHMsIHRoZSBzdHJhdGVnaWMgc2tpbGxzIGJvZHkgZm9yIHRoZSBzY2llbmNlIGluZHVzdHJpZXMgdG8gZGVsaXZlciBhIFNraWxscyBSZWZvcm0gYW5kIEFwcHJlbnRpY2VzaGlwIExldnkgV29ya3Nob3AuIDYgYnVzaW5lc3NlcyBhdHRlbmRlZCB0aGUgd29ya3Nob3AgYXMgZGlkIGxvY2FsIGF1dGhvcml0eSBhbmQgdW5pdmVyc2l0eSBwYXJ0bmVycy4gT24gRGVjZW1iZXIgNnRoIFdTSExTQyBwYXJ0bmVyZWQgd2l0aCBPQk4sIGEgaGVhbHRoIGFuZCBsaWZlIHNjaWVuY2VzIG1lbWJlcnNoaXAgb3JnYW5pc2F0aW9uIHRvIGRlbGl2ZXIgYW4gZXZlbnQgYXQgdGhlIEhvbGlkYXkgSW5uLCBHYXR3aWNrLSBXb3J0aCBvbiDigJhQdWJsaWMgTm9uLSBEaWx1dGFibGUgRnVuZGluZyBhbmQgRXhwb3J0IFN1cHBvcnTigJkuIFJhaWwgc3RyaWtlcyBhbmQgYWR2ZXJzZSB0cmFmZmljIGNvbmRpdGlvbnMgaGFkIGEgbmVnYXRpdmUgZWZmZWN0IG9uIG51bWJlcnMgcmVzdWx0aW5nIGluIDE0IGJ1c2luZXNzZXMgYW5kIDE3IGJ1c2luZXNzIGZvY3VzZWQgb3JnYW5pc2F0aW9ucyBhdHRlbmRpbmcgKHVuaXZlcnNpdGllcywgdGhlIExFUCwgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgZXRjLikuIFRoZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSB0d28gZXZlbnRzIGhhcyBiZWVuIHBsYWNlZCBvbmxpbmUgb24gdGhlIFdTSExTQyBzZWN0aW9uIG9mIHRoZSBCdXNpbmVzcyBXZXN0IFN1c3NleCB3ZWJzaXRlIHRvIHNlcnZlIGFzIGFuIGFkZGl0aW9uYWwgcmVzb3VyY2UgZm9yIHRob3NlIHdobyB3ZXJlIHVuYWJsZSB0byBhdHRlbmQgdGhlIGV2ZW50cy5cXG5cXG4qIFRoZSBCZWF1dGlmdWwgT3V0ZG9vcnMvV2VzdCBTdXNzZXggV2Vla2VuZHMgY2FtcGFpZ24gcmFuIGZvciBpdHMgc2Vjb25kIHllYXIgZnJvbSBNYXktT2N0b2JlciAyMDE2LCBhbmQgdGhlIHdlYnNpdGUgbm93IGZlYXR1cmVzIGFyb3VuZCAxMTggYnVzaW5lc3NlcyBhcyBwbGFjZXMgdG8gc3RvcCBvZmYgYW5kIHN0YXkgb24gcm91dGUgaW4gV2VzdCBTdXNzZXgsIGFuIGluY3JlYXNlIG9mIDQ4IG9uIHRoYXQgcHJldmlvdXNseSByZXBvcnRlZC4gRHVyaW5nIHRoZSBjYW1wYWlnbiwgYnVzaW5lc3NlcyByZWNlaXZlZCBpbiB0b3RhbCBvdmVyIDIsODAwIG91dGJvdW5kIGNsaWNrcyBmcm9tIHRoZSBjYW1wYWlnbiB3ZWJzaXRlLCBzb21lIG9mIHdoaWNoIHdlcmUgZGlyZWN0IGJvb2tpbmdzLiBMb2NhbCBidXNpbmVzc2VzIHdlcmUgYWxzbyBzdXBwb3J0ZWQsIHRocm91Z2ggc2lnbnBvc3RpbmcsIHRvIGdyYW50IGZ1bmRpbmcgYW5kIGRpZ2l0YWwgbWVkaWEgdHJhaW5pbmcsIGFuZCB0aHJvdWdoIGV4cG9zdXJlIGluIGZlYXR1cmVzIGluIFRhc3RlIFdlc3QgU3Vzc2V4IG1hZ2F6aW5lLiBBIGZvbGxvdy11cCBzdXJ2ZXkgd2FzIHVuZGVydGFrZW4gd2l0aCBhIGZpZnRoIG9mIHRoZSBmZWF0dXJlZCBidXNpbmVzc2VzIHRvIGdhaW4gZmVlZGJhY2sgb24gdGhlaXIgdmlld3Mgb2YgdGhlIDIwMTYgY2FtcGFpZ24uIFRoZSBmZWVkYmFjayB3ZSByZWNlaXZlZCB3YXMgcG9zaXRpdmUsIGFuZCBrZXkgbWVzc2FnZXMgaW5jbHVkZWQgc3VwcG9ydCBmb3IgY29udGludWluZyBhbmQgZXhwYW5kaW5nIHRoZSBjYW1wYWlnbiwgY3JlYXRpbmcgYSBncmVhdGVyIG51bWJlciBvZiBwbGFjZS1iYXNlZCBpdGluZXJhcmllcyB0byBpbnNwaXJlIHZpc2l0b3JzLCBhbmQgZGV2ZWxvcGluZyBmdXJ0aGVyIGxpbmthZ2VzIHdpdGggbG9jYWwgYXR0cmFjdGlvbnMuIFRoZSBjYW1wYWlnbiBpcyBjb250aW51aW5nIHRocm91Z2hvdXQgdGhlIFdpbnRlciwgdG8gcHJvbW90ZSBXZXN0IFN1c3NleCBhcyBhbiBhdHRyYWN0aXZlIHZpc2l0b3IgZGVzdGluYXRpb24sIHdpdGggdGhlIGFpbSB0byByZWNydWl0IGFuZCBzdXBwb3J0IG1vcmUgbG9jYWwgYnVzaW5lc3NlcyBpbiAyMDE3LlxcblxcbiogVW5kZXIgdGhlIGN1cnJlbnQgTEVBREVSIHByb2dyYW1tZSwgQ2VudHJhbCBTdXNzZXggYW5kIFN1c3NleCBEb3ducyAmIENvYXN0YWwgUGxhaW4gTEVBREVSIExvY2FsIEFjdGlvbiBHcm91cHMgaGF2ZSBhcHByb3ZlZCBhIHRvdGFsIG9mIDEzIHByb2plY3RzIHdpdGggZ3JhbnRzIHRvdGFsbGluZyDCozM4MCw2NzQuIFRoZXNlIGFyZSBmb3JlY2FzdCB0byBjcmVhdGUgMjUgbmV3IGZ1bGwgdGltZSBlcXVpdmFsZW50IGpvYnMgYW5kIDQsODE0IGFkZGl0aW9uYWwgb3Zlcm5pZ2h0IHN0YXlzIG92ZXIgdGhlIG5leHQgdGhyZWUgeWVhcnMuIFRoZSB0b3RhbCBtYXRjaCBmdW5kaW5nIGFzc29jaWF0ZWQgd2l0aCBMRUFERVIgZ3JhbnRzIGlzIMKjODUyLDYxMCB3aGljaCBlcXVhdGVzIHRvIGEgdG90YWwgcHJvamVjdCB2YWx1ZSBvZiDCozEsMjMzLDI4NC5cXG5cXG4qIFRoZSBCdXNpbmVzcyBGaW5hbmNlIFByb2plY3QgcmVjZWl2ZWQgMjAxIGVucXVpcmllcyBhbmQgMTA3IGV4cHJlc3Npb25zIG9mIGludGVyZXN0IGZyb20gY29tcGFuaWVzIGludGVyZXN0ZWQgaW4gYXBwbHlpbmcgZm9yIGEgQnVzaW5lc3MgR3Jvd3RoIEdyYW50IChhZGRpdGlvbmFsIDM2IHRvIHRoYXQgcHJldmlvdXNseSByZXBvcnRlZCkuIFRoaXMgY29udmVydGVkIHRvIDM2IGZ1bGwgYXBwbGljYXRpb25zIGFuZCByZXN1bHRlZCBpbiAyNCBjb21wYW5pZXMgcmVjZWl2aW5nIGFuIGFwcHJvdmFsIGZyb20gdGhlIEdyb3d0aCBHcmFudCBwYW5lbHMgaW4gMjAxNi8xNyB3aGljaCwgaWYgZnVsbHkgc3BlbnQsIHdpbGwgdG90YWwgwqMxLDEwOCw3NzEuXFxuXFxuSW4gdGhlIGxhc3QgcXVhcnRlciB3aXRoIHJlZ2FyZCB0byB0aGUgQ3JlYXRpdmUvRGlnaXRhbCBwcm9wb3NpdGlvbiBXaXJlZCBTdXNzZXggaGF2ZSBkZWxpdmVyZWQgdHdvIHNlY3RvciBlbmdhZ2VtZW50IGV2ZW50cyBhcyBwYXJ0IG9mIHRoZWlyIHdvcmsgb24gdGhlIEJvZ25vciBSZWdpcyBDcmVhdGl2ZSBEaWdpdGFsIEh1YiBwcm9qZWN0LiBUaGUgZmlyc3Qgd2FzIGhlbGQgYXQgT3hmb3Jk4oCZcyBCYXIgaW4gQm9nbm9yIFJlZ2lzIG9uIDE1IE5vdiBhbmQgd2FzIGF0dGVuZGVkIGJ5IDMxIGNyZWF0aXZlIGRpZ2l0YWwgYnVzaW5lc3Nlcy4gVGhlIGV2ZW50IGluY2x1ZGVkIGEgcHJlc2VudGF0aW9uIGJ5IE1hdHQgRGVzbWllciBmcm9tIHRoZSBCb3VybmVtb3V0aCBhbmQgUG9vbGUgZGlnaXRhbCBjbHVzdGVyIGFib3V0IHRoZWlyIGV4cGVyaWVuY2Ugb2YgZGV2ZWxvcGluZyB0aGUgc2VjdG9yIGluIHRoYXQgYXJlYSwgYW5kIGEgcHJlc2VudGF0aW9uIG9mIHRoZSByZXN1bHRzIG9mIHRoZSBXaXJlZCBTdXNzZXggY3JlYXRpdmUgZGlnaXRhbCBzZWN0b3Igc3VydmV5LiBXaXJlZCBTdXNzZXggY2FycmllZCBvdXQgYSBzdXJ2ZXkgb2YgY3JlYXRpdmUgZGlnaXRhbCBidXNpbmVzc2VzIGluIEJvZ25vciBSZWdpcyB0byB1bmRlcnN0YW5kIHRoZSBnZW9ncmFwaGljYWwgYW5kIHNlY3RvcmFsIHJhbmdlIG9mIGJ1c2luZXNzZXMgY3VycmVudGx5IGVuZ2FnZWQgd2l0aCB0aGUgcHJvamVjdC4gT3ZlciAxMDAgYnVzaW5lc3NlcyB3ZXJlIGNvbnRhY3RlZCBhbmQgNDUgcmVzcG9uc2VzIHJlY2VpdmVkLiBUaGUgc2Vjb25kIGV2ZW50IHdhcyBoZWxkIG9uIDEzIERlYyBhdCBUaGUgUGllciBpbiBCb2dub3IgUmVnaXMgYW5kIDIxIGJ1c2luZXNzZXMgYXR0ZW5kZWQuIFNwZWFrZXJzIGluY2x1ZGVkIE1pa2UgSG9sbGV5LCBIZWFkIG9mIHRoZSBEZXBhcnRtZW50IG9mIENyZWF0aXZlIGFuZCBEaWdpdGFsIFRlY2hub2xvZ3kgYXQgdGhlIFVuaXZlcnNpdHkgb2YgQ2hpY2hlc3Rlciwgd2hvIHNwb2tlIGFib3V0IHRoZSBVbml2ZXJzaXR54oCZcyBuZXcgRW5naW5lZXJpbmcgYW5kIERpZ2l0YWwgVGVjaG5vbG9neSBQYXJrIGR1ZSB0byBvcGVuIGluIDIwMTguXFxuXFxuSW4gYWRkaXRpb24sIG1vbnRobHkgdXBkYXRlIGVtYWlscyBhcmUgc2VudCB0byAyMjggY29udGFjdHMgb24gV2lyZWQgU3Vzc2V44oCZcyBCb2dub3IgaHViIGRhdGFiYXNlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlciAyMDE2KipcXG5cXG4tIC0gLVxcblxcblRoZSBudW1iZXJzIG9mIGJ1c2luZXNzZXMgc3VwcG9ydGVkIHRocm91Z2ggV1NDQyBvciBXU0NDIHN1cHBvcnRlZCBpbml0aWF0aXZlcyBhcm91bmQgYnVzaW5lc3Mgc3VwcG9ydDpcXG5cXG5PdmVyIDEyMCBoZWFsdGggYW5kIGxpZmUgc2NpZW5jZXMgcmVsYXRlZCBjb21wYW5pZXMgaGF2ZSBiZWVuIHN1cHBvcnRlZCB0aHJvdWdoIHRoZSBIZWFsdGggYW5kIExpZmUgU2NpZW5jZXMgY2x1c3RlciBuZXR3b3JrLiAuIENvbXBhbmllcyB3aXRoaW4gdGhlIGNsdXN0ZXIgYXJlIHJlZ3VsYXJseSB1cGRhdGVkIGFib3V0IHRoZSBzZWN0b3IgaW5pdGlhdGl2ZXMgV1NDQyBpcyBwcm9ncmVzc2luZywgcmVnaW9uYWwgZXZlbnRzLCBmdW5kaW5nIG9wcG9ydHVuaXRpZXMsIGxvY2FsIHJlc2VhcmNoLCBhbmQgU1RFTSBvcHBvcnR1bml0aWVzLiBXU0NDIGlzIHdvcmtpbmcgaGFyZCB0byBncm93IHRoZSBjbHVzdGVyIGFuZCBkZXZlbG9wIGEgcHJvZ3JhbW1lIG9mIHN1cHBvcnQgd2hpY2ggd2lsbCBhZGQgcmVhbCB2YWx1ZSB0byBjb21wYW5pZXMgd2l0aGluIHRoZSByZWdpb24uIFRoZSBwcm9ncmFtbWUgb2Ygc3VwcG9ydCB3aWxsIGJlZ2luIGZ1bGx5IGluIE5vdmVtYmVyIGFuZCBkZXRhaWwgZnJvbSB0aGVtIHJlcG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIG5leHQgcXVhcnRlci5cXG5cXG5PbiB0aGVDcmVhdGl2ZS9EaWdpdGFsIHByb3Bvc2l0aW9uIFdpcmVkIFN1c3NleCBoZWxkIGFuIGVuZ2FnZW1lbnQgZXZlbnQgZm9yIHRoZSBzZWN0b3IgaW4gU2VwdGVtYmVyIGFzIHBhcnQgb2YgdGhlaXIgc2VjdG9yIGRldmVsb3BtZW50IGNvbnRyYWN0LiAyMCBidXNpbmVzc2VzIGF0dGVuZGVkLiBCcmFuZGluZyBpZGVhcyBmb3IgdGhlIGh1YiBhcyB3ZWxsIGFzIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgaW50ZXJuYWwgcGxhbnN3ZXJlIHByZXNlbnRlZCBieSBIZW1taW5nd2F5IERlc2lnbiBhbG9uZyB3aXRoIGEgcmVzdW1lIG9mIHdvcmsgdW5kZXJ0YWtlbiB0byBkYXRlLCBhbmQgZGlzY3Vzc2lvbnMgb3ZlciB0aGUgbmV4dCBzdGVwcy4gVGhlcmUgd2FzIG5ldHdvcmtpbmcgb3Bwb3J0dW5pdGllcyBmb3IgdGhvc2UgYnVzaW5lc3NlcyBhdHRlbmRpbmcgYW5kIGRpc2N1c3Npb25zIG92ZXIgdGhlIHBsYW5zIGZvciBlbmNvdXJhZ2luZyBncm93dGggaW4gdGhpcyBzZWN0b3IuXFxuXFxuT3VyIHR3byBMRUFERVIgTG9jYWwgQWN0b24gR3JvdXBzIChMQUdzKSBoYXZlIHNvIGZhciBhcHByb3ZlZCBncmFudHMgdG90YWxsaW5nIMKjMzM3LDkzMSBmb3IgMTEgcHJvamVjdHMgd2hpY2ggYXJlIGZvcmVjYXN0IHRvIGNyZWF0ZSAyMyBuZXcgRlRFIGpvYnMuIEF0IGxlYXN0IDExIGJ1c2luZXNzZXMgaW4gdG90YWwgd2lsbCBiZW5lZml0LiBIb3dldmVyIHRoZSBMQUdzIGV4dGVuZCB0byBhcmVhcyBvdXRzaWRlIG9mIFdlc3QgU3Vzc2V4LCBXaXRoaW4gV2VzdCBTdXNzZXggdGhlcmUgYXJlIDcgcHJvamVjdHMgd2hpY2ggaGF2ZSBiZWVuIGFwcHJvdmVkLCBmb3JlY2FzdCB0byBjcmVhdGUgMTcuNyBGVEUgam9icyBhbmQgdG90YWxsaW5nIMKjMjQ2LDA2My4gVGhlIHByb2plY3RzIGluIFdlc3QgU3Vzc2V4IGFyZSBsaXN0ZWQgYmVsb3csIG9ubHkgdGhlIGZpcnN0IG9uZSBsaXN0ZWQgaGFzIGJlZW4gY29tcGxldGVkIGFuZCB0aGUgb3RoZXJzIGFyZSBpbiBwcmVwYXJhdGlvbjpcXG5cXG4qIEx1eHVyeSBsb2RnZXMgb24gYSB2aW5leWFyZCB0byBwcm9tb3RlIHdpbmUgdG91cmlzbVxcblxcbiogRmFybSBidW5raG91c2Ugc3R5bGUgYWNjb21tb2RhdGlvbiBuZWFyIHRoZSBTb3V0aCBEb3ducyBXYXkgZm9yIGN5Y2xpc3RzIGFuZCB3YWxrZXJzXFxuXFxuKiBOZXcgZXF1aXBtZW50IGZvciBhIGZvb2QgcHJvY2Vzc2luZyBjb21wYW55IGluY2x1ZGluZyBjb21tZXJjaWFsaXNhdGlvbiBvZiBhIG5ldyDigJxjbGVhbuKAnSB0ZWNobm9sb2d5IGZvciBzbW9raW5nIGluZ3JlZGllbnRzXFxuXFxuKiBNb2Rlcm4gZGlnaXRhbCBlcXVpcG1lbnQgZm9yIGEgbG9jYWwgbGFiZWwgcHJpbnRpbmcgYnVzaW5lc3NcXG5cXG4qIEZvcmVzdHJ5IGhhcnZlc3RlciBoZWFkIGZvciBhIGZhcm0gYmFzZWQgYmlvbWFzcyBidXNpbmVzc1xcblxcbiogU3RyYXcgc2hyZWRkaW5nIGFuZCBwZWxsZXRpbmcgZXF1aXBtZW50IGZvciBhIGRpdmVyc2lmaWVkIGZhcm0gYnVzaW5lc3MgcHJvZHVjaW5nIGFuaW1hbCBiZWRkaW5nIGFuZCBiaW9tYXNzIGZvciB3b29kLWJ1cm5pbmcgYm9pbGVyc1xcblxcbiogTmV3IHNpZ25hZ2UgYW5kIHdlYnNpdGUgcHJvbW90aW5nIGFjY2Vzc2libGUgd2Fsa3MgYXJvdW5kIEJyYW1iZXJcXG5cIn0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJXaXRoIHJlZ2FyZCB0byB0aGUgQnVzaW5lc3MgRmluYW5jZSBQcm9qZWN0IDE3NSBidXNpbmVzc2VzIGhhdmUgYmVlbiBpbiBkaXNjdXNzaW9uIG92ZXIgcHJvcG9zZWQgcHJvamVjdHMsIGFuZCBzbyBmYXIgNiBoYXZlIGRlY2xhcmVkIHRoZXkgaW50ZW50IHRvIHN1Ym1pdCBhbiBFeHByZXNzaW9uIG9mIEludGVyZXN0IChFT0kpLiBUaGUgdGFibGUgb24gdGhlIHJpZ2h0IHNob3dzIHRoZSBsYXRlc3QgcG9zaXRpb24gZm9yIHRoZSBwcm9qZWN0IGluIHRlcm1zIG9mIGFwcGxpY2F0aW9ucyBzbyBmYXIuXFxuXFxuXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvOTU2QTdCNkItQjM4Qy00OEZFLThCN0EtRkM5OTk1QzY4OTBBXCJ9XV19LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIkZvbGxvd2luZyBoaXMgYW5ub3VuY2VtZW50IGluIEF1Z3VzdCwgb24gdGhlIGZ1dHVyZSBvZiBFVSBmdW5kaW5nIGluIHRoZSBjb250ZXh0IG9mIEJyZXhpdCBhbmQgd2hpY2ggZ3VhcmFudGVlZCBmdW5kcyBmb3IgcHJvamVjdHMgc2lnbmVkIHVwIHVudGlsIHRoZSBBdXR1bW4gU3RhdGVtZW50IChOb3ZlbWJlciAyMDE2KSwgdGhlIENoYW5jZWxsb3IgaGFzIG5vdyBleHRlbmRlZCB0aGlzIGd1YXJhbnRlZSB0byB0aGUgcG9pbnQgYXQgd2hpY2ggdGhlIFVLIGRlcGFydHMgdGhlIEVVLiBUaGUgQ2hhbmNlbGxvciBjb25maXJtZWQgdGhhdCB0aGUgZ292ZXJubWVudCB3aWxsIGd1YXJhbnRlZSBFVSBmdW5kaW5nIGZvciBzdHJ1Y3R1cmFsIGFuZCBpbnZlc3RtZW50IGZ1bmQgcHJvamVjdHMsIGluY2x1ZGluZyBhZ3JpLWVudmlyb25tZW50IHNjaGVtZXMsIHNpZ25lZCBhZnRlciB0aGUgQXV0dW1uIFN0YXRlbWVudCBhbmQgd2hpY2hjb250aW51ZSBhZnRlciB3ZSBoYXZlIGxlZnQgdGhlIEVVLlxcblxcbkhlIHdhcyBjbGVhciwgd2hpbGUgdGhlIFVLIGlzIHN0aWxsIGEgbWVtYmVyIG9mIHRoZSBFVSwgQnJpdGlzaCBidXNpbmVzc2VzLCBmYXJtZXJzIGFuZCBvdGhlciBvcmdhbmlzYXRpb25zIG11c3QgYmUgZW50aXRsZWQgdG8gYXBwbHkgZm9yIEVVZnVuZHMuIEZ1bmRpbmcgZm9yIHByb2plY3RzIHdpbGwgYmUgaG9ub3VyZWQgYnkgdGhlIGdvdmVybm1lbnQsIGlmIHRoZXkgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XFxuXFxuKiB0aGV5IGFyZSBnb29kIHZhbHVlIGZvciBtb25leVxcblxcbiogdGhleSBhcmUgaW4gbGluZSB3aXRoIGRvbWVzdGljIHN0cmF0ZWdpYyBwcmlvcml0aWVzXFxuXFxuQXMgYSByZXN1bHQsIEJyaXRpc2ggYnVzaW5lc3NlcywgZmFybWVycyBhbmQgb3RoZXIgb3JnYW5pc2F0aW9ucyB3aWxsIGhhdmUgYWRkaXRpb25hbCBjZXJ0YWludHkgb3ZlciBmdXR1cmUgZnVuZGluZyBhbmQgc2hvdWxkIGNvbnRpbnVlIHRvIGFwcGx5IGZvciBFVSBmdW5kaW5nIHdoaWxlIHRoZSBVSyByZW1haW5zIGEgbWVtYmVyIG9mIHRoZSBFVS5cXG5cXG5UaGUgYW5ub3VuY2VtZW50IG1hZGUgb24gMyBPY3RvYmVyIDIwMTYgYnVpbGRzIG9uIHRoZSBhc3N1cmFuY2VzIGdpdmVuYnkgdGhlIENoYW5jZWxsb3IgaW4gQXVndXN0IHdoaWNoIGFsc28gaW5jbHVkZWQ6XFxuXFxuKiBhbGwgc3RydWN0dXJhbCBhbmQgaW52ZXN0bWVudCBmdW5kIHByb2plY3RzLCBpbmNsdWRpbmcgYWdyaS1lbnZpcm9ubWVudCBzY2hlbWVzLCBzaWduZWQgYmVmb3JlIHRoZSBBdXR1bW4gU3RhdGVtZW50IHdpbGwgYmUgZnVsbHkgZnVuZGVkLCBldmVuIHdoZW4gdGhlc2UgcHJvamVjdHMgY29udGludWUgYmV5b25kIHRoZSBVS+KAmXMgZGVwYXJ0dXJlIGZyb20gdGhlIEVVXFxuXFxuKiBhbGwgZGlyZWN0IGNvbXBldGl0aXZlbHkgYmlkIHByb2plY3RzIGRpcmVjdGx5IHdpdGggdGhlIEV1cm9wZWFuIENvbW1pc3Npb24sIGZvciBleGFtcGxlIHVuaXZlcnNpdGllcyBwYXJ0aWNpcGF0aW5nIGluIEhvcml6b24gMjAyMFxcblxcbiogdGhlIGN1cnJlbnQgbGV2ZWwgb2YgYWdyaWN1bHR1cmFsIGZ1bmRpbmcgdW5kZXIgQ0FQIHBpbGxhciAxIHdpbGwgYmUgdXBoZWxkIHVudGlsIDIwMjAgYXMgcGFydCBvZiB0aGUgdHJhbnNpdGlvbiB0byBuZXcgZG9tZXN0aWMgYXJyYW5nZW1lbnRzXFxuXFxuW2h0dHBzOi8vd3d3Lmdvdi51ay9nb3Zlcm5tZW50L25ld3MvZnVydGhlci1jZXJ0YWludHktb24tZXUtZnVuZGluZy1mb3ItaHVuZHJlZHMtb2YtYnJpdGlzaC1wcm9qZWN0c11bMF1cXG5cXG5bMF06IGh0dHBzOi8vd3d3Lmdvdi51ay9nb3Zlcm5tZW50L25ld3MvZnVydGhlci1jZXJ0YWludHktb24tZXUtZnVuZGluZy1mb3ItaHVuZHJlZHMtb2YtYnJpdGlzaC1wcm9qZWN0c1wifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNioqXFxuXFxuX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xcblxcblRoZSBudW1iZXJzIG9mIGJ1c2luZXNzZXMgc3VwcG9ydGVkIHRocm91Z2ggV1NDQyBvciBXU0NDIHN1cHBvcnRlZCBpbml0aWF0aXZlcyBhcm91bmQgYnVzaW5lc3Mgc3VwcG9ydDpcXG5cXG5UaGUgdXBzaG90IGlzIHRoYXQgdGhlcmUgYXJlIGFyb3VuZCA5MCBidXNpbmVzc2VzIHN1cHBvcnRlZCB0aHJvdWdoIHRoZSBIZWFsdGggYW5kIExpZmUgc2NpZW5jZXMgY2x1c3RlciBuZXR3b3JrLCAxMSBjb21wYW5pZXMgaGF2ZSBwYXJ0aWNpcGF0ZWQgb3IgYXJlIGNvbW1pdHRlZCB0byBwYXJ0aWNpcGF0aW5nIGluIFNURU0gaW5pdGlhdGl2ZXMgdGhhdCBXU0NDIGhhdmUgcGFydCBmdW5kZWQuIEl0IGlzIHRoZSBpbnRlbnRpb24gdG8gaG9sZCBhIHNlY29uZCBjbHVzdGVyIGV2ZW50IGluIE5vdmVtYmVyLlxcblxcbk9uIHRoZSBDcmVhdGl2ZS9EaWdpdGFsIHByb3Bvc2l0aW9uIGEgbmV0d29ya2luZyBldmVudCB3YXMgaGVsZCBhdCB0aGUgV2F2ZXJsZXkgSG90ZWwgaW4gQm9nbm9yIFJlZ2lzIGluIEFwcmlsLCAyMCBidXNpbmVzc2VzIGF0dGVuZGVkLiBUaGUgcGxhbnMgZm9yIHRoZSBuZXcgaHViIGFuZCBpdHMgbGlua3MgdG8gdGhlIFVuaXZlcnNpdHnigJlzIG5ldyBFbmdpbmVlcmluZyBhbmQgRGlnaXRhbCBUZWNobm9sb2d5IFBhcmsgd2VyZSBkaXNjdXNzZWQgYW5kIGJ1c2luZXNzZXMgYW5kIG90aGVyIHN0YWtlaG9sZGVycyB3ZXJlIGFibGUgdG8gZmVlZCBiYWNrIHRoZWlyIHRob3VnaHRzIG9uIHRoZSBwbGFucyBhbmQgaG93IHRoZSBodWIgY291bGQgc3VwcG9ydCB0aGVtOyBhbmQgdGhleSB3ZXJlIGFibGUgdG8gbmV0d29yayB0b2dldGhlciBhcyBwYXJ0IG9mIHRoZSBzZWN0b3IgZGV2ZWxvcG1lbnQgd29yayB0aGF0IGNvbXBsZW1lbnRzIHRoZSBlc3RhYmxpc2htZW50IG9mIHRoZSBodWIuXFxuXFxuU28gZmFyIDggYnVzaW5lc3NlcyBoYXZlIGJlZW4gc3VwcG9ydGVkIHRvIHN1Ym1pdCBFT0lzIHRvIHRoZSBCdXNpbmVzc2VzIEZpbmFuY2UgcHJvZ3JhbW1lLlxcblxcblRoZSB0d28gTEVBREVSIExvY2FsIEFjdGlvbiBHcm91cHMgaGF2ZSBhcHByb3ZlZCA2IHByb2plY3Qgc3VibWlzc2lvbnMgZnJvbSBidXNpbmVzc2VzLiBUaGUgdG90YWwgZ3JhbnQgY29tbWl0dGVkIHRvIGRhdGUgaXMgwqMxODgsNzUwLlxcblxcblRoZSBuZXh0IHVwZGF0ZSBpcyBkdWUgaW4gT2N0b2JlciBmb3IgdGhlIHF1YXJ0ZXIgdG8gU3BldGVtYmVyIDIwMTYuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAzIC0gRGVjZW1iZXIgMjAxNSoqXFxuXFxuLSAtIC1cXG5cXG5UaGlzIGNvbW1lbnRhcnkgcmVwb3J0cyBvbiBFY29ub21pYyBEZXZlbG9wbWVudCBpbml0aWF0aXZlcyBhbmQgYWN0aXZpdGllcyB0aGF0IHN1cHBvcnQgYnVzaW5lc3Nlcy5cXG5cXG4qKkJldHRlciBCb2dub3IgUmVnaXMgQm9sZCBJZGVhIChEaWdpdGFsIGFuZCBjcmVhdGl2ZSBjbHVzdGVyKSoqXFxuXFxuVGhpcyBwcm9qZWN0IGlzIG9uZSBvZiB0aGUgZml2ZSAnQm9sZCBJZGVhcycgZGV2ZWxvcGVkIHRvIGhlbHAgdGFja2xlIFdlc3QgU3Vzc2V44oCZcyBlY29ub21pYyBjaGFsbGVuZ2VzIGFuZCBlbmNvdXJhZ2UgZWNvbm9taWMgYWN0aXZpdHkgb3ZlciB0aGUgc2hvcnQgdG8gbWVkaXVtIHRlcm0uIERyYXdpbmcgb24gZXhhbXBsZXMgZnJvbSBvdGhlciBwbGFjZXMgaW4gdGhlIFVLIGFuZCBpbnRlcm5hdGlvbmFsbHksIHRoZSBjb3VudHkgd291bGQgbGlrZSB0byBlc3RhYmxpc2ggQm9nbm9yIFJlZ2lzIGFzIGFuIGFydGlzdGljL2NyZWF0aXZlIGNlbnRyZSwgYSBwbGFjZSB3aGVyZSB5b3VuZyBjcmVhdGl2ZSBwZW9wbGUgZnJvbSB0aGUgbG9jYWwgYXJlYSB0aHJpdmUsIGFuZCBhdHRyYWN0cyBvdGhlcnMgZnJvbSBzdXJyb3VuZGluZyBhcmVhcyBpbmNsdWRpbmcgTG9uZG9uIHRvIHJlbG9jYXRlLiBUaGUgZm9jdXMgd2lsbCBiZSB0byBjcmVhdGUgYSBzaGFyZWQgd29ya3NwYWNlIGF0IEJvZ25vciBSZWdpcyByYWlsd2F5IHN0YXRpb24gd2hlcmUgc21hbGwgYnVzaW5lc3NlcyBjYW4gd29yayBpbiBhIGNyZWF0aXZlIGFuZCBzdXBwb3J0aXZlIGVudmlyb25tZW50LCBuZXR3b3JrLCBzb2NpYWxpc2UsIGRpc3BsYXkgd29yaywgc2hhcmUgZmFjaWxpdGllcyBldGMuIEl0IGlzIHRvIGJlIHVuZGVydGFraW5nIGluIHBhcnRuZXJzaGlwIHdpdGggb3RoZXJzIGluY2x1ZGluZyBDaGljaGVzdGVyIFVuaXZlcnNpdHksIGFuZCBpdCBpbnRlbmRlZCB0aGF0IHRoZSBuZXcgZmFjaWxpdGllcyB3b3VsZCBwcm92aWRlIGFuIGVudmlyb25tZW50IGZvciBncmFkdWF0ZXMgZnJvbSB0aGUgVW5pdmVyc2l0eSB0byBkZXZlbG9wIG5ldyBidXNpbmVzc2VzOyBhbmQgdGhlIFVuaXZlcnNpdHkgd291bGQgcHJvdmlkZSBhIHNvdXJjZSBvZiBza2lsbHMgZm9yIHRoaXMgZ3Jvd2luZyBzZWN0b3IgaW4gQm9nbm9yIFJlZ2lzIGFuZCBXZXN0IFN1c3NleC5cXG5cXG5UaGUgZmlyc3QgYnVzaW5lc3MgZXZlbnQgYXJvdW5kIHRoaXMgcHJvcG9zaXRpb24gd2FzIGhlbGQgaW4gTm92ZW1iZXIgMjAxNSBpbiBCb2dub3IgUmVnaXMuIFRoZSBhaW0gb2YgdGhlIGV2ZW50IHdhcyB0byBzaGFyZSB0aGUgZW1lcmdpbmcgcGxhbnMgZm9yIGEgZGlnaXRhbCBhbmQgY3JlYXRpdmUgaHViIHdpdGggcGFydG5lcnMsIHBvdGVudGlhbCBzdGFrZWhvbGRlcnMgYW5kIGEgc21hbGwgbnVtYmVyIG9mIGxvY2FsIGNyZWF0aXZlIGFuZCBkaWdpdGFsIGJ1c2luZXNzZXMsIHRvIGludml0ZSBmZWVkYmFjaywgdG8gZXhhbWluZSB0aGUgcG90ZW50aWFsIHNwYWNlIGZvciB0aGUgaHViIGF0IEJvZ25vciBSZWdpcyBSYWlsd2F5IFN0YXRpb24gYW5kIHRvIGV4YW1pbmUgaG93IHRoZSBpZGVhIHNob3VsZCBiZSBwcm9ncmVzc2VkLlxcblxcbjggYnVzaW5lc3NlcyBhdHRlbmRlZCB0aGlzIGV2ZW50LiBUaGUgbmV4dCBldmVudCBpcyBiZWluZyBvcmdhbmlzZWQgaW4gSmFudWFyeSB3aGljaCB3aWxsIGluY2x1ZGUgYSBiaWdnZXIgYXR0ZW5kYW5jZSBmcm9tIGJ1c2luZXNzZXMsIGFuZCB3aWxsIGJlIGZlZWRiYWNrIGluIHRoZSBuZXh0IHF1YXJ0ZXIuXFxuXFxuKipCZWF1dGlmdWwgT3V0ZG9vcnMvV2VzdCBTdXNzZXggV2Vla2VuZHMqKlxcblxcbkZvbGxvd2luZyBvbiBmcm9tIHRoZSBCZWF1dGlmdWwgT3V0ZG9vcnMvV2VzdCBTdXNzZXggV2Vla2VuZHMgY2FtcGFpZ24gdGhhdCB3YXMgbGF1bmNoZWQgaW4gU3VtbWVyIOKAmTE1IHRoZXJlIHdhcyBhIGZvbGxvdyB1cCBzdXJ2ZXkgb2YgYXJvdW5kIGEgdGhpcmQgb2YgdGhlIGJ1c2luZXNzZXMgdGhhdCB3ZXJlIGludm9sdmVkIHRvIGFzY2VydGFpbiB0aGUgYmVuZWZpdHMgdGhleSBoYWQgc2VlbiBhbmQgdG8gZ2V0IHRoZWlyIHZpZXcgb24gdGhlIHByb21vdGlvbiBvZiBXZXN0IFN1c3NleCBhcyBhIHZpc2l0b3IgZGVzdGluYXRpb24uIENlcnRhaW5seSB0aGUgZmVlZGJhY2sgZnJvbSB0aGVtIHdhcyB2ZXJ5IHBvc2l0aXZlLCBhbGwgb2YgdGhlbSByZXBvcnRlZCB0aGF0IHRoZXkgd2FudGVkIHRoZSBjYW1wYWlnbiB0byBjb250aW51ZSwgbWFueSBleHBlY3QgdGhlIHdhbGtpbmcvY3ljbGluZyBtYXJrZXQgdG8gaW5jcmVhc2UgZm9yIHRoZWlyIGJ1c2luZXNzIGFuZCBzb21lIGhhZCB1bmRlcnRha2VuIGltcHJvdmVtZW50cyB0byBtYWtlIHRoZW1zZWx2ZXMgbW9yZSBjeWNsaW5nL3dhbGtpbmcgZnJpZW5kbHkgaS5lLiBpbnRyb2R1Y3Rpb24gb2Ygc2VjdXJlIGN5Y2xlIHN0b3JhZ2UuXFxuXFxuR2l2ZW4gdGhlIHdpbnRlciBsdWxsIFdlc3QgU3Vzc2V4IFdlZWtlbmRzIGlzIGNvbmNlbnRyYXRpbmcgb24gcHJvbW90aW5nIGEgc2VyaWVzIG9mIHdhbGtzIGluIHRoZSBDb3VudHksIHRoaXMgaXMgaW4gcGFydG5lcnNoaXAgd2l0aCBpRm9vdHBhdGgsIGEgbmF0aW9uYWwgd2Vic2l0ZSBhbmQgYXBwIHRvIGVuY291cmFnZSBwZW9wbGUgdG8gZ2V0IG91dCBhbmQgZW5qb3kgd2Fsa3MgYWNyb3NzIHRoZSBVSy4gVGhlcmUgYXJlIDEwIHdhbGtzIGluY2x1ZGVkIGluIFdlc3QgU3Vzc2V4LCBkZXRhaWxlZCBtYXBzIGFuZCBhIGRlc2NyaXB0aW9uIG9mIHRoZSB3YWxrIGlzIGluY2x1ZGVkIGFuZCBsb2NhbCBidXNpbmVzc2VzIHRoYXQgYSB3YWxrZXIgY291bGQgc3RvcCBvZmYgYXQgZm9yIHJlZnJlc2htZW50IGFyZSBtZW50aW9uZWQuXFxuXFxuW2h0dHA6Ly93d3cud2VzdC1zdXNzZXgtd2Vla2VuZHMuY29tL3dpbnRlci13YWxrc11bMF1cXG5cXG5UaGVyZSBhcmUgbm93IGFyb3VuZCA3MCBsb2NhbCBidXNpbmVzc2VzIG9uIHRoZSBXZXN0IFN1c3NleCBXZWVrZW5kcyB3ZWJzaXRlLCBwcm9tb3RpbmcgdGhlbSBhcyBwbGFjZXMgdG8gc3RvcCBvZmYgYW5kL29yIHN0YXkgZm9yIHZpc2l0b3JzIHRvIFdlc3QgU3Vzc2V4LCB0aGlzIGlzIDEwIG1vcmUgdGhhbiBwcmV2aW91c2x5IHJlcG9ydGVkIGFuZCB0aGVuIGFyZSBwbGFucyB0byByZWNydWl0IGV2ZW4gbW9yZSBsb2NhbCBidXNpbmVzc2VzIHRvIG91ciBjYW1wYWlnbiBhbmQgaGVscCB0byBzdXBwb3J0IHRoZW0gdG8gYmVjb21lIGV2ZW4gbW9yZSBhdHRyYWN0aXZlIHRvIHZpc2l0b3JzIHRvIFdlc3QgU3Vzc2V4IHRocm91Z2ggb3VyIDIwMTYgY2FtcGFpZ24uXFxuXFxuKipIZWFsdGggJiBMaWZlIFNjaWVuY2VzKipcXG5cXG5UaGUgSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzIENsdXN0ZXIgaGFzIG5vdyBpZGVudGlmaWVkIG92ZXIgOTAgY29tcGFuaWVzIGFuZCB3b3JrIGhhcyBiZWVuIHVuZGVydGFrZW4gYW5kIGlzIG9uLWdvaW5nIHRvIGVuZ2FnZSB0aGUgbmV3IGNvbXBhbmllcyB0byB0aGUgd29yayB0byBkYXRlLiBBbiB1cGRhdGVkIGNsdXN0ZXIgZGlyZWN0b3J5IGlzIHNob3J0bHkgdG8gYmUgcmVsZWFzZWQgdG8gaW5jbHVkZSBhbGwgOTAgY29tcGFuaWVzIChpbmNyZWFzZSBvZiBhcm91bmQgMjYgZnJvbSB0aGUgcHJldmlvdXMgdmVyc2lvbikuIFRoZSBjbHVzdGVyIGhhcyBhbiBvbi1saW5lIHByZXNlbmNlIGluIHRoZSBmb3JtIG9mIGEgd2Vic2l0ZSwgdHdpdHRlciBhbmQgbGlua2VkLWluIGdyb3VwLCBpbiBhZGRpdGlvbiB0byB0aGUgOTAgY29tcGFuaWVzIHRoZXJlIGFyZSBvdmVyIDMwMCBpbmRpdmlkdWFscyBmcm9tIHByaXZhdGUgYnVzaW5lc3MsIGV4dGVybmFsIHNlY3RvciBvcmdhbmlzYXRpb25zLCBhY2FkZW1pY3MsIGxvY2FsIGdvdmVybm1lbnQgYW5kIHRoZSBOSFMuIFdTQ0MgYXJlIGRldmVsb3Bpbmcgc29tZSBpbml0aWF0aXZlcyAoY29sbGVjdGl2ZWx5IGtub3duIGFzIHRoZSBHcm93dGggSHViKSB0byBzdXBwb3J0IHN0YXJ0LXVwcyBhbmQgU01FcyBpbiB0aGlzIGNsdXN0ZXIgdGhyb3VnaG91dCB0aGUgY291bnR5LiBTcGVjaWZpYyBpbml0aWF0aXZlcyBpbmNsdWRlIHBvdGVudGlhbGx5IGNyZWF0aW5nIGEgTWVkIFRlY2ggQWNjZWxlcmF0b3IgaW4gdGhlIGNvdW50eSB3aGljaCB3b3VsZCBwcm92aWRlIGFuIGludGVuc2l2ZSBidXNpbmVzcyBzdXBwb3J0IHByb2dyYW1tZSBmb3Igc21hbGwgZ3JvdXBzIG9mIHN0YXJ0LSB1cHM7IGFuZCBkZXZlbG9wbWVudCBvZiBwcmFjdGljYWwgbWVhc3VyZXMgZS5nLiByb3VuZC10YWJsZSBkaXNjdXNzaW9ucyBhbmQgaW1wcm92ZWQgc2lnbiBwb3N0aW5nIHRvIGhlbHAgYWxsZXZpYXRlIHNvbWUgb2YgdGhlIHJlZ3VsYXRvcnkgY2hhbGxlbmdlcyB0aGF0IHRoZSBjb21wYW5pZXMgZmFjZS5cXG5cXG5baHR0cDovL3d3dy5idXNpbmVzc3dlc3RzdXNzZXguY28udWsvMjUyLXdzaGxzYy5odG1sXVsxXVxcblxcbkluIGFkZGl0aW9uIHRoZXJlIGlzIHdvcmsgYmVpbmcgdW5kZXJ0YWtlbiB0byBhZGRyZXNzIHRoZSBza2lsbHMgZ2FwcyBpbiB0aGlzIGFyZWEgYW5kIGJ1c2luZXNzZXMgaW4gdGhlIGNsdXN0ZXIgaGF2ZSBiZWVuIGludml0ZWQgdG8gcGFydGljaXBhdGUgaW4gQ29hc3RhbCBTVEVNIGZlc3QgMjAxNiwgYW5kIGEgbnVtYmVyIG9mIGJ1c2luZXNzZXMgYXR0ZW5kZWQgdGhlIHByZWxpbWluYXJ5IG1lZXRpbmcgaW4gTm92ZW1iZXIgdG8gcGxhbiBmb3IgdGhpcy5cXG5cXG5Db21wYW5pZXMgaW4gdGhpcyBzZWN0b3IgaGF2ZSByZXBvcnRlZCB0aGF0IHRoZXkgZG8gbm90IGhhdmUgbGlua3Mgd2l0aCBsb2NhbCB1bml2ZXJzaXRpZXMsIGFuZCBpbmRlZWQgdGhhdCB1bml2ZXJzaXRpZXMgd2VyZSDigJhpbnZpc2libGXigJkgdG8gdGhlbS4gSW4gcmVzcG9uc2UgdG8gdGhpcyB0aGVyZSB3b3JrIGlzIHVuZGVyd2F5IHRvIGltcHJvdmUgdGhlIGxpbmsgYmV0d2VlbiBjb21wYW5pZXMgaW4gdGhlIGhlYWx0aCBhbmQgbGlmZSBzY2llbmNlcyBjbHVzdGVyIGFuZCBsb2NhbCB1bml2ZXJzaXRpZXM7IGluIHBhcnRpY3VsYXIgYSDigJhVbml2ZXJzaXR5IG9mIFN1c3NleCBPZmZlcuKAmSBpcyBiZWluZyBkZXZlbG9wZWQgd2hpY2ggd2lsbCBoaWdobGlnaHQgYWxsIG9mIHRoZSBvcHBvcnR1bml0aWVzIGZvciBidXNpbmVzc2VzIGluIHRoZSBoZWFsdGggYW5kIGxpZmUgc2NpZW5jZXMgY2x1c3RlciB0byBjb2xsYWJvcmF0ZSB3aXRoIFN1c3NleCBVbml2ZXJzaXR5LiBFdmVudHMgYXJlIGJlaW5nIHBsYW5uZWQgZm9yIE1hcmNoIHdoaWNoIHdpbGwgZ2l2ZSBhbiBvcHBvcnR1bml0eSBmb3IgbG9jYWwgY29tcGFuaWVzIHRvIHZpc2l0IFN1c3NleCBVbml2ZXJzaXR5LCB0byBsb29rIGF0IHRoZSBmYWNpbGl0aWVzIG9uIG9mZmVyIGFuZCB0byBlbmdhZ2Ugd2l0aCBhIHJhbmdlIG9mIGFjYWRlbWljcyBmcm9tIGFjcm9zcyB0aGUgdW5pdmVyc2l0eS4gVGhlIGludGVudGlvbiBmb2xsb3dpbmcgdGhpcyBpcyB0byBjcmVhdGUgYSBzaW1pbGFyIG9mZmVyIHdpdGggb3RoZXIgbG9jYWwgdW5pdmVyc2l0aWVzLlxcblxcbioqTEVBREVSKipcXG5cXG5UaGUgTEVBREVSIHByb2dyYW1tZSB3YXMgbGF1bmNoZWQgaW4gTm92ZW1iZXIgMjAxNTsgaXQgaXMgYSBncmFudCBmdW5kaW5nIHByb2dyYW1tZSB0aGF0IHN1cHBvcnRzIHRoZSBncm93dGggYW5kIGRldmVsb3BtZW50IG9mIHJ1cmFsIGJ1c2luZXNzIGFuZCBpcyBwYXJ0IG9mIHRoZSBSdXJhbCBEZXZlbG9wbWVudCBwcm9ncmFtbWUgZm9yIEVuZ2xhbmQgd2hpY2ggYWltcyB0byBpbXByb3ZlIHRoZSBjb21wZXRpdGl2ZW5lc3Mgb2YgZmFybWluZyBhbmQgZm9yZXN0cnksIHN1cHBvcnQgYSBkaXZlcnNlIGFuZCBzdWNjZXNzZnVsIHJ1cmFsIGVjb25vbXkgYW5kIGhlbHAgdG8gZGV2ZWxvcCB2aWJyYW50IGFuZCB0aHJpdmluZyBydXJhbCBjb21tdW5pdGllcy4gU28gZmFyIHdlIGhhdmUgcmVjZWl2ZWQgMzcgZW5xdWlyaWVzIGZyb20gYnVzaW5lc3NlcyBpbiByZWxhdGlvbiB0byBMRUFERVIgZnVuZGluZyBzaW5jZSBpdCBoYXMgYmVlbiBsYXVuY2hlZC5cXG5cXG5baHR0cDovL3d3dy5idXNpbmVzc3dlc3RzdXNzZXguY28udWsvMjYwLWxlYWRlci1ncmFudHMtMjAxNS0yMC5odG1sXVsyXVxcblxcblswXTogaHR0cDovL3d3dy53ZXN0LXN1c3NleC13ZWVrZW5kcy5jb20vd2ludGVyLXdhbGtzXFxuWzFdOiBodHRwOi8vd3d3LmJ1c2luZXNzd2VzdHN1c3NleC5jby51ay8yNTItd3NobHNjLmh0bWxcXG5bMl06IGh0dHA6Ly93d3cuYnVzaW5lc3N3ZXN0c3Vzc2V4LmNvLnVrLzI2MC1sZWFkZXItZ3JhbnRzLTIwMTUtMjAuaHRtbFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiAtIFNlcHRlbWJlciAyMDE1KipcXG5cXG4tIC0gLVxcblxcblRoZSBCZWF1dGlmdWwgT3V0ZG9vcnMvV2VzdCBTdXNzZXggV2Vla2VuZHMgY2FtcGFpZ24gd2FzIGxhdW5jaGVkIGluIEp1bmUgdG8gYW4gYXVkaWVuY2Ugb2YgYXJvdW5kIDEwMCBhdHRlbmRlZXMsIG1hbnkgZnJvbSBsb2NhbCBidXNpbmVzc2VzLiBBIHdlYnNpdGUgaGFzIGJlZW4gZGV2ZWxvcGVkIHRvIHNob3djYXNlIHRob3NlIGJ1c2luZXNzZXMgKGFjY29tbW9kYXRpb24gcHJvdmlkZXJzIGFuZCBmb29kL2RyaW5rIHByb3ZpZGVycykgaW4gV2VzdCBTdXNzZXggdGhhdCBhcmUgd2VsY29taW5nIHRvIGN5Y2xpc3RzIGFuZCB3YWxrZXJzLCBhcyB3ZWxsIGFzIHRob3NlIHByb3ZpZGluZyBzZXJ2aWNlcyB0byBjeWNsaXN0cyBhbmQgd2Fsa2Vycy4gVG8gdGhpcyBlZmZlY3QsIHdlIGhhdmUgNjAgYnVzaW5lc3NlcyBmZWF0dXJlZCBvbiB0aGUgd2Vic2l0ZSBhbmQgaGF2ZSBvbi1nb2luZyBlbmdhZ2VtZW50IHdpdGggdGhlc2UgYnVzaW5lc3NlcyBpbmNsdWRpbmcgb2ZmZXJpbmcgZWxpZ2libGUgYnVzaW5lc3NlcyBmcmVlIGN5Y2xlIHN0YW5kcyB0byBlbnN1cmUgdGhlaXIgYnVzaW5lc3MgaXMgd2VsY29taW5nIHRvIGN5Y2xpc3RzIGFuZCB3YWxrZXJzLlxcblxcblRoZSBXZXN0IFN1c3NleCBXZWVrZW5kcyBsb2NhbCBjYW1wYWlnbiBoYXMgc2VlbiAxMSBsb2NhbCBidXNpbmVzc2VzIGRvbmF0ZSBwcml6ZXMgdG8gb3VyIGNvbXBldGl0aW9uLCB0aGVzZSBoYXZlIHRoZXJlZm9yZSBiZW5lZml0dGVkIGZyb20gcHJlc3MgYW5kIHByb21vdGlvbiB0aHJvdWdoIGNvcnBvcmF0ZSBjaGFubmVscyBhbmQgV2VzdCBTdXNzZXggd2Vla2VuZHMgcHJvbW90aW9uLlxcblxcbkF0IHRoZSBlbmQgb2YgdGhlIGNhbXBhaWduIGluIE9jdG9iZXIgd2Ugd2lsbCBiZSB1bmRlcnRha2luZyBhIGZvbGxvdyB1cCBzdXJ2ZXkgd2l0aCB0aGUgYnVzaW5lc3NlcyBmZWF0dXJlZCBpbiB0aGUgY2FtcGFpZ24gdG8gYXNjZXJ0YWluIHdoYXQgYmVuZWZpdCB0aGV5IGhhdmUgc2VlbiB0aHJvdWdoIHRoZSBjYW1wYWlnbiBhbmQgcHJvbW90aW9uIG9mIFdlc3QgU3Vzc2V4IGFzIGEgdmlzaXRvciBkZXN0aW5hdGlvbi4gVGhlaXIgcmVzcG9uc2VzIHdpbGwgaGVscCB1cyBzaGFwZSBvdXIgZm9jdXMgZm9yIHN1YnNlcXVlbnQgY2FtcGFpZ25zLlxcblxcbldTQ0MgaG9zdGVkIHRoZSBmaXJzdCBIZWFsdGggYW5kIExpZmUgU2NpZW5jZXMgQ2x1c3RlciBldmVudCB3aGljaCBzYXcgb3ZlciA5MCBwZW9wbGUgZnJvbSBsb2NhbCBidXNpbmVzc2VzIGF0dGVuZCBhbmQgaGVhciBhYm91dCB0aGUgc3VwcG9ydCB0aGF0IFdTQ0MgY2FuIG9mZmVyIGFuZCBmdXR1cmUgaW52ZXN0bWVudCBwbGFucyB0aGUgY291bnR5IGNvdW5jaWwgaXMgYWltaW5nIHRvIGRldmVsb3AgZm9yIHRoZSBjbHVzdGVyIGl0c2VsZi4gVGhpcyB3YXMgZm9sbG93ZWQgdXAgd2l0aCBwdWxsaW5nIHRvZ2V0aGVyIGEgZGlyZWN0b3J5IG9mIGFsbCB0aGUgSGVhbHRoIGFuZCBMaWZlIFNjaWVuY2VzIENsdXN0ZXIgYnVzaW5lc3NlcyBpbiBXZXN0IFN1c3NleCAoaW5jbHVkaW5nIGJ1c2luZXNzZXMgYW5kIGluZHVzdHJ5IHN1cHBvcnQgc2VydmljZXMpLiBJdCBmZWF0dXJlcyA2NCBidXNpbmVzc2VzIHRvIGRhdGUuIFRoZSBDb3VudHkgQ291bmNpbCBpcyBjb21taXR0ZWQgdG8gZGV2ZWxvcGluZyBhIHN0cm9uZyBjbHVzdGVyIHdpdGggdGhlc2UgYnVzaW5lc3NlcyBhbmQgYXJlIGRldmVsb3BpbmcgcGxhbnMgdG8gZW5nYWdlIHdpdGggdGhlbSBmdXJ0aGVyIHRvIHN1cHBvcnQgdGhlaXIgbmVlZHMgYW5kIGdyb3d0aCBwcmlvcml0aWVzLCBhcyB3ZWxsIGFzIG9mZmVyaW5nIHNwZWNpZmljIG9wcG9ydHVuaXRpZXMgZm9yIHN1cHBvcnQgYW5kIGFkdmljZSB0YWlsb3JlZCB0byB0aGUgc2VjdG9yLiBBcyBwYXJ0IG9mIHRoaXMgZGV0YWlsZWQgY29udmVyc2F0aW9ucy9tZWV0aW5ncyBoYXZlIHRha2VuIHBsYWNlIGFjcm9zcyB0aGUgbGFzdCBmZXcgbW9udGhzIHdpdGggYSBudW1iZXIgb2YgdGhlc2UgbG9jYWwgYnVzaW5lc3NlcyB3aGljaCBoYXMgaGVscGVkIHRvIHNoYXBlIHRoZSB0aGlua2luZyBhYm91dCBkZXZlbG9waW5nIHRoZSBzZWN0b3IgZnVydGhlci5cXG5cXG42OSBvcmdhbmlzYXRpb25zIGFwcGxpZWQgZm9yIGJ1c2luZXNzIGdyYW50IGZ1bmRpbmcsIHdpdGggMjMgYmVpbmcgc2hvcnRsaXN0ZWQgZm9yIHRoZSBwYW5lbCwgYW5kIDEzIHN1Y2Nlc3NmdWxseSBzZWxlY3RlZC4gRmVlZGJhY2sgYW5kIGFkdmljZSB3YXMgb2ZmZXJlZCB0byB0aG9zZSB1bnN1Y2Nlc3NmdWwgb3JnYW5pc2F0aW9ucyBhbmQgMjcgdG9vayB0aGlzIHVwLiA4IGZ1cnRoZXIgcHJvamVjdHMgaGF2ZSBiZWVuIGFwcHJvdmVkIGZvciB0aGUgZ3Jvd3RoIGdyYW50cyBhcyBwYXJ0IG9mIHRoZSBCdXNpbmVzcyBGaW5hbmNlIFByb2dyYW1tZSwgZnVuZGVkIGJ5IHRoZSBMb2NhbCBHcm93dGggRnVuZC5cXG5cXG5UaGUgR2F0d2ljayBEaWFtb25kIE1lZXQgdGhlIEJ1eWVyIGV2ZW50IHdhcyBoZWxkIGluIEp1bHkgYXQgdGhlIEFyb3JhIEhvdGVsLCBDcmF3bGV5LCBnaXZpbmcgc21hbGwgYW5kIG1lZGl1bSBzaXplZCBlbnRlcnByaXNlcyB0aGUgb3Bwb3J0dW5pdHkgdG8gbWVldCBidXllcnMgZnJvbSBsb2NhbCwgbGFyZ2UgcHVibGljIGFuZCBwcml2YXRlIG9yZ2FuaXNhdGlvbnMuIFRocmVlIGludHJvZHVjdG9yeSB3b3Jrc2hvcHMgd2VyZSBoZWxkIGEgcm91bmQgcHJvY3VyZW1lbnQgaXNzdWVzIHdoaWNoIHdlcmUgYXR0ZW5kZWQgYnkgNTcgV2VzdCBTdXNzZXggYmFzZWQgYnVzaW5lc3Nlcy4gVGhlIGV2ZW50IG9yZ2FuaXNlcnMgd2lsbCBiZSByZXBvcnRpbmcgb24gdGhlIGxldmVsIG9mIGJ1c2luZXNzIHVuZGVydGFrZW4gYXQgdGhlIGV2ZW50IOKAkyB0aGlzIHdpbGwgYmUgYXZhaWxhYmxlIGxhdGVyIGluIFNlcHRlbWJlci5cXG5cXG5QcmVwYXJhdGlvbiBpcyBjb250aW51aW5nIGZvciB0aGUgbGF1bmNoIG9mIHRoZSBMRUFERVIgcHJvZ3JhbW1lIHdoaWNoIGhhcyBiZWVuIGF3YXJkZWQgZnVuZGluZyB0byBzdXBwb3J0IHRoZSBydXJhbCBlY29ub215IOKAkyBpdCBpcyBhbnRpY2lwYXRlZCB0aGF0IExFQURFUiB3aWxsIG9wZW4gZm9yIGFwcGxpY2F0aW9ucyBpbiBPY3RvYmVyLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJMRUFERVIgZ3JhbnRzIGNhbiBiZSB1c2VkIGZvciBwcm9qZWN0cyB0aGF0IHdpbGwgc3VwcG9ydDpcXG5cXG4qIGluY3JlYXNpbmcgZmFybSBwcm9kdWN0aXZpdHlcXG5cXG4qIHNtYWxsIGJ1c2luZXNzIGdyb3d0aCBhbmQgZmFybSBkaXZlcnNpZmljYXRpb25cXG5cXG4qIHJ1cmFsIHRvdXJpc21cXG5cXG4qIHJ1cmFsIHNlcnZpY2VzXFxuXFxuKiBjdWx0dXJhbCBhbmQgaGVyaXRhZ2UgYWN0aXZpdHlcXG5cXG4qIGluY3JlYXNpbmcgZm9yZXN0cnkgcHJvZHVjdGl2aXR5XFxuXFxuRm9yIG1vcmUgZGV0YWlscyBzZWU6XFxuXFxuW2h0dHBzOi8vd3d3Lndlc3RzdXNzZXguZ292LnVrL2J1c2luZXNzLWFuZC1jb25zdW1lcnMvc3RhcnQtb3ItZ3Jvdy15b3VyLWJ1c2luZXNzL3J1cmFsLWRldmVsb3BtZW50LXByb2dyYW1tZS1sZWFkZXItZnVuZGluZy9dWzBdXFxuXFxuWzBdOiBodHRwczovL3d3dy53ZXN0c3Vzc2V4Lmdvdi51ay9idXNpbmVzcy1hbmQtY29uc3VtZXJzL3N0YXJ0LW9yLWdyb3cteW91ci1idXNpbmVzcy9ydXJhbC1kZXZlbG9wbWVudC1wcm9ncmFtbWUtbGVhZGVyLWZ1bmRpbmcvXCJ9XSxcInVzZV9jdXN0b21fdGl0bGVcIjp0cnVlLFwiY3VzdG9tX3RpdGxlXCI6XCJTdXBwb3J0aW5nIGJ1c2luZXNzZXMgYWNyb3NzIFdlc3QgU3Vzc2V4IHdpdGggV1NDQy1sZWQgYW5kIGJ1c2luZXNzIHN1cHBvcnQgaW5pdGlhdGl2ZXMuICBcIixcInVzZV9jdXN0b21fc3VidGl0bGVcIjp0cnVlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJBaW0gdG8gc3VwcG9ydCBhdCBsZWFzdCAzMDAgYnVzaW5lc3NlcywgdGhyb3VnaCBhIHJhbmdlIG9mIG5ldHdvcmtpbmcgaW5pdGlhdGl2ZXNcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxNy0wNC0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiJidXNpbmVzc2VzIHBlciB5ZWFyIiwidGFyZ2V0IjozMDAsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoiOTltMy1ka2d6In0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjozLFwieWVhclwiOjIwMTd9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwiaW5jcmVhc2VcIn0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9LFwiZW5kXCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNH19LFwic3RhcnRcIjpcIjIwMTQtMDEtMDFUMDA6MDA6MDAuMDAwXCIsXCJlbmRcIjpcIjIwMTQtMDEtMDFUMjM6NTk6NTkuMDAwXCIsXCJtZXRyaWNcIjp7XCJtZXRhZGF0YVwiOlwie1xcXCJ3aXphcmRcXFwiOntcXFwiZmlsdGVyX2FzdFxcXCI6W3tcXFwidmFsdWVzXFxcIjpbe31dfV19fVwifX0sXCJuYW1lXCI6XCJUaGUgbnVtYmVyIG9mIGJ1c2luZXNzZXMgc3VwcG9ydGVkIGJ5IFdTQ0MgbGVkIGFuZCBzdXBwb3J0ZWQgYnVzaW5lc3Mgc3VwcG9ydCBpbml0aWF0aXZlc1wiLFwieVNjYWxlXCI6e1widXNlX2RlZmF1bHRcIjp0cnVlfX0ifSwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMDk6MTE6MTIuNzM0WiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDA5OjExOjEyLjczNFoiLCJ0YXJnZXRfdG9sZXJhbmNlIjozMCwiaWQiOiJlYTg3LTNnMmIifSwicmVsYXRlZF9tZWFzdXJlcyI6W10sImJhc2VfZGFzaGJvYXJkIjoiNTc0ci1oNW5jIiwidXBkYXRlZF9hdCI6IjIwMTgtMDctMjNUMDk6MTE6MjIuNjkwWiIsImNyZWF0ZWRfYXQiOiIyMDE4LTA3LTIzVDA5OjExOjEyLjc4MVoiLCJ2ZXJzaW9uIjoiMjAxOC0wNy0yM1QwOToxMToyMi42OTBaIiwiY3JlYXRlZF9ieSI6Ijc5N2ktNnI5ZyJ9LHsiaWQiOiJwamF0LXdzc3MiLCJuYW1lIjoiMTYtMTd5cnMgaW4gRWR1Y2F0aW9uLCBFbXBsb3ltZW50IG9yIFRyYWluaW5nICIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwiaWNvblwiOlwidGV4dFwiLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqTWFyY2ggMjAxOCoqXFxuXFxuLSAtIC1cXG5cXG5UaGUgbGF0ZXN0IGZpZ3VyZXMgd2UgaGF2ZSB3ZXJlIHRob3NlIGZvciB0aGUgcG9zaXRpb24gYXQgdGhlIGVuZCBvZiBKYW51YXJ5IDIwMTgsIHdoaWNoIHNob3dlZCB0aGUgZm9sbG93aW5nOi1cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvOENFNDAyOEQtNThCQy00RjNGLThGNzEtMkVENkYzNzlCRjBFXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqSmFudWFyeSAyMDE4KipcXG5cXG4tIC0gLVxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9DNTY4REExRC1BQkJBLTQ5MjEtODE4Ni0zMzg3ODExOUM4QTRcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDMgLSBEZWNlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBBdXRob3JpdHkgaXMgY3VycmVudGx5IHN0aWxsIGluIHRoZSBtaWRkbGUgb2YgdGhlIHllYXJseSBBbm51YWwgQWN0aXZpdHkgU3VydmV5IHRvIGNvbmZpcm0gdGhlIGFjdHVhbCBkZXN0aW5hdGlvbnMgb2YgYWxsIHlvdW5nIHBlb3BsZSBvZiBhY2FkZW1pYyBhZ2UgMTYgYW5kIDE3LiBUaGlzIHdvcmsgd2lsbCBjb250aW51ZSBiZXR3ZWVuIFNlcHRlbWJlciAyMDE3IGFuZCBGZWJydWFyeSAyMDE4IGFuZCB0aGVyZWZvcmUgdGhlIGRhdGEgd2lsbCBub3QgYmUgcm9idXN0IHVudGlsIHRoZSBlbmQgb2YgdGhpcyB0cmFja2luZyBwZXJpb2QuIFRoZSBsYXRlc3QgcGVyZm9ybWFuY2UgZGF0YSBhdmFpbGFibGUgZnJvbSB0aGUgRGVwYXJ0bWVudCBmb3IgRWR1Y2F0aW9uIChEZkUpIGlzIGZvciB0aGUgbW9udGggb2YgTm92ZW1iZXIgMjAxNyBhbmQgdGhpcyBpcyBzaG93biBpbiB0aGUgdGFibGUgYmVsb3cuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzk2QkU2QjRDLUE2NkItNDkzNS04MkVGLUNFN0RBRDgzN0REMVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJXZXN0IFN1c3NleCBpcyBjdXJyZW50bHkgaW4gdGhlIGZvdXJ0aCBxdWludGlsZSBvZiBBdXRob3JpdGllcyB3aXRoaW4gdGhlIFNvdXRoIEVhc3QgZm9yIGl0cyBwZXJmb3JtYW5jZSBvbiB0aGUgcGVyY2VudGFnZSBvZiB5b3VuZyBwZW9wbGUgd2l0aCBhbiDigJh1bmtub3du4oCZZGVzdGluYXRpb24uIEhvd2V2ZXIsIG9uZSBjYW4gc2VlIGZyb20gdGhlIHRhYmxlIGJlbG93IHRoYXQgdGhlIGN1cnJlbnQgdW5rbm93biBmaWd1cmUgaXMgb3ZlciAxJSBsb3dlciB0aGFuIHRoZSBzYW1lIG1vbnRoIGxhc3QgeWVhci4gV2VzdCBTdXNzZXggaXMgb24gYSBwYXIgd2l0aCB0aGUgU291dGggRWFzdCBhbmQgTmF0aW9uYWwgQXZlcmFnZSBpbiB0ZXJtcyBvZiB0aGUgcGVyY2VudGFnZSBvZiB5b3VuZyBwZW9wbGUgbWVldGluZyB0aGVpciBEdXR5IHRvIFBhcnRpY2lwYXRlIChJbiBMZWFybmluZykgYW5kIGFnYWluLCB0aGVyZSBoYXMgYmVlbiBhIHNsaWdodCBpbXByb3ZlbWVudCBvbiBsYXN0IHllYXJz4oCZIGZpZ3VyZXMgc28gZmFyIHRoaXMgeWVhci4gWW91bmcgcGVvcGxlIHdobyBhcmUgTkVFVCByZW1haW4gbG93LCBidXR0IGhpcyBtYXkgaW5jcmVhc2Ugb25jZSBtb3JlIHlvdW5nIHBlb3BsZSBiZWNvbWUg4oCYa25vd27igJkgYXMgY29udGFjdCBjb250aW51ZXMgdG8gYmUgYXR0ZW1wdGVkLlxcblxcbiBcIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNkNBMkNGOTctREEyOS00NDQ5LTlDMTEtN0ZFNzM0M0U3MEM3XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIkF0dGVtcHRzIHRvIGNvbnRhY3Qgb3VyIHJlbWFpbmluZyDigJh1bmtub3du4oCZIHlvdW5nIHBlb3BsZSBjb250aW51ZSB0byBiZSBtYWRlIHVzaW5nIGEgbWl4dHVyZSBvZiB0aGUgV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgQ29udGFjdCBDZW50cmUgc3RhZmYsIElQRUggSHViIHN0YWZmLG9uZ29pbmcgY29tbXVuaWNhdGlvbiB3aXRoIHNjaG9vbHMgYW5kIHBvc3QtMTYgcHJvdmlkZXJzIGFuZCBsaWFpc29uIHdpdGggbmVpZ2hib3VyaW5nIGF1dGhvcml0aWVzIGFuZCB1c2luZyBhbiBvbi1saW5lIHN1cnZleSBmb3IgeW91bmcgcGVvcGxlIGFuZCBwYXJlbnRzIHRvIGFjY2VzcyBkaXJlY3QuIFRoZSBtYWpvcml0eSBvZiBvdXIgcmVtYWluaW5nIOKAmHVua25vd27igJkgeW91bmcgcGVvcGxlIGFyZSBvZiBhY2FkZW1pYyBhZ2UgMTcgKHllYXIgMTMpIHNvIHdvcmsgaXMgY3VycmVudGx5IHVuZGVyd2F5IHRvIHNwZWNpZmljYWxseSB0YXJnZXQgY29udGFjdGluZyB0aGlzIGNvaG9ydC5cXG5cXG4gXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAyIC0gU2VwdGVtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIGxhdGVzdCBkYXRhIGF2YWlsYWJsZSBmcm9tIHRoZSBEZXBhcnRtZW50IGZvciBFZHVjYXRpb24gKERGRSkgaXMgZm9yIHRoZSBtb250aCBvZiBBdWd1c3QgMjAxNyBhbmQgdGhpcyBpcyBzaG93biBpbiB0aGUgdGFibGUgYmVsb3cuIEZyb20gU2VwdGVtYmVyIHRoZSBBdXRob3JpdHkgd2lsbCBiZSB1bmRlcnRha2luZyB0aGUgQW5udWFsIEFjdGl2aXR5IFN1cnZleSB0byBjb25maXJtIHRoZSBhY3R1YWwgZGVzdGluYXRpb25zIG9mIGFsbCB5b3VuZyBwZW9wbGUgb2YgYWNhZGVtaWMgYWdlIDE2IGFuZCAxNy4gVGhpcyB3b3JrIHdpbGwgY29udGludWUgYmV0d2VlbiBTZXB0ZW1iZXIgMjAxNyBhbmQgRmVicnVhcnkgMjAxOCBhbmQgdGhlcmVmb3JlIHRoZSBkYXRhIHdpbGwgbm90IGJlIHJvYnVzdCB1bnRpbCB0aGUgZW5kIG9mIHRoaXMgdHJhY2tpbmcgcGVyaW9kLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9BNkI0RDk0My1DNkUxLTRFRjctOTJCRi0wNzkwQjY4MENEMjNcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlIERmRSBkbyBub3QgbW9uaXRvciB0aGUgcGVyZm9ybWFuY2Ugb2YgQXV0aG9yaXRpZXMgb3ZlciB0aGUgc3VtbWVyIG1vbnRocyBkdWUgdG8geW91bmcgcGVvcGxlIGZpbmlzaGluZyBjb3Vyc2VzIGVhcmx5IChpLmUuIE1heS9KdW5lKSBhbmQgdGhlIGltcGVuZGluZyBBbm51YWwgQWN0aXZpdHkgU3VydmV5IHdoaWNoIHN0YXJ0cyBpbiBTZXB0ZW1iZXIuIEFzIHN1Y2gsIGNvbXBhcmlzb24gd2l0aCB0aGUgcmVnaW9uYWwgYW5kIG5hdGlvbmFsIGRhdGEgbmVlZHMgdG8gYmUgdHJlYXRlZCB3aXRoIHNvbWUgY2F1dGlvbiBmb3IgQXVndXN0LiBUaGUgcGVyY2VudGFnZSBvZiB5b3VuZyBwZW9wbGUg4oCYSW4gTGVhcm5pbmfigJkgaW4gV2VzdCBTdXNzZXggaXMgaGlnaGVyIGZvciBBdWd1c3QgdGhhbiB0aGUgcmVnaW9uYWwgYW5kIG5hdGlvbmFsIGZpZ3VyZXMuIFRob3NlIGluIEVFVCByZW1haW4gc2xpZ2h0bHkgbG93ZXIgaW4gV2VzdCBTdXNzZXggY29tcGFyZWQgd2l0aCB0aGUgbmF0aW9uYWwgcGljdHVyZSwgYWx0aG91Z2ggV2VzdCBTdXNzZXggaGFzIGEgaGlnaGVyIHBlcmNlbnRhZ2UgRUVUIHRoYW4gdGhlIHJlZ2lvbi4gMTYgYW5kIDE3IHllYXIgb2xkcyB3aG8gYXJlIE5FRVQgYWxzbyByZW1haW4gbG93ZXIgaW4gV2VzdCBTdXNzZXguIFdoaWxlIHRoZSBwZXJjZW50YWdlIG9mIHlvdW5nIHBlb3BsZSB3aXRoIGFuIHVua25vd24gRUVUIHNpdHVhdGlvbiByZW1haW5zIGhpZ2ggaW4gV2VzdCBTdXNzZXggaW4gY29tcGFyaXNvbiB3aXRoIG90aGVyIGFyZWFzLCB0aGUgZ2FwIGhhcyBmYWxsZW4gY29uc2lkZXJhYmx5IGZvciBBdWd1c3QuIEhvd2V2ZXIsIHRoaXMgaXMgbW9zdCBsaWtlbHkgZHVlIHRvIG90aGVyIGFyZWFzIHdhaXRpbmcgdG8gcmUtY29uZmlybSB0aGUgZGVzdGluYXRpb25zIG9mIHRoZWlyIHNjaG9vbCBsZWF2ZXJzIGFuZCB5ZWFyIDEzIHlvdW5nIHBlb3BsZSBmcm9tIFNlcHRlbWJlciBvbndhcmRzLiBBY29tcGFyaXNvbiBvZiB0aGUgY3VycmVudCBBdWd1c3QgZGF0YSB3aXRoIEF1Z3VzdCAyMDE2LCBzaG93cyB0aGF0IGltcHJvdmVtZW50cyBoYXZlIGJlZW4gbWFkZSBhY3Jvc3MgdGhlIGJvYXJkIHdpdGggVW5rbm93biBmaWd1cmVzIDEuMiUgbG93ZXIgdGhpcyB5ZWFyOyBJbiBMZWFybmluZyBmaWd1cmVzIDEuNiUgaGlnaGVyOyBORUVUIGZpZ3VyZXMgMC4zJSBsb3dlciBhbmQgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhvc2UgaW4gYW55IGZvcm0gb2YgRUVUIGJlaW5nIDEuNCUgaGlnaGVyLiBBbHRob3VnaCB3ZSBoYXZlIGZvdW5kIG91dCB0aGUgRUVUIGRldGFpbHMgb2YgbW9yZSB5b3VuZyBwZW9wbGUgdGhpcyB5ZWFyLCBvdXIgTkVFVCBmaWd1cmVzIGhhdmUgcmVkdWNlZCwgdGhlcmVieSBzdWdnZXN0aW5nIHRoYXQgbWFueSBvZiBvdXIgdW5rbm93bnMgbWF5IHdlbGwgYmUgcGFydGljaXBhdGluZyBpbiBzb21lIGZvcm0gb2YgRUVUIGFzIG9wcG9zZWQgdG8gYmVpbmcgTkVFVC5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNUNDRUVENDItNjMyNy00MTY4LUFEMjAtMThBMUNBM0Y5MjdBXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlJlZHVjaW5nIG91ciBVbmtub3duIGZpZ3VyZSBhbmQgaW5jcmVhc2luZyBvdXIgY29uZmlkZW5jZSBhcm91bmQgb3VyIEVFVCBkYXRhIGlzIGEga2V5IE91dGNvbWUgSW5kaWNhdG9yIGZvciB0aGUgbmV3IElQRUggc2VydmljZS4gVGhlIG5ldyBJUEVIIHNlcnZpY2UgaW52b2x2ZXMgbXVsdGkgYWdlbmN5IGRlbGl2ZXJ5IHRocm91Z2ggYSBsb2NhbGlzZWQgSHViIHN0cnVjdHVyZS4gVGhlc2UgSHVicyBoYXZlIGEgY2xlYXIgcmVtaXQgdG8gZGV2ZWxvcCBsaW5rcyB3aXRoaW4gdGhlaXIgY29tbXVuaXRpZXMgYW5kIHdpdGggcGFydG5lcnMgdG8gaW1wcm92ZSB0aGUgb3V0Y29tZXMgZm9yIGNoaWxkcmVuLCB5b3VuZyBwZW9wbGUgYW5kIGZhbWlsaWVzLCBpbmNsdWRpbmcgZGV2ZWxvcGluZyBmdXJ0aGVyIGxpbmtzIHdpdGggbG9jYWwgc2Nob29scyBhbmQgY29sbGVnZXMgdG8gZW5hYmxlIGEgbW9yZSBsb2NhbGlzZWQgdHJhY2tpbmcgb2YgdGhvc2UgeW91bmcgcGVvcGxlIGF0IHJpc2sgb2YgTkVFVCBhbmQgdGhvc2Ugd2hvc2UgRUVUIHNpdHVhdGlvbiBpcyB1bmtub3duLiBJbmNsdWRlZCBpbiB0aGlzIHdpbGwgYmUgcGFydG5lcnNoaXAgd2l0aCBDYXJlZXJzIEFkdmlzZXJzIHdpdGhpbiBFZHVjYXRpb24gYW5kIFNraWxscyB3aG8gd2lsbCBiZSBzaGlmdGluZyBmb2N1cyB0byB3b3JrIG1vcmUgd2l0aCBORUVUIHlvdW5nIHBlb3BsZSBpbiB0aGUgZnV0dXJlLlxcblxcbiBcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIGxhdGVzdCBkYXRhIGF2YWlsYWJsZSBmcm9tIHRoZSBEZXBhcnRtZW50IGZvciBFZHVjYXRpb24gKERGRSkgaXMgZm9yIHRoZSBtb250aCBvZiBNYXkgMjAxNyBhbmQgdGhpcyBpcyBzaG93biBpbiB0aGUgdGFibGUgYmVsb3cuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0JGQzlCNTNGLUE1MzQtNEM2Qi05RkJCLTBCN0E2QzE0RDg0OVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGUgcGVyY2VudGFnZSBvZiB5b3VuZyBwZW9wbGUg4oCYSW4gTGVhcm5pbmfigJkgYW5kIGluIEVFVCByZW1haW5zIHNsaWdodGx5IGxvd2VyIGluIFdlc3QgU3Vzc2V4IGNvbXBhcmVkIHdpdGggdGhlIHJlZ2lvbmFsIGFuZCBuYXRpb25hbCBwaWN0dXJlLiAxNiBhbmQgMTcgeWVhciBvbGRzIHdobyBhcmUgTkVFVCBhbHNvIHJlbWFpbiBsb3dlci4gSG93ZXZlciwgdGhlIHBlcmNlbnRhZ2Ugb2YgeW91bmcgcGVvcGxlIHdpdGggYW4gdW5rbm93biBFRVQgc2l0dWF0aW9uIHJlbWFpbnMgaGlnaCBpbiBXZXN0IFN1c3NleCBpbiBjb21wYXJpc29uIHdpdGggdGhlIGZpZ3VyZSBmb3IgdGhlIHJlZ2lvbiBhbmQgbmF0aW9uYWxseSwgd2hpY2ggaGFzIHRoZSBpbXBhY3Qgb2YgZGVjcmVhc2luZyBvdXIgY29uZmlkZW5jZSBpbiBvdXIgSW4gTGVhcm5pbmcsIEVFVCBhbmQgTkVFVCBkYXRhLiBUaGUgdGFibGUgYmVsb3cgc2hvd3MgcGVyZm9ybWFuY2UgZm9yIHRoZSBsYXN0IDMgbW9udGhzIG9mIGF2YWlsYWJsZSBkYXRhLCBpbmNsdWRpbmcgdGhlIDMgbW9udGggYXZlcmFnZS4gVGhpcyBzaG93cyBhIGZhaXJseSBzdGF0aWMgcGljdHVyZSBhY3Jvc3MgdGhlIGJvYXJkLCBhbHRob3VnaCBvdXIgVW5rbm93biBmaWd1cmVzIGhhdmUgcmlzZW4gc2xpZ2h0bHkgc2luY2UgTWFyY2guIEhvd2V2ZXIsIGEgcmlzZSBpbiB1bmtub3ducyBpcyB0byBiZSBleHBlY3RlZCBhcyB0aGUgeWVhciBwcm9ncmVzc2VzLCBlc3BlY2FpbGx5IHRocm91Z2hvdXQgdGhlIHN1bW1lciBwZXJpb2QsIGFzIHlvdW5nIHBlb3BsZSBzdGFydCB0byBmaW5pc2ggZWR1Y2F0aW9uIGFuZCB0cmFpbmluZyBwbGFjZW1lbnRzLiBGb3IgdGhpcyByZWFzb24sIHRoZSBEZkUgZG8gbm90IG1vbml0b3IgdGhlIHBlcmZvcm1hbmNlIG9mIGxvY2FsIGF1dGhvcml0aWVzIGluIHRlcm1zIG9mIHRoZWlyIHVua25vd24gY29ob3J0IG92ZXIgdGhlIHN1bW1lciBtb250aHMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0YyQTA3MEI1LTc1NzQtNDBBQi1CRDc0LTkxMUJBMjQxQ0IxM1wifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJBIGNvbXBhcmlzb24gd2l0aCB0aGUgY3VycmVudCBNYXkgZGF0YSB3aXRoIE1heSAyMDE2LCBzaG93cyB0aGF0IGltcHJvdmVtZW50cyBoYXZlIGJlZW4gbWFkZSBhY3Jvc3MgdGhlIGJvYXJkIHdpdGggVW5rbm93biBmaWd1cmVzIDIuMiUgbG93ZXIgdGhpcyB5ZWFyLCBJbiBMZWFybmluZyBmaWd1cmVzIDIuNSUgaGlnaGVyLCBORUVUIGZpZ3VyZXMgMC4zJSBsb3dlciBhbmQgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhvc2UgaW4gYW55IGZvcm0gb2YgRUVUIGJlaW5nIDIuNSUgaGlnaGVyLiBBbHRob3VnaCB3ZSBoYXZlIGZvdW5kIG91dCB0aGUgRUVUIGRldGFpbHMgb2YgbW9yZSB5b3VuZyBwZW9wbGUgdGhpcyB5ZWFyLCBvdXIgTkVFVCBmaWd1cmVzIGhhdmUgcmVkdWNlZCwgdGhlcmVieSBzdWdnZXN0aW5nIHRoYXQgbWFueSBvZiBvdXIgdW5rbm93bnMgbWF5IHdlbGwgYmUgcGFydGljaXBhdGluZyBpbiBzb21lIGZvcm0gb2YgRUVUIGFzIG9wcG9zZWQgdG8gYmVpbmcgTkVFVC5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvRkZEMTU4NkUtMUNDNy00OEI3LTg3Q0YtOEY1RjExNEI3OTZBXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlJlZHVjaW5nIG91ciBVbmtub3duIGZpZ3VyZSBhbmQgaW5jcmVhc2luZyBvdXIgY29uZmlkZW5jZSBhcm91bmQgb3VyIEVFVCBkYXRhIGlzIGEga2V5IE91dGNvbWUgSW5kaWNhdG9yIGZvciB0aGUgbmV3IElQRUggc2VydmljZS4gVGhlIG5ldyBJUEVIIHNlcnZpY2UgaW52b2x2ZXMgbXVsdGkgYWdlbmN5IGRlbGl2ZXJ5IHRocm91Z2ggYSBsb2NhbGlzZWQgSHViIHN0cnVjdHVyZS4gVGhlc2UgSHVicyBoYXZlIGEgY2xlYXIgcmVtaXQgdG8gZGV2ZWxvcCBsaW5rcyB3aXRoaW4gdGhlaXIgY29tbXVuaXRpZXMgYW5kIHdpdGggcGFydG5lcnMgdG8gaW1wcm92ZSB0aGUgb3V0Y29tZXMgZm9yIGNoaWxkcmVuLCB5b3VuZyBwZW9wbGUgYW5kIGZhbWlsaWVzLCBpbmNsdWRpbmcgZGV2ZWxvcGluZyBmdXJ0aGVyIGxpbmtzIHdpdGggbG9jYWwgc2Nob29scyBhbmQgY29sbGVnZXMgdG8gZW5hYmxlIGEgbW9yZSBsb2NhbGlzZWQgdHJhY2tpbmcgb2YgdGhvc2UgeW91bmcgcGVvcGxlIGF0IHJpc2sgb2YgTkVFVCBhbmQgdGhvc2Ugd2hvc2UgRUVUIHNpdHVhdGlvbiBpcyB1bmtub3duLiBJbmNsdWRlZCBpbiB0aGlzIHdpbGwgYmUgcGFydG5lcnNoaXAgd2l0aCBDYXJlZXJzIEFkdmlzZXJzIHdpdGhpbiBFZHVjYXRpb24gYW5kIFNraWxscyB3aG8gd2lsbCBiZSBzaGlmdGluZyBmb2N1cyB0byB3b3JrIG1vcmUgd2l0aCBORUVUIHlvdW5nIHBlb3BsZSBpbiB0aGUgZnV0dXJlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgNCAtIE1hcmNoIDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBmaXJzdCBkYXRhIHRhYmxlIGJlbG93IHByb3ZpZGVzIHRoZSBOb3ZlbWJlciB0byBKYW51YXJ5IGF2ZXJhZ2UgZmlndXJlcy4gQWx0aG91Z2ggZGF0YSBpcyBzdWJtaXR0ZWQgdG8gdGhlIERmRSBvbiBhIG1vbnRobHkgYmFzaXMsIHRoZXkgdXNlIGFuZCBwdWJsaXNoIHRoZSBOb3ZlbWJlciB0byBKYW51YXJ5IGF2ZXJhZ2UgZmlndXJlcyB0byBtZWFzdXJlIHRoZSBwZXJmb3JtYW5jZSBvZiBlYWNoIEF1dGhvcml0eSBldmVyeSB5ZWFyLiBUaGUgQXV0dW1uIHBlcmlvZCBpcyB0aGUgcGVhayBvZiB0cmFja2luZyBhY3Rpdml0eSBkdWUgdG8gc2Vla2luZyB0byBkZXRlcm1pbmUgdGhlIGRlc3RpbmF0aW9ucyBvZiBhbGwgdGhvc2UgeW91bmcgcGVvcGxlIHN0YXJ0aW5nIGEgbmV3IGFjYWRlbWljIHllYXIuIFRoZSBOYXRpb25hbCBhbmQgU291dGggRWFzdCBwZXJmb3JtYW5jZSBpcyBwcm92aWRlZCBmb3IgY29tcGFyaXNvbiBhbmQgdGhlIGNvbW1lbnRhcnkgYmVsb3cgZGVtb25zdHJhdGVzIGhvdyB0aGlzIHllYXLigJlzIHBlcmZvcm1hbmNlIGNvbXBhcmVzIHRvIHRoZSBzYW1lIGF2ZXJhZ2UgZm9yIDIwMTUvMTYuIFRoZSBzZWNvbmQgZGF0YSB0YWJsZSBwcm92aWRlcyB0aGUgbW9zdCByZWNlbnQgZGF0YSByZWxlYXNlZCB0byB1cyBmcm9tIHRoZSBEZkUuIE1hcmNoIGRhdGEgd2lsbCBiZSBtYWRlIGF2YWlsYWJsZSB0byB1cyBtaWQtQXByaWwgMjAxNy5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNTExOTdEOUItNTg2Ny00N0FELUI4RkYtQTQ3NzE2ODJBNzNCXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIkNvbW1lbnRhcnkgaW5jbHVkaW5nIHVzZWZ1bCBjb250ZXh0dWFsIGluZm9ybWF0aW9uOlxcblxcbkZyb20gU2VwdGVtYmVyIDIwMTYgTG9jYWwgQXV0aG9yaXRpZXMgYXJlIG9ubHkgcmVxdWlyZWQgdG8gdHJhY2sgYW5kIHN1Ym1pdCBpbmZvcm1hdGlvbiBhYm91dCB5b3VuZyBwZW9wbGUgdXAgdG8gdGhlIGVuZCBvZiB0aGUgYWNhZGVtaWMgeWVhciBpbiB3aGljaCB0aGV5IGhhdmUgdGhlaXIgMTh0aCBiaXJ0aGRheSBpLmUuIGFjYWRlbWljIGFnZSAxNiBhbmQgMTcteWVhci1vbGRzLiBMb2NhbCBBdXRob3JpdGllcyBubyBsb25nZXIgaGF2ZSB0byBzdWJtaXQgZGF0YSBmb3IgdGhvc2UgYWJvdmUgdGhpcyBhZ2UgcmFuZ2UgdW5sZXNzIHRoZSB5b3VuZyBwZXJzb24gaGFzIGEgU3BlY2lhbCBFZHVjYXRpb25hbCBOZWVkIG9yIERpc2FiaWxpdHkgKFNFTkQpIGFuZCBoYXMgYW4gRWR1Y2F0aW9uLCBIZWFsdGggYW5kIENhcmUgUGxhbiAoRUhDUCkuIEFzIHN1Y2gsIEVkdWNhdGlvbiwgVHJhaW5pbmcgYW5kIEVtcGxveW1lbnQgZGF0YSBpcyBvbmx5IGN1cnJlbnRseSBhdmFpbGFibGUgYW5kIGFjY3VyYXRlIG9uIHRob3NlIHlvdW5nIHBlb3BsZSBvZiBhY2FkZW1pYyBhZ2UgMTYgYW5kIDE3LiBUaGlzIGNvaG9ydCBzaXplIGF0IHRoZSBlbmQgb2YgSmFudWFyeSAyMDE3IHdhcyAxNyw1OTgsIHRoZSBmb3VydGggbGFyZ2VzdCBpbiB0aGUgU291dGggRWFzdC5cXG5cXG5JbiBTdW1tYXJ5LCBhbHRob3VnaCB0aGUgcGVyY2VudGFnZSBvZiB5b3VuZyBwZW9wbGUgd2l0aCBhbiB1bmtub3duIEVFVCBzaXR1YXRpb24gaW4gV2VzdCBTdXNzZXggcmVtYWlucyBoaWdoZXIgdGhhbiB0aGUgTmF0aW9uYWwgYW5kIFJlZ2lvbmFsIGZpZ3VyZXMgYW5kIHRoZSBwZXJjZW50YWdlIEluIExlYXJuaW5nIHJlbWFpbnMgbG93ZXIsIGltcHJvdmVtZW50cyBoYXZlIGJlZW4gbWFkZSB0aGlzIHllYXIgd2l0aCBvdmVyIGEgMiVyZWR1Y3Rpb24gaW4gdGhlIDMgbW9udGggYXZlcmFnZSB1bmtub3duIHBlcmNlbnRhZ2UgYW5kIGEgMyUgaW5jcmVhc2UgaW4gdGhlIDMgbW9udGggYXZlcmFnZSBvZiB0aG9zZSBJbiBMZWFybmluZy4gTGF0ZXN0IGZpZ3VyZXMgc2hvdyB0aGF0IG92ZXIgOTAlIG9mIHlvdW5nIHBlb3BsZSBvZiBhY2FkZW1pYyBhZ2UgMTYgYW5kIDE3IGFyZSBtZWV0aW5nIHRoZWlyIER1dHkgdG8gUGFydGljaXBhdGUuIFRoZSBwZXJjZW50YWdlIG9mIHlvdW5nIHBlb3BsZSBpbiBlZHVjYXRpb24sIHRyYWluaW5nIG9yIGVtcGxveW1lbnQgaGFzIHJpc2VuIGZyb20gODcuNyUgaW4gMjAxNS8xNiB0byA5MC4xJSB0aGlzIHllYXIgKDMtbW9udGggYXZlcmFnZSkuIEluIGFkZGl0aW9uIHRvIHRoZXNlIGltcHJvdmVtZW50cywgdGhlIHBlcmNlbnRhZ2Ugb2YgTkVFVCB5b3VuZyBwZW9wbGUgcmVtYWlucyBsb3dlciB0aGFuIHRoZSBuYXRpb25hbCBhbmQgcmVnaW9uYWwgZmlndXJlcyBhbmQgd2hlcmVhcyB0aGUgTkVFVCAzIG1vbnRoIGF2ZXJhZ2UgcGVyY2VudGFnZSBmb3IgdGhlIHJlZ2lvbiBhbmQgbmF0aW9uYWxseSBoYXMgcmVtYWluZWQgc3RhdGljLCBXZXN0IFN1c3NleCBoYXMgc2VlbiBhIHJlZHVjdGlvbiBvZiAwLjQlLlxcblxcblRoaXMgaW1wcm92ZW1lbnQgdG8gcGVyZm9ybWFuY2UgaGFzIGJlZW4gYWNoaWV2ZWQgdGhyb3VnaCBhIG51bWJlciBvZiBkZXZlbG9wbWVudHMgdG8gb3VyIHRyYWNraW5nIGFjdGl2aXR5LCBpbmNsdWRpbmcgaW1wcm92aW5nIHRoZSBzcGVlZCBhdCB3aGljaCBkYXRhIGlzIHJlY2VpdmVkIGFuZCB1cGxvYWRlZCBmcm9tIHNjaG9vbHMgYW5kIHBvc3QtMTYgcHJvdmlkZXJzLCBtYWtpbmcgdXNlIG9mIFNNUyBhbmQgb24tbGluZSBzdXJ2ZXlzIGZvciBwYXJlbnRzIGFuZCB5b3VuZyBwZW9wbGUgYW5kIGFkb3B0aW5nIGEgbW9yZSB0YXJnZXRlZCBhcHByb2FjaCB0byBjb250YWN0aW5nIHBhcmVudHMgYW5kIHlvdW5nIHBlb3BsZSB1c2luZyB0aGUgRmluZCBpdCBPdXQgQ2VudHJlcyBhbmQgQ29udGFjdCBDZW50cmUuXFxuXFxuR29pbmcgZm9yd2FyZCxkZXZlbG9wbWVudHMgdG8gdGhlIHdheSB5b3VuZyBwZW9wbGUgYXJlIHRyYWNrZWQgYXJlIHN0aWxsIHVuZGVyd2F5IGluY2x1ZGluZyBzdHJlbmd0aGVuaW5nIG91ciBTRU5EIGRhdGEgYW5kIHJlZmluaW5nIG91ciB0cmFja2luZyB0aW1lbGluZSB0byBtYWtlIHJlY2VpcHQgYW5kIHVwbG9hZCBvZiBkYXRhIGV2ZW4gbW9yZSBlZmZpY2llbnQuIEZ1cnRoZXJtb3JlLHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIG5ldyBJbnRlZ3JhdGVkIFByZXZlbnRpb24gYW5kIEVhcmxpZXN0IEhlbHAgU2VydmljZSxpbnZvbHZpbmcgbXVsdGkgYWdlbmN5IGRlbGl2ZXJ5IHRocm91Z2ggbG9jYWxpc2VkIEh1YiBzdHJ1Y3R1cmUsIHdpbGwgZGV2ZWxvcCBmdXJ0aGVyIHRoZSBsaW5rcyB3aXRoIGxvY2FsIHNjaG9vbHMgYW5kIGNvbGxlZ2VzIGFuZCBlbmFibGUgbW9yZSBsb2NhbGlzZWQgdHJhY2tpbmcgb2YgdGhvc2UgeW91bmcgcGVvcGxlIGF0IHJpc2sgb2YgTkVFVCBhbmQgdGhvc2Ugd2hvc2UgRUVUIHNpdHVhdGlvbiBpcyB1bmtub3duLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyAtIHRvIERlY2VtYmVyIDIwMTYqKlxcblxcbi0gLSAtXFxuXFxuRnJvbSBTZXB0ZW1iZXIgMjAxNiBMb2NhbCBBdXRob3JpdGllcyBhcmUgb25seSByZXF1aXJlZCB0byB0cmFjayBhbmQgc3VibWl0IGluZm9ybWF0aW9uIGFib3V0IHlvdW5nIHBlb3BsZSB1cCB0byB0aGUgZW5kIG9mIHRoZSBhY2FkZW1pYyB5ZWFyIGluIHdoaWNoIHRoZXkgaGF2ZSB0aGVpciAxOHRoIGJpcnRoZGF5IGkuZS4gYWNhZGVtaWMgYWdlIDE2IGFuZCAxNy15ZWFyLW9sZHMuIExvY2FsIEF1dGhvcml0aWVzIG5vIGxvbmdlciBoYXZlIHRvIHN1Ym1pdCBkYXRhIGZvciB0aG9zZSBhYm92ZSB0aGlzIGFjYWRlbWljIGFnZSByYW5nZSB1bmxlc3MgdGhlIHlvdW5nIHBlcnNvbiBoYXMgYSBTcGVjaWFsIEVkdWNhdGlvbmFsIE5lZWQgb3IgRGlzYWJpbGl0eSAoU0VORCkgYW5kIGhhcyBhbiBFZHVjYXRpb24sIEhlYWx0aCBhbmQgQ2FyZSBQbGFuIChFSENQKS4gQXMgc3VjaCwgRWR1Y2F0aW9uLCBUcmFpbmluZyBhbmQgRW1wbG95bWVudCBkYXRhIGlzIG9ubHkgY3VycmVudGx5IGF2YWlsYWJsZSBhbmQgYWNjdXJhdGUgb24gdGhvc2UgeW91bmcgcGVvcGxlIG9mIGFjYWRlbWljIGFnZSAxNiBhbmQgMTcuXFxuXFxuTGF0ZXN0IGZpZ3VyZXMgKE5vdmVtYmVyIDIwMTYpIHJlbGVhc2VkIGJ5IHRoZSBEZkUgZm9sbG93aW5nIHN1Ym1pc3Npb24gb2Ygb3VyIGRhdGEgc2hvdyB0aGF0IDg4LjQlIG9mIHlvdW5nIHBlb3BsZSBhZ2VkIDE2IGFuZCAxNyBhcmUgaW4gc29tZSBmb3JtIG9mIEVkdWNhdGlvbiwgVHJhaW5pbmcgb3IgRW1wbG95bWVudC4gODglIG9mIHRoZXNlIGFyZSDigJhJbiBMZWFybmluZ+KAmSwgd2hpbGUgMC40JSBhcmUgZW1wbG95ZWQgd2l0aCBubyB0cmFpbmluZyBvciBlZHVjYXRpb24gYXR0YWNoZWQgdG8gdGhpcyBlbXBsb3ltZW50LiBUaGUgcGVyY2VudGFnZSBvZiB0aGlzIGFnZSBncm91cCBjdXJyZW50bHkgbm90IGluIEVkdWNhdGlvbiwgVHJhaW5pbmcgb3IgRW1wbG95bWVudCAoTkVFVCkgc3RhbmRzIGF0IDEuMCUuIEFmdGVyIGxvYWRpbmcgYWxsIGRhdGEgcmVjZWl2ZWQgZnJvbSBhbGwgc2Nob29scyBhbmQgcG9zdC0xNiBwcm92aWRlcnMsIHRoZSBudW1iZXIgb2YgeW91bmcgcGVvcGxlIGFnZWQgMTYgYW5kIDE3IHdpdGggYW4gdW5rbm93biBFZHVjYXRpb24sIFRyYWluaW5nIG9yIEVtcGxveW1lbnQgc2l0dWF0aW9uIHN0YW5kcyBhdCAxMC43JSBhdCB0aGUgZW5kIG9mIE5vdmVtYmVyIDIwMTYuIFRoaXMgY29tcGFyZXMgdG8gNS44JSBmb3IgdGhlIFNvdXRoIEVhc3QgUmVnaW9uIGFuZCA1LjIlIG5hdGlvbmFsbHkuXFxuXFxuSG93ZXZlciwgd29yayBoYXMgc3RhcnRlZCBpbiBEZWNlbWJlciB0byBhdHRlbXB0IHRvIGNvbnRhY3QgdGhlc2UgeW91bmcgcGVvcGxlIHRvIGRldGVybWluZSB0aGVpciBkZXN0aW5hdGlvbi4gVGhpcyB3b3JrIGluY2x1ZGVzIGEgbWl4dHVyZSBvZiBjb250YWN0aW5nIHlvdW5nIHBlb3BsZSB2aWEgZW1haWwgYW5kIFNNUyAobWVzc2FnaW5nKSBhcyB3ZWxsIGFzIGNvbnRhY3RpbmcgeW91bmcgcGVvcGxlIGFuZCBwYXJlbnRzIGRpcmVjdCBieSBwaG9uZS4gVGhpcyB3b3JrIGlzIGNvbnRpbnVpbmcgdGhyb3VnaG91dCBEZWNlbWJlciAyMDE2IGFuZCBKYW51YXJ5IDIwMTcgd2l0aCBhIHZpZXcgdG8gcmVkdWNpbmcgdGhlIG51bWJlciBvZiB1bmtub3duIHlvdW5nIHBlb3BsZSBhcyBtdWNoIGFzIHBvc3NpYmxlIGJ5IHRoZSBlbmQgb2YgSmFudWFyeS4gVGhlIERmRSB3aWxsIHByZXNlbnQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBMb2NhbCBBdXRob3JpdHkgdXNpbmcgdGhlIGF2ZXJhZ2VzIGZvciB0aGUgbW9udGhzIG9mIE5vdmVtYmVyIGFuZCBEZWNlbWJlciAyMDE2IGFuZCBKYW51YXJ5IDIwMTcuIFRoZSB0cmFja2luZyBvZiB5b3VuZyBwZW9wbGXigJlzIEVkdWNhdGlvbiwgVHJhaW5pbmcgYW5kIEVtcGxveW1lbnQgc2l0dWF0aW9uIGlzIGFyZSBzb3VyY2UgaW50ZW5zaXZlIHRhc2suIFRoZSBzaXplIG9mIHRoZSBhY2FkZW1pYyBhZ2UgMTYgYW5kIDE3IGNvaG9ydCBzaXplIGluIFdlc3QgU3Vzc2V4IGlzIGN1cnJlbnRseSAxNywxNjYuIE9ubHkgSGFtcHNoaXJlLCBLZW50IGFuZCBTdXJyZXkgaGF2ZSBsYXJnZXIgY29ob3J0IHNpemVzIGluIHRoZSBTb3V0aCBFYXN0IFJlZ2lvbi4gQWNjdXJhY3kgYW5kIHRpbWVsaW5lc3Mgb2YgZGF0YSByZWNlaXZlZCBmcm9tIHNjaG9vbHMsIHBvc3QtMTYgcHJvdmlkZXJzIGFuZCBvdGhlciBzZXJ2aWNlcyBhbmQgb3JnYW5pc2F0aW9ucyBpcyBjcnVjaWFsIHRvIHN1Y2Nlc3MgYXMgd2VsbCBhcyBoYXZpbmcgdGhlIHJlc291cmNlcyB0byBjb250YWN0IHRob3NlIHlvdW5nIHBlb3BsZSB3aG9zZSBuYW1lIGRvZXMgbm90IGFwcGVhciBvbiBhbnkgZW5yb2xtZW50IGxpc3RzIHJlY2VpdmVkLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMiDigJMgU2VwdGVtYmVyIDIwMTYqKlxcblxcbi0gLSAtXFxuXFxuIFRoZXJlIGlzIG5vIEVURSBkYXRhIGZvciBTZXB0ZW1iZXIgMjAxNi4gVGhlIHBlcmZvcm1hbmNlIG9mIExvY2FsIEF1dGhvcml0aWVzIGlzIG5vdCBtZWFzdXJlZCBieSB0aGUgRGZFIG92ZXIgdGhlIHN1bW1lciBtb250aHMgZHVlIHRvIG1hbnkgeW91bmcgcGVvcGxlIGxlYXZpbmcgY291cnNlcyBvdmVyIHRoaXMgcGVyaW9kLCByZXN1bHRpbmcgaW4gYSBncmFkdWFsIHJpc2UgaW4gdGhlIG51bWJlciBvZiB5b3VuZyBwZW9wbGUgd2hvc2UgRVRFIGFjdGl2aXR5IGlzIHVua25vd24uIEZ1cnRoZXJtb3JlLCBhdCB0aGUgZW5kIG9mIEF1Z3VzdCBlYWNoIHllYXIsIGFsbCB5b3VuZyBwZW9wbGUgYWdlZCAxNiB0byAxOCB3aG8gd2VyZSBhdHRlbmRpbmcgZWR1Y2F0aW9uIG9yIHRyYWluaW5nIHByaW9yIHRvIHRoZSBlbmQgb2YgQXVndXN0LCBoYXZlIHRoZWlyIEVURSBhY3Rpdml0eSBjaGFuZ2VkIHRvIOKAmHVua25vd27igJkuIFRoaXMgaXMgYSBEZkUgcmVxdWlyZW1lbnQgYW5kIGZvcmNlcyBhbGwgTG9jYWwgQXV0aG9yaXRpZXMgdG8gcmVndWxhcmx5IHJldmlldyB0aGUgRVRFIGFjdGl2aXR5IG9mIHlvdW5nIHBlb3BsZSBsaXZpbmcgaW4gdGhlaXIgYXJlYS4gRnJvbSBTZXB0ZW1iZXIgZWFjaCB5ZWFyIHRoZSBMb2NhbCBBdXRob3JpdHkgc3RhcnRzIHRvIHRyYWNrIHRoZSBFVEUgZGVzdGluYXRpb25zIG9mIHRoZXNlIHlvdW5nIHBlb3BsZSB1c2luZyBhIGNvbWJpbmF0aW9uIG9mIGVucm9sbWVudCBsaXN0cyBmcm9tIHNpeHRoIGZvcm1zLCBjb2xsZWdlcyBhbmQgb3RoZXIgcG9zdCAxNiBFVEUgcHJvdmlkZXJzLCB0aGUgTmF0aW9uYWwgQXBwcmVudGljZXNoaXAgU2VydmljZSBhbmQgdGhlIERlcGFydG1lbnQgZm9yIFdvcmsgYW5kIFBlbnNpb25zLCBhcyB3ZWxsIGFzIGF0dGVtcHRpbmcgdG8gY29udGFjdCB5b3VuZyBwZW9wbGUgdGhlbXNlbHZlcywgc2hvdWxkIHRoZXkgbm90IGFwcGVhciBvbiBhbnkgZW5yb2xtZW50IGxpc3QuXFxuXFxuQXQgdGhlIGVuZCBvZiBTZXB0ZW1iZXIgMjAxNiB0aGUgTG9jYWwgQXV0aG9yaXR5IGhhZCByZWNlaXZlZCBlbnJvbG1lbnQgbGlzdHMgZnJvbSBhbGwgc2Nob29scyBhbmQgY29sbGVnZXMgaW4gV2VzdCBTdXNzZXgsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiA2IHNjaG9vbHMuIFRoaXMgZG9lcyBub3QgaW5jbHVkZSBwcml2YXRlIHNjaG9vbHMgYXMgdGhleSBoYXZlIG5vIHN0YXR1dG9yeSBvYmxpZ2F0aW9uIHRvIHNlbmQgdGhlIEF1dGhvcml0eSB0aGVpciBkYXRhLiBJdCBkb2VzIGluY2x1ZGUgQWNhZGVtaWVzLiBUaGUgQXV0aG9yaXR5IGhhcyBhbHNvIHN0YXJ0ZWQgdG8gcmVjZWl2ZSBlbnJvbG1lbnQgbGlzdHMgZnJvbSBwb3N0IDE2IHByb3Zpc2lvbiBsb2NhdGVkIGluIG5laWdoYm9yaW5nIGF1dGhvcml0aWVzLiBVQ0FTIGxpc3RzIHdpbGwgYmUgYXZhaWxhYmxlIGZyb20gc2Nob29scyBhbmQgY29sbGVnZXMgdG93YXJkcyB0aGUgZW5kIG9mIE9jdG9iZXIvZWFybHkgTm92ZW1iZXIuIFRoaXMgdHJhY2tpbmcgYWN0aXZpdHkgd2lsbCBjb250aW51ZSBvdmVyIHRoZSBxdWFydGVyIDMgcGVyaW9kLiBUaHJvdWdoIHRoaXMgcHJvY2VzcyB0aGUgQXV0aG9yaXR5IGNhbiBzdGFydCB0byBpZGVudGlmeSB5b3VuZyBwZW9wbGUgd2hvIG1heSBub3QgYmUgbWVldGluZyB0aGUg4oCYRHV0eSB0byBQYXJ0aWNpcGF0ZeKAmSBpbiBFZHVjYXRpb24gb3IgVHJhaW5pbmcsIHRob3NlIG5vdCBpbiBhbnkgZm9ybSBvZiBlZHVjYXRpb24sIHRyYWluaW5nIG9yIGVtcGxveW1lbnQgKE5FRVQpLCBvciB0aG9zZSB3aG8gYXJlIGF0IHJpc2sgb2YgYmVjb21pbmcgTkVFVCBhbmQgcHJvdmlkZSBzdXBwb3J0IHRvIHRoZXNlIHlvdW5nIHBlb3BsZSBhcyBhcHByb3ByaWF0ZS5cXG5cXG5JdCBpcyBkaWZmaWN1bHQgdG8gc2F5IHdpdGggYW55IGNlcnRhaW50eSBhdCB0aGlzIHBvaW50IHdoZXRoZXIgdGhlIEF1dGhvcml0eSB3aWxsIHJlYWNoIGl0cyBFVEUgdGFyZ2V0IGJ5IHRoZSBlbmQgb2YgdGhlIHllYXIuIEEgbW9yZSBjZXJ0YWluIGlkZWEgd2lsbCBiZSBwb3NzaWJsZSBhdCB0aGUgZW5kIG9mIHF1YXJ0ZXIgMyAoZW5kIERlY2VtYmVyIDIwMTYpIHdoZW4gdGhlIG1ham9yaXR5IG9mIHRoZSBkYXRhIHdpbGwgaGF2ZSBiZWVuIHJlY2VpdmVkLiBJdCBpcyBhbHNvIGNvbXBsaWNhdGVkIGJ5IHRoZSBmYWN0IHRoYXQgdGhlIERmRSBoYXZlIGNoYW5nZWQgdGhlIHRyYWNraW5nIHJlcXVpcmVtZW50cyBvbiBMb2NhbCBBdXRob3JpdGllcyBmcm9tIFNlcHRlbWJlciAyMDE2LiBMb2NhbCBBdXRob3JpdGllcyBub3cgaGF2ZSB0byBzdWJtaXQgZGF0YSB0byB0aGUgRGZFIGZvciB5b3VuZyBwZW9wbGUgYWdlZCAxNiBhbmQgMTcgb25seSwgb3IgdXAgdG8gYWdlIDI1IGlmIHRoZSB5b3VuZyBwZXJzb24gaGFzIGEgc3BlY2lhbCBlZHVjYXRpb25hbCBuZWVkIG9yIGRpc2FiaWxpdHkgKFNFTkQpLiBXaGlsZSBMb2NhbCBBdXRob3JpdGllcyBhcmUgZXhwZWN0ZWQgdG8gaW50cm9kdWNlIGxvY2FsbHkgZGVzaWduZWQgcHJvY2VkdXJlcyB0byBpZGVudGlmeSB0aG9zZSBhY2FkZW1pYyBhZ2UgMTgteWVhci1vbGRzIHdobyBuZWVkIHN1cHBvcnQgdG8gZW5nYWdlLCB3ZSBhcmUgYWxzbyB0byBpbnRlbnNpZnkgb3VyIGVmZm9ydHMgdG8gZW5zdXJlIGFsbCBhY2FkZW1pYyBhZ2UgMTYgYW5kIDE3LXllYXItb2xkcyBhcmUgdHJhY2tlZCBlZmZpY2llbnRseSB0byByZWR1Y2UgdGhlIHByb3BvcnRpb24gd2hvc2UgYWN0aXZpdHkgaXMgcmVjb3JkZWQgYXMgbm90IGtub3duIGFuZCB0byBpbmNyZWFzZSB0aGUgcHJvcG9ydGlvbiBlbnRlcmluZyBhbmQgc3VzdGFpbmluZyBhbiBSUEEgKFJhaXNpbmcgUGFydGljaXBhdGlvbiBBZ2UpIGNvbXBsaWFudCBkZXN0aW5hdGlvbiBhZnRlciBsZWF2aW5nIHNjaG9vbC4gVGhlIERmRSB3aWxsIHRoZXJlZm9yZSBwdWJsaXNoIG91ciBwZXJmb3JtYW5jZSBmb3IgMTYgYW5kIDE3IHllYXIgb2xkcyBvbmx5IChvciB1cCB0byAyNSB3aXRoIFNFTkQpIGFzIG9wcG9zZWQgdG8geW91bmcgcGVvcGxlIGFnZWQgMTYgdG8gMTguXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAxIC0gSnVuZSAyMDE2KipcXG5cXG4tIC0gLVxcblxcblRoaXMgbWVhc3VyZSBpcyB0aGUgcHJvcG9ydGlvbiBvZiBXZXN0IFN1c3NleCByZXNpZGVudCB5b3VuZyBwZW9wbGUgb2YgYWNhZGVtaWMgYWdlIDE2LCAxNyBhbmQgMTggKHNjaG9vbCB5ZWFycyAxMiB0byAxNCkgd2hvIGFyZSBlbmdhZ2VkIGluIHNvbWUgZm9ybSBvZiBlZHVjYXRpb24sIGVtcGxveW1lbnQgb3IgdHJhaW5pbmcuIFRoaXMgaW5jbHVkZXMgeW91bmcgcGVvcGxlIHdob3NlIHBlcm1hbmVudCBhZGRyZXNzIGlzIHdpdGhpbiBXZXN0IFN1c3NleCBidXQgdGhleSBhcmUgc3R1ZHlpbmcgYXdheSBmcm9tIGhvbWUuIEl0IGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgTG9jYWwgQXV0aG9yaXRpZXMgZHV0aWVzIHRvIGVuY291cmFnZSwgZW5hYmxlIGFuZCBhc3Npc3QgeW91bmcgcGVvcGxlIHRvIHBhcnRpY2lwYXRlIGluIGVkdWNhdGlvbiBvciB0cmFpbmluZyAoRWR1Y2F0aW9uIGFuZCBTa2lsbHMgQWN0IDIwMDgsIFMuNjgpLlxcblxcbkl0IGlzIG5vdCB0aGUgc2FtZSBhcyB0aG9zZSB5b3VuZyBwZW9wbGUgYWdlZCAxNiBhbmQgMTcgd2hvIGFyZSBtZWV0aW5nIHRoZSDigJhkdXR5IHRvIHBhcnRpY2lwYXRl4oCZIG9yIHRob3NlIGFnZWQgMTYgdG8gMTggZW5nYWdlZCBpbiBlZHVjYXRpb24gb3IgdHJhaW5pbmcgKGkuZS4g4oCYaW4gTGVhcm5pbmfigJkpIGFzIG1lYXN1cmVkIGJ5IHRoZSBEZkUuIFRoZXNlIG1lYXN1cmVzIGhhdmUgcnVsZXMgYXJvdW5kIHdoYXQgY291bnRzIGFzIOKAmHBhcnRpY2lwYXRpb27igJkgKGkuZS4gdG8gbWVldCB0aGlzIGR1dHkgb3IgdG8gYmUgY2xhc3NlZCBhcyDigJhJbiBMZWFybmluZ+KAmSBlbXBsb3ltZW50IGhhcyB0byBiZSBjb21iaW5lZCB3aXRoIHNvbWUgZm9ybSBvZiBhY2NyZWRpdGVkIHRyYWluaW5nKS4gSW4gY29udHJhc3QsIHdpdGhpbiB0aGUgMTYgdG8gMTggeWVhciBvbGRzIGluIEVFVCBtZWFzdXJlLCB3ZSBjb3VudCB5b3VuZyBwZW9wbGUgd2hvIGFyZSBpbiBwYXJ0LXRpbWUgZW1wbG95bWVudCBvciBlbXBsb3ltZW50IHdpdGhvdXQgdHJhaW5pbmcgZXZlbiB0aG91Z2ggdGhlc2UgeW91bmcgcGVvcGxlIGFyZSBub3QgbWVldGluZyB0aGUgRHV0eSB0byBQYXJ0aWNpcGF0ZS5cXG5cXG5UaGUgZmlndXJlIGZvciBKdW5lIDIwMTYgKDg1LjElKSBpcyBwcm92aWRlZCBmcm9tIGxvY2FsIGRhdGEuIElmIHRoaXMgcGVyZm9ybWFuY2UgaXMgc3BsaXQgYnkgYWNhZGVtaWMgYWdlIGdyb3VwLCB3ZSBjYW4gc2VlIHRoYXQgdGhlIGxhcmdlc3QgcHJvYmxlbSBpcyBpbiB0aGUgYWNhZGVtaWMgYWdlIDE4IGdyb3VwOiBBZ2UgMTYgKHllYXIgMTIpIOKAkyA5NC4xJTsgQWdlIDE3ICh5ZWFyIDEzKSDigJMgODcuNSU7IEFnZSAxOCAoeWVhciAxNCkg4oCTIDczLjglLiBPdXIg4oCYdW5rbm93buKAmSBjb2hvcnQgaXMgYWxzbyBhdCBpdHMgbGFyZ2VzdCBpbiB0aGUgQWdlIDE4IGdyb3VwIGFzIGZvbGxvd3M6IEFnZSAxNiDigJMgNC41JTsgQWdlIDE3IOKAkyA5LjklOyBBZ2UgMTgg4oCTIDE5LjQlOyBPdmVyYWxsIDE2IHRvIDE4IOKAkyAxMS4zJS4gSW4gYmVuY2htYXJraW5nIHRlcm1zLCB0aGUgcGVyY2VudGFnZSBvZiAxNiB0byAxOCB5ZWFyIG9sZHMgd2hvIGFyZSBub3QgaW4gZWR1Y2F0aW9uLCBlbXBsb3ltZW50IG9yIHRyYWluaW5nIChORUVUKSB3YXMgMy45JSBpbiAyMDE1LlRoZSBzZXJ2aWNlIGFyZSBvbiB0cmFjayB0byBtYWtlIGFuIGltcHJvdmVtZW50IG9uIGxhc3QgeWVhci4gVGhpcyB0aW1lIGxhc3QgeWVhciBvdXIgcGVyZm9ybWFuY2Ugd2FzIGF0IDgwLjIlLCBzaG93aW5nIGFuIGluY3JlYXNlIG9mIDUlLlxcblxcblRoZSBudW1iZXJzIGluIEVFVCBhbmQgdW5rbm93biB0ZW5kIHRvIGRlY2xpbmUgYW5kIHJpc2UgcmVzcGVjdGl2ZWx5IGZyb20gSmFudWFyeSB0aHJvdWdoIHRvIHRoZSBzdW1tZXIgYXMgeW91bmcgcGVvcGxlIGxlYXZlIGFuZCBjaGFuZ2UgY291cnNlcy9wcm92aWRlcnMuIFRlYW1zIHdvcmsgd2l0aCBwb3N0IDE2IHByb3ZpZGVycywgb3VyIFlvdXRoIEludGVydmVudGlvbnMgVGVhbSwgRmluZCBpdCBPdXQgU2hvcHMgYW5kIHRoZSBDb250YWN0IENlbnRyZSB0byB0cnkgdG8gZGV0ZXJtaW5lIHRoZSBvbi1nb2luZyBkZXN0aW5hdGlvbiBvZiB0aG9zZSB5b3VuZyBwZW9wbGUgd2hvIGxlYXZlIGNvdXJzZXMgYW5kIHByb3ZpZGVycyBlYXJseS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlIG9sZGVyIGFnZSBncm91cCBpcyB3aGVyZSB3ZSBzdHJ1Z2dsZSBpbiB0ZXJtcyBvZiDigJh0cmFja2luZ+KAmSB5b3VuZyBwZW9wbGXigJlzIEVFVCBkZXN0aW5hdGlvbi4gV2Ugbm8gbG9uZ2VyIHJlY2VpdmUgVUNBUyBkYXRhIGRpcmVjdCBmcm9tIFVDQVMsIGFuZCByZWx5IG9uIHNjaG9vbHMgYW5kIGNvbGxlZ2VzIHNlbmRpbmcgdXMgdGhpcyBkYXRhLCB3aGljaCBpc27igJl0IGFsd2F5cyBjb21wbGV0ZS4gTWFueSBvZiB0aGVzZSB5b3VuZyBwZW9wbGUgbWF5IGJlIHdvcmtpbmcgb3Igc3R1ZHlpbmcgYXdheSBmcm9tIGhvbWUgYW5kIHRoZXJlZm9yZSByZW1haW4gZGlmZmljdWx0IHRvIGNvbnRhY3QgdG8gcmUtdmVyaWZ5IHRoZWlyIEVFVCBzdGF0dXMuIEZyb20gU2VwdGVtYmVyIDIwMTYgdGhlIERmRSB3aWxsIG5vIGxvbmdlciBiZSByZXBvcnRpbmcgb3VyIHBlcmZvcm1hbmNlIG9uIHRoZSAxNiB0byAxOCBhZ2UgZ3JvdXAuIEl0IGlzIG1vdmluZyBpbnN0ZWFkIHRvIHRob3NlIHlvdW5nIHBlb3BsZSBhZ2VkIDE2IGFuZCAxNyBpbiBsaW5lIHdpdGggdGhlIOKAmER1dHkgdG8gUGFydGljaXBhdGXigJkgbGVnaXNsYXRpb24uIFRoaXMgY2hhbmdlIHdpbGwgZW5zdXJlIHRoYXQgdGhlIHNlcnZpY2UgY2FuIGZvY3VzIGl0cyBlZmZvcnQgb24gcmVkdWNpbmcgdGhlIHVua25vd25zIGFuZCB5b3VuZyBwZW9wbGUgd2hvIGFyZSBORUVUIGluIHRoZSB5ZWFyIDEyIGFuZCB5ZWFyIDEzIGNvaG9ydCBhbmQgaW4gdHVybiB3b3JrIHRvIGltcHJvdmUgdGhlIG51bWJlcnMgaW4gRUVULCBzcGVjaWZpY2FsbHkgZm9yIHRob3NlIHlvdW5nIHBlb3BsZSB3aG8gZmFsbCB1bmRlciB0aGUg4oCYRHV0eSB0byBQYXJ0aWNpcGF0ZeKAmSBsZWdpc2xhdGlvbi5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlIGRldmVsb3BtZW50IG9mIHRoZSBQb3N0IDE2IFBhcnRpY2lwYXRpb24gYW5kIEVuZ2FnZW1lbnQgaW4gRUVUIHN0cmF0ZWd5IGFsb25nc2lkZSBrZXkgcGFydG5lcnMgd2lsbCBwcm92aWRlIHN0cmF0ZWdpYyBvdmVyc2lnaHQgYW5kIGRpcmVjdGlvbiB0byB0aGUgd29yayBhcm91bmQgZW5nYWdpbmcgeW91bmcgcGVvcGxlIGluIEVFVCBhbmQgbWFpbnRhaW5pbmcgdGhlaXIgZW5nYWdlbWVudC4gVGhlIGFtYWxnYW1hdGlvbiBvZiB0aGUgVGhpbmsgRmFtaWx5LCBFYXJseSBDaGlsZGhvb2QgU2VydmljZSBhbmQgWW91bmcgUGVvcGxl4oCZcyBTZXJ2aWNlIGRhdGEgdGVhbXMgYWxzbyBwcm92aWRlcyBhbiBleGNlbGxlbnQgb3Bwb3J0dW5pdHkgdG8gaWRlbnRpZnkgeW91bmcgcGVvcGxlIGVhcmx5IHdobyBhcmUgYXQgcmlzayBvZiBiZWNvbWluZyBORUVUIHBvc3QgMTYgYW5kIHRvIHByb3ZpZGUgdGFyZ2V0ZWQgaW50ZXJ2ZW50aW9uIHRvIHByZXZlbnQgdGhpcyBoYXBwZW5pbmcuIFRoaXMgc3RyYXRlZ3kgZm9jdXNlcyBvbiBpbXByb3Zpbmcg4oCYcHJldmVudGlvbuKAmSAocHJldmVudGluZyB5b3VuZyBwZW9wbGUgYmVjb21pbmcgTkVFVCksIOKAmEludGVydmVudGlvbuKAmSAoZW5zdXJpbmcgd2UgaGF2ZSB0aGUgcmVzb3VyY2VzIHRvIGtub3cgd2hhdCB5b3VuZyBwZW9wbGUgYXJlIGRvaW5nIGFuZCBwdXR0aW5nIGluIHBsYWNlIHRhcmdldGVkIGludGVydmVudGlvbiB0byBzdXBwb3J0IHlvdW5nIHBlb3BsZSBpbnRvIEVFVCkgYW5kIOKAmHN1c3RhaW5hYmlsaXR54oCZIChzdXBwb3J0aW5nIHRob3NlIHlvdW5nIHBlb3BsZSB3aXRoIGEgaGlzdG9yeSBvZiDigJhkcm9wcGluZyBvdXTigJkgb2YgRUVUIGFuZCB0YWNrbGluZyBvYnN0YWNsZXMgdG8gZW5nYWdlbWVudCkuXFxuXFxuIFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgNCAtIE1hcmNoIDIwMTYqKlxcblxcbi0gLSAtXFxuXFxu4oCYQWx0aG91Z2ggaW4gTWFyY2ggMjAxNiB3ZSB3ZXJlIGFsbW9zdCAxMCUgdW5kZXIgdGFyZ2V0LCB0aGlzIGlzIGxhcmdlbHkgYSByZXN1bHQgb2Ygb3VyIOKAmHVua25vd27igJkgY29ob3J0IGJlaW5nIDExLjElIGF0IHRoaXMgdGltZS4gT3VyIOKAmHVua25vd25z4oCZIGFyZSB0aG9zZSB5b3VuZyBwZW9wbGUgd2hvbSwgZGVzcGl0ZSB2YXJpb3VzIGVmZm9ydHMsIHdlIGhhdmUgYmVlbiB1bmFibGUgdG8gY29udGFjdCB0byByZS12ZXJpZnkgdGhlaXIgY3VycmVudCBFRVQgYWN0aXZpdHkuIEl0IGlzIHZlcnkgbGlrZWx5IHRoYXQgYSBnb29kIHBlcmNlbnRhZ2Ugb2YgdGhlc2UgeW91bmcgcGVvcGxlIGFyZSBwYXJ0aWNpcGF0aW5nIGluIHNvbWUgZm9ybSBvZiBFRVQsIG1vc3QgbGlrZWx5IGVtcGxveW1lbnQsIG9yIHRoZXJlIGlzIGEgcG9zc2liaWxpdHkgdGhhdCB0aGV5IGhhdmUgbW92ZWQgb3V0IG9mIFdlc3QgU3Vzc2V4LiBUaGUgbWFqb3JpdHkgb2YgdGhlIHVua25vd24gY29ob3J0IGlzIGluIHRoZSBvbGRlciBhZ2UgZ3JvdXAuIFdlIGhhdmUgYmVlbiB3b3JraW5nIGhhcmQgb3ZlciB0aGUgcGFzdCB5ZWFyIHRvIGltcHJvdmUgb3VyIHVua25vd24gZmlndXJlcyBhbmQgdGhlcmVmb3JlIGltcHJvdmUgb3VyIGRhdGEgaW50ZWdyaXR5IGFuZCByZWxpYWJpbGl0eS4gV2UgaG9wZSB0byBtYWtlIGZ1cnRoZXIgaW1wcm92ZW1lbnRzIHRoaXMgeWVhciBhcyB3ZSBhcmUgYmVjb21pbmcgaW5jcmVhc2luZ2x5IG1vcmUgY29uZmlkZW50IHdpdGggb3VyIGNvaG9ydCBkYXRhLuKAmVxcblxcblwifV0sXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6dHJ1ZSxcImN1c3RvbV9zdWJ0aXRsZVwiOlwiVGhpcyBnb2FsIGlzIG1lYXN1cmVkIGJ5IHRyYWNraW5nIGFuIGluY3JlYXNlIGluIHRoZSAlIG9mIDE2IC0gMTcgeWVhciBvbGRzIGluIGVkdWNhdGlvbiwgZW1wbG95bWVudCBvciB0cmFpbmluZyBpbiBXZXN0IFN1c3NleFwiLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIkluY3JlYXNlICB0aGUgbnVtYmVyIG9mIDE2IC0gMTcgeWVhciBvbGRzIGluIGVkdWNhdGlvbiwgZW1wbG95bWVudCBvciB0cmFpbmluZyBpbiBXZXN0IFN1c3NleCBcIixcInRpdGxlX2ltYWdlXCI6XCIvYXBpL2Fzc2V0cy8yMTQ1QTkxNS0yRTQ4LTRBQjYtQUYzNi02QzgwQTRDMkZDRkNcIn0ifSwicHJldmFpbGluZ19tZWFzdXJlIjp7InN0YXJ0IjoiMjAxNC0wMy0wMVQwMDowMDowMC4wMDAiLCJlbmQiOiIyMDE4LTAzLTMxVDIzOjU5OjU5LjAwMCIsInVuaXQiOiIlIiwidGFyZ2V0Ijo5NSwidGFyZ2V0X3R5cGUiOiJhYnNvbHV0ZSIsInRhcmdldF9kZWx0YSI6MCwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJiYXNlbGluZSI6OTUsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoiZ3Z1Ny1xNTRyIn0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTR9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwiaW5jcmVhc2VcIixcIm1haW50YWluX3R5cGVcIjpcIj5cIn0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTZ9LFwiZW5kXCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNn19LFwic3RhcnRcIjpcIjIwMTYtMDEtMDFUMDA6MDA6MDAuMDAwXCIsXCJlbmRcIjpcIjIwMTYtMDEtMDFUMjM6NTk6NTkuMDAwXCIsXCJtZXRyaWNcIjp7XCJtZXRhZGF0YVwiOlwie1xcXCJ3aXphcmRcXFwiOntcXFwiZmlsdGVyX2FzdFxcXCI6W3tcXFwidmFsdWVzXFxcIjpbe31dfV19fVwifX0sXCJuYW1lXCI6XCIgdGhlICUgb2YgMTYgLSAxNyB5ZWFyIG9sZHMgaW4gZWR1Y2F0aW9uLCBlbXBsb3ltZW50IG9yIHRyYWluaW5nIGluIFdlc3QgU3Vzc2V4XCIsXCJ1c2VfcHJvZ3Jlc3Nfb3ZlcnJpZGVcIjpmYWxzZSxcInByb2dyZXNzX292ZXJyaWRlXCI6XCJiYWRcIn0ifSwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMDk6MDk6MzMuNTI4WiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDA5OjA5OjMzLjUyOFoiLCJ0YXJnZXRfdG9sZXJhbmNlIjo5LCJpZCI6ImdieXgteWtjZCJ9LCJyZWxhdGVkX21lYXN1cmVzIjpbXSwiYmFzZV9kYXNoYm9hcmQiOiI1NzRyLWg1bmMiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNy0yM1QwOToxMDowMS4xNjdaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMDk6MDk6MzMuNjQ0WiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDA5OjEwOjAxLjE2N1oiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn0seyJpZCI6IjdyeHMtNmE0MyIsIm5hbWUiOiJBcHByZW50aWNlc2hpcHMgaW4gV2VzdCBTdXNzZXgiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcImljb25cIjpcInRleHRcIixcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0U4OURCQjcxLTU4MDQtNDQ3Ni1CNENCLUQxRUMzODA5MUUwM1wifV0sW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSBbTmF0aW9uYWwgQXBwcmVudGljZXNoaXAgU2VydmljZV0oaHR0cDovL3d3dy5hcHByZW50aWNlc2hpcHMub3JnLnVrKSBpcyBwYXJ0IG9mIHRoZSBTa2lsbHMgRnVuZGluZyBBZ2VuY3lcIn1dXX0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlIENvdW50eSBDb3VuY2lsIGhhcyBlbWJyYWNlZCBhcHByZW50aWNlc2hpcHMgYW5kIHdpc2hlcyBvdGhlciBlbXBsb3llcnMgZG8gbGlrZXdpc2UuIEFueSBidXNpbmVzc2VzIG5ldyB0byBBcHByZW50aWNlc2hpcHMgY2FuIGFjY2VzcyBpbmZvcm1hdGlvbiBhbmQgYWR2aWNlIGZyb20gdGhlIEFwcHJlbnRpY2VtYWtlcnMgd2Vic2l0ZS4gV2VzdCBTdXNzZXggYWxzbyBvZmZlcnMgYnVzaW5lc3MgdG8gYnVzaW5lc3MgYWR2aWNlIHRvIGFueSBlbXBsb3llciBuZXcgdG8gQXBwcmVudGljZXNoaXBzXFxuXFxuQXBwcmVudGljZXNoaXBzIGFyZSBhIGtleSB3YXkgb2YgYm9vc3RpbmcgdGhlIGxvY2FsIGVjb25vbXksIHRocm91Z2ggcHJvdmlkaW5nIHRyYWluaW5nIGFsb25nIHNpZGUgcGFpZCB3b3JrIG9wcG9ydHVuaXRpZXMsIHByb3ZpZGluZyBvcHBvcnR1bml0aWVzIGZvciBza2lsbHMgZGV2ZWxvcG1lbnQgYWxsIG9mIHdoaWNoIGNhbiBlbmhhbmNlIHByb2R1Y3Rpdml0eSBhbmQgaW5jcmVhc2UgY29tcGV0aXRpdmVuZXNzIG9mIGJ1c2luZXNzZXMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiMgKipXU0NDIEFwcHJlbnRpY2VzKipcXG5cXG5BcyBvbmUgb2YgdGhlIGxhcmdlc3QgZW1wbG95ZXJzIGluIHRoZSBjb3VudHksIHRoZSBDb3VudHkgQ291bmNpbCBoYXMgYW4gaW1wb3J0YW50IHJvbGUgdG8gcGxheSBpbiBsZWFkaW5nIGJ5IGV4YW1wbGUgdG8gZGVtb25zdHJhdGUgdGhlIGJlbmVmaXRzIG9mIGFwcHJlbnRpY2VzaGlwcyB0byBhIHJhbmdlIG9mIHN0YWtlaG9sZGVycy5cXG5cXG5TaW5jZSAyMDEwIG92ZXIgMzAwIHBlb3BsZSBoYXZlIHN0dWRpZWQgYW4gYXBwcmVudGljZXNoaXAgcHJvZ3JhbW1lIHdoaWxzdCBlbXBsb3llZCBieSB0aGUgQ291bnR5IENvdW5jaWwsIHdlIG9mZmVyIGEgZGl2ZXJzZSByYW5nZSBvZiBBcHByZW50aWNlc2hpcHMgc3VjaCBhcyBDYXJlLCBIUiwgTGVnYWwsIEVuZ2luZWVyaW5nLiBBcHByZW50aWNlc2hpcHMgYXJlIHJlYWxseSBoZWxwaW5nIHVzIHRvIGRldmVsb3Agb3VyIGJ1c2luZXNzLCBBcHByZW50aWNlcyBicmluZyBmcmVzaCBpZGVhcyBhbmQgaGVscCB1cyBleHBlcmllbmNlIG5ldyB0ZWNobm9sb2d5IHRvIHRoZSBvcmdhbmlzYXRpb24uIDg1JSBvZiB0aG9zZSB3aG8gY29tcGxldGVkIHRoZWlyIGFwcHJlbnRpY2VzaGlwIGhhdmUgbW92ZWQgaW50byBwYWlkIGVtcGxveW1lbnQgaGVscGluZyB0byBldmlkZW5jZSBhcHByZW50aWNlc2hpcHMgd29yayBhbmQgZ2l2ZSByZWFsIGVjb25vbWljIGJlbmVmaXQuIEFzIHRoZSBDb3VudHkgQ291bmNpbOKAmXMgd29ya2ZvcmNlIHNpemUgc2hyaW5rcyBhbmQgb3VyIHNlcnZpY2UgcHJvdmlzaW9uIGlzIG91dHNvdXJjZWQsIHRoZSBpbXBhY3Qgb2YgdGhlIENvdW50eSBDb3VuY2ls4oCZcyBhcHByZW50aWNlc2hpcCBwcm9ncmFtbWUgcmVkdWNlcy4gSXQgaXMgdGhlcmVmb3JlIGltcG9ydGFudCwgYXMgd2UgY29tbWlzc2lvbiBzZXJ2aWNlcywgdG8gcmVhbGlzdGljYWxseSBidWlsZCBhcHByZW50aWNlc2hpcHMgYW5kIGVtcGxveW1lbnQgYW5kIHNraWxscyBpbml0aWF0aXZlcyBpbnRvIGNvbnRyYWN0dWFsIHJlcXVpcmVtZW50cyBpbiBvcmRlciB3ZSBjYW4gbWFpbnRhaW4gdGhlIGJlbmVmaXQgYXBwcmVudGljZXNoaXBzIGNhbiBicmluZyB0byB0aGUgbG9jYWwgZWNvbm9teS5cXG5cXG4gXFxuXFxuVmlldyBvdXIgV1NDQyBBcHByZW50aWNlc2hpcCBwYWdlcyB3aGVyZSB5b3UgY2FuIGZpbmQgb3V0IGluZm9ybWF0aW9uIGFuZCB2aWV3IGFsbCB0aGUgbGF0ZXN0IFdlc3QgU3Vzc2V4IEFwcHJlbnRpY2VzaGlwIHZhY2FuY2llcy4gV2F0Y2ggb3VyIHZpZGVvICdDb3VudHkgQ291bmNpbCBhcHByZW50aWNlcyBmaW5kIGdhdGV3YXkgdG8gd29yaydcXG5cXG4gXCJ9LHtcInR5cGVcIjpcInR3b0NvbExheW91dFwiLFwiY29sdW1uc1wiOltbe1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiV2UgY3VycmVudGx5IGhhdmUgNTggYXBwcmVudGljZXMgd29ya2luZyBpbiBXU0NDIG9yIFNjaG9vbHMsIHRoZSBicmVha2Rvd24gb2Ygd2hpY2ggaXM6XFxuXFxuMTggQXBwcmVudGljZXNoaXAgY29udHJhY3RzXFxuXFxuOSBQZXJtYW5lbnQgY29udHJhY3RzXFxuXFxuMzEgU2Nob29sIGNvbnRyYWN0c1xcblxcblwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0VFQjgzMkJGLTlEMDYtNEY4Mi04QzYwLTZFQ0Q4MDdDMDJGRVwifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKkFwcHJlbnRpY2VzaGlwIFJlcG9ydCAoRmViIDE4KSoqXFxuXFxuLSAtIC1cXG5cXG5XZSBjb250aW51ZSB0byBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIGFwcHJlbnRpY2VzaGlwcyB0YWtlbiB1cCBhY3Jvc3Mgb3VyIENvcnBvcmF0ZSBTZXJ2aWNlcyBhbmQgb3VyIFNjaG9vbHMgKGFuIGluY3JlYXNlIG9mIDE1IG92ZXIgdGhlIHByZXZpb3VzIG1vbnRoIGFuZCBhbiAyNSUgaW5jcmVhc2Ugb24gSmFudWFyeSAyMDE3KSBXZSBhcmUgdXNpbmcgYSBudW1iZXIgb2YgY2FtcGFpZ25pbmcgdG9vbHMgdG8gaW5jaXRlIGludGVyZXN0LCByYWlzZSBhd2FyZW5lc3MsIGJ1c3Qgc29tZSBteXRocyBhbmQgaW5jcmVhc2UgdGFrZSB1cCwgZm9yIGV4YW1wbGUgaG9zdGluZyBhbiBpbmZvcm1hdGlvbiBzZXNzaW9uIHRvIHByb21vdGUgdGhlIG5ldyBUZWFjaGluZyBwb3N0IGdyYWR1YXRlIGRlZ3JlZSBhcHByZW50aWNlc2hpcCwgYXR0ZW5kaW5nIFNlbmlvciBMZWFkZXJzaGlwIFRlYW0gTWVldGluZ3MsIEhlYWQgVGVhY2hlciBhbmQgQnVzaW5lc3MgTWFuYWdlciBCcmllZmluZ3MgYW5kIHJ1bm5pbmcgYSBzZXJpZXMgb2Ygcm9hZHNob3dzIGFyb3VuZCB0aGUgQ291bnR5IGZvciBvdXIgZW1wbG95ZWVzIGFuZCBtYW5hZ2Vycy5cXG5cXG5XZSBoYXZlIGFsc28gYmVlbiBzb3VyY2luZyBwcm92aWRlcnMgdG8gZGVsaXZlciBvdXIgYXBwcmVudGljZXNoaXAgcmVxdWlyZW1lbnRzIGFuZCBlbnN1cmluZyB0aGV5IGFyZSBzaWduZWQgdXAgdG8gb3VyIER5bmFtaWMgUHVyY2hhc2luZyBTeXN0ZW0gYW5kIGFibGUgdG8gZGVsaXZlciBvdXIgcmVxdWlyZW1lbnRzLlxcblxcbldlIGFyZSBzdGlsbCB3YWl0aW5nIGZvciBrZXkgYXBwcmVudGljZXNoaXBzIHRvIGJlIGZpbmFsaXNlZCB0aGF0IGFyZSBvZiBwYXJ0aWN1bGFyIGludGVyZXN0IHRvIHVzIGFzIGEgTG9jYWwgQXV0aG9yaXR5IGFuZCB0aGVzZSBhcmU6XFxuXFxuKiBTb2NpYWwgV29yayBkZWdyZWVcXG5cXG4qIE9jY3VwYXRpb25hbCBUaGVyYXB5IGRlZ3JlZVxcblxcbiogQ2l2aWwgRW5naW5lZXJpbmcgTGV2ZWwgNFxcblxcblRoZSBTZW5pb3IgU3RyYXRlZ2ljIExlYWRlcnMgKE1CQSkgTGV2ZWwgNyBNYXN0ZXJzIGxldmVsIGRlZ3JlZSBoYXMgdmVyeSByZWNlbnRseSBiZWVuIGFwcHJvdmVkIGFuZCB3ZSBhcmUgbm93IHdhaXRpbmcgZm9yIHVuaXZlcnNpdHkgcHJvdmlkZXJzIHRvIGdpdmUgdXMgZGF0ZXMgb2Ygd2hlbiB0aGV5IHdpbGwgYmUgcmVhZHkgdG8gZGVsaXZlci5cXG5cXG5XZSBjb250aW51ZSB0byBoYXZlIGNoYWxsZW5nZXMgYXNzb2NpYXRlZCB3aXRoIGJyaW5naW5nIGluIHRoZSBuZXcgYXBwcmVudGljZXNoaXAgYXJyYW5nZW1lbnRzIOKAkyBpbmNsdWRpbmcgc29tZSBvZiB0aGUga2V5IG5ldyBhcHByZW50aWNlc2hpcCBzdGFuZGFyZHMgbm90IHlldCBiZWluZyBhdmFpbGFibGUgKHNlZSBhYm92ZSksIHRoZSBmdW5kaW5nIGNyaXNpcyBpbiBvdXIgc2Nob29scywgcHJvY3VyZW1lbnQgdGltZWxpbmVzIGFuZCB0aGUgbmVlZCBmb3IgbWFuYWdlcnMgdG8gcmVsZWFzZSB0aGVpciBhcHByZW50aWNlcyBmb3IgMjAlIG9mZiB0aGUgam9iIHRyYWluaW5nLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyBEZWNlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcbioqQXBwcmVudGljZXNoaXAgUmVwb3J0IChPY3QxNy1KYW4xOCkqKlxcblxcbkluIEFwcmlsIDIwMTcgdGhlIEdvdmVybm1lbnQgaW50cm9kdWNlZCBhIG51bWJlciBvZiBhcHByZW50aWNlc2hpcCByZWZvcm1zIGFzIHBhcnQgb2YgaXRzIGFtYml0aW9uIHRvIGNyZWF0ZSBhbiBhZGRpdGlvbmFsIDMgbWlsbGlvbiBhcHByZW50aWNlc2hpcCBzdGFydHMgaW4gRW5nbGFuZCwgYnkgMjAyMCwgYW5kIGluIGRvaW5nIHNvLCBkZXZlbG9wIHZvY2F0aW9uYWwgc2tpbGxzLCBpbmNyZWFzaW5nIHRoZSBxdWFudGl0eSBhbmQgcXVhbGl0eSBvZiB0aGUgYXBwcmVudGljZXNoaXAgZXhwZXJpZW5jZS5XZXN0IFN1c3NleCBDb3VudHkgQ291bmNpbCBoYXMgYmVlbiB0cmFuc2l0aW9uaW5nIG92ZXIgdG8gdGhlIG5ldyBhcHByZW50aWNlc2hpcCBhcnJhbmdlbWVudHMgd2hpY2ggbWVhbiB0aGF0IHB1YmxpYyBzZWN0b3IgYm9kaWVzIGNhbiBub3cgcGxhbiBhbmQgZnVuZCBhcHByZW50aWNlc2hpcCBxdWFsaWZpY2F0aW9ucyBmb3IgdGhlaXIgc3RhZmYgcmFuZ2luZyBmcm9tIGxldmVsIDIgKGVxdWl2YWxlbnQgdG8gR0NTRSBsZXZlbCkgcXVhbGlmaWNhdGlvbnMgcmlnaHQgdXAgdG8gZGVncmVlIGFuZCBtYXN0ZXJzIGxldmVsIGFwcHJlbnRpY2VzaGlwcy5cXG5cXG5BIG51bWJlciBvZiBuZXcgQXBwcmVudGljZXNoaXAgU3RhbmRhcmRzIGFyZSBiZWluZyBkZXZlbG9wZWQgd2hpY2ggd2lsbCBwcm92aWRlIGdyZWF0ZXIgb3Bwb3J0dW5pdGllcyBmb3IgcHVibGljIHNlY3RvciBhcHByZW50aWNlcyB3aGVuIHRoZXkgY29tZSBvbi1zdHJlYW0uIFNldmVyYWwgb2YgdGhlc2Ugc3RhbmRhcmRzIHdpbGwgYmUgdmVyeSBpbXBvcnRhbnQgaW4gZmlsbGluZyBza2lsbHMgc2hvcnRhZ2VzIHdpdGhpbiB0aGUgQ291bmNpbCBpbiBtYW55IG9jY3VwYXRpb25hbCBza2lsbHMgc2hvcnRhZ2UgYXJlYXMgc3VjaCBhcyBUZWFjaGVycywgT2NjdXBhdGlvbmFsIFRoZXJhcGlzdHMsIENpdmlsIEVuZ2luZWVycyBhbmQgU29jaWFsIFdvcmtlcnMgdG8gbmFtZSBidXQgYSBmZXcuIFRoZSBkZXZlbG9wbWVudCBvZiB0aGVzZSBzdGFuZGFyZHMgaGFzIGhhZCBtdWNoIGdyZWF0ZXIgaW52b2x2ZW1lbnQgZnJvbSBlbXBsb3llcnMgd2hvIGhhdmUgYmVlbiBhY3RpdmVseSBpbnZvbHZlZCBpbiBkZXZlbG9waW5nIHRoZSBuZXcgYXBwcmVudGljZXNoaXAgc3RhbmRhcmQgcXVhbGlmaWNhdGlvbnMuXFxuXFxuV2UgaGF2ZSBjb250aW51ZWQgb3VyIGFwcHJlbnRpY2VzIGZyb20gdGhlIDIwMTYvMjAxNyBmcm9tIHRoZSBvbGQgZnJhbWV3b3JrIGFuZCBoYXZlIGFsc28gc2lnbmVkIHVwIGEgbnVtYmVyIG9mIGFwcHJlbnRpY2VzIHVuZGVyIHRoZSBuZXcgYXJyYW5nZW1lbnRzIGluIGFyZWFzIHN1Y2ggYXMgYnVzaW5lc3MgYWRtaW5pc3RyYXRpb24sIGFzc2lzdGFudCBhY2NvdW50YW5jeSwgcHJvamVjdCBtYW5hZ2VtZW50LCBmaXJlIHZlaGljbGUgbWFpbnRlbmFuY2UgYW5kIHRvd24gcGxhbm5pbmcuIEFzIHRoZSBuZXcgQXBwcmVudGljZXNoaXAgU3RhbmRhcmRzLHdoaWNoIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudCwgYmVjb21lIGFwcHJvdmVkLCB3ZSBhcmUgY29uZmlkZW50IHRoYXQgbWFueSBtb3JlIHN0YWZmIGFuZCBuZXcgYXBwcmVudGljZXMgd2lsbCBiZSBhYmxlIHRvIHRha2UgdXAgZnVydGhlciBvcHBvcnR1bml0aWVzIG92ZXIgdGhlIGNvbWluZyB5ZWFyLiBUaGVzZSB3aWxsIGNvbnRyaWJ1dGUgdG8gdGhlIHByb2Zlc3Npb25hbGl6YXRpb24gYW5kIHVwc2tpbGxpbmcgb2Ygb3VyIHdvcmtmb3JjZSBlbmFibGluZyBhbmQgc3VwcG9ydGluZyB0aGVtIHRvIGNvbnRpbnVvdXNseSBkZXZlbG9wIGFuZCBpbXByb3ZlIHRoZSBkZWxpdmVyeSBvZiBlZmZlY3RpdmUgc2VydmljZXMgdG8gb3VyIGxvY2FsIGNvbW11bml0eS5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvN0Y5MjlBM0EtODUxMC00MDNELTkyMTUtMjM3RTM1NEY1NUY0XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlVuZGVyIHRoZSBuZXcgYXBwcmVudGljZXNoaXAgcmVmb3JtcyB0aGUgQ291bmNpbOKAmXMgdGFyZ2V0IGZvciBhcHByZW50aWNlcyBoYXMgY2hhbmdlZC4gQXMgYSBwdWJsaWMgc2VjdG9yIGJvZHkgd2UgYXJlIHJlcXVpcmVkIHRvIGRlbGl2ZXIgY2lyY2EgMzYwIGFwcHJlbnRpY2VzIHBlciBhbm51bSBhY3Jvc3Mgb3VyIG9yZ2FuaXNhdGlvbi5cXG5cXG5DaGFsbGVuZ2VzIGFzc29jaWF0ZWQgd2l0aCBicmluZ2luZyBpbiB0aGUgbmV3IGFycmFuZ2VtZW50cyDigJMgaW5jbHVkaW5nIHNvbWUgb2YgdGhlIGtleSBuZXcgYXBwcmVudGljZXNoaXAgc3RhbmRhcmRzIG5vdCB5ZXQgYmVpbmcgYXZhaWxhYmxlLCB0aGUgZnVuZGluZyBjcmlzaXMgaW4gb3VyIHNjaG9vbHMsIHByb2N1cmVtZW50IHRpbWVsaW5lcyBhbmQgdGhlIG5lZWQgZm9yIG1hbmFnZXJzIHRvIHJlbGVhc2UgdGhlaXIgYXBwcmVudGljZXMgZm9yIDIwJSBvZmYgdGhlIGpvYiB0cmFpbmluZyBtZWFuIHRoYXQgd2UgaGF2ZSBhIHdheSB0byBnbyB0byBtZWV0IG91ciB0YXJnZXQgYnV0IHdlIGFudGljaXBhdGUgYSByaXNlIGluIHRoZSB1cHRha2Ugb2YgdHJhaW5pbmcgb3ZlciB0aGUgY291cnNlIG9mIDIwMTgvMjAxOSBhcyBtb3JlIG5ldyBTdGFuZGFyZHMgYXJlIGFwcHJvdmVkIHdoaWNoIHdlIGNhbiBhY3RpdmVseSB1c2UuXFxuXFxuSW4gcHJlcGFyYXRpb24gZm9yIHRoZXNlIGRldmVsb3BtZW50cyB0aGUgTGVhcm5pbmcgJiBEZXZlbG9wbWVudCBDb21taXNzaW9uaW5nIHRlYW06XFxuXFxuKiBIYXZlIG1ldCB3aXRoIGFsbCBEaXJlY3RvcnMgdG8gYnJpZWYgdGhlbSBhbmQgdGhlaXIgbWFuYWdlcnMgb2YgdGhlIG9wcG9ydHVuaXRpZXMgdGhhdCBhcmUgb3Igd2lsbCBiZWNvbWUgYXZhaWxhYmxlIGZvciB0aGVpciBkaXJlY3RvcmF0ZXNcXG4qIEhhdmUgaWRlbnRpZmllZCBhcHByZW50aWNlc2hpcCB0cmFpbmluZyBvcHBvcnR1bml0aWVzIGZvciBlYWNoIGRpcmVjdG9yYXRlXFxuKiBIYXZlIG1ldCB3aXRoIGFsbCBTY2hvb2xzIGFuZCBhIG51bWJlciBvZiBCb2FyZHMgb2YgR292ZXJub3JzXFxuKiBJZGVudGlmaWVkIGFwcHJvcHJpYXRlIHRyYWluaW5nIG9wcG9ydHVuaXRpZXMgZm9yIFNjaG9vbHNcXG4qIFByb3ZpZGVkIGluZm9ybWF0aW9uIHRvIGRpcmVjdG9yYXRlIEhlIENvbnN1bHRhbnRzIGluIG9yZGVyIGZvciB3b3JrZm9yY2UgcGxhbm5pbmcgdG8gdGFrZSBwbGFjZSB0aGF0IGVuY29tcGFzc2VzIHRoZSB0YWtlIHVwIG9mIGFwcHJlbnRpY2VzaGlwIHRyYWluaW5nXFxuKiBBcmUgd29ya2luZyB3aXRoIENvbW11bmljYXRpb25zICYgRW5nYWdlbWVudCB0byBkZXZlbG9wIGEgcHJvbW90aW9uYWwgY2FtcGFpZ24gZm9yIGFsbCBzdGFmZiBhbmQgbWFuYWdlcnMgc28gdGhlIHRyYWluaW5nIG9mZmVyIHJlYWNoZXMgZXZlcnlvbmUuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAyIC0gU2VwdGVtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhpcyBxdWFydGVycyBmaWd1cmVzIHBsdW1tZXRlZCBpbiBKdWx5IGFuZCBBdWd1c3QgYW5kIHN1YnNlcXVlbnRseSBncmV3IGluIFNlcHRlbWJlciB0byB0aGVpciBoaWdoZXN0IGxldmVsIGZvciBhbG1vc3QgYSB5ZWFyLiBUaGV5IGFyZSB5ZXQgdG8gcmlzZSBmdXJ0aGVyIGFzIHRoZSB5ZWFyIHByb2dyZXNzZXMgYW5kIGl0IGlzIGV4dHJlbWVseSBsaWtlbHkgdGhpcyBtZWFzdXJlIHdpbGwgYmUgbWV0IHRocm91Z2hvdXQgdGhlIHllYXIuIFRoZSBDb3VudHkgQ291bmNpbCBoYXMgYmVlbiBwcm9jdXJpbmcgQXBwcmVudGljZXNoaXAgVHJhaW5pbmcgcHJvdmlkZXJzIGluIG9yZGVyIHRvIHNwZW5kIGl0cyBuZXcgQXBwcmVudGljZXNoaXAgTGV2eSBmdW5kIGZvciBBcHByZW50aWNlc2hpcCB0cmFpbmluZyBhbmQgdGhpcyBuZXcgd2F5IG9mIGludmVzdG1lbnQgaXMgaGF2aW5nIGEgcG9zaXRpdmUgaW1wYWN0IG9uIG91ciB0YWtlIHVwIG9mIGFwcHJlbnRpY2VzaGlwcy4gVGhlIGZ1bmQgY2FuIGJlIHVzZWQgdG8gcGF5IGZvciBhcHByZW50aWNlc2hpcCB0cmFpbmluZyBmb3IgZXhpc3RpbmcgZW1wbG95ZWVzIHdoaWNoIHNob3VsZCBzZWUgYSByaXNlIGluIHRoZSBudW1iZXIgb2YgZXhpc3RpbmcgZW1wbG95ZWVzIGluIGJvdGggY291bmNpbCBhbmQgc2Nob29sIHNlcnZpY2VzIHdobyBzdHVkeSBhIHByb2Zlc3Npb25hbCBxdWFsaWZpY2F0aW9uIHVzaW5nIHRoaXMgcm91dGUuIE1vcmUgYXBwcmVudGljZXNoaXAgdHJhaW5pbmcgcGF0aHdheXMgYXJlIGJlaW5nIGRldmVsb3BlZCBhbmQgYmVjb21pbmcgYXZhaWxhYmxlIHRvIGVtcGxveWVycyB3aGljaCB3aWxsIGFsc28gaGVscCB1cyB0byBncm93IG91ciBhcHByZW50aWNlc2hpcCBvZmZlciBpbiBib3RoIHNjaG9vbHMgYW5kIGNvcnBvcmF0ZS4gQW4gT2ZmaWNlciBoYXMgYmVlbiBkZXNpZ25hdGVkIHRvIHdvcmsgd2l0aCBzY2hvb2xzIGZvciBhIHllYXIgdG8gZW5jb3VyYWdlIHRoZWlyIGVuZ2FnZW1lbnQgd2l0aCBhcHByZW50aWNlc2hpcHMgd2hpY2ggYWltcyB0byBzZWUgYW4gaW5jcmVhc2UgaW4gdGhlIG51bWJlciBvZiBBcHByZW50aWNlcyB3b3JraW5nIGZvciB0aGVtLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMSAtIEp1bmUgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG4oVGhlIGNvdW50eSBmaWd1cmVzLCBuYXRpb25hbCBkYXRhIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBjdXJyZW50IHF1YXJ0ZXIgYnV0IHdpbGwgYmUgYXZhaWxhYmxlIGluIFNlcHRlbWJlciAtIHF1YXJ0ZXIgMilcXG5cXG5UaGUgY291bnR5IGNvdW5jaWzigJlzIEFwcHJlbnRpY2VzaGlwIG51bWJlcnMgaGF2ZSByZW1haW5lZCBzdGVhZHkgZm9yIHRoaXMgcXVhcnRlciBhbmQgYXJlIGFzIHdlIGV4cGVjdGVkIHdpdGggbGl0dGxlIGNoYW5nZS8gZ3Jvd3RoLiBUaGUgQ291bnR5IENvdW5jaWwgaGFzIGJlZW4gZm9jdXNlZCBvbiBpdHMgcHJlcGFyYXRpb24gZm9yIHRoZSBhcHByZW50aWNlc2hpcCBsZXZ5IGdvIGxpdmUuIFRoZXNlIHByZXBhcmF0aW9ucyBpbmNsdWRlIHRoZSBzZXQtdXAgb2YgYSBuZXcgcHJvY3VyZW1lbnQgc3lzdGVtIGZvciBhcHByZW50aWNlc2hpcCB0cmFpbmluZyBhbmQgYSBuZXcgc3RhZmYgc3RydWN0dXJlIHRvIHN1cHBvcnQgYXBwcmVudGljZXNoaXBzIGludG8gdGhlIGZ1dHVyZS4gVGhlIHN0cnVjdHVyZSB0aGlzIGluY2x1ZGUgYSByb2xlIGRlZGljYXRlZCB0byBzdXBwb3J0aW5nIHNjaG9vbHMgaW4gdGhlIGNvdW50eSBhcyB0aGUgYXJlYSB3aG8gZW1wbG95IHRoZSBsYXJnZXN0IHBlcmNlbnRhZ2Ugb2Ygb3VyIHdvcmtmb3JjZS4gVGhlIG5ldyBwcm9jdXJlbWVudCBzeXN0ZW0gd2VudCBsaXZlIGF0IHRoZSBlbmQgb2YgSnVuZSBhbmQgd2UgaGF2ZSBzdGFydGVkIHRvIHN1Ym1pdCB0ZW5kZXJzIGZvciBhcHByZW50aWNlc2hpcCB0cmFpbmluZyBwcm92aWRlcnMgdG8gZGVsaXZlciB0aGUgcXVhbGlmaWNhdGlvbnMgd2UgcmVxdWlyZS4gV2Ugd2lsbCBicmluZyBuZXdzIG9uIHRoZSByZXN1bHRzIG9mIHRoaXMgZXhlcmNpc2UgaW4gdGhlIG5leHQgcXVhcnRlciB3aGVuIGl0IGlzIGhvcGVkIG91ciBBcHByZW50aWNlIG51bWJlcnMgYXJlIHN0YXJ0aW5nIHRvIGluY3JlYXNlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKk5vdmVtYmVyIDIwMTYqKlxcblxcbl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXFxuXFxuQXBwcmVudGljZXNoaXAgc3RhcnRzIGluIHRoZSBjb3VudHkgaGFzIGluY3JlYXNlZCB0aGlzIHllYXIgYW5kIG5vdyBleGNlZWQgdGhlIHBlYWsgb2YgMjAxMi8xMyB3aGVuIHdlIGFjaGlldmVkIDUsNjEwIHN0YXJ0cy4gVGhlIGZvbGxvd2luZyB0d28geWVhcnMgd2VyZSB3ZWxsIGJlbG93IHRoaXMgbGV2ZWwuIENoaWNoZXN0ZXIgRGlzdHJpY3QgQ291bmNpbCBoYXMgaGFkIHRoZSBtb3N0IHNpZ25pZmljYW50IGluY3JlYXNlIGluIHN0YXJ0cyBhbmQgdXAgc29tZSAxNi41JSBvbiBsYXN0IHllYXIuIFdvcnRoaW5nIGhhcyBzZWVuIGEgc2lnbmlmaWNhbnQgZGVjcmVhc2Ugd2l0aCA1MCBzdGFydHMgbGVzcyB0aGFuIHRoZXkgYWNoaWV2ZWQgaW4gMjAxNC8xNS4gV2UgaGF2ZSBzcG9rZW4gd2l0aCB0aGUgRGlzdHJpY3QgQ291bmNpbCBzbyB0aGV5IGFyZSBhd2FyZSBvZiB0aGlzIGFuZCBjb25zaWRlcmluZyB3YXlzIG9mIGluZmx1ZW5jaW5nIHRoaXMgcGF0dGVybiBpbiB0aGUgZnV0dXJlLlxcblxcblRoZSBBcHByZW50aWNlc2hpcCBsZXZ5IHdpbGwgYmUgbGl2ZSBmcm9tIE1heSAyMDE3IHByb3ZpZGluZyBhIG5ldyBzeXN0ZW0gYW5kIHdheXMgb2YgZW1wbG95ZXJzIGFuZCBsZWFybmluZyBwcm92aWRlcnMgYWNjZXNzaW5nIGZ1bmRpbmcgZm9yIHRoZWlyIEFwcHJlbnRpY2VzaGlwIHRyYWluaW5nLiBUaGlzIG1heSBtZWFuIHVuY2VydGFpbnR5IGFzIGVtcGxveWVycyBsZWFybiBhbmQgYWRhcHQgdG8gdGhlIG5ldyBzeXN0ZW0gd2hpY2ggbWF5IGltcGFjdCBvbiB0aGUgc3RhcnQgbnVtYmVycyBuZXh0IHllYXIuIEhvd2V2ZXIgdGhlIGxvbmdlciB0ZXJtIGludGVudGlvbiBpcyB0byBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIEFwcHJlbnRpY2VzIGluIHRoZSBjb3VudHkgYW5kIHRoZSBDb3VudHkgQ291bmNpbCBhbmQgb3VyIERpc3RyaWN0IGFuZCBCb3JvdWdoIHBhcnRuZXJzIHdpbGwgYmUgbWluZGZ1bCBvZiBob3cgd2UgY291bGQgc3VwcG9ydCBhbmQgY29tbXVuaWNhdGUgd2l0aCBlbXBsb3llcnMgdG8gaGVscCBlbmNvdXJhZ2UgdGhlaXIgZW5nYWdlbWVudC5cXG5cXG5cIn1dLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIkluY3JlYXNpbmcgdGhlIG51bWJlciBvZiBhcHByZW50aWNlc2hpcHMgaW4gV2VzdCBTdXNzZXhcIixcInVzZV9jdXN0b21fc3VidGl0bGVcIjp0cnVlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJXZSBhaW0gdG8gaW1wcm92ZSB0aGUgbnVtYmVyIG9mIHRoZSBBcHByZW50aWNlc2hpcHMgaW4gV2VzdCBTdXNzZXggYnkgNSUgb3IgbW9yZSwgeWVhciBvbiB5ZWFyLlwiLFwidGl0bGVfaW1hZ2VcIjpcIi9hcGkvYXNzZXRzLzlFNkQ2QjdBLUJDNkItNDQ0Ri1CMkZGLUYxODY5MDQ3MTREMlwifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDA2LTA0LTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6ImFwcHJlbnRpY2VzIiwidGFyZ2V0X3R5cGUiOiJyZWxhdGl2ZSIsInRhcmdldF9kZWx0YSI6MCwidGFyZ2V0X2RlbHRhX2lzX3BlcmNlbnQiOmZhbHNlLCJiYXNlbGluZSI6NjA4MCwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiIycDhrLTZwODUifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPiJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjMsXCJ5ZWFyXCI6MjAwNn0sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJtYWludGFpblwiLFwibWFpbnRhaW5fdHlwZVwiOlwiPlwifSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNH0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fX0sXCJzdGFydFwiOlwiMjAxNC0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNC0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9fSxcIm5hbWVcIjpcInRoZSBudW1iZXIgb2YgYXBwcmVudGljZXMgaW4gV2VzdCBTdXNzZXhcIixcInVzZV9wcm9ncmVzc19vdmVycmlkZVwiOmZhbHNlLFwicHJvZ3Jlc3Nfb3ZlcnJpZGVcIjpcImdvb2RcIn0ifSwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMDk6MDQ6MjIuMTgzWiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDA5OjA0OjIyLjE4M1oiLCJ0YXJnZXRfdG9sZXJhbmNlIjoyOTAsImlkIjoidjc5bi1xNmt6In0sInJlbGF0ZWRfbWVhc3VyZXMiOlt7Im1ldGFkYXRhIjoiIiwiaWQiOiJyemh5LWRrYjQifV0sImJhc2VfZGFzaGJvYXJkIjoiNTc0ci1oNW5jIiwidXBkYXRlZF9hdCI6IjIwMTgtMDctMjNUMDk6Mzk6NTMuMzAxWiIsImNyZWF0ZWRfYXQiOiIyMDE4LTA3LTIzVDA5OjA0OjIyLjIzOVoiLCJ2ZXJzaW9uIjoiMjAxOC0wNy0yM1QwOTozOTo1My4zMDFaIiwiY3JlYXRlZF9ieSI6Ijc5N2ktNnI5ZyJ9LHsiaWQiOiJzaWZqLW5wbTUiLCJuYW1lIjoiVW5lbXBsb3ltZW50IHJhdGUgcGVvcGxlIGFnZWQgNTAtNjQiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wib3B0aW9uc1wiOntcInBhcmVudFwiOntcIm9wdGlvbnNcIjp7XCJwYXJlbnRcIjp7XCJvcHRpb25zXCI6e1wicGFyZW50XCI6e1wiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjExNjQsXCJsaXN0XCI6W119fSxcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjozMjkyMixcIl9wYXJlbnRcIjp7XCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MTE2NCxcImxpc3RcIjpbXX0sXCJsaXN0XCI6W119fSxcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjozMjkzOCxcIl9wYXJlbnRcIjp7XCJvcHRpb25zXCI6e1wicGFyZW50XCI6e1wiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjExNjQsXCJsaXN0XCI6W119fSxcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjozMjkyMixcIl9wYXJlbnRcIjp7XCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MTE2NCxcImxpc3RcIjpbXX0sXCJsaXN0XCI6W119LFwibGlzdFwiOltdfX0sXCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MzI5MzksXCJfcGFyZW50XCI6e1wib3B0aW9uc1wiOntcInBhcmVudFwiOntcIm9wdGlvbnNcIjp7XCJwYXJlbnRcIjp7XCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MTE2NCxcImxpc3RcIjpbXX19LFwiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjMyOTIyLFwiX3BhcmVudFwiOntcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjoxMTY0LFwibGlzdFwiOltdfSxcImxpc3RcIjpbXX19LFwiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjMyOTM4LFwiX3BhcmVudFwiOntcIm9wdGlvbnNcIjp7XCJwYXJlbnRcIjp7XCJfZXZlbnRzXCI6e1wibWF4TGlzdGVuZXJzXCI6MH0sXCJuZXdMaXN0ZW5lclwiOmZhbHNlLFwiX2NvbmZcIjp7XCJkZWxpbWl0ZXJcIjpcIjpcIixcIm1heExpc3RlbmVyc1wiOjB9LFwiZGVsaW1pdGVyXCI6XCI6XCIsXCJfb3V0d2FyZExpc3RlbmVyc1wiOltdLFwiX2lkXCI6MTE2NCxcImxpc3RcIjpbXX19LFwiX2V2ZW50c1wiOntcIm1heExpc3RlbmVyc1wiOjB9LFwibmV3TGlzdGVuZXJcIjpmYWxzZSxcIl9jb25mXCI6e1wiZGVsaW1pdGVyXCI6XCI6XCIsXCJtYXhMaXN0ZW5lcnNcIjowfSxcImRlbGltaXRlclwiOlwiOlwiLFwiX291dHdhcmRMaXN0ZW5lcnNcIjpbXSxcIl9pZFwiOjMyOTIyLFwiX3BhcmVudFwiOntcIl9ldmVudHNcIjp7XCJtYXhMaXN0ZW5lcnNcIjowfSxcIm5ld0xpc3RlbmVyXCI6ZmFsc2UsXCJfY29uZlwiOntcImRlbGltaXRlclwiOlwiOlwiLFwibWF4TGlzdGVuZXJzXCI6MH0sXCJkZWxpbWl0ZXJcIjpcIjpcIixcIl9vdXR3YXJkTGlzdGVuZXJzXCI6W10sXCJfaWRcIjoxMTY0LFwibGlzdFwiOltdfSxcImxpc3RcIjpbXX0sXCJsaXN0XCI6W119LFwibGlzdFwiOltdLFwicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGlzIGdvYWwgaXMgdHJhY2tlZCBieSBtZWFzdXJpbmcgdGhlICUgb2YgcGVvcGxlIGFnZWQgNTAtNjQgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgYXMgYSBwcm9wb3J0aW9uIG9mIHRoZSByZXNpZGVudCBwb3B1bGF0aW9uIG9mIHRoZSBzYW1lIGFnZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipGZWJydWFyeSAyMDE4IFVwZGF0ZSoqXFxuXFxuLSAtIC1cXG5cXG5MYXRlc3QgZmlndXJlcyBmb3IgNTAtNjQgY2xhaW1pbmcgSm9ic2Vla2VyJ3MgQWxsb3dhbmNlXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzRBQkMxOTM2LTBENDYtNDFDNy1BMDM2LTI4NEYxNzMxNDYxNVwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyDigJMgSmFudWFyeSAyMDE4KipcXG5cXG5UaGUgdW5lbXBsb3ltZW50IHJhdGUgaXMgZ2VuZXJhbGx5IGNhbGN1bGF0ZWQgYnkgdGFraW5nIHRoZSBudW1iZXIgb2YgcGVvcGxlIHdobyBhcmUgdW5lbXBsb3llZCBhbmQgYXJlIGxvb2tpbmcgZm9yIGEgcGFpZCBqb2IgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBlY29ub21pY2FsbHkgYWN0aXZlIHBvcHVsYXRpb24gaS5lLiB0aGUgcG9wdWxhdGlvbiB3aG8gYXJlIGVpdGhlciBlbXBsb3llZCBvciB1bmVtcGxveWVkIGFuZCBsb29raW5nIGZvciB3b3JrLlxcblxcblRoZXJlIGFyZSB0d28gbWVhc3VyZXMgb2YgdW5lbXBsb3ltZW50LlxcblxcblRoZSBmaXJzdCBpcyB0aGXigJhvZmZpY2lhbOKAmSBlc3RpbWF0ZSB1c2luZyB0aGUgSW50ZXJuYXRpb25hbCBMYWJvdXIgT3JnYW5pc2F0aW9uIChJTE8pIGRlZmluaXRpb24gd2hpY2ggY29uZm9ybXMgdG8gdGhlIGludGVybmF0aW9uYWwgZGVmaW5pdGlvbiBvZiB1bmVtcGxveW1lbnQsIHRoZSBtZWFzdXJlIGlzIGJhc2VkIG9uIGEgcXVhcnRlcmx5IHNhbXBsZSBzdXJ2ZXkgb2YgaG91c2Vob2xkcyB1bmRlcnRha2VuIGJ5IE9OUyBhcyBwYXJ0IG9mIHRoZSBBbm51YWwgUG9wdWxhdGlvbiBTdXJ2ZXkgKEFQUykuIFRoZSB1bmVtcGxveW1lbnQgcmF0ZXMgZnJvbSB0aGUgQVBTIGhvd2V2ZXIgYXJlIG5vdCBicm9rZW4gZG93biBieSBhZ2UgYmFuZHMuXFxuXFxuVGhlIHNlY29uZCBtZWFzdXJlLCB0aGUgY2xhaW1hbnQgY291bnQsIHRlbmRzIHRvIGJlIGEgbG93ZXIgbWVhc3VyZSBvZiB0aGUgdHdvIGJlY2F1c2Ugc29tZSB1bmVtcGxveWVkIGFyZSBub3QgZW50aXRsZWQgdG8gY2xhaW0gYmVuZWZpdHMgb2YgYW55IHNvcnQgb3IgY2hvb3NlIG5vdCB0byBkbyBzby4gSXQgaXMgc2VlbiBieSBzb21lIGFzIG1vcmUgb2YgYSB3ZWxmYXJlIGNvdW50IGFuZCBub3Qgc3RyaWN0bHkgYW4gdW5lbXBsb3ltZW50IGNvdW50LiBUaGUgZGF0YSBpcyBwdWJsaXNoZWQgbW9udGhseSBhbmQgaXMgaW5kaWNhdGl2ZSBvZiByZWxhdGl2ZSB1bmVtcGxveW1lbnQgbGV2ZWxzIGluIHRoZSBsb2NhbCBhcmVhLlxcblxcbkhvd2V2ZXIsIHRoZSBjbGFpbWFudCBjb3VudCBoYXMgdW5kZXJnb25lIHN1YnN0YW50aWFsIGNoYW5nZSBvdmVyIHJlY2VudCB5ZWFycy4gSW4gMjAxMyBVbml2ZXJzYWwgQ3JlZGl0IHdhcyBpbnRyb2R1Y2VkIGFuZCByb2xsZWQgb3V0IG92ZXIgYSBwZXJpb2Qgb2YgeWVhcnMgYW5kIHdhcyBpbXBsZW1lbnRlZCBpbiBXZXN0IFN1c3NleCBkdXJpbmcgMjAxNS4gVW5pdmVyc2FsIENyZWRpdCBpcyBhIHNpbmdsZSBtb250aGx5IHBheW1lbnQgZm9yIHBlb3BsZSBpbiBvciBvdXQgb2Ygd29yaywgd2hpY2ggbWVyZ2VzIHRvZ2V0aGVyIHNvbWUgb2YgdGhlIGV4aXN0aW5nIG1lYW5zLXRlc3RlZCBiZW5lZml0cyBhbmQgdGF4IGNyZWRpdHMgaW5jbHVkaW5nIEluY29tZS1iYXNlZCBKb2JzZWVrZXIncyBBbGxvd2FuY2UgYW5kIGluY29tZS1yZWxhdGVkIEVtcGxveW1lbnQgYW5kIFN1cHBvcnQgQWxsb3dhbmNlLlxcblxcblRoZXJlIGlzIGFuIGV4cGVyaW1lbnRhbCBkYXRhIHNlcmllcyBnaXZpbmcgYSBjb3VudCBvZiB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2UgcGx1cyB0aG9zZSB3aG8gY2xhaW0gVW5pdmVyc2FsIENyZWRpdCBiZWNhdXNlIHRoZXkgYXJlIG91dCBvZiB3b3JrLCBpdCByZXBsYWNlcyB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2UgYXMgdGhlIGhlYWRsaW5lIGluZGljYXRvciBvZiB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBiZW5lZml0cyBwcmluY2lwYWxseSBmb3IgdGhlIHJlYXNvbiBvZiBiZWluZyB1bmVtcGxveWVkLiBIb3dldmVyLCB0aGUgcmF0ZXMgYXJlIG5vdCBicm9rZW4gZG93biBpbnRvIGRpZmZlcmVudCBhZ2UgZ3JvdXBzLlxcblxcblRoZSBjb3VudCBvZiBwZW9wbGUgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgaXMgc3RpbGwgYXZhaWxhYmxlIGJ5IGFnZSBvZiBjbGFpbWFudCBhbmQgZHVyYXRpb24gb2YgY2xhaW1pbmcuIExvb2tpbmcgYXQgdGhlIG51bWJlcnMgaG93ZXZlciwgaXQgZG9lcyBhcHBlYXIgdGhhdCB0aGUgbnVtYmVycyBvZiBwZXJzb25zIGFnZWQgMTYrIGFzIHdlbGwgYXMgdGhvc2UgcGVvcGxlIHdpdGhpbiB0aGUgNTAtNjQgYWdlIGJyYWNrZXQgY2xhaW1pbmcgZWl0aGVyIHVuaXZlcnNhbCBjcmVkaXQgb3IgSm9iIFNlZWtlciBBbGxvd2FuY2UgaGFzIGluY3JlYXNlZCBvdmVyIHRoZSB5ZWFyIE5vdmVtYmVyIDIwMTctTm92IDIwMTYuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzL0QxREJCNTQ1LTBFNzAtNDgwNi1BRUY0LTcwNzZBMEU0Q0I2NlwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGUgdGFibGUgYmVsb3cgc2hvd3MgdGhlIG51bWJlciBvZiA1MC02NCB5ZWFyIG9sZHMgd2hvIHdlcmUgY2xhaW1pbmcgb25seSBKU0EgdXAgdG8gTm92ZW1iZXIgMjAxNywgYW5kIHRoZSByYXRlIGkuZS4gdGhlIG51bWJlciBvZiB0aG9zZSBjbGFpbWluZyBhcyBhIHBlcmNlbnRhZ2Ugb2YgNTAtNjQgYWdlZCByZXNpZGVudHMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzdBNkY3RTg4LTlDRUYtNDRFNy1CRkY4LUE4NDJEOEYwODg3MFwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAyIC0gU2VwdGVtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIHVuZW1wbG95bWVudCByYXRlIGlzIGdlbmVyYWxseSBjYWxjdWxhdGVkIGFzIGEgcHJvcG9ydGlvbiBvZiB0aGUgZWNvbm9taWNhbGx5IGFjdGl2ZSBwb3B1bGF0aW9uIGkuZS4gdGhlIHBvcHVsYXRpb24gd2hvIGFyZSBlaXRoZXIgZW1wbG95ZWQgb3IgdW5lbXBsb3llZCAoaS5lIHRob3NlIHdobyBhcmUgb3V0IG9mIHdvcmsgYnV0IGFjdGl2ZWx5IHNlZWtpbmcgYW5kIGF2YWlsYWJsZSB0byB3b3JrIOKAkyBpdCBkb2VzIG5vdCBpbmNsdWRlIHJldGlyZWQpLlxcblxcblRoZXJlIGFyZSB0d28gbWVhc3VyZXMgb2YgdW5lbXBsb3ltZW50LlxcblxcblRoZSBmaXJzdCBpcyB0aGXigJggb2ZmaWNpYWzigJkgZXN0aW1hdGUgdXNpbmcgdGhlIEludGVybmF0aW9uYWwgTGFib3VyIE9yZ2FuaXNhdGlvbiAoSUxPKSBkZWZpbml0aW9uIHdoaWNoIGNvbmZvcm1zIHRvIHRoZSBpbnRlcm5hdGlvbmFsIGRlZmluaXRpb24gb2YgdW5lbXBsb3ltZW50LCB0aGUgbWVhc3VyZSBpcyBiYXNlZCBvbiBhIHF1YXJ0ZXJseSBzYW1wbGUgc3VydmV5IG9mIGhvdXNlaG9sZHMgdW5kZXJ0YWtlbiBieSBPTlMgYXMgcGFydCBvZiB0aGUgQW5udWFsIFBvcHVsYXRpb24gU3VydmV5IChBUFMpLiBUaGUgbGF0ZXN0IGZpZ3VyZXMgaGF2ZSBiZWVuIHJlcG9ydGVkIGluIHRoZSBwcmV2aW91cyBxdWFydGVyLCB0aG91Z2ggYXJlIG5vdCBicm9rZW4gZG93biBieSBhZ2UgYmFuZHMuXFxuXFxuVGhlIHNlY29uZCBtZWFzdXJlLCB0aGUgY2xhaW1hbnQgY291bnQsIHRlbmRzIHRvIGJlIGEgbG93ZXIgbWVhc3VyZSBvZiB0aGUgdHdvIGJlY2F1c2Ugc29tZSB1bmVtcGxveWVkIGFyZSBub3QgZW50aXRsZWQgdG8gY2xhaW0gYmVuZWZpdHMgb2YgYW55IHNvcnQgb3IgY2hvb3NlIG5vdCB0byBkbyBzby4gSXQgaXMgc2VlbiBieSBzb21lIGFzIG1vcmUgb2YgYSB3ZWxmYXJlIGNvdW50IGFuZCBub3Qgc3RyaWN0bHkgYW4gdW5lbXBsb3ltZW50IGNvdW50LlxcblxcblRoZSBkYXRhIGlzIHB1Ymxpc2hlZCBtb250aGx5IGFuZCBpcyBpbmRpY2F0aXZlIG9mIHJlbGF0aXZlIHVuZW1wbG95bWVudCBsZXZlbHMgaW4gdGhlIGxvY2FsIGFyZWEuIFRoZSBjbGFpbWFudCBjb3VudCBoYXMgdW5kZXJnb25lIHN1YnN0YW50aWFsIGNoYW5nZSBvdmVyIHJlY2VudCB5ZWFycy4gSW4gMjAxMyBVbml2ZXJzYWwgQ3JlZGl0IHdhcyBpbnRyb2R1Y2VkIGFuZCByb2xsZWQgb3V0IG92ZXIgYSBwZXJpb2Qgb2YgeWVhcnMgYW5kIHdhcyBpbXBsZW1lbnRlZCBpbiBXZXN0IFN1c3NleCBkdXJpbmcgMjAxNS4gVW5pdmVyc2FsIENyZWRpdCBpcyBhIHNpbmdsZSBtb250aGx5IHBheW1lbnQgZm9yIHBlb3BsZSBpbiBvciBvdXQgb2Ygd29yaywgd2hpY2ggbWVyZ2VzIHRvZ2V0aGVyIHNvbWUgb2YgdGhlIGV4aXN0aW5nIG1lYW5zLXRlc3RlZCBiZW5lZml0cyBhbmQgdGF4IGNyZWRpdHMgaW5jbHVkaW5nIEluY29tZS1iYXNlZCBKb2JzZWVrZXIncyBBbGxvd2FuY2UgYW5kIGluY29tZS1yZWxhdGVkIEVtcGxveW1lbnQgYW5kIFN1cHBvcnQgQWxsb3dhbmNlLlxcblxcblRoZXJlIGlzIGFuIGV4cGVyaW1lbnRhbCBkYXRhIHNlcmllcyBnaXZpbmcgYSBjb3VudCBvZiB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2UgcGx1cyB0aG9zZSB3aG8gY2xhaW0gVW5pdmVyc2FsIENyZWRpdCBiZWNhdXNlIHRoZXkgYXJlIG91dCBvZiB3b3JrLCBpdCByZXBsYWNlcyB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2UgYXMgdGhlIGhlYWRsaW5lIGluZGljYXRvciBvZiB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBiZW5lZml0cyBwcmluY2lwYWxseSBmb3IgdGhlIHJlYXNvbiBvZiBiZWluZyB1bmVtcGxveWVkLiBUaGUgdG90YWwgbnVtYmVycyBvZiBjbGFpbWFudHMgYW5kIHJhdGVzIGFzIGEgcHJvcG9ydGlvbiBvZiByZXNpZGVudHMgYWdlZCAxNi02NCBhcmUgaW4gdGhlIHRhYmxlIGJlbG93OlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8yNDJFRDI5NS1BQUY5LTRBRDYtQTExNS05MjEwNDgwQzQxNjZcIn0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGlzIGRhdGEgc2V0IGhvd2V2ZXIsIGRvZXMgbm90IGdpdmUgYW4gdW5lbXBsb3ltZW50IHJhdGUgYnkgYWdlIGJyZWFrZG93bi4gVGhlIGNvdW50IG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXJzIEFsbG93YW5jZSBpcyBzdGlsbCBhdmFpbGFibGUgYnkgYWdlIG9mIGNsYWltYW50IGFuZCBkdXJhdGlvbiBvZiBjbGFpbWluZy5cXG5cXG4gXFxuXFxuVGhlIHRhYmxlIG9uIHRoZSByaWdodCBzaG93cyB0aGUgbnVtYmVyIG9mIDUwLTY0IHllYXIgb2xkcyB3aG8gd2VyZSBjbGFpbWluZyBKU0EgaW4gQXVndXN0IDIwMTcsIGFuZCB0aGUgcmF0ZSBpLmUuIHRoZSBudW1iZXIgb2YgdGhvc2UgY2xhaW1pbmcgYXMgYSBwZXJjZW50YWdlIG9mIDUwLTY0IHJlc2lkZW50cy5cXG5cXG5cIn1dLFt7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8yN0EwMUQ2NS01NzAzLTQ1MjktODkzRC1FMDU1N0M0RDVENDNcIn1dXX0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIHVuZW1wbG95bWVudCByYXRlIGlzIGdlbmVyYWxseSBjYWxjdWxhdGVkIGFzIGEgcHJvcG9ydGlvbiBvZiB0aGUgZWNvbm9taWNhbGx5IGFjdGl2ZSBwb3B1bGF0aW9uIGkuZS4gdGhlIHBvcHVsYXRpb24gd2hvIGFyZSBlaXRoZXIgZW1wbG95ZWQgb3IgdW5lbXBsb3llZCAoaS5lIHRob3NlIHdobyBhcmUgb3V0IG9mIHdvcmsgYnV0IGFjdGl2ZWx5IHNlZWtpbmcgYW5kIGF2YWlsYWJsZSB0byB3b3JrIOKAkyBpdCBkb2VzIG5vdCBpbmNsdWRlIHJldGlyZWQpLiBUaGVyZSBhcmUgdHdvIG1lYXN1cmVzIG9mIHVuZW1wbG95bWVudC4gVGhlIGZpcnN0IGlzIHRoZSDigJhvZmZpY2lhbOKAmSBlc3RpbWF0ZSB1c2luZyB0aGUgSW50ZXJuYXRpb25hbCBMYWJvdXIgT3JnYW5pc2F0aW9uIChJTE8pIGRlZmluaXRpb24gd2hpY2ggY29uZm9ybXMgdG8gdGhlIGludGVybmF0aW9uYWwgZGVmaW5pdGlvbiBvZiB1bmVtcGxveW1lbnQsIHRoZSBtZWFzdXJlIGlzIGJhc2VkIG9uIGEgcXVhcnRlcmx5IHNhbXBsZSBzdXJ2ZXkgb2YgaG91c2Vob2xkcyB1bmRlcnRha2VuIGJ5IE9OUyBhcyBwYXJ0IG9mIHRoZSBBbm51YWwgUG9wdWxhdGlvbiBTdXJ2ZXkgKEFQUykuIEFzIHRoZSB1bmVtcGxveWVkIGZvcm0gYSBzbWFsbCBwZXJjZW50YWdlIG9mIHRoZSBlY29ub21pY2FsbHkgYWN0aXZlIHBvcHVsYXRpb24sIGFuZCBhcyB1bmVtcGxveW1lbnQgZXN0aW1hdGVzIGZvciBsb2NhbCBhdXRob3JpdHkgZ2VvZ3JhcGhpZXMgYXJlIGJhc2VkIG9uIHZlcnkgc21hbGwgc3VydmV5IHNhbXBsZXMsIG1vZGVsLWJhc2VkIGVzdGltYXRlcyBoYXZlIGJlZW4gZGV2ZWxvcGVkIHRoYXQgcHJvdmlkZSBiZXR0ZXIgZXN0aW1hdGVzIG9mIHRvdGFsIHVuZW1wbG95ZWQgZm9yIGxvY2FsIGF1dGhvcml0aWVzLiBUaGVzZSBlc3RpbWF0ZXMgYXJlIG5vdCBicm9rZW4gZG93biBieSBhZ2UgYmFuZHMuXFxuXFxuVW5lbXBsb3ltZW50IGNvdW50IGFuZCByYXRlcyB1bmRlciB0aGlzIGRlZmluaXRpb24gZm9yIFdlc3QgU3Vzc2V4IGFyZTpcXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvOUZGNDA2NDAtODhBQS00MkE1LUI2M0QtRjVFODJFQUE4Njg3XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSBzZWNvbmQgbWVhc3VyZSBpcyB0aGUgY2xhaW1hbnQgY291bnQuIFRoaXMgdGVuZHMgdG8gYmUgdGhlIGxvd2VyIG1lYXN1cmUgb2YgdGhlIHR3byBiZWNhdXNlIHNvbWUgdW5lbXBsb3llZCBhcmUgbm90IGVudGl0bGVkIHRvIGNsYWltIGJlbmVmaXRzIG9mIGFueSBzb3J0IG9yIGNob29zZSBub3QgdG8gZG8gc28uIEl0IGlzIHNlZW4gYnkgc29tZSBhcyBtb3JlIG9mIGEgd2VsZmFyZSBjb3VudCBhbmQgbm90IHN0cmljdGx5IGFuIHVuZW1wbG95bWVudCBjb3VudC4gVGhlIGRhdGEgaXMgcHVibGlzaGVkIG1vbnRobHkgYW5kIGlzIGluZGljYXRpdmUgb2YgcmVsYXRpdmUgdW5lbXBsb3ltZW50IGxldmVscyBpbiB0aGUgbG9jYWwgYXJlYS4gVGhlIGNsYWltYW50IGNvdW50IGhhcyB1bmRlcmdvbmUgc3Vic3RhbnRpYWwgY2hhbmdlIG92ZXIgcmVjZW50IHllYXJzLiBJbiAyMDEzIFVuaXZlcnNhbCBDcmVkaXQgd2FzIGludHJvZHVjZWQgYW5kIHJvbGxlZCBvdXQgb3ZlciBhIHBlcmlvZCBvZiB5ZWFycyBhbmQgd2FzIGltcGxlbWVudGVkIGluIFdlc3QgU3Vzc2V4IGR1cmluZyAyMDE1LiBVbml2ZXJzYWwgQ3JlZGl0IGlzIGEgc2luZ2xlIG1vbnRobHkgcGF5bWVudCBmb3IgcGVvcGxlIGluIG9yIG91dCBvZiB3b3JrLCB3aGljaCBtZXJnZXMgdG9nZXRoZXIgc29tZSBvZiB0aGUgZXhpc3RpbmcgbWVhbnMtdGVzdGVkIGJlbmVmaXRzIGFuZCB0YXggY3JlZGl0cyBpbmNsdWRpbmcgSW5jb21lLWJhc2VkIEpvYnNlZWtlcidzIEFsbG93YW5jZSBhbmQgaW5jb21lLXJlbGF0ZWQgRW1wbG95bWVudCBhbmQgU3VwcG9ydCBBbGxvd2FuY2UuXFxuXFxuVGhlcmUgaXMgYW4gZXhwZXJpbWVudGFsIGRhdGEgc2VyaWVzIGdpdmluZyBhIGNvdW50IG9mIHRoZSBudW1iZXIgb2YgcGVvcGxlIGNsYWltaW5nIEpvYnNlZWtlcidzIEFsbG93YW5jZSBwbHVzIHRob3NlIHdobyBjbGFpbSBVbml2ZXJzYWwgQ3JlZGl0IGJlY2F1c2UgdGhleSBhcmUgb3V0IG9mIHdvcmssIGl0IHJlcGxhY2VzIHRoZSBudW1iZXIgb2YgcGVvcGxlIGNsYWltaW5nIEpvYnNlZWtlcidzIEFsbG93YW5jZSBhcyB0aGUgaGVhZGxpbmUgaW5kaWNhdG9yIG9mIHRoZSBudW1iZXIgb2YgcGVvcGxlIGNsYWltaW5nIGJlbmVmaXRzIHByaW5jaXBhbGx5IGZvciB0aGUgcmVhc29uIG9mIGJlaW5nIHVuZW1wbG95ZWQuIFRoZSB0b3RhbCBudW1iZXJzIG9mIGNsYWltYW50cywgYW5kIHJhdGVzIGFzIGEgcHJvcG9ydGlvbiBvZiByZXNpZGVudHMgYWdlZCAxNi02NCBhcmUgaW4gdGhlIHRhYmxlIGJlbG93OlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8zRERCNDQ0MC1BNzJELTQ2REUtOTk0MC1CNjVFNjEyRjBBNThcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhpcyBkYXRhIHNldCBob3dldmVyLCBkb2VzIG5vdCBnaXZlIGFuIHVuZW1wbG95bWVudCByYXRlIGJ5IGFnZSBicmVha2Rvd24uIFRoZSBjb3VudCBvZiBwZW9wbGUgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgaXMgc3RpbGwgYXZhaWxhYmxlIGJ5IGFnZSBvZiBjbGFpbWFudCBhbmQgZHVyYXRpb24gb2YgY2xhaW1pbmcuIFRoZSB0YWJsZSBiZWxvdyBzaG93cyB0aGUgbnVtYmVyIG9mIDUwLTY0IHllYXIgb2xkcyB3aG8gYXJlIGNsYWltaW5nIEpTQSwgYW5kIHRoZSByYXRlIGkuZS4gdGhlIG51bWJlciBvZiB0aG9zZSBjbGFpbWluZyBhcyBhIHBlcmNlbnRhZ2Ugb2YgNTAtNjQgcmVzaWRlbnRzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy84RDhFRDMwOS00NkFDLTQxMTQtOEFEQi04Q0EyOEJFNjM0RjRcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQgLSBNYXJjaCAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoaXMgZ29hbCBpcyB0cmFja2VkIGJ5IG1lYXN1cmluZyB0aGUgcGVyY2VudGFnZSBvZiBwZW9wbGUgYWdlZCA1MC02NCBjbGFpbWluZyBqb2JzZWVrZXJzIGFsbG93YW5jZSAoSlNBKSBhcyBhIHByb3BvcnRpb24gb2YgdGhlIHJlc2lkZW50IHBvcHVsYXRpb24gb2YgdGhlIHNhbWUgYWdlLiBUaGUgSlNBIGNsYWltYW50IGRhdGEgaXMgcHVibGlzaGVkIG1vbnRobHksIHdpdGggdGhlIGxhdGVzdCBkYXRhIGF2YWlsYWJsZSBmb3IgRmVicnVhcnkgKGFzIGF0IDV0aCBBcHJpbCkuXFxuXFxuVGhlIHRhYmxlIGJlbG93IHNob3dzIHRoZSB0b3RhbCBudW1iZXJzIGFuZCByYXRlIG9mIEpTQSBjbGFpbWFudHMgYWdlZCA1MC02NCB5ZWFycywgdGhlIHJhdGUgaXMgY2FsY3VsYXRlZCBhcyBhIHByb3BvcnRpb24gb2YgcmVzaWRlbnQgcG9wdWxhdGlvbiBpbiB0aGF0IGFnZSBncm91cC4gVGhlIHByb3BvcnRpb24gaXMgbG93ZXN0IGluIE1pZCBTdXNzZXggYW5kIEhvcnNoYW0sIGFuZCBoaWdoZXN0IGluIENyYXdsZXkg4oCTIHBvc3NpYmx5IGEgcmVmbGVjdGlvbiBvZiB0aGUgeW91bmdlciBhZ2VkIHBvcHVsYXRpb24gaW4gQ3Jhd2xleSBCb3JvdWdoIGNvbXBhcmVkIHdpdGggb3RoZXIgYXJlYXMgb2YgdGhlIGNvdW50eS4gVGhlIHJhdGUgZm9yIFdlc3QgU3Vzc2V4IGNvbnRpbnVlcyB0byBiZSBsb3dlciB0aGFuIHJlZ2lvbmFsbHkgb3IgbmF0aW9uYWxseSwgYW5kIHRoZSBudW1iZXJzIG9mIEpTQSBjbGFpbWFudHMgb3ZlciB0aGUgeWVhciBGZWJydWFyeSAyMDE2LTIwMTcgaGF2ZSBmYWxsZW4gYnkgMi40JSwgYSBncmVhdGVyIGRlY3JlYXNlIHRoYW4gcmVnaW9uYWxseS4gSG9yc2hhbSwgaG93ZXZlciwgaGFzIHNlZW4gYXJpc2UgaW4gdGhlIG51bWJlciBvZiBjbGFpbWFudHMgaW4gdGhpcyBhZ2UgYnJhY2tldC5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvQjYxQTk5OTktQTJCOC00MDQyLUExQTYtRDRGMkRFQTVDQTlFXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlRoZSBjaGFydCBiZWxvdyBzaG93cyB0aGF0IFdlc3QgU3Vzc2V4IGhhcyBjb25zaXN0ZW50bHkgaGFkIGEgbG93ZXIgcmF0ZSBvZiBKU0EgY2xhaW1hbnRzIGluIHRoaXMgYWdlIGJyYWNrZXQgY29tcGFyZWQgd2l0aCB0aGUgcmVnaW9uIG9yIGluIEVuZ2xhbmQgb3ZlciB0aGUgdGhpcnRlZW4gbW9udGhzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9CRTczNTgxQS01MDQ0LTRCRkEtOEZDOS1GMjRDMjgxQTdFMzFcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVW5pdmVyc2FsIENyZWRpdCBDbGFpbWFudHMgaG93ZXZlciwgcm9sbGVkIG91dCBpbiB0aGUgQ291bnR5IGR1cmluZyAyMDE1IGlzIGEgbW9yZSBjb21wcmVoZW5zaXZlIG1lYXN1cmUgb2YgdGhlIGNsYWltYW50IGNvdW50LiBVbml2ZXJzYWwgQ3JlZGl0IGlzIGEgc2luZ2xlIG1vbnRobHkgcGF5bWVudCBmb3IgcGVvcGxlIGluIG9yIG91dCBvZiB3b3JrLCB3aGljaCBtZXJnZXMgdG9nZXRoZXIgc29tZSBvZiB0aGUgZXhpc3RpbmcgbWVhbnMtdGVzdGVkIGJlbmVmaXRzIGFuZCB0YXggY3JlZGl0cyBpbmNsdWRpbmcgaW5jb21lLWJhc2VkIEpvYnNlZWtlcidzIEFsbG93YW5jZSBhbmQgaW5jb21lLXJlbGF0ZWQgRW1wbG95bWVudCBhbmQgU3VwcG9ydCBBbGxvd2FuY2UuIFRoZXJlIGlzIGFuIGV4cGVyaW1lbnRhbCBkYXRhIHNlcmllcyBnaXZpbmcgYSBjb3VudCBvZiB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2UgcGx1cyB0aG9zZSB3aG8gY2xhaW0gVW5pdmVyc2FsIENyZWRpdCB3aG8gYXJlIG91dCBvZiB3b3JrLCBpdCByZXBsYWNlcyB0aGUgbnVtYmVyIG9mIHBlb3BsZSBjbGFpbWluZyBKb2JzZWVrZXIncyBBbGxvd2FuY2UgYXMgdGhlIGhlYWRsaW5lIGluZGljYXRvciBvZiB0aGUgbnVtYmVyIG8gcGVvcGxlIGNsYWltaW5nIGJlbmVmaXRzIHByaW5jaXBhbGx5IGZvciB0aGUgcmVhc29uIG9mIGJlaW5nIHVuZW1wbG95ZWQuIFRoaXMgZGF0YSBzZXQgZ2l2ZXMgYW4gb3Bwb3J0dW5pdHkgdG8gY29tcGFyZSB0aGUgbnVtYmVycyBvZiB1bml2ZXJzYWwgY3JlZGl0IGNsYWltYW50cyB3aXRoIEpTQSBjbGFpbWFudHMsIGFuZCB3aGlsc3QgdGhlIGRhdGEgc2V0IGRvZXMgbm90IGluY2x1ZGUgcmF0ZXMsYnkgdXNpbmcgdGhlIHJlc2lkZW50IHBvcHVsYXRpb24gaW4gdGhpcyBhZ2UgZ3JvdXAgZnJvbSB0aGUgSlNBIGNsYWltYW50IHJhdGUgd2UgY2FuIG1ha2UgYW4gZXN0aW1hdGUgYXMgdG8gdGhlIHJhdGVzIGNsYWltaW5nIHVuaXZlcnNhbCBjcmVkaXQg4oCTIGFzIHNob3duIGluIHRoZSB0YWJsZSBiZWxvdy5cXG5cXG5cIn0se1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvNTM4NkJFOEEtRjE0OS00QkI5LThBMUMtQTA0QkJDMjdEQ0M2XCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAzIC0gRGVjZW1iZXIgMjAxNioqXFxuXFxuKioqKlxcblxcblRoaXMgZ29hbCBpcyB0cmFja2VkIGJ5IG1lYXN1cmluZyB0aGUgJSBvZiBwZW9wbGUgYWdlZCA1MC02NCBjbGFpbWluZyBKb2JzZWVrZXJzIEFsbG93YW5jZSBhcyBhIHByb3BvcnRpb24gb2YgdGhlIHJlc2lkZW50IHBvcHVsYXRpb24gb2YgdGhlIHNhbWUgYWdlLiBGb3IgV2VzdCBTdXNzZXggdGhpcyBpcyBjdXJyZW50bHkgMC43JS5cXG5cXG5DbGFpbWFudCBjb3VudCByYXRlcyBhcmUgYXZhaWxhYmxlIGJ5IGFnZSBvZiBjbGFpbWFudCBhbmQgZHVyYXRpb24gb2YgY2xhaW1pbmcuIFRoZSB0YWJsZSBiZWxvdyBzaG93cyB0aGUgbnVtYmVyIG9mIDUwLTY0IHllYXIgb2xkcyB3aG8gYXJlIGNsYWltaW5nIEpTQSwgYW5kIHRoZSByYXRlIGkuZS4gdGhlIG51bWJlciBvZiB0aG9zZSBjbGFpbWluZyBhcyBhIHBlcmNlbnRhZ2Ugb2YgNTAtNjQgcmVzaWRlbnRzLiBUaGUgcHJvcG9ydGlvbiBpcyBsb3dlc3QgaW4gTWlkIFN1c3NleCBhbmQgaGlnaGVzdCBpbiBDcmF3bGV5LiBBbGwgbG9jYWwgYXV0aG9yaXRpZXMgKFdlc3QgU3Vzc2V4IGRpc3RyaWN0cy9ib3JvdWdocykgaGF2ZSBhIGxvd2VyIHByb3BvcnRpb24gb2YgY2xhaW1hbnRzIGFnZWQgNTAtNjQgeWVhcnMgdGhhbiB0aGUgbmF0aW9uYWwgZmlndXJlIG9mIDEuMiUgYW5kIG9ubHkgQWR1ciBhbmQgQ3Jhd2xleSBoYXMgYSBoaWdoZXIgcmF0ZSB0aGFuIHRoZSBTb3V0aCBFYXN0IGZpZ3VyZSBvZiAwLjglLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8yMUU1NTkzQS01RkMxLTQ5QUItQTA0My0xNTIyQTZFNjA3MEFcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVGhlcmUgaXMgYSBzaW1pbGFyIHBpY3R1cmUgZm9yIHRoZSAxNi02NCBhZ2UgcmFuZ2UgYXMgZGV0YWlsZWQgaW4gdGhlIHRhYmxlIGJlbG93OlwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy80MkM4NTI2Qi1EQ0UyLTQ4NDEtODEzOS05N0M1Mjc2MDlEMjNcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNioqXFxuXFxuLSAtIC1cXG5cXG4qKlRoaXMgZ29hbCBpcyB0cmFja2VkIGJ5IG1lYXN1cmluZyB0aGUgJSBvZiBwZW9wbGUgYWdlZCA1MC02NCBjbGFpbWluZyBKb2JzZWVrZXJzIEFsbG93YW5jZSBhcyBhIHByb3BvcnRpb24gb2YgdGhlIHJlc2lkZW50IHBvcHVsYXRpb24gb2YgdGhlIHNhbWUgYWdlLioqXFxuXFxuQWdlZCAxNi02NCBiZW5jaG1hcmtpbmc6IFRoaXMgaXMgdGhlIHBlcmNlbnRhZ2Ugb2YgcGVvcGxlIGFnZWQgMTYgdG8gNjQgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgYXMgYSBwcm9wb3J0aW9uIG9mIHRoZSByZXNpZGVudCBwb3B1bGF0aW9uIG9mIHRoZSBzYW1lIGFnZS4gV2VzdCBTdXNzZXggY3VycmVudGx5IHN0YW5kcyBhdCAwLjclLCB0aGlzIGNvbXBhcmVzIGZhdm91cmFibHkgd2l0aCB0aGUgYXZlcmFnZSBmb3IgdGhlIFNvdXRoIEVhc3QgMC44JSBhbmQgMS4yJSBmb3IgRW5nbGFuZC5cXG5cXG5UaGUgdW5lbXBsb3ltZW50IHJhdGUgaXMgY2FsY3VsYXRlZCBhcyBhIHByb3BvcnRpb24gb2YgdGhlIGVjb25vbWljYWxseSBhY3RpdmUgcG9wdWxhdGlvbjsgZWNvbm9taWNhbGx5IGFjdGl2ZSBwZXJzb25zIGJlaW5nIHRob3NlIHdobyBhcmUgZWl0aGVyIGVtcGxveWVkIG9yIHVuZW1wbG95ZWQgKGkuZS4gZG9lcyBub3QgaW5jbHVkZSByZXRpcmVkKS4gVGhlcmUgYXJlIHR3byBtZWFzdXJlcyBvZiB1bmVtcGxveW1lbnQ7IHRoZSBmaXJzdCBpcyB0aGUg4oCYb2ZmaWNpYWzigJkgZXN0aW1hdGUgdXNpbmcgdGhlIEludGVybmF0aW9uYWwgTGFib3VyIE9yZ2FuaXNhdGlvbiAoSUxPKSBkZWZpbml0aW9uIHdoaWNoIGNvbmZvcm1zIHRvIHRoZSBpbnRlcm5hdGlvbmFsIGRlZmluaXRpb24gb2YgdW5lbXBsb3ltZW50LCB0aGUgbWVhc3VyZSBpcyBiYXNlZCBvbiBhIHF1YXJ0ZXJseSBzYW1wbGUgc3VydmV5IG9mIGhvdXNlaG9sZHMgdW5kZXJ0YWtlbiBieSBPTlMgYXMgcGFydCBvZiB0aGUgQW5udWFsIFBvcHVsYXRpb24gU3VydmV5IChBUFMpLiBIb3dldmVyLCBhcyB1bmVtcGxveWVkIGZvcm0gYSBzbWFsbCBwZXJjZW50YWdlIG9mIHRoZSBwb3B1bGF0aW9uIGFuZCBhcyB1bmVtcGxveWVkIGVzdGltYXRlcyB3aXRoaW4gbG9jYWwgYXV0aG9yaXRpZXMgYXJlIGJhc2VkIG9uIHZlcnkgc21hbGwgc3VydmV5IHNhbXBsZXMgbW9kZWwtYmFzZWQgZXN0aW1hdGVzIGhhdmUgYmVlbiBkZXZlbG9wZWQgdGhhdCBwcm92aWRlIGJldHRlciBlc3RpbWF0ZXMgb2YgdG90YWwgdW5lbXBsb3llZCBmb3IgbG9jYWwgYXV0aG9yaXRpZXMsIGJ1dCB0aGVzZSBlc3RpbWF0ZXMgYXJlIG5vdCBicm9rZW4gZG93biBieSBhZ2UgYmFuZHMuXFxuXFxuVGhlIHNlY29uZCBtZWFzdXJlIGlzIHRoZSBjbGFpbWFudCBjb3VudC4gVGhpcyB0ZW5kcyB0byBiZSB0aGUgbG93ZXIgbWVhc3VyZSBvZiB0aGUgdHdvIGJlY2F1c2Ugc29tZSB1bmVtcGxveWVkIGFyZSBub3QgZW50aXRsZWQgdG8gY2xhaW0gYmVuZWZpdHMgb2YgYW55IHNvcnQgb3IgY2hvb3NlIG5vdCB0byBkbyBzby4gSXQgaXMgc2VlbiBieSBzb21lIGFzIG1vcmUgb2YgYSB3ZWxmYXJlIGNvdW50IGFuZCBub3Qgc3RyaWN0bHkgYW4gdW5lbXBsb3ltZW50IGNvdW50LiBUaGUgZGF0YSBpcyBwdWJsaXNoZWQgbW9udGhseSBhbmQgaXMgaW5kaWNhdGl2ZSBvZiByZWxhdGl2ZSB1bmVtcGxveW1lbnQgbGV2ZWxzIGluIHRoZSBsb2NhbCBhcmVhLiBUaGUgY2xhaW1hbnQgY291bnQgaGFzIHVuZGVyZ29uZSBzdWJzdGFudGlhbCBjaGFuZ2Ugb3ZlciByZWNlbnQgeWVhcnMuIEluIDIwMTMgVW5pdmVyc2FsIENyZWRpdCB3YXMgaW50cm9kdWNlZCBhbmQgcm9sbGVkIG91dCBvdmVyIGEgcGVyaW9kIG9mIHllYXJzIGFuZCB3YXMgaW1wbGVtZW50ZWQgaW4gV2VzdCBTdXNzZXggZHVyaW5nIDIwMTUuIFVuaXZlcnNhbCBDcmVkaXQgaXMgYSBzaW5nbGUgbW9udGhseSBwYXltZW50IGZvciBwZW9wbGUgaW4gb3Igb3V0IG9mIHdvcmssIHdoaWNoIG1lcmdlcyB0b2dldGhlciBzb21lIG9mIHRoZSBleGlzdGluZyBtZWFucy10ZXN0ZWQgYmVuZWZpdHMgYW5kIHRheCBjcmVkaXRzIGluY2x1ZGluZyBJbmNvbWUtYmFzZWQgSm9ic2Vla2VyJ3MgQWxsb3dhbmNlIGFuZCBpbmNvbWUtcmVsYXRlZCBFbXBsb3ltZW50IGFuZCBTdXBwb3J0IEFsbG93YW5jZS5cXG5cXG5UaGVyZSBpcyBhbiBleHBlcmltZW50YWwgZGF0YSBzZXJpZXMgZ2l2aW5nIGEgY291bnQgb2YgdGhlIG51bWJlciBvZiBwZW9wbGUgY2xhaW1pbmcgSm9ic2Vla2VyJ3MgQWxsb3dhbmNlIHBsdXMgdGhvc2Ugd2hvIGNsYWltIFVuaXZlcnNhbCBDcmVkaXQgd2hvIGFyZSBvdXQgb2Ygd29yaywgaXQgcmVwbGFjZXMgdGhlIG51bWJlciBvZiBwZW9wbGUgY2xhaW1pbmcgSm9ic2Vla2VyJ3MgQWxsb3dhbmNlIGFzIHRoZSBoZWFkbGluZSBpbmRpY2F0b3Igb2YgdGhlIG51bWJlciBvZiBwZW9wbGUgY2xhaW1pbmcgYmVuZWZpdHMgcHJpbmNpcGFsbHkgZm9yIHRoZSByZWFzb24gb2YgYmVpbmcgdW5lbXBsb3llZC4gVGhpcyBkYXRhIHNldCBob3dldmVyLCBkb2VzIG5vdCBnaXZlIGFuIHVuZW1wbG95bWVudCByYXRlIGJ5IGFnZSBicmVha2Rvd24uIFRoZSBjb3VudCBvZiBwZW9wbGUgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgaXMgc3RpbGwgYXZhaWxhYmxlIGJ5IGFnZSBvZiBjbGFpbWFudCBhbmQgZHVyYXRpb24gb2YgY2xhaW1pbmcuIFRoZSB0YWJsZSBiZWxvdyBzaG93cyB0aGUgbnVtYmVyIG9mIDUwLTY0IHllYXIgb2xkcyB3aG8gYXJlIGNsYWltaW5nIEpTQSwgYW5kIHRoZSByYXRlIGkuZS4gdGhlIG51bWJlciBvZiB0aG9zZSBjbGFpbWluZyBhcyBhIHBlcmNlbnRhZ2Ugb2YgNTAtNjQgcmVzaWRlbnRzLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8xNjgwRjBFNi0zNjc0LTRDODgtODdDMS1DQUJGOUNCQUUzRjdcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTYqKlxcblxcbi0gLSAtXFxuXFxuQ2xhaW1hbnQgY291bnQgcmF0ZXMgYXJlIGF2YWlsYWJsZSBieSBhZ2Ugb2YgY2xhaW1hbnQgYW5kIGR1cmF0aW9uIG9mIGNsYWltaW5nLiBUaGUgdGFibGUgYmVsb3cgc2hvd3MgdGhlIG51bWJlciBvZiA1MC02NCB5ZWFyIG9sZHMgd2hvIGFyZSBjbGFpbWluZyBKU0EsIGFuZCB0aGUgcmF0ZSBpLmUuIHRoZSBudW1iZXIgb2YgdGhvc2UgY2xhaW1pbmcgYXMgYSBwZXJjZW50YWdlIG9mIDUwLTY0IHJlc2lkZW50cy4gVGhlIHByb3BvcnRpb24gaXMgbG93ZXN0IGluIE1pZCBTdXNzZXggYW5kIGhpZ2hlc3QgaW4gQ3Jhd2xleS4gQWxsIGxvY2FsIGF1dGhvcml0aWVzIChXZXN0IFN1c3NleCBkaXN0cmljdHMvYm9yb3VnaHMpIGhhdmUgYSBsb3dlciBwcm9wb3J0aW9uIG9mIGNsYWltYW50cyBhZ2VkIDUwLTY0IHllYXJzIHRoYW4gbmF0aW9uYWxseSBhbmQgb25seSBDcmF3bGV5IGhhcyBhIGhpZ2hlciByYXRlIHRoYW4gdGhlIFNvdXRoIEVhc3QgZmlndXJlIChhbHRob3VnaCBDcmF3bGV5J3MgZmlndXJlIGhhcyByZWR1Y2VkIGJ5IDAuMiUpLlxcblxcbldoYXQgd2lsbCBoYXBwZW4gdG8gdGhpcyBtZWFzdXJlLCBpbiByZXNwZWN0IG9mIHRoZSBuYXRpb25hbC9yZWdpb25hbC9sb2NhbCBlY29ub215LCBnaXZlbiB0aGUgRVUgcmVmZXJlbmR1bSByZXN1bHQsIGlzIHN0aWxsIHRvIGJlIGRldGVybWluZWQuXFxuXFxuXCJ9LHtcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzA1MDg3RDQ0LTVDMEItNEZGMC1CNjA2LTlDM0I2N0M4MDBBNVwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9FMEUyN0MzMy01OUE0LTQwRDEtQjgwQi0yOUYyODFEMTY1QjZcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQgLSBNYXJjaCAyMDE2KipcXG5cXG4tIC0gLVxcblxcblNpbmNlIE9jdG9iZXIgMTk5NiB0aGUgY2xhaW1hbnQgY291bnQgaGFzIGJlZW4gZGVyaXZlZCBmcm9tIHRoZSBudW1iZXJzIG9mIEpvYnNlZWtlcuKAmXMgQWxsb3dhbmNlIChKU0EpIENsYWltYW50cyByZWNvcmRlZCBieSBKb2IgQ2VudHJlIFBsdXMsIGl0IGlzIGNvbnRpbnVlZCB0byBiZSBwdWJsaXNoZWQgbW9udGhseS4gSXQgaXMgYSBuYXJyb3dlciBtZWFzdXJlIHRoYW4gdGhlIGNvdW50IG9mIHVuZW1wbG95bWVudCBmcm9tIHRoZSBOYXRpb25hbCBTdGF0aXN0aWNzIExhYm91ciBGb3JjZSBTdXJ2ZXkgd2hpY2ggaXMgdGFrZW4gZnJvbSBhIGNvbnRpbnVvdXMgc3VydmV5IHRoYXQgT2ZmaWNlIGZvciBOYXRpb25hbCBTdGF0aXN0aWNzIChPTlMpIHVzZXMgdG8gbWVhc3VyZSBlY29ub21pYyBhY3Rpdml0eSBuYXRpb25hbGx5LiBUbyBjb3VudCBhcyB1bmVtcGxveWVkIHBlb3BsZSBoYXZlIHRvIHNheSB0aGV5IGFyZSBub3Qgd29ya2luZywgYXJlIGF2YWlsYWJsZSBmb3Igd29yayBhbmQgaGF2ZSBlaXRoZXIgbG9va2VkIGZvciB3b3JrIGluIHRoZSBwYXN0IGZvdXIgd2Vla3Mgb3IgYXJlIGF3YWl0aW5nIHRvIHN0YXJ0IGEgbmV3IGpvYiB0aGV5IGhhdmUgYWxyZWFkeSBvYnRhaW5lZC4gU29tZW9uZSB3aG8gaXMgb3V0IG9mIHdvcmsgYnV0IGRvZXNu4oCZdCBtZWV0IHRoZXNlIGNyaXRlcmlhIGNvdW50cyBhcyBlY29ub21pY2FsbHkgaW5hY3RpdmUuIFRoZSBjbGFpbWFudCBjb3VudCBkb2Vzbid0IHN1ZmZlciBmcm9tIHRoZSBsaW1pdGF0aW9ucyBvZiBzYW1wbGUgc2l6ZSBhbmQgc2FtcGxpbmcgZnJhbWUuIEhvd2V2ZXIsIG1hbnkgcGVvcGxlIHdobyBhcmUgb3V0IG9mIHdvcmsgYXJlIG5vdCBuZWNlc3NhcmlseSBlbGlnaWJsZSBmb3IgSlNBIGFuZCB0aGVyZWZvcmUgaXQgZ2l2ZXMgYSBtdWNoIGxvd2VyIGZpZ3VyZSBvZiB1bmVtcGxveWVkIHRoYW4gdGhhdCBmcm9tIHRoZSBMYWJvdXIgRm9yY2UgU3VydmV5LlxcblxcblRoZSB0YWJsZSBiZWxvdyBzaG93cyB0aGUgdG90YWwgbnVtYmVyIG9mIEpTQSBjbGFpbWFudHMgYW5kIHRoZSB1bmVtcGxveW1lbnQgcmF0ZSBmb3IgRmVicnVhcnkgMjAxNSDigJMgMjAxNiAoRmVicnVhcnkgMjAxNiBpcyB0aGUgbGF0ZXN0IGF2YWlsYWJsZSBkYXRhIChjbGFpbWFudHMgYXMgYSBwZXJjZW50YWdlIG9mIDE2LTY0IHllYXIgb2xkIHJlc2lkZW50cykuIFdlc3QgU3Vzc2V4IGhhcyBhIGxvd2VyIGNsYWltYW50IGNvdW50IHJhdGUgdGhhbiBuYXRpb25hbGx5IGFuZCByZWdpb25hbGx5LCBNaWQgU3Vzc2V4IGhhcyB0aGUgbG93ZXN0IGNsYWltYW50IGNvdW50IHJhdGUgYW5kIENyYXdsZXkgdGhlIGhpZ2hlc3QsIGJ1dCBhbGwgZGlzdHJpY3RzIGFuZCBib3JvdWdocyB3aXRoaW4gV2VzdCBTdXNzZXggaGF2ZSBjbGFpbWFudCBjb3VudCByYXRlcyBsb3dlciB0aGFuIHRoZSBuYXRpb25hbCBhdmVyYWdlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9FRjQ1NzNBQy0xQzdELTQ1RDEtODRFMy1DMkIxNzc0RUMyQThcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiVW5pdmVyc2FsIENyZWRpdCB3YXMgaW50cm9kdWNlZCBpbiAyMDEzIHdoaWNoIHdhcyB0byByZXBsYWNlIGEgbnVtYmVyIG9mIG1lYW5zIHRlc3RlZCBiZW5lZml0cyBpbmNsdWRpbmcgdGhlIG1lYW5zLXRlc3RlZCBlbGVtZW50IG9mIEpTQS4gVGhpcyBoYXMgYmVlbiByb2xsZWQgb3V0IGFjcm9zcyB0aGUgY291bnRyeSBhbmQgZnJvbSB0aGUgQXV0dW1uIDIwMTUgaGFzIGJlZW4gcm9sbGVkIG91dCB0aHJvdWdob3V0IGFsbCBXZXN0IFN1c3NleCBKb2JjZW50cmVzLiBUaGVyZSBpcyBhIG5ldyBleHBlcmltZW50YWwgZGF0YSBzZXQgd2hpY2ggaW5jbHVkZXMgdGhlIG51bWJlciBvZiBwZW9wbGUgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgcGx1cyB0aG9zZSB3aG8gY2xhaW0gVW5pdmVyc2FsIENyZWRpdCB3aG8gYXJlIG91dCBvZiB3b3JrLiBUaGVyZSBhcmUgc29tZSBjYXZlYXRzIHdpdGggdGhlIGRhdGEsIGFuZCBzbyBmYXIsIGFzIGl04oCZcyBzdGlsbCBlYXJseSBkYXlzIG9mIFVuaXZlcnNhbCBDcmVkaXQgYmVpbmcgaW50cm9kdWNlZCB0aGVyZSBpcyBsaXR0bGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBuZXcgZGF0YSBzZXQgYW5kIHRoYXQgZm9yIEpTQSBjbGFpbWFudHMgc28gZm9yIHRoZSB0aW1lIHdlIHdpbGwgY29udGludWUgdG8gbW9uaXRvciBKU0EgY2xhaW1hbnRzIGZvciA1MC02NCB5ZWFyIG9sZHMuIEhvd2V2ZXIgdGhlIHBlcmNlbnRhZ2Ugb2YgY2xhaW1hbnRzIGJ5IGFnZSBncm91cCBmcm9tIHRoZSBVbml2ZXJzYWwgQ3JlZGl0IGV4cGVyaW1lbnRhbCBkYXRhIHNldCBpcyBub3QgYXZhaWxhYmxlLiBUaGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdHdvIHNldHMgb2YgZGF0YSBhcmUgc2hvd24gaW4gdGhlIHRhYmxlIGJlbG93LlxcblxcblwifSx7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy8wRENBRTIxMS04OTVELTQyNjYtQkRBOC1ENDg0RUYyN0ExQUZcIn1dLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIlJlZHVjaW5nIHRoZSBudW1iZXIgb2YgcGVvcGxlIGFnZWQgNTAtNjQgY2xhaW1pbmcgSm9ic2Vla2VycyBBbGxvd2FuY2UgYXMgYSBwcm9wb3J0aW9uIG9mIHRoZSByZXNpZGVudCBwb3B1bGF0aW9uIG9mIHRoZSBzYW1lIGFnZVwiLFwiaWNvblwiOlwidGV4dFwiLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOmZhbHNlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJUaGlzIGdvYWwgaXMgdHJhY2tlZCBieSBtZWFzdXJpbmcgdGhlICUgb2YgcGVvcGxlIGFnZWQgNTAg4oCTIDY0IGNsYWltaW5nIEpvYnNlZWtlcnMgQWxsb3dhbmNlIGFzIGEgcHJvcG9ydGlvbiBvZiB0aGUgcmVzaWRlbnQgcG9wdWxhdGlvbiBvZiB0aGUgc2FtZSBhZ2UuXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTUtMDQtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiJSIsInRhcmdldF90eXBlIjoicmVsYXRpdmUiLCJ0YXJnZXRfZGVsdGEiOjAsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjAuOSwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiI5aGd3LTlwczMifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPCJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjMsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJtYWludGFpblwiLFwibWFpbnRhaW5fdHlwZVwiOlwiPFwifSxcImJhc2VsaW5lXCI6e1wic3F1aXNoeVwiOntcInN0YXJ0XCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE1fX0sXCJzdGFydFwiOlwiMjAxNS0wMS0wMVQwMDowMDowMC4wMDBcIixcImVuZFwiOlwiMjAxNS0wMS0wMVQyMzo1OTo1OS4wMDBcIixcIm1ldHJpY1wiOntcIm1ldGFkYXRhXCI6XCJ7XFxcIndpemFyZFxcXCI6e1xcXCJmaWx0ZXJfYXN0XFxcIjpbe1xcXCJ2YWx1ZXNcXFwiOlt7fV19XX19XCJ9fSxcIm5hbWVcIjpcInRoZSB1bmVtcGxveW1lbnQgcmF0ZSBmb3IgcGVvcGxlIGFnZWQgNTAtNjRcIixcImlzX2J1cm5kb3duX2Rpc2FibGVkXCI6ZmFsc2UsXCJpc190cmVuZGxpbmVfZGlzYWJsZWRcIjp0cnVlfSJ9LCJjcmVhdGVkX2F0IjoiMjAxOC0wNy0yM1QwOTowMjo0Ni41MDZaIiwidmVyc2lvbiI6IjIwMTgtMDctMjNUMDk6MDI6NDYuNTA2WiIsImlkIjoiYmRlNi1obm1yIn0sInJlbGF0ZWRfbWVhc3VyZXMiOltdLCJiYXNlX2Rhc2hib2FyZCI6IjU3NHItaDVuYyIsInVwZGF0ZWRfYXQiOiIyMDE4LTA3LTIzVDA5OjQ5OjQwLjYyMVoiLCJjcmVhdGVkX2F0IjoiMjAxOC0wNy0yM1QwOTowMjo0Ni41NDdaIiwidmVyc2lvbiI6IjIwMTgtMDctMjNUMDk6NDk6NDAuNjIxWiIsImNyZWF0ZWRfYnkiOiI3OTdpLTZyOWcifSx7ImlkIjoiaDN6bi03a3ViIiwibmFtZSI6IkJyb2FkYmFuZCBSb2xsIE91dCIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwiaWNvblwiOlwidGV4dFwiLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlBsZWFzZSBub3RlIHRoYXQgdGhlIGFkZGl0aW9uYWwgcHJlbWlzZXMgZmlndXJlIGFzIHN0YXRlZCBhYm92ZSBpcyBiYXNlZCBvbiB0aGUgbGF0ZXN0IGF2YWlsYWJsZSBkYXRhIHdoaWNoIGlzIHByb3ZpZGVkIGJ5IEJUIG9uZSBxdWFydGVyIGFmdGVyIGRlbGl2ZXJ5LlxcblxcbioqRmlicmUgYnJvYWRiYW5kIGZvciBvdXIgY291bnR54oCZcyBmdXR1cmUqKlxcblxcbkJldHRlciBDb25uZWN0ZWQgaXMgYW4gZXhjaXRpbmcgcHJvamVjdCB0byBicmluZyBiZXR0ZXIsIGZhc3RlciBicm9hZGJhbmQgdG8gb3VyIGNvdW50eS4gSW4gU3ByaW5nIDIwMTYgd2UgYWNoaWV2ZWQgb3VyIHRhcmdldCBvZiBpbmNyZWFzaW5nIGNvdmVyYWdlIGJ5IOKAmHN1cGVyZmFzdCDigJlicm9hZGJhbmQgdG8gbW9yZSB0aGFuIDkwJSBvZiB0aGUgY291bnR5LiBNb3JlIHRoYW4gNjAsMDAwIGhvbWVzIGFuZCBidXNpbmVzc2VzIGhhdmUgYWNjZXNzIHRvIG5ldyBmaWJyZSBicm9hZGJhbmQgc2VydmljZXMgd2hpY2ggd291bGQgbm90IGhhdmUgYmVlbiBhdmFpbGFibGUgdG8gdGhlbSB3aXRob3V0IHRoZSBwcm9qZWN04oCZcyBpbnRlcnZlbnRpb24uIE5vdyB3ZSBhcmUgdXNpbmcgYWRkaXRpb25hbCBmdW5kaW5nLCB0b2dldGhlciB3aXRoIG1vbmV5IHRoYXQgQlQgaXMgcGF5aW5nIGJhY2sgdG8gdGhlIENvdW50eSBDb3VuY2lsLCB0byByZWFjaCBhbiBleHRyYSA3LDAwMCBwcmVtaXNlcyBieSB0aGUgZW5kIG9mIDIwMTguIFRoZSBwcm9qZWN0IGlzIHByb2dyZXNzaW5nIHdlbGwgd2l0aCBkZXRhaWxlZCBuZXR3b3JrIGRlc2lnbiwgcGxhbm5pbmcgYW5kIGVuZ2luZWVyaW5nIHN1cnZleXMgY29udGludWluZyBhbmQgc28gZmFyIGhhcyBkZWxpdmVyZWQgYWNjZXNzIHRvICdzdXBlcmZhc3QnIGZpYnJlIGJyb2FkYmFuZCB0byBhbiBleHRyYSAzLDMwNyBwcmVtaXNlcyBpbiBXZXN0IFN1c3NleCBzaW5jZSB0aGlzIHBoYXNlIGJlZ2FuIGluIEFwcmlsIDIwMTYuXFxuXFxuIFxcblxcbioqVGFyZ2V0KipcXG5cXG4gXFxuXFxuSW4gdG90YWwgd2UgYWltIHRvIGJlbmVmaXQgYW4gZXh0cmEgNywwMDAgcHJlbWlzZXMgYnkgRGVjZW1iZXIgMjAxOC5cXG5cXG5Nb3JlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBhdDogW3d3dy53ZXN0c3Vzc2V4LWJldHRlcmNvbm5lY3RlZC5vcmcudWtEaWdpdGFsXVswXSBjb21tdW5pY2F0aW9ucyBpbmZyYXN0cnVjdHVyZSBpcyBiZWNvbWluZyBhcyB2aXRhbCBhcyB0cmFuc3BvcnRhdGlvbiwgd2F0ZXIgYW5kIHBvd2VyIHNlcnZpY2VzLiDigJhTdXBlcmZhc3TigJkgYnJvYWRiYW5kIHRlY2hub2xvZ3kgaGFzIHRyYW5zZm9ybWVkIGhvdyB3ZSB3b3JrLCBsaXZlIGFuZCBjb21tdW5pY2F0ZS4gVGhpcyBleGNpdGluZyB0ZWNobm9sb2d5IGNhbiBpbXByb3ZlIG91ciBxdWFsaXR5IG9mIGxpZmUsIGFuZCBoZWxwIHRvIGdyb3cgb3VyIGVjb25vbXkgYnkgZW5hYmxpbmcgbmV3IGJ1c2luZXNzZXMgdG8gc3RhcnQgdXAsIGFuZCBleGlzdGluZyBvbmVzIHRvIHByb3NwZXIuXFxuXFxuV2UgYXJlIGxvb2tpbmcgdG8gdGhlIGZ1dHVyZSBhbmQgaGF2ZSBhbiBhbWJpdGlvbiB0byBzdXBwb3J0IG91ciBwdWJsaWMgc2VydmljZXMgYnkgYnVpbGRpbmcgdGhlIG5leHQgZ2VuZXJhdGlvbiBvZiBjb25uZWN0aXZpdHksIGdpdmluZyBzcGVlZHMgZnJvbSAxR2IgKDEwMDBtYnBzKSB1c2luZyBwdXJlIG9wdGljYWwgZmlicmUuXFxuXFxuIFxcblxcblRoZSBnb3Zlcm5tZW50IHdhbnRzIHRvIGluY3JlYXNlIHRoZSBhbW91bnQgb2YgcHVyZSBvcHRpY2FsIG9yIOKAmGZ1bGwgZmlicmXigJkgaW5mcmFzdHJ1Y3R1cmUgY292ZXJpbmcgdGhlIFVLLiBDdXJyZW50bHkgb25seSBhcm91bmQgMiUgb2YgcHJlbWlzZXMgaW4gdGhlIFVLIGhhdmUgYWNjZXNzIHRvIHRoZSBmYXN0ZXN0IGJyb2FkYmFuZCBzcGVlZHMgd2hpY2ggdHJhdmVsIGFsbCB0aGUgd2F5aW50byBidWlsZGluZ3Mgb3ZlciBmdWxsIGZpYnJlIGluZnJhc3RydWN0dXJlLiBQdWJsaWMgc2VydmljZXMgYXJlIGV2b2x2aW5nIGFuZCBzb29uIHdpbGwgYmUgZGVsaXZlcmVkIGluIG5ldyBhbmQgZGlnaXRhbCB3YXlzLCB3aGljaCB3aWxsIHJlcXVpcmUgZmFzdGVyIGRvd25sb2FkIGFuZCB1cGxvYWQgc3BlZWRzIGFuZCBncmVhdGVyIGJhbmR3aWR0aC4gV2Ugd2FudCB0byBpbnZlc3QgaW4gZnVsbCBmaWJyZSBpbmZyYXN0cnVjdHVyZSBub3cgdG8gZ2V0IG91ciBwdWJsaWMgYnVpbGRpbmdzIGFuZCBvdXIgc2VydmljZXMgcmVhZHkgZm9yIHRoZSBmdXR1cmUuXFxuXFxuWzBdOiBodHRwOi8vd3d3Lndlc3RzdXNzZXgtYmV0dGVyY29ubmVjdGVkLm9yZy51a0RpZ2l0YWxcIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipEZWNlbWJlciAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBwcm9qZWN0IGlzIHByb2dyZXNzaW5nIHdlbGwgd2l0aCBkZXRhaWxlZCBuZXR3b3JrIGRlc2lnbiwgcGxhbm5pbmcgYW5kIGVuZ2luZWVyaW5nIHN1cnZleXMgY29udGludWluZyBhbmQgc28gZmFyIGhhcyBkZWxpdmVyZWQgYWNjZXNzIHRvICdzdXBlcmZhc3QnIGZpYnJlIGJyb2FkYmFuZCB0byBhbiBleHRyYSAzLDMwNyBwcmVtaXNlcyBpbiBXZXN0IFN1c3NleCBzaW5jZSB0aGlzIHBoYXNlIGJlZ2FuIGluIEFwcmlsIDIwMTYuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqU2VwdGVtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIHByb2plY3QgaXMgcHJvZ3Jlc3Npbmcgd2VsbCB3aXRoIGRldGFpbGVkIG5ldHdvcmsgZGVzaWduLCBwbGFubmluZyBhbmQgZW5naW5lZXJpbmcgc3VydmV5cyBjb250aW51aW5nIGFuZCBzbyBmYXIgaGFzIGRlbGl2ZXJlZCBhY2Nlc3MgdG8gXFxcInN1cGVyZmFzdFxcXCIgZmlicmUgYnJvYWRiYW5kIHRvIDEsODcxIHByZW1pc2VzIGluIFdlc3QgU3Vzc2V4IHNpbmNlIHRoaXMgcGhhc2UgYmVnYW4gaW4gQXByaWwgMjAxNi4gVGhpcyBpcyBjdXJyZW50bHkgMjYuNyUgb2Ygb3VyIHRhcmdldCB0byByZWFjaCA3LDAwMCBwcmVtaXNlcyBieSB0aGUgZW5kIG9mIFNlcHRlbWJlciAyMDE4LiBUaGUgcHJvamVjdCBpcyBvbiB0cmFjayBpbiB0ZXJtcyBvZiBhY3R1YWwgYnVpbGQgcHJvZ3JhbW1lLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKkFwcmlsIC0gSnVuZSAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBwcm9qZWN0IGlzIHByb2dyZXNzaW5nIHdlbGwgd2l0aCBkZXRhaWxlZCBuZXR3b3JrIGRlc2lnbiwgcGxhbm5pbmcgYW5kIGVuZ2luZWVyaW5nIHN1cnZleXMgY29udGludWluZyBhbmQgc28gZmFyIGhhcyBkZWxpdmVyZWQgYWNjZXNzIHRvXFxcInN1cGVyZmFzdFxcXCIgZmlicmUgYnJvYWRiYW5kIHRvIDEsMjAzIHByZW1pc2VzIGluIFdlc3QgU3Vzc2V4IHNpbmNlIHRoaXMgcGhhc2UgYmVnYW4gaW4gQXByaWwgMjAxNi5cXG5cXG5cIn0se1widHlwZVwiOlwidHdvQ29sTGF5b3V0XCIsXCJjb2x1bW5zXCI6W1t7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlRhcmdldCoqXFxuXFxuSW4gdG90YWwgd2UgYWltIHRvIGJlbmVmaXQgYW4gZXh0cmEgNywwMDAgcHJlbWlzZXMgYnkgU2VwdGVtYmVyIG9mIDIwMTguXFxuXFxuXCJ9XSxbe1widHlwZVwiOlwiaW1hZ2VcIixcInNyY1wiOlwiL2FwaS9hc3NldHMvODMxRjdBN0QtM0ZBOS00RjEzLTg4MTQtNzI1OUIzQUYyNkU5XCJ9XV19XSxcInVzZV9jdXN0b21fdGl0bGVcIjp0cnVlLFwiY3VzdG9tX3RpdGxlXCI6XCJJbmNyZWFzaW5nIHRoZSBudW1iZXIgb2YgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHdpdGggYWNjZXNzIHRvIFxcXCJzdXBlcmZhc3RcXFwiIGZpYnJlIGJyb2FkYmFuZCBcIixcInVzZV9jdXN0b21fc3VidGl0bGVcIjp0cnVlLFwiY3VzdG9tX3N1YnRpdGxlXCI6XCJXZSBhaW0gdG8gaW5jcmVhc2UgdGhlIG51bWJlciBvZiBwcmVtaXNlcyBpbiBXZXN0IFN1c3NleCB3aXRoIGFjY2VzcyB0byBcXFwic3VwZXJmYXN0XFxcIiBmaWJyZSBicm9hZGJhbmQgYnkgdGhlIGVuZCBvZiBEZWNlbWJlciAyMDE4IGJ5IGF0IGxlYXN0IDcsMDAwXCIsXCJ0aXRsZV9pbWFnZVwiOlwiL2FwaS9hc3NldHMvMjU2OUM2NkEtMjdBMy00MTM2LUE1MkYtQUMyREE0QUUzOTUwXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTYtMDQtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoicHJlbWlzZXMiLCJ0YXJnZXQiOjcwMDAsInRhcmdldF90eXBlIjoiYWJzb2x1dGUiLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoiZ2FlOC1hZndpIn0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjozLFwieWVhclwiOjIwMTZ9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH19LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE0fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTR9fSxcInN0YXJ0XCI6XCIyMDE0LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE0LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZVwiOlwidGhlIGFkZGl0aW9uYWwgdG90YWwgaG9tZXMgcGFzc2VkIChUSFApIFwiLFwiaXNfYnVybmRvd25fZGlzYWJsZWRcIjpmYWxzZSxcImlzX3RyZW5kbGluZV9kaXNhYmxlZFwiOmZhbHNlLFwidXNlX3Byb2dyZXNzX292ZXJyaWRlXCI6dHJ1ZSxcInByb2dyZXNzX292ZXJyaWRlXCI6XCJnb29kXCJ9In0sImNyZWF0ZWRfYXQiOiIyMDE4LTA3LTIzVDA5OjAzOjE2LjAzOVoiLCJ2ZXJzaW9uIjoiMjAxOC0wNy0yM1QwOTowMzoxNi4wMzlaIiwidGFyZ2V0X3RvbGVyYW5jZSI6NzAwLCJpZCI6ImZjdWgtajdlaiJ9LCJyZWxhdGVkX21lYXN1cmVzIjpbXSwiYmFzZV9kYXNoYm9hcmQiOiI1NzRyLWg1bmMiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNy0yM1QwOTo1MDoxOS40MDBaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMDk6MDM6MTYuMDgxWiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDA5OjUwOjE5LjQwMFoiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn0seyJpZCI6ImFxM2QtYjl0diIsIm5hbWUiOiJDaG9pY2Ugb3ZlciBPd24gQ2FyZSIsImlzX3B1YmxpYyI6dHJ1ZSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJyZXRpcmVtZW50X25hcnJhdGl2ZVwiOltdLFwibmFycmF0aXZlXCI6W3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiMgKipDaG9pY2Ugb3ZlciBvd24gQ2FyZSoqXFxuXFxuLSAtIC1cXG5cXG5UaGlzIG1lYXN1cmUgaXMgYSByZWZsZWN0aW9uIG9mIFdlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsJ3MgZHJpdmUgdG8gb2ZmZXIgcGVvcGxlIGNob2ljZSBhbmQgaW5kZXBlbmRlbmNlLiBSZXNlYXJjaCBoYXMgaW5kaWNhdGVkIHRoYXQgcmVjZWlwdCBvZiBzZWxmLWRpcmVjdGVkIHN1cHBvcnQsIHZpYSBwZXJzb25hbCBidWRnZXRzLCBoYXMgYSBwb3NpdGl2ZSBlZmZlY3QgaW4gdGVybXMgb2YgaW1wYWN0IG9uIHdlbGwtYmVpbmcsIGluY3JlYXNlZCBjaG9pY2UgYW5kIGNvbnRyb2wsIGNvc3QgaW1wbGljYXRpb25zIGFuZCBpbXByb3Zpbmcgb3V0Y29tZXMuXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqUXVhcnRlciAxIC0gSnVuZSAyMDE3KipcXG5cXG4tIC0gLVxcblxcblRoZSBhbm51YWwgQWR1bHRzIFNvY2lhbCBDYXJlIFVzZXIgU3VydmV5IHdhcyBjb21wbGV0ZWQgaW4gQXByaWwgYW5kIE1heSAyMDE3LiBTdXJ2ZXlzIHdlcmUgc2VudCBvdXQgdG8gY3VzdG9tZXJzIGFuZCBjYXJlcnMgd2hvIGN1cnJlbnRseSByZWNlaXZlIGEgc2VydmljZSBmcm9tIFdlc3QgU3Vzc2V4IENvdW50eSBDb3VuY2lsIOKAkyB0aGVyZSB3YXMgYSBzaWduaWZpY2FudCBpbXByb3ZlbWVudCBpbiB0aGUgcmV0dXJuIG9mIHRoZSBzdXJ2ZXlzIGZyb20gMzcgJSB0byA1MSAlIGFuZCB0aGUgb3V0Y29tZXMgd2VyZSByZXBvcnRlZCBpbiBsaW5lIHdpdGggdGhlIHJlcXVpcmVtZW50cyBmcm9tIHRoZSBEZXBhcnRtZW50IG9mIEhlYWx0aC4gVGhlIHNjb3JlIHRvIHRoZSBxdWVzdGlvbiB3YXMgNzcuNiAlIHdoaWNoIGlzIGFuIGltcHJvdmVtZW50IG9uIGxhc3QgeWVhci4gVGhlIFB1YmxpYyBIZWFsdGggUmVzZWFyY2ggdW5pdCBhcmUgY3VycmVudGx5IHVuZGVydGFraW5nIGEgbW9yZSBkZXRhaWxlZCBhbmFseXNpcyBvZiB0aGUgYW5zd2VyczsgdGhpcyB3aWxsIGJlIHJlYWR5IGluIEF1Z3VzdCBhbmQgd2lsbCBiZSBjb25zaWRlcmVkIGJ5IHRoZSBRdWFsaXR5IEFzc3VyYW5jZSBNYW5hZ2VtZW50IEJvYXJkLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIiMgKipDYXJlIEZ1bmRpbmcgJiBBZHZpY2UqKlxcblxcbioqQ2FyZXdpc2UgQ2FyZSBGdW5kaW5nIFNjaGVtZSoqXFxuXFxuXCJ9LHtcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIlBlb3BsZSBhcmUgbGl2aW5nIGxvbmdlciBhbmQgZm9yIHNvbWUgdGhpcyBtYXkgbWVhbiBtb3ZpbmcgaW50byBhIGNhcmUgaG9tZS4gVGhpcyBkZWNpc2lvbiBpcyBsaWtlbHkgdG8gYmUgb25lIG9mIHRoZSBtb3N0IGV4cGVuc2l2ZSBkZWNpc2lvbnMgcGVvcGxlIG1ha2UgaW4gdGhlaXIgbGl2ZXMgYW5kIHRoZSBwcm9zcGVjdCBvZiBwYXlpbmcgZm9yIGxvbmctdGVybSBjYXJlIGNhbiBmZWVsIGRhdW50aW5nLiBZZXQgbWFueSBkbyBub3Qgc2VlayBpbmZvcm1hdGlvbiBhbmQgYWR2aWNlIHRvIGhlbHAgdGhlbSBjb25zaWRlciBhbGwgdGhlIG9wdGlvbnMgYXZhaWxhYmxlIGFuZCBtYWtlIGluZm9ybWVkIGRlY2lzaW9ucy4gVGhpcyBzb3J0IG9mIHBsYW5uaW5nIGlzIHZpdGFsIGJlY2F1c2UgYmFzZWQgb24gY3VycmVudCBlc3RpbWF0ZXMsIFdlc3QgU3Vzc2V4IHJlc2lkZW50cyBjYW4gZXhwZWN0IHRvIHBheSBhbiBhdmVyYWdlIG9mIMKjNTAsMDAwIG9yIG1vcmUgcGVyIHllYXIgZm9yIGEgcmVzaWRlbnRpYWwgY2FyZSBob21lLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUbyBlbnN1cmUgdGhhdCB0aGUgcmVzaWRlbnRzIG9mIFdlc3QgU3Vzc2V4IGhhdmUgYWNjZXNzIHRvIGhpZ2ggcXVhbGl0eSBpbmZvcm1hdGlvbiBhbmQgYWR2aWNlIGFib3V0IGNhcmUgYW5kIHN1cHBvcnQgb3B0aW9ucyBhbmQgdGhlIG1vc3QgY29zdCBlZmZlY3RpdmUgd2F5cyBvZiBwYXlpbmcgZm9yIHRoaXMsIG91ciBDYXJld2lzZSBDYXJlIEZ1bmRpbmcgc2NoZW1lIHdhcyBlc3RhYmxpc2hlZCBieSBBZ2UgVUsgV2VzdCBTdXNzZXgsIHRoZSBTb2NpZXR5IG9mIExhdGVyIExpZmUgQWR2aXNlcnMgKFNPTExBKSwgdGhlIENvdW50eSBDb3VuY2ls4oCZcyBBZHVsdHPigJkgU2VydmljZXMgYW5kIFRyYWRpbmcgU3RhbmRhcmRzIGRlcGFydG1lbnRzIGFuZCBXZXN0IFN1c3NleCBQYXJ0bmVycyBpbiBDYXJlLlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJDYXJld2lzZSBoYXMgYSBwYW5lbCBvZiBhcHByb3ZlZCBpbmRlcGVuZGVudCBzcGVjaWFsaXN0IGZpbmFuY2lhbCBhZHZpc2VycyB0byBoZWxwIHBlb3BsZSBhZmZvcmQgdGhlIGJlc3QgcXVhbGl0eSBjYXJlIGF0IGhvbWUgb3IgaW4gdGhlaXIgcHJlZmVycmVkIGNhcmUgaG9tZSBmb3IgYXMgbG9uZyBhcyB0aGV5IG5lZWQgaXQgYW5kIHNvIHByZXZlbnQgcGVvcGxlIHJ1bm5pbmcgb3V0IG9mIG1vbmV5IGFuZCBiZWNvbWluZyB0aGUgZmluYW5jaWFsIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBDb3VudHkgQ291bmNpbC5cXG5cXG5cIn1dLFt7XCJ0eXBlXCI6XCJpbWFnZVwiLFwic3JjXCI6XCIvYXBpL2Fzc2V0cy9CMjQxQjRDNi0xMzMxLTQ3MEItQjM2MS1GNkYxRUFDMUREMjRcIn1dXX0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiQ2FyZXdpc2UgaGFzIGJlZW4gb3BlcmF0aW9uYWwgc2luY2UgMjAxMSBhbmQgdGhlIENvdW50eSBDb3VuY2lsIGhhcywgdGhlcmVmb3JlLCBiZWVuIGluIGEgZ29vZCBwb3NpdGlvbiB0byBldmFsdWF0ZSBwZXJmb3JtYW5jZSBvdmVyIGEgZmFpcmx5IGxvbmcgcGVyaW9kIGFuZCB0YWtlIGFjdGlvbiBhcyBuZWNlc3NhcnkgdG8gcmVmaW5lIHRoZSBtb2RlbC4gQ29uc2VxdWVudGx5LCB3ZSB3ZXJlIHdlbGwtcG9zaXRpb25lZCB0byBtZWV0IG91ciBkdXR5IHVuZGVyIHRoZSBDYXJlIEFjdCB0byBlbnN1cmUgdGhhdCByZXNpZGVudHMgaGF2ZSBhY2Nlc3MgdG8gaW1wYXJ0aWFsIGZpbmFuY2lhbCBhZHZpY2UgYWJvdXQgcGF5aW5nIGZvciBjYXJlIGFuZCBzdXBwb3J0LiBUaGlzIGFsc28gbWVhbnMgdGhhdCBDYXJld2lzZSBoYXMgZXZvbHZlZCBpbnRvIGEgbW9kZWwgdGhhdCBpcyBiZWluZyB1c2VkIGFzIGFuIGV4ZW1wbGFyIG9mIGdvb2QgcHJhY3RpY2UgYXQgYSBuYXRpb25hbCBsZXZlbCwgbm90IGxlYXN0IGJlY2F1c2Ugb2YgdGhlIGhpZ2ggbGV2ZWwgb2YgY3VzdG9tZXIgY2hvaWNlIHRoYXQgaXMgYnVpbHQgaW50byB0aGUgbW9kZWwuIFRoZSBzdWNjZXNzZnVsIHBhcnRuZXJzaGlwIHN0eWxlIGFuZCB0aGUgcmlzayBtYW5hZ2VtZW50IGFwcHJvYWNoIGFkb3B0ZWQgYnkgdGhlIENvdW50eSBDb3VuY2lsIGhhdmUgYWxzbyBiZWVuIGhpZ2hsaWdodGVkIHRvIG90aGVyIGxvY2FsIGF1dGhvcml0aWVzIGFzIHBvc2l0aXZlIGVsZW1lbnRzIG9mIG91ciBhcHByb2FjaC5cXG5cXG5QcmVzZW50YXRpb25zIG9uIHRoZSBDYXJld2lzZSBtb2RlbCBoYXZlIGJlZW4gaW5jbHVkZWQgaW4gVExBUCAoVGhpbmsgTG9jYWwsIEFjdCBQZXJzb25hbCkvRGVwYXJ0bWVudCBvZiBIZWFsdGggbmF0aW9uYWwgd29ya3Nob3BzIGhlbGQgdG8gc3VwcG9ydCBsb2NhbCBhdXRob3JpdGllcyBpbiBwbGFubmluZyB0byBkaXNjaGFyZ2UgdGhlaXIgZHV0eSB1bmRlciB0aGUgQ2FyZSBBY3QgMjAxNC4gQ2FyZXdpc2UgaGFzIGluZm9ybWVkIHRoZSBEZXBhcnRtZW50IG9mIEhlYWx0aCBmaW5hbCBndWlkYW5jZSBmb3IgbG9jYWwgYXV0aG9yaXRpZXMgb24gdGhlIHByb3Zpc2lvbiBvZiBmaW5hbmNpYWwgaW5mb3JtYXRpb24gYW5kIGFkdmljZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiIyAqKkhlcmXigJlzIGhvdyBmaW5hbmNpYWwgYWR2aWNlIGZyb20gYSBDYXJld2lzZSBjYXJlIGZlZXMgc3BlY2lhbGlzdCBoZWxwZWQgb25lIFdlc3QgU3Vzc2V4IGZhbWlseS4qKlxcblxcbkdyYWNlKiB3YXMgODQgd2hlbiBoZXIgZGF1Z2h0ZXIgYW5kIGxhd3llciBhc2tlZCBmb3IgYWR2aWNlIG9uIGNvdmVyaW5nIGhlciBjYXJlIGNvc3RzLiBHcmFjZSBzdWZmZXJlZCBzb21lIHBoeXNpY2FsIHByb2JsZW1zIGFuZCBtaWxkIGRlbWVudGlhIHdoaWNoIG1lYW50IHRoYXQgc2hlIG5lZWRlZCBmdWxsLXRpbWUgcmVzaWRlbnRpYWwgY2FyZS4gR3JhY2Ugb3duZWQgYSBob3VzZSBhbmQgYWZ0ZXIgaXQgd2FzIHNvbGQgdGhhdCBnYXZlIGhlciBhc3NldHMgb2YgwqMyMTAsMDAwLiBXZSBlc3RpbWF0ZWQgdGhhdCBpZiBHcmFjZSBkaWQgbm90aGluZyBoZXIgbW9uZXkgd291bGQgcnVuIGRvd24gYW5kIHNoZSB3b3VsZCBuZWVkIGhlciBjYXJlIHRvIGJlIHBhaWQgZm9yIGJ5IHRoZSBsb2NhbCBhdXRob3JpdHkgYWZ0ZXIgc2V2ZW4geWVhcnMuXFxuXFxuIFwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzBBQ0JFRUQ0LUMwQTAtNDFEMS1CMzcxLUM0NzQ0ODg5QjgwNlwifV0sW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIkFmdGVyIGxvb2tpbmcgYXQgR3JhY2XigJlzIHNpdHVhdGlvbiB3ZSBjb25zaWRlcmVkIGEgbnVtYmVyIG9mIG9wdGlvbnMuIE9uZSBvcHRpb24gd2FzIHRvIGFycmFuZ2UgYW4gaW1tZWRpYXRlIGNhcmUgcGxhbiBmb3IgYSBwcmVtaXVtIG9mIMKjMTM4LDAwMC4gSXQgd291bGQgcGF5IGhlciBjYXJlIHByb3ZpZGVyIMKjMiwxMDAgYSBtb250aCwgd2hpY2ggd291bGQgaW5jcmVhc2UgZWFjaCBBcHJpbCBieSA1JSBhbmQgYmUgcGF5YWJsZSBmb3IgaGVyIGxpZmV0aW1lLiBIb3dldmVyLCB0aGlzIG9wdGlvbiB3b3VsZCBvbmx5IGxlYXZlIMKjNzIsMDAwIG9mIGhlciBlc3RhdGUgYW5kIEdyYWNlIGFuZCBoZXIgZmFtaWx5IHdlcmUgdW5jb21mb3J0YWJsZSB3aXRoIHRoZSBpZGVhIHRoYXQgc3VjaCBhIGxhcmdlIHN1bSBjb3VsZCBiZSBsb3N0IGlmIEdyYWNlIGRpZWQgc29vbiBhZnRlciBidXlpbmcgdGhlIHBsYW4uIEluc3RlYWQgd2UgYWdyZWVkIHRoYXQgR3JhY2Ugc2hvdWxkIGJ1eSBhIGZpdmUteWVhciBkZWZlcnJlZCBjYXJlIHBsYW4gYXQgYSBjb3N0IG9mIMKjMjYsMTAwLiBUaGlzIHBsYW4gaGFzIHRoZSBzYW1lIGxvbmctdGVybSBiZW5lZml0IGFzIHRoZSBpbW1lZGlhdGUgcGxhbiwgYnV0IHdpbGwgb25seSBwYXkgb3V0IGlmIEdyYWNlIHN0aWxsIG5lZWRzIGNhcmUgaW4gZml2ZSB5ZWFyc+KAmSB0aW1lLiBJbiB0aGUgbWVhbnRpbWUgc2hlIGZ1bmRzIHRoZSBjYXJlIGZyb20gaGVyIGFzc2V0cy4gT3ZlcmFsbCB0aGUgbG9uZy10ZXJtIGNvc3Qgb2YgdGhpcyBvcHRpb24gaXMgZ3JlYXRlciBidXQgR3JhY2UgYW5kIHRoZSBmYW1pbHkgd2VyZSBoYXBwaWVyIHdpdGggdGhpcyBzb2x1dGlvbiBhcyB0aGV5IHdvdWxkIGZlZWwgdGhhdCB0aGUgZXh0cmEgbW9uZXkgaGFkIGJlZW4gc3BlbnQgb24gR3JhY2XigJlzIGNhcmUuIE9uY2UgcGFpZCwgdGhlIHByZW1pdW0gY2FuIG5ldmVyIGJlIHJldHVybmVkLCBidXQgR3JhY2UgYW5kIGhlciBmYW1pbHkgZm91bmQgdGhlIHBsYW4gZ2F2ZSB0aGVtIGdyZWF0IHBlYWNlIG9mIG1pbmQuIEdyYWNlIGtuZXcgdGhhdCB0aGUgaW5jb21lIGZyb20gdGhlIHBsYW4gd291bGQgYmUgdGhlcmUgbm8gbWF0dGVyIGhvdyBsb25nIHNoZSBsaXZlZC4gU2hlIGRpZG7igJl0IGhhdmUgdG8gd29ycnkgYWJvdXQgaGVyIG1vbmV5IHJ1bm5pbmcgb3V0IGFuZCBzaGUgd291bGQgc3RpbGwgaGF2ZSBtb25leSB0byBsZWF2ZSBhbiBpbmhlcml0YW5jZSBmb3IgaGVyIGZhbWlseS4gT24gR3JhY2VzIGRlYXRoIHNoZSB3aWxsIGxlYXZlIGFuIGVzdGF0ZSBiZXR3ZWVuIMKjMTg0LDAwMCBhbmQgwqM2NywwMDAsIGRlcGVuZGluZyB1cG9uIGhvdyBsb25nIHNoZSBsaXZlcy5cXG5cXG5UaGlzIGlzIGp1c3Qgb25lIGV4YW1wbGUgb2YgaG93IENhcmV3aXNlIGNhbiBoZWxwIHBlb3BsZSBtYWtlIG1vcmUgaW5mb3JtZWQgY2hvaWNlcyBhdCB0aGlzIHNvbWV0aW1lcyB2ZXJ5IHN0cmVzc2Z1bCBzdGFnZSBpbiB0aGVpciBsaXZlcy5cXG5cXG4qIE5hbWUgY2hhbmdlZCAgIFxcblwifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIjICoqUGVyZm9ybWFuY2UqKlxcblxcblRoZSBwb3RlbnRpYWwgZmluYW5jaWFsIGJlbmVmaXRzIHRvIGJvdGggaW5kaXZpZHVhbHMgYW5kIHRoZSBDb3VudHkgQ291bmNpbCwgYW5kIHRoZSBwcmVkaWN0ZWQgZGVtb2dyYXBoaWMgaW5jcmVhc2UgaW4gbnVtYmVycyBvZiBvbGRlciBwZW9wbGUsIHBhcnRpY3VsYXJseSB0aG9zZSB3aXRoIGRlbWVudGlhLCBvdmVyIHRoZSBjb21pbmcgeWVhcnMsIG1lYW5zIHRoYXQgcHJvbW90aW9uIG9mIHRoZSBDYXJld2lzZSBzY2hlbWUgaXMgaW1wZXJhdGl2ZS4gQ2FyZWZ1bGx5IHRhcmdldGVkIG1hcmtldGluZyBhbmQgcHJvbW90aW9ucyBjYW1wYWlnbnMgcmFuIHRocm91Z2hvdXQgMjAxNC0xNSwgMjAxNS0xNiBhbmQgMjAxNi0xNy4gQSBtYXJrZXRpbmcgY2FtcGFpZ24gZm9yIDIwMTctMTggaXMgbm93IHVuZGVyd2F5IHVzaW5nIHRoZSBvdXRjb21lIG9mIGV2YWx1YXRpb24gZnJvbSB0aGUgcHJldmlvdXMgdGhyZWUgeWVhcnMuIFRoZSBtYXJrZXRpbmcgYWltcyB0byBlbnN1cmUgdGhhdCB0aGUgbW9tZW50dW0gb2YgcGFzdCBjYW1wYWlnbnMgaXMgbWFpbnRhaW5lZCBhbmQgcHVibGljIGF3YXJlbmVzcyBpbmNyZWFzZWQuIFdvcmtpbmcgY2xvc2VseSB3aXRoIFBvbGljeSAmIENvbW11bmljYXRpb25zIHRoZSAyMDE3LTE4IGNhbXBhaWduIHdpbGwgcmVmbGVjdCB0aGUgQWR1bHRzJyBTZXJ2aWNlcyB2aXNpb24gZm9yIHRoZSBmdXR1cmUgd2hpY2ggZm9jdXNlcyBvbiBpbmNyZWFzaW5nIHBlb3BsZeKAmXMgaW5kZXBlbmRlbmNlIGFuZCB3ZWxsYmVpbmcgYW5kIGVuY291cmFnaW5nIG1vcmUgcGVvcGxlIHRvIHBsYW4gZWFybHkgZm9yIHRoZWlyIGxvbmctdGVybSBjYXJlIG5lZWRzIGluIG9sZGVyIGFnZS5cXG5cXG5XZSBrbm93IHRoYXQgbWFueSBwZW9wbGUgZG8gbm90IGltbWVkaWF0ZWx5IHdhbnQgYSByZWZlcnJhbCB0byBhIGNhcmUgZmVlcyBzcGVjaWFsaXN0IGJ1dCB3b3VsZCByYXRoZXIgaGF2ZSBpbmZvcm1hdGlvbiBpbiB0aGUgZmlyc3QgaW5zdGFuY2UgYW5kIHRoZW4gbWFrZSBhIG1lYXN1cmVkIGRlY2lzaW9uIGxhdGVyIGFib3V0IHdoZXRoZXIgdG8gcHJvY2VlZC4gSXQgaXMsIHRoZXJlZm9yZSwgcmVjb2duaXNlZCB0aGF0IHRoZSBudW1iZXIgb2YgcmVmZXJyYWxzIGlzIG5ldmVyIGxpa2VseSB0byBpbmNyZWFzZSBkcmFtYXRpY2FsbHkgaW4gYSBzaG9ydCBwZXJpb2Qgb2YgdGltZSBhbmQgdGhhdCBhbnkgY2FtcGFpZ24gd2lsbCB0YWtlIHRpbWUgdG8geWllbGQgcmVzdWx0cy4gUGFydG5lcnMsIGluY2x1ZGluZyB0aGUgY2FyZSBmZWVzIHNwZWNpYWxpc3RzLCBoYXZlIGFkdmlzZWQgdGhhdCB0aGUgcXVhbGl0eSBvZiByZWZlcnJhbHMgc2hvdWxkIGJlIGEga2V5IGZvY3VzIHJhdGhlciB0aGFuIHNpbXBseSBhaW1pbmcgdG8gaW5jcmVhc2UgdGhlIG51bWJlcnMuXFxuXFxuQWdlIFVLIFdlc3QgU3Vzc2V4IHByb3ZpZGVzIGEgZnJlZSBNb25leSBBZHZpY2Ugc2VydmljZSB3aGljaCBpcyBwYXJ0IG9mIHRoZSBDYXJld2lzZSBzY2hlbWU7IHRoaXMgc2VydmljZSBpbmNsdWRlcyBiZW5lZml0cyBhZHZpY2UuIE1heGltaXNpbmcgYmVuZWZpdCBlbnRpdGxlbWVudCBlbmFibGVzIHBlb3BsZSB0byBwdXJjaGFzZSBjYXJlIGFuZCByZW1haW4gbGl2aW5nIGluZGVwZW5kZW50bHkgaW4gdGhlaXIgb3duIGhvbWVzIGZvciBhcyBsb25nIGFzIHBvc3NpYmxlIGFuZCBjYW4gcmVkdWNlIHRoZSBuZWVkIGZvciByZWxpYW5jZSBvbiBDb3VudHkgQ291bmNpbCBmdW5kaW5nLiBJbmNyZWFzZWQgZmluYW5jaWFsIHNlY3VyaXR5IGNhbiBhbHNvIGVuaGFuY2UgcGVvcGxl4oCZcyB3ZWxsYmVpbmcsIGEga2V5IHByaW5jaXBsZSBvZiB0aGUgQ2FyZSBBY3QuIEluIGFkZGl0aW9uLCB0aGUgbG9jYWwgZWNvbm9teSBjYW4gYmVuZWZpdCBmcm9tIHBlb3BsZSB1c2luZyB0aGVpciBiZW5lZml0cyB0byBlbXBsb3kgcGVvcGxlIHRvIHByb3ZpZGUgZG9taWNpbGlhcnkgY2FyZSwgcGVyc29uYWwgYXNzaXN0YW50cywgZ2FyZGVuaW5nIGV0Yy5cXG5cXG5BcyB0aGUgMjAxNi0xNyB0YXJnZXRzIGZvciByZWZlcnJhbHMgdG8gdGhlIENhcmV3aXNlIGNhcmUgZmVlcyBzcGVjaWFsaXN0cyB3ZXJlIG5vdCBtZXQsIHdlIGFyZSBtYWludGFpbmluZyB0aGUgMjAxNy0xOCB0YXJnZXRzIGZvciB0aGlzIG1lYXN1cmUuXFxuXFxuKiA1NSBwZW9wbGUgcmVmZXJyZWQgdG8gdGhlIENhcmV3aXNlIGNhcmUgZmVlcyBzcGVjaWFsaXN0cyBwZXIgbW9udGggYnkgdGhlIGVuZCBvZiBNYXJjaCAyMDE3IHdpdGggYW4gaW5jcmVtZW50YWwgaW5jcmVhc2UgdGhyb3VnaG91dCB0aGUgeWVhci5cXG4qIC1BZ2UgVUsgV2VzdCBTdXNzZXggTW9uZXkgQWR2aWNlIFNlcnZpY2UgLSBGb3IgMjAxNi4gVGFyZ2V0IGZvciAyMDE3LTE4IGlzIHRvIG1haW50YWluIDU1MCBpbmRpdmlkdWFsIHNlc3Npb25zIHBlciBtb250aCB0aHJvdWdob3V0IHRoZSB5ZWFyLlxcblwifSx7XCJ0eXBlXCI6XCJ0d29Db2xMYXlvdXRcIixcImNvbHVtbnNcIjpbW3tcInR5cGVcIjpcInRleHRcIixcInRleHRcIjpcIioqTWFya2V0aW5nIGFuZCBQcm9tb3Rpb24qKlxcblxcblRoZSBtYXJrZXRpbmcgY2FtcGFpZ24gY29tcHJpc2VzIGEgd2lkZSByYW5nZSBvZiBwcm9tb3Rpb25hbCBjaGFubmVscyBpbmNsdWRpbmcgc29jaWFsIG1lZGlhIGFuZCBkaWdpdGFsIG1ldGhvZHMsIGFsbCBvZiB3aGljaCBhcmUgc3ViamVjdCB0byByb2J1c3QgbW9uaXRvcmluZyBhbmQgZXZhbHVhdGlvbi4gQXMgcGFydCBvZiB0aGUgMjAxNi0xNyBtYXJrZXRpbmcgY2FtcGFpZ24sIENhcmV3aXNlIHdhcyBhZ2Fpbiwgb25lIG9mIHRoZSBtYWluIHNwb25zb3JzIGZvciBXZXN0IFN1c3NleCBDYXJlIE1vbnRoIHdoaWNoIHRvb2sgcGxhY2UgZHVyaW5nIE9jdG9iZXIgMjAxNi4gVGhpcyB3YXMgZGVzaWduZWQgdG8gcHJvbW90ZSB0aGUgZGlmZmVyZW50IGNhcmUgYW5kIHN1cHBvcnQgb3B0aW9ucyBhdmFpbGFibGUgdG8gcmVzaWRlbnRzIGluIFdlc3QgU3Vzc2V4IHVzaW5nIGEgdmFyaWV0eSBvZiBtYXJrZXRpbmcgY2hhbm5lbHMgc3VjaCBhcyByYWRpbyBwcm9tb3Rpb25zIGFuZCBzb2NpYWwgbWVkaWEuIER1cmluZyB0aGUgY2FtcGFpZ24gdGhlIG51bWJlciBvZiBuZXcgJ3VuaXF1ZScgdmlzaXRvcnMgdG8gdGhlIENhcmV3aXNlIHdlYnNpdGUgaW5jcmVhc2VkIGZyb20gU2VwdGVtYmVyIHRvIE9jdG9iZXIgYnkgb3ZlciAyMDMlIGFuZCB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSB3ZWIgcGFnZSB3YXMgdmlld2VkIGluY3JlYXNlZCBieSAxNzQlIC4gQ2FyZSBNb250aCBpcyBiZWluZyByZXBlYXRlZCBkdXJpbmcgT2N0b2JlciAyMDE3LlxcblxcblwifV0sW3tcInR5cGVcIjpcImltYWdlXCIsXCJzcmNcIjpcIi9hcGkvYXNzZXRzLzZBRjVFMkI4LTBGNTktNDg0NC1BOEJCLThEQzRDMTlEODE3M1wifV1dfSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCJUaGVyZSBpcyBhIGZvY3VzIG9uIHByb21vdGluZyBDYXJld2lzZSBhdCB0aGUg4oCYcG9pbnQgb2YgbmVlZOKAmTsgZm9yIGV4YW1wbGUsIGluIHJlc2lkZW50aWFsIGNhcmUgaG9tZXMgYW5kIHRvIGRvbWljaWxpYXJ5IGNhcmUgcHJvdmlkZXJzLCB0byBob3NwaXRhbCBkaXNjaGFyZ2UgdGVhbXMsIEdQcyBhbmQgc29saWNpdG9ycywgKHBhcnRpY3VsYXJseSBTb2xpY2l0b3JzIGZvciB0aGUgRWxkZXJseSkuIFdlIGhlbGQgc29tZSBDYXJld2lzZSDigJhzdXJnZXJpZXPigJkgaW4gcmVzaWRlbnRpYWwgY2FyZSBob21lcyBhbmQgd2Ugd2lsbCBiZSBjb250aW51ZSB0byBwcm9tb3RlIHRoZSBvZmZlciBhcyBwYXJ0IG9mIHRoZSBwcm9tb3Rpb25hbCBjYW1wYWlnbi4gQ2FyZXdpc2UgYWxzbyBob3N0ZWQgYW4gZXZlbnQgZm9yIGxhd3llcnMsICdCZSBDYXJld2lzZSB3aXRoIHlvdXIgY2xpZW50cycgd2l0aCBDb250aW51aW5nIFByb2Zlc3Npb25hbCBEZXZlbG9wbWVudCBhY2NyZWRpdGF0aW9uIG9uIDV0aCBPY3RvYmVyIDIwMTYuIFRoZSBldmVudCBmb2N1c3NlZCBvbiBwcm9tb3RpbmcgdGhlIGJlbmVmaXRzIGZvciBzb2xpY2l0b3JzIG9mIGVzdGFibGlzaGluZyBsaW5rcyB3aXRoIHRoZSBDYXJld2lzZSBjYXJlIGZlZXMgc3BlY2lhbGlzdHMgYW5kIGluY2x1ZGVkIGhpZ2ggcHJvZmlsZSBzcGVha2VycyBUaXNoIEhhbmlmaWFuLCBCYXJyaXN0ZXIgYW5kIGZvdW5kZXIgb2YgdGhlIFNvY2lldHkgb2YgbGF0ZXIgTGlmZSBBZHZpc2VycyAoU09MTEEpIGFuZCBTb2xpY2l0b3JzIGZvciB0aGUgRWxkZXJseSBhbmQgRGF2ZSBTZWFnZXIsIERldmVsb3BtZW50IERpcmVjdG9yIGF0IFNvbGljaXRvcnMgZm9yIEluZGVwZW5kZW50IEZpbmFuY2lhbCBBZHZpY2UgKFNJRkEpLiBCb3RoIHNwZWFrZXJzIHByYWlzZWQgdGhlIENhcmV3aXNlIG1vZGVsIGFzIG9uZSBuYXRpb25hbCBnb29kIHByYWN0aWNlIGFuZCBoaWdobGlnaHRlZCB0aGUgaW1wb3J0YW5jZSBvZiBsYXd5ZXJzIHJlZmVycmluZyBjbGllbnRzIHRvIHNwZWNpYWxpc2VkLCBoaWdobHkgcXVhbGlmaWVkIFNPTExBIGFjY3JlZGl0ZWQgZmluYW5jaWFsIGFkdmlzZXJzIC4gVGhlIGV2ZW50IHdhcyB3ZWxsIGF0dGVuZGVkIGJ5IGxhd3llcnMgZnJvbSBhY3Jvc3MgdGhlIGNvdW50eSBhbmQgZGVsZWdhdGUgZmVlZGJhY2sgaW5kaWNhdGVkIHRoYXQgdGhlIGV2ZW50IHdhcyB3ZWxsIHJlY2VpdmVkLiBEZWxlZ2F0ZXMgd2VyZSBjb250YWN0ZWQgdG8gb2ZmZXIgdGhlbSBvcHBvcnR1bml0eSB0byBlc3RhYmxpc2ggcHJvZmVzc2lvbmFsIGxpbmtzIHdpdGggQ2FyZXdpc2UgY2FyZSBmZWVzIHNwZWNpYWxpc3RzIGluIHRoZWlyIGxvY2FsIGFyZWEuIEluIGFkZGl0aW9uLCBpbnZpdGVlcyB3aG8gd2VyZSB1bmFibGUgdG8gYXR0ZW5kIHRoZSBldmVudCB3ZXJlIHByb3ZpZGVkIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgaG93IHRvIGVzdGFibGlzaCBwcm9mZXNzaW9uYWwgbGlua3Mgd2l0aCBDYXJld2lzZSBjYXJlIGZlZXMgc3BlY2lhbGlzdHMgbmVhcmVzdCB0byB0aGVpciBwcmFjdGljZS4gVGhlIGNhcmUgZmVlcyBzcGVjaWFsaXN0cyBjb250aW51ZSB0byB2aXNpdCBmaXJtcyBvZiBzb2xpY2l0b3JzIG9uIHJlcXVlc3QgYW5kIHRvIGJ1aWxkIHByb2Zlc3Npb25hbCByZWxhdGlvbnNoaXBzIHdpdGggbGF3eWVycy9cXG5cXG5XZSBjb250aW51ZSB0byBpc3N1ZSBpbnZpdGVzIHRvIGNhcmUgaG9tZSBwcm92aWRlcnMgdG8gaG9sZCBDYXJld2lzZSAnc3VyZ2VyaWVzJyBmb3IgdGhlaXIgc3RhZmYsIHJlc2lkZW50cyBhbmQgdGhlaXIgZmFtaWxpZXMuIFRoZSB0ZW1wbGF0ZSByZWNvbW1lbmRpbmcgdGhhdCBuZXcgY2FyZSBob21lIHJlc2lkZW50cyBhY2Nlc3MgZ29vZCBmaW5hbmNpYWwgYWR2aWNlIHdoaWNoIHdhcyBkZXZlbG9wZWQgZm9yIGluY2x1c2lvbiBpbiBhZG1pc3Npb24gcGFja3MsIGhhcyBiZWVuIHVwZGF0ZWQgdG8gcmVzZW1ibGUgbW9yZSBvZiBhbiBpbmZvcm1hdGlvbiBmbHllci4gVGhlIGZseWVyIHdhcyBjaXJjdWxhdGVkIHRvIHByb3ZpZGVycyBhbmQgaXQgaXMgYmVpbmcgc3VnZ2VzdGVkIHRoYXQgZXhpc3RpbmcgcmVzaWRlbnRzIGFyZSBhbHNvIGluY2x1ZGVkLiBXZXN0IFN1c3NleCBQYXJ0bmVycyBpbiBDYXJlIChyZXByZXNlbnRhdGl2ZSBib2R5IGZvciBjYXJlIHByb3ZpZGVycyBpbiBXZXN0IFN1c3NleCBhbmQgYSBDYXJld2lzZSBwYXJ0bmVyKSBpcyBwbGF5aW5nIGFuIGluY3JlYXNlZCByb2xlIGluIHByb21vdGluZyBDYXJld2lzZS5cXG5cXG5XZSBhbHNvIHZpc2l0IGxvY2FsIG9yZ2FuaXNhdGlvbnMgYW5kIGdyb3VwcyB0byBnaXZlIHByZXNlbnRhdGlvbnMgb24gcmVxdWVzdCBhbmQgd2Ugc2VlayBvdXQgcHJvbW90aW9uYWwgYWN0aXZpdGllcyBhcyBwYXJ0IG9mIHRoZSBvbmdvaW5nIG1hcmtldGluZyBjYW1wYWlnbi5cXG5cXG4qKkZFQlJVQVJZIDIwMTggRklHVVJFUyoqXFxuXFxuLSAtIC1cXG5cXG4qKl9SZWZlcnJhbHMgdG8gY2FyZSBmZWVzIHNwZWNpYWxpc3RzXyoqIC0gMjUuIFRoZSB0YXJnZXQgZm9yIHRoZSBudW1iZXIgb2YgcmVmZXJyYWxzIHRvIHRoZSBjYXJlIGZlZXMgc3BlY2lhbGlzdHMgZm9yIEZlYnJ1YXJ5IGlzIDUyLiBUaGUgdGFyZ2V0IGZvciBGZWJydWFyeSAyMDE4IGhhcyBub3QgYmVlbiBtZXQuXFxuXFxuSG93ZXZlciwgMjUgcGVvcGxlIGhhdmUgcmVjZWl2ZWQgc29tZSBsZXZlbCBvZiBmaW5hbmNpYWwgYWR2aWNlIGZyb20gdGhlIGNhcmUgZmVlcyBzcGVjaWFsaXN0cyByYW5naW5nIGZyb20gYmFzaWMgdG8gc3BlY2lhbGlzdCBhZHZpY2UuICdCYXNpYyBhZHZpY2UnIGNhbiBpbnZvbHZlIGNhcmUgZmVlcyBzcGVjaWFsaXN0cyBlbmdhZ2luZyBpbiBjb252ZXJzYXRpb25zIHdpdGggY2FsbGVycyBmb3IgaGFsZiBhbmQgaG91ciBvciBtb3JlIGR1cmluZyB3aGljaCB0aGV5IGFyZSBwcm92aW5nIGFkdmljZS5cXG5cXG5fKipBZ2UgVUsgV2VzdCBTdXNzZXgqKl8gLSBUaGUgbnVtYmVyIG9mIGluZGl2aWR1YWwgc2Vzc2lvbnMgaGVsZCBieSB0aGUgTW9uZXkgQWR2aWNlIFNlcnZpY2UgKHBlb3BsZSByZWNlaXZpbmcgYWR2aWNlIG9uIGEgc3BlY2lmaWMgYmVuZWZpdCkgZm9yIEZlYnJ1YXJ5IDIwMTggPSA1NzUuIFRoZSB0YXJnZXQgZm9yIEZlYnJ1YXJ5IDIwMTggaXMgNTUwIGFuZCBpdCBoYXMsIHRoZXJlZm9yZSBiZWVuIGV4Y2VlZGVkLlxcblxcblRoZSB2YWx1ZSBvZiBhZGRpdGlvbmFsIGJlbmVmaXRzIGFjY2Vzc2VkIGZvciBwZW9wbGUgZHVyaW5nIGZyb20gQXByaWwgLSBGZWJydWFyeSAyMDE4ID0gwqMyLDkxMSwzNTMuXFxuXFxuKipBY3Rpb25zIGJlaW5nIHRha2VuKipcXG5cXG4qIE1hcmtldGluZyBjYW1wYWlnbiBmb3IgMjAxNy0xOC4gVG8gdGFrZSBpbnRvIGFjY291bnQgYSBmb2N1cyBvbiB0aGUgdHJpYWwgc2l0ZXMgZm9yIHRoZSBBZHVsdHMnIFNlcnZpY2VzIG5ldyBhcHByb2FjaCB0byBkZWxpdmVyaW5nIGFkdWx0IHNvY2lhbCBjYXJlLlxcbiogUHJlc2VudGF0aW9ucyB0byBkb21pY2lsaWFyeSBjYXJlIHByb3ZpZGVyIGZvcnVtXFxuICAqIFBsYW5uaW5nIGZvciBmdXJ0aGVyIGNvdXBvbiBwcm9tb3Rpb25zXFxuKiBTdXJnZXJpZXMvc2VtaW5hcnMgaW4gcmVzaWRlbnRpYWwgY2FyZSBob21lcyBvbiByZXF1ZXN0IGZyb20gcHJvdmlkZXJzXFxuKiBSZW5ld2VkIGZvY3VzIG9uIHByb21vdGlvbnMgdG8gcmVzaWRlbnRpYWwgYW5kIGRvbWljaWxpYXJ5IGNhcmUgaG9tZSBwcm92aWRlcnMgLSBDb250cmFjdHMgRGVwYXJ0bWVudCBwbGF5aW5nIGEga2V5IHJvbGUuIFdlc3QgU3Vzc2V4IFBhcnRuZXJzIGluIENhcmUgaGF2ZSB1cGRhdGVkIHRoZWlyIHdlYnNpdGUgdG8gaW5jbHVkZSBpbmZvcm1hdGlvbiBhYm91dCBDYXJld2lzZSBvbiB0aGVpciB3ZWJzaXRlLlxcblxcbioqRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQ2FyZXdpc2UgdmlzaXQ6KiogWyoqd3d3Lndlc3RzdXNzZXhjb25uZWN0dG9zdXBwb3J0Lm9yZy9jYXJld2lzZSoqXVswXSoqLCBjYWxsIDAxMjQzIDY0MjEyMSBvciBlbWFpbDoqKiBbKipzb2NpYWxjYXJlQHdlc3RzdXNzZXguZ292LnVrKipdWzFdXFxuXFxuWzBdOiBodHRwOi8vd3d3Lndlc3RzdXNzZXhjb25uZWN0dG9zdXBwb3J0Lm9yZy9jYXJld2lzZVxcblsxXTogbWFpbHRvOnNvY2lhbGNhcmVAd2VzdHN1c3NleC5nb3YudWtcIn1dLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIlRoZSBwZXJjZW50YWdlIG9mIEFkdWx0cyBTb2NpYWwgQ2FyZSBjdXN0b21lcnMgd2hvLCB3aGVuIHN1cnZleWVkLCBmZWx0IHRoZXkgaGFkIGNvbnRyb2wgb3ZlciB0aGVpciBkYWlseSBsaXZlc1wiLFwidXNlX2N1c3RvbV9zdWJ0aXRsZVwiOnRydWUsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRvIG1haW50YWluIG9yIGltcHJvdmUgdGhlIHBlcmNlbnRhZ2Ugb2YgQWR1bHRzIFNvY2lhbCBDYXJlIGN1c3RvbWVycyB3aG8sIHdoZW4gc3VydmV5ZWQsIGZlbHQgdGhleSBoYWQgY29udHJvbCBvdmVyIHRoZWlyIGRhaWx5IGxpdmVzIHRvIDgwLjMlXCJ9In0sInByZXZhaWxpbmdfbWVhc3VyZSI6eyJzdGFydCI6IjIwMTYtMDMtMDFUMDA6MDA6MDAuMDAwIiwiZW5kIjoiMjAxOC0wMy0zMVQyMzo1OTo1OS4wMDAiLCJ1bml0IjoiJSIsInRhcmdldF90eXBlIjoicmVsYXRpdmUiLCJ0YXJnZXRfZGVsdGEiOjAsInRhcmdldF9kZWx0YV9pc19wZXJjZW50IjpmYWxzZSwiYmFzZWxpbmUiOjgwLjMsIm1ldHJpYyI6eyJtZXRhZGF0YSI6IiIsImlkIjoiNmt1bS1rNG5pIn0sImNvbXBhcmlzb24iOnsiY29tcGFyaXNvbl9mdW5jdGlvbiI6Ij4ifSwibWV0YWRhdGEiOnsibWV0YWRhdGEiOiJ7XCJlZGl0XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjoyLFwieWVhclwiOjIwMTZ9LFwiZW5kXCI6e1wiZGF0ZVwiOlwiZW5kXCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxOH0sXCJhY3Rpb25fdHlwZVwiOlwibWFpbnRhaW5cIixcIm1haW50YWluX3R5cGVcIjpcIj5cIn0sXCJiYXNlbGluZVwiOntcInNxdWlzaHlcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTV9LFwiZW5kXCI6e1wiZGF0ZVwiOlwic3RhcnRcIixcIm1vbnRoXCI6XCJ5ZWFyXCIsXCJ5ZWFyXCI6MjAxNX19LFwic3RhcnRcIjpcIjIwMTUtMDEtMDFUMDA6MDA6MDAuMDAwXCIsXCJlbmRcIjpcIjIwMTUtMDEtMDFUMjM6NTk6NTkuMDAwXCIsXCJtZXRyaWNcIjp7XCJtZXRhZGF0YVwiOlwie1xcXCJ3aXphcmRcXFwiOntcXFwiZmlsdGVyX2FzdFxcXCI6W3tcXFwidmFsdWVzXFxcIjpbe31dfV19fVwifSxcInR5cGVcIjpcInN0YXRpY1wifSxcIm5hbWVcIjpcInRyYWNraW5nIHRoZSAlIG9mIEFkdWx0cyBTb2NpYWwgQ2FyZSBjdXN0b21lcnMgd2hvLCB3aGVuIHN1cnZleWVkLCBmZWx0IHRoZXkgaGFkIGNvbnRyb2wgb3ZlciB0aGVpciBkYWlseSBsaXZlc1wiLFwieVNjYWxlXCI6e1widXNlX2RlZmF1bHRcIjpmYWxzZX19In0sImNyZWF0ZWRfYXQiOiIyMDE4LTA3LTIzVDA4OjUzOjE0LjczM1oiLCJ2ZXJzaW9uIjoiMjAxOC0wNy0yM1QwODo1MzoxNC43MzNaIiwidGFyZ2V0X3RvbGVyYW5jZSI6NSwiaWQiOiJyY2ozLXZydGgifSwicmVsYXRlZF9tZWFzdXJlcyI6W3sibWV0YWRhdGEiOiIiLCJpZCI6IjZyYmUtZjNwNyJ9LHsibWV0YWRhdGEiOiIiLCJpZCI6IjN5OHItbWZ6cSJ9LHsibWV0YWRhdGEiOiIiLCJpZCI6InQ2ZDIteGJrOCJ9XSwiYmFzZV9kYXNoYm9hcmQiOiI1NzRyLWg1bmMiLCJ1cGRhdGVkX2F0IjoiMjAxOC0wNy0yM1QwOTo1NjozOS4yODJaIiwiY3JlYXRlZF9hdCI6IjIwMTgtMDctMjNUMDg6NTM6MTQuODA5WiIsInZlcnNpb24iOiIyMDE4LTA3LTIzVDA5OjU2OjM5LjI4MloiLCJjcmVhdGVkX2J5IjoiNzk3aS02cjlnIn0seyJpZCI6InBraTQtM2ZobSIsIm5hbWUiOiJRdWFsaXR5IG9mIGNhcmUgaW4gaG9tZXMiLCJpc19wdWJsaWMiOnRydWUsIm1ldGFkYXRhIjp7Im1ldGFkYXRhIjoie1wicmV0aXJlbWVudF9uYXJyYXRpdmVcIjpbXSxcIm5hcnJhdGl2ZVwiOlt7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YWxpdHkgb2YgQ2FyZSBIb21lcyBhbmQgQ2FyZSByZWNlaXZlZCBhdCBIb21lKipcXG5cXG5UaGUgQ2FyZSBRdWFsaXR5IENvbW1pc3Npb24gKENRQykgaXMgdGhlIGluZGVwZW5kZW50IGluc3BlY3RvciBhbmQgcmVndWxhdG9yIG9mIGhlYWx0aCBhbmQgc29jaWFsIGNhcmUgc2VydmljZXMgaW4gRW5nbGFuZC5cXG5cXG5UaGV5IG1ha2Ugc3VyZSBoZWFsdGggYW5kIHNvY2lhbCBjYXJlIHNlcnZpY2VzLCBzdWNoIGFzIENhcmUgSG9tZXMgYW5kIENhcmUgYW5kIFN1cHBvcnQgaW4gcGVvcGxlc+KAmSBvd24gaG9tZXMgYXJlIHNhZmUsIGVmZmVjdGl2ZSBhbmQgaGlnaC1xdWFsaXR5LiBUaGUgQ1FDIG1vbml0b3IsIGluc3BlY3QgYW5kIHJlZ3VsYXRlIHNlcnZpY2VzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZXkgbWVldCBmdW5kYW1lbnRhbCBzdGFuZGFyZHMgb2YgcXVhbGl0eSBhbmQgc2FmZXR5IGFuZCB0aGV5IHB1Ymxpc2ggd2hhdCB0aGV5IGZpbmQgdG8gaGVscCBwZW9wbGUgbWFrZSBpbmZvcm1lZCBkZWNpc2lvbnMgYWJvdXQgdGhlaXIgY2hvaWNlIG9mIGNhcmUuXFxuXFxuVGhlIENRQyBjaGFuZ2VkIHRoZWlyIG1vbml0b3JpbmcgcmVnaW1lIGluIE9jdG9iZXIgMjAxNCB0byBmb2N1cyBvbiA1IGtleSBxdWVzdGlvbnM6XFxuXFxuKiBBcmUgdGhleSBzYWZlP1xcbiogQXJlIHRoZXkgZWZmZWN0aXZlP1xcbiogQXJlIHRoZXkgY2FyaW5nP1xcbiogQXJlIHRoZXkgcmVzcG9uc2l2ZSB0byBwZW9wbGXigJlzIG5lZWRzP1xcbiogQXJlIHRoZXkgd2VsbC1sZWQ/XFxuXFxuSW4gb3JkZXIgdG8gYW5zd2VyIHRoZXNlIHF1ZXN0aW9ucyBDUUMgSW5zcGVjdG9ycyB3aWxsIGdhdGhlciBpbmZvcm1hdGlvbiBhbmQgaW50ZWxsaWdlbmNlIGZyb20gYSByYW5nZSBvZiBzb3VyY2VzIGluY2x1ZGluZzogTG9jYWwgQXV0aG9yaXRpZXMsIE5IUyBhbmQgdGhlIENhcmUgUHJvdmlkZXIsIGFuZCB0aGVuIGNhcnJ5IG91dCBhbiBvbi1zaXRlIGluc3BlY3Rpb24uXFxuXFxuT25jZSB0aGUgaW5zcGVjdG9yIGhhcyBjb25zaWRlcmVkIGFsbCBvZiB0aGUgZXZpZGVuY2UgcmVsYXRlZCB0byBlYWNoIHF1ZXN0aW9uIGEganVkZ2VtZW50IGlzIG1hZGUgb24gdGhlIGNvbXBsaWFuY2UgcmF0aW5nIGZvciBlYWNoIHF1ZXN0aW9uIGFuZCBhbiBvdmVyYWxsIHJhdGluZyBmb3IgdGhlIGNhcmUgcHJvdmlkZXIuXFxuXFxuKipUaGVyZSBhcmUgZm91ciByYXRpbmdzIHdoaWNoIHRoZSBDUUMgZ2l2ZSB0byBoZWFsdGggYW5kIHNvY2lhbCBjYXJlIHNlcnZpY2VzOiBvdXRzdGFuZGluZywgZ29vZCwgcmVxdWlyZXMgaW1wcm92ZW1lbnQgYW5kIGluYWRlcXVhdGUuKipcXG5cXG4qKk91dHN0YW5kaW5nKiogLSBUaGUgc2VydmljZSBpcyBwZXJmb3JtaW5nIGV4Y2VwdGlvbmFsbHkgd2VsbC5cXG5cXG4qKkdvb2QqKiAtIFRoZSBzZXJ2aWNlIGlzIHBlcmZvcm1pbmcgd2VsbCBhbmQgbWVldGluZyBvdXIgZXhwZWN0YXRpb25zLlxcblxcbioqUmVxdWlyZXMgaW1wcm92ZW1lbnQqKiAtIFRoZSBzZXJ2aWNlIGlzbid0IHBlcmZvcm1pbmcgYXMgd2VsbCBhcyBpdCBzaG91bGQgYW5kIHdlIGhhdmUgdG9sZCB0aGUgc2VydmljZSBob3cgaXQgbXVzdCBpbXByb3ZlLlxcblxcbioqSW5hZGVxdWF0ZSoqIC0gVGhlIHNlcnZpY2UgaXMgcGVyZm9ybWluZyBiYWRseSBhbmQgd2UndmUgdGFrZW4gYWN0aW9uIGFnYWluc3QgdGhlIHBlcnNvbiBvciBvcmdhbmlzYXRpb24gdGhhdCBydW5zIGl0LlxcblxcblwifSx7XCJ0eXBlXCI6XCJ0ZXh0XCIsXCJ0ZXh0XCI6XCIqKlF1YXJ0ZXIgMyAtIERlY2VtYmVyIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIFBlcmNlbnRhZ2Ugb2YgQ2FyZSBIb21lcyByYXRlZCBhcyBHb29kIG9yIE91dHN0YW5kaW5nIGJ5IHRoZSBDYXJlIFF1YWxpdHkgQ29tbWlzc2lvbiAoQ1FDKSBkdXJpbmcgMjAxNyBmb2xsb3dlZCBhbiB1cHdhcmQgdHJlbmQgYmV5b25kIHRoZSB0YXJnZXQuIFRoaXMgaXMgcGFydGx5IGR1ZSB0byB0aGUgcHJpb3JpdGlzYXRpb24gb2YgaW5zcGVjdGlvbnMgZm9jdXNpbmcgb24gdGhvc2UgUHJvdmlkZXJzIHdob20gd2VyZSByYXRlZCBub24tY29tcGxpYW50IHVuZGVyIHRoZSBuZXcgaW5zcGVjdGlvbiByZWdpbWUgYW5kIGFsc28sIHBhcnRseSBkdWUgdG8gV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgYW5kIG90aGVyIGNvbW1pc3Npb25lcnMgb2Ygc2VydmljZXMgaW5jcmVhc2luZyB0aGUgc3VwcG9ydCBhbmQgY29hY2hpbmcgb2ZmZXJlZCB0byBjYXJlIG1hcmtldHMgdG8gcHJvbW90ZSB0aGUgc3VzdGFpbmluZyBvZiBlbmhhbmNlZCBxdWFsaXR5IG9mIGNhcmUgZm9yIHJlc2lkZW50cyBvZiB0aGUgQ291bnR5LlxcblxcbkR1cmluZyAyMDE3IENRQyBjb21tZW5jZWQgYSBwdWJsaWMgY29uc3VsdGF0aW9uIHByb2Nlc3MgdG8gc2VlayB2aWV3cyBvbiB0aGVpciBwcm9wb3NhbHMgdG87XFxuXFxu4oCccmVndWxhdGUgcHJpbWFyeSBtZWRpY2FsIHNlcnZpY2VzIGFuZCBhZHVsdCBzb2NpYWwgY2FyZSBzZXJ2aWNlcywgaW1wcm92ZSB0aGUgc3RydWN0dXJlIG9mIHJlZ2lzdHJhdGlvbixhbmQgY2xhcmlmeSB0aGVpciBkZWZpbml0aW9uIG9mIHJlZ2lzdGVyZWQgcHJvdmlkZXJzLCBtb25pdG9yLCBpbnNwZWN0IGFuZCByYXRlIG5ldyBtb2RlbHMgb2YgY2FyZSBhbmQgbGFyZ2Ugb3IgY29tcGxleCBwcm92aWRlcnMsIHVzZSB0aGVpciB1bmlxdWUga25vd2xlZGdlIHRvIGVuY291cmFnZSBpbXByb3ZlbWVudHMgaW4gdGhlIHF1YWxpdHkgb2YgY2FyZSBpbiBsb2NhbCBhcmVhcywgY2Fycnkgb3V0IHRoZWlyIHJvbGUgaW4gcmVsYXRpb24gdG8gdGhlIGZpdCBhbmQgcHJvcGVyIHBlcnNvbnMgcmVxdWlyZW1lbnTigJ1cXG5cXG5UaGUgY29uc3VsdGF0aW9ucyBwcm9wb3NlZCBhIG51bWJlciBvZiBjaGFuZ2VzIHRvIHRoZSB3YXkgdGhhdCBjYXJlIHNlcnZpY2VzIGFyZSByZWdpc3RlcmVkIGFuZCBpbnNwZWN0ZWQgYnkgdGhlIENRQzpcXG5cXG4qIEtleSBMaW5lcyBvZiBFbnF1aXJ5IChLTE9FcyksIGluY2x1ZGluZyB0aGUgY29tYmluYXRpb24gb2YgdGhlIHNlcGFyYXRlIEtMT0VzIGN1cnJlbnRseSB1c2VkIGZvciBjb21tdW5pdHkgYW5kIHJlc2lkZW50aWFsIGJhc2VkIHNlcnZpY2VzIGludG8gb25lIG5ldyBmcmFtZXdvcmsuIFRoZXJlIGFyZSAzIGFkZGl0aW9uYWwgYWR1bHQgc29jaWFsIGNhcmUgS2V5IExpbmVzIE9mIEVucXVpcnkgKHRoYXQgc3VwcG9ydCB0aGUgZml2ZSBrZXkgcXVlc3Rpb25zKSB3aXRoIG5ldyBwcm9tcHRzIGluY2x1ZGVkIGluIHRoZSBzdWItY3JpdGVyaWEgdW5kZXIgZWFjaCBLTE9FLlxcbiogQ2hhbmdlcyB0byBmcmVxdWVuY3kgb2YgaW5zcGVjdGlvbnMsIGluY2x1ZGluZyBpbmNyZWFzaW5nIHRoZSBtYXhpbXVtIGludGVydmFsIGJldHdlZW4gcmF0aW5ncyBmb3Igc2VydmljZXMgcmF0aW5nIEdvb2Qgb3IgT3V0c3RhbmRpbmcgZnJvbSAyNC1tb250aHMgdG8gMzAtbW9udGhzLlxcbiogQ2hhbmdlcyB0byByZXNwb25zZSB3aGVyZSBzZXJ2aWNlcyBhcmUgcmVwZWF0ZWRseSByYXRlZCBhcyBSZXF1aXJlcyBJbXByb3ZlbWVudFxcbiogUHVibGljYXRpb24gb2YgcmVmcmVzaGVkIGd1aWRhbmNlIGZvciDigJhmaXQgYW5kIHByb3BlcuKAmSBwZXJzb25zIHJlcXVpcmVtZW50cyBpbiByZWxhdGlvbiB0byByZWdpc3RyYXRpb24gdG8gZm9yIFByb3ZpZGVycyBhbmQgaW1wcm92ZWQgaW5mb3JtYXRpb24gc2hhcmluZy5cXG4qIEludHJvZHVjdGlvbiBvZiBhbiBvbmxpbmUgUHJvdmlkZXIgSW5mb3JtYXRpb24gQ29sbGVjdGlvbiB3aGljaCB3aWxsIGFsbG93IGNhcmUgcHJvdmlkZXJzIHRvIHN1Ym1pdCB1cC10by1kYXRlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBxdWFsaXR5IG9mIHRoZSBzZXJ2aWNlIHRoZXkgcHJvdmlkZSBkaXJlY3RseSB0byB0aGUgQ1FDLlxcblxcbkFkdWx0IFNvY2lhbCBDYXJlIFNlcnZpY2VzIHdlcmUgbm90IHBsYW5uZWQgdG8gYmUgaW5zcGVjdGVkIHVuZGVyIHRoZSBuZXcgcmV2aXNlZCBmcmFtZXdvcmsgdW50aWwgTm92ZW1iZXIgMjAxNyBhbmQgdGhlIG1heGltdW0gaW50ZXJ2YWwgYmV0d2VlbiBpbnNwZWN0aW9ucyBmb3Igc2VydmljZXMgcmF0ZWQgR29vZCBhbmQgT3V0c3RhbmRpbmcgaXMgZHVlIHRvIGJlIGluY3JlYXNlZCBmcm9tIDI0IG1vbnRocyB0byAzMCBtb250aHMgZnJvbSBBcHJpbCAyMDE4LCB0aGVyZWZvcmU7IGl0IG1heSBiZSBzb21lIHRpbWUgYmVmb3JlIHRoZSBpbXBhY3Qgb2YgdGhpcyBpcyByZWFsaXNlZCBidXQgYXMgQ1FDIGltcGxlbWVudCB0aGUgbmV3IGluc3BlY3Rpb24gZnJhbWV3b3JrIHRoaXMgd2lsbCBiZSBhIGNoYW5nZSBmb3IgcHJvdmlkZXJzLCBjb25zZXF1ZW50bHkgd2UgYW50aWNpcGF0ZSB0aGVyZSBiZWluZyBhIHNsaWdodCBkZWNyZWFzZSBpbiB0aGUgcXVhbGl0eSByYXRpbmdzIGluIHRoZSBsYXN0IDIgcXVhcnRlcnMgb2YgdGhlIHllYXIgKHNlcnZpY2VzIHJhdGVkIEdvb2QgYW5kIE91dHN0YW5kaW5nKSBjb21wYXJlZCB0byB0aG9zZSBkdXJpbmcgdGhlIGxhc3QgMTItbW9udGhzIHN0YWJpbGlzZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDIgLSBTZXB0ZW1iZXIgMjAxNyoqXFxuXFxuLSAtIC1cXG5cXG5UaGUgUGVyY2VudGFnZSBvZiBDYXJlIEhvbWVzIHJhdGVkIGFzIEdvb2Qgb3IgT3V0c3RhbmRpbmcgYnkgdGhlIENhcmUgUXVhbGl0eSBDb21taXNzaW9uIChDUUMpIGR1cmluZyAyMDE2LzE3IGZvbGxvd2VkIGFuIHVwd2FyZCB0cmVuZCBiZXlvbmQgdGhlIHRhcmdldC4gVGhpcyBpcyBwYXJ0bHkgZHVlIHRvIHRoZSBwcmlvcml0aXNhdGlvbiBvZiBpbnNwZWN0aW9ucyBmb2N1c2luZyBvbiB0aG9zZSBQcm92aWRlcnMgd2hvbSB3ZXJlIHJhdGVkIG5vbi1jb21wbGlhbnQgdW5kZXIgdGhlIG5ldyBpbnNwZWN0aW9uIHJlZ2ltZSBhbmQgYWxzbywgcGFydGx5IGR1ZSB0byBXZXN0IFN1c3NleCBDb3VudHkgQ291bmNpbCBhbmQgb3RoZXIgY29tbWlzc2lvbmVycyBvZiBzZXJ2aWNlcyBpbmNyZWFzaW5nIHRoZSBzdXBwb3J0IGFuZCBjb2FjaGluZyBvZmZlcmVkIHRvIGNhcmVtYXJrZXRzIHRvIHByb21vdGUgdGhlIHN1c3RhaW5pbmcgb2YgZW5oYW5jZWQgcXVhbGl0eSBvZiBjYXJlIGZvciByZXNpZGVudHMgb2YgdGhlIENvdW50eS5cXG5cXG5BdCB0aGUgc3RhcnQgb2YgMjAxNyBDUUMgY29tbWVuY2VkIGEgcHVibGljIGNvbnN1bHRhdGlvbiBwcm9jZXNzIHRvIHNlZWsgdmlld3Mgb24gdGhlaXIgcHJvcG9zYWxzIHRvO1xcblxcbl/igJxyZWd1bGF0ZSBwcmltYXJ5IG1lZGljYWwgc2VydmljZXMgYW5kIGFkdWx0IHNvY2lhbCBjYXJlIHNlcnZpY2VzLCBpbXByb3ZlIHRoZSBzdHJ1Y3R1cmUgb2YgcmVnaXN0cmF0aW9uLGFuZCBjbGFyaWZ5IHRoZWlyIGRlZmluaXRpb24gb2YgcmVnaXN0ZXJlZCBwcm92aWRlcnMsIG1vbml0b3IsIGluc3BlY3QgYW5kIHJhdGUgbmV3IG1vZGVscyBvZiBjYXJlIGFuZCBsYXJnZSBvciBjb21wbGV4IHByb3ZpZGVycywgdXNlIHRoZWlyIHVuaXF1ZSBrbm93bGVkZ2UgdG8gZW5jb3VyYWdlIGltcHJvdmVtZW50cyBpbiB0aGUgcXVhbGl0eSBvZiBjYXJlIGluIGxvY2FsIGFyZWFzLCBjYXJyeSBvdXQgdGhlaXIgcm9sZSBpbiByZWxhdGlvbiB0byB0aGUgZml0IGFuZCBwcm9wZXIgcGVyc29ucyByZXF1aXJlbWVudOKAnV9cXG5cXG5UaGUgZmlyc3QgcGhhc2Ugb2YgdGhlIGNvbnN1bHRhdGlvbiBwcm9wb3NlZCBhIG51bWJlciBvZiBjaGFuZ2Ugc3RvIHRoZSBLZXkgTGluZXMgb2YgRW5xdWlyeSAoS0xPRXMpLCBpbmNsdWRpbmcgdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBzZXBhcmF0ZSBLTE9FcyBjdXJyZW50bHkgdXNlZCBmb3IgY29tbXVuaXR5IGFuZCByZXNpZGVudGlhbCBiYXNlZCBzZXJ2aWNlcyBpbnRvIG9uZSBuZXcgZnJhbWV3b3JrLiBUaGVyZSBhcmUgMyBhZGRpdGlvbmFsIGFkdWx0IHNvY2lhbCBjYXJlIEtleSBMaW5lcyBPZiBFbnF1aXJ5ICh0aGF0IHN1cHBvcnQgdGhlIGZpdmUga2V5IHF1ZXN0aW9ucykgd2l0aCBuZXcgcHJvbXB0cyBpbmNsdWRlZCBpbiB0aGUgc3ViLWNyaXRlcmlhIHVuZGVyIGVhY2ggS0xPRS4gQWR1bHQgU29jaWFsIENhcmUgU2VydmljZXMgd2lsbCBub3QgYmUgaW5zcGVjdGVkIHVuZGVyIHRoZSBuZXcgcmV2aXNlZCBmcmFtZXdvcmsgdW50aWwgTm92ZW1iZXIgMjAxNy4gQ1FDIGFyZSBjdXJyZW50bHkgZGV2ZWxvcGluZyB0aGVpciBuZXh0IHBoYXNlIG9mIHJlZ3VsYXRpb24gd2l0aCBjb25zdWx0YXRpb24gMiBkdWUgdG8gY2xvc2UgaW4gQXVndXN0IDIwMTcuIENvbnN1bHRhdGlvbiAzIGlzIGR1ZSB0byB0YWtlIHBsYWNlIGxhdGVyIGluIHRoZSB5ZWFyICgyMDE3LzE4KS4gQXMgQ1FDIGltcGxlbWVudCB0aGUgbmV3IGluc3BlY3Rpb24gZnJhbWV3b3JrIHRoaXMgd2lsbCBiZSBhIGNoYW5nZSBmb3IgcHJvdmlkZXJzLCBjb25zZXF1ZW50bHkgd2UgYW50aWNpcGF0ZSB0aGVyZSBiZWluZyBhIHNsaWdodCBkZWNyZWFzZSBpbiB0aGUgcXVhbGl0eSByYXRpbmdzIGluIHRoZSBsYXN0IDIgcXVhcnRlcnMgb2YgdGhlIHllYXIgKHNlcnZpY2VzIHJhdGVkIEdvb2QgYW5kIE91dHN0YW5kaW5nKSBjb21wYXJlZCB0byB0aG9zZSBkdXJpbmcgdGhlIGxhc3QgMTItbW9udGhzIHN0YWJpbGlzZS5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDEgLSBKdW5lIDIwMTcqKlxcblxcbi0gLSAtXFxuXFxuVGhlIHBlcmNlbnRhZ2Ugb2YgQ2FyZSBIb21lcyByYXRlZCBhcyBHb29kIG9yIE91dHN0YW5kaW5nIGJ5IHRoZSBDUUMgKENhcmUgUXVhbGl0eSBDb21taXNzaW9uKSBkdXJpbmcgMjAxNi8xNyBmb2xsb3dlZCBhbiB1cHdhcmQgdHJlbmQgYmV5b25kIHRoZSB0YXJnZXQuIFRoaXMgaXMgcGFydGx5IGR1ZSB0byB0aGUgcHJpb3JpdGlzYXRpb24gb2YgaW5zcGVjdGlvbnMgZm9jdXNpbmcgb24gdGhvc2UgUHJvdmlkZXJzIHdob20gd2VyZSByYXRlZCBub24tY29tcGxpYW50IHVuZGVyIHRoZSBuZXcgaW5zcGVjdGlvbiByZWdpbWUgYW5kIGFsc28sIHBhcnRseSBkdWUgdG8gV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgYW5kIG90aGVyIGNvbW1pc3Npb25lcnMgb2Ygc2VydmljZXMgaW5jcmVhc2luZyB0aGUgc3VwcG9ydCBhbmQgY29hY2hpbmcgb2ZmZXJlZCB0byBjYXJlIG1hcmtldHMgdG8gcHJvbW90ZSB0aGUgc3VzdGFpbmluZyBvZiBlbmhhbmNlZCBxdWFsaXR5IG9mIGNhcmUgZm9yIHJlc2lkZW50cyBvZiB0aGUgQ291bnR5LlxcblxcbkF0IHRoZSBzdGFydCBvZiAyMDE3IHRoZSBDUUMgY29tbWVuY2VkIGEgcHVibGljIGNvbnN1bHRhdGlvbiBwcm9jZXNzIHRvIHNlZWsgdmlld3Mgb24gdGhlaXIgcHJvcG9zYWxzIHRvO1xcblxcbuKAnHJlZ3VsYXRlIHByaW1hcnkgbWVkaWNhbCBzZXJ2aWNlcyBhbmQgYWR1bHQgc29jaWFsIGNhcmUgc2VydmljZXMsIGltcHJvdmUgdGhlIHN0cnVjdHVyZSBvZiByZWdpc3RyYXRpb24sIGFuZCBjbGFyaWZ5IHRoZWlyIGRlZmluaXRpb24gb2YgcmVnaXN0ZXJlZCBwcm92aWRlcnMsIG1vbml0b3IsIGluc3BlY3QgYW5kIHJhdGUgbmV3IG1vZGVscyBvZiBjYXJlIGFuZCBsYXJnZSBvciBjb21wbGV4IHByb3ZpZGVycywgdXNlIHRoZWlyIHVuaXF1ZSBrbm93bGVkZ2UgdG8gZW5jb3VyYWdlIGltcHJvdmVtZW50cyBpbiB0aGUgcXVhbGl0eSBvZiBjYXJlIGluIGxvY2FsIGFyZWFzLCBjYXJyeSBvdXQgdGhlaXIgcm9sZSBpbiByZWxhdGlvbiB0byB0aGUgZml0IGFuZCBwcm9wZXIgcGVyc29ucyByZXF1aXJlbWVudOKAnVxcblxcblRoZSBmaXJzdCBwaGFzZSBvZiB0aGUgY29uc3VsdGF0aW9uIHByb3Bvc2VkIGEgbnVtYmVyIG9mIGNoYW5nZXMgdG8gdGhlIEtleSBMaW5lcyBvZiBFbnF1aXJ5IChLTE9FcyksIGluY2x1ZGluZyB0aGUgY29tYmluYXRpb24gb2YgdGhlIHNlcGFyYXRlIEtMT0VzIGN1cnJlbnRseSB1c2VkIGZvciBjb21tdW5pdHkgYW5kIHJlc2lkZW50aWFsIGJhc2VkIHNlcnZpY2VzIGludG8gb25lIG5ldyBmcmFtZXdvcmsuIFRoZXJlIGFyZSAzIGFkZGl0aW9uYWwgYWR1bHQgc29jaWFsIGNhcmUgS0xPRXMgKHRoYXQgc3VwcG9ydCB0aGUgZml2ZSBrZXkgcXVlc3Rpb25zKSB3aXRoIG5ldyBwcm9tcHRzIGluY2x1ZGVkIGluIHRoZSBzdWItY3JpdGVyaWEuIEFkdWx0IFNvY2lhbCBDYXJlIFNlcnZpY2VzIHdpbGwgbm90IGJlIGluc3BlY3RlZCB1bmRlciB0aGUgbmV3IHJldmlzZWQgZnJhbWV3b3JrIHVudGlsIE5vdmVtYmVyIDIwMTcuIFRoZSBDUUMgYXJlIGN1cnJlbnRseSBkZXZlbG9waW5nIHRoZWlyIG5leHQgcGhhc2Ugb2YgcmVndWxhdGlvbiB3aXRoIGNvbnN1bHRhdGlvbiAyIGR1ZSB0byBjbG9zZSBpbiBBdWd1c3QgMjAxNy4gQ29uc3VsdGF0aW9uIDMgaXMgZHVlIHRvIHRha2UgcGxhY2UgbGF0ZXIgaW4gdGhlIHllYXIgKDIwMTcvMTgpLiBBcyBDUUMgaW1wbGVtZW50IHRoZSBuZXcgaW5zcGVjdGlvbiBmcmFtZXdvcmsgdGhpcyB3aWxsIGJlIGEgY2hhbmdlIGZvciBwcm92aWRlcnMsIGNvbnNlcXVlbnRseSB3ZSBhbnRpY2lwYXRlIHRoZXJlIGJlaW5nIGEgc2xpZ2h0IGRlY3JlYXNlIGluIHRoZSBxdWFsaXR5IHJhdGluZ3MgaW4gdGhlIGxhc3QgdHdvIHF1YXJ0ZXJzIG9mIHRoZSB5ZWFyIChzZXJ2aWNlcyByYXRlZCBHb29kIGFuZCBPdXRzdGFuZGluZykgY29tcGFyZWQgdG8gdGhvc2UgZHVyaW5nIHRoZSBsYXN0IDEyLW1vbnRocy5cXG5cXG5cIn0se1widHlwZVwiOlwidGV4dFwiLFwidGV4dFwiOlwiKipRdWFydGVyIDQgLSBNYXJjaCAyMDE3KipcXG5cXG4tIC0gLVxcblxcbkxhdGVzdCBmaWd1cmUgY29udGludWVzIG9uIGFuIHVwd2FyZCB0cmVuZCBzaG93aW5nIHF1YWxpdHkgaW4gY2FyZSBob21lcyBpcyBpbmNyZWFzaW5nLiBUaGlzIGluY3JlYXNlIG1heSBiZSBkdWUgdG8gdGhlIHByaW9yaXRpc2F0aW9uIG9mIGluc3BlY3Rpb25zIGJ5IHRoZSBDUUMsIGFzIHRoZXkgaW1wbGVtZW50ZWQgdGhlIG5ldyBpbnNwZWN0aW9uIHJlZ2ltZSwgaS5lLiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IGluc3BlY3Rpb24gcmVnaW1lIGZvY3VzZWQgaW5pdGlhbGx5IG9uIHRob3NlIHByb3ZpZGVycyB3aG9tIHdlcmUgcmF0ZWQgbm9uLWNvbXBsaWFudCB1bmRlciB0aGUgcHJldmlvdXMgaW5zcGVjdGlvbiByZWdpbWUuIEFkZGl0aW9uYWxseSwgZHVyaW5nIHRoZSBwYXN0IHllYXIgV2VzdCBTdXNzZXggQ291bnR5IENvdW5jaWwgYW5kIG90aGVyIGNvbW1pc3Npb25lcnMgb2Ygc2VydmljZXMgaGF2ZSBpbmNyZWFzZWQgc3VwcG9ydCBvZmZlcmVkIHRvIHRoZSBjYXJlIG1hcmtldHMgYW5kIG9mZmVyZWQgYWR2aWNlIGFuZCBndWlkYW5jZSB0byBjYXJlIHByb3ZpZGVycyB0byBwcm9tb3RlIHRoZSBzdXN0YWluaW5nIG9mIGhpZ2ggcXVhbGl0eSBjYXJlIGZvciByZXNpZGVudHMgb2YgdGhlIENvdW50eS5cXG5cXG5BcyB3ZSBtb3ZlIGludG8gdGhlIG5leHQgeWVhciwgYW5kIHRoZSBDUUMgY29tcGxldGUgdGhlaXIgaW1wbGVtZW50YXRpb24gb2YgdGhlIGluc3BlY3Rpb24gcmVnaW1lIG1vdmluZyB0byBmb2N1c2VkIGluc3BlY3Rpb25zLCB3ZSBleHBlY3QgdG8gc2VlIHRoZSBpbmNyZWFzZXMgc2VlbiBkdXJpbmcgdGhlIGxhc3QgMTItbW9udGhzIHN0YWJpbGlzZS5cXG5cXG5cIn1dLFwidXNlX2N1c3RvbV90aXRsZVwiOnRydWUsXCJjdXN0b21fdGl0bGVcIjpcIkltcHJvdmUgdGhlIG51bWJlciBvZiBjYXJlIGhvbWUgcHJvdmlkZXJzIHJhdGVkIGdvb2Qgb3Igb3V0c3RhbmRpbmcgYnkgdGhlIENRQyB0byA2MCUgb3IgaGlnaGVyXCIsXCJ1c2VfY3VzdG9tX3N1YnRpdGxlXCI6ZmFsc2UsXCJjdXN0b21fc3VidGl0bGVcIjpcIlRvIG1haW50YWluIG9yIGluY3JlYXNlIHRoZSBwZXJjZW50YWdlIG9mIGNhcmUgaG9tZSBwcm92aWRlcnMgcmF0ZWQgZ29vZCBvciBvdXRzdGFuZGluZyB0byA2MCUgb3IgYWJvdmUuXCIsXCJ0aXRsZV9pbWFnZVwiOlwiL2FwaS9hc3NldHMvNkQwNzFDNDQtODk5QS00NUQwLTg0OTAtMjNBMTVGQUQwODIzXCIsXCJpY29uXCI6XCJidWlsZGluZ1wifSJ9LCJwcmV2YWlsaW5nX21lYXN1cmUiOnsic3RhcnQiOiIyMDE1LTAzLTAxVDAwOjAwOjAwLjAwMCIsImVuZCI6IjIwMTgtMDMtMzFUMjM6NTk6NTkuMDAwIiwidW5pdCI6IiUiLCJ0YXJnZXQiOjYwLCJ0YXJnZXRfdHlwZSI6InJlbGF0aXZlIiwidGFyZ2V0X2RlbHRhIjowLCJ0YXJnZXRfZGVsdGFfaXNfcGVyY2VudCI6ZmFsc2UsImJhc2VsaW5lIjo2MCwibWV0cmljIjp7Im1ldGFkYXRhIjoiIiwiaWQiOiI0dzVhLWN4aWEifSwiY29tcGFyaXNvbiI6eyJjb21wYXJpc29uX2Z1bmN0aW9uIjoiPiJ9LCJtZXRhZGF0YSI6eyJtZXRhZGF0YSI6IntcImVkaXRcIjp7XCJzdGFydFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOjIsXCJ5ZWFyXCI6MjAxNX0sXCJlbmRcIjp7XCJkYXRlXCI6XCJlbmRcIixcIm1vbnRoXCI6MixcInllYXJcIjoyMDE4fSxcImFjdGlvbl90eXBlXCI6XCJtYWludGFpblwiLFwidGFyZ2V0X3R5cGVcIjpcInJlbGF0aXZlXCIsXCJtYWludGFpbl90eXBlXCI6XCI+XCJ9LFwiYmFzZWxpbmVcIjp7XCJzcXVpc2h5XCI6e1wic3RhcnRcIjp7XCJkYXRlXCI6XCJzdGFydFwiLFwibW9udGhcIjpcInllYXJcIixcInllYXJcIjoyMDE1fSxcImVuZFwiOntcImRhdGVcIjpcInN0YXJ0XCIsXCJtb250aFwiOlwieWVhclwiLFwieWVhclwiOjIwMTV9fSxcInN0YXJ0XCI6XCIyMDE1LTAxLTAxVDAwOjAwOjAwLjAwMFwiLFwiZW5kXCI6XCIyMDE1LTAxLTAxVDIzOjU5OjU5LjAwMFwiLFwibWV0cmljXCI6e1wibWV0YWRhdGFcIjpcIntcXFwid2l6YXJkXFxcIjp7XFxcImZpbHRlcl9hc3RcXFwiOlt7XFxcInZhbHVlc1xcXCI6W3t9XX1dfX1cIn19LFwibmFtZ