MjAwMy0xMi0xOSAgS2F6dWhpcm8gSW5hb2thICA8aW5hb2thLmthenVoaXJvQHJlbmVzYXMuY29tPgoKCUFkZCBtMzJyLWxpbnV4IGFuZCBQSUMgc3VwcG9ydC4gIEFkZCBuZXcgQUJJIHRoYXQgdXNlcyBSRUxBLgoJKiBNYWtlZmlsZS5hbTogQWRkZWQgZW0zMnJsZWxmLmMsIGVtMzJyZWxmX2xpbnV4LmMsCgllbTMycmxlbGZfbGludXguYy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3QgKG0zMnIqLSotbGludXgqLCBtMzJyKmxlLSotbGludXgqLCBtMzJyKmxlLSotKik6QWRkZWQuCgkqIGVtdWxwYXJhbXMvbTMycmVsZl9saW51eC5zaDogQWRkZWQuCgkqIGVtdWxwYXJhbXMvbTMycmxlbGYuc2g6IERpdHRvLgoJKiBlbXVscGFyYW1zL20zMnJsZWxmX2xpbnV4LnNoOiBEaXR0by4KCSogTkVXUzogTWVudGlvbiBzdXBwb3J0IG0zMnIgTGludXguCgoyMDAzLTEyLTE4ICBFcmljIFlvdW5nZGFsZSAgPGVyaWNAbWtzc29mdHdhcmUuY29tPgogICAgICAgICAgICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL3BlLmVtIChfYWZ0ZXJfb3Blbik6IFdoZW4gc2Nhbm5pbmcgTVMgaW1wb3J0CglsaWJyYXJpZXMgYWxsb3cgZm9yIHRoZSBwb3NzaWJsZSBwcmVzZW5jZSBvZiBzdGF0aWMgb2JqZWN0cy4KCjIwMDMtMTItMDcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX3ZlcnNfbWF0Y2gpOiBQYXNzICJETUdMX1BBUkFNUyB8IERNR0xfQU5TSSIgdG8KCWNwbHVzX2RlbWFuZ2xlLgoKMjAwMy0xMi0wNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGxkZW11bC5jOiBDb252ZXJ0IHRvIElTTy1DLgoJKiBsZHZlci5jOiBMaWtld2lzZS4KCjIwMDMtMTItMDYgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBsZXhzdXAuYyAoaXNfbnVtKTogUmVtb3ZlLgoKMjAwMy0xMi0wNSAgRG1pdHJ5IFNlbXlvbm92ICA8RG1pdHJ5LlNlbXlvbm92QG9rdGV0LnJ1PgoKCSogcGUtZGxsLmMgKGdlbmVyYXRlX3JlbG9jKTogUmVtYXAgQVJNXzI2RCByZWxvY2F0aW9uIGZyb20gNSB0bwoJMC4gIFRoaXMgZml4ZXMgImJhZCBmaXh1cCIgZXJyb3IgZ2VuZXJhdGVkIGJ5IE1TIGxpbmtlci4KCjIwMDMtMTItMDQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVtdWx0ZW1wbC9pYTY0ZWxmLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9hZnRlcl9wYXJzZSk6IFNldAoJbGlua19pbmZvLm5lZWRfcmVsYXhfZmluYWxpemUgdG8gVFJVRS4KCgkqIGxkbGFuZy5jIChsYW5nX3Byb2Nlc3MpOiBVc2UgbGlua19pbmZvLm5lZWRfcmVsYXhfZmluYWxpemUKCWluc3RlYWQgb2YgbGlua19pbmZvLnJlbGF4X2ZpbmFsaXppbmcuCgkqIGxkbWFpbi5jIChtYWluKTogTGlrZXdpc2UuCgoyMDAzLTEyLTA0ICBEbWl0cnkgU2VteW9ub3YgIDxEbWl0cnkuU2VteW9ub3ZAb2t0ZXQucnU+CgoJKiBhcm1wZS5zaCAoUkVMT0NBVEVBQkxFX09VVFBVVF9GT1JNQVQpOiBEZWZpbmUuCgoyMDAzLTEyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRsYW5nLmMgKGxhbmdfZG9fYXNzaWdubWVudHMpOiBGdW5jdGlvbiByZXR1cm4gaXMgdm9pZC4KCSogbGRsYW5nLmggKGxhbmdfZG9fYXNzaWdubWVudHMpOiBEaXR0by4KCSogZW11bHRlbXBsL25ldGJzZC5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYmVmb3JlX3BhcnNlKTogRGVjbGFyZS4KCSogTWFrZWZpbGUuYW0gKGVuczMya25ic2QuYyk6IERlcGVuZCBvbiBuZXRic2QuZW0uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0xMi0wMyAgRGF2ZSBBaXJsaWUgIDxhaXJsaWVkQGxpbnV4LmllPgoKCSogY29uZmlndXJlLnRndDogQWRkIHZheC1saW51eC1nbnUgdGFyZ2V0LgoKMjAwMy0xMi0wMyAgRG1pdHJ5IERpa3kgIDxkaXdpbEBtYWlsLnJ1PgoKCSogc2NyaXB0dGVtcGwvZWxmMzJtc3A0MzAuc2MgKEhFQVBfU0VDVElPTl9NU1A0MzApOiBOZXcgc2VjdGlvbiBmb3IKCWZvcnRoY29taW5nIGRldmljZXMuCgkoX2V0ZXh0KTogcHJvdmlkZSB0aGlzIGRlZmVuaXRpb24gZm9yIGFsbCBzY3JpcHRzLgoKMjAwMy0xMi0wMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGVtdWx0ZW1wbC9iZW9zLmVtOiBSZW1vdmUgQVJHU1VTRUQuCgoyMDAzLTEyLTAzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL3BlLmVtIChwZV9maXh1cF9zdGRjYWxscyk6IFVwZGF0ZSBmb3IgcmVuYW1lZAoJYmZkX2xpbmtfaGFzaF9lbnRyeSBmaWVsZCAibmV4dCIgLT4gInVuZF9uZXh0Ii4KCShwZV9maW5kX2RhdGFfaW1wb3J0cyk6IExpa2V3aXNlLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9hZnRlcl9vcGVuKTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9zdW5vcy5lbSAoYmVmb3JlX2FsbG9jYXRpb24pOiBMaWtld2lzZS4KCjIwMDMtMTItMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsZC50ZXhpbmZvIChPcHRpb25zKTogLS1pZ25vcmUtYWxsIGlzIG5vIGxvbmdlciB0aGUgZGVmYXVsdAoJYmVoYXZpb3VyIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljIGV4ZWN1dGFibGVzLgoKMjAwMy0xMi0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAzLTEyLTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRtYWluLmMgKG1haW4pOiBSZW1vdmUgbXBjODYwYzAgY29kZS4KCSogbGV4c3VwLmMgKGVudW0gb3B0aW9uX3ZhbHVlcyk6IERlbGV0ZSBPUFRJT05fTVBDODYwQzAuCgkobGRfb3B0aW9ucyk6IERlbGV0ZSBtcGM4NjBjMCBlbnRyeS4KCShwYXJzZV9hcmdzKTogTGlrZXdpc2UuCgoyMDAzLTEyLTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9iZWZvcmVfYWxsb2NhdGlvbik6IFRlc3QKCWhhc2ggdGFibGUgdHlwZSByYXRoZXIgdGhhbiB0ZXN0aW5nIGNyZWF0b3IgZmxhdm91ci4KCSogZW11bHRlbXBsL2hwcGFlbGYuZW0gKGhwcGFlbGZfY3JlYXRlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudHMpOgoJT25seSBjcmVhdGUgc3R1Yl9maWxlIGJmZCBpZiBoYXNoIHRhYmxlIGNyZWF0b3IgaXMgYXMgZXhwZWN0ZWQuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fZmluaXNoKTogVGVzdCBzdHViX2ZpbGUuCgoyMDAzLTExLTI4ICBNYXJjZWwgTW9vbGVuYWFyICA8bWFyY2VsQHhjbGxudC5uZXQ+CgoJKiBlbXVscGFyYW1zL2VsZjY0X2lhNjRfZmJzZC5zaCAoVEVYVF9TVEFSVF9BRERSKTogRGVmaW5lLgoJKERBVEFfQUREUik6IFVuc2V0LgoKMjAwMy0xMS0xOCAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfcHJvY2Vzcyk6IE1vdmUgbGFuZ19yZXNldF9tZW1vcnlfcmVnaW9ucyBjYWxsIGFmdGVyCglsYW5nX2RvX2Fzc2lnbm1lbnRzIGNhbGwuCgoJKiBlbXVscGFyYW1zL2VsZjY0X2lhNjQuc2ggKE9USEVSX1BMVF9SRUxPQ19TRUNUSU9OUyk6IEluY2x1ZGUKCS5yZWxhLm9wZCBpZiAtcGllLgoKMjAwMy0xMS0xMCAgSm9uYXRoYW4gV2lsc29uIDxqb253aWxAdHBnaS5jb20uYXU+CgoJKiBzY3JpcHR0ZW1wbC9wZS5zYzogQWRkIHN1cHBvcnQgZm9yIFRMUyBzZWN0aW9ucy4KCjIwMDMtMTEtMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWd1cmUuaG9zdCAoSE9TVElOR19MSUJTKTogR3JvdXAgbGliZ2NjIGFuZCBsaWJjIHdpdGgKCS0tc3RhcnQtZ3JvdXAsIC0tZW5kLWdyb3VwIHBhaXIuCgkoKi0qLW5ldGJzZCosIGFtMzNfMi4wLSotbGludXgqKTogVXNlIHRoZSBkZWZhdWx0IEhPU1RJTkdfTElCUy4KCShhbTMzXzIuMC0qLWxpbnV4Kik6IEVkaXQgZGVmYXVsdCBIT1NUSU5HX0NSVDAuCgkoYXJtKi0qLWxpbnV4LWdudSopOiBSZW1vdmUgZXh0cmFuZW91cyAnKicgaW4gc2VkIGV4cHJlc3Npb24uCgkoaHBwYSo2NCotKi1saW51eCosIGhwcGEqLSotbGludXgqKTogUmVtb3ZlIHRhcmdldCBzcGVjaWZpYyBjYXNlLgoKMjAwMy0xMS0wNyAgSm9uYXRoYW4gUi4gR3JhbnQgIDxqZy1iaW51dGlsc0BqZ3VrLm9yZz4KCgkqIGxkZmlsZS5jIChsZGZpbGVfb3Blbl9maWxlKTogVXNlICJObyBzdWNoIGZpbGUiIGVycm9yIG1lc3NhZ2UuCgoyMDAzLTExLTA2ICBCcnVubyBSb2hlZSAgPGJydW5vQHJvaGVlLmNvbT4KCgkqIGxzLnRleGluZm86IEZpeCAidGhlIHRoZSIgdHlwby4KCjIwMDMtMTEtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvcGUuZW0gKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9hZnRlcl9vcGVuKTogT25seSBkbwoJcGVfZGxsX2V4dHJhX3BlX2RlYnVnIHN0dWZmIHdoZW4gRExMX1NVUFBPUlQgZGVmaW5lZC4KCShwcl9zeW0pOiBNb3ZlIGluc2lkZSAjaWZkZWYgRExMX1NVUFBPUlQuCgoJKiBlbXVsdGVtcGwvcHBjNjRlbGYuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X25ld192ZXJzX3BhdHRlcm4pOiBaYXAKCXVudXNlZCB2YXJpYWJsZS4KCgkqIGVtdWxwYXJhbXMvZWxmMzJfaTg2MC5zaCAoVEVYVF9TVEFSVF9BRERSKTogRGVmaW5lLgoKMjAwMy0xMS0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYmVmb3JlX2FsbG9jYXRpb24pOiBDYWxsCglfYmZkX2VsZl90bHNfc2V0dXAuCgoyMDAzLTEwLTMxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbGRsYW5nLmMgKGxvb2t1cF9uYW1lKTogV2hlbiBsb29raW5nIGZvciBhIHByZXZpb3VzbHkgbG9hZGVkCglmaWxlIGNvbXBhcmUgdGhlIGxvY2FsX3N5bV9uYW1lIG5vdCB0aGUgZmlsZW5hbWUsIGFzIHRoZQoJZmlsZW5hbWUgbWlnaHQgaGF2ZSBiZWVuIHRyYW5zZm9ybWVkIHZpYSB0aGUgc2VhcmNoIGRpcmVjdG9yeQoJcGF0aCBsb29rdXAuCglJZiB0aGUgc291Z2h0LWZvciBmaWxlIGhhcyBub3QgYmVlbiBmb3VuZCBpbiB0aGUgaW5wdXQgZmlsZQoJY2hhaW4gdGhlbiBjcmVhdGUgYSBuZXcgbm9kZSB3aXRoIHRoZSBzZWFyY2hfZGlyc19mbGFnIHNldCBzbwoJdGhhdCB0aGUgZW50aXJlIHNldCBvZiBkaXJlY3RvcnkgcGF0aHMgd2lsbCBiZSBzY2FubmVkIGZvciBpdC4KCjIwMDMtMTAtMzAgIEFuZHJldyBDYWduZXkgIDxjYWduZXlAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9wZS5lbSwgcGUtZGxsLmM6IFJlcGxhY2UgInN0cnVjdCBzeW1ib2xfY2FjaGVfZW50cnkiCgl3aXRoICJzdHJ1Y3QgYmZkX3N5bWJvbCIuCgoyMDAzLTEwLTMwIFBoaWwgRWR3YXJkcyA8cGhpbEBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9FTVVMQVRJT05TKTogQWRkIGVsZjMybWlwc3dpbmRpc3Muby4KCShlZWxmMzJtaXBzd2luZGlzcy5jKTogTmV3IHRhcmdldC4KCSogTWFrZWZpbGUuaW46ICBSZWdlbmVyYXRlZC4KCSogZW11bHBhcmFtcy9lbGYzMm1pcHN3aW5kaXNzLnNoOiAgTmV3IGZpbGUuCgkqIGNvbmZpZ3VyZS50Z3QgKGlbMy03XTg2LSotdnh3b3JrcyosIGFybS0qLXZ4d29ya3MsIHNoLSotdnh3b3JrcywKCW1pcHMqLSotdnh3b3JrcyopOiAgVXNlIEVMRiBub3cuCgkobWlwcyotKi13aW5kaXNzKTogIE5ldyBzdGFuemEsIHVzZSBlbGYzMm1pcHN3aW5kaXNzLgoKMjAwMy0xMC0yNyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBzY3JpcHR0ZW1wbC9lbGZtNjhoYzEyLnNjOiBEZWZpbmUgZWVwcm9tIG1lbW9yeSByZWdpb24uCgoyMDAzLTEwLTI1ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogQ2hhbmdlTG9nLTkxOTc6IEZpeCB0eXBvcy4KCSogTkVXUzogTGlrZXdpc2UuCgkqIGxkLnRleGluZm86IExpa2V3aXNlLgoJKiBsZGxhbmcuYzogRml4IGNvbW1lbnQgdHlwb3MuCgoyMDAzLTEwLTI0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBsZGxhbmcuYyAobGFuZ192ZXJzX21hdGNoKTogRml4IGEgdHlwby4KCjIwMDMtMTAtMjQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX3ZlcnNfbWF0Y2gpOiBDaGVjayBkZW1hbmdsZWQgc3ltYm9scy4KCjIwMDMtMTAtMjQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX3ZlcnNfbWF0Y2gpOiBDaGVjayAic3ltYm9sIiBpbnN0ZWFkIG9mCgkid2lsZGNhcmQiIGFuZCAicGF0dGVybiIuIEZpeCBhIHR5cG8uCgkobGFuZ19maW5hbGl6ZV92ZXJzaW9uX2V4cHJfaGVhZCk6IExpa2V3aXNlLgoJKGxhbmdfcmVnaXN0ZXJfdmVyc19ub2RlKTogTGlrZXdpc2UuCgkocmVhbHN5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCShsYW5nX25ld192ZXJzX3BhdHRlcm4pOiBTZXQgInN5bWJvbCIgYW5kIHJlbW92ZSAid2lsZGNhcmQiLgoKCSogbGRsZXgubCAoVl9JREVOVElGSUVSKTogQWxsb3cgJ1xcJy4KCjIwMDMtMTAtMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvbTY4aGMxeGVsZi5lbSAoYmVmb3JlX2FsbG9jYXRpb24pOiBBZGQgbWlzc2luZyBzZWNvbmQKCXBhcmFtZXRlciB0byBsYW5nX21lbW9yeV9yZWdpb25fbG9va3VwLgoKMjAwMy0xMC0yMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBsZGxhbmcuYzogSW5jbHVkZSBoYXNodGFiLmguCgkobGFuZ192ZXJzX21hdGNoX2xhbmdfYywgbGFuZ192ZXJzX21hdGNoX2xhbmdfY3BsdXNwbHVzLAoJbGFuZ192ZXJzX21hdGNoX2xhbmdfamF2YSk6IFJlbW92ZS4KCShsYW5nX3ZlcnNfbWF0Y2gpOiBOZXcgZnVuY3Rpb24uCgkobGFuZ19uZXdfdmVyc19wYXR0ZXJuKTogSW5pdGlhbGl6ZSB3aWxkY2FyZCBhbmQgbWFzawoJZmllbGRzLCBkb24ndCBpbml0aWFsaXplIG1hdGNoLgoJKGxhbmdfbmV3X3ZlcnNfbm9kZSk6IFVzZSB4Y2FsbG9jLiAgQWRqdXN0IGZvciBnbG9iYWxzIGFuZAoJbG9jYWxzIGZpZWxkIHR5cGUgY2hhbmdlcy4gIFNldCBtYXRjaCBmaWVsZC4KCSh2ZXJzaW9uX2V4cHJfaGVhZF9oYXNoLCB2ZXJzaW9uX2V4cHJfaGVhZF9lcSk6IE5ldyBmdW5jdGlvbnMuCgkobGFuZ19maW5hbGl6ZV92ZXJzaW9uX2V4cHJfaGVhZCk6IE5ldyBmdW5jdGlvbi4KCShsYW5nX3JlZ2lzdGVyX3ZlcnNfbm9kZSk6IENhbGwgbGFuZ19maW5hbGl6ZV92ZXJzaW9uX2V4cHJfaGVhZC4KCVNlYXJjaCBpbiBoYXNoIHRhYmxlIGlmIG5vdCB3aWxkY2FyZCB3aGVuIGxvb2tpbmcgZm9yIGR1cGxpY2F0ZXMuCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbSAobmV3X3ZlcnNfcGF0dGVybik6IERvbid0IGJvdGhlciB3aXRoCglkdXBsaWNhdGUgY2hlY2tpbmcuICBJbml0aWFsaXplIGFsbCBmaWVsZHMgb2YgZG90X2VudHJ5IGZyb20gZW50cnkKCXdpdGggdGhlIGV4Y2VwdGlvbiBvZiBwYXR0ZXJuIGFuZCBuZXh0LgoKMjAwMy0xMC0yMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX21lbW9yeV9yZWdpb25fbG9va3VwKTogQWRkIHNlY29uZCBwYXJhbWV0ZXIgLQoJY3JlYXRlIC0gd2hpY2ggaXMgdHJ1ZSBpZiB0aGUgcmVnaW9uIGlzIGJlaW5nIGNyZWF0ZWQuICBJc3N1ZQoJYXBwcm9wcmlhdGUgd2FybmluZyBtZXNzYWdlcyBmb3IgZmluZGluZyBhbmQgbm90IGZpbmRpbmcKCWFscmVhZHkgY3JlYXRlZCByZWdpb25zLgoJKGxhbmdfbWVtb3J5X2RlZmF1bHQpOiBVc2UgREVGQVVMVF9NRU1PUllfUkVHSU9OLgoJKGxhbmdfbGVhdmVfb3ZlcmxheV9zZWN0aW9uKTogTGlrZXdpc2UuCgkobGFuZ19zaXplX3NlY3Rpb25zXzEpOiBMaWtld2lzZS4KCVBhc3Mgc2Vjb25kIHBhcmFtZXRlciB0byBsYW5nX21lbW9yeV9yZWdpb25fbG9va3VwLgoJKGxhbmdfZ2V0X3JlZ2lvbnMpOiBMaWtld2lzZS4KCSogbGRsYW5nLmggKERFRkFVTFRfTUVNT1JZX1JFR0lPTik6IERlZmluZS4KCVVwZGF0ZSBwcm90b3R5cGUgZm9yIGxhbmdfbWVtb3J5X3JlZ2lvbl9sb29rdXAuCgkqIGxkZ3JhbS55OiBQYXNzIHNlY29uZCBwYXJhbWV0ZXIgdG8gbGFuZ19tZW1vcnlfcmVnaW9uX2xvb2t1cC4KCVVzZSBERUZBVUxUX01FTU9SWV9SRUdJT04gaW5zdGVhZCBvZiAiKmRlZmF1bHQiLgoKMjAwMy0xMC0yMCAgQW5kcmV3IENhZ25leSAgPGNhZ25leUByZWRoYXQuY29tPgoKCSogcGUtZGxsLmM6IFJlcGxhY2UgInN0cnVjdCBzZWMiIHdpdGggInN0cnVjdCBiZmRfc2VjdGlvbiIuCgoyMDAzLTEwLTE5ICBNYXJlayBNaWNoYWxraWV3aWN6ICA8bWFyZWttQGFtZWxlay5nZGEucGw+CgoJKiBNYWtlZmlsZS5hbTogUmVtb3ZlIG9sZCAoYmVmb3JlIEdDQyAzLjMpIGVtdWxhdGlvbnMgZm9yIEFWUgoJdGFyZ2V0OiBhdnIxMjAwLCBhdnIyM3h4LCBhdnI0NDMzLCBhdnI0NHg0LCBhdnI4NXh4LCBhdnJtZWdhMTAzLAoJYXZybWVnYTE2MSwgYXZybWVnYTYwMy4gIERlZmF1bHQgdG8gYXZyMi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3Q6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cjEyMDAuc2g6IFJlbW92ZS4KCSogZW11bHBhcmFtcy9hdnIyM3h4LnNoOiBSZW1vdmUuCgkqIGVtdWxwYXJhbXMvYXZyNDQzMy5zaDogUmVtb3ZlLgoJKiBlbXVscGFyYW1zL2F2cjQ0eDQuc2g6IFJlbW92ZS4KCSogZW11bHBhcmFtcy9hdnI4NXh4LnNoOiBSZW1vdmUuCgkqIGVtdWxwYXJhbXMvYXZybWVnYTEwMy5zaDogUmVtb3ZlLgoJKiBlbXVscGFyYW1zL2F2cm1lZ2ExNjEuc2g6IFJlbW92ZS4KCSogZW11bHBhcmFtcy9hdnJtZWdhNjAzLnNoOiBSZW1vdmUuCgkqIHNjcmlwdHRlbXBsL2VsZjMyYXZyLnNjOiBSZW1vdmUuCgoyMDAzLTEwLTE5ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogZW11bHRlbXBsL3RpY29mZi5lbSAoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X2xpc3Rfb3B0aW9ucyk6IEFkZAoJbmV3bGluZSB0byBtZXNzYWdlLgoKCSogZGVmZmlsZXAueTogUmVtb3ZlIGNvbW1hcyBmcm9tICV0b2tlbiBsaW5lcy4KCjIwMDMtMTAtMTggIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGVtdWx0ZW1wbC9tbWl4LWVsZm5tbW8uZW0gKG1taXhfYmVmb3JlX2FsbG9jYXRpb24pOiBGb3JjZSBsaW5rZXIKCXJlbGF4YXRpb24gYWx3YXlzOyBkb24ndCBleGNsdWRlIHJlbG9jYXRhYmxlIGxpbmtpbmcuICBBZGp1c3QgZm9yCglfYmZkX21taXhfcHJlcGFyZV9saW5rZXJfYWxsb2NhdGVkX2dyZWdzIHJlbmFtZWQgdG8KCV9iZmRfbW1peF9iZWZvcmVfbGlua2VyX2FsbG9jYXRpb24uCgkobW1peF9hZnRlcl9hbGxvY2F0aW9uKTogQWRqdXN0IGZvcgoJX2JmZF9tbWl4X2ZpbmFsaXplX2xpbmtlcl9hbGxvY2F0ZWRfZ3JlZ3MgcmVuYW1lZCB0bwoJX2JmZF9tbWl4X2FmdGVyX2xpbmtlcl9hbGxvY2F0aW9uLgoJKiBzY3JpcHR0ZW1wbC9tbW8uc2M6IFVzZSBBRERSICgudGV4dCksIG5vdCAuIC0gU0laRU9GICgudGV4dCkuCgoJKiBsZGxhbmcuYyAobGFuZ19zaXplX3NlY3Rpb25zKTogTGFzdCwgc2V0IF9jb29rZWRfc2l6ZSBmb3Igb3V0cHV0CglzZWN0aW9ucy4KCjIwMDMtMTAtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbSAoR0VOU0NSSVBUU19FWFRSQSwgR0VOX0VYVFJBX0RFUEVORFMpOiBSZW1vdmUuICBVc2UKCUdFTlNDUklQVFMgYW5kIEdFTl9ERVBFTkRTIGluIHBsYWNlIG9mIHRoZXNlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZ2Vuc2NyaXB0c19leHRyYS5zaDogRGVsZXRlLiAgTWVyZ2UgZXh0cmEgZnVuY3Rpb25hbGl0eSB0by4uCgkqIGdlbnNjcmlwdHMuc2g6IC4uaGVyZS4KCgkqIGVtdWxwYXJhbXMvZ2xkOTYwLnNoIChURVhUX1NUQVJUX0FERFIsIFRBUkdFVF9QQUdFX1NJWkUpOiBEZWZpbmUuCgkqIGVtdWxwYXJhbXMvZ2xkOTYwY29mZi5zaCAoVEVYVF9TVEFSVF9BRERSLCBUQVJHRVRfUEFHRV9TSVpFKTogRGl0dG8uCgkqIGVtdWxwYXJhbXMvbG5rOTYwLnNoIChURVhUX1NUQVJUX0FERFIsIFRBUkdFVF9QQUdFX1NJWkUpOiBEaXR0by4KCSogZW11bHBhcmFtcy9tODhrYmNzLnNoIChURVhUX1NUQVJUX0FERFIsIFRBUkdFVF9QQUdFX1NJWkUpOiBEaXR0by4KCSogZW11bHBhcmFtcy92YW5pbGxhLnNoIChURVhUX1NUQVJUX0FERFIsIFRBUkdFVF9QQUdFX1NJWkUpOiBEaXR0by4KCjIwMDMtMTAtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvaWE2NGVsZi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYWZ0ZXJfcGFyc2UpOiBEb24ndAoJdXNlICRFTVVMQVRJT05fTkFNRSB0byBjYWxsIGJmZCBmdW5jdGlvbi4KCjIwMDMtMTAtMTQgIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwZS1kbGwuYyAocGVfaW1wbGllZF9pbXBvcnRfZGxsKTogQWxzbyBzY2FuIC5yZGF0YSBzZWN0aW9ucwoJdG8gaWRlbnRpZnkgZGF0YSBzeW1ib2xzLgoKMjAwMy0xMC0xMyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZW11bHBhcmFtcy9lbGYzMmJtaXBuMzItZGVmcy5zaCAoSU5JVElBTF9SRUFET05MWV9TRUNUSU9OUyk6IE1vdmUKCWRlZmluaXRpb24gZnJvbSBlbGY2NGJ0c21pcC5zaC4KCShURVhUX0RZTkFNSUMpOiBMaWtld2lzZSBlbGYzMmJ0c21pcG4zMi5zaC4KCSogZW11bHBhcmFtcy9lbGYzMmJ0c21pcG4zMi5zaCAoVEVYVF9EWU5BTUlDKTogUmVtb3ZlLgoJKiBlbXVscGFyYW1zL2VsZjY0YnRzbWlwLnNoIChJTklUSUFMX1JFQURPTkxZX1NFQ1RJT05TKTogUmVtb3ZlLgoJKiBlbXVscGFyYW1zL2VsZjY0Ym1pcC5zaCAoU0hMSUJfVEVYVF9TVEFSVF9BRERSKTogRGVmaW5lLgoJKEVYRUNVVEFCTEVfU1lNQk9MUyk6IFNldCBfX2VsZl9oZWFkZXIgY29ycmVjdGx5IGZvciBzaGFyZWQgb2JqZWN0cy4KCURlZmluZSBfX3Byb2dyYW1faGVhZGVyX3RhYmxlIGluIHRlcm1zIG9mIF9fZWxmX2hlYWRlci4KCjIwMDMtMTAtMTAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChlZWxmNjRfaWE2NC5jKTogQWxzbyBkZXBlbmQgb24KCSQoc3JjZGlyKS9lbXVsdGVtcGwvaWE2NGVsZi5lbS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoKCSogZW11bHBhcmFtcy9lbGY2NF9pYTY0LnNoIChFWFRSQV9FTV9GSUxFKTogU2V0IHRvIGlhNjRlbGYuCgoJKiBlbXVsdGVtcGwvaWE2NGVsZi5lbTogTmV3LgoKMjAwMy0xMC0xMiAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBlbXVscGFyYW1zL3NoZWxmMzJfbmJzZC5zaCAoT1RIRVJfU0VDVElPTlMpOiBSZWRlZmluZS4KCjIwMDMtMTAtMTEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGxkLnRleGluZm8gKEJ1aWx0aW4gRnVuY3Rpb25zKSA8REVGSU5FRD46IFNheSB0aGF0IG9ubHkgc3ltYm9scwoJZGVmaW5lZCBiZWZvcmUgdGhlIHN0YXRlbWVudCB1c2luZyBERUZJTkVEIHlpZWxkIDEuCgkqIGxkZXhwLmMgKGZvbGRfbmFtZSkgPGNhc2UgREVGSU5FRD46IEluIGxhbmdfZmlyc3RfcGhhc2VfZW51bSwKCWNhbGwgbGFuZ190cmFja19kZWZpbmVkbmVzcyBvbiBzeW1ib2wuICBJbiBzdWJzZXF1ZW50IHBoYXNlcywgdXNlCglsYW5nX3N5bWJvbF9kZWZpbml0aW9uX2l0ZXJhdGlvbiBhbmQgbGFuZ19zdGF0ZW1lbnRfaXRlcmF0aW9uIHRvCgljaGVjayB3aGV0aGVyIHRoZSBzeW1ib2wgd2FzIGRlZmluZWQgYmVmb3JlIHRoZSBjdXJyZW50IHN0YXRlbWVudC4KCShleHBfZm9sZF90cmVlKSA8Y2FzZSBldHJlZV9hc3NpZ24gZXQgYWw+OiBDYWxsCglsYW5nX3VwZGF0ZV9kZWZpbmVkbmVzcyBiZWZvcmUgdXBkYXRpbmcgc3ltYm9sIHR5cGUgd2hlbiBzZXR0aW5nCglzeW1ib2wuCgkqIGxkbGFuZy5jIChsYW5nX2RlZmluZWRuZXNzX3RhYmxlKTogTmV3IHZhcmlhYmxlLgoJKGxhbmdfZGVmaW5lZG5lc3NfbmV3ZnVuYywgbGFuZ190cmFja19kZWZpbmVkbmVzcykKCShsYW5nX3N5bWJvbF9kZWZpbml0aW9uX2l0ZXJhdGlvbiwgbGFuZ191cGRhdGVfZGVmaW5lZG5lc3MpOiBOZXcKCWZ1bmN0aW9ucy4KCShsYW5nX2luaXQpOiBJbml0aWFsaXplIGxhbmdfZGVmaW5lZG5lc3NfdGFibGUgYW5kCglsYW5nX3N0YXRlbWVudF9pdGVyYXRpb24uCgkobGFuZ19maW5pc2gpOiBEZXN0cm95IGJmZF9oYXNoX3RhYmxlX2ZyZWUuCgkobGFuZ19zaXplX3NlY3Rpb25zKTogSW5jcmVtZW50IGxhbmdfc3RhdGVtZW50X2l0ZXJhdGlvbi4KCShsYW5nX2RvX2Fzc2lnbm1lbnRzXzEpOiBOZXcgZnVuY3Rpb24gd2l0aCBmb3JtZXIKCWxhbmdfZG9fYXNzaWdubWVudHMgY29udGVudHMuICBDaGFuZ2UgcmVjdXJzaXZlIGNhbGxzIHRvIGNhbGwgdGhpcwoJZnVuY3Rpb24uCgkobGFuZ19kb19hc3NpZ25tZW50cyk6IEV2YWN1YXRlIGNvbnRlbnRzLiAgSW5jcmVtZW50CglsYW5nX3N0YXRlbWVudF9pdGVyYXRpb24sIHRoZW4ganVzdCBjYWxsIGxhbmdfZG9fYXNzaWdubWVudHNfMS4KCSogbGRsYW5nLmggKHN0cnVjdCBsYW5nX2RlZmluZWRuZXNzX2hhc2hfZW50cnkpCgkobGFuZ19zdGF0ZW1lbnRfaXRlcmF0aW9uLCBsYW5nX3RyYWNrX2RlZmluZWRuZXNzKQoJKGxhbmdfc3ltYm9sX2RlZmluaXRpb25faXRlcmF0aW9uLCBsYW5nX3VwZGF0ZV9kZWZpbmVkbmVzcyk6CglEZWNsYXJlLgoKMjAwMy0xMC0wOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogc2NyaXB0dGVtcGwvZWxmLnNjIChfX2V4ZWN1dGFibGVfc3RhcnQpOiBQcm92aWRlLgoKMjAwMy0xMC0wOSAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBlbXVscGFyYW1zL2FybWVsZi5zaDogRGVmaW5lIE5PX1NNQUxMX0RBVEEuCgkqIGVtdWxwYXJhbXMvYXJtZWxmX2xpbnV4LnNoLCBlbXVscGFyYW1zL2FybWVsZl9vYWJpLnNoLAoJZW11bHBhcmFtcy9hcm1udG8uc2g6IExpa2V3aXNlLgoKMjAwMy0xMC0wOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBsZGxhbmcuYyAobGFuZ19zaXplX3NlY3Rpb25zXzEpOiBVc2UgSUdOT1JFX1NFQ1RJT04gdG8gdGVsbAoJd2hldGhlciB0byBza2lwIHRlc3QgZm9yIG5vIG1lbW9yeSByZWdpb24uCgoyMDAzLTEwLTA4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbGV4c3VwLmMgKHBhcnNlX2FyZ3M6IE9QVElPTl9DQUxMX1NIQVJFRCk6IFJldmlzZSBjb21tZW50CglkZXNjcmliaW5nIGRlZmF1bHRzLiAgQ2hhbmdlIGRlZmF1bHQgdG8gcmVwb3J0IHVucmVzb2x2ZWQgc3ltYm9scwoJaW4gb2JqZWN0IGZpbGVzIGFzIHdlbGwuCgoyMDAzLTEwLTA4ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBsZGV4cC5jIChmb2xkX25hbWUpIDxjYXNlIERFRklORUQ+OiBTZXQgc2VjdGlvbiBvZiByZXN1bHQgdG8KCWFic19vdXRwdXRfc2VjdGlvbi4KCjIwMDMtMTAtMDcgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbXVscGFyYW1zL2VsZjMyeHRlbnNhLnNoIChPVEhFUl9SRUFET05MWV9TRUNUSU9OUywKCU9USEVSX1JFQURXUklURV9TRUNUSU9OUywgT1RIRVJfU0VDVElPTlMpOiBTZXQgc2VjdGlvbiBhZGRyZXNzZXMgdG8KCXplcm8gZm9yIHJlbG9jYXRhYmxlIGxpbmtzLgoKMjAwMy0xMC0wNyAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIGNvbmZpZ3VyZS5ob3N0IChIT1NUSU5HX0xJQlMpOiBEZWZpbmUgZm9yIGhwcGEqLSotbGludXgqLgoKMjAwMy0xMC0wNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxkd3JpdGUuYyAodW5zcGxpdHRhYmxlX25hbWUpOiBOZXcuCgkoY2xvbmVfc2VjdGlvbik6IFN0cmlwIGV4aXN0aW5nIG51bWVyaWMgc3VmZml4LiBPbmx5IHRydW5jYXRlIG5hbWVzCglmb3IgY29mZiB0YXJnZXRzLgoJKHNwbGl0X3NlY3Rpb25zKTogVXNlIHVuc3BsaXR0YWJsZV9uYW1lLgoKMjAwMy0xMC0wNiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGxleHN1cC5jIChwYXJzZV9hcmdzKTogUmVwb3J0IHVucmVzb2x2ZWQgc3ltYm9scyBpbiBzaGFyZWQKCWxpYnJhcmllcyB3aGVuIGNyZWF0aW5nIGEgZHluYW1pYyBleGVjdXRhYmxlLiAgVGhpcyBpcyBhCglyZXN0b3JhdGlvbiBvZiB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgZm9yIHByZXZpb3VzIHZlcnNpb25zIG9mCgl0aGUgbGlua2VyLgoKMjAwMy0xMC0wNiAgTWF0dCBUaG9tYXMgPG1hdHRAM2FtLXNvZnR3YXJlLmNvbT4KCgkqIGVtdWxwYXJhbXMvaHBwYW5ic2Quc2g6IFJlbW92ZSBPVVRQVVRfRk9STUFULgoJKiBlbXVscGFyYW1zL2hwcGFvYnNkLnNoOiBBZGQgT1VUUFVUX0ZPUk1BVD0iZWxmMzItaHBwYSIuCgoyMDAzLTEwLTA2ICBSb2JlcnQgTWlsbGFuICA8cm9iZXJ0bWhAZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZS50Z3Q6IE1hdGNoIEdOVS9LTmV0QlNEIHdpdGggbmV3IGtuZXRic2QqLWdudSB0cmlwbGV0LgoKMjAwMy0xMC0wMiAgSXZhbiBXYXJyZW4gPGl2YW5Adm1mYWNpbGl0eS5mcj4KCgkqIHBlLWRsbC5jIChtYWtlX29uZSk6IENvcnJlY3Qgc3ltIGRlZiBvcmRlciAmIHBpY2sgcmlnaHQgc3ltIGZvcgoJLmlkYXRhJDcgcmVsb2MuCgoyMDAzLTA5LTMwICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogTkVXUzogQWRkIGFuIGluZGljYXRpb24gb2YgdGhlIGN1dG9mZiBmb3IgMi4xNC4KCjIwMDMtMDktMzAgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBsZG1haW4uYyAoZ2V0X2VtdWxhdGlvbik6IElnbm9yZSAiLW1pcHM2NHIyIi4KCjIwMDMtMDktMDMgIFJvYmVydCBNaWxsYW4gIDxyb2JlcnRtaEBnbnUub3JnPgoKCSogY29uZmlndXJlLmhvc3Q6IE1hdGNoIEdOVS9LRnJlZUJTRCB3aXRoIG5ldyBrZnJlZWJzZCotZ251Cgl0cmlwbGV0LgoJKiBjb25maWd1cmUudGd0OiBMaWtld2lzZS4KCjIwMDMtMDgtMjkgIEphZmEgIDxqYWZhQHNpbGljb25kdXN0LmNvbT4KCgkqIGVtdWxwYXJhbXMvZWxmMzJpcDJrLnNoIChURU1QTEFURV9OQU1FKTogRGVmaW5lLgoKMjAwMy0wOC0yMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3RyLnBvOiBVcGRhdGVkIFR1cmtpc2ggdHJhbnNsYXRpb24uCgoyMDAzLTA4LTIwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbGRtYWluLmM6IEluaXRpYWxpc2UgdGhlIG5ldyBmaWVsZHMgaW4gYmZkX2xpbmtfaW5mbyB0bwoJTk9UX1lFVF9TRVQuCgkqIGxleHN1cC5jIChlbnVtIG9wdGlvbl92YWx1ZXMpOiBOZXcgZW51bS4gIFVzZSB0aGlzIHRvCglyZXBsYWNlIHRoZSBoYW5kIGNvZGVkIHZhbHVlcyBmb3IgdGhlIGxvbmcgc3dpdGNoIG9wdGlvbnMuCgkobGRfb3B0aW9ucyk6IEFkZCAndW5yZXNvbHZlZC1zeW1ib2xzJywKCSd3YXJuLXVucmVzb2x2ZWQtc3ltYm9scycgYW5kICdlcnJvci11bnJlc29sdmVkLXN5bWJvbHMnLgoJKHBhcnNlX2FyZ3MpOiBIYW5kbGUgdGhlIG5ldyBzd2l0Y2hlcy4gIFNldCB0aGUgdmFsdWVzIG9mCgl1bnJlc29sdmVkX3N5bWJvbHNfaW5fb2JqZWN0cyBhbmQKCXVucmVzb2x2ZWRfc3ltYm9sc19pbl9zaGFyZWRfbGlicyBhcHByb3ByaWF0ZWx5LiAgSWYgdGhleSB3ZXJlCglub3QgaW5pdGlhbGlzZWQgYnkgdGhlIGNvbW1hbmQgbGluZSwgaW5zdGFsbCBkZWZhdWx0IHZhbHVlcy4KCSogZW11bHRlbXBsL2VsZjMyLmVtIChoYW5kbGVfb3B0aW9uKTogVXBkYXRlIE9QVElPTl9HUk9VUCBhbmQKCS16IGRlZnMgdG8gdXNlIHRoZSBuZXcgZmllbGRzIGluIGJmZF9saW5rX2luZm8uCgkqIGxkLnRleGluZm86IERvY3VtZW50IHRoZSBuZXcgc3dpdGNoZXMuCgkqIE5FV1M6IE1lbnRpb24gdGhpcyBmZWF0dXJlLgoKMjAwMy0wOC0xNSBEbWl0cnkgRGlreSA8ZGl3aWxAbWFpbC5ydT4KCgkqIE1ha2VmaWxlLmFtIChHRU5TQ1JJUFRTX0VYVFJBKTogTmV3IHNjcmlwdCBkZWZpbml0aW9uIHdoaWNoCgljYWxscyBnZW5zY3JpcHRzX2V4dHJhLnNoLgoJUmVhcnJhbmdlIGFsbCBtc3A0MzAgZGVwZW5kcyB1c2luZyB0aGlzIHNjcmlwdC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGdlbnNjcmlwdHNfZXh0cmEuc2g6IE5ldyBmaWxlOiBTaW1pbGFyIHRvIGdlbnNjcmlwdHMuc2gsIGV4Y2VwdAoJdGhhdCB0aGUgc2NyaXB0IHRvIGJlIHJ1biB0byBnZW5lcmF0ZSB0aGUgZW11bGF0aW9ucyBjYW4gYmUgcGFzc2VkCglhcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgaW5zdGVhZCBvZiBiZWluZyBjb21wdXRlZCBmcm9tIHRoZQoJZW11bGF0aW9uIG5hbWUuCgkqIGVtdWxwYXJhbXMvbXNwNDMwYWxsLnNoOiBOZXcgZmlsZTogQ29tYmluZSBhbGwgbXNwNDMwIHN1YmRldmljZQoJZGVmaW5pdGlvbnMgaW50byBvbmUgZmlsZS4KCSogZW11bHBhcmFtcy9tc3A0MzB4Ki5zaDogUmVtb3ZlZC4KCjIwMDMtMDgtMTUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsZC50ZXhpbmZvIChPcHRpb25zKTogUHV0IGtleXdvcmRzIGZvciB0aGUgLXogb3B0aW9uIGludG8gYQoJdGFibGUuICBBZGQgbW9yZSB0ZXh0IGRlc2NyaWJpbmcgd2hhdCB0aGUgLXogbm93IG9wdGlvbiBkb2VzLgoKMjAwMy0wOC0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGRlcC1pbi5zZWQ6IFJlbW92ZSBsaWJpbnRsLmguCgkqIE1ha2VmaWxlLmFtIChQT1RGSUxFUy5pbik6IFVuc2V0IExDX0NPTExBVEUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wOC0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGdlbnNjcmlwdHMuc2ggKGxpYnBhdGguZXhwKTogT25seSBnZW5lcmF0ZSBmb3IgZmlyc3QgZW11bGF0aW9uLgoJKExJQl9QQVRIKTogQ29ycmVjdCBvcmRlciBvZiBwYXRocy4gIERvbid0IGFkZCAkdG9vbF9saWIgd2hlbgoJYWxyZWFkeSBwcmVzZW50IG9yIHdoZW4gTElCX1BBVEggaXMgc2V0IHRvICI6Ii4KCjIwMDMtMDgtMTIgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AYWlycy5jb20+CgoJKiBsZG1haW4uYyAodW5kZWZpbmVkX3N5bWJvbCk6IENoYW5nZSBwYXJhbWV0ZXIgbmFtZSBmcm9tIGBmYXRhbCcKCXRvIGBlcnJvcicuICBJZiBvbmx5IGEgd2FybmluZywgcHV0IHdhcm5pbmcgaW4gdGhlIHJlcG9ydGVkCglzdHJpbmcuICBDb25zaXN0ZW50bHkgc2V0IGZhaWx1cmUgZmxhZyB3aGVuIG5vdCBhIHdhcm5pbmcuCgoyMDAzLTA4LTA4IERtaXRyeSBEaWt5IDxkaXdpbEBtYWlsLnJ1PgoKCSogTWFrZWZpbGUuYW06IEFkZCB4VzQyIGFuZCB4RTQyIHBhcnRzLiBTb3J0IE1QVSBsaXN0IGFjY29yZGluZyB0bwoJZ2NjIG9yZGVyLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndDogQWRkIGV4dHJhIGVtdWxhdGlvbnMuCgkqIGVtdWxwYXJhbXMvbXNwNDMweEU0MjMuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL21zcDQzMHhFNDI3LnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9tc3A0MzB4VzQyNS5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvbXNwNDMweEU0MjUuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL21zcDQzMHhXNDIzLnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9tc3A0MzB4VzQyNy5zaDogTmV3IGZpbGUuCgoyMDAzLTA4LTA3ICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZW11bHRlbXBsL3BlLmVtIChnbGRfJHtFTVVMQVRJT05fTkFNRX1fYmVmb3JlX3BhcnNlKToKCUNoYW5nZSBzZWNvbmQgKGNtZGxpbmUpIGFyZyB0byBsYW5nX2FkZF9lbnRyeSB0byBGQUxTRS4KCShzZXRfcGVfc3Vic3lzdGVtKTogQ2hhbmdlIHNlY29uZCBhcmcgdG8gbGFuZ19hZGRfZW50cnkgdG8gVFJVRS4KCjIwMDMtMDgtMDUgIENocmlzdGlhbiBHcm9lc3NsZXIgIDxjaHJpc0Bncm9lc3NsZXIub3JnPgoJICAgIEphc29uIEVja2hhcmR0ICA8amxlQHJpY2UuZWR1PgoKCSogY29uZmlndXJlLnRndDogUmVjb2duaXplIG5ldyB0YXJnZXQgaTg2MC0qLWNvZmYuCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlY29mZl9pODYwLm8uCgkoZWNvZmZfaTg2MC5jKTogTmV3IHJ1bGUuCgkqIGVtdWxwYXJhbXMvY29mZl9pODYwLnNoOiBOZXcgZmlsZS4KCSogc2NyaXB0dGVtcGwvaTg2MGNvZmYuc2M6IE5ldyBmaWxlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDgtMDQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGJlZm9yZV9hbGxvY2F0aW9uKTogUHJlcGVuZCAid2FybmluZzogIgoJdG8gbWVzc2FnZXMgcHJvZHVjZWQgZm9yIC5nbnUud2FybmluZy5TWU1CT0wgc2VjdGlvbnMuCgoyMDAzLTA4LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChvdXRwdXRfcmVsX2ZpbmQpOiBBZGQgImlzZHluIiBwYXJhbS4gIFB1dAoJLnJlbC5keW4gYmVmb3JlIG90aGVyIHJlbG9jIHNlY3Rpb25zLiAgRG9uJ3Qgc3RvcCBsb29raW5nIGZvciByZWxvYwoJc2VjdGlvbnMgb24gZmluZGluZyBvbmUgdGhhdCBpc24ndCBhbGxvY2F0ZWQuICBNYXRjaCAucmVsIGV2ZW4gd2hlbgoJcGxhY2luZyAucmVsYSBhbmQgdmljZSB2ZXJzYSwgd2hlbiBzZXR0aW5nIGxhc3RfcmVsIGFuZAoJbGFzdF9yZWxfYWxsb2MgZm9yIHRoZSBmaXJzdCB0aW1lLiAgSWYgbm8gcmVsb2Mgc2VjdGlvbnMgaW4gc2NyaXB0LAoJcHJlZmVyIGFsbG9jYXRlZCBzZWN0aW9uIG92ZXIgbm9uLWFsbG9jLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbik6IEhhbmRsZSBvcnBoYW4gLnJlbC5keW4uCgoyMDAzLTA3LTI5ICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVtdWxwYXJhbXMvc2hlbGYuc2ggKE9USEVSX1NFQ1RJT05TKTogRG9uJ3QgaW5jbHVkZSAuc3RhY2sKCXNlY3Rpb24gZm9yIHNoYXJlZCBsaWJyYXJ5LgoJKiBlbXVscGFyYW1zL3NoZWxmMzIuc2ggKE9USEVSX1NFQ1RJT05TKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvc2hlbGY2NC5zaCAoT1RIRVJfU0VDVElPTlMpOiBMaWtld2lzZS4KCjIwMDMtMDctMjkgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogc2NyaXB0dGVtcGwvZWxmbTY4aGMxMi5zYzogQWRkIGdjY19leGNlcHRfdGFibGUuCgkqIHNjcmlwdHRlbXBsL2VsZm02OGhjMTEuc2M6IExpa2V3aXNlLgoKMjAwMy0wNy0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWxwYXJhbXMvZWxmNjRwcGMuc2ggKEdPVCk6IEZpeCBmb3Igc2hlbGwgYnJhY2UgbWF0Y2hpbmcuCgoJKiBlbXVscGFyYW1zL2VsZjY0cHBjLnNoIChHT1QpOiBEb24ndCBtZXJnZSAudG9jIGludG8gLmdvdCBmb3IgbGQgLXIuCgoyMDAzLTA3LTI3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGQudGV4aW5mbzogVHlwbyBmaXhlcy4gIERvY3VtZW50IFNVQkFMSUdOLgoJKiBsZGdyYW0ueSAob3B0X3N1YmFsaWduKTogQWRkLgoJKiBsZGxleC5sIChTVUJBTElHTik6IFJlY29nbml6ZS4KCSogbGRsYW5nLmMgKG92ZXJsYXlfc3ViYWxpZ24pOiBOZXcgdmFyLgoJKGxhbmdfZW50ZXJfb3ZlcmxheSk6IEFkZCBzdWJhbGlnbiBwYXJhbS4KCShsYW5nX2VudGVyX292ZXJsYXlfc2VjdGlvbik6IFBhc3Mgb3ZlcmxheV9zdWJhbGlnbiB0bwoJbGFuZ19lbnRlcl9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnQuCgkqIGxkbGFuZy5oIChsYW5nX2VudGVyX292ZXJsYXkpOiBVcGRhdGUuCgoyMDAzLTA3LTI0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgRnJlbmNoIHRyYW5zbGF0aW9uLgoKMjAwMy0wNy0yMyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBzY3JpcHR0ZW1wbC9lbGZtNjhoYzExLnNjOiBLZWVwIGN0b3IvZHRvciBzZWN0aW9uczsgVGFrZSBpbnRvCglhY2NvdW50IC50cmFtcCBzZWN0aW9uczsKCSogc2NyaXB0dGVtcGwvZWxmbTY4aGMxMi5zYzogTGlrZXdpc2UuCgoyMDAzLTA3LTE3ICBDaGFybGVzIFdpbHNvbiAgPGN3aWxzb25AZWNlLmdhdGVjaC5lZHU+CgoJKiBsZC9wZS1kbGwuYzogQWRkIGxpYmN5Z3dpbiB0byBhdXRvZmlsdGVyX2xpYmxpc3RbXQoKMjAwMy0wNy0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2VzLnBvOiBOZXcgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCjIwMDMtMDctMTEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBwby9sZC5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAzLTA3LTEwICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZW11bHBhcmFtcy9lbGYzMnh0ZW5zYS5zaCAoT1RIRVJfUkVBRE9OTFlfU0VDVElPTlMpOiBSZXBsYWNlIC54dC5saXQKCXdpdGggbmV3IC5nb3QubG9jIHNlY3Rpb24uCgkoT1RIRVJfUkVBRFdSSVRFX1NFQ1RJT05TKTogRG8gbm90IGNvbWJpbmUgbGlua29uY2Ugc2VjdGlvbnMgZm9yCglub24tcmVsb2NhdGluZyBsaW5rcy4KCShPVEhFUl9TRUNUSU9OUyk6IEFkZCAueHQubGl0IGhlcmUuICBDaGFuZ2UgaXQgdG8ga2VlcCBsaW5rb25jZQoJc2VjdGlvbnMgc2VwYXJhdGUgZm9yIG5vbi1yZWxvY2F0aW5nIGxpbmtzOyBsaWtld2lzZSBmb3IgLnh0Lmluc24uCgoyMDAzLTA3LTEwICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkyMDAxLTA4LTIyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogZW11bHBhcmFtcy9lbGYzMmFtMzNsaW4uc2g6IEFkanVzdCB0byBtYXRjaCBrZXJuZWwgcGFyYW1ldGVycy4KCTIwMDEtMDUtMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWd1cmUuaG9zdCAoYW0zM18yLjAtKi1saW51eCopOiBBZGRlZC4KCSogY29uZmlndXJlLnRndCAoYW0zM18yLjAtKi1saW51eCopOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMmFtMzNsaW4uc2g6IE5ldy4KCSogTWFrZWZpbGUuYW0gKGVlbGYzMmFtMzNsaW4uYyk6IE5ldyBydWxlLgoJKiBNYWtlZmlsZS5pbjogUmVidWlsdC4KCjIwMDMtMDctMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCTIwMDEtMDQtMTcgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBlbXVscGFyYW1zL21uMTAzMDAuc2ggKFRFTVBMQVRFX05BTUUpOiBEZWZpbmUuCgkoR0VORVJBVEVfU0hMSUJfU0NSSVBUKTogTGlrZXdpc2UuCgoyMDAzLTA3LTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHBhcmFtcy9lbGY2NHBwYy5zaCAoT1RIRVJfR09UX1NFQ1RJT05TKTogRG9uJ3QgZGVmaW5lLgoJKEdPVCk6IERlZmluZS4KCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtIChzdHViX2FkZGVkKTogTmV3IHN0YXRpYyB2YXIuCgkocHBjX2NyZWF0ZV9vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnRzKTogQ2FsbCBwcGM2NF9lbGZfaW5pdF9zdHViX2JmZC4KCShwcGNfYWRkX3N0dWJfc2VjdGlvbik6IFNldCBzdHViX2FkZGVkLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X2ZpbmlzaCk6IExvb2sgZm9yIC5nb3QgcmF0aGVyIHRoYW4gLnRvYy4gIEFkanVzdAoJcHBjNjRfZWxmX3NpemVfc3R1YnMgY2FsbCBhbmQgdGVzdCBmb3Igc3R1YnMuCgkqIHNjcmlwdHRlbXBsL2VsZi5zYyAoR09UKTogRGVmaW5lIGFuZCB1c2UuCgoyMDAzLTA3LTA4ICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGVtdWx0ZW1wbC9zaDY0ZWxmLmVtIChzaDY0X2VsZl8ke0VNVUxBVElPTl9OQU1FfV9hZnRlcl9hbGxvY2F0aW9uKToKCUFsbG93IHNlY29uZCBjYWxsIGZyb20gbGRlbXVsX2ZpbmlzaC4KCjIwMDMtMDctMDQgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogZW11bHBhcmFtcy9zaGVsZjMyLnNoIChTVEFDS19BRERSKTogRG9uJ3QgZGVmaW5lLgoJKE9USEVSX1NFQ1RJT05TKTogSW5jbHVkZSAuc3RhY2suCgkqIGVtdWxwYXJhbXMvc2hlbGY2NC5zaCAoT1RIRVJfU0VDVElPTlMpOiBMaWtld2lzZS4KCjIwMDMtMDctMDIgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZW11bHBhcmFtcy9lbGY2NF9pYTY0LnNoIChPVEhFUl9SRUFET05MWV9TRUNUSU9OUyk6IERvbid0IGluY2x1ZGUKCS5vcGQgaWYgLXBpZS4KCShPVEhFUl9SRUFEV1JJVEVfU0VDVElPTlMpOiBJbmNsdWRlIC5vcGQgaWYgLXBpZS4KCSogc2NyaXB0dGVtcGwvZWxmLnNjOiBVc2UgU0hMSUJfREFUQV9BRERSIGluc3RlYWQgb2YgREFUQV9BRERSCglpZiAtcGllLgoKMjAwMy0wNi0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkLmg6IENvbnZlcnQgdG8gQzkwLCByZW1vdmUgdW5uZWNlc3NhcnkgcHJvdG90eXBlcyBhbmQgY2FzdHMuCglSZXBsYWNlIFBUUiB3aXRoIHZvaWQgKi4gIEZvcm1hdHRpbmcuCgkqIGxkY3JlZi5jOiBMaWtld2lzZS4KCSogbGRjdG9yLmM6IExpa2V3aXNlLgoJKiBsZGN0b3IuaDogTGlrZXdpc2UuCgkqIGxkZW11bC5oOiBMaWtld2lzZS4KCSogbGRleHAuYzogTGlrZXdpc2UuCgkqIGxkZXhwLmg6IExpa2V3aXNlLgoJKiBsZGZpbGUuYzogTGlrZXdpc2UuCgkqIGxkZmlsZS5oOiBMaWtld2lzZS4KCSogbGRsYW5nLmM6IExpa2V3aXNlLgoJKiBsZGxhbmcuaDogTGlrZXdpc2UuCgkqIGxkbGV4Lmg6IExpa2V3aXNlLgoJKiBsZGxleC5sOiBMaWtld2lzZS4KCSogbGRtYWluLmM6IExpa2V3aXNlLgoJKiBsZG1haW4uaDogTGlrZXdpc2UuCgkqIGxkbWlzYy5jOiBMaWtld2lzZS4KCSogbGRtaXNjLmg6IExpa2V3aXNlLgoJKiBsZHZlci5oOiBMaWtld2lzZS4KCSogbGR3cml0ZS5jOiBMaWtld2lzZS4KCSogbGR3cml0ZS5oOiBMaWtld2lzZS4KCSogbGV4c3VwLmM6IExpa2V3aXNlLgoJKiBtcmkuYzogTGlrZXdpc2UuCgkqIG1yaS5oOiBMaWtld2lzZS4KCSogcGUtZGxsLmM6IExpa2V3aXNlLgoJKiBwZS1kbGwuaDogTGlrZXdpc2UuCgkqIGRlZmZpbGVwLnk6IExpa2V3aXNlLgoJKiBkZWZmaWxlLmg6IExpa2V3aXNlLiAgRG9uJ3QgaW5jbHVkZSBhbnNpZGVjbC5oLgoJKiBlbXVscGFyYW1zL2VsZjMybWNvcmUuc2g6IFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0LgoJKiBlbXVsdGVtcGwvbTY4a2NvZmYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbTY4a2VsZi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC90aWNvZmYuZW06IFJlbW92ZSBsYW5nX2FkZF9vdXRwdXRfZm9ybWF0IGRlY2xhcmF0aW9uLgoJKiBzeXNkZXAuaDogRG9uJ3QgaW5jbHVkZSBhbnNpZGVjbC5oLgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wNi0yNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGRlZmZpbGVwLnkgKGRlZl9maWxlX2FkZF9kaXJlY3RpdmUpOiBDb3BlIHdpdGggTlVMIHNlcGVyYXRlZAoJZGlyZWN0aXZlcy4gIEZpeCByZXBvcnRpbmcgb2YgdW5wYXJzZWFibGUgZGlyZWN0aXZlcy4KCShkZWZfZXJyb3IpOiBDaGVjayBmb3IgYSBOVUxMIGRlZl9maWxlbmFtZS4KCjIwMDMtMDYtMjcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvYWl4LmVtOiBDb252ZXJ0IHRvIEM5MCwgcmVtb3ZlIHVubmVjZXNzYXJ5IHByb3RvdHlwZXMKCWFuZCBjYXN0cy4gIFJlcGxhY2UgUFRSIHdpdGggdm9pZCAqLiAgRm9ybWF0dGluZy4KCSogZW11bHRlbXBsL2FscGhhZWxmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2FybWNvZmYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvYXJtZWxmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2FybWVsZl9vYWJpLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2Jlb3MuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvZ2VuZXJpYy5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9nbGQ5NjAuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvZ2xkOTYwYy5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9ocHBhZWxmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2xpbnV4LmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2xuazk2MC5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9tNjhoYzF4ZWxmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL202OGtjb2ZmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL202OGtlbGYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbWlwc2Vjb2ZmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL21pcHNlbGYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbW1peC1lbGZubW1vLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL21taXhlbGYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbW1vLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL25lZWRyZWxheC5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9uZXRic2QuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcGUuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvc2g2NGVsZi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9zdW5vcy5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC90aWNvZmYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvdmFuaWxsYS5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC94dGVuc2FlbGYuZW06IExpa2V3aXNlLgoJKiBNYWtlZmlsZS5hbTogQ29ycmVjdCBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wNi0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkLnRleGluZm86IENvcnJlY3Qgc3BlbGxpbmcgb2YgInJlbG9jYXRhYmxlIi4KCSogbGRjdG9yLmM6IExpa2V3aXNlLgoJKiBsZGV4cC5jOiBMaWtld2lzZS4KCSogbGRmaWxlLmM6IExpa2V3aXNlLgoJKiBsZGludC50ZXhpbmZvOiBMaWtld2lzZS4KCSogbGRsYW5nLmM6IExpa2V3aXNlLgoJKiBsZG1haW4uYzogTGlrZXdpc2UuCgkqIGxkd3JpdGUuYzogTGlrZXdpc2UuCgkqIGxleHN1cC5jOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2FpeC5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9hbHBoYWVsZi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9hcm1jb2ZmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2FybWVsZl9vYWJpLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2Jlb3MuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvZ2VuZXJpYy5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9nbGQ5NjAuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvZ2xkOTYwYy5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9ocHBhZWxmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2xpbnV4LmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2xuazk2MC5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9tNjhoYzF4ZWxmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL202OGtjb2ZmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL202OGtlbGYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbWlwc2Vjb2ZmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL21pcHNlbGYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbW1peC1lbGZubW1vLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL21tby5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9uZWVkcmVsYXguZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcGUuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcHBjNjRlbGYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvc2g2NGVsZi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9zdW5vcy5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC90aWNvZmYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwveHRlbnNhZWxmLmVtOiBMaWtld2lzZS4KCjIwMDMtMDYtMjQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvcHBjMzJlbGYuZW06IENvbnZlcnQgdG8gQzkwLgoKMjAwMy0wNi0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbTogQ29udmVydCB0byBDOTAgZnVuY3Rpb24gZGVmaW5pdGlvbnMsIHJlbW92ZQoJdW5uZWNlc3NhcnkgcHJvdG90eXBlcyBhbmQgY2FzdHMuCgoyMDAzLTA2LTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBEdW1wIG91dAoJc3RhdGlzdGljcyBmcm9tIHBwYzY0X2VsZl9idWlsZF9zdHVicy4KCjIwMDMtMDYtMTkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvcHBjNjRlbGYuZW0gKGJ1aWxkX3NlY3Rpb25fbGlzdHMpOiBDaGVjayByZXR1cm4gc3RhdHVzCglmcm9tIHBwYzY0X2VsZl9uZXh0X2lucHV0X3NlY3Rpb24uCgoyMDAzLTA2LTE3ICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGxkbGFuZy5jIChzZWN0aW9uX2FscmVhZHlfbGlua2VkKTogUHV0IGJhY2sgYXNzaWdubWVudCBvZgoJa2VwdF9zZWN0aW9uLgoKMjAwMy0wNi0xNyAgUmFpbmVyIEtldWNoZWwgIDxya2V1Y2hlbEBhbGxnZWllci5jb20+CgoJKiBwZS1kbGwuYyAoZ2VuZXJhdGVfcmVsb2MpOiBDYXRjaCBhbmQgaWdub3JlIGFuIEFSTV8yNkQKCXJlbG9jLgoKMjAwMy0wNi0xNyAgTG9yZW4gSmFtZXMgUml0dGxlICA8cml0dGxlQGxhdG91ci5yc2NoLmNvbW0ubW90LmNvbT4KCgkqIGNvbmZpZ3VyZS5ob3N0ICgqLSotZnJlZWJzZCopOiBBZGQga25vd24gcGF0aCBmb3IgbGQtZWxmLnNvLjEKCWlmIG5vdCBwcm9kdWNlZCBieSBnY2MuCgoyMDAzLTA2LTE2ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBzcGVjaWZpYyBjYXNlIGZvciBjcmlzLSotbGludXgtZ251KgoJd2l0aCBjcmlzbGludXggZW11bGF0aW9uIG9ubHkuCgoyMDAzLTA2LTEzICBSb2JlcnQgTWlsbGFuICA8emVyYXR1bDJAd2FuYWRvby5lcz4KCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBpMzg2LW5ldGJzZC1nbnUgdGFyZ2V0LgoKMjAwMy0wNi0xMiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLnRndCAobWlwcyotc2dpLWlyaXg2Kik6IEFkZCB0aGUgbzMyIGFuZCBuNjQgZW11bGF0aW9ucwoJdG8gJHRhcmdfZXh0cmFfbGlicGF0aC4KCjIwMDMtMDYtMTEgIEguSi4gTHUgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogcG8vTWFrZS1pbiAoREVTVERJUik6IE5ldy4KCShpbnN0YWxsLWRhdGEteWVzKTogU3VwcG9ydCAkKERFU1RESVIpLgoJKHVuaW5zdGFsbCk6IExpa2V3aXNlLgoKMjAwMy0wNi0xMCAgRG91ZyBFdmFucyAgPGRqZUBzZWJhYmVhY2gub3JnPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9FTVVMQVRJT05TKTogQWRkIGVtMzJyZWxmLm8uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wNi0xMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLnRndCAoaDgzMDAqKTogQWRkIGg4MzAwc3huIGVtdWxhdGlvbnMuCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlaDgzMDBzeG4ubyBhbmQgZWg4MzAwc3huZWxmLm8uCgkoZWg4MzAwc3huLmMsIGVoODMwMHN4bmVsZi5jKTogTmV3IHJ1bGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZW11bHBhcmFtcy9oODMwMHN4bmVsZi5zaCwgZW11bHBhcmFtcy9oODMwMHN4bi5zaDogTmV3IGZpbGVzLgoJKiBzY3JpcHR0ZW1wbC9oODMwMHN4bi5zYzogTmV3IGZpbGUuCgoyMDAzLTA2LTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHBhcmFtcy9lbGY2NHBwYy5zaCAoRVhFQ1VUQUJMRV9TWU1CT0xTLCBPVEhFUl9CU1NfRU5EX1NZTUJPTFMsCglDVE9SX1NUQVJULCBDVE9SX0VORCwgRFRPUl9TVEFSVCwgRFRPUl9FTkQpOiBEb24ndCBkZWZpbmUuCgoyMDAzLTA2LTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtIChlbWl0X3N0dWJfc3ltcywgdG9jX3NlY3Rpb24pOiBOZXcgdmFycy4KCShidWlsZF90b2NfbGlzdCk6IE5ldyBmdW5jdGlvbi4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBDYWxsIGJ1aWxkX3RvY19saXN0IGFuZAoJcHBjNjRfZWxmX3JlaW5pdF90b2MuICBBZGp1c3QgcHBjNjRfZWxmX2J1aWxkX3N0dWJzIGNhbGwuCgkoT1BUSU9OX1NUVUJTWU1TKTogRGVmaW5lLgoJKFBBUlNFX0FORF9MSVNUX0xPTkdPUFRTKTogQWRkIGVtaXQtc3R1Yi1zeW1zLgoJKFBBUlNFX0FORF9MSVNUX09QVElPTlMpOiBEb2N1bWVudC4KCShQQVJTRV9BTkRfTElTVF9BUkdTX0NBU0VTKTogSGFuZGxlLgoKMjAwMy0wNi0wNSAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fbGlzdF9vcHRpb25zKTogUmVtb3ZlCglleHRyYSBcdCBpbiAteiBub2V4ZWNzdGFjayBsaW5lLgoKMjAwMy0wNS0yMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBsZGdyYW0ueSAocGhkcl90eXBlKTogR3JvayBQVF9HTlVfU1RBQ0suCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1faGFuZGxlX29wdGlvbik6IEFkZAoJLXogZXhlY3N0YWNrIGFuZCAteiBub2V4ZWNzdGFjay4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9saXN0X29wdGlvbnMpOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmLnNjOiBJZiBub3QgLXIsIGRpc2NhcmQgLm5vdGUuR05VLXN0YWNrIHNlY3Rpb24uCgoyMDAzLTA2LTAzICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCWFuZCBCZXJuZCBTY2htaWR0ICAgPGJlcm5kc0ByZWRoYXQuY29tPgoJYW5kIEFsZXhhbmRyZSBPbGl2YSA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbTogQWRkIG5ldyBlbXVsYXRpb25zIGZvciBoODMwMHN4LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndDogQWRkIG5ldyBlbXVsYXRpb25zLgoJKiBlbXVscGFyYW1zL2g4MzAwc3guc2g6IE5ldyBlbXVsYXRpb24uCgkqIGVtdWxwYXJhbXMvaDgzMDBzeGVsZi5zaDogRGl0dG8uCgkqIHNjcmlwdHRlbXBsL2g4MzAwc3guc2M6IERpdHRvLgoKMjAwMy0wNi0wMyAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBsZG1pc2MuYzogSW5jbHVkZSAiYmZkbGluay5oIi4KCShlcnJvcl9oYW5kbGVyKTogSGFuZGxlIExEX0RFRklOSVRJT05fSU5fRElTQ0FSREVEX1NFQ1RJT04KCWFuZCAtTERfREVGSU5JVElPTl9JTl9ESVNDQVJERURfU0VDVElPTi4KCgkqIE1ha2VmaWxlLmFtOiBSZWJ1aWxkIGRlcGVuZGVuY3kuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCjIwMDMtMDYtMDMgIEtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoKCSogZW11bHBhcmFtcy9zaGxlbGZfbGludXguc2ggKEdFTkVSQVRFX1BJRV9TQ1JJUFQpOiBTZXQgdG8geWVzLgoJKiBlbXVscGFyYW1zL3NobGVsZjMyX2xpbnV4LnNoIChHRU5FUkFURV9QSUVfU0NSSVBUKTogTGlrZXdpemUuCgoyMDAzLTA2LTAyICBGYWJyaXppbyBHZW5uYXJpICA8ZmFicml6aW8uZ2VAdGlzY2FsaW5ldC5pdD4KCgkqIHBlLWRsbC5jIChmaWxsX2VkYXRhKTogU2NhbiB0YWJsZSBwZV9kbGwtPmV4cG9ydHMsIHdoaWNoIGlzCglzb3J0ZWQgYWxwaGFiZXRpY2FsbHksIGluc3RlYWQgb2YgZXhwb3J0ZWRfc3ltYm9scywgd2hpY2ggaXMKCXNvcnRlZCBieSBvcmRpbmFsLgoKMjAwMy0wNS0zMCAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQHJlZGhhdC5jb20+CgkgICAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBsZXhzdXAuYyAoT1BUSU9OX1BJRSk6IERlZmluZS4KCShsZF9vcHRpb25zKTogQWRkIC1waWUgYW5kIC0tcGljLWV4ZWN1dGFibGUgb3B0aW9ucy4KCShwYXJzZV9hcmdzKTogSGFuZGxlIE9QVElPTl9QSUUuCgkqIGxkbWFpbi5jIChtYWluKTogSW5pdGlhbGl6ZSBsaW5rX2luZm8ucGllIGFuZAoJbGlua19pbmZvLmV4ZWN1dGFibGUuCgkqIGdlbnNjcmlwdHMuc2g6IEdlbmVyYXRlIFBJRSBzY3JpcHRzLgoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCAtcGllIGFuZCAtLXBpYy1leGVjdXRhYmxlIG9wdGlvbnMuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYWZ0ZXJfb3Blbik6CgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogTGlrZXdpc2UuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fZ2V0X3NjcmlwdCk6IEluY2x1ZGUgUElFIHNjcmlwdHMuCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogSW4gUElFIHNjcmlwdHMgc2V0IC4gdGhlIHNhbWUgd2F5IGFzIGluCglzaGFyZWQgc2NyaXB0cy4KCSogZW11bHBhcmFtcy9lbGZfaTM4Ni5zaCAoR0VORVJBVEVfUElFX1NDUklQVCk6IFNldCB0byB5ZXMuCgkqIGVtdWxwYXJhbXMvZWxmNjRfaWE2NC5zaCAoR0VORVJBVEVfUElFX1NDUklQVCk6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjMycHBjLnNoIChHRU5FUkFURV9QSUVfU0NSSVBUKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRwcGMuc2ggKEdFTkVSQVRFX1BJRV9TQ1JJUFQpOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGZfeDg2XzY0LnNoIChHRU5FUkFURV9QSUVfU0NSSVBUKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmX3MzOTAuc2ggKEdFTkVSQVRFX1BJRV9TQ1JJUFQpOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMl9zcGFyYy5zaCAoR0VORVJBVEVfUElFX1NDUklQVCk6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0X3NwYXJjLnNoIChHRU5FUkFURV9QSUVfU0NSSVBUKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRhbHBoYS5zaCAoR0VORVJBVEVfUElFX1NDUklQVCk6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0X3MzOTAuc2ggKEdFTkVSQVRFX1BJRV9TQ1JJUFQpOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGZfaTM4Ni5zaCAoR0VORVJBVEVfUElFX1NDUklQVCk6IExpa2V3aXNlLgoKMjAwMy0wNS0zMCAgSC5KLiBMdSA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBnZW5zY3JpcHRzLnNoOiBDcmVhdGUgdG1wZGlyL2xpYnBhdGguZXhwLgoKMjAwMy0wNS0zMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9hcm1lbGYuZW0gKGFybV9lbGZfYmVmb3JlX2FsbG9jYXRpb24pOiBSZXBsYWNlIEFTU0VSVAoJd2l0aCBhIHRlc3QgZm9yIGEgTlVMTCBiZmRfZm9yX2ludGVyd29ya2luZy4KCjIwMDMtMDUtMjkgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWd1cmUuaG9zdCAoKi0qLW5ldGJzZCopOiBTZXQgSE9TVElOR19DUlQwIGFuZCBIT1NUSU5HX0xJQlMKCWNvcnJlY3RseSBmb3IgbW9yZSByZWNlbnQgdmVyc2lvbnMgb2YgTmV0QlNELgoJKGFscGhhKi0qLW5ldGJzZCopOiBSZW1vdmUuCgkoaVszLTddODYtKi1uZXRic2QqKTogUmVtb3ZlLgoKMjAwMy0wNS0yOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9wZS5lbTogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCjIwMDMtMDUtMjYgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AZHMyLnBnLmdkYS5wbD4KCgkqIGVtdWxwYXJhbXMvZWxmNjRidHNtaXAuc2g6IFNldCBURVhUX1NUQVJUX0FERFIgdG8gMHgxMjAwMDAwMDAgdG8KCXRyYXAgb24gcG9pbnRlciBjcm9wcy4KCjIwMDMtMDUtMjEgIE1hcmN1cyBDb21zdGVkdCAgPG1hcmN1c0BtYy5wcC5zZT4KCgkqIGNvbmZpZ3VyZS50Z3Q6IENoZWNrIGZvciBhIHRhcmdldCB0cmlwbGV0IG9mIHNobC0uLi4tbmV0YnNkZWxmCglhcyB3ZWxsIGFzIHNobGUtLi4uLW5ldGJzZGVsZi4KCjIwMDMtMDUtMTYgIEtlbGxleSBDb29rICA8a2VsbGV5Y29va0B3aWRlb3Blbndlc3QuY29tPgoKCSogY29uZmlndXJlLmhvc3Q6IEFjY2VwdCBpWzMtN104NiB2YXJpYW50cy4KCSogY29uZmlndXJlLnRndDogTGlrZXdpc2UuCgoyMDAzLTA1LTE1ICBILkouIEx1IDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVtdWxwYXJhbXMvZWxmNjRfaWE2NC5zaDogRG9uJ3Qgc2V0IENPTU1PTlBBR0VTSVpFIGZvciBub3cuCgoyMDAzLTA1LTA5ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlYXJtZWxmYi5vIGFuZCBlYXJtZWxmYl9saW51eC5vLgoJKGVhcm1lbGZiLmMsIGVhcm1lbGZiX2xpbnV4LmMpOiBOZXcgcnVsZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCSogZW11bHBhcmFtcy9hcm1lbGZiLnNoLCBlbXVscGFyYW1zL2FybWVsZmJfbGludXguc2g6IE5ldyBmaWxlcy4KCSogY29uZmlndXJlLnRndDogQWRkIGFybWViLWVsZiBhbmQgYXJtKmItKi1saW51eC1nbnUuCgoyMDAzLTA1LTA5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfc2l6ZV9zZWN0aW9uc18xKTogRGVmYXVsdCB0byBnZW5lcmF0aW5nIGEKCWZhdGFsIGVycm9yIG1lc3NhZ2UgaWYgYSBsb2FkYWJsZSBzZWN0aW9uIGlzIG5vdCBhbGxvY2F0ZWQKCXRvIGEgbWVtb3J5IHJlZ2lvbiB3aGVuIHJlZ2lvbnMgYXJlIGRlZmluZWQuCgoyMDAzLTA1LTA5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW0gKGVtNjhoYzExZWxmLmMpOiBDb3JyZWN0IGRlcGVuZGVuY2llcy4KCShlbTY4aGMxMWVsZmIuYywgZW02OGhjMTJlbGYuYywgZW02OGhjMTJlbGZiLmMpOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZmluZF9leHBfYXNzaWdubWVudCk6IEFkanVzdCBmb3IgY2hhbmdlZAoJYmZkX2VsZl9yZWNvcmRfbGlua19hc3NpZ25tZW50IG5hbWUuCgoyMDAzLTA1LTA3ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGxkbWFpbi5oIChvdmVyZmxvd19jdXRvZmZfbGltaXQpOiBEZWNsYXJlLgoJKiBsZG1haW4uYyAob3ZlcmZsb3dfY3V0b2ZmX2xpbWl0KTogRGVmaW5lLCBpbml0aWFsaXplZCB0byAxMC4KCShyZWxvY19vdmVyZmxvdyk6IExpbWl0IGVycm9yIG1lc3NhZ2VzIGJhc2VkIG9uIGl0LgoJKiBsZXhzdXAuYyAocGFyc2VfYXJncykgPE9QVElPTl9WRVJCT1NFPjogU2V0IGN1dG9mZiB0bwoJdW5saW1pdGVkLgoKMjAwMy0wNS0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGV4Lmw6IEFjY2VwdCBDIHN0eWxlIGNvbW1lbnRzIGluIHZlcnNpb24gc2NyaXB0cy4KCjIwMDMtMDQtMjggIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogbGRsYW5nLmMgKGxhbmdfcHJvY2Vzcyk6IEFkZCB0aGUgcmVsYXggZmluYWxpemUgcGFzcy4KCgkqIGxkbWFpbi5jIChtYWluKTogSW5pdGlhbGl6ZSBsaW5rX2luZm8ucmVsYXhfZmluYWxpemluZyB0bwoJRkFMU0UuCgoyMDAzLTA0LTI0ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgoKCSogbGRncmFtLnkgKHBoZHJfdHlwZSk6IEdyb2sgUFRfVExTIGFuZCBQVF9HTlVfRUhfRlJBTUUgbmFtZXMuCglJZiBhIG5hbWUgc3RyaW5nIGlzIHVua25vd24sIGdpdmUgYW4gZXJyb3IgcmF0aGVyIHRoYW4gY3Jhc2hpbmcgbGF0ZXIuCgoyMDAzLTA0LTIzIERoYW5hbmpheSBEZXNocGFuZGUgPGRoYW5hbmpheWRAa3BpdGN1bW1pbnMuY29tPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9FTVVMQVRJT05TKTogQWRkIGVoODMwMGhuLm8sIGVoODMwMHNuLm8sCgllaDgzMDBobmVsZi5vLCBlaDgzMDBzbmVsZi5vIGFuZCByZXNwZWN0aXZlIHJ1bGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndDogQWRkIGg4MzAwaG4sIGg4MzAwc24sIGg4MzAwaG5lbGYsIGg4MzAwc25lbGYKCSogZW11bHBhcmFtcy9oODMwMGhuLnNoOiBOZXcKCSogZW11bHBhcmFtcy9oODMwMHNuLnNoOiBOZXcKCSogZW11bHBhcmFtcy9oODMwMGhuZWxmLnNoOiBOZXcKCSogZW11bHBhcmFtcy9oODMwMHNuZWxmLnNoOiBOZXcKCSogc2NyaXB0dGVtcGwvaDgzMDBobi5zYzogbmV3CgkqIHNjcmlwdHRlbXBsL2g4MzAwc24uc2M6IG5ldwoKMjAwMy0wNC0yMyAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBsZG1haW4uYyAobGlua19jYWxsYmFja3MpOiBJbml0aWFsaXplIGVycm9yX2hhbmRsZXIuCgoJKiBsZG1pc2MuYyAoZXJyb3JfaGFuZGxlcik6IE5ldyBmdW5jdGlvbi4KCgkqIGxkbWlzYy5oIChlcnJvcl9oYW5kbGVyKTogTmV3IHByb3RvdHlwZS4KCjIwMDMtMDQtMjEgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogZW11bHBhcmFtcy9tNjhoYzExZWxmLnNoOiBVc2UgbTY4aGMxeGVsZi5lbSBleHRyYS4KCSogZW11bHBhcmFtcy9tNjhoYzExZWxmYi5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvbTY4aGMxMmVsZi5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvbTY4aGMxMmVsZmIuc2g6IExpa2V3aXNlLgoKMjAwMy0wNC0xOSAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbXVsdGVtcGwvbTY4aGMxeGVsZi5lbTogTmV3IGZpbGUgdG8gZ2VuZXJhdGUgZmFyIHRyYW1wb2xpbmVzIG9uCgk2OEhDMTEgYW5kIDY4SEMxMi4KCShMREVNVUxfQkVGT1JFX0FMTE9DQVRJT04pOiBPdmVycmlkZSB0byBnYXRoZXIgdGhlIHRyYW1wb2xpbmVzIHRvCglnZW5lcmF0ZS4KCShMREVNVUxfRklOSVNIKTogT3ZlcnJpZGUgdG8gZ2VuZXJhdGUgdGhlIHRyYW1wb2xpbmVzIGFmdGVyIGdjIGFuZAoJbGlua2VyIHJlbGF4YXRpb24uCgkoTERFTVVMX0NSRUFURV9PVVRQVVRfU0VDVElPTl9TVEFURU1FTlRTKTogT3ZlcnJpZGUgdG8gY3JlYXRlIHRoZQoJc3R1YiBmaWxlIGZvciB0cmFtcG9saW5lcy4KCShQQVJTRV9BTkRfTElTVF9PUFRJT05TLCBQQVJTRV9BTkRfTElTVF9MT05HT1BUUyk6IE5ldyBvcHRpb25zCgktLW5vLXRyYW1wb2xpbmUgYW5kIC0tYmFuay13aW5kb3cgdG8gY29udHJvbCB0aGUgbWVtb3J5IGJhbmsgd2luZG93LgoKMjAwMy0wNC0xOCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBsZGZpbGUuYyAobGRmaWxlX2FkZF9saWJyYXJ5X3BhdGgpOiBSZW1vdmUgdGhlIHVudXNlZAoJdmFyaWFibGUuCgoyMDAzLTA0LTE4ICBBbmRyZXcgSGFsZXkgIDxhcGhAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBzY3JpcHR0ZW1wbC94c3Rvcm15MTYuc2MgKF9fZGF0YSwgX19yZGF0YSk6IE5ldy4KCjIwMDMtMDQtMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBzY3JpcHR0ZW1wbC94c3Rvcm15MTYuc2M6IEFkZCAuamNyIHNlY3Rpb24gbWFwcGluZy4KCjIwMDMtMDQtMTUgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCUZyb20gRGViaWFuIGJ5IEphY2sgSG93YXJ0aCA8aG93YXJ0aEBuaXRyby5tZWQudWMuZWR1PjoKCgkqIGxkbGV4Lmw6IFVzZSBZWV9DVVJSRU5UX0JVRkZFUiBpbnN0ZWFkIG9mIHl5X2N1cnJlbnRfYnVmZmVyLgoKMjAwMy0wNC0xNSAgUm9oaXQgS3VtYXIgU3JpdmFzdGF2YSA8cm9oaXRzQGtwaXRjdW1taW5zLmNvbT4KCgkqIGg4LWRvYy50ZXhpOiBSZXBsYWNlIG9jY3VycmFuY2VzIG9mICdIaXRhY2hpJyB3aXRoICdSZW5lc2FzJy4KCSogbGQudGV4aW5mbzogTGlrZXdpc2UuCgoyMDAzLTA0LTE0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCUZyb20gUHJhc2hhbnRoIFRhbXJhcGFybmkgPHByYXNoYW50aF90QGluLmlibS5jb20+CgkqIHNjcmlwdHRlbXBsL2VsZi5zYyAoQ1RPUik6IEhhbmRsZSBjcnRiZWdpblMubywgY3J0ZW5kUy5vIGFuZAoJb3RoZXIgdmFyaWFudHMgb2YgY3J0YmVnaW4ubywgY3J0ZW5kLm8uCgkoRFRPUik6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9jcmlzYW91dC5zYyAoY3RvcnMsIGR0b3JzKTogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZl9jaGFvcy5zYyAoQ1RPUiwgRFRPUik6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGZkMTB2LnNjIChDVE9SLCBEVE9SKTogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZmQzMHYuc2MgKENUT1IsIERUT1IpOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmeHRlbnNhLnNjIChDVE9SLCBEVE9SKTogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2lxMjAwMC5zYyAoQ1RPUiwgRFRPUik6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9tbW8uc2MgKGN0b3JzLCBkdG9ycyk6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC94c3Rvcm15MTYuc2MgKENUT1IsIERUT1IpOiBMaWtld2lzZS4KCjIwMDMtMDQtMDkgICBEbWl0cnkgRGlreSAgPGRpd2lsQG1haWwucnU+CgoJKiBzY3JpcHR0ZW1wbC9lbGYzMm1zcDQzMC5zYzogQWRkIGluaXRYLCBmaW5pWCwgY3RvcnMsIGR0b3JzCglzZWN0aW9ucyB0byByZXNwZWN0IEMrKyAgY29uc3RydWN0b3IvZGVzdHJ1Y3Rvci4gQWRkIGN0b3JzL2R0b3JzCglzdGFydC9zdG9wIGRlZmluaXRpb25zLgoJKiBzY3JpcHR0ZW1wbC9lbGYzMm1zcDQzMF8zLnNjOiBMaWtld2lzZS4KCjIwMDMtMDQtMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsZC50ZXhpbmZvIChPcHRpb25zKTogQWRkIGEgcmVtaW5kZXIgb2YgdGhlIHRhcmdldCBzcGVjaWZpYwoJbmF0dXJlIHRvIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgaTM4NiBQRSBzcGVjaWZpYyBvcHRpb25zLCBmb3IKCXJlYWRlcnMgd2hvIGhhdmUgbm90IHJlYWQgYWxsIHRoZSB3YXkgdGhyb3VnaCB0aGUgbWFudWFsLgoKMjAwMy0wNC0wNCAgU3ZlaW4gRS4gU2VsZGFsICA8U3ZlaW4uU2VsZGFsQHNvbGlkYXMuY29tPgoKCSogY29uZmlndXJlLnRndDogRml4ZWQgYnVnIGluIGxpc3Qgb2YgdGFyZ19leHRyYV9lbXVscy4KCSogZW11bHBhcmFtcy90aWMzeGNvZmYuc2ggKFNDUklQVF9OQU1FKTogTmFtZXNwYWNlCgljbGVhbnVwLiBSZXBsYWNlIHMvYzR4L3RpYzR4IGFuZCBzL2MzeC90aWMzeC8KCSogZW11bHBhcmFtcy90aWMzeGNvZmZfb25jaGlwLnNoOiBEaXR0bwoJKiBlbXVscGFyYW1zL3RpYzR4Y29mZi5zaDogRGl0dG8KCSogc2NyaXB0dGVtcGwvdGljNHhjb2ZmLnNjOiBEaXR0bwoKMjAwMy0wNC0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gc3VwcG9ydCBmb3IgWHRlbnNhIGFyY2hpdGVjdHVyZS4KCjIwMDMtMDQtMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwZS1kbGwuYyAocGVfZGV0YWlsX2xpc3QpOiBhcm0tcGUgdGFyZ2V0cyB1c2UgdW5kZXJzY29yZXMuCgoyMDAzLTA0LTAxICBEYW5ueSBTbWl0aCA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBlbXVsdGVtcGwvcGUuZW0gKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9hZnRlcl9vcGVuKToKCURvbid0IGNhbGwgcGVfZGxsX2J1aWxkX3NlY3Rpb24oKSBpZiBsaW5rX2luZm8ucmVsb2NhdGVhYmxlLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBEb24ndCBjYWxsIHBlX2RsbF9maWxsX3NlY3Rpb25zKCkKCWlmIGxpbmtfaW5mby5yZWxvY2F0ZWFibGUuCgoyMDAzLTA0LTAxICBGYWJyaXppbyBHZW5uYXJpICA8ZmFicml6aW8uZ2VAdGlzY2FsaW5ldC5pdD4KCgkqIHBlLWRsbC5jIChwcm9jZXNzX2RlZl9maWxlKTogRG9uJ3QgY3JlYXRlIGFuIGV4cG9ydAoJc2VjdGlvbiBpZiB0aGVyZSBhcmUgbm8gZXhwb3J0cyBhbmQgd2UncmUgYnVpbGRpbmcgYW4gZXhlCgkocGVfZGxsX2J1aWxkX3NlY3Rpb25zKTogRGl0dG8KCShwZV9kbGxfZmlsbF9zZWN0aW9ucyk6IENvbmRpdGlvbmFsaXplIHNldHRpbmcKCWFiZmQtPmRsbCB0cnVlIG9uIGluZm8tPnNoYXJlZAoJKiBlbXVsdGVtcGwvcGUuZW0gKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9hZnRlcl9vcGVuKToKCUlmIGkzODZwZSBvciBhcm1wZSwgY2FsbCBwZV9kbGxfYnVpbGRfc2VjdGlvbigpCglmb3IgYm90aCBleGUncyBhbmQgZGxsJ3MsIG5vdCBqdXN0IGRsbCdzLgoJKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBGb3IgYWxsIHRhcmdldHMgZXhjZXB0CglzaHBlIGFuZCBtaXBzcGUsIGNhbGwgcGVfZGxsX2ZpbGxfc2VjdGlvbnMoKSBmb3IgYm90aAoJZXhlJ3MgYW5kIGRsbCdzLCBub3QganVzdCBkbGwncy4KCjIwMDMtMDQtMDIgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbXVscGFyYW1zL3h0ZW5zYS1jb25maWcuc2g6IFJlbW92ZSBjb21tZW50IGluZGljYXRpbmcgdGhhdCB0aGlzIGlzCglhIGdlbmVyYXRlZCBmaWxlLgoKMjAwMy0wNC0wMSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlZWxmMzJ4dGVuc2Euby4KCShlZWxmMzJ4dGVuc2EuYyk6IE5ldyB0YXJnZXQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0OiBIYW5kbGUgeHRlbnNhLSotKi4KCSogZ2VuLWRvYy50ZXhpOiBTZXQgWFRFTlNBIHZhcmlhYmxlLgoJKiBsZC50ZXhpbmZvOiBTZXQgWFRFTlNBIHZhcmlhYmxlLiAgQWRkIG5ldyBYdGVuc2Egbm9kZS4KCSogZW11bHBhcmFtcy9lbGYzMnh0ZW5zYS5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMveHRlbnNhLWNvbmZpZy5zaDogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC94dGVuc2FlbGYuZW06IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGZ4dGVuc2Euc2M6IExpa2V3aXNlLgoKMjAwMy0wNC0wMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUudGd0IChwb3dlcnBjKi0qLWxpbnV4Kik6IEFkZCBlbGYzMnBwYyB0byBwcGM2NAoJdGFyZ19leHRyYV9saWJwYXRoLiAgQWRkIGVsZjY0cHBjIHRvIHBwYyB0YXJnX2V4dHJhX2xpYnBhdGgKCWlmIC0tZW5hYmxlLTY0LWJpdC1iZmQuCgoyMDAzLTA0LTAxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZW11bHBhcmFtcy9hcm1lbGYuc2ggKE9USEVSX1JFQURPTkxZX1NFQ1RJT05TKTogQ2hhbmdlIG5hbWUgb2YKCW5vdGUgc2VjdGlvbi4KCSogZW11bHBhcmFtcy9hcm1lbGZfbGludXguc2ggKE9USEVSX1JFQURPTkxZX1NFQ1RJT05TKTogQ2hhbmdlCgluYW1lIG9mIG5vdGUgc2VjdGlvbi4KCjIwMDMtMDMtMzEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogbGQudGV4aW5mbyAoLVRic3MsIC1UZGF0YSwgLVR0ZXh0KTogRG9jdW1lbnQgaW4gdGVybXMgb2YKCS0tc2VjdGlvbi1zdGFydC4KCjIwMDMtMDMtMzEgIERhdmlkIEhlaW5lICA8ZGxoZWluZUBzdWlmLnN0YW5mb3JkLmVkdT4KCgkqIGxkZmlsZS5jIChsZGZpbGVfYWRkX2xpYnJhcnlfcGF0aCk6IEFsd2F5cyBhbGxvY2F0ZSBzcGFjZSBmb3IKCXRoZSBmaWxlbmFtZS4KCSogbGRsYW5nLmMgKGxhbmdfcmVnaXN0ZXJfdmVyc19ub2RlKTogRnJlZSB0aGUgbm9kZSBpZiBpdCBjYW5ub3QKCWJlIHVzZWQuCgkqIGxkbWFpbi5jIChzZXRfc2NyaXB0c19kaXIpOiBBbHdheXMgZnJlZSB0aGUgY29uc3RydWN0ZWQKCWRpcmVjdG9yeSBuYW1lLgoJKGFkZF9rZWVwc3ltc19maWxlKTogRml4IG1lbW9yeSBsZWFrLgoJKiBsZG1pc2MuYyAodmZpbmZvKTogTGlrZXdpc2UuCgkqIGxleHN1cC5jIChwYXJzZV9hcmdzKTogTGlrZXdpc2UuCgoyMDAzLTAzLTI1ICBTdGFuIENveCAgIDxzY294QHJlZGhhdC5jb20+CgkgICAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglDb250cmlidXRlIHN1cHBvcnQgZm9yIEludGVsJ3MgaVdNTVh0IGNoaXAgLSBhbiBBUk0gdmFyaWFudDoKCgkqIGVtdWxwYXJhbXMvYXJtZWxmLnNoIChPVEhFUl9SRUFET05MWV9TRUNUSU9OUyk6IERlZmluZS4KCSogZW11bHBhcmFtcy9hcm1lbGZfbGludXguc2ggKE9USEVSX1JFQURPTkxZX1NFQ1RJT05TKTogRGVmaW5lLgoJKiBzY3JpcHR0ZW1wbC9hcm1jb2ZmLnNjICguZGF0YSk6IEVuc3VyZSA4IGJ5dGUgYWxpZ25tZW50LgoJKC5ic3MpOiBMaWtld2lzZS4KCjIwMDMtMDMtMjUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogbGRtYWluLmggKGxkX2Nhbm9uX3N5c3Jvb3QsIGxkX2Nhbm9uX3N5c3Jvb3RfbGVuKTogRGVjbGFyZS4KCSogbGRtYWluLmMgKGxkX2Nhbm9uX3N5c3Jvb3QsIGxkX2Nhbm9uX3N5c3Jvb3RfbGVuKTogRGVmaW5lLgoJKG1haW4pOiBJbml0aWFsaXplIHRoZW0uCgkqIGxkZmlsZS5jOiBJbmNsdWRlIHBhdGhuYW1lcy5oLgoJKGlzX3N5c3Jvb3RlZF9wYXRobmFtZSk6IE5ldy4KCShsZGZpbGVfYWRkX2xpYnJhcnlfcGF0aCk6IFVzZSBpdC4KCShsZGZpbGVfb3Blbl9maWxlX3NlYXJjaCk6IExpa2V3aXNlLiAgVXNlIElTX0FCU09MVVRFX1BBVEguICBEb24ndAoJc2VhcmNoX2RpcnMgaWYgZ2l2ZW4gYW4gYWJzb2x1dGUgcGF0aG5hbWUuCgkobGRmaWxlX29wZW5fZmlsZSk6IElzc3VlIGVycm9yIG1lc3NhZ2UgZm9yIHN5c3Jvb3RlZAoJYWJzb2x1dGUgcGF0aG5hbWVzLgoJKiBNYWtlZmlsZS5hbTogVXBkYXRlZCBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoKMjAwMy0wMy0yNCAgRGFuaWVsIE7pcmkgIDxkbmVAbWF5b25uYWlzZS5uZXQ+CgoJKiBsZC50ZXhpbmZvOiBSZW5hbWUgYWxsIG9jY3VyYW5jZXMgb2YgQzU0WCB0byBUSUM1NFguCgoyMDAzLTAzLTE5ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogbGRmaWxlLmMgKGxkZmlsZV90cnlfb3Blbl9iZmQpOiBQb3AgbGV4ZXIgc3RhcnQgY29uZGl0aW9uIGFmdGVyCgllb2YuCgoyMDAzLTAzLTE4ICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGVmZmlsZXAueSAob3B0X2Jhc2UpOiBJZiBubyBudW1iZXIgZ2l2ZW4sIHNldCB0byBkZWZhdWx0CgkoLTEpLCBub3QgMC4KCjIwMDMtMDMtMTMgIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkZWZmaWxlcC55IChkZWZfaW1wb3J0KTogVXNlIGRlZmF1bHQgZXh0ZW5zaW9uIG9mICJkbGwiCglpZiBubyBleHRlbnNpb24gcHJvdmlkZWQgaW4gcGFyc2VkIElNUE9SVCBkZWZpbml0aW9uLgoKCSogZGVmZmlsZXAueSAoZGVmX2xleCk6IFJldmVydCAyMDAzLTAzLTEyIGNoYW5nZS4KCShkb3RfbmFtZSk6IE5ldyBpZCB0eXBlIGFuZCBydWxlLgoJKGV4cGxpbmUpOiBVc2UgaW5zdGVhZCBvZiBJRC4KCShvcHRfZXF1YWxfbmFtZSk6IExpa2V3aXNlLgoKMjAwMy0wMy0xMiAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRlZmZpbGVwLnkgKGRlZl9sZXgpOiBBY2NlcHQgJy4nIGFzIHZhbGlkIG5vbi1sZWFkIGNoYXIuCgoyMDAzLTAzLTA3ICBDaHJpc3RvcGhlciBGYXlsb3IgIDxjZ2ZAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBOQVRJVkVfTElCX0RJUlMgZm9yIGN5Z3dpbiB0YXJnZXQgYmFjayBhZnRlcgoJYXBwYXJlbnQgYWNjaWRlbnRhbCByZW1vdmFsIG9uIDIwMDMtMDEtMDYuCgoyMDAzLTAzLTA0ICBEbWl0cnkgRGlreSAgPGRpd2lsQG1haWwucnU+CgoJKiBNYWtlZmlsZS5hbTogQWRkIG5ldyBkZXZpY2VzIHgxMTIyIHgxMTMyIGVtdWxhdGlvbgoJKiBjb25maWd1cmUudGd0OiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVtdWxwYXJhbXMvbXNwNDMweDExMjIuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL21zcDQzMHgxMTMyLnNoOiBOZXcgZmlsZS4KCjIwMDMtMDMtMDMgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogbGRtYWluLmMgKHNldF9zY3JpcHRzX2Rpcik6IExvb2sgZm9yIHJlbGF0aXZlIHRvIFRPT0xCSU5ESVIgYXMKCXdlbGwuCgoJKiBsZGZpbGUuaCAoc3RydWN0IHNlYXJjaF9kaXJzKTogQWRkZWQgc3lzcm9vdGVkIGZpZWxkLgoJKiBsZGxhbmcuaCAoc3RydWN0IGxhbmdfaW5wdXRfc3RhdGVtZW50X3N0cnVjdCk6IExpa2V3aXNlLgoJKiBsZGZpbGUuYyAobGRmaWxlX2FkZF9saWJyYXJ5X3BhdGgpOiBNYXJrIHN5c3Jvb3RlZCBwYXRocy4KCShsZGZpbGVfb3Blbl9maWxlX3NlYXJjaCk6IExvb2sgZm9yIHN5c3Jvb3RlZCBmaWxlbmFtZSBzdGFydGluZwoJd2l0aCAvIGluIGxkX3N5c3Jvb3QgaW5zdGVhZCBvZiBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuICBDbGVhcgoJc3lzcm9vdGVkIGZsYWcgaWYgaXQncyBmb3VuZCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuICBTZXQgaXQKCWZyb20gdGhlIHNlYXJjaCBkaXJlY3RvcnkncyBzeXNyb290ZWQgZmxhZyB3aGVyZSBpdCBpcyBmb3VuZAoJb3RoZXJ3aXNlLgoJKiBsZGxhbmcuYyAobGRsYW5nX3N5c3Jvb3RlZF9zY3JpcHQpOiBOZXcgc3RhdGljIHZhcmlhYmxlLgoJKG5ld19hZmlsZSk6IE1hcmsgc2VhcmNoX2ZpbGVfZW51bXMgYXMgc3lzcm9vdGVkIGlmCglsZGxhbmdfc3lzcm9vdGVkX3NjcmlwdC4KCShsb2FkX3N5bWJvbHMpOiBTZXQgbGRsYW5nX3N5c3Jvb3RlZF9zY3JpcHQgYWNjb3JkaW5nIHRvIHRoZQoJc2NyaXB0J3Mgc3lzcm9vdGVkIGZpZWxkIHdoaWxlIHByb2Nlc3NpbmcgaXQuCgkqIGxkLnRleGluZm86IERvY3VtZW50IElOUFVUIGJlaGF2aW9yIGluIHN5c3Jvb3QuCgoyMDAzLTAzLTAyICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogc2NyaXB0dGVtcGwvcGUuc2M6IFVzZSBQUk9WSURFIHdpdGggZXRleHQsIGVuZCwgX2VuZCwKCjIwMDMtMDMtMDMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVscGFyYW1zL2VsZjY0YWxwaGEuc2ggKEVYVFJBX0VNX0ZJTEUpOiBEZWZpbmUuCgkoUEFSU0VfQU5EX0xJU1RfUFJPTE9HVUUsIFBBUlNFX0FORF9MSVNUX0xPTkdPUFRTLAoJUEFSU0VfQU5EX0xJU1RfT1BUSU9OUywgUEFSU0VfQU5EX0xJU1RfQVJHU19DQVNFUywKCVBBUlNFX0FORF9MSVNUX0VQSUxPR1VFKTogRG9uJ3QgZGVmaW5lLgoJKiBlbXVsdGVtcGwvYWxwaGFlbGYuZW06IE5ldyBmaWxlLgoKMjAwMy0wMy0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkZW11bC5jOiBJbmNsdWRlIGdldG9wdC5oLgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IEluY2x1ZGUgZ2V0b3B0LmggZWFybGllci4KCSogZW11bHRlbXBsL3RpY29mZi5lbTogTGlrZXdpc2UuCgoyMDAzLTAyLTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9nZXRfc2NyaXB0KTogQWRkIGNvbWJyZWxvYwoJc3VwcG9ydCB3aGVuIHNjcmlwdHMgcmVhZCBmcm9tIGZpbGVzLgoKMjAwMy0wMi0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkZW11bC5jIChsZGVtdWxfcGFyc2VfYXJncyk6IFJldHVybiBGQUxTRSBieSBkZWZhdWx0LgoJKiBsZGVtdWwuaCAoc3RydWN0IGxkX2VtdWxhdGlvbl94ZmVyX3N0cnVjdCk6IFVwZGF0ZSBwYXJzZV9hcmdzCgljb21tZW50LgoKCSogbGRlbXVsLmMgKGxkZW11bF9hZGRfb3B0aW9ucywgbGRlbXVsX2hhbmRsZV9vcHRpb24pOiBOZXcgZnVuY3Rpb25zLgoJKGxkZW11bF9wYXJzZV9hcmdzKTogUmV0dXJuIGJmZF9ib29sZWFuLiAgRm9ybWF0dGluZy4KCSogbGRlbXVsLmggKGxkZW11bF9hZGRfb3B0aW9ucywgbGRlbXVsX2hhbmRsZV9vcHRpb24pOiBEZWNsYXJlLgoJKGxkZW11bF9wYXJzZV9hcmdzKTogQWRqdXN0LgoJKHN0cnVjdCBsZF9lbXVsYXRpb25feGZlcl9zdHJ1Y3QpOiBBZGQgYWRkX29wdGlvbnMgYW5kIGhhbmRsZV9vcHRpb24uCglSZXR1cm4gYmZkX2Jvb2xlYW4gZnJvbSBwYXJzZV9hcmdzLgoJKiBsZXhzdXAuYyAocGFyc2VfYXJncyk6IE1hbGxvYyBzaG9ydG9wdHMsIGxvbmdvcHRzIGFuZAoJcmVhbGx5X2xvbmdvcHRzLiAgQ2FsbCBsZGVtdWxfYWRkX29wdGlvbnMgYW5kIGxkZW11bF9oYW5kbGVfb3B0aW9uLgoJKiBlbXVsdGVtcGwvYWl4LmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9hZGRfb3B0aW9ucyk6IFNwbGl0IG91dCBmcm9tCglnbGQke0VNVUxBVElPTl9OQU1FfV9wYXJzZV9hcmdzLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X2hhbmRsZV9vcHRpb24pOiBMaWtld2lzZS4KCShsZF8ke0VNVUxBVElPTl9OQU1FfV9lbXVsYXRpb24pOiBBZGp1c3QgaW5pdGlhbGl6ZXIuCgkqIGVtdWx0ZW1wbC9hcm1jb2ZmLmVtOiBBcyBmb3IgYWl4LmVtLCBidXQgcmVtb3ZlIHBhcnNlX2FyZ3MuCgkqIGVtdWx0ZW1wbC9iZW9zLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3BlLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3RpY29mZi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbTogTGlrZXdpc2UuICBEb24ndCBkdXBsaWNhdGUgbG9uZyBvcHRpb25zIGVpdGhlci4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9hZGRfc3lzcm9vdCk6IFByb3RvdHlwZS4KCSogZW11bHRlbXBsL2FybWVsZi5lbSAoUEFSU0VfQU5EX0xJU1RfTE9OR09QVFMpOiBEb24ndCBkdXBsaWNhdGUKCW9wdGlvbnMuCgkqIGVtdWx0ZW1wbC9ocHBhZWxmLmVtIChQQVJTRV9BTkRfTElTVF9MT05HT1BUUyk6IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcHBjMzJlbGYuZW0gKFBBUlNFX0FORF9MSVNUX0xPTkdPUFRTKTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbSAoUEFSU0VfQU5EX0xJU1RfTE9OR09QVFMpOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2FybWVsZl9vYWJpLmVtIChsZF8ke0VNVUxBVElPTl9OQU1FfV9lbXVsYXRpb24pOiBBZGp1c3QKCWluaXRpYWxpemVyLgoJKiBlbXVsdGVtcGwvZ2VuZXJpYy5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9nbGQ5NjAuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvZ2xkOTYwYy5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9saW51eC5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9sbms5NjAuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbTY4a2NvZmYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbWlwc2Vjb2ZmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3N1bm9zLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3ZhbmlsbGEuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbmV0YnNkLmVtIChnbGRuZXRic2RfYmVmb3JlX3BhcnNlKTogUHJvdG90eXBlLgoKMjAwMy0wMi0yNSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X2FkZF9zeXNyb290KTogRml4CgltZW1vcnkgYWxsb2NhdGlvbiBlcnJvci4KCgkqIE1ha2VmaWxlLmFtIChsZG1haW4ubyk6IERlZmluZSBUT09MQklORElSLgoJKiBNYWtlZmlsZS5pbjogUmVidWlsdC4KCSogbGRtYWluLmMgKGxkX3N5c3Jvb3QpOiBUcnkgdG8gc2V0IGZyb20gVE9PTEJJTkRJUiB0b28uCgoyMDAzLTAyLTIxICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogbGRsYW5nLmMgKGxhbmdfc2l6ZV9zZWN0aW9uc18xKTogQWRkIENIRUNLX1JFR0lPTlMgYXJndW1lbnQgYW5kIG9ubHkKCWNhbGwgb3NfcmVnaW9uX2NoZWNrIHdoZW4gaXQgaXMgc2V0LgoJKGxhbmdfc2l6ZV9zZWN0aW9ucyk6IEFkZCBDSEVDS19SRUdJT05TIGFyZ3VtZW50IGFuZCBwYXNzIGl0IHRocm91Z2ggdG8KCWxhbmdfc2l6ZV9zZWN0aW9uc18xLgoJKGxhbmdfcHJvY2Vzcyk6IENoYW5nZSBsYW5nX3NpemVfc2VjdGlvbnMgY2FsbHMgdG8gc2V0IENIRUNLX1JFR0lPTlMKCW9ubHkgZm9yIHRoZSBsYXN0IGNhbGwsIG5vdCBvbiBldmVyeSByZWxheGF0aW9uIGl0ZXJhdGlvbi4KCSogbGRsYW5nLmggKGxhbmdfc2l6ZV9zZWN0aW9ucyk6IFVwZGF0ZSBwcm90b3R5cGUuCgkqIHBlLWRsbC5jIChwZV9kbGxfZmlsbF9zZWN0aW9ucyk6IFNldCBDSEVDS19SRUdJT05TIGFyZ3VtZW50IGluIGNhbGxzCgl0byBsYW5nX3NpemVfc2VjdGlvbnMuCgkocGVfZXhlX2ZpbGxfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2hwcGFlbGYuZW0gKGhwcGFlbGZfbGF5b3V0X3NlY3Rpb25zX2FnYWluKTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbSAocHBjX2JlZm9yZV9hbGxvY2F0aW9uKTogTGlrZXdpc2UuCgkocHBjX2xheW91dF9zZWN0aW9uc19hZ2Fpbik6IExpa2V3aXNlLgoKMjAwMy0wMi0yMSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGdlbi1kb2MudGV4aTogU2V0IEFSTSBhbmQgSFBQQSB2YXJpYWJsZXMuCgkqIGxkLnRleGluZm86IEZpeCB0eXBvcyBhbmQgb2J2aW91cyB0ZXhpbmZvIG1pc3Rha2VzLiAgTWFrZSBzZWN0aW9uCgl0aXRsZSBjYXBpdGFsaXphdGlvbiBtb3JlIGNvbnNpc3RlbnQuICBBZGQgbWlzc2luZyBtZW51IGVudHJpZXMgZm9yCgltYWNoaW5lLXNwZWNpZmljIHNlY3Rpb25zIGFuZCBjb25kaXRpb25hbGl6ZSB0aGVtIGNvbnNpc3RlbnRseS4KCUNvbmRpdGlvbmFsaXplIHRleHQgdGhhdCBpcyBpcnJlbGV2YW50IHdoZW4gU2luZ2xlRm9ybWF0IGlzIHNldC4KCUFkZCBAZ3JvdXAgZGl2aXNpb25zIHRvIGltcHJvdmUgcGFnZSBicmVha3MgaW4gbG9uZyBleGFtcGxlcy4KCVVzZSBAaWZ0ZXgvQGlmbm90dGV4IGluc3RlYWQgb2YgQGlmdGV4L0BpZmluZm8gc28gdGhhdCBIVE1MIG91dHB1dAoJaXMgY29ycmVjdC4gIFJlbW92ZSAiRklYTUUiIGNvbW1lbnQgYWJvdXQgbm90IHVzaW5nCglAcmFpc2VzZWN0aW9ucy9AbG93ZXJzZWN0aW9ucy4gIFVzZSBAcmFpc2VzZWN0aW9ucy9AbG93ZXJzZWN0aW9ucwoJY29uc2lzdGVudGx5IGZvciBtYWNoaW5lLXNwZWNpZmljIHNlY3Rpb25zLiAgQ2hhbmdlIHRvIGJlIG1vcmUgcG9saXRlCglhYm91dCBwb29yIGJ1ZyByZXBvcnRzLiAgUmVwbGFjZSBGREwgYXBwZW5kaXggd2l0aCBpbmNsdWRlIG9mIGZkbC50ZXhpLgoJTW92ZSBXSU4zMiBub2RlIHRvIG1hdGNoIGl0cyBvcmRlciBpbiB0aGUgbWVudXMuCgkqIGZkbC50ZXhpOiBOZXcgZmlsZS4KCjIwMDMtMDItMjAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluIChUQVJHRVRfU1lTVEVNX1JPT1QpOiBTZXQgZGVmYXVsdCB0bwoJJHtleGVjX3ByZWZpeH0vJHt0YXJnZXRfYWxpYXN9L3N5cy1yb290LiAgTWF0Y2ggZXhwbGljaXQKCScke2V4ZWNfcHJlZml4fScgKGluIGFkZGl0aW9uIHRvIHRoZSBleHBhbnNpb24gdGhlcmVvZikgYXMKCXJlbG9jYXRhYmxlLgoJKiBjb25maWd1cmU6IFJlYnVpbHQuCgoyMDAzLTAyLTIwICBQaGlsIEVkd2FyZHMgIDxwbWVAZ2NjLmdudS5vcmc+CgoJKiBsZGdyYW0ueSAodmVyc19kZWZucyk6IEFsc28gcmVjdXJzZSB3aXRoICdFWFRFUk4gTkFNRScgcGF0dGVybnMuCgoyMDAzLTAyLTIwICBIYXJyaSBQb3J0ZW4gIDxwb3J0ZW5Aa2RlLm9yZz4KCgkqIGxkZ3JhbS55ICh2ZXJzX2RlZm5zKTogQWxsb3cgb3B0aW9uYWwgdHJhaWxpbmcgc2VtaWNvbG9uIGluCglFWFRFUk4gTkFNRSBibG9jazsKCjIwMDMtMDItMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvcHBjMzJlbGYuZW06IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL2VsZjMycHBjLnNoIChFWFRSQV9FTV9GSUxFKTogRGVmaW5lLgoJKiBNYWtlZmlsZS5hbSAoZWVsZjMybHBwYy5jKTogRGVwZW5kIG9uIGVtdWx0ZW1wbC9wcGMzMmVsZi5lbS4KCShlZWxmMzJscHBjbnRvLmMpOiBMaWtld2lzZS4KCShlZWxmMzJscHBjc2ltLmMpOiBMaWtld2lzZS4KCShlZWxmMzJwcGNudG8uYyk6IExpa2V3aXNlLgoJKGVlbGYzMnBwYy5jKTogTGlrZXdpc2UuCgkoZWVsZjMycHBjX2Zic2QuYyk6IExpa2V3aXNlLgoJKGVlbGYzMnBwY3NpbS5jKTogTGlrZXdpc2UuCgkoZWVsZjMycHBjbGludXguYyk6IExpa2V3aXNlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDItMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZC50ZXhpbmZvOiBSZW1vdmUgc3BhY2VzIGJldHdlZW4gQHNhbXAgYW5kIG9wZW5pbmcgYnJhY2UuCgoyMDAzLTAyLTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtIChwcGNfY3JlYXRlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudHMpOiBDaGVjawoJaGFzaCBjcmVhdG9yLgoJKHBwY19iZWZvcmVfYWxsb2NhdGlvbik6IERvbid0IGRvIG9wdGltaXphdGlvbnMgaWYgd3JvbmcgaGFzaCB0YWJsZS4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBEaXR0by4KCjIwMDMtMDItMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsZG1haW4uYyAobWFpbikgRGVmYXVsdCBhbGxvd19zaGxpYl91bmRlZmluZWQgdG8gdHJ1ZS4KCSogbGV4c3VwLmMgKGxkX29wdGlvbnMpOiBBZGQgLS1uby1hbGxvdy1zaGxpYi11bmRlZmluZWQuCgkocGFyc2VfYXJncyk6IFBhcnNlIHRoZSBuZXcgc3dpdGNoLgoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCBuZXcgc3dpdGNoIGFuZCBkZWZhdWx0IGJlaGF2aW91ciBvZgoJYWxsb3dpbmcgdW5kZWZpbmVkIHN5bWJvbHMgaW4gc2hhcmVkIGxpYnJhcmllcy4KCjIwMDMtMDItMTEgRG1pdHJ5IERpa3kgIDxkaXdpbEBtYWlsLnJ1PgoKCSogc2NyaXB0dGVtcGwvZWxmMzJtc3A0MzAuc2M6IEFkZCBuZXcgZGF0YSBhbmNob3JzIGRlZmluaXRpb25zLgoJKiBzY3JpcHR0ZW1wbC9lbGYzMm1zcDQzMF8zLnNjOiBMaWtld2lzZS4KCjIwMDMtMDItMTEgIFV3ZSBTdGllYmVyICA8dXdlQHd3d3MuZGU+CgoJKiBjb25maWd1cmUudGd0OiBBZGQgc3VwcG9ydCBmb3Iga2FPUyBhcyBjcm9zcyBidWlsZCB0YXJnZXQKCXN5c3RlbS4KCjIwMDMtMDItMTAgIEpvaG4gRGFpdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCSogaHBwYWVsZi5lbSAoZ3JvdXBfc2l6ZSk6IENoYW5nZSBkZWZhdWx0IGJhY2sgdG8gMS4KCjIwMDMtMDItMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvcHBjNjRlbGYuZW06IEFkZCAibm8tdGxzLW9wdGltaXplIiBvcHRpb24gYW5kIHN1cHBvcnQgY29kZS4KCjIwMDMtMDItMDcgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBocHBhZWxmLmVtIChncm91cF9zaXplKTogQ2hhbmdlIGRlZmF1bHQgdG8gLTEuCgoyMDAzLTAyLTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2FybWVsZi5lbSAoUEFSU0VfQU5EX0xJU1RfU0hPUlRPUFRTKTogUmVtb3ZlICduJyBzaG9ydAoJb3B0LgoJKFBBUlNFX0FORF9MSVNUX0xPTkdPUFRTKTogQWRkIGR1cGxpY2F0ZSBlbnRyeSBmb3IKCW5vLXBpcGVsaW5lLWtub3dsZWRnZS4gIFRoaXMgd2lsbCBwcmV2ZW50IHRoZSBnZXRvcHQgcGFja2FnZSBmcm9tCgl0aGlua2luZyB0aGF0IHRoZXJlIGFyZSBhbnkgc2hvcnRlciBhYmJyZXZpYXRpb25zIGZvcgoJLS1uby1waXBlbGluZS1rbm93bGVkZ2UuCgoyMDAzLTAyLTA3ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGdlbnNjcmlwdHMuc2ggKExJQl9QQVRIKTogRG9uJ3QgYXBwZW5kIExJQlBBVEhfU1VGRklYIHRvIHBhdGhzCgl3aGljaCBhbHJlYWR5IGhhdmUgaXQuICBBdm9pZCBkdXBsaWNhdGVzLgoKMjAwMy0wMi0wNiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjY0X3MzOTAuc2ggKExJQlBBVEhfU1VGRklYKTogU2V0IHRvIDY0LgoJKiBlbXVscGFyYW1zL2VsZl94ODZfNjQuc2ggKExJQlBBVEhfU1VGRklYKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRfc3BhcmMuc2ggKExJQlBBVEhfU1VGRklYKTogU2V0IGluc3RlYWQgb2Ygc3VmZml4LgoKMjAwMy0wMi0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbSAocHBjX2JlZm9yZV9hbGxvY2F0aW9uKTogU2l6ZSBzZWN0aW9ucyB0aGVuCgljYWxsIHBwYzY0X2VsZl90bHNfb3B0aW1pemUuCgoyMDAzLTAyLTAzICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbTogTW92ZSBnbGQke0VNVUxBVElPTl9OQU1FfV9hZGRfc3lzcm9vdAoJb3V0c2lkZSBvZiBHTlUvTGludXggY29uZGl0aW9uYWwuCgoyMDAzLTAxLTI4ICBSYWxmIEhhYmFja2VyICA8cmFsZi5oYWJhY2tlckBmcmVlbmV0LmRlPgoKCSogZGVmZmlsZXAueSAoZGVmX2dldF9tb2R1bGUpOiBOZXcgZnVuY3Rpb246IGxvY2F0ZSBhbiBhbHJlYWR5CglhZGRlZCBtb2R1bGUuCgkqIGRlZmZpbGUuaCAoZGVmX2dldF9tb2R1bGUpOiBOZXcgcHJvdG90eXBlLgoJKiBwZS1kbGwuYyAocGVfaW1wbGllZF9pbXBvcnRfZGxsKTogQWRkIGNvZGUgdG8gcHJldmVudCBpbXBvcnRpbmcKCWEgZGxsIG11bHRpcGxlIHRpbWVzLgoKMjAwMy0wMS0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9zaDY0ZWxmLmVtOiBJbmNsdWRlIGVsZjMyLXNoNjQuaC4KCShzaDY0X2VsZl8ke0VNVUxBVElPTl9OQU1FfV9iZWZvcmVfYWxsb2NhdGlvbik6IEFkanVzdCBmb3IgY2hhbmdlZAoJc2g2NF9lbGZfc2VjdGlvbl9kYXRhLgoJKHNoNjRfZWxmXyR7RU1VTEFUSU9OX05BTUV9X2FmdGVyX2FsbG9jYXRpb24pOiBMaWtld2lzZS4KCjIwMDMtMDEtMjMgIFd1IFlvbmd3ZWkgIDxhZGFoQG5ldHN0ZC5jb20+CgoJKiBsZC50ZXhpbmZvOiBSZW1vdmUgYW4gZXh0cmEgImkiIGluIC0tZGxsLXNlYXJjaC1wcmVmaXguCgkqIGVtdWx0ZW1wbC9wZS5lbSAoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X2xpc3Rfb3B0aW9ucyk6IE1vdmUgYQoJY3Jvc3MtODB0aC1jb2x1bW4tbWFyZ2luICJhbiIgdG8gdGhlIG5leHQgbGluZS4KCjIwMDMtMDEtMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL3RpYzN4Y29mZi1vbmNoaXAuc2g6IFJlbmFtZSB0byAuLi56CgkqIGVtdWxwYXJhbXMvdGljM3hjb2ZmX29uY2hpcC5zaDogLi4udGhpcy4KCSogTWFrZWZpbGUuYW0gKGV0aWMzeGNvZmZfb25jaGlwLmMpOiBGaXggbmFtZSBvZiBnZW5lcmF0ZWQgQyBmaWxlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDMtMDEtMjEgIEZhYmlvIEFsZW1hZ25hICA8ZmFsZW1hZ25AYXJvcy5vcmc+CgoJKiBjb25maWd1cmUudGd0OiBIYW5kbGUgaVszNDU2XTg2LSotYXJvcyoKCjIwMDMtMDEtMTkgIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGRlZCBldGljM3hjb2ZmLm8gYW5kIGV0aWM0eGNvZmZfb25jaGlwLm8KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUKCSogY29uZmlndXJlLnRndDogQWRkZWQgZXh0cmEgdGFyZ2V0IGVtdWxhdGlvbnMKCSogZW11bHBhcmFtcy90aWMzeGNvZmYuc2g6IFJlbW92ZSBvbGQgc2V0dGluZ3MKCSogZW11bHBhcmFtcy90aWM0eGNvZmYuc2g6IERpdHRvCgkqIGVtdWxwYXJhbXMvdGljM3hjb2ZmLW9uY2hpcC5zaDogQWRkZWQgbmV3CgkqIHNjcmlwdHRlbXBsL3RpYzR4Y29mZi5zYzogUmV2aXNlIGFuZCBjb21iaW5lIGJvdGggYzN4IGFuZCBjNHgKCSogc2NyaXB0dGVtcGwvdGljM3hjb2ZmLnNjOiBSZW1vdmUKCjIwMDMtMDEtMTcgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYWRkX3N5c3Jvb3QpOiBEbyBub3QKCXNraXAgJzonLgoKMjAwMy0wMS0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMy0wMS0xNCAgQ2hhcmxlcyBXaWxzb24gIDxjd2lsc29uQGVjZS5nYXRlY2guZWR1PgoKCSogbGQudGV4aW5mbyAobm9kZSBXSU4zMik6IFNvbWUgY2xhcmlmaWNhdGlvbnMKCWFuZCBmb3JtYXR0aW5nIGZpeHVwcy4KCjIwMDMtMDEtMDkgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBsZG1haW4uYyAoZ2V0X2VtdWxhdGlvbik6IFNvcnQgLW1pcHNOTiBjaGVja3MgaW4gdGhlIHVzdWFsCglvcmRlciwgYW5kIGhhbmRsZSAoaWdub3JlKSAtbWlwczMycjIuCgoyMDAzLTAxLTA5ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGxkbWFpbi5jIChtYWluKTogTWFrZSBzdXJlIGxkX3N5c3Jvb3QgaXMgaW5pdGlhbGl6ZWQuCgoyMDAzLTAxLTA2ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChlZWxmMzJpcTEwLmMpOiBGaXggdGFiL3doaXRlc3BhY2UgbWl4dXAuCgoJKiBNYWtlZmlsZS5hbSAobGRtYWluLm8pOiBBZGQgQFRBUkdFVF9TWVNURU1fUk9PVF9ERUZJTkVALgoJKEdFTlNDUklQVFMpOiBBZGQgQHVzZV9zeXNyb290QC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoJKiBjb25maWd1cmUuaG9zdDogTW92ZSBzZXR0aW5nIG9mIE5BVElWRV9MSUJfRElSUyB0by4uLgoJKiBjb25maWd1cmUudGd0OiAuLi4gaGVyZS4gIFVzZSAke3RhcmdldH0gaW5zdGVhZCBvZiAke2hvc3R9Cglmb3IgTkFUSVZFX0xJQl9ESVJTLgoJKiBjb25maWd1cmUuaW46IEFkZCAtLXdpdGgtc3lzcm9vdC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCSogZ2Vuc2NyaXB0cy5zaDogQWNjZXB0IHVzZV9zeXNyb290IG9wdGlvbi4gIFNldCBuZXcgdmFyaWFibGVzCglOQVRJVkUgYW5kIFVTRV9MSUJQQVRILiAgUHJlcGVuZCAiPSIgdG8gZGlyZWN0b3J5IG5hbWVzIGlmCgkkdXNlX3N5c3Jvb3QuICBEb24ndCBzZWFyY2ggJHRvb2xfbGliIGlmICR1c2Vfc3lzcm9vdC4KCSogbGRmaWxlLmMgKGxkZmlsZV9hZGRfbGlicmFyeV9wYXRoKTogSGFuZGxlIGxlYWRpbmcgJz0nLgoJKiBsZG1haW4uYyAoVEFSR0VUX1NZU1RFTV9ST09UKTogRGVmaW5lIGlmIG5vdCBkZWZpbmVkLgoJKGxkX3N5c3Jvb3QpOiBOZXcgdmFyaWFibGUuCgkobWFpbik6IEluaXRpYWxpemUgbGRfc3lzcm9vdC4KCSogbGRtYWluLmggKGxkX3N5c3Jvb3QpOiBOZXcgZXh0ZXJuLgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IFVzZSBOQVRJVkUgYW5kIFVTRV9MSUJQQVRIIGluc3RlYWQgb2YKCXNlYXJjaGluZyAkRU1VTEFUSU9OX0xJQlBBVEguCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYWRkX3N5c3Jvb3QpOiBOZXcgZnVuY3Rpb24uCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fY2hlY2tfbGRfc29fY29uZik6IFVzZSBpdC4gIEhvbm9yIGxkX3N5c3Jvb3QuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYWZ0ZXJfb3Blbik6IExpa2V3aXNlLiAgT25seSBzZWFyY2gKCWVudmlyb25tZW50IHZhcmlhYmxlcyBpZiAkTkFUSVZFLgoJKiBsZC50ZXhpbmZvIChPcHRpb25zKTogTWVudGlvbiAiPSIgcHJlZml4IGluIHRoZSBkZXNjcmlwdGlvbiBvZiAtTC4KCSogTkVXUzogTWVudGlvbiAtLXdpdGgtc3lzcm9vdC4KCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwbjMyLWRlZnMuc2g6IFNldCBOQVRJVkUgYW5kIExJQlBBVEhfU1VGRklYCglpbnN0ZWFkIG9mIHNldHRpbmcgTElCX1BBVEguCgkqIGVtdWxwYXJhbXMvZWxmMzJwcGMuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0X3MzOTAuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0X3NwYXJjLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGY2NHBwYy5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmX3g4Nl82NC5zaDogTGlrZXdpc2UuCgoJKiBlbXVscGFyYW1zL2VsZjY0X2FpeC5zaDogQWRkICI9IiBwcmVmaXhlcyB0byBMSUJfUEFUSC4KCSogZW11bHBhcmFtcy9lbGY2NGhwcGEuc2g6IEFkZCAiPSIgcHJlZml4ZXMgdG8gTElCX1BBVEguCgoyMDAzLTAxLTAzICBDaGFybGVzIFdpbHNvbiAgPGN3aWxzb25AZWNlLmdhdGVjaC5lZHU+CgoJKiBwZS1kbGwuYyAoYXV0b2ZpbHRlcl9zeW1ib2xsaXN0KTogQWRkIGN5Z3dpbl9jcnQwLgoKMjAwMy0wMS0wNCAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBNYWtlZmlsZS5hbSAobGRtYWluLm8pOiBQYXNzIEJJTkRJUi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoJKiBsZG1haW4uYyAoc2V0X3NjcmlwdHNfZGlyKTogVXNlIG1ha2VfcmVsYXRpdmVfcHJlZml4IGZvciB0aGUgZmlyc3QKCXNlYXJjaCBwYXRoLgoKMjAwMy0wMS0wMiAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGQgZWVsZjMyaXEyMDAwLm8uCgkoZWVsZjMyaXEyMDAwLmMpOiBOZXcgdGFyZ2V0LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndDogSGFuZGxlIGlxMjAwMC0qLWVsZi4KCSogZW11bHBhcmFtcy9lbGYzMmlxMTAuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL2VsZjMyaXEyMDAwLnNoOiBOZXcgZmlsZS4KCSogc2NyaXB0dGVtcGwvaXEyMDAwLnNjOiBOZXcgZmlsZS4KCjIwMDMtMDEtMDIgQ2hhcmxlcyBXaWxzb24gPGN3aWxzb25AZWNlLmdhdGVjaC5lZHU+CgoJKiBwZS1kbGwuYyAoYXV0b2ZpbHRlcl9zeW1ib2xsaXN0KTogQWRkIGRvX3BzZXVkb19yZWxvYwoJYW5kIF9wZWkzODZfcnVudGltZV9yZWxvY2F0b3IgdG8gdGhlIGV4Y2x1ZGUgbGlzdC4KCjIwMDMtMDEtMDEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBsZGZpbGUuYzogRml4IGNvbW1lbnQgdHlwb3MuCgkqIGxkbGFuZy5jOiBMaWtld2lzZS4KCSogbXJpLmM6IExpa2V3aXNlLgoJKiBwZS1kbGwuYzogTGlrZXdpc2UuCgoyMDAzLTAxLTAxICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCglTdWdnZXN0ZWQgYnkgTWFuZnJlZCBIb2xsc3RlaW4gPG1hbmZyZWQuaEBnbXgubmV0PjoKCSogTWFrZWZpbGUuYW0gKGxkLjEpOiBEZXBlbmQgb24gY29uZmlnZG9jLnRleGkKCWFuZCBsZHZlci50ZXhpLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgoyMDAyLTEyLTI0ICBEbWl0cnkgRGlreSAgPGRpd2lsQG1haWwucnU+CgoJKiBNYWtlZmlsZS5hbTogQWRkIG1zcDQzMCB0YXJnZXQuCgkqIGNvbmZpZ3VyZS50Z3Q6IExpa2V3aXNlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZW11bHBhcmFtcy9tc3A0MzB4Pz8/LnNoOiBOZXcgZmlsZXMuICBMaW5rZXIgc2NyaXB0IHBhcmFtZXRlcnMKCWZvciB2YXJpb3VzIG1zcDQzMCBjb25maWd1cmF0aW9ucy4KCSogZ2VuLWRvYy50ZXhpOiBFbmFibGUgbXNwNDMwIGRvY3VtZW5hdGlvbi4KCSogbGQudGV4aW5mbzogRG9jdW1lbnQgbXNwNDMwIHNlY3Rpb25zLgoJKiBzY3JpcHR0ZW1wbC9lbGYzMm1zcDQzMC5zYzogTmV3IGZpbGUuICBMaW5rZXIgc2NyaXB0IGZvciBtc3A0MzAuCgkqIHNjcmlwdHRlbXBsL2VsZjMybXNwNDMwXzMuc2M6IE5ldyBmaWxlLiAgTGlua2VyIHNjcmlwdCBmb3IgbXNwNDMwLgoKMjAwMi0xMi0zMCAgUmFsZiBIYWJhY2tlciAgPFJhbGYuSGFiYWNrZXJAZnJlZW5ldC5kZT4KCSAgICBDaGFybGVzIFdpbHNvbiAgPGN3aWxzb25AZWNlLmdhdGVjaC5lZHU+CgoJKiBjb25maWcuaW4gKEhBVkVfUkVBTFBBVEgpOiBOZXcgZW50cnkuCgkoSEFWRV9TWVNfU1RBVF9ILCBIQVZFX1NZU19UWVBFU19IKTogUmVtb3ZlZDogb2Jzb2xldGUuCgoyMDAyLTEyLTMwICBSYWxmIEhhYmFja2VyICA8cmFsZi5oYWJhY2tlckBmcmVlbmV0LmRlPgoKCSogbGQudGV4aW5mbzogTmV3IHdpbjMyIHRvcGljczogJ3N5bWJvbCBhbGlhc2luZycgYW5kICdleHBvcnQgZGxsCglzeW1ib2xzJy4KCjIwMDItMTItMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZG1haW4uYyAobWFpbik6IEluaXQgInN0cmlwX2Rpc2NhcmRlZCIuCgkqIGxleHN1cC5jIChPUFRJT05fU1RSSVBfRElTQ0FSREVEKTogRGVmaW5lLgoJKE9QVElPTl9OT19TVFJJUF9ESVNDQVJERUQpOiBEZWZpbmUuCgkobGRfb3B0aW9ucyk6IEFkZCAic3RyaXAtZGlzY2FyZGVkIiBhbmQgIm5vLXN0cmlwLWRpc2NhcmRlZCIuCgkocGFyc2VfYXJncyk6IEhhbmRsZSB0aGVtLgoKMjAwMi0xMi0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGxkLmggKHN0cnVjdCBhcmdzX3R5cGUpOiBBZGQgbmV3IGZpZWxkCgknYWNjZXB0X3Vua25vd25faW5wdXRfYXJjaGl0ZWN0dXJlJy4KCSogbGRtYWluLmMgKG1haW4pOiBJbml0aWFsaXNlICdhY2NlcHRfdW5rbm93bl9pbnB1dF9hcmNoaXRlY3R1cmUnCgl0byBmYWxzZS4KCSogbGRsYW5nLmMgKGxhbmdfY2hlY2spOiBQYXNzIGFjY2VwdF91bmtub3duX2lucHV0X2FyY2hpdGVjdHVyZSB0bwoJYmZkX2FyY2hfZ2V0X2NvbXBhdGlibGUuCgkqIGxkZmlsZS5jIChsZGZpbGVfdHJ5X29wZW5fYmZkKTogTGlrZXdpc2UuCgkqIGxleHN1cC5jIChsZF9vcHRpb25zKTogQWRkIG5ldyBjb21tYW5kIGxpbmUgc3dpdGNoCgktLWFjY2VwdC11bmtub3duLWlucHV0LWFyY2hpdGVjdHVyZSBhbmQgaXRzIGludmVyc2UuCgkocGFyc2VfYXJncyk6IEhhbmRsZSAtLWFjY2VwdC11bmtub3duLWlucHV0LWFyY2hpdGVjdHVyZS4KCSogbGQudGV4aW5mbzogRG9jdW1lbnQgbmV3IGxpbmtlciBvcHRpb24uCgkqIE5FV1M6IE1lbnRpb24gbmV3IGxpbmtlciBvcHRpb24uCgoyMDAyLTEyLTIwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRtYWluLmMgKG1haW4pOiBSZS1vcmRlciBsaW5rX2luZm8gaW5pdGlhbGl6YXRpb24uICBJbml0IGFsbAoJZmllbGRzLgoKMjAwMi0xMi0xOSAgQ2hhcmxlcyBXaWxzb24gIDxjd2lsc29uQGVjZS5nYXRlY2guZWR1PgoKCSogbGQudGV4aW5mbzogQ2xhcmlmeSBhbmQgZXh0ZW5kIHRoZSBkb2N1bWVudGF0aW9uCglpbiB0aGUgTWFjaGluZSBEZXBlbmRlbnQsIFdJTjMyIHNlY3Rpb24uCgoyMDAyLTEyLTE4ICBSYWxmIEhhYmFja2VyICA8cmFsZi5oYWJhY2tlckBmcmVlbmV0LmRlPgoKCSogbGQudGV4aW5mbzogQWRkIHdpbjMyIG1hY2hpbmUgZGVwZW5kaW5nIHNlY3Rpb24uCgkqIGdlbi1kb2MudGV4aTogRW5hYmxlIHdpbjMyIG1hY2hpbmUgZGVwZW5kaW5nIHNlY3Rpb24uCgoJKiBjb25maWd1cmUuaG9zdDogQWRkIHdpbjMyIGxpYnJhcnkgc2VhcmNoIHBhdGguCgoyMDAyLTEyLTE3ICBSYWxmIEhhYmFja2VyICA8cmFsZi5oYWJhY2tlckBmcmVlbmV0LmRlPgoKCSogZW11bHRlbXBsL3BlLmVtIChwZV9maW5kX2RhdGFfaW1wb3J0cyk6IERvbid0IHNlYXJjaCBmb3IgZGF0YQoJaW1wb3J0IHdoZW4gYXV0by1pbXBvcnQgaXMgZGlzYWJsZWQuCgoyMDAyLTEyLTE3ICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZW11bHRlbXBsL3BlLmVtICguLi5fcmVjb2duaXplZF9maWxlKTogVXNlIExEX1BBVEhNQVgrMSB0bwoJYWNjb3VudCBmb3IgdHJhaWxpbmcgJ1wwJy4KCjIwMDItMTItMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvcGUuZW0gKGxvbmdvcHRzKTogRHVwbGljYXRlIGVudHJ5IGZvciAtLWNvbXBhY3QtaW1wbGliCglzbyB0aGF0IGl0IGlzIG5vdCBjb25mdXNlZCB3aXRoIC1jLgoKMjAwMi0xMi0xMyAgUmFsZiBIYWJhY2tlciAgPFJhbGYuSGFiYWNrZXJAZnJlZW5ldC5kZT4KCSAgICBDaGFybGVzIFdpbHNvbiAgPGN3aWxzb25AZWNlLmdhdGVjaC5lZHU+CgoJKiBjb25maWd1cmUuaW46IEFkZCBjaGVjayBmb3IgcmVhbHBhdGggZnVuY3Rpb24uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBkZWZmaWxlLmg6IEFkZCAuZGF0YSBmaWVsZCB0byBkZWZfZmlsZV9pbXBvcnQKCXN0cnVjdHVyZS4KCSogcGUtZGxsLmMgKHBlX3Byb2Nlc19pbXBvcnRfZGVmcyk6IFVzZSAuZGF0YSBmaWVsZCBvZgoJZGVmX2ZpbGVfaW1wb3J0IHN0cnVjdHVyZSB0byBpbml0aWFsaXplIGZsYWdfZGF0YSBmaWVsZCBvZgoJZGVmX2ZpbGVfZXhwb3J0IHN0cnVjdHVyZS4KCShwZV9pbXBsaWVkX2ltcG9ydF9kbGwpOiBOZXcgdmFyaWFibGVzIGV4cF9mdW5jYmFzZSBhbmQKCVtkYXRhfGJzc11fW3N0YXJ0fGVuZF0uICBVc2UgRExMJ3MgaW50ZXJuYWwgbmFtZSB0byBzZXQgZGxsX25hbWUsCglub3QgZmlsZW5hbWUgKHdoaWNoIG1heSBiZSBhIHN5bWxpbmspLiAgU2NhbiB0aGUgc2VjdGlvbnMgYW5kCglpbml0aWFsaXplIFtkYXRhfGJzc11fW3N0YXJ0fGVuZF0uICBXaGVuIHNjYW5uaW5nIHRoZSBleHBvcnQKCXRhYmxlLCBza2lwIF9ubV8gc3ltYm9scywgYW5kIG1hcmsgYW55IHN5bWJvbHMgd2hvc2UgcnZhIGluZGljYXRlcwoJdGhhdCBpdCBpcyBpbiB0aGUgLmJzcyBvciAuZGF0YSBzZWN0aW9ucyBhcyBkYXRhLgoJKiBzeXNkZXAuaDogSW5jbHVkZSBsaW1pdHMuaCBhbmQgc3lzL3BhcmFtLmgsIGFuZCBkZWZpbmUKCUxEX1BBVEhNQVggYXMgYXBwcm9wcmlhdGUuICBBbHNvIGRlZmluZSBSRUFMUEFUSCBhcyByZWFscGF0aCBpZiBpdAoJZXhpc3RzLCBOVUxMIG90aGVyd2lzZS4KCSogZW11bHRlbXBsL3BlLmVtIChnbGRfJHtFTVVMQVRJT05fTkFNRX1fYWZ0ZXJfb3Blbik6IENhbGwKCXBlX3Byb2Nlc3NfaW1wb3J0X2RlZnMgYmVmb3JlIHBlX2ZpbmRfZGF0YV9pbXBvcnRzLCBzbyB0aGF0CglhdXRvLWltcG9ydCB3aWxsIGNoZWNrIHRoZSB2aXJ0dWFsIGltcGxpYiBhcyB3ZWxsIGFzICJyZWFsIgoJaW1wbGlicy4KCShnbGRfJHtFTVVMQVRJT05fTkFNRX1fcmVjb2duaXplZF9maWxlKTogVXNlIFJFQUxQQVRIIHRvIGZvbGxvdwoJc3ltbGlua3MgdG8gdGhlaXIgdGFyZ2V0OyBjaGVjayB0aGF0IHRoZSB0YXJnZXQncyBleHRlbnNpb24gaXMKCS5kbGwgYmVmb3JlIGNhbGxpbmcgcGVfaW1wbGllZF9pbXBvcnRfZGxsKCksIG5vdCB0aGUgZmlsZW5hbWUKCWl0c2VsZiAod2hpY2ggbWF5IGJlIGEgc3ltbGluaykuCgoyMDAyLTEyLTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChzdHJ1Y3Qgb3JwaGFuX3NhdmUpOiBBZGQgb3NfdGFpbCBmaWVsZC4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4pOiBSZS1vcmRlciBvdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnQKCWxpc3QgdG9vLgoKMjAwMi0xMi0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5oOiBGb3JtYXR0aW5nLgoKMjAwMi0xMi0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChpbml0X29zKTogRW5zdXJlIHNlY3Rpb25zIG1lbnRpb25lZCBpbiBsb2FkX2Jhc2UKCWFyZSBpbml0aWFsaXplZC4KCjIwMDItMTItMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbik6IFNldAoJbG9hZF9iYXNlIGZvciBvcnBoYW5zIHRoYXQgZm9sbG93IGEgc2VjdGlvbiB3aXRoIGxvYWRfYmFzZSBzZXQuCgoyMDAyLTEyLTAxICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGxkLnRleGluZm86IFJlbW92ZSB0aGUgZXh0cmEgYDsnIGluIHNhbXBsZSB2ZXJzaW9uIHNjcmlwdC4KCjIwMDItMTEtMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWd1cmUuaG9zdDogQ29ycmVjdCBkeW5hbWljLWxpbmtlciBmb3IgcG93ZXJwYzY0IGhvc3RzLgoKCSogTWFrZWZpbGUuYW0gKGVlbGYzMnBwY3dpbmRpc3MuYyk6IENvcnJlY3QgZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCgkqIGxkLmgsIGxkY3JlZi5jLCBsZGN0b3IuYywgbGRjdG9yLmgsIGxkZW11bC5jLCBsZGVtdWwuaCwgbGRleHAuYywKCWxkZXhwLmgsIGxkZmlsZS5jLCBsZGZpbGUuaCwgbGRncmFtLnksIGxkbGFuZy5jLCBsZGxhbmcuaCwgbGRtYWluLmMsCglsZG1haW4uaCwgbGRtaXNjLmMsIGxkd3JpdGUuYywgbGV4c3VwLmMsIG1yaS5jLCBwZS1kbGwuYywgcGUtZGxsLmgsCgllbXVscGFyYW1zL2VsZjMyYjQzMDAuc2gsIGVtdWx0ZW1wbC9haXguZW0sIGVtdWx0ZW1wbC9hcm1jb2ZmLmVtLAoJZW11bHRlbXBsL2FybWVsZi5lbSwgZW11bHRlbXBsL2FybWVsZl9vYWJpLmVtLCBlbXVsdGVtcGwvYmVvcy5lbSwKCWVtdWx0ZW1wbC9lbGYzMi5lbSwgZW11bHRlbXBsL2dlbmVyaWMuZW0sIGVtdWx0ZW1wbC9nbGQ5NjAuZW0sCgllbXVsdGVtcGwvZ2xkOTYwYy5lbSwgZW11bHRlbXBsL2hwcGFlbGYuZW0sIGVtdWx0ZW1wbC9saW51eC5lbSwKCWVtdWx0ZW1wbC9sbms5NjAuZW0sIGVtdWx0ZW1wbC9tNjhrY29mZi5lbSwgZW11bHRlbXBsL21pcHNlY29mZi5lbSwKCWVtdWx0ZW1wbC9tbWl4LWVsZm5tbW8uZW0sIGVtdWx0ZW1wbC9tbWl4ZWxmLmVtLCBlbXVsdGVtcGwvbW1vLmVtLAoJZW11bHRlbXBsL25lZWRyZWxheC5lbSwgZW11bHRlbXBsL3BlLmVtLCBlbXVsdGVtcGwvcHBjNjRlbGYuZW0sCgllbXVsdGVtcGwvc2g2NGVsZi5lbSwgZW11bHRlbXBsL3N1bm9zLmVtLCBlbXVsdGVtcGwvdGljb2ZmLmVtOiBSZXBsYWNlCglib29sZWFuIHdpdGggYmZkX2Jvb2xlYW4sIHRydWUgd2l0aCBUUlVFLCBmYWxzZSB3aXRoIEZBTFNFLiAgU2ltcGxpZnkKCWNvbXBhcmlzb25zIG9mIGJmZF9ib29sZWFuIHZhcnMgd2l0aCBUUlVFL0ZBTFNFLiAgRm9ybWF0dGluZy4KCjIwMDItMTEtMjcgIERhdmlkIE8nQnJpZW4gIDxvYnJpZW5ARnJlZUJTRC5vcmc+CgoJKiBjb25maWd1cmUuaG9zdDogRml4IGdlbmVyaWMgRnJlZUJTRCBjb25maWd1cmF0aW9uIGVudHJ5LgoKMjAwMi0xMS0yNyAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBsZC50ZXhpbmZvOiBBZGQgdGhlIG1pc3NpbmcgYDsnIHRvIHNhbXBsZSB2ZXJzaW9uIHNjcmlwdHMuCgoyMDAyLTExLTIwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHBhcmFtcy9lbGY2NHBwYy5zaCAoU0VHTUVOVF9TSVpFKTogRG9uJ3QgZGVmaW5lLgoKMjAwMi0xMS0xNCAgRWdvciBEdWRhICA8ZGVvQGxvZ29zLW0ucnU+CgoJKiBsZG1haW4uYyAobWFpbik6IE1ha2UgcnVudGltZSByZWxvY3MgZGlzYWJsZWQgYnkgZGVmYXVsdC4gUmVtb3ZlCglhc3NpZ25tZW50IHdoaWNoIGhhcyBubyBlZmZlY3QuCgkqIHBlLWRsbC5oIChwZV9jcmVhdGVfaW1wb3J0X2ZpeHVwKTogQ2hhbmdlIHByb3RvdHlwZS4KCSogcGUtZGxsLmMgKG1ha2VfcnVudGltZV9wc2V1ZG9fcmVsb2MpOiBOZXcgZnVuY3Rpb24uCgkocGVfY3JlYXRlX3J1bnRpbWVfcmVsb2NhdG9yX3JlZmVyZW5jZSk6IERpdHRvLgoJKHBlX2NyZWF0ZV9pbXBvcnRfZml4dXApOiBIYW5kbGUgcmVsb2NhdGlvbnMgd2l0aCBub24temVybyBhZGRlbmRzLgoJKiBlbXVsdGVtcGwvcGUuZW06IEFkZCBvcHRpb25zIC0tZW5hYmxlLXJ1bnRpbWUtcHNldWRvLXJlbG9jIGFuZAoJLS1kaXNhYmxlLXJ1bnRpbWUtcHNldWRvLXJlbG9jLgoJKG1ha2VfaW1wb3J0X2ZpeHVwKTogSGFuZGxlIHJlbG9jYXRpb25zIHdpdGggbm9uLXplcm8gYWRkZW5kcy4gQ3JlYXRlCglhbiBleHRlcm5hbCByZWZlcmVuY2UgdG8gX3BlaTM4Nl9ydW50aW1lX3JlbG9jYXRvciBzeW1ib2wgaWYgYXQgbGVhc3QKCW9uZSBwc2V1ZG8gcmVsb2Mgd2FzIGNyZWF0ZWQuCgkqIGxkLnRleGluZm86IERvY3VtZW50IC0tZW5hYmxlLXJ1bnRpbWUtcHNldWRvLXJlbG9jIGFuZAoJLS1kaXNhYmxlLXJ1bnRpbWUtcHNldWRvLXJlbG9jIG9wdGlvbnMuCgoyMDAyLTExLTEyICBFYXJsIENoZXcgPGVhcmxfY2hld0BhZ2lsZW50LmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX2FkZF9zZWN0aW9uKTogRGlzY2FyZCBkZWJ1Z2dpbmcgc2VjdGlvbnMgdGhhdCBoYXZlCgliZWVuIG1hcmtlZCBTRUNfRVhDTFVERS4KCjIwMDItMTEtMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW4gKEFMTF9MSU5HVUFTKTogQWRkIGRhLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHBvL2RhLnBvOiBOZXcgRGFuaXNoIHRyYW5zbGF0aW9uLgoKMjAwMi0xMS0xMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbSAocHBjX2JlZm9yZV9hbGxvY2F0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKExERU1VTF9CRUZPUkVfQUxMT0NBVElPTik6IERlZmluZS4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBSdW4gZGlzY2FyZF9pbmZvIGZvciByZWxvY2F0YWJsZQoJbGlua2luZy4KCSogZW11bHRlbXAvaHBwYWVsZi5lbSAoKGdsZCR7RU1VTEFUSU9OX05BTUV9X2ZpbmlzaCk6IExpa2V3aXNlLgoKMjAwMi0xMS0xMSAgQ2hyaXN0b3BoZXIgRmF5bG9yICA8Y2dmQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUudGd0IChMSUJfUEFUSCk6IERlZmF1bHQgdG8gc2VhcmNoaW5nIHczMmFwaSBkaXJlY3RvcnkgdW5kZXIKCWN5Z3dpbi4KCjIwMDItMTEtMTEgIENoYXJsZXMgV2lsc29uICA8Y3dpbHNvbkBlY2UuZ2F0ZWNoLmVkdT4KCgkqIHBlLWRsbC5jIChhdXRvZmlsdGVyX2xpYmxpc3QpOiBhZGQgbGlibWluZ3dleCBhbmQgbGliZ2NqIHRvIHRoZSBsaXN0CglvZiByZXN0cmljdGVkIGF1dG8tZXhwb3J0IGxpYnMuCgoyMDAyLTExLTExICBDaGFybGVzIFdpbHNvbiAgPGN3aWxzb25AZWNlLmdhdGVjaC5lZHU+CgoJKiBwZS1kbGwuYyAoYXV0b2ZpbHRlcl9saWJsaXN0KTogR2VuZXJhbGl6ZSBsaWJyYXJ5IG5hbWVzIHRvIGNhdGNoIG1vcmUKCWNyZWF0aXZlIGxpYnJhcnkgbmFtaW5nIGluc3RhbmNlcyBsaWtlLCBlLmcuLCBsaWJzdGRjKystMi5hLgoKMjAwMi0xMS0wNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjMyYnRzbWlwbjMyLnNoIChURVhUX0RZTkFNSUMpOiBEZWZpbmUuCgkqIGVtdWxwYXJhbXMvZWxmNjRidHNtaXAuc2ggKFRFWFRfRFlOQU1JQyk6IExpa2V3aXNlLgoKMjAwMi0xMS0wNyAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRlZmZpbGVwLnkgKGRlZl9sZXgpOiBIYW5kbGUgJ0AnIGFzIGZpcnN0IGNoYXJhY3RlciBvZiBhbiBJRC4KCSogcGUtZGxsLmMgKGF1dG8tZXhwb3J0KTogRmlsdGVyIG9uICJfaW1wXyIgcHJlZml4LCBub3QgIl9pbXBfXyIuCgkobWFrZV9vbmUpOiBEb24ndCBwcmVmaXggZGVjb3JhdGVkIGZhc3RjYWxsIHN5bWJvbHMgd2l0aCAnXycuCgkocGVfcHJvY2Vzc19pbXBvcnRfZGVmcyk6IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcGUuZW0gKHBlX2ZpeHVwX3N0ZGNhbGxzKTogRG9uJ3QgZml4dXAgZmFzdGNhbGwKCXN5bWJvbHMgdG8gY2RlY2wgbmFtZXMgb3IgdmlzZS12ZXJzYS4KCjIwMDItMTAtMTMgIEVyaWMgS29obCAgPGVrb2hsQHJ6LW9ubGluZS5kZT4KCgkqIHBlLWRsbC5jIChwcm9jZXNzX2RlZl9maWxlKTogSGFuZGxlIGZhc3RjYWxsIHN5bWJvbHMgd2hlbgoJZ2VuZXJhdGluZyB1bmRlY29yYXRlZCBhbGlhc2VzLiAgRG9uJ3QgcHJlZml4IGRlY29yYXRlZCBmYXN0Y2FsbAoJc3ltYm9scyB3aXRoICdfJy4KCShmaWxsX2V4cG9ydGVkX29mZnNldHMpOiBEb24ndCBwcmVmaXggZGVjb3JhdGVkIGZhc3RjYWxsIHN5bWJvbHMKCXdpdGggJ18nLgoKMjAwMi0xMC0yOSAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBlbXVsdGVtcGwvYWl4LmVtOiBVc2UgaW5jbHVkZSA8PiBmb3IgZ2VuZXJhdGVkIGhlYWRlcnMuCgkqIGVtdWx0ZW1wbC9iZW9zLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2VsZjMyLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3BlLmVtOiBMaWtld2lzZS4KCSogbGRjdG9yLmM6IExpa2V3aXNlLgoJKiBsZGV4cC5jOiBMaWtld2lzZS4KCSogbGRmaWxlLmM6IExpa2V3aXNlLgoJKiBsZGxhbmcuYzogTGlrZXdpc2UuCgkqIGxkbGV4LmM6IExpa2V3aXNlLgoJKiBsZGxleC5sOiBMaWtld2lzZS4KCSogbGRtYWluLmM6IExpa2V3aXNlLgoJKiBsZG1pc2MuYzogTGlrZXdpc2UuCgkqIGxkd3JpdGUuYzogTGlrZXdpc2UuCgkqIGxleHN1cC5jOiBMaWtld2lzZS4KCSogbXJpLmM6IExpa2V3aXNlLgoJKiBwZS1kbGwuYzogTGlrZXdpc2UuCgoyMDAyLTEwLTIzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAocGxhY2Vfb3JwaGFuKTogRG9uJ3QgcHV0IG5vbi1hbGxvY2F0ZWQgLnJlbCoKCXNlY3Rpb25zIGludG8gLnJlbHssYX0uZHluLgoKMjAwMi0xMC0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGxleHN1cC5jIChPUFRJT05fTk9fT01BR0lDKTogRGVmaW5lLgoJKGxkX29wdGlvbnMpOiBBZGQgIm5vLW9tYWdpYyIgb3B0aW9uLgoJKHBhcnNlX2FyZ3MpOiBQYXJzZSAtLW5vLW9tYWdpYy4KCSogbGQudGV4aW5mbzogRG9jdW1lbnQgLS1uby1vbWFnaWMuCgkqIE5FV1M6IE1lbnRpb24gbmV3IG9wdGlvbi4KCjIwMDItMTAtMjEgIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JlZy5uZXQ+CgoJKiBzY3JpcHR0ZW1wbC9wZS5zYyAoX19SVU5USU1FX1BTRVVET19SRUxPQ19MSVNUX18sCglfX1JVTlRJTUVfUFNFVURPX1JFTE9DX0xJU1RfRU5EX18pOiBBZGQgb25seSB3aGVuIHJlbG9jYXRpbmcuCgoyMDAyLTEwLTIyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwbjMyLWRlZnMuc2g6IFNldCBFTEZTSVpFIGFjY29yZGluZyB0bwoJZW11bGF0aW9uIG5hbWUuICBTZXQgTElCX1BBVEggb25seSBmb3IgbmF0aXZlIHRvb2xzLCBhbmQKCXNlYXJjaCB0aGUgQUJJLXNwZWNpZmljIHZlcnNpb25zIG9mIE5BVElWRV9MSUJfRElSUyBiZWZvcmUgdGhlCgkuLi4vbGliIHZhcmlhbnRzLCBub3QgaW5zdGVhZCBvZiB0aGVtLiAgTW9zdGx5IGNvcGllZCBmcm9tLi4uCgkqIGVtdWxwYXJhbXMvZWxmMzJwcGMuc2g6IC4uLiBoZXJlLiAgRml4ZWQgdHlwby4KCSogZW11bHBhcmFtcy9lbGY2NGJtaXAtZGVmcy5zaDogQmFja2VkIG91dC4KCSogZW11bHBhcmFtcy9lbGY2NGJtaXAuc2g6IEltcG9ydCBlbGYzMmJtaXBuMzItZGVmcy5zaCBhZ2Fpbi4KCSogZW11bHBhcmFtcy9lbGY2NGJ0c21pcC5zaDogTGlrZXdpc2UuCgkoREFUQV9BRERSLCBOT05QQUdFRF9URVhUX1NUQVJUX0FERFIsIFNITElCX1RFWFRfU1RBUlRfQUREUiwKCVRFWFRfRFlOQU1JQyk6IFJlbW92ZWQuCgoyMDAyLTEwLTE3ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwbjMyLWRlZnMuc2ggKExJQl9QQVRIKTogU2V0IHRvIC91c3IvbGliMzIuCgkoR0VORVJBVEVfU0hMSUJfU0NSSVBUKTogU2V0IHRvIHllcy4KCShFWEVDVVRBQkxFX1NZTUJPTFMsIFdSSVRBQkxFX1JPREFUQSk6IE1vdmVkIHRvLi4uCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwbjMyLnNoOiBoZXJlLgoJKEdFTkVSQVRFX1NITElCX1NDUklQVCk6IERlbGV0ZWQgYXMgcmVkdW5kYW50LgoJKiBlbXVscGFyYW1zL2VsZjMyYnRzbWlwbjMyLnNoOiBEZWxldGUgcmVkdW5kYW50IHVuc2V0cy4KCSogZW11bHBhcmFtcy9lbGY2NGJtaXAtZGVmcy5zaDogTmV3IGZpbGUuICBFeHRlbmQKCWVsZjMyYm1pcG4zMi1kZWZzLnNoIGJ5IG92ZXJpZGluZyBFTEZTSVpFIGFuZCBMSUJfUEFUSC4KCSogZW11bHBhcmFtcy9lbGY2NGJtaXAuc2g6IEJyaW5nIGluIGRlZmluaXRpb25zIGZyb20KCWVsZjY0Ym1pcC1kZWZzLnNoLgoJKEVMRlNJWkUsIEdFTkVSQVRFX1NITElCX1NDUklQVCwgTElCX1BBVEgpOiBEZWxldGUgcmVkdW5kYW50CglzZXR0aW5ncy4KCShXUklUQUJMRV9ST0RBVEEpOiBNb3ZlZCBmcm9tIGVsZjMyYm1pcG4zMi1kZWZzLnNoLgoJKiBlbXVscGFyYW1zL2VsZjY0YnRzbWlwLnNoOiBCcmluZyBpbiBkZWZpbml0aW9ucyBmcm9tCgllbGY2NGJtaXAtZGVmcy5zaC4KCShFTEZTSVpFLCBHRU5FUkFURV9TSExJQl9TQ1JJUFQpOiBEZWxldGUsIHJlZHVuZGFudC4KCShFWEVDVVRBQkxFX1NZTUJPTFMsIFdSSVRBQkxFX1JPREFUQSk6IERlbGV0ZSByZWR1bmRhbnQgdW5zZXRzLgoKMjAwMi0xMC0xNiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUudGd0IChzMzkweC0qLWxpbnV4Kik6IEFkZCBlbGZfczM5MCBlbXVsYXRpb24uCgkoczM5MC0qLWxpbnV4Kik6IEFkZCBlbGY2NF9zMzkwIGVtdWxhdGlvbiBpZiB3YW50NjQuCgkqIGVtdWxwYXJhbXMvZWxmNjRfc3BhcmMuc2ggKExJQl9QQVRIKTogVXBkYXRlIHRvIG1hdGNoIDIwMDItMDUtMjIKCWdlbnNjcmlwdC5zaCBjaGFuZ2VzLgoJKiBlbXVscGFyYW1zL2VsZl94ODZfNjQuc2ggKExJQl9QQVRIKTogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRfczM5MC5zaCAoTElCX1BBVEgpOiBTZXQgdXAgbmF0aXZlIDY0IGJpdCBkaXJzLgoKMjAwMi0xMC0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChsb2FkX3N5bWJvbHMpOiBSZXZlcnQgbGFzdCBjaGFuZ2UuCgoyMDAyLTEwLTE0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRsYW5nLmMgKGxvYWRfc3ltYm9scyk6IERvbid0IGNhbGwgYmZkX2xpbmtfYWRkX3N5bWJvbHMgd2hlbgoJanVzdF9zeW1zX2ZsYWcuCgkobGFuZ19yZWFzb25hYmxlX2RlZmF1bHRzKTogRG9uJ3QgY29tcGFyZSBhZ2FpbnN0IGZhbHNlLgoJKHNpemVfaW5wdXRfc2VjdGlvbik6IExpa2V3aXNlLgoJKGxhbmdfc2l6ZV9zZWN0aW9uc18xKTogTGlrZXdpc2UuCgkobGFuZ19kb19hc3NpZ25tZW50cyk6IExpa2V3aXNlLgoJKGxhbmdfYWRkX291dHB1dCk6IExpa2V3aXNlLgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogbGR2ZXIuYzogI2luY2x1ZGUgImJmZHZlci5oIi4KCjIwMDItMTAtMTMgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogc2NyaXB0dGVtcGwvZWxmbTY4aGMxMS5zYzogVXNlIEtFRVAgZm9yIC52ZWN0b3JzLCAuaW5zdGFsbE4sCgkuZmluaU4gc2VjdGlvbi4KCSogc2NyaXB0dGVtcGwvZWxmbTY4aGMxMi5zYzogTGlrZXdpc2UuCgoyMDAyLTEwLTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcGUtZGxsLmMgKG1ha2VfaW1wb3J0X2ZpeHVwX21hcmspOiBBdm9pZCB0eXBlLXB1bm5lZCBwb2ludGVyLgoKCSogbGRncmFtLnkgKG1lbW9yeV9zcGVjKTogUHJvdmlkZSBlbXB0eSBhY3Rpb24uCgkoc2VjdGlvbiA8TkFNRT4pOiBMaWtld2lzZS4KCjIwMDItMTAtMTAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogbGRmaWxlLmMgKGxkZmlsZV90cnlfb3Blbl9iZmQpOiBXaGVuIHNlYXJjaGluZyBza2lwIGxpbmtlciBzY3JpcHRzIGlmCgl0aGV5IGhhdmUgT1VUUFVUX0ZPUk1BVCBub3QgbWF0Y2hpbmcgYWN0dWFsIG91dHB1dCBmb3JtYXQuCgkqIGxkbGFuZy5jIChsYW5nX2dldF9vdXRwdXRfdGFyZ2V0KTogTmV3IGZ1bmN0aW9uLgoJKG9wZW5fb3V0cHV0KTogVXNlIGl0LgoJKiBsZGxhbmcuaCAobGFuZ19nZXRfb3V0cHV0X3RhcmdldCk6IE5ldyBwcm90b3R5cGUuCgoyMDAyLTEwLTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChvdXRwdXRfcmVsX2ZpbmQpOiBQcmVmZXIgLnJlbCBzY3JpcHQgc2VjdGlvbnMKCXdoZW4gb3JwaGFuIGlzIC5yZWwsIC5yZWxhIHdoZW4gb3JwaGFuIGlzIC5yZWxhLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbik6IEhhbmRsZSBjb21icmVsb2MgLnJlbCogY2FzZQoJZmlyc3QuICBSZW1vdmUgb3V0c2VjbmFtZSB2YXIuCgoyMDAyLTEwLTA5ICBSaWNoYXJkIFNoYW5uIDxyaWNoYXJkLnNoYW5uQHN1cGVyaC5jb20+CgkgICAgU3RlcGhlbiBDbGFya2UgPHN0ZXBoZW4uY2xhcmtlQHN1cGVyaC5jb20+CgoJKiBNYWtlZmlsZS5hbTogQWRkIGVzaGVsZjMyX2xpbnV4Lm8gYW5kCgllc2hsZWxmMzJfbGludXgubywgbmV3IGVtdWxhdGlvbnMgZm9yIHNoNjQgTGludXguCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0OiBBZGQgc2g2NGViLSotbGludXgqIGFuZCBzaDY0LSotbGludXgqIGVtdWxhdGlvbnMuCgkqIGVtdWxwYXJhbXMvc2hlbGYzMl9saW51eC5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvc2hsZWxmMzJfbGludXguc2g6IE5ldyBmaWxlLgoKMjAwMi0xMC0wOCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBsZGxhbmcuYyAobGFuZ19maWxlX2V4aXN0KTogUmVtb3ZlZC4KCShuZXdfYWZpbGUpOiBSZXZlcnQgdGhlIGxhc3QgY2hhbmdlLgoJKiBsZGxhbmcuaCAobGFuZ19maWxlX2V4aXN0KTogUmVtb3ZlZC4KCSogbGV4c3VwLmMgKHBhcnNlX2FyZ3MpOiBSZXZlcnQgdGhlIGxhc3QgY2hhbmdlLgoKMjAwMi0xMC0wNyAgUmFsZiBIYWJhY2tlciAgPFJhbGYuSGFiYWNrZXJAZnJlZW5ldC5kZT4KCgkqIHBlLWRsbC5jYyAoYXV0b2ZpbHRlcl9zeW1ib2xwcmVmaXhsaXN0KTogRG9uJ3QgcmUtZXhwb3J0CglhdXRvLWltcG9ydCBzeW1ib2xzLgoJKG1ha2Vfb25lKTogQ3JlYXRlIF9ubV88c3ltYm9sPiBmb3IgZGF0YSBvbmx5LgoKMjAwMi0xMC0wNSAgRWxpYXMgQXRoYW5hc29wb3Vsb3MgIDxlYXRoYW5Ab3RlbmV0LmdyPgoKCSogbGRsYW5nLmMgKGxhbmdfZmlsZV9leGlzdCk6IE5ldyBmdW5jdGlvbi4KCShuZXdfYWZpbGUpOiBBYm9ydCBpZiB0aGUgZmlsZW5hbWUgdG8gYmUgYWRkZWQgbWF0Y2hlcyB0aGUgbGlua2VyCglvdXRwdXQgZmlsZW5hbWUuCgkqIGxkbGFuZy5oOiBBZGQgcHJvdG90eXBlIGZvciBsYW5nX2ZpbGVfZXhpc3QuCgkqIGxleHN1cC5jIChwYXJzZV9hcmdzKTogQWJvcnQgaWYgdGhlIG91dHB1dCBmaWxlbmFtZSBtYXRjaGVzCglvbmUgb2YgdGhlIGlucHV0IGZpbGVuYW1lcy4KCjIwMDItMTAtMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVscGFyYW1zL2VsZjY0cHBjLnNoIChNQVhQQUdFU0laRSk6IFNldCB0byAweDEwMDAwLgoKMjAwMi0wOS0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHNjcmlwdHRlbXBsL2VsZmQzMHYuc2M6IE9yZGVyIHJlbG9jIHNlY3Rpb25zIHBsYWNpbmcgLnBsdCBsYXN0LgoJKiBzY3JpcHR0ZW1wbC9lbGZtNjhoYzExLnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmbTY4aGMxMi5zYzogTGlrZXdpc2UuCgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKG91dHB1dF9yZWxfZmluZCk6IEFsd2F5cyBwbGFjZSBvcnBoYW4gbG9hZGFibGUKCXJlbG9jIHNlY3Rpb25zIGp1c3QgYmVmb3JlIC5yZWwucGx0Ly5yZWxhLnBsdC4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4gPC5yZWw+KTogUmVtb3ZlIGNvbWJyZWxvYyBjb2RlLgoJT25seSBwdXQgbG9hZGFibGUgcmVsb2Mgc2VjdGlvbnMgaW4gaG9sZF9yZWwuCgoyMDAyLTA5LTI5ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVtdWxwYXJhbXMvZWxmMzJwcGMuc2ggKE9USEVSX0dPVF9SRUxPQ19TRUNUSU9OUyk6IE5ldy4KCjIwMDItMDktMjUgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCUZyb20gIkFuaXRhIEt1bGthcm5pIiA8QW5pdGFLQGtwaXQuY29tPgoJKiBzY3JpcHR0ZW1wbC9zaC5zYzogSGFuZGxlIC5laF9mcmFtZSogYW5kIC5nY2NfZXhjKgoJc2VjdGlvbnMuCgoyMDAyLTA5LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZ2Vuc2NyaXB0cy5zaCAoU0VHTUVOVF9TSVpFKTogVXNlIE1BWFBBR0VTSVpFIGJlZm9yZQoJVEFSR0VUX1BBR0VfU0laRS4KCSogc2NyaXB0dGVtcGwvZWxmLnNjIChEQVRBX1NFR01FTlRfQUxJR04pOiBJbmNvcnBvcmF0ZQoJU0VHTUVOVF9TSVpFIGFsaWdubWVudC4KCSogZW11bHBhcmFtcy9lbGY2NHBwYy5zaCAoREFUQV9BRERSKTogRGVsZXRlLgoJKFNFR01FTlRfU0laRSk6IERlZmluZS4KCgkqIGxkZXhwLmMgKGZvbGRfdW5hcnkpOiBOZXcuICBTcGxpdCBvdXQgZnJvbSBleHBfZm9sZF90cmVlLgoJKGZvbGRfYmluYXJ5KTogQ29ycmVjdCBhYnMgLSBub24tYWJzIGNhc2UuCgkoZm9sZF90cmluYXJ5KTogTmV3LiAgU3BsaXQgb3V0IGZyb20gZXhwX2ZvbGRfdHJlZS4KCjIwMDItMDktMjQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVscGFyYW1zL2VsZjY0cHBjLnNoIChEQVRBX0FERFIpOiBEZWZpbmUuCgkqIGVtdWxwYXJhbXMvZWxmNjRfYWl4LnNoIChEQVRBX0FERFIpOiBEb24ndCB1c2UgYSBmaXhlZCBhZGRyZXNzCglmb3Igc3RhcnQgb2YgLmRhdGEsIGluc3RlYWQgYWxpZ24gdXAgdG8gMjU2TSBib3VuZGFyeS4KCSogc2NyaXB0dGVtcGwvYWl4LnNjOiBMaWtld2lzZS4KCjIwMDItMDktMjIgIE1hcmsgRWxicmVjaHQgIDxzbm93YmFsbDNAc29mdGhvbWUubmV0PgoKCSogc2NyaXB0dGVtcGwvaTM4NmdvMzIuc2M6IEhhbmRsZSBic3MgdW5pcXVlIHNlY3Rpb25zLgoKMjAwMi0wOS0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbWlzYy5jICh2ZmluZm8gPCVDLCVELCVHPik6IEFsd2F5cyBvdXRwdXQgYmZkLCBzZWN0aW9uIGFuZCBvZmZzZXQuCgoyMDAyLTA5LTE3ICBTdGFuIENveCAgPHNjb3hAcmVkaGF0LmNvbT4KCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwbjMyLWRlZnMuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL2VsZjMyYm1pcG4zMi5zaDogVXNlIGVsZjMyYm1pcG4zMi1kZWZzLnNoLgoJKiBlbXVscGFyYW1zL2VsZjMyYnRzbWlwbjMyLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGY2NGJtaXAuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0YnRzbWlwLnNoOiBMaWtld2lzZS4KCjIwMDItMDktMTYgIEJydW5vIEhhaWJsZSAgPGJydW5vQGNsaXNwLm9yZz4KCgkqIGVtdWxwYXJhbXMvZWxmX2kzODZfZmJzZC5zaDogU2V0IE9VVFBVVF9GT1JNQVQgdG8KCWVsZjMyLWkzODYtZnJlZWJzZC4KCSogZW11bHBhcmFtcy9lbGY2NGFscGhhX2Zic2Quc2g6IFNldCBPVVRQVVRfRk9STUFUIHRvCgllbGY2NC1hbHBoYS1mcmVlYnNkLgoKMjAwMi0wOS0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE5FV1M6IE5ldyBUSSBwb3J0IHN1cHBvcnRzIGJvdGggQzR4IGFuZCBDM3ggc2VyaWVzIG9mIERTUHMuCgoJKiBwby90ci5wbzogVXBkYXRlZCBUdXJraXNoIHRyYW5zbGF0aW9uLgoKMjAwMi0wOS0wNiAgSmVmZnJleSBBIExhdyAgKGxhd0ByZWRoYXQuY29tKQoKCSogY29uZmlndXJlLnRndCAoaDgzMDAtKi1obXMqLCBoODUwMC0qLWhtcyopOiBSZXN0b3JlLgoKMjAwMi0wOS0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHNjcmlwdHRlbXBsL3Y4NTAuc2M6IEFkZCBFWFRFUk4gcmVmZXJlbmNlcyB0byBfX2N0YnBtIF9fZ3AgYW5kCglfX2VwLgoJKiBlbXVscGFyYW1zL3Y4NTAuc2ggKFRFTVBMQVRFX05BTUUpOiBEZWZpbmUuCgoyMDAyLTA4LTMwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogc2NyaXB0dGVtcGwvZWxmZDEwdi5zYyAoTUVNT1JZKTogUmVtb3ZlIFVOSUZJRUQsIGl0IGlzIG5vdAoJdXNlZC4gIENoYW5nZSBJTlNOIHRvIHN0YXJ0IGF0IDB4MDEwMDAwMDAgYW5kIGV4dGVuZCBmb3IKCTI1NksgKGlnbm9yaW5nIGhvbGVzKS4gIFN0YXJ0IHRoZSBTVEFDSyBvbiBhIHdvcmQgYWxpZ25lZAoJYm91bmRhcnkuCgkoLnJvZGF0YSk6IFN0YXJ0IGl0IGF0IHRoZSBSRUFET05MWV9TVEFSVF9BRERSLgoKMjAwMi0wOC0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWxwYXJhbXMvZWxmMzJwcGMuc2ggKEFSQ0gpOiBTZXQgdG8gInBvd2VycGM6Y29tbW9uIi4KCjIwMDItMDgtMjggIFN2ZWluIEUuIFNlbGRhbCAgPFN2ZWluLlNlbGRhbEBzb2xpZGFzLmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgZXRpYzR4Y29mZi5vIGluIEFMTF9FTVVMQVRJT05TIGxpc3QgYW5kCglhZGRlZCBtYWtlZmlsZSB0YXJnZXRzIGZvciB0aGlzIGZpbGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0OiBBZGRlZCB0aWM0eC1jb2ZmIGFuZCBjNHgtY29mZiBlbXVsYXRpb25zLgoJKiBORVdTOiBNZW50aW9uIG5ldyBwb3J0LgoKMjAwMi0wOC0yOCAgTWljaGFlbCBIYXllcyA8bS5oYXllc0BlbGVjLmNhbnRlcmJ1cnkuYWMubno+CgoJKiBlbXVscGFyYW1zL3RpYzN4Y29mZi5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvdGljNHhjb2ZmLnNoOiBOZXcgZmlsZS4KCSogc2NyaXB0dGVtcGwvdGljM3hjb2ZmLnNjOiBOZXcgZmlsZS4KCSogc2NyaXB0dGVtcGwvdGljNHhjb2ZmLnNjOiBOZXcgZmlsZS4KCjIwMDItMDgtMjggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvYWl4LmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9wYXJzZV9hcmdzKTogUmVwbGFjZSBzdHJ0b2xsLAoJc3RydG91bCBhbmQgc3RydG91bGwgd2l0aCBiZmRfc2Nhbl92bWEuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcmVhZF9maWxlKTogTGlrZXdpc2UuCgoyMDAyLTA4LTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlndXJlLnRndDogUmVtb3ZlIGg4WzM1XTAwLSotaG1zKi4gIEFkZCBoODUwMC0qLXJ0ZW1zKi4KCjIwMDItMDgtMjcgIEVnb3IgRHVkYSAgPGRlb0Bsb2dvcy1tLnJ1PgoKCSogc2NyaXB0dGVtcGwvcGUuc2M6IEhhbmRsZSAucmRhdGFfcnVudGltZV9wc2V1ZG9fcmVsb2Mgc2VjdGlvbnMuCglBZGQgc3ltYm9scyBmb3IgYXBwbGljYXRpb24gdG8gYWNjZXNzIHRoZW0uCgoyMDAyLTA4LTI3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2FybWVsZi5lbTogUmV2ZXJ0IHRoaXMgcGF0Y2gsIGl0IGlzIG5vdCBuZWVkZWQuCgoJMjAwMi0wOC0yMiAgQWRhbSBOZW1ldCAgPGFuZW1ldEBsbnh3LmNvbT4KCjIwMDItMDgtMjAgRGFuIEtlZ2VsIDxkYW5rQGtlZ2VsLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogYWRkZWQgLS13aXRoLWxpYi1wYXRoIGFyZ3VtZW50IHRvIGxkJ3MgY29uZmlndXJlCgl0byBzZXQgTElCX1BBVEguCgkqIE5FV1M6IERvY3VtZW50IG5ldyBzd2l0Y2guCgkqIFJFQURNRTogTWVudGlvbiBuZXcgc3dpdGNoLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCUJhc2VkIG9uIHRoaXMgcGF0Y2g6CgkyMDAxLTA0LTI1ICBDaHJpc3RvcGhlciBGYXlsb3IgPGNnZkBjeWdudXMuY29tPgoKCSogTWFrZWZpbGUuaW4gKExJQl9QQVRIKTogTWFrZSBjb25maWd1cmFibGUuCgkoR0VOU0NSSVBUUyk6IFNldCBMSUJfUEFUSCBpbiBlbnZpcm9ubWVudC4KCSogY29uZmlndXJlLmluOiBTdWJzdGl0dXRlIExJQl9QQVRILgoKMjAwMi0wOC0yMiAgQWRhbSBOZW1ldCAgPGFuZW1ldEBsbnh3LmNvbT4KCgkqIGVtdWx0ZW1wbC9hcm1lbGYuZW06IEluY2x1ZGUgZWxmLWJmZC5oIGFuZCBlbGYvYXJtLmguCgkoYXJtX2VsZl9maW5pc2gpOiBTZXQgdGhlIGxhc3QgYml0IG9mIERUX0lOSVQgYW5kIERUX0ZJTkkKCWRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiB0aGUgZnVuY3Rpb24uCgkoYXJtX2VsZl9jb252ZXJ0X3RodW1iX3N5bWJvbF90b19hZGRyZXNzKTogTmV3IGZ1bmN0aW9uLgoKMjAwMi0wOC0yMiAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgZXNoe2x9ZWxmX250by5vIGZpbGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndDogQWRkIHN1cHBvcnQgZm9yIHNoLSoqLW50byogdGFyZ2V0cy4KCSogZW11bHBhcmFtcy9zaGVsZl9udG8uc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL3NobGVsZl9udG8uc2g6IE5ldyBmaWxlLgoKMjAwMi0wOC0yMSAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGxkbGFuZy5jIChvZmZzZXRvZik6IERlZmluZSBpZiBub3QgZGVmaW5lZC4KCjIwMDItMDgtMTQgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlndXJlLnRndDogQWx3YXlzIGVuYWJsZSA2NGJpdCBlbXVsYXRpb25zIGZvciAzMmJpdAoJTGludXgvbWlwcy4KCjIwMDItMDgtMTMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVscGFyYW1zL2VsZjMyX2RseC5zaCAoVEFSR0VUX1BBR0VfU0laRSk6IFNldCB0byAxLgoJKE1BWFBBR0VTSVpFKTogU2V0IHRvIDEuCgoJKiBsZC5oIChBTElHTl9OKTogRGVsZXRlLgoJKiBsZGV4cC5oIChhbGlnbl9uKTogRGVjbGFyZS4KCSogbGRleHAuYyAoYWxpZ25fbik6IE5ldyBmdW5jdGlvbi4KCShmb2xkX2JpbmFyeSk6IFVzZSBhbGlnbl9uIGluc3RlYWQgb2YgQUxJR05fTi4KCShleHBfZm9sZF90cmVlKTogTGlrZXdpc2UuCgkqIGxkbGFuZy5jIChsYW5nX3NpemVfc2VjdGlvbnNfMSk6IExpa2V3aXNlLgoJKGxhbmdfb25lX2NvbW1vbik6IExpa2V3aXNlLgoJKiBsZC50ZXhpbmZvIChBTElHTik6IFJlbW92ZSBwb3dlciBvZiAyIHJlc3RyaWN0aW9uLgoKMjAwMi0wNy0zMSAgR3JhZW1lIFBldGVyc29uICA8Z3BAcW54LmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBzdXBwb3J0IGZvciBwb3dlcnBje2xlfS0qLW50byogdGFyZ2V0cy4KCSogTWFrZWZpbGUuYW06IEFkZCBlZWxmMzJ7bH1wcGNudG8ubyBmaWxlcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVtdWxwYXJhbXMvZWxmMzJscHBjbnRvLnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9lbGYzMnBwY250by5zaDogTmV3IGZpbGUuCgoyMDAyLTA4LTA3ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGxkLnRleGluZm86IERvY3VtZW50IC0tbm8tdW5kZWZpbmVkLXZlcnNpb24uCgoJKiBsZGxhbmcuYyAobGFuZ19uZXdfdmVyc19wYXR0ZXJuKTogU2V0IHRoZSBgc3ltdmVyJyBhbmQKCWBzY3JpcHQuJyBmaWVsZHMgdG8gMC4KCgkqIGxkbWFpbi5jIChtYWluKTogSW5pdGlhbGl6ZSB0aGUgYWxsb3dfdW5kZWZpbmVkX3ZlcnNpb24gdG8KCXRydWUuCgoJKiBsZXhzdXAuYyAoT1BUSU9OX05PX1VOREVGSU5FRF9WRVJTSU9OKTogTmV3LgoJKGxkX29wdGlvbnMpOiBBZGQgLS1uby11bmRlZmluZWQtdmVyc2lvbi4KCShwYXJzZV9hcmdzKTogU3VwcG9ydCBPUFRJT05fTk9fVU5ERUZJTkVEX1ZFUlNJT04uCgoyMDAyLTA4LTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2FybWVsZi5lbSAoYXJtX2VsZl9iZWZvcmVfYWxsb2NhdGlvbik6IE9ubHkgc2VhcmNoIGZvcgoJYW4gaW50ZXJ3b3JraW5nIGJmZCBpZiB0aGVyZSBhcmUgaW5wdXQgYmZkcy4gKDEwNzUwMSkKCjIwMDItMDgtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvYWl4LmVtIChnbGQqX2JlZm9yZV9wYXJzZSk6IFNldCBkZWZhdWx0IGFyY2guICBSZXZlcnRzCgkyMDAyLTA1LTEwIGNoYW5nZS4KCjIwMDItMDgtMDEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL2FybWVsZi5zaDogUmV2ZXJ0IHByZXZpb3VzIGRlbHRhLgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2M6IFJldmVydCBwcmV2aW91cyBkZWx0YS4KCjIwMDItMDctMzEgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlndXJlLnRndCAocG93ZXJwYyotKi1saW51eCopOiBFbmFibGUgZWxmNjRwcGMgZm9yCgktLWVuYWJsZS02NC1iaXQtYmZkLgoKMjAwMi0wNy0zMSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWd1cmUudGd0OiBFbmFibGUgeDg2LTY0IGVtdWxhdGlvbiBmb3IgTGludXgvaTM4NiBpZgoJNjRiaXQgQkZEIGlzIHNlbGVjdGVkLgoKMjAwMi0wNy0zMSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWd1cmUudGd0OiBFbmFibGUgNjRiaXQgZW11bGF0aW9ucyBmb3IgMzJiaXQgTGludXgvbWlwcwoJaWYgNjRiaXQgQkZEIGlzIHNlbGVjdGVkLgoKMjAwMi0wNy0zMSAgSWFuIERhbGwgIDxpYW5Ac2lieWwuYmV3YXJlLmRyb3BiZWFyLmlkLmF1PgoKCSogZW11bHRlbXBsL25ldGJzZC5lbSAoTERFTVVMX0JFRk9SRV9QQVJTRSk6IE5ldyBmaWxlIHRvIGN1c3RvbSBzZXQKCWxpbmtfaW5mby5jb21tb25fc2tpcF9hcl9heW1ib2xzLgoJKiBlbXVscGFyYW1zL25zMzJrbmJzZC5zaCAoRVhUUkFfRU1fRklMRSk6IFJlZmVyIHRvIGV4dHJhIGZpbGUuCgoJKiBsZG1haW4uYyAobWFpbik6IEluaXRpYWxpemUgbmV3IGZpZWxkCglsaW5rX2luZm8uY29tbW9uX3NraXBfYXJfYXltYm9scy4KCjIwMDItMDctMzEgIEFkYW0gTmVtZXQgIDxhbmVtZXRAbG54dy5jb20+CgoJKiBlbXVscGFyYW1zL2FybWVsZi5zaCAoT1RIRVJfUExUX1NFQ1RJT05TKTogTmV3IHZhcmlhYmxlLiAgU2V0IGl0Cgl0byAucGx0LnRodW1iLgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2M6IENvbW1lbnQgaXQuICBVc2UgdGhlIHNhbWUgd2F5IGFzICR7UExUfSBpcwoJdXNlZC4KCjIwMDItMDctMzEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBORVdTOiBSZXRyb2FjdGl2ZWx5IGFkZCBlbnRyeSBmb3IgTGFycyBCcmlua2hvZmYncyBjb250cmlidXRpb24KCW9mIHRoZSBQRFAtMTEgYW5kIDIuMTFCU0QgYS5vdXQgc3VwcG9ydC4KCjIwMDItMDctMzEgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBNYWtlZmlsZS5hbSAoZWVsZjMyYnRzbWlwbjMyLm8sIGVlbGYzMmx0c21pcG4zMi5vKTogTmV3IGVtdWxhdGlvbnMKCWZvciBuMzIgQUJJIHN1cHBvcnQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0IChtaXBzNjQqZWwtKi1saW51eC1nbnUqLG1pcHM2NCotKi1saW51eC1nbnUqKTogQWRkCgluMzIgQUJJIGVtdWxhdGlvbnMgZm9yIHRoZXNlIDY0IGJpdCB0YXJnZXRzLgoJKiBlbXVscGFyYW1zL2VsZjMyYm1pcG4zMi5zaDogRXhwYW5kIGNvbW1lbnQuCgkqIGVtdWxwYXJhbXMvZWxmMzJidHNtaXBuMzIuc2g6IE5ldyBmaWxlLCBmb3IgdHJhZGl0aW9uYWwgYmlnIGVuZGlhbgoJbjMyIEFCSS4KCSogZW11bHBhcmFtcy9lbGYzMmx0c21pcG4zMi5zaDogTGlrZXdpc2UgZm9yIGxpdHRsZSBlbmRpYW4uCgoyMDAyLTA3LTMwICBHcmFlbWUgUGV0ZXJzb24gIDxncEBxbnguY29tPgoKCSogY29uZmlndXJlLnRndDogQWRkIHN1cHBvcnQgZm9yIGFybS0qLW50byB0YXJnZXQuCgkqIE1ha2VmaWxlLmFtOiBBZGQgZWFybW50by5vIGZpbGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBORVdTOiBNZW50aW9uIHBvcnQgb2YgQVJNIHN1cHBvcnQgdG8gUU5YLgoJKiBlbXVscGFyYW1zL2FybW50by5zaDogTmV3IGZpbGUuCgoyMDAyLTA3LTMwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX2FkZF9zZWN0aW9uKTogRG9uJ3QgdHVybiAudGJzcyBpbnRvIG5vcm1hbCBzZWN0aW9ucwoJZm9yIHJlbG9jYXRhYmxlIGxpbmsuCgkobGFuZ19zaXplX3NlY3Rpb25zXzEpOiBEb24ndCBtYWtlIC50YnNzIHplcm8gc2l6ZSBmb3IgcmVsb2NhdGFibGUKCWxpbmsuCgoyMDAyLTA3LTI2ICBCZXJuZCBTY2htaWR0ICA8YmVybmRzQHJlZGhhdC5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjMyZnJ2LnNoIChPVEhFUl9SRUxPQ0FUSU5HX1NFQ1RJT05TKTogRGVsZXRlLgoJKFNUQUNLX0FERFIpOiBOZXcuCgoyMDAyLTA3LTI1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vc3YucG86IFVwZGF0ZWQgU3dlZGlzaCB0cmFuc2xhdGlvbi4KCSogcG8vZXMucG86IFVwZGF0ZWQgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCSogcG8vZnIucG86IFVwZGF0ZWQgRnJlbmNoIHRyYW5zbGF0aW9uLgoKMjAwMi0wNy0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3N2LnBvOiBVcGRhdGVkIFN3ZWRpc2ggdHJhbnNsYXRpb24uCgkqIHBvL2VzLnBvOiBVcGRhdGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgoyMDAyLTA3LTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgRnJlbmNoIHRyYW5zbGF0aW9uLgoKMjAwMi0wNy0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fcGxhY2Vfb3JwaGFuKTogRG9uJ3QKCWJvbWIgb24gL0RJU0NBUkQvIGlucHV0IHNlY3Rpb24uCgkqIGVtdWx0ZW1wbC9wZS5lbSAoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbik6IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbW1vLmVtIChtbW9fcGxhY2Vfb3JwaGFuKTogTGlrZXdpc2UuCgoyMDAyLTA3LTE5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBlbXVsdGVtcGwvbW1vLmVtIChtbW9fcGxhY2Vfb3JwaGFuKTogSGFuZGxlIGNhc2Ugb2Ygbm8gLnRleHQKCW91dHB1dCBzZWN0aW9uLgoKMjAwMi0wNy0xNiAgRGVuaXMgQ2hlcnR5a292ICA8ZGVuaXNjQG92ZXJ0YS5ydT4KCSAgICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoJICAgIEZyYW5rIENoLiBFaWdsZXIgIDxmY2hlQHJlZGhhdC5jb20+CgkgICAgSm9obiBIZWFseSAgPGpoZWFseUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLnRndDogQWRkIHN1cHBvcnQgZm9yIGlwMmstZWxmLgoJKiBNYWtlZmlsZS5hbTogQWRkIHN1cHBvcnQgZm9yIGlwMmstZWxmLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZW11bHBhcmFtcy9lbGYzMmlwMmsuc2g6IE5ldyBmaWxlLgoJKiBzY3JpcHR0ZW1wbC9pcDJrLnNjOiBOZXcgZmlsZQoJKiBORVdTOiBNZW50aW9uIHN1cHBvcnQgZm9yIG5ldyBwb3J0LgoKMjAwMi0wNy0xNiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBORVdTOiBBZGQgJ0NoYW5nZXMgaW4gMi4xMycuCgoyMDAyLTA3LTE0ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGxkLnRleGluZm86IERvY3VtZW50IGEgLnN5bXZlciB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYQoJdmVyc2lvbiBzY3JpcHQuCgoyMDAyLTA3LTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHBhcmFtcy9lbGY2NHBwYy5zaCAoQVJDSCk6IFNldCB0byBwb3dlcnBjOmNvbW1vbjY0LgoJKENPTU1PTlBBR0VTSVpFKTogRGVmaW5lLgoKMjAwMi0wNy0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWxwYXJhbXMvaHBwYW5ic2Quc2g6IFJlbWFyayB0aGF0IGhwcGFvYnNkLnNoIHJlZmVyZW5jZXMgdGhpcyBmaWxlLgoKMjAwMi0wNy0wOSAgRmVkZXJpY28gRy4gU2Nod2luZHQgPGZnc2NoQG9saW1wby5jb20uYnI+CgoJKiBjb25maWd1cmUudGd0OiBBZGQgc3VwcG9ydCBmb3IgYWxwaGEtKi1vcGVuYnNkKiwgaHBwYS0qLW9wZW5ic2QqLAoJcG93ZXJwYy0qLW9wZW5ic2QqIGFuZCBzcGFyYzY0LSotb3BlbmJzZCouCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlaHBwYW9ic2Quby4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVtdWxwYXJhbXMvaHBwYW9ic2Quc2g6IE5ldyBmaWxlLgoKMjAwMi0wNy0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChwcmludF93aWxkX3N0YXRlbWVudCk6IEZpeCBvdXRwdXQgZm9ybWF0dGluZy4KCjIwMDItMDctMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuYzogKHN0cmlwX2V4Y2x1ZGVkX291dHB1dF9zZWN0aW9ucyk6IE5ldyBmdW5jdGlvbi4KCShsYW5nX3Byb2Nlc3MpOiBDYWxsIGl0LgoJKGxhbmdfc2l6ZV9zZWN0aW9uc18xKTogUmV2ZXJ0IDIwMDItMDYtMTAgY2hhbmdlLgoKMjAwMi0wNy0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtIChjaGVjay1ERUpBR05VKTogUmV2ZXJ0IDIwMDItMDYtMjUgY2hhbmdlLgoJUnVuICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wNy0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkZmlsZS5jIChsZGZpbGVfdHJ5X29wZW5fYmZkKTogRm9ybWF0dGluZy4KCgkqIGxkbWlzYy5jIChkZW1hbmdsZSk6IE1vdmUgc28gdGhhdCBpdCBkb2Vzbid0IGludHJ1ZGUgYmV0d2VlbgoJdmZpbmZvIGNvbW1lbnQgYW5kIGJvZHkuICBBZGQgY29tbWVudC4KCjIwMDItMDctMDEgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBlbXVscGFyYW1zL3ZheC5zaCAoT1VUUFVUX0ZPUk1BVCk6IFVzZSBhLm91dC12YXgtYnNkIGZvcm1hdC4KCjIwMDItMDctMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuaCAoZW50cnlfc3ltKTogTWFrZSBpdCBhIHN0cnVjdCBiZmRfc3ltX2NoYWluLgoJKiBsZGxhbmcuYyAoZW50cnlfc3ltKTogTGlrZXdpc2UuCgkobGRsYW5nX3VuZGVmX2NoYWluX2xpc3RfdHlwZSk6IExpa2V3aXNlLgoJKGxhbmdfZmluaXNoKTogQWRqdXN0IHJlZmVyZW5jZXMgdG8gZW50cnlfc3ltYm9sLgoJKGxhbmdfYWRkX2VudHJ5KTogTGlrZXdpc2UuCgkobGFuZ19nY19zZWN0aW9ucyk6IFVzZSBsaW5rX2luZm8uZ2Nfc3ltX2xpc3QuCgkobGFuZ19wcm9jZXNzKTogU2V0IGxpbmtfaW5mby5nY19zeW1fbGlzdC4KCSogbGRsZXgubDogSW5jbHVkZSBiZmRsaW5rLmguCgkqIGxkbWFpbi5jIChtYWluKTogSW5pdCBsaW5rX2luZm8uZ2Nfc3ltX2xpc3QuCgkqIGVtdWx0ZW1wbC9haXguZW06IEFkanVzdCByZWZlcmVuY2VzIHRvIGVudHJ5X3N5bWJvbC4KCSogZW11bHRlbXBsL2FybWNvZmYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvYXJtZWxmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3BlLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtIChwcGNfYWZ0ZXJfb3Blbik6IE5ldyBmdW5jdGlvbi4KCShMREVNVUxfQUZURVJfT1BFTik6IERlZmluZS4KCSogZW11bHBhcmFtcy9lbGY2NHBwYy5zaDogS0VFUCAub3BkIHNlY3Rpb25zLgoKMjAwMi0wNi0yOSAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBlbXVscGFyYW1zL202OGhjMTJlbGZiLnNoIChFRVBST01fTUVNT1JZKTogRGVmaW5lLgoJKiBlbXVscGFyYW1zL202OGhjMTFlbGZiLnNoIChFRVBST01fTUVNT1JZKTogRGVmaW5lLgoJKiBlbXVscGFyYW1zL202OGhjMTFlbGYuc2ggKEVFUFJPTV9TSVpFKTogRGVmaW5lLgoJKEVFUFJPTV9TVEFSVF9BRERSKTogRGVmaW5lLgoJKEVFUFJPTV9NRU1PUlkpOiBEZWZpbmUuCgkqIGVtdWxwYXJhbXMvbTY4aGMxMmVsZi5zaDogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZm02OGhjMTEuc2M6IEhhbmRsZSAuZWVwcm9tIHNlY3Rpb247IGhhbmRsZSAuc29mdHJlZ3MKCXNlY3Rpb24gdG8gcHV0IHNvZnQgcmVnaXN0ZXJzIGluIC5wYWdlMC4KCSogc2NyaXB0dGVtcGwvZWxmbTY4aGMxMi5zYzogTGlrZXdpc2UgYnV0IHB1dCBzb2Z0IHJlZ2lzdGVycyBpbiBic3MuCgoyMDAyLTA2LTI2ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogZW11bHBhcmFtcy9ocHBhNjRsaW51eC5zaCAoT1RIRVJfR09UX1JFTE9DX1NFQ1RJT05TKTogQWRkIHJlbGEub3BkCglzZWN0aW9uLiAgQWRkICR7UkVMT0NBVElORy0wfS4KCjIwMDItMDYtMjYgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogZW11bHBhcmFtcy9zaGVsZi5zaCAoU1RBQ0tfQUREUik6IERvbid0IGRlZmluZS4KCShPVEhFUl9TRUNUSU9OUyk6IERlZmluZS4KCSogZW11bHBhcmFtcy9zaGVsZl9uYnNkLnNoICgoU1RBQ0tfQUREUik6IERvbid0IHVuZGVmLgoJKE9USEVSX1NFQ1RJT05TKTogVW5kZWYuCgoyMDAyLTA2LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRtaXNjLmMgKGRlbWFuZ2xlKTogUmVzdG9yZSBkb3RzIHN0cmlwcGVkIGZyb20gc3ltIG5hbWUuCgoyMDAyLTA2LTI1ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtIChjaGVjay1ERUpBR05VKTogU2V0IExDX0FMTD1DIGFuZCBleHBvcnQgaXQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCjIwMDItMDYtMjAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogbGQudGV4aW5mbyAoQnVnIFJlcG9ydGluZyk6IFVwZGF0ZSB0ZXh0IHRvIHN1Z2dlc3QgYSBsaW1pdCBvbgoJdGhlIHNpemUgb2YgYXR0YWNoZWQgb2JqZWN0IGZpbGVzLCB0byBhbGxvdyBtYWtlIHRoZSBvYmplY3QgZmlsZXMKCWF2YWlsYWJsZSB2aWEgRlRQIG9yIEhUVFAgYW5kIHRvIG1lbnRpb24gdGhhdCB0aGUgbWFpbCB3aWxsIGJlCglzZW50IHRvIGEgbWFpbGluZyBsaXN0LgoKMjAwMi0wNi0yMCAgTmF0aGFuYWVsIE5lcm9kZSAgPG5lcm9kZW5AdHdjbnkucnIuY29tPgoKCSogY29uZmlndXJlLmhvc3QgKHJvbXApOiBEcm9wIHN1cHBvcnQuCgoyMDAyLTA2LTE4ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogZW11bHRlbXBsL21pcHNlbGYuZW0gKG1pcHNfZWxmJHtFTEZTSVpFfV9jaGVja19zZWN0aW9ucyk6IENoZWNrCglzZWN0aW9uIGZsYWdzIGZvciBTRUNfREFUQSwgcmF0aGVyIHRoYW4gZm9yIFNFQ19DT0RFIGJlaW5nIHVuc2V0LgoKMjAwMi0wNi0xOCAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGVtdWx0ZW1wbC9taXBzZWxmLmVtIChtaXBzX2VsZiR7RUxGU0laRX1fY2hlY2tfc2VjdGlvbnMpOiBGaXgKCWZvcm1hdCBzcGVjaWZpZXIgdXNlZCB0byBwcmludCBCRkQgbmFtZS4KCjIwMDItMDYtMTggIERhdmUgQnJvbGxleSAgPGJyb2xsZXlAcmVkaGF0LmNvbT4KCglGcm9tIENhdGhlcmluZSBNb29yZSwgTWljaGFlbCBNZWlzc25lciwgSmltIEJsYW5keToKCSogZW11bHBhcmFtcy9lbGYzMmZydi5zaDogTmV3IGZpbGUuCgkqIGNvbmZpZ3VyZS50Z3Q6IFN1cHBvcnQgZnJ2LSotKi4KCSogTWFrZWZpbGUuYW0gKEFMTF9FTVVMQVRJT05TKTogQWRkIGVlbGYzMmZydi5vLgoJKGVlbGYzMmZydi5jKTogTmV3IHRhcmdldC4KCjIwMDItMDYtMTcgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IGdsZCpfZ2V0X3NjcmlwdDogQ2hlY2sgZm9yCglHRU5FUkFURV9DT01CUkVMT0NfU0NSSVBULgoJKiBzY3JpcHR0ZW1wbC9lbGZkMTB2LnNjIDogRml4IFNUQUNLIGFuZCBJTlNOLgoJKiBlbXVscGFyYW1zL2QxMHZlbGYuc2ggOiBGaXggVEVYVF9TVEFSVF9BRERSLgoKMjAwMi0wNi0xMyAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20+CgoJKiBjb25maWd1cmUudGd0OiBBZGQgc3VwcG9ydCBmb3Igc2hbMTIzNF0qbGUqLSotZWxmLCBzaFsxMjM0XSotKi1lbGYuCgoyMDAyLTA2LTEyICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fdHJ5X25lZWRlZCk6IFJldHVybgoJZmFsc2UgaWYgeHZlYyBkb2Vzbid0IG1hdGNoLgoKMjAwMi0wNi0xMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfc2l6ZV9zZWN0aW9uc18xKTogU2tpcCByZW1vdmVkIG91dHB1dCBzZWN0aW9ucy4KCjIwMDItMDYtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGV4cC5jOiBSZXBsYWNlIENPTlNUIHdpdGggY29uc3QuCgkqIGxkZmlsZS5jOiBMaWtld2lzZS4KCSogbGRmaWxlLmg6IExpa2V3aXNlLgoJKiBsZGxleC5sOiBMaWtld2lzZS4KCSogbXJpLmM6IExpa2V3aXNlLgoJKiBwZS1kbGwuaDogTGlrZXdpc2UuCgoyMDAyLTA2LTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtIChuZXdfdmVyc19wYXR0ZXJuKTogV2FybmluZyBmaXguCgoyMDAyLTA2LTA3ICBDaGFybGVzIFdpbHNvbiAgPGN3aWxzb25AZWNlLmdhdGVjaC5lZHU+CgoJKiBsZG1haW4uYyAobWFpbik6IGluaXRpYWxpemUgbGlua19pbmZvLnBlaTM4Nl9hdXRvX2ltcG9ydAoJdG8gLTEgPT0gaW1wbGljaXQgZW5hYmxlLgoJKiBlbXVsdGVtcGwvcGUuZW0gKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9iZWZvcmVfcGFyc2UpOgoJaW5pdGlhbGl6ZSBsaW5rX2luZm8ucGVpMzg2X2F1dG9faW1wb3J0IHRvIC0xID09IGltcGxpY2l0CgllbmFibGUuCgkoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X3BhcnNlX2FyZ3MpOiBXaGVuIHByb2Nlc3NpbmcKCS0tZW5hYmxlLWF1dG8taW1wb3J0IGFuZCAtLWRpc2FibGUtYXV0by1pbXBvcnQgb3B0aW9ucywgdXNlCgknMScgYW5kICcwJyBpbnN0ZWFkIG9mICd0cnVlJyBhbmQgJ2ZhbHNlJy4KCShwZV9maW5kX2RhdGFfaW1wb3J0cyk6IE9ubHkgaXNzdWUgbWVzc2FnZSBhYm91dCBhdXRvLWltcG9ydAoJd2hlbiB0aGUgZmVhdHVyZSBpcyBpbXBsaWNpdGx5IGVuYWJsZWQuICBEb3duZ3JhZGUgbWVzc2FnZSB0bwoJaW5mb3JtYXRpb25hbCBpbnN0ZWFkIG9mIHdhcm5pbmcuCgoyMDAyLTA2LTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogc2NyaXB0dGVtcGwvZWxmLnNjICgudGJzcyk6IEZpeCBtaXNtYXRjaGVkIHBhcmVudGhlc2VzL2JyYWNlcy4KCjIwMDItMDYtMDYgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBjb25maWd1cmUuaG9zdCAoaHBwYSo2NCotKi1ocHV4MTEqKTogRGVmaW5lIE5BVElWRV9MSUJfRElSUywKCUhPU1RJTkdfQ1JUMCBhbmQgSE9TVElOR19MSUJTLgoKMjAwMi0wNi0wNSAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20+CgoJKiBjb25maWd1cmUudGd0IChzaGxlKi0qLWVsZiosIHNoNjRsZS0qLWVsZiopOiBOZXcgY29uZmlndXJhdGlvbnMuCgoyMDAyLTA2LTA1ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogZW11bHBhcmFtcy9uczMya25ic2Quc2ggKEVYRUNVVEFCTEVfU1lNQk9MUyk6IFNldCBfRFlOQU1JQyB0byAwLgoJKE5PTlBBR0VEX1RFWFRfU1RBUlRfQUREUik6IFNldCB0byAweDEwMDAuCgoyMDAyLTA2LTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4pOiBQbGFjZQoJU0VDX0VYQ0xVREUgc2VjdGlvbnMgd2hlbiBkb2luZyBhIHJlbG9jYXRhYmxlIGxpbmsuCgoyMDAyLTA2LTA0ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9FTVVMQVRJT05TKTogQWRkIGVzaGVsZjMyX25ic2QubywKCWVzaGxlbGYzMl9uYnNkLm8sIGVzaGVsZjY0X25ic2QubywgYW5kIGVzaGxlbGY2NF9uYnNkLm8uCgkoZXNoZWxmMzJfbmJzZC5jLCBlc2hlbGY2NF9uYnNkLmMsIGVzaGxlbGYzMl9uYnNkLmMpCgkoZXNobGVsZjY0X25ic2QuYyk6IE5ldyBydWxlcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3QgKHNoNWxlLSotbmV0YnNkKiwgc2g1LSotbmV0YnNkKiwgc2g2NGxlLSotbmV0YnNkKikKCShzaDY0LSotbmV0YnNkKik6IE5ldyB0YXJnZXRzLgoJKiBlbXVscGFyYW1zL3NoZWxmMzJfbmJzZC5zaDogTmV3IGZpbGUuCgkqIGVtdWxwYXJhbXMvc2hlbGY2NF9uYnNkLnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9zaGxlbGYzMl9uYnNkLnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9zaGxlbGY2NF9uYnNkLnNoOiBOZXcgZmlsZS4KCjIwMDItMDYtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuYyAoc2VjdGlvbl9hbHJlYWR5X2xpbmtlZCk6IENhbGwgYmZkX2Rpc2NhcmRfZ3JvdXAuICBUeXBvIGZpeC4KCjIwMDItMDYtMDIgIE1hcmVrIE1pY2hhbGtpZXdpY3ogIDxtYXJla21AYW1lbGVrLmdkYS5wbD4KCgkqIHNjcmlwdHRlbXBsL2F2ci5zYzogQ2hhbmdlcyB0byBzdXBwb3J0IGN1cnJlbnQgR0NDIGFuZCBhdnItbGliYywKCUMrKyBjb25zdHJ1Y3RvcnMvZGVzdHJ1Y3RvcnMsIGxvb3NlbHkgYmFzZWQgb24gdGhlIG02OGhjMTEgcG9ydC4KCjIwMDItMDUtMzEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTMxICBHcmFlbWUgUGV0ZXJzb24gIDxncEBxbnguY29tPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9FTVVMQVRJT05TKTogQWRkIGVpMzg2bnRvLm8uCgkoZWkzODZudG8uYyk6IEFkZCBydWxlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndDogQWRkIGlbMzQ1Nl04Ni0qLW50by1xbngqLgoJKiBlbXVscGFyYW1zL2kzODZudG8uc2g6IE5ldyBmaWxlLgoKMjAwMi0wNS0yOSAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIE5FV1M6IEFkZCBlbnRyeSBmb3IgVkFYIEVMRiBzdXBwb3J0LgoKMjAwMi0wNS0yOSAgTWF0dCBUaG9tYXMgIDxtYXR0QDNhbS1zb2Z0d2FyZS5jb20+CgkgICAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlZWxmMzJ2YXgubyBhbmQgZXZheG5ic2Quby4KCShlZWxmMzJ2YXguYykKCShldmF4bmJzZC5jKTogTmV3IHJ1bGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndCAodmF4LSotbmV0YnNkZWxmKikKCSh2YXgtKi1uZXRic2Rhb3V0KikKCSh2YXgtKi1uZXRic2QqKTogTmV3IHRhcmdldHMuCgkqIGVtdWxwYXJhbXMvZWxmMzJ2YXguc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL3ZheG5ic2Quc2g6IE5ldyBmaWxlLgoKMjAwMi0wNS0yOSAgQWRhbSBOZW1ldCAgPGFuZW1ldEBsbnh3LmNvbT4KCgkqIGVtdWx0ZW1wbC9hcm1lbGYuZW0gKGFybV9lbGZfYWZ0ZXJfb3Blbik6IERvbid0IGRldGVybWluZQoJYmZkX2Zvcl9pbnRlcndvcmssIGluc3RlYWQgYWRkIGdsdWUgc2VjdGlvbnMgdG8gZWFjaCBpbnB1dCBiZmQuCgkoYmZkX2Zvcl9pbnRlcndvcmspOiBOZXcgZ2xvYmFsLgoJKGFybV9lbGZfc2V0X2JmZF9mb3JfaW50ZXJ3b3JraW5nKTogTmV3IGZ1bmN0aW9uLgoJKGFybV9lbGZfYmVmb3JlX2FsbG9jYXRpb24pOiBVc2UgaXQuCgoyMDAyLTA1LTI4ICBLdWFuZyBId2EgTGluIDxrdWFuZ0BzYmNnbG9iYWwubmV0PgoKCSogTWFrZWZpbGUuYW06IEFkZCBETFggbWFrZSB0YXJnZXQuCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBETFggY29uZmlndXJhdGlvbi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVtdWxwYXJhbXMvZWxmMzJfZGx4LnNoOiBOZXcgZmlsZQoJKiBzY3JpcHR0ZW1wbC9kbHguc2M6IE5ldyBmaWxlCgoyMDAyLTA1LTI3ICBQZXIgTHVuZGJlcmcgIDxwZXJAY2FsZWIuZG5zYWxpYXMub3JnPgoKCSogTWFrZWZpbGUuYW0gKGVlbGZfaTM4Nl9jaGFvcyk6IFVzZSBlbGZfY2hhb3Muc2Mgc2NyaXB0LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZW11bHBhcmFtcy9lbGZfY2hhb3Muc2g6IFVzZSBlbGZfY2hhb3Mgc2NyaXB0LgoJKiBzY3JpcHR0ZW1wbC9lbGZfY2hhb3Muc2M6IE5ldyBmaWxlLgoKMjAwMi0wNS0yNyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfc2l6ZV9zZWN0aW9uc18xKTogTW92ZSBjaGVjayBmb3IgY29uZmxpY3RpbmcgbG9hZAoJYWRkcmVzc2VzIGFuZCByZWdpb25zIGZyb20gaGVyZS4uLgoJKGxhbmdfZ2V0X3JlZ2lvbnMpOiAuLi50byB0aGlzIG5ldyBmdW5jdGlvbi4KCShsYW5nX2xlYXZlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudCk6IFVzZSBsYW5nX2dldF9yZWdpb25zLgoJKGxhbmdfbGVhdmVfb3ZlcmxheSk6IExpa2V3aXNlLgoJKiBtcmkuYyAobXJpX2RyYXdfdHJlZSk6IFBhc3MgbnVsbCBhcyBsYXN0IGFyZ3VtZW50IHRvCglsYW5nX2xlYXZlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudC4KCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQqX3BsYWNlX29ycGhhbik6IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbW1vLmVtIChtbW9fcGxhY2Vfb3JwaGFuKTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9wZS5lbSAoZ2xkKl9wbGFjZV9vcnBoYW4pOiBMaWtld2lzZS4KCjIwMDItMDUtMjYgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWd1cmUudGd0OiBVc2UgbnMzMmstKi1uZXRic2QqIGluc3RlYWQgb2YgbnMzMmstcGM1MzItbmV0YnNkKi4KCjIwMDItMDUtMjUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBsZGVtdWwuYzogRml4IGZvcm1hdHRpbmcuCgkqIGxkZmlsZS5jOiBMaWtld2lzZS4KCSogcGUtZGxsLmM6IExpa2V3aXNlLgoJKiBwZS1kbGwuaDogTGlrZXdpc2UuCgoyMDAyLTA1LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRsYW5nLmMgKGxhbmdfcHJvY2Vzcyk6IEZvcm1hdHRpbmcsIGdyYW1tYXIuCgoJKiBsZGxleC5sOiBVc2UgI2luY2x1ZGUgIiIgaW5zdGVhZCBvZiA8PiBmb3IgbG9jYWwgaGVhZGVyIGZpbGVzLgoKMjAwMi0wNS0yNCAgVEFNVVJBIEtlbnQgPGtlbnRAbmV0YnNkLm9yZz4KCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBhIHRhcmdldCBmb3IgaTM4Ni1uZXRic2RwZS4KCjIwMDItMDUtMjMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogc2NyaXB0dGVtcGwvZWxmLnNjOiBBZGQgLnJlbHssYX0udHtic3MsZGF0YX0sIC50ZGF0YSBhbmQgLnRic3MuCgkqIGxkbGFuZy5jIChsYW5nX2FkZF9zZWN0aW9uKTogU2V0IFNFQ19USFJFQURfTE9DQUwgZm9yCglvdXRwdXQgc2VjdGlvbiBpZiBuZWNlc3NhcnkuICBIYW5kbGUgLnRic3MuCgkobGFuZ19zaXplX3NlY3Rpb25zKTogQ2xlYXIgX3Jhd19zaXplIGZvciAudGJzcyBzZWN0aW9uCgkoaXQgYWxsb2NhdGVzIHNwYWNlIGluIFBUX1RMUyBzZWdtZW50IG9ubHkpLgoJKiBsZHdyaXRlLmMgKGJ1aWxkX2xpbmtfb3JkZXIpOiBCdWlsZCBsaW5rIG9yZGVyIGZvciAudGJzcyB0b28uCgoyMDAyLTA1LTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlndXJlLmluOiBDb3JyZWN0IHNwZWxsaW5nIG9mIEFDX1BSRVJFUS4KCjIwMDItMDUtMjEgIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwZS1kbGwuYyAoYXV0b2ZpbHRlcl9saWJsaXN0KTogQWRkIG1vcmUgc3lzdGVtIGxpYnMgZXhjbHVkZWQgYnkKCWRlZmF1bHQuCgkoYXV0b2ZpbHRlcl9vYmpsaXN0KTogQWRkIGNydGJlZ2luLm8sIGNydGVuZC5vLgoKMjAwMi0wNS0yMSAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGVtdWx0ZW1wbC9wZS5lbSAoT1BUSU9OX0VYQ0xVREVfTElCUyk6IEFkZCBuZXcgZGVmaW5lLgoJKGxvbmdvcHRzKTogQWRkIG5ldyBvcHRpb24gLS1leGNsdWRlLWxpYnMuCgkoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X2xpc3Rfb3B0aW9ucyk6IEdpdmUgcXVpY2sgaGVscCBhYm91dCBpdC4KCShnbGRfJHtFTVVMQVRJT05fTkFNRX1fcGFyc2VfYXJncyk6IFVzZSBpdC4KCSogcGUtZGxsLmggKHBlX2RsbF9hZGRfZXhjbHVkZXMpOiBBZGQgc2Vjb25kIHBhcmFtIHRvIHByb3RvdHlwZS4KCSogcGUtZGxsLmMgKGV4Y2x1ZGVfbGlzdF9zdHJ1Y3QpOiBBZGQgZmllbGQgdHlwZSB0byBkaXN0aW5ndWlzaCBzeW1ib2xzCglmcm9tIHdob2xlIGFyY2hpdmVzLgoJKHBlX2RsbF9hZGRfZXhjbHVkZXMpOiBTZXQgZXhjbHVkZXMtPnR5cGUuCgkoYXV0b19leHBvcnQpOiBBZGQgbmV3IHZhcmlhYmxlIGxpYm5hbWUgYW5kIHNldCB0byBhcmNoaXZlIGJhc2VuYW1lIGlmCglhYmZkLiAgVXNlIGl0IHdoZW4gZmlsdGVyaW5nIGRlZmF1bHQgYW5kIHVzZXItc3BlY2lmaWVkIGxpYmFyYXJ5CglleGNsdWRlcy4gIExldCBzdHJpbmcgIkFMTCIgbWVhbiBhbGwgbGlicyB3aGVuIGZpbHRlcmluZyB1c2VyLXNwZWNpZmllZAoJbGlicy4KCSogbGQudGV4aW5mbzogRG9jdW1lbnQgLS1leGNsdWRlLWxpYnMuCgoyMDAyLTA1LTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRlbXVsLmMgKGxkZW11bF9uZXdfdmVyc19wYXR0ZXJuKTogTmV3IGZ1bmN0aW9uLgoJKiBsZGVtdWwuaCAobGRlbXVsX25ld192ZXJzX3BhdHRlcm4pOiBEZWNsYXJlLgoJKHN0cnVjdCBsZF9lbXVsYXRpb25feGZlcl9zdHJ1Y3QpOiBBZGQgbmV3X3ZlcnNfcGF0dGVybi4KCSogbGRsYW5nLmMgKGxhbmdfbmV3X3ZlcnNfcGF0dGVybik6IENhbGwgbGRlbXVsX25ld192ZXJzX3BhdHRlcm4uCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbSAoZG90c3ltcyk6IE5ldyBzdGF0aWMgdmFyLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X25ld192ZXJzX3BhdHRlcm4pOiBOZXcgZnVuY3Rpb24uCgkoTERFTVVMX05FV19WRVJTX1BBVFRFUk4pOiBEZWZpbmUuCgkoUEFSU0VfQU5EX0xJU1RfUFJPTE9HVUUpOiBBZGQgT1BUSU9OX0RPVFNZTVMsIE9QVElPTl9OT19ET1RTWU1TLgoJKFBBUlNFX0FORF9MSVNUX0xPTkdPUFRTKTogTGlrZXdpc2UuCgkoUEFSU0VfQU5EX0xJU1RfQVJHU19DQVNFUyk6IEhhbmRsZSB0aGVtLgoJKiBlbXVsdGVtcGwvYWl4LmVtIChsZF8ke0VNVUxBVElPTl9OQU1FfV9lbXVsYXRpb24pOiBVcGRhdGUKCWluaXRpYWxpc2VyLgoJKiBlbXVsdGVtcGwvYXJtY29mZi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9hcm1lbGZfb2FiaS5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9iZW9zLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2VsZjMyLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2dlbmVyaWMuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvZ2xkOTYwLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2dsZDk2MGMuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbGludXguZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvbG5rOTYwLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL202OGtjb2ZmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL21pcHNlY29mZi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9wZS5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9zdW5vcy5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC90aWNvZmYuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvdmFuaWxsYS5lbTogTGlrZXdpc2UuCgoyMDAyLTA1LTIyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZ2Vuc2NyaXB0cy5zaCAoTElCX1BBVEgpOiBGb3IgbmF0aXZlIHRhcmdldHMsIGNvbmNhdGVuYXRlICRsaWJkaXIKCWFuZCAkTkFUSVZFX0xJQl9ESVJTLiAgQWRkICR0b29sX2xpYiBiZWZvcmUgb3RoZXIgbGlicy4KCShMSUJfU0VBUkNIX0RJUlMpOiBObyBuZWVkIHRvIHVzZSAidHIiLgoJKENPTVBJTEVfSU4pOiBPbmx5IHNldCBmb3IgbmF0aXZlIHRhcmdldHMuCgkqIGNvbmZpZ3VyZS5ob3N0IChOQVRJVkVfTElCX0RJUlMpOiBTcGVjaWZ5IGFsbCBuYXRpdmUgc2VhcmNoIGRpcnMKCWhlcmUsIHJhdGhlciB0aGFuIGFkZGluZyBsaWI6L3Vzci9saWI6L3Vzci9sb2NhbC9saWIgaW4gZ2Vuc2NyaXB0cy5zaC4KCSogY29uZmlndXJlLnRndCAocG93ZXJwYyopOiBTZXQgdGRpcl8qLgoJKHBvd2VycGNsZSopOiBDb3JyZWN0IHRhcmdfZXh0cmFfZW11bHMuCgkqIGVtdWxwYXJhbXMvZWxmMzJwcGMuc2ggKExJQl9QQVRIKTogU2V0IHVwIG5hdGl2ZSA2NCBiaXQgZGlycy4KCSogZW11bHBhcmFtcy9lbGY2NHBwYy5zaCAoTElCX1BBVEgpOiBMaWtld2lzZS4KCjIwMDItMDUtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvcGUuZW0gKHNldF9wZV9zdWJzeXN0ZW0pOiBEb24ndCBzZXQgImNtZGxpbmUiIHdoZW4KCWNhbGxpbmcgbGFuZ19hZGRfZW50cnkuCgoyMDAyLTA1LTIxICBILkouIEx1ICAoaGpsQGdudS5vcmcpCgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BhcnNlX2FyZ3MpOiBIYW5kbGUKCSIteiBtdWxkZWZzIi4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9saXN0X29wdGlvbnMpOiBBZGQgIi16IG11bGRlZnMiLgoKCSogbGQudGV4aW5mbzogVXBkYXRlZCBmb3IgLS1hbGxvdy1tdWx0aXBsZS1kZWZpbml0aW9uIGFuZAoJIi16IG11bGRlZnMiLgoKCSogbGRtYWluLmMgKG1haW4pOiBJbml0aWFsaXplIHRoZSBhbGxvd19tdWx0aXBsZV9kZWZpbml0aW9uCglmaWVsZCB0byBmYWxzZS4KCgkqIGxleHN1cC5jIChPUFRJT05fQUxMT1dfTVVMVElQTEVfREVGSU5JVElPTik6IE5ldy4KCShsZF9vcHRpb25zKTogQWRkIC0tYWxsb3ctbXVsdGlwbGUtZGVmaW5pdGlvbi4KCShwYXJzZV9hcmdzKTogU3VwcG9ydCBPUFRJT05fQUxMT1dfTVVMVElQTEVfREVGSU5JVElPTi4KCjIwMDItMDUtMjEgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGQgZWFybWVsZmJfbmJzZC5vLgoJKGVhcm1lbGZiX25ic2QuYyk6IE5ldyBydWxlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndCAoYXJtZWItKi1uZXRic2RlbGYqKTogTmV3IHRhcmdldC4KCShhcm0tKi1uZXRic2RlbGYqKTogQWRkIGFybWVsZmJfbmJzZCB0byB0YXJnX2V4dHJhX2VtdWxzLgoJKGFybS0qLW5ldGJzZCopOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9hcm1lbGZiX25ic2Quc2g6IE5ldyBmaWxlLgoKMjAwMi0wNS0xOCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9haXguZW0gKGdsZCpfcGFyc2VfYXJncyk6IEFkZCAtYm5vcnRsIGFuZCAtYm5vcnRsbGliCglzdXBwb3J0LgoKMjAwMi0wNS0xNyAgTWFyZWsgTWljaGFsa2lld2ljeiAgPG1hcmVrbUBhbWVsZWsuZ2RhLnBsPgoKCSogTWFrZWZpbGUuYW06IEFkZCBuZXcgZW11bGF0aW9ucyBhdnIxLCBhdnIyLCBhdnIzLCBhdnI0LCBhdnI1LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndCAoYXZyLSotKik6IEFkZCBhdnJbMS01XSB0byB0YXJnX2V4dHJhX2VtdWxzLgoKMjAwMi0wNS0xNiAgTWFyZWsgTWljaGFsa2lld2ljeiAgPG1hcmVrbUBhbWVsZWsuZ2RhLnBsPgoKCSogZW11bHBhcmFtcy9hdnIxLnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9hdnIyLnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9hdnIzLnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9hdnI0LnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9hdnI1LnNoOiBOZXcgZmlsZS4KCSogc2NyaXB0dGVtcGwvYXZyLnNjOiBOZXcgZmlsZS4KCjIwMDItMDUtMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuYyAoc2VjdGlvbl9hbHJlYWR5X2xpbmtlZCk6IENhbGwgYmZkX2xpbmtfanVzdF9zeW1zLgoJKGxhbmdfcGxhY2Vfb3JwaGFucyk6IEFib3J0IGlmIGp1c3Rfc3ltc19mbGFnLgoKMjAwMi0wNS0xMCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9haXguZW06IChnbGQqX3NldF9vdXRwdXRfYXJjaCk6IE5ldyBmdW5jdGlvbi4gVXNlCglhcmNoaXRlY3R1cmUgYW5kIG1hY2hpbmUgaW5mb3JtYXRpb24gaW4gdGhlIG91dHB1dCBiZmQuCgkoZ2xkKl9iZWZvcmVfcGFyc2UpOiBSZW1vdmUgb2xkIGFyY2ggYW5kIG1hY2hpbmUgY29kZS4KCShjaG9vc2VfdGFyZ2V0KTogUmVuYW1lIHRvIGdsZCpfY2hvb3NlX3RhcmdldC4KCShydGxkKTogQ2hhbmdlIHR5cGUgdG8gaW50LgoJKiBsZGZpbGUuYyAobGRmaWxlX3RyeV9vcGVuX2JmZCk6IERpc2FibGUgY29tcGF0aWJsaXR5IGNoZWNrIGZvcgoJb2JqZWN0cyBpbiBYQ09GRiBhcmNoaXZlcy4KCSogbGRmaWxlLmg6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCjIwMDItMDUtMTAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogbGRtYWluLmMgKG1haW4pOiBFbmFibGUgLXogY29tYnJlbG9jIGJ5IGRlZmF1bHQuCgoyMDAyLTA1LTA3ICBGZWRlcmljbyBHLiBTY2h3aW5kdCA8ZmdzY2hAb2xpbXBvLmNvbS5icj4KCgkqIE1ha2VmaWxlLmFtOiBIb25vdXIgREVTVERJUi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTA1LTA3ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBsZGxhbmcuaCAobGFuZ19vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnRfdHlwZSk6IEFkZCB1cGRhdGVfZG90X3RyZWUuCgkobGFuZ19lbnRlcl9vdmVybGF5KTogUmVtb3ZlIHRoZSBsYXN0IHR3byBwYXJhbWV0ZXJzLgoJKGxhbmdfbGVhdmVfb3ZlcmxheSk6IFRha2UgdGhlbSBoZXJlIGluc3RlYWQuCgkqIGxkZ3JhbS55IChtZW1zcGVjX2F0X29wdCk6IFNldCAkJCB0byBudWxsIGlmIG5vIHJlZ2lvbiBpcyBnaXZlbi4KCShzZWN0aW9uKTogUGFzcyBMTUEgYW5kIGNyb3NzcmVmIGZsYWcgdG8gbGFuZ19sZWF2ZV9vdmVybGF5IHJhdGhlcgoJdGhhbiBsYW5nX2VudGVyX292ZXJsYXkuCgkqIGxkbGFuZy5jIChsYW5nX21lbW9yeV9yZWdpb25fbG9va3VwKTogUmV0dXJuIG51bGwgZm9yIG51bGwgbmFtZXMuCgkobGFuZ19vdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnRfbG9va3VwKTogSW5pdGlhbGl6ZSB1cGRhdGVfZG90X3RyZWUuCgkobGFuZ19zaXplX3NlY3Rpb25zXzEpOiBFdmFsdWF0ZSBpdC4KCShsYW5nX2xlYXZlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudCk6IFJld29yayBMTUEgbG9va3VwLgoJKG92ZXJsYXlfbG1hLCBvdmVybGF5X25vY3Jvc3NyZWZzKTogUmVtb3ZlLgoJKGxhbmdfZW50ZXJfb3ZlcmxheSk6IFJlbW92ZSBMTUEgYW5kIGNyb3NzcmVmIGFyZ3VtZW50cy4KCShsYW5nX2VudGVyX292ZXJsYXlfc2VjdGlvbik6IERvbid0IHNldCB0aGUgTE1BIGhlcmUuCgkobGFuZ19sZWF2ZV9vdmVybGF5KTogVGFrZSBMTUEgYW5kIGNyb3NzcmVmIGFyZ3VtZW50cy4gIE1vdmUgdGhlICcuJwoJYXNzaWdubWVudCB0byB0aGUgbGFzdCBzZWN0aW9uJ3MgdXBkYXRlX2RvdF90cmVlLiAgVW5jb25kaXRpb25hbGx5Cgl1c2UgdGhlIGxvYWQgYW5kIHJ1bi10aW1lIHJlZ2lvbnMgc3BlY2lmaWVkIGluIHRoZSBPVkVSTEFZIHN0YXRlbWVudC4KCUxpa2V3aXNlIHRoZSBmaXJzdCBzZWN0aW9uJ3MgTE1BLiAgT25seSBzZXQgdGhlIG90aGVyIHNlY3Rpb25zJyBMTUFzCgl3aGVuIG5vIGxvYWQgcmVnaW9uIGlzIGdpdmVuLgoKMjAwMi0wNS0wNiAgTmljayBDbGlmdG9uIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vc3YucG86IE5ldyB0cmFuc2xhdGlvbi4KCjIwMDItMDUtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvaHBwYWVsZi5lbSAoYnVpbGRfc2VjdGlvbl9saXN0cyk6IE5ldyBmdW5jdGlvbi4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBDYWxsIGVsZjMyX2hwcGFfc2V0dXBfc2VjdGlvbl9saXN0cwoJYW5kIGJ1aWxkX3NlY3Rpb25fbGlzdHMuCgoyMDAyLTA1LTAzICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogbGQuaDogRml4IGZvcm1hdHRpbmcuCgkqIGxkZXhwLmM6IExpa2V3aXNlLgoJKiBsZGZpbGUuYzogTGlrZXdpc2UuCgkqIGxkbGFuZy5jOiBMaWtld2lzZS4KCSogbGRtYWluLmM6IExpa2V3aXNlLgoJKiBsZXhzdXAuYzogTGlrZXdpc2UuCgkqIHBlLWRsbC5jOiBMaWtld2lzZS4KCjIwMDItMDUtMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvcHBjNjRlbGYuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X2FmdGVyX2FsbG9jYXRpb24pOgoJQWRqdXN0IGZvciBwcGM2NF9lbGZfc2V0X3RvYyBjaGFuZ2UuICAjaW5jbHVkZSBsaWJiZmQuaC4KCShidWlsZF9zZWN0aW9uX2xpc3RzKTogRG8gb3V0cHV0X3NlY3Rpb24gdGVzdHMgaGVyZS4KCjIwMDItMDQtMzAgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvYWl4LmVtIDogKGdsZCpfcGFyc2VfYXJnZSk6IEZvcm1hdHRpbmcgY2hhbmdlcy4KCjIwMDItMDUtMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJTG9uZyBicmFuY2ggc3R1YnMsIG11bHRpcGxlIHN0dWIgc2VjdGlvbnMuCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbTogSW5jbHVkZSBsZGN0b3IuaC4KCShzdHViX2ZpbGUpOiBOZXcgdmFyLgoJKGdyb3VwX3NpemUpOiBOZXcgdmFyLgoJKHBwY19jcmVhdGVfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50cyk6IE5ldyBmdW5jdGlvbi4KCShzdHJ1Y3QgaG9va19zdHViX2luZm8pOiBOZXcuCgkoaG9va19pbl9zdHViKTogTmV3IGZ1bmN0aW9uLgoJKHBwY19hZGRfc3R1Yl9zZWN0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKHBwY19sYXlvdXRfc2VjdGlvbnNfYWdhaW4pOiBOZXcgZnVuY3Rpb24uCgkoYnVpbGRfc2VjdGlvbl9saXN0cyk6IE5ldyBmdW5jdGlvbi4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBSZXdyaXRlLgoJKHJlYWxfZnVuYyk6IE5ldyB2YXIuCgkocHBjX2Zvcl9lYWNoX2lucHV0X2ZpbGVfd3JhcHBlcik6IE5ldyBmdW5jdGlvbi4KCShwcGNfbGFuZ19mb3JfZWFjaF9pbnB1dF9maWxlKTogTmV3IGZ1bmN0aW9uLgoJKGxhbmdfZm9yX2VhY2hfaW5wdXRfZmlsZSk6IERlZmluZS4KCShQQVJTRV9BTkRfTElTVF9QUk9MT0dVRSk6IERlZmluZS4KCShQQVJTRV9BTkRfTElTVF9MT05HT1BUUyk6IERlZmluZS4KCShQQVJTRV9BTkRfTElTVF9PUFRJT05TKTogRGVmaW5lLgoJKFBBUlNFX0FORF9MSVNUX0FSR1NfQ0FTRVMpOiBEZWZpbmUuCgkoTERFTVVMX0NSRUFURV9PVVRQVVRfU0VDVElPTl9TVEFURU1FTlRTKTogRGVmaW5lLgoKMjAwMi0wNC0zMCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGVtdWx0ZW1wbC9haXguZW0gKGdsZCpfcGFyc2VfYXJnZSwgZ2xkKl9iZWZvcmVfYWxsb2NhdGlvbik6IEFkZAoJLWJsaWJwYXRoLCAtYm5vbGlicGF0aCBzdXBwb3J0LgoKMjAwMi0wNC0zMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChBTExfRU1VTEFUSU9OUyk6IEFkZCBlbGYzMnBwY3dpbmRpc3Muby4KCShlZWxmMzJwcGN3aW5kaXNzLmMpOiBOZXcgdGFyZ2V0LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBzdXBwb3J0IGZvciBwb3dlcnBjLSotd2luZGlzcy4KCSogZW11bHBhcmFtcy9lbGYzMnBwY3dpbmRpc3Muc2g6IE5ldyBmaWxlLgoKMjAwMi0wNC0zMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogbGRsYW5nLmMgKHByaW50X2Fzc2lnbm1lbnQpOiBVcGRhdGUgcHJpbnRfZG90IGZvciBhc3NpZ25tZW50cyB0byAiLiIuCgkqIGxkZXhwLmMgKGV4cF9wcmludF90b2tlbik6IEFkZCAiaW5maXhfcCIgYXJndW1lbnQuCgkoZXhwX3ByaW50X3RyZWUpOiBVcGRhdGUgYWNjb3JkaW5nbHkuCgoyMDAyLTA0LTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW0gKG1wdyk6IE5ldyBtYWludGFpbmVyIG1vZGUgcnVsZSB0byBtYWtlIG1wdy0qLmMgZmlsZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBtcHctZWxmbWlwcy5jOiBEZWxldGUuCgkqIG1wdy1lcHBjbWFjLmM6IERlbGV0ZS4KCSogbXB3LWVzaC5jOiBEZWxldGUuCgkqIG1wdy1pZHRtaXBzLmM6IERlbGV0ZS4KCjIwMDItMDQtMTcgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogZW11bHBhcmFtcy9zaGVsZjMyLnNoIChNQUNISU5FKTogTm93IHNoNS4KCjIwMDItMDQtMTcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBsZGdyYW0ueTogRml4IHN5bnRheCB3YXJuaW5nLgoKMjAwMi0wNC0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBlbXVsdGVtcGwvYXJtZWxmLmVtIChQQVJTRV9BTkRfTElTVF9TSE9SVE9QVFMpOiBBZGQgJ24nIGluIG9yZGVyCgl0byBwcmV2ZW50ICItbiIgZnJvbSBiZWluZyB0YWtlbiBhcyBhbiBhYmJyZXZpYXRpb24gZm9yCgkiLS1uby1waXBlbGluZS1rbm93bGVkZ2UiLgoKMjAwMi0wNC0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChsYW5nX3NpemVfc2VjdGlvbnNfMSk6IERvbid0IGNvbXBsYWluIGFib3V0CglTRUNfTkVWRVJfTE9BRCBzZWN0aW9ucyBoYXZpbmcgbm8gbWVtb3J5IHJlZ2lvbiBzcGVjaWZpZWQuCgoJKiBsZC50ZXhpbmZvIChGb3JtYXQgQ29tbWFuZHMgPE9VVFBVVF9GT1JNQVQ+KTogVHlwbyBmaXguCgoyMDAyLTA0LTA3ICBtYXR0aGV3IGdyZWVuICA8bXJnQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaG9zdCAoKi0qLW5ldGJzZCopOiBBZGQgc3VwcG9ydCBmb3IgTmV0QlNEL0VMRi4KCjIwMDItMDQtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkZXAtaW4uc2VkOiBDb3BlIHdpdGggYWJzb2x1dGUgcGF0aHMuCgkqIE1ha2VmaWxlLmFtIChkZXAuc2VkKTogU3Vic3QgVE9QRElSIGFuZCBCRkRESVIuCglSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTA0LTA0ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZW11bHBhcmFtcy9lbGY2NGJ0c21pcC5zaDogbjY0IHJlcGxhY2VzIC5yZWdpbmZvIHdpdGggLk1JUFMub3B0aW9ucy4KCjIwMDItMDQtMDMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogbGRleHAuYyAoZm9sZF9iaW5hcnkpIFtEQVRBX1NFR01FTlRfQUxJR05dOiBJZiBjb21tb24gcGFnZSBzaXplCglpcyBzbWFsbGVyIHRoYW4gbWF4aW11bSwgcm91bmQgZG90IHVwIHRvIGNvbW1vbiBwYWdlIGJvdW5kYXJ5LgoKMjAwMi0wMy0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZ3VyZS5ob3N0OiBTZXQgdXAgZm9yIGdlbmVyaWMgaG9zdHMgZmlyc3QsIHRoZW4gdHdlYWsgYXMKCW5lY2Vzc2FyeSBpbiBtb3JlIHNwZWNpZmljIHRhcmdldHMuCgkoSE9TVElOR19MSUJTKTogSW5jbHVkZSBsaWJnY2NfZWguYSBpZiBmb3VuZC4KCjIwMDItMDMtMjMgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVtdWxwYXJhbXMvZWxmX3g4Nl82NC5zaCAoQ09NTU9OUEFHRVNJWkUpOiBTZXQgaXQuCgoyMDAyLTAzLTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDMtMjEgIEFsYmVydCBDaGluLUEtWW91bmcgIDxjaGluYUB0aGV3cml0dGVud29yZC5jb20+CgoJKiBnZW5zY3JpcHRzLnNoIChMSUJfU0VBUkNIX0RJUlMpOiBRdW90ZSBwYXRoLgoKMjAwMi0wMy0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChsZGxhbmdfYWRkX3VuZGVmKTogSWYgdGhlIG91dHB1dCBiZmQgaGFzIGJlZW4gb3BlbmVkLAoJYWRkIHRoZSBzeW1ib2wgdG8gdGhlIGxpbmtlciBoYXNoIHRhYmxlIGltbWVkaWF0ZWx5LgoJKGxhbmdfcGxhY2VfdW5kZWZpbmVkcyk6IFNwbGl0IHN5bWJvbCBjcmVhdGlvbiBvdXQuLgoJKGluc2VydF91bmRlZmluZWQpOiAuLnRvIGhlcmUuCgoyMDAyLTAzLTE4ICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoKCSogZW11bHRlbXBsL2VsZjMyLmVtOiBVc2UgbGJhc2VuYW1lIHZzLiBiYXNlbmFtZSB0byBmaXggcHJvYmxlbSB3aGVyZQoJdGhlIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIgcmV0dXJuZWQgZnJvbSBiYXNlbmFtZSBmdW5jdGlvbiB3aWxsIGFyZQoJZ2V0dGluZyBvdmVyd3JpdHRlbiB3aGlsZSBzdGlsbCBiZWluZyB1c2VkLgoKMjAwMi0wMy0xOCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoJICAgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCSAgICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogY29uZmlndXJlLnRndCAoeDg2XzY0LSotbGludXgtZ251Kik6IENvbmZpZ3VyZSBpMzg2IGFzIG5hdGl2ZS4KCSogZWxmX3g4Nl82NC5zaCAoQVJDSCk6IFNldCB0byBpMzg2Ong4Ni02NAoJc2V0IGxpYnJhcmllcyB0byBkZWZhdWx0IHRvIGxpYjY0IHBhdGhzLgoKMjAwMi0wMy0xOCAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmFtIDogQWRkIGVhaXg1cHBjIGFuZCBlYWl4NXJzNiwgQUlYIDUgc3VwcG9ydC4KCSogY29uZmlndXJlLnRndCA6IFNhbWUuCgkqIGVtdWxwYXJtcy9haXg1cHBjLnNoIDogTmV3IGZpbGUuIEZvciBlYWl4NXBwYy4KCSogZW11bHBhcm1zL2FpeDVyczYuc2ggOiBOZXcgZmlsZS4gRm9yIGVhaXg1cnM2LgoJKiBlbXVscGFybXMvYWl4cHBjLnNoIDogT1VQVVRfRk9STUFUXzMyQklUIGFuZCBPVVRQVVRfRk9STUFUXzY0QklUCgllbXVsYXRpb24gcGFyYW1ldGVycyBmb3IgYmV0dGVyIC1iMzIsIC1iNjQgc3VwcG9ydC4KCSogZW11bHBhcm1zL2FpeHJzNi5zaCA6IFNhbWUuCgkqIGVtdWxwYXJtcy9wcGNtYWNvcy5zaCA6IFNhbWUuCgkqIGVtdWx0ZW1wbC9haXguZW0gKGNob29zZV90YXJnZXQpIDogVXNlIG5ldyBlbXVsYXRpb24gcGFyYW1ldGVycwoJT1VUUFVUX0ZPUk1BVF8zMkJJVCBhbmQgT1VUUFVUX0ZPUk1BVF82NEJJVC4KCSogTWFrZWZpbGUuaW4gOiBSZWdlbmVyYXRlLgoKMjAwMi0wMy0xOCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCB2ZXJzaW9uLgoKMjAwMi0wMy0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbWFpbi5jIChtYWluKTogTW92ZSAudGV4dCByZWFkb25seSBmbGFnIGZ1ZGdlcyBmcm9tIGhlcmUuLgoJKiBsZGxhbmcuYyAobGFuZ19wcm9jZXNzKTogLi50byBoZXJlLgoKMjAwMi0wMy0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChsYW5nX2NoZWNrKTogUmVtb3ZlIHRoZSB3b3JkIHNpemUgY2hlY2sgYWRkZWQgaW4gbGFzdAoJY2hhbmdlLiAgVHJlYXQgZW1pdHJlbG9jYXRpb25zIGNhc2UgYXMgZm9yIHJlbG9jYXRhYmxlIGxpbmtzLgoKMjAwMi0wMy0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9mci5wbzogVXBkYXRlZCB2ZXJzaW9uLgoKMjAwMi0wMy0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChsYW5nX2NoZWNrKTogRG8gcmVsb2NhdGFibGUgbGluayBjaGVja3MgZmlyc3QsIHNvIHRoYXQKCXdhcm5fbWlzbWF0Y2ggY2FuJ3Qgb3ZlcnJpZGUuICBDaGVjayBjb21wYXRpYmxlIGFuZCB3b3JkIHNpemUgdG9vLgoKMjAwMi0wMy0wNyAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBsZC50ZXhpbmZvOiBXcmFwIEBtZW51IGluIEBpZm5vdHRleCwgbm90IEBpZmluZm8uCgoyMDAyLTAzLTA1ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogT25seSB1c2UgREFUQV9TRUdNRU5UX0VORCgpIHRvZ2V0aGVyIHdpdGgKCURBVEFfU0VHTUVOVF9BTElHTi4KCjIwMDItMDMtMDQgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogc2NyaXB0dGVtcGwvZWxmLnNjOiBQdXQgLnByZWluaXRfYXJyYXksIC5pbml0X2FycmF5IGFuZAoJLmZpbmlfYXJyYXkgaW4gdGhlIGRhdGEgc2VnbWVudC4KCjIwMDItMDMtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2M6IENvcnJlY3Qgc3ludGF4IGVycm9ycyBpbiAyMDAyLTAzLTAxIGNvbW1pdC4KCjIwMDItMDMtMDEgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgoKCSogc2NyaXB0dGVtcGwvZWxmLnNjIChTRUNUSU9OUyk6IEFkZCBlbnRyaWVzIGZvciAucHJlaW5pdF9hcnJheSwKCS5pbml0X2FycmF5LCBhbmQgLmZpbmlfYXJyYXkuCgoyMDAyLTAyLTIwICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogZW11bHBhcmFtcy9lbGY2NF9pYTY0LnNoIChPVEhFUl9SRUFET05MWV9TRUNUSU9OUyk6IERvbid0IGZvbGQKCS5JQTY0X3Vud2luZCogaW4gYSByZWxvY2F0YWJsZSBsaW5rLgoKMjAwMi0wMi0yMCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBORVdTOiBNYXJrIDIuMTIgYnJhbmNoLgoKMjAwMi0wMi0xOSAgTWFydGluIFNjaHdpZGVmc2t5ICA8c2Nod2lkZWZza3lAZGUuaWJtLmNvbT4KCgkqIGVtdWxwYXJhbXMvZWxmNjRfczM5MC5zaCAoQVJDSCk6IENoYW5nZSB0byAiczM5MDo2NC1iaXQiLgoJKiBlbXVscGFyYW1zL2VsZl9zMzkwLnNoIChBUkNIKTogQ2hhbmdlIHRvICJzMzkwOjMxLWJpdCIuCgoyMDAyLTAyLTE4ICBUb20gUml4ICA8dHJpeEByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL2FpeC5lbSAoZ2xkKl9wYXJzZV9hcmdzKTogQWRkIC1icnRsIHN1cHBvcnQuCgkoZ2xkKl9iZWZvcmVfYWxsb2NhdGlvbik6IFNhbWUuCgkoZ2xkKl9jcmVhdGVfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50cyk6IEdlbmVyYXRlCglfX3J0aW5pdCBpZiBydW4gdGltZSBsaW5raW5nLiAgQWRkIGxpYnJ0bC5hIHRvIHRoZSBsaW5rLgoJKGdsZCpfcmVhZF9maWxlKTogQ2xlYW4uCgoyMDAyLTAyLTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHBhcmFtcy9lbGY2NHBwYy5zaCAoT1RIRVJfVEVYVF9TRUNUSU9OUyk6IERlZmluZS4KCjIwMDItMDItMTggIERhdmlkIE8nQnJpZW4gIDxvYnJpZW5ARnJlZUJTRC5vcmc+CgoJKiBNYWtlZmlsZS5hbTogQWRkIG5ldyBmaWxlcyBlYXJtZWxmX2Zic2QsIGVlbGYzMnBwY19mYnNkLAoJZWVsZl9pMzg2X2Zic2QsIGVlbGY2NF9pYTY0X2Zic2QsIGVlbGZfeDg2XzY0X2Zic2QsIGVlbGY2NF9zcGFyY19mYnNkLAoJYW5kIGVlbGY2NGFscGhhX2Zic2QuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0KHNwYXJjNjQtKi1mcmVlYnNkLCBpYTY0LSotZnJlZWJzZCwgaVszNDU2XTg2LSotZnJlZWJzZCwKCXg4Nl82NC0qLWZyZWVic2QsIGFybS0qLWZyZWVic2QsIGFscGhhKi0qLWZyZWVic2QsIHBvd2VycGMtKi1mcmVlYnNkKToKCXVzZSBhIEZyZWVCU0Qtc3BlY2lmaWMgZW11bGF0aW9uIHJhdGhlciB0aGFuIHRoZSBwc0FCSSBvbmUuCgkqIGVtdWxwYXJhbXMvZWxmX2Zic2Quc2ggKEVMRl9JTlRFUlBSRVRFUl9OQU1FKTogU2V0IGFwcHJvcHJpYXRlIHZhbHVlCglmb3IgYWxsIEZyZWVCU0QgRUxGIHN5c3RlbXMuCgkqIGVtdWxwYXJhbXMvYXJtZWxmX2Zic2Quc2g6IEJyaWRnZSBlbGZfZmJzZC5zaCBhbmQgdGhlICJuYXRpdmUiIHBzQUJJCgllbXVsYXRpb24uCgkqIGVtdWxwYXJhbXMvZWxmMzJwcGNfZmJzZC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRfaWE2NF9mYnNkLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGY2NF9zcGFyY19mYnNkLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGY2NGFscGhhX2Zic2Quc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZl9pMzg2X2Zic2Quc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZl94ODZfNjRfZmJzZC5zaDogTGlrZXdpc2UuCgoyMDAyLTAyLTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHBvL3RyLnBvOiBVcGRhdGVkIHZlcnNpb24uCgoyMDAyLTAyLTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGQudGV4aW5mbyAoT3V0cHV0IFNlY3Rpb24gRmlsbCk6IEZpeCBhbWF0ZXVyIHRleGluZm8uCgkoRklMTCk6IExpa2V3aXNlLgoKMjAwMi0wMi0xNyAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogZW11bHRlbXBsL21tby5lbSAobW1vX2FmdGVyX29wZW4pOiBEb24ndCBjYWxsCglfYmZkX21taXhfY2hlY2tfYWxsX3JlbG9jcyB3aGVuIHByb2R1Y2luZyBFTEYgb3V0cHV0LgoKMjAwMi0wMi0xNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVtdWxwYXJhbXMvZWxmNjRhbHBoYS5zaCAoTk9QKTogQWRqdXN0IGZvciBiaWctZW5kaWFuCglkZWZpbml0aW9uLiAgRW1pdCBhIHVub3Arbm9wIHBhaXIuCgoyMDAyLTAyLTE1ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBlbXVsdGVtcGwvbW1peC1lbGZubW1vLmVtIChtbWl4X2FmdGVyX2FsbG9jYXRpb24pOiBBbHNvIGNoZWNrCglmb3IgcHJlc2VuY2Ugb2YgLk1NSVgucmVnX2NvbnRlbnRzLmxpbmtlcl9hbGxvY2F0ZWQgYmVmb3JlIGVhcmx5CglleGl0LgoKCSogTkVXUzogTWVudGlvbiBzdXBwb3J0IGZvciBNTUlYLgoKMjAwMi0wMi0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglTdXBwb3J0IGFyYml0cmFyeSBsZW5ndGggZmlsbCBwYXR0ZXJucy4KCSogbGQudGV4aW5mbyAoT3V0cHV0IFNlY3Rpb24gRmlsbCk6IERlc2NyaWJlIGZpbGwgZXhwcmVzc2lvbnMuCgkoRklMTCk6IFJlZmVyIHRvIHRoZSBhYm92ZS4KCSogbGRleHAuaCAoZXRyZWVfdmFsdWVfdHlwZSk6IEFkZCAic3RyIiBmaWVsZC4KCSh1bmlvbiBldHJlZV91bmlvbik6IEFkZCAic3RyIiB0byAidmFsdWUiIHN0cnVjdC4KCShleHBfYmlnaW50b3ApOiBEZWNsYXJlLgoJKGV4cF9nZXRfZmlsbCk6IERlY2xhcmUuCgkqIGxkZXhwLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIuCgkoZXhwX2ludG9wKTogU2V0IHZhbHVlLnN0ciB0byBOVUxMLgoJKGV4cF9iaWdpbnRvcCk6IE5ldyBmdW5jdGlvbi4KCShuZXdfcmVsKTogUGFzcyBpbiAic3RyIiwgYW5kIHNldCBuZXcuc3RyIGZyb20gaXQuCgkobmV3X3JlbF9mcm9tX3NlY3Rpb24pOiBTZXQgbmV3LnN0ciB0byBOVUxMLgoJKGZvbGRfbmFtZSk6IEFkanVzdCBjYWxscyB0byBuZXdfcmVsLgoJKGV4cF9mb2xkX3RyZWUpOiBMaWtld2lzZS4KCShleHBfZ2V0X2ZpbGwpOiBOZXcgZnVuY3Rpb24uCgkqIGxkZ3JhbS55IChzdHJ1Y3QgYmlnX2ludCBiaWdpbnQsIGZpbGxfdHlwZSAqZmlsbCk6IE5ldy4KCShJTlQpOiBSZXR1cm5zIGEgImJpZ2ludCIuICBBZGp1c3QgYWxsIGNvZGUgaGFuZGxpbmcgSU5Ucy4KCShmaWxsX29wdCk6IFJldHVybnMgYSAiZmlsbCIuCgkoZmlsbF9leHApOiBTcGxpdCBvdXQgb2YgZmlsbF9vcHQsIHVzZSBmb3IgRklMTC4KCSogbGRsYW5nLmggKHN0cnVjdCBfZmlsbF90eXBlKTogTmV3LgoJKGZpbGxfdHlwZSk6IE1vdmUgdHlwZWRlZiB0byBsZGV4cC5oLgoJKGxhbmdfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50X3R5cGUpOiAiZmlsbCIgaXMgbm93IGEgcG9pbnRlci4KCShsYW5nX2ZpbGxfc3RhdGVtZW50X3R5cGUpOiBMaWtld2lzZS4KCShsYW5nX3BhZGRpbmdfc3RhdGVtZW50X3R5cGUpOiBMaWtld2lzZS4KCShsYW5nX2FkZF9maWxsKTogTm93IHRha2VzIGEgImZpbGxfdHlwZSAqIiBwYXJhbS4KCShsYW5nX2xlYXZlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudCk6IExpa2V3aXNlLgoJKGxhbmdfZG9fYXNzaWdubWVudHMpOiBMaWtld2lzZS4KCShsYW5nX3NpemVfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShsYW5nX2xlYXZlX292ZXJsYXlfc2VjdGlvbik6IExpa2V3aXNlLgoJKGxhbmdfbGVhdmVfb3ZlcmxheSk6IExpa2V3aXNlLgoJKiBsZGxhbmcuYzogSW5jbHVkZSBsZGdyYW0uaCBhZnRlciBsZGV4cC5oLgoJKGxhbmdfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50X2xvb2t1cCk6IEFkanVzdCBmb3IgZmlsbF90eXBlIGNoYW5nZS4KCShwcmludF9maWxsX3N0YXRlbWVudCk6IExpa2V3aXNlLgoJKHByaW50X3BhZGRpbmdfc3RhdGVtZW50KTogTGlrZXdpc2UuCgkoaW5zZXJ0X3BhZCk6IE5vdyB0YWtlcyBhICJmaWxsX3R5cGUgKiIgYXJnLgoJKHNpemVfaW5wdXRfc2VjdGlvbik6IExpa2V3aXNlLgoJKGxhbmdfc2l6ZV9zZWN0aW9uc18xKTogTGlrZXdpc2UuCgkobGFuZ19zaXplX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkobGFuZ19kb19hc3NpZ25tZW50cyk6IExpa2V3aXNlLgoJKGxhbmdfYWRkX2ZpbGwpOiBMaWtld2lzZS4KCShsYW5nX2xlYXZlX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudCk6IExpa2V3aXNlLgoJKGxhbmdfbGVhdmVfb3ZlcmxheV9zZWN0aW9uKTogTGlrZXdpc2UuCgkobGFuZ19sZWF2ZV9vdmVybGF5KTogTGlrZXdpc2UuCglBZGp1c3QgYWxsIGNhbGxlcnMgb2YgdGhlIGFib3ZlIGZ1bmN0aW9uLgoJKiBsZGxleC5sOiBJbmNsdWRlIGxkZ3JhbS5oIGFmdGVyIGxkZXhwLmguICBBbGxvdyBoZXggbnVtYmVycwoJc3RhcnRpbmcgd2l0aCAiMFgiIGFzIHdlbGwgYXMgIjB4Ii4gIFJldHVybiBiaWdpbnQuc3RyIGZvciBoZXgKCW51bWJlcnMgc3RhcnRpbmcgd2l0aCAiMHgiIG9yICIwWCIsIHplcm8gYmlnaW50LnN0ciBvdGhlcndpc2UuCglBbHdheXMgdXNlIGJhc2UgMTYgZm9yIG51bWJlcnMgc3RhcnRpbmcgd2l0aCAiJCIuCgkqIGxkbWFpbi5jOiBJbmNsdWRlIGxkZ3JhbS5oIGFmdGVyIGxkZXhwLmguCgkqIGxkd3JpdGUuYyAoYnVpbGRfbGlua19vcmRlcik6IFVzZSBiZmRfZGF0YV9saW5rX29yZGVyIGluIHBsYWNlCglvZiBiZmRfZmlsbF9saW5rX29yZGVyLgoJKiBwZS1kbGwuYzogQWRqdXN0IGxhbmdfZG9fYXNzaWdubWVudHMgY2FsbHMuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9ocHBhZWxmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2Jlb3MuZW06IEluY2x1ZGUgbGRncmFtLmggYWZ0ZXIgbGRleHAuaCwgYWRqdXN0CglsYW5nX2FkZF9hc3NpZ25tZW50IGNhbGwuCgkqIGVtdWx0ZW1wbC9wZS5lbTogTGlrZXdpc2UuCgoyMDAyLTAyLTE0ICBQaGlsIEVkd2FyZHMgIDxwbWVAZ2NjLmdudS5vcmc+CgoJKiBsZC50ZXhpbmZvIChWRVJTSU9OIHNjcmlwdHMpOiBTeW1ib2wgbmFtZXMgYXJlIGdsb2JiaW5nIHBhdHRlcm5zLgoJKiBsZGdyYW0ueSAobGFuZ19uZXdfdmVyc19yZWdleCk6IFJlbmFtZSB0byBsYW5nX25ld192ZXJzX3BhdHRlcm47Cgl0aGUgcGF0dGVybiBpbiBxdWVzdGlvbiBpcyBub3QgYSByZWdleHAuCgkqIGxkbGFuZy5jOiBMaWtld2lzZS4KCSogbGRsYW5nLmg6IExpa2V3aXNlLgoJKiBsZGxleC5sIChWX0lERU5USUZJRVIpOiBBbGxvdyAnWycsICddJywgJy0nLCAnIScsIGFuZCAnXicgYWxzby4KCjIwMDItMDItMTIgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogbGRsZXgubCAoREFUQV9TRUdNRU5UX0FMSUdOLCBEQVRBX1NFR01FTlRfRU5EKTogTmV3IHRva2Vucy4KCSogbGRncmFtLnkgKERBVEFfU0VHTUVOVF9BTElHTiwgREFUQV9TRUdNRU5UX0VORCk6IE5ldyB0b2tlbnMuCgkoZXhwKTogQWRkIERBVEFfU0VHTUVOVF9BTElHTiAoZXhwLCBleHApIGFuZCBEQVRBX1NFR01FTlRfRU5EIChleHApLgoJKiBsZGV4cC5jIChleHBfZGF0YV9zZWcpOiBOZXcgdmFyaWFibGUuCgkoZXhwX3ByaW50X3Rva2VuKTogSGFuZGxlIERBVEFfU0VHTUVOVF9BTElHTiBhbmQgREFUQV9TRUdNRU5UX0VORC4KCShmb2xkX2JpbmFyeSk6IEhhbmRsZSBEQVRBX1NFR01FTlRfQUxJR04uCgkoZXhwX2ZvbGRfdHJlZSk6IEhhbmRsZSBEQVRBX1NFR01FTlRfRU5ELgoJUGFzcyBhbGxvY2F0aW9uX2RvbmUgd2hlbiByZWN1cnNpbmcgaW5zdGVhZCBvZiBoYXJkY29kaW5nCglsYW5nX2FsbG9jYXRpbmdfcGhhc2VfZW51bS4KCSogbGRleHAuaCAoZXhwX2RhdGFfc2VnKTogTmV3LgoJKiBsZGxhbmcuYyAobGFuZ19zaXplX3NlY3Rpb25zXzEpOiBSZW5hbWVkIGZyb20gbGFuZ19zaXplX3NlY3Rpb25zLgoJKGxhbmdfc2l6ZV9zZWN0aW9ucyk6IE5ldy4KCSogbGQudGV4aW5mbyAoREFUQV9TRUdNRU5UX0FMSUdOLCBEQVRBX1NFR01FTlRfRU5EKTogRG9jdW1lbnQuCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogVXNlIERBVEFfU0VHTUVOVF9BTElHTiBhbmQgREFUQV9TRUdNRU5UX0VORAoJaWYgQ09NTU9OUEFHRVNJWkUgaXMgZGVmaW5lZC4KCSogZW11bHBhcmFtcy9lbGZfaTM4Ni5zaCAoQ09NTU9OUEFHRVNJWkUpOiBTZXQgdG8gNEsuCgkqIGVtdWxwYXJhbXMvZWxmMzJfc3BhcmMuc2ggKENPTU1PTlBBR0VTSVpFKTogU2V0IHRvIDhLLgoJKiBlbXVscGFyYW1zL2VsZjY0X3NwYXJjLnNoIChDT01NT05QQUdFU0laRSk6IFNldCB0byA4Sy4KCSogZW11bHBhcmFtcy9lbGY2NGFscGhhLnNoIChDT01NT05QQUdFU0laRSk6IFNldCB0byA4Sy4KCSogZW11bHBhcmFtcy9lbGY2NF9pYTY0LnNoIChDT01NT05QQUdFU0laRSk6IFNldCB0byAxNksgZm9yIHNoYXJlZAoJbGlicmFyaWVzIG9ubHkuCgoyMDAyLTAyLTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAyLTAyLTEwICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGxleHN1cC5jOiBSZW1vdmUgc3RydG91bCBkZWNsYXJhdGlvbi4KCjIwMDItMDItMTAgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogbGRtYWluLmM6IEFkZCBwcm90b3R5cGUgZm9yIG1haW4gKCkuCgkqIGxleHN1cC5jOiBHdWFyZCBkZWNsYXJhdGlvbiBvZiBzdHJ0b3VsIHdpdGggSEFWRV9TVERMSUJfSC4KCSogZW11bHRlbXBsL2xuazk2MC5lbSAobG5rOTYwX2Nob29zZV90YXJnZXQpOiBGdW5jdGlvbiBzaG91bGQKCXRha2UgdHdvIGFyZ3VtZW50cy4KCjIwMDItMDItMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuYyAoZW50cnlfc2VjdGlvbik6IE5ldyBpbml0aWFsaXNlZCB2YXJpYWJsZS4KCShsYW5nX2ZpbmlzaCk6IFVzZSBpdC4KCSogbGRsYW5nLmggKGVudHJ5X3NlY3Rpb24pOiBEZWNsYXJlLgoJKiBlbXVsdGVtcGwvcHBjNjRlbGYuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X2ZpbmlzaCk6IFNldAoJZW50cnlfc2VjdGlvbiB0byAiLm9wZCIuCgoyMDAyLTAyLTA5ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogbGQudGV4aW5mbyAoT3B0aW9ucyk6IEFkZCBiYWNrIGluIC1ub3N0ZGxpYiBkb2N1bWVudGF0aW9uLAoJd2hpY2ggaGFkIGJlZW4gaW5hZHZlcnRlbnRseSByZW1vdmVkLgoKMjAwMi0wMi0wOSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogZW11bHRlbXBsL21taXgtZWxmbm1tby5lbSAobW1peF9hZnRlcl9hbGxvY2F0aW9uKTogQWRqdXN0CglyZWdpc3RlciBzZWN0aW9uIHZtYSB0byBhIHNhbmUgdmFsdWUgYWZ0ZXIgZW1pdHRpbmcgZXJyb3IuICBNYWtlCglmYXRhbCBjb25kaXRpb25zIGNhdXNlIHByb2dyYW0gZXhpdCB3aGVuIGVtaXR0aW5nIG1lc3NhZ2UuCgoyMDAyLTAyLTA4ICBJdmFuIEd1enZpbmVjIDxpdmFuZ0BvcGVuY29yZXMub3JnPgoKCSogY29uZmlndXJlLnRndDogQWRkIG9yMzItKi1ydGVtcyB0YXJnZXQuCgoyMDAyLTAyLTA4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCglDb250cmlidXRlIHNoNjQtZWxmLgoJMjAwMi0wMS0yNCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGVtdWxwYXJhbXMvc2hlbGYzMi5zaCAoU1RBQ0tfQUREUik6IERlZmluZSBhcyBmb3JtZXJseSBkZWZpbmVkCglpbiBPVEhFUl9SRUxPQ0FUQUJMRV9TRUNUSU9OUy4KCTIwMDItMDEtMTggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBlbXVscGFyYW1zL3NoZWxmMzIuc2ggKFNUQUNLX0FERFIpOiBEZWZpbmUuCgkoT1RIRVJfUkVMT0NBVEFCTEVfU0VDVElPTlMpOiBSZW5hbWVkIHRvLi4uCgkoT1RIRVJfU0VDVElPTlMpOiB0aGlzLiAgUmVtb3ZlZCBzdGFjayBzZXR0aW5ncy4KCSogZW11bHBhcmFtcy9zaGVsZjY0LnNoIChPVEhFUl9SRUxPQ0FUQUJMRV9TRUNUSU9OUyk6IERvIG5vdCBzZXQuCgkoT1RIRVJfU0VDVElPTlMpOiBSZXNldCBhZnRlciBzb3VyY2luZyBzaGVsZjMyLnNoLgoJMjAwMS0wMy0xMiAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgkqIGVtdWx0ZW1wbC9zaDY0ZWxmLmVtIChzaDY0X2VsZl8kX2JlZm9yZV9hbGxvY2F0aW9uKTogRGlzYWJsZQoJcmVsYXhpbmcgaWYgYW55IHNobWVkaWEgb3IgbWl4ZWQgc2VjdGlvbnMgYXJlIGZvdW5kLgoJMjAwMS0wMy0wNyAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgkqIGVtdWx0ZW1wbC9zaDY0ZWxmLmVtIChzaDY0X2VsZl9iZWZvcmVfYWxsb2NhdGlvbik6IFBhc3MgZiB0bwoJZWluZm8uICBHcmFjZWZ1bGx5IGRlY2xpbmUgdG8gb3V0cHV0IHRvIG5vbi1lbGYgZm9ybWF0cy4KCTIwMDEtMDMtMDYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkByZWRoYXQuY29tPgoJKiBlbXVscGFyYW1zL3NoZWxmNjQuc2ggKE9USEVSX1JFTE9DQVRJTkdfU0VDVElPTlMpIDwuc3RhY2s+OgoJRGVmYXVsdCB0byBfZW5kIGFsaWduZWQgdG8gbmV4dCBtdWx0aXBsZSBvZiAweDQwMDAwLCBwbHVzIDB4NDAwMDAuCgkqIGVtdWxwYXJhbXMvc2hlbGYzMi5zaDogRGl0dG8uCgkyMDAxLTAxLTE0ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCSogZW11bHBhcmFtcy9zaGVsZjMyLnNoIChPVEhFUl9SRUxPQ0FUSU5HX1NFQ1RJT05TKTogVHdlYWsKCWNvbW1lbnQuCgkyMDAxLTAxLTEwICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCSogZW11bHBhcmFtcy9zaGVsZjMyLnNoIChPVEhFUl9SRUxPQ0FUSU5HX1NFQ1RJT05TKTogQXZvaWQKCW5vbi1wb3J0YWJsZSBzaGVsbCBjb25zdHJ1Y3RzLiBGcm9tIEhhbnMtUGV0ZXIgTmlsc3Nvbi4KCTIwMDEtMDEtMDkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBlbXVscGFyYW1zL3NoZWxmNjQuc2ggKEVYVFJBX0VNX0ZJTEUpOiBEZWZpbmUgZW1wdHkuCgkqIE1ha2VmaWxlLmFtIChlc2hlbGY2NC5jLCBlc2hsZWxmNjQuYywgZXNobGVsZjMyLmMpOiBBZGp1c3QKCWRlcGVuZGVuY2llcyB0byB0aGUgc2hlbGwgc2NyaXB0IGluY2x1ZGUgY2hhaW4uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJMjAwMS0wMS0wNiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CgkqIGVtdWx0ZW1wbC9zaDY0ZWxmLmVtOiBVcGRhdGUgYW5kIHR3ZWFrIGNvbW1lbnRzLgoJKHNoNjRfZWxmXyR7RU1VTEFUSU9OX05BTUV9X2FmdGVyX2FsbG9jYXRpb24pOiBBbHdheXMgYWxsb2NhdGUgYW5kCgltYWtlIGEgLmNyYW5nZXMgc2VjdGlvbiBTRUNfSU5fTUVNT1JZLgoJMjAwMC0xMi0zMCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CgkqIGVtdWx0ZW1wbC9zaDY0ZWxmLmVtCgkoc2g2NF9lbGZfJHtFTVVMQVRJT05fTkFNRX1fYmVmb3JlX2FsbG9jYXRpb24pOiBEb24ndCBzdG9wIHdoZW4KCS5jcmFuZ2VzIHNlY3Rpb24gZm91bmQgdG8gYmUgbmVjZXNzYXJ5OyBjb250aW51ZSBhbmQgc2V0IHN0b3JlZAoJc2VjdGlvbiBjb250ZW50cyBmbGFncyBmb3Igc2VjdGlvbnMgd2l0aCBub24tbWl4ZWQgY29udGVudHMuCglVc2UgYSBzdHJ1Y3Qgc2g2NF9zZWN0aW9uX2RhdGEgY29udGFpbmVyIGFuZCBzaDY0X2VsZl9zZWN0aW9uX2RhdGEKCXRvIHN0b3JlIGNvbnRlbnRzLXR5cGUgZmxhZ3MuCglSZW1vdmUgdW51c2VkIHVwZGF0ZSBvZiAiaXNlYyIuCgkoc2g2NF9lbGZfJHtFTVVMQVRJT05fTkFNRX1fYWZ0ZXJfYWxsb2NhdGlvbik6IE9ubHkgcHJvY2VzcwoJc2VjdGlvbnMgbWFya2VkIFNIRl9TSDVfSVNBMzJfTUlYRUQuICBVc2Ugc2g2NF9lbGZfc2VjdGlvbl9kYXRhIHRvCglhY2Nlc3MgY29udGVudHMtdHlwZSBmbGFncy4gIEFzc2VydCB0aGF0IHRoZSBhc3NvY2lhdGVkIGNvbnRhaW5lcgoJaXMgaW5pdGlhbGl6ZWQuICBVc2UgdGhhdCBjb250YWluZXIsIG5vdCBlbGZfZ3Bfc2l6ZSwgdG8gaG9sZCBzaXplCglvZiBsaW5rZXItZ2VuZXJhdGVkIGNyYW5nZXMgY29udGVudHMuCgkyMDAwLTEyLTE4ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCSogZW11bHRlbXBsL3NoNjRlbGYuZW0KCShzaDY0X2VsZl8ke0VNVUxBVElPTl9OQU1FfV9iZWZvcmVfYWxsb2NhdGlvbik6IEV4aXQgZWFybHkgaWYKCXRoZXJlJ3MgYWxyZWFkeSBhIC5jcmFuZ2VzIHNlY3Rpb24uICBXaGVuIHNlY3Rpb24gZmxhZyBkaWZmZXJlbmNlCglpcyBmb3VuZCwgZG9uJ3QgTlVMTC1jaGVjayBjcmFuZ2VzIGEgc2Vjb25kIHRpbWUuICBUd2VhayBjb21tZW50cy4KCShzaDY0X2VsZl8ke0VNVUxBVElPTl9OQU1FfV9hZnRlcl9hbGxvY2F0aW9uKTogVXNlIHNpemUgYWZ0ZXIKCW1lcmdpbmcsIG5vdCBtYXggc2l6ZSwgYXMgc2l6ZSBvZiBsZC1nZW5lcmF0ZWQgLmNyYW5nZXMgY29udGVudHMuCglEb24ndCBzZXQgRUxGIHNlY3Rpb24gZmxhZ3MgaW4gb3V0cHV0IHNlY3Rpb24uICBXaGVuIGNoZWNraW5nIGZvcgoJbmVlZGVkIC5jcmFuZ2VzIGRlc2NyaXB0b3JzLCBkb24ndCB1c2UgYSB2YXJpYWJsZTsgY29tcGFyZQoJaW5jb21pbmcgRUxGIHNlY3Rpb24gZmxhZ3MgZGlyZWN0bHkgdG8gU0hGX1NINV9JU0EzMl9NSVhFRC4gIFR3ZWFrCgljb21tZW50cy4KCTIwMDAtMTItMTggIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBlbXVsdGVtcGwvc2g2NGVsZi5lbTogTmV3IGZpbGUuCgkqIE1ha2VmaWxlLmFtIChlc2hlbGYzMi5jLCBlc2hsZWxmMzIuYyk6IEFkanVzdCBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBlbXVscGFyYW1zL3NoZWxmMzIuc2ggKE9VVFBVVF9GT1JNQVQpOiBPbmx5IHNldCBpZiBub3Qgc2V0LgoJKE9USEVSX1JFTE9DQVRJTkdfU0VDVElPTlMpOiBEaXR0by4KCShFWFRSQV9FTV9GSUxFKTogTmV3LCBzZXQgdG8gc2g2NGVsZiBpZiBub3Qgc2V0LgoJKiBlbXVscGFyYW1zL3NobGVsZjMyLnNoOiBTdHViIG91dCBhbGwgc2V0dGluZ3MgZXhjZXB0CglPVVRQVVRfRk9STUFULiAgU291cmNlIHNoZWxmMzIuc2guCgkqIGVtdWxwYXJhbXMvc2hlbGY2NC5zaDogU2ltaWxhciwgYnV0IGFsc28ga2VlcCBFTEZfU0laRSBhbmQKCU9USEVSX1JFTE9DQVRJTkdfU0VDVElPTlMuCgkoT1RIRVJfUkVMT0NBVElOR19TRUNUSU9OUyk6IFJlbW92ZSAuY3Jhbmdlcy4KCSogZW11bHBhcmFtcy9zaGxlbGY2NC5zaDogU3R1YiBvdXQgYWxsIHNldHRpbmdzIGV4Y2VwdAoJT1VUUFVUX0ZPUk1BVC4gIFNvdXJjZSBzaGVsZjY0LnNoLgoJMjAwMC0xMi0xNSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBuQGN5Z251cy5jb20+CgkqIGVtdWxwYXJhbXMvc2hlbGY2NC5zaCAoT1RIRVJfUkVMT0NBVElOR19TRUNUSU9OUyk6IEluY2x1ZGUKCS5jcmFuZ2VzIHNlY3Rpb24uCgkoREFUQV9TVEFSVF9TWU1CT0xTKTogRGVmaW5lLCBwcm92aWRlIF9fX2RhdGEuCgkoT1RIRVJfUkVBRE9OTFlfU1lNQk9MUyk6IERlZmluZSwgcHJvdmlkZSBfX19yb2RhdGEgYW5kIGFsaWduIHRvIDgKCWZvciBjb25zZWN1dGl2ZSAuZGF0YSBzZWN0aW9uLgoJKE9USEVSX0dPVF9TRUNUSU9OUyk6IERlZmluZSwgYWxpZ24gdG8gOCBmb3IgY29uc2VjdXRpdmUgLmJzcwoJc2VjdGlvbiBhZnRlciAuZGF0YSBzZWN0aW9uLgoJKiBlbXVscGFyYW1zL3NobGVsZjY0LnNoOiBEaXR0by4KCSogZW11bHBhcmFtcy9zaGVsZjMyLnNoOiBEaXR0by4KCShBTElHTk1FTlQpOiBEZWZpbmUgdG8gOC4KCSogZW11bHBhcmFtcy9zaGVsZjMyLnNoOiBEaXR0by4KCTIwMDAtMTItMTIgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBjb25maWd1cmUudGd0IChzaDY0LSotZWxmKik6IEFzc2lnbiB0YXJnX2V4dHJhX2xpYnBhdGggdG8gZ2V0CglidWlsdC1pbiBsaW5rZXIgc2NyaXB0cy4KCTIwMDAtMTEtMzAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBlbXVscGFyYW1zL3NobGVsZjY0LnNoOiBOZXcuCgkqIGVtdWxwYXJhbXMvc2hlbGY2NC5zaDogTmV3LgoJKiBjb25maWd1cmUudGd0IChzaDY0LSotZWxmKik6IEFkZCBzaGVsZjY0IGFuZCBzaGxlbGY2NCB0bwoJdGFyZ19leHRyYV9lbXVscy4KCSogTWFrZWZpbGUuYW06IEFkZCBzdXBwb3J0IGZvciBzaGxlbGY2NCBhbmQgc2hlbGY2NC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkyMDAwLTExLTI5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocG5AY3lnbnVzLmNvbT4KCSogY29uZmlndXJlLnRndCAoc2g2NC0qLWVsZiopOiBBZGQgc2hlbGYgYXMgZGVmYXVsdC4KCUFkZCBzaGxlbGYgdG8gdGFyZ19leHRyYV9lbXVscy4KCTIwMDAtMTEtMjQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwbkBjeWdudXMuY29tPgoJKiBlbXVscGFyYW1zL3NoZWxmMzIuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL3NobGVsZjMyLnNoOiBOZXcgZmlsZS4KCSogTWFrZWZpbGUuYW06IEFkZCBzdXBwb3J0IGZvciBzaGxlbGYzMiBhbmQgc2hlbGYzMi4KCSogY29uZmlndXJlLnRndDogTWFwIHNoNjQtKi1lbGYqIHRvIHNobGVsZjMyIGFuZCBzaGVsZjMyLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDItMDItMDUgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogbGRsYW5nLmMgKGxhbmdfcmVzZXRfbWVtb3J5X3JlZ2lvbnMpOiBSZW5hbWUgZnJvbQoJcmVzZXRfbWVtb3J5X3JlZ2lvbnMuICBDaGFuZ2UgYWxsIGNhbGxlcnMuICBNYWtlIHB1YmxpYy4KCSogbGRsYW5nLmggKGxhbmdfcmVzZXRfbWVtb3J5X3JlZ2lvbnMpOiBQcm90b3R5cGUuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fZmluaXNoKTogQ2FsbAoJbGFuZ19yZXNldF9tZW1vcnlfcmVnaW9ucyBiZWZvcmUgbGFuZ19zaXplX3NlY3Rpb25zLgoJKiBlbXVsdGVtcGwvaHBwYWVsZi5lbSAoaHBwYWVsZl9sYXlvdXRfc2VjdGlvbnNfYWdhaW4pOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBMaWtld2lzZS4KCjIwMDItMDItMDQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGVtdWx0ZW1wbC9tbWl4LWVsZm5tbW8uZW0gKG1taXhfYWZ0ZXJfYWxsb2NhdGlvbik6IFVzZSBzaWduZWQKCWFyaXRobWV0aWMgd2hlbiBjaGVja2luZyBmb3IgdG9vIG1hbnkgZ2xvYmFsIHJlZ2lzdGVycy4KCjIwMDItMDItMDIgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGQgZWhwcGFuYnNkLm8uCgkoZWhwcGFuYnNkLmMpOiBOZXcgcnVsZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3QgKGhwcGEqLSotbmV0YnNkKik6IE5ldyB0YXJnZXQuCgkqIGVtdWxwYXJhbXMvaHBwYWxpbnV4LnNoOiBBZGQgY29tbWVudCB0byBjaGVjayBvdGhlciBmaWxlcwoJdGhhdCBzb3VyY2UgdGhpcyBmaWxlIGl0IGlzIG1vZGlmaWVkLCBhbmQgbGlzdCB3aGljaAoJZmlsZXMgdGhhdCBkby4KCSogZW11bHBhcmFtcy9ocHBhbmJzZC5zaDogTmV3IGZpbGUuCgoyMDAyLTAyLTAxICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHJlZGhhdC5jb20+CgoJKiBzY3JpcHR0ZW1wbC94c3Rvcm15MTYuc2M6IERvbid0IGFsbG9jYXRlIGV4dHJhIHNwYWNlIGZvciB0aGUKCXN0YWNrLgoKMjAwMi0wMi0wMSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCVN1cHBvcnQgb24tZGVtYW5kIGdsb2JhbCByZWdpc3RlciBhbGxvY2F0aW9uIGZyb20KCVJfTU1JWF9CQVNFX1BMVVNfT0ZGU0VUIHJlbG9jcy4KCSogZW11bHRlbXBsL21taXgtZWxmbm1tby5lbSAobW1peF9hZnRlcl9hbGxvY2F0aW9uKTogUmVuYW1lIGZyb20KCW1taXhfc2V0X3JlZ19zZWN0aW9uX3ZtYS4gIENhbGwKCV9iZmRfbW1peF9maW5hbGl6ZV9saW5rZXJfYWxsb2NhdGVkX2dyZWdzLgoJKG1taXhfYmVmb3JlX2FsbG9jYXRpb24pOiBOZXcgZnVuY3Rpb24uCgkoTERFTVVMX0FGVEVSX0FMTE9DQVRJT04pOiBTZXQgdG8gbW1peF9hZnRlcl9hbGxvY2F0aW9uLgoJKExERU1VTF9CRUZPUkVfQUxMT0NBVElPTik6IERlZmluZSB0byBtbWl4X2JlZm9yZV9hbGxvY2F0aW9uLgoJKiBzY3JpcHR0ZW1wbC9tbW8uc2MgKC50ZXh0KTogTWFyayAuaW5pdCwgLmZpbmkgYXMgS0VFUC4KCSguTU1JWC5yZWdfY29udGVudHMpOiBBZGQgLk1NSVgucmVnX2NvbnRlbnRzLmxpbmtlcl9hbGxvY2F0ZWQKCWJlZm9yZSAuTU1JWC5yZWdfY29udGVudHMuCgkqIGVtdWx0ZW1wbC9tbW8uZW0gKGdsZG1tb19iZWZvcmVfYWxsb2NhdGlvbik6IERlZmluZSB0byBkZWZhdWx0LgoJKG1tb19hZnRlcl9vcGVuKTogTmV3IGZ1bmN0aW9uLgoJKExERU1VTF9BRlRFUl9PUEVOKTogRGVmaW5lIHRvIG1tb19hZnRlcl9vcGVuLgoJKiBlbXVscGFyYW1zL2VsZjY0bW1peC5zaCAoT1RIRVJfU0VDVElPTlMpOiBUd2VhayBmb3JtYXR0aW5nLiAgQWRkCgkuTU1JWC5yZWdfY29udGVudHMubGlua2VyX2FsbG9jYXRlZCBiZWZvcmUgLk1NSVgucmVnX2NvbnRlbnRzLgoKMjAwMi0wMS0zMSAgSXZhbiBHdXp2aW5lYyAgPGl2YW5nQG9wZW5jb3Jlcy5vcmc+CgoJKiBlbXVscGFyYW1zL29yMzIuc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL29yMzJlbGYuc2g6IE5ldyBmaWxlLgoJKiBzY3JpcHR0ZW1wbC9vcjMyLnNjOiBOZXcgZmlsZS4KCSogY29uZmlndXJlLnRndCA6IEFkZCBzdXBwb3J0IGZvciBvcjMyLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUKCSogTWFrZWZpbGUuYW06IEFkZCBzdXBwb3J0IGZvciBvcjMyLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogTkVXUzogTWVudGlvbiBzdXBwb3J0IGZvciBvcjMyLgoJKiBwby9sZC5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTI5ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoJICAgIE1pdGNoIExpY2h0ZW5iZXJnICA8bXBsQGJyb2FkY29tLmNvbT4KCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwLnNoIChFWFRSQV9FTV9GSUxFKTogRGVmaW5lIHRvIGJlIG1pcHNlbGYuCgkqIGVtdWx0ZW1wbC9taXBzZWxmLmVtOiBOZXcgZmlsZSB0byBoYW5kbGUgTUlQUyBFTEYgZW1iZWRkZWQKCXJlbG9jIGNyZWF0aW9uIChsZCAtLWVtYmVkZGVkLXJlbG9jcykuCgoyMDAyLTAxLTI3ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRyb3dAbXZpc3RhLmNvbT4KCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDAyLTAxLTI2ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoaW5zdGFsbCk6IERlcGVuZCBvbiBpbnN0YWxsLWluZm8uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMi0wMS0yNiAgQ2hyaXN0aWFuIFJvc2UgIDxtZW50aG9zQG1lbnRob3MuY29tPgoKCSogbGRtYWluLmMgKG1haW4pOiBVc2UgZnVsbCBzZW50ZW5jZXMgdG8gZWFzZSB0cmFuc2xhdGlvbi4KCjIwMDItMDEtMjYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZnIucG86IFVwZGF0ZWQgdmVyc2lvbi4KCjIwMDItMDEtMjUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZXMucG86IFVwZGF0ZWQgdmVyc2lvbi4KCjIwMDItMDEtMjUgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGxkbGV4LmwgKHl5X2lucHV0KTogQ29ycmVjdCBlcnJvciBjaGVjay4KCjIwMDItMDEtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZG1pc2MuYyAoZGVtYW5nbGUpOiBQdXQgYmFjayBkb3RzIHdoZW4gc3RyaW5nIG5vdCBkZW1hbmdsZWQuCgoyMDAyLTAxLTIyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZW11bHBhcmFtcy9lbGY2NGFscGhhLnNoIChOT1ApOiBVc2UgdW5vcC4KCjIwMDItMDEtMjEgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGxkbGV4Lmw6IFVzZSBmcmVhZCBpbnN0ZWFkIG9mIHJlYWQuCgoyMDAyLTAxLTIxICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlndXJlLnRndCAoaWE2NC0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0LgoKMjAwMi0wMS0yMSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbXVscGFyYW1zL2VsZjMyYnRzbWlwLnNoIChTSExJQl9URVhUX1NUQVJUX0FERFIpOiBDaGFuZ2UgdG8KCTAuCgkqIGVtdWxwYXJhbXMvZWxmNjRidHNtaXAuc2ggKFNITElCX1RFWFRfU1RBUlRfQUREUik6IExpa2V3aXNlLgoKMjAwMi0wMS0xOCAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogbGR2ZXIuYyAobGR2ZXJzaW9uKTogVXBkYXRlIHllYXIuCgoyMDAyLTAxLTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHBvL2xkLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDItMDEtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbSAoZWVsZjY0cHBjLmMsIGVlbGY2NGxwcGMuYyk6IERlcGVuZCBvbiBwcGM2NGVsZi5lbS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVtdWxwYXJhbXMvZWxmNjRwcGMuc2ggKEVYVFJBX0VNX0ZJTEUpOiBEZWZpbmUuCgkqIGVtdWx0ZW1wbC9wcGM2NGVsZi5lbTogTmV3IGZpbGUuCgoyMDAyLTAxLTE1ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIHNjcmlwdHRlbXBsL3BlLnNjOiBBZGQgc3VwcG9ydCBmb3IgY29uc3RydWN0b3IgcHJpb3JpdGllcy4KCjIwMDItMDEtMDcgIE1hcmVrIE1pY2hhbGtpZXdpY3ogIDxtYXJla21AYW1lbGVrLmdkYS5wbD4KCgkqIGVtdWxwYXJhbXMvYXZyMTIwMC5zaCAoREFUQV9TVEFSVCk6IERlZmluZSBhcyAweDYwLgoJKiBlbXVscGFyYW1zL2F2cjIzeHguc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cjQ0MzMuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cjQ0eDQuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cjg1eHguc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cm1lZ2ExMDMuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cm1lZ2ExNjEuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2F2cm1lZ2E2MDMuc2g6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGYzMmF2ci5zYzogVXNlIERBVEFfU1RBUlQgaW5zdGVhZCBvZiAweDYwLgoKMjAwMi0wMS0wOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBsZGxhbmcuYyAod2Fsa193aWxkX3NlY3Rpb24pOiBFeGNsdWRlIG9iamVjdCBmaWxlIGlmIGVuY2xvc2luZwoJYXJjaGl2ZSBpcyBleGNsdWRlZC4KCjIwMDItMDEtMDcgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGQgZXNoZWxmX25ic2QubyBhbmQgZXNobGVsZl9uYnNkLm8uCgkoZXNoZWxmX25ic2QuYyk6IE5ldyBydWxlLgoJKGVzaGxlbGZfbmJzZC5jKTogTmV3IHJ1bGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0IChzaCpsZS0qLW5ldGJzZGVsZiopOiBOZXcgdGFyZ2V0LgoJKHNoKi0qLW5ldGJzZGVsZiopOiBOZXcgdGFyZ2V0LgoJKiBlbXVscGFyYW1zL3NoZWxmLnNoOiBEb2N1bWVudCB0aGF0IHNoZWxmX25ic2Quc2ggc291cmNlcyB0aGlzIGZpbGUuCgkqIGVtdWxwYXJhbXMvc2hlbGZfbmJzZC5zaDogTmV3IGVtdWxhdGlvbi4KCSogZW11bHBhcmFtcy9zaGxlbGZfbmJzZC5zaDogTmV3IGVtdWxhdGlvbi4KCjIwMDItMDEtMDcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vZXMucG86IE5ldyBmaWxlOiBTcGFuaXNoIHRyYW5zbGF0aW9uLgoJKiBjb25maWd1cmUuaW4gKEFMTF9MSU5HVUFTKTogQWRkIGVzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAyLTAxLTA2ICBKb2huIE1hcnNoYWxsICA8am1hcnNoYWxsQGFjbS5vcmc+CgoJKiBsZC50ZXhpbmZvOiBOb3RlIHRoYXQgLS1lbWl0LXJlbG9jcyBpcyBjdXJyZW50bHkgb25seQoJaW1wbGVtZW50ZWQgZm9yIEVMRi4KCjIwMDItMDEtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X3BsYWNlX29ycGhhbik6IE1ha2UgdXNlCglvZiBiZmRfc2VjdGlvbl9saXN0X3JlbW92ZSBhbmQgYmZkX3NlY3Rpb25fbGlzdF9pbnNlcnQgbWFjcm9zLgoJKiBlbXVsdGVtcGwvcGUuZW0gKGdsZF8ke0VNVUxBVElPTl9OQU1FfV9wbGFjZV9vcnBoYW4pOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL21tby5lbSAobW1vX3BsYWNlX29ycGhhbik6IExpa2V3aXNlLgoKMjAwMi0wMS0wNCAgSmFzb24gVGhvcnBlICA8dGhvcnBlakB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3QgKHg4Nl82NC0qLW5ldGJzZCopOiBOZXcgdGFyZ2V0LgoKRm9yIG9sZGVyIGNoYW5nZXMgc2VlIENoYW5nZUxvZy0wMDAxCgwKQ29weXJpZ2h0IChDKSAyMDAyLTIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCgpDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBmaWxlLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAphcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLgoKTG9jYWwgVmFyaWFibGVzOgptb2RlOiBjaGFuZ2UtbG9nCmxlZnQtbWFyZ2luOiA4CmZpbGwtY29sdW1uOiA3NAp2ZXJzaW9uLWNvbnRyb2w6IG5ldmVyCkVuZDoK