VGV4dCBmaWxlIGZvciB0aGUgTGludXggU3lzS29ubmVjdCBUb2tlbiBSaW5nIElTQS9QQ0kgQWRhcHRlciBEcml2ZXIuCglUZXh0IGZpbGUgYnk6IEpheSBTY2h1bGlzdCA8anNjaGxzdEBzYW1iYS5vcmc+CgpUaGUgTGludXggU3lzS29ubmVjdCBUb2tlbiBSaW5nIGRyaXZlciB3b3JrcyB3aXRoIHRoZSBTeXNLb25uZWN0IFRSNC8xNigrKSBJU0EsClN5c0tvbm5lY3QgVFI0LzE2KCspIFBDSSwgU3lzS29ubmVjdCBUUjQvMTYgUENJLCBhbmQgb2xkZXIgcmV2aXNpb25zIG9mIHRoZQpTSyBORVQgVFI0LzE2IElTQSBjYXJkLgoKTGF0ZXN0IGluZm9ybWF0aW9uIG9uIHRoaXMgZHJpdmVyIGNhbiBiZSBvYnRhaW5lZCBvbiB0aGUgTGludXgtU05BIFdXVyBzaXRlLgpQbGVhc2UgcG9pbnQgeW91ciBicm93c2VyIHRvOiAKaHR0cDovL3d3dy5saW51eC1zbmEub3JnCgpNYW55IHRoYW5rcyB0byBDaHJpc3RvcGggR29vcyBmb3IgaGlzIGV4Y2VsbGVudCB3b3JrIG9uIHRoaXMgZHJpdmVyIGFuZApTeXNLb25uZWN0IGZvciBkb25hdGluZyB0aGUgYWRhcHRlcnMgdG8gTGludXgtU05BIGZvciB0aGUgdGVzdGluZyBhbmQgCm1haW50ZW5hbmNlIG9mIHRoaXMgZGV2aWNlIGRyaXZlci4KCkltcG9ydGFudCBpbmZvcm1hdGlvbiB0byBiZSBub3RlZDoKMS4gQWRhcHRlcnMgY2FuIGJlIHNsb3cgdG8gb3BlbiAofjIwIHNlY3MpIGFuZCBjbG9zZSAofjUgc2VjcyksIHBsZWFzZSBiZSAKICAgcGF0aWVudC4KMi4gVGhpcyBkcml2ZXIgd29ya3MgdmVyeSB3ZWxsIHdoZW4gYXV0b3Byb2JpbmcgZm9yIGFkYXB0ZXJzLiBXaHkgZXZlbiAKICAgdGhpbmsgYWJvdXQgdGhvc2UgbmFzdHkgaW8vaW50L2RtYSBzZXR0aW5ncyBvZiBtb2Rwcm9iZSB3aGVuIHRoZSBkcml2ZXIgCiAgIHdpbGwgZG8gaXQgYWxsIGZvciB5b3UhCgpUaGlzIGRyaXZlciBpcyByYXRoZXIgc2ltcGxlIHRvIHVzZS4gU2VsZWN0IFkgdG8gVG9rZW4gUmluZyBhZGFwdGVyIHN1cHBvcnQKaW4gdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uLiBBIGNob2ljZSBmb3IgU3lzS29ubmVjdCBUb2tlbiBSaW5nIGFkYXB0ZXJzIHdpbGwKYXBwZWFyLiBUaGlzIGRyaXZlcyBzdXBwb3J0cyBhbGwgU3lzS29ubmVjdCBJU0EgYW5kIFBDSSBhZGFwdGVycy4gQ2hvb3NlIHRoaXMKb3B0aW9uLiBJIHBlcnNvbmFsbHkgcmVjb21tZW5kIGNvbXBpbGluZyB0aGUgZHJpdmVyIGFzIGEgbW9kdWxlIChNKSwgYnV0IGlmIHlvdQp5b3Ugd291bGQgbGlrZSB0byBjb21waWxlIGl0IHN0YXRpY2x5IGFuc3dlciBZIGluc3RlYWQuCgpUaGlzIGRyaXZlciBzdXBwb3J0cyBtdWx0aXBsZSBhZGFwdGVycyB3aXRob3V0IHRoZSBuZWVkIHRvIGxvYWQgbXVsdGlwbGUgY29waWVzCm9mIHRoZSBkcml2ZXIuIFlvdSBzaG91bGQgYmUgYWJsZSB0byBsb2FkIHVwIHRvIDcgYWRhcHRlcnMgd2l0aG91dCBhbnkga2VybmVsCm1vZGlmaWNhdGlvbnMsIGlmIHlvdSBhcmUgaW4gbmVlZCBvZiBtb3JlIHBsZWFzZSBjb250YWN0IHRoZSBtYWludGFpbmVyIG9mIHRoaXMKZHJpdmVyLgoKTG9hZCB0aGUgZHJpdmVyIGVpdGhlciBieSBsaWxvL2xvYWRsaW4gb3IgYXMgYSBtb2R1bGUuIFdoZW4gYSBtb2R1bGUgdXNpbmcgdGhlCmZvbGxvd2luZyBjb21tYW5kIHdpbGwgc3VmZmljZSBmb3IgbW9zdDoKCiMgbW9kcHJvYmUgc2t0cgoKVGhpcyB3aWxsIHByb2R1Y2Ugb3V0cHV0IHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzogKE91dHB1dCBpcyB1c2VyIHNwZWNpZmljKQoKc2t0ci5jOiB2MS4wMSAwOC8yOS85NyBieSBDaHJpc3RvcGggR29vcwp0cjA6IFNLIE5FVCBUUiA0LzE2IFBDSSBmb3VuZCBhdCAweDYxMDAsIHVzaW5nIElSUSAxNy4KdHIxOiBTSyBORVQgVFIgNC8xNiBQQ0kgZm91bmQgYXQgMHg2MjAwLCB1c2luZyBJUlEgMTYuCnRyMjogU0sgTkVUIFRSIDQvMTYgSVNBIGZvdW5kIGF0IDB4YTIwLCB1c2luZyBJUlEgMTAgYW5kIERNQSA1LgoKTm93IGp1c3Qgc2V0dXAgdGhlIGRldmljZSB2aWEgaWZjb25maWcgYW5kIHNldCBhbmQgcm91dGVzIHlvdSBtYXkgaGF2ZS4gQWZ0ZXIKdGhpcyB5b3UgYXJlIHJlYWR5IHRvIHN0YXJ0IHNlbmRpbmcgc29tZSB0b2tlbnMuCgpFcnJhdGE6CkZvciBhbnlvbmUgd29uZGVyaW5nIHdoZXJlIHRvIHBpY2sgdXAgdGhlIFN5c0tvbm5lY3QgYWRhcHRlcnMgcGxlYXNlIGJyb3dzZQp0byBodHRwOi8vd3d3LnN5c2tvbm5lY3QuY29tCgpUaGlzIGRyaXZlciBpcyB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuIEl0cyBGaXJtd2FyZSBpbWFnZSBpcyAKaW5jbHVkZWQgYXMgYW4gaW5pdGlhbGl6ZWQgQy1hcnJheSBhbmQgaXMgbGljZW5zZWQgYnkgU3lzS29ubmVjdCB0byB0aGUgTGludXggCnVzZXJzIG9mIHRoaXMgZHJpdmVyLiBIb3dldmVyIG5vIHdhcnJhbnR5IGFib3V0IGl0cyBmaXRuZXNzIGlzIGV4cHJlc3NlZCBvciAKaW1wbGllZCBieSBTeXNLb25uZWN0LgoKQmVsb3cgZmluZCBhdHRhY2hlZCB0aGUgc2V0dGluZyBmb3IgdGhlIFNLIE5FVCBUUiA0LzE2IElTQSBhZGFwdGVycwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAgICAgICAgICAgICAgICAgICoqKiAgIEMgTyBOIFQgRSBOIFQgUyAgICoqKgogICAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKgoKICAgICAgICAgICAgICAgIDEpIExvY2F0aW9uIG9mIERJUC1Td2l0Y2ggVzEKICAgICAgICAgICAgICAgIDIpIERlZmF1bHQgc2V0dGluZ3MKICAgICAgICAgICAgICAgIDMpIERJUC1Td2l0Y2ggVzEgZGVzY3JpcHRpb24KCgogID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgQ0hBUFRFUiAxICAgICBMT0NBVElPTiBPRiBESVAtU1dJVENICiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClXExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMS/Cv5VxMTExMTEvyAgICAgICAgICAgICAgICAgICAgICAgICBVxMTExMS/ICAgICAgICAgICAgVcTExL8gICAgICAgICD+Cv5BxMTExMTEVSAgICAgICAgICAgICAgICAgICAgICBXMSBBxMTExMRVICAgICBVxMTExL8g/iAgIP4gICAgICAgICD+Cv5VxMTExMTEvyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICD+ICAgIP4g/iAgIP4gICAgICBVxMTFvwr+QcTExMTExFUgICAgICAgICAgICAgIFXExMTExMTExMTExL8gICAgICAgICAgQcTExMRVIP4gICD+ICAgICAg/iAg/v4K/lXExMTExMS/ICAgICAgICAgICAgICD+ICAgICAgICAgICD+ICAgICAgICAgIFXExMS/ICBBxMTEVSAgICAgIEHExMVVCv5BxMTExMTEVSAgICAgICAgICAgICAg/iBUTVMzODBDMjYg/iAgICAgICAgICD+ICAg/iAgICAgICAgICAgICAgICD+Cv5VxMTExMTEvyAgICAgICAgICAgICAg/iAgICAgICAgICAg/iAgICAgICAgICBBxMTEVSAgICAgICAgICAgICAgICBBxL8K/kHExMTExMRVICAgICAgICAgICAgICD+ICAgICAgICAgICD+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIP4g/gr+ICAgICAgICAgICAgICAgICAgICAgIEHExMTExMTExMTExFUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg/iD+Cv4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICD+IP4K/iAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEHEVQr+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg/gr+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg/gr+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg/gr+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg/gpBxMTExMTExMTExMTEQcTExMTExMTExMTExMTExMRBxMRBxMTExMTExMTExMTExMTExMTExMTExMRBxMTExMTExMTEVQogICAgICAgICAgICAgQcTExMTExMTExMTExMTExMRVICBBxMTExMTExMTExMTExMTExMTExMTExMRVCgogID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgQ0hBUFRFUiAyICAgICBERUZBVUxUIFNFVFRJTkdTCiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgICBXMSAgICAxICAyICAzICA0ICA1ICA2ICA3ICA4CiAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAgICB8IE9OICAgIFggICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgIHwgT0ZGICAgICAgWCAgWCAgWCAgWCAgWCAgWCAgWCB8CiAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKCiAgICAgICAgVzEuMSA9IE9OICAgICAgICAgICAgICAgQWRhcHRlciBkcml2ZXMgYWRkcmVzcyBsaW5lcyBTQTE3Li4xOQogICAgICAgIFcxLjIgLSAxLjUgPSBPRkYgICAgICAgIEJvb3RST00gZGlzYWJsZWQKICAgICAgICBXMS42IC0gMS44ID0gT0ZGICAgICAgICBJL08gYWRkcmVzcyAwQTIwaAoKICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIENIQVBURVIgMyAgICAgRElQIFNXSVRDSCBXMSBERVNDUklQVElPTgogID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICBVxMTEQcTExEHExMRBxMTEQcTExEHExMRBxMTEQcTExL8gIE9OCiAgICAgIP4gMSD+IDIg/iAzIP4gNCD+IDUg/iA2IP4gNyD+IDgg/gogICAgICBBxMTEQcTExEHExMRBxMTEQcTExEHExMRBxMTEQcTExFUgIE9GRgogICAgICB8QUQgfCBCb290Uk9NIEFkZHIuIHwgIEkvTyAgICAgIHwKICAgICAgKy0rLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0rLS0tLS0rCiAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgfAogICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICstLS0tLS0gNiAgICAgNyAgICAgOAogICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgT04gICAgT04gICAgT04gICAgICAgMTkwMGgKICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIE9OICAgIE9OICAgIE9GRiAgICAgIDA5MDBoCiAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICBPTiAgICBPRkYgICBPTiAgICAgICAxOTgwaAogICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgT04gICAgT0ZGICAgT0ZGICAgICAgMDk4MGgKICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIE9GRiAgIE9OICAgIE9OICAgICAgIDFiMjBoCiAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICBPRkYgICBPTiAgICBPRkYgICAgICAwYjIwaAogICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgT0ZGICAgT0ZGICAgT04gICAgICAgMWEyMGgKICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIE9GRiAgIE9GRiAgIE9GRiAgICAgIDBhMjBoICAgICgrKQogICAgICAgIHwgICAgICAgICB8CiAgICAgICAgfCAgICAgICAgIHwKICAgICAgICB8ICAgICAgICAgKy0tLS0tLS0tIDIgICAgIDMgICAgIDQgICAgIDUKICAgICAgICB8ICAgICAgICAgICAgICAgICAgIE9GRiAgIHggICAgIHggICAgIHggICAgICAgZGlzYWJsZWQgICgrKQogICAgICAgIHwgICAgICAgICAgICAgICAgICAgT04gICAgT04gICAgT04gICAgT04gICAgICBDMDAwMAogICAgICAgIHwgICAgICAgICAgICAgICAgICAgT04gICAgT04gICAgT04gICAgT0ZGICAgICBDNDAwMAogICAgICAgIHwgICAgICAgICAgICAgICAgICAgT04gICAgT04gICAgT0ZGICAgT04gICAgICBDODAwMAogICAgICAgIHwgICAgICAgICAgICAgICAgICAgT04gICAgT04gICAgT0ZGICAgT0ZGICAgICBDQzAwMAogICAgICAgIHwgICAgICAgICAgICAgICAgICAgT04gICAgT0ZGICAgT04gICAgT04gICAgICBEMDAwMAogICAgICAgIHwgICAgICAgICAgICAgICAgICAgT04gICAgT0ZGICAgT04gICAgT0ZGICAgICBENDAwMAogICAgICAgIHwgICAgICAgICAgICAgICAgICAgT04gICAgT0ZGICAgT0ZGICAgT04gICAgICBEODAwMAogICAgICAgIHwgICAgICAgICAgICAgICAgICAgT04gICAgT0ZGICAgT0ZGICAgT0ZGICAgICBEQzAwMAogICAgICAgIHwKICAgICAgICB8CiAgICAgICAgKy0tLS0tIDEKICAgICAgICAgICAgICAgT0ZGICAgIGFkYXB0ZXIgZG9lcyBOT1QgZHJpdmUgU0E8MTcuLjE5PgogICAgICAgICAgICAgICBPTiAgICAgYWRhcHRlciBkcml2ZXMgU0E8MTcuLjE5PiAgKCspCgoKICAgICAgICAoKykgbWVhbnMgZGVmYXVsdCBzZXR0aW5nCgogICAgICAgICAgICAgICAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCg==