MjAxNS0wMS0wNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJUFIgYmludXRpbHMvMTc3NTQKCSogaW50ZXJuYWwuaCAoaW50ZXJuYWxfYXV4ZW50KTogSW5jcmVhc2Ugc2l6ZSBvZiB4X2ZuYW1lIGZpZWxkIHRvCgkyMCB0byBhbGxvdyBmb3IgUEUgZm9ybWF0J3MgbG9uZ2VyIGZpbGUgbmFtZXMuCgoyMDE1LTAxLTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCglVcGRhdGUgeWVhciByYW5nZSBpbiBjb3B5cmlnaHQgbm90aWNlIG9mIGFsbCBmaWxlcy4KCjIwMTQtMDgtMjAgIERhbmllbCBNaWNheSAgPGRhbmllbG1pY2F5QGdtYWlsLmNvbT4KCgkqIHBlLmg6IEFkZCBISUdIX0VOVFJPUFlfVkEgZmxhZwoKMjAxNC0wNC0yMiAgQ2hyaXN0aWFuIFN2ZW5zc29uICA8Ymx1ZUBjbWQubnU+CgoJKiBvcjMyLmg6IERlbGV0ZS4KCjIwMTQtMDQtMDggIEpvbiBUVVJORVkgIDxqb24udHVybmV5QGRyb25lY29kZS5vcmcudWs+CgoJKiBwZS5oIChleHRlcm5hbF9JTUFHRV9ERUJVR19ESVJFQ1RPUlksIF9DVl9JTkZPX1BEQjcwKQoJKF9DVl9JTkZPX1BEQjIwKTogQWRkIHN0cnVjdHVyZXMgYW5kIGNvbnN0YW50cyBmb3IgZGVidWcgZGlyZWN0b3J5CglhbmQgY29kZXZpZXcgcmVjb3Jkcy4KCSogaW50ZXJuYWwuaCAoaW50ZXJuYWxfSU1BR0VfREVCVUdfRElSRUNUT1JZLCBDT0RFVklFV19JTkZPKToKCUFkZCBzdHJ1Y3R1cmVzIGFuZCBjb25zdGFudHMgZm9yIGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIGRlYnVnCglkaXJlY3RvcnkgYW5kIGNvZGV2aWV3IHJlY29yZHMuCgoyMDE0LTAzLTEzICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogcGUuaCAoc3RydWN0IGV4dGVybmFsX0FOT05fT0JKRUNUX0hFQURFUl9CSUdPQkopOiBEZWNsYXJlLgoJKEZJTEhTWl9CSUdPQkopOiBEZWZpbmUuCgkoc3RydWN0IGV4dGVybmFsX1NZTUJPTF9FWCk6IERlY2xhcmUuCgkoU1lNRU5UX0JJR09CSiwgU1lNRVNaX0JJR09CSik6IERlZmluZS4KCSh1bmlvbiBleHRlcm5hbF9BVVhfU1lNQk9MX0VYKTogRGVjbGFyZS4KCShBVVhFTlRfQklHT0JKLCBBVVhFU1pfQklHT0JKKTogRGVmaW5lLgoJKiBpbnRlcm5hbC5oIChzdHJ1Y3QgaW50ZXJuYWxfZmlsZWhkcik6IENoYW5nZSB0eXBlCglvZiBmX25zY25zLgoKMjAxNC0wMy0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+CgoJVXBkYXRlIGNvcHlyaWdodCB5ZWFycy4KCjIwMTMtMTItMDYgIFRyaXN0YW4gR2luZ29sZCAgPGdpbmdvbGRAYWRhY29yZS5jb20+CgoJKiBwZS5oIChVV09QX0VQSUxPRywgVVdPUF9QQVJFKTogRGVmaW5lLgoKMjAxMy0wNy0xMCAgVHJpc3RhbiBHaW5nb2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KCgkqIHJzNjAwMC5oIChleHRlcm5hbF9jb3JlX2R1bXB4KTogTmV3IHN0cnVjdHVyZS4KCShleHRlcm5hbF9sZF9pbmZvMzIpOiBEaXR0by4KCjIwMTMtMDctMDIgIFRyaXN0YW4gR2luZ29sZCAgPGdpbmdvbGRAYWRhY29yZS5jb20+CgoJKiBpbnRlcm5hbC5oIChDX1NUVExTLCBDX0dUTFMpOiBEZWZpbmUuCgkqIHhjb2ZmLmggKFhNQ19UTCwgWE1DX1RVLCBYTUNfVEUpOiBEZWZpbmUuCgoyMDEzLTAyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCgkqIHRpLmggKFNXQVBfT1VUX1JFTE9DX0VYVFJBKTogRGVmaW5lLgoKMjAxMy0wMS0wMiAgTWFydGluIFN0b3Jzam8gPG1hcnRpbkBtYXJ0aW4uc3Q+CgoJKiBhcm0uaCAoQVJNVjdQRU1BR0lDKTogRGVmaW5lLgoJKEFSTUJBRE1BRyk6IFVwZGF0ZS4KCjIwMTEtMDYtMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBpODYwLmg6IEZpeCBzcGVsbGluZyBtaXN0YWtlIGluIGNvbW1lbnQuCgoyMDExLTA1LTA0ICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogcnM2MDAwLmggKHVuaW9uIGV4dGVybmFsX2F1eGVudCk6IEFkZCB4X2Z0eXBlIGZpZWxkLgoJKiByczZrNjQuaDogKHN0cnVjdCBleHRlcm5hbF9hdXhlbnQpOiBSZW1hcCB4X2ZpbGUgZmllbGQuCgoyMDExLTA1LTA0ICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogcnM2MDAwLmggKHN0cnVjdCBleHRlcm5hbF9leGNlcHRhYik6IE5ldyBzdHJ1Y3QuCgkoRVhDRVBUU1opOiBOZXcgbWFjcm8uCgkqIHJzNms2NC5oOiAoc3RydWN0IGV4dGVybmFsX2V4Y2VwdGFiKTogTmV3IHN0cnVjdC4KCShFWENFUFRTWik6IE5ldyBtYWNyby4KCjIwMTEtMDUtMDMgIFRyaXN0YW4gR2luZ29sZCAgPGdpbmdvbGRAYWRhY29yZS5jb20+CgoJKiByczYwMDAuaCAoc3RydWN0IGV4dGVybmFsX2xkc3ltKTogVXNlIEVfU1lNTk1MRU4gaW5zdGVhZCBvZgoJU1lNTk1MRU4uCgoyMDExLTA0LTI3ICBUcmlzdGFuIEdpbmdvbGQgIDxnaW5nb2xkQGFkYWNvcmUuY29tPgoKCSogeGNvZmYuaCAoRl9GRFBSX1BST0YsIEZfRkRQUl9PUFRJLCBGX0RTQSwgRl9WQVJQRykKCShTVFlQX0RXQVJGLCBTU1VCVFlQX0RXSU5GTykKCShTU1VCVFlQX0RXTElORSwgU1NVQlRZUF9EV1BCTk1TLCBTU1VCVFlQX0RXUEJUWVApCgkoU1NVQlRZUF9EV0FSTkdFLCBTU1VCVFlQX0RXQUJSRVYsIFNTVUJUWVBfRFdTVFIpCgkoU1NVQlRZUF9EV1JOR0VTLCBTVFlQX1REQVRBLCBTVFlQX1RCU1MsIFJfVExTLCBSX1RMU19JRSkKCShSX1RMU19MRCwgUl9UTFNfTEUsIFJfVExTTSwgUl9UTFNNTCwgUl9UT0NVLCBSX1RPQ0wsIENfRFdBUkYpOgoJTmV3IG1hY3Jvcy4KCjIwMTEtMDMtMzEgIFRyaXN0YW4gR2luZ29sZCAgPGdpbmdvbGRAYWRhY29yZS5jb20+CgoJKiBpbnRlcm5hbC5oIChDX05VTExfVkFMVUUpOiBEZWZpbmUuCgoyMDEwLTA2LTI5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KCgkqIG1heHEuaDogRGVsZXRlIGZpbGUuCgoyMDEwLTA0LTE1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYWxwaGEuaDogVXBkYXRlIGNvcHlyaWdodCBub3RpY2UgdG8gdXNlIEdQTHYzLgoJKiBhcG9sbG8uaDogTGlrZXdpc2UuCgkqIGFybS5oOiBMaWtld2lzZS4KCSogYXV4LWNvZmYuaDogTGlrZXdpc2UuCgkqIGVjb2ZmLmg6IExpa2V3aXNlLgoJKiBleHRlcm5hbC5oOiBMaWtld2lzZS4KCSogZ28zMmV4ZS5oOiBMaWtld2lzZS4KCSogaDgzMDAuaDogTGlrZXdpc2UuCgkqIGg4NTAwLmg6IExpa2V3aXNlLgoJKiBpMzg2Lmg6IExpa2V3aXNlLgoJKiBpODYwLmg6IExpa2V3aXNlLgoJKiBpOTYwLmg6IExpa2V3aXNlLgoJKiBpYTY0Lmg6IExpa2V3aXNlLgoJKiBpbnRlcm5hbC5oOiBMaWtld2lzZS4KCSogbTY4ay5oOiBMaWtld2lzZS4KCSogbTg4ay5oOiBMaWtld2lzZS4KCSogbWF4cS5oOiBMaWtld2lzZS4KCSogbWNvcmUuaDogTGlrZXdpc2UuCgkqIG1pcHMuaDogTGlrZXdpc2UuCgkqIG1pcHNwZS5oOiBMaWtld2lzZS4KCSogb3IzMi5oOiBMaWtld2lzZS4KCSogcGUuaDogTGlrZXdpc2UuCgkqIHBvd2VycGMuaDogTGlrZXdpc2UuCgkqIHJzNjAwMC5oOiBMaWtld2lzZS4KCSogcnM2azY0Lmg6IExpa2V3aXNlLgoJKiBzaC5oOiBMaWtld2lzZS4KCSogc3BhcmMuaDogTGlrZXdpc2UuCgkqIHRpLmg6IExpa2V3aXNlLgoJKiB0aWMzMC5oOiBMaWtld2lzZS4KCSogdGljNHguaDogTGlrZXdpc2UuCgkqIHRpYzU0eC5oOiBMaWtld2lzZS4KCSogdGljODAuaDogTGlrZXdpc2UuCgkqIHc2NS5oOiBMaWtld2lzZS4KCSogd2UzMmsuaDogTGlrZXdpc2UuCgkqIHg4Nl82NC5oOiBMaWtld2lzZS4KCSogeGNvZmYuaDogTGlrZXdpc2UuCgkqIHo4MC5oOiBMaWtld2lzZS4KCSogejhrLmg6IExpa2V3aXNlLgoKMjAwOS0xMi0wMiAgSmVya2VyIELkY2sgIDxqZXJrZXIuYmFja0BnbWFpbC5jb20+CgoJUFIgYmludXRpbHMvMTEwMTcKCSogaTM4NmxoIChDT0ZGX1BBR0VfU0laRSk6IERlZmluZS4KCSogeDg2XzY0LmggKENPRkZfUEFHRV9TSVpFKTogRGVmaW5lLgoKMjAwOS0xMC0xNyAgQXJub2xkIE1ldHNlbGFhciAgPGFybm9sZC5tZXRzZWxhYXJAcGxhbmV0Lm5sPgoKCSogejgwLmg6IFN0b3JlIGFsaWdubWVudCByZXF1aXJlbWVudCBpbiBzZWN0aW9uIGhlYWRlciwgdG8gYWxsb3cKCWxkIHRvIHByZXNlcnZlIGFsaWdubWVudC4gU29tZSBjb2RlIHdhcyBjb3BpZWQgZnJvbSB0aS5oLgoKMjAwOS0wOS0wNSAgTWFydGluIFRodXJlc3NvbiAgPG1hcnRpbkBtdG1lLm9yZz4KCgkqIHRpLmggKEdFVF9MTlNaX1NJWkUsIFBVVF9MTlNaX1NJWkUpOiBVcGRhdGVkIG5hbWUgb2YgY2xhc3MKCXZhcmlhYmxlIHRvIGluX2NsYXNzIHRvIG1hdGNoIGNoYW5nZXMgaW4gZnVuY3Rpb24gdGhhdCB1c2UgdGhpcwoJbWFjcm8uCgoyMDA5LTA4LTEwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CgoJRml4IHJlZmVyZW5jZXMgcGFzdCBhbGxvY2F0ZWQgbWVtb3J5IGZvciBpMzg2LSotZ28zMi4KCSogdGkuaCAoQ09GRl9BREpVU1RfRklMRUhEUl9JTl9QT1NULCBDT0ZGX0FESlVTVF9GSUxFSERSX09VVF9QT1NUKToKCVJlZmVyZW5jZSBGX1RBUkdFVF9JRCBvbmx5IHdoZW4gIUNPRkYwX1AuCgoyMDA5LTA4LTEwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CgoJU3RvcCB1c2luZyBiZmRfdXNyZGF0YSBpbiBsaWJiZmQuCgkqIGdvMzJleGUuaCAoc3RydWN0IGV4dGVybmFsX2ZpbGVoZHJfZ28zMl9leGUgPHN0dWI+LCBGSUxIU1opOiBSZXBsYWNlCglTVFVCU0laRSBieSBHTzMyX1NUVUJTSVpFLgoJKFNUVUJTSVpFKTogTW92ZSB0aGUgZGVmaW5pdGlvbiAuLi4KCSogaW50ZXJuYWwuaCAoR08zMl9TVFVCU0laRSk6IC4uLiBoZXJlIGFuZCByZW5hbWUgaXQuCgkoc3RydWN0IGludGVybmFsX2ZpbGVoZHIgPGdvMzJzdHViPiwgRl9HTzMyU1RVQik6IE5ldy4KCjIwMDktMDYtMDMgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIHN5bWNvbnN0LmggKGJ0TG9uZzY0LCBidFVMb25nNjQsIGJ0TG9uZ0xvbmc2NCwgYnRVTG9uZ0xvbmc2NCwKCWJ0QWRyNjQsIGJ0SW50NjQsIGJ0VUludDY0KTogTmV3IGRlZmluZXMuCgoyMDA5LTA0LTIxICBLYWkgVGlldHogIDxrYWkudGlldHpAb25ldmlzaW9uLmNvbT4KCgkqIHBlLmggKHBleDY0X3J1bnRpbWVfZnVuY3Rpb24pOiBOZXcgc3RydWN0dXJlLgoJKGV4dGVybmFsX3BleDY0X3J1bnRpbWVfZnVuY3Rpb24pOiBMaWtld2lzZS4KCShwZXg2NF91bndpbmRfY29kZSk6IExpa2V3aXNlLgoJKGV4dGVybmFsX3BleDY0X3Vud2luZF9jb2RlKTogTGlrZXdpc2UuCgkocGV4NjRfdW53aW5kX2luZm8pOiBMaWtld2lzZS4KCShleHRlcm5hbF9wZXg2NF91bndpbmRfaW5mbyk6IExpa2V3aXNlLgoJKGV4dGVybmFsX3BleDY0X3Njb3BlKTogTGlrZXdpc2UuCgkocGV4NjRfc2NvcGUpOiBMaWtld2lzZS4KCShwZXg2NF9zY29wZV9lbnRyeSk6ICBMaWtld2lzZS4KCShleHRlcm5hbF9wZXg2NF9zY29wZV9lbnRyeSk6IExpa2V3aXNlLgoJKFBFWDY0X0lTX1JVTlRJTUVfRlVOQ1RJT05fQ0hBSU5FRCk6IE5ldyBtYWNyby4KCShQRVg2NF9HRVRfVU5XSU5EREFUQV9VTklGSUVEX1JWQSk6IExpa2V3aXNlLgoJKFBFWDY0X1VOV0NPREVfQ09ERSk6IExpa2V3aXNlLgoJKFBFWDY0X1VOV0NPREVfSU5GTyk6IExpa2V3aXNlLgoJKFVXT1BfLi4uKTogQWRkIGRlZmluZXMgZm9yIHVud2luZCBjb2RlLgoJKFVOV19GTEFHXy4uLik6IEFkZCBkZWZpbmVkIGZvciB1bndpbmQgaW5mbyBmbGFncy4KCShQRVg2NF9TQ09QRV9FTlRSWV9TSVpFKTogTmV3IG1hY3JvLgoJKFBFWDY0X1VXSV9WRVJTSU9OKTogTGlrZXdpc2UuCgkoUEVYNjRfVVdJX0ZMQUdTKTogTGlrZXdpc2UuCgkoUEVYNjRfVVdJX0ZSQU1FUkVHKTogTGlrZXdpc2UuCgkoUEVYNjRfVVdJX0ZSQU1FT0ZGKTogTGlrZXdpc2UuCgkoUEVYNjRfVVdJX1NJWkVPRl9VV0NPREVfQVJSQVkpOiBMaWtld2lzZS4KCShQRVg2NF9PRkZTRVRfVE9fVU5XSU5EX0NPREUpOiBMaWtld2lzZS4KCShQRVg2NF9PRkZTRVRfVE9fSEFORExFUl9SVkEpOiBMaWtld2lzZS4KCShQRVg2NF9PRkZTRVRfVE9fU0NPUEVfQ09VTlQpOiBMaWtld2lzZS4KCShQRVg2NF9TQ09QRV9FTlRSWSk6IExpa2V3aXNlLgoKMjAwOS0wNC0xNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogcGUuaCAoSU1BR0VfU1VCU1lTVEVNX0VGSV9ST00pOiBSZW5hbWVkIHRvIC4uLgoJKElNQUdFX1NVQlNZU1RFTV9TQUxfUlVOVElNRV9EUklWRVIpOiBUaGlzLgoKMjAwOS0wNC0wMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyLnNhbmRpZm9yZEB1ay5pYm0uY29tPgoKCSogeGNvZmYuaCAoeGNvZmZfbGlua19oYXNoX3RhYmxlKTogTW92ZSB0byBiZmQveGNvZmZsaW5rLmMuCgoyMDA5LTAzLTE0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHIuc2FuZGlmb3JkQHVrLmlibS5jb20+CgoJKiB4Y29mZi5oIChYQ09GRl9FWFBBTEwsIFhDT0ZGX0VYUEZVTEwpOiBOZXcgZmxhZ3MuCgkoeGNvZmZfbG9hZGVyX2luZm8pOiBBZGQgYXV0b19leHBvcnRfZmxhZ3MuCgoyMDA5LTAzLTE0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHIuc2FuZGlmb3JkQHVrLmlibS5jb20+CgoJKiBpbnRlcm5hbC5oIChDX0FJWF9XRUFLRVhUKTogTmV3IG1hY3JvLgoJKENfV0VBS0VYVCk6IFVzZSB0aGUgR05VIGRlZmluaXRpb24gaW4gdGhlIGdlbmVyaWMgcGFydCBvZiB0aGUgZmlsZSwKCWFuZCBjb25kaXRpb25hbGx5IHJlc2V0IGl0IHRvIENfQUlYX1dFQUtFWFQgaW4gdGhlIFhDT0ZGIHBhcnQgb2YKCXRoZSBmaWxlLgoJKENTRUNUX1NZTV9QKTogTmV3IG1hY3JvLgoJKiB4Y29mZi5oIChMX1dFQUspOiBEZWZpbmUuCgkoRVhURVJOX1NZTV9QKTogTmV3IG1hY3JvLgoKMjAwOS0wMy0xNCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyLnNhbmRpZm9yZEB1ay5pYm0uY29tPgoKCSogeGNvZmYuaCAoWENPRkZfQUxMT0NBVEVEKTogTmV3IGZsYWcuCgoyMDA5LTAzLTE0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHIuc2FuZGlmb3JkQHVrLmlibS5jb20+CgoJKiB4Y29mZi5oIChYQ09GRl9DQUxMRUQsIFhDT0ZGX0lNUE9SVCk6IFVwZGF0ZSBjb21tZW50cy4KCShYQ09GRl9XQVNfVU5ERUZJTkVEKTogTmV3IGZsYWcuCgkoeGNvZmZfbGlua19oYXNoX3RhYmxlKTogQWRkIGFuICJydGxkIiBmaWVsZC4KCjIwMDktMDMtMTQgIERhdmUgS29ybiAgPGRhdmUua29ybi5jeWd3aW5AZ21haWwuY29tPgoKCSogaW50ZXJuYWwuaCAoc3RydWN0IGludGVybmFsX2V4dHJhX3BlX2FvdXRoZHIpOiAgQ29ycmVjdCB0eXBlCglvZiBEbGxDaGFyYWN0ZXJpc3RpY3MgZmxhZ3MgZmllbGQgdG8gdW5zaWduZWQuCgkqIHBlLmggKElNQUdFX0RMTF9DSEFSQUNURVJJU1RJQ1NfRFlOQU1JQ19CQVNFLAoJSU1BR0VfRExMX0NIQVJBQ1RFUklTVElDU19EWU5BTUlDX0JBU0UsCglJTUFHRV9ETExfQ0hBUkFDVEVSSVNUSUNTX05YX0NPTVBBVCwKCUlNQUdFX0RMTENIQVJBQ1RFUklTVElDU19OT19JU09MQVRJT04sCglJTUFHRV9ETExDSEFSQUNURVJJU1RJQ1NfTk9fU0VILAoJSU1BR0VfRExMQ0hBUkFDVEVSSVNUSUNTX05PX0JJTkQsCglJTUFHRV9ETExDSEFSQUNURVJJU1RJQ1NfV0RNX0RSSVZFUiwKCUlNQUdFX0RMTENIQVJBQ1RFUklTVElDU19URVJNSU5BTF9TRVJWRVJfQVdBUkUpOiAgTmV3IG1hY3JvcyB0bwoJZGVmaW5lIGZsYWcgYml0IHZhbHVlcyBmb3IgRGxsQ2hhcmFjdGVyaXN0aWNzIGZpZWxkIG9mIFBFQU9VVEhEUiwKCVBFUEFPVVRIRFIuCgoyMDA4LTEyLTIzICBKb2hhbiBPbG11dHogTmllbHNlbiAgPGpuaWVsc2VuQGRkY2kuY29tPgoKCSogdGkuaCAoQ09GRl9BREpVU1RfU0NOSERSX09VVF9QUkUpOiBEZWZpbmUuCgoyMDA4LTA2LTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogdGkuaCAoR0VUX1NDTkhEUl9OTE5OTyk6IFByb3ZpZGUgYW4gYWx0ZXJuYXRpdmUgdmVyc2lvbiBvZiB0aGlzCgltYWNybyB3aGljaCBkb2VzIG5vdCB0cmlnZ2VyIGFuIGFycmF5IGJvdW5kcyB3YXJuaW5nIGluIGdjYy4KCShQVVRfU0NOSERSX05MTk5PKTogTGlrZXdpc2UuCgkoR0VUX1NDTkhEUl9GTEFHUyk6IExpa2V3aXNlLgoJKFBVVF9TQ05IRFJfRkxBR1MpOiBMaWtld2lzZS4KCShHRVRfU0NOSERSX1BBR0UpOiBMaWtld2lzZS4KCShQVVRfU0NOSERSX1BBR0UpOiBMaWtld2lzZS4KCjIwMDctMTEtMDUgIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwZS5oIChDT0ZGX0VOQ09ERV9BTElHTk1FTlQpIERlZmluZS4KCjIwMDctMDgtMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIHBlLmggKElNQUdFX1NDTl9BTElHTl9QT1dFUl9CSVRfUE9TKTogTmV3LgoJKElNQUdFX1NDTl9BTElHTl9QT1dFUl9CSVRfTUFTSyk6IExpa2V3aXNlLgoJKElNQUdFX1NDTl9BTElHTl9QT1dFUl9OVU0pOiBMaWtld2lzZS4KCShJTUFHRV9TQ05fQUxJR05fUE9XRVJfQ09OU1QpOiBMaWtld2lzZS4KCShJTUFHRV9TQ05fQUxJR05fMTI4QllURVMpOiBMaWtld2lzZS4KCShJTUFHRV9TQ05fQUxJR05fMjU2QllURVMpOiBMaWtld2lzZS4KCShJTUFHRV9TQ05fQUxJR05fNTEyQllURVMpOiBMaWtld2lzZS4KCShJTUFHRV9TQ05fQUxJR05fMTAyNEJZVEVTKTogTGlrZXdpc2UuCgkoSU1BR0VfU0NOX0FMSUdOXzIwNDhCWVRFUyk6IExpa2V3aXNlLgoJKElNQUdFX1NDTl9BTElHTl80MDk2QllURVMpOiBMaWtld2lzZS4KCShJTUFHRV9TQ05fQUxJR05fODE5MkJZVEVTKTogTGlrZXdpc2UuCgkoSU1BR0VfU0NOX0FMSUdOXzFCWVRFUyk6IFJlZGVmaW5lZCB3aXRoCglJTUFHRV9TQ05fQUxJR05fUE9XRVJfQ09OU1QuCgkoSU1BR0VfU0NOX0FMSUdOXzJCWVRFUyk6IExpa2V3aXNlLgoJKElNQUdFX1NDTl9BTElHTl80QllURVMpOiBMaWtld2lzZS4KCShJTUFHRV9TQ05fQUxJR05fOEJZVEVTKTogTGlrZXdpc2UuCgkoSU1BR0VfU0NOX0FMSUdOXzE2QllURVMpOiBMaWtld2lzZS4KCShJTUFHRV9TQ05fQUxJR05fMzJCWVRFUyk6IExpa2V3aXNlLgoJKElNQUdFX1NDTl9BTElHTl82NEJZVEVTKTogTGlrZXdpc2UuCgoyMDA3LTA3LTEyICBLYWkgVGlldHogICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CgoJKiBpbnRlcm5hbC5oIChzdHJ1Y3QgaW50ZXJuYWxfc3ltZW50KTogVXNlIGJmZF9ob3N0cHRyX3QgZm9yCglfbl96ZXJvZXMgYW5kIF9uX29mZnNldCBmaWVsZHMuCgoyMDA3LTA0LTI3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcnM2MDAwLmg6IFdyaXRlIE1pbWkncyBuYW1lIGluIEFTQ0lJLgoKMjAwNy0wMy0xOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogaW50ZXJuYWwuaCAoaW50ZXJuYWxfZXh0cmFfcGVfYW91dGhkcik6IEFkZCBNYWdpYywKCU1ham9yTGlua2VyVmVyc2lvbiwgTWlub3JMaW5rZXJWZXJzaW9uLCBTaXplT2ZDb2RlLAoJU2l6ZU9mSW5pdGlhbGl6ZWREYXRhLCBTaXplT2ZVbmluaXRpYWxpemVkRGF0YSwKCUFkZHJlc3NPZkVudHJ5UG9pbnQsIEJhc2VPZkNvZGUgYW5kIEJhc2VPZkRhdGEuCgoyMDA2LTEyLTA1ICBNaWNoYWVsIFRhdXRzY2huaWcgIDx0YXV0c2NobkBtb2RlbC5pbi50dW0uZGU+CgkgICAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGV4dGVybmFsLmggKHN0cnVjdCBleHRlcm5hbF9hb3V0aGRyKTogQWRkIEFUVFJJQlVURV9QQUNLRUQuCgkoc3RydWN0IGV4dGVybmFsX3N5bWVudCk6IExpa2V3aXNlLgoJKHVuaW9uIGV4dGVybmFsX2F1eGVudCk6IExpa2V3aXNlLgoKMjAwNi0xMS0xNCAgUGhpbCBMZWxsbyAgPHBoaWwubGVsbG9AaG9tZWNhbGwuY28udWs+CgoJKiBwZS5oOiBBZGRlZCBkZWZpbmVzIGZvciBJTUFHRV9TVUJTWVNURU1fRUZJX1JPTSBhbmQKCUlNQUdFX1NVQlNZU1RFTV9YQk9YLgoJKiBpbnRlcm5hbC5oOiBBZGRlZCBkZWZpbmVzIGZvciBQRSBkaXJlY3RvcnkgZW50cnkgdHlwZXMuCglOQjogaW4gaW50ZXJuYWwuaCBiZWNhdXNlIElNQUdFX05VTUJFUk9GX0RJUkVDVE9SWV9FTlRSWUlFUyBpcyBpbgoJcGUuaAoKMjAwNi0wOS0yMCAgS2FpIFRpZXR6ICA8S2FpLlRpZXR6QG9uZXZpc2lvbi5jb20+CgoJKiBleHRlcm5hbC5oOiBBZGQgcHJvcGVyIGV4dGVybmFsX2FvdXRoZHI2NCBzdHJ1Y3R1cmUgKHdpdGhvdXQKCWRhdGFfc3RhcnQgbWVtYmVyKS4KCShBT1VUSERSU1o2NCk6IFNldCBhY2NvcmRpbmcgc3RydWN0dXJlIHNpemUuCgkoQU9VVEhEUjY0KTogQXMgdHlwZWRlZiBvZiBleHRlcm5hbF9hb3V0aGRyNjQgc3RydWN0dXJlLgoJKiBpbnRlcm5hbC5oOiBBZGQgcmVsb2NhdGlvbiBpZGVudGlmaWVycyBmb3IgY29mZi4KCSogcGUuaDoJQWRkIGRlZmluZSBJTUFHRV9GSUxFX01BQ0hJTkVfQU1ENjQgdGhlIGNvZmYgc2lnbmF0dXJlLgoJKFBFUEFPVVRIRFIpOiBBZGp1c3Qgc3RydWN0dXJlIHRvIGhhdmUgcHJvcGVyIHNpemUgKHVzaW5nIEFPVVRIRFI2NCkuCgkoUEVQQU9VVFNaKTogQ2FsY3VsYXRlZCBzaXplIG9mIDI0MC4KCSogeDg2XzY0Lmg6IENvZmYgaW5mb3JtYXRpb24gZm9yIHg4Nl82NCAoQU1ENjQpLgoKMjAwNi0wMi0wNSAgQXJub2xkIE1ldHNlbGFhciAgPGFybm9sZC5tZXRzZWxhYXJAcGxhbmV0Lm5sPgoKCSogaW50ZXJuYWwuaDogQWRkIHJlbG9jYXRpb24gbnVtYmVyIFJfSU1NMjQgZm9yIFo4MC4KCjIwMDUtMTAtMjUgIEFybm9sZCBNZXRzZWxhYXIgIDxhcm5vbGQubWV0c2VsYWFyQHBsYW5ldC5ubD4KCgkqIGludGVybmFsLmg6IEFkZCByZWxvY2F0aW9uIG51bWJlciBmb3IgWjgwCgkqIHo4MC5oOiBOZXcgZmlsZS4KCjIwMDUtMDgtMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhMjlrLmg6IERlbGV0ZS4KCjIwMDUtMDctMTQgIERhbmllbCBNYXJxdWVzICA8bWFycXVlc0Bjcy5jb3JuZWxsLmVkdT4KCgkqIGFscGhhLmggKEFMUEhBX0VDT0ZGX0NPTVBSRVNTRURNQUcpOiBEZWZpbmUuCgkqIGVjb2ZmLmggKEFMUEhBX01BR0lDX0NPTVBSRVNTRUQpOiBEZWZpbmUuCgoyMDA1LTA1LTEwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogVXBkYXRlIHRoZSBhZGRyZXNzIGFuZCBwaG9uZSBudW1iZXIgb2YgdGhlIEZTRiBvcmdhbml6YXRpb24gaW4KCXRoZSBHUEwgbm90aWNlcyBpbiB0aGUgZm9sbG93aW5nIGZpbGVzOgoJYTI5ay5oLAlhbHBoYS5oLCBhcG9sbG8uaCwgYXJtLmgsIGF1eC1jb2ZmLmgsIGVjb2ZmLmgsIGV4dGVybmFsLmgsCglnbzMyZXhlLmgsIGg4MzAwLmgsIGg4NTAwLmgsIGkzODYuaCwgaTg2MC5oLCBpOTYwLmgsIGlhNjQuaCwKCWludGVybmFsLmgsIG02OGsuaCwgbTg4ay5oLCBtYXhxLmgsIG1jb3JlLmgsIG1pcHMuaCwgbWlwc3BlLmgsCglvcjMyLmgsIHBlLmgsIHBvd2VycGMuaCwgcnM2azY0LmgsIHNoLmgsIHNwYXJjLmgsIHRpLmgsIHRpYzMwLmgsCgl0aWM0eC5oLCB0aWM1NHguaCwgdGljODAuaCwgdzY1LmgsIHdlMzJrLmgsIHhjb2ZmLmgsIHo4ay5oCgoyMDA1LTAyLTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogeGNvZmYuaCAoc3RydWN0IHhjb2ZmX2xvYWRlcl9pbmZvKTogV2FybmluZyBmaXguCgoyMDA1LTAxLTEwICBJbmRlcnByZWV0IFNpbmdoIDxpbmRlcnByZWV0YkBub2lkYS5oY2x0ZWNoLmNvbT4KCgkqIG1heHEuaCAoRl9NQVhRMTAsIEZfTUFYUTIwKTogRGVmaW5lLgoKMjAwNC0xMS0wOCAgSW5kZXJwcmVldCBTaW5naCAgIDxpbmRlcnByZWV0YkBuaW9kYS5oY2x0ZWNoLmNvbT4KCSAgICBWaW5lZXQgU2hhcm1hICAgICAgPHZpbmVldHNAbm9pZGEuaGNsdGVjaC5jb20+CgoJKiBtYXhxLmg6IE5ldyBmaWxlOiBEZWZpbnRpb25zIGZvciB0aGUgbWF4cSBwb3J0LgoKMjAwNC0xMS0wOCAgQWFyb24gVy4gTGFGcmFtYm9pc2UgPGFhcm9uOTh3aXJpZGdlOUBhYXJvbndsLmNvbT4KCgkqIHBlLmggKElNQUdFX1dFQUtfRVhURVJOX1NFQVJDSF9OT0xJQlJBUlkpOiBEZWZpbmUuCgkoSU1BR0VfV0VBS19FWFRFUk5fU0VBUkNIX0xJQlJBUlkpOiBTYW1lLgoJKElNQUdFX1dFQUtfRVhURVJOX1NFQVJDSF9BTElBUyk6IFNhbWUuCgoyMDA0LTA4LTEzICBNYXJrIEtldHRlbmlzICA8a2V0dGVuaXNAZ251Lm9yZz4KCgkqIHN5bWNvbnN0LmggKGxhbmdNYXgpOiBGaXggdHlwbyBpbiBjb21tZW50LgoKMjAwNC0wNC0yMyAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIG1pcHMuaCAoTUlQU19SX1JFTEhJLCBNSVBTX1JfUkVMTE8sIE1JUFNfUl9TV0lUQ0gpOiBSZW1vdmUKCShNSVBTX1JfUENSRUwxNik6IFVwZGF0ZSBjb21tZW50LgoJKiBlY29mZi5oIChzdHJ1Y3QgZWNvZmZfdmFsdWVfYWRqdXN0KTogUmVtb3ZlIHN0cnVjdHVyZS4KCShzdHJ1Y3QgZWNvZmZfZGVidWdfaW5mbyk6IFJlbW92ZSAnYWRqdXN0JyBtZW1iZXIuCgoyMDA0LTA0LTIwICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGludGVybmFsLmggKFJfU0VDUkVMMzIpOiBBZGQuCgpGb3Igb2xkZXIgY2hhbmdlcyBzZWUgQ2hhbmdlTG9nLTkxMDMKDApDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KCkNvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpbGUsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCmFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodApub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuCgpMb2NhbCBWYXJpYWJsZXM6Cm1vZGU6IGNoYW5nZS1sb2cKbGVmdC1tYXJnaW46IDgKZmlsbC1jb2x1bW46IDc0CnZlcnNpb24tY29udHJvbDogbmV2ZXIKRW5kOgo=