XGNoYXB0ZXJ7SW5zdGFsbGluZyBFcHNpbG9ufQ0KXGxhYmVse2NocDpJbnN0YWxsaW5nRXBzaWxvbn0NCg0KVGhlcmUgYXJlIHR3byBvcHRpb25zIGZvciBpbnN0YWxsaW5nIEVwc2lsb24uIFRocm91Z2ggdGhlIEVjbGlwc2UgVXBkYXRlIE1hbmFnZXIgb3IgYnkgY2hlY2tpbmcgb3V0IHRoZSBzb3VyY2UgY29kZSBmcm9tIHRoZSBFY2xpcHNlIFNWTiBhbmQgKGlmIHlvdSdkIGxpa2UgdG8gcGxheSB3aXRoIGV4cGVyaW1lbnRhbCBzdHVmZikgRXBzaWxvbkxhYnMgU1ZOIHNlcnZlcnMuIFRoaXMgY2hhcHRlciBwcm92aWRlcyBkZXRhaWxlZCBpbnN0cnVjdGlvbnMgZm9yIGJvdGggaW5zdGFsbGF0aW9uIG9wdGlvbnMuDQoNClxzZWN0aW9ue1ByZXJlcXVpc2l0ZXN9DQoNCllvdSBmaXJzdCBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBzb2Z0d2FyZSBiZWZvcmUgeW91IGNhbiBpbnN0YWxsIEVwc2lsb24uDQoNClxiZWdpbntlbnVtZXJhdGV9DQoJXGl0ZW0gSmF2YSAxLjUgKG9yIGxhdGVyKQ0KCVxpdGVtIEVjbGlwc2UgMy4zIChvciBsYXRlcikNCglcaXRlbSBFTUYgMi4zIChvciBsYXRlcikgDQoJXGl0ZW0gR01GIDIuMCAob3IgbGF0ZXIpIChvcHRpb25hbCkNCglcaXRlbSBFbWZhdGljIChvcHRpb25hbCkgKHJlY29tbWVuZGVkKQ0KXGVuZHtlbnVtZXJhdGV9DQoNClRoZSBKYXZhIHJ1bnRpbWUgY2FuIGJlIGRvd25sb2FkZWQgZnJvbSBcdXJse2h0dHA6Ly9qYXZhLnN1bi5jb219LiBUaGUgZWFzaWVzdCB3YXkgdG8gZG93bmxvYWQgRWNsaXBzZSwgRU1GIGFuZCBHTUYgdG9nZXRoZXIgaXMgdGhlIEVjbGlwc2UgR2FueW1lZGUgTW9kZWxpbmcgZGlzdHJpYnV0aW9uIFx1cmx7aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9kb3dubG9hZHMvcGFja2FnZXMvZWNsaXBzZS1tb2RlbGluZy10b29scy1pbmNsdWRlcy1pbmN1YmF0aW5nLWNvbXBvbmVudHMvZ2FueW1lZGVyfS4NCg0KRW1mYXRpYyBpcyBhIHRleHR1YWwgbm90YXRpb24gZm9yIHNwZWNpZnlpbmcgRUNvcmUgbWV0YW1vZGVscy4gSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgeW91IGluc3RhbGwgaXQgYXMgYWxsIHRoZSBleGVtcGxhciBtZXRhbW9kZWxzIGluIHRoaXMgYm9vayB3aWxsIGJlIHByb2dyZXNzaXZlbHkgc3BlY2lmaWVkIHVzaW5nIGl0IChhcyBvcHBvc2VkIHRvIHVzaW5nIFVNTC1saWtlIGRpYWdyYW1zKS4gRW1mYXRpYyBjYW4gYmUgaW5zdGFsbGVkIHVzaW5nIHRoZSBFY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyIChhIGRldGFpbGVkIGRlc2NyaXB0aW9uIGZvbGxvd3MpIHVzaW5nIHRoZSB1cGRhdGUgc2l0ZSA6IFx1cmx7aHR0cDovL2Vwc2lsb25sYWJzLnN2bi5zb3VyY2Vmb3JnZS5uZXQvc3Zucm9vdC9lcHNpbG9ubGFicy9vcmcuZWNsaXBzZS5lbWYuZW1mYXRpYy51cGRhdGVzaXRlL30NCg0KXHNlY3Rpb257SW5zdGFsbGluZyB1c2luZyB0aGUgRWNsaXBzZSBVcGRhdGUgTWFuYWdlci9QMn0NCg0KVG8gaW5zdGFsbCBFcHNpbG9uIHVzaW5nIHRoZSBFY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyIHBsZWFzZSBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBiZWxvdzoNCg0KXGJlZ2lue2VudW1lcmF0ZX0NCglcaXRlbSBHbyB0byBIZWxwLT5Tb2Z0d2FyZSBVcGRhdGVzDQogCVxpdGVtIEluIHRoZSBkaWFsb2cgdGhhdCBwb3BzIHVwIHByZXNzIEFkZCBTaXRlhQ0KCVxpdGVtIEluIHRoZSBkaWFsb2cgdGhhdCBwb3BzIHVwIGVudGVyICBcdXJse2h0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9tb2RlbGluZy9lcHNpbG9uL3VwZGF0ZXN9IGluIHRoZSBVUkwgZmllbGQuDQoJXHN1Yml0ZW0gSW4gYWRkaXRpb24gdG8gdGhlIG1haW4gdXBkYXRlIHNpdGUgYWJvdmUsIHRoZXJlIGlzIGFsc28gYW4gaW50ZXJpbSBzaXRlIHdoaWNoIGhvc3RzIHRoZSBjdXJyZW50IChidXQgcG90ZW50aWFsbHkgdW5zdGFibGUpIHZlcnNpb24gb2YgRXBzaWxvbjogXHVybHtodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvbW9kZWxpbmcvZXBzaWxvbi9pbnRlcmltfQ0KCVxpdGVtIFByZXNzIE9LDQoJXGl0ZW0gSW4gdGhlIG5leHQgc2NyZWVuIHNlbGVjdCBFcHNpbG9uIGFuZCBwcmVzcyBOZXh0DQoJXHN1Yml0ZW0gSWYgeW91IGRvbid0IGhhdmUgR01GIGluc3RhbGxlZCwgZXhwYW5kIHRoZSBFcHNpbG9uIG5vZGUgYW5kIGRlc2VsZWN0IHRoZSBFcHNpbG9uIEdNRiBTdXBwb3J0IGZlYXR1cmUNCglcaXRlbSBSZXZpZXcgdGhlIEZlYXR1cmUgTGljZW5jZSBhbmQgaWYgeW91IGFncmVlIHNlbGVjdCB0aGUgSSBhY2NlcHQgdGhlIHRlcm1zIGluIHRoZSBsaWNlbmNlIGFncmVlbWVudCBhbmQgcHJlc3MgTmV4dA0KCVxpdGVtIFByZXNzIEZpbmlzaA0KCVxpdGVtIEVjbGlwc2UgcHJvbXB0cyBmb3IgYSByZXN0YXJ0LiBQcmVzcyBZZXMNClxlbmR7ZW51bWVyYXRlfQ0KDQpcc2VjdGlvbntDaGVja2luZyBvdXQgdGhlIFNvdXJjZSBDb2RlIGZyb20gQ1ZTL1NWTn0NCg0KXGJlZ2lue2VudW1lcmF0ZX0NCglcaXRlbSBTd2l0Y2ggdG8gdGhlIFNWTiBSZXBvc2l0b3J5IEV4cGxvcmluZyBwZXJzcGVjdGl2ZSAoZnJvbSB0aGUgV2luZG93JFxyaWdodGFycm93JE9wZW4gUGVyc3BlY3RpdmUkXHJpZ2h0YXJyb3ckT3RoZXIgbWVudSkNCglcaXRlbSBDbGljayB0aGUgTmV3IFJlcG9zaXRvcnkgTG9jYXRpb24gYnV0dG9uIG9uIHRoZSBTVk4gUmVwb3NpdG9yaWVzIHZpZXcgYW5kIGVudGVyIHRoZSBmb2xsb3dpbmcgY29uZmlndXJhdGlvbiBkZXRhaWxzDQoJXHN1Yml0ZW0gVVJMIDogaHR0cDovL2Rldi5lY2xpcHNlLm9yZy9zdm5yb290L21vZGVsaW5nL29yZy5lY2xpcHNlLmdtdC5lcHNpbG9uLw0KCVxzdWJpdGVtIFVzZXIgOiBhbm9ueW1vdXMNCglcc3ViaXRlbSBQYXNzd29yZCA6IGxlYXZlIGVtcHR5DQoJXGl0ZW0gT3BlbiB0aGUgdHJ1bmsgbm9kZQ0KCVxpdGVtICBTZWxlY3QgdGhlIHN1Yi1mb2xkZXJzIG9mIHBsdWdpbnMgYW5kIGZlYXR1cmVzLCByaWdodC1jbGljayBhbmQgY2hlY2sgdGhlbSBvdXQuDQpcZW5ke2VudW1lcmF0ZX0NCg0KXHNlY3Rpb257V2hpY2ggT3B0aW9uIFNob3VsZCBJIFVzZT99DQoNCkJ5IGNoZWNraW5nIG91dCB0aGUgc291cmNlIGNvZGUsIHlvdSB3aWxsIGJlIGFibGUgdG8gcGljayB1cCB0aGUgbGF0ZXN0IHVwZGF0ZXMgYW5kIGJ1Zy1maXhlcyBhcyBzb29uIGFzIHRoZXkgYXJlIGNvbW1pdHRlZCB0byB0aGUgU1ZOLiBUaGUgZG93bnNpZGUgaXMgdGhhdCB5b3UgdGhlbiBoYXZlIHRvIGxhdW5jaCBhIG5ldyBFY2xpcHNlIHdvcmtiZW5jaCB3aGVyZSBFcHNpbG9uIHdpbGwgYmUgYXZhaWxhYmxlLiBPbiB0aGUgb3RoZXIgaGFuZCwgaXQgaXMgZWFzaWVyIHRvIGluc3RhbGwgdXNpbmcgdGhlIFVwZGF0ZSBNYW5hZ2VyIGFuZCB5b3UgZG9uJ3QgbmVlZCB0byBsYXVuY2ggYSBuZXcgd29ya2JlbmNoIGV2ZXJ5IHRpbWUsIGJ1dCB5b3UnbGwgaGF2ZSB0byB3YWl0IGZvciB0aGUgbmV4dCBiaW5hcnkgcmVsZWFzZSB0byBnZXQgdGhlIGxhdGVzdCBmZWF0dXJlcy4=