XGJlZ2lue2ZsdXNobGVmdH0KCntcYmZzZXJpZXMgU3BlY2lmaWNhdGlvbjogSkFYLVJTIC0gSmF2YVx0ZXh0dHJhZGVtYXJrXCBBUEkgZm9yIFJFU1RmdWwgV2ViIFNlcnZpY2VzIChcbHFcbHEgU3BlY2lmaWNhdGlvblxycVxycSlcXApWZXJzaW9uOiAxLjAtZWRpdG9ycy1kcmFmdFxcCiUgVmVyc2lvbjogMS4wLXB1YmxpYy1yZXZpZXctZHJhZnRcXApTdGF0dXM6IFByZS1GQ1MgUHVibGljIFJlbGVhc2VcXApSZWxlYXNlOiBcdG9kYXlcXApDb3B5cmlnaHQgMjAwNyBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuXFwKNDE1MCBOZXR3b3JrIENpcmNsZSwgU2FudGEgQ2xhcmEsIENhbGlmb3JuaWEgOTUwNTQsIFUuUy5BXFwKMTgwLCBBdmVudWUgZGUgTCdFdXJvcGUsIDM4MzMwIE1vbnRib25ub3QgU2FpbnQgTWFydGluLCBGcmFuY2VcXApBbGwgcmlnaHRzIHJlc2VydmVkLgp9Cgp7XGJmc2VyaWVzIE5PVElDRX0KClRoZSBTcGVjaWZpY2F0aW9uIGlzIHByb3RlY3RlZCBieSBjb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBkZXNjcmliZWQgdGhlcmVpbiBtYXkgYmUgcHJvdGVjdGVkIGJ5IG9uZSBvciBtb3JlIFUuUy4gcGF0ZW50cywgZm9yZWlnbiBwYXRlbnRzLCBvciBwZW5kaW5nIGFwcGxpY2F0aW9ucy4gIEV4Y2VwdCBhcyBwcm92aWRlZCB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2UsIG5vIHBhcnQgb2YgdGhlIFNwZWNpZmljYXRpb24gbWF5IGJlIHJlcHJvZHVjZWQgaW4gYW55IGZvcm0gYnkgYW55IG1lYW5zIHdpdGhvdXQgdGhlIHByaW9yIHdyaXR0ZW4gYXV0aG9yaXphdGlvbiBvZiBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIChcbHFcbHEgU3VuXHJxXHJxKSBhbmQgaXRzIGxpY2Vuc29ycywgaWYgYW55LiAgQW55IHVzZSBvZiB0aGUgU3BlY2lmaWNhdGlvbiBhbmQgdGhlIGluZm9ybWF0aW9uIGRlc2NyaWJlZCB0aGVyZWluIHdpbGwgYmUgZ292ZXJuZWQgYnkgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50LiAKClN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgbGljZW5zZSwgaW5jbHVkaW5nIHlvdXIgY29tcGxpYW5jZSB3aXRoIFBhcmFncmFwaHMgMSBhbmQgMiBiZWxvdywgU3VuIGhlcmVieSBncmFudHMgeW91IGEgZnVsbHktcGFpZCwgbm9uLWV4Y2x1c2l2ZSwgbm9uLXRyYW5zZmVyYWJsZSwgbGltaXRlZCBsaWNlbnNlICh3aXRob3V0IHRoZSByaWdodCB0byBzdWJsaWNlbnNlKSB1bmRlciBTdW4ncyBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIHRvOgoKXGJlZ2lue2VudW1lcmF0ZX0KXGl0ZW0gUmV2aWV3IHRoZSBTcGVjaWZpY2F0aW9uIGZvciB0aGUgcHVycG9zZXMgb2YgZXZhbHVhdGlvbi4gVGhpcyBpbmNsdWRlczogCihpKSBkZXZlbG9waW5nIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgU3BlY2lmaWNhdGlvbiBmb3IgeW91ciBpbnRlcm5hbCwgbm9uLWNvbW1lcmNpYWwgdXNlOwooaWkpIGRpc2N1c3NpbmcgdGhlIFNwZWNpZmljYXRpb24gd2l0aCBhbnkgdGhpcmQgcGFydHk7IGFuZCAKKGlpaSkgZXhjZXJwdGluZyBicmllZiBwb3J0aW9ucyBvZiB0aGUgU3BlY2lmaWNhdGlvbiBpbiBvcmFsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbnMgd2hpY2ggZGlzY3VzcyB0aGUgU3BlY2lmaWNhdGlvbiBwcm92aWRlZCB0aGF0IHN1Y2ggZXhjZXJwdHMgZG8gbm90IGluIHRoZSBhZ2dyZWdhdGUgY29uc3RpdHV0ZSBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgdGhlIFRlY2hub2xvZ3kuCgpcaXRlbSBEaXN0cmlidXRlIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgU3BlY2lmaWNhdGlvbiB0byB0aGlyZCBwYXJ0aWVzIGZvciB0aGVpciB0ZXN0aW5nIGFuZCBldmFsdWF0aW9uIHVzZSwgcHJvdmlkZWQgdGhhdCBhbnkgc3VjaCBpbXBsZW1lbnRhdGlvbjoKKGkpIGRvZXMgbm90IG1vZGlmeSwgc3Vic2V0LCBzdXBlcnNldCBvciBvdGhlcndpc2UgZXh0ZW5kIHRoZSBMaWNlbnNvciBOYW1lIFNwYWNlLCBvciBpbmNsdWRlIGFueSBwdWJsaWMgb3IgcHJvdGVjdGVkIHBhY2thZ2VzLCBjbGFzc2VzLCBKYXZhIGludGVyZmFjZXMsIGZpZWxkcyBvciBtZXRob2RzIHdpdGhpbiB0aGUgTGljZW5zb3IgTmFtZSBTcGFjZSBvdGhlciB0aGFuIHRob3NlIHJlcXVpcmVkL2F1dGhvcml6ZWQgYnkgdGhlIFNwZWNpZmljYXRpb24gb3IgU3BlY2lmaWNhdGlvbnMgYmVpbmcgaW1wbGVtZW50ZWQ7CihpaSkgaXMgY2xlYXJseSBhbmQgcHJvbWluZW50bHkgbWFya2VkIHdpdGggdGhlIHdvcmQgXGxxXGxxIFVOVEVTVEVEXHJxXHJxXCBvciBcbHFcbHEgRUFSTFkgQUNDRVNTXHJxXHJxXCBvciBcbHFcbHEgSU5DT01QQVRJQkxFXHJxXHJxXCAgb3IgXGxxXGxxIFVOU1RBQkxFXHJxXHJxXCBvciBcbHFcbHEgQkVUQVxycVxycVwgaW4gYW55IGxpc3Qgb2YgYXZhaWxhYmxlIGJ1aWxkcyBhbmQgaW4gcHJveGltaXR5IHRvIGV2ZXJ5IGxpbmsgaW5pdGlhdGluZyBpdHMgZG93bmxvYWQsIHdoZXJlIHRoZSBsaXN0IG9yIGxpbmsgaXMgdW5kZXIgTGljZW5zZWXVcyBjb250cm9sOyBhbmQKKGlpaSkgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBub3RpY2U6ClxscVxscSBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIGFuIGVhcmx5LWRyYWZ0IHNwZWNpZmljYXRpb24gZGV2ZWxvcGVkIHVuZGVyIHRoZSBKYXZhIENvbW11bml0eSBQcm9jZXNzIChKQ1ApIGFuZCBpcyBtYWRlIGF2YWlsYWJsZSBmb3IgdGVzdGluZyBhbmQgZXZhbHVhdGlvbiBwdXJwb3NlcyBvbmx5LiBUaGUgY29kZSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIGFueSBzcGVjaWZpY2F0aW9uIG9mIHRoZSBKQ1AuXHJxXHJxXApcZW5ke2VudW1lcmF0ZX0KClRoZSBncmFudCBzZXQgZm9ydGggYWJvdmUgY29uY2VybmluZyB5b3VyIGRpc3RyaWJ1dGlvbiBvZiBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIHNwZWNpZmljYXRpb24gaXMgY29udGluZ2VudCB1cG9uIHlvdXIgYWdyZWVtZW50IHRvIHRlcm1pbmF0ZSBkZXZlbG9wbWVudCBhbmQgZGlzdHJpYnV0aW9uIG9mIHlvdXIg0mVhcmx5IGRyYWZ00yBpbXBsZW1lbnRhdGlvbiBhcyBzb29uIGFzIGZlYXNpYmxlIGZvbGxvd2luZyBmaW5hbCBjb21wbGV0aW9uIG9mIHRoZSBzcGVjaWZpY2F0aW9uLiAgSWYgeW91IGZhaWwgdG8gZG8gc28sIHRoZSBmb3JlZ29pbmcgZ3JhbnQgc2hhbGwgYmUgY29uc2lkZXJlZCBudWxsIGFuZCB2b2lkLiAKIApObyBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgYmUgdW5kZXJzdG9vZCB0byByZXN0cmljdCB5b3VyIGFiaWxpdHkgdG8gbWFrZSBhbmQgZGlzdHJpYnV0ZSB0byB0aGlyZCBwYXJ0aWVzIGFwcGxpY2F0aW9ucyB3cml0dGVuIHRvIHRoZSBTcGVjaWZpY2F0aW9uLgpPdGhlciB0aGFuIHRoaXMgbGltaXRlZCBsaWNlbnNlLCB5b3UgYWNxdWlyZSBubyByaWdodCwgdGl0bGUgb3IgaW50ZXJlc3QgaW4gb3IgdG8gdGhlIFNwZWNpZmljYXRpb24gb3IgYW55IG90aGVyIFN1biBpbnRlbGxlY3R1YWwgcHJvcGVydHksIGFuZCB0aGUgU3BlY2lmaWNhdGlvbiBtYXkgb25seSBiZSB1c2VkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgbGljZW5zZSB0ZXJtcyBzZXQgZm9ydGggaGVyZWluLiBUaGlzIGxpY2Vuc2Ugd2lsbCBleHBpcmUgb24gdGhlIGVhcmxpZXIgb2Y6IChhKSB0d28gKDIpIHllYXJzIGZyb20gdGhlIGRhdGUgb2YgUmVsZWFzZSBsaXN0ZWQgYWJvdmU7IChiKSB0aGUgZGF0ZSBvbiB3aGljaCB0aGUgZmluYWwgdmVyc2lvbiBvZiB0aGUgU3BlY2lmaWNhdGlvbiBpcyBwdWJsaWNseSByZWxlYXNlZDsgb3IgKGMpIHRoZSBkYXRlIG9uIHdoaWNoIHRoZSBKYXZhIFNwZWNpZmljYXRpb24gUmVxdWVzdCAoSlNSKSB0byB3aGljaCB0aGUgU3BlY2lmaWNhdGlvbiBjb3JyZXNwb25kcyBpcyB3aXRoZHJhd24uICBJbiBhZGRpdGlvbiwgdGhpcyBsaWNlbnNlIHdpbGwgdGVybWluYXRlIGltbWVkaWF0ZWx5IHdpdGhvdXQgbm90aWNlIGZyb20gU3VuIGlmIHlvdSBmYWlsIHRvIGNvbXBseSB3aXRoIGFueSBwcm92aXNpb24gb2YgdGhpcyBsaWNlbnNlLiAgVXBvbiB0ZXJtaW5hdGlvbiwgeW91IG11c3QgY2Vhc2UgdXNlIG9mIG9yIGRlc3Ryb3kgdGhlIFNwZWNpZmljYXRpb24uCiAKXGxxXGxxIExpY2Vuc29yIE5hbWUgU3BhY2VccnFccnFcIG1lYW5zIHRoZSBwdWJsaWMgY2xhc3Mgb3IgaW50ZXJmYWNlIGRlY2xhcmF0aW9ucyB3aG9zZSBuYW1lcyBiZWdpbiB3aXRoIFxscVxscSBqYXZhXHJxXHJxXCAsIFxscVxscSBqYXZheFxycVxycVwgLCBcbHFcbHEgY29tLnN1blxycVxycVwgIG9yIHRoZWlyIGVxdWl2YWxlbnRzIGluIGFueSBzdWJzZXF1ZW50IG5hbWluZyBjb252ZW50aW9uIGFkb3B0ZWQgYnkgU3VuIHRocm91Z2ggdGhlIEphdmEgQ29tbXVuaXR5IFByb2Nlc3MsIG9yIGFueSByZWNvZ25pemVkIHN1Y2Nlc3NvcnMgb3IgcmVwbGFjZW1lbnRzIHRoZXJlb2YKCgp7XGJmc2VyaWVzIFRSQURFTUFSS1N9CgpObyByaWdodCwgdGl0bGUsIG9yIGludGVyZXN0IGluIG9yIHRvIGFueSB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciB0cmFkZSBuYW1lcyBvZiBTdW4gb3IgU3VuJ3MgbGljZW5zb3JzIGlzIGdyYW50ZWQgaGVyZXVuZGVyLiAgU3VuLCBTdW4gTWljcm9zeXN0ZW1zLCB0aGUgU3VuIGxvZ28sIEphdmEsICBhcmUgdHJhZGVtYXJrcyBvciByZWdpc3RlcmVkIHRyYWRlbWFya3Mgb2YgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBpbiB0aGUKVS5TLiBhbmQgb3RoZXIgY291bnRyaWVzLgoKe1xiZnNlcmllcyBESVNDTEFJTUVSIE9GIFdBUlJBTlRJRVN9CgpUSEUgU1BFQ0lGSUNBVElPTiBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBJUyBFWFBFUklNRU5UQUwgQU5EIE1BWSBDT05UQUlOIERFRkVDVFMgT1IgREVGSUNJRU5DSUVTIFdISUNIIENBTk5PVCBPUiBXSUxMIE5PVCBCRSBDT1JSRUNURUQgQlkgU1VOLiAgU1VOIE1BS0VTIE5PIFJFUFJFU0VOVEFUSU9OUyBPUiBXQVJSQU5USUVTLCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPLCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIE9SIE5PTi1JTkZSSU5HRU1FTlQgVEhBVCBUSEUgQ09OVEVOVFMgT0YgVEhFIFNQRUNJRklDQVRJT04gQVJFClNVSVRBQkxFIEZPUiBBTlkgUFVSUE9TRSBPUiBUSEFUIEFOWSBQUkFDVElDRSBPUiBJTVBMRU1FTlRBVElPTiBPRiBTVUNIIENPTlRFTlRTIFdJTEwgTk9UIElORlJJTkdFIEFOWSBUSElSRCBQQVJUWSBQQVRFTlRTLCBDT1BZUklHSFRTLCBUUkFERSBTRUNSRVRTIE9SIE9USEVSIFJJR0hUUy4gIFRoaXMgZG9jdW1lbnQgZG9lcyBub3QgcmVwcmVzZW50IGFueSBjb21taXRtZW50IHRvIHJlbGVhc2Ugb3IgaW1wbGVtZW50IGFueSBwb3J0aW9uIG9mIHRoZSBTcGVjaWZpY2F0aW9uIGluIGFueSBwcm9kdWN0LgoKVEhFIFNQRUNJRklDQVRJT04gQ09VTEQgSU5DTFVERSBURUNITklDQUwgSU5BQ0NVUkFDSUVTIE9SIFRZUE9HUkFQSElDQUwgRVJST1JTLiAgQ0hBTkdFUyBBUkUgUEVSSU9ESUNBTExZIEFEREVEIFRPIFRIRSBJTkZPUk1BVElPTiBUSEVSRUlOOyBUSEVTRSBDSEFOR0VTIFdJTEwgQkUgSU5DT1JQT1JBVEVEIElOVE8gTkVXIFZFUlNJT05TIE9GIFRIRSBTUEVDSUZJQ0FUSU9OLCBJRiBBTlkuICBTVU4gTUFZIE1BS0UgSU1QUk9WRU1FTlRTIEFORC9PUiBDSEFOR0VTIFRPIFRIRSBQUk9EVUNUKFMpIEFORC9PUiBUSEUgUFJPR1JBTShTKSBERVNDUklCRUQgSU4gVEhFIFNQRUNJRklDQVRJT04gQVQgQU5ZIFRJTUUuICBBbnkgdXNlIG9mIHN1Y2ggY2hhbmdlcyBpbiB0aGUgU3BlY2lmaWNhdGlvbiB3aWxsIGJlIGdvdmVybmVkIGJ5IHRoZSB0aGVuLWN1cnJlbnQgbGljZW5zZSBmb3IgdGhlIGFwcGxpY2FibGUgdmVyc2lvbiBvZiB0aGUgU3BlY2lmaWNhdGlvbi4KCntcYmZzZXJpZXMgTElNSVRBVElPTiBPRiBMSUFCSUxJVFl9CgpUTyBUSEUgRVhURU5UIE5PVCBQUk9ISUJJVEVEIEJZIExBVywgSU4gTk8gRVZFTlQgV0lMTCBTVU4gT1IgSVRTIExJQ0VOU09SUyBCRSBMSUFCTEUgRk9SIEFOWSBEQU1BR0VTLCBJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OLCBMT1NUIFJFVkVOVUUsIFBST0ZJVFMgT1IgREFUQSwgT1IgRk9SIFNQRUNJQUwsIElORElSRUNULCBDT05TRVFVRU5USUFMLCBJTkNJREVOVEFMIE9SIFBVTklUSVZFIERBTUFHRVMsIEhPV0VWRVIgQ0FVU0VEIEFORCBSRUdBUkRMRVNTIE9GIFRIRSBUSEVPUlkgT0YgTElBQklMSVRZLCBBUklTSU5HIE9VVCBPRiBPUiBSRUxBVEVEIFRPIEFOWSBGVVJOSVNISU5HLCBQUkFDVElDSU5HLCBNT0RJRllJTkcgT1IgQU5ZIFVTRSBPRiBUSEUgU1BFQ0lGSUNBVElPTiwgRVZFTiBJRiBTVU4gQU5EL09SIElUUyBMSUNFTlNPUlMgSEFWRSBCRUVOIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KCllvdSB3aWxsIGhvbGQgU3VuIChhbmQgaXRzIGxpY2Vuc29ycykgaGFybWxlc3MgZnJvbSBhbnkgY2xhaW1zIGJhc2VkIG9uIHlvdXIgdXNlIG9mIHRoZSBTcGVjaWZpY2F0aW9uIGZvciBhbnkgcHVycG9zZXMgb3RoZXIgdGhhbiB0aGUgbGltaXRlZCByaWdodCBvZiBldmFsdWF0aW9uIGFzIGRlc2NyaWJlZCBhYm92ZSwgYW5kIGZyb20gYW55IGNsYWltcyB0aGF0IGxhdGVyIHZlcnNpb25zIG9yIHJlbGVhc2VzIG9mIGFueSBTcGVjaWZpY2F0aW9uIGZ1cm5pc2hlZCB0byB5b3UgYXJlIGluY29tcGF0aWJsZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGlzIGxpY2Vuc2UuCgp7XGJmc2VyaWVzIFJFU1RSSUNURUQgUklHSFRTIExFR0VORH0KCklmIHRoaXMgU29mdHdhcmUgaXMgYmVpbmcgYWNxdWlyZWQgYnkgb3Igb24gYmVoYWxmIG9mIHRoZSBVLlMuIEdvdmVybm1lbnQgb3IgYnkgYSBVLlMuIEdvdmVybm1lbnQgcHJpbWUgY29udHJhY3RvciBvciBzdWJjb250cmFjdG9yIChhdCBhbnkgdGllciksIHRoZW4gdGhlIEdvdmVybm1lbnQncyByaWdodHMgaW4gdGhlIFNvZnR3YXJlIGFuZCBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbiBzaGFsbCBiZSBvbmx5IGFzIHNldCBmb3J0aCBpbiB0aGlzIGxpY2Vuc2U7IHRoaXMgaXMgaW4gYWNjb3JkYW5jZSB3aXRoIDQ4IEMuRi5SLiAyMjcuNzIwMSB0aHJvdWdoIDIyNy43MjAyLTQgKGZvciBEZXBhcnRtZW50IG9mIERlZmVuc2UgKERvRCkgYWNxdWlzaXRpb25zKSBhbmQgd2l0aCA0OCBDLkYuUi4gMi4xMDEgYW5kIDEyLjIxMiAoZm9yIG5vbi1Eb0QgYWNxdWlzaXRpb25zKS4KCntcYmZzZXJpZXMgUkVQT1JUfQoKWW91IG1heSB3aXNoIHRvIHJlcG9ydCBhbnkgYW1iaWd1aXRpZXMsIGluY29uc2lzdGVuY2llcyBvciBpbmFjY3VyYWNpZXMgeW91IG1heSBmaW5kIGluIGNvbm5lY3Rpb24gd2l0aCB5b3VyIGV2YWx1YXRpb24gb2YgdGhlIFNwZWNpZmljYXRpb24gKFxscVxscSBGZWVkYmFja1xycVxycSkuICBUbyB0aGUgZXh0ZW50IHRoYXQgeW91IHByb3ZpZGUgU3VuIHdpdGggYW55IEZlZWRiYWNrLCB5b3UgaGVyZWJ5OiAoaSkgYWdyZWUgdGhhdCBzdWNoIEZlZWRiYWNrIGlzIHByb3ZpZGVkIG9uIGEgbm9uLXByb3ByaWV0YXJ5IGFuZCBub24tY29uZmlkZW50aWFsIGJhc2lzLCBhbmQgKGlpKSBncmFudCBTdW4gYSBwZXJwZXR1YWwsIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgZnVsbHkgcGFpZC11cCwgaXJyZXZvY2FibGUgbGljZW5zZSwgd2l0aCB0aGUgcmlnaHQgdG8gc3VibGljZW5zZSB0aHJvdWdoIG11bHRpcGxlIGxldmVscyBvZiBzdWJsaWNlbnNlZXMsIHRvIGluY29ycG9yYXRlLCBkaXNjbG9zZSwgYW5kIHVzZSB3aXRob3V0IGxpbWl0YXRpb24gdGhlIEZlZWRiYWNrIGZvciBhbnkgcHVycG9zZSByZWxhdGVkIHRvIHRoZSBTcGVjaWZpY2F0aW9uIGFuZCBmdXR1cmUgdmVyc2lvbnMsIGltcGxlbWVudGF0aW9ucywgYW5kIHRlc3Qgc3VpdGVzIHRoZXJlb2YuCgp7XGJmc2VyaWVzIEdFTkVSQUwgVEVSTVN9CgpBbnkgYWN0aW9uIHJlbGF0ZWQgdG8gdGhpcyBBZ3JlZW1lbnQgd2lsbCBiZSBnb3Zlcm5lZCBieSBDYWxpZm9ybmlhIGxhdyBhbmQgY29udHJvbGxpbmcgVS5TLiBmZWRlcmFsIGxhdy4gVGhlIFUuTi4gQ29udmVudGlvbiBmb3IgdGhlIEludGVybmF0aW9uYWwgU2FsZSBvZiBHb29kcyBhbmQgdGhlIGNob2ljZSBvZiBsYXcgcnVsZXMgb2YgYW55IGp1cmlzZGljdGlvbiB3aWxsIG5vdCBhcHBseS4KClRoZSBTcGVjaWZpY2F0aW9uIGlzIHN1YmplY3QgdG8gVS5TLiBleHBvcnQgY29udHJvbCBsYXdzIGFuZCBtYXkgYmUgc3ViamVjdCB0byBleHBvcnQgb3IgaW1wb3J0IHJlZ3VsYXRpb25zIGluIG90aGVyIGNvdW50cmllcy4gTGljZW5zZWUgYWdyZWVzIHRvIGNvbXBseSBzdHJpY3RseSB3aXRoIGFsbCBzdWNoIGxhd3MgYW5kIHJlZ3VsYXRpb25zIGFuZCBhY2tub3dsZWRnZXMgdGhhdCBpdCBoYXMgdGhlIHJlc3BvbnNpYmlsaXR5IHRvIG9idGFpbiBzdWNoIGxpY2Vuc2VzIHRvIGV4cG9ydCwgcmUtZXhwb3J0IG9yIGltcG9ydCBhcyBtYXkgYmUgcmVxdWlyZWQgYWZ0ZXIgZGVsaXZlcnkgdG8gTGljZW5zZWUuCgpUaGlzIEFncmVlbWVudCBpcyB0aGUgcGFydGllcycgZW50aXJlIGFncmVlbWVudCByZWxhdGluZyB0byBpdHMgc3ViamVjdCBtYXR0ZXIuIEl0IHN1cGVyc2VkZXMgYWxsIHByaW9yIG9yIGNvbnRlbXBvcmFuZW91cyBvcmFsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbnMsIHByb3Bvc2FscywgY29uZGl0aW9ucywgcmVwcmVzZW50YXRpb25zIGFuZCB3YXJyYW50aWVzIGFuZCBwcmV2YWlscyBvdmVyIGFueSBjb25mbGljdGluZyBvciBhZGRpdGlvbmFsIHRlcm1zIG9mIGFueSBxdW90ZSwgb3JkZXIsIGFja25vd2xlZGdtZW50LCBvciBvdGhlciBjb21tdW5pY2F0aW9uIGJldHdlZW4gdGhlIHBhcnRpZXMgcmVsYXRpbmcgdG8gaXRzIHN1YmplY3QgbWF0dGVyIGR1cmluZyB0aGUgdGVybSBvZiB0aGlzIEFncmVlbWVudC4gTm8gbW9kaWZpY2F0aW9uIHRvIHRoaXMgQWdyZWVtZW50IHdpbGwgYmUgYmluZGluZywgdW5sZXNzIGluIHdyaXRpbmcgYW5kIHNpZ25lZCBieSBhbiBhdXRob3JpemVkIHJlcHJlc2VudGF0aXZlIG9mIGVhY2ggcGFydHkuClxlbmR7Zmx1c2hsZWZ0fQ==