U3VuIEphbiAyNiAyMzoyNDo1MCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIFZlcnNpb24gMi4wIG5ldCByZWxlYXNlLgoKCSogTWFrZS1kaXN0OiBEb24ndCB0YWtlIGNhcmUgZm9yIHR3byBtYWxsb2MgZGlyZWN0b3JpZXMuCgpTdW4gSmFuIDI2IDIyOjQ0OjM4IDE5OTcgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogbWNoZWNrLmg6IEFkb3B0ZWQgdG8gbmV3LW1hbGxvYy9tYWxsb2MgY2hhbmdlLgoKU3VuIEphbiAyNiAxMzozOTozMSAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL0Rpc3Q6IENvcnJlY3QgZGlzdHJpYnV0aW9uIG9mCglrZXJuZWxfKi5oIGZpbGVzLgoKCSogTWFrZS1kaXN0OiBEb24ndCBtZW50aW9uIG5ldy1tYWxsb2MgZm9yIGRpcnMgd2l0aCBoYXZlIHRvIGJlCglwcm9jZXNzZWQuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXRpbmV0L2luLmggKFNPTF9JUCk6IEFkZGVkLgoJKiBpbmV0L25ldGluZXQvdGNwLmggKFNPTF9UQ1ApOiBBZGRlZC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc29ja2V0Yml0cy5oIChTT0xfUkFXKTogQWRkZWQuCglSZXBvcnRlZCBieSBhIHN1biA8YXN1bkB6b29sb2d5Lndhc2hpbmd0b24uZWR1Pi4KClN1biBKYW4gMjYgMTg6MzU6MjkgMTk5NyAgV29sZnJhbSBHbG9nZXIgIDx3bWdsb0BkZW50Lm1lZC51bmktbXVlbmNoZW4uZGU+CgoJKiBtYWxsb2MvTWFrZWZpbGU6IFJlbW92ZSAtRE1BTExPQ19ERUJVRy4gIE5vdCB3YW50ZWQgaW4gYQoJcmVsZWFzZWQgdmVyc2lvbi4KCSogbWFsbG9jL21hbGxvYy5jOiBDaGFuZ2UgbWFsbG9jX2NoZWNrX2luaXQoKSB0bwoJX19tYWxsb2NfY2hlY2tfaW5pdCgpLiAgQ2hlY2sgZm9yIE5VTEwgaW4gY2FsbG9jKCkgd2hlbiBhIGhvb2sgaXMKCWluIHBsYWNlLiAgTWFrZSBtb3JlIHZhcmlhYmxlcyB0dW5hYmxlIHZpYSBNQUxMT0NfLi4uIGVudmlyb25tZW50Cgl2YXJpYWJsZXMuCgkqIG1hbGxvYy9tYWxsb2MuaDogQ2hhbmdlIG1hbGxvY19jaGVja19pbml0KCkgdG8KCV9fbWFsbG9jX2NoZWNrX2luaXQoKS4KClN1biBKYW4gMjYgMDU6NDE6NDIgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB2ZXJzaW9uLmggKFZFUlNJT04pOiBCdW1wIHRvIDIuMC4KCShSRUxFQVNFKTogTm93IGl0J3MgImV4cGVyaW1lbnRhbCIuCgoJKiBNYWtlZmlsZSAoc3ViZGlycyk6IENoYW5nZSAkKG1hbGxvYykgdG8gbWFsbG9jLiAgV2UgaGF2ZSBvbmx5CglvbmUgbWFsbG9jIGltcGxlbWVudGF0aW9uIGFnYWluLgoJKiBtYWxsb2MvKjogUmVtb3ZlIGZyb20gR05VIGxpYmMuCgkqIG5ldy1tYWxsb2MvKiBNb3ZlIHRvIG1hbGxvYy8uCgkqIGNvbmZpZy5tYWtlLmluIChkZWZpbmVzKTogUmVtb3ZlIEBVU0VfTkVXX01BTExPQ0AuCgkqIGNvbmZpZ3VyZS5pbjogUmVtb3ZlIC0tZW5hYmxlLW5ldy1tYWxsb2Mgb3B0aW9uIGFuZCBjaGVjayBmb3IKCW1hbGxvYyBpbXBsZW1lbnRhdGlvbiBjaG9pY2UuCgkqIG1hbGxvYy5oOiBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIGZvciB0aGUgaW1wbGVtZW50YXRpb24gdG8gdXNlCglhbnltb3JlLiAgU2ltcGx5IGluY2x1ZGUgbWFsbG9jL21hbGxvYy5oLgoJKiBtYWxsb2MvTWFrZWZpbGUgKHN1YmRpcik6IENoYW5nZSB0byBtYWxsb2MuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2NvbmZpZ3VyZS5pbjogRG9uJ3Qgc2V0IG1hbGxvYyBhbnltb3JlLgoKCSogTWFrZWZpbGU6IEFkZCBzcGVjaWFsIGdvYWwgdG8gZ2VuZXJhdGUgb25seS1NRDUgYmFzZWQgY3J5cHQKCWxpYnJhcnkuCgkqIG1kNS1jcnlwdC9NYWtlZmlsZTogTGlrZXdpc2UuCgoJKiBzdGRpby1jb21tb24vdHN0c2NhbmYuYzogRGUtQU5TSS1kZWNsZnkuICBVcGRhdGUgY29weXJpZ2h0LgoJKHJvdW5kcyk6IENoYW5nZSB0eXBlIHRvIHNpemVfdCB0byBwcmV2ZW50IHdhcm5pbmcuCgoJKiB3Y3NtYnMvYnRvd2MuYzogUmVmb3JtYXQgY29weXJpZ2h0LgoJKiB3Y3NtYnMvbWJybGVuLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvbWJzaW5pdC5jOiBMaWtld2lzZS4KCSogd2NzbWJzL21ic25ydG93Y3MuYzogTGlrZXdpc2UuCgkqIHdjc21icy9tYnNydG93Y3MuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3BjcHkuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3BuY3B5LmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NzY2F0LmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NzY21wLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NzY29sbC5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djc2NweS5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djc2NzcG4uYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3NkdXAuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3NsZW4uYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3NuY2F0LmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NzbmNweS5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djc25ydG9tYnMuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3NydG9tYnMuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3NzcG4uYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3NzdHIuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3N0b2QuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3N0b2YuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3N0b2suYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3N0b2wuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3N0b2xkLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NzdG9xLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NzdG91bC5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djc3RvdXEuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3N3aWR0aC5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djc3hmcm0uYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3RvYi5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djd2lkdGguYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3dpZHRoLmg6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd21lbWNoci5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3dtZW1jbXAuYzogTGlrZXdpc2UuCgkqIHdjc21icy93bWVtbW92ZS5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3dtZW1zZXQuYzogTGlrZXdpc2UuCgpTYXQgSmFuIDI1IDAzOjM0OjE0IDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvdGVybWJpdHMuaDogUHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlCglpbmNsdXNpb24uICBSZXBvcnRlZCBieSBhIHN1biA8YXN1bkB6b29sb2d5Lndhc2hpbmd0b24uZWR1Pi4KClNhdCBKYW4gMjUgMDI6MDU6MTkgMTk5NyAgRWlyaWsgRnVsbGVyICA8ZWlyaWtAbmV0Y29tLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2lvcGVybS5jOiBSZW5hbWUgVDJfU1BBUlNFX0JBU0UgYW5kCglUMl9ERU5TRV9CQVNFIHRvIFQyX1NQQVJTRV9NRU0gYW5kIFQyX0RFTlNFX01FTSByZXNwLgoKVGh1IEphbiAyMyAxMToxMzo0NiAxOTk3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3VzbGVlcC5jOiBOb3JtYWxpemUgdGhlIHRpbWUKCXNwZWNpZmljYXRpb24uCgpGcmkgSmFuIDI0IDE0OjMzOjQ1IDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9nZW5lcmljL3NvY2tldGJpdHMuaDogQWxzbyBtYWtlIFNPQ0tfKiBjb25zdGFudHMgYXZhaWxhYmxlCglhcyBtYWNyb3Mgc28gdGhhdCAjaWZkZWYgd29ya3MuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NvY2tldGJpdHMuaDogTGlrZXdpc2UuCgoxOTk3LTAxLTIzICBQYXVsIEVnZ2VydCAgPGVnZ2VydEB0d2luc3VuLmNvbT4KCgkqIGxvZ2luL3V0bXBfZGIuYywgbWFudWFsL3RpbWUudGV4aSwgc2hsaWItdmVyc2lvbnMsIHN1bnJwYy9ycGMvc3ZjLmgsCglzdW5ycGMvcnBjc3ZjL3NtX2ludGVyLngsIHN5c2RlcHMvZ2VuZXJpYy9hYm9ydC5jLAoJc3lzZGVwcy9saWJtLWllZWU3NTQvZV9zaW5obC5jLCBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXQvcm91dGUuaCwKCXN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL19fc2lndHJhbXBvbGluZS5TOiBTcGVsbCBmaXhlcy4KCjE5OTctMDEtMjMgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QHR3aW5zdW4uY29tPgoKCSogbWt0aW1lLmMgKG1rdGltZSk6IEludm9rZSBfX3R6c2V0LCBub3QgX190enNldF9pbnRlcm5hbCwgdG8gc2V0IHR6LAoJc28gdGhhdCB0em5hbWUgaXMgc2V0IGFzIFBPU0lYIHJlcXVpcmVzLgoKRnJpIEphbiAyNCAwMjo0OToxOCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGRpcmVudC9kaXJlbnQuaDogRGVjbGFyZSByZWFkZGlyX3IgYWxzbyB3aGVuIF9fVVNFX1BPU0lYLgoJKiBncnAvZ3JwLmg6IERlY2xhcmUgKl9yIGZ1bmN0aW9ucyBhbHNvIHdoZW4gX19VU0VfUE9TSVguCgkqIHB3ZC9wd2QuaDogTGlrZXdpc2UuCgkqIHRpbWUvdGltZS5oOiBMaWtld2lzZS4KCSogcG9zaXgvdW5pc3RkLmg6IERlY2xhcmUgdHR5bmFtZV9yIGFsc28gd2hlbiBfX1VTRV9QT1NJWC4KCSogc3RyaW5nL3N0cmluZy5oOiBEZWNsYXJlIHN0cnRva19yIGFsc28gd2hlbiBfX1VTRV9QT1NJWC4KCgkqIHN0ZGlvLWNvbW1vbi9idWc3LmM6IFVzZSB0bXBuYW0gdG8gZ2VuZXJhdGUgbmFtZXMgZm9yIHRlc3QgZmlsZXMuCgoJKiBzdGRpby1jb21tb24vdG1wbmFtLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgkqIHN0ZGlvLWNvbW1vbi90bXBuYW1fci5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N5cy9rZXJuZWxfdGVybWlvcy5oOiBQcm90ZWN0CglhZ2FpbnN0IG11bHRpcGxlIGluY2x1c2lvbi4gIEluY2x1ZGUgPHRlcm1iaXRzLmg+LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMva2VybmVsX3Rlcm1pb3MuaDogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXQvaWYuaDogVXBkYXRlIGFjY29yZGluZyB0byByZWNlbnQKCWtlcm5lbCBoZWFkZXJzLiAgUGF0Y2ggYnkgUGhpbGlwIEJsdW5kZWxsIDxwamIyN0BjYW0uYWMudWs+LgoKVGh1IEphbiAyMyAxNzo0MjowMCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL2Nsb25lLlM6IENvcnJlY3QgYXV0aG9yIGF0dHJpYnV0aW9uLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0L2lmX2FycCAoTUFYX0FERFJfTEVOKTogQWRkIGRlZmluaXRpb24uCgpUaHUgSmFuIDIzIDE0OjIwOjM0IDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdGltZS90emZpbGUuYyAoX190emZpbGVfcmVhZCk6IERvbid0IGFsbG93IGFyYml0cmFyeSBmaWxlcyB0byBiZQoJcmVhZCB3aGVuIHJ1bm5pbmcgYSBzZXR1aWQgcHJvZ3JhbS4KClRodSBKYW4gMjMgMDQ6MDY6NDIgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBNYWtlLWRpc3QgKC5QSE9OWTogZGlzdCk6IFJlbW92ZSBkdXBsaWNhdGUgZGVjbGFyYXRpb24uCgkoUkVBRE1FKTogRGVwZW5kIG9uIHZlcnNpb24uaCBub3QgdmVyc2lvbi5jLgoJKiBNYWtlZmlsZSAoUkVBRE1FKTogRGVwZW5kIG9uIHZlcnNpb24uaCBub3QgdmVyc2lvbi5jLgoKCSogTWFrZWNvbmZpZyAoaW5zdF9saWJkaXIsIGluc3Rfc2xpYmRpciwgaW5zdF9pbmNsdWRlZGlyLAoJaW5zdF9kYXRhZGlyLCBpbnN0X3pvbmVkaXIsIGluc3RfbG9jYWxlZGlyLCBpbnN0X2kxOG5kaXIsIGluc3RfYmluZGlyLAoJaW5zdF9zYmluZGlyLCBpbnN0X2luZm9kaXIsIGluc3Rfc3lzY29uZmRpcik6IE5ldyB2YXJpYWJsZXMuICBTYW1lCglhcyB2YXJpYWJsZSB3aXRob3VnaCBpbnN0XyBidXQgcHJlcGVuZGVkIHdpdGggJChpbnN0YWxsX3Jvb3QpLgoJKGxvY2FsdGltZS10aW1lKTogVXNlICQoaW5zdF9zeXNjb25mZGlyKSBub3QgJChzeXNjb25mZGlyKS4KCSogTWFrZWZpbGUgKGluc3RhbGwtb3RoZXJzKTogVXNlICQoaW5zdF9pbmNsdWRlZGlyKS4KCShnbnUvc3RhYnMuaCwgZ251L2xpYi1uYW1lcy5oKTogVXNlICQoaW5zdF9pbmNsdWRlZGlyKS4KCSogTWFrZXJ1bGVzICh0b25zIG9mIGluc3RhbGwgcnVsZXMpOiBVc2UgaW5zdF8lIHZhcmlhYmxlcy4KCSogZWxmL01ha2VmaWxlOiBMaWtld2lzZS4KCSogaHVyZC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIGludGwvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBtYW51YWwvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBwby9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN1bnJwYy9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbWFjaC9odXJkL01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdGFuZGFsb25lL2kzODYvZm9yY2VfY3B1Mzg2L01ha2VmaWxlOiBMaWtld2lzZS4KCSogdGltZS9NYWtlZmlsZTogTGlrZXdpc2UuCgoJKiBjb25maWcubWFrZS5pbjogUmV2ZXJ0IHBhdGNoIGZyb20gU2F0IEphbiAxOCAyMjoxNToyNiAxOTk3LAoJbGVhdmUgaW5zdGFsbF9yb290IGluIHBsYWNlLgoKCSogZ251LXZlcnNpb25zLmggKF9HTlVfR0VUT1BUX0lOVEVSRkFDRV9WRVJTSU9OKTogRGVmaW5lIHRvIDIuCgkqIHBvc2l4L2dldG9wdC5jIChHRVRPUFRfSU5URVJGQUNFX1ZFUlNJT04pOiBEZWZpbmUgdG8gMi4KCSogcG9zaXgvZ2V0b3B0MS5jIChHRVRPUFRfSU5URVJGQUNFX1ZFUlNJT04pOiBEZWZpbmUgdG8gMi4KCgkqIGVsZi9NYWtlZmlsZSBbeWVzPT0kKGhhcy1sZGNvbmZpZyldOiBDb3JyZWN0IGRlcGVuZGVuY2llcyBvZgoJbGRjb25maWcuCgkoQ0ZMQUdTLWRsLWxvYWQuYyk6IE5ldyB2YXJpYWJsZSwgYXZvaWQgZ2NjIHdhcm5pbmcuCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9jb25maWd1cmUuaW46IEFkZCBfTElCQ19SRUVOVFJBTlQgdG8gREVGSU5FUy4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2dldGRlbnRzLmM6IFVwZGF0ZSBjb3B5cmlnaHQuICBEZS1BTlNJLWRlY2xmeS4KCSogc3lzZGVwcy9zdHViL2dldGRlbnRzLmM6IExpa2V3aXNlLiAgQ29ycmVjdCByZXR1cm4gdmFsdWUuCgkqIHN5c2RlcHMvdW5peC9nZXRkZW50cy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvZ2V0ZGVudHMuYzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL3VuaXgvcmVhZGRpci5jOiBVcGRhdGUgY29weXJpZ2h0LgoKCSogc3lzZGVwcy91bml4L2JzZC9zb255L25ld3NvczQvTWFrZWZpbGU6IENvcnJlY3QgaWZlcSBhcmd1bWVudHMuCgkqIHN5c2RlcHMvdW5peC9ic2Qvc3VuL3N1bm9zNC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvTWFrZWZpbGU6IExpa2V3aXNlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvRGlzdDogRG9uJ3QgZGlzdHJpYnV0ZSBrZXJuZWxfdGVybWlvcy5oLAoJYnV0IHN5cy9rZXJuZWxfdGVybWlvcy5oLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9EaXN0OiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUgWyQoc3ViZGlyKT09dGVybWlvc10KCShzeXNkZXBfaGVhZGVycyk6IEFkZCBzeXMva2VybmVsX3Rlcm1pb3MuaC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgva2VybmVsX3Rlcm1pb3MuaDogTW92ZWQgdG8uLi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL2tlcm5lbF90ZXJtaW9zLmg6IC4uLmhlcmUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RjZ2V0YXR0ci5jOiBVc2UgX19rZXJuZWxfdGVybWlvcyBhbmQKCV9fS0VSTkVMX05DQ1MgaW5zdGVhZCBvZiBrZXJuZWxfdGVybWlvcyBhbmQgS0VSTkVMX05DQ1MgcmVzcC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2lvY3Rscy5oOiBOZXcgZmlsZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dldGRlbnRzLmM6IENvcnJlY3QgcHJvYmxlbXMgd2l0aCBhbGlnbm1lbnQuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N5c2NhbGxzLmxpc3Q6IFJlbW92ZSBnZXRkZW50cy4KCVJlcG9ydGVkIGJ5IEVpcmlrIEZ1bGxlciA8ZWlyaWtAbmV0Y29tLmNvbT4uCgoJKiB0aW1lL0Jhbm5lcjogUmVtb3ZlZC4gIFdyb25nIGFuZCB1bm5lY2Vzc2FyeSBpbmZvcm1hdGlvbi4gIEl0J3Mgbm93Cglpbi4uLgoJKiB0aW1lL1JFQURNRTogTmV3IGZpbGUuCgkqIHRpbWUvTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBSZW1vdmUgQmFubmVyLCBhZGQgUkVBRE1FLgoKV2VkIEphbiAyMiAxMzoxOTo1NiAxOTk3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2lvcGVybS5jIChwbGF0Zm9ybXMpOiBBZGQgU2FibGUuCgkoaW5pdF9pb3N5cyk6IFJlY29nbml6ZSAvZXRjL2FscGhhX3N5c3R5cGUgYXMgYSBmb3VyLXR1cGxlIGZvcgoJdGhlIHB1cnBvc2Ugb2Ygc3VwcG9ydGluZyBicmFuZCBuZXcgc3lzdGVtcy4KCSgqKTogVGhlIHR5cGUgb2YgaW9zeXMgdmFyaWFibGVzIHNob3VsZCBiZSBpb3N5c190LgoKMTk5Ny0wMS0yMiAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiBzdHJmdGltZS5jIChfc3RyZnRpbWVfY29weXRtKToKCU5ldyBmdW5jdGlvbiwgdG8gd29yayBhcm91bmQgU29sYXJpcyAyLjUgdHpzZXQgYnVnLgoKV2VkIEphbiAyMiAyMzowNToxNCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3ZkcHJpbnRmLmM6IENvbXBsZXRlIGRlLUFOU0ktZGVjbGZpY2F0aW9uLgoJUmVwb3J0ZWQgYnkgTWFyY3VzIEcuIERhbmllbHMgPG1hcmN1c0BzaGFubm9uLnN5c2MucGR4LmVkdT4uCgpXZWQgSmFuIDIyIDEzOjU4OjU2IDE5OTcgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogZWxmL01ha2VmaWxlIChDRkxBR1MtZGwtbG9hZC5jKTogTmV3IFZhcmlhYmxlIHRvIGtlZXAgZ2NjIHNpbGVudAoJc2luY2UgbmFtZV9jb3B5IGlzIGluaXRpYWxpemVkLgoKV2VkIEphbiAyMiAxNjo1ODoxMiAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN0ZGlvLWNvbW1vbi9NYWtlZmlsZSAodGVzdHMpOiBSZW1vdmUgc2NhbmYxMS4KCSogc3RkaW8tY29tbW9uL3NjYW5mMTEuYzogUmVtb3ZlZC4KCSogc3RkaW8tY29tbW9uL3Zmc2NhbmYuYyBSZXZlcnQgcGF0Y2ggb2YgVGh1IEphbiAxNiAyMzozOToyNSAxOTk3LgoJQWx0aG91Z2ggdGhlIENvcnJpZ2VuZHVtIDEgZGVzY3JpYmVzIHRoZSByZXN1bHQgYXMgaW1wbGVtZW50ZWQgdGhlCglldmVuIG1vcmUgcmVjZW50IEFtZW5kZW1lbnQgMSBzZWNvbmRzIHRoZSBwb3NpdGlvbiBvZiBJU08gQzoxOTkwCgl3aGVyZSB0aGUgJW4gZGlyZWN0aXZlIGhhcyBubyBlZmZlY3Qgb24gdGhlIGFzc2lnbm1lbnQgY291bnQuCgkqIHN0ZGlvLWNvbW1vbi9idWcxMC5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3NjYW5mMS5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3NjYW5mMy5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3NjYW5mMTAuYzogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi90c3RkaW9taXNjLmM6IExpa2V3aXNlLgoKCSogbmV3LW1hbGxvYy9vYnN0YWNrLmg6IERvbid0IGRlZmluZSBtYWxsb2MgdXNpbmcgYmNvcHkgaWYgbWFsbG9jCglpcyBub3QgYXZhaWxhYmxlLiAgVGhpcyBsZWFkcyB0byBwcm9ibGVtcyBzaW5jZSBiY29weSBkb2VzIG5vdAoJcmV0dXJuIGEgdmFsdWUuICBJbnN0ZWFkIGRlZmluZSBfb2JzdGFja19tZW1jcHkgYmFzZWQgb24gbWVtY3B5IG9yCgliY29weS4gIFRoaXMgbmFtZSBpc24ndCB1c2VkIG91dHNpZGUgb2JzdGFjay5oIGFuZCBzbyBubyBwcm9ibGVtcwoJZnJvbSB1c2luZyB0aGUgbWVtY3B5IGZ1bmN0aW9uIGluIGEgZmlsZSBpbmNsdWRpbmcgb2JzdGFjay5oIGNhbgoJcmVzdWx0LgoJUmVwb3J0ZWQgYnkgTWFydGluIFRyYXBwIDx0cmFwcEBpcGQuaW5mby51bmkta2FybHNydWhlLmRlPi4KClR1ZSBKYW4gMjEgMTg6MzU6NTUgMTk5NyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBtaXNjL3JlZ2V4cC5oIChjb21waWxlKTogRml4IHR5cG9zLgoKVHVlIEphbiAyMSAwMTowMTo1OSAxOTk3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9wcm9jZnMuaCAoc3RydWN0IGVsZl9wcnBzaW5mbyk6IEZpeAoJdHlwZSBvZiBwcl97cGlkLHBwaWQscGdycCxzaWR9IGZpZWxkcy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc3lzL3Byb2Nmcy5oIChzdHJ1Y3QKCWVsZl9wcnBzaW5mbyk6IExpa2V3aXNlLgoKMTk5Ny0wMS0yMSAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiBwb3NpeC9nZXRvcHQuYyAoX2dldG9wdF9pbnRlcm5hbCk6IFJldHVybiAtMSwgbm90IEVPRiwgd2hlbiBhcmdzCglhcmUgZXhoYXVzdGVkOyB0aGlzIGlzIHJlcXVpcmVkIGJ5IFBPU0lYLjIuCgkqIGNhdGdldHMvZ2VuY2F0LmMsIGRiL21ha2VkYi5jLCBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlLmMsCglsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlZGVmLmMsIG1hbnVhbC9leGFtcGxlcy9zdWJvcHQuYywKCXBvc2l4L2dldG9wdC5jLCBwb3NpeC9nZXRvcHQxLmMsIHN0ZGlvLWNvbW1vbi9idWc0LmMsCglzdW5ycGMvcnBjaW5mby5jIChtYWluKTogQ2hlY2sgZ2V0b3B0IHJldHVybiB2YWx1ZSBhZ2FpbnN0IC0xLCBub3QgRU9GLgoKVHVlIEphbiAyMSAyMzoxMDo0MCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHZlcnNpb24uaCAoVkVSU0lPTik6IEJ1bXAgdG8gMS4xMDIuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9EaXN0OiBBZGQga2VybmVsX3NpZ2FjdGlvbi5oLgoKCSogZWxmL01ha2VmaWxlOiBEb24ndCB1c2UgQ0ZMQUdTLWRsLWxvYWQuYywgYnV0IGluc3RlYWQKCUNQUEZMQUdTLWRsLWxvYWQuYyBzbyB0aGF0IGRlcGVuZGVuY2llcyBjYW4gYmUgZGV0ZXJtaW5lZCBjb3JyZWN0bHkuCgkqIGVsZi9kbC1sb2FkLmM6IEZpeCBjb21tZW50LgoKCSogdGltZS9CYW5uZXI6IE5ldyBmaWxlLgoJKiB0aW1lL01ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIEJhbm5lci4KCglVcGRhdGUgZnJvbSBBRE8gdHpjb2RlMTk5N2EgYW5kIHR6ZGF0YTE5OTdhLgoJKiB0aW1lL2FudGFyY3RpY2E6IFVwZGF0ZS4KCSogdGltZS9hdXN0cmFsaWE6IFVwZGF0ZS4KCSogdGltZS96ZHVtcC5jOiBVcGRhdGUuCgkqIHRpbWUvemljLmM6IFVwZGF0ZS4KCSogdGltZS96b25lLnRhYjogVXBkYXRlLgoKTW9uIEphbiAyMCAwODozODozMiAxOTk3ICBILkouIEx1ICA8aGpsQGdudS5haS5taXQuZWR1PgoKCSogY29uZmlnLm1ha2UuaW4gKGhhcy1sZGNvbmZpZyk6IE5ldyB2YXJpYWJsZS4KCgkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChoYXNfbGRjb25maWcpOiBOZXcgc3Vic3RpdHV0ZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2NvbmZpZ3VyZS5pbiAoaGFzX2xkY29uZmlnKTogTmV3LAoJY2hlY2sgaWYgJHNyY2Rpci9lbGYvbGRjb25maWcuYyBleGlzdHMuCgoJKiBNYWtlY29uZmlnIChyb290c2JpbmRpcik6IE5ldywgZGVmYXVsdCBhcwoJJChleGVjX3ByZWZpeCkvc2Jpbi4KCShydGxkLXZlcnNpb24taW5zdGFsbGVkLW5hbWUpOiBOZXcsIGRlZmF1bHQgYXMKCWxkLSQodmVyc2lvbikuc28uCgoJKiBNYWtlZmlsZSAoaW5zdGFsbCk6IENhbGwgYCQoY29tbW9uLW9ianBmeCllbGYvbGRjb25maWcgLWQnCglvbmx5IGlmICQoY3Jvc3MtY29tcGlsaW5nKSBpcyBubyBhbmQgJChidWlsZC1zaGFyZWQpIGlzIHllcy4KCgkqIE1ha2VydWxlcyAobWFrZS1zaGxpYi1saW5rKTogTmV3IG1hY3JvLgoJKCQoc2xpYmRpcikvbGliZm9vLnNvLiQobGliZm9vLnNvLXZlcnNpb24pKTogVXNlCgkkKG1ha2Utc2hsaWItbGluaykgZm9yIHN5bWxpbmsuCgkoaW5zdGFsbC1yb290c2JpbiwgaW5zdGFsbC1yb290c2Jpbi1ub3N1YmRpcik6IE5ldy4KCShpbnN0YWxsLW5vLWxpYmMuYS1ub3N1YmRpcik6IEFkZAoJaW5zdGFsbC1yb290c2Jpbi1ub3N1YmRpci4KCgkqIFJ1bGVzIChvdGhlcnMpOiBBZGQgJChpbnN0YWxsLXJvb3RzYmluKS4KCgkqIGNvbmZpZy5tYWtlLmluIChyb290c2JpbmRpcik6IE5ldy4KCgkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChsaWJjX2N2X3Jvb3RzYmluZGlyKTogTmV3CglzdWJzdGl0dXRlLgoKCSogZWxmL01ha2VmaWxlIChvdGhlcnMsIGluc3RhbGwtcm9vdHNiaW4pOiBOZXcsIHNldCB0bwoJbGRjb25maWcuCgkoK2xpbmspOiBOZXcgZm9yIHN0YXRpYyBsaW5raW5nLgoJKCQoc2xpYmRpcikvJChydGxkLXZlcnNpb24taW5zdGFsbGVkLW5hbWUpKTogTmV3LgoJKCQoc2xpYmRpcikvJChydGxkLWluc3RhbGxlZC1uYW1lKSk6IERlcGVuZCBvbgoJJChzbGliZGlyKS8kKHJ0bGQtdmVyc2lvbi1pbnN0YWxsZWQtbmFtZSkgYW5kIHVzZQoJJChtYWtlLXNobGliLWxpbmspIGZvciBzeW1saW5rLgoKCSogc3VucnBjL3hkci5jICh4ZHJfc3RyaW5nKTogUmV0dXJuIEZBTFNFIGlmIHNwID09IE5VTEwKCXdoaWxlIFhEUl9FTkNPREUuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hLm91dC5oOiBVc2UgI2luY2x1ZGVfbmV4dCBmb3IKCWdsaWJjIGludGVybmFscy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2NvbmZpZ3VyZS5pbiAobGliY19jdl9yb290c2JpbmRpcik6CglOZXcsIHNldCB0byAiL3NiaW4iIGlmICIkcHJlZml4IiA9PSAiL3VzciIuCgpUdWUgSmFuIDIxIDEzOjM4OjM5IDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBBZGQgZ2xpYmNidWcuaW4uCglSZXBvcnRlZCBieSBQaGlsaXAgQmx1bmRlbGwgPHBqYjI3QGNhbS5hYy51az4uCgoJKiBlbGYvTWFrZWZpbGUgKCQob2JqcGZ4KXRydXN0ZWQtZGlycy5oKTogQ3JlYXRlIGVsZi8gc3ViZGlyIGluCglidWlsZCBkaXJlY3RvcnkgaWYgbmVjZXNzYXJ5LgoJUmVwb3J0ZWQgYnkgbWFyY3VzQHNoYW5ub24uc3lzYy5wZHguZWR1IChNYXJjdXMgRy4gRGFuaWVscykuCgpUdWUgSmFuIDIxIDA0OjA1OjIwIDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdmVyc2lvbi5oIChWRVJTSU9OKTogQnVtcCB0byAxLjEwMS4KCglJbXBsZW1lbnQgLWQgYW5kIC1yIG9wdGlvbiB0byBgbGRkJyB0byBjaGVjayByZWxvY2F0aW9ucy4KCSogZWxmL2RsLWVycm9yLmM6IEFkZCBhbm90aGVyIG1ldGhvZCB0byBpbnRlcmNlcHQgZXJyb3JzLgoJKF9kbF9yZWNlaXZlX2Vycm9yKTogTmV3IGZ1bmN0aW9uLiAgSW5zdGFsbCB1c2VyIGRlZmluZWQgaGFuZGxlci4KCShyZWNlaXZlcik6IE5ldyB2YXJpYWJsZS4gIENvbnRhaW5zIHBvaW50ZXIgdG8gdXNlciBwcm92aWRlZCBoYW5kbGVyLgoJKF9kbF9zaWduYWxfZXJyb3IpOiBJZiB1c2VyIHByb3ZpZGVkIGhhbmRsZXIgaXMgaW5zdGFsbGVkIGNhbGwgdGhpcy4KCSogZWxmL2RsLWxvYWQuYyAoX2RsX21hcF9vYmplY3QpOiBXaGVuIHNoYXJlZCBvYmplY3QgaXMgbm90IGZvdW5kIGluCgl0cmFjZSBtb2RlIGluaXRpYWxpemUgYSBmZXcgbW9yZSBmaWVsZHMgc28gdGhhdCBsb29rdXAgY2FuIGFjdHVhbGx5CgloYXBwZW4gYnV0IGFsd2F5cyBmYWlscy4KCSogZWxmL2xkZC5zaC5pbjogUmV3cml0ZSBhcmd1bWVudCBoYW5kbGluZy4gIFJlY29nbml6ZSBuZXcgYXJndW1lbnRzCgl0byB0cmlnZ2VyIHJlbG9hdGlvbiB0ZXN0LiAgUmV0dXJuIHdpdGggYXBwcm9wcmlhdGUgZXJyb3IgY29kZSBpZgoJYSBmaWxlIHdhc24ndCBmb3VuZC4gIFByaW50IHdhcm5pbmcgaWYgb2JqZWN0IGlzIG5vdCBleGVjdXRhYmxlLgoJKiBlbGYvbGRkLmJhc2guaW46IExpa2V3aXNlLgoJKiBlbGYvbGluay5oIChyZWNlaXZlcl9mY3QpOiBOZXcgdHlwZS4gIFVzZWQgaW4gX2RsX3JlY2VpdmVfZXJyb3IuCgkoX2RsX3N5c2RlcF9lcnJvcik6IE5ldyBwcm90b3R5cGUuCgkoX2RsX3JlY2VpdmVfZXJyb3IpOiBOZXcgcHJvdG90eXBlLgoJKF9kbF9zaWduYWxfZXJyb3IpOiBSZW1vdmUgIF9fYXR0cmlidXRlX18gKChfX25vcmV0dXJuX18pKS4KCSogZWxmL3J0bGQuYyAoZGxfbWFpbik6IFJld3JpdGUgYXJndW1lbnQgaGFuZGxpbmcuICBNb3JlIHRoYW4KCW9uZSBhcmd1bWVudCBhbGxvd2VkLiAgUmVjb2duaXplIC0tZGF0YS1yZWxvY3MgYW5kIC0tZnVuY3Rpb24tcmVsb2NzCglhcmd1bWVudHMuCglEb24ndCBkZXRlcm1pbmUgYGxhenknIG1vZGUgZnJvbSBMRF9CSU5EX05PVyBlbnZpcm9ubWVudCB2YXJpYWJsZQoJd2hlbiBpbiB0cmFjZSBtb2RlLgoJSWYgaW4gdHJhY2UgbW9kZSBhbmQgZWl0aGVyIC0tZGF0YS1yZWxvY3Mgb3IgLS1mdW5jdGlvbi1yZWxvY3MgaXMKCWdpdmVuIHBlcmZvcm0gcmVsb2NhdGlvbi4gIFJlcG9ydCBlcnJvcnMgdXNpbmcgcHJpbnRfdW5yZXNvbHZlZAoJZnVuY3Rpb24uCgkocHJpbnRfdW5yZXNvbHZlZCk6IE5ldyBmdW5jdGlvbi4gIFByaW50IGluZm9ybWF0aW9uIGFib3V0IG1pc3NpbmcKCXN5bWJvbCBvbiBzdGRlcnIuCgkqIHN5c2RlcHMvZ2VuZXJpYy9kbC1zeXNkZXAuYyAoX2RsX3N5c2RlcF9lcnJvcik6IE5ldyBmdW5jdGlvbi4KCUxpa2UgX2RsX3N5c2RlcF9tZXNzYWdlIGJ1dCBwcmludCB0byBzdGRlcnIuCgkqIHN5c2RlcHMvbWFjaC9odXJkL2RsLXN5c2RlcC5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zb2NrYWRkcmNvbS5oOiBBZGQgZGVmaW5pdGlvbiBvZiBzYV9mYW1pbHlfdC4KCVJlcG9ydGVkIGJ5IEFuZHJlYXMgU2Nod2FiLgoJKF9fU09DS0FERFJfQ09NTU9OKTogVXNlIHNhX2ZhbWlseV90IGZvciBmYW1pbHkgbWVtYmVyLgoJKiBzeXNkZXBzL3VuaXgvYnNkL2JzZDQuNC9zb2NrYWRkcmNvbS5oOiBMaWtld2lzZS4KCglMaW51eC9TcGFyYyBzdXBwb3J0IGJ5IE1pZ3VlbCBkZSBJY2F6YS4KCSogc3lzZGVwcy9zcGFyYy9mcHVfY29udHJvbC5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3BhcmMvX19zaWd0cmFtcG9saW5lLlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zcGFyYy9icmsuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL3Byb2ZpbC1jb3VudGVyLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zcGFyYy9zaWdhY3Rpb24uYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL3NvY2tldC5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3BhcmMvc3lzY2FsbC5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3BhcmMvc3lzZGVwLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zcGFyYy9EaXN0OiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3BhcmMvTWFrZWZpbGU6IE5ldyBmaWxlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0L2lmX2FycC5oOiBEb24ndCB1c2Uga2VybmVsIGhlYWRlci4KCVByb3ZpZGUgb3duIGRlZmluaXRpb24gYmFzZWQgb24gNC40QlNEIGFuZCBMaW51eC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0L3BwcF9kZWZzLmg6IERlZmluZSBfX3UzMiBiZWZvcmUKCWluY2x1ZGluZyA8bGludXgvcHBwX2RlZnMuaD4uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tc3FfYnVmLmggKHN0cnVjdCBtc3FpZF9kcyk6IERvbid0Cgl1c2UgX19waWRfdCBzaW5jZSB0aGUga2VybmVsIG1pZ2h0IGhhdmUgYSBkaWZmZXJlbnQgc2l6ZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3NobV9idWYuaCAoc3RydWN0IHNobWlkX2RzKTogTGlrZXdpc2UuCglSZXBvcnRlZCBieSBBbmRyZWFzIFNjaHdhYi4KCgkqIHRpbWUvYXNjdGltZS5jOiBVcGRhdGUgY29weXJpZ2h0LgoJKiB0aW1lL2R5c2l6ZS5jOiBMaWtld2lzZS4KCSogdGltZS9nbXRpbWUuYzogTGlrZXdpc2UuCgkqIHRpbWUvdGltZWdtLmM6IExpa2V3aXNlLgoJKiB0aW1lL29mZnRpbWUuYzogTGlrZXdpc2UuICBEZS1BTlNJLWRlY2xmeS4KCgkqIHRpbWUvdHpzZXQuYyAoX190enNldF9pbnRlcm5hbCk6IFdoZW4gVFogZW52dmFyIGRvZXMgbm90IG5hbWUgYQoJRFNUIHRpbWV6b25lIGRvbid0IGRlZmF1bHQgdG8gb2Zmc2V0IC0xLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0L3JvdXRlLmg6IERvbid0IHVzZSBrZXJuZWwgaGVhZGVyLgoJUmVwb3J0ZWQgYnkgYSBzdW4gPGFzdW5Aem9vbG9neS53YXNoaW5ndG9uLmVkdT4uCgoJKiByZXNvbHYvTWFrZWZpbGU6IENvcnJlY3Qgc3BlbGxpbmc6IHN1YmRpcnMtZGlycyAtPiBzdWJkaXItZGlycy4KCgkqIHN5c2RlcHMvc3R1Yi9zeXN2X3NpZ25hbC5jOiBOZXcgZmlsZS4gIFN0dWIgaW1wbGVtZW50YXRpb24uCgoJKiBNYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IEFkZCBtY2hlY2suaC4KCgkqIG5pcy9NYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IEFkZCBuc3MtbmlzLmguCgoJKiBsaWJpby9NYWtlZmlsZSAocm91dGluZXMpOiBDaGFuZ2UgdmRwcmludGYgdG8gaW92ZHByaW50ZiB0byBwcmV2ZW50CglkaXN0IHByb2JsZW0uCgoJKiBuc3MvTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBBZGQgZGlnaXRzX2RvdHMuYy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L0Rpc3Q6IEFkZCBrZXJuZWxfc2lnYWN0aW9uLmguCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL0Rpc3Q6IEFkZCBzeXMvcHJvY2ZzLmguCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL0Rpc3Q6IEFkZCBjbG9uZS5TLgoJKiBuZXctbWFsbG9jL01ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIG1jaGVjay1pbml0LmMgYW5kIG1jaGVjay5oLgoKTW9uIEphbiAyMCAxNzo1NDoyOCAxOTk3ICBTdmVuIFZlcmRvb2xhZWdlICA8c2tpbW9AYnJldWdoZWwudWZzaWEuYWMuYmU+CgoJKiBtYW51YWwvZmlsZXN5cy50ZXhpOiBGaXggbGl0dGxlIHByb2JsZW0gKHJlZW50cmFudC0+cmVhZGRpcikuCgpGcmkgSmFuIDE3IDE5OjA3OjA3IDE5OTcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogY29uZmlndXJlLmluIFskZWxmPXllc106IENoZWNrIGZvciBzdXBwb3J0IG9mIC5wcmV2aW91cyBhbmQKCS5wb3BzZWN0aW9uIGluIHRoZSBhc3NlbWJsZXIuCgkqIGNvbmZpZy5oLmluOiBBZGQgSEFWRV9BU01fUFJFVklPVVNfRElSRUNUSVZFIGFuZAoJSEFWRV9BU01fUE9QU0VDVElPTl9ESVJFQ1RJVkUuCgkqIGxpYmMtc3ltYm9scy5oIChfX21ha2Vfc2VjdGlvbl91bmFsbG9jYXRlZCkgW0hBVkVfRUxGXTogRGVmaW5lCglhcHByb3ByaWF0ZSBpZiBlaXRoZXIgLnByZXZpb3VzIG9yIC5wb3BzZWN0aW9uIGlzIHN1cHBvcnRlZC4KCShsaWJjX3dhcm5pbmcpIFtIQVZFX0VMRl06IFVzZSBpdCBoZXJlLgoKU2F0IEphbiAxOCAyMjoxNToyNiAxOTk3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIE1ha2Vjb25maWcgKENGTEFHUy0uc28pOiBBZGQgLWZuby1jb21tb24gdG8gcHJldmVudCBvZGQgc29ydHMgb2YKCWVycm9ycyB0aGF0IGNhbiBvY2N1ciB3aGVuIGxpbmtpbmcgbGliYy5zby4KCk1vbiBKYW4gMjAgMDU6MjA6NDkgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBlbGYvZGwtbG9hZC5jIChvcGVuX3BhdGgpOiBXaGVuIHJ1bm5pbmcgc2V0dWlkIGRvbid0IHRyeQoJYSBkaXJlY3RvcnkgaWYgaXQgaXMgbm90IGdpdmVuIHdpdGggdGhlIGZ1bGwgbmFtZS4KCgkqIGVsZi9NYWtlZmlsZSAoYmVmb3JlLWNvbXBpbGUpOiBOZXcgdmFyaWFibGUuICBNZW50aW9uIHRydXN0ZWQtZGlycy5oLgoJKHRydXN0ZWQtZGlycy5oKTogQ29uc3RydWN0IGZpbGUgZnJvbSAkKGRlZmF1bHQtcnBhdGgpIGFuZAoJJCh1c2VyLWRlZmluZWQtdHJ1c3RlZC1kaXJzKSB2YXJpYWJsZXMuCgkqIGVsZi9kbC1sb2FkLmMgKF9kbF9tYXBfb2JqZWN0KTogUGFzcyBhZGRpdGlvbmFsIGFyZ3VtZW50IHRvIG9wZW5fcGF0aAoJd2hpY2ggaXMgTlVMTCBleGNlcHQgZm9yIHRoZSBMRF9MSUJSQVJZX1BBVEggcGFzcyBpbiB3aGljaCBjYXNlIGl0CglpcyBhIHBvaW50ZXIgdG8gdGhlIGxpc3Qgb2YgZGlyZWN0b3JpZXMgZnJvbSB0aGUgdHJ1c3RlZC1kaXJzLmgKCWZpbGUuCgkob3Blbl9wYXRoKTogQWNjZXB0IGFkZGl0aW9uYWwgYXJndW1lbnQgd2l0aCBsaXN0IG9mIHRydXN0ZWQgZGlycy4KCVdoZW4gcnVubmluZyBzZXR1aWQgYW5kIGEgbGlzdCBvZiB0cnVzdGVkIGRpcnMgaXMgZ2l2ZW4gb25seSB1c2UKCXRob3NlIHdoaWNoIGFyZSBtZW50aW9uZWQgaW4gdGhlIGxpc3QuCgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogRG9uJ3QgcmVqZWN0IHdob2xlIExEX0xJQlJBUllfUEFUSCB3aGVuCglydW5uaW5nIHNldHVpZC4gIEluc3RlYWQgYWNjZXB0IGVudHJpZXMgd2hpY2ggZG8gbm90IGNvbnRhaW4gYSAnLycuCgoJKiBNYWtlY29uZmlnOiBDb3JyZWN0IGNvbW1lbnQgYWJvdXQgKyhkZWZhdWx0X2NmbGFncykuCgpNb24gSmFuIDIwIDA1OjExOjE0IDE5OTcgIEhydm9qZSBOaWtzaWMgIDxobmlrc2ljQHNyY2UuaHI+CgoJKiB0aW1lL3N0cnB0aW1lLmMgKHJlY3Vyc2l2ZSk6IFVzZSAmJiBub3QgfHwgdG8gdGVzdCBmb3IgdmFsaWQKCWFyZ3VtZW50LgoKTW9uIEphbiAyMCAwNTowNjo1MCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGVsZi9sZGQuc2guaW46IEV4aXQgd2l0aCB2YWx1ZSAxIGlmIGFuIGVycm9yIG9jY3VyZWQuCgkqIGVsZi9sZGQuYmFzaC5pbjogTGlrZXdpc2UuCgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogRG8gbm90IGFsd2F5cyBpZ25vcmUgTERfUFJFTE9BRCB3aGVuIHRoZQoJYmluYXJ5IHJ1bnMgc2V0dWlkLiAgSXQgaXMgc2F2ZSB0byB1c2UgdGhvc2UgZW50cmllcyB3aGljaCBkbyBub3QKCWNvbnRhaW4gYSAnLycuICBUaGlzIGlzIGNvbXBhdGlibGUgd2l0aCBTb2xhcmlzLTIuCgpNb24gSmFuIDIwIDAzOjAyOjUwIDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZS1kaXN0OiBVcGRhdGUgYW5kIHJlZm9ybWF0IGNvcHlyaWdodC4KCSogTWFrZWNvbmZpZzogTGlrZXdpc2UuCgkqIGFzc2VydC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIGJhcmUvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBjdHlwZS9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIGRpcmVudC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIGdtb24vTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBnbnVsaWIvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBncnAvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBodXJkL01ha2VmaWxlOiBMaWtld2lzZS4KCSogaW50bC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIG1hY2gvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBtYWxsb2MvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBtYW51YWwvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBtYXRoL01ha2VmaWxlOiBMaWtld2lzZS4KCSogcG8vTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBwd2QvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiByZXNvdXJjZS9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHNldGptcC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHNvY2tldC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN0cmluZy9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN1bnJwYy9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dudS9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUvc3dpdGNoL01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9zd2l0Y2gvNjg4ODEtc3cuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUvc3dpdGNoL3N3aXRjaC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy9odXJkL01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zcGFyYy9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3RhbmRhbG9uZS9pOTYwL25pbmR5OTYwL01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdGFuZGFsb25lL202OGsvbTY4MDIwL212bWUxMzYvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvY29tbW9uL01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9pcml4NC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3NjbzMuMi9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3N5c3Y0L01ha2VmaWxlOiBMaWtld2lzZS4KCSogc3lzZGVwcy92YXgvTWFrZWZpbGU6IExpa2V3aXNlLgoJKiBzeXN2aXBjL01ha2VmaWxlOiBMaWtld2lzZS4KCSogd2NzbWJzL01ha2VmaWxlOiBMaWtld2lzZS4KCSogd2N0eXBlL01ha2VmaWxlOiBMaWtld2lzZS4KCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBPYmplY3RzIGluIExEX1BSRUxPQUQgZW52aXJvbm1lbnQgdmFyaWFibGUKCWFyZSBzZXBhcmF0ZWQgYWNjb3JkaW5nIHRvIFN1biBkb2NzIGJ5IHdoaXRlIHNwYWNlIG5vdCBjb2xvbi4KCgkqIGxvY2FsZS9DLXRpbWUuYyAoX25sX0NfTENfVElNRSk6IFVzZSBlbXB0eSBzdHJpbmcgdG8gaW5pdGlhbGl6ZQoJZmllbGRzIHdoaWNoIGFyZSBub3QgZGVmaW5lZCBmb3IgdGhlIEMgbG9jYWxlLgoKCSogc3lzZGVwcy9tNjhrL2ZwdS9zd2l0Y2gvTWFrZWZpbGU6IERvbid0IHVzZSBhbnNpZGVjbC5oIGluIGNvbnN0cnVjdGVkCglmaWxlcy4KCSogc3lzZGVwcy9tNjhrL2ZwdS9zd2l0Y2gvNjg4ODEtc3cuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUvc3dpdGNoL3N3aXRjaC5jOiBMaWtld2lzZS4KClN1biBKYW4gMTkgMTk6NDM6MzEgMTk5NyAgQW5kcmVhcyBKYWVnZXIgIDxhakBhcnRodXIucGZhbHouZGU+CgoJKiB0aW1lL3N0cnB0aW1lLmM6IFByb3ZpZGUgcHJvdG90eXBlIGZvciBzdHJwdGltZV9pbnRlcm5hbC4KClN1biBKYW4gMTkgMjM6NDY6MjcgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBnbGliY2J1Zy5pbjogV2UgZG9uJ3QgZ3VhcmFudGVlIGNvbmZpZGVudGlhbCBoYW5kbGluZy4gIFNldAoJZmllbGQgdG8gYWx3YXlzIGNvbnRhaW4gYG5vJy4KClN1biBKYW4gMTkgMjE6Mjg6MDEgMTk5NyAgUGhpbGlwcGUgRGUgTXV5dGVyICA8cGhkbUBpbmZvLnVjbC5hYy5iZT4KCgkqIGludGwvZXhwbG9kZW5hbWUuYzogSW5jbHVkZSBzeXMvdHlwZXMuaC4KCSogaW50bC9sMTBuZmxpc3QuYzogTGlrZXdpc2UuCgpTYXQgSmFuIDE4IDIyOjE1OjI2IDE5OTcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogY29uZmlnLm1ha2UuaW4gKGluc3RhbGxfcm9vdCk6IE5ldyB2YXJpYWJsZSB0byBtYWtlIGl0IGVhc3kgdG8KCWluc3RhbGwgZ2xpYmMgc29tZXdoZXJlIG90aGVyIHRoYW4gLy4KCgkqIHNobGliLXZlcnNpb25zOiBhbHBoYS0qLWxpbnV4LSogbGliYz02LjEuCgoJU2luY2Ugc2lnc2V0X3Qgbm8gbG9uZ2VyIGZpdHMgaW4gYSByZWdpc3Rlciwgd2UgY2FuJ3QgcGFzcyBpbiB0aGUKCXRocmVhZCdzIGluaXRpYWwgbWFzayBzbyBlYXNpbHkuICBUYWtlIHRoaXMgb3Bwb3J0dW5pdHkgdG8gc2ltcGxpZnkKCXRoZSBjbG9uZSBpbXBsZW1lbnRhdGlvbiBieSBvbmx5IGFjY2VwdGluZyBhIHNpbmdsZSB2b2lkKiBhcmd1bWVudC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2Nsb25lLlM6IE9ubHkgdGFrZSBvbmUgYXJndW1lbnQuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvY2xvbmUuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvY2xvbmUuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwYXJjL2Nsb25lLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zY2hlZGJpdHMuaDogVXBkYXRlIGNsb25lIHByb3RvdHlwZXMuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9pb2N0bC10eXBlcy5oOiBSZW1vdmUuCglEZWZhdWx0IExpbnV4IHZlcnNpb24gc2hvdWxkIGJlIHN1ZmZpY2llbnQuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zaWdwcm9jbWFzay5jOiBUaGUgb3NmX3NpZ3Byb2NtYXNrCglzeXN0ZW0gY2FsbCB3YW50cyB0aGUgc2lnc2V0IGRlcmVmZXJlbmNlZC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N5c2NhbGxzLmxpc3Q6IEFkZCBlbnRyaWVzIGZvcgoJX19zeXNjYWxsX3VzdGF0IGFuZCBfX3N5c2NhbGxfeG1rbm9kLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS94bWtub2QuYzogSW5jbHVkZSBzeXMvc3lzbWFjcm9zLmguCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaWdzZXQuaDogVXNlIGxvbmdzIGluc3RlYWQgb2YgaW50cy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Rjc2V0YXR0ci5jOiBGaXggcG9pbnRlciBkZXJlZmVyZW5jZXMuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zaWdzdXNwZW5kLmM6IEFkZCBjb21tZW50IGFib3V0CglkZXBlbmRlbmN5IHRvIGtlcm5lbCB0eXBlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvdGVybWJpdHMuaDogQ29ycmVjdCBjb21tZW50LgoKU3VuIEphbiAxOSAwNDozODoyMCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZy5tYWtlLmluIChoYXZlLWtzaCwgS1NIKTogTmV3IHZhcmlhYmxlcy4gIFdpbGwgYmUgZmlsbGVkCglpbiBieSBjb25maWd1cmUuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHRlc3QgZm9yIGtzaCBsaWtlIHNoZWxsIChwcmVmZXIgYmFzaCkuCgkqIHRpbWUvTWFrZWZpbGUgKHRlc3RzKTogRGVwZW5kIG9uIGluc3RhbGwtdGVzdC1kYXRhLgoJKGRpc3RyaWJ1dGUpOiBBZGQgc2ltcGxlYmFja3cuCgkoZ2VuZXJhdGVkLWRpcnMpOiBOZXcgdmFyaWFibGUuCglbJChoYXZlLWtzaCk9PXllc10gKGluc3RhbGwtb3RoZXJzKTogQWRkIGlzbzMxNjYudGFiIGFuZCB6b25lLnRhYi4KCShpbnN0YWxsLWJpbik6IEFkZCB0enNlbGVjdC4KCShpbnN0YWxsLXRlc3QtZGF0YSk6IEluc3RhbGwgdGhlIHpvbmVpbmZvIGZpbGVzIHdoaWNoIGFyZSBuZWVkZWQKCWZvciB0aGUgdGVzdCBjYXNlIGluIHRoZSBidWlsZCBkaXJlY3RvcnkuCgkodGVzdC10ei1FTlYpOiBOZXcgdmFyaWFibGUuICBDYWxsIHRlc3QtdHogcHJvZ3JhbSB1c2luZyBkYXRhIGluCglidWlsZCBkaXJlY3RvcnkuCgkqIHRpbWUvc2ltcGxlYmFjazogTmV3IGZpbGUuCgkqIHRpbWUvdGVzdC10ei5jOiBQcmV0dHkgcHJpbnQuCgkqIHRpbWUvdHpmaWxlLmM6IFVzZSB2YWx1ZSBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZSBUWkRJUiBhcyBkaXJlY3RvcnkKCXRvIGxvb2sgZm9yIHpvbmUgaW5mbyBmaWxlcy4KCWRvbid0IGxldCBzZWFyY2ggZm9yIERTVCBkYXRhIGRlc3Ryb3kgYWxyZWFkeSBmb3VuZCB2YWx1ZXMuCgkqIHRpbWUvdHpzZWxlY3Qua3NoOiBVc2UgQEtTSEAgYW5kIEBUWkRJUkAgdG8gYmUgc3Vic3RpdHV0ZWQgd2hlbgoJaW5zdGFsbGluZy4KCSogdGltZS90enNldC5jIChfX3R6c2V0X2ludGVybmFsKTogQXZvaWQgZnJlZWluZyBzdHJpbmcgdHdpY2UuCglTZXQgRFNUIHpvbmUgbmFtZSB0byBub3JtYWwgem9uZSBuYW1lIGlmIG5vIGluZm9ybWF0aW9uIGlzIHByb3ZpZGVkLgoKCSogdGltZS9ta3RpbWUuYyAobWt0aW1lKTogQ2FsbCBfX3R6c2V0X2ludGVybmFsIHRvIHVzZSBjdXJyZW50Cgl2YWx1ZSBvZiBUWi4KCgkqIE1ha2VydWxlcyAoY29tbW9uLWNsZWFuKTogUmVtb3ZlICQoZ2VuZXJhdGVkLWRpcnMpIGluY2x1c2luZyBjb250ZW50LgoKCSogZ2xpYmNidWcuaW46IEZpeCBzZXZlcmFsIGJ1Z3MuICBSZXBvcnRlZCBieSBzZXZlcmFsIHBlb3BsZS4KCgkqIGVsZi9NYWtlZmlsZTogQ29ycmVjdCBkZXBlbmRlY2llcyBmb3IgJChvYmpwZngpbGRkLgoKCSogaW5ldC9uZXRpbmV0L2lwLmg6IERlZmluZSBJUFRPU19MT1dDT1NUIGFuZCBJUFRPU19NSU5DT1NULgoKCSogbG9jYWxlL0MtdGltZS5jOiBVcGRhdGUgY29weXJpZ2h0LgoJKiBsb2NhbGUvbG9jYWxlaW5mby5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9ic2Q0LjQvZGlyZW50cnkuaDogTGlrZXdpc2UuCgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtdGltZS5jICh0aW1lX2ZpbmlzaCk6IENvcnJlY3QgbWVzc2FnZSBzdHJpbmcuCgkqIGxvY2FsZS9wcm9ncmFtcy9saW5lcmVhZGVyLmMgKGxyX3Rva2VuKTogVXNlIGNvcnJlY3RseSBgbnVtYmVyJwoJbm90IGBkaWdpdCcgaW4gbWVzc2FnZSBzdHJpbmcuCgoJKiBzdGRsaWIvc3RydG9sLmMgW1VOU0lHTkVEXTogRG9uJ3QgcHVudCBpbW1lZGlhdGVseSB3aGVuIGAtJyBpcwoJc2Vlbi4gIEluc3RlYWQgcmV0dXJuIFVMT05HX01BWCBhbmQgc2V0IEVSQU5HRS4KCSogc3RkbGliL3RzdC1zdHJ0b2wuYzogQ29ycmVjdCB0ZXN0IHRvIHJlZmxlY3QgYWJvdmUgY2hhbmdlLgoKU3VuIEphbiAxOSAwMzoyMjozMCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tdGlvLmg6IERvbid0IHVzZSA8bGludXgvbXRpby5oPi4KCVdlIG11c3Qgbm90IHVzZSA8bGludXgvcG9zaXhfdHlwZXMuaD4uCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvaXBjX2J1Zi5oOiBEb24ndCB1c2UgX19rZXJuZWxfKiB0eXBlcwoJc2luY2Ugd2UgbXVzdCBub3QgdXNlIDxsaW51eC9wb3NpeF90eXBlcy5oPi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3Byb2Nmcy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc3lzL2lwY19idWYuaDogTmV3IGZpbGUuICBTaW1pbGFyCgl0byBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvaXBjX2J1Zi5oLCBidXQgdXNlIGFscGhhIHJlbGF2ZW50Cgl0eXBlcy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc3lzL3Byb2Nmcy5oOiBOZXcgZmlsZS4gIFNpbWlsYXIKCXRvIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9wcm9jZnMuaCwgYnV0IHVzZSBhbHBoYSByZWxhdmVudAoJdHlwZXMuCgpTdW4gSmFuIDE5IDAxOjQ4OjIwIDE5OTcgIEguSi4gTHUgIDxoamxAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2V4cC5TOiBDb3JyZWN0IGNvbXB1dGF0aW9uIG9mIGZyYWN0aW9uYWwKCXBhcnQuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfZXhwZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9leHBsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2V4cG0xLlM6IENvcnJlY3QgY29tcHV0YXRpb24gb2YgZnJhY3Rpb25hbAoJcGFydC4gIFRha2UgY2FyZSBvZiBhZGRpdGlvbmFsIHZhbHVlIGxlZnQgb24gc3RhY2sgYnkgZnNjYWxlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2V4cG0xZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19leHBtMWwuUzogTGlrZXdpc2UuCgpGcmkgSmFuIDE3IDE3OjQ1OjMyIDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogcG9zaXgvZ2V0b3B0LmM6IENoYW5nZSBhbGwgZGlyZWN0IHVzYWdlcyBvZiBgZ2V0dGV4dCcgdG8gYF8nLgoKCSogc3lzZGVwcy9nZW5lcmljL3N5c2Qtc3RkaW8uYyAoX19zdGRpb19yZW9wZW4pOiBBZGQgbWlzc2luZwoJcGFyYW1ldGVyLgoJUmVwb3J0ZWQgYnkgSGFybWFuaml0IFNpbmdoIDxoYXJtYW5AbmV0ZWFydGguaWl0ZC5lcm5ldC5pbj4uCgpUaHUgSmFuIDE2IDIzOjM5OjI1IDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RkaW8tY29tbW9uL01ha2VmaWxlICh0ZXN0cyk6IEFkZCBzY2FuZjExLgoJKiBzdGRpby1jb21tb24vc2NhbmYxMS5jOiBOZXcgZmlsZS4KCSogc3RkaW8tY29tbW9uL3Zmc2NhbmYuYyAoX192ZnNjYW5mKTogSW5jcmVtZW50IGBkb25lJyB3aGVuICVuCgl3YXMgcHJvY2Vzc2VkIGFuZCB2YWx1ZSBpcyBub3Qgc3VwcHJlc3NlZC4KCSogc3RkaW8tY29tbW9uL2J1ZzEwLmM6IENvcnJlY3QgdGVzdCB0byBleHBlY3QgJW4gaW5jcmVtZW50IHRoZQoJcmV0dXJuIHZhbHVlIG9mIHNjYW5mLgoJKiBzdGRpby1jb21tb24vc2NhbmYxLmM6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vc2NhbmYzLmM6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vc2NhbmYxMC5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3RzdGRpb21pc2MuYzogTGlrZXdpc2UuCgoJKiB0aW1lL3N0cnB0aW1lLmM6IEFkZCBsb3RzIG9mIGNvbmRpdGlvbmFsIGNvbXBpbGluZyB0byBlbmFibGUgdXNlCglvdXRzaWRlIGdsaWJjLiAgV2hlbiB1c2VkIGluIGdsaWJjLCBtYWtlIHN1cmUgQyBsb2NhbGUgZm9ybWF0CglzdHJpbmdzIHdpbGwgYWx3YXlzIGJlIHJlY29nbml6ZWQuCgpTYXQgSmFuIDExIDE4OjUzOjQ3IDE5OTcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3N5c21hY3Jvcy5oIChtYWpvciwgbWlub3IsIG1ha2VkZXYpOgoJRml4IGRlZmluaXRpb25zIHNvIHRoYXQgdGhleSB3b3JrIHdpdGggX19rZXJuZWxfZGV2X3QuCgpTYXQgSmFuIDExIDE0OjI0OjEwIDE5OTcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgva2VybmVsX3NpZ2FjdGlvbi5oLAoJc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEva2VybmVsX3NpZ2FjdGlvbi5oLAoJc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2lnYWN0aW9uLmM6IE5ldyBmaWxlcy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbHMubGlzdDogQWRkIHNfc2lnYWN0aW9uLgoKU3VuIEphbiAxMiAxNToyMjozMyAxOTk3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGxpYmMtc3ltYm9scy5oIChsaW5rX3dhcm5pbmcpOiBNYWtlIHN1cmUgdGhhdCB0aGUgLmdudS53YXJuaW5nCglzZWN0aW9uIGlzIG5vdCBhbGxvY2F0ZWQuCglVcGRhdGUgYW5kIHJlZm9ybWF0IGNvcHlyaWdodC4KClN1biBKYW4gMTIgMTI6MTk6MjggMTk5NyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBlbGYvTWFrZWZpbGUgKCQob2JqcGZ4KWxkZCk6IEZpeCBkZXBlZGVuY3kgbGlzdC4KClNhdCBKYW4gMTEgMTU6MTE6MjYgMTk5NyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvTWFrZWZpbGUgKCQoY29tbW9uLW9ianBmeClzeXNkLXN5c2NhbGxzKTogRml4Cgljb21tYW5kIHNvIHRoYXQgaXQgd29ya3MgaW4gc3ViZGlyZWN0b3JpZXMuCgpXZWQgSmFuICA4IDIyOjA3OjU4IDE5OTcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXNjYWxscy5saXN0OiBBZGQgc19nZXRncm91cHMgYW5kCglzX3NldGdyb3Vwcy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNjYWxscy5saXN0OiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9nZXRncm91cHMuYywKCXN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvc2V0Z3JvdXBzLmMsCglzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2dldGdyb3Vwcy5jLAoJc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zZXRncm91cHMuYzogTmV3IGZpbGVzLgoKV2VkIEphbiAgOCAxOTo0Mjo1OSAxOTk3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2VmaWxlIChjb25maWcuc3RhdHVzKTogRGVsZXRlIGJvZ3VzIHJ1bGUuCgkoJChvYmpwZngpZ2xpYmNidWcpOiBSZW5hbWVkIGZyb20gcGxhaW4gYGdsaWJjYnVnJywgZGVwZW5kIG9uCgljb25maWcuc3RhdHVzIGluIGJ1aWxkIGRpcmVjdG9yeSwgZml4IGNvbW1hbmQgdG8gY2hhbmdlIHRvIGJ1aWxkCglkaXJlY3RvcnkuCgkqIE1ha2Vjb25maWcgKCQoY29tbW9uLW9ianBmeCljb25maWcuc3RhdHVzKTogRGVwZW5kIG9uIHZlcnNpb24uaC4KClRodSBKYW4gIDkgMDg6NDc6NTQgMTk5NyAgQW5kcmVhcyBKYWVnZXIgIDxhakBhcnRodXIucGZhbHouZGU+CgoJKiBnbGliY2J1Zy5pbiAod2hpbGUpOiBXZSB0ZXN0IGZvciBmb3VyIGFuZCBub3QgZml2ZSBjb25kaXRpb25zLAoJc2V0IE1BSUxfQUdFTlQgaW5zdGVhZCBvZiBSTUFJTCwgZmlsdGVyIHNwYWNlcyBhbmQgdGFicy4KClRodSBKYW4gMTYgMjI6MDA6MjcgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBtaXNjL3N5c2xvZy5jOiBEb24ndCBkZWZpbmUgY2FuY2VsX2hhbmRsZXIgaWYgX0xJQkNfUkVFTlRSQU5UCglpcyBub3QgZGVmaW5lZC4gIFJlcG9ydGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKVGh1IEphbiAgOSAwODo0Nzo1NCAxOTk3ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIG5ldy1tYWxsb2MvbWFsbG9jLmMgKF9fTUFMTE9DX1ApOiBkZWZpbmUgY2FsbCB0byBwdGhyZWFkCglpbml0aWFsaXplciBvbmx5IGlmIE5PX1RIUkVBRFMgaXMgbm90IGRlZmluZWQuCgpXZWQgSmFuICA4IDIxOjI4OjU4IDE5OTcgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYzogQ2xlYW4tdXA6IGRlbGV0ZSB1bm5lY2Vzc2FyeSBpbmNsdWRlcwoJYW5kIHZhcmlhYmxlcy4KClRodSBKYW4gMTYgMjE6NTA6MjcgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBpbmV0L2FycGEvaW5ldC5oOiBJbmNsdWRlIDxuZXRpbmV0L2luLmg+IHRvIGdldCBzdHJ1Y3QgaW5fYWRkcgoJZGVmaW5lZC4KClR1ZSBKYW4gIDcgMTc6Mjk6NTkgMTk5NyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBNYWtlcnVsZXMgKExETElCUy1jLnNvKTogTmV3IHZhcmlhYmxlLgoKVHVlIEphbiAgNyAxOToyMjowMCAxOTk3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2VmaWxlICgkKGluY2x1ZGVkaXIpL2dudS9saWItbmFtZXMuaCk6IERlZmluZSB0aGUgbGlicmFyeQoJbmFtZXMgYXMgc3RyaW5ncywgbm90IGFzIHNlcXVlbmNlIG9mIHRva2VucyB0aGF0IG1heSBmYWxsIGFwYXJ0LgoKRnJpIEphbiAxMCAxNDowODo0MSAxOTk3ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBmbWguZnJvYi5jb20+CgoJKiB0aW1lL3R6ZmlsZS5jIChfX3R6ZmlsZV9yZWFkKTogQ2hlY2sgZm9yIGJvZ3VzIHR5cGUgYW5kIHpvbmUgbmFtZQoJaW5kaWNlcyBpbiBkYXRhIGZpbGUgYW5kIHB1bnQsIHNvIGEgYm9ndXMgZmlsZSBjYW4ndCBjcmFzaCB1cy4KClRodSBKYW4gMTYgMjA6Mjk6MTUgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB2YWx1ZXMuaCBbX19VU0VfTUlTQ106IERlZmluZSBCSVRTUEVSQllURS4KCkZyaSBKYW4gMTcgMTQ6MTY6MjggMTk5NyAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN0ZGlvL3ZkcHJpbnRmLmM6IE1vdmVkIGZpbGUgdG8gLi4uCgkqIHN5c2RlcHMvcG9zaXgvdmRwcmludGYuYzogSGVyZS4gIERlLWFuc2lkZWNsaWZpY2F0ZS4KCSogc3lzZGVwcy9zdHViL3ZkcHJpbnRmLmM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC92ZHByaW50Zi5jOiBOZXcgZmlsZS4KClRodSBKYW4gIDkgMTU6NTk6MzUgMTk5NyAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3Bvc2l4X29wdC5oOiBOZXcgZmlsZS4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3NpZ3dhaXQuYyAoc2lnd2FpdCk6IERvbid0IGFmZmVjdCBzaWduYWwgbWFzay4KCgkqIHN5c2RlcHMvdW5peC9ic2QvdGNzZW5kYnJrLmMgKHRjc2VuZGJyZWFrKTogRmluaXNoCglkZWFuc2lkZWNsaWZpY2F0aW9uLgoKCSogc3lzZGVwcy9tYWNoL2xpYmMtbG9jay5oOiBBZGQga2x1ZGdlcyB0byBwcmV0ZW5kIHRvIGltcGxlbWVudAoJcmVjdXJzaXZlIGxvY2tzLgoKVHVlIEphbiAgNyAwOTo0ODoxNSAxOTk3ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIHNpZ25hbC9zaWdlbXB0eS5jIChzaWdlbXB0eXNldCk6IENvcnJlY3QgdHlwbzogRW1wdHkgc2V0IHNob3VsZAoJaGF2ZSBhbGwgYml0cyB6ZXJvLgoKVHVlIEphbiAgNyAyMzo0NDozOSAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGluZXQvZ2V0aHN0YnlubS5jOiBJbmNsdWRlIGFkZGl0aW9uYWwgaGVhZGVycyBmb3IgYWRkaXRpb25hbAoJY29kZSBpbiBuc3MvZGlnaXRzX2RvdHMuYy4KCSogaW5ldC9nZXRoc3RieW5tX3IuYzogTGlrZXdpc2UuCgkqIGluZXQvZ2V0aHN0YnlubTIuYzogTGlrZXdpc2UuCgkqIGluZXQvZ2V0aHN0YnlubTJfci5jOiBMaWtld2lzZS4KCSogbnNzL2RpZ2l0c19kb3RzLmM6IE5ldyBmaWxlLiAgSGFuZGxlIGRvdHRlZCBwYWlyIG5vdGF0aW9uIGZvcgoJZ2V0aHN0YnlubSBmdW5jdGlvbnMuCgkqIG5zcy9nZXRYWGJ5WVkuYzogSW5jbHVkZSBkaWdpdHNfZG90cy5jIHRvIGdldCBleHRyYSBjb2RlIGZvcgoJaGFuZGxpbmcgZG90dGVkIHBhaXIgbm90YXRpb24uCgkqIG5zcy9nZXRYWGJ5WVlfci5jOiBMaWtld2lzZS4KCVBhdGNoZXMgYnkgSEogTHUuCgoJKiByZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jOiBEb24ndCBoYW5kbGUgZG90dGVkIHBhaXIgbm90YXRpb24uCgoJKiBpby9nZXR3ZC5jOiBPcHRpbWl6ZWQgYSBiaXQuCgoJKiBzaWduYWwvc2lnbmFsLmg6IEFsd2F5cyBkZWNsYXJlIF9fc3lzdl9zaWduYWwuCgoJKiBzeXNkZXBzL2dlbmVyaWMvc2V0ZW52LmM6IEFkZCBzb21lIHBvcnRhYmlsaXR5IGNvZGUuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9mY250bGJpdHMuaDogVXBkYXRlIGNvcHlyaWdodC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2ZjbnRsYml0cy5oOiBBZGQgZGVmaW5pdGlvbnMgZnJvbSBrZXJuZWwKCXRvIGF2b2lkIHVzaW5nIGtlcm5lbCBoZWFkZXJzLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9mY250bGJpdHMuaDogTmV3IGZpbGUuICBBbHBoYQoJc3BlY2lmaWMgdmVyc2lvbi4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3Q6IEFkZCBzeXNfbWtub2QuICBEb24ndAoJbWFyayBzaWdyZXR1cm4gYXMgRVhUUkEuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC91c3RhdC5jOiBEZWNsYXJlIF9fc3lzY2FsbF91c3RhdC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvdXN0YXQuYzogTmV3IGZpbGUuICBBbHBoYSB2ZXJzaW9uLgoKVHVlIEphbiAgNyAwOTo0ODoxNSAxOTk3ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIGlvL2Z0cy5jIChmdHNfYWxsb2MpOiBBZGQgY29uc3QgdG8gc2Vjb25kIHBhcmFtZXRlciBvZiBmdW5jdGlvbi4KCgkqIGlvL01ha2VmaWxlOiBDaGFuZ2UgQ0ZMQUdTLWZ0cy5jIGFuZCBkZWZpbmUgQ0ZMQUdTLWZ0dy5jIHRvCglwcmV2ZW50IHdhcm5pbmdzLgoKCSogc2lnbmFsL3NpZ2ZpbGxzZXQuYzogSW5jbHVkZSA8c3RyaW5nLmg+IGZvciBtZW1zZXQgZGVjbGFyYXRpb24uCgpUdWUgSmFuICA3IDExOjE0OjMyIDE5OTcgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL2dlbmVyaWMvc2V0ZW52LmM6IEZpeCBwb3J0YWJpbGl0eSBwcm9ibGVtcy4KClR1ZSBKYW4gIDcgMDI6MTA6MTcgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBwb3NpeC9nZXRvcHQuYyAoX2dldG9wdF9pbnRlcm5hbCk6IERvbid0IHJlc2V0IF9fZ2V0b3B0X2luaXRpYWxpemVkCglhZnRlciB0aGUgbGFzdCBvcHRpb24gd2FzIHNlZW4uCgpNb24gSmFuICA2IDE1OjMwOjIxIDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZWxmL2VsZi5oIChEVF9FWFRSQU5VTSk6IFNldCB0byAzIHNpbmNlIDB4N2ZmZmZmZmQgaXMgdXNlZC4KCk1vbiBKYW4gIDYgMTM6NTc6MDUgMTk5NyAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBpby9mdHcuYzogQWRkIGBjb25zdCcgdG8gc2Vjb25kIHBhcmFtZXRlciBvZiBmdW5jdGlvbiBnaXZlbiBhcwoJc2Vjb25kIHBhcmFtZXRlciB0byBmdHcuCgkqIGlvL2Z0dy5oOiBMaWtld2lzZSBmb3IgcHJvdG90eXBlLgoJUmVwb3J0ZWQgYnkgUm9uYWxkIEYuIEd1aWxtZXR0ZSA8cmZnQG1vbmtleXMuY29tPi4KClRodSBKYW4gIDIgMjM6NDQ6MzkgMTk5NyAgUGhpbGlwIEJsdW5kZWxsICA8cGpiMjdAY2FtLmFjLnVrPgoKCSogaW5ldC9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBuZXRpbmV0L2lwLmguCgkqIGluZXQvbmV0aW5ldC9pcC5oOiBOZXcgZmlsZSwgY29udGFpbnMgQlNEIGRlZmluaXRpb25zIGZvciBzdHJ1Y3QKCWlwIGFuZCBmcmllbmRzLgoKRnJpIEphbiAgMyAyMzoxNzoxMSAxOTk3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN0cmluZy9zdHJpbmcuaCAoc3Rybmxlbik6IEFkZCBjYXN0IGZvciBDKysuCgpNb24gSmFuICA2IDAzOjMxOjQ2IDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZWZpbGUgKGluc3RhbGwtYmluKTogRGVmaW5lIGFzIGdsaWJjYnVnIHRvIGluc3RhbGwgc2NyaXB0LgoJKGdsaWJjYnVnKTogTmV3IHJ1bGVzLiAgQ3JlYXRlIGZyb20gZ2xpYmNidWcuaW4uCgkqIGNvbmZpZ3VyZS5pbiAoQUNfT1VUUFVUKTogR2VuZXJhdGUgZ2xpYmNidWcgc2NyaXB0LgoJKiBnbGliY2J1Zy5pbjogTmV3IGZpbGUuCgkqIHZlcnNpb24uYzogTWVudGlvbiBnbGliY2J1ZyB0byByZXBvcnQgYnVncy4KCSogY2F0Z2V0cy9nZW5jYXQuYzogTGlrZXdpc2UuCgkqIGRiL21ha2VkYi5jOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZS5jOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZWRlZi5jOiBMaWtld2lzZS4KCSogZWxmL2xkZC5iYXNoLmluOiBMaWtld2lzZS4KCSogZWxmL2xkZC5zaC5pbjogTGlrZXdpc2UuCgkqIGludGwvbG9jYWxlLmFsaWFzOiBMaWtld2lzZS4KCgkqIG1jaGVjay5oOiBOZXcgZmlsZS4gIE5lY2Vzc2FyeSBzaW5jZSBtY2hlY2suaCBpcyB1c2VkIGluIHRpbWUvYXAuYy4KCgkqIHNldC1pbml0LmM6IFVwZGF0ZSBhbmQgcmVmb3JtYXQgY29weXJpZ2h0LgoJKiB2ZXJzaW9uLmM6IExpa2V3aXNlLgoJKiBzaWduYWwvc2lnYWRkc2V0LmM6IExpa2V3aXNlLgoJKiBzaWduYWwvc2lnZGVsc2V0LmM6IExpa2V3aXNlLgoJKiBzaWduYWwvc2lnZW1wdHkuYzogTGlrZXdpc2UuCgkqIHNpZ25hbC9zaWdmaWxsc2V0LmM6IExpa2V3aXNlLgoJKiBzaWduYWwvc2lnZ2V0bWFzay5jOiBMaWtld2lzZS4KCSogc2lnbmFsL3NpZ2lzbWVtLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvc3BlZWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9nZXRkZW50cy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3hta25vZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9wb2xsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3RjZHJhaW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2QvdGNmbG93LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3RjZmx1c2guYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2QvdGNnZXRwZ3JwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3Rjc2VuZGJyay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC90Y3NldHBncnAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2Qvc3VuL3N1bm9zNC90Y3NldGF0dHIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2dldGRlbnRzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9pMzg2L3NpZ3JldHVybi5TOiBMaWtld2lzZS4KCSogdGVybWlvcy9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHRlcm1pb3MvY2ZtYWtlcmF3LmM6IExpa2V3aXNlLgoJKiB0ZXJtaW9zL2Nmc2V0c3BlZWQuYzogTGlrZXdpc2UuCgoJKiB2ZXJzaW9uLmg6IEJ1bXAgVkVSU0lPTiB0byAxLjEwMC4KCgkqIGludGwvZmluZGRvbWFpbi5jOiBEZWZpbmluZyBzdHBjcHkgZnVuY3Rpb24gaXNuJ3QgbmVjZXNzYXJ5LgoKCSogbGliaW8vZ2Vub3BzLmMgKF9JT19pbml0KTogVXNlIF9JT19sb2NrX2luaXQgaW5zdGVhZCBvZgoJX0lPX2xvY2tfaW5pdF9yZWN1cnNpdmUuCgkqIGxpYmlvL3N0ZGZpbGVzLmMgKERFRl9TVERGSUxFKTogVXNlIF9JT19sb2NrX2luaXRpYWxpemVyIGluc3RlYWQKCW9mIF9JT19sb2NrX2luaXQuCgoJKiBsb2NhbGUvcHJvZ3JhbXMvY2hhcm1hcC5jIChvYnN0YWNrX2NodW5rX2FsbG9jKTogVXNlIG1hbGxvYyBpbnN0ZWFkCglvZiB4bWFsbG9jLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtY29sbGF0ZS5jOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL3NpbXBsZS1oYXNoLmM6IExpa2V3aXNlLgoKCSogbWlzYy9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBzZWxlY3RiaXRzLmguCgkqIG1pc2Mvc3lzL3NlbGVjdC5oOiBJbmNsdWRlIDxzZWxlY3RiaXRzLmg+IHRvIGdldCBuZWNlc3NhcnkKCWRlZmluaXRpb25zLgoJKiBzeXNkZXBzL2dlbmVyaWMvc2VsZWN0Yml0cy5oOiBOZXcgZmlsZS4gIEdlbmVyaWMgbWFjcm9zIGZvcgoJaGFuZGxpbmcgZmlsZSBkZXNjcmlwdG9yIHNldHMuCgkqIHN5c2RlcHMvaTM4Ni9zZWxlY3RiaXRzLmg6IE5ldyBmaWxlLiAgaTM4NiBzcGVjaWZpYyBtYWNyb3MgZm9yCgloYW5kbGluZyBmaWxlIGRlc2NyaXB0b3Igc2V0cy4KCSogc3lzZGVwcy9nZW5lcmljL2dudS90eXBlcy5oOiBSZW1vdmUgX0ZEXyogbWFjcm9zLgoKCSogbWlzYy9tbnRlbnRfci5jOiBGaXggaGFuZGxpbmcgb2YgbXVsdGlwbGUsIGNvbW1hLXNlcGFyYXRlZAoJb3B0aW9ucy4gIFBhdGNoIGJ5IFNhaS1MYWkgTG8gPHNsbEBvcmwuY28udWs+LgoKCSogcG8vZGUucG86IFVwZGF0ZS4KCSogcG8va28ucG86IFVwZGF0ZS4KCSogcG8vc3YucG86IFVwZGF0ZS4KCgkqIHBvc2l4L2dldG9wdC5jOiBPbmx5IHVzZSB0aGUgYmFzaCBnZW5lcmF0ZWQgZW52aXJvbm1lbnQgdmFyaWFibGUKCXRvIGRldGVybWluZSBub24tb3B0aW9uIHBhcmFtZXRlcnMgd2hlbiB1c2luZyBpbiBHTlUgbGliYyBhbmQgaWYKCXRoZSBhcmd1bWVudCB2ZWN0b3IgZ2l2ZW4gdG8gZ2V0b3B0IGlzIHRoZSBzYW1lIGFzIGdpdmVuIHRvIHRoZQoJcHJvZ3JhbS4KCgkqIHBvc2l4L3VuaXN0ZC5oIFtfX1VTRV9HTlVdOiBEZWNsYXJlIGVudmlyb24uCgoJKiBwb3NpeC9zeXMvdHlwZXMuaCAoa2V5X3QpOiBBbHNvIGRlZmluZSB3aGVuIF9fVVNFX1hPUEVOLgoKCSogcmVzb2x2L3Jlc19kZWJ1Zy5jOiBBZGQgY2FzdHMgdG8gcHJldmVudCB3YXJuaW5ncy4KCSogcmVzb2x2L3Jlc19xdWVyeS5jOiBMaWtld2lzZS4KCgkqIHJlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmM6IENoYW5nZSB0eXBlIGZvciBidWZmZXIgc2l6ZSBhcmd1bWVudHMKCXRvIGBzaXplX3QnLgoJKiByZXNvbHYvbnNzX2Rucy9kbnMtbmV0d29yay5jOiBMaWtld2lzZS4KCgkqIHNpZ25hbC9zaWdlbXB0eS5jOiBVc2UgbWVtc2V0IHRvIGluaXRpYWxpemUgdmFyaWFibGUuCgkqIHNpZ25hbC9zaWdmaWxsc2V0LmM6IExpa2V3aXNlLgoKCSogc2lnbmFsL3NpZ25hbC5oOiBDaGFuZ2UgYmFjayBoYW5kbGluZyBvZiBzaWduYWwuICBUaGUgQlNECiAJdmVyc2lvbiBpcyBwcmVmZXJyZWQgYW5kIHRoZSBuZXcgc3lzdl9zaWduYWwgaXMgdXNlZCB3aGVuCiAJX19VU0VfWE9QRU4uCgkqIHN5c2RlcHMvcG9zaXgvc3lzdl9zaWduYWwuYzogUmVuYW1lZCBmcm9tIHNpZ25hbC5jLiAgVXNlIFNWSUQKCXNlbWFudGljLgoJKiBzeXNkZXBzL3Bvc2l4L3NpZ25hbC5jOiBSZW5hbWVkIGZyb20gYnNkX3NpZ25hbC5jLiAgVXNlIEJTRAoJc2VtYW50aWMuCgkqIHN5c2RwZXMvcG9zaXgvc2lncGF1c2UuYzogQ29ycmVjdCBjb21tZW50LgoJKiBzeXNkZXBzL3N0dWIvc2lncGF1c2UuYzogUHJvdmlkZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgoJKiBzaWduYWwvTWFrZWZpbGUgKHJvdXRpbmVzKTogUmVtb3ZlIGJzZF9zaWduYWwsIGFkZCBzeXN2X3NpZ25hbC4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9hYm9ydC5jOiBBbGxvdyByZXBlYXRlZCBjYWxscyB0byBhYm9ydCBpZgoJYSB1c2VyIGRlZmluZWQgaGFuZGxlciBmb3IgU0lHQUJSVCBpcyBpbnN0YWxsZWQuCgoJKiBzeXNkZXBzL3N0dWIvbGliYy1sb2NrLmg6IERlZmluZSBzZXBhcmF0ZSBzZXQgb2YgbWFjcm9zIGZvcgoJaGFuZGxpbmcgcmVjdXJzaXZlIG11dGV4ZXMuCgoJKiBzeXNkZXBzL3VuaXgvTWFrZWZpbGU6IENoYW5nZSBydWxlIHRvIGdlbmVyYXRlIHN5c2NhbGwuaCBmaWxlCglzbyB0aGF0IGl0IGlzIGdlbmVyYXRlIGluIHRoZSBzeXMvIHN1YmRpci4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L0Rpc3Q6IEFkZCBrZXJuZWxfdGVybWlvcy5oLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9EaXN0OiBBZGQga2VybmVsX3Rlcm1pb3MuaCBhbmQKCXN5cy9hY2N0LmguCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9kaXJlbnRyeS5oOiBEb24ndCB1c2Ugc3RydWN0IGRpcmVudCBmcm9tCglrZXJuZWwuICBEZWZpbmUgb3duIHZlcnNpb24gd2l0aCBhZGRpdGlvbmFsIGZpZWxkIGRfdHlwZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZ2V0ZGVudHMuYzogTmV3IGZpbGUuICBSZWZvcm1hdCBkaXJlbnQKCWVudHJpZXMgYWZ0ZXIgcmVhZGluZyBmcm9tIGtlcm5lbC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dudS90eXBlcy5oOiBEb24ndCB1c2Uga2VybmVsIGhlYWRlcnMuCglEZWZpbmUgdHlwZXMgYmFzZWQgb24ga2VybmVsIHR5cGVzIGV4Y2VwdCBmb3IgdWlkX3QsIGdpZF90LCBtb2RlX3QsCglkZXZfdCB3aGljaCBhcmUgbGFyZ2VyIG5vdy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvZ251L3R5cGVzLmg6IExpa2V3aXNlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaW9jdGwtdHlwZXMuaDogRG9uJ3QgaW5jbHVkZQoJPGxpbnV4L3Rlcm1pb3MuaD4uICBEZWZpbmUgc3RydWN0dXJlIGhlcmUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2lvY3RsLXR5cGVzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9rZXJuZWxfdGVybWlvcy5oOiBOZXcgZmlsZS4gRGVmaW5lCglhcmNoaXRlY3R1cmUgZGVwZW5kZW50IHN0cnVjdCB0ZXJtaW8gdHlwZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEva2VybmVsX3Rlcm1pb3MuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NpZ3NldC5oOiBEZWZpbmUgZXh0ZW5kZWQgc2lnc2V0X3QgdHlwZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2lnc3VzcGVuZC5jOiBQYXNzIGZpcnN0IHdvcmQgb2YgYXJyYXkKCXRvIHN5c2NhbGwuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zb2NrZXRiaXRzLmg6IERvbid0IHVzZSBrZXJuZWwgaGVhZGVyLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zdGF0ZnNidWYuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Rlcm1iaXRzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS90ZXJtYml0cy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvdXN0YXRiaXRzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXQvaWYuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L25ldGluZXQvaW4uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9hY2N0Lmg6IExpa2V3aXNlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3N5c21hY3Jvcy5oIChtaW5vciwgbWFqb3IsIG1rZGV2KToKCUNoYW5nZSBkZWZpbml0aW9ucyB0byBmaXQgbmV3IGRldl90IGRlZmluaXRpb24uCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxscy5saXN0OiBBZGQgZ2V0ZGVudHMgYW5kIHNpZ3JldHVybi4KCVJlbmFtZSB1c3RhdCB0byBzX3VzdGF0IHNpbmNlIHdyYXBwZXIgaXMgbmVlZGVkLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvdGNnZXRhdHRyLmM6IEFmdGVyIGdldHRpbmcgdmFsdWUgZnJvbQoJa2VybmVsIHJld3JpdGUgaXQgdG8gdXNlcmxhbmQgbGV2ZWwgZGF0YSBmb3JtYXQuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Rjc2V0YXR0ci5jOiBCZWZvcmUgY2FsbGluZyBrZXJuZWwgY2hhbmdlCglkYXRhIGZvcm1hdCB0byBrZXJuZWwgZm9ybWF0LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC91c3RhdC5jOiBOZXcgZmlsZS4gIENoYW5nZSBmb3JtYXQgb2YKCWRldmljZSBwYXJhbWV0ZXIgdG8gZm9ybWF0IG5lZWRlZCBieSBrZXJuZWwuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3VzdGF0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC94bWtub2QuYzogTmV3IGZpbGUuICBFeHRlbmQgZ2VuZXJpYwoJdmVyc2lvbiB0byBjaGFuZ2UgZGV2aWNlIHBhcmFtZXRlciB0byBmb3JtYXQgbmVlZGVkIGJ5IGtlcm5lbC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEveG1rbm9kLmM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc3lzL2FjY3QuaDogTmV3IGZpbGUuICBBbHBoYSBzcGVjaWZpYwoJZGVmaW5pdGlvbiBvZiBhY2NvdW50aW5nIHN0cnVjdHVyZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9wdHJhY2UuaDogSW5jbHVkZSA8YXNtL3B0cmFjZS5oPi4KCVBhdGNoIGJ5IEFuZHJlYXMgU2Nod2FiLgoKCSogdGltZS9hcC5jOiBJbmNsdWRlIDxtY2hlY2suaD4uCgoJKiB0aW1lL3R6c2V0LmMgKF9fdHpzZXRfaW50ZXJuYWwpOiBDaGFuZ2UgdG8gdGFrZSBvbmUgYXJndW1lbnQKCXdoaWNoIHRlbGxzIHdoZXRoZXIgZXhhbWluaW5nIG9mIFRaIGlzIGFsd2F5cyB3YW50ZWQgb3Igb25seSBpZgoJbm8gaW5pdGlhbGl6YXRpb24gaGFwcGVuZWQgYmVmb3JlLgoJKiB0aW1lL2xvY2FsdGltZS5jOiAobG9jYWx0aW1lLCBfX2xvY2FsdGltZV9yKTogQ2hhbmdlIGZvciBuZXcKCV9fdHpzZXRfaW50ZXJuYWwgZm9ybS4KCgkqIHRpbWUvc3lzL3RpbWUuaDogSW5jbHVkZSA8c3lzL3NlbGVjdC5oPiB0byBnZXQgc2VsZWN0IHJlbGF0ZWQKCWRlY2xhcmF0aW9ucy4KCk1vbiBKYW4gIDYgMDE6NTg6MjEgMTk5NyAgUmljaGFyZCBIZW5kZXJzb24gIDxyaWNoYXJkQGF0aGVpc3QudGFtdS5lZHU+CgoJKiBzeXNkZXBzL2FscGhhL2RsLW1hY2hpbmUuaCAoZWxmX21hY2hpbmVfZHluYW1pYyk6IFdvcmsgYXJvdW5kCglidWcgaW4gR05VIGxkLgoKTW9uIEphbiAgNiAwMTozNToyOSAxOTk3ICBILkouIEx1ICA8aGpsQGdudS5haS5taXQuZWR1PgoKCSogbWlzYy9nZXRwYXNzLmM6IE1ha2Ugc3VyZSB0aGUgY29udGVudCBvZiB0aGUgaW5wdXQgYnVmZmVyIGlzIG5vdAoJcHJpbnRlZCBpZiB0aGUgZ2V0cGFzcyBmdW5jdGlvbiBpcyBpbnRlcnJ1cHRlZC4KClNhdCBKYW4gIDQgMTc6MDc6MDggMTk5NyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZm1oLmZyb2IuY29tPgoKCSogbWQ1LWNyeXB0L01ha2VmaWxlIChycGF0aC1saW5rKTogQWRkIG1kNS1jcnlwdCBvYmpkaXIsIG5vdCBjcnlwdC4KClRodSBKYW4gIDIgMTc6NTg6MjMgMTk5NyAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZm1oLmZyb2IuY29tPgoKCSogc3lzZGVwcy9nZW5lcmljL2Fib3J0LmM6IEluY2x1ZGUgPHN0cmluZy5oPiBmb3IgbWVtc2V0IGRlY2wuCgoJKiBuZXctbWFsbG9jL21jaGVjay5jIFtfTElCQyB8fCBTVERDX0hFQURFUlMgfHwgVVNHXTogSW5jbHVkZQoJPHN0cmluZy5oPiBzbyBtZW1zZXQgaXMgZGVjbGFyZWQuCgpUdWUgRGVjIDMxIDIxOjE2OjA1IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGZtaC5mcm9iLmNvbT4KCgkqIGVsZi9kbC1kZXBzLmMgKF9kbF9tYXBfb2JqZWN0X2RlcHMpOiBTdXBwb3J0IERUX0FVWElMSUFSWS4KCgkqIGVsZi9kbC1lcnJvci5jIChfZGxfY2F0Y2hfZXJyb3IpOiBTYXZlIGFuZCByZXN0b3JlIG9sZCBjYXRjaCBzaXRlIHNvCgljYWxscyBjYW4gYmUgbmVzdGVkLgoKCSogZWxmL2xpbmsuaCAoc3RydWN0IGxpbmtfbWFwKTogRXh0ZW5kIGBsX2luZm8nIGJ5IERUX0VYVFJBTlVNIGVsdHMuCgkqIGVsZi9keW5hbWljLWxpbmsuaCAoZWxmX2dldF9keW5hbWljX2luZm8pOiBHcm9rIHRhZ3MgaW4gdGhlIFN1bgoJZXh0ZW5zaW9uIHJhbmdlLgoKCSogZWxmL2VsZi5oIChEVF9BVVhJTElBUlksIERUX0ZJTFRFUiwgRFRfRVhUUkFOVU0pOiBOZXcgY29uc3RhbnQKCW1hY3JvcywgZm9yIFN1biBleHRlbnNpb25zLgoJKERUX0VYVFJBVEFHSUQpOiBOZXcgbWFjcm8gdG8gY29udmVydCBTdW4gZXh0ZW5zaW9uIHRhZyB2YWx1ZXMgcGxhY2VkCgluZWFyIHRoZSB0b3Agb2YgdGhlIHByb2Nlc3Nvci1zcGVjaWZpYyByYW5nZSBpbnRvIHplcm8tb3JpZ2luIGluZGljZXMuCgoJKiBlbGYvZGwtZGVwcy5jIChfZGxfbWFwX29iamVjdF9kZXBzKTogQ2hlY2sgZm9yIG1hbGxvYyBmYWlsdXJlLgoKU2F0IEphbiAgNCAyMjoyNTowMSAxOTk3ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIGxpYmlvL2ZjbG9zZWFsbC5jOiBJbmNsdWRlIHN0ZGlvLmggZm9yIHByb3RvdHlwZSBkZWNsYXJhdGlvbiBmb3IKCV9fZmNsb3NlYWxsLgoKVGh1IEphbiAgMiAxNzozNToyMCAxOTk3ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9wb3NpeC9zaWduYWwuYzogUHJvdmlkZSBpZ25vcmFibGUgZGVmaW5pdGlvbnMgb2YKCVNBX09ORVNIT1QsIFNBX05PTUFTSywgYW5kIFNBX0lOVEVSUlVQVCBmb3Igbm9uLXRocmVhZHMgUG9zaXgKCXN5c3RlbXMuCgpUaHUgSmFuICAyIDIzOjIwOjUxIDE5OTcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZVRBR1MgKCRQL3NpZ2xpc3QucG90KTogRGVsZXRlIHJ1bGUuCgkoWEdFVFRFWFRGTEFHUy1zaWdsaXN0LnBvdCk6IFJlbW92ZSBkZWZpbml0aW9uLgoJKGFsbC1wb3QpOiBSZW1vdmUgJFAvc2lnbGlzdC5wb3QuCgkqIHN5c2RlcHMvdW5peC9zaWdsaXN0LmM6IE1hcmsgc3RyaW5ncyBhcyB0cmFuc2xhdGFibGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NpZ2xpc3QuaDogTGlrZXdpc2UuCgpXZWQgSmFuICAxIDIyOjIxOjE4IDE5OTcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogbWlzYy9zeXNjYWxsLmg6IE5ldyBmaWxlLgoJKiBtaXNjL3N5cy9zeXNjYWxsLmg6IFJlbW92ZWQuICBGb3J3YXJkaW5nIHRvIDxzeXNjYWxsLmg+IG1pZ2h0CglmaW5kIHVzZXIgaGVhZGVyLCBzbyBkbyBpdCB0aGUgb3RoZXIgd2F5IHJvdW5kLgoJKiBzeXNkZXBzL21hY2gvc3lzL3N5c2NhbGwuaDogTW92ZWQgaGVyZSBmcm9tIHBhcmVudCBkaXJlY3RvcnkuCgkqIHN5c2RlcHMvc3R1Yi9zeXMvc3lzY2FsbC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3N5c2NhbGwuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3NjbzMuMi40L3N5cy9zeXNjYWxsLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZSAoJChvYmpwZngpc3lzY2FsbC0lLmgpOiBVcGRhdGUKCWRlcGVuZGVuY3kuCgkqIHN5c2RlcHMvdW5peC9zeXNkZXAuaDogSW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4gaW5zdGVhZCBvZgoJPHN5c2NhbGwuaD4uCgpUdWUgRGVjIDMxIDAwOjAzOjE4IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogZmVhdHVyZXMuaDogRml4IHR5cG8uCgpUaHUgSmFuICAyIDAwOjQ2OjA5IDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbGliaW8vX0dfY29uZmlnLmg6IEFkZCBfR19IQVZFX0xPTkdfRE9VQkxFX0lPIGZvciBsaWJnKysuCgpXZWQgSmFuICAxIDE1OjE1OjAwIDE5OTcgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbGliaW8vTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIGZjbG9zZWFsbC4KCSogbGliaW8vZmNsb3NlYWxsLmM6IE5ldyBmaWxlLgoJKiBsaWJpby9zdGRpby5oIFtfX1VTRV9HTlVdOiBBZGQgcHJvdG90eXBlIGZvciBmY2xvc2VhbGwuCgkqIGxpYmlvL2lvZmNsb3NlLmM6IERvbid0IGNsb3NlIGFsbCBzdHJlYW1zIHdoZW4gYXJndW1lbnQgaXMgTlVMTC4KCgkqIHN0ZGlvL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBmY2xvc2VhbGwuCgkqIHN0ZGlvL2ZjbG9zZWFsbC5jOiBOZXcgZmlsZS4KCSogc3RkaW8vc3RkaW8uaCBbX19VU0VfR05VXTogQWRkIHByb3RvdHlwZSBmb3IgZmNsb3NlYWxsLgoJKiBzdGRpby9mY2xvc2UuYzogRG9uJ3QgY2xvc2UgYWxsIHN0cmVhbXMgd2hlbiBhcmd1bWVudCBpcyBOVUxMLgoKCSogbWFudWFsL3N0ZGlvLnRleGk6IERvY3VtZW50IGZjbG9zZWFsbC4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9hYm9ydC5jOiBDYWxsIF9fZmNsb3NlYWxsIGluc3RlYWQgb2YgZmNsb3NlIHdpdGgKCU5VTEwgYXJndW1lbnQuCgoJKiBzb2NrZXQvc3lzL3VuLmggKFNVTl9MRU4pOiBBZGQgY2FzdC4KCgkqIHN1bnJwYy9hdXRoX3VuaXguYyAoYXV0aHVuaXhfY3JlYXRlKTogQ2hhbmdlIHBhcmFtZXRlciB0eXBlcwoJb2YgdWlkLCBnaWQsIGFuZCBhdXBfZ2lkcyB0byB1aWRfdCBhbmQgZ2lkX3QgcmVzcGVjdGl2ZWx5LgoJKGF1dGh1bml4X2NyZWF0ZV9kZWZhdWx0KTogTGlrZXdpc2UuCgkoYXV0aHVuaXhfcmVmcmVzaCk6IENvcnJlY3QgY2FzdCBmb3IgYXVwX2dpZHMgYXNzaWdubWVudC4KCSogc3VucnBjL3JwYy9hdXRoLmggKGF1dGh1bml4X2NyZWF0ZSk6IENvcnJlY3QgdHlwZXMgaW4gZGVjbGFyYXRpb24uCgkqIHN1bnJwYy9ycGMvYXV0aF91bml4LmggKHN0cnVjdCBhdXRodW5peF9wYXJtcyk6IENvcnJlY3QgZmllbGQKCXR5cGVzIHRvIHVpZF90IGFuZCBnaWRfdCByZXNwZWN0aXZlbHkuCgkoc3RydWN0IHNob3J0X2hhbmRfdmVyZik6IExpa2V3aXNlLgoJUmVwb3J0ZWQgYnkgQW5kcmVhcyBTY2h3YWIuCgoJKiBzeXNkZXBzL2llZWU3NTQvTWFrZWZpbGU6IE5ldyBmaWxlLiAgTWFrZSBzdXJlIGllZWU3NTQuaCBnZXRzCglpbnN0YWxsZWQuCgkqIHN5c2RlcHMvaWVlZTc1NC9pZWVlNzU0Lmg6IFByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBpbmNsdXNpb24gYW5kCgl1c2UgaW4gQysrIHByb2dyYW1zLgoKCSogc3lzZGVwcy9saWJtLWkzODcvZV9wb3cuUzogTmV3IGZpbGUuICBPcHRpbWl6ZWQgaXg4NyBhc3NlbWJsZXIKCXZlcnNpb24gb2YgcG93KCkgZnVuY3Rpb24uCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfcG93Zi5TOiBOZXcgZmlsZS4gIEZsb2F0IHZlcnNpb24uCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfcG93bC5TOiBOZXcgZmlsZS4gIExvbmcgZG91YmxlIHZlcnNpb24uCgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2V4cG0xLlM6IE5ldyBmaWxlLiAgT3B0aW1pemVkIGl4ODcgYXNzZW1ibGVyCgl2ZXJzaW9uIG9mIGV4cG0xKCkgZnVuY3Rpb24uCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfZXhwbTFmLlM6IE5ldyBmaWxlLiAgRmxvYXQgdmVyc2lvbi4KCSogc3lzZGVwcy9saWJtLWkzODcvc19leHBtMWwuUzogTmV3IGZpbGUuICBMb25nIGRvdWJsZSB2ZXJzaW9uLgoKCSogc3lzZGVwcy9saWJtLWkzODcvZV9leHAuUzogT3B0aW1pemUgaGFuZGxpbmcgb2YgKy1JbmYuCglCZXR0ZXIgaGFuZGxpbmcgb2YgY29tcHV0YXRpb24gc3RhY2sgZnJvbSBjdXJyZW50IE5ldEJTRCBzb3VyY2VzLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2V4cGYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfZXhwbC5TOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfbG9nLlM6IFVzZSBmc3RwIGluc3RlYWQgb2YgZmluY3N0cC4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2dmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2xvZ2wuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfbG9nMTAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfbG9nMTBmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2xvZzEwbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19hc2luaC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19hc2luaGYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfYXNpbmhsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3NpZ25pZmljYW5kbC5TOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY2VpbC5TOiBEb24ndCBjcmVhdGUgc3RhY2sgZnJhbWUuICBNb2RpZnkKCXN0YWNrIHBvaW50ZXIgZGlyZWN0bHkuICBVc2UgMzIgYml0IGluc3RlYWQgb2YgMTYgYml0IG9wZXJhdGlvbnMuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY2VpbGYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY2VpbGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfZmxvb3IuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfZmxvb3JmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Zsb29ybC5TOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L2VfY29zaGYuYyAoaHVnZSk6IERvbid0IGRlY2xhcmUgdm9sYXRpbGUuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L2VfZXhwZi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvZV9wb3dmLmM6IExpa2V3aXNlLgoJRnJvbSBjdXJyZW50IE5ldEJTRCBzb3VyY2VzLgoKCSogc3lzZGVwcy9saWJtLWllZWU3NTQvZV9oeXBvdC5jIChfX2llZWU3NTRfaHlwb3QpOiBEb24ndCBpbml0aWFsaXplCglgYScgYW5kIGBiJyBpbiBkZWZpbml0aW9uLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX2h5cG90Zi5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L2VfaHlwb3RsLmM6IE5ldyBmaWxlLiAgTG9uZyBkb3VibGUKCWltcGxlbWVudGF0aW9uLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX3NpbmhsLmM6IE5ldyBmaWxlLiAgTG9uZyBkb3VibGUKCWltcGxlbWVudGF0aW9uLgoJKiBzeXNkZXBzL3N0dWIvZV9oeXBvdGwuYzogUmVtb3ZlZC4gIFdlIGhhdmUgYSByZWFsIHZlcnNpb24gbm93LgoJKiBzeXNkZXBzL3N0dWIvZV9zaW5obC5jOiBSZW1vdmVkLgoKCSogc3lzZGVwcy9wb3NpeC9zaWdwYXVzZS5jIChfX3NpZ3BhdXNlKTogVXNlIHNpZ2RlbHNldCBpbnN0ZWFkIG9mCglzaWdhZGRzZXQuICBSZXBvcnRlZCBieSBBbmRyZWFzIFNjaHdhYi4KCShfX2RlZmF1bHRfc2lncGF1c2UpOiBOZXcgZnVuY3Rpb24uICBDYWxsIF9fc2lncGF1c2UgYXMgQlNEIHZlcnNpb24uCglNYWtlIHRoaXMgdGhlIGRlZmF1bHQgZnVuY3Rpb24gYnkgcHJvdmlkaW5nIGFsaWFzIHNpZ3BhdXNlLgoJKiBzeXNkZXBzL3N0dWIvc2lncGF1c2UuYyAoX19kZWZhdWx0X3NpZ3BhdXNlKTogTmV3IGZ1bmNpdG9uLgoJU2ltcGx5IGZhaWwuICBQcm92aWRlIGFsaWFzIHNpZ3BhdXNlLgoKV2VkIEphbiAgMSAxMjozNDo1NCAxOTk3ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHBvL2VzLnBvOiBVcGRhdGUgZm9yIGdsaWJjLTEuOTguCgkqIHBvL2ZyLnBvOiBMaWtld2lzZS4KCSogcG8vc3YucG86IE5ldyBmaWxlLiAgU3dlZGlzaCB0cmFuc2xhdGlvbi4KCldlZCBKYW4gIDEgMTI6MTg6MDcgMTk5NyAgIE1hY0d5dmVyICA8bWFjZ3l2ZXJAdG9zLm5ldD4KCgkqIHZhbHVlcy5oOiBGaXggdHlwb3M6IHVzZSBTSFJUX01BWCBidXQgU0hPUlRfTUFYIGFuZCBTSFJUX01JTiBidXQKCVNIT1JUX01JTi4KClR1ZSBEZWMgMjQgMjM6MTA6MjEgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBNYWtlZmlsZTogUmVwbGFjZSBgc3R1YnMuaCcgYnkgYGdudS9zdHVicy5oJy4KCSogZmVhdHVyZXMuaDogSW5jbHVkZSA8Z251L3N0dWJzLmg+IGluc3RlYWQgb2YgPHN0dWJzLmg+LgoKVHVlIERlYyAyNCAyMjoxNjo1NSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2VmaWxlIChzdWJkaXJzKTogTW92ZSBgZWxmJyBsYXN0IHNvIHRoYXQgbGlicnRsZC5zbyBpc24ndAoJcmVsaW5rZWQgaW4gdGhlIGBtYWtlIG90aGVycycgcGFzcyBpZiBhbiBhZGQtb24gYWRkcyBzb21ldGhpbmcgdG8KCWxpYmMuCgpNb24gRGVjIDIzIDIxOjIzOjE2IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9tNjhrL2Fib3J0LWluc3RyLmg6IE5ldyBGaWxlLgoKTW9uIERlYyAyMyAyMToxNjozOCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvbTY4ay9NYWtlZmlsZSAoJChzdWJkaXIpPWVsZik6IERlZmluZSBDRkxBR1MtcnRsZC5jCgl0byBwcmV2ZW50IHdhcm5pbmcuCgpNb24gRGVjIDIzIDIxOjE0OjIyIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogcmVzb2x2L01ha2VmaWxlIChzdWJkaXJzLWRpcnMpOiBEZWZpbmUuCgpNb24gRGVjIDIzIDIwOjU2OjQ5IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9nbnUvdXRtcGJpdHMuaCAoc3RydWN0IHV0bXApOiBGaXggcGFkZGluZy4KCk1vbiBEZWMgMzAgMTE6MDU6MTEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJVXBkYXRlIGZyb20gQURPIHR6Y29kZTE5OTZvLgoJKiB0aW1lL2RpZmZ0aW1lLmM6IERlLUFOU0ktZGVjbGZ5LiAgU2ltcGxpZnkgY29tcHV0YXRpb24gb2YgaGliaXQKCWFjY29yZGluZyB0byBBRE8gdmVyc2lvbi4KCSogdGltZS96aWMuYzogQ29ycmVjdCB0eXBvIGlzIG1lc3NhZ2UuCgoJVXBkYXRlIGZyb20gQURPIHR6ZGF0YTE5OTZuLgoJKiB0aW1lL2FzaWE6IFVwZGF0ZWQuCgkqIHRpbWUvYXVzdHJhbGFzaWE6IExpa2V3aXNlLgoJKiB0aW1lL2V1cm9wZTogTGlrZXdpc2UuCgkqIHRpbWUvbm9ydGhhbWVyaWNhOiBMaWtld2lzZS4KCSogdGltZS9zb3V0aGFtZXJpY2E6IExpa2V3aXNlLgoKTW9uIERlYyAzMCAwMTozMjo1OSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHRtZS9sb2NhbHRpbWUuYzogUmV3cml0ZSBzbyB0aGF0IGxvY2FsdGltZV9yIGRvZXMgbm90IGNhbGwgdHpzZXQsCglidXQgbG9jYWx0aW1lIGRvZXMuCgoJKiBmZWF0dXJlcy5oOiBSZW5hbWUgQU5TSSBDIHRvIElTTyBDLgoJTWVudGlvbiBfX0dMSUJDX18gYW5kIF9fR0xJQkNfTUlOT1JfXyBtYWNyb3MuCgoJKiBnbnUtdmVyc2lvbnMuaDogQWRkIF9HTlVfR0VUT1BUX0lOVEVSRkFDRV9WRVJTSU9OLgoJKiBwb3NpeC9nZXRvcHQuYzogVXNlIF9HTlVfR0VUT1BUX0lOVEVSRkFDRV9WRVJTSU9OIHRvIGNoZWNrCgl3aGV0aGVyIHdlIGNhbiBlbGlkZSB0aGUgY29kZS4KCSogcG9zaXgvZ2V0b3B0MS5jOiBMaWtld2lzZS4KCSogcG9zaXgvTWFrZWZpbGU6IENvcnJlY3QgY29weXJpZ2h0LgoKCSogZWxmL2RsLWVycm9yLmMgKF9kbF9jYXRjaF9lcnJvcik6IENsZWFyIGBjYXRjaCcgYWxzbyB3aGVuIGVycm9yCglvY2N1cnJlZC4KCSogZWxmL2RsLXN1cHBvcnQuYyAoX2RsX3N5c2RlcF9vcGVuX3plcm9fZmlsbCk6IERvbid0IGRlZmluZSBpZgoJTUFQX0FOT04gaXMgZGVmaW5lZC4KCSogZWxmL2V2YWwuYzogVXNlIF9fZ2V0bGluZSBpbnN0ZWFkIG9mIGdldGxpbmUuCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBDaGVjayByZXR1cm4gdmFsdWUgb2YgX2RsX25ld19vYmplY3QKCWZ1bmN0aW9uIGZvciBOVUxMLgoJKiBzeXNkZXBzL2dlbmVyaWMvZGwtY2FjaGUuYzogVXBkYXRlIGNvcHlyaWdodC4KCgkqIHNpZ25hbC9NYWtlZmlsZTogQ29ycmVjdCBjb3B5cmlnaHQuCgkocm91dGluZXMpOiBSZW1vdmUgZ3NpZ25hbCBhbmQgc3NpZ25hbC4gIEFkZCBic2Rfc2lnbmFsLgoJKiBzaWduYWwvZ3NpZ25hbC5jOiBSZW1vdmVkLiAgTm93IGlzIG1hZGUgYW4gYWxpYXMuCgkqIHNpZ25hbC9zc2lnbmFsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3JhaXNlLmM6IEFkZCBhbGlhcyBnc2lnbmFsLgoJKiBzeXNkZXBzL3N0dWIvcmFpc2UuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvc2lnbmFsLmM6IEFkZCBhbGlhcyBzc2lnbmFsLgoJKiBzeXNkZXBzL3N0dWIvc2lnbmFsLmM6IExpa2V3aXNlLgoJKiBzaWduYWwvc2lnbmFsLmg6IERlY2xhcmUgYnNkX3NpZ25hbC4gIERlZmluZSBzaWduYWwgYXMgYnNkX3NpZ25hbAoJaWYgX19GQVZPUl9CU0QuCgkqIHN5c2RlcHMvcG9zaXgvYnNkX3NpZ25hbC5jOiBOZXcgZmlsZS4gIEltcGxlbWVudGF0aW9uIG9mIFhQRwoJZnVuY3Rpb24uICBUaGlzIGlzIHRoZSBvbGQgc2lnbmFsLmMgZmlsZS4KCSogc3lzZGVwcy9wb3NpeC9zaWduYWwuYzogQ2hhbmdlIHRvIGhhdmUgc2VtYW50aWMgb2YgWC9PcGVuLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2lnbmFsLmM6IEFkZCBleHBsYW5hdGlvbi4KCgkqIHNvY2tldC9zeXMvdW4uaDogRGVmaW5lIFNVTl9MRU4gYWNjb3JkaW5nIHRvIFBPU0lYLjFnLgoKCSogc3RkaW8tY29tbW9uL01ha2VmaWxlICh0ZXN0cyk6IEFkZCBzY2FuZjEwLgoJKiBzdGRpby1jb21tb24vc2NhbmYxMC5jOiBOZXcgZmlsZS4KCSogc3RkaW8tY29tbW9uL3Zmc2NhbmYuYzogRGVjcmVtZW50IGNvdW50ZXIgaWYgRU9GIGlzIHJlYWQgd2hpbGUKCXJlYWRpbmcgc3RyaW5nLgoKCSogc3lzZGVwcy9saWJtLWkzODcvZV9hY29zLlM6IFVzZSBFTkQsIG5vdCBQU0VVRE9fRU5ELgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2Fjb3NsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2FzaW4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYXNpbmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYXRhbjIuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYXRhbjJmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2F0YW4ybC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9leHAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfZXhwbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9mbW9kLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2Ztb2RsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2xvZy5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2cxMC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2cxMGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfbG9nbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9yZW1haW5kZXIuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfcmVtYWluZGVyZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9yZW1haW5kZXJsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3NjYWxiLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3NjYWxibC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9zcXJ0LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3NxcnRmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3NxcnRsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2F0YW4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfYXRhbmYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfYXRhbmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY2VpbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jZWlsZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jZWlsbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jb3B5c2lnbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jb3B5c2lnbmYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY29weXNpZ25sLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Nvcy5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jb3NmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Nvc2wuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfZmluaXRlLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Zpbml0ZWYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfZmluaXRlbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19mbG9vci5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19mbG9vcmYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfZmxvb3JsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2lsb2diLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2lsb2diZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19pbG9nYmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfbG9nMXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfbG9nMXBmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2xvZzFwbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19sb2diLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2xvZ2JmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2xvZ2JsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3JpbnQuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfcmludGYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfcmludGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3Nfc2NhbGJuLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3NjYWxibmYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3Nfc2NhbGJubC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zaWduaWZpY2FuZC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zaWduaWZpY2FuZGYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3Nfc2lnbmlmaWNhbmRsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3Npbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zaW5mLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3NpbmwuUzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2xvZy5TOiBVc2UgZnlsMnhwMSBpbnN0cnVjdGlvbiBmb3IgdmFsdWVzCgluZWFyIDEgdG8gaW5jcmVhc2UgcHJlY2lzaW9uLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2xvZzEwLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2xvZzEwbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2dsLlM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9saWJtLWkzODcvc19jb3MuUzogVXNlIHRlc3RsIGluc3RlYWQgb2YgYW5kdy4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jb3NsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3Npbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zaW5sLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3Rhbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc190YW5sLlM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9saWJtLWkzODcvZV9hY29zZi5TOiBOZXcgZmlsZS4gIEFkZCBmbG9hdCB2ZXJzaW9ucy4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9hc2luZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9leHBmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2Ztb2RmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2xvZzEwZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2dmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3NjYWxiZi5TOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYWNvc2guUzogTmV3IGZpbGUuICBIaWdobHkgb3B0aW1pemVkIHZlcnNpb25zLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2Fjb3NoZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9hY29zaGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYXRhbmguUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYXRhbmhmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2F0YW5obC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9hc2luaC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9hc2luaGYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYXNpbmhsLlM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19hc2luaGYuYzogVHdlYWsgYSBiaXQuICBVc2UgbG93ZXIgbGV2ZWxzCglmb3Igc2ltcGxpZmllZCBoYW5kbGluZy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3Q6IEFkZCBxdWVyeV9tb2R1bGUuCgpTdW4gRGVjIDIyIDAxOjM5OjI5IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogaW5ldC9yY21kLmMgKHJjbWQpOiBTZXQgaF9lcnJubyBiZWZvcmUgY2FsbGluZyBoZXJyb3IuCgkqIGluZXQvcmV4ZWMuYyAocmV4ZWMpOiBMaWtld2lzZS4KClNhdCBEZWMgMjEgMjE6NDc6MDggMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3NldGptcC5jIChfX3NldGptcCk6IE1ha2UgaXQgcmVhbGx5Cgljb21wYXRpYmxlLgoKU3VuIERlYyAyMiAwMzoyMzozMyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfbG9nMXAuUzogVXNlIGZ5bDJ4cDEgZm9yIG51bWJlcnMgaW4gcmFuZ2UKCS0wLjI5IDw9IHggPD0gMC4yOSwgb3RoZXJ3aXNlIHRoZSBvbGQgbWV0aG9kLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2xvZzFwZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19sb2cxcGwuUzogTGlrZXdpc2UuCgpTdW4gRGVjIDIyIDAwOjAxOjI3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW5ldC9nZXRuZXRncmVudC5jOiBSZWZvcm1hdCBjb3B5cmlnaHQuCgoJKiBpbmV0L2dldG5ldGdyZW50X3IuYyAoX19pbnRlcm5hbF9lbmRuZXRncmVudCk6IENvcnJlY3QgY29tbWVudC4KCShfX2ludGVybmFsX2dldG5ldGdyZW50KTogUmVuYW1lIHRvIF9faW50ZXJuYWxfZ2V0bmV0Z3JlbnRfciBhcwoJcmVxdWlyZWQgaW4gY2hhbmdlIG5pcy9uc3NfY29tcGF0LyogYXQgVGh1IERlYyAxOSAxNDoyNDo1MCAxOTk2LgoJUmVwb3J0ZWQgYnkgVGhvcnN0ZW4gS3VrdWsgPGt1a3VrQHdlYmVyLnVuaS1wYWRlcmJvcm4uZGU+LgoKCSogbnNzL25zc19maWxlcy9maWxlcy1uZXRncnAuYzogRml4IHR5cG8uCgkqIGxvZ2luL3V0bXBfZGIuYzogQ29tbWVudCBvdXQgdW51c2VkIHZhcmlhYmxlcy4KCSogbWlzYy90c3QtZGlybmFtZS5jOiBQcm92aWRlIHByb3RvdHlwZSBmb3IgbWFpbiAoZm9yIG5vdykuCgkqIG5ldy1tYWxsb2MvbWNoZWNrLWluaXQuYzogSW5jbHVkZSA8bWNoZWNrLmg+LgoJKiBuZXctbWFsbG9jL29ic3RhY2suYzogUHJvdmlkZSByZWFsIHByb3RvdHlwZXMuCgoJKiByZXNvbHYvYmFzZTY0LmMgKGI2NF9udG9wKTogVXNlIHNpemVfdCBhcyB0eXBlIG9mIGBpJywgbm90IGludC4KCShiNjRfcHRvbik6IExpa2V3aXNlIGZvciBgdGFyaW5kZXgnLgoJKiByZXNvbHYvbnNhcF9hZGRyLmMgKGluZXRfbnNhcF9hZGRyKTogQWRkIGNhc3QgdG8gcHJldmVudCB3YXJuaW5nLgoKCSogc3RkaW8tY29tbW9uL01ha2VmaWxlOiBBZGQgQ0ZMQUdTLXZmcHJpbnRmLmMgdG8gcHJldmVudCB3YXJuaW5nLgoJKiBzdGRpby1jb21tb24vcHJpbnRmLXBhcnNlLmg6IFJlbW92ZSBkZWZpbml0aW9uIG9mIE1JTiBhbmQgTUFYLgoJKiBzdGRpby1jb21tb24vcHJpbnRmLXBycy5jOiBJbmNsdWRlIDxzeXMvcGFyYW0uaD4gdG8gZ2V0IE1JTiBhbmQgTUFYLgoJKiBzdGRpby1jb21tb24vdmZwcmludGYuYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9nbXAtaW1wbC5oOiBPbmx5IGRlZmluZSBNSU4gYW5kIE1BWCBpZiBub3QgYWxyZWFkeSBkb25lLgoJKiBzdGRsaWIvdHN0LXN0cnRvbC5jOiBEb24ndCB1c2UgLTIxNDc0ODM2NDggYXMgdW5zaWduZWQgbG9uZyB2YWx1ZS4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9NYWtlZmlsZSAoJChzdWJkaXIpPXN0cmluZyk6IERlZmluZQoJQ0ZMQUdTLXdvcmRjb3B5LmMgdG8gcHJldmVudCB3YXJuaW5nLgoJKiBzeXNkZXBzL2dlbmVyaWMvbXVsX24uYyAobXBuX211bF9uKTogRG9uJ3QgZGVmaW5lIGFzIGlubGluZS4KCSogc3lzZGVwcy9nZW5lcmljL3dvcmRjb3B5LmM6IERlLUFOU0ktZGVjbGZ5LgoJKiBzeXNkZXBzL2kzODYvTWFrZWZpbGUgKCQoc3ViZGlyKT1lbGYpOiBEZWZpbmUgQ0ZMQUdTLXJ0bGQuYwoJdG8gcHJldmVudCB3YXJuaW5nLgoJKiBzeXNkZXBzL2kzODYvZGwtbWFjaGluZS5oOiBDb3JyZWN0IGNvcHlyaWdodC4KCSogc3lzZGVwcy91bml4L2Nsb3NlZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvZGlyc3RyZWFtLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvb3BlbmRpci5jOiBMaWtld2lzZS4KCSogdGltZS90enNldC5jOiBBZGQgcHJvdG90eXBlIGZvciBfX3R6c2V0X2ludGVybmFsLgoKCSogc3lzZGVwcy9nbnUvdXRtcGJpdHMuaCAoZW51bSB1dGxvZ2luKTogQ29tbWVudCBvdXQgc2luY2UgdGhlCgl3YXkgaXQgaXMgc3VwcG9zZWQgdG8gd29yayBpcyBub3QgeWV0IGtub3duLgoJKHN0cnVjdCB1dG1wKTogUmVtb3ZlIHV0X2xvZ2luIGFuZCB1dF9zeXNsZW4gZmllbGQgZm9yIG5vdy4KClNhdCBEZWMgMjEgMTY6MjM6NTQgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB0aW1lL3N0cmZ0aW1lLmM6IEZpeCBhbm90aGVyIGJ1ZyBpbiBoYW5kbGluZyBmbGFncyBtYWRlIGl0CglpbXBvc3NpYmxlIHRvIHVzZSB0aGUgYC0nLCBgXycsIG9yIGAwJyBmbGFnLgoKU2F0IERlYyAyMSAwNDoxNDoxNiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9jb21tb24vcGF1c2UuYzogQWRkIG1pc3Npbmcgc2Vjb25kIGFyZ3VtZW50IGluCgljYWxsIHRvIF9fc2lncGF1c2UuCglSZXBvcnRlZCBieSBhIHN1biA8YXN1bkB6b29sb2d5Lndhc2hpbmd0b24uZWR1Pi4KCgkqIGxvY2FsZS93ZWlnaHQuaDogQ29ycmVjdCBoYW5kbGluZyBvZiBjb2xsYXRpb24gZWxlbWVudHMuCglSZXBvcnRlZCBieSBLZWxkIFNpbW9uc2VuIDxrZWxkQGRrdXVnLmRrPi4KCgkqIG1hbnVhbC90aW1lLnRleGk6IERvY3VtZW50IF4gZmxhZyBhbmQgJVAgZm9ybWF0LgoKCSogbmV3LW1hbGxvYy9tYWxsb2MuYzogVXBkYXRlIGZyb20gV29sZnJhbSBHbG9nZXIuCgoJKiBuc3MvbnNzLmg6IFJlZm9ybWF0IGNvcHlyaWdodC4KCSogcG9zaXgvc2NoZWQuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9mcHVfY29udHJvbC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZmNudGxiaXRzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pb2N0bHMuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NpZ2NvbnRleHQuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3V0c25hbWVsZW4uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9hY2N0Lmg6IExpa2V3aXNlLgoJKiBzeXN2aXBzL3N5cy9tc2cuaDogTGlrZXdpc2UuCgoJKiBzdGRpby1jb21tb24vTWFrZWZpbGUgKHJvdXRpbmVzKTogUmVtb3ZlIGZjbG9zZWFsbC4KCSogc3RkaW8tY29tbW9uL2ZjbG9zZWFsbC5jOiBSZW1vdmVkLgoKCSogc3RkbGliL01ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIGFib3J0LWluc3RyLmguCgkqIHN5c2RlcHMvZ2VuZXJpYy9hYm9ydC1pbnN0ci5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9pMzg2L2Fib3J0LWluc3RyLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2dlbmVyaWMvYWJvcnQuYzogVXNlIGxvY2sgYW5kIHN0YWdlIGNvdW50ZXIgdG8gcHJldmVudAoJYW55IGZvcm0gb2YgbG9vcC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RpbWViaXRzLmg6IERlZmluZSBDTEtfVENLIGFzIDEwMC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvdGltZWJpdHMuaDogRGVmaW5lIENMT0NLU19QRVJfU0VDCglhcyAxMDAwMDAwLiAgRGVmaW5lIENMS19UQ0sgYXMgMTAyNC4KCSogdGltZS90aW1lLmMgKENMS19UQ0spOiBEZWZpbmUgb25seSBpZiBub3QgYWxyZWFkeSBzZXQuCgoJKiB0aW1lL3N0cmZ0aW1lLmM6IERvbid0IHVzZSBgaXNkaWdpdCcgd2hlbiBjb21wdXRpbmcgZmllbGQgd2lkdGgKCWZyb20gc3RyaW5nIHNpbmNlIHRoZSBsb2NhbGUgbWlnaHQgaGF2ZSBtb3JlIHRoYW4gb25lIGRpZ2l0CglibG9jay4KCkZyaSBEZWMgMjAgMTI6Mzg6MTQgMTk5NiAgRGFycmVsIEhhbmtlcnNvbiAgPGhhbmtlZHJAbWFpbC5hdWJ1cm4uZWR1PgoKCSogcG9zaXgvZ2V0b3B0LmMgKGluIC1XIG9wdGlvbiBoYW5kbGluZyk6IFJldHVybiB3aGVuIG9wdGluZCA9PSBhcmdjLgoKVGh1IERlYyAxOSAxNDoyNDo1MCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIG5pcy9uc3NfbmlzL25pcy1hbGlhcy5jIChfbnNzX25pc19wYXJzZV9hbGlhc2VudCk6IEFkZCBjb25zdCB0bwoJdHlwZSBvZiBLRVkuCgoJKiBuaXMvbnNzX2NvbXBhdC9jb21wYXQtZ3JwLmM6IEluY2x1ZGUgdGhlIGRlY2xhcmF0aW9uIG9mIHRoZSBmaWxlCglwYXJzZXIuCgkqIG5pcy9uc3NfY29tcGF0L2NvbXBhdC1wd2QuYzogTGlrZXdpc2UuCgkqIG5pcy9uc3NfY29tcGF0L2NvbXBhdC1zcHdkLmM6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtZXRoZXJzLmM6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtZ3JwLmM6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtbmV0d29yay5jOiBMaWtld2lzZS4KCSogbmlzL25zc19uaXMvbmlzLXByb3RvLmM6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtcHdkLmM6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtcnBjLmM6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtc3B3ZC5jOiBMaWtld2lzZS4KCgkqIG5pcy9uc3NfY29tcGF0L2NvbXBhdC1ncnAuYyAoZ2V0Z3JlbnRfbmV4dF9uaXMsCiAJZ2V0Z3JlbnRfbmV4dF9maWxlKTogUGFzcyB0aGUgY29ycmVjdCB0eXBlIGZvciB0aGUgYnVmZmVyIHRvIHRoZQogCXBhcnNlciBmdW5jdGlvbi4KCSogbmlzL25zc19jb21wYXQvY29tcGF0LXB3ZC5jIChnZXRwd2VudF9uZXh0X25ldGdyLAoJZ2V0cHdlbnRfbmV4dF9uaXMsIGdldHB3ZW50X25leHRfZmlsZSk6IExpa2V3aXNlLgoJKiBuaXMvbnNzX2NvbXBhdC9jb21wYXQtc3B3ZC5jIChnZXRzcGVudF9uZXh0X25ldGdyLAoJZ2V0c3BlbnRfbmV4dF9uaXMsIGdldHNwZW50X25leHRfZmlsZSk6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtZXRoZXJzLmMgKGludGVybmFsX25pc19nZXRldGhlcmVudF9yLAoJX25zc19uaXNfZ2V0ZXRoZXJuYW1fciwgX25zc19uaXNfZ2V0ZXRoZXJieWFkZHJfcik6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtZ3JwLmMgKGludGVybmFsX25pc19nZXRncmVudF9yLAoJX25zc19uaXNfZ2V0Z3JuYW1fciwgX25zc19uaXNfZ2V0Z3JnaWRfcik6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtbmV0d29yay5jIChpbnRlcm5hbF9uaXNfZ2V0bmV0ZW50X3IsCglfbnNzX25pc19nZXRuZXRieW5hbWVfciwgX25zc19uaXNfZ2V0bmV0YnlhZGRyX3IpOiBMaWtld2lzZS4KCSogbmlzL25zc19uaXMvbmlzLXByb3RvLmMgKGludGVybmFsX25pc19nZXRwcm90b2VudF9yLAoJX25zc19uaXNfZ2V0cHJvdG9ieW5hbWVfciwgX25zc19uaXNfZ2V0cHJvdG9ieW51bWJlcl9yKTogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1wd2QuYyAoaW50ZXJuYWxfbmlzX2dldHB3ZW50X3IsCglfbnNzX25pc19nZXRwd25hbV9yLCBfbnNzX25pc19nZXRwd3VpZF9yKTogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1ycGMuYyAoaW50ZXJuYWxfbmlzX2dldHJwY2VudF9yLAoJX25zc19uaXNfZ2V0cnBjYnludW1iZXJfcik6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtc3B3ZC5jIChpbnRlcm5hbF9uaXNfZ2V0c3BlbnRfciwKCV9uc3NfbmlzX2dldHNwbmFtX3IpOiBMaWtld2lzZS4KClRodSBEZWMgMTkgMTM6Mzc6MTYgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3NldGptcC5jOiBOZXcgZmlsZS4KClRodSBEZWMgMTkgMjM6Mjg6MzMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiByZXNvbHYvcmVzb2x2Lmg6IFVwZGF0ZSBmcm9tIEJJTkQgNC45LjUtUDEuCgkqIHJlc29sdi9yZXNfY29tcC5jOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19kZWJ1Zy5jOiBMaWtld2lzZS4KCSogcmVzb2x2L0Jhbm5lcjogVXBkYXRlIHZlcnNpb24gbnVtYmVyLgoKVGh1IERlYyAxOSAyMDo1ODo1MyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGVsZi9kbGZjbi5oOiBBZGQgZXh0ZXJuICJDIiB3cmFwcGVyLgoKCSogaW8vdXRpbWUuaDogRG9uJ3QgZGVmaW5lIE5VTEwgc2luY2UgdGhpcyBpc24ndCBhbGxvd2VkIGluIFBPU0lYLgoJKiBpby9zeXMvc3RhdC5oOiBEZWNsYXJlIGBsc3RhdCcgb25seSBpZiBfX1VTRV9CU0QgfHwKCV9fVVNFX1hPUEVOX0VYVEVOREVELgoJKiBsb2NhbGUvbG9jYWxlLmg6IERlZmluZSBOVUxMLgoJKiBtYXRoL21hdGguYzogRG9uJ3QgaW5jbHVkZSA8ZXJybm8uaD4gdG8gZGVmaW5lIG1hdGggZXJyb3JzLgoJKiBzdGRsaWIvc3RkbGliLmg6IExpa2V3aXNlLgoJKiBwb3NpeC91bmlzdGQuaDogRG9uJ3QgZGVjbGFyZSBlbnZpcm9uLgoJKiBwb3NpeC9zeXMvdXRzbmFtZS5oIChzdHJ1Y3QgdXRzbmFtZSk6IERlY2xhcmUgbWVtYmVyIGRvbWFpbm5hbWUKCWFzIF9fZG9tYWlubmFtZSBpcyAhX19VU0VfR05VLgoJKiBzaWduYWwvc2lnbmFsLmg6IERlY2xhcmUgc2l6ZV90IG9ubHkgaWYgX19VU0VfQlNEIHx8CglfX1VTRV9YT1BFTl9FWFRFTkRFRC4KCSogc3RkaW8vc3RkaW8uaDogRG9uJ3QgZGVjbGFyZSBjdXNlcmlkIHdoZW4gX19VU0VfUE9TSVgsIGJ1dAoJaW5zdGVhZCB3aGVuIF9fVVNFX1hPUEVOLgoJKiBzdHJpbmcvc3RyaW5nLmg6IERlZmluZSBzdHJuZHVwIG9ubHkgaWYgX19VU0VfR05VLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jbG9jay5jOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvdGltZWJpdHMuaDogRGVmaW5lIENMT0NLU19QRVJfU0VDIGFzCgkxMDAwMDAwIHBlciBYL09wZW4gc3RhbmRhcmQuCgkqIGZlYXR1cmVzLmg6IEFkZCBjb2RlIHRvIHJlY29nbml6ZSBfUE9TSVhfQ19TT1VSQ0UgdmFsdWUgMTk5MzA5LgoJRGVmaW5lIF9fVVNFX1BPU0lYMTk5MzA5LgoJKiBwb3NpeC91bmlzdGQuaDogRGVjbGFyZSBmZGF0YXN5bmMgb25seSBpZiBfX1VTRV9QT1NJWDE5OTMwOS4KCSogdGltZS90aW1lLmM6IERlY2xhcmUgbmFub3NsZWVwIG9ubHkgaWYgX19VU0VfUE9TSVgxOTkzMDkuCglQYXRjaGVzIGJ5IFL8ZGlnZXIgSGVsc2NoIDxyaEB1bmlmaXguZGU+LgoKCSogbG9jYWxlL2xvY2FsZS5oOiBBZGQgZGVjbGFyYXRpb24gb2YgbmV3bG9jYWxlIGFuZCBmcmVlbG9jYWxlLgoKCSogbmV3LW1hbGxvYy9NYWtlZmlsZSAoZGlzdGlidXRlKTogQWRkIG10cmFjZS5hd2suCgkoZGlzdC1yb3V0aW5lcyk6IEFkZCBtY2hlY2sgYW5kIG10cmFjZS4KCShpbnN0YWxsLWxpYiwgbm9uLWxpYi5hKTogRGVmaW5lIGFzIGxpYm1jaGVjay5hLgoJKiBuZXctbWFsbG9jL21hbGxvYy5oOiBBZGQgZGVjbGFyYXRpb24gb2YgX19tYWxsb2NfaW5pdGlhbGl6ZWQuCgkqIG5ldy1tYWxsb2MvbWNoZWNrLmM6IE5ldyBmaWxlLgoJKiBuZXctbWFsbG9jL21jaGVjay5oOiBOZXcgZmlsZS4KCSogbmV3LW1hbGxvYy9tdHJhY2UuYzogTmV3IGZpbGUuCgkqIG5ldy1tYWxsb2MvbXRyYWNlLmF3azogTmV3IGZpbGUuCgoJKiBwb3NpeC91bmlzdGQuaDogQ29ycmVjdCBwcm90b3R5cGUgZm9yIHVzbGVlcC4KCSogc3lzZGVwcy91bml4L2JzZC91c2xlZXAuYzogRGUtQU5TSS1kZWNsZnkuICBDb3JyZWN0IHJldHVybiB0eXBlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC91c2xlZXAuYzogUmVhbCBpbXBsZW1lbnRhdGlvbiBiYXNlZCBvbgoJbmFub3NsZWVwLgoKCSogc2lnbmFsL3NpZ25hbC5oOiBDaGFuZ2UgcHJvdG95cGUgb2YgX19zaWdwYXVzZSB0byB0YWtlIHR3bwoJYXJndW1lbnRzLiAgUmVtb3ZlIHByb3RvdHlwZSBmb3Igc2lncGF1c2UuICBBZGQgdHdvIGRpZmZlcmVudAoJbWFjcm9zIG5hbWVkIHNpZ3BhdXNlIHNlbGVjdGVkIHdoZW4gX19VU0VfQlNEIG9yIF9fVVNFX1hPUEVOCglhcmUgZGVmaW5lZC4gIFRoaXMgaXMgbmVjZXNzYXJ5IHNpbmNlIHRoZSBvbGQgQlNEIGRlZmluaXRpb24KCW9mIHRoZWlzIGZ1bmN0aW9uIGNvbGxpZGVzIHdpdGggdGhlIFgvT3BlbiBkZWZpbml0aW9uLgoJKiBzeXNkZXBzL3Bvc2l4L3NpZ3BhdXNlLmM6IENoYW5nZSBmdW5jdGlvbiBkZWZpbml0aW9uIHRvIGFsc28KCWZpdCBYL09wZW4gZGVmaW5pdGlvbi4KCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfZXhwLlM6IE1ha2Ugc3VyZSBzdGFjayBpcyBlbXB0eSB3aGVuIHRoZQoJZnVuY3Rpb24gaXMgbGVmdC4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9leHBsLlM6IExpa2V3aXNlLgoJUGF0Y2ggYnkgSEogTHUuCgoxOTk2LTEyLTE3ICBQYXVsIEVnZ2VydCAgPGVnZ2VydEB0d2luc3VuLmNvbT4KCgkqIG1hbnksIG1hbnkgZmlsZXM6IFNwZWxsaW5nIGNvcnJlY3Rpb25zLgoJKiBjYXRnZXRzL2NhdGdldHNpbmZvLmggKG1tYXBwZWQpOgoJUmVuYW1lZCBmcm9tIG1tYXBlZCAoaW4gc3RydWN0IGNhdGFsb2dfaW5mby5zdGF0dXMpLgoJKiBtYWNoL2Vycl9rZXJuLnN1YiAoZXJyX2NvZGVzX3VuaXgpLCBzdHJpbmcvc3RyYXRjbGlmZi5jIChtYWluKToKCUZpeCBzcGVsbGluZyBpbiBtZXNzYWdlLgoJKiBwby9saWJjLnBvdDogRml4IHNwZWxsaW5nIGluIG1lc3NhZ2UgZm9yIGB6aWMnOyB0aGlzIGFudGljaXBhdGVzCglhIGZpeCBpbiB0aGUgdHpjb2RlIGRpc3RyaWJ1dGlvbi4KCldlZCBEZWMgMTggMTU6NDg6MDIgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB0aW1lL3N0cmZ0aW1lLmM6IEltcGxlbWVudCBeIGZsYWcgdG8gY2F1c2Ugb3V0cHV0IGJlIGNvbnZlcnRlZAoJdG8gdXNlIHVwcGVyIGNhc2UgY2hhcmFjdGVycy4KCgkqIHRpbWUvemljLmM6IFVwZGF0ZSBmcm9tIEFETyB0emNvZGUxOTk2bi4KCldlZCBEZWMgMTggMTQ6Mjk6MjQgMTk5NiAgRXJpayBOYWdndW0gIDxlcmlrQG5hZ2d1bS5ubz4KCgkqIHRpbWUvc3RyZnRpbWUuYyAoYWRkKTogRG9uJ3QgY2hhbmdlIGdsb2JhbCBgaScgdW50aWwgYWxsIGlzIG92ZXIuCglEZWZpbmUgTlVMTCBpcyBub3QgYWxyZWFkeSBkZWZpbmVkLgoKVHVlIERlYyAxNyAwOTo0OTowMyAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGxpYmlvL2lvdnNwcmludGYuYyAoX0lPX3ZzcHJpbnRmKTogQ2hhbmdlIGAmc2YnIHRvIGAmc2YuX3NiZi5fZicKCXRvIGF2b2lkIHRoZSBuZWVkIGZvciBhIGNhc3QuCgkqIGxpYmlvL2lvdnNzY2FuZi5jIChfSU9fdnNzY2FuZik6IExpa2V3aXNlLgoKV2VkIERlYyAxOCAwMzozMTo1OCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGRpcmVudC9zY2FuZGlyLmM6IFVuZG8gY2hhbmdlIGZyb20gTW9uIERlYyAgMiAxNTozMjoxNSAxOTk2LgoJVGhlIHN0cmVhbSBpcyBwcml2YXRlIGFuZCB1c2FnZXMgb3V0c2lkZSBnbGliYyBkb24ndCBjYXJlIGFib3V0CglyZWVudHJhbmN5LgoJKiBpby9mdHMuYzogTGlrZXdpc2UuCgkqIGlvL2Z0dy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9nZXRjd2QuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvdHR5bmFtZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC90dHluYW1lX3IuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvZ2xvYi5jOiBMaWtld2lzZS4KCgkqIGxpYmlvL2lvdnNwcmludGYuYzogQWRkIGNhc3QgdG8gcHJldmVudCB3YXJuaW5nLgoJKiBsaWJpby9pb3Zzc2NhbmYuYzogTGlrZXdpc2UuCgoJKiBsaWJpby9saWJpb1AuaDogRGVmaW5lIG1tYXAgdG8gX19tbWFwIGFuZCBtdW5tYXAgdG8gX19tdW5tYXAKCXRvIGtlZXAgbmFtZXNwYWNlIGNsZWFuLgoKCSogbmV3LW1hbGxvYy9tYWxsb2MuYzogVXBkYXRlIHRvIGxhc3QgdmVyc2lvbiBmcm9tIFdvbGZyYW0gR2xvZ2VyLgoJQWRkIGhvb2tzIGFuZCBjaGVjayBmdW5jdGlvbnMgZnJvbSBvbGQgR05VIG1hbGxvYy4KCSogbmV3LW1hbGxvYy9tYWxsb2MuaDogTGlrZXdpc2UuCgoJKiBuaXMveXBjbG50LmM6IFJlbW92ZSBwcm90b3R5cGUgZm9yIHhkcl9mcmVlLgoJKiBzdW5ycGMvcnBjL3hkci5oOiBBZGQgcHJvdG90eXBlIGZvciB4ZHJfZnJlZS4KCgkqIG1hbnVhbC9uc3MudGV4aTogQ29ycmVjdCBkZXNjcmlwdGlvbiBvZiBkZWZhdWx0IHZhbHVlcyBhbmQgZG9uJ3QKCW1lYW50aW9uIE5TUyBhcyBhbiBhZGQtb24uCgoJKiBuc3MvZ3JwLWxvb2t1cC5jOiBQcm92aWRlIGRlZmF1bHQgdmFsdWUgYXMKCSJjb21wYXQgW05PVEZPVU5EPXJldHVybl0gZmlsZXMiLgoJKiBuc3MvcHdkLWxvb2t1cC5jOiBMaWtld2lzZS4KCSogbnNzL3Nwd2QtbG9va3VwLmM6IExpa2V3aXNlLgoJKiBuc3MvbmV0d29yay1sb29rdXAuYzogQ29ycmVjdCBkZWZhdWx0IHRvCgkiZG5zIFshVU5BVkFJTD1yZXR1cm5dIGZpbGVzIi4KCSogbnNzL25zc3dpdGNoLmM6IENoYW5nZSBkZWZhdWx0LWRlZmF1bHQgdmFsdWUgdG8gIm5pcwoJW05PVEZPVU5EPXJldHVybl0gZmlsZXMiIHNpbmNlIGNvbXBhdCBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgZ3JvdXAsCglwYXNzd2QsIGFuZCBzaGFkb3cuCgoJKiBzdGRsaWIvb25fZXhpdC5jIChvbl9leGl0KTogUmVuYW1lIHRvIF9fb25fZXhpdCBhbmQgbWFrZSBvbGQgbmFtZQoJYSB3ZWFrIGFsaWFzLgoJKiBzdGRsaWIvc3RkbGliLmg6IEFkZCBwcm90b3R5cGUgZm9yIF9fb25fZXhpdC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NjaGVkYml0cy5oOiBBZGQgcHJvdG90eXBlIGZvciBfX2Nsb25lLgoKCSogdGltZS9NYWtlZmlsZTogVW5kbyBjaGFuZ2UgZnJvbSBTdW4gRGVjICA4IDA2OjU2OjQ5IDE5OTYuCglUaGUgbmV3IG1hbGxvYyBub3cgaGFzIG1jaGVjay4KCSogdGltZS9hcC5jOiBMaWtld2lzZS4KCgkqIHRpbWUvdHpzZXQuYyAoX190enNldCk6IFJlbmFtZSB0byBfX3R6c2V0X2ludGVybmFsLgoJKHR6c2V0KTogUmVuYW1lIHRvIF9fdHpzZXQuICBNYWtlIHR6c2V0IGEgd2VhayBhbGlhcyBmb3IgX190enNldC4KCSogdGltZS9sb2NhbHRpbWUuYzogVXNlIF9fdHpzZXRfaW50ZXJuYWwgbm90IF9fdHpzZXQuCgkqIHRpbWUvc3RyZnRpbWUuYyBbX0xJQkNdOiBEZWZpbmUgdHpuYW1lIGFzIF9fdHpuYW1lIGFuZCB0enNldAoJYXMgX190enNldCB0byBwcmV2ZW50IG5hbWVzcGFjZSBwb2xsdXRpb24uCgoJKiB3Y3R5cGUvaXN3Y3R5cGUuaCAoaWN3Y3R5cGUpOiBSZW5hbWUgdG8gX19pc3djdHlwZS4gIE1ha2UgaXN3Y3R5cGUKCWEgd2VhayBhbGlhcyBvZiBfX2lzd2N0eXBlLgoJKiB3Y3R5cGUvd2N0eXBlLmg6IEFkZCBwcm90b3R5cGUgZm9yIF9faXN3Y3R5cGUuCgkoaXN3YWxudW0sIGlzd2FscGhhLCBpc3djbnRybCwgaXN3ZGlnaXQsIGlzd2xvd2VyLCBpc3dncmFwaCwKCWlzd3ByaW50LCBpc3dwdW5jdCwgaXN3c3BhY2UsIGlzd3VwcGVyLCBpc3d4ZGlnaXQsIGlzd2JsYW5rKToKCVVzZSBfX2lzd2N0eXBlIGZvciB0aGUgdGVzdCwgbm90IGlzd2N0eXBlLgoKMTk5Ni0xMi0xNiAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiBodXJkL2h1cmQvc2lncHJlZW1wdC5oCgkoc3RydWN0IGh1cmRfc2lnbmFsX3ByZWVtcHRvci5wcmVlbXB0b3IsIF9odXJkc2lnX3ByZWVtcHRvcnMpLAoJaHVyZC9odXJkL3NpZ25hbC5oIChzdHJ1Y3QgaHVyZF9zaWdzdGF0ZS5wcmVlbXB0b3JzKSwKCWh1cmQvaHVyZGZhdWx0LmMsIGh1cmQvaHVyZGZhdWx0LmggKF9odXJkc2lnX2ZhdWx0X3ByZWVtcHRvciksCglodXJkL2h1cmRzaWcuYyAoX2h1cmRzaWdfcHJlZW1wdGVycyk6CglSZW5hbWVkIHRvIGZpeCBzcGVsbGluZyBmcm9tIGBwcmVlbXB0ZXInIHRvIGBwcmVlbXB0b3InLgoJQWxsIHVzZXMgY2hhbmdlZC4KCjE5OTYtMTItMTUgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QHR3aW5zdW4uY29tPgoKCSogY3RpbWUuYyAoY3RpbWUpOiBSZXR1cm4gYXNjdGltZSAobG9jYWx0aW1lICh0KSksIGFzIHRoZSBDCglzdGFuZGFyZCByZXF1aXJlcy4KClR1ZSBEZWMgMTcgMDI6MDU6NDggMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9saWJjLWxvY2suaCAoX19saWJjX2xvY2tfdHJ5bG9jayk6IEludmVydCByZXR1cm4KCXZhbHVlIGJlY2F1c2UgTWFjaC9jdGhyZWFkcyB1c2VzIHRoZSBvcHBvc2l0ZSBjb252ZW50aW9uIGZyb20KCVBvc2l4L2dsaWJjLgoKTW9uIERlYyAxNiAyMjo0MTowMSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN0ZGlvLWNvbW1vbi9mY2xvc2VhbGwuYzogQ29ycmVjdCB0ZXN0IG9mIGFscmVhZHlfY2FsbGVkLgoJUmVwb3J0ZWQgYnkgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRy4KCk1vbiBEZWMgMTYgMTQ6NTI6MDcgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIG1hY2gvbG9jay1pbnRlcm4uaCAoX19tdXRleF90cnlfbG9jayk6IE5ldyBmdW5jdGlvbi4KClN1biBEZWMgMTUgMTY6MzM6NDQgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiB0ZXJtaW9zL3N5cy90dHlkZWZhdWx0cy5oIChUVFlERUZfT0ZMQUcpOiBPbmx5IHVzZSBPWFRBQlMgaWYKCWRlZmluZWQsIGVsc2UgWFRBQlMuCgkoQ0VPTCwgQ1NUQVRVUyk6IFVzZSBfUE9TSVhfVkRJU0FCTEUgaWYgZGVmaW5lZC4KClN1biBEZWMgMTUgMTE6NTY6MTkgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL21yZW1hcC5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9EaXN0OiBEaXN0cmlidXRlIGl0LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL01ha2VmaWxlIChzeXNkZXBfcm91dGluZXMpOiBBZGQgbXJlbWFwLgoKTW9uIERlYyAxNiAwMjoxNTo0MiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCglNYWtlIHN1cmUgdHpzZXQoKSBzZXRzIGFsd2F5cyB0em5hbWVbXS4KCSogdGltZS90emZpbGUuYzogRGUtQU5TSS1kZWNsZnkuCgkoZmluZF90cmFuc2l0aW9uKTogTmV3IGZ1bmN0aW9uLiAgU2V0IHR6bmFtZSBhY2NvcmRpbmcgdG8gZ2l2ZW4gdGltZS4KCShfX3R6cmVhZF9maWxlKTogVXNlIGZpbmRfdHJhbnNpdGlvbiB0byBzZXQgdHpuYW1lLgoJKF9fdHpmaWxlX2NvbXB1dGUpOiBVc2UgZmluZF90cmFuc2l0aW9uIGluc3RlYWQgb2YgZG9pbmcgdGhlIHdvcmsKCXNlbGYuCgkqIHRpbWUvdHpzZXQuYyAodHpzZXQpOiBTZXQgdHpuYW1lW10gZGlyZWN0bHkgb25seSBpZiAhX191c2VfdHpmaWxlLgoKU3VuIERlYyAxNSAxNjo1MjozNCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxvZ2luL3V0bXAtZmlsZS5jIChwdXR1dGxpbmVfZmlsZSk6IE9wZW4gZmlsZSBpZiBjbG9zZWQuCglSZXBvcnRlZCBieSBSb21hIEVremhhbm92IDxla3poYW5vdkBwYXJhZ3JhcGguY29tPi4KCVVzZSBmY250bCBpbnN0ZWFkIG9mIGZsb2NrLgoKU3VuIERlYyAxNSAxNDoyMDo1MSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG1hbnVhbC90aW1lLnRleGk6IFVwZGF0ZSBkb2N1bWVudGF0aW9uIG9mIHN0cmZ0aW1lIGZ1bmN0aW9uLgoKU3VuIERlYyAxNSAwMTo1MzoyMCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIE1ha2VmaWxlIChzdWJkaXJzKTogQ2hhbmdlIGNyeXB0IHRvIG1kNS1jcnlwdC4KCSogY3J5cHQvTWFrZWZpbGUsIGNyeXB0L21kNS1jcnlwdC5jLCBjcnlwdC9tZDUuYywgY3J5cHQvbWQ1LmgsCgljcnlwdC9tZDVjLXRlc3QuYywgY3J5cHQvbWQ1dGVzdC5jOiBNb3ZlIHRvIG5ldyBkaXJlY3RvcnkKCW1kNS1jcnlwdC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvY29uZmlndXJlLmluOiBSZWZlciB0byBsaW51eHRocmVhZHMgYW5kCgljcnlwdCBpbnN0ZWFkIG9mIExpbnV4VGhyZWFkcyBhbmQgZGVzLWNyeXB0LgoKCSogTWFrZWZpbGUgKHN1YmRpcnMpOiBBZGQgbnNzIGJhY2suCgkqIHN5c2RlcHMvdW5peC9pbmV0L1N1YmRpcnM6IE1vdmUgbmlzIHRvIGVuZCBvZiBmaWxlIHRvIGZ1bGZpbGwKCWRlcGVuZGVuY2llcy4KCgkqIGxpYmlvL2lvZmNsb3NlLmM6IEltcGxlbWVudCBmY2xvc2UoTlVMTCkgYXMgY2xvc2luZyBhbGwgc3RyZWFtcy4KCSogc3RkaW8tY29tbW9uL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBmY2xvc2VhbGwuCgkqIHN0ZGlvLWNvbW1vbi9mY2xvc2VhbGwuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvZ2VuZXJpYy9hYm9ydC5jOiBNYWtlIGltcGxlbWVudGF0aW9uIFBPU0lYLjEgY29tcGF0aWJsZS4KCgkqIHN5c2RlcHMvbWFjaC9saWJjLWxvY2suaDogQWRkIGRlZmluaXRpb24gb2YgX19saWJjX2xvY2tfdHJ5bG9jay4KCSogc3lzZGVwcy9zdHViL2xpYmMtbG9jay5oOiBEZWZpbmUgX19saWJjX2xvY2tfdHJ5bG9jayB0byBhbHdheXMKCXJldHVybiAwLgoKCSogc3RkaW8tY29tbW9uL3ByaW50Zi5oOiBEZWZpbmUgTUlOIGFuZCBNQVggb25seSBpZiBub3QgYWxyZWFkeQoJZGVmaW5lZC4KCgkqIHN0ZGlvLWNvbW1vbi92ZnByaW50Zi5jOiBTZXQgZXJybm8gdG8gRUJBREYgaWYgc3RyZWFtIGRvZXMgbm90CglhbGxvdyB3cml0aW5nLiAgUmVxdWlyZWQgYnkgUE9TSVguMS4KCgkqIGxpYmlvL2xpYmlvUC5oIChDSEVDS19GSUxFKTogVXNlIE1BWUJFX1NFVF9FSU5WQUwgaW5zdGVhZCBvZgoJYXNzaWdubWVudC4KCgkqIGludGVycC5jOiBVcGRhdGUgY29weXJpZ2h0LgoJKiBsaWJpby9jbGVhcmVyci5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9zZWVrb2ZmLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb3NlZWtwb3MuYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2ZjbG9zZS5jOiBMaWtld2lzZS4KCSogc3RkaW8vZmZsdXMuYzogTGlrZXdpc2UuCgoJKiBsaWJpby9saWJpby5oIFshX0lPX01UU0FGRV9JT106IERlZmluZSBfSU9fY2xlYW51cF9yZWdpb25fc3RhcnQKCWFuZCBfSU9fY2xlYW51cF9yZWdpb25fZW5kIGFzIGVtcHR5LgoJKiBsaWJpby9mZ2V0Yy5jOiBVc2UgX0lPX2NsZWFudXBfcmVnaW9uX3N0YXJ0IGFuZAoJX0lPX2NsZWFudXBfcmVnaW9uX2VuZCBpbnN0ZWFkIG9mIF9fbGliY19jbGVhbnVwX3JlZ2lvbl9zdGFydCBhbmQKCV9fbGliY19jbGVhbnVwX3JlZ2lvbl9lbmQuCgkqIGxpYmlvL2ZwdXRjLmM6IExpa2V3aXNlLgoJKiBsaWJpby9mcmVvcGVuLmM6IExpa2V3aXNlLgoJKiBsaWJpby9mc2Vlay5jOiBMaWtld2lzZS4KCSogbGliaW8vZ2V0Yy5jOiBMaWtld2lzZS4KCSogbGliaW8vZ2V0Y2hhci5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9mY2xvc2UuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZmZsdXNoLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb2ZnZXRwb3MuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZmdldHMuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZnB1dHMuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZnJlYWQuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZnNldHBvcy5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9mdGVsbC5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9md3JpdGUuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZ2V0ZGVsaW0uYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZ2V0cy5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9wdXRzLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb3NldGJ1ZmZlci5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9zZXR2YnVmLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb3VuZ2V0Yy5jOiBMaWtld2lzZS4KCgkqIGxpYmlvL2lvdnNwaW50Zi5jOiBVc2UgY2xlYW51cCBoYW5kbGVyIHRvIG1ha2Ugc3VyZSBubyBkYW5nbGluZwoJbG9ja3MgY2FuIHN0YXkgb3Zlci4KCSogbGliaW8vaW92c3NjYW5mLmM6IExpa2V3aXNlLgoKCSogbGliaW8vZ2Vub3BzLmM6IFVzZSBfSU9fbG9ja19pbml0X3JlY3Vyc2l2ZSBhbmQgX0lPX2xvY2tfZmluaQoJaW5zdGVhZCBvZiBfX2xpYmNfbG9ja19pbml0X3JlY3Vyc2l2ZSBhbmQgX19saWJjX2xvY2tfZmluaS4KCgkqIGxpYmlvL2ZpbGVkb2FsbG9jLmM6IE9ubHkgdXNlIF9faXNhdHR5IHdoZW4gY29tcGlsaW5nIEdOVSBsaWJjLgoJT3RoZXJ3aXNlIHVzZSBpc2F0dHkuCgkqIGxpYmlvL2ZpbGVvcHMuYzogTGlrZXdpc2UgZm9yIF9fb3BlbiBhbmQgb3Blbi4KCgkqIGxvZ2luL3V0bXBfZmlsZS5jIChnZXR1dGVudF9yX2ZpbGUpOiBVc2UgZmNudGwgaW5zdGVhZCBvZgoJZmxvY2suCgoJKiBuaXMveXBjbG50Lmg6IEFkZCBtb3JlIGNhc3RzIHRvIHByZXZlbnQgd2FybmluZ3MuCgoJKiBuc3MvTWFrZWZpbGUgKHNlcnZpY2VzKTogUmVtb3ZlIGRucy4KCShsaWJuc3NfZG5zLCBsaWJuc3NfZG5zLWluaGliaXQtbyk6IFJlbW92ZSBkZWZpbml0aW9uLgoJKCQob2JqcGZ4KWxpYm5zc19kbnMuc28pOiBSZW1vdmVkLgoJKiBuc3MvbnNzX2Rucy9kbnMtaG9zdC5jLCBuc3MvbnNzX2Rucy9kbnMtbmV0d29yay5jOiBNb3ZlZCB0by4uLgoJKiByZXNvbHYvbnNzX2RuczogLi4uaGVyZS4KCSogcmVzb2x2L01ha2VmaWxlIChleHRyYS1saWJzKTogQWRkIGxpYm5zc19kbnMuCgkobGlibnNzX2Rucy1yb3V0aW5lcywgbGlibnNzX2Rucy1pbmhpYml0LW8pOiBEZWZpbmUgYXMgaW4KCW5zcy9NYWtlZmlsZS4KCgkqIG5zcy9YWFgtbG9va3VwLmM6IENhbGwgX19uc3NfZGF0YWJhc2VfbG9va3VwIHdpdGggbmV3IGFyZ3VtZW50CglzcGVjaWZ5aW5nIGFsdGVybmF0ZSBuYW1lIGZvciBlbnRyeSBpbiAvZXRjL25zc3dpdGNoLmNvbmYKCSogbnNzL25zc3dpdGNoLmM6IElmIG5vIGVudHJ5IHdpdGggcHJpbWFyeSBuYW1lIGlzIGZvdW5kIGluCgkvZXRjL25zc3dpdGNoLmNvbmYgdHJ5IGFsdGVybmF0ZSBuYW1lIGlmIGdpdmVuLgoJKiBuc3MvbnNzd2l0Y2guaDogQWRkIG5ldyBwYXJhbWV0ZXIgaW4gcHJvdG90eXBlIGZvcgoJX19uc3NfZGF0YWJhc2VfbG9va3VwLgoJKiBuc3Mvc3B3ZC1sb29rdXAuYzogUHJvdmlkZSBhbHRlcm5hdGl2ZSBlbnRyeSBuYW1lIHRvIGxvb2sgZm9yLgoJVGhpcyBtYWtlcyBvdXIgTlNTIGNvbXBhdGlibGUgd2l0aCBTb2xhcmlzJyBuc3N3aXRjaC5jb25mIGZpbGVzLgoKCSogc3RyaW5nL3RzdC1zdHJsZW4uYzogQ2hhbmdlIGFsbCBjb3VudGluZyB2YXJpYWJsZXMgdG8gdHlwZSBzaXplX3QKCXRvIHByZXZlbnQgd2FybmluZ3MuCgoJKiBzeXNkZXBzL3Bvc2l4L2ZwYXRoY29uZi5jOiBVcGRhdGUgY29weXJpZ2h0LgoJKiBzeXNkZXBzL3Bvc2l4L3BhdGhjb25mLmM6IERvbid0IGNhbGwgZnBhdGhjb25mIHRvIGRvIHRoZSB3b3JrLgoJT3BlbmluZyB0aGUgZmlsZSBhdCB0aGlzIHBhdGggbWF5IGZhaWwgaWYgaXQgaXMgYSBGSUZPIG9yIHBpcGUuCgoJVGhlc2UgY2hhbmdlcyBtYWtlIHRoZSB0aW1lIGltcGxlbWVudGF0aW9uIFBPU0lYLjEgY29tcGxpYW50LgoJKiB0aW1lL2xvY2FsdGltZS5jIChfX2xvY2FsdGltZV9yKTogQWx3YXlzIGNhbGwgX190enNldCBub3Qgb25seQoJaWYgX190enNldF9ydW4gaXMgemVyby4KCSogdGltZS9zdHJmdGltZS5jOiBBZGQgZGVmaW5pdGlvbiBvZiBtZW1zZXRfc3BhY2UgdG8gaGVscCB0bwoJcmVkdWNlIGZvciBzeXN0ZW1zIHdoaWNoIGhhdmUgbWVtc2V0LgoJKHN0cmZ0aW1lKTogRG9uJ3QgdXNlIHRtX3pvbmUgbWVtYmVyIG9mIGFyZ3VtZW50IGZvciB6b25lIG5hbWUuCglJbnN0ZWFkIGFsd2F5cyB1c2UgdHpuYW1lW10uCglDYWxsIHR6c2V0KCkgYXMgcmVxdWlyZWQgYnkgUE9TSVguMSBiZWZvcmUgYW55IGFjdGlvbi4KCSogdGltZS90enNldC5jICh0enNldCk6IFNldCB0em5hbWVbXSBhcyByZXF1aXJlZCBieSBQT1NJWC4xLgoJUmVtb3ZlIGdsb2JhbCB2YXJpYWJsZSBfX3R6c2V0X3J1bi4gIF9fdHpzZXQgaXMgbm93IGNhbGxlZCBhbHdheXMKCXdoZW4gYSBkZXBlbmRlbnQgZnVuY3Rpb24gaXMgdXNlZC4KCShfX3R6c2V0KTogQ2FjaGluZyBoYXBwZW5zIGJhc2VkIG9uIHRoZSBjb250ZW50cyBvZiB0aGUKCWVudmlyb25tZW50IHZhcmlhYmxlIFRaLgoKRnJpIERlYyAxMyAwMTowNjo1MiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3BhdGhzLmg6IEFkZCBfUEFUSF9LTE9HLgoKVGh1IERlYyAxMiAwOToxNjozNSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHJlbGxucy1zaDogQ29ycmVjdGx5IGhhbmRsZSBhIHJlbGF0aXZlIHNvdXJjZSBmaWxlIG5hbWUuCgpXZWQgRGVjIDExIDE5OjE4OjQwIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogbG9naW4vdXRtcF9maWxlLmMgKHNldHV0ZW50X2ZpbGUpOiBTZWVrIGJhY2sgdG8gYmVnaW5uaW5nIG9mIHRoZQoJZmlsZSBpZiByZXNldHRpbmcuCgpUaHUgRGVjIDEyIDE2OjM5OjEyIDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBodXJkL2h1cmRpbml0LmMgKG1hcDApOiBEZWxldGUgZnVuY3Rpb24uICBEb24ndCBkbyB0aGlzIG9uCglfaHVyZF9wcmVpbml0X2hvb2suCgkqIGh1cmQvaHVyZHN0YXJ0dXAuYyAoX2h1cmRfc3RhcnR1cCk6IE1hcCBwYWdlIHplcm8gcmVkem9uZSBoZXJlLgoKVGh1IERlYyAxMiAwMzozMjoyMSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxpYmlvL19HX2NvbmZpZy5oOiBBZGQgZGVmaW5pdGlvbiBvZiBfR19pbnQxNl90LCBfR19pbnQzMl90LAoJX0dfdWludDE2X3QsIF9HX3VpbjMyX3QsIF9HX0hBVkVfQk9PTCwgX0dfSEFWRV9NTUFQLCBhbmQKCV9HX0FSR1MuCgoJQ2hhbmdlIGxpYmlvIGJ1ZmZlciBoYW5kbGluZyB0byBhbGxvY2F0ZSBpbnRlcm5hbCBidWZmZXJzIHVzaW5nCgltbWFwIGlmIHBvc3NpYmxlLgoJKiBsaWJpby9maWxlZG9hbGxvYy5jIChfSU9fZmlsZV9kb2FsbG9jYXRlKTogQ2hhbmdlIGNhbGwgdG8KCUFMTE9DX0JVRi4KCSogbGliaW8vZ2Vub3BzLmMgKF9JT19zZXRiLCBfSU9fZGVmYXVsdF9maW5pc2gpOiBDaGFuZ2UgY2FsbAoJdG8gRlJFRV9CVUYuCgkoX0lPX2RlZmF1bHRfZG9hbGxvY2F0ZSk6IENoYW5nZSBjYWxsIHRvIEFMTE9DX0JVRi4KCSogbGliaW8vbGliaW9QLmg6IENoYW5nZSBkZWZpbml0aW9uIG9mIEFMTE9DX0JVRiBhbmQgRlJFRV9CVUYKCXRvIHVzZSBtbWFwL211bm1hcCB3aGVuIHBvc3NpYmxlLgoJKiBsaWJpby9tZW1zdHJlYW0uYzogRG9uJ3QgdXNlIEFMTE9DX0JVRiwgYnV0IGRpcmVjdGx5IG1hbGxvYy4KCSogbGliaW8vdmFzcHJpbnRmLmM6IExpa2V3aXNlLgoJUGF0Y2ggYnkgSEogTHUuCgoJKiBsaWJpby9saWJpby5oOiBEZWZpbmUgTlVMTCBhcyBfX251bGwgb25seSBmb3IgZ2NjLTIuOCBhbmQgdXAuCgkqIGxpYmlvL2xpYmlvUC5oOiBMaWtld2lzZS4KCgkqIGxpYmlvL2ZpbGVvcHMuYyAoX0lPX2ZpbGVfcmVhZCwgX0lPX2ZpbGVfd3JpdGUpOiBEb24ndAoJcmVzdGFydCBzeXNjYWxsIHdoZW4gRUlOVFIgd2FzIHJldHVybmVkLiAgTmVjZXNzYXJ5IGZvciBQT1NJWC4xLgoKCSogbGliaW8vc3Ryb3BzLmMgKF9JT19zdHJfb3ZlcmZsb3cpOiBBZGQgY2FzdCB0byBwcmV2ZW50IHdhcm5pbmcuCgoJKiBuZXctbWFsbG9jL21hbGxvYy5jIChoZWFwX3RyaW0pOiBDb3JyZWN0bHkgcGxhY2UgcGFyZW50aGVzZXMgdG8KCXByZXZlbnQgd2FybmluZ3MuCgoJKiBuaXMvTWFrZWZpbGU6IFJlbW92ZSBydWxlcyBmb3IgYnNkLXRvb2xzIHdoaWNoIGFyZSBub3QgcGFydAoJb2YgZ2xpYmMuCglQYXRjaCBieSBUaG9yc3RlbiBLdWt1ay4KCgkqIG5pcy95cGNsbnQuYzogQWRkIHByb3RvdHlwZSBmb3IgeGRyX2ZyZWUuCglBZGQgY29uc3QgdG8gZmlyc3QgcGFyYW1ldGVyIGZvciBfX3lwX2JpbmQuCgkqIG5pcy9uc3NfY29tcGF0L2NvbXBhdC1wd2QuYyAoZ2V0cHdlbnRfbmV4dF9uZXRnciwgZ2V0cHdlbnRfbmV4dF9uaXMsCglnZXRwd2VudF9uZXh0X2ZpbGUpOiBWYXJpYWJsZSBgcDJsZW4nIG11c3QgaGF2ZSB0eXBlIHNpemVfdC4KCSogbmlzL25zc19uaXMvbmlzLWFsaWFzLmM6IEFkZCBjYXN0cyB0byBwcmV2ZW50IHdhcm5pbmdzLgoJKiBuaXMvbnNzX25pcy9uaXMtZXRoZXJzLmM6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtZ3JwLmM6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtaG9zdHMuYzogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1uZXR3b3JrLmM6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtcHJvdG8uYzogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1wd2QuYzogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1ycGMuYzogTGlrZXdpc2UuCgkqIG5pcy9uc3NfbmlzL25pcy1zZXJ2aWNlLmM6IExpa2V3aXNlLgoJKiBuaXMvbnNzX25pcy9uaXMtc3B3ZC5jOiBMaWtld2lzZS4KCgkqIG5pcy9ycGNzdmMveXBfcHJvdC5oICh5cHJlcV9rZXkpOiBDaGFuZ2UgdHlwZSBvZiBtZW1iZXJzIHRvCglgY29uc3QgY2hhciAqJy4KCSh5cG1hcGxpc3QpOiBDaGFuZ2UgbWVtYmVyIG5hbWVzIHRvIGBtYXAnIGFuZCBgbmV4dCcgYW5kIHByb3ZpZGUKCSNkZWZpbmVzIGZvciBvbGQgbmFtZXMuCglQYXRjaCBieSBUaG9yc3RlbiBLdWt1ay4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcGFyc2UuYyAocGFyc2VfbGluZSwgcGFyc2VfbGlzdCk6IENoYW5nZQoJdHlwZSBmb3IgYGRhdGFsZW4nIHBhcmFtZXRlciB0byBzaXplX3QuCgoJKiBzaHNkb3cvbGNrcHdkZi5jOiBVc2UgZmNudGwgZm9ybG9ja2luZywgbm90IGZsb2NrLgoKCSogc3RkaW8tY29tbW9uL3ByaW50Zi5jIFtVU0VfSU5fTElCSU9dOiBQcm92aWRlIGFsaWFzIF9JT19wcmludGYKCWZvciBwcmludGYuCgkqIHN0ZGlvLWNvbW1vbi9zc2NhbmYuYyBbVVNFX0lOX0xJQklPXTogUHJvdmlkZSBhbGlhcyBfSU9fc3NjYW5mCglmb3Igc3NjYW5mLgoJUGF0Y2ggYnkgSEogTHUuCgoJKiBzdGRpby1jb21tb24vdG1wZmlsZS5jOiBVcGRhdGUgY29weXJpZ2h0LgoKCSogc3RkaW8tY29tbW9uL3Zmc2NhbmYuYzogQ29ycmVjdGx5IGhhbmRsZSBFSU5UUiBlcnJvciBmcm9tIGZnZXRjCglmdW5jdGlvbi4KCURvbid0IGVhdCB3aGl0ZSBzcGFjZSBmb3IgYEMnIGZvcm1hdC4KCgkqIHN0ZGxpYi90c3Qtc3RydG9sLmMgW34wVUwgIT0gMHhmZmZmZmZmZl06IEZpeCB0eXBvIGluIHRlc3QgZGF0YS4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9hYm9ydC5jOiBVcGRhdGUgY29weXJpZ2h0LiAgRGUtQU5TSS1kZWNsZnkuCgkqIHN5c2RlcHMvaTM4Ni9hYm9ydC5jOiBSZW1vdmVkLiAgVGhpcyB2ZXJzaW9uIGRvZXMgbm90IHVzZQoJc2lnbmFsIFNJR0FCUlQuCgoJKiBzeXNkZXBzL2kzODYvZnB1L19fbWF0aC5oOiBEZWZpbmUgX19OT19NQVRIX0lOTElORVMgaWYgbm90IHVzaW5nCglnY2MtMi44IG9yIHVwLgoJUGF0Y2ggYnkgSEogTHUuCgoJKiBzeXNkZXBzL3Bvc2l4L3RlbXBuYW1lLmM6IFRlc3QgZm9yIGVycm9yIGJ1dCBFRVhJU1QgYWZ0ZXIgb3BlbgoJY2FsbC4gIElmIEVNRklMRSwgRU5GSUxFLCBvciBFSU5UUiByZXR1cm4gd2l0aCBlcnJvci4KCldlZCBEZWMgMTEgMTQ6NDM6NTIgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBnbnUtdmVyc2lvbnMuaDogU2V0IF9HTlVfT0JTVEFDS19JTlRFUkZBQ0VfVkVSU0lPTiBiYWNrIHRvIDEuCglXZSBhcmUgY29tcGF0aWJsZSBhZ2Fpbi4KCSogbmV3LW1hbGxvYy9vYnN0YWNrLmggKHN0cnVjdCBvYnN0YWNrKTogQWRkIGJhY2sgYWxsb2NfZmFpbGVkIGJpdAoJZXZlbiB0aG91Z2ggaXQgaXMgbm90IHVzZWQuCgkqIG1hbGxvYy9vYnN0YWNrLmg6IExpa2V3aXNlLgoJKiBuZXctbWFsbG9jL29ic3RhY2suYyAoX29ic3RhY2tfYmVnaW4sIF9vYnN0YWNrX2JlZ2luXzEpOiBJbml0aWFsaXplCglhbGxvY19mYWlsZWQgYml0IHRvIDAuCgoJKiB0aW1lL3N0cmZ0aW1lLmM6IEV4dGVuZCBmb3IgRW1hY3MnIG5lZWRzLiAgUmVjb2duaXplIGZpZWxkIHdpZHRoLAoJJVAgZm9ybWF0IGFuZCBgMCcgbW9kaWZpZXIuCgpUdWUgRGVjIDEwIDIxOjIwOjQ0IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZXJ1bGVzIChtYWtlLWxpbmspOiBEb24ndCBkaXNjYXJkIGV4aXQgY29kZXMgb2YgaW50ZXJtZWRpYXRlCgljb21tYW5kcy4gIEFsd2F5cyB1c2UgcmVsbG5zLXNoIGlmIHN5bWJvbGljIGxpbmtzIGFyZSBhdmFpbGFibGUuCgpUdWUgRGVjIDEwIDIwOjA5OjUxIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0aW5ldC9pbi5oOiBFbmNsb3NlICNpbmNsdWRlCgk8bGludXgvaW4uaD4gaW4gX19CRUdJTl9ERUNMUy9fX0VORF9ERUNMUyB0byBhdm9pZCBsaW5rYWdlCgljb25mbGljdCBvZiBudG9ocyBldGMuIGluIDxhc20vYnl0ZW9yZGVyLmg+LgoKV2VkIERlYyAxMSAwMTowNDozMCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCglBZGQgTklTIE5TUyBpbXBsZW1lbnRhdGlvbi4KCSogc2hsaWItdmVyc2lvbnM6IEFkZCB2ZXJzaW9ucyBmb3IgTklTIGxpYnJhcmllcy4KCSogc3lzZGVwcy91bml4L2luZXQvU3ViZGlyczogQWRkIG5pcy4KCSogbmlzL0Jhbm5lcjogTmV3IGZpbGUuCgkqIG5pcy9NYWtlZmlsZTogTmV3IGZpbGUuCgkqIG5pcy9uc3MtbmlzLmg6IE5ldyBmaWxlLgoJKiBuaXMveXBfeGRyLmg6IE5ldyBmaWxlLgoJKiBuaXMveXBjbG50Lmg6IE5ldyBmaWxlLgoJKiBuaXMveXB1cGRhdGVfeGRyLmM6IE5ldyBmaWxlLgoJKiBuaXMvbnNzX2NvbXBhdC9jb21wYXQtZ3JwLmM6IE5ldyBmaWxlLgoJKiBuaXMvbnNzX2NvbXBhdC9jb21wYXQtcHdkLmM6IE5ldyBmaWxlLgoJKiBuaXMvbnNzX2NvbXBhdC9jb21wYXQtc3B3ZC5jOiBOZXcgZmlsZS4KCSogbmlzL25zc19uaXMvbmlzLWFsaWFzLmM6IE5ldyBmaWxlLgoJKiBuaXMvbnNzX25pcy9uaXMtZXRoZXJzLmM6IE5ldyBmaWxlLgoJKiBuaXMvbnNzX25pcy9uaXMtZ3JwLmM6IE5ldyBmaWxlLgoJKiBuaXMvbnNzX25pcy9uaXMtaG9zdHMuYzogTmV3IGZpbGUuCgkqIG5pcy9uc3NfbmlzL25pcy1uZXRncnAuYzogTmV3IGZpbGUuCgkqIG5pcy9uc3NfbmlzL25pcy1uZXR3b3JrLmM6IE5ldyBmaWxlLgoJKiBuaXMvbnNzX25pcy9uaXMtcHJvdG8uYzogTmV3IGZpbGUuCgkqIG5pcy9uc3NfbmlzL25pcy1wdWJsaWNrZXkuYzogTmV3IGZpbGUuCgkqIG5pcy9uc3NfbmlzL25pcy1wd2QuYzogTmV3IGZpbGUuCgkqIG5pcy9uc3NfbmlzL25pcy1ycGMuYzogTmV3IGZpbGUuCgkqIG5pcy9uc3NfbmlzL25pcy1zZXJ2aWNlLmM6IE5ldyBmaWxlLgoJKiBuaXMvbnNzX25pcy9uaXMtc3B3ZC5jOiBOZXcgZmlsZS4KCSogbmlzL3JwY3N2Yy95cC5oOiBOZXcgZmlsZS4KCSogbmlzL3JwY3N2Yy95cC54OiBOZXcgZmlsZS4KCSogbmlzL3JwY3N2Yy95cF9wcm90Lmg6IE5ldyBmaWxlLgoJKiBuaXMvcnBjc3ZjL3lwY2xudC5oOiBOZXcgZmlsZS4KCSogbmlzL3JwY3N2Yy95cHVwZC5oOiBOZXcgZmlsZS4KCgkqIGxpYmlvL19HX2NvbmZpZy5oOiBEZWZpbmUgX0dfSEFWRV9TWVNfV0FJVCBhbmQgX0dfSEFWRV9QUklOVEZfRlAuCgoJKiBsb2NhbGUvQy1udW1lcmljLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgoJKiBsb2NhbGUvTWFrZWZpbGU6IEFkZCBydWxlcyB0byBidWlsZCBsaWJCcm9rZW5Mb2NhbGUuCgkqIGxvY2FsZS9icm9rZW5fY3VyX21heC5jOiBOZXcgZmlsZS4KCSogbG9jYWxlL21iX2N1cl9tYXguYzogVXBkYXRlIGNvcHlyaWdodC4KCShfX2N0eXBlX2dldF9tYl9jdXJfbWF4KTogTWFrZSBmdW5jdGlvbiB3ZWFrLgoKCSogbmV3LW1hbGxvYy9tYWxsb2MuYzogQ29ycmVjdCBjb3B5cmlnaHQuCgkqIG5ldy1tYWxsb2MvdGhyZWFkLW0uaDogQ29ycmVjdCBrZXkgaGFuZGxpbmcuCgoJKiBzaGFkb3cvbGNrcHdkZi5jOiBVcGRhdGUgY29weXJpZ2h0LgoJKFBXRF9MT0NLRklMRSk6IENoYW5nZSB0byAvZXRjLy5wd2QubG9jay4KCgkqIHN0ZGxpYi9zdHJ0b2QuYzogQWRkIGFub3RoZXIgYXNzZXJ0aW9uLgoJKiBzdGRsaWIvdHN0LXN0cnRvZC5jOiBBZGQgYW5vdGhlciB0ZXN0IGNhc2UuCgoJKiBzeXNkZXBzL2dlbmVyaWMvcGF0aHMuaDogQWRkIF9QQVRIX1BSRVNFUlZFLiAgTmVlZGVkIGJ5IG52aS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvcGF0aHMuaDogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2dudS91dG1wYml0cy5oOiBSZW5hbWUgdXRfYWRkciBmaWVsZCB0byB1dF9hZGRyX3Y2LgoJdXRfYWRkciBuYW1lcyBhIHNpbmdsZSBlbGVtZW50IGluIHV0X2FkZHJfdjYuCgoJKiBzeXNkZXBzL21hY2gvaHVyZC94bWtub2QuYzogUmVtb3ZlIGFsaWFzIGZyb20gX19ta25vZCB0byBta25vZC4KCVBhdGNoIGJ5IFRob21hcyBCdXNobmVsbCwgbi9CU0cuCgpUdWUgRGVjIDEwIDExOjM1OjI4IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogc3lzZGVwcy9hbHBoYS9zdHJuY21wLlM6IEZpeCBhbGlnbmVkIHNob3J0IHRydW5jYXRlZCBjb21wYXJlCgljb3JuZXIgY29uZGl0aW9uLgoKCSogc3lzZGVwcy9hbHBoYS9tZW1jaHIuUzogRG9uJ3QgcmVhZCBhaGVhZCwgZXZlbiBpZiB0aGUgbG9hZAoJZGlkIGZpdCBuaWNlbHkgaW50byB0aGF0IGRlbGF5IHNsb3QgKHBhdGNoIGZyb20gRGF2aWQgTW9zYmVyZ2VyLVRhbmcpLgoKTW9uIERlYyAgOSAyMzo1Mzo0MyAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvdHR5bmFtZV9yLmMgKF9fdHR5bmFtZV9yKTogUmVuYW1lZCBmcm9tCglgdHR5bmFtZV9yJy4KCSh0dHluYW1lX3IpOiBOZXcgYWxpYXMuCgpUdWUgRGVjIDEwIDAyOjE3OjMxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RkaW8tY29tbW9uL3ByaW50Zl9mcC5jIChfX2d1ZXNzX2dyb3VwaW5nKTogRml4IG9mZiBieSBvbmUKCWVycm9yIGluIGNvbXB1dGF0aW9uIG9mIG51bWJlciBvZiBncm91cHMuCglQYXRjaCBzZW50IGJ5IEhhcmFsZCBTY2hyZWliZXIgPEhhcmFsZC5TY2hyZWliZXJAcG9zdC5yd3RoLWFhY2hlbi5kZT4uCgpUdWUgRGVjIDEwIDAxOjUwOjA3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdmVyc2lvbi5oOiBTZXQgdmVyc2lvbiB0byAxLjk5LgoKCSogTWFrZS1kaXN0IChyb3V0aW5lcyk6IEFkZCBtYWxsb2MgYW5kIG5ldy1tYWxsb2MuCgoJKiBNYWtlY29uZmlnOiBBbGxvdyBNYWtlZmlsZXMgdG8gc2V0ICQoQ1BQRkxBR1MtJCg8RikpIGFuZAoJJChDUFBGTEFHUy0kKEBGKSkgdG8gYmUgYWRkZWQgdG8gQ1BQRkxBR1MuCglTYW1lIGZvciAkKENGTEFHUy0kKEBGKSkgYW5kIENGTEFHUy4KCgkqIGdtb24vc3lzL2dtb25fb3V0Lmg6IEFkZCBfX0JFR0lOX0RFQ0xTL19fRU5EX0RFQ0xTLiAgVW5pZnkKCWxheW91dC4KCSogaW8vc3lzL3BvbGwuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zeXMvaXBiX2J1Zi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXMvcGVybS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXMvdm04Ni5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL2lwY19idWYuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9rZGFlbW9uLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMva2xvZy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL21tYW4uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tb2R1bGUuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tb3VudC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL21zcV9idWYuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9wYXJhbS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3Byb2Nmcy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3B0cmFjZS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3JlYm9vdC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3NlbV9idWYuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9zaG1fYnVmLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvc29ja2V0Y2FsbC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3N3YXAuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9zeXNjdGwuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9zeXNpbmZvLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvc3lzbWFjcm9zLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvdGltZXguaDogTGlrZXdpc2UuCgkqIHN5c3ZpcGMvc3lzL3NlbS5oOiBMaWtld2lzZS4KCSogc3lzdmlwYy9zeXMvc2htLmg6IExpa2V3aXNlLgoKCSogbmV3LW1hbGxvYy9NYWtlZmlsZTogU2V0IENQUEZMQUdTLW1hbGxvYy5vLgoJKiBuZXctbWFsbG9jL21hbGxvYy5jOiBSZW1vdmUgcHJvYmxlbSB3aXRoIDY0IGJpdHMgcG9pbnRlcnMuCglBZGQgc3RhdGlzdGljcyBmb3IgdGhyZWFkcy4KCSogbmV3LW1hbGxvYy9tYWxsb2MuaDogTGlrZXdpc2UuCgkqIG5ldy1tYWxsb2MvdGhyZWFkLW0uaDogTGlrZXdpc2UuCgoJKiB0aW1lL3N0cmZ0aW1lLmM6IERlY2xhcmUgdHpuYW1lIGlmIGlmIEhBVkVfVFpOQU1FIGlzIGRlZmluZWQuCgoJKiB0aW1lL3N0cnB0aW1lLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgpNb24gRGVjICA5IDE0OjUxOjEwIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZS1kaXN0OiBNYWtlIHN1cmUgYm90aCBtYWxsb2MgZGlyZWN0b3JpZXMgZ2V0IGRpc3RyaWJ1dGVkLgoKU3VuIERlYyAgOCAyMzoxNDoxMCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGxpYmlvL2lvZ2V0cy5jIChfSU9fZ2V0cyk6IEZpeCBlYXJseSByZXR1cm5zIHRvIG5vdCBsZWF2ZSB0aGUKCXN0cmVhbSBsb2NrZWQuCgpTYXQgRGVjICA3IDIyOjA4OjA5IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL21vZHVsZS5oOiBFbmNsb3NlIGRlY2xhcmF0aW9ucyBpbgoJX19CRUdJTl9ERUNMUy9fX0VORF9ERUNMUy4KClNhdCBEZWMgIDcgMTQ6MjM6MTIgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBsb2dpbi91dG1wX2ZpbGUuYzogQ29uc2lzdGVudGx5IHNldCBmaWxlX29mZnNldCB0byB0aGUgcG9zaXRpb24KCWFmdGVyIHRoZSBlbnRyeSBqdXN0IHJlYWQuCgpNb24gRGVjICA5IDAzOjM5OjMwIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogY29uZmlnLm1ha2UuaW4gKGRlZmluZXMpOiBBZGQgQFVTRV9ORVdfTUFMTE9DQC4KCSogTWFrZWZpbGUuaW46IERlZmluZSBVU0VfTkVXX01BTExPQyB0byAtRFVTRV9ORVdfTUFMTE9DIGlmCgl3ZSB1c2UgdGhlIG5ldyBtYWxsb2MuCgoJKiBtYWxsb2MuaDogVXNlIGVpdGhlciA8bWFsbG9jL21hbGxvYy5oPiBvciA8bmV3LW1hbGxvYy9tYWxsb2MuaD4KCWRlcGVuZGluZyBvbiBVU0VfTkVXX01BTExPQy4KCglGaXggc29tZSBtb3JlIFBPU0lYLjEgcHJvYmxlbXMuCgkqIGxpYmlvL2ZpbGVvcHMuYyAoX0lPX2ZpbGVfdW5kZXJmbG93KTogU2V0IGVycm5vIHRvIEVCQURGIGlmIHVzZWQKCW9uIGEgd3JpdGUtb25seSBzdHJlYW0uCgkoX0lPX2ZpbGVfb3ZlcmZsb3cpOiBTZXQgZXJybm8gdG8gRUJBREYgaWYgdXNlZCBvbiBhIHJlYWQtb25seQoJc3RyZWFtLgoJKF9JT19maWxlX3NlZWtvZmYpOiBQT1NJWC4xIHJlcXVpcmVzIHRoYXQgZnNlZWsoKSBhZnRlciBhbiBmZmx1c2goKQoJY2FsbCByZWFsbHkgcG9zaXRpb25zIHRoZSBmaWxlIG9mZnNldCB0byB0aGUgY29ycmVjdCBwb3NpdGlvbgoJYW5kIG5vIHJlYWQtYWhlYWQgaGFwcGVucy4KCgkqIGxvY2FsZS9DLW1vbmV0YXJ5LmM6IFNldCBtb25fZ3JvdXBpbmcgZmlsZSB0byAiIiBhbmQgIlwzNzciCgl0byBwYXNzIFBPU0lYIHRlc3Qgc3VpdGUuCgkqIHN0ZGlvLWNvbW1vbi92ZnByaW50Zi5jOiBIYW5kbGUgZW1wdHkgc3RyaW5nIGFzIGdyb3VwaW5nIGNvbW1hbmQKCWNvcnJlY3RseS4KCSogc3RkbGliL2dyb3VwaW5nLmg6IExpa2V3aXNlLgoKCSogbWlzYy9zeXNsb2cuYzogQ2FzZSBmaXJzdCBhcmd1bWVudCBvZiBfX2xpYmNfY2xlYW51cF9yZWdpb25fc3RhcnQuCgoJKiBzaWduYWwvc2lnc2V0b3BzLmg6IFVwZGF0ZSBjb3B5cmlnaHQuICBEb24ndCBpbmNsdWRlIGFuc2lkZWNsLmguCgoJKiBzdGRpby1jb21tb24vcHJpbnRmX2ZwLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgpTdW4gRGVjICA4IDE2OjM5OjI4IDE5OTYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogdGltZS9NYWtlZmlsZTogQ29tcGlsZSBhcC5jIHdpdGggTk9fTUNIRUNLIGZsYWcgaWYgbmV3LW1hbGxvYwoJdXNlZCAobm90IG90aGVyd2lzZSkuCgpTdW4gRGVjICA4IDA2OjU2OjQ5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW8vZ2V0d2QuYzogVXNlIFBBVEhfTUFYIG5vdCBMT0NBTF9QQVRIX01BWC4gIEZpeCB0eXBvIGluCgljb21tZW50LgoJKiBzdGRsaWIvY2Fub25pY2FsaXplLmM6IENvcnJlY3QgYnVncyBpbiBsYXN0IGNoYW5nZS4KCVBhdGNoIGJ5IEhKIEx1LgoKCSogbGliaW8vTWFrZWZpbGUgKHJvdXRpbmVzKTogUmVtb3ZlIGlvcHJpbXMuCgkoYXV4KTogUmVtb3ZlIGNsZWFudXAuCglBZGQgSU9fREVCVUcgb3B0aW9uIGZvciAubyBmaWxlcy4KCSogbGliaW8vY2xlYW51cHMuYzogUmVtb3ZlZC4KCSogbGliaW8vaW9wcmltcy5jOiBSZW1vdmVkLgoJKiBsaWJpby9maWxlZG9hbGxvYy5jOiBNb3JlIHVwZGF0ZXMgZnJvbSBsaWJnKystMi44YjUuCgkqIGxpYmlvL2ZpbGVvcHMuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2dlbm9wcy5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9saWJpby5oOiBMaWtld2lzZS4KCSogbGliaW8vaW9wb3Blbi5jOiBMaWtld2lzZS4KCSogbGliaW8vaW92c3ByaW50Zi5jOiBMaWtld2lzZS4KCSogbGliaW8vaW92c3NjYW5mLmM6IExpa2V3aXNlLgoJKiBsaWJpby9saWJpby5oOiBMaWtld2lzZS4KCSogbGliaW8vbGliaW9QLmg6IExpa2V3aXNlLgoJKiBsaWJpby9tZW1zdHJlYW0uYzogTGlrZXdpc2UuCgkqIGxpYmlvL3N0cmZpbGUuaDogTGlrZXdpc2UuCgkqIGxpYmlvL3Zhc3ByaW50Zi5jOiBMaWtld2lzZS4KCSogbGliaW8vdnNucHJpbnRmLmM6IExpa2V3aXNlLgoKCSogbGliaW8vc3RkaW8uaDogRGVmaW5lIFBfdG1wZGlyIG9ubHkgaXMgX19VU0VfU1ZJRC4KCgkqIG1hbnVhbC9hcml0aC50ZXhpOiBDaGFuZ2UgcmVmZXJlbmNlcyB0byBBTlNJIEMgdG8gSVNPIEMuCgkqIG1hbnVhbC9jb25mLnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvY3JlYXR1cmUudGV4aTogTGlrZXdpc2UuCgkqIG1hbnVhbC9jdHlwZS50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL2Vycm5vLnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvZmlsZXN5cy50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL2ludHJvLnRleGkuIExpa2V3aXNlLgoJKiBtYW51YWwvaW8udGV4aTogTGlrZXdpc2UuCgkqIG1hbnVhbC9sYW5nLnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvbGliYy50ZXhpbmZvOiBMaWtld2lzZS4KCSogbWFudWFsL2xvY2FsZS50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL21haW50LnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvbWJ5dGUudGV4aTogTGlrZXdpc2UuCgkqIG1hbnVhbC9tZW1vcnkudGV4aTogTGlrZXdpc2UuCgkqIG1hbnVhbC9wcm9jZXNzLnRleGk6IExpa2V3aXNlLgoJKiBtYW51YWwvcHJvY2Vzcy50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL3NlYXJjaC50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL3NldGptcC50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL3NpZ25hbC50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL3N0YXJ0dXAudGV4aTogTGlrZXdpc2UuCgkqIG1hbnVhbC9zdGRpby50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL3N0cmluZy50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL3RpbWUudGV4aTogTGlrZXdpc2UuCgoJKiBtYW51YWwvbG9jYWxlLnRleGk6IFJlbW92ZSBkZXNjcmlwdGlvbiBvZiBMQ19SRVNQT05TRSBhbmQgYWRkCglMQ19NRVNTQUdFUy4KCgkqIE1ha2VmaWxlIChzdWJkaXJzKTogQ2hhbmdlIG1hbGxvYyBpbiAkKG1hbGxvYykuCgkqIGNvbmZpZy5tYWtlLmluOiBBZGQgdmFyaWFibGUgbWFsbG9jIHdoaWNoIGlzIGluaXRpYWxpemVkIGZyb20KCUBtYWxsb2NALgoJKiBjb25maWd1cmUuaW46IEFkZCBuZXcgb3B0aW9uIC0tZW5hYmxlLW5ldy1tYWxsb2MgdG8gdXNlIG5ldwoJbWFsbG9jLiAgVGhpcyBpcyB0aGUgZGVmYXVsdCBvbiBMaW51eC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvY29uZmlndXJlLmluOiBEZWZpbmUgbWFsbG9jIHRvIG5ldy1tYWxsb2MKCWJ5IGRlZmF1bHQuCgkqIG5ldy1tYWxsb2MvTWFrZWZpbGU6IE5ldyBmaWxlLiAgSW1wcm92ZWQgbWFsbG9jIGltcGxlbWVudGF0aW9uLgoJKiBuZXctbWFsbG9jL21hbGxvYy5jOiBMaWtld2lzZS4KCSogbmV3LW1hbGxvYy9tYWxsb2MuaDogTGlrZXdpc2UuCgkqIG5ldy1tYWxsb2MvbWFsbG9jYnVnLmM6IExpa2V3aXNlLgoJKiBuZXctbWFsbG9jL29ic3RhY2suYzogTGlrZXdpc2UuCgkqIG5ldy1tYWxsb2Mvb2JzdGFjay5oOiBMaWtld2lzZS4KCSogbmV3LW1hbGxvYy90aHJlYWQtbS5oOiBMaWtld2lzZS4KCSogdGltZS9NYWtlZmlsZTogQ29tcGlsZSBhcC5jIHdpdGggTk9fTUNIRUNLIGZsYWcgZm9yIG5vdy4KCSogdGltZS9hcC5jOiBEb24ndCBjYWxsIG1jaGVjayBpZiBOT19NQ0hFQ0sgaXMgZGVmaW5lZC4KCgkqIHJlc29sdi9NYWtlZmlsZTogQWRkIHJ1bGUgdG8gcmVidWlpbGQgbGlicmVzb2x2LnNvIHdoZW4gbGliYy5zbwoJY2hhbmdlZC4KCgkqIHN0ZGlvL2Zlb2YuYzogVXBkYXRlIGNvcHlyaWdodC4KCSogc3RkaW8vc3RkaW8uaDogQWRkIGZpZWxkIGZvciBsb2NrIHRvIEZJTEUgc3RydWN0dXJlLgoJQWRkIGNhc3QgdG8gKk1BR0lDIGNvbnN0YW50cyB0byBwcmV2ZW50IHdhcm5pbmdzLgoKCSogc3RkaW8tY29tbW9uL2J1ZzcuYzogQ29ycmVjdCB0ZXN0LiAgU3RyZWFtIG11c3Qgbm90IGJlIGNsb3NlZAoJdHdpY2UuCgoJKiBzdGRsaWIvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIHNlY3VyZS1nZXRlbnYuCgkqIHN0ZGxpYi9zZWN1cmUtZ2V0ZW52LmM6IE5ldyBmaWxlLiAgX19zZWN1cmVfZ2V0ZW52IGZ1bmN0aW9uCgltb3ZlZCB0byBoZXJlIGZyb20gc3lzZGVwcy9nZW5lcmljL2dldGVudi5jLiAgT3RoZXJ3aXNlIGFuCglhcHBsaWNhdGlvbiBjYW5ub3QgcmVwbGFjZSB0aGUgZ2V0ZW52IGZ1bmN0aW9uIGluIHRoZSBsaWJjLgoJKiBzeXNkZXBzL2dlbmVyaWMvZ2V0ZW52LmM6IFJlbW92ZSBfX3NlY3VyZV9nZXRlbnYgZnVuY3Rpb24uCgkqIHN5c2RlcHMvc3R1Yi9nZXRlbnYuYzogUmVtb3ZlIF9fc2VjdXJlX2dldGVudiBhbGlhcy4KCgkqIHN5c2RlcHMvbWFjaC9saWJjLWxvY2suaDogRGVmaW5lX19saWJjX211dGV4X2xvY2sgdG8gX19tdXRleF9sb2NrLgoKCSogc3lzZGVwcy9wb3NpeC9mZG9wZW4uYzogVXBkYXRlIGNvcHlyaWdodC4gIERvbid0IHVzZSBFWEZVTi4KCgkqIHRpbWUvdGVzdC10ei5jOiBDb21tZW50IGZpZnRoIHRlc3Qgb3V0LiAgUFJPQkxFTS4KCgkqIHRpbWUvdHpzZXQuYzogRGUtQU5TSS1kZWNsZnkuCgkoX190enNldCk6IERvbid0IGluY3JlbWVudCBwb2ludGVyIHR6IHdoZW4gbm8gRFNUIGluZm9ybWF0aW9uIGlzCglnaXZlbi4KCgkqIG1pc2Mvc3lzbG9nLmMgKHZzeXNsb2cpOiBDYXN0IGFyZ3VtZW50IHRvIF9fbGliY19jbGVhbnVwX3JlZ2lvbgoJdG8gZ2V0IEh1cmQgbWFjcm9zIHJpZ2h0LgoKU2F0IERlYyAgNyAyMzo0Nzo1NCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvbWFjaC9saWJjLWxvY2suaCBbX0xJQkNdOiBBZGQgZGVmaW5pdGlvbiBvZgoJX19saWJjX211dGV4X2xvY2suCglQYXRjaCBieSBUaG9tYXMgQnVzaG5lbGwuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC90aW1lYml0cy5oOiBMb2FkIDxhc20vcGFyYW0uaD4gb25seQoJaWYgX19VU0VfTUlTQy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L0Rpc3Q6IEFkZCBsbHNlZWsuYy4KClNhdCBEZWMgIDcgMTI6MTg6NTYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB0aW1lL3N0cmZ0aW1lICglYyBmb3JtYXQpOiBSZW1vdmUgJVogZnJvbSBkZWZhdWx0IHN0cmluZy4KCVJlcG9ydGVkIGJ5IFBhdWwgRWdnZXJ0CgpTYXQgRGVjICA3IDAzOjI0OjM2IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogY29uZmlndXJlLmluOiBEaXNjYXJkIGVycm9yIG1lc3NhZ2UgZnJvbSB0ZXN0IGluIHRlc3QgZm9yCgliYXNoLTIuMC4KCgkqIGlvL2dldHdkLmM6IERvbid0IGFwcGx5IGdldGN3ZCBvbiB1c2VyIHN1cHBsaWVkIGJ1ZmZlci4KCUluc3RlYWQgYWx3YXlzIHVzZSB0ZW1wb3JhcnkgYnVmZmVyIGFuZCBvbmx5IGNvcHkgdGhlIHJlc3VsdC4KCVBhdGNoIGJ5IEhKIEx1LgoJKiBzdGRsaWIvY2Fub25pY2FsaXplLmM6IExpa2V3aXNlLgoKCSogbGliaW8vZmlsZW9wcy5jOiBDaGFuZ2UgY29tbWVudHMgYWNjb3JkaW5nIHRvIGxpYmcrKzIuOGI1LgoJKiBsaWJpby9pb3NldHZidWYuYzogRm9sbG93IGNoYW5nZSBpbiBsaWJnKystMi44YjUgdG8gY2xlYXIKCXVuYnVmZmVyZWQgZmxhZy4KCVJlcG9ydGVkIGJ5IEhKIEx1LgoKCSogbWFudWFsL25zcy50ZXhpOiBDb3JyZWN0IHByb3RvdHlwZXMuCgoJKiBtaXNjL3N5c2xvZy5jOiBNYWtlIHJlZW50cmFudC4gIENhdGNoIFNJR1BJUEUgc2lnbmFsIHRvIHByZXZlbnQKCWNyYXNoIGlmIHN5c2xvZyBkYWVtb24gaXMgcmVzdGFydGVkLgoKCSogc3RkbGliL3JhbmRfci5jOiBOZXcgZmlsZS4gIEltcGxlbWVudGF0aW9uIG9mIFBPU0lYLjIgZnVuY3Rpb24KCXJhbmRfci4KCSogc3RkbGliL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCByYW5kX3IuCgoJKiBzeXNkZXBzL3N0dWIvbGliYy1sb2NrLmg6IERlZmluZSBfX2xpYmNfbG9ja190cnlsb2NrIGFuZAoJX19saWJjX211dGV4X2xvY2suCgoJKiBjb25maWd1cmUuaW46IEFkZCAtLWRpc2FibGUtc2FuaXR5LWNoZWNrIG9wdGlvbi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvY29uZmlndXJlLmluOiBJZiBsaW51eHRocmVhZHMgb3IKCWRlcy1jcnlwdCBhcmUgbm90IGF2YWlsYWJsZSBhbmQgLS1kaXNiYWxlLXNhbml0eS1jaGVjayBpcyBub3QKCWdpdmVuIGFib3J0IHdpdGggYSBtZXNzYWdlLgoKVGh1IERlYyAgNSAxOToxOTo1MyAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIHBvc2l4L2dsb2IuYzogVGVzdHMgYWdhaW5zdCBTVERDX0hFQURFUlMgc2hvdWxkIGFsc28gdGVzdAoJX19HTlVfTElCUkFSWV9fLgoKVGh1IERlYyAgNSAxNjoyMDo1NSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG1pc2MvZXJyLmMgKHZ3YXJuKTogU2V0IGVycm5vIGFnYWluIGJlZm9yZSB1c2luZyAlbSBmb3JtYXQuCgpUaHUgRGVjICA1IDEwOjE0OjA1IDE5OTYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogZ3JwL2dycC5oOiBBZGQgZGVjbGFyYXRpb24gb2YgX19nZXRncmVudF9yLgoKCSogaW8vZnRzLmMgKGZ0c19idWlsZCk6IFJlbW92ZSAicmVnaXN0ZXIiIGZyb20gdmFyaWFibGVzIGRpcmJ1ZgoJYW5kIGRwIHNpbmNlIHRoZWlyIGFkZHJlc3MgaXMgbmVlZGVkLgoKCSogc3lzZGVwcy9wb3NpeC9nZXRjd2QuYyAoX19nZXRjd2QpOiBSZW1vdmUgInJlZ2lzdGVyIiBmcm9tCgl2YXJpYWJsZSBkIHNpbmNlIGQncyBhZGRyZXNzIGlzIG5lZWRlZC4KCgkqIG1pc2MvdHN0LWRpcm5hbWUuYyAobWFpbik6IFByb3ZpZGUgcHJvdG90eXBlLgoJKiBtaXNjL2lvY3RsdHN0LmMgKG1haW4pOiBEaXRvLgoKCSogTWFrZWZpbGU6IEFkZCBnbnUvbGliLW5hbWVzLmggdG8gaW5zdGFsbC1vdGhlcnMgYmVmb3JlIGluY2x1ZGluZwoJTWFrZXJ1bGVzLgoKV2VkIERlYyAgNCAxNjowMDowOSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9zb2NrZXR2YXIuaDogTmV3IGZpbGUuICBTaW1wbHkgdXNlCgk8c3lzL3NvY2tldC5oPi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvRGlzdDogQWRkIHN5cy9zb2NrZXR2YXIuaC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUgWyQoc3ViZGlyKT1pbmV0KV06IEFkZAoJc3lzL3NvY2tldHZhci5oIHRvIHN5c2RlcF9oZWFkZXJzLgoKVHVlIERlYyAgMyAwODozODoxNSAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIHN5c2RlcHMvdW5peC9hbHBoYS9zeXNkZXAuUzogUmVtb3ZlIGRlZmluaXRpb24gb2YgX19lcnJub19sb2NhdGlvbi4KCVJlZm9ybWF0IGNvcHlyaWdodC4KCgkqIGVsZi9ydGxkLmMgKF9kbF9zdGFydCk6IERvbid0IGRlcmVmZXJlbmNlIHRoZSB2YWx1ZSByZXR1cm5lZCBieQoJZWxmX21hY2hpbmVfZ290IHRvIGdldCBfRFlOQU1JQywgaW5zdGVhZCBjYWxsIG5ldyBmdW5jdGlvbgoJZWxmX21hY2hpbmVfZHluYW1pYy4KCSogc3lzZGVwcy9hbHBoYS9kbC1tYWNoaW5lLmg6IFBlcm11dGUgZWxmX21hY2hpbmVfZ290IHRvCgllbGZfbWFjaGluZV9keW5hbWljLiAgUmVmb3JtYXQgY29weXJpZ2h0LgoJKiBzeXNkZXBzL2kzODYvZGwtbWFjaGluZS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2RsLW1hY2hpbmUuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbWlwcy9kbC1tYWNoaW5lLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3NwYXJjL2RsLW1hY2hpbmUuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9kbC1tYWNoaW5lLmg6IExpa2V3aXNlLgoKVHVlIE9jdCAxNSAyMzo0NjowMCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2VUQUdTIChzeXNkZXBfZGlycyk6IEluY2x1ZGUgYWRkLW9uIHN5c2RlcCBkaXJlY3Rvcmllcy4KClR1ZSBEZWMgIDMgMDI6MDY6MTggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBNYWtlcnVsZXMgKCQobGliZGlyKS9saWJjLnNvKTogTWFrZSBmaXJzdCBsaW5lIG9mIGdlbmVyYXRlZAoJbGluayBzY3JpcHQgY29udGFpbiBgLyogR05VIGxkIHNjcmlwdCcuICBUaGlzIHdpbGwgYmUgdXNlZCBpbgoJbGRjb25maWcgdG8gY2hlY2sgZm9yIGxpbmtlciBzY3JpcHRzLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9saWJjLWxkc2NyaXB0OiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvbGliY19wLWxkc2NyaXB0OiBMaWtld2lzZS4KCgkqIHN0ZGxpYi9nZXRzdWJvcHQuYzogVXBkYXRlIGNvcHlyaWdodC4gIENvcnJlY3QgdHlwbyBpbiBjb21tZW50LgoKTW9uIERlYyAgMiAxNTozMjoxNSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGVsZi9kbC1sb29rdXAuYyAoX2RsX2xvb2t1cF9zeW1ib2xfc2tpcCk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCWBmb3VuZF9lbnRyeScuCgoJKiBtaXNjL3R0eXNsb3QuYzogVXNlIHR0eW5hbWVfciBpbnN0ZWFkIG9mIHR0eW5hbWUuCgoJKiBhc3NlcnQvYXNzZXJ0LXBlcnIuYzogVXNlIF9fc3RyZXJyb3JfciBpbnN0ZWFkIG9mIHN0cmVycm9yLgoJKiBhc3NlcnQvYXNzZXJ0LmM6IERlLUFOU0lkZWNsLWZ5LiAgVXBkYXRlIGNvcHlyaWdodC4KCSogc3RyaW5nL3N0cmluZy5oOiBEZWNsYXJlIF9fc3RyZXJyb3Jfci4KCSogc3RyaW5nL3N0cmVycm9yX3IuYzogTWFrZSBzdHJlcnJvcl9yIGEgd2VhayBhbGlhcyBvZiBfX3N0cmVycm9yX3IuCgkqIHN0ZGlvLWNvbW1vbi92ZnByaW50Zi5jOiBTYXZlIGN1cnJlbnQgZXJybm8gdmFsdWUgb24gZW50cnkgc28KCXRoYXQgJW0gZm9ybWF0IGZpbmRzIHRoZSBjb3JyZWN0IHZhbHVlLgoJKiBpby9nZXR3ZC5jOiBVc2UgX19zdHJlcnJvcl9yIGluc3RlYWQgb2Ygc3RyZXJyb3IuCgkqIG1pc2MvZXJyLmMgKHZ3YXJuKTogVXNlICVtIHByaW50ZiBmb3JtYXQgaW5zdGVhZCBvZiBleHBsaWNpdGx5CgljYWxsaW5nIHN0cmVycm9yLgoJKiBpbmV0L3JjbWQuYzogTGlrZXdpc2UuCgkqIG1pc2MvZXJyb3IuYyAoZXJyb3IsIGVycm9yX2F0X2xpbmUpOiBVc2UgX19zdHJlcnJvcl9yIGluc3RlYWQKCW9mIHN0cmVycm9yIHdoZW4gdGhpcyBmdW5jdGlvbiBpcyBhdmFpbGFibGUuCgoJKiBzdGRsaWIvcmFuZC5jOiBVcGRhdGUgY29weXJpZ2h0IGFuZCBkZS1BTlNJLWRlY2xmeS4KCSogc3RkbGliL3JhbmRvbV9yLmM6IERvbid0IG1ha2Ugc3JhbmRfciB3ZWFrIGFsYWlzIG9mIF9fc3JhbmRvbV9yLgoJKiBzdGRsaWIvc3RkbGliLmg6IERlZmluZSBwcm90b3R5cGUgZm9yIHJhbmRfci4KCgkqIHN0cmluZy9zdHJmcnkuYzogVXBkYXRlIGNvcHlyaWdodC4gIFVzZSByZWVudHJhbnQgcmFuZG9tIGZ1bmN0aW9ucy4KCgkqIGRpcmVudC9zY2FuZGlyLmM6IFVzZSBfX3JlYWRkaXJfciBpbnN0ZWFkIG9mIHJlYWRkaXIuCgkqIHBvc2l4L2dsb2IuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvdHR5bmFtZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC90dHluYW1lX3IuYzogTGlrZXdpc2UuCgkqIGlvL2Z0dy5jOiBMaWtld2lzZS4KCSogaW8vZnRzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L2dldGN3ZC5jOiBMaWtld2lzZS4KCSogZGlyZW50L2RpcmVudC5oOiBBZGQgcHJvdG90eXBlIGZvciBfX3JlYWRkaXJfci4KCSogc3lzZGVwcy91bml4L3JlYWRkaXJfcjogVXBkYXRlIGNvcHlyaWdodC4KCgkqIHRpbWUvY3RpbWUuYzogVXNlIF9fbG9jYWx0aW1lX3IgYW5kIF9fYXNjdGltZV9yIGluc3RlYWQgb2YKCW5vbiByZWVudHJhbnQgdmVyc2lvbnMuCgkqIHRpbWUvY3RpbWVfci5jOiBVcGRhdGUgY29weXJpZ2h0LgoKCSogaW50bC9sMTBuZmxpc3QuYyAoX25sX21ha2VfbDEwbmZsaXN0KTogUHJldHR5IHByaW50LgoKCSogbG9jYWxlL01ha2VmaWxlIChsb2NhbGVwYXRoKTogQ29ycmVjdCB2YWx1ZS4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtWFhYLmM6IEluY2x1ZGUgPG5ldGRiLmg+IHRvIGRlZmluZQoJTkVUREJfSU5URVJOQUwuCglGaXggdHlwbyBpbiB1c2luZyBIX0VSUk5PX1NFVCBtYWNyby4KCkZyaSBOb3YgMjkgMjM6MjI6MTQgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBNYWtlcnVsZXMgKGVsZm9iamRpcik6IERlZmluaXRpb24gcmVtb3ZlZC4KCSogTWFrZWNvbmZpZyAoZWxmb2JqZGlyKTogRGVmaW5lIGl0IGhlcmUgaW5zdGVhZCwgc28gdGhhdAoJZXhwYW5kaW5nICQocnBhdGgtbGluaykgZ2V0cyB0aGUgcmlnaHQgdmFsdWUuCgoJKiBhLm91dC5oOiBSZW1vdmVkLgoJKiBtaXNjL2Eub3V0Lmg6IE1vdmVkIHRvLi4uCgkqIHN5c2RlcHMvZ2VuZXJpYy9hLm91dC5oOiAuLi5oZXJlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hLm91dC5oOiBOZXcgZmlsZS4gIFdyYXBwZXIgYXJvdW5kCglrZXJuZWwgaGVhZGVyLgoKTW9uIERlYyAgMiAwMzo1OTozOCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGdycC9pbml0Z3JvdXBzLmM6IFVwZGF0ZSBhbmQgcmVmb3JtYXQgY29weXJpZ2h0LgoJVXNlIF9fZ2V0Z3JlbnRfciBpbnN0ZWFkIG9mIGdldGdyZW50LgoKCSogaW5ldC9yY21kLmM6IFVwZGF0ZSBhbmQgcmVmb3JtYXQgY29weXJpZ2h0LgoJVXNlIF9fZ2V0aG9zdGJ5bmFtZV9yIGluc3RlYWQgb2YgZ2V0aG9zdGJ5bmFtZS4KCSogaW5ldC9yZXhlYy5jOiBMaWtld2lzZS4KCgkqIGludGwvZmluZGRvbWFpbi5jOiBDb3JyZWN0IGNvbW1lbnQgYWJvdXQgQ0VOIHNwb25zb3IgYW5kIHJldmlzaW9uLgoJKiBsb2NhbGUvZmluZGxvY2FsZS5jOiBMaWtld2lzZS4KCSogaW50bC9sMTBuZmxpc3QuYzogQ29ycmVjdCBoYW5kbGluZyBvZiBDRU4gc3BvbnNvciBhbmQgcmV2aXNpb24uCgkqIGxvY2FsZS9NYWtlZmlsZSAoQ1BQRkxBR1MpOiBBZGQgZGVmaW5pdGlvbiBvZiBMT0NBTEVESVIuCgkqIGxvY2FsZS9zZXRsb2NhbGUuYyAoc2V0bG9jYWxlKTogQ29ycmVjdGx5IHNwbGl0IHZhbHVlIG9mCglMT0NBTEVfUEFUSC4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZWRlZi5jOiBVc2UgTE9DQUxFRElSIG5vdCBMT0NBTEVfUEFUSCB0bwoJZmluZCBvdXRwdXQgZGlyZWN0b3J5LgoKCSogbnNzL2dldFhYYnlZWS5jIFtORUVEX0hfRVJSTk9dOiBCZWZvcmUgZW5sYXJnaW5nIGJ1ZmZlciB0ZXN0CgloX2Vycm5vX3RtcCB2YXJpYWJsZS4KCVNhdmUgZXJyb3IgdmFsdWUgZnJvbSBiZWluZyBjaGFuZ2VkIGR1cmluZyBgZnJlZScgY2FsbC4KCSogbnNzL2dldFhYZW50LmM6IExpa2V3aXNlLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1YWFguYzogU2V0IGhfZXJybm8gdmFyaWFibGUgdG8gTkVUREJfSU5URVJOQUwKCWJlZm9yZSByZXR1cm5pbmcgRVJBTkdFIGVycm9yLgoKCSogcG9zaXgvZ2xvYi5jOiBVc2UgZ2V0bG9naW5fciBhbmQgZ2V0cHduYW1fciBmdW5jdGlvbiB3aGVuIGF2YWlsYWJsZQoJb3IgaW4gR05VIGxpYmMuCgoJKiBwd2QvZ2V0cHcuYzogVXNlIGdldHB3dWlkX3IgaW5zdGVhZCBvZiBnZXRwd3VpZC4KCgkqIHN1bnJwYy9jbG50X2dlbi5jOiBVc2UgZ2V0aG9zdGJ5bmFtZV9yIGFuZCBnZXRwcm90b2J5bmFtZV9yLgoJKiBzdW5ycGMvY2xudF9zaW1wLmM6IExpa2V3aXNlLgoJKiBzdW5ycGMvZ2V0cnBjcG9ydC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZ2V0aG9zdGlkLmM6IExpa2V3aXNlLgoKCSogcG9zaXgvZ2V0Y29uZi5jOiBUcmVhdCBfU0NfVU5JVF9NQVggYW5kIF9TQ19VTE9OR19NQVggc2VwYXJhdGVseQoJc2luY2UgdGhlIHZhbHVlIG1pZ2h0IGJlIG91dHNpZGUgdGhlIHJhbmdlIG9mIHRoZSBgbG9uZyBpbnQnLgoJUHJpbnQgc3RyaW5nIGB1bmRlZmluZWQnIHdoZW4gYSB2YWx1ZSBpcyB1bmRlZmluZWQuCgoJKiBzdGRsaWIvbDY0YS5jOiBSZXR1cm4gY29ycmVjdCBwb2ludGVyLgoJUGF0Y2ggYnkgTklJQkUgWXV0YWthIDxnbmlpYmVAbXJpLmNvLmpwPi4KCgkqIHN0cmluZy9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgYXJnei1hZGRzZXAuCgkqIHN0cmluZy9hcmd6LWFkZHNlcC5jOiBOZXcgZmlsZS4KCSogc3RyaW5nL2FyZ3ouaDogQWRkIHByb3RvdHlwZXMgZm9yIGFyZ3pfYWRkX3NlcC4KCgkqIHN0cmluZy9hcmd6LWN0c2VwLmM6IFByZXZlbnQgbWVtb3J5IGxlYWsuCgoJKiBzdHJpbmcvc3RyY29sbC5jOiBDb3JyZWN0IHR5cG8gaW4gY29tbWVudC4KClNhdCBOb3YgMzAgMDI6NTM6NTkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvc2VyaWFsLmg6IFJlbW92ZWQgYWdhaW4uICBUaGUgZmlsZSBpcwoJbm90IGdlbmVyYWwgZW5vdWdoIHRvIGJlIHBhcnQgb2YgdGhlIGxpYmMuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L0Rpc3Q6IFJlbW92ZSBzeXMvc2VyaWFsLmguCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlOiBEb24ndCBpbnN0YWxsIHN5cy9zZXJpYWwuaC4KClRodSBOb3YgMjggMjA6MDQ6NDEgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBsb2dpbi9NYWtlZmlsZTogRml4IHR5cG8uCgoJKiBuc3MvTWFrZWZpbGUgKGdlbmVyYXRlZCk6IEZpbHRlciBvdXQgZGItYWxpYXMuYy4KClRodSBOb3YgMjggMTQ6NDQ6MDEgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiB0aW1lL01ha2VmaWxlIChlY2hvLXpvbmVuYW1lcyk6IERvbid0IGRlcGVuZCBvbiBub24tZXhpc3RpbmcKCXRhcmdldCBgem9uZW5hbWVzJy4KClRodSBOb3YgMjggMTI6MzQ6MDUgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBsaW5rLmg6IE5ldyBmaWxlLgoJKiBuc3MvbnNzd2l0Y2guYzogVXNlIGl0LgoKCSogcHJpbnRmLmg6IEZpeCBmaWxlIG5hbWUuCgkqIHN0ZGxpYi9zdHJmbW9uLmM6IFVzZSBpdC4KClRodSBOb3YgMjggMjM6MDM6MzIgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXRpbmV0L2luX3N5c3RtLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9EaXN0OiBBZGQgbmV0aW5ldC9pbl9zeXN0bS5oLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZSBbJChzdWJkaXIpPWluZXRdIChzeXNkZXBfaGVhZGVycyk6CglBZGQgbmV0aW5ldC9pbl9zeXN0bS5oLgoJUmVwb3J0ZWQgYnkgTklJQkUgWXV0YWthIDxnbmlpYmVAbXJpLmNvLmpwPi4KClRodSBOb3YgMjggMDM6MTE6MTEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBsaWJpby9maWxlb3BzLmM6IFVwZGF0ZSBmcm9tIGxhdGVzdCBsaWJnKysuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pbml0LWZpcnN0LmM6IFJlZm9ybWF0IGNvcHlyaWdodC4KCgkqIHN5c2RlcHMvc3R1Yi9saWJjLWxvY2suaDogQWRkIF9fbGliY19sb2NrX2luaXRfcmVjdXJzaXZlLgoJKiBsaWJpby9nZW5vcHMuYyAoX0lPX2luaXQpOiBVc2UgX19saWJjX2xvY2tfaW5pdF9yZWN1cnNpdmUKCWluc3RlYWQgb2YgX19saWJjX2xvY2tfaW5pdCBmb3Igc3RyZWFtcy4KCVJlcG9ydGVkIGJ5IGEgc3VuIDxhc3VuQHpvb2xvZ3kud2FzaGluZ3Rvbi5lZHU+LgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9icmsuYzogUmVmb3JtYXQgY29weXJpZ2h0LgoKCSogc3lzZGVwcy9nZW5lcmljL2Vycm5vLWxvYy5jOiBOZXcgZmlsZS4gIEdlbmVyaWMgZGVmaW5pdGlvbiBvZgoJX19lcnJub19sb2NhdGlvbiBmdW5jdGlvbi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXNkZXAuUzogUmVtb3ZlIGRlZmluaXRpb24gb2YKCV9fZXJybm9fbG9jYXRpb24uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzZGVwLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZSBbJChzdWJkaXIpPWNzdV06IEFkZCBlcnJuby1sb2MKCXRvIHN5c2RlcC1yb3V0aW5lcy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2NvbmZpZ3VyZTogQWRkIHRlc3QgZm9yIGxpbnV4dGhyZWFkcwoJYW5kIGNyeXB0IGFkZC1vbiBhbmQgd2FybiBpZiBub3QgYXZhaWxhYmxlLgoKV2VkIE5vdiAyNyAyMzowOTozNyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHBvL2tvLnBvOiBVcGRhdGUgZnJvbSBCYW5nIEp1bi1Zb3VuZyA8YmFuZ2p5QG5vd251cmkubm93Y29tLmNvLmtyPi4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3Q6IFJlbW92ZSBfbGxzZWVrLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZSBbJChzdWJkaXIpPW1pc2NdIChyb3V0aW5lcyk6IEFkZAoJbGxzZWVrLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9sbHNlZWsuYzogTmV3IGZpbGUuICBVc2VzIHN5c2NhbGwuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvc3lzY2FsbHMubGlzdDogQWRkIF9fc3lzX2xsc2Vlay4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNjYWxscy5saXN0OiBBZGQgX19zeXNfbGxzZWVrLgoJUmVwb3J0ZWQgYnkgSEogTHUgPGhqbEBnbnUuYWkubWl0LmVkdT4uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N5c2NhbGxzLmxpc3Q6IEFkZCBsbHNlZWsuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2xsc2Vlay5TOiBSZW1vdmUuICBHZW5lcmljIHN5c2NhbGwKCWlzIGVub3VnaC4KCVBhdGNoIGJ5IFJpY2hhcmQgSGVuZGVyc29uIDxydGhAdGFtdS5lZHU+LgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc3lzL2lvLmg6IEFkZCBwcm90b3R5cGVzIGZvcgoJcGNpY29uZmlnX3JlYWQgYW5kIHBjaWNvbmZpZ193cml0ZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc3lzY2FsbHMubGlzdDogQWRkIG5ldyBzeXNjYWxscwoJcGNpY29uZmlnX3JlYWQgYW5kIHBjaWNvbmZpZ193cml0ZS4KCgkqIGxvZ2luL2dldHV0ZW50X3IuYzogRml4IHNldmVyYWwgYnVncyBpbiBsYXN0IGNoYW5nZS4KCldlZCBOb3YgMjcgMDY6MTA6MTAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBNYWtlZmlsZTogRml4IHR5cG8uCgoJKiBjb25maWd1cmU6IFJlcXVpcmUgYXV0b2NvbmYtMi4xMS4KCgkqIGVsZi9kbC1kZXBzLmM6IFRlcm1pbmF0ZSBkdXBsaWNhdGUgbGlzdC4KCgkqIGxpYmlvL2xpYmlvLmg6IEFkZCBwcm90b3R5cGVzIGZvciBfSU9fc2Vla29mZiBhbmQgX0lPX3NlZWtwb3MuCgkqIGxpYmlvL3N0cmZpbGUuaDogVXBkYXRlIGZyb20gY3VycmVudCBsaWJnKysuCgkqIGxpYmlvL3N0cm9wcy5jOiBMaWtld2lzZS4KCgkqIGxvZ2luL01ha2VmaWxlIChyb3V0aW5lcyk6IFVwZGF0ZSBhZnRlciBjb3JyZWN0aW9uIG9mIHJlZW50cmFudAoJaW50ZXJmYWNlLgoJKiBsb2dpbi9lbmR1dGVudC5jOiBSZW1vdmVkLgoJKiBsb2dpbi9lbmR1dGVudF9yLmM6IExpa2V3aXNlLgoJKiBsb2dpbi9wdXR1dGxpbmUuYzogTGlrZXdpc2UuCgkqIGxvZ2luL3B1dHV0bGluZV9yLmM6IExpa2V3aXNlLgoJKiBsb2dpbi9zZXR1dGVudC5jOiBMaWtld2lzZS4KCSogbG9naW4vc2V0dXRlbnRfci5jOiBMaWtld2lzZS4KCSogbG9naW4vZ2V0dXRlbnQuYzogVXBkYXRlIGZvciBuZXcgaW50ZXJmYWNlLgoJKiBsb2dpbi9nZXR1dGVudF9yLmM6IExpa2V3aXNlLgoJKiBsb2dpbi9nZXR1dGlkLmM6IExpa2V3aXNlLgoJKiBsb2dpbi9nZXR1dGlkX3IuYzogTGlrZXdpc2UuCgkqIGxvZ2luL2dldHV0bGluZS5jOiBMaWtld2lzZS4KCSogbG9naW4vZ2V0dXRsaW5lX3IuYzogTGlrZXdpc2UuCgkqIGxvZ2luL2xvZ2luLmM6IExpa2V3aXNlLgoJKiBsb2dpbi9sb2dvdXQuYzogTGlrZXdpc2UuCgkqIGxvZ2luL2xvZ3d0bXAuYzogTGlrZXdpc2UuCgkqIGxvZ2luL3V0bXAuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9nZXRsb2dpbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2dldGxvZ2luX3IuYzogTGlrZXdpc2UuCgkqIGxvZ2luL3V0bXAtcHJpdmF0ZS5oOiBOZXcgcHJpdmF0ZSBoZWFkZXIuCgkqIGxvZ2luL3V0bXBfZGIuYzogU3R1YiBEQiBiYWNrZW5kIGZvciB1dG1wIGhhbmRsZXIuCgkqIGxvZ2luL3V0bXBfZmlsZS5jOiBGaWxlIGJhY2tlbmQgZm9yIHV0bXAgaGFuZGxlci4KCSogc3lzZGVwcy9nbnUvdXRtcGJpdHMuaCAoc3RydWN0IHV0bXApOiBBZGQgc29tZSBtb3JlIGZpZWxkcy4KCShlbnVtIHV0bG9naW4pOiBMaXN0IG9mIHJlY29yZCB0eXBlcy4KCShzdHJ1Y3QgZXhpdF9zdGF0dXMpOiBSZWNvcmQgdG8gYWxpZ24gd2l0aCBvdGhlciBpbXBsZW1lbnRhdGlvbnMuCgoJKiBzeXNkZXBzL2dlbmVyaWMvcGF0aHMuaDogQWRkIF9QQVRIX1VUTVBfREIuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3BhdGhzLmg6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9nZW5lcmljL3B0eS5jOiBVc2UgZ2V0Z3JuYW1fciBpbnN0ZWFkIG9mIGdldGdybmFtLgoKCSogc3lzZGVwcy9zdHViL2dldGxvZ2luLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgkqIHN5c2RlcHMvc3R1Yi9nZXRsb2dpbl9yLmM6IExpa2V3aXNlLgoKCSogbnNzL2dldFhYYnlZWV9yLmM6IFVzZSAtMWwgZm9yIGVycm9yLXBvaW50ZXIgdmFsdWUgaW5zdGVhZCBvZiAtMS4KCSogbnNzL2dldFhYZW50X3IuYzogTGlrZXdpc2UuCgkqIG5zcy9uc3N3aXRjaC5jOiBMaWtld2lzZS4KCgkqIHBvc2l4L01ha2VmaWxlIChoZWFkZXJzKTogQWRkIHdhaXQuaC4KCSogcG9zaXgvd2FpdC5oOiBOZXcgZmlsZS4KCgkqIHBvc2l4L3N5cy90eXBlcy5oOiBBbHdheXMgZGVmaW5lIGludE5fdCB0eXBlcy4KCgkqIHN0ZGlvLWNvbW1vbi9NYWtlZmlsZTogVXBkYXRlIGNvcHlyaWdodC4KCVVzZSAtV25vLWZvcm1hdCBmbGFnIGZvciBzY2FuZjQuYyBhbmQgc2NhbmY3LmMuCgoJKiBzdGRsaWIvc3RkbGliLmg6IFJlZm9ybWF0LgoKRnJpIE5vdiAyMiAxOTozNDoxMiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvcG9zaXgvZ2V0Y3dkLmMgKF9fZ2V0Y3dkKTogQWZ0ZXIgcmVzaXppbmcgdGhlIGJ1ZmZlcgoJbW92ZSB0aGUgY3VycmVudCBjb250ZW50cyB0byB0aGUgZW5kIGFuZCByZWxvY2F0ZSBmaWxlIG5hbWUKCXBvaW50ZXIgdG8gdXBwZXIgaGFsZiBvZiB0aGUgYnVmZmVyLgoKU3VuIE5vdiAyNCAwNDo1NjoxOSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHRpbWUvYWZyaWNhOiBVcGRhdGUgZnJvbSBBRE8gdHpkYXRhMTk5Nm0uCgkqIHRpbWUvYW50YXJjdGljYTogTGlrZXdpc2UuCgkqIHRpbWUvYXNpYTogTGlrZXdpc2UuCgkqIHRpbWUvYXVzdHJhbGlhOiBMaWtld2lzZS4KCSogdGltZS9ldGNldGVyYTogTGlrZXdpc2UuCgkqIHRpbWUvZXVyb3BlOiBMaWtld2lzZS4KCSogdGltZS9ub3RoYW1lcmljYTogTGlrZXdpc2UuCgkqIHRpbWUvc291dGhhbWVyaWE6IExpa2V3aXNlLgoJKiB0aW1lL3pvbmUudGFiOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9zZXJpYWwuaDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIFskKHN1YmRpcik9bWlzY10gKHN5c2RlcF9oZWFkZXJzKToKCUFkZCBzeXMvc2VyaWFsLmguCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L0Rpc3Q6IEFkZCBzeXMvc2VyaWFsLmguCgoJKiBwb3NpeC93YWl0Lmg6IE5ldyBmaWxlLgoJKiBwb3NpeC9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCB3YWl0LmguCgpTYXQgTm92IDIzIDE3OjI3OjUyIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGdudS5haS5taXQuZWR1PgoKCSogTWFrZWNvbmZpZyAoJChjb21tb24tb2JqcGZ4KXNvdmVyc2lvbnMubWspOiBVc2UgcmVndWxhcgoJZXhwcmVzc2lvbiBpbnN0ZWFkIG9mIHNoZWxsIHBhdHRlcm4gbWF0Y2hpbmcuCgkqIHNobGliLXZlcnNpb25zOiBDaGFuZ2UgdG8gcmVndWxhciBleHByZXNzaW9ucy4KClNhdCBOb3YgMjMgMTM6MjQ6NTUgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBpby9zdGF0LmM6IEFkZCBzZWN0aW9uIGZyb20gbGliZ2NjIHRvIGNvcHlyaWdodCBjb21tZW50Cgl0byBhbGxvdyB0aGlzIGZpbGUgdG8gYmUgc3RhdGljYWxseSBsaW5rZWQgaW4gYXBwbGljYXRpb25zLgoJKiBpby9mc3RhdC5jOiBMaWtld2lzZS4KCSogaW8vbHN0YXQuYzogTGlrZXdpc2UuCgkqIGlvL21rbm9kLmM6IExpa2V3aXNlLgoKRnJpIE5vdiAyMiAxNToxNDoyMyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGNzdS9pbml0ZmluaS5jOiBBZGQgc2VjdGlvbiBmcm9tIGxpYmdjYyB0byBjb3B5cmlnaHQgY29tbWVudAoJdG8gYWxsb3cgdGhpcyBmaWxlIHRvIGJlIHN0YXRpY2FsbHkgbGlua2VkIGluIGFwcGxpY2F0aW9ucy4KCgkqIG1hbGxvYy9vYnN0YWNrLmggWyFfTElCQyAmJiAhSEFWRV9TVFJJTkdfSF06IERlZmluZSBtZW1jcHkgaWYKCW5vdCBhbHJlYWR5IGRlZmluZWQuCgkob2JzdGFja19ncm93LCBvYnN0YWNrX2dyb3cwKTogQ29ycmVjdCBwbGFjZW1lbnQgb2YgYnJhY2VzLgoKCSogZ251LXZlcnNpb25zLmggKF9HTlVfT0JTVEFDS19JTlRFUkZBQ0VfVkVSU0lPTik6IERlZmluZSB0byAyLgoJKiBtYWxsb2Mvb2JzdGFjay5jIChPQlNUQUNLX0lOVEVSRkFDRV9WRVJTSU9OKTogRGVmaW5lIHRvIDIuCgpUaHUgTm92IDIxIDE5OjU0OjUxIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZXJ1bGVzIChtYWtlLWxpbmspOiBTaW1wbGlmeSBieSBjaGFuZ2luZyBkaXJlY3Rvcnkgb25seSBpZgoJbm90IHVzaW5nIHJlbGxucy1zaDsgY2hlY2sgd2hldGhlciB3ZSByZWFsbHkgaGF2ZSBzeW1ib2xpYyBsaW5rcy4KCgkqIHJlbGxucy1zaDogRml4IHRoZSBjYXNlIG9mICQoZGlybmFtZSAkMikgYmVpbmcgYSBwcmVmaXggb2YKCSQoZGlybmFtZSAkMSk7IHVzZSBzdGF0dXMgb2YgbG4gZm9yIGV4aXQgY29kZTsgbWFrZSBtb3JlIHJvYnVzdAoJYWdhaW5zdCBtdWx0aXBsZSBzbGFzaGVzIGluIGEgcm93LgoKVGh1IE5vdiAyMSAxMzowNToyMSAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogY29uZmlndXJlLmluIChhZnRlciBBQ19DQU5PTklDQUxfSE9TVCk6IG11dGF0ZSAqLSotZ251KiBuYW1lcwoJaW50byAqLSotZ251LWdudSouCgkqIHNobGliLXZlcnNpb25zIChnbnUgdmVyc2lvbnMpOiBSZWNvZ25pemUgKi0qLWdudS1nbnUqIGluc3RlYWQgb2YKCXRoZSB0aHJlZS1wYXJ0IG5hbWUsIHRvIGRpc3Rpbmd1aXNoIGNvcnJlY3RseSBmcm9tICotKi1saW51eC1nbnUqLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvTWFrZWZpbGUgKCQobGliZGlyKS9saWJjLnNvKTogRGVwZW5kIG9uCgkkKHJwY3VzZXJsaWJzKS4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL01ha2VmaWxlIChpbnN0YWxsLW90aGVycyk6IEFkZAoJJChsaWJkaXIpL2xpYmNfcC5hLgoJKCQobGliZGlyKS9saWJjX3AuYSk6IE5ldyBydWxlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9saWJjX3AtbGRzY3JpcHQ6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9EaXN0OiBBZGQgbGliY19wLWxkc2NyaXB0LgoKV2VkIE5vdiAyMCAyMDoyODoyMSAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIE1ha2VydWxlcyAobWFrZS1saW5rKTogVXNlICQoc2hlbGwpIHRvIGZpbmQgcmVsbG5zLXNoIGJlZm9yZSB3ZSBjZC4KCSogdGltZS9NYWtlZmlsZTogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2FscGhhL2VsZi9NYWtlZmlsZTogTmV3IGZpbGUuICBCdWlsZCBjcnRiZWdpbi5vICYgY3J0ZW5kLm8uCgkqIHN5c2RlcHMvYWxwaGEvZWxmL0Rpc3Q6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2FscGhhL2VsZi9jcnRiZWdpbi5TLCBzeXNkZXBzL2FscGhhL2VsZi9jcnRlbmQuUzogTmV3IGZpbGVzLgoJVGhlIGJpdHMgY3VycmVudGx5IGRpc3RyaWJ1dGVkIHdpdGggR0NDIGZhaWwgaW4gdHdvIHdheXMgLS0gdGhleSBkb24ndAoJdW5kZXJzdGFuZCBtdWx0aXBsZSAuZ290IHN1YnNlY3Rpb25zIGFuZCB0aGUgZXh0ZW50cyBvZiB0aGUgbGlzdHMgYXJlCglkeW5hbWljbHkgYm91bmQgbWVhbmluZyB0aGF0IHRoZSBhcHBsaWNhdGlvbidzIGxpc3RzIGdldCBleGVjdXRlZAoJbXVsdGlwbGUgdGltZXMgYW5kIHRoZSBsaWJyYXJ5J3MgbGlzdHMgbmV2ZXIgZ2V0IGV4ZWN1dGVkLgoKV2VkIE5vdiAyMCAwMDo0Mjo0NSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN0ZGxpYi9zdHJ0b2QuYzogRml4IHByZXZpb3VzIGNoYW5nZS4KCldlZCBOb3YgMjAgMjI6MDc6NTggMTk5NiAgQW5kcmVhcyBKYWVnZXIgIDxhakBhcnRodXIucGZhbHouZGU+CgoJKiB0aW1lL01ha2VmaWxlICgkKGluc3RhbGxlZC1sb2NhbHRpbWUtZmlsZSkpOiBVc2UgJCguLikgdG8gZmluZAoJcmVsbG5zLXNoIHNjcmlwdC4KCldlZCBOb3YgMjAgMTI6NTA6NTQgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdGRpby1jb21tb24vTWFrZWZpbGU6IEFkZCBDRkxBR1Mtc2NhbmY3LmMgdG8gcHJldmVudCB3YXJuaW5nLgoJTGlrZXdpc2UgZm9yIHNjYW5mNC5jCgpXZWQgTm92IDIwIDAyOjA0OjExIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2lnc3VzcGVuZC5jOiBNYWtlIHNpZ3N1c3BlbmQgYSB3ZWFrCglhbGlhcyBvZiBfX3NpZ3N1c3BlbmQuCgoJKiBncnAvZ3JwLmg6IENvcnJlY3QgY29tbWVudCBhYm91dCBQT1NJWCBjb21wbGlhbmNlLgoJKiBwd2QvcHdkLmg6IExpa2V3aXNlLgoKCSogbG9naW4vdXRtcC5oOiBVcGRhdGUgY29weXJpZ2h0IGFuZCBwcmV0dHktcHJpbnQgcHJvdG90eXBlcy4KCSogc3lzZGVwcy9nZW5lcmljL3BhdGhzLmg6IEFkZCBfUEFUSF9MQVNUTE9HLCBfUEFUSF9VVE1QIGFuZAoJX1BBVEhfV1RNUCBmcm9tIHV0bXBiaXRzLmguCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3BhdGhzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvdXRtcGJpdHMuaDogUmVtb3ZlIGhlcmUuCgkqIHN5c2RlcHMvZ251L3V0bXBiaXRzLmg6IExpa2V3aXNlLgoKCSogbWlzYy9zeXMvdWlvLmg6IFBsYWNlIF9fQkVHSU5fREVDTFMgY29ycmVjdGx5LgoJUHJldHR5LXByaW50IHByb3RvdHlwZXMuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zcGFyYy9jbG9uZS5TOiBOZXcgZmlsZS4gIFRha2VuIGZyb20KCUxpbnV4VGhyZWFkcy0wLjUuCgpUdWUgTm92IDE5IDEzOjQzOjA3IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogaW5ldC9ldGhlcl9odG9uLmM6IEluY2x1ZGUgPHN0cmluZy5oPi4KCSogaW5ldC9ldGhlcl9udG9oLmM6IExpa2V3aXNlLgoJKiBpbmV0L3JleGVjLmM6IEdldCBlcnJubywgaW5kZXgsIGdldHBhc3MsIGdldGxvZ2luIGZyb20gaGVhZGVycy4KCSogbWlzYy9zZWFyY2guaDogRml4IGhjcmVhdGVfciBhcmd1bWVudCB0eXBlICh1bnNpZ25lZCAtPiBzaXplX3QpLgoKCSogbWlzYy9zeXMvY2RlZnMuaDogQ2hhbmdlIF9fbG9uZ19kb3VibGVfdCBkZWZpbml0aW9uIGZyb20gdHlwZWRlZgoJdG8gZGVmaW5lLiAgSmltIE5hbmNlIHJlcG9ydHMgcHJvYmxlbXMgYnVpbGRpbmcgWEVtYWNzIG90aGVyd2lzZS4KCgkqIHJlc29sdi9nZXRobmFtYWRkci5jOiBQcm90ZWN0IGhfZXJybm8gcmVkZWZpbml0aW9uLgoJKiByZXNvbHYvZ2V0bmV0bmFtYWRyLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvaGVycm9yLmM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9nZW5lcmljL3NpZ3NldC5oIChfX1NJR1NFVEZOKTogT3BlcmF0b3IgIyMgZG9lc24ndCB3b3JrCgl3aXRoIC10cmFkaXRpb25hbC4gIFJlcG9ydGVkIGJ5IEVyaWMgWW91bmdkYWxlLiAgV2hpbGUgd2UncmUgYXQgdGhpcywKCWRvbid0IGRvIGVycm9yIGNoZWNraW5nIGluIHRoZSBfXyBmdW5jdGlvbnMuICBUaGlzIGlzIGNvbnNpc3RlbnQKCXdpdGggdGhlIHN5c3Y0IGRlZmluaXRpb25zIGFuZCBzZWVtcyBSaWdodC4KCSogc2lnbmFsL3NpZ25hbC5oOiBEb24ndCBfX09QVElNSVpFX18gc2lnb3BzIHRvIF9fIHZlcnNpb25zLiAgQWRkCglwcm90b3R5cGUgZm9yIF9fc2lnc3VzcGVuZC4KCSogc3lzZGVwcy9wb3NpeC9zaWdibG9jay5jOiBPcHRpbWl6ZSBzaWdtYXNrIDwtPiBzaWdzZXRfdCBjb252ZXJzaW9ucwoJZm9yIHNpZ3NldF90ID09IHVuc2lnbmVkIGxvbmcuICBEZS1hbnNpZGVjbC1pZnkuICBSZWZvcm1hdCBjb3B5cmlnaHQuCgkqIHN5c2RlcHMvcG9zaXgvc2lncGF1c2UuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvc2lnc2V0bWFzay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9zaWd2ZWMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvc2lnaW50ci5jOiBSZWZvcm1hdCBjb3B5cmlnaHQuCgkqIHN5c2RlcHMvcG9zaXgvc2lnbmFsLmM6IENoZWNrIHNpZ25hbCBudW1iZXIgb3V0IG9mIHJhbmdlIHNpbmNlCglfX3NpZ2lzbWVtYmVyIGRvZXNuJ3QgYW55bW9yZS4gIFJlZm9ybWF0IGNvcHlyaWdodC4KCSogc3lzZGVwcy9wb3NpeC9zaWd3YWl0LmM6IFVzZSBfXyB2ZXJzaW9ucyBvZiBzaWdmaWxsc2V0LCBzaWdpc21lbWJlciwKCXNpZ2RlbHNldCwgc2lnYWN0aW9uLCBhbmQgc2lnc3VzcGVuZC4KCgkqIHN0ZGxpYi9kcmFuZDQ4LWl0ZXIuYyAoX19kcmFuZDQ4X2l0ZXJhdGUpOiBDYXN0IHN0YXRlIGZyYWdtZW50cwoJdG8gdGhlIHdpZGVyIHR5cGUgYmVmb3JlIHNoaWZ0aW5nLgoKCSogc3lzZGVwcy9hbHBoYS9ic2QtX3NldGptcC5TOiBTaWxlbmNlIGFzc2VtYmxlciB3YXJuaW5nICIkYXQgdXNlZAoJd2l0aG91dCAuc2V0IG5vYXQiIGluIHByb2ZpbGluZyBob29rLgoJKiBzeXNkZXBzL2FscGhhL2JzZC1zZXRqbXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvaHRvbmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvaHRvbnMuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvc19jb3B5c2lnbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9zZXRqbXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvc3RwY3B5LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL3N0cmNhdC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9zdHJjcHkuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvc3RybmNhdC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvYnJrLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9jbG9uZS5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvaWVlZV9nZXRfZnBfY29udHJvbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvaWVlZV9zZXRfZnBfY29udHJvbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvbGxzZWVrLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zaWdzdXNwZW5kLlM6IExpa2V3aXNlLiAgUmVuYW1lCglmdW5jdGlvbiB0byBfX3NpZ3N1c3BlbmQgYW5kIGFkZCB3ZWFrIGFsaWFzLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zeXNjYWxsLlM6IExpa2V3aXNlLiAgQWRkIG1pc3NpbmcgRU5ELgoKCSogc3lzZGVwcy9hbHBoYS93X3NxcnQuUzogRGVmaW5lIF9FUlJOT19IIHNvIDxlcnJub3MuaD4gZGVmaW5lcyBFRE9NLgoKCSogc3lzZGVwcy91bml4L2V4ZWN2ZS5TOiBNYXRjaCBQU0VVRE9fRU5EIHN5bWJvbCB3aXRoIHRoZSBzeW1ib2wKCVNZU0NBTExfXyBhY3R1YWxseSBnZW5lcmF0ZWQuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9lcnJub3MuaCBbX0xJQkNfUkVFTlRSQU5UXTogUmVmbGV4aXZlbHkKCSNkZWZpbmUgX19zZXRfZXJybm8sIGFzIHNldmVyYWwgaW1wb3J0ZWQgc3Vic3lzdGVtcyAoZWcuIEJJTkQpIGNoZWNrCgl0aGF0IHRoZSBzeW1ib2wgaXMgZGVmaW5lZC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dldHN5c3N0YXRzLmM6IEluY2x1ZGUgPGFsbG9jYS5oPi4KCgkqIHN5c2RlcHMvYWxwaGEvbWVtY3B5LlM6IFRlbXBvcmFyaWx5IHJlbW92ZSB1bnRpbCBJIGNhbiBmaW5kIGEgYnVnCgl0aGF0IG1hbmlmZXN0cyBpbiBHQ0MuCgpUdWUgTm92IDE5IDExOjEwOjA1IDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL3Bvc2l4L3dyaXRldi5jICh3cml0ZXYpOiBDT1VOVCBwYXJtIGlzIG5vdyBpbnQuCgkqIHN5c2RlcHMvcG9zaXgvcmVhZHYuYyAocmVhZHYpOiBMaWtld2lzZS4KClR1ZSBOb3YgMTkgMTU6Mjg6MjkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBuc3MvbnNzX2Rucy9kbnMtbmV0d29yay5jOiBDaGFuZ2UgcmV0dXJuIHR5cGUgb2YgYWxsIGZ1bmN0aW9ucwoJdG8gZW51bSBuc3Nfc3RhdHVzLgoJUmVwb3J0ZWQgYnkgTklJQkUgWXV0YWthLgoJKiBuc3MvbnNzX2Rucy9kbnMtaG9zdC5jOiBVcGRhdGUgY29weXJpZ2h0LgoKRnJpIE5vdiAxNSAyMDoxNjozOCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGNvbmZpZy5tYWtlLmluOiBSZW1vdmUgZGVmaW5pdGlvbiBvZiB0b3BfYWJzZGlyLgoJKiBjb25maWd1cmUuaW46IExpa2V3aXNlLiBVc2UgJCguLikgaW5zdGVhZC4KCSogTWFrZXJ1bGVzIChtYWtlLWxpbmspOiBVc2UgJCguLikgdG8gZmluZCByZWxsbnMtc2ggc2NyaXB0LgoKU2F0IE5vdiAxNiAxNTo1MjoyOSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIG1hbnVhbC9uc3MudGV4aSAoTmFtZSBTZXJ2aWNlIFN3aXRjaCk6IEZpeCByZWZlcmVuY2UgdG8KCWBmcm9ibmljYXRlJy4KCkZyaSBOb3YgMTUgMjI6MDg6MzMgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZSAoc3lzZGVwX2hlYWRlcnMpOiBBZGQKCXN5cy9tdGlvLmguCgpNb24gTm92IDE4IDA1OjUxOjEzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9nZW5lcmljL3dhaXRzdGF0dXMuaCAoX19XSUZTSUdOQUxFRCk6IFJlbmFtZSBsb2NhbAoJdmFyaWFibGUgZnJvbSBfX3N0YXQgdG8gX19zdGF0dXMgdG8gcHJldmVudCBzaGFkb3dpbmcuCgkqIHN1bnJwYy9ycGMvY2xudC5oIChjbG50dWRwX2NyZWF0ZSwgY2xudHVkcF9idWZjcmVhdGUpOiBMaWtld2lzZQoJZm9yIHBhcmFtZXRlciBfX3dhaXQuCglSZXBvcnRlZCBieSBOSUlCRSBZdXRha2EuCgpNb24gTm92IDE4IDAyOjA1OjM4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbWlzYy9yZWdleHAuYzogTmV3IGZpbGUuICBJbXBsZW1lbnRhdGlvbiBvZiBvYnNvbGV0ZSBpbnRlcmZhY2UKCXRvIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGVyIChyZXF1aXJlZCBpbiBYUEc0LjIpLgoJKiBtaXNjL3JlZ2V4cC5oOiBOZXcgZmlsZS4gIEhlYWRlciBmb3IgYWJvdmUuCgkqIG1pc2MvTWFrZWZpbGUgKGhlYWRlcnMpOiBBZGQgcmVnZXhwLmguCgkocm91dGluZXMpOiBBZGQgcmVnZXhwLmMuCglVcGRhdGUgY29weXJpZ2h0LgoKU3VuIE5vdiAxNyAyMTo1MDoyNCAxOTk2ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIHN0ZGxpYi90c3Qtc3RydG9kLmMgKG1haW4pOiBBZGQgYXJndW1lbnRzIGZvciBtYWluLgoJKiBzdGRsaWIvdHN0LXN0cnRvbC5jIChtYWluKTogTGlrZXdpc2UuCgpTdW4gTm92IDE3IDIxOjE1OjA1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogY29uZmlndXJlLmluOiBTdWJzdGl0dXRlIGxpYmNfY3Zfc2xpYmRpciBhbmQgbGliY19jdl9zeXNjb25mZGlyCglpbiBvdXRwdXQgZmlsZXMuCgkqIHN5c2RlcGVzL3VuaXgvc3lzdi9saW51eC9jb25maWd1cmU6IERlZmluZSBsaWJjX2N2X3NsaWJkaXIgdG8gL2xpYgoJYW5kIHN5c2NvbmZkaXIgdG8gL2V0YyBpZiAkcHJlZml4IGlzIC91c3IuCgkqIGNvbmZpZy5tYWtlLmluOiBBZGQgc2xpYmRpciwgc3lzY29uZmRpciBhbmQgQkFTSCB0byBiZSByZXBsYWNlZC4KCgkqIGVsZi9NYWtlZmlsZSAoJChvYmpwZngpbGRkKTogSW5zdGFsbCBsZGQuYmFzaC5pbiBpZgoJJChoYXZlLWJhc2gyKSBpcyB5ZXMuCgkqIGVsZi9sZGQuYmFzaC5pbjogQWRkIGNvcHlyaWdodCBhbmQgdmFyaW91cyBjbGVhbnVwcy4KCSogZWxmL2xkZC5zaC5pbjogTGlrZXdpc2UuCgoJSW1wbGVtZW50IFJUTERfTkVYVC4KCSogZWxmL2RsZmNuLmg6IERlZmluZSBSVExEX05FWFQuCgkqIGVsZi9kbC1kZXBzLmM6IEJ1aWxkIHNlY29uZCBzZWFyY2hsaXN0IHdoaWNoIGNvbnRhaW5zIGR1cGxpY2F0ZXMuCgkqIGVsZi9kbC1sb29rdXAuYyAoX2RsX2xvb2t1cF9zeW1ib2xfc2tpcCk6IE5ldyBmdW5jdGlvbi4gIFVzZWQKCWZvciBSVExEX05FWFQgbG9va3VwLgoJUmV3cml0ZSBfZGxfbG9va3VwX3N5bWJvbCB0byBwdXQgY29tbW9uIHBhcnRzIGZvciBib3RoIGxvb2t1cAoJZnVuY3Rpb25zIGluIGEgc2VwYXJhdGUgZnVuY3Rpb24uCgkqIGVsZi9kbHN5bS5jOiBIYW5kbGUgUlRMRF9ORVhUIGJ5IGNhbGxpbmcgX2RsX2xvb2t1cF9zeW1ib2xfc2tpcC4KCSogZWxmL2xpbmsuaCAoc3RydWN0IGxpbmtfbWFwKTogQWRkIGxfZHVwc2VhcmNobGlzdCBhbmQKCWxfbmR1cHNlYXJjaGxpc3QuCglBZGQgcHJvdG90eXBlIGZvciBfZGxfbG9va3VwX3N5bWJvbF9za2lwLgoKCSogc3VucnBjL01ha2VmaWxlIChycGNzdmMpOiBBZGQgcnVzZXJzLgoJKiBzdW5ycGMvcnBjc3ZjL3JudXNlcnMueDogUmVtb3ZlLiAgT2Jzb2x0ZXRlZCBieSBydXNlcnMueC4KCSogc3VucnBjL3JwY3N2Yy9ydXNlcnMueDogTmV3IGZpbGUuCgpTdW4gTm92IDE3IDA0OjI0OjM1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmMgW1VTRV9JTl9MSUJJT10gKGJ1ZmZlcmVkX3ZmcHJpbnRmKTogQ2FsbAoJX19saWJjX2xvY2tfaW5pdCBmb3IgbG9jYWwgbG9jay4KCVJlcG9ydGVkIGJ5IGEgc3VuIDxhc3VuQHpvb2xvZ3kud2FzaGluZ3Rvbi5lZHU+LgoJWyFVU0VfSU5fTElCSU9dIChQQUQpOiBPcHRpbWl6ZSBhIGJpdC4KClN1biBOb3YgMTcgMDM6MTM6NTcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBkYi9tYWtlZGIuYzogVXBkYXRlIGFuZCByZWZvcm1hdCBjb3B5cmlnaHQuCgkqIGVsZi9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIGVsZi9kbC1jbG9zZS5jOiBMaWtld2lzZS4KCSogZWxmL2RsLWRlYnVnLmM6IExpa2V3aXNlLgoJKiBlbGYvZGwtZGVwcy5jOiBMaWtld2lzZS4KCSogZWxmL2RsLWVycm9yLmM6IExpa2V3aXNlLgoJKiBlbGYvZGwtZmluaS5jOiBMaWtld2lzZS4KCSogZWxmL2RsLWluaXQuYzogTGlrZXdpc2UuCgkqIGVsZi9kbC1sb2FkLmM6IExpa2V3aXNlLgoJKiBlbGYvZGwtbG9va3VwLmM6IExpa2V3aXNlLgoJKiBlbGYvZGwtbWluaW1hbC5jOiBMaWtld2lzZS4KCSogZWxmL2RsLW9iamVjdC5jOiBMaWtld2lzZS4KCSogZWxmL2RsLW9wZW4uYzogTGlrZXdpc2UuCgkqIGVsZi9kbC1yZWxvYy5jOiBMaWtld2lzZS4KCSogZWxmL2RsLXJ1bnRpbWUuYzogTGlrZXdpc2UuCgkqIGVsZi9kbC1zdXBwb3J0LmM6IExpa2V3aXNlLgoJKiBlbGYvZGwtc3ltYm9sLmM6IExpa2V3aXNlLgoJKiBlbGYvZGxhZGRyLmM6IExpa2V3aXNlLgoJKiBlbGYvZGxjbG9zZS5jOiBMaWtld2lzZS4KCSogZWxmL2RsZXJyb3IuYzogTGlrZXdpc2UuCgkqIGVsZi9kbG9wZW4uYzogTGlrZXdpc2UuCgkqIGVsZi9kbHN5bS5jOiBMaWtld2lzZS4KCSogZWxmL2RvLXJlbC5oOiBMaWtld2lzZS4KCSogZWxmL2R5bmFtaWMtbGluay5oOiBMaWtld2lzZS4KCSogZWxmL2V2YWwuYzogTGlrZXdpc2UuCgkqIGVsZi9ydGxkLmM6IExpa2V3aXNlLgoJKiBpbmV0L2V0aGVyX2h0b24uYzogTGlrZXdpc2UuCgkqIGluZXQvZXRoZXJfbnRvaC5jOiBMaWtld2lzZS4KCSogaW5ldC9ldGhlcl9saW5lLmM6IExpa2V3aXNlLgoJKiBpbmV0L2dldG5ldGdyZW50X3IuYzogTGlrZXdpc2UuCgoJKiBpbmV0L01ha2VmaWxlICgrZ2Njd2Fybik6IFJlbW92ZSBkZWZpbml0aW9uLgoJSW5zdGVhZCBzZXQgQ0ZMQUdTLXJjbWQuYywgQ0ZMQUdTLXJleGVjLmMsIGFuZCBDRkxBR1MtcnVzZXJwYXNzLmMKCXRvIGAtdycuCgkqIGluZXQvYWxpYXNlcy5oOiBBZGQgQysrIHByb3RlY3Rpb24uCgkqIGluZXQvZXRoZXJfaHRvbi5jOiBBZGQgcHJvdG90eXBlIGZvciBfX25zc19ldGhlcnNfbG9va3VwLgoJKGV0aGVyX2hvc3R0b24pOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIHJlc3VsdC4KCSogaW5ldC9ldGhlcl9udG9oLmM6IExpa2V3aXNlLgoJKiBpbmV0L2V0aGVyX2xpbmUuYzogSW5jbHVkZSA8Y3R5cGUuaD4gYW5kIDxzdHJpbmcuaD4uCgkqIGluZXQvZ2V0bmV0Z3JlbnRfci5jOiBJbmNsdWRlIDxzdGRsaWIuaD4uCglVc2UgY2FzdHMgdG8gcHJldmVudCB3YXJuaW5ncy4KCShpbm5ldGdyKTogSW5pdGlhbGl6ZSBga25vd24nIGFuZCBgbmVlZGVkJy4KCSogaW5ldC9pbmV0X25ldC5jOiBNYWtlIGxvY2FsIHZhcmlhYmxlIGBpJyBvZiB0eXBlIHVfaW50MzJfdC4KCSogbnNzL2dldFhYYnlZWV9yLmMgKElOVEVSTkFMIChSRUVOVFJBTlRfTkFNRSkpIFtORUVEX19SRVNdOiBEb24ndAoJcmV0dXJuIE5VTEwuICBJbnN0ZWFkIHNldCAqUkVTVUxUIHRvIE5VTEwgYW5kIHJldHVybiAtMS4KCSogbnNzL2dldFhYZW50X3IuYyAoSU5URVJOQUwgKFJFRU5UUkFOVF9HRVROQU1FKSk6IExpa2V3aXNlLgoJKFNFVEZVTkNfTkFNRSwgRU5ERlVOQ19OQU1FKSBbTkVFRF9fUkVTXTogRG9uJ3QgcmV0dXJuIGFueXRoaW5nLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1hbGlhcy5jOiBEZWJ1ZyBmdW5jdGlvbi4gIEkgZGlkbid0IHdvcmtlZCBhdAoJYWxsIGJlZm9yZS4KClNhdCBOb3YgMTYgMTU6MjU6MzQgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3Bvc2l4L3JlYWR2LmM6IERvbid0IHVzZSBQVFIgYW55bW9yZS4KCSogc3lzZGVwcy9wb3NpeC93cml0ZXYuYzogTGlrZXdpc2UuCgoJKiB2ZXJzaW9uLmggKFZFUlNJT04pOiBCdW1wIHRvIDEuOTguCgoJKiBuc3MvZGItTWFrZWZpbGU6IEdlbmVyYXRlIGxpbmVzIGZvciBnZXRYWFhlbnQgaXRlcmF0aW9uLgoKCSogc3lzZGVwcy9hbHBoYS9EaXN0OiBEb24ndCBkaXN0cmlidXRlIHJlbW92ZWQgZmlsZXMgZGl2bHUuUywKCWRpdnF1LlMsIHJlbWx1LlMsIGFuZCByZW1xdS5TLgoKRnJpIE5vdiAxNSAwODo1NTo1NCAxOTk2ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIHBvc2l4L3VuaXN0ZC5oOiBDb3JyZWN0IHR5cG8gaW4gZG9jdW1lbnRhdGlvbi4KClRodSBOb3YgMTQgMTg6MDg6MTQgMTk5NiAgYSBzdW4gIDxhc3VuQHpvb2xvZ3kud2FzaGluZ3Rvbi5lZHU+CgoJKiBpbmV0L25ldGluZXQvdGNwLmg6IFVzZSBfXyBwcm90ZWN0ZWQgdmVyc2lvbnMgaW5zdGVhZCBvZgoJQllURV9PUkRFUiwgTElUVExFX0VORElBTiwgYW5kIEJJR19FTkRJQU4gZGlyZWN0bHkuCgpTYXQgTm92IDE2IDEzOjQ0OjU1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW50bC9sb2FkbXNnY2F0LmMgKF9ubF9tc2dfY2F0X2NudHIpOiBJbml0aWFsaXplIHNvIHRoYXQKCXJlZmVyZW5jZXMgaW4gbGliYy5zbyBhcmUgbm90IGFueW1vcmUgdW5kZWZpbmVkLgoKU2F0IE5vdiAxNiAxODoxNzozNiAxOTk2ICBOSUlCRSBZdXRha2EgIDxnbmlpYmVAbXJpLmNvLmpwPgoKCSogaW8vdXRpbWUuaDogUmVuYW1lIHNlY29uZCBwYXJhbWV0ZXIgZm9yIHV0aW1lIHRvIHByZXZlbnQgd2FybmluZwoJZm9yIC1Xc2hhZG93LgoJKiBkaXJlbnQvZGlyZW50Lmg6IFNhbWUgaGVyZSBmb3Igc2NhbmRpciBwcm90b3R5cGUuCgkqIG1hdGgvbWF0aGNhbGxzLmg6IExpa2V3aXNlIGZvciBmcmV4cCBhbmQgbGRleHAuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L25ldGluZXQvaW4uaDogTGlrZXdpc2UgZm9yIGJpbmRyZXN2cG9ydC4KClNhdCBOb3YgMTYgMDM6NDk6MjcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdGRsaWIvdHN0LXN0cnRvZC5jOiBBZGQgdGVzdCBmb3IgZXJyb3IgY2FzZSBiZWxvdy4KClNhdCBOb3YgMTYgMDM6NDg6MzkgMTk5NiAgV29sZnJhbSBHbG9nZXIgIDxXb2xmcmFtLkdsb2dlckBkZW50Lm1lZC51bmktbXVlbmNoZW4uZGU+CgoJKiBzdGRsaWIvc3RydG9kLmM6IFJlY29nbml6ZSBudW1iZXJzIGxpa2UgMGUtMTkuCgpGcmkgTm92IDE1IDA4OjM4OjQzIDE5OTYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogdGltZS9NYWtlZmlsZSAoJChpbnN0YWxsZWQtbG9jYWx0aW1lLWZpbGUpKTogRml4IHBhdGggdG8KCXJlbGxucy1zaC4KCgkqIE1ha2VmaWxlOiBEb24ndCBnZW5lcmF0ZSBhbmQgaW5zdGFsbCBnbnUvbGliLW5hbWVzLmggaWYKCSQoYnVpbGQtc2hhcmVkKSBpcyBub3QgYHllcycuCgpUaHUgTm92IDE0IDA5OjIzOjU4IDE5OTYgIEguSi4gTHUgKGhqbEBnbnUuYWkubWl0LmVkdSkKCgkqIHN5c2RlcHMvcG9zaXgvTWFrZWZpbGUgKCQoY29tbW9uLW9ianBmeCltay1zdGRpb2xpbSk6IERlcGVuZAoJb24gJCguLilwb3NpeC9wb3NpeDFfbGltLmgsIG5vdCAuLi9wb3NpeC9wb3NpeDFfbGltLmguCgoJKiBNYWtlcnVsZXMgKFJFQUxfTUFLRV9WRVJTSU9OKTogTmV3LCB1c2UgaXQgaW5zdGVhZCBvZgoJTUFLRV9WRVJTSU9OLgoKVGh1IE5vdiAxNCAyMjoxMDo0MyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtWFhYLnggKF9uc3NfZmlsZXNfZ2V0LEVOVE5BTUVfcik6IEZpeCB0eXBvLgoJKiBuc3MvZ2V0WFhlbnRfci5jOiBGaXggdHlwby4gIFNldCBjb3JyZWN0IHJldHVybiB2YWx1ZSB3aGVuCglubyBmdXJ0aGVyIHNlcnZpY2UgaXMgYXZhaWxhYmxlLgoKVGh1IE5vdiAxNCAxNzo0ODoxMyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGRiL3JlY25vL3JlY19wdXQuYzogQWRkIGNhc3QgdG8gYXZvaWQgd2FybmluZy4KCSogZGIvcmVjbm8vcmVjX2Nsb3NlLmM6IExpa2V3aXNlLgoJKiBkYi9tcG9vbC9tcG9vbC5jOiBMaWtld2lzZS4KCSogZGIvaGFzaC9oYXNoX2JpZ2tleS5oOiBMaWtld2lzZS4KCSogZGIvaGFzaC9oYXNoLmM6IExpa2V3aXNlLgoJKiBkYi9idHJlZS9idF9zcGxpdC5jOiBMaWtld2lzZS4KCSogZGIvYnRyZWUvYnRfcHV0LmM6IExpa2V3aXNlLgoKVGh1IE5vdiAxNCAxNDoxMTo0NCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGRpcmVudC9kaXJlbnQuaDogVXBkYXRlIGNvcHlyaWdodC4KCSogZWxmL2VsZi5oOiBMaWtld2lzZS4KCSogZWxmL2xpbmsuaDogTGlrZXdpc2UuCgkqIGdtb24vc3lzL2dtb25fb3V0Lmg6IExpa2V3aXNlLgoJKiBnbnUtdmVyc2lvbnMuaDogTGlrZXdpc2UuCgkqIGludGwvbGliaW50bC5oOiBMaWtld2lzZS4KCSogaW8vZmNudGwuaDogTGlrZXdpc2UuCgkqIGlvL2Z0dy5oOiBMaWtld2lzZS4KCSogaW8vc3lzL3N0YXRmcy5oOiBMaWtld2lzZS4KCSogaW8vdXRpbWUuaDogTGlrZXdpc2UuCgkqIGxvY2FsZS9sYW5naW5mby5oOiBMaWtld2lzZS4KCSogbWFsbG9jL21hbGxvYy5oOiBMaWtld2lzZS4KCSogbWFsbG9jL29ic3RhY2suaDogTGlrZXdpc2UuCgkqIG1pc2MvYXIuaDogTGlrZXdpc2UuCgkqIG1pc2MvZXJyb3IuaDogTGlrZXdpc2UuCgkqIG1pc2MvbW50ZW50Lmg6IExpa2V3aXNlLgoJKiBtaXNjL3NndHR5Lmg6IExpa2V3aXNlLgoJKiBtaXNjL3N5cy9jZGVmcy5oOiBMaWtld2lzZS4KCSogbWlzYy9zeXMvZGlyLmg6IExpa2V3aXNlLgoJKiBtaXNjL3N5cy9maWxlLmg6IExpa2V3aXNlLgoJKiBtaXNjL3N5cy9pb2N0bC5oOiBMaWtld2lzZS4KCSogbWlzYy9zeXMvdXN0YXQuaDogTGlrZXdpc2UuCgkqIHBvc2l4L2ZubWF0Y2guaDogTGlrZXdpc2UuCgkqIHBvc2l4L2dldG9wdC5oOiBMaWtld2lzZS4KCSogcG9zaXgvZ2xvYi5oOiBMaWtld2lzZS4KCSogcG9zaXgvcG9zaXgyX2xpbS5oOiBMaWtld2lzZS4KCSogcG9zaXgvcmVnZXguaDogTGlrZXdpc2UuCgkqIHBvc2l4L3N5cy90aW1lcy5oOiBMaWtld2lzZS4KCSogcG9zaXgvc3lzL3R5cGVzLmg6IExpa2V3aXNlLgoJKiBwb3NpeC9zeXMvdXRzbmFtZS5oOiBMaWtld2lzZS4KCSogcG9zaXgvdGFyLmg6IExpa2V3aXNlLgoJKiBwb3NpeC93b3JkZXhwLmg6IExpa2V3aXNlLgoJKiByZXNvdXJjZS9zeXMvcmVzb3VyY2UuaDogTGlrZXdpc2UuCgkqIHJlc291cmNlL3N5cy92bGltaXQuaDogTGlrZXdpc2UuCgkqIHJlc291cmNlL3N5cy92dGltZXMuaDogTGlrZXdpc2UuCgkqIHNvY2tldC9zeXMvc29ja2V0Lmg6IExpa2V3aXNlLgoJKiBzb2NrZXQvc3lzL3VuLmg6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vcHJpbnRmLmg6IExpa2V3aXNlLgoJKiBzdGRsaWIvYWxsb2NhLmg6IExpa2V3aXNlLgoJKiBzdHJpbmcvYXJnei5oOiBMaWtld2lzZS4KCSogc3RyaW5nL2VuZGlhbi5oOiBMaWtld2lzZS4KCSogc3RyaW5nL2VudnouaDogTGlrZXdpc2UuCgkqIHN0cmluZy9tZW1vcnkuaDogTGlrZXdpc2UuCgkqIHN0cmluZy9zdHJpbmdzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvY3J5cHQuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvZ2VuZXJpYy9kaXJlbnRyeS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL2dudS90eXBlcy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL2lvY3RsLXR5cGVzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvbmV0aW5ldC9pbi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL3Jlc291cmNlYml0cy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL3NpZ3NldC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL3NvY2thZGRyY29tLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvc3lzL21tYW4uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvZ2VuZXJpYy9zeXMvcHRyYWNlLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvdGVybWJpdHMuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvZ2VuZXJpYy93YWl0c3RhdHVzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2llZWU3NTQvaHVnZV92YWwuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaWVlZTc1NC9uYW4uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbWFjaC9odXJkL2xvY2FsX2xpbS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvc3RhdGJ1Zi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2h1Z2VfdmFsLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbGliYy1sb2NrLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2lnbnVtLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc3RhdGJ1Zi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3dhaXRmbGFncy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9ic2Q0LjQvc29ja2FkZHJjb20uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2Qvb3NmL2FscGhhL3N0YXRidWYuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2Qvb3NmL3N5cy9tbWFuLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3NpZ251bS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9zdGF0YnVmLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3N1bi9zaWdudW0uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2Qvc3VuL3N1bm9zNC9yZXNvdXJjZWJpdHMuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2Qvc3VuL3N1bm9zNC9zeXMvbW1hbi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9zdW4vc3Vub3M0L3Rlcm1iaXRzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3VsdHJpeDQvc3lzL21tYW4uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2Qvd2FpdGZsYWdzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9pcml4NC9zaWdudW0uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2lyaXg0L3N0YXRidWYuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2lyaXg0L3N5cy9tbWFuLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zdGF0YnVmLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zeXMvaW8uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2RpcmVudHJ5Lmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9nbnUvdHlwZXMuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2lvY3RsLXR5cGVzLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9sb2NhbF9saW0uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L25ldGluZXQvaW4uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Jlc291cmNlYml0cy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2lnbnVtLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zdGF0YnVmLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvaW8uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9rbG9nLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvbW1hbi5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3B0cmFjZS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvdGVybWJpdHMuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xvY2FsX2xpbS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3Yvc2NvMy4yLjQvc3lzY2FsbC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3Yvc2NvMy4yL2xvY2FsX2xpbS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3Yvc2lnbnVtLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9zeXN2NC9pMzg2L3N0YXRidWYuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3N5c3Y0L3NpZ251bS5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3Yvc3lzdjQvc2lnc2V0Lmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9zeXN2NC9zb2xhcmlzMi9zaWdudW0uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3N5c3Y0L3NvbGFyaXMyL3N0YXRidWYuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3N5c3Y0L3dhaXRmbGFncy5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy92YXgvaHVnZV92YWwuaDogTGlrZXdpc2UuCgkqIHZhbHVlcy5oOiBMaWtld2lzZS4KClRodSBOb3YgMTQgMDQ6MjI6NDEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBtYWxsb2Mvb2JzdGFjay5oOiBVc2UgbWVtY3B5IGluc3RlYWQgb2YgYmNvcHkgYW5kIGRlZmluZSBhIG1hY3JvCglgbWVtY3B5JyB1c2luZyBiY29weSBpZiBtZW1jcHkgaXMgbm90IGF2YWlsYWJsZS4KCgkqIG1hbnVhbC9zdGRpby50ZXhpOiBDb3JyZWN0IGRlc2NyaXB0aW9uIG9mIHByaW50ZiBjdXN0b21pemF0aW9uLgoJVGhlIGFyZ3VtZW50IGluZm8gZnVuY3Rpb24gaXMgbm90IG9wdGlvbmFsIGFueW1vcmUgYW5kIHRoZQoJaW50ZXJmYWNlIGZvciBgcHJpbnRmX2Z1bmN0aW9uJyBhbHNvIGNoYW5nZWQuCgkqIG1hbnVhbC9leGFtcGxlcy9ycHJpbnRmLmM6IERlZmluZSBhbmQgdXNlIGFyZ3VtZW50IGluZm8gZnVuY3Rpb24uCgoJKiBzdGRpby1jb21tb24vcHJpbnRmLmggKHN0cnVjdCBwcmludGZfaW5mbyk6IENoYW5nZSB0eXBlIGZvciBmaWVsZAoJYHBhZCcgdG8gd2NoYXJfdC4KCUNvcnJlY3QgY29tbWVudCBmb3IgYHJlZ2lzdGVyX3ByaW50Zl9mdW5jdGlvbicuCgoJKiBuc3MvZ2V0WFhieVlZLmMgW05FRURfSF9FUlJOT106IERvbid0IHBhc3MgcG9pbnRlciB0byBoX2Vycm5vCgl0byByZWVudHJhbnQgZnVuY3Rpb24uICBJbnN0ZWFkIHVzZSB0ZW1wb3JhcnkgdmFyaWFibGUgYW5kIHNldAoJaF9lcnJubyBpZiBhbiBlcnJvciBvY2N1cmVkLgoJUmVwb3J0ZWQgYnkgTklJQkUgWXV0YWthLgoKRnJpIE5vdiAxNSAxMjoyNzoyNSAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvc3RhdGJ1Zi5oIChTX0lQVFJBTlMsIFNfSUFUUkFOUywgU19JUk9PVCwKCVNfSVRSQU5TKTogTmV3IG1hY3Jvcy4KCShTX0lTUEFSRSk6IFVwZGF0ZSB0byBpbmNsdWRlIG5ldyBtYWNyb3MgYW5kIFNfSVVTRVVOSy4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3NlbGVjdC5jIChfX3NlbGVjdCk6IENvbnN0cnVjdCBhcmcgdG8KCW1hY2hfbXNnX2Rlc3Ryb3kgbW9yZSBuaWNlbHkuCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9pb2N0bC5jOiBJbmNsdWRlIDxtYWNoL21pZy1zdXBwb3J0Lmg+LgoKCSogc3RkaW8vZm9wZW4uYyAoX19nZXRtb2RlKTogRGVjbGFyZSB3aXRoIHByb3RvdHlwZS4KCSogc3RkaW8vbWVtc3RyZWFtLmMgKGVubGFyZ2VfYnVmZmVyLCBzZWVrLCBmcmVlX2luZm8pOiBMaWtld2lzZS4KCSogc3RkaW8vaW50ZXJuYWxzLmMgKF9fc3RkaW9fY2hlY2tfZnVuY3MsIGluaXRfc3RyZWFtLAoJc2Vla190b190YXJnZXQsIGZsdXNoYnVmLCBmaWxsYnVmKTogTGlrZXdpc2UuCgoJKiBzdGRpby1jb21tb24vdmZzY2FuZi5jIChlbmNvZGVfZXJyb3IpIFshIFVTRV9JTl9MSUJJT106IENhbGwKCWZ1bmxvY2tmaWxlLCBub3QgX0lPX2Z1bmxvY2tmaWxlLgoKCSogc3lzZGVwcy9wb3NpeC9yZWFkdi5jIChyZWFkdik6IENoYW5nZSByZXR1cm4gdHlwZSB0byBzc2l6ZV90LgogIAlEZWFuc2lkZWNsaXplZC4KCSogc3lzZGVwcy9wb3NpeC93cml0ZXYuYyAod3JpdGV2KTogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9sY2hvd24uYzogSW5jbHVkZSA8ZmNudGwuaD4gYW5kIGZpeCB0eXBvLgoKVGh1IE5vdiAxNCAxMjo1MzoxNiAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvaTM4Ni9pbml0LWZpcnN0LmMgKF9kbF9zdGFydCk6IE1ha2UgdGhpcyBhCglwcm90b3R5cGVkIGRlZmluaXRpb24uCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9zZWxlY3QuYyAoX19zZWxlY3QpOiBEZWFsIHByb3Blcmx5IHdoZW4gdGhlcmUKCWFyZSBubyBiaXRzIHNldCBpbiB0aGUgbWFza3MuICBSZXBvcnRlZCBieSBiYWxkYXp6aUBjc3IudW5pYm8uaXQuCgpUaHUgTm92IDE0IDAyOjAwOjMzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW5ldC9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBhbGlhc2VzLmguCgkocm91dGluZXMpOiBBZGQgZ2V0YWxpYXNlbnRfciwgZ2V0YWxpYXNlbnQsIGdldGFsaWFzbmFtZSwgYW5kCglnZXRhbGlhc25hbWVfci4KCSogYWxpYXNlcy5oOiBOZXcgZmlsZS4KCSogaW5ldC9hbGlhc2VzLmg6IE5ldyBmaWxlLgoJKiBpbmV0L2dldGFsaWFzZW50LmM6IE5ldyBmaWxlLgoJKiBpbmV0L2dldGFsaWFzZW50X3IuYzogTmV3IGZpbGUuCgkqIGluZXQvZ2V0YWxpYXNuYW1lLmM6IE5ldyBmaWxlLgoJKiBpbmV0L2dldGFsaWFzbmFtZV9yLmM6IE5ldyBmaWxlLgoJKiBuc3MvTWFrZWZpbGUgKGRhdGFiYXNlcyk6IEFkZCBhbGlhcy4KCSogbnNzL2FsaWFzLWxvb2t1cC5jOiBOZXcgZmlsZS4KCSogbnNzL2RhdGFiYXNlcy5kZWY6IEFkZCBhbGlhc2VzIGFuZCBwdWJsaWNrZXkuCgkqIG5zcy9uc3NfZGIvZGItYWxpYXMuYzogTmV3IGZpbGUuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtYWxpYXMuYzogTmV3IGZpbGUuCgoJKiBpbmV0L2dldG5ldGdyZW50X3IuYyAoX19pbnRlcm5hbF9nZXRuZXRncmVudCk6IEJ1ZmZlciBsZW5ndGgKCWFyZ3VtZW50IHRvIGxvb2t1cCBmdW5jdGlvbiBpcyBvZiB0eXBlIHNpemVfdC4KCShpbm5ldGdyKTogTGlrZXdpc2UuCgkqIG5zcy9nZXRYWGJ5WVlfci5jOiBMaWtld2lzZS4KCSogbnNzL2dldFhYZW50X3IuYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZGIvZGItWFhYLmM6IExpa2V3aXNlLgoKCSogbnNzL2dldFhYYnlZWS5jOiBEb24ndCBwcm92aWRlIHN0YXRpYyBidWZmZXIuICBSZXNpemUgaWYgY2FsbAoJZmFpbGVkIGJlY2F1c2UgYnVmZmVyIHdhcyB0b28gc21hbGwuCgkqIG5zcy9nZXRYWGVudC5jOiBMaWtld2lzZS4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtWFhYLmM6IENvcnJlY3QgaGFuZGxpbmcgb2Ygc2hhcmVkIGZpbGUuICBUaGUKCWdldFhYZW50X3IgZnVuY3Rpb24gbm93IHVzZXMgZltnc11ldHBvcyB0byBnZXQgdG8gdGhlIGNvcnJlY3QKCXBvc2l0aW9uLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1wYXJzZS5jOiBJbmRlbnQgbGluZXMgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KCgkqIG1hbGxvYy9vYnN0YWNrLmM6IEFkZCBuZXcgdmFyaWFibGUgb2JzdGFja19hbGxvY19mYWlsZWRfaGFuZGxlcgoJYW5kIG5ldyBmdW5jdGlvbiBwcmludF9hbmRfYWJvcnQuICBSZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8KCWFsbG9jX2ZhaWxlZCBmaWVsZC4KCUFkZCBuZXcgZnVuY3Rpb24gX29ic3RhY2tfbWVtb3J5X3VzZWQuCgkqIG1hbGxvYy9vYnN0YWNrLmggKHN0cnVjdCBvYnN0YWNrKTogUmVtb3ZlIGZpZWxkIGFsbG9jX2ZpZWxkLgoJUmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRvIGFsbG9jX2ZhaWxlZCBmaWVsZC4KCUFkZCBwcm90b3R5cGUgZm9yIF9vYnN0YWNrX21lbW9yeV91c2VkLgoKCSogcG9zaXgvdW5pc3RkLmg6IENvcnJlY3QgdHlwby4KCldlZCBOb3YgMTMgMDM6MDk6MTYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW46IFJlcXVpcmUgYXQgbGVhc3QgYXV0b2NvbmYtMi4xMC4yLgoKVHVlIE5vdiAxMiAxNjo1ODo0MSAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogbWFjaC9tYWNoLmggKF9fbWFjaF9tc2dfZGVzdHJveSwgbWFjaF9tc2dfZGVzdHJveSwgX19tYWNoX21zZyk6CiAJUHJvdmlkZSBwcm90b3R5cGVzLgoKCSogbWFjaC9tc2ctZGVzdHJveS5jIChtYWNoX21zZ19kZXN0cm95X3BvcnQsCgltYWNoX21zZ19kZXN0cm95X21lbW9yeSk6IFVzZSBwcm90b3R5cGUJc3ludGF4LgoJKiBodXJkL2h1cmRtYWxsb2MuYyAobW9yZV9tZW1vcnksIG1hbGxvY19mb3JrX3ByZXBhcmUsCgltYWxsb2NfZm9ya19wYXJlbnQsIG1hbGxvY19mb3JrX2NoaWxkKTogTGlrZXdpc2UuCgoJKiBzdGRpby9zdGRpby5oOiBSZXBhaXIgYnJva2VuIGNwcCBzeW50YXguCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9sY2hvd24uYzogTmV3IGZpbGUuICBHdXRzIGZyb20gY2hvd24uYywgZXhjZXB0Cgl3ZSBwYXNzIE9fTk9MSU5LIG9uIHRoZSBvcGVuLgoKCSogbWFudWFsL2Vycm5vLnRleGkgKEVCQURNU0csIEVJRFJNLCBFTVVMVElIT1AsIEVOT0RBVEEsIEVOT0xJTkssCiAJRU5PTVNHLCBFTk9TUiwgRU5PU1RSLCBFT1ZFUkZMT1csIEVQUk9UTywgRVRJTUUpOiBSZWRlc2lnbmF0ZSBhcwogCWFuIFhPUEVOIGVycm9yIGNvZGUsIG1vdmUgdG8gYmVmb3JlIHRoZSAiTGludXggb25seSIgc2VjdGlvbiwgYW5kCiAJZ2l2ZSBpdCBhIG5ldyBudW1iZXIgZm9yIHRoZSBIdXJkLgoKVHVlIE5vdiAxMiAwMzozNTowMSAxOTk2ICBDaHJpc3RpYW4gdm9uIFJvcXVlcyAgPHJvcXVlc0Bwb25kLnN1Yi5vcmc+CgoJKiBtYWxsb2Mvb2JzdGFjay5oOiBBZGQgbmV3IG1hY3JvIGBvYnN0YWNrX21ha2Vfcm9vbScuCgkqIG1hbGxvYy9vYnN0YWNrLmM6IEFkZCBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbiBmb3IKCWBvYnN0YWNrX21ha2Vfcm9vbScuCgpNb24gTm92IDExIDEzOjU0OjA0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCVVwZGF0ZSB0byBCSU5ELTQuOS41LVJFTC4KCSogcmVzb2x2L0Jhbm5lcjogU2V0IHRvIDQuOS41LVJFTC4KCSogcmVzb2x2L2luZXRfbmV0X3B0b24uYzogV2FzIGRvaW5nIGJhZCB0aGluZ3MgdG8gc3VibmV0cyBhbmQgYidjYXN0cy4KCSogcmVzb2x2L3Jlc19kZWJ1Zy5jIChfX2ZwX25xdWVyeSk6IENvdWxkIHJlYWQgcGFzdCBlbmQgb2YgYnVmZmVyLgoJKGZpeCBmcm9tIEJJTkQgOC4xKQoKCSogY29uZmlnLm1ha2UuaW46IEFkZCBkZWZpbml0aW9uIGZvciB0b3BfYWJzZGlyLgoJKiBNYWtlcnVsZXMgKG1ha2UtbGluayk6IEZpeCBwYXRoIHRvIHJlbGxucy1zaCBzY3JpcHQuCgpTYXQgTm92ICA5IDAyOjE1OjI0IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogcG9zaXgvdW5pc3RkLmg6IEZpeCBjb21tZW50LgoKCSogbWFudWFsL2FyaXRoLnRleGk6IEZpeCBtaXNzcGVsbGluZ3MuICBVc2UgYHplcm8nLCBub3QgYG51bGwnLAoJd2hlbiB0YWxraW5nIGFib3V0IG51bWJlcnMuCgkqIG1hbnVhbC91c2Vycy50ZXhpOiBMaWtld2lzZS4KCSogbWFudWFsL2NyZWF0dXJlLnRleGk6IExpa2V3aXNlLiAgVXNlIEBkZWZ2YXJ4IGZvciBhIHNlY29uZGFyeQoJZGVzY3JpcHRpb24gaGVhZGVyLgoKU2F0IE5vdiAgOSAxOToyNToxMSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvcG9zaXgvTWFrZWZpbGUgKCQoY29tbW9uLW9ianBmeCltay1zdGRpb2xpbSk6IERlcGVuZCBvbgoJdGhlIHJlYWwgcG9zaXgxX2xpbS5oIGZpbGUgc28gdGhhdCBpdCB3b3JrcyBpbiBhbGwgc3ViZGlycywgbm90Cglvbmx5IGluIHBvc2l4LgoKU2F0IE5vdiAgOSAwMjowODozNCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2VmaWxlICgkKGluY2x1ZGVkaXIpL2dudS9saWItbmFtZXMuaCk6IFF1b3RlIGFyZ3VtZW50cyBvZiB0ci4KClNhdCBOb3YgIDkgMDI6MDY6MTcgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvTWFrZWZpbGUgKCQoY29tbW9uLW9ianBmeClzLXByb3RvLmQpOiBEb24ndCBkZXBlbmQKCW9uICQoYmVmb3JlLWNvbXBpbGUpIHdoaWNoIGhhc24ndCBiZWVuIHByb3Blcmx5IHNldHVwIHlldCBhdCB0aGlzCglwb2ludC4KClNhdCBOb3YgIDkgMDI6MDI6NDggMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL2dlbmVyaWMvc2lnc2V0Lmg6IERvbid0IHVzZSBpbXBsaWNpdCBpbnQgd2hpY2ggd2lsbAoJcHJvYmFibHkgcmVxdWlyZSBhIGRpYWdub3N0aWMgaW4gdGhlIG5leHQgcmV2aXNpb24gb2YgdGhlIEMKCXN0YW5kYXJkLgoJKiBzeXNkZXBzL3N0dWIvbG9ja2ZpbGUuYzogTGlrZXdpc2UuCgpTYXQgTm92ICA5IDAxOjU3OjE3IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNjYWxsLlM6IENvcnJlY3QgbGFzdCBjaGFuZ2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzZGVwLmg6IExpa2V3aXNlLgoKTW9uIE5vdiAxMSAwMjo1MzoxNCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHRpbWUvc3RyZnRpbWUuYzogVXBkYXRlIGNvcHlyaWdodC4gIFNtYWxsIGNvc21ldGljIGNoYW5nZXMuCgpTdW4gTm92IDEwIDIzOjI4OjE2IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW5ldC9nZXRwcnRuYW1lX3IuYzogUmVmb3JtYXQgY29weXJpZ2h0LgoKCSogbnNzL01ha2VmaWxlIChkYXRhYmFzZXMpOiBBZGQga2V5LgoJKGxpYm5zc19maWxlcy1yb3V0aW5lcyk6IEV4Y2x1ZGUga2V5IGRhdGFiYXNlLgoJKGxpYm5zc19kYi1yb3V0aW5lcyk6IExpa2V3aXNlLgoJKiBuc3Mva2V5LWxvb2t1cC5jOiBOZXcgZmlsZS4KCgkqIG5zcy9nZXRYWGVudF9yLmMgKGxhc3RfbmlwKTogUmVtZW1iZXIgbGFzdCBzZXJ2aWNlIHVzZWQgc2luY2UKCWxhc3Qgc2V0WFhlbnQgY2FsbC4KCShTRVRGVU5DKTogRG9uJ3QgZm9yY2UgdG8gd29yayB0aHJvdWdoIHdob2xlIGxpc3Qgb2Ygc2VydmljZXMgaW4KCWNhbGwgdG8gX19uc3NfbmV4dC4KCVVwZGF0ZSBsYXN0X25pcCBpZiBuZWNlc3NhcnkuCgkoRU5ERlVOQyk6IE9ubHkgcHJvY2VzcyBlbmRYWGVudCBmdW5jdGlvbiB1cCB0byBjdXJyZW50bHkgdXNlZAoJbGFzdCBzZXJ2aWNlLgoJKEdFVEZVTkMpOiBVcGRhdGUgbGFzdF9uaXAgaWYgbmVjZXNzYXJ5LgoKCSogbnNzL25zc19maWxlcy9maWxlcy1uZXRncnAuYyAoX25zc19uZXRncm91cF9wYXJzZWxpbmUpOiBEb24ndAoJbWFrZSBzdGF0aWMuCgoJKiBycGMvYXV0aF9kZXMuaDogTmV3IGZpbGUuCgkqIHN1bnJwYy9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBhdXRoX2Rlcy5oLgoJKHJvdXRpbmVzKTogQWRkIHB1YmxpY2tleS4KCSogc3VucnBjL3B1YmxpY2tleS5jOiBOZXcgZmlsZS4gIEludGVyZmFjZSB0byBwdWJsaWMga2V5IGhhbmRsaW5nLgoJKiBzdW5ycGMvcnBjL2F1dGhfZGVzLmg6IE5ldyBmaWxlLgoJKiBzdW5ycGMvcnBjL25ldGRiLmg6IFJlYWxseSBpbmNsdWRlIDxycGMvYXV0aF9kZXMuaD4uCgpTdW4gTm92IDEwIDAyOjM3OjE1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW5ldC9nZXRoc3RlbnRfci5jOiBVcGRhdGUgY29weXJpZ2h0LgoJKiBuc3MvZ2V0WFhieVlZX3IuYzogTGlrZXdpc2UuCgkqIG5zcy9uc3N3aXRjaC5jOiBMaWtld2lzZS4KCSogbnNzL2dldFhYZW50X3IuYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtWFhYLmM6IExpa2V3aXNlLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLW5ldGdyb3VwLmM6IExpa2V3aXNlLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXBhcnNlLmM6IExpa2V3aXNlLgoKCSogbnNzL2dldFhYZW50X3IuYzogQ2hhbmdlIGltcGxlbWVudGF0aW9uLiAgSXQncyBub3QgbmVjZXNzYXJ5IHRvCgljYWxsIGFsbCBzZXRYWGVudCBmdW5jdGlvbnMuICBKdXN0IGZpbmQgZmlyc3QgYXZhaWxhYmxlIGFuZAoJd2hlbiBuZWNlc3NhcnkgbGV0IGdldFhYZW50X3IgY2FsbCB0aGUgb3RoZXJzLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1YWFguYzogTWFrZSByZWFsbHkgcmVlbnRyYW50LiAgTm93IGNhbGxzCglvZiBnZXRYWGVudCBhbmQgZ2V0WFhieVlZIGNhbiBiZSBtaXhlZC4gIFRoZSBjdXJzb3IgZm9yIHRyYXZlcnNpbmcKCXRoZSBkYXRhYmFzZSB3aXRoIGdldFhYZW50IHdpbGwgYmUgcmVtZW1iZXJlZC4KCgkqIHN0ZGxpYi90ZXN0LWNhbm9uLmMgKGN3ZCk6IENoYW5nZSBzaXplIHRvIFBBVEhfTUFYLgoKU2F0IE5vdiAgOSAxNTozNDo0OCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L0Rpc3Q6IEFkZCBzeXMvbXRpby5oLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvbXRpby5oOiBOZXcgZmlsZS4KCgkqIHNpZ25hbC9zaWduYWwuaCBbX19VU0VfQlNEXTogQWRkIHByb3RvdHlwZSBmb3Igc2lnZ2V0bWFzay4KCkZyaSBOb3YgIDggMTM6Mjk6MzAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBjdHlwZS9jdHlwZS5oIChfX2lzYXNjaWkpOiBEb24ndCB0ZXN0IGZvciBzZXZlbnRoIGJpdCBub3QgdG8gYmUKCXNldC4gIEluc3RlYWQgZm9yIG5vbmUgYmVzaWRlIHRoZSBmaXJzdCBzZXZlbiBiaXRzIHRvIGJlIHNldC4KCVgvT3BlbiBhbGxvd3MgdGhlIGFyZ3VtZW50IHRvIGJlIGFuIGBpbnQnIHZhbHVlLgoJUmVwb3J0ZWQgYnkgQWxhaW4gV2lsbGlhbXMgPGFkZHdAcGhjb21wLmNvLnVrPi4KCSh0b2FzY2lpLCBpc2FzY2lpKTogRGVmaW5lIG1hY3JvIGFsc28gd2hlbiBfX1VTRV9YT1BFTi4KCgkqIHN5c2RlcHMvcG9zaXgvZnBhdGhjb25mLmM6IFVzZSBmc3RhdGZzIHRvIGNvbXB1dGUgTkFNRV9NQVgsIG5vdAoJUEFUSF9NQVguCgpUaHUgTm92ICA3IDAzOjA0OjI5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbnNzL2dldFhYWGVudF9yLmMgKFNFVEZVTkNfTkFNRSk6IFJlc2V0IGBuaXAnIGFmdGVyIGxvb3AgdG8KCU5VTEwgc28gdGhhdCBHRVRGVU5DIHdpbGwgc2VlIGZpcnN0IGVudHJ5LgoJKEVOREZVTkNfTkFNRSk6IExpa2V3aXNlLgoKCVJld3JpdGUgTmV0Z3JvdXBzIGltcGxlbWVudGF0aW9uIHRvIGF2b2lkIGdsb2JhbCBkYXRhLgoJKiBpbmV0L25ldGdyb3VwLmg6IEFkZCBkZWZpbml0aW9uIG9mIG5hbWVfbGlzdCBhbmQgc3RydWN0CglfX25ldGdyZW50LgoJQWRkIHByb3RvdHlwZXMgZm9yIGludGVybmFsIG5ldGdyb3VwIGZ1bmN0aW9ucy4KCSogbnNzL25zc19maWxlcy9maWxlcy1uZXRncm91cC5jIChfbnNzX2ZpbGVzX3NldG5ldGdyZW50KTogVGFrZQoJZXh0cmEgYXJndW1lbnQgYW5kIHVzZSB0aGUgaW5jbHVkZWQgZGF0YSBpbnN0ZWFkIG9mIGdsb2JhbCB2YXJzLgoJKF9uc3NfZmlsZXNfZW5kbmV0Z3JlbnQpOiBMaWtld2lzZS4KCShfbnNzX25ldGdyb3VwX3BhcnNlbGluZSk6IENoYW5nZSB0byBiZSBzdGF0aWMgYW5kIHVzZSBkYXRhCglpbmNsdWRlZCBpbiB0aGUgUkVTVUxUIHN0cnVjdHVyZS4KCSogaW5ldC9nZXRuZXRncmVudF9yLmMgKHN0YXJ0cCk6IE1vdmUgaW50byBzZXR1cCBmdW5jdGlvbi4KCShrbm93bl9ncm91cHMsIG5lZWRlZF9ncm91cHMpOiBuZXcgcGFydCBvZiB0aGUgX19uZXRncmVudCBzcnVjdC4KCShmcmVlbWVtb3J5KTogVGFrZSBleHRyYSBhcmd1bWVudCBhbmQgdXNlIGluY2x1ZGVkIGRhdGEuCgkoX19pbnRlcm5hbF9lbmRuZXRncmVudCk6IExpa2V3aXNlLgoJKGludGVybmFsX3NldG5ldGdyZW50KTogUmVuYW1lZCB0byBfX2ludGVybmFsX3NldG5ldGdyZW50X3JldXNlCglhbmQgdGFrZSBleHRyYSBhcmd1bWVudC4KCShfX2ludGVybmFsX3NldG5ldGdyZW50KTogTmV3IGZ1bmN0aW9uLiAgQ2FsbAoJX19pbnRlcm5hbF9zZXRuZXRncmVudF9yZXVzZSBhZnRlciBjYWxsaW5nIGZyZWVfbWVtb3J5LgoJKHNldG5ldGdyZW50KTogT25seSBjYWxsIF9faW50ZXJuYWxfc2V0bmV0Z3JlbnQuCgkoX19nZXRuZXRncmVudF9yKTogU3BsaXQgaW50byB0d28gZnVuY3Rpb25zLiAgX19nZXRuZXRncmVudF9yCgljYWxscyBfX2ludGVybmFsX2dldG5ldGdyZW50IGFmdGVyIGxvY2tpbmcuCgkoaW5uZXRncik6IFVzZSBkeW5hbWljIGRhdGEgb25seS4gIEkuZS4sIGlubmV0Z3Igbm93IGlzIGZ1bGx5CglyZWVudHJhbnQuCgpUaHUgTm92ICA3IDAwOjE1OjE0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9zdHViL3NldGVudi5jOiBDb3JyZWN0IHR5cG86IHVuc2VlbnYgLT4gdW5zZXRlbnYuCglSZXBvcnRlZCBieSBKb3NodWEgQ293YW4gPGpjb3dhbkBqY293YW4ucmVzbGlmZS5va3N0YXRlLmVkdT4uCgpXZWQgTm92ICA2IDEzOjEzOjM3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbWFudWFsL2NyZWF0dXJlLnRleGk6IERvY3VtZW50IHRoYXQgX0dOVV9TT1VSQ0UgaXMgbm8gbG9uZ2VyIHRoZQoJZGVmYXVsdCB3aGVuIG5vICpfU09VUkNFIG1hY3JvIGlzIGdpdmVuLgoJUmVwb3J0ZWQgYnkgS2Fyc3RlbiBXZWlzcyA8a2Fyc3RlbkBhZGR4LmF1LnMuc2h1dHRsZS5kZT4uCgkqIE5PVEVTOiByZW1hZGUgZnJvbSBtYW51YWwvY3JlYXR1cmUudGV4aS4KCSogbWFudWFsL2xpYmMudGV4aW5mbzogQWRkIGJhY2sgbGluZSBhYm91dCBHUEwgdHJhbnNsYXRpb24gd2hpY2gKCXNvbWVob3cgZ290IGxvc3QuCgoJKiBNYWtlLWRpc3QgKGRpc3QudGFyKTogRGVwZW5kIG9uIFJFQURNRSBiZWluZyB1cGRhdGVkLgoKCSogcmVsbG5zLXNoOiBDb3JyZWN0IHRoaW5rbyBpbiByZW1vdmluZyBsZWFkaW5nIC8uCglSZXBvcnRlZCBieSBBbmRyZWFzIEphZWdlciA8YWpAYXJ0aHVyLnBmYWx6LmRlPi4KCgkqIHB3ZC9mZ2V0cHdlbnRfci5jOiBSZWNvZ25pemUgbGluZXMgY29udGFpbmluZyBvbmx5IG5hbWVzIHN0YXJ0aW5nCgl3aXRoIGArJyBvciBgLScgaW4gcGFyc2VyLgoJKiBncnAvZmdldGdyZW50X3IuYzogTGlrZXdpc2UuCgkqIHNoYWRvdy9zZ2V0c3BlbnRfci5jOiBMaWtld2lzZS4KCSogbnNzL25zc19maWxlcy9maWxlcy1zcHdkLmM6IERvbid0IGFjY2VwdCBlbnRyaWVzIHN0YXJ0aW5nIHdpdGgKCWArJyBvciBgLScuCgpXZWQgTm92ICA2IDA0OjMwOjI2IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbHMubGlzdDogQWRkIHdlYWsgYWxpYXMgbGxzZWVrIGZvcgoJX2xsc2VlayBzeXNjYWxsLiAgUmVwb3J0ZWQgYnkgQW5keSBTZXdlbGwgPHB1Y2tAcG9va2hpbGwuZGVtb24uY28udWs+LgoKCSogc3RyaW5nL2FyZ3ouaDogRG9uJ3QgcHJvdGVjdCBieSBfX1VTRV9HTlUuCgpUdWUgTm92ICA1IDIzOjM4OjI4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTG90cyBvZiBmaWxlczogVXBkYXRlIGFuZCByZWZvcm1hdCBjb3B5cmlnaHQuCgoJKiBNYWtlZmlsZSAoaGVhZGVycyk6IEFkZCB4b3Blbl9saW0uaC4KCgkqIGNhdGdldHMvbmxfdHlwZXMuaDogTW92ZSBfX0JFR0lOX0RFQ0xTIGJlZm9yZSBkZWZpbml0aW9uIG9mIG5sX2NhdGQuCgoJKiBncnAvZ3JwLmg6IERlZmluZSBzZXRncmVudCwgZ2V0Z3JlbnQsIGVuZGdyZW50LCBhbmQgZ2V0Z3JlbnRfcgoJaWYgX19VU0VfWE9QRU5fRVhURU5ERUQgaXMgZGVmaW5lZC4KCSogcHdkL3B3ZC5oOiBEZWZpbmUgc2V0cHdlbnQsIGdldHB3ZW50LCBlbmRwd2VudCwgYW5kIGdldHB3ZW50X3IKCWlmIF9fVVNFX1hPUEVOX0VYVEVOREVEIGlzIGRlZmluZWQuCgoJKiBpby9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgbGNob3duLgoJKiBzeXNkZXBzL3N0dWIvbGNob3duLmM6IE5ldyBmaWxlLgoKCSogaW8vc3lzL3BvbGwuaDogQWRkIGRlZmluaXRpb24gb2YgUE9MTFdSTk9STS4KCgkqIGlvL3N5cy9zdGF0Lmg6IERlY2xhcmUgbHN0YXQsIGZjaG1vZCwgbWtub2Qgd2hlbgoJX19VU0VfWE9QRU5fRVhURU5ERUQgaXMgZGVmaW5lZC4KCgkqIGxpYmlvL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBvYnByaW50Zi4KCSogbGliaW8vb2JwcmludGYuYzogTmV3IGZpbGUuCgkqIGxpYmlvL2lvbGliaW8uaDogQWRkIHByb3RvdHlwZXMgZm9yIF9JT19vYnN0YWNrX3ZwcmludGYgYW5kCglfSU9fb2JzdGFja19wcmludGYuCgkqIGxpYmlvL2xpYmlvLmg6IEZpeCB0eXBvLgoJKiBsaWJpby9zdGRpby5oOiBEZWNsYXJlIHRlbXBuYW0gaWYgX19VU0VfWE9QRU5fRVhURU5ERUQgaXMgZGVmaW5lZC4KCUFkZCBwcm90b3R5cGVzIGZvciBvYnN0YWNrX3ZwcmludGYgYW5kIG9ic3RhY2tfcHJpbnRmLgoKCSogbWFudWFsL2NyZWF0dXJlLnRleGk6IERlc2NyaWJlIF9YT1BFTl9TT1VSQ0UgbWFjcm8uCgkqIG1hbnVhbC9pbnRyby50ZXhpOiBBZGQgcmVmZXJlbmNlIHRvIE5TUyBjaGFwdGVyLgoJKiBtYW51YWwvbGliYy50ZXhpbmZvOiBVcGRhdGUgVVBEQVRFRC4KCUNvbW1lbnQgb3V0IGBAcHJpbnRpbmRleCBjcCcuICBJdCB3b3JrcyBhZ2Fpbi4KCSogbWFudWFsL21lbW9yeS50ZXhpOiBBZGQgZGVzY3JpcHRpb24gZm9yIG9ic3RhY2tfcHRyX2dyb3csCglvYnN0YWNrX2ludF9ncm93LCBvYnN0YWNrX3B0cl9ncm93X2Zhc3QsIGFuZCBvYnN0YWNrX2ludF9ncm93X2Zhc3QuCgkqIG1hbnVhbC9uc3MudGV4aTogQWRkIGEgZmV3IEBjaW5kZXggZW50cmllcyBhbmQgY2hhbmdlIE5TU19TVEFUVVNfKgoJaW5kZXggZW50cmllcyB0byBAdmluZGV4LgoJKiBtYW51YWwvdXNlcnMudGV4aTogQ29ycmVjdCBAY2luZGV4IGVudHJ5IGZvciBOZXRncm91cC4KCgkqIG1hdGgvbWF0aGNhbGxzLmg6IFVzZSBfX1VTRV9YT1BFTiBhbmQgX19VU0VfWE9QRU5fRVhURU5ERUQgdG8KCW1ha2UgZGVjbGFyYXRpb25zIHZpc2libGUgZm9yIFgvT3BlbiBzb3VyY2VzLgoKCSogbWlzYy9zZWFyY2guaDogRGVjbGFyZSBpbnNxdWUvcmVtcXVlIG9ubHkgaXMgX19VU0VfU1ZJRCBvcgoJX19VU0VfWE9QRU5fRVhURU5ERUQgaXMgZGVmaW5lZC4KCgkqIG1pc2Mvc3lzL3Vpby5oIChyZWFkdiwgd3JpdGV2KTogQ2hhbmdlIHJldHVybiB2YWx1ZSBmcm9tIGludCB0bwoJc3NpemVfdC4KCgkqIHBvc2l4L01ha2VmaWxlIChoZWFkZXJzKTogQWRkIHJlX2NvbXAuaC4KCSogcG9zaXgvcmVfY29tcC5oOiBOZXcgZmlsZS4gIFhQRyBpbnRlcmZhY2UgdG8gcmVnZXggZnVuY3Rpb25zLgoKCSogcG9zaXgvZ2V0Y29uZi5jOiBBZGQgYWxsIG5hbWVzIGZyb20gWFBHNC4yLgoJKiBwb3NpeC9wb3NpeDFfbGltLmg6IEluY3JlYXNlIG1pbmltdW0gdmFsdWVzIGZvciBfUE9TSVhfQ0hJTERfTUFYCglhbmQgX1BPU0lYX09QRU5fTUFYIHRvIG1pbmltdW1zIGZyb20gWFBHNC4yLgoJKiBzeXNkZXBzL2dlbmVyaWMvY29uZm5hbWUuaDogQWRkIGFsbCBfU0NfKiBuYW1lcyBmcm9tIFhQRzQuMi4KCSogc3lzZGVwcy9wb3NpeC9zeXNjb25mLmM6IEhhbmRsZSBuZXcgX1NDXyogdmFsdWVzLgoJKiBzeXNkZXBzL3N0dWIvc3lzY29uZi5jOiBMaWtld2lzZS4KCgkqIHBvc2l4L3VuaXN0ZC5oOiBBZGQgZGVjbGFyYXRpb24gb2YgdWFsYXJtIGFuZCBsY2hvd24uICBEZWNsYXJlCgl1c2xlZXAsIGZjaG93biwgZmNoZGlyLCBuaWNlLCBnZXRwZ2lkLCBzZXRzaWQsIGdldHNpZCwgc2V0cmV1aWQsCglzZXRyZWdpZCwgdmZvcmssIHR0eXNsb3QsIHN5bWxpbmssIHJlYWRsaW5rLCBnZXRob3N0aWQsIHRydW5jYXRlLAoJZnRydW5jYXRlLCBnZXRkdGFibGVzaXplLCBicmssIHNicmssIGxvY2tmIHdoZW4KCV9fVVNFX1hPUEVOX0VYVEVOREVEIGlzIGRlZmluZWQuCgoJKiBwb3NpeC9zeXMvd2FpdC5oOiBEZWNsYXJlIHdhaXQzIGlmIF9fVVNFX1hPUEVOX0VYVEVOREVEIGlzIGRlZmluZWQuCgoJKiBzaGFkb3cvc2hhZG93Lmg6IERlZmluZSBTSEFET1cgdXNpbmcgX1BBVEhfU0hBRE9XLgoJKiBzeXNkZXBzL2dlbmVyaWMvcGF0aHMuaDogRGVmaW5lIF9QQVRIX1NIQURPVy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvcGF0aHMuaDogTGlrZXdpc2UuCgoJKiBzaWduYWwvc2lnbmFsLmg6IERlY2xhcmUga2lsbHBnLCBzaWdzdGFjayBhbmQgc2lnYWx0c3RhY2sgd2hlbgoJX19VU0VfWE9QRU5fRVhURU5ERUQgaXMgZGVmaW5lZC4KCgkqIHN0ZGlvL3N0ZGlvLmg6IERlY2xhcmUgdGVtcG5hbSB3aGVuIF9fVVNFX1hPUEVOIGlzIGRlZmluZWQuCgoJKiBzdGRsaWIvc3RkbGliLmg6IE1ha2UgcmFuZDQ4IGZ1bmN0aW9ucyBhdmFpbGFibGUgd2hlbiBfX1VTRV9YT1BFTgoJaXMgZGVmaW5lZC4KCUxpa2V3aXNlIGZvciB2YWxsb2MsIHB1dGVudiwgcmVhbHBhdGgsIFtlZmddY3Z0KiwgYW5kIGdldHN1Ym9wdAoJZnVuY3Rpb25zLgoKCSogc3RyaW5nL3N0cmluZy5oOiBNYWtlIG1lbWNjcHksIHN0cmR1cCwgYmNtcCwgYmNvcHksIGJ6ZXJvLCBpbmRleCwKCWFuZCByaW5kZXggYXZhaWxhYmxlIHdoZW4gX19VU0VfWE9QRU5fRVhURU5ERUQgaXMgZGVmaW5lZC4KCgkqIHN5c2RlcHMvbWFjaC9nZXRwYWdlc2l6ZS5jOiBEZS1BTlNJLWZ5LiAgQ2hhbmdlIHJldHVybiB0eXBlIHRvIGludC4KCSogc3lzZGVwcy9wb3NpeC9nZXRwYWdlc2l6ZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldHBhZ2VzaXplLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvZ2V0cGFnZXNpemUuYzogTGlrZXdpc2UuCgoJKiB0aW1lL2FmcmljYTogVXBkYXRlIGZyb20gdHpkYXRhMTk5NmwuCgkqIHRpbWUvYXNpYTogTGlrZXdpc2UuCgkqIHRpbWUvYXVzdHJhbGlhOiBMaWtld2lzZS4KCSogdGltZS9ldXJvcGU6IExpa2V3aXNlLgoJKiB0aW1lL25vcnRoYW1lcmljYTogTGlrZXdpc2UuCgkqIHRpbWUvcGFjaWZpY25ldzogTGlrZXdpc2UuCgkqIHRpbWUvc291dGhhbWVyaWNhOiBMaWtld2lzZS4KCSogdGltZS90emZpbGUuaDogVXBkYXRlIGZyb20gdHpjb2RlMTk5Nm0uCgoJKiB0aW1lL3RpbWUuaDogRGVjbGFyZSBzdHJwdGltZSBpZiBfX1VTRV9YT1BFTi4KCURlY2xhcmUgZGF5bGlnaHQgYW5kIHRpbWV6b25lIGFsc28gaWYgX19VU0VfWE9QRU4uCgoJKiB0aW1lL3N5cy90aW1lLmg6IFJlbW92ZSBkZWNsYXJhdGlvbiBvZiB1YWxhcm0uCgoJKiB3Y3R5cGUvd2N0eXBlLmg6IEp1c3QgcmVmZXJlbmNlIElTTyBDIHN0YW5kYXJkLgoKVHVlIE5vdiAgNSAwMToyNjozMiAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIGNyeXB0L01ha2VmaWxlOiBBZGQgY3J5cHQgcm91dGluZXMgdG8gbGliYyBhcyB3ZWxsIGlmZgoJJChjcnlwdC1pbi1saWJjKSBpcyBzZXQuICBEbyB0aGlzIGZvciB0ZW1wb3JhcnkgYmluYXJ5IGNvbXBhdGliaWxpdHkKCW9uIGV4aXN0aW5nIExpbnV4L0FscGhhIGluc3RhbGxhdGlvbnMuCgoJKiBzdGRsaWIvZGl2LmMsIHN5c2RlcHMvZ2VuZXJpYy9kaXYuYzogTW92ZSBmaWxlIHRvIC4uLi9nZW5lcmljLy4KCSogc3RkbGliL2xkaXYuYywgc3lzZGVwcy9nZW5lcmljL2xkaXYuYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9sbGRpdi5jLCBzeXNkZXBzL2dlbmVyaWMvbGxkaXYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvTWFrZWZpbGUgKGRpdnJlbSk6IEFkZCBkaXZsdSwgZHZpcXUsIHJlbWx1LCBhbmQKCXJlbXF1LgoJKiBzeXNkZXBzL2FscGhhL2Rpdi5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9hbHBoYS9sZGl2LlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2FscGhhL2xsZGl2LlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2FscGhhL2RpdnJlbS5oOiBNZXJnZSBzaWduZWQgYW5kIHVuc2lnbmVkIGRpdmlzaW9uLgoJVGFrZSBwb2ludGVycyBmcm9tIExpbnVzIGFuZCB0aWdodGVuIHRoZSBpbm5lciBsb29wcyBhIGJpdC4KCSogc3lzZGVwcy9hbHBoYS9kaXZsLlM6IENoYW5nZSBkZWZpbmVzIGZvciBtZXJnZWQgcm91dGluZXMuCgkqIHN5c2RlcHMvYWxwaGEvZGl2cS5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9yZW1sLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL3JlbXEuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvZGl2bHUuUzogUmVtb3ZlIGZpbGUuCgkqIHN5c2RlcHMvYWxwaGEvZGl2cXUuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvcmVtbHUuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvcmVtcXUuUzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2FscGhhL2JzZC1fc2V0am1wLlM6IElmIFBST0YsIGNhbGwgX21jb3VudC4KCSogc3lzZGVwcy9hbHBoYS9ic2Qtc2V0am1wLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL2J6ZXJvLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL2Zmcy5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9odG9ubC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9odG9ucy5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9tZW1jaHIuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvbWVtc2V0LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL3NfY29weXNpZ24uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvc19mYWJzLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL3NldGptcC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9zdHBjcHkuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvc3RwbmNweS5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9zdHJjYXQuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvc3RyY2hyLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL3N0cmNweS5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9zdHJsZW4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvc3RybmNhdC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9hbHBoYS9zdHJuY3B5LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2FscGhhL3N0cnJjaHIuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvdWRpdl9xcm5uZC5TOiBMaWtld2lzZS4gIEZpeCBwcml2YXRlIGxhYmVscy4KCUNvbnZlcnQgdHdvIHNtYWxsIGp1bXBzIHRvIHVzZSBjb25kaXRpb25hbCBtb3Zlcy4KCSogc3lzZGVwcy91bml4L2FscGhhL3N5c2RlcC5oOiBDb21wcmVzcyBhbGwgX19TVERDX18gbmFzdGluZXNzLgoJKFBTRVVETyk6IElmIFBST0YsIGNhbGwgX21jb3VudC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvYnJrLlM6IElmIFBST0YsIGNhbGwgX21jb3VudC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvY2xvbmUuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2llZWVfZ2V0X2ZwX2NvbnRyb2wuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2llZWVfc2V0X2ZwX2NvbnRyb2wuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2xsc2Vlay5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc2lnc3VzcGVuZC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc3lzY2FsbC5TOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvYWxwaGEvbWVtY3B5LlM6IE5ldyBmaWxlLiAgT2RkIGxheW91dCBiZWNhdXNlIGl0IHNob3VsZAoJZXZlbnR1YWxseSBjb250YWluIG1lbW1vdmUgYXMgd2VsbC4KCSogc3lzZGVwcy9hbHBoYS9zdHJjbXAuUzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvYWxwaGEvc3RybmNtcC5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9hbHBoYS93X3NxcnQuUzogTmV3IGZpbGUuCgpUdWUgTm92ICA1IDE4OjA2OjA2IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvdHR5bmFtZV9yLmM6IFVzZSBgc2l6ZV90JyBmb3IgbGVuIHZhcmlhYmxlLgoKVHVlIE5vdiAgNSAxMjowOToyOSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zeXNkZXAuaDogRGVmaW5lIEVORCBvbmx5IGlmIG5vdCB5ZXQgZGVmaW5lZC4KCSogc3lzZGVwcy91bml4L3N5c2RlcC5oOiBEZWZpbmUgUFNFVURPX0VORCBvbmx5IGlmIG5vdCB5ZXQgZGVmaW5lZC4KCVJlcG9ydGVkIGJ5IFRob21hcyBCdXNobmVsbCwgbi9CU0cuCgpNb24gTm92ICA0IDIyOjQ2OjUzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbWFudWFsL3VzZXJzLnRleGkgKE5ldGdyb3VwIERhdGEpOiBSZW1vdmUgeyB9IGFyb3VuZCBAY2luZGV4LgoKTW9uIE5vdiAgNCAxOTowNzowNSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG1hbGxvYy9jYWxsb2MuYzogQ2hlY2sgZm9yIG92ZXJmbG93IGJlZm9yZSB0cnlpbmcgdG8gYWxsb2NhdGUKCW1lbW9yeS4gIFByb3Bvc2VkIGJ5IE5laWwgTWF0dGhld3MgPG5tQGFkdi5zYmMuc29ueS5jby5qcD4uCgpGcmkgTm92ICAxIDE4OjE4OjMyIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogbWFudWFsL2xsaW8udGV4aSAoT3BlcmF0aW5nIE1vZGVzKTogQWRkIG1pc3NpbmcgYXJndW1lbnRzIHRvCglAZGVmdHlwZXZyIGluIE9fTk9OQkxPQ0sgZGVzY3JpcHRpb24uCgoJKiBtYW51YWwvdGltZS50ZXhpIChUaW1lIFpvbmUgRnVuY3Rpb25zKTogRW5jbG9zZSB0eXBlIG5hbWUgaW4KCWJyYWNlcyBpbiBkZXNjcmlwdGlvbiBvZiB0em5hbWUuICBGSVhNRTogdGhpcyBkb2VzIG5vdCB5ZXQgd29yawoJY29ycmVjdGx5IGluIGluZm8uCgpTdW4gTm92ICAzIDE3OjI5OjA2IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZmVhdHVyZXMuaDogQWRkIFgvT3BlbiBtYWNyb3MuCgkqIHBvc2l4L3VuaXN0ZC5oOiBEZWZpbmUgWC9PcGVuIG1hY3Jvcy4KCSogc3lzZGVwcy9nZW5lcmljL2NvbmZuYW1lLmg6IEFkZCBfU0NfWE9QRU5fWENVX1ZFUlNJT04sCglfU0NfWE9QRU5fVU5JWCwgX1NDX1hPUEVOX0NSWVBULCBfU0NfWE9QRU5fRU5IX0kxOE4sCglfU0NfWE9QRU5fU0hNLCBfU0NfMl9DSEFSX1RFUk0sIF9TQ18yX0NfVkVSU0lPTiwgYW5kIF9TQ18yX1VQRS4KCSogc3lzZGVwcy9wb3NpeC9zeXNjb25mLmM6IEhhbmRsZSBuZXcgY29uc3RhbnRzLgoJKiBzeXNkZXBzL3N0dWIvc3lzY29uZi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvcG9zaXhfb3B0Lmg6IEFkZCBkZWZpbml0aW9uIG9mIF9YT1BFTl9TSE0uCgoJKiBjYXRnZXRzL2NhdGdldHMuYyAoY2F0b3Blbik6IFNldCBlcnJubyB0byBFTk9NRU0gd2hlbgoJd2UgcnVuIG91dCBvZiBtZW1vcnkuCgkoY2F0Z2V0cyk6IFNldCBlcnJubyB0byBFQkFERiB3aGVuIGNhdGFsb2cgaGFuZGxlIGlzIGludmFsaWQuCglTZXQgZXJybm8gdG8gRU5PTVNHIHdoZW4gdHJhbnNsYXRpb24gaXMgbm90IGF2YWlsYWJsZS4KCShjYXRjbG9zZSk6IFNldCBlcnJubyB0byBFQkFERiB3aGVuIGNhdGFsb2cgaGFuZGxlIGlzIGludmFsaWQuCgoJKiBjdHlwZS9jdHlwZS5oOiBEZWNsYXJlIGlzYXNjaWkgYW5kIHRvYXNjaWkgd2hlbiBfX1VTRV9YT1BFTi4KCUxpa2V3aXNlIGZvciBfdG91cHBlciBhbmQgX3RvbG93ZXIuCgoJKiBtYW51YWwvYXJpdGgudGV4aTogRG9jdW1lbnQgc3RydG9xLCBzdHJ0b2xsLCBzdHJ0b3VxLCBzdHJ0b3VsbCwKCXN0cnRvZiwgYW5kIHN0cnRvbGQuCgkqIG1hbnVhbC9tYXRoLnRleGk6IERvY3VtZW50IEhVR0VfVkFMZiBhbmQgSFVHRV9WQUxsLgoJKiBtYW51YWwvc3RkaW8uaDogRG9jdW1lbnQgJyBmbGFnIGZvciBudW1lcmljIGZvcm1hdHMgb2Ygc2NhbmYuCgkqIG1hbnVhbC91c2Vycy50ZXhpOiBEb2N1bWVudCB0aGF0IGN1c2VyaWQgc2hvdWxkbid0IGJlIHVzZWQuCgoJKiBtaXNjL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBkaXJuYW1lLgoJKGhlYWRlcnMpOiBBZGQgbGliZ2VuLmguCgkodGVzdHMpOiBBZGQgdHN0LWRpcm5hbWUuCgkqIG1pc2MvZGlybmFtZS5jOiBOZXcgZmlsZS4KCSogbWlzYy9saWJnZW4uaDogTmV3IGZpbGUuCgkqIG1pc2MvdHN0LWRpcm5hbWUuYzogTmV3IGZpbGUuCgoJKiBtaXNjL3NlYXJjaC5oOiBQYXJhbWV0ZXIgb2YgaGNyZWF0ZSBtdXN0IGJlIG9mIHR5cGUgc2l6ZV90LgoJKiBtaXNjL2hzZWFyY2guYzogTGlrZXdpc2UuCgkqIG1pc2MvaHNlYXJjaF9yLmM6IExpa2V3aXNlIGZvciBoY3JlYXRlX3IuCgkqIG1pc2Mvc2VhcmNoLmg6IFBhcmFtZXRlcnMgb2YgaW5zcXVlIGFuZCByZW1xdWUgbXVzdCBiZSBgdm9pZCAqJy4KCSogbWlzYy9pbnNyZW1xdWUuYzogTGlrZXdpc2UuCgoJKiBwb3NpeC91bmlzdGQuaDogTW92ZSBkZWNsYXJhdGlvbnMgb2YgbWt0ZW1wIGFuZCBta3N0ZW1wIHRvLi4uCgkqIHN0ZGxpYi9zdGRsaWIuaDogLi4uaGVyZS4KCSogcG9zaXgvdW5pc3RkLmggW19fVVNFX1hPUEVOXTogQWRkIHByb3RvdHlwZXMgZm9yIGNyeXB0LCBzZXRrZXksCgllbmNyeXB0LCBhbmQgc3dhYi4KCgkqIHN0ZGlvLWNvbW1vbi9wcmludGYtcGFyc2UuaCAoc3RydWN0IHByaW50Zl9zcGVjKTogQWRkIHBhX3djaGFyCglhbmQgcGFfd3N0cmluZy4KCShwYXJzZV9vbmVfc3BlYyk6IFJlbW92ZSBMaW51eCBjb21wYXRpYmlsaXR5IGNvZGUuCglSZWNvZ25pemUgJUMgYW5kICVTIGZvcm1hdHMuCgkqIHN0ZGlvLWNvbW1vbi9wcmludGYuaDogQWRkIFBBX1dDSEFSIGFuZCBQQV9XU1RSSU5HLgoJKiBzdGRpby1jb21tb24vdmZwcmludGYuYzogQWRkIGltcGxlbWVudGF0aW9uIG9mICVDIGFuZCAlUyBmb3JtYXQuCgkqIHN0ZGlvLWNvbW1vbi92ZnNjYW5mLmM6IExpa2V3aXNlIGZvciBzY2FuZi4KCgkqIHN0ZGxpYi9sNjRhLmM6IFJldHVybiB2YWx1ZSBmb3IgMCBtdXN0IGJlIHRoZSBlbXB0eSBzdHJpbmcuCgkqIHN0ZGxpYi9zdGRsaWIuaDogRGVjbGFyZSByZWVudHJhbnQgZnVuY3Rpb24gZnJvbSByYW5kNDggZmFtaWx5Cglvbmx5IGlmIF9fVVNFX1JFRU5UUkFOVC4KCURlY2xhcmUgcmFuZDQ4IGZ1bmN0aW9ucyBhbHNvIGlmIF9fVVNFX1hPUEVOLgoKCSogc3RkbGliL3N0cnRvbC5jOiBSZXR1cm4gMCBhbmQgc2V0IGVycm5vIHRvIEVJTlZBTCB3aGVuIEJBU0UgaXMKCW5vdCBhIGxlZ2FsIHZhbHVlLgoJUmV0dXJuIDAgYW5kIHNldCBlcnJubyB0byBFSU5WQUwgd2hlbiBzdHJvdSogc2VlcyBuZWdhdGl2IG51bWJlci4KCSogc3RkbGliL3RzdC1zdHJ0b2wuYzogRGUtQU5TSS1meS4KCUNoYW5nZSBleHBlY3RlZCByZXN1bHRzIGZvciB0ZXN0IG9mIHVuc2lnbmVkIGZ1bmN0aW9uIGFuZCBuZWdhdGl2ZQoJaW5wdXQuCgoJKiBzdHJpbmcvc3RyYXRjbGlmZi5jOiBQcmV2ZW50IHdhcm5pbmdzLgoJKiBzdHJpbmcuaDogTW92ZSBkZWNsYXJhdGlvbiBvZiBzd2FiIHRvIDx1bmlzdGQuaD4uCgkqIHN0cmluZy9zd2FiLmM6IERlLUFOU0ktZnkuCgoJKiBzeXNkZXBzL3Bvc2l4L2N1c2VyaWQuYzogSW1wbGVtZW50IHVzaW5nIGdldHB3dWlkX3IuCgkqIHN5c2RlcHMvcG9zaXgvbWtzdGVtcC5jOiBJbmNsdWRlIDxzdGRsaWIuaD4gZm9yIHByb3RvdHlwZS4KCSogc3lzZGVwcy9wb3NpeC9ta3RlbXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9ta3N0ZW1wLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbWt0ZW1wLmM6IExpa2V3aXNlLgoKCSogc3lzdmlwYy9zeXMvaXBjLmg6IFByb3RvdHlwZXMgb2YgZnRvayBoYXZlIHRvIGJlIG9mIHR5cGVzIGBjb25zdAoJY2hhciAqJyBhbmQgYGludCcuCgkqIHN5c3ZpcGMvZnRvay5jOiBMaWtld2lzZS4gIE1ha2Ugc3VyZSBvbmx5IGxvd2VyIDggYml0cyBvZgoJUFJPSl9JRCBhcmUgdXNlZC4KClN1biBOb3YgIDMgMDM6MjE6MjggMTk5NiAgSGVpa28gU2Nocm9lZGVyICA8SGVpa28uU2Nocm9lZGVyQHBvc3Qucnd0aC1hYWNoZW4uZGU+CgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtbnVtZXJpYy5jIChudW1lcmljX291dHB1dCk6IENvbXB1dGUgaWR4WzBdCgljb3JyZWN0bHkuCgpTYXQgTm92ICAyIDE3OjQ0OjMyIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9wb3NpeC9jdXNlcmlkLmM6IFVzZSByZWVudHJhbnQgZnVuY3Rpb25zLgoJKiBtYW51YWwvdXNlcnMudGV4aTogVGVsbCB0aGF0IGN1c2VyaWQgaXMgbWFya2VkIHRvIGJlIHdpdGhkcmF3biBpbgoJWFBHNC4yLgoKU2F0IE5vdiAgMiAxNDoyNjozNyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCglMaW51cyBzYWlkIGhlIHdpbGwgbWFrZSBzdXJlIG5vIHN5c3RlbSBjYWxsIHdpbGwgcmV0dXJuIGEgdmFsdWUKCWluIC0xIC4uLiAtNDA5NSBhcyBhIHZhbGlkIHJlc3VsdC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXNkZXAuaDogQ29ycmVjdCB0ZXN0IGZvciBlcnJvci4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXNjYWxsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2RlcC5oOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNjYWxsLlM6IExpa2V3aXNlLgoKU2F0IE5vdiAgMiAxNjo1NDo0OSAxOTk2ICBOSUlCRSBZdXRha2EgIDxnbmlpYmVAbXJpLmNvLmpwPgoKCSogc3lzZGVwcy9zdHViL2xvY2tmaWxlLmMgWyFVU0VfSU5fTElCSU9dOiBEZWZpbmUgd2VhayBhbGlhcyBmb3IKCV9fZnVubG9ja2ZpbGUsIG5vdCBhIGNpcmN1bGFyIGFsaWFzLgoJRGVmaW5lIF9fSU9fZnRyeWxvY2tmaWxlIGlmIFVTRV9JTl9MSUJJTyBhbmQgX19mdHJ5bG9ja2ZpbGUgaWYgbm90LAoJbm90IHZpY2UgdmVyc2EuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3N5c2RlcC5TIChfX2Vycm5vX2xvY2F0aW9uKTogTWFrZQoJaXQgYSB3ZWFrIHN5bWJvbC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNkZXAuUyAoX19lcnJub19sb2NhdGlvbik6IExpa2V3aXNlLgoKVHVlIE5vdiAgNSAwMDowNDo0OCAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmM6IEluY2x1ZGUgPGxpYmMtbG9jay5oPi4KCk1vbiBOb3YgIDQgMTY6NTc6NDIgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3R0eW5hbWVfci5jICh0dHluYW1lX3IpOiBDaGFuZ2UgcHJvdG90eXBlIHRvCgltYXRjaCBQT1NJWC4xYy4KCgkqIHN5c2RlcHMvc3R1Yi9sb2NrZmlsZS5jIFshIFVTRV9JTl9MSUJJT106IFNlY29uZCBkZWZpbml0aW9uIG9mCglfX2ludGVybmFsX2Z1bmxvY2tmaWxlIChpbiB0ZXJtcyBvZiBpdHNlbGYpIHNob3VsZCBhY3R1YWxseSBiZSBhCglkZWZpbml0aW9uIG9mIF9fZnVubG9ja2ZpbGUuCgoJKiBwd2QvcHdkLmg6IEdldCBgc2l6ZV90JyBmcm9tIDxzdGRkZWYuaD4uCgkqIGdycC9ncnAuaDogTGlrZXdpc2UuCgkqIHNoYWRvdy9zaGFkb3cuaDogTGlrZXdpc2UuCgoJKiBzdGRsaWIvYXRleGl0LmMgKF9fbmV3X2V4aXRmbik6IEFkZCBtaXNzaW5nIHNlbWljb2xvbnMgYWZ0ZXIKCWNhbGxzIHRvIF9fbGliY19sb2NrX2xvY2sgYW5kIF9fbGliY19sb2NrX3VubG9jay4KCSogc3RkbGliL3JhbmRvbS5jIChfX3NyYW5kb20sIF9faW5pdHN0YXRlLCBfX3NldHN0YXRlLCBfX3JhbmRvbSk6CglMaWtld2lzZS4KCgkqIGh1cmQvaHVyZHNpZy5jICh3cml0ZV9jb3JlZmlsZSk6IEZpeCB0eXBvLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvc2lnd2FpdC5jOiBOZXcgZmlsZS4KClNhdCBOb3YgIDIgMDE6NDg6NDcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9lcnJub3MuaDogTW92ZSBkZWNsYXJhdGlvbiBvZiBlcnJubwoJYW5kIF9fZXJybm9fbG9jYXRpb24gdG8gY29ycmVjdCBwb3NpdGlvbi4KClRodSBPY3QgMzEgMjI6NTE6MjUgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBNYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IEFkZCByZWxsbnMtc2guCgkqIHJlbGxucy1zaDogTmV3IGZpbGUuCgkqIE1ha2VydWxlcyAobWFrZS1saW5rKTogVXNlIHJlbGxucy1zaC4KCSogdGltZS9NYWtlZmlsZSAoJChpbnN0YWxsZWQtbG9jYWx0aW1lLWZpbGUpKTogTGlrZXdpc2UuCgpUaHUgT2N0IDMxIDExOjMzOjAxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZWxmL01ha2VmaWxlICgkb2JqcGZ4KWxkZCkgU3Vic3RpdHV0ZSAkKHZlcnNpb24pIGZvciBAVkVSU0lPTkAuCgkoZGlzdHJpYnV0ZSk6IEFkZCBsZGQuYmFzaC5pbi4KCSogZWxmL2xkZC5zaC5pbjogUHJvY2VzcyAtLWhlbHAgYW5kIC0tdmVyc2lvbiBwYXJhbWV0ZXIuCglDb3JyZWN0IGNvbW1lbnRzLgoJKiBlbGYvbGRkLmJhc2guaW46IE5ldyBmaWxlLgoKCSogc3RkbGliL3N0ZGxpYi5oOiBBZGQgcHJvdG90eXBlIGZvciBjbGVhcmVudi4KCSogc3lzZGVwcy9nZW5lcmljL3NldGVudi5jOiBBZGQgaW1wbGVtZW50YXRpb24gb2YgY2xlYXJlbnYuCgkoc2V0ZW52KTogSGFuZGxlIF9fZW52aXJvbiA9PSBOVUxMIGNvcnJlY3RseS4KCSogc3lzZGVwcy9zdHViL3NldGVudi5jOiBBZGQgc3R1YiBkZWZpbml0aW9uIGZvciB1bnNldGVudiBhbmQKCWNsZWFyZW52LgoKCSogc3lzZGVwcy9nZW5lcmljL3B1dGVudi5jOiBDb3JyZWN0IGxheW91dCB0byBmaXQgaW4gbGliaXQuCgkqIHN5c2RlcHMvZ2VuZXJpYy9zZXRlbnYuYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9zdHJ0b2wuaDogTGlrZXdpc2UuCgoJKiB0aW1lL3N5cy90aW1lLmg6IERlZmluZSBfX25lZWRfdGltZXZhbCBhbmQgaW5jbHVkZSA8dGltZWJpdHMuaD4uCglSZW1vdmUgZGVmaW5pdGlvbiBvZiBzdHJ1Y3QgdGltZXZhbC4KCSogc3lzZGVwcy9zdHViL3RpbWViaXRzLmggW19fbmVlZF90aW1ldmFsXTogRGVmaW5lIHN0cnVjdCB0aW1ldmFsCgl1c2luZyBgdGltZV90JyBmb3IgbWVtYmVycy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvdGltZWJpdHMuaCBbX19uZWVkX3RpbWV2YWxdOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvdGltZWJpdHMuaDogTmV3IGZpbGUuICBTYW1lCglhcyBvbGQgTGludXggc3BlY2lmaWMgdmVyc2lvbi4KClRodSBPY3QgMzEgMDA6MDE6MzkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzaWduYWwvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIHNpZ3dhaXQuCgkqIHNpZ25hbC9zaWduYWwuaDogQWRkIHByb3RvdHlwZSBmb3Igc2lnd2FpdC4KCSogc3lzZGVwcy9wb3NpeC9zaWd3YWl0LmM6IE5ldyBmaWxlLiAgSW1wbGVtZW50YXRpb24gb2Ygc2lnd2FpdAoJZnVuY3Rpb24gZnJvbSBQT1NJWC4xYy4KCSogc3lzZGVwcy9zdHViL3NpZ3dhaXQuYzogTmV3IGZpbGUuICBTdHViIHZlcnNpb24gb2Ygc2lnd2FpdC4KCldlZCBPY3QgMzAgMDI6MDE6MTcgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBzdW5ycGMveGRyX2Zsb2F0LmMgKHhkcl9mbG9hdCk6IEhhbmRsZSBzaXplb2YoZmxvYXQpIT1zaXplb2YobG9uZyksCglidXQgZG9uJ3QgYm90aGVyIGdvaW5nIGZhcnRoZXIgdGhhbiBzaXplb2YoZmxvYXQpPT1zaXplb2YoaW50KS4KCSh4ZHJfZG91YmxlKTogSGFuZGxlIGxpdHRsZS1lbmRpYW4gbWFjaGluZXMhICBIYW5kbGUgc2l6ZW9mKGRvdWJsZSkKCSE9IDIqc2l6ZW9mKGxvbmcpLCB0aG91Z2ggYWdhaW4gZG9uJ3QgYm90aGVyIHdpdGggbW9yZSB0aGFuIGludC4KClRodSBPY3QgMjkgMTY6MDk6NDIgMTk5NiAgQ3JhaWcgTWV0eiAgPGNtZXR6QGlubmVyLm5ldD4KCgkqIHN5c2RlcHMvcG9zaXgvZ2V0YWRkcmluZm8uYzogVXNlIGJ1ZmZlciBsaW1pdHMgZm9yIGluZXRfbnRvcAoJZnVuY3Rpb24uCgpUdWUgT2N0IDI5IDEyOjM3OjIyIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZXJ1bGVzOiBDcmVhdGUgc3ltYm9saWMgbGlua3MgZm9yIGxpbmtpbmcgaW4gJChsaWJkaXIpLgoJKG1ha2UtbGluayk6IFVzZSBhYnNvbHV0ZSBwYXRoIGZvciBkZXN0aW5hdGlvbiBpZiB0aGlzIGlzIG5vdCBpbgoJdGhlIHNhbWUgZGlyZWN0b3J5LgoKCSogZWxmL3J0bGQuYyAoZGxfbWFpbik6IFdoZW4gdmVyaWZ5aW5nIGRvbid0IGNoZWNrIHRoZSBuYW1lIG9mCgl0aGUgZHluYW1pYyBsaW5rZXIuCgoJKiBzaGxpYi12ZXJzaW9uczogQ2hhbmdlIGVudHJpZXMgZm9yIEh1cmQgc3BlY2lmaWMgbGlicyBmcm9tCgkqLSotZ251KiB0byAqLSotZ251Pyogc28gdGhhdCBpNTg2LXBjLWxpbnV4LWdudSBkb2VzIG5vdCBtYXRjaAoJdGhlc2UgZW50cmllcy4KCgkqIGFzc2VydC9hc3NlcnQuaDogUmVmb3JtYXQgY29weXJpZ2h0LgoJQ2hhbmdlIHJlZmVyZW5jZSB0byBBTlNJIGludG8gcmVmZXJlbmNlIHRvIElTTyBDLgoJKiBjdHlwZS9jdHlwZS5oOiBMaWtld2lzZS4KCSogZXJybm8uaDogTGlrZXdpc2UuCgkqIGxpbWl0cy5oOiBMaWtld2lzZS4KCSogbWF0aC9tYXRoLmg6IExpa2V3aXNlLgoJKiBzZXRqbXAvc2V0am1wLmg6IExpa2V3aXNlLgoJKiBzdGRpby9zdGRpby5oOiBMaWtld2lzZS4KCSogbGliaW8vc3RkaW8uaDogTGlrZXdpc2UuCgkqIHN0ZGxpYi9zdGRsaWIuaDogTGlrZXdpc2UuCgkqIHN0cmluZy9zdHJpbmcuaDogTGlrZXdpc2UuCgkqIHRpbWUvdGltZS5oOiBMaWtld2lzZS4KCgkqIHN0cmluZy9hcmd6Lmg6IFVzZSBfX2NvbnN0IGluIGRlZmluaXRpb25zLgoKCSogZWxmL2RsZmNuLmg6IFVzZSBfX2NvbnN0IGFuZCBfX1AuICBSZWZvcm1hdCBjb3B5cmlnaHQuCgkqIG1pc2MvZXJyLmg6IExpa2V3aXNlLgoKCSogd2N0eXBlL3djdHlwZS5oICh3Y3RyYW5zX3QpOiBVc2UgX19jb25zdCBpbnN0ZWFkIG9mIGNvbnN0LgoKCSogTWFrZWNvbmZpZyAoJChjb21tb24tb2JqcGZ4KXNvdmVyc2lvbnMubWspOiBHZW5lcmF0ZSBsaXN0IG9mCglzb25hbWVzIGZvciB2ZXJzaW9uZWQgbGlicmFyaWVzLgoJKiBNYWtlZmlsZTogUmVtb3ZlIGNvZGUgdG8gZ2VuZXJhdGUgbGliYy12ZXJzaW9uLmguCglHZW5lcmF0ZSBnbnUvbGliLW5hbWVzLmggd2l0aCBpbmZvIGZyb20gc292ZXJzaW9ucy5tay4KCSogZmVhdHVyZXMuaDogRGVmaW5lIF9fR0xJQkNfXyBhbmQgX19HTElCQ19NSU5PUl9fLgoKCSogZGlyZW50L3RzdC1zZWVrZGlyLmM6IEluaXRpYWxpemUgc2F2ZTMuCgkqIGdycC90ZXN0Z3JwLmM6IEluaXRpYWxpemUgbXlfZ3JvdXAuCgoJKiBncnAvZmdldGdyZW50X3IuYzogQ2hhbmdlIGludGVyZmFjZSB0byBmb2xsb3cgUE9TSVguMWMuCgkqIGdycC9ncnAuaDogTGlrZXdpc2UuCgkqIG5zcy9nZXRYWGJ5WVkuYzogTGlrZXdpc2UuCgkqIG5zcy9nZXRYWGJ5WVlfci5jOiBMaWtld2lzZS4KCSogbnNzL2dldFhYZW50LmM6IExpa2V3aXNlLgoJKiBuc3MvZ2V0WFhlbnRfci5jOiBMaWtld2lzZS4KCSogcHdkL2ZnZXRwd2VudF9yLmM6IExpa2V3aXNlLgoJKiBwd2QvcHdkLmg6IExpa2V3aXNlLgoJKiBzaGFkb3cvZmdldHNwZW50X3IuYzogTGlrZXdpc2UuCgkqIHNoYWRvdy9zZ2V0c3BlbnQuYzogTGlrZXdpc2UuCgkqIHNoYWRvdy9zZ2V0c3BlbnRfci5jOiBMaWtld2lzZS4KCSogZ3JwL2ZnZXRncmVudC5jOiBBZGFwdCBmb3IgY2hhbmdlIGluIGludGVyZmFjZSBvZiBmZ2V0Z3JlbnRfci4KCSogcHdkL2ZnZXRwd2VudC5jOiBMaWtld2lzZSwgZm9yIGZnZXRwd2VudF9yLmMuCgkqIHNoYWRvdy9mZ2V0c3BlbnQuYzogTGlrZXdpc2UsIGZvciBmZ2V0cHdlbnRfci5jLgoJKiByZXNvbHYvbmV0ZGIuaDogQWRhcHQgcHJvdG90eXBlcyBmb3IgcmVlbnRyYW50IGZ1bmN0aW9ucyB0bwoJZm9sbG93IFBPU0lYLjFjLgoJKiBzdW5ycGMvcnBjL25ldGRiLmg6IExpa2V3aXNlLAoJKiBzaGFkb3cvc2hhZG93Lmg6IExpa2V3aXNlLgoKCSogaW5ldC9nZXRuZXRncmVudF9yLmM6IEZvbGxvdyBjaGFuZ2UgaW4gcHdkL2dycCBmdW5jdGlvbiBpbnRlcmZhY2UuCgoJKiBzeXNkZXBzL3VuaXgvZ2V0bG9naW5fci5jOiBSZXR1cm4gRVJBTkdFIHdoZW4gYnVmZmVyIGlzIHRvbyBzbWFsbC4KCgkqIGluZXQvaGVycm5vLmM6IERvbid0IGRlZmluZSBfX2hfZXJybm8sIG9ubHkgaF9lcnJubyBvdGhlcndpc2UgdGhlCglFTEYgYWxpYXNpbmcgY3JlYXRlcyBzdHJhbmdlIHNpdHVhdGlvbnMuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Vycm5vcy5IOiBEZWZpbmUgX19zZXRfZXJybm8gYXMgaW5saW5lCglmdW5jdGlvbi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXNkZXAuUzogRG9uJ3QgZGVmaW5lIF9fZXJybm8uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzZGVwLlM6IExpa2V3aXNlLgoKCSogbGliaW8vbGliaW8uaDogRG9uJ3QgZGVjbGFyZSBfSU9fZmxvY2tmaWxlIGFuZCBfSU9fZnVubG9ja2ZpbGUKCXdlYWsuCgoJKiBsb2NhbGUvcHJvZ3JhbXMvY2hhcm1hcC5jOiBBZGQgY2FzdHMgdG8gcHJldmVudCB3YXJuaW5ncy4KCSogbG9jYWxlL3Byb2dyYW1zL2xpbmVyZWFkZXIuaDogTGlrZXdpc2UuCgkqIGxvY2FsZS9wcm9ncmFtcy9sZC1jb2xsYXRlLmM6IExpa2V3aXNlLgoJKiBsb2NhbGUvcHJvZ3JhbXMvc3RyaW5ndHJhbnMuYzogTGlrZXdpc2UuCglDaGFuZ2UgdHlwZXMgZm9yIHZhcmlvdXMgdmFyaWFibGVzIHRvIHByZXZlbnQgd2FybmluZ3MuCgkqIGxvY2FsZS9wcm9ncmFtcy9sZC1jdHlwZS5jOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL2xpbmVyZWFkZXIuaCAobHJfdW5nZXRjKTogTGlrZXdpc2UuCgkqIGxvY2FsZS9wcm9ncmFtcy9jaGFyc2V0LmggKHN0cnVjdCBjaGFyc2V0KTogVXNlIGB1bnNpZ25lZCBpbnQnCglhcyB0eXBlIGZvciB3aWR0aF9kZWZhdWx0LgoJKiBwb3NpeC9yZWdleC5jOiBDaGFuZ2UgdHlwZSBvZiBgdGhpc19yZWcnIHZhcmlhYmxlcy4KCSogc3RkaW8tY29tbW9uL01ha2VmaWxlOiBVc2UgLVduby1mb3JtYXQgZm9yIHRzdGRpb21pc2MuYy4KCSogc3RkaW8tY29tbW9uL2J1ZzUuYzogRGUtQU5TSS1meS4gIFVzZSBjb3JyZWN0IHR5cGVzIGZvcgoJdmFyaWFibGVzLgoJKiBzdGRpby1jb21tb24vcHJpbnRmX2ZwLmM6IEluaXRpYWxpemUgdG9fc2hpZnQuCgkqIHN0ZGlvLWNvbW1vbi90ZXN0X3Jkd3IuYzogQWRkIGNhc3QuCgkqIHN0ZGlvLWNvbW1vbi92ZnByaW50Zi5jOiBBZGQgY2FzdHMgYW5kIHVzZSBjb3JyZWN0IHR5cGVzIHRvCglwcmV2ZW50IHdhcm5pbmdzLgoJKiBzdGRpby1jb21tb24vdmZzY2FuZi5jOiBJbml0aWFsaXplIHN0ciBhbmQgc3RycHRyLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX2puZi5jOiBVc2UgY29ycmVjdCB0eXBlcyB0byBwcmV2ZW50IHdhcm5pbmdzLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX3Bvdy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvZV9wb3dmLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX3JlbV9waW8yZi5jOiBMaWtld2lzZS4KCSogdGltZS90ZXN0LXR6LmM6IExpa2V3aXNlLgoKCSogbWFudWFsL2NyZWF0dXJlLnRleGk6IERvY3VtZW50IF9SRUVOVFJBTlQgYW5kIF9USFJFQURfU0FGRS4KCSogbWFudWFsL2xpYmMudGV4aW5mbzogUHJldmVudCBtYWtlaW5mbyBmYWlsdXJlIGJ5IGF2b2lkaW5nCglsaWJjLmNwIGluZGV4LiAgVGhpcyBtdXN0IGJlIGZpeGVkLgoJKiBtYW51YWwvbnNzLnRleGk6IEFkYXB0IGZvciBjb3JyZWN0IFBPU0lYLjFjIGludGVyZmFjZSBvZgoJcmVlbnRyYW50IGZ1bmN0aW9ucy4KCSogbWFudWFsL3VzZXJzLnRleGk6IERvY3VtZW50IG5ldGdyb3VwIGZ1bmN0aW9ucy4KCgkqIHBvL2VzLnBvOiBVcGRhdGVkLgoJKiBwby9mci5wbzogVXBkYXRlZC4KCgkqIHBvc2l4L2ZubWF0Y2guYzogQ2hhbmdlIHRvIG1hdGNoIGxpYml0IHZlcnNpb24uCgoJKiBwb3NpeC91bmlzdGQuaDogQ2hhbmdlIHByb3RvdHlwZSBmb3IgdHR5bmFtZV9yIHRvIG1hdGNoIFBPU0lYLjFjLgoJKiBzeXNkZXAvcG9zaXgvdHR5bmFtZV9yLmM6IExpa2V3aXNlLgoKCSogc3RkbGliL2F0ZXhpdC5oIChfX25ld19leGl0Zm4pOiBBZGQgaW50ZXJuYWwgbG9ja2luZy4KCSogc3RkbGliL2V4aXQuYzogRGUtQU5TSS1meS4gIEhhbmRsZSBuZXcgZWZfdXMgdmFsdWUgZm9yIGZsYXZvci4KCSogc3RkbGliL2V4aXQuaDogRGUtQU5TSS1meS4gIERlZmluZSBuZXcgZWZfdXMgdmFsdWUgZm9yIGZsYXZvci4KCSogc3RkbGliL3JhbmRvbS5jIChfX3NyYW5kb20pOiBBZGQgaW50ZXJuYWwgbG9ja2luZy4KCShfX2luaXRzdGF0ZSk6IExpa2V3aXNlLgoJKF9fc2V0c3RhdGUpOiBMaWtld2lzZS4KCShfX3JhbmRvbSk6IExpa2V3aXNlLgoKTW9uIE9jdCAyOCAyMjoyODozNyAxOTk2ICBOSUlCRSBZdXRha2EgIDxnbmlpYmVAbXJpLmNvLmpwPgoKCSogc3lzZGVwcy9nZW5lcmljL2NyeXB0LWVudHJ5LmMgKGNyeXB0X3IpOiBVc2UgX19zZXRfZXJybm8uCgkoY3J5cHQpOiBMaWtld2lzZS4KCSogcmVzb2x2L2dldGhuYW1hZGRyLmMgKGdldGhvc3RieW5hbWUyKTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvZ2VuZXJpYy91bmFtZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9yZW5hbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRybGltaXQuYzogTGlrZXdpc2UuCgoJKiBuc3MvbnNzX2RiL2RiLW5ldGdycC5jIChfbnNzX2RiX3NldG5ldGdyZW50KTogRml4IHR5cG8uCgpTdW4gT2N0IDI3IDExOjEyOjUwIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogbG9jYWxlL3Byb2dyYW1zL2xkLWNvbGxhdGUuYyAoY29sbGF0ZV9vcmRlcl9lbGVtKTogRml4IGZvcm1hdAoJc3RyaW5nLgoJKGNvbGxhdGVfZWxlbWVudF90byk6IENhc3QgZmllbGQgd2lkdGggYXJndW1lbnQgdG8gYGludCcgZm9yCglmb3JtYXQgc3RyaW5nLgoJKGNvbGxhdGVfc3ltYm9sKTogTGlrZXdpc2UuCgkoY29sbGF0ZV9vcmRlcl9lbGVtKTogTGlrZXdpc2UuCgkoY29sbGF0ZV93ZWlnaHRfYnN5bWJvbCk6IExpa2V3aXNlLgoJKGNvbGxhdGVfc2ltcGxlX3dlaWdodCk6IExpa2V3aXNlLgoKCSogbG9jYWxlL3Byb2dyYW1zL2xkLXRpbWUuYyAoU1RSQVJSX0VMRU0pOiBGaXggZm9ybWF0IHN0cmluZy4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sZC1jdHlwZS5jIChjdHlwZV9jbGFzc19uZXdQKTogQWRkIG1pc3NpbmcKCWFyZ3VtZW50IGZvciBmb3JtYXQgc3RyaW5nLgoJKGN0eXBlX21hcF9uZXdQKTogTGlrZXdpc2UuCgkoc2V0X2NsYXNzX2RlZmF1bHRzKTogRml4IGZvcm1hdCBzdHJpbmcuCgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlZGVmLmMgKGNvbnN0cnVjdF9vdXRwdXRfcGF0aCk6IFB1dHRpbmcgYW4KCWV4cGxpY2l0IFwwIGludG8gdGhlIGZvcm1hdCBzdHJpbmcgZG9lcyBub3Qgd29yaywgdXNlICVjLgoKU2F0IE9jdCAyNiAyMDozODozNiAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIE1ha2VydWxlczogSW5zdGFsbCBhbGwgc2hhcmVkIGxpYnJhcmllcyBpbiAkKHNsaWJkaXIpLgoKCSogbG9naW4vTWFrZWZpbGU6IEJ1aWxkIGxpYnV0aWwuc28gaW4gb3RoZXJzIHBhc3MgYWZ0ZXIKCWxpYmMuc28gaXMgY3JlYXRlZC4KCgkqIG1pc2MvbW50ZW50Lmg6IEluY2x1ZGUgPHBhdGhzLmg+IGZvciBfUEFUSF9NTlRUQUIgJiBfUEFUSF9NT1VOVEVELgoKCSogc3RyaW5nL3N0cmF0Y2xpZmYuYzogQWxsb2NhdGUgMyBwYWdlcyBpbnN0ZWFkIG9mIG9uZSwgdGhlbiB1c2UKCW1wcm90ZWN0IHNvIHRoYXQgd2Uga25vdyB0aGF0IHRoZSBhZGphY2VudCBwYWdlcyBhcmUgaW5hY2Nlc3NpYmxlLgoKCSogcmVzb3VyY2Uvc3lzL3Jlc291cmNlLmg6IE1vdmUgYWxsIHN0cnVjdHVyZXMgYW5kIGVudW1zIHRvIC4uLgoJKiBzeXNkZXBzL2dlbmVyaWMvcmVzb3VyY2ViaXRzLmg6IC4uLiBoZXJlIC4uLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3N1bi9zdW5vczQvcmVzb3VyY2ViaXRzLmg6IC4uLiBhbmQgaGVyZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvcmVzb3VyY2ViaXRzLmg6IFJlbW92ZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9yZXNvdXJjZWJpdHMuaDogUmVtb3ZlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3Jlc291cmNlYml0cy5oOiBSZW1vdmUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21pcHMvcmVzb3VyY2ViaXRzLmg6IFJlbW92ZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvcmVzb3VyY2ViaXRzLmg6IE5ldyBmaWxlLiAgVXNlIGtlcm5lbAoJaGVhZGVyIGZvciBSTElNSVRfKiBkZWZpbml0aW9ucy4gIFRoZSBtZW1iZXJzIG9mIHN0cnVjdCBybGltaXQKCWFyZSBsb25ncy4KCgpUaHUgT2N0IDI0IDE3OjQzOjM0IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZVRBR1MgKHN5c2RlcC1kaXJzKTogRml4IHR5cG8uCgpUaHUgT2N0IDI0IDE3OjMyOjU3IDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBodXJkL2h1cmRzaWcuYyAod3JpdGVfY29yZWZpbGUpOiBJZiB3ZSBjYW4ndCBjcmVhdGUgdGhlIGNvcmUKCWZpbGUsIHN0aWxsIGNhbGwgY3Jhc2hfZHVtcF90YXNrIHdpdGggYSBudWxsIEZJTEUgYXJnLiAgTWF5YmUgaXQKCXdvbid0IGFjdHVhbGx5IG5lZWQgdGhlIGZpbGUuCgpXZWQgT2N0IDIzIDAzOjQ1OjIyIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZWZpbGUgKGhlYWRlcnMpOiBEb24ndCBtZW50aW9uIGxpYmMtdmVyc2lvbi5oLgoJKGluc3RhbGwtb3RoZXJzKTogLi4uYnV0IGhlcmUuCgpUdWUgT2N0IDIyIDIxOjM4OjIxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdmVyc2lvbi5oOiBCdW1wIHZlcnNpb24gbnVtYmVyIHRvIDEuOTcuCgoJKiBmZWF0dXJlcy5oOiBVbmRvIGNoYW5nZSBvZiBTdW4gT2N0IDIwIDIyOjE5OjU4IDE5OTYuCglJbmNsdWRlIGxpYmMtdmVyc2lvbi5oLgoJKiBmZWF0dXJlcy5oLmluOiBSZW1vdmVkLgoJKiBNYWtlZmlsZTogQ2hhbmdlIHJ1bGVzIHRvIGdlbmVyYXRlIGxpYmMtdmVyc2lvbi5oIGluc3RlYWQgb2YKCWZlYXR1cmVzLmguCgoJKiBtYWxsb2MvZnJlZS5jOiBBZGQgY2FzdCB0byBwcmV2ZW50IHdhcm5pbmcuCgkqIG1hbGxvYy9tYWxsb2Mtd2Fsay5jOiBMaWtld2lzZS4KCSogbWFsbG9jL3JhbGxvYy5jOiBMaWtld2lzZS4KCSogbWFsbG9jL3JlYWxsb2MuYzogTGlrZXdpc2UuCgoJKiBncnAvZmdldGdyZW50X3IuYzogQWNjZXB0IGVtcHR5IG51bWVyaWMgZmllbGQgaWYgbmFtZSBzdGFydCB3aXRoICsKCW9yIC0uCgkqIHB3ZC9mZ2V0cHdlbnRfci5jOiBMaWtld2lzZS4KCSogbnNzL25zc19maWxlcy9maWxlcy1ncnAuYzogRG9uJ3QgYWNjZXB0IGVudHJpZXMgd2l0aCBuYW1lcyBzdGFydGluZwoJd2l0aCArIG9yIC0gaW4gbG9va3VwIGZ1bmN0aW9ucy4KCSogbnNzL25zc19maWxlcy9maWxlcy1wd2QuYzogTGlrZXdpc2UuCgoJKiBNYWtlcnVsZXM6IENhbGwgYXV0b2xvY2suc2ggdXNpbmcgJChTSEVMTCkuCgpNb24gT2N0IDIxIDIyOjUyOjE2IDE5OTYgIE5JSUJFIFl1dGFrYSAgPGduaWliZUBtcmkuY28uanA+CgoJKiBlbGYvZGwtbWluaW1hbC5jOiBEb24ndCBkZWZpbmUgYGRnZXR0ZXh0JyByZXBsYWNlbWVudCBidXQKCWBkY2dldHRleHQnLiAgV2hlbiBvcHRpbWl6aW5nIHRoZSBtYWNyb3MgaW4gPGxpYmludGwuaD4gZGVmaW5lCglgZGdldHRleHQnIGFzIGEgbWFjcm8gYW5kIHNvIHRoaXMgZnVuY3Rpb24gd2lsbCBuZXZlciBiZSBjYWxsZWQuCgpNb24gT2N0IDIxIDE1OjQxOjU5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9pMzg2L3N5c2RlcC5oOiBEZWZpbmUgRU5EIHRvIHVzZSAuc2l6ZSB3aGVuIGF2YWlsYWJsZS4KCShQU0VVRE9fRU5EKTogVXNlIEVORC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXNkZXAuaDogRGVmaW5lIFBTRVVET19FTkQgdG8KCWRlZmluZSBTWVNDQUxMX0VSUk9SX0hBTkRMRVIgYmVmb3JlIHVzaW5nIEVORC4KCShTWVNDQUxMX0VSUk9SX0hBTkRMRVIpOiBEb24ndCB1c2UgLnNpemUgZGlyZWN0aXZlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jbG9uZS5TOiBEb24ndCB1c2UgU1lTQ0FMTF9FUlJPUl9IQU5ETEVSCglhbmQgLnNpemUgZGlyZWN0aXZlIGJ1dCBQU0VVRE9fRU5ELgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tbWFwLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zb2NrZXQuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2RlcC5TIChfX2Vycm5vX2xvY2F0aW9uKTogVXNlIEVORC4KCSogc3lzZGVwcy91bml4L2kzODYvc3lzZGVwLlMgKF9fc3lzY2FsbF9lcnJvcik6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvX19sb25nam1wLlM6IFVzZSBFTkQgaW5zdGVhZCBvZiBQU0VVRE9fRU5ELgoJKiBzeXNkZXBzL2kzODYvYnNkLV9zZXRqbXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9ic2Qtc2V0am1wLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvbWVtY2hyLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvbWVtY21wLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc2V0am1wLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc3RwY3B5LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc3RwbmNweS5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L3N0cmNoci5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L3N0cmNzcG4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9zdHJwYnJrLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc3RycmNoci5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L3N0cnNwbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L3N0cnRvay5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L2k0ODYvc3RyY2F0LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvaTQ4Ni9zdHJsZW4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9pNTg2L21lbXNldC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L2k1ODYvc3RyY2hyLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvaTU4Ni9zdHJsZW4uUzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2kzODYvc3RybGVuLmM6IERlLUFOU0ktZnkuCgoJKiBzeXNkZXBzL2dlbmVyaWMvX3N0cmVycm9yLmM6IFVuZG8gY2hhbmdlIG9mIE1vbiBPY3QgMjEgMDE6MzI6MzYgMTk5Ni4KCURlZmluZSBkZ2V0dGV4dCBpZiBub3QgZGVmaW5lZCB0byB1c2UgZGNnZXR0ZXh0LgoJKiBzeXNkZXBzL21hY2gvX3N0cmVycm9yLmM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvaTM4Ni90aW1lLlM6IEFkZCBQU0VVRE9fRU5EIHRvIGdldAoJX19zeXNjYWxsX2Vycm9yIGRlZmluZWQuLgoKU2F0IE9jdCAxOSAxMjoyNzo1MCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvbW1hcC5TOiBGaXggYnJhaW5vOiBDQUxMX01DT1VOVCBpcwoJYWxyZWFkeSBpbmNsdWRlZCBpbiB0aGUgRU5UUlkgbWFjcm8uICBSZW1vdmUgU1lTQ0FMTF9FUlJPUl9IQU5ETEVSCglub3cgcHJvdmlkZWQgYnkgUFNFVURPX0VORC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zaWdyZXR1cm4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc29ja2V0LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2NhbGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzZGVwLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2Nsb25lLlM6IExpa2V3aXNlLiAgVXNlIEpVTVBUQVJHRVQuCgoJKiBzeXNkZXBzL2dlbmVyaWMvc3lzZGVwLmggKEVORCk6IFByb3ZpZGUgZGVmYXVsdCBlbXB0eQoJZGVmaW5pdGlvbi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNkZXAuaCAoRU5EKTogUmVkZWZpbmUgdG8gdXNlCglzaXplIGRpcmVjdGl2ZS4KCShQU0VVRE8pOiBEb24ndCBpbmNsdWRlIFNZU0NBTExfRVJST1JfSEFORExFUi4KCShQU0VVRE9fRU5EKTogSW5jbHVkZSBpdCBoZXJlIGluc3RlYWQuCgkoU1lTQ0FMTF9FUlJPUl9IQU5ETEVSKTogUmVtb3ZlIHR5cGUgZGlyZWN0aXZlLgoJKiBzeXNkZXBzL202OGsvYnNkLV9zZXRqbXAuUzogVXNlIEVORCwgbm90IFBTRVVET19FTkQuCgkqIHN5c2RlcHMvbTY4ay9ic2Qtc2V0am1wLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3NpZ3JldHVybi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNkZXAuUzogTGlrZXdpc2UuCgkoX19zeXNjYWxsX2Vycm9yKTogQ2FuJ3QgdXNlIEVOVFJZIG1hY3JvLgoKU2F0IE9jdCAxOSAxMjoxMzoyNCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3QgKGdldHJlc3VpZCwgc2V0cmVzdWlkKToKCVNldCBjYWxsZXIgdG8gRVhUUkEuCgpNb24gT2N0IDIxIDAxOjMyOjM2IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZWxmL3J0bGQuYyAoZGxfbWFpbik6IE1vdmUgaW5pdGlhbGl6YXRpb24gb2YgYF9kbF9zdGFydGluZ191cCcKCXRvIGJlZ2lubmluZyBvZiBmdW5jdGlvbi4gIFNvIGxpYmMgZnVuY3Rpb25zIGNhbiB1c2UgdGhpcyBmbGFnLgoJKiBzeXNkZXBzL2dlbmVyaWMvX3N0cmVycm9yLmM6IERvbid0IHVzZSBkZ2V0dGV4dCBmb3IgbWVzc2FnZQoJdHJhbnNsYXRpb24gd2hpbGUgYF9kbF9zdGFydGluZ191cCcgaXMgbm9uemVyby4KCgkqIGVsZi9kbC1kZXBzLmMgKF9kbF9tYXBfb2JqZWN0X2RlcHMpOiBBZGQgbmV3IHBhcmFtZXRlcgoJVFJBQ0VfTU9ERS4KCVBhc3MgcGFyYW1ldGVyIHZhbHVlIHRvIF9kbF9tYXBfb2JqZWN0LgoJKiBlbGYvZGwtbG9hZCAoX2RsX21hcF9vYmplY3QpOiBBZGQgbmV3IHBhcmFtZXRlciBUUkFDRV9NT0RFLgoJSWYgVFJBQ0VfTU9ERSBpcyBub256ZXJvIGRvbiN0IHNpZ25hbCBlcnJvciB3aGVuIHNoYXJlZCBsaWIKCWlzIG5vdCBmb3VuZC4gIEluc3RlYWQgY3JlYXRlIGZha2UgZW50cnkgZm9yIGxpbmsgbWFwLgoJKiBkbC1vcGVuLmMgKGRsLW9wZW4pOiBQYXNzIDAgZm9yIG5ldyBhcmd1bWVudCB0byBfZGxfbWFwX29iamVjdC4KCSogZGwtcnVudGltZS5jIChfZGxfb2JqZWN0X3JlbG9jYXRpb25fc2NvcGUpOiBQYXNzIDAgZm9yIG5ldwoJYXJndW1lbnQgdG8gX2RsX21hcF9vYmplY3RfZGVwcy4KCSogZWxmL2xpbmsuaDogQWRkIG5ldyBwYXJhbWV0ZXIgVFJBQ0VfTU9ERSBmb3IgcHJvdG90eXBlcyBvZgoJX2RsX21hcF9vYmplY3QgYW5kIF9kbF9tYXBfb2JqZWN0X2RlcHMuCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBQYXNzIDAgZm9yIG5ldyBhcmd1bWVudCB0byBfZGxfbWFwX29iamVjdAoJYW5kIF9kbF9tYXBfb2JqZWN0X2RlcHMuCglXaGVuIG1vZGUgPT0gdHJhY2UgdGVzdCBmb3IgbF9vcGVuY291bnQgPT0gMCBiZWZvcmUgcHJpbnRpbmcKCWxpbmsgaW5mb3JtYXRpb24gc2luY2UgdGhpcyBtZWFucyB0aGUgbGliIGlzIG5vdCBmb3VuZC4KClN1biBPY3QgMjAgMjI6MTk6NTggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBycG0vdGVtcGxhdGU6IEFkZCBJTlNUQUxMIHRvICVkb2MgbGluZSB0byBmb2xsb3cgY29weXJpZ2h0CglyZXN0cmljdGlvbnMgd2hpY2ggZGVtYW5kIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIGNvcHlyaWdodAoJbWVzc2FnZXMgaW4gSU5TVEFMTCBldmVuIGZvciBiaW5hcnkgZGlzdHJpYnV0aW9ucy4KCgkqIGZlYXR1cmVzLmg6IFJlbmFtZSB0by4uLgoJKiBmZWF0dXJlcy5oLmluOiAuLi50aGlzLiAgQ2hhbmdlIHZhbHVlIG9mIF9fR05VX0xJQlJBUllfXyB0byAyCgkoZm9yIG1ham9yIHZlcnNpb24gbnVtYmVyb2YgcGFja2FnZSkgYW5kIGFkZCBfX0dOVV9MSUJSQVJZX01JTk9SX18KCWFuZCBfX0dOVV9MSUJSQVJZX0lOVEVSRkFDRV9fLgoJKiBNYWtlZmlsZSAoJChvYmpwZngpZmVhdHVyZXMuaCk6IE5ldyBydWxlIHRvIGdlbmVyYXRlIGZlYXR1cmVzLmgKCWZyb20gdGVtcGxhdGUgZmVhdHVyZXMuaC5pbi4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dldHN5c3N0YXRzLmM6IEluY2x1ZGUgPHBhdGhzLmg+LgoKU3VuIE9jdCAyMCAwMDowMDoxMyAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIGxvY2FsZS9wcm9ncmFtcy9saW5lcmVhZGVyLmMgKGxyX29wZW4pOiBDYXN0IGF3YXkgY29uc3QgYmVmb3JlIGZyZWUuCgkobHJfY2xvc2UpOiBMaWtld2lzZS4KCgkqIG1pc2MvbW50ZW50Lmg6IE1vdmUgX1BBVEhfTU5UVEFCICYgX1BBVEhfTU9VTlRFRCB0byBwYXRocy5oLgoJKiBtaXNjL3BhdGhzLmg6IE1vdmUgdG8gLi4uCgkqIHN5c2RlcHMvZ2VuZXJpYy9wYXRocy5oOiAuLi4gaGVyZS4KCSogcGF0aHMuaDogUmVtb3ZlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wYXRocy5oOiBOZXcgZmlsZS4gIENvcnJlY3QgX1BBVEhfU1REUEFUSCwKCV9QQVRIX01BSUxESVIsIF9QQVRIX01PVU5URUQsIF9QQVRIX1VOSVggdG8gY29tcGx5IHdpdGggdGhlIGZzc3RkLgoKCSogbnNzL25zc19kYi9kYi1uZXRncnAuaDogSW5jbHVkZSA8c3RyaW5nLmg+LgoKCSogc3RkaW8tY29tbW9uL3BzaWduYWwuYzogRGUtYW5zaWRlY2wtaWZ5LiAgQWxsb3cgTlVMTCBlbnRyaWVzIGluCglfc3lzX3NpZ2xpc3QsIHdoaWNoIHJlc3VsdCBpbiB0aGUgIlVua25vd24gc2lnbmFsIiBtZXNzYWdlLgoJKiBzdHJpbmcvc3Ryc2lnbmFsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvTWFrZWZpbGUgW3N0ZGlvLWNvbW1vbl06IElmICQoaW5oaWJpdC1zaWdsaXN0KSwKCWRvbid0IGF1dG8tZ2VuZXJhdGUgc2lnbGlzdC5jLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZSBbc3RkaW8tY29tbW9uXTogU2V0IGluaGliaXQtc2lnbGlzdC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2lnbGlzdC5jOiBOZXcgZmlsZS4gIE5vdCBuZWVkaW5nIHRvCglhdXRvZ2VuZXJhdGUgbWFrZXMgYm9vdHN0cmFwcGluZyBhbmQgY3Jvc3MtY29tcGlsaW5nIG11Y2ggZWFzaWVyLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaWdsaXN0Lmg6IE5ldyBmaWxlLgoKCSogc3RkbGliL2xvbmdsb25nLmg6IFByb3RvdHlwZSBfX3VkaXZfcXJubmQuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9NYWtlZmlsZSAoc3lzZGVwX2hlYWRlcnMpOiBSZW1vdmUKCXN5cy9pby5oLiAgSXQgaXMgYWxyZWFkeSBhZGRlZCBpbiAuLi4vbGludXgvTWFrZWZpbGUuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zaWdhY3Rpb24uaDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3NpZ251bS5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc3RhdGJ1Zi5oOiBOZXcgZmlsZS4KClN1biBPY3QgMjAgMTc6MTc6MTIgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJQWRkIGltcGxlbWVudGF0aW9uIG9mIFBPU0lYLjFnIGZ1bmN0aW9uIGdldGFkZHJpbmZvLgoJKiBwb3NpeC9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgZ2V0YWRkcmluZm8uCgkqIHN5c2RlcHMvcG9zaXgvZ2V0YWRkcmluZm8uYy46IE5ldyBmaWxlLiAgQWRkIGltcGxlbWVudGF0aW9uIGJ5CglDcmFpZyBNZXR6LgoJKiBzeXNkZXBzL3N0dWIvZ2V0YWRkcmluZm8uYzogTmV3IGZpbGUuICBTdHViIGltcGxlbWVudGF0aW9uLgoJKiByZXNvbHYvbmV0ZGIuaCBbX19VU0VfUE9TSVhdOiBBZGQgZ2V0YWRkcmluZm8gcHJvdG90eXBlcyBhbmQKCXJlbGF0ZWQgY29uc3RhbnRzIGFuZCBzdHJ1Y3R1cmVzLgoKU3VuIE9jdCAyMCAxMzowMjozNCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvc3R1Yi9sb2NrZmlsZS5jOiBSZW5hbWUgZnVuY3Rpb25zIHRvIF9faW50ZXJuYWxfKi4KCU1ha2UgYWxsIG9sZCBuYW1lcyB3ZWFrIGFsaXNlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIHJlcGxhY2VkCglieSBsaWJwdGhyZWFkLgoKCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmM6IE9ubHkgZGVjbGFyZSBfX2Zsb2NrZmlsZSBhbmQgX19mdW5sb2NrZmlsZQoJZm9yICFVU0VfSU5fTElCSU8uCglbVVNFX0lOX0xJQklPXTogQ2FsbCBfSU9fZmxvY2tmaWxlIGFuZCBfSU9fZnVubG9ja2ZpbGUgaW5zdGVhZCBvZgoJX19mbG9ja2ZpbGUgYW5kIF9fZnVubG9ja2ZpbGUuCglSZXBvcnRlZCBieSBOSUlCRSBZdXRha2EuCgoJKiBjcnlwdC9tZDUuYzogQ2hhbmdlIGZvcm0gb2YgY29weXJpZ2h0IG1lc3NhZ2UgYWNjb3JkaW5nIHRvIEdOSVRTCglydWxlcy4KCUFkZCB3YXJuaW5nIGZvciByZXF1aXJlbWVudCBvbiBSRVNCVUYgcGFyYW1ldGVyIGZvciBgbWQ1X2ZpbmlzaF9jdHgnCglhbmQgYG1kNV9yZWFkX2N0eCcgZnVuY3Rpb24uCgkqIGNyeXB0L21kNS5oOiBMaWtld2lzZS4KCgkqIGdycC90ZXN0Z3JwLmM6IERvbid0IHVzZSBwZXJyb3IgZm9yIGVycm9yIGNhc2VzIHNpbmNlIGdldGdyKiBhbmQKCWdldHB3KiBmdW5jdGlvbnMgZG8gbm90IHJldHVybiB1c2FibGUgZXJyb3IgY29kZXMuCgpTdW4gT2N0IDE5IDIzOjA1OjMyIDE5OTYgIEppbSBNZXllcmluZyAgPG1leWVyaW5nQGFzaWMuc2MudGkuY29tPgoKCSogY3J5cHQvbWQ1LmMgKG1kNV9wcm9jZXNzX2J5dGVzKTogVXNlZCBjYXN0aW5nIGZvciBwb2ludGVyCglhcml0aG1ldGljLgoKU3VuIE9jdCAyMCAwMzo1MzoyMyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN1bnJwYy9NYWtlZmlsZSAob3RoZXJzKTogUmVtb3ZlIHBvcnRtYXAgaGVyZSwgdG9vLgoKU2F0IE9jdCAxOSAxNzo0MjoyNCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGludGwvbG9jYWxlLmFsaWFzOiBMYW5ndWFnZSBmb3IgZW50cnkgYGN6ZWNoJyBpcyBgY3MnLgoKRnJpIE9jdCAxNyAxMzoyMDozNSAxOTk2ICBUaG9yc3RlbiBLdWt1ayAgPGt1a3VrQHdlYmVyLnVuaS1wYWRlcmJvcm4uZGU+CgoJKiBzdW5ycGMvZXRjLnJwYzogVXBkYXRlIGZyb20gdGktcnBjc3ZjIDIuMy4KCkZyaSBPY3QgMTggMjI6NTY6NDUgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdW5ycGMvTWFrZWZpbGUgKGluc3RhbGwtc2Jpbik6IFJlbW92ZSBwb3J0bWFwLiAgVGhpcyB2ZXJzaW9uIGlzCglidWdneSBhbmQgbW9yZSBjb21wZXRlbnQgcGVvcGxlIHdvcmsgb24gYSB1c2FibGUgdmVyc2lvbiB3aGljaCBpcwoJZGlzdHJpYnV0ZWQgc2VwYXJhdGVseS4KCSogc3VucnBjL3BvcnRtYXAuYzogUmVtb3ZlZC4KCVN1Z2dlc3RlZCBieSBUaG9yc3RlbiBLdWt1ay4KCkZyaSBPY3QgMTggMTI6MTc6MDkgMTk5NiAgRW5yaXF1ZSBNZWxlcm8gIDxqdXN0aW5lQGlwcm9saW5rLmNoPgoKCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19maW5pdGVsLmM6IENoYW5nZSBmdW5jdGlvbiBuYW1lIHRvCglgZmluaXRlbCcuCgpGcmkgT2N0IDE4IDAwOjAxOjEwIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RyaW5nL01ha2VmaWxlICh0ZXN0cyk6IEFkZCBzdHJhdGNsaWZmLgoJKiBzdHJpbmcvc3RyYXRjbGlmZi5jOiBOZXcgZmlsZS4gIFRlc3QgZm9yIHN0cmluZyBmdW5jdGlvbiBhdAoJdGhlIGVkZ2Ugb2YgdGhlIHVzYWJsZSBtZW1vcnkuCgpUaHUgT2N0IDE3IDIyOjEwOjE5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZXJ1bGVzICgkKGxpYmRpcikvbGliYy5zbyk6IEZpeCB0eXBvLgoKCSogZWxmL2xkZC5zaC5pbjogVGVzdCB3aGV0aGVyIGdpdmVuIGZpbGUgcmVhbGx5IGV4aXN0IGFuZCBnaXZlCgliZXR0ZXIgbWVzc2FnZSBpZiBpdCBpcyBub3QgYXZhaWxhYmxlLgoKVGh1IE9jdCAxNyAwNDoyNTozOCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9zaG1fYnVmLmg6IEFkZCBkZWZpbml0aW9uIGZvcgoJU0hNX1IgYW5kIFNITV9XLgoKVGh1IE9jdCAxNyAwMTo1NTozNCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN1bnJwYy9NYWtlZmlsZSAoJChvYmpwZngpcnBjc3ZjLyUuaCwgJChvYmpwZngpeCUuYyk6IFdyaXRlCglvdXRwdXQgdG8gJEBUIGFuZCBtb3ZlIHRvICRAIGxhdGVyIHNpbmNlIHRoZSBuZXcgcnBjZ2VuIHdpbGwgbm90CglvdmVyd3JpdGUgZXhpc3RpbmcgZmlsZXMuCgoJKiBwby9NYWtlZmlsZSAobGliYy5wb3QpOiBGaXggdHlwby4KClN1biBPY3QgMTMgMjA6NTI6MDcgMTk5NiAgVGhvcnN0ZW4gS3VrdWsgIDxrdWt1a0B3ZWJlci51bmktcGFkZXJib3JuLmRlPgoKCVVwZGF0ZSBycGNnZW4gcHJvZ3JhbSB0byBUSS1ycGMgY29kZS4KCSogc3VucnBjL01ha2VmaWxlIChycGNnZW4tb2Jqcyk6IEFkZCBycGNfdGJsb3V0Lm8gYW5kIHJwY19zYW1wbGUuby4KCShkaXN0cmlidXRlKTogQWRkIHByb3RvLmguCgkqIHN1bnJwYy9wcm90by5oOiBOZXcgZmlsZS4gIFByb3RvdHlwZXMgZm9yIGFsbCB0aGUgUlBDIGZ1bmN0aW9ucy4KCSogc3VucnBjL3JwY19jbG50b3V0LmM6IENoYW5nZSB0byBhbGxvdyBnZW5lcmF0aW9uIG9mIElTTyBDIGNvZGUuCgkqIHN1bnJwYy9ycGNfY291dC5jOiBMaWtld2lzZS4KCSogc3VucnBjL3JwY19ob3V0LmM6IExpa2V3aXNlLgoJKiBzdW5ycGMvcnBjX21haW4uYzogTGlrZXdpc2UuCgkqIHN1bnJwYy9ycGNfcGFyc2UuYzogTGlrZXdpc2UuCgkqIHN1bnJwYy9ycGNfcGFyc2UuaDogTGlrZXdpc2UuCgkqIHN1bnJwYy9ycGNfc2Nhbi5jOiBMaWtld2lzZS4KCSogc3VucnBjL3JwY19zY2FuLmg6IExpa2V3aXNlLgoJKiBzdW5ycGMvcnBjX3N2Y291dC5jOiBMaWtld2lzZS4KCSogc3VucnBjL3JwY191dGlsLmM6IExpa2V3aXNlLgoJKiBzdW5ycGMvcnBjX3V0aWwuaDogTGlrZXdpc2UuCgoJKiBzdW5ycGMvcnBjX3RibG91dC5jOiBOZXcgZmlsZS4KCSogc3VucnBjL3JwY19zYW1wbGUuYzogTGlrZXdpc2UuCgpUaHUgT2N0IDE3IDAwOjI2OjIwIDE5OTYgIE5JSUJFIFl1dGFrYSAgPGduaWliZUBtcmkuY28uanA+CgoJKiBzeXNkZXBzL3VuaXgvb3BlbmRpci5jOiBBZGQgc2VtaWNvbG9uIGZvciBjb25zaXN0ZW5jeS4KCldlZCBPY3QgMTYgMTI6MjY6NTMgMTk5NiAgU3ZlbiBWZXJkb29sYWVnZSAgPHNraW1vQGJyZXVnaGVsLnVmc2lhLmFjLmJlPgoKCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZWRlZi5jIChtYWluKTogVGVzdCB3aXRoIC0xIHRvIGZpbmQgb3V0Cgl3aGV0aGVyIHJlYWQgZmFpbGVkLgoKV2VkIE9jdCAxNiAxNDo1NDo1OSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvY2xvbmUuUzogVXNlIEpVTVBUQVJHRVQgYW5kCglQU0VVRE9fRU5EIG1hY3JvLgoKVHVlIE9jdCAxNSAyMToyNzo0MiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc2lnY29udGV4dC5oOiBSZW1vdmVkLgoKVHVlIE9jdCAxNSAxNTo1MjoyOSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvY2xvbmUuUzogQWRkIENBTExfTUNPVU5ULgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL21tYXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc2lncmV0dXJuLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3NvY2tldC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNkZXAuUyAoX19lcnJub19sb2NhdGlvbik6CglMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNjYWxsLlM6IExpa2V3aXNlLgoJQ29ycmVjdCBnZW5lcmF0aW9uIG9mIHN5c3RlbSBjYWxsLgoKVHVlIE9jdCAxNSAxNToxMzoxNiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2VydWxlcyAoc3lzZC1NYWtlZmlsZSk6IEZpeCBjb21tYW5kIHNvIHRoYXQgaXQgd29ya3MgaW4gdGhlCglzdWJkaXJlY3Rvcmllcy4KCShCVUlMRF9DRkxBR1MpOiBDaGFuZ2UgYmFjayB1c2luZyAkKC4uKSBpbnN0ZWFkIG9mCgkkKGNvbW1vbi1vYmpwZngpLCB0aGUgbGF0dGVyIGZhaWxzIGluIHRoZSB0b3BsZXZlbCBkaXJlY3Rvcnkgd2hlbgoJJChvYmpkaXIpIGlzIHJlbGF0aXZlLgoJKGNvbW1vbi1vYmpkaXItY29tcGlsZSk6IFJ1biBjb21waWxlciBpbiAkKG9iamRpcikuCgkqIHN5c2RlcHMvcG9zaXgvTWFrZWZpbGUgKG1rLXN0ZGlvbGltKTogTGlrZXdpc2UuCgpUdWUgT2N0IDE1IDIzOjM5OjQ4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RyaW5nL3N0cmluZy5oIFtfX1VTRV9TVklEXTogQWRkIHByb3RvdHlwZSBmb3Igc3dhYi4KCSogdGltZS9zeXMvdGltZS5oIFtfX1VTRV9CU0RdOiBBZGQgcHJvdG90eXBlIGZvciB1YWxhcm0uCglSZXBvcnRlZCBieSBBbmRyZWFzIEphZWdlci4KCglUaGUgYXZhaWxhYmxlIG5saXN0IGltcGxlbWVudGF0aW9uIGlzIG5vdCBnZW5lcmFsbHkgdXNhYmxlLgoJRXNwZWNpYWxseSBvbiB0aGUgY3VycmVudGx5IHN1cHBvcnRlZCBFTEYgc3lzdGVtcyB0aGUgbmxpc3QKCWZ1bmN0aW9uIGNvbWVzIHdpdGggdGhlIGxpYmVsZi4KCSogbWlzYy9NYWtlZmlsZSAoaGVhZGVycyk6IFJlbW92ZSBubGlzdC5oLgoJKHJvdXRpbmVzKTogUmVtb3ZlIG5saXN0LgoKCSogTWFrZWZpbGUgKCQob2JqcGZ4KXZlcnNpb24taW5mby5oKTogSW5jbHVkZSBpbmZvcm1hdGlvbiBhYm91dAoJc3lzdGVtIHRoZSBsaWJjIGlzIGJ1aWx0IG9uIGluIHZlcnNpb24taW5mby5oIGZpbGUuCgoJKiBwby9NYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IEFkZCBoZWFkZXIucG90LgoKVHVlIE9jdCAxNSAxNjozNDoxNSAxOTk2ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NsZWVwLmM6IEluY2x1ZGUgZmlsZSB3aXRoIHByb3RvdHlwZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvcmVib290LmM6IExpa2V3aXNlLgoJKiBtaXNjL2Vycm9yLmM6IExpa2V3aXNlLgoKVHVlIE9jdCAxNSAyMjo0MToyNyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3Q6IEFkZCB7Z2V0LHNldH1yZXN1aWQuCgpUdWUgT2N0IDE1IDA4OjA2OjAyIDE5OTYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogY3J5cHQvTWFrZWZpbGUgKHJwYXRoLWxpbmspOiBFeHRlbmQgc2VhcmNoIHBhdGggdG8gY3VycmVudCBkaXJlY3RvcnkuCgpGcmkgT2N0IDExIDA5OjE4OjA2IDE5OTYgIFN2ZW4gVmVyZG9vbGFlZ2UgIDxza2ltb0BicmV1Z2hlbC51ZnNpYS5hYy5iZT4KCgkqIHN5c2RlcHMvaTM4Ni9pNTg2L3N0cmxlbi5TOiBDb3JyZWN0IGhhbmRsaW5nIG9mIHByb2xvZyBmb3IKCWFsaWduaW5nIHBvaW50ZXIuCgpUdWUgT2N0IDE1IDAyOjEzOjIxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmM6IERvbid0IGRlY2xhcmUgX19mbG9ja2ZpbGUgYXMgd2Vhay4KCgkqIGNyeXB0L21kNS1jcnlwdC5jIChtZDVfY3J5cHRfcik6IEFkZCBjYXN0IHRvIHByZXZlbnQgd2FybmluZy4KClR1ZSBPY3QgMTUgMTQ6Mzc6NDAgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2ZjbnRsYml0cy5oIChPX0hVUkQpOiBBZGQgT19FWExPQ0sgYW5kCglPX1NITE9DSy4KClN1biBPY3QgMTMgMTk6MTY6MTAgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2RlcC5oIChQT1VORCk6IE1hY3JvIHJlbW92ZWQsCglyZXBsYWNlZCBieSBgJicuCgkoUFNFVURPX0VORCk6IFByb3ZpZGUgZGVmaW5pdGlvbiB0byB1c2UgLnNpemUgZGlyZWN0aXZlLgoJKFBTRVVETyk6IERvbid0IGludGVycHJldCBuZWdhdGl2ZSByZXR1cm4gdmFsdWVzIGxlc3MgdGhhbiAtMTI4IGFzCglzeXNjYWxsIGVycm9yLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2NhbGwuUyAoc3lzY2FsbCk6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9tNjhrL2JzZC1fc2V0am1wLlM6IFVzZSBQU0VVRE9fRU5EIG1hY3JvIHRvIHByb3ZpZGUKCS5zaXplIGRpcmVjdGl2ZS4KCSogc3lzZGVwcy9tNjhrL2JzZC1zZXRqbXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvY2xvbmUuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvbW1hcC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zaWdyZXR1cm4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc29ja2V0LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2NhbGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzZGVwLlM6IFVzZSBQU0VVRE9fRU5EIGluc3RlYWQgb2YKCWV4cGxpY2l0IC5zaXplIGRpcmVjdGl2ZS4KClN1biBPY3QgMTMgMjI6NTI6NTYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzaGxpYi12ZXJzaW9uczogQWRkIHZlcnNpb24gbnVtYmVyL25hbWUgZm9yIGxkLnNvLgoJKiBNYWtlY29uZmlnOiBNb3ZlIGRlZmluaXRpb24gb2YgcnRsZC1pbnN0YWxsZWQtbmFtZSBhZnRlcgoJaW5jbHVzaW9uIG9mIHNvdmVyc2lvbnMubWsuCglEb24ndCBhZGQgLiBiZWZvcmUgdmVyc2lvbiBudW1iZXIgZnJvbSBzaGxpYi12ZXJzaW9ucyBmaWxlIHdoZW4KCXdoZW4gbmFtZSBkb2VzIG5vdCBzdGFydCB3aXRoIGRpZ2l0LiAgVGhpcyBpcyBuZWVkZWQgZm9yIGxkLnNvLgoKU2F0IE9jdCAxMiAyMDozMTo1OCAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIGxpYmlvL2lvZ2V0cy5jOiBXYXJuIHdoZW4gZ2V0cyBpcyB1c2VkLgoJKiBzdGRpby9nZXRzLmM6IFN0cmVuZ3RoZW4gdGhlIHdhcm5pbmcuCgpTYXQgT2N0IDEyIDIzOjEwOjQzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbGliaW8vTWFrZWZpbGUgW19MSUJDX1JFRU5UUkFOVF0gKHJvdXRpbmVzKTogQWRkIHBlZWtjLgoJKiBsaWJpby9saWJpby5oOiBBZGQgcHJvdG90eXBlcyBmb3IgX0lPX2dldGMsIF9JT19wdXRjLCBfSU9fZmVvZiwKCV9JT19mZXJyb3IsIF9JT19wZWVrY19sb2NrZWQsIGFuZCBfSU9fZnRyeWxvY2tmaWxlLgoJUmVtb3ZlIHByb3RvdHlwZXMgZm9yIF9JT19nZXRjX2xvY2tlZCBhbmQgX0lPX3B1dGNfbG9ja2VkLgoJW19JT19NVFNBRkVfSU9dOiBBZGQgd2VhayBhbGlhc2VzIGZvciBfSU9fZmxvY2tmaWxlIGFuZAoJX0lPX2Z1bmxvY2tmaWxlLgoJWyEgX0lPX01UU0FGRV9JT106IERlZmluZSBfSU9fZnRyeWxvY2tmaWxlIGFzIGVtcHR5LgoJRGVmaW5lIF9JT19nZXRjLCBfSU9fcGVla2MsIF9JT19wdXRjLCBfSU9fZmVvZiwgX0lPX2ZlcnJvciB0bwoJYXBwcm9wcmlhdGUgdmFsdWVzIGFjY29yZGluZyB0byBfX1VTRV9SRUVOVFJBTlQuCgkqIGxpYmlvL3N0ZGlvLmg6IEFkZCBwcm90b3R5cGUgZm9yIGZ0cnlsb2NrZmlsZS4KCVshX0xJQkNdOiBEZWZpbmUgZ2V0Y19sb2NrZWQsIGdldGNoYXJfbG9ja2VkLCBwdXRjaGFyX2xvY2tlZCwKCWdldGMsIGdldGNoYXIsIHB1dGMsIGFuZCBwdXRjaGFyIHVzaW5nIF9JT18qIG5hbWVzLgoJKiBsaWJpby9mZW9mLmM6IFJlbmFtZSB0byBfSU9fZmVvZiBhbmQgbWFrZSBmZW9mIHdlYWsgYWxpYXMuCgkqIGxpYmlvL2ZlcnJvci5jOiBSZW5hbWUgdG8gX0lPX2ZlcnJvciBhbmQgbWFrZSBmZXJyb3Igd2VhayBhbGlhcy4KCSogbGliaW8vZ2V0Yy5jOiBSZW5hbWUgdG8gX0lPX2dldGMgYW5kIG1ha2UgZ2V0YyB3ZWFrIGFsaWFzLgoJKiBsaWJpby9wdXRjLmM6IFJlbmFtZSB0byBfSU9fcHV0YyBhbmQgbWFrZSBwdXRjIHdlYWsgYWxpYXMuCgkqIGxpYmlvL3B1dGNfdS5jOiBEb24ndCBkZWZpbmUgYWxpYXMgX0lPX3B1dGNfdW5sb2NrZWQuCgkqIGxpYmlvL3BlZWtjLmM6IE5ldyBmaWxlLgoKCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmMgKHZmcHJpbnRmKTogVW5jb25kaXRpb25hbGx5IGNhbGwKCV9fZmxvY2tmaWxlLgoKCSogc3lzZGVwcy9zdHViL2xvY2ZpbGUuYyBbVVNFX0lOX0xJQklPXTogQWxzbyBkZWZpbmUgX0lPXyogbmFtZXMuCgoJKiBjcnlwdC9NYWtlZmlsZSAodGVzdHMpOiBBZGQgbWQ1dGVzdCBhbmQgbWQ1Yy10ZXN0LgoJKiBjcnlwdC9tZDUtY3J5cHQuYzogQ29ycmVjdCB2YXJpb3VzIGVycm9yLiAgTm93IG1kNV9wcm9jZXNzX2J5dGVzCglpcyBjYWxsZWQsIHRoZSBidWZmZXIgbGltaXQgaXMgaG9ub3VyZWQgYW5kIGEgbG9vcCBpbiBhIGlubmVyCglsb29wIGlzIGNvcnJlY3RlZC4KCSogY3J5cHQvbWQ1LmggKHN0cnVjdCBtZDVfY3R4KTogQWRkIG5ldyBmaWVsZHMuCglBZGQgcHJvdG90eXBlcyBmb3IgbmV3IGZ1bmN0aW9ucy4KCSogY3J5cHQvbWQ1LmMgKG1kNV9pbml0X2N0eCk6IEluaXRpYWxpemUgbmV3IGZpZWxkcy4KCShtZDVfZmluaXNoX2N0eCk6IE5ldyBmdW5jdGlvbi4gIExpa2UgbWQ1X3JlYWRfY3R4IGJ1dCBiZWZvcmUKCXBlcmZvcm0gY29ycmVjdCBmaW5hbGl6YXRpb24uCgkobWQ1X3Byb2Nlc3NfYnl0ZXMpOiBOZXcgZnVuY3Rpb24uICBTaW1pbGFyIHRvIG1kNV9wcm9jZXNfYmxvY2ssCglidXQgZG9lcyBub3QgcmVxdWlyZSBpbnB1dCBzaXplIHRvIGJlIG11bHRpcGxlIG9mIDY0LgoJKG1kNV9zdHJlYW0pOiBSZXdyaXRlIHVzaW5nIG1kNV9wcm9jZXNzX2J5dGVzIGFuZCBtZDVfZmluaXNoX2N0eC4KCShtZDVfYnVmZmVyKTogTGlrZXdpc2UuCgkobWQ1X3Byb2Nlc3NfYmxvY2spOiBDb3VudCBudW1iZXIgb2YgYnl0ZXMuCgkqIGNyeXB0L21kNXRlc3QuYzogTmV3IGZpbGUuICBUZXN0IHByb2dyYW0gZm9yIE1ENSBmdW5jdGlvbnMuCgkqIGNyeXB0L21kNWMtdGVzdC5jOiBOZXcgZmlsZTogIFRlc3QgcHJvZ3JhbSBmb3IgTUQ1IGNyeXB0CglmdW5jdGlvbi4KCgkqIHBvL2ZyLnBvOiBVcGRhdGUuCgoJKiB0aW1lL3N0cnB0aW1lLmM6IFJlY29nbml6ZSAlcywgJXUsICVnLCBhbmQgJUcgZm9ybWF0LgoKCSogcG9zaXgvZ2V0b3B0LmM6IEFkZCBzb21lIG1vcmUgY2FzdHMgYW5kIGluaXRpYWxpemF0aW9ucyB0bwoJcHJldmVudCB3YXJuaW5ncy4KClNhdCBPY3QgMTIgMTY6MTU6MjkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zcGVlZC5jIChzcGVlZHMpOiBSZW1vdmVkLiAgV2UgcHJvdmlkZQoJYW4gZXh0cmEgZnVuY3Rpb24gdG8gcHJvdmlkZSB0aGlzIGZ1bmN0aW9uYWxpdHkuCgkoY2ZnZXRvc3BlZWQpOiBTaW1wbHkgcmV0dXJuIG1hc2tlZCB2YWx1ZS4KCShjZnNldG9zcGVlZCk6IERvbid0IHVzZSBzcGVlZHMgYXJyYXkgYW5kIHNvIHdlIGNhbiBzaW1wbHkgdGVzdAoJdGhlIHZhbHVlIG9mIFNQRUVEIGZvciBpbGxlZ2FsIHZhbHVlcy4KCSogdGVybWlvcy9jZnNldHNwZWVkLmM6IFJld3JpdGUuICBXZSBjb252ZXJ0IGhlcmUgYmV0d2VlbiB0aGUKCXJlYWwgdmFsdWVzIGFuZCB0aGUgQiogY29uc3RhbnRzLgoJQ2hhbmdlcyBzdWdnZXN0ZWQgYnkgVXdlIE9oc2UgPHV3ZUB0aXJrYS5ndW4uZGU+LgoKRnJpIE9jdCAxMSAyMTo0NTozNCAxOTk2ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIGxvY2FsZS9wcm9ncmFtcy94c3RyZHVwLmM6IERlZmluZSBwcm90b3R5cGVzLgoJKiBsb2NhbGUvcHJvZ3JhbXMveG1hbGxvYy5jOiBMaWtld2lzZS4KCgkqIHN0ZGlvLWNvbW1vbi94YnVnLmMgKG1haW4pOiBDaGFuZ2UgZGVmaW5pdGlvbiB0byBhdm9pZCB3YXJuaW5nLgoKRnJpIE9jdCAxMSAyMzozNjozMSAxOTk2ICBNaWxlcyBCYWRlciAgPG1pbGVzQGdudS5haS5taXQuZWR1PgoKCSogZGIvaGFzaC9oYXNoLmMgKF9faGFzaF9vcGVuKTogQ29ycmVjdGx5IHRlc3QgZm9yIGEgcmVhZC13cml0ZSBkYi4KCkZyaSBPY3QgMTEgMTk6MTM6MzQgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBsb2NhbGUvTWFrZWZpbGUgKENQUEZMQUdTKTogU2V0IENIQVJNQVBfUEFUSCB0bwoJIiQoaTE4bmRpcikvY2hhcm1hcHMiLgoKRnJpIE9jdCAxMSAyMjoxMjo0MSAxOTk2ICBOSUlCRSBZdXRha2EgIDxnbmlpYmVAbXJpLmNvLmpwPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3Byb2Nmcy5oOiBJbmNsdWRlIDxhc20vdXNlci5oPgoJdG8gZ2V0IGRlZmluaXRpb24gb2YgRlBVIGRlc2NyaXB0aW9uIHN0cnVjdC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIFskKHN1YmRpcik9c29ja2V0XSAoc3ViZGlyX2hlYWRlcnMpOgoJQWRkIG5ldC9pZi5oLCBuZXQvaWZfcHBwLmgsIG5ldC9wcHAtY29tcC5oLCBuZXQvcHBwX2RlZnMuaCwKCW5ldC9pZl9hcnAuaCwgYW5kIG5ldC9yb3V0ZS5oLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXQvaWZfYXJwLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXQvcm91dGUuaDogTmV3IGZpbGUuCgpGcmkgT2N0IDExIDE0OjQ5OjEzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9zdHViL3JlYWRkaXJfci5jOiBOZXcgZmlsZS4gIFdlIG5lZWQgYSBzdHViIHZlcnNpb24uCgkqIHN5c2RlcHMvc3R1Yi9lX2Fjb3NsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZV9hc2lubC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2VfYXRhbjJsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZV9leHBsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZV9mbW9kbC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2VfbG9nMTBsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZV9sb2dsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZV9zcXJ0bC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NfYXRhbmwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zX2xvZzFwbC5jOiBMaWtld2lzZS4KCgkqIE1ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIG5zc3dpdGNoLmggYW5kIG5ldGdyb3VwLmguCgoJKiBuc3MvTWFrZWZpbGUgKGdlbmVyYXRlZCk6IGRiLW5ldGdycC5jIGlzIG5vdCBnZW5lcmF0ZWQuCgoJKiBzeXNkZXBzL2FscGhhL0Rpc3Q6IEFkZCBzdHhjcHkuUyBhbmQgc3R4bmNweS5TLgoKCSogTWFrZS1kaXN0ICgrb3V0KTogQWRkICQoZG9udF9kaXN0cmlidXRlKS4KCkZyaSBPY3QgMTEgMDA6Mjc6MTggMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzdGRpby1jb21tb24vTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIHRtcG5hbV9yLgoKRnJpIE9jdCAxMSAwNTozMjo1MSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHZlcnNpb24uaDogQnVtcCB2ZXJzaW9uIHRvIDEuOTYuCgpGcmkgT2N0IDExIDE4OjEzOjQ3IDE5OTYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogc3RkaW8tY29tbW9uL3RzdC1wcmludGYuYzogU29tZSBtb3JlIGNsZWFudXBzLgoKRnJpIE9jdCAxMSAwMjo0ODowMiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHJlc29sdi9hcnBhL25hbWVzZXIuaDogVXBkYXRlIGZyb20gYmluZC00LjkuNS1UNkIuCgkqIHJlc29sdi9yZXNvbHYuaDogTGlrZXdpc2UuCgkqIHJlc29sdi9nZXRobmFtYWRkci5jOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19jb21wLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX2RlYnVnLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX2luaXQuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9yZXNfc2VuZC5jOiBMaWtld2lzZS4KCSogcmVzb2x2L0Jhbm5lcjogVXBkYXRlIHZlcnNpb24gbnVtYmVyLgoKCSogbnNzL25zc19kbnMvZG5zLWhvc3QuYzogVXBkYXRlIGFjY29yZGluZyB0byBjaGFuZ2UgaW4KCXJlc29sdi9nZXRobmFtYWRkci5jLgoKRnJpIE9jdCAxMCAyMDo1MjoyOCAxOTk2ICBSYWxwaCBMb2FkZXIgIDxsb2FkZXJAbWF0aHMub3guYWMudWs+CgoJKiBjcnlwdC9tZDUuYyAobWQ1X3N0cmVhbSk6IFdoZW4gcmVhZGluZyB0aGUgYmxvY2sgaW4gc2V2ZXJhbAoJcGllY2VzIGFwcGVuZCB0byBpbnN0ZWFkIG9mIHJlcGxhY2UgcHJldmlvdXNseSByZWFkIGRhdGEuCgpUaHUgT2N0IDEwIDE1OjUzOjE3IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogc3lzZGVwcy9hbHBoYS9zdHhjcHkuUyAoJHVuYWxpZ25lZCk6IEluIHNpbmdsZSB3b3JkIGNvcHksIGNvcnJlY3QKCWxhc3QtYnl0ZS13cml0dGVuIGJpdCBmb3Igc291cmNlIHdvcmQgbWlzYWxpZ25tZW50LgoJKiBzeXNkZXBzL2FscGhhL3N0cmNoci5jOiBSZW1vdmVkLiAgVGhlcmUgaXMgbm93IGFuIGFzc2VtYmxlcgoJdmVyc2lvbi4KClRodSBPY3QgMTAgMTc6MTc6MjMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdW5ycGMvTWFrZWZpbGUgKHJwY3N2Yyk6IFJlbW92ZSB5cC54LiAgVGhlIGNvcnJlY3RlZCB2ZXJzaW9uCgljb21lcyB3aXRoIGdsaWJjLW5pcy4KCSogc3VucnBjL3JwY3N2Yy95cC54OiBSZW1vdmVkLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1uZXRnci5jIChfbnNzX25ldGdyb3VwX3BhcnNlbGluZSk6IFRlc3QKCWZvciAqQ1VSU09SIHRvIGJlIE5VTEwgYW5kIGR1bXAgYSBjb3JlIGlmIHllcy4KClRodSBPY3QgIDkgMjA6MDk6NTMgMTk5NiAgTWF0dGhldyBKYWNvYiAgPG1qYWNvYkBmZXJhbC5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9icmsuUzogRGVmaW5lIF9FUlJOT19IIGJlZm9yZQoJaW5jbHVkaW5nIDxlcnJub3MuaD4gdG8gZ2V0IGVycm9yIG51bWJlcnMuCgpUaHUgT2N0IDEwIDE0OjAwOjAxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zaWdjb250ZXh0Lmg6IE1vdmVkIGZpbGUuLi4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2lnY29udGV4dC5oOiAuLi50byBoZXJlLiAgU28gdGhlCglBbHBoYSBwZW9wbGUgZmluZCBhIGNvcnJlY3QgZmlsZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19jYWJzLmM6IFdlIGNhbm5vdCBtYWtlIF9fY2Fic2wgc2ltcGx5CglhbiBhbGlhcyBvZiBfX2NhYnMgc2luY2UgdGhlIHN0cnVjdHVyZXMgaGF2ZSBkaWZmZXJlbnQgbmFtZXMuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfbG9nMTAuYzogRml4IHR5cG8gaW4gd2Vha19hbGlhcy4KCVJlcG9ydGVkIGJ5IE1hdHRoZXcgSmFjb2IgPG1qYWNvYkBmZXJhbC5jb20+LgoKV2VkIE9jdCAgOSAwMDoyNDo1MiAxOTk2ICBKaW0gTWV5ZXJpbmcgIDxtZXllcmluZ0Bhc2ljLnNjLnRpLmNvbT4KCgkqIHRpbWUvc3RyZnRpbWUuYzogQWxsb3cgb2xkIEsmUiBjb21waWxlcnMgY29tcGlsZSB0aGlzIGZpbGUuCgpXZWQgT2N0ICA5IDEyOjAzOjU2IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogcG9zaXgvZXhlY2xwLmM6IEFkZCBmaXJzdCBhcmd1bWVudCBwYXJhbWV0ZXIgdG8gYmUgY29tcGxpYW50Cgl3aXRoIFBPU0lYLiAgUmVhcnJhbmdlIGJvZHkgdG8gc3RhcnQgdmFyYXJnIGNvdW50ZXIgYWZ0ZXIKCXRoaXMgbmV3IGFyZ3VtZW50LgoKV2VkIE9jdCAgOSAwNDozNDo1MCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9wcm9jZnMuaDogUmV3cml0ZS4gIFdlIGNhbm5vdCB1c2UKCXNpbXBseSBhIHdyYXBwZXIgYXJvdW5kIHRoZSA8bGludXgvZWxmY29yZS5oPiBmaWxlIHNpbmNlIHRoZQoJa2VybmVsIGhlYWRlciBpcyBub3QgY2xlYW4gZW5vdWdoLiAgV2UgcHJvdmlkZSB0aGUgZGVmaW5pdGlvbnMKCWluIHRoaXMgZmlsZSBpbnN0ZWFkLgoKV2VkIE9jdCAgOSAwMTo0MzoxOCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dldGhvc3RpZC5jIChzZXRob3N0aWQpOiBBdm9pZAoJZ2V0P2lkIGNhbGxzIGJ5IHVzaW5nIF9fbGliY19lbmFibGVfc2VjdXJlLgoKV2VkIE9jdCAgOSAwMDozMDozMyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGluZXQvZ2V0bmV0Z3JlbnRfci5jOiBDb3JyZWN0IG5ldGdyb3VwIGltcGxlbWVudGF0aW9uLiAgQQoJc3BlY2lmaWNhdGlvbiBvZiBhIG5ldGdyb3VwIGNhbiBhbHNvIG5hbWUgYW5vdGhlciBuZXRncm91cC4KCSogbnNzL25zc19maWxlcy9maWxlcy1uZXRncnAuYzogTGlrZXdpc2UuCgkqIGluZXQvbmV0Z3JvdXAuaDogQWRkIGZpZWxkcyB0byBob2xkIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uCgpUdWUgT2N0ICA4IDIxOjUxOjE0IDE5OTYgIEFybm9sZCBELiBSb2JiaW5zICA8YXJub2xkQHNrZWV2ZS5hdGwuZ2EudXM+CgoJKiBwb3NpeC9nZXRvcHQuYzogSW1wbGVtZW50IFBPU0lYIC1XIG9wdGlvbiBoYW5kbGluZy4gIFdoZW4gdGhlCglvcHRpb24gc3RyaW5nIGNvbnRhaW5zICJXOyIgLVcgZm9vIGlzIGhhbmRsZWQgbGlrZSAtLWZvby4KClR1ZSBPY3QgIDggMTI6Mjc6MjYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L2Nsb25lLlM6IERlZmluZSBfRVJSTk9fSCBiZWZvcmUKCWluY2x1c2luZyA8ZXJybm9zLmg+IHNvIHdlIHJlYWxseSBnZXQgZXJyb3Igc3ltYm9scyBkZWZpbmVkLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL2Nsb25lLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9jbG9uZS5TOiBMaWtld2lzZS4KCgkqIHN1bnJwYy9hdXRoX3VuaXguYyAoYXV0aHVuaXhfY3JlYXRlX2RlZmF1bHQpOiBEb24ndCB1c2UgZml4ZWQKCXNpemUgYXJyYXkgZm9yIGdldGdyb3VwcyBjYWxsLiAgSW5zdGVhZCBnZXQgbWF4aW1hbCBudW1iZXIgdmlhCglzeXNjb25mLiAgQnV0IGRpc2NhcmQgbGlzdCB0byBOR1JQUyBlbGVtZW50cyBiZWZvcmUgY2FsbGluZyBYRFIKCWZ1bmN0aW9uIHNpbmNlIFN1bidzIGNvZGUgY2Fubm90IGhhbmRsZSBsb25nZXIgbGlzdHMuCglCYXNlZCBvbiBhIHBhdGNoIGJ5IFRob3JzdGVuIEt1a3VrIDxrdWt1a0B3ZWJlci51bmktcGFkZXJib3JuLmRlPi4KCgkqIHN5c2RlcHMvc3R1Yi9lX2owbC5jOiBEZWZpbmUgeTBsIGFzIHdlbGwuCgkqIHN5c2RlcHMvc3R1Yi9lX2oxbC5jOiBEZWZpbmUgeTFsIGFzIHdlbGwuCgkqIHN5c2RlcHMvc3R1Yi9lX2pubC5jOiBEZWZpbmUgeW5sIGFzIHdlbGwuCgoJKiBwb3NpeC91bmlzdGQuaDogQ29ycmVjdCBwcm90b3R5cGUgZm9yIGV4ZWNscC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Bvc2l4X29wdC5oOiBEZWZpbmUgX1BPU0lYX05PX1RSVU5DLgoKTW9uIE9jdCAgNyAyMjoxODowMyAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2Vjb25maWcgKHN5c2RlcC1saWJyYXJ5LXBhdGgpOiBOZXcgdmFyaWFibGUuCgkoYnVpbHQtcHJvZ3JhbS1jbWQpOiBVc2UgaXQgaGVyZSB0byBwcm9wZXJseSBidWlsZCBhIGNvbG9uCglzZXBhcmF0ZWQgbGlicmFyeSBwYXRoLgoKTW9uIE9jdCAgNyAyMjoxMTo1NSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGNyeXB0L21kNS1jcnlwdC5jIChtZDVfY3J5cHRfcik6IEFkZCBtaXNzaW5nIHBhcmVucyBhcm91bmQgJgoJd2l0aGluIGNvbXBhcmlzb24uICBGaXggY29tbWVudHMuCgkobWQ1X2NyeXB0KTogRml4IGNvbW1lbnQuCgpUdWUgT2N0ICA4IDA1OjEwOjQ5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZXJybm9zLmg6IE9ubHkgaW5jbHVkZSA8bGludXgvZXJybm9zLmg+Cgl3aGVuIF9FUlJOT19IIGlzIGRlZmluZWQuCglbIV9FUlJOT19IICYmIF9fbmVlZF9FbWF0aF06IERlZmluZSB2YWx1ZSBmb3IgRURPTSBhbmQgRVJBTkdFLgoJU2hvdWxkIHRoZXJlIGV2ZXIgYmUgYSBMaW51eCBwb3J0IHdoZXJlIHRoZSBudW1lcmljIHZhbHVlcyBhcmUKCW5vdCAzMyBhbmQgMzQgdGhpcyBmaWxlIG11c3QgY2hhbmdlLgoKTW9uIE9jdCAgNyAxMzo1NDowNCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxpYmlvL2lvZmdldHMuYyAoX0lPX2ZnZXRzKTogVXNlIF9JT19mbG9ja2ZpbGUgaW5zdGVhZCBvZgoJX19mbG9ja2ZpbGUuCgpNb24gT2N0ICA3IDExOjAxOjQ1IDE5OTYgIEFuZHJlYXMgSmFlZ2VyICA8YWpAYXJ0aHVyLnBmYWx6LmRlPgoKCSogc3RyaW5nL3RzdC1zdHJsZW4uYyAobWFpbik6IFByb3ZpZGUgcHJvdG90eXBlLgoJKiBtYWxsb2MvbWFsbG9jYnVnLmM6IExpa2V3aXNlLgoJKiBpby90ZXN0LXV0aW1lLmM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9nZW5lcmljL2NyeXB0LWVudHJ5LmM6IENvcnJlY3QgdHlwby4KCk1vbiBPY3QgIDcgMTM6NDI6MjAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBlbGYvZGwtb3Blbi5jIChfZGxfb3Blbik6IENoZWNrIGFnYWluc3QgX2RsX3N5c2RlcF9zdGFydCB0bwoJdGVzdCBmb3IgbGliYy5hLiAgQ2hlY2tpbmcgX0RZTkFNSUMgaXMgb2Ygbm8gd29ydGggaGVyZS4KCVN1Z2dlc3RlZCBieSBBbmRyZWFzIFNjaHdhYiA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPi4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcGFyc2UuYzogRGVmaW5lIExPT0tVUF9OQU1FIGV2ZW4gaWYKCUVYVEVSTl9QQVJTRVIgaXMgZGVmaW5lZC4KClNhdCBPY3QgIDUgMTc6MDU6MzYgMTk5NiAgQW5kcmVhcyBKYWVnZXIgIDxhakBhcnRodXIucGZhbHouZGU+CgoJKiBSdWxlcyAoZGVwLWR1bW15LWxpYik6IENvcnJlY3QgcHJvdG90eXBlIGZvciBfX2R1bW15X18uCgoJKiBjcnlwdC9tZDUtY3J5cHQuYzogRml4IHR5cG9zIGluIGNvbW1lbnRzLgoKCSogZ21vbi9nbW9uLmM6IFByb3ZpZGUgcHJvdG90eXBlcy4KCSogZGIvbWFrZWRiLmM6IExpa2V3aXNlLgoJKiBsb2NhbGUvcHJvZ3JhbXMveG1hbGxvYy5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL2J1ZzExLmMgKG1haW4pOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL2J1ZzcuYyAobWFpbik6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vYnVnOC5jIChtYWluKTogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi9idWc5LmMgKG1haW4pOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3NjYW5mMS5jIChtYWluKTogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi9zY2FuZjIuYyAobWFpbik6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vc2NhbmY1LmMgKG1haW4pOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3NjYW5mNi5jIChtYWluKTogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi9zY2FuZjcuYyAobWFpbik6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vc2NhbmY4LmMgKG1haW4pOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3RlbXB0ZXN0LmMgKG1haW4pOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3Rlc3QtZndyaXRlLmMgKG1haW4pOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3RzdC1wcmludGYuYzogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi90c3RkaW9taXNjLmM6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vdHN0Z2V0bG4uYyAobWFpbik6IExpa2V3aXNlLgoJKiBzdGRsaWIvdGVzdG1iLmMgKG1haW4pOiBMaWtld2lzZS4KCgkqIHN0ZGlvLWNvbW1vbi9zY2FuZjQuYyAobWFpbik6IENvcnJlY3QgcHJvdG90eXBlLCByZW1vdmUgdW51c2VkCgl2YXJpYWJsZSBuLgoKCSogc3RkaW8tY29tbW9uL3NjYW5mMy5jIChtYWluKTogQ29ycmVjdCBwcm90b3R5cGUsIGNoYW5nZQoJZGVjbGFyYXRpb24gb2YgcyB0byByZWR1Y2Ugd2FybmluZ3MuCgkqIHN0ZGlvLWNvbW1vbi9idWcxMC5jIChtYWluKTogTGlrZXdpc2UuCgoJKiBzdGRpby1jb21tb24vdGZmb3JtYXQuYzogUHJvdmlkZSBwcm90b3R5cGUsIHJlbW92ZSB1bnVzZWQKCXJlZmVyZW5jZSB0byBkdW1wX3N0YXRzLCBhZGQgYnJhY2VzIGluIHNwcmludF9kb3VibGVzLgoJKiBzdGRpby1jb21tb24vdGlmb3JtYXQuYzogTGlrZXdpc2UuCgoJKiBzdGRpby1jb21tb24vdGVzdF9yZHdyLmMgKG1haW4pOiBQYXJhbWV0ZXIgYHdoZXJlJyBpcyBsb25nIGluCglwcmludGYgY2FsbC4KCk1vbiBPY3QgIDcgMTQ6MDQ6MjYgMTk5NiAgTklJQkUgWXV0YWthICA8Z25paWJlQG1yaS5jby5qcD4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9zb3VuZGNhcmQuaDogRml4IHR5cG8uCgoJKiBzaGFkb3cvcHV0c3BlbnQuYzogRG9uJ3Qgd3JpdGUgY29sb24gYWZ0ZXIgZmxhZyBmaWVsZC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L25ldC9pZl9wcHAuaDogTmV3IGZpbGUuICBXcmFwcGVyIGFyb3VuZAoJa2VybmVsIGhlYWRlci4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0L3BwcC1jb21wLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXQvcHBwX2RlZnMuaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L0Rpc3Q6IE1lbnRpb24gbmV3IGZpbGVzLgoKTW9uIE9jdCAgNyAwMDo1ODoxOSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvaTM4Ni9pNTg2L3N0cmNoci5TOiBDb3JyZWN0IGhhbmRsaW5nIG9mIGZpcnN0IGJ5dGVzIHRvCglnZXQgcG9pbnRlciBhbGlnbmVkLiAgUmVwb3J0ZWQgYnkgTWF0dGhpYXMgVXJsaWNocyA8c211cmZAbm9yaXMuZGU+LgoKCSogc3lzZGVwcy9wb3NpeC9ldWlkYWNjZXNzLmMgW19MSUJDXTogQXZvaWQgY2FsbGluZyBnZXQ/aWQgZnVuY3Rpb25zCglieSB1c2luZyBfX2xpYmNfZW5hYmxlX3NlY3VyZSB2YXJpYWJsZS4KClR1ZSBPY3QgIDggMTM6NTg6MzEgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIGh1cmQvcG9ydHMtZ2V0LmMgKF9odXJkX3BvcnRzX2dldCk6IElmIHRoZSByZXF1ZXN0ZWQgcG9ydCBpcwoJbnVsbCwgZG9uJ3QgYXR0ZW1wdCBtYWNoX3BvcnRfbW9kX3JlZnMuCgpNb24gT2N0ICA3IDE0OjUxOjUyIDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC9waXBlc3RyZWFtLmM6IE5ldyBmaWxlIHRvIGF2b2lkIHVzZSBvZgoJc3lzZGVwcy91bml4L3BpcGVzdHJlYW0uYy4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3JlYWRkaXJfci5jOiBOZXcgZmlsZSwgZ3V0cyBjb3BpZWQgZW50aXJlbHkKCWZyb20gc3lzZGVwcy9tYWNoL2h1cmQvcmVhZGRpci5jLgoKCSogc3RkaW8vZnJlb3Blbi5jOiBDb21wbGV0ZSBkZS1hbnNpZGVjbGlmaWNhdGlvbi4KCSogc3RkaW8vZmdldHMuYyAoZmdldHMpOiBMaWtld2lzZS4KCSogc3RkaW8vZ2V0ZGVsaW0uYyAoX19nZXRkZWxpbSk6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3BpcGVzdHJlYW0uYyAocmVhZGRlY2wsIHdyaXRlZGVjbCwgc2Vla2RlY2wsCglwb3Blbik6CglMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC90Y2Zsb3cuYyAodGNmbG93KTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2QvdGNmbHVzaC5jICh0Y2ZsdXNoKTogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL21hY2gvaHVyZC93YWl0NC5jIChfX3dhaXQ0KTogQWxsb3cgYSBudWxsIHZhbHVlIGZvcgoJU1RBVF9MT0Mgd2l0aG91dCBlcnJvci4KClN1biBPY3QgIDYgMDI6MDU6NTIgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBwb3NpeC9nZXRvcHQuYzogQWRkIGNhc3RzIHRvIHByZXZlbnQgd2FybmluZ3MuCgkqIHBvc2l4L3JlZ2V4LmM6IExpa2V3aXNlLgoKCSogbWF0aC9NYWtlZmlsZSAobG9uZy1tLXJvdXRpbmVzLCBsb25nLW0teWVzKTogRGVmaW5lIHRvIGNvcnJlY3QKCXZhbHVlcyB0byBtYWtlIGBsb25nIGRvdWJsZScgZnVuY3Rpb25zIGF2YWlsYWJsZS4KCShkaXN0cmlidXRlKTogQWRkICQobG9uZy1tLXllczo9LmMpLgoKCSogc3lzZGVwcy9saWJtLWkzODcvc19jb3B5c2lnbmwuUzogQ29ycmVjdCBsb2FkaW5nIG9mIHJldHVybiB2YWx1ZS4KCVVzZSBsb25nIGRvdWJsZSBpbnN0cnVjdGlvbi4KCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L2VfYXRhbmhsLmMgKGh1Z2UpOiBDb3JyZWN0IGNvbnN0YW50LgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX2FzaW5obC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc190YW5obC5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L2VfY29zaGwuYzogTmV3IGZpbGUuCgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2FzaW5oLmMgWyFOT19MT05HX0RPVUJMRV06IERlZmluZSBuYW1lcwoJZm9yIGBsb25nIGRvdWJsZScgdmVyc2lvbiBhcyBhbGlhcy4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19hdGFuLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2NicnQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfY2VpbC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19jb3B5c2lnbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19jb3MuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfZXJmLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2V4cG0xLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2ZhYnMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfZmluaXRlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2Zsb29yLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2ZyZXhwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2lsb2diLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2xkZXhwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2xvZzFwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2xvZ2IuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfbW9kZi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19uZXh0YWZ0ZXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfcmludC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19zY2FsYm4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3Nfc2lnbmlmaWNhbmQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3Nfc2luLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX3Rhbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc190YW5oLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X2Fjb3MuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfYWNvc2guYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfc2luLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X2F0YW4yLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X2F0YW5oLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X2NhYnMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfY29zaC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19kcmVtLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X2V4cC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19mbW9kLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X2dhbW1hLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X2dhbW1hX3IuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfaHlwb3QuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfajAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfajEuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfam4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfbGdhbW1hLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X2xnYW1tYV9yLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X2xvZy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19sb2cxMC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvd19wb3cuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfcmVtYWluZGVyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X3NjYWxiLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X3NpbmguYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfc3FydC5jOiBMaWtld2lzZS4KCglTdHViIGZpbGVzIGZvciBtaXNzaW5nIGxvbmcgZG91YmxlIG1hdGggZnVuY3Rpb25zLgoJKiBzeXNkZXBzL3N0dWIvZV9hY29zaGwuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvc3R1Yi9lX2h5cG90bC5jOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9zdHViL2VfajBsLmM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3N0dWIvZV9qMWwuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvc3R1Yi9lX2pubC5jOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9zdHViL2VfbGdhbW1hbF9yLmM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3N0dWIvZV9wb3dsLmM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3N0dWIvZV9yZW1fcGlvMmwuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvc3R1Yi9lX3NpbmhsLmM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3N0dWIva19jb3NsLmM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3N0dWIva19yZW1fcGlvMmwuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvc3R1Yi9rX3NpbmwuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvc3R1Yi9rX3RhbmwuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvc3R1Yi9zX2VyZmwuYzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvc3R1Yi9zX2V4cG0xbC5jOiBOZXcgZmlsZS4KCgkqIHN5c2RlcHMvaTM4Ni9fX2xvbmdqbXAuUzogVXNlIFBTRVVET19FTkQgbWFjcm8gdG8gcHJvdmlkZQoJLnNpemUgZGlyZWN0aXZlLgoJKiBzeXNkZXBzL2kzODYvYnNkLV9zZXRqbXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9ic2Qtc2V0am1wLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvbWVtY2hyLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvbWVtY21wLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc2V0am1wLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc3RwY3B5LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc3RwbmNweS5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L3N0cmNoci5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L3N0cmNzcG4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9zdHJwYnJrLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvc3RycmNoci5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L3N0cnNwbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L3N0cnRvay5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L2k0ODYvc3RyY2F0LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvaTQ4Ni9zdHJsZW4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9pNTg2L21lbXNldC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L2k1ODYvc3RyY2hyLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvaTU4Ni9zdHJsZW4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfYWNvcy5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9hY29zbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9hc2luLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2FzaW5sLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2F0YW4yLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2F0YW4ybC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9leHAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfZXhwbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9mbW9kLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2Ztb2RsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX2xvZy5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2cxMC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9sb2cxMGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfbG9nbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9yZW1haW5kZXIuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L2VfcmVtYWluZGVyZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9yZW1haW5kZXJsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3NjYWxiLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3NjYWxibC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvZV9zcXJ0LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3NxcnRmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9lX3NxcnRsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2F0YW4uUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfYXRhbmYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfYXRhbmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY2VpbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jZWlsZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jZWlsbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jb3B5c2lnbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jb3B5c2lnbmYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfY29weXNpZ25sLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Nvcy5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19jb3NmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Nvc2wuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfZmluaXRlLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2Zpbml0ZWYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfZmluaXRlbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19mbG9vci5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19mbG9vcmYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfZmxvb3JsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2lsb2diLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2lsb2diZi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19pbG9nYmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfbG9nMXAuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfbG9nMXBmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2xvZzFwbC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19sb2diLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2xvZ2JmLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX2xvZ2JsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3JpbnQuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfcmludGYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfcmludGwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3Nfc2NhbGJuLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3NjYWxibmYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3Nfc2NhbGJubC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zaWduaWZpY2FuZC5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zaWduaWZpY2FuZGYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3Nfc2lnbmlmaWNhbmRsLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3Npbi5TOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWkzODcvc19zaW5mLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3NpbmwuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfdGFuLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taTM4Ny9zX3RhbmYuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfdGFubC5TOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvY2xvbmUuUzogQWRkIC5zaXplIGRpcmVjdGl2ZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9tbWFwLlMuIExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3NvY2tldC5TLiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXNkZXAuUy4gTW9yZSBjb21wYWN0IC5zaXplIGxpbmUuCgoJKiBzeXNkZXBzL2kzODYvc3lzZGVwLmggKEFTTV9TSVpFX0RJUkVDVElWRSk6IE5ldyBtYWNyby4gIFVzZWQKCXRvIHByb3ZpZGUgLnNpemUgZGlyZWN0aXZlIG9uIEVMRiBzeXN0ZW1zLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9wcm9maWwtY291bnRlci5oOiBJbmNsdWRlCgk8c2lnY29udGV4dC5oPiBhbmQgcmVuYW1lIHBhcmFtZXRlciB0eXBlIHRvIHNpZ2NvbnRleHQuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvc2lnY29udGV4dC5oIE5ldyBmaWxlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXNjYWxsLlM6IEZyb20gTGludXggMi4xIG9uCgluZWdhdGl2ZSB2YWx1ZXMgbWlnaHQgb2NjdXIgYXMgcG9zaXRpdmUgcmVzdWx0cy4gIFRlc3QgYWdhaW5zdAoJLTEyNSB0byBkZWNpZGUgZm9yIGVycm9yIG9yIG5vdC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zeXNkZXAuaDogTGlrZXdpc2UgZm9yIHN5c3RlbSBjYWxscy4KClRodSBPY3QgIDMgMjE6MDc6NTggMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBlbGYvZGwtb3Blbi5jOiBVc2UgX0RZTkFNSUMgaW5zdGVhZCBvZiBfZGxfc3RhcnQgdG8gZGVjaWRlCgl3aGV0aGVyIHRoaXMgaXMgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtLiAgVGhlIGxhdHRlciBpcyBub3cKCWFsd2F5cyBkZWZpbmVkLgoKRnJpIE9jdCAgNCAxNzozMDoyMiAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogaHVyZC9odXJkc2lnLmMgKHNpZ25hbF9hbGxvd2VkKTogQWRkIFNJR1dJTkNIIHRvIHRoZSBsaXN0IHRoYXQKCWNvbnRyb2xsaW5nIHRlcm1pbmFscyBhcmUgYWxsb3dlZCB0byBzZW5kLgoKCSogaHVyZC9hbGxvYy1mZC5jIChfaHVyZF9hbGxvY19mZCk6IElmIFNJWkUgaXMgc28gYmlnIHRoYXQgdGhlCgl0YWJsZSBpcyBsYXJnZXIgdGhhbiB0aGUgYWxsb3dhYmxlIGFkZHJlc3Mgc2l6ZSwgdGhlbiByZXR1cm4KCWZhaWx1cmUuCgpGcmkgT2N0ICA0IDAyOjA4OjEwIDE5OTYgIEJhbmcgSnVuLVlvdW5nICA8YmFuZ2p5QG5vd251cmkubm93Y29tLmNvLmtyPgoKCSogcG8va28ucG86IFVwZGF0ZS4KCkZyaSBPY3QgIDQgMDI6MDc6NDYgMTk5NiAgTWljaGVsIFJvYml0YWlsbGUgIDxyb2JpdGFpbEBJUk8uVU1vbnRyZWFsLkNBPgoKCSogcG8vZnIucG86IE5ldyBmaWxlLgoKRnJpIE9jdCAgNCAwNTowNDo1MiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvc2lnY29udGV4dC5oOiBOZXcgZmlsZS4KCglBZGQgc3VwcG9ydCBmb3IgTUQ1IGNyeXB0IHJlcGxhY2VtZW50LgoJKiBNYWtlZmlsZSAoc3ViZGlycyk6IEFkZCBjcnlwdC4KCSogc2hsaWItdmVyc2lvbnM6IEFkZCBlbnRyeSBmb3IgbGliY3J5cHQuCgkqIGNyeXB0L21kNS1jcnlwdC5jOiBOZXcgZmlsZS4KCSogY3J5cHQvbWQ1LmM6IE5ldyBmaWxlLgoJKiBjcnlwdC9tZDUuaDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvZ2VuZXJpYy9jcnlwdC1lbnRyeS5jOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9nZW5lcmljL2NyeXB0Lmg6IE5ldyBmaWxlLgoKVGh1IE9jdCAgMyAyMDo1MzoyMyAxOTk2ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIGRpcmVudC90c3Qtc2Vla2Rpci5jOiBQcm92aWRlIGNvcnJlY3QgcHJvdG90eXBlcy4KCSogaW8vdGVzdC11dGltZS5jOiBMaWtld2lzZS4KCSogbWFsbG9jL21hbGxvY2J1Zy5jOiBMaWtld2lzZS4KCSogcG9zaXgvdGVzdGZubS5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3hidWcuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvY3VzZXJpZC5jOiBMaWtld2lzZS4KCldlZCBPY3QgIDIgMTM6MzM6NDggMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJUHJvdmlkZSBvcHRpbWl6ZWQgc3RyaW5nIGZ1bmN0aW9ucyBmb3IgQWxwaGEgcHJvY2Vzc29ycy4KCSogc3lzZGVwcy9hbHBoYS9iemVyby5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9hbHBoYS9tZW1zZXQuUzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvYWxwaGEvc3RwY3B5LlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2FscGhhL3N0cG5jcHkuUzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvYWxwaGEvc3RyY2F0LlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2FscGhhL3N0cmNoci5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9hbHBoYS9zdHJjcHkuUzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvYWxwaGEvc3RybmNhdC5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9hbHBoYS9zdHJuY3B5LlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2FscGhhL3N0cnJjaHIuUzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvYWxwaGEvc3R4Y3B5LlM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2FscGhhL3N0eG5jcHkuUzogTmV3IGZpbGUuCgoJKiBzeXNkZXBzL2FscGhhL01ha2VmaWxlIFskKHN1ZGlyKT09c3RyaW5nXTogQWRkIHN0eGNweSBhbmQKCXN0eG5jcHkgdG8gc3lzZGVwX3JvdXRpbmVzLgoJTWlub3IgY29ycmVjdGlvbi4KClRodSBPY3QgIDMgMTM6MzM6MzEgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9nbnUvdHlwZXMuaDogQWRkZWQgX19sb2ZmX3QuCglEb24ndCBkZWNsYXJlIGtleV90IGhlcmUuCgoJKiBodXJkL2FsbG9jLWZkLmMgKF9odXJkX2FsbG9jX2ZkKTogSWYgcmVhbGxvYyBmYWlscywgYm90aGVyIHRvCglzZXQgZXJybm8gKHRvIEVOT01FTSkuCgpXZWQgT2N0ICAyIDEzOjQxOjQ4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9nZW5lcmljL3N0cnRvay5jOiBEb24ndCBzZXQgc3RvcmVkIHBvaW50ZXIgdG8gTlVMTCB3aGVuCglub3RoaW5nIGlzIGZvdW5kLiAgVGhpcyBndWFyYW50ZWVzIGFsbCBzdWJzZXF1ZW50IGNhbGxzIGJlaGF2ZQoJdGhlIHNhbWUuCgkqIHN5c2RlcHMvZ2VuZXJpYy9zdHJ0b2tfci5jOiBMaWtld2lzZS4KCk1vbiBTZXAgMzAgMjI6Mjc6MzYgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3Bvc2l4L3RlbXBuYW1lLmMgKF9fc3RkaW9fZ2VuX3RlbXBuYW1lKTogRG9uJ3QgZGVjbGFyZQoJYGknIGFzIGNvbnN0LgoKTW9uIFNlcCAzMCAyMjozODoyOSAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zdHJ0b2suYzogV2hlbiB3ZSBoaXQgRU9TLCBkb24ndCBzZXQgb2xkcyB0bwoJTlVMTCBpbW1lZGlhdGVseTsgd2UncmUgZ29pbmcgdG8gZ2V0IGNhbGxlZCBvbmUgbW9yZSB0aW1lLgoJKiBzeXNkZXBzL2dlbmVyaWMvc3RydG9rX3IuYzogTGlrZXdpc2UuCgpUdWUgT2N0ICAxIDA5OjEyOjIxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbG9jYWxlL3Byb2dyYW1zL2xkLXRpbWUuYzogQWx3YXlzIHdyaXRlIHNvbWUgYnl0ZXMgYXQgdGhlIGVuZCBvZgoJdGhlIGZpbGUgZXZlbiBpZiBubyBgZXJhJ3MgYXJlIHNwZWNpZmllZC4KCgkqIHN0ZGlvLWNvbW1vbi90bXBuYW1lLmMgKHRtcGJ1Zik6IERvbid0IGRlZmluZSBhcyBhcnJheSBvZgoJcG9pbnRlcnMuCgpUdWUgT2N0ICAxIDAxOjQzOjExIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbGliaW8vaW9mY2xvc2UuYzogTW92ZSB1bmxvY2tpbmcgdG8gcmlnaHQgcG9zaXRpb24uCgpNb24gU2VwIDMwIDAzOjA4OjM0IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogbWlzYy9NYWtlZmlsZTogS2lsbCBmb3JjZS13cmFwcGVyLgoJKiBtaXNjL2ZvcmNlLXdyYXBwZXIuYzogRGVsZXRlLgoKCSogZWxmL2V2YWwuYzogQWRkIDxzdHJpbmcuaD4uCgoJKiBnbW9uL3N5cy9nbW9uX291dC5oOiBOb25zZW5zZSBsaWtlIGBjaGFyIGZvb1tzaXplb2YoY2hhciopXScKCWZvbGxvd2VkIGJ5IGBiY29weSgmcHRyLCAmZm9vLCBzaXplb2YoZm9vKSknIGhlbHBzIHBvcnRhYmlsaXR5CglhbmQgYmluYXJ5IGNvbXBhdGliaWxpdHkgbm90IGF0IGFsbC4gIEJldHRlciB0byBkbyBgY2hhciAqZm9vJwoJZm9sbG93ZWQgYnkgYGZvbyA9IHB0cicgYXMgaXQgaXMgbXVjaCBjbGVhbmVyLgoJKHN0cnVjdCBnbW9uX2hkcik6IEZpeCB2ZXJzaW9uLgoJKHN0cnVjdCBnbW9uX2hpc3RfaGRyKTogRml4IGxvd19wYywgaGlnaF9wYywgaGlzdF9zaXplLCBwcm9mX3JhdGUuCgkoc3RydWN0IGdtb25fY2dfYXJjX3JlY29yZCk6IEZpeCBmcm9tX3BjLCBzZWxmX3BjLCBjb3VudC4KCSogZ21vbi9nbW9uLmM6IERlLWFuc2lkZWNsLWlmeS4KCSh3cml0ZV9oaXN0KTogRGUtYmNvcHktZnkuCgkod3JpdGVfY2FsbF9ncmFwaCk6IExpa2V3aXNlLgoKCSogZ21vbi9tY291bnQuYzogQXNzdW1lIF9NQ09VTlRfREVDTCBkb2VzIHRoZSBlbnRpcmUgZGVjbGFyYXRpb24uCgkqIHN5c2RlcHMvYWxwaGEvbWFjaGluZS1nbW9uLmg6IFVwZGF0ZSBfTUNPVU5UX0RFQ0wuCgkqIHN5c2RlcHMvZ2VuZXJpYy9tYWNoaW5lLWdtb24uaDogTGlrZXdpc2UuCgoJKiByZXNvbHYvbmV0ZGIuaDogQWRkIF9fc2V0X2hfZXJybm8gdG8gbWltaWMgX19zZXRfZXJybm8uCgkqIG5zcy9nZXRYWGVudF9yLmM6IFVzZSBfX3NldF9oX2Vycm5vIHRvIHNldCBoX2Vycm5vIGluIGFsbCBmdW5jcy4KCSogbnNzL25zc19kbnMvZG5zLW5ldHdvcmsuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9nZXR1bmFtYWRkci5jOiBMaWtld2lzZS4gIEFsc28gdXNlIF9fc2V0X2Vycm5vIHdoZXJlIG5lZWRlZC4KCSogcmVzb2x2L2dldG5ldG5hbWFkci5jOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19kZWJ1Zy5jOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19ta3F1ZXJ5LmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX3F1ZXJ5LmM6IExpa2V3aXNlLgoKCSogbGliaW8vY2xlYXJlcnJfdS5jOiBJdCdzIG5vdCBuZWNlc3NhcnkgdG8gZGVmaW5lIF9fIHByb3RlY3RlZAoJZnVuY3Rpb24gc28gZG9uJ3QgZG8gaXQuCgkqIGxpYmlvL2Zlb2ZfdS5jLCBsaWJpby9mZXJyb3JfdS5jLCBsaWJpby9mcHV0Y191LmMsCgkgIGxpYmlvL2dldGNfdS5jLCBsaWJpby9nZXRjaGFyX3UuYywgbGliaW8vaW9mZmx1c2hfdS5jOiBMaWtld2lzZS4KCgkqIGxpYmlvL2ZnZXRjLmM6IEF2b2lkIGEgd2FybmluZyBieSBjYXN0aW5nIF9JT19mdW5sb2NrZmlsZSBmb3IKCXRoZSBjbGVhbnVwIHJlZ2lzdHJhci4KCSogbGliaW8vZnB1dGMuYywgbGliaW8vZnJlb3Blbi5jLCBsaWJpby9mc2Vlay5jLCBsaWJpby9nZXRjLmMsCgkgIGxpYmlvL2dldGNoYXIuYywgbGliaW8vaW9mY2xvc2UuYywgbGliaW8vaW9mZmx1c2guYywKCSAgbGliaW8vaW9mZ2V0cG9zLmMsIGxpYmlvL2lvZmdldHMuYywgbGliaW8vaW9mcHV0cy5jLAoJICBsaWJpby9pb2ZyZWFkLmMsIGxpYmlvL2lvZnNldHBvcy5jLCBsaWJpby9pb2Z0ZWxsLmMsCgkgIGxpYmlvL2lvZndyaXRlLmMsIGxpYmlvL2lvZ2V0ZGVsaW0uYywgbGliaW8vaW9nZXRzLmMsCgkgIGxpYmlvL2lvcHV0cy5jLCBsaWJpby9pb3NldGJ1ZmZlci5jLCBsaWJpby9pb3NldHZidWYuYywKCSAgbGliaW8vaW91bmdldGMuYywgbGliaW8vcHV0Yy5jLCBsaWJpby9wdXRjaGFyLmMsIGxpYmlvL3Jld2luZC5jOgoJTGlrZXdpc2UuCgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtY3R5cGUuYzogSW5jbHVkZSA8YWxsb2NhLmg+LgoKCSogbG9naW4vbG9naW5fdHR5LmM6IEdldCBsb2dpbl90dHkgcHJvdG90eXBlIGZyb20gPHV0bXAuaD4uCgoJKiBwb3NpeC9zeXMvdHlwZXMuaDogQ2hhbmdlICNkZWZpbmVzIHRvIHR5cGVkZWZzLiAgVGhpcyBpcyBsb29raW5nCglmb3J3YXJkIHRvIG1vcmUgY29tcHJlaGVuc2l2ZSBuYW1lc3BhY2UgY2xlYW51cHMgZm9yIEMrKy4KCSogcG9zaXgvdW5pc3RkLmg6IExpa2V3aXNlIGZvciBzc2l6ZV90LgoKCSogcHdkL2dldHB3LmM6IFByb3RvdHlwZSBhbmQgcmVuYW1lIGdldHB3IC0+IF9fZ2V0cHcgYW5kIGFkZCBhCgl3ZWFrIGFsaWFzLgoKCSogcmVzb2x2L2Jhc2U2NC5jOiBEb24ndCBkbyBgZm9yIChOVUxMOyAuLi4pJyBhcyBpdCBjYXVzZXMKCWBzdGF0ZW1lbnQgd2l0aCBubyBlZmZlY3QnIHdhcm5pbmdzLgoJKiByZXNvbHYvaW5ldF9uZXRhLmM6IEluY2x1ZGUgPHN0cmluZy5oPiBmb3Igc3RybGVuLgoKCSogc3RkaW8tY29tbW9uL2dldGxpbmUuYzogVW5kZWYgc3NpemVfdCBiZWZvcmUgbGliaW8gcmVkZWZpbml0aW9uLgoJKiBzdGRpby1jb21tb24vdHN0Z2V0bG4uYzogU2FtZS4gIERlLWFuc2lkZWNsLWlmeS4KCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmM6IFNhbWUgZm9yIHZhX2xpc3QuCgkqIHN0ZGlvLWNvbW1vbi92ZnNjYW5mLmM6IFNhbWUuCgkqIHN0ZGlvLWNvbW1vbi9yZWctcHJpbnRmLmM6IFByb3RvdHlwZSB0aGUgX18gZnVuY3Rpb24uCgkqIHN0ZGlvLWNvbW1vbi9zY2FuZi5jIFtVU0VfSU5fTElCSU9dOiBJbmNsdWRlIDxsaWJpb1AuaD4gZm9yCglfSU9fdnNjYW5mIGRlY2xhcmF0aW9uLgoKCSogc3RyaW5nL3Rlc3Rlci5jOiBUc2ssIHRzay4gIERvbid0IGNhc3QgcG9pbnRlcnMgdG8gaW50LAoJYnV0IHRvIHVuc2lnbmVkIGxvbmcgZm9yIHRoZSBoZWFsdGggb2YgNjQtYml0IHN5c3RlbXMuCgoJKiBzdW5ycGMvc3ZjX3VkcC5jOiBEZWZpbmUgTUFYIG9ubHkgaWYgd2UgZG9uJ3QgaGF2ZSBpdCB5ZXQuCglNYW55IHN5c3RlbSdzIDxzeXMvcGFyYW0uaD4gcHVsbHMgdGhpcyBpbi4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9kbC1jYWNoZS5jOiBLaWxsIHRoZSBib3R0b20gaGFsZiBvZiB0aGUKCXBhdGNoIGRvdWJsZWQgZmlsZS4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9wdHkuYyAoZm9ya3B0eSk6IEdldCBsb2dpbl90dHkgZGVjbCBmcm9tIDx1dG1wLmg+CglpbnN0ZWFkIG9mIGRlZmluaW5nIGl0IGxvY2FsbHkuCgoJKiBzeXNkZXBzL3Bvc2l4L3NpZ3ZlYy5jOiBQcm90b3R5cGUgd3JhcHBlcl9oYW5kbGVyIGFuZCBjb252ZXJ0X21hc2suCgkqIHN5c2RlcHMvc3R1Yi9jaGZsYWdzLmM6IFByb3RvdHlwZSBjaGZsYWdzLgoJKiBzeXNkZXBzL3N0dWIvZmNoZmxhZ3MuYzogUHJvdG90eXBlIGZjaGZsYWdzLgoJKiBzeXNkZXBzL3N0dWIvc3N0ay5jOiBQcm90b3R5cGUgc3N0ay4KCgkqIHN5c2RlcHMvdW5peC9hbHBoYS9zeXNkZXAuUzogIEFkZCBzdHJvbmcgYWxpYXMgZnJvbSBlcnJubwoJdmFyaWFibGUgdG8gX19lcnJuby4gIFVwZGF0ZSBfX3N5c2NhbGxfZXJyb3IgdG8gc3RvcmUgdG8gYm90aAoJdGhlIGdsb2JhbCBhbmQgcGVyLXRocmVhZCB2YXJpYWJsZXMuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pbml0LWZpcnN0LmM6IENoYW5nZSBpbmNsdWRlIG9mCglpbml0LWZpcnN0LmggZnJvbSAiIiB0byA8PiBhcyAiIiBkb2VzIG5vdCBzZWFyY2ggdGhlIGluY2x1ZGUgcGF0aC4KCVByb3RvdHlwZSBfZGxfc3RhcnQuCgpTdW4gU2VwIDI5IDE0OjQxOjE3IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L01ha2VmaWxlICgkKGNvbW1vbi1vYmpwZngpcy1wcm90by5kKTogTWFrZSBpdCBhCglwYXR0ZXJuIHJ1bGUgdG8gZ2V0IHRoZSByaWdodCBzdGVtLgoKU2F0IFNlcCAyOCAwMTozMDowNiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2VmaWxlICgkKG9ianBmeCl2ZXJzaW9uLWluZm8uaCk6IEZpeCB0eXBvIGluIHByZXZpb3VzIGNoYW5nZS4KClNhdCBTZXAgMjggMDA6NDQ6MzggMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3Bvc2l4L2V1aWRhY2Nlc3MuYyAoX19zZXRfZXJybm8pOiBGaXggdHlwby4KClNhdCBTZXAgMjggMDA6NDA6MzggMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBtYWxsb2MvZnJlZS5jIChfZnJlZV9pbnRlcm5hbCk6IERvbid0IGNhbGwgZnJlZSByZWN1cnNpdmVseSwgdXNlCgl0aGUgaW50ZXJuYWwgZnVuY3Rpb25zIGluc3RlYWQuCgpTYXQgU2VwIDI4IDAwOjIzOjIwIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9wb3NpeC90ZW1wbmFtZS5jIChfX3N0ZGlvX2dlbl90ZW1wbmFtZSkgW1VTRV9JTl9MSUJJTyAmJgoJX0lPX01UU0FGRV9JT106IEFsbG9jYXRlIGFuZCBpbml0aWFsaXplIHRoZSBmaWxlIGxvY2suCgpGcmkgU2VwIDI3IDIzOjU4OjE3IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogY2F0Z2V0cy9nZW5jYXQuYyAobWFpbik6IFByaW50IHZlcnNpb24gaW5mb3JtYXRpb24gb24gc3Rkb3V0LAoJbm90IHN0ZGVyci4KCSogZGIvbWFrZWRiLmM6IExpa2V3aXNlLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlLmM6IExpa2V3aXNlLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlZGVmLmM6IExpa2V3aXNlLgoKTW9uIFNlcCAzMCAwMDoxNDoyNiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCglBZGQgaW1wbGVtZW50YXRpb24gb2YgbmV0Z3JvdXAuCgkqIGluZXQvTWFrZWZpbGUgKGRpc3RyaWJ1dGVzKTogQWRkIG5ldGdyb3VwLmguCgkocm91dGluZXMpOiBBZGQgZ2V0bmV0Z3JlbnQuYyBhbmQgZ2V0bmV0Z3JlbnRfci5jLgoJKiBpbmV0L2dldG5ldGdyZW50LmM6IE5ldyBmaWxlLgoJKiBpbmV0L2dldG5ldGdyZW50X3IuYzogTmV3IGZpbGUuCgkqIGluZXQvbmV0Z3JvdXAuaDogTmV3IGZpbGUuCgkqIG5ldGdyb3VwLmg6IE5ldyBmaWxlLgoJKiBuc3N3aXRjaC5oOiBOZXcgZmlsZS4KCSogbnNzL01ha2VmaWxlIChkYXRhYmFzZXMpOiBBZGQgZ2V0Z3JwLgoJKiBuc3MvZGF0YWJhc2VzLmRlZjogQWRkIG5ldGdyb3VwLgoJKiBuc3MvZGItTWFrZWZpbGU6IEFkZCBydWxlcyBmb3IgbmV0Z3JvdXAuCgkqIG5zcy9uZXRncnAtbG9va3VwLmM6IE5ldyBmaWxlLgoJKiBuc3MvbnNzLmg6IEFkZCBuZXcgc3RhdHVzIHZhbHVlIE5TU19TVEFUVVNfUkVUVVJOIHdoaWNoIHdpbGwKCWFsd2F5cyByZXR1cm4gd2l0aG91dCBhIGNoZWNrIG9mIHRoZSB0cmFuc2l0aW9uIHRhYmxlLgoJKiBuc3MvbnNzd2l0Y2guaCAoc3RydWN0IHNlcnZpY2VfdXNlcik6IEV4dGVuZCBhY3Rpb25zIGFycmF5IHRvCglmaXZlIGVsZW1lbnRzLgoJKiBuc3MvbnNzd2l0Y2guYyAoX19uc3NfbmV4dCk6IEFsbG93IE5TU19TVEFUVVNfUkVUVVJOIGFzIGxlZ2FsCglzdGF0dXMgdmFsdWUuCgkobnNzX3BhcnNlX3NlcnZpY2VfbGlzdCk6IEluaXRpYWxpemUgYWN0aW9uIGZvciBOU1NfU1RBVFVTX1JFVFVSTgoJdG8gTlNTX0FDVElPTl9SRVRVUk4uCgkqIG5zcy9uc3NfZGIvZGItbmV0Z3JwLmM6IE5ldyBmaWxlLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLW5ldGdycC5jOiBOZXcgZmlsZS4KCSogbnNzL25zc3dpdGNoLmNvbmY6IEFkZCBlbnRyeSBmb3IgbmV0Z3JvdXAuCgkqIHJlc29sdi9uZXRkYi5oOiBBZGQgcHJvdG90eXBlcyBmb3IgbmV0Z3JvdXAgZnVuY3Rpb25zLgoKCSogbnNzL25zc19kYi9kYi1YWFguYzogVXNlIGBlbnVtIG5zc19zdGF0dXMnIHR5cGUgd2hlbiBzdGF0dXMKCXZhbHVlIGlzIHVzZWQuCgpTdW4gU2VwIDI5IDEyOjU1OjU4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbHMubGlzdDogQ2hhbmdlIGZ1bmN0aW9uIG5hbWUgZm9yCglfbGxzZWVrIHRvIF9sbHNlZWsgKG5vdCBsbHNlZWspLgoJUmVwb3J0ZWQgYnkgTWF0dGhpYXMgVXJsaWNocyA8c211cmZAc211cmYubm9yaXMuZGU+LgoKU3VuIFNlcCAyOSAwNTozNDozMiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGluZXQvcmNtZC5jOiBSZW1vdmUgZGVmaW5pdGlvbiBvZiBNSU4uCgpTYXQgU2VwIDI4IDE0OjIyOjUxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZGlyZW50L3JlYWRkaXJfci5jOiBSZW1vdmVkLiAgV2UgaW5kZWVkIG5lZWQgYSByZWFsIGltcGxlbWVudGF0aW9uLgoJKiBzeXNkZXBzL3VuaXgvcmVhZGRpcl9yLmM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvcmVhZGRpci5jOiBSZW1vdmUgY2hlY2sgZm9yIGNvcnJlY3QgcGFyYW1ldGVyCgl2YWx1ZXMuICBMZXQgdGhlbSBzaW1wbHkgZGllLgoJKiBtYW51YWwvZmlsZXN5cy50ZXhpOiBEb2N1bWVudCByZWFkZGlyX3IuCgoJKiBzeXNkZXBzL2dudS9lcnJsaXN0LmF3azogRGVmaW5lIF9zeXNfZXJybGlzdCBhcyBgY29uc3QgY2hhciogY29uc3QnLgoJUHJvcG9zZWQgYnkgUGVyIEFicmFoYW1zZW4gPGFicmFoYW1AZGluYS5rdmwuZGs+LgoKU2F0IFNlcCAyOCAwMzowMjo0OSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGRpcmVudC9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgcmVhZGRpcl9yLgoJKiBkaXJlbnQvcmVhZGRpcl9yLmM6IE5ldyBmaWxlLiAgV3JhcHBlciBhcm91bmQgcmVhZGRpci5jLgoJKiBkaXJlbnQvZGlyZW50Lmg6IEFkZCBwcm90b3R5cGUgZm9yIHJlYWRkaXJfci4KCgkqIG1pc2MvaHNlYXJjaF9yLmMgKEVOVFJZKTogTWFrZSBmaWVsZCBgdXNlZCcgb2YgdHlwZSBgdW5zaWduZWQgaW50JwoJdG8gcHJldmVudCB3YXJuaW5ncy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dldHN5c3N0YXRzLmMgKGdldF9wcm9jX3BhdGgpOgoJSW5pdGlhbGl6ZSBgcmVzdWx0Jy4KClNhdCBTZXAgMjggMDE6MTY6NDIgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL2dlbmVyaWMvc3Ryc2VwLmM6IFJlbmFtZSB0byBfX3N0cnNlcCBhbmQgbWFrZSBzdHJzZXAKCXdlYWsgYWxpYXMuCgkqIHN0cmluZy9zdHJpbmcuaDogQWRkIHByb3RvdHlwZSBmb3IgX19zdHJzZXAuCgkqIG1pc2MvbW50ZW50X3IuYzogVXNlIF9fc3Ryc2VwIGluc3RlYWQgb2Ygc3Ryc2VwIHRvIGtlZXAKCW5hbWVzcGFjZSBjbGVhbi4KCgkqIHN5c2RlcHMvc3R1Yi9uYW5vc2xlZXAuYzogUmVuYW1lIHRvIF9fbGliY19uYW5vc2xlZXAgYW5kIG1ha2UKCV9fbmFub3NsZWVwIGFuZCBuYW5vc2xlZXAgd2VhayBhbGlhc2VzLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxscy5saXN0OiBBZGQgX19uYW5vc2xlZXAgYXMgd2VhawoJYWxpYXMuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NsZWVwLmM6IENhbGwgX19uYW5vc2xlZXAgaW5zdGVhZCBvZgoJbmFub3NsZWVwIHRvIGtlZXAgbmFtZXNwYWNlIGNsZWFuLgoKCSogc3lzZGVwcy9wb3NpeC90dHluYW1lLmMgKHR0eW5hbWUpOiBBZGQgY2FzdCB0byBwcmV2ZW50IHdhcm5pbmcuCgkqIHN5c2RlcHMvcG9zaXgvdHR5bmFtZV9yLmMgKHR0eW5hbWVfcik6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L2dldGN3ZC5jIChfX2dldGN3ZCk6IExpa2V3aXNlLgoKCSogc3lzZGVwcy91bml4L25saXN0LmM6IFVzZSBJU08gQyBkZWZpbml0aW9uIHNpbmNlIHdlIGRvbid0IGFsd2F5cwoJaGF2ZSBwcm90b3R5cGUuCgoJKiBsb2dpbi9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBwdHkuaC4KCSogbG9naW4vcHR5Lmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL2dlbmVyaWMvcHR5Lmg6IEluY2x1ZGUgPHB0eS5oPi4KCSogbG9naW4vcHV0dXRsaW5lX3IuYzogQWRkIGNhc3QgdG8gcHJldmVudCB3YXJuaW5nLgoKCSogZ21vbi9nbW9uLmM6IEFkZCBwcm90b3R5cGUgZm9yIF9fcHJvZmlsZV9mcmVxdWVuY3kuCgkobW9uc3RhcnR1cCk6IEFkZCBjYXN0IHRvIHByZXZlbnQgd2FybmluZy4KCSogc3lzZGVwcy9nZW5lcmljL3Byb2YtZnJlcS5jOiBDaGFuZ2UgdG8gdXNlIElTTyBDIHN0eWxlIGRlZmluaXRpb24uCgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtdGltZS5jICh0aW1lX291dHB1dCk6IFdyaXRlIGBlcmEnIGluZm9ybWF0aW9uCglpbiBjb3JyZWN0IG9yZGVyLgoKU2F0IFNlcCAyOCAwMDoxMTowOCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3Q6IEFkZCB3ZWFrIGFsaWFzCglgYWRqdGltZXgnLgoJU2V0IGNhbGxlciBmb3IgbWxvY2ssIG1sb2NrYWxsLCBtcmVtYXAsIG11bmxvY2ssIGFuZCBtdW5sb2NrYWxsCgl0byBFWFRSQS4KCVJlcG9ydGVkIGJ5IE1hdHRoaWFzIFVybGljaHMgPHNtdXJmQHNtdXJmLm5vcmlzLmRlPi4KCjE5OTYtMDktMjcgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QHR3aW5zdW4uY29tPgoKCSogc3RyZnRpbWUuYyAoc3RyZnRpbWUpOiBPdXRwdXQgaW5jb21wbGV0ZSBmb3JtYXRzIGxpa2UgJUUKCWF0IGVuZCBvZiBzdHJpbmcuCgoxOTk2LTA5LTI3ICBQYXVsIEVnZ2VydCAgPGVnZ2VydEB0d2luc3VuLmNvbT4KCgkqIHN0cmZ0aW1lLmMgKHN0cmZ0aW1lKTogQWRkIHN1cHBvcnQgZm9yICVFQyBhbmQgJUV5LgoJRml4IHN1cHBvcnQgZm9yICVFWS4gIFRoaXMgdXNlcyB0aGUgbmV3IF9ubF9nZXRfZXJhX2VudHJ5IGZ1bmN0aW9uLgoKRnJpIFNlcCAyNyAxNDoxMjoyNyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCglTZWN1cml0eSByZWxhdGVkIHBhdGNoIGJ5IEVsbGlvdCBMZWUgPHNvcHdpdGhAcmVkaGF0LmNvbT4gYW5kCglEYXZpZCBIb2xsYW5kIDxkaG9sbGFuZEBlZWNzLmhhcnZhcmQuZWR1Pi4KCgkqIGluZXQvcmV4ZWMuYyAocmV4ZWMpOiBJbmNyZWFzZSBzaXplIG9mIGBudW0nIGFycmF5IGZyb20gOCB0byAzMi4KCSogaW5ldC9ydXNlcnBhc3MuYyAocnVzZXJwYXNzKTogRG9uJ3QgYWxsb3cgJEhPTUUgZW52dmFyIHRvIG5vdCBleGlzdC4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9nZXRlbnYuYyAoX19zZWN1cmVfZ2V0ZW52KTogTmV3IGZ1bmN0aW9uLiAgUmV0dXJuCglOVUxMIHdoZW4gcHJvZ3JhbXMgcnVucyB3aXRoIFNVSUQgb3IgU0dJRCBlbmFibGVkLgoJKiBzeXNkZXBzL3N0dWIvZ2V0ZW52LmM6IE1ha2UgX19zZWN1cmVfZ2V0ZW52IGFuIGFsaWFzIG9mIGdldGVudi4KCSogc3RkbGliL3N0ZGxpYi5oOiBBZGQgcHJvdG90eXBlIGZvciBfX3NlY3VyZV9nZXRlbnYuCgoJKiBsb2NhbGUvc2V0bG9jYWxlLmM6IFVzZSBfX3NlY3VyZV9nZXRlbnYuCgkqIHJlc29sdi9yZXNfaW5pdC5jOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19xdWVyeS5jOiBMaWtld2lzZS4KCSogaW5ldC9ydXNlcnBhc3MuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvdGVtcG5hbWUuYzogTGlrZXdpc2UuCgkqIG1hbGxvYy9tdHJhY2UuYzogTGlrZXdpc2UuCgkqIGNhdGdldHMvY2F0Z2V0cy5jOiBMaWtld2lzZS4KCglNYWtlIHRlbXBvcmFyeSBmaWxlIGhhbmRsaW5nIGZ1bmN0aW9ucyByZWVudHJhbnQuCgoJKiBzdGRpby1jb21tb24vdG1wbmFtLmM6IFJld3JpdGUgdG8gaGF2ZSBvd24gYnVmZmVyIHRvIHdyaXRlCglyZXN1bHQgdG8uICBUaGUgY2FsbGVkIF9fc3RkaW9fZ2VuX3RlbXBuYW1lIGZ1bmN0aW9uIG11c3QgYmUKCXRocmVhZCBzYWZlLgoJKiBzdGRpby1jb21tb24vdG1wbmFtX3IuYzogTmV3IGZpbGUuCgkqIHN0ZGlvL3N0ZGlvLmg6IEFkZCBwcm90b3R5cGUgZm9yIGB0bXBuYW1fcicuCglDaGFuZ2UgcHJvdG90eXBlIGZvciBfX3N0ZGlvX2dlbl90ZW1wbmFtZS4KCSogc3RkaW8vbGliaW8uaDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvdGVtcG5hbWUuYzogQWRkIG5ldyBwYXJhbWV0ZXJzIGFuZCB1c2UgdGhlbSBpbnN0ZWFkCglvZiBzdGF0aWMgYnVmZmVyLgoJRG9uJ3QgcmVzZXQgYGluZGVjZXMnIHdoZW4gUElEIGNoYW5nZWQgYmV0d2VlbiBjYWxscy4KCURvbid0IGZhaWwgZm9yIGxvbmcgcnVubmluZyBwcm9ncmFtcyB3aGVuIGluZGV4IGNvdW50ZXIgb25jZQoJcmVhY2hlZCB0aGUgbGltaXQuCgkqIHN5c2RlcHMvc3R1Yi90ZW1wbmFtZS5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3RlbXBuYW0uYzogUHJvdmlkZSBsb2NhbCBidWZmZXIgYXMgZXh0cmEgYXJndW1lbnQKCXRvIF9fc3RkaW9fZ2VuX3RlbXBuYW1lLiAgVGhpcyBtYWtlcyB0aGlzIGZ1bmN0aW9uIHJlZW50cmFudC4KCSogc3RkaW8tY29tbW9uL3RtcGZpbGUuYzogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi90ZW1wdGVzdC5jOiBQcm92aWRlIGV4dHJhIGFyZ3VtZW50IHRvCglfX3N0ZGlvX2dlbl90ZW1wbmFtZS4KCSogbWFudWFsL2ZpbGVzeXMudGV4aTogRGVzY3JpYmUgdG1wbmFtX3IgYW5kIGFkZCBjb21tZW50cyBhYm91dAoJcmVlbnRyYW5jeSBvZiB0aGUgZnVuY3Rpb25zLgoKCSogaW5ldC9yY21kLmM6IEZpeGVkIGFkZHJlc3MgbGVuZ3RoIGhhbmRsaW5nLgoKCSogc3lzZGVwcy9wb3NpeC9tay1zdGRpb2xpbS5jOiBDb3VudCBmaW5hbCBcMCBieXRlIGluIExfdG1wbmFtIHZhbHVlLgoKCSogdGltZS9zdHJmdGltZS5jOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBhbHRfZGlnaXRzIGFuZAoJZW5kX2FsdF9kaWdpdHMuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvc3lzaW5mby5oOiBDb3JyZWN0IHByb3RvdHlwZSBuYW1lcwoJZm9yIGdldF9ucHJvY3MgYW5kIGdldF9ucHJvY3NfY29uZi4KCSogc3lzZGVwcy9nZW5lcmljL3N5cy9zeXNpbmZvLmg6IExpa2V3aXNlLgoKCSogc3RkbGliL3Rlc3QtY2Fub24uYzogRmluYWxseSBkbyB0aGUgcmlnaHQgZml4LgoKCSogbWlzYy9NYWtlZmlsZTogT25seSBjb21waWxlIGZvcmNlLXdyYXBwZXIgd2hlbiBjb21waWxpbmcKCXJlZW50cmFudCBsaWJjLgoKRnJpIFNlcCAyNyAwMzo0OTo1NiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCglBZGQgc3VwcG9ydCBmb3IgY2FuY2VsYWJsZSBzeXN0ZW0gY2FsbHMuCgoJKiBjc3UvaW5pdGZpbmkuYzogTWFrZSBpbiBjcnRpLm8gcmVmZXJlbmNlIHRvIHN5bWJvbAoJX19saWJjX2ZvcmNlX2NhbmNlbF93cmFwcGVyIHdoZW4gY29tcGlsaW5nIHJlZW50cmFudCB2ZXJzaW9uLgoJKiBtaXNjL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBmb3JjZS13cmFwcGVyLgoJKiBtaXNjL2ZvcmNlLXdyYXBwZXIuYzogTmV3IGZpbGUuCgoJKiBwb3NpeC9zeXN0ZW0uYzogUmVuYW1lIGZ1bmN0aW9uIHRvIF9fbGliY19zeXN0ZW0gYW5kIG1ha2Ugc3lzdGVtCglhIHdlYWsgYWxpYXMuCgkqIHN5c2RlcHMvc3R1Yi9zeXN0ZW0uYzogTGlrZXdpc2UuCgkqIHBvc2l4L3dhaXQuYzogUmVuYW1lIGZ1bmN0aW9uIHRvIF9fbGliY193YWl0IGFuZCBtYWtlIF9fd2FpdCBhCgl3ZWFrIGFsaWFzLiAgRGUtQU5TSS1meS4KCSogc3lzZGVwcy9zdGFuZGFsb25lL3JlYWQuYzogUmVuYW1lIGZ1bmN0aW9uIHRvIF9fbGliY19yZWFkIGFuZAoJbWFrZSBfX3JlYWQgYSB3ZWFrIGFsaWFzLgoJKiBzeXNkZXBzL3N0dWIvcmVhZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdGFuZGFsb25lL3dyaXRlLmM6IFJlbmFtZSBmdW5jdGlvbiB0byBfX2xpYmNfd3JpdGUgYW5kCgltYWtlIF9fd3JpdGUgYSB3ZWFrIGFsaWFzLgoJKiBzeXNkZXBzL3N0dWIvd3JpdGUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi90Y2RyYWluLmM6IFJlbmFtZSBmdW5jdGlvbiB0byBfX2xpYmNfdGNkcmFpbiBhbmQKCW1ha2UgdGNkcmFpbiBhIHdlYWsgYWxpYXMuCgkqIHN5c2RlcHMvdW5peC9ic2QvdGNkcmFpbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9ic2Q0LjQvdGNkcmFpbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvdGNkcmFpbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvdGNkcmFpbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9ic2Q0LjQvd2FpdC5jOiBSZW5hbWUgZnVuY3Rpb24gdG8gX19saWJjX3dhaXQKCWFuZCBtYWtlIF9fd2FpdCBhIHdlYWsgYWxpYXMuCgkqIHN5c2RlcHMvc3R1Yi93YWl0cGlkLmM6IFJlbmFtZSBmdW5jdGlvbiB0byBfX2xpYmNfd2FpdHBpZCBhbmQKCW1ha2UgX193YWl0cGlkIGEgd2VhayBhbGlhcy4KCSogc3lzZGVwcy91bml4L2JzZC9ic2Q0LjQvd2FpdHBpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvd2FpdHBpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3Yvc3lzdjQvd2FpdHBpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2NvbW1vbi9wYXVzZS5jOiBSZW5hbWUgZnVuY3Rpb24gdG8gX19saWJjX3BhdXNlCglhbmQgbWFrZSBwYXVzZSBhIHdlYWsgYWxpYXMuICBEZS1BTlNJLWZ5LgoKCSogc3lzZGVwcy91bml4L3N5c2NhbGxzLmxpc3Q6IENoYW5nZSBuYW1lIGZvciBjbG9zZSwgZmNudGwsIGZzeW5jLAoJbHNlZWssIG9wZW4sIHJlYWQsIGFuZCB3cml0ZSB0byBoYXZlIF9fbGliY18gcHJlZml4IGFuZCBtYWtlIG9sZAoJbmFtZXMgYSB3ZWFrIGFsaWFzLgoJKiBzeXNkZXBzL3VuaXgvbW1hbi9zeXNjYWxscy5saXN0OiBMaWtld2lzZSBmb3IgbXN5bmMuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGxzLmxpc3Q6IExpa2V3aXNlIGZvciBuYW5vc2xlZXAuCgoJKiBpby9jcmVhdC5jOiBEZS1BTlNJLWZ5LgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbHMubGlzdDogQWRkIHBhdXNlLgoKVGh1IFNlcCAyNiAxOToxNTo1NSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG1pc2MvbW50ZW50Lmg6IEFkZCBNTlRUWVBFXyogYW5kIE1OVE9QVF8qIG1hY3Jvcy4KCVJlcG9ydGVkIGJ5IEhhbnMgR3JvYmxlciA8Z3JvYmhAbm9saWFuLmVlLnN1bi5hYy56YT4uCgpUaHUgU2VwIDI2IDE0OjQwOjEwIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9wb3NpeC9wYXRoY29uZi5jOiBQYXNzIGRlc2NyaXB0b3IgZm9yIGp1c3Qgb3BlbmVkIGZpbGUKCXRvIGZwYXRoY29uZi4KCVJlcG9ydGVkIGJ5IE1hcnRpbiB2b24gTG9ld2lzIDxtYXJ0aW5AbWlyYS5pc2RuLmNzLnR1LWJlcmxpbi5kZT4uCgpUaHUgU2VwIDI2IDA0OjAyOjQzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbG9jYWxlL3Byb2dyYW1zL2xvY2ZpbGUuYyAod3JpdGVfbG9jYWxlX2RhdGEpOiBBbGxvY2F0ZSByb29tCglldmVuIGZvciBmaWxlIG5hbWUgZm9yIExDX01FU1NBR0VTIGxvY2FsZS4KCShsb2NhZmlsZV9yZWFkKTogYHRva19lcmEnIG11c3QgYmUgaGFuZGxlZCBhcyBhIHN0cmluZyBsaXN0LgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtdGltZS5jOiBGaW5pc2ggY29ycmVjdGlvbiBvZiBoYW5kbGluZyBgZXJhJy4KCSogbG9jYWxlL0MtdGltZS5jIChfbmxfQ19MQ19USU1FKTogQWRkIGluaXRpYWxpemVyIGZvciBuZXcgZmllbGRzLgoJKiBsb2NhbGUvY2F0ZWdvcmllcy5kZWY6IEFkZCBwb3N0bG9hZCBmdW5jdGlvbiBmb3IgTENfVElNRS4KCSogbG9jYWxlL3NldGxvY2FsZS5jOiBNYWtlIGxvY2sgZ2xvYmFsIGFuZCByZW5hbWUgdG8KCV9fbGliY19zZXRsb2NhbGVfbG9jay4KCSogbG9jYWxlL2xvY2FsZWluZm8uaCAoc3RydWN0IGVyYV9lbnRyeSk6IE5ldyB0eXBlLiAgVXNlZCBpbiBzdHJmdGltZS4KCUFkZCBwcm90b3R5cGVzIGZvciBfbmxfZ2V0X2VyYV9lbnRyeSBhbmQgX25sX2dldF9hbHRfZGlnaXQuCgkqIGxvY2FsZS9sYy10aW1lLmMgKF9ubF9wb3N0bG9hZF90aW1lKTogTmV3IGZ1bmN0aW9uLiAgSW5pdGlhbGl6ZQoJbGF6eSBpbnRpYWxpemF0aW9uLgoJKF9ubF9nZXRfZXJhX2VudHJ5KTogTmV3IGZ1bmN0aW9uLiAgUmV0dXJuIGVyYSBlbnRyeSB3aGljaCBjb3JyZXNwb25kcwoJdG8gZ2l2ZW4geWVhci4KCShfbmxfZ2V0X2FsdF9kaWdpdCk6IE5ldyBmdW5jdGlvbi4gIFJldHVybiBzdHJpbmcgd2l0aCBhbHRlcm5hdGUKCWRpZ2l0IHJlcHJlc2VudGF0aW9uIGZvciBnaXZlbiBudW1iZXIuCgoJKiB0aW1lL3N0cmZ0aW1lLmMgKHN0cmZ0aW1lKTogVXNlIF9ubF9nZXRfYWx0X2RpZ2l0IHRvIGdldAoJc3RyaW5nIHJlcHJlc2VudGluZyBhbHRlcm5hdGUgZGlnaXQgbm90YXRpb24uCgpXZWQgU2VwIDI1IDE3OjMxOjU1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9nZW5lcmljL3dhaXRzdGF0dXMuaCAodW5pb24gd2FpdCk6IEFkZCB3X3N0YXR1cyBmaWVsZC4KCVJlcG9ydGVkIGJ5IEhhbnMgR3JvYmxlciA8Z3JvYmhAbm9saWFuLmVlLnN1bi5hYy56YT4uCgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogUHJvY2VzcyBMRF9QUkVMT0FEIGJlZm9yZSBsb2FkaW5nCglsZC5zby5wcmVsb2FkLiAgU3VnZ2VzdGVkIGJ5IERhdmlkIEVuZ2VsIDxkYXZpZEBlbG8ub2RzLmNvbT4uCgpXZWQgU2VwIDI1IDEzOjEwOjU3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogY2F0Z2V0cy9nZW5jYXQuYyAobWFpbik6IENoYW5nZSAtLXZlcnNpb24gYWdhaW4gYmVjYXVzZSBSTVMgd2FudHMKCXRoZSBwYWNrYWdlIG5hbWUgaW4gcGFyZW50aGVzZXMuCgkqIGRiL21ha2VkYi5jOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZS5jOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZWRlZi5jOiBMaWtld2lzZS4KClR1ZSBTZXAgMjQgMDE6Mjg6MDUgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBNYWtlZmlsZSAoJChvYmpwZngpc3lzZC1kaXJzKTogRGVwZW5kIG9uIFN1YmRpcnMgZmlsZXMsIGNvbW1hbmQKCXJld3JpdHRlbi4KCSgkKG9ianBmeCl2ZXJzaW9uLWluZm8uaCk6IERlcGVuZCBvbiBCYW5uZXIgZmlsZXMsIGNvbW1hbmQKCXJld3JpdHRlbi4KCldlZCBTZXAgMjUgMDI6NDQ6NDEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zbGVlcC5jOiBOZXcgZmlsZS4gIEJhc2VkIG9uIG5hbm9zbGVlcC4KClR1ZSBTZXAgMjQgMjE6NDY6MDIgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzaGFkb3cvbGNrcHdkZi5jIChQV0RfTE9DS0ZJTEUpOiBDaGFuZ2UgdG8gL2V0Yy9sb2NrLnB3ZCB0byBiZQoJb24gdGhlIHNhbWUgZGV2aWNlIGFzIHRoZSBwYXNzd29yZCBmaWxlLgoJKiBzaGFkb3cvc2hhZG93LmggKHN0cnVjdCBzcHdkKTogQ2hhbmdlIHR5cGUgb2YgbnVtZXJpYyBmaWVsZHMKCXRvIGBsb25nIGludCcgc2luY2UgdGhlcmUgdmFsdWUgYXJlIGRheXMsIG5vdCBzZWNvbmRzLgoJKiBzaGFkb3cvcHV0c3BlbnQuYzogQ2hhbmdlIGNhc3RzIGZyb20gdGltZV90IHRvIGBsb25nIGludCcuCgkqIHNoYWRvdy9zZ2V0c3BlbnRfci5jIChMSU5FX1JFQURFUik6IExpa2V3aXNlLgoKTW9uIFNlcCAyMyAyMzowNToyNCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Vycm5vcy5oOiBEZWZpbmUgX19zZXRfZXJybm8gdG8gbWFrZQoJc3VyZSB0aGUgdGhyZWFkIHNwZWNpZmljIHZhcmlhYmxlIGlzIHNldCBhcyB3ZWxsIGFzIHRoZSBnbG9iYWwKCXZhcmlhYmxlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9lcnJub3MuYXdrOiBEZWZpbmUgbWFjcm8gZm9yIHNvdXJjZSBjb2RlCgljb21wYXRpYmlsaXR5LgoJKiBzeXNkZXBzL3N0dWIvZXJybm9zLmg6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL2JzZDQuNC9lcnJub3MuaDogTGlrZXdpc2UuCgoJKiBzaGFkb3cvcHV0c3BlbnQuYzogRG9uJ3QgaW5jbHVkZSA8ZXJybm8uaD4uCgoJKiBkaXJlbnQvc2NhbmRpci5jIChzY2FuZGlyKTogVXNlIF9fc2V0X2Vycm5vIHRvIHNldCBlcnJubwoJdmFyaWFibGUuCgkqIGVsZi9kbC1sb2FkLmMgKG9wZW5fcGF0aCk6IExpa2V3aXNlLgoJKiBpbmV0L3JjbWQuYyAocmNtZCk6IExpa2V3aXNlLgoJKHJyZXN2cG9ydCk6IExpa2V3aXNlLgoJKiBpbnRsL2RjZ2V0dGV4dC5jIFshX19zZXRfZXJybm9dOiBEZWZpbmUgX19zZXRfZXJybm8uCgkoRENHRVRURVhUKTogVXNlIF9fc2V0X2Vycm5vIHRvIHNldCBlcnJubyB2YXJpYWJsZS4KCSogaW8vZnRzLmMgKGZ0c19vcGVuKTogTGlrZXdpc2UuCgkoZnRzX2Nsb3NlKTogTGlrZXdpc2UuCgkoZnRzX3JlYWQpOiBMaWtld2lzZS4KCShmdHNfc2V0KTogTGlrZXdpc2UuCgkoZnRzX2NoaWxkcmVuKTogTGlrZXdpc2UuCgkoZnRzX2J1aWxkKTogTGlrZXdpc2UuCgkoZnRzX3N0YXQpOiBMaWtld2lzZS4KCSogaW8vZnR3LmMgKGZ0d19kaXIpOiBMaWtld2lzZS4KCShmdHcpOiBMaWtld2lzZS4KCSogaW8vZ2V0d2QuYyAoZ2V0d2QpOiBMaWtld2lzZS4KCSogaW8vbG9ja2YuYyAobG9ja2YpOiBMaWtld2lzZS4KCSogbGliaW8vbGliaW9QLmggW0VJTlZBTF06IFVzZSBfX3NldF9lcnJubyB0byBkZWZpbmUgTUFZQkVfU0VUX0VJTlZBTC4KCSogbGliaW8vaW9mZG9wZW4uYyAoX0lPX2Zkb3Blbik6IFVzZSBNQVlCRV9TRVRfRUlOVkFMIHRvIGVycm5vLgoJKiBsaWJpby9pb2dldGRlbGltLmMgKF9JT19nZXRkZWxpbSk6IExpa2V3aXNlLgoJKiBsaWJpby9maWxlb3BzLmMgKF9JT19maWxlX29wZW4pOiBVc2UgX19zZXRfZXJybm8gdG8gc2V0IGVycm5vCgl2YXJpYWJsZS4KCSogbGliaW8vaW9mZ2V0cG9zLmMgKF9JT19mZ2V0cG9zKTogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZnNldHBvcy5jIChfSU9fZnNldHBvcyk6IExpa2V3aXNlLgoJKiBsaWJpby9pb2Z0ZWxsLmMgKF9JT19mdGVsbCk6IExpa2V3aXNlLgoJKiBsb2NhbGUvbG9hZGxvY2FsZS5jIChfbmxfbG9hZF9sb2NhbGUpOiBMaWtld2lzZS4KCSogbG9jYWxlL25sX2xhbmdpbmZvLmMgKG5sX2xhbmdpbmZvKTogTGlrZXdpc2UuCgkqIGxvY2FsZS9zZXRsb2NhbGUuYyAoRVJST1JfUkVUVVJOKTogTGlrZXdpc2UuCgkqIGxvZ2luL2dldHV0aWRfciAoX19nZXR1dGlkX3IpOiBMaWtld2lzZS4KCSogbG9naW4vZ2V0dXRsaW5lX3IgKF9fZ2V0dXRsaW5lX3IpOiBMaWtld2lzZS4KCSogbG9naW4vbG9naW4uYyAodHR5X25hbWUpOiBMaWtld2lzZS4KCSogbG9naW4vb3V0dXRsaW5lX3IuYyAoX19wdXR1dGxpbmVfcik6IExpa2V3aXNlLgoJKiBtYWxsb2MvbWFsbG9jLmMgKG1vcmVjb3JlKTogTGlrZXdpc2UuCgkqIG1pc2MvZWZnY3Z0X3IuYyAoZmN2dF9yKTogTGlrZXdpc2UuCgkqIG1pc2MvaHNlYXJjaF9yLmMgKGhjcmVhdGVfcik6IExpa2V3aXNlLgoJKGhkZXN0cm95X3IpOiBMaWtld2lzZS4KCShoc2VhcmNoX3IpOiBMaWtld2lzZS4KCSogbnNzL25zc3dpdGNoLmMgKF9fbnNzX2NvbmZpZ3VyZV9sb29rdXApOiBMaWtld2lzZS4KCSogbnNzL25zc19kbnMvZG5zLWhvc3QuYyAoX25zc19kbnNfZ2V0aG9zdGJ5bmFtZTJfcik6IExpa2V3aXNlLgoJKF9uc3NfZG5zX2dldGhvc3RieWFkZHJfcik6IExpa2V3aXNlLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLVhYWC5jIChpbnRlcm5hbF9nZXRlbnQpOiBMaWtld2lzZS4KCSogbnNzL25zc19maWxlcy9maWxlcy1wYXJzZS5jIChwYXJzZV9saXN0KTogTGlrZXdpc2UuCgkqIHBvc2l4L2NvbmZzdHIuYyAoY29uZnN0cik6IExpa2V3aXNlLiAgRGUtQU5TSS1meS4KCSogcG9zaXgvZXhlY3ZwLmMgKGV4ZWN2cCk6IExpa2V3aXNlLgoJKiBwb3NpeC9nbG9iLmM6IERlZmluZSBfX3NldF9lcnJuby4KCShnbG9iKTogVXNlIF9fc2V0X2Vycm5vIHRvIHNldCBlcnJubyB2YXJpYWJsZS4KCShnbG9iX2luX2Rpcik6IExpa2V3aXNlLgoJKiBwd2QvZ2V0cHcuYzogTGlrZXdpc2UuIERlLUFOU0ktZnkuCgkqIHB3ZC9wdXRwd2VudC5jOiBMaWtld2lzZS4KCSogcmVzb2x2L2luZXRfbmV0X250b3AuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9pbmV0X25ldF9wdG9uLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvaW5ldF9uZXRhLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvaW5ldF9udG9wLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvaW5ldF9wdG9uLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX3F1ZXJ5LmMgKHJlc19zZWFyY2gpOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19zZW5kLmMgKEFlcnJvcik6IExpa2V3aXNlLgoJKFBlcnJvcik6IExpa2V3aXNlLgoJKHJlc19zZW5kKTogTGlrZXdpc2UuCgkqIHNpZ25hbC9zaWdhZGRzZXQuYzogTGlrZXdpc2UuICBEZS1BTlNJLWZ5LgoJKiBzaWduYWwvc2lnZGVsc2V0LmM6IExpa2V3aXNlLgoJKiBzaWduYWwvc2lnZW1wdHkuYzogTGlrZXdpc2UuCgkqIHNpZ25hbC9zaWdmaWxsc2V0LmM6IExpa2V3aXNlLgoJKiBzaWduYWwvc2lnaXNtZW0uYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2ZjbG9zZS5jOiBMaWtld2lzZS4KCSogc3RkaW8vZmVvZi5jOiBMaWtld2lzZS4KCSogc3RkaW8vZmVycm9yLmM6IExpa2V3aXNlLgoJKiBzdGRpby9mZmx1c2guYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2ZnZXRjLmM6IExpa2V3aXNlLgoJKiBzdGRpby9mZ2V0cG9zLmM6IExpa2V3aXNlLgoJKiBzdGRpby9mZ2V0cy5jOiBMaWtld2lzZS4KCSogc3RkaW8vZmlsZW5vLmM6IExpa2V3aXNlLgoJKiBzdGRpby9mbWVtb3Blbi5jOiBMaWtld2lzZS4KCSogc3RkaW8vZm9wZW4uYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2ZwdXRjLmM6IExpa2V3aXNlLgoJKiBzdGRpby9mcmVhZC5jOiBMaWtld2lzZS4KCSogc3RkaW8vZnJlb3Blbi5jOiBMaWtld2lzZS4KCSogc3RkaW8vZnNlZWsuYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2ZzZXRwb3MuYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2Z0ZWxsLmM6IExpa2V3aXNlLgoJKiBzdGRpby9md3JpdGUuYzogTGlrZXdpc2UuCgkqIHN0ZGlvL2dldGRlbGltLmM6IExpa2V3aXNlLgoJKiBzdGRpby9nZXRzLmM6IExpa2V3aXNlLgoJKiBzdGRpby9nbHVlLmM6IExpa2V3aXNlLgoJKiBzdGRpby9pbnRlcm5hbHMuYzogTGlrZXdpc2UuCgkqIHN0ZGlvL21lbXN0cmVhbS5jOiBMaWtld2lzZS4KCSogc3RkaW8vc2V0dmJ1Zi5jOiBMaWtld2lzZS4KCSogc3RkaW8vdW5nZXRjLmM6IExpa2V3aXNlLgoJKiBzdGRpby92c3NjYW5mLmM6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vcmVnLXByaW50Zi5jOiBMaWtld2lzZS4KCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmM6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vdmZzY2FuZi5jOiBMaWtld2lzZS4KCSogc3RkbGliL2Nhbm9uaWNhbGl6ZS5jOiBMaWtld2lzZS4KCSogc3RkbGliL21zb3J0LmM6IExpa2V3aXNlLgoJKiBzdGRsaWIvcmFuZG9tX3IuYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9zdHJmbW9uLmM6IExpa2V3aXNlLgoJKiBzdGRsaWIvc3RydG9kLmM6IExpa2V3aXNlLgoJKiBzdGRsaWIvc3RydG9sLmM6IExpa2V3aXNlLgoJKiBzdW5ycGMvYmluZHJzdnBydC5jOiBMaWtld2lzZS4KCSogdGltZS9hc2N0aW1lLmM6IExpa2V3aXNlLgoJKiB0aW1lL2xvY2FsdGltZS5jOiBMaWtld2lzZS4KCSogd2NzbWJzL21icnRvd2MuYzogTGlrZXdpc2UuCgkqIHdjc21icy9tYnNucnRvd2NzLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvbWJzcnRvd2NzLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NydG9tYi5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djc25ydG9tYnMuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3NydG9tYnMuYzogTGlrZXdpc2UuCgkqIHdjc21icy93Y3N0b2suYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvZ2VuZXJpYy9mdGltZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL3B0eS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL3NldGVudi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL3NwZWVkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvc3lzZC1zdGRpby5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL3VuYW1lLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2dlbmVyaWMvdmxpbWl0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9rX3N0YW5kYXJkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2xkZXhwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2xkZXhwZi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19sZGV4cGwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfc2NhbGIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3dfc2NhbGJmLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC93X3NjYWxibC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9kdXAyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L2V1aWRhY2Nlc3MuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvZmRvcGVuLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L2Zsb2NrLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L2ZwYXRoY29uZi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9nZXRjd2QuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvZ2V0dGltZW9mZGF5LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L2lzYXR0eS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9pc2ZkdHlwZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9raWxscGcuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvbWtzdGVtcC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9ta3RlbXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvcGF0aGNvbmYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvcGlwZXN0cmVhbS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9wb3NpeC9yZW1vdmUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvcmVuYW1lLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3NpZ2ludHIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvc2lnbmFsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3NpZ3N1c3BlbmQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvc2lndmVjLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3NsZWVwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3N5c2NvbmYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvc3lzdGVtLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3RlbXBuYW1lLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3RydW5jYXRlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3R0eW5hbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvcG9zaXgvdHR5bmFtZV9yLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L3dhaXQzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0YW5kYWxvbmUvY2xvc2UuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3RhbmRhbG9uZS9vcGVuLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0YW5kYWxvbmUvcmVhZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdGFuZGFsb25lL3dyaXRlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvX19sb25nam1wLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvYWNjZXB0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvYWNjZXNzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvYWNjdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2FkanRpbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9hbGFybS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2JpbmQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9icmsuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9jaGRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2NoZmxhZ3MuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9jaG1vZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2Nob3duLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvY2hyb290LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvY2xvY2suYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9jbG9zZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2Nsb3NlZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvY29ubmVjdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2N0ZXJtaWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9jdXNlcmlkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZGlyZmQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9kdXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9kdXAyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZXVpZGFjY2Vzcy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2V4ZWN2ZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2ZjaGRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2ZjaGZsYWdzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZmNobW9kLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZmNob3duLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZmNudGwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9mZG9wZW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9mZXhlY3ZlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZmxvY2suYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9mb3JrLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZnBhdGhjb25mLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZnN0YXRmcy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2ZzeW5jLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZnRydW5jYXRlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZnhzdGF0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0Y3dkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0ZGVudHMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRkb21haW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRkdHN6LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0ZWdpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldGVudi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldGV1aWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRnaWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRncm91cHMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRob3N0aWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRob3N0bmFtZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldGl0aW1lci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldGxvZ2luLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0bG9naW5fci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldHBhZ2VzaXplLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0cGVlcm5hbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRwaWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRwcGlkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvZ2V0cHJpb3JpdHkuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRybGltaXQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRydXNhZ2UuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRzaWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRzb2NrbmFtZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldHNvY2tvcHQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9nZXRzeXNzdGF0cy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldHRpbWVvZmRheS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2dldHVpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2d0dHkuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9pb2N0bC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2lzYXR0eS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2lzZmR0eXBlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIva2lsbC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2tpbGxwZy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2xpbmsuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9saXN0ZW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9sc2Vlay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2x4c3RhdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL21hZHZpY2UuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9ta2Rpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL21rZmlmby5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL21rc3RlbXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9ta3RlbXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9tbWFwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbW9yZWNvcmUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9tcHJvdGVjdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL21zZ2N0bC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL21zZ2dldC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL21zZ3Jjdi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL21zZ3NuZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL21zeW5jLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbXVubWFwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbmFub3NsZWVwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvbmljZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL25saXN0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvb3Blbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL29wZW5kaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9wYXRoY29uZi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3BhdXNlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcGlwZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3BpcGVzdHJlYW0uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9wb2xsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcHJvZmlsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcHRyYWNlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcHV0ZW52LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcmFpc2UuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9yZWFkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcmVhZGRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3JlYWRsaW5rLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcmVhZHYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9yZWJvb3QuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9yZWN2LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcmVjdmZyb20uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9yZWN2bXNnLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcmVtb3ZlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcmVuYW1lLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcmV2b2tlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcmV3aW5kZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvcm1kaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zYnJrLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2NoZWRfZ2V0cC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NjaGVkX2dldHMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zY2hlZF9wcmltYXguYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zY2hlZF9wcmltaW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zY2hlZF9ycl9naS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NjaGVkX3NldHAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zY2hlZF9zZXRzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2NoZWRfeWllbGQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZWVrZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2VsZWN0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2VtY3RsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2VtZ2V0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2Vtb3AuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZW5kLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2VuZG1zZy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NlbmR0by5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NldGRvbWFpbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NldGVnaWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRlbnYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRldWlkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2V0Z2lkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2V0Z3JvdXBzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2V0aG9zdGlkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2V0aG9zdG5hbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRpdGltZXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRqbXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRsb2dpbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NldHBnaWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRwcmlvcml0eS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NldHJlZ2lkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2V0cmV1aWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRybGltaXQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRzaWQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zZXRzb2Nrb3B0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2V0dGltZW9mZGF5LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2V0dWlkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2htYXQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zaG1jdGwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zaG1kdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NobWdldC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NodXRkb3duLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2lnYWN0aW9uLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2lnYWx0c3RhY2suYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zaWdibG9jay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NpZ2ludHIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zaWduYWwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zaWdwYXVzZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NpZ3BlbmRpbmcuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zaWdwcm9jbWFzay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NpZ3JldHVybi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NpZ3NldG1hc2suYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zaWdzdGFjay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NpZ3N1c3BlbmQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zaWd2ZWMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zbGVlcC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NvY2tldC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3NvY2tldHBhaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zc3RrLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc3RhdGZzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc3RpbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zdHR5LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc3dhcG9mZi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3N3YXBvbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3N5bWxpbmsuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zeW5jLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc3lzY2FsbC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3N5c2NvbmYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9zeXNkLXN0ZGlvLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc3lzdGVtLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvdGNkcmFpbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3RjZmxvdy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3RjZmx1c2guYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi90Y2dldGF0dHIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi90Y2dldHBncnAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi90Y3NlbmRicmsuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi90Y3NldGF0dHIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi90Y3NldHBncnAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi90ZWxsZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvdGVtcG5hbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi90aW1lLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvdGltZXMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi90cnVuY2F0ZS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3R0eW5hbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi90dHluYW1lX3IuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi91YWxhcm0uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi91bGltaXQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi91bWFzay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3VubGluay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3VzbGVlcC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3VzdGF0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvdXRpbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi91dGltZXMuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi92aGFuZ3VwLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvd2FpdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL3dhaXQzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvd2FpdDQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi93YWl0cGlkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvd3JpdGUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi93cml0ZXYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi94bWtub2QuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi94c3RhdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2Nsb3NlZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvZnhzdGF0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvZ2V0bG9naW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9nZXRsb2dpbl9yLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvbWtkaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9uaWNlLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvbmxpc3QuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9vcGVuZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvcmVhZGRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3JtZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3RpbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC94bWtub2QuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC94c3RhdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9pc2F0dHkuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2Qvc2V0ZWdpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9zZXRldWlkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3NldHNpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9zaWdhY3Rpb24uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2Qvc2lncHJvY21hc2suYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2Qvc2lnc3VzcGVuZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC90Y2Zsb3cuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2QvdGNmbHVzaC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC90Y2dldGF0dHIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2QvdGNzZXRhdHRyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3RpbWVzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3VsaW1pdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2NvbW1vbi9seHN0YXQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9jb21tb24vdGNzZW5kYnJrLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9zZXRybGltaXQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3NldHRpbWVvZmRheS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3Yvc2lnYWN0aW9uLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi90Y2Zsb3cuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3RjZmx1c2guYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3RjZ2V0YXR0ci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvdGNzZW5kYnJrLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi90Y3NldGF0dHIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2QvdWx0cml4NC9zeXNjb25mLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9pcml4NC9nZXRwcmlvcml0eS5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvaXJpeDQvc2V0cHJpb3JpdHkuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FkanRpbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dldGhvc3RpZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZ2V0aG9zdG5hbWUuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dldHN5c3N0YXRzLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wdHJhY2UuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NwZWVkLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC91bGltaXQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L3N5c3Y0L3NpZ2FjdGlvbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3Yvc3lzdjQvc3lzY29uZi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9zdW4vbTY4ay9zaWd0cmFtcC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9zdW4vc3BhcmMvc2lndHJhbXAuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2Qvc3VuL3N1bm9zNC9zcGVlZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC9zdW4vc3Vub3M0L3Rjc2V0YXR0ci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvaW9wZXJtLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L2Jyay5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9zaWdhY3Rpb24uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvYnJrLmM6IExpa2V3aXNlLgoKCSogc3VucnBjL2NsbnRfdGNwLmM6IFByb3RlY3QgZGVjbGFyYXRpb24gb2YgZXJybm8gYnkgI2lmbmRlZi4KCSogc3VucnBjL2NsbnRfdWRwLmM6IExpa2V3aXNlLgoJKiBzdW5ycGMvYmluZHJzdnBydC5jOiBMaWtld2lzZS4KCSogc3VucnBjL3BtX2dldG1hcHMuYzogTGlrZXdpc2UuCgkqIHN1bnJwYy9wbWFwX3JtdC5jOiBMaWtld2lzZS4KCSogc3VucnBjL3N2Yy5jOiBMaWtld2lzZS4KCSogc3VucnBjL3N2Y19ydW4uYzogTGlrZXdpc2UuCgkqIHN1bnJwYy9zdmNfdGNwLmM6IExpa2V3aXNlLgoJKiBzdW5ycGMvc3ZjX3VkcC5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zdHJ0b2suYzogRG9uJ3QgY2hlY2sgYXJndW1lbnQsIGp1c3QgY3Jhc2guCgkqIHN5c2RlcHMvZ2VuZXJpYy9zdHJ0b2tfci5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvc3R1Yi9zdGFydC5jOiBNYWtlIF9fZXJybm8gYSBzdHJvbmcgYWxpYXMgb2YgZXJybm8uCgkqIHN5c2RlcHMvdW5peC9zdGFydC5jOiBMaWtld2lzZS4gIERlLUFOU0ktZnkuCgkqIHN5c2RlcHMvdW5peC9zcGFyYy9zdGFydC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdGFuZGFsb25lL202OGsvbTY4MDIwL3N0YXJ0LlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9pcml4NC9zdGFydC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC91bHRyaXg0L21pcHMvc3RhcnQuUzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvc3lzZGVwLlM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2RlcC5TOiBMaWtld2lzZS4KCk1vbiBTZXAgMjMgMTc6NTQ6NTcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBjYXRnZXRzL2dlbmNhdC5jIChtYWluKTogUHV0IHBhY2thZ2UgbmFtZSBpbiAtLXZlcnNpb24gbWVzc2FnZQoJaW4gcGFyYW50aGVzZXMuICBSZXBvcnRlZCBieSBKaW0gTWV5ZXJpbmcuCgkqIGRiL21ha2VkYi5jOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZS5jOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZWRlZi5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvaTM4Ni9mcHUvX19tYXRoLmggKHRhbik6IE1ha2Ugc3VyZSBnY2Mga25vd3Mgd2UgdXNlCgl0d28gcmVnaXN0ZXJzLiAgUGF0Y2ggYnkgSm9obiBCb3dtYW4uCgpTYXQgU2VwIDIxIDE1OjA4OjI1IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9tYWNoL2xpYmMtbG9jay5oOiBGaXggY29tbWVudC4KCSogc3lzZGVwcy9zdHVicy9saWJjLWxvY2suaDogTGlrZXdpc2UuCgpTYXQgU2VwIDIxIDEzOjUwOjQwIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogbGliaW8vZ2Vub3BzLmMgKF9JT19pbml0KSBbX0lPX01UU0FGRV9JT106IERlcmVmZXJlbmNlIHBvaW50ZXIKCXRvIGxvY2sgd2hlbiBwYXNzaW5nIGl0IHRvIF9fbGliY19sb2NrX2luaXQgbWFjcm8uCgkoX0lPX2RlZmF1bHRfZmluaXNoKSBbX0lPX01UU0FGRV9JT106IERlcmVmZXJlbmNlIHBvaW50ZXIgdG8gbG9jawoJd2hlbiBwYXNzaW5nIGl0IHRvIF9fbGliY19sb2NrX2ZpbmkgbWFjcm8uCgpTYXQgU2VwIDIxIDE0OjM1OjQwIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9zeXNkZXAuaCAoU1lTQ0FMTF9FUlJPUl9IQU5ETEVSKQoJW19MSUJDX1JFRU5UUkFOVF06IEFkZCBtaXNzaW5nIHNlbWljb2xvbi4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzZGVwLlM6IE1vdmUgaW5jbHVzaW9uIG9mCglzeXNkZXAuaCB0byB0aGUgdG9wIG91dHNpZGUgb2YgI2lmbmRlZiBQSUMuICBEb24ndCBpbmNsdWRlIGVycm5vcy5oLgoJVXNlIHRoZSBFTlRSWSBtYWNyby4KClNhdCBTZXAgMjEgMTQ6MzM6NDEgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBsaWJpby9NYWtlZmlsZTogTWFrZSBgYWxsJyB0aGUgZGVmYXVsdCB0YXJnZXQuCgkqIHBvL01ha2VmaWxlOiBMaWtld2lzZS4KCk1vbiBTZXAgMjMgMTU6NDk6NDcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdGRsaWIvdGVzdC1jYW5vbi5jOiBDb3JyZWN0IHBhdGNoIGZyb20gVGh1IFNlcCAxMiAyMzowMToxNiAxOTk2LgoJSSBhcHBsaWVkIGl0IGluY29ycmVjdGx5LgoJKiBzeXNkZXBzL202OGsvZnB1L3Nfc2NhbGJuLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL202OGsvZnB1L3Nfc2NhbGJuZi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9zX3NjYWxibmwuYzogTGlrZXdpc2UuCgpNb24gU2VwIDIzIDAzOjAwOjEwIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc2hhZG93L3NnZXRzcGVudF9yLmMgKExJTkVfUEFSU0VSKTogQWNjZXB0IGVtcHR5IDl0aCBmaWVsZC4KCVBhdGNoIGJ5IE5JSUJFIFl1dGFrYSA8Z25paWJlQG1yaS5jby5qcD4uCgoJKiBzaGFkb3cvc2dldHNwZW50X3IuYyAoTElORV9QQVJTRVIpOiBEb24ndCBhY2NlcHQgYW55IGNoYXJzIGFmdGVyCgk5dGggZmllbGQuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZSBbJChzdWJkaXIpPT1taXNjXQoJKHN5c2RlcF9oZWFkZXJzKTogQWRkIHN5cy9kZWJ1Z3JlZy5oLCBzeXMva2QuaCwgc3lzL3NvdW5kY2FyZC5oLAoJYW5kIHN5cy92dC5oLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvZGVidWdyZWcuaDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9rZC5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3NvdW5kY2FyZC5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3Z0Lmg6IE5ldyBmaWxlLgoJUmVwb3J0ZWQgYnkgTklJQkUgWXV0YWthIDxnbmlpYmVAbXJpLmNvLmpwPi4KClRodSBTZXAgMjYgMTM6NDQ6MjkgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIGh1cmQvTWFrZWZpbGUgKGluc3RhbGxlZC1zdW5ycGMtaGVhZGVycyk6IE5ldyB2YXJpYWJsZS4KCShzdW5ycGMtaGVhZGVycyk6IE5ldyB2YXJpYWJsZS4KCShpbnN0YWxsLWhlYWRlcnMtbm9zdWJpcik6IERlcGVuZCBvbiAkKGluc3RhbGxlZC1zdW5ycGMtaGVhZGVycyksCglub3QganVzdCA8cnBjL25ldGRiLmg+LgoJKCQoaW5zdGFsbGVkLXN1bnJwYy1oZWFkZXJzKSk6IFByb3ZpZGUgcnVsZSBmb3IgYWxsIG9mIHRoZXNlLgoKTW9uIFNlcCAyMyAxNTozMTowNCAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogaHVyZC9NYWtlZmlsZSAoJChpbmNsdWRlZGlyKS9ycGMvbmV0ZGIuaCk6IFRoZXJlIGlzIG5vIG1ha2UKCXZhcmlhYmxlIGB0b3Bfc3JjZGlyJyBpbiBsaWJjOyB1c2UgJCguLikgaW5zdGVhZC4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL01ha2VmaWxlIChydGxkLWluc3RhbGxlZC1uYW1lKTogRGVsZXRlIHNwZWNpYWwKCWRlZmluaXRpb24uICBJdCB3YXMgYSAqTWlzdGFrZSouICAoV2l0aCBhIGNhcGl0YWwgTS4pCgoJKiBzeXNkZXBzL21hY2gvZ2V0c3lzc3RhdHMuYyAoX19nZXRfbnByb2NzKTogUmVuYW1lZCBmcm9tCglfX2dldF9ucHJvYy4KCShfX2dldF9ucHJvY3NfY29uZik6IFJlbmFtZWQgZnJvbSBfX2dldF9ucHJvY19jb25mLgoKU3VuIFNlcCAyMiAxNToxODo0MSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2luaXQtZmlyc3QuYzogRGVmaW5lIGR1bW15IGZ1bmN0aW9uCglgX2RsX3N0YXJ0JyBzbyB0aGF0IGxpbmtpbmcgZmFpbHMgaWYgdGhpcyBmaWxlIHNob3VsZCBldmVyIGJlIHVzZWQKCWluIGxkLnNvLgoKCSogY2F0Z2V0cy9nZW5jYXQuYyAobWFpbik6IENoYW5nZSAtLXZlcnNpb24gbWVzc2FnZSBhY2NvcmRpbmcgdG8KCVJNUycgbGFzdCBzdGFuZGFyZCByZXZpc2lvbi4KCSogZGIvbWFrZWRiLmM6IExpa2V3aXNlLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlLmM6IExpa2V3aXNlLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlZGVmLmM6IExpa2V3aXNlLgoKU2F0IFNlcCAyMSAyMzo0MjozOSAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2dldHN5c3N0YXRzLmM6IEluY2x1ZGUgPHN5cy9zeXNpbmZvLmg+LgoJKF9fZ2V0X25wcm9jX2NvbmYpOiBOZXcgZnVuY3Rpb24uCgpTdW4gU2VwIDIyIDAzOjQwOjUyIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogcmVzb2x2L3Jlc29sdi5oOiBVcGRhdGUgdG8gYmluZC00LjkuNS1UNEIuCgkqIHJlc29sdi9iYXNlNjQuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9yZXNfZGVidWcuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9yZXNfcXVlcnkuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9nZXRobmFtYWRkci5jOiBMaWtld2lzZS4KCSogbnNzL25zc19kbnMvZG5zLWhvc3QuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9yZXNfY29tcC5jOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19zZW5kLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvYXJwYS9uYW1lc2VyLmg6IExpa2V3aXNlLiAgQXR0ZW50aW9uOiBNQVhETkFNRSBpcyBtdWNoCgloaWdoZXIgbm93LgoKCSogcmVzb2x2L0Jhbm5lcjogTmV3IGZpbGUuCgkqIHJlc29sdi9NYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IEFkZCBCYW5uZXIuCgpTYXQgU2VwIDIxIDE5OjE1OjI0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9zdHViL2dldHN5c3N0YXRzLmM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9nZXRzeXNzdGF0cy5jOiBOZXcgZmlsZS4KCgkqIG1pc2MvTWFrZWZpbGUgKGhlYWRlcnMpOiBBZGQgc3lzL3N5c2luZm8uaC4KCShyb3V0aW5lcyk6IEFkZCBnZXRzeXNzdGF0cy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUgWyQoc3ViZGlyKT09bWlzY10KCShzeXNkZXBfaGVhZGVycyk6IFJlbW92ZSBzeXMvc3lzaW5mby5oLgoJKiBzeXNkZXBzL2dlbmVyaWMvc3lzL3N5c2luZm8uaDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9zeXNpbmZvLmg6IEFkZCBwcm90b3R5cGUgZm9yIGdldF9ucHJvY3MsCglnZXRfcGh5c19wYWdlcywgYW5kIGdldF9hdnBoeXNfcGFnZXMuCgoJKiBtaXNjL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBtbnRlbnRfci4KCSogbWlzYy9tbnRlbnRfci5jOiBOZXcgZmlsZS4KCSogbWlzYy9tbnRlbnQuYzogUmVtb3ZlIGFsbCBmdW5jdGlvbnMgYnV0IGdldG1udGVudCBhbmQgdXNlCglfX2dldG1udGVudF9yLgoJKiBtaXNjL21udGVudC5oOiBBZGQgcHJvdG90eXBlIGZvciBfX2dldG1udGVudF9yLgoJKiBtaXNjL2ZzdGFiLmM6IFVzZSBfX2dldG1udGVudF9yIGZ1bmN0aW9uIGluc3RlYWQgb2YgZ2V0bW50ZW50LgoJVGhpcyB3aWxsIG5vdCBjbG9iYmVyIHRoZSBzdGF0ZSBpbiBnZXRtbnRlbnQuCgoJKiBzeXNkZXBzL2dlbmVyaWMvY29uZm5hbWUuaDogQWRkIF9TQ19QUk9DRVNTT1JTX0NPTkYsCglfU0NfTlBST0NFU1NPUlNfT05MTiwgX1NDX1BIWVNfUEFHRVMsIF9TQ19BVlBIWVNfUEFHRVMsCglfU0NfQVRFWElUX01BWCwgYW5kIF9TQ19QQVNTX01BWC4KCSogc3lzZGVwcy9zdHViL3N5c2NvbmYuYzogQWRkIGhhbmRsaW5nIF9TQ19QUk9DRVNTT1JTX0NPTkYgYW5kCglfU0NfTlBST0NFU1NPUlNfT05MTiBieSBjYWxsaW5nIF9fZ2V0X25wcm9jcywgX1NDX1BIWVNfUEFHRVMgYnkKCWNhbGxpbmcgX19nZXRfcGh5c19wYWdlcywgX1NZX0FWUEhZU19QQUdFUyBieSBjYWxsaW5nCglfX2dldF9hdnBoeXNfcGFnZXMsIF9TQ19BVEVYSVRfTUFYIGFuZCBfU0NfUEFTU19NQVguCgkqIHN5c2RlcHMvcG9zaXgvc3lzY29uZi5jOiBMaWtld2lzZS4KCSogcG9zaXgvZ2V0Y29uZi5jICh2YXJzKTogQWRkIF9OUFJPQ0VTU09SU19DT05GLCBfTlBST0NFU1NPUlNfT05MTiwKCV9QSFlTX1BBR0VTLCBfQVZQSFlTX1BBR0VTLCBBVEVYSVRfTUFYLCBhbmQgUEFTU19NQVggZW50cmllcy4KClNhdCBTZXAgMjEgMDU6MjA6MzYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB2ZXJzaW9uLmggKFZFUlNJT04pOiBCdW1wIHRvIDEuOTUuCgoJKiBNYWtlLWRpc3QgKCt0c3Jjcyk6IERvbid0IGZpbHRlciBvdXQgZmlsZXMgaW4gc3ViZGlycyB3aGljaAoJbWF0Y2ggZmlsZXMgaW4gdGhlIHN5c2RlcHMgaGllcmFjaHkgKHdlbGNvbWUgYmFjaywKCXN5cy9zeXNjYWxsLmghKS4KCgkqIHJlc29sdi9NYWtlZmlsZSAobGlicmVzb2x2LXJvdXRpbmVzKTogUmVtb3ZlIGdldG5ldG5hbWFkLgoKU2F0IFNlcCAyMSAwMzowMDoxOSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxvY2FsZS9sb2FkbG9jYWxlLmMgKF9ubF9mcmVlX2xvY2FsZSk6IFJlbW92ZSBmdW5jdGlvbi4KCSogbG9jYWxlL2xvY2FsZWluZm8uaDogUmVtb3ZlIHByb3RvdHlwZSBmb3IgX25sX2ZyZWVfbG9jYWxlLgoJKiBsb2NhbGUvc2V0bG9jYWxlLmMgKHNldGxvY2FsZSk6IERvbid0IGZyZWUgbG9jYWxlIGRhdGEgb2YKCWNhdGVnb3JpZXMgd2hpY2ggc3VjY2VlZGVkIHRvIGxvYWQgYWZ0ZXIgYSB3cm9uZyBvciBtaXNzaW5nIGRhdGEKCWZpbGUgd2FzIG9ic2VydmVkLgoKCSogbG9jYWxlL3NldGxvY2FsZSAoc2V0bG9jYWxlKTogSW5pdGlhbGl6ZSBORVdOQU1FIGNvcnJlY3RseSBzbwoJdGhhdCBpdCB3b3JrcyBldmVuIHdoZW4gdGhlIGxvY2FsZSBkYXRhIGlzIG5vdCB1c2VkLgoKCSogc3RkbGliL3JhbmRvbV9yLmM6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgkqIHN0ZGxpYi9kcmFuZDQ4LWl0ZXIuYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9kcmFuZDQ4LmM6IExpa2V3aXNlLgoJKiBzdGRsaWIvZXJhbmQ0OC5jOiBMaWtld2lzZS4KCSogc3RkbGliL2pyYW5kNDguYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9sY29uZzQ4LmM6IExpa2V3aXNlLgoJKiBzdGRsaWIvbHJhbmQ0OC5jOiBMaWtld2lzZS4KCSogc3RkbGliL21yYW5kNDguYzogTGlrZXdpc2UuCgkqIHN0ZGxpYi9ucmFuZDQ4LmM6IExpa2V3aXNlLgoJKiBzdGRsaWIvcmFuZG9tLmM6IExpa2V3aXNlLgoJKiBzdGRsaWIvc2VlZDQ4LmM6IExpa2V3aXNlLgoJKiBzdGRsaWIvc3JhbmQ0OC5jOiBMaWtld2lzZS4KCSogbWlzYy9zZWFyY2guaDogTGlrZXdpc2UuCgkqIG1pc2MvaHNlYXJjaC5jOiBMaWtld2lzZS4KCSogbWlzYy9oc2VhcmNoX3IuYzogTGlrZXdpc2UuCgpTYXQgU2VwIDIxIDE0OjU5OjIyIDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvZ2V0c3lzc3RhdHMuYzogTmV3IGZpbGUuCgoJKiBzaGxpYi12ZXJzaW9ucyAoKi0qLWdudSopOiBJbmNyZW1lbnQgbGliYyB0byAwLjIgZm9yIHVwY29taW5nCgliaW5hcnkgZGlzdHJpYnV0aW9uLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvTWFrZWZpbGUgKHJ0bGQtaW5zdGFsbGVkLW5hbWUpOiBQcm92aWRlCglkZWZpbml0aW9uIHRvIG92ZXJyaWRlIGRhbmdlcm91cyBvbmUgaW4gTWFrZWNvbmZpZy4KCgkqIGh1cmQvTWFrZWZpbGUgKGluc3RhbGwtaGVhZGVycy1ub3N1YmRpcik6IEluc3RhbGwgPHJwYy9uZXRkYi5oPi4KCSgkKGluY2x1ZGVkaXIpL3JwYy9uZXRkYi5oKTogTmV3IHJ1bGUuCglbIFRoaXMgaXMgWFhYIHVudGlsIHN1bnJwYyBjYW4gYmUgYnVpbHQ7IDxycGMvbmV0ZGIuaD4gaXMKCWVzc2VudGlhbC4gXQoKRnJpIFNlcCAyMCAxNjowNjowNiAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvaTM4Ni9pbml0LWZpcnN0LmMgKF9kbF9zdGFydCk6IEFkZCBkZWZpbml0aW9uLAoJdG8gZ3VhcmFudGVlIGxpbmsgZXJyb3JzIGlmIHRoaXMgaXMgaW5jbHVkZWQgaW4gbGQuc28uCgpUaHUgU2VwIDE5IDIxOjUwOjU1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9wb3NpeC9nZXR0aW1lb2ZkYXkuYyAoX19nZXR0aW1lb2ZkYXkpOiBVc2UgbG9jYWx0aW1lX3IKCWluc3RlYWQgb2YgbG9jYWx0aW1lLgoJUmVwb3J0ZWQgYnkgTWF0dGhpYXMgVXJsaWNocy4KCgkqIHNobGliLXZlcnNpb25zOiBSZW1vdmUgdmVyc2lvbiBudW1iZXIgZm9yIGxpYmNyeXB0LgoJKiBmZWF0dXJlcy5oOiBEZWZpbmUgX19VU0VfUkVFTlRSQU5UIGlmIF9SRUVOVFJBTlQgb3IgX1RIUkVBRF9TQUZFLgoJKiBsaWJjLXN5bWJvbHMuaDogRGVmaW5lIF9SRUVOVFJBTlQgd2hpbGUgY29tcGlsaW5nIGxpYmMuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3N5c2RlcC5TIChfX2Vycm5vX2xvY2F0aW9uKToKCURlZmluZSBldmVuIGlmICFfTElCQ19SRUVOVFJBTlQuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvc3lzZGVwLlMgKF9fZXJybm9fbG9jYXRpb24pOgoJTGlrZXdpc2UuCgoJKiBzeXNkZXBzL3Bvc2l4L2N1c2VyaWQuaDogUmVtb3ZlIHByb3RvdHlwZSBmb3IgZ2V0ZXVpZCgpLgoJRGUtQU5TSS1meS4KCgkqIE1ha2VUQUdTICgkUC9saWJjLnBvdCk6IEdlbmVyYXRlIGNvcnJlY3RseSBmb3JtZWQgaGVhZGVyLgoJKiBwby9oZWFkZXIucG90OiBDb3JyZWN0IHRpdGxlIGxpbmUuCgkqIHBvL25sLnBvOiBVcGRhdGUuCgpUaHUgU2VwIDE5IDE4OjU5OjU1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZWNvbmZpZyAoc292ZXJzaW9ucy5tayk6IFByZWZlciBzaGFyZWQgbGliIHZlcnNpb24gbnVtYmVycwoJaXMgYWRkIG9ucyBvdmVyIHZlcnNpb24gaW4gbGliYyBpdHNlbGYuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3N5c2RlcC5TOiBJbmNsdWRlIDxzeXNkZXAuaD4uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvc3lzZGVwLmg6IFByZXZlbnQgbXVsdGlwbGUKCWluY2x1c2lvbi4KCgkqIGxpYmlvL2lvZmdldHMuYzogVXNlIF9fZmxvY2tmaWxlIGFuZCBfX2Z1bmxvY2tmaWxlIGluc3RlYWQgb2YKCV9JT19mbG9ja2ZpbGUgYW5kIF9JT19mdW5sb2NrZmlsZSByZXNwLgoKCSogbG9jYWxlL2NhdGVnb3JpZXMuZGVmOiBQYXJ0bHkgc3VwcG9ydCBmb3IgY29ycmVjdCBgZXJhJyBoYW5kbGluZwoJaW4gTENfVElNRSBjYXRlZ29yeS4KCSogbG9jYWxlL2xhbmdpbmZvLmg6IExpa2V3aXNlLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtdGltZS5jOiBMaWtld2lzZS4KCSogbG9jYWxlL2xvY2FsZWluZm8uaDogQ2hhbmdlIGNvbW1lbnQgYSBiaXQuCgoJKiBtYWxsb2MvbWVtYWxpZ24uYzogRG9uJ3QgdXNlIGdvdG8sIG5vdCBuZWNlc3NhcnkgYW55bW9yZS4KCjE5OTYtMDktMTggIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QHR3aW5zdW4uY29tPgoKCSogdGltZS9ta3RpbWUuYyAoeWRobXNfdG1fZGlmZik6ICBXb3JrIGNvcnJlY3RseSBldmVuIGlmIHllYXIKCWlzIG5lZ2F0aXZlLCBvciBpZiB0aW1lX3QgaXMgdW5zaWduZWQuCgkqIHRpbWUvc3RyZnRpbWUuYyAodG1fZGlmZik6IFdvcmsgY29ycmVjdGx5IGV2ZW4gaWYgdG1feWVhcgoJaXMgbmVhciBJTlRfTUlOLgoKVHVlIFNlcCAxNyAxNjoxNDozNCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvbTY4ay9mcHUvX19tYXRoLmggKF9faW5saW5lX21hdGhvcCk6IENoYW5nZWQgdG8gZ2VuZXJhdGUKCWFsbCB0aHJlZSB2ZXJzaW9ucyBvZiB0aGUgbWF0aCBmdW5jdGlvbi4KCShfX2lubGluZV9tYXRob3BmLCBfX2lubGluZV9tYXRob3BsKTogUmVtb3ZlZC4KCShfX2lubGluZV9mdW5jdGlvbnMpOiBOZXcgdGVtcG9yYXJ5IGRlZmluaXRpb24gY29udGFpbmluZyBhbGwKCW5vbi10cml2aWFsIGlubGluZSBmdW5jdGlvbnMuCgpXZWQgU2VwIDE4IDAwOjI1OjQxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdGltZS9zdHJmdGltZS5jIChzdHJmdGltZSk6IFRoZSBUX0ZNVF9BTVBNIHN0cmluZyBtYXkgYmUgZW1wdHkuCgpUdWUgU2VwIDE3IDIwOjI3OjE4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbWF0aC9NYWtlZmlsZSAoZXh0cmEtbGlicy1vdGhlcnMpOiBVc2UgJChleHRyYS1saWJzKSBpbnN0ZWFkCglvZiAkKGV4dHJhLWxpYmMpLgoKVHVlIFNlcCAxNyAxNzowOTo0NCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvc3R1Yi9mcHVfY29udHJvbC5oOiBDb3JyZWN0IGVuZCBvZiBmaWxlIGNvbW1lbnQuCgpUdWUgU2VwIDE3IDA1OjM5OjE4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RkaW8tY29tbW9uL2J1ZzMuYywgc3RkaW8tY29tbW9uL2J1ZzQuYywgc3RkaW8tY29tbW9uL2J1ZzUuYywKCXN0ZGlvLWNvbW1vbi90ZXN0LXBvcGVuLmM6IFJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMgYWZ0ZXIgdGVzdC4KCSogc3RkaW8tY29tbW9uL2J1ZzUuYzogVXNlIGBzeXN0ZW0nIGluc3RlYWQgb2YgYGV4ZWNscCcuCglQYXRjaGVzIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKCSogc3RkaW8tY29tbW9uL2J1ZzUuYzogQ3JlYXRlIHN0cmluZyBmb3IgYHN5c3RlbScgYXJndW1lbnQgdG8KCW1ha2Ugc3VyZSB0aGUgaW5wdXQgYW5kIG91dHB1dCBmaWxlIG5hbWVzIGFyZSByZWFsbHkgY29ycmVjdC4KClN1biBTZXAgMTUgMTI6NDY6NDQgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBjb25maWd1cmUuaW46IElmICRvcyBjb250YWlucyBhIGh5cGhlbiBhZGQgdGhlIHBhcnQgYmVmb3JlIHRoZQoJaHlwaGVuIHRvICRvc3RyeS4KClN1biBTZXAgMTUgMTg6MTQ6MDIgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL202OGsvZnB1L19fbWF0aC5oIChfX2llZWU3NTRfcG93LCBfX2llZWU3NTRfcG93ZiwKCV9faWVlZTc1NF9wb3dsKTogUmVuYW1lIGxvY2FsIHZhcmlhYmxlIGkgdG8gX19pLgoJKF9faWVlZTc1NF9hdGFuMiwgX19pZWVlNzU0X2F0YW4yZiwgX19pZWVlNzU0X2F0YW4ybCk6IE5ldyBpbmxpbmUKCWZ1bmN0aW9ucy4KCSogc3lzZGVwcy9tNjhrL2ZwdS9lX2F0YW4yLmMsIHN5c2RlcHMvbTY4ay9mcHUvZV9hdGFuMmYuYywKCXN5c2RlcHMvbTY4ay9mcHUvZV9hdGFuMmwuYzogTmV3IGZpbGVzLgoKMTk5Ni0wOS0xNSAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiBtYW51YWwvdGltZS50ZXhpOiBDaGFuZ2UgYHJhbmdlIFggdG8gWScgdG8gYHJhbmdlIFggdGhyb3VnaAoJWScsIHRvIGF2b2lkIGFtYmlndWl0eSBpbiBFbmdsaXNoLgoKCShzdHJmdGltZSk6IE51bWJlcnMgdGhhdCBkbyBub3QgaGF2ZSBhIHJhbmdlIGluZGljYXRlZCBhcmUgbm90IHBhZGRlZC4KCURlc2NyaWJlIEUgYW5kIE8gbW9kaWZpZXJzLgoJJWcsICVHLCAldTogTmV3IGZvcm1hdHMuCgklQywgJXksICVZOiBEZXNjcmliZSBiZWhhdmlvciBvbiBuZWdhdGl2ZSB5ZWFycy4KCSVlOiBGaXggdHlwbyAod2FzIGxhYmVsZWQgJWQpLgoJJWwsICVWOiBGaXggdHlwbyBpbiByYW5nZS4KCSVNLCAlUywgJVUsICV3LCAlVzogR2l2ZSByYW5nZXMuCgklcDogQ2xhcmlmeSBob3cgbm9vbiBhbmQgbWlkbmlnaHQgYXJlIGhhbmRsZWQgZm9yIEFNIGFuZCBQTS4KCSVzOiBDbGFyaWZ5IGxlYXAgc2Vjb25kIGhhbmRsaW5nLgoJJXI6IE5vdyBsb2NhbGUtZGVmaW5lZC4KCSVDLCAlRCwgJWUsICVoLCAlbiwgJXIsICV0LCAlVDogU2F5IHRoYXQgdGhleSBhcmUgUE9TSVguMiBleHRlbnNpb25zLgoJJXo6IFNheSB0aGF0IGl0IGlzIGEgR05VIGV4dGVuc2lvbi4KCSVaOiBXb3JkaW5nIGZpeC4KCgkqIHRpbWUvc3RyZnRpbWUuYzogKHN0cmZ0aW1lKToKCQklVjogRml4IG1pc2hhbmRsaW5nIG9mIHdlZWsgbnVtYmVycyBuZWFyIHllYXIgYm91bmRhcmllcy4KCQklZywgJUc6IE5ldyBmb3JtYXRzIChzdWdnZXN0ZWQgYnkgQXJ0aHVyIERhdmlkIE9sc29uKS4KCQklVSwgJVc6IFVzZSBpbmxpbmUgZXhwcmVzc2lvbiBpbnN0ZWFkIG9mIGB3ZWVrJyBmdW5jdGlvbi4KCQklQywgJXk6IEhhbmRsZSBuZWdhdGl2ZSB5ZWFycyBwb3J0YWJseS4KCQklQywgJVk6IFVzZSB3aWR0aCAxLCBzaW5jZSB2YWx1ZXMgY2FuIGJlIGFyYml0cmFyaWx5IHdpZGUuCgkJJXI6IFVzZSBUX0ZNVF9BTVBNIGZvcm1hdCBpZiBfTkxfQ1VSUkVOVCBpcyBkZWZpbmVkLgoJCSV1OiBOZXcgUG9zaXguMiBmb3JtYXQuCgkJJXc6IFdpZHRoIGlzIDEsIG5vdCAyLgoJKGlzb193ZWVrX2RheXMpOiBOZXcgZnVuY3Rpb24sIGZvciAlViwgJUcsICVnLgoJKHdlZWspOiBSZW1vdmU7IGl0IGRpZG4ndCBoYW5kbGUgJVYgY29ycmVjdGx5LgoJKF9faXNsZWFwKTogTmV3IG1hY3JvLgoJKG1ic2luaXQpOiBVc2UgYXJnLCB0byBwYWNpZnkgR0NDIC1XYWxsLgoKMTk5Ni0wOS0xMyAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiB0aW1lL3N0cmZ0aW1lLmMgKHN0cmZ0aW1lKToKCUlmIHVzaW5nIHRoZSBHTlUgQyBsaWJyYXJ5LCBkbyBub3QgYm90aGVyIHRvIGNoZWNrIGZvcgoJbXVsdGlieXRlIGVuY29kaW5ncywgc2luY2UgdGhleSdyZSBzYWZlIGluIGZvcm1hdHMuICBPdGhlcndpc2U6CgkgIC0gQ2hlY2sgZm9yIG11bHRpYnl0ZSBlbmNvZGluZ3Mgd2hlbiBlbmNvdW50ZXJpbmcgYW55IGNoYXJhY3RlciB0aGF0CgkgIGlzIG5vdCBpbiB0aGUgYmFzaWMgZXhlY3V0aW9uIGNoYXJhY3RlciBzZXQgb2YgdGhlIEMgU3RhbmRhcmQuCgkgIC0gVXNlIG1icmxlbiAoaWYgYXZhaWxhYmxlKSBpbnN0ZWFkIG9mIG1ibGVuLCB0byBhdm9pZCBtb2RpZnlpbmcKCSAgbWJsZW4ncyBpbnRlcm5hbCBzdGF0ZS4KCSAgLSBEbyBub3QgYXNzdW1lIHRoYXQgJyUnIGNhbm5vdCBhcHBlYXIgYXMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBhCgkgIG11bHRpYnl0ZSBjaGFyYWN0ZXIgc2VxdWVuY2UsIHNpbmNlIHRoaXMgaXMgcG9zc2libGUgd2hlbiBub3QgaW4gdGhlCgkgIGluaXRpYWwgc2hpZnQgc3RhdGUuCgkoSEFWRV9NQlJMRU4sIE1VTFRJQllURV9JU19GT1JNQVRfU0FGRSk6IERlZmluZSBpZiBfTElCQyBpcyBkZWZpbmVkLgoJKERPX01VTFRJQllURSk6IE5ldyBtYWNyby4KCSg8Y3R5cGUuaD4pOiBEbyBub3QgaW5jbHVkZS4KCSg8d2NoYXIuaD4pOiBJbmNsdWRlIGlmIEhBVkVfTUJSTEVOLgoJKG1ic3RhdGVfdCwgbWJybGVuLCBtYnNpbml0KTogRGVmaW5lIGlmICEgSEFWRV9NQlJMRU4uCgkobWJzdGF0ZV96ZXJvKTogTmV3IGNvbnN0YW50LgoKMTk5Ni0wOS0xMiAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiB0aW1lL3N0cmZ0aW1lLmMgKHN0cmZ0aW1lKToKCVVzZSBhbiBlbXB0eSB6b25lIGlmIGl0IGNhbid0IGJlIGRldGVybWluZWQ7IFBPU0lYLjIgcmVxdWlyZXMgdGhpcy4KCVVzZSBwbGFpbiBgaW50JyBmb3IgcGFkIGFuZCBtb2RpZmllciAod2hpY2ggbm93IGNvbnRhaW4gY2hhciB2YWx1ZSkuCglVc2UgcGxhaW4gYGludCcgZm9yIG51bWJlcl92YWx1ZSwgdG8gcHJpbnQgbmVnYXRpdmUgdmFsdWVzIGNvcnJlY3RseS4KCVVzZSBwbGFpbiBgaW50JyBmb3IgZGlnaXRzOyB0aGVyZSB3YXMgbm8gbmVlZCB0byBtYWtlIGl0IHVuc2lnbmVkLgoJSW5pdGlhbGl6ZSBzdWJmbXQgY29uc2lzdGVudGx5LgoJUmVtb3ZlIGluY29ycmVjdCBjb2RlIGZvciAlRUMgYW5kICVFeTsgdGhleSBhcmVuJ3QgaW1wbGVtZW50ZWQgeWV0LgoJRm9yICVPLCBpZiB0aGVyZSBpcyBubyBhbHRlcm5hdGUgZGlnaXQsIG91dHB1dCBBc2NpaSBpbnN0ZWFkIG9mICIiLgoJT3V0cHV0IHRoZSBgJScgb2YgYW4gdW5rbm93biBmb3JtYXQ7IHRoaXMgaXMgbW9zdCBsaWtlbHkgdGhlIHJpZ2h0Cgl0aGluZyB0byBkbyBpZiBhIG11bHRpYnl0ZSBzdHJpbmcgaGFzIGJlZW4gbWlzcGFyc2VkLgoKVGh1IFNlcCAxMiAyMzoyMzoxMyAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN0ZGlvLWNvbW1vbi9zY2FuZjcuYyAobWFpbik6IFJlbW92ZSBleHRyYSBjb252ZXJzaW9uIGZyb20KCXByaW50ZiBmb3JtYXQgc3RyaW5nLgoKVGh1IFNlcCAxMiAyMzowMToxNiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN0ZGxpYi90ZXN0LWNhbm9uLmMgKHRlc3RzKTogUmVuYW1lIHN0cnVjdHVyZSBtZW1iZXIgZnJvbSBlcnJubwoJdG8gZXJyb3IsIGFsbCB1c2VzIGNoYW5nZWQuCgpUaHUgU2VwIDEyIDIwOjA4OjA2IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9tNjhrL2ZwdS9fX21hdGguaCAoX19sZGV4cCwgX19sZGV4cGYsIF9fbGRleHBsKToKCVJlbW92ZWQuCgkqIHN5c2RlcHMvbTY4ay9mcHUvc19sZGV4cC5jLCBzeXNkZXBzL202OGsvZnB1L3NfbGRleHBmLmMsCglzeXNkZXBzL202OGsvZnB1L3NfbGRleHBsLmM6IFJlbW92ZWQsIHVzZSBnZW5lcmljIGltcGxlbWVudGF0aW9uCglpbnN0ZWFkLgoJKiBzeXNkZXBzL202OGsvZnB1L3Nfc2NhbGJuLmMsIHN5c2RlcHMvbTY4ay9mcHUvc19zY2FsYm5mLmMsCglzeXNkZXBzL202OGsvZnB1L3Nfc2NhbGJubC5jOiBSZXBsYWNlZCB3aXRoIG9sZCBjb250ZW50cyBvZgoJc19sZGV4cC5jLCBzX2xkZXhwZi5jIGFuZCBzX2xkZXhwbC5jLCByZXNwLiwgc3VpdGFibHkgYWRwdGVkLgoKCSogc3lzZGVwcy9tNjhrL2ZwdS9fX21hdGguaCAoX19mcmV4cCwgX19mcmV4cGYsIF9fZnJleHBsKToKCVJldHVybiB2YWx1ZSBtdXN0IGJlIGluIFswLjUsIDEpLCBub3QgWzEsIDIpLiAgUmVwb3J0ZWQgYnkgQ2hyaXMKCUxhd3JlbmNlLgoJKF9faWxvZ2IsIF9faWxvZ2JmLCBfX2lsb2dibCk6IENoZWNrIGZvciBhcmd1bWVudCBiZWluZyB6ZXJvLgoJKF9fc2NhbGJuLCBfX3NjYWxibmYsIF9fc2NhbGJubCk6IFVzZSBzZWNvbmQgYXJndW1lbnQgZGlyZWN0bHkuCgpUaHUgU2VwIDEyIDE5OjU5OjI0IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9saWJtLWllZWU3NTQvZV9hY29zaGwuYzogRml4IHR5cG9zLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2NicnRsLmM6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgpUaHUgU2VwIDEyIDE5OjU5OjI0IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9saWJtLWllZWU3NTQvZV9hY29zaGwuYzogRml4IHR5cG9zLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2NicnRsLmM6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgpUaHUgU2VwIDEyIDE5OjU2OjA3IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogaW5ldC9oZXJybm8uYyAoX19oX2Vycm5vX2xvY2F0aW9uKTogRml4IHJldHVybiB0eXBlLgoKVGh1IFNlcCAxOSAyMzozNjoxOSAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogaHVyZC9odXJkaW5pdC5jIChfX2xpYmNfYXJndik6IFByb3ZpZGUgY29tbW9uIGRlY2wuCgkoX2h1cmRfc2V0cHJvYyk6IERvbid0IGRlY2xhcmUgX19saWJjX2FyZ3YgaGVyZS4KClR1ZSBTZXAgMTcgMTA6NTE6NTggMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIG1hbGxvYy9tZW1hbGlnbi5jIChtZW1hbGlnbik6IE9ubHkgYWNxdWlyZSBfX2xpYmNfbWFsbG9jX2xvY2sKCWZvciBhY3R1YWwgbW9kaWZpY2F0aW9ucyB0byBnbG9iYWwgc3RhdGUuCgpGcmkgU2VwIDEzIDAxOjIxOjM2IDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvTWFrZWZpbGUgKGluY2x1ZGVzKTogQWRkIC1JJChjb21tb24tb2JqcGZ4KW1hY2gvLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9NYWtlZmlsZSAoaW5jbHVkZXMpOiBBZGQKCS1JJChjb21tb24tb2JqcGZ4KWh1cmQvLiAgUmVwb3J0ZWQgYnkgTWFyY3VzIERhbmllbHMuCgoJKiBzeXNkZXBzL2dlbmVyaWMvc2NoZWRiaXRzLmggKHN0cnVjdCBzY2hlZF9wYXJhbSk6IFJlbmFtZWQgZnJvbQoJc3RydWN0IHNjaGVkX3BhcmFtcy4KCSogc3lzZGVwcy9zdHViL3NjaGVkX3NldHAuYyAoX19zY2hlZF9zZXRwYXJhbSk6IHN0cnVjdAoJc2NoZWRfcGFyYW1zIC0+IHN0cnVjdCBzY2hlZF9wYXJhbS4KCSogc3lzZGVwcy9zdHViL3NjaGVkX2dldHAuYyAoX19zY2hlZF9nZXRwYXJhbSk6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvc2NoZWRfc2V0cy5jIChfX3NjaGVkX3NldHNjaGVkdWxlcik6IExpa2V3aXNlLgoKVGh1IFNlcCAxMiAyMzo1ODoyNSAxOTk2ICBUaG9tYXMgQnVzaG5lbGwsIG4vQlNHICA8dGhvbWFzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2xpYmMtbG9jay5oIChfX2xpYmNfY2xlYW51cF9yZWdpb25fc3RhcnQpOiBGaXgKCXN5bnRheCBlcnJvci4KCgkqIHN0ZGlvLWNvbW1vbi9NYWtlZmlsZTogUHV0IGxvY2tmaWxlIGluIHJvdXRpbmVzCgl1bmNvbmRpdGlvbmFsbHkuCglEZWZpbmUgX01UX1NBRkVfSU8gaWYgdXNpbmcgZm9yIGxpYmlvIGFuZCBjb21waWxpbmcgcmVlbnRyYW50CglsaWJjLgoKCSogc3RkaW8tY29tbW9uL3ZmcHJpbnRmLmMgKF9fZmxvY2tmaWxlLCBfX2Z1bmxvY2tmaWxlKTogRGVjbGFyZQoJdGhpcyBhbHdheXMsIG5vdCBqdXN0IGlmIF9MSUJDX1JFRU5UUkFOVC4KCShfX2Z1bmxvY2tmaWxlKTogRG9uJ3QgdXNlIHdlYWtfZXh0ZXJuIGZvciB0aGlzIG9uZTsKCV9fbGliY19jbGVhbnVwX3JlZ2lvbl9lbmQgbWlnaHQgYmUgZGVmaW5lZCBhbmQgdGhlIHVzZSBvZgoJX19mdW5sb2NrZmlsZSBjYW4ndCBiZSBwcm90ZWN0ZWQgdGhlIHdheSB0aGUgdXNlIG9mIF9fZmxvY2tmaWxlCgljYW4gYmUuCgpGcmkgU2VwIDEzIDA0OjMzOjA4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc2NoZWQuaDogTmV3IGZpbGUuICBIZWxwZXIgdG8gYWNjZXNzIHBvc2l4L3NjaGVkLmguCgkqIHBvc2l4L3NjaGVkLmg6IENoYW5nZSBgc2NoZWRfcGFyYW1zJyB0byBgc2NoZWRfcGFyYW0nIHRvIGZvbGxvdwoJUE9TSVguNC4KClRodSBTZXAgMTIgMjA6MTI6NDAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBkYi9tYWtlZGIuYyAodXNhZ2UpOiBQcmludCBidWcgcmVwb3J0IGFkZHJlc3Mgc2VwYXJhdGVseSB0bwoJZWFzZSB0cmFuc2xhdG9ycyB0YXNrLgoJKiBjYXRnZXRzL2dlbmNhdC5jICh1c2FnZSk6IExpa2V3aXNlLgoJKiBsb2NhbGUvbG9jYWxlLmMgKHVzYWdlKTogTGlrZXdpc2UuCgkqIGxvY2FsZS9sb2NhbGVkZWYuYyAodXNhZ2UpOiBMaWtld2lzZS4KCjE5OTYtMDktMTIgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QHR3aW5zdW4uY29tPgoKCSogdGltZS9zdHJmdGltZS5jIChteV9sb2NhbHRpbWVfcik6IERlZmluZSBpZiAhIEhBVkVfTE9DQUxUSU1FX1IsCglhbmQgI2RlZmluZSBsb2NhbHRpbWVfciB0byBpdC4JSWYgX0xJQkMsIHVzZSBfX2xvY2FsdGltZV9yIGluc3RlYWQuCgkobXlfZ210aW1lX3IpOiBTaW1pbGFyLCBleGNlcHQgaXQncyBub3QgbmVlZGVkIGlmICEgSEFWRV9UTV9HTVRPRkYuCgpUaHUgU2VwIDEyIDE0OjAzOjI5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogY3J5cHQvTWFrZWZpbGU6IEluY2x1ZGUgTWFrZWNvbmZpZyBhbmQgYWRkIGNyeXB0IG9iamVjdCBkaXIgdG8KCXJwYXRoLWxpbmsgc28gdGhhdCBydW5uaW5nIHRoZSBjaGVjayBmaW5kcyB0aGUgbmV3IGxpYnJhcnkuCgkqIGNyeXB0L2NlcnQuYzogcHJvdmlkZSBjb3JyZWN0IHByb3RvdHlwZXMgdG8gcHJldmVudCB3YXJuaW5ncy4KCVJlcG9ydGVkIGJ5IEFuZHJlYXMgSmFlZ2VyLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvTWFrZWZpbGUgKHJwYXRoLWxpbmspOiBEb24ndCB1c2UgKz0gYmVjYXVzZQoJb2xkIGFuZCBuZXcgdmFsdWUgbXVzdCBiZSBnbHVlZCB1c2luZyBgOicuCglSZXBvcnRlZCBieSBNYXJjdXMgRGFuaWVscy4KClRodSBTZXAgMTIgMTI6MzM6NTIgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2RsLWNhY2hlLmM6IERlbGV0ZSBzZWNvbmQgY29weSBvZiBmaWxlCglhY2NpZGVudGFsbHkgYWRkZWQgb24uCgoJKiBzeXNkZXBzL3N0dWIvaW50ci1tc2cuaDogTmV3IGZpbGUuCgoJKiBzdGRpby1jb21tb24vdmZwcmludGYuYzogSW5jbHVkZSA8bGliYy1sb2NrLmg+LgoJKiBzdGRpby1jb21tb24vdmZzY2FuZi5jOiBJbmNsdWRlIDxsaWJjLWxvY2suaD4uCgoJKiBzeXNkZXBzL21hY2gvbGliYy1sb2NrLmggKF9fbGliY19jbGVhbnVwX3JlZ2lvbl9zdGFydCk6IE5ldwoJbWFjcm8uCgkoX19saWJjX2NsZWFudXBfcmVnaW9uX2VuZCk6IE5ldyBtYWNyby4KClRodSBTZXAgMTIgMDM6MzU6MjcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L0Rpc3Q6IFJlbW92ZSBpbml0LWZpcnN0LmguCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvRGlzdDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L0Rpc3Q6IEFkZCBpbml0LWZpcnN0LmguCgoxOTk2LTA5LTExICBQYXVsIEVnZ2VydCAgPGVnZ2VydEB0d2luc3VuLmNvbT4KCgkqIHN0cmZ0aW1lLmMgKHN0cmZ0aW1lKToKCUhhbmRsZSBFIGFuZCBPIG1vZGlmaWVycywgcmVxdWlyZWQgZm9yIFBPU0lYLjIgYW5kIFhQRzQuCglEb24ndCB1c2Ugc3ByaW50ZiB0byBmb3JtYXQgbnVtYmVyczsgdGhpcyB3YXksIHdlIGNhbiBoYW5kbGUgdGltZV90Cgljb3JyZWN0bHkgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0J3Mgc2lnbmVkLgoJRG9uJ3QgZHVtcCBjb3JlIGlmIGZvcm1hdCBlbmRzIGluICUuCglJbiBkZWZhdWx0ICVjIGZvcm1hdCwgdXNlICVlIGluc3RlYWQgb2YgJWQsIGZvciBQT1NJWC4yIGNvbXBhdGliaWxpdHkuCglGb3IgJXo6CgkJVXNlIHRtX2dtdG9mZiBpZiBhdmFpbGFibGUuCgkJT3V0cHV0IG5vdGhpbmcgaWYgdG1faXNkc3QgaXMgbmVnYXRpdmUuCgkJT3V0cHV0IGNvcnJlY3QgdmFsdWUgZXZlbiBpZiBhcmcgaXMgMTk2OS0xMi0zMSAyMzo1OTo1OSBVVEMuCgkJRG9uJ3QgYXNzdW1lIHRoYXQgVVRDIG9mZnNldCBpcyBsZXNzIHRoYW4gMjQgaG91cnM7CgkJUG9zaXggcmVxdWlyZXMgc3VwcG9ydCBmb3IgMjQgaG91cnMsIGFuZCB0aGVyZSdzIG5vIHBvaW50CgkJbGltaXRpbmcgaXQgYXQgYWxsLgoJKEhBVkVfVE1fR01UT0ZGLCBUWVBFX1NJR05FRCwgSU5UX1NUUkxFTl9CT1VORCk6IE5ldyBtYWNyb3MuCgkoQ0hBUl9CSVQpOiBEZWZpbmUgaWYgPGxpbWl0cy5oPiBkb2Vzbid0LgoJKHRtX2RpZmYpOiBOZXcgZnVuY3Rpb24uCgkoZm10LCA8c3RkaW8uaD4pOiBSZW1vdmU7IG5vIGxvbmdlciB1c2VkLgoKVGh1IFNlcCAxMiAwMjoyMTo0NCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGRiL01ha2VmaWxlOiBBZGQgZXh0cmEtbGlicy1vdGhlcnMgdmFyaWFibGUgc28gdGhhdCBzaGFyZWQKCWxpYnJhcnkgaXMgYnVpbHQgaW4gYG90aGVycycgcGFzcy4KCSogZWxmL01ha2VmaWxlOiBMaWtld2lzZS4KCSogbWF0aC9NYWtlZmlsZTogTGlrZXdpc2UuCgkqIHJlc29sdi9NYWtlZmlsZTogTGlrZXdpc2UuCgoJKiBNYWtlZmlsZSAoZ2VuZXJhdGVkKTogQWRkIHZlcnNpb24uaW5mby5oLgoKCSogdGltZS9jaGVja3RhYi5hd2s6IE5ldyBmaWxlLiAgRnJvbSBBRE8gOTZrLgoJKiB0aW1lL2lzbzMxNjYudGFiOiBMaWtld2lzZS4KCSogdGltZS90enNlbGVjdC5rc2g6IExpa2V3aXNlLgoJKiB0aW1lL3pvbmUudGFiOiBMaWtld2lzZS4KCgkqIHN0ZGlvLWNvbW1vbi92ZnByaW50Zi5jOiBDb3JyZWN0IGNsZWFudXAgcmVnaXN0cmF0aW9uLiAgV2UKCWNhbm5vdCB1c2UgYSBtYWNybwoKMTk5Ni0wOS0xMSAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiB0aW1lL3RpbWUuaCAodG1fZ210b2ZmLCB0bV96b25lKTogUHJlZml4IHdpdGggYF9fJyB1bmxlc3MKCV9fVVNFX0JTRDsgdGhpcyBpcyByZXF1aXJlZCBmb3IgQU5TSSBDIGNvbXBhdGliaWxpdHkuCgkqIG1hbnVhbC90aW1lLnRleGk6IFJlcGxhY2UgR01UIGJ5IFVUQywgZGF5bGlnaHQgc2F2aW5ncyBieQoJZGF5bGlnaHQgc2F2aW5nLCB0aW1lem9uZSBieSB0aW1lIHpvbmUuCglSZXdyaXRlIGRlc2NyaXB0aW9uIG9mICVWIHRvIG1hdGNoIElTTyA4NjAxLgoJRml4IFRaIFBvc2l4IHN0cmluZyBleGFtcGxlIGZvciBVUyBFYXN0ZXJuIHRpbWUuCglFeHBsYWluIHR6bmFtZVsxXSB3aGVuIERTVCBpc24ndCB1c2VkLgoJRXhwbGFpbiB0em5hbWUgd2hlbiBtdWx0aXBsZSBhYmJyZXZpYXRpb25zIHVzZWQgKGUuZy4gRVNUL0VXVC9FRFQpLgoJRXhwbGFpbiB0aGF0IHRpbWV6b25lJ3Mgc2lnbiBpcyBvcHBvc2l0ZSBmcm9tIHRtX2dtdG9mZiwgYW5kIHRoYXQKCXRpbWV6b25lIGxhY2tzIERTVCBhZGp1c3RtZW50IHdoZXJlYXMgdG1fZ210b2ZmIGhhcyBpdC4KCURlcHJlY2F0ZSB0em5hbWUgYW5kIHRpbWV6b25lLgoKVHVlIFNlcCAxMCAxNDo0NjoxNiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCglJbXBsZW1lbnQgUm9sYW5kIE1jR3JhdGgncyBpZGVhIG9mIGhvdyB0byBwdXQgYW4gLmludGVycCBpbnRvCglzaGFyZWQgbGlicmFyaWVzLgoJKiBpbnRlcnAuYzogTmV3IGZpbGUuCgkqIE1ha2VydWxlcyAoaW50ZXJwLW9iaik6IE5ldyBvYmplY3QsIGxpbmtlZCBpbnRvIGV2ZXJ5IHNoYXJlZAoJbGlicmFyeS4KCShjb21tb24tZ2VuZXJhdGVkKTogQWRkIGludGVycC5zby4KCShDRkxBR1MtaW50ZXJwLmMpOiBQYXNzIG5hbWUgb2YgaW50ZXJwcmV0ZXIuCgpUdWUgU2VwIDEwIDIxOjA5OjM1IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogZGIvTWFrZWZpbGU6IEZpeCB0eXBvLgoKVHVlIFNlcCAxMCAxOToyOTo1MyAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIG5zcy9kYi1NYWtlZmlsZSAoJChWQVJfREIpL3Bhc3N3ZC5kYik6IExvb2sgZm9yIG11bHRpcGxlCglvY2N1cmVuY2VzIG9mIHRoZSBzYW1lIHVpZCwgYW5kIG9ubHkgZ2VuZXJhdGUgYSBtYXBwaW5nIGZvciB0aGUKCWZpcnN0IG9uZS4KClR1ZSBTZXAgMTAgMDM6MTQ6NTkgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXN0ZW0uYzogTmV3IGZpbGUsIHRvIG92ZXJyaWRlCglzeXNkZXBzL3VuaXgvc3lzdGVtLmMuCgpUdWUgU2VwIDEwIDE1OjA1OjQwIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZWZpbGUgKGJlZm9yZS1jb21waWxlKTogQWRkIHZlcnNpb24taW5mby5oLCBuZWVkZWQgdG8gYnVpbGQKCXZlcnNpb24uZC4KClR1ZSBTZXAgMTAgMTQ6MTQ6MzMgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2RlcC5TOiBSZW1vdmUgY2hlY2sgZm9yCglFV09VTERCTE9DSywgbmV2ZXIgdHJ1ZSBvbiBMaW51eC4KCShfX2Vycm5vX2xvY2F0aW9uKTogTmV3IGZ1bmN0aW9uLgoJW19MSUJDX1JFRU5UUkFOVF06IFNldCBlcnJubyB1c2luZyBfX2Vycm5vX2xvY2F0aW9uIGZ1bmN0aW9uLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9tNjhrL3N5c2RlcC5oIFtQSUNdOiBBZGQgc2Vjb25kCglzeXNjYWxsX2Vycm9yIGhhbmRsZXIgZm9yIHJlZW50cmFudCBsaWJjLgoKVHVlIFNlcCAxMCAxMzoyNzo0OSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGVsZi9NYWtlZmlsZSAoZXh0cmEtb2Jqcyk6IEFkZCBldmFsLnNvIHRvIGdldCBkZXBlbmRlbmNpZXMuCgpXZWQgU2VwIDExIDA0OjQwOjU3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdGltZS90enNldC5jIChfX3R6bmFtZV9jdXJfbWF4KTogVXNlIHR5cGUgYHNpemVfdCcgdG8gYXZvaWQKCXdhcm5pbmcuCgkqIHRpbWUvdHpmaWxlLmMgKGNvbXB1dGVfdHpuYW1lX21heCk6IExpa2V3aXNlLgoKV2VkIFNlcCAxMSAwMjo1NzozMSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogUXVvdGUgJGFkZF9vbnMgYXJndW1lbnQgaW4gbG9vcCB0byBnZW5lcmF0ZWQKCXByZWZpY2VzLgoKVHVlIFNlcCAxMCAyMDo0Mzo0NSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGRiL21ha2VkYi5jOiBJbmNsdWRlIDxsb2NhbGUuaD4uICBSZXBvcnRlZCBieSBGaWxhIEtvbG9kbnkuCgpUdWUgU2VwIDEwIDE0OjQyOjM5IDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBlbGYvZGwtY2FjaGUuYzogUmVuYW1lIHRvIC4uLgoJKiBzeXNkZXBzL2dlbmVyaWMvZGwtY2FjaGUuYzogIC4uLiBoZXJlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9kbC1jYWNoZS5jOiBOZXcgZmlsZS4KCgkqIG1hY2gvTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBBZGQgYGVycnN5c3RlbXMuYXdrJy4KCSogaHVyZC9NYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IEFkZCBgTm90ZXMnIGFuZCBgaW50ci1tc2cuaCcuCgkqIGh1cmQvaHVyZGludHIuYXdrOiBEZWxldGUgZmlsZS4gIChOb3QgdXNlZCBpbiBhZ2VzLikKCSogaHVyZC9pbnRyLXJwYy5hd2s6IExpa2V3aXNlLgoJKiBodXJkL2ludm9rZS10cmFucy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvaTM4Ni9sb25nam1wLWN0eC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvYWxwaGEvbG9uZ2ptcC1jdHguYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbWFjaC9odXJkL21pcHMvbG9uZ2ptcC1jdHguYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbWFjaC9odXJkL2kzODYvaW5pdC1mYXVsdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvbWlwcy9pbml0LWZhdWx0LmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3N0dWIvaW5pdC1mYXVsdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2xvbmdqbXAtY3R4LmM6IExpa2V3aXNlLgoKVHVlIFNlcCAxMCAxMzo0OTowOCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGluZXQvaGVycm5vLmM6IEluaXRpYWxpemUgYGhfZXJybm8nIHNvIHRoYXQgd2UgY2FuIHByb3ZpZGUKCWFsaWFzLgoKCSogTWFrZWZpbGUgKHZlcnNpb24taW5mby5oKTogRml4IHR5cG8gaW4gc2hlbGwgc2NyaXB0LgoKCSogc3lzZGVwcy9pMzg2L2k1ODYvc3RybGVuLlM6IE9wdGltaXplIHN0YXJ0dXAgY29kZSBhIGJpdC4KCSogc3lzZGVwcy9pMzg2L2k1ODYvc3RyY2hyLlM6IExpa2V3aXNlLgoKTW9uIFNlcCAgOSAyMDozMToyNyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHZlcnNpb24uYyAoYmFubmVyKTogUmVwb3J0IHRvIGJ1Zy1nbGliY0BwcmVwIG5vdCBAZ251LgoJUmVwb3J0ZWQgYnkgQW5kcmVhcyBKYWVnZXIuCgoJKiBsaWJpby9zdGRpby5oIFshX19VU0VfUkVFTlRSQU5UXTogRG9uJ3QgZGVmaW5lIGdldGMgYXMKCV9JT19nZXRjX3VubG9ja2VkLgoJW19fVVNFX1JFRU5UUkFOVF06IERvbid0IGRlZmluZQoKTW9uIFNlcCAgOSAxNTo1OTozMiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvaTM4Ni9zdHJyY2hyLmM6IEZpeCBidWcgd2hlcmUgTlVMIGJ5dGUgaXMgbm90IHJlY29nbml6ZWQKCXdoZW4gaXQgaXMgdGhlIHRoaXJkIGJ5dGUgaW4gdGhlIHN0cmluZy4gIFJlcG9ydGVkIGJ5CglOSUlCRSBZdXRha2EuCgkqIHN0cmluZy90ZXN0ZXIuYzogQWRkIHRlc3RzIGZvciBhYm92ZSBidWcgdG8gc3RybGVuLCBzdHJjaHIsIGFuZAoJc3RycmNociB0ZXN0cy4KCkZyaSBTZXAgIDYgMjE6MjM6MzMgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL202OGsvZnB1L2VfYWNvcy5jOiBEZWFuc2lkZWNsaXplZC4gIEluY2x1ZGUKCSJtYXRoX3ByaXZhdGUuaCIgdG8gZ2V0IHByb3RvdHlwZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9lX2Ztb2QuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUva19jb3MuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUva19zaW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUva190YW4uYzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL202OGsvZnB1L2tfc2luLmM6IFJlbW92ZSB1bmVlZGVkIGluZGlyZWN0aW9uIG9mCglfX204MV91LgoJKiBzeXNkZXBzL202OGsvZnB1L2tfdGFuLmM6IExpa2V3aXNlLgoKU3VuIFNlcCAgMSAxODowMTozNSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvbTY4ay9mcHUvX19tYXRoLmg6IENoZWNrIGZvciBfX05PX004MV9NQVRIX0lOTElORVMKCWluc3RlYWQgb2YgX19OT19NQVRIX0lOTElORVMuCgkoX19NODFfTUFUSF9JTkxJTkVTKTogUmVuYW1lZCBmcm9tIF9fTUFUSF9JTkxJTkVTLgoJKiBzeXNkZXBzL202OGsvZnB1L2VfYWNvcy5jOiBEZWZpbmUgX19OT19NODFfTUFUSF9JTkxJTkVTLgoJKiBzeXNkZXBzL202OGsvZnB1L2VfZm1vZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9rX2Nvcy5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9rX3Npbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9rX3Rhbi5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9zX2F0YW4uYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUvc19mcmV4cC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9zX2lsb2diLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL202OGsvZnB1L3NfaXNpbmYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUvc19sZGV4cC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tNjhrL2ZwdS9zX21vZGYuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9mcHUva19jb3MuYzogVXNlIGlubGluZSB2ZXJzaW9uIG9mIF9fY29zLgoJKiBzeXNkZXBzL202OGsvZnB1L2tfc2luLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL202OGsvZnB1L2tfdGFuLmM6IExpa2V3aXNlLgoKTW9uIFNlcCAgOSAxMjo1NToxNCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcGFyc2UuYyAoSU5UX0ZJRUxEX01BWUJFX05VTEwpOiBDaGVjayBmb3IKCWF2YWlsYWJsZSBjaGFyYWN0ZXIgYmVmb3JlIGNvbnZlcnRpbmcgbnVtYmVyIGFuZCByZXR1cm4gd2l0aAoJZXJyb3IgaWYgbm9uZSBpcyBhdmFpbGFibGUuCgpGcmkgU2VwICA2IDIyOjA5OjA4IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaW5pdC1maXJzdC5oOiBOZXcgZmlsZSwgZ2VuZXJpYwoJaW1wbGVtZW50YXRpb24gZm9yIGFyY2hpdGVjdHVyZXMgd2hlcmUgcGFyYW1ldGVycyBhcmUgcGFzc2VkIG9uCglzdGFjay4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9pbml0LWZpcnN0Lmg6IFJlbW92ZWQuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvaW5pdC1maXJzdC5oOiBSZW1vdmVkLgoKRnJpIFNlcCAgNiAyMjowNTozMiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGNvbmZpZ3VyZS5pbjogUmVtb3ZlIHVubmVlZGVkIHN5c25hbWVzIGZyb2JiaW5nLgoKTW9uIFNlcCAgOSAwNToyOTowOSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHRpbWUvemljLmM6IFVwZGF0ZSBmcm9tIEFETyA5NmwuCgkqIHRpbWUvYWZyaWNhOiBVcGRhdGUgZnJvbSBBRE8gOTZrLgoJKiB0aW1lL2FudGFyY3RpY2E6IExpa2V3aXNlLgoJKiB0aW1lL2FzaWE6IExpa2V3aXNlLgoJKiB0aW1lL2F1c3RyYWxpYTogTGlrZXdpc2UuCgkqIHRpbWUvZXVyb3BlOiBMaWtld2lzZS4KCSogdGltZS9ub3J0aGFtZXJpY2E6IExpa2V3aXNlLgoJKiB0aW1lL3NvdXRoYW1lcmljYTogTGlrZXdpc2UuCgpNb24gU2VwICA5IDA1OjAzOjQ3IDE5OTYgIE5JSUJFIFl1dGFrYSAgPGduaWliZUBtcmkuY28uanA+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L2luaXQtZmlyc3QuaDogV29yayBhcm91bmQgYnVnZ3kKCWdjYyA8PSAyLjcuMi4xIHdoaWNoIG9wdGltaXplcyBhd2F5IGFkZHJlc3Mgb3BlcmF0aW9ucyBvbiB3ZWFrCglvYmplY3RzLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1wYXJzZS5jIChJTlRfRklFTERfTUFZQkVfTlVMTCk6IE5ldyBtYWNyby4KCUxpa2UgSU5UX0ZJRUxEIGJ1dCBhbHNvIGFjY2VwdCBub24tZXhpc3RpbmcgZmllbGQuCgkqIHNoYWRvdy9zZ2V0c3BlbnRfci5jIChMSU5FX1BBUlNFUik6IFVzZSBJTlRfRklFTERfTUFZQkVfTlVMTAoJZm9yIGxhc3QgZm91ciBmaWVsZHMuCgkqIHNoYWRvdy9wdXRzcGVudC5jIChwdXRzcGVudCk6IFByaW50IGA6JyBhZnRlciBudW1lcmljIHZhbHVlLgoKTW9uIFNlcCAgOSAwMjo0Mjo0OCAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIGxpYmlvL3N0ZGlvLmggKEJVRlNJWik6IERlZmluZSB1c2luZyBfSU9fQlVGU0laLgoKU3VuIFNlcCAgOCAxNjo0Mzo1NiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIE1ha2UtZGlzdDogRmlsdGVyIG91dCAkKGFkZC1vbnMpIGZyb20gJChzdWJkaXJzKS4KCURvbid0IGRpc3RyaWJ1dGUgVEFHUyBmaWxlcy4KCSgkKHRhcmRpcikudGFyKTogUmVtb3ZlIGRpc3QudGFyIHdoZW4gYWxsIGlzIGRvbmUuCgkqIG1hbnVhbC9NYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IEFkZCBsaWJjLmluZm8qLgoJKiBsaWJpby9NYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IEFkZCBCYW5uZXIuCgkqIGluZXQvTWFrZWZpbGUgKGhlYWRlcnMpOiBBZGQgbmV0aW5ldC90Y3AuaC4KCgkqIHJlc29sdi9NYWtlZmlsZSAobGlicmVzb2x2LXJvdXRpbmVzKTogQWRkIGdldG5ldG5hbWFkci4KCgkqIGNyeXB0LVJFQURNRTogUmVtb3ZlZC4KCSogZ251LXN0YWJzLmg6IFJlbW92ZWQuCgoJKiBzeXNkZXBzL2FscGhhL2NvcHlzaWduLlM6IFJlbmFtZWQgdG8uLi4KCSogc3lzZGVwcy9hbHBoYS9zX2NvcHlzaWduLlM6IC4uLnRoaXMuCgkqIHN5c2RlcHMvYWxwaGEvZmFicy5TOiBSZW5hbWVkIHRvLi4uCgkqIHN5c2RlcHMvYWxwaGEvc19mYWJzLlM6IC4uLnRoaXMuCgoJKiBzeXNkZXBzL202OGsvaXNpbmZsLmM6IFJlbmFtZWQgdG8uLi4KCSogc3lzZGVwcy9tNjhrL3NfaXNpbmZsLmM6IC4uLnRoaXMuCgkqIHN5c2RlcHMvbTY4ay9pc25hbmwuYzogUmVuYW1lZCB0by4uLgoJKiBzeXNkZXBzL202OGsvc19pc25hbmwuYzogLi4udGhpcy4KCgkqIHN5c2RlcHMvc3BhcmMvc3FydC5jOiBSZW5hbWVkIHRvLi4uCgkqIHN5c2RlcHMvc3BhcmMvZV9zcXJ0LmM6IC4uLnRoaXMuICBGdW5jdGlvbiBuYW1lIG5vdyBpcwoJX19pZWVlNzU0X3NxcnQuCgoJKiBzeXNkZXBzL2dlbmVyaWMvZ2V0X3N0ci5jOiBSZW1vdmVkLgoKCSogc3lzZGVwcy9pZWVlNzU0L2NicnQuYzogUmVtb3ZlZC4KCSogc3lzZGVwcy9pZWVlNzU0L2RyZW0uYzogUmVtb3ZlZC4KCSogc3lzZGVwcy9pZWVlNzU0L2xvZ2IuYzogUmVtb3ZlZC4KCSogc3lzZGVwcy9pZWVlNzU0L3NxcnQuYzogUmVtb3ZlZC4KCgkqIHN5c2RlcHMvc3R1Yi9jYnJ0LmM6IFJlbW92ZWQuCgkqIHN5c2RlcHMvc3R1Yi9jb3MuYzogUmVtb3ZlZC4KCSogc3lzZGVwcy9zdHViL2RyZW0uYzogUmVtb3ZlZC4KCSogc3lzZGVwcy9zdHViL2lzaW5mLmM6IFJlbW92ZWQuCgkqIHN5c2RlcHMvc3R1Yi9pc2luZmwuYzogUmVtb3ZlZC4KCSogc3lzZGVwcy9zdHViL2lzbmFubC5jOiBSZW1vdmVkLgoJKiBzeXNkZXBzL3N0dWIvbG9nYi5jOiBSZW1vdmVkLgoJKiBzeXNkZXBzL3N0dWIvc2luLmM6IFJlbW92ZWQuCgkqIHN5c2RlcHMvc3R1Yi9zcXJ0LmM6IFJlbW92ZWQuCgoJKiBzeXNkZXBzL3RhaG9lL2xvZzEwLmM6IFJlbW92ZWQuCgoJKiBzeXNkZXBzL3ZheC9pbmRleC5zOiBSZW1vdmVkLgoJKiBzeXNkZXBzL3ZheC9yaW5kZXguczogUmVtb3ZlZC4KCSogc3lzZGVwcy92YXgvYmNtcC5zOiBSZW1vdmVkLgoJKiBzeXNkZXBzL3ZheC9sb2cxMC5jOiBSZW1vdmVkLgoJKiBzeXNkZXBzL3ZheC9pbmZuYW4uYzogUmVtb3ZlZC4KCSogc3lzZGVwcy92YXgvRGlzdDogQWRkIGZsLmguCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9EaXN0OiBBZGQgbGxzZWVrLlMuCgoJKiBpbmV0L3JjbWQuYyAocmNtZCk6IE1ha2UgbWVzc2FnZXMgbW9yZSB1bmlmb3JtLgoKU3VuIFNlcCAgOCAxNDoxNTo0MiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHBvL2RlLnBvOiBVcGRhdGUuCgkqIHBvL2VzLnBvOiBVcGRhdGUuCgkqIHBvL2tvLnBvOiBVcGRhdGUuCgkqIHBvL3BsLnBvOiBOZXcgZmlsZS4KCSogcG8vbmwucG86IE5ldyBmaWxlLgoKU2F0IFNlcCAgNyAxODo0MToxNyAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIE1ha2Vjb25maWcgKCtsaW5rKTogRmlsdGVyIG91dCBzdGFydCwgcHJlICYgcG9zdGluaXQgZnJvbSB0aGUKCWdlbmVyaWMgZGVwZW5hbmNpZXMgYXMgd2VsbC4KCSogUnVsZXM6IEFkZCBzdGFydCwgcHJlICYgcG9zdGluaXQgdG8gdGhlIGRlcGVuZGFuY2llcyBvZgoJJChvdGhlcnMpIGFuZCAkKHRlc3RzKS4KCgkqIGNvbmZpZ3VyZS5pbjogZWxmX2RpcnMgbWlzc2luZyAic3lzZGVwcyIgY29tcG9uZW50LgoKU3VuIFNlcCAgOCAwMjozNjowMiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxvY2FsZS9TWVNfbGliYy5jIChfbGliY19pbnRsX2RvbWFpbm5hbWUpOiBDaGFuZ2UgdmFsdWUgdG8gImxpYmMiLgoJVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggYWxsIG90aGVyIEdOVSBwYWNrYWdlcy4gIFdlIHNob3VsZG4ndAoJdGFrZSBjYXJlIGZvciBhIHBvc3NpYmxlIGNsYXNoLiAgTm9ib2R5IHdpbGwgbmFtZSB0aGUgZG9tYWluCglvZiBhIHBhY2thZ2UgbGliYyBpZiBpdCBpcyBub3QgdGhlIGxpYmMgaXRzZWxmLgoJKiBNYWtlVEFHUyAoJFAvU1lTX2xpYmMucG90KTogUmVuYW1lIHRvICRQL2xpYmMucG90LgoJKiBwby9NYWtlZmlsZSAoZG9tYWlubmFtZSk6IENoYW5nZSB0byBsaWJjLgoJKGRpc3RyaWJ1dGUpOiBOb3cgc2hpcCBsaWJjLnBvdC4KCSogY2F0Z2V0cy9nZW5jYXQuYyAodXNhZ2UpOiBVc2UgYFBBQ0tBR0UnIGZvciBwYWNrYWdlIG5hbWUgaW4KCXZlcnNpb24gaW5mb3JtYXRpb24gYmFubmVyLgoJQ2hhbmdlIGJ1ZyByZXBvcnQgYWRkcmVzcyB0byBidWctZ2xpYmNAcHJlcCBub3QgQGdudS4KCSogZGIvbWFrZWRiLmMgKFBBQ0tBR0UpOiBOZXcgbWFjcm8uICBTZXQgdG8gX2xpYmNfaW50bF9kb21haW4uCgkobWFpbik6IFVzZSBgUEFDS0FHRScgZm9yIHBhY2thZ2UgbmFtZSBpbiB2ZXJzaW9uIGluZm9ybWF0aW9uCgliYW5uZXIuCglDaGFuZ2UgYnVnIHJlcG9ydCBhZGRyZXNzIHRvIGJ1Zy1nbGliY0BwcmVwIG5vdCBAZ251LgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlLmMgKG1haW4pOiBVc2UgYFBBQ0tBR0UnIGZvciBwYWNrYWdlIG5hbWUKCWluIHZlcnNpb24gaW5mb3JtYXRpb24gYmFubmVyLgoJQ2hhbmdlIGJ1ZyByZXBvcnQgYWRkcmVzcyB0byBidWctZ2xpYmNAcHJlcCBub3QgQGdudS4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZWRlZi5jIChtYWluKTogTGlrZXdpc2UuCgoJKiB2ZXJzaW9uLmggKFZFUlNJT04pOiBCdW1wIHRvIDEuOTQuCgoJKiBsb2NhbGUvTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBBZGQgbG9jYWxlLmMgYW5kIGxvY2FsZWRlZi5jLgoKU2F0IFNlcCAgNyAxNDowMDozMyAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogY2F0Z2V0cy9jYXRnZXRzLmMgKGNhdG9wZW4pOiBBbGxvY2F0ZSBzaXplb2YoKnJlc3VsdCkgYnl0ZXMKCWluc3RlYWQgb2Ygc2l6ZW9mKG5sX2NhdGQpICh3aGljaCBpcyBqdXN0IGEgcG9pbnRlciEpLgoKU2F0IFNlcCAgNyAxOTozOToxOSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIE1ha2VmaWxlICgkKG9ianBmeCl2ZXJzaW9uLWluZm8uaCk6IEdlbmVyYXRlIGZyb20gQmFubmVyIGZpbGVzLgoJKiB2ZXJzaW9uLmMgKGJhbm5lcik6IEFkZCBjb250ZW50cyBvZiB2ZXJzaW9uLWluZm8uaCB0byBzdHJpbmcuCgoJKiBNYWtlcnVsZXM6IElmICQoJChzdWJkaXIpLXZlcnNpb24pIGlzIGF2YWlsYWJsZSBuYW1lIHZlcnNpb25lZAoJc2hhcmVkIGxpYnJhcnkgYWNjb3JkaW5nIHRvIHRoaXMgdmFsdWUgaW5zdGVhZCBvZiBnbGliYydzIHZlcnNpb24uCgoJKiBsaWJpby9CYW5uZXI6IE5ldyBmaWxlLgoKCSogZWxmL2V2YWwuYyAoZnVuY2FsbCk6IFdyaXRlIGVycm9yIG1lc3NhZ2UgaW4gY2FzZSBmdW5jdGlvbiBpcwoJbm90IGZvdW5kLgoJKGV2YWwpOiBSZWNvZ25pemUgYF8nIGluIG5hbWVzLgoKU2F0IFNlcCAgNyAwNToxNTo0NSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxpYmlvL2lvZmRvcGVuOiBJbml0aWFsaXplIF9sb2NrIGZpZWxkIG9ubHkgaWYgX0lPX01UU0FGRV9JTy4KCSogbGliaW8vaW9mb3BlbjogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZm9wbmNvb2suYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvcG9wZW4uYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvdnNwcmludGYuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvdnNzY2FuZi5jOiBMaWtld2lzZS4KCSogbGliaW8vbWVtc3RyZWFtLmM6IExpa2V3aXNlLgoJKiBsaWJpby92YXNwcmludGYuYzogTGlrZXdpc2UuCgkqIGxpYmlvL3ZkcHJpbnRmLmM6IExpa2V3aXNlLgoJKiBsaWJpby92c25wcmludGYuYzogTGlrZXdpc2UuCgpTYXQgU2VwICA3IDAzOjU1OjQ3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZWNvbmZpZyAoc292ZXJzaW9ucy5tayk6IEFsc28gdXNlIHNobGliLXZlcnNpb25zIGZpbGVzCglpbiBhZGQtb24gZGlyZWN0b3JpZXMuCgkqIGNvbmZpZy5tYWtlLmluIChjb25maWctZGVmaW5lcyk6IFJlbW92ZS4gIE5vdCB1c2VkIGFueW1vcmUuCgkoZGVmaW5lcyk6IE5ldyB2YXJpYWJsZS4gIEluaXRpbGlhemVkIGJ5IEBERUZJTkVTQC4KCSogY29uZmlndXJlLmluOiBBZGQgQUNfU1VCU1QoREVGSU5FUykuCgoJKiBsaWJpby9NYWtlZmlsZSAocm91dGluZXMpOiBXaGVuIGNvbXBpbGluZyByZWVudHJhbnQgbGliYyBhZGQKCWNsZWFyZXJyX3UsIGZlb2ZfdSwgZmVycm9yX3UsIGZwdXRjX3UsIGdldGNfdSwgZ2V0Y2hhcl91LAoJaW9mZmx1c2hfdSwgcHV0Y191LCBwdXRjaGFyX3UsIGlvZmxvY2tmaWxlLgoJKENQUEZMQUdTKTogQWRkIC1EX0lPX01UU0FGRV9JTyBmb3IgcmVlbnRyYW50IGxpYmMuCgoJKiBzeXNkZXBzL3N0dWIvbGliYy1sb2NrLmg6IEFkZCBzdHVicyBmb3IgX19saWJjX2NsZWFudXBfcmVnaW9uX3N0YXJ0CglhbmQgX19saWJjX2NsZWFudXBfcmVnaW9uX2VuZC4KCgkqIHN5c2RlcHMvdW5peC9pMzg2L3N5c2RlcC5TIFtfTElCQ19SRUVOVFJBTlRdOiBTZXQgZXJybm8KCXVzaW5nIF9fZXJybm9fbG9jYXRpb24gZnVuY3Rpb24uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvc3lzZGVwLlMgW19MSUJDX1JFRU5UUkFOVF06IFNldCBlcnJubwoJdXNpbmcgX19lcnJub19sb2NhdGlvbiBmdW5jdGlvbi4KCShfX2Vycm5vX2xvY2F0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3N5c2RlcC5oIFtQSUNdOiBBZGQgc2Vjb25kCglzeXNjYWxsX2Vycm9yIGhhbmRsZXIgZm9yIHJlZW50cmFudCBsaWJjLgoKCSogc3lzZGVwcy91bml4L29wZW5kaXIuYzogUmVtb3ZlIHVubmVlZGVkIGA7Jy4KCgkqIGxpYmlvLmggW19JT19NVFNBRkVfSU9dOiBJbmNsdWRlIDxwdGhyZWFkLmg+LgoJWyFfSU9fTVRTQUZFX0lPXTogRGVmaW5lIF9JT19mbG9ja2ZpbGUgYW5kIF9JT19mdW5sb2NrZmlsZQoJYXMgZW1wdHkgbWFjcm9zLgoJKiBsaWJpb1AuaDogSW5jbHVkZSA8bGliYy1sb2NrLmg+LgoJKiBsaWJpby9zdGRpby5oOiBBZGQgcHJvdG90eXBlcyBmb3IgKl9sb2NrZWQgYW5kICpfdW5sb2NrZWQKCWZ1bmN0aW9ucy4KCgkqIGxpYmlvL2NsZWFyZXJyLmM6IFVzZSBfSU9fIHByb3RlY3RlZCB2ZXJzaW9ucyBvZiBmbG9ja2ZpbGUKCWFuZCBmdW5sb2NrZmlsZSB0byBiZSBuYW1lc3BhY2UgY2xlYW4uCgoJKiBsaWJpby9nZW5vcHMuYzogVXNlIF9fbGliY19sb2NrXyogbWFjcm9zIGZvciBoYW5kbGluZyBsb2NrLgoKCSogbGliaW8vaW9mZG9wZW46IEFkZCBpbml0aWFsaXphdGlvbiBvZiBfbG9jayBpbiBfSU9fRklMRS4KCSogbGliaW8vaW9mb3BlbjogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZm9wbmNvb2suYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvcG9wZW4uYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvdnNwcmludGYuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvdnNzY2FuZi5jOiBMaWtld2lzZS4KCSogbGliaW8vbWVtc3RyZWFtLmM6IExpa2V3aXNlLgoJKiBsaWJpby92YXNwcmludGYuYzogTGlrZXdpc2UuCgkqIGxpYmlvL3ZkcHJpbnRmLmM6IExpa2V3aXNlLgoJKiBsaWJpby92c25wcmludGYuYzogTGlrZXdpc2UuCgoJKiBsaWJpby9mZ2V0Yy5jOiBVc2UgX19saWJjX2NsZWFudXBfcmVnaW9uXyogbWFjcm9zIGluc3RlYWQKCW9mIGZsb2NrZmlsZSBldGMuCgkqIGxpYmlvL2ZwdXRjLmM6IExpa2V3aXNlLgoJKiBsaWJpby9mcmVvcGVuLmM6IExpa2V3aXNlLgoJKiBsaWJpby9mc2Vlay5jOiBMaWtld2lzZS4KCSogbGliaW8vZ2V0Yy5jOiBMaWtld2lzZS4KCSogbGliaW8vZ2V0Y2hhci5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9mY2xvc2UuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZmZsdXNoLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb2ZnZXRwb3MuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZmdldHMuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZnB1dHMuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZnJlYWQuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZnNldHBvcy5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9mdGVsbC5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9md3JpdGUuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZ2V0ZGVsaW0uYzogTGlrZXdpc2UuCgkqIGxpYmlvL2lvZ2V0cy5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9wdXRzLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb3NldGJ1ZmZlci5jOiBMaWtld2lzZS4KCSogbGliaW8vaW9zZXR2YnVmLmM6IExpa2V3aXNlLgoJKiBsaWJpby9pb3VuZ2V0Yy5jOiBMaWtld2lzZS4KCSogbGliaW8vcHV0Yy5jOiBMaWtld2lzZS4KCSogbGliaW8vcHV0Y2hhci5jOiBMaWtld2lzZS4KCSogbGliaW8vcmV3aW5kLmM6IExpa2V3aXNlLgoJKiBzdGRpby1jb21tb24vdmZwcmludGYuYzogTGlrZXdpc2UuCgkqIHN0ZGlvLWNvbW1vbi92ZnNjYW5mLmM6IExpa2V3aXNlLgoKCSogbGliaW8vY2xlYXJlcnJfdS5jOiBDb3JyZWN0IGFsaWFzIG5hbWUuCgkqIGxpYmlvL2ZlcnJvcl91LmM6IExpa2V3aXNlLgoJKiBsaWJpby9maWxlbm8uYzogTGlrZXdpc2UuCgkqIGxpYmlvL2ZwdXRjX3UuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2dldGMuYzogTGlrZXdpc2UuCgkqIGxpYmlvL2dldGNfdS5jOiBMaWtld2lzZS4KCSogbGliaW8vZ2V0Y2hhci5jOiBMaWtld2lzZS4KCSogbGliaW8vZ2V0Y2hhcl91LmM6IExpa2V3aXNlLgoJKiBsaWJpby9wdXRjLmM6IExpa2V3aXNlLgoJKiBsaWJpby9wdXRjaGFyLmM6IExpa2V3aXNlLgoKCSogbGliaW8vZmVvZl91LmM6IFVuZGVmaW5lIG1hY3JvIHdpdGggbmFtZSBvZiBmdW5jdGlvbiBiZWZvcmUKCWRlZmluaXRpb24gb2YgZnVuY3Rpb24gaXRzZWxmLgoKCSogbGliaW8vaW9mbG9ja2ZpbGUuYzogTmV3IGZpbGUuICBJbXBsZW1lbnRhdGlvbiBvZiBmbG9ja2ZpbGUgYW5kCglmdW5sb2NrZmlsZS4KCgkqIGxpYmlvL3B1dGNoYXJfdS5jOiBGaXggdHlwby4gIFVzZSBzdGRvdXQgaW5zdGVhZCBvZiBmcC4KCgkqIG1hbGxvYy9tYWxsb2MuaDogRG9uJ3QgaW5jbHVkZSA8bGliYy1sb2NrLmg+IGFuZCBkb24ndCBkZWNsYXJlCglfbWFsbG9jX2xvYy4KCgkqIG1hbGxvYy9mcmVlLmM6IEluY2x1ZGUgPGxpYmMtbG9jay5oPi4KCSogbWFsbG9jL3JlYWxsb2MuYzogTGlrZXdpc2UuCgkqIG1hbGxvYy9tYWxsb2MtZmluZC5jOiBMaWtld2lzZS4KCSogbWFsbG9jL21hbGxvYy1zaXplLmM6IExpa2V3aXNlLgoJKiBtYWxsb2MvbWFsbG9jLXdhbGsuYzogTGlrZXdpc2UuCgkqIG1hbGxvYy9tZW1hbGlnbi5jOiBMaWtld2lzZS4KCSogbWFsbG9jL21hbGxvYy5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvaTM4Ni9kbC1tYWNoaW5lLmg6IENvcnJlY3QgY2xlYXJpbmcgb2YgX2RsX3N0YXJ0aW5nX3VwLgoKRnJpIFNlcCAgNiAxOTozODo0OSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvc3R1Yi9saWJjLWxvY2suaDogRGVmaW5lIF9fbGliY19sb2NrX2NyaXRpY2FsX3N0YXJ0CglhbmQgX19saWJjX2xvY2tfY3JpdGljYWxfZW5kIGFzIGVtcHR5IG1hY3Jvcy4KCgkqIG1hbGxvYy9tYWxsb2MuaDogRG9uJ3QgaW5jbHVkZSA8bGliYy1sb2NrLmg+IGFuZCBkb24ndCBkZWNsYXJlCglfX2xpYmNfbWFsbG9jX2xvY2suCgkqIG1hbGxvYy9mcmVlLmM6IEluY2x1ZGUgPGxpYmMtbG9jay5oPi4KCSogbWFsbG9jL21hbGxvYy1maW5kLmM6IExpa2V3aXNlLgoJKiBtYWxsb2MvbWFsbG9jLXNpemUuYzogTGlrZXdpc2UuCgkqIG1hbGxvYy9tYWxsb2Mtd2Fsay5jOiBMaWtld2lzZS4KCSogbWFsbG9jL21hbGxvYy5jOiBMaWtld2lzZS4KCSogbWFsbG9jL21lbWFsaWduLmM6IExpa2V3aXNlLgoJKiBtYWxsb2MvcmVhbGxvYy5jOiBMaWtld2lzZS4KCgkqIE1ha2VmaWxlOiBVbmRvIGNoYW5nZSBmcm9tIE1vbiBTZXAgIDIgMjI6MTU6MTQgMTk5Ni4gIE5vIG1vcmUKCWV4dHJhX3NvbGlicyBwYXNzLgoJKiBSdWxlczogTGlrZXdpc2UuCgkqIGV4dHJhLWxpYi5tazogTGlrZXdpc2UuCgkqIG1hbnVhbC9NYWtlZmlsZTogTGlrZXdpc2UuCgoJKiBkYi9NYWtlZmlsZSAobWFrZWRiKTogQ2hvb3NlIGRlcGVuZGVjaWVzIGJhc2VkIG9uIGJ1aWxkLXNoYXJlZC4KCVBhdGNoIGJ5IEFuZHJlcyBTY2h3YWIuCgoJKiBzeXNkZXBzL3Bvc2l4L3N5c2NvbmYuYzogRG9uJ3QgdXNlIFBUSFJFQURfREVTVFJVQ1RPUl9JVEVSQVRJT05TCglidXQgX1BPU0lYX1RIUkVBRF9ERVNUUlVDVE9SX0lURVJBVElPTlMuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9lcnJub3MuaDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NjaGVkYml0cy5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvd2FpdGZsYWdzLmg6IE5ldyBmaWxlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZ251L3R5cGVzLmg6IEFkZCBkZWZpbml0aW9uIG9mIGBrZXlfdCcuCgpGcmkgU2VwICA2IDA4OjI2OjMxIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogcnBtL3RlbXBsYXRlOiBGaXggdHlwbyBpbiAlYnVpbGQgc2VjdGlvbi4KCkZyaSBTZXAgIDYgMDM6MzE6MDcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9lcnJub3MuaDogRG9uJ3QgZGVmaW5lIGVycm5vIG1hY3JvIHdoZW4KCWJ1aWxkaW5nIGxpYmMgd2l0aG91dCB0aHJlYWQgc3VwcG9ydC4KCSogcmVzb2x2L25ldGRiLmg6IExpa2V3aXNlIGZvciBoX2Vycm5vIG1hY3JvLgoKVGh1IFNlcCAgNSAyMzowMTo0OCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxpYmMtc3ltYm9scy5oOiBBZGQgbmV3IG1hY3JvIHdlYWtfY29uc3RfZnVuY3Rpb24uICBJdCdzIGxpa2UKCXdlYWtfZnVuY3Rpb24sIGJ1dCB0aGUgZnVuY3Rpb24gaXMgYWRkaXRpb25hbGx5IG1hcmtlZCBhcyBjb25zdC4KCSogZmVhdHVyZXMuaDogT25seSBpbmNsdWRlIDxzeXMvY2RlZnMuaD4gaWYgIV9fQVNTRU1CTEVSX18uCgpUaHUgU2VwICA1IDIyOjU1OjQ5IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogaW5ldC9oZXJybm8uYyAoX19oX2Vycm5vX2xvY2F0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKGhfZXJybm8pOiBNYWtlIHN0cm9uZ19hbGlhcyBfX2hfZXJybm8gc28gdGhhdCB3ZSBjYW4gYWNjZXNzCgl0aGUgdmFyaWFibGUgZXZlbiBpZiBgaF9lcnJubycgaXMgYSBtYWNyby4KCSogcmVzb2x2L25ldGRiLmg6IERlZmluZSBtYWNybyBoX2Vycm5vIHRvIGFjY2VzcyB0aHJlYWQgc3BlY2lmaWMKCXZlcnNpb24gb2YgaF9lcnJubyB2YXJpYWJsZS4gIERlY2xhcmUgYWxpYXMgX19oX2Vycm5vIGZvciBoX2Vycm5vLgoJKiByZXNvbHYvcmVzX3F1ZXJ5IChoX2Vycm5vKTogUmVtb3ZlIGRlZmluaXRpb24uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Vycm5vcy5oIFshX19BU1NFTUJMRVJfXyAmJiBfX1VTRV9SRUVOVFJBTlRdOgoJQWRkIG1hY3JvIGBlcnJubycgdG8gZ2V0IHRocmVhZCBzcGVjaWZpYyB2YXJpYWJsZS4KCSogc3lzZGVwcy91bml4L2FscGhhL3N5c2RlcC5TIFtfTElCQ19SRUVOVFJBTlRdOiBTZXQgZXJybm8gdXNpbmcKCV9fZXJybm9fbG9jYXRpb24gZnVuY3Rpb24uCgkoX19lcnJub19sb2NhdGlvbik6IE5ldyBmdW5jdGlvbi4KClRodSBTZXAgIDUgMjE6MDg6NDQgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBwb3NpeC9nbnUvdHlwZXMuaDogUmVtb3ZlIGRlZmluaXRpb24gb2Yga2V5X3QuCgkqIHN5c2RlcHMvZ2VuZXJpYy9nbnUvdHlwZXMuaDogTW92ZSBpdCB0byBoZXJlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9nbnUvdHlwZXMuaDogQWRkIExpbnV4IHNwZWNpZmljCglkZWZpbml0aW9uIG9mIGtleV90LgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvd2FpdGZsYWdzLmg6IE5ldyBmaWxlLiAgTGludXggc3BlY2lmaWMKCWRlZmluaXRpb25zLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zY2hlZGJpdHMuaDogTmV3IGZpbGUuICBJbmNsdWRlCgljbG9uZSBwcm90b3R5cGVzIGFuZCBhc3NvY2lhdGVkIGZsYWdzLgoKVGh1IFNlcCAgNSAwODo1ODo0NyAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIHN5c2RlcHMvYWxwaGEvZWxmL3N0YXJ0LlM6IE1ha2UgX3N0YXJ0IGdsb2JhbCBhZ2Fpbi4KClRodSBTZXAgIDUgMTM6MTg6MjUgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2kzODYvaW5pdC1maXJzdC5jIChfX2xpYmNfYXJnYywgX19saWJjX2FyZ3YpOgoJTmV3IHZhcmlhYmxlcy4KCShpbml0MSk6IEluaXRpYWxpemUgdGhlbS4KCSogaHVyZC9odXJkaW5pdC5jIChfaHVyZF9zZXRwcm9jKTogTm93IHRoYXQgaGFwcGVucyB0byBiZQoJYXZhaWxhYmxlLCBwYXNzIF9fbGliY19hcmd2IGluIGNhbGwgdG8gX19wcm9jX3NldF9hcmdfbG9jYXRpb25zLgoKCSogZ21vbi9nbW9uLmMgKHdyaXRlX2hpc3QpOiBDYWxsIF9fcHJvZmlsZV9mcmVxdWVuY3kgaW5zdGVhZCBvZgoJaGVydHouCgkoaGVydHopOiBEZWxldGUgZnVuY3Rpb24uCgkqIGdtb24vTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIGBwcm9mLWZyZXEnLgoJKiBzeXNkZXBzL2dlbmVyaWMvcHJvZi1mcmVxLmM6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9wcm9mLWZyZXEuYzogTmV3IChzdHViYnkpIGZpbGUuCgkqIHN5c2RlcHMvbWFjaC9odXJkL3Byb2ZpbC5jIChwcm9maWxlX3RpY2spOiBOZXcgdmFyaWFibGUuCgkodXBkYXRlX3dhaXRlcik6IFN0b3JlIGZyZXF1ZW5jeSBpbiBwcm9maWxlX3RpY2suCgkoX19wcm9maWxlX2ZyZXF1ZW5jeSk6IE5ldyBmdW5jdGlvbi4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3NlbmR0by5jIChzZW5kdG8pOiBVc2UgcHJvdG90eXBlIGRlZmluaXRpb24KCXN5bnRheC4KCgkqIFJ1bGVzIChnZW5lcmF0ZWQpOiBSZXN0b3JlIHJlZmVyZW5jZSB0byAkKGdlbmVyYXRlZCkuCgoJKiBtYWNoL01hY2hydWxlcyAobWlnLnVoLCBtaWcuX19oKTogRG9uJ3QgaW5jbHVkZSAkKHVzZXItTUlHRkxBR1MpCgloZXJlLgoKCSogbWFsbG9jL2ZyZWUuYyAoZnJlZSk6IF9fbGliX21hbGxvY19sb2NrIC0+IF9fbGliY19tYWxsb2NfbG9jay4KCgkqIG1hbGxvYy9mcmVlLmM6IFByb3ZpZGUgZXh0ZXJuIGRlY2wgb2YgX19saWJjX21hbGxvY19sb2NrLgoJKiBtYWxsb2MvcmVhbGxvYy5jOiBMaWtld2lzZS4KCSogbWFsbG9jL21hbGxvYy1maW5kLmM6IExpa2V3aXNlLgoJKiBtYWxsb2MvbWFsbG9jLXNpemUuYzogTGlrZXdpc2UuCgkqIG1hbGxvYy9tYWxsb2Mtd2Fsay5jOiBMaWtld2lzZS4KCSogbWFsbG9jL21lbWFsaWduLmM6IExpa2V3aXNlLgoKVGh1IFNlcCAgNSAwMzoyMDo0MiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCglDaGFuZ2UgY29uZmlndXJhdGlvbiBhbmQgTWFrZWZpbGVzIHRvIGFsbG93IGFkZC1vbnMgdG8gaGF2ZSBhCglzeXNkZXBzLyBkaXJlY3RvcnkgaGllcmFjaHkuCgkqIGNvbmZpZ3VyZS5pbjogVGVzdCBmb3Igc3lzZGVwcy8gZGlyZWN0b3J5IGluIGFkZC1vbnMuICBCZWZvcmUKCWFsbCB0ZXN0IGFuZCBzZWFyY2hlcyBpbiB0aGVzZSBoaWVyYWNoaWVzLCB0b28uCgkqIE1ha2Vjb25maWcgKGZ1bGwtY29uZmlnLXN1YmRpcnMpOiBEZWZpbmUgYmFzZWQgb24gJChjb25maWctc3lzZGlycykuCglFeHRlbmQgd2l0aCAkKC4uKSBpZiBub3QgYWJzb2x1dGUgcGF0aC4KCVVzZSAkKGZ1bGwtY29uZmlnLXN1YmRpcnMpIHdoZXJlICQoY29uZmlnLXN5c2RpcnMpIHdhcyB1c2VkLgoJKiBNYWtlZmlsZSAoJChvYmpwZngpc3lzZC1kaXJzKTogVXNlIGNvbmZpZy1zeXNkaXJzLgoJKiBNYWtlVEFHUzogVXNlICQoZnVsbC1jb25maWctc3ViZGlycykuCgkqIE1ha2VydWxlczogQ2hhbmdlIGNvbW1lbnQgdG8gbGliYy5zbyBsaW5rIHNjcmlwdC4KCShzeXNkaXJzKTogRGVmaW5lIGJhc2VkIG9uICQoZnVsbC1jb25maWctc3ViZGlycykuCgkoc3lzZC1NYWtlZmlsZSk6IERlZmluZSB1c2luZyBjb25maWctc3lzZGlycy4KCShzeXNkLXJ1bGVzKTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9NYWtlZmlsZSAoc3lzZC1zeXNjYWxscyk6IERlZmluZSBiYXNlZCBvbiArc3lzZGVwLWRpcnMuCgkqIHN5c2RlcHMvdW5peC9tYWtlLXN5c2NhbGxzLnNoOiBSZW1vdmUgYmFzZWRpciBhcmd1bWVudC4KCldlZCBTZXAgIDQgMDE6MzI6MjEgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL202OGsvZnB1L2tfY29zLmM6IFJld3JpdHRlbiBmb3IgYmV0dGVyIGFjY3VyYWN5LgoJKiBzeXNkZXBzL202OGsvZnB1L2tfc2luLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL202OGsvZnB1L2tfdGFuLmM6IExpa2V3aXNlLgoKVGh1IFNlcCAgNSAwMTowNjowOSAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIG1hbGxvYy9mcmVlLmMgKGZyZWUpOiBQcm90ZWN0IGJ5IHVzaW5nIF9fbGliY19tYWxsb2NfbG9jay4KCSogbWFsbG9jL21hbGxvYy1maW5kLmMgKG1hbGxvY19maW5kX29iamVjdF9hZGRyZXNzKTogTGlrZXdpc2UuCgkqIG1hbGxvYy9tYWxsb2Mtc2l6ZS5jIChtYWxsb2NfdXNhYmxlX3NpemUpOiBMaWtld2lzZS4KCSogbWFsbG9jL21hbGxvYy13YWxrLmMgKG1hbGxvY193YWxrKTogTGlrZXdpc2UuCgkqIG1hbGxvYy9tZW1hbGlnbi5jIChtZW1hbGlnbik6IExpa2V3aXNlLgoJKiBtYWxsb2MvcmVhbGxvYy5jIChyZWFsbG9jKTogTGlrZXdpc2UuCgkqIG1hbGxvYy9tYWxsb2MuYzogRGVmaW5lIF9fbGliY19tYWxsb2NfbG9jay4KCShfbWFsbG9jX2ludGVybmFsKTogRG9uJ3QgdXNlIGBtYWxsb2MnLiAgSW5zdGVhZCBsb29rIGZvcgoJYF9fbWFsbG9jX2hvb2snIG9yIGNhbGwgYF9tYWxsb2NfaW50ZXJuYWwnLgoJKG1hbGxvYyk6IFByb3RlY3QgYnkgdXNpbmcgYF9fbGliY19tYWxsb2NfbG9jaycuCgkqIG1hbGxvYy9tYWxsb2MuaDogRGVjbGFyZSBgX19saWJjX21hbGxvY19sb2NrJy4KCk1vbiBTZXAgIDIgMjI6NDI6NTkgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBzeXNkZXBzL2FscGhhL2VsZi9zdGFydC5TOiBVc2Ugd2Vha19hbGlhcyBmb3IgX19zdGFydAoJaW5zdGVhZCBvZiB0aGUgaGFyZCBkZWZpbml0aW9uLgoKCSogc3lzZGVwcy9hbHBoYS9kbC1tYWNoaW5lLmggKFJUTERfU1RBUlQpOiBBZGQgdHlwZSBpbmZvIGZvcgoJX3N0YXJ0IGFuZCBfZGxfc3RhcnRfdXNlci4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2luaXQtZmlyc3QuaCAoU1lTREVQX0NBTExfSU5JVCk6CglNYWtlIF9kbF9zdGFydGluZ191cCB3ZWFrLiAgQWRkIHR5cGUgaW5mbyBmb3IgTkFNRS4KCk1vbiBTZXAgIDIgMjI6MTU6MTQgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBNYWtlZmlsZSAoYWxsKTogQWRkIGV4dHJhX3NvbGlicyBwYXNzLgoJKCtzdWJkaXJfdGFyZ2V0cyk6IFNhbWUuCgkqIFJ1bGVzIChleHRyYV9zb2xpYnMpOiBOZXcgcGhvbnkgZW1wdHkgdGFyZ2V0IGZvciBzdWJkaXJzIHdpdGhvdXQKCWV4dHJhIGxpYnMuCgkqIGV4dHJhLWxpYi5tazogQnVpbGQgbGliKi5zbyogaW4gZXh0cmFfc29saWJzIG5vdCBsaWItbm9yYW5saWIuCgkqIG1hbnVhbC9NYWtlZmlsZTogQWRkIGR1bW15IGV4dHJhX3NvbGlicyB0YXJnZXQuCgpTdW4gU2VwICAxIDE1OjQxOjIyIDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogTWFrZWNvbmZpZyAoK2xpbmspOiBBZGQgJChsaW5rLWV4dHJhLWxpYnMpLgoJKGxpbmstZXh0cmEtbGlicyk6IE5ldyB2YXJpYWJsZSB3aGljaCBleHBhbmRzIHRvIHRoZSBmdWxsIHBhdGhzIG9mCgl0aGUgb3RoZXIgbGlicmFyaWVzIG5lZWRlZCBieSBhIHByb2dyYW0sIGFzIGNvbnRyb2xlZCBieSBMRExJQlMtJChARikuCgkqIGRiL01ha2VmaWxlOiBVc2UgTERMSUJTLW1ha2VkYiB0byBsaW5rIGxpYmRiIG5vdCBhIGRlcGVuZGVuY3ksIGFzCgl0aGUgbGF0ZXIgYXR0ZW1wdHMgdG8gaW5zdGFsbCB0aGUgbGlicmFyeSBiZWZvcmUgbGlua2luZyBpdC4KCgkqIHN5c2RlcHMvdW5peC9hbHBoYS9zeXNkZXAuUzogQWxpZ24gZXJybm8uCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9pb3Blcm0uYyAoc3RydWN0IHBsYXRmb3JtKTogQWRkCgloYWVfc2hpZnQgZW50cnkuCgkoaW8pOiBNb3ZlIGJ1c19tZW1vcnlfYmFzZSBhbmQgc3BhcnNlX2J1c19tZW1vcnlfYmFzZSBpbnRvIHN0cnVjdC4KCShfaGFlX3NoaWZ0KTogTmV3IGZ1bmN0aW9uLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zeXMvaW8uaDogTmV3IGZpbGUuICBQcm90b3R5cGVzCglmb3IgdGhlIGJ1cyBxdWVyeSBmdW5jdGlvbnMuCgpTYXQgQXVnIDMxIDE4OjE0OjU0IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogZWxmL2RsLWNsb3NlLmMgKF9kbF9jbG9zZSk6IEluIHN0YXRpYyBleGVjdXRhYmxlcywgbWFwLT5sX3ByZXYKCWNhbiBiZSBOVUxMIHdoZW4gdW5sb2FkaW5nIGEgbGlicmFyeS4KCgkqIGVsZi9kbC1vcGVuLmMgKF9kbF9vcGVuKTogUGFzcyBfX2Vudmlyb24gaW5zdGVhZCBvZiBfX2xpYmNfZW52cAoJdG8gdGhlIGxpYnJhcnkgLmluaXQgZnVuY3Rpb24uCgoJKiBzeXNkZXBzL2FscGhhL2RsLW1hY2hpbmUuaCAoZWxmX21hY2hpbmVfcmVsYSk6ICBTaW5jZSB3ZSBvbWl0dGVkCglwYXJ0IG9mIHRoZSBDT1BZIHJlbG9jIHByb2Nlc3NpbmcgZWFybGllciwgb21pdCB0aGUgcmVzdCBub3cgLS0KCXdlJ2xsIGdldCBpbnRvIGxlc3MgdHJvdWJsZSBsYXRlciB3aGVuIHNvbWUgZm9vbCBkb2VzIHVzZSBhIENPUFkuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pbml0LWZpcnN0LmMgKGluaXQpOiBBY2NlcHQgYXJnYyBldCBhbCBhcwoJcGFyYW1ldGVycy4gIE1vdmUgYWxsIGFyZ2MgYW5kIF9fbGliY19tdWx0aXBsZV9saWJjcyBjYWxjdWxhdGlvbiBvdXQKCXRvIGluaXQtZmlyc3QuaC4gIFVzZSBfX2Vudmlyb24gbm90IF9fbGliY19lbnZwLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9pbml0LWZpcnN0Lmg6IFJld3JpdGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvaW5pdC1maXJzdC5oOiBSZXdyaXRlLgoKVGh1IEF1ZyAyOSAyMDoyNjo0MCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvcG9zaXgvcHJvZmlsLmMgKHByb2ZpbCk6IERvbid0IGNsb2JiZXIgc2F2ZWQgdGltZXIgYW5kCglzaWduYWwgc2V0dGluZ3Mgd2hlbiBwcm9maWxpbmcgd2FzIGFscmVhZHkgdHVybmVkIG9uLgoKCSogY3N1L2dtb24tc3RhcnQuYyAoX19nbW9uX3N0YXJ0X18pIFtIQVZFX0lOSVRGSU5JXTogUHJvdGVjdCBmcm9tCgliZWluZyBjYWxsZWQgdHdpY2UuCgpXZWQgU2VwICA0IDAxOjMxOjUwIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9tbWFwLlM6IFRlc3QgZm9yCgkwIDwgcmV0dXJuIHZhbHVlIDwgLTQwOTYgYW5kIG5vdCA8IDAgdG8gZGVjaWRlIGFib3V0IGZhaWx1cmUuCglSZXBvcnRlZCBieSBBbmRyZWFzIEphZWdlci4KClR1ZSBTZXAgIDMgMTk6MDQ6MDUgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdGRpby1jb21tb24vdmZzY2FuZi5jIChfX3Zmc2NhbmYpOiBEb24ndCBjb3VudCBFT0YgY2hhcgoJaW4gJWMgZm9ybWF0LgoKU2F0IEF1ZyAzMSAxODoxMDo1MSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHdjc21icy93Y2hhci5oOiBEZWZpbmUgcHJvdG90eXBlcyBmb3Igd2NzdG9xIGFuZCB3Y3N0b3VxIG9ubHkKCSNpZmRlZiBfX1VTRV9HTlUuCgpTYXQgQXVnIDMxIDEyOjM0OjI5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogdmVyc2lvbi5jOiBBZGQgbWlzc2luZyBuZXdsaW5lIGNoYXJhY3RlciBpbiBiYW5uZXIuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9EaXN0OiBDb3JyZWN0IHR5cG8uCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvRGlzdDogTGlrZXdpc2UuCgpTYXQgQXVnIDMxIDAzOjA3OjM5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW50bC9sMTBuZmxpc3QuYyAoX25sX25vcm1hbGl6ZV9jb2Rlc2V0KTogV2UgY29udmVydCB0byBsb3dlcgoJY2FzZSwgc28gZG9uJ3QgcHJlcGVuZCB1cHBlcmNhc2UgYElTTycgZm9yIG9ubHkgbnVtZXJpYyBhcmcuCgpXZWQgU2VwICA0IDE2OjE2OjEzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvc2VuZC5jIChfX3NlbmQpOiBEZS1BTlNJLWZ5LgoJKiBzeXNkZXBzL21hY2gvaHVyZC9zZW5kdG8uYyAoc2VuZHRvKTogTGlrZXdpc2UuCgpUdWUgU2VwICAzIDExOjE2OjA3IDE5OTYgIFRob21hcyBCdXNobmVsbC8gbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzaGFkb3cvbGNrcHdkZi5jIChfX3VsY2twd2RmKTogRG9uJ3QgdGFrZSBhZGRyZXNzIG9mIExPQ0sgaW4KCWNhbGwgdG8gX19saWJjX2xvY2tfbG9jay4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL3NlbmQuYyAoX19zZW5kKTogRGVjbGFyZSBCVUYgY29uc3QuCgkqIHN5c2RlcHMvbWFjaC9odXJkL3NlbmR0by5jIChzZW5kdG8pOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvc3R1Yi91c3RhdC5jOiBJbmNsdWRlIDxzeXMvdXN0YXQuaD4uCgoJKiBtaXNjL3N5c2xvZy5jICh2c3lzbG9nKTogRml4IHR5cG8gKGBtb3dfdG0nIC0+IGBub3dfdG0nKS4KCkZyaSBBdWcgMzAgMTk6NTU6MjcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBsaWJpby9nZW5vcHMuYzogTWFrZSBfY2xlYW51cCBhbiBhbGlhcyBvZiBfSU9fY2xlYW51cC4KCVJlcG9ydGVkIGJ5IEVyaWsgVHJvYW4uCgpGcmkgQXVnIDMwIDE1OjQwOjA0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvRGlzdDogQWRkIHN5cy9wcm9jZnMuaCBhbmQKCXN5cy9zeXNtYWNyb3MuaC4gIFJlcG9ydGVkIGJ5IEN1cnRpc3MgPDFDTUMzNDY2QElCTS5NVFNBQy5FRFU+LgoKRnJpIEF1ZyAzMCAxMzo1MzozMiAxOTk2ICBBbmRyZWFzIEphZWdlciAgPGFqQGFydGh1ci5wZmFsei5kZT4KCgkqIHN5c2RlcHMvdW5peC9tbWFuL3N5c2NhbGxzLmxpc3Q6IGBtbWFwJyBoYXMgNiBhcmd1bWVudHMsIG5vdCA1LgoKRnJpIEF1ZyAzMCAxMzowMToxMCAxOTk2ICBOSUlCRSBZdXRha2EgIDxnbmlpYmVAbXJpLmNvLmpwPgoKCSogc3lzZGVwcy9pMzg2L2ZwdS9fX21hdGguaCAodGFuKTogUG9wIDEuMCBpbiBTVCB0byBnZXQKCXJlYWwgcmVzdWx0LgoKRnJpIEF1ZyAzMCAwMzozMzozMyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfY2JydGwuYzogTmV3IGZpbGUuICBgbG9uZyBkb3VibGUnCglpbXBsZW1lbnRhdGlvbi4KCkZyaSBBdWcgMzAgMTM6Mzk6MjEgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIE1ha2VydWxlcyAoQlVJTERfQ0ZMQUdTKTogVXNlIEAoY29tbW9uLW9ianBmeCkgZm9yIGNvbmZpZy5oLCBub3QKCSQoLi4pLiAgU29tZSBydWxlcyAobGlrZSBzeXNkZXBzL3Bvc2l4L01ha2VmaWxlIGZvciBtay1zdGRpb2xpbSkKCWRvIGBjZCcgY29tbWFuZHMuCgkoc2VkLXJlbW92ZS1vYmpwZngpOiBEb24ndCBzdWJzdGl0dXRlIGZvciAkKG9ianBmeCkgYW55bW9yZTsKCSQoY29tbW9uLW9ianBmeCkgaXMgZ29vZCBlbm91Z2guCgkqIFJ1bGVzIChjb21tb24tZ2VuZXJhdGVkKTogUHJvdmlkZSBkZWZhdWx0IChlbXB0eSkgdmFsdWUuCgkoZHVtbXkubywgZHVtbXkuYywgZW1wdHkubywgZW1wdHkuYyk6IFB1dCB0aGVzZSBpbgoJJChjb21tb24tZ2VuZXJhdGVkKSwgbm90ICQoZ2VuZXJhdGVkKSwgYW5kIHdpdGhvdXQgJCguLikuCgkoc3ViZGlyX2VjaG8tZGlzdGluZm8pOiBUcmVhdCAkKGNvbW1vbi1nZW5lcmF0ZWQpIGp1c3QgbGlrZQoJJChnZW5lcmF0ZWQpLgoJKGdlbmVyYXRlZCk6IERlcGVuZCBvbiB0aGUgKHN1aXRhYmx5IG11dGF0ZWQpICQoY29tbW9uLWdlbmVyYXRlZCkKCWZpbGVzIHRvby4KCSogTWFrZXJ1bGVzIChjb21tb24tY2xlYW4pOiBSZW1vdmUgY29tbW9uLWdlbmVyYXRlZCBmaWxlcyB0b28uCgkqIHN5c2RlcHMvbWFjaC9odXJkL01ha2VmaWxlIChnZW5lcmF0ZWQpOiBEb24ndCBwdXQgZXJybm9zLmQgYW5kCglzdGFtcC1lcnJub3MgaGVyZS4KCShjb21tb24tZ2VuZXJhdGVkKTogRG8gcHV0IGVycm5vcy5kIGFuZCBzdGFtcC1lcnJub3MgaGVyZS4KCShycGF0aC1saW5rKTogRG9uJ3QgdXNlICs9OyAkKHJwYXRoLWxpbmspIGlzIGEgY29sb24gc2VwYXJhdGVkIGxpc3QuCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9NYWtlZmlsZSAoYmVmb3JlLWNvbXBpbGUpOiBBZGQgYXV0aDsgYWxzbyBhZGQKCWF1dGggdG8JZm9sbG93aW5nIHJ1bGUgdG8gZ2V0IGl0IGJ1aWx0LgoKRnJpIEF1ZyAzMCAwMToyNjo0NCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvRGlzdDogQWRkIGNsb25lLlMuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvRGlzdDogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL0Rpc3Q6IExpa2V3aXNlLgoKCSogdmVyc2lvbi5jOiBBZGQgY29tbWVudCBhYm91dCB3aGVyZSB0byByZXBvcnQgYnVncyB0by4KCSogY2F0Z2V0cy9nZW5jYXQuYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogZGIvbWFrZWRiLmMgKHVzYWdlKTogTGlrZXdpc2UuCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NhbGUuYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZWRlZi5jICh1c2FnZSk6IExpa2V3aXNlLgoKCSogbWFudWFsL3NvY2tldC50ZXhpOiBBIGxpdHRsZSBiaXQgYmV0dGVyIHdvcmRpbmcuCgpUaHUgQXVnIDI5IDE4OjAzOjA2IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogTWFrZXJ1bGVzOiBNYWtlIHN1cmUgZGlyZWN0b3J5IGV4aXN0cyBiZWZvcmUgZ2VuZXJhdGluZyBzdGFtcCBmaWxlLgoJKEJVSUxEX0NGTEFHUyk6IEFsd2F5cyByZWZlciB0byB1c2luZyAkKC4uKS4KCSogbWFudWFsL01ha2VmaWxlOiBNYWtlIHN1cmUgZGlyZWN0b3J5IGV4aXN0cyBiZWZvcmUgZ2VuZXJhdGluZwoJc3RhbXAgZmlsZS4KCShtYWtlLXRhcmdldC1kaXJlY3RvcnkpOiBBZGQgbWFjcm8gZGVmaW5pdGlvbi4KCSogc3lzZGVwcy9nZW5lcmljL01ha2VmaWxlOiBNYWtlIHN1cmUgZGlyZWN0b3J5IGV4aXN0cyBiZWZvcmUKCWdlbmVyYXRpbmcgc3RhbXAgZmlsZS4KCgkqIE1ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIGF1dG9sb2NrLnNoLiAgUmVwb3J0ZWQgYnkgRmlsYSBLb2xvZG55LgoKVHVlIEF1ZyAyNyAxMDowNjoyMiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCglXaGVuIGNvbXBpbGluZyBpbiBzZXBhcmF0ZSBkaXJlY3RvcnkgcHV0IG9iamVjdHMgaW50bwoJc3ViZGlyZWN0b3JpZXMgbWF0Y2hpbmcgdGhlIHNvdXJjZSBsYXlvdXQuCgkqIE1ha2Vjb25maWcgKG9ianBmeCkgW2lmZGVmIG9iamRpcl06IEFwcGVuZCAkKHN1YmRpcikuCglXaGVuIGxvb2tpbmcgZm9yIGNvbmZpZ3Bhcm1zIHRyeSBpbiAkKGNvbW1vbi1vYmpwZngpLgoJVXNlICQoY29tbW9uLW9ianBmeClTVUJESVIgdG8gZmluZCBvYmplY3RzIGZyb20gb3RoZXIgc3ViZGlyZWN0b3J5CglidWlsZHMuCgkqIE1ha2VydWxlczogQWRkICQob2JqcGZ4KSB0byB2cGF0aCBsaXN0LgoJKG1ha2UtZHVtbXktZGVwKTogVXNlICQoY29tbW9uLW9ianBmeCkgdG8gYXZvaWQgY3JlYXRpbmcgZHVtbXkuZAoJbW9yZSB0aGFuIG9uY2UuICBBbGwgdXNlcyBpbiBkZXBlbmRlbmN5IGxpc3RzIGNoYW5nZWQuCgkoK21ha2UtZGVwcyk6IE1ha2UgdGFyZ2V0IGRpcmVjdG9yeS4KCShzZWQtcmVtb3ZlLW9ianBmeCk6IFN1YnN0aXR1dGUgJChjb21tb24tb2JqcGZ4KS4KCShkby1hciwgYnVpbGQtZXh0cmEtbGliLCAkKGNvbW1vbi1vYmpwZngpc3R1Yi0kKHN1YmRpcikpOiBVc2UKCSQob2JqcGZ4KSBpbnN0ZWFkIG9mICQob2JqZGlyKSBmb3IgY2QgY29tbWFuZC4KCShPJS1saWIpOiBBbHdheXMgZmluZCBsaWJjIHJlbGF0aXZlIHRvICQoLi4pLgoJKHN1YmRpci1zdGFtcHMpOiBDb2xsZWN0IHN0YW1wIGZpbGVzIGZyb20gc3ViZGlycy4KCShjb21tb24tbW9zdGx5Y2xlYW4pOiBSZW1vdmUgc3R1YiBmaWxlIGluICQoY29tbW9uLW9ianBmeCkuCgkqIE1ha2VUQUdTICgkUC9zaWdsaXN0LnBvdCk6IEZpbmQgc2lnbGlzdC5jIGluIHN0ZGlvLWNvbW1vbi4KCSogUnVsZXMgKGRlcC1kdW1teS1saWIpOiBVc2UgJChjb21tb24tb2JqcGZ4KSB0byBhdm9pZCBjcmVhdGluZyB0bwoJbW9yZSB0aGFuIG9uY2UuCgkoJChvYmpwZngpZHVtbXkuYywgJChvYmpwZngpZW1wdHkuYyk6IENoYW5nZSB0YXJnZXQgbmFtZSB0byB1c2UKCSQoY29tbW9uLW9iamZweCkuICBBbGwgdXNlcyBpbiBkZXBlbmRlbmN5IGxpc3RzIGNoYW5nZWQuCgkoZ2VuZXJhdGVkKTogUHJlcGVuZCAkKC4uKSB0byBuYW1lcy4KCSogYmFyZS9NYWtlZmlsZSAoJChvYmpwZngpbGliJChjb25maWctdmVuZG9yKS5hKTogUmVtb3ZlICQob2JqcGZ4KQoJZnJvbSAkQC4KCSogbnNzL01ha2VmaWxlICgkKG9ianBmeClsaWJuc3NfZG5zLnNvLCAkKG9ianBmeClsaWJuc3NfZGIuc28pOgoJVXNlICQoY29tbW9uLW9ianBmeCkgaW5zdGVhZCBvZiAkKC4uKSBpbiBkZXBlbmRlbmNpZXMuCgkqIHN5c2RlcHMvbWFjaC9NYWtlZmlsZSAobWFjaC1vYmpwZngpOiBVbmNvbmRpdGlvbmFsbHkgdXNlCgkkKGNvbW1vbi1vYmpwZngpIGluc3RlYWQgb2YgJCguLikgYW5kIChvYmpwZngpLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9NYWtlZmlsZSAoaHVyZC1vYmpwZngpOiBMaWtld2lzZS4KCShycGF0aC1saW5rKTogTGlrZXdpc2UuCgkocnBjdXNlcmxpYnMpOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L01ha2VmaWxlIFskKHN1YmRpcikgPSBzdGRpby1jb21tb25dOiBDaGVjayBmb3IKCWVycmxpc3QuYyBpbiAkKG9ianBmeCksIG5vdCAkKGNvbW1vbi1vYmpwZngpLgoJKCQoY29tbW9uLW9ianBmeClzLXByb3RvLmQpOiBTcGVjaWFsIHJ1bGUgbm90IGNvdmVyZWQgYnkgcGF0dGVybgoJcnVsZS4KCSogc3lzZGVwcy91bml4L21ha2Utc3lzY2FsbHMuc2g6IE1ha2Ugc3lzY2FsbCBydWxlcyBkZXBlbmRpbmcgb24KCXMtcHJvdG8uZCBpbiAkKGNvbW1vbi1vYmpwZngpLCBub3QgJChvYmpwZngpLgoKVGh1IEF1ZyAyOSAxNzo0NTo0OSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG5zcy9uc3N3aXRjaC5jIChuc3NfZGxlcnJvcl9ydW4pOiBGcmVlIHJldHVybmVkIGVycm9yCglzdHJpbmcuCgpUaHUgQXVnIDI5IDE1OjUzOjMzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy9saWJtLWllZWU3NTQvZV9hY29zaGwuYzogTmV3IGZpbGUuIGBsb25nIGRvdWJsZScKCWltcGxlbWVudGF0aW9uLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX2F0YW5obC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvZV9yZW1haW5kZXJsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9lX3NjYWxibC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19hc2luaGwuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfY29zbC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19zaW5sLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX3RhbmhsLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX3RhbmwuYzogTGlrZXdpc2UuCgpUaHUgQXVnIDI5IDAwOjI4OjA4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RkaW8tY29tbW9uL3ByaW50Zl9mcC5jIChfX3ByaW50Zl9mcCk6IFVzZSBkZWZhdWx0IHZhbHVlICcuJyBpZgoJYGRlY2ltYWwnIGNoYXIgaXMgMC4KCgkqIEMtbnVtZXJpYy5jIChub3RfYXZhaWxhYmxlKTogTmV3IGNvbnN0YW50LgoJKF9ubF9DX0xDX05VTUVSSUMpOiBVc2UgYG5vdF9hdmFpbGFibGUnIGZvciBncm91cGluZyB2YWx1ZS4KCgkqIG5zcy9uc3N3aXRjaC5jb25mOiBFeGFtcGxlIGNvbmZpZ3VyYXRpb24gZmlsZS4KCSogbnNzL2RiLU1ha2VmaWxlOiBFeGFtcGxlIE1ha2VmaWxlIGZvciBnZW5lcmF0aW9uIG9mIGRhdGFiYXNlcwoJZm9yIG5zc19kYi4KCSogbnNzL01ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIG5zc3dpdGNoLmNvbmYgYW5kIGRiLU1ha2VmaWxlLgoKMTk5Ni0wOC0yOCAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiBDLW1lc3NhZ2VzLmMgKF9ubF9DX0xDX01FU1NBR0VTKTogU2V0IHllc2V4cHIgdG8gIl5beVldIiBhbmQKCW5vZXhwciB0byAiXltuTl0iOyB0aGlzIGNvbmZvcm1zIHRvIFBPU0lYLjIuCgoJKiBDLXRpbWUuYyAoX25sX0NfTENfVElNRSk6IENoYW5nZSAlZCB0byAlZSBpbiBkX3RfZm9ybWF0LCB0bwoJY29uZm9ybSB0byBQT1NJWC4yLgoKMTk5Ni0wOC0yOCAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiBDLW1vbmV0YXJ5LmMgKG5vdF9hdmFpbGFibGUpOiBOZXcgY29uc3RhbnQuCgkoX25sX0NfTENfTU9ORVRBUlkpOiBTZXQgbW9uX2RlY2ltYWxfcG9pbnQgdG8gIiIsIGFuZCBzZXQKCW1vbl9ncm91cGluZywgaW50X2ZyYWNfZGlnaXRzLCBmcmFjX2RpZ2l0cywgcF9jc19wcmVjZWRlcywKCXBfc2VwX2J5X3NwYWNlLCBuX2NzX3ByZWNlZGVzLCBuX3NlcF9ieV9zcGFjZSwgcF9zaWduX3Bvc24sIGFuZAoJbl9zaWduX3Bvc24gdG8gQ0hBUl9NQVgsIGFzIHJlcXVpcmVkIGJ5IHRoZSBQT1NJWCBTdGFuZGFyZC4KCldlZCBBdWcgMjggMjM6MTI6MjggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBuc3MvbnNzX2RiL2RiLVhYWC5jOiBDb3JyZWN0IGZ1bmN0aW9uIG5hbWVzLiAgVGhleSBtdXN0IGJlCglgX25zc19kYl8qJyBpbnN0ZWFkIG9mIGBfbnNzX2ZpbGVzXyonLgoJKGxvb2t1cCk6IGBwYXJzZV9saW5lJyByZXR1cm5zIDEgaWYgc3VjY2VzZnVsLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXNlcnZpY2UuYyAoc2VydmJ5bmFtZSk6IEtleSBmb3IgZGF0YWJhc2UKCW11c3QgYWxzbyBjb250YWluIHByb3RvY29sIG5hbWVzLgoJKHNlcnZieXB0KTogTGlrZXdpc2UuCglUZXN0IG11c3QgYWxzbyBjaGVjayBmb3IgcHJvdG9jb2wuICBBZGQgYHByb3RvJyBhcmd1bWVudC4KClR1ZSBBdWcgMjcgMDk6NTY6MTMgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBNYWtlVEFHUyAoJFAvc3ViZGlycy5wb3QpOiBQcmVmaXggYWxsIGZpbGUgbmFtZXMsIG5vdCBvbmx5IHRoZQoJZmlyc3Qgb25lLgoKVHVlIEF1ZyAyNyAxNzo0NToyMSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIE1ha2VydWxlczogQWRkIHNvbWUgdGVzdCBmb3IgY29ycmVjdCB2ZXJzaW9uIG9mIEdOVSBNYWtlLgoKCSogaW8vZmNudGwuaDogVW5kbyBjaGFuZ2UgZnJvbSBNb24gQXVnIDI2IDIyOjIyOjE3IDE5OTYuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2ZjbnRsYml0cy5oOiBQbGFjZSBtYWNyb3MgaGVyZSBpbnN0ZWFkLgoKCSogc3lzZGVwcy9nZW5lcmljL2RsLXN5c2RlcC5jOiBJbml0aWFsaXplIGJyZWFrIGFkZHJlc3MgdG8KCWF2b2lkIG92ZXJ3cml0aW5nIGxhc3QgcGFnZSAoT0ssIFJvbGFuZCkuCgpUdWUgQXVnIDI3IDE2OjIwOjM3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogcmVzb2x2L3Jlc29sdi5oOiBVcGRhdGUgZnJvbSBCSU5ELTQuOS41LVQzQS4KCSogcmVzb2x2L2FycGEvbmFtZXNlci5oOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19pbml0LmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX2RlYnVnLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX21rcXVlcnkuYzogTGlrZXdpc2UuCgpUdWUgQXVnIDI3IDE1OjQ3OjA0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZWxmL2RsLWVycm9yLmMgKGNhdGNoKTogRGVmaW5lIGVycnN0cmluZyBlbGVtZW50IG5vdCBhcyBjb25zdC4KCShfZGxfY2F0Y2hfZXJyb3IpOiBFUlJTVFJJTkcgYXJndW1lbnQgaXMgbm90IGNvbnN0IHBvaW50ZXIuCglJbml0aWFsaXplICpFUlJTVFJJTkcgYW5kICpPQkpOQU1FIHNlcGFyYXRlbHkuCgkqIGVsZi9saW5rLmg6IENoYW5nZSBwcm90b3R5cGUgZm9yIGBfZGxfY2F0Y2hfZXJyb3InLgoKCSogZWxmL2RsLWxvYWQuYyAoX2RsX21hcF9vYmplY3QpOiBVc2Ugc2VwYXJhdGUgdmFyaWFibGUgZm9yCgljb3BpZWQgTkFNRSB0byBhdm9pZCBgY29uc3QnIHdhcm5pbmcuCgoJKiBlbGYvZGxlcnJvci5jOiBNYWtlIGBsYXN0X2VycnN0cmluZycgdmFyaWFibGUgbm90IGNvbnN0IHBvaW50ZXIuCgoJKiBlbGYvcnRsZC5jOiBJbXBsZW1lbnQgcmVhZGluZyBvZiAvZXRjL2xkLnNvLnByZWxvYWQuICBUaGlzCglwcm92aWRlcyBwcmVsb2FkaW5nIGV2ZW4gZm9yIFNVSUQgYmluYXJpZXMuCglBZGQgc29tZSBtb3JlIGNhc3RzIHRvIGF2b2lkIHNpZ25lZDwtPnVuc2lnbmVkIHdhcm5pbmdzLgoKVHVlIEF1ZyAyNyAxNTo0MDoyOCAxOTk2ICBOSUlCRSBZdXRha2EgIDxnbmlpYmVAbXJpLmNvLmpwPgoKCSogcG9zaXgvc3lzL3R5cGVzLmg6IERlZmluZSBsb2ZmX3QuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dudS90eXBlcy5oOiBEZWZpbmUgX19sb2ZmX3QuCgpNb24gQXVnIDI2IDIyOjIyOjE3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW8vZmNudGwuaDogQWRkIGRlZmluaXRpb24gZm9yIEJTRCBGKiBtYWNyb3MuCgoJKiBtaXNjL2luaXQtbWlzYy5jIChfX2luaXRfbWlzYyk6IE1ha2Ugc3RhdGljLgoJKiBtaXNjL01ha2VmaWxlOiBQYXNzIC1ma2VlcC1pbmxpbmUtZnVuY3Rpb25zIGZsYWcgZm9yIGluaXQtbWlzYy5jLgoKCSogY29uZmlndXJlLmluOiBBZGQgdGVzdCBmb3IgLWZuby1leGNlcHRpb24gb3B0aW9uIG9mIGdjYy4KCSogY29uZmlnLm1ha2UuaW46IEFkZCBkZWZpbml0aW9uIG9mIGhhdmUtbm8tZXhjZXB0aW9ucy4KCSogTWFrZXJ1bGVzOiBEZWZpbmUgbm8tZXhjZXB0aW9ucyBiYXNlZCBvbiBoYXZlLW5vLWV4Y2VwdGlvbnMuCgkqIGNzdS9NYWtlZmlsZTogV2hlbiB0cmFuc2xhdGluZyBpbml0ZmluaS5jIHBhc3MgJChuby1leGNlcHRpb25zKS4KCVRoaXMgaXMgbmVjZXNzYXJ5IGZvciBnY2MgPj0gc3MtOTYwODE2LgoKTW9uIEF1ZyAyNiAxNzoxNjo0OCAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIHN5c2RlcHMvYWxwaGEvZGwtbWFjaGluZS5oOiBDbGVhciBzdGFydHVwIGZsYWcuCgpGcmkgQXVnIDE2IDIxOjE3OjUwIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZXJ1bGVzIChvLWl0ZXJhdG9yLWRvaXQpOiBTaW1wbGlmeSByZWZlcmVuY2UgdG8gYXV0b2xvY2sKCXNjcmlwdC4KClNhdCBBdWcgMjQgMTU6Mjc6NDEgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC9nZXRjd2QuYwoJKF9odXJkX2Nhbm9uaWNhbGl6ZV9kaXJlY3RvcnlfbmFtZV9pbnRlcm5hbCk6IEFmdGVyIHJlc2l6aW5nIHRoZQoJYnVmZmVyIG1vdmUgdGhlIGN1cnJlbnQgY29udGVudHMgdG8gdGhlIGVuZC4gIENvcnJlY3RseSByZWxvY2F0ZQoJZmlsZSBuYW1lIHBvaW50ZXIgdG8gdXBwZXIgaGFsZiBvZiB0aGUgYnVmZmVyLgoKTW9uIEF1ZyAyNiAxNTo0OTo1OSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHJ0bGQuYyAoZGxfbWFpbik6IFJlbW92ZSBjb2RlIHRvIGNhbGwgbGQuc28gaW5pdGlhbGl6ZXIuICBUaGlzCgl3YXMgaW50cm9kdWNlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIExpbnV4IGxkLnNvIGFuZCB3b3VsZCBub3QKCWJlIHVzZWQgYW55bW9yZS4gIE5vdyB3ZSBkb24ndCBoYXZlIGFueSBnb29kIHZhbHVlcyB0byB1c2UgYXMgdGhlCglwYXJhbWV0ZXJzIHRvIHRoZSBpbml0aWFsaXplciBzbyBzaW1wbHkgcmVtb3ZlIGl0LgoKU3VuIEF1ZyAyNSAxODoyNTo1MiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGdtb24vZ21vbi5jIChFUlIpOiBEb24ndCB3cml0ZSB0aGUgdGVybWluYXRpbmcgTlVMLgoKCSogc3lzZGVwcy9wb3NpeC9wcm9maWwuYyAocHJvZmlsKTogRGlzYWJsZSB0aGUgcHJvZmlsaW5nIHRpbWVyIGF0CglmaXJzdC4KCShwcm9maWxfY291bnQpOiBVc2UgNjQgYml0IGFyaXRobWV0aGljIHRvIGF2b2lkIG92ZXJmbG93LgoKCSogc3lzZGVwcy9nZW5lcmljL21hY2hpbmUtZ21vbi5oIChNQ09VTlQpOiBGaXggYXJndW1lbnQgb3JkZXIuCgpNb24gQXVnIDI2IDE2OjMxOjMzIDE5OTYgIFRob21hcyBCdXNobmVsbCwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC9zZXRpdGltZXIuYyAoc2V0aXRpbWVyX2xvY2tlZCk6IFRvbGVyYXRlIE5FVwoJYmVpbmcgbnVsbDsgaW4gdGhhdCBjYXNlIGRvbid0IHRvdWNoIHRoZSB0aW1lciBhdCBhbGwgKGJ1dCBkbwoJcmV0dXJuIHNvbWV0aGluZyBpbiBPTEQgaWYgbmVjZXNzYXJ5KS4KCk1vbiBBdWcgMjYgMTM6MzU6MTYgMTk5NiAgVGhvbWFzIEJ1c2huZWxsLCBuL0JTRyAgPHRob21hc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2kzODYvaW5pdC1maXJzdC5jIChfX2xpYmNfbXVsdGlwbGVfbGliY3MpOiBOZXcKCXZhcmlhYmxlLgoJKiBzeXNkZXBzL2kzODYvaW5pdC1maXJzdC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL2luaXQtZmlyc3QuYzogTGlrZXdpc2UuCgpNb24gQXVnIDI2IDAyOjAxOjM3IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZWxmL2RsLW9wZW4uYyAoX2RsX29wZW4pOiBDYWxsIGxpYnJhcnkgaW5pdGlhbGl6ZXIgd2l0aAoJY29ycmVjdCBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGFuZCBlbnZpcm9ubWVudCBpbmZvcm1hdGlvbi4KCSogZWxmL3J0bGQuYyAoZGxfbWFpbik6IFByb3ZpZGUgYXJndW1lbnRzIHRvIGluaXRpYWxpemVyIG9mCglsZC5zbyBpdHNlbGYuCgpTdW4gQXVnIDI1IDE5OjE1OjQ2IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc2hhZG93L01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBsY2twd2RmLgoJKiBzaGFkb3cvbGNrcHdkZi5jOiBOZXcgZmlsZS4KCgkqIHN5c2RlcHMvaTM4Ni9mcHVfY29udHJvbC5oIChfRlBVX0dFVENXLCBfRlBVX1NFVENXKTogRm9yY2UKCWFyZ3VtZW50IGBjdycgdG8gYmUgcGxhY2VkIGluIG1lbW9yeS4gIFBhdGNoIGJ5IFRvcmJqb3JuIEdyYW5sdW5kLgoKU3VuIEF1ZyAyNSAxMjo1MzozNyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGRlZmluaXRpb24gZm9yIGBfX2VoX3BjJyBhbmQgYF9fdGhyb3cnIGluCgl0ZXN0IGZvciAtLW5vLXdob2xlLWFyY2hpdmUuICBUaGUgY29tcGlsZXIgZ2VuZXJhdGVzIGRlcGVuZGVuY2llcwoJZm9yIHRoaXMgYnV0IG5vbmUgb2YgdGhlIHN0YW5kYXJkIGxpYnJhcmVzIGFuZCBzdGFydHVwIGZpbGVzCglhcmUgdXNlZC4gIE5lY2Vzc2FyeSBmb3IgZ2NjID49IHNzLTk2MDgxNi4KClN1biBBdWcgMjUgMDE6MzE6MzMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBlbGYvZGwtZXJyb3IuYyAoX2RsX3NpZ25hbF9lcnJvcik6IElmIGVycm9yIGlzIGNhdGNoZWQsIG1hbGxvYwoJcmV0dXJuIHN0cmluZyBzaW5jZSBzdHJpbmcgbWlnaHQgYmUgb24gc3RhY2suCgkqIGVsZi9kbC1sb29rdXAuYyAoX2RsX2xvb2t1cF9zeW1ib2wpOiBVbmRvIGNoYW5nZSBvZgoJV2VkIEF1ZyAyMSAxMDoxNDo1OSAxOTk2LgoJKiBlbGYvZGxlcnJvci5jIChkbGVycm9yKTogRnJlZSBlcnJvciBzdHJpbmcgYWZ0ZXIgcHJpbnRpbmcuCgkoX2RsZXJyb3JfcnVuKTogSWYgZXJyb3Igc3RyaW5nIHdhcyBub3QgcHJpbnRlZCBzaW5jZSBsYXN0IGVycm9yCglmcmVlIHN0cmluZy4KCSogcnRsZC5jIChkbF9tYWluKTogRnJlZSBlcnJvciBzdHJpbmcgaW4gY2FzZSBvZiBlcnJvci4KClNhdCBBdWcgMjQgMDM6MTY6NDcgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBtaXNjL3N5c2xvZy5jICh2c3lzbG9nKTogRG9uJ3QgdXNlIGBsb2NhbHRpbWUnIG9yIGBnbXRpbWUnIHNpbmNlCgl0aGlzIGNoYW5nZXMgdGhlIGdsb2JhbCBzdGF0ZSBmb3IgYGxvY2FsdGltZScgYW5kIGBnbXRpbWUnLiAgVXNlCglgX19sb2NhbHRpbWVfcicvYF9fZ210aW1lX3InIGluc3RlYWQuCgkqIHJlc29sdi9yZXNfZGVidWcuYyAoX19wX3NlY3N0b2RhdGUpOiBMaWtld2lzZS4KCSogc3lzZGVwcy9nZW5lcmljL2Z0aW1lLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3Bvc2l4L2dldHRpbWVvZmRheS5jOiBMaWtld2lzZS4KCVJlcG9ydGVkIGJ5IFBhdWwgRWdnZXJ0LgoKCSogdGltZS9nbXRpbWUuYzogRGUtQU5TSS1meS4KCSogdGltZS9zdHJmdGltZS5jOiBEb24ndCBjYWxsIG5vbi1yZWVudHJhbnQgZnVuY3Rpb25zIHdoaWNoIGNoYW5nZQoJc3RhdGUuCgpXZWQgQXVnIDIxIDEwOjE0OjU5IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogZWxmL2RsLWxvb2t1cC5jIChfZGxfbG9va3VwX3N5bWJvbCk6IE1hbGxvYyB0aGUgZXJyb3Igc3RyaW5nIHJhdGhlcgoJdGhhbiBwdXR0aW5nIGl0IG9uIHRoZSBzdGFjay4KCldlZCBBdWcgMjEgMTA6MTI6NDIgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogV2hlbiBsb29raW5nIHVwIHN5bWJvbHMgaW4gcmVzcG9uc2UgdG8gLS1saXN0LAoJZG9uJ3QgZmluZCAucGx0IGVudHJpZXMuCgpNb24gQXVnIDE5IDIzOjE4OjEyIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9tNjhrL2RsLW1hY2hpbmUuaCAoUlRMRF9TVEFSVCk6IE9wdGltaXplIGNsZWFyaW5nCglfZGxfc3RhcnRpbmdfdXAuCgpUdWUgQXVnIDIwIDE3OjQyOjEwIDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzdGRpby9saW5ld3JhcC5jIChsaW5lX3dyYXBfc3RyZWFtKTogSW5pdGlhbGl6ZSBELT5zZWVrLgoKU2F0IEF1ZyAxNyAxMjoxOTozNyAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogbG9naW4vcHV0dXRsaW5lX3IuYyAoX19wdXR1dGxpbmVfcik6IEZpeCBoYW5kbGluZyBvZiBjYXNlIHdoZXJlCglnZXR1dGlkX3IoKSBmYWlscyB3aXRoIEVTUkNILiAgUmVwb3J0ZWQgYnkgTWlxdWVsIHZhbiBTbW9vcmVuYnVyZy4KCldlZCBBdWcgMTQgMTQ6MTA6NTQgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2lvcGVybS5jIChwbGF0Zm9ybSk6IENoYW5nZSBlbnRyeQoJZm9yICJKZW5zZW4iIHNvIF9idXNfYmFzZSgpIHJldHVybnMgMCBvbiB0aGF0IHBsYXRmb3JtLiAgVXNlCglfYnVzX2Jhc2Vfc3BhcnNlKCkgdG8gZGV0ZXJtaW5lIGJhc2UgYWRkcmVzcyBvZiBzcGFyc2UgbWVtb3J5LgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL2lvLmg6IEVuY2xvc2UgI2luY2x1ZGUgPGFzbS9pby5oPgoJYW5kIGRlY2xhcmF0aW9ucyBpbiBfX0JFR0lOX0RFQ0xTL19fRU5EX0RFQ0xTLgoKU3VuIEF1ZyAxOCAxMzozNzowOSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGVyci5oOiBOZXcgZmlsZS4gIFdyYXBwZXIgYXJvdW5kIG1pc2MvZXJyLmguCgoJQ29ycmVjdCBzb2x1dGlvbiBvZiBtdWx0aXBsZSBpbml0aWFsaXphdGlvbiBwcm9ibGVtIGJ5CglSb2xhbmQgTWNHcmF0aC4KCSogY3N1L2luaXRmaW5pLmM6IFJlbW92ZSBnbG9iYWwgdmFyaWFibGUgX19saWJjX2lzX3N0YXRpYy4KCSogZWxmL3J0bGQuYzogSW50cm9kdWNlIG5ldyBnbG9iYWwgdmFyaWFibGUgX2RsX3N0YXJ0aW5nX3VwLgoJSXQncyBub256ZXJvIGR1cmluZyB0aGUgc3RhcnR1cC4KCSogZWxmL2RsLW9wZW4uYyAoX2RsX29wZW4pOiBXaGVuIF9kbF9zdGFydCBmdW5jdGlvbiBpcyBub3QKCWF2YWlsYWJsZSAoaS5lLiwgaWYgaW4gc3RhdGljIGxpYmMpIHNldCBgX19saWJjX211bHRpcGxlX2xpYmNzJwoJdG8gbm9uemVybyB2YWx1ZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvaW5pdC1maXJzdC5jIChfX2xpYmNfbXVsdGlwbGVfbGliYyk6CglOZXcgZ2xvYmFsIHZhcmlhYmxlLgoJKGluaXQpOiBVbmRvIGNoYW5nZSBvZiBGcmkgQXVnICAyIDAzOjEyOjQwIDE5OTYuCglJbml0aWFsaXplIGBfX2xpYmNfbXVsdGlwbGVfbGliY3MnIHRvIG5vbnplcm8gb25seSBpZiB0aGlzIGlzCglhIHNoYXJlZCBsaWIgY2FsbGVkIGZyb20gYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtIGFuZCBkb24ndAoJY2FsbCBgcGVyc29uYWxpdHknIGFuZCBgc2V0ZnB1Y3cnIGluIHRoaXMgY2FzZSBlaXRoZXIuCgkqIHN5c2RlcHMvZ2VuZXJpYy9zYnJrLmM6IFVuZG8gY2hhbmdlIG9mIEZyaSBBdWcgIDIgMDM6MTI6NDAgMTk5Ni4KCURvbid0IGNhbGwgYnJrKDApIHVudGlsIGBfX2xpYmNfbXVsdGlwbGVfbGliY3MnIGlzIG5vbnplcm8uCgkqIHN5c2RlcHMvaTM4Ni9kbC1tYWNoaW5lLmggKFJUTERfU1RBUlQpOiBDbGVhciBfZGxfc3RhcnRpbmdfdXAKCWJlZm9yZSBqdW1waW5nIHRvIHVzZXIgY29kZS4KCSogc3lzZGVwcy9tNjhrL2RsLW1hY2hpbmUuaCAoUlRMRF9TVEFSVCk6IExpa2V3aXNlLgoKRnJpIEF1ZyAxNiAwNDo1OTowMSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2luaXQtZmlyc3QuYzogUmVtb3ZlIGhhY2sgZnJvbQoJVGh1IEF1ZyAgOCAxMjo0MDoyMCAxOTk2LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZSBbJChzdWJkaXIpID0gY3N1XTogVXNlCgktZmtlZXAtaW5saW5lLWZ1bmN0aW9ucyBmbGFnIGluc3RlYWQuCgpGcmkgQXVnIDE2IDAxOjI0OjMzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogaW5ldC9ydXNlcnBhc3MuYyAodXNlcnBhc3MpOiBBbGxvY2F0ZSBidWZmZXIgZm9yIC5uZXRyYyBmaWxlCgluYW1lIGR5bmFtaWNhbGx5LiAgUmVwb3J0ZWQgYnkgQWxhbiBDb3guCglVbmNvbW1lbnQgd2FybmluZ3MgYW5kIG1hcmsgYXMgdHJhbnNsYXRhYmxlLgoKCSogdGltZS9zdHJmdGltZSAoc3RyZnRpbWUpOiBBZGQgaW1wbGVtZW50YXRpb24gZm9yICVzIGFuZCAlegoJZm9ybWF0LiAgQ2hhbmdlIGJlaGF2aW91ciBmb3IgdW5rbm93biBmb3JtYXQgY2hhcmFjdGVyOiBub3cKCXNpbXBseSBwcmludCBpdC4gIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3VyIG9mIHByaW50Zi4KCVJlcG9ydGVkIGJ5IEppbSBNZXllcmluZy4KCSogbWFudWFsL3RpbWUudGV4aTogRG9jdW1lbnQgYWxsIGZvcm1hdHMgYW5kIGZsYWdzIG9mIHN0cmZ0aW1lLgoKVGh1IEF1ZyAxNSAxODowMjo1MSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBMb2FkZWQgb2JqZWN0IGhhcyB0eXBlIGx0X2V4ZWN1dGFibGUsCglub3QgbHRfbGlicmFyeS4KCgkqIG1pc2Mvc3lzL3NlbGVjdC5oOiBEZWZpbmUgZmRfc2V0IHVzaW5nIHR5cGVkZWYsIG5vdCAjZGVmaW5lLgoJUHJvcG9zZWQgYnkgRGF2aWQgTW9zYmVyZ2VyLVRhbmcuCgpUaHUgQXVnIDE1IDEyOjQ4OjIxIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogcG8vaGVhZGVyLnBvdDogVXNlIHJlYWwgZGVzY3JpcHRpb24gbGluZS4KClRodSBBdWcgMTUgMDQ6NDI6NDQgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogV2hlbiBzdGFydGVkIHdpdGggLS12ZXJpZnkgcHJldmVudAoJYW55IHdhcm5pbmcuICBKdXN0IGV4aXQgd2l0aCBhbiBlcnJvci4KCSogZWxmL2xkZC5zaC5pbjogRG9uJ3QgcnVuIGdpdmVuIG9iamVjdCBkaXJlY3RseS4gIFRoaXMgZmFpbHMgZm9yCglsaWJyYXJpZXMuICBJbnN0ZWFkIHVzZSAkUlRMRCBhZ2Fpbi4KClRodSBBdWcgMTUgMDI6MDg6NTkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBtYW51YWwvbnNzLnRleGk6IE5ldyBmaWxlLiAgRG9jdW1lbnQgTlNTLgoJKiBtYW51YWwvbnNzd2l0Y2gudGV4aTogTmV3IGZpbGUuICBFeGFtcGxlIGNvbmZpZ3VyYXRpb24uCgoJKiBtYW51YWwvc3RyaW5nLnRleGk6IERvY3VtZW50IHN0cG5jcHksIHN0cmR1cGEsIGFuZCBzdHJuZHVwYS4KCSogbWFudWFsL2V4YW1wbGUvc3RyZHVwYS5jOiBOZXcgZmlsZS4gIEV4YW1wbGUgZm9yIHN0cmR1cGEuCgpXZWQgQXVnIDE0IDIxOjM2OjE2IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RkbGliL3N0cnRvZC5jIChTVFJUT0QpOiBDb3JyZWN0IGFzc2VydGlvbiBhYm91dCBzaXplIG9mCgl3aW50X3QgYW5kIHdjaGFyX3QuICBSZXBvcnRlZCBieSBEYXZpZCBNb3NiZXJnZXItVGFuZy4KCk1vbiBBdWcgMTIgMjI6NDA6MTYgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBlbGYvZGwtbG9va3VwLmMgKF9kbF9sb29rdXBfc3ltYm9sKTogUmVtb3ZlIGZpZnRoIHBhcmFtZXRlcgoJUkVMT0NfQUREUiBhbmQgbWFrZSBOT1BMVCBhIHNldCBvZiBmbGFncy4gIEFsbCBjYWxsZXJzCgljaGFuZ2VkLiAgRGVsZXRlIGNvbmRpdGlvbiB0aGF0IGNoZWNrcyBmb3IgcmVzb2x2aW5nIHRvIHRoZQoJbG9jYXRpb24gYmVpbmcgZmlsbGVkIGluLiAgQWRkIGNvbmRpdGlvbiB0byBza2lwIHRoZQoJZXhlY3V0YWJsZSdzIHN5bWJvbHMgaWYgcmVxdWVzdGVkLgoJKiBlbGYvbGluay5oOiBDaGFuZ2UgZGVjbGFyYXRpb24gb2YgX2RsX2xvb2t1cF9zeW1ib2wKCWFjY29yZGluZ2x5LgoJKERMX0xPT0tVUF9OT0VYRUMsIERMX0xPT0tVUF9OT1BMVCk6IE5ldyBkZWZpbml0aW9ucy4KCSogZWxmL2RsLXJlbG9jLmMgKFJFU09MVkUpOiBSZW1vdmUgc2Vjb25kIHBhcmFtZXRlciBhbmQgcmVuYW1lCglOT1BMVCB0byBGTEFHUy4KCSogZWxmL2RsLXJ1bnRpbWUuYyAoUkVTT0xWRSk6IExpa2V3aXNlLgoJKiBlbGYvcnRsZC5jIChSRVNPTFZFKTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbTY4ay9kbC1tYWNoaW5lLmggKGVsZl9tYWNoaW5lX3JlbGEpOiBQYXNzCglETF9MT09LVVBfTk9FWEVDIGFzIHNlY29uZCBhcmd1bWVudCB0byB0aGUgUkVTT0xWRSBtYWNybyBpZgoJcHJvY2Vzc2luZyBhIGNvcHkgcmVsb2MsIERMX0xPT0tVUF9OT1BMVCBmb3IgYSBqdW1wIHNsb3QKCXJlbG9jLCB6ZXJvIG90aGVyd2lzZS4KCSogc3lzZGVwcy9hbHBoYS9kbC1tYWNoaW5lLmggKGVsZl9tYWNoaW5lX3JlbGEpOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L2RsLW1hY2hpbmUuaCAoZWxmX21hY2hpbmVfcmVsKTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbWlwcy9kbC1tYWNoaW5lLmggKGVsZl9tYWNoaW5lX3JlbCk6IExpa2V3aXNlLgoKV2VkIEF1ZyAxNCAxNzo1NzowOCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIE1ha2VUQUdTOiBDbGVhbiB1cCB1c2Ugb2YgLS1vbWl0LWhlYWRlciBhbmQgLW4gZm9yIHhnZXR0ZXh0LgoJKiBwby9oZWFkZXIucG90OiBBZGQgZW1wdHkgbGluZSBhdCBlbmQuCgpTdW4gQXVnIDExIDEzOjQ1OjMzIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogTWFrZVRBR1MgKGFsbC1wb3QpOiBSZW1vdmUgJFAvZXJybGlzdC5wb3QsIGFsbCBlcnJvciBtZXNzYWdlcwoJYXJlIG5vdyBpbiAkUC9zdGRpby1jb21tb24ucG90LgoJKFhHRVRURVhURkxBR1MtZXJybGlzdC5wb3QpOiBWYXJpYWJsZSByZW1vdmVkLgoKTW9uIEF1ZyAxMiAxOToyNTowMyAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2VydWxlcyAoZG8tYXIsIG8taXRlcmF0b3ItZG9pdCk6IENvbXB1dGUgcGF0aCB0byBhdXRvbG9jawoJc2NyaXB0IGF0IHJ1biB0aW1lLCBub3QgY29uZmlndXJlIHRpbWUuCgkqIGNvbmZpZy5tYWtlLmluLCBjb25maWd1cmUuaW46IFVuZG8gcHJldmlvdXMgY2hhbmdlLgoKV2VkIEF1ZyAxNCAxMzoyMDowMiAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvY2xvc2UuUzogUHVzaCByZXR1cm4gdmFsdWUgb2YgdGhyZWFkCglvbiBzdGFjayBhcyBhcmd1bWVudCBmb3IgYF9leGl0Jy4gIFJlcG9ydGVkIGJ5IEFuZHJlYXMgU2Nod2FiLgoKTW9uIEF1ZyAxMiAxOTozNjoyNSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvY2xvbmUuUzogTmV3IGZpbGUuCgpXZWQgQXVnIDE0IDA0OjIyOjM1IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogZWxmL2RsLWxvYWQuYyAoX2RsX21hcF9vYmplY3QpOiBTYXZlIG5hbWUgaW4gbWFsbG9jZWQgbWVtb3J5LgoJKF9kbF9tYXBfb2JqZWN0X2Zyb21fZmQpOiBGcmVlIG5hbWUgb24gZXJyb3IuCgpXZWQgQXVnIDE0IDEzOjAwOjA5IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RyaW5nL3N0cmR1cC5jOiBVc2UgcmVzdWx0IG9mIG1lbWNweSB0byBhdm9pZCByZWxvYWRpbmcuCgpUdWUgQXVnIDEzIDAwOjU1OjAzIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc2hhZG93L3NnZXRzcGVudF9yLmMgKF9fc2dldHNwZW50X3IpOiBDb3B5IHN0cmluZyB0byBidWZmZXIsIG5vdAoJdGhlIG90aGVyIHdheSByb3VuZC4KClR1ZSBBdWcgMTMgMjA6NTE6MjEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdGRsaWIvY2Fub25pY2FsaXplLmMgKGNhbm9uaWNhbGl6ZSk6IEFkZCBjYXN0IHRvIHByZXZlbnQKCXdhcm5pbmcuCgoJKiBNYWtlcnVsZXMgKG8taXRlcmF0b3ItZG9pdCk6IFVzZSBhdXRvbG9jay5zaCB3aGVuIHJ1bm5pbmcgcmFubGliLgoKVHVlIEF1ZyAxMyAxODoyNjo0NSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG5zcy9uc3N3aXRjaC5jIChfX25zc19jb25maWd1cmVfbG9va3VwKTogVXNlIGZhY3QgdGhhdCBsaXN0IGlzCglzb3J0ZWQuCgoJVXBkYXRlIGZyb20gYmluZC00LjkuNS1UMUEuCgkqIHJlc29sdi9NYWtlZmlsZSAobGlicmVzb2x2LXJvdXRpbmVzKTogQWRkIGJhc2U2NCwgaW5ldF9uZXRfbnRvcCwKCWluZXRfbmV0X3B0b24sIGluZXRfbmV0LgoKCSogcmVzb2x2L2dldGhuYW1hZGRyLmM6IEluY2x1ZGUgPHN5cy90eXBlcy5oPi4KCSogcmVzb2x2L2dldG5ldG5hbWFkci5jOiBMaWtld2lzZS4KCSogcmVzb2x2L2hlcnJvci5jOiBMaWtld2lzZS4KCSogcmVzb2x2L2luZXRfYWRkci5jOiBMaWtld2lzZS4KCSogcmVzb2x2L25zYXBfYWRkci5jOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19jb21wLmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX2RhdGEuYzogTGlrZXdpc2UuCgkqIHJlc29sdi9yZXNfaW5pdC5jOiBMaWtld2lzZS4KCSogcmVzb2x2L3Jlc19ta3F1ZXJ5LmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX3F1ZXJ5LmM6IExpa2V3aXNlLgoJKiByZXNvbHYvcmVzX3NlbmQuYzogTGlrZXdpc2UuCgoJKiByZXNvbHYvZ2V0aG5hbWFkZHIuYyBbISBTUFJJTlRGX0NIQVJdIChTUFJJTlRGKTogQ2FzdCByZXR1cm4KCXZhbHVlIG9mIHNwcmludGYuCgkqIHJlc29sdi9pbmV0X250b3AuYzogTGlrZXdpc2UuCgoJKiByZXNvbHYvZ2V0aG5hbWFkZHIuYyBbQlNEXTogSW5jbHVkZSA8c3RkbGliLmg+LgoJUmVtb3ZlIHByb3RvdHlwZSBvZiBnZXRob3N0YnluYW1lX2lwdjQuCgoJKiByZXNvbHYvaW5ldF9udG9wLmMsIHJlc29sdi9pbmV0X3B0b24uYzogVXNlIElTTyBDIGBtZW0qJwoJZnVuY3Rpb25zIGluc3RlYWQgb2YgQlNEIGBiKicgZnVuY3Rpb25zLgoKCSogcmVzb2x2L25zYXBfYWRkci5jOiBBZGQgY29weXJpZ2h0IG1lc3NhZ2UuCgoJKiByZXNvbHYvcmVzX2NvbXAuYzogUmVtb3ZlIGNvbW1lbnQgZXhwbGFpbmluZyBsYWJlbCBmb3JtYXQuCgkocmVzX21haWxvayk6IENvcnJlY3QgY2hlY2suCgoJKiByZXNvbHYvcmVzX2RlYnVnOiBJbmNsdWRlIG1pc3NpbmcgaGVhZGVycy4KCShfX2ZwX25xdWVyeSk6IEhhbmRsZSBgdW51c2VkJywgYGFkJywgYW5kIGBjZCcgYml0cy4KCShfX3BfZnFubmFtZSk6IE5ldyBmdW5jdGlvbiB0byBwcmludCBGUUROIGZyb20gY29tcHJlc3NlZCBuYW1lLgoJKF9fcF9ycik6IFVzZSBfX3BfZnFubmFtZS4gIENvcnJlY3QgcHJpbnRpbmcgb2YgIi4gIEhhbmRsZSBUX1RYVAoJY29ycmVjdGx5LiAgQWRkIGhhbmRsaW5nIG9mIFRfS0VZIGFuZCBUX1NJRy4KCUhhbmRsZSBjbGFzcyBhbmQgdHlwZSBuYW1lcyBieSB1c2luZyBuYW1lIGFycmF5cyBpbnN0ZWFkIG9mCglleHBsaWNpdCBgc3dpdGNoJ2VzLgoJKF9fc3ltX3N0b24sIF9fc3ltX250b3MsIF9fc3ltX250b3ApOiBOZXcgZnVuY3Rpb25zIHRvIHVzZSBhcnJheXMuCgkoX19kbl9jb3VudF9sYWJlbHMsIF9fcF9zZWNzdG9kYXRlKTogTmV3IGZ1bmN0aW9ucy4KCgkqIHJlc29sdi9yZXNvbHYuaCAoX19SRVMpOiBVcGRhdGUgdmVyc2lvbiBudW1iZXIuCgkocmVzX3N5bSk6IE5ldyB0eXBlLgoJQWRkICNkZWZpbmVzIGZvciBuZXcgZnVuY3Rpb25zLgoJRGVjbGFyZSBzeW1fbnRvcywgc3ltX250b3AsIGI2NF9udG9wLCBiNjRfcHRvbiwgX19wX2Zxbm5hbWUsCglfX3Bfc2Vjc3RvZGF0ZSwgZG5fY291bnRfbGFiZWxzLgoKCSogcmVzb2x2L2FycGEvbmFtZXNlci5oIChfX0JJTkQpOiBVcGRhdGUgdmVyc2lvbiBudW1iZXIuCglBZGQgS0VZRkxBR18qIGFuZCBBTEdPUklUSE1fKiBzeW1ib2xzLgoJKEhFQURFUik6IEFkZCBgYWQnIGFuZCBgY2QnIGZsYWdzLgoKCSogaW5ldC9pZW50Lmg6IEFkZCBwcm90b3R5cGVzIGZvciBpbmV0X25ldGEsIGluZXRfbmV0X250b3AsCglhbmQgaW5ldF9uZXRfcHRvbi4KCgkqIG1hbnVhbC9tYWludC50ZXhpOiBEb2N1bWVudCB0aGF0IHdlIHVzZSBiaW5kLTQuOS41LgoJKiBJTlNUQUxMOiBEaXR0by4KCk1vbiBBdWcgMTIgMTk6MDM6MjIgMTk5NiAgVGhvbWFzIEJ1c2huZWxsIG4vQlNHICA8dGhvbWFzQHBzaWxvY2luLmdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9nZW5lcmljL2dudS90eXBlcy5oOiBEZWNsYXJlIF9fZmRfbWFzayBhcyBgdW5zaWduZWQgbG9uZycuCgoJKiBtYWNoL01ha2VmaWxlIChtYWNoL21hY2hfaG9zdC51aCk6IERlcGVuZCBvbgoJJChvYmpwZngpL21hY2gtc3lzY2FsbHMubWsuCgkoJChvYmpwZngpbWFjaC1zaG9ydGN1dHMuaCk6IERlcGVuZCBvbiAkKG9ianBmeCltYWNoL21hY2hfaG9zdC5oLgoJKFRoaXMgZml4ZXMgYSBtYWtlIGxvb3A7IHRoYW5rcyB0byBNYXJjdXMgRGFuaWVscwoJPG1hcmN1c0BzeXNjLnBkeC5lZHU+IGZvciB0aGUgcGF0Y2guKQoKTW9uIEF1ZyAxMiAxNjo0MTo1MiAxOTk2ICBUaG9tYXMgQnVzaG5lbGwgbi9CU0cgIDx0aG9tYXNAZ251LmFpLm1pdC5lZHU+CgoJKiBpby9nZXR3ZC5jIChnZXR3ZCkgWyEgUEFUSF9NQVhdOiBEb24ndCBhc3N1bWUgdGhhdCB0aGUgdXNlcidzCglidWZmZXIgaXMgYW55IGxvbmdlciB0aGFuIHRoZSBhbW91bnQgbmVjZXNzYXJ5IHRvIGhvbGQgdGhlCglmaWxlbmFtZTsgdGhlIEh1cmQgZ2V0Y3dkIHVzZXMgdGhlICplbnRpcmUqIGNvbnRlbnRzIG9mIHRoZQoJYnVmZmVyLCBob3dldmVyIGxvbmcgaXQgaXMgc3BlY2lmaWVkIHRvIGJlLgoKTW9uIEF1ZyAxMiAwNDozMzowOSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG5zcy9uc3N3aXRjaC5jIChfX25zc19kYXRhYmFzZV9sb29rdXApOiBBbHdheXMgcmVsZWFzZSBsb2NrcwoJYmVmb3JlIHJldHVybmluZy4gIFJlcG9ydGVkIGJ5IE1pbGVzIEJhZGVyLgoKTW9uIEF1ZyAxMiAwMzozMTo1OCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIG5zcy9uc3N3aXRjaC5jIChfX25zc19jb25maWd1cmVfbG9va3VwKTogIE5ldyBmdW5jdGlvbi4KCUFsbG93cyB0byBzcGVjaWZ5IHNlcnZpY2VzLgoJKiBuc3MvWFhYLWxvb2t1cC5oOiBSZW5hbWUgZGF0YWJhc2UgdmFyaWFibGUgYW5kIG1ha2UgZ2xvYmFsLgoJKiBuc3MvZGF0YWJhc2VzLmRlZjogTmV3IGZpbGUuICBSZWFsIG5hbWVzIG9mIGFsbCBkYXRhYmFzZXMuCgoJKiBuc3MvbnNzLmg6IE5ldyBmaWxlLiAgQ29udGFpbnMgZGVjbGFyYXRpb24gdXNlZnVsIGZvciB1c2VycwoJYW5kIHNlcnZpY2UgZGV2ZWxvcGVycy4KCSogbnNzL25zc3dpdGNoLmg6IE1vdmUgc29tZSBkZWNsYXJhdGlvbnMgdG8gbnNzL25zcy5oLgoJKiBuc3MuaDogTmV3IGZpbGUuICBXcmFwcGVyIGFyb3VuZCBuc3MvbnNzLmguCgoJKiBuc3MvTWFrZWZpbGUgKGhlYWRlcnMpOiBBZGQgbnNzLmguCgkoZGlzdHJpYnV0ZXMpOiBBZGQgZGF0YWJhc2VzLmRlZi4KClN1biBBdWcgMTEgMTY6MTk6NDIgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJSGVscCB0aGUgcG9vciBwZW9wbGUgd2l0aCBmYXN0IG1hY2hpbmVzIGJ5IG1ha2luZyBzdXJlIG9ubHkKCW9uZSBgYXInIGNvbW1hbmRzIHdvcmtzIG9uIHRoZSBsaWJyYXJ5LgoJKiBhdXRvbG9jay5zaDogTmV3IGZpbGUuICBXcml0dGVuIGJ5IFRvbSBUcm9tZXkuCgkqIE1ha2VydWxlcyAoZG8tYXIpOiBDYWxsIGF1dG9sb2NrLnNoIHNoZWxsIHNjcmlwdCBpbnN0ZWFkIG9mCglkaXJlY3RseSB1c2luZyBgYXInLgoJKiBjb25maWcubWFrZS5pbjogTWFrZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlIEFVVE9MT0NLIHdoaWNoCglnZXRzIGluaXRpYWxpemVkIGJ5IGNvbmZpZ3VyZS4KCSogY29uZmlndXJlLmluOiBEZWZpbmUgdmFyaWFibGUgQVVUT0xPQ0sgdG8gcG9pbnQgdG8gYXV0b2xvY2suc2gKCXNjcmlwdCBhbmQgbWFyayBpdCB0byBzdWJzdGl0dXRlLgoKCSogc3RyaW5nL01ha2VmaWxlOiBBZGQgLWZuby1idWlsdGluIGZvciB0c3Qtc3RybGVuLmMsIHRvby4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zYnJrLmMgKF9fc2Jyayk6ICBHZXQga2VybmVsIGJyayBhZGRyZXNzCglhbHdheXMgb25seSBpZiBpbiBzdGF0aWMgbGliYyBvciBpZiBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtCgl1c2VzIGxpYmMuc28uCgpTdW4gQXVnIDExIDAxOjEyOjM4IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogc3lzZGVwcy9hbHBoYS9kbC1tYWNoaW5lLmggKGVsZl9hbHBoYV9maXhfcGx0KTogT3B0aW1pemUgTERfQklORF9OT1cKCXN0YXJ0dXAgYnkgbW92aW5nIEljYWNoZSBmbHVzaCBmcm9tIGhlcmUgLi4uCgkoRUxGX01BQ0hJTkVfUlVOVElNRV9UUkFNUE9MSU5FKTogLi4uIHRvIGhlcmUuCgkoRUxGX01BQ0hJTkVfVVNFUl9BRERSRVNTX01BU0spOiBEZWxldGU7IGl0IGlzIHVudXNlZC4KCgkqIHN5c2RlcHMvYWxwaGEvZGl2cmVtLmg6IFVwZGF0ZSBjb21tZW50IHRvIHJlZmxlY3QgdGhlIGFjdHVhbAoJY2FsbGluZyBjb252ZW50aW9ucy4gIFRoZSBjb2RlIGlzIGFscmVhZHkgY29ycmVjdC4KClN1biBBdWcgMTEgMDE6MDY6NDIgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBzdHJpbmcvTWFrZWZpbGU6IENvbXBpbGUgdGVzdGVyIHdpdGggLWZuby1idWlsdGluIGFzIHdlIHdhbnQgdG8KCXRlc3Qgb3VyIGltcGxlbWVudGF0aW9ucywgbm90IGdjYydzLgoKU2F0IEF1ZyAxMCAxMzoxNzoyNyAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogc2hhZG93Lmg6IE5ldyBmaWxlLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0aW5ldC9pbi5oOiBNb3ZlCglfX0JFR0lOX0RFQ0xTL19fRU5EX0RFQ0xTIHVwIHNvIG50b2hsKCkgZXQgYWwgYXJlIGJyYWNrZXRlZCBhcwoJd2VsbC4KCgkqIHNvY2tldC9zeXMvc29ja2V0LmggW19fY3BsdXNwbHVzXTogVXNlIG9sZC1zdHlsZSBfX1NPQ0tBRERSX0FSRy4KCWcrKyAyLjcuMiAoYW5kIGVhcmxpZXIpIGhhcyBubyB0cmFuc3BhcmVudCB1bmlvbnMgc3VwcG9ydC4KCkZyaSBBdWcgIDkgMTg6NTA6MDYgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2lvcGVybS5jIChfYnVzX2Jhc2Vfc3BhcnNlKTogTmV3CglmdW5jdGlvbiB0byBkZXRlcm1pbmUgdGhlIGJhc2UgYWRkcmVzcyBvZiBzcGFyc2UgYnVzIG1lbW9yeS4KCShBUEVDU18qKTogUmVuYW1lIHRvIENJQV8qLgoJKEFQRUNTX1NQQVJTRV9NRU0sIENJQV9TUEFSU0VfTUVNKTogTmV3IG1hY3Jvcy4KCShwbGF0Zm9ybSk6IEFkZCBzcGFyc2VfYnVzX21lbW9yeV9iYXNlIG1lbWJlciBhbmQgaW5pdGlhbGl6ZS4KCShzcGFyc2VfYnVzX21lbW9yeV9iYXNlKTogTmV3IHZhcmlhYmxlLgoKVHVlIEF1ZyAgNiAxMDoyMzoxOCAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogc3lzZGVwcy9wb3NpeC90dHluYW1lX3IuYyAodHR5bmFtZV9yKSwKCXN5c2RlcHMvcG9zaXgvdHR5bmFtZS5jICh0dHluYW1lKTogUmV0dXJuIC0xL05VTEwgaWYKCSFfX2lzYXR0eShmZCkgKFBPU0lYLjEgc2F5cyBzby4pCgoJKiBzeXNkZXBzL3VuaXgvZ2V0bG9naW4uYyAoZ2V0bG9naW4pOiBGaXggdG8gY2hlY2sgZmQgMCBvbmx5LgoJVGhpcyBpcyBub3QgYSBncm9zcyBoYWNrLCBhZnRlciBhbGwtLS1mb3IgY29tcGF0aWJpbGl0eSwKCWdldGxvZ2luKCkgcmVhbGx5IHNob3VsZCBjaGVjayBmZCAwIG9ubHkgYW5kIG5vdCB0cnkgdG8gYmFzZSBpdHMKCW9wZXJhdGlvbiBvbiB0aGUgY29udHJvbGxpbmcgdHR5LgoKV2VkIEp1bCAxNyAxMDo1NDoyMCAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogc3lzZGVwcy91bml4L2dldGxvZ2luLmMgKGdldGxvZ2luKTogQWRkIHN0YXRpYyB2YXJpYWJsZSBOQU1FLAoJY2hhbmdlIHV0bXBfZGF0YSBmcm9tIHN0YXRpYyB0byBhdXRvLgoKU3VuIEF1ZyAxMSAwMjo1NjowOCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHBvc2l4L3VuaXN0ZC5oIFtfX1VTRV9NSVNDXTogQWRkIHByb3RvdHlwZSBmb3IgYG5pY2UnLgoJUmVwb3J0ZWQgYnkgRGF2aWQgTW9zYmVyZ2VyLVRhbmcuCgpTYXQgQXVnIDEwIDAyOjA1OjI4IDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cmljaGFyZEB0d2lkZGxlLnRhbXUuZWR1PgoKCSogc3lzZGVwcy9saWJtLWllZWU3NTQvc19pc25hbi5jIFtOT19MT05HX0RPVUJMRV06IEFkZCBzdHJvbmcKCWFsaWFzIHRvIGBfX2lzbmFubCcuCgpGcmkgQXVnICA5IDE3OjM4OjU4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3RpbWV4Lmg6IEluY2x1ZGUgPHN5cy90aW1lLmg+IHRvCglnZXQgYHN0cnVjdCB0aW1ldmFsJy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL2FjY3QuaDogR2V0IHRpbWVfdCBmcm9tIDx0aW1lLmg+LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvbW9kdWxlLmg6IEdldCBzaXplX3QgZnJvbSA8c3RkZGVmLmg+LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvaW8uaDogR2V0IGRlZmluaXRpb24gb2YgX19QLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMva2xvZy5oOiBMaWtld2lzZS4KCSogZ21vbi9zeXMvZ21vbi5oOiBJbmNsdWRlIDxzeXMvdHlwZXMuaD4gdG8gZ2V0IHVfbG9uZy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZGlyZW50cnkuaDogQ29tcGxldGUgdHlwZXMgaW4KCTxsaW51eC9kaXJlbnQuaD4uCgkqIGlvL2Z0cy5oOiBJbmNsdWRlIDxzeXMvdHlwZXMuaD4gdG8gZ2V0IGRldl90LgoJUmVwb3J0ZWQgYnkgTWF0dGhpYXMgVXJsaWNocy4KCgkqIHN5c2RlcHMvcG9zaXgvdGVtcG5hbWUuYyBbVVNFX0lOX0xJQklPXTogRG9uJ3QgY2xlYXIKCV9JT19maWxlX2ZsYWdzLiAgSXQncyB0aGUgc2FtZSBhcyBfZmxhZ3MuCglSZXBvcnRlZCBieSBNaXF1ZWwgdmFuIFNtb29yZW5idXJnIDxtaXF1ZWxzQFEuY2lzdHJvbi5ubD4uCgpXZWQgQXVnICA3IDE5OjM4OjQ3IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9yZXNvdXJjZWJpdHMuaDogQWRkIFJMSU1JVF9BUy4KClRodSBBdWcgIDggMTY6MTc6MzggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBwd2QvZ2V0cHdlbnQuYzogRGVmaW5lIEJVRkxFTiBmcm9tIE5TU19CVUZMRU5fUEFTU1dELgoJKiBwd2QvZ2V0cHdlbnRfci5jOiBMaWtld2lzZS4KCSogcHdkL2dldHB3bmFtLmM6IExpa2V3aXNlLgoJKiBwd2QvZ2V0cHduYW1fci5jOiBMaWtld2lzZS4KCSogcHdkL2dldHB3dWlkLmM6IExpa2V3aXNlLgoJKiBwd2QvZ2V0cHd1aWRfci5jOiBMaWtld2lzZS4KCgkqIGdycC9nZXRncmVudC5jOiBEZWZpbmUgQlVGTEVOIGZyb20gTlNTX0JVRkxFTl9HUk9VUC4KCSogZ3JwL2dldGdyZW50X3IuYzogTGlrZXdpc2UuCgkqIGdycC9nZXRncmdpZC5jOiBMaWtld2lzZS4KCSogZ3JwL2dldGdyZ2lkX3IuYzogTGlrZXdpc2UuCgkqIGdycC9nZXRncm5hbS5jOiBMaWtld2lzZS4KCgkqIHB3ZC9mZ2V0cHdlbnRfci5jOiBOZXcgZmlsZS4gIFJlZW50cmFudCB2ZXJzaW9uIG9mIGZnZXRwd2VudC4KCSogcHdkL2ZnZXRwd2VudC5jOiBSZXdyaXRlIHRvIHVzZSBmZ2V0cHdlbnRfci4KCSogcHdkL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBmZ2V0cHdlbnRfci4KCSogcHdkL3B3ZC5oOiBBZGQgcHJvdG90eXBlcyBmb3IgX19mZ2V0cHdlbnRfciBhbmQgZmdldHB3ZW50X3IuCgoJKiBncnAvZmdldGdyZW50X3IuYzogTmV3IGZpbGUuICBSZWVudHJhbnQgdmVyc2lvbiBvZiBmZ2V0Z3JlbnQuCgkqIGdycC9mZ2V0Z3JlbnQuYzogUmV3cml0ZSB0byB1c2UgZmdldGdyZW50X3IuCgkqIGdycC9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgZmdldGdyZW50X3IuCgkqIGdycC9ncnAuaDogQWRkIHByb3RvdHlwZXMgZm9yIF9fZmdldGdyZW50X3IgYW5kIGZnZXRncmVudF9yLgoKCUltcGxlbWVudCBzaGFkb3cgcGFzc3dvcmQgbG9va3VwIGZ1bmN0aW9ucy4gIFRoaXMgaXMgbm8gY29tcGxldGUKCXNoYWRvdyBwYXNzd29yZCBzdWl0ZS4KCSogc2hhZG93L01ha2VmaWxlOiBOZXcgZmlsZS4KCSogc2hhZG93L2ZnZXRzcGVudC5jOiBOZXcgZmlsZS4KCSogc2hhZG93L2ZnZXRzcGVudF9yLmM6IE5ldyBmaWxlLgoJKiBzaGFkb3cvZ2V0c3BlbnQuYzogTmV3IGZpbGUuCgkqIHNoYWRvdy9nZXRzcGVudF9yLmM6IE5ldyBmaWxlLgoJKiBzaGFkb3cvZ2V0c3BuYW0uYzogTmV3IGZpbGUuCgkqIHNoYWRvdy9nZXRzcG5hbV9yLmM6IE5ldyBmaWxlLgoJKiBzaGFkb3cvcHV0c3BlbnQuYzogTmV3IGZpbGUuCgkqIHNoYWRvdy9zZ2V0c3BlbnQuYzogTmV3IGZpbGUuCgkqIHNoYWRvdy9zZ2V0c3BlbnRfci5jOiBOZXcgZmlsZS4KCSogc2hhZG93L3NoYWRvdy5oOiBOZXcgZmlsZS4KCSogc2hhZG93L3Nwd2QtbG9va3VwLmM6IE5ldyBmaWxlLgoJKiBzaGFkb3cvbnNzX2ZpbGVzL2ZpbGVzLXNwd2QuYzogTmV3IGZpbGUuCgpUaHUgQXVnICA4IDEzOjMzOjQ1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvZnRpbWUuYzogTmV3IGZpbGUuICBBdmFpbGFibGUgc3lzdGVtCgljYWxsIGlzIG9ubHkgYSBzdHViLgoJUmVwb3J0ZWQgYnkgTWF0dGhpYXMgVXJsaWNocy4KCgkqIE1ha2Vjb25maWcgWyFkZWZhdWx0X2NmbGFnc106IENoYW5nZSBkZWZhdWx0IHZhbHVlIGZyb20gYC1nJwoJdG8gYC1nIC1PJy4KCgkqIGNvbmZpZ3VyZS5pbjogUmVjb2duaXplIGk2ODYuCgkqIHN5c2RlcHMvaTM4Ni9pNjg2L0ltcGxpZXM6IERlZmF1bHQgb24gaTU4NiBvcHRpbWl6ZWQgY29kZS4KClRodSBBdWcgIDggMTI6NDA6MjAgMTk5NiAgTWF0dGhpYXMgVXJsaWNocyAgPHNtdXJmQHNtdXJmLm5vcmlzLmRlPgoKCSogTWFrZWNvbmZpZyBbJChidWlsZC1vbWl0ZnApID09IHllc106IEFkZCB0byBDRkxBR1MtLnNvCgl2YWx1ZSBvZiBDRkxBR1MtLm8sIG5vdCBDRkxBR1Mtby4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2luaXQtZmlyc3QuYyAoaW5pdCk6IEFkZCB2b2xhdGlsZQoJcG9pbnRlciB0byBvdXJzZWxmLiAgT3RoZXJ3aXNlIGBnY2MgLU8zJyBvcHRpbWl6ZWQgaW5pdCBhd2F5LgoKVGh1IEF1ZyAgOCAwMTo0MTo0MyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGVsZi9NYWtlZmlsZTogVW5kbyBjaGFuZ2Ugb2YgVHVlIEF1ZyAgNiAxNDoyNzoxMSAxOTk2LgoJKiBlbGYvZGwtc3VwcG9ydDogQWRkIGRlZmluaXRpb24gb2YgYF9kbF9zeXNkZXBfcmVhZF93aG9sZV9maWxlJy4KClRodSBBdWcgIDggMDE6MTU6NTkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL2kzODYvZnB1X2NvbnRyb2wuaCAoX0ZQVV9ERUZBVUxULCBfRlBVX0lFRUUpOiBTZXQKCXRvIDB4MTM3ZiB0byBhbGxvdyBsb25nIGRvdWJsZSBvcGVyYXRpb25zLgoKU3VuIEF1ZyAgNCAxMzoxMjowNSAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCglCdWcgRml4ZXM6CgoJKiBuc3MvbnNzd2l0Y2guYyAoX3Jlcyk6IFJlbW92ZSByZWR1bmRhbnQgdmFyaWFibGUgZGVmaW5pdGlvbi4KCVRoZSByZWFsIG9uZSBpcyBpbiByZXNvbHZlL3Jlc19pbml0LmMsIGFuZCBoYXZpbmcgYm90aCBwcmV2ZW50cwoJdXNpbmcgLWZuby1jb21tb24gd2hlbiBidWlsZGluZyB0aGUgc2hhcmVkIGxpYnJhcnkuCgkqIHN1bnJwYy9ycGNfcHJvdC5jIChfbnVsbF9hdXRoKTogU2FtZS4gIE9yaWdpbmFsIGlzIGluIHJwY19jb21tb24uYy4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2Jyay5TOiBXaGVuIFBJQywgZGVmaW5lIF9fY3VyYnJrIGFzCglhIC5ic3Mgb2JqZWN0IG5vdCBhIENPTU1PTiBzeW1ib2wuCgoJKiBzeXNkZXBzL2FscGhhL2JzZC1fc2V0am1wLlMsIHN5c2RlcHMvYWxwaGEvYnNkLXNldGptcC5TOiBNdXN0IGxvYWQKCSRncCBiZWZvcmUgcmVmZXJlbmNpbmcgX19zaWdzZXRqbXAgc3ltYm9sLiAgUmV0YWluIExJVFVTRSBmb3Igc2FtZS4KCglPcHRpbWl6YXRpb25zOgoKCSogc3lzZGVwcy9hbHBoYS9zdHJsZW4uUzogUmVhcnJhbmdlIGZpcnN0LXdvcmQgc2V0dXAgYW5kIHRoZW5zZSB0aGUKCW1haW4gbG9vcCBmb3IgYmV0dGVyIGR1YWwtaXNzdWUgb24gRVY1LiAgUmVhcnJhbmdlIGJpbmFyeSBzZWFyY2ggdG8KCXBpcGVsaW5lIGJldHRlciBhbmQgdHJpbSBvbmUgaW5zdHJ1Y3Rpb24uCgoJQ29zbWV0aWMgQ2hhbmdlczoKCgkqIHRpbWUvbG9jYWx0aW1lLmMgKGxvY2FsdGltZV9yKTogTW92ZSBsb2NrIGRlY2xhcmF0aW9uIGJhY2sgbmV4dCB0bwoJdGhlIGNvbW1lbnQgd2hlcmUgaXQgd2FzIGJlZm9yZSB0aGUgOTYwNzI0IGNoYW5nZS4KCgkqIElOU1RBTEwsIG1hbnVhbC9tYWludC50ZXhpOiBhbHBoYS1nbnUtbGludXggLT4gYWxwaGEtQU5ZVEhJTkctbGludXguCglUaGUgc2Vjb25kIHdvcmQgaXMgc3VwcG9zZWQgdG8gYmUgdGhlIGhhcmR3YXJlIG1hbnVmYWN0dXJlci4KCgkqIHN5c2RlcHMvYWxwaGEvX21jb3VudC5TOiBSZXRhaW4gTElUVVNFIGZvciBfX21jb3VudC4KCSogc3lzZGVwcy9hbHBoYS9zZXRqbXAuUzogUmV0YWluIExJVFVTRSBmb3IgX19zaWdzZXRqbXBfYXV4LgoKCSogc3lzZGVwcy9hbHBoYS9kaXZyZW0uaDogTW9yZSBsb2NhbCBsYWJlbHMsIHJldGFpbiBMSVRVU0UgZm9yIF9tY291bnQuCgoJKiBzeXNkZXBzL2FscGhhL2FscGhhZXY1L2FkZF9uLlMsIHN5c2RlcHMvYWxwaGEvYWxwaGFldjUvbHNoaWZ0LlMsCglzeXNkZXBzL2FscGhhL2FscGhhZXY1L3JzaGlmdC5TLCBzeXNkZXBzL2FscGhhL2FscGhhZXY1L3N1Yl9uLlM6CglTYW1lIGNsZWFudXBzIGFzIHdpdGggRVY0IEdNUCBzdHVmZi4KClR1ZSBKdWwgMjUgMDM6MzA6NTYgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZSBbbWlzY10gKHN5c2RlcF9yb3V0aW5lcyk6IEFkZCBjbG9uZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvY2xvbmUuUzogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvY2xvbmUuUzogTmV3IGZpbGUuCgpTdW4gQXVnICA0IDAwOjEyOjQxIDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9nbnUvdHlwZXMuaDogRGVjbGFyZSBfX2ZkX21hc2sgYXMKCWB1bnNpZ25lZCBsb25nJy4KCgkqIG1pc2Mvc3lzL3NlbGVjdC5oOiBEZWNsYXJlIGZkX21hc2sgYXMgYWxpYXMgb2YgX19mZF9tYXNrLgoKU2F0IEF1ZyAgMyAxNjoyMDowMiAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvaW9wZXJtLmMgKHBsYXRmb3JtKTogQWRkIGVudHJ5IGZvcgoJTWlrYXNhLgoKCSogc29ja2V0L3N5cy9zb2NrZXQuaCAoc2VuZCwgX19zZW5kLCBzZW5kdG8pOiBEZWNsYXJlIGJ1ZmZlcgoJcG9pbnRlciBhcyBfX2NvbnN0LgoKCSogc3RyaW5nL3Rlc3Rlci5jIChtYWluKTogVGVzdCBzdHBuY3B5LgoKCSogc3lzZGVwcy9nZW5lcmljL3N0cG5jcHkuYyAoX19zdHBuY3B5KTogRml4IHNvIGl0IHdvcmtzIHdpdGhvdXQKCXNlZ2ZhdWx0IHdoZW4gY2FsbGVkIHdpdGggYW4gTiB0aGF0IGlzIG5vdCBhIG11bHRpcGxlIG9mIGZvdXIgYW5kCglzcmNbTi0xXT09J1wwJy4KCgkqIG1pc2Mvc3lzbG9nLmMgKExvZ1R5cGUpOiBOZXcgdmFyaWFibGUuCgkob3BlbmxvZyk6IElmIGNvbm5lY3QoKSB3aXRoIFNPQ0tfREdSQU0gZmFpbHMgd2l0aCBFUFJPVE9UWVBFLAoJdHJ5IGFnYWluIHdpdGggU09DS19TVFJFQU0gKHRoZSBMaW51eCBzeXNsb2dkIHVzZXMgYSBzb2NrZXQgb2YgdGhlCglsYXR0ZXIgdHlwZSkuCgkodnN5c2xvZyk6IFdoZW4gTG9nVHlwZT09U09DS19TVFJFQU0sIGFsc28gc2VuZCBBU0NJSSBOVUwKCXRlcm1pbmF0b3IgYXMgYSByZWNvcmQtZGVsaW1pdGVyLiAgSWYgX19zZW5kKExvZ0ZpbGUpIGZhaWxzLAoJY2FsbCBjbG9zZWxvZygpIHNvIGxvZ2ZpbGUgZ2V0cyByZS1vcGVuZWQgbmV4dCB0aW1lLgoKV2VkIEF1ZyAgNyAxNToxNToxNCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGVsZi9kbC1vcGVuIChfZGxfb3Blbik6IEFkZCBjYXN0IHRvIGF2b2lkIHdhcm5pbmcuCgoJKiBtYW51YWwvbWVtb3J5LnRleGk6IEltcHJvdmUgc29tZSBleGFtcGxlcyB0byBnaXZlIHJlYWRlcnMgYmV0dGVyCglhZHZpY2U6IFVzZSBgc3RwY3B5JyBpbnN0ZWFkIG9mIGBzdHJjYXQnIGlmIHBvc3NpYmxlLgoJKiBtYW51YWwvc3RyaW5nLnRleGk6IERvY3VtZW50IGBzdHJ0b2tfcicgYW5kIGBzdHJ0b2snLgoKCSogc3VucnBjL01ha2VmaWxlOiBNb3ZlIGArZ2Njd2FybicgZGVmaW5pdGlvbiBiZWZvcmUgaW5jbHVzaW9uCglvZiBNYWtlY29uZmlnLgoJWyQoY3Jvc3MtY29tcGlsaW5nKT1ub106IENoYW5nZSB0ZXN0IGJlZm9yZSBtYWtpbmcgbGlicnBjc3ZjCgl0byB0aGlzIGZyb20gJChjcm9zcy1jb21waWxlKS4KCVJlcG9ydGVkIGJ5IEFuZHJlYXMgU2Nod2FiLgoKVHVlIEF1ZyAgNiAxNDoyNzoxMSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGVsZi9NYWtlZmlsZSAocm91dGluZXMpOiBNb3ZlIGRsLXN5c2RlcCB0byBoZXJlLi4uCgkocnRsZC1yb3V0aW5lcyk6IC4uLmZyb20gaGVyZS4gIFRoaXMgc2hvdWxkIG1ha2Ugc3RhdGljIGxpbmtpbmcKCXdvcmsgYWdhaW4uCgoJKiBsb2NhbGUvc2V0bG9jYWxlLmM6IEFkZCBsb2NhbCB2YXJpYWJsZSBgbG9jaycgYW5kIGFkZCBjb2RlIHRvCglgc2V0bG9jYWxlJyB0byBhdm9pZCBzaW11bHRhbmVvdXMgY2hhbmdpbmcgb2YgZ2xvYmFsIGRhdGEuCgoJKiBjYXRnZXRzL2NhdGdldHMuYyAoY2F0b3Blbik6IFVzZSBgX19zdHJkdXAnIGluc3RlYWQgb2YgYHN0cmR1cCcuCgkqIGNhdGdldHMvb3Blbl9jYXRhbG9nIChfX29wZW5fY2F0YWxvZyk6IFVzZSBgX19zdHBjcHknLCBgX19vcGVuJywKCWBfX2ZzdGF0JywgYF9fcmVhZCcsIGBfX21tYXAnLCBgX19tdW5tYXAnIGFuZCBgX19jbG9zZScgaW5zdGVhZAoJb2YgdW5wcm90ZWN0ZWQgbmFtZXMuCgpUdWUgQXVnICA2IDAxOjEzOjU2IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCUNsZWFuIG5hbWUgc3BhY2UgYWNjb3JkaW5nIHRvIElTTyBDLCBJU08gQy9BbWQgMSwgYW5kIFBPU0lYLjEuCglUaGlzIHJlcXVpcmVzIHRvIHJlbmFtZSBzZXZlcmFsIGZ1bmN0aW9ucyB0byB1c2UgX18gcHJvdGVjdGVkCgluYW1lcy4KCSogZGlyZW50L2RpcmVudC5oOiBBZGQgcHJvdG90eXBlcyBvZiBfX29wZW5kaXIsIF9fY2xvc2VkaXIsCglhbmQgX19yZWFkZGlyLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9jbG9zZWRpci5jOiBQcmVwZW5kIGZ1bmN0aW9uIG5hbWUgd2l0aCBfXwoJYW5kIG1ha2Ugb2xkIG5hbWUgYSB3ZWFrIGFsaWFzLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9nZXRybGltaXQuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbWFjaC9odXJkL29wZW5kaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvbWFjaC9odXJkL3JlYWRkaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9jbG9zZWRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9zdHViL29wZW5kaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvc3R1Yi9yZWFkZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvY2xvc2VkaXIuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9vcGVuZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL3VuaXgvcmVhZGRpci5jOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvdW5peC9vcGVuZGlyLmM6IENhbGwgYF9fZmNudGwnIGluc3RlYWQgYGZjbnRsJy4KCgkqIHN5c2RlcHMvcG9zaXgvZ2V0Y3dkLmM6IENhbGwgYF9fb3BlbmRpcicsIGBfX3JlYWRkaXInLAoJYF9fY2xvc2VkaXInIGluc3RlYWQgb2YgdW5wcm90ZWN0ZWQgbmFtZXMuCgoJKiBsaWJpby9maWxlZG9hbGxvYy5jIChfSU9fZmlsZV9kb2FsbG9jYXRlKTogQ2FsbCBgX19pc2F0dHknCglpbnN0ZWFkIG9mIGBpc2F0dHknIHNpbmNlIGxhdGVyIGlzIG5vdCBwYXJ0IG9mIElTTyBDLgoJKiBsaWJpby9maWxlb3BzLmMgKF9JT19maWxlX2ZvcGVuKTogQ2FsbCBgX19vcGVuJyBpbnN0ZWFkIG9mCglgb3Blbicgc2luY2UgbGF0ZXIgaXMgbm90IHBhcnQgb2YgSVNPIEMuCgoJKiBsb2dpbi9lbmR1dGVudC5jIChlbmR1dGVudCk6IENhbGwgYF9fZW5kdXRlbnRfcicsIG5vdAoJYGVuZHV0ZW50X3InLgoJKiBsb2dpbi9lbmR1dGVudF9yLmM6IFJlbmFtZSBkZWZpbmVkIGZ1bmN0aW9uIHRvIGBfX2VuZHV0ZW50X3InLAoJbWFrZSBgZW5kdXRlbnRfcicgd2VhayBhbGlhcy4KCSogbG9naW4vZ2V0dXRlbnQuYyAoZ2V0dXRlbnQpOiBDYWxsIGBfX2dldHV0ZW50X3InLCBub3QKCWBnZXR1dGVudF9yJy4KCSogbG9naW4vZ2V0dXRpZC5jIChnZXR1dGlkKTogQ2FsbCBgX19nZXR1dGlkX3InLCBub3QgYGdldHV0aWRfcicuCgkqIGxvZ2luL2dldHV0aWRfci5jOiBSZW5hbWUgZGVmaW5lZCBmdW5jdGlvbiB0byBgX19nZXR1dGVudF9yJywKCW1ha2UgYGdldHV0ZW50X3InIHdlYWsgYWxpYXMuCgkqIGxvZ2luL2dldHV0bGluZS5jIChnZXR1dGxpbmUpOiBDYWxsIGBfX2dldHV0bGluZV9yJywgbm90CglgZ2V0dXRsaW5lX3InLgoJKiBsb2dpbi9nZXR1dGxpbmVfci5jOiBSZW5hbWUgZGVmaW5lZCBmdW5jdGlvbiB0byBgX19nZXR1dGxpbmVfcicsCgltYWtlIGBnZXR1dGxpbmVfcicgd2VhayBhbGlhcy4KCSogbG9naW4vcHV0dXRsaW5lX3IuYzogUmVuYW1lIGRlZmluZWQgZnVuY3Rpb24gdG8gYF9fcHV0dXRsaW5lX3InLAoJbWFrZSBgcHV0dXRsaW5lX3InIHdlYWsgYWxpYXMuCgkqIGxvZ2luL3NldHV0ZW50LmMgKHNldHV0ZW50KTogQ2FsbCBgX19zZXR1dGxpbmVfcicsIG5vdAoJYHNldHV0bGluZV9yJy4KCSogbG9naW4vc2V0dXRlbnRfci5jOiBSZW5hbWUgZGVmaW5lZCBmdW5jdGlvbiB0byBgX19zZXR1dGxpbmVfcicsCgltYWtlIGBzZXR1dGxpbmVfcicgd2VhayBhbGlhcy4KCVJlbmFtZSBgdXRtcG5hbWUnIHRvIGBfX3V0bXBuYW1lJyBhbmQgbWFrZSBmb3JtZXIgd2VhayBhbGlhcy4KCShfX3V0bXBuYW1lKTogQ2FsbCBgX19zdHJkdXAnLCBub3QgYHN0cmR1cCcuCgkqIGxvZ2luL3V0bXAuaDogQWRkIHByb3RvdHlwZXMgZm9yIG5hbWUgc3BhY2UgY2xlYW4gcmVlbnRyYW50Cgl2ZXJzaW9ucy4KCSogc3lzZGVwcy91bml4L2dldGxvZ2luLmM6IENhbGwgYF9fdHR5bmFtZV9yJywgYF9fc2V0dXRlbnRfcicsCglhbmQgYF9fZW5kdXRlbnRfcicgaW5zdGVhZCBvZiB1bnByb3RlY3RlZCBuYW1lcy4KCgkqIG1hdGgvbWF0aC5oOiBBZGQgcHJvdG90eXBlIGZvciBgX19tYXRoZXJyJy4KCSogc3lzZGVwcy9saWJtLWllZWU3NTQva19zdGFuZGFyZC5jOiBDYWxsIGBfX21hdGhlcnInIGluc3RlYWQKCW9mIGBtYXRoZXJyJy4KCgkqIG5zcy9nZXRYWGJ5WVkuYzogQ2FsbCBfXyBwcm90ZWN0ZWQgcmVlbnRyYW50IGZ1bmN0aW9uLgoJKiBuc3MvZ2V0WFhlbnQuYzogTGlrZXdpc2UuCgkqIG5zcy9nZXRYWGJ5WVlfci5jOiBEZWZpbmUgYGdldConIGZ1bmN0aW9uIHdpdGggX18gcHJvdGVjdGVkCgluYW1lLiAgTWFrZSB1c3VhbCBuYW1lIGEgd2VhayBhbGlhcy4KCSogbnNzL2dldFhYZW50X3IuYzogTGlrZXdpc2UuCgoJKiBwb3NpeC91bmlzdGQuaDogQWRkIHByb3RvdHlwZSBmb3IgYF9fdHR5bmFtZV9yJy4KCSogc3lzZGVwcy9wb3NpeC90dHluYW1lX3IuYzogUmVuYW1lIGZ1bmN0aW9uIHRvIGBfX3R0eW5hbWVfcicKCWFuZCBtYWtlIGB0dHluYW1lX3InIGEgd2VhayBhbGlhcy4KCgkqIHJlc291cmNlL3N5cy9yZXNvdXJjZS5oOiBBZGQgcHJvdG90eXBlIGZvciBgX19nZXRybGltaXQnLgoJKiBzeXNkZXBzL3N0dWIvZ2V0cmxpbWl0LmM6IFByZXBlbmQgZnVuY3Rpb24gbmFtZSB3aXRoIF9fCglhbmQgbWFrZSBvbGQgbmFtZSBhIHdlYWsgYWxpYXMuCgkqIHN5c2RlcHMvdW5peC9zeXNjYWxscy5saXN0OiBSZW5hbWUgc3lzdGVtIGNhbGwgdG8gYF9fZ2V0cmxpbWl0JwoJYW5kIG1ha2UgYGdldHJsaW1pdCcgd2VhayBhbGlhcy4KCgkqIGxpYmMvc3RkaW8vc3RkaW8uaDogQWRkIHByb3RvdHlwZSBmb3IgYF9fdnNjYW5mJy4KCSogbGliYy9zdGRpby92c2NhbmYuYzogRGUtQU5TSS1meS4KCVJlbmFtZSBmdW5jdGlvbiB0byBgX192c2NhbmYnIGFuZCBtYWtlIGB2c2NhbmYnIGEgd2VhayBhbGlhcy4KCSogc3RkaW8tY29tbW9uL3NjYW5mLmMgKHNjYW5mKTogVXNlIF9JT192c2NhbmYvX192c2NhbmYgaW5zdGVhZAoJb2YgYHZzY2FuZicuCgoJKiBzdGRpby1jb21tb24vcmVnLXByaW50Zi5jOiBEZS1BTlNJLWZ5LgoJUmVuYW1lIGZ1bmN0aW9uIHRvIGBfX3JlZ2lzdGVyX3ByaW50Zl9mdW5jdGlvbicgYW5kIG1ha2UKCWByZWdpc3Rlcl9wcmludGZfZnVuY3Rpb24nIHdlYWsgYWxpYXMuCgoJKiBzdGRpby1jb21tb24vdmZwcmludGYuYzogQ2FsbCBgX193Y3NydG9tYnMnIGluc3RlYWQgb2YKCWB3Y3NydG9tYnMnLgoKCSogc3RkbGliL21ic3Rvd2NzLmM6IENhbGwgYF9fbWJzcnRvd2NzJyBpbnN0ZWFkIG9mIGBtYnNydG93Y3MnLgoJKiBzdGRsaWIvbWJ0b3djLmM6IENhbGwgYF9fbWJydG93YycgaW5zdGVhZCBvZiBgbWJydG93YycuCgkqIHN0ZGxpYi93Y3N0b21icy5jOiBDYWxsIGBfX3djc3J0b21icycgaW5zdGVhZCBvZiBgd2NzcnRvbWJzJy4KCSogc3RkbGliL3djdG9tYi5jOiBDYWxsIGBfX3djcnRvbWInIGluc3RlYWQgb2YgYHdjcnRvbWInLgoJKiB3Y3NtYnMvbWJydG93Yy5jOiBQcmVwZW5kIGZ1bmN0aW9uIG5hbWUgd2l0aCBfXyBhbmQgbWFrZSBvbGQKCW5hbWUgYSB3ZWFrIGFsaWFzLgoJKiB3Y3NtYnMvbWJzcnRvd2NzLmM6IExpa2V3aXNlLgoJKiB3Y3NtYnMvd2NydG9tYi5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djc3J0b21icy5jOiBMaWtld2lzZS4KCSogd2NzbWJzL3djaGFyLmg6IEFkZCBwcm90b3R5cGVzIGZvciBfXyBwcm90ZWN0ZWQgdmVyc2lvbnMuCgoJKiBzeXNkZXBzL3Bvc2l4L3NpZ3NldG1hc2suYyAoX19zaWdzZXRtYXNrKTogQ2FsbCBgX19zaWdwcm9jbWFzaycKCWluc3RlYWQgb2YgYHNpZ3Byb2NtYXNrJy4KCgoJKiBncnAvZ3JwLmggW19fVVNFX1JFRU5UUkFOVF06IEFkZCBwcm90b3R5cGVzIGZvciByZWVudHJhbnQKCXZlcnNpb24gZ2V0Z3JlbnRfciwgZ2V0Z3JnaWRfciwgYW5kIGdldGdybmFtX3IuCgkqIHB3ZC9wd2QuaCBbX19VU0VfUkVFTlRSQU5UXTogQWRkIHByb3RvdHlwZXMgZm9yIHJlZW50cmFudAoJdmVyc2lvbiBnZXRwd2VudF9yLCBnZXRwd3VpZF9yLCBnZXRwd25hbV9yIGFuZCBfXyBwcm90ZWN0ZWQKCW5hbWVzLgoJKiByZXNvbHYvbmV0ZGIuaDogQ29tcGxldGUgcmV3cml0ZS4gIE5vIG1vcmUgQlNEIHVnbGluZXNzLgoKCgkqIG1pc2MvZXJyb3IuYyAocHJpdmF0ZV9zdHJlcnJvcik6IFRyYW5zbGF0ZSBtZXNzYWdlcyBmcm9tIHRhYmxlLAoJdG9vLgoKCSogaW8vZmNudGwuaDogUHJldHR5IHByaW50aW5nLgoJKiBtaXNjL2ZzdGFiLmg6IExpa2V3aXNlLgoJKiBtaXNjL3R0eWVudC5oOiBMaWtld2lzZS4KCSogcmVzb3VyY2Uvc3lzL3Jlc291cmNlLmg6IExpa2V3aXNlLgoJKiBzdHJpbmcvYXJnei5oOiBMaWtld2lzZS4KCSogc3RyaW5nL2VudnouaDogTGlrZXdpc2UuCgoJQWRkIHN1cHBvcnQgZm9yIHN5bWJvbHMgZnJvbSBQT1NJWC4xYyAoUE9TSVggdGhyZWFkcykuCgkqIHBvc2l4L2dldGNvbmYuYzogSGFuZGxlIG5ldyBzeXNjb25mIHN5bWJvbHMuCgkqIHBvc2l4L3Bvc2l4MV9saW0uaDogRGVmaW5lIF9QT1NJWF9UVFlfTkFNRV9NQVggYW5kCglfUE9TSVhfTE9HSU5fTkFNRV9NQVggd2l0aCBtaW5pbWFsIG1heGltYWwgdmFsdWVzLgoJKiBzeXNkZXBzL2dlbmVyaWMvY29uZm5hbWUuaDogRGVmaW5lIG5ldyBzeW1ib2xzLgoJKiBzeXNkZXBzL3Bvc2l4L3N5c2NvbmYuYzogSGFuZGxlIG5ldyBzeW1ib2xzLgoJKiBzeXNkZXBzL3N0dWIvc3lzY29uZi5jOiBEaXR0by4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY29uZi5jOiBSZW1vdmVkLiAgR2VuZXJpYyB2ZXJzaW9uCglpcyBvayBub3cuCgoJKiBzdW5ycGMvcnBjL3hkci5oOiBNb3ZlIGRlZmluaXRpb24gb2YgdHlwZSBgeGRycHJvY190JyB0bwoJaGF2ZSByZWFsIHByb3RvdHlwZS4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9yZXNvdXJjZWJpdHMuaDogQWRkIG1hY3JvIGRlZmluaXRpb24gZm9yCglSTElNSVRfKiB2YWx1ZXMuICBTb21lIHNvdXJjZXMgdGVzdCB1c2luZyAjaWZkZWYgd2hldGhlciBzcGVjaWZpYwoJbGltaXQgaXMgYXZhaWxhYmxlLgoJKiBzeXNkZXBzL3VuaXgvYnNkL3N1bi9zdW5vczQvcmVzb3VyY2ViaXRzLmg6IERpdHRvLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9yZXNvdXJjZWJpdHMuaDogUmVtb3ZlZC4gIFdlIG5lZWQKCXNlcGFyYXRlIGZpbGVzIGZvciB0aGUgYXJjaGl0ZWN0dXJlcy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvcmVzb3VyY2ViaXRzLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L3Jlc291cmNlYml0cy5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9yZXNvdXJjZWJpdHMuaDogTmV3IGZpbGUuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21pcHMvcmVzb3VyY2ViaXRzLmg6IE5ldyBmaWxlLgoKCSogc3lzZGVwcy9wb3NpeC9nZXRkdHN6LmM6IFJld3JpdGUgdG8gdXNlIGBfX2dldHJsaW1pdCcgZnVuY3Rpb24KCWFuZCBvbmx5IGRlZmF1bHQgb24gYE9QRU5fTUFYJy4KCSogc3lzZGVwcy91bml4L3N5c3Yvc3lzdjQvZ2V0ZHRzei5jOiBSZW1vdmVkLiAgRGVmYXVsdCBpcyBhbHJlYWR5Cgl0aGUgUE9TSVggdmVyc2lvbi4KCgkqIHRpbWUvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIGN0aW1lX3IuCgkqIHRpbWUvYXNjdGltZS5jOiBBZGQgaW1wbGVtZW50YXRpb24gb2YgYGFzY3RpbWVfcicuICBNYWtlCglgYXNjdGltZScgaW1wbGVtZW50YXRpb24gYmFzZWQgb24gcmVlbnRyYW50IHZlcnNpb24uCgkqIHRpbWUvY3RpbWVfci5jOiBOZXcgZmlsZS4KCSogdGltZS90aW1lLmggW19fVVNFX1JFRU5UUkFOVF06IEFkZCBkZWZpbml0aW9uIG9mIGBhc2N0aW1lX3InCglhbmQgYGN0aW1lX3InLgoKU2F0IEF1ZyAgMyAxODo0MTozNiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGxvY2FsZS9DLWN0eXBlLmMgKF9ubF9DX0xDX0NUWVBFX3RvdXBwZXIpOiBGaXggRU9GIGVudHJ5LgoJKF9ubF9DX0xDX0NUWVBFKTogRml4IG9yZGVyaW5nLgoJKiBsb2NhbGUvY2F0ZWdvcmllcy5kZWYgKExDX0NUWVBFKTogQWRkIG1pc3NpbmcgY3R5cGUtY2xhc3MzMjsgZml4Cgl0eXBvLgoKU2F0IEF1ZyAgMyAxMjozMTowNiAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIGNzdS9pbml0ZmluaS5jOiBEaXNjb3ZlciB0aGUgbWF4aW11bSBhbGlnbm1lbnQgZ2VuZXJhdGVkIGJ5IHRoZQoJY29tcGlsZXIgd2hlbiBlbWl0dGluZyBhIGZ1bmN0aW9uLgoJKF9pbml0KTogTWFrZSBzdXJlIHRoZSBlbmQgb2YgdGhlIGNydGkgZnJhZ21lbnQgaXMgYWxpZ25lZC4KCShfZmluaSk6IExpa2V3aXNlLgoKRnJpIEF1ZyAgMiAwMzoxMjo0MCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGluaXRmaW5pLmM6IChfX2xpYmNfaXNfc3RhdGljKTogTmV3IHZhcmlhYmxlLiAgV2lsbCBiZQoJaW5pdGlhbGl6ZWQgaW4gaW5pdC1maXJzdC5jLiAgU29tZSBhY3Rpb25zIGluIHRoZSBsaWJjIHdvcmsKCWRpZmZlcmVudCB3aGVuIGxpYmMgaXMgc3RhdGljIG9yIGR5bmFtaWMuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pbml0LWZpcnN0LmMgKGluaXQpOiBVc2UKCWBfX2xpYmNfaXNfc3RhdGljJyB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciBjYWxsIHRvCglgcGVyc29uYWxpdHknIGFuZCBgc2V0ZnB1Y3cnIGlzIG5lY2Vzc2FyeS4gIFdoZW4gZG9uZSBzZXQgdmFyaWFibGUKCXRvICstMSBkZXBlbmRpbmcgb24gbGlicmFyeSB0eXBlLgoKCSogbG9jYWxlL3NldGxvY2FsZS5jIChzZXRsb2NhbGUpOiBVc2UgZ2xvYmFsIHZhcmlhYmxlCglgX19saWJjX2VuYWJsZV9zZWN1cmUnIGluc3RlYWQgb2YgY2FsbGluZyBgZ2V0eyxlfXtnLHV9aWQoKScgdG8KCWRldGVybWluZSB3aGV0aGVyIGl0J3MgYSBTRVRbVUddSUQgcHJvZ3JhbS4KCkZyaSBBdWcgIDIgMTQ6NDA6MjIgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZmFzdC5jcy51dGFoLmVkdT4KCgkqIFZlcnNpb24gMS45MyB0ZXN0IHJlbGVhc2UuCgoJKiBtYW51YWwvTWFrZWZpbGU6IFVzZSAtaW5jbHVkZSBmb3IgY2hhcHRlcnMtaW5jbCB0b28uCgoJKiBNYWtlY29uZmlnICgrbGluayk6IEFkZCBiYWNrIHN0YXJ0Lm8sIG1pc3Rha2VubHkgcmVtb3ZlZCBpbiBsYXN0CgljaGFuZ2UuCgpGcmkgQXVnICAyIDAxOjA0OjAyIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBuc3MvTWFrZWZpbGUgKGdlbmVyYXRlZCk6IEFkZCBkYi0qLmMuCgoJKiBzeXNkZXBzL2kzODYvc3lzZGVwLmg6IEdldCBnZW5lcmljL3N5c2RlcC5oIGV4cGxpY2l0bHkgaW5zdGVhZCBvZgoJdXNpbmcgI2luY2x1ZGVfbmV4dC4KCgkqIGNvbmZpZ3VyZS5pbiAoLS1lbmFibGUtYWRkLW9ucyk6IFF1b3RlIG00IG1hY3JvIGFyZ3MuCgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogRm9yIC0tdmVyaWZ5LCBmYWlsIGlmIG5vIGR5bmFtaWMgc2VjdGlvbi4KClRodSBBdWcgIDEgMTQ6NDA6MDMgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZmFzdC5jcy51dGFoLmVkdT4KCgkqIHN1bnJwYy9NYWtlZmlsZSBbJChjcm9zcy1jb21waWxlKT1ub106IFRlc3QgYmVmb3JlIG1ha2luZyBsaWJycGNzdmMuCgoJKiBNYWtlcnVsZXMgKGJ1aWxkLXNobGliKTogQWRkIC1CJChjc3Utb2JqcGZ4KSB0byBmaW5kIGNydFtpbl0ubyB0aGVyZS4KCgkqIE1ha2Vjb25maWcgKCtwcmVpbml0LCArcG9zdGluaXQpOiBQcmVwZW5kICQoY3N1LW9ianBmeCkgaGVyZS4KCSgrbGluayk6IE5vdCBoZXJlLgoKCSogc3RkaW8tY29tbW9uL19pdG9hLmggKF9pdG9hX3dvcmQpOiBEZWNsYXJlIHVudXNlZCB0byBzdXBwcmVzcwoJd2FybmluZyB3aGVuIGlubGluZSBmdW5jdGlvbiBpcyBlbGlkZWQuCgkqIHN5c2RlcHMvaTM4Ni9kbC1tYWNoaW5lLmggKGVsZl9tYWNoaW5lX21hdGNoZXNfaG9zdCk6IExpa2V3aXNlLgoJKGVsZl9tYWNoaW5lX3J1bnRpbWVfc2V0dXApOiBMaWtld2lzZS4KCSogZWxmL2R5bmFtaWMtbGluay5oIChlbGZfZ2V0X2R5bmFtaWNfaW5mbyk6IExpa2V3aXNlLgoJKiBzeXNkZXBzL2kzODYvZGwtbWFjaGluZS5oIChlbGZfbWFjaGluZV9nb3QpOiBMaWtld2lzZS4KCShlbGZfbWFjaGluZV9sb2FkX2FkZHJlc3MpOiBMaWtld2lzZS4KCgkqIGNhdGdldHMvZ2VuY2F0LmM6IEluY2x1ZGUgPGxvY2FsZS5oPi4KCgkqIHN5c2RlcHMvdW5peC9tay1sb2NhbF9saW0uYyAocGFyYW0pOiBBZGQgU1lNTE9PUF9NQVgvTUFYU1lNTElOS1MuCgoJKiBsb2dpbi9sb2d3dG1wLmMgKGxvZ3d0bXApOiBDYWxsIHRpbWUsIG5vdCBfX3RpbWUuCgoJKiBzeXNkZXBzL2dudS91dG1wYml0cy5oIChfSEFWRV9VVF9QSUQpOiBOZXcgbWFjcm8uCgkqIGxvZ2luL2xvZ2luLmMgKGxvZ2luKTogVGVzdCBbX0hBVkVfVVRfUElEXSB0byB1c2UgdXRfcGlkIG1lbWJlci4KCSogbG9naW4vbG9nd3RtcC5jIChsb2d3dG1wKTogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2dlbmVyaWMvaW9jdGwtdHlwZXMuaCAoc2l6ZW9mKTogRGVmaW5lIHRvIDAgYXJvdW5kICNpZgoJY29tcGFyaW5nIGlvY3RsIG1hY3JvIHZhbHVlcy4KCgkqIHN5c2RlcHMvaTM4Ni9zeXNkZXAuaDogRG8gYCNpbmNsdWRlX25leHQgPHN5c2RlcC5oPicuCgoJKiBtYW51YWwvTWFrZWZpbGU6IFVzZSAtaW5jbHVkZSBmb3IgY2hhcHRlcnMgdG8gc3VwcHJlc3Mgd2FybmluZy4KCgkqIHN5c2RlcHMvc3R1Yi9zb2NrZXQuYzogRml4IHR5cGUgb2YgVFlQRSBhcmcuCgkqIHN5c2RlcHMvc3R1Yi9zb2NrZXRwYWlyLmM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9zdHViL19leGl0LmMgKF9leGl0KTogUmVtb3ZlIG9ic29sZXRlIF9fTk9SRVRVUk4ga2V5d29yZC4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zeXNkZXAuaDogTmV3IGZpbGUsIGJyb2tlbiBvdXQgb2YgLi4uCgkqIHN5c2RlcHMvdW5peC9zeXNkZXAuaDogLi4uIGhlcmUuCgkoQ19MQUJFTCk6IE1vdmVkIG91dC4KCgkqIE1ha2Vjb25maWcgKHNvdmVyc2lvbnMubWspOiBEb24ndCB1c2UgbmV3ZmFuZ2xlZCAke3glJXl9IHN5bnRheDsKCXN0aWNrIHRvIHNlZC4gIERvIGBleGl0IDAnIGF0IGVuZCBiZWNhdXNlIHdoaWxlIHJldHVybnMgbm9uemVyby4KCgkqIHN5c2RlcHMvaTM4Ni9zeXNkZXAuaDogTmV3IGZpbGUsIGJyb2tlbiBvdXQgb2YgLi4uCgkqIHN5c2RlcHMvdW5peC9pMzg2L3N5c2RlcC5oOiAuLi4gaGVyZS4gIEdlbmVyaWMgYXNtIG1hY3JvcyBtb3ZlZCBvdXQuCgoJKiBzeXNkZXBzL3N0dWIvc3RkaW9fbGltLmggKExfY3Rlcm1pZCwgTF9jdXNlcmlkKTogTWFjcm9zIHJlbW92ZWQuCglUaGV5IGFyZSBkZWZpbmVkIHVuY29uZGl0aW9uYWxseSBpbiBsaWJpby9zdGRpby5oLgoKCSogZWxmL2RsLXJ1bnRpbWUuYzogSW5jbHVkZSA8c3RkZGVmLmg+IGZvciBgTlVMTCcgZGVmbi4KCSogZWxmL2RsLWNhY2hlLmM6IExpa2V3aXNlLgoKTW9uIEp1bCAyOSAxOToyMDowNSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIFskKHN1YmRpciA9PSBtaXNjXQoJKHN5c2RlcF9oZWFkZXJzKTogQWRkIHN5cy9zeXNtYWNyb3MuaC4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3N5c21hY3Jvcy5oOiBOZXcgZmlsZS4KCldlZCBKdWwgMzEgMTQ6MjE6MzYgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB0ZXJtaW9zL3Rlcm1pb3MuaCBbX19PUFRJTUlaRV9fXTogUmVtb3ZlICJvcHRpbWl6YXRpb24iIGZvcgoJdGNnZXRhdHRyLiAgV2UgaGF2ZSB3ZWFrIGFsaWFzZXMgbm93LgoJKiBzdGRsaWIvc3RkbGliLmggW19fT1BUSU1JWkVfXyAmJiBfX0dOVUNfXyA+PSAyXTogUmVtb3ZlCgkib3B0aW1pemF0aW9ucyIgZm9yIHJhbmRvbSBmdW5jdGlvbnMuCgpNb24gSnVsIDI5IDIwOjMzOjQyIDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0aW5ldC9pbi5oIChudG9obCwgbnRvaHMsIGh0b25sLAoJaHRvbnMpIFtfX0JJR19FTkRJQU5dOiAjdW5kZWYgdGhlbSBiZWZvcmUgZGVmaW5pbmcgdG8gYXZvaWQKCXJlZGVmaW5pdGlvbiB3YXJuaW5nLgoKTW9uIEp1bCAyOSAyMDoyODoyNyAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHRpbWUvdGltZS5oOiBEb24ndCBvcHRpbWl6ZSB0enNldCgpIHRvIF9fdHpzZXQoKSB3aGljaCBieXBhc3NlcwoJdGhlIF9fdHpzZXRfbG9jay4KClR1ZSBKdWwgMzAgMTU6MTQ6NTAgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHN1bnJwYy9ycGMvcG1hcF9jbG50Lmg6IEZpeCBib3RjaGVkIHBhdGNoIGZvciBtdWx0aXBsZSBpbmNsdXNpb24KCXByb3RlY3Rpb24uCgpUdWUgSnVsIDMwIDAyOjQ4OjI4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbG9jYWxlL2xvYWRsb2NhbGUuYyAoX25sX2xvYWRfbG9jYWxlKTogQ2hhbmdlIGNhc3QgdG8gYHNpemVfdCcKCXRvIGJlIDY0LWJpdCBjbGVhbi4KCVJlcG9ydGVkIGJ5IFJpY2hhcmQgSGVuZGVyc29uIDxydGhAdGFtdS5lZHU+LgoKVHVlIEp1bCAzMCAxNTowNDo1MCAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogbG9jYWxlL3Byb2dyYW1zL2xkLWNvbGxhdGUuYyAoY29sbGF0ZV9vdXRwdXQpOiBGaXggdHlwbyByZXBvcnRlZCBieQoJRGF2aWQgTWlsbGVyLgoKVHVlIEp1bCAzMCAxMzoyMzoxMyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxvY2FsZS9zZXRsb2NhbGUuYyAoc2V0bG9jYWxlKTogRG9uJ3QgdHJ5IHRvIGZyZWUgQyBsb2NhbGUKCWRhdGEuCglSZXBvcnRlZCBieSBNYXR0aGlhcyBVcmxpY2hzLgoKVHVlIEp1bCAzMCAxNDozNToxNyAxOTk2ICBNaWxlcyBCYWRlciAgPG1pbGVzQGdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvZGwtc3lzZGVwLmMJKF9fb3Blbik6IFVzZSBvcGVuX2ZpbGUuCgkob3Blbl9maWxlKTogTmV3IGZ1bmN0aW9uLCBjb250ZW50cyBtb3N0bHkgZnJvbSBfX29wZW4uCgkoX2RsX3N5c2RlcF9yZWFkX3dob2xlX2ZpbGUpOiBOZXcgZnVuY3Rpb24uCgpTYXQgSnVsIDI3IDExOjIzOjU5IDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC9NYWtlZmlsZSAoJChjb21tb24tb2JqcGZ4KWVycm5vcy5kKTogUXVvdGUKCWAuLicgZG90cyBpbiBzZWQgc2VhcmNoIHN0cmluZy4KCk1vbiBKdWwgMjkgMDE6Mjc6MDcgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHN1bnJwYy9ycGMvcnBjX21zZy5oOiBGaXggYm90Y2hlZCBwYXRjaCBmb3IgbXVsdGlwbGUgaW5jbHVzaW9uCglwcm90ZWN0aW9uLgoKU3VuIEp1bCAyOCAyMzo0NjoxNCAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogY29uZmlndXJlLmluOiBHcm9rIGAtLWVuYWJsZS1hZGQtb25zPURJUjEsRElSMiwuLi4nLCBhbmQgY29uZmlndXJlCglpbiB0aG9zZSBkaXJlY3Rvcmllcy4KCSogY29uZmlnLm1ha2UuaW4gKGFkZC1vbnMpOiBOZXcgdmFyYWlibGUsIHNldCBmcm9tIEBzdWJkaXJzQC4KCSogTWFrZWZpbGUgKHN1YmRpcnMpOiBBZGRlZCAkKGFkZC1vbnMpIGF0IHRoZSBlbmQuCgoJKiB0aW1lL3N0cmZ0aW1lLmMgKHN0cmZ0aW1lOiBkb19udW1iZXIpOiBJbml0aWFsaXplIFBSSU5URUQgdG8KCU1BWERJR0lUUyBpbiBjYXNlIFAgaXMgbnVsbCBhbmQgc28gc3ByaW50ZiBpcyBuZXZlciBhY3R1YWxseSBjYWxsZWQuCgpNb24gSnVsIDI5IDAyOjQ2OjIzIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCUFkZCBzdXBwb3J0IGZvciB0aGUgdG8tYmUtd3JpdHRlbiBpbnRlcm5hdGlvbmFsaXplZCByZWdleHAuCglUaGlzIGNvZGUgbXVzdCBiZSBhYmxlIHRvIHVzZSBjb2xsYXRpb24gc3ltYm9scyBhbmQgY29sbGF0aW9uCgllcXVpdmFsZW50IGNsYXNzZXMuCgkqIGxvY2FsZS9DLWNvbGxhdGUuYyAoX25sX0NfTENfQ09MTEFURV9zeW1ib2xfaGFzaCwKCV9ubF9DX0xDX0NPTExBVEVfc3ltYm9sX3N0cmluZ3MsIF9ubF9DX0xDX0NPTExBVEVfc3ltYm9sX2NsYXNzZXMpOgoJTmV3IGdsb2JhbCB2YXJpYWJsZXMgZm9yIGNvbGxhdGlvbiBjbGFzc2VzLgoJKiBsb2NhbGUvY2F0ZWdvcmllcy5kZWY6IEFkZCBuZXcgZGVzY3JpcHRpb25zIGZvciBjb2xsYXRpb24gc3ltYm9scwoJYW5kIGNvbGxhdGlvbiBjbGFzc2VzLgoJKiBsb2NhbGUvbGFuZ2luZm8uaDogQWRkIGNvbnN0YW50cyBmb3IgY29sbGF0aW9uIHN5bWJvbHMgYW5kCgljb2xsYXRpb24gY2xhc3Nlcy4KCSogbG9jYWxlL2xjLWNvbGxhdGUuYzogQWRkIG5ldyBnbG9iYWwgdmFyaWFibGVzIGZvciBjb2xsYXRpb24gc3ltYm9scwoJYW5kIGNvbGxhdGlvbiBjbGFzc2VzLgoJKF9ubF9wb3N0bG9hZF9jb2xsYXRlKTogSW5pdGlhbGl6ZSBuZXcgdmFyaWFibGVzLgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtY29sbGF0ZS5jOiBBZGQgY29kZSB0byBlbWl0IHRhYmxlcyBmb3IKCWNvbGxhdGlvbiBzeW1ib2xzIGFuZCBjb2xsYXRpb24gY2xhc3Nlcy4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZXMuaDogQ2hhbmdlIHByb3RvdHlwZSBmb3IgYGNvbGxhdGVfb3V0cHV0Jy4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2ZpbGUuYyAod3JpdGVfYWxsX2NhdGVnb3JpZXMpOiBDYWxsCglgY29sbGF0ZV9vdXRwdXQnIHdpdGggbmV3IGFyZ3VtZW50LgoJKiBsb2NhbGUvbG9jYWxlaW5mby5oOiBBZGQgZGVjbGFyYXRpb24gZm9yIG5ldyBnbG9iYWwgdmFycy4KCSh1bmlvbiBsb2NhbGVfZGF0YV92YWx1ZSk6IE5ldyBtZW1iZXIgd3N0ciBmb3IgYHdjaGFyX3QnIHN0cmluZ3MuCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NhbGUtc3BlYy5jOiBIYW5kbGUgYGNvbGxhdGUtY2xhc3NlcycKCWtleXdvcmQgYW5kIHByaW50IGluZm9ybWF0aW9uIGFib3V0IGF2YWlsYWJsZSBjb2xsYXRpb24gY2xhc3Nlcy4KCSogbG9jYWxlL3N0cmxlbi1oYXNoLmg6IE5ldyBmaWxlLiAgU2ltcGxlIGhhc2hpbmcgZnVuY3Rpb24gd2hpY2gKCXRha2VzIGEgc3RyaW5nIHdpdGgga25vd24gbGVuZ3RoLgoJKiBsb2NhbGUvTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBBZGQgc3RybGVuLWhhc2guaC4KCShsb2NhbGUtbW9kdWxlcyk6IE5ldyB2YXIuICBBZGRpdGlvbmFsIGZpbGVzIGZvciBgbG9jYWxlJyBwcm9ncmFtLgoKCSogbG9jYWxlL0MtY3R5cGUuYzogUmV3cml0ZSB0byBhdm9pZCB1c2luZyBzdHJpbmcgZm9yIGdpdmluZyB2YWx1ZXMKCXdoaWNoIGFyZSBvZiB0eXBlIGB1X2ludDMyX3QnLgoJQ29ycmVjdCBlbnRyeSBmb3IgRU9GIGluIHRvdXBwZXIgYW5kIHRvbG93ZXIgdGFibGVzLgoKCSogbG9jYWxlL2xvYWRsb2NhbGUuYyAoX25sX2xvYWRfbG9jYWxlKTogIEFkZCBjYXN0IHRvIHByZXZlbnQKCXdhcm5pbmcuCgoJKiBsb2NhbGUvcHJvZ3JhbXMvbGQtY3R5cGUuYyAoY3R5cGVfb3V0cHV0KTogQWRkIGNvZGUgdG8gbWFrZQoJc3VyZSB0aGF0IGFsbCB0YWJsZXMgaW4gYmluYXJ5IGZpbGUgYXJlIHdvcmQtYWxpZ25lZC4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NmaWxlLmMgKHdyaXRlX2xvY2FsZV9kYXRhKTogQ29ycmVjdCBoYW5kbGluZwoJb2YgTENfTUVTU0FHRVMgbG9jYWxlLiAgQ3JlYXRlIGRpcmVjdG9yeSBpZiBuZWNlc3NhcnkuCgoJKiBsb2NhbGUvc2V0bG9jYWxlLmMgKHNldGxvY2FsZSk6IEFkZCBjYXN0IHRvIGF2b2lkIHdhcm5pbmcuCgoJKiBzdHJpbmcvc3RyaW5nLmg6IEFkZCBwcm90b3R5cGUgZm9yIGBfX3N0cm5kdXAnLgoKV2VkIEp1bCAyNCAxOToxMDowMCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHdjc21icy9tYnJ0b3djLmM6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgpTdW4gSnVsIDI4IDIyOjQwOjI1IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jb25maWd1cmUuaW4gKExJQkNfTElOVVhfVkVSU0lPTik6IFVwZGF0ZSB0bwoJMi4wLjEwOyBzb21lIHByb2JsZW1zIHdlcmUgcmVwb3J0ZWQgd2l0aCBhbiBlYXJsaWVyIHZlcnNpb24sIGFuZCB0aGlzCglvbmUgaXMga25vd24gdG8gd29yay4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9kbC1zeXNkZXAuYyAoX19saWJjX2VuYWJsZV9zZWN1cmUpOiBOZXcgdmFyaWFibGUuCgkqIHN5c2RlcHMvbWFjaC9odXJkL2RsLXN5c2RlcC5jOiBMaWtld2lzZS4KClNhdCBKdWwgMjcgMTM6MDI6MDkgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogSWdub3JlIGFyZ3VtZW50cyB3aGVuIGVudmlyb25tZW50IHZhcmlhYmxlCglMRF9UUkFDRV9MT0FERURfT0JKRUNUUyBpcyBzZXQuCgpTdW4gSnVsIDI4IDE5OjQyOjUxIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL2dlbmVyaWMvZGwtc3lzZGVwLmMgKF9kbF9zeXNkZXBfc3RhcnQpOiBJbml0aWFsaXplCglfX2xpYmNfZW5hYmxlX3NlY3VyZSBpbnN0ZWFkIG9mIF9kbF9zZWN1cmUuCgkqIHN5c2RlcHMvbWFjaC9odXJkL2RsLXN5c2RlcC5jIChfZGxfc3lzZGVwX3N0YXJ0KTogTGlrZXdpc2UuCgkqIGVsZi9kbC1sb2FkLmMgKF9kbF9tYXBfb2JqZWN0KTogQ2hlY2sgX19saWJjX2VuYWJsZV9zZWN1cmUgaW5zdGVhZAoJb2YgX2RsX3NlY3VyZS4KCSogZWxmL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBlbmJsLXNlY3VyZS4KCShlbGlkZS1yb3V0aW5lcy5zbyk6IEhlcmUgdG9vLgoJKiBzeXNkZXBzL2dlbmVyaWMvZW5ibC1zZWN1cmUuYzogTmV3IGZpbGUuCgkqIHBvc2l4L3VuaXN0ZC5oIFtfX1VTRV9HTlVdOiBEZWNsYXJlIGBfX2xpYmNfZW5hYmxlX3NlY3VyZScgZmxhZy4KCSogZWxmL2RsLXN1cHBvcnQuYyAoX2RsX3NlY3VyZSk6IFZhcmlhYmxlIHJlbW92ZWQuCgkqIGVsZi9ydGxkLmM6IExpa2V3aXNlLiAgUmVwbGFjZSBhbGwgdXNlcyB3aXRoIF9fbGliY19lbmFibGVfc2VjdXJlLgoKU3VuIEp1bCAyOCAxOToyNjo0MCAxOTk2ICBEYXZpZCBTLiBNaWxsZXIgIDxkbUBuZXRlbmcuZW5nci5zZ2kuY29tPgoKCSogc3lzZGVwcy9taXBzL2RsLW1hY2hpbmUuaCAoRUxGX01BQ0hJTkVfUlVOVElNRV9UUkFNUE9MSU5FKToKCURlY2xhcmUgX2RsX3J1bnRpbWVfcmVzb2x2ZSB3aXRoIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSBzbyB0aGUKCWNvbXBpbGVyIGRvZXNuJ3QgZWxpZGUgaXQuCgkoZWxmX21hY2hpbmVfcmVsKTogRm9sbG93IEp1bCAxNCBjaGFuZ2UgaW4gc3lzZGVwcy9pMzg2L2RsLW1hY2hpbmUuaC4KClNhdCBKdWwgMjcgMDI6NTg6NDkgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBUYWtlIG5ldyBvcHRpb24gLS12ZXJpZnkgd2hlbiBydW4gZGlyZWN0bHkuCglJbiB2ZXJpZnkgbW9kZSwgZXhpdCB3aXRoIHN0YXR1cyB6ZXJvIGlmZiB0aGUgYXJndW1lbnQgb2JqZWN0J3MKCVBUX0lOVEVSUCBtYXRjaGVzIGFyZ3ZbMF0uCgkqIGVsZi9sZGQuc2guaW46IFVzZSAke1JUTER9IC0tdmVyaWZ5IGFuZCBvbmx5IHJ1biB0aGUgcHJvZ3JhbSBpZiBpdAoJZXhpdHMgd2l0aCB6ZXJvIHN0YXR1cy4gIFRoaXMgbWFrZXMgYGxkZCcgc2VjdXJlIGFnYWluLgoKRnJpIEp1bCAyNiAyMjo0OTo1OCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBJbXBsZW1lbnQgTERfVFJBQ0VfTE9BREVEX09CSkVDVFMKCWVudmlyb25tZW50IHZhcmlhYmxlIGhhbmRsaW5nLiAgVGhpcyBtYWtlcyB0aGUgZHluYW1pYyBsaW5rZXIKCW9ubHkgcHJpbnQgbG9hZGVkIGxpYnJhcmllcyBhbmQgcXVpdC4KCgkqIGVsZi9sZGQuc2guaW46IERvbid0IHVzZSBgcnRsZCAtLWxpc3QnIGJ1dCBpbnN0ZWFkCglMRF9UUkFDRV9MT0FERURfT0JKRUNUUyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBwcmludCBuZWVkZWQKCW9iamVjdHMuCgpTYXQgSnVsIDI3IDAyOjAzOjI2IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBkYi9tYWtlZGIuYyAobWFpbik6IFByaW50IHZlcnNpb24gb24gc3Rkb3V0LCBub3Qgc3RkZXJyLiAgRG9uJ3QgZXhpdAoJYWZ0ZXIgcHJpbnRpbmcgdmVyc2lvbiB1bnRpbCBhZnRlciBkb2luZyB1c2FnZSBmb3IgLS1oZWxwLgoJKGxvbmdfb3B0aW9ucywgbWFpbiwgdXNhZ2UpOiBSZW5hbWUgLWwvLS1sb3dlcmNhc2Ugb3B0aW9uIHRvCgktZi8tLWZvbGQtY2FzZSAoLWYgbWF0Y2hlcyBzb3J0KS4KClNhdCBKdWwgMjcgMDQ6MzI6MzEgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBkYi9tYWtlZGIuYzogTmV3IGZpbGUuICBJbXBsZW1lbnQgcHJvZ3JhbSB0byBjcmVhdGUgc2ltcGxlIDxkYi5oPgoJZGF0YWJhc2UgZnJvbSB0ZXh0dWFsIGlucHV0LiAgVGhpcyB3aWxsIGJlIHVzZWQgZm9yIG5zc19kYi4KClNhdCBKdWwgMjcgMDE6MjQ6MDUgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHN1bnJwYy9ycGMvYXV0aF91bml4Lmg6IEZpeCBtaXNhcHBsaWVkIHBhdGNoZXMgaW4gbGFzdCBjaGFuZ2VzLgoJKiBzdW5ycGMvcnBjL3BtYXBfY2xudC5oOiBMaWtld2lzZS4KCSogc3VucnBjL3JwYy9hdXRoLmg6IExpa2V3aXNlLgoJKiBzdW5ycGMvcnBjL3BtYXBfcm10Lmg6IExpa2V3aXNlLgoJKiBzdW5ycGMvcnBjL3JwY19tc2cuaDogTGlrZXdpc2UuCgpTYXQgSnVsIDI3IDA0OjM3OjM0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3RyaW5nL3N0cmluZy5oIChzdHJuZHVwYSk6IENoYW5nZSB0byB1c2UgcmV0dXJuIHZhbHVlIG9mCglgbWVtY3B5JyBmb3IgbW9yZSBwZXJmb3JtYW5jZS4KCSogc3RyaW5nL3N0cm5kdXAuYzogTGlrZXdpc2UuCgoJKiBzdHJpbmcvc3RyaW5nLmggKHN0cmR1cGEpOiBEb24ndCBjYWxsIF9fYnVpbHRpbl9hbGxvY2EgaW4gYXJndW1lbnQuCglUaGlzIG1pZ2h0IGxlYWQgdG8gcHJvYmxlbXMuCgkoc3RybmR1cGEpOiBMaWtld2lzZS4KCkZyaSBKdWwgMjYgMTU6MjQ6MjUgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdW5ycGMvcnBjL2F1dGguaDogQWRkIHByb3RlY3Rpb24gYWdhaW5zdCBtdWx0aXBsZSBpbmNsdXNpb24KCWFuZCBjaGFuZ2UgSyZSIHByb3RvdHlwZXMgdG8gQU5TSSBwcm90b3R5cGVzLgoJKiBzdW5ycGMvcnBjL2F1dGhfdW5peC5oOiBEaXR0by4KCSogc3VucnBjL3JwYy9jbG50Lmg6IERpdHRvLgoJKiBzdW5ycGMvcnBjL3BtYXBfY2xudC5oOiBEaXR0by4KCSogc3VucnBjL3JwYy9wbWFwX3Byb3QuaDogRGl0dG8uCgkqIHN1bnJwYy9ycGMvcG1hcF9ybXQuaDogRGl0dG8uCgkqIHN1bnJwYy9ycGMvcnBjX21zZy5oOiBEaXR0by4KCSogc3VucnBjL3JwYy9zdmMuaDogRGl0dG8uCgkqIHN1bnJwYy9ycGMvc3ZjX2F1dGguaDogRGl0dG8uCgkqIHN1bnJwYy9ycGMveGRyLmg6IERpdHRvLgoKRnJpIEp1bCAyNiAyMDozOTo0MiAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogY3R5cGUvdGVzdF9jdHlwZS5jOiBUZXN0IEVPRiB0b28uCgpGcmkgSnVsIDI2IDE4OjA2OjU4IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogc3VucnBjL3JwYy9hdXRoLmg6IEFkZCBfX0JFR0lOX0RFQ0xTIGFuZCBfX0VORF9ERUNMUy4KCSogc3VucnBjL3JwYy9hdXRoX3VuaXguaDogTGlrZXdpc2UuCgkqIHN1bnJwYy9ycGMvY2xudC5oOiBMaWtld2lzZS4KCSogc3VucnBjL3JwYy9uZXRkYi5oOiBMaWtld2lzZS4KCSogc3VucnBjL3JwYy9wbWFwX2NsbnQuaDogTGlrZXdpc2UuCgkqIHN1bnJwYy9ycGMvcG1hcF9wcm90Lmg6IExpa2V3aXNlLgoJKiBzdW5ycGMvcnBjL3JwY19tc2cuaDogTGlrZXdpc2UuCgkqIHN1bnJwYy9ycGMvc3ZjLmg6IExpa2V3aXNlLgoJKiBzdW5ycGMvcnBjL3N2Y19hdXRoLmg6IExpa2V3aXNlLgoJKiBzdW5ycGMvcnBjL3hkci5oOiBMaWtld2lzZS4KCgkqIHN1bnJwYy9ycGMvcG1hcF9jbG50Lmg6IE1vdmUgZGVmaW5pdGlvbiBvZiB0eXBlIGByZXN1bHRwcm9jX3QnCgl0byBoZXJlIGZyb20uLi4KCSogc3VucnBjL3BtYXBfcm10LmM6IC4uLmhlcmUuCgpGcmkgSnVsIDI2IDE2OjEwOjQzIDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBsb2dpbi9wdXR1dGxpbmVfci5jIChwdXR1dGxpbmVfcik6IE9ubHkgY2FsbCBnZXR1dGlkX3IgaWYgSUQgaGFzIGEKCXZhbGlkIHV0X2lkIGZpZWxkLgoJKiBsb2dpbi9nZXR1dGlkX3IuYyAoZ2V0dXRpZF9yKTogTWFyayBVVE1QX0RBVEEtPmxvY191dG1wIGludmFsaWQKCWlmIGEgc2VhcmNoIGZhaWxzLgoKRnJpIEp1bCAyNiAwMDozNjo1MCAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogc3lzZGVwcy9taXBzL2RsLW1hY2hpbmUuaDogTmV3IGZpbGUsIGNvbnRyaWJ1dGVkIGJ5IEthenVtb3RvIEtvamltYQoJPGtrb2ppbWFAaW5mby5rYW5hZ2F3YS11LmFjLmpwPi4KCkZyaSBKdWwgMjYgMDQ6NDE6MjggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBpbnRsL2xpYmludGwuaDogRGVmaW5lIG9wdGltaXppbmcgbWFjcm9zIGlmIF9fT1BUSU1JWkVfXyBpcwoJZGVmaW5lZCwgbm90IF9fT1BUSU1JWkVELgoJKF9ubF9tc2dfY2F0X2NudHIpOiBNb3ZlIGRlY2xhcmF0aW9uIG91dHNpZGUgbWFjcm8gZGVmaW5pdGlvbgoJdG8gcHJldmVudCAibmVzdGVkIGV4dGVybiIgd2FybmluZy4KCShkY2dldHRleHQpOiBSZW5hbWUgbG9jYWwgdmFyaWFibGUgYHJlc3VsdCcgdG8gYF9fcmVzdWx0Jy4KClRodSBKdWwgMjUgMjI6NDY6MzAgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NhbGVkZWYuYyAoX19wcm9nbmFtZSk6IFJlbW92ZSBkZWNsLgoJKG1haW4pOiBVc2UgcHJvZ3JhbV9pbnZvY2F0aW9uX3Nob3J0X25hbWUgaW5zdGVhZCBvZiBfX3Byb2duYW1lLgoJKHVzYWdlKTogVXNlIHByb2dyYW1faW52b2NhdGlvbl9uYW1lIGluc3RlYWQgb2YgX19wcm9nbmFtZS4KCkZyaSBKdWwgMjYgMDM6NDY6MDggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBjYXRnZXRzL2dlbmNhdC5jOiBVc2UgImxpYmMiIGluc3RlYWQgb2YgUEFDS0FHRS4KCSogbG9jYWxlL2xvY2FsZWRlZi5jOiBEaXR0by4KCSogbG9jYWxlL2xvY2FsZS5jOiBEaXR0by4KCgkqIGxvY2FsZS9maW5kbG9jYWxlLmMgKF9ubF9maW5kX2xvY2FsZSk6IExpdHRsZSBvcHRpbWl6YXRpb24uCglVc2UgbmV3IGZ1bmN0aW9uIGBzdHJuZHVwJy4KCgkqIGxvY2FsZS9sb2FkbG9jYWxlLmM6IExpdHRsZSBvcHRpbWl6YXRpb24uICBVc2UgY29uc3RhbnQgdmFsdWUKCWZyb20gYF9ubF9jYXRlZ29yeV9udW1faXRlbXMnIGluc3RlYWQgb2YgYnl0ZS1vcmRlciBkZXBlbmRlbmQKCXZhbHVlIGZyb20gZmlsZS4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sZC10aW1lLmMgKHRpbWVfYWRkKTogQ29ycmVjdCBzdHJpbmcgY29uc3RhbnQuCgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlLXNwZWMuYzogTmV3IGZpbGUuCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NhbGUuYzogQ2FsbCBgbG9jYWxlX3NwZWNpYWwnIGZ1bmN0aW9uIGlmCglubyBvdGhlciBmaWVsZCBtYXRjaGVzLgoKCSogbG9jYWxlL3Byb2dyYW1zL2xvY2FsZWRlZi5jOiBObyBuZWVkIHRvIGRlZmluZSBgcHJvZ3JhbV9uYW1lJy4KCVVzZSBnbG9iYWwgdmFyaWFibGUgYF9fcHJvZ25hbWUnLgoKCSogbG9jYWxlL3Byb2dyYW1zL2xvY2ZpbGUuYyAod3JpdGVfbG9jYWxlX2RhdGEpOiBBbHdheXMgd3JpdGUKCUxDX01FU1NBR0VTIGRhdGEgaW4gTENfTUVTU0FHRVMvU1lTX0xDX01FU1NBR0VTIGZpbGUuICBUaGlzIGlzCgluZWNlc3Nhcnkgc2luY2UgbWVzc2FnZSBjYXRhbG9ncyBhcmUgYWxzbyBpbnN0YWxsZWQgaW4gdGhlCglMQ19NRVNTQUdFUy8gZGlyZWN0b3J5LgoKCSogbG9jYWxlL3Byb2dyYW1zL3N0cmluZ3RyYW5zLmMgKEFEREMpOiBDb3JyZWN0bHkgdXNlIGBlbmNvZGVfY2hhcicKCWZ1bmN0aW9uIGluc3RlYWQgb2Ygd3JpdGluZyBzaW5nbGUgYnl0ZXMuCgkoZW5jb2RlX2NoYXIpOiBBbHNvIGhhbmRsZSBsaXR0bGUgZW5kaWFuLgoKCSogbG9jYWxlL3NldGxvY2FsZS5jIChuZXdfY29tcG9zaXRlX25hbWUpOiBMaXR0bGUgb3B0aW1pemF0aW9uLgoJVXNlIHJldHVybiB2YWx1ZSBvZiBgbWVtY3B5Jy4KCgkqIG1pc2MvdHR5ZW50Lmg6IFByZXR0eSBwcmludCBwcm90b3R5cGVzLCBhZGQgbWlzc2luZyBwYXJhbWV0ZXIKCW5hbWVzLCBwcmVwZW5kIHBhcmFtZXRlciBuYW1lcyB3aXRoIF9fICBhbmQgdXNlIGBfX2NvbnN0JyBpbnN0ZWFkCglvZiBgY29uc3QnLgoJKiBwb3NpeC91bmlzdGQuaDogRGl0dG8uCgkqIHN0ZGxpYi9zdGRsaWIuaDogRGl0dG8uCgkqIHN0cmluZy9zdHJpbmcuaDogRGl0dG8uCgoJKiBwb3NpeC9nZXRjb25mLmM6IERlLUFOU0ktZnkuICBSZWNvZ25pemUgUE9TSVguMiBjb25zdGFudCBuYW1lcy4KCVVzZSBgZXJyb3InIGZ1bmN0aW9uIGluc3RlYWQgb2YgZG9pbmcgaXQgYnkgaGFuZC4KCSogc3lzZGVwcy9wb3NpeC9zeXNjb25mLmM6IERlLUFOU0ktZnkuCglIYW5kbGUgX1NDX0NPTExfV0VJR0hUU19NQVguCgkqIHN5c2RlcHMvc3R1Yi9zeXNjb25mLmM6IEhhbmRsZSBfU0NfQ0hBUkNMQVNTX05BTUVfTUFYLAoJX1NDX0NPTExfV0VJR0hUU19NQVgsIF9TQ19FUVVJVl9DTEFTU19NQVgsIF9TQ18yX0xPQ0FMRURFRgoJc2luY2UgdGhlc2UgZG8gbm90IGRlcGVuZCBvbiB0aGUgcGxhdGZvcm0uCglBZGQgUE9TSVguNCBzeW1ib2xzLgoKCSogcG9zaXgvcG9zaXgyX2xpbS5oOiBBZGQgbWlzc2luZyBkZWZpbml0aW9uIG9mCglfUE9TSVgyX0NPTExfV0VJR0hUU19NQVguCglDaGFuZ2UgX1BPU0lYMl9FUVVJVl9DTEFTU19NQVggYW5kIF9QT1NJWDJfQ0hBUkNMQVNTX05BTUVfTUFYCgl0byBoaWdoIHZhbHVlcyBzaW5jZSB3ZSBoYXZlIG5vIGZpeGVkIGxpbWl0LgoKCSogc3lzZGVwcy9nZW5lcmljL2NvbmZuYW1lLmg6IEFkZCBfU0NfUEFHRV9TSVpFIGFzIGFsaWFzIGZvcgoJX1NDX1BBR0VTSVpFIGZvciBidWdneSBzeXN0ZW1zICg9IEhQIFVYKSBvdXQgdGhlcmUuCgoJKiB3Y3NtYnMvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIG1ic25ydG93Y3MgYW5kIHdjc25ydG9tYnMuCgkqIHdjc21icy9tYnNucnRvd2NzLmM6IE5ldyBmaWxlLiAgTm9uLXN0YW5kYXJkIGltcGxlbWVudGF0aW9uLgoJKiB3Y3NtYnMvd2NzbnJ0b21icy5jOiBEaXR0by4KCSogd2NzbWJzL3djaGFyLmggW19fVVNFX0dOVV06IEFkZCBwcm90b3R5cGVzIGZvciBtYnNucnRvd2NzIGFuZAoJd2NzbnJ0b21icy4KClRodSBKdWwgMjUgMDA6MjU6NTQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogbnNzL25zc19kYi9kYi1YWFguYzogS2lsbCB0cmFpbGluZyA7IGZyb20gbG9jayBkZWZuIGFzIGEgbWF0dGVyIG9mCgljb3Vyc2UuCgkqIG5zcy9nZXRYWGVudF9yLmM6IExpa2V3aXNlLgoJKiBuc3MvbnNzd2l0Y2guYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtWFhYLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9kaXJzdHJlYW0uaCAoc3RydWN0IF9fZGlyc3RyZWFtKTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9ic2QvdGVsbGRpci5jIChzdHJ1Y3QgcmVjb3JkKTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9kaXJzdHJlYW0uaCAoc3RydWN0IF9fZGlyc3RyZWFtKTogTGlrZXdpc2UuCgpUaHUgSnVsIDI1IDAwOjUzOjA2IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jb25maWd1cmUuaW4gKExJQkNfTElOVVhfVkVSU0lPTik6IE5ldwoJbWFjcm8sIG5vdyBwdXQgdGhlIG5lZWRlZCBMaW51eCB2ZXJzaW9uIGp1c3Qgb25jZSwgaGVyZTsgdXBkYXRlIHRvCgluZWVkaW5nIGxpbnV4LTIuMC4zIGhlYWRlcnMuCgkobGliY19jdl9saW51eFZFUik6IE5ldyBtYWNybyBkZXJpdmVkIGZyb20gdGhhdC4KCShrZXJuZWwgaGVhZGVyIGNoZWNrKTogVXNlIHRob3NlIG1hY3JvcyBhbmQgc29tZSBtNCBtYWdpYyB0byByZXBsYWNlCgloYXJkLWNvZGVkIGAyMDEnIGFuZCBgMi4wLjEnIGluIHNldmVyYWwgcGxhY2VzLgoKCSogTWFrZXJ1bGVzICgkKGxpYmRpcikvbGliYy5zbyk6IEZpeCB0eXBvcyBpbiBnZW5lcmF0ZWQgY29tbWVudC4KCldlZCBKdWwgMjQgMTc6MDI6MzAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiB0aW1lL2xvY2FsdGltZS5jOiBNb3ZlIGxvY2sgdmFyaWFibGUgZGVjbGFyYXRpb24gdG8gZW5kIG9mCgl2YXJpYWJsZSBkZWNsYXJhdGlvbnMgc2luY2UgaWYgaXMgYSBkdW1teSBtYWNybyB0aGUgOyBhdCB0aGUKCWVuZCB0ZXJtaW5hdGVzIHRoZSB2YXJpYWJsZSBzZWN0aW9uIG9mIHRoZSBmdW5jdGlvbi4KCgkqIHRpbWUvdHpzZXQuYzogVW5kZWZpbmUgYHR6c2V0JyBiZWZvcmUgZnVuY3Rpb24gZGVjbGFyYXRpb24uCglVc2UgYHdlYWtfZnVuY3Rpb24nIG1hY3JvIGluc3RlYWQgb2YgYHdlYWtfc3ltYm9sJy4KCldlZCBKdWwgMjQgMTg6NTc6MzMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdGRsaWIvc3RydG91cS5jOiBBZGRpdGlvbmFsIHdlYWsgYWxpYXMgaXMgYHN0cnRvdWxsJywgbm90Cglgc3Ryb3R1bGwnLgoKV2VkIEp1bCAyNCAxODoyNjoyMyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxvY2FsZS9DLWN0eXBlLmM6IEluY3JlbWVudCBudW1iZXIgb2YgZmllbGRzIGFmdGVyIGNoYW5nZQoJZnJvbSBXZWQgSnVuIDE5IDAzOjI0OjU4IDE5OTYuCgpUdWUgSnVsIDIzIDE4OjEzOjM3IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC9NYWtlZmlsZSAocnBjdXNlcmxpYnMpOiBOZXcgdmFyaWFibGUuCgkoJChjb21tb24tb2JqcGZ4KWxpYmMuc28pOiBNb3ZlIGRlcHMgaW50byB0aGF0LCB1c2UgaXQuCglbJChzdWJkaXIpID0gZWxmXSAoJChvYmpwZngpbGlicnRsZC5zbyk6IERlcGVuZCBvbgoJJChycGN1c2VybGliczouc289X3BpYy5hKS4KCSogZWxmL01ha2VmaWxlICgkKG9ianBmeClsaWJydGxkLnNvKTogSnVzdCBkZXBlbmQgb24gbGliY19waWMuYTsgZG9uJ3QKCXVzZSAkKExETElCUy1jLnNvKS4KClRodSBKdWwgMTggMjE6NDE6MjUgMTk5NiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAaXNzYW4uaW5mb3JtYXRpay51bmktZG9ydG11bmQuZGU+CgoJKiBzeXNkZXBzL2dlbmVyaWMvc3RwbmNweS5jOiBGaXggc2VtYW50aWNzIHRvIG1ha2UgYHN0cG5jcHkgKGQsIHMsCgluKScgZXF1aXZhbGVudCB0byBgc3RybmNweSAoZCwgcywgbiksIGQgKz0gc3RybmxlbiAoZCwgbiknLgoKVHVlIEp1bCAyMyAwMjo0OTo1OCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxvY2FsZS9pc28tNDIxNy5kZWY6IEFkZCBJbmRpYSB0byBjb21tZW50IGZvciBzeW1ib2wgIklOUiAiLgoJUmVwb3J0ZWQgYnkgUmFqYSBSIEhhcmluYXRoICA8aGFyaW5hdGhAY3MudW1uLmVkdT4uCgpTYXQgSnVsIDIwIDE0OjAzOjQ1IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy9tNjhrL2RsLW1hY2hpbmUuaCAoZWxmX21hY2hpbmVfcmVsYSk6IFJlbW92ZSBib2d1cwoJI3VuZGVmIFJFU09MVkUuCgpTdW4gSnVsIDIxIDA2OjQ4OjM4IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiB0aW1lL3R6c2V0LmM6IEluY2x1ZGUgPGxpYmMtbG9jay5oPi4KCShfX3R6c2V0X2xvY2spOiBOZXcgbG9jayB2YXJpYWJsZS4KCSh0enNldCk6IE5ldyBmdW5jdGlvbiAod2VhayBkZWZuKSwgbm8gbG9uZ2VyIHdlYWsgYWxpYXMgZm9yIF9fdHpzZXQuCglDYWxsIF9fdHpzZXQgd2hpbGUgaG9sZGluZyBfX3R6c2V0X2xvY2suCgkqIHRpbWUvbG9jYWx0aW1lLmM6IEluY2x1ZGUgPGxpYmMtbG9jay5oPi4KCShfX2xvY2FsdGltZV9yKTogSG9sZCBfX3R6c2V0X2xvY2sgd2hpbGUgZG9pbmcgdGhlIHdvcmsuCgoJKiBzeXNkZXBzL2dlbmVyaWMvc2V0ZW52LmMgKF9fZW52aXJvbik6IENoYW5nZSBjb25kaXRpb25hbCBmb3IgI2RlZmluZQoJZnJvbSBbIUhBVkVfR05VX0xEXSB0byBbIV9MSUJDXS4KCVtfTElCQ106IEluY2x1ZGUgPGxpYmMtbG9jay5oPiBhbmQgZGVmaW5lIGEgbG9jay4KCShMT0NLLCBVTkxPQ0spOiBOZXcgbWFjcm9zLCBuby1vcHMgZm9yIFshIF9MSUJDXS4KCShzZXRlbnYsIHVuc2V0ZW52KTogVXNlIHRoZW0uCgpTdW4gSnVsIDIxIDAxOjQ0OjM5IDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jZmlsZS5jICh3cml0ZV9sb2NhbGVfZGF0YSk6IERlYWwgd2l0aCBtaXNzaW5nCglVSU9fTUFYSU9WLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvc29ja2V0LmMgKHNvY2tldCk6IE1ha2UgVFlQRSBhbiBpbnQuCgkqIHN5c2RlcHMvbWFjaC9odXJkL3NvY2tldHBhaXIuYyAoc29ja2V0cGFpcik6IExpa2V3aXNlLgoKU2F0IEp1bCAyMCAyMTo1NTozMSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCVdpbjMyIGhhY2tzIGZyb20gPFJvYl9UdWxsb2hAdGl2b2xpLmNvbT4uCgkqIHBvc2l4L2dsb2IuYyBbV0lOMzJdOiBEb24ndCBpbmNsdWRlIDxwd2QuaD47IGRvbid0IHVzZSBkX2lubzsKCXVzZSB2b2lkICogZm9yIG15X3JlYWxsb2M7IGluY2x1ZGUgPG1hbGxvYy5oPiBmb3IgYWxsb2NhLgoJKGdsb2IpIFtXSU4zMl06IFVzZSAiYzovdXNlcnMvZGVmYXVsdCIgZm9yIH4gaWYgbm8gSE9NRSB2YXJpYWJsZS4KCSogcG9zaXgvZm5tYXRjaC5oIFtXSU4zMl06IFVzZSBwcm90b3R5cGVzIGV2ZW4gaWYgWyFfX1NURENfX10uCgkqIHBvc2l4L2dsb2IuaDogTGlrZXdpc2UuCgpTYXQgSnVsIDIwIDEzOjI4OjUyIDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC9zZWxlY3QuYyAoX19zZWxlY3QpOiBEb24ndCBwb2xsIG9uIHRoZSBsYXN0CgljYWxsIF9faW9fc2VsZWN0IHVubGVzcyB0aGVyZSdzIG9ubHkgYSBzaW5nbGUgZGVzY3JpcHRvciwgYXMgZWFjaAoJZGVzY3JpcHRvciBub3cgaGFzIGl0cyBvd24gcmVwbHkgcG9ydC4KCUlmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgZGVzY3JpcHRvciwganVzdCB1c2UgaXRzIHJlcGx5IHBvcnQgZm9yCglldmVyeXRoaW5nIGFuZCBkb24ndCBib3RoZXIgY3JlYXRpbmcgdGhlIHBvcnQgc2V0LgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvdW5hbWUuYyAodW5hbWUpOiBEZXJlZiBVTkFNRSB0byBnZXQgbm9kZW5hbWUuCgk8dW5pc3RkLmg+OiBOZXcgaW5jbHVkZS4KCgkqIHN5c2RlcHMvbWFjaC9saWJjLWxvY2suaCAoX19saWJjX2xvY2tfZGVmaW5lKTogQmFja3NsYXNoaWZ5Cgljb250aW51YXRpb24gbGluZS4KClNhdCBKdWwgMjAgMDc6MTU6MzMgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGNyeXB0L01ha2VmaWxlLCBjcnlwdC9ub2NyeXB0LmM6IFJlbW92ZWQuICBJdCBpcyBpbGxlZ2FsIHRvIGV4cG9ydAoJZnJvbSB0aGUgVVNBIGFueSBzb2Z0d2FyZSB0aGF0IGV2ZW4gbWFrZXMgaXQgZWFzeSB0byBkcm9wIGluIGFuCgllbmNyeXB0aW9uIG1vZHVsZSBvZiBmb3JlaWduIG9yaWdpbi4KCSogTWFrZXJ1bGVzIChjcnlwdG9iamRpcik6IFZhcmlhYmxlIHJlbW92ZWQuCgkoJChsaWJkaXIpL2xpYmMuc28pOiBSZW1vdmUgZGVwIG9uIGxpYmNyeXB0LnNvJChsaWJjcnlwdC5zby12ZXJzaW9uKS4KCSogTWFrZWZpbGUgKHN1YmRpcnMpOiBSZW1vdmUgY3J5cHQuCgpGcmkgSnVsIDE5IDE1OjQ1OjIwIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbG9jYWxlL0MtbWVzc2FnZXMuYyAoX25sX0NfTENfTUVTU0FHRVMpOiBBZGQgbWlzc2luZyBLbGVlbmUKCW9wZXJhdG9yIHRvIHllc2V4cHIgYW5kIG5vZXhwciBzdHJpbmcuCgpGcmkgSnVsIDE5IDE1OjEwOjM3IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBzdW5ycGMveGRyX21lbS5jICh4ZHJtZW1fcHV0bG9uZyk6IERvbid0IGNhc3QgTFAgdG8gaW50MzIgKHRoZQoJb2xkIGNvZGUgd291bGQgaGF2ZSBmYWlsZWQgb24gYSBiaWctZW5kaWFuIDY0LWJpdCBhcmNoaXRlY3R1cmUpLgoJKiBzdW5ycGMveGRyX3N0ZGlvLmMgKHhkcnN0ZGlvX3B1dGxvbmcpOiBEaXR0by4KCgkqIHN1bnJwYy94ZHIuYyAoeGRyX2ludCk6IEhhbmRsZSBYRFJfRlJFRSBjYXNlLgoJKHhkcl91X2xvbmcpOiBVc2Ugc3dpdGNoIGluc3RlYWQgb2YgY2hhaW4gb2YgaWYtc3RhdGVtZW50cy4KCVJlbW92ZSBncmF0aXRvdXMgcGFyZW50aGVzZXMgYXJvdW5kIHJldHVybiBleHByZXNzaW9ucy4KCSh4ZHJfZW51bSk6IE9wZW4gY29kZSBjYXNlIHdoZXJlIElOVF9NQVg8TE9OR19NQVguCgoJKiBzdW5ycGMvc3ZjLmMgKHN2Y19nZXRyZXFzZXQpOiBJbmNyZW1lbnQgU09DSyBieSAzMiwgbm90IE5GREJJVFMuCgoJKiBzdW5ycGMvcG9ydG1hcC5jIChyZWdfc2VydmljZSk6IERlY2xhcmUgQU5TIGFuZCBQT1JUIGFzIGxvbmcsCglub3QgaW50LgoKRnJpIEp1bCAxOSAxNjo1Njo0MSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogZGxmY24uaCwgZGIuaDogTmV3IHdyYXBwZXIgaGVhZGVycy4KCgkqIHBvc2l4L2dsb2IuaCBbIV9BTUlHQSAmJiAhVk1TXTogQ2hlY2sgdGhpcyBpbnN0ZWFkIG9mIGp1c3QgWyFfQU1JR0FdCglmb3IgYHN0cnVjdCBzdGF0OycgZm9yd2FyZCBkZWNsLgoKRnJpIEp1bCAxOSAyMjoyNToxOSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxvY2FsZS9pc28tNDIxNy5kZWY6IEFkZCBzb21lIG1vcmUgc3RhbmRhcmRpemVkIGN1cnJlbmN5CglzeW1ib2xzLgoKRnJpIEp1bCAxOSAxMzoxODowMiAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogaHVyZC9yZXBvcnQtd2FpdC5jIChkZXNjcmliZV9udW1iZXIpOiBVc2UgdW5zaWduZWQgbG9uZyBpbnQgZm9yIEouCgpUaHUgSnVsIDE4IDEyOjMzOjU3IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGJhYWxwZXJhemltLmZyb2IuY29tPgoKCSogUnVsZXMgKGR1bW15Lm8sIGVtcHR5Lm8pOiBUYXJnZXRzIHJlbW92ZWQuCgkoZHVtbXkuYywgZW1wdHkuYyk6IE5ldyB0YXJnZXRzIHJlcGxhY2UgdGhlbS4KClRodSBKdWwgMTggMTE6NDI6MzkgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGNyeXB0L01ha2VmaWxlIChsaWItbm9yYW5saWIpOiBEZXBlbmQgb24KCSQob2JqcGZ4KWxpYmNyeXB0LnNvJChsaWJjcnlwdC5zby12ZXJzaW9uKS4KCShzdWJkaXIpOiBGaXggbmFtZS4KClRodSBKdWwgMTggMDQ6MzM6MjEgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAYmFhbHBlcmF6aW0uZnJvYi5jb20+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC9lcnJub3MuYXdrOiBNb3ZlIEVXT1VMREJMT0NLIGNoZWNrIGJlZm9yZSBlcnJubz09MAoJY2hlY2suICBtaWIncyBjbHVlbGVzcyBoYWNraW5nIGJyb2tlIGl0LgoKVGh1IEp1bCAxOCAwNDoyNzoyMSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogTWFrZXJ1bGVzICgkKGxpYmRpcikvbGliYy5zbyk6IEFkZCBtaXNzaW5nIC8gYWZ0ZXIgJChjcnlwdG9iamRpcikuCgpXZWQgSnVsIDE3IDEwOjU0OjIwIDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBtaXNjL3N5cy91c3RhdC5oOiBOZXcgZmlsZS4KCSogbWlzYy91c3RhdC5oOiBEaXR0by4KCSogc3lzZGVwcy9nZW5lcmljL3VzdGF0Yml0cy5oOiBEaXR0by4KCSogc3lzZGVwcy9zdHViL3VzdGF0LmM6IERpdHRvLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC91c3RhdGJpdHMuaDogRGl0dG8uCgkqIG1pc2MvTWFrZWZpbGUgKGhlYWRlcnMpOiBNZW50aW9uIHVzdGF0LmgsIHN5cy91c3RhdC5oLCBhbmQKCXVzdGF0Yml0cy5oLgoJKHJvdXRpbmVzKTogTWVudGlvbiB1c3RhdC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL3N0YXJ0LlM6IE1vdmUgdG8gLi4uCgkqIHN5c2RlcHMvYWxwaGEvZWxmL3N0YXJ0LlM6IGhlcmUuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxscy5saXN0OiBNZW50aW9uIGtsb2djdGwgaW4KCWFscGhhYmV0aWNhbGx5IGNvcnJlY3QgcGxhY2UuICBNZW50aW9uIHVzdGF0LgoKCSogc3lzZGVwcy91bml4L2FscGhhL3N5c2RlcC5TOiBNYWtlIGVycm5vIGEgYnNzIHN5bWJvbCwgbm90IGEKCWNvbW1vbiBzeW1ib2wgKG1ha2VzIGVycm5vIGFjY2Vzc2libGUgZnJvbSBnZGIpLgoKCSogbG9naW4vcHV0dXRsaW5lX3IuYyAocHV0dXRsaW5lX3IpOiBUZXN0IHV0X2lkIGluIHJlcG9zaXRpb25pbmcKCXRlc3QsIG5vdCB1dF90eXBlLgoKCSogbG9naW4vbG9nd3RtcC5jIChsb2d3dG1wKTogUmVpbXBsZW1lbnRlZC4gIE11c3QgZW5zdXJlIHRoYXQgYQoJcmVjb3JkIGFsd2F5cyBnZXRzIGFwcGVuZGVkIGF0IGVuZCBvZiBmaWxlICh3dG1wIGlzIGEgbG9nIGZpbGUsCglhZnRlciBhbGwpLiAgU2V0IHV0X3R5cGUgdG8gREVBRF9QUk9DRVNTIGlmIG5hbWUgaXMgZW1wdHkuCgoJKiBsb2dpbi9nZXR1dGlkX3IuYyAoZ2V0dXRpZF9yKTogSGFuZGxlIHNlYXJjaCBmb3IgVVRfVFlQRSBpbgoJc2VwYXJhdGUgbG9vcCBmcm9tIHNlYXJjaCBmb3IgVVRfSUQuICBGaXggY29kZSBzbyBpdCBpcyBpbgoJc3luYyB3aXRoIFVuaXggbWFuIHBhZ2UuCgoJKiBsb2dpbi9nZXR1dGxpbmVfci5jIChnZXR1dGxpbmVfcik6IFN0b3Agc2VhcmNoaW5nIG9ubHkgaWYKCXV0X2xpbmUgbWF0Y2hlcyBhbmQgdHlwZSBpcyBlaXRoZXIgVVNFUl9QUk9DRVNTIG9yIExPR0lOX1BST0NFU1MuCgpUdWUgSnVsIDE2IDE1OjA2OjE4IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uZXRpbmV0L2luLmg6IEJhc2Ugb24gPGxpbnV4L2luLmg+IHRvCglhdm9pZCBkdXBsaWNhdGUgZGVjbGFyYXRpb25zLgoKU3VuIEp1bCAxNCAxOTowODo1NSAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogbWFudWFsL21haW50LnRleGkgKFN1cHBvcnRlZCBDb25maWd1cmF0aW9ucyk6IEFkZCBhbHBoYS1nbnUtbGludXgKCWFuZCBhbHBoYS1nbnUtbGludXhlY29mZiB0YXJnZXRzLgoKRnJpIEp1bCAxMiAxNjo1ODo0NCAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0aW5ldC9pbi5oOiBEZWNsYXJlIGJpbmRyZXN2cG9ydCgpLgoKU2F0IEp1biAyMiAyMzozMDowNyAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogcmVzb2x2L3Jlc19zZW5kLmMgKHJlc19zZW5kKTogRGVjbGFyZSBGUk9NTEVOIGFzIHNpemVfdCBpbnN0ZWFkCglvZiBpbnQuCgoJKiByZXNvbHYvcmVzX2NvbXAuYyAocmVzX2hub2spOiBVc2UgZW1wdHkgc3RhdGVtZW50IGluIHBsYWNlCglvZiBOVUxMICh3aGljaCBnZW5lcmF0ZXMgYSAidXNlbGVzcyBleHByZXNzaW9uIiB3YXJuaW5nIGluCglnY2MpLgoKV2VkIEp1bCAxNyAyMzo1NjozNSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBiYWFscGVyYXppbS5mcm9iLmNvbT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL01ha2VmaWxlICgkKGNvbW1vbi1vYmpwZngpZXJybm9zLmQpOiBSZXBsYWNlIC4uLwoJd2l0aCAkKC4uKSBpbiBvdXRwdXQuCgpXZWQgSnVsIDE3IDIxOjUzOjQ1IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBlbGYvTWFrZWZpbGUgKGRsLXJvdXRpbmVzKTogQWRkIGRsLWNhY2hlLgoJKiBlbGYvZGwtY2FjaGUuYzogTmV3IGZpbGUuCgkqIGVsZi9kbC1sb2FkLmMgKF9kbF9tYXBfb2JqZWN0KTogQ2hlY2sgY2FjaGUgYmVmb3JlIGRlZmF1bHQgcGF0aC4KCldlZCBKdWwgMTcgMjA6NDE6MzAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzdGRpby1jb21tb24vdmZzY2FuZi5jOiBNYWpvciBjaGFuZ2UuICBOb3cgcmVhZCBjaGFyYWN0ZXIKCWZyb20gc3RyZWFtIG9ubHkgaWYgbmVlZGVkLiAgQmVmb3JlIGl0IHdhcyByZWFkIGFmdGVyIHRoZQoJcHJldmlvdXMgY2hhcmFjdGVyIHdhcyB1c2VkLgoJQnVnIHJlcG9ydGVkIGJ5IE1hcnRpbiBHb2lrIDxnb21hMDAwMkBGSC1LYXJsc3J1aGUuREU+CgoJKiBzdGRpby1jb21tb24vdHN0c2NhbmYuYzogQ2hhbmdlIHRlc3QgcHJvZ3JhbSBzbyB0aGF0IHJldHVybgoJdmFsdWUgaXMgIT0gMCBpZiBvbmUgdGVzdCBmYWlsZWQuCgpXZWQgSnVsIDE3IDE3OjA4OjQ4IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL202OGsvTWFrZWZpbGUgKGNyeXB0KTogVmFyaWFibGUgcmVtb3ZlZC4KCSogc3lzZGVwcy9zcGFyYy9NYWtlZmlsZTogTGlrZXdpc2UuCgoJKiB2ZXJzaW9uLmggKFZFUlNJT04pOiBVcGRhdGUgdG8gMS45My4KCgkqIE1ha2VydWxlcyAoJChsaWJkaXIpL2xpYmMuc28pOiBEZXBlbmQgb24KCSQoY29tbW9uLW9ianBmeClsaWJjcnlwdC5zbyQobGliY3J5cHQuc28tdmVyc2lvbikuCgoJKiBjcnlwdC9ub2NyeXB0LmM6IE5ldyBmaWxlLgoJKiBNYWtlZmlsZSAoc3ViZGlycyk6IEFkZCBjcnlwdC4KCSogY3J5cHQvTWFrZWZpbGU6IE5ldyBmaWxlLgoKCSogTWFrZXJ1bGVzIChzb3ZlcnNpb25zLm1rKTogTW92ZSB0aGlzIHRhcmdldCwgaW5jbHVkZSBvZiBpdCwgYW5kCglpbmNsdWRlIG9mIHZlcnNpb24ubWsgdG8gLi4uCgkqIE1ha2Vjb25maWc6IC4uLiBoZXJlLgoJKHNvdmVyc2lvbnMubWspOiBEZXBlbmQgb24gTWFrZWNvbmZpZyBpbnN0ZWFkIG9mIE1ha2VydWxlcy4KCgkqIHNobGliLXZlcnNpb25zICgqLSotKik6IFNldCBsaWJjcnlwdD0wLgoKV2VkIEp1bCAxNyAxMToyOToyNiAxOTk2ICBNaWxlcyBCYWRlciAgPG1pbGVzQGdudS5haS5taXQuZWR1PgoKCSogc3RkaW8vbGluZXdyYXAuYyAobHd1cGRhdGUpOiBGaXggYm91bmRhcnkgY29uZGl0aW9uIHdoZXJlIGEKCXdvcmQgZXh0ZW5kcyByaWdodCB1cCB0byBybWFyZ2luLgoKCSogc3RkaW8vbGluZXdyYXAuYyAobHd1cGRhdGUpOiBXaGVuIHdlJ3ZlIGRvbmUgYSB3b3JkIHdyYXAgYW5kCglvdXRwdXQgdGhlIHdyYXAgbWFyZ2luLCBzZXQgcG9pbnRfY29sIHRvIHdtYXJnaW4uCglVc2UgbmVnYXRpdmUgcG9pbnRfY29sIHRvIGRlYWwgd2l0aCBhIHdtYXJnaW4gb2YgMC4KCShsaW5lX3dyYXBfcG9pbnQpOiBSZXR1cm4gMCBmb3IgYSBuZWdhdGl2ZSBwb2ludF9jb2wuCgkobGluZV93cmFwX3N0cmVhbSk6IE1ha2Ugd21hcmdpbiBzc2l6ZV90LgoJKiBzdGRpby9saW5ld3JhcC5oIChzdHJ1Y3QgbGluZV93cmFwX2RhdGEpOiBNYWtlIHdtYXJnaW4gJgoJcG9pbnRfY29sIHNzaXplX3QuCgkobGluZV93cmFwX3N0cmVhbSk6IE1ha2Ugd21hcmdpbiBzc2l6ZV90LgoJKGxpbmVfd3JhcF9wb2ludCk6IFJldHVybiAwIGZvciBhIG5lZ2F0aXZlIHBvaW50X2NvbC4KCldlZCBKdWwgMTcgMDI6NDM6MjggMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHNobGliLXZlcnNpb25zICgqLSotZ251Kik6IFNldCBsaWJjPTAuMAoKVHVlIEp1bCAxNiAwMTo1Mjo0MiAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvbTY4ay9kbC1tYWNoaW5lLmg6IEZvbGxvdyBKdWwgMTQgY2hhbmdlIGluCglzeXNkZXBzL2kzODYvZGwtbWFjaGluZS5oLgoKVHVlIEp1bCAxNiAwMDoxODoxOSAxOTk2ICBNaWxlcyBCYWRlciAgPG1pbGVzQGdudS5haS5taXQuZWR1PgoKCSogc3RkaW8vbGluZXdyYXAuYyAoX19saW5lX3dyYXBfdXBkYXRlKTogQWRkIGhhY2tlcnkgZnJvbSBmbHNoZnAKCXRvIGZpZGRsZSBfX3B1dF9saW1pdCBpbiBjb25qdW5jdGlvbiB3aXRoIF9fbGluZWJ1Zl9hY3RpdmUuCgpUdWUgSnVsIDE2IDAwOjE0OjA3IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogc3lzZGVwcy91bml4L2luZXQvc3lzY2FsbHMubGlzdCAoY29ubmVjdCwgc2VuZCk6IEFkZCB1bmRlcnNjb3JlcwoJdG8gdGhlIHN0cm9uZyBuYW1lLCBub3QgdGhlIGZpbGUgbmFtZS4KClR1ZSBKdWwgMTYgMTY6NDM6NTggMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGNzdS9pbml0ZmluaS5jOiBNb3JlIG1hZ2ljLiAgRGV0ZWN0IGlmIC5lbmQgaXMgcHJvZHVjZWQgYW5kIHB1dCBpdAoJaW4gdGhlIG91dHB1dCBpZmYgdGhlIGNvbXBpbGVyIGRvZXMuCgoJKiBlbGYvZGwtbG9va3VwLmMgKF9kbF9sb29rdXBfc3ltYm9sKTogQXZvaWQgc2l6ZW9mIGR5bmFtaWMgYXV0byBhcnJheQoJYmVjYXVzZSB0aGF0IGlzIGJyb2tlbiBvbiBhbHBoYS4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL21tYXAuYzogVXNlIHNhbWUgaW5oZXJpdGFuY2UgYXJnIGluIHNlY29uZCB2bV9tYXAKCWNhbGwgYXMgaW4gZmlyc3QuCgoJKiBNYWtlcnVsZXMgKG1ha2UtbGluayk6IEluc3RhbGwgdGhlIG5ldyBsaW5rIHdpdGggYXRvbWljIG12IC1mIGluCgljYXNlIGxuIGl0c2VsZiByZXF1aXJlcyB0aGUgbGlicmFyeSBiZWluZyBpbnN0YWxsZWQuCgpUdWUgSnVsIDE2IDAwOjMxOjMxIDE5OTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHRhbXUuZWR1PgoKCSogc3lzZGVwcy9hbHBoYS9kbC1tYWNoaW5lLmg6IE1pcnJvciBSb2xhbmQncyBjaGFuZ2VzIHRvCglpMzg2L2RsLW1hY2hpbmUuaCBvZiA5NjA3MTMuCgoJKiBzeXNkZXBzL2dlbmVyaWMvZGwtc3lzZGVwLmM6ICBJbmNsdWRlIDxzeXMvbW1hbi5oPi4KCShfZGxfc3lzZGVwX3JlYWRfd2hvbGVfZmlsZSk6IEZpeCByZXN1bHQgdmFyaWFibGUgZGVjbGFyYXRpb24uCgpUdWUgSnVsIDE2IDAwOjUzOjU3IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC91bmFtZS5jOiBDYWxsIF9fZ2V0aG9zdG5hbWUgdG8gZmlsbCBpbiB0aGUKCWBub2RlbmFtZScgbWVtYmVyLgoKTW9uIEp1bCAxNSAxNzoyMzo1MyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN0ZGlvLWNvbW1vbi92ZnByaW50Zi5jICh2ZnByaW50Zik6IENhbGwgcGFyc2Vfb25lX3NwZWMKCXdpdGggcG9pbnRlciB0byBsb2NhbCB2YXJpYWJsZSBpbnN0ZWFkIG9mIE5VTEwuCgoxOTk2LTA3LTE1ICBQYXVsIEVnZ2VydCAgPGVnZ2VydEB0d2luc3VuLmNvbT4KCgkqIHRpbWUvc3RyZnRpbWUuYyAoc3RyZnRpbWUpOiBEb24ndCBwYXNzIGVtcHR5IG1hY3JvIGFyZ3VtZW50IHRvIGBhZGQnLgoKU2F0IEp1bCAxMyAwOTo1MzozOSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIChzeXNkZXBfcm91dGluZXMpOiBSZW1vdmUgbmFtZXMKCXRoYXQgYXJlIGFscmVhZHkgYWRkZWQgYnkgb3RoZXIgbWVhbnMuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxscy5saXN0OiBBZGQgbW9yZSBFWFRSQSdzIGluIHRoZQoJY2FsbGVyIGNvbHVtbiB0byBnZXQgdGhvc2Ugc3lzY2FsbHMgYWRkZWQgYXV0b21hZ2ljYWxseS4KCk1vbiBKdWwgMTUgMTI6MjQ6NTQgMTk5NiAgTWlsZXMgQmFkZXIgIDxtaWxlc0BnbnUuYWkubWl0LmVkdT4KCgkqIGxvZ2luL2xvZ291dC5jIChsb2dvdXQpOiBJbml0aWFsaXplIERBVEEgdG8gYSBzdGF0ZSB0aGF0IHdpbGwKCW1ha2Ugc2V0dXRlbnRfciBoYXBweS4KClN1biBKdWwgMTQgMDE6NTE6MzkgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pIFtFTEZfTUFDSElORV9ERUJVR19TRVRVUF06IFVzZSB0aGlzIG1hY3JvCglpbnN0ZWFkIG9mIHNldHRpbmcgdGhlIERUX0RFQlVHIHBvaW50ZXIuCgoJKiBjc3UvaW5pdGZpbmkuYyAoX2luaXQsIF9maW5pKTogR2VuZXJhdGUgLmVuZCBkaXJlY3RpdmVzIGFmdGVyCglzdGFuZGFsb25lIHByb2xvZ3VlcyBhbmQgZmlsdGVyIHRoZW0gb3V0IGZyb20gZXBpbG9ndWVzLgoKCSogTWFrZWNvbmZpZyAocnRsZC1pbnN0YWxsZWQtbmFtZSk6IFNldCB0byBsZC5zby4xLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZSAocnRsZC1pbnN0YWxsZWQtbmFtZSk6IFZhcmlhYmxlCglyZW1vdmVkLgoKCSogbWFudWFsL01ha2VmaWxlIChnbGliYy10YXJnZXRzKTogUmVtb3ZlIHN1YmRpcl8gZnJvbSBlbHRzLgoKCSogc3lzZGVwcy9nZW5lcmljL2RsLXN5c2RlcC5jIChfZGxfc3lzZGVwX3JlYWRfd2hvbGVfZmlsZSk6IE5ldyBmbi4KCgkqIE1ha2VUQUdTIChleHRyYWN0KTogUGFzcyAtLWFkZC1jb21tZW50cz1UUkFOUy4KCSogc3lzZGVwcy9nbnUvZXJybGlzdC5hd2s6IFdyaXRlIGNvbW1lbnRzIGludG8gdGhlIG91dHB1dCB3aXRoIHRoZQoJZGVzY3JpcHRpdmUgcGFyYWdyYXBocyBmcm9tIHRoZSBtYW51YWwgcHJlY2VkZWQgYnkgVFJBTlMuCgoJKiBlbGYvcnRsZC5jIChSRVNPTFZFKTogVXNlIHRoZSBkbCdzIGxvYWQgYWRkcmVzcywgbm90IGEgY29uc3RhbnQgemVybyEKCShfZGxfc3RhcnQpOiBNb3ZlIFJFU09MVkUgZGVmbiBpbnNpZGUgdGhpcyBmdW5jdGlvbiBhbmQgI2luY2x1ZGUKCSJkeW5hbWljLWxpbmsuaCIgYSBzZWNvbmQgdGltZSB0aGVyZS4KCVtSVExEX1NUQVJUXTogTW92ZSB1c2Ugb2YgdGhpcyBhZnRlciBfZGxfc3RhcnQgZnVuY3Rpb24uCgoJKiBlbGYvZGwtcmVsb2MuYzogSW5jbHVkZSAiZHluYW1pYy1saW5rLmgiIGF0IGZpbGUgc2NvcGUuCgoJKiBlbGYvcnRsZC5jOiBJbmNsdWRlIDxzdHJpbmcuaD4uCgoJKiBlbGYvZHluYW1pYy1saW5rLmggKEVMRl9EWU5BTUlDX0RPX1JFTCwgRUxGX0RZTkFNSUNfRE9fUkVMQSwKCUVMRl9EWU5BTUlDX1JFTE9DQVRFKTogTm8gbG9uZ2VyIHRha2UgUkVTT0xWRSBhcmd1bWVudC4KCUNvbmRpdGlvbmFsaXplIGRlZm5zIG9uIFtSRVNPTFZFXS4KCSogZWxmL2RvLXJlbC5oIChlbGZfZHluYW1pY19kb19yZWwpOiBMaWtld2lzZS4KCSogc3lzZGVwcy9pMzg2L2RsLW1hY2hpbmUuaCAoZWxmX21hY2hpbmVfcmVsKTogTGlrZXdpc2UuCglJbnN0ZWFkIHVzZSBSRVNPTFZFIG1hY3JvIHdpdGggc2FtZSBhcmdzLgoJKGVsZl9tYWNoaW5lX3JlbCk6IENvbmRpdGlvbmFsaXplIGRlZm4gb24gW1JFU09MVkVdLgoJKiBlbGYvZGwtcmVsb2MuYyAoUkVTT0xWRSk6IE5ldyBtYWNybywgZGVmaW5lIGJlZm9yZSBpbmNsdWRpbmcKCSJkeW5hbWljLWxpbmsuaCIuICBJdCByZXBsYWNlcyBgcmVzb2x2ZScgbG9jYWwgZnVuY3Rpb24uCgkqIGVsZi9kbC1ydW50aW1lLmM6IExpa2V3aXNlLgoJKiBlbGYvcnRsZC5jOiBMaWtld2lzZS4KCgkqIGVsZi9kbC1kZXBzLmMgKF9kbF9tYXBfb2JqZWN0X2RlcHMpOiBTdGFydCBUQUlMUCBhdCBsYXN0IHByZWxvYWQuCgoJKiBlbGYvZGwtb3Blbi5jIChfZGxfb3Blbik6IEZvcmNlIGFuIGluZGlyZWN0IGNhbGwgZm9yCglfZGxfcmVsb2NhdGVfb2JqZWN0IHNvIHRoZXJlIGlzIG5vIGNoYW5jZSBhIFBMVCBmaXh1cCB3aWxsIGJlIGRvbmUKCWFuZCBjbG9iYmVyIF9kbF9nbG9iYWxfc2NvcGUgYmVmb3JlIG91ciBjYWxsIGhhcHBlbnMuCgoJKiBzeXNkZXBzL2kzODYvZnB1L19fbWF0aC5oICh0YW4pOiBDb3JyZWN0IG91dHB1dCBjb25zdHJhaW50IGZyb20gPXUKCXRvID10OyBtdXN0IG9wZXJhdGUgb24gdG9wIG9mIGZwIHJlZyBzdGFjaywgbm90IHNlY29uZCBmcm9tIHRvcC4KCUNvcnJlY3QgaW5wdXQgY29uc3RyYWludCB0byAwIGZyb20gdDsgbXVzdCBiZSBleHBsaWNpdCB3aGVuIGlucHV0IGFuZAoJb3V0cHV0IGFyZSB0aGUgc2FtZSByZWdpc3Rlci4KCShmbG9vcik6IFVzZSBfX3ZvbGF0aWxlIGluc3RlYWQgb2Ygdm9sYXRpbGUuCgkoY2VpbCk6IExpa2V3aXNlLgoKCSogbWFudWFsL01ha2VmaWxlICgkKG9ianBmeClzdGFtcCUtJChzdWJkaXIpKTogU2VwYXJhdGUgcnVsZSBmcm9tCglvdGhlciB0YXJnZXRzLgoKU2F0IEp1bCAxMyAyMzo1MDoxNyAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogbWFudWFsL01ha2VmaWxlIChsaWIpOiBOZXcgcGhvbnkgdGFyZ2V0LiAgRGVwZW5kIG9uIHN0YW1wIGZpbGVzLgoJKCQob2JqcGZ4KXN0YW1wJS0kKHN1YmRpcikpOiBOZXcgcnVsZSB0byBjcmVhdGUgdGhlbSB3aGVuIG5lY2Vzc2FyeS4KCjE5OTYtMDctMTMgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QHR3aW5zdW4uY29tPgoKCSogdGltZS9zdHJmdGltZS5jIChzdHJmdGltZSk6IFVzZSBzcGFjZSBwYWRkaW5nIGZvciAlZSwgJWssICVsLAoJdG8gbWF0Y2ggRW1hY3MgZm9ybWF0LXRpbWUtc3RyaW5nIHNwZWNpZmljYXRpb24uCgkoRE9fTlVNQkVSX1NQQUNFUEFEKTogUmVuYW1lZCBmcm9tIERPX05VTUJFUl9OT1BBRC4KClNhdCBKdWwgMTMgMjA6MTc6MzggMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGVsZi9kbC1kZXBzLmMgKF9kbF9tYXBfb2JqZWN0X2RlcHMpOiBUYWtlIG5ldyBhcmdzIFBSRUxPQURTIGFuZAoJTlBSRUxPQURTLCB2ZWN0b3Igb2YgYHN0cnVjdCBsaW5rX21hcCAqJ3M7IGFkZCB0aGVtIHRvIHRoZSBzZWFyY2hsaXN0CgliZXR3ZWVuIE1BUCBhbmQgaXRzIGRlcHMuCgkqIGVsZi9saW5rLmg6IEZpeCBkZWNsLgoJKiBlbGYvcnRsZC5jIChkbF9tYWluKTogSWYgbm90IHNlY3VyZSwgcGFyc2UgTERfUFJFTE9BRCBmb3IKCWNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIG5hbWVzLCBtYXAgdGhvc2UgYW5kIHBhc3MgdmVjdG9yIG9mIHB0cnMgYXMKCVBSRUxPQURTIGxpc3QgdG8gX2RsX21hcF9vYmplY3RfZGVwcy4KCSogZWxmL2RsLXJ1bnRpbWUuYyAoX2RsX29iamVjdF9yZWxvY2F0aW9uX3Njb3BlKTogUGFzcyBuZXcgYXJncyB0bwoJX2RsX21hcF9vYmplY3RfZGVwcyB3aXRoIGVtcHR5IHByZWxvYWQgbGlzdC4KCSogZWxmL2RsLW9wZW4uYyAoX2RsX29wZW4pOiBMaWtld2lzZS4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2RsLXN5c2RlcC5jIChfZGxfc3lzZGVwX29wZW5femVyb19maWxsKTogRnVuY3Rpb24KCXJlbW92ZWQuCgkoX19tbWFwKTogUGFzcyBNQUNIX1BPUlRfTlVMTCBmb3IgbWVtb2JqIHBvcnQgd2hlbiAoZmxhZ3MgJiBNQVBfQU5PTikuCgkqIHN5c2RlcHMvZ2VuZXJpYy9kbC1zeXNkZXAuYyAoX2RsX3N5c2RlcF9vcGVuX3plcm9fZmlsbCk6CglDb25kaXRpb25hbGl6ZSBkZWZuIG9uIFshIE1BUF9BTk9OXS4KCSogZWxmL2RsLW1pbmltYWwuYyAobWFsbG9jKTogQ29uZGl0aW9uYWxpemUgdXNlIG9mIF9kbF96ZXJvZmQKCW9uIFshIE1BUF9BTk9OXS4KCSogZWxmL3J0bGQuYyAoZGxfbWFpbik6IExpa2V3aXNlLgoJKiBlbGYvZGwtbG9hZC5jIChfZGxfemVyb2ZkKTogQ29uZGl0aW9uYWxpemUgZGVmbiBvbiBbISBNQVBfQU5PTl0uCgkoX2RsX21hcF9vYmplY3RfZnJvbV9mZCk6IENvbmRpdGlvbmFsaXplIGluaXRpYWxpemF0aW9uIG9mIF9kbF96ZXJvZmQuCgoJKiBlbGYvZGwtZmluaS5jIChfZGxfZmluaSk6IFNraXAgZmluYWxpemVyIGZvciBleGVjdXRhYmxlIGl0c2VsZi4KClNhdCBKdWwgMTMgMDI6NDc6NTMgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIHN0ZGxpYi9yYW5kb20uYyAoX19yYW5kb20pOiBEZWNsYXJlIGFzIGludDMyX3QgdG8gYmUgaW4gc3luYwoJd2l0aCBkZWNsYXJhdGlvbi4KCgkqIHNvY2tldC9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBzb2NrZXRiaXRzLmguCgoJKiBtaXNjL21udGVudC5jIChlbmRtbnRlbnQpOiBBbGxvdyBmb3IgTlVMTCBzdHJlYW0uICBTdW5PUyBkb2VzCglpdCB0aGF0IHdheS4KCgkqIGdycC9pbml0Z3JvdXBzLmMgKGluaXRncm91cHMpOiBBZGQgZ3JvdXBzIHRoYXQgdXNlciBpcyBhIG1lbWJlcgoJb2YsIG5vdCB0aGUgb25lcyBoZSBpcyBfbm90XyBhIG1lbWJlciBvZi4KCgkqIG5zcy9uc3N3aXRjaC5jIChrbm93bl9jb21wYXJlKTogTWFrZSBrbm93bl9jb21wYXJlKCkgYSBzdGF0aWMKCWluc3RlYWQgb2YgYSBsb2NhbCBmdW5jdGlvbi4gIFRoZSBsYXR0ZXIgYXJlIGRpZmZpY3VsdCB0byBkZWJ1ZwoJYW5kIHNsb3cgdG8gZXhlY3V0ZSBvbiBjZXJ0YWluIHBsYXRmb3Jtcy4KCgkqIHN5c2RlcHMvcG9zaXgvdHR5bmFtZV9yLmMgKHR0eW5hbWVfcik6IFVzZSBzaXplb2YgKGRldikgLSAxIGluCglwbGFjZSBvZiBzaXplb2YgKGRldikuICBUaGUgc2l6ZSBvZiBhIGxpdGVyYWwgc3RyaW5nIGluY2x1ZGVzIHRoZQoJTlVMIGJ5dGUuCgoJKiBzeXNkZXBzL3VuaXgvZ2V0bG9naW4uYyAoZ2V0bG9naW4pOiBJbml0aWFsaXplIHV0X2ZkIHdpdGggLTEuCgpUaHUgSnVsIDExIDE2OjU5OjEwIDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBtaXNjL21udGVudC5jIChhZGRtbnRlbnQpOiBTZWVrIHRvIGVuZCBvZiBmaWxlIGJlZm9yZSB3cml0aW5nCgllbnRyeS4gIFJldHVybiAxIG9uIGVycm9yLCBub3QgLTEuCgpUdWUgSnVsICA5IDE5OjA4OjA1IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxscy5saXN0OiBNYXJrIGJkZmx1c2ggYXMgRVhUUkEKCXN5c2NhbGwuCgpGcmkgSnVsICA1IDE4OjQ0OjU1IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9pb3Blcm0uYyAocG9ydF90b19jcHVfYWRkcik6IFNpemUKCXNoaWZ0IGFtb3VudCBmb3IgSmVuc2VuIG11c3QgYmUgNSBub3QgNC4KClNhdCBKdWwgMTMgMjA6MDQ6MjggMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHNvY2tldC9zeXMvc29ja2V0LmggKHN0cnVjdCBvc29ja2FkZHIpOiBOZXcgdHlwZS4KClNhdCBKdWwgMTMgMDM6NTA6NTMgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBtaXNjL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBxZWZnY3Z0IGFuZCBxZWZnY3Z0X3IuCgkqIG1pc2MvZWZnY3Z0LmMsIG1pc2MvZWZnY3Z0X3IuYzogQ2hhbmdlIGNvZGUgc28gdGhhdCB0aGUgYGRvdWJsZScKCWFuZCBgbG9uZyBkb3VibGUnIHZlcnNpb25zIGNhbiBiZSBnZW5lcmF0ZWQuCgkqIG1pc2MvcWVmZ2N2dC5jLCBtaXNjL3FlZmdjdnRfci5jOiBOZXcgZmlsZXMuICBEZWZpbmUgbWFjcm9zCglzbyB0aGF0IGluY2x1ZGVkIGVmZ2N2dHssX3J9LmMgZmlsZSBnZW5lcmF0ZSBgbG9uZyBkb3VibGUnCgl2ZXJzaW9ucy4KCSogc3RkbGliL3N0ZGxpYi5oOiBBZGQgcHJvdG90eXBlcyBmb3IgcVtlZmddY3Z0KCkgYW5kIHFbZWZdY3Z0X3IoKQoJZnVuY3Rpb25zLgoKCSogbWFudWFsL3N0YXJ0dXAudGV4aTogRG9jdW1lbnQgbmV3IGdldHN1Ym9wdCBmdW5jdGlvbi4KCSogbWFudWFsL2V4YW1wbGVzL3N1Ym9wdC5jOiBOZXcgZXhhbXBsZSBwcm9ncmFtIGZvciBkb2N1bWVudGluZwoJZ2V0c3Vib3B0IGZ1bmN0aW9uLgoKRnJpIEp1bCAxMiAyMzo1ODozNyAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHN0ZGxpYi9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgZ2V0c3Vib3B0LgoJKiBzdGRsaWIvc3RkbGliLmg6IEFkZCBwcm90b3R5cGUgZm9yIGdldHN1Ym9wdC4KCSogc3RkbGliL2dldHN1Ym9wdC5jOiBOZXcgZmlsZS4gIEltcGxlbWVudCBnZXRzdWJvcHQgZnVuY3Rpb24KCXRvIGhhbmRsZSBzdWJvcHRpb24gcGFyc2luZy4KClRodSBKdWwgMTEgMjA6MDk6NTUgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGluZXQvZ2V0bmV0ZW50X3IuYzogRGVmaW5lIE5FRURfSF9FUlJOTy4KCSogaW5ldC9nZXRuZXRieW5tX3IuYzogTGlrZXdpc2UuCgkqIGluZXQvZ2V0bmV0ZW50LmM6IExpa2V3aXNlLgoJKiBpbmV0L2dldG5ldGJ5YWRfci5jOiBMaWtld2lzZS4KCSogaW5ldC9nZXRuZXRieWFkLmM6IExpa2V3aXNlLgoJKiBpbmV0L2dldG5ldGJ5bm0uYzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL2dlbmVyaWMvcHNlbGVjdC5jOiBJbmNsdWRlIDxzeXMvdGltZS5oPi4KCgkqIG1pc2Mvc3lzL3NlbGVjdC5oOiBJbmNsdWRlIDx0aW1lLmg+IGluc3RlYWQgb2YgPHN5cy90aW1lLmg+IGZvcgoJYHN0cnVjdCB0aW1lc3BlYycuCgoJKiBtYXRoL01ha2VmaWxlIChjYWxscyk6IEFkZCBzX2ZyZXhwLCBzX2xkZXhwLgoJKHJvdXRpbmVzKTogUmVtb3ZlIHRoZW0gYW5kICZmIGZyb20gaGVyZS4KCgkqIHN5cy9zb2NrZXQuaDogTmV3IGZpbGUsIHdyYXBwZXIgZm9yIHNvY2tldC9zeXMvc29ja2V0LmguCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXNlcnZpY2UuYyAoZ2V0c2VydmJ5bmFtZSk6IFRha2Ugc2Vjb25kIGFyZyBQUk9UTwoJYW5kIGNoZWNrIGl0LgoKCSogbnNzL25zc19maWxlcy9maWxlcy1YWFguYzogQ29tbWVudCBmaXguCgpGcmkgSnVsIDEyIDAxOjI4OjM1IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogbnNzL2dldFhYZW50X3IuYyAoR0VURlVOQ19OQU1FX1NUUklORyk6IERlZmluZSB3aXRoIG5hbWUKCW9mIHJlZW50cmFudCBmdW5jdGlvbi4KCShzZXR1cCk6IFBhc3MgYWRkaXRpb25hbCBhcmd1bWVudCB3aXRoIGZ1bmN0aW9uIG5hbWUgd2UgYXJlCglsb29raW5nIGZvci4KCShTRVRGVU5DX05BTUUsIEVOREZVTkNfTkFNRSwgR0VURlVOQ19OQU1FKTogQ2FsbCBzZXR1cCB3aXRoCgluZXcgYXJndW1lbnQge1NFVCxFTkQsR0VUfUZVTkNfTkFNRV9TVFJJTkcuCgoJKiBuc3MvZ2V0WFhlbnQuYyAoR0VURlVOQ19OQU1FKTogUkVTVUxUIG11c3QgYmUgc3RhdGljIGJlY2F1c2UKCXdlIHJldHVybiBhIHBvaW50ZXIuCgpUaHUgSnVsIDExIDE4OjIwOjQ0IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXBhcnNlLmM6IEFkZCBjb21tZW50IGFib3V0IHRoaW5ncyB0byAjZGVmaW5lLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1ob3N0cy5jIChORUVEX0hfRVJSTk8pOiBEZWZpbmUgaXQuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXBhcnNlLmMgKFNUUklOR19GSUVMRCk6IERvbid0IGZsYWcgTlVMIGJlZm9yZQoJdGVybWluYXRvciBjaGFyIGFzIGFuIGVycm9yLgoKCSogbnNzL2dldFhYYnlZWV9yLmMgKFJFRU5UUkFOVF9OQU1FKTogU2V0ICpIX0VSUk5PUCwgbm90IGhfZXJybm8uCgpUaHUgSnVsIDExIDAzOjIxOjEwIDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogY2F0Z2V0cy9nZW5jYXQuYyAod3JpdGVfb3V0KTogTW92ZSBjb2RlIHRvIGRldGVybWluZSBuZXcKCWJlc3Qgc2l6ZSBvdXQgb2YgaW5uZXIgbG9vcC4KClRodSBKdWwgMTEgMDA6MjI6NDAgMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBzeXNkZXBzL2xpYm0taWVlZTc1NC9zX2ZyZXhwbC5jOiBOZXcgZmlsZS4gIGBsb25nIGRvdWJsZScKCWltcGxlbWVudGF0aW9uIG9mIGZyZXhwKCkgZnVuY3Rpb24uCgkqIHN5c2RlcHMvbGlibS1pZWVlNzU0L3NfbGRleHBsLmM6IE5ldyBmaWxlLiAgYGxvbmcgZG91YmxlJwoJaW1wbGVtZW50YXRpb24gb2YgbGRleHAoKSBmdW5jdGlvbi4KCgkqIHN5c2RlcHMvbGlibS1pMzg3L3NfaXNuYW5sLmMgKGlzbmFubCk6IE1hc2sgZXhwbGljaXQgb25lCglvdXQgYmVmb3JlIG9yJ2luZy4KCldlZCBKdWwgMTAgMDU6MjQ6NDAgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIG1pc2MvbW50ZW50LmM6IEluY2x1ZGUgPHN5cy90eXBlcy5oPi4KCShlbmRtbnRlbnQpOiBSZXR1cm4gMSBvbmUgc3VjY2VzcywgMCBvbiBmYWlsdXJlLgoJKGdldG1udGVudCk6IENob3AgbmV3bGluZSBhbmQgaWdub3JlIGVtcHR5IGxpbmVzLgoKTW9uIEp1bCAgOCAyMToxODo0MCAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN5c2RlcHMvbTY4ay9kbC1tYWNoaW5lLmggKFJFU09MVkUpOiBOZXcgbWFjcm8sIGRlZmluZWQKCWRpZmZlcmVudGx5IGJhc2VkIG9uIFtSVExEX0JPT1RTVFJBUF0uCgkoZWxmX21hY2hpbmVfcmVsYSk6IFVzZSBpdCBpbnN0ZWFkIG9mIHRoZSBmbiBwdHIgYXJnIGRpcmVjdGx5LgoKVHVlIEp1bCAgOSAwOTozNzo1NSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogcG9zaXgvZ2xvYi5oIChfX2dsb2Jfb3BlbmRpcl9ob29rLCBfX2dsb2JfcmVhZGRpcl9ob29rLAoJX19nbG9iX2Nsb3NlZGlyX2hvb2spOiBSZW1vdmUgZGVjbHMuCgoJKiBzeXNkZXBzL2dlbmVyaWMvbWFjaGluZS1nbW9uLmg6IERlY2xhcmUgbWNvdW50X2ludGVybmFsLgoKCSogc3lzZGVwcy91bml4L2luZXQvc3lzY2FsbHMubGlzdDogRGVmaW5lIF9fIG5hbWVzIHdpdGggd2VhayBhbGlhc2VzCglmb3Igc2VuZCBhbmQgY29ubmVjdCBzeXNjYWxscy4KCgkqIHNvY2tldC9zeXMvc29ja2V0Lmg6IE5ldyBmaWxlLCB0YWtlbiBmcm9tIG5vbi1zeXNkZXAgcGFydHMgb2YKCWxpbnV4L3N5cy9zb2NrZXQuaDsgYnJlYWsgc3lzZGVwcyBwYXJ0cyBvdXQgaW50byBzb2NrZXRiaXRzLmguCglEZWNsYXJlIF9fIG5hbWVzIGZvciBzZW5kIGFuZCBjb25uZWN0LgoJKiBzeXNkZXBzL2dlbmVyaWMvc29ja2V0Yml0cy5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc29ja2V0Yml0cy5oOiBOZXcgZmlsZS4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL3NvY2tldC5oOiBGaWxlIHJlbW92ZWQuCgkqIHN5c2RlcHMvZ2VuZXJpYy9zeXMvc29ja2V0Lmg6IEZpbGUgcmVtb3ZlZC4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2Nvbm5lY3QuYzogRGVmaW5lIF9fIG5hbWUgYW5kIHdlYWsgYWxpYXMuCgkqIHN5c2RlcHMvbWFjaC9odXJkL3NlbmQuYzogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL21hY2gvbGliYy1sb2NrLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvcmVhZGRpci5jOiBEbyBsb2NraW5nLgoJKiBzeXNkZXBzL3VuaXgvc2Vla2Rpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L3Jld2luZGRpci5jOiAgTGlrZXdpc2UuCgkqIHN5c2RlcHMvdW5peC9jbG9zZWRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy91bml4L2JzZC90ZWxsZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9zZWVrZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9yZWFkZGlyLmM6IExpa2V3aXNlLgoJKiBzeXNkZXBzL21hY2gvaHVyZC9jbG9zZWRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvb3BlbmRpci5jOiBJbml0aWFsaXplIHRoZSBsb2NrLgoJKiBzeXNkZXBzL3VuaXgvb3BlbmRpci5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvZGlyc3RyZWFtLmg6IEluY2x1ZGUgPGxpYmMtbG9jay5oPi4KCShzdHJ1Y3QgX19kaXJzdHJlYW0pOiBBZGQgbG9jayBtZW1iZXIgdXNpbmcgX19saWJjX2xvY2tfZGVmaW5lLgoJKiBzeXNkZXBzL3VuaXgvZGlyc3RyZWFtLmg6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9zdHViL2xpYmMtbG9jay5oIChfX2xpYmNfbG9ja19maW5pKTogTmV3IG1hY3JvLgoKCSogc3RkbGliL21ic3Rvd2NzLmM6IFBhc3MgYWRkcmVzcyBvZiBwb2ludGVyIHRvIG1ic3J0b3djcy4KCgkqIHN0ZGxpYi93Y3N0b21icy5jOiBVc2Ugd2NzcnRvbWJzIGluc3RlYWQgb2YgbWJzcnRvd2NzLgoKVGh1IEp1bCAgNCAwMTozNDowNCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxvY2FsZS9wcm9ncmFtcy9zdHJpbmd0cmFucy5jOiBGaXggdHlwbyBpbiBjb3B5cmlnaHQuCgoJKiBzdGRpby1jb21tb24vcHJpbnRmLXBycy5jOiBBZGQgY2FzdHMgdG8gcHJldmVudAoJc2lnbmVkPC0+dW5zaWduZWQgd2FybmluZ3MuCgoJKiBzdGRpby1jb21tb24vcHJpbnRmLXBhcnNlLmg6IEluaXRpYWxpemUgc3RhdGUgdmFyaWFibGUgYmVmb3JlCgljYWxsaW5nIG1icmxlbi4KCSogc3RkaW8tY29tbW9uL3ByaW50Zi1wcnMuYzogRG9uJ3QgaW5pdGlhbGl6ZSBzdGF0ZSB2YXJpYWJsZSBoZXJlLgoJKiBzdGRpby1jb21tb24vdmZwcmludGYuYzogRG9uJ3QgaW5pdGlhbGl6ZSBzdGF0ZSB2YXJpYWJsZS4KCSh2ZnByaW50Zik6IFdoaWxlIGRldGVybWluaW5nIGxlbmd0aCBvZiBtdWx0aWJ5dGUgc3RyaW5nIGRvbid0Cgl0cnkgdG8gYmUgY2xldmVyIGluIGRldGVybWluaW5nIGNoYXJhY3RlcnMgdG8gdXNlIGZvciBmaXJzdAoJY2FsbC4KCglBZGQgcmVhbCBpbXBsZW1lbnRhdGlvbiBvZiBtdWx0aWJ5dGU8LT53aWRlIGNoYXIgY29udmVyc2lvbgoJZnVuY3Rpb25zLiAgVGhlIGZ1bmN0aW9ucyBhbHdheXMgY29udmVydCBiZXR3ZWVuIHRoZSBmaXhlZCB3aWRlCgljaGFyIGZvcm1hdCAoSVNPIDEwNjQ2IGluIFVDUzQpIGFuZCB0aGUgVVRGOCByZXByZXNlbnRhdGlvbiBvZgoJdGhpcyBjaGFyYWN0ZXIgc2V0LiAgQ29udmVyc2lvbiBiZXR3ZWVuIHRoZSBjdXJyZW50bHkgdXNlZAoJOGJpdCBjaGFyYWN0ZXIgc2V0IGFuZCBJU08gMTA2NDYgd2lsbCBub3QgdGFrZSBwbGFjZS4gIFRoaXMgaXMKCXdoYXQgaWNvbnYoKSBpcyBmb3IuCgkqIHdjc21icy93Y2hhci5oIChtYnN0YXRlX3QpOiBEZWZpbmUgYXMgc3RydWN0dXJlIHRvIHJlcGxhY2UKCWR1bW15IGRlZmluaXRpb24uCglBZGQgb3B0aW1pemVkIHZlcnNpb24gb2YgYG1icmxlbicgZnVuY3Rpb24uCgkqIHdjc21icy9idG93Yy5jIChidG93Yyk6IFJlc3RyaWN0IHJhbmdlIG9mIGxlZ2FsIGNoYXJhY3RlcnMKCXRvIDAuLi4weDdmLgoJKiB3Y3NtYnMvd2N0b2IuYyAod2N0b2IpOiBSZXN0cmljdCByYW5nZSBvZiBsZWdhbCBjaGFyYWN0ZXJzCgl0byAwLi4weDdmLgoJKiB3Y3NtYnMvbWJybGVuLmM6IE1ha2UgbWJybGVuIGEgd2VhayBhbGlhcyBvZiBfX21icmxlbi4KCVRoaXMgaXMgbmVlZGVkIGluIHRoZSB3Y2hhci5oIGhlYWRlci4KCSogd2NzbWJzL21icnRvd2MuYzogUmVwbGFjZSBkdW1teSBpbXBsZW1lbnRhdGlvbi4gIENvbnZlcnQgVVRGOAoJZW5jb2RlZCBjaGFyYWN0ZXIgdG8gVUNTNC4KCSogd2NzbWJzL21ic2luaXQuYzogUmVwbGFjZSBkdW1teSBpbXBsZW1lbnRhdGlvbi4gIFRlc3QgQ09VTlQKCWVsZW1lbnQgb2YgYG1ic3RhdGVfdCcgZm9yIGluaXRpYWwgc3RhdGUuCgkqIHdjc21icy9tYnNydG93Y3MuYzogUmVwbGFjZSBkdW1teSBpbXBsZW1lbnRhdGlvbi4gIENvbnZlcnQgVVRGOAoJZW5jb2RlZCBzdHJpbmcgdG8gVUNTNCBzdHJpbmcuCgkqIHdjc21icy93Y3J0b21iLmM6IFJlcGxhY2UgZHVtbXkgaW1wbGVtZW50YXRpb24uICBDb252ZXJ0IFVDUzQKCWNoYXJhY3RlciB0byBVVEY4IGVuY29kZWQgZm9ybS4KCSogd2NzbWJzL3djc3J0b21icy5jOiBSZXBsYWNlIGR1bW15IGltcGxlbWVudGF0aW9uLiAgQ29udmVydCBVQ1M0CgllbmNvZGVkIHN0cmluZyB0byBVVEY4IGVuY29kZWQgZm9ybS4KClR1ZSBKdWwgIDkgMDY6MTk6MjkgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2NvbmZpZ3VyZS5pbjogVXNlIHZlcnNpb24gbnVtYmVyIGluIGNhY2hlCgl2YXJpYWJsZSBuYW1lLCBzbyBuZXcgYSBsaWJjIHdpdGggbmV3IHJlcXVpcmVtZW50cyB3b24ndCBmYWlsIHRvCglub3RpY2UgYW4gaW5zdWZmaWNpZW50IExpbnV4IHZlcnNpb24uCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9kaXJlbnRyeS5oOiBOZXcgZmlsZSBmcm9tIERhdmlkIE1vc2Jlcmdlci4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2NvbmZpZ3VyZS5pbjogQ2hlY2sgZm9yIExpbnV4IDIuMC4xIGhlYWRlcnMsCglpbnN0ZWFkIG9mIDIuMCBoZWFkZXJzLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvTWFrZWZpbGUgKHN0YW1wLWVycm5vcyk6IFVuY29tbWVudCBDVlMgY29tbWl0IGNtZHMuCgoJKiBzeXNkZXBzL2dudS9lcnJsaXN0LmF3azogVW5kbyBtaWIncyBib2d1cyBjaGFuZ2VzLiAgVGhlCglzeXNkZXBzL21hY2gvaHVyZC9lcnJub3MuYXdrIGJ1ZyBmaXggd2FzIHRoZSBvbmx5IGNvcnJlY3QgY2hhbmdlLgoKCSogc3lzZGVwcy9nZW5lcmljL21hY2hpbmUtZ21vbi5oIFtOT19VTkRFUlNDT1JFU106IERlY2xhcmUgX21jb3VudAoJYmVmb3JlIHVzaW5nIGl0IGluIGxocyBvZiB3ZWFrX2FsaWFzLgoKCSogbnNzL2dldFhYZW50X3IuYyAoc2V0dXApOiBOZXcgZnVuY3Rpb24sIGJyb2tlbiBvdXQgb2YgU0VURlVOQ19OQU1FLgoJQ2FsbCBfX25zc19sb29rdXAgd2hlbiBub3Qgc2V0dGluZyBTVEFSVFAuCgkoU0VURlVOQ19OQU1FLCBFTkRGVU5DX05BTUUsIFJFRU5UUkFOVF9HRVROQU1FKTogQ2FsbCBpdCB0byBzZXQgdXAgZm9yCglmdW5jdGlvbi1jYWxsaW5nIGxvb3AuCgpUdWUgSnVsICA5IDAwOjE0OjUyIDE5OTYgIE1pY2hhZWwgSS4gQnVzaG5lbGwgcC9CU0cgIDxtaWJAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC9pb2N0bHMuaCAoTURNQlVGLCBFQ0hPLCBUT1NUT1AsIEZMVVNITywKCVBFTkRJTiwgTk9GTFNIKTogVW5kZWZpbmUgdGhlc2UgYXQgc3RhcnQgaWYgdGhleSBhcmUgYWxyZWFkeQoJZGVmaW5lZCB0byBhdm9pZCBjb2xsaXNpb24gd2l0aCB0ZXJtYml0cy5oLgoJKiBzeXNkZXBzL2dlbmVyaWMvdGVybWJpdHMuaCAoRUNITywgVE9TVE9QLCBOT0ZMU0gpOiBMaWtld2lzZS4KCShNRE1CVUYsIEZMVVNITywgUEVORElOKSBbX19VU0VfQlNEXTogTGlrZXdpc2UuCgpNb24gSnVsICA4IDEzOjM3OjQwIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBtYXRoL21hdGguaCAoX01mbG9hdF8sIF9NbG9uZ19kb3VibGVfKTogTmV3IG1hY3JvcywgZGVmaW5lZCBpZmYgbm90CglhbHJlYWR5IGRlZmluZWQgdG8gZmxvYXQsIGxvbmcgZG91YmxlLiAgVXNlIHRob3NlIG1hY3JvcyBmb3IgX01kb3VibGVfCglkZWZucyB3aGVuIGluY2x1ZGluZyBtYXRoY2FsbHMuaC4KCSogbWF0aC9NYWtlZmlsZSBbJChsb25nLWRvdWJsZS1mY3RzKSAhPSB5ZXNdIChDUFBGTEFHUyk6IEFwcGVuZAoJLURfTWxvbmdfZG91YmxlXz1kb3VibGUuCgoJQWRkIG1vcmUgLWxtIGZ1bmN0aW9ucyB0byAtbGMgYmVjYXVzZSBsZGV4cCB1c2VzIHRoZW0uCgkqIG1hdGgvTWFrZWZpbGUgKGNhbGxzKTogQWRkIHNfZmluaXRlLCBzX2NvcHlzaWduLCBzX3NjYWxibiwgc19tb2RmLgoJKHJvdXRpbmVzKTogUmVtb3ZlIHNfbW9kZiwgYWRkIHNfZnJleHBmLCBzX2xkZXhwZjsgYWxsIGJ1dCBmcmV4cCBhbmQKCWxkZXhwIGhhdmUgYm90aCBmIGFuZCBsIGNvZGUsIGFuZCB0aG9zZSBoYXZlIGYgdGhvdWdoIG5vdCBsIGNvZGUuCgpNb24gSnVsICA4IDEzOjEwOjUwIDE5OTYgIE1pY2hhZWwgSS4gQnVzaG5lbGwgcC9CU0cgIDxtaWJAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC9lcnJub3MuYXdrOiBTa2lwIGVudHJpZXMgd2hlcmUgdGhlCgllcnJvciBpcyAwLiAgVGhlICJwbGFjZWhvbGRlciIgZW50cmllcyByZWNlbnRseSBhZGRlZCB0bwoJZXJybm8udGV4aSBjb252ZXJ0IHRvIHplcm8gc2luY2UgYD8/Py8nIGlzIGF0IHRoZSBmcm9udCBvZiB0aGVtLgoJKiBzeXNkZXBzL2dudS9lcnJsaXN0LmF3ayAoZXJybm9oKTogTGlrZXdpc2UuCgoJKiBzeXNkZXBzL3N0dWIvc2V0ZG9tYWluLmMgKHNldGRvbWFpbm5hbWUpOiBEZWNsYXJlIE5BTUUgcGFybQoJX19jb25zdCB0byBjb25mb3JtIHdpdGggdW5pc3RkLmguCgoJKiBzdGRsaWIvc3RkbGliLmggKHJhbmRvbSk6IERlY2xhcmUgcmV0dXJuIHR5cGUgdG8gYmUgaW50MzJfdC4KCgkqIHN0cmluZy9hcmd6LWRlbGV0ZS5jIChhcmd6X2RlbGV0ZSk6IFVzZSBtZW1tb3ZlIGluc3RlYWQgb2YKCW1lbWNweSBmb3IgcG9zc2libHkgb3ZlcmxhcHBpbmcgc3RyaW5ncy4KCk1vbiBKdWwgIDggMDI6MTQ6MjUgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGxpYmMtc3ltYm9scy5oIFtHQ0MgPj0gMi43XSAoc3Ryb25nX2FsaWFzLCB3ZWFrX2FsaWFzKTogVXNlIGV4dGVybgoJc3RvcmFnZSBjbGFzcy4gIEdDQyBnaXZlcyBhbiBlcnJvciBmb3Igbm9uLWV4dGVybiBkYXRhIGRlZm5zIHdpdGggdGhlCglhbGlhcyBhdHRyaWJ1dGUuCgpNb24gSnVsICA4IDAxOjM3OjM0IDE5OTYgIE1pY2hhZWwgSS4gQnVzaG5lbGwsIHAvQlNHICA8bWliQGdudS5haS5taXQuZWR1PgoKCSogc3RyaW5nL2FyZ3otaW5zZXJ0LmMgKF9fYXJnel9pbnNlcnQpOiAoX19hcmd6X2luc2VydCk6IFVzZQoJbWVtbW92ZSBpbnN0ZWFkIG9mIG1lbWNweSBmb3IgcG9zc2libGUgb3ZlcmxhcHBpbmcgc3RyaW5ncy4KCk1vbiBKdWwgIDggMDA6MTE6MTUgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGxpYmMtc3ltYm9scy5oICh3ZWFrX2Z1bmN0aW9uKTogTmV3IG1hY3JvLgoJRm9yIEdDQyAyLjcrIGRlZmluZSBhcyBfX2F0dHJpYnV0ZV9fICgod2VhaykpLgoJKiBlbGYvZGwtbWluaW1hbC5jOiBVc2Ugd2Vha19mdW5jdGlvbiBhcyBrZXl3b3JkIGluIGZ1bmN0aW9uIGRlZm5zCglpbnN0ZWFkIG9mIHdlYWtfc3ltYm9sIChOQU1FKSBhZnRlciB0aGUgZGVmbi4KCSogc3RkbGliL3N0cnRvbC5jOiBMaWtld2lzZS4KCSogc3RkbGliL3N0cnRvZC5jOiBMaWtld2lzZS4KCSogc3lzZGVwcy9tYWNoL2h1cmQvZGwtc3lzZGVwLmM6IExpa2V3aXNlLgoKCSogc3lzZGVwcy9hbHBoYS9kbC1tYWNoaW5lLmggKGVsZl9tYWNoaW5lX3JlbGEpIFtSVExEX0JPT1RTVFJBUF06CglJZiB0aGlzIGlzIGRlZmluZWQsIGRvbid0IGRlY2xhcmUgX2RsX3J0bGRfbWFwIGFzIHdlYWssIGFuZAoJZG9uJ3QgY2hlY2sgZm9yIE1BUCBwb2ludGluZyB0byBpdC4gIFJFU09MVkUgaXMgYWx3YXlzIG51bGwgaW4gdGhpcwoJY2FzZSwgc28gdGVzdCB3aXRoICNpZmRlZiBpbnN0ZWFkIG9mIGlmLgoKCSogbGliYy1zeW1ib2xzLmggKHN5bWJvbF9zZXRfZGVjbGFyZSk6IFVzZSB3ZWFrX2V4dGVybiBpbnN0ZWFkIG9mCgl3ZWFrX3N5bWJvbC4KCSogY3N1L2luaXRmaW5pLmMgKF9pbml0KTogTGlrZXdpc2UuCgkqIGxvY2FsZS9zZXRsb2NhbGUuYyAoREVGSU5FX0NBVEVHT1JZKTogTGlrZXdpc2UuCgkqIG1pc2MvZWZnY3Z0X3IuYzogTGlrZXdpc2UuCgkqIHN5c2RlcHMvYWxwaGEvZGwtbWFjaGluZS5oIChlbGZfbWFjaGluZV9yZWxhKTogTGlrZXdpc2UuCgkqIHN5c2RlcHMvaTM4Ni9kbC1tYWNoaW5lLmggKGVsZl9tYWNoaW5lX3JlbCk6IExpa2V3aXNlLgoKCSogbGliYy1zeW1ib2xzLmggW0FTU0VNQkxFUl0gKHdlYWtfc3ltYm9sKTogTWFjcm8gcmVtb3ZlZC4KCUl0IHdhcyBub3QgdXNlZCBpbiBhbnkgYXNzZW1ibGVyIGNvZGUuCgkod2Vha19zeW1ib2xfYXNtKTogUmVuYW1lZCB0byB3ZWFrX2V4dGVybl9hc20uCgkod2Vha19leHRlcm4pOiBOZXcgbWFjcm8gcmVwbGFjZXMgd2Vha19zeW1ib2wgZm9yIHdlYWsgZXh0ZXJuIHJlZnM7CglkZWZpbmUgdG8gd2Vha19leHRlcm5fYXNtIGZvciBbIUFTU0VNQkxFUl0uCgpTdW4gSnVsICA3IDE4OjQyOjA2IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBsaWJjLXN5bWJvbHMuaCBbISBBU1NFTUJMRVJdIFtIQVZFX1dFQUtfU1lNQk9MU10gKHdlYWtfc3ltYm9sX2FzbSwKCXdlYWtfYWxpYXNfYXNtKTogTmV3IG1hY3JvcywgcmVuYW1lZCBmcm9tIHdlYWtfc3ltYm9sL3dlYWtfYWxpYXM7CglkZWZpbmUgdGhvc2Ugbm93IGFzIGFsaWFzZXMuCglDaGFuZ2UgY29uZGl0aW9uYWwgdG8gdXNlIF9fYXR0cmlidXRlX18gc3ludGF4IGZvciBHQ0MgMi43Kywgbm90IDIuOCsKCVtHQ0MgPj0gMi43XSBbSEFWRV9XRUFLX1NZTUJPTFNdICh3ZWFrX3N5bWJvbCk6IERvIHdlYWtfc3ltYm9sX2FzbQoJYWZ0ZXIgR0NDIHdlYWsgYXR0cmlidXRlIGRlY2wuCgoJKiBzeXNkZXBzL2dudS9lcnJsaXN0LmF3ayAoQkVHSU4pOiBJbml0aWFsaXplIGFzc29jaWF0aXZlIGFycmF5IEFMSUFTLAoJbWFwIEVXT1VMREJMT0NLLT5FQUdBSU4sIEVERUFETE9DSy0+RURFQURMSy4KCShlbGVtZW50IHByaW50ZXIpOiBDaGVjayBmb3IgZWx0IGluIEFMSUFTLCBpbnN0ZWFkIG9mIHNwZWNpYWwgY2FzZQoJZm9yIEVXT1VMREJMT0NLLgoKCSogaW8vTWFrZWZpbGUgKGhlYWRlcnMpOiBBZGQgc3lzL3Zmcy5oLgoJKiBpby9zeXMvdmZzLmg6IE5ldyBmaWxlLgoKCSogc3lzZGVwcy9tYWNoL2h1cmQvam1wLXVud2luZC5jIChfbG9uZ2ptcF91bndpbmQpOiBEb24ndCB1bmxvY2sgdGhlCgljcml0aWNhbCBzZWN0aW9uIGxvY2sgYmVmb3JlIHVubGlua2luZyBkeWluZyBhY3RpdmUgcmVzb3VyY2VzLgoJVGhlIHVubG9jayBqdXN0IGJlZm9yZSByZXR1cm4gaXMgcmlnaHQgKGkuZS4gb2xkIGNvZGUgdW5sb2NrZWQgdHdpY2UpLgoKU3VuIEp1biAgMiAyMjoyODo0MyAxOTk2ICBNaWxlcyBCYWRlciAgPG1pbGVzQGdudS5haS5taXQuZWR1PgoKCSogc3RkaW8vbGluZXdyYXAuYyAobHd1cGRhdGUpOiBVcGRhdGUgRC0+cG9pbnRfb2ZmcyB3aGVuIGRvbmUuCglVc2UgbWVtbW92ZSBpbnN0ZWFkIG9mIG1lbWNweSB3aGVyZSBvdmVybGFwIGlzIHBvc3NpYmxlIChub3QKCW5lY2Vzc2FyeSB1c2luZyBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIG1lbWNweSwgYnV0Li4uKS4KCShfX2xpbmVfd3JhcF91cGRhdGUpOiBEb24ndCB1cGRhdGUgRC0+cG9pbnRfb2ZmcyAobHd1cGRhdGUgZG9lcyBpdCkuCgpGcmkgTWF5IDMxIDExOjQ4OjQ2IDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzdGRpby9saW5ld3JhcC5jIChsd3VwZGF0ZSk6IE5ldyBmdW5jdGlvbiwgbW9zdGx5IHdhcwoJX19saW5lX3dyYXBfdXBkYXRlLiAgVXNlIFBPSU5UX0NPTCBmaWVsZCBpbnN0ZWFkIG9mIFBPSU5ULgoJKF9fbGluZV93cmFwX291dHB1dCk6IFVzZSBsd3VwZGF0ZS4KCShfX2xpbmVfd3JhcF91cGRhdGUpOiBOZXcgZnVuY3Rpb24uCgkoZW5zdXJlX3Vud3JhcHBlZCwgZW5zdXJlX3dyYXBwZWQpOiBOZXcgZnVuY3Rpb25zLgoJKGxpbmVfd3JhcF9zZXRfbG1hcmdpbiwgbGluZV93cmFwX3NldF9ybWFyZ2luLAoJbGluZV93cmFwX3NldF93bWFyZ2luLCBsaW5lX3dyYXBfcG9pbnQpOiBVc2UgX19saW5lX3dyYXBfdXBkYXRlLgoKCSogc3RkaW8vbGluZXdyYXAuaCAoc3RydWN0IGxpbmVfd3JhcF9kYXRhKTogUmVuYW1lIFBPSU5UIGZpZWxkIHRvCglQT0lOVF9DT0wuIEFkZCBQT0lOVF9PRkZTIGZpZWxkLgoJKF9fbGluZV93cmFwX3VwZGF0ZSk6IE5ldyBkZWNsLgoJKGxpbmVfd3JhcF9zZXRfbG1hcmdpbiwgbGluZV93cmFwX3NldF9ybWFyZ2luLAoJbGluZV93cmFwX3NldF93bWFyZ2luLCBsaW5lX3dyYXBfcG9pbnQpOiBVc2UgX19saW5lX3dyYXBfdXBkYXRlLgoKRnJpIEp1bCAgNSAxNzozNDo0NyAxOTk2ICBNaWxlcyBCYWRlciAgPG1pbGVzQGdudS5haS5taXQuZWR1PgoKCSogbG9naW4vbG9nb3V0LmMgKGxvZ291dCk6IERvIG5vdGhpbmcgaWYgZ2V0dXRsaW5lX3IgcmV0dXJucyBFU1JDSC4KCgkqIGxvZ2luL3B1dHV0bGluZV9yLmMgKHB1dHV0bGluZV9yKTogU2luY2Ugd2UgYXNzaWduIFJFU1VMVCBmcm9tCglsc2VlayBub3csIGNoZWNrIHRoYXQgaXQncyA+PSAwLCBub3QgPT0gMC4KCldlZCBKdWwgIDMgMTM6Mjg6MDQgMTk5NiAgTWlsZXMgQmFkZXIgIDxtaWxlc0BnbnUuYWkubWl0LmVkdT4KCgkqIGxvZ2luL2xvZ2luLmMgKGxvZ2luKTogTWFrZSBhIGNvcHkgb2YgKlVULCBmaWxsIGluIHZhcmlvdXMKCWZpZWxkcyB0aGF0IHdlIHN1cHBseSAodXRfbGluZSwgdXRfdHlwZSwgdXRfcGlkKSwgYW5kIHVzZSB0aGUgY29weQoJaW4gcGxhY2Ugb2YgVVQuCgoJKiBsb2dpbi9nZXR1dGxpbmVfci5jIChnZXR1dGxpbmVfcik6IFdoZW4gd2UgcmV0dXJuIEVTUkNILCBtYXJrCglVVE1QX0RBVEEtPnVidWYgaW52YWxpZCAoYnkgc2V0dGluZyBVVE1QX0RBVEEtPmxvY191dG1wIHRvIDApLgoKRnJpIEp1bCAgNSAxMjoyMjo1MSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogaHVyZC9odXJkc2lnLmMgKF9odXJkX2ludGVybmFsX3Bvc3Rfc2lnbmFsKTogSW4gY2FzZSBvZiBoYW5kbGVkCglzaWduYWwgZHVyaW5nIGNyaXRpY2FsIHNlY3Rpb24gZG9pbmcgaW50ZXJydXB0aWJsZSBSUEMsIGlmCglfaHVyZHNpZ19hYm9ydF9ycGNzIHdhbnRzIHRvIGNoYW5nZSB0aHJlYWQgc3RhdGUsIGRvIHRocmVhZF9zZXRfc3RhdGUKCWJlZm9yZSB0aHJlYWRfcmVzdW1lLiAgSWYgaW4gY3JpdGljYWwgc2VjdGlvbiwgcGFzcyAwIGZvciBTSUdOTyB0bwoJX2h1cmRzaWdfYWJvcnRfcnBjcyBzbyBycGMgaXMgaW50ZXJydXB0ZWQgcmVnYXJkbGVzcyBvZiBTQV9SRVNUQVJULgoKCSogZXh0cmEtbGliLm1rOiBGaXggdHlwbyBpbiAkKGV4dHJhLWxpYnMtb3RoZXJzKSBjb25kaXRpb25hbC4KCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy91c2VyLmg6IE5ldyBmaWxlLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9EaXN0OiBBZGQgaXQuCgkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlIChzeXNkZXBfaGVhZGVycyk6IEFkZCBzeXMvdXNlci5oLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1wYXJzZS5jIChwYXJzZV9saXN0KTogU2V0IEVPTCBmcm9tIExJTkUgaWYgaXQKCXBvaW50cyB3aXRoaW4gREFUQS0+bGluZWJ1ZmZlcjsgb3RoZXJ3aXNlIHVzZSBhbGwgb2YgREFUQS0+bGluZWJ1ZmZlcgoJaXRzZWxmLCBubyBuZWVkIHRvIHNraXAgcGFzdCBhIE5VTC4KCgkqIG5zcy9uc3N3aXRjaC5oIChrbm93bl9mdW5jdGlvbik6IENvbW1lbnQgZml4LgoJKiBuc3MvbnNzd2l0Y2guYyAobnNzX2xvb2t1cF9mdW5jdGlvbik6IFJld3JpdHRlbiB1c2luZyBfX3RzZWFyY2gKCWRpcmVjdGx5LiAgRG8gdGhlIGxvb2t1cCBhbmQgaW5zZXJ0aW9uIHdpdGggYSBzaW5nbGUgY2FsbCwgYW5kIGZpbGwgaW4KCXRoZSB0cmVlIG5vZGUgYWZ0ZXJ3YXJkcyBpZiBuZXcuCgkoa25vd25fY29tcGFyZSwgbnNzX2ZpbmRfZW50cnksIG5zc19pbnNlcnRfZW50cnkpOiBGdW5jdGlvbnMgcmVtb3ZlZC4KCgkqIG1pc2Mvc3lzL3NlbGVjdC5oOiAjZGVmaW5lIF9fbmVlZF90aW1lc3BlYyBiZWZvcmUgPHN5cy90aW1lLmg+IGluY2wuCgkoc3RydWN0IHRpbWV2YWwpOiBBZGQgYm9kaWxlc3MgZGVjbCBmb3Igc2NvcGUuCgoJKiB0aW1lL3RpbWUuaCAoc3RydWN0IHRpbWVzcGVjKTogUmVuYW1lIG1lbWJlcnMgZnJvbSBgdHNfKicgdG8gYHR2XyonLgoJTW92ZSBzdHJ1Y3QgdGltZXNwZWMgZGVmbiBvdXRzaWRlIFtfVElNRV9IXSBzbyBpdCBjYW4gYmUgZ290IHdpdGgKCSNkZWZpbmUgX19uZWVkX3RpbWVzcGVjLgoKCSogdGltZS9zeXMvdGltZS5oIChUSU1FVkFMX1RPX1RJTUVTUEVDKTogVXNlIGB0dl8qJyBpbnN0ZWFkIG9mIGB0c18qJwoJZm9yIGBzdHJ1Y3QgdGltZXNwZWMnIG1lbWJlciBuYW1lcy4KCShUSU1FU1BFQ19UT19USU1FVkFMKTogTGlrZXdpc2UuCgoJKiBuc3MvTWFrZWZpbGUgKGV4dHJhLWxpYnMtb3RoZXJzKTogTmV3IHZhcmlhYmxlLgoKCSogZXh0cmEtbGliLm1rOiBEb24ndCB0ZXN0IGZvciAkKCQobGliKS1uby1saWItZGVwKS4gIEluc3RlYWQgbWF0Y2gKCSQobGliKSBpbiAkKGV4dHJhLWxpYnMtb3RoZXJzKS4KCSogc3VucnBjL01ha2VmaWxlIChleHRyYS1saWJzLW90aGVycyk6IE5ldyB2YXJpYWJsZS4KCShsaWJycGNzdmMtbm8tbGliLWRlcCk6IFZhcmlhYmxlIHJlbW92ZWQuCgoJKiBlbGYvcnRsZC5jOiBEZWZpbmUgUlRMRF9CT09UU1RSQVAgYmVmb3JlICNpbmNsdWRlICJkeW5hbWljLWxpbmsuaCIuCgkqIHN5c2RlcHMvaTM4Ni9kbC1tYWNoaW5lLmggKGVsZl9tYWNoaW5lX3JlbCk6IFJlbW92ZSB3ZWFrIGRlY2wgZm9yCglfZGxfcnRsZF9tYXAuCgkoUkVTT0xWRSk6IE5ldyBtYWNybywgZGVmaW5lZCBkaWZmZXJlbnRseSBiYXNlZCBvbiBbUlRMRF9CT09UU1RSQVBdLgoJKGVsZl9tYWNoaW5lX3JlbCk6IFVzZSBpdCBpbnN0ZWFkIG9mIHRlc3RpbmcgZm4gcHRyIGFyZyBhdCBydW50aW1lLgoJKGVsZl9tYWNoaW5lX3JlbDogY2FzZSBSXzM4Nl8zMikgWyEgUlRMRF9CT09UU1RSQVBdOiBEZWNsYXJlCglfZGxfcnRsZF9tYXAgd2VhayBvbmx5IGhlcmUuCgoJKiBwb3NpeC91bmlzdGQuaCBbX19VU0VfQlNEXTogRGVjbGFyZSBnZXRkb21haW5uYW1lLCBzZXRkb21haW5uYW1lLgoKVGh1IEp1bCAgNCAwNToyMTo1OSAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogbG9naW4vdXRtcC5oOiBGaXggdHlwb3MuCgoJKiBtaXNjL3N5c2xvZy5jICh2c3lzbG9nKTogVXNlIF9fc2VuZCBpbnN0ZWFkIG9mIHNlbmQgYW5kCglfX2Nvbm5lY3QgaW5zdGVhZCBvZiBjb25uZWN0IHRvIGF2b2lkIG5hbWUtc3BhY2UgY29sbGlzaW9ucyAoZS5nLiwKCXdpdGggcHNnZXR0eSkuCgpXZWQgSnVsICAzIDE2OjI5OjQxIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBuc3MvZ2V0WFhieVlZX3IuYyAoUkVFTlRSQU5UX05BTUUpOiBDYXN0IEZDVCBpbiBfX25zc19uZXh0IGNhbGwuCgoJKiBzeXNkZXBzL2dlbmVyaWMvc2Jyay5jOiBBbHdheXMgY2FsbCBfX2JyayAoMCkgdG8gdXBkYXRlIF9fY3VyYnJrLgoKCSogbWFsbG9jL21hbGxvYy1zaXplLmMgKG1hbGxvY191c2FibGVfc2l6ZSk6IFJlbmFtZWQgZnJvbQoJbWFsbG9jX29iamVjdF9hbGxvY2F0aW9uX3NpemUuCgkqIG1hbGxvYy9tYWxsb2MuaDogRml4IGRlY2wuCgoJKiBzeXMvc2VsZWN0Lmg6IE5ldyBmaWxlLCB3cmFwcGVyIGhlYWRlci4KCgkqIHBvc2l4L3N5cy90eXBlcy5oIFtfX1VTRV9CU0RdOiBJbmNsdWRlIDxzeXMvc2VsZWN0Lmg+OyByZW1vdmUKCWZkX3NldCwgYXNzb2NpYXRlZCBtYWNyb3MsIGFuZCBzZWxlY3QgZGVjbC4KCgkqIHN5c2RlcHMvcG9zaXgvaXNmZHR5cGUuYzogTmV3IGZpbGUuCgpUdWUgSnVsICAyIDIzOjQ1OjE0IDE5OTYgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCVRoZSBsYXRlc3QgSmFwYW5lc2UgcHJvcG9zYWwgZm9yIFBPU0lYIGxvY2FsZXMgcmVuYW1lcyB0aGUKCUNIQVJNQVAga2V5d29yZCBpbiBsb2NhbGUgZGVmaW5pdGlvbiBmaWxlcyB0byBDSEFSQ09OVi4KCSogbG9jYWxlL3Byb2dyYW1zL2xkLWN0eXBlLmMsIGxvY2FsZS9wcm9ncmFtcy9sb2NhbGVzLmg6IFJlbmFtZQoJZnVuY3Rpb24gY3R5cGVfaXNfY2hhcm1hcCB0byBjdHlwZV9pc19jaGFyY29udi4KCSogbG9jYWxlL3Byb2dyYW1zL2xvY2ZpbGUta3cuZ3BlcmY6IFJlcGxhY2UgY2hhcm1hcCBrZXl3b3JkIHdpdGgKCWNoYXJjb252LgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jZmlsZS10b2tlbi5oOiBBZGQgZGVmaW5pdGlvbiBvZiB0b2tlbgoJY2hhcmNvbnYuCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NmaWxlLmM6IFJlY29nbml6ZSBjaGFyY29udiBrZXl3b3JkLiAgUmVuYW1lCglsYWJsZXMgYWNjb3JkaW5nIHRvIHRoaXMuCgoJKiBsb2NhbGUvd2VpZ2h0LmggKGdldF93ZWlnaHQpOiBDYXN0IGNvbnN0YW50cyB0byBwcmV2ZW50Cgl3YXJuaW5ncy4KCgkqIHN0ZGxpYi9zdHJ0b2QuYywgc3RkbGliL3N0cnRvbC5jLCBzdHJpbmcvc3RyY29sbC5jLAoJc3RyaW5nL3N0cnhmcm0uYzogQWRkIHNvbWUgbW9yZSBjYXN0cyB0byBwcmV2ZW50IHNpZ25lZDwtPnVuc2lnbmVkCgl3YXJuaW5ncy4KCglOZXcgc3R1ZmYgZGVzY3JpYmVkIGluIFAxMDAzLjFnLgoJKiBtaXNjL01ha2VmaWxlIChoZWFkZXJzKTogQWRkIHN5cy9zZWxlY3QuaC4KCShyb3V0aW5lcyk6IEFkZCBwc2VsZWN0LgoJKiBtaXNjL3N5cy9zZWxlY3QuaDogTmV3IGZpbGUuICBEZWNsYXJlIHNlbGVjdCBmdW5jdGlvbnMgYW5kCgluZWVkZWQgZGF0YSB0eXBlcyBhbmQgbWFjcm9zLgoJKiBzeXNkZXBzL2dlbmVyaWMvcHNlbGVjdC5jOiBOZXcgZmlsZS4gIEFkZCBnZW5lcmljIGltcGxlbWVudGF0aW9uCglvZiBwc2VsZWN0KCkgZnVuY3Rpb24gd2hpY2ggdXNlcyBzZWxlY3QoKS4KCgkqIHBvc2l4L2dldGNvbmYuYzogUmVjb2duaXplIG5ldyB2YXJpYWJsZXMgZnJvbSBQMTAwMy4xZy4KCSogcG9zaXgvcG9zaXgxX2xpbS5oOiBEZWZpbmUgX1BPU0lYX0ZEX1NFVFNJWkUsIF9QT1NJWF9RTElNSVQsCglfUE9TSVhfSElXQVQsIGFuZCBfUE9TSVhfVUlPX01BWElPVi4KCSogcG9zaXgvdW5pc3RkLmg6IEFkZCBkZXNjcmlwdGlvbiBvZiB0aGUgUDEwMDMuMWcgdmFyaWFibGVzLgoJKiBzeXNkZXBzL2dlbmVyaWMvY29uZm5hbWUuaDogRGVmaW5lIF9TQ18qIHZhbHVlcyBmb3IgbmV3Cgl2YXJpYWJsZXMuCgkqIHN5c2RlcHMvcG9zaXgvZnBhdGhjb25mLmMgKGZwYXRoY29uZik6IEFkZCBoYW5kbGluZyBvZgoJX1BDX1NPQ0tfTUFYQlVGLgoJKiBzeXNkZXBzL3N0dWIvZnBhdGhjb25mLmMgKGZwYXRoY29uZik6IERpdHRvLgoJKiBzeXNkZXBzL3Bvc2l4L3N5c2NvbmYuYyAoc3lzY29uZik6IEFkZCBoYW5kbGluZyBvZiBuZXcKCVAxMDAzLjFnIHZhcmlhYmxlcy4KCSogc3lzZGVwcy9zdHViL3N5c2NvbmYuYyAoc3lzY29uZik6IERpdHRvLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9wb3NpeF9vcHQuaDogRGVmaW5lIF9QT1NJWF9QT0xMIGFuZAoJX1BPU0lYX1NFTEVDVCBzaW5jZSBMaW51eCBoYXMgdGhpcy4KCgkqIHNvY2tldC9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgaXNmZHR5cGUuCgkqIHN5c2RlcHMvZ2VuZXJpYy9zeXMvc29ja2V0Lmg6IEFkZCBwcm90b3R5cGUgZm9yIGlzZmR0eXBlLgoJKiBzeXNkZXBzL3N0dWIvaXNmZHR5cGUuYzogTmV3IGZpbGUuICBTdHViIGltcGxlbWVudGF0aW9uIG9mCglpc2ZkdHlwZS4KCgkqIHdjc21icy93Y3J0b21iLmMgKHdjcnRvbWIpOiBGaXggdHlwby4KCldlZCBKdWwgIDMgMTE6MjY6MjggMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGVsZi9NYWtlZmlsZSAoTERGTEFHUy1kbC5zbyk6IE5ldyB2YXJpYWJsZS4KCShsaWJkbC5zbyk6IERlcGVuZCBvbiBldmFsLnNvLgoJKGRpc3RyaWJ1dGUpOiBBZGQgZXZhbC5jLgoJKiBlbGYvZXZhbC5jOiBOZXcgZmlsZS4KCgkqIHRpbWUvc3RyZnRpbWUuYyAoc3RyZnRpbWU6IGRvX251bWJlcik6IEFkanVzdCBQIGFuZCBJIGFmdGVyIHNwcmludGYKCWluIGNhc2UgaXQgd3JvdGUgZmV3ZXIgdGhhbiBNQVhESUdJVFMgY2hhcnMuCgoJKiBzdGRpby9md3JpdGUuYyAoZndyaXRlOiBmaWxsX2J1ZmZlcik6IFNlcGFyYXRlIGZsdXNoaW5nIGZvciBsYXN0CgluZXdsaW5lIGZyb20gZmx1c2hpbmcgZnVsbCBidWZmZXIgaW4gbG9vcCwgZml4IHRlc3Qgc28gbm8gZmZsdXNoIGlzCglkb25lIHdoZW4gbGFzdCBieXRlIHdyaXR0ZW4gZXhhY3RseSBmaWxscyB0aGUgYnVmZmVyLgoKCSogbnNzL01ha2VmaWxlICgkKHNlcnZpY2VzOiU9JChvYmpwZngpbGlibnNzXyUuc28pKTogRGVwZW5kIG9uIGxpYmMuc28uCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9NYWtlZmlsZSAoTERMSUJTLWMuc28pOiBWYXJpYWJsZSByZW1vdmVkLgoJKGxpYmMuc28pOiBJbnN0ZWFkLCBnaXZlIHRoaXMgZGVwcyBvbiBsaWJ7bWFjaCxodXJkfXVzZXIuc28uCgoJKiBlbGYvZGwtZGVidWcuYyAoX2RsX2RlYnVnX2luaXRpYWxpemUpOiBVc2UgTERCQVNFIGFyZyBpbnN0ZWFkIG9mCglleHRyYWN0aW5nIF9kbF9ydGxkX21hcC5sX2FkZHIuCgoJKiBzeXNkZXBzL2kzODYvZGwtbWFjaGluZS5oIChlbGZfbWFjaGluZV9yZWwpOiBEZWNsYXJlIF9kbF9ydGxkX21hcCBhcwoJd2Vhay4KCSogc3lzZGVwcy9hbHBoYS9kbC1tYWNoaW5lLmggKGVsZl9tYWNoaW5lX3JlbGEpOiBMaWtld2lzZS4KCgkqIHNobGliLXZlcnNpb25zICgqLSotKik6IFNldCBsaWJuc3NfZGI9MS4KClR1ZSBKdWwgIDIgMTA6NDQ6MzcgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBTZXQgX2RsX3J0bGRfbWFwJ3MgRFRfREVCVUcgbG9jYXRpb24gdG9vLgoKCSogcnBtL3RlbXBsYXRlICglYnVpbGQpOiBVc2UgQHByZWZpeEAgaW5zdGVhZCBvZiBhbHdheXMgL3Vzci4KCVNldCB1cCBjb25maWdwYXJtcyBvbmx5IGlmIEBwcmVmaXhAIGlzIGluIGZhY3QgL3Vzci4KCSogcnBtL01ha2VmaWxlICgkKGNvbmZpZykpOiBTdWJzdGl0dXRlICQocHJlZml4KSBmb3IgQHByZWZpeEAuCgoJKiBlbGYvTWFrZWZpbGU6IEFkZCBtaXNzaW5nIGVuZGlmLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1ldGhlcnMuYyAobnRvaG9zdCk6IEZpeCBkYiBrZXkuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLW5ldHdvcmsuYzogUGFzcyBlbXB0eSBmb3IgbmV3IERCX0xPT0tVUCBhcmdzLgoJKERBVEFCQVNFKTogRGVmaW5lIHRoaXMgaW5zdGVhZCBvZiBEQVRBRklMRS4KCSogbnNzL25zc19maWxlcy9maWxlcy1ob3N0cy5jOiBMaWtld2lzZS4KCShob3N0YnluYW1lKTogVXNlIExPT0tVUF9OQU1FIG1hY3JvLgoKCSogbnNzL25zc19kYi9kYi1YWFguYzogTmV3IGZpbGUuCgkqIG5zcy9NYWtlZmlsZSAoc2VydmljZXMpOiBBZGQgZGIuCgkobGlibnNzX2RiLWluaGliaXQtbyk6IE5ldyB2YXJpYWJsZS4KCShsaWJuc3NfZGItcm91dGluZXMpOiBOZXcgdmFyaWFibGUuCgkoZGlzdHJpYnV0ZSk6IEFwcGVuZCBkYi1YWFguYy4KCShsaWJuc3NfZGIuc28pOiBEZXBlbmQgb24gbGliZGIuc28gYW5kIGxpYm5zc19maWxlcy5zby4KCSgkKGxpYm5zc19kYi1yb3V0aW5lczolPSQob2JqcGZ4KSUuYykpOiBOZXcgc3RhdGljIHBhdHRlcm4gcnVsZS4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtWFhYLmMgKERCX0xPT0tVUCk6IEFkZCBLRVlTSVpFIGFuZCBLRVlQQVRURVJOCglhcmdzLCBpZ25vcmVkLgoJKERBVEFGSUxFKTogTmV3IG1hY3JvLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXBhcnNlLmMgKEdFTkVSSUMpOiBJZiB1bmRlZmluZWQsIGRlZmluZSB0bwoJImZpbGVzLVhYWC5jIi4KCSogbnNzL25zc19maWxlcy9maWxlcy1ycGMuYzogSW5jbHVkZSBHRU5FUklDIGluc3RlYWQgb2YgImZpbGVzLVhYWC5jIi4KCVBhc3MgZGIga2V5IGFyZ3MgdG8gREJfTE9PS1VQLgoJKERBVEFGSUxFKTogTWFjcm8gcmVtb3ZlZC4KCShEQVRBQkFTRSk6IE5ldyBtYWNybyByZXBsYWNlcyBpdCwgbGFja3MgIi9ldGMvIiBwcmVmaXguCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtc2VydmljZS5jOiBMaWtld2lzZS4KCSogbnNzL25zc19maWxlcy9maWxlcy1wd2QuYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcHJvdG8uYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtZ3JwLmM6IExpa2V3aXNlLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLWV0aGVycy5jOiBMaWtld2lzZS4KCgkqIGVsZi9saW51eC1jb21wYXQuYzogRmlsZSByZW1vdmVkLgoJKiBlbGYvTWFrZWZpbGUgKGRpc3RyaWJ1dGUpOiBSZW1vdmUgbGludXgtY29tcGF0LmMuCgkobGQtbGludXguc28uMSk6IFJlbW92ZSB0YXJnZXQgYW5kIGFzc29jaWF0ZWQgdmFyaWFibGVzLgoKCSogc3VucnBjL3hkci5jOiBSZW1vdmUgbWFsbG9jIGRlY2wuCgkqIHN1bnJwYy9wb3J0bWFwLmM6IExpa2V3aXNlLgoKCSogc3VucnBjL3N2Y190Y3AuYyAoYWJvcnQpOiBEb24ndCBkZWNsYXJlLiAgSW5zdGVhZCBkZWZpbmUgYXMgbWFjcm8KCWNhc3RpbmcgYWJvcnQgdG8gZm4gcmV0dXJuaW5nIGJvb2xfdC4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcGFyc2UuYyBbRVhURVJOX1BBUlNFUl06IERvIGFuIGV4dGVybiBkZWNsIG9mCgl0aGUgcGFyc2VyIGZ1bmN0aW9uLgoJW0VYVEVSTl9QQVJTRVJdIChMSU5FX1BBUlNFUik6IERlZmluZSB0byBlbXB0eS4KCSogbnNzL25zc19maWxlcy9maWxlcy1wd2QuYyAoRVhURVJOX1BBUlNFUik6IERlZmluZSBpdC4KCSogbnNzL25zc19maWxlcy9maWxlcy1ncnAuYzogTGlrZXdpc2UuCgoJKiBNYWtlY29uZmlnIChCVUlMRF9DQyk6IElmIHVuZGVmaW5lZCwgZGVmaW5lIHRvICQoQ0MpLgoKCSogc3VucnBjL3JwYy90eXBlcy5oOiBJbmNsdWRlIHN0ZGxpYi5oIGluc3RlYWQgb2YgZGVjbGFyaW5nIG1hbGxvYy4KCgkqIE1ha2Vjb25maWcgKGJ1aWx0LXByb2dyYW0tY21kKTogVXNlICQocnRsZC1pbnN0YWxsZWQtbmFtZSkgaW4gcGxhY2UKCW9mIGxkLnNvIHNvIGxvb2t1cHMgZm9yIHRoYXQgc29uYW1lIGZpbmQgaXQuCgoJKiBuc3MvTWFrZWZpbGUgKGxpYm5zc19kbnMuc28pOiBEZXBlbmQgb24gbGlicmVzb2x2LnNvLgoJKHJlc29iamRpciwgTERMSUJTLW5zc19kbnMuc28pOiBWYXJpYWJsZXMgcmVtb3ZlZC4KCgkqIHB3ZC9mZ2V0cHdlbnQuYzogRG9uJ3QgaW5jbHVkZSAuLi9uc3MvbnNzX2ZpbGVzL2ZpbGVzLXBhcnNlLmMgdG8KCWRlZmluZSBwYXJzZV9saW5lIGZ1bmN0aW9uLgoJKHBhcnNlX2xpbmUpOiAjZGVmaW5lIHRvIF9uc3NfZmlsZXNfcGFyc2VfcHdlbnQgYW5kCglhZGQgZXh0ZXJuIGRlY2wgZm9yIHRoYXQuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLVhYWC5jIChpbnRlcm5hbF9nZXRlbnQpOiBSZXR1cm4KCU5TU19TVEFUVVNfVFJZQUdBSU4gZm9yIEVSQU5HRSBlcnJvci4KCgkqIHN5c2RlcHMvaTM4Ni9zdHJ0b2suUyAoTHJldHVybk5VTEwpOiBTYXZlIGN1cnJlbnQgc3RhdGUgcHRyIGluc3RlYWQKCW9mIG51bGwsIHNvIG5leHQgcm91bmQgcmV0dXJucyBudWxsIGFnYWluIGluc3RlYWQgb2YgYm9tYmluZy4gIEZpeAoJZnJvbSBkcmVwcGVyLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1wYXJzZS5jIChMSU5FX1BBUlNFUik6IFRha2UgbmV3IGZpcnN0IGFyZyBFT0xTRVQuCglSZW1vdmUgOyBhZnRlciBgRU5UREFUQV9ERUNMIChkYXRhKScuCglUcnVuY2F0ZSBsaW5lIGF0IHN0cnBicmsgKGxpbmUsIEVPTFNFVCAiXG4iKS4KCShFTlREQVRBX0RFQ0wpOiBQdXQgOyBhdCBlbmQuCgkoTUlETElORV9DT01NRU5UUyk6IE1hY3JvIHJlbW92ZWQuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtZXRoZXJzLmM6IFBhc3MgbmV3IGFyZ3VtZW50LgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLWhvc3RzLmM6IExpa2V3aXNlLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLW5ldHdvcmsuYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcGFyc2UuYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcHJvdG8uYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcnBjLmM6IExpa2V3aXNlLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXNlcnZpY2UuYzogTGlrZXdpc2UuCgkqIGdycC9mZ2V0Z3JlbnQuYzogTGlrZXdpc2UuCgkqIHB3ZC9mZ2V0cHdlbnQuYzogTGlrZXdpc2UuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcHdkLmM6IEdldCBwYXJzZV9saW5lIHdpdGggZXh0ZXJuIGRlY2wsIHNpbmNlCglmZ2V0cHdlbnQuYyBhbHJlYWR5IGRlZmluZXMgaXQuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtZ3JwLmM6IExpa2V3aXNlLgoKCSogZWxmL2RsLWxvYWQuYyAoX2RsX21hcF9vYmplY3QpOiBVc2UgYW55IG9iamVjdCB3aXRoIG1hdGNoaW5nIGxfbmFtZQoJYXMgd2VsbCBhcyBhbnkgbWF0Y2hpbmcgd2l0aCBsX2xpYm5hbWUuICBGaXggRFRfU09OQU1FIGxvb2t1cCB0byB1c2UKCXN0cmluZyB0YWJsZSBwcm9wZXJseS4KCgkqIGVsZi9ydGxkLmMgKGRsX21haW4pOiBTZXQgX2RsX3J0bGRfbWFwLmxfbmFtZSBmcm9tIF9kbF9hcmd2WzBdIHdoZW4KCWludm9rZWQgZGlyZWN0bHksIGFuZCBsX2xpYm5hbWUgZnJvbSB0aGF0IGlmIFBUX0lOVEVSUCBtaXNzaW5nLgoJU2V0IGxfbmFtZSBmcm9tIGxfbGlibmFtZSBvbmx5IGlmIG5vdCBzZXQgZnJvbSBhcmd2LgoKCSogdGltZS9ldXJvcGUsIHRpbWUvbm9ydGhhbWVyaWNhOiBVcGRhdGVkIGZyb20gQURPIDk2aS4KCk1vbiBKdWwgIDEgMTU6NDQ6MzQgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHN0ZGlvLWNvbW1vbi90c3QtdW5nZXRjLmM6IEluY2x1ZGUgdW5pc3RkLmguCgoJKiBpbmV0L01ha2VmaWxlIChyb3V0aW5lcyk6IENoYW5nZSBnZXRuZXRieXB0IHRvIGdldG5ldGJ5YWQuCgpNb24gSnVsICAxIDEzOjMyOjQyIDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBodXJkL3JlcG9ydC13YWl0LmMgKGRlc2NyaWJlX251bWJlcik6IE1ha2UgSSB1bnNpZ25lZCBsb25nLgoKCSogbG9naW4vbG9naW4uYyAobG9naW4pOiBPbmx5IEZyb2IgT0xELT51dF90eXBlIGlmIGdldHV0bGluZV9yCglhY3R1YWxseSBmb3VuZCBhbnkgZW50cnkuCgoJKiBsb2dpbi9wdXR1dGxpbmVfci5jIChwdXR1dGxpbmVfcik6IElmIG5vdCBsb2NhdGVkIGFmdGVyIGFueQoJZW50cnkgZG9uJ3QgdXNlIFVUTVBfREFUQS0+dWJ1ZiwgYW5kIHNlZWsgdG8gdGhlIGVuZCBiZWZvcmUgYWRkaW5nLgoJTG9jayB0aGUgZmlsZSBiZWZvcmUgc3RhdGluZy4KCk1vbiBKdWwgIDEgMTI6Mjk6NTAgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIG5zcy9NYWtlZmlsZSAoZGF0YWJhc2VzKTogQ2hhbmdlIGhvc3QgdG8gaG9zdHMuCgkqIG5zcy9ob3N0LWxvb2t1cC5jOiBSZW5hbWVkIHRvIG5zcy9ob3N0cy1sb29rdXAuYy4KCgkqIG5zcy9uc3N3aXRjaC5jIChuc3NfcGFyc2Vfc2VydmljZV9saXN0KTogVXNlIGNvbnN0IGZvciBOQU1FLgoKCSogbnNzL25zc19maWxlcy9maWxlcy1wYXJzZS5jIChwYXJzZV9saXN0KTogQ29ycmVjdCBhbGlnbm1lbnQgZml4dXAuCgoJKiBzdHJpbmcvc3RyaW5nLmggKHN0cm5kdXBhKTogUGFzcyBtaXNzaW5nIGFyZyB0byBzdHJubGVuLgoKCSogaW5ldC9nZXRuZXRieXB0X3IuYzogUmVuYW1lZCB0byAuLi4KCSogaW5ldC9nZXRuZXRieWFkX3IuYzogdGhpczsgZml4ZWQgZnVuY3Rpb24gbmFtZS4KCSogaW5ldC9nZXRuZXRieXB0LmM6IFJlbmFtZWQgdG8gLi4uCgkqIGluZXQvZ2V0bmV0YnlhZC5jOiB0aGlzOyBmaXhlZCBmdW5jdGlvbiBuYW1lLgoKU2F0IEp1biAyOSAwMTowODozNSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIGdycC9nZXRncmdpZF9yLmMgKExPT0tVUF9UWVBFKTogRGVmaW5lIHRvIHN0cnVjdCBncm91cCwgbm90CglzdHJ1Y3QgcGFzc3dkLgoKRnJpIEp1biAyOCAyMzoyNTozNSAxOTk2ICBNaWxlcyBCYWRlciAgPG1pbGVzQGdudS5haS5taXQuZWR1PgoKCSogbG9naW4vbG9naW4uYyAobG9naW4pOiBJbml0aWFsaXplIERBVEEgc28gdGhhdCBzZXR1dGVudF9yIHdpbGwKCWFjdHVhbGx5IGRvIHNvbWV0aGluZy4KCkZyaSBKdW4gMjggMTY6NTM6MDEgMTk5NiAgRGF2aWQgTW9zYmVyZ2VyLVRhbmcgIDxkYXZpZG1AYXpzdGFybmV0LmNvbT4KCgkqIHJlc29sdi9yZXNfaGNvbmYuYyAoc3RybmR1cCk6IFJlbW92ZSBmdW5jdGlvbi4KCgkqIG5zcy9uc3N3aXRjaC5jIChuc3NfbG9va3VwX2Z1bmN0aW9uKTogRGVjbGFyZSBsb2FkYmFzZSBhbmQgcmVmCgl1c2luZyBFbGZXKCkgaW5zdGVhZCBvZiBFbGYzMl8qLgoKCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvaW5pdC1maXJzdC5oLAoJc3lzZGVwcy91bml4L3N5c3YvbGludXgvbTY4ay9pbml0LWZpcnN0LmgsCglzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L2luaXQtZmlyc3QuaDogTmV3IGZpbGVzLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pbml0LWZpcnN0LmM6IFVzZSBwbGF0Zm9ybS1kZXBlbmRlbnQKCWluaXQtZmlyc3QuaCB0byBtYWtlIGFic3RyYWN0IG1hY2hpbmUgZGVwZW5kZW50IHBhcnRzIG9mCglpbml0aWFsaXphdGlvbi4KCgkqIHN5c2RlcHMvdW5peC9hbHBoYS9zeXNkZXAuaDogVW5kbyBQSUMtb3B0aW1pemF0aW9uIG9mIHN5c2NhbGwKCWVycm9yIGhhbmRsaW5nLiAgSXQncyBzYWZlciB0aGF0IHdheS4KCgkqIHN5c2RlcHMvdW5peC9hbHBoYS9zeXNkZXAuUzogTWFrZSBsZGdwIHBhcnQgb2YgdGhlIHByb2xvZ3VlLgoJRml4IGJ5IFJpY2hhcmQgSGVuZGVyc29uLgoKCSogc3lzZGVwcy9hbHBoYS9kbC1tYWNoaW5lLmggKGVsZl9hbHBoYV9maXhfcGx0KTogRml4Cgl0eXBvL2V4dHJhbmVvdXMgd2hpdGVzcGFjZS4KCgkqIHN1bnJwYy94ZHIuYyAoeGRyX2ludCwgeGRyX3VfaW50KTogVXNlIDxsaW1pdHMuaD4gdG8gdGVzdAoJZGV0ZXJtaW5lIHdoYXQgaW50ZWdlciBzaXplcyB3ZSdyZSBkZWFsaW5nIHdpdGguCgpGcmkgSnVuIDI4IDE1OjQ2OjAyIDE5OTYgIE1pY2hhZWwgSS4gQnVzaG5lbGwsIHAvQlNHICA8bWliQGdudS5haS5taXQuZWR1PgoKCSogaHVyZC9odXJkc2lnLmMgKF9odXJkX2ludGVybmFsX3Bvc3Rfc2lnbmFsKTogSW4gcGVuZGluZyBzaWduYWwKCWNoZWNrIGZvciBzaWduYWwgemVybywgcmVwYWlyIGxvZ2ljYWwgc2Vuc2Ugb2YgdGVzdCBieQoJcGFyZW50aGVzaXppbmcgY29ycmVjdGx5LgoKCSogaHVyZC9odXJkc2lnLmMgKF9odXJkX2ludGVybmFsX3Bvc3Rfc2lnbmFsKTogSW4KCWNoZWNrLWZvci1wZW5kaW5nIHNpZ25hbHMgY29kZSwgcmVsZWFzZSBfaHVyZF9zaWdsb2NrIGJlZm9yZQoJanVtcGluZyB0byBkZWxpdmVyX3BlbmRpbmcuCgpUaHUgSnVuIDI3IDA0OjA0OjI3IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBjb25maWd1cmUuaW4gKGNvbmZpZ19tYWNoaW5lKTogTWFrZSBFTEYgdGhlIGRlZmF1bHQgZXZlbiBmb3IKCUxpbnV4L0FscGhhIHVubGVzcyBhIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGZvcm0gKi0qLWxpbnV4KmVjb2ZmCglpcyBzcGVjaWZpZWQuCgpGcmkgSnVuIDI4IDA3OjI3OjEwIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLWhvc3RzLmMgKEVOVERBVEEpOiBEZWZpbmUgaXQuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcGFyc2UuYyAoc3RydWN0IHBhcnNlcl9kYXRhKTogRGVmaW5lIGVudGRhdGEKCW1lbWJlciBvbmx5ICNpZmRlZiBFTlREQVRBLgoJKEVOVERBVEFfREVDTCk6IE5ldyBtYWNyby4KCShMSU5FX1BBUlNFUik6IFVzZSBpdCBmb3IgZW50ZGF0YSBkZWNsLgoJKHBhcnNlX2xpc3QpOiBGaW5kIHRoZSBzcGFjZSBmb3IgTElTVCBmcm9tIERBVEEtPmxpbmVidWZmZXIgaW5zdGVhZCBvZgoJZnJvbSB0aGUgaW5wdXQgTElORSwgd2hpY2ggbWlnaHQgbm90IGJlIHdyaXRhYmxlIGJ1ZmZlciBzcGFjZS4KCShMSU5FX1BBUlNFUik6IFVzZSBgcGFyc2VyX3N0Y2xhc3MnIGluIHBsYWNlIG9mIGBzdGF0aWMgaW5saW5lJy4KCVtFTlREQVRBXSAocGFyc2VyX3N0Y2xhc3MpOiAjZGVmaW5lIHRvIGBzdGF0aWMgaW5saW5lJy4KCVshRU5EQVRBXSAocGFyc2VyX3N0Y2xhc3MpOiAjZGVmaW5lIHRvIGVtcHR5LgoJWyFFTlREQVRBXSAocGFyc2VfbGluZSk6ICNkZWZpbmUgdG8gX25zc19maWxlc19wYXJzZV9FTlROQU1FOyB0aGUKCWZ1bmN0aW9uIGlzIGV4cG9ydGVkIHRvIC1sbnNzX2ZpbGVzIHVzZXJzLgoKCSogc3RyaW5nL3N0cm5kdXAuYzogQWRkIG1pc3NpbmcgYXJnLgoKCSogc3RyaW5nL3N0cmluZy5oIChzdHJuZHVwYSk6IExpa2V3aXNlLgoJKiBzdHJpbmcvc3RybmR1cC5jIChzdHJuZHVwKTogQWx3YXlzIHRlcm1pbmF0ZSB0aGUgc3RyaW5nLgoKVGh1IEp1biAyNyAxNDoyMjozMSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHN0ZGlvL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCB2c2NhbmYuCgkqIHN0ZGlvLWNvbW1vbi9NYWtlZmlsZSAocm91dGluZXMpOiBSZW1vdmUgdnNjYW5mLgoJKiBzdGRpby1jb21tb24vdnNjYW5mLmM6IE1vdmUgdG8gLi4uCgkqIHN0ZGlvL3ZzY2FuZi5jOiBoZXJlLgoKCSogcnBtL01ha2VmaWxlIChoZWFkZXJzLCBpbnN0YWxsLWxpYiwgaW5zdGFsbC1saWIuc28sCgl2ZXJzaW9uZWQsIGluc3RhbGwtYmluLCBpbnN0YWxsLXNiaW4sIGluc3RhbGwtZGF0YSwKCWluc3RhbGwtb3RoZXJzKTogQWRkICQoLVZBUklBQkxFKS4KCkZyaSBKdW4gMjggMDI6NDE6MDggMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIG5zcy9NYWtlZmlsZSAoZGF0YWJhc2VzKTogTmV3IHZhcmlhYmxlLgoJKHJvdXRpbmVzLCBsaWJuc3NfZmlsZXMtcm91dGluZXMpOiBVc2UgaXQuCgkoc3ViZGlyLWRpcnMpOiBDb21wdXRlIGZyb20gJChzZXJ2aWNlcykuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxscy5saXN0IChjcmVhdGVfbW9kdWxlLCBkZWxldGVfbW9kdWxlLAoJaW5pdF9tb2R1bGUsIGtsb2djdGwpOiBVc2UgRVhUUkEgaW4gdGhlICJjYWxsZXIiIGNvbHVtbiBzbyB0aGVzZSBnZXQKCWFkZGVkIHRvIHVuaXgtZXh0cmEtc3lzY2FsbHMgYW5kIHRodXMgY29tcGlsZWQgaW4gbWlzYy4KCgkqIHN0cmluZy9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgc3RybmR1cC4KCSogc3RyaW5nL3N0cm5kdXAuYzogTmV3IGZpbGUuCgkqIHN0cmluZy9zdHJpbmcuaDogRGVjbGFyZSBzdHJuZHVwLgoJKHN0cm5kdXBhKTogTmV3IG1hY3JvLgoKCSogc3RyaW5nL3N0cmluZy5oOiBEZWNsYXJlIF9fc3RyZHVwLgoJKiBzdHJpbmcvc3RyZHVwLmM6IERlYW5zaWRlY2xpemVkLiAgRGVmaW5lIF9fIG5hbWUgYW5kIHdlYWsgYWxpYXMuCgoJKiBzdHJpbmcvc3RyaW5nLmg6IERvbid0IGRlZmluZSBtZW1jY3B5IGFzIG1hY3JvIGZvciBbX19PUFRJTUlaRV9fXS4KClRodSBKdW4gMjcgMDI6NDk6MjggMTk5NiAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBjYXRnZXRzL2dlbmNhdC5jOiBBZGQgY2FzdHMgdG8gYXZvaWQgc2lnbmVkPC0+dW5zaWduZWQgd2FybmluZ3MuCgoJKiBncnAvaW5pdGdyb3Vwcy5jIChpbml0Z3JvdXBzKTogRGUtYW5zaS1meS4KCU1vdmUgZGVjbGFyYXRpb24gb2YgTkdST1VQUyBhbmQgR1JPVVBTIG91dHNpZGUgI2lmIHNvIHRoYXQKCXRoZSBjb2RlIGNvbXBpbGVzIGZvciBOR1JPVVBTX01BWCAhPSAwLgoKCSogaW5ldC9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBuZXRpbmV0L2V0aGVyLmggYW5kIG5ldGluZXQvaWZfZXRoZXIuaC4KCShyb3V0aW5lcyk6IEFkZCBldGhlcl9hdG9uLCBldGhlcl9hdG9uX3IsIGV0aGVyX2h0b24sIGV0aGVyX2xpbmUsCglldGhlcl9udG9hLCBldGhlcl9udG9hX3IsIGFuZCBldGhlcl9udG9oLgoJKiBpbmV0L2V0aGVyX2F0b24uYywgaW5ldC9ldGhlcl9hdG9uX3IuYywgaW5ldC9ldGhlcl9odG9uLmMsCglpbmV0L2V0aGVyX2xpbmUuYywgaW5ldC9ldGhlcl9udG9hLmMsIGluZXQvZXRoZXJfbnRvYV9yLmMsCglpbmV0L2V0aGVyX250b2guYzogTmV3IGZpbGVzLiAgSW1wbGVtZW50YXRpb24gb2YgZnVuY3Rpb25zIHRvCgloYW5kbGUgRXRoZXJuZXQgYWRkcmVzcyB0byBob3N0IG1hcHBpbmcuCgkqIGluZXQvbmV0aW5ldC9ldGhlci5oOiBOZXcgZmlsZS4gIERlY2xhcmUgZXRoZXJfKiBmdW5jdGlvbnMuCgkqIG5ldGluZXQvZXRoZXIuaDogV3JhcHBlciBhcm91bmQgaW5ldC9uZXRpbmV0L2V0aGVyLmggZm9yIGdsaWJjCgljb21waWxhdGlvbi4KCSogbnNzL2V0aGVycy1sb29rdXAuYzogTmV3IGZpbGUuICBMb29rdXAgZnVuY3Rpb24gZm9yIGV0aGVycyBkYXRhYmFzZS4KCSogbnNzL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBldGhlcnMtbG9va3VwLgoJKGxpYm5zc19maWxlcy1yb3V0aW5lcyk6IEFkZCBmaWxlcy1ldGhlcnMuCgoJKiBuc3MvZ2V0WFhlbnRfci5jOiBEb24ndCBkZWZpbmUgc2V0KmVudCBhbmQgZW5kKmVudCBmdW5jdGlvbgoJd2l0aCBfciBzdWZmaXguCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLVhYWC5jIChpbnRlcm5hbF9lbmRlbnQpOiBEb24ndCByZXNldAoJS0VFUF9TVFJFQU0gZXZlcnkgdGltZSBjYWxsZWQuCgkoX25zc19maWxlc19lbmQpOiBSZXNldCBLRUVQX1NUUkVBTSBoZXJlIGluc3RlYWQuCgkoaW50ZXJuYWxfZ2V0ZW50KTogSWYgU1RSRUFNID09IE5VTEwgdHJ5IHRvIG9wZW4gaW5zdGVhZCBvZgoJc2lnbmFsbGluZyBlcnJvci4KCVVzZSBjYXN0IHRvIHByZXZlbnQgd2FybmluZy4KCVRlcm1pbmF0ZSByZWFkIGxpbmUgaW4gY2FzZSB0aGUgYnVmZmVyIGlzIHRvbyBzbWFsbC4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtZXRoZXJzLmM6IE5ldyBmaWxlLiAgSW1wbGVtZW50YXRpb24gb2YKCUV0aGVybmV0IGFkcmVzczwtPmhvc3RuYW1lIGxvb2t1cCB0aHJvdWdoIGZpbGVzIGludGVyZmFjZS4KCgkqIHN0ZGxpYi9tYnN0b3djcy5jOiBEZWZpbmUgYmFzZWQgb24gbWJzcnRvd2NzKCkuCgkqIHN0ZGxpYi9tYnRvd2MuYzogRGVmaW5lIGJhc2VkIG9uIG1icnRvd2MoKS4KCSogc3RkbGliL3djc3RvbWJzLmM6IERlZmluZSBiYXNlZCBvbiB3Y3NydG9tYnMoKS4KCSogc3RkbGliL3djdG9tYi5jOiBEZWZpbmUgYmFzZWQgb24gd2NydG9tYigpLgoKCSogc3VucnBjL3hkci5jICh4ZHJfdV9pbnQpOiBBdm9pZCBib2d1cyBjYWxsIHRvCgl1bmV4cGVjdGVkX3NpemVzX2luX3hkcl91X2ludC4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9uZXRpbmV0L2lmX2V0aGVyLmg6IE5ldyBmaWxlLiAgR2VuZXJpYyBkZWNsYXJhdGlvbgoJb2YgYHN0cnVjdCBldGhlcl9hZGRyJy4KCSogc3lzZGVwcy91bml4L3N5c3YvbGludXgvbmV0aW5ldC9pZl9ldGhlci5oOiBOZXcgZmlsZS4gIExpbnV4IHNwZWNpZmljCglkZWNsYXJhdGlvbiBvZiBgc3RydWN0IGV0aGVyX2FkZHInLgoKCSogd2NzbWJzL21icnRvd2MuYzogSGFuZGxlIGNhc2Ugd2hlcmUgYXJndW1lbnQgUFMgaXMgTlVMTC4KCSogd2NzbWJzL21ic3J0b3djcy5jOiBEaXR0by4KCSogd2NzbWJzL3djcnRvbWIuYzogRGl0dG8uCgkqIHdjc21icy93Y3NydG9tYnMuYzogRGl0dG8uCgoJKiB3Y3NtYnMvbWJzaW5pdC5jOiBQcmVwYXJlIGZvciBQUyBiZWluZyBOVUxMLgoKV2VkIEp1biAyNiAxMzoxOTozNSAxOTk2ICBNaWxlcyBCYWRlciAgPG1pbGVzQGdudS5haS5taXQuZWR1PgoKCSogaHVyZC9nZXQtaG9zdC5jIDxmY250bC5oPjogTmV3IGluY2x1ZGUuCgkqIGh1cmQvc2V0LWhvc3QuYyA8ZmNudGwuaD46IE5ldyBpbmNsdWRlLgoJKF9odXJkX3NldF9ob3N0X2NvbmZpZyk6IEluY2x1ZGUgTkVXIGluIGFyZ3MgdG8gZGlyX2xpbmsuCglSZXR1cm4gTldST1RFLCBub3QgTlJFQUQuCgoJKiBzeXNkZXBzL21hY2gvaHVyZC9nZXRjd2QuYwoJKF9odXJkX2Nhbm9uaWNhbGl6ZV9kaXJlY3RvcnlfbmFtZV9pbnRlcm5hbCk6IERvbid0IGRlYWxsb2NhdGUKCURPVElEICYgRE9UREVWSUQgdW50aWwgd2UncmUgZmluaXNoZWQgd2l0aCB0aGVtICh3ZSBuZWVkIHRvIGtlZXAKCXRoZW0gYXQgbGVhc3QgdW50aWwgd2UndmUgZmV0Y2hlZCB0aGUgbmV4dCBsZXZlbCBvZiBpZCBwb3J0cywgc28KCXRoYXQgbWFjaCB3aWxsIGJlIGFibGUgdG8gdXNlIHRoZSBzYW1lIG5hbWUgaWYgdGhleSdyZSB0aGUgc2FtZSkuCglBZGQgaW5uZXJfZXJybG9zZTogbGFiZWwsIHdoaWNoIGRlYWxsb2NhdGVzIERPVElEICYgRE9UREVWSUQgYW5kCglqdW1wcyB0byBlcnJsb3NlLCBmb3IgdGhvc2UgcGxhY2VzIHdoZXJlIHN1Y2ggY2xlYW51cCBpcyBuZWVkZWQuCgpXZWQgSnVuIDI2IDAxOjU4OjQ5IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXBhcnNlLmMgKHBhcnNlX2xpc3QpOiBDb3VudCBudWxsIGluIEVPTCBjYWxjLgoKCU1vdmUgREIgY29kZSBpbnRvIHNlcGFyYXRlIC1sZGIgbGlicmFyeS4KCSogZGIvTWFrZWZpbGUgKGV4dHJhLWxpYnMpOiBOZXcgdmFyaWFibGUsIGxpc3QgbGliZGIuCgkocm91dGluZXMpOiBSZW5hbWVkIHRvIGxpYmRiLXJvdXRpbmVzLgoJKiBzaGxpYi12ZXJzaW9uczogQWRkIGxpYmRiPTIuCgoJKiBuc3MvbmV0d29yay1sb29rdXAuYyAoREVGQVVMVF9DT05GSUcpOiBOZXcgbWFjcm8uCgkqIG5zcy9ob3N0LWxvb2t1cC5jIChERUZBVUxUX0NPTkZJRyk6IE5ldyBtYWNyby4KCgkqIG5zcy9uc3N3aXRjaC5jIChuc3NfcGFyc2Vfc2VydmljZV9saXN0KTogVXNlIF9fc3RybmNhc2VjbXAgaW5zdGVhZAoJb2Ygc3RybmNhc2VjbXAuICBFeHRlbmQgc3ludGF4IHRvIGdyb2sgWyFmb289YmFyXS4KCgkqIHN5c2RlcHMvZ2VuZXJpYy9zdHJuY2FzZS5jOiBEZWZpbmUgX19zdHJuY2FzZWNtcCB3aXRoIHN0cm5jYXNlY21wIGFzCgl3ZWFrIGFsaWFzLgoJKiBzdHJpbmcvc3RyaW5nLmg6IERlY2xhcmUgX19zdHJuY2FzZWNtcC4KCgkqIG5zcy9uc3N3aXRjaC5jIChuc3NfcGFyc2VfZmlsZSk6IENhbGwgX19nZXRsaW5lLCBub3QgZ2V0bGluZS4KCShzZXJ2aWNlX2FsaWFzKTogVmFyaWFibGUgcmVtb3ZlZC4KCShuc3NfcGFyc2Vfc2VydmljZV9saXN0KTogTmV3IGZ1bmN0aW9uLCBicm9rZW4gb3V0IG9mIG5zc19nZXRsaW5lLgoJUmVtb3ZlIGFsaWFzIGNvbnZlcnNpb247IHdlIHdpbGwganVzdCB1c2Ugc3ltbGlua3MuCgkoX19uc3NfZGF0YWJhc2VfbG9va3VwKTogVGFrZSBuZXcgc3RyaW5nIGFyZyBERUZDT05GSUcuCglJZiBubyBlbnRyeSBleGlzdHMsIG1ha2Ugb25lIHdpdGggc2VydmljZSBsaXN0IHBhcnNlZCBmcm9tIHRoYXQuCgkqIG5zcy9uc3N3aXRjaC5oOiBVcGRhdGUgcHJvdG9jb2wgZm9yIF9fbnNzX2RhdGFiYXNlX2xvb2t1cC4KCSogbnNzL1hYWC1sb29rdXAuYyAoREVGQVVMVF9DT05GSUcpOiBOZXcgbWFjcm8sIHNldCB0byAwIGlmIHVuZGVmaW5lZC4KCShEQl9MT09LVVBfRkNUKTogUGFzcyBpdCB0byBfbnNzX2RhdGFiYXNlX2xvb2t1cC4KCgkqIGdycC9pbml0Z3JvdXBzLmM6IFJld3JpdHRlbiB1c2luZyBnZXRncmVudC4gIEhhbmRsZSB1bmxpbWl0ZWQgZ3JvdXAKCWxpc3Qgc2l6ZS4KCgkqIHN1bnJwYy94ZHIuYyAoeGRyX2ludCk6ICNpZiAwIG91dCB1bnJlc29sdmVkIHJlZmVyZW5jZXMgaW4gZGVhZCBjb2RlLgoKV2VkIEp1biAyNiAwMTo1Njo1MCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NhbGUuYyAobG9uZ19vcHRpb25zKTogU2hvcnQgZm9ybSBvZgoJLS12ZXJzaW9uIG9wdGlvbiBpcyBgLVYnLgoJKG1haW4pOiBSZWNvZ25pemUgYC1WJyBhcyBvcHRpb24sIG5vdCBgLXYnLgoJQ2FsbCBgdXNhZ2UnIGluc3RlYWQgb2YgcHJpbnRpbmcgZXJyb3IgbWVzc2FnZSBmb3IgaWxsZWdhbAoJb3B0aW9uLgoJKHVzYWdlKTogRG9jdW1lbnQgYC1WJy4KClR1ZSBKdW4gMjUgMTc6MjI6NTUgMTk5NiAgTWlsZXMgQmFkZXIgIDxtaWxlc0BnbnUuYWkubWl0LmVkdT4KCgkqIHN5c2RlcHMvbWFjaC9odXJkL2dldGN3ZC5jCgkoX2h1cmRfY2Fub25pY2FsaXplX2RpcmVjdG9yeV9uYW1lX2ludGVybmFsKTogSW5pdGlhbGl6ZSBQQVJFTlQgdG8KCVRISVNESVIsIGFuZCBkb24ndCBldmVyIGRlYWxsb2NhdGUgUEFSRU5UIHVubGVzcyBpdCdzICE9IFRISVNESVIuCgpUdWUgSnVuIDI1IDEwOjU4OjIzIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBpbmV0L2dldHJwY2VudC5jOiBGaXggbWFjcm9zLgoJKiBpbmV0L2dldHJwY2VudF9yLmM6IEZpeCBtYWNyb3MuCgoJKiBlbGYvZGxzeW0uYyAoZGxzeW0pOiBTZWFyY2ggdGhlIGdsb2JhbCBzY29wZSBpZiBIQU5ETEUgaXMgbnVsbC4KCgkqIGVsZi9kbC1sb2FkLmMgKF9kbF9tYXBfb2JqZWN0X2Zyb21fZmQpOiBJbml0aWFsaXplIEwuCgpUdWUgSnVuIDI1IDA5OjU1OjQ3IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQEFaU3Rhck5ldC5jb20+CgoJKiBjYXRnZXRzL2dlbmNhdC5jICh3cml0ZV9vdXQpOiBVc2UgJVp1IHRvIHByaW50IHZhcmlhYmxlcyBvZiB0eXBlCglzaXplX3QuCgkqIHJlc29sdi9yZXNfZGVidWcuYyAoX19wX3JyKTogUHJpbnQgc2l6ZV90IHZhcmlhYmxlIGFzICVsdSBhbmQKCWNhc3QgaXQgdG8gKHVuc2lnbmVkIGxvbmcpIHRvIG1ha2UgaXQgd29yayBib3RoIG9uIDMyIGFuZCA2NAoJYml0IGFyY2hpdGVjdHVyZXMuCgpTYXQgSnVuIDIyIDEzOjA1OjI1IDE5OTYgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoKCSogbG9jYWxlL01ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIGBwcm9ncmFtcy8nIHByZWZpeCB0byBhbGwKCWZpbGVzIGluIHRoYXQgZGlyZWN0b3J5LgoKCSogTWFrZXJ1bGVzIChkaXN0aW5mby12YXJzKTogQXNzaWduIHN1YmRpciBkaXJlY3RseSBzbyB0aGF0IGBpZmRlZgoJc3ViZGlyJyB3b3Jrcy4KCgkqIE1ha2VUQUdTIChzb3VyY2VzLCBoZWFkZXJzKTogTWFrZSB0aGVtIHNpbXBseSBleHBhbmRlZCB2YXJpYWJsZXMKCXNvIHRoYXQgYWxsLWRpc3QgaXMgZXhwYW5kZWQgYmVmb3JlIGl0IGlzIGNoYW5nZWQuCgpUdWUgSnVuIDI1IDAyOjU5OjExIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBNYWtlLWRpc3QgKGRpc3QpOiBEb24ndCBkZXBlbmQgb24gY3J5cHQgdGFyIGZpbGUuICBSZW1vdmUgdGhhdCBydWxlLgoJKiBNYWtlZmlsZSAoc3ViZGlycyk6IFJlbW92ZSBjcnlwdC4KCSogY3J5cHQ6IERpcmVjdG9yeSByZW1vdmVkLiAgSXQgd2lsbCBiZSBtYWRlIGFuIGluZGVwZW5kZW50IGxpYnJhcnkKCWRpc3RyaWJ1dGlvbi4KCgkqIE1ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIHJwbS97TWFrZWZpbGUsdGVwbGF0ZSxycG1yY30uCgoJKiBpbmV0L2dldHJwY2VudF9yLmMgKERBVEFCQVNFX05BTUUpOiBOZXcgbWFjcm8uCgoJKiBpbmV0L2dldHJwY2J5bnVtYmVyLmMgKEJVRkxFTik6IE5ldyBtYWNyby4KCgkqIGNvbmZpZ3VyZS5pbiAoLS1uby13aG9sZS1hcmNoaXZlIGNoZWNrKTogUmVtb3ZlIGJhY2tzbGFzaGVzIGluIGNtZC4KCgkqIE1ha2VmaWxlIChoZWFkZXJzKTogQWRkIGxpYmMtbG9jay5oLgoJKiBzeXNkZXBzL3N0dWIvbGliYy1sb2NrLmg6IE5ldyBmaWxlLgoKCSogaW5ldC9nZXRycGNieW51bWJlci5jOiBSZW1vdmUgX3IgdHlwby4KCgkqIGVsZi9kbC1sb2FkLmMgKF9kbF9tYXBfb2JqZWN0KTogRml4IHR5cG8gaW4gbGFzdCBjaGFuZ2UuCgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXBhcnNlLmMgKHBhcnNlX2xpc3QpOiBSZXNldCBFTFQgZm9yIGVsZW1lbnRzCglhZnRlciB0aGUgZmlyc3QhCgoJKiBuc3MvbnNzd2l0Y2guYyAoX19uc3NfZGF0YWJhc2VfbG9va3VwKTogSWYgbnNzd2l0Y2guY29uZiBpcyBtaXNzaW5nCglvciBkb2Vzbid0IG1lbnRpb24gREFUQUJBU0UsIHVzZSBhbiBpbnRlcm5hbCBkZWZhdWx0IGVxdWl2YWxlbnQgdG8KCSJEQVRBQkFTRTogY29tcGF0IFtOT1RGT1VORD1yZXR1cm5dIGRucyBbTk9URk9VTkQ9cmV0dXJuXSBmaWxlcyIuCgkobnNzX2xvb2t1cF9mdW5jdGlvbik6IENhbGwgbnNzX25ld19zZXJ2aWNlIGFzIG5lZWRlZC4KCShuc3NfcGFyc2VfZmlsZSk6IERvbid0IGJvdGhlciBjYWxsaW5nIG5zc19uZXdfc2VydmljZSBoZXJlLgoKCSogZ3JwL2ZnZXRncmVudC5jIChMSU5FX1BBUlNFUik6IFBhc3MgemVybyBTV0FMTE9XIGFyZyBmb3IgZmllbGRzLgoJKiBwd2QvZmdldHB3ZW50LmM6IExpa2V3aXNlLgoKCSogbWFsbG9jL21hbGxvYy5oOiBEZWNsYXJlIG1hbGxvY19vYmplY3RfYWxsb2NhdGVkX3NpemUsIG1hbGxvY193YWxrLgoJKiBtYWxsb2MvTWFrZWZpbGUgKGRpc3Qtcm91dGluZXMpOiBBZGQgbWFsbG9jLXNpemUsIG1hbGxvYy13YWxrLgoJKiBtYWxsb2MvbWFsbG9jLXNpemUuYzogTmV3IGZpbGUuCgkqIG1hbGxvYy9tYWxsb2Mtd2Fsay5jOiBOZXcgZmlsZS4KCgkqIG1hbGxvYy9tYWxsb2MtZmluZC5jIChtYWxsb2NfZmluZF9vYmplY3RfYWRkcmVzcyk6IFJldHVybiBudWxsIGlmCglQVFIgaXMgb3V0c2lkZSB0aGUgaGVhcC4KCgkqIGVsZi9kbC1sb2FkLmMgKF9kbF9tYXBfb2JqZWN0KTogSWYgdGhlIHJlcXVlc3RlZCBuYW1lIG1hdGNoZXMgdGhlCglzb25hbWUgb2YgYSBsb2FkZWQgb2JqZWN0LCB1c2UgdGhhdCBvYmplY3QuCgpNb24gSnVuIDI0IDE5OjU3OjAxIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBNYWtlZmlsZSAoc3ViZGlycyk6IEFkZCBuc3MuCgoJKiBpbmV0L01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBnZXRycGNlbnQsIGdldHJwY2J5bmFtZSwKCWdldHJwY2J5bnVtYmVyLCBnZXRycGNlbnRfciwgZ2V0cnBjYnluYW1lX3IsIGdldHJwY2J5bnVtYmVyX3IuCgkqIGluZXQvZ2V0cnBjYnludW1iZXJfci5jOiBOZXcgZmlsZS4KCSogaW5ldC9nZXRycGNieW51bWJlci5jOiBOZXcgZmlsZS4KCSogaW5ldC9nZXRycGNieW5hbWUuYzogTmV3IGZpbGUuCgkqIGluZXQvZ2V0cnBjYnluYW1lX3IuYzogTmV3IGZpbGUuCgkqIGluZXQvZ2V0cnBjZW50X3IuYzogTmV3IGZpbGUuCgkqIGluZXQvZ2V0cnBjZW50LmM6IE5ldyBmaWxlLgoJKiBuc3MvcnBjLWxvb2t1cC5jOiBOZXcgZmlsZS4KCSogbnNzL25zc19maWxlcy9maWxlcy1ycGMuYzogTmV3IGZpbGUuCgkqIG5zcy9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgcnBjLWxvb2t1cC4KCShsaWJuc3NfZmlsZXMtcm91dGluZXMpOiBBZGQgZmlsZXMtcnBjLgoJKiBzdW5ycGMvTWFrZWZpbGUgKHJvdXRpbmVzKTogUmVtb3ZlIGdldHJwY2VudC4KCSogc3VucnBjL2dldHJwY2VudC5jOiBGaWxlIHJlbW92ZWQuCgoJKiBuc3MvZ2V0WFhlbnRfci5jIChSRUVOVFJBTlRfR0VUTkFNRSk6IENsZWFyIE5PX01PUkUgd2hlbiBOSVAgaXMKCW5vbi1udWxsIG9uIGVudHJ5LgoKCSogTWFrZWNvbmZpZyAocnBhdGgtbGluayk6IEFkZCAkKG5zc29iamRpcikuCgkobnNzb2JqZGlyKTogTmV3IHZhcmlhYmxlLgoKCSogTWFrZXJ1bGVzOiBNb3ZlIHNoYXJlZCBsaWJyYXJ5IGJ1aWxkaW5nIGJlZm9yZSBvYmplY3RzIHJ1bGVzLCBzbwoJdmVyc2lvbnMgYXJlIGtub3duIGJlZm9yZSBleHRyYS1saWIubWsgZ2V0cyBpbmNsdWRlZC4KCSogZXh0cmEtbGliLm1rIChsaWItbm9yYW5saWIpOiBEZXBlbmQgb24gdGhlIHNoYXJlZCBvYmplY3QgdG9vLgoKCSogcHdkL2dldHB3dWlkLmM6IFJld3JpdHRlbiB1c2luZyBuc3MuCgkqIHB3ZC9nZXRwd25hbS5jOiBMaWtld2lzZS4KCSogcHdkL2dldHB3ZW50LmM6IExpa2V3aXNlLgoJKiBncnAvZ2V0Z3JuYW0uYzogTGlrZXdpc2UuCgkqIGdycC9nZXRncmdpZC5jOiBMaWtld2lzZS4KCSogZ3JwL2dldGdyZW50LmM6IExpa2V3aXNlLgoJKiBwd2QvTWFrZWZpbGUgKHJvdXRpbmVzKTogQWRkIGdldHB3ZW50X3IsIGdldHB3bmFtX3IsIGdldHB3dWlkX3IuCgkqIHB3ZC9nZXRwd2VudF9yLmM6IE5ldyBmaWxlLgoJKiBwd2QvZ2V0cHduYW1fci5jOiBOZXcgZmlsZS4KCSogcHdkL2dldHB3dWlkX3IuYzogTmV3IGZpbGUuCgkqIGdycC9NYWtlZmlsZSAocm91dGluZXMpOiBBZGQgZ2V0Z3JlbnRfciwgZ2V0Z3JnaWRfciwgZ2V0Z3JuYW1fci4KCSogZ3JwL2dldGdybmFtX3IuYzogTmV3IGZpbGUuCgkqIGdycC9nZXRncmdpZF9yLmM6IE5ldyBmaWxlLgoJKiBncnAvZ2V0Z3JlbnRfci5jOiBOZXcgZmlsZS4KCSogZ3JwL01ha2VmaWxlIChyb3V0aW5lcyk6IFJlbW92ZSBncnBvcGVuLCBncnByZWFkLgoJKiBwd2QvTWFrZWZpbGUgKHJvdXRpbmVzKTogUmVtb3ZlIHB3ZG9wZW4sIHB3ZHJlYWQuCgkqIGdycC9ncnBvcGVuLmMsIGdycC9ncnByZWFkLmMsIHB3ZC9wd2RvcGVuLmMsIHB3ZC9wd2RyZWFkLmM6IFJlbW92ZWQuCgoJKiBwd2QvZmdldHB3ZW50LmM6IFJld3JpdHRlbiB1c2luZyBmaWxlcy1wYXJzZS5jLgoJKiBncnAvZmdldGdyZW50LmM6IExpa2V3aXNlLgoKCSogbnNzL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBncnAtbG9va3VwIGFuZCBwd2QtbG9va3VwLgoJKiBuc3MvcHdkLWxvb2t1cC5jLCBuc3MvZ3JwLWxvb2t1cC5jOiBOZXcgZmlsZXMuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtZ3JwLmM6IE5ldyBmaWxlLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLXB3ZC5jOiBOZXcgZmlsZS4KCgkqIG5zcy9NYWtlZmlsZSAoc3ViZGlyLWRpcnMpOiBOZXcgdmFyaWFibGU7IHVzZSBpdCBpbiB2cGF0aC4KCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtcGFyc2UuYzogTmV3IGZpbGUuCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtWFhYLmM6IE5ldyBmaWxlLgoJKiBuc3MvbnNzX2ZpbGVzL2ZpbGVzLWhvc3RzLmMsIG5zcy9uc3NfZmlsZXMvZmlsZXMtcHJvdG8uYywKCW5zcy9uc3NfZmlsZXMvZmlsZXMtc2VydmljZS5jLCBuc3MvbnNzX2ZpbGVzL2ZpbGVzLW5ldHdvcmsuYzoKCVJld3JpdHRlbiB1c2luZyB0aGVtLgoKCSogbnNzL01ha2VmaWxlIChsaWJuc3NfZmlsZXMtcm91dGluZXMpOiBSZW1vdmUgZmlsZXMtaG9zdC4KCUFkZCBmaWxlcy1ob3N0cywgZmlsZXMtZ3JwLCBmaWxlcy1wd2QuCgoJKiBuc3MvbnNzX2Rucy9kbnMtbmV0d29yay5jOiBEb24ndCBpbmNsdWRlIDxwdGhyZWFkLmg+LgoKTW9uIEp1biAyNCAyMjozOToxMiAxOTk2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEB0YW11LmVkdT4KCgkqIHN5c2RlcHMvYWxwaGEvZGwtbWFjaGluZS5oIChFTEZfTUFDSElORV9SVU5USU1FX1RSQU1QT0xJTkUpOgoJQSAucGx0IGVudHJ5IG5vdyBsb2FkcyB0aGUgLnJlbGEucGx0IG9mZnNldCBkaXJlY3RseSByYXRoZXIKCXRoYW4gbWFraW5nIHVzIGNhbGN1bGF0ZSBpdC4KClN1biBKdW4gMjMgMTU6MjQ6MDUgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIHRpbWUvTWFrZWZpbGUgKCQoaW5zdGFsbGVkLWxvY2FsdGltZS1maWxlKSBydWxlKTogRG8KCSQobWFrZS10YXJnZXQtZGlyZWN0b3J5KSBmaXJzdC4KCgkqIHJlc29sdi5oOiBGaXggd3JhcHBlciBmb3IgcmVzb2x2L3Jlc29sdi5oLgoKCSogY29uZmlndXJlLmluIChsZCAtLW5vLXdob2xlLWFyY2hpdmUgY2hlY2spOiBVc2UgQUNfVFJZX0NPTU1BTkQuCglDb21waWxlIGR1bW15IGZpbGUgYW5kIHBhc3MgLW5vc3RkbGliIC1ub3N0YXJ0ZmlsZXMgc28gYXMgbm90IHRvCglyZXF1aXJlIGluc3RhbGxlZCBsaWJyYXJpZXMuCgoJKiBzaGxpYi12ZXJzaW9ucyAoKi0qLSopOiBTZXQgbGlicmVzb2x2PTIsIGxpYm5zc19maWxlcz0xLAoJbGlibnNzX2Rucz0xLgoKU3VuIEp1biAyMyAxOTo0MjowNSAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIHJlc29sdi9NYWtlZmlsZSAoZGlzdHJpYnV0ZSk6IFJlbW92ZSByZXNfaGNvbmYuaDsgYWRkIG1hcHY0djZhZGRyLmgKCWFuZCBtYXB2NHY2aG9zdGVudC5oLgoJKHJvdXRpbmVzKTogTW92ZSByZXMqIGFuZCBnZXRobmFtYWRkciBpbnRvIGxpYnJlc29sdi1yb3V0aW5lcy4KCShsaWJyZXNvbHYtcm91dGluZXMpOiBOZXcgdmFyaWFibGUsIHB1dCB0aGVtIHRoZXJlLgoJKGV4dHJhLWxpYnMpOiBOZXcgdmFyaWFibGUsIGxpc3QgbGlicmVzb2x2LgoJKENQUEZMQUdTKTogQWRkIC1EIGZvciBnZXQqYnkqIHRvIHJlc19nZXQqYnkqLgoKCSogcmVzb2x2L25ldGRiLmggKF9QQVRIX05TU1dJVENIX0NPTkYpOiBOZXcgbWFjcm8uCgoJKiBpbmV0L2hlcnJuby5jOiBOZXcgZmlsZS4KCgkqIHJlc29sdi9yZXNfaW5pdC5jOiBSZW1vdmUgcmVzX2hjb25mIGNhbGxzLgoKCSogbnNzL01ha2VmaWxlLCBuc3MvWFhYLWxvb2t1cC5jLCBuc3MvZmlsZS1sb29rdXAuYywKCW5zcy9nZXRYWGJ5WVkuYywgbnNzL2dldFhYYnlZWV9yLmMsIG5zcy9nZXRYWGVudC5jLAoJbnNzL2dldFhYZW50X3IuYywgbnNzL2hvc3QtbG9va3VwLmMsIG5zcy9uZXR3b3JrLWxvb2t1cC5jLAoJbnNzL25zc3dpdGNoLmMsIG5zcy9uc3N3aXRjaC5oLCBuc3MvcHJvdG8tbG9va3VwLmMsCgluc3Mvc2VydmljZS1sb29rdXAuYzogTmV3IGZpbGVzLiAgSW1wbGVtZW50YXRpb24gb2YgbmFtZQoJc2VydmljZSBzd2l0Y2gsIGZvbGxvd2luZyB0aGUgYXBwcm9hY2ggaW4gU29sYXJpcy4KCUludGVyZmFjZSBzcGVjaWZpY2F0aW9uIGFuZCBnZW5lcmFsIHN0cnVjdHVyZSBpbnNwaXJlZCBieSBQZXRlcgoJRXJpa3Nzb24gPHBlbkBseXNhdG9yLmxpdS5zZT4uCgkqIG5zcy9uc3NfZmlsZXMvZmlsZXMtaG9zdC5jLCBuc3MvbnNzX2ZpbGVzL2ZpbGVzLW5ldHdvcmsuYywKCW5zcy9uc3NfZmlsZXMvZmlsZXMtcHJvdG8uYywgbnNzL25zc19maWxlcy9maWxlcy1zZXJ2aWNlLmM6CglJbXBsZW1lbnRhdGlvbiBvZiBsaWJuc3NfZmlsZXMuc28gbW9kdWxlIGZvciBmaWxlIGJhc2VkIGRhdGFiYXNlcwoJaW4gTlNTIHNlcnZpY2UuCgkqIG5zcy9uc3NfZG5zL2Rucy1ob3N0LmMsIG5zcy9uc3NfZG5zL2Rucy1uZXR3b3JrLmM6IEltcGxlbWVudGF0aW9uCglpZiBsaWJuc3NfZG5zLnNvIG1vZHVsZSBmb3IgRE5TIG5hbWUgbG9va3VwIGluIE5TUyBzZXJ2aWNlLgoKCSogaW5ldC9nZXRwcm90by5jLCBpbmV0L2dldHBydGVudC5jLCBpbmV0L2dldHBydG5hbWUuYywKCWluZXQvZ2V0c2VydmVudC5jLCBpbmV0L2dldHNydmJ5bm0uYywgaW5ldC9nZXRzcnZieXB0LmM6CglDaGFuZ2VkIHRvIHNlcnZlIGFzIGludGVyZmFjZSB0byBOU1MuCgkqIGluZXQvZ2V0aHN0YnlhZC5jLCBpbmV0L2dldGhzdGJ5YWRfci5jLCBpbmV0L2dldGhzdGJ5bm0uYywKCWluZXQvZ2V0aHN0YnlubTIuYywgaW5ldC9nZXRoc3RieW5tMl9yLmMsIGluZXQvZ2V0aHN0YnlubV9yLmMsCglpbmV0L2dldGhzdGVudC5jLCBpbmV0L2dldGhzdGVudF9yLmMsIGluZXQvZ2V0bmV0YnlubS5jLAoJaW5ldC9nZXRuZXRieW5tX3IuYywgaW5ldC9nZXRuZXRieXB0LmMsIGluZXQvZ2V0bmV0YnlwdF9yLmMsCglpbmV0L2dldG5ldGVudC5jLCBpbmV0L2dldG5ldGVudF9yLmMsIGluZXQvZ2V0cHJvdG9fci5jLAoJaW5ldC9nZXRwcnRlbnRfci5jLCBpbmV0L2dldHBydG5hbWVfci5jLCBpbmV0L2dldHNlcnZlbnRfci5jLAoJaW5ldC9nZXRzcnZieW5tX3IuYywgaW5ldC9nZXRzcnZieXB0X3IuYzogTmV3IGZpbGVzLiAgSW1wbGVtZW50CglpbnRlcmZhY2VzIHRvIE5TUywgaW5jbHVkaW5nIHJlZW50cmFudCBmdW5jdGlvbnMuCgoJKiByZXNvbHYvZ2V0bmV0YnlhZGRyLmMsIHJlc29sdi9nZXRuZXRieW5hbWUuYywgcmVzb2x2L2dldG5ldGVudC5jLAoJcmVzb2x2L3NldGhvc3RlbnQuYzogUmVtb3ZlZDogIE9ic29sZXRlZCBieSBOU1MuCgoJKiByZXNvbHYvbWFwdjR2NmFkZHIuaCwgcmVzb2x2L21hcHY0djZob3N0ZW50Lmg6IEV4dHJhY3RlZCBmcm9tCglnZXRobmFtYWRkci5jLiAgVGhlc2UgcHJpdmF0ZSBmdW5jdGlvbnMgYXJlIG5vdyB1c2VkIGluIG1vcmUKCXRoYW4gb25lIGZpbGUuCgoJKiByZXNvbHYvaW5ldF9wdG9uLmMsIHJlc29sdi9nZXRobmFtYWRkci5jOiBVcGRhdGVkIHRvIGJpbmQtNC45LjQtVDVCLgoKU2F0IEp1biAyMiAxNjo0OTo0NyAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIHJwbS9NYWtlZmlsZSAoJChjb25maWcpKTogTWFrZSBzdXJlIHRoZSB3b3JkIGxpc3QgaW4gdGhlIGZvcgoJbG9vcCBpcyBzeW50YWN0aWNhbGx5IG5vbi1lbXB0eS4KClNhdCBKdW4gMjIgMjE6Mjk6NTIgMTk5NiAgUm9sYW5kIE1jR3JhdGggIDxyb2xhbmRAZGVsYXN5ZC5nbnUuYWkubWl0LmVkdT4KCgkqIFZlcnNpb24gMS45MiB0ZXN0IHJlbGVhc2UuCgpTYXQgSnVuIDIyIDIzOjMwOjA3IDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxscy5saXN0IChrc3lzbG9nX2N0bCk6IFJlbmFtZQoJdG8ga2xvZ2N0bCB0byBtYXRjaCBwcm90b3R5cGUgaW4gc3lzL2tsb2cuaC4KCgkqIHN5c2RlcHMvcG9zaXgvbGliY19mYXRhbC5jOiBBZGQgaW5jbHVkZSBvZiA8c3RyaW5nLmg+LgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9nZXRob3N0aWQuYzogRGl0dG8uCgoJKiBzeXNkZXBzL3Bvc2l4L2dldGN3ZC5jIChfX2Nhbm9uaWNhbGl6ZV9kaXJlY3RvcnlfbmFtZV9pbnRlcm5hbCk6CglSZW1vdmUuICBDb2RlIGlzIG5vdyBwYXJ0IG9mIF9fZ2V0Y3dkIGFnYWluLiAgVGhlIG9sZCBmdW5jdGlvbgoJbmV2ZXIgcmVhbGx5IHdvcmtlZCBmb3IgYW55dGhpbmcgYnV0IFRISVNESVI9PSIuIi4KCgkqIHN5c2RlcHMvYWxwaGEvTWFrZWZpbGUgKENGTEFHUy1ydGxkLmMpOiBBZGQgLW1idWlsZC1jb25zdGFudHMKCW9ubHkgd2hlbiBidWlsZGluZyBFTEYgdmVyc2lvbiBvZiBsaWJyYXJ5LgoKCSogbGliaW8vbGliaW9QLmggKF9JT192c2NhbmYpOiBBZGQgcHJvdG90eXBlLgoKCSogcG9zaXgvdW5pc3RkLmggKHN5c2NhbGwpOiBDaGFuZ2Ugc3lzbm8gYXJnIGFuZCByZXR1cm4gdmFsdWUKCXRvIGludCBsb25nLgoKU2F0IEp1biAyMiAxMDo0NDowOSAxOTk2ICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEBkZWxhc3lkLmdudS5haS5taXQuZWR1PgoKCSogdmVyc2lvbi5oIChWRVJTSU9OKTogVXBkYXRlZCB0byAxLjkyLgoKCSogbWlzYy9NYWtlZmlsZSAoaGVhZGVycyk6IEFkZCBhci5oLgoJKiBtaXNjL2FyLmg6IE5ldyBmaWxlLgoKCSogY29uZmlnLm1ha2UuaW4gKEJVSUxEX0NDKTogTmV3IHZhcmlhYmxlLgoJKiBjb25maWd1cmUuaW46IENoZWNrIGZvciBCVUlMRF9DQyBpZiAkaG9zdCAhPSAkYnVpbGQuCgoJKiBwb3NpeC9nbG9iLmM6IEluY2x1ZGUgPGFsbG9jYS5oPiBvbmx5IFtIQVZFX0FMTE9DQV9IXSwgbm90IFtzcGFyY10uCgoJKiBNYWtlcnVsZXMgWyEgb2JqZWN0c10gKHN1YmRpcl9saWIpOiBEZXBlbmQgb24gdGhlIHN0YW1wJG8gZmlsZXMuCgkoc3RhbXAkbyBmaWxlcyk6IE5ldyB0YXJnZXRzLCBjcmVhdGUgdGhlbSBlbXB0eSwgbm8gZGVwcy4KCgkqIHJwbS90ZW1wbGF0ZSAoU291cmNlKTogTmV3IGZpZWxkLgoJKCVwcmVwLCAlYnVpbGQsICVpbnN0YWxsKTogTmV3IHNlY3Rpb25zLgoJKCVmaWxlcyk6IEFkZCAlZG9jIEZBUSBORVdTIE5PVEVTIFJFQURNRS4KCSogcnBtL3JwbXJjIChidWlsZGRpcik6IFJlbW92ZWQuCgpGcmkgSnVuIDIxIDAwOjI3OjUxIDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBlbGYvZGwtbG9hZC5jIChfZGxfbWFwX29iamVjdF9mcm9tX2ZkKTogRml4IG1hcHBpbmcgYW5kIGxfcGhkcgoJZ3Vlc3NpbmcgdG8gbm90IGFzc3VtZSBwX3ZhZGRyIG9mIGZpcnN0IGxvYWQgY21kIGlzIHplcm8uCgoJKiBzeXNkZXBzL3NwYXJjL2VsZi9zdGFydC5TOiBOZXcgZmlsZS4KCSogc3lzZGVwcy9zcGFyYy9kbC1tYWNoaW5lLmg6IE5ldyBmaWxlLgoKCSogcG9zaXgvZm5tYXRjaC5jIChmbm1hdGNoKTogRml4IFwqWyo/XSsgY2FzZSB0byBpbmNyZW1lbnQgbmFtZSBwdHIKCW9ubHkgZm9yID9zLCBub3QgZm9yICpzLiAgRml4IGZyb20gQ2hldCBSYW1leS4KCglGaXhlcyB0aGFua3MgdG8gUmFqYSBSIEhhcmluYXRoIDxoYXJpbmF0aEBjcy51bW4uZWR1PjoKCSogc3lzZGVwcy91bml4L3N5c3YvdXRtcGJpdHMuaDogRGVmaW5lIF9IQVZFX1VUX3tUWVBFLElELFRWLEhPU1R9LgoJVXNlIF9fe0JFR0lOLEVORH1fREVDTFMuCgkoX1BBVEhfV1RNUCwgX1BBVEhfVVRNUCwgX1BBVEhfTEFTVExPRyk6IE5ldyBtYWNyb3MuCgkqIGxvZ2luL3V0bXAuaCAoVVRNUF9GSUxFLCBVVE1QX0ZJTEVOQU1FLCBXVE1QX0ZJTEUsIFdUTVBfRklMRU5BTUUpOgoJTmV3IG1hY3JvcywgbW92ZWQgaGVyZSBmcm9tIHN5c2RlcHMvZ251L3V0bXBiaXRzLmguCgkqIHN5c2RlcHMvZ2VuZXJpYy91dG1wYml0cy5oIChfSEFWRV9VVF9IT1NUKTogRGVmaW5lIGl0LgoJKiBzeXNkZXBzL2dudS91dG1wYml0cy5oIChfSEFWRV9VVF9IT1NUKTogTGlrZXdpc2UuCgkqIGxvZ2luL2xvZ291dC5jOiBVc2UgdXRfaG9zdCBvbmx5ICNpZiBfSEFWRV9VVF9IT1NULgoJVXNlIHNpemVvZiBpbnN0ZWFkIG9mIFVUXypTSVpFLgoJKiBsb2dpbi9sb2d3dG1wLmM6IExpa2V3aXNlLgoKCSogbWlzYy90c2VhcmNoLmMgKHRkZWxldGUpOiBEZWZpbmUgYXMgd2VhayBhbGlhcyB0byBfX3RkZWxldGUuCgoJKiB2ZXJzaW9uLmMgKGJhbm5lcik6IEFkZCB0cmFpbGluZyBuZXdsaW5lLgoKCSogbG9naW4vdXRtcC5oOiBEZWNsYXJlIGxvZ2luX3R0eS4KClRodSBKdW4gMjAgMjE6MTk6MDcgMTk5NiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAdGFtdS5lZHU+CgoJKiBzeXNkZXBzL2FscGhhL2RsLW1hY2hpbmUuaCAoZWxmX2FscGhhX2ZpeF9wbHQpOgoJQ2hhbmdlZCB0byBhIDEyLWJ5dGUgUExUIGVudHJ5IHRvIHJlbW92ZSBkZXBlbmRlbmN5IG9uICRncC4KCVRha2UgYSBuZXcgZ290X2FkZHIgcGFyYW1ldGVyLgoJKGVsZl9tYWNoaW5lX3JlbGEpOiBQYXNzIHRoZSBuZXcgcGFyYW1ldGVyLgoJKEVMRl9NQUNISU5FX1JVTlRJTUVfVFJBTVBPTElORSk6IERvIGFyaXRobWV0aWMgZm9yIDEyLWJ5dGUgUExULgoJKFJUTERfU1RBUlQpOiBEbyBub3JtYWwgbGlua2FnZSB3aXRoIHByb2dyYW0gZW50cnkuCgpUaHUgSnVuIDIwIDEyOjE4OjIxIDE5OTYgIE1pbGVzIEJhZGVyICA8bWlsZXNAZ251LmFpLm1pdC5lZHU+CgoJKiBzeXNkZXBzL21hY2gvaHVyZC9icmsuYyAoX2h1cmRfYnJrKTogSW5pdGlhbGl6ZSB0byAwLgoKCSogaHVyZC9nZXR1aWRzLmMgKGdldHVpZHMpOiBOZXcgd2VhayBsaW5rIHRvIF9fZ2V0dWlkcy4KCldlZCBKdW4gMTkgMTA6MjE6MjQgMTk5NiAgTWlsZXMgQmFkZXIgIDxtaWxlc0BnbnUuYWkubWl0LmVkdT4KCgkqIGh1cmQvaHVyZGxvb2t1cC5jIChfX2h1cmRfZmlsZV9uYW1lX2xvb2t1cF9yZXRyeSwKCV9faHVyZF9maWxlX25hbWVfbG9va3VwLCBfX2h1cmRfZmlsZV9uYW1lX3NwbGl0KTogQWRkICYgdXNlIExPT0tVUAoJYXJndW1lbnQuCglSZW5hbWUgbmVzdGVkIGZ1bmN0aW9uIGxvb2t1cCB0byBsb29rdXBfb3AuCgkoX19maWxlX25hbWVfbG9va3VwLCBfX2ZpbGVfbmFtZV9sb29rdXBfdW5kZXIpOgoJUGFzcyAwIGZvciBsb29rdXAgYXJnIHRvIF9faHVyZF9maWxlX25hbWVfbG9va3VwLgoJKF9fZmlsZV9uYW1lX3NwbGl0KTogTGlrZXdpc2UgZm9yIF9faHVyZF9maWxlX25hbWVfc3BsaXQuCgkqIGh1cmQvcGF0aC1sb29rdXAuYyAoaHVyZF9maWxlX25hbWVfcGF0aF9sb29rdXApOiBBZGQgTE9PS1VQIGFyZ3VtZW50LgoJUmVuYW1lIG5lc3RlZCBmdW5jdGlvbiBsb29rdXAgdG8gc2Nhbl9sb29rdXAuCgkoZmlsZV9uYW1lX3BhdGhfbG9va3VwKTogUGFzcyAwIGZvciBsb29rdXAgYXJnIHRvCglodXJkX2ZpbGVfbmFtZV9wYXRoX2xvb2t1cC4KCSogaHVyZC9odXJkL2xvb2t1cC5oIChfX2h1cmRfZmlsZV9uYW1lX2xvb2t1cCwgaHVyZF9maWxlX25hbWVfbG9va3VwLAoJX19odXJkX2ZpbGVfbmFtZV9sb29rdXBfcmV0cnksIGh1cmRfZmlsZV9uYW1lX2xvb2t1cF9yZXRyeToKCV9faHVyZF9maWxlX25hbWVfc3BsaXQsIGh1cmRfZmlsZV9uYW1lX3NwbGl0LCBodXJkX2ZpbGVfbmFtZV9sb29rdXApOgoJQWRkIExPT0tVUCBhcmd1bWVudC4KCSogc3lzZGVwcy9tYWNoL2h1cmQvYWNjZXNzLmMgKF9fYWNjZXNzKTogUGFzcyAwIGxvb2t1cCBhcmcgdG8KCV9faHVyZF9maWxlX25hbWVfbG9va3VwLgoKTW9uIEp1biAxNyAxOTowOTo0OSAxOTk2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBpc3Nhbi5pbmZvcm1hdGlrLnVuaS1kb3J0bXVuZC5kZT4KCgkqIE1ha2UtZGlzdCAoK3N5c2RlcHMpOiBNb3ZlIHdpbGRjYXJkIGluc2lkZSBsb29wIHRvIGF2b2lkIGNvbnNpbmcKCXVwIGEgaHVnZSBsaXN0IGp1c3QgdG8gZGlzY2FyZCBtb3N0IG9mIGl0LgoKCSogY29uZmlndXJlLmluIChzeXNuYW1lcyk6IEF2b2lkIGZncmVwIGJ5IHVzaW5nIHRoZSBjYXNlIHNoZWxsCglidWlsdGluLgoKCSogTWFrZWNvbmZpZyAoY29uZmlnLnN0YXR1cyk6IEZpeCBkZXBlbmRlbmN5IG9uIEltcGxpZXMgZmlsZXMuCgpXZWQgSnVuIDE5IDAxOjI3OjU3IDE5OTYgIFJvbGFuZCBNY0dyYXRoICA8cm9sYW5kQGRlbGFzeWQuZ251LmFpLm1pdC5lZHU+CgoJKiBtYXRoL01ha2VmaWxlIChkaXN0cmlidXRlKTogQWRkIGllZWUtbWF0aC5jLgoKV2VkIEp1biAxOSAwMzoyNDo1OCAxOTk2ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGxvY2FsZS9jb2Rlc2V0X25hbWUuYzogTmV3IGZpbGUuICBQcm92aWRlIGZ1bmN0aW9uIGZvciBpbmZvcm1hdGlvbgoJYWJvdXQgY3VycmVudGx5IHVzZWQgY2hhcmFjdGVyIHNldC4KCSogbG9jYWxlL01ha2VmaWxlIChyb3V0aW5lcyk6IEFkZCBjb2Rlc2V0X25hbWUuCgkqIGxvY2FsZS9sYW5naW5mby5oIChfTkxfQ1RZUEVfQ09ERVNFVF9OQU1FKTogQWRkIG5ldyBjb25zdGFudC4KCSogbG9jYWxlL2xvY2FsZWluZm8uaDogQ2hhbmdlIG1hZ2ljIG51bWJlciBiZWNhdXNlIG9mIGluY29tcGF0aWJsZQoJY2hhbmdlLgoJKiBsb2NhbGUvQy1jdHlwZS5jOiBBZGQgaW5pdGlhbGl6ZXIgZm9yIG5ldyBmaWVsZCBgY29kZXNldF9uYW1lJy4KCSogbG9jYWxlL3Byb2dyYW1zL2xkLWN0eXBlLmM6IEltcGxlbWVudCBoYW5kbGluZyBvZiBgY29kZXNldF9uYW1lJy4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sb2NmaWxlLmM6IERvbid0IGRlcGVuZCBpbiBwcmUtMi4wIExpbnV4IHNwZWNpZmljCgluYW1lIGBNQVhfSU9WRUMnLiAgSW5zdGVhZCB1c2Ugc3RhbmRhcmQgbmFtZSBgVUlPX01BWElPVicuCgoJKiBsb2NhbGUvc2V0bG9jYWxlLmMgKHNldGxvY2FsZSk6IEluaXRpYWxpemUgbG9jYWwgdmFyaWFibGVzIHRvCglwcmV2ZW50IHdhcm5pbmdzLgoKVGh1IEp1biAxMyAxNzoyNToxMSAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogc3lzZGVwcy9nZW5lcmljL21lbWNtcC5jOiBBZGQgcHJvdG90eXBlIGRlY2xzIGZvciBpbnRlcm5hbCBmbnMuCgoJKiBsb2NhbGUvcHJvZ3JhbXMvbG9jYWxlLmM6IEluY2x1ZGUgc3RyaW5nLmguCgoJKiBzdW5ycGMveGRyX3N0ZGlvLmMgKHhkcnN0ZGlvX2dldGxvbmcpLCBzdW5ycGMveGRyX3JlYy5jCgkoeGRycmVjX2dldGxvbmcpLCBzdW5ycGMveGRyX21lbS5jICh4ZHJtZW1fZ2V0bG9uZyk6IE1ha2Ugc3VyZQoJYXBwcm9wcmlhdGUgc2lnbi1leHRlbnNpb24gaXMgcGVyZm9ybWVkIG9uIG1hY2hpbmVzIHdpdGgKCXNpemVvZihsb25nKSA+IDQuCgoJKiBzdW5ycGMveGRyLmMgKHhkcl9pbnQsIHhkcl91X2ludCk6IElmIHNpemVvZihsb25nKT09OCBhbmQKCXNpemVvZihpbnQpPHNpemVvZihsb25nKSwgd2UgbmVlZCB0byBnbyB0aHJvdWdoIGEgdGVtcG9yYXJ5Cgl2YXJpYWJsZS4KCgkqIGxvY2FsZS9wcm9ncmFtcy9sZC1udW1lcmljLmM6IEluY2x1ZGUgPGFsbG9jYS5oPgoKCSogbGliaW8vc3RkaW8uaCAoX19saWJjX2ZhdGFsKTogQWRkIHByb3RvdHlwZS4KCgkqIGxpYmlvL2NsZWFudXAuYzogVXNlIF9fUCgpIHRvIGRlY2xhcmUgcHJvdG90eXBlIHdoZW4gX19TVERDX18gaXMKCWluIGVmZWN0LgoKCSogbGliaW8vaW9wb3Blbi5jIChyZWFkX29yX3dyaXRlLCBwYXJlbnRfZW5kLCBjaGlsZF9lbmQpOiBEZWNsYXJlCgl2b2xhdGlsZSB0byBhdm9pZCAibWlnaHQgZ2V0IGNsb2JiZXJlZCBieSBsb25nam1wIiB3YXJuaW5nLgoKCSogZmVhdHVyZXMuaCAoX19LRVJORUxfU1RSSUNUX05BTUVTKTogRGVmaW5lIF9fS0VSTkVMX1NUUklDVF9OQU1FUwoJdW5sZXNzIF9MT09TRV9LRVJORUxfTkFNRVMgaXMgaW4gZWZmZWN0ICh3aGljaCwgd2l0aCBoaWdoCglwcm9iYWJpbGl0eSBpcyBhIHN1cmUgbG9zZXIpLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9nbnUvdHlwZXMuaCAoX19LRVJORUxfU1RSSUNUX05BTUVTKTogUmVtb3ZlLgoKCSogc3lzZGVwcy91bml4L2JzZC9vc2YvYWxwaGEvc3RhcnQuUyAoZXJybm8pOiBSZW1vdmVkLgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zdGFydC5TOiBEaXR0by4KCgkqIG1pc2MvcGF0aHMuaCAoX1BBVEhfTUFOKTogQ2hhbmdlIGZyb20gL3Vzci9zaGFyZS9tYW4gdG8gL3Vzci9tYW4KCXRvIGJlIExpbnV4IEZTU1RORCBjb21wbGlhbnQuCgpNb24gSnVuIDEwIDE3OjUwOjMxIDE5OTYgIERhdmlkIE1vc2Jlcmdlci1UYW5nICA8ZGF2aWRtQGF6c3Rhcm5ldC5jb20+CgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9waXBlLlM6IFVzZSBQU0VVRE8uCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zeXNkZXAuUywKCXN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2Jyay5TLAoJc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvaWVlZV9nZXRfZnBfY29udHJvbC5TLAoJc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvaWVlZV9zZXRfZnBfY29udHJvbC5TLAoJc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvbGxzZWVrLlMsCglzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zaWdzdXNwZW5kLlMsCglzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zeXNjYWxsLlM6IFJlbmFtZSBzeXNjYWxsX2Vycm9yIHRvCglfX3N5c2NhbGxfZXJyb3IgdG8gYXZvaWQgaW50cnVkaW5nIGFwcGxpY2F0aW9uIG5hbWUgc3BhY2UuCgoJKiBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9zeXNkZXAuaDogUmVuYW1lIF9fTlJfZ2V0P2lkCgl0byBTWVNfZ2V0P2lkIHNvIHRoYXQgc3lzY2FsbCBzdHVicyBpbiBzeXNkZXBzL3VuaXggZGVmaW5lCgl0aGVzZSBzeXNjYWxscyBpbiB0ZXJtcyBvZiBnZXR4cGlkL2dldHh1aWQvZ2V0eGdpZC4KCgkqIHN5c2RlcHMvdW5peC9fZXhpdC5TLCBzeXNkZXBzL3VuaXgvZ2V0ZWdpZC5TLAoJc3lzZGVwcy91bml4L2dldGV1aWQuUywgc3lzZGVwcy91bml4L2dldHBwaWQuUywKCXN5c2RlcHMvdW5peC9leGVjdmUuUywgc3lzZGVwcy91bml4L2ZvcmsuUywKCXN5c2RlcHMvdW5peC9zeXNjYWxsLlM6IFRlcm1pbmF0ZSBzeXNjYWxsIHdpdGggUFNFVURPX0VORC4KCgkqIHN5c2RlcHMvdW5peC9tYWtlLXN5c2NhbGxzLnNoLCBzeXNkZXBzL3VuaXgvc3lzZGVwLmgKCShQU0VVRE9fRU5EKTogUmVuYW1lIEVORCgpIHRvIFBTRVVET19FTkQoKS4KCgkqIHN5c2RlcHMvdW5peC9hbHBoYS9zeXNkZXAuaDogTW92ZSBlcnJvci1oYW5kbGluZyBjb2RlIGluIFBTRVVETwoJdG8gUFNFVURPX0VORCB0byBpbXByb3ZlIGJyYW5jaC1wcmVkaWN0aW9uLiAgSW5jbHVkZSAuZnJhbWUKCWRpcmVjdGl2ZSB0byBtYWtlIHN5c2NhbGxzIGRlYnVnYWJibGUuCgkoUFNFVURPX0VORCk6IE5ldyBtYWNyby4KCgkqIHN5c2RlcHMvdW5peC9hbHBoYS9zeXNkZXAuaCwgc3lzZGVwcy9hbHBoYS9iYl9pbml0X2Z1bmMuUywKCXN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FscGhhL2Jyay5TOiBVc2UgbGRpcSBpbnN0ZWFkIG9mIGxkaSBzaW5jZQoJbGF0dGVyIGlzIGlsbGVnYWwgdW5kZXIgREVDIFVuaXguCgoJKiBzeXNkZXBzL3VuaXgvYWxwaGEvc3lzZGVwLlM6IFJlbmFtZWQgZnJvbQoJc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvc3lzZGVwLlMuICBUaGlzIGZpbGUgd29ya3MgZm9yIE9TRi8xCglhcyB3ZWxsLgoJKiBzeXNkZXBzL3VuaXgvYnNkL29zZi9hbHBoYS9zeXNkZXAuUzogUmVtb3ZlIChub3RlIHRoYXQgdGhlCglFV09VTERCTE9DSyAtPiBFQUdBSU4gbWFwcGluZyB3YXMgdW5uZWNlc3Nhcnkgc2luY2UKCUVXT1VMREJMT0NLPT1FQUdBSU4gdW5kZXIgREVDIFVuaXggYW5kIExpbnV4L0FscGhhKS4KCgkqIHN5c2RlcHMvYWxwaGEvZGl2cmVtLmg6IFVzZSByZXRhZGRyIGluc3RlYWQgb2YgcmEgYXMgdGhlIHJldHVybgoJYWRkcmVzcyByZWdpc3RlciBpbiB0aGUgLmZyYW1lIGRpcmVjdGl2ZS4KCgkqIHN5c2RlcHMvYWxwaGEvY29weXNpZ24uYzogUmVtb3ZlLgoKCSogc3VucnBjL3JwYy90eXBlcy5oOiBJbmNsdWRlIDxzeXMvcGFyYW0uaD4gYW5kIDxuZXRpbmV0L2luLmg+IHRvCglhdm9pZCBSUEMgZGVmaW5pdGlvbnMgb2YgSU5BRERSX0xPT1BCQUNLIGFuZC9vciBNQVhIT1NUTkFNRUxFTi4KCgkqIGVycm5vLmg6IE1vdmUgX19FTkRfREVDTFMgdG8gY29ycmVjdCBwbGFjZSB0byBtYWtlIGZpbGUKCWNvbXBpbGFibGUgdW5kZXIgYysrLgoKCSogZGlyZW50L2RpcmVudC5oOiBEb2N1bWVudCBfRElSRU5UX0hBVkVfRF9PRkYgbWFjcm8uICBEZWZpbmUKCWRfaW5vIG9ubHkgaWYgPGRpcmVudHJ5Lmg+IGhhc24ndCBkZWZpbmVkIGRfZmlsZW5vLgoKCSogY29uZmlndXJlLmluIChIQVZFX0FTTV9XRUFLRVhUX0RJUkVDVElWRSk6IFJldmVyc2Ugb3JkZXIgb2YKCWFyZ3VtZW50cyB0byB3ZWFrZXh0IHRvIG1ha2UgLndlYWtleHQgZGV0ZWN0aW9uIHdvcmsgb24gRUNPRkYgc3lzdGVtcy4KCgkqIEZBUTogQWRkIExpbnV4L0FscGhhIHRvIGxpc3Qgb2Ygc3VwcG9ydGVkIHBsYXRmb3Jtcy4gIE1lbnRpb24KCXRoYXQgX3ZhbGlkdXNlcigpIGhhcyBiZWVuIHJlcGxhY2VkIGJ5IF9faXZhbGlkdXNlcigpLgoKVGh1IEp1biAgNiAyMTozOTozOCAxOTk2ICBEYXZpZCBNb3NiZXJnZXItVGFuZyAgPGRhdmlkbUBhenN0YXJuZXQuY29tPgoKCSogc3lzZGVwcy91bml4L2JzZC9zdW4vc3Vub3M0L3Rjc2V0YXR0ci5jICh0Y3NldGF0dHIpOiBEZWNsYXJlIGNtZAoJYXMgdW5zaWduZWQgbG9uZywgbm90IGFzIGludCAodG8gYXZvaWQgaW5jb3JyZWN0IGludC0+bG9uZwoJcHJvbW90aW9uKS4KCgwKClNlZSBDaGFuZ2VMb2cuNSBmb3IgZWFybGllciBjaGFuZ2VzLgo=