VGV4dCBmaWxlIGZvciB0aGUgTGludXggU3lzS29ubmVjdCBUb2tlbiBSaW5nIElTQS9QQ0kgQWRhcHRlciBEcml2ZXIuCglUZXh0IGZpbGUgYnk6IEpheSBTY2h1bGlzdCA8anNjaGxzdEBzYW1iYS5vcmc+CgpUaGUgTGludXggU3lzS29ubmVjdCBUb2tlbiBSaW5nIGRyaXZlciB3b3JrcyB3aXRoIHRoZSBTeXNLb25uZWN0IFRSNC8xNigrKSBJU0EsClN5c0tvbm5lY3QgVFI0LzE2KCspIFBDSSwgU3lzS29ubmVjdCBUUjQvMTYgUENJLCBhbmQgb2xkZXIgcmV2aXNpb25zIG9mIHRoZQpTSyBORVQgVFI0LzE2IElTQSBjYXJkLgoKTGF0ZXN0IGluZm9ybWF0aW9uIG9uIHRoaXMgZHJpdmVyIGNhbiBiZSBvYnRhaW5lZCBvbiB0aGUgTGludXgtU05BIFdXVyBzaXRlLgpQbGVhc2UgcG9pbnQgeW91ciBicm93c2VyIHRvOiAKaHR0cDovL3d3dy5saW51eC1zbmEub3JnCgpNYW55IHRoYW5rcyB0byBDaHJpc3RvcGggR29vcyBmb3IgaGlzIGV4Y2VsbGVudCB3b3JrIG9uIHRoaXMgZHJpdmVyIGFuZApTeXNLb25uZWN0IGZvciBkb25hdGluZyB0aGUgYWRhcHRlcnMgdG8gTGludXgtU05BIGZvciB0aGUgdGVzdGluZyBhbmQgCm1haW50ZW5hbmNlIG9mIHRoaXMgZGV2aWNlIGRyaXZlci4KCkltcG9ydGFudCBpbmZvcm1hdGlvbiB0byBiZSBub3RlZDoKMS4gQWRhcHRlcnMgY2FuIGJlIHNsb3cgdG8gb3BlbiAofjIwIHNlY3MpIGFuZCBjbG9zZSAofjUgc2VjcyksIHBsZWFzZSBiZSAKICAgcGF0aWVudC4KMi4gVGhpcyBkcml2ZXIgd29ya3MgdmVyeSB3ZWxsIHdoZW4gYXV0b3Byb2JpbmcgZm9yIGFkYXB0ZXJzLiBXaHkgZXZlbiAKICAgdGhpbmsgYWJvdXQgdGhvc2UgbmFzdHkgaW8vaW50L2RtYSBzZXR0aW5ncyBvZiBtb2Rwcm9iZSB3aGVuIHRoZSBkcml2ZXIgCiAgIHdpbGwgZG8gaXQgYWxsIGZvciB5b3UhCgpUaGlzIGRyaXZlciBpcyByYXRoZXIgc2ltcGxlIHRvIHVzZS4gU2VsZWN0IFkgdG8gVG9rZW4gUmluZyBhZGFwdGVyIHN1cHBvcnQKaW4gdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uLiBBIGNob2ljZSBmb3IgU3lzS29ubmVjdCBUb2tlbiBSaW5nIGFkYXB0ZXJzIHdpbGwKYXBwZWFyLiBUaGlzIGRyaXZlcyBzdXBwb3J0cyBhbGwgU3lzS29ubmVjdCBJU0EgYW5kIFBDSSBhZGFwdGVycy4gQ2hvb3NlIHRoaXMKb3B0aW9uLiBJIHBlcnNvbmFsbHkgcmVjb21tZW5kIGNvbXBpbGluZyB0aGUgZHJpdmVyIGFzIGEgbW9kdWxlIChNKSwgYnV0IGlmIHlvdQp5b3Ugd291bGQgbGlrZSB0byBjb21waWxlIGl0IHN0YXRpY2FsbHkgYW5zd2VyIFkgaW5zdGVhZC4KClRoaXMgZHJpdmVyIHN1cHBvcnRzIG11bHRpcGxlIGFkYXB0ZXJzIHdpdGhvdXQgdGhlIG5lZWQgdG8gbG9hZCBtdWx0aXBsZSBjb3BpZXMKb2YgdGhlIGRyaXZlci4gWW91IHNob3VsZCBiZSBhYmxlIHRvIGxvYWQgdXAgdG8gNyBhZGFwdGVycyB3aXRob3V0IGFueSBrZXJuZWwKbW9kaWZpY2F0aW9ucywgaWYgeW91IGFyZSBpbiBuZWVkIG9mIG1vcmUgcGxlYXNlIGNvbnRhY3QgdGhlIG1haW50YWluZXIgb2YgdGhpcwpkcml2ZXIuCgpMb2FkIHRoZSBkcml2ZXIgZWl0aGVyIGJ5IGxpbG8vbG9hZGxpbiBvciBhcyBhIG1vZHVsZS4gV2hlbiBhIG1vZHVsZSB1c2luZyB0aGUKZm9sbG93aW5nIGNvbW1hbmQgd2lsbCBzdWZmaWNlIGZvciBtb3N0OgoKIyBtb2Rwcm9iZSBza3RyCgpUaGlzIHdpbGwgcHJvZHVjZSBvdXRwdXQgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOiAoT3V0cHV0IGlzIHVzZXIgc3BlY2lmaWMpCgpza3RyLmM6IHYxLjAxIDA4LzI5Lzk3IGJ5IENocmlzdG9waCBHb29zCnRyMDogU0sgTkVUIFRSIDQvMTYgUENJIGZvdW5kIGF0IDB4NjEwMCwgdXNpbmcgSVJRIDE3Lgp0cjE6IFNLIE5FVCBUUiA0LzE2IFBDSSBmb3VuZCBhdCAweDYyMDAsIHVzaW5nIElSUSAxNi4KdHIyOiBTSyBORVQgVFIgNC8xNiBJU0EgZm91bmQgYXQgMHhhMjAsIHVzaW5nIElSUSAxMCBhbmQgRE1BIDUuCgpOb3cganVzdCBzZXR1cCB0aGUgZGV2aWNlIHZpYSBpZmNvbmZpZyBhbmQgc2V0IGFuZCByb3V0ZXMgeW91IG1heSBoYXZlLiBBZnRlcgp0aGlzIHlvdSBhcmUgcmVhZHkgdG8gc3RhcnQgc2VuZGluZyBzb21lIHRva2Vucy4KCkVycmF0YToKRm9yIGFueW9uZSB3b25kZXJpbmcgd2hlcmUgdG8gcGljayB1cCB0aGUgU3lzS29ubmVjdCBhZGFwdGVycyBwbGVhc2UgYnJvd3NlCnRvIGh0dHA6Ly93d3cuc3lza29ubmVjdC5jb20KClRoaXMgZHJpdmVyIGlzIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gSXRzIEZpcm13YXJlIGltYWdlIGlzIAppbmNsdWRlZCBhcyBhbiBpbml0aWFsaXplZCBDLWFycmF5IGFuZCBpcyBsaWNlbnNlZCBieSBTeXNLb25uZWN0IHRvIHRoZSBMaW51eCAKdXNlcnMgb2YgdGhpcyBkcml2ZXIuIEhvd2V2ZXIgbm8gd2FycmFudHkgYWJvdXQgaXRzIGZpdG5lc3MgaXMgZXhwcmVzc2VkIG9yIAppbXBsaWVkIGJ5IFN5c0tvbm5lY3QuCgpCZWxvdyBmaW5kIGF0dGFjaGVkIHRoZSBzZXR0aW5nIGZvciB0aGUgU0sgTkVUIFRSIDQvMTYgSVNBIGFkYXB0ZXJzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICAgICAgICAgICAgICAgICAgKioqICAgQyBPIE4gVCBFIE4gVCBTICAgKioqCiAgICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqCgogICAgICAgICAgICAgICAgMSkgTG9jYXRpb24gb2YgRElQLVN3aXRjaCBXMQogICAgICAgICAgICAgICAgMikgRGVmYXVsdCBzZXR0aW5ncwogICAgICAgICAgICAgICAgMykgRElQLVN3aXRjaCBXMSBkZXNjcmlwdGlvbgoKCiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICBDSEFQVEVSIDEgICAgIExPQ0FUSU9OIE9GIERJUC1TV0lUQ0gKICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKVcTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExL8K/lXExMTExMS/ICAgICAgICAgICAgICAgICAgICAgICAgIFXExMTExL8gICAgICAgICAgICBVxMTEvyAgICAgICAgIP4K/kHExMTExMRVICAgICAgICAgICAgICAgICAgICAgIFcxIEHExMTExFUgICAgIFXExMTEvyD+ICAg/iAgICAgICAgIP4K/lXExMTExMS/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIP4gICAg/iD+ICAg/iAgICAgIFXExMW/Cv5BxMTExMTEVSAgICAgICAgICAgICAgVcTExMTExMTExMTEvyAgICAgICAgICBBxMTExFUg/iAgIP4gICAgICD+ICD+/gr+VcTExMTExL8gICAgICAgICAgICAgIP4gICAgICAgICAgIP4gICAgICAgICAgVcTExL8gIEHExMRVICAgICAgQcTExVUK/kHExMTExMRVICAgICAgICAgICAgICD+IFRNUzM4MEMyNiD+ICAgICAgICAgIP4gICD+ICAgICAgICAgICAgICAgIP4K/lXExMTExMS/ICAgICAgICAgICAgICD+ICAgICAgICAgICD+ICAgICAgICAgIEHExMRVICAgICAgICAgICAgICAgIEHEvwr+QcTExMTExFUgICAgICAgICAgICAgIP4gICAgICAgICAgIP4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg/iD+Cv4gICAgICAgICAgICAgICAgICAgICAgQcTExMTExMTExMTEVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICD+IP4K/iAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIP4g/gr+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQcRVCv4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICD+Cv4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICD+Cv4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICD+Cv4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICD+CkHExMTExMTExMTExMRBxMTExMTExMTExMTExMTExEHExEHExMTExMTExMTExMTExMTExMTExMTExEHExMTExMTExMRVCiAgICAgICAgICAgICBBxMTExMTExMTExMTExMTExFUgIEHExMTExMTExMTExMTExMTExMTExMTExFUKCiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICBDSEFQVEVSIDIgICAgIERFRkFVTFQgU0VUVElOR1MKICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICAgIFcxICAgIDEgIDIgIDMgIDQgIDUgIDYgIDcgIDgKICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgICAgIHwgT04gICAgWCAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICAgfCBPRkYgICAgICBYICBYICBYICBYICBYICBYICBYIHwKICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwoKICAgICAgICBXMS4xID0gT04gICAgICAgICAgICAgICBBZGFwdGVyIGRyaXZlcyBhZGRyZXNzIGxpbmVzIFNBMTcuLjE5CiAgICAgICAgVzEuMiAtIDEuNSA9IE9GRiAgICAgICAgQm9vdFJPTSBkaXNhYmxlZAogICAgICAgIFcxLjYgLSAxLjggPSBPRkYgICAgICAgIEkvTyBhZGRyZXNzIDBBMjBoCgogID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgQ0hBUFRFUiAzICAgICBESVAgU1dJVENIIFcxIERFU0NSSVBUSU9OCiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgIFXExMRBxMTEQcTExEHExMRBxMTEQcTExEHExMRBxMTEvyAgT04KICAgICAg/iAxIP4gMiD+IDMg/iA0IP4gNSD+IDYg/iA3IP4gOCD+CiAgICAgIEHExMRBxMTEQcTExEHExMRBxMTEQcTExEHExMRBxMTEVSAgT0ZGCiAgICAgIHxBRCB8IEJvb3RST00gQWRkci4gfCAgSS9PICAgICAgfAogICAgICArLSstKy0tLS0tLS0rLS0tLS0tLSstLS0tLSstLS0tLSsKICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICB8CiAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgKy0tLS0tLSA2ICAgICA3ICAgICA4CiAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICBPTiAgICBPTiAgICBPTiAgICAgICAxOTAwaAogICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgT04gICAgT04gICAgT0ZGICAgICAgMDkwMGgKICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIE9OICAgIE9GRiAgIE9OICAgICAgIDE5ODBoCiAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICBPTiAgICBPRkYgICBPRkYgICAgICAwOTgwaAogICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgT0ZGICAgT04gICAgT04gICAgICAgMWIyMGgKICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIE9GRiAgIE9OICAgIE9GRiAgICAgIDBiMjBoCiAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICBPRkYgICBPRkYgICBPTiAgICAgICAxYTIwaAogICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgT0ZGICAgT0ZGICAgT0ZGICAgICAgMGEyMGggICAgKCspCiAgICAgICAgfCAgICAgICAgIHwKICAgICAgICB8ICAgICAgICAgfAogICAgICAgIHwgICAgICAgICArLS0tLS0tLS0gMiAgICAgMyAgICAgNCAgICAgNQogICAgICAgIHwgICAgICAgICAgICAgICAgICAgT0ZGICAgeCAgICAgeCAgICAgeCAgICAgICBkaXNhYmxlZCAgKCspCiAgICAgICAgfCAgICAgICAgICAgICAgICAgICBPTiAgICBPTiAgICBPTiAgICBPTiAgICAgIEMwMDAwCiAgICAgICAgfCAgICAgICAgICAgICAgICAgICBPTiAgICBPTiAgICBPTiAgICBPRkYgICAgIEM0MDAwCiAgICAgICAgfCAgICAgICAgICAgICAgICAgICBPTiAgICBPTiAgICBPRkYgICBPTiAgICAgIEM4MDAwCiAgICAgICAgfCAgICAgICAgICAgICAgICAgICBPTiAgICBPTiAgICBPRkYgICBPRkYgICAgIENDMDAwCiAgICAgICAgfCAgICAgICAgICAgICAgICAgICBPTiAgICBPRkYgICBPTiAgICBPTiAgICAgIEQwMDAwCiAgICAgICAgfCAgICAgICAgICAgICAgICAgICBPTiAgICBPRkYgICBPTiAgICBPRkYgICAgIEQ0MDAwCiAgICAgICAgfCAgICAgICAgICAgICAgICAgICBPTiAgICBPRkYgICBPRkYgICBPTiAgICAgIEQ4MDAwCiAgICAgICAgfCAgICAgICAgICAgICAgICAgICBPTiAgICBPRkYgICBPRkYgICBPRkYgICAgIERDMDAwCiAgICAgICAgfAogICAgICAgIHwKICAgICAgICArLS0tLS0gMQogICAgICAgICAgICAgICBPRkYgICAgYWRhcHRlciBkb2VzIE5PVCBkcml2ZSBTQTwxNy4uMTk+CiAgICAgICAgICAgICAgIE9OICAgICBhZGFwdGVyIGRyaXZlcyBTQTwxNy4uMTk+ICAoKykKCgogICAgICAgICgrKSBtZWFucyBkZWZhdWx0IHNldHRpbmcKCiAgICAgICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK