MjAwOS0xMi0wMiAgSmVya2VyIELkY2sgIDxqZXJrZXIuYmFja0BnbWFpbC5jb20+CgoJUFIgYmludXRpbHMvMTEwMTcKCSogaTM4NmxoIChDT0ZGX1BBR0VfU0laRSk6IERlZmluZS4KCSogeDg2XzY0LmggKENPRkZfUEFHRV9TSVpFKTogRGVmaW5lLgoKMjAwOS0xMC0xNyAgQXJub2xkIE1ldHNlbGFhciAgPGFybm9sZC5tZXRzZWxhYXJAcGxhbmV0Lm5sPgoKCSogejgwLmg6IFN0b3JlIGFsaWdubWVudCByZXF1aXJlbWVudCBpbiBzZWN0aW9uIGhlYWRlciwgdG8gYWxsb3cKCWxkIHRvIHByZXNlcnZlIGFsaWdubWVudC4gU29tZSBjb2RlIHdhcyBjb3BpZWQgZnJvbSB0aS5oLiAKCjIwMDktMDktMDUgIE1hcnRpbiBUaHVyZXNzb24gIDxtYXJ0aW5AbXRtZS5vcmc+CgoJKiB0aS5oIChHRVRfTE5TWl9TSVpFLCBQVVRfTE5TWl9TSVpFKTogVXBkYXRlZCBuYW1lIG9mIGNsYXNzCgl2YXJpYWJsZSB0byBpbl9jbGFzcyB0byBtYXRjaCBjaGFuZ2VzIGluIGZ1bmN0aW9uIHRoYXQgdXNlIHRoaXMKCW1hY3JvLgoKMjAwOS0wOC0xMCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgoKCUZpeCByZWZlcmVuY2VzIHBhc3QgYWxsb2NhdGVkIG1lbW9yeSBmb3IgaTM4Ni0qLWdvMzIuCgkqIHRpLmggKENPRkZfQURKVVNUX0ZJTEVIRFJfSU5fUE9TVCwgQ09GRl9BREpVU1RfRklMRUhEUl9PVVRfUE9TVCk6CglSZWZlcmVuY2UgRl9UQVJHRVRfSUQgb25seSB3aGVuICFDT0ZGMF9QLgoKMjAwOS0wOC0xMCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgoKCVN0b3AgdXNpbmcgYmZkX3VzcmRhdGEgaW4gbGliYmZkLgoJKiBnbzMyZXhlLmggKHN0cnVjdCBleHRlcm5hbF9maWxlaGRyX2dvMzJfZXhlIDxzdHViPiwgRklMSFNaKTogUmVwbGFjZQoJU1RVQlNJWkUgYnkgR08zMl9TVFVCU0laRS4KCShTVFVCU0laRSk6IE1vdmUgdGhlIGRlZmluaXRpb24gLi4uCgkqIGludGVybmFsLmggKEdPMzJfU1RVQlNJWkUpOiAuLi4gaGVyZSBhbmQgcmVuYW1lIGl0LgoJKHN0cnVjdCBpbnRlcm5hbF9maWxlaGRyIDxnbzMyc3R1Yj4sIEZfR08zMlNUVUIpOiBOZXcuCgoyMDA5LTA2LTAzICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBzeW1jb25zdC5oIChidExvbmc2NCwgYnRVTG9uZzY0LCBidExvbmdMb25nNjQsIGJ0VUxvbmdMb25nNjQsCglidEFkcjY0LCBidEludDY0LCBidFVJbnQ2NCk6IE5ldyBkZWZpbmVzLgoKMjAwOS0wNC0yMSAgS2FpIFRpZXR6ICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CgoJKiBwZS5oIChwZXg2NF9ydW50aW1lX2Z1bmN0aW9uKTogTmV3IHN0cnVjdHVyZS4KCShleHRlcm5hbF9wZXg2NF9ydW50aW1lX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkocGV4NjRfdW53aW5kX2NvZGUpOiBMaWtld2lzZS4KCShleHRlcm5hbF9wZXg2NF91bndpbmRfY29kZSk6IExpa2V3aXNlLgoJKHBleDY0X3Vud2luZF9pbmZvKTogTGlrZXdpc2UuCgkoZXh0ZXJuYWxfcGV4NjRfdW53aW5kX2luZm8pOiBMaWtld2lzZS4KCShleHRlcm5hbF9wZXg2NF9zY29wZSk6IExpa2V3aXNlLgoJKHBleDY0X3Njb3BlKTogTGlrZXdpc2UuCgkocGV4NjRfc2NvcGVfZW50cnkpOiAgTGlrZXdpc2UuCgkoZXh0ZXJuYWxfcGV4NjRfc2NvcGVfZW50cnkpOiBMaWtld2lzZS4KCShQRVg2NF9JU19SVU5USU1FX0ZVTkNUSU9OX0NIQUlORUQpOiBOZXcgbWFjcm8uCgkoUEVYNjRfR0VUX1VOV0lORERBVEFfVU5JRklFRF9SVkEpOiBMaWtld2lzZS4KCShQRVg2NF9VTldDT0RFX0NPREUpOiBMaWtld2lzZS4KCShQRVg2NF9VTldDT0RFX0lORk8pOiBMaWtld2lzZS4KCShVV09QXy4uLik6IEFkZCBkZWZpbmVzIGZvciB1bndpbmQgY29kZS4KCShVTldfRkxBR18uLi4pOiBBZGQgZGVmaW5lZCBmb3IgdW53aW5kIGluZm8gZmxhZ3MuCgkoUEVYNjRfU0NPUEVfRU5UUllfU0laRSk6IE5ldyBtYWNyby4KCShQRVg2NF9VV0lfVkVSU0lPTik6IExpa2V3aXNlLgoJKFBFWDY0X1VXSV9GTEFHUyk6IExpa2V3aXNlLgoJKFBFWDY0X1VXSV9GUkFNRVJFRyk6IExpa2V3aXNlLgoJKFBFWDY0X1VXSV9GUkFNRU9GRik6IExpa2V3aXNlLgoJKFBFWDY0X1VXSV9TSVpFT0ZfVVdDT0RFX0FSUkFZKTogTGlrZXdpc2UuCgkoUEVYNjRfT0ZGU0VUX1RPX1VOV0lORF9DT0RFKTogTGlrZXdpc2UuCgkoUEVYNjRfT0ZGU0VUX1RPX0hBTkRMRVJfUlZBKTogTGlrZXdpc2UuCgkoUEVYNjRfT0ZGU0VUX1RPX1NDT1BFX0NPVU5UKTogTGlrZXdpc2UuCgkoUEVYNjRfU0NPUEVfRU5UUlkpOiBMaWtld2lzZS4KCjIwMDktMDQtMTcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIHBlLmggKElNQUdFX1NVQlNZU1RFTV9FRklfUk9NKTogUmVuYW1lZCB0byAuLi4KCShJTUFHRV9TVUJTWVNURU1fU0FMX1JVTlRJTUVfRFJJVkVSKTogVGhpcy4KCjIwMDktMDQtMDEgIFJpY2hhcmQgU2FuZGlmb3JkICA8ci5zYW5kaWZvcmRAdWsuaWJtLmNvbT4KCgkqIHhjb2ZmLmggKHhjb2ZmX2xpbmtfaGFzaF90YWJsZSk6IE1vdmUgdG8gYmZkL3hjb2ZmbGluay5jLgoKMjAwOS0wMy0xNCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyLnNhbmRpZm9yZEB1ay5pYm0uY29tPgoKCSogeGNvZmYuaCAoWENPRkZfRVhQQUxMLCBYQ09GRl9FWFBGVUxMKTogTmV3IGZsYWdzLgoJKHhjb2ZmX2xvYWRlcl9pbmZvKTogQWRkIGF1dG9fZXhwb3J0X2ZsYWdzLgoKMjAwOS0wMy0xNCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyLnNhbmRpZm9yZEB1ay5pYm0uY29tPgoKCSogaW50ZXJuYWwuaCAoQ19BSVhfV0VBS0VYVCk6IE5ldyBtYWNyby4KCShDX1dFQUtFWFQpOiBVc2UgdGhlIEdOVSBkZWZpbml0aW9uIGluIHRoZSBnZW5lcmljIHBhcnQgb2YgdGhlIGZpbGUsCglhbmQgY29uZGl0aW9uYWxseSByZXNldCBpdCB0byBDX0FJWF9XRUFLRVhUIGluIHRoZSBYQ09GRiBwYXJ0IG9mCgl0aGUgZmlsZS4KCShDU0VDVF9TWU1fUCk6IE5ldyBtYWNyby4KCSogeGNvZmYuaCAoTF9XRUFLKTogRGVmaW5lLgoJKEVYVEVSTl9TWU1fUCk6IE5ldyBtYWNyby4KCjIwMDktMDMtMTQgIFJpY2hhcmQgU2FuZGlmb3JkICA8ci5zYW5kaWZvcmRAdWsuaWJtLmNvbT4KCgkqIHhjb2ZmLmggKFhDT0ZGX0FMTE9DQVRFRCk6IE5ldyBmbGFnLgoKMjAwOS0wMy0xNCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyLnNhbmRpZm9yZEB1ay5pYm0uY29tPgoKCSogeGNvZmYuaCAoWENPRkZfQ0FMTEVELCBYQ09GRl9JTVBPUlQpOiBVcGRhdGUgY29tbWVudHMuCgkoWENPRkZfV0FTX1VOREVGSU5FRCk6IE5ldyBmbGFnLgoJKHhjb2ZmX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBhbiAicnRsZCIgZmllbGQuCgoyMDA5LTAzLTE0ICBEYXZlIEtvcm4gIDxkYXZlLmtvcm4uY3lnd2luQGdtYWlsLmNvbT4KCgkqIGludGVybmFsLmggKHN0cnVjdCBpbnRlcm5hbF9leHRyYV9wZV9hb3V0aGRyKTogIENvcnJlY3QgdHlwZQoJb2YgRGxsQ2hhcmFjdGVyaXN0aWNzIGZsYWdzIGZpZWxkIHRvIHVuc2lnbmVkLgoJKiBwZS5oIChJTUFHRV9ETExfQ0hBUkFDVEVSSVNUSUNTX0RZTkFNSUNfQkFTRSwKCUlNQUdFX0RMTF9DSEFSQUNURVJJU1RJQ1NfRFlOQU1JQ19CQVNFLAoJSU1BR0VfRExMX0NIQVJBQ1RFUklTVElDU19OWF9DT01QQVQsCglJTUFHRV9ETExDSEFSQUNURVJJU1RJQ1NfTk9fSVNPTEFUSU9OLAoJSU1BR0VfRExMQ0hBUkFDVEVSSVNUSUNTX05PX1NFSCwKCUlNQUdFX0RMTENIQVJBQ1RFUklTVElDU19OT19CSU5ELAoJSU1BR0VfRExMQ0hBUkFDVEVSSVNUSUNTX1dETV9EUklWRVIsCglJTUFHRV9ETExDSEFSQUNURVJJU1RJQ1NfVEVSTUlOQUxfU0VSVkVSX0FXQVJFKTogIE5ldyBtYWNyb3MgdG8KCWRlZmluZSBmbGFnIGJpdCB2YWx1ZXMgZm9yIERsbENoYXJhY3RlcmlzdGljcyBmaWVsZCBvZiBQRUFPVVRIRFIsCglQRVBBT1VUSERSLgoKMjAwOC0xMi0yMyAgSm9oYW4gT2xtdXR6IE5pZWxzZW4gIDxqbmllbHNlbkBkZGNpLmNvbT4KCgkqIHRpLmggKENPRkZfQURKVVNUX1NDTkhEUl9PVVRfUFJFKTogRGVmaW5lLgoKMjAwOC0wNi0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHRpLmggKEdFVF9TQ05IRFJfTkxOTk8pOiBQcm92aWRlIGFuIGFsdGVybmF0aXZlIHZlcnNpb24gb2YgdGhpcwoJbWFjcm8gd2hpY2ggZG9lcyBub3QgdHJpZ2dlciBhbiBhcnJheSBib3VuZHMgd2FybmluZyBpbiBnY2MuCgkoUFVUX1NDTkhEUl9OTE5OTyk6IExpa2V3aXNlLgoJKEdFVF9TQ05IRFJfRkxBR1MpOiBMaWtld2lzZS4KCShQVVRfU0NOSERSX0ZMQUdTKTogTGlrZXdpc2UuCgkoR0VUX1NDTkhEUl9QQUdFKTogTGlrZXdpc2UuCgkoUFVUX1NDTkhEUl9QQUdFKTogTGlrZXdpc2UuCgoyMDA3LTExLTA1ICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcGUuaCAoQ09GRl9FTkNPREVfQUxJR05NRU5UKSBEZWZpbmUuCgoyMDA3LTA4LTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBwZS5oIChJTUFHRV9TQ05fQUxJR05fUE9XRVJfQklUX1BPUyk6IE5ldy4KCShJTUFHRV9TQ05fQUxJR05fUE9XRVJfQklUX01BU0spOiBMaWtld2lzZS4KCShJTUFHRV9TQ05fQUxJR05fUE9XRVJfTlVNKTogTGlrZXdpc2UuCgkoSU1BR0VfU0NOX0FMSUdOX1BPV0VSX0NPTlNUKTogTGlrZXdpc2UuCgkoSU1BR0VfU0NOX0FMSUdOXzEyOEJZVEVTKTogTGlrZXdpc2UuCgkoSU1BR0VfU0NOX0FMSUdOXzI1NkJZVEVTKTogTGlrZXdpc2UuCgkoSU1BR0VfU0NOX0FMSUdOXzUxMkJZVEVTKTogTGlrZXdpc2UuCgkoSU1BR0VfU0NOX0FMSUdOXzEwMjRCWVRFUyk6IExpa2V3aXNlLgoJKElNQUdFX1NDTl9BTElHTl8yMDQ4QllURVMpOiBMaWtld2lzZS4KCShJTUFHRV9TQ05fQUxJR05fNDA5NkJZVEVTKTogTGlrZXdpc2UuCgkoSU1BR0VfU0NOX0FMSUdOXzgxOTJCWVRFUyk6IExpa2V3aXNlLgoJKElNQUdFX1NDTl9BTElHTl8xQllURVMpOiBSZWRlZmluZWQgd2l0aAoJSU1BR0VfU0NOX0FMSUdOX1BPV0VSX0NPTlNULgoJKElNQUdFX1NDTl9BTElHTl8yQllURVMpOiBMaWtld2lzZS4KCShJTUFHRV9TQ05fQUxJR05fNEJZVEVTKTogTGlrZXdpc2UuCgkoSU1BR0VfU0NOX0FMSUdOXzhCWVRFUyk6IExpa2V3aXNlLgoJKElNQUdFX1NDTl9BTElHTl8xNkJZVEVTKTogTGlrZXdpc2UuCgkoSU1BR0VfU0NOX0FMSUdOXzMyQllURVMpOiBMaWtld2lzZS4KCShJTUFHRV9TQ05fQUxJR05fNjRCWVRFUyk6IExpa2V3aXNlLgoKMjAwNy0wNy0xMiAgS2FpIFRpZXR6ICAgPGthaS50aWV0ekBvbmV2aXNpb24uY29tPgoKCSogaW50ZXJuYWwuaCAoc3RydWN0IGludGVybmFsX3N5bWVudCk6IFVzZSBiZmRfaG9zdHB0cl90IGZvcgoJX25femVyb2VzIGFuZCBfbl9vZmZzZXQgZmllbGRzLgoKMjAwNy0wNC0yNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHJzNjAwMC5oOiBXcml0ZSBNaW1pJ3MgbmFtZSBpbiBBU0NJSS4KCjIwMDctMDMtMTkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGludGVybmFsLmggKGludGVybmFsX2V4dHJhX3BlX2FvdXRoZHIpOiBBZGQgTWFnaWMsCglNYWpvckxpbmtlclZlcnNpb24sIE1pbm9yTGlua2VyVmVyc2lvbiwgU2l6ZU9mQ29kZSwKCVNpemVPZkluaXRpYWxpemVkRGF0YSwgU2l6ZU9mVW5pbml0aWFsaXplZERhdGEsCglBZGRyZXNzT2ZFbnRyeVBvaW50LCBCYXNlT2ZDb2RlIGFuZCBCYXNlT2ZEYXRhLgoKMjAwNi0xMi0wNSAgTWljaGFlbCBUYXV0c2NobmlnICA8dGF1dHNjaG5AbW9kZWwuaW4udHVtLmRlPgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBleHRlcm5hbC5oIChzdHJ1Y3QgZXh0ZXJuYWxfYW91dGhkcik6IEFkZCBBVFRSSUJVVEVfUEFDS0VELgoJKHN0cnVjdCBleHRlcm5hbF9zeW1lbnQpOiBMaWtld2lzZS4KCSh1bmlvbiBleHRlcm5hbF9hdXhlbnQpOiBMaWtld2lzZS4KCjIwMDYtMTEtMTQgIFBoaWwgTGVsbG8gIDxwaGlsLmxlbGxvQGhvbWVjYWxsLmNvLnVrPgoKCSogcGUuaDogQWRkZWQgZGVmaW5lcyBmb3IgSU1BR0VfU1VCU1lTVEVNX0VGSV9ST00gYW5kCglJTUFHRV9TVUJTWVNURU1fWEJPWC4KCSogaW50ZXJuYWwuaDogQWRkZWQgZGVmaW5lcyBmb3IgUEUgZGlyZWN0b3J5IGVudHJ5IHR5cGVzLgoJTkI6IGluIGludGVybmFsLmggYmVjYXVzZSBJTUFHRV9OVU1CRVJPRl9ESVJFQ1RPUllfRU5UUllJRVMgaXMgaW4KCXBlLmgKCjIwMDYtMDktMjAgIEthaSBUaWV0eiAgPEthaS5UaWV0ekBvbmV2aXNpb24uY29tPgoKCSogZXh0ZXJuYWwuaDogQWRkIHByb3BlciBleHRlcm5hbF9hb3V0aGRyNjQgc3RydWN0dXJlICh3aXRob3V0CglkYXRhX3N0YXJ0IG1lbWJlcikuCgkoQU9VVEhEUlNaNjQpOiBTZXQgYWNjb3JkaW5nIHN0cnVjdHVyZSBzaXplLgoJKEFPVVRIRFI2NCk6IEFzIHR5cGVkZWYgb2YgZXh0ZXJuYWxfYW91dGhkcjY0IHN0cnVjdHVyZS4KCSogaW50ZXJuYWwuaDogQWRkIHJlbG9jYXRpb24gaWRlbnRpZmllcnMgZm9yIGNvZmYuCgkqIHBlLmg6CUFkZCBkZWZpbmUgSU1BR0VfRklMRV9NQUNISU5FX0FNRDY0IHRoZSBjb2ZmIHNpZ25hdHVyZS4KCShQRVBBT1VUSERSKTogQWRqdXN0IHN0cnVjdHVyZSB0byBoYXZlIHByb3BlciBzaXplICh1c2luZyBBT1VUSERSNjQpLgoJKFBFUEFPVVRTWik6IENhbGN1bGF0ZWQgc2l6ZSBvZiAyNDAuCgkqIHg4Nl82NC5oOiBDb2ZmIGluZm9ybWF0aW9uIGZvciB4ODZfNjQgKEFNRDY0KS4KCjIwMDYtMDItMDUgIEFybm9sZCBNZXRzZWxhYXIgIDxhcm5vbGQubWV0c2VsYWFyQHBsYW5ldC5ubD4KCgkqIGludGVybmFsLmg6IEFkZCByZWxvY2F0aW9uIG51bWJlciBSX0lNTTI0IGZvciBaODAuCgoyMDA1LTEwLTI1ICBBcm5vbGQgTWV0c2VsYWFyICA8YXJub2xkLm1ldHNlbGFhckBwbGFuZXQubmw+CgoJKiBpbnRlcm5hbC5oOiBBZGQgcmVsb2NhdGlvbiBudW1iZXIgZm9yIFo4MAoJKiB6ODAuaDogTmV3IGZpbGUuCgoyMDA1LTA4LTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYTI5ay5oOiBEZWxldGUuCgoyMDA1LTA3LTE0ICBEYW5pZWwgTWFycXVlcyAgPG1hcnF1ZXNAY3MuY29ybmVsbC5lZHU+CgoJKiBhbHBoYS5oIChBTFBIQV9FQ09GRl9DT01QUkVTU0VETUFHKTogRGVmaW5lLgoJKiBlY29mZi5oIChBTFBIQV9NQUdJQ19DT01QUkVTU0VEKTogRGVmaW5lLgoKMjAwNS0wNS0xMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIFVwZGF0ZSB0aGUgYWRkcmVzcyBhbmQgcGhvbmUgbnVtYmVyIG9mIHRoZSBGU0Ygb3JnYW5pemF0aW9uIGluCgl0aGUgR1BMIG5vdGljZXMgaW4gdGhlIGZvbGxvd2luZyBmaWxlczoKCWEyOWsuaCwJYWxwaGEuaCwgYXBvbGxvLmgsIGFybS5oLCBhdXgtY29mZi5oLCBlY29mZi5oLCBleHRlcm5hbC5oLAoJZ28zMmV4ZS5oLCBoODMwMC5oLCBoODUwMC5oLCBpMzg2LmgsIGk4NjAuaCwgaTk2MC5oLCBpYTY0LmgsCglpbnRlcm5hbC5oLCBtNjhrLmgsIG04OGsuaCwgbWF4cS5oLCBtY29yZS5oLCBtaXBzLmgsIG1pcHNwZS5oLAoJb3IzMi5oLCBwZS5oLCBwb3dlcnBjLmgsIHJzNms2NC5oLCBzaC5oLCBzcGFyYy5oLCB0aS5oLCB0aWMzMC5oLAoJdGljNHguaCwgdGljNTR4LmgsIHRpYzgwLmgsIHc2NS5oLCB3ZTMyay5oLCB4Y29mZi5oLCB6OGsuaAoJCjIwMDUtMDItMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiB4Y29mZi5oIChzdHJ1Y3QgeGNvZmZfbG9hZGVyX2luZm8pOiBXYXJuaW5nIGZpeC4KCjIwMDUtMDEtMTAgIEluZGVycHJlZXQgU2luZ2ggPGluZGVycHJlZXRiQG5vaWRhLmhjbHRlY2guY29tPgoKCSogbWF4cS5oIChGX01BWFExMCwgRl9NQVhRMjApOiBEZWZpbmUuCgoyMDA0LTExLTA4ICBJbmRlcnByZWV0IFNpbmdoICAgPGluZGVycHJlZXRiQG5pb2RhLmhjbHRlY2guY29tPgoJICAgIFZpbmVldCBTaGFybWEgICAgICA8dmluZWV0c0Bub2lkYS5oY2x0ZWNoLmNvbT4KCgkqIG1heHEuaDogTmV3IGZpbGU6IERlZmludGlvbnMgZm9yIHRoZSBtYXhxIHBvcnQuCgoyMDA0LTExLTA4ICBBYXJvbiBXLiBMYUZyYW1ib2lzZSA8YWFyb245OHdpcmlkZ2U5QGFhcm9ud2wuY29tPgoKCSogcGUuaCAoSU1BR0VfV0VBS19FWFRFUk5fU0VBUkNIX05PTElCUkFSWSk6IERlZmluZS4KCShJTUFHRV9XRUFLX0VYVEVSTl9TRUFSQ0hfTElCUkFSWSk6IFNhbWUuCgkoSU1BR0VfV0VBS19FWFRFUk5fU0VBUkNIX0FMSUFTKTogU2FtZS4KCjIwMDQtMDgtMTMgIE1hcmsgS2V0dGVuaXMgIDxrZXR0ZW5pc0BnbnUub3JnPgoKCSogc3ltY29uc3QuaCAobGFuZ01heCk6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgoyMDA0LTA0LTIzICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogbWlwcy5oIChNSVBTX1JfUkVMSEksIE1JUFNfUl9SRUxMTywgTUlQU19SX1NXSVRDSCk6IFJlbW92ZQoJKE1JUFNfUl9QQ1JFTDE2KTogVXBkYXRlIGNvbW1lbnQuCgkqIGVjb2ZmLmggKHN0cnVjdCBlY29mZl92YWx1ZV9hZGp1c3QpOiBSZW1vdmUgc3RydWN0dXJlLgoJKHN0cnVjdCBlY29mZl9kZWJ1Z19pbmZvKTogUmVtb3ZlICdhZGp1c3QnIG1lbWJlci4KCjIwMDQtMDQtMjAgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogaW50ZXJuYWwuaCAoUl9TRUNSRUwzMik6IEFkZC4KCkZvciBvbGRlciBjaGFuZ2VzIHNlZSBDaGFuZ2VMb2ctOTEwMwoMCkxvY2FsIFZhcmlhYmxlczoKbW9kZTogY2hhbmdlLWxvZwpsZWZ0LW1hcmdpbjogOApmaWxsLWNvbHVtbjogNzQKdmVyc2lvbi1jb250cm9sOiBuZXZlcgpFbmQ6Cg==