MjAwMy0xMi0zMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTM1MDcKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBVc2UgYnVpbGRfdHlwZV9hdHRyaWJ1dGVfdmFyaWFudCB0bwoJbWVyZ2UgYXR0cmlidXRlcy4KCglQUiBjKysvMTM0OTQKCSogdHJlZS5jIChidWlsZF9jcGx1c19hcnJheV90eXBlXzEpOiBPbmx5IGJ1aWxkIGEgbWluaW1hbCBhcnJheQoJdHlwZSBmb3IgZGVwZW5kZW50IHR5cGVzIG9yIGRvbWFpbnMuCgoyMDAzLTEyLTI5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMjc3NAoJKiB0eXBlY2suYyAoY29tcF9hcnJheV90eXBlcyk6IEZvbGQgbm9uLWRlcGVuZGVudCBkb21haW5zIGZvcgoJQUJJLTEuCgoyMDAzLTEyLTI5ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvMTMyODkKCSogc2VtYW50aWNzLmMgKGZpbmlzaF9pZF9leHByZXNzaW9uKTogT25seSBjaGVjayBpZiB0aGUgdHlwZSBvZgoJYSB0ZW1wbGF0ZSBhcmd1bWVudCBpcyBpbnRlZ3JhbCBvciBlbnVtZXJhdGlvbiB3aGVuIGl0IGlzIG5vdAoJZGVwZW5kZW50LgoKMjAwMy0xMi0yOSAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzEyNDAzCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfdGVtcGxhdGVfZGVjbGFyYXRpb25fYWZ0ZXJfZXhwb3J0KTogU2V0IHVwCgl0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbiBzY29wZSBpbiBjYXNlIG9mIGV4cGxpY2l0IHNwZWNpYWxpemF0aW9uLgoKMjAwMy0xMi0yOCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTMwODEKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBQcmVzZXJ2ZSBpbmxpbmUtbmVzcyB3aGVuIHJlZGVjbGFyaW5nCglhIGZ1bmN0aW9uIHRlbXBsYXRlLgoKCVBSIGMrKy8xMjYxMwoJKiBkZWNsLmMgKHJlc2hhcGVfaW5pdCk6IFJlamVjdCBHTlUgY29sb24tc3R5bGUgZGVzaWduYXRlZAoJaW5pdGlhbGl6ZXJzIGluIGFycmF5cy4KCglQUiBjKysvMTMwMDkKCSogY2FsbC5jIChidWlsZF9zcGVjaWFsX21lbWJlcl9jYWxsKTogRG8gbm90IGFzc3VtZSB0aGF0IHdlIGhhdmUgYQoJcG9pbnRlciB0byB0aGUgY29tcGxldGUgb2JqZWN0IGluIGFuIGFzc2lnbm1lbnQgb3BlcmF0b3IuCgoyMDAzLTEyLTI4ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiBjKysvMTMwNzAKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBXaGVuIHNldHRpbmcgdGhlIHR5cGUgb2YgYW4gYW50aWNpcGF0ZWQKCWRlY2xhcmF0aW9uLCBtZXJnZSB0aGUgZXhpc3RpbmcgdHlwZSBhdHRyaWJ1dGVzLgoKMjAwMy0xMi0yNSAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgYysrLzEzMjY4LCBjKysvMTMzMzkKCSogY2xhc3MuYyAoYWRkX21ldGhvZCk6IFJldHVybiBlYXJseSB3aGVuIG1ldGhvZCBpcyBlcnJvcl9tYXJrX25vZGUuCgkqIHB0LmMgKHRzdWJzdF9mcmllbmRfZnVuY3Rpb24pOiBSZXR1cm4gZWFybHkgd2hlbiBuZXdfZnJpZW5kIGlzCgllcnJvcl9tYXJrX25vZGUuCgoyMDAzLTEyLTIzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtbGFuZy5jIChjcF9leHByX3NpemUpOiBSZXR1cm4gemVybyBmb3IgZW1wdHkgY2xhc3Nlcy4KCgkqIGNwLXRyZWUuaCAod2Fybl9pZl91a25vd25faW50ZXJmYWNlKTogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbi4KCSogZGVjbDIuYyAod2Fybl9pZl91bmtub3duX2ludGVyZmFjZSk6IExpa2V3aXNlLgoKMjAwMy0xMi0yMyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTMzODcKCSogY3AtbGFuZy5jIChjeHhfZ2V0X2FsaWFzX3NldCk6IENvcnJlY3QgbG9naWMgZm9yIGEgYmFzZSB0eXBlLgoKMjAwMy0xMi0yMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoc3RhcnRfZnVuY3Rpb24pOiBEbyBub3QgY2hlY2sKCWZsYWdfYWx0X2V4dGVybmFsX3RlbXBsYXRlcyBvciBmbGFnX2V4dGVybmFsX3RlbXBsYXRlcy4KCSogZGVjbDIuYyAod2Fybl9pZl91bmtub3duX2ludGVyZmFjZSk6IExpa2V3aXNlLgoJKiBsZXguYyAoZXh0cmFjdF9pbnRlcmZhY2VfaW5mbyk6IExpa2V3aXNlLgoJKiBwdC5jIChsb29rdXBfdGVtcGxhdGVfY2xhc3MpOiBMaWtld2lzZS4KCglQUiBjKysvMTI4NjIKCSogbmFtZS1sb29rdXAuYyAocHVzaGRlY2wpOiBMb29rIHVwIGFsbCBuYW1lc3BhY2Utc2NvcGUgZW50aXRpZXMKCWluIHRoZWlyIGNvcnJlc3BvbmRpbmcgbmFtZXNwYWNlLgoKCVBSIGMrKy8xMjM5NwoJKiB0eXBlY2suYyAoZmluaXNoX2NsYXNzX21lbWJlcl9hY2Nlc3NfZXhwcik6IERvbid0IHRyZWUKCUlERU5USUZJRVJfTk9ERXMgYXMgbm9uLWRlcGVuZGVudCBleHByZXNzaW9ucy4KCjIwMDMtMTItMjIgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIGMrKy81MDUwCiAgICAgICAgKiB0cmVlLmMgKGNwX3N0YXJ0X2lubGluaW5nKTogUmVtb3ZlLgogICAgICAgIChjcF9lbmRfaW5saW5pbmcpOiBSZW1vdmUuCiAgICAgICAgKiBjcC1sYW5nLmMgKExBTkdfSE9PS1NfVFJFRV9JTkxJTklOR19TVEFSVF9JTkxJTklORyk6IERvIG5vdCBkZWZpbmUuCiAgICAgICAgKExBTkdfSE9PS1NfVFJFRV9JTkxJTklOR19FTkRfSU5MSU5JTkcpOiBEbyBub3QgZGVmaW5lLgogICAgICAgICogY3AtdHJlZS5oIChjcF9zdGFydF9pbmxpbmluZyk6IERvIG5vdCBkZWNsYXJlLgogICAgICAgIChjcF9lbmRfaW5saW5pbmcpOiBEbyBub3QgZGVjbGFyZS4KCjIwMDMtMTItMjIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEyNDc5CgkqIHBhcnNlci5jIChjcF9wYXJzZXJfZGVjbGFyYXRpb25fc2VxX29wdCk6IE9ubHkgaXNzdWUgImV4dHJhIDsiCglwZWR3YXJuIHdoZW4gbm90IGluIGEgc3lzdGVtIGhlYWRlci4KCjIwMDMtMTItMjEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGNwX3RyZWVfaW5kZXgpOiBSZW1vdmUgQ1BUSV9SRUNPUkRfVFlQRSwKCUNQVElfVU5JT05fVFlQRSwgQ1BUSV9FTlVNX1RZUEUuCgkocmVjb3JkX3R5cGVfbm9kZSk6IFJlbW92ZS4KCSh1bmlvbl90eXBlX25vZGUpOiBMaWtld2lzZS4KCShlbnVtX3R5cGVfbm9kZSk6IExpa2V3aXNlLgoJKiBkZWNsLmM6IFJlbW92ZSBtZW50aW9uIG9mIGFib3ZlIHRyZWUgbm9kZXMgaW4gY29tbWVudC4KCSogbGV4LmMgKGN4eF9pbml0KTogRG8gbm90IGFzc2lnbiB0byByZWNvcmRfdHlwZV9ub2RlLAoJdW5pb25fdHlwZV9ub2RlLCBvciBlbnVtX3R5cGVfbm9kZS4gIFNpbXBsaWZ5IGhhbmRsaW5nIG9mCgljbGFzc190eXBlX25vZGUuCgoJUFIgYysrLzExNTU0CgkqIGluaXQuYyAoc29ydF9tZW1faW5pdGlhbGl6ZXJzKTogQWRkIHdhcm5pbmcuCgoyMDAzLTEyLTIxICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY2FsbC5jOiBGaXggY29tbWVudCBmb3JtYXR0aW5nLgoJKiBjbGFzcy5jOiBMaWtld2lzZS4KCSogY3AtdHJlZS5oOiBMaWtld2lzZS4KCSogY3Z0LmM6IExpa2V3aXNlLgoJKiBjeHgtcHJldHR5LXByaW50LmM6IExpa2V3aXNlLgoJKiBkZWNsLmM6IExpa2V3aXNlLgoJKiBkZWNsMi5jOiBMaWtld2lzZS4KCSogZXJyb3IuYzogTGlrZXdpc2UuCgkqIGV4Y2VwdC5jOiBMaWtld2lzZS4KCSogaW5pdC5jOiBMaWtld2lzZS4KCSogbmFtZS1sb29rdXAuYzogTGlrZXdpc2UuCgkqIHBhcnNlci5jOiBMaWtld2lzZS4KCSogcHQuYzogTGlrZXdpc2UuCgkqIHJ0dGkuYzogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jOiBMaWtld2lzZS4KCSogdHlwZWNrLmM6IExpa2V3aXNlLgoJKiB0eXBlY2syLmM6IExpa2V3aXNlLgoKMjAwMy0xMi0xOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGN2dC5jOiBSZW1vdmUgdXNlcyBvZiAicmVnaXN0ZXIiIHNwZWNpZmllciBpbgoJZGVjbGFyYXRpb25zIG9mIGFyZ3VtZW50cyBhbmQgbG9jYWwgdmFyaWFibGVzLgoJKiBkZWNsLmM6IExpa2V3aXNlLgoJKiBkZWNsMi5jOiBMaWtld2lzZS4KCSogZXhwci5jOiBMaWtld2lzZS4KCSogZnJpZW5kLmM6IExpa2V3aXNlLgoJKiBsZXguYzogTGlrZXdpc2UuCgkqIG5hbWUtbG9va3VwLmM6IExpa2V3aXNlLgoJKiByZXBvLmM6IExpa2V3aXNlLgoJKiBzZWFyY2guYzogTGlrZXdpc2UuCgkqIHRyZWUuYzogTGlrZXdpc2UuCgkqIHR5cGVjay5jOiBMaWtld2lzZS4KCSogdHlwZWNrMi5jOiBMaWtld2lzZS4KCjIwMDMtMTItMTkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEyNzk1CgkqIG5hbWUtbG9va3VwLmMgKHB1c2hkZWNsKTogRG8gbm90IHRyZWF0ZWQgYW55IGZ1bmN0aW9ucyBhcyBiZWluZwoJIm5lc3RlZCIgaW4gQysrLgoKMjAwMy0xMi0xOSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzEzMzcxCgkqIHR5cGVjay5jIChidWlsZF9tb2RpZnlfZXhwcik6IFN0YWJpbGl6ZSBsaHMgaWYgd2UncmUgbmFycm93aW5nLgoJKiBjdnQuYyAoY29udmVydF90b192b2lkKTogRG9uJ3Qgd2FybiBhYm91dCB0aGUgUkhTIG9mIGEgY29tbWEKCWJlaW5nIHVzZWxlc3MgaWYgVFJFRV9OT19VTlVTRURfV0FSTklORyBpcyBzZXQuCgoyMDAzLTEyLTE4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY3AtdHJlZS5oIChzdHJ1Y3QgbGFuZ190eXBlX2hlYWRlcik6IFJlbW92ZSBfX2V4dGVuc2lvbl9fLgoKMjAwMy0xMi0xOCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzEyMjUzCgkqIGluaXQuYyAoYnVpbGRfdmVjX2luaXQpOiBJbml0aWFsaXphdGlvbiBvZiBhbiBlbGVtZW50IGZyb20KCWFuIGluaXRpYWxpemVyIGxpc3QgaXMgYWxzbyBhIGZ1bGwtZXhwcmVzc2lvbi4KCgkqIHBhcnNlci5jLCBwdC5jLCBzZW1hbnRpY3MuYzogUmVuYW1lIGNvbnN0YW50X2V4cHJlc3Npb25fcAoJdG8gaW50ZWdyYWxfY29uc3RhbnRfZXhwcmVzc2lvbl9wLgoKMjAwMy0xMi0xOCAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzEzMjYyCgkqIHB0LmMgKGluc3RhbnRpYXRlX2RlY2wpOiBXcmFwIHB1c2hfbmVzdGVkX2NsYXNzIGFuZAoJcG9wX25lc3RlZF9jbGFzcyBhcm91bmQgY3BfZmluaXNoX2RlY2wgY2FsbCBmb3Igc3RhdGljIG1lbWJlcgoJdmFyaWFibGUuCgoyMDAzLTEyLTE4ICBHaW92YW5uaSBCYWpvICA8Z2lvdmFubmliYWpvQGdjYy5nbnUub3JnPgoKCVBSIGMrKy85MTU0CgkqIHBhcnNlci5jIChjcF9wYXJzZXJfdGVtcGxhdGVfYXJndW1lbnQpOiBBIHR5cGUtaWQgZm9sbG93ZWQgYnkgJz4+JwoJaXMganVzdCBhbiB1c2VyIHR5cG8sIGFuZCBzaG91bGQgYmUgYWNjZXB0ZWQgYXMgbGFzdCByZXNvcnQgaWYgYW55CglvdGhlciBwYXJzaW5nIGZhaWxzLgoJKGNwX3BhcnNlcl9lbmNsb3NlZF90ZW1wbGF0ZV9hcmd1bWVudF9saXN0KTogSWYgdGhlIGFyZ3VtZW50IGxpc3QgaXMKCXBhcnNlZCBjb3JyZWN0bHksIGJ1dCB0aGUgbmV4dCB0b2tlbiBpcyAnPj4nLCBlbWl0IGEgZGlhZ25vc3RpYy4KCShjcF9wYXJzZXJfbmV4dF90b2tlbl9lbmRzX3RlbXBsYXRlX2FyZ3VtZW50KTogQWNjZXB0ICc+PicgYXMgCglkZWxpbWl0ZXIgb2YgdGVtcGxhdGUgYXJndW1lbnQsIGl0IHdpbGwgYmUgbGF0ZXIgZGV0ZWN0ZWQgYXMgYSB0eXBvLgoKMjAwMy0xMi0xNyAgS2VsbGV5IENvb2sgIDxrY29va0BnY2MuZ251Lm9yZz4KCgkqIE1ha2UtbGFuZy5pbjogUmVwbGFjZSBjcC9nKysuMSB3aXRoICQoZG9jb2JqZGlyKS9nKysuMS4KCjIwMDMtMTItMTcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEwNjAzCglQUiBjKysvMTI4MjcKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9lcnJvcik6IEhlbHAgY19wYXJzZV9lcnJvciBwcmludCBnb29kCgltZXNzYWdlcyBpZiB0aGUgbmV4dCB0b2tlbiBpcyBhIGtleXdvcmQuCgkoY3BfcGFyc2VyX3BhcmFtZXRlcl9kZWNsYXJhdGlvbl9saXN0KTogV2hlbiByZXN5bmNocm9uaXppbmcgYWZ0ZXIKCWEgYmFkIHBhcmFtZXRlciBkZWNsYXJhdGlvbiwgc3RvcCBpZiBhIGNvbW1hIGlzIGZvdW5kLgoJKGNwX3BhcnNlcl9wYXJhbWV0ZXJfZGVjbGFyYXRpb24pOiBBdm9pZCBiYWNrdHJhY2tpbmcuCgoyMDAzLTEyLTE2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMjY5NgoJKiBkZWNsLmMgKHJlc2hhcGVfaW5pdCk6IFJlY292ZXIgcXVpY2tseSBmcm9tIGVycm9ycy4KCjIwMDMtMTItMTYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzkwNDMKCUMrKyBBQkkgY2hhbmdlOiBNYW5nbGluZyBhcnJheSBpbmRpY2VzIGluIHRlbXBsYXRlcy4KCSogZGVjbC5jIChjb21wdXRlX2FycmF5X2luZGV4X3R5cGUpOiBSZW9yZ2FuaXplIGZvciBlYXJsaWVyCgl0ZW1wbGF0ZSBlcnJvcnMuIFVzZSB2YWx1ZV9kZXBlbmRlbnRfZXhwcmVzc2lvbl9wIGZvciBhYmktMi4KCSogbWFuZ2xlLmMgKHdyaXRlX2FycmF5X3R5cGUpOiBDaGVjayBicm9rZW4gbWFuZ2xpbmcgZm9yCglleHByZXNzaW9uIGluZGljZXMgb24gYWJpLTEKCjIwMDMtMTItMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEyNjk2CgkqIGRlY2wuYyAocmVzaGFwZV9pbml0KTogUmVjb3ZlciBxdWlja2x5IGZyb20gZXJyb3JzLgoKCVBSIGMrKy8xMzI3NQoJKiBsZXguYyAocmVzd29yZHMpOiBBZGQgIl9fb2Zmc2V0b2YiIGFuZCAiX19vZmZzZXRvZl9fIi4KCSogcGFyc2VyLmMgKGNwX3BhcnNlcik6IEFkZCBpbl9vZmZzZXRvZl9wLgoJKGNwX3BhcnNlcl9uZXcpOiBJbml0aWFsaXplIGl0LgoJKGNwX3BhcnNlcl9wcmltYXJ5X2V4cHJlc3Npb24pOiBIYW5kbGUgX19vZmZzZXRvZl9fICguLi4pLgoJKGNwX3BhcnNlcl9wb3N0Zml4X2V4cHJlc3Npb24pOiBBbGxvdyBjYXN0cyB0byBwb2ludGVyIHR5cGUgYW5kCgl1c2VzIG9mICItPiIgaW4gYSBjb25zdGFudCBleHByZXNzaW9uIGlmIGltcGxlbWVudGluZyBvZmZzZXRvZi4KCShjcF9wYXJzZXJfdW5hcnlfZXhwcmVzc2lvbik6IEFsbG93IHRoZSB1c2Ugb2YgIiYiIGluIGEgY29uc3RhbnQKCWV4cHJlc3Npb24gaWYgaW1wbGVtZW50aW5nIG9mZnNldG9mLgoKMjAwMy0xMi0xNiAgR2lvdmFubmkgQmFqbyAgPGdpb3Zhbm5pYmFqb0BnY2MuZ251Lm9yZz4KCglQUiBjKysvMjI5NAoJKiBuYW1lLWxvb2t1cC5jIChwdXNoX292ZXJsb2FkZWRfZGVjbCk6IGFsd2F5cyBjb25zdHJ1Y3QgYW4gT1ZFUkxPQUQKCWlmIHRoZSBkZWNsYXJhdGlvbiBjb21lcyBmcm9tIGFuIHVzaW5nIGRlY2xhcmF0aW9uLgoKMjAwMy0xMi0xNiAgR2lvdmFubmkgQmFqbyAgPGdpb3Zhbm5pYmFqb0BnY2MuZ251Lm9yZz4KCgkqIHNlbWFudGljcy5jIChmaW5pc2hfaWRfZXhwcmVzc2lvbik6IFJlZmFjdG9yIHRoZSBjb2RlIHRvIGhhbmRsZQoJdGVtcGxhdGUgcGFyYW1ldGVycywgYW5kIGVtaXQgYSBtb3JlIGluZm9ybWF0aXZlIGVycm9yIG1lc3NhZ2UKCXdoZW4gdGhleSBhcmUgdXNlZCB3aXRoaW4gYW4gaW50ZWdyYWwgY29uc3RhbnQgZXhwcmVzc2lvbi4KCjIwMDMtMTItMTYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEzMzg3CgkqIGNsYXNzLmMgKGZpbmlzaF9zdHJ1Y3RfMSk6IENvbXB1dGUgbW9kZSBhbmQgYWxpYXMgc2V0IGZvcgoJQ0xBU1NUWVBFX0FTX0JBU0UuCgkqIGNhbGwuYyAoYnVpbGRfb3Zlcl9jYWxsKTogVXNlIENMQVNTVFlQRV9BU19CQVNFIGZvciB0cml2aWFsCglhc3NpZ25tZW50IG9mIGEgY2xhc3MsIGFzIG5lY2Vzc2FyeS4KCSogY3AtbGFuZy5jIChjeHhfZ2V0X2FsaWFzX3NldCk6IFRoZSBhbGlhcyBzZXQgYXMgYSBiYXNlIGlzIHRoZQoJc2FtZSBhcyBmb3IgdGhlIGNvbXBsZXRlIHR5cGUuCgoJUFIgYysrLzEzMjQyCglDKysgQUJJIGNoYW5nZS4gTWFuZ2xpbmcgdGVtcGxhdGUgcGFyYW1ldGVycyBvZiByZWZlcmVuY2UgdHlwZQoJKiBtYW5nbGUuYyAod3JpdGVfdGVtcGxhdGVfYXJncyk6IFJlbW92ZSB1bnJlYWNoYWJsZSBjb2RlLgoJKHdyaXRlX3RlbXBsYXRlX2FyZyk6IExvb2sgdGhyb3VnaCBhbiBhcmd1bWVudCBvZiByZWZlcmVuY2UgdHlwZS4KCjIwMDMtMTItMTYgIEdpb3Zhbm5pIEJham8gIDxnaW92YW5uaWJham9AZ2NjLmdudS5vcmc+CgoJUFIgYysrLzIyOTQKCSogbmFtZS1sb29rdXAuYyAocHVzaF9vdmVybG9hZGVkX2RlY2wpOiBhbHdheXMgY29uc3RydWN0IGFuIE9WRVJMT0FECglpZiB0aGUgZGVjbGFyYXRpb24gY29tZXMgZnJvbSBhbiB1c2luZyBkZWNsYXJhdGlvbi4KCjIwMDMtMTItMTUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEwOTI2CgkqIGRlY2wyLmMgKGdyb2tmaWVsZCk6IFJvYnVzdGlmeS4KCglQUiBjKysvMTExMTYKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl90aHJvd19leHByZXNzaW9uKTogRGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90CglhbiBhc3NpZ25tZW50LWV4cHJlc3Npb24gaXMgcHJlc2VudCBieSBkb2luZyBvbmUtdG9rZW4gbG9va2FoZWFkLgoKCVBSIGMrKy8xMzI2OQoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2Z1bmN0aW9uX2RlZmluaXRpb25fYWZ0ZXJfZGVjbGFyYXRvcik6IFN0b3AKCXNjYW5uaW5nIHRva2VucyB3aGVuIHJlYWNoaW5nIEVPRi4KCglQUiBjKysvMTI5ODkKCSogdHlwZWNrLmMgKGN4eF9zaXplb2Zfb3JfYWxpZ25vZl9leHByKTogUm9idXN0aWZ5LgoKCVBSIGMrKy8xMzMxMAoJKiBwdC5jIChkZXBlbmRlbnRfdGVtcGxhdGVfcCk6IEhhbmRsZSBPVkVSTE9BRHMuCgoyMDAzLTEyLTE1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMzI0MwoJUFIgYysrLzEyNTczCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfcG9zdGZpeF9leHByZXNzaW9uKTogVGlnaHRlbiBoYW5kbGluZyBvZgoJaW50ZWdyYWwgY29uc3RhbnQgZXhwcmVzc2lvbnMuCgkoY3BfcGFyc2VyX3VuYXJ5X2V4cHJlc3Npb24pOiBMaWtld2lzZS4KCSogcHQuYyAodmFsdWVfZGVwZW5kZW50X2V4cHJlc3Npb25fcCk6IFJlbW92ZSBoYW5kbGluZyBmb3IKCUNPTVBPTkVOVF9SRUZzLgoKMjAwMy0xMi0xNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGFkZF9tZXRob2QpOiBEaXNhbGxvdyBkZXN0cnVjdG9yIGZvciBqYXZhIGNsYXNzZXMuCgkqIGRlY2wuYyAoeHJlZl9iYXNldHlwZXMpOiBDaGVjayBqYXZhIGNsYXNzIGluaGVyaXRhbmNlLgoJKiBkZWNsMi5jIChjaGVja19qYXZhX21ldGhvZCk6IFNraXAgYXJ0aWZpY2lhbCBwYXJhbXMuCgogCVBSIGMrKy8xMzI0MQoJQysrIEFCSSBjaGFuZ2UuIE1hbmdsaW5nIG9mIHN5bWJvbHMgaW4gZXhwcmVzc2lvbnMuCgkqIG1hbmdsZS5jICh3cml0ZV9tYW5nbGVkX25hbWUpOiBBZGQgdG9wX2xldmVsIGZsYWcuIFJld29yayBmb3IKCW5lc3RlZCBhbmQgdW5uZXN0ZWQgbWFuZ2xpbmcuIERlYWwgd2l0aCBhYmkgdmVyc2lvbiAxIGFuZCB2ZXJzaW9uCgkyIGRpZmZlcmVuY2VzLgoJKHdyaXRlX2V4cHJlc3Npb24pOiBBZGp1c3Qgd3JpdGVfbWFuZ2xlZF9uYW1lIGNhbGwuCgkobWFuZ2xlX2RlY2xfc3RyaW5nKTogVXNlIHdyaXRlX21hbmdsZWRfbmFtZSBmb3IgYWxsIG5vbi10eXBlIGRlY2xzLgoKMjAwMy0xMi0xNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTA3NzkKCVBSIGMrKy8xMjE2MAoJKiBwYXJzZXIuYyAoc3RydWN0IGNwX3BhcnNlcik6IEFkZCBpbl90ZW1wbGF0ZV9hcmd1bWVudF9saXN0X3AuCgkoY3BfcGFyc2VyX2Vycm9yKTogVXNlIGNfcGFyc2VfZXJyb3IuCgkoY3BfcGFyc2VyX25hbWVfbG9va3VwX2Vycm9yKTogTmV3IGZ1bmN0aW9uLgoJKGNwX3BhcnNlcl9uZXcpOiBJbml0aWFsaXplIGl0LgoJKGNwX3BhcnNlcl9kZWNsYXJhdG9yKTogQWRkIHBhcmVudGhlc2l6ZWRfcCBwYXJhbWV0ZXIuCgkoY3BfcGFyc2VyX25lc3RlZF9uYW1lX3NwZWNpZmllcl9vcHQpOiBVc2UKCWNwX3BhcnNlcl9uYW1lX2xvb2t1cF9lcnJvci4KCShjcF9wYXJzZXJfcGFyZW50aGVzaXplZF9leHByZXNzaW9uX2xpc3QpOiBJbXByb3ZlIGNvbW1lbnRzLgoJKGNwX3BhcnNlcl9jb25kaXRpb24pOiBBZGp1c3QgY2FsbCB0byBjcF9wYXJzZXJfZGVjbGFyYXRvci4KCShjcF9wYXJzZXJfdGVtcGxhdGVfcGFyYW1ldGVyKTogQWRqdXN0IGNhbGwgdG8KCWNwX3BhcnNlcl9wYXJhbWV0ZXJfZGVjbGFyYXRpb24uCgkoY3BfcGFyc2VyX3RlbXBsYXRlX2FyZ3VtZW50X2xpc3QpOiBTZXQKCWluX3RlbXBsYXRlX2FyZ3VtZW50X2xpc3RfcC4KCShjcF9wYXJzZXJfZXhwbGljaXRfaW5zdGFudGlhdGlvbik6IEFkanVzdCBjYWxsIHRvCgljcF9wYXJzZXJfZGVjbGFyYXRvci4KCShjcF9wYXJzZXJfc2ltcGxlX3R5cGVfc3BlY2lmaWVyKTogUmVtb3ZlIHVubmNlc3NhcnkgY29kZS4KCShjcF9wYXJzZXJfdXNpbmdfZGVjbGFyYXRpb24pOiBVc2UgY3BfcGFyc2VyX25hbWVfbG9va3VwX2Vycm9yLgoJKGNwX3BhcnNlcl9pbml0X2RlY2xhcmF0b3IpOiBIYW5kbGUgbWVtYmVyIGZ1bmN0aW9uIGRlZmluaXRpb25zLgoJKGNwX3BhcnNlcl9kaXJlY3RfZGVjbGFyYXRvcik6IEFkanVzdCBjYWxsIHRvCgljcF9wYXJzZXJfZGVjbGFyYXRvci4KCShjcF9wYXJzZXJfdHlwZV9pZCk6IEFkanVzdCBjYWxsIHRvIGNwX3BhcnNlcl9kZWNsYXJhdG9yLgoJKGNwX3BhcnNlcl9wYXJhbWV0ZXJfZGVjbGFyYXRpb25fbGlzdCk6IEF2b2lkIGJhY2t0cmFja2luZyB3aGVyZQoJcG9zc2libGUuCgkoY3BfcGFyc2VyX3BhcmFtZXRlcl9kZWNsYXJhdGlvbik6IEFkZCBwYXJlbnRoZXNpemVkX3AgcGFyYW1ldGVyLgoJKGNwX3BhcnNlcl9mdW5jdGlvbl9kZWZpbml0aW9uKTogUmVtb3ZlLgoJKGNwX3BhcnNlcl9tZW1iZXJfZGVjbGFyYXRpb24pOiBEbyBub3QgYmFja3RyYWNrIHRvIGxvb2sgZm9yCglmdW5jdGlvbiBkZWZpbml0aW9ucy4KCShjcF9wYXJzZXJfZXhjZXB0aW9uX2RlY2xhcmF0aW9uKTogQWRqdXN0IGNhbGwgdG8KCWNwX3BhcnNlcl9kZWNsYXJhdG9yLgoJKGNwX3BhcnNlcl9zaW5nbGVfZGVjbGFyYXRpb24pOiBIYW5kbGUgZnVuY3Rpb24gZGVmaW5pdGlvbnMgdmlhCgljcF9wYXJzZXJfaW5pdF9kZWNsYXJhdG9yLgoJKGNwX3BhcnNlcl9zYXZlX21lbWJlcl9mdW5jdGlvbl9ib2R5KTogTmV3IGZ1bmN0aW9uLgoKMjAwMy0xMi0xNCAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzEzMTA2CgkqIGRlY2wuYyAoZmluaXNoX2Z1bmN0aW9uKTogQ2hlY2sgaWYgcmV0dXJuIHR5cGUgaXMgZGVwZW5kZW50IGJlZm9yZQoJaXNzdWluZyBubyByZXR1cm4gc3RhdGVtZW50IHdhcm5pbmcuCgoyMDAzLTEyLTEyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMzExOAoJKiBjcC10cmVlLmggKGxhbmdfZGVjbF91KTogQWRkIHRodW5rX2FsaWFzIG1lbWJlci4KCShUSFVOS19WSVJUVUFMX09GRlNFVCk6IE11c3QgYmUgYSBGVU5DVElPTl9ERUNMLgoJKFRIVU5LX0FMSUFTX1ApOiBSZW1vdmUuCgkoVEhVTktfQUxJQVMpOiBBZGp1c3QuCgkqIGNsYXNzLmMgKHVwZGF0ZV92dGFibGVfZW50cnlfZm9yX2ZuKTogR2V0IHRoZSB2YmFzZSB3aXRoaW4gdGhlCglvdmVycmlkaW5nIGZ1bmN0aW9uJ3MgcmV0dXJuIHR5cGUuCgkoZHVtcF90aHVuayk6IEFkanVzdCBUSFVOS19BTElBUyBwcmludGluZy4KCShidWlsZF92dGJsX2luaXRpYWxpemVyKTogQWRqdXN0IFRIVU5LX0FMSUFTIHVzZS4KCSogbWV0aG9kLmMgKG1ha2VfdGh1bmspOiBSZXZlcnQgMTI4ODEgdGVzdCBjaGFuZ2UuIENsZWFyCglUSFVOS19BTElBUy4KCShmaW5pc2hfdGh1bmspOiBBZGp1c3QgVEhVTktfQUxJQVMgc2V0dGluZy4KCSh1c2VfdGh1bmspOiBBZGp1c3QgVEhVTktfQUxJQVMgdXNlLgoJKiBzZW1hbnRpY3MuYyAoZW1pdF9hc3NvY2lhdGVkX3RodW5rcyk6IExpa2V3aXNlLgoKCVBSIGMrKy8xMzExNCwgYysrLzEzMTE1CgkqIGNsYXNzLmMgKGxheW91dF9lbXB0eV9iYXNlKTogUHJvcGFnYXRlIHRoZSBtb3ZlIG9mIGFuIGVtcHR5IGJhc2UKCXRvIG9mZnNldCB6ZXJvLgoKCVBSIGMrKy8xMjg4MQoJKiBtZXRob2QuYyAobWFrZV90aHVuayk6IERlYWwgd2l0aCB0aHVuayBhbGlhc2VzIHdoZW4gc2VhcmNoaW5nCglmb3IgYSB0aHVuay4gUm9idXN0aWZ5IGFzc2VydGlvbi4KCjIwMDMtMTItMTEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtYW5nbGUuYyAoY29udl90eXBlX25hbWVzKTogSG9sZHMgSURFTlRJRklFUl9OT0RFcyBvbmx5LgoJKGhhc2hfdHlwZSk6IFVzZSBUWVBFX1VJRCBvZiB0aGUgaWRlbnRpZmllcidzIHR5cGUuCgkoY29tcGFyZV90eXBlKTogQWRqdXN0LgoJKG1hbmdsZV9jb252X29wX25hbWVfZm9yX3R5cGUpOiBTdG9yZSBpZGVudGlmaWVyIG5vZGVzIG9ubHksIHVzZQoJVFlQRV9VSUQgaGFzIGhhc2ggdmFsdWUuCgoyMDAzLTEyLTEwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChERUNMX0NPTlZfRk5fUCk6IENoZWNrIHRoYXQgREVDTF9OQU1FIGlzIG5vbi1OVUxMLgoKMjAwMy0xMi0wOCAgTWF0dCBBdXN0ZXJuICA8YXVzdGVybkBhcHBsZS5jb20+CgoJUFIgYy8xMzEzNAoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IENvcHkgdmlzaWJpbGl0eSBmbGFnIHdoZW4gYXBwcm9wcmlhdGUuCgkKMjAwMy0xMi0wOSAgR2lvdmFubmkgQmFqbyAgPGdpb3Zhbm5pYmFqb0BnY2MuZ251Lm9yZz4KCgkqIGluaXQuYyAoYnVpbGRfbmV3XzEpOiBEZWFsIHdpdGggYW4gT1ZFUkxPQUQgc2V0IHdoZW4KCWxvb2tpbmcgdXAgZm9yIF9Kdl9BbGxvY09iamVjdC4KCSogZXhjZXB0LmMgKGJ1aWxkX3Rocm93KTogTGlrZXdpc2UgZm9yIF9Kdl9UaHJvdy4KCjIwMDMtMTItMDggIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy8xMTk3MQoJKiB0cmVlLmMgKGJ1aWxkX2xvY2FsX3RlbXApOiBTcGxpdCBvdXQgZnJvbSBidWlsZF9jcGx1c19uZXcuCgkoZm9yY2VfdGFyZ2V0X2V4cHIpOiBOZXcgZm4uCgkqIGNhbGwuYyAoY2FsbF9idWlsdGluX3RyYXApOiBDYWxsIGl0LiAgVGFrZSBhIHR5cGUgcGFybS4KCShjb252ZXJ0X2FyZ190b19lbGxpcHNpcyk6IFBhc3MgaXQuCgkoYnVpbGRfeF92YV9hcmcpOiBVc2UgY2FsbF9idWlsdGluX3RyYXAuCgoJUFIgYysrLzExOTI5CgkqIGNhbGwuYyAobWFnaWNfdmFyYXJnc19wKTogTmV3IGZuLgoJKGJ1aWxkX292ZXJfY2FsbCk6IERvIG5vIGVsbGlwc2lzIGNvbnZlcnNpb25zIGZvciBhcmd1bWVudHMgdG8gCglmdW5jdGlvbnMgd2l0aCBtYWdpYyB2YXJhcmdzLgoKCSogbmFtZS1sb29rdXAuYywgaW5pdC5jLCBleGNlcHQuYzogUmV2ZXJ0IEdpb3Zhbm5pJ3MgcGF0Y2ggZnJvbQoJeWVzdGVyZGF5LgoKCUdpdmUgdGhlIGFub255bW91cyBuYW1lc3BhY2UgYSBudWxsIERFQ0xfTkFNRS4KCSogY3AtdHJlZS5oOiBEb24ndCBkZWNsYXJlIGFub255bW91c19uYW1lc3BhY2VfbmFtZS4KCSogZGVjbC5jOiBEb24ndCBkZWZpbmUgaXQuCgkqIGR1bXAuYyAoY3BfZHVtcF90cmVlKTogRG9uJ3QgY2hlY2sgZm9yIGl0LgoJKiBjeHgtcHJldHR5LXByaW50LmMgKHBwX2N4eF9vcmlnaW5hbF9uYW1lc3BhY2VfZGVmaW5pdGlvbik6IExpa2V3aXNlLgoJKiBlcnJvci5jIChkdW1wX2RlY2wpOiBMaWtld2lzZS4KCSogbmFtZS1sb29rdXAuYzogRGVmaW5lIGl0IGhlcmUuCgkocHVzaF9uYW1lc3BhY2UpOiBQdXQgaXQgaW4gREVDTF9BU1NFTUJMRVJfTkFNRSBpbnN0ZWFkLgoJKiBtYW5nbGUuYyAod3JpdGVfdW5xdWFsaWZpZWRfbmFtZSk6IEFkanVzdC4KCjIwMDMtMTItMDcgIEdpb3Zhbm5pIEJham8gIDxnaW92YW5uaWJham9AZ2NjLmdudS5vcmc+CgoJUFIgYysrLzIyOTQKCSogbmFtZS1sb29rdXAuYyAocHVzaF9vdmVybG9hZGVkX2RlY2wpOiBBbHdheXMgY29uc3RydWN0IGFuCglPVkVSTE9BRCB1bmxlc3MgdGhlIGRlY2xhcmF0aW9uIGlzIGEgYnVpbHQtaW4uCgkoc2V0X25hbWVzcGFjZV9iaW5kaW5nKTogV2hpbGUgYmluZGluZyBPVkVSTE9BRHMgd2l0aCBvbmx5IG9uZQoJZGVjbGFyYXRpb24sIHdlIHN0aWxsIG5lZWQgdG8gY2FsbCBzdXBwbGVtZW50X2JpbmRpbmcuCgkqIGluaXQuYyAoYnVpbGRfbmV3XzEpOiBEZWFsIHdpdGggYW4gT1ZFUkxPQUQgc2V0IHdoZW4KCWxvb2tpbmcgdXAgZm9yIF9Kdl9BbGxvY09iamVjdC4KCSogZXhjZXB0LmMgKGJ1aWxkX3Rocm93KTogTGlrZXdpc2UgZm9yIF9Kdl9UaHJvdy4KCjIwMDMtMTItMDYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEzMzIzCgkqIGNsYXNzLmMgKHNhbWVfc2lnbmF0dXJlX3ApOiBIYW5kbGUgY29udmVyc2lvbiBvcGVyYXRvcnMKCWNvcnJlY3RseS4KCShjaGVja19mb3Jfb3ZlcnJpZGUpOiBMaWtld2lzZS4KCjIwMDMtMTItMDYgIEtlbGxleSBDb29rICA8a2Nvb2tAZ2NjLmdudS5vcmc+CgoJKiBNYWtlLWxhbmcuaW4gKEdYWF9DUk9TU19OQU1FLCBDWFhfQ1JPU1NfTkFNRSk6IERlbGV0ZS4KCShjKysuaW5zdGFsbF9jb21tb24sIGNwL2crKy4xLCBjKysuaW5zdGFsbC1tYW4pOiBBZGp1c3QgZm9yIGFib3ZlLgoJKGMrKy51bmluc3RhbGwpOiBMaWtld2lzZS4KCjIwMDMtMTItMDUgIERhbm55IFNtaXRoIDxkYW5ueXNtaXRoQGdjYy5nbnUub3JnPgoJICAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEzMzA1CgkqIHBhcnNlci5jIChjcF9wYXJzZXJfZWxhYm9yYXRlZF90eXBlX3NwZWNpZmllcik6IEFjY2VwdAoJYXR0cmlidXRlcy4KCQoyMDAzLTEyLTA1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMzMxNAoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2NsYXNzX3NwZWNpZmllcik6IE1hdGNoIHB1c2hfc2NvcGUvcG9wX3Njb3BlCgljYWxscy4KCShjcF9wYXJzZXJfY2xhc3NfaGVhZCk6IExpa2V3aXNlLgoKMjAwMy0xMi0wNSAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzEzMTY2CgkqIHBhcnNlci5jIChjcF9wYXJzZXJfbGF0ZV9wYXJzaW5nX2RlZmF1bHRfYXJncyk6IE1ha2Ugc3VyZSB0aGUKCWNvbnRleHQgaXMgYSBjbGFzcyBiZWZvcmUgY2FsbGluZyBwdXNoX25lc3RlZF9jbGFzcyBhbmQKCXBvcF9uZXN0ZWRfY2xhc3MuCgoyMDAzLTEyLTAzICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJKiBnKytzcGVjLmMgKGxhbmdfc3BlY2lmaWNfZHJpdmVyKTogRGVsZXRlIFVTRV9MSUJVTldJTkRfRVhDRVBUSU9OUwoJc3VwcG9ydC4KCjIwMDMtMTItMDMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzkxMjcKCSogY3AtdHJlZS5oIChhdF9uYW1lc3BhY2Vfc2NvcGVfcCk6IE5ldyBmdW5jdGlvbi4KCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9jbGFzc19oZWFkKTogSGFuZGxlIGludmFsaWQgZXhwbGljaXQKCXNwZWNpYWxpemF0aW9ucy4KCSogc2VhcmNoLmMgKGF0X25hbWVzcGFjZV9zY29wZV9wKTogTmV3IGZ1bmN0aW9uLgoKCVBSIGMrKy8xMzE3OQoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2hhbmRsZXJfcGFybXMpOiBEbyBub3QgY2FsbCBlaF90eXBlX2luZm8gZm9yCgl0eXBlcyB1c2VkIGluIHRlbXBsYXRlcy4KCglQUiBjKysvMTA3NzEKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9jaGVja19mb3JfaW52YWxpZF90ZW1wbGF0ZV9pZCk6IE5ldwoJZnVuY3Rpb24uCgkoY3BfcGFyc2VyX3NpbXBsZV90eXBlX3NwZWNpZmllcik6IFVzZSBpdC4KCShjcF9wYXJzZXJfZWxhYm9yYXRlZF90eXBlX3NwZWNpZmllcik6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9jbGFzc19oZWFkKTogTGlrZXdpc2UuCgoyMDAzLTEyLTAyICBHaW92YW5uaSBCYWpvICA8Z2lvdmFubmliYWpvQGdjYy5nbnUub3JnPgoKCVBSIGMrKy8xMDEyNgoJKiBwdC5jIChjb252ZXJ0X25vbnR5cGVfYXJndW1lbnQpOiBIYW5kbGUgZGVmYXVsdCBjb252ZXJzaW9ucwoJd2hpbGUgY29udmVydGluZyBhIHBvaW50ZXIgdG8gbWVtYmVyIGZ1bmN0aW9uLgoKMjAwMy0xMi0wMiAgR2lvdmFubmkgQmFqbyAgPGdpb3Zhbm5pYmFqb0BnY2MuZ251Lm9yZz4KCglQUiBjKysvMTI1NzMKCSogcHQuYyAodmFsdWVfZGVwZW5kZW50X2V4cHJlc3Npb25fcCk6IEhhbmRsZSBDT01QT05FTlRfUkVGcyBieQoJbG9va2luZyBpbnRvIHRoZW0gcmVjdXJzaXZlbHkuCgoyMDAzLTEyLTAyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogbmFtZS1sb29rdXAuaCAoc3RydWN0IGNwX2JpbmRpbmdfbGV2ZWwpOiBVc2UgRU5VTV9CSVRGSUVMRC4KICAgICAgICAqIHBhcnNlci5jIChzdHJ1Y3QgY3BfdG9rZW4pOiBMaWtld2lzZS4gICAKICAgICAgICAoc3RydWN0IGNwX3BhcnNlcl90b2tlbl90cmVlX21hcF9ub2RlKTogTGlrZXdpc2UuCgkqIGxleC5jIChzdHJ1Y3QgcmVzd29yZCk6IE1vdmUgY29uc3QgYWZ0ZXIgRU5VTV9CSVRGSUVMRC4KCjIwMDMtMTEtMzAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk4NDkKCSogcGFyc2VyLmMgKGNwX2xleGVyX3ByZXZfdG9rZW4pOiBOZXcgZnVuY3Rpb24uCgkoY3BfcGFyc2VyX3NraXBfdG9fY2xvc2luZ19wYXJlbnRoZXNpcyk6IEFkZCBjb25zdW1lX3BhcmVuCglwYXJhbWV0ZXIuCgkoY3BfcGFyc2VyX25lc3RlZF9uYW1lX3NwZWNpZmllcl9vcHQpOiBBZGQgaXNfZGVjbGFyYXRpb24KCXBhcmFtZXRlci4KCShjcF9wYXJzZXJfbmVzdGVkX25hbWVfc3BlY2lmaWVyKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX2NsYXNzX29yX25hbWVzcGFjZV9uYW1lKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX2NsYXNzX25hbWUpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfdGVtcGxhdGVfaWQpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfdGVtcGxhdGVfbmFtZSk6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9pZF9leHByZXNzaW9uKTogQWRqdXN0IGNhbGxzIHRvCgljcF9wYXJzZXJfbmVzdGVkX25hbWVfc3BlY2lmaWVyX29wLCBjcF9wYXJzZXJfdGVtcGxhdGVfaWQsCgljcF9wYXJzZXJfY2xhc3NfbmFtZS4KCShjcF9wYXJzZXJfdW5xdWFsaWZpZWRfaWQpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfcG9zdGZpeF9leHByZXNzaW9uKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX3BzZXVkb19kZXN0cnVjdG9yX25hbWUpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfY2FzdF9leHByZXNzaW9uKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX21lbV9pbml0aWFsaXplcl9pZCk6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9zaW1wbGVfdHlwZV9zcGVjaWZpZXIpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfdHlwZV9uYW1lKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX2VsYWJvcmF0ZWRfdHlwZV9zcGVjaWZpZXIpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfcXVhbGlmaWVkX25hbWVzcGFjZV9zcGVjaWZpZXIpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfdXNpbmdfZGVjbGFyYXRpb24pOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfdXNpbmdfZGlyZWN0aXZlKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX3B0cl9vcGVyYXRvcik6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9kZWNsYXJhdG9yX2lkKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX2NsYXNzX2hlYWQpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfYmFzZV9zcGVjaWZpZXIpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfY29uc3RydWN0b3JfZGVjbGFyYXRvcl9wKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX2RpcmVjdF9kZWNsYXJhdG9yKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShjcF9wYXJzZXJfcGFyZW50aGVzaXplZF9leHByZXNzaW9uX2xpc3QpOiBBZGp1c3QgY2FsbCB0bwoJY3BfcGFyc2VyX3NraXBfdG9fY2xvc2luZ19wYXJlbnRoZXNpcy4KCShjcF9wYXJzZXJfc2VsZWN0aW9uX3N0YXRlbWVudCk6IExpa2V3aXNlLgoKMjAwMy0xMS0yMyAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzEyOTI0CgkqIHR5cGVjay5jIChmaW5pc2hfY2xhc3NfbWVtYmVyX2FjY2Vzc19leHByKTogSGFuZGxlIFRFTVBMQVRFX0lEX0VYUFIKCXdpdGggT1ZFUkxPQUQgYW5kIERFQ0wgbm9kZXMgYXMgdGhlIGZpcnN0IG9wZXJhbmQuCgoyMDAzLTExLTIyICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHB0LmMgKHRzdWJzdCkgPEFSUkFZX1JFRj46IFJlbW92ZSBlcnJvbmVvdXMgYXJndW1lbnQgdG8gYnVpbGRfbnQuCgoyMDAzLTExLTIyICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvNTM2OQoJKiBmcmllbmQuYyAoaXNfZnJpZW5kKTogSGFuZGxlIG1lbWJlciBmdW5jdGlvbiBvZiBhIGNsYXNzCgl0ZW1wbGF0ZSBhcyB0ZW1wbGF0ZSBmcmllbmQuCgkoZG9fZnJpZW5kKTogTGlrZXdpc2UuCgkqIGRlY2wyLmMgKGNoZWNrX2NsYXNzZm4pOiBBZGQgdGVtcGxhdGVfaGVhZGVyX3AgcGFyYW1ldGVyLgoJKiBkZWNsLmMgKHN0YXJ0X2RlY2wpOiBBZGp1c3QgY2hlY2tfY2xhc3NmbiBjYWxsLgoJKGdyb2tmbmRlY2wpOiBMaWtld2lzZS4KCSogcHQuYyAoaXNfc3BlY2lhbGl6YXRpb25fb2ZfZnJpZW5kKTogTmV3IGZ1bmN0aW9uLgoJKHVzZXNfdGVtcGxhdGVfcGFybXNfbGV2ZWwpOiBMaWtld2lzZS4KCShwdXNoX3RlbXBsYXRlX2RlY2xfcmVhbCk6IFVzZSB1c2VzX3RlbXBsYXRlX3Bhcm1zX2xldmVsLgoJKHRzdWJzdF9mcmllbmRfZnVuY3Rpb24pOiBBZGp1c3QgY2hlY2tfY2xhc3NmbiBjYWxsLgoJKiBjcC10cmVlLmggKGNoZWNrX2NsYXNzZm4pOiBBZGp1c3QgZGVjbGFyYXRpb24uCgkodXNlc190ZW1wbGF0ZV9wYXJtc19sZXZlbCk6IEFkZCBkZWNsYXJhdGlvbi4KCShpc19zcGVjaWFsaXphdGlvbl9vZl9mcmllbmQpOiBMaWtld2lzZS4KCjIwMDMtMTEtMjEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEyNTE1CgkqIHB0LmMgKGJ1aWxkX25vbl9kZXBlbmRlbnRfZXhwcik6IEhhbmRsZSBHTlUgZXh0ZW5zaW9uIHRvID86CglvcGVyYXRvci4KCjIwMDMtMTEtMjEgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfcG9zdGZpeF9leHByZXNzaW9uKTogSW5pdGlhbGl6ZSAncycgdG8KCU5VTExfVFJFRS4KCjIwMDMtMTEtMjAgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogTWFrZS1sYW5nLmluIChjKysuZXh0cmFjbGVhbik6IERlbGV0ZS4KCjIwMDMtMTEtMjAgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogTWFrZS1sYW5nLmluIChjaGVjay1nKyssIGxhbmdfY2hlY2tzKTogQWRkLgoKMjAwMy0xMS0xOCAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzEyOTMyCgkqIGNsYXNzLmMgKGN1cnJlbnRseV9vcGVuX2Rlcml2ZWRfY2xhc3MpOiBDaGVjayBpZgoJY3VycmVudF9jbGFzc190eXBlIGlzIE5VTExfVFJFRS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9jYWxsX2V4cHIpOiBDaGVjayBpZgoJY3VycmVudGx5X29wZW5fZGVyaXZlZF9jbGFzcyByZXR1cm5zIE5VTExfVFJFRS4KCSogY3AtdHJlZS5oIChERVJJVkVEX0ZST01fUCk6IEFkZCBwYXJlbnRoZXNpcyBhcm91bmQgUEFSRU5UCglwYXJhbWV0ZXIuCgoyMDAzLTExLTE3ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGluaXQuYyAoYnVpbGRfbmV3XzEpOiBQcmVldmFsdWF0ZSBwbGFjZW1lbnQgYXJncy4KCSogY2FsbC5jIChidWlsZF9vcF9kZWxldGVfY2FsbCk6IERvbid0IGV4cG9zZSBwbGFjZW1lbnQgYXJncyB0bwoJb3ZlcmxvYWQgcmVzb2x1dGlvbi4KCjIwMDMtMTEtMTYgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogTWFrZS1sYW5nLmluIChjKysudGFncyk6IENyZWF0ZSBUQUdTLnN1YiBmaWxlcyBpbiBlYWNoIGRpcmVjdG9yeQoJYW5kIFRBR1MgZmlsZXMgdGhhdCBpbmNsdWRlIHRoZW0gZm9yIGVhY2ggZnJvbnQgZW5kLgoKMjAwMy0xMS0xNSAgQmVybmFyZG8gSW5ub2NlbnRpICA8YmVybmllQGRldmVsZXIuY29tPgoKCVBSIGMrKy8yMjk0CgkqIG5hbWUtbG9va3VwLmM6IFJldmVydCBwcmV2aW91cyBwYXRjaCBmb3IgUFIgYysrLzIyOTQgdG8gcHJldmVudAoJYnVpbGQgZmFpbHVyZSBvbiBsaWJqYXZhLgoKMjAwMy0xMS0xNCAgR2lvdmFubmkgQmFqbyAgPGdpb3Zhbm5pYmFqb0BsaWJlcm8uaXQ+CgogICAgICAgIFBSIGMrKy8yMjk0CiAgICAgICAgKiBuYW1lLWxvb2t1cC5jIChwdXNoX292ZXJsb2FkZWRfZGVjbCk6IEFsd2F5cyBjb25zdHJ1Y3QgYW4gT1ZFUkxPQUQKICAgICAgICB1bmxlc3MgdGhlIGRlY2xhcmF0aW9uIGlzIGEgYnVpbHQtaW4uCiAgICAgICAgKHNldF9uYW1lc3BhY2VfYmluZGluZyk6IFdoaWxlIGJpbmRpbmcgT1ZFUkxPQURzIHdpdGggb25seSBvbmUKICAgICAgICBkZWNsYXJhdGlvbiwgd2Ugc3RpbGwgbmVlZCB0byBjYWxsIHN1cHBsZW1lbnRfYmluZGluZy4KCjIwMDMtMTEtMTQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEyNzYyCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfZW5jbG9zZWRfdGVtcGxhdGVfYXJndW1lbnRfbGlzdCk6IE5ldwoJZnVuY3Rpb24uCgkoY3BfcGFyc2VyX3RlbXBsYXRlX2lkKTogVXNlIGl0LgoJKGNwX3BhcnNlcl9zaW1wbGVfdHlwZV9zcGVjaWZpZXIpOiBSZWNvZ25pemUgaW52YWxpZCB0ZW1wbGF0ZQoJc3ludGF4LgoKMjAwMy0xMS0xNCAgR2lvdmFubmkgQmFqbyAgPGdpb3Zhbm5pYmFqb0BsaWJlcm8uaXQ+CgogICAgICAgIFBSIGMrKy8yMDk0CiAgICAgICAgKiBwdC5jICh1bmlmeSk6IEFkZCBzdXBwb3J0IGZvciBQVFJNRU1fQ1NUIGFuZAogICAgICAgIEZJRUxEX0RFQ0wgdW5pZmljYXRpb24uCgoyMDAzLTExLTEzICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIGRlY2wuYyAoZ3Jva2ZuZGVjbCk6IENoYW5nZSBPSyB0byB0eXBlIHRyZWUuCgoyMDAzLTExLTEyICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogdHJlZS5jIChidWlsZF90YXJnZXRfZXhwcl93aXRoX3R5cGUpOiBUcmVhdGUgVkFfQVJHX0VYUFIgbGlrZQoJQ09OU1RSVUNUT1IuCgoJKiBkZWNsLmMgKGNwX21ha2VfZm5hbWVfZGVjbCk6IFdoZW4gY3JlYXRpbmcgYSB0b3AtbGV2ZWwKCV9fRlVOQ1RJT05fXy1saWtlIHN5bWJvbCwgZG8gcmVnaXN0ZXIgaXQgd2l0aCBwdXNoZGVjbC4KCgkqIGRlY2wuYyAoZmluaXNoX2Nhc2VfbGFiZWwpOiBEbyBub3QgY2hlY2sgdGhhdCB3ZSBhcmUgd2l0aGluIGEKCXN3aXRjaCBzdGF0ZW1lbnQgaGVyZS4KCSogcGFyc2VyLmMgKHN0cnVjdCBjcF9wYXJzZXIpOiBBZGQgaW5faXRlcmF0aW9uX3N0YXRlbWVudF9wIGFuZAoJaW5fc3dpdGNoX3N0YXRlbWVudF9wLgoJKGNwX3BhcnNlcl9uZXcpOiBJbml0aWFsaXplIHRoZW0uCgkoY3BfcGFyc2VyX2xhYmVsZWRfc3RhdGVtZW50KTogQ2hlY2sgdmFsaWRpdHkgb2YgY2FzZSBsYWJlbHMKCWhlcmUuCgkoY3BfcGFyc2VyX3NlbGVjdGlvbl9zdGF0ZW1lbnQpOiBTZXQgaW5fc3dpdGNoX3N0YXRlbWVudF9wLgoJKGNwX3BhcnNlcl9pdGVyYXRpb25fc3RhdGVtZW50KTogU2V0IGluX2l0ZXJhdGlvbl9zdGF0ZW1lbnRfcC4KCShjcF9wYXJzZXJfanVtcF9zdGF0ZW1lbnQpOiBDaGVjayB2YWxpZGl0eSBvZiBicmVhay9jb250aW51ZQoJc3RhdGVtZW50cyBoZXJlLgoKCVBSIGMrKy8xMjczNQoJKiBjcC10cmVlLmggKGR1cGxpY2F0ZV9kZWNscyk6IFJldHVybiBhIHRyZWUuCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogQ2xhcmlmeSBkb2N1bWVudGF0aW9uLiAgUmV0dXJuCgllcnJvcl9tYXJrX25vZGUgdG8gaW5kaWNhdGUgYSBmYWlsZWQgcmVkZWNsYXJhdGlvbi4KCSogZnJpZW5kLmMgKGRvX2ZyaWVuZCk6IEhhbmRsZSB0aGF0IGNhc2UuCgkqIG5hbWUtbG9va3VwLmMgKHB1c2hkZWNsKTogTGlrZXdpc2UuCgoyMDAzLTExLTExICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGNwLXRyZWUuaCAoREVDTF9OQU1FU1BBQ0VfQVNTT0NJQVRJT05TKTogTmV3IG1hY3JvLgoJKiBuYW1lLWxvb2t1cC5jIChwYXJzZV91c2luZ19kaXJlY3RpdmUpOiBOZXcgZm4uCgkoaXNfYXNzb2NpYXRlZF9uYW1lc3BhY2UpOiBOZXcgZm4uCgkoYXJnX2Fzc29jX25hbWVzcGFjZSk6IEFsc28gY2hlY2sgYXNzb2NpYXRlZCBuYW1lc3BhY2VzLgoJKiBuYW1lLWxvb2t1cC5oOiBEZWNsYXJlIG5ldyBmbnMuCgkqIHB0LmMgKG1heWJlX3Byb2Nlc3NfcGFydGlhbF9zcGVjaWFsaXphdGlvbik6IEFsbG93CglzcGVjaWFsaXphdGlvbiBpbiBhc3NvY2lhdGVkIG5hbWVzcGFjZS4KCSogcGFyc2VyLmMgKGNwX3BhcnNlcl91c2luZ19kaXJlY3RpdmUpOiBBY2NlcHQgYXR0cmlidXRlcy4gIFVzZQoJcGFyc2VfdXNpbmdfZGlyZWN0aXZlLgoKMjAwMy0xMS0xMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGN2dC5jIChjb252ZXJ0X3RvX3ZvaWQpOiBVc2Ugdm9pZF96ZXJvX25vZGUgYWZ0ZXIgb3ZlcmxvYWQgZmFpbHVyZS4KCjIwMDMtMTEtMTAgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCVBSIGMrKy8xMjgzMgoJKiBuYW1lLWxvb2t1cC5jIChzdXBwbGVtZW50X2JpbmRpbmcpOiBHcmFjZWZ1bGx5IGhhbmRsZSBuYW1lcwoJdXNlZCBhdCBub24tY2xhc3Mgc2NvcGUgcHJpb3IgZGVjbGFyYXRpb24uCgoyMDAzLTExLTA2ICBNYXR0IEF1c3Rlcm4gIDxhdXN0ZXJuQGFwcGxlLmNvbT4KCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogY29weSBERUNMX1ZJU0lCSUxJVFkgZmllbGQuCgkqIG1ldGhvZC5jICh1c2VfdGh1bmspOiBnaXZlIHRodW5rIHNhbWUgdmlzaWJpbGl0eSBhcyBmdW5jdGlvbi4KCSogb3B0aW1pemUuYyAobWF5YmVfY2xvbmVfYm9keSk6IGNvcHkgREVDTF9WSVNJQklMSVRZIGZpZWxkLgoJCjIwMDMtMTEtMDUgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy8xMTYxNgoJKiBwdC5jIChpbnN0YW50aWF0ZV9wZW5kaW5nX3RlbXBsYXRlcyk6IFNhdmUgYW5kIHJlc3RvcmUKCWlucHV0X2xvY2F0aW9uLgoKMjAwMy0xMS0wNSAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzIwMTkKCSogZnJpZW5kLmMgKGFkZF9mcmllbmQpOiBEb24ndCBkaXNwbGF5IHByZXZpb3VzIGRlY2xhcmF0aW9uIGluCgljYXNlIG9mIGR1cGxpY2F0ZSBmcmllbmQgd2FybmluZy4KCjIwMDMtMTEtMDIgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy85ODEwCgkqIGNhbGwuYyAoYnVpbGRfb3Zlcl9jYWxsKTogQ2hlY2sgYWNjZXNzIHVzaW5nIHByaW1hcnkgdGVtcGxhdGUKCWlmIEZOIGlzIGEgbWVtYmVyIGZ1bmN0aW9uIHRlbXBsYXRlLgoKMjAwMy0xMS0wMSAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzEyNzk2CgkqIGNsYXNzLmMgKGhhbmRsZV91c2luZ19kZWNsKTogU2V0IGlucHV0X2xvY2F0aW9uIGJlZm9yZSBjYWxsaW5nCgllcnJvcl9ub3RfYmFzZV90eXBlLgoKMjAwMy0xMC0yNiAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzEwMzcxCgkqIHNlbWFudGljcy5jIChmaW5pc2hfbm9uX3N0YXRpY19kYXRhX21lbWJlcik6IEhhbmRsZSB3aGVuCglib3RoIHByb2Nlc3NpbmdfdGVtcGxhdGVfZGVjbCBhbmQgcXVhbGlmeWluZ19zY29wZSBhcmUgdHJ1ZS4KCjIwMDMtMTAtMjQgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy8xMTA3NgoJKiBjbGFzcy5jIChoYW5kbGVfdXNpbmdfZGVjbCk6IFN3YXAgYXJndW1lbnRzIG9mIGVycm9yX25vdF9iYXNlX3R5cGUuCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfZGlyZWN0X2RlY2xhcmF0b3IpOiBPbmx5IHJlc29sdmUgdHlwZW5hbWUgZm9yCgluYW1lc3BhY2Ugc2NvcGUgZGVjbGFyYXRpb25zLgoKMjAwMy0xMC0yNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTI2OTgsIGMrKy8xMjY5OSwgYysrLzEyNzAwLCBjKysvMTI1NjYKCSogY3AtdHJlZS5oIChUSFVOS19BTElBU19QLCBUSFVOS19BTElBUyk6IE5ldy4KCShkZWJ1Z19jbGFzcywgZGVidWdfdGh1bmtzKTogTmV3LgoJKiBjbGFzcy5jIChkdW1wX2NsYXNzX2hpZXJhcmNoeV8xKTogTmV3IGJyZWFrIG91dCBmcm9tIC4uLgoJKGR1bXBfY2xhc3NfaGllcmFyY2h5KTogLi4uIGhlcmUuCgkoZHVtcF90aHVuaywgZGVidWdfdGh1bmtzLCBkZWJ1Z19jbGFzcyk6IE5ldy4KCSh1cGRhdGVfdnRhYmxlX2VudHJ5X2Zvcl9mbik6IEFkZCBzc2l6ZXR5cGUgY2FzdHMuIENvcnJlY3QKCWNvbnRpbnVlZCBzZWFyY2ggZm9yIHByaW1hcnkgYmluZm8gdmlhIHZpcnR1YWwuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IEZvbGxvdyBjb3ZhcmlhbnQgdGh1bmsgYWxpYXMuCgkqIG1ldGhvZC5jIChtYWtlX3RodW5rKTogQ2xlYXIgREVDTF9USFVOS1Mgb2YgdGhlIHRodW5rLgoJKGZpbmlzaF90aHVuayk6IExvb2sgZm9yIGFuIGFsaWFzIG9mIHRoZSBjb3ZhcmlhbnQgdGh1bmsgYW5kIHBvaW50Cgl0byBpdC4KCSh1c2VfdGh1bmspOiBXZSBzaG91bGQgbmV2ZXIgdXNlIGFuIGFsaWFzLgoJKiBzZW1hbnRpY3MuYyAoZW1pdF9hc3NvY2lhdGVkX3RodW5rcyk6IERvIG5vdCBlbWl0IGFsaWFzZXMuCgoJUFIgYysrLzEyNTY2CgkqIGNwLXRyZWUuaCAoY3BfZm5hbWVfaW5pdCk6IEFkZCBUWVBFIHBvaW50ZXIgcGFyYW0uCgkqIGRlY2wuYyAoY3BfZm5hbWVfaW5pdCk6IEFkZCBUWVBFIHBvaW50ZXIgcGFyYW0uIFNldCBpdC4gRG9uJ3QKCWNyZWF0ZSBhbiBhZC1ob2MgRVJST1JfTUFSSy4KCShjcF9tYWtlX2ZuYW1lX2RlY2wpOiBBZGp1c3QuCgkqIHB0LmMgKHRzdWJzdF9leHByKTogQWRqdXN0LgoKMjAwMy0xMC0yMyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzEyNzI2CgkqIHRyZWUuYyAoYnVpbGRfdGFyZ2V0X2V4cHJfd2l0aF90eXBlKTogRG9uJ3QgY2FsbCBmb3JjZV9ydmFsdWUKCWZvciBDT05TVFJVQ1RPUnMuCgoyMDAzLTEwLTIyICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY2FsbC5jOiBGaXggY29tbWVudCBmb3JtYXR0aW5nLgoJKiBjbGFzcy5jOiBMaWtld2lzZS4KCSogY3h4LXByZXR0eS1wcmludC5jOiBMaWtld2lzZS4KCSogaW5pdC5jOiBMaWtld2lzZS4KCSogcGFyc2VyLmM6IExpa2V3aXNlLgoJKiBwdC5jOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmM6IExpa2V3aXNlLgoJKiB0cmVlLmM6IExpa2V3aXNlLgoJKiB0eXBlY2suYzogTGlrZXdpc2UuCgkqIHR5cGVjazIuYzogTGlrZXdpc2UuCgoyMDAzLTEwLTIxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTk2MgoJKiB0eXBlY2suYyAoYnVpbGRfeF9jb25kaXRpb25hbF9leHByKTogSGFuZGxlIG1pc3NpbmcgbWlkZGxlCglvcGVyYW5kcyBpbiB0ZW1wbGF0ZXMuCgkqIG1hbmdsZS5jICh3cml0ZV9leHByZXNzaW9uKTogSXNzdWUgZXJyb3JzIGFib3V0IGF0dGVtcHRzIHRvCgltYW5nbGUgYSBub24tZXhpc3RhbnQgbWlkZGxlIG9wZXJhdG9yIHRvIHRoZSA/OiBvcGVyYXRvci4KCjIwMDMtMTAtMjEgIFJvYmVydCBCb3dkaWRnZSAgIDxib3dkaWRnZUBhcHBsZS5jb20+CgkqIGRlY2wuYyAoY3BfZmluaXNoX2RlY2wpOiBSZW1vdmUgY2xhdXNlIGludGVuZGVkIGZvciBhc20gZGlyZWN0aXZlcyAKICAgICAgICAgIGluIHN0cnVjdCBvciBjbGFzcyBmaWVsZHM6IHRoaXMgY29kZSBpcyBuZXZlciBleGVjdXRlZC4KCjIwMDMtMTAtMjIgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGVjbC5jIChzdGFydF9kZWNsKTogRXhpdCBpZiBwdXNoX3RlbXBsYXRlX2RlY2wgcmV0dXJucwoJZXJyb3JfbWFya19ub2RlLgoKMjAwMy0xMC0yMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIENoYW5nZUxvZzogRml4IHR5cG9zLgoJKiBjYWxsLmM6IEZpeCBjb21tZW50IHR5cG9zLgoJKiBjbGFzcy5jOiBMaWtld2lzZS4KCSogY3AtdHJlZS5oOiBMaWtld2lzZS4KCSogY3Z0LmM6IExpa2V3aXNlLgoJKiBjeHgtcHJldHR5LXByaW50LmM6IExpa2V3aXNlLgoJKiBkZWNsLmM6IExpa2V3aXNlLgoJKiBkZWNsMi5jOiBMaWtld2lzZS4KCSogaW5pdC5jOiBMaWtld2lzZS4KCSogbWFuZ2xlLmM6IExpa2V3aXNlLgoJKiBuYW1lLWxvb2t1cC5jOiBMaWtld2lzZS4KCSogcGFyc2VyLmM6IExpa2V3aXNlLgoJKiBzZWFyY2guYzogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jOiBMaWtld2lzZS4KCSogdHJlZS5jOiBMaWtld2lzZS4KCSogdHlwZWNrLmM6IExpa2V3aXNlLgoKMjAwMy0xMC0yMCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogZGVjbC5jIChzdGFydF9jbGVhbnVwX2ZuKTogIFNldCBERUNMX0RFQ0xBUkVEX0lOTElORV9QIHRvIGRlZmZlcgoJdGhlIGV4cGFuc2lvbi4KCjIwMDMtMTAtMjAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKGMrKy5pbnN0YWxsLWluZm8pOiBSZW1vdmUuCgoyMDAzLTEwLTIwICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGNsYXNzLmMgKGxheW91dF9jbGFzc190eXBlKTogU2V0IERFQ0xfQVJUSUZJQ0lBTCBvbiBwYWRkaW5nCglmaWVsZC4KCjIwMDMtMTAtMjAgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy85NzgxLCBjKysvMTA1ODMsIGMrKy8xMTg2MgoJKiBkZWNsLmMgKGNwX2ZpbmlzaF9kZWNsKTogRXhpdCBpbW1lZGlhdGVseSBpZiBkZWNsIGlzIGFuCgllcnJvcl9tYXJrX25vZGUuCgkqIHB0LmMgKHB1c2hfdGVtcGxhdGVfZGVjbF9yZWFsKTogUmV0dXJuIGVycm9yX21hcmtfbm9kZSBmb3IKCWludmFsaWQgdGVtcGxhdGUgZGVjbGFyYXRpb24gb2YgdmFyaWFibGUuCgoyMDAzLTEwLTE4ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvMTI0OTUKCSogcHQuYyAobG9va3VwX3RlbXBsYXRlX2NsYXNzKTogSGFuZGxlIHdoZW4gY3VycmVudF9jbGFzc190eXBlCglpcyBhIGxvY2FsIGNsYXNzLgoKMjAwMy0xMC0xNyAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzI1MTMKCSogZGVjbC5jIChtYWtlX3R5cGVuYW1lX3R5cGUpOiBVc2UgZGVwZW5kZW50X3R5cGVfcC4KCShtYWtlX3VuYm91bmRfY2xhc3NfdGVtcGxhdGUpOiBMaWtld2lzZS4KCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBJbmNyZW1lbnQKCXByb2Nlc3NpbmdfdGVtcGxhdGVfZGVjbCBkdXJpbmcgc3Vic3RpdHV0aW9uIG9mIHRlbXBsYXRlIGZyaWVuZAoJZnVuY3Rpb24uICBQcmVpbmNyZW1lbnQgcHJvY2Vzc2luZ190ZW1wbGF0ZV9kZWNsIHJhdGhlciB0aGFuCglwb3N0aW5jcmVtZW50LgoJKGdldF9tb3N0bHlfaW5zdGFudGlhdGVkX2Z1bmN0aW9uX3R5cGUpOiBJbmNyZW1lbnQKCXByb2Nlc3NpbmdfdGVtcGxhdGVfZGVjbCBkdXJpbmcgcGFydGlhbCBzdWJzdGl0dXRpb24gb2YgZnVuY3Rpb24KCXR5cGUuCgoyMDAzLTEwLTE1ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJUFIgYysrLzEyNTc0CgkqIGRlY2wyLmMgKGN4eF9jYWxsZ3JhcGhfYW5hbHl6ZV9leHByKTogRGVhbCB3aXRoIGJhc2VsaW5rLgoKMjAwMy0xMC0xNCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzExODc4CgkqIHRyZWUuYyAoYnVpbGRfdGFyZ2V0X2V4cHJfd2l0aF90eXBlKTogQ2FsbCBmb3JjZV9ydmFsdWUgZm9yCgljbGFzc2VzIHdpdGggbm9uLXRyaXZpYWwgY29weSBjdG9ycy4KCglQUiBjKysvMTEwNjMKCSogdHlwZWNrLmMgKGJ1aWxkX21vZGlmeV9leHByKTogQ2FsbCBjb252ZXJ0IHJhdGhlciB0aGFuIGFib3J0LgoKMjAwMy0xMC0xNCAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJQnJlYWNrIG91dCBkZWNsLmMgKDMvbikKCSogbmFtZS1sb29rdXAuYzogSW5jbHVkZSBmbGFncy5oCgkobG9va3VwX25hbWVfY3VycmVudF9sZXZlbCk6IE1ha2Ugc3RhdGljLgoJKGFkZF9kZWNsX3RvX2xldmVsKTogTGlrZXdpc2UuCgkocHVzaF9sb2NhbF9iaW5kaW5nKTogTGlrZXdpc2UuCgkocHVzaF9vdmVybG9hZGVkX2RlY2wpOiBMaWtld2lzZS4KCShsb29rdXBfdXNpbmdfbmFtZXNwYWNlKTogTGlrZXdpc2UuCgkocXVhbGlmaWVkX2xvb2t1cF91c2luZ19uYW1lc3BhY2UpOiBMaWtld2lzZS4KCShsb29rdXBfdHlwZV9jdXJyZW50X2xldmVsKTogTGlrZXdpc2UuCgkodW5xdWFsaWZpZWRfbmFtZXNwYWNlX2xvb2t1cCk6IExpa2V3aXNlLgoJKG5hbWVzcGFjZV9hbmNlc3Rvcik6IExpa2V3aXNlLgoJKHB1c2hfdXNpbmdfZGlyZWN0aXZlKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAocHVzaGRlY2wpOiBNb3ZlIHRvIG5hbWUtbG9va3VwLmMuCgkocHVzaGRlY2xfdG9wX2xldmVsXzEpOiBMaWtld2lzZS4KCShwdXNoZGVjbF90b3BfbGV2ZWwpOiBMaWtld2lzZS4KCShwdXNoZGVjbF90b3BfbGV2ZWxfYW5kX2ZpbmlzaCk6IExpa2V3aXNlLgoJKG1heWJlX3B1c2hfZGVjbCk6IExpa2V3aXNlLgoJKHB1c2hfdXNpbmdfZGVjbCk6IExpa2V3aXNlLgoJKHB1c2hfb3ZlcmxvYWRlZF9kZWNsKTogTGlrZXdpc2UuCgkobWFrZV9hbm9uX25hbWUpOiBMaWtld2lzZS4KCShhbm9uX2NudCk6IExpa2V3aXNlLgoJKGNsZWFyX2Fub25fdGFncyk6IExpa2V3aXNlLgoJKG1heWJlX2luamVjdF9mb3Jfc2NvcGVfdmFyKTogTGlrZXdpc2UuCgkoY2hlY2tfZm9yX291dF9vZl9zY29wZV92YXJpYWJsZSk6IExpa2V3aXNlLgoJKiBNYWtlLWxhbmcuaW4gKGNwL25hbWUtbG9va3VwLm8pOiBEZXBlbmQgb24gZmxhZ3MuaC4KCSogZGVjbC5jICh3YXJuX2V4dGVybl9yZWRlY2xhcmVkX3N0YXRpYyk6IEV4cG9ydC4KCSogY3AtdHJlZS5oICh3YXJuX2V4dGVybl9yZWRlY2xhcmVkX3N0YXRpYyk6IERlY2xhcmUuCgoyMDAzLTEwLTE0ICBOYXRoYW5hZWwgTmVyb2RlICA8bmVyb2RlbkBnY2MuZ251Lm9yZz4KCgkqIE1ha2UtbGFuZy5pbjogUmVwbGFjZSB1c2VzIG9mICQodGFyZ2V0X2FsaWFzKSB3aXRoCgkkKHRhcmdldF9ub25jYW5vbmljYWwpLgoKMjAwMy0xMC0xMyAgVm9sa2VyIFJlaWNoZWx0ICA8cmVpY2hlbHRAaWdwbS5yd3RoLWFhY2hlbi5kZT4KCgkqIENoYW5nZUxvZzogQWRkIFBSIG51bWJlciB0byBwYXRjaCBmb3IgUFIgYysrLzEyMzcwLgoKMjAwMy0xMC0xMyAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBuYW1lLWxvb2t1cC5oIChjeHhfc2NvcGVfZmluZF9iaW5kaW5nX2Zvcl9uYW1lKTogRG9uJ3QgZXhwb3J0LgoJKGJpbmRpbmdfZm9yX25hbWUpOiBMaWtld2lzZS4KCShjeHhfYmluZGluZ19jbGVhcik6IE1vdmUgdG8gbmFtZS1sb29rdXAuYy4KCSogbmFtZS1sb29rdXAuYyAoY3h4X3Njb3BlX2ZpbmRfYmluZGluZ19mb3JfbmFtZSk6IE5vdyBzdGF0aWMuCgkoYmluZGluZ19mb3JfbmFtZSk6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChpc19hbmNlc3Rvcik6IE1vdmUgdG8gbmFtZS1sb29rdXAuYwoJKG5hbWVzcGFjZV9hbmNlc3Rvcik6IExpa2V3aXNlLgoJKGFkZF91c2luZ19uYW1lc3BhY2UpOiBMaWtld2lzZS4KCShhbWJpZ3VvdXNfZGVjbCk6IExpa2V3aXNlLgoJKGxvb2t1cF91c2luZ19uYW1lc3BhY2UpOiBMaWtld2lzZS4KCShxdWFsaWZpZWRfbG9va3VwX3VzaW5nX25hbWVzcGFjZSk6IExpa2V3aXNlLgoJKHNldF9kZWNsX25hbWVzcGFjZSk6IExpa2V3aXNlLgoJKGRlY2xfbmFtZXNwYWNlKTogTGlrZXdpc2UuCgkoY3VycmVudF9kZWNsX25hbWVzcGFjZSk6IExpa2V3aXNlLgoJKHB1c2hfZGVjbF9uYW1lc3BhY2UpOiBMaWtld2lzZS4KCShwb3BfZGVjbF9uYW1lc3BhY2UpOiBMaWtld2lzZS4KCShwdXNoX3Njb3BlKTogTGlrZXdpc2UuCgkocG9wX3Njb3BlKTogTGlrZXdpc2UuCgkoc3RydWN0IGFyZ19sb29rdXApOiBMaWtld2lzZS4KCShhcmdfYXNzb2MpOiBMaWtld2lzZS4KCShhcmdfYXNzb2NfYXJncyk6IExpa2V3aXNlLgoJKGFyZ19hc3NvY190eXBlKTogTGlrZXdpc2UuCgkoYWRkX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkoYXJnX2Fzc29jX25hbWVzcGFjZSk6IExpa2V3aXNlLgoJKGFyZ19hc3NvY19jbGFzcyk6IExpa2V3aXNlLgoJKGFyZ19hc3NvY190ZW1wbGF0ZV9hcmcpOiBMaWtld2lzZS4KCShkb19uYW1lc3BhY2VfYWxpYXMpOiBMaWtld2lzZS4KCSh2YWxpZGF0ZV9ub25tZW1iZXJfdXNpbmdfZGVjbCk6IExpa2V3aXNlLgoJKGRvX25vbm1lbWJlcl91c2luZ19kZWNsKTogTGlrZXdpc2UuCgkoZG9fdG9wbGV2ZWxfdXNpbmdfZGVjbCk6IExpa2V3aXNlLgoJKGRvX2xvY2FsX3VzaW5nX2RlY2wpOiBMaWtld2lzZS4KCShkb19jbGFzc191c2luZ19kZWNsKTogTGlrZXdpc2UuCgkoZG9fdXNpbmdfZGlyZWN0aXZlKTogTGlrZXdpc2UuCgkoY29uc3RydWN0b3JfbmFtZV9mdWxsKTogTGlrZXdpc2UuCgkoY29uc3RydWN0b3JfbmFtZSk6IExpa2V3aXNlLgoJKGNvbnN0cnVjdG9yX25hbWVfcCk6IExpa2V3aXNlLgoKMjAwMy0xMC0xMyAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJQnJlYWsgb3V0IGRlY2wuYyAoMi9uKSAKCSogbmFtZS1sb29rdXAuYzogSW5jbHVkZSBkaWFnbm9zdGljLmgKCShjeHhfYmluZGluZ19mcmVlKTogTWFrZSBzdGF0aWMuCgkoY3h4X2JpbmRpbmdfbWFrZSk6IExpa2V3aXNlLgoJKGJpbmRpbmdfdGFibGVfbmV3KTogTGlrZXdpc2UKCShiaW5kaW5nX3RhYmxlX2ZyZWUpOiBMaWtld2lzZS4KCShiaW5kaW5nX3RhYmxlX2luc2VydCk6IExpa2V3aXNlLgoJKGJpbmRpbmdfdGFibGVfZmluZF9hbm9uX3R5cGUpOiBMaWtld2lzZS4KCShiaW5kaW5nX3RhYmxlX3JldmVyc2VfbWF5YmVfcmVtYXApOiBMaWtld2lzZS4KCShzdXBwbGVtZW50X2JpbmRpbmcpOiBMaWtld2lzZS4KCSogbmFtZS1sb29rdXAuaCAoZ2xvYmFsX3Njb3BlX25hbWUpOiBEZWNsYXJlIGV4dGVybi4KCShnbG9iYWxfdHlwZV9ub2RlKTogTGlrZXdpc2UuCgkoY3h4X2JpbmRpbmdfZnJlZSk6IERvbid0IGV4cG9ydC4KCShjeHhfYmluZGluZ19tYWtlKTogTGlrZXdpc2UuCgkoYmluZGluZ190YWJsZV9uZXcpOiBMaWtld2lzZS4KCShiaW5kaW5nX3RhYmxlX2ZyZWUpOiBMaWtld2lzZS4KCShiaW5kaW5nX3RhYmxlX2luc2VydCk6IExpa2V3aXNlLgoJKGJpbmRpbmdfdGFibGVfZmluZF9hbm9uX3R5cGUpOiBMaWtld2lzZS4KCShiaW5kaW5nX3RhYmxlX3JldmVyc2VfbWF5YmVfcmVtYXApOiBMaWtld2lzZS4KCSogTWFrZS1sYW5nLmluIChjcC9uYW1lLWxvb2t1cC5vKTogRGVwZW5kIG9uICQoRElBR05PU1RJQ19IKQoJKiBkZWNsLmMgKGxvb2t1cF9uYW1lc3BhY2VfbmFtZSk6IE1vdmUgdG8gbmFtZS1sb29rdXAuYwoJKHNlbGVjdF9kZWNsKTogTGlrZXdpc2UuCgkodW5xdWFsaWZpZWRfbmFtZXNwYWNlX2xvb2t1cCk6IExpa2V3aXNlLgoJKGxvb2t1cF9xdWFsaWZpZWRfbmFtZSk6IExpa2V3aXNlLgoJKGxvb2t1cF9uYW1lX3JlYWwpOiBMaWtld2lzZS4KCShsb29rdXBfbmFtZV9ub25jbGFzcyk6IExpa2V3aXNlLgoJKGxvb2t1cF9mdW5jdGlvbl9ub25jbGFzcyk6IExpa2V3aXNlLgoJKGxvb2t1cF9uYW1lKTogTGlrZXdpc2UuCgkobG9va3VwX25hbWVfY3VycmVudF9sZXZlbCk6IExpa2V3aXNlLgoJKGxvb2t1cF90eXBlX2N1cnJlbnRfbGV2ZWwpOiBMaWtld2lzZS4KCShsb29rdXBfZmxhZ3MpOiBMaWtld2lzZS4KCShxdWFsaWZ5X2xvb2t1cCk6IExpa2V3aXNlLgoJKGxvb2t1cF90YWcpOiBMaWtld2lzZS4KCShsb29rdXBfdGFnX3JldmVyc2UpOiBMaWtld2lzZS4KCShnZXRkZWNscyk6IExpa2V3aXNlLgoJKHN0b3JlZGVjbHMpOiBSZW1vdmUuCgkoY3h4X3JlbWVtYmVyX3R5cGVfZGVjbHMpOiBNb3ZlIHRvIG5hbWUtbG9va3VwLmMuCgkoZ2xvYmFsX2JpbmRpbmdzX3ApOiBMaWtld2lzZS4KCShpbm5lcm1vc3Rfbm9uY2xhc3NfbGV2ZWwpOiBMaWtld2lzZS4KCSh0b3BsZXZlbF9iaW5kaW5nc19wKTogTGlrZXdpc2UuCgkobmFtZXNwYWNlX2JpbmRpbmdzX3ApOiBMaWtld2lzZS4KCShrZXB0X2xldmVsX3ApOiBMaWtld2lzZS4KCShpbm5lcm1vc3Rfc2NvcGVfa2luZCk6IExpa2V3aXNlLgoJKHRlbXBsYXRlX3Bhcm1fc2NvcGVfcCk6IExpa2V3aXNlLgoJKHB1c2hfYmluZGluZyk6IExpa2V3aXNlLgoJKHB1c2hfbG9jYWxfYmluZGluZyk6IExpa2V3aXNlLgoJKGFkZF9kZWNsX3RvX2xldmVsKTogTGlrZXdpc2UuICBNYWtlIGV4dGVybi4KCShwdXNoX2NsYXNzX2JpbmRpbmcpOiBNb3ZlIHRvIG5hbWUtbG9va3VwLmMuCgkocmVzdW1lX2xldmVsKTogTGlrZXdpc2UuICBSZW5hbWUgdG8gcmVzdW1lX3Njb3BlLgoJKGJlZ2luX3Njb3BlKTogTW92ZSB0byBuYW1lLWxvb2t1cC5jLgoJKGluZGVudCk6IExpa2V3aXNlLgoJKGJpbmRpbmdfZGVwdGgpOiBMaWtld2lzZS4KCShpc19jbGFzc19sZXZlbCk6IExpa2V3aXNlLgoJKGN4eF9zY29wZV9kZXNjcmlwdG9yKTogTGlrZXdpc2UuCgkoY3h4X3Njb3BlX2RlYnVnKTogTGlrZXdpc2UuCgkobmFtZXNwYWNlX3Njb3BlX2h0X3NpemUpOiBMaWtld2lzZS4KCShsZWF2ZV9zY29wZSk6IExpa2V3aXNlLgoJKHB1c2hsZXZlbF9jbGFzcyk6IExpa2V3aXNlLgoJKHBvcGxldmVsX2NsYXNzKTogTGlrZXdpc2UuCgkoY2xlYXJfaWRlbnRpZmllcl9jbGFzc192YWx1ZXMpOiBMaWtld2lzZS4KCShwdXNoZGVjbF93aXRoX3Njb3BlKTogTGlrZXdpc2UuCgkocHVzaGRlY2xfbmFtZXNwYWNlX2xldmVsKTogTGlrZXdpc2UuCgkocHVzaGRlY2xfY2xhc3NfbGV2ZWwpOiBMaWtld2lzZS4KCShwdXNoX2NsYXNzX2xldmVsX2JpbmRpbmcpOiBMaWtld2lzZS4KCShwdXNoX3VzaW5nX2RpcmVjdGl2ZSk6IExpa2V3aXNlLgoJKGlkZW50aWZpZXJfZ2xvYmFsX3ZhbHVlKTogTGlrZXdpc2UuCgkoa2VlcF9uZXh0X2xldmVsX2ZsYWcpOiBMaWtld2lzZS4KCShrZWVwX25leHRfbGV2ZWwpOiBMaWtld2lzZS4KCShmcmVlX2JpbmRpbmdfbGV2ZWwpOiBMaWtld2lzZS4KCShzZXRfY2xhc3Nfc2hhZG93cyk6IExpa2V3aXNlLgoJKG1heWJlX3B1c2hfY2xlYW51cF9sZXZlbCk6IExpa2V3aXNlLgoJKGNwX25hbWVzcGFjZV9kZWNscyk6IExpa2V3aXNlLgoJKGJ0X3ByaW50X2VudHJ5KTogTGlrZXdpc2UuCgkocHJpbnRfYmluZGluZ19sZXZlbCk6IExpa2V3aXNlLgoJKHByaW50X290aGVyX2JpbmRpbmdfc3RhY2spOiBMaWtld2lzZS4KCShwcmludF9iaW5kaW5nX3N0YWNrKTogTGlrZXdpc2UuCgkocHVzaF9uYW1lc3BhY2UpOiBMaWtld2lzZS4KCShwb3BfbmFtZXNwYWNlKTogTGlrZXdpc2UuCgkocHVzaF9uZXN0ZWRfbmFtZXNwYWNlKTogTGlrZXdpc2UuCgkocG9wX25lc3RlZF9uYW1lc3BhY2UpOiBMaWtld2lzZS4KCShjeHhfc2F2ZWRfYmluZGluZ19tYWtlKTogTGlrZXdpc2UuCgkoc3RydWN0IGN4eF9zYXZlZF9iaW5kaW5nX21ha2UpOiBMaWtld2lzZS4KCShzdG9yZV9iaW5kaW5ncyk6IExpa2V3aXNlLgoJKG1heWJlX3B1c2hfdG9fdG9wX2xldmVsKTogTGlrZXdpc2UuCgkocHVzaF90b190b3BfbGV2ZWwpOiBMaWtld2lzZS4KCShwb3BfZnJvbV90b3BfbGV2ZWwpOiBMaWtld2lzZS4KCShpZGVudGlmaWVyX3R5cGVfdmFsdWUpOiBMaWtld2lzZS4KCShzZXRfaWRlbnRpZmllcl90eXBlX3ZhbHVlKTogTGlrZXdpc2UuCgkoc2V0X2lkZW50aWZpZXJfdHlwZV92YWx1ZV93aXRoX3Njb3BlKTogTGlrZXdpc2UuCgkocG9wX2V2ZXJ5dGhpbmcpOiBMaWtld2lzZS4KCShwdXNodGFnKTogTGlrZXdpc2UuCgkoZm9sbG93X3RhZ190eXBlZGVmKTogTGlrZXdpc2UuCgkobWF5YmVfcHJvY2Vzc190ZW1wbGF0ZV90eXBlX2RlY2xhcmF0aW9uKTogTGlrZXdpc2UuCgkocG9wX2JpbmRpbmcpOiBMaWtld2lzZS4KCSogY3AtdHJlZS5oOiBNb3ZlIGNvcnJlc3BvbmRpbmcgZGVjbGFyYXRpb25zIHRvIG5hbWUtbG9va3VwLmgKCQoyMDAzLTEwLTEyICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5AZ2NjLmdudS5vcmc+CgoJKiBjdnQuYyAob2NwX2NvbnZlcnQpOiBNb3ZlIHdhcm5pbmcgdG8gQyBjb21tb24gY29kZS4KCjIwMDMtMTAtMDkgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy82MzkyCgkqIHRyZWUuYyAoYnVpbGRfY3BsdXNfYXJyYXlfdHlwZSk6IEhhbmRsZSBhbGwgcXVhbHMgdGhlIHNhbWUuCgkoY3BfYnVpbGRfcXVhbGlmaWVkX3R5cGVfcmVhbCk6IExvb2sgdGhyb3VnaCBhcnJheXMgZmlyc3QuCgoJKiB0cmVlLmMgKGJ1aWxkX2NwbHVzX25ldyk6IFVzZSBidWlsZF9kZWNsIHRvIGNyZWF0ZSBhIFZBUl9ERUNMLgoJKGJ1aWxkX3RhcmdldF9leHByX3dpdGhfdHlwZSk6IExpa2V3aXNlLgoKCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBTYW5pdHkgY2hlY2sgdGhhdCBvdXIKCWVuY2xvc2luZyBjbGFzcyBoYXMgYmVlbiBpbnN0YW50aWF0ZWQuCgoyMDAzLTEwLTA4ICBHaW92YW5uaSBCYWpvICA8Z2lvdmFubmliYWpvQGxpYmVyby5pdD4KCgkqIGNwX3RyZWUuaDogQWRkZWQgVEZGX05PX0ZVTkNUSU9OX0FSR1VNRU5UUy4KCSogZXJyb3IuYyAoZHVtcF9mdW5jdGlvbl9kZWNsKTogVXNlIGl0IHRvIHNraXAgdGhlIGR1bXAgb2YgdGhlCglhcmd1bWVudHMuCgkoZHVtcF9leHByKTogV2hlbiBkdW1waW5nIGEgZGVjbGFyYXRpb24gZm91bmQgd2l0aGluIGFuCglleHByZXNzaW9uLCBhbHdheXMgc2V0IFRGRl9OT19GVU5DVElPTl9BUkdVTUVOVFMKCWluIHRoZSBmbGFncy4KCjIwMDMtMTAtMDggIEdpb3Zhbm5pIEJham8gIDxnaW92YW5uaWJham9AbGliZXJvLml0PgoKCVBSIGMrKy8xMTA5NwoJKiBwdC5jICh0c3Vic3RfZGVjbCk6IFN1YnN0aXR1dGUgYWxzbyB0aGUgREVDTF9OQU1FIG5vZGUgb2YKCVVTSU5HX0RFQ0wuCgoyMDAzLTEwLTA2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMDE0NwoJKiBjYWxsLmMgKGluaXRpYWxpemVfcmVmZXJlbmNlKTogVHdlYWsgZXJyb3IgbWVzc2FnZS4KCSogY3h4LXByZXR0eS1wcmludC5oIChjeHhfcHJldHR5X3ByaW50ZXJfZmxhZ3MpOiBSZW1vdmUKCXBwX2N4eF9mbGFnX3F1YWxpZmllZF9pZCBhbmQgcHBfY3h4X2ZsYWdfZ2xvYmFsX3Njb3BlLgoJKiBjeHgtcHJldHR5LXByaW50LmMgKHBwX2N4eF9pZF9leHByZXNzaW9uKTogQWx3YXlzIGRpc3BsYXkKCXF1YWxpZmllZCBlbnRpdGllcyB1c2luZyBxdWFsaWZpZWQgbmFtZXMuCgkKCVBSIGMrKy8xMjMzNwoJKiBpbml0LmMgKGJ1aWxkX25ld18xKTogTWFrZSBzdXJlIHRoYXQgdGhlIGV4cHJlc3Npb24gcmV0dXJuZWQgaXMKCW5vdCBhbiBsdmFsdWUuCgoJUFIgYysrLzEyMzQ0LCBjKysvMTIyMzYsIGMrKy84NjU2CgkqIGRlY2wuYyAoc3RhcnRfZnVuY3Rpb24pOiBEbyBub3QgaWdub3JlIGF0dHJpYnV0ZXMgZW1iZWRkZWQgaW4gYQoJZnVuY3Rpb24gZGVjbGFyYXRvci4KCjIwMDMtMTAtMDYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKGMrKy5pbmZvKTogUmVtb3ZlLgoJKGMrKy5kdmkpOiBSZW1vdmUuCgkoYysrLmdlbmVyYXRlZC1tYW5wYWdlcyk6IFJlcGxhY2Ugd2l0aCAuLi4KCShnZW5lcmF0ZWQtbWFucGFnZXMpOiAuLi4gdGhpcy4KCjIwMDMtMTAtMDMgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogZGVjbC5jIChzdHJ1Y3QgY3BfYmluZGluZ19sZXZlbCk6IE1vdmUgdG8gbmFtZS1sb29rdXAuaAoJKGN1cnJlbnRfYmluZGluZ19sZXZlbCk6IExpa2V3aXNlLgoJKGNsYXNzX2JpbmRpbmdfbGV2ZWwpOiBMaWtld2lzZS4KCSogY3AtdHJlZS5oIChlbnVtIHNjb3BlX2tpbmQpOiBMaWtld2lzZS4KCjIwMDMtMTAtMDMgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogbmFtZS1sb29rdXAuYyAoYmluZGluZ19lbnRyeV9mcmVlKTogTnVsbGlmeSBuYW1lIGFuZCB0eXBlCglmaWVsZHMuIAoKMjAwMy0xMC0wMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTI0ODYKCSogdHlwZWNrLmMgKGZpbmlzaF9jbGFzc19tZW1iZXJfYWNjZXNzX2V4cHIpOiBJc3N1ZSBkaWFnbm9zdGljCglvbiBlcnJvbmVvdXMgdXNlIG9mIHF1YWxpZmllZCBuYW1lLgoKMjAwMy0wOS0zMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBjKysvMTIzNzAKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBDb3B5IERFQ0xfU0FWRURfSU5TTlMgdG9vLgoKMjAwMy0wOS0zMCAgS2VsbGV5IENvb2sgIDxrZWxsZXljb29va0B3aWRlb3Blbndlc3QuY29tPgoKCSogZysrc3BlYy5jOiBDb252ZXJ0IHRvIElTTyBDOTAgcHJvdG90eXBlcy4KCSogcGFyc2VyLmM6IExpa2V3aXNlLgoKMjAwMy0wOS0zMCAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBkZWNsLmMgKHBvcF9iaW5kaW5nKTogRG9uJ3QgbWVzcyB3aXRoIG51bGxpZnlpbmcgYmluZGluZy0+c2NvcGUKCWhlcmUuIAoJKiBuYW1lLWxvb2t1cC5jOiBSZS1mb3JtYXQuCgkoY3h4X2JpbmRpbmdfZnJlZSk6IE51bGxpZnkgYmluZGluZy0+c2NvcGUuCgoyMDAzLTA5LTI5ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJUFIgQysrLzEyMDQ3CgkqIGV4Y2VwdC5jIChidWlsZF9laF90eXBlX3R5cGUpOiBDYWxsIG1hcmtfdXNlZCBvbiB0aGUgdHlwZS4KCjIwMDMtMDktMjggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0eXBlY2suYyAoY19leHBhbmRfYXNtX29wZXJhbmRzKTogVGFrZSBsb2NhdGlvbl90LCBpbnN0ZWFkIG9mCglpbmRpdmlkdWFsIGZpbGUgYW5kIGxpbmUuCgoyMDAzLTA5LTI4ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBkZWNsLmMgKGN4eF9idWlsdGluX3R5cGVfZGVjbHMpOiBDb252ZXJ0IHRvIElTTyBDOTAgZnVuY3Rpb24KCWRlZmluaXRpb24uCgkqIGluaXQuYyAocHVzaF9iYXNlX2NsZWFudXBzKTogTGlrZXdpc2UuCgkqIGRlY2wyLmMgKGZpbmlzaF9maWxlKTogTGlrZXdpc2UuCgkqIG1hbmdsZS5jIChpbml0X21hbmdsZSk6IExpa2V3aXNlLgoJKGR1bXBfc3Vic3RpdHV0aW9uX2NhbmRpZGF0ZXMpOiBMaWtld2lzZS4KCSogc2VhcmNoLmM6IExpa2V3aXNlLgoKMjAwMy0wOS0yNyAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBuYW1lLWxvb2t1cC5oIChnZXRfZ2xvYmFsX3ZhbHVlX2lmX3ByZXNlbnQpOiBOZXcgZnVuY3Rpb24uCgkoaXNfdHlwZW5hbWVfYXRfZ2xvYmFsX3Njb3BlKTogTGlrZXdpc2UuCgkqIGV4Y2VwdC5jIChkb19iZWdpbl9jYXRjaCk6IFVzZSBnZXRfZ2xvYmFsX3ZhbHVlX2lmX3ByZXNlbnQuCgkoZG9fZW5kX2NhdGNoKTogTGlrZXdpc2UuCgkoZG9fYWxsb2NhdGVfZXhjZXB0aW9uKTogTGlrZXdpc2UuCgkoZG9fZnJlZV9leGNlcHRpb24pOiBMaWtld2lzZS4KCShidWlsZF90aHJvdyk6IExpa2V3aXNlLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX21lbWJlcl9kZWNsYXJhdGlvbik6IExpa2V3aXNlLgoJKiBydHRpLmMgKHRocm93X2JhZF9jYXN0KTogTGlrZXdpc2UuCgkodGhyb3dfYmFkX3R5cGVpZCk6IExpa2V3aXNlLgoJKiBkZWNsLmMgKGNoZWNrX3RhZ19kZWNsKTogVXNlIGlzX3R5cGVuYW1lX2F0X2dsb2JhbF9zY29wZS4KCShncm9rZGVjbGFyYXRvcik6IExpa2V3aXNlLgoJKiBjcC10cmVlLmggKGdsb2JhbF9uYW1lc3BhY2UpOiBNb3ZlIHRvIG5hbWUtbG9va3VwLmgKCSogY2FsbC5jIChjYWxsX2J1aWx0aW5fdHJhcCk6IFRpZHkuCgoyMDAzLTA5LTI3ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvMTE0MTUKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9uZXN0ZWRfbmFtZV9zcGVjaWZpZXJfb3B0KTogSXNzdWUgY29ycmVjdAoJZXJyb3IgbWVzc2FnZSB3aGVuIHBhcnNlci0+c2NvcGUgaXMgZ2xvYmFsX25hbWVzcGFjZS4KCjIwMDMtMDktMjcgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogY3AtdHJlZS5oLCBuYW1lLWxvb2t1cC5oLCBkZWNsLmMsIGRlY2wyLmM6IFJlbW92ZSByZWZlcmVuY2UgdG8KCW1hY3JvcyAJQklORElOR19TQ09QRSwgQklORElOR19WQUxVRSBhbmQgQklORElOR19UWVBFLgoKMjAwMy0wOS0yNiAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBkZWNsLmMgKHBvcF9iaW5kaW5nX2xldmVsLCBzdXNwZW5kX2JpbmRpbmdfbGV2ZWwsCglmaW5kX2NsYXNzX2JpbmRpbmdfbGV2ZWwpOiBNZXJnZSBpbnRvIGxlYXZlX3Njb3BlLiAgUmVtb3ZlLgoJKGxlYXZlX3Njb3BlKTogIE5ldyBmdW5jdGlvbi4KCShwb3BsZXZlbCk6IFVwZGF0ZS4KCShwb3BsZXZlbF9jbGFzcyk6IExpa2V3aXNlLgoJKHBvcF9uYW1lc3BhY2UpOiBMaWtld2lzZS4KCjIwMDMtMDktMjUgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy81NjU1CgkqIHBhcnNlci5jIChjcF9wYXJzZXJfY2hlY2tfYWNjZXNzX2luX3JlZGVjbGFyYXRpb24pOiBOZXcgZnVuY3Rpb24uCgkoY3BfcGFyc2VyX21lbWJlcl9kZWNsYXJhdGlvbik6IFVzZSBpdC4KCShjcF9wYXJzZXJfdGVtcGxhdGVfZGVjbGFyYXRpb25fYWZ0ZXJfZXhwb3J0KTogTGlrZXdpc2UuCgoyMDAzLTA5LTIyICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldD4KCgkqIGNwLXRyZWUuaCAoc2NvcGVfa2luZCk6IEFkZCBuZXcgZW51bWVyYXRvci4KCShrZWVwX25leHRfbGV2ZWwpOiBDaGFuZ2UgcGFyYW1ldGVyIHR5cGUgdG8gYm9vbC4KCShiZWdpbl9zY29wZSk6ICBDaGFuZ2UgcHJvdG90eXBlLgoJKHB1c2hsZXZlbCk6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCSogZGVjbC5jIChwdXNoX2JpbmRpbmdfbGV2ZWwpOiBGb2xkIGluIGJlZ2luX3Njb3BlLiAgUmVtb3ZlLgoJKHN0cnVjdCBjcF9iaW5kaW5nX2xldmVsKTogUmVtb3ZlIHRhZ190cmFucGFyZW50IGZpZWxkLiAgTWFrZSBrZWVwCglvZiBiaXRzaXplIG9uZS4KCShrZWVwX25leHRfbGV2ZWxfZmxhZyk6IE1ha2UgYSBib29sLgoJKGN4eF9zY29wZV9kZXNjcmlwdG9yKTogVXBkYXRlIHNjb3BlIG5hbWVzIHRhYmxlCgkobWFrZV9jeHhfc2NvcGUpOiBGb2xkIGluIGJlZ2luX3Njb3BlLiAgUmVtb3ZlLi4KCShuYW1lc3BhY2Vfc2NvcGVfaHRfc2l6ZSk6IE5ldyBmdW5jdGlvbi4KCShiZWdpbl9zY29wZSk6IENoYW5nZSBwcm90b3R5cGUuICBSZXR1cm4gYSBzY29wZS4gIFRpZHkuCgkoa2VwdF9sZXZlbF9wKTogVXBkYXRlLgoJKHB1c2hsZXZlbCk6IFJlbW92ZS4KCShtYXliZV9wdXNoX2NsZWFudXBfbGV2ZWwpOiBTaW1wbGlmeS4KCShwb3BsZXZlbCk6IFVwZGF0ZSBmb3Igc2tfY2xlYW51cCBhbmQga2VlcCBjaGFuZ2UuCgkocHJpbnRfYmluZGluZ19sZXZlbCk6IExpa2V3aXNlLgoJKGluaXRpYWxfcHVzaF9uYW1lc3BhY2Vfc2NvcGUpOiBGb2xkIGluIGJlZ2luX3Njb3BlLiAgUmVtb3ZlLgoJKHB1c2hfbmFtZXNwYWNlKTogVXBkYXRlLgoJKHB1c2h0YWcpOiBMaWtld2lzZS4KCShsb29rdXBfdGFnKTogTGlrZXdpc2UuCgkobG9va3VwX25hbWVfY3VycmVudF9sZXZlbCk6IExpa2V3aXNlLgoJKGxvb2t1cF90eXBlX2N1cnJlbnRfbGV2ZWwpOiBMaWtld2lzZS4KCShjeHhfaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBMaWtld2lzZS4KCShzdGFydF9mdW5jdGlvbik6IExpa2V3aXNlLgoJKGJlZ2luX2Z1bmN0aW9uX2JvZHkpOiBMaWtld2lzZS4KCShzdGFydF9tZXRob2QpOiBMaWtld2lzZS4KCSogcHQuYyAocHVzaF9pbmxpbmVfdGVtcGxhdGVfcGFybXNfcmVjdXJzaXZlKTogTGlrZXdpc2UuCgkoYmVnaW5fdGVtcGxhdGVfcGFybV9saXN0KTogTGlrZXdpc2UuCgkoYmVnaW5fc3BlY2lhbGl6YXRpb24pOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGRvX3B1c2hsZXZlbCk6IExpa2V3aXNlLgoJKGJlZ2luX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl9zdG10X2V4cHIpOiBMaWtld2lzZS4KCjIwMDMtMDktMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjbGFzcy5jLCBjcC10cmVlLmgsIGRlY2wuYywgZGVjbDIuYywgZXJyb3IuYywgaW5pdC5jLAoJbWV0aG9kLmMsIG9wdGltaXplLmMsIHB0LmMsIHNlbWFudGljcy5jLCB0cmVlLmM6IFJldmVydC4KCjIwMDMtMDktMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjbGFzcy5jLCBjcC10cmVlLmgsIGRlY2wuYywgZGVjbDIuYywgZXJyb3IuYywgaW5pdC5jLAoJbWV0aG9kLmMsIG9wdGltaXplLmMsIHB0LmMsIHNlbWFudGljcy5jLCB0cmVlLmM6IFVwZGF0ZSBmb3IKCURFQ0xfU09VUkNFX0xPQ0FUSU9OIHJlbmFtZSBhbmQgY2hhbmdlIHRvIGNvbnN0LgoKMjAwMy0wOS0yMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGRlY2wuYywgZGVjbDIuYywgcHQuYzogVXNlICVKIGluIGRpYWdub3N0aWNzLgoKMjAwMy0wOS0yMCAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzE1NwoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2RpcmVjdF9kZWNsYXJhdG9yKTogQ2xlYXIKCXBhcnNlci0+bnVtX3RlbXBsYXRlX3BhcmFtZXRlcl9saXN0cyB3aGVuIHBhcnNpbmcgZnVuY3Rpb24KCXBhcmFtZXRlcnMuCgkoY3BfcGFyc2VyX2NvbnN0cnVjdG9yX2RlY2xhcmF0b3JfcCk6IExpa2V3aXNlLgoKMjAwMy0wOS0xOSAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzQ5NQoJKiBwdC5jICh0c3Vic3RfZnJpZW5kX2NsYXNzKTogT25seSB1c2UgaW5uZXJtb3N0IHRlbXBsYXRlCglhcmd1bWVudHMgZm9yIHRoZSBpbmplY3RlZCBmcmllbmQgY2xhc3MgdGVtcGxhdGUuCgoyMDAzLTA5LTE5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMjMzMgoJKiBwdC5jIChpbnN0YW50aWF0ZV9jbGFzc190ZW1wbGF0ZSk6IEluY3JlbWVudAoJcHJvY2Vzc2luZ190ZW1wbGF0ZV9kZWNsIGFyb3VuZCB0aGUgdHN1YnN0IG9mIGEgdGVtcGxhdGUgbWVtYmVyCglmdW5jdGlvbi4KCjIwMDMtMDktMTkgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogZGVjbC5jIChjeHhfc2NvcGVfZGVzY3JpcHRvcik6IEZpeCB0aGlua28uCgkoc3RydWN0IGNwX2JpbmRpbmdfbGV2ZWwpOiBBZGp1c3QgdHlwZSBvZiBiaW5kaW5nX2RlcHRoIGZpZWxkLiAKCjIwMDMtMDktMTggIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzEyMzIwCgkqIGNhbGwuYyAodHlwZV9wYXNzZWRfYXMpOiBDaGVjayBmb3IgaW5jb21wbGV0ZSB0eXBlLgoJKGNvbnZlcnRfZm9yX2FyZ19wYXNzaW5nKTogTGlrZXdpc2UuCgoyMDAzLTA5LTE4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy85ODQ4CgkqIG9wdGltaXplLmMgKG1heWJlX2Nsb25lX2JvZHkpOiBEb24ndCBzZXQgTUFSS19VU0VEIG9uIHBhcmFtZXRlcnMKCWhlcmUuCgkqIHNlbWFudGljcy5jIChleHBhbmRfYm9keSk6IFNldCBpdCBoZXJlIG9uIHRoZSByZW1haW5pbmcgY2xvbmVzLgoKMjAwMy0wOS0xOCAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBsZXguYyAoaW5pdF9vcGVyYXRvcnMpOiBSZW1vdmUgb3BlcmF0b3JfbmFtZV9pbmZvIGZvciBGRlNfRVhQUi4KCSogY2xhc3MuYyAoaW5zdGFudGlhdGVfdHlwZSk6IFJlbW92ZSBGRlNfRVhQUiBjYXNlLgoKMjAwMy0wOS0xOCAgVm9sa2VyIFJlaWNoZWx0ICA8cmVpY2hlbHRAaWdwbS5yd3RoLWFhY2hlbi5kZT4KCgkqIENoYW5nZUxvZzogRml4IHJlY2VudCBjb21taXQuCgoyMDAzLTA5LTE4ICBWb2xrZXIgUmVpY2hlbHQgIDxyZWljaGVsdEBpZ3BtLnJ3dGgtYWFjaGVuLmRlPgoKCSogQ2hhbmdlTG9nOiBBZGQgUFIgbnVtYmVyIHRvIHBhdGNoIGZvciBQUiBjKysvMTIzMTYuCgoyMDAzLTA5LTE4ICBHYWJyaWVsIERvcyBSZWlzIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogZXJyb3IuYyAoZHVtcF90eXBlKTogU2ltcGxpZnkuICBVc2UgcHBfdHlwZV9zcGVjaWZpZXJfc2VxIGZvcgoJIkMiIHR5cGVzLiAKCSogY3h4LXByZXR0eS1wcmludC5jIChwcF9jeHhfdHlwZV9zcGVjaWZpZXJfc2VxKTogRml4IHRoaW5rby4KCjIwMDMtMDktMTcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBzZW1hbnRpY3MuYyAoZXhwYW5kX2JvZHkpOiBEb24ndCBzYXZlL3Jlc3RvcmUgaW5wdXRfbG9jYXRpb24uCgoyMDAzLTA5LTE3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMjI2NgoJKiBjcC10cmVlLmggKHRzdWJzdF9mbGFnc190KTogQWRkIHRmX2NvbnYuCgkqIGNsYXNzLmMgKHN0YW5kYXJkX2NvbnZlcnNpb24pOiBQYXNzIHRmX2NvbnYgdG8KCWluc3RhbnRpYXRlX3R5cGUuCgkocmVzb2x2ZV9hZGRyZXNzX29mX292ZXJsb2FkZWRfZnVuY3Rpb24pOiBEbyBub3QgY2FsbCBtYXJrX3VzZWQKCXdoZW4ganVzdCBjaGVja2luZyBjb252ZXJzaW9ucy4KCglQUiBkZWJ1Zy8xMjA2NgoJKiBjcC1sYW5nLmMgKExBTkdfSE9PS1NfQlVJTFRJTl9UWVBFX0RFQ0xTKTogRGVmaW5lLgoJKiBjcC10cmVlLmggKGN4eF9idWlsdGluX3R5cGVfZGVjbHMpOiBEZWNsYXJlLgoJKiBkZWNsLmMgKGJ1aWx0aW5fdHlwZV9kZWNscyk6IE5ldyB2YXJpYWJsZXMuCgkoY3h4X2J1aWx0aW5fdHlwZV9kZWNscyk6IE5ldyBmdW5jdGlvbi4KCShyZWNvcmRfYnVpbHRpbl90eXBlKTogQWRkIHRvIGJ1aWx0aW5fdHlwZV9kZWNscy4KCjIwMDMtMDktMTcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgYysrLzEyMzE2CiAgICAgICAgKiBzZW1hbnRpY3MuYyAoZXhwYW5kX29yX2RlZmVyX2ZuKTogSW5jL2RlYyBmdW5jdGlvbl9kZXB0aC4KCjIwMDMtMDktMTYgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy83OTM5CgkqIHR5cGVjay5jIChjb21wdHlwZXMpOiBEb24ndCBJQ0Ugd2hlbiBpdHMgZmlyc3QgYXJndW1lbnQgaXMKCWVycm9yX21hcmtfbm9kZS4KCShjb21wcGFybXMpOiBSZXZlcnNlIHRoZSBhcmd1bWVudHMgb2Ygc2FtZV90eXBlX3AuCgoyMDAzLTA5LTE1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMjE4NAoJKiB0eXBlY2suYyAoY29udmVydF9hcmd1bWVudHMpOiBSZXR1cm4gZXJyb3JfbWFya19ub2RlIGZvciBhbgoJaW5jb21wbGV0ZSBwYXJhbWV0ZXIuIE1ha2UgZXJyb3IgbWVzc2FnZSBtb3JlIGluZm9ybWF0aXZlLgoKMjAwMy0wOS0xMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMzkwNwoJKiBjbGFzcy5jIChtYXliZV9ub3RlX25hbWVfdXNlZF9pbl9jbGFzcyk6IFJlZmluZSB0ZXN0IGZvciB3aGV0aGVyCglvciBub3Qgd2UgYXJlIGluIGEgY2xhc3Mgc2NvcGUuCgoJKiBjcC10cmVlLmggKGxhbmd1YWdlX2Z1bmN0aW9uKTogUmVtb3ZlIHhfZXhwYW5kaW5nX3AuCgkoZXhwYW5kaW5nX3ApOiBSZW1vdmUuCgkoZG9pbmdfc2VtYW50aWNfYW5hbHlzaXNfcCk6IFJlbW92ZS4KCShzY29wZV9raW5kKTogQWRkIHNrX2Z1bmN0aW9uX3Bhcm1zLCBza19jbGFzcywKCXNrX25hbWVzcGFjZS4KCShpbm5lcm1vc3Rfc2NvcGVfa2luZCk6IE5ldyBtZXRob2QuCgkqIGNhbGwuYyAoY3h4X3R5cGVfcHJvbW90ZXNfdG8pOiBVc2UgdHlwZV9kZWNheXNfdG8uCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19QVVNITEVWRUwpOiBSZWRlZmluZS4KCShMQU5HX0hPT0tTX1BPUExFVkVMKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoY3BfYmluZGluZ19sZXZlbCk6IFJlbW92ZSBwYXJtX2ZsYWcsIHRlbXBsYXRlX3Bhcm1zX3AsCgl0ZW1wbGF0ZV9zcGVjX3AsIG5hbWVzcGFjZV9wLCBpc19mb3Jfc2NvcGUsIGlzX3RyeV9zY29wZSwgYW5kCglpc19jYXRjaF9zY29wZS4gIEFkZCBraW5kIGFuZCBleHBsaWNpdF9zcGVjX3AuCgkoY3h4X3Njb3BlX2Rlc2NyaXB0b3IpOiBVc2UgYSBsb29rdXAgdGFibGUuCgkoZmluZF9jbGFzc19iaW5kaW5nX2xldmVsKTogVXNlICJraW5kIiBmaWVsZCBpbiBiaW5kaW5nX2xldmVsLCBub3QKCXRoZSB2YXJpb3VzIGZsYWdzLgoJKHBvcF9iaW5kaW5nX2xldmVsKTogTGlrZXdpc2UuCgkoaW5uZXJtb3N0X25vbmNsYXNzX2xldmVsKTogTGlrZXdpc2UuCgkodG9wbGV2ZWxfYmluZGluZ3NfcCk6IExpa2V3aXNlLgoJKG5hbWVzcGFjZV9iaW5kaW5nc19wKTogTGlrZXdpc2UuCgkodGVtcGxhdGVfcGFybV9zY29wZV9wKTogTGlrZXdpc2UuCgkoaW5uZXJtb3N0X3Njb3BlX2tpbmQpOiBOZXcgbWV0aG9kLgoJKGN1cnJlbnRfdG1wbF9zcGVjX2tpbmQpOiBVc2UgImtpbmQiIGZpZWxkIGluIGJpbmRpbmdfbGV2ZWwsIG5vdAoJdGhlIHZhcmlvdXMgZmxhZ3MuCgkocHVzaGxldmVsKTogUmVtb3ZlIGNoZWNrIGZvciBkb2luZ19zZW1hbnRpY19hbmFseXNpc19wLgoJKGJlZ2luX3Njb3BlKTogU2ltcGxpZnkuCgkoYWRkX2RlY2xfdG9fbGV2ZWwpOiBVc2UgImtpbmQiIGZpZWxkIGluIGJpbmRpbmdfbGV2ZWwsIG5vdAoJdGhlIHZhcmlvdXMgZmxhZ3MuCgkocHVzaF9sb2NhbF9iaW5kaW5nKTogTGlrZXdpc2UuCgkocG9wX2xhYmVsKTogUmVtb3ZlIGNoZWNrIGZvciBkb2luZ19zZW1hbnRpY19hbmFseXNpc19wLgoJKHBvcGxldmVsKTogVXNlICJraW5kIiBmaWVsZCBpbiBiaW5kaW5nX2xldmVsLCBub3QKCXRoZSB2YXJpb3VzIGZsYWdzLgoJKHNldF9ibG9jayk6IFJlbW92ZSBjaGVjayBmb3IgZG9pbmdfc2VtYW50aWNfYW5hbHlzaXNfcC4KCShwdXNobGV2ZWxfY2xhc3MpOiBVc2UgImtpbmQiIGZpZWxkIGluIGJpbmRpbmdfbGV2ZWwsIG5vdAoJdGhlIHZhcmlvdXMgZmxhZ3MuIAoJKHBvcGxldmVsX2NsYXNzKTogTGlrZXdpc2UuCgkoaW5pdGlhbF9wdXNoX25hbWVzcGFjZV9zY29wZSk6IExpa2V3aXNlLgoJKG1heWJlX3B1c2hfdG9fdG9wX2xldmVsKTogTGlrZXdpc2UuCgkoc2V0X2lkZW50aWZpZXJfdHlwZV92YWx1ZV93aXRoX3Njb3BlKTogTGlrZXdpc2UuCgkocG9wX2V2ZXJ5dGhpbmcpOiBMaWtld2lzZS4KCShtYXliZV9wcm9jZXNzX3RlbXBsYXRlX3R5cGVfZGVjbGFyYXRpb24pOiBMaWtld2lzZS4KCShwdXNodGFnKTogTGlrZXdpc2UuCgkocHVzaGRlY2wpOiBMaWtld2lzZS4KCShwdXNoZGVjbF93aXRoX3Njb3BlKTogTGlrZXdpc2UuCgkoY2hlY2tfcHJldmlvdXNfZ290b18xKTogTGlrZXdpc2UuCgkoZGVmaW5lX2xhYmVsKTogTGlrZXdpc2UuCgkoZmluaXNoX2Nhc2VfbGFiZWwpOiBMaWtld2lzZS4KCShsb29rdXBfdGFnKTogTGlrZXdpc2UuCgkodW5xdWFsaWZpZWRfbmFtZXNwYWNlX2xvb2t1cCk6IExpa2V3aXNlLgoJKGxvb2t1cF9uYW1lX3JlYWwpOiBMaWtld2lzZS4KCShsb29rdXBfbmFtZV9jdXJyZW50X2xldmVsKTogTGlrZXdpc2UuCgkobG9va3VwX3R5cGVfY3VycmVudF9sZXZlbCk6IExpa2V3aXNlLgoJKHJlY29yZF9idWlsdGluX3R5cGUpOiBMaWtld2lzZS4KCShjcF9tYWtlX2ZuYW1lX2RlY2wpOiBMaWtld2lzZS4KCShtYXliZV9pbmplY3RfZm9yX3Njb3BlX3Zhcik6IExpa2V3aXNlLgoJKGNwX2ZpbmlzaF9kZWNsKTogUmVtb3ZlIGNoZWNrIGZvciBkb2luZ19zZW1hbnRpY19hbmFseXNpc19wLgoJKHN0YXJ0X2Z1bmN0aW9uKTogVXNlIGJlZ2luX3Njb3BlLCBub3QgcHVzaGxldmVsLgoJKGZpbmlzaF9mdW5jdGlvbik6IFVzZSAia2luZCIgZmllbGQgaW4gYmluZGluZ19sZXZlbCwgbm90Cgl0aGUgdmFyaW91cyBmbGFncy4KCShzdGFydF9tZXRob2QpOiBVc2UgYmVnaW5fc2NvcGUsIG5vdCBwdXNobGV2ZWwuCgkobWFrZV9sYWJlbF9kZWNsKTogRG8gbm90IGNoZWNrIGV4cGFuZGluZ19wLgoJKHNhdmVfZnVuY3Rpb24tZGF0YSk6IERvIG5vdCBzZXQgZXhwYW5kaW5nX3AuCgkoY3h4X3B1c2hfZnVuY3Rpb25fY29udGV4dCk6IERvIG5vdCBjbGVhciBleHBhbmRpbmdfcC4KCSogc2VtYW50aWNzLmMgKGN4eF9leHBhbmRfZnVuY3Rpb25fc3RhcnQpOiBEbyBub3Qgc2V0IGV4cGFuZGluZ19wLgoJCjIwMDMtMDktMTQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChsYXlvdXRfY2xhc3NfdHlwZSk6IE1ha2UgREVDTF9NT0RFIG1hdGNoIFRZUEVfTU9ERSBmb3IKCWFuIGJpdC1maWVsZCB3aG9zZSB3aWR0aCBleGNlZWRzIHRoYXQgb2YgaXRzIHR5cGUuCgoyMDAzLTA5LTE0ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIHJ0dGkuYyAoZ2V0X3RpbmZvX2RlY2wpOiBTZXQgVFJFRV9QVUJMSUMgZm9yIHR5cGVpbmZvIGRlY2xzLgoKMjAwMy0wOS0xNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIENoYW5nZUxvZzogRm9sbG93IHNwZWxsaW5nIGNvbnZlbnRpb25zLgoJKiBwYXJzZXIuYzogTGlrZXdpc2UuCgoyMDAzLTA5LTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZGVjbDIuYyAoZmluaXNoX2ZpbGUpOiBDaGVjayBjZ3JhcGhfYXNzZW1ibGVfcGVuZGluZ19mdW5jdGlvbnMKCWR1cmluZyByZWxheGF0aW9uIGxvb3AuCgoyMDAzLTA5LTExICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBkZWNsMi5jICh2YXJfZmluYWxpemVkX3ApOiBTd2FwIGFybXMgb2YgY29uZGl0aW9uYWwuCgoyMDAzLTA5LTEwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTc4OAoJKiB0eXBlY2suYyAoYnVpbGRfYWRkcmVzcyk6IElmIGl0IGlzIGEgZnVuY3Rpb24sIG1hcmsgaXQgdXNlZC4KCShidWlsZF91bmFyeV9vcCk6IERvIG5vdCBsb3NlIG9iamVjdCdzIHNpZGUtZWZmZWN0cyB3aGVuIHRha2luZwoJYWRkcmVzcyBvZiBzdGF0aWMgbWVtYmVyIGZ1bmN0aW9uLgoJKiBjbGFzcy5jIChyZXNvbHZlX2FkZHJlc3Nfb2Zfb3ZlcmxvYWRlZF9mdW5jdGlvbik6IFVzZQoJdHN1YnN0X2ZsYWdzX3QgcGFyYW1ldGVyLiBPbmx5IGV4cGVjdCBvdmVybG9hZCBzZXRzLiBBZGp1c3QuCgkoaW5zdGFudGlhdGVfdHlwZSk6IEFkanVzdCBmbGFncyBwYXNzaW5nLiBEbyBub3QgbG9zZSBvYmplY3QncwoJc2lkZS1lZmZlY3RzIHdoZW4gdGFraW5nIGFkZHJlc3Mgb2Ygc3RhdGljIG1lbWJlciBmdW5jdGlvbi4KCjIwMDMtMDktMTEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBzZW1hbnRpY3MuYyAoZXhwYW5kX29yX2RlZmVyX2ZuKTogVXBkYXRlIGZvciBuZXcKCWNncmFwaF9maW5hbGl6ZV9mdW5jdGlvbiBhcmd1bWVudC4KCjIwMDMtMDktMTAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBkZWNsMi5jIChjeHhfY2FsbGdyYXBoX2FuYWx5emVfZXhwcik6IE1hcmsgYXJndW1lbnQgdW51c2VkLgoKMjAwMy0wOS0xMCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogZGVjbDIuYyAodmFyX2ZpbmFsaXplZF9wKTogTmV3LgoJKG1heWJlX2VtaXRfdnRhYmxlcywgd3JpdGVfb3V0X3ZhcnMsIGZpbmlzaF9maWxlKTogVXNlIGl0LgoKMjAwMy0wOS0xMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGRlY2wyLmMgKGN4eF9jYWxsZ3JhcGhfYW5hbHl6ZV9leHByKTogTmV3LCBmcm9tIGNvcnBzZSBvZgoJbWFya19tZW1iZXJfcG9pbnRlcnMuCgkobG93ZXJfZnVuY3Rpb24pOiBSZW1vdmUuCgkqIGNwLXRyZWUuaDogVXBkYXRlIHRvIG1hdGNoLgoJKiBjcC1sYW5nLmMgKExBTkdfSE9PS1NfQ0FMTEdSQVBIX0FOQUxZWkVfRVhQUik6IE5ldy4KCShMQU5HX0hPT0tTX0NBTExHUkFQSF9MT1dFUl9GVU5DVElPTik6IFJlbW92ZS4KCjIwMDMtMDktMDkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBzZW1hbnRpY3MuYyAoZXhwYW5kX29yX2RlZmVyX2ZuKTogVXBkYXRlIGNhbGwgdG8gCgljZ3JhcGhfZmluYWxpemVfZnVuY3Rpb24uCgoJKiBzZW1hbnRpY3MuYyAoZXhwYW5kX29yX2RlZmVyX2ZuKTogVXNlIGNncmFwaF9maW5hbGl6ZV9mdW5jdGlvbgoJYWx3YXlzLgoKCSogZGVjbDIuYyAoZmluaXNoX2ZpbGUpOiBBdm9pZCBvdXQtb2YtYm91bmRzIGFycmF5IHJlZmVyZW5jZQoJZHVyaW5nIG1lbW1vdmUuCgoyMDAzLTA5LTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZGVjbDIuYyAobWFya19tZW1iZXJfcG9pbnRlcnMpOiBSZW5hbWUgZnJvbQoJbWFya19tZW1iZXJfcG9pbnRlcnNfYW5kX2VoX2hhbmRsZXJzIGFuZCBkb24ndCBjaGVjayBlaCBoYW5kbGVycy4KCjIwMDMtMDktMDkgIENocmlzdGlhbiBFaHJoYXJkdCAgPGVocmhhcmR0QG1hdGhlbWF0aWsudW5pLXVsbS5kZT4KCglQUiBib290c3RyYXAvMTIxNjgKCSogbWV0aG9kLmMgKHVzZV90aHVuayk6IENsZWFyIERFQ0xfUlRMIG9mIGNvcGllZCBub2Rlcy4KCjIwMDMtMDktMDggIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC1sYW5nLmMgKExBTkdfSE9PS1NfUkVHSVNURVJfQlVJTFRJTl9UWVBFKTogRGVmaW5lIHRvCgljX3JlZ2lzdGVyX2J1aWx0aW5fdHlwZS4KCglQUiBjKysvMTE3ODYKCSogZGVjbDIuYyAoYWRkX2Z1bmN0aW9uKTogRG8gbm90IGNvbXBsYWluIGFib3V0IHNlZWluZyB0aGUgc2FtZQoJbm9uLWZ1bmN0aW9uIHR3aWNlLgoJKiBzZW1hbnRpY3MuYyAocGVyZm9ybV9rb2VuaWdfbG9va3VwKTogSW1wcm92ZSBkb2N1bWVudGF0aW9uLgoKCVBSIGMrKy81Mjk2CgkqIHB0LmMgKHRyeV9vbmVfb3ZlcmxvYWQpOiBBZGQgYWRkcl9wIHBhcmFtZXRlci4KCShyZXNvbHZlX292ZXJsb2FkZWRfdW5pZmljYXRpb24pOiBQYXNzIGl0LgoKMjAwMy0wOS0wOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIG9wdGltaXplLmMgKG1heWJlX2Nsb25lX2JvZHkpOiBJbmMvZGVjIGZ1bmN0aW9uX2RlcHRoLgoKMjAwMy0wOS0wOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAoZmluaXNoX2Z1bmN0aW9uKTogQ2xlYXIgY3VycmVudF9mdW5jdGlvbl9kZWNsLgoJKiBkZWNsMi5jIChtYXJrX3VzZWQpOiBEb24ndCBwdXNoL3BvcCBnYyBjb250ZXh0LgoJKiBvcHRpbWl6ZS5jIChvcHRpbWl6ZV9mdW5jdGlvbik6IExpa2V3aXNlLgoJKiB0cmVlLmMgKGNwX2Nhbm5vdF9pbmxpbmVfdHJlZV9mbik6IExpa2V3aXNlLgoJKiBwdC5jIChpbnN0YW50aWF0ZV9kZWNsKTogSW5jL2RlYyBmdW5jdGlvbl9kZXB0aCBpbnN0ZWFkLgoJKiBzZW1hbnRpY3MuYyAoZXhwYW5kX2JvZHkpOiBVcGRhdGUgZm9yIHRyZWVfcmVzdF9vZl9jb21waWxhdGlvbgoJbmVzdGVkIGFyZ3VtZW50LgoKMjAwMy0wOS0wNyAgR2FicmllbCBEb3MgUmVpcyAgPGdjY0BpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJUFIgYysrLzExNzYyCgkqIGVycm9yLmMgKGR1bXBfZGVjbCk6IEhhbmRsZSBuYW1lc3BhY2UtYWxpYXMtZGVmaW5pdGlvbi4KCSogZGVjbC5jICh3YXJuX2V4dGVybl9yZWRlY2xhcmVkX3N0YXRpYyk6IFRoZXJlIGlzIG5vIHBvaW50IGluCgljaGVja2luZyBjaGFuZ2VzIGluIHN0b3JhZ2UgY2xhc3Mgc3BlY2lmaWVyIGZvciBhIG5hbWVzcGFjZQoJZGVjbGFyYXRpb24uIAoJKGR1cGxpY2F0ZV9kZWNscyk6IFRpZHkgZGlhZ25vc3RpYyBtZXNzYWdlLgoJKiBjeHgtcHJldHR5LXByaW50LmMgKHBwX2N4eF9sZWZ0X2JyYWNlKTogTmV3IG1hY3JvLgoJKHBwX2N4eF9yaWdodF9icmFjZSk6IExpa2V3aXNlLgoJKHBwX2N4eF9vcmlnaW5hbF9uYW1lc3BhY2VfZGVmaW5pdGlvbik6IE5ldyBmdW5jdGlvbi4KCShwcF9jeHhfbmFtZXNwYWNlX2FsaWFzX2RlZmluaXRpb24pOiBMaWtld2lzZS4KCShwcF9jeHhfZGVjbGFyYXRpb24pOiBVc2UgdGhlbS4gIEhhbmRsZSBOQU1FU1BBQ0VfREVDTHMuCgoyMDAzLTA5LTA3ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBkZWNsMi5jIChtYXliZV9lbWl0X3Z0YWJsZXMsIHdyaXRlX291dF92YXJzLCBmaW5pc2hfZmlsZSk6CglBdm9pZCByZS1lbWl0dGluZyB2YXJpYWJsZXMgaW4gdW5pdC1hdC1hLXRpbWUgbW9kZS4KCjIwMDMtMDktMDYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzExODY3CgkqIGNhbGwuYyAoc3RhbmRhcmRfY29udmVyc2lvbik6IEltcHJvdmUgY29tbWVudHMuCgkocGVyZm9ybV9kaXJlY3RfaW5pdGlhbGl6YXRpb24pOiBNYWtlIHN1cmUgd2UgcmV0dXJuIGFuIGV4cHJlc3Npb24KCW9mIHRoZSBjb3JyZWN0IHR5cGUuCgkqIHR5cGVjay5jIChidWlsZF9zdGF0aWNfY2FzdCk6IENoZWNrIGZvciBhbWJpZ3VpdHkgYW5kCglhY2Nlc3NpYmlsaXR5IHdoZW4gcGVyZm9ybWluZyBjb252ZXJzaW9ucy4KCjIwMDMtMDktMDYgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogY3AtdHJlZS5oIChhZGRfYmluZGluZyk6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCSogbmFtZS1sb29rdXAuaCAoc3VwcGxlbWVudF9iaW5kaW5nKTogRGVjbGFyZS4KCSogZGVjbC5jIChhZGRfYmluZGluZyk6IE1vdmUgdG8gbmFtZS1sb29rdXAuYy4KCShwdXNoX2xvY2FsX2JpbmRpbmcpOiBBZGp1c3QuCgkocHVzaF9jbGFzc19iaW5kaW5nKTogTGlrZXdpc2UuCgkoc2V0X2lkZW50aWZpZXJfdHlwZV92YWx1ZV93aXRoX3Njb3BlKTogTGlrZXdpc2UuCgkqIG5hbWUtbG9va3VwLmMgKHN1cHBsZW1lbnRfYmluZGluZyk6IFJlbmFtZSBmcm9tIGFkZF9iaW5kaW5nLgoJUmV0dXJuIGEgYm9vbC4gIEltcHJvdmUgZG9jdW1lbnRhdGlvbi4gCgkoc2V0X25hbWVzcGFjZV9iaW5kaW5nKTogQWRqdXN0LgoJKiBNYWtlLWxhbmcuaW4gKGNwL25hbWUtbG9va3VwLm8pOiBEZXBlbmQgb24gdG9wbGV2LmgKCjIwMDMtMDktMDYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzExNzk0CgkqIGNsYXNzLmMgKHB1c2hjbGFzcyk6IFB1c2ggZGVwZW5kZW50IHVzaW5nIGRlY2xzIGZvciBuZXN0ZWQKCWNsYXNzZXMgb2YgdGVtcGxhdGVzIHRvby4KCjIwMDMtMDktMDYgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCVBSIGMrKy8xMTQwOQoJKiBjbGFzcy5jIChyZXNvbHZlX2FkZHJlc3Nfb2Zfb3ZlcmxvYWRlZF9mdW5jdGlvbik6IFdoZW4gYnVpbGRpbmcKCWxpc3Qgb2YgbWF0Y2hpbmcgbm9uLXRlbXBsYXRlIGZ1bmN0aW9uIGRlY2xzLCBpZ25vcmUgYW50aWNpcGF0ZWQKCWRlY2xhcmF0aW9ucyBvZiB1bmRlY2xhcmVkIG9yIHNoYWRvd2VkIEdDQyBidWlsdGlucy4KCjIwMDMtMDktMDYgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbkBnY2MuZ251Lm9yZz4KCglQUiBjKysvMTE1OTUKCSogZGVjbC5jIChkZWZpbmVfbGFiZWwpOiBSZW1vdmUgdW5yZWFjaGFibGUgdGltZXZhciBwb3AuCglBbHdheXMgcmV0dXJuIHRoZSBkZWNsLCBldmVuIGlmIHRoZSBkZWZpbml0aW9uIGlzIGludmFsaWQuCgoyMDAzLTA5LTA2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMjE2NwoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2xhdGVfcGFyc2luZ19kZWZhdWx0X2FyZ3MpOiBQdXNoICYgcG9wIHRoZQoJdW5wYXJzZWQgZnVuY3Rpb25zIHF1ZXVlLgoKMjAwMy0wOS0wNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTIxNjMKCSogY2FsbC5jIChwZXJmb3JtX2RpcmVjdF9pbml0aWFsaXphdGlvbik6IENvcnJlY3QgbG9naWMgZm9yCglkaXJlY3QtaW5pdGlhbGl6YXRpb24gb2YgYSBjbGFzcyB0eXBlLgoKCVBSIGMrKy8xMjE0NgoJKiBwdC5jIChsb29rdXBfdGVtcGxhdGVfZnVuY3Rpb24pOiBSb2J1c3RpZnkuCgoyMDAzLTA5LTA1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTkyMgoJKiBwdC5jICh0c3Vic3RfcXVhbGlmaWVkX2lkKTogTWFrZSBzdXJlIHdlIGdldCBhIG5vbi10eXBlLgoJKHRzdWJzdF9leHByLCB0c3Vic3RfY29weV9hbmRfYnVpbGQpOiBQYXNzIGZhbHNlLCBub3QgemVybywgYXMKCWlzX3R5cGVfcCB0byBsb29rdXBfcXVhbGlmaWVkX25hbWUuCgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2NhbGxfZXhwcik6IFJlZmFjdG9yIHNvbWUgY29kZS4KCglQUiBjKysvMTIwMzcKCSogY3AtdHJlZS5oIChDT01QT1VORF9FWFBSX09WRVJMT0FERUQpOiBOZXcuCgkoYnVpbGRfbWluX25vbl9kZXApOiBEZWNsYXJlLgoJKiB0cmVlLmMgKGJ1aWxkX21pbik6IFByb3BhZ2F0ZSBUUkVFX1NJREVfRUZGRUNUUy4KCShidWlsZF9taW5fbm9uX2RlcCk6IE5ldy4KCSogY3Z0LmMgKGNvbnZlcnRfdG9fdm9pZCk6IERvbid0IGV4cGxpY2l0bHkgY29weQoJVFJFRV9TSURFX0VGRkVDVFMsIFRSRUVfTk9fVU5VU0VEX1dBUk5JTkcuCgkqIGNhbGwuYyAoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogVXNlIGJ1aWxkX21pbl9ub25fZGVwLgoJKiBkZWNsMi5jIChncm9rX2FycmF5X2RlY2wpOiBMaWtld2lzZS4KCShidWlsZF9vZmZzZXRfcmVmX2NhbGxfZnJvbV90cmVlKTogTGlrZXdpc2UuCgkqIHR5cGVjay5jIChmaW5pc2hfY2xhc3NfbWVtYmVyX2FjY2Vzc19leHByLAoJYnVpbGRfeF9pbmRpcmVjdF9yZWYsIGJ1aWxkX3hfYmluYXJ5X29wLCBidWlsZF94X3VuYXJ5X29wLAoJYnVpbGRfeF9jb25kaXRpb25hbF9leHByLCBidWlsZF94X2NvbXBvdW5kX2V4cHIpOiBMaWtld2lzZS4KCShidWlsZF9zdGF0aWNfY2FzdCwgYnVpbGRfcmVpbnRlcnByZXRfY2FzdCwKCWJ1aWxkX2NvbnN0X2Nhc3QpOiBQcm9wYWdhdGUgVFJFRV9TSURFX0VGRkVDVFMgaW5zaWRlIGEgdGVtcGxhdGUuCgkqIHR5cGVjazIuYyAoYnVpbGRfeF9hcnJvdyk6IFVzZSBidWlsZF9taW5fbm9uX2RlcC4KCShidWlsZF9mdW5jdGlvbmFsX2Nhc3QpOiBQcm9wYWdhdGUgVFJFRV9TSURFX0VGRkVDVFMgaW5zaWRlIGEKCXRlbXBsYXRlLgoJKiBydHRpLmMgKGJ1aWxkX2R5bmFtaWNfY2FzdF8xKTogU2V0IERFQ0xfSVNfUFVSRS4KCShidWlsZF9keW5hbWljX2Nhc3QpOiBTZXQgVFJFRV9TSURFX0VGRkVDVFMuCgkqIHB0LmMgKGJ1aWxkX25vbl9kZXBlbmRlbnRfZXhwcik6IENoZWNrIENPTVBPVU5EX0VYUFJfT1ZFUkxPQURFRC4KCjIwMDMtMDktMDQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBkZWNsMi5jIChtYXJrX21lbWJlcl9wb2ludGVyc19hbmRfZWhfaGFuZGxlcnMpOiBVcGRhdGUgZm9yCgljaGFuZ2UgaW4gY2dyYXBoX21hcmtfbmVlZGVkX25vZGUgYXJndW1lbnRzLgoKMjAwMy0wOS0wMiAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJUFIgMTIxNjEKCSogZGVjbDIuYyAobWFya191c2VkKTogVXNlIGdnY19wdXNoX2NvbnRleHQvZ2djX3BvcF9jb250ZXh0LgoJKiB0cmVlLmMgKGNwX2Nhbm5vdF9pbmxpbmVfdHJlZV9mbik6IExpa2V3aXNlLgoKMjAwMy0wOS0wNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZmluaXNoX3NpemVvZiwgZmluaXNoX2FsaWdub2YpOiBSZW1vdmUuCgkoZXhwcl9zaXplb2YpOiBSZXBsYWNlIHdpdGggLi4uCgkoY3h4X3NpemVvZl9vcl9hbGlnbm9mX2V4cHIpOiAuLi4gaGVyZS4KCShjeHhfc2l6ZW9mX29yX2FsaWdub2ZfdHlwZSk6IE1ha2UgY29tcGxhaW4gcGFyYW1ldGVyIGEgYm9vbC4KCSogcGFyc2VyLmMgKGNwX3BhcnNlcl91bmFyeV9leHByZXNzaW9uKTogQ29tbW9uaXplIGFsaWdub2YgYW5kCglzaXplb2YgaGFuZGxpbmcuCgkqIHB0LmMgKHRzdWJzdF9jb3B5X2FuZF9idWlsZCk6IEFkanVzdCBhbGlnbm9mIGFuZCBzaXplb2YKCXN1YnN0aXR1dGlvbi4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9zaXplb2YsIGZpbmlzaF9hbGlnbm9mKTogUmVtb3ZlLgoJKiB0eXBlY2suYyAoY3h4X3NpemVvZl9vcl9hbGlnbm9mX3R5cGUpOiBDb21wbGFpbiBwYXJhbWV0ZXIKCWJlY29tZXMgYm9vbC4gU2V0IFRSRUVfUkVBRE9OTFkuCgkoZXhwcl9zaXplb2YpOiBSZXBsYWNlIHdpdGggLi4uCgkoY3h4X3NpemVvZl9vcl9hbGlnbm9mX2V4cHIpOiAuLi4gaGVyZS4gQ2xlYXIgVFJFRV9TSURFX0VGRkVDVFMuCgoyMDAzLTA5LTA0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVJlbW92ZSBjYXN0LWFzLWx2YWx1ZSBleHRlbnNpb24uCgkqIGNhbGwuYyAoYnVpbGRfY29uZGl0aW9uYWxfZXhwcik6IENvcnJlY3QgZm9ybWF0dGluZy4KCShjb252ZXJ0X2xpa2VfcmVhbCk6IFVzZSBsdmFsdWVfcCwgbm90IG5vbl9jYXN0X2x2YWx1ZV9wLgoJKGluaXRpYWxpemVfcmVhbCk6IFVzZSByZWFsX2x2YWx1ZV9wLCBub3QgcmVhbF9ub25fY2FzdF9sdmFsdWVfcC4KCSogY3AtdHJlZS5oIChub25fY2FzdF9sdmFsdWVfcCk6IFJlbW92ZS4KCShyZWFsX25vbl9jYXN0X2x2YWx1ZV9wKTogUmVtb3ZlLgoJKG5vbl9jYXN0X2x2YWx1ZV9vcl9lbHNlKTogUmVtb3ZlLgoJKiB0cmVlLmMgKGx2YWx1ZV9wXzEpOiBSZW1vdmUgYWxsb3dfY2FzdF9hc19sdmFsdWUgcGFyYW1ldGVyLgoJKHJlYWxfbHZhbHVlX3ApOiBBZGp1c3QgY2FsbCB0byBsdmFsdWVfcF8xLgoJKG5vbl9jYXN0X2x2YWx1ZV9wKTogUmVtb3ZlLgoJKG5vbl9jYXN0X2x2YWx1ZV9vcl9lbHNlKTogUmVtb3ZlLgoJKGx2YWx1ZV9wKTogQWRqdXN0IGNhbGwgdG8gbHZhbHVlX3BfMS4KCShsdmFsdWVfb3JfZWxzZSk6IFNpbXBsaWZ5LgoJKiB0eXBlY2suYyAoYnVpbGRfdW5hcnlfb3ApOiBVc2UgbHZhbHVlX29yX2Vsc2UsIG5vdAoJbm9uX2Nhc3RfbHZhbHVlX29yX2Vsc2UuCgkoYnVpbGRfc3RhdGljX2Nhc3QpOiBVc2UgcmVhbF9sdmFsdWVfcCwgbm90IHJlYWxfbm9uX2Nhc3RfbHZhbHVlX3AuCgoyMDAzLTA5LTAzICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAoZmluaXNoX2Z1bmN0aW9uKTogUGFzcyBmbmRlY2wgdG8gYWdncmVnYXRlX3ZhbHVlX3AuCgoyMDAzLTA5LTAzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMjA1MwoJKiBjbGFzcy5jIChpbmNsdWRlX2VtcHR5X2NsYXNzZXMpOiBDb3JyZWN0IGxvZ2ljIGZvciBBQkkgdmVyc2lvbiAxLgoKMjAwMy0wOS0wMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIG9wdGltaXplLmMgKG9wdGltaXplX2Z1bmN0aW9uKTogUHVzaC9wb3AgZ2djIGNvbnRleHQgYXJvdW5kCgl0aGUgY2FsbCB0byBvcHRpbWl6ZV9pbmxpbmVfY2FsbHMuCgoyMDAzLTA5LTAyICBTY290dCBCcnVtYmF1Z2ggIDxzY290dGIubGlzdHNAdmVyaXpvbi5uZXQ+CgoJUFIgYysrLzExNTUzCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfZGVjbF9zcGVjaWZpZXJfc2VxKTogQWRkIGNoZWNrIGZvciBhCglkdXBsaWNhdGUgZnJpZW5kIGRlY2wtc3BlY2lmaWVyLgoKMjAwMy0wOS0wMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTE4NDcKCSogcHQuYyAoY29udmVydF9ub250eXBlX2FyZ3VtZW50KTogQ29ycmVjdCByZXByZXNlbnRhdGlvbiBvZgoJUkVGRVJFTkNFX1RZUEUgZXhwcmVzc2lvbnMuCgoJUFIgYysrLzExODA4CgkqIGNwLXRyZWUuaCAoS09FTklHX0xPT0tVUF9QKTogTmV3IG1hY3JvLgoJKGZpbmlzaF9jYWxsX2V4cHIpOiBDaGFuZ2UgcHJvdG90eXBlLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3Bvc3RmaXhfZXhwcmVzc2lvbik6IEFkanVzdCBjYWxsIHRvCglmaW5pc2hfY2FsbF9leHByLgoJKiBwdC5jICh0c3Vic3RfY29weV9hbmRfYnVpbGQpOiBVc2UgS09FTklHX0xPT0tVUF9QLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2NhbGxfZXhwcik6IEFkZCBrb2VuaWdfcCBwYXJhbWV0ZXIuCgoyMDAzLTA5LTAxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMjExNAoJKiBjcC10cmVlLmggKGluaXRpYWxpemVfcmVmZXJlbmNlKTogQ2hhbmdlIHByb3RvdHlwZS4KCSogY2FsbC5jIChpbml0aWFsaXplX3JlZmVyZW5jZSk6IEFkZCBjbGVhbnVwIHBhcmFtZXRlci4KCSogZGVjbC5jIChncm9rX3JlZmVyZW5jZV9pbml0KTogTGlrZXdpc2UuCgkoY2hlY2tfaW5pdGlhbGl6ZXIpOiBMaWtld2lzZS4KCShjcF9maW5pc2hfZGVjbCk6IEluc2VydCBhIENMRUFOVVBfU1RNVCBpZiBuZWNlc3NhcnkuCgkoZHVwbGljYXRlX2RlY2xzKTogV2hlbiByZXBsYWNpbmcgYW4gYW50aWNpcGF0ZWQgYnVpbHRpbiwgZG8gbm90Cglob25vciBUUkVFX05PVEhST1cuCgkqIHR5cGVjay5jIChjb252ZXJ0X2Zvcl9pbml0aWFsaXphdGlvbik6IENvcnJlY3QgY2FsbCB0bwoJaW5pdGlhbGl6ZV9yZWZlcmVuY2UuCgoJUFIgYysrLzExOTcyCgkqIHB0LmMgKGRlcGVuZGVudF90eXBlX3Bfcik6IFBhc3Mgb25seSB0aGUgaW5uZXJtb3N0IHRlbXBsYXRlCglhcmd1bWVudHMgdG8gYW55X2RlcGVuZGVudF90ZW1wbGF0ZV9hcmd1bWVudHNfcC4KCjIwMDMtMDktMDEgIEpvc2VmIFpsb21layAgPHpsb21la2pAc3VzZS5jej4KCgkqIGVycm9yLmMgKGR1bXBfZXhwcik6IEtpbGwgQklUX0FORFRDX0VYUFIuCgkqIGxleC5jIChpbml0X29wZXJhdG9ycyk6IEtpbGwgQklUX0FORFRDX0VYUFIuCgkqIHB0LmMgKHRzdWJzdF9jb3B5KTogS2lsbCBCSVRfQU5EVENfRVhQUi4KCSogdHlwZWNrLmMgKGJ1aWxkX2JpbmFyeV9vcCk6IEtpbGwgQklUX0FORFRDX0VYUFIuCgkodHN1YnN0X2NvcHlfYW5kX2J1aWxkKTogS2lsbCBCSVRfQU5EVENfRVhQUi4KCjIwMDMtMDgtMjkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEyMDkzCgkqIHB0LmMgKGJ1aWxkX25vbl9kZXBlbmRlbnRfZXhwcik6IERvIG5vdCBidWlsZCBhCglOT05fREVQRU5ERU5UX0VYUFIgZm9yIGEgU1RSSU5HX0NTVC4KCglQUiBjKysvMTE5MjgKCSogc2VhcmNoLmMgKGFkZF9jb252ZXJzaW9ucyk6IEF2b2lkIGFkZGluZyB0d28gY29udmVyc2lvbgoJb3BlcmF0b3JzIGZvciB0aGUgc2FtZSB0eXBlLgoKMjAwMy0wOC0yOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNjE5NgoJKiBwdC5jICh0c3Vic3RfY29weV9hbmRfYnVpbGQpOiBDb3JyZWN0IGhhbmRsaW5nIG9mCglhZGRyZXNzLW9mLWxhYmVsIGV4dGVuc2lvbi4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9nb3RvX3N0bXQpOiBUaGUgYWRkcmVzcyBvZiBhIGxhYmVsIG11c3QgZ28KCXRocm91Z2ggdGhlIGx2YWx1ZS10by1ydmFsdWUgY29udmVyc2lvbi4KCjIwMDMtMDgtMjkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgkgICAgSmFzb24gTWVycmlsbCA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19SVExfRVhQQU5EX1NUQVJUKTogTmV3LgoJKExBTkdfSE9PS1NfUlRMX0VYUEFORF9TVE1UKTogTmV3LgoJKiBjcC10cmVlLmggKGN4eF9leHBhbmRfZnVuY3Rpb25fc3RhcnQpOiBEZWNsYXJlLgoJKiBkZWNsLmMgKHN0YXJ0X2Z1bmN0aW9uKTogVXNlIGFsbG9jYXRlX3N0cnVjdF9mdW5jdGlvbi4KCU1vdmUgc3RtdHNfYXJlX2Z1bGxfZXhwcnNfcCBhc3NlcnRpb24gZnJvbSBleHBhbmRfYm9keS4KCURvIG5vdCBmcmVlX2FmdGVyX3BhcnNpbmcgb3IgZnJlZV9hZnRlcl9jb21waWxhdGlvbi4KCShjeHhfcHVzaF9mdW5jdGlvbl9jb250ZXh0KTogTW92ZSBjb2RlIHRvIHNldCBzdHJ1Y3QgZnVuY3Rpb24KCWRhdGEgZnJvbSBnZW5ydGxfc3RhcnRfZnVuY3Rpb24uCgkqIG9wdGltaXplLmMgKG9wdGltaXplX2Z1bmN0aW9uKTogRG9uJ3QgaW5jL2RlYyBmdW5jdGlvbl9kZXB0aC4KCSogc2VtYW50aWNzLmMgKGV4cGFuZF9ib2R5KTogVXNlIHRyZWVfcmVzdF9vZl9jb21waWxhdGlvbi4KCShjeHhfZXhwYW5kX2Z1bmN0aW9uX3N0YXJ0KTogUmVuYW1lIGZyb20gZ2VucnRsX3N0YXJ0X2Z1bmN0aW9uLAoJb21pdCBiaXRzIGRvbmUgYnkgdHJlZV9yZXN0X29mX2NvbXBpbGF0aW9uLgoJKGdlbnJ0bF9maW5pc2hfZnVuY3Rpb24pOiBSZW1vdmUuCgkoY2xlYXJfZGVjbF9ydGwpOiBNb3ZlIHRvIC4uL3RyZWUtb3B0aW1pemUuYy4KCjIwMDMtMDgtMjkgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCVBSIGMrKy8xMTgxMQoJKiBjeHgtcHJldHR5LXByaW50LmMgKHBwX2N4eF9jYW5vbmljYWxfdGVtcGxhdGVfcGFyYW1ldGVyKTogTmV3CglmdW5jdGlvbi4gCgkqIGN4eC1wcmV0dHktcHJpbnQuaDogRGVjbGFyZS4KCSogZXJyb3IuYyAoZHVtcF90ZW1wbGF0ZV9wYXJhbWV0ZXIpOiBVc2UgaXQuCgkoZHVtcF90eXBlKTogTGlrZXdpc2UuCgoyMDAzLTA4LTI4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogaW5pdC5jIChkZWNsX2NvbnN0YW50X3ZhbHVlKTogRGVhbCB3aXRoIENPTkRfRVhQUiBzcGVjaWFsbHkuCgkqIGNhbGwuYyAoYnVpbGRfY29uZGl0aW9uYWxfZXhwcik6IFJldmVydCBwcmV2aW91cyBwYXRjaC4KCglQUiBvcHRpbWl6YXRpb24vNTA3OQoJKiBjYWxsLmMgKGJ1aWxkX2NvbmRpdGlvbmFsX2V4cHIpOiBVc2UgZGVjbF9jb25zdGFudF92YWx1ZSB0bwoJc2ltcGxpZnkgdGhlIGFyZ3VtZW50cy4KCjIwMDMtMDgtMjYgIERhbiBOaWNvbGFlc2N1ICA8ZGFubkBpY3MudWNpLmVkdT4KCgkqIHBhcnNlci5jIChzdHJ1Y3QgY3BfdG9rZW4pOiBVc2UgZW51bSBiaXRmaWVsZHMuCgkoQ1BfVE9LRU5fQkxPQ0tfTlVNX1RPS0VOUyk6IE1ha2Ugc3VyZSBjcF90b2tlbl9ibG9jayBmaXRzIGluIGEKCTUxMkIgYWxsb2NhdGlvbiB1bml0LgoJKGNwX3BhcnNlcl90b2tlbl90cmVlX21hcF9ub2RlKTogVXNlIGVudW0gYml0ZmllbGRzLgoKMjAwMy0wOC0yNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTE4NzEKCSogZGVjbC5jIChwdXNoX2NsYXNzX2xldmVsX2JpbmRpbmcpOiBDb3JyZWN0IG9sZF9kZWNsIHZhbHVlIGZyb20KCW15IDIwMDMtMDctMjkgcmVvcmdhbml6YXRpb24uCgoJKiBjYWxsLmMgKGJ1aWxkX2NhbGwpOiBEb24ndCBzZXQgVFJFRV9TSURFX0VGRkVDVFMgaGVyZS4KCShidWlsZF9uZXdfbWV0aG9kX2NhbGwpOiBBZGQgZ290byBmaW5pc2guCgkqIHNlbWFudGljcy5jIChzaW1wbGlmeV9hZ2dyX2luaXRfZXhwcnNfcik6IERvbid0IHNldAoJVFJFRV9TSURFX0VGRkVDVFMgb24gYSBjYWxsLgoKMjAwMy0wOC0yNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGN4eC1wcmV0dHktcHJpbnQuYyAocHBfY3h4X2NsYXNzX25hbWUpOiBSZW1vdmUgdW51c2VkIGZ1bmN0aW9uLgoKMjAwMy0wOC0yNSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBjeHgtcHJldHR5LXByaW50LmggKHBwX2N4eF9mbGFnX2RlZmF1bHRfYXJndW1lbnQpOiBOZXcgZmxhZy4KCShjeHhfcHJldHR5X3ByaW50ZXIpOiBBZGp1c3QgYmFzZSB0eXBlLgoJKHBwX2N4eF9mdW5jdGlvbl9zcGVjaWZpZXIpOiBEZWNsYXJlLgoJKiBjeHgtcHJldHR5LXByaW50LmMgKHBwX2N4eF93aGl0ZXNwYWNlKTogTmV3IG1hY3JvLgoJKHBwX2N4eF9sZWZ0X3BhcmVuKTogTGlrZXdpc2UuCgkocHBfY3h4X3JpZ2h0X3BhcmVuKTogTGlrZXdpc2UuCgkocHBfY3h4X2RvdCk6IExpa2V3aXNlLgoJKHBwX2N4eF9hcnJvdyk6IExpa2V3aXNlLgoJKHBwX2N4eF9zZW1pY29sb24pOiBMaWtld2lzZS4KCShwcF9jeHhfaWRlbnRpZmllcik6IExpa2V3aXNlLgoJKHBwX2N4eF9jdl9xdWFsaWZpZXJfc2VxKTogTGlrZXdpc2UuCgkocHBfY3h4X3N0b3JhZ2VfY2xhc3Nfc3BlY2lmaWVyKTogTGlrZXdpc2UuCgkocHBfY3h4X2V4cHJlc3Npb25fbGlzdCk6IExpa2V3aXNlLgoJKHBwX2N4eF9zcGFjZV9mb3JfcG9pbnRlcl9vcGVyYXRvcik6IExpa2V3aXNlLgoJKHBwX2N4eF9pbml0X2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCShwcF9jeHhfY2FsbF9hcmd1bWVudF9saXN0KTogTGlrZXdpc2UuCgkocHBfY3h4X25vbmNvbnNlY3V0aXZlX2NoYXJhY3Rlcik6IFRpZHkuCgkocHBfY3h4X2NvbnZlcnNpb25fZnVuY3Rpb25faWQpOiBOZXcgZnVuY3Rpb24uCgkocHBfY3h4X3RlbXBsYXRlX2lkKTogTGlrZXdpc2UuCgkocHBfY3h4X3RlbXBsYXRlX2tleXdvcmRfaWZfbmVlZGVkKTogTGlrZXdpc2UuCgkocHBfY3h4X25lc3RlZF9uYW1lX3NwZWNpZmllcik6IExpa2V3aXNlLgoJKHBwX2N4eF91bnF1YWxpZmllZF9pZCk6IFRpZHkKCShwcF9jeHhfcXVhbGlmaWVkX2lkKTogSGFuZGxlIG1vcmUgbm9kZXMuCgkocHBfY3h4X3ByaW1hcnlfZXhwcmVzc2lvbik6IFRpZHkuCgkocHBfY3h4X3Bvc3RmaXhfZXhwcmVzc2lvbik6IExpa2V3aXNlLgoJKHBwX2N4eF9uZXdfZXhwcmVzc2lvbik6IFRpZHkuCgkocHBfY3h4X2RlbGV0ZV9leHByZXNzaW9uKTogTGlrZXdpc2UuCgkocHBfY3h4X2Nhc3RfZXhwcmVzc2lvbik6IE5ldyBmdW5jdGlvbi4KCShwcF9jeHhfcG1fZXhwcmVzc2lvbik6IFRpZHkuCgkocHBfY3h4X2NvbmRpdGlvbmFsX2V4cHJlc3Npb24pOiBMaWtld2lzZS4KCShwcF9jeHhfYXNzaWdubWVudF9vcGVyYXRvcik6IE5ldyBmdW5jdGlvbi4KCShwcF9jeHhfYXNzaWdubWVudF9leHByZXNzaW9uKTogVGlkeS4KCShwcF9jeHhfZXhwcmVzc2lvbik6IE5ldyBmdW5jdGlvbi4KCShwcF9jeHhfZnVuY3Rpb25fc3BlY2lmaWVyKTogTGlrZXdpc2UuCgkocHBfY3h4X2RlY2xfc3BlY2lmaWVyX3NlcSk6IExpa2V3aXNlLgoJKHBwX2N4eF9zaW1wbGVfdHlwZV9zcGVjaWZpZXIpOiBUaWR5LgoJKHBwX2N4eF90eXBlX3NwZWNpZmllcl9zZXEpOiBMaWtld2lzZS4KCShwcF9jeHhfcHRyX29wZXJhdG9yKTogTmV3IGZ1bmN0aW9uLgoJKHBwX2N4eF9pbXBsaWNpdF9wYXJhbWV0ZXJfdHlwZSk6IExpa2V3aXNlLgoJKHBwX2N4eF9wYXJhbWV0ZXJfZGVjbGFyYXRpb24pOiBUaWR5LgoJKHBwX2N4eF9wYXJhbWV0ZXJfZGVjbGFyYXRpb25fY2xhdXNlKTogTmV3IGZ1bmN0aW9uLgoJKHBwX2N4eF9leGNlcHRpb25fc3BlY2lmaWNhdGlvbik6IExpa2V3aXNlLgoJKHBwX2N4eF9kaXJlY3RfZGVjbGFyYXRvcik6IFRpZHkuCgkocHBfY3h4X2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCShwcF9jeHhfY3Rvcl9pbml0aWFsaXplcik6IE5ldyBmdW5jdGlvbi4KCShwcF9jeHhfZnVuY3Rpb25fZGVmaW5pdGlvbik6IExpa2V3aXNlLgoJKHBwX2N4eF9hYnN0cmFjdF9kZWNsYXJhdG9yKTogVGlkeS4KCShwcF9jeHhfZGlyZWN0X2Fic3RyYWN0X2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCShwcF9jeHhfdHlwZV9pZCk6IExpa2V3aXNlLgoJKHBwX2N4eF9leGNlcHRpb25fZGVjbGFyYXRpb24pOiBOZXcgZnVuY3Rpb24uCgkocHBfY3h4X3N0YXRlbWVudCk6IExpa2V3aXNlLgoJKHBwX2N4eF9zaW1wbGVfZGVjbGFyYXRpb24pOiBMaWtld2lzZS4KCShwcF9jeHhfdGVtcGxhdGVfcGFyYW1ldGVyX2xpc3QpOiBMaWtld2lzZS4KCShwcF9jeHhfdGVtcGxhdGVfcGFyYW1ldGVyKTogTGlrZXdpc2UuCgkocHBfY3h4X3RlbXBsYXRlX2RlY2xhcmF0aW9uKTogTGlrZXdpc2UuCgkocHBfY3h4X2V4cGxpY2l0X3NwZWNpYWxpemF0aW9uKTogTGlrZXdpc2UuCgkocHBfY3h4X2V4cGxpY2l0X2luc3RhbnRpYXRpb24pOiBMaWtld2lzZS4KCShwcF9jeHhfZGVjbGFyYXRpb24pOiBUaWR5LgoJKHBwX2N4eF9wcmV0dHlfcHJpbnRlcl9pbml0KTogSW5pdGlhbGl6ZSBtb3JlIGZpZWxkcy4KCjIwMDMtMDgtMjUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzg3OTUKCSogY3AtdHJlZS5oIChidWlsZF9jcGx1c19tZXRob2RfdHlwZSk6IFJlbW92ZS4KCSogY2FsbC5jIChzdGFuZGFyZF9jb252ZXJzaW9uKTogVXNlIGJ1aWxkX21ldGhvZF90eXBlX2RpcmVjdGx5CglpbnN0ZWFkIG9mIGJ1aWxkX2NwbHVzX21ldGhvZF90eXBlLgoJKiBjbGFzcy5jIChidWlsZF9jbG9uZSk6IExpa2V3aXNlLgoJKGFkanVzdF9jbG9uZV9hcmdzKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoYnVpbGRfcHRybWVtX3R5cGUpOiBMaWtld2lzZS4KCShncm9rZGVjbGFyYXRvcik6IExpa2V3aXNlLgoJKGNoZWNrX2Z1bmN0aW9uX3R5cGUpOiBMaWtld2lzZS4KCSogZGVjbDIuYyAoZ3Jva19tZXRob2RfcXVhbHMpOiBMaWtld2lzZS4KCShtYXliZV9yZXRyb2ZpdF9pbl9jaHJnKTogTGlrZXdpc2UuCgkqIHB0LmMgKGNvcHlfZGVmYXVsdF9hcmdzX3RvX2V4cGxpY2l0X3NwZWMpOiBMaWtld2lzZS4KCSh0c3Vic3RfZnVuY3Rpb25fdHlwZSk6IExpa2V3aXNlLgoJKHRzdWJzdCk6IExpa2V3aXNlLgoJKiB0cmVlLmMgKGJ1aWxkX2NwbHVzX21ldGhvZF90eXBlKTogUmVtb3ZlLgoJKiB0eXBlY2suYyAobWVyZ2VfdHlwZXMpOiBVc2UgYnVpbGRfbWV0aG9kX3R5cGVfZGlyZWN0bHkuCgoyMDAzLTA4LTIzICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvMzc2NQoJKiBzZWFyY2guYyAoZGZzX2FjY2Vzc19pbl90eXBlKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShkZnNfYWNjZXNzaWJsZV9xdWV1ZV9wKTogTGlrZXdpc2UuCgkoZGZzX2FjY2Vzc2libGVfcCk6IE9ubHkgdGVybWluYXRlIHdoZW4gYSBmcmllbmQgaXMgZm91bmQuCgkoYWNjZXNzaWJsZV9wKTogUmV0dXJuIGltbWVkaWF0ZWx5IGlmIGFjY2Vzc19pbl90eXBlIGFsbG93cwoJYWNjZXNzLgoKMjAwMy0wOC0yMyAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzY0MSwgYysrLzExODc2CgkqIGZyaWVuZC5jIChhZGRfZnJpZW5kKTogQWRkIGNvbXBsYWluIHBhcmFtZXRlci4KCShtYWtlX2ZyaWVuZF9jbGFzcyk6IExpa2V3aXNlLgoJKGRvX2ZyaWVuZCk6IEFkanVzdCBhZGRfZnJpZW5kIGNhbGwuCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBBZGp1c3QgbWFrZV9mcmllbmRfY2xhc3MgY2FsbC4KCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9tZW1iZXJfZGVjbGFyYXRpb24pOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfdGVtcGxhdGVfZGVjbGFyYXRpb25fYWZ0ZXJfZXhwb3J0KTogTGlrZXdpc2UuCgkqIHB0LmMgKGluc3RhbnRpYXRlX2NsYXNzX3RlbXBsYXRlKTogQWRqdXN0IG1ha2VfZnJpZW5kX2NsYXNzCglhbmQgYWRkX2ZyaWVuZCBjYWxsLgoJKiBjcC10cmVlLmggKG1ha2VfZnJpZW5kX2NsYXNzKTogQWRqdXN0IGRlY2xhcmF0aW9uLgoJKGFkZF9mcmllbmQpOiBMaWtld2lzZS4KCjIwMDMtMDgtMjEgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy8xMTI4MwoJKiBjYWxsLmMgKGJ1aWxkX2NvbmRpdGlvbmFsX2V4cHIpOiBJZ25vcmUgY3YtcXVhbCBkaWZmZXJlbmNlcyBmb3IKCW5vbi1jbGFzcyB0eXBlcy4KCjIwMDMtMDgtMjEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzExNTUxCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfaWRfZXhwcmVzc2lvbik6IEFkZCBkZWNsYXJhdG9yX3AgcGFyYW1ldGVyLgoJKGNwX3BhcnNlcl9wcmltYXJ5X2V4cHJlc3Npb24pOiBBZGp1c3QgY2FsbCB0bwoJY3BfcGFyc2VyX2lkX2V4cHJlc3Npb24uCgkoY3BfcGFyc2VyX3VucXVhbGlmaWVkX2lkKTogQ29tcGxhaW4gYWJvdXQgdGhlIHVzZSBvZgoJdHlwZWRlZi1uYW1lcyBpbiBhIGRlc3RydWN0b3IgZGVjbGFyYXRvci4KCShjcF9wYXJzZXJfcG9zdGZpeF9leHByZXNzaW9uKTogQWRqdXN0IGNhbGwgdG8KCWNwX3BhcnNlcl9pZF9leHByZXNzaW9uLgoJKGNwX3BhcnNlcl90eXBlX3BhcmFtZXRlcik6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl90ZW1wbGF0ZV9hcmd1bWVudCk6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9kZWNsYXJhdG9yX2lkKTogTGlrZXdpc2UuCgoJUFIgYysrLzExOTE5CgkqIGNhbGwuYyAoc3RhbmRhcmRfY29udmVyc2lvbik6IFVzZSBzYW1lX3R5cGVfcCwgbm90IHBvaW50ZXIKCWVxdWFsaXR5LCB0byBjb21wYXJlIHR5cGVzLgoKCVBSIGMrKy8xMDc2MgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3VzaW5nX2RlY2xhcmF0aW9uKTogQ2hlY2sgZm9yIGludmFsaWQgdXNlcwoJb2YgdGVtcGxhdGUtaWRzIGhlcmUuLi4KCSogZGVjbDIuYyAoZG9fY2xhc3NfdXNpbmdfZGVjbCk6IC4uLiByYXRoZXIgdGhhbiBoZXJlLgoKMjAwMy0wOC0yMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTE4MzQKCSogcHQuYyAobW9yZV9zcGVjaWFsaXplZCk6IEJ1bXAgcHJvY2Vzc2luZ190ZW1wbGF0ZV9kZWNsLgoKMjAwMy0wOC0yMSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzExNjE0CgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBSZWNvZ25pemUgYSBmbGV4aWJsZSBhcnJheSBiYXNlZCBvbiB0aGUKCXR5cGUsIG5vdCB0aGUgZm9ybSBvZiB0aGUgZGVjbGFyYXRvci4KCjIwMDMtMDgtMjAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogc2VtYW50aWNzLmMgKHNpbXBsaWZ5X2FnZ3JfaW5pdF9leHByKTogU3BsaXQgb3V0IGZyb20KCXNpbXBsaWZ5X2FnZ3JfaW5pdF9leHByc19yLiAgQ29udmVydCBzbG90IGFkZHJlc3MgdG8gbWF0Y2gKCXRoZSByZXR1cm4gdHlwZS4KCSogY3AtdHJlZS5oOiBEZWNsYXJlIGl0LgoJKiB0cmVlLmMgKGNwX2NvcHlfcmVzX2RlY2xfZm9yX2lubGluaW5nKTogRG9uJ3QgY2xvYmJlciB0aGUKCURFQ0xfTkFNRSBvZiBhIHVzZXIgdmFyaWFibGUuCgoyMDAzLTA4LTIwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTk0NQoJKiBwdC5jIChidWlsZF9ub25fZGVwZW5kZW50X2V4cHIpOiBMb29rIGluc2lkZSBDT05EX0VYUFIgYW5kCglDT01QT1VORF9FWFBSLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2V4cHJfc3RtdCk6IEFsd2F5cyBjb252ZXJ0IHRvIHZvaWQuCgkqIHR5cGVjay5jIChidWlsZF94X2NvbXBvdW5kX2V4cCk6IEFsd2F5cyBjb252ZXJ0IHRvIHZvaWQuCgoyMDAzLTA4LTE5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTY4NAoJKiBjcC10cmVlLmggKGdyb2tfb3BfcHJvcGVydGllcyk6IENoYW5nZSBwcm90b3R5cGUuCgkqIGRlY2wuYyAoZ3Jva19vcF9wcm9wZXJ0aWVzKTogQWRkIGNvbXBsYWluIHBhcmFtZXRlci4KCShncm9rZm5kZWNsKTogUGFzcyBpdC4KCSogcHQuYyAodHN1YnN0X2RlY2wpOiBBZGp1c3QgYWNjb3JkaW5nbHkuCgoJUFIgYysrLzEwOTI2CgkqIGRlY2wuYyAoc3RhcnRfbWV0aG9kKTogUmV0dXJuIGltbWVkaWF0ZWx5IGlmIHB1c2hfdGVtcGxhdGVfZGVjbAoJZG9lcyBub3QgbGlrZSB0aGUgZGVjbGFyYXRpb24uCgkqIHB0LmMgKHB1c2hfdGVtcGxhdGVfZGVjbF9yZWFsKTogRGlzYWxsb3cgbWVtYmVyIHRlbXBsYXRlCglkZXN0cnVjdG9ycy4KCglQUiBjKysvMTEwMzYKCSogY3AtdHJlZS5oIChhZGRfYmluZGluZyk6IEFkZCBwcm90b3R5cGUuCgkqIGNsYXNzLmMgKGFkZF9tZXRob2QpOiBTZXQgVFlQRV9IQVNfREVTVFJVQ1RPUiBpZiBhcHByb3ByaWF0ZS4KCShtYXliZV93YXJuX2Fib3V0X292ZXJseV9wcml2YXRlX2NsYXNzKTogVXNlCglDTEFTU1RZUEVfREVTVFJVQ1RPUlMuCgkocHVzaGNsYXNzKTogQWRqdXN0IGNhbGwgdG8gc2V0X2lkZW50aWZpZXJfdHlwZV92YWx1ZS4KCSogZGVjbC5jIChhZGRfYmluZGluZyk6IEdpdmUgaXQgZXh0ZXJuYWwgbGlua2FnZS4KCShwdXNoX2xvY2FsX2JpbmRpbmcpOiBBZGp1c3QgY2FsbCB0byBhZGRfYmluZGluZy4KCShwdXNoX2NsYXNzX2JpbmRpbmcpOiBMaWtld2lzZS4KCShzZXRfaWRlbnRpZmllcl90eXBlX3ZhbHVlX3dpdGhfc2NvcGUpOiBDaGFuZ2UgcHJvdG90eXBlLiAgVXNlCglhZGRfYmluZGluZyBmb3IgZ2xvYmFsIGJpbmRpbmdzLgoJKHNldF9pZGVudGlmaWVyX3R5cGVfdmFsdWUpOiBBZGp1c3QgYWNjb3JkaW5nbHkuCgkocHVzaHRhZyk6IExpa2V3aXNlLgoJKHB1c2hkZWNsKTogVXNlIHNldF9pZGVudGlmaWVyX3R5cGVfdmFsdWUsIG5vdAoJc2V0X2lkZW50aWZpZXJfdHlwZV92YWx1ZV93aXRoX3Njb3BlLgoJKHB1c2hkZWNsX25hbWVzcGFjZV9sZXZlbCk6IEFkanVzdCBjYWxscyB0bwoJU0VUX0lERU5USUZJRVJfVFlQRV9WQUxVRSB0byBwYXNzIGEgREVDTC4KCShwdXNoZGVjbF9jbGFzc19sZXZlbCk6IExpa2V3aXNlLgoJKGxvb2t1cF90YWcpOiBVc2Ugc2VsZWN0X2RlY2wuCgkoc2VsZWN0X2RlY2wpOiBJbXByb3ZlIGNvbW1lbnQuCgkocmVjb3JkX2J1aWx0aW5fdHlwZSk6IERvIG5vdCBjYWxsIHB1c2hkZWNsLgoJKGN4eF9pbml0X2RlY2xfcHJvY2Vzc2luZyk6IERvIG5vdCBjYWxsIHhyZWZfdGFnIGZvciBiYWRfYWxsb2MuCgkoY3BfZmluaXNoX2RlY2wpOiBBZGp1c3QgY2FsbCB0byBzZXRfaWRlbnRpZmllcl90eXBlX3ZhbHVlLgoJKGNoZWNrX2VsYWJvcmF0ZWRfdHlwZV9zcGVjaWZpZXIpOiBJbXByb3ZlIGNoZWNrcyBmb3IgaW52YWxpZCB1c2VzCglvZiB0eXBlZGVmcy4KCSh4cmVmX3RhZyk6IEFkanVzdCBjYWxsIHRvIGNoZWNrX2VsYWJvcmF0ZWRfdHlwZV9zcGVjaWZpZXIuCgkqIGRlY2wyLmMgKGdyb2tjbGFzc2ZuKTogRG8gbm90IHNldCBUWVBFX0hBU19ERVNUUlVDVE9SLgoJKiBuYW1lLWxvb2t1cC5jIChzZXRfbmFtZXNwYWNlX2JpbmRpbmcpOiBVc2UgYWRkX2JpbmRpbmcuCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfc2ltcGxlX3R5cGVfc3BlY2lmaWVyKTogUmV0dXJuIGEgVFlQRV9ERUNMLAoJcmF0aGVyIHRoYW4gYW4gSURFTlRJRklFUl9OT0RFLCB0byByZXByZXNlbnQgYnVpbHQtaW4gdHlwZXMsIGlmCglyZXF1ZXN0ZWQgYnkgdGhlIGNhbGxlci4KCShjcF9wYXJzZXJfcG9zdGZpeF9leHByZXNzaW9uKTogQWRqdXN0IGNhbGwuCgkoY3BfcGFyc2VyX3R5cGVfc3BlY2lmaWVyKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX2VsYWJvcmF0ZWRfdHlwZV9zcGVjaWZpZXIpOiBBZGp1c3QgY2FsbCB0bwoJY2hlY2tfZWxhYm9yYXRlZF90eXBlX3NwZWNpZmllci4KCSogdHlwZWNrMi5jIChidWlsZF9mdW5jdGlvbmFsX2Nhc3QpOiBEbyBub3QgcGVyZm9ybSBuYW1lIGxvb2t1cHMuCgoJUFIgYysrLzEwNzE3CgkqIGRlY2wuYyAoZXhwYW5kX3N0YXRpY19pbml0KTogUmVtb3ZlIHVubmVjZXNzYXJ5IGNvZGUuCgoyMDAzLTA4LTE5ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiBjKysvMTA1MzgsIFBSIGMvNTU4MgoJKiBjcC9jcC1sYW5nLmMgKExBTkdfSE9PS1NfREVDTF9VTklOSVQpOiBEZWZpbmUuCgoyMDAzLTA4LTE5ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvMTExNzQKCSogaW5pdC5jIChidWlsZF9vZmZzZXRfcmVmKTogUGVyZm9ybSBhY2Nlc3MgY2hlY2tpbmcgZm9yCglwb2ludGVyIHRvIG1lbWJlciBjb3JyZWN0bHkuCgoyMDAzLTA4LTE5ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldD4KCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19JTklUSUFMSVpFX0RJQUdOT1NUSUNTKTogRml4IHNwZWxsaW5nLgoKMjAwMy0wOC0xOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTE5NTcKCSogY3AtdHJlZS5oIChmaW5pc2hfc3RtdF9leHByKTogQWRkIGJvb2wgcGFyYW1ldGVyLgoJKiBpbml0LmMgKGZpbmlzaF9pbml0X3N0bXRzKTogUGFzcyB0cnVlIHRvIGZpbmlzaF9zdG10X2V4cHIuIERvbid0CglhZGp1c3QgdGhlIHN0bXRfZXhwciBoZXJlLgoJKGJ1aWxkX3ZlY19pbml0KTogVXNlIGZpbmlzaF9zdG10X2V4cHJfZXhwciwgY29udmVydCByZXN1bHQgdG8KCWFycmF5IHR5cGUuCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfcHJpbWFyX2V4cHJlc3Npb24pOiBBZGp1c3QgZmluaXNoX3N0bXRfZXhwcgoJY2FsbC4KCSogcHQuYyAodHN1YnN0X2NvcHkpOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9zdG10X2V4cHIpOiBBZGQgcGFyYW1ldGVyLgoKCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBQdXNoIHRvIGNsYXNzJ3Mgc2NvcGUgYmVmb3JlCgl0c3Vic3RpbmcgYmFzZS4KCjIwMDMtMDgtMTcgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCglQUiBDKysvMTE3MDIKCSogc2VtYW50aWNzLmMgKGZpbmlzaF9pZF9leHByZXNzaW9uKTogTWFyayBhbGwgZnVuY3Rpb25zIGFzIHVzZWQuCgoyMDAzLTA4LTE2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTUxMgoJKiBjdnQuYyAoY29udmVydF90b192b2lkKTogSW5kaWNhdGUgd2hpY2ggc2lkZSBvZiBjb25kaXRpb25hbCBoYXMKCW5vIGVmZmVjdHMsIGFuZCByaHMgb2YgY29tbWEgb3BlcmF0b3IuIFRlc3QgZm9yIG5vIHNpZGVlZmZlY3QKCWV4cHJlc3Npb25zIGhlcmUgYW5kIGFsd2F5cyBidWlsZCBhIGNvbnZlcnQgZXhwci4KCSogaW5pdC5jIChleHBhbmRfZGVmYXVsdF9pbml0KTogQ29udmVydCB0aGUgaW5pdCB0byB2b2lkLgoJKiB0eXBlY2suYyAoYnVpbGRfeF9jb21wb3VuZF9leHByKTogRG8gbm90IGNoZWNrIGZvciBzaWRlIGVmZmVjdHMKCWhlcmUuCgkoYnVpbGRfY29tcG91bmRfZXhwcik6IERvIG5vdCBjb252ZXJ0IGxocyB3aGVuIGJ1aWxkaW5nIGEKCXRlbXBsYXRlLgoKMjAwMy0wOC0xNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuZGVmIChOT05fREVQRU5ERU5UX0VYUFIpOiBBZGQgb3BlcmFuZC4KCSogZGVjbDIuYyAoYnVpbGRfb2Zmc2V0X3JlZl9jYWxsX2Zyb21fdHJlZSk6IFVzZQoJYnVpbGRfbm9uX2RlcGVuZGVudF9leHByLgoJKiBlcnJvci5jIChkdW1wX2V4cHIpIDxOT05fREVQRU5ERU5UX0VYUFIgY2FzZT46IER1bXAgdGhlIG9wZXJhbmQuCgkqIHB0LmMgKGJ1aWxkX25vbl9kZXBlbmRlbnRfZXhwcik6IFNldCBvcGVyYW5kLgoKMjAwMy0wOC0xNCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogZGVjbDIuYyAobWFya19tZW1iZXJfcG9pbnRlcnMpOiBSZW5hbWUgdG8uLi4KCShtYXJrX21lbWJlcl9wb2ludGVyc19hbmRfZWhfdGluZm9zKTogLi4uIHRoaXMgb25lOyBkZWFsIHdpdGggZWggdGluZm9zCgkobG93ZXJfZnVuY3Rpb24pOiBVcGRhdGUgY2FsbC4KCSogZXhjZXB0LmMgKGVoX3R5cGVfaW5mbyk6IEJyZWFrIG91dCBmcm9tIC4uLgoJKGJ1aWxkX2VoX3R5cGUpOiAuLi4gaGVyZTsgdGluZm8gaXMgYWxyZWFkeSB1c2VkLgoJKGZpbmlzaF9laF9zcGVjX2Jsb2NrKTogTWFyayB0aW5mb3MgYXMgdXNlZC4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9oYW5kbGVyX3BhcmFtcyk6IE1hcmsgdGluZm8gYXMgdXNlZC4KCSogY3AtdHJlZS5oIChlaF90eXBlX2luZm8pOiBEZWNsYXJlLgoKMjAwMy0wOC0xNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKGluc3RhbnRpYXRlX2NsYXNzX3RlbXBsYXRlKTogU2V0IGxvY2F0aW9uIGJlZm9yZQoJc3Vic3R1dGluZyBiYXNlcy4KCgkqIGRlY2wuYyAobWFrZV90eXBlbmFtZV90eXBlKTogVXNlIG15X2ZyaWVuZGx5X2Fzc2VydC4KCSogcHQuYyAodHN1YnN0X2FnZ3JfdHlwZSk6IFJlYXJyYW5nZSBjb250ZXh0IHN1YnN0aXR1dGlvbi4KCjIwMDMtMDgtMTQgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIG1ldGhvZC5jICh1c2VfdGh1bmspOiBFeHBhbmQgYm9keSBkaXJlY3RseS4KCjIwMDMtMDgtMTIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzExNzAzCgkqIGNhbGwuYyAodHlwZV9wYXNzZWRfYXMpOiBVc2UgVFlQRV9TSVpFLCBub3QgVFlQRV9QUkVDSVNJT04gdG8KCWRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0byBwcm9tb3RlIHR5cGVzLgoJKGNvbnZlcnRfZm9yX2FyZ19wYXNzaW5nKTogTGlrZXdpc2UuCgkqIGRlY2wyLmMgKGNwX2J1aWxkX3Bhcm1fZGVjbCk6IERvIG5vdCBzZXQgREVDTF9BUkdfVFlQRSBpbgoJdGVtcGxhdGVzLgoJKiBwdC5jICh0c3Vic3RfZGVjbCk6IERvIG5vdCBleHBlY3QgaXQgdG8gYmUgc2V0LgoKCVBSIGMrKy85NTEyCglQUiBjKysvMTA5MjMKCSogY3AtdHJlZS5oIChjaGVja19lbGFib3JhdGVkX3R5cGVfc3BlY2lmaWVyKTogRGVjbGFyZS4KCShoYW5kbGVfY2xhc3NfaGVhZCk6IFJlbW92ZS4KCShub3RlX2dvdF9zZW1pY29sb24pOiBMaWtld2lzZS4KCShub3RlX2xpc3RfZ290X3NlbWljb2xvbik6IExpa2V3aXNlLgoJKGZpbmlzaF9jbGFzc19kZWZpbml0aW9uKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoY2hlY2tfZWxhYm9yYXRlZF90eXBlX3NwZWNpZmllcik6IE1ha2UgaXQgcHVibGljLgoJUm9idXN0aWZ5LgoJKGhhbmRsZV9jbGFzc19oZWFkKTogUmVtb3ZlLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2VsYWJvcmF0ZWRfdHlwZV9zcGVjaWZpZXIpOiBVc2UKCWNoZWNrX2VsYWJvcmF0ZWRfdHlwZV9zcGVjaWZpZXIuCgkoY3BfcGFyc2VyX2NsYXNzX3NwZWNpZmllcik6IERvIG5vdCBjYWxsIGZpbmlzaF9jbGFzc19kZWZpbml0aW9uLgoJKGNwX3BhcnNlcl9jbGFzc19oZWFkKTogT3IgaGFuZGxlX2NsYXNzX2hlYWQuICBDaGVjayBmb3IKCW92ZXItcXVhbGlmaWVkIG5hbWVzLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2NsYXNzX2RlZmluaXRpb24pOiBSZW1vdmUuCgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2NoZWNrX2Zvcl9kZWZpbml0aW9uX2luX3JldHVybl90eXBlKTogTmV3CglmdW5jdGlvbi4KCShjcF9wYXJzZXJfc2ltcGxlX2RlY2xhcmF0aW9uKTogQWRqdXN0IGNhbGwgdG8KCWNwX3BhcnNlcl9pbml0X2RlY2xhcmF0b3IuCgkoY3BfcGFyc2VyX2RlY2xfc3BlY2lmaWVyX3NlcSk6IENoYW5nZSB0eXBlIG9mCglkZWNsYXJlc19jbGFzc19vcl9lbnVtIHBhcmFtZXRlci4KCShjcF9wYXJzZXJfZXhwbGljaXRfaW5zdGFudGlhdGlvbik6IEFkanVzdCBhY2NvcmRpbmdseS4KCShjcF9wYXJzZXJfdHlwZV9zcGVjaWZpZXIpOiBDaGFuZ2UgdHlwZSBvZgoJZGVjbGFyZXNfY2xhc3Nfb3JfZW51bSBwYXJhbWV0ZXIuCgkoY3BfcGFyc2VyX2luaXRfZGVjbGFyYXRvcik6IEFkZCBkZWNsYXJlc19jbGFzc19vcl9lbnVtCglwYXJhbWV0ZXIuCgkoY3BfcGFyc2VyX3BhcmFtZXRlcl9kZWNsYXJhdGlvbik6IEFkanVzdCBjYWxsIHRvCgljcF9wYXJzZXJfZGVjbF9zcGVjaWZpZXJfc2VxLgoJKGNwX3BhcnNlcl9mdW5jdGlvbl9kZWZpbml0aW9uKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX21lbWJlcl9kZWNsYXJhdGlvbik6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9zaW5nbGVfZGVjbGFyYXRpb24pOiBMaWtld2lzZS4KCgkqIGNwLXRyZWUuaCAobGFuZ190eXBlX2NsYXNzKTogUmVtb3ZlIGhhc19jYWxsX292ZXJsb2FkZWQsCgloYXNfYXJyYXlfcmVmX292ZXJsb2FkZWQsIGhhc19hcnJvd19vdmVybG9hZGVkLCBhbmQgZ290X3NlbWljb2xvbi4KCShUWVBFX09WRVJMT0FEU19DQUxMX0VYUFIpOiBSZW1vdmUuCgkoVFlQRV9PVkVSTE9BRFNfQVJSQVlfUkVGKTogTGlrZXdpc2UuCgkoVFlQRV9PVkVSTE9BRFNfQVJST1cpOiBMaWtld2lzZS4KCShDTEFTU1RZUEVfR09UX1NFTUlDT0xPTik6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChjaGVja19iYXNlcyk6IERvIG5vdCBzZXQgdGhlbS4KCShmaW5pc2hfc3RydWN0XzEpOiBMaWtld2lzZS4KCSogZGVjbC5jIChjcF9maW5pc2hfZGVjbCk6IERvIG5vdCBzZXQgQ0xBU1NUWVBFX0dPVF9TRU1JQ09MT04uCgkoYnVpbGRfcHRybWVtZnVuY190eXBlKTogTGlrZXdpc2UuCgkoZ3Jva19vcF9wcm9wZXJ0aWVzKTogRG8gbm90IHNldCBUWVBFX09WRVJMT0FEU18qLgoJKHN0YXJ0X2Z1bmN0aW9uKTogRG8gbm90IGNoZWNrIENMQVNTVFlQRV9HT1RfU0VNSUNPTE9OLgoJKiBkZWNsMi5jIChncm9rZmllbGQpOiBEbyBub3Qgc2V0IENMQVNTVFlQRV9HT1RfU0VNSUNPTE9OLgoJKiBsZXguYyAobm90ZV9nb3Rfc2VtaWNvbG9uKTogUmVtb3ZlLgoJKG5vdGVfbGlzdF9nb3Rfc2VtaWNvbG9uKTogTGlrZXdpc2UuCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfc2ltcGxlX2RlY2xhcmF0aW9uKTogRG8gbm90IGNhbGwKCW5vdGVfbGlzdF9nb3Rfc2VtaWNvbG9uLgoJKiBwdC5jIChsaXN0X2VxKTogUmVtb3ZlLgoJKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IERvIG5vdCBzZXQgQ0xBU1NUWVBFX0dPVF9TRU1JQ09MT04uCgkoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBEbyBub3Qgc2V0IFRZUEVfT1ZFUkxPQURTKi4KCShpbnN0YW50aWF0ZV9jbGFzc190ZW1wbGF0ZSk6IERvIG5vdCBzZXQgQ0xBU1NUWVBFX0dPVF9TRU1JQ09MT04uCgkqIHB0cmVlLmMgKGN4eF9wcmludF90eXBlKTogRG8gbm90IHByaW50IHRoZW0uCgkqIHNlbWFudGljcy5jIChmaW5pc2hfbWVtYmVyX2NsYXNzX3RlbXBsYXRlKTogRG8gbm90IGNhbGwKCW5vdGVfbGlzdF9nb3Rfc2VtaWNvbG9uLgoKMjAwMy0wOC0xMSAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogY2FsbC5jIChzdGFuZGFyZF9jb252ZXJzaW9uKTogT3BhcXVlIHBvaW50ZXJzIGludGVyY29udmVydC4KCgkqIHRlc3RzdWl0ZS9nKysuZGcvb3RoZXIvb3BhcXVlLTMuQzogTmV3LgoKMjAwMy0wOC0xMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHR5cGVjay5jIChtZXJnZV90eXBlcyk6IEhhbmRsZSBjdi1xdWFsaWZpZWQgcG9pbnRlci10by1tZW1iZXIKCXR5cGVzIGNvcnJlY3RseS4KCjIwMDMtMDgtMTAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzExNzg5CgkqIGNwLXRyZWUuaCAoZ2V0X3ZiYXNlKTogUmVtb3ZlLgoJKGdldF92YmFzZV90eXBlcyk6IFJlbW92ZS4KCSogaW5pdC5jIChleHBhbmRfbWVtYmVyX2luaXQpOiBDb3JyZWN0IGxvZ2ljIGZvciBsb29raW5nIHVwIGJhc2UKCWNsYXNzZXMuCgoyMDAzLTA4LTEwICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldD4KCgkqIGVycm9yLmMgKGR1bXBfZXhwcik6IFRpZHkuCgkqIGN4eC1wcmV0dHktcHJpbnQuYyAocHBfY3h4X25vbmNvbnNlY3V0aXZlX2NoYXJhY3Rlcik6IE5ldy4KCShwcF9jeHhfYmVnaW5fdGVtcGxhdGVfYXJndW1lbnRfbGlzdCk6IExpa2V3aXNlLgoJKHBwX2N4eF9lbmRfdGVtcGxhdGVfYXJndW1lbnRfbGlzdCk6IExpa2V3aXNlLgoJKGlzX2Rlc3RydWN0b3JfbmFtZSk6IExpa2V3aXNlLgoJKHBwX2N4eF91bnF1YWxpZmllZF9pZCk6IExpa2V3aXNlLgoJKHBwX2N4eF9xdWFsaWZpZWRfaWQpOiBMaWtld2lzZS4KCShwcF9jeHhfaWRfZXhwcmVzc2lvbik6IExpa2V3aXNlLgoJKHBwX2N4eF9uZXdfZXhwcmVzc2lvbik6IExpa2V3aXNlLgoJKHBwX2N4eF9kZWxldGVfZXhwcmVzc2lvbik6IExpa2V3aXNlLgoJKHBwX2N4eF9wbV9leHByZXNzaW9uKTogTGlrZXdpc2UuCgkocHBfY3h4X3R5cGVfc3BlY2lmaWVyKTogUmV3b3JrLgoJKHBwX2N4eF90eXBlX2lkKTogTGlrZXdpc2UuCgkocHBfY3h4X3ByaW1hcnlfZXhwcmVzc2lvbik6IExpa2V3aXNlLgoJKHBwX2N4eF9wb3N0Zml4X2V4cHJlc3Npb24pOiBMaWtld2lzZS4KCShwcF9jeHhfdW5hcnlfZXhwcmVzc2lvbik6IExpa2V3aXNlLgoJKHBwX2N4eF9tdWx0aXBsaWNhdGl2ZV9leHByZXNzaW9uKTogTGlrZXdpc2UuCgkocHBfY3h4X2NvbmRpdGlvbmFsX2V4cHJlc3Npb24pOiBMaWtld2lzZS4KCShwcF9jeHhfYXNzaWdubWVudF9leHByZXNzaW9uKTogTGlrZXdpc2UuCgkocHBfY3h4X3ByZXR0eV9wcmludGVyX2luaXQpOiBUaWR5LgoKMjAwMy0wOC0xMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoVE1QTF9BUkdTX0hBVkVfTVVMVElQTEVfTEVWRUxTKTogbm9uLU5VTEwKCU5PREUgaXMgYWx3YXlzIGEgVFJFRV9WRUMgb2Ygbm9uemVybyBzaXplLgoJKE5VTV9UTVBMX0FSR1MpOiBOT0RFIGlzIGFsd2F5cyBhIFRSRUVfVkVDLgoJKiBkZWNsMi5jIChhcmdfYXNzb2MpOiBUZW1wbGF0ZSBhcmdzIHdpbGwgYmUgYSB2ZWMuCgkqIGVycm9yLmMgKGR1bXBfZGVjbCkgPFRFTVBMQVRFX0lEX0VYUFIgY2FzZT46IENhbGwKCWR1bXBfdGVtcGxhdGVfYXJndW1lbnRfbGlzdC4KCShkdW1wX3RlbXBsYXRlX3Bhcm1zKTogQXJncyB3aWxsIGJlIGEgdmVjLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3RlbXBsYXRlX2FyZ3VtZW50X2xpc3QpOiBQcm9kdWNlIGEKCXZlY3Rvciwgbm90IGEgbGlzdC4KCSogcHQuYyAoY29lcmNlX3RlbXBsYXRlX3Bhcm1zKTogQXJncyBhcmUgYWx3YXlzIHZlY3RvcnMuCgkobWFuZ2xlX2NsYXNzX25hbWVfZm9yX3RlbXBsYXRlKTogTGlrZXdpc2UuCgkobG9va3VwX3RlbXBsYXRlX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkobG9va3VwX3RlbXBsYXRlX2NsYXNzKTogTGlrZXdpc2UuCgkodHN1YnN0X3RlbXBsYXRlX2FyZ3MpOiBMaWtld2lzZS4KCSh0c3Vic3RfYmFzZWxpbmspOiBVc2UgdHN1YnN0X3RlbXBsYXRlX2FyZ3MuCgkodHN1YnN0X3F1YWxpZmllZF9pZCk6IExpa2V3aXNlLgoJKHRzdWJzdF9jb3B5KSA8VEVNUExBVEVfSURfRVhQUiBjYXNlPjogTGlrZXdpc2UuCgkodHN1YnN0X2NvcHlfYW5kX2J1aWxkKSA8VEVNUExBVEVfSURfRVhQUiBjYXNlPjogTGlrZXdpc2UuCgkoYW55X2RlcGVuZGVudF90ZW1wbGF0ZV9hcmdzX3ApOiAgQXJncyBhcmUgYWx3YXlzIHZlY3RvcnMuCgkqIHRyZWUuYyAoY3BfdHJlZV9lcXVhbCk6IEFkZCBURU1QTEFURV9JRF9FWFBSIGNhc2UuCgoJUFIgYysrLzExNjcwCgkqIGNhbGwuYyAoY29udmVydF9saWtlX3JlYWwpOiBBZGQgcnZhbHVlIGJpbmRpbmcgZXJyb3IgbWVzc2FnZS4KCSogZXJyb3IuYyAoZHVtcF9leHByKSA8Tk9QX0VYUFIgY2FzZT46IERldGVjdCB3aGVuIHRoZSBubyBleHByIGlzCglyZWFsbHkgYSBjYXN0LgoKCVBSIGMrKy8xMDUzMAoJKiBwdC5jIChkZXBlbmRlbnRfdHlwZV9wX3IpOiBBIGRlcGVuZGVudCB0ZW1wbGF0ZS1pZCBpcyBhIGNsYXNzCgl0eXBlIHdpdGggZGVwZW5kZW50IHRlbXBsYXRlIGFyZ3VtZW50cywgb3IgYSBib3VuZCB0ZW1wbGF0ZQoJdGVtcGxhdGUgcGFyYW1ldGVyLgoJKHR5cGVfZGVwZW5kZW50X2V4cHJlc3Npb25fcCk6IEEgdGVtcGxhdGUgZnVuY3Rpb24gZGVjbCBjYW5ub3QKCWhhdmUgYSBkZXBlbmRlbnQgY29udGV4dC4KCjIwMDMtMDgtMDcgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy81NzY3CgkqIHBhcnNlci5jIChjcF9wYXJzZXJfY2xhc3NfbmFtZSk6IFJldHVybiBpbW1lZGlhdGVseSB3aGVuIHNjb3BlCglpcyBlcnJvcl9tYXJrX25vZGUuCgoyMDAzLTA4LTA3ICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJKiBjcC9NYWtlLWxhbmcuaW4gKGNwL2NhbGwubyk6IEFkZCBkZXBlbmRlbmN5IGZvciB0YXJnZXQuaC4KCgkqIGNwL2NhbGwuYyAoc3RhbmRhcmRfY29udmVyc2lvbik6IFN1cHBvcnQgb3BhcXVlIHR5cGVzLgoJSW5jbHVkZSB0YXJnZXQuaC4KCShzdHJpcF90b3BfcXVhbHMpOiBVc2UgY3BfYnVpbGRfcXVhbGlmaWVkX3R5cGUgaW5zdGVhZCBvZgoJVFlQRV9NQUlOX1ZBUklBTlQuCgoJKiBjcC90eXBlY2suYyAoY29udmVydF9mb3JfYXNzaWdubWVudCk6IFN1cHBvcnQgb3BhcXVlIHR5cGVzLgoKCSogdGVzdHN1aXRlL2crKy5kZy9vdGhlci9vcGFxdWUtMS5DOiBOZXcuCgoJKiB0ZXN0c3VpdGUvZysrLmRnL290aGVyL29wYXF1ZS0yLkM6IE5ldy4KCjIwMDMtMDgtMDYgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAoZ3Jva3Bhcm1zKTogVXNlIGNwX2J1aWxkX3F1YWxpZmllZF90eXBlIGluc3RlYWQKCVRZUEVfTUFJTl9WQVJJQU5ULgoKMjAwMy0wOC0wNSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBjeHgtcHJldHR5LXByaW50Lmg6IE5ldyBmaWxlLgoJKiBjeHgtcHJldHR5LXByaW50LmM6IExpa2V3aXNlLgoJKiBlcnJvci5jIChzY3JhdGNoX3ByZXR0eV9wcmludGVyKTogQ2hhbmdlIHR5cGUuCgkoaW5pdF9lcnJvcik6IFRpZHkuCgkoZHVtcF9hZ2dyX3R5cGUpOiBMaWtld2lzZS4KCShkdW1wX2dsb2JhbF9pb3JkKTogTGlrZXdpc2UuCgkoZHVtcF9leHByKTogTGlrZXdpc2UuCgkoZHVtcF9jaGFyKTogUmVtb3ZlLgoJKiBjcC1sYW5nLmMgKExBTkdfSE9PS1NfSU5JVElBTElaRV9ESUFHTk9TVElUQ1MpOiBEZWZpbmUuCgkoY3h4X2luaXRpYWxpemVfZGlhZ25vc3RpY3MpOiBOZXcgZnVuY3Rpb24uCgkqIE1ha2UtbGFuZy5pbiAoQ1hYX09CSlMpOiBBZGQgY3AvY3h4LXByZXR0eS1wcmludC5vCgkoQ1hYX1BSRVRUWV9QUklOVF9IKTogTmV3IHZhcmlhYmxlLgoJKGNwL2N4eC1wcmV0dHktcHJpbnQubyk6IE5ldyBydWxlLgoJKGNwL2NwLWxhbmcubyk6IFVwZGF0ZSBkZXBlbmRlbmNlLgoJKGNwL2Vycm9yLm8pOiBMaWtld2lzZS4KCjIwMDMtMDgtMDUgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbkBnY2MuZ251Lm9yZz4KCgkqIGNwLXRyZWUuaCAoc3RydWN0IGxhbmdfZGVjbCk6IERvbid0IGluY2x1ZGUgY19sYW5nX2RlY2wuCgkoREVDTF9ERUNMQVJFRF9JTkxJTkVfUCk6IFJlbW92ZS4KCSogZGVjbDIuYyAoaW1wb3J0X2V4cG9ydF9kZWNsKTogT25seSBsb29rIGF0IERFQ0xfREVDTEFSRURfSU5MSU5FX1AKCWlmIGRlY2wgaXMgYSBGVU5DVElPTl9ERUNMLiAgVGhpcyBuZXZlciBtYWRlIHNlbnNlLCBidXQgbm93IGl0IGlzCglyZXF1aXJlZCB0byBhdm9pZCBhIHRyZWUgY2hlY2sgZmFpbHVyZS4KCSogZGVjbC5jIChncm9rZm5kZWNsKTogRG9uJ3QgdG91Y2ggRElEX0lOTElORV9GVU5DLgoJKiBvcHRpbWl6ZS5jIChtYXliZV9jbG9uZV9ib2R5KTogTGlrZXdpc2UuCgoyMDAzLTA4LTA0ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGRlY2wuYyAoY3h4X2luc2VydF9kZWZhdWx0X2F0dHJpYnV0ZXMpOiBEZWxldGUuCgkqIGNwLXRyZWUuaCAoY3h4X2luc2VydF9kZWZhdWx0X2F0dHJpYnV0ZXMpOiBEb24ndCBwcm90b3R5cGUuCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19JTlNFUlRfREVGQVVMVF9BVFRSSUJVVEVTKTogRG9uJ3QgZGVmaW5lLgoKMjAwMy0wOC0wMyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTE3MDQKCSogcHQuYyAodHlwZV9kZXBlbmRlbnRfZXhwcmVzc2lvbl9wKTogQ29wZSB3aXRoIENPTVBPTkVOVF9SRUYgd2l0aAoJdW5rbm93biB0eXBlLgoKCVBSIGMrKy8xMTc2NgoJKiB0eXBlY2suYyAoY29tcF9wdHJfdHR5cGVzX3JlYWwpOiBEb24ndCBsb29wIG9uIHBvaW50ZXJzIHRvCgltZW1iZXIgZnVuY3Rpb25zLgoKMjAwMy0wOC0wMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTQ0NwoJKiBjcC10cmVlLmRlZiAoVVNJTkdfREVDTCk6IERvY3VtZW50IGl0cyB0eXBlLgoJKiBjbGFzcy5jIChwdXNoY2xhc3MpOiBJZiB3ZSdyZSBlbnRlcmluZyBhIHRlbXBsYXRlLCBwdXNoIGFueQoJZGVwZW5kZW50IHVzaW5nIGRlY2xzIGl0IGhhcy4KCSogZGVjbDIuYyAoZG9fY2xhc3NfdXNpbmdfZGVjbCk6IFJlZmFjdG9yLiBUeXBlIGlzIE5VTEwgaWZmIGl0IGlzCglhIGRlcGVuZGVudCBzY29wZS4KCSogcHQuYyAodHN1YnN0X2RlY2wpIDxVU0lOR19ERUNMIGNhc2U+OiBTZXQgdHlwZS4KCSh0c3Vic3QpOiBSZW1vdmUgVVNJTkdfREVDTCBjaGVja3MuCgkodHlwZV9kZXBlbmRlbnRfZXhwcmVzc2lvbl9wKTogUmVtb3ZlIFVTSU5HX0RFQ0wgY2FzZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9tZW1iZXJfZGVjbGFyYXRpb24pOiBBIFVTSU5HX0RFQ0wncyB0eXBlCglpbmRpY2F0ZXMgd2hldGhlciBpdCBpcyBkZXBlbmRlbnQuCgoyMDAzLTA4LTAyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChwdXNoY2xhc3MpOiBSZW1vdmUgdW5uZWVkZWQgcGFyYW1ldGVyLgoJKiBjbGFzcy5jIChwdXNoY2xhc3MpOiBSZW1vdmUgdW5uZWVkZWQgTU9ESUZZIHBhcm0uIEFkanVzdC4KCShwdXNoX25lc3RlZF9jbGFzcyk6IEFkanVzdCBwdXNoY2xhc3MgY2FsbC4KCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGJlZ2luX2NsYXNzX2RlZmluaXRpb24pOiBMaWtld2lzZS4KCjIwMDMtMDgtMDEgIE5hdGhhbmFlbCBOZXJvZGUgIDxuZXJvZGVuQGdjYy5nbnUub3JnPgoKCSogdHlwZWNrMi5jIChhZGRfZXhjZXB0aW9uX3NwZWNpZmllcik6IFVzZSAnYm9vbCcgd2hlcmUgYXBwcm9wcmlhdGUuCgoyMDAzLTA4LTAxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTY5NwoJKiBkZWNsLmMgKGRlY2xzX21hdGNoKTogRG9uJ3QgaWdub3JlIHRoZSB0eXBlcyBvZiB0ZW1wbGF0ZQoJY2xhc3Nlcy4KCglQUiBjKysvMTE3NDQKCSogcHQuYyAodHN1YnN0X2NvcHlfYW5kX2J1aWxkKTogUmVmaW5lIEtvZW5pZyBsb29rdXAgbG9naWMuCgoyMDAzLTA4LTAxICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvODQ0MiwgYysrLzg4MDYKCSogZGVjbC5jIChxdWFsaWZ5X2xvb2t1cCk6IEFjY2VwdCBURU1QTEFURV9ERUNMIGlmIHR5cGVzIGFyZQoJcHJlZmVycmVkLgoJKGNoZWNrX2VsYWJvcmF0ZWRfdHlwZV9zcGVjaWZpZXIpOiBBZGQgYWxsb3dfdGVtcGxhdGVfcAoJcGFyYW1ldGVyLiAgQ2hlY2sgdGFnIG1pc21hdGNoIGFuZCBjbGFzcyB0ZW1wbGF0ZS4KCSh4cmVmX3RhZyk6IEFkZCB0ZW1wbGF0ZV9oZWFkZXJfcCBwYXJhbWV0ZXIuICBBZGQgYXNzZXJ0aW9uCgl0aGF0IG5hbWUgaXMgYW4gSURFTlRJRklFUl9OT0RFLiAgUmVtb3ZlIGltcGxpY2l0IHR5cGVuYW1lCgl3YXJuaW5nLiAgU2ltcGxpZnkgbG9va3VwIHByb2Nlc3MgaWYgZ2xvYmFsaXplIGlzIHRydWUuCgkoY3h4X2luaXRfZGVjbF9wcm9jZXNzaW5nKTogQWRqdXN0IGNhbGwgdG8geHJlZl90YWcuCgkoeHJlZl90YWdfZnJvbV90eXBlKTogTGlrZXdpc2UuCgkqIGRlY2wyLmMgKGhhbmRsZV9jbGFzc19oZWFkKTogTGlrZXdpc2UuCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfZWxhYm9yYXRlZF90eXBlX3NwZWNpZmllciwKCWNwX3BhcnNlcl9jbGFzc19oZWFkKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoaW5pdF9ydHRpX3Byb2Nlc3NpbmcsIGJ1aWxkX2R5bmFtaWNfY2FzdDEsCgl0aW5mb19iYXNlX2luaXQsIGVtaXRfc3VwcG9ydF90aW5mb3MpOiBMaWtld2lzZS4KCSogY2xhc3MuYyAoaXNfYmFzZV9vZl9lbmNsb3NpbmdfY2xhc3MpOiBSZW1vdmUuCgkqIHB0LmMgKGNvbnZlcnRfdGVtcGxhdGVfYXJndW1lbnQpOiBEb24ndCBhY2NlcHQgUkVDT1JEX1RZUEUgYXMKCXRlbXBsYXRlIHRlbXBsYXRlIGFyZ3VtZW50LgoJKiBjcC10cmVlLmggKHhyZWZfdGFnKTogQWRqdXN0IGRlY2xhcmF0aW9uLgoJKGlzX2Jhc2Vfb2ZfZW5jbG9zaW5nX2NsYXNzKTogUmVtb3ZlLgoJKiBORVdTOiBEb2N1bWVudCB0ZW1wbGF0ZSB0ZW1wbGF0ZSBhcmd1bWVudCBjaGFuZ2UuCgoyMDAzLTA4LTAxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9pbml0X2RlY2xhcmF0b3IsCgljcF9wYXNlcl9tZW1iZXJfZGVjbGFyYXRpb24pOiBSZWZvcm1hdC4KCSogcHQuYyAobG9va3VwX3RlbXBsYXRlX2NsYXNzLCB0eXBlX3VuaWZpY2F0aW9uX3JlYWwsIHVuaWZ5LAoJdHlwZV9kZXBlbmRlbnRfZXhwcmVzc2lvbl9wKTogUmVmb3JtYXQuCgoJUFIgYysrLzExMjk1CgkqIGNwLXRyZWUuaCAodHVic3RfZmxhZ3NfdCk6IEFkZCB0Zl9zdG10X2V4cHJfY21wZCwKCXRmX3N0bXRfZXhwcl9ib2R5LgoJKGZpbmlzaF9zdG10X2V4cHJfZXhwcik6IERlY2xhcmUuCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfcHJpbWFyeV9leHByZXNzaW9uKTogVGVsbAoJY3BfcGFyc2VyX2NvbXBvdW50X3N0YXRlbWVudCB0aGF0IGl0IGlzIGEgc3RhdGVtZW50IGV4cHJlc3Npb24uCgkoY3BfcGFyc2VyX3N0YXRlbWVudCwgY3BfcGFyc2VyX2xhYmVsZWRfc3RhdGVtZW50LAoJY3BfcGFyc2VyX2NvbXBvdW5kX3N0YXRlbWVudCwgY3BfcGFyc2VyX3N0YXRlbWVudF9zZXFfb3B0KTogQWRkCglpbl9zdGF0ZW1lbnRfZXhwcl9wIHBhcmFtZXRlci4KCShjcF9wYXJzZXJfZXhwcmVzc2lvbl9zdGF0ZW1lbnQpOiBMaWtld2lzZS4gQ2FsbAoJZmluaXNoX3N0bXRfZXhwcl9leHByIGZvciBmaW5hbCBleHByZXNzaW9uIG9mIGEgc3RhdGVtZW50CglleHByZXNzaW9uLgoJKGNwX3BhcnNlcl9mb3JfaW5pdF9zdGF0ZW1lbnQsCgljcF9wYXJzZXJfaW1wbGljaXRseV9zY29wZWRfc3RhdGVtZW50LAoJY3BfcGFyc2VyX2FscmVhZHlfc2NvcGVkX3N0YXRlbWVudCwgY3BfcGFyc2VyX2Z1bmN0aW9uX2RlZmluaXRpb24sCgljcF9wYXJzZXJfdHJ5X2Jsb2NrLCBjcF9wYXJzZXJfaGFuZGxlZCk6IEFkanVzdC4KCSogcHQuYyAodHN1YnN0X2NvcHkpIDxTVE1UX0VYUFIgY2FzZT46IFBhc3MgdGZfc3RtdF9leHByLgoJKHRzdWJzdF9leHByKTogUHJvY2VzcyB0Zl9zdG10X2V4cHIgYW5kIHRmX3N0bXRfZXhwcnMgZmxhZ3MuCgkodHN1YnN0X2V4cHIpIDxFWFBSX1NUTVQgY2FzZT46IENoZWNrIHRmX3N0bXRfZXhwcnMgZmxhZy4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9leHByX3N0bXQpOiBEbyBub3QgZGVhbCB3aXRoIHN0YXRlbWVudAoJZXhwcmVzc2lvbnMuCgkoYmVnaW5fc3RtdF9leHByKTogQ2xlYXIgbGFzdF9leHByX3R5cGUuCgkoZmluaXNoX3N0bXRfZXhwcl9leHByKTogTmV3LgoJKGZpbmlzaF9zdG10X2V4cHIpOiBQcm9jZXNzIHRoZSB2YWx1ZSBleHByZXNzaW9uLgoKCSogdHlwZWNrLmMgKGJ1aWxkX2NvbXBvdW5kX2V4cHIpOiBJZiBSSFMgaXMgYSBUQVJHRVRfRVhQUiwgcHV0IHRoZQoJY29tcG91bmQgZXhwciBpbnNpZGUgdGhlIHRhcmdldCdzIGluaXRpYWxpemVyLgoKCVBSIGMrKy8xMTUyNQoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3ByaW1hcnlfZXhwcmVzc2lvbik6IERvIG5vdCBzZXQKCW5vbi1jb25zdGFudC1wIG1lcmVseSBiZWNhdXNlIGl0IGlzIGEgZGVwZW5kZW50IHNjb3BlLgoKCVBSIGMrKy85NDQ3CgkqIGRlY2wyLmMgKGRvX2NsYXNzX3VzaW5nX2RlY2wpOiBTZXQgdHlwZSB0byBOVUxMX1RSRUUuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfZXhwcl9zdG10KTogRG8gbm90IGNvbnZlcnQgdG8gdm9pZCBpbiBhCgl0ZW1wbGF0ZS4KCjIwMDMtMDctMzEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwdC5jIChjb2VyY2VfdGVtcGxhdGVfcGFybXMpOiBSZWZhY3Rvci4KCShmbl90eXBlX3VuaWZpY2F0aW9uKTogSW5jcmVtZW50IHByb2Nlc3NpbmdfdGVtcGxhdGVfZGVjbCB3aGVuCgl0c3Vic3RpbmcgYW4gaW5jb21wbGV0ZSBzZXQgb2YgZXhwbGljaXQgYXJncy4KCglQUiBjKysvMTEzNDcKCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBJbmNyZW1lbnQKCXByb2Nlc3NpbmdfdGVtcGxhdGVfZGVjbCBhcm91bmQgdGhlIHRzdWJzdCBvZiBhIHRlbXBsYXRlIG1lbWJlcgoJY2xhc3MuCgkodHN1YnN0X3F1YWxpZmllZF9pZCk6IEFzc2VydCB3ZSBkbyBub3QgaGF2ZSBhIGRlcGVuZGVudCBzY29wZS4KCgkqIHB0LmMgKGNvZXJjZV90ZW1wbGF0ZV90ZW1wbGF0ZV9wYXJtcywgbG9va3VwX3RlbXBsYXRlX2NsYXNzLAoJY2FuX2NvbXBsZXRlX3R5cGVfd2l0aG91dF9jaXJjdWxhcml0eSwgaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUsCgl0c3Vic3RfZGVjbCwgdW5pZnkpOiBSZWZvcm1hdC4KCjIwMDMtMDctMzEgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIGRlY2wyLmMgKG1heWJlX21ha2Vfb25lX29ubHkpOiBVc2UgbWFya19yZWZlcmVuY2VkLgoJKiBtZXRob2QuYyAodXNlX3RodW5rKTogTGlrZXdzaWUuCgoyMDAzLTA3LTMwICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBjbGFzcy5jIChidWlsZF92dGFibGVfZW50cnlfcmVmKTogS2lsbC4KCShidWlsZF92dGJsX3JlZl8xKTogRG8gbm90IGNhbGwgYnVpbGRfdnRhYmxlX2VudHJ5X3JlZi4KCShidWlsZF92Zm5fcmVmKTogRG8gbm90IGNhbGwgYnVpbGRfdnRhYmxlX2VudHJ5X3JlZi4KCSogY3AtbGFuZy5jIChMQU5HX0hPT0tTX1BSRVBBUkVfQVNTRU1CTEVfVkFSSUFCTEUpOiBLaWxsLgoJKiBjcC10cmVlLmggKHByZXBhcmVfYXNzZW1ibGVfdmFyaWFibGUpOiBLaWxsLgoJKiBjcC1kZWNsLmMgKHByZXBhcmVfYXNzZW1ibGVfdmFyaWFibGUpOiBLaWxsLgoKMjAwMy0wNy0yOSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBwYXJzZXIuYyAoY3BfbGV4ZXJfbmV3X21haW4pOiBVc2UgY19jb21tb25fbm9fbW9yZV9wY2ggaW5zdGVhZAoJb2Ygc2V0dGluZyB2YWxpZF9wY2ggYnkgaGFuZC4KCjIwMDMtMDctMjkgIFJhaW5lciBPcnRoICA8cm9AVGVjaEZhay5VbmktQmllbGVmZWxkLkRFPgoKCSogZGVjbC5jIChmaW5pc2hfZW51bSk6IEluaXRpYWxpemUgdW5kZXJseWluZ190eXBlLgoKMjAwMy0wNy0yOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTQ0NwoJKiBkZWNsLmMgKGFkZF9iaW5kaW5nKTogQWRkIGJ2YWwgbG9jYWwgdmFyaWFibGUuCgkocHVzaF9jbGFzc19sZXZlbF9iaW5kaW5nKTogTGlrZXdpc2UuIEFsbG93IGEgVVNJTkdfREVDTCB0byBiZQoJcHVzaGVkLgoJKiBkZWNsMi5jIChkb19jbGFzc191c2luZ19kZWNsKTogIFRoZSB0eXBlIG9mIGEgdXNpbmcgZGVjbCBpcwoJdW5rbm93bi4KCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9wb3N0Zml4X2V4cHJlc3Npb24pOiBSZWZhY3RvciB1bnF1YWxpZmllZC1pZAoJZnVuY3Rpb24gY2FsbCBsb29rdXAgY29kZS4KCSogcHQuYyAodHN1YnN0KTogQSBVU0lOR19ERUNMIHdpbGwgaGF2ZSB1bmtub3duIHR5cGUuCgkodHN1YnN0X2NvcHlfYW5kX2J1aWxkKTogQWxsb3cgYSB1c2luZyBkZWNsLgoJKHR5cGVfZGVwZW5kZW50X2V4cHJlc3Npb25fcCk6IEEgVVNJTkdfREVDTCB3aWxsIG1ha2UgaXQKCWRlcGVuZGVudC4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9tZW1iZXJfZGVjbGFyYXRpb24pOiBQdXNoIGEgZGVwZW5kZW50IHVzaW5nCglkZWNsYXJhdGlvbi4KCjIwMDMtMDctMjggIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzExNTMwCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfcG9zdGZpeF9leHByZXNzaW9uKTogRG8gbm90IGNhbGwgbWFya191c2VkLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2lkX2V4cHJlc3Npb24pOiBDYWxsIG1hcmtfdXNlZCBmb3IgYWxsCglkZWNsYXJhdGlvbnMuCgoyMDAzLTA3LTI4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTY2NwoJKiBjYWxsLmMgKHN0YW5kYXJkX2NvbnZlcnNpb24pOiBBbGxvdyBhbGwgaW50ZWdyYWwtPmVudW1lcmFsCgljb252ZXJzaW9ucywgYWZ0ZXIgbWFya2luZyB0aGVtIGFzIGJhZC4KCSogZGVjbC5jIChmaW5pc2hfZW51bSk6IE1ha2Ugc3VyZSB0aGF0IGFsbCBlbnVtZXJhdG9ycyBhcmUKCXByb3Blcmx5IGNvbnZlcnRlZCB0byB0aGUgdW5kZXJseWluZyB0eXBlLgoJKGJ1aWxkX2VudW1lcmF0b3IpOiBTZXQgREVDTF9DT05URVhUIGZvciBuYW1lc3BhY2Utc2NvcGUKCWVudW1lcmF0aW9uIHR5cGVzLgoJKiBwdC5jICh0c3Vic3RfY29weSk6IEFkanVzdCBoYW5kbGluZyBvZiBDT05TVF9ERUNMcyBhY2NvcmRpbmdseS4KCSh0c3Vic3RfZW51bSk6IFRpZHkuCgoJKiBNYWtlLWxhbmcuaW4gKHR5cGVjay5vKTogRGVwZW5kIG9uIGNvbnZlcnQuaC4KCShjbGFzcy5vKTogTGlrZXdpc2UuCgkocnR0aS5vKTogTGlrZXdpc2UuCgkqIGNhbGwuYzogSW5jbHVkZSBjb252ZXJ0LmguCgkoY29udmVydF9hcmdfdG9fZWxsaXBzaXMpOiBVc2UgY29udmVydF90b19yZWFsLgoJKiBjbGFzcy5jOiBJbmNsdWRlIGNvbnZlcnQuaC4KCShidWlsZF9iYXNlX3BhdGgpOiBVc2UgY29udmVydF90b19pbnRlZ2VyLgoJKiBydHRpLmM6IEluY2x1ZGUgY29udmVydC5oLgoJKGJ1aWxkX2hlYWRvZik6IFVzZSBjb252ZXJ0X3RvX2ludGVnZXIuCgkqIHR5cGVjay5jOiBJbmNsdWRlIGNvbnZlcnQuaC4KCShkZWNheV9jb252ZXJzaW9uKTogVXNlIGNvbnZlcnRfdG9faW50ZWdlci4KCShidWlsZF91bmFyeV9vcCk6IFVzZSBidWlsZF9ub3AuCgkoZ2V0X2RlbHRhX2RpZmZlcmVuY2UpOiBVc2UgY29udmVydF90b19pbnRlZ2VyLgoJKGJ1aWxkX3B0cm1lbWZ1bmMpOiBBdm9pZCB1bm5lY2Vzc2FyeSBjb252ZXJzaW9ucy4KCjIwMDMtMDctMjggIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIGRlY2wyLmMgKG1hcmtfbWVtYmVyX3BvaW50ZXJzKTogVmVyaWZ5IHRoYXQgbWVtYmVyIHBvaW50ZXIgcG9pbnRzIHRvCgl0aGUgZnVuY3Rpb24uCgoyMDAzLTA3LTI4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChiZWdpbl9jb21wb3VuZF9zdG10KTogTm8gc2NvcGUgYXJnIGlzIGEgYm9vbC4KCShmaW5pc2hfY29tcG91bmRfc3RtdCk6IFJlbW92ZSBubyBzY29wZSBhcmcuCgkqIGRlY2wuYyAocmVnaXN0ZXJfZHRvcl9mbik6IEFkanVzdCBiZWdpbl9jb21wb3VuZF9zdG10IGFuZAoJZW5kX2NvbXBvdW5kX3N0bXQgY2FsbHMuCgkoZXhwYW5kX3N0YXRpY19pbml0LCBiZWdpbl9kZXN0cnVjdG9yX2JvZHksIGJlZ2luX2Z1bmN0aW9uX2JvZHksCglmaW5pc2hfZnVuY3Rpb25fYm9keSk6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChzdGFydF9vYmplY3RzLCBmaW5pc2hfb2JqZWN0cywKCXN0YXJ0X3N0YXRpY19zdG9yYWdlX2R1cmF0aW9uX2Z1bmN0aW9uLAoJZmluaXNoX3N0YXRpY19zdG9yYWdlX2R1cmF0aW9uX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkqIGluaXQuYyAoYmVnaW5faW5pdF9zdG10cywgZmluaXNoX2luaXRfc3RtdHMsCgljb25zdHJ1Y3RfdmlydHVhbF9iYXNlLCBidWlsZF92ZWNfaW5pdCk6IExpa2V3aXNlLgoJKiBtZXRob2QuYyAoZG9fYnVpbGRfYXNzaWduX3JlZiwgc3ludGhlc2l6ZV9tZXRob2QpOiBMaWtld2lzZS4KCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9jb21wb3VuZF9zdGF0ZW1lbnQsCgljcF9wYXJzZXJfaW1wbGljaXRseV9zY29wZWRfc3RhdGVtZW50LAoJY3BfcGFyc2VyX2FscmVhZHlfc2NvcGVkX3N0YXRlbWVudCk6IExpa2V3aXNlLgoJKiBwdC5jICh0c3Vic3RfZXhwcik6IExpa2V3aXNlLgoJKiBzZW1hbnRpY3MuYyAoYmVnaW5fY29tcG91bmRfc3RtdCk6IE5vIHNjb3BlIGFyZyBpcyBhIGJvb2wuCgkoZmluaXNoX2NvbXBvdW5kX3N0bXQpOiBSZW1vdmUgbm8gc2NvcGUgYXJnLgoKCSogZXJyb3IuYyAoZHVtcF9leHByKSA8Q09NUE9VTkRfRVhQUiBjYXNlPjogQSBjb21wb3VuZCBleHByIGlzCglhbHdheXMgZHlhZGljLgoKMjAwMy0wNy0yNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoc3RhbmRhcmRfY29udmVyc2lvbik6IFR3ZWFrIGhhbmRsaW5nIG9mCglwb2ludGVyLXRvLW1lbWJlciB0eXBlcy4KCSogcHQuYyAodHN1YnN0KTogQ29ycmVjdGx5IHF1YWxpZnkgcG9pbnRlcnMtdG8tZGF0YSBtZW1iZXIgdHlwZXMuCgkqIHR5cGVjay5jIChjb21wX3B0cl90dHlwZXNfcmVhbCk6IENoZWNrIHF1YWxpZmllcnMgb24KCXBvaW50ZXItdG8tZGF0YSBtZW1iZXIgdHlwZXMuCgoyMDAzLTA3LTI3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl90eXBlX3BhcmFtZXRlcik6IFJlZm9ybWF0LgoJKGNwX3BhcnNlcl9wYXJhbWV0ZXJfZGVjbGFyYXRpb24pOiBEZXByZWNhdGUgZGVmYXVsdCBhcmdzIHdoZXJlCglub3QgYWxsb3dlZC4KCjIwMDMtMDctMjYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjZm5zLmg6IFJlYnVpbHQuCgoJKiBjcC10cmVlLmggKGJlZ2luX2luaXRfc3RtdHMsIGZpbmlzaF9pbml0X3N0bXRzKTogUmVtb3ZlLgoJKGJlZ2luX2dsb2JhbF9zdG10X2V4cHIsIGZpbmlzaF9nbG9iYWxfc3RtdF9leHByKTogUmVtb3ZlLgoJKiBpbml0LmMgKGJlZ2luX2luaXRfc3RtdHMpOiBNYWtlIHN0YXRpYy4gUmV0dXJuIGlzX2dsb2JhbAoJdmFsdWUuIEFsd2F5cyBjYWxsIGJlZ2luX3N0bXRfZXhwci4KCShmaW5pc2hfaW5pdF9zdG10cyk6IE1ha2Ugc3RhdGljLiBBZGQgaXNfZ2xvYmFsIHBhcm0uIEFsd2F5cwoJYnVpbGRpbmcgYSBzdG10IHRyZWUuCgkoYnVpbGRfYWdncl9pbml0KTogQWRqdXN0IGJlZ2luX2luaXRfc3RtdHMsIGZpbmlzaF9pbml0X3N0bXRzIGNhbGxzLgoJKGJ1aWxkX3ZlY19pbml0KTogTGlrZXdpc2UuIEFsd2F5cyBidWlsZGluZyBhIHN0bXQgdHJlZS4KCShleHBhbmRfZGVmYXVsdF9pbml0KTogQWx3YXlzIGJ1aWxkaW5nIGEgc3RtdCB0cmVlLgoJKGdldF90ZW1wX3JlZ3Zhcik6IExpa2V3aXNlLgoJKiBzZW1hbnRpY3MuYyAoYmVnaW5fZ2xvYmFsX3N0bXRfZXhwciwKCWZpbmlzaF9nbG9iYWxfc3RtdF9leHByKTogUmVtb3ZlLgoKMjAwMy0wNy0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoYnVpbGRfY29tcG91bmRfZXhwcik6IFRha2UgTEhTICYgUkhTIGFyZ3MuCgkoYnVpbGRfeF9jb21wb3VuZF9leHByX2Zyb21fbGlzdCk6IERlY2xhcmUuCgkqIHR5cGVjay5jIChidWlsZF94X2NvbXBvdW5kX2V4cHJfZnJvbV9saXN0KTogTmV3LgoJKGJ1aWxkX3hfY29tcG91bmRfZXhwcik6IEFkanVzdC4KCShidWlsZF9jb21wb3VuZF9leHByKTogUmVtb3ZlIHVucmVhY2hhYmxlIGNvZGUuIFRha2UgdHdvCglwYXJhbWV0ZXJzLCBhZGp1c3QuCgkqIGRlY2wuYyAoZ3Jva19yZWZlcmVuY2VfaW5pdCk6IFVzZQoJYnVpbGRfeF9jb21wb3VuZF9leHByX2Zyb21fbGlzdC4KCShleHBhbmRfc3RhdGljX2luaXQpOiBBZGp1c3QgYnVpbGRfY29tcG91bmRfZXhwciBjYWxsLgoJKGN4eF9tYXliZV9idWlsZF9jbGVhbnVwKTogTGlrZXdpc2UuCgkqIGluaXQuYyAocGVyZm9ybV9tZW1iZXJfaW5pdCk6IFVzZQoJYnVpbGRfeF9jb21wb3VuZF9leHByX2Zyb21fbGlzdC4KCShidWlsZF9uZXdfMSk6IExpa2V3aXNlLgoJKGJ1aWxkX3ZlY19kZWxldGUpOiBBZGp1c3QgYnVpbGRfY29tcG91bmRfZXhwciBjYWxscy4KCShidWlsZF92YmFzZV9kZWxldGUpOiBMaWtld2lzZS4KCSogdHlwZWNrMi5jIChzdG9yZV9pbml0X3ZhbHVlKTogVXNlCglidWlsZF94X2NvbXBvdW5kX2V4cHJfZnJvbV9saXN0LgoJKGJ1aWxkX2Z1bmN0aW9uYWxfY2FzdCk6IExpa2V3aXNlLgoKMjAwMy0wNy0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZW51bSB0c3Vic3RfZmxhZ3NfdCk6IEFkZCB0Zl91c2VyLgoJKiBkZWNsLmMgKG1ha2VfdHlwZW5hbWVfdHlwZSk6IFBhc3MgaXQuCgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IFVzZSBpdC4KCShyZXNvbHZlX3R5cGVuYW1lX3R5cGUpOiBQYXNzIGl0LgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX3RlbXBsYXRlX3R5cGUpOiBQYXNzIGl0LgoKMjAwMy0wNy0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTE2MTcKCSogY3AtdHJlZS5oIChxdWFsaWZpZWRfbmFtZV9sb29rdXBfZXJyb3IpOiBEZWNsYXJlLgoJKiBwdC5jICh0c3Vic3RfcXVhbGlmaWVkX2lkKTogVXNlIHF1YWxpZmllZF9uYW1lX2xvb2t1cF9lcnJvciBmb3IKCWVycm9ycy4KCSh0c3Vic3RfZXhwcikgPERFQ0xfU1RNVCBjYXNlPjogTGlrZXdpc2UuCgkodHN1YnN0X2NvcHlfYW5kX2J1aWxkKSA8Q09NUE9ORU5UX1JFRiBjYXNlPjogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChxdWFsaWZpZWRfbmFtZV9sb29rdXBfZXJyb3IpOiBOZXcsIGJyb2tlbiBvdXQgb2YgLi4uCgkoZmluaXNoX2lkX2V4cHJlc3Npb24pOiAuLi4gaGVyZS4gVXNlIGl0LgoKMjAwMy0wNy0yNSAgRmFsayBIdWVmZm5lciAgPGZhbGsuaHVlZmZuZXJAc3R1ZGVudC51bmktdHVlYmluZ2VuLmRlPgoKCSogY2Zucy5ncGVyZjogQWRkICclJScgZGVsaW1pdGVyIHRvIHBsYWNhdGUgZ3BlcmYgMy4wLgoKMjAwMy0wNy0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTE1OTYKCSogcHQuYyAobWF5YmVfZm9sZF9ub250eXBlX2FyZywgbWF5YmVfZm9sZF9ub250eXBlX2FyZ3MpOiBSZW1vdmUuCgkodHN1YnN0X3RlbXBsYXRlX2FyZyk6IE5ldy4KCSh0c3Vic3RfdGVtcGxhdGVfYXJnX3ZlY3Rvcik6IFJlbmFtZSB0byAuLi4KCSh0c3Vic3RfdGVtcGxhdGVfYXJncyk6IC4uLiB0aGlzLiBBY2NlcHQgYSBUUkVFX0xJU1QgZm9ybS4gVXNlCgl0c3Vic3RfdGVtcGxhdGVfYXJnLgoJKGNvZXJjZV90ZW1wbGF0ZV9wYXJtcyk6IFVzZSB0c3Vic3RfdGVtcGxhdGVfYXJnIGZvciBkZWZhdWx0Cgl2YWx1ZS4KCSh0c3Vic3RfdGVtcGxhdGVfcGFybXMpOiBMaWtld2lzZS4KCSh0c3Vic3RfYWdncl90eXBlKTogQWRqdXN0LgoJKHRzdWJzdF9kZWNsKTogTGlrZXdpc2UuCgkodHN1YnN0KTogVXNlIHRzdWJzdF90ZW1wbGF0ZV9hcmcgZm9yIGEgRE9NQUlOLiBBZGp1c3QuCgkodHN1YnN0X2NvcHkpIDxURU1QTEFURV9JRF9FWFBSIGNhc2U+OiBVc2UgdHN1YnN0X3RlbXBsYXRlX2FyZ3MuCgoyMDAzLTA3LTI1IEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogTWFrZS1sYW5nLmluIChjcC9lcnJvci5vKTogRGVwZW5kIG9uIERJQUdOT1NUSUNfSC4KCSogZXJyb3IuYzogVXNlIHRoZSBuZXcgcHJldHR5LXByaW50ZXIgZnJhbWV3b3JrLgoKMjAwMy0wNy0yNCAgUGVyIEJvdGhuZXIgIDxwYm90aG5lckBhcHBsZS5jb20+CgoJKiBkZWNsLmMgKHB1c2hkZWNsX2NsYXNzX2xldmVsKTogRG9uJ3QgdXNlIHB1c2hfc3JjbG9jL3BvcF9zcmNsb2MKCXdoaWNoIGNhdXNlcyBlcnJvcnMgbWVzc2FnZXMgdG8gaW5jb3JyZWN0bHkgbWVudGlvbiBpbmNsdWRlZCBmaWxlcy4KCjIwMDMtMDctMjQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGNvbnZlcnRfdG9fYmFzZV9zdGF0aWNhbGx5KTogRGVjbGFyZS4KCSogY2FsbC5jIChidWlsZF9zcGVjaWFsX21lbWJlcl9jYWxsKTogQ29udmVydCBJTlNUQU5DRSB0byB0aGUgYmFzZQoJdHlwZS4KCSogY2xhc3MuYyAoY29udmVydF90b19iYXNlX3N0YXRpY2FsbHkpOiBOZXcgbWV0aG9kLgoJKiBpbml0LmMgKGNvbnN0cnVjdF92aXJ0dWFsX2Jhc2UpOiBVc2UgaXQuCgkqIG1ldGhvZC5jIChkb19idWlsZF9hc3NpZ25fcmVmKTogRml4IHR5cG8gaW4gY29tbWVudC4KCjIwMDMtMDctMjQgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZGVjbC5jOiBKdXN0IHNldCB0cnV0aHZhbHVlXyogdG8gYm9vbGVhbl8qLgoKMjAwMy0wNy0yNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAocmVzaGFwZV9pbml0KTogUmVtb3ZlIHVucmVhY2hhYmxlIGNvZGUuCgoyMDAzLTA3LTI0ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvMTE1MTMKCSogY3AtdHJlZS5oIChQUk9DRVNTSU5HX1JFQUxfVEVNUExBVEVfREVDTF9QKTogVXNlIGN1cnJlbnRfc2NvcGUuCgoyMDAzLTA3LTIzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTY0NQoJKiBjcC10cmVlLmggKGFjY2Vzc2libGVfYmFzZV9wKTogRGVjbGFyZS4KCSogY2FsbC5jIChidWlsZF9vdmVyX2NhbGwpOiBVc2UgaXQuCgkqIHNlYXJjaC5jIChhY2Nlc3NpYmxlX2Jhc2VfcCk6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20gLi4uCgkobG9va3VwX2Jhc2UpOiAuLi4gaGVyZS4KCglQUiBjKysvMTE1MTcKCSogY2FsbC5jIChidWlsZF9jb25kaXRpb25hbF9leHByKTogVXNlIHBlcmZvcm1faW1wbGljaXRfY29udmVyc2lvbgoJYW5kIGVycm9yX29wZXJhbmRfcC4gIFJvYnVzdGlmeS4KCSogdHlwZWNrLmMgKGJ1aWxkX3VuYXJ5X29wKTogVXNlIHBlcmZvcm1faW1wbGljaXRfY29udmVyc2lvbi4KCjIwMDMtMDctMjMgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEwOTUzCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfbmVzdGVkX25hbWVfc3BlY2lmaWVyKTogUmVzZXQgc2NvcGUgb24KCWZhaWx1cmUuCgkoY3BfcGFyc2VyX2VsYWJvcmF0ZWRfdHlwZV9zcGVjaWZpZXIpOiBMaWtld2lzZS4KCjIwMDMtMDctMjIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJRWxpbWluYXRlIHVzZSBvZiBQT0lOVEVSX1RZUEUgZm9yIHBvaW50ZXJzLXRvLW1lbWJlcnMuCgkqIGNhbGwuYyAoc3RhbmRhcmRfY29udmVyc2lvbik6IFJld29yayBwb2ludGVyLXRvLW1lbWJlciBoYW5kbGluZy4KCUFkZCBjb21tZW50cy4KCShhZGRfYnVpbHRpbl9jYW5kaWRhdGUpOiBMaWtld2lzZS4KCShyZXNvbHZlX3Njb3BlZF9mbl9uYW1lKTogUmVtb3ZlLgoJKGJ1aWxkX2NvbmRpdGlvbmFsX2V4cHIpOiBSZXdvcmsgcG9pbnRlci10by1tZW1iZXIgaGFuZGxpbmcuCgkoY29tcGFyZV9pY3MpOiBMaWtld2lzZS4KCSogY2xhc3MuYyAoY2hlY2tfZmllbGRfZGVjbHMpOiBVc2UgVFlQRV9QVFJfUC4KCSogY3AtbGFuZy5jIChjcF92YXJfbW9kX3R5cGVfcCk6IFJld29yayBwb2ludGVyLXRvLW1lbWJlcgoJaGFuZGxpbmcuCgkqIGNwLXRyZWUuaCAoU0NBTEFSX1RZUEVfUCk6IFVzZSBUWVBFX1BUUl9UT19NRU1CRVJfUC4KCShUWVBFX1BUUk1FTV9QKTogQWRkIGNvbW1lbnQuCgkoVFlQRV9QVFJfUCk6IFNpbXBsaWZ5LgoJKFRZUEVfUFRST0JfUCk6IENvcnJlY3QgZGVmaW5pdGlvbi4KCShUWVBFX1BUUl9UT19NRU1CRVJfUCk6IE5ldyBtYWNyby4KCShUWVBFX1BUUk1FTV9DTEFTU19UWVBFKTogQWRqdXN0LgoJKFRZUEVfUFRSTUVNX1BPSU5URURfVE9fVFlQRSk6IExpa2V3aXNlLgoJKHJlc29sdmVkX3Njb3BlZF9mbl9uYW1lKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKGJ1aWxkX29mZnNldF9yZWYpOiBDaGFuZ2UgcHJvdG90eXBlLgoJKHJlc29sdmVfb2Zmc2V0X3JlZik6IFJlbW92ZS4KCShjb21wX3RhcmdldF90eXBlcyk6IFJlbW92ZS4KCSogY3Z0LmMgKGNwX2NvbnZlcnRfdG9fcG9pbnRlcik6IFJld29yayBwb2ludGVyLXRvLW1lbWJlcgoJaGFuZGxpbmcuCgkoY29udmVydF90b19yZWZlcmVuY2UpOiBVc2UgY2FuX2NvbnZlcnQuCgkob2NwX2NvbnZlcnQpOiBJbXByb3ZlIGVycm9yIGhhbmRsaW5nLiAgUmV3b3JrIHBvaW50ZXItdG8tbWVtYmVyCgloYW5kbGluZy4KCShwZXJmb3JtX3F1YWxpZmljYXRpb25fY29udmVyc2lvbnMpOiBSZXdvcmsgcG9pbnRlci10by1tZW1iZXIKCWhhbmRsaW5nLgoJKiBkZWNsLmMgKGJ1aWxkX3B0cm1lbV90eXBlKTogSGFuZGxlIGZ1bmN0aW9ucyB0b28uCgkoY3JlYXRlX2FycmF5X3R5cGVfZm9yX2RlY2wpOiBSZW1vdmUgT0ZGU0VUX1RZUEUgZXJyb3IgbWVzc2FnZS4KCShncm9rZGVjbGFyYXRvcik6IFVzZSBPRkZTRVRfVFlQRSBmb3IgcG9pbnRlcnMgdG8gZGF0YSBtZW1iZXJzLgoJKGdyb2twYXJtcyk6IFJlbW92ZSBPRkZTRVRfVFlQRSBlcnJvciBtZXNzYWdlLgoJKiBkdW1wLmMgKGNwX2R1bXBfdHJlZSk6IFJld29yayBwb2ludGVyLXRvLW1lbWJlciBoYW5kbGluZy4KCSogZXJyb3IuYyAoZHVtcF90eXBlX3ByZWZpeCk6IExpa2V3aXNlLgoJKiBleHByLmMgKGNwbHVzX2V4cGFuZF9jb25zdGFudCk6IFVzZSBidWlsZF9ub3AuCgkqIGluaXQuYyAoYnVpbGRfb2Zmc2V0X3JlZik6IEFkZCBhZGRyZXNzX3AgcGFyYW1ldGVyLiAgRm9sZCBpbgoJbmVjZXNzYXJ5IGJpdHMgZnJvbSByZXNvbHZlX29mZnNldF9yZWYuCgkocmVzb2x2ZV9vZmZzZXRfcmVmKTogUmVtb3ZlLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3Bvc3RmaXhfZXhwcmVzc2lvbik6IFJlbW92ZSBzcGVjaWFsIGNhc2UKCWNvZGUgZm9yIE9GRlNFVF9UWVBFLgoJKiBwdC5jIChjb252ZXJ0X25vbnR5cGVfYXJndW1lbnQpOiBSZXdvcmsgcG9pbnRlci10by1tZW1iZXIKCWhhbmRsaW5nLgoJKGNvbnZlcnRfdGVtcGxhdGVfYXJndW1lbnQpOiBMaWtld2lzZS4KCSh1bmlmeSk6IExpa2V3aXNlLgoJKGludmFsaWRfbm9udHlwZV9wYXJtX3R5cGVfcCk6IExpa2V3aXNlLgoJKGRlcGVuZGVudF90eXBlX3Bfcik6IExpa2V3aXNlLgoJKiBydHRpLmMgKGdldF90aW5mb19kZWNsKTogUmVtb3ZlIE9GRlNFVF9UWVBFIHNwZWNpYWwgY2FzZS4KCSh0YXJnZXRfaW5jb21wbGV0ZV9wXyk6IFJld29yayBwb2ludGVyLXRvLW1lbWJlcgoJaGFuZGxpbmcuCgkoZ2V0X3BzZXVkb190aV9pbml0KTogTGlrZXdpc2UuCgkoZ2V0X3BzZXVkb190aV9kZXNjKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfcXVhbGlmaWVkX2lkX2V4cHIpOiBBZGp1c3QgY2FsbCB0bwoJYnVpbGRfb2Zmc2V0X3JlZi4gIFJlbW92ZSB1c2Ugb2YgcmVzb2x2ZV9vZmZzZXRfcmVmLgoJKiB0cmVlLmMgKHBvZF90eXBlX3ApOiBVc2UgVFlQRV9QVFJfVE9fTUVNQkVSX1AuCgkqIHR5cGVjay5jICh0YXJnZXRfdHlwZSk6IFVzZSBUWVBFX1BUUk1FTV9QLgoJKHR5cGVfdW5rbm93bl9wKTogUmVtb3ZlIG9ic29sZXRlIGNvZGUgYWJvdXQgdGhlIHRpbWUgYmVmb3JlCglub24tZGVwZW5kZW50IGV4cHJlc3Npb25zIHdlcmUgaGFuZGxlZCBjb3JyZWN0bHkuCgkocXVhbGlmeV90eXBlX3JlY3Vyc2l2ZSk6IFJlbW92ZS4KCShjb21wb3NpdGVfcG9pbnRlcl90eXBlX3IpOiBOZXcgZnVuY3Rpb24uCgkoY29tcG9zaXRlX3BvaW50ZXJfdHlwZSk6IFVzZSBpdC4KCShtZXJnZV90eXBlcyk6IFJlbW92ZSBkZWFkIGNvbW1lbnRzLgoJKGNvbXBfY3ZfdGFyZ2V0X3R5cGVzKTogUmVtb3ZlLgoJKGNvbXBfdGFyZ2V0X3R5cGVzKTogTGlrZXdpc2UuCgkoY29tcF90YXJnZXRfcGFybXMpOiBMaWtld2lzZS4KCShjeHhfc2l6ZW9mX29yX2FsaWdub2ZfdHlwZSk6IFJlbW92ZSBPRkZTRVRfVFlQRSBlcnJvci4KCShidWlsZF9pbmRpcmVjdF9yZWYpOiBVc2UgVFlQRV9QVFJfVE9fTUVNQkVSX1AuCgkoYnVpbGRfYmluYXJ5X29wKTogRG8gbm90IHVzZSBvZiBjb21wX3RhcmdldF90eXBlcy4KCShwb2ludGVyX2RpZmYpOiBSZW1vdmUgT0ZGU0VUX1RZUEUgY2FzZS4KCShidWlsZF91bmFyeV9vcCk6IEFkanVzdCBwb2ludGVyLXRvLW1lbWJlciBoYW5kbGluZy4KCSh1bmFyeV9jb21wbGV4X2x2YWx1ZSk6IExpa2V3aXNlLgoJKGNoZWNrX2Zvcl9jYXN0aW5nX2F3YXlfY29uc3RuZXNzKTogQWRkIGRlc2NyaXB0aW9uIHBhcmFtZXRlci4KCShidWlsZF9zdGF0aWNfY2FzdCk6IFBhc3MgaXQuCgkoYnVpbGRfcmVpbnRlcnByZXRfY2FzdCk6IFVzZSBjaGVja19mb3JfY2FzdGluZ19hd2F5X2NvbnN0bmVzcy4KCShidWlsZF9jb25zdF9jYXN0KTogQWRqdXN0IHBvaW50ZXItdG8tbWVtYmVyIGhhbmRsaW5nLgoJKGJ1aWxkX2NfY2FzdCk6IExpa2V3aXNlLgoJKGNvbnZlcnRfZm9yX2Fzc2lnbm1lbnQpOiBSZW1vdmUgT0ZGU0VUX1RZUEUgZXJyb3IgbWVzc2FnZS4KCShjb21wX3B0cl90dHlwZXNfcmVhbCk6IEFkanVzdCBwb2ludGVyLXRvLW1lbWJlciBoYW5kbGluZy4KCShjb21wX3B0cl90dHlwZXNfcmVpbnRlcnByZXQpOiBSZW1vdmUuCgkoY2FzdHNfYXdheV9jb25zdG5lc3Nfcik6IEFkanVzdCBwb2ludGVyLXRvLW1lbWJlciBoYW5kbGluZy4KCShjYXN0c19hd2F5X2NvbnN0bmVzcyk6IExpZWt3aXNlLgoJKHN0cmlwX2FsbF9wb2ludGVyX3F1YWxzKTogUmVtb3ZlLgoJKiB0eXBlY2syLmMgKGRpZ2VzdF9pbml0KTogQWRqdXN0IHBvaW50ZXItdG8tbWVtYmVyIGhhbmRsaW5nLgoJKGJ1aWxkX21fY29tcG9uZW50X3JlZik6IExpa2V3aXNlLgoKMjAwMy0wNy0yMiAgV29sZmdhbmcgQmFuZ2VydGggIDxiYW5nZXJ0aEBkZWFsaWkub3JnPgoKCSogbGV4LmMgKHVucXVhbGlmaWVkX2ZuX2xvb2t1cF9lcnJvcik6IE1lbnRpb24gdGhhdCB0aGUgZXJyb3IKCW1lc3NhZ2UgbmVlZHMgdG8gYmUga2VwdCBpbiBzeW5jaCB3aXRoIHRoZSBtYW51YWwuCgoyMDAzLTA3LTIyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTYxNAoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogQW4gYXJyYXkgbWVtYmVyIGlzIG9ubHkgYSBmbGV4aWJsZQoJYXJyYXkgbWVtYmVyIGlmIHRoZSBmaWVsZCBpdHNlbGYgaXMgdGhlIGFycmF5LgoKMjAwMy0wNy0yMiAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzEwNzkzCgkqIGRlY2wuYyAoeHJlZl9iYXNldHlwZXMpOiBIYW5kbGUgZXJyb3JfbWFya19ub2RlLgoKMjAwMy0wNy0yMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZW51bSBjcF9sdmFsdWVfa2luZCk6IEFkZCBjbGtfcGFja2VkLgoJKiB0cmVlLmMgKGx2YWx1ZV9wXzEpOiBTZXQgaXQuCgkqIGNsYXNzLmMgKGNoZWNrX2ZpZWxkKTogRG9uJ3QgYWxsb3cgbm9uLXBhY2tlZCBub24tUE9EIGZpZWxkcyB0bwoJYmUgcGFja2VkLgoJKiBjYWxsLmMgKHJlZmVyZW5jZV9iaW5kaW5nKTogTmVlZCBhIHRlbXBvcmFyeSBmb3IgYWxsIGJpdGZpZWxkCglhbmQgcGFja2VkIGZpZWxkcy4KCShjb252ZXJ0X2xpa2VfcmVhbCk6IENoZWNrIGl0IGlzIG9rIHRvIG1ha2UgYSB0ZW1wb3JhcnkgaGVyZS4KCjIwMDMtMDctMjEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGhhY2tfaWRlbnRpZmllcik6IFJlbW92ZS4KCSogbWV0aG9kLmMgKGhhY2tfaWRlbnRpZmllcik6IFJlbW92ZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9pZF9leHByZXNzaW9uKTogRXhwYW5kIGhhY2tfaWRlbnRpZmllcgoJaGVyZS4gU2ltcGxpZnkuCgoyMDAzLTA3LTE5ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBjYWxsLmMgY2xhc3MuYyBkZWNsLmMgZGVjbDIuYyBnKytzcGVjLmMgbGV4LmMgcGFyc2VyLmMgcHQuYyBydHRpLmMKCXNlbWFudGljcy5jIHR5cGVjay5jOiBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdHMuCgoyMDAzLTA3LTE4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChoYWNrX2lkZW50aWZpZXIpOiBSZW1vdmUuCgkqIG1ldGhvZC5jIChoYWNrX2lkZW50aWZpZXIpOiBSZW1vdmUuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfaWRfZXhwcmVzc2lvbik6IEV4cGFuZCBoYWNrX2lkZW50aWZpZXIKCWhlcmUuIFNpbXBsaWZ5LgoKMjAwMy0wNy0xOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZmluaXNoX25vbl9zdGF0aWNfZGF0YV9tZW1iZXIpOiBBZGQgb2JqZWN0IHBhcmFtLgoJKiBtZXRob2QuYyAoaGFja19pZGVudGlmaWVyKTogQWRqdXN0LgoJKiBwdC5jICh0c3Vic3RfY29weV9hbmRfYnVpbGQpIDxDT01QT05FTlRfUkVGIGNhc2U+OiBEb24ndCBzZWFyY2gKCWFnYWluIGZvciBhIEZJRUxEX0RFQ0wuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfbm9uX3N0YXRpY19kYXRhX21lbWJlcik6IEFkZCBvYmplY3QKCXBhcmFtZXRlci4gQWx3YXlzIHNhdmUgdGhlIERFQ0wgaW4gdGhlIENPTVBPTkVOVF9SRUYuCgkqIGNhbGwuYyAocmVzb2x2ZV9zY29wZWRfZm5fbmFtZSk6IEFkanVzdC4KCjIwMDMtMDctMTcgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwdC5jIChnZXRfYmluZGluZ3MpOiBNYWtlIGRlZmluaXRpb24gY29uc2lzdGVudCB3aXRoCglmb3J3YXJkIGRlY2xhcmF0aW9uLgoKMjAwMy0wNy0xNyAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzc4MDkKCSogZnJpZW5kLmMgKGFkZF9mcmllbmQpOiBDaGVjayBhY2Nlc3MgZm9yIG1lbWJlciBmdW5jdGlvbnMKCWFuZCB0ZW1wbGF0ZXMuCgoyMDAzLTA3LTE3ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldD4KCglQUiBjKysvMTA2NjgKCSogdHlwZWNrLmMgKGJ1aWxkX2NsYXNzX21lbWJlcl9hY2Nlc3NfZXhwcik6IEltcHJvdmUgZGlhZ25vc3RpYy4KCjIwMDMtMDctMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzExNTQ3CgkqIGNwLXRyZWUuaCAoREVDTF9JTklUSUFMSVpFRF9CWV9DT05TVEFOVF9FWFBSRVNTSU9OX1ApOiBOZXcKCW1hY3JvLgoJKERFQ0xfUFJFVFRZX0ZVTkNUSU9OX1ApOiBVc2UgVkFSX0RFQ0xfQ0hFQ0suCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogTWVyZ2UKCURFQ0xfSU5JVElBTElaRURfQllfQ09OU1RBTlRfRVhQUkVTU0lPTl9QLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3Bvc3RmaXhfZXhwcmVzc2lvbik6IEFkanVzdCBjYWxsIHRvCgljcF9wYXJzZXJfaW5pdGlhbGl6ZXJfbGlzdCBhbmQKCWNwX3BhcnNlcl9wYXJlbnRoZXNpemVkX2V4cHJlc3Npb25fbGlzdC4KCShjcF9wYXJzZXJfcGFyZW50aGVzaXplZF9leHByZXNzaW9uX2xpc3QpOiBBZGQgbm9uX2NvbnN0YW50X3AuCgkoY3BfcGFyc2VyX25ld19wbGFjZW1lbnQpOiBBZGp1c3QgY2FsbCB0bwoJY3BfcGFyc2VyX3BhcmVudGhlc2l6ZWRfZXhwcmVzc2lvbl9saXN0LgoJKGNwX3BhcnNlcl9kaXJlY3RfbmV3X2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfY29uZGl0aW9uYWxfZXhwcmVzc2lvbik6IFJlbW92ZS4KCShjcF9wYXJzZXJfY29uc3RhbnRfZXhwcmVzc2lvbik6IFBhcnNlIGFuIGFzc2lnbm1lbnQtZXhwcmVzc2lvbiwKCW5vdCBhIGNvbmRpdGlvbmFsLWV4cHJlc3Npb24uCgkoY3BfcGFyc2VyX3NpbXBsZV9kZWNsYXJhdGlvbik6IFJlc29sdmUgZXhwcmVzc2lvbi9kZWNsYXJhdGlvbgoJYW1iaWd1aXR5IG1vcmUgcXVpY2tseS4KCShjcF9wYXJzZXJfbWVtX2luaXRpYWxpemVyKTogQWRqdXN0IGNhbGwgdG8KCWNwX3BhcnNlcl9wYXJlbnRoZXNpemVkX2V4cHJlc3Npb25fbGlzdC4KCShjcF9wYXJzZXJfaW5pdF9kZWNsYXJhdG9yKTogS2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5vdCB0aGUKCWluaXRpYWxpemVyIGlzIGEgY29uc3RhbnQtZXhwcmVzc2lvbi4KCShjcF9wYXJzZXJfaW5pdGlhbGl6ZXIpOiBBZGQgbm9uX2NvbnN0YW50X3AgcGFyYW1ldGVyLgoJKGNwX3BhcnNlcl9pbml0aWFsaXplcl9jbGF1c2UpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfaW5pdGlhbGl6ZXJfbGlzdCk6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9hdHRyaWJ1dGVfbGlzdCk6IEFkanVzdCBjYWxsIHRvCgljcF9wYXJzZXJfcGFyZW50aGVzaXplZF9leHByZXNzaW9uX2xpc3QuCgkoY3BfcGFyc2VyX2Z1bmN0aW9uYWxfY2FzdCk6IExpa2V3aXNlLgoJKiBwdC5jICh0c3Vic3RfZGVjbCk6IENvcHkKCURFQ0xfSU5JVElBTElaRURfQllfQ09OU1RBTlRfRVhQUkVTU0lPTl9QLgoJKHRzdWJzdF9leHByKTogVHdlYWsgdXNlIG9mIERFQ0xfUFJFVFRZX0ZVTkNUSU9OX1AuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfaWRfZXhwcmVzc2lvbik6IFVzZQoJREVDTF9JTklUSUFMSVpFRF9CWV9DT05TVEFOVF9FWFBSRVNTSU9OX1AuCgoyMDAzLTA3LTE2ICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuY28udWs+CgoJKiBsYW5nLW9wdGlvbnMuaDogUmVtb3ZlLgoKMjAwMy0wNy0xNiAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgYy8xMDk2MgoJKiBjbGFzcy5jIChmaWVsZF9kZWNsX2NtcCk6IFJlbW92ZS4KCShyZXNvcnRfZmllbGRfZGVjbF9jbXApOiBSZW1vdmUuCgkocmVzb3J0X3NvcnRlZF9maWVsZHMpOiBSZW1vdmUuCgkoYWRkX2ZpZWxkc190b192ZWMpOiBSZW5hbWUgdG8gLi4uCgkoYWRkX2ZpZWxkc190b19yZWNvcmRfdHlwZSk6IHRoaXMuCgkoZmluaXNoX3N0cnVjdF8xKTogQ2hhbmdlIHRvIGJlIHVzaW5nCglzb3J0ZWRfZmllbGRzX3R5cGUncyBmaWVsZHMuCgkqIGNwLXRyZWUuaCAobGFuZ19kZWNsKTogSW4gbGFuZ19kZWNsX3UzCgljaGFuZ2Ugc29ydGVkX2ZpZWxkcyB0byBiZSBhIHBvaW50ZXIgdG8KCXNvcnRlZF9maWVsZHNfdHlwZS4KCShyZXNvcnRfc29ydGVkX2ZpZWxkcyk6IFJlbW92ZSBwcm90b3R5cGUuCgkqIHNlYXJjaC5jIChsb29rdXBfZmllbGRfMSk6IENoYW5nZSB0byBiZSB1c2luZwoJc29ydGVkX2ZpZWxkc190eXBlJ3MgZmllbGRzLgoKMjAwMy0wNy0xNiAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzU0MjEKCSogZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IEhhbmRsZSBURU1QTEFURV9JRF9FWFBSIGlmIGZyaWVuZAoJaXMgYSBtZW1iZXIgb2Ygb3RoZXIgY2xhc3MuCgkqIGZyaWVuZC5jIChkb19mcmllbmQpOiBEb24ndCBidWlsZCBURU1QTEFURV9ERUNMIGlmIGZyaWVuZAoJaXMgYSBzcGVjaWFsaXphdGlvbiBvZiBmdW5jdGlvbiB0ZW1wbGF0ZS4KCjIwMDMtMDctMTYgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCVBSIGMrKy8xMDkwMwoJKiBwdC5jIChjb252ZXJ0X25vbnR5cGVfYXJndW1lbnQpOiBGaXggdGhpbmtvIGluIGRpYWdub3N0aWMuCglJbXByb3ZlLgoKMjAwMy0wNy0xNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuZGVmIChMT09LVVBfRVhQUik6IFJlbW92ZS4KCSogY3AtdHJlZS5oIChjcF9pZF9raW5kKTogQWRkIENQX0lEX0tJTkRfVU5RVUFMSUZJRURfREVQRU5ERU5ULgoJKExPT0tVUF9FWFBSX0dMT0JBTCk6IFJlbW92ZS4KCShnZXRfYmluZGluZ3MpOiBSZW1vdmUuCgkoaXNfYWdncl90eXBlXzIpOiBSZW1vdmUuCgkqIGNhbGwuYyAocmVzb2x2ZWRfc2NvcGVkX2ZuX25hbWUpOiBSZW1vdmUgc3VwcG9ydCBmb3IKCUxPT0tVUF9FWFBSLgoJKiBkZWNsLmMgKGdyb2tmbmRlY2wpOiBMaWtld2lzZS4KCShncm9rZGVjbGFyYXRvcik6IExpa2V3aXNlLgoJKiBlcnJvci5jIChkdW1wX2RlY2wpOiBMaWtld2lzZS4KCShkdW1wX2V4cHIpOiBMaWtld2lzZS4KCSogZnJpZW5kLmMgKGRvX2ZyaWVuZCk6IExpa2V3aXNlLgoJKiBpbml0LmMgKGJ1aWxkX29mZnNldF9yZWYpOiBMaWtld2lzZS4KCSogbGV4LmMgKHVucXVhbGlmaWVkX2ZuX2xvb2t1cF9lcnJvcik6IFVzZSBwZWR3YXJuLiAgRG8gbm90IGNyZWF0ZQoJTE9PS1VQX0VYUFJzCgkqIG1hbmdsZS5jICh3cml0ZV9leHByZXNzaW9uKTogUmVtb3ZlIHN1cHBvcnQgZm9yIExPT0tVUF9FWFBSLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3Bvc3RmaXhfZXhwcmVzc2lvbik6IE1vZGlmeSBLb2VuaWcgbG9va3VwCgl0ZXN0LgoJKiBwdC5jIChnZXRfYmluZGluZ3MpOiBHaXZlIGl0IGludGVybmFsIGxpbmthZ2UuCgkoY2hlY2tfZXhwbGljaXRfc3BlY2lhbGl6YXRpb24pOiBSZW1vdmUgc3VwcG9ydCBmb3IgTE9PS1VQX0VYUFIuCgkobG9va3VwX3RlbXBsYXRlX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkoZm9yX2VhY2hfdGVtcGFsdGVfcGFybV9yKTogTGlrZXdpc2UuCgkodHN1YnN0X2RlY2wpOiBMaWtld2lzZS4KCSh0c3Vic3RfcXVhbGlmaWVkX2lkKTogSGFuZGxlIHRlbXBsYXRlIHRlbXBsYXRlIHBhcmFtZXRlcnMuCgkodHN1YnN0X2NvcHkpOiBSZW1vdmUgc3VwcG9ydCBmb3IgTE9PS1VQX0VYUFIuCgkodHN1YnN0X2NvcHlfYW5kX2J1aWxkKTogTGlrZXdpc2UuCgkobW9zdF9nZW5lcmFsX3RlbXBsYXRlKTogTGlrZXdpc2UuCgkodmFsdWVfZGVwZW5kZW50X2V4cHJlc3Npb25fcCk6IExpa2V3aXNlLgoJKHR5cGVfZGVwZW5kZW50X2V4cHJlc3Npb25fcCk6IE5vdGUgdGhhdCBJREVOVElGSUVSX05PREVzIGFyZQoJYWx3YXlzIGRlcGVuZGVudC4KCSogc2VtYW50aWNzLmMgKHBlcmZvcm1fa29lbmlnX2xvb2t1cCk6IERvIG5vdCBjcmVhdGUKCUlERU5USUZJRVJfTk9ERXMuCgkoZmluaXNoX2ZuYW1lKTogTGlrZXdpc2UuCgkoZmluaXNoX2lkX2V4cHJlc3Npb24pOiBMaWtld2lzZS4KCSogdHJlZS5jIChpc19hZ2dyX3R5cGVfMik6IFJlbW92ZS4KCjIwMDMtMDctMTYgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCVBSIGMrKy8xMTUzMQoJKiB0eXBlY2suYyAoY2hlY2tfcmV0dXJuX2V4cHIpOiBGaXggdGhpbmtvIGluIGRpYWdub3N0aWMuCgoyMDAzLTA3LTE1ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvMTAxMDgKCSogcHQuYyAodHN1YnN0X2RlY2wpIDxURU1QTEFURV9ERUNMPjogQWRkIGEgY2hlY2sgZm9yCgllcnJvcl9tYXJrX25vZGUuCgoyMDAzLTA3LTE0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTUwOQoJKiBwdC5jIChkZXBlbmRlbnRfc2NvcGVfcmVmX3ApOiBOZXcgZnVuY3Rpb24uCgkodmFsdWVfZGVwZW5kZW50X2V4cHJlc3Npb25fcCk6IFVzZSBpdC4KCSh0eXBlX2RlcGVuZGVudF9leHByZXNzaW9uX3ApOiBMaWtld2lzZS4KCgkqIHB0LmMgKHRzdWJzdF9mcmllbmRfZnVuY3Rpb24pOiBVc2UgcmVyZWdpc3Rlcl9zcGVjaWFsaXphdGlvbi4KCglQUiBjKysvNzAxOQoJKiBjcC10cmVlLmggKGxvb2t1cF9xdWFsaWZpZWRfbmFtZSk6IEFkanVzdCBwcm90b3R5cGUuCgkqIGRlY2wuYyAobG9va3VwX3F1YWxpZmllZF9uYW1lKTogQWRkIGNvbXBsYWluIHBhcmFtZXRlci4gIEFkanVzdAoJY2FsbCB0byBpc19hZ2dyX3R5cGUuCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfbG9va3VwX25hbWUpOiBBZGp1c3QgY2FsbCB0bwoJbG9va3VwX3F1YWxpZmllZF9uYW1lLgoJKiBwdC5jICh0c3Vic3RfcXVhbGlmaWVkX2lkKTogTGlrZXdpc2UuCgkodHN1YnN0X2NvcHlfYW5kX2J1aWxkKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfcXVhbGlmaWVkX2lkX2V4cHIpOiBEZWFsIHdpdGggZXJyb25lb3VzCglleHByZXNzaW9ucy4KCjIwMDMtMDctMTQgIEdhYnJpZWwgRG9zIFJlaXMgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJUFIgYysrLzExNTEwCgkqIGNhbGwuYyAob3BfZXJyb3IpOiBQcm9wZXJseSBmb3JtYXQgIFJFQUxQQVJUX0VYUFIgYW5kCglJTUFHUEFSVF9FWFBSLgoJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBMaWtld2lzZS4KCjIwMDMtMDctMTQgIEdhYnJpZWwgRG9zIFJlaXMgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBIYW5kbGUgRU1QVFlfQ0xBU1NfRVhQUi4KCjIwMDMtMDctMTQgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCVBSIGMrKy81MjkzCgkqIGNhbGwuYyAoaW5pdGlhbGl6ZV9yZWZlcmVuY2UpOiBJbXByb3ZlIGRpYWdub3N0aWMuCgoyMDAzLTA3LTE0ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvMTExNTQKCSogcHQuYyAobW9yZV9zcGVjaWFsaXplZF9jbGFzcyk6IEFkZCBmdWxsX2FyZ3MgcGFyYW1ldGVyLgoJKG1vc3Rfc3BlY2lhbGl6ZWRfY2xhc3MpOiBBZGp1c3QgY2FsbHMgdG8gbW9yZV9zcGVjaWFsaXplZF9jbGFzcy4KCSogY3AtdHJlZS5oIChtb3JlX3NwZWNpYWxpemVkX2NsYXNzKTogQWRqdXN0IGRlY2xhcmF0aW9uLgoKMjAwMy0wNy0xNCAgRGFuIE5pY29sYWVzY3UgIDxkYW5uQGljcy51Y2kuZWR1PgoKCSogbGV4LmMgKGVudW0gdHJlZV9ub2RlX2tpbmQpOiBEZWxldGUuCgoyMDAzLTA3LTEzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTUwMwoJKiBjcC10cmVlLmggKERFQ0xfU0VMRl9SRUZFUkVOQ0VfUCk6IE5ldyBtYWNyby4KCShTRVRfREVDTF9TRUxGX1JFRkVSRU5DRV9QKTogTGlrZXdpc2UuCgkqIGNsYXNzLmMgKGJ1aWxkX3NlbGZfcmVmZXJlbmNlKTogVXNlIFNFVF9ERUNMX1NFTEZfUkVGRVJFTkNFX1AuCgkqIHB0LmMgKHRzdWJzdF9kZWNsKTogQ29weSBpdC4KCSogc2VhcmNoLmMgKGxvb2t1cF9iYXNlKTogVXNlIERFQ0xfU0VMRl9SRUZFUkVOQ0VfUC4KCgkqIHB0LmMgKHJlcmVnaXN0ZXJfc3BlY2lhbGl6YXRpb24pOiBGaXggdGhpbmtvIGluIHByZXZpb3VzIGNoYW5nZS4KCgkqIGNwLXRyZWUuaCAoY3BfaWRfa2luZCk6IE5ldyB0eXBlLgoJKHVucXVhbGlmaWVkX25hbWVfbG9va3VwX2Vycm9yKTogQ2hhbmdlIHByb3RvdHlwZS4KCSh1bnF1YWxpZmllZF9mbl9sb29rdXBfZXJyb3IpOiBOZXcgZnVuY3Rpb24uCgkoZG9faWRlbnRpZmllcik6IFJlbW92ZS4KCShkb19zY29wZWRfaWQpOiBMaWtld2lzZS4KCSh0c3Vic3RfY29weV9hbmRfYnVpbGQpOiBDaGFuZ2UgcHJvdG90eXBlLgoJKHJlcmVnaXN0ZXJfc3BlY2lhbGl6YXRpb24pOiBOZXcgZnVuY3Rpb24uCgkocGVyZm9ybV9rb2VuaWdfbG9va3VwKTogTGlrZXdpc2UuCgkoZmluaXNoX2lkX2V4cHJlc3Npb24pOiBMaWtld2lzZS4KCSogY2FsbC5jIChidWlsZF9tZXRob2RfY2FsbCk6IEFkanVzdCBjYWxsIHRvCgl1bnF1YWxpZmllZF9uYW1lX2xvb2t1cF9lcnJvci4KCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBVc2UgcmVyZWdpc3Rlcl9zcGVjaWFsaXphdGlvbi4KCSogbGV4LmMgKGlzX2dsb2JhbCk6IFJlbW92ZS4KCSh1bnF1YWxpZmllZF9uYW1lX2xvb2t1cF9lcnJvcik6IFJldHVybiBhIHZhbHVlLgoJKGRvX2lkZW50aWZpZXIpOiBSZW1vdmUuCgkoZG9fc2NvcGVkX2lkKTogTGlrZXdpc2UuCgkoaWRlbnRpZmllcl90eXBlZGVjbF92YWx1ZSk6IFJlbW92ZS4KCSh1bnF1YWxpZmllZF9mbl9sb29rdXBfZXJyb3IpOiBOZXcgZnVuY3Rpb24uCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfaWRfa2luZCk6IFJlbW92ZS4KCShjcF9wYXJzZXJfbm9uX2NvbnN0YW50X2lkX2V4cHJlc3Npb24pOiBSZW1vdmUuCgkoY3BfcGFyc2VyX3ByaW1hcnlfZXhwcmVzc2lvbik6IFVzZSBmaW5pc2hfaWRfZXhwcmVzc2lvbi4KCShjcF9wYXJzZXJfY2xhc3Nfb3JfbmFtZXNwYWNlX25hbWUpOiBVc2UgY3BfaWRfa2luZCwgbm90CgljcF9wYXJzZXJfaWRfa2luZC4KCShjcF9wYXJzZXJfcG9zdGZpeF9leHByZXNzaW9uKTogVXNlIHBlcmZvcm1fa29lbmlnX2xvb2t1cC4KCShjcF9wYXJzZXJfdGVtcGxhdGVfYXJndW1lbnQpOiBVc2UgY3BfaWRfa2luZC4KCShjcF9wYXJzZXJfZm9sZF9ub25fZGVwZW5kZW50X2V4cHIpOiBBZGp1c3QgY2FsbCB0bwoJdHN1YnN0X2NvcHlfYW5kX2J1aWxkLgoJKiBwdC5jICh1bnJlZ2lzdGVyX3NwZWNpYWxpemF0aW9uKTogUmVuYW1lIHRvIC4uLgoJKHJlcmVnaXN0ZXJfc3BlY2lhbGl6YXRpb24pOiBUaGlzLgoJKHRzdWJzdF9mcmllbmRfZnVuY3Rpb24pOiBVc2UgaXQuCgkobWF5YmVfZm9sZF9ub250eXBlX2FyZyk6IEFkanVzdCBjYWxsIHRvIHRzdWJzdF9jb3B5X2FuZF9idWlsZC4KCSh0c3Vic3RfcXVhbGlmaWVkX2lkKTogTGlrZXdpc2UuCgkodHN1YnN0X2V4cHIpOiBMaWtld2lzZS4KCSh0c3Vic3RfY29weV9hbmRfYnVpbGQpOiBBZGQgZnVuY3Rpb25fcCBwYXJhbWV0ZXIuICBVc2UKCWZpbmlzaF9pZF9leHByZXNzaW9uLiAgSW50cm9kdWNlIFJFQ1VSIG1hY3JvLgoJKHRzdWJzdF9ub25fY2FsbF9wb3N0Zml4X2V4cHJlc3Npb24pOiBOZXcgZnVuY3Rpb24uCgkocmVnZW5lcmF0ZV9kZWNsX2Zyb21fdGVtcGxhdGUpOiBVc2UgcmVyZWdpc3Rlcl9zcGVjaWFsaXphdGlvbi4KCSogc2VtYW50aWNzLmMgKHBlcmZvcm1fa29lbmlnX2xvb2t1cCk6IE5ldyBmdW5jdGlvbi4KCShmaW5pc2hfaWRfZXhwcmVzc2lvbik6IExpa2V3aXNlLgoKMjAwMy0wNy0xMyAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwdC5jIChwdXNoX2FjY2Vzc19zY29wZV9yZWFsKTogUmVtb3ZlLgoJKHB1c2hfYWNjZXNzX3Njb3BlKTogTW92ZSBjb2RlIGZyb20gcHVzaF9hY2Nlc3Nfc2NvcGVfcmVhbC4KCShwb3BfYWNjZXNzX3Njb3BlKTogRG9uJ3QgY2hlY2sgZm9yIFRFTVBMQVRFX0RFQ0wuCgkoaW5zdGFudGlhdGVfdGVtcGxhdGUpOiBEZWZlciBhY2Nlc3MgY2hlY2tpbmcgZHVyaW5nIHRlbXBsYXRlCglzdWJzdGl0dXRpb24uCgkocmVnZW5lcmF0ZV9kZWNsX2Zyb21fdGVtcGxhdGUpOiBUaWR5LgoKMjAwMy0wNy0xMSAgTmF0aGFuYWVsIE5lcm9kZSAgPG5lcm9kZW5AZ2NjLmdudS5vcmc+CgoJUFIgYysrLzExNDM3CgkqIG9wZXJhdG9ycy5kZWY6IEFkZCBkZWZpbml0aW9ucyBmb3IgX19pbWFnX18sIF9fcmVhbF9fLgoKMjAwMy0wNy0xMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTEwNTAKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9leHByZXNzaW9uX2xpc3QpOiBSZW5hbWUgdG8gLi4uCgkoY3BfcGFyc2VyX3BhcmVudGhlc2l6ZWRfZXhwcmVzc2lvbl9saXN0KTogLi4uIGhlcmUuIEFkZCBhdHRyaWJ1dGUKCXBhcmFtZXRlciwgcGFyc2UgdGhlIHN1cm91bmRpbmcgcGFyZW50aGVzZXMuCgkoY3BfcGFyc2VyX3NraXBfdG9fY2xvc2luZ19wYXJlbnRoZXNpcyk6IEFkZCByZWNvdmVyIGFuZCBvcl9jb21tYQoJcGFyYW1ldGVycy4gUmV0dXJuIGludC4KCShjcF9wYXJzZXJfc2tpcF90b19jbG9zaW5nX3BhcmVudGhlc2lzIG9yIGNvbW1hKTogUmVtb3ZlLgoJKGNwX3BhcnNlcl9wb3N0Zml4X2V4cHJlc3Npb24pOiBBZGp1c3QgZnVuY3Rpb24gY2FsbCBwYXJzaW5nLgoJKGNwX3BhcnNlcl9uZXdfcGxhY2VtZW50KTogQWRqdXN0LgoJKGNwX3BhcnNlcl9uZXdfaW5pdGlhbGl6ZXIpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfY2FzdF9leHByZXNzaW9uKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX3NlbGVjdGlvbl9zdGF0ZW1lbnQpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfbWVtX2luaXRpYWxpemVyKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX2FzbV9kZWZpbml0aW9uKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX2luaXRfZGVjbGFyYXRvcik6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9kZWNsYXJhdG9yKTogTWFrZQoJY2R0b3Jfb3JfY29udl9wIGFuIGludCBwdHIuCgkoY3BfcGFyc2VyX2RpcmVjdF9kZWNsYXJhdG9yKTogTGlrZXdpc2UuIENoZWNrIGZvciBhIHBhcmFtZXRlcgoJbGlzdCBvbiBjZHRvcnMgJiBjb252IGZ1bmN0aW9ucy4KCShjcF9wYXJzZXJfaW5pdGlhbGl6ZXIpOiBBZGp1c3QuCgkoY3BfcGFyc2VyX21lbWJlcl9kZWNsYXJhdGlvbik6IEFkanVzdC4KCShjcF9wYXJzZXJfYXR0cmlidXRlX2xpc3QpOiBNb3ZlIGNvZGUgaW50bwoJY3BfcGFyc2VyX3BhcmVuc19leHByZXNzaW9uX2xpc3QuCgkoY3BfcGFyc2VyX2Z1bmN0aW9uYWxfY2FzdCk6IEFkanVzdC4KCSogcHQuYyAodHlwZV9kZXBlbmRlbnRfZXhwcmVzc2lvbl9wKTogRXJyb25lb3VzIGV4cHJlc3Npb25zIGFyZQoJbm9uLWRlcGVuZGVudC4KCjIwMDMtMDctMTEgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogZGVjbC5jIChjcF9maW5pc2hfZGVjbCk6IEhhbmRsZSAndXNlZCcgYXR0cmlidXRlLgoKCSogY3AtbGFuZy5jIChjX3Jlc2V0X3N0YXRlKTogTmV3IGR1bW15IHJvdXRpbmUuCgkqIGNwLXRyZWUuaCAoZmluaXNoX2ZpbGUpOiBNb3ZlIHByb3RvdHlwZSB0byBjLWNvbW1vbi5oLgoJKiBwYXJzZXIuYyAoY19wYXJzZV9maWxlKTogUmVuYW1lIGZyb20geXlwYXJzZTsgZG9uJ3QgY2FsbCBmaW5pc2hfZmlsZS4KCjIwMDMtMDctMTEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzgzMjcKCSogcHQuYyAodHN1YnN0X3F1YWxpZmllZF9pZCk6IEltcGxlbWVudCBzdWdnZXN0ZWQgcmVzb2x1dGlvbiBmb3IKCUNvcmUgSXNzdWUgMi4KCSh0eXBlX2RlcGVuZGVudF9leHByZXNzaW9uX3ApOiBMaWtld2lzZS4KCjIwMDMtMDctMTAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0eXBlY2suYyAoYnVpbGRfYmluYXJ5X29wKTogRG8gbm90IHdhcm4gYWJvdXQgc2lnbmVkCgl2cy4gdW5zaWduZWQgY29tcGFyaXNvbnMgaW4gdGhlIGJvZGllcyBvZiB0ZW1wbGF0ZXMuCgoJUFIgYysrLzk0MTEKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9wb3N0Zml4X2V4cHJlc3Npb24pOiBDaGVjayBkZXBlbmRlbmN5IG9mCglmdW5jdGlvbnMuCgoyMDAzLTA3LTA5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMDAzMgoJKiBkZWNsLmMgKGN4eF9pbml0X2RlY2xfcHJvY2Vzc2luZyk6IFdpdGggLXBlZGFudGljLCBwZWR3YXJucyBhcmUKCXN0aWxsIGVycm9ycy4KCglQUiBjKysvMTA1MjcKCSogZXJyb3IuYyAoZGVjbF90b19zdHJpbmcpOiBEbyBub3QgcHJpbnQgZGVmYXVsdCBhcmd1bWVudAoJZXhwcmVzc2lvbnMuCgoJKiBjcC10cmVlLmggKGJyZWFrX291dF9jYWxscyk6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCSogdHJlZS5jIChicmVha19vdXRfY2FsbHMpOiBSZW1vdmUuCgkqIHR5cGVjay5jIChidWlsZF9tb2RpZnlfZXhwcik6IEF2b2lkIGludmFsaWQgc2hhcmluZyBvZiB0cmVlcy4KCjIwMDMtMDctMDkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrIDk0ODMKCSogY2xhc3MuYyAoY2hlY2tfZmllbGRfZGVjbHMpOiBQYXNzIERFQ0xfTkFNRSB0byBjb25zdHJ1Y3Rvcl9uYW1lX3AuCgkqIGRlY2wyLmMgKGNvbnN0cnVjdG9yX25hbWVfcCk6IEF2b2lkIHJlcGVhdGVkIGNvbnN0cnVjdG9yX25hbWUKCWNhbGxzLgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogUmVmYWN0b3IgY3Rvci9kdG9yIGRldGVjdGlvbi4KCjIwMDMtMDctMDkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0eXBlY2suYyAoYnVpbGRfeF91bmFyeV9vcCk6IFRha2Ugbm90ZSBvZiB0aGUgZmFjdCB0aGF0CglQUkVJTkNSRU1FTlRfRVhQUiBhbmQgUE9TVElOQ1JFTUVOVF9FWFBSIGFyZSBiaW5hcnkgb3BlcmF0aW9ucyBvbgoJdHJlZXMuCgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3ByaW1hcnlfZXhwcmVzc2lvbik6IFByZXNlcnZlIHRoZSBmb3JtIG9mCglxdWFsaWZpZWQgZXhwcmVzc2lvbnMgaW4gdGVtcGxhdGVzLCBldmVuIGlmIHRoZXkgYXJlIG5vdAoJZGVwZW5kZW50LgoJKiBwdC5jIChjb252ZXJ0X25vbnR5cGVfYXJndW1lbnQpOiBIYW5kbGUgbm9uLWRlcGVuZGVudCBTQ09QRV9SRUZzLgoJKHRzdWJzdF9xdWFsaWZpZWRfaWQpOiBMaWtld2lzZS4KCSogc2VhcmNoLmMgKGFjY2Vzc2libGVfcCk6IFRyZWF0IGV2ZXJ5dGhpbmcgaW4gdGhlIGJvZHkgb2YgYQoJdGVtcGxhdGUgYXMgYWNjZXNzaWJsZS4KCjIwMDMtMDctMDggIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmRlZiAoTk9OX0RFUEVOREVOVF9FWFBSKTogTmV3IG5vZGUuCgkqIGNwLXRyZWUuaCAoYnVpbGRfY2FsbF9mcm9tX3RyZWUpOiBSZW1vdmUuCgkoYnVpbGRfbWVtYmVyX2NhbGwpOiBMaWtld2lzZS4KCShkZXBlbmRlbnRfdGVtcGxhdGVfYXJnX3ApOiBSZW1vdmUuCgkoYW55X2RlcGVuZGVudF90ZW1wbGF0ZV9hcmd1bWVudHNfcCk6IE5ldyBmdW5jdGlvbi4KCShkZXBlbmRlbnRfdGVtcGxhdGVfaWRfcCk6IExpa2V3aXNlLgoJKGFueV90eXBlX2RlcGVuZGVudF9hcmd1bWVudHNfcCk6IExpa2V3aXNlLgoJKGJ1aWxkX25vbl9kZXBlbmRlbnRfZXhwcik6IExpa2V3aXNlLgoJKGJ1aWxkX25vbl9kZXBlbmRlbnRfYXJncyk6IExpa2V3aXNlLgoJKGJ1aWxkX3hfY29tcG91bmRfZXhwcik6IEFkanVzdCBwcm90b3R5cGUuCgkqIGNhbGwuYyAoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogSGFuZGxlIG5vbi1kZXBlbmRlbnQgZXhwcmVzc2lvbnMKCWNvcnJlY3RseS4KCSogZGVjbDIuYyAoZ3Jva19hcnJheV9kZWNsKTogTGlrZXdpc2UuCgkoYnVpbGRfb2Zmc2V0X3JlZl9jYWxsX2Zyb21fdHJlZSk6IExpa2V3aXNlLgoJKGJ1aWxkX2NhbGxfZnJvbV90cmVlKTogUmVtb3ZlLgoJKiBlcnJvci5jIChkdW1wX2RlY2wpOiBIYW5kbGUgTk9OX0RFUEVOREVOVF9FWFBSLgoJKGR1bXBfZXhwcik6IExpa2V3aXNlLgoJKiBpbml0LmMgKGJ1aWxkX21lbWJlcl9jYWxsKTogUmVtb3ZlLgoJKiBtYW5nbGUuYyAod3JpdGVfZXhwcmVzc2lvbik6IFVwZGF0ZSBoYW5kbGluZyBmb3IgdGVtcGxhdGUtaWRzLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3ByaW1hcnlfZXhwcmVzc2lvbik6IFVzZQoJYW55X2RlcGVuZGVudF90ZW1wbGF0ZV9hcmd1bWVudHNfcC4gIFVwZGF0ZSBjb25zdGFudC1leHByZXNzaW9uCgloYW5kbGluZy4KCShjcF9wYXJzZXJfcG9zdGZpeF9leHByZXNzaW9uKTogVXNlCglhbnlfdHlwZV9kZXBlbmRlbnRfYXJndW1lbnRzX3AuICBTaW1wbGlmeSBjYWxsIHByb2Nlc3NpbmcuCgkoY3BfcGFyc2VyX3VuYXJ5X2V4cHJlc3Npb24pOiBTaW1wbGlmeS4KCShjcF9wYXJzZXJfZXhwcmVzc2lvbik6IEFkanVzdCBmb3IgY2hhbmdlcyB0bwoJYnVpbGRfeF9jb21wb3VuZF9leHByLgoJKGNwX3BhcnNlcl90ZW1wbGF0ZV9hcmd1bWVudCk6IEltcGxlbWVudCBzdGFuZGFyZC1jb25mb3JtaW5nCglwYXJzaW5nIG9mIG5vbi10eXBlIHRlbXBsYXRlIGFyZ3VtZW50cy4KCShjcF9wYXJzZXJfZGlyZWN0X2RlY2xhcmF0b3IpOiBVc2UKCWNwX3BhcnNlcl9mb2xkX25vbl9kZXBlbmRlbnRfZXhwci4KCShjcF9wYXJzZXJfZm9sZF9ub25fZGVwZW5kZW50X2V4cHIpOiBOZXcgZnVuY3Rpb24uCgkoY3BfcGFyc2VyX25leHRfdG9rZW5fZW5kc190ZW1wbGF0ZV9hcmd1bWVudF9wKTogTGlrZXdpc2UuCgkqIHB0LmMgKGNvbnZlcnRfdGVtcGxhdGVfYXJndW1lbnQpOiBEbyBub3QgY2FsbAoJbWF5YmVfZm9sZF9ub250eXBlX2FyZy4KCSh0c3Vic3RfYmFzZWxpbmspOiBMaWtld2lzZS4KCSh0c3Vic3RfY29weV9hbmRfYnVpbGQpOiBTaGFyZSBjb21tb24gY29kZS4gIE1ha2Ugc2l6ZW9mL2FsaWdub2YKCXByb2Nlc3Npbmcgd29yayBjb3JyZWN0bHkgZm9yIG5vbi1kZXBlbmRlbnQgZXhwcmVzc2lvbnMuICBBZGp1c3QKCWhhbmRsaW5nIG9mIENPTVBPVU5EX0VYUFIuICBTaW1wbGlmeSBjYWxsIHByb2Nlc3NpbmcuCgkodmFsdWVfZGVwZW5kZW50X2V4cHJlc3Npb25fcCk6IERlYWwgd2l0aCBmdW5jdGlvbmFsIGNhc3RzIGFuZAoJc2l6ZW9mL2FsaWdub2YgY29ycmVjdGx5LgoJKHR5cGVfZGVwZW5kZW50X2V4cHJlc3Npb25fcCk6IEhhbmRsZSBvdmVybG9hZGVkIGZ1bmN0aW9ucy4KCShhbnlfdHlwZV9kZXBlbmRlbnRfYXJndW1lbnRzX3ApOiBOZXcgZnVuY3Rpb24uCgkoYW55X2RlcGVuZGVudF90ZW1wbGF0ZV9hcmd1bWVudHNfcCk6IExpa2V3aXNlLgoJKGRlcGVuZGVudF90ZW1wbGF0ZV9wKTogVHJlYXQgU0NPUEVfUkVGcyBhcyBkZXBlbmRlbnQuCgkoZGVwZW5kZW50X3RlbXBsYXRlX2lkX3ApOiBTaW1wbGlmeS4KCShidWlsZF9ub25fZGVwZW5kZW50X2V4cHIpOiBOZXcgZnVuY3Rpb24uCgkoYnVpbGRfbm9uX2RlcGVuZGVudF9hcmdzKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfc3RtdF9leHByKTogRG9uJ3QgbWFrZSBkZXBlbmRlbnQKCXN0YXRlbWVudC1leHByZXNpb25zIGhhdmUgdm9pZCB0eXBlLgoJKGZpbmlzaF9jYWxsX2V4cHIpOiBIYW5kbGUgbm9uLWRlcGVuZGVudCBleHByZXNzaW9ucwoJY29ycmVjdGx5LgoJKiB0cmVlLmMgKGx2YWx1ZV9wXzEpOiBUcmVhdCBOT05fREVQRU5ERU5UX0VYUFJzIGFzIGx2YWx1ZXMuCgkqIHR5cGVjay5jIChjeHhfc2l6ZW9mX29yX2FsaWdub2ZfdHlwZSk6IEdpdmUgdGhlIGV4cHJlc3Npb24KCXR5cGUgc2l6ZV90LCBldmVuIGluIHRlbXBsYXRlcy4KCShleHByX3NpemVvZik6IExpa2V3aXNlLgoJKGZpbmlzaF9jbGFzc19tZW1iZXJfYWNjZXNzX2V4cHIpOiBIYW5kbGUgbm9uLWRlcGVuZGVudCBleHByZXNzaW9ucwoJY29ycmVjdGx5LgoJKGJ1aWxkX3hfaW5kaXJlY3RfcmVmKTogTGlrZXdpc2UuCgkoYnVpbGRfeF9iaW5hcnlfb3ApOiBMaWtld2lzZS4KCShidWlsZF94X3VuYXJ5X29wKTogTGlrZXdpc2UuCgkoYnVpbGRfeF9jb25kaXRpb25hbF9leHByKTogTGlrZXdpc2UuCgkoYnVpbGRfeF9jb21wb3VuZF9leHByKTogTGlrZXdpc2UuCgkqIHR5cGVjazIuYyAoYnVpbGRfeF9hcnJvdyk6IExpa2V3aXNlLgoKMjAwMy0wNy0wOSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogY3AtbGFuZy5jIChMQU5HX0hPT0tTX1RSRUVfSU5MSU5JTkdfRVNUSU1BVEVfTlVNX0lOU05TKTogTmV3LgoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IFVzZSBERUNMX0VTVElNQVRFRF9JTlNOUy4KCShzdGFydF9mdW5jdGlvbik6IFVzZSBERUNMX0VTVElNQVRFRF9JTlNOUy4KCSogb3B0aW1pemUuYyAobWF5YmVfY2xvbmVfYm9keSk6IFVzZSBERUNMX0VTVElNQVRFRF9JTlNOUy4KCgkqIGRlY2wyLmMgKG1heWJlX2VtaXRfdnRhYmxlcyk6IEZpeCBtYXJraW5nIHZ0YWJsZXMgYXMgbmVlZGVkIGluCgl1bml0LWF0LWEtdGltZQoKMjAwMy0wNy0wOCAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzExMDMwCgkqIHB0LmMgKGluc3RhbnRpYXRlX2NsYXNzX3RlbXBsYXRlKTogRG9uJ3QgY2FsbCB4cmVmX3RhZyB0bwoJaW5qZWN0IG5hbWUgd2hlbiB0aGUgZnJpZW5kIGNsYXNzIGlzIGEgc3BlY2lhbGl6YXRpb24uCgoyMDAzLTA3LTA3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChidWlsZF9zY29wZWRfbWV0aG9kX2NhbGwpOiBSZW1vdmUuCgkobG9va3VwX3F1YWxpZmllZF9uYW1lKTogUmVtb3ZlIHBhcmFtZXRlci4KCSh0c3Vic3RfY29weV9hbmRfYnVpbGQpOiBEZWNsYXJlLgoJKGZpbmlzaF9xdWFsaWZpZWRfb2JqZWN0X2NhbGxfZXhwcik6IFJlbW92ZS4KCShjaGVja19hY2Nlc3NpYmlsaXR5X29mX3F1YWxpZmllZF9pZCk6IE5ldyBmdW5jdGlvbi4KCShmaW5pc2hfcXVhbGlmaWVkX2lkX2V4cHIpOiBMaWtld2lzZS4KCShub25fcmVmZXJlbmNlKTogTGlrZXdpc2UuCgkoYnVpbGRfZXhwcl9mcm9tLXRyZWUpOiBSZW1vdmUuCgkqIGNhbGwuYyAobm9uX3JlZmVyZW5jZSk6IFJlbW92ZS4KCShidWlsZF9zY29wZWRfbWV0aG9kX2NhbGwpOiBMaWtld2lzZS4KCShidWlsZF9tZXRob2RfY2FsbCk6IFVzZSBlcnJvcl9vcGVyYW5kX3AuICBBc3NlcnQgdGhhdCB3ZSBhcmUgbm90Cglwcm9jZXNzaW5nIGEgdGVtcGxhdGUuCgkoc3RhbmRhcmRfY29udmVyc2lvbik6IFVzZSBub25fcmVmZXJlbmNlLgoJKiBjbGFzcy5jIChidWlsZF92dGJsX2VudHJ5X3JlZik6IExpa2V3aXNlLgoJKGJ1aWxkX3Z0YmxfcmVmXzEpOiBMaWtld2lzZS4KCSogY3Z0LmMgKGJ1aWxkX2V4cHJfdHlwZV9jb252ZXJzaW9uKTogVXNlIG5vbl9yZWZlcmVuY2UuCgkqIGRlY2wuYyAobG9va3VwX3F1YWxpZmllZF9uYW1lKTogUmVtb3ZlIGZsYWdzIHBhcmFtZXRlci4KCShncm9rX29wX3Byb3BlcnRpZXMpOiBVc2Ugbm9uX3JlZmVyZW5jZS4KCSogZGVjbDIuYyAoZ3Jva19hcnJheV9kZWNsKTogTGlrZXdpc2UuCgkoYnVpbGRfZXhwcl9mcm9tX3RyZWUpOiBSZW1vdmUuCgkoYnVpbGRfb2Zmc2V0X3JlZl9jYWxsX2Zyb21fdHJlZSk6IFVwZGF0ZSBjb21tZW50LgoJKiBlcnJvci5jIChwYXJtX3RvX3N0cmluZyk6IENhbGwgcmVpbml0X2dsb2JhbF9mb3JtYXR0aW5nX2J1ZmZlci4KCSogZXhjZXB0LmMgKHByZXBhcmVfZWhfdHlwZXMpOiBVc2Ugbm9uX3JlZmVyZW5jZS4KCShjYW5fY29udmVydF9laCk6IExpa2V3aXNlLgoJKiBpbml0LmMgKGJ1aWxkX2R0b3JfY2FsbCk6IEF2b2lkIHVzaW5nIGJ1aWxkX21ldGhvZF9jYWxsLgoJKiBtYW5nbGUuYyAod3JpdGVfdGVtcGxhdGVfcGFyYW0pOiBSZW1vdmUgbWlzbGVhZGluZyBjb21tZW50LgoJKiBtZXRob2QuYyAobG9jYXRlX2NvcHkpOiBVc2Ugbm9uX3JlZmVyZW5jZS4KCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9zY29wZV90aHJvdWdoX3doaWNoX2FjY2Vzc19vY2N1cnMpOiBSZW1vdmUuCgkoY3BfcGFyc2VyX3ByaW1hcnlfZXhwcmVzc2lvbik6IERvIG5vdCBjcmVhdGUgU0NPUEVfUkVGcyBpcwoJbm9uLWRlcGVuZGVudCBjb250ZXh0cy4KCShjcF9wYXJzZXJfcG9zdGZpeF9leHByZXNzaW9uKTogVXNlIGZpbmlzaF9xdWFsaWZpZWRfaWRfZXhwci4KCShjcF9wYXJzZXJfZGlyZWN0X2RlY2xhcmF0b3IpOiBVc2UgdHN1YnN0X2NvcHlfYW5kX2J1aWxkLCBub3QKCWJ1aWxkX2V4cHJfZnJvbV90cmVlLgoJKGNwX3BhcnNlcl9sb29rdXBfbmFtZSk6IEFkanVzdCBjYWxsIHRvIGxvb2t1cF9xdWFsaWZpZWRfbmFtZS4KCVVzZSBjaGVja19hY2Nlc3NpYmlsaXR5X29mX3F1YWxpZmllZF9pZC4KCSogcHQuYyAobWF5YmVfZm9sZF9ub250eXBlX2FyZyk6IFVzZSB0c3Vic3RfY29weV9hbmRfYnVpbGQsIG5vdAoJYnVpbGRfZXhwcl9mcm9tX3RyZWUuCgkodHN1YnN0X2Jhc2VsaW5rKTogTmV3IGZ1bmN0aW9uLgoJKHRzdWJzdF9xdWFsaWZpZWRfaWQpOiBMaWtld2lzZS4KCSh0c3Vic3RfY29weSk6IFVzZSB0aGVtLiAgUmVtb3ZlIHN1cHBvcnQgZm9yIE1FVEhPRF9DQUxMX0VYUFIuCgkodHN1YnN0X2V4cHIpOiBBZGp1c3QgY2FsbCB0byBsb29rdXBfcXVhbGlmaWVkX25hbWUuCgkodHN1YnN0X2NvcHlfYW5kX2J1aWxkKTogSGFuZGxlIFNDT1BFX1JFRnMgc3BlY2lhbGx5LiAgQWRqdXN0CgloYW5kbGluZyBvZiBDQUxMX0VYUFJzLgoJKHZhbHVlX2RlcGVuZGVudF9leHByZXNzaW9uX3ApOiBVc2UgSU5URUdSQUxfT1JfRU5VTUVSQVRJT05fVFlQRV9QLgoJKiBydHRpLmMgKGdldF90aW5mb19kZWNsX2R5bmFtaWMpOiBVc2Ugbm9uX3JlZmVyZW5jZS4KCSogc2VhcmNoLmMgKGNoZWNrX2ZpbmFsX292ZXJyaWRlcik6IExpa2V3aXNlLgoJKiBzZW1hbnRpY3MuYyAoY2hlY2tfYWNjZXNzaWJpbGl0eV9vZl9xdWFsaWZpZWRfaWQpOiBOZXcgZnVuY3Rpb24uCgkoZmluaXNoX3F1YWxpZmllZF9vYmplY3RfY2FsbF9leHByKTogUmVtb3ZlLgoJKiB0eXBlY2suYyAodGFyZ2V0X3R5cGUpOiBVc2Ugbm9uX3JlZmVyZW5jZS4KCShjeHhfc2l6ZW9mX29yX2FsaWdub2ZfdHlwZSk6IExpa2V3aXNlLgoJKGR1YmlvdXNfY29udmVyc2lvbl93YXJuaW5ncyk6IExpa2V3aXNlLgoJKGNvbnZlcnRfZm9yX2luaXRpYWxpemF0aW9uKTogTGlrZXdpc2UuCgkobm9uX3JlZmVyZW5jZSk6IE5ldyBmdW5jdGlvbi4KCjIwMDMtMDctMDcgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGRlY2wuYyAocHJpbnRfYmluZGluZ19sZXZlbCwgcHJpbnRfb3RoZXJfYmluZGluZ19zdGFjaywKCXByaW50X2JpbmRpbmdfc3RhY2spOiBNZXJnZSB1c2VzIG9mIEhPU1RfUFRSX1BSSU5URiB3aXRoIGFkamFjZW50CglzdGRpbyBjYWxscy4KCSogcHRyZWUuYyAoY3h4X3ByaW50X2RlY2wsIGN4eF9wcmludF9iaW5kaW5nKTogTGlrZXdpc2UuCgoyMDAzLTA3LTA3ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBmcmllbmQuYzogQ29udmVydCB0byBJU08gQzkwIHByb3RvdHlwZXMuCgoJKiBNYWtlLWxhbmcuaW4gKCQoc3JjZGlyKS9jcC9jZm5zLmgpOiBVc2UgQU5TSS1DIGFzIG91dHB1dAoJbGFuZ3VhZ2UuCgkqIGNmbnMuaDogUmVnZW5lcmF0ZS4KCgkqIHR5cGVjay5jOiBDb252ZXJ0IHJlbWFpbmluZyBwcm90b3R5cGVzIHRvIElTTyBDOTAuCgkqIHNlYXJjaC5jOiBMaWtld2lzZS4KCgkqIGRlY2wyLmMgKGJ1aWxkX2V4cHJfZnJvbV90cmVlKTogQ29udmVydCBwcm90b3R5cGUgdG8gSVNPIEM5MC4KCSogc2VtYW50aWNzLmMgKGV4cGFuZF9vcl9kZWZlcl9mbik6IExpa2V3aXNlCgkqIG1hbmdsZS5jIChkaXNjcmltaW5hdG9yX2Zvcl9zdHJpbmdfbGl0ZXJhbCk6IExpa2V3aXNlLgoJKiBnKytzcGVjLmMgKGxhbmdfc3BlY2lmaWNfZHJpdmVyKTogTGlrZXdpc2UuCgoJKiBzZWFyY2guYyAobG9va3VwX2Jhc2Vfcik6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgoyMDAzLTA3LTA3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogc2VtYW50aWNzLmM6IChnZW5ydGxfdHJ5X2Jsb2NrKSBBZGp1c3QgZW1pdF9saW5lX25vdGUKCWNhbGxzLgoKMjAwMy0wNy0wNyAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogc2VhcmNoLmMgKGxvb2t1cF9iYXNlX3IpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoKMjAwMy0wNy0wNiAgTWljaGFlbCBDaGFzdGFpbiAgPG1lY0BzaG91dC5uZXQ+CgoJUFIgZGVidWcvMTAwNTUKCSogbGV4LmMgKGN4eF9pbml0KTogQ2FsbCBwdXNoX3NyY2xvYyBhbmQgcG9wX3NyY2xvYyByYXRoZXIgdGhhbgoJYXNzaWduaW5nIHRvIGlucHV0X2ZpbGVuYW1lIGRpcmVjdGx5LgoKMjAwMy0wNy0wNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNhbGwuYzogRml4IGNvbW1lbnQgZm9ybWF0dGluZy4KCSogY2xhc3MuYzogTGlrZXdpc2UuCgkqIGNwLXRyZWUuaDogTGlrZXdpc2UuCgkqIGRlY2wuYzogTGlrZXdpc2UuCgkqIGRlY2wyLmM6IExpa2V3aXNlLgoJKiBlcnJvci5jOiBMaWtld2lzZS4KCSogbWV0aG9kLmM6IExpa2V3aXNlLgoJKiBuYW1lLWxvb2t1cC5jOiBMaWtld2lzZS4KCSogcGFyc2VyLmM6IExpa2V3aXNlLgoJKiBwdC5jOiBMaWtld2lzZS4KCSogcnR0aS5jOiBMaWtld2lzZS4KCSogc2VhcmNoLmM6IExpa2V3aXNlLgoJKiB0eXBlY2suYzogTGlrZXdpc2UuCgoyMDAzLTA3LTA2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTM0NQoJKiBzZWFyY2guYyAobG9va3VwX2Jhc2Vfcik6IFJlbW92ZSBpc19ub25fcHVibGljIGFuZAoJd2l0aGluX2N1cnJlbnRfc2NvcGUgcGFyYW1ldGVycy4gIFJlbW92ZSBvdGhlciBkZWFkIGNvZGUuCgkobG9va3VwX2Jhc2UpOiBBZGp1c3QgY2FsbCB0byBsb29rdXBfYmFzZV9yLgoJKGFkanVzdF9yZXN1bHRfb2ZfcXVhbGlmaWVkX25hbWVfbG9va3VwKTogSW1wcm92ZSBjb21tZW50LgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2NhbGxfZXhwcik6IFVzZSBtYXliZV9kdW1teV9vYmplY3QuCgoyMDAzLTA3LTA2ICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuY28udWs+CgoJKiBjcC1sYW5nLmMgKExBTkdfSE9PS1NfSEFORExFX0ZJTEVOQU1FLAoJTEFOR19IT09LU19NSVNTSU5HX0FSR1VNRU5UKTogT3ZlcnJpZGUuCgoyMDAzLTA3LTA1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTQzMQoJKiB0eXBlY2suYyAoYnVpbGRfc3RhdGljX2Nhc3QpOiBDaGVjayBmb3IgcmVmZXJlbmNlIGNvbnZlcnNpb25zCgllYXJsaWVyLgoKMjAwMy0wNy0wNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAocGVyZm9ybV9pbnRlZ3JhbF9wcm9tb3Rpb25zKTogRGVjbGFyZS4KCSogY2FsbC5jIChidWlsZF9hZGRyX2Z1bmMpOiBVc2UgZGVjYXlfY29udmVyc2lvbi4KCShjb252ZXJ0X2FyZ190b19lbGxpcHNpcyk6IExpa2V3aXNlLiAgUmVtb3ZlIG1pc2xlYWRpbmcgY29tbWVudC4KCShjb252ZXJ0X2Zvcl9hcmdfcGFzc2luZyk6IFVzZSBwZXJmb3JtX2ludGVncmFsX3Byb21vdGlvbnMuCgkqIGN2dC5jIChidWlsZF9leHByX3R5cGVfY29udmVyc2lvbik6IFVzZSBkZWNheV9jb252ZXJzaW9uLgoJKHR5cGVfcHJvbW90ZXNfdG8pOiBEbyBub3QgcmV0dXJuIGEgY3YtcXVhbGlmaWVkIHR5cGUuCgkqIGRlY2wuYyAoZ3Jva19yZWZlcmVuY2VfaW5pdCk6IEZpeCBmb3JtYXR0aW5nLgoJKGdldF9hdGV4aXRfbm9kZSk6IFVzZSBkZWNheV9jb252ZXJzaW9uLgoJKGJ1aWxkX2VudW1lcmF0b3IpOiBVc2UgcGVyZm9ybV9pbnRlZ3JhbF9wcm9tb3Rpb25zLgoJKiBpbml0LmMgKGJ1aWxkX3ZlY19pbml0KTogVXNlIGRlY2F5X2NvbnZlcnNpb24uCgkqIHNlbWFudGljcy5jIChmaW5pc2hfZXhwcl9zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX3N3aXRjaF9jb25kKTogVXNlIHBlcmZvcm1faW50ZWdyYWxfcHJvbW90aW9ucy4KCSogdHlwZWNrLmMgKGRlZmF1bHRfY29udmVyc2lvbik6IExpa2V3aXNlLgoJKHBlcmZvcm1faW50ZWdyYWxfcHJvbW90aW9ucyk6IE5ldyBmdW5jdGlvbi4KCShidWlsZF9pbmRpcmVjdF9yZWYpOiBVc2UgZGVjYXlfY29udmVyc2lvbi4KCShidWlsZF9hcnJheV9yZWYpOiBVc2UgcGVyZm9ybV9pbnRlZ3JhbF9wcm9tb3Rpb25zLgoJKGNvbnZlcnRfYXJndW1lbnRzKTogVXNlIGRlY2F5X2NvbnZlcnNpb24uCgkoYnVpbGRfdW5hcnlfb3ApOiBVc2UgcGVyZm9ybV9pbnRlZ3JhbF9wcm9tb3Rpb25zLgoJKGJ1aWxkX2NfY2FzdCk6IFVzZSBkZWNheV9jb252ZXJzaW9uLgoJKGJ1aWxkX21vZGlmeV9leHByKTogTGlrZXdpc2UuCgkoY29udmVydF9mb3JfaW5pdGlhbGl6YXRpb24pOiBMaWtld2lzZS4KCSogdHlwZWNrMi5jIChidWlsZF94X2Fycm93KTogTGlrZXdpc2UuCgoyMDAzLTA3LTA0ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY2FsbC5jOiBGaXggY29tbWVudCB0eXBvcy4KCSogY2xhc3MuYzogTGlrZXdpc2UuCgkqIGNwLXRyZWUuaDogTGlrZXdpc2UuCgkqIGN2dC5jOiBMaWtld2lzZS4KCSogZGVjbDIuYzogTGlrZXdpc2UuCgkqIGRlY2wuYzogTGlrZXdpc2UuCgkqIGluaXQuYzogTGlrZXdpc2UuCgkqIG1hbmdsZS5jOiBMaWtld2lzZS4KCSogcGFyc2VyLmM6IExpa2V3aXNlLgoJKiBwdC5jOiBMaWtld2lzZS4KCSogc2VhcmNoLmM6IExpa2V3aXNlLgoJKiBzZW1hbnRpY3MuYzogTGlrZXdpc2UuCgkqIHRyZWUuYzogTGlrZXdpc2UuCgkqIHR5cGVjay5jOiBMaWtld2lzZS4KCjIwMDMtMDctMDQgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwYXJzZXIuYyAoY3BfbGV4ZXJfcmVhZF90b2tlbik6IE5vIG5lZWQgdG8gaGFuZGxlIHN0cmluZwoJY29uc3RhbnQgY29uY2F0ZW5hdGlvbi4KCjIwMDMtMDctMDMgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGNwLXRyZWUuaCAoR0NDX0RJQUdfU1RZTEUsIEFUVFJJQlVURV9HQ0NfQ1hYRElBRyk6IERlZmluZS4KCShjcF9lcnJvcl9hdCwgY3Bfd2FybmluZ19hdCwgY3BfcGVkd2Fybl9hdCk6IE1hcmsgd2l0aAoJQVRUUklCVVRFX0dDQ19DWFhESUFHLgoKMjAwMy0wNy0wMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoYnVpbGRfYWRkcl9mdW5jKTogSGFuZGxlIGJvdW5kIHBvaW50ZXJzLXRvLW1lbWJlcnMuCgkoYnVpbGRfbWV0aG9kX2NhbGwpOiBEbyBub3QgY2FsbCByZXNvbHZlX29mZnNldF9yZWYuCgkoaW1wbGljaXRfY29udmVyc2lvbik6IExpa2V3aXNlLgoJKHJlc29sdmVfc2NvcGVkX2ZuX25hbWUpOiBVc2UgZmluaXNoX25vbl9zdGF0aWNfZGF0YV9tZW1iZXIsIG5vdAoJcmVzb2x2ZV9vZmZzZXRfcmVmLgoJKHJlc29sdmVfYXJncyk6IERvIG5vdCBjYWxsIHJlc29sdmVfb2Zmc2V0X3JlZi4KCShidWlsZF9jb25kaXRpb25hbF9leHByKTogTGlrZXdpc2UuCgkoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogTGlrZXdpc2UuCgkqIGNwLXRyZWUuZGVmIChPRkZTRVRfUkVGKTogVXBkYXRlIGRvY3VtZW50YXRpb24uCgkqIGN2dC5jIChjcF9jb252ZXJ0X3RvX3BvaW50ZXIpOiBVcGRhdGUgaGFuZGxpbmcgb2YgY29udmVyc2lvbnMgZnJvbQoJcG9pbnRlcnMgdG8gbWVtYmVycyB0byBwb2ludGVycy4KCShvY3BfY29udmVydCk6IERvIG5vdCBjYWxsIHJlc29sdmVfb2Zmc2V0X3JlZi4KCShjb252ZXJ0X3RvX3ZvaWQpOiBMaWtld2lzZS4KCShidWlsZF9leHByX3R5cGVfY29udmVyc2lvbik6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChkZWxldGVfc2FuaXR5KTogTGlrZXdpc2UuCgkqIGluaXQuYyAocmVzb2x2ZV9vZmZzZXRfcmVmKTogU2ltcGxpZnkgZ3JlYXRseS4KCShidWlsZF92ZWNfZGVsZXRlKTogRG8gbm90IGNhbGwgcmVzb2x2ZV9vZmZzZXRfcmVmLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3Bvc3RmaXhfZXhwcmVzc2lvbik6IENhbGwgcmVzb2x2ZV9vZmZzZXRfcmVmCglpZiBhcHByb3ByaWF0ZS4KCShjcF9wYXJzZXJfdW5hcnlfZXhwcmVzc2lvbik6IFVzZQoJY3BfcGFyc2VyX3NpbXBsZV9jYXN0X2V4cHJlc3Npb24uCgkoY3BfcGFyc2VyX2RlbGV0ZV9leHByZXNzaW9uKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX2Nhc3RfZXhwcmVzc2lvbik6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9wbV9leHByZXNzaW9uKTogVXNlIGNwX3BhcnNlcl9iaW5hcnlfb3AuCgkoY3BfcGFyc2VyX3NpbXBsZV9jYXN0X2V4cHJlc3Npb24pOiBOZXcgZnVuY3Rpb24uCgkqIHJ0dGkuYyAoYnVpbGRfZHluYW1pY19jYXN0XzEpOiBEbyBub3QgY2FsbCByZXNvbHZlX29mZnNldF9yZWYuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfaW5jcmVtZW50X2V4cHIpOiBMaWtld2lzZS4KCShmaW5pc2hfdHlwZW9mKTogTGlrZXdpc2UuCgkqIHRyZWUuYyAobHZhbHVlX3BfMSk6IERvIG5vdCBoYW5kbGUgT0ZGU0VUX1JFRi4KCSogdHlwZWNrLmMgKHJlcXVpcmVfY29tcGxldGVfdHlwZSk6IERvIG5vdCBoYW5kbGUgT0ZGU0VUX1JFRnMuCgkoZGVjYXlfY29udmVyc2lvbik6IERvIG5vdCBjYWxsIHJlc29sdmVfb2Zmc2V0X3JlZi4KCShmaW5pc2hfY2xhc3NfbWVtYmVyX2FjY2Vzc19leHByKTogTGlrZXdpc2UuCgkoY29udmVydF9hcmd1bWVudHMpOiBMaWtld2lzZS4KCShidWlsZF94X2JpbmFyeV9vcCk6IEhhbmRsZSBET1RTVEFSX0VYUFIuCgkoY29uZGl0aW9uX2NvbnZlcnNpb24pOiBEbyBub3QgY2FsbCByZXNvbHZlX29mZnNldF9yZWYuCgkodW5hcnlfY29tcGxleF9sdmFsdWUpOiBMaWtld2lzZS4KCShidWlsZF9zdGF0aWNfY2FzdCk6IExpa2V3aXNlLgoJKGJ1aWxkX3JlaW50ZXJwcmV0X2Nhc3QpOiBMaWtld2lzZS4KCShidWlsZF9jb25zdF9jYXN0KTogTGlrZXdpc2UuCgkoYnVpbGRfY19jYXN0KTogTGlrZXdpc2UuCgkoYnVpbGRfbW9kaWZ5X2V4cHIpOiBMaWtld2lzZS4KCShjb252ZXJ0X2Zvcl9hc3NpZ25tZW50KTogTGlrZXdpc2UuCgkoY29udmVydF9mb3JfaW5pdGlhbGl6YXRpb24pOiBMaWtld2lzZS4KCSogdHlwZWNrMi5jIChidWlsZF94X2Fycm93KTogTGlrZXdpc2UuCgkoYnVpbGRfbV9jb21wb25lbnRfcmVmKTogU2ltcGxpZnkuCgoJKiBjYWxsLmMgKGJ1aWxkX3Njb3BlZF9tZXRob2RfY2FsbCk6IFVzZSBjb252ZXJ0X3RvX3ZvaWQuCgkoYnVpbGRfbWV0aG9kX2NhbGwpOiBMaWtld2lzZS4KCSogY2xhc3MuYyAoY2hlY2tfZmllbGRfZGVjbHMpOiBSZW1vdmUgZGVhZCBjb2RlLgoJKiBjdnQuYyAoY29udmVydF9mcm9tX3JlZmVyZW5jZSk6IFJlbW92ZSBPRkZTRVRfVFlQRSBoYW5kbGluZy4KCSogZGVjbDIuYyAoZ3Jva19hcnJheV9kZWNsKTogUmVtb3ZlIGRlYWQgY29kZS4KCShhcmdfYXNzb2NfdHlwZSk6IEF2b2lkIHJlbHlpbmcgb24gUE9JTlRFUl9UWVBFIG92ZXIgT0ZGU0VUX1RZUEUKCWFzIHBvaW50ZXItdG8tbWVtYmVyIHJlcHJlc2VudGF0aW9uLgoJKiBpbml0LmMgKGJ1aWxkX29mZnNldF9yZWYpOiBUaWR5LgoJKGJ1aWxkX3ZlY19kZWxldGVfMSk6IFVzZSBjb252ZXJ0X3RvX3ZvaWQuCgkqIG1hbmdsZS5jICh3cml0ZV90eXBlKTogQXZvaWQgcmVseWluZyBvbiBQT0lOVEVSX1RZUEUgb3ZlciBPRkZTRVRfVFlQRQoJYXMgcG9pbnRlci10by1tZW1iZXIgcmVwcmVzZW50YXRpb24uCgoyMDAzLTA3LTAzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy85MTYyCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBSZXR1cm4gZnJpZW5kIGRlY2xzLCBub3QKCXZvaWRfdHlwZV9ub2RlLgoJKiBkZWNsMi5jIChncm9rZmllbGQpOiBBbHRlciBmcmllbmQgZGVjbCBjaGVjay4KCSogcGFyc2VyLmMgKHN0cnVjdCBjcF9wYXJzZXIpOiBEb2N1bWVudCBkZWZhdWx0X2FyZyBjaGFpbiBvbgoJdW5wYXJzZWRfZnVuY3Rpb25zX3F1ZXVlLgoJKGNwX3BhcnNlcl9zYXZlX2RlZmF1bHRfYXJncyk6IE5ldy4KCShjcF9wYXJzZXJfaW5pdF9kZWNsYXJhdG9yLCBjcF9wYXJzZXJfZnVuY3Rpb25fZGVmaW5pdGlvbiwKCWNwX3BhcnNlcl9tZW1iZXJfZGVjbGFyYXRpb24pOiBDYWxsIGl0LgoJKGNwX3BhcnNlcl9jbGFzc19zcGVjaWZpZXIpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLiBBbHRlcgoJcHJvY2Vzc2luZyBvZiB1bnBhcnNlZF9mdW5jdGlvbnNfcXVldWUuCgoyMDAzLTA3LTAzICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBjbGFzcy5jIChhZGRfbWV0aG9kLCBjaGVja19maWVsZF9kZWNsKTogRml4IGZvcm1hdCBzcGVjaWZpZXIuCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzLCBwdXNoZGVjbCwgY2hlY2tfZ290bywKCWZpeHVwX2Fub255bW91c19hZ2dyLCBtYXliZV9jb21tb25pemVfdmFyLCBncm9rZGVjbGFyYXRvciwKCXN0YXJ0X2VudW0pOiBMaWtld2lzZS4KCSogZGVjbDIuYyAoYW1iaWd1b3VzX2RlY2wpOiBMaWtld2lzZS4KCSogcHQuYyAocmVkZWNsYXJlX2NsYXNzX3RlbXBsYXRlKTogTGlrZXdpc2UuCgoyMDAzLTA3LTAyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMDIxOQoJKiBwdC5jICh0eXBlX3VuaWZpY2F0aW9uX3JlYWwpOiBEb24ndCB1bmlmeSBleHBycyBvZiBlcnJvciB0eXBlLgoJKiB0cmVlLmMgKGVycm9yX3R5cGUpOiBEb24ndCBkaWUgb24gZXJyb3JfdHlwZS4KCglQUiBjKysvOTc3OQoJKiBkZWNsMi5jIChhcmdfYXNzb2NfY2xhc3MpOiBEb24ndCBkaWUgb24gTlVMTCB0eXBlLgoJKiB0eXBlY2suYyAodHlwZV91bmtub3duX3ApOiBEb24ndCBkaWUgb24gdW50eXBlZCBleHByZXNzaW9ucy4KCjIwMDMtMDctMDEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzY5NDkKCSogZGVjbDIuYyAoZ3Jva2ZpZWxkKTogQ3JlYXRlIFRFTVBMQVRFX0RFQ0xzIGZvciBtZXRob2RzIGluIGxvY2FsCgljbGFzc2VzLgoKMjAwMy0wNy0wMSAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogZXJyb3IuYyAobG9jYXRlX2Vycm9yKTogJVAgdGFrZXMgYW4gYGludCcsIG5vdCBhIGB0cmVlJy4KCjIwMDMtMDctMDIgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIGRlY2wyLmMgKGRlZmVyX2ZuKTogU2V0IERFQ0xfREVGRVJfT1VUUFVULgoJKGZpbmlzaC1maWxlKTogRG8gbm90IHByb2Nlc3MgZnVuY3Rpb24gd2l0aCBERUNMX0RFRkVSX09VVFBVVCBjbGVhcjsKCWNsZWFyIERFQ0xfREVGRVJfT1VUUFVUIG9uY2UgZnVuY3Rpb24gaXMgcHJvY2Vzc2VkOyBhdm9pZCBmbGFncwoJbWFzc2FnaW5nLgoKCSogY3AtdHJlZS5oIChERUNMX05FRURFRF9QKTogU3VwcG9ydCB1bml0LWF0LWEtdGltZQoJKGV4cGFuZF9vcl9kZWZlcl9mbik6IERlY2xhcmUuCgkobG93ZXJfZnVuY3Rpb24pOiBEZWNsYXJlLgoJKiBkZWNsLmMgKHN0YXJ0X2NsZWFudXBfZm4pOiBVc2UgZXhwYW5kX29yX2RlZmVyX2ZuLgoJKiBkZWNsMi5jOiBJbmNsdWRlIGNncmFwaC5oIGFuZCB2YXJwb29sLmgKCShtYXliZV9lbWl0X3Z0YWJsZXMpOiAgTWFrZSBleHBsaWNpdCBpbnN0YW50YXRpb25zIGFzIG5lZWRlZC4KCShtYXJrX21lbWJlcl9wb2ludGVycywgbG93ZXJfZnVuY3Rpb24pOiBOZXcgZnVuY3Rpb25zLgoJKGZpbmlzaF9maWxlKTogRG8gdW5pdC1hdC1hLXRpbWUuCgkqIG1ldGhvZC5jIChzeW50aGVzaXplX21ldGhvZCk6IFVzZSBleHBhbmRfb3JfZGVmZXJfZm4uCgkqIG9wdGltaXplLmMgKG1heWJlX2Nsb25lX2JvZHkpOiBVc2UgZXhwYW5kX29yX2RlZmVyX2ZuLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2Z1bmN0aW9uX2RlZmluaXRpb25fYWZ0ZXJfZGVjbCk6IFVzZQoJZXhwYW5kX29yX2RlZmVyX2ZuLgoJKiBwdC5jIChpbnN0YW50aWF0ZV9kZWNsKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jOiBJbmNsdWRlIGNncmFwaC5oCgkoZXhwYW5kX29yX2RlZmVyX2ZuKTogQnJlYWsgb3V0IGZyb20gLi4uCgkoZXhwYW5kX2JvZHkpOiAuLi4gaGVyZTsgZGVhbCB3aXRoIHVuaXQtYXQtYS10aW1lLgoJKiBjcC1sYW5nLmMgKExBTkdfSE9PS1NfQ0FMTEdSQVBIX0VYUEFORF9GVU5DVElPTiwKCUxBTkdfSE9PS1NfQ0FMTEdSQVBIX0xPV0VSX0ZVTkNUSU9OKTogRGVmaW5lLgoKMjAwMy0wNy0wMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAocmVzb2x2ZV9zY29wZWRfZm5fbmFtZSk6IFJldHVybiBlcnJvcl9tYXJrX25vZGUgZm9yCgllcnJvbmVvdXMgY2FzZXMuCgoyMDAzLTA3LTAxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTE0OQoJKiBjYWxsLmMgKHJlc29sdmVfc2NvcGVkX2ZuX25hbWUpOiBDaGVjayB0aGF0IHRoZSBxdWFsaWZ5aW5nIHNjb3BlCglpcyBhIGNsYXNzIHR5cGUuCgoyMDAzLTA3LTAxICBHaW92YW5uaSBCYWpvICA8Z2lvdmFubmliYWpvQGxpYmVyby5pdD4KCglQUiBjKysvODA0NgoJKiBlcnJvci5jIChkdW1wX2RlY2wpOiBIYW5kbGUgQklUX05PVF9FWFBSIGFzCglwc2V1ZG8gZGVzdHJ1Y3RvciBjYWxscy4KCjIwMDMtMDctMDEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGRlZmluZV9sYWJlbCk6IFJlcGxhY2UgZmlsZW5hbWUgYW5kIGxpbmVubwoJYXJndW1lbnRzIHdpdGggYSBsb2NhdGlvbl90LgoJKiBkZWNsLmMgKHBvcF9sYWJlbCk6IEFkanVzdCBkZWZpbmVfbGFiZWwgY2FsbC4KCShkZWZpbmVfbGFiZWwpOiBSZXBsYWNlIGZpbGVuYW1lIGFuZCBsaW5lbm8gYXJndW1lbnRzIHdpdGggYQoJbG9jYXRpb25fdC4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9sYWJlbCk6IEFkanVzdCBkZWZpbmVfbGFiZWwgY2FsbC4KCjIwMDMtMDctMDEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk1NTkKCSogZGVjbDIuYyAoZ3Jva2ZpZWxkKTogRG8gbm90IGJ1aWxkIE5PUF9FWFBScyBhcm91bmQgdGhlCgllcnJvcl9tYXJrX25vZGUuCgoyMDAzLTA2LTMwICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuY28udWs+CgoJKiBNYWtlLWxhbmcuaW46IFVwZGF0ZS4KCSogY3AtbGFuZy5jIChjX2xhbmd1YWdlKTogRGVmaW5lLgoJKExBTkdfSE9PS1NfSU5JVF9PUFRJT05TKTogVXNlIGNvbW1vbiBob29rLgoJKiBjcC10cmVlLmggKGN4eF9pbml0X29wdGlvbnMpOiBSZW1vdmUuCgkqIGxleC5jOiBEb24ndCBpbmNsdWRlIGRpYWdub3N0aWMuaC4KCShjeHhfaW5pdF9vcHRpb25zKTogUmVtb3ZlLgoKMjAwMy0wNi0zMCAgR2lvdmFubmkgQmFqbyAgPGdpb3Zhbm5pYmFqb0BsaWJlcm8uaXQ+CgoJUFIgYysrLzQ5MzMKCSogZXJyb3IuYyAoZHVtcF9leHByKTogU3VwcG9ydCBjb3JyZWN0bHkgdGhlIENPTVBPVU5EX0VYUFIKCXRyZWUgZ2VuZXJhdGVkIHdpdGhpbiBhIHRlbXBsYXRlLiBVc2UgZHVtcF9leHByIHRvIGR1bXAgYW4KCWV4cHJlc3Npb24gc2l6ZW9mLgoKMjAwMy0wNi0zMCAgR2lvdmFubmkgQmFqbyAgPGdpb3Zhbm5pYmFqb0BsaWJlcm8uaXQ+CgoJKiBtYW5nbGUuYyAod3JpdGVfZXhwcmVzc2lvbik6IEV4aXQgZ3JhY2VmdWxseSB3aGVuIHRyeWluZyB0bwoJbWFuZ2xlIGEgQ0FMTF9FWFBSLgoKMjAwMy0wNi0zMCAgR2lvdmFubmkgQmFqbyAgPGdpb3Zhbm5pYmFqb0BsaWJlcm8uaXQ+CgoJUFIgYysrLzEwNzUwCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfcHJpbWFyeV9leHByZXNzaW9uKTogQSBWQVJfREVDTCB3aXRoIGEKCSh2YWx1ZS0gb3IgdHlwZS0pIGRlcGVuZGVudCBleHByZXNzaW9uIGFzIERFQ0xfSU5JVElBTCBpcyBhCgl2YWxpZCBjb25zdGFudC1leHByZXNzaW9uIChhdCBwYXJzZXIgdGltZSkuCgoyMDAzLTA2LTMwICBHaW92YW5uaSBCYWpvICA8Z2lvdmFubmliYWpvQGxpYmVyby5pdD4KCglQUiBjKysvMTExMDYKCSogZXJyb3IuYyAoZHVtcF9kZWNsKTogQ2FsbCBkdW1wX2RlY2wgdG8gZHVtcCB0aGUgREVDTF9OQU1FIGZvciBhCglVU0lOR19ERUNMLCBpbnN0ZWFkIG9mIHByaW50X3RyZWVfaWRlbnRpZmllci4KCjIwMDMtMDYtMjkgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogY3AtdHJlZS5oIChsYW5ndWFnZV90b19zdHJpbmcpOiBBZGp1c3QgZGVjbGFyYXRpb24uCgkqIGR1bXAuYyAoY3BfZHVtcF90cmVlKTogQWRqdXN0IHVzYWdlLgoJKiBlcnJvci5jIChkdW1wX2NoYXIpOiBVc2Ugb3V0cHV0X2Zvcm1hdHRlZF9zY2FsYXIuIFRpZHkuCgkocGFybV90b19zdHJpbmcpOiBMb3NlIHVudXNlZCBwYXJhbWV0ZXIuICBUaWR5LgoJKGV4cHJfdG9fc3RyaW5nKTogTGlrZXdpc2UuCgkoY29kZV90b19zdHJpbmcpOiBMaWtld2lzZS4KCShsYW5ndWFnZV90b19zdHJpbmcpOiBMaWtld2lzZS4KCShvcF90b19zdHJpbmcpOiBMaWtld2lzZS4KCShhc3NvcF90b19zdHJpbmcpOiBMaWtld2lzZS4KCShkaWdpdF9idWZmZXIpOiBSZW1vdmUuCgkoZHVtcF90eXBlKTogRm9ybWF0IGJ1aWx0aW4gdmVjdG9yIHR5cGUgYXMgX192ZWN0b3JfXy4KCjIwMDMtMDYtMjkgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogZXJyb3IuYyAocHJpbnRfaW50ZWdlcik6IFJlbW92ZS4KCShkdW1wX3R5cGVfc3VmZml4KTogQWRqdXN0LgoJKGR1bXBfZXhwcik6IExpa2V3aXNlLgoKMjAwMy0wNi0yOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmMgKHByaW50X2luc3RhbnRpYXRpb25fcGFydGlhbF9jb250ZXh0KTogVGFrZSBhCglsb2NhdGlvbl90LgoJKHByaW50X2luc3RhbnRpYXRpb25fZnVsbF9jb250ZXh0KTogQWRqdXN0LgoJKHByaW50X2luc3RhbnRpYXRpb25fY29udGV4dCk6IEFkanVzdC4KCgkqIGNwLXRyZWUuaCAoY3BfbGluZV9vZiwgY3BfZmlsZV9vZik6IFJlbW92ZS4KCSogZXJyb3IuYyAoY3BfbGluZV9vZiwgY3BfZmlsZV9vZik6IE1lcmdlIGludG8gLi4uCgkobG9jYXRpb25fb2YpOiAuLi4gaGVyZS4gTWFrZSBzdGF0aWMsIHJldHVybiBhIGxvY2F0aW9uX3QuCgkoY3BfZXJyb3JfYXQsIGNwX3dhcm5pbmdfYXQsIGNwX3BlZHdhcm5fYXQpOiBBZGp1c3QuCgoyMDAzLTA2LTI4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMDc4NAoJKiBjYWxsLmMgKGpvdXN0KTogTW92ZSB3YXJuX2NvbnZlcnNpb24gY2hlY2sgb3V0d2FyZHMuCgoyMDAzLTA2LTI3ICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChidWlsZF90eXBlbmFtZV90eXBlKQoJKiBtYW5nbGUuYyAod3JpdGVfdGVtcGxhdGVfdGVtcGxhdGVfYXJnKQoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3Njb3BlX3Rocm91Z2hfd2hpY2hfYWNjZXNzX29jY3VycykKCSogcHQuYyAocHVzaF9hY2Nlc3Nfc2NvcGVfcmVhbCwgcHVzaF9hY2Nlc3Nfc2NvcGUsIHBvcF9hY2Nlc3Nfc2NvcGUpCgkqIHJlcG8uYyAoZ2V0X2Jhc2VfZmlsZW5hbWUpCgkqIHNlbWFudGljcy5jIChtYXliZV9jb252ZXJ0X2NvbmQpOgoJTWFyayB0aGUgZGVmaW5pdGlvbiBzdGF0aWMsIG1hdGNoaW5nIHRoZSBmb3J3YXJkIGRlY2xhcmF0aW9uLgoKMjAwMy0wNi0yNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTA0NjgKCSogcHQuYyAodHN1YnN0KTogSGFuZGxlIHF1YWxpZmllZCBUWVBFT0ZfVFlQRXMgY29ycmVjdGx5LgoKMjAwMy0wNi0yNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTA3OTYKCSogZGVjbC5jIChmaW5pc2hfZW51bSk6IEltcGxlbWVudCBEUjM3Ny4KCgkqIGRlY2wuYyAoY3BfZmluaXNoX2RlY2wpOiBEb24ndCBtYWtlIHZhcmlhYmxlcyB3aXRoIHJlZmVyZW5jZQoJdHlwZSByZWFkb25seSB3aGlsZSB0aGV5IGFyZSBiZWluZyBpbml0aWFsaXplZC4KCjIwMDMtMDYtMjYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzExMzMyCgkqIHR5cGVjay5jIChidWlsZF9zdGF0aWNfY2FzdCk6IEF2b2lkIHJldHVybmluZyBleHByZXNzaW9ucyB3aXRoCglyZWZlcmVuY2UgdHlwZS4KCjIwMDMtMDYtMjYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGJ1aWxkX29wX2RlbGV0ZV9jYWxsKTogVXNlIHN0cmlwX2FycmF5X2NhbGwuIENvcnJlY3QKCWVycm9yIG1lc3NhZ2UgdG8gc2F5ICdkZWxldGUnIG9yICdkZWxldGVbXScuCgoyMDAzLTA2LTI2ICBHaW92YW5uaSBCYWpvICA8Z2lvdmFubmliYWpvQGxpYmVyby5pdD4KCglQUiBjKysvODI2NgoJKiBwdC5jIChjaGVja19leHBsaWNpdF9zcGVjaWFsaXphdGlvbik6IFdoZW4gbG9va2luZyB1cCBhCgl0ZW1wbGF0ZSBmdW5jdGlvbiBmcm9tIGFuIGlkZW50aWZpZXIgb3V0c2lkZSBjbGFzcy1zY29wZSwgYmluZAoJaXQgdG8gQ1BfREVDTF9DT05URVhULgoKMjAwMy0wNi0yNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTA5OTAKCSogc2VhcmNoLmMgKGxvb2t1cF9iYXNlX3IpOiBSZWx5IG9uIGFjY2Vzc2libGVfcCwgcmF0aGVyIHRoYW4KCXRyeWluZyB0byBlbXVsYXRlIHRoYXQgbG9naWMgaGVyZS4KCglQUiBjKysvMTA5MzEKCSogY2FsbC5jIChjb252ZXJ0X2xpa2UpOiBQYXNzIGlzc3VlX2NvbnZlcnNpb25fd2FybmluZ3MuCgkoY29udmVydF9saWtlX3dpdGhfY29udGV4dCk6IExpa2V3aXNlLgoJKGNvbnZlcnRfbGlrZV9yZWFsKTogQWRkIGlzc3VlX2NvbnZlcnNpb25fd2FybmluZ3MgcGFyYW1ldGVyLgoJKHBlcmZvcm1fZGlyZWN0X2luaXRpYWxpemF0aW9uX2lmX3Bvc3NpYmxlKTogTmV3IGZ1bmN0aW9uLgoJKiBjcC10cmVlLmggKHBlcmZvcm1fZGlyZWN0X2luaXRpYWxpemF0aW9uX2lmX3Bvc3NpYmxlKTogRGVjbGFyZSBpdC4KCSogdHlwZWNrLmMgKGNoZWNrX2Zvcl9jYXN0aW5nX2F3YXlfY29uc3RuZXNzKTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX3N0YXRpY19jYXN0KTogUmV3cml0ZS4KCjIwMDMtMDYtMjQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGVuZm9yY2VfYWNjZXNzKTogQXNzZXJ0IHdlIGdldCBhIGJpbmZvLgoJKGJ1aWxkX29wX2RlbGV0ZV9jYWxsKTogUGFzcyBhIGJpbmZvIHRvCglwZXJmb3JtX29yX2RlZmVyX2FjY2Vzc19jaGVjay4KCSogY2xhc3MuYyAoYWx0ZXJfYWNjZXNzKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAobWFrZV90eXBlbmFtZV90eXBlKTogTGlrZXdpc2UuCgkobWFrZV91bmJvdW5kX2NsYXNzX3RlbXBsYXRlKTogTGlrZXdpc2UuCgkqIGxleC5jIChkb19pZGVudGlmaWVyKTogTGlrZXdpc2UuCgkqIG1ldGhvZC5jIChoYWNrX2lkZW50aWZpZXIpOiBMaWtld2lzZS4KCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9sb29rdXBfbmFtZSk6IExpa2V3aXNlLgoJKiBzZWFyY2guYyAobG9va3VwX21lbWJlcik6IExpa2V3aXNlLiBNb3ZlIElERU5USUZJRVJfQ0xBU1NfVkFMVUUKCXRlc3QuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfbm9uX3N0YXRpY19kYXRhX21lbWJlcik6IExpa2V3aXNlLgoJKHBlcmZvcm1fb3JfZGVmZXJfYWNjZXNzX2NoZWNrKTogRXhwZWN0IGEgYmluZm8uCgkqIHR5cGVjay5jIChjb21wdHlwZXMpOiBFeHBlY3QgdHlwZXMuCgoJKiBtYW5nbGUuYyAoZmluZF9zdWJzdGl0dXRpb24pOiBEb24ndCBwYXNzIGEgbm9uLXR5cGUgdG8gc2FtZV90eXBlX3AKCSogZnJpZW5kLmMgKG1ha2VfZnJpZW5kX2NsYXNzKTogTGlrZXdpc2UuCgkqIHB0LmMgKGNoZWNrX2RlZmF1bHRfdG1wbF9hcmdzKTogTGlrZXdpc2UuCgkobG9va3VwX3RlbXBsYXRlX2NsYXNzKTogTGlrZXdpc2UuCgoyMDAzLTA2LTI0ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBtZXRob2QuYyAodGh1bmtfbGFiZWxubyk6IE1vdmUgb3V0c2lkZSBpZmRlZiBibG9jayB0byBtYWtlIGdhcmJhZ2UKCWNvbGxlY3RvciBoYXBweS4KCjIwMDMtMDYtMjQgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YWJsZSk6IE1ha2UgdnRhYmxlcy4KCSogY3AtdHJlZS5oIChERUNMX1ZUQUJMRV9PUl9WVFRfUCk6IE5ldyBtYWNyby4KCSogZGVjbDIuYyAob3V0cHV0X3Z0YWJsZV9pbmhlcml0KTogUmVuYW1lIHRvIC4uLgoJKHByZXBhcmVfYXNzZW1ibGVfdmFyaWFibGUpOiAuLi4gdGhpcyBvbmU7IGNoYW5nZSBpbnRlcmZhY2UuCgkobWF5YmVfZW1pdF92dGFibGVzKTogRG8gbm90IGNhbGwgb3V0cHV0X3Z0YWJsZV9pbmhlcml0LgoJKiBjcC1sYW5nLmMgKExBTkdfSE9PS1NfUFJFUEFSRV9BU1NFTUJMRV9WQVJJQUJMRSk6IERlZmluZS4KCSogY3AtdHJlZS5oIChwcmVwYXJlX2Fzc2VtYmxlX3ZhcmlhYmxlKTogTmV3LgoKMjAwMy0wNi0yMyAgQW5kcmV3IFBpbnNraSA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCgkqIG1ldGhvZC5jOiBhZGQgcHJvdG90eXBlIGZvciBtYWtlX2FsaWFzX2Zvcl90aHVuay4KCSh0aHVua19sYWJlbG5vLCBtYWtlX2FsaWFzX2Zvcl90aHVuayk6IG9ubHkgZGVmaW5lCglpZiBBU01fT1VUUFVUX0RFRiBpcyBkZWZpbmVkLgoKMjAwMy0wNi0yMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBtZXRob2QuYyAodGh1bmtfbGFiZWxubyk6IE5ldyB2YXJpYWJsZS4KCShtYWtlX2FsaWFzX2Zvcl90aHVuayk6IE5ldyBmdW5jdGlvbi4KCSh1c2VfdGh1bmspOiBVc2UgaXQgaWYgZGVmaW5lZCBBU01fT1VUUFVUX0RFRi4gIFB1dCB0aGUgdGh1bmsKCWludG8gdGhlIHNhbWUgc2VjdGlvbiBhcyB0aGUgZnVuY3Rpb24gaXQgaXMgY2FsbGluZy4KCUluY2x1ZGUgZ3QtY3AtbWV0aG9kLmguCgkqIE1ha2UtbGFuZy5pbiAoZ3QtY3AtbWV0aG9kLmgpOiBEZXBlbmQgb24gcy1ndHlwZS4KCShjcC9tZXRob2Qubyk6IERlcGVuZCBvbiBndC1jcC1tZXRob2QuaC4KCSogY29uZmlnLWxhbmcuaW4gKGd0ZmlsZXMpOiBBZGQgJChzcmNkaXIpL2NwL21ldGhvZC5jLgoKMjAwMy0wNi0yMyAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogZGVjbC5jIChyZWdpc3Rlcl9kdG9yX2ZuKTogTWFyayBjbGVhbnVwIGFzIHVzZWQuCgkqIGRlY2wyLmMgKG1hcmtfdnRhYmxlX2VudHJpZXMpOiBTa2lwIG5vcHMuCgkqIHJ0dGkuYyAoZ2V0X3RpbmZvX3B0cik6IE1hcmsgdGluZm8gYXMgdXNlZC4KCShidWlsZF9keW5hbWljX2Nhc3RfMSk6IExpa2V3aXNlLgoJKHRpbmZvX2Jhc2VfaW5pdCk6IExpa2V3aXNlLgoJKGVtaXRfdGluZm9fZGVjbCk6IExpa2V3aXNlLgoKMjAwMy0wNi0yMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBtYW5nbGUuYyAoaGFzaF90eXBlKTogVmFsIGlzIHRoZSBUUkVFX0xJU1QgaXRzZWxmLCBub3QgYSBwb2ludGVyCgl0byBpdC4KCjIwMDMtMDYtMjEgIEdhYnJpZWwgRG9zIFJlaXMgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJUFIgYysrLzEwNzg0CgkqIGNhbGwuYyAoam91c3QpOiBXYXJuIGFib3V0IGNob29zaW5nIGNvbnZlcnNpb24gc2VxdWVuY2Ugb25seSBpZgoJLVdjb252ZXJzaW9uLgoKMjAwMy0wNi0yMSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJUFIgYysrLzEwODY0CgkqIGNhbGwuYyAob3BfZXJyb3IpOiBUaWR5LgoJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBQcm9wZXJseSBmb3JtYXQgJ1QoKScgd2hlbiBUIGlzIGFuCglhZ2dyZWdhdGUgdHlwZS4KCjIwMDMtMDYtMjEgIEdhYnJpZWwgRG9zIFJlaXMgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJUFIgYysrLzEwOTE1CgkqIGRlY2wuYyAoZ3Jva19vcF9wcm9wZXJ0aWVzKTogV2FybiBwb3NzaWJsZSBjb25mdXNpbmcgY29udmVyc2lvbgoJb25seSBpZiAtV2NvbnZlcnNpb24uCgoyMDAzLTA2LTIwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMDc0OQoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2NsYXNzX2hlYWQpOiBTZWUgdGhyb3VnaCBkZXBlbmRlbnQgbmFtZXMKCXdoZW4gcGFyc2luZyBhIGNsYXNzLWhlYWQuCgoJUFIgYysrLzEwODQ1CgkqIHB0LmMgKHRyeV9jbGFzc191bmlmaWNhdGlvbik6IENvcnJlY3QgaGFuZGxpbmcgb2YgbWVtYmVyIGNsYXNzCgl0ZW1wbGF0ZXMuCgoyMDAzLTA2LTIwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogc2VtYW50aWNzLmMgKGdlbnJ0bF9maW5pc2hfZnVuY3Rpb24pOiBBZGp1c3QKCWV4cGFuZF9mdW5jdGlvbl9lbmQgY2FsbC4KCjIwMDMtMDYtMTkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEwOTM5CgkqIHB0LmMgKHRzdWJzdF9kZWNsKTogRG8gbm90IHRyeSB0byBzdWJzdGl0dXRlIGludG8gbm9uLWRlcGVuZGVudAoJZnVuY3Rpb25zLgoJKHZhbHVlX2RlcGVuZGVudF9leHByZXNzaW9uX3ApOiBDb3JyZWN0IGxvZ2ljIGZvciBGVU5DVElPTl9ERUNMcy4KCglQUiBjKysvOTY0OQoJKiBjcC10cmVlLmggKHB1c2hkZWNsX2NsYXNzX2xldmVsKTogQ2hhbmdlIHByb3RvdHlwZS4KCShwdXNoX2NsYXNzX2xldmVsX2JpbmRpbmcpOiBMaWtld2lzZS4KCSogZGVjbC5jIChhZGRfYmluZGluZyk6IFJlamVjdCBkdXBsaWNhdGUgc3RhdGljIGRhdGEgbWVtYmVycy4KCShwdXNoZGVjbF9jbGFzc19sZXZlbCk6IFJldHVybiBhIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBvciBub3QKCXRoZSBiaW5kaW5nIHdhcyB2YWxpZC4KCShwdXNoX2NsYXNzX2xldmVsX2JpbmRpbmcpOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9tZW1iZXJfZGVjbGFyYXRpb24pOiBEb24ndCBrZWVwIGludmFsaWQKCWRlY2xhcmF0aW9ucy4KCglQUiBjKysvMTEwNDEKCSogY2FsbC5jIChpbml0aWFsaXplX3JlZmVyZW5jZSk6IERvIG5vdCB1c2UgY3BfZmluaXNoX2RlY2wgdG8gZW1pdAoJdGVtcG9yYXJ5IHZhcmlhYmxlcy4KCSogY3AtdHJlZS5oIChzdGF0aWNfYWdncmVnYXRlcyk6IERlY2xhcmUuCgkocHVzaGRlY2xfdG9wX2xldmVsX2FuZF9maW5pc2gpOiBMaWtld2lzZS4KCSogZGVjbC5jIChwdXNoZGVjbF90b3BfbGV2ZWxfMSk6IE5ldyBmdW5jdGlvbi4KCShwdXNoZGVjbF90b3BfbGV2ZWwpOiBVc2UgaXQuCgkocHVzaGRlY2xfdG9wX2xldmVsX2FuZF9maW5pc2gpOiBOZXcgZnVuY3Rpb24uCgkoaW5pdGlhbGl6ZV9sb2NhbF92YXIpOiBSZW1vdmUgcmVkdW5kYW50IGNvZGUuCgkoY3BfZmluaXNoX2RlY2wpOiBSZW1vdmUgc3VwcG9ydCBmb3IgUkVTVUxUX0RFQ0xzLiAgRG9uJ3QgY2hlY2sKCWJ1aWxkaW5nX3N0bXRfdHJlZS4KCSogZGVjbC5oIChzdGF0aWNfYWdncmVnYXRlcyk6IFJlbW92ZS4KCSogZGVjbDIuYyAoZ2V0X2d1YXJkKTogVXNlIHB1c2hkZWNsX3RvcF9sZXZlbF9hbmRfZmluaXNoLgoJKiBydHRpLmMgKGdldF90aW5mb19kZWNsKTogVXNlIHB1c2hkZWNsX3RvcF9sZXZlbF9hbmRfZmluaXNoLgoJKHRpbmZvX2Jhc2VfaW5pdCk6IExpa2V3aXNlLgoKMjAwMy0wNi0xOSAgTWF0dCBBdXN0ZXJuICA8YXVzdGVybkBhcHBsZS5jb20+CgoJUFIgYysrLzExMjI4CgkqIGluaXQuYyAoYnVpbGRfemVyb19pbml0KTogQXNzZXJ0IHRoYXQgbnVtYmVyIG9mIGFycmF5IGVsZW1lbnRzCglpcyBhbiBpbnRlZ2VyIGNvbnN0YW50LgoJKGJ1aWxkX2RlZmF1bHRfaW5pdCkgRG9uJ3QgdXNlIGJ1aWxkX3plcm9faW5pdCBmb3IgYXJyYXlzIHdpdGgKCXZhcmlhYmxlIG51bWJlciBvZiBlbGVtZW50cy4KCjIwMDMtMDYtMTkgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGNwLXRyZWUuaDogUmVtb3ZlIGR1cGxpY2F0ZWQgZGVjbGFyYXRpb25zLgoKMjAwMy0wNi0xOCAgTmF0aGFuYWVsIE5lcm9kZSAgPG5lcm9kZW5AZ2NjLmdudS5vcmc+CgoJKiBwdC5jOiBDb252ZXJ0IHRvIElTTyBDLgoJKiBzZW1hbnRpY3MuYzogQ29udmVydCB0byBJU08gQy4KCjIwMDMtMDYtMTggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGNvbXBfZXhjZXB0X3NwZWNzLCBjb21wcGFybXMsIGNwX2hhc19tdXRhYmxlX3AsCglhdF9sZWFzdF9hc19xdWFsaWZpZWRfcCwgbW9yZV9xdWFsaWZpZWRfcCk6IFJldHVybiBib29sLgoJKiB0eXBlY2suYzogQU5TSUZZIGZ1bmN0aW9uIGRlZmluaXRpb25zLgoJKGNvbXBfYXJyYXlfdHlwZXMpOiBUYWtlIHJlZGVjbGFyYXRpb24gYm9vbCBwYXJhbWV0ZXIuCgkoY29tcHR5cGVzKTogUmVhcnJhbmdlIFNUUklDVCBoYW5kbGluZy4KCShhdF9sZWFzdF9hc19xdWFsaWZpZWRfcCwgbW9yZV9xdWFsaWZpZWRfcCwKCWNvbXBfY3ZfcXVhbGlmaWNhdGlvbik6IENhY2hlIGN2IHF1YWxzLgoJKGNvbXBwYXJtcyk6IFJlYXJyYW5nZSBsb29wLgoKMjAwMy0wNi0xOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoQ09NUEFSRV9SRUxBWEVEKTogUmVuYW1lIHRvIC4uLgoJKENPTVBBUkVfREVSSVZFRCk6IC4uLiBoZXJlLiBBZGp1c3QgY29tbWVudC4KCShyZXNvbHZlX3R5cGVuYW1lX3R5cGVfaW5fY3VycmVudF9pbnN0YW50aWF0aW9uKTogUmVtb3ZlLgoJKGNwX3RyZWVfZXF1YWwsIGNvbXB0eXBlcyk6IFJldHVybiBhIGJvb2wuCgkqIGN2dC5jIChjb252ZXJ0X3RvX3JlZmVyZW5jZSk6IEFkanVzdCBjb21wdHlwZXMgY2FsbC4KCSogcHQuYyAodGVtcGxhdGVfYXJnc19lcXVhbCwgdW5pZnksKTogQWRqdXN0IGNwX3RyZWVfZXF1YWwgY2FsbC4KCShyZXNvbHZlX3R5cGVuYW1lX3R5cGVfaW5fY3VycmVudF9pbnN0YW50aWF0aW9uKTogUmVtb3ZlLgoJKiB0cmVlLmMgKGNwX3RyZWVfZXF1YWwpOiBSZXR1cm4gYm9vbC4gQ29wZSB3aXRoIFRFTVBMQVRFX0RFQ0xzIGFuZAoJSURFTlRJRklFUl9OT0RFcy4gQWJvcnQgaWYgdW5kZWNpZGVyYWJsZS4gQWRqdXN0IHJlY3Vyc2l2ZQoJY2FsbHMuIFJlZmFjdG9yIGNvZGUuCgkqIHR5cGVjay5jIChjb21wX2FycmF5X3R5cGVzKTogUmV0dXJuIGJvb2wuIExvc2UgY2FsbGJhY2suCglwYXJhbWV0ZXIuIEFkanVzdCBjcF90cmVlX2VxdWFsIGNhbGxzLgoJKGNvbXB0eXBlcyk6IFJldHVybiBib29sLiBBZGp1c3Qgc3RyaWN0IGhhbmRsaW5nLiBSZW1vdmUgcmVsYXhlZAoJZW51bWVyYXRpb24gYW5kIGphdmEgdHlwZSBoYW5kbGluZy4gRGVhbCB3aXRoIHR5cGVuYW1lIHR5cGVzIGhlcmUuCglBZGp1c3QgcmVjdXJzaXZlIGFuZCBjcF90cmVlX2VxdWFscyBjYWxscy4gQWRqdXN0IGJhc2UgYW5kIGRlcml2ZWQKCWNoZWNraW5nLgoJKGNvbXBfdGFyZ2V0X3R5cGVzKTogUmVtb3ZlIHVucmVhY2hhYmxlIGNvZGUuIEFkanVzdAoJc2FtZV9vcl9iYXNlX3R5cGVfcCBjYWxscy4KCShwdHJfcmVhc29uYWJseV9zaW1pbGFyKTogQWRqdXN0IGJhc2UgYW5kIGRlcml2ZWQgY2hlY2suCgoJKiB0eXBlY2suYyAobWF5YmVfd2Fybl9hYm91dF9yZXR1cm5pbmdfYWRkcmVzc19vZl9sb2NhbCk6IFJlbW92ZQoJdW51c2VkIGNhbGN1bGF0aW9uLgoJKGNoZWNrX3JldHVybl9leHByKTogQWRqdXN0IGVycm9yIG1lc3NhZ2VzLgoJKiBjcC10cmVlLmRlZiAoU0NPUEVfUkVGKTogQ29ycmVjdCBjb21tZW50LgoKMjAwMy0wNi0xNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG1hbmdsZS5jIChtYW5nbGVfY29udl9vcF9uYW1lX2Zvcl90eXBlKTogQ29ycmVjdCBzcHJpbnRmIGZvcm1hdAoJc3RyaW5nIGFnYWluLgoKMjAwMy0wNi0xNyAgUm9iZXJ0IEFiZWxlcyAgPHJhYmVsZXNAYXJjaGFlbG9naWMuY29tPgoKCSogb3B0aW1pemUuYyAoZHVtcF9mdW5jdGlvbik6IEZvcm0gY29tcGxldGUgZmxhZyBuYW1lIGJ5CglwcmVmaXhpbmcgJ2ZkdW1wLScgdG8gc3RyaW5nIHJldHVybmVkIGJ5IGR1bXBfZmxhZ19uYW1lKCkuCgoyMDAzLTA2LTE3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogbWFuZ2xlLmMgKG1hbmdsZV9jb252X29wX25hbWVfZm9yX3R5cGUpOiBDb3JyZWN0IHNwcmludGYgZm9ybWF0CglzdHJpbmcuCgoyMDAzLTA2LTE3ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBjKysvMTA5MjkKCSogZGVjbC5jIChncm9rZm5kZWNsKTogRG9uJ3QgbWFyayBhIGZ1bmN0aW9uIGlubGluZSBmb3IKCS1maW5saW5lLWZ1bmN0aW9ucyBpZiBpdCBpc24ndCBkZWZpbmVkLgoKMjAwMy0wNi0xNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTA3MTIKCSogY2xhc3MuYyAoaGFuZGxlX3VzaW5nX2RlY2wpOiBSb2J1c3RpZnkuCgoJUFIgYysrLzExMTA1CgkqIGNwLXRyZWUuaCAoREVDTF9DT05WX0ZOX1RZUEUpOiBOZXcgbWV0aG9kLgoJKiBtYW5nbGUuYyAoc3RydWN0IGdsb2JhbHMpOiBSZW1vdmUgaW50ZXJuYWxfbWFuZ2xpbmdfcC4KCSh3cml0ZV91bnF1YWxpZmllZF9uYW1lKTogVXNlIERFQ0xfQ09OVl9GTl9UWVBFLgoJKHdyaXRlX3RlbXBsYXRlX3Bhcm0pOiBEb24ndCB3cml0ZSBvdXQgdGhlIGxldmVsIG51bWJlci4KCShjb252X3R5cGVfbmFtZXMpOiBOZXcgdmFyaWFibGUuCgkoaGFzaF90eXBlKTogTmV3IGZ1bmN0aW9uLgoJKGNvbXBhcmVfdHlwZSk6IExpa2V3aXNlLgoJKG1hbmdsZV9jb252X29wX25hbWVfZm9yX3R5cGUpOiBEb24ndCB0cnkgdG8gbWFuZ2xlIGNvbnZlcnNpb24KCW9wZXJhdG9yIG5hbWVzLgoJKiBzZWFyY2guYyAobG9va3VwX2NvbnZlcnNpb25fb3BlcmF0b3IpOiBOZXcgZnVuY3Rpb24uCgkobG9va3VwX2ZuZmllbGRzXzEpOiBVc2UgaXQuCgoyMDAzLTA2LTE3ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBleGNlcHQuYzogUmVtb3ZlIGR1cGxpY2F0ZSBkZWNsYXJhdGlvbiBvZiBwdXNoX2VoX2NsZWFudXAuCgoJKiBjYWxsLmM6IFJlbW92ZSBleHRyYSBkZWNsYXJhdGlvbiBvZiBpbmhpYml0X3dhcm5pbmdzLgoKMjAwMy0wNi0xNiAgTmF0aGFuYWVsIE5lcm9kZSAgPG5lcm9kZW5AZ2NjLmdudS5vcmc+CgoJMjAwMy0wNi0xNiAgSmVucy1NaWNoYWVsIEhvZmZtYW5uICA8amVuc21oQGdteC5kZT4KCSogbWFuZ2xlLmM6IENvbnZlcnQgdG8gSVNPIEMuCgoyMDAzLTA2LTE2ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBjcC9kZWNsLmMsIGNwL3B0LmMsIGNwL3NlYXJjaC5jLCBjcC90cmVlLmM6IERvbid0IHVzZSB0aGUgUFRSCgltYWNyby4KCjIwMDMtMDYtMTYgIE5hdGhhbmFlbCBOZXJvZGUgIDxuZXJvZGVuQGdjYy5nbnUub3JnPgoKCSogdHJlZS5jOiBDb252ZXJ0IHRvIElTTyBDLgoKMjAwMy0wNi0xNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNwLXRyZWUuaDogRm9sbG93IHNwZWxsaW5nIGNvbnZlbnRpb25zLgoJKiBtYW5nbGUuYzogTGlrZXdpc2UuCgkqIG1ldGhvZC5jOiBMaWtld2lzZS4KCSogcGFyc2VyLmM6IExpa2V3aXNlLgoKMjAwMy0wNi0xNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoc3RhcnRfZnVuY3Rpb24pOiBBZGp1c3QgaW5pdF9mdW5jdGlvbl9zdGFydCBjYWxsLgoJKiBtZXRob2QuYyAodXNlX3RodW5rKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChnZW5ydGxfc3RhcnRfZnVuY3Rpb24pOiBMaWtld2lzZS4KCjIwMDMtMDYtMTQgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5jby51az4KCgkqIE1ha2UtbGFuZy5pbjogUmVtb3ZlIGMtb3B0aW9ucy5vLgoKMjAwMy0wNi0xMyAgTmF0aGFuYWVsIE5lcm9kZSAgPG5lcm9kZW5AZ2NjLmdudS5vcmc+CgoJKiBsZXguYzogQ29udmVydCB0byBJU08gQy4KCgkyMDAzLTA1LTE5ICBKZW5zLU1pY2hhZWwgSG9mZm1hbm4gIDxqZW5zbWhAZ214LmRlPgoJKiBpbml0LmM6IHJlbW92ZXMgdXNlIG9mIFBBUkFNUyBtYWNyby4gIFVzZSBJU08gc3R5bGUgZnVuY3Rpb24KCWRlY2xhcmF0aW9ucy4gIChOb3QgY29weXJpZ2h0LXNpZ25pZmljYW50IGNoYW5nZS4pCgoJKiBydHRpLmM6IFJlbW92ZSBQQVJBTVMuCgoJKiB0eXBlY2syLmM6IENvbnZlcnQgdG8gSVNPIEMuCgoyMDAzLTA2LTEyICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMDYzNQoJKiB0eXBlY2suYyAoYnVpbGRfY19jYXN0KTogQ2hlY2sgdGhhdCB0aGUgZGVzdGluYXRpb24gdHlwZSBpcwoJY29tcGxldGUuCgoyMDAzLTA2LTExICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMDQzMgoJKiBjcC10cmVlLmggKGZpbmlzaF9kZWNsYXJhdG9yKTogUmVtb3ZlLgoJKiBkZWNsLmMgKGNwX2ZpbmlzaF9kZWNsKTogTWFrZSBzdXJlIHRvIHBvcF9uZXN0ZWRfY2xhc3MgZXZlbiBmb3IKCWVycm9uZW91cyBkZWNsYXJhdGlvbnMuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfZGVjbGFyYXRvcik6IFJlbW92ZS4KCjIwMDMtMDYtMTEgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogZGVjbDIuYyAoZ2VuZXJhdGVfY3Rvcl9vcl9kdG9yX2Z1bmN0aW9uKTogQXZvaWQgZXhwYW5kaW5nIGEKCWdsb2JhbCBzdGF0aWMgY29uc3RydWN0b3IvZGVzdHJ1Y3RvciBpZiBpdCB3aWxsIGJlIGVtcHR5LCBpLmUuCgllaXRoZXIgZG9lc24ndCBjYWxsIGFueSBjdG9ycy9kdG9ycyBvciBvbmx5IGNhbGxzIHB1cmUgb3IgY29uc3QKCWN0b3JzL2R0b3JzLgoKMjAwMy0wNi0xMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG1hbmdsZS5jICh0bV9wLmgpOiBJbmNsdWRlIGl0LgoJKiBNYWtlLWxhbmcuaW4gKGNwL21hbmdsZS5vKTogRGVwZW5kIG9uICQoVE1fUF9IKS4KCglQUiBjKysvMTExMzEKCSogdHJlZS5jIChjcF9jYW5ub3RfaW5saW5lX2ZuKTogQ2hlY2sgZm9yICJpbmxpbmUiIGJlZm9yZQoJaW5zdGFudGlhdGlvbi4KCjIwMDMtMDYtMTAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy8xMDk2OAoJKiBwdC5jIChtYXJrX2RlY2xfaW5zdGFudGlhdGVkKTogQ2xlYXIgREVDTF9DT01EQVQuCgoyMDAzLTA2LTEwICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCgkqIGRlY2wuYyAoc3RhcnRfY2xlYW51cF9mbik6IE1vdmUgc3RhdGljICdjb3VudGVyJyBvdXQsIG1hcmsgd2l0aCBHVFkuCgkoc3RhcnRfY2xlYW51cF9jbnQpOiBOZXcuCgoyMDAzLTA2LTEwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMTEzMQoJKiBjcC10cmVlLmggKHRlbXBsYXRlX2Zvcl9zdWJzdGl0dXRpb24pOiBEZWNsYXJlLgoJKiBkZWNsMi5jIChtYXJrX3VzZWQpOiBVc2UgaXQgd2hlbiBmaWd1cmluZyBvdXQgd2hldGhlciBvciBub3QgYQoJZnVuY3Rpb24gaXMgaW5saW5lLgoJKiBwdC5jICh0ZW1wbGF0ZV9mb3Jfc3Vic3RpdHV0aW9uKTogR2l2ZSBpdCBleHRlcm5hbCBsaW5rYWdlLgoJKiB0cmVlLmMgKGNwX2Nhbm5vdF9pbmxpbmVfdHJlZV9mbik6IEluc3RhbnRpYXRlIGFzIGVhcmx5IGFzCglwb3NzaWJsZS4KCjIwMDMtMDYtMDkgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgODg2MQoJKiBtYW5nbGUuYyAod3JpdGVfcmVhbF9jc3QpOiBOZXcgZnVuY3Rpb24uICBJbXBsZW1lbnQKCUFCSS1jb21wbGlhbnQgbWFuZ2xpbmcgb2YgZmxvYXRpbmctcG9pbnQgbGl0ZXJhbHMgd2hlbgoJLWZhYmktdmVyc2lvbj49MjsgcHJvdmlkZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggMy4zIHdoZW4KCS1mYWJpLXZlcnNpb249MSAod2l0aCB3YXJuaW5nKS4gIENsYXJpZnkgY29tbWVudGFyeS4KCSh3cml0ZV90ZW1wbGF0ZV9hcmdfbGl0ZXJhbCk6IFVzZSB3cml0ZV9yZWFsX2NzdC4KCjIwMDMtMDYtMDcgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGNwL2RlY2wuYyAoeHJlZl90YWcpOiBSZW1vdmUgdW5kZWZpbmVkIG1hY3JvIE5PTk5FU1RFRF9DTEFTU0VTLgoKMjAwMy0wNi0wNyAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmNvLnVrPgoKCSogY3AtbGFuZy5jIChMQU5HX0hPT0tTX0RFQ09ERV9PUFRPTik6IERyb3AuCgkoTEFOR19IT09LU19IQU5ETEVfT1BUSU9OKTogT3ZlcnJpZGUuCgkqIGNwLXRyZWUuaCAoY3h4X2luaXRfb3B0aW9ucyk6IFVwZGF0ZS4KCSogbGV4LmMgKGN4eF9pbml0X29wdGlvbnMpOiBVcGRhdGUuCgoyMDAzLTA2LTA1ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBNYWtlLWxhbmcuaW46ICBBZGQgc3VwcG9ydCBmb3Igc3RhZ2Vwcm9maWxlIGFuZCBzdGFnZWZlZWRiYWNrCgoyMDAzLTA2LTA0ICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBFcnJvcl9tYXJrX25vZGUgaW4sIGVycm9yX21hcmtfbm9kZSBvdXQuCgoyMDAzLTA2LTA0ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBnKytzcGVjLmMgKGxhbmdfc3BlY2lmaWNfZHJpdmVyKTogUmVtb3ZlIEFMVF9MSUJNIHVzYWdlLgoKMjAwMy0wNi0wMyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBjcC9jcC10cmVlLmggKENQX0FHR1JFR0FURV9UWVBFX1ApOiBBY2NlcHQgdmVjdG9ycy4KCgkqIGNwL2RlY2wuYyAocmVzaGFwZV9pbml0KTogSGFuZGxlIHZlY3RvcnMuCgoJKiB0ZXN0c3VpdGUvZysrLmRnL2luaXQvYXJyYXkxMC5DOiBOZXcuCgoyMDAzLTA2LTAzICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvMTA5NDAKCSogcHQuYyAoY2hlY2tfZXhwbGljaXRfc3BlY2lhbGl6YXRpb24pOiBDaGVjayBmb3IgJ3N0YXRpYycKCWVhcmxpZXIuCgoyMDAzLTA1LTMxICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIGNsYXNzLmMgKGR1bXBfYXJyYXkpOiBDYWxsIENPTlNUUlVDVE9SX0VMVFMgdG8gYWNjZXNzCgl0aGUgb3BlcmFuZCBvZiBhIENPTlNUUlVDVE9SIG5vZGUuCgoyMDAzLTA1LTMxICBHYWJyaWVsIERvcyBSZWlzIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogZGVjbC5jIChjcF9iaW5kaW5nX2xldmVsOjp0aGlzX2VudGl0eSk6IFJlbmFtZSBmcm9tIHRoaXNfY2xhc3MuCgkoY3h4X3Njb3BlX2Rlc2NyaXB0b3IpOiBOZXcgZnVuY3Rpb24uCgkoY3h4X3Njb3BlX2RlYnVnKTogTGlrZXdpc2UuCgkocHVzaF9iaW5kaW5nX2xldmVsKTogVXNlIGl0LgoJKHBvcF9iaW5kaW5nX2xldmVsKTogTGlrZXdpc2UuCgkoc3VzcGVuZF9iaW5kaW5nX2xldmVsKTogTGlrZXdpc2UuCgkocmVzdW1lX2JpbmRpbmdfbGV2ZWwpOiBMaWtld2lzZS4KCShwdXNobGV2ZWxfY2xhc3MpOiBBZGp1c3QgdXNlIG9mIHRoaXNfY2xhc3MuCgkocHVzaHRhZyk6IExpa2V3aXNlLgoJKGxvb2t1cF9uYW1lX3JlYWwpOiBMaWtld2lzZS4KCShnbG9iYWxfc2NvcGVfbmFtZSk6IE5ldyB2YXJpYWJsZS4KCShpbml0aWFsaXplX3ByZWRlZmluZWRfaWRlbnRpZmllcnMpOiBJbml0aWFsaXplIGl0LgoJKHB1c2hfbmFtZXNwYWNlKTogVXNlIGl0LgoJKG1ha2VfY3h4X3Njb3BlKTogTmV3IGZ1bmN0aW9uLgoJKHB1c2hsZXZlbCk6IFVzZSBpdC4KCShwdXNobGV2ZWxfY2xhc3MpOiBMaWtld2lzZS4KCShwdXNoX2JpbmRpbmdfbGV2ZWwpOiBTaW1wbGlmeS4gIExvb3NlIHRoZSBsYXN0IHR3byBhcmd1bWVudHMuCgkobWFrZV9iaW5kaW5nX2xldmVsKTogUmVtb3ZlLgoJKGluaXRpYWxfcHVzaF9fbmFtZXNwYWNlX3Njb3BlKTogTmV3IGZ1bmN0aW9uLgoJKHB1c2hfbmFtZXNwYWNlKTogVXNlIGl0LiAgU2ltcGxpZnkuCgkoY3h4X2luaXRfZGVjbF9wcm9jZXNzaW5nKTogTGlrZXdpc2UuCgkoZGVjbGFyZV9uYW1lc3BhY2VfbGV2ZWwpOiBSZW1vdmUuCgoyMDAzLTA1LTMxICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvMTA5NTYKCSogcHQuYyAoaW5zdGFudGlhdGVfZGVjbCk6IERvbid0IHVzZSBmdWxsIHRlbXBsYXRlIGFyZ3VtZW50cyBpZgoJd2UgYXJlIGRlYWxpbmcgd2l0aCBzcGVjaWFsaXphdGlvbnMuCgoyMDAzLTA1LTI5ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldD4KCgkqIGRlY2wuYyAoRU5BQkxFX1NDT1BFX0NIRUNLSU5HKTogUmVuYW1lIGZyb20gREVCVUdfQklORElOR19MRVZFTFMuCgkoYmluZGluZ19kZXB0aCk6IFVuY29uZGl0aW9uYWxseSBkZWZpbmUuCgkoaXNfY2xhc3NfbGV2ZWwpOiBMaWtld2lzZS4KCShpbmRlbnQpOiBMaWtld2lzZS4gIFRha2UgYW4gaW5kZW50aW5nIHBhcmFtZXRlci4KCShwdXNoX2JpbmRpbmdfbGV2ZWwpOiBSZW1vdmUgY29uZGl0aW9uYWwgZGVmaW5pdHRpb24uCgkocG9wX2JpbmRpbmdfbGV2ZWwpOiBMaWtld2lzZS4KCShzdXNwZW5kX2JpbmRpbmdfbGV2ZWwpOiBMaWtld2lzZS4KCShyZXN1bWVfYmluZGluZ19sZXZlbCk6IExpa2V3aXNlLgoJKHB1c2hsZXZlbCk6IExpa2V3aXNlLgoJKHB1c2hsZXZlbF9jbGFzcyk6IExpa2V3aXNlLgoJKHBvcGxldmVsX2NsYXNzKTogTGlrZXdpc2UuCgkocG9wX2V2ZXJ5dGhpbmcpOiBMaWtld2lzZS4KCjIwMDMtMDUtMjcgIEdhYnJpZWwgRG9zIFJlaXMgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBuYW1lLWxvb2t1cC5oIChnbG9iYWxfc2NvcGVfcCk6IE5ldyBtYWNyby4KCSogZGVjbC5jIChwb3BfYmluZGluZ19sZXZlbCk6IFVzZSBpdC4gIERvbid0IHJlZmVyIGRpcmVjdGx5IHRvCglnbG9iYWxfYmluZGluZ19sZXZlbC4KCShzdXNwZW5kX2JpbmRpbmdfbGV2ZWwpOiBMaWtld2lzZS4KCShnbG9iYWxfYmluZGluZ3NfcCk6IExpa2V3aXNlLgoJKHByaW50X290aGVyX2JpbmRpbmdfc3RhY2spOiBMaWtld2lzZS4KCShwcmludF9iaW5kaW5nX3N0YWNrKTogTGlrZXdpc2UuCgkobWF5YmVfcHVzaF90b190b3BfbGV2ZWwpOiBMaWtld2lzZS4KCShwdXNoZGVjbF9uYW1lc3BhY2VfbGV2ZWwpOiBMaWtld2lzZS4KCShjeHhfaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBMaWtld2lzZS4KCShzdGFydF9kZWNsKTogTGlrZXdpc2UuCgkoY3BfZmluaXNoX2RlY2wpOiBMaWtld2lzZS4KCShzdGFydF9mdW5jdGlvbik6IExpa2V3aXNlLgoJKGdsb2JhbF9iaW5kaW5nX2xldmVsKTogUmVtb3ZlLgoKMjAwMy0wNS0yNSAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2V4cGxpY2l0X2luc3RhbnRpYXRpb24pOiBSZXN0b3JlIG9sZAoJYWNjZXNzIGJlZm9yZSB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uLgoKMjAwMy0wNS0yMyAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBsYW5nLXNwZWNzLmg6IFVzZSAtbyB0byBzcGVjaWZ5IHByZXByb2Nlc3NvcidzIG91dHB1dCBmaWxlLgoJTWFrZSAtbm8taW50ZWdyYXRlZC1jcHAgd29yayB3aGVuIGJ1aWxkaW5nIFBDSCBmaWxlcy4KCjIwMDMtMDUtMjMgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy8xMDY4MgoJKiBwdC5jIChpbnN0YW50aWF0ZV9jbGFzc190ZW1wbGF0ZSk6IFVzZSBERUNMX0FSVElGSUNJQUwgdG8KCWNoZWNrIGZvciBpbXBsaWNpdGx5IGNyZWF0ZWQgdHlwZWRlZiB0byBhbiBlbnVtLgoKMjAwMy0wNS0yMSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBpbml0LmMgKGJ1aWxkX3ZlY19kZWxldGUpOiBDb3B5IHRoZSBhZGRyZXNzIGludG8gYSB0ZW1wb3JhcnkKCXZhcmlhYmxlIGJlZm9yZSBjYWxsaW5nIGJ1aWxkX3ZlY19kZWxldGVfMS4KCSogZGVjbDIuYyAoZGVsZXRlX3Nhbml0eSk6IERvbid0IGNhbGwgc3RhYmlsaXplX3JlZmVyZW5jZS4KCjIwMDMtMDUtMjEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwdC5jIChyZWdpc3Rlcl9zcGVjaWFsaXphdGlvbik6IFVwZGF0ZSB0aGUgZGVjbCdzIGxvY2F0aW9uLAoJaWYgbmVjZXNzYXJ5LgoJKGNoZWNrX2V4cGxpY2l0X3NwZWNpYWxpemF0aW9uKTogTGlrZXdpc2UuCgoyMDAzLTA1LTIwICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBVc2UgSE9TVF9XSURFX0lOVF9QUklOVF9ET1VCTEVfSEVYLgoKMjAwMy0wNS0yMSAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvOTczOAoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IFJlLWludm9rZSBtYWtlX2RlY2xfcnRsCglpZiB0aGUgb2xkIGRlY2wgaGFkIGluc3RhbnRpYXRlZCBERUNMX1JUTC4KCShCYXNlIG9uIFJpY2hhcmQgSGVuZGVyc29uIDIwMDMtMDUtMTMgcGF0Y2ggdG8gYy1kZWNsLmMpLgoKMjAwMy0wNS0xOSAgTWF0dCBBdXN0ZXJuICA8YXVzdGVybkBhcHBsZS5jb20+CgoJKiBsYW5nLW9wdGlvbnMuaDogRG9jdW1lbnQgLVduby1pbnZhbGlkLW9mZnNldG9mCgkqIHR5cGVjay5jIChidWlsZF9jbGFzc19tZW1iZXJfYWNjZXNzX2V4cHIpOiBEb24ndCBjb21wbGFpbiBhYm91dAoJKEZvbyAqKXAtPnggZm9yIG5vbi1QT0QgRm9vIGlmIHdhcm5faW52YWxpZF9vZmZzZXQgaXMgemVyby4KCjIwMDMtMDUtMTggQW5kcmV3IFBpbnNraSA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCgkqIG5hbWUtbG9va3VwLmMgKGZyZWVfYmluZGluZ19lbnRyeSk6IGZpeCB3aGVyZSB0aGUgR1RZIG1hcmtlcnMgYXJlLgoJKGJpbmRpbmdfZW50cnlfbWFrZSk6IE1ha2UgZW50cnktPmNoYWluIE5VTEwgYWZ0ZXIgZ2V0dGluZyBhbiBlbnRyeS4KCWZpeCB0aGUgc3BlbGxpbmcgb2YgY2hhaW4gaW4gYSBjb21tZW50LgoJKGJpbmRpbmdfdGFibGVfZnJlZSk6IHNwZWVkIHVwIGJ5IGhhdmluZyB0ZW1wb3JhcnkgdmFyaWFibGUuCgkoYmluZGluZ190YWJsZV9uZXcpOiBzZXQgdGFibGUtPmNoYWluIHRvIGJlIE5VTEwgYWZ0ZXIgYWxsb2NhdGluZwoJYSB0YWJsZS4KCShjeHhfYmluZGluZ19tYWtlKTogdXNlIGdjY19hbGxvYyBpbnN0ZWFkIG9mIGdnY19hbGxvY19jbGVhcmVkIGFuZCBzZXQKCWJpbmRpbmctPnByZXZpb3VzIHRvIE5VTEwgYWZ0ZXIgZ2V0dGluZyBhbiBiaW5kaW5nIGZvciBzcGVlZC4KCjIwMDMtMDUtMTggIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogY3AtdHJlZS5oIChzdHJ1Y3QgbGFuZ190eXBlX2NsYXNzKTogUmVwbGFjZSBkYXRhIG1lbWJlciB0YWdzCgl3aXRoIGhhc2gtdGFibGUgbmVzdGVkX3VkdHMuCgkoQ0xBU1NUWVBFX05FU1RFRF9VVERTKTogUmVuYW1lIGZyb20gQ0xBU1NUWVBFX1RBR1MuCgkqIGNsYXNzLmMgKHVucmV2ZXJzZV9tZW1iZXJfZGVjbGFyYXRpb25zKTogRG9uJ3QgdG91Y2gKCUNMQVNTVFlQRV9UQUdTLgoJKHB1c2hjbGFzcyk6IFVzZSBjeHhfcmVtZW1iZXJfdHlwZV9kZWNscy4KCSogZGVjbC5jIChzdHJ1Y3QgY3BfYmluZGluZ19sZXZlbCk6IFJlcGxhY2UgZGF0YSBtZW1iZXIgdGFncyB3aXRoCgloYXNoLXRhYmxlIHR5cGVfZGVjbHMuCgkocG9wX2JpbmRpbmdfbGV2ZWwpOiBIYW5kbGUgbGV2ZWwtPnR5cGVfZGVjbHMuCgkoa2VwdF9sZXZlbF9wKTogQWRqdXN0LgoJKHBvcGxldmVsKTogUmVtb3ZlIHVudXNlZCBsb2NhbCB2YXJpYWJsZS4KCShidF9wcmludF9lbnRyeSk6IE5ldyBmdW5jdGlvbi4KCShwcmludF9iaW5kaW5nX2xldmVsKTogVXNlIGl0LgoJKHB1c2hfbmFtZXNwYWNlKTogQnVpbGQgY3VycmVudF9iaW5kaW5nX2xldmVsLT50eXBlX2RlY2xzLgoJKG1heWJlX3Byb2Nlc3NfdGVtcGxhdGVfdHlwZV9kZWNsYXJhdGlvbik6IEFkanVzdC4KCShwdXNodGFnKTogTGlrZXdpc2UuCgkoY2xlYXJfYW5vbl90YWdzKTogVXNlIGJpbmRpbmdfdGFibGVfcmVtb3ZlX2Fub255bW91c190eXBlcy4KCShnZXR0YWdzKTogUmVtb3ZlLgoJKGN4eF9yZW1lbWJlcl90eXBlX2RlY2xzKTogIFJlbmFtZSBmcm9tIHN0b3JldGFncy4gIEFkanVzdC4KCShsb29rdXBfdGFnKTogVXNlIGJpbmRpbmdfdGFibGVfZmluZF9hbm9uX3R5cGUuICBUaWR5LgoJKGxvb2t1cF90YWdfcmV2ZXJzZSk6IFVzZSBiaW5kaW5nX3RhYmxlX3JldmVyc2VfbWF5YmVfcmVtYXAuCgkoY3h4X2luaXRfZGVjbF9wcm9jZXNzaW5nKTogQnVpbGQgZ2xvYmFsX2JpbmRpbmdfbGV2ZWwtPnR5cGVfZGVjbHMuCgkoc3RvcmVfcGFybV9kZWNscyk6IFJlbW92ZSBwb2ludGxlc3MgY29kZS4KCSogbmFtZS1sb29rdXAuYyAoZnJlZV9iaW5kaW5nX2VudHJ5KTogTmV3IHZhcmlhYmxlLgoJKEVOVFJZX0lOREVYKTogTmV3IG1hY3JvLgoJKHN0cnVjdCBiaW5kaW5nX3RhYmxlX3MpOiBOZXcgZGF0YXR5cGUuCgkoYmluZGluZ19lbnRyeV9tYWtlKTogTmV3IGZ1bmN0aW9uLgoJKGJpbmRpbmdfZW50cnlfZnJlZSk6IExpa2V3aXNlLgoJKGJpbmRpbmdfdGFibGVfY29uc3RydWN0KTogTGlrZXdpc2UuCgkoYmluZGluZ190YWJsZV9mcmVlKTogTGlrZXdpc2UuCgkoYmluZGluZ190YWJsZV9uZXcpOiBMaWtld2lzZS4KCShiaW5kaW5nX3RhYmxlX2V4cGFuZCk6IExpa2V3aXNlLgoJKGJpbmRpbmdfdGFibGVfaW5zZXJ0KTogTGlrZXdpc2UuCgkoYmluZGluZ190YWJsZV9maW5kKTogTGlrZXdpc2UuCgkoYmluZGluZ190YWJsZV9maW5kX2Fub25fdHlwZSk6IExpa2V3aXNlLgoJKGJpbmRpbmdfdGFibGVfcmV2ZXJzZV9tYXliZV9yZW1hcCk6IExpa2V3aXNlLgoJKGJpbmRpbmdfdGFibGVfcmVtb3ZlX2Fub255bW91c190eXBlcyk6IExpa2V3aXNlLgoJKGJpbmRpbmdfdGFibGVfZm9yZWFjaCk6IExpa2V3aXNlLgoJKiBuYW1lLWxvb2t1cC5oIChiaW5kaW5nX3RhYmxlKTogTmV3IHR5cGUuCgkoYmluZGluZ19lbnRyeSk6IExpa2V3aXNlLgoJKGJ0X2ZvcmVhY2hfcHJvYyk6IExpa2V3aXNlLgoJKHN0cnVjdCBiaW5kaW5nX2VudHJ5X3MpOiBOZXcgZGF0YXR5cGUuCgkoU0NPUEVfREVGQVVMVF9IVF9TSVpFKTogTmV3IG1hY3JvLgoJKENMQVNTX1NDT1BFX0hUX1NJWkUpOiBMaWtld2lzZS4KCShOQU1FU1BBQ0VfT1JESU5BUllfSFRfU0laRSk6IExpa2V3aXNlLgoJKE5BTUVTUEFDRV9TVERfSFRfU0laRSk6IExpa2V3aXNlLgoJKEdMT0JBTF9TQ09QRV9IVF9TSVpFKTogTGlrZXdpc2UuCgkoYmluZGluZ190YWJsZV9uZXcpOiBEZWNsYXJlLgoJKGJpbmRpbmdfdGFibGVfZnJlZSk6IExpa2V3aXNlLgoJKGJpbmRpbmdfdGFibGVfaW5zZXJ0KTogTGlrZXdpc2UuCgkoYmluZGluZ190YWJsZV9maW5kX2Fub25fdHlwZSk6IExpa2V3aXNlLgoJKGJpbmRpbmdfdGFibGVfcmV2ZXJzZV9tYXliZV9yZW1hcCk6IExpa2V3aXNlLgoJKGJpbmRpbmdfdGFibGVfcmVtb3ZlX2Fub255bW91c190eXBlcyk6IExpa2V3aXNlLgoJKGJpbmRpbmdfdGFibGVfZm9yZWFjaCk6IExpa2V3aXNlLgoJKGJpbmRpbmdfdGFibGVfZmluZCk6IExpa2V3aXNlLgoJKGN4eF9yZW1lbWJlcl90eXBlX2RlY2xzKTogTGlrZXdpc2UuCgkqIHB0LmMgKGJ0X2luc3RhbnRpYXRlX3R5cGVfcHJvYyk6IE5ldyBmdW5jdGlvbi4KCShkb190eXBlX2luc3RhbnRpYXRpb24pOiBVc2UgaXQuCgkqIHNlYXJjaC5jIChsb29rdXBfZmllbGRfcik6IFVzZSBiaW5kaW5nX3RhYmxlX2ZpbmQuCgoyMDAzLTA1LTE4ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHNlbWFudGljcy5jIChwZXJmb3JtX2RlZmVycmVkX2FjY2Vzc19jaGVja3MpOiBEb24ndCBkaXNjYXJkCgljaGVja2VkIGFjY2Vzcy4KCjIwMDMtMDUtMTcgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGVycm9yLmMgKGNwX2Vycm9yX2F0LCBjcF93YXJuaW5nX2F0LCBjcF9wZWR3YXJuX2F0KTogRWxpbWluYXRlCglsaWJpYmVydHkgVkFfIG1hY3JvcywgYWx3YXlzIHVzZSBzdGRhcmcuCgkqIHJ0dGkuYyAoY3JlYXRlX3BzZXVkb190eXBlX2luZm8pOiBMaWtld2lzZS4KCSogdHJlZS5jIChidWlsZF9taW5fbnQsIGJ1aWxkX21pbik6IExpa2V3aXNlLgoKMjAwMy0wNS0xNiAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogcHRyZWUuYyAoY3h4X3ByaW50X3R5cGUsIGN4eF9wcmludF94bm9kZSk6IFVzZSBzdHJpbmcKCWNvbmNhdGVudGF0aW9uIG9uIEhPU1RfV0lERV9JTlRfUFJJTlRfKiBmb3JtYXQgc3BlY2lmaWVyIHRvCgljb2xsYXBzZSBtdWx0aXBsZSBmdW5jdGlvbiBjYWxscyBpbnRvIG9uZS4KCSogdHJlZS5jIChkZWJ1Z19iaW5mbyk6IExpa2V3aXNlLgoKMjAwMy0wNS0xNSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzUzODgKCSogY2FsbC5jIChjb25kaXRpb25hbF9jb252ZXJzaW9uKTogRG9uJ3QgY29uc2lkZXIgaW1wbGljaXQKCWNvbnZlcnNpb25zIGlmIFQyIGlzIGEgYmFzZSBvZiBUMS4KCSogY3AtdHJlZS5oIChERVJJVkVEX0ZST01fUCwgVU5JUVVFTFlfREVSSVZFRF9GUk9NX1ApOiBNYWtlIGJvb2xlYW4uCgkoQUNDRVNTSUJMWV9VTklRVUVMWV9ERVJJVkVEX1AsIFBVQkxJQ0xZX1VOSVFVRUxZX0RFUklWRURfUCk6IExpa2V3aXNlLgoKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9wcmltYXJ5X2V4cHJlc3Npb24pOiBDb252ZXJ0IGEgc3RhdGljIGRhdGEKCW1lbWJlciBmcm9tIHJlZmVyZW5jZS4KCjIwMDMtMDUtMTUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGJ1aWxkX29wX2RlbGV0ZV9jYWxsKTogQXZvaWQgY3JlYXRpbmcgdW5uZWNlc3NhcnkgdHlwZXMuCgkqIGNsYXNzLmMgKGluc3RhbnRpYXRlX3R5cGUpOiBSZW1vdmUgdGVzdHMgZm9yIHRmX25vX2F0dHJpYnV0ZXMuCgkqIGNwLXRyZWUuaCAodHN1YnN0X2ZsYWdzX3QpOiBSZW1vdmUgdGZfbm9fYXR0cmlidXRlcy4KCShDT01QQVJFX05PX0FUVFJJQlVURVMpOiBSZW1vdmUuCgkqIHR5cGVjay5jIChjb21wdHlwZXMpOiBEbyBub3QgY2hlY2sgQ09NUEFSRV9OT19BVFRSSUJVVEVTLgoKCVBSIGMrKy84Mzg1CgkqIHNlbWFudGljcy5jIChmaW5pc2hfdHlwZW9mKTogUmVmaW5lIHR5cGUtZGVwZW5kZW5jeSBjaGVjay4KCjIwMDMtMDUtMTMgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogdHlwZWNrLmMgKGJ1aWxkX21vZGlmeV9leHByKTogRG9uJ3QgYWx3YXlzIHN0YWJpbGl6ZSB0aGUgbGhzIGFuZAoJcmhzLiAgRG8gc3RhYmlsaXplIHRoZSBsaHMgb2YgYSBNT0RJRllfRVhQUiB1c2VkIG9uIHRoZSBsaHMuCgoyMDAzLTA1LTExICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIG1ldGhvZC5jIChzeW50aGVzaXplX21ldGhvZCk6IENhbGwgcHVzaC9wb3BfZGVmZXJyaW5nX2FjY2Vzc19jaGVja3MuCgoyMDAzLTA1LTExICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvMTAyMzAsIGMrKy8xMDQ4MQoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX25vbl9zdGF0aWNfZGF0YV9tZW1iZXIpOiBIYW5kbGUgd2hlbiB0aGUKCW5vbi1zdGF0aWMgbWVtYmVyIGlzIG5vdCBmcm9tIGEgYmFzZSBvZiB0aGUgY3VycmVudCBjbGFzcyB0eXBlLgoKMjAwMy0wNS0xMSAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzEwNTUyCgkqIHB0LmMgKHRzdWJzdF9jb3B5KTogSGFuZGxlIFRFTVBMQVRFX0RFQ0wgdGhhdCBpcyBhIG1lbWJlciBjbGFzcwoJdGVtcGxhdGUgYW5kIGhhcyBkZXBlbmRlbnQgY29udGV4dC4KCjIwMDMtMDUtMTAgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcHQuYyAoaW5zdGFudGlhdGVfZGVjbCk6IENhbGwgcHVzaC9wb3BfZGVmZXJyaW5nX2FjY2Vzc19jaGVja3MuCgoyMDAzLTA1LTEwICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvOTI1MgoJKiBjcC10cmVlLmggKHNhdmVkX3Njb3BlKTogUmVtb3ZlIGNoZWNrX2FjY2VzcyBmaWVsZC4KCSh0c3Vic3RfZmxhZ3NfdCk6IFJlbW92ZSB0Zl9wYXJzaW5nLgoJKiBkZWNsLmMgKG1heWJlX3B1c2hfdG9fdG9wX2xldmVsKTogRG9uJ3QgaW5pdGlhbGl6ZQoJc2NvcGVfY2hhaW4tPmNoZWNrX2FjY2Vzcy4KCShtYWtlX3R5cGVuYW1lX3R5cGUsIG1ha2VfdW5ib3VuZF9jbGFzc190ZW1wbGF0ZSk6IERvbid0IHVzZQoJdGZfcGFyc2luZy4KCShyZWdpc3Rlcl9kdG9yX2ZuKTogVXNlIHB1c2gvcG9wX2RlZmVycmluZ19hY2Nlc3NfY2hlY2tzCglpbnN0ZWFkIG9mIHNjb3BlX2NoYWluLT5jaGVja19hY2Nlc3MuCgkqIG1ldGhvZC5jICh1c2VfdGh1bmspOiBMaWtld2lzZS4KCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9leHBsaWNpdF9pbnN0YW50aWF0aW9uCgkoY3BfcGFyc2VyX2NvbnN0cnVjdG9yX2RlY2xhcmF0b3JfcCk6IERvbid0IGNhbGwKCXB1c2gvcG9wX2RlZmVycmluZ19hY2Nlc3NfY2hlY2tzIGhlcmUuCgkoY3BfcGFyc2VyX3RlbXBsYXRlX2FyZ3VtZW50LCBjcF9wYXJzZXJfY2xhc3NfbmFtZSk6IERvbid0IHVzZQoJdGZfcGFyc2luZy4KCSh5eXBhcnNlKTogQ2hlY2sgZmxhZ19hY2Nlc3NfY29udHJvbC4KCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBDYWxsCglwdXNoL3BvcF9kZWZlcnJpbmdfYWNjZXNzX2NoZWNrcy4KCSogc2VtYW50aWNzLmMgKHB1c2hfZGVmZXJyaW5nX2FjY2Vzc19jaGVja3MpOiBQcm9wYWdhdGUKCWRrX25vX2NoZWNrLgoJKHBlcmZvcm1fb3JfZGVmZXJfYWNjZXNzX2NoZWNrKTogTWFrZSBzdXJlIGJhc2V0eXBlX3BhdGggaXMKCWEgdHlwZSBiZWZvcmUgY29tcGFyaXNvbi4KCSogY2FsbC5jIChidWlsZF9vcF9kZWxldGVfY2FsbCwgYnVpbGRfb3Zlcl9jYWxsKTogVXNlCglwZXJmb3JtX29yX2RlZmVyX2FjY2Vzc19jaGVjay4KCSogY2xhc3MuYyAoYWx0ZXJfYWNjZXNzKTogTGlrZXdpc2UuCgkqIGluaXQuYyAoYnVpbGRfb2Zmc2V0X3JlZik6IExpa2V3aXNlLgoJKiBsZXguYyAoZG9faWRlbnRpZmllcik6IExpa2V3aXNlLgoJKiBtZXRob2QuYyAoaGFja19pZGVudGlmaWVyKTogTGlrZXdpc2UuCgkqIHNlYXJjaC5jIChsb29rdXBfbWVtYmVyKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfbm9uX3N0YXRpY19kYXRhX21lbWJlcik6IExpa2V3aXNlLgoJKHNpbXBsaWZ5X2FnZ3JfaW5pdF9leHByc19yKTogVXNlIHB1c2gvcG9wX2RlZmVycmluZ19hY2Nlc3NfY2hlY2tzCglpbnN0ZWFkIG9mIGZsYWdfYWNjZXNzX2NvbnRyb2wuCgoyMDAzLTA1LTEwICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvOTU1NAoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2NsYXNzX25hbWUpOiBSZW1vdmUgY2hlY2tfYWNjZXNzIHBhcmFtZXRlci4KCUFsbCBjYWxsZXIgYWRqdXN0ZWQuICBVcGRhdGUgZGVjbGFyYXRpb24uCgkoY3BfcGFyc2VyX2xvb2t1cF9uYW1lKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChwdXNoX2RlZmVycmluZ19hY2Nlc3NfY2hlY2tzKTogQ2hhbmdlIHBhcmFtZXRlciB0eXBlCgl0byBlbnVtIGRlZmVycmluZ19raW5kLiAgQWxsIGNhbGxlciBhZGp1c3RlZC4KCShyZXN1bWVfZGVmZXJyaW5nX2FjY2Vzc19jaGVja3MpOiBBZGp1c3QgdG8gdXNlIG5ldyBlbnVtLgoJKHN0b3BfZGVmZXJyaW5nX2FjY2Vzc19jaGVja3MpOiBMaWtld2lzZS4KCShwZXJmb3JtX29yX2RlZmVyX2FjY2Vzc19jaGVjayk6IExpa2V3aXNlLgoJKiBjcC10cmVlLmggKGRlZmVycmluZ19raW5kKTogTmV3IGVudW0uCgkoZGVmZXJyZWRfYWNjZXNzKTogQWRqdXN0IGZpZWxkIHR5cGUuCgkocHVzaF9kZWZlcnJpbmdfYWNjZXNzX2NoZWNrcyk6IFVwZGF0ZSBkZWNsYXJhdGlvbi4KCjIwMDMtMDUtMDkgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy8xMDU1NSwgYysrLzEwNTc2CgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IEhhbmRsZSBjbGFzcyB0ZW1wbGF0ZSB3aXRoCgltdWx0aXBsZSBsZXZlbHMgb2YgcGFyYW1ldGVycyB3aGVuIG9uZSBvZiB0aGUgbGV2ZWxzIGNvbnRhaW4KCWVycm9ycy4KCjIwMDMtMDUtMDggIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogaW5pdC5jIChidWlsZF9uZXdfMSk6IERvbid0IHJldXNlIGEgVEFSR0VUX0VYUFIgaW4gYW4KCWV4cHJlc3Npb24uICBVbmRvIHNvbWUgb2YgdGhlIHJlY2VudCByZW9yZy4KCjIwMDMtMDUtMDcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgYysrLzEwNTcwCgkqIGNmbnMuZ3BlcmY6IENvbW1lbnQgb3V0IFBPU0lYIHRocmVhZCBjYW5jZWxsYXRpb24gcG9pbnRzLAoJcGx1cyBhYm9ydCBhbmQgcmFpc2UuCgkqIGNmbnMuaDogUmVnZW5lcmF0ZS4KCjIwMDMtMDUtMDcgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogY2FsbC5jIChidWlsZF9jb25kaXRpb25hbF9leHByKTogRG9uJ3QgYXNzdW1lIHRoYXQgdGhlIGZvbGRlZAoJZXhwcmVzc2lvbiBoYXMgcmVzdWx0X3R5cGUuCgoyMDAzLTA1LTA2ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHR5cGVjay5jIChidWlsZF91bmFyeV9vcCk6IERlYWwgd2l0aCBjb25zdCBxdWFsaWZpZXIgaW4KCWludmFsaWQgcG9pbnRlci10by1tZW1iZXIgZWFybGllci4KCjIwMDMtMDUtMDUgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy85NTM3CgkqIGNhbGwuYyAoY29uZGl0aW9uYWxfY29udmVyc2lvbik6IEJ1aWxkIGFuIFJWQUxVRV9DT05WIGlmCgl3ZSdyZSBqdXN0IGNoYW5naW5nIHRoZSBjdi1xdWFscy4KCShidWlsZF9jb25kaXRpb25hbF9leHByKTogRG9uJ3QgY2FsbCBjb252ZXJ0IHRvIGNoYW5nZQoJY3YtcXVhbHMuCgoyMDAzLTA1LTA1ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvMTA0OTYKCSogdHlwZWNrLmMgKGJ1aWxkX3VuYXJ5X29wKTogRG9uJ3Qgb3V0cHV0IGNvbnN0IHF1YWxpZmllciB3aGVuCglvdXRwdXQgaW52YWxpZCBwb2ludGVyLXRvLW1lbWJlciBkaWFnbm9zdGljcy4KCjIwMDMtMDUtMDUgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGVjbC5jOiBGaXggdHlwb3MuCgoyMDAzLTA1LTA1ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvNDQ5NAoJKiBkZWNsLmMgKHN0YXJ0X2Z1bmN0aW9uKTogVXNlIHNhbWVfdHlwZV9wIHRvIGNoZWNrIHJldHVybiB0eXBlCglvZiBtYWluLgoKMjAwMy0wNS0wMyAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjLzEwNjA0CgkqIGNwL3R5cGVjay5jIChidWlsZF94X2NvbXBvdW5kX2V4cHIpOiBObyBuZWVkIHRvIGNoZWNrCglleHRyYV93YXJuaW5ncyBhcyB3ZWxsIGFzIHdhcm5fdW51c2VkX3ZhbHVlLgoKMjAwMy0wNS0wMyAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzkzNjQsIGMrKy8xMDU1MywgYysrLzEwNTg2CgkqIGRlY2wuYyAobWFrZV90eXBlbmFtZV90eXBlKTogRG9uJ3QgY3Jhc2ggb24gaWxsZWdhbCBjb2RlLgoKMjAwMy0wNS0wMyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGZpbmlzaF9zdHJ1Y3QpOiBVc2UgbG9jYXRpb25fdCBhbmQgaW5wdXRfbG9jYXRpb24KCWRpcmVjdGx5LgoJKiBkZWNsLmMgKG1ha2VfbGFiZWxfZGVjbCk6IExpa2V3aXNlLgoJKHVzZV9sYWJlbCk6IExpa2V3aXNlLgoJKiBkZWNsMi5jICh3YXJuX2lmX3Vua25vd25faW50ZXJmYWNlKTogTGlrZXdpc2UuCgkoc3RhcnRfc3RhdGljX2luaXRpYWxpemF0aW9uX29yX2Rlc3RydWN0aW9uKTogTGlrZXdpc2UuCgkoZ2VuZXJhdGVfY3Rvcl9vcl9kdG9yX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkoZmluaXNoX2ZpbGUpOiBMaWtld2lzZS4KCSogZXJyb3IuYyAocHJpbnRfaW5zdGFudGlhdGlvbl9mdWxsX2NvbnRleHQpOiBMaWtld2lzZS4KCSogaW5pdC5jIChjcmVhdGVfdGVtcG9yYXJ5X3Zhcik6IExpa2V3aXNlLgoJKiBtZXRob2QuYyAoc3ludGhlc2l6ZV9tZXRob2QpOiBMaWtld2lzZS4KCSogcGFyc2VyLmMgKGNwX3Rva2VuKTogTGlrZXdpc2UuCgkoY3BfbGV4ZXJfc2V0X3NvdXJjZV9wb3NpdGlvbl9mcm9tX3Rva2VuKTogTGlrZXdpc2UuCgkoY3BfbGV4ZXJfZ2V0X3ByZXByb2Nlc3Nvcl90b2tlbik6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9zdGF0ZW1lbnQpOiBMaWtld2lzZS4KCSogcHQuYyAodHN1YnN0X2ZyaWVuZF9mdW5jdGlvbik6IExpa2V3aXNlLgoJKGluc3RhbnRpYXRlX2NsYXNzX3RlbXBsYXRlKTogTGlrZXdpc2UuCgkodHN1YnN0X2RlY2wpOiBMaWtld2lzZS4KCSh0c3Vic3QpOiBMaWtld2lzZS4KCShpbnN0YW50aWF0ZV9kZWNsKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChiZWdpbl9jbGFzc19kZWZpbml0aW9uKTogTGlrZXdpc2UuCgkoZXhwYW5kX2JvZHkpOiBMaWtld2lzZS4KCjIwMDMtMDUtMDEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChmaW5pc2hfc3RydWN0KTogUmVuYW1lIGxpbmVubyB0byBpbnB1dF9saW5lLgoJKiBkZWNsLmMgKHB1c2hfYmluZGluZ19sZXZlbCwgcG9wX2JpbmRpbmdfbGV2ZWwsCglzdXNwZW5kX2JpbmRpbmdfbGV2ZWwsIHJlc3VtZV9iaW5kaW5nX2xldmVsLCBtYWtlX2xhYmVsX2RlY2wsCgl1c2VfbGFiZWwsIHN0YXJ0X2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkqIGRlY2wyLmMgKHdhcm5faWZfdW5rbm93bl9pbnRlcmZhY2UsCglzdGFydF9zdGF0aWNfaW5pdGlhbGl6YXRpb25fb3JfZGVzdHJ1Y3Rpb24sCglnZW5lcmF0ZV9jdG9yX29yX2R0b3JfZnVuY3Rpb24sIGZpbmlzaF9maWxlKTogTGlrZXdpc2UuCgkqIGVycm9yLmMgKGNwX2xpbmVfb2YsIHByaW50X2luc3RhbnRpYXRpb25fZnVsbF9jb250ZXh0LAoJcHJpbnRfaW5zdGFudGlhdGlvbl9jb250ZXh0KTogTGlrZXdpc2UuCgkqIGV4Y2VwdC5jIChjaGVja19oYW5kbGVyc18xLCBjaGVja19oYW5kbGVycyk6IExpa2V3aXNlLgoJKiBpbml0LmMgKGNyZWF0ZV90ZW1wb3JhcnlfdmFyKTogTGlrZXdpc2UuCgkqIG1ldGhvZC5jICh1c2VfdGh1bmssIHN5bnRoZXNpemVfbWV0aG9kKTogTGlrZXdpc2UuCgkqIHBhcnNlci5jIChjcF9sZXhlcl9zZXRfc291cmNlX3Bvc2l0aW9uX2Zyb21fdG9rZW4sCgljcF9sZXhlcl9nZXRfcHJlcHJvY2Vzc29yX3Rva2VuKTogTGlrZXdpc2UuCgkqIHB0LmMgKHB1c2hfdGluc3RfbGV2ZWwsIHBvcF90aW5zdF9sZXZlbCwKCXRzdWJzdF9mcmllbmRfZnVuY3Rpb24sIGluc3RhbnRpYXRlX2NsYXNzX3RlbXBsYXRlLCB0c3Vic3RfZGVjbCwKCXRzdWJzdCwgdHN1YnN0X2V4cHIsIGluc3RhbnRpYXRlX2RlY2wpOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGdlbnJ0bF90cnlfYmxvY2ssIGZpbmlzaF9sYWJlbF9zdG10LAoJYmVnaW5fY2xhc3NfZGVmaW5pdGlvbiwgZXhwYW5kX2JvZHksCglnZW5ydGxfZmluaXNoX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkqIHRyZWUuYyAoYnVpbGRfbWluX250LCBidWlsZF9taW4pOiBMaWtld2lzZS4KCjIwMDMtMDUtMDEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsMi5jIChjb21kYXRfbGlua2FnZSk6IERvbid0IGV4dGVybmFsaXplIGV4cGxpY2l0CglpbnN0YW50aWF0aW9ucy4KCjIwMDMtMDUtMDEgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy8xMDU1NAoJKiBkZWNsMi5jIChkb19jbGFzc191c2luZ19kZWNsKTogQ2hlY2sgaWYgb3BlcmFuZCAwIG9mIFNDT1BFX1JFRgoJaXMgbm90IE5VTEwuCgoyMDAzLTA1LTAxICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5AZ2NjLmdudS5vcmc+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBsYW5nX2lkMik6IFJlbW92ZS4gIE1vdmUgZmllbGRzIGZyb20gaGVyZS4uLgoJKHN0cnVjdCBsYW5nX2lkZW50aWZpZXIpOiAuLi4gdG8gaGVyZS4KCShMQU5HX0lEX0ZJRUxEKTogUmVtb3ZlLgoJKFNFVF9MQU5HX0lEKTogUmVtb3ZlLgoJKElERU5USUZJRVJfTEFCRUxfVkFMVUUpOiBBZGp1c3QgZm9yIG5ldyBsYW5nX2lkZW50aWZpZXIuCgkoU0VUX0lERU5USUZJRVJfTEFCRUxfVkFMVUUpOiBMaWtld2lzZS4KCShJREVOVElGSUVSX0lNUExJQ0lUX0RFQ0wpOiBMaWtld2lzZS4KCShTRVRfSURFTlRJRklFUkxfSU1QTElDSVRfREVDTCk6IExpa2V3aXNlLgoJKElERU5USUZJRVJfRVJST1JfTE9DVVMpOiBMaWtld2lzZS4KCShTRVRfSURFTlRJRklFUl9FUlJPUl9MT0NVUyk6IExpa2V3aXNlLgoKMjAwMy0wNS0wMSAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzg3NzIKCSogcHQuYyAoY29udmVydF90ZW1wbGF0ZV9hcmd1bWVudCk6IENvcnJlY3QgZGlhZ25vc3RpYy4KCjIwMDMtMDQtMzAgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy85NDMyLCBjKysvOTUyOAoJKiBkZWNsMi5jICh2YWxpZGF0ZV9ub25tZW1iZXJfdXNpbmdfZGVjbCk6IEhhbmRsZSBTQ09QRV9SRUYuCgoyMDAzLTA0LTMwICBHYXJiaWVsIERvcyBSZWlzICA8Z2NjQGludGVncmFibGUtc29sdXRpb25zLm5ldD4KCgkqIGRlY2wuYyAoY2hlY2tfcHJldmlvdXNfZ290b18xKTogQWRqdXN0IHByb3RvdHlwZS4KCShjaGVja19wcmV2aW91c19nb3RvKTogQWRqdXN0IHVzZS4KCShjaGVja19zd2l0Y2hfZ290byk6IExpa2V3aXNlLgoJKHVzZV9sYWJlbCk6IEFkanVzdC4KCShjaGVja19wcmV2aW91c19nb3RvXzEpOiBEb24ndCB1c2UgcGVkd2Fybl93aXRoX2ZpbGVfYW5kX2xpbmUuCgkoc3RydWN0IG5hbWVkX2xhYmVsX3VzZV9saXN0KTogVXNlIGxvY2F0aW9uX3QgZGF0YXR5cGUuCgoyMDAzLTA0LTI5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMDU1MQoJKiBwdC5jIChtYXJrX2RlY2xfaW5zdGFudGlhdGVkKTogRGVmZXIgYWxsIGV4cGxpY2l0IGluc3RhbnRpYXRpb25zCgl0aGF0IGhhdmUgbm90IHlldCBiZWVuIHdyaXR0ZW4gb3V0LgoKMjAwMy0wNC0yOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTA1NDkKCSogY2xhc3MuYyAobGF5b3V0X2NsYXNzX3R5cGUpOiBNYXJrIG92ZXJsb25nIGJpdGZpZWxkcyBhcyBoYXZpbmcKCXRoZSBtYXhpbXVtIHNpemUgcGVybWl0dGVkIGJ5IHRoZWlyIHR5cGUsIGFmdGVyIGxheW91dC4KCglQUiBjKysvMTA1MjcKCSogZXJyb3IuYyAoZHVtcF9leHByKTogQ29ycmVjdGx5IGhhbmRsaW5nIG9mIE5FV19FWFBSLjQKCjIwMDMtMDQtMjkgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY2FsbC5jIChidWlsZF9vcGVyYXRvcl9uZXdfY2FsbCk6IEZpeCB0eXBvLgoJKiBsYW5nLW9wdGlvbnMuaDogTGlrZXdpc2UuCgoyMDAzLTA0LTI5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMDUxNQoJKiBjcC10cmVlLmggKGxvb2t1cF9maWVsZF8xKTogRGVjbGFyZSBpdC4KCSogc2VhcmNoLmMgKGxvb2t1cF9maWVsZF8xKTogTWFrZSBpdCBwdWJsaWMuCgkqIGRlY2wuYyAocmVzaGFwZV9pbml0KTogSGFuZGxlIGRlc2lnbmF0ZWQgaW5pdGlhbGl6ZXJzLgoKCSogZGVjbC5jIChtYXliZV9jb21tb25pemVfdmFyKTogRnVydGhlciB0d2VhayBzdXBwb3J0IGZvciBzeXN0ZW1zCgl3aXRob3V0IHdlYWsgc3ltYm9scy4KCjIwMDMtMDQtMjcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKG1heWJlX2NvbW1vbml6ZV92YXIpOiBGaXggdGhpbmtvIGluIGxhc3QgcGF0Y2guCgoyMDAzLTA0LTI3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMDUwNgoJKiBtZXRob2QuYyAodXNlX3RodW5rKTogRGVjcmVtZW50IGltbWVkaWF0ZV9zaXplX2V4cGFuZC4KCglQUiBjKysvMTA1MDMKCSogY3AtdHJlZS5oIChERUNMX1ZBUl9NQVJLRURfUCk6IE5ldyBtYWNyby4KCShERUNMX01BWUJFX1RFTVBMQVRFKTogUmVtb3ZlLgoJKiBjbGFzcy5jIChmaXhlZF90eXBlX29yX251bGwpOiBBdm9pZCBpbmZpbml0ZSByZWN1cnNpb24uCgoJKiBkZWNsLmMgKG1heWJlX2NvbW1vbml6ZV92YXIpOiBNYWtlIHRoZSBjb2RlIG1hdGNoIHRoZSBjb21tZW50cy4KCSogcHQuYyAoaW5zdGFudGlhdGVfZGVjbCk6IE1vdmUgY2FsbCB0byBpbXBvcnRfZXhwb3J0X2RlY2wuCgoyMDAzLTA0LTI2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoZmluaXNoX2ZpbGUpOiBGaXggbWVyZ2UgYm90Y2guCgoyMDAzLTA0LTI1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoZmluaXNoX2ZpbGUpOiBEb24ndCBjYWxsIGltcG9ydF9leHBvcnRfZGVjbCBmb3IKCWZ1bmN0aW9ucyB0aGF0IGFyZSBub3QgZGVmaW5lZC4KCShoYW5kbGVfY2xhc3NfaGVhZCk6IFJvYnVzdGlmeS4KCSogcHQuYyAoaW5zdGFudGlhdGVfZGVjbCk6IERvIG5vdCBjYWxsIGNwX2ZpbmlzaF9kZWNsIGZvcgoJdmFyaWFibGVzIHRoYXQgYXJlIG5vdCBkZWZpbmVkLgoKMjAwMy0wNC0yNCAgU3lsdmFpbiBQaW9uICA8U3lsdmFpbi5QaW9uQG1waS1zYi5tcGcuZGU+CgoJKiBjYWxsLmMgKHByaW50X3pfY2FuZGlkYXRlcyk6IEZpeCBvZmYgYnkgb25lIGVycm9yLgoKMjAwMy0wNC0yNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTAzMzcKCSogY2FsbC5jIChqb3VzdCk6IERvbid0IHdhcm4gYWJvdXQgY29udmVyc2lvbiBvcHMgdGhhdCBhcmUgZXhhY3QKCW9yIGN2LWNvbnZlcnNpb25zLiBSZWFycmFuZ2UgdG8gYXZvaWQgbXVsdGlwbGUgdHlwZSBjb21wYXJpc29ucy4KCjIwMDMtMDQtMjMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEwNDcxCgkqIGNhbGwuYyAoYnVpbGRfY3h4X2NhbGwpOiBSb2J1c3RpZnkuCgoyMDAzLTA0LTIzICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuY28udWs+CgoJKiBNYWtlLWxhbmcuaW4gKGxleC5vKTogUmVtb3ZlIG1iY2hhci5oLgoJKiBsZXguYyAoTVVMVElCWVRFX0NIQVJTKTogTG9zZS4KCSogcGFyc2VyLmMgKGNwX2xleGVyX2dldF9wcmVwcm9jZXNzb3JfdG9rZW4pOiBDUFBfT1RIRVIgaGFuZGxlZAoJaW4gYy1sZXguYy4KCjIwMDMtMDQtMjMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk4NDcKCSogY3AtdHJlZS5oIChkdXBsaWNhdGVfdGFnX2Vycm9yKTogUmVtb3ZlLgoJKiBjbGFzcy5jIChkdXBsaWNhdGVfdGFnX2Vycm9yKTogUmVtb3ZlLgoJKiBzZW1hbnRpY3MuYyAoYmVnaW5fY2xhc3NfZGVmaW5pdGlvbik6IFJldHVybiBpbW1lZGlhdGVseSBmb3IgYQoJZHVwbGljYXRlIGNsYXNzIGRlZmluaXRpb24uCgoJUFIgYysrLzEwNDUxCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBDb3JyZWN0IGxvZ2ljIGZvciAibXV0YWJsZSIgZXJyb3JzLgoKMjAwMy0wNC0yMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTA0NDYKCSogc2VhcmNoLmMgKGxvb2t1cF9mbmZpZWxkc18xKTogSGFuZGxlIGVtcHR5IHNsb3RzIGluIHRoZSBtZXRob2QKCXZlY3Rvci4KCglQUiBjKysvMTA0MjgKCSogZGVjbC5jIChjaGVja19lbGFib3JhdGVkX3R5cGVfc3BlY2lmaWVyKTogTmV3IGZ1bmN0aW9uLCBzcGxpdAoJb3V0IGZyb20gLi4uCgkoeHJlZl90YWcpOiAuLi4gaGVyZS4gIFVzZSB0aGUgbmV3IGZ1bmN0aW9uIGluIG1vcmUgcGxhY2VzLgoKCSogcnR0aS5jICh0aHJvd19iYWRfdHlwZWlkKTogVXNlIGJ1aWxkX2N4eF9jYWxsLgoKMjAwMy0wNC0yMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoYnVpbGRfb3Zlcl9jYWxsKTogVXNlIGJ1aWxkX2N4eF9jYWxsLgoJKGJ1aWxkX2N4eF9jYWxsKTogTmV3IG1ldGhvZCwgc3BsaXQgb3V0IG9mIGJ1aWxkX292ZXJfY2FsbC4KCSogY3AtdHJlZS5oIChsYW5ndWFnZV9mdW5jdGlvbik6IEFkZCBjYW5fdGhyb3cuCgkoYnVpbGRfY3h4X2NhbGwpOiBEZWNsYXJlIGl0LgoJKiBkZWNsLmMgKGZpbmlzaF9mdW5jdGlvbik6IElmIGEgZnVuY3Rpb24gZG9lcyBub3QgY29udGFpbiBhbnkKCWNhbGxzIHRvIGZ1bmN0aW9ucyB0aGF0IGNhbiB0aHJvdyBhbiBleGNlcHRpb24sIGluZGljYXRlIHRoYXQKCWZhY3QuCgkqIGRlY2wyLmMgKG1hcmtfdXNlZCk6IERvIG5vdCBkZWZlciB0aGUgaW5zdGFudGlhdGlvbiBvZgoJZnVuY3Rpb25zLCBpZiB0aGUgY3VycmVudCBmdW5jdGlvbiBkb2VzIG5vdCB0aHJvdy4KCSogb3B0aW1pemUuYyAobWF5YmVfY2xvbmVfYm9keSk6IENvcHkgVFJFRV9OT1RIUk9XIHRvIHRoZSBjbG9uZXMuCgkqIHB0LmMgKGluc3RhbnRpYXRlX2RlY2wpOiBNYWtlIHN1cmUgaW1wb3J0X2V4cG9ydF9kZWNsIGlzIGNhbGxlZAoJYmVmb3JlIGVtaXR0aW5nIHRoaW5ncy4KCSogcnR0aS5jICh0aHJvd19iYWRfY2FzdCk6IFVzZSBidWlsZF9jeHhfY2FsbC4KCShidWlsZF9keW5hbWljX2Nhc3RfMSk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoYnVpbGRfZnVuY3Rpb25fY2FsbCk6IExpa2V3aXNlLgoKMjAwMy0wNC0yMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTg4MQoJKiB0eXBlY2suYyAoYnVpbGRfdW5hcnlfb3ApOiBGb2xkIGFsbCBDT01QT05FTlRfUkVGIGFkZHIKCWV4cHJlc3Npb25zLiBSZXZlcnRzIG15IDIwMDItMDgtMDggcGF0Y2guCgoJKiB0eXBlY2suYyAoY29tcF9wdHJfdHR5cGVzX3JlYWwpOiBTd2FwIGZpbmFsICYmIG9wZXJhbmRzIGZvcgoJY2hlYXBlciBlYXJseSBleGl0LgoKMjAwMy0wNC0yMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwL2RlY2wyLmMgKHN0YXJ0X3N0YXRpY19zdG9yYWdlX2R1cmF0aW9uX2Z1bmN0aW9uKTogVGFrZSBjb3VudAoJYXJnLCBkb24ndCBjaGVjayBpZiBpdCB3cmFwcyByb3VuZC4KCShnZW5lcmF0ZV9jdG9yX29yX2R0b3JfZnVuY3Rpb24pOiBBZGQgbG9jdXMgYXJnLCB1c2UgaXQuCgkoZ2VuZXJhdGVfY3Rvcl9hbmRfZHRvcl9mdW5jdGlvbnNfZm9yX3ByaW9yaXR5KTogRGF0YSBhcmcgaXMgYQoJbG9jdXMuCgkoZmluaXNoX2ZpbGUpOiBTZXQgbGluZSBudW1iZXJzIHRvIHBhc3QgRU9GIGZvciBzeW50aGVzaXplZAoJZnVuY3Rpb25zLgoKMjAwMy0wNC0yMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTA0MDUKCSogc2VhcmNoLmMgKGxvb2t1cF9maWVsZF8xKTogRmluYWwgc2NhbiBnb2VzIGJhY2t3YXJkcyBmb3IKCXR5cGVzLCBmb3J3YXJkcyBmb3Igbm9uLXR5cGVzLgoKMjAwMy0wNC0xNyAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgYy8xMDM3NQoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IFByZXNlcnZlICJjb25zdCIsICJub3JldHVybiIgYW5kCgkibm90aHJvdyIgZnVuY3Rpb24gYXR0cmlidXRlcy4KCjIwMDMtMDQtMTcgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy8xMDM0NwoJKiBwdC5jICh0eXBlX2RlcGVuZGVudF9leHByZXNzaW9uX3ApOiBIYW5kbGUgYXJyYXkgbmV3LgoKMjAwMy0wNC0xNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTAzODEKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9wcmltYXJ5X2V4cHJlc3Npb24pOiBSZW9yZ2FuaXplIGxvZ2ljIGZvcgoJZGVhbGluZyB3aXRoIG5hbWUgbG9va3VwIGZhaWx1cmVzLgoKMjAwMy0wNC0xNSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBkZWNsMi5jIChtYXJrX3VzZWQpOiBEb24ndCBpbnN0YW50aWF0ZSBhbnl0aGluZyBpZgoJc2tpcF9ldmFsdWF0aW9uLgoKMjAwMy0wNC0xNCAgWmllbW93aXQgTGFza2kgIDx6bGFza2lAYXBwbGUuY29tPgoKCSogdHJlZS5jIChidWlsZF9jcGx1c19hcnJheV90eXBlXzEpOiBEbyBub3QgY2FsbAoJdXNlc190ZW1wbGF0ZV9wYXJtcygpIG9uIGEgTlVMTCBpbmRleF90eXBlLgoKMjAwMy0wNC0xMyAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IFByZXNlcnZlIHB1cmUgYW5kIG1hbGxvYyBhdHRyaWJ1dGVzLgoKMjAwMy0wNC0xMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTAzMDAKCSogaW5pdC5jIChidWlsZF9uZXdfMSk6IFJlb3JnYW5pemUuCgoyMDAzLTA0LTEyICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoaW5pdGlhbGl6ZV9hcnJheSkKCSogZGVjbC5jIChyZXNoYXBlX2luaXQpCgkqIGRlY2wyLmMgKGJ1aWxkX2V4cHJfZnJvbV90cmVlKQoJKiBpbml0LmMgKGJ1aWxkX3plcm9faW5pdCkKCSogcHQuYyAodHN1YnN0X2NvcHksIHRzdWJzdF9jb3B5X2FuZF9idWlsZCkKCSogcnR0aS5jICh0aW5mb19iYXNlX2luaXQsIGdlbmVyaWNfaW5pdGlhbGl6ZXIsIHB0cl9pbml0aWFsaXplcikKCShwdG1faW5pdGlhbGl6ZXIsIGNsYXNzX2luaXRpYWxpemVyLCBnZXRfcHNldWRvX3RpX2luaXQpCgkqIHNlbWFudGljcy5jIChmaW5pc2hfY29tcG91bmRfbGl0ZXJhbCkKCSogdHlwZWNrLmMgKGJ1aWxkX3B0cm1lbWZ1bmMxKQoJKiB0eXBlY2syLmMgKHN0b3JlX2luaXRfdmFsdWUsIHByb2Nlc3NfaW5pdF9jb25zdHJ1Y3RvcikKCShidWlsZF9mdW5jdGlvbmFsX2Nhc3QpOiBVc2UgYnVpbGRfY29uc3RydWN0b3IuCgoyMDAzLTA0LTEyICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChwcmludF96X2NhbmRpZGF0ZXMpOiBVc2UgZ2NjX2dldHRleHRfd2lkdGgsIG5vdAoJc3RybGVuLCB0byBkZXRlcm1pbmUgaG93IG11Y2ggcGFkZGluZyB0byB1c2UuCgoyMDAzLTA0LTEwICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jOiBVcGRhdGUgYWxsIGNhbGxzIHRvIHNoYWRvd193YXJuaW5nLgoKMjAwMy0wNC0xMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGxheW91dF9jbGFzc190eXBlKTogQ29ycmVjdCBoYW5kbGluZyBmb3Igb3ZlcmxvbmcKCWJpdC1maWVsZHMgd2hvc2Ugd2lkdGggaXMgdGhlIHNhbWUgYXMgYW4gaW50ZWdlciB0eXBlLgoKMjAwMy0wNC0wNiAgWmFjayBXZWluYmVyZyAgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmRlZjogTWFrZSBmb3VydGggZWxlbWVudCBmb3IgYWxsICdjJyBhbmQgJ3gnIG5vZGVzIHplcm8uCgkqIGNwLWxhbmcuYyAoY3BfdHJlZV9zaXplKTogTmV3IGZ1bmN0aW9uLgoJKExBTkdfSE9PS1NfVFJFRV9TSVpFKTogT3ZlcnJpZGUuCgoJKiBjcC10cmVlLmggKFNPVVJDRV9MT0NVUywgU1JDTE9DX0ZJTEUsIFNSQ0xPQ19MSU5FLCBzdHJ1Y3QKCXRyZWVfc3JjbG9jLCBUU19DUF9DT01NT04sIFRTX0NQX1NSQ0xPQyk6IEtpbGwuCgkodW5pb24gbGFuZ190cmVlX25vZGUpOiBSZW1vdmUgY29tbW9uIGFuZCBzcmNsb2MgbWVtYmVycy4KCShidWlsZF9zcmNsb2NfaGVyZSk6IERvbid0IHByb3RvdHlwZS4KCSogZGVjbC5jIChjcF90cmVlX25vZGVfc3RydWN0dXJlKTogS2lsbCBTUkNMT0MgY2FzZS4KCSogcHQuYyAocGVuZGluZ190ZW1wbGF0ZXMpOiBDb3JyZWN0IGNvbW1lbnQuCgkqIHRyZWUuYyAoYnVpbGRfc3JjbG9jLCBidWlsZF9zcmNsb2NfaGVyZSk6IEtpbGwuCgoyMDAzLTA0LTA2ICBaYWNrIFdlaW5iZXJnICAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYzogSW5jbHVkZSBpbnRsLmguCgkocHJpbnRfel9jYW5kaWRhdGUpOiBBbHdheXMgdXNlIGluZm9ybTsgZ2V0IHJpZCBvZiBlcnJmbgoJYXJndW1lbnQuIFJlb3JnYW5pemUgc28gdGhhdCBhbGwgdGhlIHN0cmluZ3MgZ2V0IHBpY2tlZCB1cAoJYnkgeGdldHRleHQuICBOb3RlIG9ibGlnYXRpb24gb2YgY2FsbGVyIHRvIHBhc3MgZmlyc3QgYXJndW1lbnQKCXRocm91Z2ggZ2V0dGV4dC4KCShwcmludF96X2NhbmRpZGF0ZXMpOiBVcGRhdGUgdG8gbWF0Y2guICBJbmRlbnQgc2Vjb25kIGFuZAoJc3VjY2Vzc2l2ZSBjYW5kaWRhdGVzIGJ5IHN0cmxlbigpIG9mIHRyYW5zbGF0ZWQgbWVzc2FnZS4KCShqb3VzdCk6IFJlc3RydWN0dXJlIGFtYmlndW91cy1jb252ZXJzaW9uIHBlZHdhcm4gc28gdGhhdAoJdHJhbnNsYXRvcnMgc2VlIGEgY29tcGxldGUgc2VudGVuY2UuICBVcGRhdGUgY2FsbHMgdG8KCXByaW50X3pfY2FuZGlkYXRlLgoKCSogTWFrZS1sYW5nLmluIChjcC9jYWxsLm8pOiBVcGRhdGUgZGVwZW5kZW5jaWVzLgoKMjAwMy0wNC0wNSAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogZGVjbC5jIChzZXRfY3VycmVudF9iaW5kaW5nX2xldmVsKTogRGVsZXRlLCByZXZlcnQgbGFzdCBjaGFuZ2UuCgkoY3VycmVudF9iaW5kaW5nX2xldmVsKTogTW9kaWZ5IHRvIGFsbG93IGl0IGFzIGFzIGx2YWx1ZS4KCjIwMDMtMDQtMDQgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIG5hbWUtbG9va3VwLmMgKGZpbmRfYmluZGluZyk6IFBhc3MgYXBwcm9wcmlhdGUgcG9pbnRlciB0eXBlIHRvCglQT1BfVElNRVZBUl9BTkRfUkVUVVJOLgoKMjAwMy0wNC0wMyAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogTWFrZS1sYW5nLmluIChjcC13YXJuKTogQWRkICQoU1RSSUNUX1dBUk4pLgoJKiBjcC10cmVlLmg6IERvbid0IGluc2lzdCBvbiBoYXZpbmcgR05VQy4KCjIwMDMtMDQtMDMgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogY3Z0LmMgKG9jcF9jb252ZXJ0KTogT25seSBhYm9ydCBpZiB3ZSB0cnkgdG8gY29udmVydCBhbiBvYmplY3QKCW9mIFRSRUVfQUREUkVTU0FCTEUgdHlwZS4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YWJsZSk6IFNldCBERUNMX0FMSUdOIGhlcmUuCgkoZ2V0X3Z0YWJsZV9kZWNsKTogTm90IGhlcmUuCgkobGF5b3V0X3Z0YWJsZV9kZWNsKTogT3IgaGVyZS4KCShjcmVhdGVfdnRhYmxlX3B0cik6IE9yIGhlcmUuCgkobGF5b3V0X2NsYXNzX3R5cGUpOiBPciBoZXJlLgoJKGNoZWNrX2JpdGZpZWxkX2RlY2wpOiBEb24ndCBtZXNzIHdpdGggZmllbGQgYWxpZ25tZW50LgoKMjAwMy0wNC0wMyAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogb3BlcmF0b3JzLmRlZiAoREVGX1NJTVBMRV9PUEVSQVRPUiwgREVGX0FTU05fT1BFUkFUT1IsCglERUZfQVNTTl9PUEVSQVRPUik6IERlbGV0ZSBzcHVyaW91cyBzZW1pLWNvbG9uLgoJKiBydHRpLmMgKGRmc19jbGFzc19oaW50X21hcmspOiBMaWtld2lzZS4KCgkqIGRlY2wuYyAocHVzaF9sb2NhbF9uYW1lLCBwdXNoX2NsYXNzX2xldmVsX2JpbmRpbmcsCgltYXliZV9pbmplY3RfZm9yX3Njb3BlX3Zhcik6IERvbid0IHVzZSBQT1BfVElNRVZBUl9BTkRfUkVUVVJOIGluCglmdW5jdGlvbnMgcmV0dXJuaW5nIHZvaWQuCgkqIGRlY2wyLmMgKGFkZF91c2luZ19uYW1lc3BhY2UpOiBMaWtld2lzZS4KCgkqIGRlY2wuYyAocHJpbnRfYmluZGluZ19sZXZlbCwgcHJpbnRfb3RoZXJfYmluZGluZ19zdGFjaywKCXByaW50X2JpbmRpbmdfc3RhY2spOiBDYXN0IGFyZ3VtZW50IG9mICVwIHNwZWNpZmllciB0byB2b2lkKi4KCSogcHRyZWUuYyAoY3h4X3ByaW50X2RlY2wpOiBMaWtld2lzZS4KCgkqIGNwLXRyZWUuaCAoVkFSX09SX0ZVTkNUSU9OX0RFQ0xfQ0hFQ0ssCglWQVJfRlVOQ1RJT05fT1JfUEFSTV9ERUNMX0NIRUNLLAoJVkFSX1RFTVBMX1RZUEVfT1JfRlVOQ1RJT05fREVDTF9DSEVDSywgUkVDT1JEX09SX1VOSU9OX1RZUEVfQ0hFQ0ssCglCT1VORF9URU1QTEFURV9URU1QTEFURV9QQVJNX1RZUEVfQ0hFQ0ssIExBTkdfVFlQRV9DTEFTU19DSEVDSywKCUxBTkdfVFlQRV9QVFJNRU1fQ0hFQ0ssIExBTkdfREVDTF9VMl9DSEVDSyk6IEFkZCBfX2V4dGVuc2lvbl9fLgoKCSogZGVjbC5jIChzZXRfY3VycmVudF9iaW5kaW5nX2xldmVsKTogTmV3IG1hY3JvLiAgVXNlIHRocm91Z2hvdXQKCXdoZW4gc2V0dGluZyB0aGUgY3VycmVudCBiaW5kaW5nIGxldmVsLgoKCSogY3AtdHJlZS5oIChjcF9sdmFsdWVfa2luZCwgYmFzZV9hY2Nlc3MpOiBEZWxldGUgdHJhaWxpbmcgY29tbWEKCWluIGVudW0uCgkqIG1ldGhvZC5jIChtYW5nbGluZ19mbGFncyk6IExpa2V3aXNlLgoKCSogY3AtdHJlZS5oIChsYW5nX3R5cGVfaGVhZGVyKTogQWRkIF9fZXh0ZW5zaW9uX18gYW5kIHVzZQoJQ0hBUl9CSVRGSUVMRCBmb3IgbWVtYmVycy4KCjIwMDMtMDQtMDIgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCVBSIG90aGVyLzkyNzQKCSogbWFuZ2xlLmM6IEluY2x1ZGUgZ3QtY3AtbWFuZ2xlLmguCgkoc3Vic3RfaWRlbnRpZmllcnMpOiBNYXJrIHdpdGggR1RZLgoJKiBjb25maWctbGFuZy5pbiAoZ3RmaWxlcyk6IEFkZCBjcC9tYW5nbGUuYy4KCSogTWFrZS1sYW5nLmluOiAoZ3QtY3AtbWFuZ2xlLmgpOiBOZXcgcnVsZS4KCShjcC9tYW5nbGUubyk6IERlcGVuZHMgb24gZ3QtY3AtbWFuZ2xlLmguCgoyMDAzLTA0LTAxICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCgkqIGNvbmZpZy1sYW5nLmluIChndGZpbGVzKTogQWRkIFwkKHNyY2RpcikvY3AvbmFtZS1sb29rdXAuYwoJYWZ0ZXIgXCQoc3JjZGlyKS9jcC9uYW1lLWxvb2t1cC5oLgoJKiBuYW1lLWxvb2t1cC5jOiAoY3h4X2JpbmRpbmdfbWFrZSk6IFVzZSBnZ2NfYWxsb2NfY2xlYXJlZGluc3RlYWQKCW9mIGdnY19hbGxvYy4gIEluY2x1ZGUgZ3QtY3AtbmFtZS1sb29rdXAuaCBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlLgoJKiBNYWtlLWxhbmcuaW46IChndC1jcC1uYW1lLWxvb2t1cC5oKTogSXMgZ2VuZXJhdGVkIGJ5IGdlbmd0eXBlLgoJKGNwL25hbWUtbG9va3VwLm8pOiBEZXBlbmRzIG9uIGd0LWNwLW5hbWUtbG9va3VwLmguCgoyMDAzLTAzLTMxICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBqYXZhLzEwMTQ1CgkqIGNsYXNzLmMgKGNoZWNrX2ZpZWxkX2RlY2wpOiBEb24ndCBzZXQgREVDTF9BTElHTi4KCjIwMDMtMDMtMzAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzc2NDcKCSogZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IFRpZHksIHNsaWdodGx5LgoJKiBzZWFyY2guYyAobG9va3VwX2ZpZWxkXzEpOiBBZGQgd2FudF90eXBlIHBhcmFtZXRlci4KCShsb29rdXBfZmllbGRfcik6IEFkanVzdCBjYWxsIHRvIGxvb2t1cF9maWVsZF8xLgoKMjAwMy0wMy0zMCAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBNYWtlLWxhbmcuaW4gKGNwL25hbWUtbG9va3VwLm8pOiBBZGQgbW9yZSBkZXBlbmRlbmNpZXMuCgoyMDAzLTAzLTMwICBHYWJyaWVsIERvcyBSZWlzIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogY3AtdHJlZS5oIChiaW5kaW5nX2Zvcl9uYW1lOiBNb3ZlIHRvIG5hbWUtbG9va3VwLmggIEFkanVzdAoJcHJvdG90eXBlLgoJKGN4eF9zY29wZV9maW5kX2JpbmRpbmdfZm9yX25hbWUpOiBMaWtld2lzZS4KCSogZGVjbC5jIChmaW5kX2JpbmRpbmc6IE1vdmUgdG8gbmFtZS1sb29rdXAuYy4KCShiaW5kaW5nX2Zvcl9uYW1lKTogTGlrZXdpc2UuCgkoY3h4X3Njb3BlX2ZpbmRfYmluZGluZ19mb3JfbmFtZSk6IExpa2V3aXNlLgoJKEJJTkRJTkdfTEVWRUwpOiAgUmVtb3ZlLgoJKHB1c2hfYmluZGluZyk6IFRpZHkuCgkocHVzaF9jbGFzc19iaW5kaW5nKTogTGlrZXdpc2UuCgkocG9wX2JpbmRpbmcpOiBMaWtld2lzZS4KCShwb3BsZXZlbCk6IExpa2V3aXNlLgoJKHBvcGxldmVsX2NsYXNzKTogTGlrZXdpc2UuCgkoc2V0X2lkZW50aWZpZXJfdHlwZV92YWx1ZV93aXRoX3Njb3BlKTogTGlrZXdpc2UuCgkocHVzaF9vdmVybG9hZGVkX2RlY2wpOiBMaWtld2lzZS4KCShsb29rdXBfdGFnKTogTGlrZXdpc2UuCgkodW5xdWFsaWZpZWRfbmFtZXNwYWNlX2xvb2t1cCk6IExpa2V3aXNlLgoJKGxvb2t1cF9uYW1lX2N1cnJlbnRfbGV2ZWwpOiBMaWtld2lzZS4KCShtYXliZV9pbmplY3RfZm9yX3Njb3BlX3Zhcik6IExpa2V3aXNlLgoJKG5hbWVzcGFjZV9iaW5kaW5nKTogTW92ZSB0byBuYW1lLWxvb2t1cC5jLgoJKHNldF9uYW1lc3BhY2VfYmluZGluZyk6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChsb29rdXBfdXNpbmdfbmFtZXNwYWNlKTogVGlkeS4KCShxdWFsaWZpZWRfbG9va3VwX3VzaW5nX25hbWVzcGFjZSk6IExpa2V3aXNlLgoJKGRvX3RvcGxldmVsX3VzaW5nX2RlY2wpOiBMaWtld2lzZS4KCSogbmFtZS1sb29rdXAuYzogSW5jbHVkZSAidGltZXZhci5oIgoJKiBuYW1lLWxvb2t1cC5oIChjeHhfc2NvcGUpOiAgRGVjbGFyZS4KCShzdHJ1Y3QgY3h4X2JpbmRpbmcpOiBMb3NlIG1lbWJlciAiaGFzX2xldmVsIi4gIEFkanVzdCAic2NvcGUiCgltZW1iZXIgZGVjbGFyYXRpb24uCgkoQklORElOR19TQ09QRSk6IEFkanVzdCBkZWZpbml0aW9uLgoJKEJJTkRJTkdfSEFTX0xFVkVMX1ApOiBSZW1vdmUuCgoyMDAzLTAzLTMwICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldD4KCgkqIG5hbWUtbG9va3VwLmM6IE5ldyBmaWxlLgoJKiBuYW1lLWxvb2t1cC5oOiBMaWtld2lzZS4uCgkqIGRlY2wuYyAocHVzaF9iaW5kaW5nKTogQWRqdXN0IHVzZSBjeHhfYmluZGluZ19tYWtlLgoJKGZyZWVfYmluZGluZ3MpOiBNb3ZlIHRvIG5hbWUtbG9va3VwLmMKCShwb3BfYmluZGluZyk6IFVzZSBjeHhfYmluZGluZ19mcmVlLgoJKGJpbmRpbmdfZm9yX25hbWUpOiBUaWR5LgoJKiBjcC10cmVlLmg6IEluY2x1ZGUgIm5hbWUtbG9va3VwLmgiCgkoY3h4X2JpbmRpbmdfbWFrZSk6IE1vdmUgdG8gbmFtZS1sb29rdXAuaAoJKGN4eF9iaW5kaW5nX2NsZWFyKTogTGlrZXdpc2UuCgkoc3RydWN0IGN4eF9iaW5kaW5nKTogTGlrZXdpc2UuCgkoTE9DQUxfQklORElOR19QKTogTGlrZXdpc2UuCgkoSU5IRVJJVEVEX1ZBTFVFX0JJTkRJTkdfUCk6IExpa2V3aXNlLgoJKEJJTkRJTkdfU0NPUEUpOiBMaWtld2lzZS4KCShCSU5ESU5HX0hBU19MRVZFTF9QKTogTGlrZXdpc2UuCgkoQklORElOR19WQUxVRSk6IExpa2V3aXNlLgoJKEJJTkRJTkdfVFlQRSk6IExpa2V3aXNlLgoJKiBjb25maWctbGFuZy5pbiAoZ3RmaWxlcyk6IEFkZCBjcC9uYW1lLWxvb2t1cC5oCgkqIE1ha2UtbGFuZy5pbiAoY3AvbmFtZS1sb29rdXAubyk6IE5ldyBydWxlLgoJKENYWF9PQkpTKTogQWRkIGNwL25hbWUtbG9va3VwLm8KCShDWFhfVFJFRV9IKTogQWRkIGNwL25hbWUtbG9va3VwLmgKCjIwMDMtMDMtMjggIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy8xMDI0NQoJKiBjdnQuYyAoZm9yY2VfcnZhbHVlKTogTmV3IGZuLgoJKiBjYWxsLmMgKGJ1aWxkX2NvbmRpdGlvbmFsX2V4cHIpOiBVc2UgaXQuCgkqIGNwLXRyZWUuaDogRGVjbGFyZSBpdC4KCjIwMDMtMDMtMjggIE1pa2UgU3R1bXAgIDxtcnNAYXBwbGUuY29tPgoKCSogZXJyb3IuYyAoZHVtcF9leHByKTogQWRkIDB4IHRvIHByaW50ZWQgaGV4IG51bWJlcnMgdG8gbWFrZQoJb3V0cHV0IG1hdGNoIHNvdXJjZSBjb2RlIGJldHRlci4KCjIwMDMtMDMtMjggIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEwMjE4CgkqIGRlY2wuYyAoZ3Jva2ZuZGVjbCk6IFJldHVybiBOVUxMX1RSRUUgZm9yIGJvZ3VzIG91dC1vZi1jbGFzcwoJZGVmaW5pdGlvbnMuCgoJKiBkZWNsMi5jIChnZW5lcmF0ZV9jdG9yX29yX2R0b3JfZnVuY3Rpb24pOiBUb2xlcmF0ZSBhCglub24tZXhpc3RhbnQgc3NkZl9kZWNscyBhcnJheS4KCShmaW5pc2hfZmlsZSk6IENhbGwgZ2VuZXJhdG9yX2N0b3Jfb3JfZHRvcl9mdW5jdGlvbiB3aGVuIHRoZXJlIGFyZQoJc3RhdGljIGNvbnN0cnVjdG9ycyBvciBkZXN0cnVjdG9ycyBhbmQgbm8gb3RoZXIgc3RhdGljCglpbml0aWFsaXphdGlvbnMuCgoyMDAzLTAzLTI4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMDA0NwoJKiBkZWNsMi5jIChmaW5pc2hfZmlsZSk6IERvbid0IHdhcm4gYWJvdXQgZXhwbGljaXRseSBpbnN0YW50aWF0ZWQKCWlubGluZSBkZWNscy4KCjIwMDMtMDMtMjcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEwMjI0CgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IE9ubHkgY2hlY2sgaW5zdGFudGlhdGVkIGFyZ3MgaWYKCXRoZXkgZG8gbm90IGNvbnRhaW4gdGVtcGxhdGUgcGFyYW1ldGVycy4KCjIwMDMtMDMtMjcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzEwMTU4CgkqIHBhcnNlci5jIChjcF9wYXJzZXJfZnVuY3Rpb25fZGVmaW5pdGlvbik6IFNldAoJREVDTF9JTklUSUFMSVpFRF9JTl9DTEFTUyBmb3IgbWVtYmVycy4KCSogcHQuYyAoaW5zdGFudGlhdGVfZGVjbCk6IE9ubHkgcmVkdWNlIHRoZSB0ZW1wbGF0ZSBhcmdzIGZvcgoJZnJpZW5kcyB0aGF0IGFyZSBub3QgZGVmaW5lZCBpbiBjbGFzcy4KCjIwMDMtMDMtMjUgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogY2FsbC5jIChwcmludF96X2NhbmRpZGF0ZSk6IENoYW5nZSBuYW1lIG9mIGZpcnN0IGFyZyB0byBtc2dpZC4KCShqb3VzdCk6IEFkZCBjb21tZW50IGZvciB0cmFuc2xhdG9ycy4KCjIwMDMtMDMtMjQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk4OTgsIFBSIGMrKy8zODMsIERSIDMyMgoJKiBwdC5jIChtYXliZV9hZGp1c3RfdHlwZXNfZm9yX2RlZHVjdGlvbikgPERFRFVDRV9DT05WPjogTG9vawoJdGhyb3VnaCByZWZlcmVuY2UgdHlwZXMgb24gYm90aCBQQVJNIGFuZCBBUkcuCgoyMDAzLTAzLTI0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xMDExOQoJKiBlcnJvci5jIChkdW1wX2V4cHIpIDxCQVNFTElOSz46IFVzZSBkdW1wX2V4cHIuCgkqIHB0LmMgKG1heWJlX2ZvbGRfbm9udHlwZV9hcmdzKTogTmV3IGZ1bmN0aW9uLgoJKHRzdWJzdF9jb3B5KSA8U0NPUEVfUkVGPjogU3Vic3QgYW55IHRlbXBsYXRlX2lkIGFyZ3MuCgk8VEVNUExBVEVfSURfRVhQUj46IEJyZWFrIG91dCBmb2xkaW5nIGNvZGUsIGNhbGwgaXQuCgkodHN1YnN0X2NvcHlfYW5kX2J1aWxkKSA8VEVNUExBVEVfSURfRVhQUj46IENhbGwKCW1heWJlX2ZvbGRfbm9udHlwZV9hcmdzLgoKMjAwMy0wMy0yNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTAwMjYKCSogZGVjbDIuYyAoYXJnX2Fzc29jX3R5cGUpIDxFUlJPUl9NQVJLPjogRG9uJ3QgZGllLgoKMjAwMy0wMy0yMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNzA4NgoJKiB0eXBlY2suYyAoY3h4X21hcmtfYWRkcmVzc2FibGUpOiAgQWRqdXN0IGNhbGwgdG8KCWdlbl9tZW1fYWRkcmVzc29mIG9yIHB1dF92YXJfaW50b19zdGFjay4KCjIwMDMtMDMtMjIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk5NzgsIGMrKy85NzA4CgkqIGNwLXRyZWUuaCAoaW5zdGFudGlhdGVfdGVtcGxhdGUpOiBBZGQgdHN1YnN0X2ZsYWdzIHBhcmFtZXRlci4KCSogY2FsbC5jIChhZGRfdGVtcGxhdGVfY2FuZGlkYXRlX3JlYWwpOiBBZGp1c3QKCWluc3RhbnRpYXRlX3RlbXBsYXRlIGNhbGwuCgkqIGNsYXNzLmMgKHJlc29sdmVfYWRkcmVzc19vZl9vdmVybG9hZGVkX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoYnVpbGRfZW51bWVyYXRvcik6IFNldCBUUkVFX0NPTlNUQU5ULgoJKiBwdC5jIChjaGVja19pbnN0YW50aWF0ZWRfYXJncyk6IE5ldy4KCShwdXNoX2lubGluZV90ZW1wbGF0ZV9wYXJtc19yZWN1cnNpdmUpOiBTZXQgVFJFRV9DT05TVEFOVCwKCVRSRUVfUkVBRE9OTFkuCgkoYnVpbGRfdGVtcGxhdGVfcGFybV9pbmRleCk6IENvcHkgVFJFRV9DT05TVEFOVCwgVFJFRV9SRUFET05MWS4KCShyZWR1Y2VfdGVtcGxhdGVfcGFybV9sZXZlbCk6IExpa2V3aXNlLgoJKHByb2Nlc3NfdGVtcGxhdGVfcGFybSk6IExpa2V3aXNlLgoJKGNoZWNrX2V4cGxpY2l0X3NwZWNpYWxpemF0aW9uKTogQWRqdXN0IGluc3RhbnRpYXRlX3RlbXBsYXRlIGNhbGwuCgkoY29udmVydF90ZW1wbGF0ZV9hcmd1bWVudCk6IERvbid0IGNoZWNrIG5vbi10eXBlIGFyZ3VtZW50IGhlcmUuCgkobG9va3VwX3RlbXBsYXRlX2NsYXNzKTogQ2hlY2sgdGhlbSBoZXJlLgoJKHRzdWJzdF9mcmllbmRfZnVuY3Rpb24pOiBBZGp1c3QgaW5zdGFudGlhdGVfdGVtcGxhdGUgY2FsbC4KCShpbnN0YW50aWF0ZV90ZW1wbGF0ZSk6IEFkZCB0c3Vic3RfZmxhZ3MgcGFyYW1ldGVyLCB1c2UgaXQuIENoZWNrCglpbnN0YW50aWF0ZWQgYXJncy4KCjIwMDMtMDMtMjEgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmM6IFVwZGF0ZSBjYWxscyB0byBzaGFkb3dfd2FybmluZy4KCjIwMDMtMDMtMjEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk4OTgKCSogZXJyb3IuYyAoZHVtcF9kZWNsKSBbQ09OU1RfREVDTF06IFByaW50ICc8ZW51bWVyYXRvcj4nLgoJKGR1bXBfZXhwcikgW0NPTlNUUlVDVE9SXTogUHJpbnQgZGVmYXVsdCBjdG9yIGFzIGEgZnVuY3Rpb24gY2FsbC4KCjIwMDMtMDMtMjAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC9kZWNsMi5jIChhcmdfYXNzb2NfY2xhc3MpOiBDb3JyZWN0IGNoZWNrIGZvciBuYW1lc3BhY2Utc2NvcGUKCWZyaWVuZHMuCgkqIGNwL3B0LmMgKGluc3RhbnRpYXRlX2NsYXNzX3RlbXBsYXRlKTogRml4IGZvcm1hdHRpbmcuCgoyMDAzLTAzLTE0ICBNYXR0IEF1c3Rlcm4gIDxhdXN0ZXJuQGFwcGxlLmNvbT4KCgkqIGNwLXRyZWUuaCAodW5lbWl0dGVkX3RpbmZvX2RlY2xzKTogRGVjbGFyYXRpb24gb2YgYSBuZXcgdmFycmF5LgoJKHVuZW1pdHRlZF90aW5mb19kZWNsX3ApOiBSZW1vdmUuCgkoZW1pdF90aW5mb19kZWNsKTogQ2hhbmdlIGRlY2xhcmF0aW9uIHRvIHJlbW92ZSB1bnVzZWQgcGFyYW1ldGVyLgoJKiBkZWNsMi5jIChmaW5pc2hfZmlsZSk6IENoYW5nZSB0aW5mbyBlbWlzc2lvbiB0byBsb29wIHRocm91Z2gKCXVuZW1pdHRlZF90aW5mb19kZWNscyBhcnJheSBpbnN0ZWFkIG9mIGxvb3BpbmcgdGhyb3VnaCBhbGwgZGVjbHMuCgkqIHJ0dGkuYyAodW5lbWl0dGVkX3RpbmZvX2RlY2xfcCk6IERlY2xhcmUgYXMgc3RhdGljLCByZW1vdmUKCXVudXNlZCBzZWNvbmQgcGFyYW1ldGVyLgoJKGluaXRfcnR0aV9wcm9jZXNzaW5nKTogaW5pdGlhbGl6ZSB1bmVtaXR0ZWRfdGluZm9fZGVjbHMgdmFycmF5LgoJKGdldF90aW5mb19kZWNscyk6IHB1c2ggbmV3IHRpbmZvIGRlY2wgb24gdW5lbWl0dGVkX3RpbmZvX2RlY2xzLgoJKGVtaXRfdGluZm9fZGVjbCk6IHJlbW92ZSB1bnVzZWQgc2Vjb25kIHBhcmFtZXRlciwgYWRkIGFzc2VydGlvbgoJdGhhdCBkZWNsIGhhc24ndCBhbHJlYWR5IGJlZW4gZW1pdHRlZC4KCjIwMDMtMDMtMTkgIE5hdGhhbmFlbCBOZXJvZGUgIDxuZXJvZGVuQGdjYy5nbnUub3JnPgoKCSogZHVtcC5jIChjcF9kdW1wX3RyZWUpLCBjcC10cmVlLmggKGNwX2R1bXBfdHJlZSk6IENoYW5nZSByZXR1cm4KCXR5cGUgZnJvbSAnaW50JyB0byAnYm9vbCcuIFJlcGxhY2UgMCBhbmQgMSB3aXRoIHRydWUgYW5kIGZhbHNlIGluCglyZXR1cm4gc3RhdGVtZW50cy4KCjIwMDMtMDMtMTkgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy84MzE2LCBjKysvOTMxNSwgYysrLzEwMTM2CgkqIGNhbGwuYyAocHJpbnRfel9jYW5kaWRhdGUpOiBTcGxpdCBvdXQgZnJvbS4uLgoJKHByaW50X3pfY2FuZGlkaWF0ZXMpOiAuLi5oZXJlLgoJKGpvdXN0KTogVXNlIGl0LgoKMjAwMy0wMy0xNyAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgYysrLzEwMDMxCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogVXNlIHRoZSBuZXcgdHlwZSB3aGVuIHByb3RvdHlwaW5nCglhbnRpY2lwYXRlZCBkZWNscywgZXZlbiB3aGVuIHRoZSB0eXBlcyBtYXRjaC4gIFRoaXMgZGVmaW5lcyB0aGUKCWV4Y2VwdGlvbiBsaXN0IGZvciB0aGUgYnVpbHQtaW4gZnVuY3Rpb24uCgoyMDAzLTAzLTE3ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBjKysvMTAwOTEKCSogdHlwZWNrLmMgKGJ1aWxkX2NsYXNzX21lbWJlcl9hY2Nlc3NfZXhwcik6IENvbXBhcmUKCVRZUEVfTUFJTl9WQVJJQU5Ucy4KCjIwMDMtMDMtMTcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk2MzkKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9kZWNsYXJhdG9yX2lkKTogQ2xlYXIgcGFyc2VyLT5zY29wZS4KCjIwMDMtMDMtMTYgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy85OTkzCgkqIGRlY2wuYyAoZmluaXNoX2Z1bmN0aW9uKTogT25seSBhbGxvdyB0aGUgTlJWTyB0byB1c2UgdmFyaWFibGVzCglkZWNsYXJlZCBhdCBmdW5jdGlvbiBzY29wZS4KCjIwMDMtMDMtMTcgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIE1ha2UtbGFuZy5pbiAoY3AvVEFHUyk6IFJlbW92ZS4KCjIwMDMtMDMtMTYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk2MjkKCSogY3AtdHJlZS5oIChzdHJ1Y3QgbGFuZ3VhZ2VfZnVuY3Rpb24pOiBBZGQgaW5fYmFzZV9pbml0aWFsaXplci4KCShpbl9iYXNlX2luaXRpYWxpemVyKTogZGVmaW5lIGl0LgoJKGV4cGFuZF9tZW1iZXJfaW5pdCk6IFJlbW92ZSBJTklUIHBhcmFtLgoJKiBpbml0LmMgKGV4cGFuZF9tZW1iZXJfaW5pdCk6IFJlbW92ZSBJTklUIHBhcmFtLCByZXR1cm4gdGhlIG1lbWJlci4KCShlbWl0X21lbV9pbml0aWFsaXplcnMpOiBTZXQgaW5fYmFzZV9pbml0aWFsaXplci4KCSogY2xhc3MuYyAoYnVpbGRfYmFzZV9wYXRoKTogQ2hlY2sgaW5fYmFzZV9pbml0aWFsaXplci4KCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9tZW1faW5pdGlhbGl6ZXIpOiBTZXQgaW5fYmFzZV9pbml0aWFsaXplci4KCSogcHQuYyAodHN1YnN0X2luaXRpYWxpemVyX2xpc3QpOiBMaWtld2lzZS4KCjIwMDMtMDMtMTYgICBHYWJyaWVsIERvcyBSZWlzIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogZGVjbC5jIChiaW5kaW5nX2Zvcl9uYW1lKTogRml4IGluaXRpYWxpemF0aW9uIHRoaW5rby4KCjIwMDMtMDMtMTUgIEdhYnJpZWwgRG9zIFJlaXMgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJQ29tcGlsZS10aW1lIGltcHJvdmVtZW50OiAyL24uCgkqIGNwLXRyZWUuaCAoc3RydWN0IGN4eF9iaW5kaW5nKTogTmV3IGRhdGF0eXBlOwoJKHN0cnVjdCBsYW5nX2lkZW50aWZpZXIpOiBVc2UgaXQuCgkoTE9DQUxfQklORElOR19QKTogQWRqdXN0IGRlZmluaXRpb24uCgkoSU5IRVJJVEVEX1ZBTFVFX0JJTkRJTkdfUCk6IExpa2V3aXNlLgoJKEJJTkRJTkdfU0NPUEUpOiBMaWtld2lzZS4KCShCSU5ESU5HX0hBU19MRVZFTF9QKTogTGlrZXdpc2UuCgkoQklORElOR19WQUxVRSk6IExpa2V3aXNlLgoJKEJJTkRJTkdfVFlQRSk6IExpa2V3aXNlLgoJKElERU5USUZJRVJfVkFMVUUpOiBMaWtld2lzZS4KCShzdHJ1Y3QgdHJlZV9iaW5kaW5nKTogUmVtb3ZlLgoJKFRTX0NQX0JJTkRJTkcpOiBMaWtld2lzZS4KCSgodW5pb24gbGFuZ190cmVlX25vZGUpOiBSZW1vdmUgZmllbGQgImJpbmRpbmciLgoJKGN4eF9iaW5kaW5nX2NsZWFyKTogTmV3IG1hY3JvLgoJKGJpbmRpbmdfZm9yX25hbWUpOiBBZGp1c3QgcmV0dXJuIHR5cGUuCgkocXVhbGlmaWVkX2xvb2t1cF91c2luZ19uYW1lc3BhY2UpOiBBZGp1c3QgcHJvdG90eXBlLgoJKGxvb2t1cF91c2luZ19uYW1lc3BhY2UpOiBBZGp1c3QgcHJvdG90eXBlLgoJKGN4eF9zY29wZV9maW5kX2JpbmRpbmdfZm9yX25hbWUpOiBEZWNsYXJlLgoJKiBjcC10cmVlLmRlZjogUmVtb3ZlIENQTFVTX0JJTkRJTkcgZGVmaW5pdGlvbi4KCSogZGVjbC5jIChwdXNoX2JpbmRpbmcpOiBBZGp1c3QgbG9jYWwgdmFyaWFibGUgdHlwZS4KCShhZGRfYmluZGluZyk6IExpa2V3aXNlLgoJKHB1c2hfY2xhc3NfYmluZGluZyk6IExpa2V3aXNlLgoJKHBvcF9iaW5kaW5nKTogTGlrZXdpc2UuCgkocG9wbGV2ZWwpOiBMaWtld2lzZS4KCShwb3BsZXZlbF9jbGFzcyk6IExpa2V3aXNlLgoJKGZyZWVfYmluZGluZ3MpOiAgQWRqdXN0IHR5cGUuCgkoZmluZF9iaW5kaW5nKTogQWRqdXN0IHJldHVybiB0eXBlLCBhZGQgYSB0aGlyZCBwYXJhbWV0ZXIuIFJlbW92ZQoJbm9uLXVzZWZ1bCBhc3NlcnRpb24gbm93IHRoYXQgd2UgdXNlIHN0YXRpYyB0eXBpbmcuCgkoY3h4X3Njb3BlX2ZpbmRfYmluZGluZ19mb3JfbmFtZSk6IE5ldyBmdW5jdGlvbi4KCShiaW5kaW5nX2Zvcl9uYW1lKTogVXNlIGl0LiAgQWRqdXN0IGxvY2FsIHZhcmlhYmxlIHR5cGUuIFNpbXBsaWZ5LgoJKG5hbWVzcGFjZV9iaW5kaW5nKTogIFNpbXBsaWZ5LgoJKHNldF9uYW1lc3BhY2VfYmluZGluZyk6IExpa2V3aXNlLgoJKHNldF9pZGVudGlmaWVyX3R5cGVfdmFsdWVfd2l0aF9zY29wZSk6IEFkanVzdCBsb2NhbCB2YXJpYWJsZSB0eXBlLgoJKGxvb2t1cF90YWcpOiBEb24ndCB0eXBlLWFidXNlIG9mIGxvY2FsIHZhcmlhYmxlICdvbGQnLgoJKGxvb2t1cF9uYW1lc3BhY2VfbmFtZSk6IExpa2V3aXNlLiAgQWxsb2NhdGUgYmluZGluZyBvbiBzdGFjay4KCShzZWxlY3RfZGVjbCk6IEFkanVzdCBwcm90b3R5cGUuCgkodW5xdWFsaWZpZWRfbmFtZXNwYWNlX2xvb2t1cCk6ICBBbGxvY2F0ZSBiaW5kaW5nIG9uIHN0YWNrLgoJRG9uJ3QgdHlwZS1hYnVzZSBvZiBsb2NhbCB2YXJpYWJsZSAndmFsJy4KCShsb29rdXBfbmFtZV9yZWFsKTogTGlrZXdpc2UuCgkobWF5YmVfaW5qZWN0X2Zvcl9zY29wZV92YXIpOiBBZGp1c3QgbG9jYWwgdmFyaWFibGUgdHlwZS4KCShjcF90cmVlX25vZGVfc3RydWN0dXJlKTogUmVtb3ZlIENQTFVTX0JJTkRJTkcgY2FzZSBsYWJlbC4KCShuYW1lc3BhY2VfYmluZGluZyk6IEFkanVzdCBsb2dpYywgc2ltcGxpZnkuCgkoQklORElOR19MRVZFTCk6IEFkanVzdCBkZWZpbml0aW9uLgoJKHB1c2hfY2xhc3NfbGV2ZWxfYmluZGluZyk6IEFkanVzdCBsb2NhbCB2YXJpYWJsZSB0eXBlLgoJKHN0cnVjdCBjeHhfc2F2ZWRfYmluZGluZyk6IEFkanVzdCBmaWVsZCAnYmluZGluZycgdHlwZS4KCSogZGVjbDIuYyAoYW1iaWd1b3VzX2RlY2wpOiBBZGp1c3QgcHJvdG90eXBlLgoJKGxvb2t1cF91c2luZ19uYW1lc3BhY2UpOiBBZGp1c3QgbG9jYWwgdmFyaWFibGUgdHlwZS4KCShxdWFsaWZpZWRfbG9va3VwX3VzaW5nX25hbWVzcGFjZSk6IENhdGNoIHR5cGUgZXJyb3IgYW5kIGNvcnJlY3QKCWVuc3VlaW5nIGxvZ2ljIGVycm9yLgoJKGRvX25vbm1lbWJlcl91c2luZ19kZWNsKTogQWRqdXN0IGxvY2FsIHZhcmlhYmxlIHR5cGUuICBBbGxvY2F0ZQoJdGVtcG9yYXJ5IGN4eF9iaW5kaW5nIG9uIHN0YWNrLgoJKGRvX3RvcGxldmVsX3VzaW5nX2RlY2wpOiBBZGp1c3QgbG9jYWwgdmFyaWFibGUgdHlwZS4KCSogcHRyZWUuYyAoY3h4X3ByaW50X2N4eF9iaW5kaW5nKTogTmV3IGZ1bmN0aW9uLgoJKGN4eF9wcmludF9pZGVudGlmaWVyKTogVXNlIGl0LgoJKGN4eF9wcmludF94bm9kZSk6IERlbGV0ZSBDUExVU19CSU5ESU5HIGNhc2UgbGFiZWwuCgoyMDAzLTAzLTE1ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIHRyZWUuYyAoY291bnRfZnVuY3Rpb25zKTogRml4IHdoaXRlc3BhY2UuCgoyMDAzLTAzLTE1ICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuY28udWs+CgoJKiBNYWtlLWxhbmcuaW46IFVwZGF0ZS4KCjIwMDMtMDMtMTUgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy82NDQwCgkqIHB0LmMgKG1heWJlX3Byb2Nlc3NfcGFydGlhbF9zcGVjaWFsaXphdGlvbik6IEhhbmRsZQoJbWVtYmVyIGNsYXNzIHRlbXBsYXRlIHdoZW4gZW5jbG9zaW5nIGNsYXNzIHRlbXBsYXRlIGlzCglleHBsaWNpdCBzcGVjaWFsaXplZC4KCShtb3N0X2dlbmVyYWxfdGVtcGxhdGUpOiBTdG9wIGxvb2tpbmcgd2hlbiBERUNMIGlzIGFscmVhZHkKCXNwZWNpYWxpemVkLgoKMjAwMy0wMy0xMyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzk0MjAKCSogc2VhcmNoLmMgKGxvb2t1cF9jb252ZXJzaW9ucyk6IENhbGwgY29tcGxldGVfdHlwZSBoZXJlLgoJKiBjYWxsLmMgKGltcGxpY2l0X2NvbnZlcnNpb24pOiBOb3QgaGVyZS4KCjIwMDMtMDMtMTMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsMi5jIChkb19ub25tZW1iZXJfdXNpbmdfZGVjbCk6IENvcnJlY3QgaGFuZGxpbmcgb2YKCXNpbXVsdGFuZW91cyB0eXBlL25vbi10eXBlIGJpbmRpbmdzLgoKCSogY2FsbC5jIChpbml0aWFsaXplX3JlZmVyZW5jZSk6IFJlbW92ZSBib2d1cyBhc3NlcnRpb24uCgkqIGRlY2wuYyAoYnVpbGRfcHRybWVtZnVuY190eXBlKTogUmV2ZXJ0IGNoYW5nZSBvZiAyMDAzLTAzLTA5LgoKMjAwMy0wMy0xMiAgQW5kcmV3IExld3lja3kgIDxhbmRyZXdAbXhjLmNhPgoKCVBSIGMrKy83MDUwCgkqIGV4cHIuYyAoY3h4X2V4cGFuZF9leHByKTogUmV0dXJuIGNvbnN0MF9ydHggZm9yIHRocm93CglleHByZXNzaW9ucy4KCjIwMDMtMDMtMTEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk0NzQKCSogZGVjbDIuYyAoZG9fbm9ubWVtYmVyX3VzaW5nX2RlY2wpOiBEbyBub3QgY2FsbCBkdXBsaWNhdGUgZGVjbHMKCXRvIG1lcmdlIG9sZCBhbmQgbmV3IGRlY2xhcmF0aW9ucy4KCjIwMDMtMDMtMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZysrLjE6IFJlbW92ZS4KCSogTWFrZS1sYW5nLmluIChjKysuZ2VuZXJhdGVkLW1hbnBhZ2VzKTogQnVpbGQgY3AvZysrLjEuCgkoY3AvZysrLjEpOiBCdWlsZCBpdCBmcm9tIHNjcmF0Y2ggaW4gdGhlIGJ1aWxkIHRyZWUuCgkoYysrLmluc3RhbGwtbWFuKTogRGVwZW5kIG9uIGl0LiAgSW5zdGFsbCBpdCBmcm9tIHRoZSBidWlsZCB0cmVlLgoJKGMrKy5tb3N0bHljbGVhbik6IENsZWFuIGl0LgoKMjAwMy0wMy0xMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTQ3NAoJKiBkZWNsMi5jIChkb19ub25tZW1iZXJfdXNpbmdfZGVjbCk6IERvIG5vdCBjYWxsIGR1cGxpY2F0ZSBkZWNscwoJdG8gbWVyZ2Ugb2xkIGFuZCBuZXcgZGVjbGFyYXRpb25zLgoKCVBSIGMrKy85OTI0CgkqIGRlY2wyLmMgKGRvX25vbm1lbWJlcl91c2luZ19kZWNsKTogSWdub3JlIGFudGljaXBhdGVkIGJ1aWx0aW5zLgoKMjAwMy0wMy0xMSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzk4MjAKCSogc2VhcmNoLmMgKGxvb2t1cF9tZW1iZXIpOiBGaXggaGFuZGxpbmcgb2YgZnVuY3Rpb25zIGluIGEgY2xhc3MKCWJlaW5nIGRlZmluZWQuCgoyMDAzLTAzLTExICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy84NzAwCgkqIGNhbGwuYyAoY29udmVydF9jbGFzc190b19yZWZlcmVuY2UpOiBBZGp1c3QgdXNhZ2Ugb2YKCXNwbGljZV92aWFibGUuCgkoYW55X3ZpYWJsZSk6IFJlbW92ZS4KCShzcGxpY2VfdmlhYmxlKTogQ29tYmluZSB3aXRoIGFueV92aWFibGUuCgkocHJpbnRfel9jYW5kaWRhdGVzKTogQXZvaWQgcHJpbnRpbmcgZHVwbGljYXRlcy4KCShidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xKTogQWRqdXN0IHVzYWdlIG9mIHNwbGljZV92aWFibGUuCgkoYnVpbGRfbmV3X2Z1bmN0aW9uX2NhbGwpOiBMaWtld2lzZS4KCShidWlsZF9vcGVyYXRvcl9uZXdfY2FsbCk6IExpa2V3aXNlLgoJKGJ1aWxkX29iamVjdF9jYWxsKTogTGlrZXdpc2UuCgkoYnVpbGRfY29uZGl0aW9uYWxfZXhwcik6IExpa2V3aXNlLgoJKGJ1aWxkX25ld19vcCk6IExpa2V3aXNlLgoJKGJ1aWxkX25ld19tZXRob2RfY2FsbCk6IExpa2V3aXNlLgoJKGpvdXN0KTogUmVtb3ZlIHNwdXJpb3VzIGNvbW1lbnQuCgkqIGNwLXRyZWUuaCAoREVDTF9GUklFTkRMSVNUKTogQ29ycmVjdCBkb2N1bWVudGF0aW9uLgoJKiBkZWNsMi5jIChhcmdfYXNzb2NfY2xhc3MpOiBTaW1wbGlmeS4KCSogZnJpZW5kLmMgKGFkZF9mcmllbmQpOiBMaWtld2lzZS4KCjIwMDMtMDMtMTEgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy84NjYwCgkqIGRlY2wyLmMgKGNoZWNrX2NsYXNzZm4pOiBBIG1lbWJlciB0ZW1wbGF0ZSBvbmx5IG1hdGNoZXMgYQoJbWVtYmVyIHRlbXBsYXRlLgoKMjAwMy0wMy0xMSAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmNvLnVrPgoKCSogTWFrZS1sYW5nLmluIChDWFhfQ19PQkpTKTogVXBkYXRlLgoJKiBsYW5nLXNwZWNzLmg6IERvbid0IGRlZmluZSBfX0dOVUdfXyBoZXJlLgoKMjAwMy0wMy0xMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAocGVyZm9ybV9vdmVybG9hZF9yZXNvbHV0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX25ld19mdW5jdGlvbl9jYWxsKTogVXNlIGl0LgoJKGJ1aWxkX29wZXJhdG9yX25ld19jYWxsKTogTGlrZXdpc2UuCgkoYWRkX2NhbmRpZGF0ZXMpOiBBZGQgZXhwbGljaXRfdGFyZ3MgYW5kIHRlbXBsYXRlX29ubHkgcGFyYW1ldGVycy4KCShidWlsZF9uZXdfb3ApOiBBZGp1c3QgYWNjb3JkaW5nbHkuCgkqIGNwLXRyZWUuaCAoYnVpbGRfb3BlcmF0b3JfbmV3X2NhbGwpOiBOZXcgZnVuY3Rpb24uCgkoYnVpbGRfZnVuY3Rpb25fY2FsbF9yZWFsKTogUmVtb3ZlLgoJKGJ1aWxkX2Z1bmN0aW9uX2NhbGxfbWF5YmUpOiBMaWtld2lzZS4KCSogaW5pdC5jIChidWlsZF9uZXdfMSk6IFVzZSBidWlsZF9vcGVyYXRvcl9uZXdfY2FsbC4KCSogdHlwZWNrLmMgKGJ1aWxkX2Z1bmN0aW9uX2NhbGxfcmVhbCk6IFJlbmFtZSB0byAuLi4KCShidWlsZF9mdW5jdGlvbl9jYWxsKTogLi4uIHRoaXMuCgoyMDAzLTAzLTEwICBEZXZhbmcgUGF0ZWwgIDxkcGF0ZWxAYXBwbGUuY29tPgoKCVBSIGMrKy85Mzk0CgkqIGcrK3NwZWMuYyAobGFuZ19zcGVjaWZpY19kcml2ZXIpOiBVc2UgREVGQVVMVF9XT1JEX1NXVENIX1RBS0VTX0FSRy4KCjIwMDMtMDMtMTAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy85Nzk4CgkqIGRlY2wuYyAocHVzaF91c2luZ19kaXJlY3RpdmUpOiBQdXNoIGJlZm9yZSByZWN1cnNpbmcuCgoJUFIgYysrLzk4NjgsIGMrKy85NTI0CgkqIGNhbGwuYyAocmVzb2x2ZV9zY29wZWRfZm5fbmFtZSk6IEhhbmRsZSB0aGUgY2FzZSBvZiBhIGZ1bmN0aW9uCglwb2ludGVyIG1lbWJlci4KCgkqIGRlY2wyLmMgKGJ1aWxkX29mZnNldF9yZWZfY2FsbF9mcm9tX3RyZWUpOiBPbmx5IG1lc3Mgd2l0aCAndGhpcycKCWFyZ3VtZW50IGluIHRoZSBwb2ludGVyLXRvLW1lbWJlciBjYXNlLgoKMjAwMy0wMy0wOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTM3MwoJKiBjcC1sYW5nLmMgKGN4eF9nZXRfYWxpYXNfc2V0KTogVXNlIGFsaWFzIHNldCB6ZXJvIGZvcgoJcG9pbnRlcnMgdG8gbWVtYmVyIGZ1bmN0aW9ucy4KCglQUiBjKysvODUzNAoJKiBkZWNsLmMgKGJ1aWxkX3B0cm1lbWZ1bmNfdHlwZSk6IERvIG5vdCBhbGxvdyBkZWZhdWx0IGFyZ3VtZW50cwoJaW4gcG9pbnRlci10by1tZW1iZXItZnVuY3Rpb24gdHlwZXMuCgoyMDAzLTAzLTEwICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldD4KCgkqIGV4cHIuYyAoY3BsdXNfZXhwYW5kX2NvbnN0YW50KTogVXNlIEM5MCBwcm90b3R5cGUgc3R5bGUuCgkoY3h4X2V4cGFuZF9leHByKTogTGlrZXdpc2UuCgoyMDAzLTAzLTA5ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvOTk3MAoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IE9ubHkgY29weSBERUNMX1RIVU5LUyBmb3IgdmlydHVhbAoJZnVuY3Rpb25zLgoKMjAwMy0wMy0wOCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBsYW5nLXNwZWNzLmggKGMrKy1oZWFkZXIpOiBDaGFuZ2UgLnBjaCB0byAuZ2NoLgoKMjAwMy0wMy0wOCAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmNvLnVrPgoKCSogY3AtdHJlZS5oIChjeHhfaW5pdCk6IFVwZGF0ZSBwcm90b3R5cGUuCgkqIGxleC5jIChjeHhfaW5pdCk6IFNpbWlsYXJseS4KCjIwMDMtMDMtMDggIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk4MjMKCSogY3AtdHJlZS5oIChiZWdpbl9tZW1faW5pdGlhbGl6ZXJzKTogUmVtb3ZlLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX21lbV9pbml0aWFsaXplcl9saXN0KTogSW5saW5lIGl0IGhlcmUuCglEbyBub3QgY2FsbCBmaW5pc2hfbWVtX2luaXRpYWxpemVycyBpZiBub3QgaW4gYSBjb25zdHJ1Y3Rvci4KCShjcF9wYXJzZXJfY2xhc3NfaGVhZCk6IEZpeCB0eXBvIGluIGVycm9yIG1lc3NhZ2UuCgkqIHNlbWFudGljcy5jIChiZWdpbl9tZW1faW5pdGlhbGl6ZXJzKTogUmVtb3ZlLgoJKiB0ZXN0c3VpdGUvZysrLmRnL3BhcnNlci9jb25zdHJ1Y3RvcjEuQzogTmV3IHRlc3QuCgoJUFIgYysrLzk4MDkKCSogY2FsbC5jIChhZGRfZnVuY3Rpb25fY2FuZGlkYXRlKTogU2tpcCBidWlsdGluIGZ1Y3Rpb25zIHRoYXQgaGF2ZQoJbm90IHlldCBiZWVuIGRlY2xhcmVkLgoKCVBSIGMrKy85OTgyCgkqIGluaXQuYyAoYnVpbGRfbmV3XzEpOiBDb3JyZWN0IGxvZ2ljIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIG9yCglub3QgdG8gdXNlIGFuIGFycmF5IGNvb2tpZS4KCglQUiBjKysvOTUyNAoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3Bvc3RmaXhfZXhwcmVzc2lvbik6IENhbGwKCWZpbmlzaF9ub25fc3RhdGljX2RhdGFfbWVtYmVyLCBldmVuIHdoZW4gcHJvY2Vzc2luZ190ZW1wbGF0ZV9kZWNsLgoKCVBSIGMrKy85OTEyCgkqIGNwLXRyZWUuaCAoaXNfYW5jZXN0b3IpOiBOZXcgZnVuY3Rpb24uCgkoaGFuZGxlX2NsYXNzX2hlYWQpOiBDaGFuZ2UgcHJvdG90eXBlLgoJKiBkZWNsMi5jIChpc19uYW1lc3BhY2VfYW5jZXN0b3IpOiBSZW5hbWUgdG8gLi4uCgkobmFtZXNwYWNlX2FuZWNlc3Rvcik6IC4uLiB0aGlzLgoJKHNldF9kZWNsX25hbWVzcGFjZSk6IEFkanVzdCBhY2NvcmRpbmdseS4KCShoYW5kbGVfY2xhc3NfaGVhZCk6IFJlbW92ZSB1bm5lY2Vzc2FyeSBwYXJhbWV0ZXJzLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2NsYXNzX2hlYWQpOiBDaGVjayB0aGF0CgluZXN0ZWQtbmFtZS1zcGVjaWZpZXJzIGFyZSB1c2VkIGFwcHJvcHJpYXRlbHkuCgoyMDAzLTAzLTA3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChyZWZlcmVuY2VfYmluZGluZyk6IFJlbW92ZSBSRUZfSVNfVkFSIHBhcmFtZXRlci4KCShpbXBsaWNpdF9jb252ZXJzaW9uKTogQWRqdXN0IGNhbGwgdG8gcmVmZXJlbmNlX2JpbmRpbmcuCgkobWFrZV90ZW1wb3JhcnlfdmFyX2Zvcl9yZWZfdG9fdHlwZSk6IEFkZCBUWVBFIHBhcmFtZXRlci4KCShpbml0aWFsaXplX3JlZmVyZW5jZSk6IEFkanVzdCBoYW5kbGluZyBmb3IgcmVmZXJlbmNlcyBib3VuZCB0bwoJcnZhbHVlcy4KCSogY3AtdHJlZS5oIChtYWtlX3RlbXBvcmFyeV92YXJfZm9yX3JlZl90b190ZW1wKTogQ2hhbmdlCglwcm90b3R5cGUuCgkocmVhbF9ub25fY2FzdF9sdmFsdWVfcCk6IE5ldyBtZXRob2QuCgkqIGN2dC5jIChidWlsZF91cF9yZWZlcmVuY2UpOiBBZGp1c3QgdXNlIG9mCgltYWtlX3RlbXBvcmFyeV92YXJfZm9yX3JlZl90b190ZW1wLgoJKiB0cmVlLmMgKHJlYWxfbm9uX2Nhc3RfbHZhbHVlX3ApOiBOZXcgbWV0aG9kLgoKMjAwMy0wMy0wNyAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBleGNlcHQuYyAoaW5pdF9leGNlcHRpb25fcHJvY2Vzc2luZyk6IFVzZSBDOTAgcHJvdG90eXBlIHN0eWxlLgoJKGNwX3Byb3RlY3RfY2xlYW51cF9hY3Rpb25zKTogTGlrZXdpc2UuCgkocHJlcGFyZV9laF90eXBlKTogTGlrZXdpc2UuCgkoYnVpbGRfZWhfdHlwZV90eXBlKTogTGlrZXdpc2UuCgkoYnVpbGRfZXhjX3B0cik6IExpa2V3aXNlLgoJKGRvX2JlZ2luX2NhdGNoKTogTGlrZXdpc2UuCgkoZHRvcl9ub3Rocm93KTogTGlrZXdpc2UuCgkoZG9fZW5kX2NhdGNoKTogTGlrZXdpc2UuCgkocHVzaF9laF9jbGVhbnVwKTogTGlrZXdpc2UuCgkoZGVjbF9pc19qYXZhX3R5cGUpOiBMaWtld2lzZS4KCShjaG9vc2VfcGVyc29uYWxpdHlfcm91dGluZSk6IExpa2V3aXNlLgoJKGluaXRpYWxpemVfaGFuZGxlcl9wYXJtKTogTGlrZXdpc2UuCgkoZXhwYW5kX3N0YXJ0X2NhdGNoX2Jsb2NrKTogTGlrZXdpc2UuCgkoZXhwYW5kX2VuZF9jYXRjaF9ibG9jayk6IExpa2V3aXNlLgoJKGJlZ2luX2VoX3NwZWNfYmxvY2spOiBMaWtld2lzZS4KCShmaW5pc2hfZWhfc3BlY19ibG9jayk6IExpa2V3aXNlLgoJKGRvX2FsbG9jYXRlX2V4Y2VwdGlvbik6IExpa2V3aXNlLgoJKGRvX2ZyZWVfZXhjZXB0aW9uKTogTGlrZXdpc2UuCgkod3JhcF9jbGVhbnVwc19yKTogTGlrZXdpc2UuCgkoc3RhYmlsaXplX3Rocm93X2V4cHIpOiBMaWtld2lzZS4KCShidWlsZF90aHJvdyk6IExpa2V3aXNlLgoJKGNvbXBsZXRlX3B0cl9yZWZfb3Jfdm9pZF9wdHJfcCk6IExpa2V3aXNlLgoJKGlzX2FkbWlzc2libGVfdGhyb3dfb3BlcmFuZCk6IExpa2V3aXNlLgoJKG5vdGhyb3dfbGliZm5fcCk6IExpa2V3aXNlLgoJKGNhbl9jb252ZXJ0X2VoKTogTGlrZXdpc2UuCgkoY2hlY2tfaGFuZGxlcnNfMSk6IExpa2V3aXNlLgoJKGNoZWNrX2hhbmRsZXJzKTogTGlrZXdpc2UuCgoyMDAzLTAzLTA2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChtZXJnZV9jb252ZXJzaW9uX3NlcXVlbmNlcyk6IE5ldyBmdW5jdGlvbi4KCShidWlsZF9jb252KTogU2V0IElDU19VU0VSX0ZMQUcgZm9yIFVTRVJfQ09OVnMuCgkoY29udmVydF9jbGFzc190b19yZWZlcmVuY2UpOiBDb3JyZWN0IGhhbmRsaW5nIG9mIHNlY29uZAoJc3RhbmRhcmQgY29udmVyc2lvbiBzZXF1ZW5jZSBpbiBhIHVzZXItZGVmaW5lZCBjb252ZXJzaW9uCglzZXF1ZW5jZS4KCShidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xKTogVXNlIG1lcmdlX2NvbnZlcnNpb25fc2VxdWVuY2VzLgoJKiBjcC10cmVlLmRlZjogQWRkIGNvbW1lbnRzIGZvciBDT05WIG5vZGVzLgoJKiBydHRpLmMgKGdldF90aW5mb19kZWNsKTogVXNlIGJ1aWxkX2FkZHJlc3MvYnVpbGRfbm9wLgoKMjAwMy0wMy0wNyAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBlcnJvci5jIChpbml0X2Vycm9yKTogVXNlIEM5MCBwcm90b3R5cGUgc3R5bGUuCgkoZHVtcF9zY29wZSk6IExpa2V3aXNlLgoJKGR1bXBfcXVhbGlmaWVycyk6IExpa2V3aXNlLgoJKGR1bXBfdGVtcGxhdGVfYXJndW1lbnQpOiBMaWtld2lzZS4KCShkdW1wX3RlbXBsYXRlX2FyZ3VtZW50X2xpc3QpOiBMaWtld2lzZS4KCShkdW1wX3RlbXBsYXRlX3BhcmFtZXRlcik6IExpa2V3aXNlLgoJKGR1bXBfdGVtcGxhdGVfYmluZGluZ3MpOiBMaWtld2lzZS4KCShkdW1wX3R5cGUpOiBMaWtld2lzZS4KCShkdW1wX3R5cGVuYW1lKTogTGlrZXdpc2UuCgkoY2xhc3Nfa2V5X29yX2VudW0pOiBMaWtld2lzZS4KCShkdW1wX2FnZ3JfdHlwZSk6IExpa2V3aXNlLgoJKGR1bXBfdHlwZV9wcmVmaXgpOiBMaWtld2lzZS4KCShkdW1wX3R5cGVfc3VmZml4KTogTGlrZXdpc2UuCgkoZHVtcF9nbG9iYWxfaW9yZCk6IExpa2V3aXNlLgoJKGR1bXBfc2ltcGxlX2RlY2wpOiBMaWtld2lzZS4KCShkdW1wX2RlY2wpOiBMaWtld2lzZS4KCShkdW1wX3RlbXBsYXRlX2RlY2wpOiBMaWtld2lzZS4KCShkdW1wX2Z1bmN0aW9uX2RlY2wpOiBMaWtld2lzZS4KCShkdW1wX3BhcmFtZXRlcnMpOiBMaWtld2lzZS4KCShkdW1wX2V4Y2VwdGlvbl9zcGVjKTogTGlrZXdpc2UuCgkoZHVtcF9mdW5jdGlvbl9uYW1lKTogTGlrZXdpc2UuCgkoZHVtcF90ZW1wbGF0ZV9wYXJtcyk6IExpa2V3aXNlLgoJKGR1bXBfY2hhcik6IExpa2V3aXNlLgoJKGR1bXBfZXhwcl9saXN0KTogTGlrZXdpc2UuCgkoZHVtcF9leHByKTogTGlrZXdpc2UuCgkoZHVtcF9iaW5hcnlfb3ApOiBMaWtld2lzZS4KCShkdW1wX3VuYXJ5X29wKTogTGlrZXdpc2UuCgkodHlwZV9hc19zdHJpbmcpOiBMaWtld2lzZS4KCShleHByX2FzX3N0cmluZyk6IExpa2V3aXNlLgoJKGRlY2xfYXNfc3RyaW5nKTogTGlrZXdpc2UuCgkoY29udGV4dF9hc19zdHJpbmcpOiBMaWtld2lzZS4KCShsYW5nX2RlY2xfbmFtZSk6IExpa2V3aXNlLgoJKGNwX2ZpbGVfb2YpOiBMaWtld2lzZS4KCShjcF9saW5lX29mKTogTGlrZXdpc2UuCgkoZGVjbF90b19zdHJpbmcpOiBMaWtld2lzZS4KCShleHByX3RvX3N0cmluZyk6IExpa2V3aXNlLgoJKGZuZGVjbF90b19zdHJpbmcpOiBMaWtld2lzZS4KCShjb2RlX3RvX3N0cmluZyk6IExpa2V3aXNlLgoJKGxhbmd1YWdlX3RvX3N0cmluZyk6IExpa2V3aXNlLgoJKHBhcm1fdG9fc3RyaW5nKTogTGlrZXdpc2UuCgkob3BfdG9fc3RyaW5nKTogTGlrZXdpc2UuCgkodHlwZV90b19zdHJpbmcpOiBMaWtld2lzZS4KCShhc3NvcF90b19zdHJpbmcpOiBMaWtld2lzZS4KCShhcmdzX3RvX3N0cmluZyk6IExpa2V3aXNlLgoJKGN2X3RvX3N0cmluZyk6IExpa2V3aXNlLgoJKGN4eF9wcmludF9lcnJvcl9mdW5jdGlvbik6IExpa2V3aXNlLgoJKGNwX2RpYWdub3N0aWNfc3RhcnRlcik6IExpa2V3aXNlLgoJKGNwX2RpYWdub3N0aWNfZmluYWxpemVyKTogTGlrZXdpc2UuCgkoY3BfcHJpbnRfZXJyb3JfZnVuY3Rpb24pOiBMaWtld2lzZS4KCShmdW5jdGlvbl9jYXRlZ29yeSk6IExpa2V3aXNlLgoJKHByaW50X2luc3RhbnRpYXRpb25fZnVsbF9jb250ZXh0KTogTGlrZXdpc2UuCgkocHJpbnRfaW5zdGFudGlhdGlvbl9wYXJ0aWFsX2NvbnRleHQpOiBMaWtld2lzZS4KCShtYXliZV9wcmludF9pbnN0YW50aWF0aW9uX2NvbnRleHQpOiBMaWtld2lzZS4KCShwcmludF9pbnN0YW50aWF0aW9uX2NvbnRleHQpOiBMaWtld2lzZS4KCShjcF9wcmludGVyKTogTGlrZXdpc2UuCgkocHJpbnRfaW50ZWdlcik6IExpa2V3aXNlLgoJKHByaW50X25vbl9jb25zZWN1dGl2ZV9jaGFyYWN0ZXIpOiBMaWtld2lzZS4KCShsb2NhdGVfZXJyb3IpOiBMaWtld2lzZS4KCjIwMDMtMDMtMDYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk5NjUKCSogY2FsbC5jIChyZWZlcmVuY2VfYmluZGluZyk6IEFkZCByZWZfaXNfdmFyIHBhcmFtZXRlci4KCShpbXBsaWNpdF9jb252ZXJzaW9uKTogQWRqdXN0IGNhbGwgdG8gcmVmZXJlbmNlX2JpbmRpbmcuCgkoaW5pdGlhbGl6ZV9yZWZlcmVuY2UpOiBMaWtld2lzZS4KCglQUiBjKysvOTQwMAoJKiBkZWNsLmMgKHB1c2hkZWNsKTogRG9uJ3QgY2hlY2sgZm9yIHNoYWRvd2luZyBvZiBERUNMX0FSVElGSUNJQUwKCVBBUk1fREVDTHMuCgoJUFIgYysrLzk3OTEKCSogY2xhc3MuYyAoZ2V0X2Jhc2VmbmRlY2xzKTogVXNlIGxvb2t1cF9mbmZpZWxkc18xLgoKMjAwMy0wMy0wNiAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzkxODgKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl90eXBlX3BhcmFtZXRlcik6IFJlbW92ZSByZWR1bmRhbnQgYGV4cGVjdCcKCWluIGVycm9yIG1lc3NhZ2UuCgkoY3BfcGFyc2VyX3NpbmdsZV9kZWNsYXJhdGlvbik6IExpa2V3aXNlLgoKMjAwMy0wMy0wNSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzk0NDAKCSogY2FsbC5jIChidWlsZF9jb25kaXRpb25hbF9leHByKTogVXNlIGNvbnZlcnQgcmF0aGVyIHRoYW4gYW4KCWV4cGxpY2l0IE5PUF9FWFBSLgoKMjAwMy0wMy0wMiAgTWF0dCBBdXN0ZXJuICA8YXVzdGVybkBhcHBsZS5jb20+CgoJKiBkZWNsLmMgKGNwX2JpbmRpbmdfbGV2ZWwpOiBBZGQgc3RhdGljX2RlY2xzIHZhcnJheSBtZW1iZXIuCgkoYWRkX2RlY2xfdG9fbGV2ZWwpOiBBZGQgc3RhdGljL2lubGluZSBuYW1lc3BhY2Ugc2NvcGUKCWRlY2xhcmF0aW9ucyB0byBzdGF0aWNfZGVjbHMgYXJyYXkuCgkod3JhcHVwX2dsb2JhbF9mb3JfbmFtZXNwYWNlKTogUGFzcyBzdGF0aWNfZGVjbHMgb25seSwgaW5zdGVhZCBvZgoJYWxsIGRlY2xzLCB0byB3cmFwdXBfZ2xvYmFsX2RlY2xhcmF0aW9ucy9jaGVja19nbG9iYWxfZGVjbGFyYXRpb25zLgoJKHB1c2hfbmFtZXNwYWNlKTogSW5pdGlhbGl6ZSBzdGF0aWNfZGVjbHMgZm9yIG9yZGluYXJ5IG5hbWVzcGFjZXMuCgkoY3h4X2luaXRfZGVjbF9wcm9jZXNzaW5nKTogSW5pdGlhbGl6ZSBzdGF0aWNfZGVjbHMgZm9yIGdsb2JhbAoJbmFtZXNwYWNlLgoKMjAwMy0wMy0wNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGVuZF9vZl9jbGFzcyk6IENvcnJlY3QgdGhpbmtvLgoKMjAwMy0wMy0wNCAgTmF0aGFuYWVsIE5lcm9kZSAgPG5lcm9kZW5AZ2NjLmdudS5vcmc+CgoJKiBjb25maWctbGFuZy5pbjogUmVwbGFjZSAke2xpYnN0ZGN4eF92ZXJzaW9ufSBieSBpdHMgdmFsdWUuCgoyMDAzLTAzLTA0ICBHYWJyaWVsIERvcyBSZWlzIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogY3AtdHJlZS5oIChjeHhfc2F2ZWRfYmluZGluZyk6IERlY2xhcmUuCgkoc3RydWN0IHNhdmVkX3Njb3BlKTogQWRqdXN0IHR5cGUgb2YgZmllbGQgJ29sZF9iaW5kaW5nJy4KCSogZGVjbC5jIChjeHhfc2F2ZWRfYmluZGluZ19tYWtlKTogTmV3IG1hY3JvLgoJKHN0cnVjdCBjeHhfc2F2ZWRfYmluZGluZyk6IERlZmluZS4KCShzdG9yZV9iaW5kaW5ncyk6IEFkanVzdCBwcm90b3R5cGUuICBVc2UgY3h4X3NhdmVkX2JpbmRpbmcgdG8gc2F2ZQoJQysrIGJpbmRpbmdzLgoJKG1heWJlX3B1c2hfdG9fdG9wX2xldmVsKTogQWRqdXN0IGxvY2FsIHZhcmlhYmxlIHR5cGUuCgkocG9wX2Zyb21fdG9wX2xldmVsKTogTGlrZXdpc2UuCgoyMDAzLTAzLTA0ICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKGMrKy50YWdzKTogTmV3IHRhcmdldC4KCjIwMDMtMDMtMDQgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5jby51az4KCgkqIE1ha2UtbGFuZy5pbjogVXBkYXRlLgoKMjAwMy0wMy0wMyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKGZpbmlzaF9lbnVtKTogRG8gc2V0IHRoZSB0eXBlIGluIGEgdGVtcGxhdGUuIFNpbXBsaWZ5LgoJKiBwdC5jICh0c3Vic3RfZW51bSwgdHN1YnN0X2NvcHkpOiBSZXZlcnQgbGFzdCBwYXRjaC4KCjIwMDMtMDMtMDMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk4NzgKCSogY2FsbC5jIChjb252ZXJ0X2NsYXNzX3RvX3JlZmVyZW5jZSk6IENvcnJlY3QgY29udmVyc2lvbgoJc2VxdWVuY2VzLgoJKHJlZmVyZW5jZV9iaW5kaW5nKTogQWRkIHJlZl9ib3VuZF9kaXJlY3RseV90b19ydmFsdWVfcCBwYXJhbWV0ZXIuCgkoaW1wbGljaXRfY29udmVyc2lvbik6IEFkanVzdCBjYWxsIHRvIHJlZmVyZW5jZV9iaW5kaW5nLgoJKGFkZF9jYW5kaWRhdGUpOiBDaGFuZ2UgdHlwZSBvZiBjYW5kaWRhdGVzIHBhcmFtZXRlci4KCShhZGRfZnVuY3Rpb25fY2FuZGlkYXRlKTogTGlrZXdpc2UuCgkoYWRkX2NvbnZfY2FuZGlkYXRlKTogTGlrZXdpc2UuCgkoYnVpbGRfYnVpbHRpbl9jYW5kaWRhdGUpOiBMaWtld2lzZS4KCShhZGRfYnVpbHRpbl9jYW5kaWRhdGUpOiBMaWtld2lzZS4KCShhZGRfYnVpbHRpbl9jYW5kaWRhdGVzKTogTGlrZXdpc2UuCgkoYWRkX3RlbXBsYXRlX2NhbmRpZGF0ZV9yZWFsKTogTGlrZXdpc2UuCgkoYWRkX3RlbXBsYXRlX2NhbmRpZGF0ZSk6IExpa2V3aXNlLgoJKGFkZF90ZW1wbGF0ZV9jb252X2NhbmRpZGF0ZSk6IExpa2V3aXNlLgoJKGJ1aWxkX3VzZXJfdHlwZV9jb252ZXJzaW9uXzEpOiBBZGp1c3QgYWNjb3JkaW5nbHkuCgkoYnVpbGRfb2JqZWN0X2NhbGwpOiBMaWtld2lzZS4KCShidWlsZF9jb25kaXRpb25hbF9leHByKTogTGlrZXdpc2UuCgkoYWRkX2NhbmRpZGF0ZXMpOiBMaWtld2lzZS4KCShidWlsZF9uZXdfb3ApOiBMaWtld2lzZS4KCShjb252ZXJ0X2xpa2VfcmVhbCk6IFVzZSBVU0VSX0NPTlZfQ0FORC4gIFVzZSBidWlsZF9ub3AuCgkoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogQWRqdXN0IGNhbGxzIHRvIGFkZF9mdW5jdGlvbl9jYW5kaWRhdGUuCgkobWFrZV90ZW1wb3JhcnlfdmFyX2Zvcl9yZWZfdG9fdGVtcCk6IE5ldyBmdW5jdGlvbi4KCShpbml0aWFsaXplX3JlZmVyZW5jZSk6IEFkZCBkZWNsIHBhcmFtZXRlci4KCSogY2xhc3MuYyAoYnVpbGRfcnR0aV92dGJsX2VudHJpZXMpOiBVc2UgYnVpbGRfYWRkcmVzcyBhbmQKCWJ1aWxkX25vcC4KCSogY3AtdHJlZS5oIChpbml0aWFsaXplX3JlZmVyZW5jZSk6IENoYW5nZSBwcm90b3R5cGUuCgkobWFrZV90ZW1wb3JhcnlfdmFyX2Zvcl9yZWZfdG9fdGVtcCk6IE5ldyBmdW5jdGlvbi4KCShidWlsZF90eXBlX2NvbnZlcnNpb24pOiBDaGFuZ2UgcHJvdG90eXBlLgoJKGJ1aWxkX2FkZHJlc3MpOiBOZXcgZnVuY3Rpb24uCgkoYnVpbGRfbm9wKTogTGlrZXdpc2UuCgkqIGN2dC5jIChjcF9jb252ZXJ0X3RvX3BvaW50ZXIpOiBBZGp1c3QgY2FsbCB0bwoJYnVpbGRfdHlwZV9jb252ZXJzaW9uLiAgQXZvaWQgaW5kaWNhdGluZyByZWR1bmRhbnQgTk9QX0VYUFJzLgoJVXNlIGJ1aWxkX25vcC4KCShjb252ZXJ0X3RvX3BvaW50ZXJfZm9yY2UpOiBVc2UgYnVpbGRfbm9wLgoJKGJ1aWxkX3VwX3JlZmVyZW5jZSk6IFVzZSBtYWtlX3RlbXBvcmFyeV92YXJfZm9yX3JlZl90b190ZW1wLgoJKGNvbnZlcnRfdG9fcmVmZXJlbmNlKTogQWRqdXN0IGNhbGwgdG8gYnVpbGRfdHlwZV9jb252ZXJzaW9uLgoJKG9jcF9jb252ZXJ0KTogTGlrZXdpc2UuCgkoYnVpbGRfdHlwZV9jb252ZXJzaW9uKTogUmVtb3ZlIGZvcl9zdXJlIHBhcmFtZXRlci4KCSogZGVjbC5jIChncm9rX3JlZmVyZW5jZV9pbml0KTogVXNlIGluaXRpYWxpemVfcmVmZXJlbmNlLgoJKiB0eXBlY2suYyAoYnVpbGRfYWRkcmVzcyk6IE5ldyBmdW5jdGlvbi4KCShidWlsZF9ub3ApOiBMaWtld2lzZS4KCShidWlsZF91bmFyeV9vcCk6IFVzZSB0aGVtLgoJKGJ1aWxkX3B0cm1lbWZ1bmMpOiBUaWR5IHNsaWdodGx5LgoJKGNvbnZlcnRfZm9yX2luaXRpYWxpemF0aW9uKTogQWRqdXN0IGNhbGwgdG8KCWluaXRpYWxpemVfcmVmZXJlbmNlLgoJKiB0eXBlY2syLmMgKHN0b3JlX2luaXRfdmFsdWUpOiBSZW1vdmUgI2lmIDAnZCBjb2RlLgoKMjAwMy0wMy0wMyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKHN0YXJ0X2Z1bmN0aW9uKTogQ2xlYXIgREVDTF9OVU1fU1RNVFMuCgoJKiBjbGFzcy5jIChnZXRfdnRhYmxlX2RlY2wpOiBVc2UgdnRibF90eXBlX25vZGUuCgkoYnVpbGRfcHJpbWFyeV92dGFibGUpOiBDaGVjayBmb3IgaXQuCgoyMDAzLTAzLTAyICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKGNoZWNrX2luaXRpYWxpemVyKTogQ2hlY2sgZm9yIHZlY3Rvcl9vcGFxdWVfcC4KCjIwMDMtMDMtMDIgIEFzaGlmIEhhcmppICA8YXNoYXJqaUB1d2F0ZXJsb28uY2E+CgoJKiBsYW5nLXNwZWNzLmggKGRlZmF1bHRfY29tcGlsZXJzKTogQWRkIC1uby1pbnRlZ3JhdGVkLWNwcCBmbGFnIHRvCgkgIGludm9rZSBhbiBleHRlcm5hbCBjcHAgZHVyaW5nIGNvbXBpbGF0aW9uLgoKMjAwMy0wMy0wMSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IENvbnZlcnQgdXNlIG9mIHdhcm5pbmdfd2l0aF9kZWNsKCkgdG8KCXRoYXQgb2Ygd2FybmluZygpLgoJKHN0YXJ0X2RlY2wpOiBMaWtld2lzZS4KCShzdGFydF9mdW5jdGlvbik6IExpa2V3aXNlLgoKMjAwMy0wMy0wMSAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmNvLnVrPgoKCSogTWFrZS1sYW5nLmluIChDWFhfQ19PQkpTKTogVXBkYXRlLgoKMjAwMy0wMi0yOCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTg5MgoJKiBwdC5jIChpbnN0YW50aWF0ZV9kZWNsKTogQ2xlYXIgREVDTF9SVEwgZm9yIGEgVkFSX0RFQ0wgd2hlbgoJaW5zdGFudGlhdGluZyBpdC4KCjIwMDMtMDItMjggIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfaW5pdF9kZWNsYXJhdG9yKTogUmV2ZXJ0IG9wYXF1ZQoJdmVjdG9yX29wYXF1ZV9wIGNoYW5nZS4KCURvIG5vdCBpbmNsdWRlIHRhcmdldC5oLgoKMjAwMy0wMi0yOCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTg3OQoJKiBjcC10cmVlLmggKGJ1aWxkX3plcm9faW5pdCk6IEFkZCBwYXJhbWV0ZXIuCgkqIGRlY2wuYyAoY3BfZmluaXNoX2RlY2wpOiBBZGp1c3QgY2FsbC4KCSogaW5pdC5jIChidWlsZF96ZXJvX2luaXQpOiBBZGQgbmVsdHMgcGFyYW1ldGVyLiAgQWRqdXN0IHJlY3Vyc2l2ZQoJY2FsbHMuCgkoYnVpbGRfZGVmYXVsdF9pbml0KTogQWRkIG5lbHRzIHBhcmFtZXRlci4gIEFkanVzdCBjYWxscyB0bwoJYnVpbGRfemVyb19pbml0LgoJKGJ1aWxkX25ld18xKTogQWRqdXN0IGNhbGwgdG8gYnVpbGRfZGVmYXVsdF9pbml0LgoJKiB0eXBlY2syLmMgKHByb2Nlc3NfaW5pdF9jb25zdHJ1Y3Rvcik6IEFkanVzdCBjYWxsIHRvIGJ1aWxkX3plcm9faW5pdC4KCjIwMDMtMDItMjYgIERldmFuZyBQYXRlbCAgPGRwYXRlbEBhcHBsZS5jb20+CgoJKiBkZWNsLmMgKGZpbmlzaF9lbnVtKTogTWVyZ2UgdHdvICdmb3InIGxvb3BzLiBDb3B5IHZhbHVlIG5vZGUgaWYKCXJlcXVpcmVkLiAgUG9zdHBvbmUgZW51bSBzZXR0aW5nIGZvciB0ZW1wbGF0ZSBkZWNscy4KCShidWlsZF9lbnVtZXJhdG9yKTogRGVsYXkgY29weWluZyB2YWx1ZSBub2RlIHVudGlsIGZpbmlzaF9lbnVtCgkoKS4gUmVtb3ZlICNpZiAwJ2VkIGNvZGUuCgkqIHB0LmMgKHRzdWJzdF9lbnVtKTogU2V0IFRSRUVfVFlQRSBhbmQgY29weSB2YWx1ZSBub2RlLgoJKHRzdWJzdF9jb3B5KTogQWRkIGNoZWNrIGZvciBlbnVtIHR5cGUuCgoyMDAzLTAyLTI1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy85NjgzCgkqIGRlY2wyLmMgKHBydW5lX3ZhcnNfbmVlZGluZ19ub19pbml0aWFsaXphdGlvbik6IERvIG5vdCB0aHJvdwoJYXdheSBpbml0aWFsaXphdGlvbnMgZm9yIERFQ0xfRVhURVJOQUwgVkFSX0RFQ0xzLgoJKGZpbmlzaF9maWxlKTogQWRqdXN0IGFjY29yZGluZ2x5LgoJKiBwdC5jIChpbnN0YW50aWF0ZV9kZWNsKTogRG8gbm90IGRlZmVyIFZBUl9ERUNMcy4KCjIwMDMtMDItMjQgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBkZWNsLmMgKGFkZF9iaW5kaW5nKTogVGltZSBUVl9OQU1FX0xPT0tVUC4KCShwdXNoX2NsYXNzX2JpbmRpbmcpOiBMaWtld2lzZS4KCShzZXRfbmFtZXNwYWNlX2JpbmRpbmcpOiBMaWtld2lzZS4KCjIwMDMtMDItMjQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk4MzYKCSogY3AtdHJlZS5oIChDTEFTU1RZUEVfUFJJTUFSWV9URU1QTEFURSk6IERvIG5vdCBza2lwIGZyb20KCXNwZWNpYWxpemF0aW9ucyBiYWNrIHRvIHRoZSBtYWluIHRlbXBsYXRlLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2RpYWdub3NlX2ludmFsaWRfdHlwZV9uYW1lKTpBZGp1c3QgdXNlLgoJKiBwdC5jIChyZXNvbHZlX3R5cGVuYW1lX3R5cGUpOiBMaWtld2lzZS4KCjIwMDMtMDItMjQgIEplZmZyZXkgRC4gT2xkaGFtICA8b2xkaGFtQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk3NzgKCSogcHQuYyAodHN1YnN0X2NvcHlfYW5kX2J1aWxkKTogRm9yIGEgdGVtcGxhdGVkIGZ1bmN0aW9uIGluc2lkZSBhCglzY29wZSwgcHJvY2VzcyB0ZW1wbGF0ZSBhcmd1bWVudHMuCgoyMDAzLTAyLTI0ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvOTYwMgoJKiB0eXBlY2syLmMgKGFic3RyYWN0X3ZpcnR1YWxzX2Vycm9yKTogRG9uJ3QgY2hlY2sgd2hlbgoJVFlQRSBpcyBzdGlsbCB0ZW1wbGF0ZSBwYXJhbWV0ZXIgZGVwZW5kZW50LgoKMjAwMy0wMi0yMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNTMzMwoJKiBjcC10cmVlLmggKENMQVNTVFlQRV9QUklNQVJZX1RFTVBMQVRFKTogTmV3IG1hY3JvLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2RpYWdub3NlX2ludmFsaWRfdHlwZV9uYW1lKTogVXNlIGl0LgoJKiBwdC5jIChpbnN0YW50aWF0ZV9jbGFzc190ZW1wbGF0ZSk6IERvbid0IHRyeSB0byBpbnN0YW50aWF0ZQoJZGVwZW5kZW50IHR5cGVzLgoJKHJlc29sdmVfdHlwZW5hbWVfdHlwZSk6IFVzZSBDTEFTU1RZUEVfUFJJTUFSWV9URU1QTEFURS4KCjIwMDMtMDItMjEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk3NDkKCSogZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IERvIG5vdCBhbGxvdyBwYXJhbWV0ZXJzIHdpdGggdmFyaWFibHkKCW1vZGlmaWVkIHR5cGVzLgoKMjAwMy0wMi0yMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHNlYXJjaC5jIChncm93X2Jmc19iYXNlcyk6IFJlbW92ZS4gRm9sZCBpbnRvIC4uLgoJKGJmc193YWxrKTogLi4uIGhlcmUsIGZpeCBmZW5jZXBvc3QgZXJyb3IuIEZpeCBtZXJnZSBsb3NzYWdlCglpbiBwcmV2aW91cyBwYXRjaC4KCjIwMDMtMDItMjAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk3MjkKCSogbWFuZ2xlLmMgKG1hbmdsZV9jb252X29wX25hbWVfZm9yX3R5cGUpOiBJc3N1ZSBhbiBlcnJvciBtZXNzYWdlCgl3aGVuIHRoZSBHKysgMy4yIEFCSSBwcmV2ZW50cyBjb3JyZWN0IGNvbXBpbGF0aW9uLgoKMjAwMy0wMi0yMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglDaGFuZ2UgYmFzZSBjbGFzcyBhY2Nlc3MgcmVwcmVzZW50YXRpb24uIFNoYXJlIHZpcnR1YWwgYmFzZQoJYmluZm9zLgoJKiBjcC9jYWxsLmMgKGJ1aWxkX3NwZWNpYWxfbWVtYmVyX2NhbGwpOiBSZW1vdmUgYmluZm9fZm9yX3ZiYXNlCgljYWxsLgoJKiBjcC9jbGFzcy5jIChidWlsZF9iYXNlX3BhdGgpOiBMaWtld2lzZS4KCShidWlsZF9wcmltYXJ5X3Z0YWJsZSk6IEFkanVzdCBCSU5GT19ORVdfVlRBQkxFX01BUktFRCB1c2UuCgkoYnVpbGRfc2Vjb25kYXJ5X3Z0YWJsZSk6IFJlbW92ZSBGT1JfVFlQRSBhcmcuIEFkanVzdC4KCShtYWtlX25ld192dGFibGUpOiBBZGp1c3QuCgkoZm9yY2VfY2Fub25pY2FsX2JpbmZvX3IpOiBEZWxldGUuCgkoZm9yY2VfY2Fub25pY2FsX2JpbmZvKTogRGVsZXRlLgoJKG1hcmtfcHJpbWFyeV92aXJ0dWFsX2Jhc2UpOiBEZWxldGUuCgkoZGZzX3Vuc2hhcmVkX3ZpcnR1YWxfYmFzZXMpOiBEZWxldGUuCgkobWFya19wcmltYXJ5X2Jhc2VzKTogQWRqdXN0LgoJKG1heWJlX3dhcm5fYWJvdXRfb3Zlcmx5X3ByaXZhdGVfY2xhc3MpOiBBZGp1c3QuCgkoZGZzX2Jhc2VfZGVyaXZlZF9mcm9tKTogRGVsZXRlLgoJKGJhc2VfZGVyaXZlZF9mcm9tKTogRm9sbG93IHRoZSBpbmhlcml0YW5jZSBjaGFpbi4KCShzdHJ1Y3QgZmluZF9maW5hbF9vdmVycmlkZXJfZGF0YSk6IEFkZCB2cGF0aCBtZW1iZXIuCgkoZGZzX2ZpbmRfZmluYWxfb3ZlcnJpZGVyKTogQWRqdXN0LgoJKGRmc19maW5kX2ZpbmFsX292ZXJyaWRlcl9xLCBkZnNfZmluZF9maW5hbF9vdmVycmlkZXJfcG9zdCk6IE5ldy4KCShmaW5kX2ZpbmFsX292ZXJyaWRlcik6IEFkanVzdC4KCSh1cGRhdGVfdnRhYmxlX2VudHJ5X2Zvcl9mbik6IEFkanVzdC4KCShtb2RpZnlfYWxsX3Z0YWJsZXMpOiBBZGp1c3QuCgkod2Fsa19zdWJvYmplY3Rfb2Zmc2V0cyk6IEFkanVzdC4KCShsYXlvdXRfbm9uZW1wdHlfYmFzZV9vcl9maWVsZCk6IEFkanVzdC4KCShsYXlvdXRfZW1wdHlfYmFzZSk6IFJlbW92ZSBsYXN0IHBhcmFtZXRlci4gQWRqdXN0LgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBBZGp1c3QuCgkoYnVpbGRfYmFzZV9maWVsZHMpOiBBZGp1c3QuCgkocHJvcGFnYXRlX2JpbmZvX29mZnNldHMpOiBSZW1vdmUgbGFzdCBwYXJhbWV0ZXIuIEFkanVzdC4KCShkZnNfc2V0X29mZnNldF9mb3JfdW5zaGFyZWRfdmJhc2VzKTogRGVsZXRlLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogQWRqdXN0LgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IEFkanVzdC4KCShpbml0X2NsYXNzX3Byb2Nlc3NpbmcpOiBEb24ndCBpbml0IGFjY2VzcyBub2Rlcy4KCShkZnNfZ2V0X3ByaW1hcnlfYmluZm8pOiBEZWxldGUuCgkoZ2V0X3ByaW1hcnlfYmluZm8pOiBBZGp1c3QuCgkoZHVtcF9jbGFzc19oaWVyYXJjaHlfcik6IFJlbW92ZSBtb3N0IGRlcml2ZWQgYXJnLCBhZGQgSUdPCglwYXJhbWV0ZXIuIEFkanVzdC4KCShkdW1wX2NsYXNzX2hpZXJhcmNoeSk6IEFkanVzdC4KCShmaW5pc2hfdnRibHMpOiBBZGp1c3QuCgkoZ2V0X29yaWdpbmFsX2Jhc2UpOiBEZWxldGUuCgkoYnVpbGRfdnR0X2luaXRzKTogQWRqdXN0LgoJKGRmc19idWlsZF9zZWNvbmRhcnlfdnB0cl92dHRfaW5pdHMpOiBBZGp1c3QuCgkoZGZzX2N0b3JfdnRhYmxlX2Jhc2VzX3F1ZXVlX3ApOiBBZGp1c3QuCgkoYnVpbGRfY3Rvcl92dGJsX2dyb3VwKTogQWRqdXN0LgoJKGRmc19hY2N1bXVsYXRlX3Z0YmxfaW5pdHMpOiBBZGp1c3QuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IEFkanVzdC4KCShidWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogQWRqdXN0LgoJKGFkZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzXzEpOiBBZGp1c3QuCgkqIGNwL2NwLXRyZWUuaCAoQ1BUSV9BQ0NFU1NfKik6IFJlbW92ZS4KCShhY2Nlc3NfKl9ub2RlKTogUmVtb3ZlLgoJKENBTk9OSUNBTF9CSU5GTyk6IERlbGV0ZS4KCShCSU5GT19VTlNIQVJFRF9NQVJLRUQpOiBSZW1vdmUuCgkoQklORk9fTUFSS0VEKTogU2V0IExBTkdfRkxBR18wIGRpcmVjdGx5LgoJKFNFVF9CSU5GT19NQVJLRUQsIENMRUFSX0JJTkZPX01BUktFRCk6IERlbGV0ZS4KCShCSU5GT19WVEFCTEVfUEFUSF9NQVJLRUQpOiBTZXQgTEFOR19GTEFHXzMgZGlyZWN0bHkuCgkoU0VUX0JJTkZPX1ZUQUJMRV9QQVRIX01BUktFRCwgQ0xFQVJfQklORk9fVlRBQkxFX1BBVEhfTUFSS0VEKToKCURlbGV0ZS4KCShCSU5GT19ORVdfVlRBQkxFX01BUktFRCk6IFNldCBMQU5HX0ZMQUdfNCBkaXJlY3RseS4KCShTRVRfQklORk9fTkVXX1ZUQUJMRV9NQVJLRUQpOiBBZGp1c3QuCgkoU0VUX0JJTkZPX1BVU0hERUNMU19NQVJLRUQsIENMRUFSX0JJTkZPX1BVU0hERUNMU19NQVJLRUQpOgoJRGVsZXRlLgoJKEJJTkZPX0RFUEVOREVOVF9CQVNFX1ApOiBOZXcuCgkoZGZzX3dhbGssIGRmc193YWxrX3JlYWwpOiBRdWV1ZSBmdW5jdGlvbiB0YWtlcyBkZXJpdmVkIGJpbmZvIGFuZAoJaW5kZXguCgkobWFya2VkcCwgdW5tYXJrZWRwKTogQWRqdXN0LgoJKGRmc191bm1hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3AsIGRmc19tYXJrZWRfcmVhbF9iYXNlc19xdWV1ZV9wLAoJZGZzX3NraXBfdmJhc2VzLCBtYXJrZWRfdnRhYmxlX3BhdGhwLCB1bm1hcmtlZF92dGFibGVfcGF0aHAsCglmaW5kX3ZiYXNlX2luc3RhbmNlLCBiaW5mb19mb3JfdmJhc2UpOiBEZWxldGUuCgkoY29waWVkX2JpbmZvLCBvcmlnaW5hbF9iaW5mbyk6IERlY2xhcmUuCgkoZmluaXNoX2Jhc2Vfc3BlY2lmaWVyKTogQWRkIHZpcnR1YWxfcCBhcmcuCgkodW5zaGFyZV9iYXNlX2JpbmZvcyk6IERlbGV0ZS4KCShjb3B5X2Jhc2VfYmluZm9zKTogRGVjbGFyZS4KCShyZXZlcnNlX3BhdGgpOiBEZWxldGUuCgkqIGNwL2RlY2wuYyAoeHJlZl9iYXNldHlwZXMpOiBBY2Nlc3MgYW5kIHZpcnR1YWxpdHkgcGFzc2VkCglkaWZmZXJlbnRseS4gRG9uJ3QgY29weSBkaXJlY3QgYmFzZSBiaW5mb3MgaGVyZS4gQ2FsbAoJY29weV9iYXNlX2JpbmZvcy4KCSogY3AvaW5pdC5jIChkZnNfaW5pdGlhbGl6ZV92dGJsX3B0cnMpOiBBZGp1c3QuCgkoaW5pdGlhbGl6ZV92dGJsX3B0cnMpOiBBZGp1c3QuCgkoZXhwYW5kX21lbWJlcl9pbml0KTogQWRqdXN0LgoJKiBjcC9wYXJzZXIuYyAoY3BfcGFyc2VyX2Jhc2Vfc3BlY2lmaWVyKTogQWRqdXN0LgoJKiBjcC9wdC5jIChpbnN0YW50aWF0ZV9jbGFzc190ZW1wbGF0ZSk6IEFkanVzdC4KCShnZXRfdGVtcGxhdGVfYmFzZV9yZWN1cnNpdmUpOiBBZGp1c3QuCgkqIGNwL3J0dGkuYyAoZ2V0X3BzZXVkb190aV9pbml0KTogQWRqdXN0LgoJKGdldF9wc2V1ZG9fdGlfZGVzYyk6IEFkanVzdC4KCSogY3AvdHJlZS5jICh1bnNoYXJlX2Jhc2VfYmluZm9zKTogUmVuYW1lIHRvIC4uLgoJKGNvcHlfYmFzZV9iaW5mb3MpOiAuLi4gaGVyZSwgcmVpbXBsZW1lbnQuCgkobWFrZV9iaW5mbyk6IFNldCBCSU5GT19ERVBFTkRFTlRfQkFTRV9QLgoJKHJldmVyc2VfcGF0aCk6IFJlbW92ZS4KCSogY3AvdHlwZWNrLmMgKGdldF9kZWx0YV9kaWZmZXJlbmNlKTogQWRqdXN0IGVycm9yIG1lc3NhZ2VzLgoJKiBjcC9zZW1hbnRpY3MuYyAoZmluaXNoX2Jhc2Vfc3BlY2lmaWVyKTogQWRkIHZpcnR1YWwgYXJnLCBhZGp1c3QuCgkqIGNwL3NlYXJjaC5jIChsb29rdXBfYmFzZV9yKTogQWRqdXN0LgoJKGR5bmFtaWNfY2FzdF9iYXNlX3JlY3Vyc2UpOiBBZGp1c3QuCgkoY2Fub25pY2FsX2JpbmZvKTogUmVtb3ZlLgoJKGRmc19jYW5vbmljYWxfcXVldWUpOiBSZW1vdmUuCgkoZGZzX2Fzc2VydF91bm1hcmtlZF9wKTogUmVtb3ZlLgoJKGFzc2VydF9jYW5vbmljYWxfdW5tYXJrZWQpOiBSZW1vdmUuCgkoc2hhcmVkX21hcmtlZF9wLCBzaGFyZWRfdW5tYXJrZWRfcCk6IFJlbW92ZS4KCShCSU5GT19BQ0NFU1MsIFNFVF9CSU5GT19BQ0NFU1MpOiBVc2UgVFJFRV9QVUJMSUMgJiBUUkVFX1BSSVZBVEUuCgkoZGZzX2FjY2Vzc19pbl90eXBlKTogQWRqdXN0LgoJKGFjY2Vzc19pbl90eXBlKTogQWRqdXN0LgoJKGRmc19hY2Nlc3NpYmxlX3F1ZXVlX3ApOiBBZGp1c3QuCgkoZGZzX2FjY2Vzc2libGVfcCk6IEFkanVzdC4KCShpc19zdWJvYmplY3Rfb2ZfcF8xLCBpc19zdWJvYmplY3Rfb2ZfcCk6IFJlbW92ZS4KCShzdHJ1Y3QgbG9va3VwX2ZpZWxkX2luZm8pOiBSZW1vdmUgZnJvbV9kZXBfYmFzZV9wIGZpZWxkLgoJKGxvb2t1cF9maWVsZF9xdWV1ZV9wKTogQWRqdXN0LCB0ZXN0IEJJTkZPX0RFUEVOREVOVF9CQVNFX1AuCgkobG9va3VwX2ZpZWxkX3IpOiBSZW1vdmUgZGVwZW5kZW50IGJhc2UgY29kZS4KCShsb29rdXBfbWVtYmVyKTogTGlrZXdpc2UuCgkoZGZzX3dhbGssIGRmc193YWxrX3JlYWwpOiBBZGQgYWNjZXNzIGFyZyB0byBxdWV1ZSBmbi4KCShkZnNfdW5tYXJrZWRfcmVhbF9iYXNlc19xdWV1ZV9wKTogUmVtb3ZlLgoJKGRmc19tYXJrZWRfcmVhbF9iYXNlc19xdWV1ZV9wKTogUmVtb3ZlLgoJKGRmc19za2lwX3ZiYXNlcyk6IFJlbW92ZS4KCShkZnNfZ2V0X3B1cmVfdmlydHVhbHMpOiBBZGp1c3QuCgkobWFya2VkcCwgdW5tYXJrZWRwKTogQWRqdXN0LgoJKG1hcmtlZF92dGFibGVfcGF0aHAsIHVubWFya2VkX3Z0YWJsZV9wYXRocCk6IFJlbW92ZS4KCShtYXJrZWRfcHVzaGRlY2xzX3AsIHVubWFya2VkX3B1c2hkZWNsc19wKTogQWRqdXN0LgoJKGRmc191bm1hcmspOiBBZGp1c3QuCgkoZGZzX2dldF92YmFzZV90eXBlcyk6UmVtb3ZlLgoJKGRmc19idWlsZF9pbmhlcml0YW5jZV9ncmFwaF9vcmRlcik6IFJlbW92ZS4KCShnZXRfdmJhc2VfdHlwZXMpOiBSZW1vdmUKCShkZnNfZmluZF92YmFzZV9pbnN0YW5jZSk6IFJlbW92ZS4KCShmaW5kX3ZiYXNlX2luc3RhbmNlKTogUmVtb3ZlLgoJKGRmc19kZWJ1Z191bm1hcmtlZHApOiBBZGp1c3QuCgkoZGVwZW5kZW50X2Jhc2VfcCk6IFJlbW92ZS4KCShkZnNfcHVzaF90eXBlX2RlY2xzKTogQWRqdXN0LgoJKGRmc19wdXNoX2RlY2xzKTogQWRqdXN0LgoJKGRmc19ub19vdmVybGFwX3lldCk6IEFkanVzdC4KCShjb3BpZWRfYmluZm8pOiBOZXcgZnVuY3Rpb24uCgkob3JpZ2luYWxfYmluZm8pOiBOZXcgZnVuY3Rpb24uCgkoYmluZm9fZm9yX3ZiYXNlKTogUmVtb3ZlLgoKMjAwMy0wMi0xOCAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwL3NlYXJjaC5jIChncm93X2Jmc19iYXNlcyk6IE5ldyBzdWJyb3V0aW5lIG9mIGJmc193YWxrLgoJKGJmc193YWxrKTogUmV3cml0dGVuIHVzaW5nIGNpcmN1bGFyIHF1ZXVlIG9mIEJJTkZPX0JBU0VUWVBFUwoJdmVjdG9ycywgZm9yIHNwZWVkLgoKMjAwMy0wMi0xOCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTcwNAoJKiBjbGFzcy5jIChsYXlvdXRfY2xhc3NfdHlwZSk6IEluIHRoZSAzLjIgQUJJLCB0YWtlIGludG8gYWNjb3VudAoJdHJhaWxpbmcgYml0IGZpZWxkcyB3aGVuIGNvbXB1dGluZyBDTEFTU1RZUEVfU0laRV9VTklULgoKMjAwMy0wMi0xOCAgTWF0dCBBdXN0ZXJuIDxhdXN0ZXJuQGFwcGxlLmNvbT4KCgkqIGNwL2NwLWxhbmcuYzogQ2hhbmdlIGxhbmcgaG9va3Mgc28gdGhhdCBmaW5hbF93cml0ZV9nbG9iYWxzIGRvZXMKCW5vdGhpbmcgZm9yIEMrKy4KCSogY3AvZGVjbC5jICh3cmFwdXBfZ2xvYmFsc19mb3JfbmFtZXNwYWNlKTogUmVtb3ZlIHNwZWNpYWwKCWhhbmRsaW5nIG9mIGdsb2JhbCBuYW1lc3BhY2UuCgoyMDAzLTAyLTE4ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGNwLXRyZWUuaCAocmlkX3RvX3l5KTogRGVsZXRlLgoJKENfUklEX1lZQ09ERSk6IERlbGV0ZS4KCShmaW5pc2hfZmlsZSk6IERlbGV0ZSByZWR1bmRhbnQgZGVjbGFyYXRpb24uCgoyMDAzLTAyLTE4ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBjKysvOTYyMwoJKiBkZWNsLmMgKHJlc2hhcGVfaW5pdCk6IERvbid0IG1lc3Mgd2l0aCBpbml0aWFsaXplciBsYWJlbHMuCgoJUFIgYysrLzk0ODUKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9wb3N0Zml4X2V4cHJlc3Npb24pOiBTZXQgaWRrIHByb3Blcmx5IGZvcgoJb2JqZWN0LT5zY29wZTo6bWVtYmVyLgoKMjAwMy0wMi0xOCAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJUFIgb3RoZXIvNzM1MAoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgoyMDAzLTAyLTE3ICBNaWNoYWVsIEVsaXphYmV0aCBDaGFzdGFpbiA8bWVjQHNob3V0Lm5ldD4KCglQUiBkZWJ1Zy85NzE3CgkqIGNsYXNzLmMgKGJ1aWxkX2Jhc2VfZmllbGQpOiBNYXJrIGZpZWxkcyBmb3IgYmFzZSBjbGFzc2VzIHdpdGgKCURFQ0xfSUdOT1JFRF9QLgoKMjAwMy0wMi0xNyAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzk0NTcKCSogcHQuYyAodHN1YnN0X2NvcHlfYW5kX2J1aWxkKSBbQ09OU1RSVUNUT1JdOiBTdWJzdGl0dXRlCglDT05TVFJVQ1RPUl9FTFRTIG9ubHkgb25jZS4KCjIwMDMtMDItMTYgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy85NDU5CgkqIGVycm9yLmMgKGR1bXBfdHlwZV9wcmVmaXgpOiBIYW5kbGUgVFlQRU9GX1RZUEUuCgkoZHVtcF90eXBlX3N1ZmZpeCk6IExpa2V3aXNlLgoKMjAwMy0wMi0xNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHNlYXJjaC5jOiBBTlNJZnkgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGFuZCBkZWZpbml0aW9ucy4KCSogY3AtdHJlZS5oIChsb29rdXBfZmllbGQsIGxvb2t1cF9tZW1iZXIpOiBMYXN0IHBhcmFtZXRlciBpcyBhIGJvb2wuCgkqIGNhbGwuYyAoYnVpbGRfbWV0aG9kX2NhbGwsIHJlc29sdmVfc2NvcGVkX2ZuX25hbWUsCglidWlsZF9qYXZhX2ludGVyZmFjZV9mbl9yZWYpOiBBZGp1c3QgbG9va3VwX2ZpZWxkLCBsb29rdXBfbWVtYmVyCgljYWxscy4KCSogY2xhc3MuYyAoaGFuZGxlX3VzaW5nX2RlY2wpOiBMaWtld2lzZS4KCSogZGVjbC5jIChtYWtlX3R5cGVuYW1lX3R5cGUsIG1ha2VfdW5tb3VuZF9jbGFzc190ZW1wbGF0ZSwKCXN0YXJ0X2RlY2wsIGNvbXB1dGVfYXJyYXlfaW5kZXhfdHlwZSk6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChidWlsZF9leHByX2Zyb21fdHJlZSwgYnVpbGRfY2FsbF9mcm9tX3RyZWUpOiBMaWtld2lzZS4KCSogaW5pdC5jIChleHBhbmRfbWVtYmVyX2luaXQsIGJ1aWxkX21lbWJlcl9jYWxsKTogTGlrZXdpc2UuCgkqIHB0LmMgKHRzdWJzdF9jb3B5LCB0c3Vic3RfY29weV9hbmRfYnVpbGQsIGRvX2RlY2xfaW5zdGFudGlhdGlvbiwKCXJlc29sdmVfdHlwZW5hbWVfdHlwZSk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAobG9va3VwX2Rlc3RydWN0b3IsIGZpbmlzaF9jbGFzc19tZW1iZXJfYWNjZXNzX2V4cHJtCglidWlsZF9wcmVtZW1mdW5jX2FjY2Vzc19leHByKTogTGlrZXdpc2UuCgoyMDAzLTAyLTEzICBHYWJyaWVsIERvcyBSZWlzIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogZGVjbDIuYzogSW5jbHVkZSAidGltZXZhci5oIi4KCShuYW1lc3BhY2VfYW5jZXN0b3IpOiBUaW1lIG5hbWUgbG9va3VwLgoJKGFkZF91c2luZ19uYW1lc3BhY2UpOiBMaWtld2lzZS4KCShsb29rdXBfdXNpbmdfbmFtZXNwYWNlKTogTGlrZXdpc2UuCgkocXVhbGlmaWVkX2xvb2t1cF91c2luZ19uYW1lc3BhY2UpOiBMaWtld2lzZS4KCShkZWNsX25hbWVzcGFjZSk6IExpa2V3aXNlLgoJKGxvb2t1cF9hcmdfZGVwZW5kZW50KTogTGlrZXdpc2UuCgkqIGxleC5jIChkb19pZGVudGlmaWVyKTogTGlrZXdpc2UuCgkoZG9fc2NvcGVkX2lkKTogTGlrZXdpc2UuCgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IExpa2V3aXNlLgoKMjAwMy0wMi0xNCAgIEFuZHJldyBQaW5za2kgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiBkZWNsLmM6IChkZWZpbmVfbGFiZWwpOiBGaXggd2FybmluZyBmb3IgcmV0dXJuIDAgaW5zdGVhZCBvZiBOVUxMLgoKMjAwMy0wMi0xMyAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBkZWNsLmM6IEluY2x1ZGUgInRpbWV2YXIuaCIuCgkocG9wbGV2ZWwpOiBUaW1lIG5hbWUgbG9va3VwLgoJKGZpbmRfYmluZGluZyk6IExpa2V3aXNlLgoJKHB1c2hfbmFtZXNwYWNlKTogTGlrZXdpc2UuCgkocG9wX25lc3RlZF9uYW1lc3BhY2UpOiBMaWtld2lzZS4KCShzdG9yZV9iaW5kaW5ncyk6IExpa2V3aXNlLgoJKG1heWJlX3B1c2hfdG9fdG9wX2xldmVsKTogTGlrZXdpc2UuCgkocG9wX2Zyb21fdG9wX2xldmVsKTogTGlrZXdpc2UuCgkocHVzaF9sb2NhbF9uYW1lKTogTGlrZXdpc2UuCgkocHVzaHRhZyk6IExpa2V3aXNlLgoJKHB1c2hkZWNsKTogTGlrZXdpc2UuCgkocHVzaGRlY2xfd2l0aF9zY29wZSk6IExpa2V3aXNlLgoJKHB1c2hkZWNsX25hbWVzcGFjZV9sZXZlbCk6IExpa2V3aXNlLgoJKHB1c2hkZWNsX3RvcF9sZXZlbCk6IExpa2V3aXNlLgoJKHB1c2hkZWNsX2NsYXNzX2xldmVsKTogTGlrZXdpc2UuCgkocHVzaF9jbGFzc19sZXZlbF9iaW5kaW5nKTogTGlrZXdpc2UuCgkocHVzaF91c2luZ19kZWNsKTogTGlrZXdpc2UuCgkocHVzaF91c2luZ19kaXJlY3RpdmUpOiBMaWtld2lzZS4KCShwdXNoX292ZXJsb2FkZWRfZGVjbCk6IExpa2V3aXNlLgoJKGxvb2t1cF9sYWJlbCk6IExpa2V3aXNlLgoJKGRlZmluZV9sYWJlbCk6IExpa2V3aXNlLgoJKGxvb2t1cF90YWcpOiBMaWtld2lzZS4KCShsb29rdXBfdGFnX3JldmVyc2UpOiBMaWtld2lzZS4KCShsb29rdXBfbmFtZXNwYWNlX25hbWUpOiBMaWtld2lzZS4KCShzZWxlY3RfZGVjbCk6IExpa2V3aXNlLgoJKHVucXVhbGlmaWVkX25hbWVzcGFjZV9sb29rdXApOiBMaWtld2lzZS4KCShsb29rdXBfbmFtZV9yZWFsKTogTGlrZXdpc2UuCgkobG9va3VwX25hbWVfY3VycmVudF9sZXZlbCk6IExpa2V3aXNlLgoJKGxvb2t1cF90eXBlX2N1cnJlbnRfbGV2ZWwpOiBMaWtld2lzZS4KCShtYXliZV9pbmplY3RfZm9yX3Njb3BlX3Zhcik6IExpa2V3aXNlLgoJKHhyZWZfdGFnKTogTGlrZXdpc2UuCgoJKiBNYWtlLWxhbmcuaW4gKGNwL2RlY2wubyk6IEFkZCBkZXBlbmRlbmN5IG9uIHRpbWV2YXIuaAoKMjAwMy0wMi0xMiAgUGhpbCBFZHdhcmRzICA8cG1lQGdjYy5nbnUub3JnPgoKCSogZGVjbC5jIChidWlsZF9lbnVtZXJhdG9yKTogIFJlbW92ZSB1bm5lZWRlZCB0ZXN0LgoKMjAwMy0wMi0wOSAgRGFuIE5pY29sYWVzY3UgIDxkYW5uQGljcy51Y2kuZWR1PgoKCSogY3AtdHJlZS5oIChzdHJ1Y3QgbGFuZ190eXBlX2hlYWRlcik6IE1ha2UgYWxsIGZpZWxkcyB1bnNpZ25lZAoJY2hhci4KCjIwMDMtMDItMDMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzcxMjkKCSogY2FsbC5jICh6X2NhbmRpZGF0ZSk6IEFkZCBhcmdzLgoJKGNvbnZlcnRfY2xhc3NfdG9fcmVmZXJlbmNlKTogU2V0IGl0LgoJKGltcGxpY2l0X2NvbnZlcnNpb24pOiBUaWR5LgoJKGFkZF9jYW5kaWRhdGUpOiBBZGQgYXJncyBwYXJhbWV0ZXIuCgkoYWRkX2Z1bmN0aW9uX2NhbmRpZGF0ZSk6IEFkanVzdCBjYWxsIHRvIGFkZF9jYW5kaWRhdGUuCgkoYWRkX2NvbnZfY2FuZGlkYXRlKTogTGlrZXdpc2UuCgkoYnVpbGRfYnVpbHRpbl9jYW5kaWRhdGUpOiBMaWtld2lzZS4KCShidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xKTogRWxpbWluYXRlIHdhc3RlZnVsIHRyZWVfY29ucwoJdXNhZ2UuCgkoYnVpbGRfbmV3X2Z1bmN0aW9uX2NhbGwpOiBMaWtld2lzZS4KCShidWlsZF9vYmplY3RfY2FsbCk6IExpa2V3aXNlLgoJKGFkZF9jYW5kaWRhdGVzKTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX25ld19vcCk6IFVzZSBpdC4KCShjb3ZlcnRfbGlrZV9yZWFsKTogQWRqdXN0IGNhbGwgdG8gYnVpbGRfb3Zlcl9jYWxsLgoJKGJ1aWxkX292ZXJfY2FsbCk6IFJlbW92ZSBhcmdzIHBhcmFtZXRlci4KCSogb3BlcmF0b3JzLmRlZjogQWRkIDw/PSBhbmQgPj89LgoKMjAwMy0wMi0wMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogdHlwZWNrLmMgKGJ1aWxkX2luZGlyZWN0X3JlZik6IERvbid0IGNoZWNrIGZsYWdfdm9sYXRpbGUuCgoyMDAzLTAxLTMxICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvODg0OQoJKiBwdC5jIChyZXNvbHZlX292ZXJsb2FkZWRfdW5pZmljYXRpb24pOiBIYW5kbGUgRlVOQ1RJT05fREVDTC4KCjIwMDMtMDEtMzEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKEJJTkZPX1NVQlZUVF9JTkRFWCwgQklORk9fVlBUUl9JTkRFWCwKCUJJTkZPX1BSSU1BUllfQkFTRV9PRik6IFVzZSBCSU5GT19FTFRTLgoJKEJJTkZPX0xBTkdfRUxUUyk6IE5ldyAjZGVmaW5lLgoJKiB0cmVlLmMgKG1ha2VfYmluZm8pOiBVc2UgQklORk9fTEFOR19FTFRTLgoKMjAwMy0wMS0zMCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBjcC9NYWtlLWxhbmcuaW46IFJlbW92ZSAtV25vLWVycm9yIGZyb20gY3AvZGVjbC5vLgoKMjAwMy0wMS0zMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGNoZWNrX2ZpZWxkX2RlY2xzKTogT25seSBjaGVjayBDX1RZUEVfRklFTERTX1JFQURPTkxZCglmb3IgY2xhc3MgdHlwZXMuCgkqIGNwLXRyZWUuaCAoQ19UWVBFX0ZJRUxEU19SRUFET05MWSk6IFVzZSBhIGxhbmctc3BlY2lmaWMgYml0CglyYXRoZXIgdGhhbiBUWVBFX0xBTkdfRkxBR18wLgoJKFRZUEVfQlVJTFRfSU4pOiBSZW1vdmUuCgkoVFlQRV9ERVBFTkRFTlRfUCk6IE5ldyBtYWNyby4KCShUWVBFX0RFUEVOREVOVF9QX1ZBTElEKTogTGlrZXdpc2UuCgkobGFuZ190eXBlX2NsYXNzKTogQWRkIGZpZWxkc19yZWFkb25seS4KCSogZGVjbC5jIChyZWNvcmRfYnVpbHRpbl90eXBlKTogRG9uJ3Qgc2V0IFRZUEVfQlVJTFRfSU4uCgkqIHB0LmMgKGRlcGVuZGVudF90eXBlX3Bfcik6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20gLi4uCgkoZGVwZW5kZW50X3R5cGVfcCk6IC4uLiBoZXJlLiAgTWVtb2l6ZSByZXN1bHRzLgoJKiBzZWFyY2guYyAoZGVwZW5kZW50X2Jhc2VfcCk6IFVzZSBkZXBlbmRlbnRfdHlwZV9wLCBub3QKCXVzZXNfdGVtcGxhdGVfcGFybXMuCgkqIHR5cGVjay5jIChidWlsZF9tb2RpZnlfZXhwcik6IE9ubHkgY2hlY2sgQ19UWVBFX0ZJRUxEU19SRUFET05MWQoJZm9yIGNsYXNzIHR5cGVzLgoKMjAwMy0wMS0yOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoYnVpbGRfZmllbGRfY2FsbCk6IFVzZSBidWlsZF9uZXdfb3AsIG5vdCBidWlsZF9vcGZuY2FsbC4KCShwcmVwX29wZXJhbmQpOiBOZXcgZnVuY3Rpb24uCgkoYnVpbGRfbmV3X29wKTogVXNlIGl0LiAgUmVtb3ZlIGRlYWQgY29kZS4KCSogY2xhc3MuYyAocHVzaGNsYXNzKTogQ2hhbmdlICJtb2RpZnkiIHBhcmFtZXRlciB0eXBlIGZyb20gaW50IHRvCglib29sLgoJKGN1cnJlbnRseV9vcGVuX2NsYXNzKTogVXNlIHNhbWVfdHlwZV9wLCBub3QgcG9pbnRlciBlcXVhbGl0eS4KCShwdXNoX25lc3RlZF9jbGFzcyk6IEFkanVzdCBjYWxscyB0byBwdXNoY2xhc3MsIHJlbW92ZSBtb2RpZnkKCXBhcmFtZXRlci4KCSogY3AtdHJlZS5oIChJTlRFR1JBTF9PUl9FTlVNRVJBVElPTl9UWVBFX1ApOiBOZXcgbWFjcm8uCgkocHVzaGNsYXNzKTogQ2hhbmdlIHByb3RvdHlwZS4KCShwdXNoX25lc3RlZF9jbGFzcyk6IExpa2V3aXNlLgoJKGdyb2tvcHR5cGVuYW1lKTogUmVtb3ZlLgoJKGJ1aWxkX29wZm5jYWxsKTogUmVtb3ZlLgoJKHZhbHVlX2RlcGVuZGVudF9leHByZXNzaW9uX3ApOiBEZWNsYXJlLgoJKHJlc29sdmVfdHlwZW5hbWVfdHlwZSk6IExpa2V3aXNlLgoJKHJlc29sdmVfdHlwZW5hbWVfdHlwZV9pbl9jdXJyZW50X2luc3RhbnRpYXRpb24pOiBMaWtld2lzZS4KCShlbnRlcl9zY29wZV9vZik6IFJlbW92ZS4KCSh0c3Vic3QpOiBSZW1vdmUuCgkodHN1YnN0X2V4cHIpOiBMaWtld2lzZS4KCSh0c3Vic3RfY29weSk6IExpa2V3aXNlLgoJKHRzdWJzdF9jb3B5X2FuZF9idWlsZCk6IExpa2V3aXNlLgoJKiBkZWNsLmMgKHdhcm5fYWJvdXRfaW1wbGljaXRfdHlwZW5hbWVfbG9va3VwKTogUmVtb3ZlLgoJKGZpbmlzaF9jYXNlX2xhYmVsKTogUmV0dXJuIGVycm9yX21hcmtfbm9kZSBmb3IgZXJyb25lb3VzIGxhYmVscy4KCShzdGFydF9kZWNsKTogQWRqdXN0IGNhbGxzIHRvIHB1c2hfbmVzdGVkX2NsYXNzLgoJKGdyb2tmbmRlY2wpOiBDYWxsIHB1c2hfc2NvcGUvcG9wX3Njb3BlIGFyb3VuZCBjYWxsIHRvCglkdXBsaWNhdGVfZGVjbHMuCgkoZ3Jva2RlY2xhcmF0b3IpOiBEbyBub3QgY2FsbCB0c3Vic3QuCgkoc3RhcnRfZnVuY3Rpb24pOiBBZGp1c3QgY2FsbHMgdG8gcHVzaF9uZXN0ZWRfY2xhc3MuCgkqIGRlY2wyLmMgKGdyb2tfYXJyYXlfZGVjbCk6IFVzZSBidWlsZF9uZXdfb3AsIG5vdCBidWlsZF9vcGZuY2FsbC4KCShjaGVja19jbGFzc2ZuKTogVXNlIHB1c2hfc2NvcGUvcG9wX3Njb3BlIGFyb3VuZCB0eXBlIGNvbXBhcmlzaW9ucy4KCShncm9rb3B0eXBlbmFtZSk6IFJlbW92ZS4KCShwdXNoX3NzY29wZSk6IEFkanVzdCBjYWxsIHRvIHB1c2hfbmVzdGVkX2NsYXNzLgoJKiBlcnJvci5jIChkdW1wX3R5cGUpOiBTaG93IGN2LXF1YWxpZmljYXRpb24gb2YgdHlwZW5hbWUgdHlwZXMuCgkqIGluaXQuYyAoYnVpbGRfbWVtYmVyX2NhbGwpOiBVc2UgYnVpbGRfbmV3X29wLCBub3QKCWJ1aWxkX29wZm5jYWxsLgoJKiBtZXRob2QuYyAoYnVpbGRfb3BmbmNhbGwpOiBSZW1vdmUuCgkqIHBhcnNlci5jIChjcF9wYXJzZXIpOiBBZGQgYWxsb3dfbm9uX2NvbnN0YW50X2V4cHJlc3Npb25fcCBhbmQKCW5vbl9jb25zdGFudF9leHByZXNzaW9uX3AuCgkoY3BfcGFyc2VyX2NvbnN0YW50X2V4cHJlc3Npb24pOiBBZGp1c3QgcHJvdG90eXBlLgoJKGNwX3BhcnNlcl9yZXNvbHZlX3R5cGVuYW1lX3R5cGUpOiBSZW1vdmUuCgkoY3BfcGFyc2VyX25vbl9jb25zdGFudF9leHByZXNzaW9uKTogTmV3IGZ1bmN0aW9uLgoJKGNwX3BhcnNlcl9ub25fY29uc3RhbnRfaWRfZXhwcmVzc2lvbik6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9uZXcpOiBTZXQgYWxsb3dfbm9uX2NvbnN0YW50X2V4cHJlc3Npb25fcCBhbmQKCW5vbl9jb25zdGFudF9leHByZXNzaW9uX3AuCgkoY3BfcGFyc2VyX3ByaW1hcnlfZXhwcmVzc2lvbik6IFJlamVjdCBgdGhpcycgYW5kIGB2YV9hcmcnIGluCgljb25zdGFudC1leHByZXNzaW9ucy4gIE5vdGUgdGhhdCBkZXBlbmRlbnQgbmFtZXMgYXJlbid0IHJlYWxseQoJY29uc3RhbnQuCgkoY3BfcGFyc2VyX3Bvc3RmaXhfZXhwcmVzc2lvbik6IFJlamVjdCBjb252ZXJzaW9ucyB0byBub24taW50ZWdyYWwKCXR5cGVzIGluIGNvbnN0YW50LWV4cHJlc3Npb25zLiAgTmVpdGhlciBhcmUgaW5jcmVtZW50cyBvcgoJZGVjcmVtZW50cy4KCShjcF9wYXJzZXJfdW5hcnlfZXhwcmVzc2lvbik6IFJlamVjdCBpbmNyZW1lbnRzIGFuZCBkZWNyZW1lbnRzIGluCgljb25zdGFudC1leHByZXNzaW9ucy4KCShjcF9wYXJzZXJfZGlyZWN0X25ld19kZWNsYXJhdG9yKTogQWRqdXN0IGNhbGwgdG8KCWNwX3BhcnNlcl9jb25zdGFudF9leHByZXNzaW9uLgoJKGNwX3BhcnNlcl9jYXN0X2V4cHJlc3Npb24pOiBSZWplY3QgY29udmVyc2lvbnMgdG8gbm9uLWludGVncmFsCgl0eXBlcyBpbiBjb25zdGFudC1leHByZXNzaW9ucy4KCShjcF9wYXJzZXJfYXNzaWdubWVudF9leHByZXNzaW9uKTogUmVqZWN0cyBhc3NpZ25tZW50cyBpbgoJY29uc3RhbnQtZXhwcmVzc2lvbnMuCgkoY3BfcGFyc2VyX2V4cHJlc3Npb24pOiBSZWplY3QgY29tbWFzIGluIGNvbnN0YW50LWV4cHJlc3Npb25zLgoJKGNwX3BhcnNlcl9sYWJlbGVkX3N0YXRlbWVudCk6IEFkanVzdCBjYWxsIHRvCgljcF9wYXJzZXJfY29uc3RhbnRfZXhwcmVzc2lvbi4KCShjcF9wYXJzZXJfZGlyZWN0X2RlY2xhcmF0b3IpOiBTaW1wbGlmeSBhcnJheSBib3VuZHMsIGV2ZW4gaW4KCXRlbXBsYXRlcywgd2hlbiB0aGV5IGFyZSBub24tZGVwZW5kZW50LiAgVXNlCglyZXNvbHZlX3R5cGVuYW1lX3R5cGUsIG5vdCBjcF9wYXJzZXJfcmVzb2x2ZV90eXBlbmFtZV90eXBlLgoJKGNwX3BhcnNlcl9jbGFzc19oZWFkKTogVXNlIHJlc29sdmVfdHlwZW5hbWVfdHlwZSwgbm90CgljcF9wYXJzZXJfcmVzb2x2ZV90eXBlbmFtZV90eXBlLgoJKGNwX3BhcnNlcl9tZW1iZXJfZGVjbGFyYXRpb24pOiBBZGp1c3QgY2FsbCB0bwoJY3BfcGFyc2VyX2NvbnN0YW50X2V4cHJlc3Npb24uCgkoY3BfcGFyc2VyX2NvbnN0YW50X2luaXRpYWxpemVyKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX2NvbnN0cnVjdG9yX2RlY2xhcmF0b3IpOiBVc2UgcmVzb2x2ZV90eXBlbmFtZV90eXBlLCBub3QKCWNwX3BhcnNlcl9yZXNvbHZlX3R5cGVuYW1lX3R5cGUuCgkoY3BfcGFyc2VyX2xhdGVfcGFyc2luZ19kZWZhdWx0X2FyZ3MpOiBBZGp1c3QgY2FsbCB0bwoJcHVzaF9uZXN0ZWRfY2xhc3MuCgkqIHB0LmMgKHRzdWJzdCk6IEdpdmUgaXQgaW50ZXJuYWwgbGlua2FnZS4KCSh0c3Vic3RfZXhwcik6IExpa2V3aXNlLgoJKHRzdWJzdF9jb3B5KTogTGlrZXdpc2UuCgkodHN1YnN0X2NvcHlfYW5kX2J1aWxkKTogTGlrZXdpc2UuCgkocHVzaF9hY2Nlc3Nfc2NvcGVfcmVhbCk6IExpa2V3aXNlLgoJKHRzdWJzdF9mcmllbmRfY2xhc3MpOiBMaWtld2lzZS4KCShpbnN0YW50aWF0ZV9jbGFzc190ZW1wbGF0ZSk6IEFkanVzdCBjYWxsIHRvIHB1c2hjbGFzcy4KCSh2YWx1ZV9kZXBlbmRlbnRfZXhwcmVzc2lvbl9wKTogR2l2ZSBpdCBleHRlcm5hbCBsaW5rYWdlLgoJUm9idXN0aWZ5LgoJKHJlc29sdmVfdHlwZW5hbWVfdHlwZSk6IE5ldyBmdW5jdGlvbi4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9jYWxsX2V4cHIpOiBVc2UgYnVpbGRfbmV3X29wLCBub3QKCWJ1aWxkX29wZm5jYWxsLgoJKGJlZ2luX2NvbnN0cnVjdG9yX2RlY2xhcmF0b3IpOiBSZW1vdmUuCgkoYmVnaW5fY2xhc3NfZGVmaW5pdGlvbik6IEFkanVzdCBjYWxsIHRvIHB1c2hjbGFzcy4KCShlbnRlcl9zY29wZV9vZik6IFJlbW92ZS4KCSogdHlwZWNrLmMgKGNvbXB0eXBlcyk6IFJlc29sdmUgdHlwZW5hbWUgdHlwZXMgYXMgYXBwcm9wcmlhdGUuCgkoYnVpbGRfeF9pbmRpcmVjdF9yZWYpOiBVc2UgYnVpbGRfbmV3X29wLCBub3QgYnVpbGRfb3BmbmNhbGwuCgkoYnVpbGRfeF9jb21wb3VuZF9leHByKTogTGlrZXdpc2UuCgkoYnVpbGRfbW9kaWZ5X2V4cHIpOiBMaWtld2lzZS4KCShidWlsZF94X21vZGlmeV9leHByKTogTGlrZXdpc2UuCgkqIHR5cGVjazIuYyAoYnVpbGRfeF9hcnJvdyk6IExpa2V3aXNlLgoKMjAwMy0wMS0yOSAgRmFyaWJvcnogSmFoYW5pYW4gIDxmamFoYW5pYW5AYXBwbGUuY29tPgoKCSogcHQuYyAobGFzdF9wZW5kaW5nX3RlbXBsYXRlKSBEZWNsYXJlIEdUWSgpLgoKMjAwMy0wMS0yOSAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzg1OTEKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9lbGFib3JhdGVkX3R5cGVfc3BlY2lmaWVyKTogQ29udmVydAoJVEVNUExBVEVfREVDTCB0byBUWVBFX0RFQ0wgb25seSB3aGVuIHByb2Nlc3NpbmcgdGVtcGxhdGUgZnJpZW5kcy4KCShjcF9wYXJzZXJfbWF5YmVfdHJlYXRfdGVtcGxhdGVfYXNfY2xhc3MpOiBSZW1vdmUgcmVkdW5kYW50IHRlc3RzLgoKMjAwMy0wMS0yOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTQzNwoJKiBwdC5jICh1bmlmeSk6IERvbid0IHVuaWZ5ICcqVCcgd2l0aCAnVSBDOjoqJy4KCglQUiBjKysvMzkwMgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2RlY2xfc3BlY2lmaWVyX3NlcSk6IENhbm5vdCBoYXZlIGNvbnN0cnVjdG9yCglpbnNpZGUgYSBkZWNsYXJhdG9yLgoKMjAwMy0wMS0yNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKHVwZGF0ZV92dGFibGVfZW50cnlfZm9yX2ZuKTogQWRkIGluZGV4IHBhcmFtZXRlci4KCUdlbmVyYXRlIHZjYWxsIHRodW5rIGZvciBjb3ZhcmlhbnQgb3ZlcnJpZGluZyBmcm9tIGEgdmlydHVhbAoJcHJpbWFyeSBiYXNlLgoJKGRmc19tb2RpZnlfdnRhYmxlcyk6IEFkanVzdC4KCjIwMDMtMDEtMjUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzk0MDMKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9jbGFzc19vcl9uYW1lc3BhY2VfbmFtZSk6IFJlamVjdCBkdXBsaWNhdGUKCXRlbXBsYXRlIGtleXdvcmQuCgkoY3BfcGFyc2VyX2Jhc2Vfc3BlY2lmaWVyKTogTG9vayBmb3IgYW5kIGNvbnN1bWUgYQoJVEVNUExBVEUga2V5d29yZC4gUmVwbGFjZSBzd2l0Y2ggd2l0aCBhcnJheSBpbmRleC4KCglQUiBjKysvNzk1CgkqIHNlbWFudGljcy5jIChmaW5pc2hfbm9uX3N0YXRpY19kYXRhX21lbWJlcik6IFJlbWVtYmVyIHRoZQoJZmllbGQncyB0eXBlIGV2ZW4gaW4gYSB0ZW1wbGF0ZS4KCglQUiBjKysvOTQxNQoJKiBwdC5jICh0c3Vic3RfY29weV9hbmRfYnVpbGQsIENBTExfRVhQUik6IEJBU0VMSU5LIGV4cHJzIGFyZQoJYWxyZWFkeSBzY29wZWQuCgoJUFIgYysrLzg1NDUKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9jYXN0X2V4cHJlc3Npb24pOiBCZSBtb3JlIHRlbnRhdGl2ZS4KCjIwMDMtMDEtMjUgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY3AtdHJlZS5oIChmbGFnZ2VkX3R5cGVfdHJlZV9zKTogUmVtb3ZlLgoJKGNoZWNrX2Zvcl9uZXdfdHlwZSk6IExpa2V3aXNlLgoJKiB0eXBlY2syLmMgKGNoZWNrX2Zvcl9uZXdfdHlwZSk6IExpa2V3aXNlLgoKMjAwMy0wMS0yMyAgTmF0aGFuYWVsIE5lcm9kZSAgPG5lcm9kZW5AZ2NjLmdudS5vcmc+CgoJKiBkdW1wLmM6IEFOU0lmeSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgYW5kIGRlZmluaXRpb25zLgoKCSogY3AtdHJlZS5oLCBkZWNsLmg6IEdldCByaWQgb2YgUEFSQU1TLiAgQWdhaW4uCgoyMDAzLTAxLTIyICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy85MzU0CgkqIGluaXQuYyAoYnVpbGRfbmV3KTogU2V0IHRoZSB0eXBlIG9mIHRoZSBuZXctZXhwcmVzc2lvbiwgZXZlbgoJd2hlbiBwcm9jZXNzaW5nX3RlbXBsdGVfZGVjbC4KCglQUiBjKysvOTIxNgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3ByaW1hcnlfZXhwcmVzc2lvbik6IEltcHJvdmUgZXJyb3IgbWVzc2FnZQoJZm9yIHRlbXBsYXRlcyB1c2VkIGluIGFuIGV4cHJlc3Npb24gY29udGV4dC4KCglQUiBjKysvODY5NgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2RlY2xfc3BlY2lmaWVyX3NlcSk6IENvbW1pdCB0byB0ZW50YXRpdmUKCXBhcnNlIHdoZW4gZW5jb3VudGVyaW5nICJ0eXBlZGVmIi4KCjIwMDMtMDEtMjIgIE5hdGhhbmFlbCBOZXJvZGUgIDxuZXJvZGVuQGdjYy5nbnUub3JnPgoKCSogY2xhc3MuYywgcGFyc2VyLmM6IEFOU0lmeSBmdW5jdGlvbiBkZWZpbml0aW9ucyBhbmQgZGVjbGFyYXRpb25zLgoKMjAwMy0wMS0yMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTMyOAoJKiBlcnJvci5jIChkdW1wX2RlY2wpOiBGb3IgYW4gT1ZFUkxPQUQsIGp1c3QgcHJpbnQgdGhlIG5hbWUgb2YgdGhlCglmdW5jdGlvbjsgaXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHRyeSB0byBwcmludCBpdHMgdHlwZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF90eXBlb2YpOiBJc3N1ZSBlcnJvcnMgYWJvdXQgaW52YWxpZCB1c2VzLgoKCVBSIGMrKy85Mjk4CgkqIHBhcnNlci5jIChjcF9wYXJzZXJfY29uc3VtZV9zZW1pY29sb25fYXRfZW5kX29mX3N0YXRlbWVudCk6IE5ldwoJZnVuY3Rpb24uCgkoY3BfcGFyc2VyX2V4cHJlc3Npb25fc3RhdGVtZW50KTogVXNlIGl0LgoJKGNwX3BhcnNlcl9leHBsaWNpdF9pbnN0YW50aWF0aW9uKTogTGlrZXdpc2UuCgkqIHB0LmMgKGRvX2RlY2xfaW5zdGFudGlhdGlvbik6IEltcHJvdmUgZXJyb3IgaGFuZGxpbmcgbG9naWMuCgoyMDAzLTAxLTIyICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy85Mzg0CgkqIHBhcnNlci5jIChjcF9wYXJzZXJfdXNpbmdfZGVjbGFyYXRpb24pOiBJc3N1ZSBlcnJvciBtZXNzYWdlcwoJYWJvdXQgbmFtZSByZXNvbHV0aW9uIGZhaWx1cmVzIGhlcmUuCgoJUFIgYysrLzkzODgKCSogY2xhc3MuYyAoY3VycmVudGx5X29wZW5fZGVyaXZlZF9jbGFzcyk6IFVzZSBkZXBlbmRlbnRfdHlwZV9wLgoJKiBjcC10cmVlLmggKGRlcGVuZGVudF90eXBlX3ApOiBOZXcgZnVuY3Rpb24uCgkoZGVwZW5kZW50X3RlbXBsYXRlX2FyZ19wKTogTGlrZXdpc2UuCgkoZGVwZW5kZW50X3RlbXBsYXRlX3ApOiBMaWtld2lzZS4KCSh0eXBlX2RlcGVuZGVudF9leHByZXNzaW9uX3ApOiBMaWtld2lzZS4KCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9kZXBlbmRlbnRfdHlwZV9wKTogUmVtb3ZlLgoJKGNwX3BhcnNlcl92YWx1ZV9kZXBlbmRlbnRfdHlwZV9wKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX3R5cGVfZGVwZW5kZW50X2V4cHJlc3Npb25fcCk6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9kZXBlbmRlbnRfdGVtcGxhdGVfYXJnX3ApOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfZGVwZW5kZW50X3RlbXBsYXRlX2lkX3ApOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfZGVwZW5kZW50X3RlbXBsYXRlX3ApOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfZGlhZ25vc2VfaW52YWxpZF90eXBlX25hbWUpOiBSZXBsYWNlCgljcF9wYXJzZXJfZGVwZW5kZW50X3R5cGVfcCB3aXRoIGRlcGVuZGVudF90eXBlX3AsIGV0Yy4KCShjcF9wYXJzZXJfcHJpbWFyeV9leHByZXNpb24pOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfbmVzdGVkX25hbWVfc3BlY2lmaWVyX29wdCk6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9wb3N0Zml4X2V4cHJlc3Npb24pOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfdW5hcnlfZXhwcmVzc2lvbik6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl90ZW1wbGF0ZV9uYW1lKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX2NsYXNzX25hbWUpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfbG9va3VwX25hbWUpOiBMaWtld2lzZS4KCSogcHQuYyAoZGVwZW5kZW50X3R5cGVfcCk6IE5ldyBmdW5jdGlvbi4KCSh2YWx1ZV9kZXBlbmRlbnRfZXhwcmVzc2lvbl9wKTogTGlrZXdpc2UuCgkodHlwZV9kZXBlbmRlbnRfZXhwcmVzc2lvbl9wKTogTGlrZXdpc2UuCgkoZGVwZW5kZW50X3RlbXBsYXRlX2FyZ19wKTogTGlrZXdpc2UuCgkoZGVwZW5kZW50X3RlbXBsYXRlX2lkX3ApOiBMaWtld2lzZS4KCShkZXBlbmRlbnRfdGVtcGxhdGVfcCk6IExpa2V3aXNlLgoKCVBSIGMrKy85Mjg1CglQUiBjKysvOTI5NAoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3NpbXBsZV9kZWNsYXJhdGlvbik6IFJldHVybiBxdWlja2x5IHdoZW4KCWVuY291bnRlcmluZyBlcnJvcnMuCgoyMDAzLTAxLTIxICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJTWFrZS1sYW5nLmluIChjcC9kZWNsLm8td2Fybik6IEFkZCAtV25vLWVycm9yLgoKMjAwMy0wMS0xNyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzkxNjcsIGMrKy85MzU4CgkqIGRlY2wuYyAocmVxdWlyZV9jb21wbGV0ZV90eXBlc19mb3JfcGFybXMpOiBBbHNvIHVwZGF0ZSBERUNMX0FSR19UWVBFLgoKMjAwMy0wMS0xNyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzkzNDIKCSogY2FsbC5jIChidWlsZF9jb25kaXRpb25hbF9leHByKTogQWx3YXlzIGRvIGx2YWx1ZS1ydmFsdWUKCWNvbnZlcnNpb24uCgoyMDAzLTAxLTE3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy85Mjk0CgkqIGNwLXRyZWUuZGVmIChCQVNFTElOSyk6IE1ha2UgaXQgY2xhc3MgJ3gnLCBub3QgY2xhc3MgJ2UnLgoJKiBjcC10cmVlLmggKEJBU0VMSU5LX0JJTkZPKTogQWRqdXN0LgoJKEJBU0VMSU5LX0ZVTkNUSU9OUyk6IExpa2V3aXNlLgoJKEJBU0VMSU5LX0FDQ0VTU19CSU5GTyk6IExpa2V3aXNlLgoJKHRyZWVfYmFzZWxpbmspOiBOZXcgc3RydWN0dXJlLgoJKGNwX3RyZWVfbm9kZV9zdHJ1Y3R1cmVfZW51bSk6IEFkZCBUU19DUF9CQVNFTElOSy4KCShsYW5nX3RyZWVfbm9kZSk6IEFkZCBiYXNlbGluay4KCSogZGVjbC5jIChjcF90cmVlX25vZGVfc3RydWN0dXJlKTogQWRkIEJBU0VMSU5LIGNhc2UuCgkqIHNlYXJjaC5jIChidWlsZF9iYXNlbGluayk6IEFkanVzdC4KCSogdHJlZS5jIChjcF93YWxrX3N1YnRyZWVzKTogQWRkIEJBU0VMSU5LIGNhc2UuICBSZW1vdmUgQkFTRUxJTktfUAoJdGVzdCBmcm9tIFRSRUVfTElTVCBjYXNlLgoKCVBSIGMrKy85MjcyCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfY29uc3RydWN0b3JfZGVjbGFyYXRvcl9wKTogRG8gbm90IGFzc3VtZQoJdGhhdCBhIGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBkZWNsYXJlZCBvdXRzaWRlIG9mIGl0cyBvd24gY2xhc3MuCgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3Jlc29sdmVfdHlwZW5hbWVfdHlwZSk6IElmIHRoZSBzY29wZSBjYW5ub3QKCWJlIHJlc29sdmVkLCBuZWl0aGVyIGNhbiB0aGUgcXVhbGlmaWVkIG5hbWUuCgoJKiBydHRpLmMgKGdldF9wc2V1ZG9fdGlfZGVzYyk6IEZpeCB0aGlua28uCgoyMDAzLTAxLTE2ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBjKysvODU2NAoJKiBpbml0LmMgKGJ1aWxkX3ZlY19pbml0KTogUmUtYWRkIG1heGluZGV4IHBhcm0uCgkocGVyZm9ybV9tZW1iZXJfaW5pdCwgYnVpbGRfYWdncl9pbml0KTogUGFzcyBpdC4KCShidWlsZF9uZXdfMSk6IFBhc3MgaXQuIFVzZSBhbiBpbmNvbXBsZXRlIGFycmF5IHR5cGUgZm9yIGZ1bGxfdHlwZS4KCSogdHlwZWNrLmMgKGJ1aWxkX21vZGlmeV9leHByKTogUGFzcyBpdC4KCSogY3AtdHJlZS5oOiBBZGp1c3QuCgoyMDAzLTAxLTE2ICBKZWZmcmV5IEQuIE9sZGhhbSAgPG9sZGhhbUBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oICh0c3Vic3RfY29weV9hbmRfYnVpbGQpOiBOZXcgZGVjbGFyYXRpb24uCgkqIHB0LmMgKHRzdWJzdF9jb3B5KTogUmVtb3ZlICdidWlsZF9leHByX2Zyb21fdHJlZScgZnJvbSBjb21tZW50LgoJKHRzdWJzdF9leHByKTogVXNlICd0c3Vic3RfY29weV9hbmRfYnVpbGQnLiAgVXBkYXRlIGluaXRpYWwgY29tbWVudC4KCSh0c3Vic3RfY29weV9hbmRfYnVpbGQpOiBOZXcgZnVuY3Rpb24uCgoyMDAzLTAxLTE2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChsYW5nX3R5cGVfY2xhc3MpOiBSZW1vdmUgaXNfcGFydGlhbF9pbnN0YW50aWF0aW9uLgoJKFBBUlRJQUxfSU5TVEFOVElBVElPTl9QKTogUmVtb3ZlLgoJKElNUExJQ0lUX1RZUEVOQU1FX1ApOiBMaWtld2lzZS4KCShJTVBMSUNJVF9UWVBFTkFNRV9UWVBFX0RFQ0xfUCk6IExpa2V3aXNlLgoJKGJ1aWxkX3R5cGVuYW1lX3R5cGUpOiBSZW1vdmUgZGVjbGFyYXRpb24uCgkocGFybWxpc3RfaXNfZXhwcmxpc3QpOiBMaWtld2lzZS4KCSogZGVjbC5jIChidWlsZF90eXBlbmFtZV90eXBlKTogTWFrZSBpdCBzdGF0aWMsIHJlbW92ZSB0aGlyZAoJcGFyYW1ldGVyLgoJKHB1c2hfY2xhc3NfYmluZGluZyk6IERvbid0IGRvIGltcGxpY2l0IHR5cGVuYW1lIHN0dWZmLgoJKG1ha2VfdHlwZW5hbWVfdHlwZSk6IExpa2V3aXNlLgoJKGxvb2t1cF9uYW1lX3JlYWwpOiBMaWtld2lzZS4KCShncm9rZGVjbGFyYXRvcik6IERvbid0IHRyeSB0byBjb252ZXJ0IGRlY2xhcmF0aW9ucyBpbnRvCglpbml0aWFsaXphdGlvbnMuICBEb24ndCBkbyBpbXBsaWNpdCB0eXBlbmFtZSBzdHVmZi4KCShwYXJtbGlzdF9pc19leHBybGlzdCk6IFJlbW92ZS4KCSh4cmVmX2Jhc2V0eXBlcyk6IFNpbXBsaWZ5LgoJKiBkZWNsMi5jIChncm9rZmllbGQpOiBEb24ndCB0cnkgdG8gY29udmVydCBkZWNsYXJhdGlvbnMgaW50bwoJaW5pdGlhbGl6YXRpb25zLgoJKGJ1aWxkX2Fub25fdW5pb25fdmFycyk6IERvIHRoaXMgd2hpbGUgcHJvY2Vzc2luZyB0ZW1wbGF0ZXMsIHRvby4KCShmaW5pc2hfYW5vbl91bmlvbik6IExpa2V3aXNlLgoJKiBlcnJvci5jIChkdW1wX3R5cGUpOiBSZW1vdmUgaW1wbGljaXQgdHlwZW5hbWUgaGFuZGxpbmcuCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfZGlhZ25vc2VfaW52YWxpZF90eXBlX25hbWUpOiBOZXcgbWV0aG9kLgoJKGNwX3BhcnNlcl9wcmltYXJ5X2V4cHJlc3Npb24pOiBDb3JyZWN0IGhhbmRsaW5nIG9mIG5hbWVzIG5vdAoJZm91bmQgYnkgdW5xdWFsaWZpZWQgbmFtZSBsb29rdXAgaW4gdGVtcGxhdGVzLgoJKGNwX3BhcnNlcl9uZXN0ZWRfbmFtZV9zcGVjaWZpZXJfb3B0KTogQXZvaWQgY2hlY2tpbmcgZGVwZW5kZW5jeQoJb2YgdHlwZXMgd2hlbiBwb3NzaWJsZS4KCShjcF9wYXJzZXJfc2ltcGxlX2RlY2xhcmF0aW9uKTogQ29tcGxhaW4gaW50ZWxsaWdlbnRseSBhYm91dCBzb21lCglpbnZhbGlkIGRlY2xhcmF0aW9ucy4KCShjcF9wYXJzZXJfbWVtYmVyX2RlY2xhcmF0aW9uKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX2NvbnN0cnVjdG9yX2RlY2xhcmF0b3JfcCk6IERvbid0IGNoZWNrIHdoZW4gd2UncmUgaW4gYQoJZnVuY3Rpb24gc2NvcGUuCgkqIHB0LmMgKGluc3RhbnRpYXRlX2NsYXNzX3RlbXBsYXRlKTogUmVtb3ZlCglQQVJUSUFMX0lOU1RBTlRJQVRJT05fUCBndW5rLgoJKiBzZWFyY2guYyAobG9va3VwX2ZpZWxkX3IpOiBEb24ndCBidWlsZCBpbXBsaWNpdCB0eXBlbmFtZXMuCgkobWFya2VkX3B1c2hkZWNsc19wKTogRG9uJ3QgZW50ZXIgZGVwZW5kZW50IGJhc2UgdHlwZXMuCgkodW5tYXJrZWRfcHVzaGRlY2xzX3ApOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGJlZ2luX2NsYXNzX2RlZmluaXRpb24pOiBSZW1vdmUgaW1wbGljaXQgdHlwZW5hbWUKCXN0dWZmLgoKMjAwMy0wMS0xNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTIxMgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2RpcmVjdF9kZWNsYXJhdG9yKTogSWYgYWNjZXB0aW5nIGVpdGhlcgoJYWJzdHJhY3Qgb3IgbmFtZWQsIHRoZSBuYW1lIG11c3QgYmUgYW4gdW5xdWFsaWZpZWQtaWQuCgoyMDAzLTAxLTE2ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBjbGFzcy5jIChsYXlvdXRfdmlydHVhbF9iYXNlcyk6IEF2b2lkIHNpZ25lZC91bnNpZ25lZCB3YXJuaW5nLgoKMjAwMy0wMS0xNCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogZGVjbDIuYyAoY2hlY2tfY2xhc3Nmbik6IEZpeCB1bmluaXRpYWxpemVkIHdhcm5pbmcuCgkoYnVpbGRfYW5vbl91bmlvbl92YXJzKTogTGlrZXdpc2UuCgkqIHB0LmMgKHRzdWJzdF9jb3B5KTogTGlrZXdpc2UuCgoyMDAzLTAxLTE0ICBKZWZmcmV5IEQuIE9sZGhhbSAgPG9sZGhhbUBjb2Rlc291cmNlcnkuY29tPgoKCUZ1cnRoZXIgY29uZm9ybSBnKysncyBfX3ZtaV9jbGFzc190eXBlX2luZm8gdG8gdGhlIEMrKyBBQkkKCXNwZWNpZmljYXRpb24uCgkqIHJ0dGkuYyAoZGZzX2NsYXNzX2hpbnRfbWFyayk6IERvIG5vdCBzZXQgaGludHMgbm90IHNwZWNpZmllZCBieQoJdGhlIHNwZWNpZmljYXRpb24uCgkoY2xhc3NfaGludF9mbGFncyk6IExpa2V3aXNlLgoKMjAwMy0wMS0xNCAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjb25maWctbGFuZy5pbjogQWRkIHNlbWFudGljcy5jIHRvIGd0ZmlsZXMuCgkqIGNwLXRyZWUuaCAoZmxhZ2dlZF90eXBlX3RyZWVfcyk6IFJlbW92ZSBsb29rdXBzIGZpZWxkLgoJKHNhdmVkX3Njb3BlKTogTGlrZXdpc2UuCgkodHlwZV9sb29rdXBzKTogUmVtb3ZlLgoJKGRlZmVycmVkX2FjY2Vzcyk6IE5ldyBzdHJ1Y3R1cmUuCgkodHlwZV9hY2Nlc3NfY29udHJvbCk6IFJlbW92ZS4KCShzYXZlX3R5cGVfYWNjZXNzX2NvbnRyb2wpOiBMaWtld2lzZS4KCShyZXNldF90eXBlX2FjY2Vzc19jb250cm9sKTogTGlrZXdpc2UuCgkoZGVjbF90eXBlX2FjY2Vzc19jb250cm9sKTogTGlrZXdpc2UuCgkocHVzaF9kZWZlcnJpbmdfYWNjZXNzX2NoZWNrcyk6IERlY2xhcmUuCgkocmVzdW1lX2RlZmVycmluZ19hY2Nlc3NfY2hlY2tzKTogTGlrZXdpc2UuCgkoc3RvcF9kZWZlcnJpbmdfYWNjZXNzX2NoZWNrcyk6IExpa2V3aXNlLgoJKHBvcF9kZWZlcnJpbmdfYWNjZXNzX2NoZWNrcyk6IExpa2V3aXNlLgoJKGdldF9kZWZlcnJlZF9hY2Nlc3NfY2hlY2tzKTogTGlrZXdpc2UuCgkocG9wX3RvX3BhcmVudF9kZWZlcnJpbmdfYWNjZXNzX2NoZWNrcyk6IExpa2V3aXNlLgoJKHBlcmZvcm1fZGVmZXJyZWRfYWNjZXNzX2NoZWNrcyk6IExpa2V3aXNlLgoJKHBlcmZvcm1fb3JfZGVmZXJfYWNjZXNzX2NoZWNrKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAobWFrZV90eXBlbmFtZV90eXBlKTogVXNlIHBlcmZvcm1fb3JfZGVmZXJfYWNjZXNzX2NoZWNrLgoJKG1ha2VfdW5ib3VuZF9jbGFzc190ZW1wbGF0ZSk6IExpa2V3aXNlLgoJKGdyb2tkZWNsYXJhdG9yKTogRG9uJ3QgY2FsbCBkZWNsX3R5cGVfYWNjZXNzX2NvbnRyb2wuCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfY29udGV4dCk6IFJlbW92ZSBkZWZlcnJlZF9hY2Nlc3NfY2hlY2tzCglhbmQgZGVmZXJyaW5nX2FjY2Vzc19jaGVja3NfcCBmaWVsZHMuCgkoY3BfcGFyc2VyX2NvbnRleHRfbmV3KTogQWRqdXN0LgoJKGNwX3BhcnNlcik6IFJlbW92ZSBhY2Nlc3NfY2hlY2tzX2xpc3RzLgoJKGNwX3BhcnNlcl9kZWZlcl9hY2Nlc3NfY2hlY2spOiBSZW1vdmUuCgkoY3BfcGFyc2VyX3N0YXJ0X2RlZmVycmluZ19hY2Nlc3NfY2hlY2tzKTogUmVtb3ZlLgoJKGNwX3BhcnNlcl9zdG9wX2RlZmVycmluZ19hY2Nlc3NfY2hlY2tzKTogUmVtb3ZlLgoJKGNwX3BhcnNlcl9wZXJmb3JtX2RlZmVycmVkX2FjY2Vzc19jaGVja3MpOiBSZW1vdmUuCgkoY3BfcGFyc2VyX25lc3RlZF9uYW1lX3NwZWNpZmllcl9vcHQpOiBVc2UgbmV3IGRlZmVycmVkIGFjY2VzcwoJZnVuY3Rpb25zLgoJKGNwX3BhcnNlcl9zaW1wbGVfZGVjbGFyYXRpb24pOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfdGVtcGxhdGVfaWQpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfZnVuY3Rpb25fZGVmaW5pdGlvbik6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9jbGFzc19zcGVjaWZpZXIpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfbG9va3VwX25hbWUpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfc2luZ2xlX2RlY2xhcmF0aW9uKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX3ByZV9wYXJzZWRfbmVzdGVkX25hbWVfc3BlY2lmaWVyKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX3BhcnNlX3RlbnRhdGl2ZWx5KTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX3BhcnNlX2RlZmluaXRlbHkpOiBMaWtld2lzZS4KCSh5eXBhcnNlKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX2luaXRfZGVjbGFyYXRvcik6IFJlbW92ZSBhY2Nlc3NfY2hlY2tzIHBhcmFtZXRlci4KCVVzZSBuZXcgZGVmZXJyZWQgYWNjZXNzIGZ1bmN0aW9ucy4KCShjcF9wYXJzZXJfZnVuY3Rpb25fZGVmaW5pdGlvbl9mcm9tX3NwZWNpZmllcnNfYW5kX2RlY2xhcmF0b3IpOgoJTGlrZXdpc2UuCgkoY3BfcGFyc2VyX2NsYXNzX2hlYWQpOiBSZW1vdmUgZGVmZXJyaW5nX2FjY2Vzc19jaGVja3NfcCBhbmQKCXNhdmVkX2FjY2Vzc19jaGVja3MgcGFyYW1ldGVycy4gIFVzZSBuZXcgZGVmZXJyZWQgYWNjZXNzIGZ1bmN0aW9ucy4KCShjcF9wYXJzZXJfbWVtYmVyX3NwZWNpZmljYXRpb25fb3B0KTogRG9uJ3QgY2FsbAoJcmVzZXRfdHlwZV9hY2Nlc3NfY29udHJvbC4KCSogc2VhcmNoLmMgKHR5cGVfYWNjZXNzX2NvbnRyb2wpOiBSZW1vdmUuCgkqIHNlbWFudGljcy5jOiBJbmNsdWRlICJndC1jcC1zZW1hbnRpY3MuaCIuCgkoZGVmZXJyZWRfdHlwZV9hY2Nlc3NfY29udHJvbCk6IFJlbW92ZS4KCShkZWZlcnJlZF9hY2Nlc3Nfc3RhY2spOiBOZXcgdmFyaWFibGUuCgkoZGVmZXJyZWRfYWNjZXNzX2ZyZWVfbGlzdCk6IExpa2V3aXNlLgoJKHB1c2hfZGVmZXJyaW5nX2FjY2Vzc19jaGVja3MpOiBOZXcgZnVuY3Rpb24uCgkocmVzdW1lX2RlZmVycmluZ19hY2Nlc3NfY2hlY2tzKTogTGlrZXdpc2UuCgkoc3RvcF9kZWZlcnJpbmdfYWNjZXNzX2NoZWNrcyk6IExpa2V3aXNlLgoJKHBvcF9kZWZlcnJpbmdfYWNjZXNzX2NoZWNrcyk6IExpa2V3aXNlLgoJKGdldF9kZWZlcnJlZF9hY2Nlc3NfY2hlY2tzKTogTGlrZXdpc2UuCgkocG9wX3RvX3BhcmVudF9kZWZlcnJpbmdfYWNjZXNzX2NoZWNrcyk6IExpa2V3aXNlLgoJKHBlcmZvcm1fZGVmZXJyZWRfYWNjZXNzX2NoZWNrcyk6IE5ldyBmdW5jdGlvbiwgYWRhcHRlZCBmcm9tCgljcF9wYXJzZXJfcGVyZm9ybV9kZWZlcnJlZF9hY2Nlc3NfY2hlY2tzLgoJKHBlcmZvcm1fb3JfZGVmZXJfYWNjZXNzX2NoZWNrKTogTmV3IGZ1bmN0aW9uLCBhZGFwdGVkIGZyb20KCWNwX3BhcnNlcl9kZWZlcl9hY2Nlc3NfY2hlY2suCgkoY3VycmVudF90eXBlX2xvb2t1cHMpOiBSZW1vdmUuCgkoZGVmZXJyZWRfdHlwZV9hY2Nlc3NfY29udHJvbCk6IExpa2V3aXNlLgoJKGRlY2xfdHlwZV9hY2Nlc3NfY29udHJvbCk6IExpa2V3aXNlLgoJKHNhdmVfdHlwZV9hY2Nlc3NfY29udHJvbCk6IExpa2V3aXNlLgoJKHJlc2V0X3R5cGVfYWNjZXNzX2NvbnRyb2wpOiBMaWtld2lzZS4KCShiZWdpbl9mdW5jdGlvbl9kZWZpbml0aW9uKTogQWRqdXN0LgoJKGJlZ2luX2NsYXNzX2RlZmluaXRvbik6IExpa2V3aXNlLgoKMjAwMy0wMS0xMyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzg3NDgKCSogY2xhc3MuYyAoYnVpbGRfYmFzZV9wYXRoKTogVGFrZSB0aGUgYWRkcmVzcyBiZWZvcmUgY2FsbGluZyBzYXZlX2V4cHIuCgoJKiBjYWxsLmMgKGJ1aWxkX3VzZXJfdHlwZV9jb252ZXJzaW9uXzEpOiBEbyBzZXQgSUNTX0JBRF9GTEFHIGlmCglhbGwgdGhlIGFtYmlndW91cyBjb252ZXJzaW9ucyBhcmUgYmFkLgoKCSogY2xhc3MuYyAobWF5YmVfd2Fybl9hYm91dF9vdmVybHlfcHJpdmF0ZV9jbGFzcyk6IERvbid0IHN0b3AKCXNlYXJjaGluZyB3aGVuIHdlIGZpbmQgYSBub25wcml2YXRlIG1ldGhvZC4KCgkqIHR5cGVjay5jIChidWlsZF9jbGFzc19tZW1iZXJfYWNjZXNzX2V4cHIpOiBVc2UgdW5hcnlfY29tcGxleF9sdmFsdWUuCgoyMDAzLTAxLTEyICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChnZXRfYXJnbGlzdF9sZW5faW5fYnl0ZXMpOiBSZW1vdmUuCgoJUFIgYysrLzkyNjQKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9lbGFib3JhdGVkX3R5cGVfc3BlY2lmaWVyKTogSGFuZGxlIGVycm9uZW91cwoJdHlwZWFtZSB0eXBlcyBtb3JlIHJvYnVzdGx5LgoKMjAwMy0wMS0xMSAgUGhpbCBFZHdhcmRzICA8cG1lQGdjYy5nbnUub3JnPgoKCSogcGFyc2VyLmM6ICBGaXggY29tbWVudCB0eXBvcy4KCjIwMDMtMDEtMTAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzkwOTkKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9zY29wZV90aHJvdWdoX3doaWNoX2FjY2Vzc19vY2N1cnMpOiBIYW5kbGUKCWFuIG9iamVjdF90eXBlIHdoaWNoIGlzIG5vdCBhIGNsYXNzIHR5cGUuCgoyMDAzLTAxLTEwICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfbGF0ZV9wYXJzaW5nX2Zvcl9tZW1iZXIpOiBEb24ndCBjYXN0IHRvIHZvaWQuCgkoY3BfcGFyc2VyX2xhdGVfcGFyc2luZ19kZWZhdWx0X2FyZ3MpOiBMaWtld2lzZS4KCjIwMDMtMDEtMTAgIE5hdGhhbmFlbCBOZXJvZGUgIDxuZXJvZGVuQGdjYy5nbnUub3JnPgoKCSogY2Zucy5ncGVyZjogQU5TSWZ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4KCSogY2Zucy5oOiBSZWdlbmVyYXRlLgoJKiBjcC10cmVlLmg6IEFOU0lmeSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCgoyMDAzLTAxLTEwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChyZXBhcnNlX2Fic2RjbF9hc19leHByKTogUmVtb3ZlLgoJKHJlcGFyc2VfYWJzZGNsX2FzX2Nhc3RzKTogTGlrZXdpc2UuCgkocmVwYXJzZV9kZWNsX2FzX2V4cHIpOiBMaWtld2lzZS4KCShmaW5pc2hfZGVjbF9wYXJzaW5nKTogTGlrZXdpc2UuCgkqIGRlY2wyLmMgKHJlcGFyc2VfYWJzZGNsX2FzX2V4cHIpOiBSZW1vdmUuCgkocmVwYXJzZV9hYnNkY2xfYXNfY2FzdHMpOiBMaWtld2lzZS4KCShyZXBhc2VfZGVjbF9hc19leHByKTogTGlrZXdpc2UuCgkoZmluaXNoX2RlY2xfcGFyc2luZyk6IExpa2V3aXNlLgoKCVBSIGMrKy85MTI4CglQUiBjKysvOTE1MwoJUFIgYysrLzkxNzEKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9wcmVfcGFyc2VkX25lc3RlZF9uYW1lX3NwZWNpZmllcik6IE5ldwoJZnVuY3Rpb24uCgkoY3BfcGFyc2VyX25lc3RlZF9uYW1lX3NwZWNpZmllcl9vcHQpOiBDb3JyZWN0IHRoZQoJY2hlY2tfZGVwZW5kZW5jeV9wIGZhbHNlLgoJKGNwX3BhcnNlcl9wb3N0Zml4X2V4cHJlc3Npb24pOiBGaXggZm9ybWF0dGluZy4KCShjcF9wYXJzZXJfZGVjbF9zcGVjaWZpZXJfc2VxKTogQXZvaWQgbG9va2luZyBmb3IgY29uc3RydWN0b3IKCWRlY2xhcmF0b3JzIHdoZW4gcG9zc2libGUuCgkoY3BfcGFyc2VyX3RlbXBsYXRlX2lkKTogQXZvaWQgcGVyZm9ybWluZyBuYW1lLWxvb2t1cCB3aGVuCglwb3NzaWJsZS4KCShjcF9wYXJzZXJfY2xhc3NfaGVhZCk6IERvIG5vdCBjb3VudCBzcGVjaWFsaXphdGlvbnMgd2hlbiBjb3VudGluZwoJbGV2ZWxzIG9mIHRlbXBsYXRlcy4KCShjcF9wYXJzZXJfY29uc3RydWN0b3JfZGVjbGFyYXRvcl9wKTogUmV0dXJuIGltbWVkaWF0ZWx5IGlmCgl0aGVyZSdzIG5vIGNoYW5jZSB0aGF0IHRoZSB0b2tlbnMgZm9ybSBhIGNvbnN0cnVjdG9yIGRlY2xhcmF0b3IuCgkqIHJ0dGkuYyAodGhyb3dfYmFkX3R5cGVpZCk6IEFkZCBjb21tZW50LiAgRG8gbm90IHJldHVybiBhbgoJZXhwcmVzc2lvbiB3aXRoIHJlZmVyZW5jZSB0eXBlLgoJKGdldF90aW5mb19kZWNsX2R5bmFtaWMpOiBEbyBub3QgcmV0dXJuIGFuIGV4cHJlc3Npb24gd2l0aAoJcmVmZXJlbmNlIHR5cGUuCgkoYnVpbGRfdHlwZWlkKTogQWRkIGNvbW1lbnQuICBEbyBub3QgcmV0dXJuIGFuIGV4cHJlc3Npb24gd2l0aAoJcmVmZXJlbmNlIHR5cGUuCgkqIHR5cGVjay5jIChidWlsZF9jbGFzc19tZW1iZXJfYWNjZXNzX2V4cHIpOiBJbXByb3ZlIGhhbmRsaW5nIG9mCgljb25kaXRpb25hbHMgYW5kIGNvbW1hLWV4cHJlc3Npb25zIGFzIG9iamVjdHMuCgoyMDAzLTAxLTA5ICBOYXRoYW5hZWwgTmVyb2RlICA8bmVyb2RlbkBnY2MuZ251Lm9yZz4KCgkqIGNmbnMuZ3BlcmY6IEFOU0lmeSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCgkqIGNmbnMuaDogUmVnZW5lcmF0ZS4KCSogY3AtdHJlZS5oOiBBTlNJZnkgZnVuY3Rpb24gZGVjbGFyYXRpb25zLgoJKiBwYXJzZXIuYzogQU5TSWZ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyAmIGRlZmluaXRpb25zLgoKCSogZGVjbC5jIChiYWRfc3BlY2lmaWVycyk6IEZpeCBwYXJhbWV0ZXIgb3JkZXIgZXJyb3IgSSBpbnRyb2R1Y2VkLgoKMjAwMy0wMS0wOSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJTWVyZ2UgZnJvbSBwY2gtYnJhbmNoOgoKCTIwMDMtMDEtMDkgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCU1lcmdlIHRvIHRhZyBwY2gtbWVyZ2UtMjAwMzAxMDI6CgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX3RyYW5zbGF0aW9uX3VuaXQpOiBEb24ndCBjYWxsIGZpbmlzaF9maWxlLgoJKiBwYXJzZXIuYzogRG9uJ3QgaW5jbHVkZSBnZ2MuaC4KCShjcF9sZXhlcl9uZXdfbWFpbik6IFJlbmFtZSBmcm9tIGNwX2xleGVyX25ldywgb25seSBjcmVhdGUgbWFpbiBsZXhlciwKCXJlYWQgZmlyc3QgdG9rZW4gaGVyZS4gIERvbid0IGFsbG93IFBDSCBmaWxlcyBhZnRlciB0aGUgZmlyc3QKCXRva2VuIGlzIHJlYWQuCgkoY3BfbGV4ZXJfbmV3X2Zyb21fdG9rZW5zKTogRHVwbGljYXRlIGZ1bmN0aW9uYWxpdHkgZnJvbSBjcF9sZXhlcl9uZXcuCgkoY3BfbGV4ZXJfZ2V0X3ByZXByb2Nlc3Nvcl90b2tlbik6IEFsbG93IExFWEVSIHRvIGJlIE5VTEwuCgkoY3BfcGFyc2VyX25ldyk6IENhbGwgY3BfbGV4ZXJfbmV3X21haW4gYmVmb3JlIGFsbG9jYXRpbmcgR0NlZCBtZW1vcnkuCgkoY3BfcGFyc2VyX2xhdGVfcGFyc2luZ19mb3JfbWVtYmVyKTogRG9uJ3QgZHVwbGljYXRlIGNhbGwgdG8KCWNwX2xleGVyX3NldF9zb3VyY2VfcG9zaXRpb25fZnJvbV90b2tlbi4KCShjcF9wYXJzZXJfbGF0ZV9wYXJzaW5nX2RlZmF1bHRfYXJncyk6IExpa2V3aXNlLgoJKHl5cGFyc2UpOiBDYWxsIGZpbmlzaF9maWxlIGFmdGVyIGNsZWFyaW5nIHRoZV9wYXJzZXIuCgoJMjAwMi0xMi0xMSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBNYWtlLWxhbmcuaW46IFJlbW92ZSAkKEdHQ19IKSBmcm9tIGFsbCBkZXBlbmRlbmNpZXMuCgkoQ1hYX1RSRUVfSCk6IEFkZCAkKEdHQ19IKS4KCSogY2xhc3MuYzogRG9uJ3QgaW5jbHVkZSBnZ2MuaC4KCShmaWVsZF9kZWNsX2NtcCk6IE1ha2UgcGFyYW1ldGVycyBiZSAnY29uc3Qgdm9pZCAqJyB0byBtYXRjaCBxc29ydC4KCShtZXRob2RfbmFtZV9jbXApOiBMaWtld2lzZS4KCShyZXNvcnRfZGF0YSk6IE5ldyB2YXJpYWJsZS4KCShyZXNvcnRfZmllbGRfZGVjbF9jbXApOiBOZXcuCgkocmVzb3J0X21ldGhvZF9uYW1lX2NtcCk6IE5ldy4KCShyZXNvcnRfc29ydGVkX2ZpZWxkcyk6IE5ldy4KCShyZXNvcnRfdHlwZV9tZXRob2RfdmVjKTogTmV3LgoJKGZpbmlzaF9zdHJ1Y3RfbWV0aG9kcyk6IERlbGV0ZSBjYXN0LgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IERlbGV0ZSBjYXN0LgoJKiBjcC10cmVlLmg6IEluY2x1ZGUgZ2djLmguCgkoc3RydWN0IGxhbmdfdHlwZV9jbGFzcyk6IEFkZCByZW9yZGVyIGF0dHJpYnV0ZSB0byBmaWVsZCBgbWV0aG9kcycuCgkodW5pb24gbGFuZ19kZWNsX3UzKTogQWRkIHJlb3JkZXIgYXR0cmlidXRlIHRvIGZpZWxkIGBzb3J0ZWRfZmllbGRzJy4KCShyZXNvcnRfc29ydGVkX2ZpZWxkcyk6IE5ldyBwcm90b3R5cGUuCgkocmVzb3J0X3R5cGVfbWV0aG9kX3ZlYyk6IE5ldyBwcm90b3R5cGUuCgkqIGNhbGwuYzogRG9uJ3QgaW5jbHVkZSBnZ2MuaC4KCSogZGVjbC5jOiBMaWtld2lzZS4KCSogZGVjbDIuYzogTGlrZXdpc2UuCgkqIGluaXQuYzogTGlrZXdpc2UuCgkqIGxleC5jOiBMaWtld2lzZS4KCSogbWV0aG9kLmM6IExpa2V3aXNlLgoJKiBvcHRpbWl6ZS5jOiBMaWtld2lzZS4KCSogcGFyc2UueTogTGlrZXdpc2UuCgkqIHB0LmM6IExpa2V3aXNlLgoJKiByZXBvLmM6IExpa2V3aXNlLgoJKiBzZWFyY2guYzogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jOiBMaWtld2lzZS4KCSogc3Bldy5jOiBMaWtld2lzZS4KCSogdHJlZS5jOiBMaWtld2lzZS4KCgkqIGxhbmctc3BlY3MuaDogUmVtb3ZlIGNvbW1lbnQuCgoJMjAwMi0xMi0wMyAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBvcGVyYXRvcl9uYW1lX2luZm9fdCk6IE1hcmsgZm9yIEdUWSBtYWNoaW5lcnkuCgkob3BlcmF0b3JfbmFtZV9pbmZvKTogTWFyayB0byBiZSBzYXZlZCBmb3IgUENILCBzcGVjaWZ5IHNpemUuCgkoYXNzaWdubWVudF9vcGVyYXRvcl9uYW1lX2luZm8pOiBMaWtld2lzZS4KCgkyMDAyLTExLTE5ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGRlY2wuYyAoYW5vbl9jbnQpOiBNYXJrIHRvIGJlIHNhdmVkIGZvciBQQ0guCgoJMjAwMi0xMC0yNSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBsZXguYyAgKGluaXRfcmVzd29yZHMpOiBEZWxldGUgbm93LXVudHJ1ZSBjb21tZW50LgoJQWxsb2NhdGUgcmlkcG9pbnRlcnMgdXNpbmcgR0dDLgoKCTIwMDItMTAtMDQgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY3AtdHJlZS5oICh1bmlvbiBsYW5nX2RlY2xfdTIpOiBBZGQgdGFncyB0byBhbGwgZmllbGRzLgoKCSogZysrc3BlYy5jIChsYW5nX3NwZWNpZmljX2RyaXZlcik6IERvbid0IGluY2x1ZGUgc3RhbmRhcmQKCWxpYnJhcmllcyBpbiBgYWRkZWQnLgoKCTIwMDItMDgtMjcgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAcmVkaGF0LmNvbT4KCgkqIGRlY2wyLmMgKGZpbmlzaF9maWxlKTogQ2FsbCBjX2NvbW1vbl93cml0ZV9wY2guCgkqIE1ha2UtbGFuZy5pbiAoQ1hYX0NfT0JKUyk6IEFkZCBjLXBjaC5vLgoKCTIwMDItMDgtMTcgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAcmVkaGF0LmNvbT4KCgkqIGcrK3NwZWMuYyAobGFuZ19zcGVjaWZpY19kcml2ZXIpOiBUcmVhdCAuaCBmaWxlcyBhcyBDKysgaGVhZGVyCglmaWxlcyB3aGVuIHVzaW5nIGcrKy4KCSogbGFuZy1zcGVjcy5oOiBIYW5kbGUgY29tcGlsaW5nIEMrKyBoZWFkZXIgZmlsZXMuCgoyMDAzLTAxLTA5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAoc3RhcnRfZGVjbCk6IE9ubHkgY2hlY2sgREVDTF9USFJFQURfTE9DQUwgZm9yIFZBUl9ERUNMcy4KCjIwMDMtMDEtMDkgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcHQuYyAocHVzaF9hY2Nlc3Nfc2NvcGVfcmVhbCk6IENhbGwgcHVzaF90b190b3BfbGV2ZWwgZm9yCglmdW5jdGlvbiBpbiBuYW1lc3BhY2Ugc2NvcGUuCgkocG9wX2FjY2Vzc19zY29wZSk6IENhbGwgcG9wX2Zyb21fdG9wX2xldmVsIGZvciBmdW5jdGlvbiBpbgoJbmFtZXNwYWNlIHNjb3BlLgoKMjAwMy0wMS0wOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKHN0YXJ0X2RlY2wpOiBEb24ndCBzZXQgREVDTF9DT01NT04gZm9yIF9fdGhyZWFkIHZhcmlhYmxlcy4KCjIwMDMtMDEtMDkgIENocmlzdGlhbiBDb3JuZWxzc2VuICA8Y2Nvcm5AY3MudHUtYmVybGluLmRlPgoKCSogTWFrZS1sYW5nLmluIChjKysuaW5zdGFsbC1jb21tb24sIGMrKy5pbnN0YWxsLW1hbiwKCWMrKy51bmluc3RhbGwpOiBQcmVwZW5kICQoREVTVERJUikgdG8gZGVzdGluYXRpb24gcGF0aHMgaW4KCWFsbCAodW4paW5zdGFsbGF0aW9uIGNvbW1hbmRzLgoJKGMrKy5pbnN0YWxsLWNvbW1vbik6IFJld3JpdGUgJChMTikgY29tbWFuZHMgdG8gc3VwcG9ydAoJREVTVERJUiB3aXRoICJsbiIgYXMgd2VsbCBhcyB3aXRoICJsbiAtcyIuCgoyMDAzLTAxLTA4ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfcHJpbWFyeV9leHByZXNzaW9uKTogU2VlIHRocm91Z2ggZXhwbGljaXRseQoJc2NvcGVkIEFMSUFTX0RFQ0xzLCB0b28uCgoyMDAzLTAxLTA4ICBOYXRoYW5hZWwgTmVyb2RlICA8bmVyb2RlbkBnY2MuZ251Lm9yZz4KCgkqIGRlY2wuYzogUmVtb3ZlIHNvbWUgI2lmIDAgY29kZS4KCgkqIGRlY2wuYzogQU5TSWZ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4KCjIwMDMtMDEtMDcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2FzbV9kZWZpbml0aW9uKTogQ29ycmVjdCBoYW5kbGluZyBvZiBvbWl0dGVkCglvcGVyYW5kcy4KCjIwMDMtMDEtMDggIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy85MDMwCgkqIGRlY2wuYyAobWFrZV90eXBlbmFtZV90eXBlKTogQ2hlY2sgYWNjZXNzIG9ubHkgd2hlbiB0Zl9lcnJvci4KCShtYWtlX3VuYm91bmRfY2xhc3NfdGVtcGxhdGUpOiBMaWtld2lzZS4KCSogcHQuYyAoc2F2ZWRfYWNjZXNzX3Njb3BlKTogTmV3IHZhcmlhYmxlLgoJKHB1c2hfYWNjZXNzX3Njb3BlX3JlYWwpOiBOZXcgZnVuY3Rpb24uCgkocHVzaF9hY2Nlc3Nfc2NvcGUpOiBMaWtld2lzZS4KCShwb3BfYWNjZXNzX3Njb3BlKTogTGlrZXdpc2UuCgkodHN1YnN0X2RlZmF1bHRfYXJndW1lbnQpOiBVc2UgdGhlbS4KCShpbnN0YW50aWF0ZV90ZW1wbGF0ZSk6IExpa2V3aXNlLgoJKHJlZ2VuZXJhdGVfZGVjbF9mcm9tX3RlbXBsYXRlKTogTGlrZXdpc2UuCgkoaW5zdGFudGlhdGVfZGVjbCk6IExpa2V3aXNlLgoJKGdldF9tb3N0bHlfaW5zdGFudGlhdGVkX2Z1bmN0aW9uX3R5cGUpOiBMaWtld2lzZS4KCjIwMDMtMDEtMDcgIE5hdGhhbmFlbCBOZXJvZGUgPG5lcm9kZW5AZ2NjLmdudS5vcmc+CgoJKiB0cmVlLmM6IERlbGV0ZSBib2d1cyAjaWYgMCBjb2RlLgoKMjAwMy0wMS0wNyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGNsYXNzLmMgKGxheW91dF9jbGFzc190eXBlKTogRG9uJ3QgdXNlCglQQ0NfQklURklFTERfVFlQRV9NQVRURVJTIGlmIG5vdCBkZWZpbmVkLgoKMjAwMy0wMS0wNiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTE2NQoJKiBkZWNsMi5jIChidWlsZF9jbGVhbnVwKTogTWFyayB0aGUgb2JqZWN0IGFzIHVzZWQuCgoJKiBwdC5jIChyZXRyaWV2ZV9sb2NhbF9zcGVjaWFsaXphdGlvbik6IFJldmVydCAyMDAzLTAxLTA1IGNoYW5nZS4KCShoYXNoX2xvY2FsX3NwZWNpYWxpemF0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKHJlZ2lzdGVyX2xvY2FsX3NwZWNpYWxpemF0aW9uKTogUmV2ZXJ0IDIwMDMtMDEtMDUgY2hhbmdlLgoJKGluc3RhbnRpYXRlX2RlY2wpOiBVc2UgaGFzaF9sb2NhbF9zcGVjaWFsaXphdGlvbiB3aGVuIGNyZWF0aW5nCgl0aGUgbG9jYWxfc3BlY2lhbGl6YXRpb25zIHRhYmxlLgoKCSogZGVjbDIuYyAobWFya191c2VkKTogRG8gbm90IHN5bnRoZXNpemUgdGh1bmtzLgoKCSogY2xhc3MuYyAobGF5b3V0X2NsYXNzX3R5cGUpOiBDb3JyZWN0IGhhbmRsaW5nIG9mIHVubmFtZWQKCWJpdGZpZWxkcyB3aWRlciB0aGFuIHRoZWlyIHR5cGVzLgoKCVBSIGMrKy85MTg5CgkqIHBhcnNlci5jIChjcF9wYXJzZXIpOiBSZW1vdmUgZGVmYXVsdF9hcmdfdHlwZXMuICBVcGRhdGUKCWRvY3VtZW50YXRpb24gZm9yIHVucGFyc2VkX2Z1bmN0aW9uc19xdWV1ZXMuCgkoY3BfcGFyc2VyX2xhdGVfcGFyc2luZ19kZWZhdWx0X2FyZ3MpOiBUYWtlIGEgRlVOQ1RJT05fREVDTCBhcyB0aGUKCXBhcmFtZXRlci4KCShjcF9wYXJzZXJfbmV3KTogRG9uJ3Qgc2V0IHBhcnNlci0+ZGVmYXVsdF9hcmdfdHlwZXMuCgkoY3BfcGFyc2VyX2Z1bmN0aW9uX2RlZmluaXRpb24pOiBBZGp1c3QgdXNhZ2Ugb2YKCXVucGFyc2VkX2Z1bnRpb25zX3F1ZXVlcy4KCShjcF9wYXJzZXJfY2xhc3Nfc3BlY2lmaWVyKTogRG9uJ3QgbWVzcyB3aXRoCglwYXJzZXItPmRlZmF1bHRfYXJnX3R5cGVzLiAgSGFuZGxlIGRlZmF1bHQgYXJndW1lbnQgcHJvY2Vzc2luZyBpbgoJYSBzZXBhcmF0ZSBwaGFzZSBmcm9tIGZ1bmN0aW9uIGJvZHkgcHJvY2Vzc2luZy4KCShjcF9wYXJzZXJfdGVtcGxhdGVfZGVjbGFyYXRpb25fYWZ0ZXJfZXhwb3J0KTogQWRqdXN0IHVzYWdlIG9mCgl1bnBhcnNlZF9mdW5jdGlvbnNfcXVldWVzLgoJKGNwX3BhcnNlcl9sYXRlX3BhcnNpbmdfZm9yX21lbWJlcik6IERvIG5vdCBoYW5kbGUgZGVmYXVsdAoJYXJndW1lbnRzLgoKMjAwMy0wMS0wNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTEwOQoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2RlY2xhcmF0b3Jfa2luZCk6IE5ldyBlbnVtLgoJKGNwX3BhcnNlcl9kZWNsYXJhdG9yKTogQWRqdXN0LgoJKGNwX3BhcnNlcl9kaXJlY3RfZGVjbGFyYXRvcik6IEFkanVzdC4gQWxsb3cgZm9yIGVpdGhlciBuYW1lZCBvcgoJYWJzdHJhY3QgZGVjbGFyYXRvci4gUHJlZmVyIGFic3RyYWN0LCBpZiBwb3NzaWJsZS4gQWxsb3cKCXBhcmVudGhlc2l6ZWQgZnVuY3Rpb24gbmFtZS4KCShjcF9wYXJzZXJfY29uZGl0aW9uKTogQWRqdXN0IGNwX3BhcnNlcl9kZWNsYXJhdG9yIGNhbGwuCgkoY3BfcGFyc2VyX2V4cGxpY2l0X2luc3RhbnRpYXRpb24pOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfaW5pdF9kZWNsYXJhdG9yKTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX3R5cGVfaWQpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfZnVuY3Rpb25fZGVmaW5pdGlvbik6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9tZW1iZXJfZGVjbGFyYXRpb24pOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfcGFyYW1ldGVyX2RlY2xhcmF0aW9uKTogVXNlIGNwX3BhcnNlcl9kZWNsYXJhdG9yIHRvIGRvCgl0aGUgdGVudGF0aXZlIHBhcnNpbmcuCgkoY3BfcGFyc2VyX2V4Y2VwdGlvbl9kZWNsYXJhdGlvbik6IExpa2V3aXNlLgoKMjAwMy0wMS0wNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfdGVtcGxhdGVfcGFyYW1ldGVyKTogQWRqdXN0IGNhbGwgdG8KCWNwX3BhcnNlcl9wYXJhbWV0ZXJfZGVjbGFyYXRpb24uCgkoY3BfcGFyc2VyX3BhcmFtZXRlcl9kZWNsYXJhdGlvbl9saXN0KTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX3BhcmFtZXRlcl9kZWNsYXJhdGlvbik6IFJlcGxhY2UKCWdyZWF0ZXJfdGhhbl9pc19vcGVyYXRvcl9wIHdpdGggdGVtcGxhdGVfcGFybV9wIHBhcmFtZXRlci4gIERvIG5vdAoJY2FjaGUgdG9rZW5zIGZvciB0ZW1wbGF0ZSBkZWZhdWx0IGFyZ3VtZW50cy4KCgkqIHB0LmMgKHJldHJpZXZlX2xvY2FsX3NwZWNpYWxpemF0aW9uKTogVXNlIGh0YWJfZmluZCwgbm90CglodGFiX2ZpbmRfd2l0aF9oYXNoLgoJKHJlZ2lzdGVyX2xvY2FsX3NwZWNpYWxpemF0aW9uKTogVXNlIGh0YWJfZmluZF9zbG90LCBub3QKCWh0YWJfZmluZF9zbG90X3dpdGhfaGFzaC4KCShpbnN0YW50aWF0ZV9kZWNsKTogUGFzcyBhIGhhc2ggZnVuY3Rpb24gdG8gaHRhYl9jcmVhdGUuCgoyMDAzLTAxLTA0ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2JpbmFyeV9leHByZXNzaW9uLAoJY3BfcGFyc2VyX211bHRpcGxpY2F0aXZlX2V4cHJlc3Npb24sCgljcF9wYXJzZXJfYWRkaXRpdmVfZXhwcmVzc2lvbiwgY3BfcGFyc2VyX3NoaWZ0X2V4cHJlc3Npb24sCgljcF9wYXJzZXJfcmVsYXRpb25hbF9leHByZXNzaW9uLCBjcF9wYXJzZXJfZXF1YWxpdHlfZXhwcmVzc2lvbiwKCWNwX3BhcnNlcl9hbmRfZXhwcmVzc2lvbiwgY3BfcGFyc2VyX2V4Y2x1c2l2ZV9vcl9leHByZXNzaW9uLAoJY3BfcGFyc2VyX2luY2x1c2l2ZV9vcl9leHByZXNzaW9uLAoJY3BfcGFyc2VyX2xvZ2ljYWxfYW5kX2V4cHJlc3Npb24sIGNwX3BhcnNlcl9sb2dpY2FsX29yX2V4cHJlc3Npb24sCgljcF9wYXJzZXJfYmluYXJ5X2V4cHJlc3Npb24pOiBDb25zdC1pZnkuCgoyMDAzLTAxLTA0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogbWV0aG9kLmMgKHVzZV90aHVuayk6IERpc2FibGUgYWNjZXNzIGNvbnRyb2wgd2hpbGUgYnVpbGRpbmcgdGhlCglib2R5IG9mIHRoZSB0aHVuay4KCjIwMDMtMDEtMDMgIE5hdGhhbmFlbCBOZXJvZGUgIDxuZXJvZGVuQGdjYy5nbnUub3JnPgoKCSogY3Z0LmMsIGRlY2wuYywgZGVjbDIuYzogVGhpcyBpcyB0aGUgQysrIGZyb250IGVuZCwgbm90IHRoZSBDCglmcm9udCBlbmQuCgoyMDAzLTAxLTAzICBNYXR0IEF1c3Rlcm4gIDxhdXN0ZXJuQGFwcGxlLmNvbT4KCgkqIGNwLXRyZWUuaCAoc3RydWN0IGxhbmdfdHlwZV9jbGFzcyk6IGFkZCBmaWVsZCBmb3Iga2V5IG1ldGhvZAoJKGNwX2dsb2JhbF90cmVlcyk6IHJlbmFtZSBkeW5hbWljX2NsYXNzZXMgdG8ga2V5ZWRfY2xhc3NlcwoJKGtleV9tZXRob2QpOiBhZGQgZGVmaW5pdGlvbgoJKiBjbGFzcy5jIChmaW5pc2hfc3RydWN0XzEpOiBjb21wdXRlIGNsYXNzJ3Mga2V5IG1ldGhvZCwgYW5kIGFkZAoJdGhlIGNsYXNzIHRvIGtleWVkX2NsYXNzZXMgbGlzdCBpZiB0aGVyZSBpcyBubyBrZXkgbWV0aG9kLgoJKiBkZWNsLmMgKGZpbmlzaF9mdW5jdGlvbik6IGFkZCBjbGFzcyB0byBrZXllZF9jbGFzc2VzIGxpc3QgaWYgd2UKCXNlZSBhIGRlZmluaXRpb24gb2YgdGhlIGNsYXNzJ3Mga2V5IG1ldGhvZC4KCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBhZGQgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24KCW9mIGEgZHluYW1pYyBjbGFzcyB0byBrZXllZF9jbGFzc2VzIGxpc3QuCgkqIGRlY2wyLmMgKGtleV9tZXRob2QpOiByZW1vdmUKCShmaW5pc2hfZmlsZSk6IGl0ZXJhdGUgb25seSB0aHJvdWdoIGtleWVkX2NsYXNzZXMgbGlzdCB3aGVuCglkZWNpZGluZyB3aGV0aGVyIHRvIGVtaXQgdnRhYmxlcywgcmVtb3ZlIGNsYXNzIGZyb20gaXRzIGxpc3QgYWZ0ZXIKCXdlIGRvIHRoZSBlbWlzc2lvbi4KCjIwMDMtMDEtMDIgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogY2FsbC5jIChidWlsZF9jb25kaXRpb25hbF9leHByKTogU3RhYmlsaXplIGx2YWx1ZXMgcHJvcGVybHkuCgkqIGN2dC5jIChvY3BfY29udmVydCk6IERvbid0IGJ1aWxkIE5PUF9FWFBScyBvZiBjbGFzcyB0eXBlLgoJKiB0cmVlLmMgKGx2YWx1ZV9wXzEpOiBEb24ndCBhbGxvdyBzbG9wcHkgTk9QX0VYUFJzIGFzIGx2YWx1ZXMuCglEb24ndCBhbGxvdyBDQUxMX0VYUFIgb3IgVkFfQVJHX0VYUFIsIGVpdGhlci4KCgkqIGNhbGwuYyAoY29udmVydF9saWtlX3JlYWwpOiBDYWxsIGRlY2xfY29uc3RhbnRfdmFsdWUgZm9yIGFuCglJREVOVElUWV9DT05WIGV2ZW4gaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29udmVyc2lvbnMuCgoJKiBjdnQuYyAoYnVpbGRfdXBfcmVmZXJlbmNlKTogRG9uJ3QgcHVzaCB1bm5hbWVkIHRlbXBzLgoKCSogZGVjbDIuYyAoZG9fbmFtZXNwYWNlX2FsaWFzKTogTmFtZXNwYWNlIGFsaWFzZXMgYXJlIERFQ0xfRVhURVJOQUwuCgoJKiBkdW1wLmMgKGNwX2R1bXBfdHJlZSk6IERvbid0IHRyeSB0byBkdW1wIGNsYXNzLXNwZWNpZmljIGZpZWxkcwoJZm9yIGEgYmFja2VuZCBzdHJ1Y3QuCgoJKiBleGNlcHQuYyAod3JhcF9jbGVhbnVwc19yLCBidWlsZF90aHJvdyk6IE1ha2UKCU1VU1RfTk9UX1RIUk9XX0VYUFJzIHZvaWQuCgkqIGluaXQuYyAoZXhwYW5kX2RlZmF1bHRfaW5pdCk6IFVwZGF0ZSB0byBoYW5kbGUgTVVTVF9OT1RfVEhST1dfRVhQUi4KCgkqIGluaXQuYyAoYnVpbGRfdmVjX2RlbGV0ZV8xKTogUHJlLWV2YWx1YXRlIHRoZSBiYXNlIGFkZHJlc3MuCgoJKiBpbml0LmMgKGdldF90ZW1wX3JlZ3Zhcik6IFNpbXBsaWZ5IGxvZ2ljLgoKCSogdHJlZS5jIChjcF9jb3B5X3Jlc19kZWNsX2Zvcl9pbmxpbmluZyk6IE9ubHkgZG8gZGVidWcgdHdlYWtzIGlmCglvdXIgcmVwbGFjZW1lbnQgaXMgYSBkZWNsLgoKCSogZGVjbC5jIChjcF9tYWtlX2ZuYW1lX2RlY2wpOiBQdXNoIHRoZSBkZWNscyBpbnNpZGUgdGhlCglvdXRlcm1vc3Qgc2NvcGUuCgoyMDAzLTAxLTAzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy80NSwgYysrLzM3ODQKCSogdHJlZS5jIChjcF90cmVlX2VxdWFsLCBURU1QTEFURV9QQVJNX0lOREVYKTogVGhlIHR5cGVzIG11c3QgYmUKCXRoZSBzYW1lIHRvby4KCjIwMDMtMDEtMDMgIEdyYWhhbSBTdG90dCAgPGdyYWhhbS5zdG90dEBidGludGVybmV0LmNvbT4KCgkqIHBhcnNlci5jIChzdHJ1Y3QgY3BfcGFyc2VyKTogQWRkIGFjY2Vzc19jaGVja3NfbGlzdHMgZmllbGQKCShjcF9wYXJzZXJfc2ltcGxlX2RlY2xhcmF0aW9uKTogVXNlLgoJKGNwX3BhcnNlcl9pbml0X2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCjIwMDMtMDEtMDIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2RlY2xhcmF0aW9uKTogQWNjZXB0IHRoZSBfX2V4dGVuc2lvbl9fCglrZXl3b3JkIGJlZm9yZSB0aGUgZGVjbGFyYXRpb24uCgoJUFIgYysrLzI4NDMKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9wYXJhbWV0ZXJfZGVjbGFyYXRpb24pOiBBbGxvdyBhdHRyaWJ1dGVzIHRvCglhcHBlYXIgYWZ0ZXIgdGhlIGRlY2xhcmF0b3IuCgoJKiBjYWxsLmMgKGJ1aWxkX25ld19tZXRob2RfY2FsbCk6IEZpeCB0eXBvIGluIG1lc3NhZ2UgZm9ybWF0CglzdHJpbmcuCgoyMDAzLTAxLTAyICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogcGFyc2VyLmMgKGNwX2xleGVyX25leHRfdG9rZW5faXMpOiBEZWNsYXJlIGl0IGlubGluZS4KCShjcF9sZXhlcl9zZXRfc291cmNlX3Bvc2l0aW9uX2Zyb21fdG9rZW4pOiBMaWtld2lzZS4KCShjcF9sZXhlcl9kZWJ1Z2dpbmdfcCk6IExpa2V3aXNlLgoJKGNwX3BhcnNlcl9wYXJzaW5nX3RlbnRhdGl2ZWx5KTogTGlrZXdpc2UuCgkoY3BfcGFyc2VyX25lc3RlZF9uYW1lX3NwZWNpZmllcl9vcHQpOiBSZWR1Y2UgdGhlIG51bWJlciBvZiBjYWxscwoJdG8gdGhlIGNwX2xleGVyX3BlZWtfdG9rZW4uCgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3NpemVvZl9vcGVyYW5kKTogRG8gbm90IGV2YWx1YXRlIHRoZQoJZXhwcmVzc2lvbi4KCjIwMDMtMDEtMDIgIFN0ZXZlbiBCb3NzY2hlciA8cy5ib3NzY2hlckBzdHVkZW50LnR1ZGVsZnQubmw+CgoJKiBjcC9leGNlcHQuYywgY3AvZXhwci5jLCBjcC9mcmllbmQuYywgY3AvZysrc3BlYy5jLAoJY3AvbGFuZy1vcHRpb25zLmgsIGNwL2xhbmctc3BlY3MuaCwgY3AvbGV4LmgsIGNwL3B0cmVlLmMsCgljcC9yZXBvLmM6IEZpeCBjb3B5cmlnaHQgeWVhcnMuCgoyMDAzLTAxLTAxICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuY28udWs+CgoJKiBsZXguYzogUmVtb3ZlIHN1cGVyZmx1b3VzIGluY2x1ZGUgb2YgY3BwbGliLmguCgkoQ09OU1RSQUlOVCk6IERlZmluZSB3aXRob3V0IGNvbmRpdGlvbnMuCgkoaW5pdF9jcF9wcmFnbWEpOiBVc2UgY19yZWdpc3Rlcl9wcmFnbWEuCgoyMDAyLTEyLTMxICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuY28udWs+CgoJKiAuY3ZzaWdub3JlOiBSZW1vdmUuCgoyMDAyLTEyLTMxICBTdGV2ZW4gQm9zc2NoZXIgIDxzLmJvc3NjaGVyQHN0dWRlbnQudHVkZWxmdC5ubD4KCgkqIGNhbGwuYywgY2xhc3MuYywgY3AtbGFuZy5jLCBjcC10cmVlLmgsIGN2dC5jLCBkdW1wLmMsIGVycm9yLmMsCgkgIGV4Y2VwdC5jLCBleHByLmMgZnJpZW5kLmMsIGcrK3NwZWMuYywgaW5pdC5jLCBsYW5nLW9wdGlvbnMuaCwKCSAgbGFuZy1zcGVjcy5oLCBsZXguYywgbWFuZ2xlLmMsIG1ldGhvZC5jLCBvcHRpbWl6ZS5jLCBwYXJzZXIuYywKCSAgcHQuYywgcHRyZWUuYywgcmVwby5jLCBydHRpLmMsIHNlYXJjaC5jLCBzZW1hbnRpY3MuYywgdHJlZS5jLAoJICB0eXBlY2suYywgdHlwZWNrMi5jOiBSZXBsYWNlICJHTlUgQ0MiIHdpdGggIkdDQyIgaW4gdGhlCgkgIGNvcHlyaWdodCBoZWFkZXIuCgkqIGxleC5oOiBwYXJzZS55IGlzIGRlYWQsIHNvIGRvbid0IG1lbnRpb24gaXQuICBBbHNvIHJlcGxhY2UgdGhlCgkgIGNvcHlyaWdodCBoZWFkZXIgd2l0aCB0aGUgZGVmYXVsdCBHTlUgY29weXJpZ2h0IGhlYWRlci4KCjIwMDItMTItMzEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKExPT0tVUF9URU1QTEFURVNfRVhQRUNURUQpOiBSZW1vdmUuCgkobG9va3VwX25hbWVfbmFtZXNwYWNlX29ubHkpOiBMaWtld2lzZS4KCShiZWdpbl9vbmx5X25hbWVzcGFjZV9uYW1lcyk6IExpa2V3aXNlLgoJKGVuZF9vbmx5X25hbWVzcGFjZV9uYW1lcyk6IExpa2V3aXNlLgoJKiBkZWNsLmMgKG9ubHlfbmFtZXNwYWNlX25hbWVzKTogUmVtb3ZlLgoJKHF1YWxpZnlfbG9va3VwKTogRG8gbm90IGNoZWNrIExPT0tVUF9URU1QTEFURVNfRVhQRUNURUQuCgkobG9va3VwX25hbWVfcmVhbCk6IERvIG5vdCBjaGVjayBvbmx5X25hbWVzcGFjZV9uYW1lcy4KCShsb29rdXBfbmFtZV9uYW1lc3BhY2Vfb25seSk6IFJlbW92ZS4KCShiZWdpbl9vbmx5X25hbWVzcGFjZV9uYW1lcyk6IExpa2V3aXNlLgoJKGVuZF9vbmx5X25hbWVzcGFjZV9uYW1lcyk6IExpa2V3aXNlLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX25lc3RlZF9uYW1lX3NwZWNpZmllcl9vcHQpOiBIYW5kbGUgZXJyb25lb3VzCgluZXN0ZWQtbmFtZS1zcGVjaWZpZXJzIG1vcmUgZ3JhY2VmdWxseS4KCShjcF9wYXJzZXJfY2xhc3Nfb3JfbmFtZXNwYWNlX25hbWUpOiBBdm9pZCBsb29raW5nIHVwIG5hbWVzcGFjZQoJbmFtZXMgd2hlbiB0aGV5IGNhbm5vdCBwb3NzaWJseSBhcHBlYXIuCgkoY3BfcGFyc2VyX3RlbXBsYXRlX25hbWUpOiBBZGp1c3QgY2FsbCB0byBjcF9wYXJzZXJfbG9va3VwX25hbWUuCgkoY3BfcGFyc2VyX2VsYWJvcmF0ZWRfdHlwZV9zcGVjaWZpZXIpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfbmFtZXNwYWNlX25hbWUpOiBPbmx5IGxvb2sgZm9yIG5hbWVzcGFjZSBuYW1lcy4KCShjcF9wYXJzZXJfbG9va3VwX25hbWUpOiBBZGQgaXNfbmFtZXNwYWNlIHBhcmFtZXRlci4KCShjcF9wYXJzZXJfbG9va3VwX25hbWVfc2ltcGxlKTogQWRqdXN0IGNhbGwgdG8KCWNwX3BhcnNlcl9sb29rdXBfbmFtZS4KCgkqIHBhcnNlci5jIChjcF9wYXJzZXJfZGVwZW5kZW50X3R5cGVfcCk6IEZpeCB0aGlua28uCgoyMDAyLTEyLTMxICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuY28udWs+CgoJKiAuY3ZzaWdub3JlOiBVcGRhdGUuCgoyMDAyLTEyLTMxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAobW9kaWZ5X3Z0YWJsZV9lbnRyeSk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkoZ2V0X3ZjYWxsX2luZGV4KTogQWx3YXlzIGV4cGVjdCBhIG5vbi10aHVuay4KCSh1cGRhdGVfdnRhYmxlX2VudHJ5X2Zvcl9mbik6IENvbWJpbmUgY292YXJpYW50IGFkanVzdG1lbnRzLCB3aGVuCglvdmVycmlkaW5nIGEgdGh1bmsuIFBhc3MgZ2V0X3ZjYWxsX2luZGV4IGEgbm9uLXRodW5rLgoKCSogZGVjbDIuYyAoZmluaXNoX2ZpbGUpOiBNYXJrIHVuZGVmaW5lZCBpbmxpbmVzIGFzIGV4dGVybi4KCjIwMDItMTItMzEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmRlZiAoUkVUVVJOX0lOSVQpOiBSZW1vdmUuCgkqIGNwLXRyZWUuaCAoREVDTF9JTl9NRU1PUllfUCk6IFJlbW92ZS4KCShzY29wZV9raW5kKTogQWRkIHNrX2Jsb2NrLCBza190cnksIHNrX2NhdGNoLCBza19mb3IuCgkobm90ZV9sZXZlbF9mb3JfZm9yKTogUmVtb3ZlLgoJKG5vdGVfbGV2ZWxfZm9yX3RyeSk6IExpa2V3aXNlLgoJKG5vdGVfbGV2ZWxfZm9yX2NhdGNoKTogTGlrZXdpc2UuCgkoZmluaXNoX25hbWVkX3JldHVybl92YWx1ZSk6IExpa2V3aXNlLgoJKGRvX3B1c2hsZXZlbCk6IENoYW5nZSBwcm90b3R5cGUuCgkocGVuZGluZ19sYW5nX2NoYW5nZSk6IFJlbW92ZS4KCSogZGVjbC5jIChiZWdpbl9zY29wZSk6IEhhbmRsZSBza19ibG9jaywgc2tfdHJ5LCBza19jYXRjaCwKCXNrX2Zvci4KCShub3RlX2xldmVsX2Zvcl9mb3IpOiBSZW1vdmUuCgkobm90ZV9sZXZlbF9mb3JfdHJ5KTogTGlrZXdpc2UuCgkobm90ZV9sZXZlbF9mb3JfY2F0Y2gpOiBMaWtld2lzZS4KCShtYXliZV9pbmplY3RfZm9yX3Njb3BlX3Zhcik6IFJlbW92ZSB1c2Ugb2YgREVDTF9JTl9NRU1PUllfUC4KCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9jb250ZXh0X2ZyZWVfbGlzdCk6IE1ha2UgaXQgImRlbGV0YWJsZSIuCgkoY3BfcGFyc2VyX3RlbXBsYXRlX2FyZ3VtZW50KTogUmVtb3ZlIG1pc2xlYWRpbmcgY29tbWVudC4KCSogcHQuYyAodHN1YnN0X2V4cHIpOiBSZW1vdmUgUkVUVVJOX0lOSVQgY29kZS4KCSogc2VtYW50aWNzLmMgKGdlbnJ0bF9uYW1lZF9yZXR1cm5fdmFsdWUpOiBSZW1vdmUuCgkoZG9fcHVzaGxldmVsKTogVGFrZSBhIHNjb3BlIGtpbmQgYXMgYW4gYXJndW1lbnQuCgkoYmVnaW5faWZfc3RtdCk6IEFkanVzdC4KCShiZWdpbl93aGlsZV9zdG10KTogTGlrZXdpc2UuCgkoYmVnaW5fZm9yX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfZm9yX2luaXRfc3RtdCk6IExpa2V3aXNlLgoJKGJlZ2luX3N3aXRjaF9zdG10KTogTGlrZXdpc2UuCgkoYmVnaW5faGFuZGxlcik6IExpa2V3aXNlLgoJKGJlZ2luX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfbmFtZWRfcmV0dXJuX3ZhbHVlKTogUmVtb3ZlLgoJKGNwX2V4cGFuZF9zdG10KTogUmVtb3ZlIFJFVFVSTl9JTklUIGNhc2UuCgkqIHRyZWUuYyAoY3Bfc3RhdGVtZW50X2NvZGVfcCk6IFJlbW92ZSBSRVRVUk5fSU5JVCBjYXNlLgoKMjAwMi0xMi0zMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTExMgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2RpcmVjdF9kZWNsYXJhdG9yKTogSGFuZGxlIGVycm9uZW91cwoJcGFyZW50aGVzaXplZCBkZWNsYXJhdG9ycyBjb3JyZWN0bHkuCgoyMDAyLTEyLTMxICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldD4KCgkqIGNwLXRyZWUuaCAocGVuZGluZ19sYW5nX2NoYW5nZSk6IERlY2xhcmUuCgoyMDAyLTEyLTMwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9jb250ZXh0X2ZyZWVfbGlzdCk6IE5ldyB2YXJpYWJsZS4KCShjcF9wYXJzZXJfY29udGV4dF9uZXcpOiBVc2UgaXQuCgkoY3BfcGFyc2VyX2Vycm9yKTogQ2hlY2sgcmV0dXJuIGNvZGUgZnJvbQoJY3BfcGFyc2VyX3NpbXVsYXRlX2Vycm9yLgoJKGNwX3BhcnNlcl9zaW11bGF0ZV9lcnJvcik6IFJldHVybiBhIHZhbHVlLgoJKGNwX3BhcnNlcl9pZF9leHByZXNzaW9uKTogT3B0aW1pemUgY29tbW9uIGNhc2UuCgkoY3BfcGFyc2VyX2NsYXNzX25hbWUpOiBMaWtld2lzZS4KCShjcF9wYXJzZXJfY2xhc3Nfc3BlY2lmaWVyKTogQWRqdXN0IGNhbGwgdG8KCWNwX3BhcnNlcl9sYXRlX3BhcnNpbmdfZGVmYXVsdF9hcmdzLgoJKGNwX3BhcnNlcl9sb29rdXBfbmFtZSk6IE9wdGltaXplIGNvbW1vbiBjYXNlLgoJKGNwX3BhcnNlcl9sYXRlX3BhcnNpbmdfZm9yX21lbWJlcik6IEFkanVzdCBjYWxsIHRvCgljcF9wYXJzZXJfbGF0ZV9wYXJzaW5nX2RlZmF1bHRfYXJncy4KCShjcF9wYXJzZXJfbGF0ZV9wYXJzaW5nX2RlZmF1bHRfYXJncyk6IEFkZCBzY29wZSBwYXJhbWV0ZXIuCgkoY3BfcGFyc2VyX3JlcXVpcmUpOiBBdm9pZCBjcmVhdGluZyB0aGUgZXJyb3IgbWVzc2FnZSB1bmxlc3MgaXQncwoJbmVlZGVkLgoJKGNwX3BhcnNlcl9wYXJzZV9kZWZpbml0ZWx5KTogUGxhY2UgZnJlZSdkIGNvbnRleHRzIG9uIHRoZSBmcmVlCglsaXN0LgoKCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9kZWNsYXJhdGlvbl9zZXFfb3B0KTogSGFuZGxlIHBlbmRpbmdfbGFuZ19jaGFuZ2UuCgoyMDAyLTEyLTMwICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3BhcmFtZXRlcl9kZWNsYXJhdGlvbl9jbGF1c2UpOiBUcmVhdCBzeXN0ZW0KCWhlYWRlciBhcyBleHRlcm4gIkMiIGlmIE5PX0lNUExJQ0lUX0VYVEVSTl9DIHVuZGVmaW5lZC4KCjIwMDItMTItMzAgIE5hdGhhbmFlbCBOZXJvZGUgIDxuZXJvZGVuQGdjYy5nbnUub3JnPgoKCSogY29uZmlnLWxhbmcuaW4sIE1ha2UtbGFuZy5pbiwgb3BlcmF0b3JzLmRlZiwgY3AtdHJlZS5kZWY6CglHQ0MsIG5vdCBHTlUgQ0MuCgoyMDAyLTEyLTMwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogcGFyc2UueTogUmVtb3ZlLgoJKiBzcGV3LmM6IExpa2V3aXNlLgoJKiBNYWtlLWxhbmcuaW4gKGd0LWNwLXNwZXcuaCk6IFJlbW92ZS4KCSogY3AtdHJlZS5oIChkb19wZW5kaW5nX2xhbmdfY2hhbmdlKTogUmVtb3ZlLgoJKGRvX2lkZW50aWZpZXIpOiBDaGFuZ2UgcHJvdG90eXBlLgoJKGZpbmlzaF9pZF9leHByKTogUmVtb3ZlLgoJKiBkZWNsLmMgKGxvb2t1cF9uYW1lX3JlYWwpOiBSZW1vdmUgeXlsZXggdmFyaWFibGUuCgkqIGRlY2wyLmMgKGJ1aWxkX2V4cHJfZnJvbV90cmVlKTogQWRqdXN0IGNhbGwgdG8gZG9faWRlbnRpZmllci4KCSogbGV4LmMgKGluaXRfY3BwX3BhcnNlKTogUmVtb3ZlLgoJKHJlZHVjZV9jbXApOiBMaWtld2lzZS4KCSh0b2tlbl9jbXApOiBMaWtld2lzZS4KCSh5eWNoYXIpOiBMaWtld2lzZS4KCShsYXN0aWRkZWNsKTogTGlrZXdpc2UuCgkodG9rZW5fY291bnQpOiBMaWtld2lzZS4KCShyZWR1Y2VfY291bnQpOiBMaWtld2lzZS4KCSh5eWhvb2spOiBMaWtld2lzZS4KCShwcmludF9wYXJzZV9zdGF0aXN0aWNzKTogTGlrZXdpc2UuCgkoZG9fcGVuZGluZ19sYW5nX2NoYW5nZSk6IExpa2V3aXNlLgoJKGRvX2lkZW50aWZpZXIpOiBSZW1vdmUgcGFyc2luZyBwYXJhbWV0ZXIuCgkqIGxleC5oIChsYXN0aWRkZWNsKTogUmVtb3ZlLgoJKGxvb2tpbmdfZm9yX3R5cGVuYW1lKTogUmVtb3ZlLgoJKGxvb2tpbmdfZm9yX3RlbXBsYXRlKTogTGlrZXdpc2UuCgkocGVuZGluZ19sYW5nX2NoYW5nZSk6IExpa2V3aXNlLgoJKHl5bGV4KTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfaWRfZXhwcik6IFJlbW92ZS4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBEaWFnbm9zdCAiZXh0ZXJuIHRocmVhZCIgYW5kICJzdGF0aWMKCXRocmVhZCIgY29ycmVjdGx5LgoKMjAwMi0xMi0zMCAgTmF0aGFuYWVsIE5lcm9kZSAgPG5lcm9kZW5AZ2NjLmdudS5vcmc+CgoJKiBkZWNsLmMsIGRlY2wyLmMsIGRlY2wuaDogIEdDQywgbm90IEdOVSBDQy4gIFRoaXMgaXMgdGhlIEMrKyBmcm9udAoJZW5kLCBub3QgdGhlIEMgZnJvbnQgZW5kLgoKMjAwMi0xMi0zMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoVEhVTktfVEFSR0VUKTogTmV3IG1hY3JvLgoJKFRIVU5LX1ZJUlRVQUxfT0ZGU0VUKTogRm9yIHJlc3VsdCB0aHVua3MgaXQgaXMgYWx3YXlzIGEgYmluZm8uCgkoZmluaXNoX3RodW5rKTogUmVtb3ZlIG9mZnNldCBwYXJtcy4KCSogY2xhc3MuYyAoZmluZF9maW5hbF9vdmVycmlkZXIpOiBMb29rIHRocm91Z2ggdGh1bmtzLgoJKGdldF92Y2FsbF9pbmRleCk6IFVzZSBUSFVOS19UQVJHRVQuCgkodXBkYXRlX3Z0YWJsZV9lbnRyeV9mb3JfZm4pOiBMb29rIHRocm91Z2ggdGh1bmtzLiBTZXQgY292YXJpYW50CglmaXhlZCBvZmZzZXQgaGVyZS4gQWRqdXN0IGZpbmlzaF90aHVuayBjYWxsLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBBZGp1c3QgZmluaXNoX3RodW5rIGNhbGxzLgoJKiBtYW5nbGUuYyAobWFuZ2xlX2NhbGxfb2Zmc2V0KTogUmVtb3ZlIHN1cGVyZmx1b3VzIGlmLgoJKG1hbmdsZV90aHVuayk6IEFkanVzdC4KCSogbWV0aG9kLmMgKG1ha2VfdGh1bmspOiBBZGp1c3QuCgkoZmluaXNoX3RodW5rKTogQWRqdXN0LgoJKHRodW5rX2FkanVzdCk6IFJlbW92ZSBhc3NlcnQuCgkodXNlX3RodW5rKTogVXNlIFRIVU5LX1RBUkdFVAoJKiBkdW1wMS5jIChjcF9kdW1wX3RyZWUpOiBBZGp1c3QgdGh1bmsgZHVtcGluZy4KCglQUiBjKysvOTA1NAoJKiBjbGFzcy5jIChsYXlvdXRfY2xhc3NfdHlwZSk6IFNldCBUWVBFX0NPTlRFWFQgb2YgdHlwZSBmb3IgYmFzZS4KCSogZHVtcC5jIChjcF9kdW1wX3RyZWUsIFJFQ09SRF9UWVBFKTogRGVhbCB3aXRoIHR5cGUgZm9yIGJhc2UgdHlwZXMuCgoyMDAyLTEyLTI4ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldD4KCglSZW1vdmUgdHJhZGl0aW9uYWwgQyBjb25zdHJ1Y3RzIDQvbi4KCSogZGVjbDIuYyAoZ3Jva19tZXRob2RfcXVhbHMsIHdhcm5faWZfdW5rbm93bl9pbnRlcmZhY2UsCglncm9rX3hfY29tcG9uZW50cywgY3BfYnVpbGRfcGFybV9kZWNsLCBidWlsZF9hcnRpZmljaWFsX3Bhcm0sCgltYXliZV9yZXRyb2ZpdF9pbl9jaHJnLCBncm9rY2xhc3NmbiwgZ3Jva19hcnJheV9kZWNsLAoJZGVsZXRlX3Nhbml0eSwgY2hlY2tfbWVtYmVyX3RlbXBsYXRlLCBjaGVja19qYXZhX21ldGhvZCwKCWNoZWNrX2NsYXNzZm4sIGZpbmlzaF9zdGF0aWNfZGF0YV9tZW1iZXJfZGVjbCwgZ3Jva2ZpZWxkLAoJZ3Jva2JpdGZpZWxkLCBncm9rb3B0eXBlbmFtZSwgZ3Jva19mdW5jdGlvbl9pbml0LAoJY3BsdXNfZGVjbF9hdHRyaWJ1dGVzLCBjb25zdHJ1Y3Rvcl9uYW1lLCBkZWZlcl9mbiwKCWJ1aWxkX2Fub25fdW5pb25fdmFycywgZmluaXNoX2Fub25fdW5pb24sIGNvZXJjZV9uZXdfdHlwZSwKCWNvZXJjZV9kZWxldGVfdHlwZSwgY29tZGF0X2xpbmthZ2UsIG1heWJlX21ha2Vfb25lX29ubHksCglrZXlfbWV0aG9kLCBpbXBvcnRfZXhwb3J0X3Z0YWJsZSwgaW1wb3J0X2V4cG9ydF9jbGFzcywKCW91dHB1dF92dGFibGVfaW5oZXJpdCwgaW1wb3J0X2V4cG9ydF9kZWNsLCBpbXBvcnRfZXhwb3J0X3RpbmZvLAoJYnVpbGRfY2xlYW51cCwgZ2V0X2d1YXJkLCBnZXRfZ3VhcmRfYml0cywgZ2V0X2d1YXJkX2NvbmQsCglzZXRfZ3VhcmQsIHN0YXJ0X29iamVjdHMsIGZpbmlzaF9vYmplY3RzLAoJc3RhcnRfc3RhdGljX3N0b3JhZ2VfZHVyYXRpb25fZnVuY3Rpb24sCglmaW5pc2hfc3RhdGljX3N0b3JhZ2VfZHVyYXRpb25fZnVuY3Rpb24sIGdldF9wcmlvcml0eV9pbmZvLAoJc3RhcnRfc3RhdGljX2luaXRpYWxpemF0aW9uX29yX2Rlc3RydWN0aW9uLAoJZmluaXNoX3N0YXRpY19pbml0aWFsaXphdGlvbl9vcl9kZXN0cnVjdGlvbiwKCWRvX3N0YXRpY19pbml0aWFsaXphdGlvbiwgZG9fc3RhdGljX2Rlc3RydWN0aW9uLAoJcHJ1bmVfdmFyc19uZWVkaW5nX25vX2luaXRpYWxpemF0aW9uLCB3cml0ZV9vdXRfdmFycywKCXJlcGFyc2VfZGVjbF9hc19leHByLCBmaW5pc2hfZGVjbF9wYXJzaW5nLCBuYW1lc3BhY2VfYW5jZXN0b3IsCglhZGRfdXNpbmdfbmFtZXNwYWNlLCBtZXJnZV9mdW5jdGlvbnMsIGFtYmlndW91c19kZWNsLAoJbG9va3VwX3VzaW5nX25hbWVzcGFjZSwgbG9va3VwX3VzaW5nX25hbWVzcGFjZSwKCXF1YWxpZmllZF9sb29rdXBfdXNpbmdfbmFtZXNwYWNlLCBzZXRfZGVjbF9uYW1lc3BhY2UsCglkZWNsX25hbWVzcGFjZSwgY3VycmVudF9kZWNsX25hbWVzcGFjZSwgcHVzaF9kZWNsX25hbWVzcGFjZSwKCXBvcF9kZWNsX25hbWVzcGFjZSwgcHVzaF9zY29wZSwgcG9wX3Njb3BlLCBhZGRfZnVuY3Rpb24sCglhcmdfYXNzb2NfbmFtZXNwYWNlLCBhcmdfYXNzb2NfdGVtcGxhdGVfYXJnLCBhcmdfYXNzb2MsCglsb29rdXBfYXJnX2RlcGVuZGVudCwgZG9fbmFtZXNwYWNlX2FsaWFzLAoJdmFsaWRhdGVfbm9ubWVtYmVyX3VzaW5nX2RlY2wsIGRvX25vbm1lbWJlcl91c2luZ19kZWNsLAoJZG9fdG9wbGV2ZWxfdXNpbmdfZGVjbCwgZG9fbG9jYWxfdXNpbmdfZGVjbCwKCWRvX2NsYXNzX3VzaW5nX2RlY2wsIGRvX3VzaW5nX2RpcmVjdGl2ZSwgY2hlY2tfZGVmYXVsdF9hcmdzLAoJbWFya191c2VkLCBoYW5kbGVfY2xhc3NfaGVhZCk6IFVzZSBDOTAgcHJvdG90eXBpbmdzLiAgVXNlIGJvb2xlYW5zLgoJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX2NsYXNzX2hlYWQpOiBVc2UgYm9vbGVhbnNzLgoJKiBkZWNsLmMgKHdhbGtfZ2xvYmFscywgd2Fsa192dGFibGVzKTogTGlrZXdpc2UuCgkqIGNwLXRyZWUuaCAod2Fsa19nbG9iYWxzX3ByZWQsIHdhbGtfZ2xvYmFsc19mbiwgd2Fsa192dGFibGVzLAoJd2Fsa19nbG9iYWxzKTogQ2hhbmdlIHJldHVybiB0eXBlIGZyb20gJ2ludCcgdG8gJ2Jvb2wnLgoJKiBydHRpLmMgKGluaXRfcnR0aV9wcm9jZXNzaW5nLCBidWlsZF9oZWFkb2YsIHRocm93X2JhZF9jYXN0Cgl0aHJvd19iYWRfdHlwZWlkLCBnZXRfdGluZm9fZGVjbF9keW5hbWljLCB0eXBlaWRfb2tfcCwKCWJ1aWxkX3R5cGVpZCwgdGluZm9fbmFtZSwgZ2V0X3RpbmZvX2RlY2wsIGdldF90aW5mb19wdHIsCglnZXRfdHlwZWlkLCBpZm5vbm51bGwsIGJ1aWxkX2R5bmFtaWNfY2FzdF8xLCBidWlsZF9keW5hbWljX2Nhc3QsCglxdWFsaWZpZXJfZmxhZ3MsIHRpbmZvX2Jhc2VfaW5pdCwgZ2VuZXJpY19pbml0aWFsaXplciwKCXB0cl9pbml0aWFsaXplciwgZGZzX2NsYXNzX2hpbnRfbWFyaywgcHRtX2luaXRpYWxpemVyLAoJZGZzX2NsYXNzX2hpbnRfdW5tYXJrLCBjbGFzc19oaW50X2ZsYWdzLCBjbGFzc19pbml0aWFsaXplciwKCXR5cGVpbmZvX2luX2xpYl9wLCBnZXRfcHNldWRvX3RpX2luaXQsIGNyZWF0ZV9wc2V1ZG9fdHlwZV9pbmZvLAoJZ2V0X3BzZXVkb190aV9kZXNjLCBjcmVhdGVfdGluZm9fdHlwZXMsIGVtaXRfc3VwcG9ydF90aW5mb3MsCgl1bmVtaXR0ZWRfdGluZm9fZGVjbF9wLCBlbWl0X3RpbmZvX2RlY2wpOiBMaWtld2lzZS4KCSogcmVwby5jIChyZXBvX2NvbXBpbGVfZmxhZ3MsIHJlcG9fdGVtcGxhdGVfZGVjbGFyZWQsCglyZXBvX3RlbXBsYXRlX2RlZmluZWQsIHJlcG9fY2xhc3NfZGVmaW5lZCwgcmVwb19nZXRfaWQsCglyZXBvX3RlbXBsYXRlX3VzZWQsIHJlcG9fdnRhYmxlX3VzZWQsIHJlcG9faW5saW5lX3VzZWQsCglyZXBvX3RpbmZvX3VzZWQsIHJlcG9fdGVtcGxhdGVfaW5zdGFudGlhdGVkLCBleHRyYWN0X3N0cmluZywKCW9wZW5fcmVwb19maWxlLCBhZmdldHMsIGluaXRfcmVwbywgcmVvcGVuX3JlcG9fZmlsZV9mb3Jfd3JpdGUsCglmaW5pc2hfcmVwbyk6IExpa2V3aXNlLgoJKiBwdHJlZS5jIChjeHhfcHJpbnRfZGVjbCwgY3h4X3ByaW50X3R5cGUsIGN4eF9wcmludF9pZGVudGlmaWVyLAoJY3h4X3ByaW50X3hub2RlKTogTGlrZXdpc2UuLgoJKiBjcC1sYW5nLmMgKG9rX3RvX2dlbmVyYXRlX2FsaWFzX3NldF9mb3JfdHlwZSwgY3h4X2dldF9hbGlhc19zZXQsCgljeHhfd2Fybl91bnVzZWRfZ2xvYmFsX2RlY2wsIGNwX2V4cHJfc2l6ZSk6IExpa2V3aXNlLgoJKiBjeHhmaWx0LmMgKGRlbWFuZ2xlX2l0LCBwcmludF9kZW1hbmdsZXJfbGlzdCwgdXNhZ2UsCglzdGFuZGFyZF9zeW1ib2xfY2hhcmFjdGVycywgaHBfc3ltYm9sX2NoYXJhY3RlcnMsIG1haW4sIGZhdGFsKToKCUxpa2V3aXNlLgoJKHN0cmlwX3VuZGVyc2NvcmUpOiAgQ2hhbmdlIHR5cGUgZnJvbSAnaW50JyB0byAnYm9vbCcuCgkobWFpbik6IFVzZSBib29sZWFuIGNvbnN0YW50cy4KCjIwMDItMTItMjggIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCVJlbW92ZSB0cmFkaXRpb25hbCBDIGNvbnN0cnVjdHMgMy9uLgoJKiBjdnQuYyAoY3BfY29udmVydF90b19wb2ludGVyLCBjb252ZXJ0X3RvX3BvaW50ZXJfZm9yY2UsCglidWlsZF91cF9yZWZlcmVuY2UsIHdhcm5fcmVmX2JpbmRpbmcsIGNvbnZlcnRfdG9fcmVmZXJlbmNlLAoJY29udmVydF9mcm9tX3JlZmVyZW5jZSwgY29udmVydF9sdmFsdWUsIGNwX2NvbnZlcnQsIG9jcF9jb252ZXJ0LAoJY29udmVydF90b192b2lkLCBjb252ZXJ0LCBjb252ZXJ0X2ZvcmNlLCBidWlsZF90eXBlX2NvbnZlcnNpb24sCglidWlsZF9leHByX3R5cGVfY29udmVyc2lvbiwgdHlwZV9wcm9tb3Rlc190bywKCXBlcmZvcm1fcXVhbGlmaWNhdGlvbl9jb252ZXJzaW9ucyk6IFVzZSBDOTAgcHJvdG90eXBpbmcgc3R5bGUuCgkqIGRlY2wyLmMgKGdyb2tfYXJyYXlfZGVjbCk6IFVzZSBib29sZWFuIGNvbnN0YW50LgoJKGRlbGV0ZV9zYW5pdHkpOiBMaWtld2lzZS4KCSogdHlwZWNrLmMgKGJ1aWxkX3VuYXJ5X29wKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfc3dpdGNoX2NvbmQpOiBMaWtld2lzZS4KCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9kaXJlY3RfbmV3X2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCSogaW5pdC5jIChidWlsZF9uZXcpOiBMaWtld2lzZS4KCjIwMDItMTItMjcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKHBvLWdlbmVyYXRlZCk6IFJlbW92ZSBwYXJzZS5jLgoJKENYWF9PQkpTKTogUmVtb3ZlIHBhcnNlLm8gYW5kIHNwZXcuby4gIEFkZCBwYXJzZXIuby4KCSgkKHNyY2RpcikvY3AvcGFyc2UuaCk6IFJlbW92ZSB0YXJnZXQuCgkoJChzcmNkaXIpL2NwL3BhcnNlLmMpOiBMaWtld2lzZS4KCShndC1jcC1wYXJzZS5oKTogTGlrZXdpc2UuCgkoZ3QtY3AtcGFyc2VyLmgpOiBOZXcgdGFyZ2V0LgoJKGMrKy5kaXN0Y2xlYW4pOiBEbyBub3QgcmVtb3ZlIHBhcnNlLm91dHB1dC4KCShjKysubWFpbnRhaW5lci1jbGVhbik6IERvIG5vdCByZW1vdmUgcGFyc2UuYyBvciBwYXJzZS5oLgoJKGNwL3NwZXcubyk6IFJlbW92ZSB0YXJnZXQuCgkoY3AvbGV4Lm8pOiBBZGp1c3QgZGVwZW5kZW5jaWVzLgoJKGNwL3B0Lm8pOiBMaWtld2lzZS4KCShjcC9wYXJzZS5vKTogTGlrZXdpc2UuCgkoY3AvVEFHUyk6IERvIG5vdCBtZW50aW9uIHBhcnNlLmMuCgkoY3AvcGFyc2VyLm8pOiBOZXcgdGFyZ2V0LgoJKiBORVdTOiBNZW50aW9uIHRoZSBuZXcgcGFyc2VyLgoJKiBjYWxsLmMgKGJ1aWxkX3Njb3BlZF9tZXRob2RfY2FsbCk6IFNpbXBsaWZ5LgoJKGJ1aWxkX21ldGhvZF9jYWxsKTogTGlrZXdpc2UuCgkoYnVpbGRfbmV3X2Z1bmN0aW9uX2NhbGwpOiBBZGp1c3QgY2FsbHMgdG8gYWRkX2Z1bmN0aW9uX2NhbmRpZGF0ZQoJYW5kIGFkZF90ZW1wbGF0ZV9jYW5kaWRhdGUuCgkoYnVpbGRfbmV3X29wKTogSW1wcm92ZSBoYW5kbGluZyBvZiBlcnJvcm9uZW91cyBvcGVyYW5kcy4KCShjb252ZXJ0X2RlZmF1bHRfYXJnKTogUmVtb3ZlIGNpcmN1bGFyIGFyZ3VtZW50IHByb2Nlc3NpbmcuCgkobmFtZV9hc19jX3N0cmluZyk6IE5ldyBmdW5jdGlvbi4KCShidWlsZF9uZXdfbWV0aG9kX2NhbGwpOiBVc2UgaXQuCgkocGVyZm9ybV9pbXBsaWNpdF9jb252ZXJzaW9uKTogVXNlIGVycm9yX29wZXJhbmRfcC4KCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdF9hbm9uKTogVXNlIGNvbnN0cnVjdG9yX25hbWVfcC4KCShjaGVja19maWVsZF9kZWNscyk6IExpa2V3aXNlLgoJKHBvcF9uZXN0ZWRfY2xhc3MpOiBVc2UgT1ZMX05FWFQsIG5vdCBPVkxfQ0hBSU4uCgkocmVzb2x2ZV9hZGRyZXNzX29mX292ZXJsb2FkZWRfZnVuY3Rpb24pOiBMaWtld2lzZS4KCShpbnN0YW50aWF0ZV90eXBlKTogVHdlYWsgcG9pbnRlci10by1tZW1iZXIgaGFuZGxpbmcuCgkoZ2V0X3ByaW1hcnlfYmluZm8pOiBSZW1vdmUgaW5jb3JyZWN0IGFzc2VydGlvbi4KCSogY29uZmlnLWxhbmcuaW4gKGd0ZmlsZXMpOiBBZGQgcGFyc2VyLmMsIHJlbW92ZSBwYXJzZS5jLgoJKiBjcC10cmVlLmggKERFRkFSR19UT0tFTlMpOiBOZXcgbWFjcm8uCgkoZGVmYXVsdF9hcmcpOiBOZXcgc3RydWN0dXJlLgoJKGNwX3RyZWVfbm9kZV9zdHJ1Y3R1cmVfZW51bSk6IEFkZCBUU19DUF9ERUZBVUxUX0FSRy4KCShsYW5nX3RyZWVfbm9kZSk6IEFkZCBkZWZhdWx0X2FyZy4KCShjcF90cmVlX2luZGV4KTogQWRkIENQVElfVFlQRV9JTkZPX1JFRl9UWVBFLgoJKHR5cGVfaW5mb19yZWZfdHlwZSk6IE5ldyBtYWNyby4KCShzYXZlZF9zY29wZSk6IE1ha2UgcHJvY2Vzc2luZ19leHBsaWNpdF9pbnN0YW50aWF0aW9uIGEgYm9vbGVhbi4KCShjaGVja19hY2Nlc3MpOiBOZXcgZmllbGQuCgkodW5wYXJzZWRfdGV4dCk6IFJlbW92ZS4KCShsYW5ndWFnZV9mdW5jdGlvbik6IFJlbW92ZSB1bnBhcnNlZF9pbmxpbmVzLgoJKGVycm9yX29wZXJhbmRfcCk6IE5ldyBtYWNyby4KCShsYW5nX2RlY2wpOiBBZGp1c3QgcGVuZGluZ19pbmxpbmVfaW5mby4KCShERUZBUkdfUE9JTlRFUik6IFJlbW92ZS4KCSh0YWdfdHlwZXMpOiBBZGQgdHlwZW5hbWVzLgoJKGxvb2t1cF91YWxpZmllZF9uYW1lKTogRGVjbGFyZS4KCShsb29rdXBfbmFtZV9yZWFsKTogTGlrZXdpc2UuCgkoc2hhZG93X3RhZyk6IEFkanVzdCBwcm90b3R5cGUuCgkoZ2V0X3Njb3BlX29mX2RlY2xhcmF0b3IpOiBEZWNsYXJlIGl0LgoJKHByb2Nlc3NfbmV4dF9pbmxpbmUpOiBSZW1vdmUgaXQuCgkoY2hlY2tfZm9yX21pc3Npbmdfc2VtaWNvbG9uKTogTGlrZXdpc2UuCgkobWF5YmVfZ2V0X3RlbXBsYXRlX2RlY2xfZnJvbV90eXBlX2RlY2wpOiBEZWNsYXJlIGl0LgoJKGZpbmlzaF9sYWJlbF9zdG10KTogQWRqdXN0IHByb3RvdHlwZS4KCShmaW5pc2hfbm9uX3N0YXRpY19kYXRhX21lYmVyKTogRGVjbGFyZSBpdC4KCShmaW5pc2hfcHNldWRvX2Rlc3RydWN0b3JfY2FsbF9leHByKTogUmVuYW1lIHRvIC4uLgoJKGZpbmlzaF9wc2V1ZG9fZGVzdHJ1Y3Rvcl9leHByKTogLi4uIHRoaXMuCgkoZmluaXNoX2NvbXBvdW5kX2xpdGVyYWwpOiBEZWNsYXJlIGl0LgoJKGJlZ2luX2lubGluZV9kZWZpbml0aW9ucyk6IFJlbW92ZSBpdC4KCShpbml0X3NwZXcpOiBSZW1vdmUuCgkocGVla3l5bGV4KTogTGlrZXdpc2UuCgkoYXJiaXRyYXRlX2xvb2t1cCk6IExpa2V3aXNlLgoJKGZyb2Jfb3BuYW1lKTogTGlrZXdpc2UuCgkobWF5YmVfc25hcmZfZGVmYXJnKTogTGlrZXdpc2UuCgkoYWRkX2RlZmFyZ19mbik6IExpa2V3aXNlLgoJKGRvX3BlbmRpbmdfZGVmYXJncyk6IExpa2V3aXNlLgoJKGRvbmVfcGVuZGluZ19kZWZhcmdzKTogTGlrZXdpc2UuCgkodW5wcm9jZXNzZWRfZGVmYXJnX2ZuKTogTGlrZXdpc2UuCgkocmVwbGFjZV9kZWZhcmcpOiBMaWtld2lzZS4KCShlbmRfaW5wdXQpOiBMaWtld2lzZS4KCShnZXRfb3ZlcmxvYWRlZF9mbik6IExpa2V3aXNlLgoJKiBjdnQuYyAoY29udmVydF90b19yZWZlcmVuY2UpOiBJbXByb3ZlIGVycm9yIGhhbmRsaW5nLgoJKiBkZWNsLmMgKGxvb2t1cF9uYW1lX3JlYWwpOiBEbyBub3QgZGVjbGFyZSBpdCBzdGF0aWMuCgkobWF5YmVfcHVzaF90b190b3BfbGV2ZWwpOiBTZXQgY2hlY2tfYWNjZXNzLgoJKGlkZW50aWZpZXJfdHlwZV92YWx1ZSk6IEFkanVzdCBjYWxsIHRvIGxvb2t1cF9uYW1lX3JlYWwuCgkobG9va3VwX3F1YWxpZmllZF9uYW1lKTogTmV3IG1ldGhvZC4KCShsb29rdXBfbmFtZV9yZWFsKTogUmVtb3ZlIHNwZWNpYWwtY2FzZSBwYXJzaW5nIGNvZGUuCgkobG9va3VwX25hbWUtbm9uY2xhc3MpOiBBZGp1c3QgY2FsbCB0byBsb29rdXBfbmFtZV9yZWFsLgoJKGxvb2t1cF9uYW1lX25hbWVzcGFjZV9vbmx5KTogTGlrZXdpc2UuCgkobG9va3VwX25hbWUpOiBMaWtld2lzZS4KCShjaGVja190YWdfZGVjbCk6IFJldHVybiB0aGUgdHlwZSBkZWNsYXJlZC4KCShzaGFkb3dfdGFnKTogTGlrZXdpc2UuCgkocmVnaXN0ZXJfZHRvcl9mbik6IFR3ZWFrIGNoZWNrX2FjY2Vzcy4KCShncm9rZm5kZWNsKTogVXNlIGNvbnN0cnVjdG9yX25hbWVfcC4KCShnZXRfc2NvcGVfb2ZfZGVjbGFyYXRvcik6IE5ldyBmdW5jdGlvbi4KCShncm9rZGVjbGFyYXRvcik6IE9ic2N1cmUgdHdlYWtzIGZvciBzbGlnaHRseSBkaWZmZXJlbnQgZGVjbGFyYXRvcgoJcmVwcmVzZW50YXRpb25zLgoJKHN0YXJ0X21ldGhvZCk6IFJldHVybiBlcnJvcl9tYXJrX25vZGUgdG8gaW5kaWNhdGUgZmFpbHVyZS4KCShjcF90cmVlX25vZGVfc3RydWN0dXJlX2VudW0pOiBVc2UgVFNfQ1BfREVGQVVMVF9BUkcgZm9yIERFRkFVTFRfQVJHcy4KCSogZGVjbDIuYyAoY29uc3RydWN0b3JfbmFtZV9mdWxsKTogU2ltcGxpZnkuCgkoY29uc3RydWN0b3JfbmFtZSk6IFVzZSBpdC4KCShidWlsZF9leHByX2Zyb21fdHJlZSk6IEFkanVzdCBmb3IgY2hhbmdlcyB0byBkbyBuZXcgcGFyc2VyLgoJKHB1c2hfc2NvcGUpOiBJbXByb3ZlIHJvYnVzdG5lc3MuCgkodmFsaWRhdGVfbm9ubWVtYmVyX3VzaW5nX2RlY2wpOiBQcm9jZXNzIGRlY2xhcmF0aW9ucywgbm90IG5hbWVzLgoJKGRvX2NsYXNzX3VzaW5nX2RlY2wpOiBMaWtld2lzZS4KCShoYW5kbGVfY2xhc3NfaGVhZCk6IERvIG5vdCBtZXNzIHdpdGggQ0xBU1NUWVBFX0RFQ0xBUkVEX0NMQVNTCgloZXJlLgoJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBIYW5kbGUgSURFTlRJRklFUl9OT0RFcyBhbmQgQkFTRUxJTktzLgoJKiBleHByLmMgKGN4eF9leHBhbmRfZXhwcik6IEhhbmRsZSBCQVNFTElOS3MuCgkqIGluaXQuYyAobWVtYmVyX2luaXRfb2tfb3JfZWxzZSk6IElzc3VlIG1vcmUgZXJyb3JzLgoJKGJ1aWxkX29mZnNldF9yZWYpOiBUd2VhayBoYW5kbGluZyBvZiBGVU5DVElPTl9ERUNMcy4KCSogbGV4LmM6IERvIG5vdCBpbmNsdWRlIHBhcnNlLmguCgkoeXlwcmluZyk6IERvIG5vdCBkZWNsYXJlLgoJKHl5bHZhbCk6IExpa2V3aXNlLgoJKG1ha2VfcmVmZXJlbmNlX2RlY2xhcmF0b3IpOiBSZW1vdmUgZXJyb3ItZ2VuZXJhdGluZyBjb2RlLgoJKHJpZF90b195eSk6IFJlbW92ZS4KCShjeHhfaW5pdCk6IERvIG5vdCBjYWxsIGluaXRfc3Bldy4KCSh5eXByaW5nKTogUmVtb3ZlLgoJKGNoZWNrX2Zvcl9taXNzaW5nX3NlbWljb2xvbik6IFJlbW92ZS4KCSogbGV4LmggKGdvdF9zY29wZSk6IFJlbW92ZS4KCShnb3Rfb2JqZWN0KTogUmVtb3ZlLgoJKiBtZXRob2QuYyAoaGFja19pZGVudGlmaWVyKTogVXNlIGZpbmlzaF9ub25fc3RhdGljX2RhdGFfbWVtYmVyLgoJKGltcGxpY2l0bHlfZGVjbGFyZV9mbik6IEFkanVzdCB1c2Ugb2YgY29uc3RydWN0b3JfbmFtZS4KCSogcGFyc2VyLmM6IE5ldyBmaWxlLgoJKiBwdC5jIChwYXJzZS5oKTogRG8gbm90IGluY2x1ZGUgaXQuCgkobWF5YmVfZ2V0X3RlbXBsYXRlX2RlY2xfZnJvbV90ZW1wbGF0ZSk6IERvIG5vdCBkZWNsYXJlIGl0LgoJKGZpbmlzaF9tZW1iZXJfdGVtcGxhdGVfZGVjbCk6IFR3ZWFrLgoJKGJlZ2luX2V4cGxpY2l0X2luc3RhbnRpYXRpb24pOiBBZGp1c3QgZm9yCglwcm9jZXNzaW5nX2V4cGxpY2l0X2luc3RhbnRpYXRpb24gYmVpbmcgYm9vbGVhbi4KCShlbmRfZXhwbGljaXRfaW5zdGFudGlhdGlvbik6IExpa2V3aXNlLgoJKG1heWJlX3Byb2Nlc3NfcGFydGlhbF9zcGVjaWFsaXphdGlvbik6IFRpZ2h0ZW4gc3BlY2lhbGl6YXRpb24KCXRlc3QuCgkocmV0cmlldmVfbG9jYWxfc3BlY2lhbGl6YXRpb24pOiBBZGp1c3QgdWUgb2YgaGFzaCB0YWJsZS4KCShlcV9sb2NhbF9zcGVjaWFsaXphdGlvbnMpOiBOZXcgZnVuY3Rpb24uCgkocmVnaXN0ZXJfbG9jYWxfc3BlY2lhbGl6YXRpb24pOiBMaWtld2lzZS4KCShwdXNoX3RlbXBsYXRlX2RlY2xfcmVhbCk6IFJlbW92ZSB1bm5lY2Vzc2FyeSB0ZXN0LgoJKG1heWJlX2dldF90ZW1wbGF0ZV9kZWNsX2Zyb21fdHlwZV9kZWNsKTogRG9uJ3QgbWFrZSBpdCBzdGF0aWMuCgkoZm9yX2VhY2hfdGVtcGxhdGVfcGFybV9yKTogSGFuZGxlIFRZUEVPRl9UWVBFLgoJKHRzdWJzdF9jb3B5KTogVXNlIHJldHJpZWl2ZV9sb2NhbF9zcGVjaWFsaXphdGlvbiB0byBoYW5kbGUKCVBBUk1fREVDTC4gIEFkanVzdCBoYW5kbGluZyBvZiBDT05TVF9ERUNMcy4gIEhhbmRsZSBCQVNFTElOS3MuCglIYW5kbGUgQ09NUE9ORU5UX1JFRnMgd2l0aCBwc2V1ZG8tZGVzdHJ1Y3Rvci1leHByZXNzaW9ucy4KCVNpbXBsaWZ5IGhhbmRsaW5nIG9mIENBTExfRVhQUiBhbmQgTUVUSE9EX0NBTExfRVhQUi4KCSh0c3Vic3RfZXhwcik6IFBhc3MgZGVjbHMsIG5vdCBuYW1lcywgdG8gZG9fbG9jYWxfdXNpbmdfZGVjbC4KCSh1bmlmeSk6IFR3ZWFrIGhhbmRsaW5nIG9mIENPTlNUX0RFQ0xzLgoJKHJlZ2VuZXJhdGVfZGVjbF9mcm9tX3RlbXBsYXRlKTogVXNlIHB1c2hfbmVzdGVkX2NsYXNzLgoJKHRlbXBsYXRlX2Zvcl9zdWJzdGl0dXRpb24pOiBOZXcgZnVuY2l0b24uCgkoaW5zdGFudGlhdGVfZGVjbCk6IFVzZSBpdC4gIFJlZ2lzdGVyIHBhcmFtZXRlcnMgYXMgbG9jYWwKCXNwZWNpYWxpemF0aW9ucy4KCSogcnR0aS5jIChpbml0X3J0dGlfcHJvY2Vzc2luZyk6IFNldCB0eXBlX2luZm9fcmVmX3R5cGUuCgkoYnVpbGRfdHlwZWlkKTogVXNlIGl0LgoJKGdldF90eXBlaWQpOiBMaWtlaXNlLgoJKiBzZWFyY2guYyAoYWNjZXNzaWJsZV9wKTogVXNlIGNoZWNrX2FjY2Vzcywgbm90CglmbGFnX2FjY2Vzc19jb250cm9sLgoJKGFkanVzdF9yZXN1bHRfb2ZfcXVhbGlmaWVkX25hbWVfbG9va3VwKTogUGF5IGF0dGVudGlvbiB0byB0aGUKCWNvbnRleHRfY2xhc3MuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfYXNtX3N0bXQpOiBBZGp1c3QgZXJyb3IgaGFuZGxpbmcuCgkoZmluaXNoX2xhYmVsX3N0bXQpOiBSZXR1cm4gdGhlIHN0YXRlbWVudC4KCShmaW5pc2hfbm9uX3N0YXRpY19kYXRhX21lbWJlcik6IE5ldyBmdW5jdGlvbi4KCShmaW5pc2hfY2xhc3NfZXhwcik6IEhhbmRsZSBCQVNFTElOS3MuCgkoZmluaXNoX2NhbGxfZXhwcik6IEhhbmRsZSBQU0VVRE9fRFRPUl9FWFBSLgoJKGZpbmlzaF9vYmplY3RfY2FsbF9leHByKTogU2ltcGxpZnkgaGFuZGxpbmcgZHVyaW5nIHRlbXBsYXRlcy4KCShmaW5pc2hfcHNldWRvX2Rlc3RydWN0b3JfY2FsbF9leHByKTogUmVuYW1lIHRvIC4uLgoJKGZpbmlzaF9wc2V1ZG9fZHRvcl9leHByKTogLi4uIHRoaXMuCgkoZmluaXNoX2NvbXBvdW5kX2xpdGVyYWwpOiBOZXcgZnVuY3Rpb24uCgkoYmVnaW5faW5saW5lX2RlZmluaXRpb25zKTogUmVtb3ZlLgoJKGZpbmlzaF9zaXplb2YpOiBSZW1vdmUgc3BlY2lhbCB0ZW1wbGF0ZSBoYW5kbGluZy4KCSogc3Bldy5jOiBEbyBub3QgaW5jbHVkZSBwYXJzZS5oLgoJKiB0cmVlLmMgKGdldF9vdmVybG9hZGVkX2ZuKTogUmVtb3ZlLgoJKiB0eXBlY2suYyAoYnVpbGRfY2xhc3NfbWVtYmVyX2FjY2Vzc19leHByKTogSGFuZGxlCglQU0VVRE9fRFRPUl9FWFBSLiAgQWRqdXN0IGhhbmRsaW5nIG9mIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb25zLgoJKGxvb2t1cF9kZXN0cnVjdG9yKTogTmV3IGZ1bmN0aW9uLgoJKGZpbmlzaF9jbGFzc19tZW1iZXJfYWNjZXNzX2V4cHIpOiBVc2UgaXQuCgkoY29udmVydF9hcmd1bWVudHMpOiBTaW1wbGlmeS4KCShidWlsZF91bmFyeV9vcCk6IEhhbmRsZSBCQVNFTElOS3MuCgoyMDAyLTEyLTI2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy80ODAzCgkqIGRlY2wyLmMgKG1hcmtfdXNlZCk6IERlZmVyIGlubGluZSBmdW5jdGlvbnMuCgkoZmluaXNoX2ZpbGUpOiBNZXJnZSBkZWZlcnJlZF9mbnMgbG9vcHMuIENoZWNrIGFsbCB1c2VkCglpbmxpbmUgZnVuY3Rpb25zIGhhdmUgYSBkZWZpbml0aW9uLgoJKiBtZXRob2QuYyAobWFrZV90aHVuayk6IFRodW5rcyBhcmUgbm90IGlubGluZS4KCglQUiBjKysvNTExNiwgYysrLzc2NAoJKiBjYWxsLmMgKGJ1aWxkX25ld19vcCk6IE1ha2Ugc3VyZSB0ZW1wbGF0ZSBjbGFzcyBvcGVyYW5kcyBhcmUKCWluc3RhbnRpYXRlZC4KCjIwMDItMTItMjQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgQysrLzc5NjQKCSogY3AtdHJlZS5oIChyZXNvbHZlX3Njb3BlZF9mbl9uYW1lKTogUHJvdG90eXBlLgoJKiBjYWxsLmMgKHJlc29sdmVfc2NvcGVkX2ZuX25hbWUpOiBOZXcgZnVuY3Rpb24uIERlYWwgd2l0aAoJbW9yZSB0ZW1wbGF0ZSBleHBhbnNpb24uIEJyb2tlbiBvdXQgb2YgLi4uCgkqIHBhcnNlLnkgKHBhcnNlX2ZpbmlzaF9jYWxsX2V4cHIpOiAuLi4gaGVyZS4gQ2FsbCBpdC4KCSogZGVjbDIuYyAoYnVpbGRfZXhwcl9mcm9tX3RyZWUsIENBTExfRVhQUik6IFVzZQoJcmVzb2x2ZV9zY29wZWRfZm5fbmFtZSBhbmQgYnVpbGRfY2FsbF9mcm9tX3RyZWUuCgoJUFIgYysrLzkwNTMKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBUZW1wbGF0ZXMgbWF5IGJlIGRpc2FtYmlndWF0ZWQgYnkKCXJldHVybiB0eXBlLgoKCVBSIGMrKy84NzAyCgkqIGRlY2wyLmMgKGNoZWNrX2NsYXNzZm4pOiBVc2UgbG9va3VwX2ZuZmllbGRfMS4gTGlzdCBhbGwKCWNvbnZlcnNpb24gb3BlcmF0b3JzIG9uIGZhaWx1cmUuCgoyMDAyLTEyLTIzICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldD4KCglSZW1vdmUgdHJhZGl0aW9uYWwgQyBjb25zdHJ1Y3RzIDIvbi4KCSogY2FsbC5jICh0b3VybmV5LCBidWlsZF9maWVsZF9jYWxsLCBlcXVhbF9mdW5jdGlvbnMsIGpvdXN0LAoJY29tcGFyZV9pY3MsIGJ1aWxkX292ZXJfY2FsbCwgYnVpbGRfamF2YV9pbnRlcmZhY2VfZm5fcmVmLAoJY29udmVydF9saWtlX3JlYWwsIG9wX2Vycm9yLCBidWlsZF9vYmplY3RfY2FsbCwgcmVzb2x2ZV9hcmdzLAoJYnVpbGRfdmZpZWxkX3JlZiwgY2hlY2tfZHRvcl9uYW1lLCBidWlsZF9zY29wZWRfbWV0aG9kX2NhbGwsCglidWlsZF9hZGRyX2Z1bmMsIGJ1aWxkX2NhbGwsIGJ1aWxkX21ldGhvZF9jYWxsLCBudWxsX3B0cl9jc3RfcCwKCXN1ZmZpY2llbnRfcGFybXNfcCwgYnVpbGRfY29udiwgbm9uX3JlZmVyZW5jZSwgc3RyaXBfdG9wX3F1YWxzLAoJc3RhbmRhcmRfY29udmVyc2lvbiwgcmVmZXJlbmNlX3JlbGF0ZWRfcCwKCXJlZmVyZW5jZV9jb21wYXRpYmxlX3AsIGNvbnZlcnRfY2xhc3NfdG9fcmVmZXJlbmNlLAoJZGlyZWN0X3JlZmVyZW5jZV9iaW5kaW5nLCByZWZlcmVuY2VfYmluZGluZywKCSxpbXBsaWNpdF9jb252ZXJzaW9uLCBpc19jb21wbGV0ZSwgcHJvbW90ZWRfYXJpdGhtZXRpY190eXBlX3AsCglhZGRfdGVtcGxhdGVfY29udl9jYW5kaWRhdGUsIGFueV92aWFibGUsIGFueV9zdHJpY3RseV92aWFibGUsCglidWlsZF90aGlzLCBzcGxpY2VfdmlhYmxlLCBwcmludF96X2NhbmRpZGF0ZXMsCglidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbiwgYnVpbGRfbmV3X2Z1bmN0aW9uX2NhbGwsCgljb25kaXRpb25hbF9jb252ZXJzaW9uLCBidWlsZF9jb25kaXRpb25hbF9leHByLCBidWlsZF9uZXdfb3AsCglidWlsZF9vcF9kZWxldGVfY2FsbCwgZW5mb3JjZV9hY2Nlc3MsIGNhbGxfYnVpbHRpbl90cmFwLAoJY29udmVydF9hcmdfdG9fZWxsaXBzaXMsIGJ1aWxkX3hfdmFfYXJnLCBjeHhfdHlwZV9wcm9tb3Rlc190bywKCWNvbnZlcnRfZGVmYXVsdF9hcmcsIHR5cGVfcGFzc2VkX2FzLCBjb252ZXJ0X2Zvcl9hcmdfcGFzc2luZywKCWluX2NoYXJnZV9hcmdfZm9yX25hbWUsIGlzX3Byb3Blcmx5X2Rlcml2ZWRfZnJvbSwKCW1heWJlX2hhbmRsZV9pbXBsaWNpdF9vYmplY3QsIG1heWJlX2hhbmRsZV9yZWZfYmluZCwKCXNvdXJjZV90eXBlLCBhZGRfd2FybmluZywgY2FuX2NvbnZlcnQsIGNhbl9jb252ZXJ0X2FyZywKCXBlcmZvcm1faW1wbGljaXRfY29udmVyc2lvbiwgY2FuX2NvbnZlcnRfYXJnX2JhZCwKCWluaXRpYWxpemVfcmVmZXJlbmNlLCBhZGRfY29udl9jYW5kaWRhdGUsCglhZGRfdGVtcGxhdGVfY2FuZGlkYXRlX3JlYWwsIGFkZF90ZW1wbGF0ZV9jYW5kaWRhdGUpOiBBbnNpZnkuCgoyMDAyLTEyLTIyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy84NTcyCgkqIGNwLXRyZWUuaCAoZ3Jva29wdHlwZW5hbWUpOiBBZGQgU0NPUEUgcGFyYW1ldGVyLgoJKiBkZWNsMi5jIChncm9rb3B0eXBlbmFtZSk6IEFkZCBTQ09QRSBwYXJhbWV0ZXIuIHRzdWJzdCB0aGUgdHlwZQoJaWYgaW4gYSB0ZW1wbGF0ZSBzY29wZS4KCSogcGFyc2UueSAodW5vcGVyYXRvcik6IFJldHVybiB0aGUgc2NvcGUuCgkob3BlcmF0b3JfbmFtZSk6IEFkanVzdCBncm9rb3B0eXBlbmFtZSBjYWxsLgoKMjAwMi0xMi0yMiAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjcC10cmVlLmggKG1ha2VfdW5ib3VuZF9jbGFzc190ZW1wbGF0ZSk6IFVzZSB0c3Vic3RfZmxhZ3NfdC4KCSogZGVjbC5jIChtYWtlX3VuYm91bmRfY2xhc3NfdGVtcGxhdGUpOiBBZGp1c3QuICBDaGVjayBmb3IgdGZfZXJyb3IuCgkqIHB0LmMgKHRzdWJzdCkgW09GRlNFVF9UWVBFXTogQ2hlY2sgZm9yIHRmX2Vycm9yLgoKMjAwMi0xMi0yMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIENoYW5nZUxvZzogRml4IGEgdHlwby4KCSogY2xhc3MuYzogRml4IGNvbW1lbnQgdHlwb3MuCgkqIGNwLXRyZWUuaDogTGlrZXdpc2UuCgoyMDAyLTEyLTE4ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglIYW5kbGUgYW5vbnltb3VzIHVuaW9ucyBhdCB0aGUgdHJlZSBsZXZlbC4KCUMrKyBBQkkgY2hhbmdlOiBNYW5nbGUgYW5vbnltb3VzIHVuaW9ucyB1c2luZyB0aGUgbmFtZSBvZiB0aGVpcgoJZmlyc3QgbmFtZWQgZmllbGQgKGJ5IGRlcHRoLWZpcnN0IHNlYXJjaCkuICBTaG91bGQgbm90IGNhdXNlCgliaW5hcnkgY29tcGF0aWJpbGl0eSBwcm9ibGVtcywgdGhvdWdoLCBhcyB0aGUgY29tcGlsZXIgcHJldmlvdXNseQoJZGlkbid0IGVtaXQgYW55dGhpbmcgZm9yIGFmZmVjdGVkIHVuaW9ucy4KCSogY3AtdHJlZS5kZWYgKEFMSUFTX0RFQ0wpOiBOZXcgdHJlZSBjb2RlLgoJKiBkZWNsMi5jIChidWlsZF9hbm9uX3VuaW9uX3ZhcnMpOiBCdWlsZCBBTElBU19ERUNMcy4gIFJldHVybiB0aGUKCWZpcnN0IGZpZWxkLCBub3QgdGhlIGxhcmdlc3QuCgkoZmluaXNoX2Fub25fdW5pb24pOiBEb24ndCBtZXNzIHdpdGggUlRMLiAgRG8gc2V0IERFQ0xfQVNTRU1CTEVSX05BTUUsCglwdXNoIHRoZSBkZWNsLCBhbmQgd3JpdGUgaXQgb3V0IGF0IG5hbWVzcGFjZSBzY29wZS4KCSogZGVjbC5jIChsb29rdXBfbmFtZV9yZWFsKTogU2VlIHRocm91Z2ggYW4gQUxJQVNfREVDTC4KCShwdXNoZGVjbCk6IEFkZCBuYW1lc3BhY2UgYmluZGluZ3MgZm9yIEFMSUFTX0RFQ0xzLgoJKiBydHRpLmMgKHVuZW1pdHRlZF90aW5mb19kZWNsX3ApOiBEb24ndCB0cnkgdG8gbG9vayBhdCB0aGUgbmFtZQoJb2YgYSBkZWNsIHdoaWNoIGRvZXNuJ3QgaGF2ZSBvbmUuCgkqIHR5cGVjay5jIChidWlsZF9jbGFzc19tZW1iZXJfYWNjZXNzX2V4cHIpOiBEb24ndCByZWN1cnNlIGlmCgl3ZSBhbHJlYWR5IGhhdmUgdGhlIHR5cGUgd2Ugd2FudC4KCjIwMDItMTItMTggIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy84MDk5CgkqIGZyaWVuZC5jIChtYWtlX2ZyaWVuZF9jbGFzcyk6IEFsbG93IHBhcnRpYWwgc3BlY2lhbGl6YXRpb24KCXdoZW4gZGVjbGFyYXRpb24gaXMgbm90IGEgdGVtcGxhdGUgZnJpZW5kLgoKMjAwMi0xMi0xOCAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzM2NjMKCSogcHQuYyAobG9va3VwX3RlbXBsYXRlX2NsYXNzKTogQ29weSBUUkVFX1BSSVZBVEUgYW5kCglUUkVFX1BST1RFQ1RFRCB0byBjcmVhdGVkIGRlY2wgbm9kZXMuCgoyMDAyLTEyLTE4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoYnVpbGRfYmFzZV9maWVsZCk6IERvIG5vdCBzZXQgREVDTF9QQUNLRUQgb24gdGhlCglGSUVMRF9ERUNMLgoKMjAwMi0xMi0xOCAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBjcC10cmVlLmggKHN0cnVjdCB0cmVlX3NyY2xvYyk6IFVzZSBsb2NhdGlvbl90LgoJKFNPVVJDRV9MT0NVUyk6IE5ldy4KCShTUkNMT0NfRklMRSwgU1JDTE9DX0xJTkUpOiBBZGp1c3QuCgoyMDAyLTEyLTE3ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAoZmluaXNoX2Z1bmN0aW9uKTogQWxzbyBjb21wbGFpbiBhYm91dCBubyByZXR1cm4gaW4KCXRlbXBsYXRlcy4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9yZXR1cm5fc3RtdCk6IEFsc28gY2FsbCBjaGVja19yZXR1cm5fZXhwciBpbgoJdGVtcGxhdGVzLgoJKiB0eXBlY2suYyAoY2hlY2tfcmV0dXJuX2V4cHIpOiBJbiBhIHRlbXBsYXRlLCBqdXN0IHJlbWVtYmVyIHRoYXQgd2UKCXNhdyBhIHJldHVybi4KCjIwMDItMTItMTYgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogc2VtYW50aWNzLmMgKHNpbXBsaWZ5X2FnZ3JfaW5pdF9leHByc19yKTogRG9uJ3QgY2hhbmdlIHRoZSB0eXBlCglvZiB0aGUgQ0FMTF9FWFBSLgoKCSogc2VtYW50aWNzLmMgKGRvX3B1c2hsZXZlbCk6IENhbGwgcHVzaGxldmVsIGFmdGVyIGFkZGluZyB0aGUKCVNDT1BFX1NUTVQuCgkoZG9fcG9wbGV2ZWwpOiBDYWxsIHBvcGxldmVsIGJlZm9yZSBhZGRpbmcgdGhlIFNDT1BFX1NUTVQuCgkqIHBhcnNlLnkgKGZ1bmN0aW9uX2JvZHkpOiBHbyBiYWNrIHRvIHVzaW5nIGNvbXBzdG10LgoJKiBkZWNsLmMgKHB1c2hkZWNsKTogU2tpcCBhbm90aGVyIGxldmVsIHRvIGdldCB0byB0aGUgcGFybXMgbGV2ZWwuCgoJKiBjYWxsLmMgKGJ1aWxkX25ld19tZXRob2RfY2FsbCk6IFVzZSBpc19kdW1teV9vYmplY3QgdG8gZGV0ZXJtaW5lCgl3aGV0aGVyIG9yIG5vdCB0byBldmFsdWF0ZSB0aGUgb2JqZWN0IHBhcmFtZXRlciB0byBhIHN0YXRpYyBtZW1iZXIKCWZ1bmN0aW9uLgoKMjAwMi0xMi0xNCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBzZW1hbnRpY3MuYyAoc2ltcGxpZnlfYWdncl9pbml0X2V4cHJzX3IpOiBBbHNvIHByZXBlbmQgdGhlCglyZXR1cm4gc2xvdCBmb3Igbm9ybWFsIGZ1bmN0aW9ucy4gIFNldCBDQUxMX0VYUFJfSEFTX1JFVFVSTl9TTE9UX0FERFIuCgkqIHRyZWUuYyAoYnVpbGRfY3BsdXNfbmV3KTogSWYgdGhlIHR5cGUgaXNuJ3QgVFJFRV9BRERSRVNTQUJMRSwKCWRvbid0IGJvdGhlciB3aXRoIGFuIEFHR1JfSU5JVF9FWFBSLgoJKGNwX2NvcHlfcmVzX2RlY2xfZm9yX2lubGluaW5nKTogSWYgdGhlIHR5cGUgaXNuJ3QgVFJFRV9BRERSRVNTQUJMRSwKCWp1c3QgZ2VuZXJhdGUgYSBuZXcgZGVjbCBub3JtYWxseS4gIFRha2UgcmV0dXJuIHNsb3QgcGFybS4KCSogY3AtdHJlZS5oOiBBZGp1c3QgcHJvdG90eXBlLgoKMjAwMi0xMi0xMyAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJUFIgQysrLzgwMzEKCSogY3Z0LmMgKGNvbnZlcnRfdG9fcG9pbnRlcl9mb3JjZSk6IERvbid0IHRyeSBjb21wYXJpbmcgYWdhaW5zdAoJZXJyb25vdXMgdHlwZS4KCjIwMDItMTItMTMgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY3AtdHJlZS5oOiBIYXZlIHRoZSBtdWx0aXBsZS1pbmNsdWRlIGd1YXJkcyBhcm91bmQKCXRoZSBlbnRpcmUgZmlsZS4KCjIwMDItMTItMTAgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIGNwL3NwZXcuYyAoZmVlZF9pbnB1dCk6IENoYW5nZSBsaW1pdCB0byBsYXN0X3BvcyBhbmQgcG9zIHRvIGN1cl9wb3MKCWZvciBTUEVXX0RFQlVHLgoJKHNuYXJmX21ldGhvZCk6IFNhbWUuCgkoc25hcmZfZGVmYXJnKTogU2FtZS4KCjIwMDItMTItMTAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzgzNzIKCSogcHQuYyAodHN1YnN0X2NvcHkpOiBIYW5kbGUgZGVzdHJ1Y3RvciBuYW1lcyBtb3JlIGNvcnJlY3RseS4KCjIwMDItMTItMTAgIE1hdHQgQXVzdGVybiAgIDxhdXN0ZXJuQGFwcGxlLmNvbT4KCgkqIGNwLXRyZWUuaDogZ2V0IHJpZCBvZiBuZWVkc192aXJ0dWFsX3JlaW5pdCBiaXQuCgoyMDAyLTEyLTA5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTkVXUzogRG9jdW1lbnQgcmVtb3ZhbCBvZiBpbi1jbGFzcyBpbml0aWFsaXphdGlvbiBleHRlbnNpb24gZm9yCglzdGF0aWMgZGF0YSBtZW1iZXJzIG9mIG5vbi1hcml0aG1ldGljLCBub24tZW51bWVyYXRpb24gdHlwZS4KCSogZGVjbC5jIChjaGVja19zdGF0aWNfdmFyaWFibGVfZGVmaW5pdGlvbik6IERvIG5vdCBhbGxvdyB0aGF0CglleHRlbnNpb24uCgkqIGRlY2wyLmMgKGdyb2tmaWVsZCk6IERvIG5vdCBjYWxsIGRpZ2VzdF9pbml0IHdoZW4gcHJvY2Vzc2luZwoJdGVtcGxhdGVzLgoKMjAwMi0xMi0wNSAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogZXJyb3IuYyAoZHVtcF9leHByKTogRml4IGZvcm1hdCBzcGVjaWZpZXIgd2FybmluZy4KCjIwMDItMTItMDQgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdF8xKTogQ29ycmVjdCBjb21tZW50LgoJKiBjcC10cmVlLmMgKERFQ0xfU09SVEVEX0ZJRUxEUyk6IExpa2V3aXNlLgoKMjAwMi0xMi0wNCAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJUFIgQysrLzg3OTkKCSogZXJyb3IuYyAoZHVtcF9leHByKTogRG9uJ3QgZXZlciB0cnkgdG8gZHVtcCBhIG5vbi1leGlzdGVudAoJZXhwcmVzc2lvbi4KCjIwMDItMTItMDMgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJSW1wbGVtZW50IGNvdmFyaWFudCByZXR1cm5zLgoJKiBjcC10cmVlLmggKElTX0FHR1JfVFlQRV8yKTogUmVtb3ZlLgoJKHN0cnVjdCBsYW5nX2RlY2xfZmxhZ3MpOiBBZGQgdGhpc190aHVua19wIGZsYWcuCglSZW5hbWUgdmNhbGxfb2Zmc2V0IHRvIHZpcnR1YWxfb2Zmc2V0LgoJKHN0cnVjdCBsYW5nX2RlY2wpOiBSZW5hbWUgZGVsdGEgdG8gZml4ZWRfb2Zmc2V0LgoJKERFQ0xfVEhJU19USFVOS19QLCBERUNMX1JFU1VMVF9USFVOS19QKTogTmV3ICNkZWZpbmVzLgoJKFNFVF9ERUNMX1RIVU5LX1ApOiBBZGQgVEhJU19BREpVU1RJTkcgYXJnLgoJKFRIVU5LX0RFTFRBLCBUSFVOS19WQ0FMTF9PRkZTRVQpOiBSZW5hbWUgdG8gLi4uCgkoVEhVTktfRklYRURfT0ZGU0VULCBUSFVOS19WSVJUVUFMX09GRlNFVCk6IC4uLiBoZXJlLgoJKG1ha2VfdGh1bmspOiBBZGQgdGhpc19hZGp1c3RpbmcgYXJnLgoJKGZpbmlzaF90aHVuayk6IERlY2xhcmUuCgkobWFuZ2xlX3RodW5rKTogQWRkIHRoaXNfYWRqdXN0aW5nIGFyZy4KCSogY2xhc3MuYyAoZ2V0X3ZjYWxsX2luZGV4KTogVXNlIGJhc2UgZnVuY3Rpb24gZm9yIGxvb2t1cC4KCSh1cGRhdGVfdnRhYmxlX2VudHJ5X2Zvcl9mbik6IEdlbmVyYXRlIGNvdmFyaWFudCB0aHVuay4KCShmaW5pc2hfc3RydWN0XzEpOiBTZXQgREVDTF9WSU5ERVggdG8gTlVMTCBmb3IgdGh1bmtzLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBVc2UgYmFzZSBmdW5jdGlvbiBmb3IgbG9va3VwLgoJRmluaXNoIGNvdmFyaWFudCB0aHVuayBoZXJlLiBBZGp1c3QgdGh1bmsgZ2VuZXJhdGlvbi4KCSogZHVtcC5jIChjcF9kdW1wX3RyZWUpOiBTaW1wbGlmeSBERUNMX0dMT0JBTF9bQ0RdVE9SX1AgaGFuZGxpbmcuCglBZGp1c3QgdGh1bmsgZHVtcGluZy4KCSogbWFuZ2xlLmMgKG1hbmdsZV9jYWxsX29mZnNldCk6IE5ldyBmdW5jdGlvbi4KCShtYW5nbGVfdGh1bmspOiBBZGp1c3QgZm9yIGNvdmFyaWFudCB0aHVua3MuCgkqIG1ldGhvZC5jIChtYWtlX3RodW5rKTogQWRqdXN0LiBEbyBub3Qgc2V0IG5hbWUgaGVyZS4KCShmaW5pc2hfdGh1bmspOiBOZXcgZnVuY3Rpb24uIFNldCBuYW1lIGhlcmUuCgkodXNlX3RodW5rKTogR2VuZXJhdGUgY292YXJpYW50IHRodW5rcyB0b28uCgkodGh1bmtfYWRqdXN0KTogTmV3IGZ1bmN0aW9uLgoJKiBzZWFyY2guYyAoY292YXJpYW50X3JldHVybl9wKTogUmVtb3ZlLiBGb2xkIGludG8gLi4uCgkoY2hlY2tfZmluYWxfb3ZlcnJpZGVyKTogLi4uIGhlcmUuIFNpbXBsaWZ5LgoJKiBzZW1hbnRpY3MuYyAoZW1pdF9hc3NvY2lhdGVkX3RodW5rcyk6IFdhbGsgY292YXJpYW50IHRodW5rIGxpc3RzLgoKMjAwMi0xMi0wMyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzg2NzQKCSogY2FsbC5jIChidWlsZF9vdmVyX2NhbGwpOiBDaGVjayBzcGVjaWZpY2FsbHkgZm9yIFRBUkdFVF9FWFBSCgl3aGVuIGVsaWRpbmcuCgoJUFIgYysrLzg0NjEsIGMrKy84NjI1CgkqIGNhbGwuYyAoY29udmVydF9mb3JfYXJnX3Bhc3NpbmcpOiBEb24ndCBtZXNzIHdpdGggZXJyb3JfbWFya19ub2RlLgoJKGNwX2NvbnZlcnRfcGFybV9mb3JfaW5saW5pbmcpOiBSZW1vdmUuCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19UUkVFX0lOTElOSU5HX0NPTlZFUlRfUEFSTV9GT1JfSU5MSU5JTkcpOgoJUmVtb3ZlLgoJKiBjcC10cmVlLmggKEFERFJfSVNfSU5WSVNJUkVGKTogUmVtb3ZlLgoJKiBleGNlcHQuYyAoc3RhYmlsaXplX3Rocm93X2V4cHIpOiBSZW1vdmUgQUREUl9JU19JTlZJU0lSRUYgY29kZS4KCgkqIGNhbGwuYyAoYnVpbGRfdXNlcl90eXBlX2NvbnZlcnNpb25fMSk6IERvbid0IHNldCBJQ1NfQkFEX0ZMQUcgb24KCWFuIGFtYmlndW91cyBjb252ZXJzaW9uLgoKMjAwMi0xMi0wMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvODY4OAoJKiBkZWNsLmMgKHJlc2hhcGVfaW5pdCk6IEhhbmRsZSBlcnJvbmVvdXMgaW5pdGlhbGl6ZXJzLgoKMjAwMi0xMi0wMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvODcyMAoJKiBzcGV3LmMgKHJlbW92ZV9sYXN0X3Rva2VuKTogTWFrZSBzdXJlIHRoYXQgbGFzdF9jaHVuayBpcyBzZXQKCWNvcnJlY3RseS4KCglQUiBjKysvODYxNQoJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBIYW5kbGUgY2hhcmFjdGVyIGNvbnN0YW50cyB3aXRoCglUUkVFX09WRVJGTE9XIHNldC4KCjIwMDItMTItMDIgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCURSIDE4MAoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogUmVxdWlyZSBjbGFzcy1rZXkgZm9yIGFsbCBmcmllbmQgY2xhc3MuCglPdXRwdXQgdGhlIGNvcnJlY3QgdHlwZSBhbmQgY29udGV4dCBpbiB0aGUgZXJyb3IgbWVzc2FnZS4KCjIwMDItMTItMDEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzU5MTkKCSogcHQuYyAodW5pZnkpOiBVc2UgdmFyaWFibHlfbW9kaWZpZWRfdHlwZV9wIHRvIHRlc3QgdmFsaWRpdHkgb2YKCXRlbXBsYXRlIGFyZ3VtZW50IHR5cGVzLgoKCVBSIGMrKy84NzI3CgkqIGNwLXRyZWUuaCAobGFuZ190eXBlX2NsYXNzKTogQWRkIHR5cGVpbmZvX3Zhci4KCShDTEFTU1RZUEVfVFlQRUlORk9fVkFSKTogTmV3IG1hY3JvLgoJKiBydHRpLmMgKGdldF90aW5mb19kZWNsKTogVXNlIGl0LgoKCVBSIGMrKy84NjYzCgkqIGluaXQuYyAoZXhwYW5kX21lbWJlcl9pbml0KTogQWx3YXlzIGdldCB0aGUgbWFpbiB2YXJpYW50IG9mIGEKCWJhc2UgY2xhc3MuCgoyMDAyLTEyLTAxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy84MzMyCglQUiBjKysvODQ5MwoJKiBkZWNsLmMgKGN4eF9pbml0X2RlY2xfcHJvY2Vzc2luZyk6IFVzZSBzaXplX3R5cGVfbm9kZSwgbm90CgljX3NpemVfdHlwZV9ub2RlLgoJKiBkZWNsMi5jIChjb2VyY2VfbmV3X3R5cGUpOiBMaWtld2lzZS4KCSogZXhjZXB0LmMgKGRvX2FsbG9jYXRlX2V4Y2VwdGlvbik6IExpa2V3aXNlLgoKMjAwMi0xMS0zMCAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYywgY2xhc3MuYywgY3AtbGFuZy5jLCBjdnQuYywgY3h4ZmlsdC5jLCBkZWNsLmMsIGRlY2wyLmMsCglkdW1wLmMsIGVycm9yLmMsIGV4Y2VwdC5jLCBleHByLmMsIGZyaWVuZC5jLCBnKytzcGVjLmMsIGluaXQuYywKCWxleC5jLCBtYW5nbGUuYywgbWV0aG9kLmMsIG9wdGltaXplLmMsIHBhcnNlLnksIHB0LmMsIHB0cmVlLmMsCglyZXBvLmMsIHJ0dGkuYywgc2VhcmNoLmMsIHNlbWFudGljcy5jLCBzcGV3LmMsIHRyZWUuYywgdHlwZWNrLmMsCgl0eXBlY2syLmM6IEluY2x1ZGUgY29yZXR5cGVzLmggYW5kIHRtLmguCgkqIE1ha2UtbGFuZy5pbjogVXBkYXRlIGRlcGVuZGVuY2llcy4KCjIwMDItMTEtMzAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzgyMjcKCSogZGVjbC5jIChsYXlvdXRfdmFyX2RlY2wpOiBEZWFsIGdyYWNlZnVsbHkgd2l0aCBlcnJvbmVvdXMgdHlwZXMuCgkoY2hlY2tfaW5pdGlhbGl6ZXIpOiBWYWxpZGF0ZSB0aGUgdHlwZSBvZiB0aGUgaW5pdGlhbGl6ZWQKCXZhcmlhYmxlLCBldmVuIGlmIHRoZSBpbml0aWFsaXplciBpcyBhYnNlbnQuCgkqIHR5cGVjay5jIChjcF90eXBlX3F1YWxzKTogRGVhbCBncmFjZWZ1bGx5IHdpdGggZXJyb25lb3VzIHR5cGVzLgoKCVBSIGMrKy84MjE0CgkqIHR5cGVjay5jIChjb252ZXJ0X2Zvcl9hc3NpZ25tZW50KTogRG8gbm90IHVzZQoJZGVjbF9jb25zdGFudF92YWx1ZSBvbiB0aGUgb3BlcmFuZC4KCglQUiBjKysvODUxMQoJKiBwdC5jIChpbnN0YW50aWF0ZV9kZWNsKTogSGFuZGxlIHRlbXBsYXRlIGZyaWVuZHMgZGVmaW5lZCBvdXRzaWRlCglvZiB0aGUgY2xhc3MgY29ycmVjdGx5LgoKMjAwMi0xMS0yOSAgSm9lIEJ1Y2sgPGpidWNrQHN5bm9wc3lzLmNvbT4KCgkqIHBhcnNlLnkgKGNsYXNzX2hlYWRfZGVmbik6IFNldCBDTEFTU1RZUEVfREVDTEFSRURfQ0xBU1MgZm9yCglhbm9ueW1vdXMgc3RydWN0cy4KCjIwMDItMTEtMjkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jICh3YWxrX3N1Ym9iamVjdF9vZmZzZXRzKTogUmVjdXIgb24gYmluZm9zIGFzIHdlbGwgYXMgb24KCXR5cGVzLgoJKGxheW91dF9ub25lbXB0eV9iYXNlX29yX2ZpZWxkKTogUGFzcyBpdCBhIGJpbmZvIHdoZW4gcHJvY2Vzc2luZyBhCgliYXNlIGNsYXNzLgoJKGxheW91dF9lbXB0eV9iYXNlKTogTGlrZXdpc2UuCgkoYnVpbGRfYmFzZV9maWVsZCk6IExpa2V3aXNlLgoKMjAwMi0xMS0yNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX2Jhc2VfZmllbGQpOiBNYWtlIHN1cmUgd2UgZ2V0IHRoZSBjYW5vbmljYWwgYmFzZQoJd2hlbiBkZXNjZW5kaW5nIHRocm91Z2ggcHJpbWFyeSBiYXNlcy4KCjIwMDItMTEtMjYgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogZGVjbC5jIChjaGVja19pbml0aWFsaXplcik6IERvbid0IGVycm9yIG9uIGluaXRpYWxpc2F0aW9uIG9mCglhIHNjYWxhciB3aXRoIGEgYnJhY2UtZW5jbG9zZWQgZXhwcmVzc2lvbi4KCjIwMDItMTEtMjYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKERFQ0xfTEFOR19GTEFHXzQpOiBEb2N1bWVudCBtb3JlIHVzZXMuCgkodGVtcGxhdGVfcGFybXNfZXF1YWwpOiBSZW1vdmUgcHJvdG90eXBlLgoJKiB0eXBlY2suYyAoYnV1bGRfaW5kaXJlY3RfcmVmKTogUmVmb3JtYXQuCgoyMDAyLTExLTI1ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGluaXQuYyAoYnVpbGRfdmVjX2luaXQpOiBVc2UgYSBGT1JfU1RNVCBpbnN0ZWFkIG9mIGFuIElGX1NUTVQKCWFuZCBhIERPX1NUTVQuCgoyMDAyLTExLTI1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogdHJlZS5jIChjcF9idWlsZF9xdWFsaWZpZWRfdHlwZV9yZWFsKTogQ29ycmVjdCBoYW5kbGluZyBvZgoJYXJyYXkgdHlwZXMuCgkqIGNsYXNzLmMgKHdhbGtfc3Vib2JqZWN0X29mZnNldHMpOiBGaXggdGhpbmtvLgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBSZWNvcmQgb2Zmc2V0cyBvZiBlbXB0eSBiYXNlcyBpbiBwcmltYXJ5Cgl2aXJ0dWFsIGJhc2VzLgoJKGxheW91dF9jbGFzc190eXBlKTogUmVjb3JkIG9mZnNldHMgb2YgZW1wdHkgYmFzZXMgaW4gZmllbGRzLgoKCSogc2VhcmNoLmMgKGlzX3N1Ym9iamVjdF9vZl9wXzEpOiBGaXggdGhpbmtvLgoJKGxvb2t1cF9maWVsZF9xdWV1ZV9wKTogTGlrZXdpc2UuCgoyMDAyLTExLTI0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAobGF5b3V0X2NsYXNzX3R5cGUpOiBSZXVzZSB0YWlsIHBhZGRpbmcgd2hlbiBsYXlpbmcgb3V0Cgl2aXJ0dWFsIGJhc2VzLgoKMjAwMi0xMS0yMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHJ0dGkuYyAocXVhbGlmaWVyX2ZsYWdzKTogRml4IHRoaW5rby4KCjIwMDItMTEtMjEgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCVJlbW92ZSB0cmFkaXRpb25hbCBDIGNvbnN0cnVjdHMgMS9uLgoJKiBjcC10cmVlLmggKGluaXRfbWV0aG9kLCBzZXRfbWFuZ2xlZF9uYW1lX2Zvcl9kZWNsLAoJYnVpbGRfb3BmbmNhbGwsIGhhY2tfaWRlbnRpZmllciwgbWFrZV90aHVuaywgdXNlX3RodW5rLAoJc3ludGhlc2l6ZV9tZXRob2QsIGltcGxpY2l0bHlfZGVjbGFyZV9mbiwKCXNraXBfYXJ0aWZpY2lhbF9wYXJtc19mb3IsIG9wdGltaXplX2Z1bmN0aW9uLCBjYWxsc19zZXRqbXBfcCwKCW1heWJlX2Nsb25lX2JvZHkpOiBSZW1vdmUgdXNlIG9mIFBBUkFNUy4KCgkqIG1ldGhvZC5jIChkb19idWlsZF9hc3NpZ25fcmVmLCBkb19idWlsZF9jb3B5X2NvbnN0cnVjdG9yLAoJc3ludGhlc2l6ZV9leGNlcHRpb25fc3BlYywgbG9jYXRlX2R0b3IsIGxvY2F0ZV9jdG9yLCBsb2NhdGVfY29weSk6CglMaWtld2lzZS4KCShzeW50aGVzaXplX21ldGhvZCk6IFVzZSAnYm9vbCcgdHlwZSBhbmQgY29uc3RhbnRzIGluc3RlYWQgb2YKCSdpbnQnLgoJKGxvY2F0ZV9jb3B5KTogTGlrZXdpc2UuCgkoaW1wbGljaXRseV9kZWNsYXJlX2ZuKTogTGlrZXdpc2UuCgoJKiBvcHRpbWl6ZS5jIChjYWxsc19zZXRqbXBfciwgdXBkYXRlX2Nsb25lZF9wYXJtLCBkdW1wX2Z1bmN0aW9uKToKCVJlbW92ZSBvbGQtc3R5bGUgZGVjbGFyYXRpb24uCgkobWF5YmVfY2xvbmVfYm9keSk6IFVzZSAnYm9vbCcgdHlwZSBhbmQgY29uc3RhbnRzLgoKMjAwMi0xMS0yMSAgR2xlbiBOYWthbXVyYSAgPGdsZW5AaW1vZHVsby5jb20+CgoJUFIgYysrLzgzNDIKCSogdHlwZWNrLmMgKGdldF9tZW1iZXJfZnVuY3Rpb25fZnJvbV9wdHJmdW5jKTogTWFrZSBzdXJlIHRoYXQgYQoJU0FWRV9FWFBSIGZvciBpbnN0YW5jZV9wdHIgZG9lc24ndCBnZXQgZXZhbHVhdGVkIGZpcnN0IGluc2lkZSBvbmUKCW9mIHRoZSBicmFuY2hlcyBvZiBhIENPTkRfRVhQUi4KCjIwMDItMTEtMTkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwdC5jIChmb3JfZWFjaF90ZW1wbGF0ZV9wYXJtKTogRnJlZSBhbGxvY2F0ZWQgbWVtb3J5LgoJKiBzZWFyY2guYyAoaXNfc3Vib2JqZWN0X29mX3BfMSk6IE5ldyBmdW5jdGlvbi4KCShpc19zdWJvYmplY3Rfb2ZfcCk6IEF2b2lkIHdhbGtpbmcgdmlydHVhbCBiYXNlcyBtdWx0aXBsZSB0aW1lcy4KCjIwMDItMTEtMTkgIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBnKytzcGVjLmMgKGxhbmdfc3BlY2lmaWNfc3BlY19mdW5jdGlvbnMpOiBOZXcuCgoyMDAyLTExLTE1ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogQ2hhbmdlTG9nOiBGb2xsb3cgc3BlbGxpbmcgY29udmVudGlvbnMuCgkqIGNsYXNzLmM6IExpa2V3aXNlLgoJKiBkZWNsMi5jOiBMaWtld2lzZS4KCjIwMDItMTEtMTQgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzZWFyY2guYyAoZGZzX3B1c2hfZGVjbHMpOiBEbyBub3QgdHJ5IHRvIHJlb3JkZXIgZWxlbWVudHMKCTMuLm4gb2YgbWV0aG9kX3ZlYyBpZiBtZXRob2RfdmVjIGhhcyBvbmx5IHR3byBlbGVtZW50cy4KCVJldmVyc2Ugb3JkZXIgb2YgdHdvIHRlc3RzIHRvIGF2b2lkIGFjY2Vzc2luZyB1bmFsbG9jYXRlZAoJbWVtb3J5LgoKMjAwMi0xMS0xNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGRmc19maW5kX2ZpbmFsX292ZXJyaWRlcik6IEFkanVzdCBzbyB0aGF0IHRoZSBtb3N0CglkZXJpdmVkIG9iamVjdCBpcyBhIGJpbmZvLCByYXRoZXIgdGhhbiBhIGNsYXNzIHR5cGUuCgkoZmluZF9maW5hbF9vdmVycmlkZXIpOiBMaWtld2lzZS4KCShhZGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllc18xKTogU2ltcGxpZnkgYWNjb3JkaW5nbHkuCgkoYWRkX3ZjYWxsX29mZnNldCk6IExpa2V3aXNlLgoKMjAwMi0xMS0wOSAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzgzODkKCSogcHQuYyAoaW5zdGFudGlhdGVfdGVtcGxhdGUpOiBQdXNoIGNsYXNzIHNjb3BlIGZvciBtZW1iZXIKCWZ1bmN0aW9ucy4KCShnZXRfbW9zdGx5X2luc3RhbnRpYXRlZF9mdW5jdGlvbl90eXBlKTogTGlrZXdpc2UuICBEb24ndCBjYWxsCgl0c3Vic3Qgb24gY29udGV4dC4gIFJlbW92ZSBDT05URVhUUCBhbmQgVFBBUk1TUCBwYXJhbWV0ZXJzLgoJKiBjcC10cmVlLmggKGdldF9tb3N0bHlfaW5zdGFudGlhdGVkX2Z1bmN0aW9uX3R5cGUpOiBBZGp1c3QuCgkqIG1hbmdsZS5jICh3cml0ZV9lbmNvZGluZywgd3JpdGVfdW5xdWFsaWZpZWRfbmFtZSk6IEFkanVzdC4KCjIwMDItMTEtMDcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChhZGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllc18xKTogQ29ycmVjdCBvcmRlcmluZyBvZgoJdmNhbGwgb2ZmZnNldHMuICBTcGxpdCBvdXQgLi4uCgkoYWRkX3ZjYWxsX29mZnNldCk6IC4uLiBuZXcgZnVuY3Rpb24uCgoJUFIgYysrLzgzMzgKCSogcHQuYyAoZm9yX2VhY2hfdGVtcGxhdGVfcGFybSk6IEFkZCBodGFiIHBhcmFtZXRlci4KCShwcm9jZXNzX3BhcnRpYWxfc3BlY2lhbGl6YXRpb24pOiBBZGp1c3QgY2FsbC4KCShwdXNoX3RlbXBsYXRlX2RlY2xfcmVhbCk6IExpa2V3aXNlLgoJKHBhaXJfZm5fZGF0YSk6IEFkZCB2aXNpdGVkLgoJKGZvcl9lYWNoX3RlbXBsYXRlX3Bhcm1fcik6IEF2b2lkIHdhbGtpbmcgZHVwbGljYXRlcyBtb3JlIHRoYW4KCW9uY2UuCgkodXNlc190ZW1wbGF0ZV9wYXJtcyk6IEFkanVzdCBjYWxsIHRvIGZvcl9lYWNoX3RlbXBsYXRlX3Bhcm0uCgoyMDAyLTExLTA3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoYWRkX2ltcGxpY2l0bHlfZGVjbGFyZWRfbWVtYmVycyk6IFB1dCBpbXBsaWNpdGx5CglkZWNsYXJlZCBmdW5jdGlvbnMgYXQgdGhlIGVuZCBvZiBUWVBFX01FVEhPRHMgd2hlbiAtZmFiaS12ZXJzaW9uCglpcyBhdCBsZWFzdCAyLgoKMjAwMi0xMS0wNSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBkZWNsMi5jIChmaW5pc2hfZmlsZSk6IENvcnJlY3Qgc3BlbGxpbmcuCgoyMDAyLTExLTAzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChidWlsZF9zcGVjaWFsX21lbWJlcl9jYWxsKTogRG8gbm90IHRyeSB0byBsb29rdXAgVlRUcyBieQoJbmFtZS4KCSogY2xhc3MuYyAodnRibF9pbml0X2RhdGEpOiBBZGQgZ2VuZXJhdGVfdmNhbGxfZW50cmllcy4KCShnZXRfdnRhYmxlX2RlY2wpOiBEbyBub3QgbG9vayB1cCB2aXJ0dWFsIHRhYmxlcyBieSBuYW1lLgoJKGNvcHlfdmlydHVhbHMpOiBEbyBub3QgdXNlIEJWX1VTRV9WQ0FMTF9JTkRFWF9QLgoJKHNldF9wcmltYXJ5X2Jhc2UpOiBEbyBub3Qgc2V0IENMQVNTVFlQRV9SVFRJLgoJKGRldGVybWluZV9wcmltYXJ5X2Jhc2UpOiBMaWtld2lzZS4KCShnZXRfbWF0Y2hpbmdfdmlydHVhbCk6IFJlbW92ZS4KCShnZXRfdmNhbGxfaW5kZXgpOiBOZXcgZnVuY3Rpb24uCgkodXBkYXRlX3Z0YWJsZV9lbnRyeV9mb3JfZm4pOiBEbyBub3QgdHJ5IHRvIHVzZSB2aXJ0dWFsIHRodW5rcwoJd2hlbiB0aGV5IGFyZSBub3QgcmVxdWlyZWQuICBBc3NpZ24gdmNhbGwgaW5kaWNlcyBhdCB0aGlzIHBvaW50LgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IERvIG5vdCBzZXQgQ0xBU1NUWVBFX05FRURTX1ZJUlRVQUxfUkVJTklULgoJRG8gdXBkYXRlIGR5bmFtaWNfY2xhc3Nlcy4KCShidWlsZF92dHQpOiBEbyBub3QgYWRkIFZUVHMgdG8gdGhlIHN5bWJvbCB0YWJsZS4KCShidWlsZF9jdG9yX3Z0YmxfZ3JvdXApOiBMaWtld2lzZS4KCShidWlsZF92dGJsX2luaXRpYWxpemVyKTogU2ltcGxpZnkgaGFuZGxpbmcgb2YgdmNhbGwgaW5kaWNlcy4KCShidWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogUHJldGVuZCB0byBidWlsZCB2Y2FsbCBvZmZzZXRzCglmb3IgdGhlIG1vc3QgZGVyaXZlZCBjbGFzcy4KCShhZGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllc18xKTogQnV0IGRvIG5vdCBhY3R1YWxseSBhZGQgdGhlbSB0bwoJdGhlIHZ0YWJsZS4KCSogY3AtdHJlZS5oIChkeW5hbWljX2NsYXNzZXMpOiBOZXcgbWFjcm8uCgkobGFuZ190eXBlX2NsYXNzKTogUmVtb3ZlIHJ0dGkuICBBZGQgdnRhYmxlcy4gIEFkZCB2Y2FsbF9pbmRpY2VzLgoJKENMQVNTVFlQRV9SVFRJKTogUmVtb3ZlLgoJKENMQVNTVFlQRV9ORUVEU19WSVJUVUFMX1JFSU5JVCk6IFJlbW92ZS4KCShDTEFTU1RZUEVfVkNBTExfSU5ESUNFUyk6IE5ldyBtYWNyby4KCShDTEFTU1RZUEVfVlRBQkxFUyk6IExpa2V3aXNlLgoJKEJWX1VTRV9WQ0FMTF9JTkRFWF9QKTogUmVtb3ZlLgoJKGJ1aWxkX3Z0YWJsZV9wYXRoKTogUmVtb3ZlLgoJKiBkZWNsMi5jIChmaW5pc2hfdnRhYmxlX3ZhcmRlY2wpOiBSZW1vdmUuCgkoa2V5X21ldGhvZCk6IFJlbW92ZSAjaWYgMCdkIGNvZGUuCgkoZmluaXNoX3Z0YWJsZV92YXJkZWNsKTogUmVuYW1lIHRvIC4uLgoJKG1heWJlX2VtaXRfdnRhYmxlcyk6IC4uLiB0aGlzLgoJKGZpbmlzaF9maWxlKTogVXNlIGl0LgoJKiBzZWFyY2guYyAobG9va19mb3Jfb3ZlcnJpZGVzX2hlcmUpOiBVcGRhdGUgY29tbWVudC4KCjIwMDItMTEtMDEgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYy83MzUzIHJlZHV4CgkqIGRlY2wyLmMgKGdyb2tmaWVsZCk6IFJlamVjdCBUWVBFX0RFQ0xzIHdpdGggaW5pdGlhbGl6ZXJzLgoKMjAwMi0xMC0zMCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzgxODYKCSogY3AtdHJlZS5oIChBRERSX0lTX0lOVklTSVJFRik6IE5ldyBtYWNyby4KCSogY2FsbC5jIChjb252ZXJ0X2Zvcl9hcmdfcGFzc2luZyk6IFNldCBpdC4KCSogZXhjZXB0LmMgKHN0YWJpbGl6ZV90aHJvd19leHByKTogUmVjdXJzZSBmb3Igc3VjaCBhbiBhcmcuCgoyMDAyLTEwLTMxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChsYW5nX2RlY2xfZmxhZ3MpOiBSZW1vdmUgaW5pdF9wcmlvcml0eS4KCShsYW5nX2RlY2wpOiBBZGQgZGVsdGEuCgkoR0xPQkFMX0lOSVRfUFJJT1JJVFkpOiBSZW1vdmUuCgkoVEhVTktfREVMVEEpOiBSZXZpc2UgZGVmaW5pdGlvbi4KCSogZGVjbDIuYyAoc3RhcnRfb2JqZWN0cyk6IERvbid0IHNldCBHTE9CQUxfSU5JVF9QUklPUklUWS4KCSogZHVtcC5jIChjcF9kdW1wX3RyZWUpOiBEb24ndCBkdW1wIGl0LgoKMjAwMi0xMC0zMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvODE2MAoJKiB0eXBlY2syLmMgKHByb2Nlc3NfaW5pdF9jb25zdHJ1Y3Rvcik6IENhbGwgY29tcGxldGVfYXJyYXlfdHlwZS4KCglQUiBjKysvODE0OQoJKiBkZWNsLmMgKG1ha2VfdHlwZW5hbWVfdHlwZSk6IElzc3VlIGVycm9ycyBhYm91dCBpbnZhbGlkIHJlc3VsdHMuCgoyMDAyLTEwLTMwICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglDb3JlIGlzc3VlIDI4NywgUFIgYysrLzc2MzkKCSogY3AtdHJlZS5oIChsYW5nX3R5cGVfY2xhc3MpOiBBZGQgZGVjbF9saXN0IGZpZWxkLgoJKENMQVNTVFlQRV9ERUNMX0xJU1QpOiBOZXcgbWFjcm8uCgkobWF5YmVfYWRkX2NsYXNzX3RlbXBsYXRlX2RlY2xfbGlzdCk6IEFkZCBkZWNsYXJhdGlvbi4KCSogY2xhc3MuYyAoZHVwbGljYXRlX3RhZ19lcnJvcik6IEluaXRpYWxpemUgQ0xBU1NUWVBFX0RFQ0xfTElTVC4KCSh1bnJldmVyc2VfbWVtYmVyX2RlY2xhcmF0aW9ucyk6IFJldmVyc2UgQ0xBU1NUWVBFX0RFQ0xfTElTVC4KCShtYXliZV9hZGRfY2xhc3NfdGVtcGxhdGVfZGVjbF9saXN0KTogTmV3IGZ1bmN0aW9uLgoJKGFkZF9pbXBsaWNpdGx5X2RlY2xhcmVkX21lbWJlcnMpOiBVc2UgaXQuCgkqIGRlY2wuYyAobWF5YmVfcHJvY2Vzc190ZW1wbGF0ZV90eXBlX2RlY2xhcmF0aW9uKTogTGlrZXdpc2UuCgkocHVzaHRhZyk6IExpa2V3aXNlLgoJKiBmcmllbmQuYyAoYWRkX2ZyaWVuZCk6IExpa2V3aXNlLgoJKG1ha2VfZnJpZW5kX2NsYXNzKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfbWVtYmVyX2RlY2xhcmF0aW9uKTogTGlrZXdpc2UuCgkoYmVnaW5fY2xhc3NfZGVmaW5pdGlvbik6IEluaXRpYWxpemUgQ0xBU1NUWVBFX0RFQ0xfTElTVC4KCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBVc2UgQ0xBU1NUWVBFX0RFQ0xfTElTVAoJdG8gcHJvY2VzcyBtZW1iZXJzIGFuZCBmcmllbmRzIGluIHRoZSBvcmRlciBvZiBkZWNsYXJhdGlvbi4KCjIwMDItMTAtMjkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzgyODcKCSogZGVjbC5jIChmaW5pc2hfZGVzdHJ1Y3Rvcl9ib2R5KTogQ3JlYXRlIHRoZSBsYWJlbCB0byBqdW1wIHRvCgl3aGVuIHJldHVybmluZyBmcm9tIGEgZGVzdHJ1Y3RvciBoZXJlLgoJKGZpbmlzaF9mdW5jdGlvbl9ib2R5KTogUmF0aGVyIHRoYW4gaGVyZS4KCjIwMDItMTAtMjUgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzcyNjYKCSogZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IENoZWNrIHRoYXQgVFJFRV9PUEVSQU5EIDAgb2YgYQoJU0NPUEVfUkVGIGlzIG5vdCBudWxsIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0LgoKMjAwMi0xMC0yNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoYnVpbGRfb3Zlcl9jYWxsKTogVXNlIERFQ0xfQ09OVEVYVCwgbm90CglERUNMX1ZJUlRVQUxfQ09OVEVYVC4KCSogY2xhc3MuYyAobW9kaWZ5X3Z0YWJsZV9lbnRyeSk6IERvbid0IG1lc3Mgd2l0aAoJREVDTF9WSVJUVUFMX0NPTlRFWFQuCgkoc2V0X3ZpbmRleCk6IFJlbW92ZS4KCShzZXRfcHJpbWFyeV9iYXNlKTogUmVtb3ZlIHZmdW5zX3AgcGFyYW1ldGVyLgoJKGRldGVybWluZV9wcmltYXJ5X2Jhc2UpOiBMaWtld2lzZS4KCShtb2RpZnlfYWxsX3Z0YWJsZXMpOiBMaWtld2lzZS4KCShsYXlvdXRfY2xhc3NfdHlwZSk6IExpa2V3aXNlLiAgQWRqdXN0IGNhbGxzIHRvIG90aGVyIGZ1bmN0aW9ucwoJYWNjb3JkaW5nbHkuCgkoZmluaXNoX3N0cnVjdF8xKTogQWRqdXN0IGNhbGxzIHRvIG1vZGlmaWVkIGZ1bmN0aW9ucy4gIFNldAoJREVDTF9WSU5ERVggaGVyZS4KCSogY3AtdHJlZS5oIChsYW5nX3R5cGVfY2xhc3MpOiBSZW1vdmUgdnNpemUuCgkoQ0xBU1NUWVBFX1ZTSVpFKTogUmVtb3ZlLgoJKGxhbmdfZGVjbCk6IFJlbW92ZSB0aHVua3MuCgkoREVDTF9USFVOS1MpOiBBZGp1c3QuCgkoREVDTF9WSVJUVUFMX0NPTlRFWFQpOiBSZW1vdmUuCgkoZHVwbGljYXRlX2RlY2xzKTogRG9uJ3QgY29weSBpdC4KCSogcHQuYyAoYnVpbGRfdGVtcGxhdGVfZGVjbCk6IERvbid0IHNldCBpdC4KCSh0c3Vic3RfZGVjbCk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoZXhwYW5kX3B0cm1lbWZ1bmNfY3N0KTogRG9uJ3QgdXNlIGl0LgoKCSogY2xhc3MuYyAoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IERvbid0IHVzZSBidWlsZF92dGFibGVfZW50cnkuCgkoYnVpbGRfdnRhYmxlX2VudHJ5KTogUmVtb3ZlLgoJKiBjcC10cmVlLmggKEJJTkZPX1ZJUlRVQUxTKTogRXhwYW5kIGRvY3VtZW50YXRpb24uCgkobGFuZ19kZWNsKTogQWRkIHRodW5rcy4KCShERUNMX1RIVU5LUyk6IE5ldyBtYWNyby4KCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBDb3B5IGl0LgoJKiBtZXRob2QuYyAobWFrZV90aHVuayk6IFNpbXBsaWZ5LCBhbmQgYWRkIHRodW5rcyB0byBERUNMX1RIVU5LUy4KCSogc2VtYW50aWNzLmMgKGVtaXRfYXNzb2NpYXRlZF90aHVua3MpOiBTaW1wbGlmeS4KCjIwMDItMTAtMjQgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCglQUiBjKysvNzIyOAoJKiBjcC10cmVlLmggKENMQVNTVFlQRV9SRUFET05MWV9GSUVMRFNfTkVFRF9JTklUKTogQ2hlY2sgdGhhdAoJbGFuZ190eXBlIHN0cnVjdHVyZSBleGlzdHMgYmVmb3JlIGFjY2Vzc2luZyBmaWVsZC4KCShTRVRfQ0xBU1NUWVBFX1JFQURPTkxZX0ZJRUxEU19ORUVEX0lOSVQpOiBOZXcgbWFjcm8uCgkoQ0xBU1NUWVBFX1JFRl9GSUVMRFNfTkVFRF9JTklUKTogU2ltaWxhci4KCShTRVRfQ0xBU1NUWVBFX1JFRl9GSUVMRFNfTkVFRF9JTklUKTogTmV3IG1hY3JvLgoJKiBjbGFzcy5jIChjaGVja19maWVsZF9kZWNscyk6IFVzZSBuZXcgbWFjcm9zLgoJKiB0eXBlY2syLmMgKHByb2Nlc3NfaW5pdF9jb25zdHJ1Y3Rvcik6IFJlbW92ZSByZWR1bmRhbnQgY2hlY2sgZm9yCglleGlzdGVuY2Ugb2YgbGFuZ190eXBlIHN0cnVjdHVyZS4KCjIwMDItMTAtMjQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChlbmRfb2ZfYmFzZSk6IE5ldyBtZXRob2QuCgkoZW5kX29mX2NsYXNzKTogVXNlIGl0LiAgQ2hlY2sgaW5kaXJlY3QgdmlydHVhbCBiYXNlcy4KCgkqIGNsYXNzLmMgKGNoZWNrX2ZpZWxkX2RlY2xzKTogRml4IHR5cG8uCgoyMDAyLTEwLTIzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy84MDY3CgkqIGRlY2wuYyAobWF5YmVfaW5qZWN0X2Zvcl9zY29wZV92YXIpOiBJZ25vcmUgX19GVU5DVElPTl9fIGFuZAoJcmVsYXRlZCB2YXJpYWJsZXMuCgoJUFIgYysrLzc2NzkKCSogc3Bldy5jIChuZXh0X3Rva2VuKTogRG8gbm90IHJldHVybiBhbiBlbmRsZXNzIHN0cmVhbSBvZgoJRU5EX09GX1NBVkVEX0lOUFVUIHRva2Vucy4KCShzbmFyZl9tZXRob2QpOiBBZGQgdGhyZWUgRU5EX09GX1NBVkVEX0lOUFVUIHRva2VucyB0byB0aGUgZW5kIG9mCgl0aGUgY2FjaGVkIHRva2VuIHN0cmVhbS4KCShzbmFyZl9kZWZhcmcpOiBMaWtld2lzZS4KCjIwMDItMTAtMjMgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC1sYW5nLmMgKGNwX3Zhcl9tb2RfdHlwZV9wKTogTmV3OiBDKysgaG9vayBmb3IKCXZhcmlhYmx5X21vZGlmaWVkX3R5cGVfcC4KCSogY3AtdHJlZS5oOiBSZW1vdmUgcHJvdG90eXBlIG9mIHZhcmlhYmx5X21vZGlmaWVkX3R5cGVfcC4KCSogdHJlZS5jICh2YXJpYWJseV9tb2RpZmllZF90eXBlX3ApOiBSZW1vdmU7IG5vdyBpbXBsZW1lbnRlZAoJaW4gbGFuZ3VhZ2UtaW5kZXBlbmRlbnQgY29kZS4KCjIwMDItMTAtMjIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzY1NzkKCSogc3Bldy5jIChzbmFyZl9wYXJlbnRoZXNpemVkX2V4cHJlc3Npb24pOiBOZXcgZnVuY3Rpb24uCgkoc25hcmZfYmxvY2spOiBVc2UgaXQuCgoyMDAyLTEwLTIyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogbWV0aG9kLmMgKHVzZV90aHVuayk6IEFsd2F5cyBjb21wdXRlIHZjYWxsX3ZhbHVlOyBhc3NlcnQgdGhhdAoJaXQgaXMgbm90IHplcm8uICBVc2UgY2FuX291dHB1dF9taV90aHVuazsgdXNlIG91dHB1dF9taV90aHVuawoJZm9yIHZjYWxsIHRodW5rcyBhcyB3ZWxsLgoKMjAwMi0xMC0yMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGVtcHR5X2Jhc2VfYXRfbm9uemVyb19vZmZzZXRfcCk6IE5ldyBmdW5jdGlvbi4KCShsYXlvdXRfbm9uZW1wdHlfYmFzZV9vcl9maWVsZCk6IERvIG5vdCBjaGVjayBmb3IgY29uZmxpY3RzIHdoZW4KCWxheWluZyBvdXQgYSB2aXJ0dWFsIGJhc2UgdXNpbmcgdGhlIEdDQyAzLjIgQUJJLgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBDb3JyZWN0IGNoZWNraW5nIGZvciBwcmVzZW5jZSBvZiBlbXB0eSBjbGFzc2VzCglhdCBub256ZXJvIG9mZnNldHMgd2hlbiBjbGVhcmluZyBDTEFTU1RZUEVfTkVBUkxZX0VNUFRZX1AuCgoJKiBjbGFzcy5jIChpbmNsdWRlX2VtcHR5X2NsYXNzZXMpOiBVc2Ugbm9ybWFsaXplX3JsaS4KCShsYXlvdXRfY2xhc3NfdHlwZSk6IExpa2V3aXNlLgoKCSogZGVjbC5jIChyZXNoYXBlX2luaXQpOiBUd2VhayBoYW5kbGluZyBvZiBjaGFyYWN0ZXIgYXJyYXlzLgoKCVBSIGMrKy84MjE4CgkqIGNwLXRyZWUuaCAobGFuZ190eXBlX2NsYXNzKTogQWRkIGNvbnRhaW5zX2VtcHR5X2NsYXNzX3AuCgkoQ0xBU1NUWVBFX0NPTlRBSU5TX0VNUFRZX0NMQVNTX1ApOiBOZXcgbWFjcm8uCgkqIGNsYXNzLmMgKGNoZWNrX2Jhc2VzKTogVXBkYXRlIENMQVNTVFlQRV9DT05UQUlOU19FTVBUWV9DTEFTU19QLgoJKGNoZWNrX2ZpZWxkX2RlY2xzKTogTGlrZXdpc2UuCgkobGF5b3V0X2NsYXNzX3R5cGUpOiBMaWtld2lzZS4KCShmaW5pc2hfc3RydWN0XzEpOiBJbml0aWFsaXplIGl0LgoJKHdhbGtfc3Vib2JqZWN0X29mZnNldHMpOiBVc2UgaXQgdG8gcHJ1bmUgc2VhcmNoZXMuCgoyMDAyLTEwLTIwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogbWV0aG9kLmMgKHVzZV90aHVuayk6IENvbXB1dGUgdGhlIHZjYWxsIGluZGV4IGFzIGEgSE9TVF9XSURFX0lOVC4KCSogb3B0aW1pemUuYyAob3B0aW1pemVfZnVuY3Rpb24pOiBSZXBsYWNlIEFTTV9PVVRQVVRfTUlfVEhVTksgd2l0aAoJVEFSR0VUX0FTTV9PVVRQVVRfTUlfVEhVTksgaW4gY29tbWVudHMuCgoyMDAyLTEwLTE4ICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChzdGFydF9kZWNsKTogUG9pbnQgdXNlcnMgb2YgdGhlIG9sZCBpbml0aWFsaXplZC0KCXR5cGVkZWYgZXh0ZW5zaW9uIGF0IF9fdHlwZW9mX18uCgoyMDAyLTEwLTE4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZS1sYW5nLmluIChtZXRob2Qubyk6IERlcGVuZCBvbiBUQVJHRVRfSC4KCSogbWV0aG9kLmMgKHRhcmdldC5oKTogSW5jbHVkZSBpdC4KCSh1c2VfdGh1bmspOiBVc2UgdGFyZ2V0IGhvb2tzLiAgVXNlIHZjYWxsIHRodW5rcywgaWYgYXZhaWxhYmxlLgoKMjAwMi0xMC0xOCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGJhc2VfZGVyaXZlZF9mcm9tKTogTWFrZSBzdXJlIHJldHVybiB2YWx1ZSBpcyBhIGJvb2wuCgoyMDAyLTEwLTE4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoZmluZF9maW5hbF9vdmVycmlkZXJfZGF0YV9zKTogUmVtb3ZlIG92ZXJyaWRpbmdfZm4gYW5kCglvdmVycmlkaW5nX2Jhc2UuCgkoZGZzX2Jhc2VfZGVyaXZlZF9mcm9tKTogTmV3IGZ1bmN0aW9uLgoJKGJhc2VfZGVyaXZlZF9mcm9tKTogTGlrZXdpc2UuCgkoZGZzX2ZpbmRfZmluYWxfb3ZlcnJpZGVyKTogVXNlIGJhc2VfZGVyaXZlZF9mcm9tLgoJKGZpbmRfZmluYWxfb3ZlcnJpZGVyKTogQWRqdXN0LgoKMjAwMi0xMC0xOCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzgwODAKCSogc2VtYW50aWNzLmMgKGZpbmlzaF9mb3JfY29uZCwgZmluaXNoX3doaWxlX2NvbmQpOiBEb24ndCBtZXNzCgl3aXRoIGNvbmRpdGlvbiBkZWNscyBpbiBhIHRlbXBsYXRlLgoKMjAwMi0xMC0xNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGFkZF9tZXRob2QpOiBDb21wYXJlIHRlbXBsYXRlIHBhcm1zIHRvby4KCjIwMDItMTAtMTcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzc1ODQKCSogY2xhc3MuYyAoaGFuZGxlX3VzaW5nX2RlY2wpOiBBbGxvdyB0aGUgZGVjbGFyYXRpb24gdXNlZCB0byBiZQoJZnJvbSBhbiBhbWJpZ3VvdXMgYmFzZS4KCgkqIHB0LmMgKGNvbnZlcnRfdGVtcGxhdGVfYXJndW1lbnQpOiBSZXZlcnQgdGhpcyBjaGFuZ2U6CgkJMjAwMi0xMC0xNiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCQkqIHB0LmMgKGNvbnZlcnRfdGVtcGxhdGVfYXJndW1lbnQpOiBEbyBub3QgZm9sZCBub24tdHlwZQoJCXRlbXBsYXRlIHJndW1lbnRzIHdoZW4gaW5zaWRlIGEgdGVtcGxhdGUuCgoJKiBpbml0LmMgKGV4cGFuZF9kZWZhdWx0X2luaXQpOiBIYW5kbGUgYnJhY2UtZW5jbG9zZWQgaW5pdGlhbGl6ZXJzCgljb3JyZWN0bHkuCgoyMDAyLTEwLTE2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogbWFuZ2xlLmMgKHdyaXRlX2V4cHJlc3Npb24pOiBDb3JyZWN0IGhhbmRsaW5nIG9mIGVudW1lcmF0aW9uCgljb25zdGFudHMuCgkod3JpdGVfdGVtcGxhdGVfYXJnKTogTGlrZXdpc2UuCgkqIHB0LmMgKGNvbnZlcnRfdGVtcGxhdGVfYXJndW1lbnQpOiBEbyBub3QgZm9sZCBub24tdHlwZSB0ZW1wbGF0ZQoJYXJndW1lbnRzIHdoZW4gaW5zaWRlIGEgdGVtcGxhdGUuCgoJUFIgYysrLzc0NzgKCSogY3Z0LmMgKGNvbnZlcnRfdG9fcmVmZXJlbmNlKTogQWxsb3cgcmVmZXJlbmNlcyBhcyB0aGUgaW5jb21pbmcKCXR5cGUuCgoyMDAyLTEwLTE2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy83NTI0CgkqIG1ldGhvZC5jIChkb19idWlsZF9hc3NpZ25fcmVmKTogVXNlIGNwX2J1aWxkX3F1YWxpZmllZF90eXBlLCBub3QKCWJ1aWxkX3F1YWxpZmllZF90eXBlLgoKMjAwMi0xMC0xNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVycm9yLmMgKGR1bXBfZXhwcik6IFVzZSByZWFsX3RvX2RlY2ltYWwgZGlyZWN0bHksIGFuZCB3aXRoCgl0aGUgbmV3IGFyZ3VtZW50cy4KCjIwMDItMTAtMTUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKHJlc2hhcGVfaW5pdCk6IEZpeCB0eXBvLgoKCSogY3AtdHJlZS5oIChvcGVyYXRvcl9uYW1lX2luZm9fdCk6IEFkZCBhcml0eS4KCSogbGV4LmMgKGluaXRfb3BlcmF0b3JzKTogSW5pdGlhbGl6ZSBpdC4KCSogbWFuZ2xlLmMgKHdyaXRlX2NvbnZlcnNpb25fb3BlcmF0b3JfbmFtZSk6IE5ldyBmdW5jdGlvbi4KCSh3cml0ZV91bnF1YWxpZmllZF9uYW1lKTogVXNlIGl0LgoJKHdyaXRlX3RlbXBsYXRlX2FyZ3MpOiBBY2NlcHQgdGVtcGxhdGUgYXJndW1lbnRzIGFzIGEgVFJFRV9MSVNULgoJKHdyaXRlX2V4cHJlc3Npb24pOiBBZGp1c3QgaGFuZGxpbmcgb2YgcXVhbGlmaWVkIG5hbWVzIHRvIG1hdGNoCglzcGVjaWZpY2F0aW9uLgoKMjAwMi0xMC0xNSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBjYWxsLmMgKGNhbGxfYnVpbHRpbl90cmFwKTogTmV3IGZuLgoJKGNvbnZlcnRfYXJnX3RvX2VsbGlwc2lzKTogVXNlIGl0LiAgRG93bmdyYWRlIGVycm9yIHRvIHdhcm5pbmcuCgkoYnVpbGRfY2FsbCk6IERvbid0IHNldCBjdXJyZW50X2Z1bmN0aW9uX3JldHVybnNfYWJub3JtYWxseSBvdXRzaWRlCglhIGZ1bmN0aW9uLgoKMjAwMi0xMC0xNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGNoZWNrX2ZpZWxkX2RlY2xzKTogUmVtb3ZlIGVtcHR5X3AgcGFyYW1ldGVyLiAgSW5zdGVhZCwKCWNsZWFyIENMQVNTVFlQRV9FTVBUWV9QLgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBMaWtld2lzZS4KCShidWlsZF9iYXNlX2ZpZWxkcyk6IExpa2V3aXNlLgoJKGNoZWNrX2Jhc2VzX2FuZF9tZW1iZXJzKTogTGlrZXdpc2UuCgkoY3JlYXRlX3Z0YmxfcHRyKTogTGlrZXdpc2UuCgkobGF5b3V0X2NsYXNzX3R5cGUpOiBMaWtld2lzZS4gIEVuc3VyZSB0aGF0IGVtcHR5IGNsYXNzZXMgaGF2ZQoJc2l6ZSB6ZXJvIHdoZW4gdXNlZCBhcyBiYXNlIGNsYXNzZXMgaW4gdGhlIDMuMiBBQkkuCgkoZmluaXNoX3N0cnVjdF8xKTogSW5pdGlhbGl6ZSBDTEFTU1RZUEVfRU1QVFlfUCBhbmQKCUNMQVNTVFlQRV9ORUFSTFlfRU1QVFlfUC4gIEFkanVzdCBjYWxscyB0byBhdm9pZCBwYXNzaW5nIGVtcHR5X3AKCXBhcmFtZXRlci4KCShpc19lbXB0eV9jbGFzcyk6IENvcnJlY3QgZGVmaW5pdGlvbiB3aGVuIHVzaW5nIHBvc3QtMy4yIEFCSS4KCSogY3AtdHJlZS5oIChsYW5nX3R5cGVfY2xhc3MpOiBBZGQgZW1wdHlfcC4KCShDTEFTU1RZUEVfRU1QVFlfUCk6IE5ldyBtYWNyby4KCjIwMDItMTAtMTIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbml0LmMgKGJ1aWxkX2RlbGV0ZSk6IERvIG5vdCBhcHBseSBzYXZlX2V4cHIgZm9yIGFycmF5cy4KCShidWlsZF92ZWNfZGVsZXRlKTogTGlrZXdpc2UuCgoyMDAyLTEwLTE0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChsYXlvdXRfdmFyX2RlY2wpOiBDYWxsIGxheW91dF9kZWNsIGV2ZW4gZm9yIHZhcmlhYmxlcwoJd2hvc2UgdHlwZSBpcyBhbiBhcnJheSB3aXRoIHVuc3BlY2lmaWVkIGJvdW5kcy4KCglQUiBjKysvNzE3NgoJKiBsZXguYyAoZG9faWRlbnRpZmllcik6IEFkZCBhbm90aGVyIG9wdGlvbiBmb3IgdGhlIHBhcnNpbmcKCXBhcmFtZXRlci4KCSogcGFyc2UueSAoZG9faWQpOiBVc2UgaXQuCgoyMDAyLTEwLTExICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldD4KCglQUnMgQysrLzY4MDMsIEMrKy83NzIxIGFuZCBDKysvNzgwMwoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogR3JhY2VmdWxseSBoYW5kbGUgdGVtcGxhdGUtbmFtZSBhcwoJZGVjbC1zcGVjaWZpZXIuCgoyMDAyLTEwLTExICBKYXNvbiBNb2xlbmRhICA8am1vbGVuZGFAYXBwbGUuY29tPgoKCSogaW5pdC5jIChidWlsZF9maWVsZF9saXN0KTogUHJvdmlkZSB1c2VzX3VuaW9uc19wIHdpdGggYSBkZWZhdWx0Cgl2YWx1ZS4KCjIwMDItMTAtMTEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzU2NjEKCSogY3AtdHJlZS5oICh2YXJpYWJseV9tb2RpZmllZF90eXBlX3ApOiBOZXcgZnVuY3Rpb24uCgkoZ3Jva2RlY2xhcmF0b3IpIFRpZ2h0ZW4gY2hlY2sgZm9yIHZhcmlhYmx5IG1vZGlmaWVkIHR5cGVzIGFzCglmaWVsZHMuCgkqIHB0LmMgKGNvbnZlcnRfdGVtcGxhdGVfYXJndW1lbnQpOiBEbyBub3QgYWxsb3cgdmFyaWFibHkgbW9kaWZpZWQKCXR5cGVzIGFzIHRlbXBsYXRlIGFyZ3VtZW50cy4KCSogdHJlZS5jICh2YXJpYWJseV9tb2RpZmllZF90eXBlX3ApOiBOZXcgZnVuY3Rpb24uCgoJKiBORVdTOiBEb2N1bWVudCByZW1vdmFsIG9mICJuZXcgWCA9IC4uLiIgZXh0ZW5zaW9uLgoJKiBjbGFzcy5jIChpbml0aWFsaXplX2FycmF5KTogU2V0IFRSRUVfSEFTX0NPTlNUUlVDVE9SIG9uCglicmFjZS1lbmNsb3NlZCBpbml0aWFsaXplcnMuCgkqIGNwLXRyZWUuaCAoQ1BfQUdHUkVHQVRFX1RZUEVfUCk6IE5ldyBtYWNyby4KCShpbml0aWFsaXplX2xvY2FsX3Zhcik6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCShleHBhbmRfc3RhdGljX2luaXQpOiBMaWtld2lzZS4KCSogZGVjbC5jIChuZXh0X2luaXRpYWxpemFibGVfZmllbGQpOiBOZXcgZnVuY3Rpb24uCgkocmVzaGFwZV9pbml0KTogTGlrZXdpc2UuCgkoY2hlY2tfaW5pdGlhbGl6ZXIpOiBVc2UgdGhlbS4gIEJ1aWxkIGR5bmFtaWMgaW5pdGlhbGl6ZXIgZm9yCglhZ2dyZWdhdGVzIGhlcmUgdG9vLgoJKGluaXRpYWxpemVfbG9jYWxfdmFyKTogU2ltcGxpZnksIGFuZCBpbmNvcnBvcmF0ZSBjbGVhbnVwCglpbnNlcnRpb24gY29kZSBhcyB3ZWxsLgoJKGRlc3Ryb3lfbG9jYWxfdmFyKTogUmVtb3ZlLgoJKGNwX2ZpbmlzaF9kZWNsKTogVGlkeS4KCShleHBhbmRfc3RhdGljX2luaXQpOiBGb2xkIGNoZWNrcyBmb3Igd2hldGhlciBvciBub3QgYSB2YXJpYWJsZQoJbmVlZHMgaW5pdGlhbGl6YXRpb24gaW50byB0aGlzIGZ1bmN0aW9uLiAgU2ltcGxpZnkuCgkqIGRlY2wyLmMgKGRvX3N0YXRpY19pbml0aWFsaXphdGlvbik6IFNpbXBsaWZ5LgoJKiBpbml0LmMgKGJ1aWxkX2luaXQpOiBEbyBub3Qgc2V0IFRSRUVfU0lERV9FRkZFQ1RTIHdoZW4gaXQgd2lsbAoJYmUgZG9uZSBmb3IgdXMgYXV0b21hdGljYWxseS4KCShleHBhbmRfZGVmYXVsdF9pbml0KTogSGFuZGxlIGJyYWNlLWVuY2xvc2VkIGluaXRpYWxpemVycwoJY29ycmVjdGx5LgoJKGV4cGFuZF9hZ2dyX2luaXRfMSk6IFJlbW92ZSBSVEwtZ2VuZXJhdGlvbiBjb2RlLgoJKGJ1aWxkX3ZlY19pbml0KTogUmVtb3ZlICJuZXcgWCA9IC4uLiIgc3VwcG9ydC4KCSogcGFyc2UueSAobmV3X2luaXRpYWxpemVyKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoZ2V0X3BzZXVkb190aV9pbml0KTogU2V0IFRSRUVfSEFTX0NPTlNUUlVDVE9SIG9uCglicmFjZS1lbmNsb3NlZCBpbml0aWFsaXplci4KCShjcmVhdGVfcHNldWRvX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKiB0eXBlY2syLmMgKHN0b3JlX2luaXRfdmFsdWUpOiBEb24ndCB0cnkgdG8gaGFuZGxlIGRpZ2VzdF9pbml0CgliZWluZyBjYWxsZWQgbW9yZSB0aGFuIG9uY2UuCgkoZGlnZXN0X2luaXQpOiBUaWR5IGhhbmRsaW5nIG9mIGJyYWNlLWVuY2xvc2VkIGluaXRpYWxpemVycy4KCjIwMDItMTAtMTAgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGRlY2wuYyAodHlwZW5hbWVfaGFzaCk6IFVzZSBodGFiX2hhc2hfcG9pbnRlci4KCjIwMDItMTAtMTAgIEppbSBXaWxzb24gIDx3aWxzb25AcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogRG9uJ3QgY2FsbCBkZWNsX2F0dHJpYnV0ZXMuCgoyMDAyLTEwLTA5ICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMvNzM1MwoJKiBkZWNsLmMgKHN0YXJ0X2RlY2wpOiBVbmNvbmRpdGlvbmFsbHkgaXNzdWUgZXJyb3IgZm9yCgkndHlwZWRlZiBmb28gPSBiYXInLgoJKGNwX2ZpbmlzaF9kZWNsKTogUmVtb3ZlIHNwZWNpYWwgY2FzZSBmb3IgVFlQRV9ERUNMIHdpdGggaW5pdGlhbGl6ZXIuCgkoZ3Jva2RlY2xhcmF0b3IpOiBSZW1vdmUgcmVkdW5kYW50IGVycm9yIGZvciAndHlwZWRlZiBmb28gPSBiYXInLgoKMjAwMi0xMC0wOSAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogZGVjbDIuYyAocHJ1bmVfdnRhYmxlX3ZhcmRlY2wpOiBEZWxldGUgdW51c2VkIGZ1bmN0aW9uLgoKMjAwMi0xMC0wMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNzc1NAoJKiBkZWNsMi5jIChmaW5pc2hfYW5vbl91bmlvbik6IERvIG5vdCBleHBhbmQgYW5vbnltb3VzIHVuaW9ucyB3aGVuCglwcm9jZXNpbmcgdGVtcGxhdGUgZnVuY3Rpb25zLgoJKiBwdC5jICh0c3Vic3RfZGVjbCwgY2FzZSBWQVJfREVDTCk6IFRyeSB0byBjb21wbGV0ZSB0aGUgdmFyaWFibGUKCXR5cGUuIENhbGwgbGF5b3V0X2RlY2wuCgkodHN1YnN0X2V4cHIsIGNhc2UgREVDTF9TVE1UKTogSGFuZGxlIGFub255bW91cyB1bmlvbnMuCgoyMDAyLTEwLTA3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZGVjbDIuYywgcHQuYzogUmV2ZXJ0IGMrKy83NzU0IGZpeC4KCjIwMDItMTAtMDUgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy83ODA0CgkqIGVycm9yLmMgKGR1bXBfZXhwcikgW1JFQUxfQ1NUXTogT3V0cHV0IGluIGRlY2ltYWwgZm9ybWF0LgoKMjAwMi0xMC0wMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNzkzMQoJKiBwdC5jIChmb3JfZWFjaF90ZW1wbGF0ZV9wYXJtX3IpOiBIYW5kbGUgQkFTRUxJTktzLgoKCVBSIGMrKy83NzU0CgkqIGRlY2wyLmMgKGZpbmlzaF9hbm9uX3VuaW9uKTogRG8gbm90IGV4cGFuZCBhbm9ueW1vdXMgdW5pb25zIHdoZW4KCXByb2Nlc2luZyB0ZW1wbGF0ZSBmdW5jdGlvbnMuCgkqIHB0LmMgKHRzdWJzdF9kZWNsLCBjYXNlIFZBUl9ERUNMKTogVHJ5IHRvIGNvbXBsZXRlIHRoZSB2YXJpYWJsZQoJdHlwZS4gQ2FsbCBsYXlvdXRfZGVjbC4KCSh0c3Vic3RfZXhwciwgY2FzZSBERUNMX1NUTVQpOiBIYW5kbGUgYW5vbnltb3VzIHVuaW9ucy4KCjIwMDItMTAtMDMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzgwMDYKCSogbWFuZ2xlLmMgKENMQVNTVFlQRV9URU1QTEFURV9JRF9QKTogSGFuZGxlIGluc3RhbmNlcyBvZiB0ZW1wbGF0ZQoJdGVtcGxhdGUgcGFyYW1ldGVycy4KCShnbG9iYWxzKTogQWRkIGVudGl0eSBhbmQgbmVlZF9hYmlfd2FybmluZy4KCShkZWNsX2lzX3RlbXBsYXRlX2lkKTogVXNlIFRZUEVfVEVNUExBVEVfSU5GTywgbm90CglDTEFTU1RZUEVfVEVNUExBVEVfSU5GTy4KCShpc19zdGRfc3Vic3RpdHV0aW9uKTogVXNlIENMQVNTVFlQRV9USV9URU1QTEFURSwgbm90CglUWVBFX1RJX1RFTVBMQVRFLgoJKHdyaXRlX3ByZWZpeCk6IEhhbmRsZSB0eXBlbmFtZSB0eXBlcyBjb3JyZWN0bHkuCgkod3JpdGVfdGVtcGxhdGVfcHJlZml4KTogSGFuZGxlIHRlbXBsYXRlIHRlbXBsYXRlIHBhcmFtZXRlcnMKCWNvcnJlY3RseS4KCShzdGFydF9tYW5nbGluZyk6IEFkZCBlbnRpdHkgcGFyYW1ldGVyLgoJKGZpbmlzaF9tYW5nbGluZyk6IFdhcm4gYWJvdXQgbmFtZXMgd2hvc2UgbWFuZ2xpbmcgd2lsbCBjaGFuZ2UuCgkobWFuZ2xlX2RlY2xfc3RyaW5nKTogQWRqdXN0LgoJKG1hbmdsZV90eXBlX3N0cmluZyk6IExpa2V3aXNlLgoJKG1hbmdsZV9zcGVjaWFsX2Zvcl90eXBlKTogTGlrZXdpc2UuCgkobWFuZ2xlX2N0b3JfdnRibF9mb3JfdHlwZSk6IExpa2V3aXNlLgoJKG1hbmdsZV90aHVuayk6IExpa2V3aXNlLgoJKG1hbmdsZV9ndWFyZF92YXJpYWJsZSk6IExpa2V3aXNlLgoJKG1hbmdsZV9yZWZfaW5pdF92YXJpYWJsZSk6IExpa2V3aXNlLgoKMjAwMi0xMC0wMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNzE4OC4KCSogY3AtdHJlZS5kZWYgKENUT1JfSU5JVElBTElaRVIpOiBVc2Ugb25lIHNsb3QsIG5vdCB0d28uCgkqIGNwLXRyZWUuaCAoZW1pdF9iYXNlX2luaXQpOiBSZW5hbWUgdG8gLi4uLgoJKGVtaXRfbWVtX2luaXRpYWxpemVycyk6IC4uLiB0aGlzLgoJKGV4cGFuZF9tZW1iZXJfaW5pdCk6IENoYW5nZSBwcm90b3R5cGUuCgkqIGluaXQuYyAocGVyZm9ybV9tZW1iZXJfaW5pdCk6IENvbXB1dGUgZXhwbGljaXQsIHJhdGhlciB0aGFuCglyZXF1aXJpbmcgaXQgYXMgYSBwYXJhbWV0ZXIuCgkoc29ydF9tZW1iZXJfaW5pdCk6IFJlbmFtZSB0byAuLi4KCShzb3J0X21lbV9pbml0aWFsaXplcnMpOiAuLi4gdGhpcy4gIFByb2Nlc3MgYmFzZXMgYW5kIGRhdGEgbWVtYmVycwoJdG9nZXRoZXIuCgkoc29ydF9iYXNlX2luaXQpOiBSZW1vdmUuCgkoZW1pdF9iYXNlX2luaXQpOiBSZW5hbWUgdG8gLi4uCgkoZW1pdF9tZW1faW5pdGlhbGl6ZXJzKTogLi4uIHRoaXMuCgkoZXhwYW5kX2FnZ3JfdmJhc2VfaW5pdF8xKTogUmVtb3ZlLgoJKGNvbnN0cnVjdF92aXJ0dWFsX2Jhc2VzKTogUmVuYW1lIHRvIC4uLgoJKGNvbnN0cnVjdF92aXJ0dWFsX2Jhc2UpOiAuLi4gdGhpcy4KCShleHBhbmRfbWVtYmVyX2luaXQpOiBSZXdvcmsgaGFuZGxpbmcgb2YgYmFzZSBpbml0aWFsaXplcnMuCgkqIG1ldGhvZC5jIChkb19idWlsZF9jb3B5X2NvbnN0cnVjdG9yKTogVXNlCglmaW5pc2hfbWVtX2luaXRpYWxpemVycy4KCSogcGFyc2UueSAobWVtYmVyX2luaXQpOiBBZGp1c3QgY2FsbHMgdG8gZXhwYW5kX21lbWJlcl9pbml0LgoJKiBwdC5jICh0c3Vic3RfZXhwcik6IFNpbXBsaWZ5IENUT1JfSU5JVElBTElaRVIgY2FzZS4KCSh0c3Vic3RfaW5pdGlhbGl6ZXJfbGlzdCk6IFVzZSBleHBhbmRfbWVtYmVyX2luaXQuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfbWVtX2ludGlhaWxpemVycyk6IFNpbXBsaWZ5LgoKMjAwMi0xMC0wMiAgTWF0dCBBdXN0ZXJuICA8YXVzdGVybkBhcHBsZS5jb20+CgkqIGRlY2wuYyAod2Fsa192dGFibGVzX3IpOiBGaXhlZCB0eXBvIHRoYXQgY2F1c2VkIHJlc3VsdCB0bwoJbmV2ZXIgZ2V0IGEgbm9uemVybyB2YWx1ZS4KCjIwMDItMTAtMDIgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCVBSIG9wdGltaXphdGlvbi82NjI3CgkqIGNwLXRyZWUuaCAoZW51bSBwdHJtZW1mdW5jX3ZiaXRfd2hlcmVfdCk6IERlbGV0ZSBkZWZpbml0aW9uCglmcm9tIGhlcmUsIGFuZCBtb3ZlIGl0IHRvIHRyZWUuaC4KCSogZGVjbC5jIChjeHhfaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBJZiBzdG9yaW5nIHRoZSB2Yml0CglpbiBmdW5jdGlvbiBwb2ludGVycywgZW5zdXJlIHRoYXQgZm9yY2VfYWxpZ25fZnVuY3Rpb25zX2xvZwoJaXMgYXRsZWFzdCBvbmUuCgoyMDAyLTEwLTAyICBNYXR0IEF1c3Rlcm4gIDxhdXN0ZXJuQGFwcGxlLmNvbT4KCgkqIGNsYXNzLmMgKGNoZWNrX2ZpZWxkX2RlY2xzKTogQ2hhbmdlZCB3YXJuaW5nIGFib3V0IGNvbnN0IG1lbWJlcgoJdmFyaWFibGVzIHNvIHRoYXQgaXQgZG9lc24ndCBnZXQgaXNzdWVkIGZvciBhIGNsYXNzIGFnZ3JlZ2F0ZS4KCjIwMDItMTAtMDEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGNwX2ZpbmlzaF9kZWNsKTogTWFrZSBzdXJlIGFycmF5IHR5cGVzIGFyZSBsYWlkIG91dCwKCWV2ZW4gaWYgdGhlIGFycmF5IGJvdW5kcyBhcmUgdW5rbm93bi4KCjIwMDItMTAtMDEgIFN0ZXZlIEVsbGNleSAgPHNqZUBjdXAuaHAuY29tPgoKCSogY2xhc3MuYyAoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IENoYW5nZSBidWlsZF9jX2Nhc3QKCXRvIGJ1aWxkMS4KCjIwMDItMTAtMDEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGNwX2ZpbmlzaF9kZWNsKTogTWFrZSBzdXJlIGFycmF5IHR5cGVzIGFyZSBsYWlkIG91dCwKCWV2ZW4gaWYgdGhlIGFycmF5IGJvdW5kcyBhcmUgdW5rbm93bi4KCgkqIGRlY2wuYyAoY3BfZmluaXNoX2RlY2wpOiBDb3JyZWN0IGNoZWNrIGZvciBkeW5hbWljCglpbml0aWFsaXphdGlvbiBvZiB0aHJlYWQtbG9jYWwgc3RvcmFnZS4KCjIwMDItMDktMzAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVlLmMgKHJlYWxseV9vdmVybG9hZGVkX2ZuKTogVEVNUExBVEVfSURfRVhQUnMgYXJlIGFsc28KCW92ZXJsb2FkZWQuCgoyMDAyLTA5LTMwICBTdGV2ZSBFbGxjZXkgIDxzamVAY3VwLmhwLmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBBZGQgY2FzdC4KCShhZGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllc18xKToKCVVzZSBUQVJHRVRfVlRBQkxFX0RBVEFfRU5UUllfRElTVEFOQ0UgZm9yIG9mZnNldC4KCjIwMDItMDktMzAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jICh3YWxrX3N1Ym9iamVjdF9vZmZzZXRzKTogQ29ycmVjdCB0aGUgY2FsY3VsYXRpb24gb2YKCW9mZnNldHMgZm9yIHZpcnR1YWwgYmFzZXMuICBDb3JyZWN0IHRoZSBjb3VudGluZyBvZiBhcnJheQoJZWxlbWVudHMuCgkobGF5b3V0X25vbmVtcHR5X2Jhc2Vfb3JfZmllbGQpOiBTaW1wbGlmeS4gIENvcnJlY3QgdGhlCgljYWxjdWxhdGlvbiBvZiBvZmZzZXRzIHRvIGJlIHByb3BhZ2F0ZWQgdGhyb3VnaCB0aGUgYmluZm8KCWhpZXJhcmNoeS4KCShidWlsZF9iYXNlX2ZpZWxkKTogQXZvaWQgY3JlYXRpbmcgYSBGSUVMRF9ERUNMIGZvciBlbXB0eSBiYXNlcy4KCUFkZCB0aGUgRklFTERfREVDTCB0byBUWVBFX0ZJRUxEUy4KCShidWlsZF9iYXNlX2ZpZWxkcyk6IEFkanVzdCBhY2NvcmRpbmdseS4KCShsYXlvdXRfdmlydHVhbF9iYXNlcyk6IFVzZSBidWlsZF9iYXNlX2ZpZWxkLgoJKGVuZF9vZl9jbGFzcyk6IFJldHVybiBhIHRyZWUsIG5vdCBhbiBpbnRlZ2VyLgoJKHdhcm5fYWJvdXRfYW1iaWd1b3VzX2RpcmVjdF9iYXNlcyk6IFJlbmFtZSB0byAuLi4KCSh3YXJuX2Fib3V0X2FtYmlndW91c19iYXNlcyk6IC4uLiB0aGlzLgoJKGluY2x1ZGVfZW1wdHlfY2xhc3Nlcyk6IE5ldyBmdW5jdGlvbi4KCShsYXlvdXRfY2xhc3NfdHlwZSk6IENyZWF0ZSBhbiBhbHRlcm5hdGl2ZSB2ZXJzaW9uIG9mIHRoZSB0eXBlIHRvCgliZSB1c2VkIHdoZW4gYXMgYSBiYXNlIGNsYXNzIHR5cGUuICBEbyBub3QgY2FsbAoJZmluaXNoX3JlY29yZF9sYXlvdXQgdW50aWwgd2UgYXJlIGRvbmUgbGF5aW5nIG91dCB0aGUgY2xhc3MuCgkqIGNwLXRyZWUuaCAobGFuZ190eXBlX2NsYXNzKTogUmVtb3ZlIHNpemUsIHNpemVfdW5pdC4gIEFkZAoJYXNfYmFzZS4KCShDTEFTU1RZUEVfU0laRSk6IFJlaW1wbGVtZW50LgoJKENMQVNTVFlQRV9TSVpFX1VOSVQpOiBMaWtld2lzZS4KCShDTEFTU1RZUEVfQUxJR04pOiBMaWt3ZWlzZS4KCShDTEFTU1RZUEVfVVNFUl9BTElHTik6IExpa2V3aXNlLgoJKENMQVNTVFlQRV9BU19CQVNFKTogTmV3IG1hY3JvLgoJKERFQ0xfSU5JVElBTElaRURfUCk6IExpa2V3aXNlLgoJKGV4dHJhY3RfaW5pdCk6IFJlbW92ZSBwcm90b3R5cGUuCgkoYnVpbGRfZm9yY2VkX3plcm9faW5pdCk6IFJlbmFtZSB0byAuLi4KCShidWlsZF96ZXJvX2luaXQpOiAuLi4gdGhpcy4KCShmb3JjZV9zdG9yZV9pbml0X3ZhbHVlKTogUmVtb3ZlLgoJKiBkZWNsLmMgKG9ic2N1cmVfY29tcGxleF9pbml0KTogUmVtb3ZlLgoJKGR1cGxpY2F0ZV9kZWNscyk6IENvcHkgREVDTF9JTklUSUFMSVpFRF9QLgoJKGNoZWNrX2luaXRpYWxpemVyKTogRG8gbm90IGxlYXZlIGp1bmsgaW4gREVDTF9JTklUSUFMLgoJKGNwX2ZpbmlzaF9kZWNsKTogSGFuZGxlIHplcm8taW5pdGlhbGl6YXRpb24gb2YgZW50aXRpZXMgd2l0aAoJc3RhdGljIHN0b3JhZ2UgZHVyYXRpb24uCgkqIGV4cHIuYyAoZXh0cmFjdF9pbml0KTogUmVtb3ZlLgoJKiBpbml0LmMgKGJ1aWxkX2ZvcmNlZF96ZXJvX2luaXQpOiBSZW1vdmUuCgkoYnVpbGRfemVyb19pbml0KTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX2RlZmF1bHRfaW5pdCk6IFVzZSBpdC4KCShidWlsZF9maWVsZF9saXN0KTogU2tpcCBGSUVMRF9ERUNMcyBmb3IgYmFzZSBzdWJvYmplY3RzLgoJKHB1c2hfYmFzZV9jbGVhbnVwcyk6IExpa2V3aXNlLgoJKiBtZXRob2QuYyAoZG9fYnVpbGRfYXNzaWduX3JlZik6IExpa2V3aXNlLgoJKHN5bnRoZXNpemVfZXhjZXB0aW9uX3NwZWMpOiBMaWtld2lzZS4KCSogcHQuYyAodHN1YnN0X2RlY2wpOiBDbGVhciBERUNMX0lOSVRJQUxJWkVEX1AuCgkocmVnZW5lcmF0ZV9kZWNsX2Zyb21fdGVtcGxhdGUpOiBUbyBub3Qgc2V0IERFQ0xfSU5JVElBTCBmb3IgYQoJc3RhdGljIGRhdGEgbWVtYmVyIHdob3NlIGluaXRpYWxpemF0aW9uIHRvb2sgcGxhY2UgaW4gaXRzIGNsYXNzLgoJKGluc3RhbnRpYXRlX2RlY2wpOiBEbyBub3QgcGFzcyBhbiBpbml0aWFsaXplciB0byBjcF9maW5pc2hfZGVjbAoJaW4gdGhhdCBzaXR1YXRpb24uCgkqIHNlYXJjaC5jIChkZnNfcHVzaF9kZWNscyk6IFNraXAgRklFTERfREVDTHMgZm9yIGJhc2Ugc3Vib2JqZWN0cy4KCShkZnNfdW51c2VfZmllbGRzKTogTGlrZXdpc2UuCgkqIHRyZWUuYyAocG9kX3R5cGVfcCk6IEhhbmRsZSBlcnJvcl9tYXJrX25vZGUuCgkoemVyb19pbml0X3ApOiBMaWtld2lzZS4KCSogdHlwZWNrLmMgKGxvb2t1cF9hbm9uX2ZpZWxkKTogU2tpcCBGSUVMRF9ERUNMcyBmb3IgYmFzZQoJc3Vib2JqZWN0cy4KCSogdHlwZWNrMi5jIChzdG9yZV9pbml0X3ZhbHVlKTogUmVtb3ZlICNpZiAwJ2QgY29kZS4KCShmb3JjZV9zdG9yZV9pbml0X3ZhbHVlKTogUmVtb3ZlLgoJKHByb2Nlc3NfaW5pdF9jb25zdHJ1Y3Rvcik6IFVzZSBidWlsZF96ZXJvX2luaXQuCgoyMDAyLTA5LTI5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy83Nzg4CgkqIHJ0dGkuYyAodW5lbWl0dGVkX3RpbmZvX2RlY2xfcCk6IENoZWNrIGl0IGhhcyBhIGZpZWxkLgoKMjAwMi0wOS0yOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNwLXRyZWUuaDogRml4IGNvbW1lbnQgdHlwb3MuCgkqIGRlY2wuYzogTGlrZXdpc2UuCgkqIHB0LmM6IExpa2V3aXNlLgoKMjAwMi0wOS0yNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwL2NsYXNzLmMgKGNvbnRhaW5zX2VtcHR5X2NsYXNzX3ApOiBOZXcgbWV0aG9kLgoJKHdhbGtfc3Vib2JqZWN0X29mZnNldHMpOiBDb3JyZWN0IGNvbXB1dGF0aW9uIG9mIGZpZWxkIG9mZnNldC4KCShsYXlvdXRfZW1wdHlfYmFzZSk6IENvcnJlY3QgcGxhY2VtZW50IG9mIGVtdHB5IGJhc2UgY2xhc3Nlcy4KCShsYXlvdXRfY2xhc3NfdHlwZSk6IFdhcm4gYWJvdXQgQUJJIGNoYW5nZXMuCgoyMDAyLTA5LTIzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AvY2xhc3MuYyAobGF5b3V0X3ZpcnR1YWxfYmFzZXMpOiBEbyBub3Qgcm91bmQgdGhlIHNpemUgb2YgdGhlCgl0eXBlIHRvIGEgbXVsdGlwbGUgb2YgdGhlIGFsaWdubWVudCBiZWZvcmUgbGF5aW5nIG91dCB2aXJ0dWFsIGJhc2VzLgoJKGxheW91dF9jbGFzc190eXBlKTogQ29ycmVjdCBoYW5kbGluZyBvZiBiaXQtZmllbGRzIHRoYXQgYXJlIHdpZGVyCgl0aGFuIHRoZWlyIHR5cGUgaW5zaWRlIHVuaW9ucy4gIFJvdW5kIHRoZSBzaXplIG9mIHRoZSB0eXBlIHRvIGEKCWV2ZW4gbnVtYmVyIG9mIGJ5dGVzIHdoZW4gY29tcHV0aW5nIHRoZSBzaXplIHdpdGhvdXQgdmlydHVhbAoJYmFzZXMuCgkqIGNwL2NwLXRyZWUuaCAoYWJpX3ZlcnNpb25fYXRfbGVhc3QpOiBOZXcgbWFjcm8uCgoyMDAyLTA5LTIxICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogQ2hhbmdlTG9nOiBGb2xsb3cgc3BlbGxpbmcgY29udmVudGlvbnMuCgkqIENoYW5nZUxvZy4yOiBMaWtld2lzZS4KCSogY2FsbC5jOiBMaWtld2lzZS4KCSogY2xhc3MuYzogTGlrZXdpc2UuCgkqIGNwLXRyZWUuaDogTGlrZXdpc2UuCgkqIGN2dC5jOiBMaWtld2lzZS4KCSogZGVjbC5jOiBMaWtld2lzZS4KCSogZGVjbDIuYzogTGlrZXdpc2UuCgkqIGV4Y2VwdC5jOiBMaWtld2lzZS4KCSogZnJpZW5kLmM6IExpa2V3aXNlLgoJKiBnKytzcGVjLmM6IExpa2V3aXNlLgoJKiBpbml0LmM6IExpa2V3aXNlLgoJKiBsZXguYzogTGlrZXdpc2UuCgkqIG1hbmdsZS5jOiBMaWtld2lzZS4KCSogbWV0aG9kLmM6IExpa2V3aXNlLgoJKiBvcGVyYXRvcnMuZGVmOiBMaWtld2lzZS4KCSogb3B0aW1pemUuYzogTGlrZXdpc2UuCgkqIHB0LmM6IExpa2V3aXNlLgoJKiBydHRpLmM6IExpa2V3aXNlLgoJKiBzZWFyY2guYzogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jOiBMaWtld2lzZS4KCSogc3Bldy5jOiBMaWtld2lzZS4KCSogdHJlZS5jOiBMaWtld2lzZS4KCSogdHlwZWNrLmM6IExpa2V3aXNlLgoKMjAwMi0wOS0xOCAgRGV2YW5nIFBhdGVsICA8ZHBhdGVsQGFwcGxlLmNvbT4KCgkqIGNwL2NwLXRyZWUuaDogTmV3IHByb3RvdHlwZSBmb3Igd2Fsa192dGFibHMoKS4KCSogY3AvZGVjbC5jICh3YWxrX3Z0YWJsZXNfcik6IE5ldyBmdW5jdGlvbi4KCShzdHJ1Y3QgY3BfYmluZGluZ19sZXZlbCk6IEFkZCBuZXcgbWVtYmVycywgbmFtZXNwYWNlcywKCW5hbWVzX3NpemUgYW5kIHZ0YWJsZXMuCgkoYWRkX2RlY2xfdG9fbGV2ZWwpOiBBZGQgZGVjbCBpbiBuYW1lc3BhY2VzIG9yIHZ0YWJsZXMKCWNoYWluLCBpZiBjb25kaXRpb25zIG1hdGNoLgoJKHdhbGtfdnRhYmxlcyk6IE5ldyBmdW5jdGlvbi4KCSh3YWxrX25hbWVzcGFjZXNfcik6IFRyYXZlcnMgc2VwYXJhdGUgbmFtZXNwYWNlIGNoYWluCglmb3IgbmFtZXNwYWNlIGRlY2xzLgoJKHdyYXB1cF9nbG9iYWxzX2Zvcl9uYW1lc3BhY2UpOiBVc2UgbmFtZXNfc2l6ZSBpbnN0ZWFkCglvZiBsaXN0X2xlbmd0aCgpLgoJKiBjcC9kZWNsMi5jIChmaW5pc2hfZmlsZSk6IFVzZSB3YWxrX3Z0YWJsZXMoKSBpbnN0ZWFkIG9mCgl3YWxrX2dsb2JhbHMoKSB0byB3YWxrIHZ0YWJsZSBkZWNscy4KCjIwMDItMDktMTggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogVXNlIGFzc2VydCwgbm90IGludGVybmFsX2Vycm9yLiBEb24ndAoJSUNFIHdpdGggaW52YWxpZCBwb2ludGVycyAmIHJlZmVyZW5jZXMuCgoyMDAyLTA5LTE3ICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZS1sYW5nLmluOiBSZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gdGhlIGRlbWFuZ2xlci4KCSogY3h4ZmlsdC5jOiBNb3ZlZCB0byBiaW51dGlscy4KCjIwMDItMDktMTYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzc3MTgKCSogcHQuYyAodHN1YnN0X2RlY2wpOiBSZW1vdmUgYXNzZXJ0LgoKCVJlbW92ZSBEUiAyOTUgaW1wbGVtZW50YXRpb24uCgkqIHB0LmMgKGNoZWNrX2N2X3F1YWxzX2Zvcl91bmlmeSk6IERpc2FibGUgZnVuY3Rpb24gJiBtZXRob2QgY2FzZXMuCgkqIHRyZWUuYyAoY3BfYnVpbGRfcXVhbGlmaWVkX3R5cGVfcmVhbCk6IExpa2V3aXNlLiBEb24ndCB3YXJuCglhYm91dCBpZ25vcmluZyB2b2xhdGlsZSBxdWFsaWZpZXJzLgoKCSogc2VhcmNoLmMgKGxvb2t1cF9tZW1iZXIpOiBDb3JyZWN0IGRvY3VtZW50YXRpb24uCgoyMDAyLTA5LTE2ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGNwLXRyZWUuaCAodW5pb24gbGFuZ190cmVlX25vZGUpOiBBZGQgY2hhaW5fbmV4dCBvcHRpb24uCgoyMDAyLTA5LTE2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcGFyc2UueSAocGFyc2VfZmluaXNoX2NhbGxfZXhwcik6IENoZWNrIGxvb2t1cF9tZW1iZXIgcmVzdWx0LgoKCVBSIGMrKy83MDE1CgkqIHNlbWFudGljLmMgKGZpbmlzaF9hc21fc3RtdCk6IEZpeCBvcGVyYW5kL291dHB1dF9vcGVyYW5kcwoJdGhpbmtvLgoJKiB0eXBlY2suYyAoY19leHBhbmRfYXNtX29wZXJhbmRzKTogUHJvdGVjdCBmcm9tIGVycm9yX21hcmtfbm9kZS4KCjIwMDItMDktMTUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzc5MTkKCSogY2FsbC5jIChidWlsZF9vdmVyX2NhbGwpOiBDb252ZXJ0IHRoaXMgcG9pbnRlciBmb3IgZm5zIGZvdW5kIGJ5Cgl1c2luZyBkZWNscy4KCjIwMDItMDktMTUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBDaGFuZ2VMb2c6IEZvbGxvdyBzcGVsbGluZyBjb252ZW50aW9ucy4KCSogQ2hhbmdlTG9nLjE6IExpa2V3aXNlLgoKMjAwMi0wOS0xNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNzc2OAoJKiBwdC5jIChidWlsZF90ZW1wbGF0ZV9kZWNsKTogQ29weSBERUNMX0RFU1RSVUNUT1JfUC4KCjIwMDItMDktMTQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBlcnJvci5jOiBGaXggY29tbWVudCBmb3JtYXR0aW5nLgoJKiBleGNlcHQuYzogTGlrZXdpc2UuCgkqIGV4cHIuYzogTGlrZXdpc2UuCgkqIGZyaWVuZC5jOiBMaWtld2lzZS4KCSogZysrc3BlYy5jOiBMaWtld2lzZS4KCSogaW5pdC5jOiBMaWtld2lzZS4KCSogbGV4LmM6IExpa2V3aXNlLgoJKiBtYW5nbGUuYzogTGlrZXdpc2UuCgkqIG1ldGhvZC5jOiBMaWtld2lzZS4KCSogb3B0aW1pemUuYzogTGlrZXdpc2UuCgkqIHB0LmM6IExpa2V3aXNlLgoJKiBydHRpLmM6IExpa2V3aXNlLgoJKiBzZWFyY2guYzogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jOiBMaWtld2lzZS4KCSogc3Bldy5jOiBMaWtld2lzZS4KCSogdHJlZS5jOiBMaWtld2lzZS4KCSogdHlwZWNrLmM6IExpa2V3aXNlLgoJKiB0eXBlY2syLmM6IExpa2V3aXNlLgoKMjAwMi0wOS0xMyAgTWF0dCBBdXN0ZXJuICA8YXVzdGVybkBhcHBsZS5jb20+CgoJUFIgQysrLzc4MjgKCSogY3AvY3AtdHJlZS5oLCBjcC90cmVlLmM6IE5ldyBmdW5jdGlvbiBub25fY2FzdF9sdmFsdWVfcC4KCSogY3AvY2FsbC5jOiBDaGFuZ2UgY2FsbC1ieS1jb25zdC1yZWZlcmVuY2UgbWVjaGFuaXNtIHRvIHVzZQoJbm9uX2Nhc3RfbHZhbHVlX3Agd2hlbiBkZWNpZGluZyB3aGV0aGVyIHRoZSBjcmVhdGUgYSB0ZW1wb3JhcnkuCglXZSBuZWVkIGEgdGVtcG9yYXJ5IHdoZW4gcGFzc2luZywgZS5nLiAobG9uZykgeCBieSBjb25zdCByZWYuCgoyMDAyLTA5LTEzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAodW5pZnksIEFSUkFZX1RZUEUpOiBFbGVtZW50IHR5cGUgY2FuIGJlIG1vcmUgcXVhbGlmaWVkLgoKMjAwMi0wOS0xMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRlY2wuYzogRml4IGNvbW1lbnQgZm9ybWF0dGluZy4KCSogZGVjbDIuYzogTGlrZXdpc2UuCgoyMDAyLTA5LTEyICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY2FsbC5jOiBGaXggY29tbWVudCBmb3JtYXR0aW5nLgoJKiBjbGFzcy5jOiBMaWtld2lzZS4KCSogY3AtbGFuZy5jOiBMaWtld2lzZS4KCSogY3AtdHJlZS5oOiBMaWtld2lzZS4KCSogY3Z0LmM6IExpa2V3aXNlLgoKMjAwMi0wOS0xMSAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2UtbGFuZy5pbjogQnVpbGQgY3AvY3h4ZmlsdC5vIGZyb20gJChzcmNkaXIpL2NwL2N4eGZpbHQuYywKCWFuZCBjKytmaWx0IGZyb20gY3h4ZmlsdC5vICsgdmVyc2lvbi5vICsgJChMSUJERVBTKS4KCSogY3h4ZmlsdC5jOiBOZXcgZmlsZTogc3BsaXQgZnJvbSBsaWJpYmVydHkvY3BsdXMtZGVtLmMsIHdpdGgKCW1pbm9yIGFkanVzdG1lbnRzICh1c2UgdmVyc2lvbl9zdHJpbmcsIGVsaW1pbmF0ZSB5ZXQgYW5vdGhlcgoJZHVwbGljYXRlIG9mIHhtYWxsb2MpCgoyMDAyLTA5LTA4ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBjcC10cmVlLmggKHJlcXVpcmVfY29tcGxldGVfZWhfc3BlY190eXBlcyk6IEFkZCBwcm90b3R5cGUuCgoyMDAyLTA5LTA1ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHR5cGVjazIuYyAoYWRkX2V4Y2VwdGlvbl9zcGVjaWZpZXIpOiBPbmx5IHBlZHdhcm4gZm9yIGFuCglpbmNvbXBsZXRlIHR5cGUuCgkocmVxdWlyZV9jb21wbGV0ZV9laF9zcGVjX3R5cGVzKTogTmV3IGZuLgoJKGN4eF9pbmNvbXBsZXRlX3R5cGVfZGlhZ25vc3RpYyk6IEFsc28gc3VwcG9ydCBwZWR3YXJuaW5nLgoJKiB0eXBlY2suYyAoY29tcGxldGVfdHlwZV9vcl9kaWFnbm9zdGljKTogTGlrZXdpc2UuCgkqIGNhbGwuYyAoYnVpbGRfY2FsbCk6IENhbGwgcmVxdWlyZV9jb21wbGV0ZV9laF9zcGVjX3R5cGVzLgoJKiBydHRpLmMgKGdldF9wc2V1ZG9fdGlfZGVzYyk6IEdpdmUgYW4gZXJyb3IgcmF0aGVyIHRoYW4gYWJvcnRpbmcKCW9uIGFuIGluY29tcGxldGUgdHlwZS4KCjIwMDItMDktMDQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZGVjbC5jIChzdGFydF9jbGVhbnVwX2ZuKTogQ2xlYXIgaW50ZXJmYWNlX29ubHkgYmVmb3JlCglzdGFydF9mdW5jdGlvbiwgcmVzdG9yZSBpdCBhZnRlcndhcmRzLgoKMjAwMi0wOS0wMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZmluaXNoX2J1aWx0aW5fdHlwZSk6IFJlbW92ZS4KCSogZGVjbDIuYyAoZmluaXNoX2J1aWx0aW5fdHlwZSk6IE1vdmUgdG8gY29tbW9uIGNvZGUuCgkqIGRlY2wuYyAoYnVpbGRfcHRybWVtZnVuY190eXBlKTogQWRqdXN0LgoJKiBydHRpLmMgKGNyZWF0ZV9wc2V1ZG9fdHlwZV9pbmZvKTogQWRqdXN0LgoJKGNyZWF0ZV90aW5mb190eXBlcyk6IEFkanVzdC4KCjIwMDItMDgtMzEgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogY3AtbGFuZy5jIChjcF9leHByX3NpemUpOiBBbGxvdyBpbml0aWFsaXphdGlvbiBmcm9tIGEKCUNPTlNUUlVDVE9SLgoKMjAwMi0wOC0zMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBvcHQvNzUxNQoJKiB0cmVlLmM6IEluY2x1ZGUgdGFyZ2V0LmguCgkoY3BfY2Fubm90X2lubGluZV90cmVlX2ZuKTogRG9uJ3QgYXV0by1pbmxpbmUgZnVuY3Rpb25zIHRoYXQKCWRvbid0IGJpbmQgbG9jYWxseS4KCSogTWFrZWZpbGUuaW4gKHRyZWUubyk6IFVwZGF0ZS4KCjIwMDItMDgtMjcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChsYXlvdXRfdmlydHVhbF9iYXNlcyk6IFdhcm4gYWJvdXQgYnVncyBpbiBHKysgdGhhdAoJcmVzdWx0IGluIGluY29ycmVjdCBvYmplY3QgbGF5b3V0cy4KCShsYXlvdXRfY2xhc3NfdHlwZSk6IExpa2V3aXNlLgoKMjAwMi0wOC0yNCAgTWF0dCBBdXN0ZXJuICA8YXVzdGVybkBhcHBsZS5jb20+CgoJKiB0cmVlLmMgKGx2YWx1ZV9wXzEpOiBBZGQgYXJndW1lbnQgZm9yIHdoZXRoZXIgY2FzdHMgb2YgbHZhbHVlcwoJYXJlIGFsbG93YWJsZS4KCShyZWFsX2x2YWx1ZV9wKTogVXBkYXRlIGNhbGxlci4KCShsdmFsdWVfcCk6IERpdHRvLgoJKG5vbl9jYXN0X2x2YWx1ZV9vcl9lbHNlKTogTmV3LgoJKiB0cmVlLmg6IERlY2xhcmUgaXQuCgkqIHR5cGVjay5jIChidWlsZF91bmFyeV9vcCk6IFVzZSBub25fY2FzdF9sdmFsdWVfb3JfZWxzZS4KCjIwMDItMDgtMjIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0eXBlY2suYyAoYnVpbGRfY2xhc3NfbWVtYmVyX2FjY2Vzc19leHByKTogSGFuZGxlIENPTVBPVU5EX0VYUFIKCWFuZCBDT05EX0VYUFIgc3BlY2lhbGx5OyBmaXggZXJyb3IgbWVzc2FnZSBvdXRwdXQuCgoyMDAyLTA4LTIyICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHB0LmMgKHRzdWJzdF9leHByKTogUkVUVVJOX0VYUFIgaXMgbm93IFJFVFVSTl9TVE1UX0VYUFIuCgkqIHNlbWFudGljcy5jIChudWxsaWZ5X3JldHVybnNfcik6IExpa2V3aXNlLgoKMjAwMi0wOC0xNyAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJRml4IFBSLzc2MjEKCSogdHlwZWNrLmMgKGZpbmlzaF9jbGFzc19tZW1iZXJfYWNjZXNzX2V4cHIpOiBEaWFnbm9zZSBjYXNlcyB3aGVyZQoJbmFtZSBsb29rdXAgZmluZHMgbm90aGluZy4KCjIwMDItMDgtMTUgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogc2VtYW50aWNzLmMgKGZpbmlzaF90aGVuX2NsYXVzZSk6IFJlbW92ZSByZWR1bmRhbnQgYXNzaWdubWVudC4KCShmaW5pc2hfaWZfc3RtdCwgYmVnaW5fc3dpdGNoX3N0bXQsIGZpbmlzaF9zd2l0Y2hfc3RtdCk6IE1vdmUgdGhlCglleHRyYSBiaW5kaW5nIGxldmVsIG91dHNpZGUgdGhlIGlmL3N3aXRjaCBzdGF0ZW1lbnQuCgkoZmluaXNoX3doaWxlX2NvbmQsIGZpbmlzaF9mb3JfY29uZCk6IFJld3JpdGUgY29tcGxleCBjb25kaXRpb24KCWludG8gdGhlIGxvb3AgYm9keS4KCjIwMDItMDgtMTUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogcGFyc2UueSAoc2l6ZW9mLCBhbGlnbm9mLCB0eXBlb2YpOiBOZXcgbm9uLXRlcm1pbmFscyB0bwoJaW5jcmVtZW50IHNraXBfZXZhbHVhdGlvbi4gIFJlcGxhY2UgdGVybWluYWxzIHdpdGggdGhlbSBhbmQKCWRlY3JlbWVudCBza2lwX2V2YWx1YXRpb24gYXQgdGhlIGVuZCBvZiBydWxlcyB1c2luZyB0aGVtLgoJKiBkZWNsMi5jIChtYXJrX3VzZWQpOiBEb24ndCBhc3NlbWJsZV9leHRlcm5hbCBpZgoJc2tpcHBpbmcgZXZhbHVhdGlvbi4KCjIwMDItMDgtMTUgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAbmVyaW0ubmV0PgoKCUZpeCBQUi83NTA0CgkqIHBhcnNlLnkgKHBhcnNlX2ZpbmlzaF9jYWxsX2V4cHIpOiBIYW5kbGUgaW5jb21wbGV0ZQoJdHlwZSB1c2VkIHRvIG5hbWUgYSBzY29wZS4KCjIwMDItMDgtMTUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzc1OTgKCSogdHlwZWNrLmMgKGJ1aWxkX3VuYXJ5X29wKTogRm9sZCBvZmZzZXRvZiBpZGlvbS4gRml4ZXMKCXJlZ3Jlc3Npb24gY2F1c2VkIGJ5IG15IDIwMDItMDgtMDggcGF0Y2guCgoyMDAyLTA4LTEzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChwdXNoZGVjbF9jbGFzc19sZXZlbCk6IEhvbm9yIHJlcXVlc3RzIHRvIGJpbmQgbmFtZXMgdG8KCU9WRVJMT0FEcy4KCjIwMDItMDgtMTEgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGRlY2wyLmMgKGJ1aWxkX2NhbGxfZnJvbV90cmVlKTogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUuCgkqIHBhcnNlLnkgKHBhcnNlX2ZpbmlzaF9jYWxsX2V4cHIpOiBMaWtld2lzZS4KCSogcmVwby5jIChvbGRfYXJncywgb2xkX2Rpciwgb2xkX21haW4pOiBDb25zdC1pZnkuCgoyMDAyLTA4LTExICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQG5lcmltLm5ldD4KCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogUmVwbGFjZSBERUNMX1NPVVJDRV9GSUxFCglERUNMX1NPVVJDRV9MSU5FIHdpdGggREVDTF9TT1VSQ0VfTE9DQVRJT04uCgkqIG9wdGltaXplLmMgKG1heWJlX2Nsb25lX2JvZHkpOiBMaWtld2lzZS4KCSogcHQuYyAodHN1YnN0X2VudW0pOiBMaWtld2lzZS4KCShsb29rdXBfdGVtcGxhdGVfY2xhc3MpOiBMaWtld2lzZS4KCSogdHJlZS5jIChjcF9jb3B5X3Jlc19kZWNsX2Zvcl9pbmxpbmluZyk6IExpa2V3aXNlLgoKMjAwMi0wOC0xMCAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmNvLnVrPgoKCSogbGFuZy1zcGVjcy5oOiBSZW1vdmUgLWFuc2kuCgoyMDAyLTA4LTEwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJlZS5jIChtYXliZV9kdW1teV9vYmplY3QpOiBSZXBsYWNlIC8vIHdpdGggLyogKi8KCjIwMDItMDgtMDkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKHN0YW5kYXJkX2NvbnZlcnNpb24pOiBVc2UgYnVpbGRfcHRybWVtX3R5cGUuCgkqIGNwLXRyZWUuaCAoYnVpbGRfcHRybWVtX3R5cGUpOiBOZXcgZnVuY3Rpb24uCgkoYWRqdXN0X3Jlc3VsdF9vZl9xdWFsaWZpZWRfbmFtZV9sb29rdXApOiBMaWtld2lzZS4KCSogZGVjbC5jIChncm9rdmFyZGVjbCk6IERvIG5vdCBsb29rIGZvciBPRkZTRVRfVFlQRXMgdG8gaW5kaWNhdGUKCXN0YXRpYyBkYXRhIG1lbWJlcnMuCgkoYnVpbGRfcHRybWVtX3R5cGUpOiBOZXcgZnVuY3Rpb24uCgkoZ3Jva2RlY2xhcmF0b3IpOiBEbyBub3QgdXNlIGJ1aWxkX29mZnNldF90eXBlIHdoZW4gZW5jb3VudGVyaW5nIGEKCXF1YWxpZmllZCBuYW1lLgoJKiBwYXJzZS55IChwYXJzZV9maW5pc2hfY2FsbF9leHByKTogVXNlCglhZGp1c3RfcmVzdWx0X29mX3F1YWxpZmllZF9uYW1lX2xvb2t1cC4KCSogc2VhcmNoLmMgKGFkanVzdF9yZXN1bHRfb2ZfcXVhbGlmaWVkX25hbWVfbG9va3VwKTogTmV3IGZ1bmN0aW9uLgoJKiB0eXBlY2suYyAocXVhbGlmeV90eXBlX3JlY3Vyc2l2ZSk6IFVzZSBUWVBFX1BUUk1FTV8qIHJhdGhlciB0aGFuCglhY2Nlc3NpbmcgT0ZGU0VUX1RZUEVzIGRpcmVjdGx5LgoKMjAwMi0wOC0wOCAgTWlrZSBTdHVtcCAgPG1yc0BhcHBsZS5jb20+CgoJKiBjYWxsLmMgKGFkZF9idWlsdGluX2NhbmRpZGF0ZSk6IGxlZ2FsIC0+IHZhbGlkLCBpbGxlZ2FsIC0+IGludmFsaWQuCgkodHlwZV9kZWNheXNfdG8pOiBMaWtld2lzZS4KCSogY2xhc3MuYyAoZmluZF9maW5hbF9vdmVycmlkZXIpOiBMaWtld2lzZS4KCShtYXliZV9ub3RlX25hbWVfdXNlZF9pbl9jbGFzcyk6IExpa2V3aXNlLgoJKiBkZWNsLmMgKGN1cnJlbnRfdG1wbF9zcGVjX2tpbmQpOiBMaWtld2lzZS4KCShhZGRfYmluZGluZyk6IExpa2V3aXNlLgoJKHB1c2hfY2xhc3NfYmluZGluZyk6IExpa2V3aXNlLgoJKGR1cGxpY2F0ZV9kZWNscyk6IExpa2V3aXNlLgoJKGxheW91dF92YXJfZGVjbCk6IExpa2V3aXNlLgoJKGdyb2tmbmRlY2wpOiBMaWtld2lzZS4KCShncm9rZGVjbGFyYXRvcik6IExpa2V3aXNlLgoJKGNoZWNrX2RlZmF1bHRfYXJndW1lbnQpOiBMaWtld2lzZS4KCSogZGVjbDIuYyAoaGFuZGxlX2NsYXNzX2hlYWQpOiBMaWtld2lzZS4KCSogZXJyb3IuYyAoZHVtcF90ZW1wbGF0ZV9kZWNsKTogTGlrZXdpc2UuCgkqIGluaXQuYyAoYnVpbGRfb2Zmc2V0X3JlZik6IExpa2V3aXNlLgoJKiBwdC5jIChjaGVja19zcGVjaWFsaXphdGlvbl9zY29wZSk6IExpa2V3aXNlLgoJKGRldGVybWluZV9zcGVjaWFsaXphdGlvbik6IExpa2V3aXNlLgoJKGNoZWNrX2V4cGxpY2l0X3NwZWNpYWxpemF0aW9uKTogTGlrZXdpc2UuCgkobWF5YmVfY2hlY2tfdGVtcGxhdGVfdHlwZSk6IExpa2V3aXNlLgoJKHByb2Nlc3NfcGFydGlhbF9zcGVjaWFsaXphdGlvbik6IExpa2V3aXNlLgoJKGNoZWNrX2RlZmF1bHRfdG1wbF9hcmdzKTogTGlrZXdpc2UuCgkocHVzaF90ZW1wbGF0ZV9kZWNsX3JlYWwpOiBMaWtld2lzZS4KCShjb252ZXJ0X3RlbXBsYXRlX2FyZ3VtZW50KTogTGlrZXdpc2UuCgkodHJ5X2NsYXNzX3VuaWZpY2F0aW9uKTogTGlrZXdpc2UuCgkoZ2V0X2JpbmRpbmdzX3JlYWwpOiBMaWtld2lzZS4KCShkb19kZWNsX2luc3RhbnRpYXRpb24pOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGJlZ2luX2Z1bmN0aW9uX2RlZmluaXRpb24pOiBMaWtld2lzZS4KCShmaW5pc2hfbWVtYmVyX2RlY2xhcmF0aW9uKTogTGlrZXdpc2UuCgkoY2hlY2tfbXVsdGlwbGVfZGVjbGFyYXRvcnMpOiBMaWtld2lzZS4KCSogdHlwZWNrLmMgKGNvbXBfYXJyYXlfdHlwZXMpOiBMaWtld2lzZS4KCShjb21wdHlwZXMpOiBMaWtld2lzZS4KCShleHByX3NpemVvZik6IExpa2V3aXNlLgoJKGJ1aWxkX2JpbmFyeV9vcCk6IExpa2V3aXNlLgoJKGR1YmlvdXNfY29udmVyc2lvbl93YXJuaW5ncyk6IExpa2V3aXNlLgoJKGNoZWNrX3JldHVybl9leHByKTogTGlrZXdpc2UuCgoyMDAyLTA4LTA4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrLmMgKGJ1aWxkX2NsYXNzX21lbWJlcl9hY2Nlc3NfZXhwcik6IERvIG5vdCByZXR1cm4KCWVycm9yX21hcmtfbm9kZSB3aGVuIG5vIGVycm9yIGhhcyBvY2N1cnJlZC4KCjIwMDItMDgtMDggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0eXBlY2suYyAoYnVpbGRfY29tcG9uZW50X2FkZHIpOiBSZW1vdmUuCgkoYnVpbGRfdW5hcnlfb3ApOiBKdXN0IGNoZWNrIGl0J3Mgbm90IGEgYml0ZmllbGQsIGFuZCB0aGVuIGJ1aWxkCglhbiBBRERSX0VYUFIuCgoyMDAyLTA4LTA4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoY29udmVydF90b19iYXNlKTogQ29ycmVjdCBjaGVjayBmb3IgZXJyb3JfbWFya19ub2RlLgoJKGNyZWF0ZV92dGFibGVfcHRyKTogUmVtb3ZlIHVudXNlZCBWRlVOU19QIHBhcm0uCgoyMDAyLTA4LTA4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AvTWFrZS1sYW5nLmluIChjKysubW9zdGx5Y2xlYW4pOiBSZW1vdmUgY292ZXJhZ2UgZmlsZXMuCgoyMDAyLTA4LTA3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVJld29yayBidWlsZF9jb21wb25lbnRfcmVmLgoJKiBjYWxsLmMgKGJ1aWxkX3ZmaWVsZF9yZWYpOiBEbyBub3QgZ28gdGhyb3VnaCBidWlsZF9jb21wb25lbnRfcmVmLgoJKGJ1aWxkX2ZpZWxkX2NhbGwpOiBVc2UgYnVpbGRfY2xhc3NfbWVtYmVyX2FjY2Vzc19leHByLgoJKGJ1aWxkX3VzZXJfdHlwZV9jb252ZXJzaW9uXzEpOiBVc2UgQkFTRUxJTktfRlVOQ1RJT05TLgoJKGJ1aWxkX29iamVjdF9jYWxsKTogTGlrZXdpc2UuCgkqIGNsYXNzLmMgKGNvbnZlcnRfdG9fYmFzZSk6IE5ldyBmdW5jdGlvbi4KCSh0eXBlX3JlcXVpcmVzX2FycmF5X2Nvb2tpZSk6IFVzZSBCQVNFTElOS19GVU5DVElPTlMuCgkoaW5zdGFudGlhdGVfdHlwZSk6IEhhbmRsZSBCQVNFTElOS3MuCgkqIGNwLXRyZWUuZGVmIChCQVNFTElOSyk6IE5ldyB0cmVlIGNvZGUuCgkqIGNwLXRyZWUuaCAoQkFTRUxJTktfUCk6IFJlaW1wbGVtZW50LgoJKFNFVF9CQVNFTElOS19QKTogUmVtb3ZlLgoJKEJBU0VMSU5LX0JJTkZPKTogUmVpbXBsZW1lbnQuCgkoQkFTRUxJTktfRlVOQ1RJT05TKTogTGlrZXdpc2UuCgkoQkFTRUxJTktfQUNDRVNTX0JJTkZPKTogTGlrZXdpc2UuCgkoQkFTRUxJTktfT1BUWVBFKTogTGlrZXdpc2UuCgkoY29udmVydF90b19iYXNlKTogTmV3IGZ1bmN0aW9uLgoJKG5hbWVfcCk6IExpa2V3aXNlLgoJKGJ1aWxkX29iamVjdF9yZWYpOiBSZW1vdmUuCgkoYnVpbGRfY29tcG9uZW50X3JlZl8xKTogTGlrZXdpc2UuCgkoYnVpbGRfY29tcG9uZW50X3JlZik6IExpa2V3aXNlLgoJKGJ1aWxkX3hfY29tcG9uZW50X3JlZik6IExpa2V3aXNlLgoJKGJ1aWxkX2NsYXNzX21lbWJlcl9hY2Nlc3NfZXhwcik6IE5ldyBmdW5jdGlvbi4KCShmaW5pc2hfY2xhc3NfbWVtYmVyX2FjY2Vzc19leHByKTogTGlrZXdpc2UuCgkoYnVpbGRfcHRybWVtZnVuY19hY2Nlc3NfZXhwcik6IExpa2V3aXNlLgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogSGFuZGxlIEJBU0VMSU5Lcy4KCSogZGVjbDIuIChidWlsZF9leHByX2Zyb21fdHJlZSk6IEhhbmRsZSBDT01QT05FTlRfUkVGcyBieSB1c2luZwoJZmluaXNoX2NsYXNzX21lbWJlcl9hY2Nlc3NfZXhwci4KCShhcmdfYXNzb2MpOiBIYW5kbGUgQkFTRUxJTktzLgoJKGRvX2NsYXNzX3VzaW5nX2RlY2wpOiBMaWtld2lzZS4KCSogZXJyb3IuYyAoZHVtcF9kZWNsKTogTGlrZXdpc2UuCgkoZHVtcF9leHByKTogVXNlIGJ1aWxkX3B0cm1lbWZ1bmNfYWNjZXNzX2V4cHIuCgkqIGV4Y2VwdC5jIChkdG9yX25vdGhyb3cpOiBVc2UgQ0xBU1NUWVBFX0RFU1RSVUNUT1JTIHRvIGZpbmQKCWRlc3RydWN0b3JzLgoJKGJ1aWxkX3Rocm93KTogVXNlIEJBU0VMSU5LX0ZVTkNUSU9OUy4KCSogaW5pdC5jIChwZXJmb3JtX21lbWJlcl9pbml0KTogVXNlCglidWlsZF9jbGFzc19tZW1iZXJfYWNjZXNzX2V4cHIuCgkoYnVpbGRfb2Zmc2V0X3JlZik6IEhhbmRsZSBCQVNFTElOS3MuICBVc2UKCWJ1aWxkX2NsYXNzX21lbWJlcl9hY2Nlc3NfZXhwci4KCSogbWV0aG9kLmMgKGhhY2tfaWRlbnRpZmllcik6IExpa2V3aXNlLgoJKiBwYXJzZS55IChkb19pZCk6IFVzZSBCQVNFTElOSywgbm90IFRSRUVfTElTVC4KCShwcmltYXJ5KTogUmVtb3ZlIHVzZXMgb2YgYnVpbGRfb2JqZWN0X3JlZi4KCSogcHQuYyAobG9va3VwX3RlbXBsYXRlX2Z1bmN0aW9uKTogSGFuZGxlIEJBU0VMSU5Lcy4KCShyZXNvbHZlX292ZXJsb2FkZWRfdW5pZmljYXRpb24pOiBMaWtld2lzZS4KCSogc2VhcmNoLmMgKGJ1aWxkX2Jhc2VsaW5rKTogQnVpbGQgYSBCQVNFTElOSywgbm90IGEgVFJFRV9MSVNULgoJKGxvb2t1cF9maWVsZCk6IFVzZSBCQVNFTElOSywgbm90IFRSRUVfTElTVC4KCShsb29rdXBfZm5maWVscyk6IExpa2V3aXNlLgoJKHNldHVwX2NsYXNzX2JpbmRpbmdzKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfb2JqZWN0X2NhbGxfZXhwcik6IERvIG5vdCB1c2UKCWJ1aWxkX21ldGhvZF9jYWxsIHdoZW4gd2UgYWxyZWFkeSBrbm93IHdoYXQgZnVuY3Rpb24gaXMgYmVpbmcKCWNhbGxlZC4KCSogc3Bldy5jIChpZGVudGlmaWVyX3R5cGUpOiBVc2UgQkFTRUxJTkssIG5vdCBUUkVFX0xJU1QuCgkqIHRyZWUuYyAocmVhbGx5X292ZXJsb2FkZWRfZm4pOiBVc2UgT1ZMX0NIQUlOIGZvciBPVkVSTE9BRHMsIG5vdAoJVFJFRV9DSEFJTi4KCShuYW1lX3ApOiBOZXcgZnVuY3Rpb24uCgkqIHR5cGVjay5jIChidWlsZF9vYmplY3RfcmVmKTogUmVtb3ZlLgoJKGJ1aWxkX2NvbXBvbmVudF9yZWZfMSk6IExpa2V3aXNlLgoJKGJ1aWxkX3hfY29tcG9uZW50X3JlZik6IExpa2V3aXNlLgoJKGJ1aWxkX2NsYXNzX21lbWJlcl9hY2Nlc3NfZXhwcik6IE5ldyBmdW5jdGlvbi4KCShmaW5pc2hfY2xhc3NfbWVtYmVyX2FjY2Vzc19leHByKTogTGlrZXdpc2UuCgkoYnVpbGRfcHRybWVtZnVuY19hY2Nlc3NfZXhwcik6IExpa2V3aXNlLgoJKGdldF9tZW1iZXJfZnVuY3Rpb25fZnJvbV9wdHJmdW5jKTogVXNlCglidWlsZF9wdHJtZW1mdW5jX2FjY2Vzc19leHByLgoJKGJ1aWxkX2JpbmFyeV9vcCk6IExpa2V3aXNlLgoJKGJ1aWxkX3VuYXJ5X29wKTogTGlrZXdpc2UuCgkoYnVpbGRfcHRybWVtZnVuYyk6IExpa2V3aXNlLgoJKHBmbl9mcm9tX3B0cm1lbWZ1bmMpOiBMaWtld2lzZS4KCSogdHlwZWNrMi5jIChidWlsZF9tX2NvbXBvbmVudF9yZWYpOiBBZGp1c3QgY29tbWVudC4KCjIwMDItMDgtMDcgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5jby51az4KCgkqIE1ha2UtbGFuZy5pbiAoQ1hYX0NfT0JKUyk6IFVwZGF0ZS4KCSogY3AtbGFuZy5jIChMQU5HX0hPT0tTX0RFQ09ERV9PUFRJT04pOiBVc2UgY19jb21tb25fZGVjb2RlX29wdGlvbi4KCSogY3AtdHJlZS5oIChjeHhfZGVjb2RlX29wdGlvbik6IFJlbW92ZS4KCSogZGVjbDIuYyAoY29tcGFyZV9vcHRpb25zLCBsYW5nX2Zfb3B0aW9ucywgdW5zdXBwb3J0ZWRfb3B0aW9ucywKCWN4eF9kZWNvZGVfb3B0aW9uKTogUmVtb3ZlLgoKMjAwMi0wOC0wNiAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBuZXJpbS5uZXQ+CgoJKiB0eXBlY2suYyAoYnVpbGRfeF91bmFyeV9vcCk6IEhhbmRsZSBwb2ludGVyLXRvLW1lbWJlci4KCjIwMDItMDgtMDUgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAcmVkaGF0LmNvbT4KCgkqIGNsYXNzLmM6IERvbid0IGluY2x1ZGUgb2JzdGFjay5oLgoJKHBvcGNsYXNzKToKCSogZGVjbDIuYzogRGVsZXRlIGJvZ3VzIGNvbW1lbnQuCgkqIGVycm9yLmM6IERvbid0IGluY2x1ZGUgb2JzdGFjay5oLgoJKiBleGNlcHQuYzogTGlrZXdpc2UuCgkoZHVtcF90eXBlKTogQ29ycmVjdCBjb21tZW50LgoJKiBtZXRob2QuYzogRG9uJ3QgaW5jbHVkZSBvYnN0YWNrLmguCgkqIHRyZWUuYzogTGlrZXdpc2UuCgoyMDAyLTA4LTA0ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQG5lcmltLm5ldD4KCglGaXggUFIvMjIxMwoJKiBjdnQuYyAoY3BfY29udmVydF90b19wb2ludGVyKTogUmVqZWN0IGNvbnZlcnNpb25zIGZyb20gaW50ZWdyYWwKCWV4cHJlc3Npb25zIHRvIHBvaW50ZXItdG8tZGF0YS1tZW1iZXIgb2YgcG9pbnRlci10by1tZW1iZXItZnVuY3Rpb25zLgoKMjAwMi0wOC0wNCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0ByZWRoYXQuY29tPgoKCSogY3Z0LmMgKG9jcF9jb252ZXJ0KTogRGVsZXRlIG9ic29sZXRlIGNvZGUuCgkqIHBhcnNlLnkgKHBlcm1hbmVudF9vYnN0YWNrKTogRGVsZXRlIGRlY2xhcmF0aW9uLgoJKiBwdC5jIChwZXJtYW5lbnRfb2JzdGFjayk6IERlbGV0ZSBkZWNsYXJhdGlvbi4KCSogcmVwby5jIChwZXJtYW5lbnRfb2JzdGFjayk6IERlbGV0ZSBkZWNsYXJhdGlvbi4KCShvcGVuX3JlcG9fZmlsZSk6IFVzZSB4bWFsbG9jIGluc3RlYWQgb2YgcGVybWFuZW50X29ic3RhY2suCgkoaW5pdF9yZXBvKTogVXNlIHhzdHJkdXAgaW5zdGVhZCBvZiBwZXJtYW5lbnRfb2JzdGFjay4KCjIwMDItMDgtMDQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKFZGX0RFUklWRURfVkFMVUUpOiBSZW1vdmUuCgkqIGNsYXNzLmMgKGZpbmlzaF9zdHJ1Y3RfMSk6IFVzZSBWRl9CSU5GT19WQUxVRSBub3QgVkZfREVSSVZFRF9WQUxVRS4KCjIwMDItMDgtMDMgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgNzQ3MC4KCUMrKyBBQkkgY2hhbmdlIC0gdmZ1bmMgb3JkZXJpbmcuCgkqIGNsYXNzLmMgKGFkZF92aXJ0dWFsX2Z1bmN0aW9uKTogUmVtb3ZlLgoJKGRmc19tb2RpZnlfYWxsX3Z0YWJsZXMpOiBUYWtlIGxpc3Qgb2YgYWxsIGRlY2xhcmVkCgl2aXJ0dWFscy4gQXNzaWduIGFsbCB0aGF0IGFyZSBub3QgaW4gcHJpbWFyeSBiYXNlLgoJKGNoZWNrX2Zvcl9vdmVycmlkZSk6IEFkanVzdCBjb21tZW50cy4KCShjcmVhdGVfdnRhYmxlX3B0cik6IFRha2Ugc2luZ2xlIGxpc3Qgb2YgdmlydHVhbHMuIEJ1aWxkIGNoYWluCglvZiBkZWNsYXJlZCB2aXJ0dWFscyBoZXJlLgoJKGxheW91dF9jbGFzc190eXBlKTogVGFrZSBzaW5nbGUgbGlzdCBvZiB2aXJ0dWFscy4gQWRqdXN0LgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IEtlZXAgdmlydHVhbHMgb24gc2luZ2xlIGxpc3QuIEFkanVzdC4KCjIwMDItMDgtMDIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbml0LmMgKGJ1aWxkX21lbWJlcl9jYWxsKTogVXNlIGJ1aWxkX25ld19tZXRob2RfY2FsbCwgbm90CglidWlsZF9tZXRob2RfY2FsbC4KCjIwMDItMDgtMDIgIEtyaXN0ZXIgV2FsZnJpZHNzb24gIDxjYXRvQGRmLmx0aC5zZT4KCgkqIE1ha2UtbGFuZy5pbiAoc3Bldy5vLCBsZXgubywgcHQubyk6IEFkZCBwYXRoIHRvIHBhcnNlLmggZGVwZW5kZW5jaWVzLgoKMjAwMi0wOC0wMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoYnVpbGRfbWV0aG9kX2NhbGwpOiBJc3N1ZSBhIG1vcmUgaGVscGZ1bCBlcnJvciBtZXNzYWdlCglhYm91dCBhbWJpZ3VvdXMgbWV0aG9kIG5hbWVzLgoKMjAwMi0wOC0wMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWUuYyAoYnVpbGRfc2hhcmVkX2ludF9jc3QpOiBNYWtlIGNhY2hlIGZpbGUgc2NvcGUsIGFuZAoJR1RZIGl0LgoKMjAwMi0wOC0wMiAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBjcC1sYW5nLmMgKExBTkdfSE9PS1NfRVhQUl9TSVpFKTogRGVmaW5lLgoJKGNwX2V4cHJfc2l6ZSk6IE5ldyBmbi4KCSogY2FsbC5jIChidWlsZF9vdmVyX2NhbGwpOiBMb3NlIGVtcHR5IGNsYXNzIGhhY2tlcnkuCgkoY29udmVydF9hcmdfdG9fZWxsaXBzaXMpOiBQcm9tb3RlIG5vbi1QT0Qgd2FybmluZyB0byBlcnJvci4KCSogdHlwZWNrLmMgKGJ1aWxkX21vZGlmeV9leHByKTogRG9uJ3QgdXNlIHNhdmVfZXhwciBvbiBhbiBsdmFsdWUuCgoJKiBzZW1hbnRpY3MuYyAoZXhwYW5kX2JvZHkpOiBEbyB0cmVlIG9wdGltaXphdGlvbiBpbiB0aGUgZnVuY3Rpb24KCWNvbnRleHQsIHRvby4KCjIwMDItMDgtMDEgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5jby51az4KCgkqIGNwLXRyZWUuaDogTW92ZSBhbGwgd2FybmluZyBhbmQgZmxhZyBkZWNsYXJhdGlvbnMgdG8gYy1jb21tb24uaC4KCSogZGVjbC5jOiBNb3ZlIGFsbCB3YXJuaW5nIGFuZCBmbGFnIHZhcmlhYmxlcyB0byBjLWNvbW1vbi5jLgoJKiBkZWNsMi5jOiBNb3ZlIGFsbCB3YXJuaW5nIGFuZCBmbGFnIHZhcmlhYmxlcyB0byBjLWNvbW1vbi5jLgoJKiBsZXguYyAoZmxhZ19kaWdyYXBocyk6IFJlbW92ZS4KCSh3YXJuX3RyYWRpdGlvbmFsKTogTm93IGluIGMtY29tbW9uLmMuCgoyMDAyLTA3LTMxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChidWlsZF9maWVsZF9jYWxsKTogRG8gbm90IGxvb2sgdXAgdGhlIGZpZWxkIGJ5IG5hbWUuCgkoYnVpbGRfbWV0aG9kX2NhbGwpOiBTaW1wbGlmeS4KCShzdHJ1Y3Qgel9jYW5kaWRhdGUpOiBBZGQgYWNjZXNzX3BhdGggYW5kIGNvbnZlcnNpb25fcGF0aC4gIFJlbW92ZQoJYmFzZXR5cGVfcGF0aC4KCShjb252ZXJ0X2NsYXNzX3RvX3JlZmVyZW5jZSk6IEFkanVzdCB1c2Ugb2YKCWFkZF9mdW5jdGlvbl9jYW5kaWRhdGUuCgkoYWRkX2NhbmRpZGF0ZSk6IEFkZCBjb252ZXJzaW9uX3BhdGggYXJndW1lbnQuCgkoYWRkX2Z1bmN0aW9uX2NhbmRpZGF0ZSk6IFVzZSBpdC4KCShhZGRfY29udl9kbmRpZGF0ZSk6IExpa2V3aXNlLgoJKGJ1aWxkX2J1aWx0aW5fY2FuZGlkYXRlKTogTGlrZXdpc2UuCgkoYWRkX3RlbXBsYXRlX2NhbmRpZGF0ZV9yZWFsKTogQWRkIGNvbnZlcnNpb25fcGF0aCBhcmd1bWVudC4KCShhZGRfdGVtcGxhdGVfY29udl9jYW5kaWRhdGUpOiBMaWtld2lzZS4KCShhZGRfdGVtcGxhdGVfY2FuZGlkYXRlKTogTGlrZXdpc2UuCgkoYnVpbGRfdXNlcl90eXBlX2NvbnZlcnNpb25fMSk6IFVzZSBpdC4KCShidWlsZF9uZXdfZnVuY3Rpb25fY2FsbCk6IFJlbW92ZSBuYW1lIGxvb2t1cCBjb2RlLiAgQWRqdXN0IHVzZSBvZgoJYWRkX3RlbXBsYXRlX2NhbmRpZGF0ZSBhbmQgYWRkX2Z1bmN0aW9uX2NhbmRpZGF0ZS4KCShidWlsZF9uZXdfb3ApOiBMaWtld2lzZS4KCShjb252ZXJ0X2xpa2VfcmVhbCk6IFVzZSBidWlsZF9zcGVjaWFsX21lbWJlcl9jYWxsLgoJKGJ1aWxkX292ZXJfY2FsbCk6IFVzZSBjYW5kLT5jb252ZXJzaW9uX3BhdGguCgkoYnVpbGRfc3BlY2lhbF9tZW1iZXJfY2FsbCk6IE5ldyBtZXRob2QuCgkoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogUmVtb3ZlIG5hbWUgbG9va3VwIGNvZGUuCgkqIGNwLXRyZWUuZGVmIChPRkZTRVRfUkVGKTogVXBkYXRlIGRvY3VtZW50YXRpb24uCgkoVEVNUExBVEVfSURfRVhQUik6IExpa2V3aXNlLgoJKiBjcC10cmVlLmggKEJBU0VMSU5LX0FDQ0VTU19CSU5GTyk6IE5ldyBtYWNyby4KCShCQVNFTElOS19PUFRZUEUpOiBMaWtld2lzZS4KCShidWlsZF9uZXdfbWV0aG9kX2NhbGwpOiBBZGp1c3QgcHJvdG90eXBlLgoJKGJ1aWxkX3NwZWNpYWxfbWVtYmVyX2NhbGwpOiBOZXcgbWV0aG9kLgoJKGJ1aWxkX2Jhc2VsaW5rKTogTmV3IG1ldGhvZC4KCShidWlsZF9vZmZzZXRfcmVmX2NhbGxfZnJvbV90cmVlKTogTGlrZXdpc2UuCgkoYnVpbGRfY2FsbF9mcm9tX3RyZWUpOiBMaWtld2lzZS4KCShmaW5pc2hfcXVhbGlmaWVkX2NhbGxfZXhwcik6IFJlbW92ZS4KCShmaW5pc2hfY2FsbF9leHByKTogQWRqdXN0IHByb3RvdHlwZS4KCShidWlsZF94X2Z1bmN0aW9uX2NhbGwpOiBSZW1vdmUuCgkqIGN2dC5jIChvY3BfY29udmVydCk6IFVzZSBidWlsZF9zcGVjaWFsX21lbWJlcl9jYWxsLgoJKiBkZWNsMi5jIChyZXBhcnNlX2Fic2RjbF9hc19leHByKTogVXNlIGZpbmlzaF9jYWxsX2V4cHIuCgkoYnVpbGRfZXhwcl9mcm9tX3RyZWUpOiBBZGp1c3QgaGFuZGxpbmcgZm9yIFRFTVBMQVRFX0lEX0VYUFIgYW5kCglDQUxMX0VYUFIuCgkoYnVpbGRfb2Zmc2V0X3JlZl9jYWxsX2Zyb21fdHJlZSk6IE5ldyBmdW5jdGlvbi4KCShidWlsZF9jYWxsX2Zyb21fdHJlZSk6IExpa2V3aXNlLgoJKiBpbml0LmMgKGV4cGFuZF9jbGVhbnVwKTogVXNlIGJ1aWxkX3NwZWNpYWxfbWVtYmVyX2NhbGwuCgkoZXhwYW5kX2RlZmF1bHRfaW5pdCk6IExpa2V3aXNlLgoJKGJ1aWxkX21lbWJlcl9jYWxsKTogVXNlIGZpbmlzaF9jYWxsX2V4cHIuCgkoYnVpbGRfbmV3XzEpOiBVc2UgYnVpbGRfc3BlY2lhbF9tZW1iZXJfY2FsbC4KCShwdXNoX2Jhc2VfY2xlYW51cHMpOiBMaWtld2lzZS4KCSogbWV0aG9kLmMgKGRvX2J1aWxkX2Fzc2lnbl9yZWYpOiBMaWtld2lzZS4KCSogcGFyc2UueSAodGVtcGxhdGVfaWQpOiBEbyBub3QgcGFzcyBhIENPTVBPTkVOVF9SRUYgdG8KCWxvb2t1cF90ZW1wbGF0ZV9mdW5jdGlvbi4KCShwcmltYXJ5KTogVXNlIHBhcnNlX2ZpbmlzaF9jYWxsX2VweHIsIG5vdCBmaW5pc2hfY2FsbF9leHByLgoJKHBhcnNlX2ZpbmlzaF9jYWxsX2V4cHIpOiBOZXcgZnVuY3Rpb24uCgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9mdW5jdGlvbik6IEFkZCBhc3NlcnRpb25zLgoJKiBzZWFyY2guYyAobG9va3VwX2Jhc2UpOiBBbGxvdyBUIHRvIGJlIGEgYmluZm8uCgkoYnVpbGRfYmFzZWxpbmspOiBOZXcgZnVuY3Rpb24uCgkobG9va3VwX21lbWJlcik6IFVzZSBpdC4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9jYWxsX2V4cHIpOiBEbyBub3QgZG8gbmFtZSBsb29rdXAuCgkoZmluaXNoX29iamVjdF9jYWxsX2V4cHIpOiBSZW1vdmUgI2lmIDAnZCBjb2RlLgoJKGZpbmlzaF9xdWFsaWZpZWRfY2FsbF9leHByKTogUmVtb3ZlLgoJKiB0eXBlY2suYyAoYnVpbGRfeF9mdW5jdGlvbl9jYWxsKTogUmVtb3ZlLgoJKGJ1aWxkX3N0YXRpY19jYXNlKTogVXNlIGJ1aWxkX3NwZWNpYWxfbWVtYmVyX2NhbGwuCgkqIHR5cGVjazIuYyAoYnVpbGRfZnVuY3Rpb25hbF9jYXN0KTogTGlrZXdpc2UuCgoyMDAyLTA3LTMwICBGcmFueiBTaXJsICA8RnJhbnouU2lybC1rZXJuZWxAbGF1dGVyYmFjaC5jb20+CgoJKiBsYW5nLXNwZWNzLmg6IFJlbW92ZSBfX0dYWF9BQklfVkVSU0lPTiwgbW92ZWQgdG8gZ2NjLmMuCgoyMDAyLTA3LTMwICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQG5lcmltLm5ldD4KCgkqIGNwLXRyZWUuaCAoVkZfREVSSVZFRF9WQUxVRSk6IFJlc3RvcmUgZnJvbSBwcmV2aW91cyBkZWxldGlvbi4KCjIwMDItMDctMzAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKENMQVNTVFlQRV9WRklFTERTLCBWRl8qLCBCVl8qKTogQWRkIG1vcmUKCWRvY3VtZW50YXRpb24uCgoyMDAyLTA3LTI5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY3AtdHJlZS5oOiBDb21tZW50IHR5cG8gZml4LgoKMjAwMi0wNy0yOSAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiBzcGV3LmMgKHNwYWNlX2Zvcl90b2tlbik6IEFsbG9jYXRlIHplcm9lZCBtZW1vcnkgZm9yIGEgbmV3IHRva2VuCgljaHVuay4KCjIwMDItMDctMjcgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogZGVjbC5jIChidWlsdGluX2Z1bmN0aW9uXzEpOiBObyBuZWVkIHRvIGV4cGxpY2l0bHkgbWFyawoJQlVJTFRfSU5fUkVUVVJOIGFuZCBCVUlMVF9JTl9FSF9SRVRVUk4gYXMgbm9yZXR1cm4uCgoyMDAyLTA3LTI3ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGRlY2wyLmMgKGN4eF9kZWNvZGVfb3B0aW9uKTogU3VwcG9ydCAtZm5vLWJ1aWx0aW4tZm9vLgoKMjAwMi0wNy0yNiAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBjYWxsLmMgKGJ1aWxkX292ZXJfY2FsbCk6IExpa2V3aXNlLgoJKGNwX2NvbnZlcnRfcGFybV9mb3JfaW5saW5pbmcpOiBOZXcgZm4uCgkoY29udmVydF9mb3JfYXJnX3Bhc3NpbmcpOiBOZXcgZm4uCgkoY29udmVydF9kZWZhdWx0X2FyZywgYnVpbGRfb3Zlcl9jYWxsKTogVXNlIGl0LgoJKHR5cGVfcGFzc2VkX2FzKTogTmV3IGZuLgoJKiBwdC5jICh0c3Vic3RfZGVjbCk6IFVzZSBpdC4KCSogZGVjbDIuYyAoY3BfYnVpbGRfcGFybV9kZWNsKTogTmV3IGZuLgoJKGJ1aWxkX2FydGlmaWNpYWxfcGFybSk6IFVzZSBpdC4KCShzdGFydF9zdGF0aWNfc3RvcmFnZV9kdXJhdGlvbl9mdW5jdGlvbik6IExpa2V3aXNlLgoJKiBkZWNsLmMgKHN0YXJ0X2NsZWFudXBfZm4sIGdyb2tkZWNsYXJhdGVyKTogTGlrZXdpc2UuCgkoZ3Jva3Bhcm1zKTogRG9uJ3QgbWVzcyB3aXRoIERFQ0xfQVJHX1RZUEUuCgkqIHR5cGVjay5jIChjb252ZXJ0X2FyZ3VtZW50cyk6IFVzZSBjb252ZXJ0X2Zvcl9hcmdfcGFzc2luZy4KCSogY3AtbGFuZy5jIChMQU5HX0hPT0tTX1RSRUVfSU5MSU5JTkdfQ09OVkVSVF9QQVJNX0ZPUl9JTkxJTklORyk6CglEZWZpbmUuCgkqIGNwLXRyZWUuaDogRGVjbGFyZSBuZXcgZm5zLgoKMjAwMi0wNy0yNiAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmNvLnVrPgoKCSogY3AtdHJlZS5oIChmbGFnX29wZXJhdG9yX25hbWVzKTogUmVtb3ZlLgoJKiBkZWNsMi5jIChmbGFnX29wZXJhdG9yX25hbWVzKTogUmVtb3ZlLgoJKGxhbmdfZl9vcHRpb25zKTogUmVtb3ZlIG9wZXJhdG9yLW5hbWVzLgoJKiBsZXguYyAoRF9PUE5BTUUpOiBSZW1vdmUuCgkocmVzd29yZHMpOiBSZW1vdmUgb3BlcmF0b3IgbmFtZXMuCgkocmlkX3RvX3l5KTogUmVtb3ZlIG9wZXJhdG9yIG5hbWVzLgoJKGluaXRfcmVzd29yZHMpOiBObyBuZWVkIHRvIGhhbmRsZSBEX09QTkFNRS4KCSogc3Bldy5jIChyZWFkX3Byb2Nlc3NfaWRlbnRpZmllcik6IFRoZXJlIGFyZSBubyBvcGVyYXRvcgoJbmFtZXMuCgoyMDAyLTA3LTI2ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGR1bXAuYyAoY3BfZHVtcF90cmVlKTogQ2FsbCBjX2R1bXBfdHJlZS4KCSogTWFrZS1sYW5nLmluIChDWFhfQ19PQkpTKTogQWRkIGMtZHVtcC5vLgoKMjAwMi0wNy0yNSAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmNvLnVrPgoKCSogZXJyb3IuYyAocHJpbnRfd2hpdGVzcGFjZSk6IFJlbW92ZS4KCSogZysrc3BlYy5jIChMSUJVTldJTkQpOiBNb3ZlLgoJKiBtYW5nbGUuYyAobWFuZ2xlZF9wb3NpdGlvbiwgd3JpdGVfc2lnbmVkX251bWJlcik6IFJlbW92ZS4KCjIwMDItMDctMjUgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5jby51az4KCgkqIGRlY2wyLmMgKGN4eF9kZWNvZGVfb3B0aW9uKTogU2ltaWxhcmx5LgoKMjAwMi0wNy0yNSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBuZXJpbS5uZXQ+CgoJKiBjcC10cmVlLmggKGN4eF9zaXplb2Zfbm93YXJuKTogTm93IGEgbWFjcm8uCgkoY3h4X3NpemVvZl9vcl9hbGlnbm9mX3R5cGUpOiBUYWtlIGEgdGhpcmQgYXJndW1lbnQuCgkoY3h4X3NpemVvZik6IEFkanVzdCBkZWZpbml0aW9uLgoJKGN4eF9hbGlnbm9mKTogTGlrZXdpc2UuCgkqIGluaXQuYyAoYnVpbGRfZGVsZXRlKTogVXNlIGN4eF9zaXplb2Zfbm93YXJuIHRvIHJlZmxlY3QgcmVhbGl0eS4KCSogdHlwZWNrLmMgKGN4eF9zaXplb2Zfb3JfYWxpZ25vZl90eXBlKTogVGFrZSBhIHRoaXJkIGFyZ3VtZW50IGZvcgoJY29tcGxhaW5pbmcuCgkoY19zaXplb2Zfbm93YXJuKTogUmVtb3ZlIGRlZmluaXRpb24uCgkoYnVpbGRfdW5hcnlfb3ApOiBVc2UgY3h4X3NpemVvZl9ub3dhcm4uCgoyMDAyLTA3LTI0ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHJlZGhhdC5jb20+CgoJKiB0cmVlLmMgKGNwX2J1aWxkX3F1YWxpZmllZF90eXBlX3JlYWwpOiBXaGVuIGNvcHlpbmcKCXBvaW50ZXItdG8tbWV0aG9kIHR5cGVzLCB1bnNoYXJlIHRoZSByZWNvcmQgdGhhdCBob2xkcwoJdGhlIGNhY2hlZCBwb2ludGVyLXRvLW1lbWJlci1mdW5jdGlvbiB0eXBlLgoKMjAwMi0wNy0yMyAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmNvLnVrPgoKCSogY3AtdHJlZS5oIChGSUxFX0ZVTkNUSU9OX1BSRUZJWF9MRU4pOiBSZW1vdmUuCgoyMDAyLTA3LTIzICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQG5lcmltLm5ldD4KCglGaXggUFIvNzM2MzoKCSogdHlwZWNrLmMgKGN4eF9zaXplb2Zfb3JfYWxpZ25vZl90eXBlKTogTmV3IGZ1bmN0aW9uLgoJKGNfc2l6ZW9mKTogUmVtb3ZlIGRlZmluaXRpb24uCgkoZXhwcl9zaXplb2YpOiBVc2UgY3h4X3NpemVvZi4KCSogZGVjbDIuYyAoYnVpbGRfZXhwcl9mcm9tX3RyZWUpOiBVc2UgY3h4X3NpemVvZl9vcl9hbGlnbm9mX3R5cGUuCgkqIGRlY2wuYyAoZmluaXNoX2Rlc3RydWN0b3JfYm9keSk6IFVzZSBjeHhfc2l6ZW9mLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2FsaWdub2YpOiBMaWtld2lzZS4KCShmaW5pc2hfYWxpZ25vZik6IFVzZSBjeHhfYWxpZ25vZi4KCSogY3AtdHJlZS5oIChjeHhfc2l6ZW9mLCBjeHhfYWxpZ25vZik6IE5ldyBtYWNyb3MuCgkoY3h4X3NpemVvZl9vcl9hbGlnbm9mX3R5cGUpOiBEZWNsYXJlLgoJKG15X2ZyaWVuZGx5X2Fzc2VydCk6IE1vdmUgdG8gLi4vYy1jb21tb24uaC4KCjIwMDItMDctMjMgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5jby51az4KCgkqIGNsYXNzLmMsIG1ldGhvZC5jLCBwdC5jLCBzZWFyY2guYzogRG9uJ3QgZGVmaW5lIG9ic3RhY2sgbWFjcm9zLgoKMjAwMi0wNy0yMiAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzczNDcsIGMrKy83MzQ4CgkqIGNwLXRyZWUuaCAodHN1YnN0X2ZsYWdzX3QpOiBBZGQgdGZfcGFyc2luZy4KCSogZGVjbC5jIChtYWtlX3R5cGVuYW1lX3R5cGUpOiBVc2UgaXQuCgkobWFrZV91bmJvdW5kX2NsYXNzX3RlbXBsYXRlKTogTGlrZXdpc2UuCgkobG9va3VwX25hbWVfcmVhbCk6IERvbid0IGNhbGwgdHlwZV9hY2Nlc3NfY29udHJvbCBpZiBzY29wZSBpcwoJdGVtcGxhdGUgcGFyYW1ldGVyIGRlcGVuZGVudC4KCSogcGFyc2UueSAodGVtcGxhdGVfYXJnKTogQ2FsbCBtYWtlX3VuYm91bmRfY2xhc3NfdGVtcGxhdGUgd2l0aAoJdGZfcGFyc2luZyBzZXQuCgkobmVzdF9uYW1lX3NwZWNpZmllcik6IENhbGwgbWFrZV90eXBlbmFtZV90eXBlIHdpdGggdGZfcGFyc2luZyBzZXQuCgkodHlwZW5hbWVfc3ViMCk6IExpa2V3aXNlLgoJKHR5cGVuYW1lX3N1YjEpOiBMaWtld2lzZS4KCShpbnN0YW50aWF0ZV9kZWNsKTogUHVzaCBjbGFzcyBzY29wZS4KCSogcHQuYyAocmVnZW5lcmF0ZV9kZWNsX2Zyb21fdGVtcGxhdGUpOiBDYWxsIHB1c2hjbGFzcyBhbmQgcG9wY2xhc3MKCWZvciBib3RoIHN0YXRpYyB2YXJpYWJsZSBhbmQgbWVtYmVyIGZ1bmN0aW9uIHRlbXBsYXRlLgoJKGluc3RhbnRpYXRlX2RlY2wpIENhbGwgcHVzaGNsYXNzIGFuZCBwb3BjbGFzcyB3aGVuIHRzdWJzdCdpbmcgdHlwZQoJYW5kIGFyZ3VtZW50cy4KCSogc2VhcmNoLmMgKHR5cGVfYWNjZXNzX2NvbnRyb2wpOiBEbyB0eXBlIGFjY2VzcyBmb3IgVEVNUExBVEVfREVDTAoJdG9vLgoKMjAwMi0wNy0yMCAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBkZWNsMi5jIChjeHhfZGVjb2RlX29wdGlvbik6IFNpbXBsaWZ5IC1maGFuZGxlLWV4Y2VwdGlvbnMKCXRlc3QgYnkgdXNpbmcgcG9zaXRpdmVfb3B0aW9uLiAgTWFrZSB3aGl0ZXNwYWNlIGNvbnNpc3RlbnQuCgoyMDAyLTA3LTIwICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQG5lcmltLm5ldD4KCgkqIHNwZXcuYyAoc3RydWN0IHVucGFyc2VkX3Rlc3QpOiBSZXBsYWNlICdmaWxlbmFtZScgYW5kICdsaW5lbm8nCgltZW1iZXJzIHdpdGggJ2xvY3VzJy4gIEFkanVzdCB1c2UgdGhyb3VnaG91dC4KCShzdHJ1Y3QgZmVlZCk6ICBMaWtld2lzZS4KCShhbGxvY191bnBhcnNlZF90ZXN0KTogQ2hhbmdlIHByb3RvdHlwZSwgdGFrZSBhICdjb25zdCBsb2NhdGlvbl90IConLgoJQWRqdXN0IHVzZS4KCShzbmFyZl9kZWZhcmcpOiBVc2UgZXJyb3IoKSwgbm90IGVycm9yX3dpdGhfZmlsZV9hbmRfbGluZSgpLgoKMjAwMi0wNy0xOSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGxhbmctc3BlY3MuaCAoQGMrKyk6IEluY2x1ZGUgIiUyIiAoY2MxcGx1c19zcGVjKSB3aGVyZXZlcgoJY3BwX29wdGlvbnMgaXMgaW5jbHVkZWQuCgoyMDAyLTA3LTE3ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvMjg2MiwgYysrLzI4NjMKCSogcHQuYyAoZGV0ZXJtaW5lX3NwZWNpYWxpemF0aW9uKTogQ29tcGFyZSB0aGUgbGVuZ3RoIG9mCglUWVBFX0FSR19UWVBFUy4gIFRpZHkuCgoyMDAyLTA3LTE3ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvMzc5NwoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IERvbid0IHByb3BhZ2F0ZSBpbmxpbmluZyBwYXJhbWV0ZXJzIGZyb20KCW9sZGRlY2wgdG8gbmV3ZGVjbCB3aGVuIG5ld2RlY2wgaXMgYSBzcGVjaWFsaXphdGlvbiBvZiB0aGUKCWluc3RhbnRpYXRpb24gb2xkZGVjbC4KCjIwMDItMDctMTcgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy80ODAyLCBjKysvNTM4NwoJKiBkZWNsLmMgKG1ha2VfdHlwZW5hbWVfdHlwZSk6IFVzZSBlbmZvcmNlX2FjY2Vzcy4KCjIwMDItMDctMTcgIFNjb3R0IFNueWRlciA8c255ZGVyQGZuYWwuZ292PgoKCVBSIGMrKy83MzIwCgkqIHJ0dGkuYyAoZ2V0X3RpbmZvX2RlY2wpOiBTZXQgREVDTF9DT01EQVQuCgoyMDAyLTA3LTEyICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoYWRkX21ldGhvZCk6IENvcnJlY3QgaGFuZGxpbmcgb2YgY29udmVyc2lvbiBvcGVyYXRvcnMuCgoyMDAyLTA3LTExICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy83MjI0CgkqIGNsYXNzLmMgKGFkZF9tZXRob2QpOiBTaW1wbGlmeS4KCjIwMDItMDctMTEgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy83Mjc5CgkqIHRyZWUuYyAoY3BfY29weV9yZXNfZGVjbF9mb3JfaW5saW5pbmcpOiBBbHNvIGNvcHkKCVRSRUVfQUREUkVTU0FCTEUuCgoyMDAyLTA3LTEwICBHcmFoYW0gU3RvdHQgIDxncmFoYW0uc3RvdHRAYnRpbnRlcm5ldC5jb20+CgoJKiBwdC5jICh0ZW1wbGF0ZV9wYXJtX3RoaXNfbGV2ZWxfcCwgcHVzaF90ZW1wbGF0ZV9kZWNsX3JlYWwpOgoJUGFzcyBkZXB0aCBhcyBpbnQgcG9pbnRlci4KCjIwMDItMDctMTEgIFRpbSBKb3NsaW5nICA8dGVqQG1lbGJwYy5vcmcuYXU+CgoJUmVtb3ZlIGZyb250IGVuZCBoYXJkIGNvZGluZyBmcm9tIGdlbmd0eXBlLmMuCgoJKiBjb25maWctbGFuZy5pbiAoZ3RmaWxlcyk6IEFkZCBmaWxlcyBuZWVkZWQgZm9yIHRoaXMgZnJvbnQgZW5kLgoKMjAwMi0wNy0xMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAodW5xdWFsaWZpZWRfbmFtZV9sb29rdXBfZXJyb3IpOiBEZWNsYXJlIGl0LgoJKGJlZ2luX2Z1bmN0aW9uX2RlZmluaXRpb24pOiBBZGp1c3QgcHJvdG90eXBlLgoJKiBsZXguYyAodW5xdWFsaWZpZWRfbmFtZV9sb29rdXBfZXJyb3IpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dAoJZnJvbSAuLi4KCShkb19pZGVudGlmaWVyKTogLi4uIGhlcmUuCgkqIHBhcnNlLnkgKHBhcnNlX2JlZ2luX2Z1bmN0aW9uX2RlZmluaXRpb24pOiBOZXcgZnVuY3Rpb24uCgkoZm4uZGVmMSk6IFVzZSBpdC4KCSogc2VtYW50aWNzLmMgKGJlZ2luX2Z1bmN0aW9uX2RlZmluaXRpb24pOiBBY2NlcHQgZGVjbC1zcGVjaWZpZXJzCglhbmQgYXR0cmlidXRlcyBhcyBzZXBhcmF0ZSBwYXJhbWV0ZXJzLgoKMjAwMi0wNy0xMCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzYyNTUKCSogZGVjbC5jIChsb29rdXBfbmFtZV9yZWFsKTogQnVpbGQgYSBuZXcgVFlQRU5BTUVfVFlQRSByYXRoZXIgdGhhbgoJbW9kaWZ5aW5nIHRoZSBvbGQgb25lLgoKMjAwMi0wNy0wOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoY29uc3RydWN0b3JfbmFtZV9wKTogRGVjbGFyZSBpdC4KCShjaGVja190ZW1wbGF0ZV90ZW1wbGF0ZV9kZWZhdWx0X2FyZyk6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChoYW5kbGVfdXNpbmdfZGVjbCk6IFVzZSBjb25zdHJ1Y3Rvcl9uYW1lX3AuCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCSogZGVjbDIuYyAoY29uc3RydWN0b3JfbmFtZV9wKTogRGVmaW5lIGl0LgoJKiBpbml0LmMgKGJ1aWxkX21lbWJlcl9jYWxsKTogVXNlIGNvbnN0cnVjdG9yX25hbWVfcC4KCSogcGFyc2UueSAodGVtcGxhdGVfcGFybSk6IFVzZSBjaGVja190ZW1wbGF0ZV90ZW1wbGF0ZV9kZWZhdWx0X2FyZy4KCSogcHQuYyAoY2hlY2tfZXhwbGljaXRfc3BlY2lhbGl6YXRpb24pOiBVc2UgY29uc3RydWN0b3JfbmFtZV9wLgoJKiBzZW1hbnRpY3MuYyAoY2hlY2tfdGVtcGxhdGVfdGVtcGxhdGVfZGVmYXVsdF9hcmcpOiBOZXcgZnVuY3Rpb24uCgoyMDAyLTA3LTA4ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHB0LmMgKGNhbl9jb21wbGV0ZV90eXBlX3dpdGhvdXRfY2lyY3VsYXJpdHkpOiBBZGQgc3RhdGljIHRvCglmdW5jdGlvbiBkZWZpbml0aW9uLgoKMjAwMi0wNy0wOCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoaGF2ZV9leHRlcm5fc3BlYyk6IERlY2xhcmUgaXQKCSogZGVjbC5jIChoYXZlX2V4dGVybl9zcGVjKTogRGVmaW5lIGl0LgoJKHN0YXJ0X2RlY2wpOiBFbGltaW5hdGUgdXNlIG9mIHVzZWRfZXh0ZXJuX3NwZWMuCgkoc3RhcnRfZnVuY3Rpb24pOiBMaWtld2lzZS4KCSogcGFyc2UueSAoaGF2ZV9leHRlcm5fc3BlYyk6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCSh1c2VkX2V4dGVybl9zcGVjKTogTGlrZXdpc2UuCgkoZnJvYl9zcGVjcyk6IEVsaW1pbmF0ZSB1c2Ugb2YgdXNlZF9leHRlcm5fc3BlYy4KCSguaHVzaF93YXJuaW5nKTogTGlrZXdpc2UuCgoyMDAyLTA3LTA3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZS1sYW5nLmluIChjcC9wYXJzZS5vKTogRGVwZW5kIG9uIGRlY2wuaC4KCSogY3AtdHJlZS5oIChkb19kZWNsX2luc3RhbnRpYXRpb24pOiBDaGFuZ2UgcHJvdG90eXBlLgoJKiBwYXJzZS55OiBJbmNsdWRlIGRlY2wuaC4KCShwYXJzZV9kZWNsX2luc3RhbnRpYXRpb24pOiBOZXcgZnVuY3Rpb24uCgkoZXhwbGljaXRfaW5zdGFudGlhdGlvbik6IFVzZSBpdC4KCSogcHQuYyAoZG9fZGVjbF9pbnN0YW50aWF0aW9uKTogQWNjZXB0IGEgREVDTCwgbm90IGEgREVDTEFSQVRPUgoJYW5kIERFQ0xTUEVDUy4KCjIwMDItMDctMDcgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogZXJyb3IuYyAoZHVtcF9mdW5jdGlvbl9uYW1lKTogVXNlIERFQ0xfVEVNUExBVEVfUkVTVUxUIGZvcgoJY29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IgdGVzdHMgd2hlbiBwYXNzZWQgYSBURU1QTEFURV9ERUNMLgoKMjAwMi0wNy0wNSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBjdnQuYyAoY3BfY29udmVydF90b19wb2ludGVyKTogQ2FsbCBmb3JjZV9maXRfdHlwZSBmb3IgbnVsbAoJcG9pbnRlcnMuCgoJUFIgb3B0aW1pemF0aW9uLzcxNDUKCSogdHJlZS5jIChjcF9jb3B5X3Jlc19kZWNsX2Zvcl9pbmxpbmluZyk6IEFsc28gY29weSBERUNMX0lOSVRJQUwuCgoyMDAyLTA3LTA1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVJlcGFpciBkYW1hZ2Ugb24gd2Vhay1pbXBhcmVkIHRhcmdldHMgY2F1c2VkIGJ5IG15IHByZXZpb3VzIHBhdGNoLgoJKiBjcC10cmVlLmggKGltcG9ydF9leHBvcnRfdGluZm8pOiBBZGQgcGFyYW1ldGVyLgoJKiBkZWNsMi5jIChpbXBvcnRfZXhwb3J0X3RpbmZvKTogQWRkIHBhcmFtZXRlciwgcG9zdCBhZGp1c3QKCURFQ0xfQ09NREFULgoJKiBydHRpLmMgKGVtaXRfdGluZm9fZGVjbCk6IERFQ0xfQ09NREFUIGlzIChuZWFybHkpIGFsd2F5cyBzZXR1cCBieQoJaW1wb3J0X2V4cG9ydF90aW5mby4KCjIwMDItMDctMDMgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy82OTQ0CgkqIGluaXQuYyAoYnVpbGRfYWdncl9pbml0KTogUmVtb3ZlIHF1YWxpZmllcnMgb2YgaW5pdCBiZWZvcmUgY2FsbGluZwoJYnVpbGRfdmVjX2luaXQuCgkoYnVpbGRfdmVjX2luaXQpOiBGbGF0dGVuIG11bHRpLWRpbWVuc2lvbmFsIGFycmF5IGR1cmluZyBjbGVhbnVwLgoJKGJ1aWxkX3ZlY19kZWxldGVfMSk6IEFib3J0IGlmIHRoZSB0eXBlIG9mIGVhY2ggZWxlbWVudCBpcyBhcnJheS4KCjIwMDItMDctMDMgIEdyYWhhbSBTdG90dCAgPGdyYWhhbS5zdG90dEBidGludGVybmV0LmNvbT4KCgkqIHB0LmMgKGluc3RhbnRpYXRlX2NsYXNzX3RlbXBsYXRlKTogRml4IHR5cG8uCgoyMDAyLTA3LTAyICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHR5cGVjazIuYyAoY3h4X2luY29tcGxldGVfdHlwZV9kaWFnbm9zdGljKTogRml4IHR5cG8gY2F1c2VkCglieSBDVlMgY29uZmxpY3QgaW4gbXkgbGFzdCBwYXRjaC4KCjIwMDItMDctMDIgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy82NzE2CgkqIHB0LmMgKGNhbl9jb21wbGV0ZV90eXBlX3dpdGhvdXRfY2lyY3VsYXJpdHkpOiBOZXcgZnVuY3Rpb24uCgkoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBVc2UgaXQuCgkqIHR5cGVjazIuYyAoY3h4X2luY29tcGxldGVfdHlwZV9kaWFnbm9zdGljKTogSW1wcm92ZSBlcnJvcgoJbWVzc2FnZSBkdWUgdG8gaW5jb21wbGV0ZSBmaWVsZHMuCgoyMDAyLTA3LTAxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy83MTEyCgkqIG1hbmdsZS5jICh3cml0ZV9leHByZXNzaW9uKTogQWRkIG1hbmdsaW5nIGZvciBzaXplb2Ygd2hlbgoJYXBwbGllZCB0byBhIHR5cGUuCgkqIG9wZXJhdG9ycy5kZWY6IFJlbW92ZSBzdGFsZSBjb21tZW50LgoKMjAwMi0wNi0zMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoQ1BUSV9USU5GT19ERUNMX1RZUEUpOiBSZXBsYWNlIHdpdGggLi4uCgkoQ1BUSV9UWVBFX0lORk9fUFRSX1RZUEUpOiAuLi4gdGhpcy4KCSh0aW5mb19kZWNsX3R5cGUpOiBSZXBsYWNlIHdpdGggLi4uCgkodHlwZV9pbmZvX3B0cl90eXBlKTogLi4uIHRoaXMuCgkoaW1wb3J0X2V4cG9ydF90aW5mbyk6IERlY2xhcmUuCgkodGluZm9fZGVjbF9wKTogUmVuYW1lIHRvIC4uLgoJKHVuZW1pdHRlZF90aW5mb19kZWNsX3ApOiAuLi4gdGhpcy4KCSogZGVjbDIuYyAoaW1wb3J0X2V4cG9ydF9kZWNsKTogQnJlYWsgb3V0IHRpbmZvIGhhbmRsaW5nIGludG8gLi4uCgkoaW1wb3J0X2V4cG9ydF90aW5mbyk6IC4uLiBoZXJlLiBOZXcgZnVuY3Rpb24uCgkoZmluaXNoX2ZpbGUpOiBBZGp1c3QuCgkqIHJ0dGkuYyAoVElORk9fUkVBTF9OQU1FKTogTmV3IG1hY3JvLgoJKGluaXRfcnR0aV9wcm9jZXNzaW5nKTogQ3JlYXRlIHRoZSB0aW5mbyB0eXBlcy4KCShnZXRfdGluZm9fZGVjbF9keW5hbWljKTogVXNlIHR5cGVfaW5mb19wdHJfdHlwZSwgZ2V0X3RpbmZvX3B0ci4KCShnZXRfdGluZm9fZGVjbCk6IEFkanVzdC4KCShnZXRfdGluZm9fcHRyKTogTmV3IGZ1bmN0aW9uLgoJKGdldF90eXBlX2lkKTogVXNlIGl0LgoJKHRpbmZvX2Jhc2VfaW5pdCk6IENyZWF0ZSB2dGFibGUgZGVjbCBoZXJlLCBpZiBpdCBkb2Vzbid0IGV4aXN0LgoJKHB0cl9pbml0aWFsaXplcik6IFVzZSBnZXRfdGluZm9fcHRyLgoJKHB0bV9pbml0aWFsaXplcik6IExpa2V3aXNlLgoJKHN5bnRoZXNpemVfdGluZm9fdmFyKTogQnJlYWsgaW50byAuLi4KCShnZXRfcHNldWRvX3RpX2luaXQpOiAuLi4gdGhpcy4gSnVzdCBjcmVhdGUgdGhlIGluaXRpYWxpemVyLgoJKGdldF9wc2V1ZG9fdGlfZGVzYyk6IC4uIGFuZCB0aGlzLgoJKGNyZWF0ZV9yZWFsX3RpbmZvX3Zhcik6IFJlbW92ZS4KCShjcmVhdGVfcHNldWRvX3R5cGVfaW5mbyk6IERvbid0IGNyZWF0ZSB0aGUgdnRhYmxlIGRlY2wgaGVyZS4KCShnZXRfdm1pX3BzZXVkb190eXBlX2luZm8pOiBSZW1vdmUuCgkoY3JlYXRlX3RpbmZvX3R5cGVzKTogQWRqdXN0LgoJKHRpbmZvX2RlY2xfcCk6IFJlbmFtZSB0byAuLi4KCSh1bmVtaXR0ZWRfdGluZm9fZGVjbF9wKTogLi4uIGhlcmUuIEFkanVzdC4KCShlbWl0X3RpbmZvX2RlY2wpOiBBZGp1c3QuIENyZWF0ZSB0aGUgaW5pdGlhbGl6ZXIuCgoyMDAyLTA2LTI3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy82Njk1CgkqIHB0LmMgKHRzdWJzdF9mcmllbmRfY2xhc3MpOiBTdWJzdGl0dXRlIGludG8gdGhlIGNvbnRleHQgb2YgdGhlCglmcmllbmQgYmVmb3JlIHVzaW5nIGl0LgoKMjAwMi0wNi0yNiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoeHJlZl90YWcpOiBDaGFuZ2UgcHJvdG90eXBlLgoJKGhhbmRsZV9jbGFzc19oZWFkKTogTGlrZXdpc2UuCgkoYnVpbGRfeF9jb21wb25lbnRfcmVmKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoY3h4X2luaXRfZGVjbF9wcm9jZXNzaW5nKTogQWRqdXN0IGNhbGwgdG8geHJlZl90YWcuCgkoeHJlZl90YWcpOiBUYWtlIGF0dHJpYnV0ZXMgYXMgYSBzZXBhcmF0ZSBwYXJhbWV0ZXIuCgkoeHJlZl90YWdfZnJvbV90eXBlKTogQWRqdXN0IGNhbGwgdG8geHJlZl90YWcuCgkqIGRlY2wyLmMgKGJ1aWxkX2V4cHJfZnJvbV90cmVlKTogQWRqdXN0IGNhbGwgdG8KCWJ1aWxkX3hfY29tcG9uZW50X3JlZi4KCShoYW5kbGVfY2xhc3NfaGVhZCk6IFRha2UgYXR0cmlidXRlcyBhcyBhIHNlcGFyYXRlIHBhcmFtZXRlci4KCSogcGFyc2UueSAocGFyc2VfeHJlZl90YWcpOiBOZXcgZnVuY3Rpb24uCgkocGFyc2VfaGFuZGxlX2NsYXNzX2hlYWQpOiBMaWtld2lzZS4KCShwcmltYXJ5KTogVXNlIHBhcnNlX3hyZWZfdGFnLgoJKGNsYXNzX2hlYWRfZGVjbCk6IFVzZSBwYXJzZV9oYW5kbGVfY2xhc3NfaGVhZC4KCShjbGFzc19oZWFkX2RlZm4pOiBMaWtld2lzZS4KCSogcnR0aS5jIChpbml0X3J0dGlfcHJvY2Vzc2luZyk6IEFkanVzdCBjYWxsIHRvIHhyZWZfdGFnLgoJKGJ1aWxkX2R5bmFtaWNfY2FzdF8xKTogTGlrZXdpc2UuCgkoY3JlYXRlX3BzZXVkb190eXBlX2luZm8pOiBMaWtld2lzZS4KCShlbWl0X3N1cHBvcnRfdGluZm9zKTogTGlrZXdpc2UuCgkqIHR5cGVjay5jIChidWlsZF9vYmplY3RfcmVmKTogQWRqdXN0IGNhbGwgdG8KCWJ1aWxkX3hfY29tcG9uZW50X3JlZi4KCShidWlsZF94X2NvbXBvbmVudF9yZWYpOiBSZW1vdmUgcHJvdGVjdCBwYXJhbWV0ZXIuCgoyMDAyLTA2LTI1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChidWlsZF9vcF9kZWxldGVfY2FsbCk6IFVzZSBCQVNFTElOS19GVU5DVElPTlMuCgkqIGNsYXNzLmMgKGhhbmRsZV91c2luZ19kZWNsKTogTGlrZXdpc2UuCgkoaW5zdGFudGlhdGVfdHlwZSk6IExpa2V3aXNlLgoJKiBjcC10cmVlLmggKEJBU0VMSU5LX0ZVTkNUSU9OUyk6IE5ldyBtYWNyby4KCSh4cmVmX2Jhc2V0eXBlcyk6IENoYW5nZSBwcm90b3R5cGUuCgkoYmVnaW5fbWVtX2luaXRpYWxpemVycyk6IE5ldyBmdW5jdGlvbi4KCShnZXRfb3ZlcmxvYWRlZF9mbik6IExpa2V3aXNlLgoJKiBkZWNsLmMgKHhyZWZfYmFzZXR5cGVzKTogU2ltcGxpZnkuCgkqIGVycm9yLmMgKGR1bXBfZXhwcik6IFVzZSBCQVNFTElOS19GVU5DVElPTlMuCgkqIGluaXQuYyAoYnVpbGRfb2Zmc2V0X3JlZik6IExpa2V3aXNlLgoJKiBwYXJzZS55IChiYXNlX2luaXQpOiBVc2UgYmVnaW5fbWVtX2luaXRpYWxpemVycygpLgoJKHN0cnVjdHNwKTogQWRqdXN0IGNhbGwgdG8geHJlZl9iYXNldHlwZXMuCgkqIHB0LmMgKGRldGVybWluZV9zcGVjaWFsaXphdGlvbik6IFVzZSBCQVNFTElOS19GVU5DVElPTlMuCgkoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBBZGp1c3QgY2FsbCB0byB4cmVmX2Jhc2V0eXBlcy4KCSogc2VtYW50aWNzLmMgKGJlZ2luX21lbV9pbml0aWFsaXplcnMpOiBOZXcgZnVuY3Rpb24uCgkqIHRyZWUuYyAoaXNfb3ZlcmxvYWRlZF9mbik6IFVzZSBCQVNFTElOS19GVU5DVElPTlMuCgkocmVhbGx5X292ZXJsb2FkZWRfZm4pOiBMaWtld2lzZS4KCShnZXRfb3ZlcmxvYWRlZF9mbik6IE5ldyBmdW5jdGlvbi4nCgkoZ2V0X2ZpcnN0X2ZuKTogVVNlIEJBU0VMSU5LX0ZVTkNUSU9OUy4KCjIwMDItMDYtMjQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKFNDQUxBUl9UWVBFX1ApOiBOZXcgbWFjcm8uCgkoY2hlY2tfZm9yX291dF9vZl9zY29wZV92YXJpYWJsZSk6IE5ldyBmdW5jdGlvbi4KCShhdF9jbGFzc19zY29wZV9wKTogTGlrZXdpc2UuCgkoZmluaXNoX2ZuYW1lKTogTGlrZXdpc2UuCgkqIGNsYXNzLmMgKGZpbmlzaF9zdHJ1Y3QpOiBVc2UgYXRfZnVuY3Rpb25fc2NvcGVfcC4KCSogZGVjbC5jIChjaGVja19mb3Jfb3V0X29mX3Njb3BlX3ZhcmlhYmxlKTogTmV3IGZ1bmN0aW9uLCBzcGxpdAoJb3V0IGZyb20gZG9faWRlbnRpZmllci4KCShmaW5pc2hfZW51bSk6IFVzZSBhdF9mdW5jdGlvbl9zY29wZV9wLgoJKiBsZXguYyAoZG9faWRlbnRpZmllcik6IFVzZSBjaGVja19mb3Jfb3V0X29mX3Njb3BlX3ZhcmlhYmxlLgoJKiBwYXJzZS55IChWQVJfRlVOQ19OQU1FKTogR2l2ZSBpdCA8dHR5cGU+LiAgVXNlIGZpbmlzaF9mbmFtZS4KCShwcmltYXJ5KTogVXNlIGF0X2Z1bmN0aW9uX3Njb3BlX3AuCgkqIHNlYXJjaC5jIChhdF9jbGFzc19zY29wZV9wKTogTmV3IGZ1bmN0aW9uLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2ZuYW1lKTogTGlrZXdpc2UuCgkoY2hlY2tfbXVsdGlwbGVfZGVjbGFyYXRvcnMpOiBVc2UgYXRfZnVuY3Rpb25fc2NvcGVfcC4KCjIwMDItMDYtMjMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwYXJzZS55IChwYXJzZV9zY29wZWRfaWQpOiBOZXcgZnVuY3Rpb24uCgkocHJpbWFyeSk6IFVzZSBpdC4KCSogY3AtdHJlZS5oIChkb19zY29wZWRfaWQpOiBBZGp1c3QgZGVjbGFyYXRpb24uCgkqIGxleC5jIChkb19zY29wZWRfaWQpOiBSZW1vdmUgY2FsbCB0byB5eWxleC4KCSogZGVjbDIuYyAoYnVpbGRfZXhwcl9mcm9tX3RyZWUpOiBBZGp1c3QgdXNlIG9mIGRvX3Njb3BlZF9pZC4KCSogdHlwZWNrMi5jIChhZGRfZXhjZXB0aW9uX3NwZWNpZmllcik6IFVzZSB0cmVlX2NvbnMsIHJhdGhlciB0aGFuCglleHBhbmRpbmcgaXQgaW5saW5lLgoKMjAwMi0wNi0yMyAgTWF0dCBUaG9tYXMgIDxtYXR0QDNhbS1zb2Z0d2FyZS5jb20+CgoJKiBkZWNsLmMgKGZpbmlzaF9mdW5jdGlvbik6IENoYW5nZSAiI2lmZGVmIFZNU19UQVJHRVQiIHRvCgkiI2lmIFZNU19UQVJHRVQiLgoKMjAwMi0wNi0yMSAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogbWFuZ2xlLmMgKGludGVnZXJfdHlwZV9jb2Rlcyk6IENvbnN0LWlmeS4KCjIwMDItMDYtMjAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgYysrLzY3NDcKCSogdHlwZWNrLmMgKG1hcmtfYWRkcmVzc2FibGUpOiBEb24ndCB0ZXN0IFRSRUVfQUREUkVTU0FCTEUgZWFybHkuCglDYWxsIHB1dF92YXJfaW50b19zdGFjay4KCjIwMDItMDYtMjAgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIHNwZXcuYyAocmVtb3ZlX2xhc3RfdG9rZW4pOiBVc2UgQVJSQVlfU0laRSBpbiBsaWV1IG9mIGV4cGxpY2l0CglhcnJheSBzaXplIGNhbGN1bGF0aW9uLgoKMjAwMi0wNi0yMCAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzY4OTIKCSogcHQuYyAodHN1YnN0X2V4cHIpOiBIYW5kbGUgRklMRV9TVE1ULgoKMjAwMi0wNi0yMCAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgYysrLzY3MjMKCSogcHQuYyAobG9va3VwX3RlbXBsYXRlX2NsYXNzKTogRG9uJ3QgYnVpbGQgY29tcGxldGUgYXJndW1lbnQgb2YKCUJPVU5EX1RFTVBMQVRFX1RFTVBMQVRFX1BBUk0gaWYgYXBwZWFyZWQgYXMgYSBkZWZhdWx0IHRlbXBsYXRlCglhcmd1bWVudC4KCjIwMDItMDYtMTkgIEFraW0gRGVtYWlsbGUgIDxha2ltQGVwaXRhLmZyPgoKCSogcGFyc2UueSAoVFlQRU5BTUUpOiBSZW5hbWUgYXMgdFRZUEVOQU1FIHRvIGF2b2lkIHRoZSBjbGFzaCB3aXRoCglkZWNsLmgncyBUWVBFTkFNRS4KCSogc3Bldy5jLCBsZXguYzogQWRqdXN0LgoJKiBwYXJzZS55IChleHBsaWNpdF9pbnN0YW50aWF0aW9uKTogQWRkIGVtcHR5IGFjdGlvbiB0byBvdmVycmlkZQoJdGhlIGRlZmF1bHQgJCQgPSAkMSB3aGVyZSBpdCBpbnRyb2R1Y2VzIGEgdHlwZSBjbGFzaC4KCjIwMDItMDYtMTQgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogc2VtYW50aWNzLmMgKGJlZ2luX2Zvcl9zdG10KTogUHVzaCB0aGUgJ2Zvcicgc2NvcGUgYmVmb3JlCglhZGRpbmcgdGhlIEZPUl9TVE1ULgoKCUMrKyBBQkkgY2hhbmdlcy4KCSogY2xhc3MuYyAoYnVpbGRfYmFzZV9maWVsZCk6IFNldCBERUNMX1BBQ0tFRC4KCShsYXlvdXRfY2xhc3NfdHlwZSk6IERvbid0IHVzZSB0YWlsIHBhZGRpbmcgb2YgUE9Ecy4KCSogbWFuZ2xlLmMgKHdyaXRlX3VucXVhbGlmaWVkX25hbWUpOiBGaXggdGVtcGxhdGUgY29udmVyc2lvbiBvcAoJbWFuZ2xpbmcuCgoyMDAyLTA2LTE2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIG9wdC82NzkzCgkqIHRyZWUuYyAoY3BfY2Fubm90X2lubGluZV90cmVlX2ZuKTogRG9uJ3Qgc2hvcnQtY2lyY3VpdCB0ZXN0CglhZnRlciB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uLgoKMjAwMi0wNi0xNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNwLXRyZWUuaCwgZGVjbDIuYyAoZmxhZ19tc19leHRlbnNpb25zKTogTW92ZSB0byBjLWNvbW1vbi4KCjIwMDItMDYtMTUgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoY29tcGlsZXJfZXJyb3IpOiBSZW1vdmUgZGVjbGFyYXRpb24uCgkqIGxleC5jIChjb21waWxlcl9lcnJvcik6IFJlbW92ZSBkZWZpbml0aW9uLgoKMjAwMi0wNi0xNCAgU3RldmUgRWxsY2V5ICA8c2plQGN1cC5ocC5jb20+CgoJKiBnKytzcGVjLmMgKExJQlVOV0lORCk6IE5ldy4KCShsYW5nX3NwZWNpZmljX2RyaXZlcik6IEFkZCBpdCBpZiBVU0VfVU5XSU5EX0VYQ0VQVElPTlMgaXMgc2V0LgoKMjAwMi0wNi0xMyAgSmVzc2ljYSBIYW4gIDxqZXNzaWNhQGN1cC5ocC5jb20+CgoJKiBjbGFzcy5jIChidWlsZF92dGFibGUpOiBVc2UgVEFSR0VUX1ZUQUJMRV9FTlRSWV9BTElHTi4KCShidWlsZF92dGJsX2luaXRpYWxpemVyKTogSG9ub3IgVEFSR0VUX1ZUQUJMRV9EQVRBX0VOVFJZX0RJU1RBTkNFLgoJKGJ1aWxkX3ZiYXNlX29mZnNldF92dGJsX2VudHJpZXMpOiBMaWtld2lzZS4KCSogcnR0aS5jIChidWlsZF9oZWFkb2YpOiBMaWtld2lzZS4KCShnZXRfdGluZm9fZGVjbF9keW5hbWljKTogTGlrZXdpc2UuCgkoY3JlYXRlX3BzZXVkb190eXBlX2luZm8pOiBMaWtld2lzZS4KCjIwMDItMDYtMTIgIFN0YW4gU2hlYnMgIDxzaGVic0BhcHBsZS5jb20+CgoJKiBtcHctY29uZmlnLmluOiBSZW1vdmUgZmlsZSwgbm8gbG9uZ2VyIHVzZWQuCgkqIG1wdy1tYWtlLnNlZDogRGl0dG8uCgoyMDAyLTA2LTA3ICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYzogVXBkYXRlIGNhbGwgdG8gY3BwX2hhbmRsZV9vcHRpb24uCgoyMDAyLTA2LTA3ICBILkouIEx1ICAoaGpsQGdudS5vcmcpCgoJKiBkZWNsMi5jIChmbGFnX3VzZV9jeGFfYXRleGl0KTogU2V0IHRvIERFRkFVTFRfVVNFX0NYQV9BVEVYSVQuCgoyMDAyLTA2LTA2ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlcnJvci5jIChjcF9lcnJvcl9hdCk6IEZpeCB0eXBvLgoKMjAwMi0wNi0wNCAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogZXJyb3IuYyAoY3BfZGlhZ25vc3RpY19zdGFydGVyKTogQWRqdXN0IGNhbGwuCgkobWF5YmVfcHJpbnRfaW5zdGFudGlhdGlvbl9jb250ZXh0KTogQ2hhbmdlIHByb3RvdHlwZSB0byB0YWtlIGEKCSdkaWFnbm9zdGljX2luZm8gKicuCgkocHJpbnRfaW5zdGFudGlhdGlvbl9mdWxsX2NvbnRleHQpOiBMaWtld2lzZS4KCShwcmludF9pbnN0YW50aWF0aW9uX3BhcnRpYWxfY29udGV4dCk6IExpa2V3aXNlLgoJKGNwX2RpYWdub3N0aWNfc3RhcnRlcik6IExpa2V3aXNlLgoJKGNwX2RpYWdub3N0aWNfZmluYWxpemVyKTogTGlrZXdpc2UuCgkoY3BfcHJpbnRfZXJyb3JfZnVuY3Rpb24pOiBMaWtld2lzZS4KCShjcF9wcmludGVyKTogVGFrZSBhIHNlY29uZGFyeSBwYXJhbWV0ZXIgYXMgYSAndGV4dF9pbmZvIConLgoJUmVtb3ZlIG91dHB1dF9zdGF0ZSBzYXZpbmdzLiAgQWRqdXN0IGNhbGxzLgoKMjAwMi0wNi0wMyAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0ByZWRoYXQuY29tPgoKCSogcHQuYyAoaW5saW5lX3Bhcm1fbGV2ZWxzKTogTWFyayBmb3IgR0MuCgoJKiBtYW5nbGUuYyAoc3RhcnRfbWFuZ2xpbmcpOiBBbGxvY2F0ZSBHLnN1YnN0aXR1dGlvbnMgaGVyZS4uLgoJKGluaXRfbWFuZ2xlKTogLi4uIHJhdGhlciB0aGFuIGhlcmUuCgkoZmluaXNoX21hbmdsaW5nKTogQ2xlYXIgdGhlIHZhcnJheSBwb2ludGVyIHdoZW4gZG9uZSB3aXRoIGl0LgoJKiBzcGV3LmMgKHl5bGV4c3RyaW5nKTogRG9uJ3QgdXNlIFZBUlJBWV9GUkVFLgoJKiBzZWFyY2guYyAoYmZzX3dhbGspOiBEb24ndCB1c2UgVkFSUkFZX0ZSRUUuCgkqIGRlY2wyLmMgKHBlbmRpbmdfc3RhdGljcyk6IFVzZSBnZW5ndHlwZSB0byBtYXJrLgoJKGRlZmVycmVkX2Zucyk6IExpa2V3aXNlLgoJKHNzZGZfZGVjbHMpOiBMaWtld2lzZS4KCShpbml0X2RlY2wyKTogRGVsZXRlLgoJKiBkZWNsLmMgKHBvcF9mcm9tX3RvcF9sZXZlbCk6IERvbid0IHVzZSBWQVJSQVlfRlJFRS4KCShjeHhfaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBEb24ndCBjYWxsIGluaXRfZGVjbDIuCgkoY3h4X3BvcF9mdW5jdGlvbl9jb250ZXh0KTogRG9uJ3QgdXNlIFZBUlJBWV9GUkVFLgoJKiBjcC10cmVlLmggKHN0cnVjdCBzYXZlZF9zY29wZSk6IE5vIG5lZWQgZm9yIHNwZWNpYWwgbWFya2luZwoJb2YgdmFycmF5cy4KCShzdHJ1Y3QgbGFuZ3VhZ2VfZnVuY3Rpb24pOiBMaWtld2lzZS4KCShsb2NhbF9jbGFzc2VzKTogVXNlIGdlbmd0eXBlIHRvIG1hcmsuCgkoaW5pdF9kZWNsMik6IERlbGV0ZSBwcm90b3R5cGUuCgkqIGNsYXNzLmMgKGluaXRfY2xhc3NfcHJvY2Vzc2luZyk6IERvbid0IHVzZQoJZ2djX2FkZF90cmVlX3ZhcnJheV9yb290LgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBEb24ndCB1c2UgVkFSUkFZX0ZSRUUuCgoJKiBkZWNsLmMgKHR5cGVuYW1lX2NvbXBhcmUpOiBEb24ndCB1c2Ugc2FtZV90eXBlX3AuCgoJKiBkZWNsLmM6IEluY2x1ZGUgaGFzaHRhYi5oIGluc3RlYWQgb2YgaGFzaC5oLgoJKHR5cGVuYW1lX2hhc2gpOiBVcGRhdGUgdG8gdXNlIGh0YWJfaC4KCSh0eXBlbmFtZV9jb21wYXJlKTogTGlrZXdpc2UuCgkodHlwZW5hbWVfaHRhYik6IFVzZSBnZW5ndHlwZSB0byBtYXJrLgoJKGJ1aWxkX3R5cGVuYW1lX3R5cGUpOiBVcGRhdGUgdG8gdXNlIGh0YWJfaC4KCSogTWFrZS1sYW5nLmluIChjcC9kZWNsLm8pOiBVc2UgSEFTSFRBQl9IIGluc3RlYWQgb2YgaGFzaC5oLgoKCSogTWFrZS1sYW5nLmluIChndC1jcC10cmVlLmgpOiBOZXcgcnVsZS4KCShjcC90cmVlLm8pOiBEZXBlbmQgb24gZ3QtY3AtdHJlZS5oLgoJKiBjb25maWctbGFuZy5pbiAoZ3RmaWxlcyk6IEFkZCBjcC90cmVlLmMuCgkqIHRyZWUuYzogSW5jbHVkZSBndC1jcC10cmVlLmguCgkobGlzdF9oYXNoX3RhYmxlKTogVXNlIGdlbmd0eXBlIHRvIG1hcmsuCgkoaW5pdF90cmVlKTogVXNlIGdlbmd0eXBlIHRvIG1hcmsgdHJlZXMuCgoJKiBNYWtlLWxhbmcuaW4gKGNwL2RlY2wubyk6IEFkZCBkZWJ1Zy5oIGRlcGVuZGVuY3kuCgkqIGNhbGwuYyAoc3RydWN0IHpfY2FuZGlkYXRlKTogVXNlIGdlbmd0eXBlLgoJKFVTRVJfQ09OVl9DQU5EKTogVXNlIFdSQVBQRVJfWkMuCgkoY29udmVydF9jbGFzc190b19yZWZlcmVuY2UpOiBVc2UgYnVpbGRfemNfd3JhcHBlci4KCShidWlsZF90eXBlX2NvbnZlcnNpb25fMSk6IExpa2V3aXNlLgoJKGJ1aWxkX292ZXJfY2FsbCk6IFVzZSBXUkFQUEVSX1pDLgoJKGFkZF93YXJuaW5nKTogVXNlIGJ1aWxkX3pjX3dyYXBwZXIuCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19NQVJLX1RSRUUpOiBEZWxldGUuCgkqIGNwLXRyZWUuaCAoc3RydWN0IGxhbmdfaWRlbnRpZmllcik6IFVzZSBnZW5ndHlwZS4KCShzdHJ1Y3QgdGVtcGxhdGVfcGFybV9pbmRleF9zKTogTGlrZXdpc2UuCgkoc3RydWN0IHB0cm1lbV9jc3QpOiBMaWtld2lzZS4KCShzdHJ1Y3QgdHJlZV9iaW5kaW5nKTogTGlrZXdpc2UuCgkoc3RydWN0IHRyZWVfb3ZlcmxvYWQpOiBMaWtld2lzZS4KCShzdHJ1Y3QgdHJlZV9zcmNsb2MpOiBMaWtld2lzZS4KCShzdHJ1Y3QgdHJlZV93cmFwcGVyKTogTGlrZXdpc2UuICBBbHNvIG1vZGlmeSB0byBoYXZlIGEgcG9pbnRlcgoJdG8gc3RydWN0IHpfY2FuZGlkYXRlIHJhdGhlciB0aGFuIHZvaWQuCgkoZW51bSBjcF90cmVlX25vZGVfc3RydWN0dXJlX2VudW0pOiBOZXcuCgkodW5pb24gbGFuZ190cmVlX25vZGUpOiBOZXcuCgkoY3h4X21hcmtfdHJlZSk6IERlbGV0ZSBwcm90b3R5cGUuCgkoY3BfdHJlZV9ub2RlX3N0cnVjdHVyZSk6IE5ldyBwcm90b3R5cGUuCgkoYnVpbGRfcHRyX3dyYXBwZXIpOiBEZWxldGUgcHJvdG90eXBlLgoJKGJ1aWxkX2ludF93cmFwcGVyKTogRGVsZXRlIHByb3RvdHlwZS4KCShidWlsZF96Y193cmFwcGVyKTogTmV3IHByb3RvdHlwZS4KCSogZGVjbC5jOiBJbmNsdWRlIGRlYnVnLmgKCShjeHhfbWFya190cmVlKTogRGVsZXRlLgoJKGNwX3RyZWVfbm9kZV9zdHJ1Y3R1cmUpOiBOZXcuCgkqIHRyZWUuYyAoYnVpbGRfcHRyX3dyYXBwZXIpOiBEZWxldGUuCgkoYnVpbGRfaW50X3dyYXBwZXIpOiBEZWxldGUuCgkoYnVpbGRfemNfd3JhcHBlcik6IE5ldy4KCgkqIGNwLXRyZWUuaCBbISBFTkFCTEVfVFJFRV9DSEVDS0lOR10gKExBTkdfVFlQRV9QVFJNRU1fQ0hFQ0spOgoJQ29ycmVjdCB0eXBvLiAgUGF0Y2ggZnJvbSBrX2Z1a3VpQGhpZ2h3YXkubmUuanAuCgoJKiBzZW1hbnRpY3MuYyAoY3VycmVudF9zdG10X3RyZWUpOiBVcGRhdGUgZm9yIGNoYW5nZSB0bwoJc3RydWN0IGxhbmd1YWdlX2Z1bmN0aW9uLgoJKGZpbmlzaF9tZW1faW5pdGlhbGl6ZXJzKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoY3h4X2luaXRfZGVjbF9wcm9jZXNzaW5nKTogRG9uJ3Qgc2V0IG1hcmtfbGFuZ19zdGF0dXMuCgkqIGNwLXRyZWUuaCAoc3RydWN0IGxhbmd1YWdlX2Z1bmN0aW9uKTogUmVuYW1lIGZyb20KCWNwX2xhbmd1YWdlX2Z1bmN0aW9uLiAgQ2hhbmdlIGFsbCB1c2VzLgoJKGNwX2Z1bmN0aW9uX2NoYWluKTogRG9uJ3QgbmVlZCB0byBjYXN0LgoKCSogY2xhc3MuYyAoZHVwbGljYXRlX3RhZ19lcnJvcik6IFJlc2V0IGRpc2NyaW1pbmF0b3IuCgkoY2hlY2tfYmFzZXNfYW5kX21lbWJlcnMpOiBVcGRhdGUgZm9yIGRhdGEgc3RydWN0dXJlIGNoYW5nZXMuCgkqIGNwLXRyZWUuaCAoc3RydWN0IGxhbmdfaWQyKTogVXNlIGdlbmd0eXBlLgoJKGZsYWdnZWRfdHlwZV90cmVlKTogTGlrZXdpc2UuCgkoU0VUX0xBTkdfSUQpOiBVc2UgR0dDIG9uIHN0cnVjdCBsYW5nX2lkMi4KCShzdHJ1Y3QgY3BfbGFuZ3VhZ2VfZnVuY3Rpb24pOiBVc2UgZ2VuZ3R5cGUuICBSZW1vdmUgZmllbGQKCSd4X3ZjYWxsc19wb3NzaWJsZV9wJy4KCShjdXJyZW50X3ZjYWxsc19wb3NzaWJsZV9wKTogRGVsZXRlLgoJKHN0cnVjdCBsYW5nX3R5cGVfaGVhZGVyKTogTmV3LgoJKHN0cnVjdCBsYW5nX3R5cGVfY2xhc3MpOiBSZW5hbWUgZnJvbSBzdHJ1Y3QgbGFuZ190eXBlLiAgSW5jbHVkZQoJc3RydWN0IGxhbmdfdHlwZV9oZWFkZXIuCgkoc3RydWN0IGxhbmdfdHlwZV9wdHJtZW0pOiBOZXcuCgkoc3RydWN0IGxhbmdfdHlwZSk6IE5ldy4KCShMQU5HX1RZUEVfQ0xBU1NfQ0hFQ0spOiBOZXcuICBVc2UgaXQgaW4gYWxsIHRoZSBhcHByb3ByaWF0ZSBtYWNyb3MuCgkoTEFOR19UWVBFX1BUUk1FTV9DSEVDSyk6IE5ldy4gIFVzZSBpdCBpbiBhbGwgdGhlIGFwcHJvcHJpYXRlIG1hY3Jvcy4KCShUWVBFX1NFVF9QVFJNRU1GVU5DX1RZUEUpOiBTZXQgZGlzY3JpbWluYXRvciwgdXBkYXRlIGZvciBjaGFuZ2VzLgoJKHN0cnVjdCBsYW5nX2RlY2xfZmxhZ3MpOiBVc2UgZ2VuZ3R5cGUuICBBZGQgZGlzY3JpbWluYXRvcnMuCgkoc3RydWN0IGxhbmdfZGVjbCk6IFVzZSBnZW5ndHlwZS4gIEFkZCBhbmQgdXNlIGRpc2NyaW1pbmF0b3JzLgoJVXBkYXRlIHRoZSBtYWNyb3MgdGhhdCByZWZlcmVuY2UgbW92ZWQgZmllbGRzLgoJKExBTkdfREVDTF9VMl9DSEVDSyk6IE5ldyBmdW5jdGlvbi4gIFVzZSBpdCB3aGVuIGFwcHJvcHJpYXRlLgoJKFNFVF9ERUNMX1RIVU5LX1ApOiBTZXQgZGlzY3JpbWluYXRvciB0b28uCgkoY2xlYXJfaW5saW5lX3RleHRfb2JzdGFjayk6IERlbGV0ZSBwcm90b3R5cGUuCgkoZmluaXNoX2lubGluZV9kZWZpbml0aW9ucyk6IERlbGV0ZSBwcm90b3R5cGUuCgkobWFya19wZW5kaW5nX2lubGluZXMpOiBEZWxldGUgcHJvdG90eXBlLgoJKGxhbmdfY2hlY2tfZmFpbGVkKTogTmV3IHByb3RvdHlwZS4KCSogZGVjbC5jIChzdHJ1Y3QgbmFtZWRfbGFiZWxfdXNlX2xpc3QpOiBVc2UgZ2VuZ3R5cGUuCgkoc3RydWN0IG5hbWVkX2xhYmVsX2xpc3QpOiBMaWtld2lzZS4KCShtYXJrX2JpbmRpbmdfbGV2ZWwpOiBEZWxldGUuCgkobWFya19uYW1lZF9sYWJlbF9saXN0cyk6IERlbGV0ZS4KCShwdXNoX2xvY2FsX25hbWUpOiBTZXQgZGlzY3JpbWluYXRvciBvbiBERUNMX0xBTkdfU1BFQ0lGSUMuCgkoY3h4X2luaXRfZGVjbF9wcm9jZXNzaW5nKTogVXNlIGdlbmVyYXRlZCBtYXJrZXIgcm91dGluZS4KCShiZWdpbl9kZXN0cnVjdG9yX2JvZHkpOiBEZWxldGUgZGVhZCBzZXQgdG8KCWN1cnJlbnRfdmNhbGxzX3Bvc3NpYmxlX3AuCgkobWFya19sYW5nX2Z1bmN0aW9uKTogRGVsZXRlLgoJKG1hcmtfY3BfZnVuY3Rpb25fY29udGV4dCk6IERlbGV0ZS4KCShsYW5nX21hcmtfdHJlZSk6IFVzZSBnZW5lcmF0ZWQgbWFya2VyIHJvdXRpbmVzLgoJKiBkZWNsMi5jIChzdGFydF9vYmplY3RzKTogU2V0IGRpc2NyaW1pbmF0b3Igd2hlbiBzZXR0aW5nCglHTE9CQUxfSU5JVF9QUklPUklUWS4KCSogbGV4LmMgKHJldHJvZml0X2xhbmdfZGVjbCk6IFNldCBkaXNjcmltaW5hdG9ycy4KCShjb3B5X2xhbmdfdHlwZSk6IFVwZGF0ZSBmb3IgY2hhbmdlcyB0byBsYW5nX3R5cGUgc3RydWN0dXJlLgoJKGNwX21ha2VfbGFuZ190eXBlKTogU2V0IGRpc2NyaW1pbmF0b3IuCgkqIHBhcnNlLnk6IFVzZSBnZW5ndHlwZSBvbiBZWUxWQUwuICBEb24ndCB1c2UgZG90cyBpbiBpZGVudGlmaWVycy4KCSogc2VhcmNoLmM6IEluY2x1ZGUgZ2djLmguCgkqIHNlbWFudGljcy5jIChhbm9uX2FnZ3JfdHlwZV9wKTogVXNlIHRoZSBtYWNybywgZG9uJ3QgaGFuZC1jb2RlIGl0LgoJKGZpbmlzaF9pbmxpbmVfZGVmaW5pdGlvbnMpOiBEZWxldGUuCgkqIHNwZXcuYyAoc3RydWN0IHRva2VuKTogVXNlIGdlbmd0eXBlLgoJKHN0cnVjdCB0b2tlbl9jaHVuayk6IE5ldy4KCShzdHJ1Y3QgdW5wYXJzZWRfdGV4dCk6IFVzZSBnZW5ndHlwZS4gIFN0b3JlIHRva2VucyBpbiBjaHVua3MuCgkoc3RydWN0IGZlZWQpOiBVc2UgZ2VuZ3R5cGUuCgkoZmVlZF9vYnN0YWNrKTogRGVsZXRlLgoJKGZlZWQpOiBNYXJrIGFzIEdDIHJvb3QuCgkocGVuZGluZ19pbmxpbmVzKTogTWFyayBhcyBHQyByb290LgoJKHBlbmRpbmdfaW5saW5lc190YWlsKTogTGlrZXdpc2UuCgkocHJvY2Vzc2luZ190aGVzZV9pbmxpbmVzKTogTGlrZXdpc2UuCgkodG9rZW5fb2JzdGFjayk6IE1ha2Ugc3RhdGljLgoJKGZpcnN0X3Rva2VuKTogTGlrZXdpc2UuCgkoaW5pdF9zcGV3KTogRG9uJ3QgaW5pdGlhbGl6ZSBkZWxldGVkIHRoaW5nczsgdXNlIGdlbmd0eXBlIGZvciByb290cy4KCShjbGVhcl9pbmxpbmVfdGV4dF9vYnN0YWNrKTogRGVsZXRlLgoJKGZlZWRfaW5wdXQpOiBVc2UgR0MgZm9yIHN0cnVjdCBmZWVkLiAgVXBkYXRlIGZvciBjaGFuZ2VzIHRvCglzdHJ1Y3QgdW5wYXJzZWRfdGV4dC4KCShtYXJrX3BlbmRpbmdfaW5saW5lcyk6IERlbGV0ZS4KCShuZXh0X3Rva2VuKTogUmVuYW1lIGZyb20gYWRkX3Rva2VuLiAgQ2hhbmdlIGFsbCBjYWxsZXJzLiAgVXBkYXRlCglmb3IgY2hhbmdlcyB0byBzdHJ1Y3QgdW5wYXJzZWRfdGV4dC4KCShzcGFjZV9mb3JfdG9rZW4pOiBOZXcuCgkocmVtb3ZlX2xhc3RfdG9rZW4pOiBOZXcuCgkoYWxsb2NfdW5wYXJzZWRfdGV4dCk6IE5ldy4KCShzbmFyZl9ibG9jayk6IFRha2UgYW4gdW5wYXJzZWRfdGV4dC4gIFVwZGF0ZSBmb3IgY2hhbmdlcyB0byBzdHJ1Y3QKCXVucGFyc2VkX3RleHQuCgkoc25hcmZfbWV0aG9kKTogVXBkYXRlIGZvciBjaGFuZ2VzIHRvIHN0cnVjdCB1bnBhcnNlZF90ZXh0LgoJKHNuYXJmX2RlZmFyZyk6IFVwZGF0ZSBmb3IgY2hhbmdlcyB0byBzdHJ1Y3QgdW5wYXJzZWRfdGV4dC4KCSogdHJlZS5jIChsYW5nX2NoZWNrX2ZhaWxlZCk6IE5ldy4KCgkqIE1ha2UtbGFuZy5pbiAoZ3QtY3AtY2FsbC5oIGd0LWNwLWRlY2wyLmggZ3QtY3AtcGFyc2UuaAoJZ3QtY3AtcHQuaCBndC1jcC1yZXBvLmggZ3QtY3Atc3Bldy5oKTogTmV3IHJ1bGVzLgoJKGNwL3NwZXcubyk6IEFkZCBkZXBlbmRlbmN5IG9uIGd0LTxmaWxlbmFtZT4uaC4KCShjcC9kZWNsMi5vKTogQWRkIGRlcGVuZGVuY3kgb24gZ3QtPGZpbGVuYW1lPi5oLgoJKGNwL2NhbGwubyk6IEFkZCBkZXBlbmRlbmN5IG9uIGd0LTxmaWxlbmFtZT4uaC4KCShjcC9wdC5vKTogQWRkIGRlcGVuZGVuY3kgb24gZ3QtPGZpbGVuYW1lPi5oLgoJKGNwL3JlcG8ubyk6IEFkZCBkZXBlbmRlbmN5IG9uIGd0LTxmaWxlbmFtZT4uaC4KCShjcC9wYXJzZS5vKTogQWRkIGRlcGVuZGVuY3kgb24gZ3QtPGZpbGVuYW1lPi5oLgoJKiBjYWxsLmM6IFVzZSBnZW5ndHlwZSBmb3Igcm9vdHMuCgkqIGNvbmZpZy1sYW5nLmluIChndGZpbGVzKTogQWRkIGNwLXRyZWUuaCBkZWNsLmggbGV4LmggY2FsbC5jCglkZWNsMi5jIHBhcnNlLnkgcHQuYyByZXBvLmMgc3Bldy5jLgoJKiBjcC10cmVlLmg6IFVzZSBnZW5ndHlwZSBmb3Igcm9vdHMuCgkoc3RydWN0IHNhdmVkX3Njb3BlKTogVXNlIEdHQywgZ2VuZ3R5cGUuCgkoY3BfcGFyc2VfaW5pdCk6IERlbGV0ZSBwcm90b3R5cGUuCgkoaW5pdF9wdCk6IERlbGV0ZSBwcm90b3R5cGUuCgkqIGRlY2wuYzogVXNlIGdlbmd0eXBlIGZvciByb290cy4KCShtYXJrX3NhdmVkX3Njb3BlKTogRGVsZXRlLgoJKGN4eF9pbml0X2RlY2xfcHJvY2Vzc2luZyk6IERvbid0IGNhbGwgZGVsZXRlZCBpbml0aWxpc2F0aW9uCglyb3V0aW5lcy4KCShzaWduZWRfc2l6ZV96ZXJvX25vZGUpOiBEZWxldGUsIHVudXNlZC4KCSogZGVjbC5oOiBVc2UgZ2VuZ3R5cGUgZm9yIHJvb3RzLgoJKiBkZWNsMi5jOiBVc2UgZ2VuZ3R5cGUgZm9yIHJvb3RzLgoJKiBsZXguaDogVXNlIGdlbmd0eXBlIGZvciByb290cy4KCSogcGFyc2UueTogVXNlIGdlbmd0eXBlIGZvciByb290cy4KCShjcF9wYXJzZV9pbml0KTogRGVsZXRlLgoJKiBwdC5jOiBVc2UgZ2VuZ3R5cGUgZm9yIHJvb3RzLgoJKGluaXRfcHQpOiBEZWxldGUuCgkqIHJlcG8uYzogVXNlIGdlbmd0eXBlIGZvciByb290cy4KCSogc3Bldy5jOiBVc2UgZ2VuZ3R5cGUgZm9yIHJvb3RzLgoKCSogTWFrZS1sYW5nLmluOiBBbGxvdyBmb3IgZmlsZW5hbWUgY2hhbmdlcy4gIEFkZCBndHlwZS1jcC5oLgoJKGNwL2RlY2wubyk6IEFkZCBkZXBlbmRlbmN5IG9uIGd0eXBlLWNwLmguCgkqIGRlY2wuYzogUmVtb3ZlIHVzZSBvZiBhZGRfZGVsZXRhYmxlX3Jvb3QsIHVzZSBHVFkgbWFya2VyIGluc3RlYWQuCglJbmNsdWRlIGd0eXBlLWNwLmguICBBbGxvdyBmb3IgZmlsZW5hbWUgY2hhbmdlcy4KCgkqIE1ha2UtbGFuZy5pbiAoY3AvZ3QtZGVjbC5oKTogR2VuZXJhdGUgdXNpbmcgZ2VuZ3R5cGUuCgkoY3AvZGVjbC5vKTogQWRkIGNwL2d0LWRlY2wuaCBkZXBlbmRlbmN5LgoJKiBjb25maWctbGFuZy5pbiAoZ3RmaWxlcyk6IE5ldy4KCSogdHJlZS5oOiBSZW5hbWUgc3RydWN0IGJpbmRpbmdfbGV2ZWwgdG8gc3RydWN0IGNwX2JpbmRpbmdfbGV2ZWwuCgkqIGRlY2wuYzogUmVuYW1lIHN0cnVjdCBiaW5kaW5nX2xldmVsIHRvIHN0cnVjdCBjcF9iaW5kaW5nX2xldmVsLgoJSW5jbHVkZSBjcC9ndC1kZWNsLmguCgkoc3RydWN0IGNwX2JpbmRpbmdfbGV2ZWwpOiBVc2UgZ2VuZ3R5cGUuCgkobWFrZV9iaW5kaW5nX2xldmVsKTogVXNlIEdHQyBvbiBzdHJ1Y3QgY3BfYmluZGluZ19sZXZlbC4KCShtYXJrX2JpbmRpbmdfbGV2ZWwpOiBVc2UgZ3RfZ2djX21fY3BfYmluZGluZ19sZXZlbC4KCShjeHhfaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBNYXJrIGZyZWVfYmluZGluZ19sZXZlbCBhcwoJZGVsZXRhYmxlLgoKCSogZGVjbC5jIChtYXJrX2NwX2Z1bmN0aW9uX2NvbnRleHQpOiBVcGRhdGUgY2FsbGluZyBzZXF1ZW5jZS4KCgkqIGRlY2wuYyAoc3RhcnRfZnVuY3Rpb24pOiBEb24ndCBmcmVlICdzdHJ1Y3QKCWNwX2xhbmd1YWdlX2Z1bmN0aW9uJy4KCShwb3BfY3BfZnVuY3Rpb25fY29udGV4dCk6IExpa2V3aXNlLgoJKHNhdmVfZnVuY3Rpb25fZGF0YSk6IEFsbG9jYXRlIGl0IHVzaW5nIEdDLgoJKiBzZW1hbnRpY3MuYyAoZ2VucnRsX3N0YXJ0X2Z1bmN0aW9uKTogRG9uJ3QgZnJlZSAnc3RydWN0CgljcF9sYW5ndWFnZV9mdW5jdGlvbicuCgoyMDAyLTA1LTMxICBNYXR0aGV3IFdvb2RjcmFmdCAgPG1hdHRoZXd3QGNoaWFyay5ncmVlbmVuZC5vcmcudWs+CgoJKiBsYW5nLXNwZWNzLmg6IFVzZSBjcHBfZGVidWdfb3B0aW9ucy4KCjIwMDItMDUtMjggIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtYW5nbGUuYywgdHJlZS5jOiBJbmNsdWRlIHJlYWwuaC4KCSogTWFrZS1sYW5nLmluOiBVcGRhdGUgZGVwZW5kZW5jeSBsaXN0cy4KCjIwMDItMDUtMjUgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGxleC5jOiBEb24ndCBpbmNsdWRlIGMtbGV4LmguCgkqIHBhcnNlLnksIHNwZXcuYzogRG9uJ3QgaW5jbHVkZSBjLWxleC5oOyBpbmNsdWRlIGMtcHJhZ21hLmguCgoyMDAyLTA1LTIzICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBzcGV3LmMgKHl5dW5nZXRjLCBzbmFyZl9ibG9jayk6IFJlbW92ZSBpbmRlbnRfbGV2ZWwgaGFuZGxpbmcuCgoyMDAyLTA1LTIyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZGVjbC5jIChvYnNjdXJlX2NvbXBsZXhfaW5pdCk6IENoZWNrIGZvciBWQVJfREVDTAoJYmVmb3JlIHVzaW5nIERFQ0xfVEhSRUFEX0xPQ0FMLgoKMjAwMi0wNS0yMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAoY2hlY2tfdGFnX2RlY2wpOiBIYW5kbGUgUklEX1RIUkVBRC4KCShvYnNjdXJlX2NvbXBsZXhfaW5pdCk6IFJlamVjdCBydW4tdGltZSBpbml0IG9mIHRscy4KCShncm9rdmFyZGVjbCwgZ3Jva2RlY2xhcmF0b3IpOiBIYW5kbGUgUklEX1RIUkVBRC4KCSogbGV4LmMgKHJlc3dvcmRzKTogQWRkIF9fdGhyZWFkLgoJKHJpZF90b195eSk6IE1hcCBSSURfVEhSRUFEIHRvIFNDU1BFQy4KCjIwMDItMDUtMjIgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19QT1NUX09QVElPTlMpOiBVc2UgY19jb21tb25fcG9zdF9vcHRpb25zLgoJKiBjcC10cmVlLmggKGN4eF9wb3N0X29wdGlvbnMpOiBLaWxsLgoJKiBjcC1sZXguYyAoY3h4X3Bvc3Rfb3B0aW9ucyk6IEtpbGwuCgoyMDAyLTA1LTIxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogbGV4LmMgKHJpZF90b195eSk6IEFkZCBSSURfVEhSRUFELgoKMjAwMi0wNS0yMSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBpbml0LmMgKGJ1aWxkX3ZlY19pbml0KTogVGVzdCBmb3IgdHJpdmlhbCBjb3B5LWFzc2lnbm1lbnQgd2hlbgoJY29weS1hc3NpZ25pbmcgYXJyYXlzLgoKMjAwMi0wNS0yMCAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogaW5pdC5jIChidWlsZF9kZWZhdWx0X2luaXQpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoKMjAwMi0wNS0yMCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjYWxsLmMgKGFueV9zdHJpY3RseV92aWFibGUpOiBOZXcuCgkoYnVpbGRfbmV3X29wKTogVXNlIGl0IGZvciBDT01QT1VORF9FWFBSIGFuZCBBRERSX0VYUFJzLgoKMjAwMi0wNS0xOSAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBlcnJvci5jIChkdW1wX3R5cGUpIFtUWVBFT0ZfVFlQRV06IEZpeCBwYXJlbnRoZXNpcyBwcmludGluZy4KCjIwMDItMDUtMTkgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGMrKy8xODYsIERSIDI1OQoJKiBwdC5jIChkb19kZWNsX2luc3RhbnRpYXRpb24pOiBEb24ndCBjb21wbGFpbiBleHBsaWNpdAoJaW5zdGFudGlhdGlvbiBhZnRlciBleHBsaWNpdCBzcGVjaWFsaXphdGlvbi4KCShkb190eXBlX2luc3RhbnRpYXRpb24pOiBMaWtld2lzZS4KCjIwMDItMDUtMTkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY3AtdHJlZS5oIChjb21wbGV0ZV90eXBlX29yX2RpYWdub3N0aWMpOiBDaGFuZ2VkIHByb3RvdHlwZSwKCXJlbmFtZWQgZnJvbS4uLgoJKGNvbXBsZXRlX3R5cGVfb3JfZWxzZSk6IC4uLiB0aGlzLiAgUmVkZWZpbmVkIGFzIG1hY3JvLgoJKGN4eF9pbmNvbXBsZXRlX3R5cGVfZGlhZ25vc3RpYyk6IERlY2xhcmUuCgkoY3h4X2luY29tcGxldGVfdHlwZV9lcnJvcik6IERlZmluZSBhcyBtYWNyby4KCSogaW5pdC5jIChidWlsZF9kZWxldGUpOiBXYXJuIGFib3V0IGluY29tcGxldGUgdHlwZXMgb3RoZXIgdGhhbgoJdm9pZCwgYW5kIHVzZSB0aGUgYnVpbHQtaW4gb3BlcmF0b3IgZGVsZXRlIGZvciB0aGVtLgoJKiB0eXBlY2suYyAoY29tcGxldGVfdHlwZV9vcl9kaWFnbm9zdGljKTogUmVuYW1lZCBmcm9tCgljb21wbGV0ZV90eXBlX29yX2Vsc2UuICBBZGRlZCB3YXJuX29ubHkgYXJndW1lbnQsIHBhc3NlZCB0by4uLgoJKiB0eXBlY2syLmMgKGN4eF9pbmNvbXBsZXRlX3R5cGVfZGlhZ25vc3RpYyk6IC4uLiB0aGlzLiAgUHJpbnQKCXdhcm5pbmdzIG9yIGVycm9ycyBkZXBlbmRpbmcgb24gbmV3IHdhcm5fb25seSBhcmd1bWVudC4gIFJlbmFtZWQKCWZyb20uLi4KCShjeHhfaW5jb21wbGV0ZV90eXBlX2Vycm9yKTogLi4uIHRoaXMuICBOZXcgaW1wbGVtZW50YXRpb24gaW4KCXRlcm1zIG9mIGN4eF9pbmNvbXBsZXRlX3R5cGVfZGlhZ25vc3RpYy4KCjIwMDItMDUtMTggIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy82NjExCgkqIGRlY2wyLmMgKGltcG9ydF9leHBvcnRfZGVjbCk6IElmIHdlIGNsZWFyCglERUNMX05PVF9SRUFMTFlfRVhURVJOLCBtYWtlIHN1cmUgREVDTF9FWFRFUk5BTCBpcyBzZXQuCgoyMDAyLTA1LTE1ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiBjKysvNjYyMAoJKiBwdC5jICh2ZXJpZnlfY2xhc3NfdW5pZmljYXRpb24pOiBEb24ndCBjaGVjayBpZiBQQVJNIGlzIHRlbXBsYXRlCglwYXJhbWV0ZXIgZGVwZW5kZW50LiAgU2ltcGxpZnkuCgkodW5pZnkpIFtURU1QTEFURV9QQVJNX0lOREVYXTogSGFuZGxlIHdoZW4gQVJHIGlzIGEgdGVtcGxhdGUKCXBhcmFtZXRlciBkZXBlbmRlbnQgZXhwcmVzc2lvbi4KCjIwMDItMDUtMTQgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogcnR0aS5jIChnZXRfdGluZm9fZGVjbCk6IERvbid0IGNhbGwgY29tZGF0X2xpbmthZ2UuCglEbyBzZXQgREVDTF9DT01EQVQuCgkoc3ludGhlc2l6ZV90aW5mb192YXIpOiBUYWtlIHRoZSBwdWJsaWMgZGVjbC4KCShjcmVhdGVfcmVhbF90aW5mb192YXIpOiBMaWtld2lzZS4gIENoZWNrIERFQ0xfQ09NREFULgoJKGVtaXRfdGluZm9fZGVjbCk6IEFkanVzdC4gIENhbGwgaW1wb3J0X2V4cG9ydF9kZWNsLgoJKiBkZWNsMi5jIChpbXBvcnRfZXhwb3J0X2RlY2wpOiBTaW1wbGlmeSB0aW5mbyBkZWNsIGhhbmRsaW5nLgoKMjAwMi0wNS0xNCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBsYW5nX3R5cGUpOiBBZGRlZCBub25femVyb19pbml0LgoJKENMQVNTVFlQRV9OT05fWkVST19JTklUX1ApOiBOZXcgbWFjcm8uCgkoemVyb19pbml0X3AsIGZvcmNlX3N0b3JlX2luaXRfdmFsdWUsIGJ1aWxkX2ZvcmNlZF96ZXJvX2luaXQpOiBEZWNsYXJlLgoJKiBjbGFzcy5jIChjaGVja19maWVsZF9kZWNscyk6IFRlc3Qgbm9uX3plcm9faW5pdC4KCSogY3Z0LmMgKGNvbnZlcnRfdG9fcG9pbnRlcl9mb3JjZSk6IFVzZSBjcF9jb252ZXJ0X3RvX3BvaW50ZXIgZm9yCgl6ZXJvLXRvLU5VTEwgY29udmVyc2lvbnMuCgkqIGRlY2wuYyAob2JzY3VyZV9jb21wbGV4X2luaXQpOiBEb24ndCByZXNldCBERUNMX0lOSVRJQUwgb2YgYQoJdHlwZSB0aGF0IG5lZWRzIHplcm8taW5pdGlhbGl6YXRpb24gd2l0aG91dCB6ZXJvcy4KCShjaGVja19pbml0aWFsaXplcl9kZWNsKTogQ29tcHV0ZSB6ZXJvLWluaXRpYWxpemVyIGZvciB0eXBlcwoJdGhhdCByZXF1aXJlIGEgbm9uLXRyaXZpYWwgb25lLgoJKiBpbml0LmMgKGJ1aWxkX2ZvcmNlZF96ZXJvX2luaXQpOiBOZXcgZnVuY3Rpb24uCgkoYnVpbGRfZGVmYXVsdF9pbml0KTogVXNlIGl0LgoJKiB0cmVlLmMgKHplcm9faW5pdF9wKTogTmV3IGZ1bmN0aW9uLgoJKiB0eXBlY2syLmMgKGZvcmNlX3N0b3JlX2luaXRfdmFsdWUpOiBOZXcgZnVuY3Rpb24uCgkocHJvY2Vzc19pbml0X2NvbnN0cnVjdG9yKTogQ3JlYXRlIG5vbi10cml2aWFsIHplcm8taW5pdGlhbGl6ZXJzCglmb3IgYXJyYXkgbWVtYmVycyBhbmQgY2xhc3MgZmllbGRzLgoKMjAwMi0wNS0xNCAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogbGFuZy1zcGVjcy5oOiBSZW1vdmUgcmVkdW5kYW50IC1sYW5nLWMrKy4KCjIwMDItMDUtMTMgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogY2xhc3MuYyAoYnVpbGRfdnRibF9yZWZfMSk6IFVzZSBmaXhlZF90eXBlX29yX251bGwuCgkoZml4ZWRfdHlwZV9vcl9udWxsKTogU2VlIHRocm91Z2ggcmVmZXJlbmNlIHZhcnMuCgkoYnVpbGRfYmFzZV9wYXRoKTogVnRhYmxlIGNvbnRlbnRzIGFyZSBjb25zdGFudC4KCSogdHlwZWNrLmMgKGdldF9tZW1iZXJfZnVuY3Rpb25fZnJvbV9wdHJmdW5jKTogTGlrZXdpc2UuCgoyMDAyLTA1LTEyICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGNwLWxhbmcuYyAob2tfdG9fZ2VuZXJhdGVfYWxpYXNfc2V0X2Zvcl90eXBlKTogQmFja2VuZC1jcmVhdGVkCglzdHJ1Y3RzIGFyZSBzYWZlLgoKMjAwMi0wNS0wOSAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogY3AtdHJlZS5oIChmbGFnX2Fuc2kpOiBSZW1vdmUuCgkqIGRlY2wyLmMgKGZsYWdfYW5zaSk6IFJlbW92ZS4KCShjeHhfZGVjb2RlX29wdGlvbik6IFNldCBmbGFnX2lzbyBhbmQgZmxhZ191bmRlZi4KCjIwMDItMDUtMDkgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogdHlwZWNrLmMgKGdldF9tZW1iZXJfZnVuY3Rpb25fZnJvbV9wdHJmdW5jKTogUmVvcmdhbml6ZS4KCVVzZSBzdWJ0cmFjdGlvbiByYXRoZXIgdGhhbiBhIGJpdG1hc2sgdG8gZ2V0IHRoZSBpbmRleC4KCSogY3Z0LmMgKGNwX2NvbnZlcnRfdG9fcG9pbnRlcik6IEJhaWwgb24gYW4gZXJyb3JfbWFya19ub2RlLgoKCSogcHQuYyAodHN1YnN0X2V4cHIpIFtBU01fU1RNVF06IENvcHkgQVNNX0lOUFVUX1AuCgoyMDAyLTA1LTA3ICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBNYWtlLWxhbmcuaW4gKGRlY2wyLm8pOiBVcGRhdGUuCgkqIGNwLXRyZWUuaCAod2Fybl9tdWx0aWNoYXIpOiBSZW1vdmUuCgkqIGRlY2wyLmM6IEluY2x1ZGUgYy1jb21tb24uaC4KCSh3YXJuX211bHRpY2hhcik6IFJlbW92ZS4KCjIwMDItMDUtMDMgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogdHJlZS5jIChidWlsZF9jcGx1c19hcnJheV90eXBlKTogT25seSBjb25zdCBhbmQgdm9sYXRpbGUgZ2V0CglzcGVjaWFsIGhhbmRsaW5nLgoKCSogZGVjbC5jIChCT09MX1RZUEVfU0laRSk6IE1vdmUgZGVmYXVsdCB0byBkZWZhdWx0cy5oLgoKMjAwMi0wNC0zMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglBQkkgY2hhbmdlLCByZXR1cm5pbmcgc2ltcGxlIGNsYXNzZXMgZnJvbSBmdW5jdGlvbnMuCgkqIGNsYXNzLmMgKGZpbmlzaF9zdHJ1Y3RfYml0cyk6IE9ubHkgbWFyayBUUkVFX0FERFJFU1NBQkxFIGlmCglUWVBFX0hBU19UUklWSUFMX0lOSVRfUkVGIGlzIGZhbHNlIG9yCglUWVBFX0hBU19OT05UUklWSUFMX0RFU1RSVUNUT1IgaXMgdHJ1ZS4KCjIwMDItMDQtMzAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGRlYnVnLzY0MzYKCSogZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IERvbid0IG92ZXJyaWRlIFRZUEVfTkFNRSBvZiBhbgoJYW5vbnltb3VzIGNsYXNzIHdpdGggYSB0eXBlZGVmIGlmIHRoZXJlIGFyZSBhdHRyaWJ1dGVzLgoKMjAwMi0wNC0yOSAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAdHdpbnN1bi5jb20+CgoJKiBwYXJzZS55IChub21vZHNfaW5pdGRjbDApOiBSZXBsYWNlICQ8dHR5cGU+MyB3aXRoICQ8dHR5cGU+JC4KCjIwMDItMDQtMjkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIGMrKy82NDc3CgkqIGRlY2wuYyAoZm9sbG93X3RhZ190eXBlZGVmKTogQ2hlY2sgaWYgVFlQRV9OQU1FIChvcmlnaW5hbCkgaXMKCW5vbi1OVUxMIGZpcnN0LgoKMjAwMi0wNC0yOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNjQ5MgoJKiBwdC5jICh0c3Vic3RfZnJpZW5kX2NsYXNzKTogSWYgdGhlIGZyaWVuZCBoYXMgYW4gZXhwbGljaXQgc2NvcGUsCgllbnRlciB0aGF0IHNjb3BlIGJlZm9yZSBuYW1lIGxvb2t1cC4KCglQUiBjKysvNjQ4NgoJKiBtZXRob2QuYyAoZG9fYnVpbGRfY29weV9jb25zdHJ1Y3Rvcik6IEF2b2lkIGJ1aWxkaW5nCgljdi1xdWFsaWZpZWQgcmVmZXJlbmNlIHR5cGVzLgoKMjAwMi0wNC0yOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNTcxOQoJKiBkZWNsLmMgKGdyb2tfb3BfcHJvcGVydGllcyk6IEFzc2lnbm1lbnQgb3BzIGRvbid0IGhhdmUgdG8gcmV0dXJuCglieSB2YWx1ZS4gb3BlcmF0b3IlIHNob3VsZC4KCjIwMDItMDQtMjggIEZyYW56IFNpcmwgIDxGcmFuei5TaXJsLWtlcm5lbEBsYXV0ZXJiYWNoLmNvbT4KCglQUiBjLzYzNDMKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBDYWxsIG1lcmdlX3dlYWsuCgoyMDAyLTA0LTI2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogcGFyc2UueSAobWFsbG9jZWRfeXlzcywgbWFsbG9jZWRfeXl2cyk6IE5ldy4KCSh5eW92ZXJmbG93KTogUmUtYWRkLiAgU2V0IHRoZW0uCgkoZnJlZV9wYXJzZXJfc3RhY2tzKTogTmV3LgoKMjAwMi0wNC0yNiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNjQ5NwoJKiBtZXRob2QuYyAoZG9fYnVpbGRfYXNzaWduX3JlZik6IFBhc3MgYSBkZXJpdmF0aW9uIHRvCglidWlsZF9tZXRob2RfY2FsbCB3aGVuIGNhbGxpbmcgYmFzZSBjbGFzcyBhc3NpZ25tZW50IG9wZXJhdG9ycy4KCjIwMDItMDQtMjYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBwYXJzZS55ICh5eW92ZXJmbG93KTogUmV2ZXJ0LgoKMjAwMi0wNC0yNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBjLzM1ODEKCSogcGFyc2UueSAoc3RyaW5nKTogUmVtb3ZlLiAgVXBkYXRlIGFsbCB1c2VzIHRvIHVzZSBTVFJJTkcKCWluc3RlYWQsIGFuZCBub3QgY2FsbCBjb21iaW5lX3N0cmluZ3MuCgkqIHJ0dGkuYyAodGluZm9fbmFtZSk6IFVzZSBmaXhfc3RyaW5nX3R5cGUuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfYXNtX3N0bXQpOiBEb24ndCBjYWxsIGNvbWJpbmVfc3RyaW5ncy4KCSogc3Bldy5jICh5eWxleHN0cmluZyk6IE5ldy4KCShyZWFkX3Rva2VuKTogVXNlIGl0LgoKMjAwMi0wNC0yNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBjLzIxNjEKCSogcGFyc2UueSAoeXlvdmVyZmxvdyk6IE5ldy4KCjIwMDItMDQtMjUgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy81NjA3CgkqIHNlYXJjaC5jIChjaGVja19maW5hbF9vdmVycmlkZXIpOiBObyBsb25nZXIgc3RhdGljLgoJKiBjbGFzcy5jICh1cGRhdGVfdnRhYmxlX2VudHJ5X2Zvcl9mbik6IENhbGwgaXQuCgkqIGNwLXRyZWUuaDogQWRqdXN0LgoKMjAwMi0wNC0yNSAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogY3AtbGFuZy5jIChMQU5HX0hPT0tTX1NFVF9ZWURFQlVHKTogUmVtb3ZlLgoJKiBjcC10cmVlLmggKGN4eF9zZXRfeXlkZWJ1Zyk6IERpZS4KCSogbGV4LmMgKFlZREVCVUcpOiBHZXQgZnJvbSBjLWxleC5oLgoJKGN4eF9zZXRfeXlkZWJ1Zyk6IFJlbW92ZS4KCSogcGFyc2UueTogSW5jbHVkZSBjLWxleC5oLgoJKFlZREVCVUcpOiBHZXQgZnJvbSBjLWxleC5oLgoKMjAwMi0wNC0yNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNjQzOC4KCSogY3Z0LmMgKGNvbnZlcnRfdG9fdm9pZCk6IERvbid0IHVuY29uZGl0aW9uYWxseSBtYWtlIENPTkRfRVhQUnMKCXZvaWQuCgoyMDAyLTA0LTI0ICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBjcC1sYW5nLmMgKExBTkdfSE9PS1NfQ09NTU9OX0FUVFJJQlVURV9UQUJMRSwKCUxBTkdfSE9PS1NfRk9STUFUX0FUVFJJQlVURV9UQUJMRSwgTEFOR19IT09LU19BVFRSSUJVVEVfVEFCTEUpOgoJUmVkZWZpbmUuCgkqIGNwLXRyZWUuaCAoY3BfYXR0cmlidXRlX3RhYmxlKTogUmVuYW1lLgoJKiBkZWNsLmMgKGxhbmdfYXR0cmlidXRlX3RhYmxlKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKGN4eF9pbml0X2RlY2xfcHJvY2Vzc2luZyk6IERvbid0IHNldCBpdC4KCSogdHJlZS5jIChjcF9hdHRyaWJ1dGVfdGFibGUpOiBSZW5hbWUuCgoyMDAyLTA0LTI0ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBjKysvNjMzMQoJKiBtZXRob2QuYyAoZG9fYnVpbGRfY29weV9jb25zdHJ1Y3Rvcik6IFVzZSBjcF9idWlsZF9xdWFsaWZpZWRfdHlwZS4KCSogdHlwZWNrLmMgKGJ1aWxkX21vZGlmeV9leHByKTogQWxsb3cgYXJyYXlzIHRvIGRpZmZlciBpbiBjdi1xdWFscy4KCVRoZSBwZWR3YXJuIGZvciBhcnJheSBhc3NpZ25tZW50IGlzIG5vdyB1bmNvbmRpdGlvbmFsLgoJKiB0cmVlLmMgKGJ1aWxkX2NwbHVzX2FycmF5X3R5cGVfMSk6IFN0aWxsIHByb2Nlc3Mgc2ltcGxlIGFycmF5IHR5cGVzCglub3JtYWxseSBpbiB0ZW1wbGF0ZXMuCgoJUFIgYysrLzYzOTUKCSogZGVjbC5jIChtYWtlX3J0bF9mb3Jfbm9ubG9jYWxfZGVjbCk6IERvbid0IG1lc3Mgd2l0aCAjcHJhZ21hIGkvaQoJc3R1ZmYgZm9yIGNvbWRhdHMuCgoyMDAyLTA0LTIzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHBhcnNlLnkgKGNoZWNrX2NsYXNzX2tleSk6IEFsbG93IEtFWSB0byBiZSB1bmlvbi9lbnVtL3N0cnVjdC9jbGFzcwoJbm9kZSB3aXRoIGF0dHJpYnV0ZXMuCgoyMDAyLTItMjMgIERhdmlkIE8nQnJpZW4gIDxvYnJpZW5ARnJlZUJTRC5vcmc+CgoJKiBnKytzcGVjLmMgKE1BVEhfTElCUkFSWV9QUk9GSUxFLCBMSUJTVERDWFhfUFJPRklMRSk6IEFkZC4KCVVzZSBNQVRIX0xJQlJBUllfUFJPRklMRSBhbmQgTElCU1REQ1hYX1BST0ZJTEUgaWYgcHJvZmlsZSBmbGFnIGdpdmVuLgoKMjAwMi0wNC0yMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNjI1NjoKCSogcHQuYyAodHN1YnN0X2ZyaWVuZF9jbGFzcyk6IEhhbmRsZSB0ZW1wbGF0ZXMgd2l0aCBleHBsaWNpdAoJbmVzdGVkIG5hbWVzLgoKCVBSIGMrKy82MzMxOgoJKiB0eXBlY2suYyAobWVyZ2VfdHlwZXMpOiBSZW1lbWJlciB0aGUgY3YtcXVhbGlmaWNhdGlvbiBvZiBwb2ludGVyCgl0eXBlcyB3aGVuIG1lcmdpbmcgdGhlbS4KCjIwMDItMDQtMjAgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19GVU5DVElPTl9JTklULAoJTEFOR19IT09LU19GVU5DVElPTl9GUkVFLCBMQU5HX0hPT0tTX0ZVTkNUSU9OX01BUkspOiBSZWRlZmluZS4KCSogY3AtdHJlZS5oIChjeHhfcHVzaF9mdW5jdGlvbl9jb250ZXh0LCBjeHhfcG9wX2Z1bmN0aW9uX2NvbnRleHQsCgljeHhfbWFya19mdW5jdGlvbl9jb250ZXh0KTogTmV3LgoJKiBkZWNsLmMgKHB1c2hfY3BfZnVuY3Rpb25fY29udGV4dCwgcG9wX2NwX2Z1bmN0aW9uX2NvbnRleHQsCgltYXJrX2NwX2Z1bmN0aW9uX2NvbnRleHQpOiBSZW5hbWUgZm9yIGNvbnNpc3RlbmN5LgoJKGN4eF9pbml0X2RlY2xfcHJvY2Vzc2luZyk6IERvbid0IHNldCBvbGQgaG9va3MuCgoyMDAyLTA0LTE5ICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBjYWxsLmMgKGNvbnZlcnRfdHlwZV9mcm9tX2VsbGlwc2lzKTogUmVuYW1lLCB1cGRhdGUuCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19UWVBFX1BST01PVEVTX1RPKTogUmVkZWZpbmUuCgkqIGNwLXRyZWUuaCAoY29udmVydF90eXBlX2Zyb21fZWxsaXBzaXMpOiBSZW5hbWUuCgkqIGRlY2wuYyAoY3h4X2luaXRfZGVjbF9wcm9jZXNzaW5nKTogRG9uJ3Qgc2V0IGhvb2suCgoyMDAyLTA0LTE4ICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBjYWxsLmMgKGJ1aWxkX25ld19tZXRob2RfY2FsbCk6IFVwZGF0ZS4KCSogY3AtbGFuZy5jIChMQU5HX0hPT0tTX0lOQ09NUExFVEVfVFlQRV9FUlJPUik6IFJlZGVmaW5lLgoJKiBjcC10cmVlLmggKGN4eF9pbmNvbXBsZXRlX3R5cGVfZXJyb3IpOiBOZXcuCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IsIGdyb2twYXJtcyk6IFVwZGF0ZS4KCSogZGVjbDIuYyAoY2hlY2tfY2xhc3Nmbik6IFVwZGF0ZS4KCSogcHQuYyAodHN1YnN0KTogVXBkYXRlLgoJKiB0eXBlY2suYyAoY29tcGxldGVfdHlwZV9vcl9lbHNlLCBleHByX3NpemVvZiwKCWRlY2F5X2NvbnZlcnNpb24pOiBVcGRhdGUuCgkqIHR5cGVjazIuYyAoaW5jb21wbGV0ZV90eXBlX2Vycm9yKTogUmVuYW1lLgoJKGFkZF9leGNlcHRpb25fc3BlY2lmaWVyKTogVXBkYXRlLgoKMjAwMi0wNC0xOCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzU2NTgKCSogc2VhcmNoLmMgKHNldHVwX2NsYXNzX2JpbmRpbmdzKTogQSBjbGFzcyB0ZW1wbGF0ZSBxdWFsaWZpZXMgYXMgYQoJdHlwZSBiaW5kaW5nLgoKMjAwMi0wNC0xNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgYysrLzYzMTYKCSogZGVjbDIuYyAoZmluaXNoX2ZpbGUpOiBDbGVhciBERUNMX0VYVEVSTkFMIGluIGEgc2VwYXJhdGUgbG9vcAoJYmVmb3JlIGV4cGFuZGluZy4KCjIwMDItMDQtMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbml0LmMgKGJlZ2luX2luaXRfc3RtdHMpOiBSZW1vdmUgY29tbWVudGVkIG91dCBjb2RlLgoJKGZpbmlzaF9pbml0X3N0bXRzKTogU2V0IFNUTVRfRVhQUl9OT19TQ09QRS4KCSogc2VtYW50aWNzLmMgKGJlZ2luX2dvYmFsX3N0bXRfZXhwcik6IEFkanVzdCBjYWxsIHRvCglleHBhbmRfc3RhcnRfc3RtdF9leHByLgoKMjAwMi0wNC0xNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAocmVnaXN0ZXJfZHRvcl9mbik6IFBhc3MgdGhlIGFkZHJlc3Mgb2YgZHNvX2hhbmRsZSwgbm90Cglkc29faGFuZGxlIGl0c2VsZiwgdG8gX19jeGFfYXRleGl0LgoKMjAwMi0wNC0xNSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBtZXJsaW4uY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmMgKGN4eF9wcmludF9lcnJvcl9mdW5jdGlvbik6IEFkanVzdCBjYWxsIHRvIG1hY3Jvcy4KCjIwMDItMDQtMTQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY2xhc3MuYyAobGF5b3V0X3ZpcnR1YWxfYmFzZXMpOiBEbyBhbGwgZHNpemUgY29tcHV0YXRpb24gb24gdHJlZXMuCgoyMDAyLTA0LTE0ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHR5cGVjay5jIChnZXRfbWVtYmVyX2Z1bmN0aW9uX2Zyb21fcHRyZnVuYyk6IERvbid0IGRvCglncmF0dWl0aW91cyBkaXZpc2lvbiBhbmQgbXVsdGlwbGljYXRpb24gb24KCXB0cm1lbWZ1bmNfdmJpdF9pbl9kZWx0YSB0YXJnZXRzLgoKMjAwMi0wNC0xMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNTM3My4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9leHByX3N0bXQpOiBSZW1lbWJlciB0aGUgdHlwZSBvZiB0aGUKCWV4cHJlc3Npb24gYmVmb3JlIGFueSBjb252ZXJzaW9ucyBhcmUgcGVyZm9ybWVkLgoKMjAwMi0wNC0xMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNTE4OS4KCSogY2FsbC5jIChhZGRfdGVtcGxhdGVfY2FuZGlkYXRlX3JlYWwpOiBEbyBub3QgdHJlYXQgbWVtYmVyCgl0ZW1wbGF0ZXMgYXMgY29weSBjb25zdHJ1Y3RvcnMuCgoyMDAyLTA0LTEyICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBEbyBub3QgY29weSB0aGUgUlRMIGZvciBhIHZhcmlhYmxlCglkZWNsYXJhdGlvbiBpZiB0aGUgb2xkIHZhcmlhYmxlIGhhZCBhbiBpbmNvbXBsZXRlIHR5cGUgYW5kIHRoZSBuZXcKCXZhcmlhYmxlIGRvZXMgbm90LgoJKGNvbXBsZXRlX3ZhcnMpOiBEbyBub3QgY2FsbCBsYXlvdXRfZGVjbCBmb3IgY29tcGxldGVkIHZhcmlhYmxlcy4KCjIwMDItMDQtMTIgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogRG9uJ3QgdHJ5IHRvIHVuaWZ5IGFuIGltcGxpY2l0IHR5cGVkZWYKCXdpdGggYW4gZXhwbGljaXQgb25lLgoJKGZvbGxvd190YWdfdHlwZWRlZik6IE5ldy4KCShsb29rdXBfdGFnKTogVXNlIGl0IHRvIGV4dHJhY3QgdGhlIHRhZyBvZiBhbiBleHBsaWNpdCB0eXBlZGVmLgoJKHhyZWZfdGFnKTogTGlrZXdpc2UuCgoyMDAyLTA0LTExICBBbmRyZXcgSGFsZXkgIDxhcGhAcmVkaGF0LmNvbT4KCgkqIHR5cGVjay5jICh0eXBlX2FmdGVyX3VzdWFsX2FyaXRobWV0aWNfY29udmVyc2lvbnMpOgoJSWYgdHdvIHR5cGVzIGhhdmUgdGhlIHNhbWUgdmFyaWFudCwgcmV0dXJuIGltbWVkaWF0ZWx5LgoJV2hlbiB0d28gZmxvYXRpbmctcG9pbnQgb3BlcmFuZHMgYXJlIHRoZSBzYW1lIHByZWNpc2lvbjoKCSAgY29udmVydCB0byBmbG9hdCBpZiBvbmUgb2YgdGhlIG9wZXJhbmRzIGlzIGZsb2F0OwoJICBpZiBuZWl0aGVyIG9wZXJhbmQgaXMgb25lIG9mIHRoZSBzdGFuZGFyZCB0eXBlcywgcmV0dXJuIHRoZSB0eXBlCgkgIG9mIHRoZSBmaXJzdCBvcGVyYW5kLgoKMjAwMi0wNC0xMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNTUwNwoJKiBkZWNsLmMgKG1ha2VfdHlwZW5hbWVfdHlwZSk6IFJlbW92ZSBpbXBsaWNpdCB0eXBlbmFtZW5lc3MuCgoyMDAyLTA0LTA5ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBvcHRpbWl6YXRpb24vNjE4OQoJKiBzZW1hbnRpY3MuYyAoZ2VucnRsX3N0YXJ0X2Z1bmN0aW9uKTogRG9uJ3QgZnJlZQoJREVDTF9TQVZFRF9GVU5DVElPTl9EQVRBIGZvciBpbmxpbmUgZnVuY3Rpb25zLgoKCSogaW5pdC5jIChidWlsZF9tZW1iZXJfY2FsbCk6IEZvciBub3csIGRvbid0IGNvbnZlcnQgdG8KCWludGVybWVkaWF0ZSBiYXNlIGlmIGl0IHdvdWxkIGNhdXNlIGFuIGVycm9yLgoKMjAwMi0wNC0wOCAgUGFvbG8gQ2FybGluaSAgPHBjYXJsaW5pQHVuaXR1cy5pdD4KCgkqIHBhcnNlLnkgKG5hbWVzcGFjZV9xdWFsaWZpZXIsIG1heWJlX2lkZW50aWZpZXIsCgliZWdpbl9leHBsaWNpdF9pbnN0YW50aWF0aW9uLCBlbmRfZXhwbGljaXRfaW5zdGFudGlhdGlvbiwKCWFwcGFyZW50X3RlbXBsYXRlX3R5cGUsIC5maW5pc2hfdGVtcGxhdGVfdHlwZSwKCWRvX2lkLCBtYXliZV9pbml0LCBkZWZhcmdfYWdhaW4sIGNvbXBvbmVudF9kZWNsXzEpOgoJQWRkIGVuZGluZyAnOycsIGluIGFjY29yZGFuY2Ugd2l0aCBQT1NJWC4KCjIwMDItMDQtMDYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzU1NzEKCSogY2xhc3MuYyAobGF5b3V0X2NsYXNzX3R5cGUpOiBSZW1lbWJlciBpbmNvbXBsZXRlIHN0YXRpYwoJdmFyaWFibGVzLgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IENhbGwgY29tcGxldGVfdmFycywgbm90CgloYWNrX2luY29tcGxldGVfc3RydWN0dXJlcy4KCSogY3AtdHJlZS5oIChoYWNrX2luY29tcGxldGVfc3RydWN0dXJlcyk6IFJlbmFtZSB0byAuLi4KCShjb21wbGV0ZV92YXJzKTogLi4uIHRoaXMuCgkoc3RydWN0IHNhdmVkX3Njb3BlKTogUmVtb3ZlIGluY29tcGxldGUuCgkobmFtZXNwYWNlX3Njb3BlX2luY29tcGxldGUpOiBSZW1vdmUuCgkqIGRlY2wuYyAoc3RydWN0IGJpbmRpbmdfbGV2ZWwpOiBSZW1vdmUgaW5jb21wbGV0ZS4KCShpbmNvbXBsZXRlX3ZhcnMpOiBOZXcgdmFyaWFibGUuCgkobWFya19iaW5kaW5nX2xldmVsKTogRG9uJ3QgbWFyayBpbmNvbXBsZXRlLgoJKHByaW50X2JpbmRpbmdfbGV2ZWwpOiBEb24ndCBwcmludCBpdC4KCShtYXJrX3NhdmVkX3Njb3BlKTogRG9uJ3QgbWFyayBpbmNvbXBsZXRlLgoJKHB1c2hkZWNsKTogVXNlIG1heWJlX3JlZ2lzdGVyX2luY29wbWxldGVfdmFyLgoJKGN4eF9pbml0X2RlY2xfcHJvY2Vzc2luZyk6IFJlZ2lzdGVyIGluY29tcGxldGVfdmFycyBmb3IgR0MuCgkoc3RhcnRfZGVjbF8xKTogQ2xhcmlmeSBlcnJvciBtZXNzYWdlLgoJKGhhY2tfaW5jb21wbGV0ZV92YXJzKTogUmVtb3ZlLgoJKG1heWJlX3JlZ2lzdGVyX2luY29tcGxldGVfdmFyKTogTmV3IGZ1bmN0aW9uLgoJKGNvbXBsZXRlX3ZhcnMpOiBMaWtld2lzZS4KCjIwMDItMDQtMDYgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy80OTM0CgkqIGVycm9yLmMgKGR1bXBfZXhwcikgW0NPTlZFUlRfRVhQUl06IE1ha2Ugc3VyZSBUUkVFX1RZUEUgKHQpIGlzCglzZXQgYmVmb3JlIGNoZWNraW5nIGl0LgoKCVBSIGMrKy81MjUKCSogaW5pdC5jIChidWlsZF9tZW1iZXJfY2FsbCk6IFVzZSBidWlsZF9zY29wZWRfcmVmLgoJKHJlc29sdmVfb2Zmc2V0X3JlZik6IExpa2V3aXNlLgoJKiBjYWxsLmMgKGJ1aWxkX3Njb3BlZF9tZXRob2RfY2FsbCk6IExpa2V3aXNlLgoJKiB0cmVlLmMgKG1heWJlX2R1bW15X29iamVjdCk6IEtsdWRnZSBhcm91bmQgY3VycmVudF9jbGFzc190eXBlIGJlaW5nCgl3cm9uZy4KCSogdHlwZWNrMi5jIChidWlsZF9zY29wZWRfcmVmKTogUmV0dXJuIHRoZSBiaW5mbyB2aWEgYmluZm9fcCBwYXJtLgoJKiBjcC10cmVlLmg6IEFkanVzdC4KCgkqIGluaXQuYyAocHVzaF9iYXNlX2NsZWFudXBzKTogSnVzdCB1c2UgYnVpbGRfc2NvcGVkX21ldGhvZF9jYWxsLgoKCVBSIGMrKy82MTc5CgkqIG1ldGhvZC5jIChpbXBsaWNpdGx5X2RlY2xhcmVfZm4pOiBQYXNzIHVucXVhbGlmaWVkIHR5cGUgdG8KCXN5bnRoZXNpemVfZXhjZXB0aW9uX3NwZWMuCgoyMDAyLTA0LTA0ICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBjcC1sYW5nLmMgKExBTkdfSE9PS1NfVFJVVEhWQUxVRV9DT05WRVJTSU9OKTogUmVkZWZpbmUuCgkqIGN2dC5jOiBVcGRhdGUgY29tbWVudC4KCSogaW5pdC5jIChleHBhbmRfY2xlYW51cF9mb3JfYmFzZSk6IFVwZGF0ZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9wYXJlbnRoZXNpemVkX2V4cHIpOiBVcGRhdGUuCgkqIHR5cGVjay5jIChjcF90cnV0aHZhbHVlX2NvbnZlcnNpb24pOiBVcGRhdGUuCgoyMDAyLTA0LTA0ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHNlbWFudGljcy5jIChmaW5pc2hfZWhfY2xlYW51cCk6IE5ldyBmbi4KCSogY3AtdHJlZS5oOiBBZGQgcHJvdG90eXBlLgoJKiBpbml0LmMgKHBlcmZvcm1fbWVtYmVyX2luaXQsIGV4cGFuZF9jbGVhbnVwX2Zvcl9iYXNlKTogVXNlCglmaW5pc2hfZWhfY2xlYW51cC4KCSogY3AtdHJlZS5kZWYgKFNVQk9CSkVDVCwgQ1RPUl9TVE1UKTogUmVtb3ZlLgoJKiBjcC10cmVlLmg6IFJlbW92ZSByZWZlcmVuY2VzLgoJKiBkZWNsLmMgKGJlZ2luX2NvbnN0cnVjdG9yX2JvZHksIGVuZF9jb25zdHJ1Y3Rvcl9ib2R5KTogTGlrZXdpc2UuCgkqIGR1bXAuYyAoY3BfZHVtcF90cmVlKTogTGlrZXdpc2UuCgkqIHB0LmMgKHRzdWJzdF9leHByKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChnZW5ydGxfY3Rvcl9zdG10LCBnZW5ydGxfc3Vib2JqZWN0KTogUmVtb3ZlLgoJKGNwX2V4cGFuZF9zdG10KTogUmVtb3ZlIGhhbmRsaW5nIG9mIENUT1JfU1RNVCBhbmQgU1VCT0JKRUNULgoJKiB0cmVlLmMgKGNwX3N0YXRlbWVudF9jb2RlX3ApOiBMaWtld2lzZS4KCgkqIGluaXQuYyAoYnVpbGRfbmV3XzEpOiBTZXQgQ0xFQU5VUF9FSF9PTkxZIG9uIGRlbGV0aW5nIGNsZWFudXAuCgoJUFIgYysrLzU2MzYKCSogc2VtYW50aWNzLmMgKG51bGxpZnlfcmV0dXJuc19yKTogSnVzdCBzZXQgQ0xFQU5VUF9FSF9PTkxZIG9uCgljbGVhbnVwIGZvciBucnYuCgoJUFIgYysrLzUxMDQKCSogdHlwZWNrLmMgKGNvbXB0eXBlcykgW0ZVTkNUSU9OX1RZUEVdOiBEb24ndCBjb21wYXJlIGV4Y2VwdGlvbgoJc3BlY2lmaWVycy4KCVtNRVRIT0RfVFlQRV06IFVzZSBzYW1lIGNvZGUgYXMgRlVOQ1RJT05fVFlQRS4KCjIwMDItMDQtMDMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjcC1sYW5nLmMgKGN4eF93YXJuX3VudXNlZF9nbG9iYWxfZGVjbCk6IE5ldy4KCShMQU5HX0hPT0tTX1dBUk5fVU5VU0VEX0dMT0JBTF9ERUNMKTogTmV3LgoKMjAwMi0wNC0wMyAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogY3AtbGFuZy5jIChMQU5HX0hPT0tTX1NFVF9ERUNMX0FTU0VNQkxFUl9OQU1FKTogUmVkZWZpbmUuCgkqIHRyZWUuYyAoaW5pdF90cmVlKTogRG9uJ3Qgc2V0IGhvb2suCgoyMDAyLTA0LTAzICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiBjKysvNTk5ODoKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBEb24ndCBtZXNzIHdpdGggYXNzZW1ibGVyIG5hbWVzIHdoZW4KCXJlZGVjbGFyaW5nIGJ1aWx0aW4gZnVuY3Rpb25zIGFzIHN0YXRpYy4KCjIwMDItMDQtMDEgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNhbGwuYyAoYnVpbGRfYWRkcl9mdW5jKTogVXBkYXRlLgoJKiBjbGFzcy5jIChyZXNvbHZlX2FkZHJlc3Nfb2Zfb3ZlcmxvYWRlZF9mdW5jdGlvbik6IFVwZGF0ZS4KCSogY3AtbGFuZy5jIChMQU5HX0hPT0tTX01BUktfQUREUkVTU0FCTEUpOiBSZWRlZmluZS4KCSogY3AtdHJlZS5oIChjeHhfbWFya19hZGRyZXNzYWJsZSk6IE5ldy4KCSogZGVjbC5jIChyZWdpc3Rlcl9kdG9yX2ZuLCBjeHhfbWF5YmVfYnVpbGRfY2xlYW51cCk6IFVwZGF0ZS4KCSogZGVjbDIuYyAoYnVpbGRfY2xlYW51cCk6IFVwZGF0ZS4KCSogZXhjZXB0LmMgKGJ1aWxkX3Rocm93KTogVXBkYXRlLgoJKiBpbml0LmMgKHJlc29sdmVfb2Zmc2V0X3JlZik6IFVwZGF0ZS4KCSogcHQuYyAoY29udmVydF9ub250eXBlX2FyZ3VtZW50KTogVXBkYXRlLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2FzbV9zdG10LCBzaW1wbGlmeV9hZmZyX2luaXRfZXhwcnNfcik6IFVwZGF0ZS4KCSogdHlwZWNrLmMgKGRlY2F5X2NvbnZlcnNpb24sIGJ1aWxkX2FycmF5X3JlZiwgYnVpbGRfdW5hcnlfb3AsCgl1bmFyeV9jb21wbGV4X2x2YWx1ZSk6IFVwZGF0ZS4KCShtYXJrX2FkZHJlc3NhYmxlKTogUmVuYW1lLgoKMjAwMi0wNC0wMSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgYysrLzU5OTg6CgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogIE92ZXJ3cml0ZSB0aGUgUlRMIHdoZW4gKGFuZCBvbmx5Cgl3aGVuKSBvdmVyd3JpdGluZyBhIGJ1aWx0LWluIGZ1bmN0aW9uLiAgRG9uJ3QgdXNlIENPUFlfREVDTF9SVEwsCglidXQgZm9sbG93IHRoZSBTRVRfREVDTF9SVEwgaWRpb20gdXNlZCBlbHNld2hlcmUgaW4gdGhlIGZ1bmN0aW9uLgoKMjAwMi0wNC0wMSAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogY3AtbGFuZy5jIChMQU5HX0hPT0tTX1NJR05FRF9UWVBFLCBMQU5HX0hPT0tTX1VOU0lHTkVEX1RZUEUsCglMQU5HX0hPT0tTX1NJR05FRF9PUl9VTlNJR05FRF9UWVBFKTogTmV3LgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogVXBkYXRlLgoJKiBtYW5nbGUuYyAod3JpdGVfaW50ZWdlcl9jc3QpOiBVcGRhdGUuCgkqIHR5cGVjay5jIChidWlsZF9iaW5hcnlfb3ApOiBVcGRhdGUuCgoyMDAyLTAzLTMxICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBjcC1sYW5nLmMgKExBTkdfSE9PS1NfVU5TQUZFX0ZPUl9SRUVWQUwpOiBSZWRlZmluZS4KCSogbGV4LmMgKGN4eF9pbml0KTogRG9uJ3Qgc2V0IGhvb2suCgoyMDAyLTAzLTMxICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBNYWtlLWxhbmcuaW4gKGVycm9yLm8pOiBVcGRhdGUuCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19QUklOVF9FUlJPUl9GVU5DVElPTik6IFJlZGVmaW5lLgoJKiBjcC10cmVlLmggKHN0cnVjdCBkaWFnbm9zdGljX2NvbnRleHQpOiBQcmVkZWNsYXJlLgoJKGN4eF9wcmludF9lcnJvcl9mdW5jdGlvbik6IE5ldy4KCSogZXJyb3IuYzogSW5jbHVkZSBsYW5naG9va3MtZGVmLmguCgkobGFuZ19wcmludF9lcnJvcl9mdW5jdGlvbik6IFJlbmFtZS4gIFVwZGF0ZS4KCShpbml0X2Vycm9yKTogRG9uJ3Qgc2V0IGhvb2suCgoyMDAyLTAzLTI5ICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBjcC1sYW5nLmMgKExBTkdfSE9PS1NfVFlQRV9GT1JfTU9ERSwgTEFOR19IT09LU19UWVBFX0ZPUl9TSVpFKToKCVJlZGVmaW5lLgoJKiBjdnQuYyAoY3BfY29udmVydF90b19wb2ludGVyLCB0eXBlX3Byb21vdGVzX3RvKTogVXNlIG5ldyBob29rcy4KCSogZGVjbC5jIChmaW5pc2hfZW51bSk6IFNpbWlsYXJseS4KCSogZXJyb3IuYyAoZHVtcF90eXBlKTogU2ltaWxhcmx5LgoJKiBsZXguYyAoY3h4X2luaXQpOiBTaW1pbGFybHkuCgkqIG1hbmdsZS5jICh3cml0ZV9idWlsdGluX3R5cGUpOiBTaW1pbGFybHkuCgkqIHR5cGVjay5jIChjb21wdHlwZXMpOiBTaW1pbGFybHkuCgoyMDAyLTAzLTI4ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiBjKysvNTk5ODoKCSogZGVjbC5jIChjeHhfaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBSZS1lbmFibGUgYnVpbHQtaW4gZnVuY3Rpb25zCglpbiB0aGUgZysrIGZyb250LWVuZC4KCShkdXBsaWNhdGVfZGVjbCk6IEFsbG93IHJlZGVmaW5pdGlvbiBvZiBhbnRpY2lwYXRlZCBidWlsdC1pbnMuCglGaXggaW5saW5pbmcgcHJvYmxlbSBieSBvdmVyLXdyaXRpbmcgdGhlIG9sZCBERUNMX1JUTC4KCShsb29rdXBfbmFtZXNwYWNlX25hbWUpOiBGYWlsIHRvIGZpbmQgYW4gaWRlbnRpZmllciBpbiB0aGUKCXNwZWNpZmllZCBuYW1lc3BhY2UgaWYgaXRzIHN0aWxsIGFudGljaXBhdGVkLgoJKGJ1aWx0aW5fZnVuY3Rpb25fMSk6IE5ldyBmdW5jdGlvbiBzcGxpdCBvdXQgZnJvbSBidWlsdGluX2Z1bmN0aW9uCgl0byBjcmVhdGUgYSBidWlsdGluIGluIHRoZSBjdXJyZW50IG5hbWVzcGFjZSB3aXRoIGdpdmVuIGNvbnRleHQuCgkoYnVpbHRpbl9mdW5jdGlvbik6IENhbGwgYnVpbHRpbl9mdW5jdGlvbl8xIHRvIGRlZmluZSB0aGUKCWFwcHJvcHJpYXRlIGJ1aWx0aW5zIGluIGJvdGggdGhlIHN0ZCBhbmQgZ2xvYmFsIG5hbWVzcGFjZXMuCgkoc2VsZWN0X2RlY2wpOiBEb24ndCB0ZXN0IGZvciBhbnRpY2lwYXRlZCBkZWNscyBoZXJlLgoJKHVucXVhbGlmaWVkX25hbWVzcGFjZV9sb29rdXApOiBJbnN0ZWFkIGlnbm9yZSB0aGVtIHdoaWxzdAoJc2VhcmNoaW5nIHRocm91Z2ggc2NvcGVzIGFuZCBuYW1lc3BhY2VzLgoJKiBkZWNsMi5jIChkb19ub25tZW1iZXJfdXNpbmdfZGVjbCk6IElmIGEgdXNpbmcgZGVjbGFyYXRpb24KCXNwZWNpZmllcyBhbiBhbnRpY2lwYXRlZCBidWlsdC1pbiBmdW5jdGlvbiwgbWFyayBpdCBhcyBubyBsb25nZXIKCWFudGljaXBhdGVkIGluIHRoYXQgc2NvcGUuCgkoYW1iaWd1b3VzX2RlY2wpOiAgQXZvaWQgcmVzb2x2aW5nIHRvIGFuIGFudGljaXBhdGVkIGRlY2wuCgkqIGxleC5jIChkb19zY29wZWRfaWQpOiBGYWlsIHRvIGZpbmQgYW4gaWRlbnRpZmllciBpbiB0aGUgZ2xvYmFsCgluYW1lc3BhY2UgaWYgaXRzIHN0aWxsIGFudGljaXBhdGVkLgoKMjAwMi0wMy0yOSAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogY3AtbGFuZy5jIChMQU5HX0hPT0tTX01BS0VfVFlQRSk6IFJlZGVmaW5lLgoJKiBjcC10cmVlLmggKGNwX21ha2VfbGFuZ190eXBlKTogUmVuYW1lLgoJKiBsZXguYyAoY3BfbWFrZV9sYW5nX3R5cGUpOiBSZW5hbWUuCgkobWFrZV9hZ2dyX3R5cGUpOiBVcGRhdGUuCgkqIHRyZWUuYyAoaW5pdF90cmVlKTogRG9uJ3Qgc2V0IG1ha2VfbGFuZ190eXBlX2ZuLgoKMjAwMi0wMy0yOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgYysrLzYwNzMKCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdF8xKTogVXBkYXRlIHN0YXRpYyBmaWVsZCdzIERFQ0xfTU9ERSBldmVuCglpZiBpdHMgdHlwZSBpcyBhIHZhcmlhbnQgb2YgdC4KCjIwMDItMDMtMjcgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19JTlNFUlRfREVGQVVMVF9BVFRSSUJVVEVTKTogUmVkZWZpbmUuCgkqIGNwLXRyZWUuaCAoY3h4X2luc2VydF9kZWZhdWx0X2F0dHJpYnV0ZXMpOiBOZXcuCgkqIGRlY2wuYyAoaW5zZXJ0X2RlZmF1bHRfYXR0cmlidXRlcyk6IFJlbmFtZS4KCjIwMDItMDMtMjcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzQ4ODQKCSogY2FsbC5jIChidWlsZF9vcF9kZWxldGVfY2FsbCk6IEFsbG93IGZvciB0aGUgZmFjdCB0aGUgcGxhY2VtZW50CgltYXkgYmUgYSBDT01QT1VORF9FWFBSLgoKMjAwMi0wMy0yNyAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogY3AtbGFuZy5jIChMQU5HX0hPT0tTX0VYUEFORF9FWFBSKTogUmVkZWZpbmUuCgkqIGNwLXRyZWUuaCAoaW5pdF9jcGx1c19leHBhbmQpOiBSZW1vdmUuCgkoY3h4X2V4cGFuZF9leHByKTogTmV3LgoJKiBleHByLmMgKGNwbHVzX2V4cGFuZF9leHByKTogUmVuYW1lIGN4eF9leHBhbmRfZXhwciwKCWZpeCBwcm90b3R5cGUuCgkoaW5pdF9jcGx1c19leHBhbmQpOiBSZW1vdmUuCgkqIGxleC5jIChjeHhfaW5pdCk6IERvbid0IGNhbGwgaW5pdF9jcGx1c19leHBhbmQuCgoyMDAyLTAzLTI2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy80ODg0LgoJKiBpbml0LmMgKGJ1aWxkX25ld18xKTogQWxsb3cgZm9yIHRoZSBmYWN0IHRoZSByZXN1bHQgb2YKCWJ1aWxkX2Z1bmN0aW9uX2NhbGwgbWF5IGJlIGEgQ09NUE9VTkRfRVhQUi4KCjIwMDItMDMtMjYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzU2ODIKCSogY3AtdHJlZS5oIChCSU5GT19QUklNQVJZX1ApOiBFeHBsYWluIG1lYW5pbmcgYmV0dGVyLgoJKGRmc19za2lwX25vbnByaW1hcnlfdmJhc2VzX3VubWFya2VkcCk6IFJlbW92ZS4KCShkZnNfc2tpcF9ub25wcmltYXJ5X3ZiYXNlc19tYXJrZWRwKTogUmVtb3ZlLgoJKiBzZWFyY2guYyAoZ2V0X3NoYXJlZF92YmFzZV9pZl9ub3RfcHJpbWFyeSk6IFJlbW92ZS4KCShkZnNfc2tpcF9ub25wcmltYXJ5X3ZiYXNlc191bm1hcmtlZHApOiBSZW1vdmUuCgkoZGZzX3NraXBfbm9ucHJpbWFyeV92YmFzZXNfbWFya2VkcCk6IFJlbW92ZS4KCShkZnNfdW5tYXJrZWRfcmVhbF9iYXNlc19xdWV1ZV9wKTogSnVzdCBnZXQgdGhlIGNhbm9uaWNhbCBiaW5mby4KCShkZnNfbWFya2VkX3JlYWxfYmFzZXNfcXVldWVfcCk6IExpa2V3aXNlLgoKMjAwMi0wMy0yNiAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogY3AtbGFuZy5jIChMQU5HX0hPT0tTX01BUktfVFJFRSk6IFJlZGVmaW5lLgoJKiBjcC10cmVlLmggKGN4eF9tYXJrX3RyZWUpOiBOZXcuCgkqIGRlY2wuYyAobGFuZ19tYXJrX3RyZWUpOiBSZW5hbWUgY3h4X21hcmtfdHJlZS4KCjIwMDItMDMtMjUgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNwLXRyZWUuaCAoY3h4X21heWJlX2J1aWxkX2NsZWFudXApOiBOZXcuCgkqIGRlY2wuYyAoZGVzdHJveV9sb2NhbF92YXIsIGhhY2tfaW5jb21wbGV0ZV9zdHJ1Y3R1cmVzKTogVXBkYXRlLgoJKG1heWJlX2J1aWxkX2NsZWFudXApOiBSZW5hbWUgY3h4X21heWJlX2J1aWxkX2NsZWFudXAuCgkqIHRyZWUuYyAoYnVpbGRfdGFyZ2V0X2V4cHIpOiBVcGRhdGUuCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19NQVlCRV9CVUlMRF9DTEVBTlVQKTogUmVkZWZpbmUuCgoyMDAyLTAzLTI0ICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBkZWNsMi5jIChjeHhfZGVjb2RlX29wdGlvbik6IEhhbmRsZSAtRS4KCSogbGFuZy1zcGVjcy5oIChkZWZhdWx0X2NvbXBpbGVycyk6IFByZXByb2Nlc3Mgd2l0aCBjYzFwbHVzLgoJKiBsZXguYyAoY3h4X2luaXQpOiBFeGl0IHF1aWNrbHkgaWYgY19jb21tb25faW5pdCByZXR1cm5zIE5VTEwuCgoyMDAyLTAzLTIzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCglQUiBjKysvNjAzNwoJKiBkZWNsLmMgKHN0YXJ0X2VudW0pOiBEb24ndCBzZXQgVFJFRV9BRERSRVNTQUJMRSBvbiBUUkVFX0xJU1Qgbm9kZS4KCjIwMDItMDMtMjMgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAbWVybGluLmNvZGVzb3VyY2VyeS5jb20+CgoJKiBlcnJvci5jIChkdW1wX3R5cGUpOiBCZSBjYXJlZnVsIGFib3V0IGltcGxpY2l0IHR5cGVuYW1lcy4KCjIwMDItMDMtMjEgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAbWVybGluLmNvZGVzb3VyY2VyeS5jb20+CgoJUFIgQysrLzM2NTYKCSogc2VtYW50aWNzLmMgKGZpbmlzaF9iYXNlX3NwZWNpZmllcik6IEhhbmRsZSBlcnJvbm91cyBiYXNlCgljbGFzc2VzLgoKMjAwMi0wMy0yMiAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmM6IEFsd2F5cyB1c2UgUkVBTF9WQUxVRV9UT19ERUNJTUFMOyBkb24ndCB0ZXN0CglSRUFMX0lTX05PVF9ET1VCTEUuCgoyMDAyLTAzLTIyICBKZWZmIEtuYWdncyAgPGprbmFnZ3NAcmVkaGF0LmNvbT4KCgkqIHR5cGVjay5jIChnZXRfbWVtYmVyX2Z1bmN0aW9uX2Zyb21fcHRyZnVuYyk6IFNjYWxlIGlkeCBkb3duIHRvCglhbiBpbmRleCBpbnRvIHRoZSB2dGFibGVfZW50cnkgYXJyYXkgcmVnYXJkbGVzcyBvZgoJVEFSR0VUX1BUUk1FTUZVTkNfVkJJVF9MT0NBVElPTi4KCjIwMDItMDMtMjEgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIHRyZWUuYyAoY3BfY2Fubm90X2lubGluZV90cmVlX2ZuKTogU2FtZS4KCjIwMDItMDMtMjEgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNwLXRyZWUuaCAocHVzaGRlY2wsIHB1c2hsZXZlbCwgcG9wbGV2ZWwsIHNldF9ibG9jaywKCWluc2VydF9ibG9jaywgZ2V0ZGVjbHMsIGdsb2JhbF9iaW5kaW5nc19wKTogTmV3LgoKMjAwMi0wMy0yMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNDM2MQoJKiBtYW5nbGUuYyAoc3RydWN0IGdsb2JhbHMpIEFkZCBpbnRlcm5hbF9tYW5nbGluZ19wIG1lbWJlci4KCSh3cml0ZV90ZW1wbGF0ZV9wYXJhbSk6IERvIGludGVybmFsIG1hbmdsaW5nLCBpZiBuZWVkZWQuCgkobWFuZ2xlX2NvbnZfb3BfbmFtZV9mb3JfdHlwZSk6IFJlcXVlc3QgaW50ZXJuYWwgbWFuZ2xpbmcuCgoyMDAyLTAzLTIwICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBjKysvMjEzNgoJKiBpbml0LmMgKGJ1aWxkX2RlbGV0ZSk6IENoZWNrIGFjY2VzcyBmb3IgYSBtZW1iZXIgb3AgZGVsZXRlIGhlcmUuCgkqIGRlY2wyLmMgKGRlbGV0ZV9zYW5pdHkpOiBOb3QgaGVyZS4KCjIwMDItMDMtMTkgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy81MTE4CgkqIGNsYXNzLmMgKGdldF92ZmllbGRfbmFtZSk6IFVzZSB0aGUgY29uc3RydWN0b3JfbmFtZS4KCjIwMDItMDMtMjAgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19ERUNMX1BSSU5UQUJMRV9OQU1FKTogUmVkZWZpbmUuCgkqIGNwLXRyZWUuaCAobGFuZ19wcmludGFibGVfbmFtZSk6IFJlbmFtZS4KCSogZXJyb3IuYyAobGFuZ19kZWNsX25hbWUpOiBVc2UgbmV3IGhvb2suCgkqIGxleC5jIChjeHhfaW5pdCk6IFJlbW92ZSBvbGQgaG9vay4KCSogcHQuYyAodHN1YnN0X2RlY2wpOiBVc2UgbmV3IGhvb2suCgkqIHRyZWUuYyAobGFuZ19wcmludGFibGVfbmFtZSk6IFJlbmFtZS4KCjIwMDItMDMtMTggIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbXVsdGltYW5pYS5jb20+CgoJUFIgYysrLzM4ODIKCSogcHQuYyAodHN1YnN0X2RlY2wpOiBNb3ZlIF9fUFJFVFRZX0ZVTkNUSU9OX18gaGFuZGxpbmcuLi4KCSh0c3Vic3RfZXhwcikgW0RFQ0xfU1RNVF06IC4uLmhlcmUuIEFuZCBzdWJzdGl0dXRlIHRoZSBpbml0aWFsaXplcgoJb25seSBhZnRlciByZWNvcmRpbmcgdGhlIGRlY2xhcmF0aW9uLgoKMjAwMi0wMy0xOCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzIwMzkKCSogaW5pdC5jIChyZXNvbHZlX29mZnNldF9yZWYpOiBIYW5kIG9mZiB0byBidWlsZF9jb21wb25lbnRfcmVmLgoKCVBSIGMrKy80MjIyLCBjKysvNTk5NQoJKiBjYWxsLmMgKGJ1aWxkX292ZXJfY2FsbCk6IEZpeCBlbXB0eSBjbGFzcyBsb2dpYy4KCglQUiBjKysvMzg3MAoJKiBjcC10cmVlLmggKHN0cnVjdCBzYXZlZF9zY29wZSk6IEFkZCBsYXN0X3Bhcm1zIGZpZWxkLgoJKiBkZWNsLmMgKG1heWJlX3B1c2hfdG9fdG9wX2xldmVsKTogU2F2ZSBsYXN0X2Z1bmN0aW9uX3Bhcm1zLgoJKHBvcF9mcm9tX3RvcF9sZXZlbCk6IFJlc3RvcmUgaXQuCgoJUFIgYysrLzQzNzcKCSogbWFuZ2xlLmMgKHdyaXRlX2V4cHJlc3Npb24pOiBTdHJpcCBOT1BfRVhQUnMgc29vbmVyLiAgQWxzbyBzdHJpcAoJTk9OX0xWQUxVRV9FWFBScy4KCglQUiBjKysvNDAwMwoJKiBwdC5jICh0c3Vic3RfZnJpZW5kX2Z1bmN0aW9uKTogVXNlIGRlY2xfbmFtZXNwYWNlX2NvbnRleHQuCgoJUFIgYysrLzM5NDggLS0gQysrIEFCSSBjaGFuZ2UsIGZvbGxvd3VwIHRvIDIwMDEtMTItMTggcGF0Y2guCgkqIGNsYXNzLmMgKGZpbmlzaF9zdHJ1Y3RfYml0cyk6IEFsc28gc2V0IFRSRUVfQUREUkVTU0FCTEUgZm9yIGEKCXR5cGUgd2l0aCBhIG5vbnRyaXZpYWwgZGVzdHJ1Y3Rvci4KCjIwMDItMDMtMTcgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy80NDYwCgkqIGNsYXNzLmMgKGJ1aWxkX2Jhc2VfcGF0aCk6IFZpcnR1YWwgYmFzZSBsYXlvdXQgaXMgZml4ZWQgaW4KCWluLWNoYXJnZSBbY2RddG9ycy4KCjIwMDItMDMtMTcgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19QQVJTRV9GSUxFKTogUmVkZWZpbmUuCgkqIHBhcnNlLnkgKHl5cGFyc2UpOiBSZW1vdmUgbWFjcm8uCgoyMDAyLTAzLTE3ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBjKysvNTc1NwoJKiBpbml0LmMgKGJ1aWxkX25ld18xKTogUGFzcyB0aGUgcmlnaHQgcG9pbnRlciB0byBvcCBkZWxldGUuCgoyMDAyLTAzLTE2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy80MzYxCgkqIGNwLXRyZWUuaCAoQ0xBU1NUWVBFX01FVEhPRF9WRUMpOiBEb2N1bWVudCB3aGVyZSB0ZW1wbGF0ZWQKCWNvbnZlcnNpb24gb3BlcmF0b3JzIGdvLgoJKHN0cnVjdCBsYW5nX2RlY2xfZmxhZ3MpOiBBZGQgdGVtcGxhdGVfY29udl9wIGFuZCB1bnVzZWQKCWJpdGZpZWxkcy4KCShERUNMX1RFTVBMQVRFX0NPTlZfRk5fUCk6IE5ldyBtYWNyby4KCSogY2FsbC5jIChidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xKTogRG9uJ3QgY2hlY2sgc2Vjb25kIHR5cGUKCWNvbnZlcnNpb24gb2Ygb3ZlcmxvYWQgc2V0IGZpcnN0LgoJKiBjbGFzcy5jIChhZGRfbWV0aG9kKTogTWFrZSBzdXJlIHRlbXBsYXRlZCBjb252ZXJzaW9uIG9wZXJhdG9ycwoJYWxsIGVuZCB1cCBvbiBzbG90IDIuCgkqIGxleC5jIChkb19pZGVudGlmaWVyKTogQSBjb252ZXJzaW9uIG9wZXJhdG9yIHRva2VuIG1pZ2h0IGJlCglzYXRpc2ZpZWQgYnkgYSB0ZW1wbGF0ZWQgY29udmVyc2lvbiBvcGVyYXRvci4KCSogcHQuYyAoY2hlY2tfZXhwbGljaXRfc3BlY2lhbGl6YXRpb24pOiBVc2UKCUNMQVNTVFlQRV9GSVJTVF9DT05WRVJTSU9OX1NMT1QuCgkodGVtcGxhdGVfcGFybV90aGlzX2xldmVsX3ApOiBOZXcgZnVuY3Rpb24uCgkocHVzaF90ZW1wbGF0ZV9kZWNsX3JlYWwpOiBEZXRlcm1pbmUgREVDTF9URU1QTEFURV9DT05WX0ZOX1AuCgkqIHNlYXJjaC5jIChsb29rdXBfZm5maWVsZHNfMSk6IFRlbXBsYXRlIGNvbnZlcnNpb25zIHdpbGwgYmUgb24KCXRoZSBmaXJzdCBzbG90LgoJKiB0eXBlY2suYyAoYnVpbGRfY29tcG9uZW50X3JlZik6IFByZXNlcnZlIHRoZSB0eXBlIG9mIGFuCgljb252ZXJzaW9uIG9wZXJhdG9yIG5hbWUgb24gdGhlIG92ZXJsb2FkIHR5cGUuCgkoYnVpbGRfeF9mdW5jdGlvbl9jYWxsKTogUmV0cmlldmUgdGhlIGNvbnZlcnNpb24gb3BlcmF0b3IgbmFtZS4KCjIwMDItMDMtMTUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBpbml0LmMgKGJ1aWxkX25ld18xKTogVXNlIHNpemVfYmlub3AgaW5zdGVhZCBvZiBjcF9idWlsZF9iaW5hcnlfb3AuCgoyMDAyLTAzLTE1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChDTEVBTlVQX0RFQ0wpOiBSZW1vdmUuCgkoQ0xFQU5VUF9FWFBSKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoZGVzdHJveV9sb2NhbF92YXIpOiBTaW1wbGlmeS4KCShtYXliZV9idWlsZF9jbGVhbnVwKTogVGlkeS4KCSogZHVtcC5jIChjcF9kdW1wX3RyZWUpOiBSZW1vdmUgaGFuZGxpbmcgb2YgQ0xFQU5VUF9TVE1ULgoJKiBzZW1hbnRpY3MuYyAoY3BfZXhwYW5kX3N0bXQpOiBMaWtld2lzZS4KCSogY3AvdHJlZS5jIChjcF9zdGF0ZW1lbnRfY29kZV9wKTogTGlrZXdpc2UuCgoyMDAyLTAzLTE1ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBjKysvNTg1NwoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IFVzZSBtZXJnZV90eXBlcyBpbnN0ZWFkIG9mIGNvbW1vbl90eXBlLgoJKiB0eXBlY2suYyAoY29tbW9uX3R5cGUpOiBKdXN0IGhhbmQgb2ZmIHRvCgl0eXBlX2FmdGVyX3VzdWFsX2FyaXRobWV0aWNfY29udmVyc2lvbnMgYW5kCgljb21wb3NpdGVfcG9pbnRlcl90eXBlLgoJKG1lcmdlX3R5cGVzKTogTmV3IGZuLgoJKGNvbW1vbnBhcm1zKTogVXNlIGl0IGluc3RlYWQgb2YgY29tbW9uX3R5cGUuCgkodHlwZV9hZnRlcl91c3VhbF9hcml0aG1ldGljX2NvbnZlcnNpb25zKTogQWxzbyBoYW5kbGUgQ09NUExFWF9UWVBFLgoJKGNvbXBvc2l0ZV9wb2ludGVyX3R5cGUpOiBBbHNvIGhhbmRsZSBhdHRyaWJ1dGVzLgoJKiBjcC10cmVlLmg6IERlY2xhcmUgbWVyZ2VfdHlwZXMuCgoJKiBkZWNsLmMgKG1ha2VfcnRsX2Zvcl9ub25sb2NhbF9kZWNsKTogQWxzbyBkZWZlciBDT01EQVQKCXZhcmlhYmxlcy4KCSogZGVjbDIuYyAobWF5YmVfbWFrZV9vbmVfb25seSk6IEFsc28gbWFyayB0aGUgZGVjbCBhcyBuZWVkZWQuCgoyMDAyLTAzLTE0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZGVjbC5jOiBJbmNsdWRlIGMtcHJhZ21hLmguCgkoc3RhcnRfZGVjbCwgc3RhcnRfZnVuY3Rpb24pOiBJbnZva2UgbWF5YmVfYXBwbHlfcHJhZ21hX3dlYWsuCgkqIE1ha2UtbGFuZy5pbjogVXBkYXRlIGRlcGVuZGVuY2llcy4KCjIwMDItMDMtMTQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIGMrKy81OTA4CgkqIGNhbGwuYyAoYnVpbGRfb3Zlcl9jYWxsKTogU2V0IFRSRUVfTk9fVU5VU0VEX1dBUk5JTkcgdG9vLgoJKiBjdnQuYyAoY29udmVydF90b192b2lkKTogUHJlc2VydmUgVFJFRV9OT19VTlVTRURfV0FSTklORy4KCjIwMDItMDMtMTIgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIG1hbmdsZS5jICh3cml0ZV9idWlsdGluX3R5cGUpOiBIYW5kbGUgMTI4LWJpdCBpbnRlZ2VycyBldmVuIGlmCgl0aGV5IGFyZSBub3QgYSBzdGFuZGFyZCBpbnRlZ2VyIHR5cGUuCgoyMDAyLTAzLTEyICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjcC10cmVlLmggKGluaXRfaW5pdF9wcm9jZXNzaW5nKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKiBpbml0LmMgKEJJX2hlYWRlcl90eXBlLCBpbml0X2luaXRfcHJvY2Vzc2luZyk6IFJlbW92ZSBvbGQgQUJJIHN0dWZmLgoJKiBkZWNsLmMgKGN4eF9pbml0X2RlY2xfcHJvY2Vzc2luZyk6IERvbid0IGNhbGwgaW5pdF9pbml0X3Byb2Nlc3NpbmcuCgoyMDAyLTAzLTEyICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBjcC1sYW5nLmMgKHRyZWVfY29kZV90eXBlLCB0cmVlX2NvZGVfbGVuZ3RoLCB0cmVlX2NvZGVfbmFtZSk6CglEZWZpbmUuCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogVXNlIFRSRUVfQ09ERV9MRU5HVEgsIG5vdAoJdHJlZV9jb2RlX2xlbmd0aC4KCSogbGV4LmMgKGNwbHVzX3RyZWVfY29kZV90eXBlLCBjcGx1c190cmVlX2NvZGVfbGVuZ3RoLAoJY3BsdXNfdHJlZV9jb2RlX25hbWUpOiBEZWxldGUuCgkoY3h4X2luaXQpOiBEb24ndCBjYWxsIGFkZF9jX3RyZWVfY29kZXMsIGluc3RlYWQgc2V0CglsYW5nX3Vuc2FmZV9mb3JfcmVldmFsLiAgRG9uJ3QgdHJ5IHRvIGNvcHkgaW50byB0aGUgdmFyaW91cwoJdHJlZV9jb2RlIGFycmF5cy4KCjIwMDItMDMtMTIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzU2NTkKCSogZGVjbC5jICh4cmVmX3RhZyk6IERvbid0IHNldCBDTEFTU1RZUEVfREVDTEFSRURfQ0xBU1MgaGVyZS4KCSogZGVjbDIuYyAoaGFuZGxlX2NsYXNzX2hlYWQpOiBTZXQgQ0xBU1NUWVBFX0RFQ0xBUkVEX0NMQVNTIGZvcgoJZGVmaW5pdGlvbnMuCgoyMDAyLTAzLTExICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVJldmVydCAyMDAxLTAzLTI2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPiwKCURSMjA5IGlzIG5vdyBub3QgYSBkZWZlY3QuCgkqIGNwLXRyZWUuaCAoc2tpcF90eXBlX2FjY2Vzc19jb250cm9sKTogUmVtb3ZlLgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogRG8gdHlwZSBhY2Nlc3MgY29udHJvbCBmb3IgZnJpZW5kCglkZWNsYXJhdGlvbnMuCgkqIHNlbWFudGljcy5jIChkZWNsX3R5cGVfYWNjZXNzX2NvbnRyb2wpOiBEb24ndCByZXNldAoJY3VycmVudF90eXBlX2xvb2t1cHMuCgkoc2F2ZV90eXBlX2FjY2Vzc19jb250cm9sKTogQWx3YXlzIHNhdmUgdGhlIGxvb2t1cHMuCgkoc2tpcF90eXBlX2FjY2Vzc19jb250cm9sKTogUmVtb3ZlLgoJKGZpbmlzaF9jbGFzc19kZWZpbml0aW9uKTogRG9uJ3QgY2hhbmdlIHR5cGVfbG9va3Vwcy4KCjIwMDItMDMtMTEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUmV2ZXJ0IDIwMDAtMTItMDEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+LAoJSXQgaXMgaW5jb3JyZWN0LgoJKiB0eXBlY2suYyAoYnVpbGRfc3RhdGljX2Nhc3QpOiBDb21wYXJlIG5vbi1xdWFsaWZpZWQgdHlwZXMKCXdpdGggcG9pbnRlciB0byBtZW1iZXIgY29udmVyc2lvbnMuCgoyMDAyLTAzLTExICBEYW4gTmljb2xhZXNjdSAgPGRhbm5AaWNzLnVjaS5lZHU+CgkgICAgRGFuaWVsIEJlcmxpbiAgPGRhbkBkYmVybGluLm9yZz4KCgkqIGNwLWxhbmcuYyAob2tfdG9fZ2VuZXJhdGVfYWxpYXNfc2V0X2Zvcl90eXBlKTogTmV3IGZ1bmN0aW9uLgoJKGN4eF9nZXRfYWxpYXNfc2V0KTogVXNlIGl0LgoKMjAwMi0wMy0xMCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogY3AtdHJlZS5oIChzdGFiaWxpemVfZXhwcik6IFByb3RvdHlwZS4KCjIwMDItMDMtMDggIENyYWlnIFJvZHJpZ3VlcyAgPHJvZHJpZ2NAZ2NjLmdudS5vcmc+CgoJKiBjcC10cmVlLmggKENMRUFSX0JJTkZPX01BUktFRCk6IE1ha2UgYm90aCBwYXJ0cyBvZgoJY29uZGl0aW9uYWwgcmV0dXJuIHZvaWQuCgoyMDAyLTAzLTA4ICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBjcC1sYW5nLmMgKExBTkdfSE9PS1NfVU5TQVZFKTogUmVkZWZpbmUuCgkqIGNwLXRyZWUuaCAoY3h4X3Vuc2F2ZSk6IE5ldy4KCSogdHJlZS5jIChjcF91bnNhdmUpOiBSZW5hbWUgY3h4X3Vuc2F2ZSwgdXBkYXRlIHByb3RvdHlwZS4KCShpbml0X3RyZWUpOiBVcGRhdGUuCgoyMDAyLTAzLTAzICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBkZWNsLmMgKGN4eF9pbml0X2RlY2xfcHJvY2Vzc2luZyk6IFVzZSBBUlJBWV9TSVpFIGluIGxpZXUgb2YKCWV4cGxpY2l0IHNpemVvZi9zaXplb2YuCgkqIGRlY2wyLmMgKGN4eF9kZWNvZGVfb3B0aW9uKTogTGlrZXdpc2UuCgkqIGxleC5jIChpbml0X3Jlc3dvcmRzLCBSRURVQ0VfTEVOR1RILCBUT0tFTl9MRU5HVEgpOiBMaWtld2lzZS4KCjIwMDItMDMtMDIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzc3NQoJKiBkZWNsLmMgKGxvb2t1cF90YWcpOiBPbmx5IHJlamVjdCBlbnVtL2NsYXNzIG1pc21hdGNoLCBub3QKCWNsYXNzL3VuaW9uIG1pc21hdGNoLgoJKiBwYXJzZS55IChjaGVja19jbGFzc19rZXkpOiBOZXcgZnVuY3Rpb24uCgkoc3RydWN0c3ApOiBDYWxsIGl0LgoKMjAwMi0wMy0wMSAgTWljaGFlbCBNYXR6ICA8bWF0ekBzdXNlLmRlPgoKCSogdHlwZWNrLmMgKGNwX3BvaW50ZXJfaW50X3N1bSk6IENvbXBsZXRlIGlubmVyIHR5cGUgd2hpY2ggaXMKCXVzZWQgbGF0ZXIgYnkgc2l6ZV9pbl9ieXRlcygpLgoKMjAwMi0wMy0wMSAgUGhpbCBFZHdhcmRzICA8cG1lQGdjYy5nbnUub3JnPgoKCSogY3AtdHJlZS5oOiAgUmVxdWlyZSBfX0dOVUNfXyB0byBiZSAjZGVmaW5lZC4KCShidWlsZF9pbml0KTogIEFkZCBtaXNzaW5nIHByb3RvdHlwZS4KCjIwMDItMDMtMDEgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZXhjZXB0LmM6IERvbid0IGluY2x1ZGUgZGVjbC5oIG9yIG9ic3RhY2suaC4gIERvIGluY2x1ZGUKCXRyZWUtaW5saW5lLmguCgkoYnVpbGRfdGhyb3cpOiBEZXN0cm95IHRlbXBvcmFyaWVzIGZyb20gdGhlIHRocm93bgoJZXhwcmVzc2lvbiBiZWZvcmUgY2FsbGluZyBfX2N4YV90aHJvdy4gIENvbnN0cnVjdCBhIHRocm93bgoJdGVtcG9yYXJ5IGRpcmVjdGx5IGludG8gdGhlIGV4Y2VwdGlvbiBvYmplY3QuCgkoc3RhYmlsaXplX3Rocm93X2V4cHIpOiBOZXcgZnVuY3Rpb24uCgkod3JhcF9jbGVhbnVwc19yKTogTmV3IGZ1bmN0aW9uLgoJKiB0cmVlLmMgKHN0YWJpbGl6ZV9leHByKTogTmV3IGZ1bmN0aW9uLgoJKiBpbml0LmMgKGJ1aWxkX2luaXQpOiBOZXcgZnVuY3Rpb24uCgkqIE1ha2UtbGFuZy5pbiAoY3AvZXhjZXB0Lm8pOiBBZGp1c3QgLmggZGVwcy4KCjIwMDItMDItMjggIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogc2VhcmNoLmMgKGxvb2t1cF9iYXNlX3IpOiBEb24ndCBjbGVhciBpc19ub25fcHVibGljIGp1c3QgYmVjYXVzZQoJd2UgZm91bmQgYSBmcmllbmRseSBzY29wZS4KCgkqIGRlY2wuYyAoZmluaXNoX2Z1bmN0aW9uKTogT25seSB3YXJuIGFib3V0IG1pc3NpbmcgcmV0dXJuCglzdGF0ZW1lbnQgd2l0aCAtV3JldHVybi10eXBlLgoKMjAwMi0wMi0yOCAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogY2xhc3MuYyAoYnVpbGRfY2xvbmUpOiBVcGRhdGUuCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19EVVBfTEFOR19TUEVDSUZJQ19ERUNMKTogUmVkZWZpbmUuCgkqIGNwLXRyZWUuaCAoY3h4X2R1cF9sYW5nX3NwZWNpZmljX2RlY2wpOiBOZXcuCgkqIGxleC5jIChjb3B5X2xhbmdfZGVjbCk6IFJlbmFtZSBjeHhfZHVwX2xhbmdfc3BlY2lmaWNfZGVjbC4KCShjb3B5X2RlY2wpOiBVcGRhdGUuCgkqIG1ldGhvZC5jIChtYWtlX3RodW5rKTogVXBkYXRlLgoKMjAwMi0wMi0yNyAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wyLmM6IERlbGV0ZSB0cmFkaXRpb25hbC1tb2RlLXJlbGF0ZWQgY29kZSBjb3BpZWQgZnJvbQoJdGhlIEMgZnJvbnQgZW5kIGJ1dCBub3QgdXNlZCwgb3IgdXNlZCBvbmx5IHRvIHBlcm1pdCB0aGUKCWNvbXBpbGVyIHRvIGxpbmsuCgoyMDAyLTAyLTI0IENyYWlnIFJvZHJpZ3VlcyAgPHJvZHJpZ2NAZ2NjLmdudS5vcmc+CgoJUFIgYysrLzQwOTMKCSogY3AtdHJlZS5oIChTRVRfQklORk9fTUFSS0VEKTogQ2FzdCBmYWxzZSBwYXJ0IG9mIGNvbmRpdGlvbgoJdG8gdm9pZC4KCjIwMDItMDItMjIgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVBSIG90aGVyLzU3NDYKCSogc2VtYW50aWNzLmMgKGZpbmlzaF9zd2l0Y2hfY29uZCk6IERvbid0IGNhbGwgZ2V0X3Vud2lkZW5lZAoJaWYgZXJyb3JfbWFya19ub2RlLgoKMjAwMi0wMi0yMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMjY0NSwgRFIgMjk1CgkqIGNwLXRyZWUuaCAodHN1YnN0X2ZsYWdzX3QpOiBBZGQgdGZfaWdub3JlX2JhZF9xdWFscywKCXRmX2tlZXBfdHlwZV9kZWNsLgoJKG1ha2VfdHlwZW5hbWVfdHlwZSk6IFVzZSB0c3Vic3RfZmxhZ3NfdC4KCSogZGVjbC5jIChtYWtlX3R5cGVuYW1lX3R5cGUpOiBBZGp1c3QuIFJldHVybiBub24tYXJ0aWZpY2lhbAoJVFlQRV9ERUNMcywgaWYgcmVxdWlyZWQuCgkoZ3Jva2RlY2xhcmF0b3IpOiBTaW1wbGlmeSBDVlIgcXVhbGlmaWNhdGlvbiBoYW5kbGluZy4gQWxsb3cgYmFkCglxdWFsaWZpZXJzIG9uIHR5cGVkZWYgdHlwZXMuCgkqIGRlY2wyLmMgKGhhbmRsZV9jbGFzc19oZWFkKTogQWRqdXN0IG1ha2VfdHlwZW5hbWVfdHlwZSBjYWxsLgoJKiBwYXJzZS55IChuZXN0ZWRfbmFtZV9zcGVjaWZpZXIpOiBMaWtld2lzZS4KCSh0eXBlbmFtZV9zdWIwKTogTGlrZXdpc2UuCgkodHlwZW5hbWVfc3ViMSk6IExpa2V3aXNlLgoJKiBwdC5jIChjb252ZXJ0X3RlbXBsYXRlX2FyZ3VtZW50KTogQWRqdXN0IG1ha2VfdHlwZW5hbWVfdHlwZQoJcmV0dXJuIHZhbHVlLgoJKHRzdWJzdCk6IEFkanVzdCBjcF9idWlsZF9xdWFsaWZpZWRfdHlwZV9yZWFsIGNhbGxzLgoJKGNoZWNrX2N2X3F1YWxzX2Zvcl91bmlmeSk6IENvcGUgd2l0aCBhbGxvd2luZyBiYWQgcXVhbGlmaWNhdGlvbnMKCW9uIHRlbXBsYXRlIHR5cGUgcGFybXMuCgkoaW5zdGFudGlhdGVfZGVjbCk6IFJlY2hlY2sgc3Vic3RpdHV0aW9ucyB0byBnaXZlIHdhcm5pbmdzIG9uIGJhZAoJcXVhbGlmaWNhdGlvbnMuCgkqIHRyZWUuYyAoY3BfYnVpbGRfcXVhbGlmaWVkX3R5cGVfcmVhbCk6IFVzZSB0Zl9hbGxvd19iYWRfcXVhbHMuCgoyMDAyLTAyLTIxICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJKiBjcC9kZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IE1lcmdlIGFsd2F5c19pbmxpbmUgYXR0cmlidXRlLgoKCSogY3AvdHJlZS5jIChjcF9jYW5ub3RfaW5saW5lX3RyZWVfZm4pOiBEbyBub3QgaW5saW5lIGF0IC1PMAoJdW5sZXNzIERFQ0xfQUxXQVlTX0lOTElORS4KCjIwMDItMDItMjAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogdHlwZWNrLmMgKGNwX3BvaW50ZXJfaW50X3N1bSk6IFJlbmFtZWQgZnJvbQoJcG9pbnRlcl9pbnRfc3VtLCBjYWxsIHBvaW50ZXJfaW50X3N1bS4KCjIwMDItMDItMjAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBSZXR1cm4gMCBpZiBpc3N1ZWQgZXJyb3IgYWJvdXQKCXJlZGVjbGFyYXRpb24uCgoyMDAyLTAyLTE5ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglBQkkgY2hhbmdlOiBNYW5nbGUgYHZvaWQgKEE6OiopKCkgY29uc3QnIGFzCglNMUFLRnZ2RSwgbm90IE1LMUFGdnZFLgoJKiBtYW5nbGUuYyAod3JpdGVfZnVuY3Rpb25fdHlwZSk6IFdyaXRlIGN2LXF1YWxzIGZvciBtZW1iZXIKCWZ1bmN0aW9uIHR5cGUgaGVyZS4KCSh3cml0ZV9wb2ludGVyX3RvX21lbWJlcl90eXBlKTogTm90IGhlcmUuCgoyMDAyLTAyLTE4ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHB0LmMgKGRvX3R5cGVfaW5zdGFudGlhdGlvbik6IERvbid0IHBlZHdhcm4gaWYgaW5fc3lzdGVtX2hlYWRlci4KCShkb19kZWNsX2luc3RhbnRpYXRpb24pOiBMaWtld2lzZS4KCjIwMDItMDItMTcgIENyYWlnIFJvZHJpZ3VlcyAgPHJvZHJpZ2NAZ2NjLmdudS5vcmc+CgoJUFIgYysrLzU2ODUKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBNYWtlIHdhcm5pbmcgdW5jb25kaXRpb25hbAoJaWYgZHVwbGljYXRlIGRlZmF1bHQgYXJndW1lbnQgZGVjbGFyYXRpb25zIGFyZSBwcmVzZW50LgoKMjAwMi0wMi0xNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiB0eXBlY2suYyAoYnVpbGRfYmluYXJ5X29wKSBbQklUX1hPUl9FWFBSXTogUmVtb3ZlIGV4cGxpY2l0CglzaG9ydGVuaW5nLgoKMjAwMi0wMi0xNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBTZXQgdHlwZWRlZl9kZWNsIGZvciBhbGwgVFlQRV9ERUNMcywKCXJlbW92ZSBpbmNvcnJlY3QgY29tbWVudC4gTW92ZSAjaWYgMCdkIGNvZGUgdG8gY29tbW9uIHBhdGguIFVzZQoJSU1QTElDSVRfVFlQRU5BTUVfUC4gU2ltcGxpZnkgJiByZWZvcm1hdCBBUlJBWV9UWVBFIGR1cGxpY2F0aW9uLgoKMjAwMi0wMi0xMyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKGJ1aWx0aW5fZnVuY3Rpb24pOiBTZXQgVFJFRV9USElTX1ZPTEFUSUxFIG9uIHJldHVybiBmbnMuCgkoZmluaXNoX2Z1bmN0aW9uKTogRG9uJ3Qgd2FybiBpZiBjdXJyZW50X2Z1bmN0aW9uX3JldHVybnNfbnVsbC4KCgkqIHR5cGVjazIuYyAoZGlnZXN0X2luaXQpOiBEbyBoYW5kbGUgdmFsdWVzIG9mIHZlY3RvciB0eXBlLgoKCSogdHlwZWNrMi5jIChkaWdlc3RfaW5pdCwgcHJvY2Vzc19pbml0X2NvbnN0cnVjdG9yKTogVHJlYXQgdmVjdG9ycwoJbGlrZSBhcnJheXMuCgoyMDAyLTAyLTExICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHBhcnNlLnkgKHJlc2VydmVkX2RlY2xzcGVjcyk6IERvbid0IGhhbmRsZSBhdHRyaWJ1dGVzLgoJKHJlc2VydmVkX3R5cGVzcGVjcXVhbHMpOiBIYW5kbGUgdGhlbSBoZXJlLgoJKiBNYWtlLWxhbmcuaW4gKHBhcnNlLmMpOiBBZGp1c3QgZXhwZWN0ZWQgY29uZmxpY3RzLgoKMjAwMi0wMi0wOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBwYXJzZS55IChwcmltYXJ5LCBwcmltYXJ5X25vX2lkKTogVXNlIGNvbXBzdG10X29yX3N0bXRleHByCglpbnN0ZWFkIG9mIGNvbXBzdG10LgoJKGNvbXBzdG10X29yX3N0bXRleHByKTogUmVuYW1lZCBmcm9tIGNvbXBzdG10LgoJKGNvbXBzdG10KTogSW4gYWRkaXRpb24gdG8gY29tcHN0bXRfb3Jfc3RtdGV4cHIgY2xlYXIgbGFzdF9leHByX3R5cGUuCgoyMDAyLTAyLTA3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVJlbmFtZSBpbnN0YW50aWF0ZV90eXBlX2ZsYWdzIHRvIHRzdWJzdF9mbGFnc190ICYgZXhwYW5kIHVzZS4KCSogY3AtdHJlZS5oIChpbnN0YW50aWF0ZV90eXBlX2ZsYWdzKTogUmVuYW1lIHRvIC4uLgoJKHRzdWJzdF9mbGFnc190KTogLi4uIGhlcmUuIFJlbmFtZSBpdGZfY29tcGxhaW4gdG8gdGZfZXJyb3IsCglhZGQgdGZfd2FybmluZyBmbGFnLgoJKGluc3RhbnRpYXRlX3R5cGUpOiBBZGp1c3QgcHJvdG90eXBlLgoJKHRzdWJzdCwgdHN1YnN0X2V4cHIsIHRzdWJzdF9jb3B5LCBsb29rdXBfdGVtcGxhdGVfY2xhc3MsCglkb190eXBlX2luc3RhbnRpYXRpb24sIGNwX2J1aWxkX3F1YWxpZmllZF90eXBlX3JlYWwpOiBMaWtld2lzZS4KCWNwX2J1aWxkX3F1YWxpZmllZF90eXBlOiBBZGp1c3QuCgkqIGNsYXNzLmMgKGluc3RhbnRpYXRlX3R5cGUpOiBBZGp1c3QgcGFyYW1ldGVyLiBSZW5hbWUgaXRmXyogdG8KCXRmXyouCgkqIGNhbGwuYyAoc3RhbmRhcmRfY29udmVyc2lvbik6IFJlbmFtZSBpdGZfKiB0byB0Zl8qLgoJKHJlZmVyZW5jZV9iaW5kaW5nKTogTGlrZXdpc2UuCgkoY29udmVydF9saWtlX3JlYWwpOiBMaWtld2lzZS4KCSogY3Z0LmMgKGNwX2NvbnZlcnRfdG9fcG9pbnRlcik6IExpa2V3aXNlLgoJKGNvbnZlcnRfdG9fcmVmZXJlbmNlKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAobG9va3VwX25hbWVzcGFjZV9uYW1lKTogVXNlIHRmXyogZmxhZ3MuCgkobWFrZV90eXBlbmFtZV90eXBlKTogTGlrZXdpc2UuCgkoZ3Jva2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCSogcHQuYyAoY29udmVydF9ub250eXBlX2FyZ3VtZW50KTogQWRqdXN0IENPTVBMQUlOIHVzYWdlLgoJKGNvZXJjZV90ZW1wbGF0ZV90ZW1wbGF0ZV9wYXJtcywgY29udmVydF90ZW1wbGF0ZV9hcmd1bWVudCwKCWNvZXJjZV90ZW1wbGF0ZV9wYXJtcywgbWF5YmVfZ2V0X3RlbXBsYXRlX2RlY2xfZnJvbV90eXBlX2RlY2wsCglsb29rdXBfdGVtcGxhdGVfY2xhc3MsIHRzdWJzdF9mcmllbmRfZnVuY3Rpb24sIHRzdWJzdF9mcmllbmRfY2xhc3MsCglpbnN0YW50aWF0ZV9jbGFzc190ZW1wbGF0ZSwgdHN1YnN0X3RlbXBsYXRlX2FyZ192ZWN0b3IsCgl0c3Vic3RfdGVtcGxhdGVfcGFybXMsIHRzdWJzdF9hZ2dyX3R5cGUsIHRzdWJzdF9kZWZhdWx0X2FyZ3VtZW50LAoJdHN1YnN0X2RlY2wsIHRzdWJzdF9hcmdfdHlwZXMsIHRzdWJzdF9mdW5jdGlvbl90eXBlLAoJdHN1YnN0X2NhbGxfZGVjbGFyYXRvcl9wYXJtcywgdHN1YnN0LCB0c3Vic3RfY29weSwgdHN1YnN0X2V4cHIsCglpbnN0YW50aWF0ZV90ZW1wbGF0ZSwgZm5fdHlwZV91bmlmaWNhdGlvbiwKCXJlc29sdmVfb3ZlcmxvYWRlZF91bmlmaWNhdGlvbiwgdmVyaWZ5X2NsYXNzX3VuaWZpY2F0aW9uLAoJdW5pZnksIGdldF9iaW5kaW5nc19yZWFsLCBkb190eXBlX2luc3RhbnRpYXRpb24sCglyZWdlbmVyYXRlX2RlY2xfZnJvbV90ZW1wbGF0ZSwgaW5zdGFudGlhdGVfZGVjbCwKCXRzdWJzdF9pbml0aWFsaXplcl9saXN0LCB0c3Vic3RfZW51bSwKCWdldF9tb3N0bHlfaW5zdGFudGlhdGVkX2Z1bmN0aW9uX3R5cGUsCglpbnZhbGlkX25vbnR5cGVfcGFybV90eXBlX3ApOiBMaWtld2lzZS4KCSogdHJlZS5jIChjcF9idWlsZF9xdWFsaWZpZWRfdHlwZV9yZWFsKTogTGlrZXdpc2UuCgkqIHR5cGVjay5jIChidWlsZF9iaW5hcnlfb3ApOiBSZW5hbWUgaXRmXyogdG8gdGZfKi4KCShidWlsZF9wdHJtZW1mdW5jKTogTGlrZXdpc2UuCgkoY29udmVydF9mb3JfYXNzaWdubWVudCk6IExpa2V3aXNlLgoKMjAwMi0wMi0wNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTA5CgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBBbGxvdyBmcmllbmQgZGVjbGFyYXRpb25zIGZyb20KCWRlcGVuZGVudCB0eXBlcy4KCSogZGVjbDIuYyAoaGFuZGxlX2NsYXNzX2hlYWQpOiBEb24ndCBwdXNoIGludG8gdGVtcGxhdGUgcGFybSBjb250ZXh0cy4KCSogcHQuYyAocHVzaF90ZW1wbGF0ZV9kZWNsX3JlYWwpOiBUZW1wbGF0ZSBwYXJtIGNvbnRleHRzIGFyZSBuZXZlcgoJYmVpbmcgZGVmaW5lZC4KCjIwMDItMDItMDUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY2xhc3MuYzogSW5jbHVkZSB0YXJnZXQuaC4KCShjaGVja19iaXRmaWVsZF9kZWNsKTogRGlzcmVnYXJkIEVNUFRZX0ZJRUxEX0JPVU5EQVJZLAoJQklURklFTERTX05CWVRFU19MSU1JVEVEIGFuZCBQQ0NfQklURklFTERfVFlQRV9NQVRURVJTIGZvciBNUwoJYml0LWZpZWxkIGxheW91dC4KCSogTWFrZS1sYW5nLmluOiBBZGp1c3QgZGVwcy4KCjIwMDItMDItMDUgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZXJyb3IuYyAoZHVtcF90eXBlKTogQmUgbW9yZSBoZWxwZnVsIGFib3V0IFZFQ1RPUl9UWVBFLgoKMjAwMi0wMi0wNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBzZW1hbnRpY3MuYyAoYmVnaW5fc3dpdGNoX3N0bXQpOiBDbGVhciBTV0lUQ0hfVFlQRS4KCShmaW5pc2hfc3dpdGNoX2NvbmQpOiBTZXQgU1dJVENIX1RZUEUuCgoyMDAyLTAyLTA0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogbWV0aG9kLmMgKHVzZV90aHVuayk6IEFsd2F5cyBpbml0aWFsaXplIHRoZSBibG9jayB0cmVlLiAgUmVpbmRlbnQuCgkqIHNlbWFudGljcy5jIChleHBhbmRfYm9keSk6IEVtaXQgdGh1bmtzIGFmdGVyIGZ1bmN0aW9uLCBub3QgYmVmb3JlLgoKMjAwMi0wMi0wNCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKHN0YXJ0X2Z1bmN0aW9uKTogQ2FsbCBjcGx1c19kZWNsX2F0dHJpYnV0ZXMgaW1tZWRpYXRlbHkKCWFmdGVyIGdyb2tkZWNsYXJhdG9yLgoKCSogZGVjbC5jIChzdGFydF9mdW5jdGlvbik6IENvbWJpbmUgREVDTF9SRVNVTFQgaGFuZGxpbmcgY29kZS4KCjIwMDItMDItMDMgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogeHJlZi5jOiBSZW1vdmUuCgkqIE1ha2UtbGFuZy5pbiAoQ1hYX09CSlMpOiBSZW1vdmUgY3AveHJlZi5vCgkoY3AveHJlZi5vKTogUmVtb3ZlIGRlcGVuZGVuY2llcy4KCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdF8xLCBjaGVja19tZXRob2RzKTogRG9uJ3QgY2FsbCB4cmVmIGZucy4KCShmaW5pc2hfc3RydWN0XzEpOiBMaWtld2lzZS4KCSogZnJpZW5kLmMgKG1ha2VfZnJpZW5kX2NsYXNzKTogTGlrZXdpc2UuCgkqIGxleC5jIChjeHhfaW5pdCwgY3h4X2ZpbmlzaCwgZXh0cmFjdF9pbnRlcmZhY2VfaW5mbyk6IExpa2V3aXNlLgoJKiBzcGV3LmMgKHJlYWRfcHJvY2Vzc19pZGVudGlmaWVyKTogTGlrZXdpc2UuCgoyMDAyLTAyLTAxICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBjKysvNDg3MgoJKiBkZWNsLmMgKGZpbmlzaF9mdW5jdGlvbik6IFdhcm4gYWJvdXQgYSBub24tdm9pZCBmdW5jdGlvbiB3aXRoCglubyByZXR1cm4gc3RhdGVtZW50IGFuZCBubyBhYm5vcm1hbCBleGl0LgoJKiBjcC10cmVlLmggKHN0cnVjdCBjcF9sYW5ndWFnZV9mdW5jdGlvbik6IEFkZCByZXR1cm5zX2Fibm9ybWFsbHkuCgkoY3VycmVudF9mdW5jdGlvbl9yZXR1cm5zX2Fibm9ybWFsbHkpOiBOZXcgbWFjcm8uCgkqIGNhbGwuYyAoYnVpbGRfY2FsbCk6IFNldCBpdC4KCgkqIHR5cGVjay5jIChidWlsZF9jb21wb25lbnRfcmVmKTogQWx3YXlzIGNvbXBsYWluIGFib3V0IG9mZnNldG9mCgljb25zdHJ1Y3RzIG9uIG5vbi1QT0RzLiAgT25seSBtYWtlIGl0IGFuIGVycm9yIGZvciBtZW1iZXJzIG9mCgl2aXJ0dWFsIGJhc2VzLgoKCSogZXJyb3IuYyAoZHVtcF9zY29wZSk6IERvbid0IGFkZCBURkZfREVDTF9TUEVDSUZJRVJTLgoJKGR1bXBfZnVuY3Rpb25fZGVjbCk6IEFsd2F5cyBkdW1wIHBhcm1zLgoKCSogZGVjbDIuYyAoZmluaXNoX3N0YXRpY19kYXRhX21lbWJlcl9kZWNsKTogQ29tcGxhaW4gYWJvdXQgYSBsb2NhbAoJY2xhc3Mgd2l0aCBhIHN0YXRpYyBkYXRhIG1lbWJlci4KCglQUiBjKysvNDI4NgoJKiBzZWFyY2guYyAobG9va3VwX2ZpZWxkXzEpOiBEb24ndCB4cmVmIGEgc3RhdGljIGRhdGEgbWVtYmVyCglqdXN0IGJlY2F1c2Ugd2UgbG9va2VkIGl0IHVwLgoKMjAwMi0wMS0zMSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKHBhcnNlLmMpOiBIYW5kbGUgLm91dHB1dCBmaWxlLgoKCVBSIGMrKy8zMzk1CgkqIGRlY2wuYyAoeHJlZl90YWcpOiBSZW1lbWJlciBlYXJseSBhdHRyaWJ1dGVzIGluIFRZUEVfQVRUUklCVVRFUywKCW5vdCBUUkVFX1RZUEUuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfY2xhc3NfZGVmaW5pdGlvbik6IEFkanVzdC4KCglBbGxvdyBhdHRyaWJ1dGVzIGluIHBhcm1zIGFuZCBjYXN0cy4KCSogcGFyc2UueSAobmFtZWRfcGFybSk6IERvbid0IHN0cmlwIGF0dHJzLgoJKGRlY2xtb2RzKTogUmVtb3ZlICdhdHRyaWJ1dGVzJyBwcm9kdWN0aW9uLgoJKG5vbmVtcHR5X2N2X3F1YWxpZmllcnMpOiBBY2NlcHQgYXR0cmlidXRlcy4KCShBVFRSSUJVVEUpOiBHaXZlIHByZWNlZGVuY2UuCgkqIGRlY2wuYyAoZ3Jva3R5cGVuYW1lKTogSGFuZGxlIGF0dHJpYnV0ZXMuCgkoZ3Jva3Bhcm1zKTogTGlrZXdpc2UuCgoyMDAyLTAxLTI5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGRlY2wyLmMgKGN4eF9kZWNvZGVfb3B0aW9uKTogUGFzcyAwIGFzIGxhc3QgYXJndW1lbnQgdG8KCWNwcF9oYW5kbGVfb3B0aW9uLgoJKiBsYW5nLXNwZWNzLmg6IFVzZSBjcHBfdW5pcXVlX29wdGlvbnMgaW5zdGVhZCBvZiBjcHBfb3B0aW9ucwoJd2hlbiB1c2VkIHRvZ2V0aGVyIHdpdGggY2MxX29wdGlvbnMuCgoyMDAyLTAxLTI5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy81MTMyCgkqIHR5cGVjazIuYyAoZGlnZXN0X2luaXQpOiBNYWtlIHN1cmUgbm9uLWFycmF5IGNvcmUgdHlwZSBpcwoJaW5zdGFudGlhdGVkLgoJKiBkZWNsMi5jIChyZXBhcnNlX2Fic2RjbF9hc19jYXN0cyk6IEp1c3Qgc3RvcmUgdGhlIHR5cGUgaW4gdGhlCgljb25zdHJ1Y3RvciwgcmF0aGVyIHRoYW4gYnVpbGQgYSBuZXcgb25lLgoJKGJ1aWxkX2V4cHJfZnJvbV90cmVlLCBDT05TVFJVQ1RPUiBjYXNlKTogQmUgY2FyZWZ1bCB3aXRoIHRoZQoJUFVSUE9TRSBvZiBjb25zdHJ1Y3RvciBlbHRzLgoKMjAwMi0wMS0yMyAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAocGFyc2UuYyk6IEFkanVzdCBleHBlY3RlZCBudW1iZXIgb2YKCXNoaWZ0LXJlZHVjZSBjb25mbGljdHMuCgkoZGVjbC5vKTogRGVwZW5kIG9uIGRpYWdub3N0aWMuaC4KCSogZGVjbC5jOiBJbmNsdWRlIGRpYWdub3N0aWMuaC4KCShncm9rZGVjbGFyYXRvcik6IENoZWNrIGZvciBudWxsIHBvaW50ZXIuCgkoZmluaXNoX2Z1bmN0aW9uKTogRG9uJ3QgYWJvcnQgd2hlbgoJY3VycmVudF9iaW5kaW5nX2xldmVsLT5wYXJtX2ZsYWcgIT0gMSwgaWYgZXJyb3JzIGhhdmUKCW9jY3VycmVkOyB0aHJvdyBhd2F5IHRoZSBzdGF0ZW1lbnQgdHJlZSBhbmQgZXh0cmEgYmluZGluZwoJbGV2ZWxzLCBhbmQgY29udGludWUuCgkqIGxleC5jIChub3RlX2xpc3RfZ290X3NlbWljb2xvbik6IENoZWNrIGZvciBudWxsIHBvaW50ZXIuCgkqIG1ldGhvZC5jIChoYWNrX2lkZW50aWZpZXIpOiBKdXN0IHJldHVybiBlcnJvcl9tYXJrX25vZGUgaWYKCXZhbHVlIGlzIGVycm9yX21hcmtfbm9kZS4KCSogcGFyc2UueSAocHJpbWFyeTogVFlQRUlEKHR5cGVfaWQpKTogTm8gbmVlZCB0byB1c2UKCVRZUEVfTUFJTl9WQVJJQU5UIGhlcmUuCgkoaGFuZGxlcl9zZXEpOiBBY2NlcHQgYW4gZW1wdHkgbGlzdCBvZiBjYXRjaCBjbGF1c2VzIGFuZAoJZ2VuZXJhdGUgYSBmYWtlIGhhbmRsZXIgYmxvY2sgdG8gYXZvaWQgbGF0ZXIgY3Jhc2hlcy4KCShhbnNpX3JhaXNlX2lkZW50aWZpZXIpOiBBY2NlcHQgdGhlIGVycm9yIHRva2VuIHRvby4KCSogc2VtYW50aWNzLmMgKGJlZ2luX2NsYXNzX2RlZmluaXRpb24sCglmaW5pc2hfY2xhc3NfZGVmaW5pdGlvbik6IENoZWNrIGZvciBlcnJvcl9tYXJrX25vZGUuCgoyMDAyLTAxLTIzICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrMi5jIChmcmllbmRseV9hYm9ydCk6IERlbGV0ZSBkZWZpbml0aW9uLgoJKiBjcC10cmVlLmggKGZyaWVuZGx5X2Fib3J0KTogRG9uJ3QgcHJvdG90eXBlLgoJKG15X2ZyaWVuZGx5X2Fzc2VydCk6IFVzZSBmYW5jeV9hYm9ydC4KCjIwMDItMDEtMjMgIENyYWlnIFJvZHJpZ3VlcyAgPHJvZHJpZ2NAZ2NjLmdudS5vcmc+CgoJKiBjcC10cmVlLmggKG15X2ZyaWVuZGx5X2Fib3J0KTogUmVtb3ZlLgoKMjAwMi0wMS0yMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBzcGV3LmMgKHBlbmRpbmdfaW5saW5lcywgcGVuZGluZ19pbmxpbmVzX3RhaWwsCglwcm9jZXNzaW5nX3RoZXNlX2lubGluZXMpOiBNYWtlIHN0YXRpYy4KCShtYXJrX3BlbmRpbmdfaW5saW5lcyk6IFJlbW92ZSBzdGF0aWMuCgkoYmVnaW5fcGFyc2luZ19pbmNsYXNzX2lubGluZSk6IElmIGluIGZ1bmN0aW9uLCBzYXZlIHBpCglmb3IgR0MgdG8gY3BfZnVuY3Rpb25fY2hhaW4tPnVucGFyc2VkX2lubGluZXMgaW5zdGVhZC4KCShwcm9jZXNzX25leHRfaW5saW5lKTogTGlrZXdpc2UuCgkqIGNwLXRyZWUuaCAoc3RydWN0IGNwX2xhbmd1YWdlX2Z1bmN0aW9uKTogQWRkIHVucGFyc2VkX2lubGluZXMuCgkobWFya19wZW5kaW5nX2lubGluZXMpOiBBZGQgcHJvdG90eXBlLgoJKiBkZWNsLmMgKHNwZXdfZGVidWcpOiBSZW1vdmUgdW51c2VkIGV4dGVybi4KCShtYXJrX2xhbmdfZnVuY3Rpb24pOiBDYWxsIG1hcmtfcGVuZGluZ19pbmxpbmVzLgoKMjAwMi0wMS0yMyAgQ3JhaWcgUm9kcmlndWVzICA8cm9kcmlnY0BnY2MuZ251Lm9yZz4KCgkqIGNhbGwuYywgY2xhc3MuYywgZGVjbC5jLCBkZWNsMi5jLCBlcnJvci5jLCBleHByLmMsIGZyaWVuZC5jLAoJaW5pdC5jLCBsZXguYywgbWFuZ2xlLmMsIG1ldGhvZC5jLCBwdC5jLCByZXBvLmMsIHJ0dGkuYywgc2VhcmNoLmMsCglzZW1hbnRpY3MuYywgc3Bldy5jLCB0cmVlLmMsIHR5cGVjay5jLCB0eXBlY2syLmMsIHhyZWYuYzoKCUNoYW5nZSBteV9mYW5jeV9hYm9ydCgpIHRvIGFib3J0KCkuCgoyMDAyLTAxLTIzICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBjKysvNTQ1MwoJKiBjbGFzcy5jIChmaXhlZF90eXBlX29yX251bGwpOiBGaXggdGhpbmtvLgoKCVBSIGMrKy8zMzMxCgkqIGluaXQuYyAocmVzb2x2ZV9vZmZzZXRfcmVmKTogVXNlIGJ1aWxkX2luZGlyZWN0X3JlZi4KCgkqIGRlY2wyLmMgKGdyb2tjbGFzc2ZuKTogRG9uJ3Qgc2V0IERFQ0xfUkVHSVNURVIgb24gJ3RoaXMnLgoKMjAwMi0wMS0yMiAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBwYXJzZS55IChmdW5jdGlvbl9ib2R5KTogU3VwcHJlc3MgdGhlIGJsb2NrIGZvciB0aGUgb3V0ZXJtb3N0CgljdXJseSBicmFjZXMuCgkqIGRlY2wuYyAocHVzaGRlY2wpOiBEb24ndCB0cnkgdG8gc2tpcCBpdC4KCShiZWdpbl9mdW5jdGlvbl9ib2R5KTogS2VlcCB0aGUgYmxvY2sgd2UgY3JlYXRlLCBub3QgdGhlIG5leHQgb25lLgoJKiBpbml0LmMgKGVtaXRfYmFzZV9pbml0KTogRG9uJ3QgbWVzcyB3aXRoIGtlZXBfbmV4dF9sZXZlbC4KCgkqIGNsYXNzLmMgKGJ1aWxkX2Jhc2VfcGF0aCk6IFR3ZWFrIGZvcm1hdHRpbmcuCgoyMDAyLTAxLTE5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCUZpeCByZWdyZXNzaW9uIGludHJvZHVjZWQgd2l0aCBwYXRjaCBmb3IgYysrLzc3NQoJKiBwYXJzZS55IChjbGFzc19oZWFkX2RlZm4pOiBDaGVjayBmb3IgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb25zCgl3aXRoIGEgZGlmZmVyZW50IGNsYXNzLWtleS4KCjIwMDItMDEtMTcgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZGVjbC5jIChiZWdpbl9jb25zdHJ1Y3Rvcl9ib2R5LCBiZWdpbl9kZXN0cnVjdG9yX2JvZHkpOiBOZXcgZm5zLgoJKGJlZ2luX2Z1bmN0aW9uX2JvZHkpOiBDYWxsIHRoZW0gYW5kIGtlZXBfbmV4dF9sZXZlbC4KCSogaW5pdC5jIChlbWl0X2Jhc2VfaW5pdCk6IENhbGwga2VlcF9uZXh0X2xldmVsLgoJKiBzZW1hbnRpY3MuYyAoc2V0dXBfdnRibF9wdHIpOiBMb3NlLgoJKiBjcC10cmVlLmggKHN0cnVjdCBjcF9sYW5ndWFnZV9mdW5jdGlvbik6IFJlbW92ZSB2dGJsc19zZXRfdXBfcC4KCSh2dGJsc19zZXRfdXBfcCk6IExvc2UuCgkqIHB0LmMgKHRzdWJzdF9leHByLCBDVE9SX0lOSVRJQUxJWkVSKTogQ2FsbCBlbWl0X2Jhc2VfaW5pdC4KCSogbWV0aG9kLmMgKGRvX2J1aWxkX2NvcHlfY29uc3RydWN0b3IpOiBMaWtld2lzZS4KCShzeW50aGVzaXplX21ldGhvZCk6IENhbGwgZmluaXNoX21lbV9pbml0aWFsaXplcnMuCgkqIHBhcnNlLnkgKG5vZGVjbHMpOiBMaWtld2lzZS4KCgkqIGVycm9yLmMgKGR1bXBfdHlwZV9zdWZmaXgpOiBQcmludCB0aGUgZXhjZXB0aW9uIHNwZWNzIGJlZm9yZQoJcmVjdXJzaW5nLgoJKGR1bXBfZnVuY3Rpb25fZGVjbCk6IEhlcmUsIHRvby4KCgkqIGNwLXRyZWUuaCAoVE1QTF9QQVJNU19ERVBUSCk6IENhc3QgdG8gc2lnbmVkIEhPU1RfV0lERV9JTlQuCgoyMDAyLTAxLTEwICBJcmEgUnViZW4JPGlyYUBhcHBsZS5jb20+CgoJUFIgYysrLzkwNwoJKiBkZWNsLmMgKHN0YXJ0X21ldGhvZCk6IEhhbmRsZSBhdHRybGlzdC4KCjIwMDItMDEtMTAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZGVjbDIuYyAobWF4X3RpbnN0X2RlcHRoKTogSW5jcmVhc2UgZGVmYXVsdCBsaW1pdCB0byA1MDAuCgoyMDAyLTAxLTEwICBHcmFoYW0gU3RvdHQgIDxncmFoYW1zQHJlZGhhdC5jb20+CgoJKiBzcGV3LmMgKFlZQ0hBUik6IFVwcGVyY2FzZSBtYWNybyBwYXJhbWV0ZXIgYW5kIGFkZAoJcGFyZW50aGVzaXMuCgkoWVlDT0RFKTogTGlrZXdpc2UuCgkoTkFNRSk6IFVwcGVyY2FzZSBtYWNybyBwYXJhbWV0ZXIuCgoyMDAyLTAxLTA5ICBHcmFoYW0gU3RvdHQgIDxncmFoYW1zQHJlZGhhdC5jb20+CgoJKiBkZWNsLmggKGdyb2tkZWNsYXJhdG9yKTogV3JhcCBsb25nIGxpbmUuCgoJKiBzZW1hbnRpY3MuYyAoRklOSVNIX0NPTkQpOiBVcHBlcmNhc2UgbWFjcm8gcGFyYW1hdGVycyBhbmQKCWFkZCBwYXJlbnRoZXNpcy4KCjIwMDItMDEtMDggIEdyYWhhbSBTdG90dCAgPGdyYWhhbXNAcmVkaGF0LmNvbT4KCgkqIHhyZWYuYyAoRklMRV9OQU1FX0FCU09MVVRFX1ApOiBBZGQgcGFyZW50aGVzaXMuCgkoUEFMTE9DKTogVXBwZXJjYXNlIG1hY3JvIHBhcmFtZXRlciBhbmQgd2hpdGVzcGFjZS4KCShTQUxMT0MpOiBVcHBlcmNhc2UgbWFjcm8gcGFyYW1ldGVyLgoJKFNGUkVFKTogVXBwZXJjYXNlIG1hY3JvcyBwYXJhbWV0ZXIsIGFkZCBwYXJlbnRoZXNlIGFuZAoJd2hpdGVzcGFjZS4KCShTVFJFUUwpOiBVcHBlcmNhc2UgbWFjcm8gcGFyYW1ldGVyIGFuZCB3aGl0ZXNwYWNlLgoJKFNUUk5FUSk6IExpa2V3aXNlLgoJKFNUUkxTUyk6IExpa2V3aXNlLgoJKFNUUkxFUSk6IExpa2V3aXNlLgoJKFNUUkdUUik6IExpa2V3aXNlLgoJKFNUUkdFUSk6IExpa2V3aXNlLgoKCSogY2FsbC5jIChjb252ZXJ0X2xpa2UpOiBBZGQgcGFyZW50aGVzaXMgYW5kIHdyYXAuCgkoY29udmVydF9saWtlX3dpdGhfY29udGV4dCk6IExpa2V3aXNlLgoJKElDU19SQU5LKTogV2hpdGVzcGFjZS4KCShORUVEX1RFTVBPUkFSWV9QKTogUmVtb3ZlIHBhcmVudGhlc2lzLgoKCSogY2xhc3MuYyAoVlRUX1RPUF9MRVZFTF9QKTogVXBwZXJjYXNlIG1hY3JvIHBhcmFtZXRlciBhbmQKCXdoaXRlc3BhY2UuCgkoVlRUX01BUktFRF9CSU5GT19QKTogTGlrZXdpc2UuCgoJKiBkZWNsLmMgKEJJTkRJTkdfTEVWRUwpOiBBZGQgcGFyZW50aGVzaXMuCgkoREVGX09QRVJBVE9SKTogTGlrZXdpc2UuCgoJKiBtYW5nbGUuYyAoTUFOR0xFX1RSQUNFKTogQWRkIHBhcmVudGhlc2lzLgoJKE1BTkdMRV9UUkFDRV9UUkVFKTogTGlrZXdpc2UuCgkod3JpdGVfc2lnbmVkX251bWJlcik6IExpa2V3aXNlLgoJKHdyaXRlX3Vuc2lnbmVkX251bWJlcik6IExpa2V3aXNlLgoKCSogcHQuYyAoY2NhdCk6IFVwcGVyY2FzZSBtYWNybyBwYXJhbWV0ZXIuCgkoY2F0KTogTGlrZXdpc2UKCgkqIHNlYXJjaC5jIChTRVRfQklORk9fQUNDRVNTKTogQWRkIHBhcmVudGhlc2lzLgoKMjAwMi0wMS0wNyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBkZWNsMi5jIChjb2VyY2VfbmV3X3R5cGUpOiBEb3duZ3JhZGUgZXJyb3IgZm9yIHNpemVfdCBtaXNtYXRjaAoJdG8gcGVkd2Fybi4KCglQUiBjKysvMzUzNgoJKiBtZXRob2QuYyAobWFrZV90aHVuayk6IElmICFmbGFnX3dlYWssIGdpdmUgdGhlIHRodW5rIHRoZQoJZnVuY3Rpb24ncyBsaW5rYWdlLgoJKHVzZV90aHVuayk6IEhlcmUsIHRvby4KCjIwMDItMDEtMDcgIEdyYWhhbSBTdG90dCAgPGdyYWhhbXNAcmVkaGF0LmNvbT4KCgkqIGVycm9yLmM6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCShwcmludF9zY29wZV9vcGVyYXRvcik6IEFkZCBwYXJlbnRoZXNpcy4KCShwcmludF9sZWZ0X3BhcmVuKTogTGlrZXdpc2UuCgkocHJpbnRfcmlnaHRfcGFyZW4pOiBMaWtld2lzZS4KCShwcmludF9sZWZ0X2JyYWNrZXQpOiBMaWtld2lzZS4KCShwcmludF9yaWdodF9icmFja2V0KTogTGlrZXdpc2UuCgkocHJpbnRfdGVtcGxhdGVfYXJndW1lbnRfbGlzdF9zdGFydCk6IExpa2V3aXNlLgoJKHByaW50X3RlbXBsYXRlX2FyZ3VtZW50X2xpc3RfZW5kKTogTGlrZXdpc2UuCgkocHJpbnRfbm9uX2NvbnNlY3V0aXZlX2NoYXJhY3Rlcik6IExpa2V3aXNlLgoJKHByaW50X3RyZWVfaWRlbnRpZmllcik6IExpa2V3aXNlLgoJKHByaW50X2lkZW50aWZpZXIpOiBMaWtld2lzZS4KCShORVhUX0NPREUpOiBVcHBlcmNhc2UgbWFjcm8gcGFyYW1ldGVyLgoJKGlkZW50X2ZuZGVjbCk6IERlbGV0ZSB1bnVzZWQuCgkoR0xPQkFMX1RISU5HKTogTGlrZXdpc2UuCgoyMDAyLTAxLTA2ICBHcmFoYW0gU3RvdHQgIDxncmFoYW1zQHJlZGhhdC5jb20+CgoJKiBjcC10cmVlLmggKFZBUl9PUl9GVU5DVElPTl9ERUNMX0NIRUNLKTogQWRkIHBhcmVudGhlc2lzLgoJKFZBUl9GVU5DVElPTl9PUl9QQVJNX0RFQ0xfQ0hFQ0spOiBMaWtld2lzZS4KCShWQVJfVEVNUExfVFlQRV9PUl9GVU5DVElPTl9ERUNMX0NIRUNLKSBMaWtld2lzZS4KCShSRUNPUkRfT1JfVU5JT05fVFlQRV9DSEVDSyk6IExpa2V3aXNlLgoJKEJPVU5EX1RFTVBMQVRFX1RFTVBMQVRFX1BBUk1fVFlQRV9DSEVDSyk6IExpa2V3aXNlLgoJKENfSVNfUkVTRVJWRURfV09SRCk6IFVwcGVyY2FzZSBtYWNybyBwYXJhbWV0ZXIuCgkoQ19SSURfWVlDT0RFKSBMaWtld2lzZS4KCShwdHJtZW1fY3N0KTogVXNlIHJ0eC4KCShMT0NBTF9CSU5ESU5HX1ApOiBBZGQgd2hpdGVzcGFjZS4KCShJTkhFUklURURfVkFMVUVfQklORElOR19QKTogTGlrZXdpc2UuCgkoQklORElOR19TQ09QRSk6IFdyYXAgbG9uZyBsaW5lLgoJKEJJTkRJTkdfSEFTX0xFVkVMX1ApOiBSZW1vdmUgcGFyZW50aGVzaXMuCgkoQklORElOR19WQUxVRSk6IFdyYXAgbG9uZyBsaW5lLgoJKEJJTkRJTkdfVFlQRSk6IFdoaXRlc3BhY2UuCgkoSURFTlRJRklFUl9HTE9CQUxfVkFMVUUpOiBBZGQgcGFyZW50aGVzaXMuCgkoU0VUX0lERU5USUZJRVJfR0xPQkFMX1ZBTFVFKTogTGlrZXdpc2UuCgkoSURFTlRJRklFUl9OQU1FU1BBQ0VfVkFMVUUpOiBMaWtld2lzZS4KCShTRVRfSURFTlRJRklFUl9OQU1FU1BBQ0VfVkFMVUU6IExpa2V3aXNlLgoJKHNhbWVfdHlwZV9wKTogVXBwZXJjYXNlIG1hY3JvIHBhcmFtZXRlcnMuCgkoc2FtZV90eXBlX2lnbm9yaW5nX3RvcF9sZXZlbF9xdWFsaWZpZXJzX3ApOiBMaWtld2lzZS4KCShPVkxfRlVOQ1RJT04pOiBXcmFwIGxvbmcgbGluZS4KCShPVkxfQ0hBSU4pOiBXaGl0ZXNwYWNlLgoJKE9WTF9DVVJSRU5UKTogQWRkIHBhcmVudGhlc2lzIGFuZCB3aGl0ZXNwYWNlLgoJKE9WTF9ORVhUKTogV2hpdGVzcGFjZS4KCShPVkxfVVNFRCk6IExpa2V3aXNlLgoJKElERU5USUZJRVJfVFlQRV9WQUxVRSk6IExpa2V3aXNlLgoJKFJFQUxfSURFTlRJRklFUl9UWVBFX1ZBTFVFKTogUmVtb3ZlIHBhcmVudGhlc2lzLgoJKFNFVF9JREVOVElGSUVSX1RZUEVfVkFMVUUpOiBBZGQgcGFyZW50aGVzaXMgYW5kIHdoaXRlc3BhY2UuCgkoTEFOR19JRF9GSUVMRCk6IFdoaXRlc3BhY2UuCgkoU0VUX0xBTkdfSUQoTk9ERSxWQUxVRSxOQU1FKTogTGlrZXdpc2UuCgkoSURFTlRJRklFUl9MQUJFTF9WQUxVRSk6IFdoaXRlc3BhY2UgYW5kIHdyYXAuCgkoU0VUX0lERU5USUZJRVJfTEFCRUxfVkFMVUUpOiBXaGl0ZXNwYWNlLgoJKElERU5USUZJRVJfSU1QTElDSVRfREVDTCk6IFdoaXRlc3BhY2UgYW5kIHdyYXAuCgkoU0VUX0lERU5USUZJRVJfSU1QTElDSVRfREVDTCk7IFdoaXRlc3BhY2UuCgkoSURFTlRJRklFUl9FUlJPUl9MT0NVUyk6IFdoaXRlc3BhY2UgYW5kIHdyYXAuCgkoU0VUX0lERU5USUZJRVJfRVJST1JfTE9DVVMpOyBXaGl0ZXNwYWNlLgoJKElERU5USUZJRVJfVklSVFVBTF9QKTogTGlrZXdpc2UuCgkoSURFTlRJRklFUl9PUE5BTUVfUCk6IExpa2V3aXNlLgoJKElERU5USUZJRVJfVFlQRU5BTUVfUCk6IFJlbW92ZSBwYXJlbnRoZXNpcy4KCShDX1RZUEVfRklFTERTX1JFQURPTkxZKTogVXBwZXJjYXNlIG1hY3JvIHBhcmFtZXRlcnMuCgkoQ19TRVRfRVhQX09SSUdJTkFMX0NPREUpOiBMaWtld2lzZS4KCShUWVBFX0FTU0VNQkxFUl9OQU1FX1NUUklORyk6IFdyYXAgbG9uZyBsaW5lLgoJKFRZUEVfQVNTRU1CTEVSX05BTUVfTEVOR1RIKTogTGlrZXdpc2UuCgkoSVNfQUdHUl9UWVBFKTogVXBwZXJjYXNlIG1hY3JvIHBhcmFtZXRlci4KCShDTEFTU19UWVBFX1ApOiBMaWtld2lzZS4KCShJU19BR0dSX1RZUEVfQ09ERSk6IFVwcGVyY2FzZSBtYWNybyBwYXJhbWV0ZXIgYW5kIHBhcmVudGhlc2lzLgoJKElTX0FHR1JfVFlQRV8yKTogV2hpdGVzcGFjZS4KCShUQUdHRURfVFlQRV9QKTogVXBwZXJjYXNlIG1hY3JvIHBhcmFtZXRlci4KCShUWVBFX0JVSUxUX0lOKTogV2hpdGVzcGFjZS4KCShUWVBFX0ZPUl9KQVZBKTogTGlrZXdpc2UuCgkoRlVOQ1RJT05fQVJHX0NIQUlOKTogUmVtb3ZlIHBhcmVudGhlc2lzLgoJKEZVTkNUSU9OX0ZJUlNUX1VTRVJfUEFSTVRZUEUpOiBBZGQgcGFyZW50aGVzaXMuCgkoRlVOQ1RJT05fRklSU1RfVVNFUl9QQVJBTSk6IExpa2V3aXNlLgoJKFBST01PVEVTX1RPX0FHR1JfVFlQRSk6IFdoaXRlc3BhY2UuCgkoREVSSVZFRF9GUk9NX1ApOiBBZGQgcGFyZW50aGVzaXMgYW5kIHdyYXAuCgkoVU5JUVVFTFlfREVSSVZFRF9GUk9NX1ApOiBMaWtld2lzZS4KCShBQ0NFU1NJQkxZX1VOSVFVRUxZX0RFUklWRURfUCk6IExpa2V3aXNlLgoJKFBVQkxJQ0xZX1VOSVFVRUxZX0RFUklWRURfUCk6IExpa2V3aXNlLgoJKENMQVNTVFlQRV9VU0VfVEVNUExBVEUpOiBXaGl0ZXNwYWNlLgoJKENMQVNTVFlQRV9JTkxJTkVfRlJJRU5EUyk6IFJlbW92ZSBwYXJlbnRoZXNpcy4KCShUWVBFX0dFVFNfREVMRVRFKTogQWRkIHBhcmVudGhlc2lzLgoJKFRZUEVfSEFTX0NPTlZFUlNJT04pOiBBZGQgcGFyZW50aGVzaXMgYW5kIHdyYXAuCgkoVFlQRV9IQVNfQVNTSUdOX1JFRik6IExpa2V3aXNlLAoJKFRZUEVfSEFTX0NPTlNUX0FTU0lHTl9SRUYpOiBMaWtld2lzZS4KCShUWVBFX0hBU19JTklUX1JFRik6IExpa2V3aXNlLgoJKFRZUEVfSEFTX0NPTlNUX0lOSVRfUkVGKTogTGlrZXdpc2UuCgkoVFlQRV9CRUlOR19ERUZJTkVEKTogTGlrZXdpc2UuCgkoVFlQRV9MQU5HX1NQRUNJRklDKTogTGlrZXdpc2UuCgkoQ0xBU1NUWVBFX1JUVEkpOiBMaWtld2lzZS4KCShUWVBFX09WRVJMT0FEU19DQUxMX0VYUFIpOiBMaWtld2lzZS4KCShUWVBFX09WRVJMT0FEU19BUlJBWV9SRUYpOiBMaWtld2lzZS4KCShUWVBFX09WRVJMT0FEU19BUlJPVyk6IExpa2V3aXNlLgoJKFRZUEVfVVNFU19NVUxUSVBMRV9JTkhFUklUQU5DRSk6IExpa2V3aXNlLgoJKFRZUEVfVVNFU19WSVJUVUFMX0JBU0VDTEFTU0VTKTogQWRkIHBhcmVudGhlc2lzLgoJKENMQVNTVFlQRV9NRVRIT0RfVkVDKTogTGlrZXdpc2UuCgkoQ0xBU1NUWVBFX01BUktFRF9OKTogTGlrZXdpc2UuCgkoQ0xBU1NUWVBFX01BUktFRCk6IExpa2V3aXNlLgoJKENMQVNTVFlQRV9NQVJLRUQyKTogTGlrZXdpc2UuCgkoQ0xBU1NUWVBFX01BUktFRDMpOiBMaWtld2lzZS4KCShDTEFTU1RZUEVfTUFSS0VENCk6IExpa2V3aXNlLgoJKENMQVNTVFlQRV9NQVJLRUQ1KTogTGlrZXdpc2UuCgkoQ0xBU1NUWVBFX01BUktFRDYpOiBMaWtld2lzZS4KCShTRVRfQ0xBU1NUWVBFX01BUktFRCk6IFdoaXRlc3BhY2UuCgkoQ0xFQVJfQ0xBU1NUWVBFX01BUktFRCk6IExpa2V3aXNlLgoJKFNFVF9DTEFTU1RZUEVfTUFSS0VEMik6IExpa2V3aXNlLgoJKENMRUFSX0NMQVNTVFlQRV9NQVJLRUQyKTogTGlrZXdpc2UuCgkoU0VUX0NMQVNTVFlQRV9NQVJLRUQzKTogTGlrZXdpc2UuCgkoQ0xFQVJfQ0xBU1NUWVBFX01BUktFRDMpOiBMaWtld2lzZS4KCShTRVRfQ0xBU1NUWVBFX01BUktFRDQpOiBMaWtld2lzZS4KCShDTEVBUl9DTEFTU1RZUEVfTUFSS0VENCk6IExpa2V3aXNlLgoJKFNFVF9DTEFTU1RZUEVfTUFSS0VENSk6IExpa2V3aXNlLgoJKENMRUFSX0NMQVNTVFlQRV9NQVJLRUQ1KTogTGlrZXdpc2UuCgkoU0VUX0NMQVNTVFlQRV9NQVJLRUQ2KTogTGlrZXdpc2UuCgkoQ0xFQVJfQ0xBU1NUWVBFX01BUktFRDYpOiBMaWtld2lzZS4KCShDTEFTU1RZUEVfVEFHUyk6IExpa2V3aXNlLgoJKENMQVNTVFlQRV9WU0laRSk6IExpa2V3aXNlLgoJKENMQVNTVFlQRV9WQkFTRUNMQVNTRVMpOiBMaWtld2lzZS4KCShDQU5PTklDQUxfQklORk8pOiBBZGQgcGFyZW50aGVzaXMuCgkoQ0xBU1NUWVBFX1NJWkUoTk9ERSk6IExpa2V3aXNlLgoJKENMQVNTVFlQRV9TSVpFX1VOSVQpOiBMaWtld2lzZS4KCShDTEFTU1RZUEVfQUxJR04oTk9ERSk6IExpa2V3aXNlLgoJKENMQVNTVFlQRV9VU0VSX0FMSUdOKTogTGlrZXdpc2UuCgkoVFlQRV9KQVZBX0lOVEVSRkFDRSk6IExpa2V3aXNlLgoJKENMQVNTVFlQRV9QVVJFX1ZJUlRVQUxTKTogTGlrZXdpc2UuCgkoQ0xBU1NUWVBFX05FRURTX1ZJUlRVQUxfUkVJTklUKTogV2hpdGVzcGFjZSBhbmQgd3JhcC4KCShUWVBFX0hBU19ERUZBVUxUX0NPTlNUUlVDVE9SKTogTGlrZXdpc2UuCgkoQ0xBU1NUWVBFX0hBU19NVVRBQkxFKTogTGlrZXdpc2UuCgkoQ0xBU1NUWVBFX0ZSSUVORF9DTEFTU0VTKTogTGlrZXdpc2UuIExpa2V3aXNlLgoJKENMQVNTVFlQRV9ERUNMQVJFRF9DTEFTUyk6IFdoaXRlc3BhY2UgYW5kIHdyYXAuCgkoQ0xBU1NUWVBFX1JFQURPTkxZX0ZJRUxEU19ORUVEX0lOSVQpOiBMaWtld2lzZS4KCShDTEFTU1RZUEVfUkVGX0ZJRUxEU19ORUVEX0lOSVQpOiBMaWtld2lzZS4KCShDTEFTU1RZUEVfSU5URVJGQUNFX09OTFkpOiBMaWtld2lzZS4KCShDTEFTU1RZUEVfSU5URVJGQUNFX0tOT1dOKTogTGlrZXdpc2UuCgkoQ0xBU1NUWVBFX0lOVEVSRkFDRV9VTktOT1dOKTogTGlrZXdpc2UuCgkoU0VUX0NMQVNTVFlQRV9JTlRFUkZBQ0VfVU5LTk9XTl9YKTogTGlrZXdpc2UuCgkoU0VUX0NMQVNTVFlQRV9JTlRFUkZBQ0VfVU5LTk9XTik6IExpa2V3aXNlLgoJKFNFVF9DTEFTU1RZUEVfSU5URVJGQUNFX0tOT1dOKTogTGlrZXdpc2UuCgkoQ0xBU1NUWVBFX0RFQlVHX1JFUVVFU1RFRCk6IFdoaXRlc3BhY2UgYW5kIHdyYXAuCgkoQklORk9fVU5TSEFSRURfTUFSS0VEKTogV2hpdGVzcGFjZS4KCShCSU5GT19NQVJLRUQpOiBXaGl0ZXNwYWNlIGFuZCB3cmFwLgoJKFNFVF9CSU5GT19NQVJLRUQpOiBMaWtld2lzZS4KCShDTEVBUl9CSU5GT19NQVJLRUQpOiBMaWtld2lzZS4KCShCSU5GT19WVEFCTEVfUEFUSF9NQVJLRUQpOiBMaWtld2lzZS4KCShTRVRfQklORk9fVlRBQkxFX1BBVEhfTUFSS0VEKTogTGlrZXdpc2UuCgkoQ0xFQVJfQklORk9fVlRBQkxFX1BBVEhfTUFSS0VEKTogTGlrZXdpc2UuCgkoQklORk9fU1VCVlRUX0lOREVYKTogUmVtb3ZlIHBhcmVudGhlc2lzLgoJKEJJTkZPX1ZQVFJfSU5ERVgpOiBMaWtld2lzZS4KCShCSU5GT19QUklNQVJZX0JBU0VfT0YpOiBMaWtld2lzZSwKCShDTEFTU1RZUEVfVkZJRUxEUyk6IFdoaXRlc3BhY2UuCgkoVkZfREVSSVZFRF9WQUxVRSk6IFdyYXAgbG9uZyBsaW5lLgoJKE5BTUVTUEFDRV9MRVZFTCk6IFdoaXRlc3BhY2UuCgkoQ0FOX0hBVkVfRlVMTF9MQU5HX0RFQ0xfUCk6IFJlbW92ZSBwYXJlbnRoZXNpcy4KCShERUZBUkdfUE9JTlRFUik6IFdoaXRlc3BhY2UuCgkoREVDTF9ORUVERURfUCk6IFJlbW92ZSBwYXJlbnRoZXNpcy4KCShERUNMX0xBTkdVQUdFKTogV2hpdGVzcGFjZS4KCShTRVRfREVDTF9MQU5HVUFHRSk6IEFkZCBwYXJlbnRoZXNpcy4KCShERUNMX0NPTlNUUlVDVE9SX1ApOiBXaGl0ZXNwYWNlIGFuZCB3cmFwLgoJKERFQ0xfT1ZFUkxPQURFRF9PUEVSQVRPUl9QKTogUmVtb3ZlIHBhcmVudGhlc2lzLgoJKERFQ0xfSU5fQUdHUl9QKTogV2hpdGVzcGFjZS4KCShERUNMX0ZSSUVORF9QKTogTGlrZXdpc2UuCgkoREVDTF9CRUZSSUVORElOR19DTEFTU0VTKTogTGlrZXdpc2UuCgkoREVDTF9TVEFUSUNfRlVOQ1RJT05fUCk6IFdoaXRlc3BhY2UgYW5kIHdyYXAuCgkoREVDTF9OT05DT05WRVJUSU5HX1ApOiBXaGl0ZXNwYWNlLgoJKERFQ0xfUFVSRV9WSVJUVUFMX1ApOiBMaWtld2lzZS4KCShERUNMX05FRURTX0ZJTkFMX09WRVJSSURFUl9QKTogTGlrZXdpc2UuCgkoREVDTF9QRU5ESU5HX0lOTElORV9JTkZPKTogV2hpdGVzcGFjZS4KCShERUNMX1NPUlRFRF9GSUVMRFMpOiBMaWtld2lzZS4KCShERUNMX0RFRkVSUkVEX0ZOKTogTGlrZXdpc2UuCgkoREVDTF9URU1QTEFURV9JTkZPKTogTGlrZXdpc2UuCgkoQ0xBU1NUWVBFX1RFTVBMQVRFX0lORk8pOiBXaGl0ZXNwYWNlIGFuZCB3cmFwLgoJKFRFTVBMQVRFX1RFTVBMQVRFX1BBUk1fVEVNUExBVEVfSU5GTyk7IExpa2V3aXNlLgoJKFNFVF9UWVBFX1RFTVBMQVRFX0lORk8pOiBBZGQgcGFyZW50aGVzaXMuCgkoVE1QTF9BUkdTX0xFVkVMKTogTGlrZXdpc2UuCgkoU0VUX1RNUExfQVJHU19MRVZFTCk6IExpa2V3aXNlLgoJKElOTkVSTU9TVF9URU1QTEFURV9QQVJNUyk6IFdoaXRlc3BhY2UuCgkoQ19UWVBFREVGX0VYUExJQ0lUTFlfU0lHTkVEKTogVXBwZXJjYXNlIG1hY3JvIHBhcmFtZXRlci4KCShJTlRFR1JBTF9DT0RFX1AoQ09ERSk6IEFkZCBwYXJlbnRoZXNpcy4KCShDUF9JTlRFR1JBTF9UWVBFX1ApOiBSZW1vdmUgcGFyZW50aGVzaXMuCgkoVFlQRV9IQVNfQ09OU1RSVUNUT1IpOiBXaGl0ZXNwYWNlLgoJKFRSRUVfSEFTX0NPTlNUUlVDVE9SKTogTGlrZXdpc2UuCgkoVFlQRV9IQVNfREVTVFJVQ1RPUik6IExpa2V3aXNlLgoJKFRZUEVfSEFTX1JFQUxfQVNTSUdOX1JFRik6IExpa2V3aXNlLgoJKFRZUEVfSEFTX0NPTVBMRVhfQVNTSUdOX1JFRik6IExpa2V3aXNlLgoJKFRZUEVfSEFTX0FCU1RSQUNUX0FTU0lHTl9SRUYpOiBMaWtld2lzZS4KCShUWVBFX0hBU19DT01QTEVYX0lOSVRfUkVGKTogTGlrZXdpc2UuCgkoVFlQRV9IQVNfTk9OVFJJVklBTF9ERVNUUlVDVE9SKTogTGlrZXdpc2UuCgkoVFlQRV9QVFJNRU1GVU5DX1ApOiBMaWtld2lzZS4KCShUWVBFX1BUUk1FTUZVTkNfRkxBRyk6IExpa2V3aXNlLgoJKFRZUEVfR0VUX1BUUk1FTUZVTkNfVFlQRSk6IExpa2V3aXNlLgoJKFRZUEVfU0VUX1BUUk1FTUZVTkNfVFlQRSk6IExpa2V3aXNlLgoJKFRZUEVfUFRSTUVNX0NMQVNTX1RZUEUpOiBSZW1vdmUgcGFyZW50aGVzaXMuCgkoVFlQRV9QVFJNRU1fUE9JTlRFRF9UT19UWVBFKTogTGlrZXdpc2UuCgkoREVDTF9BQ0NFU1MpOiBXaGl0ZXNwYWNlLgoJKERFQ0xfR0xPQkFMX0NUT1JfUCk6IFJlbW92ZSBwYXJlbnRoZXNpcy4KCShERUNMX0dMT0JBTF9EVE9SX1ApOiBMaWtld2lzZS4KCShHTE9CQUxfSU5JVF9QUklPUklUWSk6IExpa2V3aXNlLgoJKERFQ0xfVEVNUExBVEVfUEFSTVMpOiBMaWtld2lzZS4KCShERUNMX1RFTVBMQVRFX1JFU1VMVCk6IExpa2V3aXNlLgoJKERFQ0xfVEVNUExBVEVfSU5TVEFOVElBVElPTlMpOiBMaWtld2lzZS4KCShERUNMX1RFTVBMQVRFX1NQRUNJQUxJWkFUSU9OUyk6IExpa2V3aXNlLgoJKERFQ0xfSU1QTElDSVRfVFlQRURFRl9QKTogUmVtb3ZlIHBhcmVudGhlc2lzLgoJKFNFVF9ERUNMX0lNUExJQ0lUX1RZUEVERUZfUCk6IExpa2V3aXNlLgoJKFBSSU1BUllfVEVNUExBVEVfUCk6IEFkZCBwYXJlbnRoZXNpcy4KCShERUNMX1VTRV9URU1QTEFURSk6IFdoaXRlc3BhY2UuCgkoQ0xBU1NUWVBFX0lNUExJQ0lUX0lOU1RBTlRJQVRJT04pOiBMaWtld2lzZS4KCShTRVRfQ0xBU1NUWVBFX0lNUExJQ0lUX0lOU1RBTlRJQVRJT04pOiBMaWtld2lzZS4KCShDTEFTU1RZUEVfRVhQTElDSVRfSU5TVEFOVElBVElPTik6IExpa2V3aXNlLgoJKFNFVF9DTEFTU1RZUEVfRVhQTElDSVRfSU5TVEFOVElBVElPTik6IExpa2V3aXNlLgoJKENBTExfREVDTEFSQVRPUl9QQVJNUyk6IFJlbW92ZSBwYXJlbnRoZXNpcy4KCShDQUxMX0RFQ0xBUkFUT1JfUVVBTFMpOiBMaWtld2lzZS4KCShDQUxMX0RFQ0xBUkFUT1JfRVhDRVBUSU9OX1NQRUMpOiBMaWtld2lzZS4KCShURU1QX05BTUVfUCk6IFdyYXAuCgkoVkZJRUxEX05BTUVfUCk6IExpa2V3aXNlLgoJKEJfU0VUKTogVXBwZXJjYXNlIG1hY3JvIHBhcmFtZXRlcnMgYW5kIGFkZCBwYXJlbnRoZXNpcy4KCShCX0NMUik6IExpa2V3aXNlLgoJKEJfVFNUKTogTGlrZXdpc2UuCgkoTE9PS1VQX05BTUVTUEFDRVNfT05MWSk6IFVwcGVyY2FzZSBtYWNybyBwYXJhbWV0ZXJzLgoJKExPT0tVUF9UWVBFU19PTkxZKTogVXBwZXJjYXNlIG1hY3JvIHBhcmFtZXRlcnMuCgkoTE9PS1VQX1FVQUxJRklFUlNfT05MWSk6IFVwcGVyY2FzZSBtYWNybyBwYXJhbWV0ZXJzLgoJKHNhbWVfb3JfYmFzZV90eXBlX3ApOiBMaWtld2lzZS4KCShjcF9kZXByZWNhdGVkKTogTGlrZXdpc2UuCgoyMDAyLTAxLTA1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogc2VtYW50aWNzLmMgKGV4cGFuZF9ib2R5KTogUmV2ZXJ0IGxhc3QgY2hhbmdlLgoKMjAwMi0wMS0wNCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzQxMjIKCSogY2xhc3MuYyAodXBkYXRlX3Z0YWJsZV9lbnRyeV9mb3JfZm4pOiBTZXQgZGVsdGEgdG8gemVybyBmb3IgYQoJbG9zdCBwcmltYXJ5LgoKCSogY2xhc3MuYyAoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IENoZWNrIGZvciBhIGxvc3QgcHJpbWFyeQoJYmVmb3JlIGNhbGN1bGF0aW5nIHRoZSB2dGFibGUgZW50cnkgdG8gdGhyb3cgYXdheS4KCjIwMDItMDEtMDIgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogc2VtYW50aWNzLmMgKGV4cGFuZF9ib2R5KTogQ2FsbCBvdXRsaW5pbmdfaW5saW5lX2Z1bmN0aW9uIHdoZW4KCWVtaXR0aW5nIGFuIGlubGluZSBmdW5jdGlvbiBvdXQgb2YgbGluZS4KCjIwMDItMDEtMDIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzUxMTYsIGMrKy83NjQgcmV2ZXJzaW9uCgkqIGNhbGwuYyAoYnVpbGRfbmV3X29wKTogUmV2ZXJ0IHRoZSBpbnN0YW50aWF0aW9ucy4gVGhleSBhcmUKCWluY29ycmVjdC4KCjIwMDItMDEtMDIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzUwODkKCSogZGVjbDIuYyAocmVwYXJzZV9hYnNkY2xfYXNfY2FzdHMpOiBEb24ndCB3YXJuIGFib3V0IGNhc3RzIHRvIHZvaWQuCgoyMDAyLTAxLTAyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8zNzE2CgkqIHB0LmMgKHRzdWJzdF9hZ2dyX3R5cGUpOiBNb3ZlIHBtZiBoYW5kbGluZyBpbnRvIHRzdWJzdC4KCSh0c3Vic3QsIGNhc2UgUE9JTlRFUl9UWVBFKTogSGFuZGxlIHBtZnMgaGVyZS4KCSh0c3Vic3QsIGNhc2UgT0ZGU0VUX1RZUEUpOiBDaGVjayBpdCBpcyBub3QgYW4gb2Zmc2V0IHRvCglyZWZlcmVuY2UuIElmIGl0IGlzIG9mZnNldCB0byBGVU5DVElPTl9UWVBFLCBjcmVhdGUgYSBNRVRIT0RfVFlQRS4KCjIwMDItMDEtMDIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzM1CgkqIGNwLXRyZWUuaCAoREVDTF9MQU5HX0ZMQUdfMCk6IFVzZWQgZm9yIFBBUk1fREVDTCB0b28uCgkoREVDTF9URU1QTEFURV9QQVJNX1ApOiBBIFBBUk1fREVDTCBtaWdodCBiZSBvbmUgdG9vLgoJKiBwdC5jIChwcm9jZXNzX3RlbXBsYXRlX3Bhcm0pOiBTRVRfREVDTF9URU1QTEFURV9QQVJNX1Agb24gdGhlCglQQVJNX0RFQ0wuCgkodHN1YnN0X3RlbXBsYXRlX3Bhcm1zKTogQnJlYWsgdXAgbG9vcCBzdGF0ZW1lbnRzLgoJKHRzdWJzdF9kZWNsLCBjYXNlIFBBUk1fREVDTCk6IENvcHkgREVDTF9URU1QTEFURV9QQVJNX1AuIFRlbXBsYXRlCglwYXJtIFBBUk1fREVDTHMgZG9uJ3QgZ2V0IHByb21vdGVkLgoKMjAwMi0wMS0wMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNTEyMwoJKiB0eXBlY2suYyAoYnVpbGRfY29tcG9uZW50X3JlZik6IENvcGUgd2l0aCBhIFRFTVBMQVRFX0lEX0VYUFIuCgkoYnVpbGRfeF9mdW5jdGlvbl9jYWxsKTogQ29wZSB3aXRoIGEgQ09NUE9ORU5UX1JFRiBjb250YWluaW5nIGEKCVRFTVBMQVRFX0lEX0VYUFIuCgoyMDAyLTAxLTAyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy81MjEzCgkqIHB0LmMgKGNvbnZlcnRfdGVtcGxhdGVfYXJndW1lbnQpOiBCZSBtb3JlIGNhcmVmdWwgZGV0ZXJtaW5pbmcKCXdoZW4gUkVDT1JEX1RZUEUgdGVtcGxhdGVzIGFyZSBvciBhcmUgbm90IHRlbXBsYXRlcy4KCjIwMDItMDEtMDIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzc3NQoJKiBjcC10cmVlLmggKGhhbmRsZV9jbGFzc19oZWFkKTogQWRqdXN0IHByb3RvdHlwZS4KCSogZGVjbDIuYyAoaGFuZGxlX2NsYXNzX2hlYWQpOiBBZGQgREVGTl9QIGFuZCBORVdfVFlQRV9QCglwYXJhbWV0ZXJzLiBVc2UgZm9yIGFsbCBjbGFzcyBoZWFkcy4KCSogcGFyc2UueSAobmFtZWRfY2xhc3NfaGVhZF9zYW5zX2Jhc2V0eXBlLCBuYW1lZF9jbGFzc19oZWFkLAoJbmFtZWRfY29tcGxleF9jbGFzc19oZWFkX3NhbnNfYmFzZXR5cGUsCgluYW1lZF9jbGFzc19oZWFkX3NhbnNfYmFzZXR5cGVfZGVmbiwKCXVubmFtZWRfY2xhc3NfaGVhZCk6IFJlbW92ZS4KCShjbGFzc19oZWFkLCBjbGFzc19oZWFkX2FwcGFyZW50X3RlbXBsYXRlKTogUmVjb2duaXplIGNsYXNzIGhlYWRzCgkoY2xhc3NfaGVhZF9kZWNsLCBjbGFzc19oZWFkX2RlZm4pOiBOZXcgcmVkdWN0aW9ucy4gUHJvY2VzcyBjbGFzcwoJaGVhZHMuCgkoc3RydWN0c3ApOiBBZGp1c3QgY2xhc3MgZGVmaW5pdGlvbiBhbmQgY2xhc3MgZGVjbGFyYXRpb24KCXJlZHVjdGlvbnMuCgkobWF5YmVfYmFzZV9jbGFzc19saXN0KTogR2l2ZSBkaWFnbm9zdGljIG9uIGVtcHR5IGxpc3QuCgoyMDAyLTAxLTAyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy80Mzc5CgkqIHR5cGVjay5jIChidWlsZF94X3VuYXJ5X29wKTogRG9uJ3QgZGVzdHJveSB0aGUgT0ZGU0VUX1JFRiBvbiBhCglzaW5nbGUgbm9uLXN0YXRpYyBtZW1iZXIuCgkodW5hcnlfY29tcGxleF9sdmFsdWUpOiBJZiBpdCBjYW5ub3QgYmUgYSBwb2ludGVyIHRvIG1lbWJlciwgZG9uJ3QKCW1ha2UgaXQgc28uIENoZWNrIGl0IGlzIG5vdCBwb2ludGVyIHRvIHJlZmVyZW5jZS4KCjIwMDItMDEtMDIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzUxMzIKCSogZGVjbDIuYyAocmVwYXJzZV9hYnNkY2xfYXNfY2FzdHMpOiBEb24ndCBkaWdlc3RfaW5pdCBpZiB3ZQoJYXJlIHByb2Nlc3NpbmcgYSB0ZW1wbGF0ZSBkZWNsLgoKMjAwMi0wMS0wMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNTExNiwgYysrLzc2NAoJKiBjYWxsLmMgKGJ1aWxkX25ld19vcCk6IE1ha2Ugc3VyZSB0ZW1wbGF0ZSBjbGFzcyBvcGVyYW5kcyBhcmUKCWluc3RhbnRpYXRlZC4gU2ltcGxpZnkgYXJnbGlzdCBjb25zdHJ1Y3Rpb24uCgoyMDAxLTEyLTI5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xKTogVXNlIG15X2ZyaWVuZGx5X2Fzc2VydAoJcmF0aGVyIHRoYW4gaWYgLi4uIGFib3J0LgoJKiBjdnQuYyAoY29udmVydF90b19yZWZlcmVuY2UpOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKHNldHVwX3Z0YmxfcHRyKTogTGlrZXdpc2UuCgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IENvbW1lbnQgdHlwby4KCjIwMDEtMTItMjkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzUxMjUKCSogcHQuYyAocHVzaF90ZW1wbGF0ZV9kZWNsX3JlYWwpOiBNYWtlIHN1cmUgREVDTCBoYXMKCURFQ0xfTEFOR19TUEVDSUZJQy4KCjIwMDEtMTItMjkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzMzNQoJKiBpbml0LmMgKHJlc29sdmVfb2Zmc2V0X3JlZik6IENvcHkgY3YgcXVhbGlmaWVycyBvZiB0aGlzIHBvaW50ZXIKCWZvciBub24tcmVmZXJlbmNlIGZpZWxkcy4KCSogdHlwZWNrLmMgKHJlcXVpcmVfY29tcGxldGVfdHlwZSk6IFVzZSByZXNvbHZlX29mZnNldF9yZWYpLgoKMjAwMS0xMi0yNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTk2CgkqIHBhcnNlLnkgKGJhZF9wYXJtKTogQmV0dGVyIGRpYWdub3N0aWMgd2hlbiBnaXZlbiBhIFNDT1BFX1JFRi4KCjIwMDEtMTItMjQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzE2MAoJKiB0eXBlY2suYyAoYnVpbGRfbW9kaWZ5X2V4cHIpOiBSZW1vdmUgb2xkIHVucmVhY2hhYmxlIGNvZGUgJiB0aWR5Cgl1cC4gRG9uJ3Qgc3RhYmlsaXplX3JlZmVyZW5jZXMgd2hlbiBpbml0aWFsaXppbmcgYSByZWZlcmVuY2UuCgoyMDAxLTEyLTIzICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBkZWNsMi5jIChsYW5nX2Zfb3B0aW9ucyk6IENvbnN0LWlmeS4KCjIwMDEtMTItMjAgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGNvbmZpZy1sYW5nLmluIChkaWZmX2V4Y2x1ZGVzKTogUmVtb3ZlLgoKMjAwMS0xMi0xOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvOTAKCSogdHlwZWNrLmMgKGJ1aWxkX2Z1bmN0aW9uX2NhbGxfcmVhbCk6IFVzZSBvcmlnaW5hbCBmdW5jdGlvbgoJZXhwcmVzc2lvbiBmb3IgZXJyb3JzLgoKMjAwMS0xMi0xOCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgYysrLzMyNDIKCSogY2xhc3MuYyAoYWRkX21ldGhvZCk6IERvIGNvbXBhcmUgJ3RoaXMnIHF1YWxzIHdoZW4gdHJ5aW5nIHRvIG1hdGNoIGEKCXVzZWQgZnVuY3Rpb24uICBEb24ndCBkZWZlciB0byBhbm90aGVyIHVzZWQgZnVuY3Rpb24uCgoyMDAxLTEyLTE4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAoaW5zdGFudGlhdGVfY2xvbmUpOiBSZW1vdmUsIGZvbGQgaW50byAuLi4KCShpbnN0YW50aWF0ZV90ZW1wbGF0ZSk6IC4uLiBoZXJlLiBTaW1wbGlmeSBieSByZW1vdmluZyBtdXR1YWwKCXJlY3Vyc2lvbi4KCSogdHlwZWNrMi5jIChidWlsZF9tX2NvbXBvbmVudF9yZWYpOiBEb24ndCBjdiBxdWFsaWZ5IHRoZSBmdW5jdGlvbgoJcG9pbnRlZCB0byBieSBhIHBvaW50ZXIgdG8gZnVuY3Rpb24uCgkqIGNsYXNzLmMgKGRlbGV0ZV9kdXBsaWNhdGVfZmllbGRzXzEpOiBUeXBvLgoKMjAwMS0xMi0xOCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJQysrIEFCSSBjaGFuZ2U6IGRlc3Ryb3kgdmFsdWUgYXJndW1lbnRzIGluIGNhbGxlci4KCSogc2VtYW50aWNzLmMgKGdlbnJ0bF9zdGFydF9mdW5jdGlvbiwgZ2VucnRsX2ZpbmlzaF9mdW5jdGlvbik6IERvbid0CgljcmVhdGUgYW4gZXh0cmEgYmluZGluZyBsZXZlbCBmb3IgdGhlIHBhcmFtZXRlcnMuCgkqIGRlY2wuYyAoc3RvcmVfcGFybV9kZWNscyk6IERvbid0IGRvIHBhcmFtZXRlciBjbGVhbnVwcy4KCjIwMDEtMTItMTggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGJ1aWxkX25ld19tZXRob2RfY2FsbCk6IFVzZSAnJSNWJy4KCSogZXJyb3IuYyAoY3ZfdG9fc3RyaW5nKTogVXNlIFYgcGFyYW1ldGVyIHRvIGRldGVybWluZSBwYWRkaW5nLgoKMjAwMS0xMi0xOCAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogY2FsbC5jLCBkZWNsMi5jLCBpbml0LmM6IFVzZSAiYnVpbHQtaW4iIGFuZCAiYml0LWZpZWxkIgoJc3BlbGxpbmdzIGluIG1lc3NhZ2VzLgoKMjAwMS0xMi0xNyAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaDogRGVsZXRlICNkZWZpbmVzIGZvciBjcF9lcnJvciwgY3Bfd2FybmluZywKCWNwX3BlZHdhcm4sIGFuZCBjcF9jb21waWxlcl9lcnJvci4KCSogY2FsbC5jLCBjbGFzcy5jLCBjcC10cmVlLmgsIGN2dC5jLCBkZWNsLmMsIGRlY2wyLmMsIGVycm9yLmMsCglleGNlcHQuYywgZnJpZW5kLmMsIGluaXQuYywgbGV4LmMsIG1ldGhvZC5jLCBwYXJzZS55LCBwdC5jLAoJcnR0aS5jLCBzZWFyY2guYywgc2VtYW50aWNzLmMsIHNwZXcuYywgdHJlZS5jLCB0eXBlY2suYywKCXR5cGVjazIuYzogQ2hhbmdlIGNhbGxzIHRvIHRoZSBhYm92ZSBtYWNyb3MgdG8gdXNlIHRoZWlyCglsYW5ndWFnZS1pbmRlcGVuZGVudCBlcXVpdmFsZW50czogZXJyb3IsIHdhcm5pbmcsIHBlZHdhcm4sIGFuZAoJaW50ZXJuYWxfZXJyb3IgcmVzcGVjdGl2ZWx5LgoKMjAwMS0xMi0xNiAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogZGVjbDIuYyAoZmluaXNoX2ZpbGUpOiBSZW1vdmUgYmFja19lbmRfaG9vay4KCjIwMDEtMTItMTYgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIENoYW5nZUxvZy4xLCBDaGFuZ2VMb2cuMiwgQ2hhbmdlTG9nLCBORVdTLCBjYWxsLmMsIGNsYXNzLmMsCgljcC10cmVlLmgsIGRlY2wuYywgZGVjbDIuYywgZXhjZXB0LmMsIG9wZXJhdG9ycy5kZWYsIG9wdGltaXplLmMsCglwdC5jLCBydHRpLmMsIHNlbWFudGljcy5jLCB0eXBlY2suYzogRml4IHNwZWxsaW5nIGVycm9ycy4KCjIwMDEtMTItMTUgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGxhbmctb3B0aW9ucy5oOiBVc2UgQW1lcmljYW4gc3BlbGxpbmcgaW4gbWVzc2FnZXMuCgoyMDAxLTEyLTEzICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAocGFyc2UuaCk6IFNlcGFyYXRlIHJ1bGUsIGp1c3QgZGVwZW5kIG9uIHBhcnNlLmMuCgoJVXNlIGNsZWFudXBzIHRvIHJ1biBiYXNlIGFuZCBtZW1iZXIgZGVzdHJ1Y3RvcnMuCgkqIGluaXQuYyAocHVzaF9iYXNlX2NsZWFudXBzKTogTmV3IGZ1bmN0aW9uLCBzcGxpdCBvdXQgZnJvbS4uLgoJKGJ1aWxkX2RlbGV0ZSk6IC4uLmhlcmUuICBMb3NlICFUWVBFX0hBU19ERVNUUlVDVE9SIGNvZGUuCgkqIGRlY2wuYyAoZmluaXNoX2Rlc3RydWN0b3JfYm9keSk6IE1vdmUgdmJhc2UgZGVzdHJ1Y3Rpb24gY29kZSB0bwoJcHVzaF9iYXNlX2NsZWFudXBzLgoJKGJlZ2luX2Z1bmN0aW9uX2JvZHksIGZpbmlzaF9mdW5jdGlvbl9ib2R5KTogTmV3IGZucy4KCShmaW5pc2hfZnVuY3Rpb24pOiBNb3ZlIFtjZF10b3IgaGFuZGxpbmcgYW5kIGNhbGxfcG9wbGV2ZWwgdG8KCWZpbmlzaF9mdW5jdGlvbl9ib2R5LgoJKHB1c2hkZWNsKTogU2tpcCB0aGUgbmV3IGxldmVsLgoJKiBzZW1hbnRpY3MuYyAoZ2VucnRsX3RyeV9ibG9jayk6IERvbid0IGNhbGwgZW5kX3Byb3RlY3RfcGFydGlhbHMuCgkoc2V0dXBfdnRibF9wdHIpOiBDYWxsIHB1c2hfYmFzZV9jbGVhbnVwcy4KCSogbWV0aG9kLmMgKHN5bnRoZXNpemVfbWV0aG9kKTogQ2FsbCB7YmVnaW4sZW5kfV9mdW5jdGlvbl9ib2R5LgoJKiBwdC5jICh0c3Vic3RfZXhwcik6IEhhbmRsZSBDT01QT1VORF9TVE1UX0JPRFlfQkxPQ0suCgkqIGNwLXRyZWUuaDogRGVjbGFyZSBuZXcgZm5zLgoJKiBwYXJzZS55IChmdW5jdGlvbl9ib2R5LCAuYmVnaW5fZnVuY3Rpb25fYm9keSk6IE5ldyBub250ZXJtaW5hbHMuCgkoZm5kZWYsIHBlbmRpbmdfaW5saW5lLCBmdW5jdGlvbl90cnlfYmxvY2spOiBVc2UgZnVuY3Rpb25fYm9keS4KCShjdG9yX2luaXRpYWxpemVyX29wdCwgZnVuY3Rpb25fdHJ5X2Jsb2NrKTogTm8gbG9uZ2VyIGhhcyBhIHZhbHVlLgoJKGJhc2VfaW5pdCk6IFJlbW92ZSAuc2V0X2Jhc2VfaW5pdCB0b2tlbi4KCSguc2V0X2Jhc2VfaW5pdCwgY29tcHN0bXRfb3JfZXJyb3IpOiBSZW1vdmUuCgkqIE1ha2UtbGFuZy5pbiAocGFyc2UuYyk6IEV4cGVjdCB0d28gZmV3ZXIgcy9yIGNvbmZsaWN0cy4KCgkqIG9wdGltaXplLmMgKG1heWJlX2Nsb25lX2JvZHkpOiBGaXggcGFyYW1ldGVyIHVwZGF0aW5nLgoKMjAwMS0xMi0xMiAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKHN0b3JlX3Bhcm1fZGVjbHMpOiBSZW1vdmUgcGFybXNfaGF2ZV9jbGVhbnVwcyBjcnVmdC4KCSogc2VtYW50aWNzLmMgKGdlbnJ0bF9zdGFydF9mdW5jdGlvbik6IERvbid0IHBhc3MKCXBhcm1zX2hhdmVfY2xlYW51cHMgb3IgcHVzaCBhbiBleHRyYSBiaW5kaW5nIGxldmVsLgoJKGdlbnJ0bF9maW5pc2hfZnVuY3Rpb24pOiBMb3NlIGNsZWFudXBfbGFiZWwgY3J1ZnQuCgoJKiBjcC10cmVlLmggKHN0cnVjdCBjcF9sYW5ndWFnZV9mdW5jdGlvbik6IFJlbW92ZSB4X2N0b3JfbGFiZWwuCgkoY3Rvcl9sYWJlbCk6IFJlbW92ZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9yZXR1cm5fc3RtdCk6IExvc2UgY3Rvcl9sYWJlbCBzdXBwb3J0LgoJKiBkZWNsLmMgKGZpbmlzaF9jb25zdHJ1Y3Rvcl9ib2R5LCBtYXJrX2xhbmdfZnVuY3Rpb24pOiBMaWtld2lzZS4KCSogdHlwZWNrLmMgKGNoZWNrX3JldHVybl9leHByKTogQ2hlY2sgREVDTF9ERVNUUlVDVE9SX1AsIG5vdAoJZHRvcl9sYWJlbC4KCgkqIGNhbGwuYyAoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogTGV0IHJlc29sdmVzX3RvX2ZpeGVkX3R5cGVfcAoJY2hlY2sgZm9yIFtjZF10b3JzLgoJKiBjbGFzcy5jIChmaXhlZF90eXBlX29yX251bGwsIGNhc2UgSU5ESVJFQ1RfUkVGKTogRml4LgoKCSogZGVjbC5jIChmaW5pc2hfZnVuY3Rpb24pOiBDaGVjayBWTVNfVEFSR0VULCBub3QgVk1TLgoKCSogZGVjbC5jIChzdGFydF9jbGVhbnVwX2ZuKTogUmVtb3ZlIHJlZHVuZGFudCBwdXNobGV2ZWwuCgkoZW5kX2NsZWFudXBfZm4pOiBBbmQgcG9wbGV2ZWwuCgoJKiBzZW1hbnRpY3MuYyAoc2V0dXBfdnRibF9wdHIpOiBBbHdheXMgYnVpbGQgYSBDVE9SX0lOSVRJQUxJWkVSCglpZiB3ZSdyZSBpbiBhIHRlbXBsYXRlLgoKMjAwMS0xMi0xMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjcC10cmVlLmggKERFU1RSVUNUT1JfREVDTF9QUkVGSVgsIERFU1RSVUNUT1JfTkFNRV9QLAoJQU5PTl9QQVJNTkFNRV9GT1JNQVQsIEFOT05fUEFSTU5BTUVfUCwgREVTVFJVQ1RPUl9OQU1FX0ZPUk1BVCwKCVRISVNfTkFNRV9QKTogRGVsZXRlLgoJKiBzcGV3LmMgKHJlYWRfcHJvY2Vzc19pZGVudGlmaWVyKTogUmVtb3ZlIERFU1RSVUNUT1JfTkFNRV9QLAoJVEhJU19OQU1FX1AgYW5kIEFOT05fUEFSTU5BTUVfUCB0ZXN0cyBmcm9tIHdhcm5pbmcgYWJvdXQgY2xhc2gKCXdpdGggaW50ZXJuYWwgbmFtaW5nIHNjaGVtZS4KCSogZXJyb3IuYyAoZHVtcF9kZWNsKTogUmVtb3ZlIERFU1RSVUNUT1JfTkFNRV9QIHVzZS4KCjIwMDEtMTItMTIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogRGVwcmVjYXRlZCBpbXBsaWNpdCB0eXBlbmFtZSB1c2UuCgoyMDAxLTEyLTExICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGcrKy81MQoJKiBwYXJzZS55IChmcm9iX3NwZWNzKTogSW5kaWNhdGUgaXQgaXMgYSBsYW5ndWFnZSBsaW5rYWdlIHdoaWNoCgljb250YWluZWQgdGhlIGV4dGVybi4KCSogZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IEFsbG93IGV4dGVybiBsYW5ndWFnZSBsaW5rYWdlIHdpdGgKCW90aGVyIHNwZWNpZmllcnMuCgoyMDAxLTEyLTEwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGcrKy83MgoJKiBkZWNsLmMgKGFkZF9iaW5kaW5nKTogRG9uJ3QgcmVqZWN0IGR1cGxpY2F0ZSB0eXBlZGVmcyBpbnZvbHZpbmcKCXRlbXBsYXRlIHBhcmFtZXRlcnMuCgoyMDAxLTEyLTEwICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBwYXJzZS55LCBzZW1hbnRpY3MuYzogU2ltaWxhcmx5LgoKMjAwMS0xMi0wOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBnKysvODcKCSogY3AtdHJlZS5oIChERUNMX0NPUFlfQ09OU1RSVUNUT1JfUCk6IFVzZSBjb3B5X2ZuX3AuCgkoY29weV9hcmdzX3ApOiBSZW5hbWUgdG8gLi4uCgkoY29weV9mbl9wKTogLi4uIGhlcmUuCgkoZ3Jva19zcGVjaWFsX21lbWJlcl9wcm9wZXJ0aWVzKTogTmV3IGZ1bmN0aW9uLgoJKGdyb2tfb3BfcHJvcGVydGllcyk6IExvc2UgVklSVFVBTFAgcGFyYW1ldGVyLgoJKGNvcHlfYXNzaWdubWVudF9hcmdfcCk6IFJlbW92ZS4KCSogY2FsbC5jIChidWlsZF9vdmVyX2NhbGwpOiBVc2UgY29weV9mbl9wLgoJKiBkZWNsLmMgKGdyb2tmbmRlY2wpOiBSZWZvcm1hdC4gQWRqdXN0IGNhbGwgdG8KCWdyb2tfb3BfcHJvcGVydGllcy4KCShjb3B5X2FyZ3NfcCk6IFJlbmFtZSB0byAuLi4KCShjb3B5X2ZuX3ApOiAuLi4gaGVyZS4gUmVqZWN0IHRlbXBsYXRlIGZ1bmN0aW9ucy4gQ2hlY2sgZm9yIHBhc3MKCWJ5IHZhbHVlLgoJKGdyb2tfc3BlY2lhbF9tZW1iZXJfcHJvcGVydGllcyk6IFJlbWVtYmVyIHNwZWNpYWwgZnVuY3Rpb25zLgoJKGdyb2tfY3Rvcl9wcm9wZXJ0aWVzKTogRG9uJ3QgcmVtZW1iZXIgdGhlbSBoZXJlLCBqdXN0IGNoZWNrLgoJKGdyb2tfb3BfcHJvcGVydGllcyk6IExpa2V3aXNlLgoJKHN0YXJ0X21ldGhvZCk6IENhbGwgZ3Jva19zcGVjaWFsX21lbWJlcl9wcm9wZXJ0aWVzLgoJKiBkZWNsMi5jIChncm9rZmllbGQpOiBMaWtld2lzZS4KCShjb3B5X2Fzc2lnbm1lbnRfYXJnX3ApOiBSZW1vdmUuCgkoZ3Jva19mdW5jdGlvbl9pbml0KTogRG9uJ3QgcmVtZW1iZXIgYWJzdHJhY3QgYXNzaWdubWVudCBoZXJlLgoJKiBwdC5jIChpbnN0YW50aWF0ZV9jbGFzc190ZW1wbGF0ZSk6IENhbGwKCWdyb2tfc3BlY2lhbF9tZW1iZXJfcHJvcGVydGllcy4KCSh0c3Vic3RfZGVjbCk6IEFkanVzdCBncm9rX29wX3Byb3BlcnRpZXMgY2FsbC4KCjIwMDEtMTItMDggIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIGxleC5jIChyaWRfdG9feXkpOiBBZGQgUklEX0NIT09TRV9FWFBSIGFuZAoJUklEX1RZUEVTX0NPTVBBVElCTEVfUC4KCjIwMDEtMTItMDggIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBzZW1hbnRpY3MuYyAoc2ltcGxpZnlfYWdncl9pbml0X2V4cHJzX3IpOiBBZGQgRElSRUNUX0JJTkQgZmxhZyBpbgoJY2FsbCB0byBidWlsZF9hZ2dyX2luaXQuCgkqIGNwLXRyZWUuaCAoRElSRUNUX0JJTkQpOiBEb2N1bWVudCBuZXcgdXNlIG9mIERJUkVDVF9CSU5ELgoKMjAwMS0xMi0wOCAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogcGFyc2UueTogUmVwbGFjZSB1c2VzIG9mIHRoZSBzdHJpbmcgbm9uLXRlcm1pbmFsIHdpdGggU1RSSU5HLgoJRG9uJ3QgcGVyZm9ybSBzdHJpbmcgY29uY2F0ZW50YWlvbiBoZXJlLgoJKHN0cmluZyk6IFJlbW92ZSBub24tdGVybWluYWwuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfYXNtX3N0bXQpOiBEb24ndCBjb25jYXRlbmF0ZSBzdHJpbmdzIGhlcmUuCgoyMDAxLTEyLTA1ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19UUkVFX0lOTElOSU5HX1NUQVJUX0lOTElOSU5HKTogRGVmaW5lLgoJKExBTkdfSE9PS1NfVFJFRV9JTkxJTklOR19FTkRfSU5MSU5JTkcpOiBEZWZpbmUuCgkqIHRyZWUuYyAoY3Bfc3RhcnRfaW5saW5pbmcsIGNwX2VuZF9pbmxpbmluZyk6IE5ldyBmbnMuCgkqIHB0LmMgKHB1c2hfdGluc3RfbGV2ZWwpOiBObyBsb25nZXIgc3RhdGljLgoJKiBjcC10cmVlLmg6IERlY2xhcmUgdGhlbS4KCgkqIGluaXQuYyAocmVzb2x2ZV9vZmZzZXRfcmVmKTogRG9uJ3QgY2hlY2sgYWNjZXNzIGZvciB0aGUgYmFzZQoJY29udmVyc2lvbiB0byBhY2Nlc3MgYSBGSUVMRF9ERUNMLgoKCSogY3AtdHJlZS5oIChUWVBFX1JFRkZOX1ApOiBOZXcgbWFjcm8uCgkqIGRlY2wuYyAoYmFkX3NwZWNpZmllcnMpOiBDaGVjayBpdCwgdG9vLgoKCSogcnR0aS5jIChjcmVhdGVfcHNldWRvX3R5cGVfaW5mbyk6IFNldCBDTEFTU1RZUEVfSU5URVJGQUNFX09OTFkKCW9uIHRoZSBfXypfdHlwZV9pbmZvIHR5cGUgaWYgd2UgaGF2ZW4ndCBzZWVuIGEgZGVmaW5pdGlvbi4KCjIwMDEtMTItMDUgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGRlY2wuYzogSW5jbHVkZSBjLWNvbW1vbi5oLgoJKHNoYWRvd193YXJuaW5nKTogTW92ZSB0byBjLWNvbW1vbi5jLgoKMjAwMS0xMi0wNSAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogRG9uJ3QgY29weSBERUNMX05PX0NIRUNLX01FTU9SWV9VU0FHRS4KCjIwMDEtMTItMDQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwdC5jIChlbmRfdGVtcGxhdGVfcGFybV9saXN0KTogQ2xlYXIgVFJFRV9DSEFJTiBvZiBlYWNoIHBhcm0uCgoyMDAxLTEyLTA0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGcrKy8xNjQKCSogaW5pdC5jIChzb3J0X2Jhc2VfaW5pdCk6IEFsbG93IGJpbmZvcyB0byBiZSBkaXJlY3RseSBzcGVjaWZpZWQuCgkqIG1ldGhvZC5jIChkb19idWlsZF9jb3B5X2NvbnN0cnVjdG9yKTogRXhwbGljaXRseSBjb252ZXJ0IHRvIHRoZQoJYmFzZSBpbnN0YW5jZS4KCShkb19idWlsZF9hc3NpZ25fcmVmKTogTGlrZXdpc2UuCgoyMDAxLTEyLTAzICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBkZWNsLmMgKHhyZWZfYmFzZXR5cGVzKTogRG9uJ3QgdXNlIEM5OSBjb25zdHJ1Y3QgaW4gdGFnX2NvZGUKCWRlY2xhcmF0aW9uIGFuZCBpbml0aWFsaXphdGlvbi4KCjIwMDEtMTItMDMgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIHR5cGVjazIuYzogUmVtb3ZlIGxlYWRpbmcgY2FwaXRhbCBmcm9tIGRpYWdub3N0aWMgbWVzc2FnZXMsIGFzCglwZXIgR05VIGNvZGluZyBzdGFuZGFyZHMuCgoyMDAxLTEyLTAzICBNdW1pdCBLaGFuICA8a2hhbkBuYW5vdGVjaC53aXNjLmVkdT4KCglQUiBjKysvMzM5NAoJKiBkZWNsLmMgKHhyZWZfYmFzZXR5cGVzKTogSGFuZGxlIGF0dHJpYnV0ZXMgYmV0d2VlbgoJJ2NsYXNzJyBhbmQgbmFtZS4KCjIwMDEtMTItMDMgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZysrLzMzODEKCSogcGFyc2UueSAobmFtZWRfY29tcGxleF9jbGFzc19oZWFkX3NhbnNfYmFzZXR5cGUpOiBBZGQgbmV3CglyZWR1Y3Rpb24uCgkqIE1ha2UtbGFuZy5pbiAocGFyc2UuYyk6IEFkanVzdCBleHBlY3RlZCBjb25mbGljdCBjb3VudC4KCjIwMDEtMTItMDMgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogY2xhc3MuYyAoZmluaXNoX3Z0YmxzKTogRmlsbCBpbiBCSU5GT19WUFRSX0ZJRUxEIGluIHRoZQoJaW1tZWRpYXRlIGJpbmZvcyBmb3Igb3VyIHZpcnR1YWwgYmFzZXMuCgoyMDAxLTEyLTAyICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBjYWxsLmMgKGJ1aWxkX2phdmFfaW50ZXJmYWNlX2ZuX3JlZik6IFNpbWlsYXJseS4KCSogZXhjZXB0LmMgKGlzX2FkbWlzc2libGVfdGhyb3dfb3BlcmFuZCk6IFNpbWlsYXJseS4KCSogaW5pdC5jIChidWlsZF9qYXZhX2NsYXNzX3JlZik6IFNpbWlsYXJseS4KCSogeHJlZi5jIChvcGVuX3hyZWZfZmlsZSk6IFNpbWlsYXJseS4KCjIwMDEtMTItMDEgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNsYXNzLmMgKGZpbmlzaF9zdHJ1Y3QpOiBSZW1vdmUgdHJhaWxpbmcgcGVyaW9kcyBmcm9tIG1lc3NhZ2VzLgoJKiBkZWNsLmMgKGNoZWNrX3RhZ19kZWNsKTogU2ltaWxhcmx5LgoJKiBsZXguYyAoY3h4X3NldF95eWRlYnVnKTogU2ltaWxhcmx5LgoJKiB0eXBlY2syLmMgKGZyaWVuZGx5X2Fib3J0KTogU2ltaWxhcmx5LgoKMjAwMS0xMS0yOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMzA0OAoJKiBjcC10cmVlLmggKG92bF9tZW1iZXIpOiBSZW1vdmUuCgkqIGRlY2wyLmMgKG1lcmdlX2Z1bmN0aW9ucyk6IEhhbmRsZSBleHRlcm4gIkMiIGZ1bmN0aW9ucwoJc3BlY2lhbGx5LgoJKiB0cmVlLmMgKG92bF9tZW1iZXIpOiBSZW1vdmUuCgoyMDAxLTExLTI5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy80ODQyCgkqIGNsYXNzLmMgKGdldF9iYXNlZm5kZWNscyk6IFRha2UgYW4gSURFTlRJRklFUl9OT0RFLCBub3QgYQoJRlVOQ1RJT05fREVDTCwgYXMgaW5wdXQuCgkobWFya19vdmVycmlkZXJzKTogUmVtb3ZlLgoJKHdhcm5faGlkZGVuKTogUmV3b3JrIGZvciB0aGUgbmV3IEFCSS4KCjIwMDEtMTEtMjkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzM0NzEKCSogY2FsbC5jIChjb252ZXJ0X2xpa2VfcmVhbCk6IERvIG5vdCBidWlsZCBhZGRpdGlvbmFsIHRlbXBvcmFyaWVzCglmb3IgcnZhbHVlcyBvZiBjbGFzcyB0eXBlLgoKMjAwMS0xMS0yOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoVU5JUVVFTFlfREVSSVZFRF9GUk9NX1ApOiBVc2UgbG9va3VwIGJhc2UuCgkoQUNDRVNTSUJMWV9VTklRVUVMWV9ERVJJVkVEX0ZST01fUCk6IExpa2V3aXNlLgoJKFBVQkxJQ0xZX1VOSVFVRUxZX0RFUklWRURfRlJPTV9QOiBMaWtld2lzZS4KCShERVJJVkVEX0ZST01fUCk6IExpa2V3aXNlLgoJKGVudW0gYmFzZV9hY2Nlc3MpOiBSZW51bWJlciwgYWRkIGJhX3F1aWV0IGJpdCBtYXNrLgoJKGdldF9iaW5mbyk6IFJlbW92ZS4KCShnZXRfYmFzZV9kaXN0YW5jZSk6IFJlbW92ZS4KCShiaW5mb192YWx1ZSk6IFJlbW92ZS4KCShBQ0NFU1NJQkxZX0RFUklWRURfRlJPTV9QKTogUmVtb3ZlLgoJKiBjYWxsLmMgKHN0YW5kYXJkX2NvbnZlcnNpb24pOiBVc2UgbG9va3VwX2Jhc2UuCgkqIGNsYXNzLmMgKHN0cmljdGx5X292ZXJyaWRlcyk6IExpa2V3aXNlLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogTGlrZXdpc2UuCgkod2Fybl9hYm91dF9hbWJpZ3VvdXNfZGlyZWN0X2Jhc2VzKTogTGlrZXdpc2UuCgkoaXNfYmFzZV9vZl9lbmNsb3NpbmdfY2xhc3MpOiBMaWtld2lzZS4KCShhZGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllc18xKTogTGlrZXdpc2UuCgkqIGN2dC5jIChidWlsZF91cF9yZWZlcmVuY2UpOiBBZGp1c3QgY29tbWVudC4KCSogaW5pdC5jIChidWlsZF9tZW1iZXJfY2FsbCk6IFJlZm9ybWF0LgoJKiBzZWFyY2guYyAoZ2V0X2JpbmZvKTogUmVtb3ZlLgoJKGdldF9iYXNlX2Rpc3RhbmNlX3JlY3Vyc2l2ZSk6IFJlbW92ZS4KCShnZXRfYmFzZV9kaXN0YW5jZSk6IFJlbW92ZS4KCShsb29rdXBfYmFzZV9yKTogVHdlYWsuCgkobG9va3VwX2Jhc2UpOiBBZGQgYmFfcXVpZXQgY29udHJvbC4gQ29tcGxldGUgdGhlIHR5cGVzIGhlcmUuCgkoY292YXJpYW50X3JldHVybl9wKTogVXNlIGxvb2t1cF9iYXNlLgoJKiB0cmVlLmMgKGJpbmZvX3ZhbHVlKTogUmVtb3ZlLgoJKG1heWJlX2R1bW15X29iamVjdCk6IFVzZSBsb29rdXBfYmFzZS4KCSogdHlwZWNrLmMgKGJ1aWxkX3N0YXRpY19jYXN0KTogVXNlIGxvb2t1cF9iYXNlLgoJKGdldF9kZWx0YV9kaWZmZXJlbmNlKTogTGlrZXdpc2UuCgkqIHR5cGVjazIuYyAoYmluZm9fb3JfZWxzZSk6IFVzZSBsb29rdXBfYmFzZS4KCShidWlsZF9zY29wZWRfcmVmKTogQWRkIGJhY2sgZXJyb3JfbWFya19jaGVjay4KCShidWlsZF9tX2NvbXBvbmVudF9yZWYpOiBVc2UgbG9va3VwX2Jhc2UuCgoyMDAxLTExLTI5ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBNYWtlLWxhbmcuaW4gKGMrKy5nZW5lcmF0ZWQtbWFucGFnZXMpOiBOZXcgZHVtbXkgdGFyZ2V0LgoKMjAwMS0xMS0yNyAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIE1ha2UtbGFuZy5pbiAoY3AtbGFuZy5vKTogRGVwZW5kcyBvbiBjLWNvbW1vbi5oLgoJKiBjcC1sYW5nLmMgKGMtY29tbW9uLmgpOiBJbmNsdWRlLgoJKExBTkdfSE9PS1NfRVhQQU5EX0NPTlNUQU5ULCBMQU5HX0hPT0tTX1NBRkVfRlJPTV9QKTogTmV3IGhvb2tzLgoJKiBkZWNsLmMgKGN4eF9pbml0X2RlY2xfcHJvY2Vzc2luZyk6IERvbid0IHNldCBsYW5nX3NhZmVfZnJvbV9wLgoJKiBleHByLmMgKGluaXRfY3BsdXNfZXhwYW5kKTogRG9uJ3Qgc2V0IGxhbmdfZXhwYW5kX2NvbnN0YW50LgoKMjAwMS0xMS0yNiAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogZGVjbDIuYyAoY19sYW5ndWFnZSk6IE1vdmUgdG8gYy1jb21tb24uYy4KCSogbGV4LmMgKGN4eF9wb3N0X29wdGlvbnMsIGN4eF9pbml0X29wdGlvbnMpOiBVc2UgYy1jb21tb24uYwoJZnVuY3Rpb25zLgoJKGN4eF9pbml0KTogVXBkYXRlLgoKMjAwMS0xMS0yNiAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBjYWxsLmMgKGpvdXN0KTogUmVtb3ZlIENPTkRfRVhQUiBoYWNrLgoKMjAwMS0xMS0yNSAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogc2VhcmNoLmMgKGxvb2t1cF9iYXNlX3IpOiBEZWNsYXJlIGJrIGluIHZhcmlhYmxlIGRlY2xhcmF0aW9uCglzcGFjZS4KCjIwMDEtMTEtMjUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZysrLzMxNDUKCSogY2xhc3MuYyAoYnVpbGRfdmJhc2VfcG9pbnRlcik6IFJlbW92ZS4KCShidWlsZF92YmFzZV9wYXRoKTogUmVtb3ZlLgoJKGJ1aWxkX2Jhc2VfcGF0aCk6IE5ldyBmdW5jdGlvbi4KCSogY3AtdHJlZS5oIChiYXNlX2FjY2VzcywgYmFzZV9raW5kKTogTmV3IGVudW1lcmF0aW9ucy4KCShidWlsZF9iYXNlX3BhdGgpOiBEZWNsYXJlLgoJKGNvbnZlcnRfcG9pbnRlcl90b19yZWFsKTogUmVtb3ZlLgoJKGNvbnZlcnRfcG9pbnRlcl90byk6IFJlbW92ZS4KCShsb29rdXBfYmFzZSk6IERlY2xhcmUuCgkoY29udmVydF9wb2ludGVyX3RvX3ZiYXNlKTogUmVtb3ZlLgoJKiBjYWxsLmMgKGJ1aWxkX3Njb3BlZF9tZXRob2RfY2FsbCk6IFVzZSBsb29rdXBfYmFzZSAmCglidWlsZF9iYXNlX3BhdGggaW5zdGVhZCBvZiBjb252ZXJ0X3BvaW50ZXJfdG9fcmVhbCwKCWdldF9iYXNlX2Rpc3RhbmNlICYgZ2V0X2JpbmZvLgoJKGJ1aWxkX292ZXJfY2FsbCk6IExpa2V3aXNlLgoJKiBjdnQuYyAoY3BfY29udmVydF90b19wb2ludGVyKTogTGlrZXdpc2UuCgkoY29udmVydF90b19wb2ludGVyX2ZvcmNlKTogTGlrZXdpc2UuCgkoYnVpbGRfdXBfcmVmZXJlbmNlKTogTGlrZXdpc2UuCgkoY29udmVydF9wb2ludGVyX3RvX3JlYWwpOiBSZW1vdmUuCgkoY29udmVydF9wb2ludGVyX3RvKTogUmVtb3ZlLgoJKiBpbml0LmMgKGRmc19pbml0aWFsaXplX3Z0YmxfcHRycyk6IFVzZSBidWlsZF9iYXNlX3BhdGgKCWluc3RlYWQgb2YgY29udmVydF9wb2ludGVyX3RvX3ZiYXNlICYgYnVpbGRfdmJhc2VfcGF0aC4KCShlbWl0X2Jhc2VfaW5pdCk6IFVzZSBidWlsZF9iYXNlX3BhdGggaW5zdGVhZCBvZgoJY29udmVydF9wb2ludGVyX3RvX3JlYWwuCgkoZXhwYW5kX3ZpcnR1YWxfaW5pdCk6IExvc2UgdW5yZXF1aXJlZCBjb252ZXJzaW9ucy4KCShyZXNvbHZlX29mZnNldF9yZWYpOiBVc2UgbG9va3VwX2Jhc2UgYW5kIGJ1aWxkX2Jhc2VfcGF0aAoJaW5zdGVhZCBvZiBjb252ZXJ0X3BvaW50ZXJfdG8uCgkqIHJ0dGkuYyAoYnVpbGRfZHluYW1pY19jYXN0XzEpOiBVc2UgbG9va3VwX2Jhc2UgJgoJYnVpbGRfYmFzZV9wYXRoIGluc3RlYWQgb2YgZ2V0X2Jhc2VfZGlzdGFuY2UgJiBidWlsZF92YmFzZV9wYXRoLgoJKiBzZWFyY2guYyAoZ2V0X3ZiYXNlXzEpOiBSZW1vdmUuCgkoZ2V0X3ZiYXNlKTogUmVtb3ZlLgoJKGNvbnZlcnRfcG9pbnRlcl90b192YmFzZSk6IFJlbW92ZS4KCShsb29rdXBfYmFzZV9yKTogTmV3IGZ1bmN0aW9uLgoJKGxvb2t1cF9iYXNlKTogTmV3IGZ1bmN0aW9uLgoJKiB0eXBlY2suYyAocmVxdWlyZV9jb21wbGV0ZV90eXBlKTogVXNlIGxvb2t1cF9iYXNlICYKCWJ1aWxkX2Jhc2VfcGF0aCBpbnN0ZWFkIG9mIGNvbnZlcnRfcG9pbnRlcl90by4KCShidWlsZF9jb21wb25lbnRfcmVmKTogTGlrZXdpc2UuCgkoYnVpbGRfeF9mdW5jdGlvbl9jYWxsKTogTGlrZXdpc2UuCgkoZ2V0X21lbWJlcl9mdW5jdGlvbl9mcm9tX3B0cmZ1bmMpOiBMaWtld2lzZS4KCShidWlsZF9jb21wb25lbnRfYWRkcik6IExpa2V3aXNlLgoJKiB0eXBlY2syLmMgKGJ1aWxkX3Njb3BlZF9yZWYpOiBMaWtld2lzZS4KCjIwMDEtMTEtMjIgIEJyeWNlIE1jS2lubGF5ICA8YnJ5Y2VAd2FpdGFraS5vdGFnby5hYy5uej4KCgkqIGNwLXRyZWUuaCAoQ1BfVFlQRV9RVUFMUyk6IFJlbW92ZWQuCgkqIGRlY2wuYyAoY3h4X2luaXRfZGVjbF9wcm9jZXNzaW5nKTogRG9uJ3Qgc2V0IGxhbmdfZHVtcF90cmVlLgoJKiBjcC1sYW5nLmM6IFNldCBMQU5HX0hPT0tTX1RSRUVfRFVNUF9EVU1QX1RSRUVfRk4gYW5kCglMQU5HX0hPT0tTX1RSRUVfRFVNUF9UWVBFX1FVQUxTX0ZOLgoJKiBkdW1wLmMgKGNwX2R1bXBfdHJlZSk6IFVzZSB2b2lkKiBkdW1wX2luZm8gYXJndW1lbnQgdG8gbWF0Y2gKCWxhbmctaG9va3MgcHJvdG90eXBlLgoJKiBjYWxsLmMsIGNwLXRyZWUuaCwgY3Z0LmMsIGRlY2wuYywgaW5pdC5jLCBtYW5nbGUuYywgbWV0aG9kLmMsIHB0LmMsCglydHRpLmMsIHNlbWFudGljcy5jLCB0cmVlLmMsIHR5cGVjay5jLCB0eXBlY2syLmM6IEFsbCByZWZlcmVuY2VzIHRvCglDUF9UWVBFX1FVQUxTIGNoYW5nZWQgdG8gY3BfdHlwZV9xdWFscy4KCSogTWFrZS1sYW5nLmluOiBSZWZlcmVuY2VzIHRvIGMtZHVtcC5oIGNoYW5nZWQgdG8gdHJlZS1kdW1wLmguCgkoQ1hYX0NfT0JKUyk6IFJlbW92ZSBjLWR1bXAuby4KCjIwMDEtMTEtMjEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzM2MzcKCSogcHQuYyAobG9va3VwX3RlbXBsYXRlX2NsYXNzKTogRW5zdXJlIHRoYXQgYWxsIHNwZWNpYWxpemF0aW9ucwoJYXJlIHJlZ2lzdGVyZWQgb24gdGhlIGxpc3QgY29ycmVzcG9uZGluZyB0byB0aGUgbW9zdCBnZW5lcmFsCgl0ZW1wbGF0ZS4KCjIwMDEtMTEtMjAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKG5vbl9yZWZlcmVuY2UpOiBBZGQgZG9jdW1lbnRhdGlvbi4KCShjb252ZXJ0X2NsYXNzX3RvX3JlZmVyZW5jZSk6IERvIG5vdCBzdHJpcCByZWZlcmVuY2UgdHlwZXMKCWZyb20gY29udmVyc2lvbiBvcGVyYXRvcnMuCgkobWF5YmVfaGFuZGxlX3JlZl9iaW5kKTogU2ltcGxpZnkuCgkoY29tcGFyZV9pY3MpOiBDb3JyZWN0IGhhbmRsaW5nIG9mIHJlZmVyZW5jZXMuCgoyMDAxLTExLTE5ICBKb2huIFdpbGtpbnNvbiA8am9obndAcmVzZWFyY2guYXR0LmNvbT4KCgkqIGR1bXAuYyAoZHVtcF9vcCk6IE5ldyBmdW5jdGlvbi4KCShjcF9kdW1wX3RyZWUpOiBEdW1wIENMQVNTVFlQRV9URU1QTEFURV9TUEVDSUFMSVpBVElPTi4gIFVzZQoJZHVtcF9vcC4gIER1bXAgREVDTF9NVVRBQkxFLCBhY2Nlc3MgYW5kIHN0YXRpY25lc3MgZm9yIFZBUl9ERUNMcy4KCURFQ0xfUFVSRV9WSVJUVUFMX1AsIERFQ0xfVklSVFVBTF9QLAoKMjAwMS0xMS0xOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUjQ2MjkKCSogc2VtYW50aWNzLmMgKGZpbmlzaF9zaXplb2YpOiBNYWtlIHN1cmUgdGhhdCBleHByZXNzaW9uIGNyZWF0ZWQKCXdoaWxlIHByb2Nlc3NpbmcgYSB0ZW1wbGF0ZSBkbyBub3QgaGF2ZSBhIHR5cGUuCgkoZmluaXNoX2FsaWdub2YpOiBMaWtld2lzZS4KCSogdHlwZWNrLmMgKGNfc2l6ZW9mKTogTGlrZXdpc2UuCgkoZXhwcl9zaXplb2YpOiBMaWtld2lzZS4KCjIwMDEtMTEtMTggIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGxleC5jIChjeHhfZmluaXNoKTogQ2FsbCBjX2NvbW1vbl9maW5pc2guCgkoZmluaXNoX3BhcnNlKTogUmVtb3ZlLgoKMjAwMS0xMS0xNyAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkZWNsLmMgKGNyZWF0ZV9hcnJheV90eXBlX2Zvcl9kZWNsKTogQ2hlY2sgaWYgTkFNRSBpcyBOVUxMX1RSRUUKCXdoZW4gZGlzcGxheWluZyBlcnJvciBtZXNzYWdlIGFib3V0IG1pc3NpbmcgYXJyYXkgYm91bmRzLgoKMjAwMS0xMS0xNyAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBtYW5nbGUuYyAod3JpdGVfZXhwcmVzc2lvbik6IEhhbmRsZSBDQVNUX0VYUFIsIFNUQVRJQ19DQVNUX0VYUFIsCglDT05TVF9DQVNUX0VYUFIuCgkqIG9wZXJhdG9ycy5kZWY6IEFkZCBDQVNUX0VYUFIsIFNUQVRJQ19DQVNUX0VYUFIsIENPTlNUX0NBU1RfRVhQUi4KCjIwMDEtMTEtMTYgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNwLXRyZWUuaCAocHJpbnRfY2xhc3Nfc3RhdGlzdGljcyk6IFJlc3RvcmUuCgoyMDAxLTExLTE1ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIG1ldGhvZC5jICh1c2VfdGh1bmspOiBEb24ndCBlbWl0IGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBmb3IgdGh1bmtzLgoKCSogcGFyc2UueTogQWRkIC4uLiBJREVOVElGSUVSIFNDT1BFIGFuZCAuLi4gUFRZUEVOQU1FIFNDT1BFIGV4cGFuc2lvbnMuCgkqIGRlY2wuYyAobWFrZV90eXBlbmFtZV90eXBlKTogSGFuZGxlIGdldHRpbmcgYSBjbGFzcyB0ZW1wbGF0ZS4KCSogc2VhcmNoLmMgKGxvb2t1cF9maWVsZF9yKTogQSBjbGFzcyB0ZW1wbGF0ZSBpcyBnb29kIGVub3VnaCBmb3IKCXdhbnRfdHlwZS4KCgkqIGNhbGwuYyAoY29udmVydF9saWtlX3JlYWwpOiBPbmx5IHVzZSBjcF9jb252ZXJ0IGZvciB0aGUgYmFkIHBhcnQuCgkoc3RhbmRhcmRfY29udmVyc2lvbik6IEFsc28gYWxsb3cgYmFkIGludC0+ZW51bS4KCSogdHlwZWNrLmMgKHB0cl9yZWFzb25hYmx5X3NpbWlsYXIpOiBBbHNvIGFsbG93IGZ1bmN0aW9ucyB0bwoJaW50ZXJjb252ZXJ0LiAgUG9pbnRlcnMgdG8gc2FtZS1zaXplIGludGVnZXJzIGFyZSByZWFzb25hYmx5CglzaW1pbGFyLgoKCSogY3Z0LmMgKGNvbnZlcnRfdG9fdm9pZCk6IElmIHdlIGJ1aWxkIGEgbmV3IENPTkRfRVhQUiwgYWx3YXlzCglnaXZlIGl0IHZvaWQgdHlwZS4KCjIwMDEtMTEtMTUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZysrLzMxNTQKCSogaW5pdC5jIChzb3J0X2Jhc2VfaW5pdCk6IFJlbW92ZSB1bnJlYWNoYWJsZSBjb2RlLgoJKGV4cGFuZF9tZW1iZXJfaW5pdCk6IEFkanVzdCBjb21tZW50IHRvIHJlZmxlY3QgcmVhbGl0eS4gU2ltcGxpZnkKCWFuZCByZW1vdmUgdW5yZWFjaGFibGUgY29kZS4KCjIwMDEtMTEtMTUgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNwLXRyZWUuaCAoaW5pdF9yZXN3b3JkcywgY3h4X2luaXRfZGVjbF9wcm9jZXNzaW5nKTogTmV3LgoJKGN4eF9pbml0KTogVXBkYXRlIHByb3RvdHlwZS4KCSogZGVjbC5jIChpbml0X2RlY2xfcHJvY2Vzc2luZyk6IFJlbmFtZS4gIE1vdmUgbnVsbCBub2RlIGluaXQKCXRvIGl0cyBjcmVhdGlvbiB0aW1lLgoJKiBsZXguYyAoY3h4X2luaXRfb3B0aW9ucyk6IFVwZGF0ZS4KCShjeHhfaW5pdCk6IENvbWJpbmUgd2l0aCBvbGQgaW5pdF9wYXJzZTsgYWxzbyBjYWxsCgljeHhfaW5pdF9kZWNsX3Byb2Nlc3NpbmcuCgoyMDAxLTExLTE0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKGNoZWNrX2luaXRpYWxpemVyKTogVHJ5IHRvIGNvbXBsZXRlIHRoZSB0eXBlIG9mIGFuCglhcnJheSBlbGVtZW50IGJlZm9yZSBjaGVja2luZyB3aGV0aGVyIGl0J3MgY29tcGxldGUuICBEb24ndAoJY29tcGxhaW4gYWJvdXQgYXJyYXlzIHdpdGggY29tcGxldGUgZWxlbWVudCB0eXBlcyBidXQgYW4KCXVua25vd24gc2l6ZS4KCShjcF9maW5pc2hfZGVjbCk6IEJ1aWxkIHRoZSBoaWVyYXJjaGljYWwgY29uc3RydWN0b3IgYmVmb3JlCgljYWxsaW5nIG1heWJlX2RlZHVjZV9zaXplX2Zyb21fYXJyYXlfaW5pdC4KCjIwMDEtMTEtMTQgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIE1ha2UtbGFuZy5pbjogQ2hhbmdlIGFsbCB1c2VzIG9mICQobWFuZXh0KSB0byAkKG1hbjFleHQpLgoKMjAwMS0xMS0xMyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBnKysvNDIwNgoJKiBwYXJzZS55IChhbHJlYWR5X3Njb3BlZF9zdG10KTogUmVtb3ZlLgoJKHNpbXBsZV9zdG10LCBXSElMRSAmIEZPUik6IFVzZSBpbXBsaWNpdGx5X3Njb3BlZF9zdG10LgoKMjAwMS0xMS0xMiAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjdnQuYyAob2NwX2NvbnZlcnQpOiBEb24ndCB3YXJuIHRoZSBhZGRyZXNzIG9mIGEgd2VhawoJZnVuY3Rpb24gaXMgYWx3YXlzIGB0cnVlJy4KCjIwMDEtMTEtMDkgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19QUklOVF9ERUNMLCBMQU5HX0hPT0tTX1BSSU5UX1RZUEUsCglMQU5HX0hPT0tTX1BSSU5UX1NUQVRJU1RJQ1MsIExBTkdfSE9PS1NfUFJJTlRfWE5PREUsCglMQU5HX0hPT0tTX1BSSU5UX0lERU5USUZJRVIsIExBTkdfSE9PS1NfU0VUX1lZREVCVUcpOiBPdmVycmlkZS4KCSogY3AtdHJlZS5oIChwcmludF9jbGFzc19zdGF0aXN0aWNzKTogUmVtb3ZlLgoJKGN4eF9wcmludF9zdGF0aXN0aWNzLCBjeHhfcHJpbnRfeG5vZGUsIGN4eF9wcmludF9kZWNsLCBjeHhfcHJpbnRfdHlwZSwKCWN4eF9wcmludF9pZGVudGlmaWVyLCBjeHhfc2V0X3l5ZGVidWcpOiBOZXcuCgkqIGxleC5jIChzZXRfeXlkZWJ1Zyk6IFJlbmFtZSBjX3NldF95eWRlYnVnLgoJKiBwdHJlZS5jIChwcmludF9sYW5nX2RlY2wsIHByaW50X2xhbmdfdHlwZSwgcHJpbnRfbGFuZ19pZGVudGlmaWVyLAoJbGFuZ19wcmludF94bm9kZSk6IFJlbmFtZS4KCSogdHJlZS5jIChwcmludF9sYW5nX3N0YXRpc3RpY3MpOiBSZW5hbWUuCgoyMDAxLTExLTA5ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBjbGFzcy5jIChkdW1wX2FycmF5KTogRml4IGZvcm1hdCBzcGVjaWZpZXIgd2FybmluZy4KCjIwMDEtMTEtMDkgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNwLWxhbmcuYyAoTEFOR19IT09LU19OQU1FKTogT3ZlcnJpZGUuCgkoc3RydWN0IGxhbmdfaG9va3MpOiBDb25zdGlmeS4KCSogbGV4LmMgKGN4eF9pbml0X29wdGlvbnMpOiBVcGRhdGUuCgkobGFuZ19pZGVudGlmeSk6IFJlbW92ZS4KCSogcGFyc2UueSAobGFuZ3VhZ2Vfc3RyaW5nKTogUmVtb3ZlLgoKMjAwMS0xMS0wOCAgQW5kcmVhcyBGcmFuY2sgIDxhZnJhbmNrQGdteC5kZT4KCgkqIE1ha2UtbGFuZy5pbiAoQ1hYX0lOU1RBTExfTkFNRSwgR1hYX0NST1NTX05BTUUsCglERU1BTkdMRVJfQ1JPU1NfTkFNRSk6IEhhbmRsZSBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIHRoZSB3YXkKCXN1Z2dlc3RlZCBieSBhdXRvY29uZi4KCShHWFhfVEFSR0VUX0lOU1RBTExfTkFNRSwgQ1hYX1RBUkdFVF9JTlNUQUxMX05BTUUpOiBEZWZpbmUuCgkoYysrLmluc3RhbGwtY29tbW9uKTogVXNlIHRoZSB0cmFuc2Zvcm1lZCB0YXJnZXQgYWxpYXMgbmFtZXMuCgoyMDAxLTExLTA2ICBOZWlsIEJvb3RoICA8bmVpbEBjYXQuZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogTWFrZS1sYW5nLmluOiBVcGRhdGUuCgkqIGNwLWxhbmcuYzogSW5jbHVkZSBsYW5naG9va3MtZGVmLmguCgoyMDAxLTExLTA0ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHB0LmMgKHRzdWJzdF9jb3B5KTogQ2FsbCB0c3Vic3QgZm9yIFRZUEVPRl9FWFBSLgoKMjAwMS0xMS0wMyAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogbGV4LmMgKGNvcHlfbGFuZ190eXBlKTogQWRkIHN0YXRpYyBwcm90b3R5cGUuCgoyMDAxLTExLTAyICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHB0LmMgKHVuaWZ5KTogSGFuZGxlIFNDT1BFX1JFRi4KCjIwMDEtMTEtMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogdHJlZS5jIChjcF9jb3B5X3Jlc19kZWNsX2Zvcl9pbmxpbmluZyk6IEFkanVzdAoJREVDTF9BQlNUUkFDVF9PUklHSU4gZm9yIHRoZSByZXR1cm4gdmFyaWFibGUuCgoyMDAxLTEwLTMxICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogIE1ha2UtbGFuZy5pbjogUmVwbGFjZSAkKElOVExfVEFSR0VUUykgd2l0aCBwby1nZW5lcmF0ZWQuCgoyMDAxLTEwLTI4ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBDaGFuZ2VMb2cuMSwgQ2hhbmdlTG9nLjIsIENoYW5nZUxvZywgY2xhc3MuYywgZGVjbDIuYywgc2VhcmNoLmMsCglzZW1hbnRpY3MuYywgc3Bldy5jOiBGaXggc3BlbGxpbmcgZXJyb3JzLgoKMjAwMS0xMC0yNyAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkZWNsMi5jICh2YWxpZGF0ZV9ub25tZW1iZXJfdXNpbmdfZGVjbCk6IEhhbmRsZSBOQU1FU1BBQ0VfREVDTC4KCjIwMDEtMTAtMjUgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC1sYW5nLmM6IFJlZGVmaW5lIExBTkdfSE9PS1NfQ0xFQVJfQklORElOR19TVEFDSyB0bwoJcG9wX2V2ZXJ5dGhpbmcuCgoyMDAxLTEwLTIzICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogY3AtbGFuZy5jIChjeHhfZ2V0X2FsaWFzX3NldCk6IE5ldyBmdW5jdGlvbi4KCVBvaW50IExBTkdfSE9PS1NfR0VUX0FMSUFTX1NFVCB0byBpdC4KCjIwMDEtMTAtMjMgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY3AtdHJlZS5kZWYgKFVOQk9VTkRfQ0xBU1NfVEVNUExBVEUpOiBOZXcgdHJlZSBub2RlLgoJKiBjcC10cmVlLmggKG1ha2VfdW5ib3VuZF9jbGFzc190ZW1wbGF0ZSk6IFByb3RvdHlwZSBuZXcgZnVuY3Rpb24uCgkqIGRlY2wuYyAobWFrZV91bmJvdW5kX2NsYXNzX3RlbXBsYXRlKTogTmV3IGZ1bmN0aW9uLgoJKiBkZWNsMi5jIChhcmdfYXNzb2NfdGVtcGxhdGVfYXJnKTogSGFuZGxlIFVOQk9VTkRfQ0xBU1NfVEVNUExBVEUuCgkqIGVycm9yLmMgKGR1bXBfdHlwZSk6IExpa2V3aXNlLgoJKiBtYW5nbGUuYyAod3JpdGVfdHlwZSk6IExpa2V3aXNlLgoJKiBwYXJzZS55ICh0ZW1wbGF0ZV9wYXJtKTogTGlrZXdpc2UuCgkodGVtcGxhdGVfYXJndW1lbnQpOiBVc2UgbWFrZV91bmJvdW5kX2NsYXNzX3RlbXBsYXRlLgoJKiBwdC5jIChjb252ZXJ0X3RlbXBsYXRlX2FyZ3VtZW50KTogSGFuZGxlIFVOQk9VTkRfQ0xBU1NfVEVNUExBVEUuCgkodHN1YnN0KTogTGlrZXdpc2UuCgkodHN1YnN0X2NvcHkpOiBMaWtld2lzZS4KCSh1bmlmeSk6IExpa2V3aXNlLgoJKiB0cmVlLmMgKHdhbGtfdHJlZSk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoY29tcHR5cGVzKTogTGlrZXdpc2UuCgoyMDAxLTEwLTIxICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiB4cmVmLmMgKEdOVV94cmVmX21lbWJlcik6IFVzZSBzYWZlLWN0eXBlIG1hY3JvcyBhbmQvb3IgZm9sZAoJZXh0cmEgY2FsbHMgaW50byBmZXdlciBvbmVzLgoKMjAwMS0xMC0xOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IFByb3BhZ2F0ZSBERUNMX1VOSU5MSU5BQkxFLgoJV2FybiB3aGVuIG1lcmdpbmcgaW5saW5lIHdpdGggYXR0cmlidXRlIG5vaW5saW5lLgoJKHN0YXJ0X2RlY2wsIHN0YXJ0X2Z1bmN0aW9uKTogV2FybiBpZiBpbmxpbmUgYW5kIGF0dHJpYnV0ZQoJbm9pbmxpbmUgYXBwZWFyIGluIHRoZSBzYW1lIGRlY2xhcmF0aW9uLgoKMjAwMS0xMC0xNiAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjcC10cmVlLmggKEJPVU5EX1RFTVBMQVRFX1RFTVBMQVRFX1BBUk1fVFlQRV9DSEVDSyk6IERlZmluZWQKCWZvciB0cmVlIGNoZWNraW5nIGRpc2FibGVkLgoKMjAwMS0xMC0xNiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBjcC10cmVlLmggKFZGSUVMRF9OQU1FX0ZPUk1BVCkgW05PX0RPTExBUl9JTl9MQUJFTCAmJgoJTk9fRE9UX0lOX0xBQkVMXTogQWRqdXN0IHRvIG1hdGNoIFZGSUVMRF9OQU1FLgoKMjAwMS0xMC0xNSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogcHQuYyAoVU5JRllfQUxMT1dfTUFYX0NPUlJFQ1RJT04pOiBEZWZpbmUuCgkodW5pZnkpOiBPbmx5IGhhbmRsZSBNSU5VU19FWFBSIHNwZWNpYWxseSBpZiB0aGUgYWJvdmUgZmxhZyBpcyBzZXQKCWFuZCB0aGUgc3VidHJhY3RlZCBjb25zdGFudCBpcyAxLiAgQ2xlYXIgdGhlIGZsYWcgb24gcmVjdXJzaXZlIGNhbGxzLgoJU2V0IGl0IHdoZW4gdW5pZnlpbmcgdGhlIG1heGltdW0gdmFsdWUgaW4gYW4gSU5URUdFUl9UWVBFJ3MgcmFuZ2UuCgoyMDAxLTEwLTE1ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKGJhZF9zcGVjaWZpZXJzKTogRG9uJ3QgYWxsb3cgZXhjZXB0aW9uIHNwZWNpZmljYXRpb25zCglvbiBhbnkgdHlwZWRlZnMuCgoyMDAxLTEwLTE0ICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBjcC9sZXguYyAoaW5pdF9jcF9wcmFnbWEpOiBTaW1pbGFybHkuCgoyMDAxLTEwLTEzICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IEJ1aWxkIGNvbXBsZXRlIHRlbXBsYXRlIGFyZ3VtZW50cwoJZm9yIEJPVU5EX1RFTVBMQVRFX1RFTVBMQVRFX1BBUk0uCgoyMDAxLTEwLTEyICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNwLXRyZWUuaCAoVFlQRV9CSU5GTyk6IFVwZGF0ZSBjb21tZW50LgoJKEJPVU5EX1RFTVBMQVRFX1RFTVBMQVRFX1BBUk1fVFlQRV9DSEVDSyk6IE5ldyBtYWNyby4KCShURU1QTEFURV9URU1QTEFURV9QQVJNX1RFTVBMQVRFX0lORk8pOiBVc2UgdGVtcGxhdGVfaW5mby4KCShUWVBFTkFNRV9UWVBFX0ZVTExOQU1FKTogVXNlIFRZUEVfRklFTERTLgoJKGNvcHlfdHlwZSk6IFByb3RvdHlwZSBuZXcgZnVuY3Rpb24uCgkqIGxleC5jIChjb3B5X2xhbmdfZGVjbCk6IEdhdGhlciB0cmVlIG5vZGUgc3RhdGlzdGljcy4KCShjb3B5X2xhbmdfdHlwZSk6IE5ldyBmdW5jdGlvbi4KCShjb3B5X3R5cGUpOiBMaWtld2lzZS4KCShjcF9tYWtlX2xhbmdfdHlwZSk6IENyZWF0ZSBsYW5nX3R5cGUgZm9yCglCT1VORF9URU1QTEFURV9URU1QTEFURV9QQVJNLiAgU2V0IFRZUEVfQklORk8gZm9yIFRZUEVOQU1FX1RZUEUKCWFuZCBCT1VORF9URU1QTEFURV9URU1QTEFURV9QQVJNLgoJKiBwdC5jICh0c3Vic3QpOiBVc2UgY29weV90eXBlIGluc3RlYWQgb2YgY29weV9ub2RlLgoJKiBzZWFyY2guYyAobG9va3VwX2ZpZWxkXzEpOiBJZ25vcmUgVFlQRU5BTUVfVFlQRS4KCjIwMDEtMTAtMTIgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcHQuYyAoZGV0ZXJtaW5lX3NwZWNpYWxpemF0aW9uKTogSWdub3JlIGZ1bmN0aW9ucyB3aXRob3V0CglERUNMX1RFTVBMQVRFX0lORk8uCgoyMDAxLTEwLTEyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGcrKy80NDc2CgkqIHR5cGVjazIuYyAoYWJzdHJhY3RfdmlydHVhbHNfZXJyb3IpOiBJZ25vcmUgaW5jb21wbGV0ZSBjbGFzc2VzLgoKMjAwMS0xMC0xMSAgSmFzb24gTWVycmlsbCAgPGphc29uX21lcnJpbGxAcmVkaGF0LmNvbT4KCgkqIHR5cGVjazIuYyAoc3RvcmVfaW5pdF92YWx1ZSk6IERvbid0IHJlLWRpZ2VzdCBhIGJyYWNrZXRlZAoJaW5pdGlhbGl6ZXIuCgoJKiBjbGFzcy5jIChmaW5pc2hfc3RydWN0X2Fub24pOiBVc2UgVFlQRV9BTk9OWU1PVVNfUCBpbnN0ZWFkIG9mCglBTk9OX0FHR1JfVFlQRV9QLgoKMjAwMS0xMC0xMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YWJsZV9lbnRyeV9yZWYpOiBDcmVhdGUgYSBWVEFCTEVfUkVGIGluc3RlYWQKCW9mIGFuIGFzbSBzdGF0ZW1lbnQuCgkoYnVpbGRfdnRibF9yZWZfMSk6IFNwbGl0IG91dCBmcm9tIGJ1aWxkX3Z0YmxfcmVmLgoJKGJ1aWxkX3Zmbl9yZWYpOiBVc2UgaXQgdG8gaGFuZGxlIHZ0YWJsZSBkZXNjcmlwdG9ycyBiZWZvcmUKCWNhbGxpbmcgYnVpbGRfdnRhYmxlX2VudHJ5X3JlZi4KCSogZGVjbDIuYyAob3V0cHV0X3Z0YWJsZV9pbmhlcml0KTogVXNlIGFzc2VtYmxlX3Z0YWJsZV9pbmhlcml0LgoKMjAwMS0xMC0xMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHBhcnNlLnkgKGFzbV9vcGVyYW5kKTogQWxsb3cgbmFtZWQgb3BlcmFuZHMuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfYXNtX3N0bXQpOiBUd2VlayBmb3IgY2hhbmdlZCBsb2NhdGlvbgoJb2YgdGhlIG9wZXJhbmQgY29uc3RyYWludC4KCjIwMDEtMTAtMDkgIEphc29uIE1lcnJpbGwgIDxqYXNvbl9tZXJyaWxsQHJlZGhhdC5jb20+CgoJKiBjYWxsLmMgKHN0YW5kYXJkX2NvbnZlcnNpb24pOiBBZGQgYmFkIGNvbnZlcnNpb24gYmV0d2VlbgoJaW50ZWdlcnMgYW5kIHBvaW50ZXJzLgoJKGNvbnZlcnRfbGlrZV9yZWFsKTogRG9uJ3QgdXNlIGNvbnZlcnRfZm9yX2luaXRpYWxpemF0aW9uIGZvciBiYWQKCWNvbnZlcnNpb25zOyBjb21wbGFpbiBoZXJlIGFuZCB1c2UgY3BfY29udmVydC4KCShidWlsZF9vdmVyX2NhbGwpOiBEb24ndCBoYW5kbGUgYmFkIGNvbnZlcnNpb25zIHNwZWNpYWxseS4KCShwZXJmb3JtX2ltcGxpY2l0X2NvbnZlcnNpb24pOiBBbGxvdyBiYWQgY29udmVyc2lvbnMuCgkoY2FuX2NvbnZlcnRfYXJnX2JhZCk6IE5ldyBmbi4KCSogY3AtdHJlZS5oOiBEZWNsYXJlIGl0LgoJKiB0eXBlY2suYyAoY29udmVydF9mb3JfYXNzaWdubWVudCk6IFVzZSBpdC4KCShwdHJfcmVhc29uYWJseV9zaW1pbGFyKTogQW55IHRhcmdldCB0eXBlIGlzIHNpbWlsYXIgdG8gdm9pZC4KCjIwMDEtMTAtMDggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogTWFrZS1sYW5nLmluIChDWFhfT0JKUyk6IEFkZGVkIGNwLWxhbmcuby4KCShjcC9jcC1sYW5nLm8pOiBOZXcgcnVsZS4KCSogY3AtdHJlZS5oOiBEZWNsYXJlIGhvb2tzLgoJKiB0cmVlLmM6IE1ha2UgaG9va3Mgbm9uLXN0YXRpYy4KCShpbml0X3RyZWUpOiBEb24ndCBpbml0aWFsaXplIGhvb2tzIGhlcmUuCgkqIGxleC5jOiBMaWtld2lzZS4gIE1vdmUgZGVmaW5pdGlvbiBvZiBsYW5nX2hvb2tzIHRvLi4uCgkqIGNwLWxhbmcuYzogLi4uIG5ldyBmaWxlLgoKMjAwMS0xMC0wOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNwLXRyZWUuaCAoc3RydWN0IGxhbmdfZGVjbF9mbGFncyk6IFJlbW92ZSBkZWNsYXJlZF9pbmxpbmUuCgkoREVDTF9ERUNMQVJFRF9JTkxJTkVfUCk6IFVzZSB0aGUgYml0IGluIHN0cnVjdCBjX2xhbmdfZGVjbC4KCjIwMDEtMTAtMDcgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YWJsZV9lbnRyeV9yZWYpOiBDb25zdC1pZnkuCgkqIGRlY2wuYyAocHJlZGVmaW5lZF9pZGVudGlmaWVyLAoJaW5pdGlhbGl6ZV9wcmVkZWZpbmVkX2lkZW50aWZpZXJzKTogTGlrZXdpc2UuCgkqIGluaXQuYyAoYnVpbGRfbmV3XzEpOiBMaWtld2lzZS4KCSogbGV4LmMgKGNwbHVzX3RyZWVfY29kZV90eXBlLCBjcGx1c190cmVlX2NvZGVfbGVuZ3RoLCByZXN3b3JkKToKCUxpa2V3aXNlLgoKMjAwMS0xMC0wNSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBvcHRpbWl6ZS5jIChzdHJ1Y3QgaW5saW5lX2RhdGEpOiBNb3ZlZCB0byAuLi90cmVlLWlubGluZS5jLgoJKElOU05TX1BFUl9TVE1UKTogTGlrZXdpc2UuCgkocmVtYXBfZGVjbCwgcmVtYXBfYmxvY2ssIGNvcHlfc2NvcHlfc3RtdCwgY29weV9ib2R5X3IpOiBMaWtld2lzZS4KCShjb3B5X2JvZHksIGluaXRpYWxpemVfaW5saW5lZF9wYXJhbWV0ZXJzKTogTGlrZXdpc2UuCgkoZGVjbGFyZV9yZXR1cm5fdmFyaWFibGUsIGlubGluYWJsZV9mdW5jdGlvbl9wKTogTGlrZXdpc2UuCgkoZXhwYW5kX2NhbGxfaW5saW5lLCBleHBhbmRfY2FsbHNfaW5saW5lKTogTGlrZXdpc2UuCgkob3B0aW1pemVfaW5saW5lX2NhbGxzLCBjbG9uZV9ib2R5KTogTGlrZXdpc2UuCgkqIHRyZWUuYyAod2Fsa190cmVlKTogTW92ZWQgdG8gLi4vdHJlZS1pbmxpbmUuYy4KCSh3YWxrX3RyZWVfd2l0aG91dF9kdXBsaWNhdGVzKTogTGlrZXdpc2UuCgkoY29weV90cmVlX3IsIHJlbWFwX3NhdmVfZXhwcik6IExpa2V3aXNlLgoKMjAwMS0xMC0wNCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKGNwL2RlY2wubywgY3AvdHJlZS5vKTogRGVwZW5kIG9uIHRyZWUtaW5saW5lLmguCgkoY3AvcHQubywgY3Avc2VtYW50aWNzLm8sIGNwL29wdGltaXplLm8pOiBMaWtld2lzZS4KCSogY3AtdHJlZS5oIChsYW5nX2RlY2wpOiBNb3ZlZCBpbmxpbmVkX2ZucyB0byB0cmVlX2RlY2wuCgkoVFJFRV9SRUFET05MWV9ERUNMX1AsIERFQ0xfSU5MSU5FRF9GTlMpOiBNb3ZlZCB0byAuLi90cmVlLmguCgkoZmxhZ19pbmxpbmVfdHJlZXMpOiBNb3ZlZCBkZWNsYXJhdGlvbiB0byAuLi90cmVlLWlubGluZS5oLgoJKHdhbGtfdHJlZSk6IE1vdmVkIGRlY2xhcmF0aW9uIHRvIC4uL3RyZWUtaW5saW5lLmguCgkod2Fsa190cmVlX3dpdGhvdXRfZHVwbGljYXRlcywgY29weV90cmVlX3IpOiBMaWtld2lzZS4KCShyZW1hcF9zYXZlX2V4cHIpOiBMaWtld2lzZS4KCSogZGVjbC5jOiBJbmNsdWRlIHRyZWUtaW5saW5lLmguCgkobGFuZ19tYXJrX3RyZWUpOiBEb24ndCBtYXJrIGlubGluZWRfZm5zLgoJKiBkZWNsMi5jIChmbGFnX2lubGluZV90cmVlcyk6IE1vdmVkIGRlZm4gdG8gLi4vdHJlZS1pbmxpbmUuYy4KCSogb3B0aW1pemUuYzogSW5jbHVkZSB0cmVlLWlubGluZS5oLgoJKG9wdGltaXplX2lubGluZV9jYWxscyk6IE1vdmUgZGVjbGFyYXRpb24gdG8gLi4vdHJlZS5oLCBhcwoJbm9uLXN0YXRpYy4KCShyZW1hcF9kZWNsKTogVXNlIGxhbmd1YWdlLWluZGVwZW5kZW50IGNvbnN0cnVjdHMgYW5kIGhvb2tzLgoJKHJlbWFwX2Jsb2NrLCBjb3B5X2JvZHlfciwgZGVjbGFyZV9yZXR1cm5fdmFyaWFibGUpOiBMaWtld2lzZS4KCShpbmxpbmFibGVfZnVuY3Rpb25fcCk6IExpa2V3aXNlLiAgRG9uJ3QgdGVzdCBmb3IKCURFQ0xfTEFOR19TUEVDSUZJQyBiZWZvcmUgREVDTF9JTkxJTkVEX0ZOUyBhcyBpbmxpbmVkX2ZucyBpcwoJbm8gbG9uZ2VyIGxhbmd1YWdlLXNwZWNpZmljLgoJKG9wdGltaXplX2lubGluZV9jYWxscyk6IExpa2V3aXNlLiAgTWFrZSBpdCBub24tc3RhdGljLiAgTW92ZWQKCWNhbGwgb2YgZHVtcF9mdW5jdGlvbiB0by4uLgoJKG9wdGltaXplX2Z1bmN0aW9uKTogSGVyZS4uLgoJKGNsb25lX2JvZHkpOiBOZXcgZnVuY3Rpb24sIGV4dHJhY3RlZCBmcm9tLi4uCgkobWF5YmVfY2xvbmVfYm9keSk6IC4uLiBoZXJlLiAgQnVpbGQgZGVjbF9tYXAgbG9jYWxseSBhbmQgcGFzcwoJaXQgb24gdG8gY2xvbmVfYm9keS4KCSogcHQuYywgc2VtYW50aWNzLmM6IEluY2x1ZGUgdHJlZS1pbmxpbmUuaC4KCSogdHJlZS5jOiBMaWtld2lzZS4KCShjcF93YWxrX3N1YnRyZWVzKTogTmV3IGxhbmd1YWdlLXNwZWNpZmljIGhvb2sgZm9yIHRyZWUgaW5saW5pbmcuCgkoY3BfY2Fubm90X2lubGluZV90cmVlX2ZuLCBjcF9hZGRfcGVuZGluZ19mbl9kZWNscywKCWNwX2lzX292ZXJsb2FkX3AsIGNwX2F1dG9fdmFyX2luX2ZuX3AsCgljcF9jb3B5X3Jlc19kZWNsX2Zvcl9pbmxpbmluZyk6IExpa2V3aXNlLgoJKHdhbGtfdHJlZSk6IE1vdmUgbGFuZ3VhZ2Utc3BlY2lmaWMgY29uc3RydWN0cyBpbnRvLi4uCgkoY3Bfd2Fsa19zdWJ0cmVlcyk6IHRoaXMgbmV3IGZ1bmN0aW9uLgoJKGNvcHlfdHJlZV9yKTogVXNlIGxhbmd1YWdlLWluZGVwZW5kZW50IGNvbnN0cnVjdHMgYW5kIGhvb2tzLgoJKGluaXRfdHJlZSk6IEluaXRpYWxpemUgdHJlZSBpbmxpbmluZyBob29rcy4KCShyZW1hcF9zYXZlX2V4cHIpOiBBZGp1c3QgcHJvdG90eXBlIHNvIHRoYXQgdGhlIGRlY2xhcmF0aW9uCglkb2VzIG5vdCByZXF1aXJlIHRoZSBkZWZpbml0aW9uIG9mIHNwbGF5X3RyZWUuCgoyMDAxLTEwLTAzICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogcnR0aS5jIChnZXRfdGluZm9fZGVjbCk6IENhbGwgdHlwZWluZm9faW5fbGliX3Agd2l0aCB0aGUgdHlwZSB1c2VkCgl0byBidWlsZCB0aGUgZGVjbGFyYXRpb24gaW5zdGVhZCBvZiB0aGUgZGVjbGFyYXRpb24gaXRzZWxmLgoKMjAwMS0xMC0wMiAgSmFzb24gTWVycmlsbCAgPGphc29uX21lcnJpbGxAcmVkaGF0LmNvbT4KCgkqIGRlY2wyLmMgKGN4eF9kZWNvZGVfb3B0aW9uKTogQWRkICdlbHNlJy4KCgkqIHNwZXcuYyAoZW5kX2lucHV0KTogTm8gbG9uZ2VyIHN0YXRpYy4KCSogY3AtdHJlZS5oOiBEZWNsYXJlIGl0LgoJKiBwYXJzZS55IChkYXRhZGVmKTogQWRkICJlcnJvciBFTkRfT0ZfU0FWRURfSU5QVVQiIGV4cGFuc2lvbi4KCjIwMDEtMTAtMDIgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGNhbGwuYyAoYnVpbGRfb3Zlcl9jYWxsKSwgdHlwZWNrLmMgKGJ1aWxkX2Z1bmN0aW9uX2NhbGxfcmVhbCk6CglQYXNzIHR5cGUgYXR0cmlidXRlcyB0byBjaGVja19mdW5jdGlvbl9mb3JtYXQgcmF0aGVyIHRoYW4gbmFtZSBvcgoJYXNzZW1ibGVyIG5hbWUuICBEb24ndCByZXF1aXJlIHRoZXJlIHRvIGJlIGEgbmFtZSBvciBhc3NlbWJsZXIKCW5hbWUgdG8gY2hlY2sgZm9ybWF0cy4KCjIwMDEtMTAtMDIgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBEb24ndCBjYWxsCglpbml0X2Z1bmN0aW9uX2Zvcm1hdF9pbmZvLiAgSW5pdGlhbGl6ZSBsYW5nX2F0dHJpYnV0ZV90YWJsZQoJZWFybGllci4KCShidWlsdGluX2Z1bmN0aW9uKTogQ2FsbCBkZWNsX2F0dHJpYnV0ZXMuCgkoaW5zZXJ0X2RlZmF1bHRfYXR0cmlidXRlcyk6IE5ldy4KCjIwMDEtMTAtMDEgIEphc29uIE1lcnJpbGwgIDxqYXNvbl9tZXJyaWxsQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogQ29weSBhcnJheSB0eXBlZGVmIGhhbmRsaW5nIGZyb20gQwoJZnJvbnRlbmQuCgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogQ29weSB0b28tbGFyZ2UgYXJyYXkgaGFuZGxpbmcgZnJvbSBDCglmcm9udGVuZC4KCjIwMDEtMDktMjkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnLWxhbmcuaW4gKHRhcmdldF9saWJzKTogQWRkZWQgdGFyZ2V0LWdwZXJmLCBzbyB0aGF0IHdlCglkb24ndCB0cnkgdG8gYnVpbGQgaXQgaWYgQysrIGlzIGRpc2FibGVkLgoKMjAwMS0wOS0yMyAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAoQ1hYX09CSlMpOiBUYWtlIG91dCBjcC9lcnJmbi5vLgoJKGNwL2VycmZuLm8pOiBEZWxldGUgcnVsZS4KCShjcC9lcnJvci5vKTogRGVwZW5kIG9uIGZsYWdzLmguCgkqIGVycmZuLmM6IERlbGV0ZSBmaWxlLgoJKiBjcC10cmVlLmg6IERlY2xhcmUgd2Fybl9kZXByZWNhdGVkLiAgUmVtb3ZlIGRlZmluaXRpb25zIG9mCglURkZfTkFNRVNQQUNFX1NDT1BFLCBURkZfQ0xBU1NfU0NPUEUsIFRGRl9DSEFTRV9OQU1FU1BBQ0VfQUxJQVMsCglhbmQgVEZGX1RFTVBMQVRFX0RFRkFVTFRfQVJHVU1FTlRTLiAjZGVmaW5lIGNwX2Vycm9yLCBjcF93YXJuaW5nLAoJY3BfcGVkd2FybiwgYW5kIGNwX2NvbXBpbGVyX2Vycm9yIHRvIGVycm9yLCB3YXJuaW5nLCBwZWR3YXJuLCBhbmQKCWludGVybmFsX2Vycm9yIHJlc3BlY3RpdmVseS4gIE1ha2UgY3BfZGVwcmVjYXRlZCBpbnRvIGEgbWFjcm8uCglEb24ndCBkZWZpbmUgY3BfcHJpbnRlciB0eXBlZGVmIG9yIGRlY2xhcmUgY3BfcHJpbnRlcnMuCgkqIGVycm9yLmM6IEluY2x1ZGUgZmxhZ3MuaC4KCURlbGV0ZTogc3RydWN0IHRyZWVfZm9ybWF0dGluZ19pbmZvLCBwcmludF9mdW5jdGlvbl9hcmd1bWVudF9saXN0LAoJcHJpbnRfZGVjbGFyYXRpb24sIHByaW50X2V4cHJlc3Npb24sIHByaW50X2Z1bmN0aW9uX2RlY2xhcmF0aW9uLAoJcHJpbnRfZnVuY3Rpb25fcGFyYW1ldGVyLCBwcmludF90eXBlX2lkLCBwcmludF9jdl9xdWFsaWZpZXJfc2VxLAoJcHJpbnRfdHlwZV9zcGVjaWZpZXJfc2VxLCBwcmludF9zaW1wbGVfdHlwZV9zcGVjaWZpZXIsCglwcmludF9lbGFib3JhdGVkX3R5cGVfc3BlY2lmaWVyLCBwcmludF9yZXN0X29mX2Fic3RyYWN0X2RlY2xhcmF0b3IsCglwcmludF9wYXJhbWV0ZXJfZGVjbGFyYXRpb25fY2xhdXNlLCBwcmludF9leGNlcHRpb25fc3BlY2lmaWNhdGlvbiwKCXByaW50X25lc3RlZF9uYW1lX3NwZWNpZmllciwgYW5kIGRlZmluaXRpb24gb2YgY3BfcHJpbnRlcnMuCgkobG9jYXRlX2Vycm9yKTogTmV3IGZ1bmN0aW9uLgoJKGNwX2Vycm9yX2F0LCBjcF93YXJuaW5nX2F0LCBjcF9wZWR3YXJuX2F0KTogTW92ZWQgaGVyZSBhbmQKCXJld3JpdHRlbiBpbiB0ZXJtcyBvZiBsb2NhdGVfZXJyb3IgYW5kIGRpYWdub3N0aWMuYy4KCShjcF90cmVlX3ByaW50ZXIpOiBSZW5hbWUgY3BfcHJpbnRlcjsgd2lyZSB1cCB0byAqX3RvX3N0cmluZwoJaW5zdGVhZCBvZiBkZWxldGVkIHByaW50Xyogcm91dGluZXMuICBIYW5kbGUgJUMsICVMLCAlTywgJVEgYWxzby4KCShpbml0X2Vycm9yKTogQWRqdXN0IHRvIG1hdGNoLgoKMjAwMS0wOS0yMiAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIE1ha2UtbGFuZy5pbiAoQ1hYX0NfT0JKUyk6IEFkZCBhdHRyaWJzLm8uCgoyMDAxLTA5LTIxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY2xhc3MuYyAoc2V0X3ZpbmRleCk6IE1pbmQgVEFSR0VUX1ZUQUJMRV9VU0VTX0RFU0NSSVBUT1JTLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBMaWtld2lzZS4KCShidWlsZF92Zm5fcmVmKTogTmV3LgoJKiBjcC10cmVlLmg6IERlY2xhcmUgaXQuCgkqIGNhbGwuYyAoYnVpbGRfb3Zlcl9jYWxsKTogVXNlIGl0LgoJKiBkZWNsMi5jIChtYXJrX3Z0YWJsZV9lbnRyaWVzKTogTWFyayBGREVTQ19FWFBSLgoJKiB0eXBlY2suYyAoZ2V0X21lbWJlcl9mdW5jdGlvbl9mcm9tX3B0cmZ1bmMpOiBNaW5kIGRlc2NyaXB0b3JzLgoKMjAwMS0wOS0yMSAgSiJvcm4gUmVubmVja2UgPGFteWxhYXJAcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBVc2UgQyBzeW50YXggZm9yIGF0dHJfZmxhZ3MgZGVjbGFyYXRpb24uCgoyMDAxLTA5LTIxICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJVGFibGUtZHJpdmVuIGF0dHJpYnV0ZXMuCgkqIGRlY2wuYzogUmVuYW1lIERFQ0xfTUFDSElORV9BVFRSSUJVVEVTIHRvIERFQ0xfQVRUUklCVVRFUy4KCSogZGVjbDIuYyAoY3BsdXNfZGVjbF9hdHRyaWJ1dGVzKTogT25seSB0YWtlIG9uZSBhdHRyaWJ1dGVzCglwYXJhbWV0ZXIuCgkqIGNwLXRyZWUuYyAoY3BsdXNfZGVjbF9hdHRyaWJ1dGVzKTogVXBkYXRlIHByb3RvdHlwZS4KCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdCksIGRlY2wuYyAoc3RhcnRfZGVjbCwgc3RhcnRfZnVuY3Rpb24pLAoJZGVjbDIuYyAoZ3Jva2ZpZWxkKSwgZnJpZW5kLmMgKGRvX2ZyaWVuZCksIHBhcnNlLnkKCShwYXJzZV9iaXRmaWVsZCk6IFVwZGF0ZSBjYWxscyB0byBjcGx1c19kZWNsX2F0dHJpYnV0ZXMuCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBUYWtlIGEgcG9pbnRlciB0byBhIHNpbmdsZSBvcmRpbmFyeQoJYXR0cmlidXRlIGxpc3QuCgkqIGRlY2wuaCAoZ3Jva2RlY2xhcmF0b3IpOiBVcGRhdGUgcHJvdG90eXBlLgoJKiBkZWNsMi5jIChncm9rZmllbGQpOiBUYWtlIGEgc2luZ2xlIG9yZGluYXJ5IGF0dHJpYnV0ZSBsaXN0LgoJKiBmcmllbmQuYyAoZG9fZnJpZW5kKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoc2hhZG93X3RhZywgZ3Jva3R5cGVuYW1lLCBzdGFydF9kZWNsLAoJc3RhcnRfaGFuZGxlcl9wYXJtcywgZ3Jva2RlY2xhcmF0b3IsIGdyb2twYXJtcywgc3RhcnRfZnVuY3Rpb24sCglzdGFydF9tZXRob2QpLCBkZWNsMi5jIChncm9rZmllbGQsIGdyb2tiaXRmaWVsZCwgZ3Jva29wdHlwZW5hbWUpLAoJcGFyc2UueSAocGFyc2VfZmllbGQsIHBhcnNlX2JpdGZpZWxkLCBjb21wb25lbnRfZGVjbF8xKSwgcHQuYwoJKHByb2Nlc3NfdGVtcGxhdGVfcGFybSwgZG9fZGVjbF9pbnN0YW50aWF0aW9uKTogUGFzcyBzaW5nbGUKCW9yZGluYXJ5IGF0dHJpYnV0ZSBsaXN0cyBhcm91bmQuCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBDb3JyZWN0IGhhbmRsaW5nIG9mIG5lc3RlZCBhdHRyaWJ1dGVzLgoJUmV2ZXJ0IHRoZSBwYXRjaAoJMTk5OC0xMC0xOCAgSmFzb24gTWVycmlsbCAgPGphc29uQHlvcmljay5jeWdudXMuY29tPgoJCSogZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IEVtYmVkZGVkIGF0dHJzIGJpbmQgdG8gdGhlIHJpZ2h0LAoJCW5vdCB0aGUgbGVmdC4KCS4KCSogY3AtdHJlZS5oIChjcF92YWxpZF9sYW5nX2F0dHJpYnV0ZSk6IFJlbW92ZSBkZWNsYXJhdGlvbgoJKGNwX2F0dHJpYnV0ZV90YWJsZSk6IERlY2xhcmUuCgkqIGRlY2wuYyAodmFsaWRfbGFuZ19hdHRyaWJ1dGUpOiBEb24ndCBkZWZpbmUuCgkobGFuZ19hdHRyaWJ1dGVfdGFibGUpOiBEZWZpbmUuCgkoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBJbml0aWFsaXplIGxhbmdfYXR0cmlidXRlX3RhYmxlIGluc3RlYWQgb2YKCXZhbGlkX2xhbmdfYXR0cmlidXRlLgoJKiB0cmVlLmMgKGNwX3ZhbGlkX2xhbmdfYXR0cmlidXRlKTogUmVtb3ZlLgoJKGhhbmRsZV9qYXZhX2ludGVyZmFjZV9hdHRyaWJ1dGUsIGhhbmRsZV9jb21faW50ZXJmYWNlX2F0dHJpYnV0ZSwKCWhhbmRsZV9pbml0X3ByaW9yaXR5X2F0dHJpYnV0ZSk6IE5ldyBmdW5jdGlvbnMuCgkoY3BfYXR0cmlidXRlX3RhYmxlKTogTmV3IGFycmF5LgoJKiBkZWNsMi5jIChpbXBvcnRfZXhwb3J0X2NsYXNzKTogRG9uJ3QgdXNlCgl0YXJnZXRtLnZhbGlkX3R5cGVfYXR0cmlidXRlLgoKMjAwMS0wOS0xNSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBtZXJsaW4uY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAoY3AvZXJyb3Iubyk6IERlcGVuZCBvbiByZWFsLmgKCSogZXJyb3IuYzogI2luY2x1ZGUgInJlYWwuaCIKCjIwMDEtMDktMTUgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIG1hbmdsZS5jIChtYW5nbGVfY29udl9vcF9uYW1lX2Zvcl90eXBlKTogVXNlIGNvbmNhdCBpbiBsaWV1IG9mCgl4bWFsbG9jL3N0cmNweS9zdHJjYXQuCgoyMDAxLTA5LTEzICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBkZWNsLmMgKHdhcm5fZXh0ZXJuX3JlZGVjbGFyZWRfc3RhdGljLCBjcF9tYWtlX2ZuYW1lX2RlY2wpOgoJQ29uc3QtaWZpY2F0aW9uLgoJKiBwdC5jICh0c3Vic3RfZGVjbCk6IExpa2V3aXNlLgoKMjAwMS0wOS0xMiAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogZGVjbDIuYyAobGFuZ19mX29wdGlvbnMpOiBDb25zdC1pZmljYXRpb24uCgkqIGxleC5jIChjcGx1c190cmVlX2NvZGVfbmFtZSk6IExpa2V3aXNlLgoJKiBzcGV3LmMgKHl5ZXJyb3IpOiBMaWtld2lzZS4KCjIwMDEtMDktMDYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzM5ODYKCSogY2xhc3MuYyAoZm9yY2VfY2Fub25pY2FsX2JpbmZvX3IpOiBDaGVjayAmIG1vdmUgYW4gaW5kaXJlY3QKCXByaW1hcnkgYmFzZSBmaXJzdC4KCShmb3JjZV9jYW5vbmljYWxfYmluZm8pOiBDaGVjayB0aGF0IGl0J3Mgbm90IGFscmVhZHkKCWNhbm9uaWNhbC4KCShtYXJrX3ByaW1hcnlfdmlydHVhbF9iYXNlKTogUmVtb3ZlIEJJTkZPIHBhcmFtZXRlci4KCShtYXJrX3ByaW1hcnlfYmFzZXMpOiBBZGp1c3QsIHNldCBCSU5GT19MT1NUX1BSSU1BUllfUCBoZXJlLgoKMjAwMS0wOS0wNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglSZW1vdmUgVFlQRV9OT05DT1BJRURfUEFSVFMuCgkqIGNwLXRyZWUuaCAoQ0xBU1NUWVBFX0lOTElORV9GUklFTkRTKTogTWFwIG9udG8KCUNMQVNTVFlQRV9QVVJFX1ZJUlRVQUxTLgoJKFRZUEVfUkFJU0VTX0VYQ0VQVElPTlMpOiBNYXAgb250byBUWVBFX0JJTkZPLgoJKiBjbGFzcy5jIChkdXBsaWNhdGVfdGFnX2Vycm9yKTogUmVtb3ZlIFRZUEVfTk9OQ09QSUVEX1BBUlRTLgoJKGxheW91dF9jbGFzc190eXBlKTogRG9uJ3QgY2FsbCBmaXh1cF9pbmxpbmVfbWV0aG9kcyBoZXJlIC4uLgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IC4uLiBjYWxsIGl0IGhlcmUuCgoyMDAxLTA5LTA0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBSZW1vdmUgY29kZSBkZWFkbGluZyB3aXRoCglERUNMX1NBVkVEX0lOU05TLgoJKiBkZWNsMi5jIChmaW5pc2hfZmlsZSk6IExpa2V3aXNlLgoJKiBwdC5jIChpbnN0YW50aWF0ZV9kZWNsKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChleHBhbmRfYm9keSk6IERvbid0IGRlZmVyIGxvY2FsIGZ1bmN0aW9ucyBpZgoJdGhleSB3b3VsZG4ndCBiZSBkZWZlcnJlZCBmb3Igc29tZSBvdGhlciByZWFzb24uICBEb24ndAoJZ2VuZXJhdGUgUlRMIGZvciBmdW5jdGlvbnMgdGhhdCB3aWxsIG5vdCBiZSBlbWl0dGVkLgoJKGdlbnJ0bF9zdGFydF9mdW5jdGlvbik6IFJlbW92ZSBjb2RlIGRlYWRsaW5nIHdpdGgKCURFQ0xfU0FWRURfSU5TTlMuCgkoZ2VucnRsX2ZpbmlzaF9mdW5jdGlvbik6IExpa2V3aXNlLgoKMjAwMS0wOS0wNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvNDIwMwoJKiBjYWxsLmMgKGJ1aWxkX292ZXJfY2FsbCk6IERvIG5vdCBvcHRpbWl6ZSBhbnkgZW1wdHkgYmFzZQoJY29uc3RydWN0aW9uLgoKMjAwMS0wOC0zMSAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBlcnJvci5jIChkdW1wX3RlbXBsYXRlX2RlY2wpOiBPdXRwdXQgdGVtcGxhdGUgcGFyYW1ldGVycwoJdG9nZXRoZXIgd2l0aCB0aGVpciBzcGVjaWZpZXJzLgoJT3V0cHV0IGBjbGFzcycgcHJlZml4IGZvciB0ZW1wbGF0ZSB0ZW1wbGF0ZSBwYXJhbWV0ZXIuCgkoZHVtcF9kZWNsKTogRml4IGZvcm1hdHRpbmcuCgoyMDAxLTA4LTMwICBLdXJ0IEdhcmxvZmYgIDxnYXJsb2ZmQHN1c2UuZGU+CgoJKiBvcHRpbWl6ZS5jIChpbmxpbmFibGVfZnVuY3Rpb25fcCk6IEFsbG93IG9ubHkgc21hbGxlciBzaW5nbGUKCWZ1bmN0aW9ucy4gSGFsdmUgaW5saW5lIGxpbWl0IGFmdGVyIHJlYWNoaW5nIHJlY3Vyc2l2ZSBsaW1pdC4KCjIwMDEtMDgtMzAgIEpvZXJuIFJlbm5lY2tlIDxhbXlsYWFyQHJlZGhhdC5jb20+CgkgICAgSmFzb24gTWVycmlsbCAgPGphc29uX21lcnJpbGxAcmVkaGF0LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YWJsZV9lbnRyeV9yZWYpOiBTdWJ0cmFjdCBpbiBjaGFyKiwgbm90CglwdHJkaWZmX3QuCgoyMDAxLTA4LTIzICBKYXNvbiBNZXJyaWxsICA8amFzb25fbWVycmlsbEByZWRoYXQuY29tPgoKCSogdHJlZS5jIChjcF9idWlsZF9xdWFsaWZpZWRfdHlwZV9yZWFsKTogVXNlIGdldF9xdWFsaWZpZWRfdHlwZS4KCShidWlsZF9jcGx1c19hcnJheV90eXBlKTogVXNlIGNwX2J1aWxkX3F1YWxpZmllZF90eXBlLCBub3QKCVRZUEVfTUFJTl9WQVJJQU5ULCB0byBnZXQgYW4gdW5xdWFsaWZpZWQgdmVyc2lvbi4KCgkqIGRlY2wyLmMgKGdyb2tfYWxpZ25vZik6IExvc2UuCgkoYnVpbGRfZXhwcl9mcm9tX3RyZWUpOiBVc2UgZXhwcl9zaXplb2YgYW5kIGNfYWxpZ25vZl9leHByLgoJKiB0eXBlY2suYyAoY19hbGlnbm9mKTogTG9zZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9zaXplb2YsIGZpbmlzaF9hbGlnbm9mKTogTmV3LgoJKiBwYXJzZS55OiBVc2UgdGhlbS4KCSogY3AtdHJlZS5oOiBEZWNsYXJlIHRoZW0uCgoyMDAxLTA4LTIyICBKYXNvbiBNZXJyaWxsICA8amFzb25fbWVycmlsbEByZWRoYXQuY29tPgoKCSogcHQuYyAodHN1YnN0X2V4cHIpOiBIYW5kIG9mZiB0byB0aGUgVFJFRV9DSEFJTiBvZiBhIHN0YXRlbWVudC4KCURvbid0IGxvb3AgaW4gQ09NUE9VTkRfU1RNVCwgRk9SX1NUTVQgb3IgVFJZX0JMT0NLLgoJKiB0cmVlLmMgKGNwX3N0YXRlbWVudF9jb2RlX3ApOiBBIFRBR19ERUZOIGlzIGEgc3RhdGVtZW50LgoKMjAwMS0wOC0xOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiB0eXBlY2syLmMgKGFkZF9leGNlcHRpb25fc3BlY2lmaWVyKTogT25seSByZXF1aXJlIGNvbXBsZXRlIHR5cGUgaWYKCW5vdCBpbiBwcm9jZXNzaW5nIHRlbXBsYXRlIGRlY2xhcmF0aW9uLgoKMjAwMS0wOC0xOCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogZGVjbC5jOiBDYXN0IGFyZ3VtZW50IHRvIHNpemVfdCwgbm90IEhPU1RfV0lERV9JTlQsIGluIGNhbGxzIHRvCglHTlVfeHJlZl9zdGFydF9zY29wZSBhbmQgR05VX3hyZWZfZW5kX3Njb3BlLgoKCSogdHJlZS5jIChUWVBFX0hBU0gpOiBNb3ZlZCB0byAuLi90cmVlLmguCgoyMDAxLTA4LTE2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3Z0LmMgKGNvbnZlcnRfdG9fdm9pZCk6IFByZXNlcnZlIFRSRUVfU0lERV9FRkZFQ1RTCglvbiBDT01QT1VORF9FWFBScy4KCjIwMDEtMDgtMTQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjbGFzcy5jLCBjcC10cmVlLmggKGJ1aWxkX3Zmbl9yZWYpOiBSZW1vdmUuCgkqIGNhbGwuYywgcnR0aS5jOiBSZXBsYWNlIGFsbCByZWZlcm5jZXMgd2l0aCBidWlsZF92dGJsX3JlZi4KCjIwMDEtMDgtMTMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGJ1aWxkX292ZXJfY2FsbCk6IE1hcmsgQ09NUE9VTkRfRVhQUnMgZ2VuZXJhdGVkIGZvcgoJZW1wdHkgY2xhc3MgYXNzaWdubWVudCBhcyBoYXZpbmcgc2lkZS1lZmZlY3RzIHRvIGF2b2lkCglzcHVyaW91cyB3YXJuaW5ncy4KCjIwMDEtMDgtMTMgIFphY2sgV2VpbmJlcmcgIDx6YWNrd0BwYW5peC5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKGNwL2V4Y2VwdC5vKTogQWRkIGxpYmZ1bmNzLmggdG8gZGVwZW5kZW5jaWVzLgoJKiBleGNlcHQuYzogSW5jbHVkZSBsaWJmdW5jcy5oLgoKMjAwMS0wOC0xMSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBtZXJsaW4uY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBDbGFyaWZ5IGRpYWdub3N0aWMgbWVzc2FnZS4KCjIwMDEtMDgtMTMgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGVjbDIuYyAoZG9fbm9ubWVtYmVyX3VzaW5nX2RlY2wpOiBSZXBsYWNlIHVzaW5nIGRpcmVjdGl2ZQoJd2l0aCB1c2luZyBkZWNsYXJhdGlvbiBpbiB0aGUgZXJyb3IgbWVzc2FnZS4KCjIwMDEtMDgtMTEgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcHQuYyAobWF5YmVfZm9sZF9ub250eXBlX2FyZyk6IFVzZSBUUkVFX1RZUEUgb2YgQVJHIGFzIHRoZQoJY3JpdGVyaW9uIHRvIGF2b2lkIHJlYnVpbGRpbmcgZXhwcmVzc2lvbiB0cmVlIGluc3RlYWQgb2YKCXByb2Nlc3NpbmdfdGVtcGxhdGVfZGVjbC4KCjIwMDEtMDgtMDcgIEphc29uIE1lcnJpbGwgIDxqYXNvbl9tZXJyaWxsQHJlZGhhdC5jb20+CgoJU3VwcG9ydCBuYW1lZCByZXR1cm4gdmFsdWUgb3B0aW1pemF0aW9uIGZvciBpbmxpbmVzLCB0b28uCgkqIGRlY2wuYyAoZmluaXNoX2Z1bmN0aW9uKTogTnVsbGlmeSByZXR1cm5zIGhlcmUuCgkqIHNlbWFudGljcy5jIChnZW5ydGxfc3RhcnRfZnVuY3Rpb24pOiBOb3QgaGVyZS4KCShjcF9leHBhbmRfc3RtdCk6IERvbid0IG1lc3Mgd2l0aCBDTEVBTlVQX1NUTVRzLgoJKG51bGxpZnlfcmV0dXJuc19yKTogTm8gbG9uZ2VyIHN0YXRpYy4gIEp1c3QgY2xlYXIgUkVUVVJOX0VYUFIuCglBbHNvIG51bGxpZnkgdGhlIENMRUFOVVBfU1RNVCBmb3IgdGhlIG5ydi4KCSogY3AtdHJlZS5oOiBEZWNsYXJlIGl0LgoJKiBvcHRpbWl6ZS5jIChkZWNsYXJlX3JldHVybl92YXJpYWJsZSk6IFJlcGxhY2UgdGhlIG5ydiB3aXRoIHRoZQoJcmV0dXJuIHZhcmlhYmxlLgoJKiB0eXBlY2suYyAoY2hlY2tfcmV0dXJuX2V4cHIpOiBCZSBtb3JlIGZsZXhpYmxlIG9uIGFsaWdubWVudCBjaGVjay4KCUlnbm9yZSBjdi1xdWFscyB3aGVuIGNoZWNraW5nIGZvciBhIG1hdGNoaW5nIHR5cGUuCgoyMDAxLTA4LTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZGVjbDIuYyAoZmluaXNoX29iamVjdHMpOiBVc2UgdGFyZ2V0IGhvb2tzIGluc3RlYWQgb2YKCWFzc2VtYmxlX2NvbnN0cnVjdG9yIGFuZCBhc3NlbWJsZV9kZXN0cnVjdG9yLgoKMjAwMS0wOC0wOCAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGcrK3NwZWMuYyAobGFuZ19zcGVjaWZpY19kcml2ZXIpOiBRdW90ZSBhcmd1bWVudCBhZnRlciBgLVhsaW5rZXInLgoKMjAwMS0wOC0wNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMzgyMAoJU3RvcCB1c2luZyBUWVBFX05PTkNPUElFRF9QQVJUUy4KCSogY2FsbC5jIChidWlsZF9vdmVyX2NhbGwpOiBCZSBjYXJlZnVsIHdoZW4gY29weSBjb25zdHJ1Y3RpbmcKCW9yIGFzc2lnbmluZyB0byBhbiBlbXB0eSBjbGFzcy4KCSogY2xhc3MuYyAoY2hlY2tfYmFzZXNfYW5kX21lbWJlcnMpOiBJdCBoYXMgYQoJQ09NUExFWF9BU1NJR05fUkVGIGlmIGl0IGhhcyBhIHZwdHIuCgkobGF5b3V0X2NsYXNzX3R5cGUpOiBEb24ndCBhZGQgZW1wdHkgY2xhc3MgcGFkZGluZyB0bwoJVFlQRV9OT05DT1BJRURfUEFSVFMuCgkoZmluaXNoX3N0cnVjdF8xKTogRG9uJ3QgYWRkIHRoZSBWRklFTEQgZWl0aGVyLgoJKiBjcC10cmVlLmggKFRZUEVfSEFTX1RSSVZJQUxfSU5JVF9SRUYpOiBNZW50aW9uIF9jb3B5XwoJaW5pdGlhbGl6YXRpb24uCgoyMDAxLTA4LTA3ICBKYXNvbiBNZXJyaWxsICA8amFzb25fbWVycmlsbEByZWRoYXQuY29tPgoKCSogdHJlZS5jICh3YWxrX3RyZWUpOiBXYWxrIHNpYmxpbmdzIGV2ZW4gaWYgIXdhbGtfc3VidHJlZXMuCgoyMDAxLTA4LTA2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZGVjbDIuYyAoZmluaXNoX29iamVjdHMpOiBQYXNzIGEgc3ltYm9sX3JlZiBhbmQgcHJpb3JpdHkgdG8KCWFzc2VtYmxlX3tjb25zdHJ1Y3RvcixkZXN0cnVjdG9yfS4gIFJlbW92ZSBwcmlvcml0eSBoYW5kbGluZy4KCjIwMDEtMDgtMDUgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAbWVybGluLmNvZGVzb3VyY2VyeS5jb20+CgoJRG9uJ3QgYWxsb3cgdGVtcGxhdGUtaWQgaW4gdXNpbmctZGVjbGFyYXRpb24uCgkqIGRlY2wyLmMgKHZhbGlkYXRlX25vbm1lbWJlcl91c2luZ19kZWNsKTogSGFuZGxlIHRlbXBsYXRlLWlkcy4KCShkb19jbGFzc191c2luZ19kZWNsKTogTGlrZXdpc2UuCgoyMDAxLTA4LTA0ICBOZWlsIEJvb3RoICA8bmVpbEBjYXQuZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogY3Avc3Bldy5jIChyZWFkX3Rva2VuKTogTm8gbmVlZCB0byBwb3AgYnVmZmVycy4KCjIwMDEtMDgtMDIgIFN0YW4gU2hlYnMgIDxzaGVic0BhcHBsZS5jb20+CgoJKiBjcC10cmVlLmggKEZOQUREUl9GUk9NX1ZUQUJMRV9FTlRSWSk6IFJlbW92ZSwgbm8gbG9uZ2VyIHVzZWQuCgkoZm5hZGRyX2Zyb21fdnRhYmxlX2VudHJ5KTogUmVtb3ZlIGRlY2wuCgkqIG1ldGhvZC5jICh1c2VfdGh1bmspOiBVcGRhdGUgY29tbWVudC4KCjIwMDEtMDgtMDEgIEFuZHJldyBDYWduZXkgIDxhYzEzMTMxM0ByZWRoYXQuY29tPgoKCSogcmVwby5jIChnZXRfYmFzZV9maWxlbmFtZSk6IENoYW5nZSByZXR1cm4gdmFsdWUgdG8gY29uc3QgY2hhcgoJcG9pbnRlci4KCjIwMDEtMDgtMDIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJS2lsbCAtZmhvbm9yLXN0ZC4KCSogTkVXUzogRG9jdW1lbnQuCgkqIGNwLXRyZWUuaCAoZmxhZ19ob25vcl9zdGQpOiBSZW1vdmUuCgkoQ1BUSV9GQUtFX1NURCk6IFJlbW92ZS4KCShzdGRfbm9kZSk6IFJlbW92ZSBjb21tZW50IGFib3V0IGl0IGJlaW5nIE5VTEwuCgkoZmFrZV9zdGRfbm9kZSk6IFJlbW92ZS4KCSogZGVjbC5jIChpbl9mYWtlX3N0ZCk6IFJlbW92ZS4KCSh3YWxrX25hbWVzcGFjZXNfcik6IFJlbW92ZSBmYWtlX3N0ZF9ub2RlIGNoZWNrLgoJKHB1c2hfbmFtZXNwYWNlKTogUmVtb3ZlIGluX2Zha2Vfc3RkIGNvZGUuCgkocG9wX25hbWVzcGFjZSk6IExpa2V3aXNlLgoJKGxvb2t1cF9uYW1lX3JlYWwpOiBSZW1vdmUgZmFrZV9zdGRfbm9kZSBjaGVjay4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IEFsd2F5cyBjcmVhdGUgc3RkX25vZGUuIEFsd2F5cyBhZGQKCXN0ZDo6IHRoaW5ncyB0aGVyZS4KCShidWlsdGluX2Z1bmN0aW9uKTogQWx3YXlzIHB1dCBub24gJ18nIGZucyBpbiBzdGQuCgkqIGRlY2wyLmMgKGZsYWdfaG9ub3Jfc3RkKTogUmVtb3ZlLgoJKGxhbmdfZl9vcHRpb25zKTogUmVtb3ZlIGhvbm9yLXN0ZC4KCSh1bnN1cHBvcnRlZF9vcHRpb25zKTogQWRkIGhvbm9yLXN0ZC4KCShzZXRfZGVjbF9uYW1lc3BhY2UpOiBSZW1vdmUgZmFrZV9zdGRfbm9kZSBjaGVjay4KCSh2YWxpZGF0ZV9ub25tZW1iZXJfdXNpbmdfZGVjbCk6IExpa2V3aXNlLgoJKGRvX3VzaW5nX2RpcmVjdGl2ZSk6IExpa2V3aXNlLgoJKGhhbmRsZV9jbGFzc19oZWFkKTogTGlrZXdpc2UuCgkqIGR1bXAuYyAoY3BfZHVtcF90cmVlKTogTGlrZXdpc2UuCgkqIGV4Y2VwdC5jIChpbml0X2V4Y2VwdGlvbl9wcm9jZXNzaW5nKTogQWRqdXN0LgoJKiBpbml0LmMgKGJ1aWxkX21lbWJlcl9jYWxsKTogUmVtb3ZlIGZha2Vfc3RkX25vZGUgY2hlY2suCgkoYnVpbGRfb2Zmc2V0X3JlZik6IExpa2V3aXNlLgoJKiBsYW5nLW9wdGlvbnMuaDogUmVtb3ZlIC1maG9ub3Itc3RkLCAtZm5vLWhvbm9yLXN0ZC4KCSogcnR0aS5jIChpbml0X3J0dGlfcHJvY2Vzc2luZyk6IEFkanVzdC4KCjIwMDEtMDctMzEgIEFsZXhhbmRyZSBQZXRpdC1CaWFuY28gIDxhcGJpYW5jb0ByZWRoYXQuY29tPgoKCSogdHJlZS5jIChjcF90cmVlX2VxdWFsKTogV0lUSF9DTEVBTlVQX0VYUFIgbm9kZSB0byB1c2UgaXRzIHNlY29uZAoJb3BlcmFuZCB3aGlsZSBjYWxsaW5nIGNwX3RyZWVfZXF1YWwuCgoyMDAxLTA3LTMxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVRoZSAzLjAgQUJJIG5vIGxvbmdlciBoYXMgdmJhc2UgcG9pbnRlciBmaWVsZHMuCgkqIGNwLXRyZWUuaCAoVkJBU0VfTkFNRSwgVkJBU0VfTkFNRV9GT1JNQVQsIFZCQVNFX05BTUVfUCwKCUZPUk1BVF9WQkFTRV9OQU1FKTogUmVtb3ZlLgoJKiBtZXRob2QuYyAoZG9fYnVpbGRfY29weV9jb25zdHJ1Y3Rvcik6IEFkanVzdC4KCShkb19idWlsZF9hc3NpZ25fcmVmKTogQWRqdXN0LgoJKiBzZWFyY2guYyAobG9va3VwX2ZpZWxkX3IpOiBBZGp1c3QuCgkqIHR5cGVjay5jIChidWlsZF9jb21wb25lbnRfcmVmKTogQWRqdXN0LgoKCVRoZSAzLjAgQUJJIGFsd2F5cyBoYXMgYSB2dGFibGUgcG9pbnRlciBhdCB0aGUgc3RhcnQgb2YgZXZlcnkKCXBvbHltb3JwaGljIGNsYXNzLgoJKiBydHRpLmMgKGJ1aWxkX2hlYWRvZl9zdWIpOiBSZW1vdmUuCgkoYnVpbGRfaGVhZG9mKTogQWRqdXN0LgoJKGdldF90aW5mb19kZWNsX2R5bmFtaWMpOiBObyBuZWVkIHRvIGNoZWNrIGZsYWdfcnR0aQoJaGVyZS4gQWRqdXN0LgoJKGNyZWF0ZV9yZWFsX3RpbmZvX3Zhcik6IEV4cGxhaW4gd2h5IHdlIG5lZWQgYSBoaWRkZW4gbmFtZS4KCjIwMDEtMDctMzEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzM2MzEKCSogY2xhc3MuYyAodXBkYXRlX3Z0YWJsZV9lbnRyeV9mb3JfZm4pOiBUaGUgZml4ZWQgYWRqdXN0bWVudAoJb2YgYSB2aXJ0dWFsIHRodW5rIHNob3VsZCBiZSBmcm9tIGRlY2xhcmluZyBiYXNlLgoKMjAwMS0wNy0zMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGRmc19jdG9yX3Z0YWJsZV9iYXNlc19xdWV1ZV9wKTogQWx3YXlzIHdhbGsgaW50bwoJdGhlIHNoYXJlZCB2aXJ0dWFsIGJhc2UsIHNvIHByZXNlcnZpbmcgaW5oZXJpdGFuY2UgZ3JhcGggb3JkZXIuCgoyMDAxLTA3LTMwICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBkZWNsMi5jOiBSZW1vdmUgdW51c2VkIHZhciBnbG9iYWxfdGVtcF9uYW1lX2NvdW50ZXIuCgoyMDAxLTA3LTI4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogbWV0aG9kLmMgKHBlbmRpbmdfaW5saW5lcyk6IFJlbW92ZS4KCjIwMDEtMDctMjcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChtYXJrX3ByaW1hcnlfdmlydHVhbF9iYXNlKTogRG9uJ3QgYWRqdXN0IGJhc2UKCW9mZnNldHMgaGVyZS4KCShkZnNfdW5zaGFyZWRfdmlydHVhbF9iYXNlcyk6IEFkanVzdCB0aGVtIGhlcmUuCgkobWFya19wcmltYXJ5X2Jhc2VzKTogRXhwbGFpbiB3aHkgd2UgYWRqdXN0IGF0IHRoZSBlbmQuCgoyMDAxLTA3LTI3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdF8xKTogV2hlbiBjb3B5aW5nIHRoZSBwcmltYXJ5IGJhc2UncwoJVkZJRUxELCBtYWtlIHN1cmUgd2UgZmluZCBpdCBpcyBhdCBvZmZzZXQgemVyby4KCjIwMDEtMDctMjYgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcHQuYyAodHN1YnN0X3RlbXBsYXRlX3Bhcm1zKTogQ2FsbCBtYXliZV9mb2xkX25vbnR5cGVfYXJnIGFuZAoJdHN1YnN0X2V4cHIgZm9yIGRlZmF1bHQgdGVtcGxhdGUgYXJndW1lbnRzLgoKMjAwMS0wNy0yNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMzYyMQoJKiBzcGV3LmMgKHl5bGV4KTogT25seSBjb3B5IHRoZSB0b2tlbidzIGxpbmVubywgaWYgaXQgaXMKCW5vbnplcm8uCgoyMDAxLTA3LTI2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8zNjI0CgkqIGNhbGwuYyAocmVzb2x2ZV9hcmdzKTogU2ltcGxpZnksIGNhbGwKCWNvbnZlcnRfZnJvbV9yZWZlcmVuY2UuCgkoYnVpbGRfbmV3X29wKTogUmVzb2x2ZSBhbmQgY29udmVydCBmcm9tIHJlZmVyZW5jZSBBUkcxCgllYXJsaWVyLiBBZGp1c3QgQVJHMiAmIEFSRzMgcmVzb2x2ZSBhbmQgY29udmVyc2lvbi4KCjIwMDEtMDctMjYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGxhc3RfZnVuY3Rpb25fcGFybV90YWdzKTogUmVtb3ZlLgoJKGN1cnJlbnRfZnVuY3Rpb25fcGFybV90YWdzKTogUmVtb3ZlLgoJKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogQWRqdXN0LgoJKHN0YXJ0X2Z1bmN0aW9uKTogQWRqdXN0LgoJKHN0b3JlX3Bhcm1fZGVjbHMpOiBBZGp1c3QuCgoJUFIgYysrLzMxNTIKCSogZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IERldGVjdCB3aGVuIGEgZnVuY3Rpb24gdHlwZWRlZiBpcwoJZGVjbGFyaW5nIGEgZnVuY3Rpb24sIGFuZCBjcmVhdGUgbGFzdF9mdW5jdGlvbl9wYXJtcyBjb3JyZWN0bHkuCgoyMDAxLTA3LTI1ICBKYXNvbiBNZXJyaWxsICA8amFzb25fbWVycmlsbEByZWRoYXQuY29tPgoKCSogY2FsbC5jIChqb3VzdCk6IE9ubHkgcHJlZmVyIGEgbm9uLWJ1aWx0aW4gY2FuZGlkYXRlIHRvIGEgYnVpbHRpbgoJb25lIGlmIHRoZXkgaGF2ZSB0aGUgc2FtZSBzaWduYXR1cmUuCgoJKiBjdnQuYyAoYnVpbGRfdXBfcmVmZXJlbmNlKTogVGFrZSBERUNMIHBhcm0uICBDaGVjayBUUkVFX1NUQVRJQyBvbgoJaXQgcmF0aGVyIHRoYW4gdG9wbGV2ZWxfYmluZGluZ3NfcC4gIEdpdmUgaXQgYSBtYW5nbGVkIG5hbWUgaWYgc3RhdGljLgoJKGNvbnZlcnRfdG9fcmVmZXJlbmNlKTogQWRqdXN0LgoJKiBkZWNsMi5jIChnZXRfdGVtcF9uYW1lKTogTG9zZS4KCSogbWFuZ2xlLmMgKG1hbmdsZV9yZWZfaW5pdF92YXJpYWJsZSk6IE5ldyBmbi4KCShtYW5nbGVfZ3VhcmRfdmFyaWFibGUpOiBTdHJpcCB0aGUgcmVmLWluaXQgaGVhZGVyLgoJKiBjcC10cmVlLmg6IEFkanVzdC4KCSogZGVjbC5jIChjcF9maW5pc2hfZGVjbCk6IEFkZCB0aGUgREVDTF9TVE1UIGFmdGVyIHByb2Nlc3NpbmcgdGhlCglpbml0aWFsaXplci4KCShncm9rX3JlZmVyZW5jZV9pbml0KTogQWx3YXlzIHVzZSBERUNMX0lOSVRJQUwuCgoyMDAxLTA3LTI1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8zNDE2CgkqIGNhbGwuYyAoYnVpbGRfY29uZGl0aW9uYWxfZXhwcik6IFJlY2hlY2sgYXJncyBhZnRlcgoJY29udmVyc2lvbnMuCgkqIGNwLXRyZWUuaCAoYnVpbGRfY29uZGl0aW9uYWxfZXhwcik6IE1vdmUgdG8gY29ycmVjdCBmaWxlLgoJKiB0eXBlY2suYyAoZGVjYXlfY29udmVyc2lvbik6IERpYWdub3NlIGFueSB1bmtub3duIHR5cGVzCglyZWFjaGluZyBoZXJlLgoJKGJ1aWxkX2JpbmFyeV9vcCk6IERvbid0IGRvIGluaXRpYWwgZGVjYXkgb3IgZGVmYXVsdAoJY29udmVyc2lvbnMgb24gb3ZlcmxvYWRlZCBmdW5jdGlvbnMuCgkoYnVpbGRfc3RhdGljX2Nhc3QpOiBEb24ndCBkbyBhIGRlY2F5IGNvbnZlcnNpb24gaGVyZS4KCjIwMDEtMDctMjUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzM1NDMKCSogdHlwZWNrLmMgKGNvbmRpdGlvbl9jb252ZXJzaW9uKTogUmVzb2x2ZSBhbiBPRkZTRVRfUkVGLgoJKiBleHByLmMgKGNwbHVzX2V4cGFuZF9leHByKTogQW4gT0ZGU0VUX1JFRiBzaG91bGQgbmV2ZXIgZ2V0IGhlcmUuCgoyMDAxLTA3LTI1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoYnVpbGRfdnRibF9vcl92YmFzZV9maWVsZCk6IFJlbW92ZSwgbW92ZSBpbnRvIC4uLgoJKGNyZWF0ZV92dGJsX3B0cik6IC4uLiBoZXJlLgoKMjAwMS0wNy0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3ZiYXNlX29mZnNldF92YnRsX2VudHJpZXMpOiBMb29rIGZvcgoJbm9uLXByaW1hcnkgYmFzZSBvZiB3aGljaCB3ZSBhcmUgYSBzdWIgdnRhYmxlLgoKMjAwMS0wNy0yNCAgUGhpbCBFZHdhcmRzICA8cG1lQHNvdXJjZXMucmVkaGF0LmNvbT4KCgkqIHNlbWFudGljcy5jIChmaW5pc2hfdGhpc19leHByKTogIFJlbW92ZSB1bnVzZWQgY29kZS4KCjIwMDEtMDctMjQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJU2ltcGxpZnkgcnR0aSwgbm93IHdlJ3ZlIG9ubHkgb25lIEFCSS4KCSogY3AtdHJlZS5oIChjcF90cmVlX2luZGV4KTogUmVtb3ZlIENQVElfVElORk9fREVDTF9JRCwKCUNQVElfVElORk9fVkFSX0lELgoJKHRpbmZvX2RlY2xfaWQsIHRpbmZvX3Zhcl9pZCk6IFJlbW92ZS4KCShnZXRfdHlwZWlkXzEpOiBSZW1vdmUuCgkqIHJ0dGkuYwoJKGluaXRfcnR0aV9wcm9jZXNzaW5nKTogUmVtb3ZlIHRpbmZvX2RlY2xfaWQgJiB0aW5mb192YXJfaWQuCgkodHlwZWlkX29rX3ApOiBOZXcgZnVuY3Rpb24uCgkoYnVpbGRfdHlwZV9pZCk6IENhbGwgdHlwZWlkX29rX3AuIERvbid0IGNhbGwgdGluZm9fZnJvbV9kZWNsLgoJKGdldF90aW5mb19kZWNsKTogUmVtb3ZlIG9sZCBhYmkgZG9jdW1lbnRhdGlvbi4KCSh0aW5mb19mcm9tX2RlY2wpOiBSZW1vdmUuCgkoZ2V0X3R5cGVfaWQpOiBDYWxsIHR5cGVpZF9va19wLiBBYnNvcmIgZ2V0X3R5cGVpZF8xLgoJKGdldF90eXBlaWRfMSk6IFJlbW92ZS4KCShnZXRfYmFzZV9vZmZzZXQpOiBSZW1vdmUuCgkoc3ludGhlc2l6ZV90aW5mb192YXIpOiBBYnNvcmIgZ2V0X2Jhc2Vfb2Zmc2V0LgoJKGNyZWF0ZV9yZWFsX3RpbmZvX3Zhcik6IERvbid0IHVzZSB0aW5mb19kZWNsX2lkLgoKMjAwMS0wNy0yMyAgR3JhaGFtIFN0b3R0ICA8Z3JhaGFtc0ByZWRoYXQuY29tPgoKCSogY3AvY2xhc3MuYyAodHlwZV9yZXF1aXJlc19hcnJheV9jb29raWUpOiBGaXggdXNlIG9mIHVuaW5pdGlhbGl6ZWQKCXZhcmlhYmxlIGhhc190d29fYXJndW1lbnRfZGVsZXRlX3AuCgoyMDAxLTA3LTIxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVJlbW92ZSBmbGFnX3Z0YWJsZV90aHVuay4gSXQgaXMgYWx3YXlzIG9uIGZvciB0aGUgMy4wIEFCSS4KCSogY3AtdHJlZS5oIChDUFRJX0RFTFRBMl9JREVOVElGSUVSKTogUmVtb3ZlLgoJKENQVElfSU5ERVhfSURFTlRJRklFUik6IFJlbW92ZS4KCShDUFRfUEZOX09SX0RFTFRBMl9JREVOVElGSUVSKTogUmVtb3ZlLgoJKGRlbHRhMl9pZGVudGlmaWVyKTogUmVtb3ZlLgoJKGluZGV4X2lkZW50aWZpZXIpOiBSZW1vdmUuCgkocGZuX29yX2RlbHRhMl9pZGVudGlmaWVyKTogUmVtb3ZlLgoJKGZsYWdfdnRhYmxlX3RodW5rcyk6IFJlbW92ZS4KCShWVEFCTEVfREVMVEEyX05BTUUpOiBSZW1vdmUuCgkoVlRBQkxFX0lOREVYX05BTUUpOiBSZW1vdmUuCgkoRk5BRERSX0ZST01fVlRBQkxFX0VOVFJZKTogQWRqdXN0LgoJKHZmdW5jX3B0cl90eXBlX25vZGUpOiBBZGp1c3QuCgkoVlRBQkxFX05BTUVfUFJFRklYKTogQWRqdXN0LgoJKGJ1aWxkX3Zmbl9yZWYpOiBMb3NlIGZpcnN0IHBhcmFtZXRlci4KCShmaXh1cF9hbGxfdmlydHVhbF91cGNhc3Rfb2Zmc2V0cyk6IFJlbW92ZS4KCSogZGVjbC5jIChpbml0aWFsaXplX3ByZWRlZmluZWRfaWRlbnRpZmllcnMpOiBSZW1vdmUKCWRlbHRhMl9pZGVudGlmaWVyLCBpbmRleF9pZGVudGlmaWVyLCBwZm5fb3JfZGVsdGEyX2lkZW50aWZpZXIuCgkoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBSZW1vdmUgbm8tdnRhYmxlLXRodW5rIGNvZGUuCgkqIGRlY2wyLmMgKGZsYWdfdnRhYmxlX3RodW5rcyk6IFJlbW92ZS4KCShtYXJrX3Z0YWJsZV9lbnRyaWVzKTogUmVtb3ZlIG5vLXZ0YWJsZS10aHVuayBjb2RlLgoJKiBlcnJvci5jIChkdW1wX2RlY2wpOiBSZW1vdmUgbm8tdnRhYmxlLXRodW5rIGNvZGUuCgkoZHVtcF9leHByKTogQWRqdXN0IHB0ciB0byBtZW1iZXIgZnVuY3Rpb24gY29kZS4KCSogaW5pdC5jIChpbml0aWFsaXplX3Z0YWJsZV9wdHJzKTogUmVtb3ZlIG5vLXZ0YWJsZS10aHVuawoJY29kZS4KCSogcnR0aS5jIChidWlsZF9oZWFkb2YpOiBSZW1vdmUgbm8tdnRhYmxlLXRodW5rIGNvZGUuCgkoZ2V0X3RpbmZvX2RlY2xfZHluYW1pYyk6IEFkanVzdCBidWlsZF92Zm5fcmVmIGNhbGwuCgkqIHNlYXJjaC5jIChnZXRfYmFzZV9kaXN0YW5jZSk6IFJlbW92ZSBleHBhbmRfdXBjYXN0X2ZpeHVwcyBjYXNlLgoJKHZpcnR1YWxfY29udGV4dCkgUmVtb3ZlLgoJKGV4cGFuZF91cGNhc3RfZml4dXBzKTogUmVtb3ZlLgoJKGZpeHVwX3ZpcnR1YWxfdXBjYXN0X29mZnNldHMpOiBSZW1vdmUuCgkoZml4dXBfYWxsX3ZpcnR1YWxfdXBjYXN0X29mZnNldHMpOiBSZW1vdmUuCgkqIHR5cGVjay5jIChnZXRfbWVtYmVyX2Z1bmN0aW9uX2Zyb21fcHRyZnVuYyk6IFJlbW92ZQoJbm8tdnRhYmxlLXRodW5rIGNvZGUuCgkqIGNhbGwuYyAoYnVpbGRfb3Zlcl9jYWxsKTogQWRqdXN0IGNhbGwgdG8gYnVpbGRfdmZuX3JlZi4KCSogY2xhc3MuYyAoYnVpbGRfdmZuX3JlZik6IExvc2UgZmlyc3QgcGFyYW1ldGVyLiBSZW1vdmUKCW5vLXZ0YWJsZS10aHVuayBjb2RlLgoJKGJ1aWxkX3J0dGlfdnRibF9lbnRyaWVzKTogUmVtb3ZlIG5vLXZ0YWJsZS10aHVuayBjb2RlLgoJKGJ1aWxkX3Z0YWJsZV9lbnRyeSk6IFJlbW92ZSBuby12dGFibGUtdGh1bmsgY29kZS4KCjIwMDEtMDctMjAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUmVtb3ZlIG9sZC1hYmkgcmVtbmFudHMuIFJlbW92ZSBjb21tZW50cyBhYm91dCBvbGQgYWJpCgliZWhhdmlvci4gUmVtb3ZlIHJlZmVyZW5jZXMgdG8gJ25ldy1hYmknIGluIGNvbW1lbnRzLgoJKiBjcC10cmVlLmg6IEFkanVzdCBjb21tZW50cy4KCSh2YmFzZV9vZmZzZXRzX2luX3Z0YWJsZV9wKTogRGVsZXRlLgoJKHZjYWxsX29mZnNldHNfaW5fdnRhYmxlX3ApOiBEZWxldGUuCgkodnB0cnNfcHJlc2VudF9ldmVyeXdoZXJlX3ApOiBEZWxldGUuCgkoYWxsX292ZXJyaWRkZW5fdmZ1bnNfaW5fdnRhYmxlc19wKTogRGVsZXRlLgoJKG1lcmdlX3ByaW1hcnlfYW5kX3NlY29uZGFyeV92dGFibGVzX3ApOiBEZWxldGUuCgkoVFlQRV9DT05UQUlOU19WUFRSX1ApOiBBZGp1c3QuCgkoVlRUX05BTUVfUFJFRklYKTogUmVtb3ZlLgoJKENUT1JfVlRCTF9OQU1FX1BSRUZJWCk6IFJlbW92ZS4KCShpbml0X3ZiYXNlX3BvaW50ZXJzKTogUmVtb3ZlLgoJKiBjbGFzcy5jOiBBZGp1c3QgY29tZW50cy4KCShidWlsZF92YmFzZV9wb2ludGVyX2ZpZWxkcyk6IERlbGV0ZS4KCShidWlsZF92YmFzZV9wb2ludGVyKTogUmVtb3ZlIG9sZC1hYmkgY29kZS4KCShidWlsZF9zZWNvbmRhcnlfdnRhYmxlKTogTGlrZXdpc2UuCgkobW9kaWZ5X2FsbF92dGFibGVzKTogTGlrZXdpc2UuCgkoY3JlYXRlX3Z0YWJsZV9wdHIpOiBMaWtld2lzZS4KCShsYXlvdXRfY2xhc3NfdHlwZSk6IExpa2V3aXNlLgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IExpa2V3aXNlLgoJKGZpbmlzaF92dGJscyk6IExpa2V3aXNlLgoJKGRmc19maW5pc2hfdnRibHMpOiBEZWxldGUuCgkoYnVpbGRfdmJhc2Vfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IFJlbW92ZSBvbGQtYWJpIGNvZGUuCgkqIGN2dC5jOiBBZGp1c3QgY29tbWVudHMuCgkqIGRlY2wuYzogQWRqdXN0IGNvbW1lbnRzLgoJKiBkZWNsMi5jOiBBZGp1c3QgY29tbWVudHMuCgkqIGluaXQuYzogQWRqdXN0IGNvbW1lbnRzLgoJKGNvbnN0cnVjdF92aXJ0dWFsX2Jhc2VzKTogUmVtb3ZlIG9sZC1hYmkgY29kZS4KCSogbGFuZy1zcGVjcy5oOiBSZW1vdmUgLWZuby1uZXctYWJpLgoJKiBtYW5nbGUuYzogQWRqdXN0IGNvbW1lbnRzLgoJKiBydHRpLmM6IEFkanVzdCBjb21tZW50cy4KCShnZXRfYmFzZV9vZmZzZXQpOiBSZW1vdmUgb2xkLWFiaS1jb2RlLgoJKiBzZWFyY2guYzogQWRqdXN0IGNvbW1lbnRzLgoJKGRmc19pbml0X3ZiYXNlX3BvaW50ZXJzKTogUmVtb3ZlLgoJKGRmc192dGFibGVfcGF0aF91bm1hcmspOiBSZW1vdmUuCgkoaW5pdF92YmFzZV9wb2ludGVycyk6IFJlbW92ZS4KCSogc2VtYW50aWNzLmM6IEFkanVzdCBjb21tZW50cy4KCShlbWl0X2Fzc29jaWF0ZWRfdGh1bmtzKTogUmVtb3ZlIG9sZC1hYmkgY29kZS4KCSogdHlwZWNrLmM6IEFkanVzdCBjb21tZW50cy4KCjIwMDEtMDctMjAgIERhbmllbCBCZXJsaW4gIDxkYW5AY2dzb2Z0d2FyZS5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKGNwL29wdGltaXplLm8pOiBEZXBlbmQgb24gJChQQVJBTVNfSCksIG5vdAoJcGFyYW1zLmguCgoyMDAxLTA3LTE5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdF9hbm9uKTogRm9yYmlkIG5lc3RlZCBjbGFzc2VzLgoKMjAwMS0wNy0xOSAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogZGVjbDIuYzogRG9uJ3QgaW5jbHVkZSBkd2FyZm91dC5oIGFuZCBkd2FyZjJvdXQuaC4KCSogb3B0aW1pemUuYzogSW5jbHVkZSBkZWJ1Zy5oLgoJKG1heWJlX2Nsb25lX2JvZHkpOiBVc2UgZGVidWcgaG9vay4KCSogc2VtYW50aWNzLmM6IEluY2x1ZGUgZGVidWcuaC4KCShleHBhbmRfYm9keSk6IFVzZSBkZWJ1ZyBob29rLgoKMjAwMS0wNy0xOSAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogc3Bldy5jIChyZWFkX3Rva2VuLCB5eWVycm9yKTogUmVtb3ZlIENQUF9JTlQsIENQUF9GTE9BVCBjYXNlcy4KCjIwMDEtMDctMTggIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jICh0eXBlX3JlcXVpcmVzX2FycmF5X2Nvb2tpZSk6IE5ldyBmdW5jdGlvbi4KCShjaGVja19tZXRob2RzKTogRG9uJ3QgdHJ5IHRvIGZpZ3VyZSBvdXQgd2hldGhlciB0aGUgdHlwZSBuZWVkcyBhCgljb29raWUgaGVyZS4KCShjaGVja19iYXNlc19hbmRfbWVtYmVycyk6IFNldCBUWVBFX1ZFQ19ORVdfVVNFU19DT09LSUUgaGVyZS4KCSogY3AtdHJlZS5oIChUWVBFX1ZFQ19ERUxFVEVfVEFLRVNfU0laRSk6IFJlbW92ZS4KCShUWVBFX1ZFQ19ORVdfVVNFU19DT09LSUUpOiBSZWltcGxlbWVudC4KCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBEb24ndCBzZXQKCVRZUEVfVkVDX0RFTEVURV9UQUtFU19TSVpFLgoJKiBORVdTOiBEb2N1bWVudCBBQkkgY2hhbmdlcyBmcm9tIEdDQyAzLjAuCgoyMDAxLTA3LTE4ICBYYXZpZXIgRGVsYWNvdXIgPHhhdmllckBmbWF1ZGlvLm5ldD4sCgkgICAgR2VyYWxkIFBmZWlmZXIgIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgoKCSogTkVXUyAoQ2hhbmdlcyBpbiBHQ0MgMy4wKTogRml4IHR5cG8uCgoyMDAxLTA3LTEzICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBkZWNsMi5jIChjcGx1c19kZWNsX2F0dHJpYnV0ZXMpOiBUYWtlIGEgcG9pbnRlciB0byB0aGUgbm9kZSB0bwoJd2hpY2ggYXR0cmlidXRlcyBhcmUgdG8gYmUgYXR0YWNoZWQsIGFuZCBhIGZsYWdzIGFyZ3VtZW50LiAgVXBkYXRlCgljYWxsIHRvIGRlY2xfYXR0cmlidXRlcy4KCShncm9rZmllbGQpOiBVcGRhdGUgY2FsbCB0byBkZWNsX2F0dHJpYnV0ZXMuCgkqIGNsYXNzLmMgKGZpbmlzaF9zdHJ1Y3QpOiBVcGRhdGUgY2FsbCB0byBjcGx1c19kZWNsX2F0dHJpYnV0ZXMuCgkqIGNwLXRyZWUuaCAoY3BsdXNfZGVjbF9hdHRyaWJ1dGVzKTogVXBkYXRlIHByb3RvdHlwZS4KCSogZGVjbC5jIChzdGFydF9kZWNsLCBncm9rZGVjbGFyYXRvciwgc3RhcnRfZnVuY3Rpb24pOiBVcGRhdGUKCWNhbGxzIHRvIGRlY2xfYXR0cmlidXRlcyBhbmQgY3BsdXNfZGVjbF9hdHRyaWJ1dGVzLgoJKiBmcmllbmQuYyAoZG9fZnJpZW5kKTogVXBkYXRlIGNhbGwgdG8gY3BsdXNfZGVjbF9hdHRyaWJ1dGVzLgoJKiBwYXJzZS55IChwYXJzZV9iaXRmaWVsZCk6IFVwZGF0ZSBjYWxsIHRvIGNwbHVzX2RlY2xfYXR0cmlidXRlcy4KCjIwMDEtMDctMTIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKG1ha2VfcnRsX2Zvcl9ub25sb2NhbF9kZWNsKTogU2V0IERFQ0xfQ19IQVJEX1JFR0lTVEVSCglmb3IgYHJlZ2lzdGVyJyB2YXJpYWJsZXMgd2l0aCBhbiBhc20tc3BlY2lmaWNhdGlvbi4KCjIwMDEtMDctMTEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2FzbV9zdG10KTogTWFyayB0aGUgb3V0cHV0IG9wZXJhbmRzCgl0byBhbiBhc20gYWRkcmVzc2FibGUsIGlmIG5lY2Vzc2FyeS4KCjIwMDEtMDctMTEgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogUmV2ZXJ0IHRoaXMgY2hhbmdlIC0tIHRoZXJlIGlzIGEgc3VidGxlIGJ1Zy4KCglQUiBjKysvODAKCSogZGVjbC5jIChmaW5pc2hfZW51bSk6IE5ldyAiYXR0cmlidXRlcyIgYXJndW1lbnQ7IHBhc3MgaXQgdG8KCWNwbHVzX2RlY2xfYXR0cmlidXRlcy4gIFVzZSBhIG5hcnJvd2VyIHR5cGUgaWYgdGhlIGVudW0gaXMgcGFja2VkLgoJKiBjcC10cmVlLmggKGZpbmlzaF9lbnVtKTogQWRqdXN0IHByb3RvdHlwZS4KCSogcGFyc2UueSAoZW51bV9oZWFkKTogTmV3IG5vbi10ZXJtaW5hbC4KCShzdHJ1Y3RzcCk6IFVzZSBpdC4gRW51bXMgbm93IG1heSBiZSBwcmVjZWRlZCBvciBmb2xsb3dlZCBieQoJb3B0aW9uYWwgYXR0cmlidXRlcyAtLSBwYXNzIHRoZWlyIGNoYWluZWQgdHJlZSB0byBmaW5pc2hfZW51bSgpLgoJKiBwdC5jICh0c3Vic3RfZW51bSk6IFBhc3MgTlVMTF9UUkVFIGZvciB0aGUgbmV3IGFyZ3VtZW50LgoKMjAwMS0wNy0xMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKHRzdWJzdF9kZWNsKTogU2V0IERFQ0xfQ09OVEVYVCBmb3IgbmFtZXNwYWNlLXNjb3BlCgl2YXJpYWJsZXMuCgoyMDAxLTA3LTEwICBKYXNvbiBNZXJyaWxsICA8amFzb25fbWVycmlsbEByZWRoYXQuY29tPgoKCSogc2VtYW50aWNzLmMgKGNwX2V4cGFuZF9zdG10KTogRml4IGZvciBudWxsCgljdXJyZW50X2Z1bmN0aW9uX3JldHVybl92YWx1ZS4KCjIwMDEtMDctMTAgIEphbiB2YW4gTWFsZSAgPGphbi52YW5tYWxlQGZlbmsud2F1Lm5sPgoKCSogY2FsbC5jIChidWlsZF9vcF9kZWxldGVfY2FsbCk6IEluaXRpYWxpemUgZm4uCgkoY29udmVydF9saWtlX3JlYWwpOiBEZWxldGUgY29uZGl0aW9uYWwuCgkoam91c3QpOiBJbml0aWFsaXplICp3IGFuZCAqbC4KCSogY2xhc3MuYzogQWRkIHByb3RvdHlwZSBmb3IgYmluZm9fY3Rvcl92dGFibGUuCgkoZ2V0X3ByaW1hcnlfYmluZm8pOiBJbml0aWFsaXplIHJlc3VsdC4KCSogaW5pdC5jIChidWlsZF9qYXZhX2NsYXNzX3JlZik6IEluaXRpYWxpemUgbmFtZS4KCjIwMDEtMDctMDkgIEVyaWsgUm96ZW5kYWFsICA8ZGxyQGFjbS5vcmc+CgoJKiB0eXBlY2suYyAodW5hcnlfY29tcGxleF9sdmFsdWUpOiBEbyBub3QgZHVwbGljYXRlIHRoZQoJYXJndW1lbnQgdG8gbW9kaWZ5LCBwcmUtLCBvciBwb3N0LWluY3JlbWVudCB3aGVuIHVzZWQgYXMgYW4KCWx2YWx1ZSBhbmQgd2hlbiB0aGUgYXJndW1lbnQgaGFzIHNpZGUtZWZmZWN0cy4KCjIwMDEtMDctMDggIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGRlY2wuYyAoc3RhcnRfZGVjbCk6IERvbid0IGNhbGwgU0VUX0RFRkFVTFRfREVDTF9BVFRSSUJVVEVTLgoJKHN0YXJ0X2Z1bmN0aW9uKTogRG9uJ3QgY2FsbCBTRVRfREVGQVVMVF9ERUNMX0FUVFJJQlVURVMuICBDYWxsCgljcGx1c19kZWNsX2F0dHJpYnV0ZXMgZXZlbiBpZiBhdHRycyBpcyBOVUxMLgoJKiBmcmllbmQuYyAoZG9fZnJpZW5kKTogRG9uJ3QgY2FsbCBTRVRfREVGQVVMVF9ERUNMX0FUVFJJQlVURVMuCgoyMDAxLTA3LTA4ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKSwgZGVjbDIuYyAoY3BsdXNfZGVjbF9hdHRyaWJ1dGVzKTogVXBkYXRlCgljYWxscyB0byBkZWNsX2F0dHJpYnV0ZXMuCgoyMDAxLTA3LTA2ICBJcmEgUnViZW4gICA8aXJhQGFwcGxlLmNvbT4KCgkqIGNwLXRyZWUuZGVmIChURU1QTEFURV9ERUNMKTogVXBkYXRlIGNvbW1lbnQuIERFQ0xfUkVTVUxUIHNob3VsZAoJYmUgREVDTF9URU1QTEFURV9SRVNVTFQuCgoyMDAxLTA3LTA1ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNwLXRyZWUuaCAoY29weV90ZW1wbGF0ZV90ZW1wbGF0ZV9wYXJtKTogUmVuYW1lIHRvIC4uLgoJKGJpbmRfdGVtcGxhdGVfdGVtcGxhdGVfcGFybSk6IC4uLiBoZXJlLgoJKiB0cmVlLmMgKGNvcHlfdGVtcGxhdGVfdGVtcGxhdGVfcGFybSk6IFJlbmFtZSB0byAuLi4KCShiaW5kX3RlbXBsYXRlX3RlbXBsYXRlX3Bhcm0pOiAuLi4gaGVyZS4gIFJlbW92ZSB0aGUgY2FzZSB3aGVuCglORVdBUkdTIGlzIE5VTExfVFJFRS4KCShjb3B5X3RyZWVfcik6IERvbid0IGNvcHkgVEVNUExBVEVfVEVNUExBVEVfUEFSTSBhbmQKCUJPVU5EX1RFTVBMQVRFX1RFTVBMQVRFX1BBUk0uCgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IEFkanVzdC4KCjIwMDEtMDctMDUgIEphc29uIE1lcnJpbGwgIDxqYXNvbl9tZXJyaWxsQHJlZGhhdC5jb20+CgoJKiBjdnQuYyAoY29udmVydF9sdmFsdWUpOiBOZXcgZm4uCgkqIGNwLXRyZWUuaDogRGVjbGFyZSBpdC4KCSogbWV0aG9kLmMgKGRvX2J1aWxkX2Fzc2lnbl9yZWYpOiBVc2UgaXQuCgkoZG9fYnVpbGRfY29weV9jb25zdHJ1Y3Rvcik6IENvbnZlcnQgcGFybSB0byBiYXNlIHR5cGVzCgliZWZvcmUgY2FsbGluZyBiYXNlIGNvbnN0cnVjdG9ycy4KCgkqIHR5cGVjay5jIChjaGVja19yZXR1cm5fZXhwcik6IENoZWNrIERFQ0xfQUxJR04gaW5zdGVhZCBvZgoJREVDTF9VU0VSX0FMSUdOLiAgQ2hlY2sgZmxhZ19lbGlkZV9jb25zdHJ1Y3RvcnMgaW5zdGVhZCBvZgoJb3B0aW1pemUuCgkqIHNlbWFudGljcy5jIChjcF9leHBhbmRfc3RtdCk6IERvbid0IGRlc3Ryb3kgdGhlIG5hbWVkIHJldHVybiB2YWx1ZS4KCjIwMDEtMDctMDIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBvcHRpbWl6ZS5jIChvcHRpbWl6ZV9pbmxpbmVfY2FsbHMpOiBOZXcgZnVuY3Rpb24sIGJyb2tlbiBvdXQKCW9mIC4uLgoJKG9wdGltaXplX2Z1bmN0aW9uKTogLi4uIGhlcmUuIENhbGwgaXQuIERvbid0IGlubGluZSBpZiBpdCBpcwoJYSB0aHVuay4KCShkdW1wX2Z1bmN0aW9uKTogUHJpbnQgbmFtZSBvZiBkdW1wIGZsYWcgY2F1c2luZyB0aGlzIGR1bXAuCgkqIHNlbWFudGljcy5jIChleHBhbmRfYm9keSk6IE1vdmUgdGh1bmsgaW5saW5lIGNoZWNrIHRvCglvcHRpbWl6ZV9mdW5jdGlvbi4KCjIwMDEtMDYtMjkgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIHR5cGVjay5jIChDT01QX1RZUEVfQVRUUklCVVRFUyk6IERvbid0IGRlZmluZS4KCShjb21wdHlwZXMpOiBVc2UgdGFyZ2V0LmNvbXBfdHlwZV9hdHRyaWJ1dGVzLgoKMjAwMS0wNi0yOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZmxhZ19kdW1wX2NsYXNzX2xheW91dCk6IFJlbW92ZSB1bm5lZWRlZCBkZWNsYXJhdGlvbi4KCjIwMDEtMDYtMjggIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAbWVybGluLmNvZGVzb3VyY2VyeS5jb20+CgoJKiBlcnJvci5jIChsYW5nX3ByaW50X2Vycm9yX2Z1bmN0aW9uKTogQWRkIGEgYGRpYWdub3N0aWNfY29udGV4dCAqJwoJcGFyYW1ldGVyLiBUd2Vhay4KCjIwMDEtMDYtMjcgIE5laWwgQm9vdGggIDxuZWlsQGNhdC5kYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBkZWNsMi5jIChpbXBvcnRfZXhwb3J0X2NsYXNzKTogVXBkYXRlLgoKMjAwMS0wNi0yNiAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogZXJyb3IuYyAoaW5pdF9lcnJvcik6IEFkanVzdCBzZXR0aW5ncy4KCjIwMDEtMDYtMjYgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmMgKGluaXRfZXJyb3IpOiBBZGp1c3Qgc2V0dGluZ3MuCgoyMDAxLTA2LTE5ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBleGNlcHQuYyAoaW5pdGlhbGl6ZV9oYW5kbGVyX3Bhcm0pOiBFeHBlY3QgX19jeGFfYmVnaW5fY2F0Y2ggdG8KCXJldHVybiBwb2ludGVycyB0byBkYXRhIG1lbWJlcnMgYnkgcmVmZXJlbmNlIHJhdGhlciB0aGFuIGJ5IHZhbHVlLgoKMjAwMS0wNi0xOCAgSmFzb24gTWVycmlsbCAgPGphc29uX21lcnJpbGxAcmVkaGF0LmNvbT4KCglJbXBsZW1lbnQgdGhlIE5hbWVkIFJldHVybiBWYWx1ZSBvcHRpbWl6YXRpb24uCgkqIGNwLXRyZWUuaCAoc3RydWN0IGNwX2xhbmd1YWdlX2Z1bmN0aW9uKTogQWRkIHhfcmV0dXJuX3ZhbHVlLgoJKGN1cnJlbnRfZnVuY3Rpb25fcmV0dXJuX3ZhbHVlKTogTm93IGEgbWFjcm8uCgkqIGRlY2wuYzogRG9uJ3QgZGVmaW5lIGl0LgoJKGRlZmluZV9sYWJlbCwgZmluaXNoX2Nhc2VfbGFiZWwpOiBEb24ndCBjbGVhciBpdC4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IERvbid0IHJlZ2lzdGVyIGl0IHdpdGggR0MuCgkqIHNlbWFudGljcy5jIChnZW5ydGxfZmluaXNoX2Z1bmN0aW9uKTogRG9uJ3QgY2hlY2sgaXQgZm9yCglub19yZXR1cm5fbGFiZWwuICBDb3B5IHRoZSBSVEwgZnJvbSB0aGUgcmV0dXJuIHZhbHVlIHRvCgljdXJyZW50X2Z1bmN0aW9uX3JldHVybl92YWx1ZSBhbmQgd2FsaywgY2FsbGluZy4uLgoJKG51bGxpZnlfcmV0dXJuc19yKTogLi4udGhpcyBuZXcgZm4uCgkqIHR5cGVjay5jIChjaGVja19yZXR1cm5fZXhwcik6IFNldCBjdXJyZW50X2Z1bmN0aW9uX3JldHVybl92YWx1ZS4KCjIwMDEtMDYtMTUgIEphc29uIE1lcnJpbGwgIDxqYXNvbl9tZXJyaWxsQHJlZGhhdC5jb20+CgoJKiBjbGFzcy5jIChkZnNfYWNjdW11bGF0ZV92dGJsX2luaXRzKTogSnVzdCBwb2ludCB0byB0aGUgYmFzZSB3ZSdyZQoJc2hhcmluZyBhIGN0b3IgdnRhYmxlIHdpdGguICBNZXJnZSBjb2RlIGZvciBjYXNlcyAxIGFuZCAyLgoJKGJpbmZvX2N0b3JfdnRhYmxlKTogTmV3IGZuLgoJKGJ1aWxkX3Z0dF9pbml0cywgZGZzX2J1aWxkX3NlY29uZGFyeV92cHRyX3Z0dF9pbml0cyk6IFVzZSBpdC4KCjIwMDEtMDYtMTQgIEphc29uIE1lcnJpbGwgIDxqYXNvbl9tZXJyaWxsQHJlZGhhdC5jb20+CgoJKiBjbGFzcy5jIChkZnNfZmluZF9maW5hbF9vdmVycmlkZXIpOiBGaXggbG9naWMuCgoJKiBjbGFzcy5jICh1cGRhdGVfdnRhYmxlX2VudHJ5X2Zvcl9mbik6IFVuY29tbWVudCBvcHRpbWl6YXRpb24gdG8gdXNlCgl2aXJ0dWFsIHRodW5rIGluc3RlYWQgb2Ygbm9uLXZpcnR1YWwuCgkoZ2V0X21hdGNoaW5nX3ZpcnR1YWwpOiBVbmNvbW1lbnQuCgoJKiBwdC5jICh1bmlmeSk6IERvbid0IHJlY3Vyc2UgYmV0d2VlbiB0aGUgUE9JTlRFUl9UWVBFIGFuZCB0aGUKCU9GRlNFVF9UWVBFLiAgSWYgd2UncmUgYWRkaW5nIGN2LXF1YWxzLCB0aGUgZXh0cmEgb25lcyB3b3VsZCBiZSBvbgoJUEFSTSwgbm90IEFSRy4KCjIwMDEtMDYtMTQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChkZnNfYWNjdW11bGF0ZV92dGJsX2luaXRzKTogRm9yIGNhc2UgMiAmIDMsIG1ha2Ugc3VyZQoJd2UndmUgbm90IGVtZXJnZWQgZnJvbSB0aGUgaGllcmFyY2h5IG9mIFJUVElfQklORk8gb24gcmVhY2hpbmcKCWEgbm9uLXZpcnR1YWwgYmFzZS4KCjIwMDEtMDYtMTMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBORVdTOiBVcGRhdGUgcmVsZWFzZSBudW1iZXIuCgoyMDAxLTA2LTEyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8zMTMwLCBjKysvMzEzMSwgYysrLzMxMzIKCSogY3AtdHJlZS5oIChCSU5GT19VTlNIQVJFRF9NQVJLRUQpOiBOZXcgI2RlZmluZS4KCSogY2xhc3MuYyAoZm9yY2VfY2Fub25pY2FsX2JpbmZvX3IpOiBNb3ZlCglCSU5GT19VTlNIQVJFRF9NQVJLRUQsIEJJTkZPX0xPU1RfUFJJTUFSWV9QLiBEb24ndCBtb3ZlCgl2aXJ0dWFsIGJhc2VzIHVubGVzcyB0aGV5J3JlIHByaW1hcnkgYW5kIHdoYXQgdGhleSdyZSBwcmltYXJ5Cgl0b28gaGFzIGJlZW4gbW92ZWQuCgkoZGZzX3Vuc2hhcmVkX3ZpcnR1YWxfYmFzZXMpOiBVc2UgQklORk9fVU5TSEFSRURfTUFSS0VELiBDb3BlCgl3aXRoIG1vcmFsbHkgdmlydHVhbCBiYXNlcy4gRHVwbGljYXRlIEJJTkZPX0xPU1RfUFJJTUFSWV9QIGFuZAoJQklORk9fUFJJTUFSWV9CQVNFX09GLiBDbGVhciBCSU5GT19WVEFCTEUgZm9yIGFsbCBidXQgdGhlIG1vc3QKCWRlcml2ZWQgYmluZm8uCgkobWFya19wcmltYXJ5X2Jhc2VzKTogVXNlIEJJTkZPX1VOU0hBUkVEX01BUktFRC4KCShsYXlvdXRfbm9uZW1wdHlfYmFzZV9vcl9maWVsZCk6IEFkZCBtb3N0IGRlcml2ZWQgdHlwZQoJcGFyYW1ldGVyLiBBZGp1c3QuCgkobGF5b3V0X2VtcHR5X2Jhc2UpOiBMaWtld2lzZS4KCShidWlsZF9iYXNlX2ZpZWxkKTogTGlrZXdpc2UuCgkoYnVpbGRfYmFzZV9maWVsZHMpOiBMaWtld2lzZS4KCShwcm9wYWdhdGVfYmluZm9fb2Zmc2V0cyk6IEFkZCBtb3N0IGRlcml2ZWQgdHlwZQoJcGFyYW1ldGVyLiBTa2lwIG5vbiBjYW5vbmljYWwgdmlydHVhbCBiYXNlcyB0b28uCgkoZGZzX3NldF9vZmZzZXRfZm9yX3Vuc2hhcmVkX3ZiYXNlcyk6IERvbid0IHNraXAgcHJpbWFyeQoJYmFzZXMuIERvIHNraXAgY2Fub25pY2FsIGJhc2VzLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogQWRqdXN0LgoJKGxheW91dF9jbGFzc190eXBlKTogQWRqdXN0LgoJKGRmc19nZXRfcHJpbWFyeV9iaW5mbyk6IEJ1aWxkIGxpc3Qgb2YgdmlydHVhbCBwcmltYXJ5IGJhc2UKCWNhbmRpZGF0ZXMuCgkoZ2V0X3ByaW1hcnlfYmluZm8pOiBDaGVjayB0aGF0IHRoZSBzaGFyZWQgdmlydHVhbCBwcmltYXJ5CgliYXNlIGNhbmRpZGF0ZSB3YXMgZm91bmQgZmlyc3QuCgkoYWNjdW11bGF0ZV92dGJsX2luaXRzKTogRG9uJ3QgZG8gYW55dGhpbmcgZm9yIG5vbi12cHRyCgljb250YWluaW5nIGJpbmZvcy4gRm9yIGNhc2UgMSBwcmltYXJ5IHZpcnR1YWwgYmFzZXMsIGtlZXAKCWNoZWNraW5nIHRoYXQgd2UndmUgbm90IGVtZXJnZWQgZnJvbSB0aGUgaGllcmFyY2h5IG9mIFJUVElfQklORk8uCgoyMDAxLTA2LTEyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8zMDg5CgkqIGNsYXNzLmMgKGRmc19hY2N1bXVsYXRlX3Z0YmxfaW5pdHMpOiBBbHdheXMgd2FsayBkb3duIHRoZQoJaGllcmFyY2h5IGxvb2tpbmcgZm9yIHByaW1hcnkgYmFzZXMgZm9yIGEgY3RvcgoJdnRhYmxlLiBSZWN1cnNpdmVseSBjYWxsIG9uZXNlbGYsIGlmIHdlIG1lZXQgb3VyIHByaW1hcnkgdmlhCgl0aGlzIHJvdXRlIGFuZCBoYXZlbid0IG1ldCBpdCB5ZXQgdmlhIGluaGVyaXRhbmNlIGdyYXBoIG9yZGVyLgoKMjAwMS0wNi0xMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxhbmctb3B0aW9ucy5oOiBFbWl0IGRvY3VtZW50YXRpb24gZm9yIC1mbm8taG9ub3Itc3RkLCBub3QKCS1maG9ub3Itc3RkLgoKMjAwMS0wNi0xMCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiB0eXBlY2suYyAoZ2V0X21lbWJlcl9mdW5jdGlvbl9mcm9tX3B0cmZ1bmMpIFt2Yml0X2luX2RlbHRhXToKCURvbid0IGNsb2JiZXIgZGVsdGEuCgkoZXhwYW5kX3B0cm1lbWZ1bmNfY3N0KSBbcHRybWVtZnVuY192Yml0X2luX2RlbHRhXTogQWRqdXN0IHBmbi4KCjIwMDEtMDYtMTAgIE1hcmsgTWl0Y2hlbGwgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKGNwL2NhbGwubyk6IERlcGVuZCBvbiBkaWFnbm9zdGljLmgKCShjcC90eXBlY2subyk6IERlcGVuZCBvbiBkaWFnbm9zdGljLmgKCShjcC90eXBlY2syLm8pOiBEZXBlbmQgb24gZGlhZ25vc3RpYy5oCgkoY3AvcmVwby5vKTogRGVwZW5kIG9uIGRpZ25vc3RpYy5oCgkqIHR5cGVjay5jOiAjaW5jbHVkZSBkaWFnbm9zdGljLmgKCShjb252ZXJ0X2Zvcl9pbml0aWFsaXphdGlvbik6IFJlbW92ZSBleHRlcm4gZGVjbGFyYXRpb24gZm9yCgl3YXJuaW5nY291bnQgYW5kIGVycm9yY291bnQuCgoJKiBjYWxsLmM6ICNpbmNsdWRlIGRpYWdub3N0aWMuaAoJKGNvbnZlcnRfbGlrZV9yZWFsKTogUmVtb3ZlIGV4dGVybiBkZWNsYXJhdGlvbiBmb3Igd2FybmluY291bnQgYW5kCgllcnJvcmNvdW50LgoKCSogcmVwby5jOiAjaW5jbHVkZSBkaWFnbm9zdGljLmgKCSogdHlwZWNrMi5jOiAjaW5jbHVkZSBkaWFnbm9zdGljLmgKCjIwMDEtMDYtMDggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IEZpeCBERUNMX1RFTVBMQVRFX1JFU1VMVCB0aGlua28KCWluIHByZXZpb3VzIGNoYW5nZS4KCjIwMDEtMDYtMDggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzI5MjkKCSogZnJpZW5kLmMgKGRvX2ZyaWVuZCk6IFVzZSBwdXNoX2RlY2xfbmFtZXNwYWNlIGZvciBjbGFzc2VzIGF0CgluYW1lc3BhY2Ugc2NvcGUuCgoyMDAxLTA2LTA4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoJICAgIEphc29uIE1lcnJpbGwgPGphc29uX21lcnJpbGxAcmVkaGF0LmNvbT4KCglQUiBjKysvMzA2MQoJKiBjbGFzcy5jIChidWlsZF9zZWNvbmRhcnlfdnRhYmxlKTogVXNlIGFzc2VydCwgcmF0aGVyIHRoYW4gYW4gZXJyb3IKCW1lc3NhZ2UuCgkoZGZzX2ZpeHVwX2JpbmZvX3Z0YmxzKTogQklORk9fVlRBQkxFIG1pZ2h0IGJlIE5VTEwuCgkoZGZzX2FjY3VtdWxhdGVfdnRibF9pbml0cyk6IEEgbG9zdCBwcmltYXJ5IHZpcnR1YWwgYmFzZSBtYXkKCWJlIGJldHdlZW4gT1JJR19CSU5GTyBhbmQgUlRUSV9CSU5GTywgYnV0IG5laXRoZXIgb2YgdGhlbS4KCURvbid0IHNldCBCSU5GT19WVEFCTEUgZm9yIGEgcHJpbWFyeSB2aXJ0dWFsIGJhc2UuCgoyMDAxLTA2LTA3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBVcGRhdGUgc291cmNlIHBvc2l0aW9uIGluZm9ybWF0aW9uCgl3aGVuIGEgdGVtcGxhdGUgZnVuY3Rpb24gaXMgZGVmaW5lZC4KCjIwMDEtMDYtMDcgIFBoaWwgRWR3YXJkcyAgPHBtZUBzb3VyY2VzLnJlZGhhdC5jb20+CgoJKiBsYW5nLXNwZWNzLmg6ICBNb3ZlIC1EX0dOVV9TT1VSQ0UgdG8gY29uZmlnL2xpbnV4LmguCgoyMDAxLTA2LTA3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8yOTE0CgkqIGRlY2wuYyAocHVzaHRhZyk6IERvbid0IHB1c2ggaW50byBhIGNvbXBsZXRlIHR5cGUncyBzY29wZS4KCjIwMDEtMDYtMDYgIEphc29uIE1lcnJpbGwgIDxqYXNvbl9tZXJyaWxsQHJlZGhhdC5jb20+CgoJKiBjcC10cmVlLmggKFRIVU5LX0dFTkVSQVRFX1dJVEhfVlRBQkxFX1ApOiBMb3NlLgoJKHN0cnVjdCBsYW5nX2RlY2xfZmxhZ3MpOiBMb3NlIGdlbmVyYXRlX3dpdGhfdnRhYmxlX3AuCgkoQlZfR0VORVJBVEVfVEhVTktfV0lUSF9WVEFCTEVfUCk6IExvc2UuCgkqIGNsYXNzLmMgKGNvcHlfdmlydHVhbHMpOiBBZGp1c3QuCgkqIGRlY2wyLmMgKG1hcmtfdnRhYmxlX2VudHJpZXMpOiBBZGp1c3QuCgkqIG1ldGhvZC5jIChtYWtlX3RodW5rLCBidWlsZF92dGFibGVfZW50cnkpOiBBZGp1c3QuCgkqIGNsYXNzLmMgKHVwZGF0ZV92dGFibGVfZW50cnlfZm9yX2ZuKTogT25seSBsb29rIGFzIGZhciBhcyB0aGUKCWZpcnN0IGRlZmluaW5nIGNsYXNzLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBQdXQgbm90aGluZyBpbiB0aGUgc2xvdCBmb3IgYSBmdW5jdGlvbiBvbmx5CglkZWZpbmVkIGluIGEgbG9zdCBwcmltYXJ5IHZpcnR1YWwgYmFzZS4KCShhZGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllc18xKTogVXNlIHRoZSBzYW1lIGNvZGUgZm9yCgl0aGUgbG9zdCBwcmltYXJ5IGNhc2UgYW5kIHRoZSBub3JtYWwgY2FzZS4KCShkZnNfdW5zaGFyZWRfdmlydHVhbF9iYXNlcyk6IERvbid0IGxvc2UgYSBub24tdmlydHVhbCBwcmltYXJ5IGJhc2UuCgkoZ2V0X3ZmaWVsZF9vZmZzZXQsIGdldF9kZXJpdmVkX29mZnNldCk6IExvc2UuCgkoZGZzX2ZpbmRfZmluYWxfb3ZlcnJpZGVyKTogVXNlIGxvb2tfZm9yX292ZXJyaWRlc19oZXJlLgoJKGdldF9tYXRjaGluZ192aXJ0dWFsKTogTmV3IGZuLgoJKiBzZW1hbnRpY3MuYyAoZW1pdF9hc3NvY2lhdGVkX3RodW5rcyk6IENoZWNrIEJWX1VTRV9WQ0FMTF9JTkRFWF9QLAoJbm90IEJWX1ZDQUxMX0lOREVYLgoJKiBzZWFyY2guYyAobG9va19mb3Jfb3ZlcnJpZGVzX2hlcmUpOiBTcGxpdCBvdXQgZnJvbS4uLgoJKGxvb2tfZm9yX292ZXJyaWRlc19yKTogSGVyZS4KCgkqIGNsYXNzLmMgKGZpbmRfZmluYWxfb3ZlcnJpZGVyKTogUmV0dXJuIGVycm9yX21hcmtfbm9kZSBvbiBlcnJvci4KCgkqIGRlY2wyLmMgKGtleV9tZXRob2QpOiAjaWYgMCBhY2NpZGVudGFsIGNoYW5nZS4KCjIwMDEtMDYtMDYgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBjYWxsLmMgKGNvbnZlcnRfZGVmYXVsdF9hcmcpOiBVc2UgSU5URUdSQUxfVFlQRV9QLgoJKGJ1aWxkX292ZXJfY2FsbCk6IExpa2V3aXNlLgoJKiBkZWNsLmMgKGdyb2twYXJtcyk6IExpa2V3aXNlLgoJKiBwdC5jICh0c3Vic3RfZGVjbCk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoY29udmVydF9hcmd1bWVudHMpOiBMaWtld2lzZS4KCjIwMDEtMDYtMDUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzZW1hbnRpY3MuYyAoYmVnaW5fY2xhc3NfZGVmaW5pdGlvbik6IFJvYnVzdGlmeS4KCgkqIHB0LmMgKGluc3RhbnRpYXRlX2RlY2wpOiBUZWxsIHRoZSByZXBvc2l0b3J5IGNvZGUgYWJvdXQgdGhlCgljbG9uZXMsIG5vdCB0aGUgY2xvbmVkIGZ1bmN0aW9ucy4KCSogcmVwby5jIChyZXBvX3RlbXBsYXRlX3VzZWQpOiBFeHBsaWNpdGx5IGluc3RhbnRpYXRlIHRoZSBjbG9uZWQKCWZ1bmN0aW9uLCBub3QgdGhlIGNsb25lcy4KCjIwMDEtMDYtMDUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGJ1aWxkX3VzZXJfdHlwZV9jb252ZXJzaW9uXzEpOiBTZXQgSUNTX1VTRVJfRkxBRyBhbmQKCUlDU19CQURfRkxBRyBvbiBjcmVhdGVkIGNvbnZlcnNpb24uCgkoY29tcGFyZV9pY3MpOiBCcmVhayBvdXQgcmFuay4KCjIwMDEtMDYtMDUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKHhyZWZfdGFnKTogUmVtb3ZlIGV4dHJhbmVvdXMgJXMgb24gZGVwZW5kZW50IG5hbWUKCWxvb2t1cCB3YXJuaW5nLgoKMjAwMS0wNi0wNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGxheW91dF92dGFibGVfZGVjbCk6IEZpeCBvZmYgYnkgb25lIGVycm9yIG9uCglidWlsZF9pbmRleF90eXBlLgoJKGJ1aWxkX3Z0dCk6IExpa2V3aXNlLgoJKGJ1aWxkX2N0b3JfdnRibF9ncm91cCk6IExpa2V3aXNlLgoKMjAwMS0wNi0wNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKG1heWJlX2luZGVudF9oaWVyYXJjaHkpOiBOZXcgZnVuY3Rpb24uCgkoZHVtcF9jbGFzc19oaWVyYXJjaHlfcik6IEFkZCBmbGFncy4gRHVtcCBleHRyYSBiaW5mbwoJaW5mb3JtYXRpb24sIGlmIGVuYWJsZWQuIFVzZSBtYXliZV9pbmRlbnRfaGllcmFyY2h5LiBBZGp1c3QKCW91dHB1dCBmb3JtYXQuCgkoZHVtcF9jbGFzc19oaWVyYXJjaHkpOiBBZGp1c3QgcHJvdG90eXBlLiBBZGp1c3Qgb3V0cHV0IGZvcm1hdC4KCShkdW1wX2FycmF5LCBkdW1wX3Z0YWJsZSwgZHVtcF92dHQpOiBOZXcgZnVuY3Rpb25zLgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IEFkanVzdCBoaWVyYXJjaHkgZHVtcGluZy4KCShpbml0aWFsaXplX3Z0YWJsZSk6IENhbGwgZHVtcF92dGFibGUuCgkoYnVpbGRfdnR0KTogQ2FsbCBkdW1wX3Z0dC4KCShidWlsZF9jdG9yX3Z0YmxfZ3JvdXApOiBDYWxsIGR1bXBfdnRhYmxlLgoJKiBkZWNsMi5jIChmbGFnX2R1bXBfY2xhc3NfbGF5b3V0KTogUmVtb3ZlLgoJKGN4eF9kZWNvZGVfb3B0aW9uKTogUmVtb3ZlIGR1bXAgdHJhbnNsYXRpb24gdW5pdAoJYW5kIGR1bXAgY2xhc3MgaGllcmFyY2h5IGNoZWNrLiBDYWxsIGR1bXBfc3dpdGNoX3AuCgkoZmluaXNoX2ZpbGUpOiBBZGp1c3QgZHVtcGluZy4KCShkdW1wLmMpOiBPbmx5IGR1bXAgYmFzZSBjbGFzc2VzIGlmIG5vdCBUREZfU0xJTS4KCU9ubHkgZHVtcCBuYW1lc3BhY2UgbWVtYmVycyBpZiBub3QgVERGX1NMSU0uCgkqIG9wdGltaXplLmMgKGR1bXBfZnVuY3Rpb24pOiBOZXcgZnVuY3Rpb24uCgkob3B0aW1pemVfZnVuY3Rpb24pOiBDYWxsIGR1bXBfZnVuY3Rpb24uCgkqIHNlbWFudGljcy5jIChleHBhbmRfYm9keSk6IFVzZSBkdW1wX2VuYWJsZWRfcC4KCjIwMDEtMDYtMDEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZysrLzI5MzYKCVBhcnQgbWlzc2VkIGZyb20gZmlyc3QgY29tbWl0CgkqIGRlY2wyLmMgKGZpbmlzaF9hbm9uX3VuaW9uKTogQ29weSBjb250ZXh0LgoKMjAwMS0wNS0zMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBnKysvMjkzNgoJKiBvcHRpbWl6ZS5jIChyZW1hcF9kZWNsKTogUmVtYXAgYW5vbnltb3VzIGFnZ3JlZ2F0ZSBtZW1iZXJzIHRvby4KCjIwMDEtMDUtMjYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZysrLzI4MjMKCSogc2VtYW50aWNzLmMgKGV4cGFuZF9ib2R5KTogRG9uJ3Qgb3B0aW1pemUgdGh1bmtzLgoKMjAwMS0wNS0yNSAgU2FtIFRIICA8c2FtQHVjaGljYWdvLmVkdT4KCgkqIGNwLXRyZWUuaCBsZXguaDogRml4IGhlYWRlciBpbmNsdWRlIGd1YXJkcy4KCjIwMDEtMDUtMjUgIE1hcmsgTWl0Y2hlbGwgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBUd2Vhay4KCjIwMDEtMDUtMjQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IFRpZHkuCgkoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBBbHdheXMgc2V0IGZsYWdfbm9fYnVpbHRpbi4KCjIwMDEtMDUtMjQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzIxODQKCSogZGVjbDIuYyAoZG9fbG9jYWxfdXNpbmdfZGVjbCk6IFB1c2ggdGhlIGRlY2xzLCBldmVuIGluIGEKCXRlbXBsYXRlLgoKMjAwMS0wNS0yMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG9wdGltaXplLmMgKGluaXRpYWxpemVfaW5saW5lZF9wYXJhbWV0ZXJzKTogRG9uJ3Qgc2V0CglUUkVFX1JFQURPTkxZIGZvciBhIFZBUl9ERUNMIHRha2luZyB0aGUgcGxhY2Ugb2YgYW4gaW5saW5lZAoJUEFSTV9ERUNMLgoKMjAwMS0wNS0yMiAgSmFzb24gTWVycmlsbCAgPGphc29uX21lcnJpbGxAcmVkaGF0LmNvbT4KCgkqIGNsYXNzLmMsIGNwLXRyZWUuaCwgcnR0aS5jOiBSZW1vdmUgY29tX2ludGVyZmFjZSBhdHRyaWJ1dGUgc3VwcG9ydC4KCSogdHJlZS5jIChjcF92YWxpZF9sYW5nX2F0dHJpYnV0ZSk6IFdhcm4gYWJvdXQgdXNlIG9mIGNvbV9pbnRlcmZhY2UKCWF0dHJpYnV0ZS4KCjIwMDEtMDUtMjIgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIHBhcnNlLnk6IFJlZmVyIHRvIGNvbXBvdW5kIGxpdGVyYWxzIGFzIHN1Y2gsIG5vdCBhcwoJY29uc3RydWN0b3ItZXhwcmVzc2lvbnMuCgoyMDAxLTA1LTIxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChidWlsZF9vcF9kZWxldGVfY2FsbCk6IElnbm9yZSBleGNlcHRpb24tc3BlY2lmaWNhdGlvbnMKCXdoZW4gbG9va2luZyBmb3IgbWF0Y2hpbmcgZGVsZXRlIG9wZXJhdG9ycy4KCSogaW5pdC5jIChidWlsZF9uZXdfMSk6IENvbXB1dGUgd2hldGhlciBvciBub3QgdGhlIGFsbG9jYXRpb24KCWZ1bmN0aW9uIHVzZWQgaXMgYSBwbGFjZW1lbnQgYWxsb2NhdGlvbiBmdW5jdGlvbiBvciBub3QsIGFuZAoJY29tbXVuaWNhdGUgdGhpcyBpbmZvcm1hdGlvbiB0byBidWlsZF9vcF9kZWxldGVfY2FsbC4KCjIwMDEtMDUtMjEgIEphc29uIE1lcnJpbGwgIDxqYXNvbl9tZXJyaWxsQHJlZGhhdC5jb20+CgoJKiBjbGFzcy5jIChidWlsZF92dGFibGVfZW50cnlfcmVmKTogTG9zZSB2dGJsIHBhcm0uICBGaXggZm9yIG5ldyBhYmkuCgkoYnVpbGRfdnRibF9yZWYpOiBBZGp1c3QuCgkoZGZzX2FjY3VtdWxhdGVfdnRibF9pbml0cyk6IFNldCBUUkVFX0NPTlNUQU5UIG9uIHRoZSB2dGFibGUgYWRkcmVzcy4KCSogZGVjbDIuYyAobGFuZ19mX29wdGlvbnMpOiBSZW1vdmUgaHVnZS1vYmplY3RzLCB2dGFibGUtdGh1bmtzLgoJUmUtYWRkIHZ0YWJsZS1nYy4KCSh1bnN1cHBvcnRlZF9vcHRpb25zKTogQ29ycmVzcG9uZGluZ2x5LgoKCSogZGVjbDIuYyAobWF5YmVfbWFrZV9vbmVfb25seSk6IENoZWNrIGZsYWdfd2Vhaywgbm90CglzdXBwb3J0c19vbmVfb25seSgpLgoKCSogY3AtdHJlZS5kZWYgKFNUQVJUX0NBVENIX1NUTVQpOiBMb3NlLgoJKiBkdW1wLmMgKGNwX2R1bXBfdHJlZSk6IERvbid0IGR1bXAgaXQuICBEbyBkdW1wIEhBTkRMRVJfUEFSTVMuCgkqIHRyZWUuYyAoY3Bfc3RhdGVtZW50X2NvZGVfcCk6IERvbid0IGNhc2UgaXQuCgkqIHNlbWFudGljcy5jIChjcF9leHBhbmRfc3RtdCk6IExpa2V3aXNlLgoJKiBjcC10cmVlLmggKFNUQVJUX0NBVENIX1RZUEUpOiBMb3NlLgoJKEhBTkRMRVJfVFlQRSk6IE5ldy4KCSogZXhjZXB0LmMgKGV4cGFuZF9zdGFydF9jYXRjaF9ibG9jayk6IERvbid0IHN0YXJ0IGFueSBibG9ja3MuCglSZXR1cm4gdGhlIHR5cGUuCgkoZXhwYW5kX2VuZF9jYXRjaF9ibG9jayk6IERvbid0IGVuZCBhbnkgYmxvY2tzLgoJKiBwYXJzZS55IChoYW5kbGVyKTogRG9uJ3QgcGFzcyBhbnl0aGluZyBmcm9tIGZpbmlzaF9oYW5kbGVyX3Bhcm1zCgl0byBmaW5pc2hfaGFuZGxlci4KCSogcHQuYyAodHN1YnN0X2V4cHIpOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGJlZ2luX2hhbmRsZXIpOiBDYWxsIG5vdGVfbGV2ZWxfZm9yX2NhdGNoIGhlcmUuCgkoZmluaXNoX2hhbmRsZXJfcGFybXMpOiBEb24ndCByZXR1cm4gYW55dGhpbmcuCgkoZ2VucnRsX2NhdGNoX2Jsb2NrLCBiZWdpbl9jYXRjaF9ibG9jayk6IExvc2UuCgkoZ2VucnRsX2hhbmRsZXIpOiBDYWxsIGV4cGFuZF9zdGFydF9jYXRjaCBoZXJlLgoKMjAwMS0wNS0xOCAgSmFzb24gTWVycmlsbCAgPGphc29uX21lcnJpbGxAcmVkaGF0LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YWJsZSk6IFNldCBERUNMX0FTU0VNQkxFUl9OQU1FIGZvciB2dGFibGVzIGhlcmUuCgkoZ2V0X3Z0YWJsZV9kZWNsLCBidWlsZF92dHQpOiBOb3QgaGVyZS4KCjIwMDEtMDUtMjAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzI3ODEKCSogb3B0aW1pemUuYyAodXBkYXRlX2Nsb25lZF9wYXJtKTogQ29weSBhZGRyZXNzYWJpbGl0eSBhbmQgb3RoZXIKCWZsYWdzLgoKMjAwMS0wNS0yMCAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwdC5jIChkZXRlcm1pbmVfc3BlY2lhbGl6YXRpb24pOiBJZ25vcmUgYXJ0aWZpY2lhbCBmdW5jdGlvbnMuCgoyMDAxLTA1LTIwICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBsYW5nX2lkZW50aWZpZXIsIENfUklEX1lZQ09ERSk6IFVwZGF0ZS4KCShDX1JJRF9DT0RFKTogUmVtb3ZlLgoJKiBsZXguYyAoY3h4X2luaXRfb3B0aW9ucyk6IENhbGwgc2V0X2lkZW50aWZpZXJfc2l6ZS4gIFVwZGF0ZS4KCShpbml0X3BhcnNlKTogRG9uJ3QgZG8gaXQgaGVyZS4KCjIwMDEtMDUtMTggIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogZGVjbDIuYyAoZmluaXNoX29iamVjdHMpOiBVc2UgdGhlIG9yaWdpbmFsIFNZTUJPTF9SRUYgZnJvbSB0aGUKCWZ1bmN0aW9uIGRlY2xhcmF0aW9uIHRvIGF2b2lkIHN0cmlwcGluZyB0aGUgc3ltYm9sJ3MgYXR0cmlidXRlcy4KCjIwMDEtMDUtMTggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKHB1c2hkZWNsKTogQWRqdXN0IGVycm9yIHN0cmluZy4KCSh4cmVmX3RhZyk6IEFkanVzdCBmcmllbmQgY2xhc3MgaW5qZWN0aW9uIHdhcm5pbmcuIFJlbW92ZSB0aGUKCWluaGVyaXRlZCBuYW1lIGZyb20gdGhlIGNsYXNzIHNoYWRvd2VkIHNjb3BlLgoKMjAwMS0wNS0xNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGV4Y2VwdC5jIChjcF9wcm90ZWN0X2NsZWFudXBfYWN0aW9ucyk6IE5ldyBmdW5jdGlvbi4KCShpbml0X2V4Y2VwdGlvbl9wcm9jZXNzaW5nKTogRG9uJ3Qgc2V0IHByb3RlY3RfY2xlYW51cF9hY3Rpb25zCgloZXJlLiAgRG8gc2V0IGxhbmdfcHJvdGVjdF9jbGVhbnVwX2FjdGlvbnMuCgoyMDAxLTA1LTE2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogc3Bldy5jIChyZWFkX3Rva2VuKTogQ2FsbCB5eWVycm9yIG9uIGFsbCB1bmV4cGVjdGVkIHRva2Vucy4KCjIwMDEtMDUtMTYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbml0LmMgKG1lbWJlcl9pbml0X29rX29yX2Vsc2UpOiBUYWtlIGEgdHJlZSByYXRoZXIgdGhhbgoJc3RyaW5nIGZvciBuYW1lLgoJKGV4cGFuZF9tZW1iZXJfaW5pdCk6IEFkanVzdC4KCjIwMDEtMDUtMTQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBTdXBwcmVzcyB3YXJuaW5nIGFib3V0IGR1cGxpY2F0ZQoJZGVjbHMgaWYgdGhlIGZpcnN0IGRlY2wgaXMgYSBmcmllbmQuCgoyMDAxLTA1LTEyICBaYWNrIFdlaW5iZXJnICA8emFja3dAc3RhbmZvcmQuZWR1PgoKCSogZXhjZXB0LmMgKGNob29zZV9wZXJzb25hbGl0eV9yb3V0aW5lKTogRXhwb3J0LiAgQWRkCglleHBsYW5hdG9yeSBjb21tZW50LiAgVGFrZSBhbiBlbnVtIGxhbmd1YWdlcywgbm90IGEgYm9vbGVhbi4KCShpbml0aWFsaXplX2hhbmRsZXJfcGFybSk6IEFkanVzdCB0byBtYXRjaC4KCSogY3AtdHJlZS5oOiBQcm90b3R5cGUgY2hvb3NlX3BlcnNvbmFsaXR5X3JvdXRpbmUuCgkqIGxleC5jIChoYW5kbGVfcHJhZ21hX2phdmFfZXhjZXB0aW9ucyk6IE5ldyBmdW5jdGlvbi4KCShpbml0X2NwX3ByYWdtYSk6IFJlZ2lzdGVyICNwcmFnbWEgR0NDIGphdmFfZXhjZXB0aW9ucy4KCjIwMDEtMDUtMTIgIE5laWwgQm9vdGggIDxuZWlsQGNhdC5kYWlrb2t1eWEuZGVtb24uY28udWs+CgoJKiBtZXRob2QuYyAoYnVpbGRfbWFuZ2xlZF9DOTlfbmFtZSk6IFJlbW92ZSB1bnVzZWQgcHJvdG90eXBlLgoKMjAwMS0wNS0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjcC10cmVlLmggKHB0cm1lbWZ1bmNfdmJpdF93aGVyZV90KTogRGVjbGFyZSB0eXBlLgoJKiB0eXBlY2suYyAoZ2V0X21lbWJlcl9mdW5jdGlvbl9mcm9tX3B0cmZ1bmMsCglidWlsZF9wdHJtZW1mdW5jLCBleHBhbmRfcHRybWVtZnVuY19jc3QpOiBUYWtlCglUQVJHRVRfUFRSTUVNRlVOQ19WQklUX0xPQ0FUSU9OIGludG8gYWNjb3VudC4KCglSZXZlcnRlZCBHZW9mZiBLZWF0aW5nJ3MgMjAwMS0wNS0wMydzIHBhdGNoLgoKMjAwMS0wNS0xMSAgSXJhIFJ1YmVuCTxpcmFAYXBwbGUuY29tPgoKCSogY3AvY3AtdHJlZS5oIChDX0VYUF9PUklHSU5BTF9DT0RFKTogRGVsZXRlOyBkZWNsYXJlZCBpbiBjLWNvbW1vbi5oLgoKMjAwMS0wNS0xMSAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogY3AtdHJlZS5oIChmaW5pc2hfbGFiZWxfZXhwciwgbG9va3VwX2xhYmVsKTogRGVsZXRlLgoJKiBwYXJzZS55OiBVcGRhdGUgZm9yICcmJic7IGRvbid0IGlzc3VlIHdhcm5pbmcgaGVyZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9sYWJlbF9leHByKTogRGVsZXRlLgoKMjAwMS0wNS0wNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHNwbGF5LXRyZWUuaCAoc3BsYXlfdHJlZV9tYXgpOiBOZXcgZnVuY3Rpb24uCgkoc3BsYXlfdHJlZV9taW4pOiBMaWtld2lzZS4KCjIwMDEtMDUtMDMgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAcmVkaGF0LmNvbT4KCgkqIGNwLXRyZWUuaCAoZW51bSBjcF90cmVlX2luZGV4KTogQWRkIENQVElfUEZOX1ZGTEFHX0lERU5USUZJRVIuCgkocGZuX3ZmbGFnX2lkZW50aWZpZXIpOiBEZWZpbmUuCglVcGRhdGUgY29tbWVudCBhYm91dCBsYXlvdXQgb2YgcG9pbnRlciBmdW5jdGlvbnMuCgkoYnVpbGRfcHRybWVtZnVuYzEpOiBVcGRhdGUgcHJvdG90eXBlLgoJKGV4cGFuZF9wdHJtZW1mdW5jX2NzdCk6IFVwZGF0ZSBwcm90b3R5cGUuCgkqIGRlY2wuYyAoaW5pdGlhbGl6ZV9wcmVkZWZpbmVkX2lkZW50aWZpZXJzKTogSW5pdGlhbGl6ZQoJcGZuX3ZmbGFnX2lkZW50aWZpZXIuCgkoYnVpbGRfcHRybWVtZnVuY190eXBlKTogV2hlbiBGVU5DVElPTl9CT1VOREFSWSA8IDE2LCBhZGQKCWFuIGV4dHJhIGZpZWxkIHRvIHRoZSB0eXBlLgoJKiBleHByLmMgKGNwbHVzX2V4cGFuZF9jb25zdGFudCk6IFBhc3MgJ2ZsYWcnIGJldHdlZW4KCWV4cGFuZF9wdHJtZW1mdW5jX2NzdCBhbmQgYnVpbGRfcHRybWVtZnVuYzEuCgkqIHR5cGVjay5jIChnZXRfbWVtYmVyX2Z1bmN0aW9uX2Zyb21fcHRyZnVuYyk6IFdoZW4KCUZVTkNUSU9OX0JPVU5EQVJZIDwgMTYsIGxvb2sgYXQgYWRkaXRpb25hbCBmaWVsZCB0byBkZXRlcm1pbmUKCWlmIGEgcG9pbnRlci10by1tZW1iZXIgaXMgYSByZWFsIHBvaW50ZXIgb3IgYSB2dGFibGUgb2Zmc2V0LgoJKGJ1aWxkX3B0cm1lbWZ1bmMxKTogQWRkIG5ldyBwYXJhbWV0ZXIgdG8gY29udGFpbiBleHRyYSBmaWVsZC4KCShidWlsZF9wdHJtZW1mdW5jKTogUGFzcyB0aGUgZXh0cmEgZmllbGQgYXJvdW5kLgoJKGV4cGFuZF9wdHJtZW1mdW5jX2NzdCk6IEFkZCBuZXcgcGFyYW1ldGVyIHRvIHJldHVybiBleHRyYSBmaWVsZC4KCShwZm5fZnJvbV9wdHJtZW1mdW5jKTogSWdub3JlIHRoZSBleHRyYSBmaWVsZC4KCjIwMDEtMDUtMDMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGZsYWdfaW5saW5lX3RyZWVzKTogVXBkYXRlIGRvY3VtZW50YXRpb24uCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBBZGp1c3QgaGFuZGxpbmcgb2YKCWZsYWdfaW5saW5lX2Z1bmN0aW9ucyBhbmQgZmxhZ19pbmxpbmVfdHJlZXMgdG8gc3VwcG9ydCAtTzMuCgkoZ3Jva2ZuZGVjbCk6IFNldCBERUNMX0lOTElORSBvbiBhbGwgZnVuY3Rpb25zIGlmIHRoYXQncyB3aGF0Cgl0aGUgdXNlciByZXF1ZXN0ZWQuCgkoc2F2ZV9mdW5jdGlvbl9kYXRhKTogQ2xlYXIgREVDTF9JTkxJTkUgaW4KCWN1cnJlbnRfZnVuY3Rpb25fY2Fubm90X2lubGluZSBpcyBub24tTlVMTC4KCSogZGVjbDIuYyAoZmxhZ19pbmxpbmVfdHJlZXMpOiBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCjIwMDEtMDUtMDMgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkdW1wLmMgKGNwX2R1bXBfdHJlZSwgVVNJTkdfU1RNVCBjYXNlKTogTmV3IGNhc2UuCgkqIHRyZWUuYyAoY3Bfc3RhdGVtZW50X2NvZGVfcCk6IEFkZCBVU0lOR19TVE1ULgoJKiBkZWNsMi5jIChkb191c2luZ19kaXJlY3RpdmUpOiBBZGQgdGhlIHVzaW5nIGRpcmVjdGl2ZSBzdGF0ZW1lbnQuCgoJKiB0cmVlLmMgKHdhbGtfdHJlZSk6IFJlZm9ybWF0IGFuIGlmIGJsb2NrLgoKMjAwMS0wNS0wMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoY29tcHV0ZV9hcnJheV9pbmRleF90eXBlKTogRG9uJ3QgdHJ5IHRvIGRvIGFueXRoaW5nIHdpdGgKCXRoZSBpbmRpY2VzIHdoZW4gcHJvY2Vzc2luZyBhIHRlbXBsYXRlLgoKMjAwMS0wNS0wMiAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogY2FsbC5jOiBOVUxMX1BUUiAtPiBOVUxMLgoJKiBjbGFzcy5jOiBMaWtld2lzZS4KCSogY3Z0LmM6IExpa2V3aXNlLgoJKiBkZWNsLmM6IExpa2V3aXNlLgoJKiBkZWNsMi5jOiBMaWtld2lzZS4KCSogZXhjZXB0LmM6IExpa2V3aXNlLgoJKiBpbml0LmM6IExpa2V3aXNlLgoJKiBydHRpLmM6IExpa2V3aXNlLgoJKiBzZWFyY2guYzogTGlrZXdpc2UuCgkqIHRyZWUuYzogTGlrZXdpc2UuCgkqIHR5cGVjay5jOiBMaWtld2lzZS4KCSogdHlwZWNrMi5jOiBMaWtld2lzZS4KCjIwMDEtMDUtMDIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsMi5jIChkb191c2luZ19kaXJlY3RpdmUpOiBSZXZlcnQgcHJldmlvdXMgcGF0Y2guCgoyMDAxLTA1LTAxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5kZWYgKFVTSU5HX1NUTVQpOiBOZXcgc3RhdGVtZW50IG5vZGUuCgkqIGNwLXRyZWUuaCAoVVNJTkdfU1RNVF9OQU1FU1BBQ0UpOiBOZXcgbWFjcm8uCgkqIGRlY2wyLmMgKGRvX3VzaW5nX2RpcmVjdGl2ZSk6IEFkZCBVU0lOR19TVE1UIHRvIHN0YXRlbWVudAoJdHJlZS4gRG9uJ3QgZW1pdCBlcnJvcnMgd2hlbiBwcm9jZXNzaW5nIHRlbXBsYXRlIGRlY2wuCgkqIHB0LmMgKHRzdWJzdF9leHByLCBVU0lOR19TVE1UIGNhc2UpOiBOZXcgY2FzZS4KCSogc2VtYW50aWNzLmMgKGNwX2V4cGFuZF9zdG10LCBVU0lOR19TVE1UIGNhc2UpOiBOZXcgY2FzZS4KCjIwMDEtMDUtMDEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGJ1aWxkX25ld19vcCk6IENvbnZlcnQgYXJncyBmcm9tIHJlZmVyZW5jZSBoZXJlLgoJKGJ1aWxkX2NvbmRpdGlvbmFsX2V4cHIpOiBEb24ndCBjb252ZXJ0IGhlcmUuCgoyMDAxLTA1LTAxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogc3Bldy5jIChsYXN0X3Rva2VuX2lkKTogTmV3IHN0YXRpYyB2YXJpYWJsZS4KCShyZWFkX3Rva2VuKTogU2V0IGl0IGhlcmUuCgkoeXllcnJvcik6IFVzZSBpdCBoZXJlLgoKMjAwMS0wNC0zMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGN2dC5jOiBEb3duY2FzZSBDX1BST01PVElOR19JTlRFR0VSX1RZUEVfUCBpbnZvY2F0aW9ucy4KCSogZGVjbC5jOiBMaWtld2lzZS4KCjIwMDEtMDQtMzAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBneHhpbnQudGV4aTogUmVtb3ZlLgoJKiBNYWtlLWxhbmcuaW46IFJlbW92ZSBhbGwgdHJhY2VzIG9mIGd4eGludC50ZXhpLgoKMjAwMS0wNC0zMCAgTWFyayBQIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoc3RhcnRfc3RhdGljX2luaXRpYWxpemF0aW9uX29yX2Rlc3RydWN0aW9uKTogQ29ycmVjdAoJbG9naWMgdG8gaGFuZGxlIHRoZSAtZm5vLXVzZS1jeGEtYXRleGl0IGNhc2UuCgoyMDAxLTA0LTMwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogb3B0aW1pemUuYyAodXBkYXRlX2Nsb25lZF9wYXJtKTogTmV3IGZ1bmN0aW9uLgoJKG1heWJlX2Nsb25lX2JvZHkpOiBVc2UgaXQuICBVcGRhdGUgdGhlIGB0aGlzJyBwYXJhbWV0ZXIgdG9vLgoKMjAwMS0wNC0yOSAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZGVjbDIuYyAodW5zdXBwb3J0ZWRfb3B0aW9ucyk6IEFkZCBuZXctYWJpLgoJKiBsYW5nLW9wdGlvbnMuaDogUmVtb3ZlIG5vIGxvbmdlciBzdXBwb3J0ZWQgb3B0aW9ucy4KCjIwMDEtMDQtMjcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBleGNlcHQuYyAoY2FuX2NvbnZlcnRfZWgpOiBEb24ndCBjaGVjayB0ZW1wbGF0ZSBwYXJtcywKCXR5cGVuYW1lIHR5cGVzIGV0Yy4KCjIwMDEtMDQtMjcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBvcHRpbWl6ZS5jIChtYXliZV9jbG9uZV9ib2R5KTogQ29weSBwYXJhbWV0ZXIgbmFtZXMgYW5kIGxvY2F0aW9ucy4KCjIwMDEtMDQtMjcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGFkanVzdF9jbG9uZV9hcmdzKTogUHJvdG90eXBlIG5ldyBmdW5jdGlvbi4KCSogY2xhc3MuYyAoYWRqdXN0X2Nsb25lX2FyZ3MpOiBOZXcgZnVuY3Rpb24uCgkqIGRlY2wuYyAoc3RhcnRfZnVuY3Rpb24pOiBDYWxsIGl0IGZvciBpbiBjaGFyZ2UgY3RvcnMuCgoyMDAxLTA0LTI2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogbWV0aG9kLmMgKHVzZV90aHVuayk6IE1ha2Ugc3VyZSB0aGF0IHRodW5rcyByZWFsbHkgYXJlIGVtaXR0ZWQKCXdoZW4gcmVxdWVzdGVkLgoKMjAwMS0wNC0yNiAgTmF0aGFuIFNpZHdlbGwgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogbWFuZ2xlLmMgKHdyaXRlX2NoYXJzKTogTmV3IG1hY3JvLgoJKGh3aW50X3RvX2FzY2lpKTogTmV3IGZ1bmN0aW9uCgkod3JpdGVfbnVtYmVyKTogVXNlIGl0LgoJKHdyaXRlX2ludGVnZXJfY3N0KTogRGVhbCB3aXRoIHJlYWxseSBiaWcgbnVtYmVycy4KCjIwMDEtMDQtMjUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBvcHRpbWl6ZS5jIChtYXliZV9jbG9uZV9ib2R5KTogQ29weSBUUkVFX1BVQkxJQyBiZWZvcmUgZW1pdHRpbmcKCXRoZSBjbG9uZS4KCjIwMDEtMDQtMjUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogU2V0IGNvbnRleHQgb2YgbmFtZXNwYWNlIHNjb3BlCglUWVBFX0RFQ0xTLgoKMjAwMS0wNC0yNCAgWmFjayBXZWluYmVyZyAgPHphY2t3QHN0YW5mb3JkLmVkdT4KCgkqIGNwL29wdGltaXplLmM6IEluY2x1ZGUgaGFzaHRhYi5oLgoJKHN0cnVjdCBpbmxpbmVfZGF0YSk6IEFkZCB0cmVlX3BydW5lci4KCShleHBhbmRfY2FsbF9pbmxpbmUsIGV4cGFuZF9jYWxsc19pbmxpbmUpOiBVc2UgaXQgd2hlbiBjYWxsaW5nCgl3YWxrX3RyZWUuCgkob3B0aW1pemVfZnVuY3Rpb24pOiBJbml0aWFsaXplIGFuZCBmcmVlIHRyZWVfcHJ1bmVyLgoKMjAwMS0wNC0yNCAgTmF0aGFuIFNpZHdlbGwgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCUxhenkgX19GVU5DVElPTl9fIGdlbmVyYXRpb24uCgkqIGNwLXRyZWUuZGVmIChGVU5DVElPTl9OQU1FKTogUmVtb3ZlLgoJKiBjcC10cmVlLmggKGZ1bmN0aW9uX25hbWVfZGVjbGFyZWRfcCk6IFJlbW92ZS4KCShjcF9mbmFtZV9pbml0KTogUHJvdG90eXBlLgoJKiBkZWNsLmMgKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogRG9uJ3QgZ2VuZXJhdGUgX19GVU5DVElPTl9fIGV0IGFsIGlkcywKCWRvbid0IGNhbGwgZGVjbGFyZV9mdW5jdGlvbl9uYW1lLiBDYWxsIHN0YXJ0X2ZuYW1lX2RlY2xzLgoJKGNwX21ha2VfZm5hbWVfZGVjbCk6IEFkanVzdCBwYXJhbWV0ZXJzLiBHZW5lcmF0ZSB0aGUgbmFtZS4gRG9uJ3QKCWNsb2JiZXIgdGhlIGxpbmUgbnVtYmVyLgoJKGNwX2ZuYW1lX2luaXQpOiBOZXcgZnVuY3Rpb24uCgkoc3RhcnRfZnVuY3Rpb24pOiBDYWxsIHN0YXJ0X2ZuYW1lX2RlY2xzLgoJKGZpbmlzaF9mdW5jdGlvbik6IENhbGwgZmluaXNoX2ZuYW1lX2RlY2xzLgoJKiBsZXguYyAocmVzd29yZHMpOiBBZGQgc2xvdHMgZm9yIF9fRlVOQ1RJT05fXyBldCBhbC4KCShyaWRfdG9feXkpOiBBZGQgbWFwcGluZ3MgZm9yIF9fRlVOQ1RJT05fXyBldCBhbC4KCSogb3B0aW1pemUuYyAobWF5YmVfY2xvbmVfYm9keSk6IFJlbW92ZSBmdW5jdGlvbl9uYW1lX2RlY2xhcmVkX3AuCgkqIHBhcnNlLnkgKFZBUl9GVU5DX05BTUUpOiBOZXcgdG9rZW4uCgkocHJpbWFyeSk6IEFkZCBWQVJfRlVOQ19OQU1FLgoJKiBwdC5jICh0c3Vic3RfZGVjbCk6IEFkanVzdCBhIERFQ0xfUFJFVFRZX0ZVTkNUSU9OX1AncwoJZ2VuZXJhdGlvbi4KCSh0c3Vic3QsIEZVTkNUSU9OX05BTUUgY2FzZSk6IFJlbW92ZS4KCSh0c3Vic3RfY29weSwgRlVOQ1RJT05fTkFNRSBjYXNlKTogUmVtb3ZlLgoJKHRzdWJzdF9leHByLCBERUNMX1NUTVQgY2FzZSk6IEJlIGNhcmVmdWwgd2l0aCBhCglERUNMX1BSRVRUWV9GVU5DVElPTl9QLgoJKGluc3RhbnRpYXRlX2RlY2wpOiBSZW1vdmUgZnVuY3Rpb25fbmFtZV9kZWNsYXJlZF9wLgoJKiBzZW1hbnRpY3MuYyAoYmVnaW5fY29tcG91bmRfc3RhdGVtZW50KTogRG9uJ3QgY2FsbAoJZGVjbGFyZV9mdW5jdGlvbl9uYW1lIGhlcmUuCgkoc2V0dXBfdnRibF9wdHIpLiBEb24ndCBzYXZlICYgcmVzdG9yZSBmdW5jdGlvbl9uYW1lX2RlY2xhcmVkX3AuCgkoZmluaXNoX3RyYW5zbGF0aW9uX3VuaXQpOiBDYWxsIGZpbmlzaF9mbmFtZV9kZWNscy4KCShleHBhbmRfYm9keSk6IFJlbW92ZSBmdW5jdGlvbl9uYW1lX2RlY2xhcmVkX3AuCgkqIHR5cGVjazIuYyAoZGlnZXN0X2luaXQpOiBBbGxvdyBhbnkgRVJST1JfTUFSSy4KCjIwMDEtMDQtMjQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwdC5jICh0c3Vic3RfZGVjbCk6IFVzZSBWT0lEX1RZUEVfUC4KCSogc2VtYW50aWNzLmM6IEZpeCBzb21lIHR5cG9zLgoKMjAwMS0wNC0yMyAgUGhpbCBFZHdhcmRzICA8cG1lQHNvdXJjZXMucmVkaGF0LmNvbT4KCgkqIGNwL2RlY2wyLmMgKGZsYWdfaG9ub3Jfc3RkKTogIEFsd2F5cyBpbml0aWFsaXplIHRvIDEuCgoyMDAxLTA0LTIyICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiB4cmVmLmMgKEdOVV94cmVmX2ZpbGUpOiBVc2UgY29uY2F0IGluIGxpZXUgb2YgeG1hbGxvYy9zcHJpbnRmLgoKMjAwMS0wNC0yMyAgSmFzb24gTWVycmlsbCAgPGphc29uX21lcnJpbGxAcmVkaGF0LmNvbT4KCgkqIGV4Y2VwdC5jIChidWlsZF90aHJvdyk6IFdyYXAgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBleGNlcHRpb24KCW9iamVjdCBpbiBhIE1VU1RfTk9UX1RIUk9XX0VYUFIuCgkoZG9fZnJlZV9leGNlcHRpb24pOiAjaWYgMC4KCjIwMDEtMDQtMjAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGZpbmlzaF9lbnVtKTogQ2hhbmdlIHByb3RvdHlwZS4KCSogZGVjbC5jIChmaW5pc2hfZW51bSk6IFJlb3JnYW5pemUuCgkqIHBhcnNlLnkgKHN0cnVjdHNwKTogQWRqdXN0IGNhbGxzIHRvIGZpbmlzaF9lbnVtLgoKMjAwMS0wNC0yMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWUuYyAoY3BfdHJlZV9lcXVhbCk6IEFkanVzdCBmaW5hbCBzd2l0Y2ggZm9ybWF0dGluZy4gQWRkCgkndCcgY2FzZS4KCjIwMDEtMDQtMjAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChkZnNfdW5zaGFyZWRfdmlydHVhbF9iYXNlcyk6IEFkZCBBVFRSSUJVVEVfVU5VU0VELgoJKGxheW91dF9lbXB0eV9iYXNlKTogUmV0dXJuIGF0IGVuZCBmbGFnLgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBMaWtld2lzZS4KCShidWlsZF9iYXNlX2ZpZWxkcyk6IExpa2V3aXNlLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogRG9uJ3QgYWRkIDEgdG8gZW9jIHZhbHVlLgoJKGVuZF9vZl9jbGFzcyk6IFVzZSBmdWxsIHNpemUgZm9yIGVtcHR5IGJhc2VzLgoJKGxheW91dF9jbGFzc190eXBlKTogQ2xlYXIgQ0xBU1NORUFSTFlfRU1QVFlfUCBpZiB3ZSBhcHBlbmRlZAoJZW1wdHkgYmFzZXMuIERvbid0IGFkZCAxIHRvIGVvYyB2YWx1ZS4gT25seSBhZGQgdHJhaWxpbmcgcGFkZGluZwoJaWYgd2UncmUgYW4gZW1wdHkgY2xhc3Mgd2l0aCBubyBlbXB0eSBiYXNlcy4KCShkdW1wX2NsYXNzX2hpZXJhcmNoeSk6IER1bXAgc2l6ZSBhbmQgYWxpZ25tZW50LgoKMjAwMS0wNC0yMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjYWxsLmMgKG1heWJlX2hhbmRsZV9yZWZfYmluZCk6IENvcHkgSUNTX1VTRVJfRkxBRyBhbmQKCUlDU19CQURfRkxBRy4KCjIwMDEtMDQtMjAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogc2VhcmNoLmMgKGxvb2t1cF9maWVsZF9yKTogSWYgbG9va2luZyBmb3IgdHlwZSBhbmQgbm9uLVRZUEVfREVDTAoJaXMgZm91bmQsIGxvb2sgZmlyc3QgaWYgbmFtZSBkb2VzIG5vdCBtYXRjaCB0aGUgc3RydWN0dXJlIG5hbWUuCgoyMDAxLTA0LTE5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChERUNMX0xBTkdVQUdFKTogRG9uJ3QgYXNzdW1lIERFQ0xfTEFOR19TUEVDSUZJQyBpcwoJc2V0LgoJKFNFVF9ERUNMX0xBTkdVQUdFKTogTmV3IG1hY3JvLgoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IFVzZSBTRVRfREVDTF9MQU5HVUFHRS4KCShwdXNoZGVjbCk6IExpa2V3aXNlLgoJKGJ1aWxkX2xpYnJhcnlfZm5fMSk6IExpa2V3aXNlLgoJKGJ1aWxkX2NwX2xpYnJhcnlfZm4pOiBMaWtld2lzZS4KCShncm9rZm5kZWNsKTogTGlrZXdpc2UuCgkoZ3Jva3ZhcmRlY2wpOiBNYXJrIGBleHRlcm4gIkMiJyB2YXJpYWJsZXMgYXMgaGF2aW5nIEMgbGlua2FnZS4KCSogZGVjbDIuYyAoZ3Jva2NsYXNzZm4pOiBVc2UgU0VUX0RFQ0xfTEFOR1VBR0UuCgkqIGxleC5jIChyZXRyb2ZpdF9sYW5nX2RlY2wpOiBMaWtld2lzZS4KCSogbWFuZ2xlLmMgKG1hbmdsZV9kZWNsX3N0cmluZyk6IERvbid0IG1hbmdsZSB0aGUgbmFtZXMgb2YKCXZhcmlhYmxlcyBkZWNsYXJlZCB3aXRoIEMgbGFuZ3VhZ2UgbGlua2FnZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9tZW1iZXJfZGVjbGFyYXRpb24pOiBVc2UgU0VUX0RFQ0xfTEFOR1VBR0UuCgoyMDAxLTA0LTE4ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogc2VtYW50aWNzLmMgKHNpbXBsaWZ5X2FnZ3JfaW5pdF9leHByc19yKTogRG9uJ3QgcmVzdG9yZQoJZmxhZ19hY2Nlc3NfY29udHJvbCBmcm9tIHVuaW5pdGlhbGl6ZWQgc3RvcmFnZS4KCjIwMDEtMDQtMTUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKFRZUEVfUFRSTUVNX0NMQVNTX1RZUEUpOiBJbXByb3ZlIGRvY3VtZW50YXRpb24uCgkqIG1hbmdsZS5jICh3cml0ZV9wb2ludGVyX3RvX21lbWJlcl90eXBlKTogRml4IG1hbmdsaW5nIG9mCglwb2ludGVycyB0byBjdi1xdWFsaWZpZWQgbWVtYmVyIGZ1bmN0aW9uIHR5cGVzLgoKCSogaW5pdC5jIChidWlsZF9kZWxldGUpOiBDcmVhdGUgYSBTQVZFX0VYUFIgZm9yIHRoZSBhZGRyZXNzIGlmCgl3ZSdyZSBnb2luZyB0byB1c2UgaXQgbW9yZSB0aGFuIG9uY2UuCgoyMDAxLTA0LTEzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChERUxUQTJfRlJPTV9QVFJNRU1GVU5DKTogUmVtb3ZlLgoJKGV4cGFuZF9wdHJlbWZ1bmNfY3N0KTogQ2hhbmdlIHByb3RvdHlwZS4KCShkZWx0YTJfZnJvbV9wdHJtZW1mdW5jKTogUmVtb3ZlLgoJKiBleHByLmMgKGNwbHVzX2V4cGFuZF9jb25zdGFudCk6IEFkanVzdCBjYWxsIHRvCglleHBhbmRfcHRybWVtZnVuY19jc3QuCgkqIHR5cGVjay5jIChidWlsZF9wdHJtZW1mdW5jMSk6IFNpbXBsaWZ5LgoJKGJ1aWxkX3B0cm1lbWZ1bmMpOiBNYWtlIHN1cmUgdGhhdCBjYXN0aW5nIGEgUFRSTUVNX0NTVCBzdGlsbAoJcmVzdWx0cyBpbiBhIGNvbnN0YW50LgoJKGV4cGFuZF9wdHJtZW1mdW5jX2NzdCk6IFJlbW92ZSBpZHggYW5kIGRlbHRhMiBwYXJhbWV0ZXJzLgoJKGRlbHRhMl9mcm9tX3B0cm1lbWZ1bmMpOiBSZW1vdmUuCgkocGZuX2Zyb21fcHRybWVtZnVuYyk6IEFkanVzdCBjYWxsIHRvIGV4cGFuZF9wdHJtZW1mdW5jX2NzdC4KCjIwMDEtMDQtMTIgIEphc29uIE1lcnJpbGwgIDxqYXNvbl9tZXJyaWxsQHJlZGhhdC5jb20+CgoJKiBjcC10cmVlLmggKGRlY2xfbmFtZXNwYWNlX2xpc3QpOiBOZXcgbWFjcm8uCgkoc3RydWN0IHNhdmVkX3Njb3BlKTogQWRkIGRlY2xfbnNfbGlzdC4KCSogZGVjbC5jIChtYXJrX3NhdmVkX3Njb3BlKTogTWFyayBpdC4KCSogZGVjbDIuYzogTG9zZSBzdGF0aWMgZGVjbF9uYW1lc3BhY2VfbGlzdC4KCShpbml0X2RlY2wyKTogRG9uJ3Qgc2F2ZSBpdC4KCjIwMDEtMDQtMTIgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGNwLXRyZWUuaCAod2Fybl9yZXR1cm5fdHlwZSwgeXlsZXgpOiBEZWxldGUgcmVkdW5kYW50CglkZWNsYXJhdGlvbnMuCgoJKiBkZWNsLmMgKGN1cnJlbnRfY2xhc3NfZGVwdGgsIGdsb2JhbF9uYW1lc3BhY2UpOiBMaWtld2lzZS4KCgkqIGRlY2wyLmMgKGN1cnJlbnRfY2xhc3NfZGVwdGgsIGZsYWdfZ251X3hyZWYpOiBMaWtld2lzZQoKCSogcmVwby5jIChmbGFnX3VzZV9yZXBvc2l0b3J5KTogTGlrZXdpc2UuCgoyMDAxLTA0LTEyICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBjcC10cmVlLmggKHBlZGFudGljLCBjb252ZXJ0LCBnbG9iYWxfYmluZGluZ3NfcCwgaW5zZXJ0X2Jsb2NrLAoJc2V0X2Jsb2NrLCBwdXNoZGVjbCwgZ2V0ZGVjbHMsIGdldHRhZ3MsIGluaXRfZGVjbF9wcm9jZXNzaW5nLAoJbWF5YmVfYnVpbGRfY2xlYW51cCwgY29weV9sYW5nX2RlY2wsIHByZXBfc3RtdCwgbHZhbHVlX3AsCglsdmFsdWVfb3JfZWxzZSwgcHJpbnRfbGFuZ19zdGF0aXN0aWNzLCBjb21wX3RhcmdldF90eXBlcywKCXVuc2lnbmVkX3R5cGUsIHNpZ25lZF90eXBlLCBzaWduZWRfb3JfdW5zaWduZWRfdHlwZSwKCWJ1aWxkX2Z1bmN0aW9uX2NhbGwsIG1hcmtfYWRkcmVzc2FibGUsIGluY29tcGxldGVfdHlwZV9lcnJvcik6CglEZWxldGUgcmVkdW5kYW50IGRlY2xhcmF0aW9ucy4KCjIwMDEtMDQtMTEgIEphc29uIE1lcnJpbGwgIDxqYXNvbl9tZXJyaWxsQHJlZGhhdC5jb20+CgoJKiBjcC10cmVlLmggKFRZUEVfTElOS0FHRV9JREVOVElGSUVSKTogTmV3IG1hY3JvLgoJKFRZUEVfQU5PTllNT1VTX1ApOiBOZXcgbWFjcm8uCgkoVEFHR0VEX1RZUEVfUCk6IE5ldyBtYWNyby4KCSogZGVjbC5jIChjaGVja190YWdfZGVjbCk6IFVzZSBUWVBFX0FOT05ZTU9VU19QLgoJKGdyb2tmbmRlY2wsIGdyb2t2YXJkZWNsLCBncm9rZGVjbGFyYXRvcik6IExpa2V3aXNlLgoJKiB0cmVlLmMgKG5vX2xpbmthZ2VfaGVscGVyKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChiZWdpbl9jbGFzc19kZWZpbml0aW9uKTogTGlrZXdpc2UuCgkqIHB0LmMgKGNvbnZlcnRfdGVtcGxhdGVfYXJndW1lbnQpOiBMaWtld2lzZS4KCSogbGV4LmMgKGNoZWNrX2Zvcl9taXNzaW5nX3NlbWljb2xvbik6IExpa2V3aXNlLgoKMjAwMS0wNC0xMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGRmc191bnNoYXJlZF92aXJ0dWFsX2Jhc2VzKTogTmV3IGZ1bmN0aW9uLgoJKG1hcmtfcHJpbWFyeV9iYXNlcyk6IENhbGwgaXQuCgkoY2hlY2tfYmFzZXMpOiBJZ25vcmUgdmlydHVhbCBiYXNlcyB3aGVuIGRldGVybWluaW5nCgluZWFybHktZW1wdGluZXNzLgoKMjAwMS0wNC0xMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG1ldGhvZC5jIChtYWtlX3RodW5rKTogQ2xlYXIgREVDTF9DTE9ORURfRlVOQ1RJT04uCgoyMDAxLTA0LTExICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogb3B0aW1pemUuYyAobWF5YmVfY2xvbmVfYm9keSk6IENvcHkgREVDTF9OVU1fU1RNVFMgZnJvbSB0aGUKCWNsb25lZCBmdW5jdGlvbiB0byB0aGUgY2xvbmUuCgoyMDAxLTA0LTExICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBNYWtlLWxhbmcuaW4gKGNwL3NlbWFudGljcy5vKTogRGVwZW5kIG9uICQoRVhQUl9IKS4KCgkqIHNlbWFudGljcy5jOiBJbmNsdWRlIGV4cHIuaC4KCjIwMDEtMDQtMTEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtZXRob2QuYyAoaW1wbGljaXRseV9kZWNsYXJlX2ZuKTogQ29tbW9uaXplIGNvZGUgZm9yIGNvcHkgY3RvcgoJYW5kIGFzc2lnbm1lbnQgb3AuIFNldCBUUkVFX1VTRUQgZm9yIHBhcmFtZXRlci4KCjIwMDEtMDQtMTAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChmaW5kX2ZpbmFsX292ZXJyaWRlcl9kYXRhKTogQWRkIGBjYW5kaWRhdGVzJy4KCShkZnNfZmluZF9maW5hbF9vdmVycmlkZXIpOiBEb24ndCBpc3N1ZSBlcnJvciBtZXNzYWdlcwoJcHJlbWF0dXJlbHkuCgkoZmluZF9maW5hbF9vdmVycmlkZXIpOiBJc3N1ZSBlcnJvciBtZXNzYWdlcyBoZXJlLgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBEb24ndCB3YXJuIGFib3V0IGFtZ2lidW91cyBkaXJlY3QgYmFzZXMgaGVyZS4KCSh3YXJuX2Fib3V0X2FtYmlndW91c19kaXJlY3RfYmFzZXMpOiBOZXcgZnVuY3Rpb24uCgkobGF5b3V0X2NsYXNzX3R5cGUpOiBVc2UgaXQuCgoyMDAxLTA0LTEwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdHlwZWNrLmMgKGJ1aWxkX2FycmF5X3JlZik6IFB1c2ggdGhlIGFycmF5IHJlZmVyZW5jZSBpbnNpZGUKCUNPTVBPVU5EX0VYUFIgYW5kIENPTkRfRVhQUi4KCjIwMDEtMDQtMDUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKERFQ0xfVEhJU19JTkxJTkUpOiBSZW5hbWUgdG8gREVDTF9ERUNMQVJFRF9JTkxJTkVfUC4KCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBBZGp1c3QgYWNjb3JkaW5nbHkuCgkobWF5YmVfY29tbW9uaXplX3Zhcik6IExpa2V3aXNlLgoJKGdyb2tmbmRlY2wpOiBMaWtld2lzZS4KCShzdGFydF9mdW5jdGlvbik6IExpa2V3aXNlLgoJKHN0YXJ0X21ldGhvZCk6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChrZXlfbWV0aG9kKTogTGlrZXdpc2UuCgkoaW1wb3J0X2V4cG9ydF9kZWNsKTogTGlrZXdpc2UuCgkqIG1ldGhvZC5jIChpbXBsaWNpdGx5X2RlY2xhcmVfZm4pOiBMaWtld2lzZS4KCSogb3B0aW1pemUuYyAobWF5YmVfY2xvbmVfYm9keSk6IExpa2V3aXNlLgoKMjAwMS0wNC0wNSAgQmVuamFtaW4gS29zbmlrICA8YmtvekByZWRoYXQuY29tPgoKCSogbGFuZy1zcGVjcy5oOiBBZGQgX19ERVBSRUNBVEVELgoKMjAwMS0wNC0wNSAgSiJvcm4gUmVubmVja2UgPGFteWxhYXJAcmVkaGF0LmNvbT4KCgkqIHNlYXJjaC5jIChnZXRfZHluYW1pY19jYXN0X2Jhc2VfdHlwZSk6IFdoZW4gYnVpbGRpbmcgYSBuZXcKCWNvbnN0YW50LCBzZXQgaXRzIHR5cGUgdG8gc3NpemV0eXBlLgoKMjAwMS0wNC0wNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBvcHRpbWl6ZS5jIChleHBhbmRfY2FsbF9pbmxpbmUpOiBPbmx5IGFkZCBuZXdseSBpbmxpbmVkIHN0YXRlbWVudHMKCWludG8gaW5saW5lZF9zdG10cy4KCjIwMDEtMDQtMDMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKE9QRVJBVE9SX0FTU0lHTl9GT1JNQVQpOiBSZW1vdmUuCgkoT1BFUkFUT1JfRk9STUFUKTogTGlrZXdpc2UuCgkoT1BFUkFUT1JfVFlQRU5BTUVfRk9STUFUKTogTGlrZXdpc2UuCgkqIG9wZXJhdG9ycy5kZWY6IFJlbW92ZSBvbGQgbmFtZS1tYW5nbGluZyBpbmZvcm1hdGlvbi4KCSogZGVjbC5jIChncm9rX29wX3Byb3BlcnRpZXMpOiBBZGp1c3QgYWNjb3JkaW5nbHkuCgkqIGxleC5jIChpbml0X29wZXJhdG9ycyk6IExpa2V3aXNlLgoJKiBydHRpLmMgKGdldF90aW5mb19kZWNsKTogSXNzdWUgZXJyb3IgbWVzc2FnZXMgYWJvdXQgdHlwZXMgdGhhdAoJaGF2ZSB2YXJpYWJsZSBzaXplLgoKMjAwMS0wNC0wMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wyLmMgKGltcG9ydF9leHBvcnRfZGVjbCk6IERvbid0IGNhbGwgaW1wb3J0X2V4cG9ydF9jbGFzcwoJd2hlbiBwcm9jZXNzaW5nIGFuIGlubGluZSBtZW1iZXIgZnVuY3Rpb24uCgkqIHNlbWFudGljcy5jIChleHBhbmRfYm9keSk6IENhbGwgaW1wb3J0X2V4cG9ydF9kZWNsIGJlZm9yZQoJZW1pdHRpbmcgaW5saW5lIGZ1bmN0aW9ucy4KCjIwMDEtMDMtMjggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJSUEtNjQgQUJJIEV4Y2VwdGlvbiBIYW5kbGluZzoKCSogY3AtdHJlZS5kZWYgKEVIX1NQRUNfQkxPQ0spOiBOZXcuCgkoTVVTVF9OT1RfVEhST1dfRVhQUik6IE5ldy4KCSogY3AtdHJlZS5oOiBVcGRhdGUgY2hhbmdlZCBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCgkoQ1BUSV9QVVNIX0VYQ0VQVElPTl9JREVOVElGSUVSKTogUmVtb3ZlLgoJKENQVElfQ0FMTF9VTkVYUEVDVEVEKTogTmV3LgoJKHN0cnVjdCBjcF9sYW5ndWFnZV9mdW5jdGlvbik6IFJlbmFtZSB4X2VoX3NwZWNfdHJ5X2Jsb2NrCgl0byB4X2VoX3NwZWNfYmxvY2suCgkoRUhfU1BFQ19TVE1UUywgRUhfU1BFQ19SQUlTRVMpOiBOZXcuCgkqIGRlY2wuYyAoY3VycmVudF9iaW5kaW5nX2xldmVsKTogSWYgbm8gY3VycmVudCBmdW5jdGlvbgoJYmluZGluZ3MsIHJldmVydCB0byBzY29wZV9jaGFpbi4KCShpbml0aWFsaXplX3ByZWRlZmluZWRfaWRlbnRpZmllcnMpOiBSZW1vdmUgX19jcF9wdXNoX2V4Y2VwdGlvbi4KCShzdG9yZV9wYXJtX2RlY2xzKTogVXNlIGJlZ2luX2VoX3NwZWNfYmxvY2suCgkoZmluaXNoX2Z1bmN0aW9uKTogVXNlIGZpbmlzaF9laF9zcGVjX2Jsb2NrLgoJKG1hcmtfbGFuZ19mdW5jdGlvbik6IFVwZGF0ZSBmb3IgbmFtZSBjaGFuZ2VzLgoJKiBkZWNsMi5jIChmaW5pc2hfZmlsZSk6IE5vIG1hcmtfYWxsX3J1bnRpbWVfbWF0Y2hlcy4KCSogZHVtcC5jIChjcF9kdW1wX3RyZWUpOiBIYW5kbGUgbmV3IHRyZWUgY29kZXMuCgkqIGVycm9yLmMgKGR1bXBfZXhwcikgW0JJTkRfRVhQUl06IEZpeCB0eXBvLgoJKiBleGNlcHQuYyAoY2F0Y2hfbGFuZ3VhZ2VfaW5pdCwgY2F0Y2hfbGFuZ3VhZ2UpOiBSZW1vdmUuCgkoaW5pdF9leGNlcHRpb25fcHJvY2Vzc2luZyk6IERvbid0IHNldCBsYW5ndWFnZSBjb2RlLgoJSW5pdGlhbGl6ZSBjYWxsX3VuZXhwZWN0ZWRfbm9kZSwgcHJvdGVjdF9jbGVhbnVwX2FjdGlvbnMsCgllaF9wZXJzb25hbGl0eV9saWJmdW5jLCBsYW5nX2VoX3J1bnRpbWVfdHlwZS4KCShjYWxsX2VoX2luZm8sIHB1c2hfZWhfaW5mbywgZ2V0X2VoX2luZm8sIGdldF9laF92YWx1ZSk6IFJlbW92ZS4KCShnZXRfZWhfdHlwZSwgZ2V0X2VoX2NhdWdodCwgZ2V0X2VoX2hhbmRsZXJzKTogUmVtb3ZlLgoJKHByZXBhcmVfZWhfdHlwZSk6IFNwbGl0IG91dCB0eXBlIGNhbm9uaWNhbGl6YXRpb25zIC4uLgoJKGJ1aWxkX2VoX3R5cGVfdHlwZSk6IC4uLiBmcm9tIGhlcmUuCgkoYnVpbGRfZWhfdHlwZV90eXBlX3JlZik6IFJlbW92ZS4KCShtYXJrX2FsbF9ydW50aW1lX21hdGNoZXMpOiBSZW1vdmUuCgkoYnVpbGRfZXhjX3B0cik6IE5ldy4KCShkb19iZWdpbl9jYXRjaCwgZG9fZW5kX2NhdGNoKTogTmV3LgoJKGRvX3BvcF9leGNlcHRpb24pOiBSZW1vdmUuCgkoYnVpbGRfdGVybWluYXRlX2hhbmRsZXIpOiBSZW1vdmUuCgkoY2hvb3NlX3BlcnNvbmFsaXR5X3JvdXRpbmUpOiBTcGxpdCBvdXQgbGFuZ3VhZ2UgY2hvaWNlIGZyb20gLi4uCgkoaW5pdGlhbGl6ZV9oYW5kbGVyX3Bhcm0pOiAuLi4gaGVyZS4KCVVzZSBNVVNUX05PVF9USFJPV19FWFBSLgoJKGV4cGFuZF9zdGFydF9jYXRjaF9ibG9jayk6IFVzZSBkb19iZWdpbl9jYXRjaC4gIFNpbXBsaWZ5IEphdmEKCWV4Y2VwdGlvbiBvYmplY3QgaGFuZGxpbmcuCgkoZXhwYW5kX3N0YXJ0X2VoX3NwZWMsIGV4cGFuZF9lbmRfZWhfc3BlYyk6IFJlbW92ZS4KCShleHBhbmRfZXhjZXB0aW9uX2Jsb2NrcywgYWxsb2NfZWhfb2JqZWN0KTogUmVtb3ZlLgoJKGJlZ2luX2VoX3NwZWNfYmxvY2ssIGZpbmlzaF9laF9zcGVjX2Jsb2NrKTogTmV3LgoJKGRvX2FsbG9jYXRlX2V4Y2VwdGlvbiwgZG9fZnJlZV9leGNlcHRpb24pOiBOZXcuCgkoZXhwYW5kX3Rocm93KTogTWVyZ2UgaW50byAuLi4KCShidWlsZF90aHJvdyk6IC4uLiBoZXJlLiAgVXBkYXRlIGZvciBhYmkuCgkqIGV4cHIuYyAoY3BsdXNfZXhwYW5kX2V4cHIpOiBObyBleHBhbmRfaW50ZXJuYWxfdGhyb3cuCglIYW5kbGUgTVVTVF9OT1RfVEhST1dfRVhQUi4KCSogcHQuYyAodHN1YnN0X2V4cHIpOiBIYW5kbGUgRUhfU1BFQ19CTE9DSy4KCSogc2VtYW50aWNzLmMgKCopIFVwZGF0ZSBmb3IgZXhjZXB0LmggbmFtZSBjaGFuZ2VzLgoJKGdlbnJ0bF90cnlfYmxvY2spOiBObyBwcm90ZWN0X3dpdGhfdGVybWluYXRlLgoJKGdlbnJ0bF9laF9zcGVjX2Jsb2NrKTogTmV3LgoJKGdlbnJ0bF9oYW5kbGVyKTogRG9uJ3QgZW1pdCB0aGUgZ290byBoZXJlLgoJKGNwX2V4cGFuZF9zdG10KTogSGFuZGxlIEVIX1NQRUNfQkxPQ0suCgkoZ2VucnRsX2ZpbmlzaF9mdW5jdGlvbik6IERvbid0IGV4cGFuZF9leGNlcHRpb25fYmxvY2tzLgoJKiB0cmVlLmMgKGNwX3N0YXRlbWVudF9jb2RlX3ApOiBIYW5kbGUgRUhfU1BFQ19CTE9DSy4KCjIwMDEtMDMtMjggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKHN0cnVjdCBuYW1lZF9sYWJlbF9saXN0KTogUmVuYW1lIGVoX3JlZ2lvbiB0bwoJaW5fdHJ5X3Njb3BlLCBhZGQgaW5fY2F0Y2hfc2NvcGUuCgkoc3RydWN0IGJpbmRpbmdfbGV2ZWwpOiBSZW5hbWUgZWhfcmVnaW9uIHRvIGlzX3RyeV9zY29wZSwKCWFkZCBpc19jYXRjaF9zY29wZS4KCShub3RlX2xldmVsX2Zvcl90cnkpOiBSZW5hbWUgZnJvbSBub3RlX2xldmVsX2Zvcl9laC4KCShub3RlX2xldmVsX2Zvcl9jYXRjaCk6IE5ldy4KCShwb3BsZXZlbCk6IENvcHkgYm90aCBpc190cnlfc2NvcGUgYW5kIGlzX2NhdGNoX3Njb3BlIHRvCgl0aGUgbmFtZWRfbGFiZWxfbGlzdCBzdHJ1Y3QuCgkoY2hlY2tfcHJldmlvdXNfZ290b18xKTogRG9uJ3QgY2hlY2sgZm9yIGNhdGNoIGJsb2NrIHZpYQoJREVDTF9BUlRJRklDSUFMOyB1c2UgaW5fdHJ5X3Njb3BlIGluc3RlYWQuCgkoY2hlY2tfZ290byk6IExpa2V3aXNlLgoJKiBjcC10cmVlLmggKG5vdGVfbGV2ZWxfZm9yX3RyeSwgbm90ZV9sZXZlbF9mb3JfY2F0Y2gpOiBEZWNsYXJlLgoJKiBleGNlcHQuYyAoZXhwYW5kX3N0YXJ0X2NhdGNoX2Jsb2NrKTogQ2FsbCBub3RlX2xldmVsX2Zvcl9jYXRjaC4KCSogc2VtYW50aWNzLmMgKGJlZ2luX2NvbXBvdW5kX3N0bXQpOiBVcGRhdGUgZm9yIG5vdGVfbGV2ZWxfZm9yX3RyeS4KCjIwMDEtMDMtMjcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBleGNlcHQuYzogVXNlIFVTSU5HX1NKTEpfRVhDRVBUSU9OUyBpbnN0ZWFkIG9mCglleGNlcHRpb25zX3ZpYV9sb25nam1wLgoKMjAwMS0wMy0yNyAgUGhpbCBFZHdhcmRzICA8cG1lQHNvdXJjZXMucmVkaGF0LmNvbT4KCgkqIHB0LmMgKGNoZWNrX2RlZmF1bHRfdG1wbF9hcmdzKTogIE1ha2UgZXJyb3IgbWVzc2FnZXMgY2xlYXJlci4KCjIwMDEtMDMtMjYgIFBoaWwgRWR3YXJkcyAgPHBtZUBzb3VyY2VzLnJlZGhhdC5jb20+CgoJKiBlcnJvci5jOiAgQWxzbyB1bmRlZmluZSAnQScgbWFjcm8gdXNlZCBmb3IgY3BfcHJpbnRlcnMgZGVmaW5pdGlvbi4KCjIwMDEtMDMtMjcgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIE1ha2UtbGFuZy5pbjogRGVwZW5kIG9uICQoU1lTVEVNX0gpLCBub3Qgc3lzdGVtLmguCgoyMDAxLTAzLTI2ICBNaWtlIFlhbmcgPHlhbmdAcmVzZWFyY2guYXR0LmNvbT4KCSAgICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZHVtcC5jIChkdW1wX2FjY2Vzcyk6IE5ldyBmdW5jdGlvbi4KCShjcF9kdW1wX3RyZWUpOiBVc2UgaXQuICBEdW1wIGJhc2V0eXBlIGluZm9ybWF0aW9uIGZvciBjbGFzcwoJdHlwZXMuCgoyMDAxLTAzLTI2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZWZpbGUuaW4gKG9wdGltaXplLm8pOiBEZXBlbmQgb24gcGFyYW1zLmguCgkoZHVwbGljYXRlX2RlY2xzKTogQ29weSBERUNMX05VTV9TVE1UUywgbm90IERFQ0xfRlJBTUVfU0laRS4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IFNldCBmbGFnX25vX2lubGluZSB3aGVuIGRvaW5nCglpbmxpbmluZy1vbi10cmVlcy4KCSogb3B0aW1pemUuYzogSW5jbHVkZSBwYXJhbXMuaC4KCShzdHJ1Y3QgaW5saW5lX2RhdGEpOiBJbXByb3ZlIGRvY3VtZW50YXRpb24gb2YgRk5TLiAgQWRkCglGSVJTVF9JTkxJTkVEX0ZOLCBJTkxJTkVEX1NUTVRTLCBhbmQgQ0xPTklOR19QLgoJKElOU05TX1BFUl9TVE1UKTogTmV3IG1hY3JvLgoJKHJlbWFwX2Jsb2NrKTogVXNlIENMT05JTkdfUC4KCShpbmxpbmFibGVfZnVuY3Rpb25fcCk6IERvbid0IGlubGluZSBiaWcgZnVuY3Rpb25zLgoJKGV4cGFuZF9jYWxsX2lubGluZSk6IEtlZXAgdHJhY2sgb2YgaG93IG11Y2ggaW5saW5pbmcgd2UndmUgZG9uZS4KCShvcHRpbWl6ZV9mdW5jdGlvbik6IFNldCBGSVJTVF9JTkxJTkVEX0ZOLgoJKG1heWJlX2Nsb25lX2JvZHkpOiBTZXQgQ0xPTklOR19QLgoJKiBzZW1hbnRpY3MuYyAoc2ltcGxpZnlfYWdncl9pbml0X2V4cHJzX3IpOiBGaXggdHlwaW5nIHByb2JsZW1zIGluCgl0cmVlIG5vZGVzLgoJKGdlbnJ0bF9maW5pc2hfZnVuY3Rpb24pOiBDbGVhciBERUNMX0RFRkVSX09VVFBVVCBiZWZvcmUgY2FsbGluZwoJcmVzdF9vZl9jb21waWxhdGlvbi4gIENsZWFyIERFQ0xfUlRMIGZvciBsb2NhbCB2YXJpYWJsZXMKCWFmdGVyd2FyZHMuCgkoY2xlYXJfZGVjbF9ydGwpOiBOZXcgZnVuY3Rpb24uCgoyMDAxLTAzLTI2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCUltcGxlbWVudCBEUiAyMDkKCSogY3AtdHJlZS5oIChza2lwX3R5cGVfYWNjZXNzX2NvbnRyb2wsCglyZXNldF90eXBlX2FjY2Vzc19jb250cm9sKTogUHJvdG90eXBlLgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogQWNjZXNzIG9mIGZyaWVuZHMgaXMgbm90IGNoZWNrZWQuCgkqIHBhcnNlLnkgKGNvbXBvbmVudF9kZWNsX2xpc3QpOiBSZXNldCB0eXBlIGFjY2VzcyBjb250cm9sLgoJKiBzZW1hbnRpY3MuYyAoZGVjbF90eXBlX2FjY2Vzc19jb250cm9sKTogQ2xlYXIKCWN1cnJlbnRfdHlwZV9sb29rdXBzLgoJKHNhdmVfdHlwZV9hY2Nlc3NfY29udHJvbCk6IERvbid0IHNhdmUgaWYgbm90IGRlZmVycmluZy4KCShza2lwX3R5cGVfYWNjZXNzX2NvbnRyb2wsIHJlc2V0X3R5cGVfYWNjZXNzX2NvbnRyb2wpOiBOZXcKCWZ1bmN0aW9ucy4KCShiZWdpbl9jbGFzc19kZWZpbml0aW9uKTogRG8gdHlwZSBhY2Nlc3MgY29udHJvbCBmb3IgYmFzZXR5cGVzLgoJU3RhcnQgZGVmZXJyZWQgYWNjZXNzIGNvbnRyb2wuCgkoZmluaXNoX2NsYXNzX2RlZmluaXRpb24pOiBSZXN1bWUgaW1tZWRpYXRlIGFjY2VzcyBjb250cm9sIGlmCgl0aGlzIGlzIGEgbG9jYWwgY2xhc3MuCgoyMDAxLTAzLTI1ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBjbGFzcy5jIChhZGRfbWV0aG9kKTogVXNlIG1lbWNweS9tZW1tb3ZlLCBub3QgYmNvcHkuCgoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IExpa2V3aXNlLgoKMjAwMS0wMy0yMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBtYW5nbGUuYyAod3JpdGVfZGlzY3JpbWluYXRvcik6IFVzZSBgXzAnIGZvciBkaXNjcmltaW5hdG9yIDEsCglub3QgYF8nLgoKMjAwMS0wMy0yMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKGxvY2FsX25hbWVzKTogRGVmaW5lLgoJKHB1c2hfbG9jYWxfbmFtZSk6IE5ldy4KCShncm9rX3JlZmVyZW5jZV9pbml0KTogUmV0dXJuIGluaXQgaWYgaW5pdGlhbGl6aW5nIHN0YXRpYyByZWZlcmVuY2UKCXZhcmlhYmxlIHdpdGggbm9uLWNvbnN0YW50IGluc3RlYWQgb2YgZW1pdHRpbmcgaXQuCglNb3ZlIGV4cGFuZF9zdGF0aWNfaW5pdCBjYWxsIHRvIGNwX2ZpbmlzaF9kZWNsLgoJKGxheW91dF92YXJfZGVjbCk6IENhbGwgcHVzaF9sb2NhbF9uYW1lLgoJKG1heWJlX2NvbW1vbml6ZV92YXIpOiBBbGxvdyBpbmxpbmluZyBmdW5jdGlvbnMgZXZlbiBpZiB0aGV5IGhhdmUKCXN0YXRpYyBsb2NhbCB2YXJpYWJsZXMsIHVzZSBjb21kYXRfbGlua2FnZSBmb3IgdGhlbSBpZiBmbGFnX3dlYWsuCgkoY2hlY2tfaW5pdGlhbGl6ZXIpOiBDYWxsIG9ic2N1cmVfY29tcGxleF9pbml0IGlmCglncm9rX3JlZmVyZW5jZV9pbml0IHJldHVybmVkIG5vbnplcm8uCgkoc2F2ZV9mdW5jdGlvbl9kYXRhKTogQ2xlYXIgeF9sb2NhbF9uYW1lcy4KCShwb3BfY3BfZnVuY3Rpb25fY29udGV4dCk6IEZyZWUgeF9sb2NhbF9uYW1lcy4KCShtYXJrX2lubGluZWRfZm5zKTogUmVtb3ZlLgoJKG1hcmtfbGFuZ19mdW5jdGlvbik6IE1hcmsgeF9sb2NhbF9uYW1lcy4KCShsYW5nX21hcmtfdHJlZSk6IERvbid0IG1hcmsgREVDTF9BQ0NFU1MgZm9yIERFQ0xfRElTQ1JJTUlOQVRPUl9QLgoJTWFyayBpbmxpbmVkX2ZucyBhcyB0cmVlLCByZW1vdmUgY2FsbCB0byBtYXJrX2lubGluZWRfZm5zLgoJKiBjbGFzcy5jIChhbHRlcl9hY2Nlc3MpOiBFbnN1cmUgREVDTF9BQ0NFU1MgaXMgbmV2ZXIgc2V0IGlmCglERUNMX0RJU0NSSU1JTkFUT1JfUC4KCSogY3AtdHJlZS5oIChjcF9sYW5ndWFnZV9mdW5jdGlvbik6IEFkZCB4X2xvY2FsX25hbWVzLgoJKGxhbmdfZGVjbF9mbGFncyk6IEFkZCBkaXNjcmltaW5hdG9yIGludG8gdTIuCgkobGFuZ19kZWNsX2lubGluZWRfZm5zKTogUmVtb3ZlLgoJKGxhbmdfZGVjbCk6IGlubGluZWRfZm5zIGlzIG5vdyBhIFRSRUVfVkVDLgoJKERFQ0xfRElTQ1JJTUlOQVRPUl9QLCBERUNMX0RJU0NSSU1JTkFUT1IpOiBEZWZpbmUuCgkqIG9wdGltaXplLmMgKGlubGluYWJsZV9mdW5jdGlvbl9wKTogREVDTF9JTkxJTkVEX0ZOUyBpcyBub3cgYQoJVFJFRV9WRUMsIG5vdCBhIGN1c3RvbSBzdHJ1Y3R1cmUuCgkob3B0aW1pemVfZnVuY3Rpb24pOiBMaWtld2lzZS4KCSogbWFuZ2xlLmMgKGRpc2NyaW1pbmF0b3JfZm9yX2xvY2FsX2VudGl0eSk6IERpc2NyaW1pbmF0ZSBhbW9uZwoJVkFSX0RFQ0wgbG9jYWwgZW50aXRpZXMuCgkqIHNlYXJjaC5jIChkZnNfYWNjZXNzX2luX3R5cGUpOiBJZiBERUNMX0RJU0NSSU1JTkFUT1JfUCwgREVDTF9BQ0NFU1MKCWlzIG5vdCB2YWxpZC4KCjIwMDEtMDMtMjIgIEJyeWNlIE1jS2lubGF5ICA8YnJ5Y2VAYWxiYXRyb3NzLmNvLm56PgoKCUFkZCBzdXBwb3J0IGZvciBKYXZhIGludGVyZmFjZSBtZXRob2QgY2FsbHMuCgkqIGNwLXRyZWUuaCAoc3RydWN0IGxhbmdfdHlwZSk6IEFkZCBqYXZhX2ludGVyZmFjZSBmbGFnLgoJKFRZUEVfSkFWQV9JTlRFUkZBQ0UpOiBOZXcgbWFjcm8uCgkqIHRyZWUuYyAoY3BfdmFsaWRfbGFuZ19hdHRyaWJ1dGUpOiBIYW5kbGUgImphdmFfaW50ZXJmYWNlIiBhdHRyaWJ1dGUKCWJ5IHNldHRpbmcgVFlQRV9KQVZBX0lOVEVSRkFDRS4KCSogY2FsbC5jIChqYXZhX2lmYWNlX2xvb2t1cF9mbik6IE5ldyBzdGF0aWMuCgkoYnVpbGRfb3Zlcl9jYWxsKTogSWYgY2FsbGluZyBhIG1ldGhvZCBkZWNsYXJlZCBpbiBhCglUWVBFX0pBVkFfSU5URVJGQUNFLCBjYWxsIGJ1aWxkX2phdmFfaW50ZXJmYWNlX2ZuX3JlZiB0byBnZW5lcmF0ZSB0aGUKCWV4cHJlc3Npb24gd2hpY2ggcmVzb2x2ZXMgdGhlIGZ1bmN0aW9uIGFkZHJlc3MuCgkoYnVpbGRfamF2YV9pbnRlcmZhY2VfZm5fcmVmKTogTmV3IGZ1bmN0aW9uLgoKMjAwMS0wMy0yMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAoY3AvZXhjZXB0Lm8pOiBEb24ndCBkZXBlbmQgb24gaW5zbi1mbGFncy5oLgoJKiBleGNlcHQuYzogRG9uJ3QgaW5jbHVkZSBpdC4KCjIwMDEtMDMtMjIgIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCSAgICBiYXNlZCBvbiBhbiBpZGVhIGZyb20gSm9lIEJ1Y2sgPGpidWNrQHN5bm9wc3lzLmNvbT4KCgkqIHBhcnNlLnkgKGJhZF9kZWNsLCB0ZW1wbGF0ZV9hcmdfbGlzdF9pZ25vcmUsIGFyZ19saXN0X2lnbm9yZSk6CglOZXcgbm9udGVybWluYWxzLgoJKGRhdGFfZGVmLCBjb21wb25lbnRfZGVjbCk6IEFkZCByZWR1Y3Rpb25zIHRvIGJhZF9kZWNsLgoKMjAwMS0wMy0yMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBtZXRob2QuYyAoZG9fYnVpbGRfYXNzaWduX3JlZik6IERvbid0IHVzZSBidWlsZF9tb2RpZnlfZXhwciBmb3IKCWFub255bW91cyBhZ2dyZWdhdGVzLCBzaW5jZSB0aGV5IGRvbid0IGhhdmUgYXNzaWdubWVudCBvcGVyYXRvcgoJbWV0aG9kLgoJKiBkZWNsLmMgKGZpeHVwX2Fub255bW91c19hZ2dyKTogRGlzYWxsb3cgY3RvcnMsIGR0b3JzIGFuZCBjb3B5Cglhc3NpZ25tZW50IG9wZXJhdG9ycyBmb3IgYW5vbnltb3VzIHN0cnVjdHVyZSBmaWVsZHMuCgoyMDAxLTAzLTIxICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHB0LmMgKGluc3RhbnRpYXRlX2RlY2wpOiBBYm9ydCBpZiB3ZSBzZWUgYSBtZW1iZXIgY29uc3RhbnQKCWluc3RhbnRpYXRpb24gdGhhdCBkb2Vzbid0IGFscmVhZHkgaGF2ZSBpdHMgaW5pdGlhbGl6ZXIuCglEb3duZ3JhZGUgZXhwbGljaXQgaW5zdGFudGlhdGlvbiB3aXRob3V0IGRlZmluaXRpb24gdG8gcGVkd2Fybi4KCgkqIGNwLXRyZWUuaCAoREVDTF9USU5GT19GTl9QLCBTRVRfREVDTF9USU5GT19GTl9QKTogUmVtb3ZlLgoJKiBjbGFzcy5jIChidWlsZF92dGFibGVfZW50cnkpOiBEb24ndCBjaGVjayBERUNMX1RJTkZPX0ZOX1AuCgkoaW1wb3J0X2V4cG9ydF9kZWNsKTogQ2hlY2sgdGluZm9fZGVjbF9wLCBub3QgREVDTF9USU5GT19GTl9QLgoKCSogY3AtdHJlZS5oIChDTEFTU1RZUEVfVlRBQkxFX05FRURTX1dSSVRJTkcpOiBSZW1vdmUuCgkocGVuZGluZ192dGFibGVzKTogUmVtb3ZlLgoJKiBkZWNsMi5jIChwZW5kaW5nX3Z0YWJsZXMpOiBSZW1vdmUuCgkoaW1wb3J0X2V4cG9ydF92dGFibGUpOiBVc2UgQ0xBU1NUWVBFX0lOVEVSRkFDRV9PTkxZLCBub3QKCUNMQVNTVFlQRV9WVEFCTEVfTkVFRFNfV1JJVElORy4KCShpbXBvcnRfZXhwb3J0X2NsYXNzKTogTGlrZXdpc2UuCgkoaW5pdF9kZWNsMik6IERvbid0IG1hcmsgcGVuZGluZ192dGFibGVzLgoJKiBsZXguYyAoaGFuZGxlX3ByYWdtYV92dGFibGUpOiBKdXN0IHNvcnJ5LgoJKiBwdC5jIChpbnN0YW50aWF0ZV9jbGFzc190ZW1wbGF0ZSk6IERvbid0IG1lc3Mgd2l0aAoJQ0xBU1NUWVBFX1ZUQUJMRV9ORUVEU19XUklUSU5HLgoJKG1hcmtfY2xhc3NfaW5zdGFudGlhdGVkKTogTGlrZXdpc2UuCgkqIHB0cmVlLmMgKHByaW50X2xhbmdfdHlwZSk6IERvbid0IHByaW50IGl0LgoJKiBzZW1hbnRpY3MuYyAoYmVnaW5fY2xhc3NfZGVmaW5pdGlvbik6IERvbid0IHNldCBpdC4KCgkqIHB0LmMgKHRlbXBsYXRlX3RhaWwpOiBSZXBsYWNlIHdpdGggbGFzdF9wZW5kaW5nX3RlbXBsYXRlLgoJKG1heWJlX3RlbXBsYXRlcywgbWF5YmVfdGVtcGxhdGVfdGFpbCk6IFJlbW92ZS4KCShhZGRfcGVuZGluZ190ZW1wbGF0ZSk6IEFkanVzdC4KCShpbnN0YW50aWF0ZV9wZW5kaW5nX3RlbXBsYXRlcyk6IEFkanVzdC4KCgkqIGNwLXRyZWUuaCAoc3RydWN0IHNhdmVkX3Njb3BlKTogUmVtb3ZlIGxhbmdfc3RhY2sgZmllbGQuCgkoY3VycmVudF9sYW5nX3N0YWNrKTogUmVtb3ZlLgoJKiBkZWNsLmMgKG1heWJlX3B1c2hfdG9fdG9wX2xldmVsKTogRG9uJ3QgaW5pdGlhbGl6ZSBpdC4KCShkdXBsaWNhdGVfZGVjbHMpOiBVc2UgY3VycmVudF9sYW5nX2RlcHRoLgoJKHhyZWZfYmFzZXR5cGVzKTogTGlrZXdpc2UuCgkqIGNsYXNzLmMgKGN1cnJlbnRfbGFuZ19kZXB0aCk6IE5ldyBmbi4KCShwdXNoX2xhbmdfY29udGV4dCk6IFVzZSBtb3JlIHZhcnJheSBmdW5jdGlvbmFsaXR5LgoJKHBvcF9sYW5nX2NvbnRleHQpOiBMaWtld2lzZS4KCgkqIGVycm9yLmMgKEdMT0JBTF9USElORyk6IEFsd2F5cyB1c2UgJ19fJy4KCjIwMDEtMDMtMjEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChidWlsZF9jbG9uZSk6IENsZWFyIERFQ0xfQVNTRU1CTEVSX05BTUUuCgoJKiBtYW5nbGUuYyAobWFuZ2xlX2RlY2xfc3RyaW5nKTogTWFuZ2xlIHRoZSBuYW1lcyBvZiBvdmVybG9hZGVkCglvcGVyYXRvcnMsIGV2ZW4gd2hlbiB0aGV5IGhhdmUgYGV4dGVybiAiQyInIGxpbmthZ2UuCgoyMDAxLTAzLTE5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoZ2V0X3Z0YWJsZV9kZWNsKTogVXNlIFNFVF9ERUNMX0FTU0VNQkxFUl9OQU1FLAoJQ09QWV9ERUNMX0FTU0VNQkxFUl9OQU1FLCBldGMuICBEb24ndCBzZXQgREVDTF9BU1NFTUJMRVJfTkFNRQoJd2hlcmUgaXQncyBub3QgbmVjZXNzYXJ5LgoJKGFkZF9tZXRob2QpOiBSZW1vdmUgb3B0aW1pemF0aW9uIGludm9sdmluZyBjb21wYXJpc29uIG9mCglERUNMX0FTU0VNQkxFUl9OQU1FLgoJKGJ1aWxkX3Z0Ymxfb3JfdmJhc2VfZmllbGQpOiBVc2UgU0VUX0RFQ0xfQVNTRU1CTEVSX05BTUUsCglDT1BZX0RFQ0xfQVNTRU1CTEVSX05BTUUsIGV0Yy4gIERvbid0IHNldCBERUNMX0FTU0VNQkxFUl9OQU1FCgl3aGVyZSBpdCdzIG5vdCBuZWNlc3NhcnkuCgkoY2hlY2tfbWV0aG9kcyk6IExpa2V3aXNlLgoJKGJ1aWxkX2Nsb25lKTogTGlrZXdpc2UuCgkoYnVpbHRfdnR0KTogTGlrZXdpc2UuCgkqIGNwLXRyZWUuaCAoREVDTF9ORUVERURfUCk6IExpa2V3aXNlLgoJKiBkZWNsLmMgKHB1c2h0YWcpOiBMaWtld2lzZS4KCShkdXBsaWNhdGVfZGVjbHMpOiBMaWtld2lzZS4KCShwdXNoZGVjbCk6IExpa2V3aXNlLgoJKGJ1aWx0aW5fZnVuY3Rpb24pOiBMaWtld2lzZS4KCShidWlsZF9saWJyYXJ5X2ZuXzEpOiBTZXQgREVDTF9MQU5HVUFHRSBmb3IgbGlicmFyeSBmdW5jdGlvbnMuCgkoYnVpbGRfY3BfbGlicmFyeV9mbik6IExpa2V3aXNlLgoJKG1heWJlX2NvbW1vbml6ZV92YXIpOiBVc2UgU0VUX0RFQ0xfQVNTRU1CTEVSX05BTUUsCglDT1BZX0RFQ0xfQVNTRU1CTEVSX05BTUUsIGV0Yy4gIERvbid0IHNldCBERUNMX0FTU0VNQkxFUl9OQU1FCgl3aGVyZSBpdCdzIG5vdCBuZWNlc3NhcnkuCgkobWFrZV9ydGxfZm9yX25vbmxvY2FsX2RlY2wpOiBMaWtld2lzZS4KCShjcF9maW5pc2hfZGVjbCk6IExpa2V3aXNlLgoJKGdyb2tmbmRlY2wpOiBMaWtld2lzZS4KCShncm9rdmFyZGVjbCk6IExpa2V3aXNlLgoJKGdyb2tkZWNsYXJhdG9yKTogTGlrZXdpc2UuCgkoc3RhcnRfZnVuY3Rpb24pOiBMaWtld2lzZS4KCShjcF9taXNzaW5nX3JldHVybl9va19wKTogTGlrZXdpc2UuCgkqIGRlY2wyLmMgKGdyb2tjbGFzc2ZuKTogTGlrZXdpc2UuCgkoY2hlY2tfY2xhc3Nmbik6IExpa2V3aXNlLgoJKGZpbmlzaF9zdGF0aWNfZGF0YV9tZW1iZXJfZGVjbCk6IExpa2V3aXNlLgoJKGdyb2tmaWVsZCk6IExpa2V3aXNlLgoJKiBlcnJvci5jIChHTE9CQUxfSU9SRF9QKTogUmVtb3ZlLgoJKGR1bXBfZ2xvYmFsX2lvcmQpOiBJbXByb3ZlIG91dHB1dC4KCShkdW1wX2RlY2wpOiBBdm9pZCB1c2luZyBERUNMX0FTU0VNQkxFUl9OQU1FLgoJKiBleGNlcHQuYyAobm90aHJvd19saWJmbl9wKTogU3VtbWFyaWx5IHJlamVjdCBhbnkgZnVuY3Rpb24gbm90IGluCgluYW1lc3BhY2Utc2NvcGUuCgkqIGluaXQuYyAoYnVpbGRfamF2YV9jbGFzc19yZWYpOiBEb24ndCBleHBsaWNpdGx5IHNldAoJREVDTF9BU1NFTUJMRVJfTkFNRSBhZnRlciBjYWxsaW5nIG1hbmdsZV9kZWNsLgoJKiBtYW5nbGUuYyAobWFuZ2xlX2RlY2xfc3RyaW5nKTogSGFuZGxlIGV4dGVybiAiQyIgZnVuY3Rpb25zLgoJKG1hbmdsZV9kZWNsKTogU2V0IHRoZSBERUNMX0FTU0VNQkxFUl9OQU1FIGZvciB0aGUgZGVjbC4KCSogbWV0aG9kLmMgKHNldF9tYW5nbGVkX25hbWVfZm9yX2RlY2wpOiBEb24ndCBleHBsaWNpdGx5IHNldAoJREVDTF9BU1NFTUJMRVJfTkFNRSBhZnRlciBjYWxsaW5nIG1hbmdsZV9kZWNsLgoJKG1ha2VfdGh1bmspOiBFeHBsaWNpdGx5IHNldCB0aGUgREVDTF9BU1NFTUJMRVJfTkFNRSBhbmQKCUlERU5USUZJRVJfR0xPQkFMX1ZBTFVFIGZvciB0aGUgdGh1bmsuCgkqIHB0LmMgKHNldF9tYW5nbGVkX25hbWVfZm9yX3RlbXBsYXRlX2RlY2wpOiBSZW1vdmUuCgkoY2hlY2tfZXhwbGljaXRfc3BlY2lhbGl6YXRpb24pOiBEb24ndCB1c2UgaXQuCgkobG9vdXBfdGVtcGxhdGVfY2xhc3MpOiBEb24ndCBzZXQgREVDTF9BU1NFTUJMRVJfTkFNRS4KCSh0c3Vic3RfZnJpZW5kX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkodHN1YnN0X2RlY2wpOiBMaWtld2lzZS4KCShyZWdlbmVyYXRlX2RlY2xfZnJvbV90ZW1wbGF0ZSk6IFVzZSBDT1BZX0RFQ0xfQVNTRU1CTEVSX05BTUUuCgkqIHJ0dGkuYyAoZ2V0X3RpbmZvX2RlY2wpOiBVc2UgU0VUX0RFQ0xfQVNTRU1CTEVSX05BTUUsCglDT1BZX0RFQ0xfQVNTRU1CTEVSX05BTUUsIGV0Yy4gIERvbid0IHNldCBERUNMX0FTU0VNQkxFUl9OQU1FCgl3aGVyZSBpdCdzIG5vdCBuZWNlc3NhcnkuCgkodGluZm9fYmFzZV9pbml0KTogTGlrZXdpc2UuCgkoY3JlYXRlX3JlYWxfdGluZm9fdmFyKTogTGlrZXdpc2UuCgkqIHNlYXJjaC5jIChsb291cF9maWVsZF8xKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfbmFtZWRfcmV0dXJuX3ZhbHVlKTogTGlrZXdpc2UuCgkqIHRyZWUuYyAoaW5pdF90cmVlKTogU2V0IGxhbmdfc2V0X2RlY2xfYXNzZW1ibGVyX25hbWUuCgoyMDAxLTAzLTE1ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJQ29ycmVjdCBzZW1hbnRpY3MgcmVzdHJpY3Rpb25zIGNoZWNraW5nIGluIHRocm93LWV4cHJlc3Npb24uCgkqIGV4Y2VwdC5jIChpc19hZG1pc3NpYmxlX3Rocm93X29wZXJhbmQpOiBOZXcgZnVuY3Rpb24uCgkoYnVpbGRfdGhyb3cpOiBVc2UgaXQuCgoyMDAxLTAzLTE0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChjcF9tYWtlX2ZubmFtZV9kZWNsKTogU2V0IERFQ0xfSUdOT1JFRF9QIG9uIF9fRlVOQ1RJT05fXwoJYW5kIGl0cyBpbGsuCgoyMDAxLTAzLTE0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoYnVpbGRfY2xvbmUpOiBVc2UgQ09QWV9ERUNMX1JUTCwgREVDTF9SVExfU0VUX1AsIGV0Yy4KCSogY3AtdHJlZS5oIChERUNMX0lOX01FTU9SWV9QKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogTGlrZXdpc2UuCgkoYnVpbHRpbl9mdW5jdGlvbik6IExpa2V3aXNlLgoJKGJ1aWxkX2xpYnJhcnlfZm4pOiBMaWtld2lzZS4KCShidWlsZF9jcF9saWJyYXJ5X2ZuKTogTGlrZXdpc2UuCgkoY2hlY2tfaW5pdGlhbGl6ZXIpOiBMaWtld2lzZS4KCShjcF9maW5pc2hfZGVjbCk6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChncm9rZmllbGQpOiBMaWtld2lzZS4KCShncm9rX2Z1bmN0aW9uX2luaXQpOiBSZW1vdmUgI2lmIDAnZCBjb2RlLgoJKGZpbmlzaF9hbm9uX3VuaW9uKTogVXNlIENPUFlfREVDTF9SVEwsIERFQ0xfUlRMX1NFVF9QLCBldGMuCgkqIGZyaWVuZC5jIChkb19mcmllbmQpOiBMaWtld2lzZS4KCSogaW5pdC5jIChnZXRfdGVtcF9yZWd2YXIpOiBMaWtld2lzZS4KCSogbWV0aG9kLmMgKG1ha2VfdGh1bmspOiBMaWtld2lzZS4KCSogcHQuYyAodHN1YnN0X2ZyaWVuZF9mdW5jdGlvbik6IExpa2V3aXNlLgoJKHRzdWJzdF9kZWNsKTogTGlrZXdpc2UuCgkocmVnZW5lcmF0ZV9kZWNsX2Zyb21fdGVtcGxhdGUpOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGdlbnJ0bF9uYW1lZF9yZXR1cm5fdmFsdWUpOiBMaWtld2lzZS4KCShleHBhbmRfYm9keSk6IExpa2V3aXNlLgoJKGdlbnJ0bF9maW5pc2hfZnVuY3Rpb24pOiBMaWtld2lzZS4KCSogdHJlZS5jIChjcF90cmVlX2VxdWFsKTogTGlrZXdpc2UuCgoyMDAxLTAzLTEyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChjb252ZXJ0X2xpa2VfcmVhbCk6IEFkZCBleHRyYSBzZW1hbnRpY3MgdG8gSU5ORVIKCXBhcmFtZXRlci4gRG9uJ3QgY29udmVydCB0byB0ZW1wb3JhcnkgaWYgYSB1c2VyIGNvbnZlcnNpb24KCWdpdmVzIHVzIGFuIGx2YWx1ZSB0aGF0IHdlJ3JlIGFib3V0IHRvIGJpbmQgdG8gYSByZWZlcmVuY2UuCglTZXQgSU5ORVIgdG8gaW5kaWNhdGUgcGVuZGluZyByZWZlcmVuY2UgYmluZGluZyBvbiByZWN1cnNpdmUKCWNhbGxzLgoKMjAwMS0wMy0xMCAgTmVpbCBCb290aCAgPG5laWxAZGFpa29rdXlhLmRlbW9uLmNvLnVrPgoKCSogY3AvbGV4LmM6IERlbGV0ZSBkdXBsaWNhdGUgcGVuZGluZ19sYW5nX2NoYW5nZS4KCjIwMDEtMDMtMTAgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNwL2xleC5jIChoYW5kbGVfcHJhZ21hX2ludGVyZmFjZSwgaGFuZGxlX3ByYWdtYV9pbXBsZW1lbnRhdGlvbik6CglTaW1pbGFybHkuCgkqIGNwL3JlcG8uYyAoZ2V0X2Jhc2VfZmlsZW5hbWUsIG9wZW5fcmVwb19maWxlKTogU2ltaWxhcmx5LgoJKiBjcC9jcC10cmVlLmg6IFJlbW92ZSBmaWxlX25hbWVfbm9uZGlyZWN0b3J5IHByb3RvdHlwZS4KCjIwMDEtMDMtMDkgIFphY2sgV2VpbmJlcmcgIDx6YWNrd0BzdGFuZm9yZC5lZHU+CgoJKiBNYWtlLWxhbmcuaW46IEFkZCBkZXBlbmRlbmNpZXMgb24gJChUTV9QX0gpIGFzIGFwcHJvcHJpYXRlLgoKMjAwMS0wMy0wOCAgU3RhbiBTaGVicyAgPHNoZWJzQGFwcGxlLmNvbT4KCgkqIGNwLXRyZWUuaCAoc2V0X2lkZW50aWZpZXJfbG9jYWxfdmFsdWUpOiBSZW1vdmUgdW51c2VkIGRlY2wuCgoyMDAxLTAzLTA2ICBaYWNrIFdlaW5iZXJnICA8emFja3dAc3RhbmZvcmQuZWR1PgoKCSogc3Bldy5jOiBSZW1vdmUgcmVmZXJlbmNlcyB0byBDUFBfT1NUUklORy4KCjIwMDEtMDMtMDYgIEFuZHJldyBIYWxleSAgPGFwaEByZWRoYXQuY29tPgoKCSogdHlwZWNrLmMgKGNvbnZlcnRfYXJndW1lbnRzKTogQ2hlY2sgdGhhdCB3ZSBoYXZlIGFuIGZuZGVjbC4KCjIwMDEtMDMtMDUgIEFuZHJldyBIYWxleSAgPGFwaEByZWRoYXQuY29tPgoKCSogdHlwZWNrLmMgKGNvbnZlcnRfYXJndW1lbnRzKTogRG9uJ3QgZG8gZWxsaXBzaXMgY29udmVyc2lvbiBmb3IKCV9fYnVpbHRfaW5fY29uc3RhbnRfcC4KCjIwMDEtMDMtMDIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0eXBlY2suYyAoYnVpbGRfc3RhdGljX2Nhc3QpOiBBbGxvdyBlbnVtIHRvIGVudW0gY29udmVyc2lvbnMKCWFzIHBlciBEUiAxMjguCgoyMDAxLTAzLTAyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoY2hlY2tfZmllbGRfZGVjbHMpOiBQb2ludGVycyB0byBtZW1iZXIgZG8gbm90IGEKCW5vbi1wb2Qgc3RydWN0IG1ha2UsIGFzIHBlciBEUiAxNDguCgoyMDAxLTAzLTAyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChqb3VzdCk6IGNwX3BlZHdhcm4gd2hlbiB1c2luZyBnbnUgZXh0ZW5zaW9uIGNvbmNlcm5pbmcKCXdvcnN0IGNvbnZlcnNpb24gc2VxdWVuY2VzLgoKMjAwMS0wMy0wMSAgWmFjayBXZWluYmVyZyAgPHphY2t3QHN0YW5mb3JkLmVkdT4KCgkqIGRlY2wuYzogUmVwbGFjZSBhbGwgdXNlcyBvZiAnYm9vbGVhbicgd2l0aCAnYm9vbCcuCgoyMDAxLTAzLTAxICBaYWNrIFdlaW5iZXJnICA8emFja3dAc3RhbmZvcmQuZWR1PgoKCSogbGFuZy1zcGVjcy5oOiBBZGQgemVybyBpbml0aWFsaXplciBmb3IgY3BwX3NwZWMgZmllbGQgdG8KCWFsbCBhcnJheSBlbGVtZW50cyB0aGF0IG5lZWQgb25lLiAgRG9uJ3QgcHV0IGFuICNpZmRlZiBpbnNpZGUKCXRoZSBpbml0aWFsaXplciBsaXN0OyBzZXQgYSBkZWZhdWx0IGZvciBDUExVU1BMVVNfQ1BQX1NQRUMgYW5kCgl1c2UgaXQuCgoyMDAxLTAzLTAxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCUltcGxlbWVudCB1c2luZyBkZWNscyBpbnNpZGUgdGVtcGxhdGUgZnVuY3Rpb25zLgoJKiBkZWNsMi5jICh2YWxpZGF0ZV9ub25tZW1iZXJfdXNpbmdfZGVjbCk6IERvbid0IHNwZWNpYWwgY2FzZQoJZmFrZV9zdGRfbm9kZSBpbiB0aGUgZ2xvYmFsIG5hbWVzcGFjZS4gRG9uJ3QgcmVqZWN0IGVhcmx5IHdoZW4KCXByb2Nlc3NpbmcgYSB0ZW1wbGF0ZS4KCShkb19sb2NhbF91c2luZ19kZWNsKTogQWRkIHRvIHN0YXRlbWVudCB0cmVlLiBEb24ndCBkbyBmdXJ0aGVyCglwcm9jZXNzaW5nIHdoZW4gYnVpbGRpbmcgYSB0ZW1wbGF0ZS4KCSogcHQuYyAodHN1YnN0X2V4cHIsIERFQ0xfU1RNVCBjYXNlKTogRGVhbCB3aXRoIFVTSU5HX0RFQ0xzLgoKMjAwMS0wMy0wMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wyLmMgKGRvX25vbm1lbWJlcl91c2luZ19kZWNsKTogRG9uJ3QgY29tcGxhaW4gaWYgd2UgZmluZAoJc2FtZSBmdW5jdGlvbi4gRG8gY29tcGxhaW4gYWJvdXQgYW1iaWd1YXRpbmcgZXh0ZXJuICJDIgoJZGVjbGFyYXRpb25zLgoKMjAwMS0wMi0yOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglSZW1vdmUgZmxvYXRpbmcgcG9pbnQgYW5kIGNvbXBsZXggdHlwZSB0ZW1wbGF0ZSBjb25zdGFudCBwYXJtcy4KCSogcHQuYyAoY29udmVydF9ub250eXBlX2FyZ3VtZW50KTogUmVtb3ZlIFJFQUxfVFlQRSBhbmQKCUNPTVBMRVhfVFlQRSBleHRlbnNpb25zLgoJKGludmFsaWRfbm9udHlwZV9wYXJtX3R5cGVfcCk6IExpa2V3aXNlLgoKMjAwMS0wMi0yNyAgSmVmZnJleSBPbGRoYW0gIDxvbGRoYW1AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGV4Y2VwdC5jIChjYWxsX2VoX2luZm8pOiBSZXZlcnQgIm1hdGNoX2Z1bmN0aW9uIidzIHR5cGUuCgoyMDAxLTAyLTI3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCUZpeCBjdG9yIHZ0YWJsZSB2Y2FsbCBvZmZzZXRzLgoJKiBjbGFzcy5jIChzdHJ1Y3QgdnRibF9pbml0X2RhdGFfcyk6IEFkZCBydHRpX2JpbmZvIG1lbWJlci4KCShidWlsZF9ydHRfdnRibF9lbnRyaWVzKTogTG9zZSBSVFRJX0JJTkZPIHBhcmFtZXRlci4KCShnZXRfbWF0Y2hpbmdfYmFzZSk6IFJlbW92ZS4KCShnZXRfb3JpZ2luYWxfYmFzZSk6IE5ldyBmdW5jdGlvbi4KCShidWlsZF92dGJsX2luaXRpYWxpemVyKTogSW5pdGlhbGl6ZSB2aWQucnR0aV9iaW5mby4KCVVzZSBhIHZpcnR1YWwgdGh1bmsgZm9yIGEgY3RvciB2dGFibGUgd2l0aCBhbiBpbmRleAoJKGFkZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzXzEpOiBDaGVjayBpZiBiaW5mbyBoYXMgbG9zdCBhCglwcmltYXJ5IGJhc2Ugd2l0aGluIGEgY29uc3RydWN0b3IgdnRhYmxlLiBPbmx5IHNldAoJQlZfVkNBTExfSU5ERVggd2hlbiBub3QgYSBjb25zdHJ1Y3RvciB2dGFibGUuIEFkanVzdCB2Y2FsbCBvZmZzZXQKCXdoZW4gcHJpbWFyeSBiYXNlIGhhcyBiZWVuIGxvc3QuCgkqIGNwLXRyZWUuaCAoQklORk9fVklSVFVBTFMpOiBSZW1vdmUgYW1iaWd1aXR5IGZyb20gY29tbWVudC4KCjIwMDEtMDItMjYgIEplZmZyZXkgT2xkaGFtICA8b2xkaGFtQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGpvdXN0KTogRW5zdXJlIG1vcmVfc3BlY2lhbGl6ZWQoKSdzIGFyZ3VtZW50IGxlbmd0aAoJcGFyYW1ldGVyIGhhcyBjb3JyZWN0IHZhbHVlIGZvciBjb25zdHJ1Y3RvcnMuCgoyMDAxLTAyLTI2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZXhjZXB0LmMgKGNhbGxfZWhfaW5mbyk6IENsZWFudXAgZ2VuZXJhdGlvbiBvZiBjcF9laF9pbmZvIHN0cnVjdC4KCgkqIGRlY2wuYyAobWFya19pbmxpbmVkX2Zucyk6IFByb3RvdHlwZS4KCjIwMDEtMDItMjIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzcGV3LmMgKHl5bGV4KTogQ29ycmVjdCBoYW5kbGluZyBvZiBmcmllbmRzLgoKMjAwMS0wMi0yMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG1hbmdsZS5jICh3cml0ZV9lbmNvZGluZyk6IFBhc3Mgd3JpdGVfZnVuY3Rpb25fdHlwZSB0aGUKCUZVTkNUSU9OX0RFQ0wgZm9yIHRoZSBmdW5jdGlvbiBiZWluZyBlbmNvZGVkLgoJKHdyaXRlX2Z1bmN0aW9uX3R5cGUpOiBQYXNzIGl0IGFsb25nIHRvIHdyaXRlX2JhcmVfZnVuY3Rpb25fdHlwZS4KCSh3cml0ZV9iYXJlX2Z1bmN0aW9uX3R5cGUpOiBQYXNzIGl0IGFsb25nIHRvIHdyaXRlX21ldGhvZF9wYXJtcy4KCSh3cml0ZV9tZXRob2RfcGFybXMpOiBEb24ndCBtYW5nbGUgdGhlIGNvbXBpbGVyLWdlbmVyYXRlZAoJcGFyYW1ldGVycyB0byBhIGNvbnN0cnVjdG9yIG9yIGRlc3RydWN0b3IuCgoyMDAxLTAyLTIyICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBvcHRpbWl6ZS5jOiBJbmNsdWRlIHRvcGxldi5oIGZvcgoJbm90ZV9kZWZlcnJhbF9vZl9kZWZpbmVkX2lubGluZV9mdW5jdGlvbiBwcm90b3R5cGUuCgoyMDAxLTAyLTIyICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNwLXRyZWUuaCAoc3RydWN0IGxhbmdfZGVjbF9pbmxpbmVkX2Zucyk6IE5ldy4KCShzdHJ1Y3QgbGFuZ19kZWNscyk6IEFkZCBpbmxpbmVkX2Zucy4KCShERUNMX0lOTElORURfRk5TKTogTmV3IG1hY3JvLgoJKiBvcHRpbWl6ZS5jIChzdHJ1Y3QgaW5saW5lX2RhdGEpOiBBZGQgaW5saW5lZF9mbnMuCgkoZGVjbGFyZV9yZXR1cm5fdmFyaWFibGUpOiBVc2UgVkFSUkFZX0FDVElWRV9TSVpFIG1hY3JvLgoJKGlubGluYWJsZV9mdW5jdGlvbl9wKTogTGlrZXdpc2UsIGZpeCB0eXBvIGluIGNvbW1lbnQsCglmdW5jdGlvbiBpcyBub3QgaW5saW5hYmxlIGlmIGl0IGFscmVhZHkgaW5saW5lZCBmdW5jdGlvbiBjdXJyZW50bHkKCWJlaW5nIG9wdGltaXplZC4KCShleHBhbmRfY2FsbF9pbmxpbmUpOiBBZGQgZm4gdG8gaW5saW5lZF9mbnMgaWYgbmVjZXNzYXJ5LgoJKG9wdGltaXplX2Z1bmN0aW9uKTogSW5pdGlhbGl6ZSBpbmxpbmVkX2Zucy4KCVNhdmUgaW5saW5lZF9mbnMgaW50byBERUNMX0lOTElORURfRk5TIGFmdGVyIGV4cGFuZGluZyBpbmxpbmVzLgoJKiBkZWNsLmMgKG1hcmtfaW5saW5lZF9mbnMpOiBOZXcgZnVuY3Rpb24uCgkobGFuZ19tYXJrX3RyZWUpOiBDYWxsIGl0LgoKMjAwMS0wMi0yMSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBsYW5nX2RlY2xfZmxhZ3MpOiBSZW1vdmUgdW5pbmxpbmFibGUgZmxhZy4KCShERUNMX1VOSU5MSU5BQkxFKTogTW92ZSB0byBtaWRkbGUtZW5kLgoKCSogY2xhc3MuYyAoY2xvbmVfZnVuY3Rpb25fZGVjbCk6IFNldCBERUNMX0FCU1RSQUNUIG9uIG9yaWdpbmFsIGZuLgoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IFByZXNlcnZlIERFQ0xfQUJTVFJBQ1QuCgkqIGNsYXNzLmMgKGJ1aWxkX2Nsb25lKTogU2V0IERFQ0xfQUJTVFJBQ1RfT1JJR0lOIGZvciB0aGUgY2xvbmUuCgkqIG9wdGltaXplLmMgKG1heWJlX2Nsb25lX2JvZHkpOiBTZXQgREVDTF9BQlNUUkFDVF9PUklHSU4gZm9yIHRoZQoJcGFybXMgYW5kIG91dGVyIEJMT0NLLiAgbm90ZV9kZWZlcnJhbF9vZl9kZWZpbmVkX2lubGluZV9mdW5jdGlvbi4KCgkqIG1ldGhvZC5jIChpbXBsaWNpdGx5X2RlY2xhcmVfZm4pOiBEb24ndCBzZXQgREVDTF9BUlRJRklDSUFMIG9uCglzZWNvbmQgcGFybSBvZiBvcD0uCgoyMDAxLTAyLTE5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoc2V0X2RlY2xfbmFtZXNwYWNlKTogQWxsb3cgZXhwbGljaXQgaW5zdGFudGlhdGlvbnMgaW4KCWFueSBuYW1lc3BhY2UuCgoyMDAxLTAyLTE4ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIG9wdGltaXplLmMgKGV4cGFuZF9jYWxsX2lubGluZSk6IERvbid0IHdhbGsgc3VidHJlZXMgb2YgdHlwZQoJbm9kZXMuCgoyMDAxLTAyLTE4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoYWRkX3ZjYWxsX29mZnNldF92dGJsX2VudHJpZXNfMSk6IE9ubHkgYWRkIG9uZSBlbnRyeQoJZm9yIGEgZGVzdHJ1Y3Rvci4KCjIwMDEtMDItMTggIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCURvIHB1dCB0aGUgVlRUIHBhcmFtZXRlciBpbiBERUNMX0FSR1VNRU5UUy4KCSogY3AtdHJlZS5oIChzdHJ1Y3QgY3BfbGFuZ3VhZ2VfZnVuY3Rpb24pOiBBZGQgeF92dHRfcGFybS4KCShjdXJyZW50X3Z0dF9wYXJtKTogTmV3IG1hY3JvLgoJKHN0cnVjdCBsYW5nX2RlY2xfZmxhZ3MpOiBBZGQgaGFzX3Z0dF9wYXJtX3AsIHJlbW92ZSB2dHRfcGFybS4KCShERUNMX0hBU19WVFRfUEFSTV9QKTogTmV3IG1hY3JvLgoJKERFQ0xfVlRUX1BBUk0pOiBSZW1vdmUuCgkoRlVOQ1RJT05fRklSU1RfVVNFUl9QQVJNVFlQRSwgRlVOQ1RJT05fRklSU1RfVVNFUl9QQVJNKTogTmV3IG1hY3Jvcy4KCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBPbmx5IGNvcHkgdGhlIG9wZXJhdG9yIGNvZGUgaWYKCWFwcHJvcHJpYXRlLgoJKHN0YXJ0X2Z1bmN0aW9uKTogU2V0IGN1cnJlbnRfdnR0X3Bhcm0uCgkobGFuZ19tYXJrX3RyZWUpOiBEb24ndCBtYXJrIHZ0dF9wYXJtLgoJKiBkZWNsMi5jIChtYXliZV9yZXRyb2ZpdF9pbl9jaHJnKTogRG8gYWRkIHRoZSBWVFQgcGFybSB0bwoJREVDTF9BUkdVTUVOVFMuICBTZXQgREVDTF9IQVNfVlRUX1BBUk1fUC4KCSogY2xhc3MuYyAoYnVpbGRfY2xvbmUpOiBNYXliZSByZW1vdmUgdGhlIFZUVCBwYXJtLgoJKiBvcHRpbWl6ZS5jIChtYXliZV9jbG9uZV9ib2R5KTogU2V0IHVwIHRoZSBWVFQgcGFybS4KCSogcHQuYyAoY29weV9kZWZhdWx0X2FyZ3NfdG9fZXhwbGljaXRfc3BlYyk6IFByZXNlcnZlIHRoZSBWVFQgcGFybS4KCSogY2FsbC5jIChidWlsZF9vdmVyX2NhbGwpOiBKdXN0IGFsbG93IHRoZSBWVFQgYXJnLgoJKiBtZXRob2QuYyAobWFrZV90aHVuayk6IERvbid0IHNldCBERUNMX1ZUVF9QQVJNLgoJKGRvX2J1aWxkX2NvcHlfY29uc3RydWN0b3IpOiBVc2UgRlVOQ1RJT05fRklSU1RfVVNFUl9QQVJNLgoJKHN5bnRoZXNpemVfbWV0aG9kKTogVXNlIEZVTkNUSU9OX0ZJUlNUX1VTRVJfUEFSTVRZUEUuCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IsIGNvcHlfYXJnc19wLCBncm9rX2N0b3JfcHJvcGVydGllcyk6IExpa2V3aXNlLgoJKiBlcnJvci5jIChkdW1wX2Z1bmN0aW9uX2RlY2wpOiBMaWtld2lzZS4KCSogY2FsbC5jIChidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xLAljb252ZXJ0X2xpa2VfcmVhbCk6IEFib3J0CglpZiB3ZSB0cnkgdG8gY2FsbCBhIGNvbnN0cnVjdG9yIHdpdGggaW4tY2hhcmdlIG9yIFZUVCBwYXJtcy4KCSogbWV0aG9kLmMgKHNraXBfYXJ0aWZpY2lhbF9wYXJtc19mb3IpOiBOZXcgZm4uCgkqIGNhbGwuYyAoYWRkX2Z1bmN0aW9uX2NhbmRpZGF0ZSwgYnVpbGRfb3Zlcl9jYWxsKTogQ2FsbCBpdC4KCSogY2FsbC5jIChidWlsZF9uZXdfbWV0aG9kX2NhbGwpOiBVc2UgY3VycmVudF92dHRfcGFybS4KCSogaW5pdC5jIChleHBhbmRfdmlydHVhbF9pbml0KTogTGlrZXdpc2UuCgkqIGNsYXNzLmMgKHNhbWVfc2lnbmF0dXJlX3ApOiBObyBsb25nZXIgc3RhdGljLgoJKiBjcC10cmVlLmg6IERlY2xhcmUgaXQuCgkqIHNlYXJjaC5jIChsb29rX2Zvcl9vdmVycmlkZXNfcik6IFVzZSBpdC4KCjIwMDEtMDItMTcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKG5ld19hYmlfcnR0aV9wKTogUmVtb3ZlLgoJKG5hbWVfbWFuZ2xpbmdfdmVyc2lvbik6IExpa2V3aXNlLgoJKGZsYWdfZG9fc3F1YW5nbGluZyk6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChidWlsZF9ydHRpX3Z0YmxfZW50cmllcyk6IFJlbW92ZSBvbGQgQUJJIHN1cHBvcnQuCgkqIGRlY2wuYyAoZ3Jva2ZuZGVjbCk6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChuYW1lX21hbmdsaW5nX3ZlcnNpb24pOiBSZW1vdmUuCgkoZmxhZ19kb19zcXVhbmdsaW5nKTogTGlrZXdpc2UuCgkobGFuZ19mX29wdGlvbnMpOiBSZW1vdmUgYHNxdWFuZ2xlJy4KCSh1bnN1cHBvcnRlZF9vcHRpb25zKTogQWRkIGBzcXVhbmdsZScuCgkoY3h4X2RlY29kZV9vcHRpb24pOiBJc3N1ZSBhIHdhcm5pbmcgYWJvdXQgdXNlcyBvZgoJLWZuYW1lLW1hbmdsaW5nLXZlcnNpb24uCgkoZmluaXNoX2ZpbGUpOiBSZW1vdmUgb2xkIEFCSSBzdXBwb3J0LgoJKiBwdC5jIChjaGVja19leHBsaWNpdF9zcGVjaWFsaXphdGlvbik6IExpa2V3aXNlLgoJKHRzdWJzdF9kZWNsKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoaW5pdF9ydHRpX3Byb2Nlc3NpbmcpOiBMaWtld2lzZS4KCShidWlsZF9oZWFkb2YpOiBMaWtld2lzZS4KCShnZXRfdGluZm9fZGVjbF9keW5hbWljKTogTGlrZXdpc2UuCgkodGluZm9fZnJvbV9kZWNsKTogTGlrZXdpc2UuCgkoYnVpbGRfZHluYW1pY19jYXN0XzEpOiBMaWtld2lzZS4KCShzeW50aGVzaXplX3RpbmZvX3Zhcik6IExpa2V3aXNlLgoJKiBpbml0LmMgKGJ1aWxkX25ldyk6IEFsbG93IGVudW1lcmF0aW9uIHR5cGVzIGZvciB0aGUgYXJyYXktYm91bmRzCglpbiBhIGRpcmVjdC1uZXctZGVjbGFyYXRvci4KCgkqIHNlbWFudGljcy5jIChmaW5pc2hfdHlwZW9mKTogUmVzb2x2ZSBPRkZTRVRfUkVGcy4KCgkqIHB0LmMgKGNoZWNrX2V4cGxpY2l0X3NwZWNpYWxpemF0aW9uKTogQ29weSBUUkVFX1BSSVZBVEUgYW5kCglUUkVFX1BST1RFQ1RFRCBmcm9tIHRoZSB0ZW1wbGF0ZSBiZWluZyBzcGVjaWFsaXplZC4KCjIwMDEtMDItMTcgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZGVjbDIuYyAoYnVpbGRfYXJ0aWZpY2lhbF9wYXJtKTogU2V0IFRSRUVfUkVBRE9OTFkuCgoJKiBkZWNsLmMgKGJhZF9zcGVjaWZpZXJzKTogQWxsb3cgdGhyb3cgc3BlY3Mgb24gdGhpbmdzIHdpdGgKCXBvaW50ZXItdG8tZnVuY3Rpb24gb3IgLW1lbWJlci1mdW5jdGlvbiB0eXBlLgoJKiBpbml0LmMgKGJ1aWxkX2RlZmF1bHRfaW5pdCk6IERvbid0IHVzZSBhIENPTlNUUlVDVE9SIHRvIGluaXRpYWxpemUKCWEgcG1mLgoKMjAwMS0wMi0xNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoY2hlY2tfZHRvcl9uYW1lKTogSGFuZGxlIHRlbXBsYXRlIG5hbWVzIGNvcnJlY3RseS4KCjIwMDEtMDItMTYgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogY3AtdHJlZS5oIChERUNMX1VTRV9WVFRfUEFSTSk6IFJlbW92ZS4KCSogZGVjbDIuYyAobWF5YmVfcmV0cm9maXRfaW5fY2hyZyk6IERvbid0IGNyZWF0ZSBpdC4KCSogb3B0aW1pemUuYyAobWF5YmVfY2xvbmVfYm9keSk6IERvbid0IHN1YnN0aXR1dGUgaXQuCgkqIGNhbGwuYyAoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogQ2hlY2sgaW5fY2hyZyBpbnN0ZWFkLgoJKiBpbml0LmMgKGV4cGFuZF92aXJ0dWFsX2luaXQpOiBMaWtld2lzZS4KCjIwMDEtMDItMTYgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoY2hlY2tfdGFnX2RlY2wpOiBNYWtlIHN1cmUgYSB0eXBlZGVmIGZvciBhbiBhbm9ueW1vdXMKCWNsYXNzLXR5cGUgaW50cm9kdWNlcyBhdCBsZWFzdCBhIHR5cGUtbmFtZS4KCjIwMDEtMDItMTYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY2FsbC5jIChjb252ZXJ0X2xpa2VfcmVhbCk6IENyZWF0ZSBhIHRlbXBvcmFyeSBmb3Igbm9uLWx2YWx1ZS4KCjIwMDEtMDItMTYgIEplZmZyZXkgT2xkaGFtICA8b2xkaGFtQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmg6IEZpeCB0eXBvcyBpbiBjb21tZW50cy4KCjIwMDEtMDItMTYgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogb3B0aW1pemUuYyAocmVtYXBfYmxvY2spOiBJZiB3ZSdyZSBjb21waWxpbmcgYSBjbG9uZSwgcGFzcyB0aGUKCW5ldyBibG9jayB0byBpbnNlcnRfYmxvY2suCgoyMDAxLTAyLTE2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogc2VtYW50aWNzLmMgKGZpbmlzaF9hc21fc3RtdCk6IFJvYnVzdGlmeS4KCjIwMDEtMDItMTUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwdC5jIChwdXNoX3RlbXBsYXRlX2RlY2xfcmVhbCk6IERvbid0IHJlbWFuZ2xlIHRoZSBuYW1lIG9mIGEKCWNsYXNzIHRlbXBsYXRlLgoKMjAwMS0wMi0xNSAgSmltIE1leWVyaW5nICA8bWV5ZXJpbmdAbHVjZW50LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAoYysrLmluc3RhbGwtY29tbW9uKTogRGVwZW5kIG9uIGluc3RhbGxkaXJzLgoJKGMrKy5pbnN0YWxsLWluZm8pOiBMaWtld2lzZS4KCShjKysuaW5zdGFsbC1tYW4pOiBMaWtld2lzZS4KCjIwMDEtMDItMTUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0eXBlY2syLmMgKGJ1aWxkX21fY29tcG9uZW50X3JlZik6IFJvYnVzdGlmeS4KCjIwMDEtMDItMTUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZnJpZW5kLmMgKGRvX2ZyaWVuZCk6IERvbid0IHRha2UgdGhlIG5lc3RlZCBbdGVtcGxhdGVdIGNsYXNzCglpbnRvIGFjY291bnQgd2hlbiBkZWNpZGluZyB3aGV0aGVyIHRvIHdhcm4gYWJvdXQgdGhlIGZyaWVuZAoJZnVuY3Rpb24gbm90IHJlZmVycmluZyB0byBhIHRlbXBsYXRlIGZ1bmN0aW9uLgoKMjAwMS0wMi0xNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiB0eXBlY2suYyAoYnVpbGRfdW5hcnlfb3ApOiBDbGFyaWZ5IGVycm9yIG1lc3NhZ2UuCgoyMDAxLTAyLTA4ICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJKiBwYXJzZS55IChjb21wb25lbnRfY29uc3RydWN0b3JfZGVjbGFyYXRvcik6IGFsbG93IG9wdGlvbmFsCglwYXJlbnRoZXNlcyBhcm91bmQgY29uc3RydWN0b3IgY2xhc3MgbmFtZS4KCjIwMDEtMDItMTQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHNldHVwX3Z0YmxfcHRyKTogTW92ZSBwcm90b3R5cGUgdG8gc2VtYW50aWNzLmMKCXNlY3Rpb24uCgkqIGluaXQuYyAoZW1pdF9iYXNlX2luaXQpOiBSZW1vdmUgaW5jb3JyZWN0IGNvbW1lbnQgYWJvdXQKCXZpcnR1YWwgYmFzZXMuCgkqIG1ldGhvZC5jIChtYWtlX3RodW5rKTogRml4IGNvbW1lbnQgYWxpZ25tZW50LgoKMjAwMS0wMi0xNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglLaWxsIHJlbW5hbnRzIG9mIHRoaXMgaXMgdmFyaWFibGUuCgkqIGNwLXRyZWUuaCAoZmxhZ190aGlzX2lzX3ZhcmlhYmxlKTogUmVtb3ZlLgoJKiBkZWNsMi5jIChmbGFnX3RoaXNfaXNfdmFyaWFibGUpOiBSZW1vdmUuCgkqIGNsYXNzLmMgKGZpeGVkX3R5cGVfb3JfbnVsbCk6IEFkZCBjZHRvciBwYXJtLiBBZGp1c3QuCgkoYnVpbGRfdmJhc2VfcGF0aCk6IFRoZSBwYXRoIGlzIG5vbi1zdGF0aWMsIGV2ZW4gaW4gYSBjZHRvci4KCShyZXNvbHZlc190b19maXhlZF90eXBlX3ApOiBBZGQgYWRkaXRpb25hbCByZXR1cm4gdmFsdWUuCgkqIHNlYXJjaC5jIChpbml0X3ZiYXNlX3BvaW50ZXJzKTogQWRqdXN0LgoJKiB0cmVlLmMgKGx2YWx1ZV9wXzEpOiBBZGp1c3QuCgkqIHR5cGVjay5jIChtYXJrX2FkZHJlc3NhYmxlKTogQWRqdXN0LgoKMjAwMS0wMi0xNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKHVuaWZ5KTogRG9uJ3QgY2hlY2sgY3YgcXVhbHMgb2YgYXJyYXkgdHlwZXMuCgoyMDAxLTAyLTE0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJlZS5jIChjcF9idWlsZF9xdWFsaWZpZWRfdHlwZV9yZWFsKTogVXNlIENQX1RZUEVfUVVBTFMgdG8KCWNoZWNrIHdoZXRoZXIgd2UgYWxyZWFkeSBoYXZlIHRoZSB0eXBlLgoKMjAwMS0wMi0xMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoQ0xBU1NUWVBFX0RFU1RSVUNUT1JTKTogRml4IHR5cG8gaW4gY29tbWVudC4KCSogY2FsbC5jIChidWlsZF9vcF9kZWxldGVfY2FsbCk6IFNpbXBsaWZ5IHRvIHJlbW92ZSBkdXBsaWNhdGUKCWNvZGUuCgkqIGNsYXNzLmMgKGNsb25lX2Z1bmN0aW9uX2RlY2wpOiBEb24ndCBidWlsZCB0aGUgZGVsZXRpbmcgdmFyaWFudAoJb2YgYSBub24tdmlydHVhbCBkZXN0cnVjdG9yLgoJKiBkZWNsLmMgKGZpbmlzaF9kZXN0cnVjdG9yX2JvZHkpOiBEb24ndCBjYWxsIGRlbGV0ZSBpZiB0aGlzIGlzIGEKCW5vbi12aXJ0dWFsIGRlc3RydWN0b3IuCgkqIGluaXQuYyAoYnVpbGRfZGVsZXRlKTogRXhwbGljaXRseSBjYWxsIGBvcGVyYXRvciBkZWxldGUnIHdoZW4KCWRlbGV0aW5nIGFuIG9iamVjdCB3aXRoIGEgbm9uLXZpcnR1YWwgZGVzdHJ1Y3Rvci4KCjIwMDEtMDItMTMgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogbGFuZy1zcGVjcy5oOiBBZGQgbW9yZSBfX0VYQ0VQVElPTlMuCgoyMDAxLTAyLTEyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrMi5jIChwcm9jZXNzX2luaXRfY29uc3RydWN0b3IpOiBDaGVjawoJVFJFRV9IQVNfQ09OU1RSVUNUT1IgYmVmb3JlIGlzc3VpbmcgbWlzc2luZyBpbml0IHdhcm5pbmcuCgoyMDAxLTAyLTEyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAobWF5YmVfYWRqdXN0X3R5cGVzX2Zvcl9kZWR1Y3Rpb24sIERFRFVDRV9PUkRFUiBjYXNlKToKCVJlbW92ZSBzcHVyaW91cyBpbmZvcm1hdGlvbiBpbiBjb21tZW50LiBBbGxvdyBmdXJ0aGVyCglhZGp1c3RtZW50cyBvZiBSRUZFUkVOQ0VfVFlQRSBhcmdzLgoKMjAwMS0wMi0xMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycmZuLmMgKGNwX2RlcHJlY2F0ZWQpOiBUd2VhayBkaWFnbm9zdGljIHRleHQuCgkqIHBhcnNlLnkgKG5ld19pbml0aWFsaXplcik6IERlcHJlY2F0ZSBpbml0aWFsaXplciBsaXN0cwoJZXh0ZW5zaW9uLgoKMjAwMS0wMi0xMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglSZW1vdmUgb2xkIEFCSSBzdXBwb3J0LgoKMjAwMS0wMi0xMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wyLmMgKGZsYWdfdnRhYmxlX3RodW5rcyk6IEFsd2F5cyBzZXQgaXQgdG8gMS4KCShmbGFnX25ld19hYmkpOiBMaWtld2lzZS4KCSogbGFuZy1zcGVjcy5oOiBSZW1vdmUgY29uZGl0aW9uYWwgb24gRU5BQkxFX05FV19HWFhfQUJJLgoKCSogTWFrZWZpbGUuaW4gKGcrK3NwZWMubyk6IEZpeCB0eXBvLgoKMjAwMS0wMi0wOSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBsYW5nLXNwZWNzLmg6IFJlc3RvcmUgZGVmaW5pdGlvbiBvZiBfX0VYQ0VQVElPTlMuCgoyMDAxLTAyLTA4ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHNlYXJjaC5jIChzaGFyZWRfbWVtYmVyX3ApOiBOZXcgZnVuY3Rpb24uCgkobG9va3VwX2ZpZWxkX3IpOiBVc2UgaXQuCgkqIGNwLXRyZWUuaCAoU0hBUkVEX01FTUJFUl9QKTogUmVtb3ZlLgoKCSogbWV0aG9kLmMgKHByb2Nlc3Nfb3ZlcmxvYWRfaXRlbSk6IEhhbmRsZSB0ZW1wbGF0ZS1kZXBlbmRlbnQgYXJyYXkKCWJvdW5kcy4KCSogcHQuYyAodHlwZV91bmlmaWNhdGlvbl9yZWFsKTogSWYgd2UgZW5kIHVwIHdpdGggdW5kZWR1Y2VkIG5vbnR5cGUKCXBhcm1zLCB0cnkgYWdhaW4uCgoJKiBkZWNsLmMgKGxvb2t1cF9uYW1lX3JlYWwpOiBUd2VhayB3YXJuaW5nIHRvIHJlZmVyIHRvIGRlY2xzLCBub3QKCXR5cGVzLgoKCSogdHlwZWNrMi5jIChmcmllbmRseV9hYm9ydCk6IERvbid0IHNheSBhbnl0aGluZyBpZiB3ZSBoYXZlCgllYXJsaWVyIGVycm9ycyBvciBzb3JyaWVzLgoKCSogZGVjbC5jIChjaGVja190YWdfZGVjbCk6IE5vdGljZSBhdHRlbXB0cyB0byByZWRlZmluZSBib29sIGFuZAoJd2NoYXJfdC4gIElnbm9yZSBpZiBpbl9zeXN0ZW1faGVhZGVyLgoKCSogZGVjbC5jIChtYXliZV9wdXNoX2NsZWFudXBfbGV2ZWwpOiBOZXcgZm4uLi4KCShzdGFydF9kZWNsXzEpOiAuLi5zcGxpdCBvdXQgZnJvbSBoZXJlLgoJKiBjdnQuYyAoYnVpbGRfdXBfcmVmZXJlbmNlKTogVXNlIGl0LgoJKiBjcC10cmVlLmg6IERlY2xhcmUgaXQuCgoyMDAxLTAyLTA3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogbGFuZy1zcGVjcy5oOiBVc2UgQ1BMVVNQTFVTX0NQUF9TUEVDIGZvciB0aGUgcHJlcHJvY2Vzc29yCglzcGVjLgoKMjAwMS0wMi0wNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IE1ha2Ugc3VyZSBpdCdzIGEgcHJpbWFyeQoJdGVtcGxhdGUgb3IgdGVtcGxhdGVfdGVtcGxhdGVfcGFybSB3aGVuIGNhbGxlZCBmcm9tIHRoZSBwYXJzZXIuCgkoaW5zdGFudGlhdGVfdGVtcGxhdGVfY2xhc3MpOiBBZGQgYXNzZXJ0aW9uLgoKMjAwMS0wMi0wNSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBtZXRob2QuYyAoYnVpbGRfbWFuZ2xlZF9uYW1lKSBbb2xkIGFiaV06IFByb3RlY3QgZmx1c2hfcmVwZWF0cygpCglmcm9tIGVycm9yX21hcmtfbm9kZS4KCjIwMDEtMDItMDUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJRml4IHNwZWNpZmljYXRpb24gYW5kIGltcGxlbWVudGF0aW9uIGJ1Z3MgaW4gVjMgQUJJCgljb25zdHJ1Y3Rpb24gdnRhYmxlcy4KCSogY3AtdHJlZS5oIChmbGFnX2R1bXBfY2xhc3NfbGF5b3V0KTogTmV3IGZsYWcuCgkoQklORk9fT1ZFUlJJREVfQUxPTkdfVklSVFVBTF9QQVRIX1ApOiBSZW1vdmUuCgkoQklORk9fTE9TVF9QUklNQVJZX1ApOiBOZXcgZmxhZy4KCShTRVRfQklORk9fTkVXX1ZUQUJMRV9NQVJLRUQpOiBBZGp1c3QgYXNzZXJ0cy4KCShCSU5GT19QUklNQVJZX01BUktFRF9QKTogUmVuYW1lIHRvIC4uLgoJKEJJTkZPX1BSSU1BUllfUCk6IC4uLiBoZXJlLgoJKGJpbmZvX3ZpYV92aXJ0dWFsKTogTmV3IHByb3RvdHlwZS4KCSogZGVjbDIuYyAoZmxhZ19kdW1wX2NsYXNzX2xheW91dCk6IE5ldyBmbGFnLgoJKGN4eF9kZWNvZGVfb3B0aW9uKTogU2V0IGl0LiBBZGp1c3QgLWZkdW1wLXRyYW5zbGF0aW9uLXVuaXQgdG8KCXVzZSBgPScgYXMgYSBmaWxlIG5hbWUgc2VwYXJhdG9yLgoJKiBpbml0LmMgKGRmc19pbml0aWFsaXplX3Z0YmxfcHRycyk6IFdhbGsgaW50byB2aXJ0dWFsIHByaW1hcnkKCWJhc2VzLgoJKGJ1aWxkX3Z0YmxfYWRkcmVzcyk6IElmIHRoaXMgaXMgYSB2aXJ0dWFsIHByaW1hcnkgYmFzZSwgdGhlbgoJZ2V0IHRoZSB2dGJsIG9mIHdoYXQgaXQgaXMgdWx0aW1hdGVseSBwcmltYXJ5IGZvci4KCSogc2VhcmNoLmMgKGRmc19za2lwX25vbnByaW1hcnlfdmJhc2VzX3VubWFya2VkcCk6IEFkanVzdAoJZm9yIEJJTkZPX1BSSU1BUllfUC4KCShkZnNfc2tpcF9ub25wcmltYXJ5X3ZiYXNlc19tYXJrZWRwKTogTGlrZXdpc2UuCgkoZ2V0X3NoYXJlZF92YmFzZV9pZl9ub3RfcHJpbWFyeSk6IExpa2V3aXNlLgoJKGRmc19nZXRfcHVyZV92aXJ0dWFscyk6IExpa2V3aXNlLgoJKGV4cGFuZF91cGNhc3RfZml4dXBzKTogTGlrZXdpc2UuCgkoZml4dXBfdmlydHVhbF91cGNhc3Rfb2Zmc2V0cyk6IExpa2V3aXNlLgoJKGRmc19maW5kX3ZiYXNlX2luc3RhbmNlKTogTGlrZXdpc2UuCgkoZmluZF92YmFzZV9pbnN0YW5jZSk6IExpa2V3aXNlLgoJKGJpbmZvX2Zyb21fdmJhc2UpOiBBZGp1c3QgY29tbWVudCB0byByZWZsZWN0IHJlYWxpdHkuCgkoYmluZm9fdmlhX3ZpcnR1YWwpOiBOZXcgZnVuY3Rpb24uCgkqIGNsYXNzLmMgKFZUVF9UT1BfTEVWRUxfUCwgVlRUX01BUktFRF9CSU5GT19QKTogTmV3IG1hY3JvcwoJZm9yIGJpbmZvIHdhbGtpbmcgZHVyaW5nIFZUVCBjb25zdHJ1Y3Rpb24uCgkoZGZzX21hcmtfcHJpbWFyeV9iYXNlcyk6IFJlbW92ZS4KCShmb3JjZV9jYW5vbmljYWxfYmluZm9fcik6IE5ldyBmdW5jdGlvbi4KCShmb3JjZV9jYW5vbmljYWxfYmluZm8pOiBOZXcgZnVuY3Rpb24uCgkobWFya19wcmltYXJ5X3ZpcnR1YWxfYmFzZSk6IE5ldyBmdW5jdGlvbi4KCShtYXJrX3ByaW1hcnlfYmFzZXMpOiBXYWxrIGluIGluaGVyaXRhbmNlIGdyYXBoIG9yZGVyLCB1c2UKCW1hcmtfcHJpbWFyeV92aXJ0dWFsX2Jhc2UuCgkoZGV0ZXJtaW5lX3ByaW1hcnlfYmFzZSk6IFVzZSBzb21lIG1vcmUgaW50ZXJtZWRpYXRlIHZhcmlhYmxlcy4KCShkZnNfZmluZF9maW5hbF9vdmVycmlkZXIpOiBEb24ndCBjaGVjayBmb3Igb3ZlcnJpZGluZyBhbG9uZyBhCgl2aXJ0dWFsIHBhdGguCgkoZGZzX21vZGlmeV92dGFibGVzKTogV2FsayBpbnRvIHByaW1hcnkgdmlydHVhbCBiYXNlcyB0b28uCgkod2Fsa19zdWJvYmplY3Rfb2Zmc2V0cyk6IEFkanVzdCBmb3IgQklORk9fUFJJTUFSWV9QLgoJKGJ1aWxkX2Jhc2VfZmllbGRzKTogTGlrZXdpc2UuCgkoZGZzX3NldF9vZmZzZXRfZm9yX3Vuc2hhcmVkX3ZiYXNlcyk6IExpa2V3aXNlLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogTGlrZXdpc2UuCgkoZW5kX29mX2NsYXNzKTogTGlrZXdpc2UuCgkoZmluaXNoX3N0cnVjdF8xKTogQ2FsbCBkdW1wX2NsYXNzX2hpZXJhcmNoeSwgaWYgcmVxdWVzdGVkLgoJKGRmc19nZXRfcHJpbWFyeV9iaW5mbyk6IFVzZSBCSU5GT19UWVBFIGZvciBiaW5mb3MuCgkoZHVtcF9jbGFzc19oaWVyYXJjaHlfcik6IEFkZCBzdHJlYW0gcGFyYW1ldGVyLiBFbWl0IG1vcmUgaW5mb3JtYXRpb24uCgkoZHVtcF9jbGFzc19oaWVyYXJjaHkpOiBBZGQgZmlsZSBwYXJhbWV0ZXIuIEFwcGVuZCB0byBmaWxlLCBpZgoJcmVxdWlyZWQuCgkoZmluaXNoX3Z0YmxzKTogQWRqdXN0IGFjY3VtdWxhdGVfdnRibF9pbml0cyBjYWxsLgoJVXNlIGNhbm9uaWNhbCBiYXNlIGZvciB2aXJ0dWFsIGJhc2VzLgoJKGJ1aWxkX3Z0dCk6IEFkZCBtb3JlIGNvbW1lbnRzLiBBZGp1c3QgYnVpbGRfdnR0X2luaXRzIGNhbGwuCgkoYnVpbGRfdnR0X2luaXRzKTogUmVtb3ZlIFZJUlRVQUxfVlRUU19QIHBhcm0uCglPbmx5IHNldCBCSU5GT19WUFRSX0lOREVYIG9uIHRvcCBsZXZlbC4gVXNlIFZUVF9UT1BfTEVWRUxfUCwKCVZUVF9NQVJLRURfQklORk9fUCBmb3IgYmluZm8gd2Fsa2luZy4gVXNlIGNhbm9uaWNhbCB2YmFzZSBmb3IKCXZpcnR1YWwgVlRUcy4KCShkZnNfYnVpbGRfc2Vjb25kYXJ5X3ZwdHJfdnR0X2luaXRzKTogRXh0cmFjdCBWVFRfVE9QX0xFVkVMX1AKCWZyb20gREFUQS4gIFdlIHdhbnQgdmlydHVhbCBwcmltYXJ5IGJhc2VzIGFuZCBhbGwgYmFzZXMgdmlhIHZpcnR1YWwuCglPbmx5IHNldCBCSU5GT19WUFRSX0lOREVYIGZvciB0b3AgbGV2ZWwuIExvb2sgdXAgZnJvbSBhIHByaW1hcnkKCXZpcnR1YWwgYmFzZSB3aGVuIG5vdCBhIGNvbnN0cnVjdGlvbiB2dGFibGUuCgkoZGZzX2N0b3JfdnRhYmxlX2Jhc2VzX3F1ZXVlX3ApOiBOZXcgREZTIHByZWRpY2F0ZS4KCShidWlsZF9jdG9yX3Z0YmxfZ3JvdXApOiBBZGp1c3QgYWNjdW11bGF0ZV92dGJsX2luaXRzIGNhbGwuCglVc2UgY2Fub25pY2FsIGJhc2VzIHdoZW4gcHJvY2Vzc2luZyB2aXJ0dWFsIGJhc2VzLgoJKGFjY3VtdWxhdGVfdnRibF9pbml0cyk6IFdlJ3JlIGludGVyZXN0ZWQgaW4gYW55IGJhc2UgdmlhIGEKCXZpcnR1YWwgcGF0aC4KCShkZnNfYWNjdW11bGF0ZV92dGJsX2luaXRzKTogSWYgdGhpcyBpcyBhIHByaW1hcnkgdmlydHVhbCBiYXNlCgl3aXRoaW4gYSBjb25zdHJ1Y3Rpb24gdnRhYmxlLCBkZXRlcm1pbmUgd2hhdCBpcyBiZWluZyBvdmVycmlkZGVuLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBBZGQgbW9yZSBjb21tZW50cwoJKGFkZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzXzEpOiBBZGp1c3QgY29tbWVudC4KCShidWlsZF9ydHRpX3Z0YmxfZW50cmllcyk6IENoZWNrIGlmIHRoZSBiYXNlIGhhcyBsb3N0IGl0cwoJcHJpbWFyeS4KCjIwMDEtMDItMDUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5pbiAoZysrc3BlYy5vKTogQWRqdXN0IHVzZSBvZiBEUklWRVJfREVGSU5FUy4KCjIwMDEtMDItMDQgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiBkZWNsLmMgKHB1c2hkZWNsKTogQ2FsbCBhYm9ydCBpbnN0ZWFkIG9mIGZhdGFsLgoJKiBleGNlcHQuYyAoZGVjbF9pc19qYXZhX3R5cGUpOiBDYWxsIGZhdGFsX2Vycm9yIGluc3RlYWQgb2YgZmF0YWwuCgkqIGluaXQuYyAoYnVpbGRfbmV3XzEpOiBMaWtld2lzZS4KCShidWlsZF9qYXZhX2NsYXNzX3JlZik6IENhbGwgaW50ZXJuYWxfZXJyb3IgYW5kIGZhdGFsX2Vycm9yLCBub3QgZmF0YWwuCgkqIGRlY2wuYyAoYnVpbGRfdHlwZW5hbWVfdHlwZSk6IGhhc2hfdGFibGVfaW5pdCBub3cgcmV0dXJucyB2b2lkLgoJZGVjbC5jIChpbml0X2RlY2xfcHJvY2Vzc2luZyk6IE1ha2UgYW4gZXJyb3Igbm9uLWZhdGFsLgoKMjAwMS0wMi0wNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoQ0xBU1NUWVBFX0lOVEVSRkFDRV9VTktOT1dOKTogRml4IGZvcm1hdHRpbmcuCglEb2N1bWVudC4KCShDTEFTU1RZUEVfSU5URVJGQUNFX0tOT1dOKTogTGlrZXdpc2UuCgkoU0VUX0NMQVNTVFlQRV9JTlRFUkZBQ0VfVU5LTk9XTl9YKTogTGlrZXdpc2UuCgkoU0VUX0NMQVNTVFlQRV9JTlRFUkZBQ0VfVU5LTk9XTik6IExpa2V3aXNlLgoJKFNFVF9DTEFTU1RZUEVfSU5URVJGQUNFX0tOT1dOKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAobWF5YmVfY29tbW9uaXplX3Zhcik6IFVzZSB0aGUgbmV3IG5hbWUtbWFuZ2xpbmcgd2hlcmUKCWFwcHJvcHJpYXRlLgoJKiBkZWNsMi5jIChjb21kYXRfbGlua2FnZSk6IEVuaGFuY2UgY29tbWVudHMuICBNYWtlIGFsbAoJY29tcGlsZXItZ2VuZXJhdGVkIHRoaW5ncyBzdGF0aWMsIGlmIENPTURBVCBpcyBub3QgYXZhaWxhYmxlLgoJKGdldF90aW5mb19kZWNsKTogRG8gbm90IG1ha2UgdHlwZWluZm8gb2JqZWN0cyB0aGF0IGJlbG9uZyBpbiB0aGUKCWxpYnJhcnkgQ09NREFULgoJKHRpbmZvX2Jhc2VfaW5pdCk6IFVzZSB0aGUgY29ycmVjdCBtYW5nbGVkIG5hbWUgZm9yIHR5cGVpbmZvCglzdHJpbmdzLCBhbmQgcHVzaCB0aGVtIGludG8gdGhlIGdsb2JhbCBzY29wZS4KCSh0eXBlaW5mb19pbl9saWJfcCk6IE5ldyBmdW5jdGlvbi4KCShzeW50aGVzaXplX3RpbmZvX3Zhcik6IFVzZSBpdC4KCShjcmVhdGVfcmVhbF90aW5mb192YXIpOiBMaWtld2lzZS4KCjIwMDEtMDItMDMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZGVjbC5jIChwdXNoX2NsYXNzX2JpbmRpbmcpOiBVc2UgY29udGV4dF9mb3JfbmFtZV9sb29rdXAgaW5zdGVhZAoJb2YgQ1BfREVDTF9DT05URVhULgoJKiBzZWFyY2guYyAoY29udGV4dF9mb3JfbmFtZV9sb29rdXApOiBSZW1vdmUgc3RhdGljLiAgQ2hlY2sgZm9yIE5VTEwKCWNvbnRleHQgaW4gdGhlIGxvb3AuCgkqIGNwLXRyZWUuaCAoY29udGV4dF9mb3JfbmFtZV9sb29rdXApOiBBZGQgcHJvdG90eXBlLgoKMjAwMS0wMi0wMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjcC10cmVlLmggKGJ1aWxkX2V4cHJfcHRyX3dyYXBwZXIsIGNhbl9mcmVlKTogUmVtb3ZlLgoJKiB0cmVlLmMgKGJ1aWxkX2V4cHJfcHRyX3dyYXBwZXIsIGNhbl9mcmVlLCBwZXJtYW5lbnRfb2JzdGFjayk6CglSZW1vdmUuCgkqIGNhbGwuYyAoY29udmVydF9jbGFzc190b19yZWZlcmVuY2UsIGJ1aWxkX3VzZXJfdHlwZV9jb252ZXJzaW9uXzEsCglhZGRfd2FybmluZyk6IENoYW5nZSBidWlsZF9leHByX3B0cl93cmFwcGVyIHRvIGJ1aWxkX3B0cl93cmFwcGVyLgoKMjAwMS0wMi0wMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAoZysrc3BlYy5vKTogQWRkIERSSVZFUl9ERUZJTkVTIHRvIHRoZSBsaXN0CglvZiBtYWNyb3MgdXNlZCB3aGVuIGNvbXBpbGluZyBnKytzcGVjLmMuCgkqIGcrK3NwZWMuYyAobGFuZ19zcGVjaWZpY19kcml2ZXIpOiBMaW5rIHdpdGggdGhlIHNoYXJlZAoJbGliZ2NjIGJ5IGRlZmF1bHQuCgoyMDAxLTAxLTI5ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBkZWNsMi5jIChidWlsZF9leHByX2Zyb21fdHJlZSksIGxleC5jIChtYWtlX3BvaW50ZXJfZGVjbGFyYXRvciwKCW1ha2VfcmVmZXJlbmNlX2RlY2xhcmF0b3IsIG1ha2VfY2FsbF9kZWNsYXJhdG9yKSwgbWV0aG9kLmMKCShpbXBsaWNpdGx5X2RlY2xhcmVfZm4pLCBwYXJzZS55IChuYW1lc3BhY2VfdXNpbmdfZGVjbCwKCW5vdHlwZV91bnF1YWxpZmllZF9pZCwgZXhwcl9vcl9kZWNsYXJhdG9yLCBuZXdfdHlwZV9pZCwKCWFmdGVyX3R5cGVfZGVjbGFyYXRvciwgZGlyZWN0X2FmdGVyX3R5cGVfZGVjbGFyYXRvciwKCW5vdHlwZV9kZWNsYXJhdG9yLCBjb21wbGV4X25vdHlwZV9kZWNsYXJhdG9yLAoJY29tcGxleF9kaXJlY3Rfbm90eXBlX2RlY2xhcmF0b3IsIHF1YWxpZmllZF9pZCwKCW5vdHlwZV9xdWFsaWZpZWRfaWQsIG92ZXJxdWFsaWZpZWRfaWQsIGRpcmVjdF9uZXdfZGVjbGFyYXRvciwKCWFic2RjbCwgZGlyZWN0X2Fic3RyYWN0X2RlY2xhcmF0b3IsIGNvbnZlcnNpb25fZGVjbGFyYXRvciksIHB0LmMKCSh0c3Vic3QpLCBzZW1hbnRpY3MuYyAoYmVnaW5fY29uc3RydWN0b3JfZGVjbGFyYXRvcik6IFVzZSBidWlsZF9udAoJaW5zdGVhZCBvZiBidWlsZF9wYXJzZV9ub2RlLgoKMjAwMS0wMS0yOCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogY3AtdHJlZS5oIChjcF90cmVlX2luZGV4KTogRGVsZXRlIENQVElfTUlOVVNfT05FLgoJKG1pbnVzX29uZV9ub2RlKTogTW92ZWQgdG8gdG9wIGxldmVsIGdjYyBkaXJlY3RvcnkuICBSZW5hbWVkCgl0byBpbnRlZ2VyX21pbnVzX29uZV9ub2RlLgoKCSogaW5pdC5jIChpbml0X2luaXRfcHJvY2Vzc2luZyk6IERvbid0IHNldCBtaW51c19vbmVfbm9kZS4KCShidWlsZF92ZWNfaW5pdCk6IFVzZSBpbnRlZ2VyX21pbnVzX29uZV9ub2RlLgoKCSogcnR0aS5jIChnZXRfdGluZm9fZGVjbF9keW5hbWljKTogTGlrZXdpc2UuCgoyMDAxLTAxLTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIG9wdGltaXplLmMgKGNvcHlfYm9keV9yKTogSWYgTU9ESUZZX0VYUFIgaGFzIGJvdGggYXJndW1lbnRzCglpZGVudGljYWwgYW5kIHRoZXkgd291bGQgYmUgcmVwbGFjZWQgd2l0aCBjb25zdGFudCwgcmVtb3ZlCglNT0RJRllfRVhQUiBmcm9tIHRoZSB0cmVlLgoKMjAwMS0wMS0yNyAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogTWFrZS1sYW5nLmluOiBSZW1vdmUgYWxsIGRlcGVuZGVuY2llcyBvbiBkZWZhdWx0cy5oLgoJKiBjYWxsLmM6IERvbid0IGluY2x1ZGUgZGVmYXVsdHMuaC4KCSogZGVjbC5jOiBMaWtld2lzZS4KCSogZGVjbDIuYzogTGlrZXdpc2UuCgkqIGV4Y2VwdC5jOiBMaWtld2lzZS4KCSogcHQuYzogTGlrZXdpc2UuCgkqIHJ0dGkuYzogTGlrZXdpc2UuCgkqIHRyZWUuYzogTGlrZXdpc2UuCgkqIHR5cGVjay5jOiBMaWtld2lzZS4KCjIwMDEtMDEtMjUgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogbWFuZ2xlLmMgKHdyaXRlX21hbmdsZWRfbmFtZSwgd3JpdGVfZW5jb2RpbmcpOiBNYW5nbGUgb3ZlcmxvYWRlZAoJb3BlcmF0b3JzIGV2ZW4gaW4gIkMiIGxpbmthZ2UuCgkqIG1ldGhvZC5jIChzZXRfbWFuZ2xlZF9uYW1lX2Zvcl9kZWNsKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoZ3Jva2ZuZGVjbCk6IENhbGwgc2V0X21hbmdsZWRfbmFtZV9mb3JfZGVjbCBldmVuIGZvcgoJb3ZlcmxvYWRlZCBvcGVyYXRvcnMgaW4gIkMiIGxpbmthZ2UuCgoyMDAxLTAxLTI0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAodHN1YnN0X2RlY2wpOiBSZW1vdmUgSU5fREVDTCBwYXJhbWV0ZXIuCgkodHN1YnN0X2FyZ190eXBlcyk6IENoZWNrIHBhcmFtZXRlciBpcyBub3Qgdm9pZC4KCSh0c3Vic3QpOiBBZGp1c3QgdHN1YnN0X2RlY2wgY2FsbC4KCjIwMDEtMDEtMjQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGFkZF9idWlsdGluX2NhbmRpZGF0ZSk6IFF1b3RlIHN0ZCBwcm9wZXJseSwgZnJvbQoJcHJldmlvdXMgY2hhbmdlLgoKMjAwMS0wMS0yMyAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwdC5jIChjaGVja19leHBsaWNpdF9zcGVjaWFsaXphdGlvbik6IENsb25lIGNvbnN0cnVjdG9ycyBhbmQKCWRlc3RydWN0b3JzLgoKMjAwMS0wMS0yMyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBEb24ndCBwcmVzdW1lIERFQ0xfTEFOR19TUEVDSUZJQwoJaW5kaWNhdGVzIGFueXRoaW5nIHNwZWNpYWwgYWJvdXQgdGVtcGxhdGUgZGVwdGguIE1ha2Ugc3VyZSB3ZQoJb25seSBjb3VudCB0aGUgdXNlciB2aXNpYmxlIHRlbXBsYXRlIGNsYXNzZXMuCgoyMDAxLTAxLTIzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChidWlsZF9jb252KTogVHlwbyBpbiBjb21tZW50LgoJKGFkZF9idWlsdGluX2NhbmRpZGF0ZSk6IEFkZCBtb3JlIGV4cGxhbmF0aW9uLgoJUmVtb3ZlIGV4dHJhIHRlc3QgZm9yIEVOVU1FUkFMX1RZUEUgaW4ge1BSRSxQT1NUfUlOQ1JFTUVOVF9FWFBSLgoJQWxsb3cgRU5VTUVSQUxfVFlQRXMgZm9yIHJlbG9wcyBhbmQgZXFvcHMuIEFkZCBib3RoIGNhbmRpZGF0ZXMKCXdoZW4gd2UgaGF2ZSBlbnVtZXJhbCB0eXBlcy4KCShhZGRfYnVpbHRpbl9jYW5kaWRhdGVzKTogQWRkIG1vcmUgZXhwbGFuYXRpb24uIEFkZCBFTlVNRVJBTF9UWVBFCgljYW5kaWRhdGVzIGZvciByZWxvcHMgYW5kIGVxb3BzLgoJKGpvdXN0KTogU2ltcGxpZnkgY29udHJvbCBmbG93LiBBbGxvdyBhIG5vbi10ZW1wbGF0ZSB1c2VyCglmdW5jdGlvbiB0byBoaWRlIGEgYnVpbHRpbi4KCjIwMDEtMDEtMjIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHVuaWZpY2F0aW9uX2tpbmRfdCk6IEFkZCBERURVQ0VfT1JERVIuCgkobW9yZV9zcGVjaWFsaXplZCk6IEFkZCBkZWR1Y3Rpb24gcGFyYW1ldGVyLgoJKiBjYWxsLmMgKGpvdXN0KTogQWRqdXN0IG1vcmVfc3BlY2lhbGl6ZWQgY2FsbC4KCSogcHQuYyAoVU5JRllfQUxMT1dfT1VURVJfTU9SRV9DVl9RVUFMLAoJVU5JRllfQUxMT1dfT1VURVJfTEVTU19DVl9RVUFMKTogTmV3IHVuaWZ5IGZsYWdzLgoJKGdldF9iaW5kaW5nc19vcmRlcik6IFJlbW92ZS4KCShnZXRfYmluZGluZ3NfcmVhbCk6IEFkZCBERURVQ0UgcGFyYW1ldGVyLgoJKG1heWJlX2FkanVzdF90eXBlc19mb3JfZGVkdWN0aW9uKTogUmV0dXJuIGV4dHJhIHVuaWZ5IGZsYWdzLiBEbwoJUkVGRVJFTkNFX1RZUEUgamlnIGZvciBERURVQ0VfT1JERVIuCgkodHlwZV91bmlmaWNhdGlvbl9yZWFsKTogRGVhbCB3aXRoIERFRFVDRV9PUkRFUi4gVXNlIHJlc3VsdCBvZgoJbWF5YmVfYWRqdXN0X3R5cGVzX2Zvcl9kZWR1Y3Rpb24uCgkobW9yZV9zcGVjaWFsaXplZCk6IEFkZCBERURVQ0UgcGFyYW1ldGVyLiBDYWxsIGdldF9iaW5kaW5nc19yZWFsCglkaXJlY3RseS4KCSh0cnlfb25lX292ZXJsb2FkKTogVXNlIHJlc3VsdCBvZiBtYXliZV9hZGp1c3RfdHlwZXNfZm9yX2RlZHVjdGlvbi4KCShjaGVja19jdl9xdWFsc19mb3JfdW5pZnkpOiBVc2UgbmV3IHVuaWZ5IHF1YWxpZmllciBmbGFncy4KCSh1bmlmeSk6IENsZWFyIG5ldyB1bmlmeSBxdWFsaWZpZXIgZmxhZ3MuCgkoZ2V0X2JpbmRpbmdzX3JlYWwpOiBBZGQgREVEVUNFIHBhcmFtZXRlci4KCShnZXRfYmluZGluZ3MpOiBBZGp1c3QgY2FsbCB0byBnZXRfYmluZGluZ3NfcmVhbC4KCShnZXRfYmluZGluZ3Nfb3ZlcmxvYWQpOiBMaWtld2lzZS4KCShtb3N0X3NwZWNpYWxpemVkX2luc3RhbnRpYXRpb24pOiBBZGp1c3QgY2FsbCB0bwoJbW9yZV9zcGVjaWFsaXplZC4KCjIwMDEtMDEtMTkgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZGVjbDIuYyAoZmxhZ192dGFibGVfdGh1bmtzKTogQWxzbyBkZXBlbmQgb24gRU5BQkxFX05FV19HWFhfQUJJLgoKCSogZGVjbC5jIChpbml0X2RlY2xfcHJvY2Vzc2luZyk6IEp1c3QgZm9yY2UgLWZ2dGFibGUtdGh1bmtzIG9uIGlmCgktZm5ldy1hYmkuCgoyMDAxLTAxLTE5ICBVdGUgUGVsa21hbm4gIDxzY29wZS5tdWNAdC1vbmxpbmUuZGU+CgoJKiBkZWNsMi5jIChhcmdfYXNzb2NfY2xhc3MpOiBGaXggZG91YmxlIGl0ZXJhdGlvbiBsb2dpYy4KCjIwMDEtMDEtMTkgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogaW5pdC5jIChidWlsZF9kZWxldGUpOiBBbHdheXMgY2FsbCBjb252ZXJ0X2ZvcmNlIHRvIHN0cmlwIGN2LXF1YWxzLgoKCSogZGVjbDIuYyAoZmxhZ19uZXdfYWJpKTogRGVwZW5kIG9uIEVOQUJMRV9ORVdfR1hYX0FCSS4KCSogbGFuZy1zcGVjcy5oOiBEZWZhdWx0IEFCSSBkZXBlbmRzIG9uIEVOQUJMRV9ORVdfR1hYX0FCSS4KCSogZysrc3BlYy5jOiBEb24ndCBsb29rIGF0IEVOQUJMRV9ORVdfR1hYX0FCSS4KCjIwMDEtMDEtMTkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzZWFyY2guYyAoZ2V0X3ZiYXNlXzEpOiBDb3VudCBvbmx5IHZpcnR1YWwgYmFzZXMuCgoyMDAxLTAxLTE5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoZHVwbGljYXRlX3RhZ19lcnJvcik6IFJvYnVzdGlmeSBmbGFnIGNsZWFyaW5nLgoKMjAwMS0wMS0xOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAobG9va3VwX3RlbXBsYXRlX2NsYXNzKTogQWRkIGNvbXBsYWluIHBhcm0uCgkqIGRlY2wuYyAobG9va3VwX25hbWVzcGFjZV9uYW1lKTogQWRqdXN0IGNhbGwgdG8KCWxvb2t1cF90ZW1wbGF0ZV9jbGFzcy4KCShtYWtlX3R5cGVuYW1lX3R5cGUpOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF90ZW1wbGF0ZV90eXBlKTogTGlrZXdpc2UuCgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IEFkZCBjb21wbGFpbiBwYXJtLiBBZGp1c3QuCgkodHN1YnN0X2FnZ3JfdHlwZSk6IFBhc3MgQ09NUExBSU4gZG93biB0byBsb29rdXBfdGVtcGxhdGVfY2xhc3MuCgkodHN1YnN0KTogTGlrZXdpc2UuCgoyMDAxLTAxLTE5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAoY29weV9kZWZhdWx0X2FyZ3NfdG9fZXhwbGljaXRfc3BlYyk6IFByZXNlcnZlCglvYmplY3QncyBDViBxdWFscy4gUmVvcmdhbml6ZS4KCjIwMDEtMDEtMTggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0eXBlY2suYyAoYnVpbGRfbW9kaWZ5X2V4cHIpOiBTYXkgYGluaXRpYWxpemF0aW9uJyBmb3IKCUlOSVRfRVhQUnMuCgkqIGluaXQuYyAoYnVpbGRfZGVmYXVsdF9pbml0KTogQ29udmVydCB0byBlbnVtZXJhbCB0eXBlLCBpZgoJbmVlZGVkLgoKMjAwMS0wMS0xOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBwYXJzZS55IChub21vZHNfaW5pdGRjbDApOiBQcm9wZXJseSBzZXQgdGhpbmdzIHVwIGZvcgoJaW5pdGRjbDBfaW5uYXJkcy4KCjIwMDEtMDEtMTggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwdC5jIChVTklGWV9BTExPV19PVVRFUl9MRVZFTCk6IE5ldyB1bmlmeSBmbGFnLgoJKHR5cGVfdW5pZmljYXRpb25fcmVhbCk6IFNldCBpdC4KCSh1bmlmeSk6IFVzZSBpdC4KCjIwMDEtMDEtMTggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGZpbmlzaF9kZXN0cnVjdG9yX2JvZHkpOiBDb252ZXJ0IHRvIHZiYXNlIHBvaW50ZXIgaGVyZS4KCjIwMDEtMDEtMTggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzZW1hbnRpY3MuYyAoYmVnaW5fY2xhc3NfZGVmaW5pdGlvbik6IENoZWNrIHdlJ3JlIG5vdCBpbnNpZGUgYQoJdGVtcGxhdGUgcGFybSBsaXN0LgoKMjAwMS0wMS0xOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWUuYyAod2Fsa190cmVlLCBUUkVFX0xJU1QpOiBEb24ndCB3YWxrIHRoZSBUUkVFX1BVUlBPU0Ugb2YKCUJBU0VMSU5LX1AuCgoyMDAxLTAxLTE2ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHR5cGVjay5jIChidWlsZF9mdW5jdGlvbl9jYWxsX3JlYWwpOiBDYWxsIGZvbGQgb24gdGhlIENBTExfRVhQUi4KCSogY2FsbC5jIChidWlsZF9vdmVyX2NhbGwpOiBBZGQgY29tbWVudC4KCjIwMDEtMDEtMTYgRGFuaWVsIEJlcmxpbiA8ZGJlcmxpbkByZWRoYXQuY29tPgoKCSogY3Z0LmMgKG9jcF9jb252ZXJ0KTogSGFuZGxlIHZlY3RvciB0eXBlIGNvbnZlcnNpb24KCSogdHlwZWNrMi5jIChkaWdlc3RfaW5pdCk6IEhhbmRsZSB2ZWN0b3IgdHlwZSBpbml0aWFsaXphdGlvbnMKCjIwMDEtMDEtMTYgIFBoaWwgRWR3YXJkcyAgPHBtZUBzb3VyY2VzLnJlZGhhdC5jb20+CgoJKiBnKytzcGVjLmM6ICBEb24ndCBhZGQgbGlicmFyaWVzIG5lZWRsZXNzbHkgaWYgLWZzeW50YXgtb25seQoJICB3YXMgZ2l2ZW4uCgoyMDAxLTAxLTE1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAoY2hlY2tfbm9udHlwZV9wYXJtKTogUmVuYW1lIHRvIC4uLgoJKGludmFsaWRfbm9udHlwZV9wYXJtX3R5cGVfcCk6IC4uLiBoZXJlLgoJKHByb2Nlc3NfdGVtcGxhdGVfcGFybSk6IEFkanVzdC4KCShjb252ZXJ0X3RlbXBsYXRlX2FyZ3VtZW50KTogQWRqdXN0LgoKMjAwMS0wMS0xNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKGNoZWNrX25vbnR5cGVfcGFybSk6IE5ldyBmdW5jdGlvbi4KCShwcm9jZXNzX3RlbXBsYXRlX3Bhcm0pOiBVc2UgaXQuCgkoY29udmVydF90ZW1wbGF0ZV9hcmd1bWVudCk6IFVzZSBpdC4KCShjb252ZXJ0X25vbnR5cGVfYXJndW1lbnQsIFJFQ09SRF9UWVBFKTogQXNzZXJ0IGl0J3MgYSBwdHIgdG8KCW1lbWJlci4KCjIwMDEtMDEtMTQgIEplZmZyZXkgT2xkaGFtICA8b2xkaGFtQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVlLmM6IEFkZCBkZWZhdWx0cy5oCgkoY3BfdmFsaWRfbGFuZ19hdHRyaWJ1dGUpOiBJbmNvcnBvcmF0ZSBTVVBQT1JUU19JTklUX1BSSU9SSVRZLgoJKiBNYWtlLWxhbmcuaW4gKGNwL3RyZWUubyk6IEFkZCBkZWZhdWx0cy5oLgoKMjAwMS0wMS0xMyAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogTWFrZS1sYW5nLmluIChDWFhfQ19PQkpTKTogQWRkIGMtZm9ybWF0Lm8uCgoyMDAxLTAxLTEzICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBnKysuMTogQ2hhbmdlIHRvIGJlICIuc28gbWFuMS9nY2MuMSIuCgoyMDAxLTAxLTEzICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBNYWtlLWxhbmcuaW4gKGMrKy5pbmZvLCBjKysuaW5zdGFsbC1pbmZvKTogQnVpbGQgYW5kIGluc3RhbGwgZysrCglpbnRlcm5hbHMgaW5mby4KCShjKysudW5pbnN0YWxsLCBjKysubWFpbnRhaW5lci1jbGVhbik6IFJlbW92ZSBnKysgaW50ZXJuYWxzIGluZm8uCgkoJChzcmNkaXIpL2NwL2crK2ludC5pbmZvKTogTmV3IHRhcmdldC4KCSogZ3h4aW50LnRleGk6IEFkZCBpbmZvIGRpcmVjdG9yeSBlbnRyeS4gIFVzZSBAQCBpbiBlbWFpbCBhZGRyZXNzLgoJKiAuY3ZzaWdub3JlOiBVcGRhdGUuCgoyMDAxLTAxLTEyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrLmMgKGJ1aWxkX2NfY2FzdCk6IERvIHRlbXBsYXRlIHByb2Nlc3NpbmcgZWFybGllci4KCUFsd2F5cyBwZWR3YXJuIG9uIGFycmF5IGNhc3RzLgoKMjAwMS0wMS0xMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGZyaWVuZC5jIChtYWtlX2ZyaWVuZF9jbGFzcyk6IE1ha2Ugc3VyZSBhIHRlbXBsYXRlZCBjbGFzcyBpcwoJYWN0dWFsbHkgYSB0ZW1wbGF0ZS4KCjIwMDEtMDEtMTEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsMi5jIChnZXRfZ3VhcmQpOiBTZXQgbGlua2FnZSBmcm9tIGd1YXJkZWQgZGVjbC4KCjIwMDEtMDEtMTEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGNvbnZlcnRfZGVmYXVsdF9hcmcpOiBDaGVjayBmb3IgdW5wcm9jZXNzZWQKCURFRkFVTFRfQVJHLgoJKiBjcC10cmVlLmggKHJlcGxhY2VfZGVmYXJnKTogTW92ZSB0byBzcGV3LmMuCgkobWF5YmVfc25hcmZfZGVmYXJnLCBhZGRfZGVmYXJnX2ZuLCBkb19wZW5kaW5nX2RlZmFyZ3MpOiBNb3ZlIHRvCglzcGV3LmMsIHdoaWNoIGlzIHdoZXJlIHRoZXkgcmVhbGx5IGFyZS4KCShkb25lX3BlbmRpbmdfZGVmYXJncyk6IERlY2xhcmUuCgkodW5wcm9jZXNzZWRfZGVmYXJnX2ZuKTogRGVjbGFyZS4KCSogZGVjbC5jIChyZXBsYWNlX2RlZmFyZyk6IE1vdmUgdG8gc3Bldy5jCgkqIHBhcnNlLnkgKHN0cnVjdHNwKTogQ2FsbCBkb25lX3BlbmRpbmdfZGVmYXJncy4KCSogc3Bldy5jIChkZWZhcmdfZm5zKTogUmVhcnJhbmdlIGxpc3Qgc3RydWN0dXJlLgoJKGRlZmFyZ19mbnNkb25lKTogTmV3IHN0YXRpYyB2YXJpYWJsZS4KCShkZWZhcmdfZGVwZm5zKTogTmV3IHN0YXRpYyB2YXJpYWJsZS4KCShpbml0X3NwZXcpOiBBZGp1c3QuCgkoYWRkX2RlZmFyZ19mbik6IFN0b3JlIHRoZSB0eXBlIGluIFRSRUVfVFlQRS4KCShkb19wZW5kaW5nX2RlZmFyZ3MpOiBEZXRlY3QgYW5kIGRlYWwgd2l0aCBvcmRlcmluZyBjb25zdHJhaW50cwoJYW5kIGNpcmN1bGFyaXR5LgoJKGRvbmVfcGVuZGluZ19kZWZhcmdzKTogTmV3IGZ1bmN0aW9uLgoJKHVucHJvY2Vzc2VkX2RlZmFyZ19mbik6IE5ldyBmdW5jdGlvbi4KCShyZXBsYWNlX2RlZmFyZyk6IE1vdmVkIGZyb20gZGVjbC5jLiBSb2J1c3RpZnkuIERvbid0IHNhdmUKCWlmIGNpcmN1bGFyaXR5IGRldGVjdGVkLgoKMjAwMS0wMS0xMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKHVuaWZ5KTogQ2hlY2sgYXJyYXkgaGFzIGEgZG9tYWluLCBiZWZvcmUgY2hlY2tpbmcKCXdoZXRoZXIgaXQgaXMgdmFyaWFibGUgc2l6ZWQuCgoyMDAxLTAxLTExICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChncm9rcGFybXMpOiBVbm9iZnVzY2F0ZSBhbmQgZ2V0IGNvcnJlY3QgZGlhZ25vc3RpYyBmb3IKCXBhcmFtZXRlcnMgd2l0aCBwb2ludGVycyB0byBhcnJheXMgb2YgdW5rbm93biBib3VuZC4KCjIwMDEtMDEtMTEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwYXJzZS55ICh0ZW1wbGF0ZV9wYXJtX2hlYWRlciwgdGVtcGxhdGVfc3BlY19oZWFkZXIpOiBOZXcKCXJlZHVjdGlvbnMuIFNwbGl0IG91dCBmcm9tIC4uLgoJKHRlbXBsYXRlX2hlYWRlcik6IC4uLiBoZXJlLiBVc2UgdGhlbS4KCSh0ZW1wbGF0ZV90ZW1wbGF0ZV9wYXJtKTogVXNlIHRlbXBsYXRlX3Bhcm1faGVhZGVyLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX3RlbXBsYXRlX3RlbXBsYXRlX3Bhcm0pOiBBZGQgYXNzZXJ0LgoKMjAwMS0wMS0xMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG1hbmdsZS5jICh3cml0ZV9idWlsdGluX3R5cGUpOiBGaXggdGhpbmtvLgoKCSogcHQuYyAoY29weV9kZWZhdWx0X2FyZ3NfdG9fZXhwbGljaXRfc3BlY18xKTogTmV3IGZ1bmN0aW9uLgoJKGNvcHlfZGVmYXVsdF9hcmdzX3RvX2V4cGxpY2l0X3NwZWMpOiBMaWtld2lzZS4KCShjaGVja19leHBsaWNpdF9zcGVjaWFsaXphdGlvbik6IFVzZSBpdC4KCgkqIGNsYXNzLmMgKGZpbmlzaF9zdHJ1Y3RfMSk6ICBSZW1vdmUgbGFzdCBhcmd1bWVudCBpbiBjYWxsIHRvCgltYWtlX2RlY2xfcnRsOyB1c2UgbWFrZV9mdW5jdGlvbl9ydGwgaW5zdGVhZCBvZiBtYWtlX2RlY2xfcnRsLgoJKiBkZWNsLmMgKGJ1aWx0aW5fZnVuY3Rpb24pOiBMaWtld2lzZS4KCShidWlsZF9jcF9saWJyYXJ5X2ZuKTogTGlrZXdpc2UuCgkoY2hlY2tfaW5pdGlhbGl6ZXIpOiBMaWtld2lzZS4KCShtYWtlX3J0bF9mb3Jfbm9ubG9jYWxfZGVjbCk6IExpa2V3aXNlLgoJKGNwX2ZpbmlzaF9kZWNsKTogTGlrZXdpc2UuCgkoc3RhcnRfZnVuY3Rpb24pOiBMaWtld2lzZS4KCSogZGVjbDIuYyAoZmluaXNoX2Fub25fdW5pb24pOiBMaWtld2lzZS4KCSogZnJpZW5kLmMgKGRvX2ZyaWVuZCk6IExpa2V3aXNlLgoJKiBpbml0LmMgKGJ1aWxkX2phdmFfY2xhc3NfcmVmKTogTGlrZXdpc2UuCgkqIG1ldGhvZC5jIChtYWtlX3RodW5rKTogTGlrZXdpc2UuCgkqIHB0LmMgKHRzdWJzdF9mcmllbmRfZnVuY3Rpb24pOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGV4cGFuZF9ib2R5KTogTGlrZXdpc2UuCgoyMDAxLTAxLTEwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChERUNMX0NMT05FRF9GVU5DVElPTl9QKTogQXZvaWQgd2lsZCByZWFkcyBieSBub3QKCWxvb2tpbmcgYXQgREVDTF9DTE9ORURfRlVOQ1RJT04gZm9yIG5vbi1mdW5jdGlvbnMuCgoyMDAxLTAxLTEwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZXJyb3IuYyAoZHVtcF90ZW1wbGF0ZV9wYXJhbWV0ZXIpOiBVc2UgcGFybSB0byBkZXRlcm1pbmUgaG93Cgl0byBwcmludCBkZWZhdWx0IHZhbHVlLgoKMjAwMS0wMS0xMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGR1cGxpY2F0ZV90YWdfZXJyb3IpOiBDbGVhciBtb3JlIGZsYWdzLgoKMjAwMS0wMS0xMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogVXNlIGJpbmZvX2Zvcl92YmFzZS4KCjIwMDEtMDEtMTAgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGNwLXRyZWUuaCAoZmxhZ19jb25kX21pc21hdGNoKTogRG9uJ3QgZGVjbGFyZS4KCSogZGVjbDIuYyAoZmxhZ19jb25kX21pc21hdGNoKTogRG9uJ3QgZGVmaW5lLgoJKGxhbmdfZl9vcHRpb25zKTogUmVtb3ZlIGNvbmQtbWlzbWF0Y2guCgkodW5zdXBwb3J0ZWRfb3B0aW9ucyk6IEFkZCBjb25kLW1pc21hdGNoLgoKMjAwMS0wMS0wOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGhhbmRsZV91c2luZ19kZWNsKTogUmVqZWN0IHVzaW5nIG9mIGNvbnN0cnVjdG9yIG5hbWUKCW9mIHNvdXJjaW5nIGNsYXNzLiBBbGxvdyBpbmplY3Rpbmcgb2YgYSBtZXRob2Qgd2l0aCBzYW1lIG5hbWUgYXMKCW5lc3RlZCBjbGFzcy4gRml4dXAgZXJyb3IgbWVzc2FnZXMuCgoyMDAxLTAxLTA5ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBkZWNsMi5jIChsYW5nX2RlY29kZV9vcHRpb24pOiBIYW5kbGUgLVdmb3JtYXQ9Mi4KCjIwMDEtMDEtMDggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGxhbmdfZGVjbF9mbGFncyk6IFJlbmFtZSBkZWZpbmVkX2luX2NsYXNzIHRvCglpbml0aWFsaXplZF9pbl9jbGFzcy4KCShERUNMX0RFRklORURfSU5fQ0xBU1NfUCk6IFJlbmFtZSB0byAuLi4KCShERUNMX0lOSVRJQUxJWkVEX0lOX0NMQVNTX1ApOiAuLi4gaGVyZSwgdG8gcmVmbGVjdCB0cnVlIG1lYW5pbmcuCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogUHJlc2V2ZSBERUNMX0lOSVRJQUxJWkVEX0lOX0NMQVNTX1AuCgkoY3BfZmluaXNoX2RlY2wpOiBBZGp1c3QgZm9yIERFQ0xfSU5JVElBTElaRURfSU5fQ0xBU1NfUC4KCSogcHQuYyAoY2hlY2tfZGVmYXVsdF90bXBsX2FyZ3MpOiBBZGp1c3QgZm9yCglERUNMX0lOSVRJQUxJWkVEX0lOX0NMQVNTX1AuCgkoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBMaWtld2lzZS4KCShpbnN0YW50aWF0ZV9kZWNsKTogQ2hlY2sgREVDTF9JTklUSUFMSVpFRF9JTl9DTEFTU19QLgoKCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdCk6IENvbnN0aWZ5IHNhdmVkX2ZpbGVuYW1lLgoKMjAwMS0wMS0wOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGR1cGxpY2F0ZV90YWdfZXJyb3IpOiBBZGp1c3QgZGlhZ25vc3RpYy4KCShmaW5pc2hfc3RydWN0KTogTG9jYWxseSBzZXQgbG9jYXRpb24gdG8gc3RhcnQgb2Ygc3RydWN0LgoJKiBkZWNsLmMgKGZpeHVwX2Fub255bW91c19hZ2dyKTogVXNlIGNwX2Vycm9yX2F0LgoKMjAwMS0wMS0wOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoc3RydWN0IGJpbmRpbmdfbGV2ZWwpOiBBZGp1c3QgY2xhc3Nfc2hhZG93ZWQgY29tbWVudHMKCXRvIHJlZmxlY3QgcmVhbGl0eS4KCShwdXNoX2NsYXNzX2xldmVsX2JpbmRpbmcpOiBBZGp1c3QgY29tbWVudHMgdG8gcmVmbGVjdCByZWFsaXR5LgoJU2V0IElERU5USUZJRVJfQ0xBU1NfVkFMVUUgd2hlbiByZXBsYWNpbmcgYW4gZXhpc3RpbmcgYmluZGluZy4KCURvbid0IHNldCBUUkVFX1ZBTFVFIG9uIHRoZSBjbGFzc19zaGFkb3dlZCBsaXN0LgoKMjAwMS0wMS0wNyAgQWxleGFuZHJlIFBldGl0LUJpYW5jbyAgPGFwYmlhbmNvQGN5Z251cy5jb20+CgoJKiBkZWNsMi5jIChhY2NlcHRhYmxlX2phdmFfdHlwZSk6IEFsbG93IHJlZmVyZW5jZXMgdG9vLgoJKiBpbml0LmMgKGJ1aWxkX2phdmFfY2xhc3NfcmVmKTogV2hlbiB1c2luZyB0aGUgbmV3IEFCSSwgc2VhcmNoCglgY2xhc3MkJyBhbmQgaGF2ZSBpdCBtYW5nbGVkIHdpdGggYG1hbmdsZV9kZWNsLicKCSogbWFuZ2xlLmMgKHdyaXRlX2phdmFfaW50ZWdlcl90eXBlX2NvZGVzKTogTmV3IGZ1bmN0aW9uLgoJKHdyaXRlX2J1aWx0aW5fdHlwZSk6IERldGVjdCBhbmQgbWFuZ2xlIEphdmEgaW50ZWdlciBhbmQgcmVhbAoJdHlwZXMuCgoyMDAxLTAxLTA3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoZ3Jva2ZpZWxkKTogRG9uJ3QgYWNjZXB0IGBhc20nIHNwZWNpZmllcnMgZm9yCglub24tc3RhdGljIGRhdGEgbWVtYmVycy4KCjIwMDEtMDEtMDcgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGV4cHIuYyAoY3BsdXNfZXhwYW5kX2V4cHIpOiBEb24ndCByZXNldCBgdGFyZ2V0Jy4KCjIwMDEtMDEtMDcgIE5laWwgQm9vdGggIDxuZWlsQGRhaWtva3V5YS5kZW1vbi5jby51az4KCgkqIGNwL2RlY2wyLmMgKGN4eF9wb3N0X29wdGlvbnMpOiBDYWxsIGNwcF9wb3N0X29wdGlvbnMuCgoyMDAxLTAxLTA1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcGFyc2UueSAodGVtcGxhdGVfZGF0YWRlZik6IENoZWNrIGZvciBlcnJvcl9tYXJrX25vZGUuCgoyMDAxLTAxLTA1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5kZWYgKERFRkFVTFRfQVJHKTogTWFrZSBgeCcgY2xhc3MuCgoyMDAxLTAxLTA0ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBkZWNsLmMgKFNJWkVfVFlQRSwgUFRSRElGRl9UWVBFLCBXQ0hBUl9UWVBFKTogRG9uJ3QgZGVmaW5lLgoJKHJlY29yZF9idWlsdGluX3R5cGUpOiBNYWtlIG5vbi1zdGF0aWMuCgkoZmxhZ19zaG9ydF9kb3VibGUpOiBEb24ndCBkZWNsYXJlLgoJKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogUmVtb3ZlIHRoZSBjcmVhdGlvbiBvZiBtYW55IHRyZWUgbm9kZXMgbm93CglpbiBjX2NvbW1vbl9ub2Rlc19hbmRfYnVpbHRpbnMuCgkoYnVpbGRfdm9pZF9saXN0X25vZGUpOiBOZXcgZnVuY3Rpb24uCgkqIGRlY2wyLmMgKGZsYWdfc2hvcnRfZG91YmxlLCBmbGFnX3Nob3J0X3djaGFyKTogRG9uJ3QgZGVmaW5lLgoJKiBjcC10cmVlLmggKGZsYWdfc2hvcnRfd2NoYXIpOiBEb24ndCBkZWNsYXJlLgoKMjAwMS0wMS0wNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoYnVpbGRfY29udik6IERvbid0IHVzZSBidWlsZDEgZm9yIFVTRVJfQ09OVi4KCSogcHQuYyAodHN1YnN0X2NvcHkpOiBPciBmb3IgUFJFSU5DUkVNRU5UX0VYUFIgYW5kIHNpbWlsYXIgbm9kZXMuCgoyMDAxLTAxLTAzICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBsZXguYyAobGFuZ19pbml0KTogQ2FsbCBjX2NvbW1vbl9sYW5nX2luaXQuCgoyMDAxLTAxLTAzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogc2VhcmNoLmMgKGxvb2t1cF9mbmZpZWxkc19oZXJlKTogUmVtb3ZlLgoJKGxvb2tfZm9yX292ZXJyaWRlc19yKTogVXNlIGxvb2t1cF9mbmZpZWxkc18xLgoJSWdub3JlIGZ1bmN0aW9ucyBmcm9tIHVzaW5nIGRlY2xhcmF0aW9ucy4KCjIwMDEtMDEtMDMgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJSW1wbGVtZW50IGV4Y2VwdGlvbnMgc3BlY2lmaWVycyBmb3IgaW1wbGljaXQgbWVtYmVyIGZ1bmN0aW9ucy4KCSogY3AtdHJlZS5oIChtZXJnZV9leGNlcHRpb25zX3NwZWNpZmllcnMpOiBEZWNsYXJlIG5ldyBmdW5jdGlvbi4KCSogbWV0aG9kLmMgKHN5bnRoZXNpemVfZXhjZXB0aW9uX3NwZWMpOiBOZXcgZnVuY3Rpb24uCgkobG9jYXRlX2R0b3IsIGxvY2F0ZV9jdG9yLCBsb2NhdGVfY29weSk6IE5ldyBmdW5jdGlvbnMuCgkoaW1wbGljaXRseV9kZWNsYXJlX2ZuKTogR2VuZXJhdGUgdGhlIGV4Y2VwdGlvbiBzcGVjIHRvby4KCSogc2VhcmNoLmMgKGNoZWNrX2ZpbmFsX292ZXJyaWRlcik6IENoZWNrIGFydGlmaWNpYWwgZnVuY3Rpb25zCgl0b28uCgkqIHR5cGVjazIuYyAobWVyZ2VfZXhjZXB0aW9uX3NwZWNpZmllcnMpOiBOZXcgZnVuY3Rpb24uCgoyMDAxLTAxLTAzICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGluaXQuYyAoYnVpbGRfZGVmYXVsdF9pbml0KTogTmV3IGZuLgoJKHBlcmZvcm1fbWVtYmVyX2luaXQpOiBTcGxpdCBvdXQgZnJvbSBoZXJlLgoJKGJ1aWxkX25ld18xKTogVXNlIGl0LiAgU2ltcGxpZnkgaW5pdGlhbGl6YXRpb24gbG9naWMuCgkoYnVpbGRfdmVjX2luaXQpOiBUYWtlIGFuIGFycmF5LCByYXRoZXIgdGhhbiBhIHBvaW50ZXIgYW5kIG1heGluZGV4LgoJU3BlZWQgdXAgc2ltcGxlIGluaXRpYWxpemF0aW9ucy4gIERvbid0IGNsZWFuIHVwIGlmIHdlJ3JlIGFzc2lnbmluZy4KCSogY3AtdHJlZS5oOiBBZGp1c3QuCgkqIGRlY2wyLmMgKGRvX3N0YXRpY19pbml0aWFsaXphdGlvbik6IFJlbW92ZSBUUkVFX1ZFQyBjYXNlLgoJKiBwYXJzZS55IChuZXdfaW5pdGlhbGl6ZXIpOiBSZXR1cm4gdm9pZF96ZXJvX25vZGUgZm9yICgpLgoJKiB0eXBlY2suYyAoYnVpbGRfbW9kaWZ5X2V4cHIpOiBIYW5kbGUgZ2V0dGluZyBhIENPTlNUUlVDVE9SLgoJKiB0eXBlY2syLmMgKGRpZ2VzdF9pbml0KTogT25seSBjb21wbGFpbiBhYm91dCB1c2VyLXdyaXR0ZW4KCUNPTlNUUlVDVE9Scy4KCjIwMDAtMTItMjIgIE1pa2UgU3R1bXAgIDxtcnNAd3JzLmNvbT4KCgkqIGRlY2wyLmM6IChtYXhfdGluc3RfZGVwdGgpOiBJbmNyZWFzZSB0byA1MC4KCjIwMDEtMDEtMDIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChpbnZhbGlkYXRlX2NsYXNzX2xvb2t1cF9jYWNoZSk6IFplcm8gdGhlCglwcmV2aW91c19jbGFzc192YWx1ZXMuCgkqIGNwLXRyZWUuaCAoVE1QTF9QQVJNU19ERVBUSCk6IFVzZSBUUkVFX0lOVF9DU1RfTE9XLCBub3QKCVRSRUVfSU5UX0NTVF9ISUdILgoJKENMQVNTVFlQRV9URU1QTEFURV9MRVZFTCk6IExpa2V3aXNlLgoJKiBkZWNsLmMgKGZyZWVfYmluZGluZ3MpOiBOZXcgdmFyaWFibGUuCgkocHVzaF9iaW5kaW5nKTogRG9uJ3QgY3JlYXRlIGEgbmV3IGJpbmRpbmcgaWYgd2UgaGF2ZSBvbmUgb24gdGhlCglmcmVlIGxpc3QuCgkocG9wX2JpbmRpbmcpOiBQdXQgb2xkIGJpbmRpbmdzIG9uIHRoZSBmcmVlIGxpc3QuCgkoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBVc2Ugc2l6ZV9pbnQsIG5vdCBidWlsZF9pbnRfMi4KCVJlZ2lzdGVyIGZyZWVfYmluZGluZ3MgYXMgYSBHQyByb290LgoJKGNwX21ha2VfZm5hbWVfZGVjbCk6IFVzZSBzaXplX2ludCwgbm90IGJ1aWxkX2ludF8yLgoJKHB1c2hfaW5saW5lX3RlbXBsYXRlX3Bhcm1zX3JlY3Vyc2l2ZSk6IExpa2V3aXNlLgoJKGVuZF90ZW1wbGF0ZV9wYXJtX2xpc3QpOiBMaWtld2lzZS4KCShmb3JfZWFjaF90ZW1wbGF0ZV9wYXJtKTogRG8gbm90IHVzZSB3YWxrX3RyZWVfd2l0aG91dF9kdXBsaWNhdGVzLgoJKHRzdWJzdF90ZW1wbGF0ZV9wYXJtcyk6IFVzZSBzaXplX2ludCwgbm90IGJ1aWxkX2ludF8yLgoJKHRzdWJzdCk6IExpa2V3aXNlLgoJKiBydHRpLmMgKGdldF92bWlfcHNldWRvX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoKMjAwMS0wMS0wMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHBhcnNlLnkgKGFzbSk6IFNldCBBU01fSU5QVVRfUC4KCjIwMDEtMDEtMDIgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogdHJlZS5jIChjcF92YWxpZF9sYW5nX2F0dHJpYnV0ZSk6IERvbid0IHNldCBDTEFTU1RZUEVfQ09NX0lOVEVSRkFDRQoJZm9yIHYzIEFCSS4KCgkqIHR5cGVjay5jIChjcF90cnV0aHZhbHVlX2NvbnZlcnNpb24pOiBOZXcgZm4uCgkqIGN2dC5jIChvY3BfY29udmVydCk6IFVzZSBpdC4KCgkqIGNwLXRyZWUuaDogTG9zZSBjLWNvbW1vbi5jIGRlY2xzLgoKCSogdHlwZWNrLmMgKGJ1aWxkX3VuYXJ5X29wKTogUmVzdG9yZSBvbGQgJmEuZiBkaWFnbm9zdGljIGNvZGUuCgkqIGN2dC5jIChjb252ZXJ0X3RvX3ZvaWQpOiBVc2UgdHlwZV91bmtub3duX3AuCgoJKiB0eXBlY2suYyAoc3RyaXBfYWxsX3BvaW50ZXJfcXVhbHMpOiBBbHNvIHN0cmlwIHF1YWxzIGZyb20KCXBvaW50ZXItdG8tbWVtYmVyIHR5cGVzLgoKCSogTWFrZS1sYW5nLmluIChjcC9UQUdTKTogVXNlIC0tbm8tZ2xvYmFscy4gIElnbm9yZSBwYXJzZS5jLCBhbmQgdHJlYXQKCXBhcnNlLnkgYXMgQy4KCgkqIGNhbGwuYyAoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogRG8gZXZhbHVhdGUgdGhlIG9iamVjdCBwYXJhbWV0ZXIKCXdoZW4gYWNjZXNzaW5nIGEgc3RhdGljIG1lbWJlci4KCSogdHlwZWNrLmMgKGJ1aWxkX2NvbXBvbmVudF9yZWYpOiBMaWtld2lzZS4KCjIwMDEtMDEtMDIgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGRlY2wuYyAoY3BfbWlzc2luZ19ub3JldHVybl9va19wKTogTmV3LgoJKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogU2V0IGxhbmdfbWlzc2luZ19ub3JldHVybl9va19wLgoKMjAwMC0xMi0yOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogRml4IHNpZ24gb2Ygd2NoYXJfdHlwZV9ub2RlLgoKMjAwMC0xMi0yOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKHB1c2hjbGFzcyk6IFJlbW92ZSAjaWYgMCdkIGNvZGUuCgkqIGNwLXRyZWUuaCAob3ZlcmxvYWRfdGVtcGxhdGVfbmFtZSk6IFJlbW92ZS4KCSogZGVjbC5jIChzdG9yZV9iaW5kaW5ncyk6IFNpbXBsaWZ5LgoJKHBvcF9mcm9tX3RvcF9sZXZlbCk6IExpa2V3aXNlLgoJKiBwdC5jIChvdmVybG9hZF90ZW1wbGF0ZV9uYW1lKTogUmVtb3ZlLgoJKGluc3RhbnRpYXRlX2RlY2wpOiBEb24ndCBjYWxsIHB1c2hfdG9fdG9wX2xldmVsIGlmIGl0J3Mgbm90CgluZWVkZWQuCgoyMDAwLTEyLTI4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAocmVnaXN0ZXJfbG9jYWxfc3BlY2lhbGl6YXRpb24pOiBEb24ndCByZXR1cm4gYSB2YWx1ZS4KCShsb29rdXBfdGVtcGxhdGVfY2xhc3MpOiBVc2UgbW92ZS10by1mcm9udCBoZXVyaXN0aWMgd2hlbiBsb29raW5nCgl1cCB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9ucy4KCShpbnN0YW50aWF0ZV9kZWNsKTogT25seSBwdXNoX3RvX3RvcF9sZXZlbCB3aGVuIHdlJ3JlIGFjdHVhbGx5Cglnb2luZyB0byBpbnN0YW50aWF0ZSB0aGUgdGVtcGxhdGUuCgoyMDAwLTEyLTI5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBzZWFyY2guYyAoYmluZm9fZm9yX3Z0YWJsZSk6IFJldHVybiBsZWFzdCBkZXJpdmVkIGNsYXNzLCBub3QKCW1vc3QuICBIYW5kbGUgc2Vjb25kYXJ5IHZ0YWJsZXMuCgoyMDAwLTEyLTIyICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHB0LmMgKG1vcmVfc3BlY2lhbGl6ZWQpOiBEb24ndCBvcHRpbWl6ZSBsZW49PTAuCgkoZm5fdHlwZV91bmlmaWNhdGlvbik6IElmIHdlJ3JlIGFkZGluZyB0aGUgcmV0dXJuIHR5cGUsIGluY3JlYXNlIGxlbi4KCgkqIHR5cGVjay5jIChidWlsZF9iaW5hcnlfb3ApOiBGaXggcG1mIGNvbXBhcmlzb24gbG9naWMuCgoJKiBjYWxsLmMgKGpvdXN0KTogVXNlIERFQ0xfTk9OU1RBVElDX01FTUJFUl9GVU5DVElPTl9QLCBub3QKCURFQ0xfU1RBVElDX0ZVTkNUSU9OX1AuCgoJKiBzZW1hbnRpY3MuYyAoZ2VucnRsX2ZpbmlzaF9mdW5jdGlvbik6IERvbid0IHRyeSB0byBqdW1wIHRvCglyZXR1cm5fbGFiZWwgdW5sZXNzIGl0IGV4aXN0cy4KCglJbiBwYXJ0aWFsIG9yZGVyaW5nIGZvciBhIGNhbGwsIGlnbm9yZSBwYXJtcyBmb3Igd2hpY2ggd2UgZG9uJ3QgaGF2ZQoJYSByZWFsIGFyZ3VtZW50LgoJKiBjYWxsLmMgKGpvdXN0KTogUGFzcyBsZW4gdG8gbW9yZV9zcGVjaWFsaXplZC4KCShhZGRfdGVtcGxhdGVfY2FuZGlkYXRlX3JlYWwpOiBTdHJpcCAndGhpcycsIHBhc3MgbGVuLgoJKiBwdC5jIChtb3JlX3NwZWNpYWxpemVkKTogUGFzcyBsZW4gZG93bi4gIExvc2UgZXhwbGljaXRfYXJncyBwYXJtLgoJKGdldF9iaW5kaW5nc19vcmRlcik6IE5ldyBmbi4gIFBhc3MgbGVuIGRvd24uCgkoZ2V0X2JpbmRpbmdzX3JlYWwpOiBTdHJpcCAndGhpcycsIHBhc3MgbGVuLgoJKGZuX3R5cGVfdW5pZmljYXRpb24pOiBMaWtld2lzZS4KCSh0eXBlX3VuaWZpY2F0aW9uX3JlYWwpOiBTdWNjZWVkIGFmdGVyIGNoZWNraW5nICdsZW4nIGFyZ3MuCgkobW9zdF9zcGVjaWFsaXplZF9pbnN0YW50aWF0aW9uKTogTG9zZSBleHBsaWNpdF9hcmdzIHBhcm0uCgkqIGNsYXNzLmMgKHJlc29sdmVfYWRkcmVzc19vZl9vdmVybG9hZGVkX2Z1bmN0aW9uKTogU3RyaXAgJ3RoaXMnLAoJcGFzcyBsZW4uCgoyMDAwLTEyLTIxICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHB0LmMgKHRzdWJzdF9kZWNsKTogQSBGVU5DVElPTl9ERUNMIGhhcyBERUNMX1JFU1VMVCwgbm90CglERUNMX1RFTVBMQVRFX1JFU1VMVC4KCgkqIHNlYXJjaC5jIChsb29rdXBfZmllbGRfcik6IENhbGwgbG9va3VwX2ZuZmllbGRzXzEsIG5vdAoJbG9va3VwX2ZuZmllbGRzX2hlcmUuCgoJKiBwYXJzZS55ICh0eXBlbmFtZV9zdWIyKTogUmV0dXJuIHRoZSBUWVBFX0RFQ0wsIG5vdCB0aGUgdHlwZS4KCgkqIGNhbGwuYyAoYnVpbGRfb2JqZWN0X2NhbGwpOiBBbHNvIGFsbG93IGNvbnZlcnNpb25zIHRoYXQgcmV0dXJuCglyZWZlcmVuY2UgdG8gcG9pbnRlciB0byBmdW5jdGlvbi4KCShhZGRfY29udl9jYW5kaWRhdGUpOiBIYW5kbGUgdG90eXBlIGJlaW5nIHJlZiB0byBwdHIgdG8gZm4uCgkoYnVpbGRfZmllbGRfY2FsbCk6IEFsc28gYWxsb3cgbWVtYmVycyBvZiB0eXBlIHJlZmVyZW5jZSB0byBmdW5jdGlvbi4KCUxvc2Ugc3VwcG9ydCBmb3IgY2FsbGluZyBwb2ludGVyIHRvIE1FVEhPRF9UWVBFIGZpZWxkcy4KCgkqIGVycm9yLmMgKGR1bXBfZXhwcik6IEhhbmRsZSAqX0NBU1RfRVhQUi4KCgkqIHR5cGVjazIuYyAoYnVpbGRfc2NvcGVkX3JlZik6IEFsd2F5cyBjb252ZXJ0IHRvIHRoZSBuYW1pbmcgY2xhc3MuCgoJKiB0cmVlLmMgKGJyZWFrX291dF9jbGVhbnVwcyk6IExvc2UuCgkqIGNwLXRyZWUuaDogUmVtb3ZlIHByb3RvdHlwZS4KCSogdHlwZWNrLmMgKGJ1aWxkX2NvbXBvbmVudF9yZWYpOiBEb24ndCBicmVha19vdXRfY2xlYW51cHMuCgkoYnVpbGRfY29tcG91bmRfZXhwcik6IExpa2V3aXNlLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2V4cHJfc3RtdCk6IExpa2V3aXNlLgoKMjAwMC0xMi0yMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNwLXRyZWUuaDogVXBkYXRlIGRlY2xhcmF0aW9ucy4KCSogZGVjbC5jIChmaW5pc2hfY2FzZV9sYWJlbCk6IFJldHVybiB0aGUgbmV3IHN0bXQgbm9kZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9nb3RvX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfZXhwcl9zdG10LCBmaW5pc2hfcmV0dXJuX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfYnJlYWtfc3RtdCwgZmluaXNoX2NvbnRpbnVlX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfYXNtX3N0bXQpOiBMaWtld2lzZS4KCSogcGFyc2UueSAoYWxyZWFkeV9zY29wZWRfc3RtdCk6IFNldCBTVE1UX0xJTkVOTy4KCShjb21wc3RtdCwgaW1wbGljaXRseV9zY29wZWRfc3RtdCwgc3RtdCk6IExpa2V3aXNlLgoJKHNpbXBsZV9pZiwgc2ltcGxlX3N0bXQpOiBSZXR1cm4gdGhlIG5ldyBzdG10IG5vZGUuCgkoc2F2ZV9saW5lbm8pOiBOZXcuCgoyMDAwLTEyLTE4ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBjcC10cmVlLmg6IERvbid0IGRlY2xhcmUgd2Fybl9sb25nX2xvbmcuCgoyMDAwLTEyLTE1ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHRyZWUuYyAobm9fbGlua2FnZV9oZWxwZXIpOiBVc2UgQ0xBU1NfVFlQRV9QIGluc3RlYWQgb2YKCUlTX0FHR1JfVFlQRS4KCjIwMDAtMTItMTUgIEtyaWFuZyBMZXJkc3V3YW5ha2lqICA8bGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogcHQuYyAodW5pZnkpOiBIYW5kbGUgd2hlbiBib3RoIEFSRyBhbmQgUEFSTSBhcmUKCUJPVU5EX1RFTVBMQVRFX1RFTVBMQVRFX1BBUk0uCgoyMDAwLTEyLTE1ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHB0LmMgKHJlZHVjZV90ZW1wbGF0ZV9wYXJtX2xldmVsKTogU2V0IERFQ0xfQVJUSUZJQ0lBTCBhbmQKCURFQ0xfVEVNUExBVEVfUEFSTV9QLgoKMjAwMC0xMi0xNSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBpbml0LmMgKGJ1aWxkX25ld18xKTogUmVvcmdhbml6ZS4gIE5vdyB3aXRoIDEwMCUgZmV3ZXIgU0FWRV9FWFBScyEKCgkqIGluaXQuYyAoYnVpbGRfbmV3XzEpOiBEb24ndCBzdHJpcCBxdWFscyBmcm9tIHR5cGUuCgoJKiBkZWNsLmMgKHB1c2hkZWNsKTogRG9uJ3QgY2hlY2sgZm9yIGxpbmthZ2Ugb24gYSBub24tZGVjbC4KCgkqIGNhbGwuYyAoYnVpbGRfb3BfZGVsZXRlX2NhbGwpOiBTZWUgdGhyb3VnaCBBUlJBWV9UWVBFcy4KCgkqIGNhbGwuYyAoYnVpbGRfbmV3X2Z1bmN0aW9uX2NhbGwpOiBMb3NlIHNwYWNlIGJlZm9yZSBwYXJlbiBpbgoJZXJyb3IgbWVzc2FnZS4KCShidWlsZF9uZXdfbWV0aG9kX2NhbGwpOiBMaWtld2lzZS4KCgkqIHR5cGVjazIuYyAoYnVpbGRfbV9jb21wb25lbnRfcmVmKTogUHJvcGFnYXRlIHF1YWxzIGZyb20gZGF0dW0uCgoyMDAwLTEyLTE0ICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHB0LmMgKGNoZWNrX2V4cGxpY2l0X3NwZWNpYWxpemF0aW9uKTogUHJvcGFnYXRlIGRlZmF1bHQKCWZ1bmN0aW9uIGFyZ3VtZW50cyB0byBleHBsaWNpdCBzcGVjaWFsaXphdGlvbnMuCgoyMDAwLTEyLTEzICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIHR5cGVjay5jIChidWlsZF9iaW5hcnlfb3ApOiBEbyBzaWduZWQvdW5zaWduZWQgd2FybmluZ3MgZm9yID4/CglhbmQgPD8gb3BlcmF0b3JzLgoKMjAwMC0xMi0wOCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBlcnJvci5jIChkdW1wX2Z1bmN0aW9uX25hbWUpOiBEb24ndCBsZXQgdGhlIHVzZXIgc2VlIF9fY29tcF9jdG9yLgoKCUNsZWFuIHVwIGNvcHktaW5pdGlhbGl6YXRpb24gaW4gb3ZlcmxvYWRpbmcgY29kZS4KCSogY2FsbC5jIChidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xKTogRGllIGlmIHdlIGFyZSBhc2tlZCB0bwoJY29udmVydCB0byB0aGUgc2FtZSBvciBhIGJhc2UgdHlwZS4KCShpbXBsaWNpdF9jb252ZXJzaW9uKTogQXZvaWQgZG9pbmcgc28uICBMb3NlIHJlZmVyZW5jZSBiaW5kaW5nIGNvZGUuCgkoY29udmVydF9saWtlX3JlYWwpOiBUcmVhdCBCQVNFX0NPTlYgYW5kIFJWQUxVRV9DT05WIGFzIGltcGxpY2l0CglkaXJlY3QtaW5pdGlhbGl6YXRpb24uICBBbHNvIGRvIGRpcmVjdC1pbml0IHBhcnQgb2YgY29weS1pbml0LgoJKGJ1aWxkX3VzZXJfdHlwZV9jb252ZXJzaW9uKTogRG9uJ3QgcHJvdmlkZSBjb250ZXh0IHRvIGNvbnZlcnRfbGlrZS4KCSogY3Z0LmMgKG9jcF9jb252ZXJ0KTogYnVpbGRfdXNlcl90eXBlX2NvbnZlcnNpb24gd2lsbCBub3cgcHJvdmlkZQoJdGhlIGNvbnN0cnVjdG9yIGNhbGwgZm9yIGNvcHktaW5pdC4KCgkqIHB0LmMgKHRzdWJzdF9kZWNsKTogQ2FsbCBjbG9uZV9mdW5jdGlvbl9kZWNsIGhlcmUgaWYgdGhpcyBpcyBhbgoJaW5zdGFudGlhdGlvbiBvZiBhIG1lbWJlciB0ZW1wbGF0ZS4KCShkb19kZWNsX2luc3RhbnRpYXRpb24pOiBOb3QgaGVyZS4KCjIwMDAtMTItMDcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChjaGVja19maWVsZF9kZWNscyk6IERvbid0IHNwZWNpYWwgY2FzZSBhbm9ueW1vdXMKCWZpZWxkcyBpbiBlcnJvciBtZXNzYWdlcy4KCShub3RlX25hbWVfZGVjbGFyZWRfaW5fY2xhc3MpOiBVc2UgJUQgb24gZGlhZ25vc3RpYy4KCgkqIHRyZWUuYyAocG9kX3R5cGVfcCk6IFVzZSBzdHJpcF9hcnJheV90eXBlcy4KCShjcF92YWxpZF9sYW5nX2F0dHJpYnV0ZSk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoY3BfdHlwZV9xdWFscyk6IFN0cmlwIGFycmF5cyBzZXBhcmF0ZWx5LCB0byBhdm9pZAoJbXVsdGlwbGUgZXZhbHVhdGlvbnMuCgkoY3BfaGFzX211dGFibGVfcCk6IFVzZSBzdHJpcF9hcnJheV90eXBlcy4KCjIwMDAtMTItMDcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHN1ZmZpY2llbnRfcGFybXNfcCk6IERlY2xhcmUgbmV3IGZ1bmN0aW9uLgoJKiBjYWxsLmMgKHN1ZmZpY2llbnRfcGFybXNfcCk6IE5ldyBmdW5jdGlvbiwgYnJva2VuIG91dCBvZiAuLi4KCShhZGRfZnVuY3Rpb25fY2FuZGlkYXRlKTogLi4uIGhlcmUuIFVzZSBpdC4KCShhZGRfY29udl9jYW5kaWRhdGUpOiBVc2UgaXQuCgkqIGRlY2wuYyAoZ3Jva19jdG9yX3Byb3BlcnRpZXMpOiBVc2UgaXQuCgoyMDAwLTEyLTA3ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIG9wdGltaXplLmMgKGNvcHlfYm9keV9yKTogU2V0IFNUTVRfSVNfRlVMTF9FWFBSX1Agb24gRVhQUl9TVE1ULgoKMjAwMC0xMi0wNyAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZGVjbDIuYyAobGFuZ19kZWNvZGVfb3B0aW9uKTogSGFuZGxlIC1XZm9ybWF0LXNlY3VyaXR5LgoKMjAwMC0xMi0wNiAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwdC5jICh2ZXJpZnlfY2xhc3NfdW5pZmljYXRpb24pOiBOZXcgZnVuY3Rpb24uCgkoZ2V0X2NsYXNzX2JpbmRpbmdzKTogVXNlIGl0LgoJKHRyeV9jbGFzc191bmlmaWNhdGlvbik6IFRpZHkuCgkodW5pZnkpOiBIYW5kbGUgd2hlbiBhcmd1bWVudCBvZiBhIHRlbXBsYXRlLWlkIGlzIG5vdAoJdGVtcGxhdGUgcGFyYW1ldGVyIGRlcGVuZGVudC4KCSh0ZW1wbGF0ZV9hcmdzX2VxdWFsKTogSGFuZGxlIHdoZW4gVFJFRV9DT0RFJ3MgZG8gbm90IG1hdGNoLgoKMjAwMC0xMi0wNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBsYW5nLXNwZWNzLmggKGMrKyk6IFdoZW4gaW52b2tpbmcgdGhlIHN0YW5kLWFsb25lIHByZXByb2Nlc3NvcgoJZm9yIC1zYXZlLXRlbXBzLCBwYXNzIGFsbCByZWxldmFudCAtRGVmaW5lcyB0byBpdCwgYW5kIHRoZW4gZG9uJ3QKCXBhc3MgdGhlbSB0byBjYzFwbHVzLgoKMjAwMC0xMi0wNSAgV2lsbCBDb2hlbiAgPHdjb2hlbkByZWRoYXQuY29tPgoKCSogZGVjbC5jIChmaW5pc2hfY2FzZV9sYWJlbCk6IENsZWFyZWQKCW1vcmVfY2xlYW51cHNfb2sgaW4gc3Vycm91bmRpbmcgZnVuY3Rpb24gc2NvcGVzLgoJKGRlZmluZV9sYWJlbCk6IExpa2V3aXNlLgoKMjAwMC0xMi0wNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoSURFTlRJRklFUl9WSVJUVUFMX1ApOiBEb2N1bWVudC4KCShnZXRfbWF0Y2hpbmdfdmlydHVhbCk6IFJlbW92ZS4KCShsb29rX2Zvcl9vdmVycmlkZXMpOiBEZWNsYXJlIG5ldyBmdW5jdGlvbi4KCSogZGVjbC5jIChncm9rZm5kZWNsKTogRG9uJ3Qgc2V0IElERU5USUZJRVJfVklSVFVBTF9QIG9yCglERUNMX1ZJTkRFWCBoZXJlLgoJKiBjbGFzcy5jIChjaGVja19mb3Jfb3ZlcnJpZGUpOiBNb3ZlIGJhc2UgY2xhc3MgaXRlcmF0aW9uIGNvZGUKCXRvIGxvb2tfZm9yX292ZXJyaWRlcy4KCSogc2VhcmNoLmMgKG5leHRfYmFzZWxpbmspOiBSZW1vdmUuCgkoZ2V0X3ZpcnR1YWxzX25hbWVkX3RoaXMpOiBSZW1vdmUuCgkoZ2V0X3ZpcnR1YWxfZGVzdHJ1Y3Rvcik6IFJlbW92ZS4KCSh0cmVlX2hhc19hbnlfZGVzdHJ1Y3RvcnNfcCk6IFJlbW92ZS4KCShzdHJ1Y3QgZ3ZudF9pbmZvKTogUmVtb3ZlLgoJKGNoZWNrX2ZpbmFsX292ZXJyaWRlcik6IFJlbW92ZSBgdmlydHVhbCcgZnJvbSBlcnJvciBtZXNzYWdlcy4KCShnZXRfbWF0Y2hpbmdfdmlydHVhbHMpOiBSZW1vdmUuIE1vdmUgZnVuY3Rpb25hbGl0eSB0byAuLi4KCShsb29rX2Zvcl9vdmVycmlkZXMpOiAuLi4gaGVyZSwgYW5kIC4uLgoJKGxvb2tfZm9yX292ZXJyaWRlc19yKTogLi4uIGhlcmUuIFNldCBERUNMX1ZJUlRVQUxfUCwgaWYgZm91bmQKCXRvIGJlIG92ZXJyaWRpbmcuCgoyMDAwLTEyLTA1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrLmMgKGdldF9kZWx0YV9kaWZmZXJlbmNlKTogSWYgdmlhIGEgdmlydHVhbCBiYXNlLAoJcmV0dXJuIHplcm8uCgkqIGN2dC5jIChjcF9jb252ZXJ0X3RvX3BvaW50ZXIpOiBJZiB2aWEgYSB2aXJ0dWFsIGJhc2UsIGRvIG5vCglhZGp1c3RtZW50LgoKMjAwMC0xMi0wNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVycm9yLmMgKGR1bXBfdHJlZSk6IFVzZSBvdXRwdXRfYWRkX3N0cmluZyBub3QgT0JfUFVUUy4KCjIwMDAtMTItMDQgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogbWFuZ2xlLmMgKHdyaXRlX3R5cGUpOiBNYW5nbGUgVkVDVE9SX1RZUEUgd2l0aCAiVThfX3ZlY3RvciIuCgkod3JpdGVfYnVpbHRpbl90eXBlKTogUGFzcyBpbnRTSV90eXBlX25vZGUgYW5kIHRoZSBsaWtlIHRocm91Z2gKCXR5cGVfZm9yX21vZGUuCgkqIG1ldGhvZC5jIChwcm9jZXNzX292ZXJsb2FkX2l0ZW0pOiBNYW5nbGUgVkVDVE9SX1RZUEVzIHdpdGggJ28nLgoJUGFzcyBpbnRTSV90eXBlX25vZGUgYW5kIHRoZSBsaWtlIHRocm91Z2ggdHlwZV9mb3JfbW9kZS4KCSogZGVjbDIuYyAoYXJnX2Fzc29jX3R5cGUpOiBIYW5kbGUgVkVDVE9SX1RZUEUgbGlrZSBDT01QTEVYX1RZUEUuCgkqIHB0LmMgKHRzdWJzdCwgdW5pZnkpOiBMaWtld2lzZS4KCSogdHJlZS5jICh3YWxrX3RyZWUpOiBMaWtld2lzZS4KCSogZXJyb3IuYyAoZHVtcF90eXBlKTogTGlrZXdpc2UuCgkoZHVtcF90eXBlX3ByZWZpeCwgZHVtcF90eXBlX3N1ZmZpeCk6IERvbid0IGJvdGhlciB3aXRoIFZFQ1RPUl9UWVBFLgoKCSogTWFrZS1sYW5nLmluOiBUd2VhayB0b3AgY29tbWVudCBmb3IgZW1hY3MuCgkoY3AvVEFHUyk6IFJlc3RvcmUuCgoJKiBleGNlcHQuYyAoZXhwYW5kX3Rocm93KTogVXNlIHB1c2hfdGhyb3dfbGlicmFyeV9mbiBmb3IgX0p2X1Rocm93LgoKCSogY2xhc3MuYyAoY2xvbmVfZnVuY3Rpb25fZGVjbCk6IFJvYnVzdGlmeS4KCjIwMDAtMTItMDQgIE1pY2hhZWwgTWF0eiAgPG1hdHptaWNoQGNzLnR1LWJlcmxpbi5kZT4KCgkqIGRlY2wuYyAoc3RvcmVfYmluZGluZ3MpOiBPbmx5IHNlYXJjaCBpbiB0aGUgbm9uIG1vZGlmaWVkCglvbGRfYmluZGluZ3MgZm9yIGR1cGxpY2F0ZXMuCgoyMDAwLTEyLTA0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZXJyb3IuYyAoZHVtcF9mdW5jdGlvbl9kZWNsKTogVXNlIERFQ0xfVklSVFVBTF9QLCBub3QKCVRZUEVfUE9MWU1PUlBISUNfUC4KCgkqIHR5cGVjay5jIChidWlsZF9zdGF0aWNfY2FzdCk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgoyMDAwLTEyLTAxICBLcmlhbmcgTGVyZHN1d2FuYWtpaiAgPGxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHB0LmM6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgoyMDAwLTEyLTAxICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBkZWNsMi5jICh3YXJuX2Zvcm1hdCk6IFJlbW92ZSBkZWZpbml0aW9uLgoJKGxhbmdfZGVjb2RlX29wdGlvbik6IEhhbmRsZSAtV2Zvcm1hdC1ub25saXRlcmFsLAoJLVduby1mb3JtYXQtZXh0cmEtYXJncyBhbmQgLVduby1mb3JtYXQteTJrLiAgVXNlIHNldF9XZm9ybWF0LgoKMjAwMC0xMi0wMSAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZGVjbC5jIChXSU5UX1RZUEUsIElOVE1BWF9UWVBFLCBVSU5UTUFYX1RZUEUpOiBEb24ndCBkZWZpbmUuCgkoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBEb24ndCBjcmVhdGUgc3RyaW5nX3R5cGVfbm9kZSwKCWNvbnN0X3N0cmluZ190eXBlX25vZGUsIHdpbnRfdHlwZV9ub2RlLCBpbnRtYXhfdHlwZV9ub2RlLAoJdWludG1heF90eXBlX25vZGUsIGRlZmF1bHRfZnVuY3Rpb25fdHlwZSwgcHRyZGlmZl90eXBlX25vZGUgYW5kCgl1bnNpZ25lZF9wdHJkaWZmX3R5cGVfbm9kZS4gIEFkanVzdCBwb3NpdGlvbiBvZiBjYWxsIHRvCgljX2NvbW1vbl9ub2Rlc19hbmRfYnVpbHRpbnMuCgkoaWRlbnRpZmllcl9nbG9iYWxfdmFsdWUpOiBOZXcgZnVuY3Rpb24uCgoyMDAwLTEyLTAxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChzdGFuZGFyZF9jb252ZXJzaW9uKTogUmVqZWN0IHBvaW50ZXIgdG8gbWVtYmVyCgljb252ZXJzaW9ucyBmcm9tIGFtYmlndW91cywgaW5hY2Nlc3NpYmxlIG9yIHZpcnR1YWwgYmFzZXMuCgkqIHR5cGVjay5jIChidWlsZF9zdGF0aWNfY2FzdCk6IERvbid0IGNoZWNrIHBvaW50ZXJzIHRvIG1lbWJlcnMKCXNwZWNpYWxseS4KCjIwMDAtMTEtMzAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtZXRob2QuYyAoZG9fYnVpbGRfY29weV9jb25zdHJ1Y3Rvcik6IFByZXNlcnZlIGN2CglxdWFsaWZpY2F0aW9ucyB3aGVuIGFjY2Vzc2luZyBzb3VyY2Ugb2JqZWN0IG1lbWJlcnMuCgkoZG9fYnVpbGRfYXNzaWduX3JlZik6IExpa2V3aXNlLiBSZW1vdmUgc2VwYXJhdGUgZGlhZ25vc3RpY3MgZm9yCgl1bm5hbWVkIGZpZWxkcy4KCjIwMDAtMTEtMzAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtZXRob2QuYyAoZG9fYnVpbGRfYXNzaWduX3JlZik6IENvbnN0cnVjdCBhcHByb3ByaWF0ZWx5CglDVi1xdWFsaWZpZWQgYmFzZSByZWZlcmVuY2UuIERvbid0IGFsbG93IGNvbnN0IGNhc3RzIGluIGJhc2UKCWNvbnZlcnNpb24uCgoyMDAwLTExLTMwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChidWlsZF9vdmVyX2NhbGwpOiBVc2UgVk9JRF9UWVBFX1AuIERvbid0IGRpZSBvbgoJaW5jb21wbGV0ZSByZXR1cm4gdHlwZS4KCjIwMDAtMTEtMjggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwYXJzZS55IChiYXNlX2NsYXNzLjEpOiBQcm9kdWNlIGEgX1RZUEUgbm90IGEgX0RFQ0wuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfYmFzZV9zcGVjaWZpZXIpOiBBY2NlcHQgYSBfVFlQRSBub3QgYQoJX0RFQ0wuCgoyMDAwLTExLTI4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogc3Bldy5jICh5eWVycm9yKTogQ29wZSBpZiB5eWx2YWwudHR5cGUgaXMgTlVMTC4KCjIwMDAtMTEtMjggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogRGlhZ25vc2UgdW5kZWZpbmVkIHRlbXBsYXRlIGNvbnRleHRzLgoKMjAwMC0xMS0yOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBEbyB0eXBlIGFjY2VzcyBjb250cm9sIG9uIGZyaWVuZAoJY2xhc3MuCgoyMDAwLTExLTI3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChncm9rZm5kZWNsKTogVW5kbyBDT01QT05FTlRfUkVGIGRhbWFnZSBjYXVzZWQgYnkKCWJpc29uIHBhcnNlciBpY2tpbmVzcy4KCSogcHQuYyAodHN1YnN0X2ZyaWVuZF9mdW5jdGlvbik6IEVudGVyIG5hbWVzcGFjZSBzY29wZSB3aGVuCgl0c3Vic3RpbmcgdGhlIGZ1bmN0aW9uIG5hbWUuCgkqIGNwLXRyZWUuaCAoREVDTF9USV9URU1QTEFURSk6IFVwZGF0ZSBjb21tZW50IHRvIHJlZmxlY3QgcmVhbGl0eS4KCjIwMDAtMTEtMjcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGJpbmZvX2Zyb21fdmJhc2UpOiBSZXR1cm4gdGhlIHZpcnR1YWwgYmFzZSdzIGJpbmZvLgoJKiBjdnQuYyAoY3BfY29udmVydF90b19wb2ludGVyKTogQWRkIGZvcmNlIHBhcmFtZXRlci4KCUFsbG93IGNvbnZlcnNpb25zIHZpYSB2aXJ0dWFsIGJhc2UgaWYgZm9yY2VkLgoJKGNvbnZlcnRfdG9fcG9pbnRlcl9mb3JjZSk6IEFkanVzdCBjYWxsIHRvIGNwX2NvbnZlcnRfdG9fcG9pbnRlci4KCShvY3BfY29udmVydCk6IExpa2V3aXNlLgoJKiBzZWFyY2guYyAoYmluZm9fZnJvbV92YmFzZSk6IFJldHVybiB0aGUgdmlydHVhbCBiYXNlJ3MgYmluZm8uCgkqIHR5cGVjay5jIChnZXRfZGVsdGFfZGlmZmVyZW5jZSk6IEFkanVzdCBoYW5kbGluZyBvZiB2aXJ0dWFsCgliYXNlcy4KCjIwMDAtMTEtMjYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVlLmMgKHN0cnVjdCBsaXN0X2hhc2gpOiBSZW1vdmUuCgkobGlzdF9oYXNoX3RhYmxlKTogTWFrZSBpdCBiZSBhbiBodGFiLgoJKHN0cnVjdCBsaXN0X3Byb3h5KTogTmV3IHR5cGUuCgkobGlzdF9oYXNoX2VxKTogTmV3IGZ1bmN0aW9uLgoJKGxpc3RfaGFzaF9waWVjZXMpOiBSZW5hbWVkIGZyb20gLi4uCgkobGlzdF9oYXNoKTogLi4uIHRoaXMuCgkobGlzdF9oYXNoX2xvb2t1cCk6IFJlbW92ZS4KCShsaXN0X2hhc2hfYWRkKTogUmVtb3ZlLgoJKGhhc2hfdHJlZV9jb25zKTogVXNlIHRoZSBnZW5lcmljIGhhc2h0YWJsZS4KCShtYXJrX2xpc3RfaGFzaCk6IFJlbW92ZS4KCShpbml0X3RyZWUpOiBDcmVhdGUgdGhlIGhhc2h0YWJsZS4KCjIwMDAtMTEtMjUgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIG1ldGhvZC5jIChidWlsZF9tYW5nbGVkX0M5eF9uYW1lKTogUmVuYW1lIHRvCglidWlsZF9tYW5nbGVkX0M5OV9uYW1lLiAgQ2hhbmdlIEM5WCByZWZlcmVuY2VzIGluIGNvbW1lbnRzIHRvCglyZWZlciB0byBDOTkuCgoyMDAwLTExLTI0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcGFyc2UueSAodW5hcnlfZXhwcik6IE1vdmUgVkFfQVJHIGZyb20gaGVyZSAuLi4KCShwcmltYXJ5KTogLi4uIHRvIGhlcmUuCgoyMDAwLTExLTI0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogc2VtYW50aWNzLmMgKGZpbmlzaF9pZF9leHByKTogSWYgdHlwZSBpcyBlcnJvcl9tYXJrLCByZXR1cm4KCWVycm9yX21hcmsuCgoyMDAwLTExLTIzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAobG9va3VwX3RlbXBsYXRlX2NsYXNzKTogU2ltcGxpZnkgbG9vcCBleGl0IGNvbnN0cnVjdHMuCglDb3BlIHdoZW4gdGhlcmUgaXMgbm8gcGFydGlhbCBpbnN0YW50aWF0aW9uIG9mIGEgdGVtcGxhdGUKCXRlbXBsYXRlIG1lbWJlci4KCjIwMDAtMTEtMjMgIEoib3JuIFJlbm5lY2tlIDxhbXlsYWFyQHJlZGhhdC5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKGcrK3NwZWMubywgY3h4bWFpbi5vKTogRGVwZW5kIG9uICQoQ09ORklHX0gpLgoKMjAwMC0xMS0yMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG1hbmdsZS5jIChtYW5nbGVfY29udl9vcF9uYW1lX2Zvcl90eXBlKTogRG9uJ3QgdXNlIGBfX29wJwoJcHJlZml4LgoKCSogcHQuYyAoZG9fZGVjbF9pbnN0YW50aWF0ZSk6IEV4cGxpY2l0bHkgY2xvbmUgY29uc3RydWN0b3JzIGFuZAoJZGVzdHJ1Y3RvcnMgdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiBjbG9uZWQuCgoyMDAwLTExLTIwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogcGFyc2UueSAoeXlwYXJzZV8xKTogUmVuYW1lIHRoZSBwYXJzZXIgZW50cnkgcG9pbnQuCgoyMDAwLTExLTIwICBBbGV4IFNhbXVlbCAgPHNhbXVlbEBjb2Rlc291cmNlcnkuY29tPgoKCSogbWFuZ2xlLmMgKHdyaXRlX25hbWUpOiBVc2UgPHVuc2NvcGVkLW5hbWU+IGZvciBuYW1lcyBkaXJlY3RseSBpbgoJZnVuY3Rpb24gc2NvcGUuCgkod3JpdGVfdW5zY29wZWRfbmFtZSk6IEFjY2VwdCBuYW1lcyBkaXJlY3RseSBpbiBmdW5jdGlvbiBzY29wZS4KCjIwMDAtMTEtMjAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBsZXguYyAocmlkX3RvX3l5LCBSSURfRVhQT1JUKTogTWFrZSB1bmlxdWUga2V5d29yZC4KCSogcGFyc2UueSAoZXh0ZGVmKTogQWRkIEVYUE9SVCByZWR1Y3Rpb24uCgkqIHNwZXcuYyAoeXlsZXgpOiBEb24ndCBza2lwIGV4cG9ydCBoZXJlLgoKMjAwMC0xMS0xOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBDb3JyZWN0IG5hbWUgb2YgcHVyZSB2aXJ0dWFsCglmdW5jdGlvbiB1bmRlciB0aGUgbmV3IEFCSS4KCSogcnR0aS5jICh0aHJvd19iYWRfY2FzdCk6IExpa2V3aXNlLCBmb3IgYmFkIGNhc3QgZnVuY3Rpb24uCgkodGhyb3dfYmFkX3R5cGVpZCk6IExpa2V3aXNlIGZvciBiYWQgdHlwZWlkIGZ1bmN0aW9uLgoKMjAwMC0xMS0xOCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoZ3Jva3Bhcm1zKTogRG9uJ3QgZXZlbiBmdW5jdGlvbiB0eXBlcyBvZiBgdm9pZCcgdHlwZSwKCWVpdGhlci4KCSogbWFuZ2xlLmMgKHdyaXRlX3R5cGUpOiBEb24ndCBjcmFzaCB3aGVuIGNvbmZyb250ZWQgd2l0aCB0aGUKCWVycm9yX21hcmtfbm9kZS4KCgkqIGRlY2wuYyAoZ3Jva3Bhcm1zKTogRG9uJ3QgY3JlYXRlIHBhcmFtZXRlcnMgb2YgYHZvaWQnIHR5cGUuCgoyMDAwLTExLTE3ICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuc3RhbmZvcmQuZWR1PgoKCSogbGV4LmMgKG1hcmtfaW1wbF9maWxlX2NoYWluKTogRGVsZXRlLgoJKGluaXRfcGFyc2UpOiBSZW1vdmUgY2FsbCB0byBnZ2NfYWRkX3N0cmluZ19yb290LiAgTm8gbmVlZCB0bwoJZ2djX3N0cmR1cCBhIHN0cmluZyBjb25zdGFudC4gIERvIG5vdCBhZGQgaW1wbF9maWxlX2NoYWluIHRvIEdDCglyb290cy4KCShoYW5kbGVfcHJhZ21hX2ltcGxlbWVudGF0aW9uKTogTm8gbmVlZCB0byBnZ2Nfc3RyZHVwIG1haW5fZmlsZW5hbWUuCgoyMDAwLTExLTE3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAodHN1YnN0X2V4cHIsIERFQ0xfU1RNVCk6IEluc3RhbnRpYXRlIGRlY2wncyB0eXBlLgoKMjAwMC0xMS0xNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoUEFSTUxJU1RfRUxMSVBTSVNfUCk6IE5ldyBtYWNyby4KCSogZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IERvbid0IHJlamVjdCB2b2lkIHBhcm1zIGhlcmUuCgkocmVxdWlyZV9jb21wbGV0ZV90eXBlc19mb3JfcGFybXMpOiBTaW1wbGlmeSwgdXNlCgljb21wbGV0ZV90eXBlX29yX2Vsc2UuCgkoZ3Jva3Bhcm1zKTogUmVtb3ZlIGJpdHJvdC4gUmVtb3ZlIGZ1bmNkZWYgcGFybS4KCURlYWwgd2l0aCBlbGxpcHNpcyBwYXJtIGxpc3RzIGhlcmUuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfcGFybWxpc3QpOiBEb24ndCBhcHBlbmQgdm9pZF9saXN0X25vZGUKCWhlcmUuIFNldCBQQVJNTElTVF9FTExJUFNJU19QLgoKMjAwMC0xMS0xNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHR5cGVjazIuYyAoaW5jb21wbGV0ZV90eXBlX2Vycm9yKTogUmVvcmdhbml6ZSB0byBhdm9pZAoJZXhjZXNzaXZlIGRpYWdub3N0aWNzLgoKMjAwMC0xMS0xNiAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LnN0YW5mb3JkLmVkdT4KCgkqIGxleC5jIChzdHJ1Y3QgaW1wbF9maWxlcywgaW50ZXJuYWxfZmlsZW5hbWUpOiBDb25zdGlmeSBhIGNoYXIgKi4KCjIwMDAtMTEtMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtYW5nbGUuYyAod3JpdGVfc3BlY2lhbF9uYW1lX2NvbnN0cnVjdG9yKTogRG9uJ3QgZ2VuZXJhdGUKCWFzc2VtYmxlciBqdW5rIHdoZW4gY29uZnJvbnRlZCB3aXRoIGFuIG9sZC1zdHlsZSBjb25zdHJ1Y3Rvci4KCSh3cml0ZV9zcGVjaWFsX25hbWVfZGVzdHJ1Y3Rvcik6IExpa2V3aXNlLgoJKG1hbmdsZV9kZWNsX3N0cmluZyk6IERvIGl0IGhlcmUgaW5zdGVhZC4KCjIwMDAtMTEtMTYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKG9wX2Vycm9yKTogTWFrZSBlcnJvciBtZXNzYWdlcyBjbGVhcmVyLgoKMjAwMC0xMS0xNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAod3JhcHVwX2dsb2JhbHNfZm9yX25hbWVzcGFjZSk6IERvbid0IG1hcmsgdGhpbmdzCglUUkVFX0FTTV9XUklUVEVOIHdoZW4gdGhleSdyZSBub3QuCgoyMDAwLTExLTE1ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHR5cGVjazIuYyAoZnJpZW5kbHlfYWJvcnQpOiBVbmNvdW50IHRoZSBlcnJvciBiZWZvcmUgaGFuZGluZwoJb2ZmIHRvIGZhbmN5X2Fib3J0LgoKMjAwMC0xMS0xNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHR5cGVjay5jIChsb29rdXBfYW5vbl9maWVsZCk6IENvcGUgd2l0aCBxdiBxdWFsaWZpZXJzLgoKMjAwMC0xMS0xNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBGaXggdHlwbyBpbiBjb21tZW50LgoJKiB0eXBlY2suYyAoZXhwcl9zaXplb2YpOiBEb24ndCBjcmFzaCBvbiBlcnJvcnMuCgoyMDAwLTExLTE0ICBKaW0gV2lsc29uICA8d2lsc29uQHJlZGhhdC5jb20+CgoJKiBsYW5nLXNwZWNzLmg6IEFkZCAlMiBhZnRlciAlKGNjMV9vcHRpb25zKS4KCjIwMDAtMTEtMTQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0eXBlY2suYyAoY19zaXplb2YpOiBCZSBzdHJpY3QgYWJvdXQgY2FzdGluZyByZXN1bHQgdmFsdWUKCWJhY2sgdG8gY19zaXplX3R5cGVfbm9kZS4KCShleHByX3NpemVvZiwgY19zaXplb2Zfbm93YXJuLCBjX2FsaWdub2YpOiBMaWtld2lzZS4KCjIwMDAtMTEtMTMgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIHR5cGVjay5jIChidWlsZF91bmFyeV9vcCk6IFVzZSBib29sZWFuX2luY3JlbWVudCBmcm9tCgljLWNvbW1vbi5jLCBtb3ZpbmcgdGhlIHJlbGV2YW50IGNvZGUgdGhlcmUuCgoyMDAwLTExLTExICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHR5cGVjay5jIChtYXJrX2FkZHJlc3NhYmxlKTogRG9uJ3QgY2FsbCBwdXRfdmFyX2ludG9fc3RhY2suCgoJKiBkZWNsLmMgKG1heWJlX2NvbW1vbml6ZV92YXIpOiBTZXQgREVDTF9VTklOTElOQUJMRSBmb3Igc3RhdGljcwoJaW4gaW5saW5lcy4KCjIwMDAtMTEtMTAgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IsIHNhdmVfZnVuY3Rpb25fZGF0YSk6IFVzZSBtZW1jcHksIG5vdCBiY29weS4KCSogbGV4LmMgKGNvcHlfbGFuZ19kZWNsKTogTGlrZXdpc2UuCgoyMDAwLTExLTA5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZHVtcC5jIChjcF9kdW1wX3RyZWUpOiBEb24ndCBkdW1wIGZ1bmN0aW9uIGJvZGllcyBoZXJlLgoKCSogTWFrZS1sYW5nLmluIChDWFhfQ19PQkpTKTogQWRkIGMtZHVtcC5vLgoJKGR1bXAubyk6IFVwZGF0ZSBkZXBlbmRlbmN5IGxpc3QuCgkqIGNwLXRyZWUuaCAoREVDTF9NQVlCRV9URU1QTEFURSk6IFJlbW92ZS4KCShmbGFnX2R1bXBfdHJhbnNsYXRpb25fdW5pdCk6IExpa2V3aXNlLgoJKENQX1RZUEVfUVVBTFMpOiBBZGp1c3QgZGVmaW5pdGlvbi4KCShERUNMX0NfQklUX0ZJRUxEKTogUmVtb3ZlLgoJKFNFVF9ERUNMX0NfQklUX0ZJRUxEKTogTGlrZXdpc2UuCgkoQ0xFQVJfREVDTF9DX0JJVF9GSUVMRCk6IExpa2V3aXNlLgoJKGFkZF9tYXliZV90ZW1wbGF0ZSk6IExpa2V3aXNlLgoJKHN0cmlwX2FycmF5X3R5cGVzKTogTGlrZXdpc2UuCgkoZHVtcF9ub2RlX3RvX2ZpbGUpOiBMaWtld2lzZS4KCShjcF9kdW1wX3RyZWUpOiBOZXcgZnVuY3Rpb24uCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBTZXQgbGFuZ19kdW1wX3RyZWUuCgkqIGRlY2wyLmMgKGZsYWdfZHVtcF90cmFuc2xhdGlvbl91bml0KTogUmVtb3ZlLgoJKiBkdW1wLmM6IE1vdmUgbW9zdCBvZiBpdCB0byAuLi9jLWR1bXAuYy4KCShjcF9kdW1wX3RyZWUpOiBOZXcgZnVuY3Rpb24uCgkqIHB0LmMgKGFkZF9tYXliZV90ZW1wbGF0ZSk6IFJlbW92ZS4KCSogdHlwZWNrLmMgKHN0cmlwX2FycmF5X3R5cGVzKTogTGlrZXdpc2UuCgoyMDAwLTExLTA3ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBDaGFuZ2UgZGVmaW5pdGlvbiBvZgoJX193Y2hhcl90IHRvIHdjaGFyX3QuICBSZW1vdmUgYXJ0aWZpY2lhbCBkZWNsYXJhdGlvbiBvZgoJd2NoYXJfdC4KCSogbGV4LmM6IENoYW5nZSBpbnN0YW5jZXMgb2YgX193Y2hhcl90IHRvIHdjaGFyX3QuCgoyMDAwLTExLTA5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogbGV4LmMgKGRvX2lkZW50aWZpZXIpOiBEb24ndCBsb29rdXBfbmFtZSBmb3Igb3BlcmF0b3JzLgoJKiBwYXJzZS55IChvcGVyYXRvcik6IFNhdmUgbG9va2luZ19mb3JfdHlwZW5hbWUuCgkodW5vcGVyYXRvcik6IFJlc3RvcmUgaXQuCgkqIHNwZXcuYyAoZnJvYl9vcG5hbWUpOiBVc2UgbnRoX3Rva2VuIGZvciBsb29rYWhlYWQuCgoyMDAwLTExLTA4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChncm9rX29wX3Byb3BlcnRpZXMpOiBBbHdheXMgdXNlIGNvZXJjZV9uZXdfdHlwZSBhbmQKCWNvZXJjZV9kZWxldGVfdHlwZS4KCSogZGVjbDIuYyAoY29lcmNlX25ld190eXBlKTogVXNlIGNfc2l6ZV90eXBlX25vZGUuIFByZXNlcnZlCglleGNlcHRpb24gc3BlY2lmaWNhdGlvbi4gVGlkeSB1cC4KCShjb2VyY2VfZGVsZXRlX3R5cGUpOiBQcmVzZXJ2ZSBleGNlcHRpb24gc3BlY2lmaWNhdGlvbi4gVGlkeSB1cC4KCjIwMDAtMTEtMDcgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGNsYXNzLmMgKGR1cGxpY2F0ZV90YWdfZXJyb3IsIGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpLCBkZWNsLmMKCShwdXNoX2JpbmRpbmdfbGV2ZWwpLCBlcnJvci5jIChjcF90cmVlX3ByaW50ZXIpLCBwdC5jCgkocHJvY2Vzc19wYXJ0aWFsX3NwZWNpYWxpemF0aW9uLCB0c3Vic3RfdGVtcGxhdGVfYXJnX3ZlY3RvciksCglzZWFyY2guYyAobG9va3VwX21lbWJlcik6IFVzZSBtZW1zZXQgKCkgaW5zdGVhZCBvZiBiemVybyAoKS4KCjIwMDAtMTEtMDcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGJ1aWxkX3B0cm1lbWZ1bmNfdHlwZSk6IEFsbG93IGVycm9yX21hcmtfbm9kZS4KCjIwMDAtMTEtMDUgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIE1ha2UtbGFuZy5pbiAoYysrLmRpc3RkaXIpOiBSZW1vdmUuCgoyMDAwLTExLTA0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoZG9fbm9ubWVtYmVyX3VzaW5nX2RlY2wpOiBBbGxvdyBgZXh0ZXJuICJDIicKCWRlY2xhcmF0aW9ucyBmcm9tIGRpZmZlcmVudCBuYW1lc3BhY2VzIHRvIGJlIGNvbWJpbmVkLgoKMjAwMC0xMS0wMyAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LnN0YW5mb3JkLmVkdT4KCgkqIGRlY2wuYzogSW5jbHVkZSB0bV9wLmguCgoyMDAwLTExLTAzICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiB0cmVlLmMgKGNwX3RyZWVfZXF1YWwpOiBVc2UgbWVtY21wICgpIGluc3RlYWQgb2YgYmNtcCAoKS4KCjIwMDAtMTEtMDIgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCksIGxleC5jIChpbnRlcmZhY2Vfc3RyY21wKSwgbWV0aG9kLmMKCShidWlsZF9vdmVybG9hZF92YWx1ZSksIHJlcG8uYyAob3Blbl9yZXBvX2ZpbGUpLCB4cmVmLmMKCShvcGVuX3hyZWZfZmlsZSk6IFVzZSBzdHJjaHIgKCkgYW5kIHN0cnJjaHIgKCkgaW5zdGVhZCBvZiBpbmRleCAoKQoJYW5kIHJpbmRleCAoKS4KCjIwMDAtMTEtMDEgIEJlcm5kIFNjaG1pZHQgIDxiZXJuZHNAcmVkaGF0LmNvLnVrPgoKCSogY2FsbC5jIChidWlsZF9vdmVyX2NhbGwpOiBDYWxsIGZvbGQgb24gdGhlIENBTExfRVhQUi4KCjIwMDAtMTEtMDEgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmMgKGR1bXBfdGVtcGxhdGVfZGVjbCk6IFNlcGFyYXRlIHRlbXBsYXRlIGhlYXJkZXJzIHdpdGgKCXNwYWNlIG5vdCBjb21tYS4KCjIwMDAtMTAtMzEgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmM6IE1vdmUgVEZGXyBtYWNyb3MgaW50byBjcC10cmVlLmguICBUaHJvdWdob3V0LCByZXBsYWNlCglUU18qIGZsYWdzIHdpdGggY29ycmVzcG9uZGluZyBURkZfKi4gIEFkanVzdCBwcm90b3R5cGVzIG9mCglmdW5jdGlvbnMgKHdoaWNoIHVzZWQgdG8gdGFrZSBhIHRyZWVfc3RyaW5nX2ZsYWdzKSB0byB0YWtlIGFuIGludC4KCgkqIGNwLXRyZWUuaCAoZW51bSB0cmVlX3N0cmluZ19mbGFncyk6IFJlbW92ZQoJKFRGRl9QTEFJTl9JREVOVElGSUVSLCBURkZfTkFNRVNQQUNFX1NDT1BFLCBURkZfQ0xBU1NfU0NPUEUsCglURkZfQ0hBU0VfTkFNRVNQQUNFX0FMSUFTLCBURkZfQ0hBU0VfVFlQRURFRiwgVEZGX0RFQ0xfU1BFQ0lGSUVSUywKCVRGRl9DTEFTU19LRVlfT1JfRU5VTSwgVEZGX1JFVFVSTl9UWVBFLAoJVEZGX0ZVTkNUSU9OX0RFRkFVTFRfQVJHVU1FTlRTLCBURkZfRVhDRVBUSU9OX1NQRUNJRklDQVRJT04sCglURkZfVEVNUExBVEVfSEVBREVSLCBURkZfVEVNUExBVEVfREVGQVVMVF9BUkdVTUVOVFMsCglURkZfVEVNUExBVEVfTkFNRSwgVEZGX0VYUFJfSU5fUEFSRU5TLCBURkZfU0NPUEUpOiBOZXcgbWFjcm9zLgoJKHR5cGVfYXNfc3RyaW5nLCBkZWNsX2FzX3N0cmluZywgZXhwcl9hc19zdHJpbmcsCgljb250ZXh0X2FzX3N0cmluZyk6IEFkanVzdCBwcm90b3R5cGUuCgoJKiBjbGFzcy5jIChkdW1wX2NsYXNzX2hpZXJhcmNoeV9yKTogVXNlIFRGRl9QTEFJTl9JREVOVElGSUVSCglpbnN0ZWFkIG9mIFRTX1BMQUlOLgoKCSogcHQuYyAobWFuZ2xlX2NsYXNzX25hbWVfZm9yX3RlbXBsYXRlKTogVXNlIFRGRl9DSEFTRV9UWVBFREVGCglpbnN0ZWFkIG9mIFRGX0NIQVNFX1RZUEVERUZTLiBVc2UgVEZGX1BMQUlOX0lERU5USUZJRVIgaW5zdGVhZCBvZgoJcGxhaW4gYDAnLgoKMjAwMC0xMC0zMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoREVDTF9FWFRFUk5BTF9MSU5LQUdFX1ApOiBOZXcgbWFjcm8uCgkobGlua2FnZV9raW5kKTogTmV3IGVudW1lcmF0aW9uLgoJKGRlY2xfbGlua2FnZSk6IE5ldyBmdW5jdGlvbi4KCSogZGVjbDIuYyAoY29tZGF0X2xpbmthZ2UpOiBFeHRlbmQgY29tbWVudC4KCSogZXJyb3IuYyAoZHVtcF9mdW5jdGlvbl9kZWNsKTogUHJpbnQgdGhlIGFyZ3VtZW50cyB1c2VkIHRvCglpbnN0YW50aWF0ZSBhIHRlbXBsYXRlLCBldmVuIHdoZW4gbm90IHByaW50aW5nIHRoZSB0eXBlIG9mIHRoZQoJZnVuY3Rpb24uCgkqIHB0LmMgKGNvbnZlcnRfbm9udHlwZV9hcmd1bWVudCk6IFVzZSBERUNMX0VYVEVSTkFMX0xJTktBR0VfUCwKCW5vdCBUUkVFX1BVQkxJQywgdG8gdGVzdCBmb3IgZXh0ZXJuYWwgbGlua2FnZS4KCSogdHJlZS5jIChkZWNsX2xpbmthZ2UpOiBOZXcgZnVuY3Rpb24uCgoyMDAwLTEwLTI4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAoaW5zdGFudGlhdGVfZGVjbCk6IEFsd2F5cyBpbnN0YW50aWF0ZSBzdGF0aWMgZGF0YSBtZW1iZXJzCglpbml0aWFsaXplZCBpbi1jbGFzcy4KCjIwMDAtMTAtMjcgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5zdGFuZm9yZC5lZHU+CgoJKiBNYWtlLWxhbmcuaW46IE1vdmUgYWxsIGJ1aWxkIHJ1bGVzIGhlcmUgZnJvbSBNYWtlZmlsZS5pbiwKCWFkYXB0IHRvIG5ldyBjb250ZXh0LiAgV3JhcCBhbGwgcnVsZXMgdGhhdCBjaGFuZ2UgdGhlIGN1cnJlbnQKCWRpcmVjdG9yeSBpbiBwYXJlbnRoZXNlcy4gIEV4cHVuZ2UgYWxsIHJlZmVyZW5jZXMgdG8gJChQKS4KCVdoZW4gb25lIGNvbW1hbmQgZGVwZW5kcyBvbiBhbm90aGVyIGFuZCB0aGV5J3JlIHJ1biBhbGwgYXQKCW9uY2UsIHVzZSAmJiB0byBzZXBhcmF0ZSB0aGVtLCBub3QgOy4gIEFkZCBPVVRQVVRfT1BUSU9OIHRvCglhbGwgb2JqZWN0LWZpbGUgZ2VuZXJhdGlvbiBydWxlcy4gIERlbGV0ZSBvYnNvbGV0ZSB2YXJpYWJsZXMuCgoJKiBNYWtlZmlsZS5pbjogRGVsZXRlLgoJKiBjb25maWctbGFuZy5pbjogRGVsZXRlIG91dHB1dHM9IGxpbmUuCgoyMDAwLTEwLTI2ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlcnJvci5jIChkdW1wX2Z1bmN0aW9uX2RlY2wpOiBQcmludCBubyBzcGFjZSBiZXR3ZWVuCglgcHRyLW9wZXJhdG9yJyB0aGUgYHR5cGUtc3BlY2lmaWVyJyBvZiB0aGUgcmV0dXJuIHR5cGUuCgkoZHVtcF90eXBlX3ByZWZpeCk6IE1ha2Ugc3VyZSB3ZSBwdXQgc3BhY2UgYXQgdGhlIGFwcHJvcHJpYXRlCglwbGFjZS4KCjIwMDAtMTAtMjMgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogY2FsbC5jIChlcXVhbF9mdW5jdGlvbnMpOiBBbHNvIGNhbGwgZGVjbHNfbWF0Y2ggZm9yIGV4dGVybiAiQyIgZm5zLgoKMjAwMC0xMC0yMiAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBjYWxsLmMgKGJ1aWxkX2NvbmRpdGlvbmFsX2V4cHIpOiBVc2Ugb2NwX2NvbnZlcnQgdG8gZm9yY2UKCXJ2YWx1ZSBjb252ZXJzaW9uLgoKMjAwMC0xMC0yMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoc3RhbmRhcmRfY29udmVyc2lvbik6IFVzZSBSVkFMVUVfQ09OVnMgZm9yIGFsbAoJZXhwcmVzc2lvbnMgdGhhdCBzYXRpc2Z5IGx2YWx1ZV9wLCBub3QganVzdCB0aG9zZSB0aGF0IHNhdGlzZnkKCXJlYWxfbHZhbHVlX3AuCgoJKiBvcHRpbWl6ZS5jIChjb3B5X2JvZHlfcik6IERvbid0IHRyZWF0IENBTExfRVhQUnMgc3BlY2lhbGx5LgoKCSogdHlwZWNrLmMgKGNfc2l6ZW9mKTogUmV0dXJuIGFuIGV4cHJlc3Npb24gb2YgYHNpemVfdCcgdHlwZSwKCW5vdCBvbmUgd2l0aCBUWVBFX0lTX1NJWkVUWVBFIHNldC4KCShkdWJpb3VzX2NvbnZlcnNpb25fd2FybmluZ3MpOiBSZW1vdmUgc3BlY2lhbC1jYXNlIGNvZGUuCgoyMDAwLTEwLTIxICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGN5Z251cy5jb20+CgoJKiBkZWNsMi5jIChhcmdfYXNzb2NfdHlwZSk6IEhhbmRsZSBWRUNUT1JfVFlQRS4KCSogZXJyb3IuYyAoZHVtcF90eXBlKTogSGFuZGxlIFZFQ1RPUl9UWVBFIGxpa2UgUE9JTlRFUl9UWVBFLgoJKGR1bXBfdHlwZV9wcmVmaXgpOiBQcmludCB2ZWN0b3Itb2YtaW50IGFzICdpbnQgdmVjdG9yJy4KCShkdW1wX3R5cGVfc3VmZml4KTogSGFuZGxlIFZFQ1RPUl9UWVBFIGxpa2UgUE9JTlRFUl9UWVBFLgoJKiB0cmVlLmMgKHdhbGtfdHJlZSk6IEhhbmRsZSBWRUNUT1JfVFlQRS4KCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBDYWxsIE1EX0lOSVRfQlVJTFRJTlMuCgoyMDAwLTEwLTIxICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHBhcnNlLnkgKG9wZXJhdG9yKTogU2V0IGdvdF9vYmplY3QgZnJvbSBnb3Rfc2NvcGUuCglTZXQgbG9va2luZ19mb3JfdHlwZW5hbWUuCgkqIGRlY2wuYyAobG9va3VwX25hbWVfcmVhbCk6IENsZWFyIHZhbCBhZnRlciBzZXR0aW5nIGZyb21fb2JqLgoJUmVvcmdhbml6ZSBkaWFnbm9zdGljLgoKMjAwMC0xMC0yMCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiB0cmVlLmMgKHdhbGtfdHJlZSk6IERvbid0IHdhbGsgaW50byBkZWZhdWx0IGFyZ3MuCgoJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBVc2UgaG9zdF9pbnRlZ2VycC4KCjIwMDAtMTAtMjAgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIHR5cGVjazIuYyAoYWJzdHJhY3RfdmlydHVhbHNfZXJyb3IpOiBVc2UgImJlY2F1c2UiIGluc3RlYWQgb2YKCSJzaW5jZSIgaW4gZXJyb3IgbWVzc2FnZS4KCjIwMDAtMTAtMjAgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiB0eXBlY2suYyAoZHViaW91c19jb252ZXJzaW9uX3dhcm5pbmcpOiBTdXBwcmVzcyBpZiBUWVBFX0lTX1NJWkVUWVBFLgoKMjAwMC0xMC0yMCAgSmVmZnJleSBPbGRoYW0gIDxvbGRoYW1AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAocmV2ZXJ0X3N0YXRpY19tZW1iZXJfZm4pOiBGaXhlZCB0eXBvLgoKMjAwMC0xMC0xOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKHN1Ym9iamVjdF9vZmZzZXRfZm4pOiBOZXcgdHlwZS4KCShkZnNfcmVjb3JkX2Jhc2Vfb2Zmc2V0cyk6IFJlbW92ZS4KCShyZWNvcmRfYmFzZV9vZmZzZXRzKTogTGlrZXdpc2UuCgkoZGZzX3NlYXJjaF9iYXNlX29mZnNldHMpOiBMaWtld2lzZS4KCShyZWNvcmRfc3Vib2JqZWN0X29mZnNldCk6IE5ldyBmdW5jdGlvbi4KCShjaGVja19zdWJvYmplY3Rfb2Zmc2V0KTogTGlrZXdpc2UuCgkod2Fsa19zdWJvYmplY3Rfb2Zmc2V0cyk6IExpa2V3aXNlLgoJKHJlY29yZF9zdWJvYmplY3Rfb2Zmc2V0cyk6IExpa2V3aXNlLgoJKGxheW91dF9jb25mbGljdF9wKTogUmVpbXBsZW1lbnQuCgkobGF5b3V0X25vbmVtcHR5X2Jhc2Vfb3JfZmllbGQpOiBDb3JyZWN0IGhhbmRsaW5nIG9mIHR5cGUKCWNvbmZsaWN0cyBkdXJpbmcgbGF5b3V0LgoJKGxheW91dF9lbXB0eV9iYXNlKTogTGlrZXdpc2UuCgkoYnVpbGRfYmFzZV9maWVsZCk6IEFkanVzdCB0byBoYW5kbGUgbmV3IHJlcHJlc2VudGF0aW9uIG9mIGVtcHR5CgliYXNlIG9mZnNldCB0YWJsZS4KCShidWlsZF9iYXNlX2ZpZWxkcyk6IExpa2V3aXNlLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogTGlrZXdpc2UuCgkoc3BsYXlfdHJlZV9jb21wYXJlX2ludGVnZXJfY3N0cyk6IE5ldyBmdW5jdGlvbi4KCShsYXlvdXRfY2xhc3NfdHlwZSk6IFVzZSBhIHNwbGF5X3RyZWUsIHJhdGhlciB0aGFuIGEgdmFycmF5LCB0bwoJcmVwcmVzZW50IHRoZSBvZmZzZXRzIG9mIGVtcHR5IGJhc2VzLgoKCSogY3AtdHJlZS5oIChERUNMX0FOVElDSVBBVEVEKTogRG9uJ3QgcmVxdWlyZSBhIEZVTkNUSU9OX0RFQ0wuCgkqIGRlY2wuYyAoc2VsZWN0X2RlY2wpOiBEb24ndCByZXR1cm4gZGVjbGFyYXRpb25zIHRoYXQgYXJlCglERUNMX0FOVElDSVBBVEVELgoKMjAwMC0xMC0xOCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoY3BfdHJlZV9pbmRleCk6IEFkZCBDUFRJX0ZBS0VfU1RELgoJKGZha2Vfc3RkX25vZGUpOiBOZXcgbWFjcm8uCgkqIGRlY2wuYyAoaW5fc3RkKTogUmVuYW1lIHRvIC4uLgoJKGluX2Zha2Vfc3RkKTogLi4uIHRoaXMuCgkoZmxhZ19ub19idWlsdGluKTogUmVtb3ZlLgoJKGZsYWdfbm9fbm9uYW5zaV9idWlsdGluKTogTGlrZXdpc2UuCgkod2Fsa19uYW1lc3BhY2VzX3IpOiBVc2UgZmFrZV9zdGRfbm9kZS4KCShwdXNoX25hbWVzcGFjZSk6IFVzZSBzdGRfaWRlbnRpZmllci4KCShwb3BfbmFtZXNwYWNlKTogVXNlIGluX2Zha2Vfc3RkLgoJKGxvb2t1cF9uYW1lX3JlYWwpOiBVc2UgZmFrZV9zdGRfbm9kZS4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IFdoZW4gLWZob25vci1zdGQsIGNyZWF0ZSB0aGUgYHN0ZCcKCW5hbWVzcGFjZS4gIERvbid0IGNyZWF0ZSBhIGR1bW15IGZha2Vfc3RkX25vZGUgaW4gdGhhdCBjYXNlLgoJQWRqdXN0IGNhbGwgdG8gY19jb21tb25fbm9kZXNfYW5kX2J1aWx0aW5zLiAgVXNlIHN0ZF9pZGVudGlmaWVyLgoJKGJ1aWx0aW5fZnVuY3Rpb24pOiBQdXQgYnVpbHRpbnMgd2hvc2UgbmFtZXMgZG9uJ3QgYmVnaW4KCXdpdGggYF8nIGluIHRoZSBzdGQgbmFtZXNwYWNlLgoJKiBkZWNsMi5jIChmbGFnX25vX2J1aWx0aW4pOiBSZW1vdmUuCgkoZmxhZ19ub19ub25hbnNpX2J1aWx0aW4pOiBMaWtld2lzZS4KCShzZXRfZGVjbF9uYW1lc3BhY2UpOiBVc2UgZmFrZV9zdGRfbm9kZS4KCSh2YWxpZGF0ZV9ub25tZW1iZXJfdXNpbmdfZGVjbCk6IExpa2V3aXNlLgoJKGRvX3VzaW5nX2RpcmVjdGl2ZSk6IExpa2V3aXNlLgoJKGhhbmRsZV9jbGFzc19oZWFkKTogTGlrZXdpc2UuCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IExpa2V3aXNlLgoJKiBleGNlcHQuYyAoaW5pdF9leGNlcHRpb25fcHJvY2Vzc2luZyk6IFVzZSBzdGRfaWRlbnRpZmllci4KCSogaW5pdC5jIChidWlsZF9tZW1iZXJfY2FsbCk6IFVzZSBmYWtlX3N0ZF9ub2RlLgoJKiBydHRpLmMgKGluaXRfcnR0aV9wcm9jZXNzaW5nKTogVXNlIHN0ZF9pZGVudGlmaWVyLgoKMjAwMC0xMC0xNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoYmFja19lbmRfaG9vayk6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCSogZGVjbDIuYyAoYmFja19lbmRfaG9vayk6IFJlbW92ZSBkZWZpbml0aW9uLgoKCSogZHVtcC5jIChkZXF1ZXVlX2FuZF9kdW1wKTogRHVtcCBUUkVFX1VTRUQuCgoyMDAwLTEwLTE3ICBCcmFkIEx1Y2llciA8bHVjaWVyQG1hdGgucHVyZHVlLmVkdT4KCgkqIHNwZXcuYyAoc25hcmZfZGVmYXJnKTogQ2FzdCAybmQgYXJnIHRvIG9ic3RhY2tfYmxhbmsgdG8gKGludCkuCgoyMDAwLTEwLTE3ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBkZWNsLmMgKFdJTlRfVFlQRSk6IERlZmluZS4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IENyZWF0ZSB0eXBlcyB1bnNpZ25lZF9wdHJkaWZmX3R5cGVfbm9kZSwKCWNfc2l6ZV90eXBlX25vZGUsIHNpZ25lZF9zaXplX3R5cGVfbm9kZSBhbmQgd2ludF90eXBlX25vZGUuCgoyMDAwLTEwLTE3ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBkZWNsMi5jICh3YXJuX21pc3NpbmdfZm9ybWF0X2F0dHJpYnV0ZSk6IE5ldyB2YXJpYWJsZS4KCShsYW5nX2RlY29kZV9vcHRpb24pOiBEZWNvZGUgLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUuCgoyMDAwLTEwLTE2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrLmMgKHF1YWxpZnlfdHlwZSk6IFJlbW92ZS4KCShjb21wb3NpdGVfcG9pbnRlcl90eXBlKTogRml4IGhhbmRsaW5nIG9mIGNvbnZlcnNpb25zIHRvIGBjdiB2b2lkKicuCgoyMDAwLTEwLTE0ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBNYWtlZmlsZS5pbiAocGFyc2UuYywgcGFyc2UuaCk6IEZpeCB0aGluay1vIGluIGxhc3QgcGF0Y2guCgoyMDAwLTEwLTEzICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBNYWtlZmlsZS5pbiAocGFyc2UuYywgcGFyc2UuaCk6IENyZWF0ZSBhdG9taWNhbGx5LgoKMjAwMC0xMC0xMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGN1cnJlbnRfb2JzdGFjayk6IFJlbW92ZS4KCSogZGVjbC5jIChnZ2NfcCk6IFJlbW92ZS4KCShzdGFydF9kZWNsKTogRG9uJ3QgdXNlIGRlY2xfdHJlZV9jb25zLgoJKGdyb2tkZWNsYXJhdG9yKTogRG9uJ3QgdXNlIGJ1aWxkX2RlY2xfbGlzdC4KCShzdGFydF9mdW5jdGlvbik6IERvbid0IHVzZSBkZWNsX3RyZWVfY29ucy4KCShmaW5pc2hfZnVuY3Rpb24pOiBEb24ndCBtZXNzIHdpdGggb2JzdGFja3MuCgkqIGRlY2wyLmMgKGdyb2tfeF9jb21wb25lbnRzKTogRG9uJ3QgdXNlIGJ1aWxkX2RlY2xfbGlzdC4KCSogbGV4LmMgKG1ha2VfY2FsbF9kZWNsYXJhdG9yKTogRG9uJ3QgY2FsbCBkZWNsX3RyZWVfY29ucy4KCShpbXBsaWNpdGx5X2RlY2xhcmVfZm4pOiBEb24ndCBjYWxsIGJ1aWxkX2RlY2xfbGlzdC4KCSogcGFyc2UueSAoZnJvYl9zcGVjcyk6IERvbid0IGNhbGwgYnVpbGRfZGVjbF9saXN0IG9yCglkZWNsX3RyZWVfY29ucy4KCShleHByX29yX2RlY2xhcmF0b3JfaW50ZXJuKTogRG9uJ3QgY2FsbCBkZWNsX3RyZWVfY29ucy4KCShwcmltYXJ5KTogRG9uJ3QgY2FsbCBidWlsZF9kZWNsX2xpc3QuCgkoZmNhc3Rfb3JfYWJzZGNsKTogTGlrZXdpc2UuCgkodHlwZWRfZGVjbHNwZWNzKTogRG9uJ3QgY2FsbCBkZWNsX3RyZWVfY29ucy4KCShyZXNlcnZlZF9kZWNsc3BlY3MpOiBEb24ndCBjYWxsIGJ1aWxkX2RlY2xfbGlzdC4KCShkZWNsbW9kcyk6IExpa2V3aXNlLgoJKHJlc2VydmVkX3R5cGVzcGVjcXVhbHMpOiBMaWtld2lzZS4KCShhZ2dyKTogTGlrZXdpc2UuCgkobmV3X3R5cGVfaWQpOiBMaWtld2lzZS4KCShjdl9xdWFsaWZpZXJzKTogTGlrZXdpc2UuCgkoYWZ0ZXJfdHlwZV9kZWNsYXJhdG9yX2ludGVybik6IExpa2V3aXNlLgoJKG5vdHlwZV9kZWNsYXJhdG9yX2ludGVybik6IExpa2V3aXNlLgoJKGFic2RjbF9pbnRlcm4pOiBMaWtld2lzZS4KCShuYW1lZF9wYXJtKTogTGlrZXdpc2UuCgkqIHB0LmMgKG1vc3Rfc3BlY2lhbGl6ZWRfY2xhc3MpOiBMaWtld2lzZS4KCSogcmVwby5jICh0ZW1wb3Jhcnlfb2JzdGFjayk6IE1ha2UgaXQgYSBzdHJ1Y3R1cmUsIG5vdCBhIHBvaW50ZXIuCgkoaW5pdF9yZXBvKTogSW5pdGlhbGl6ZSBpdC4KCSogc2VhcmNoLmMgKGN1cnJlbnRfb2JzdGFjayk6IFJlbW92ZS4KCSogdHlwZWNrMi5jIChhZGRfZXhjZXB0aW9uX3NwZWNpZmllcik6IERvbid0IGNhbGwgYnVpbGRfZGVjbF9saXN0LgoKMjAwMC0xMC0wOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAY3lnbnVzLmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAoQ1hYX0VYVFJBX0hFQURFUlMpOiBSZW1vdmUuCgkoYysrIGxhbmd1YWdlIHN1cHBvcnQgYml0cyBmb3IgbGliZ2NjKTogUmVtb3ZlLgoJKGMrKy5jbGVhbik6IFJlbW92ZSBjcGxpYjIudHh0IGNsZWFudXAuCgkqIGNvbmZpZy1sYW5nLmluIChoZWFkZXJzLCBsaWIyZnVuY3MpOiBSZW1vdmUuCgoJKiBleGNlcHRpb24uY2MsIG5ldy5jYywgbmV3MS5jYywgbmV3Mi5jYzogUmVtb3ZlIGZpbGVzLgoJKiB0aW5mby5jYywgdGluZm8uaCwgdGluZm8yLmNjLCB2ZWMuY2M6IFJlbW92ZSBmaWxlcy4KCSogaW5jL2N4eGFiaS5oLCBpbmMvZXhjZXB0aW9uLCBpbmMvbmV3OiBSZW1vdmUgZmlsZXMuCgkqIGluYy9uZXcuaCwgaW5jL3R5cGVpbmZvOiBSZW1vdmUgZmlsZXMuCgoyMDAwLTEwLTA4ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiBkZWNsLmMgKElOVE1BWF9UWVBFLCBVSU5UTUFYX1RZUEUpOiBEZWZpbmUgaWYgbm90IGFscmVhZHkKCWRlZmluZWQuCgkoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBJbml0aWFsaXplIGludG1heF90eXBlX25vZGUgYW5kCgl1aW50bWF4X3R5cGVfbm9kZS4KCjIwMDAtMTAtMDYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQGN5Z251cy5jb20+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBjcF9sYW5ndWFnZV9mdW5jdGlvbik6IFJlbW92ZSB4X3Jlc3VsdF9ydHguCgkob3JpZ2luYWxfcmVzdWx0X3J0eCk6IFJlbW92ZS4KCSogZGVjbC5jIChzYXZlX2Z1bmN0aW9uX2RhdGEpOiBEb24ndCBjbGVhciB4X3Jlc3VsdF9ydHguCgkobWFya19sYW5nX2Z1bmN0aW9uKTogRG9uJ3QgbWFyayBpdCBlaXRoZXIuCgkqIGV4cHIuYyAoZml4dXBfcmVzdWx0X2RlY2wpOiBSZW1vdmUuCgkqIHNlbWFudGljcy5jIChnZW5ydGxfbmFtZWRfcmV0dXJuX3ZhbHVlKTogRnJvYiB0aGUgcmV0dXJuIGRlY2wKCWJlZm9yZSBjYWxsaW5nIGVtaXRfbG9jYWxfdmFyLgoJKGdlbnJ0bF9maW5pc2hfZnVuY3Rpb24pOiBEb24ndCBjYWxsIGZpeHVwX3Jlc3VsdF9kZWNsLgoJQWx3YXlzIGVtaXQgdGhlIGp1bXAgdG8gcmV0dXJuX2xhYmVsLgoKMjAwMC0xMC0wNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IFNldCBjdXJyZW50IGFjY2VzcyBmb3IgZW51bS4KCSh0c3Vic3RfZW51bSk6IFNldCBmaWxlICYgbGluZSBmb3IgZW51bSBkZWNsLgoKCSogc3Bldy5jICh5eWxleCk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgoyMDAwLTEwLTA1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogc2VtYW50aWNzLmMgKGdlbnJ0bF9maW5pc2hfZnVuY3Rpb24pOiBEb24ndCBpbml0IG9yIGNoZWNrCgljYW5fcmVhY2hfZW5kOyByZW1vdmUgbm9yZXR1cm4gYW5kIHJldHVybiB2YWx1ZSBjaGVja3MuCgoyMDAwLTEwLTA1ICBUb20gVHJvbWV5ICA8dHJvbWV5QGN5Z251cy5jb20+CgoJKiBpbml0LmMgKGJ1aWxkX2phdmFfY2xhc3NfcmVmKTogVXNlIGBidWlsZF9zdGF0aWNfbmFtZScgd2l0aCBhCglzdWZmaXgsIG5vdCBhIHByZWZpeCwgdG8gYnVpbGQgdGhlIGNsYXNzIG9iamVjdCdzIG5hbWUuCgoyMDAwLTEwLTA1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChhY2Nlc3Nfa2luZCk6IEZpeCBjb21tZW50IHR5cG8uCgkqIGRlY2wyLmMgKGdyb2tmaWVsZCk6IEZpeCBkaWFnbm9zdGljIHR5cG8uCgkqIHNlbWFudGljcy5jIChmaW5pc2hfdGVtcGxhdGVfdHlwZSk6IEZpeCBjb21tZW50IHR5cG8uCgkoZmluaXNoX3F1YWxpZmllZF9vYmplY3RfY2FsbF9leHByKTogTGlrZXdpc2UuCgoyMDAwLTEwLTA1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAodHN1YnN0X2V4cHIsIERFQ0xfU1RNVCBjYXNlKTogRG9uJ3QgcHJvY2VzcyBpZgoJdHN1YnN0aW5nIGZhaWxzLgoKMjAwMC0xMC0wNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHNwZXcuYyAoZnJvYl9pZCk6IE5ldyBzdGF0aWMgZnVuY3Rpb24uCgkoZnJvYl9vcG5hbWUpOiBVc2UgaXQuCgkoeXlsZXgpOiBVc2UgaXQuCgoyMDAwLTEwLTAxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChsYW5nX21hcmtfZmFsc2VfbGFiZWxfc3RhY2spOiBSZW1vdmUuCgkqIGxleC5jIChjcF9tYW5nX2xhbmdfdHlwZSk6IFVzZSBnZ2NfYWxsb2NfY2xlYXJlZC4KCjIwMDAtMDktMzAgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGd4eGludC50ZXhpOiBVc2UgQGVtYWlsIGZvciBmb3JtYXR0aW5nIGVtYWlsIGFkZHJlc3Nlcy4KCjIwMDAtMDktMjkgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmM6IFJlbW92ZSBkaXJlY3Qgb2JzdGFjayBtYW5pcHVsYXRpb24uICBSZXBsYWNlIHdpdGgKCW91dHB1dF9idWZmZXItYmFzZWQgZm9ybWF0dGluZy4gIEFkanVzdCBjYWxscyB0byByZW1vdmVkIG1hY3Jvcy4KCShvYnN0YWNrX2NodW5rX2FsbG9jLCBvYnN0YWNrX2NodW5rX2ZyZWUpOiBSZW1vdmUuCgkoT0JfSU5JVCwgT0JfUFVUQywgT0JfUFVUQzIsIE9CX1BVVFMsIE9CX1BVVElELCBPQl9QVVRDUCwKCU9CX0ZJTklTSCwgT0JfUFVUSSwgT0JfRU5EX1RFTVBMQVRFKTogTGlrZXdpc2UuCgoyMDAwLTA5LTI0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogaXIudGV4aTogTW92ZSB0byAuLi9jLXRyZWUudGV4aS4KCjIwMDAtMDktMjAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZGVjbDIuYyAoZ2V0X2d1YXJkKTogQ2hlY2sgREVDTF9GVU5DVElPTl9TQ09QRV9QLgoKMjAwMC0wOS0yMSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZXJyZm4uYzogTW92ZSBkZWNsYXJhdGlvbiBvZiBjcF9wcmludGVyIGFuZCBjcF9wcmludGVycyB0byAuLi4KCSogY3AtdHJlZS5oOiAuLi4gaGVyZS4KCgkqIGVycm9yLmM6IFJlbW92ZSBkZWNsYXJhdGlvbiBvZiBjcF9wcmludGVyLgoKMjAwMC0wOS0yMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWUuYyAobWFya19sb2NhbF9mb3JfcmVtYXBfcik6IEhhbmRsZSBDQVNFX0xBQkVMcy4KCjIwMDAtMDktMjAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZXhjZXB0LmM6IERlbGV0ZSAjaWYgMDpkIEVYQ0VQVElPTl9TRUNUSU9OX0FTTV9PUC1kZWZhdWx0IGFuZAoJdXNlcnMuCgoyMDAwLTA5LTE4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChzdGFydF9mdW5jdGlvbik6IFJvYnVzdGlmeS4KCjIwMDAtMDktMTggIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGNwLXRyZWUuaCAoY2hlY2tfZnVuY3Rpb25fZm9ybWF0KTogQWNjZXB0IGEgYHN0YXR1cycgcGFyYW1ldGVyLgoKCSogY2FsbC5jLCB0eXBlY2suYzogVXBkYXRlcyBjYWxscyB0byBgY2hlY2tfZnVuY3Rpb25fZm9ybWF0Jy4KCjIwMDAtMDktMTcgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAY3lnbnVzLmNvbT4KCgkqIGRlY2wyLmMgKGhhbmRsZV9jbGFzc19oZWFkKTogQWx3YXlzIHB1c2ggc29tZSBzY29wZSBldmVuCglpbiB0aGUgZXJyb3IgY2FzZS4KCjIwMDAtMDktMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBjcF9sYW5ndWFnZV9mdW5jdGlvbik6IFJlbW92ZQoJeF9zY29wZV9zdG10X3N0YWNrIGFuZCBuYW1lX2RlY2xhcmVkLgoJKGN1cnJlbnRfc2NvcGVfc3RtdF9zdGFjayk6IFJlbW92ZS4KCShmdW5jdGlvbl9uYW1lX2RlY2xhcmVkX3ApOiBOZXcgbWFjcm8uCgkoc3RydWN0IGxhbmdfZGVjbF9mbGFncyk6IFVzZSBjX2xhbmdfZGVjbCBhcyBhIGJhc2UgY2xhc3MuCgkoY29udGV4dCk6IFJlbW92ZS4KCShzdHJ1Y3QgbGFuZ19kZWNsKTogUmVwbGFjZSBzYXZlZF90cmVlIHdpdGggY29udGV4dC4KCShERUNMX0ZSSUVORF9DT05URVhUKTogQWRqdXN0IGFjY29yZGluZ2x5LgoJKFNFVF9ERUNMX0ZSSUVORF9DT05URVhUKTogTGlrZXdpc2UuCgkoREVDTF9WSVJUVUFMX0NPTlRFWFQpOiBMaWtld2lzZS4KCShERUNMX1NBVkVEX1RSRUUpOiBSZW1vdmUuCgkoQ19ERUNMQVJFRF9MQUJFTF9GTEFHKTogTGlrZXdpc2UuCgkoY3BsdXNfZXhwYW5kX2V4cHJfc3RtdCk6IERvbid0IGRlY2xhcmUuCgkoYWRkX2RlY2xfc3RtdCk6IExpa2V3aXNlLgoJKGFkZF9zY29wZV9zdG10KTogTGlrZXdpc2UuCgkqIGRlY2wuYyAobWFya19zdG10X3RyZWUpOiBSZW1vdmUuCgkoY2FzZV9jb21wYXJlKTogTGlrZXdpc2UuCgkoZmluaXNoX2Nhc2VfbGFiZWwpOiBVc2UgY19hZGRfY2FzZV9sYWJlbC4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IFNldCBtb3JlIGxhbmd1YWdlLXNwZWNpZmljIGhvb2tzLgoJKGJ1aWxkX2VudW1lcmF0b3IpOiBGaXggdHlwbyBpbiBjb21tZW50LgoJKGNwbHVzX2V4cGFuZF9leHByX3N0bXQpOiBSZW1vdmUuCgkobWFya19sYW5nX2Z1bmN0aW9uKTogVXNlIG1hcmtfY19sYW5ndWFnZV9mdW5jdGlvbi4KCShsYW5nX21hcmtfdHJlZSk6IFVzZSBjX21hcmtfbGFuZ19kZWNsLgoJKiBkZWNsMi5jOiBDaGFuZ2Ugb3JkZXIgb2YgaW5jbHVzaW9uLgoJKiBleGNlcHQuYzogTGlrZXdpc2UuCgkqIGV4cHIuYyAoY3BsdXNfZXhwYW5kX2V4cHIpOiBSZW1vdmUgaGFuZGxpbmcgb2YgU1RNVF9FWFBSLiAgRmFsbAoJYmFjayBvbiBjX2V4cGFuZF9leHByLgoJKiBmcmllbmQuYzogSW5jbHVkZSBleHByLmguCgkqIGluaXQuYzogQ2hhbmdlIG9yZGVyIG9mIGluY2x1c2lvbi4KCSogTWFrZWZpbGUuaW46IFVwZGF0ZSBkZXBlbmRlbmNpZXMuCgkqIGxleC5oIChmcmVlX2xhbmdfZGVjbF9jaGFpbik6IFJlbW92ZS4KCSogb3B0aW1pemUuYyAobWF5YmVfY2xvbmVfYm9keSk6IFVzZSBmdW5jdGlvbl9uYW1lX2RlY2xhcmVkX3AuCgkqIHB0LmMgKGJ1aWxkX3RlbXBsYXRlX2RlY2wpOiBEb24ndCBjb3B5IERFQ0xfVklSVFVBTF9DT05URVhUIGlmCglpdCBkb2Vzbid0IGV4aXN0LgoJKGluc3RhbnRpYXRlX2RlY2wpOiBVc2UgZnVuY3Rpb25fbmFtZV9kZWNsYXJlZF9wLgoJKiBzZW1hbnRpY3MuYyAobGFuZ19leHBhbmRfZXhwcl9zdG10KTogUmVtb3ZlLgoJKHNldF9jdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQpOiBMaWtld2lzZS4KCShjdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQpOiBMaWtld2lzZS4KCShiZWdpbl9jb21wb3VuZF9zdG10KTogVXNlIGZ1bmN0aW9uX25hbWVfZGVjbGFyZWRfcC4KCShhZGRfZGVjbF9zdG10KTogUmVtb3ZlLgoJKHNldHVwX3Z0YmxfcHRyKTogVXNlIGZ1bmN0aW9uX25hbWVfZGVjbGFyZWRfcC4KCShhZGRfc2NvcGVfc3RtdCk6IFJlbW92ZS4KCShjdXJyZW50X3Njb3BlX3N0bXRfc3RhY2spOiBOZXcgZnVuY3Rpb24uCgkoY3BfZXhwYW5kX3N0bXQpOiBEb24ndCBoYW5kbGUgU0NPUEVfU1RNVHMuCgkoZXhwYW5kX2JvZHkpOiBVc2UgZnVuY3Rpb25fbmFtZV9kZWNsYXJlZF9wLgoJKiB0cmVlLmMgKGNwX3N0YXRlbWVudF9jb2RlX3ApOiBEb24ndCBpbmNsdWRlIFNDT1BFX1NUTVQuCgkqIHR5cGVjay5jOiBDaGFuZ2Ugb3JkZXIgb2YgaW5jbHVkZXMuCgkoY29udmVydF9zZXF1ZW5jZSk6IFJlbW92ZS4KCjIwMDAtMDktMTQgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGxleC5jIChyZXN3b3Jkcyk6IEFkZCBfQ29tcGxleC4KCjIwMDAtMDktMTQgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiBNYWtlLWxhbmcuaW4gKGNwbGliMi50eHQpOiBEZXBlbmQgb24gY3AvTWFrZWZpbGUuCgoyMDAwLTA5LTEzICBKLiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIGluaXQuYyAoYmVnaW5faW5pdF9zdG10cyk6IERvbid0IHVzZSAvLyBjb21tZW50cy4KCjIwMDAtMDktMTIgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZGVjbC5jIChtYXliZV9kZWR1Y2Vfc2l6ZV9mcm9tX2FycmF5X2luaXQpOiBTZXQgZG9fZGVmYXVsdCBmb3IKCWFsbCBub24tZXh0ZXJuIGFycmF5cy4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBDb21wbGFpbiBhYm91dCAnZnJpZW5kIFQnIGZvciBpbXBsaWNpdAoJdHlwZW5hbWVzLCB0b28uICBEb3duZ3JhZGUgY29tcGxhaW50IHRvIHBlZHdhcm4uCgkoeHJlZl90YWcpOiBXYXJuIGFib3V0IHN1cnByaXNpbmcgYmVoYXZpb3Igb2YgJ2ZyaWVuZCBzdHJ1Y3QgVCcuCgkqIGRlY2wyLmMgKGhhbmRsZV9jbGFzc19oZWFkKTogR2VuZXJhdGUgYSBUWVBFTkFNRV9UWVBFIGZvcgoJJ2NsYXNzIFRoaXM6OkluaGVyaXRlZCcuCgoyMDAwLTA5LTEyICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChmaW5pc2hfY2FzZV9sYWJlbCk6IEdpdmVuIHRoZSBMQUJFTF9ERUNMIGEKCURFQ0xfQ09OVEVYVC4KCjIwMDAtMDktMTIgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmMgKFRGRl9QTEFJTl9JREVOVElGSUVSLCBURkZfTkFNRVNQQUNFX1NDT1BFLAoJVEZGX0NMQVNTX1NDT1BFLCBURkZfQ0hBU0VfTkFNRVNQQUNFX0FMSUFTLCBURkZfQ0hBU0VfVFlQREVGLAoJVEZGX0RFQ0xfU1BFQ0lGSUVSUywgVEZGX0NMQVNTX0tFWV9PUl9FTlVNLCBURkZfUkVUVVJOX1RZUEUsCglURkZfRlVOQ1RJT05fREVGQVVMVF9BUkdVTUVOVFMsIFRGRl9FWENFUFRJT05fU1BFQ0lGSUNBVElPTiwKCVRGRl9URU1QTEFURV9IRUFERVIsIFRGRl9URU1QTEFURV9ERUZBVUxUX0FSR1VNRU5UUywgVEZGX1NDT1BFKToKCU5ldyBtYWNyb3MuCgkoc29ycnlfZm9yX3Vuc3VwcG9ydGVkX3RyZWUsIHByaW50X3Njb3BlX29wZXJhdG9yLAoJcHJpbnRfbGVmdF9wYXJlbiwgcHJpbnRfcmlnaHRfcGFyZW4sIHByaW50X2xlZnRfYnJhY2tldCwKCXByaW50X3JpZ2h0X2JyYWNrZXQsIHByaW50X3doaXRlc3BhY2UpOiBMaWtld2lzZS4KCShhZ2dyX3ZhcmlldHkpOiBSZW5hbWUgdG8gY2xhc3Nfa2V5X29yX2VudW0uCgkocHJpbnRfdHlwZSk6IFJlbmFtZSB0byBwcmludF90eXBlX2lkLgoJKHByaW50X3R5cGVfc3BlY2lmaWVyX3NlcSwgcHJpbnRfc2ltcGxlX3R5cGVfc3BlY2lmaWVyLAoJcHJpbnRfZWxhYm9yYXRlZF90eXBlX3NwZWNpZmllciwKCXByaW50X3Jlc3Rfb2ZfYWJzdHJhY3RfZGVjbGFyYXRvciwKCXByaW50X3BhcmFtZXRlcl9kZWNsYXJhdGlvbl9jbGF1c2UsIHByaW50X2V4Y2VwdGlvbl9zcGVjaWZpY2F0aW9uLAoJcHJpbnRfbmVzdGVkX25hbWVfc3BlY2lmaWVyLCBwcmludF90ZW1wbGF0ZV9pZCwKCXR5cGVkZWZfb3JpZ2luYWxfbmFtZSwgIHByaW50X3RlbXBsYXRlX2FyZ3VtZW50X2xpc3Rfc3RhcnQsCglwcmludF90ZW1wbGF0ZV9hcmd1bWVudF9saXN0X2VuZCk6IE5ldyBmdW5jdGlvbnMuCgoyMDAwLTA5LTExICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpci50ZXhpOiBBZGQgbW9yZSBkb2N1bWVudGF0aW9uLgoKMjAwMC0wOS0xMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoc3RydWN0IHNhdmVkX3Njb3BlKTogUmVtb3ZlIHhfZnVuY3Rpb25fcGFybXMuCgkoY3VycmVudF9mdW5jdGlvbl9wYXJtcyk6IERvbid0IGRlZmluZS4KCShzdHJ1Y3QgY3BfbGFuZ3VhZ2VfZnVuY3Rpb24pOiBSZW1vdmUgcGFybXNfc3RvcmVkLgoJKGN1cnJlbnRfZnVuY3Rpb25fanVzdF9hc3NpZ25lZF90aGlzKTogRG9uJ3QgZGVmaW5lLgoJKGN1cnJlbnRfZnVuY3Rpb25fcGFybXNfc3RvcmVkKTogTGlrZXdpc2UuCgkoc3RhdGljX2N0b3JzKTogRGVjbGFyZS4KCShzdGF0aWNfZHRvcnMpOiBMaWtld2lzZS4KCShTRl9FWFBBTkQpOiBEb24ndCBkZWZpbmUuCgkoZXhwYW5kX3N0YXJ0X2Vhcmx5X3RyeV9zdG10cyk6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCShzdG9yZV9wYXJtX2RlY2xzKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoc3RhdGljX2N0b3JzKTogRG9uJ3QgZGVjbGFyZS4KCShzdGF0aWNfZHRvcnMpOiBMaWtld2lzZS4KCShzdHJ1Y3QgYmluZGluZ19sZXZlbCk6IFJlbW92ZSB0aGlzX2Jsb2NrLgoJKHBvcGxldmVsKTogUmVtb3ZlIGRlYWQgY29kZS4KCShzZXRfYmxvY2spOiBMaWtld2lzZS4KCShtYXJrX2JpbmRpbmdfbGV2ZWwpOiBEb24ndCBtYXJrIHRoaXNfYmxvY2suCgkobWFya19zYXZlZF9zY29wZSk6IERvbid0IG1hcmsgeF9mdW5jdGlvbl9wYXJtcy4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IERvbid0IGFkZCBjdXJyZW50X2Z1bmN0aW9uX3Bhcm1zIGFzIGEgR0MKCXJvb3QuCgkoY2hlY2tfZnVuY3Rpb25fdHlwZSk6IENoYW5nZSBwcm90b3R5cGUuCgkoc3RhcnRfZnVuY3Rpb24pOiBSZW1vdmUgUlRMLWdlbmVyYXRpb24gY29kZS4KCShleHBhbmRfc3RhcnRfZWFybHlfdHJ5X3N0bXRzKTogUmVtb3ZlLgoJKHN0b3JlX3Bhcm1fZGVjbHMpOiBHaXZlIGl0IGludGVybmFsIGxpbmthZ2UuICBSZW1vdmUKCVJUTC1nZW5lcmF0aW9uIGNvZGUuCgkoZmluaXNoX2Z1bmN0aW9uKTogUmVtb3ZlIFJUTC1nZW5lcmF0aW9uIGNvZGUuCgkqIGRlY2wyLmMgKHN0YXRpY19jdG9ycyk6IEZpeCBmb3JtYXR0aW5nLgoJKHN0YXRpY19kdG9ycyk6IExpa2V3aXNlLgoJKiBtZXRob2QuYyAodXNlX3RodW5rKTogRG9uJ3QgY2FsbCBzdG9yZV9wYXJtX2RlY2xzLgoJKHN5bnRoZXNpemVfbWV0aG9kKTogTGlrZXdpc2UuCgkqIG9wdGltaXplLmMgKG1heWJlX2Nsb25lX2JvZHkpOiBMaWtld2lzZS4KCSogcGFyc2UueSAoZm4uZGVmMik6IExpa2V3aXNlLgoJKC5zZXRfYmFzZV9pbml0KTogTGlrZXdpc2UuCgkobm9kZWNscyk6IExpa2V3aXNlLgoJKiBwdC5jIChpbnN0YW50aWF0ZV9kZWNsKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoc3ludGhlc2l6ZV90aW5mb19mbik6IExpa2V3aXNlLgoJKiBzZW1hbnRpY3MuYyAoZ2VucnRsX3RyeV9ibG9jayk6IFNpbXBsaWZ5LgoJKGV4cGFuZF9ib2R5KTogVXNlIGdlbnJ0bF9zdGFydF9mdW5jdGlvbiBhbmQKCWdlbnJ0bF9maW5pc2hfZnVuY3Rpb24uCgkoZ2VucnRsX3N0YXJ0X2Z1bmN0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKGdlbnJ0bF9maW5pc2hfZnVuY3Rpb24pOiBMaWtld2lzZS4KCjIwMDAtMDktMTEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlcnJvci5jIChjcF90cmVlX3ByaW50ZXIsIGNhc2UgJ1AnKTogQXBwZW5kIGJyZWFrLgoKMjAwMC0wOS0xMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZnJvYl9vcG5hbWUpOiBEZWNsYXJlLgoJKiBwYXJzZS55IChzYXZlZF9zY29wZXMpOiBOZXcgc3RhdGljIHZhcmlhYmxlLgoJKGNwX3BhcnNlX2luaXQpOiBBZGp1c3QuCgkoZG9faWQpOiBJZiBsYXN0aWRkZWNsIGlzIE5VTEwsIGRvIGRvX2lkZW50aWZpZXIuCgkob3BlcmF0b3IpOiBTYXZlIHNjb3BlIGluZm9ybWF0aW9uLgoJKHVub3BlcmF0b3IpOiBOZXcgcmVkdWN0aW9uLiBSZXN0b3JlIHNjb3BlIGluZm9ybWF0aW9uLgoJKG9wZXJhdG9yX25hbWUpOiBBcHBlbmQgdW5vcGVyYXRvci4gQ2FsbCBmcm9iX29wbmFtZS4KCSogc3Bldy5jIChmcm9iX29wbmFtZSk6IERlZmluZS4KCjIwMDAtMDktMTAgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIGRlY2wuYywgcnR0aS5jOiBJbmNsdWRlIGRlZmF1bHRzLmggaWYgbm90IGFscmVhZHkgaW5jbHVkZWQuCglEb24ndCBkZWZpbmUgdGhlICpfVFlQRV9TSVpFIG1hY3Jvcy4KCjIwMDAtMDktMDkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHB1c2hfc3dpdGNoKTogQ2hhbmdlIHByb3RvdHlwZS4KCShjaGVja19jcF9jYXNlX3ZhbHVlKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKGRlY2xfY29uc3RhbnRfdmFsdWUpOiBMaWtld2lzZS4KCSogZGVjbC5jIChzdHJ1Y3QgY3Bfc3dpdGNoKTogQWRkIHN3aXRjaF9zdG10IGFuZCBjYXNlcy4KCShjYXNlX2NvbXBhcmUpOiBOZXcgZnVuY3Rpb24uCgkocHVzaF9zd2l0Y2gpOiBTZXQgc3dpdGNoX3N0bXQuICBJbml0aWFsaXplIGNhc2VzLgoJKHBvcF9zd2l0Y2gpOiBDbGVhbiB1cCBjYXNlcy4KCShkZWZpbmVfY2FzZV9sYWJlbCk6IFJlbmFtZSB0byAuLi4KCShmaW5pc2hfY2FzZV9sYWJlbCk6IC4uLiB0aGlzLiAgRG8gc2VtYW50aWMgYW5hbHlzaXMgZm9yIGNhc2UKCWxhYmVscyBoZXJlLgoJKHN0YXJ0X2Z1bmN0aW9uKTogQ29ycmVjdCBjb21tZW50LgoJKiBkZWNsMi5jIChjaGVja19jcF9jYXNlX3ZhbHVlKTogUmVtb3ZlLgoJKiBleHByLmMgKGRvX2Nhc2UpOiBSZW1vdmUuCgkqIHB0LmMgKHRzdWJzdF9leHByKTogQWRqdXN0IGNhbGwgdG8gZmluaXNoX2Nhc2VfbGFiZWwuCgkqIHNlbWFudGljcy5jIChnZW5ydGxfZG9fcG9wbGV2ZWwpOiBSZW1vdmUgZGVjbGFyYXRpb24uCgkoUkVDSEFJTl9TVE1UUyk6IFJlbW92ZS4KCShmaW5pc2hfYnJlYWtfc3RtdCk6IFVzZSBidWlsZF9icmVha19zdG10LgoJKGZpbmlzaF9jb250aW51ZV9zdG10KTogVXNlIGJ1aWxkX2NvbnRpbnVlX3N0bXQuCgkoZmluaXNoX3N3aXRjaF9jb25kKTogQWRqdXN0IGNvbmRpdGlvbiBoZXJlLCByYXRlciB0aGFuIGluCgljX2V4cGFuZF9zdGFydF9jYXNlLgoJKGZpbmlzaF9jYXNlX2xhYmVsKTogUmVtb3ZlLgoJKiB0eXBlY2suYyAoY19leHBhbmRfcmV0dXJuKTogUmVtb3ZlLgoJKGNfZXhwYW5kX3N0YXJ0X2Nhc2UpOiBMaWtld2lzZS4KCjIwMDAtMDktMDcgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGlyLnRleGk6IERvY3VtZW50IHR5cGUgbm9kZXMuCgoyMDAwLTA5LTA2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChpbml0X2NwX3NlbWFudGljcyk6IERlY2xhcmUuCgkoZ2VucnRsX3RyeV9ibG9jayk6IERvbid0IGRlY2xhcmUuCgkoZ2VucnRsX2hhbmRsZXIpOiBMaWtld2lzZS4KCShnZW5ydGxfY2F0Y2hfYmxvY2spOiBMaWtld2lzZS4KCShnZW5ydGxfY3Rvcl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3N1Ym9iamVjdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9kb19wb3BsZXZlbCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9uYW1lZF9yZXR1cm5fdmFsdWUpOiBMaWtld2lzZS4KCSogbGV4LmMgKGluaXRfcGFyc2UpOiBDYWxsIGluaXRfY3Bfc2VtYW50aWNzLgoJKiBzZW1hbnRpY3MuYyAoZ2VucnRsX3RyeV9ibG9jayk6IEdpdmUgaXQgaW50ZXJuYWwgbGlua2FnZS4KCShnZW5ydGxfaGFuZGxlcik6IExpa2V3aXNlLgoJKGdlbnJ0bF9jYXRjaF9ibG9jayk6IExpa2V3aXNlLgoJKGdlbnJ0bF9jdG9yX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfc3Vib2JqZWN0KTogTGlrZXdpc2UuCgkoZ2VucnRsX2RvX3BvcGxldmVsKTogTGlrZXdpc2UuCgkoZ2VucnRsX25hbWVkX3JldHVybl92YWx1ZSk6IExpa2V3aXNlLgoJKGxhbmdfZXhwYW5kX3N0bXQpOiBSZW5hbWUgdG8gLi4uCgkoY3BfZXhwYW5kX3N0bXQpOiAuLi4gdGhpcy4gIE9ubHkgaGFuZGxlIEMrKy1zcGVjaWZpYyBub2Rlcy4KCShpbml0X2NwX3NlbWFudGljcyk6IERlZmluZS4KCgkqIGRlY2wuYyAoaW5pdGlhbGl6ZV9sb2NhbF92YXIpOiBSZW1vdmUgUlRMLWdlbmVyYXRpbmcgY29kZS4KCSogc2VtYW50aWNzLmMgKGdlbnJ0bF90cnlfYmxvY2spOiBGaXggZm9ybWF0dGluZy4KCglNb3ZlIHN0YXRlbWVudC10cmVlIGZhY2lsaXRpZXMgZnJvbSBDKysgdG8gQyBmcm9udC1lbmQuCgkqIGNwLXRyZWUuaCAoY3BfdHJlZV9pbmRleCk6IFJlbW92ZSBDUFRJX1ZPSURfWkVSTy4KCSh2b2lkX3plcm9fbm9kZSk6IFJlbW92ZS4KCShzdG10X3RyZWUpOiBMaWtld2lzZS4KCShzY29wZV9jaGFpbik6IEFkanVzdC4KCShsYW5ndWFnZV9mdW5jdGlvbik6IFJlbmFtZSB0byBjcF9sYW5ndWFnZV9mdW5jdGlvbi4KCShjcF9mdW5jdGlvbl9jaGFpbik6IEFkanVzdC4KCShjdXJyZW50X3N0bXRfdHJlZSk6IFJlbW92ZS4KCShsYXN0X3RyZWUpOiBMaWtld2lzZS4KCShsYXN0X2V4cHJfdHlwZSk6IExpa2V3aXNlLgoJKHN0cnVjdCBsYW5nX2RlY2wpOiBBZGp1c3QuCgkoU1RNVF9JU19GVUxMX0VYUFJfUCk6IFJlbW92ZS4KCShhZGRfdHJlZSk6IFJlbW92ZS4KCShiZWdpbl9zdG10X3RyZWUpOiBMaWtld2lzZS4KCShmaW5pc2hfc3RtdF90cmVlKTogTGlrZXdpc2UuCgkod2Fsa190cmVlX2ZuKTogTGlrZXdpc2UuCgkod2Fsa19zdG10X3RyZWUpOiBMaWtld2lzZS4KCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdCk6IFJlcGxhY2UgdXNlIG9mIGFkZF90cmVlIHdpdGggYWRkX3N0bXQuCgkqIGRlY2wuYyAobWFya19zdG10X3RyZWUpOiBBZGp1c3QgdHlwZS4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IERvbid0IGJ1aWxkIHZvaWRfemVyb19ub2RlLgoJKGluaXRpYWxpemVfbG9jYWxfdmFyKTogQWRqdXN0IHVzYWdlIG9mIGN1cnJlbnRfc3RtdF90cmVlLgoJKGZpbmlzaF9lbnVtKTogVXNlIGFkZF9zdG10LCBub3QgYWRkX3RyZWUuCgkoc2F2ZV9mdW5jdGlvbl9kYXRhKTogQWRqdXN0IHVzZSBvZiBsYW5ndWFnZV9mdW5jdGlvbi4KCShmaW5pc2hfY29uc3RydWN0b3JfYm9keSk6IFVzZSBhZGRfc3RtdCwgbm90IGFkZF90cmVlLgoJKGZpbmlzaF9kZXN0cnVjdG9yX2JvZHkpOiBMaWtld2lzZS4KCShwdXNoX2NwX2Z1bmN0aW9uX2NvbnRleHQpOiBBZGp1c3QgdXNlIG9mIGxhbmd1YWdlX2Z1bmN0aW9uLgoJKHBvcF9jcF9mdW5jdGlvbl9jb250ZXh0KTogTGlrZXdpc2UuCgkobWFya19sYW5nX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkobWFya19jcF9mdW5jdGlvbl9jb250ZXh0KTogTGlrZXdpc2UuCgkqIGluaXQuYyAoYnVpbGRfYWdncl9pbml0KTogQWRqdXN0IHVzZSBvZiBjdXJyZW50X3N0bXRfdHJlZS4KCShidWlsZF92ZWNfaW5pdCk6IExpa2V3aXNlLgoJKiBzZW1hbnRpY3MuYyAoU0VUX0xBU1RfU1RNVCk6IFJlbW92ZS4KCShSRUNIQUlOX1NUTVRTKTogRG9uJ3QgdXNlIGl0LgoJKHN0bXRzX2FyZV9mdWxsX2V4cHJzX3ApOiBBZGp1c3QgdXNlIG9mIGN1cnJlbnRfc3RtdF90cmVlLgoJKGN1cnJlbnRfc3RtdF90cmVlKTogRGVmaW5lLgoJKGFkZF90cmVlKTogUmVtb3ZlLgoJKGZpbmlzaF9nb3RvX3N0bXQpOiBVc2UgYWRkX3N0bXQsIG5vdCBhZGRfdHJlZS4KCShmaW5pc2hfZXhwcl9zdG10KTogTGlrZXdpc2UuCgkoYmVnaW5faWZfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF90aGVuX2NsYXVzZSk6IExpa2V3aXNlLgoJKGJlZ2luX3doaWxlX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl9kb19zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX3JldHVybl9zdG10KTogTGlrZXdpc2UuCgkoYmVnaW5fZm9yX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfYnJlYWtfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9jb250aW51ZV9zdG10KTogTGlrZXdpc2UuCgkoYmVnaW5fc3dpdGNoX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfY2FzZV9sYWJlbCk6IExpa2V3aXNlLgoJKGJlZ2luX3RyeV9ibG9jayk6IExpa2V3aXNlLgoJKGJlZ2luX2Z1bmN0aW9uX3RyeV9ibG9jayk6IExpa2V3aXNlLgoJKGJlZ2luX2hhbmRsZXIpOiBMaWtld2lzZS4KCShiZWdpbl9jYXRjaF9ibG9jayk6IExpa2V3aXNlLgoJKGJlZ2luX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl9hc21fc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9hc21fc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9sYWJlbF9zdG10KTogTGlrZXdpc2UuCgkoYWRkX2RlY2xfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9zdWJvYmplY3QpOiBMaWtld2lzZS4KCShmaW5pc2hfZGVjbF9jbGVhbnVwKTogTGlrZXdpc2UuCgkoZmluaXNoX25hbWVkX3JldHVybl92YWx1ZSk6IExpa2V3aXNlLgoJKHNldHVwX3Z0YmxfcHRyKTogTGlrZXdpc2UuCgkoYWRkX3Njb3BlX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfc3RtdF9leHByKTogTGlrZXdpc2UuCgkocHJ1bmVfdW51c2VkX2RlY2xzKTogUmVtb3ZlLgoJKGJlZ2luX3N0bXRfdHJlZSk6IExpa2V3aXNlLgoJKGZpbmlzaF9zdG10X3RyZWUpOiBMaWtld2lzZS4KCShwcmVwX3N0bXQpOiBBZGp1c3QgdXNlIG9mIGN1cnJlbnRfc3RtdF90cmVlLgoJKGxhbmdfZXhwYW5kX3N0bXQpOiBMaWtld2lzZS4KCSogdHJlZS5jIChzdGF0ZW1lbnRfY29kZV9wKTogUmVtb3ZlLgoJKGNwX3N0YXRlbWVudF9jb2RlX3ApOiBOZXcgZnVuY3Rpb24uCgkod2Fsa19zdG10X3RyZWUpOiBSZW1vdmUuCgkoaW5pdF90cmVlKTogU2V0IGxhbmdfc3RhdGVtZW50X2NvZGVfcC4KCjIwMDAtMDktMDYgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCglJbnRlZ3JhdGVkIHByZXByb2Nlc3Nvci4KCgkqIE1ha2UtbGFuZy5pbiwgTWFrZWZpbGUuaW46IFJlbW92ZSBhbGwgcmVmZXJlbmNlcyB0byBpbnB1dC5jLAoJZ3h4LmdwZXJmLCBhbmQgaGFzaC5oLiAgQWRkIC4uL2MtbGV4Lm8gdG8gQ19PQkpTLgoJKiBneHguZ3BlcmYsIGhhc2guaCwgaW5wdXQuYzogRGVsZXRlLgoJKiBsYW5nLXNwZWNzLmg6IFBhc3MgLWxhbmctYysrIHRvIGNjMXBsdXMgc28gY3BwbGliIGlzCglpbml0aWFsaXplZCBwcm9wZXJseS4KCgkqIGNsYXNzLmMgKGZpeHVwX3BlbmRpbmdfaW5saW5lKTogVGFrZSBhIHRyZWUsIG5vdCBhCglzdHJ1Y3QgcGVuZGluZ19pbmxpbmUgKi4gIEFsbCBjYWxsZXJzIGNoYW5nZWQuCgkoaW5pdF9jbGFzc19wcm9jZXNzaW5nKTogU2V0IFJJRF9QVUJMSUMsIFJJRF9QUklWQVRFLAoJUklEX1BST1RFQ1RFRCBlbnRyaWVzIGluIHJpZHBvaW50ZXJzW10gYXJyYXkgaGVyZS4KCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBEbyBub3QgcmVmZXIgdG8gc3RydWN0CglwZW5kaW5nX2lubGluZS4KCShyZWNvcmRfYnVpbHRpbl90eXBlLCBpbml0X2RlY2xfcHJvY2Vzc2luZyk6IFVzZSBSSURfTUFYIG5vdAoJQ1BfUklEX01BWC4KCShncm9rZGVjbGFyYXRvcik6IFVzZSBDX0lTX1JFU0VSVkVEX1dPUkQuCgkqIGRlY2wyLmMgKGxhbmdfZGVjb2RlX29wdGlvbik6IElnbm9yZSAtbGFuZy1jKysgZm9yIHNha2Ugb2YKCWNwcGxpYi4KCShncm9rX3hfY29tcG9uZW50cyk6IERvIG5vdCBpbnNwZWN0IHBlbmRpbmdfaW5saW5lcyBjaGFpbi4KCgkqIGNwLXRyZWUuaCAoc3RydWN0IGxhbmdfaWRlbnRpZmllcik6IEFkZCByaWRfY29kZSBlbnRyeS4KCShDX0lTX1JFU0VSVkVEX1dPUkQsIENfUklEX0NPREUsIENfUklEX1lZQ09ERSk6IE5ldy4KCShmbGFnX25vX2dudV9rZXl3b3JkcywgZmxhZ19vcGVyYXRvcl9uYW1lcywgcmlkX3RvX3l5KTogRGVjbGFyZS4KCShERUZBUkdfTEVOR1RILCBzdHJ1Y3QgcGVuZGluZ19pbmxpbmUsIFRJTUVfSURFTlRJRklFUl9USU1FLAoJVElNRV9JREVOVElGSUVSX0ZJTEVJTkZPKTogS2lsbC4KCVVwZGF0ZSBwcm90b3R5cGVzLgoJKiBsZXguaDogRXhwdW5nZSBjcF9yaWQuICBSZXdyaXRlIFJJREJJVCBtYWNyb3MgdG8gdXNlIGp1c3QgYQoJc2luZ2xlIDMyLWJpdCB3b3JkLgoJKiBwYXJzZS55OiBDYWxsIGRvX3BlbmRpbmdfaW5saW5lcyB1bmNvbmRpdGlvbmFsbHkuCglyZWluaXRfcGFyc2VfZm9yX21ldGhvZCBpcyBub3cgc25hcmZfbWV0aG9kLiAgZm4uZGVmcGVuIGlzIG5vCglsb25nZXIgbmVjZXNzYXJ5LiAgUmVtb3ZlIHVubmVjZXNzYXJ5IDxpdHlwZT4gYW5ub3RhdGlvbiBvbgoJU0NPUEUuICBEbyBub3QgcmVmZXIgdG8gZW5kX29mX2ZpbGUgb3Igc3RydWN0IHBlbmRpbmdfaW5saW5lLgoJKiBzZW1hbnRpY3MuYyAoYmVnaW5faW5saW5lX2RlZmluaXRpb25zKTogQ2FsbAoJZG9fcGVuZGluZ19pbmxpbmVzIHVuY29uZGl0aW9uYWxseS4KCgkqIGxleC5jOiBSZW1vdmUgYWxsIGNvZGUgbm93IHNoYXJlZCB3aXRoIEMgZnJvbnQgZW5kLgoJSW5pdGlhbGl6ZSBjcHBsaWIgcHJvcGVybHkgaWYgVVNFX0NQUExJQi4gIFB1dCByZXNlcnZlZCB3b3JkcwoJaW50byB0aGUgZ2V0X2lkZW50aWZpZXIgdGFibGUuICBSZXdyaXRlIHByYWdtYSBoYW5kbGluZyB0bwoJd29yayB3aXRoIHRoZSByZWdpc3RyeS4gIE1vdmUgY29kZSB0byBzYXZlIHRva2VucyBmb3IgbGF0ZXIKCXByb2Nlc3NpbmcgdG8gc3Bldy5jLgoKCSogc3Bldy5jOiBSZXdyaXRlIGV2ZXJ5dGhpbmcgaW4gdGVybXMgb2YgdG9rZW4gc3RyZWFtcyBpbnN0ZWFkCglvZiB0ZXh0LiAgTW92ZSByb3V0aW5lcyBoZXJlIGZyb20gbGV4LmMgLyBpbnB1dC5jIGFzCglhcHByb3ByaWF0ZS4gIEdDLW1hcmsgdHJlZXMgaGFuZ2luZyBvZmYgdGhlIHBlbmRpbmcgaW5saW5lcwoJY2hhaW4uCgoyMDAwLTA5LTA2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTkVXUzogTWVudGlvbiB0aGF0IHRoZSBuYW1lZCByZXR1cm4gdmFsdWUgZXh0ZW5zaW9uIGhhcyBiZWVuCglkZXByZWNhdGVkLgoJKiBjcC10cmVlLmggKG9yaWdpbmFsX3Jlc3VsdF9ydHgpOiBEZWZpbmUuCgkoVFJFRV9SRUZFUkVOQ0VfRVhQUik6IFJlbW92ZS4KCShERUNMX1ZQQVJFTlQpOiBMaWtld2lzZS4KCShwdXNoZGVjbF9ub25jbGFzc19sZXZlbCk6IExpa2V3aXNlLgoJKHN0b3JlX3JldHVybl9pbml0KTogTGlrZXdpc2UuCgkocmVpbml0X2xhbmdfc3BlY2lmaWMpOiBMaWtld2lzZS4KCShnZW5ydGxfbmFtZWRfcmV0dXJuX3ZhbHVlKTogQ2hhbmdlIHByb3RvdHlwZS4KCSogZGVjbC5jIChvcmlnaW5hbF9yZXN1bHRfcnR4KTogUmVtb3ZlLgoJKGNwX2ZpbmlzaF9kZWNsKTogRG9uJ3QgYnVpbGQgREVDTF9TVE1UcyBmb3IgUkVTVUxUX0RFQ0xzLgoJRG8gbm90IGdlbmVyYXRlIFJUTCBmb3IgbG9jYWwgdmFyaWFibGVzIGhlcmUuCgkoc3RvcmVfcmV0dXJuX2luaXQpOiBSZW1vdmUuCgkqIHNlbWFudGljcy5jIChnZW5ydGxfbmFtZWRfcmV0dXJuX3ZhbHVlKTogU2ltcGxpZnkuICBGb2xkIGluCglzdG9yZV9yZXR1cm5faW5pdC4KCShmaW5pc2hfbmFtZWRfcmV0dXJuX3ZhbHVlKTogQWRqdXN0IGFjY29yZGluZ2x5LiAgV2FybiB0aGF0IHRoaXMKCWV4dGVuc2lvbiBpcyBkZXByZWNhdGVkLgoJKGxhbmdfZXhwYW5kX3N0bXQpOiBBZGp1c3QgY2FsbCB0byBnZW5ydGxfbmFtZWRfcmV0dXJuX3ZhbHVlLgoKMjAwMC0wOS0wNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKHR5cGVfdW5pZmljYXRpb25fcmVhbCk6IFJlcGxhY2Ugc3dpdGNoIHdpdGggaWYuCgkodW5pZnkpOiBUc3Vic3Qgbm9uLXR5cGUgcGFybXMgYmVmb3JlIGNvbXBhcmluZy4KCjIwMDAtMDktMDYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlcnJvci5jIChkdW1wX3R5cGVuYW1lKTogTmV3IGZ1bmN0aW9uLCBicm9rZW4gb3V0IG9mIC4uLgoJKGR1bXBfdHlwZSk6IC4uLiBoZXJlLiBVc2UgaXQuCgkqIHR5cGVjay5jIChzYW1lX3R5cGVfcCk6IFVzZSBjcF90cmVlX2VxdWFsIGZvciBUWVBFTkFNRV9UWVBFLgoKMjAwMC0wOS0wNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGluaXQuYyAoYnVpbGRfb2Zmc2V0X3JlZik6IERlYWwgd2l0aCBuYW1lc3BhY2Ugc2NvcGVkCglURU1QTEFURV9JRF9FWFBScy4KCjIwMDAtMDktMDYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChyZXNvbHZlX2FkZHJlc3Nfb2Zfb3ZlcmxvYWRlZF9mdW5jdGlvbik6IEFkZAoJZXhwbGFuYXRpb24gbWVzc2FnZS4KCSogZGVjbC5jIChkZWZpbmVfY2FzZV9sYWJlbCk6IFJlZm9ybWF0IGV4cGxhbmF0aW9uLgoJKiBkZWNsMi5jIChmaW5pc2hfc3RhdGljX2RhdGFfbWVtYmVyX2RlY2wpOiBMaWtld2lzZS4KCShncm9rZmllbGQpOiBMaWtld2lzZS4KCSogZnJpZW5kLmMgKGRvX2ZyaWVuZCk6IExpa2V3aXNlLgoKMjAwMC0wOS0wNSAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogdHJlZS5jICh3YWxrX3RyZWUpOiBFeHBvc2UgdGFpbCByZWN1cnNpb24uCgkod2Fsa19zdG10X3RyZWUpOiBOZXcgZnVuY3Rpb24uCgkqIGNwLXRyZWUuaDogUHJvdG90eXBlIHdhbGtfc3RtdF90cmVlLgoJKiBzZW1hbnRpY3MuYyAocHJ1bmVfdW51c2VkX2RlY2xzKTogT3BlcmF0ZSBvbiBTQ09QRV9TVE1UcyBub3QKCXRoZSBCTE9DS3MgZGlyZWN0bHkuICBJZiBhIEJMT0NLIGhhcyBubyB2YXJpYWJsZXMgYWZ0ZXIKCXBydW5pbmcsIGRpc2NhcmQgaXQuCgkoZmluaXNoX3N0bXRfdHJlZSk6IFVzZSB3YWxrX3N0bXRfdHJlZS4gIE5vIG5lZWQgdG8gc2F2ZSBhbmQKCXJlc3RvcmUgdGhlIGxpbmUgbnVtYmVyLgoKMjAwMC0wOS0wNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2VmaWxlLmluIChDWFhfVFJFRV9IKTogQWRkIGRlcGVuZGVuY3kgb24gSFRBQl9ILgoJKHB0Lm8pOiBSZW1vdmUgZGVwZW5kZW5jeSBvbiBIVEFCX0guCgkqIGNwLXRyZWUuaDogSW5jbHVkZSBoYXNodGFiLmguCgkod2Fsa190cmVlKTogQ2hhbmdlIHByb3RvdHlwZS4KCSh3YWxrX3RyZWVfd2l0aG91dF9kdXBsaWNhdGVzKTogTmV3IGZ1bmN0aW9uLgoJKiBkZWNsLmMgKGNoZWNrX2RlZmF1bHRfYXJndW1lbnQpOiBVc2UgaXQuCgkqIG9wdGltaXplLmMgKHJlbWFwX2RlY2wpOiBBZGp1c3QgY2FsbHMgdG8gd2Fsa190cmVlLgoJKGNvcHlfYm9keSk6IExpa2V3aXNlLgoJKGV4cGFuZF9jYWxsc19pbmxpbmUpOiBMaWtld2lzZS4KCShjYWxsc19zZXRqbXBfcCk6IFVzZSB3YWxrX3RyZWVfd2l0aG91dF9kdXBsaWNhdGVzLgoJKiBwdC5jOiBEb24ndCBpbmNsdWRlIGhhc2h0YWIuaC4KCShmb3JfZWFjaF90ZW1wbGF0ZV9wYXJtKTogVXNlIHdhbGtfdHJlZV93aXRob3V0X2R1cGxpY2F0ZXMuCgkqIHNlbWFudGljcy5jIChmaW5pc2gtc3RtdF90cmVlKTogTGlrZXdpc2UuCgkoZXhwYW5kX2JvZHkpOiBMaWtld2lzZS4KCSogdHJlZS5jICh3YWxrX3RyZWUpOiBBZGQgYWRkaXRpb25hbCBwYXJhbWV0ZXIuCgkod2Fsa190cmVlX3dpdGhvdXRfZHVwbGljYXRlcyk6IE5ldyBmdW5jdGlvbi4KCShjb3VudF90cmVlcyk6IFVzZSBpdC4KCSh2ZXJpZnlfc3RtdF90cmVlKTogQWRqdXN0IGNhbGwgdG8gd2Fsa190cmVlLgoJKGZpbmRfdHJlZSk6IFVzZSB3YWxrX3RyZWVfd2l0aG91dF9kdXBsaWNhdGVzLgoJKG5vX2xpbmthZ2VfY2hlY2spOiBMaWtld2lzZS4KCShicmVha19vdXRfdGFyZ2V0X2V4cHJzKTogQWRqdXN0IGNhbGwgdG8gd2Fsa190cmVlLgoJKGNwX3Vuc2F2ZSk6IExpa2V3aXNlLgoKMjAwMC0wOS0wNCAgS3JpYW5nIExlcmRzdXdhbmFraWogIDxsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjcC10cmVlLmRlZiAoQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTSk6IE5ldyB0cmVlIGNvZGUuCgkoVEVNUExBVEVfVEVNUExBVEVfUEFSTSk6IEFkanVzdCBjb21tZW50LgoJKiBjcC10cmVlLmggKFRZUEVfQklORk8pOiBBZGp1c3QgY29tbWVudC4KCShURU1QTEFURV9URU1QTEFURV9QQVJNX1RFTVBMQVRFX0lORk8pOiBMaWtld2lzZS4KCShURU1QTEFURV9UWVBFX1BBUk1fSU5ERVgpOiBMaWtld2lzZS4KCShJU19BR0dSX1RZUEUpOiBVc2UgQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTSBpbnN0ZWFkLgoJKFRZUEVfVEVNUExBVEVfSU5GTyk6IExpa2V3aXNlLgoJKFRFTVBMQVRFX1RFTVBMQVRFX1BBUk1fVEVNUExBVEVfREVDTCk6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChwdXNoX25lc3RlZF9jbGFzcyk6IExpa2V3aXNlLgoJKiBkZWNsLmMgKGxvb2t1cF9uYW1lX3JlYWwpOiBMaWtld2lzZS4KCShncm9rZGVjbGFyYXRvcik6IExpa2V3aXNlLgoJKGdyb2tfb3BfcHJvcGVydGllcyk6IExpa2V3aXNlLgoJKHhyZWZfdGFnKTogTGlrZXdpc2UuCgkoeHJlZl9iYXNldHlwZXMpOiBMaWtld2lzZS4KCSogZGVjbDIuYyAoY29uc3RydWN0b3JfbmFtZV9mdWxsKTogTGlrZXdpc2UuCgkoYXJnX2Fzc29jX3RlbXBsYXRlX2FyZyk6IEFkZCBURU1QTEFURV9URU1QTEFURV9QQVJNIGNhc2UuCgkoYXJnX2Fzc29jX3R5cGUpOiBVc2UgQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTSBpbnN0ZWFkLgoJKiBlcnJvci5jIChkdW1wX3R5cGUpOiBTcGxpdCBURU1QTEFURV9URU1QTEFURV9QQVJNIGNhc2UuCgkoZHVtcF90eXBlX3ByZWZpeCk6IEFkZCBCT1VORF9URU1QTEFURV9URU1QTEFURV9QQVJNLgoJKGR1bXBfdHlwZV9zdWZmaXgpOiBMaWtld2lzZS4KCSogaW5pdC5jIChpc19hZ2dyX3R5cGUpOiBVc2UgQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTQoJaW5zdGVhZC4KCShnZXRfYWdncl9mcm9tX3R5cGVkZWYpOiBMaWtld2lzZS4KCSogbWFuZ2xlLmMgKHdyaXRlX3R5cGUpOiBTcGxpdCBURU1QTEFURV9URU1QTEFURV9QQVJNIGNhc2UuCgkod3JpdGVfZXhwcmVzc2lvbik6IEFkZCBCT1VORF9URU1QTEFURV9URU1QTEFURV9QQVJNLgoJKHdyaXRlX3RlbXBsYXRlX3Bhcm0pOiBMaWtld2lzZS4KCSh3cml0ZV90ZW1wbGF0ZV90ZW1wbGF0ZV9wYXJtKTogQ2hlY2sgdHJlZSBjb2RlIGluc3RlYWQgb2YKCXVzaW5nIFRFTVBMQVRFX1RFTVBMQVRFX1BBUk1fVEVNUExBVEVfSU5GTy4KCSogbWV0aG9kLmMgKGJ1aWxkX292ZXJsb2FkX25lc3RlZF9uYW1lKTogQWRkCglCT1VORF9URU1QTEFURV9URU1QTEFURV9QQVJNLgoJKHByb2Nlc3Nfb3ZlcmxvYWRfaXRlbSk6IFNwbGl0IFRFTVBMQVRFX1RFTVBMQVRFX1BBUk0gY2FzZS4KCSogcGFyc2UueSAoYmFkX3Bhcm0pOiBBZGQgQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTS4KCSogcHQuYyAoY29udmVydF90ZW1wbGF0ZV9hcmd1bWVudCk6IENoZWNrIHRyZWUgY29kZSBpbnN0ZWFkIG9mCgl1c2luZyBURU1QTEFURV9URU1QTEFURV9QQVJNX1RFTVBMQVRFX0lORk8uCgkoZm9yX2VhY2hfdGVtcGxhdGVfcGFybV9yKTogU3BsaXQgVEVNUExBVEVfVEVNUExBVEVfUEFSTSBjYXNlLgoJKGZvcl9lYWNoX3RlbXBsYXRlX3Bhcm0pOiBBZGp1c3QgY29tbWVudC4KCSh0c3Vic3QpOiBBZGQgQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTS4gIFJlb3JnYW5pemUuCgkodHN1YnN0X2NvcHkpOiBBZGQgQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTS4KCSh1bmlmeSk6IEFkZCBCT1VORF9URU1QTEFURV9URU1QTEFURV9QQVJNLiAgUmVvcmdhbml6ZS4gIFVzZQoJdGVtcGxhdGVfYXJnc19lcXVhbCB0byBjb21wYXJlIHRlbXBsYXRlIHRlbXBsYXRlIHBhcmFtZXRlciBjYXNlcy4KCSogcHRyZWUuYyAocHJpbnRfbGFuZ190eXBlKTogQWRkIEJPVU5EX1RFTVBMQVRFX1RFTVBMQVRFX1BBUk0uCgkqIHNlYXJjaC5jIChsb29rdXBfZmllbGRfMSk6IFVzZSBCT1VORF9URU1QTEFURV9URU1QTEFURV9QQVJNCglpbnN0ZWFkLgoJKiB0cmVlLmMgKGNvcHlfdGVtcGxhdGVfdGVtcGxhdGVfcGFybSk6IERlY2lkZSB3aGV0aGVyIHRvIGNyZWF0ZQoJYSBURU1QTEFURV9URU1QTEFURV9QQVJNIG9yIEJPVU5EX1RFTVBMQVRFX1RFTVBMQVRFX1BBUk0gbm9kZS4KCSh3YWxrX3RyZWUpOiBBZGQgQk9VTkRfVEVNUExBVEVfVEVNUExBVEVfUEFSTS4KCShjb3B5X3RyZWVfcik6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoY29tcHR5cGVzKTogTGlrZXdpc2UuICBDaGVjayB0cmVlIGNvZGUgaW5zdGVhZCBvZgoJdXNpbmcgVEVNUExBVEVfVEVNUExBVEVfUEFSTV9URU1QTEFURV9JTkZPLgoKMjAwMC0wOS0wNCAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0BiaWdmb290LmNvbT4KCgkqIGRlY2wuYyAoZmluaXNoX2Z1bmN0aW9uKTogTW92ZSB0aGUgY29kZSBmb3IgaGFuZGxpbmcgZnVuY3Rpb25zCgltYXJrZWQgd2l0aCB0aGUgY29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IgYXR0cmlidXRlcyBpbnNpZGUgdGhlCglleHBhbmRfcCBibG9jay4KCjIwMDAtMDktMDQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbml0LmMgKHJlc29sdmVfb2Zmc2V0X3JlZik6IERlYWwgd2l0aCBURU1QTEFURV9JRF9FWFBSLgoKMjAwMC0wOS0wNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IFJlbW92ZSBhYm9ydC4KCSogdHJlZS5jIChnZXRfdHlwZV9kZWNsKTogQWxsb3cgZXJyb3JfbWFya19ub2RlLgoKMjAwMC0wOS0wNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wyLmMgKGFyZ19hc3NvYyk6IERlYWwgd2l0aCBDT01QT05FTlRfUkVGcyBpbnNpZGUKCVRFTVBMQVRFX0lEX0VYUFJzLgoKMjAwMC0wOS0wMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG9wZXJhdG9ycy5kZWYgKEFMSUdOT0ZfRVhQUiwgTUFYX0VYUFIsIE1JTl9FWFBSKTogQ2hhbmdlCgluZXcgQUJJIG1hbmdsaW5nLgoKMjAwMC0wOS0wMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHBhcnNlLnkgKG5hbWVkX2NsYXNzX2hlYWQpOiBDaGVjayBmb3IgVFlQRU5BTUVfVFlQRS4gU2ltcGxpZnkKCXVuaW9uIHRhZyBtaXNtYXRjaCBlcnJvciByZXBvcnRpbmcuCgoyMDAwLTA5LTAxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChidWlsZF9zY29wZWRfbWV0aG9kX2NhbGwpOiBDaGVjayBpdCBpcyBub3QgYSBuYW1lc3BhY2UuCgoyMDAwLTA4LTMwICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGNwLXRyZWUuaCAoTE9DQUxfQ0xBU1NfUCk6IFVzZSBkZWNsX2Z1bmN0aW9uX2NvbnRleHQuCgoJKiB0cmVlLmMgKGJvdF9tYW5pcCk6IENoZWNrIFRSRUVfQ09OU1RBTlQgcmF0aGVyIHRoYW4KCSFUUkVFX1NJREVfRUZGRUNUUy4gIENhbGwgYnJlYWtfb3V0X3RhcmdldF9leHBycyBhbmQKCWJ1aWxkX3RhcmdldF9leHByX3dpdGhfdHlwZSBmb3IgdGhlIG5vbi1BR0dSX0lOSVRfRVhQUiBjYXNlLgoKCSogZGVjbC5jIChzdGFydF9mdW5jdGlvbik6IEFsd2F5cyBjYWxsIG1ha2VfZnVuY3Rpb25fcnRsLgoKMjAwMC0wOC0yOSAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogc2VtYW50aWNzLmMgKHBydW5lX3VudXNlZF9kZWNscyk6IE5ldyBmdW5jdGlvbi4KCShmaW5pc2hfc3RtdF90cmVlKTogQ2FsbCBpdCB2aWEgd2Fsa190cmVlLgoKMjAwMC0wOC0yOSAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogY2xhc3MuYyAoYnVpbGRfc2Vjb25kYXJ5X3Z0YWJsZSk6IENvbnN0aWZ5IGEgY2hhciAqLgoJKiBkZWNsLmMgKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogSW5pdGlhbGl6ZSBmdW5jdGlvbl9pZF9ub2RlLAoJcHJldHR5X2Z1bmN0aW9uX2lkX25vZGUsIGFuZCBmdW5jX2lkX25vZGUuCgkqIGlucHV0LmMgKHN0cnVjdCBpbnB1dF9zb3VyY2UpOiBDb25zdGlmeSAnc3RyJy4KCShmZWVkX2lucHV0KTogQ29uc3RpZnkgZmlyc3QgYXJndW1lbnQuCgkqIG1hbmdsZS5jICh3cml0ZV9pZGVudGlmaWVyKTogQ29uc3RpZnkgYXJndW1lbnQuCgkqIHB0LmMgKG1hbmdsZV9jbGFzc19uYW1lX2Zvcl90ZW1wbGF0ZSk6IENvbnN0aWZ5IGFyZ3VtZW50LgoKMjAwMC0wOC0yOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHR5cGVjay5jIChtYXJrX2FkZHJlc3NhYmxlKTogUmVtb3ZlIGNvZGUgdGhhdCBwb2tlcyBhcm91bmQgaW4KCVJUTC4KCjIwMDAtMDgtMjggIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogbGV4LmMgKGZpbGVfbmFtZV9ub25kaXJlY3RvcnkpOiBNb3ZlIHRvIHRvcGxldi5jLgoKCSogY3AtdHJlZS5oIChMT0NBTF9DTEFTU19QKTogTmV3IG1hY3JvLgoJKiBjbGFzcy5jIChmaW5pc2hfc3RydWN0XzEpOiBVc2UgaXQuCgoyMDAwLTA4LTI3ICBBbGV4IFNhbXVlbCAgPHNhbXVlbEBjb2Rlc291cmNlcnkuY29tPgoKCSogbWFuZ2xlLmMgKENMQVNTVFlQRV9URU1QTEFURV9JRF9QKTogUmVtb3ZlIHVuZXhwbGFpbmVkIHZvb2Rvby4KCSh3cml0ZV9lbmNvZGluZyk6IFBhc3MgYW5vdGhlciBhcmd1bWVudCB0byB3cml0ZV9uYW1lLgoJKHdyaXRlX25hbWUpOiBBZGQgaWdub3JlX2xvY2FsX3Njb3BlIHBhcmFtZXRlci4gIEZpeCBoYW5kbGluZyBvZgoJbG9jYWwgbmFtZXMuCgkod3JpdGVfbmVzdGVkX25hbWUpOiBVc2Ugd3JpdGVfdW5xdWFsaWZpZWRfbmFtZS4KCSh3cml0ZV9wcmVmaXgpOiBMaWtld2lzZS4gIFNraXAgb3V0IG9uIEZVTkNUSU9OX0RFQ0xzLgoJKHdyaXRlX3RlbXBsYXRlX3ByZWZpeCk6IFVzZSB3cml0ZV91bnF1YWxpZmllZF9uYW1lLgoJKHdyaXRlX2NvbXBvbmVudCk6IFJlbW92ZS4KCSh3cml0ZV9sb2NhbF9uYW1lKTogQWRkIHBhcmFtZXRlci4gIFVzZSBkaXJlY3QgbG9jYWwgZW50aXR5IHRvCglkaXNjcmltaW5hdG9yIGNhbGN1bGF0aW9uLgoJKHdyaXRlX2NsYXNzX2VudW1fdHlwZSk6IFBhc3MgYW5vdGhlciBhcmd1bWVudCB0byB3cml0ZV9uYW1lLgoJKHdyaXRlX3RlbXBsYXRlX3RlbXBsYXRlX2FyZyk6IExpa2V3aXNlLgoJKG1ha2VfZ3VhcmRfdmFyaWFibGUpOiBMaWtld2lzZS4KCjIwMDAtMDgtMjcgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZGVjbC5jIChwdXNoZGVjbCk6IE1hdGNoaW5nIGRlY2xzIGZvciBsb2NhbCBleHRlcm5zIGFyZSBmb3VuZCBpbgoJdGhlIGN1cnJlbnQgbGV2ZWwuICBQcm9wYWdhdGUgbGlua2FnZSBpbmZvcm1hdGlvbiBmcm9tIHByZXZpb3VzCglkZWNsYXJhdGlvbnMuCgoyMDAwLTA4LTI2ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpci50ZXhpIChFeHByZXNzaW9ucyk6IEZpeCB0eXBvLgoKMjAwMC0wOC0yNSAgR3JlZyBNY0dhcnkgIDxncmVnQG1jZ2FyeS5vcmc+CgoJKiB0cmVlLmMgKGluaXRfdHJlZSk6IFVzZSBBUlJBWV9TSVpFLgoKMjAwMC0wOC0yNSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogZXJyb3IuYyAoY3BfdHJlZV9wcmludGVyKTogUmV3b3JrLgoKMjAwMC0wOC0yNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAoQ1hYX0xJQjJGVU5DUyk6IFJlbW92ZSBjcC1kZW1hbmdsZS5vIGFuZAoJZHluLXN0cmluZy5vLgoJKENYWF9MSUIyU1JDUyk6IFJlbW92ZSBjcC1kZW1hbmdsZS5jIGFuZCBkeW4tc3RyaW5nLmMuCgkoY3AtZGVtYW5nbGUubyk6IFJlbW92ZSB0YXJnZXQuCgkoZHluLXN0cmluZy5vKTogTGlrZXdpc2UuCgoJKiBkZWNsLmMgKGdyb2tmbmRlY2wpOiBSZXF1aXJlIHRoYXQgYG1haW4nIHJldHVybiBhbiBgaW50Jy4KCSogbWFuZ2xlLmMgKHdyaXRlX2VuY29kaW5nKTogRG9uJ3QgbWFuZ2xlIHJldHVybiB0eXBlcyBmb3IKCWNvbnZlcnNpb24gZnVuY3Rpb25zLgoKMjAwMC0wOC0yNSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogZXJyb3IuYyAodHJlZV9mb3JtYXR0aW5nX2luZm8pOiBOZXcgZGF0YSB0eXBlLgoJKHRyZWVfYmVpbmdfZm9ybWF0dGVkKTogTmV3IG1hY3JvLgoJKHRyZWVfZm9ybWF0dGluZ19mbGFncyk6IExpa2V3aXNlLgoJKHB1dF93aGl0ZXNwYWNlKTogTGlrZXdpc2UuCgkocHJpbnRfdHJlZV9pZGVudGlmaWVyKTogTGlrZXdpc2UuCgkocHJpbnRfaWRlbnRpZmllcik6IExpa2V3aXNlLgoJKGNwX3RyZWVfcHJpbnRlciwgcHJpbnRfZnVuY3Rpb25fYXJndW1lbnRfbGlzdCwgcHJpbnRfZGVjbGFyYXRpb24sCglwcmludF9leHByZXNzaW9uLCBwcmludF9mdW5jdGlvbl9kZWNsYXJhdGlvbiwKCXByaW50X2Z1bmN0aW9uX3BhcmFtZXRlciwgcHJpbnRfdHlwZSwgcHJpbnRfY3ZfcXVhbGlmaWVyKTogTmV3CglmdW5jdGlvbnMuCgkoaW5pdF9lcnJvcik6IEluaXRpYWxpemUgbGFuZ19wcmludGVyLgoKMjAwMC0wOC0yNCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiB0eXBlY2suYyAoYnVpbGRfcHRybWVtZnVuYyk6IEp1c3QgcmVpbnRlcnByZXQgaWYgdGhlcmUncyBubwoJYWRqdXN0bWVudCBuZWNlc3NhcnkuCgoyMDAwLTA4LTI0ICBHcmVnIE1jR2FyeSAgPGdyZWdAbWNnYXJ5Lm9yZz4KCgkqIGNwLXRyZWUuaCAoTUFJTl9OQU1FX1ApOiBSZW1vdmUgbWFjcm8uCgoyMDAwLTA4LTI0ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlcnJvci5jIChwcmludF9pbnN0YW50aWF0aW9uX2NvbnRleHQpOiBEb24ndCBmb3JnZXQgdG8gZmx1c2ggdGhlCglidWZmZXIuCgoyMDAwLTA4LTIzICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHR5cGVjay5jIChidWlsZF9wdHJtZW1mdW5jKTogU2F2ZSB0aGUgaW5wdXQgcG1mLgoKCSogbWV0aG9kLmMgKHByb2Nlc3NfbW9kaWZpZXJzKTogVXNlIHNhbWVfdHlwZV9wLgoKMjAwMC0wOC0yMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoREVDTF9DTE9ORURfRlVOQ1RJT05fUCk6IENoZWNrIERFQ0xfTEFOR19TUEVDSUZJQy4KCSogbWFuZ2xlLmMgKHdyaXRlX2Z1bmN0aW9uX3R5cGUpOiBDaGFuZ2UgcHJvdG90eXBlLgoJKHdyaXRlX2VuY29kaW5nKTogRG9uJ3QgbWFuZ2xlIHJldHVybiB0eXBlcyBmb3IKCWNvbnN0cnVjdG9ycyBvciBkZXN0cnVjdG9ycy4KCSh3cml0ZV90eXBlKTogQWRqdXN0IGNhbGwgdG8gd3JpdGVfZnVuY3Rpb25fdHlwZS4KCSogcHQuYyAoaW5zdGFudGlhdGVfdGVtcGxhdGUpOiBJbnN0YW50aWF0ZSBhbHRlcm5hdGUgZW50cnkgcG9pbnRzCgl3aGVuIGluc3RhbnRpYXRpbmcgdGhlIG1haW4gZnVuY3Rpb24uCgoyMDAwLTA4LTIzICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlcnJvci5jIChjcF9wcmludF9lcnJvcl9mdW5jdGlvbik6IERvbid0IHVzZSBlbWJlZGRlZCAnXG4nIGluCglvdXRwdXRfcHJpbnRmLgoKMjAwMC0wOC0yMyAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChpbml0X2RlY2xfcHJvY2Vzc2luZyk6IFJlbW92ZSBib2d1cyBpbml0aWFsaXphdGlvbi4KCSogZXJyb3IuYyAobGFuZ19wcmludF9lcnJvcl9mdW5jdGlvbik6IFJlc3RvcmUgaGVyZS4KCShpbml0X2Vycm9yKTogSW5pdGlhbGl6ZSBwcmludF9lcnJvcl9mdW5jdGlvbi4KCjIwMDAtMDgtMjIgIFRoZW9kb3JlIFBhcGFkb3BvdWxvICA8VGhlb2RvcmUuUGFwYWRvcG91bG9Ac29waGlhLmlucmlhLmZyPgoKCSogZGVjbDIuYyAoYXJnX2Fzc29jKTogUmV2ZXJ0IG15IDIwMDAtMDgtMTEgY2hhbmdlLgoKMjAwMC0wOC0yMiAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZWZpbGUuaW4gKGVycm9yLm8pOiBEZXBlbmRzIG9uIGRpYWdub3N0aWMuaAoKCSogY3AtdHJlZS5oIChwcm9ibGVtYXRpY19pbnN0YW50aWF0aW9uX2NoYW5nZWQsCglyZWNvcmRfbGFzdF9wcm9ibGVtYXRpY19pbnN0YW50aWF0aW9uLCBjdXJyZW50X2luc3RhbnRpYXRpb24sCglwcmludF9pbnN0YW50aWF0aW9uX2NvbnRleHQpOiBEZWNsYXJlLgoJKG1heWJlX3ByaW50X3RlbXBsYXRlX2NvbnRleHQpOiBSZW1vdmUuCgoJKiBkZWNsLmMgKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogU2V0IHByaW50X2Vycm9yX2Z1bmN0aW9uIHRvIE5VTEwuCgkobGFuZ19wcmludF9lcnJvcl9mdW5jdGlvbik6IFJlbW92ZSwgc2luY2Ugd2UncmUgdXNpbmcgYSBuZXcKCW1hY2hpbmVyeS4KCgkqIGVycm9yLmM6ICNpbmNsdWRlIGRpYWdub3N0aWMuaAoJKGZ1bmN0aW9uX2NhdGVnb3J5KTogTmV3IGZ1bmN0aW9uLgoJKGNwX2RpYWdub3N0aWNfc3RhcnRlcik6IExpa2V3aXNlLgoJKGNwX2RpYWdub3N0aWNfZmluYWxpemVyKTogTGlrZXdpc2UuCgkoY3BfcHJpbnRfZXJyb3JfZnVuY3Rpb24pOiBMaWtld2lzZS4KCShtYXliZV9wcmludF9pbnN0YW50aWF0aW9uX2NvbnRleHQpOiBMaWtld2lzZS4KCShwcmludF9pbnN0YW50aWF0aW9uX2Z1bGxfY29udGV4dCk6IExpa2V3aXNlLgoJKHByaW50X2luc3RhbnRpYXRpb25fcGFydGlhbF9jb250ZXh0KTogTGlrZXdpc2UuCgkocHJpbnRfaW5zdGFudGlhdGlvbl9jb250ZXh0KTogRGVmaW5lLgoJKGluaXRfZXJyb3IpOiBJbml0aWFsaXplIGRpYWdub3N0aWMgcGFnZXIgYW5kIGZpbmFsaXplci4KCgkqIHB0LmMgKHByb2JsZW1hdGljX2luc3RhbnRpYXRpb25fY2hhbmdlZCk6IERlZmluZS4KCShyZWNvcmRfbGFzdF9wcm9ibGVtYXRpY19pbnN0YW50aWF0aW9uKTogTGlrZXdpc2UuCgkoY3VycmVudF9pbnN0YW50aWF0aW9uKTogTGlrZXdpc2UuCgkobWF5YmVfcHJpbnRfdGVtcGxhdGVfY29udGV4dCk6IFJlbW92ZS4KCShwcmludF90ZW1wbGF0ZV9jb250ZXh0KTogTGlrZXdpc2UuCgkoY3VycmVudF90aW5zdF9sZXZlbCk6IE1ha2Ugc3RhdGljIHRvIHJlZmxlY3QgQnJlbmRhbiBLZWhvZSdzCgljaGFuZ2Ugb2YgMTk5NS0wNC0xMy4KCShwdXNoX3RpbnN0X2xldmVsKTogQ2FsbCBwcmludF9pbnN0YW50aWF0aW9uX2NvbnRleHQuCgoyMDAwLTA4LTIxICBOaXggIDxuaXhAZXNwZXJpLmRlbW9uLmNvLnVrPgoKCSogbGFuZy1zcGVjcy5oOiBEbyBub3QgcHJvY2VzcyAtbyBvciBydW4gdGhlIGFzc2VtYmxlciBpZgoJLWZzeW50YXgtb25seS4KCjIwMDAtMDgtMjEgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGRlY2wuYyAoZmxhZ19ob3N0ZWQsIGZsYWdfbm9uaXNvX2RlZmF1bHRfZm9ybWF0X2F0dHJpYnV0ZXMpOiBOZXcKCXZhcmlhYmxlcy4KCSogZGVjbDIuYyAobGFuZ19kZWNvZGVfb3B0aW9uKTogRGlzYWJsZSBnZXR0ZXh0IGF0dHJpYnV0ZXMgZm9yCgktYW5zaS4KCjIwMDAtMDgtMjEgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxleC5jIChsYW5nX2luaXRfb3B0aW9ucyk6IERlZmF1bHQgZGlhZ25vc3RpYyBtZXNzYWdlIG1heGltdW0KCWxlbmd0aCB0byA4MCwgd2hlbiBsaW5lLXdyYXBwaW5nLgoKMjAwMC0wOC0yMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBDbGVhciB0aGUgZW50aXJlCgl2dGJsX2luaXRfZGF0YS4gIFN0YXJ0IGtlZXBpbmcgdHJhY2sgb2YgdGhlIGZ1bmN0aW9ucyBmb3Igd2hpY2ggd2UKCWhhdmUgY3JlYXRlZCB2Y2FsbCBvZmZzZXRzIGhlcmUuCgkoZGZzX2J1aWxkX3ZjYWxsX29mZnNldF92dGJsX2VudHJpZXMpOiBSZW1vdmUuCgkoYnVpbGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IFJlaW1wbGVtZW50LgoJKGFkZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzX3IpOiBOZXcgZnVuY3Rpb24uCgkoYWRkX3ZjYWxsX29mZnNldF92dGJsX2VudHJpZXNfMSk6IExpa2V3aXNlLiAgVHdlYWsgbG9naWMgZm9yCgljb21wdXRpbmcgd2hlbiB2Y2FsbCBvZmZzZXRzIGFyZSBuZWNlc3NhcnkuCgoyMDAwLTA4LTE4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChtZW1iZXJfZnVuY3Rpb25fb3JfZWxzZSk6IFVzZSBjcF9lcnJvciAuLi4gJVQuCgkoZ3Jva2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCShzdGFydF9tZXRob2QpOiBMaWtld2lzZS4KCSogZnJpZW5kLmMgKG1ha2VfZnJpZW5kX2NsYXNzKTogVXNlIGNwX3BlZHdhcm4gLi4uICVULgoKMjAwMC0wOC0xOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wyLmMgKGdyb2tmaWVsZCk6IFNldCBDTEFTU1RZUEVfR09UX1NFTUlDT0xPTiBvbiBjbGFzcwoJVFlQRV9ERUNMcy4KCjIwMDAtMDgtMTggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKFBUUk1FTV9PS19QKTogTmV3IG1hY3JvLgoJKGl0Zl9wdHJtZW1fb2spOiBOZXcgZW51bWVyYXRpb24gdmFsdWUuCgkqIGNsYXNzLmMgKHJlc29sdmVfYWRkcmVzc19vZl9vdmVybG9hZGVkX2Z1bmN0aW9uKTogQWRkIFBUUk1FTQoJYXJndW1lbnQuIERpYWdub3NlIGltcGxpY2l0IHBvaW50ZXIgdG8gbWVtYmVyLgoJKGluc3RhbnRpYXRlX3R5cGUpOiBEb24ndCBkaWFnbm9zZSBpbXBsaWNpdCBwb2ludGVyIHRvIG1lbWJlcgoJaGVyZS4gUGFzcyBpdGZfcHRybWVtX29rIGlmIG9rLiBBZGp1c3QgY2FsbHMgdG8KCXJlc29sdmVfYWRkcmVzc19vZl9vdmVybG9hZGVkX2Z1bmN0aW9uLgoJKiBpbml0LmMgKGJ1aWxkX29mZnNldF9yZWYpOiBTZXQgUFRSTUVNX09LX1AuCgkocmVzb2x2ZV9vZmZzZXRfcmVmKTogRG9uJ3QgZGlhZ25vc2UgaW1wbGljaXQgcG9pbnRlciB0byBtZW1iZXIgaGVyZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9wYXJlbnRoZXNpemVkX2V4cHIpOiBDbGVhciBPRkZTRVRfUkVGcyBoZXJlLgoJKiB0eXBlY2suYyAoYnVpbGRfeF91bmFyeV9vcCk6IENhbGN1bGF0ZSBQVFJNRU1fT0tfUC4KCShidWlsZF91bmFyeV9vcCk6IERlYWwgd2l0aCBzaW5nbGUgbm9uLXN0YXRpYyBtZW1iZXIgaW4KCW1pY3Jvc29mdC1sYW5kLgoKMjAwMC0wOC0xOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wyLmMgKGFyZ19hc3NvY190eXBlKTogQ29wZSB3aXRoIFRZUEVOQU1FX1RZUEUuCgoyMDAwLTA4LTE4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChlbnVtX25hbWVfc3RyaW5nKTogUmVtb3ZlIHByb3RvdHlwZS4KCShyZXBvcnRfY2FzZV9lcnJvcik6IFJlbW92ZSBwcm90b3R5cGUuCgkqIGNwL3R5cGVjazIuYyAoZW51bV9uYW1lX3N0cmluZyk6IFJlbW92ZS4KCShyZXBvcnRfY2FzZV9lcnJvcik6IFJlbW92ZS4KCSogZXJyb3IuYyAoZHVtcF9leHByKTogRGVhbCB3aXRoIGVudW0gdmFsdWVzIGRpcmVjdGx5LgoJQ29ycmVjdGx5IG5lZ2F0ZSBpbnRlZ2VyIGNvbnN0YW50LgoKMjAwMC0wOC0xNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGluYy9jeHhhYmkuaCAoX19jeGFfdmVjX25ldzIsIF9fY3hhX3ZlY19uZXczKTogRGVjbGFyZS4KCShfX2N4YV92ZWNfZGVsZXRlMiwgX19jeGFfdmVjX2RlbGV0ZTMpOiBEZWNsYXJlLgoJKiB2ZWMuY2MgKF9fY3hhX3ZlY19uZXcyLCBfX2N4YV92ZWNfbmV3Myk6IEltcGxlbWVudC4KCShfX2N4YV92ZWNfZGVsZXRlMiwgX19jeGFfdmVjX2RlbGV0ZTMpOiBJbXBsZW1lbnQuCgkoX19jeGFfdmVjX25ldyk6IFVzZSBfX2N4YV92ZWNfbmV3Mi4KCShfX2N4YV92ZWNfZGVsZXRlKTogVXNlIF9fY3hhX3ZlY19kZWxldGUyLgoKMjAwMC0wOC0xNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHZlYy5jYyAoX19jeGFfdmVjX25ldyk6IFNldCAiQyIgbGlua2FnZS4KCShfX2N4YV92ZWNfY3Rvcik6IExpa2V3aXNlLgoJKF9fY3hhX3ZlY19jY3Rvcik6IExpa2V3aXNlLgoJKF9fY3hhX3ZlY19kdG9yKTogTGlrZXdpc2UuCgkoX19jeGFfdmVjX2RlbGV0ZSk6IExpa2V3aXNlLgoJKiBpbmMvY3h4YWJpLmggKF9fY3hhX3ZlY19uZXcpOiBTZXQgIkMiIGxpbmthZ2UuCgkoX19jeGFfdmVjX2N0b3IpOiBMaWtld2lzZS4KCShfX2N4YV92ZWNfY2N0b3IpOiBMaWtld2lzZS4KCShfX2N4YV92ZWNfZHRvcik6IExpa2V3aXNlLgoJKF9fY3hhX3ZlY19kZWxldGUpOiBMaWtld2lzZS4KCjIwMDAtMDgtMTcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChpbnN0YW50aWF0ZV90eXBlKTogUmVpbnN0YXRlIGxvY2FsIHZhcmlhYmxlCglkZWxldGVkIGluIHByZXZpb3VzIGNoYW5nZS4KCgkqIGN2dC5jIChjcF9jb252ZXJ0X3RvX3BvaW50ZXIpOiBQYXNzIGl0Zl9jb21wbGFpbiwgbm90CglpdGZfbm9fYXR0cmlidXRlcy4KCjIwMDAtMDgtMTcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGluc3RhbnRpYXRlX3R5cGVfZmxhZ3MpOiBOZXcgZW51bWVyYXRpb24uCgkoaW5zdGFudGlhdGVfdHlwZSk6IENoYW5nZSBwYXJhbWV0ZXIuCgkqIGNsYXNzLmMgKGluc3RhbnRpYXRlX3R5cGUpOiBBZGp1c3QgcHJvdG90eXBlLiBBZGp1c3QuCgkqIGNhbGwuYyAoc3RhbmRhcmRfY29udmVyc2lvbik6IEFkanVzdCBpbnN0YW50aWF0ZV90eXBlIGNhbGwuCgkocmVmZXJlbmNlX2JpbmRpbmcpOiBMaWtld2lzZS4KCShidWlsZF9vcF9kZWxldGVfY2FsbCk6IExpa2V3aXNlLgoJKGNvbnZlcnRfbGlrZV9yZWFsKTogTGlrZXdpc2UuCgkqIGN2dC5jIChjcF9jb252ZXJ0X3RvX3BvaW50ZXIpOiBMaWtld2lzZS4KCShjb252ZXJ0X3RvX3JlZmVyZW5jZSk6IExpa2V3aXNlLgoJKiBwdC5jIChjb252ZXJ0X25vbnR5cGVfYXJndW1lbnQpOiBMaWtld2lzZS4KCSogdHlwZWNrLmMgKGJ1aWxkX2JpbmFyeV9vcCk6IExpa2V3aXNlLgoJKGJ1aWxkX3B0cm1lbWZ1bmMpOiBMaWtld2lzZS4KCShjb252ZXJ0X2Zvcl9hc3NpZ25tZW50KTogTGlrZXdpc2UuCgoyMDAwLTA4LTE3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChDUFRSX0FHR1JfVEFHKTogTmV3IGdsb2JhbCB0cmVlIG5vZGUuCgkoY3VycmVudF9hZ2dyKTogRGVmaW5lLgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogTWFrZSBzdXJlIGEgZnJpZW5kIGNsYXNzIGlzIGFuCgllbGFib3JhdGVkIHR5cGUgc3BlY2lmaWVyLgoJKiBwYXJzZS55IChjdXJyZW50X2FnZ3IpOiBSZW1vdmUgc3RhdGljIGRlZmluaXRpb24uCgkoY3BfcGFyc2VfaW5pdCk6IEFkanVzdC4KCShzdHJ1Y3RzcCk6IENsZWFyIGFuZCByZXN0b3JlIGN1cnJlbnRfYWdnci4KCShjb21wb25lbnRfZGVjbF9saXN0KTogQ2xlYXIgY3VycmVudF9hZ2dyLgoKCSogZXJyb3IuYyAoZHVtcF90eXBlLCBjYXNlIFRZUEVOQU1FX1RZUEUpOiBEb24ndCBlbWl0IHRoZQoJYWdncmVnYXRlIHRhZyBvbiB0aGUgdHlwZW5hbWUncyBjb250ZXh0LgoKCSogcHQuYyAodHN1YnN0X2ZyaWVuZF9jbGFzcyk6IFJldHVybiBlcnJvcl9tYXJrX25vZGUsIGlmCglwYXJtcyBiZWNvbWVzIE5VTEwuCgkoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBJZ25vcmUgZXJyb3JfbWFya19ub2RlIGZyaWVuZCB0eXBlcy4KCjIwMDAtMDgtMTQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjdnQuYyAod2Fybl9yZWZfYmluZGluZyk6IE5ldyBzdGF0aWMgZnVuY3Rpb24sIGJyb2tlbiBvdXQgb2YgLi4uCgkoY29udmVydF90b19yZWZlcmVuY2UpOiAuLi4gaGVyZS4gVXNlIGl0LgoKMjAwMC0wOC0xMSAgS3JpYW5nIExlcmRzdXdhbmFraWogPGxlcmRzdXdhQHNjZi1mcy51c2MuZWR1PgoKCSogcGFyc2UueSAodGVtcGxhdGVfYXJnKTogQWRkIHJ1bGUgZm9yIHRlbXBsYXRlIHF1YWxpZmllZCB3aXRoCglnbG9iYWwgc2NvcGUuCgoyMDAwLTA4LTExICBUaGVvZG9yZSBQYXBhZG9wb3VsbyA8VGhlb2RvcmUuUGFwYWRvcG91bG9Ac29waGlhLmlucmlhLmZyPgoKCSogZGVjbDIuYyAoYWRkX2Z1bmN0aW9uKTogUmVvcmdhbml6ZS4KCShhcmdfYXNzb2MpOiBEbyBub3QgY29uc2lkZXIgZnVuY3Rpb24gdGVtcGxhdGUgZGVjbHMuCgoyMDAwLTA4LTExICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAobG9va3VwX25hbWVfcmVhbCk6IERvbid0IGZvcmdldCB0aGUgVFlQRU5BTUVfVFlQRSB3ZSdyZQoJbG9va2luZyBpbnNpZGUuCgoyMDAwLTA4LTExICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChyZXNvbHZlX3Njb3BlX3RvX25hbWUpOiBSZW1vdmUgdW51c2VkIHByb3RvdHlwZS4KCShsb29rdXBfbmVzdGVkX3RhZyk6IExpa2V3aXNlLgoKCSogZGVjbDIuYyAoZ3Jva2ZpZWxkKTogRml4IGNvbW1lbnQgdG8gcmVmbGVjdCBtYW55IHR5cGVzIG9mIF9ERUNMcwoJY2FuIGJlIHByb2R1Y2VkLgoKMjAwMC0wOC0xMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHBhcnNlLnkgKG5hbWVkX2NvbXBsZXhfY2xhc3NfaGVhZF9zYW5zX2Jhc2V0eXBlKTogUmVtb3ZlCglhbHdheXMgdHJ1ZSBpZi4KCjIwMDAtMDgtMTEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsMi5jIChidWlsZF9leHByX2Zyb21fdHJlZSwgY2FzZSBNRVRIT0RfQ0FMTF9FWFBSKTogQnVpbGQKCWV4cGxpY2l0IFRFTVBMQVRFX0lEX0VYUFIgYXJncy4KCShidWlsZF9leHByX2Zyb21fdHJlZSwgY2FzZSBDQUxMX0VYUFIpOiBMaWtld2lzZS4KCjIwMDAtMDgtMTEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGNoZWNrX3RhZ19kZWNsKTogRGlhZ25vc2UgdHlwZW5hbWUncyB3aGljaCBkb24ndAoJZGVjbGFyZSBhbnl0aGluZy4KCjIwMDAtMDgtMTAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbml0LmMgKGJ1aWxkX2FnZ3JfaW5pdCk6IFJlamVjdCBib2d1cyBhcnJheSBpbml0aWFsaXplcnMKCWVhcmx5LgoKMjAwMC0wOC0wOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHJ0dGkuYyAoYnVpbGRfZHluYW1pY19jYXN0XzEpOiBTZXQgIkMiIGxpbmthZ2UgZm9yIG5ldyBhYmkKCXJ1bnRpbWUuCgkqIGNwL3RpbmZvLmNjIChfX2R5bmFtaWNfY2FzdCk6IExpa2V3aXNlLgoJKiBjcC9pbmMvY3h4YWJpLmggKF9fZHluYW1pY19jYXN0KTogTGlrZXdpc2UuCgoyMDAwLTA4LTA5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3Z0LmMgKGNvbnZlcnRfdG9fcG9pbnRlcl9mb3JjZSk6IEZpeCBlcnJvciBtZXNzYWdlIHdoZW4KCWF0dGVtcHRpbmcgdG8gY2FzdCBmcm9tIGFtYmlndW91cyBiYXNlLgoKMjAwMC0wOC0wOCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBwdC5jICh0c3Vic3RfYWdncl90eXBlKTogQmFpbCBpZiBjcmVhdGluZyB0aGUgYXJndmVjIGZhaWxzLgoJKHRzdWJzdF90ZW1wbGF0ZV9hcmdfdmVjdG9yKTogTGlrZXdpc2UuCgoJKiBkZWNsMi5jIChidWlsZF9hbm9uX3VuaW9uX3ZhcnMpOiBDaG9vc2UgdGhlIGxhcmdlc3QgZmllbGQ7IGRvbid0Cglhc3N1bWUgdGhhdCBvbmUgd2lsbCBiZSBhcyBsYXJnZSBhcyB0aGUgdW5pb24uCgoyMDAwLTA4LTA3ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGNwLXRyZWUuaCAoQ0xBU1NUWVBFX0hBU19QUklNQVJZX0JBU0VfUCk6IEZpeCBhIGNvbW1lbnQgdHlwby4KCSogZGVjbC5jIChwb3BfbGFiZWxzKTogTGlrZXdpc2UuCgoyMDAwLTA4LTA0ICBKZWZmcmV5IE9sZGhhbSAgPG9sZGhhbUBjb2Rlc291cmNlcnkuY29tPgoKCSogaW5jL2N4eGFiaS5oIChfX3BiYXNlX3R5cGVfaW5mbyk6IENoYW5nZWQgbWVtYmVyIG5hbWVzIHRvIG1hdGNoCglzcGVjaWZpY2F0aW9ucy4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fYmFzZV9jbGFzc19pbmZvKTogTGlrZXdpc2UuCgkoX19jbGFzc190eXBlX2luZm8pOiBMaWtld2lzZS4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKiB0aW5mby5jYyAoX19zaV9jbGFzc190eXBlX2luZm86Ol9fZG9fZmluZF9wdWJsaWNfc3JjKToKCUNoYW5nZWQgbWVtYmVyIG5hbWVzIHRvIG1hdGNoIHNwZWNpZmljYXRpb25zLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6X19kb19maW5kX3B1YmxpY19zcmMpOiBMaWtld2lzZS4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6X19kb19keW5jYXN0KTogTGlrZXdpc2UuCgkoX192bWlfY2xhc3NfdHlwZV9pbmZvOjpfX2RvX2R5bmNhc3QpOiBMaWtld2lzZS4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6X19kb191cGNhc3QpOiBMaWtld2lzZS4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86Ol9fZG9fdXBjYXN0KTogTGlrZXdpc2UuCgkqIHRpbmZvMi5jYyAoX19wYmFzZV90eXBlX2luZm86Ol9fZG9fY2F0Y2gpOiBMaWtld2lzZS4KCShfX3BiYXNlX3R5cGVfaW5mbzo6X19wb2ludGVyX2NhdGNoKTogTGlrZXdpc2UuCgkoX19wb2ludGVyX3R5cGVfaW5mbzo6X19wb2ludGVyX2NhdGNoKTogTGlrZXdpc2UuCgkoX19wb2ludGVyX3RvX21lbWJlcl90eXBlX2luZm86Ol9fcG9pbnRlcl9jYXRjaCk6IExpa2V3aXNlLgoKMjAwMC0wOC0wNCAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogTWFrZS1sYW5nLmluIChjYzFwbHVzKTogRGVwZW5kIG9uICQoQkFDS0VORCksIG5vdCBzdGFtcC1vYmpsaXN0LgoJKiBNYWtlZmlsZS5pbjogQWRkIENfT0JKUywgQkFDS0VORDsgZGVsZXRlIE9CSlMsIE9CSkRFUFMuCgkoY2MxcGx1cyk6IExpbmsgd2l0aCAkKEJBQ0tFTkQpIGFuZCAkKENfT0JKUykuCgoyMDAwLTA4LTA0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChhZGRfbWV0aG9kKTogQ2hhbmdlIHByb3RvdHlwZS4KCSogY2xhc3MuYyAoYWRkX21ldGhvZCk6IFJlbW92ZSBGSUVMRFMgcGFyYW1ldGVyLiAgQWRkIEVSUk9SX1AuCglEb24ndCBkb3VibGUgdGhlIHNpemUgb2YgdGhlIG1ldGhvZCB2ZWN0b3IgaW4gdGhlIGVycm9yIGNhc2UuCgkoaGFuZGxlX3VzaW5nX2RlY2wpOiBBZGp1c3QgY2FsbCB0byBhZGRfbWV0aG9kLgoJKGFkZF9pbXBsaWNpdGx5X2RlY2xhcmVkX21lbWJlcnMpOiBMaWtld2lzZS4KCShjbG9uZV9mdW5jdGlvbl9kZWNsKTogTGlrZXdpc2UuCgkqIGRlY2wyLmMgKGNoZWNrX2NsYXNzZm4pOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9tZW1iZXJfZGVjbGFyYXRpb24pOiBMaWtld2lzZS4KCjIwMDAtMDgtMDQgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGRlY2wuYyAoZmxhZ19pc29jOTQpOiBOZXcgdmFyaWFibGUuCgoyMDAwLTA4LTAyICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHB0LmMgKGRvX3R5cGVfaW5zdGFudGlhdGlvbik6IEFkZCBjb21wbGFpbiBwYXJtOyBkb24ndCBjb21wbGFpbgoJaWYgY2FsbGVkIHJlY3Vyc2l2ZWx5LgoJKiBjcC10cmVlLmgsIHBhcnNlLnk6IEFkanVzdC4KCjIwMDAtMDgtMDIgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIGRlY2wyLmM6IFNpbGVudGx5IGlnbm9yZSAtV3N0cmljdC1wcm90b3R5cGVzOyB3YXJuIGFib3V0CgktV25vLXN0cmljdC1wcm90b3R5cGVzLgoKCSogZysrc3BlYy5jOiBBZGp1c3QgdHlwZSBvZiBzZWNvbmQgYXJndW1lbnQgdG8KCWxhbmdfc3BlY2lmaWNfZHJpdmVyLCBhbmQgdXBkYXRlIGNvZGUgYXMgbmVjZXNzYXJ5LgoKCSogY3AtdHJlZS5oOiBEb24ndCBwcm90b3R5cGUgbWluX3ByZWNpc2lvbiBoZXJlLgoJKG15X2ZyaWVuZGx5X2Fzc2VydCk6IENhc3QgZXhwcmVzc2lvbiB0byB2b2lkLgoJKiBzZW1hbnRpY3MuYyAoZG9fcG9wbGV2ZWwpOiBJbml0aWFsaXplIHNjb3BlX3N0bXRzLgoKMjAwMC0wOC0wMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoREVDTF9ORUVERURfUCk6IFR3ZWFrLgoKMjAwMC0wNy0yOCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBsYW5nLXNwZWNzLmg6IFVzZSAlaSBpbiBydWxlIGZvciAuaWkgZmlsZXMuCgoyMDAwLTA3LTMxICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuY3VtYi5vcmc+CgoJKiBsYW5nLXNwZWNzLmg6IFJlbmFtZSBjcHAgdG8gY3BwMCBhbmQvb3IgdHJhZGNwcCB0byB0cmFkY3BwMC4KCjIwMDAtMDctMzAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJQWxsb3cgaW5kaXJlY3QgcHJpbWFyeSBiYXNlcy4KCSogY3AtdHJlZS5oIChzdHJ1Y3QgbGFuZ190eXBlKTogUmVtb3ZlIHZmaWVsZF9wYXJlbnQuICBBZGQKCXByaW1hcnlfYmFzZS4KCShDTEFTU1RZUEVfVkZJRUxEX1BBUkVOVCk6IFJlbW92ZS4KCShDTEFTU1RZUEVfUFJJTUFSWV9CSU5GTyk6IFJlaW1wbGVtZW50LgoJKEJJTkZPX1BSSU1BUllfQklORk8pOiBSZW1vdmUuCgkoQ0xBU1NUWVBFX0hBU19QUklNQVJZX0JBU0VfUCk6IFJlaW1wbGVtZW50LgoJKEJJTkZPX1ZCQVNFX1BSSU1BUllfUCk6IExpa2V3aXNlLgoJKEJJTkZPX1BSSU1BUllfQkFTRV9PRik6IE5ldyBtYWNyby4KCShCSU5GT19JTkRJUkVDVF9QUklNQVJZX1ApOiBMaWtld2lzZS4KCShnZXRfcHJpbWFyeV9iaW5mbyk6IE5ldyBmdW5jdGlvbi4KCSogZGVjbC5jIChsYW5nX21hcmtfdHJlZSk6IE1ha2UgbGFuZ190eXBlOjpwcmltYXJ5X2Jhc2UuCgkqIGNsYXNzLmMgKHZjYWxsX29mZnNldF9kYXRhX3MpOiBSZW5hbWUgdG8gLi4uCgkodnRibF9pbml0X2RhdGFfcyk6IC4uLiB0aGlzLiAgUmVuYW1lIHByaW1hcnlfcCB0byBwcmltYXJ5X3Z0YmxfcCwKCWFuZCBhZGQgY3Rvcl92dGJsX3AuCgkoZ2V0X2Rlcml2ZWRfb2Zmc2V0KTogVXNlIGdldF9wcmltYXJ5X2JpbmZvLgoJKGRmc19tYXJrX3ByaW1hcnlfYmFzZXMpOiBBZGp1c3QgaGFuZGxpbmcgb2YgdmlydHVhbCBwcmltYXJ5CgliYXNlcy4KCShtYXJrX3ByaW1hcnlfYmFzZXMpOiBMaWtld2lzZS4KCShzZXRfcHJpbWFyeV9iYXNlKTogVGFrZSBhIGJpbmZvLCBub3QgYW4gaW50ZWdlciwgYXMgYQoJcmVwcmVzZW50YXRpb24gb2YgdGhlIHByaW1hcnkgYmFzZS4KCShpbmRpcmVjdF9wcmltYXJ5X2Jhc2VfcCk6IFJlbW92ZS4KCShkZXRlcm1pbmVfcHJpbWFyeV9iYXNlKTogQWRqdXN0IGZvciBpbmRpcmVjdCBwcmltYXJ5IGJhc2VzLgoJKGRmc19maW5kX2ZpbmFsX292ZXJyaWRlcik6IEZpeCB0eXBvIGluIGNvbWVudC4KCSh1cGRhdGVfdnRhYmxlX2VudHJ5X2Zvcl9mbik6IFVzZSBnZXRfcHJpbWFyeV9iaW5mby4KCShsYXlvdXRfbm9uZW1wdHlfYmFzZV9vcl9maWVsZCk6IFR3ZWFrLgoJKGJ1aWxkX2Jhc2VfZmllbGRzKTogQWRqdXN0IGZvciBuZXcgcHJpbWFyeSBiYXNlIHNlbWFudGljcy4KCShkZnNfcHJvcGFnYXRlX2JpbmZvX29mZnNldHMpOiBSZW1vdmUuCgkocHJvcGFnYXRlX2JpbmZvX29mZnNldHMpOiBSZXdyaXRlLgoJKGRmc19zZXRfb2Zmc2V0X2Zvcl9zaGFyZWRfdmJhc2VzKTogUmVtb3ZlLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogRG9uJ3QgdXNlIGl0LgoJKGxheW91dF9jbGFzc190eXBlKTogU2V0IENMQVNTVFlQRV9TSVpFIGNvcnJlY3RseSB1bmRlciB0aGUgbmV3CglBQkkuCgkoZmluaXNoX3N0cnVjdF8xKTogU2V0IENMQVNTVFlQRV9QUklNQVJZX0JJTkZPLCBub3QKCUNMQVNTVFlQRV9WRklFTERfUEFSRU5ULgoJKGRmc19nZXRfcHJpbWFyeV9iaW5mbyk6IE5ldyBmdW5jdGlvbi4KCShnZXRfcHJpbWFyeV9iaW5mbyk6IExpa2V3aXNlLgoJKGR1bXBfY2xhc3NfaGllcmFyY2h5X3IpOiBUd2VhayBwcmludGluZyBvZiBwcmltYXJ5IGJhc2VzLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBGaXggdHlwbyBpbiBjb21tZW50cy4gIFVzZQoJdnRibF9pbml0X2RhdGEuCgkoYnVpbGRfdmNhbGxfYW5kX3ZiYXNlX3Z0YmxfZW50cmllcyk6IExpa2V3aXNlLgoJKGJ1aWxkX3ZiYWVzX29mZnNldF92dGJsX2VudHJpZXMpOiBMaWtld2lzZS4KCShkZnNfYnVpbGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IEFkanVzdCBzZXR0aW5nIG9mCglCVl9WQ0FMTF9JTkRFWCB0byBoYW5kbGUgaW5kaXJlY3QgcHJpbWFyeSBiYXNlcy4KCShidWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogVXNlIHZ0YmxfaW5pdF9kYXRhLgoJKGJ1aWxkX3J0dGlfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgkqIHNlYXJjaC5jIChnZXRfc2hhcmVkX3ZiYXNlX2lmX25vdF9wcmltYXJ5KTogVHdlYWsuCgkoZmluZF92YmFzZV9pbnN0YW5jZSk6IExpa2V3aXNlLgoJKGJpbmZvX2Zvcl92dGFibGUpOiBTaW1wbGlmeS4KCSogdHJlZS5jICh1bnNoYXJlX2Jhc2VfYmluZm9zKTogQ2xlYXIgQklORk9fUFJJTUFSWV9CQVNFX09GLgoJKG1ha2VfYmluZm8pOiBNYWtlIGl0IGhhdmUgMTEgZW50cmllcy4KCjIwMDAtMDctMzAgIEFsZXggU2FtdWVsICA8c2FtdWVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtYW5nbGUuYyAoREVDTF9URU1QTEFURV9JRF9QKTogUmVtb3ZlLgoJKENMQVNTVFlFUF9URU1QTEFURV9JRF9QKTogQ2hlY2sgdGVtcGxhdGUgaW5mbywgYW5kIGNvbnRleHQgd2hlbgoJYXNjZXJ0YWluaW5nIHByaW1hcnluZXNzLgoJKEcpOiBSZW1vdmUgdGVtcGxhdGVfYXJncy4KCShkZWNsX2lzX3RlbXBsYXRlX2lkKTogTmV3IGZ1bmN0aW9uLgoJKHdyaXRlX2VuY29kaW5nKTogVXNlIGRlY2xfaXNfdGVtcGxhdGVfaWQuCgkod3JpdGVfbmFtZSk6IExpa2V3aXNlLiAgSGFuZGxlIHR5cGVfZGVjbHMuICBHZXQgbWFpbiB2YXJpYW50IG9mCgl0eXBlIGRlY2xzLgoJKHdyaXRlX25lc3RlZF9uYW1lKTogTGlrZXdpc2UuCgkod3JpdGVfcHJlZml4KTogTGlrZXdpc2UuCgkod3JpdGVfdGVtcGxhdGVfcHJlZml4KTogTGlrZXdpc2UuCgkod3JpdGVfc3BlY2lhbF9uYW1lX2NvbnN0cnVjdG9yKTogUmVtb3ZlIGRlZnVuY3QgcHJvZHVjdGlvbiBmcm9tCgljb21tZW50LgoJKHdyaXRlX2JhcmVfZnVuY3Rpb25fdHlwZSk6IFJlbW92ZSBjb21tZW50IGFib3V0IGFic2VudCBwYXJhbWV0ZXIuCgkod3JpdGVfdGVtcGxhdGVfdGVtcGxhdGVfYXJnKTogQWRkIG1pc3NpbmcgZ3JhbW1hciBwcm9kdWN0aW9uIHRvCgljb21tZW50LgoKMjAwMC0wNy0yNyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IElmIGNvbW1vbl90eXBlIHByb2R1Y2VzIGEgbm9uLXR5cGVkZWYKCXR5cGUgZm9yIGEgdHlwZWRlZiwganVzdCB1c2UgdGhlIG9sZCB0eXBlLgoKMjAwMC0wNy0yNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZnVuY3Rpb25fZGVwdGgpOiBEZWNsYXJlLgoJKHZlcmlmeV9zdG10X3RyZWUpOiBMaWtld2lzZS4KCShmaW5kX3RyZWUpOiBMaWtld2lzZS4KCSogZGVjbC5jIChmdW5jdGlvbl9kZXB0aCk6IEdpdmUgaXQgZXh0ZXJuYWwgbGlua2FnZS4KCSogb3B0aW1pemUuYyAob3B0aW1pemVfZnVuY3Rpb24pOiBJbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBpdC4KCSogdHJlZS5jICh2ZXJpZnlfc3RtdF90cmVlX3IpOiBOZXcgZnVuY3Rpb24uCgkodmVyaWZ5X3N0bXRfdHJlZSk6IExpa2V3aXNlLgoJKGZpbmRfdHJlZV9yKTogTGlrZXdpc2UuCgkoZmluZF90cmVlKTogTGlrZXdpc2UuCgoyMDAwLTA3LTI3ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHB0LmMgKGZvcl9lYWNoX3RlbXBsYXRlX3Bhcm1fciwgY2FzZSBSRUNPUkRfVFlQRSk6IFVzZQoJVFlQRV9QVFJNRU1GVU5DX1AuCgkqIGNwLXRyZWUuaCAoVFlQRV9URU1QTEFURV9JTkZPKTogQ2hlY2sgZm9yIFRZUEVfTEFOR19TUEVDSUZJQy4KCjIwMDAtMDctMjYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKHN0YXJ0X2NsZWFudXBfZm4pOiBNYXJrIHRoZSBmdW5jdGlvbiBhcyBgaW5saW5lJy4KCSogZGVjbDIuYyAoZ2V0X2d1YXJkKTogQ2FsbCBjcF9maW5pc2hfZGVjbCwgbm90CglyZXN0X29mX2RlY2xfY29tcGlsYXRpb24sIGZvciBsb2NhbCBndWFyZHMuCgkqIGxleC5jIChkb19pZGVudGlmaWVyKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCjIwMDAtMDctMjYJTWFyYyBFc3BpZSA8ZXNwaWVAY3ZzLm9wZW5ic2Qub3JnPgoKCSogcGFyc2UueTogIEFkZCBtaXNzaW5nICc7Jy4KCjIwMDAtMDctMjYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwYXJzZS55IChlbXB0eV9wYXJtcyk6IFVzZSBgKCknLCBub3QgYCguLi4pJywgd2hlbiBpbiB0aGUgc2NvcGUKCW9mIGBleHRlcm4gIkMrKyInLgoKMjAwMC0wNy0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglLaWxsIHN0cmljdF9wcm90b3R5cGUuIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG9ubHkgZm9yCglub24gTk9fSU1QTElDSVRfRVhURVJOX0Mgc3lzdGVtcy4KCSogY3AtdHJlZS5oIChmbGFnX3N0cmljdF9wcm90b3R5cGUpOiBSZW1vdmUuCgkoc3RyaWN0X3Byb3RvdHlwZSk6IFJlbW92ZS4KCShzdHJpY3RfcHJvdG90eXBlc19sYW5nX2MsIHN0cmljdF9wcm90b3R5cGVzX2xhbmdfY3BsdXNwbHVzKTogUmVtb3ZlLgoJKiBkZWNsLmMgKG1heWJlX3B1c2hfdG9fdG9wX2xldmVsKTogQWRqdXN0LgoJKHBvcF9mcm9tX3RvcF9sZXZlbCk6IEFkanVzdC4KCShkZWNsc19tYXRjaCk6IE9ubHkgYWxsb3cgc2xvcHB5IHBhcm0gbWF0Y2hpbmcgZm9yIGFuY2llbnQKCXN5c3RlbSBoZWFkZXJzLgoJKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogQWRqdXN0LgoJKGdyb2tkZWNsYXJhdG9yKTogQWRqdXN0LgoJKiBkZWNsMi5jIChmbGFnX3N0cmljdF9wcm90b3R5cGUpOiBSZW1vdmUuCgkoc3RyaWN0X3Byb3RvdHlwZSk6IFJlbW92ZS4KCShzdHJpY3RfcHJvdG90eXBlc19sYW5nX2MsIHN0cmljdF9wcm90b3R5cGVzX2xhbmdfY3BsdXNwbHVzKTogUmVtb3ZlLgoJKGxhbmdfZl9vcHRpb25zKTogUmVtb3ZlICJzdHJpY3QtcHJvdG90eXBlIi4KCSh1bnN1cHBvcnRlZC1vcHRpb25zKTogQWRkICJzdHJpY3QtcHJvdG90eXBlIi4KCSogbGV4LmMgKGRvX2lkZW50aWZpZXIpOiBBZGp1c3QuCgkoZG9fc2NvcGVkX2lkKTogQWRqdXN0LgoJKiBwYXJzZS55IChlbXB0eV9wYXJtcyk6IEFkanVzdC4KCSogY2xhc3MuYyAocHVzaF9sYW5nX2NvbnRleHQpOiBBZGp1c3QuCgkocG9wX2xhbmdfY29udGV4dCk6IEFkanVzdC4KCSogdHlwZWNrLmMgKGNvbXBfdGFyZ2V0X3Bhcm1zKTogQWRqdXN0LgoKMjAwMC0wNy0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAocG9wbGV2ZWwpOiBEZWFsIHdpdGggYW5vbnltb3VzIHZhcmlhYmxlcyBhdCBmb3Igc2NvcGUuCgkobWF5YmVfaW5qZWN0X2Zvcl9zY29wZV92YXIpOiBMaWtld2lzZS4KCjIwMDAtMDctMjUgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIGRlY2wuYzogUmVtb3ZlIGFsbCBzaWduYWwgaGFuZGxpbmcgY29kZSwgbm93IGRvbmUgaW4gdG9wbGV2LmMuCgoyMDAwLTA3LTIzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChtYWtlX3J0bF9mb3Jfbm9ubG9jYWxfZGVjbCk6IFJld29yay4KCgkqIHB0LmMgKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IEVuc3VyZSB0aGF0IFRZUEVfQ09OVEVYVCBpcyBzZXQKCWNvcnJlY3RseS4KCjIwMDAtMDctMjAgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIGNwLXRyZWUuaDogVXNlIF9fRlVOQ1RJT05fXyBub3QgX19QUkVUVFlfRlVOQ1RJT05fXy4KCURlZmluZSBteV9mcmllbmRseV9hc3NlcnQgYW5kIG15X2ZyaWVuZGx5X2Fib3J0IGFzIG1hY3JvcwoJd2hpY2ggbWF5IGNhbGwgZnJpZW5kbHlfYWJvcnQuICBQcm90b3R5cGUgZnJpZW5kbHkgYWJvcnQsIG5vdAoJbXlfZnJpZW5kbHlfYWJvcnQgb3IgbXlfZnJpZW5kbHlfYXNzZXJ0LgoJKiBkZWNsLmMgKHNpZ25hbF9jYXRjaCk6IFJlcG9ydCB0aGUgc2lnbmFsIGNhdWdodCBpbiB0aGUgZXJyb3IKCW1lc3NhZ2UuICBDYWxsIGZhdGFsIGRpcmVjdGx5LgoJKiB0eXBlY2syLmMgKGFjaywgbXlfZnJpZW5kbHlfYXNzZXJ0KTogRGVsZXRlLgoJKG15X2ZyaWVuZGx5X2Fib3J0KTogUmVuYW1lIHRvIGZyaWVuZGx5X2Fib3J0LiAgRXhwZWN0IGZpbGUsCglsaW5lLCBhbmQgZnVuY3Rpb24gcGFyYW1ldGVycy4gIFJlcG9ydCB0aGUgYWJvcnQgY29kZSwgdGhlbgoJY2FsbCBmYW5jeV9hYm9ydC4gIERvIG5vdCBtYXNrIGFuIGFib3J0IGlmIGVycm9ycyBoYXZlCglhbHJlYWR5IG9jY3VycmVkLgoKMjAwMC0wNy0xOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHR5cGVjay5jIChjb21wX3RhcmdldF9wYXJtcyk6IFJlbW92ZSBvYnNvbGV0ZSBwYXJhbWV0ZXIuCgkoY29tcF90YXJnZXRfdHlwZXMpOiBBZGp1c3QuCgoyMDAwLTA3LTE3ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHR5cGVjay5jIChtYXJrX2FkZHJlc3NhYmxlKTogTmV2ZXIgc2V0IFRSRUVfVVNFRC4KCSogY2FsbC5jIChidWlsZF9jYWxsKTogRG9uJ3QgYWJvcnQgb24gY2FsbHMgdG8gbGlicmFyeSBmdW5jdGlvbnMKCXRoYXQgaGF2ZSBiZWVuIGRlY2xhcmVkIG5vcm1hbGx5LgoKCSogdHlwZWNrLmMgKGJ1aWxkX2JpbmFyeV9vcCk6IEZpeCBncmFtbWFyIGluIHdhcm5pbmcuCgoJKiBleGNlcHRpb24uY2MgKF9fZWhfZnJlZSk6IEZpeCBwcm90b3R5cGUuCgoJKiBkZWNsMi5jIChmaW5pc2hfZGVjbF9wYXJzaW5nKTogSGFuZGxlIFRFTVBMQVRFX0lEX0VYUFIuCgoJKiBkZWNsLmMgKHB1c2hkZWNsKTogSGFuZGxlIHNlZWluZyBhbiBPVkVSTE9BRCBpbgoJSURFTlRJRklFUl9OQU1FU1BBQ0VfVkFMVUUuCgoyMDAwLTA3LTE2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChUSFVOS19WQ0FMTF9PRkZTRVQpOiBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCSogbWV0aG9kLmMgKHVzZV90aHVuayk6IENvcnJlY3QgaGFuZGxpbmcgb2YgdmNhbGwgb2Zmc2V0cy4KCjIwMDAtMDctMTQgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIC5jdnNpZ25vcmU6IHBhcnNlLmggYW5kIHBhcnNlLmMgaGF2ZSBubyBjcC0gcHJlZml4LgoKMjAwMC0wNy0xMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIC5jdnNpZ25vcmU6IE5ldyBmaWxlLgoKMjAwMC0wNy0xMyAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogbGFuZy1zcGVjcy5oOiBVc2UgdGhlIG5ldyBuYW1lZCBzcGVjcy4gIFJlbW92ZSB1bm5lY2Vzc2FyeSBicmFjZXMuCgoyMDAwLTA3LTEyICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZWZpbGUuaW4gKCQoUEFSU0VfSCkpOiBEZXBlbmQgZGlyZWN0bHkgb24gcGFyc2UueS4KCSogcGFyc2UuYzogUmVtb3ZlLgoJKiBwYXJzZS5oOiBMaWtld2lzZS4KCjIwMDAtMDctMTEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChsYXlvdXRfY2xhc3NfdHlwZSk6IEFkZCBwb2ludGVycyB0byB2aXJ0dWFsIGJhc2VzIGFmdGVyCgliYXNlIGNsYXNzZXMgdW5kZXIgdGhlIG9sZCBBQkkuCgoyMDAwLTA3LTEwICBCZW5qYW1pbiBDaGVsZiAgPGNoZWxmQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX2Zvcl9zdG10KTogUmVtb3ZlIGNhbGwgdG8gZW1pdF9saW5lX25vdGUuCgkoZmluaXNoX2NvbnRpbnVlX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl9mb3Jfc3RtdCk6IFJlbW92ZSBjYWxsIHRvIG5vdGVfbGV2ZWxfZm9yX2Zvci4KCShmaW5pc2hfZ290b19zdG10KTogQ2hhbmdlIGNhbGwgZnJvbSBidWlsZF9taW5fbnQKCXRvIGJ1aWxkX3N0bXQuCgkoZmluaXNoX2V4cHJfc3RtdCk6IExpa2V3aXNlLgoJKGJlZ2luX2lmX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl93aGlsZV9zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX3doaWxlX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfcmV0dXJuX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl9mb3Jfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9mb3Jfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9icmVha19zdG10KTogTGlrZXdpc2UuCgkoYmVnaW5fc3dpdGNoX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfY2FzZV9sYWJlbCk6IExpa2V3aXNlLgoJKGdlbnJ0bF90cnlfYmxvY2spOiBMaWtld2lzZS4KCShiZWdpbl90cnlfYmxvY2spOiBMaWtld2lzZS4KCShiZWdpbl9oYW5kbGVyKTogTGlrZXdpc2UuCgkoYmVnaW5fY29tcG91bmRfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9hc21fc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9sYWJlbF9zdG10KTogTGlrZXdpc2UuCgkoYWRkX2RlY2xfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9zdWJvYmplY3QpOiBMaWtld2lzZS4KCShmaW5pc2hfZGVjbF9jbGVhbnVwKTogTGlrZXdpc2UuCgkoZmluaXNoX25hbWVkX3JldHVybl92YWx1ZSk6IExpa2V3aXNlLgoJKHNldHVwX3Z0YmxfcHRyKTogTGlrZXdpc2UuCgkoYWRkX3Njb3BlX3N0bXQpOiBMaWtld2lzZS4KCSogZGVjbC5jIChmaW5pc2hfY29uc3RydWN0b3JfYm9keSk6IExpa2V3aXNlLgoJKGZpbmlzaF9kZXN0cnVjdG9yX2JvZHkpOiBMaWtld2lzZS4KCSogb3B0aW1pemUuYyAoY29weV9ib2R5X3IpOiBMaWtld2lzZS4KCShpbml0aWFsaXplX2lubGluZWRfcGFyYW1ldGVycyk6IExpa2V3aXNlLgoJKGRlY2xhcmVfcmV0dXJuX3ZhcmlhYmxlKTogTGlrZXdpc2UuCgkoZXhwYW5kX2NhbGxfaW5saW5lKTogTGlrZXdpc2UuCgoyMDAwLTA3LTEwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHNlbWFudGljcy5jIChleHBhbmRfYm9keSk6IFN5bmMgaW50ZXJmYWNlIGluZm9ybWF0aW9uCglhdCB0aGUgZW5kIG9mIGZ1bmN0aW9uIGJvZHkgZXhwYW5zaW9uLgoKMjAwMC0wNy0wOSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBpbml0LmMgKGJ1aWxkX25ld18xKTogQmFpbCBlYXJseSBpZiB0aGUgY2FsbCB0byBuZXcgZmFpbHMuCgoJKiBkZWNsLmMgKGNvbXB1dGVfYXJyYXlfaW5kZXhfdHlwZSk6IENoZWNrIHNwZWNpZmljYWxseSBmb3IKCWFuIElOVEVHRVJfQ1NULCBub3QganVzdCBUUkVFX0NPTlNUQU5ULgoKCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBEb24ndCBjYWxsIGR1cGxpY2F0ZV9kZWNscyBvbgoJdGhlIERFQ0xfVEVNUExBVEVfUkVTVUxULgoJKGRlY2xzX21hdGNoKTogUmV0dXJuIDAgaWYgdGhlIERFQ0xfVEVNUExBVEVfUkVTVUxUcyBoYXZlIGRpZmZlcmVudAoJY29kZXMuCgoJKiBlcnJvci5jIChkdW1wX3RlbXBsYXRlX2JpbmRpbmdzKTogRG9uJ3QgY3Jhc2ggaWYgd2UgaGFkIGFuCglpbnZhbGlkIGFyZ3VtZW50IGxpc3QuCgoJKiB0eXBlY2suYyAoY19leHBhbmRfc3RhcnRfY2FzZSk6IERvIG5hcnJvd2luZyBoZXJlLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX3N3aXRjaF9jb25kKTogTm90IGhlcmUuCgoyMDAwLTA3LTA5ICBIaWR2ZWdpIFpvbGkgIDxoem9saUBhdXN0aW4uaWJtLmNvbT4KCgkqIHBhcnNlLnkgKGFzbV9jbG9iYmVycyk6IERvIHN0cmluZyBjb25jYXRlbmF0aW9uLgoKMjAwMC0wNy0wOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAocHVzaHRhZyk6IERvbid0IHB1dCBsb2NhbCBjbGFzc2VzIGluIHRlbXBsYXRlIGZ1bmN0aW9ucwoJb24gdGhlIGxvY2FsX2NsYXNzZXMgbGlzdC4KCjIwMDAtMDctMDQgIFNjb3R0IFNueWRlciAgPHNueWRlckBmbmFsLmdvdj4KCgkqIGRlY2wyLmMgKGdldF9ndWFyZCk6IEFkZCBtaXNzaW5nIHJldHVybiBmb3Igb2xkIEFCSSBsb2NhbAoJdmFyaWFibGUgY2FzZS4KCjIwMDAtMDctMDkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGNoYXJfdHlwZV9wKTogTmV3IGZ1bmN0aW9uLgoJKiBkZWNsLmMgKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogRG9uJ3QgaW5pdGlhbGl6ZQoJc2lnbmVkX3djaGFyX3R5cGVfbm9kZSBvciB1bnNpZ25lZF93Y2hhcl90eXBlX25vZGUuCgkoY29tcGxldGVfYXJyYXlfdHlwZSk6IEhhbmRsZSBicmFjZS1lbmNsb3NlZCBzdHJpbmctY29uc3RhbnRzLgoJKiBydHRpLmMgKGVtaXRfc3VwcG9ydF90aW5mb3MpOiBSZW1vdmUgI2lmIDAnZCBjb2RlLgoJKiB0cmVlLmMgKGNoYXJfdHlwZV9wKTogTmV3IGZ1bmN0aW9uLgoJKiB0eXBlY2syLmMgKGRpZ2VzdF9pbml0KTogVXNlIGNoYXJfdHlwZV9wLgoKMjAwMC0wNy0wNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKHRzdWJzdCk6IERvbid0IGxheW91dCB0eXBlLCBpZiBpdCdzIGVycm9yX21hcmsuCgoyMDAwLTA3LTA2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAoaW5zdGFudGlhdGVfcGVuZGluZ190ZW1wbGF0ZXMpOiBSZXNldCB0ZW1wbGF0ZSBsZXZlbC4KCjIwMDAtMDctMDUgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogY2FsbC5jIChqb3VzdCk6IERvbid0IGNvbXBsYWluIGFib3V0IGBvcGVyYXRvciBjaGFyICooKScgYmVhdGluZwoJYG9wZXJhdG9yIGNvbnN0IGNoYXIgKigpIGNvbnN0Jy4KCjIwMDAtMDctMDQgIHNjb3R0IHNueWRlciAgPHNueWRlckBmbmFsLmdvdj4KCSAgICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHJlcG8uYyAocmVwb19nZXRfaWQpOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBjbGFzcyB3aXRoIHZpcnR1YWwKCWJhc2VzIGhhcyBhIG51bGwgVFlQRV9CSU5GT19WVEFCTEUuCgoyMDAwLTA3LTA0ICBLZXZpbiBCdWhyICA8YnVockBzdGF0Lndpc2MuZWR1PgoJICAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogcGFyc2UueSAobWVtYmVyX2luaXQpOiBKdXN0IHBhc3MgaW4gdGhlIHR5cGUuCgkqIGluaXQuYyAoZXhwYW5kX21lbWJlcl9pbml0KTogSGFuZGxlIGdldHRpbmcgYSB0eXBlLgoKMjAwMC0wNy0wNCAgTWFydGluIHYuIEz2d2lzICA8bG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlPgoJICAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZGVjbC5jIChmaW5pc2hfZnVuY3Rpb24pOiBXYXJuIGlmIGEgZnVuY3Rpb24gaGFzIG5vIHJldHVybgoJc3RhdGVtZW50LgoJU3VnZ2VzdGVkIGJ5IEFuZHJldyBLb2VuaWcuCgkqIHR5cGVjay5jIChjaGVja19yZXR1cm5fZXhwcik6IERvIHNldCBjdXJyZW50X2Z1bmN0aW9uX3JldHVybnNfdmFsdWUKCWlmIHdlIGdvdCBhbiBlcnJvcl9tYXJrX25vZGUuCgoyMDAwLTA3LTAzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAocHVzaF9kZWNsX25hbWVzcGFjZSk6IFB1c2ggdGhlIG9yaWdpbmFsIG5hbWVzcGFjZS4KCjIwMDAtMDctMDMgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwdC5jIChpbnN0YW50aWF0ZV9jbGFzc190ZW1wbGF0ZSk6IFNldCBDTEFTU1RZUEVfVkJBU0VDTEFTU0VTLgoJKiBzZW1hbnRpY3MuYyAoYmVnaW5fY2xhc3NfZGVmaW5pdGlvbik6IENsZWFyIGl0LgoKMjAwMC0wNy0wMiAgQmVuamFtaW4gQ2hlbGYgIDxjaGVsZkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChnZW5ydGxfZ290b19zdG10KTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKGdlbnJ0bF9leHByX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZGVjbF9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2lmX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfd2hpbGVfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9kb19zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3JldHVybl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2Zvcl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2JyZWFrX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfY29udGludWVfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9zY29wZV9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3N3aXRjaF9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2Nhc2VfbGFiZWwpOiBMaWtld2lzZS4KCShnZW5ydGxfYmVnaW5fY29tcG91bmRfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9maW5pc2hfY29tcG91bmRfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9jb21wb3VuZF9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2FzbV9zdG10KTogTGlrZXdpc2UuCgoJKiBpbml0LmMgKGJlZ2luX2luaXRfc3RtdHMpOiBSZW1vdmUgY2FsbCB0bwoJZ2VucnRsX2JlZ2luX2NvbXBvdW5kX3N0bXQuCgkoZmluaXNoX2luaXRfc3RtdHMpOiBSZW1vdmUgY2FsbCB0byBnZW5ydGxfZmluaXNoX2NvbXBvdW5kX3N0bXQuCgoJKiBzZW1hbnRpY3MuYyAobGFuZ19leHBhbmRfc3RtdCk6IENoYW5nZWQgY2FsbCB0bwoJZ2VucnRsX2NvbXBvdW5kX3N0bXQgdG8gaWdub3JlIHJldHVybiB2YWx1ZS4KCjIwMDAtMDctMDIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtYW5nbGUuYyAoY2Fub25pY2FsaXplX2Zvcl9zdWJzdGl0dXRpb24pOiBSZXR1cm4gdGhlIGNhbm9uaWNhbAoJdmFyaWFudCBvZiBhIHR5cGUuCgoJKiBkZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IFByZXNlcnZlIERFQ0xfT1JJR0lOQUxfVFlQRSBmb3IgYQoJVFlQRV9ERUNMLgoJKiB0eXBlY2suYyAoY29tbW9ucGFybXMpOiBSZW1vdmUgb2JzdGFjayBtYW5pcHVsYXRpb25zLgoKMjAwMC0wNy0wMSAgQmVuamFtaW4gQ2hlbGYgIDxjaGVsZkBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZS1sYW5nLmluIChjYzFwbHVzJChleGVleHQpKTogQWRkZWQgYy1zZW1hbnRpY3Muby4KCgkqIE1ha2VmaWxlLmluIChPQkpTKTogQWRkZWQgLi4vYy1zZW1hbnRpY3Muby4KCShPQkpERVBTKTogTGlrZXdpc2UuCgoJKiBjcC10cmVlLmggKFRSRUVfTEFOR19GTEFHXz8pOiBNb3ZlZCBjb21tb24gZG9jdW1lbnRhdGlvbiB0bwoJLi4vYy1jb21tb24uaC4KCShzdHJ1Y3Qgc3RtdF90cmVlKTogQWRkZWQgY29tbWVudC4KCShjdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQpOiBSZW1vdmVkLgoJKHN0bXRzX2FyZV9mdWxsX2V4cHJzX3ApOiBMaWtld2lzZS4KCShnZW5ydGxfZG9fcHVzaGxldmVsKTogTGlrZXdpc2UuCgkoZ2VucnRsX2NsZWFyX291dF9ibG9jayk6IExpa2V3aXNlLgoJKENPTVBPVU5EX1NUTVRfTk9fU0NPUEUpOiBNb3ZlZCB0byAuLi9jLWNvbW1vbi5oLgoJKERFQ0xfQU5PTl9VTklPTl9FTEVNUyk6IExpa2V3aXNlLgoJKGVtaXRfbG9jYWxfdmFyKTogTGlrZXdpc2UuCgkobWFrZV9ydGxfZm9yX2xvY2FsX3N0YXRpYyk6IExpa2V3aXNlLgoJKGRvX2Nhc2UpOiBMaWtld2lzZS4KCShleHBhbmRfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9kZWNsX2NsZWFudXApOiBMaWtld2lzZS4KCShjX2V4cGFuZF9hc21fb3BlcmFuZHMpOiBMaWtld2lzZS4KCShjX2V4cGFuZF9yZXR1cm4pOiBMaWtld2lzZS4KCShjX2V4cGFuZF9zdGFydF9jYXNlKTogTGlrZXdpc2UuCgoJKiBkZWNsLmMgKG1ha2VfcnRsX2Zvcl9sb2NhbF9zdGF0aWMpOiBNb3ZlZCB0byBjLXNlbWFudGljcy5jLgoJKGVtaXRfbG9jYWxfdmFyKTogTGlrZXdpc2UuCgkoaW5pdGlhbGl6ZV9sb2NhbF92YXIpOiBDaGFuZ2UgcmVmZXJlbmNlIHRvCglzdG10c19hcmVfZnVsbF9leHByc19wIHRvIGNhbGwgdG8gc3RtdHNfYXJlX2Z1bGxfZXhwcnNfcCgpLgoJQ2hhbmdlIHJlZmVyZW5jZSB0byBzdG10c19hcmVfZnVsbF9leHByc19wIHRvCgljdXJyZW50X3N0bXRfdHJlZS0+c3RtdHNfYXJlX2Z1bGxfZXhwcnNfcC4KCShwdXNoX2NwX2Z1bmN0aW9uX2NvbnRleHQpOiBMaWtld2lzZS4KCgkqIGV4cGVjdC5jIChleHBhbmRfdGhyb3cpOiBDaGFuZ2UgcmVmZXJlbmNlIHRvCglzdG10c19hcmVfZnVsbF9leHByc19wLgoKCSogaW5pdC5jIChidWlsZF9hZ2dyX2luaXQpOiBDaGFuZ2UgcmVmZXJlbmNlIHRvCglzdG10c19hcmVfZnVsbF9leHByc19wLgoJKGJ1aWxkX3ZlY19pbml0KTogTGlrZXdpc2UuCgoJKiBvcHRpbWl6ZS5jIChtYXliZV9jbG9uZV9ib2R5KTogQ2hhbmdlIHJlZmVyZW5jZSB0bwoJY3VycmVudF9mdW5jdGlvbl9uYW1lX2RlY2xhcmVkIHRvCgljcF9mdW5jdGlvbl9jaGFpbi0+bmFtZV9kZWNsYXJlZC4KCgkqIHB0LmMgKGluc3RhbnRpYXRlX2RlY2wpOiBDaGFuZ2UgcmVmZXJlbmNlIHRvCgljdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQgdG8KCWNwX2Z1bmN0aW9uX2NoYWluLT5uYW1lX2RlY2xhcmVkLgoKCSogc2VtYW50aWNzLmMgKGV4cGFuZF9jb25kKTogTW92ZWQgZGVjbGFyYXRpb24gdG8gYy1jb21tb24uaC4KCShnZW5ydGxfZG9fcHVzaGxldmVsKTogTW92ZWQgdG8gYy1zZW1hbnRpY3MuYy4KCShnZW5ydGxfY2xlYXJfb3V0X2Jsb2NrKTogTGlrZXdpc2UuCgkoZ2VucnRsX2dvdG9fc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9leHByX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZGVjbF9zdG10KTogTGlrZXdpc2UuCgkoZ2VybnRsX2lmX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfd2hpbGVfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9kb19zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3JldHVybl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2Zvcl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2JyZWFrX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfY29udGludWVfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9zY29wZV9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3N3aXRjaF9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2Nhc2VfbGFiZWwpOiBMaWtld2lzZS4KCShnZW5ydGxfYmVnaW5fY29tcG91bmRfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9maW5pc2hfY29tcG91bmRfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9jb21wb3VuZF9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2FzbV9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2RlY2xfY2xlYW51cCk6IExpa2V3aXNlLgoJKGV4cGFuZF9jb25kKTogTGlrZXdpc2UuCgkoZXhwYW5kX3N0bXQpOiBSZW5hbWVkIHRvIC4uLgoJKGxhbmdfZXhwYW5kX3N0bXQpOiAuLi4gdGhpcy4KCShsYW5nX2V4cGFuZF9leHByX3N0bXQpOiBJbml0aWFsaXplLgoJKHNldF9jdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQpOiBMaWtld2lzZS4KCShzdG10c19hcmVfZnVsbF9leHByc19wKTogTGlrZXdpc2UuCgkoY3VycmVudF9mdW5jdGlvbl9uYW1lX2RlY2xhcmVkKTogTGlrZXdpc2UuCgkoYW5vbl9hZ2dyX3R5cGVfcCk6IExpa2V3aXNlLgoJKGRvX3BvcGxldmVsKTogQ2hhbmdlIHJlZmVyZW5jZSB0bwoJc3RtdHNfYXJlX2Z1bGxfZXhwcnNfcCB0byBjYWxsIHRvIHN0bXRzX2FyZV9mdWxsX2V4cHJzX3AoKS4KCUNoYW5nZSByZWZlcmVuY2UgdG8gc3RtdHNfYXJlX2Z1bGxfZXhwcnNfcCB0bwoJY3VycmVudF9zdG10X3RyZWUtPnN0bXRzX2FyZV9mdWxsX2V4cHJzX3AuCgkoYWRkX3RyZWUpOiBMaWtld2lzZS4KCShmaW5pc2hfZXhwcl9zdG10KTogTGlrZXdpc2UuCgkocHJlcF9zdG10KTogTGlrZXdpc2UuCgkobGFuZ19leHBhbmRfc3RtdCk6IExpa2V3aXNlLgoJKGJlZ2luX2NvbXBvdW5kX3N0bXQpOiBDaGFuZ2UgcmVmZXJlbmNlIHRvCgljdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQgdG8KCWNwX2Z1bmN0aW9uX2NoYWluLT5uYW1lX2RlY2xhcmVkIGFuZCBjYWxsIHRvCgljdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQoKS4KCShzZXR1cF92dGJsX3B0cik6IExpa2V3aXNlLgoJKGdlbnJ0bF9kb19wb3BsZXZlbCk6IFJlbW92ZWQuCgoyMDAwLTA2LTMwICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGluaXQuYyAoaW5pdF9pbml0X3Byb2Nlc3NpbmcpOiBHbyBiYWNrIHRvIGFsaWduaW5nIGxpa2UKCWRvdWJsZV90eXBlX25vZGUgZm9yIG9sZCBBQkkuCgkoZ2V0X2Nvb2tpZV9zaXplKTogTWFrZSBjb29raWUgbGFyZ2VyIGlmIHdlIGdldCBhIHR5cGUgdGhhdCBuZWVkcwoJbW9yZSBhbGlnbm1lbnQuCgkoYnVpbGRfdmVjX2RlbGV0ZSk6IENhbGwgaXQuCgoJKiB0eXBlY2suYyAocXVhbGlmeV90eXBlX3JlY3Vyc2l2ZSk6IE5ldyBmbi4KCShjb21wb3NpdGVfcG9pbnRlcl90eXBlKTogVXNlIGl0LgoJKGJ1aWxkX2JpbmFyeV9vcCk6IFVzZSBjb21wb3NpdGVfcG9pbnRlcl90eXBlLgoKMjAwMC0wNi0yNCAgQ2FybG9zIE8nUnlhbiAgPGNvcnlhbkBjcy53dXN0bC5lZHU+CgkgICAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiB0eXBlY2suYyAoY2hlY2tfcmV0dXJuX2V4cHIpOiBEb24ndCBjb21wbGFpbiBhYm91dCByZXR1cm5pbmcKCU5VTEwgZnJvbSBvcGVyYXRvciBuZXcgaWYgLWZjaGVjay1uZXcuCgkqIGNwLXRyZWUuaDogRGVjbGFyZSBmbGFnX2NoZWNrX25ldyBoZXJlLgoJKiBpbml0LmM6IE5vdCBoZXJlLgoKMjAwMC0wNi0yOCAgQWxleCBTYW11ZWwgIDxzYW11ZWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG1hbmdsZS5jIChmaW5kX3N1YnN0aXR1dGlvbik6IFVzZSBzYW1lX3R5cGVfcC4KCSh3cml0ZV9lbmNvZGluZyk6IERvbid0IGNoZWNrIGZvciBzdWJzdGl0dXRpb25zLgoKMjAwMC0wNi0zMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHBhcnNlLnkgKGV4cHJfbm9fY29tbWFfcmFuZ2xlKTogTmV3IG5vbi10ZXJtaW5hbC4KCSh0ZW1wbGF0ZV9wYXJtKTogVXNlIGl0IGZvciBkZWZhdWx0IHBhcmFtZXRlciBjYXNlLgoJKHRlbXBsYXRlX2FyZyk6IFVzZSBpdC4KCShleHByX25vX2NvbW1hcyk6IFJlbW92ZSBjb21tZW50ZWQgb3V0IHVuZGVmaW5lZCBleHRlbnNpb25zLgoJKiBNYWtlZmlsZS5pbiAoQ09ORkxJQ1RTKTogQWRqdXN0IHRvIDMzIHMvciAmIDQ4IHIvci4KCSogcGFyc2UuaCwgcGFyc2UuYzogUmVidWlsdC4KCjIwMDAtMDYtMzAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzZW1hbnRpY3MuYyAoZ2VucnRsX2FzbV9zdG10KTogRG9uJ3QgZGVjYXkgaW5wdXQgb3BlcmFuZHMgaGVyZS4KCShmaW5pc2hfYXNtX3N0bXQpOiBEbyBpdCBoZXJlLCBpbnN0ZWFkLgoKCSogY3AtdHJlZS5oIChyaWRwb2ludGVycyk6IERvbid0IGRlY2xhcmUuCgkqIGRlY2wuYyAocmVjb3JkX2J1aWx0aW5fdHlwZSk6IFVzZSBDUF9SSURfTUFYIGluc3RlYWQgb2YgUklEX01BWC4KCShyZWNvcmRfYnVpbHRpbl9qYXZhX3R5cGUpOiBMaWtld2lzZS4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IExpa2V3aXNlLgoJKiBsZXguYzogTW92ZSBpbmNsdXNpb24gb2YgbGV4LmguCgkocmlkcG9pbnRlcnMpOiBEb24ndCBkZWZpbmUuCgkoaW5pdF9wYXJzZSk6IEluaXRpYWxpemUgcmlwZG9pbnRlcnMuICBVc2UgQ1BfUklEX01BWCBpbnN0ZWFkIG9mCglSSURfTUFYLgoJKiBsZXguaCAoZW51bSByaWQpOiBSZW5hbWUgdG8gLi4uCgkoZW51bSBjcF9yaWQpOiAuLi4gdGhpcy4KCShyaWRwb2ludGVycyk6IERvbid0IGRlY2xhcmUuCgkqIHBhcnNlLnk6IE1vdmUgaW5jbHVzaW9uIG9mIGxleC5oLgoJKiBwYXJzZS5jOiBSZWdlbmVyYXRlZC4KCSogc3Bldy5jOiBNb3ZlIGluY2x1c2lvbiBvZiBsZXguaC4KCgkqIGNwLXRyZWUuaCAoc3RydWN0IGxhbmd1YWdlX2Z1bmN0aW9uKTogUmVtb3ZlIHRlbXBfbmFtZV9jb3VudGVyLgoJKHRlbXBfbmFtZV9jb3VudGVyKTogUmVtb3ZlLgoJKGdldF90ZW1wX25hbWUpOiBDaGFuZ2UgcHJvdG90eXBlLgoJKGdldF9ndWFyZCk6IE5ldyBmdW5jdGlvbi4KCShnZXRfZ3VhcmRfY29uZCk6IExpa2V3aXNlLgoJKHNldF9ndWFyZCk6IExpa2V3aXNlLgoJKiBjdnQuYyAoYnVpbGRfdXBfcmVmZXJlbmNlKTogQWRqdXN0IGNhbGwgdG8gZ2V0X3RlbXBfbmFtZS4KCSogZGVjbC5jIChleHBhbmRfc3RhdGljX2luaXQpOiBVc2UgZ2V0X2d1YXJkIGFuZCBmcmllbmRzIHRvCglpbXBsZW1lbnQgZ3VhcmQgdmFyaWFibGVzLgoJKiBkZWNsMi5jIChnZXRfdGVtcF9uYW1lKTogQXNzdW1lIHRoYXQgdGhlIHZhcmlhYmxlcyBjcmVhdGVkIGFyZQoJYWx3YXlzIHN0YXRpYy4KCShnZXRfc2VudHJ5KTogUmVuYW1lIHRvIC4uLgoJKGdldF9ndWFyZCk6IC4uLiB0aGlzLiAgSW1wbGVtZW50IG5ldyBBQkkgZ3VhcmQJdmFyaWFibGVzLgoJKGdldF9ndWFyZF9iaXRzKTogTmV3IGZ1bmN0aW9uLgoJKGdldF9ndWFyZF9jb25kKTogTGlrZXdpc2UuCgkoc2V0X2d1YXJkKTogTGlrZXdpc2UuCgkoc3RhcnRfc3RhdGljX2luaXRpYWxpemF0aW9uX29yX2Rlc3RydWN0aW9uKTogVXNlIHRoZW0uCgkoZG9fc3RhdGljX2luaXRpYWxpemF0aW9uKTogUmVwbGFjZSBzZW50cnkgd2l0aCBndWFyZCB0aHJvdWdob3V0LgoJKGRvX3N0YXRpY19kZXN0cnVjdGlvbik6IExpa2V3aXNlLgoJKiBpbml0LmMgKGNyZWF0ZV90ZW1wb3JhcnlfdmFyKTogQWRkIGNvbW1lbnQuCgoyMDAwLTA2LTI4ICBBbGV4IFNhbXVlbCAgPHNhbXVlbEBjb2Rlc291cmNlcnkuY29tPgoKCSogbWFuZ2xlLmMgKGZpbmRfc3Vic3RpdHV0aW9uKTogVXNlIHNhbWVfdHlwZV9wLgoJKHdyaXRlX2VuY29kaW5nKTogRG9uJ3QgY2hlY2sgZm9yIHN1YnN0aXR1dGlvbnMuCgoyMDAwLTA2LTMwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcGFyc2UueSAoZXhwcl9ub19jb21tYV9yYW5nbGUpOiBOZXcgbm9uLXRlcm1pbmFsLgoJKHRlbXBsYXRlX3Bhcm0pOiBVc2UgaXQgZm9yIGRlZmF1bHQgcGFyYW1ldGVyIGNhc2UuCgkodGVtcGxhdGVfYXJnKTogVXNlIGl0LgoJKGV4cHJfbm9fY29tbWFzKTogUmVtb3ZlIGNvbW1lbnRlZCBvdXQgdW5kZWZpbmVkIGV4dGVuc2lvbnMuCgkqIE1ha2VmaWxlLmluIChDT05GTElDVFMpOiBBZGp1c3QgdG8gMzMgcy9yICYgNDggci9yLgoJKiBwYXJzZS5oLCBwYXJzZS5jOiBSZWJ1aWx0LgoKMjAwMC0wNi0yOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZmxhZ19jb25zdF9zdHJpbmdzKTogUmVtb3ZlLgoJKHdhcm5fcGFyZW50aGVzZXMpOiBMaWtld2lzZS4KCSh3YXJuX2Zvcm1hdCk6IExpa2V3aXNlLgoJKGNvbW1vbl90eXBlKTogTGlrZXdpc2UuCgkoZGVmYXVsdF9jb252ZXJzaW9uKTogTGlrZXdpc2UuCgkoYnVpbGRfYmluYXJ5X29wKTogTGlrZXdpc2UuCgkoY3BfYnVpbGRfYmluYXJ5X29wKTogTmV3IG1hY3JvLgoJKiBjYWxsLmMgKGJ1aWxkX25ld19vcCk6IFVzZSBjcF9idWlsZF9iaW5hcnlfb3AgaW5zdGVhZCBvZgoJYnVpbGRfYmluYXJ5X29wLgoJKiBjbGFzcy5jIChidWlsZF92dGFibGVfZW50cnlfcmVmKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoZXhwYW5kX3N0YXRpY19pbml0KTogTGlrZXdpc2UuCgkoY29tcHV0ZV9hcnJheV9pbmRleF90eXBlKTogTGlrZXdpc2UuCgkoYnVpbGRfZW51bWVyYXRvcik6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChkZWxldGVfc2FuaXR5KTogTGlrZXdpc2UuCgkoc3RhcnRfc3RhdGljX2luaXRpYWxpemF0aW9uX29yX2Rlc3RydWN0aW9uKTogTGlrZXdpc2UuCgkqIGVycm9yLmMgKGR1bXBfdHlwZV9zdWZmaXgpOiBMaWtld2lzZS4KCSogaW5pdC5jIChyZXNvbHZlX29mZnNldF9yZWYpOiBMaWtld2lzZS4KCShidWlsZF9uZXcpOiBMaWtld2lzZS4KCShidWlsZF9uZXdfMSk6IExpa2V3aXNlLgoJKGJ1aWxkX3ZlY19kZWxldGVfMSk6IExpa2V3aXNlLgoJKGJ1aWxkX3ZlY19pbml0KTogTGlrZXdpc2UuCgkoYnVpbGRfZGVsZXRlKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoc3ludGhlc2l6ZV90aW5mb19mbik6IExpa2V3aXNlLgoJKHN5bnRoZXNpemVfdGluZm9fdmFyKTogTGlrZXdpc2UuCgkqIHNlYXJjaC5jIChleHBhbmRfdXBjYXN0X2ZpeHVwcyk6IExpa2V3aXNlLgoJKGZpeHVwX2FsbF92aXJ0dWFsX3VwY2FzdF9vZmZzZXRzKTogTGlrZXdpc2UuCgkqIHR5cGVjay5jIChidWlsZF9hcnJheV9yZWYpOiBMaWtld2lzZS4KCShnZXRfbWVtYmVyX2Z1bmN0aW9uX2Zyb21fcHRyZnVuYyk6IExpa2V3aXNlLgoJKGJ1aWxkX2JpbmFyeV9vcCk6IEFkZCBwYXJhbWV0ZXIuCgkocG9pbnRlcl9pbnRfc3VtKTogVXNlIGNwX2J1aWxkX2JpbmFyeV9vcC4KCShwb2ludGVyX2RpZmYpOiBMaWtld2lzZS4KCShidWlsZF9tb2RpZnlfZXhwcik6IExpa2V3aXNlLgoJKGdldF9kZWx0YV9kaWZmZXJlbmNlKTogTGlrZXdpc2UuCgkoYnVpbGRfcHRybWVtZnVuYyk6IExpa2V3aXNlLgoKMjAwMC0wNi0yOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoU0VUX0RFQ0xfQVJUSUZJQ0lBTCk6IFJlbW92ZS4KCSogZGVjbC5jIChjcmVhdGVfaW1wbGljaXRfdHlwZWRlZik6IEFkanVzdC4KCSogZGVjbDIuYyAoYnVpbGRfYXJ0aWZpY2lhbF9wYXJtKTogQWRqdXN0LgoJKiBtZXRob2QuYyAoaW1wbGljaXRseV9kZWNsYXJlX2ZuKTogQWRqdXN0LgoJKiBwdC5jIChwdXNoX2lubGluZV90ZW1wbGF0ZV9wYXJtc19yZWN1cnNpdmUpOiBBZGp1c3QuCgkocHJvY2Vzc190ZW1wbGF0ZV9wYXJtKTogQWRqdXN0LgoJKG92ZXJsb2FkZWRfdGVtcGxhdGVfbmFtZSk6IEFkanVzdC4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF90ZW1wbGF0ZV90ZW1wbGF0ZV9wYXJtKTogQWRqdXN0LgoKMjAwMC0wNi0yOCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoQ0xFQVJfQklORk9fTkVXX1ZUQUJMRV9NQVJLRUQpOiBSZW1vdmUuCgkqIGNsYXNzLmMgKHVwZGF0ZV92dGFibGVfZW50cnlfZm9yX2ZuKTogQ29ycmVjdCBsb2dpYyBmb3IgZGVjaWRpbmcKCXdoZXJlIHRvIGVtaXQgdGh1bmtzLgoJKGJ1aWxkX3Z0dCk6IEFkanVzdCBjYWxsIHRvIGJ1aWxkX3Z0dF9pbml0cy4KCShidWlsZF92dHRfaW5pdHMpOiBBZGQgcGFyYW1ldGVyIHRvIGluZGljYXRlIHdoZXRoZXIgb3Igbm90CglzdWItVlRUcyBmb3IgdmlydHVhbCBiYXNlcyBzaG91bGQgYmUgaW5jbHVkZWQuICBBZGp1c3QgaGFuZGxpbmcgb2YKCWNvbnN0cnVjdGlvbiB2dGFibGVzLgoJKGdldF9tYXRjaGluZ19iYXNlKTogTmV3IGZ1bmN0aW9uLgoJKGRmc19idWlsZF92dHRfaW5pdHMpOiBSZW5hbWUgdG8gLi4uCgkoZGZzX2J1aWxkX3NlY29uZGFyeV92cHRyX3Z0dF9pbml0cyk6IEFkanVzdCBoYW5kbGluZyBvZgoJY29uc3RydWN0aW9uIHZ0YWJsZXMuCgkoZGZzX2ZpeHVwX2JpbmZvX3Z0YmxzKTogTGlrZXdpc2UuCgkoYnVpbGRfY3Rvcl92dGJsX2dyb3Vwcyk6IEJ1aWxkIGNvbnN0cnVjdGlvbiB2dGFibGVzIGZvciB2aXJ0dWFsCgliYXNlcywgdG9vLgoJKGFjY3VtdWxhdGVfdnRibF9pbml0cyk6IFR3ZWFrIGxvZ2ljIGZvciBkZWNpZGluZyB3aGV0aGVyIG9yIG5vdAoJdG8gYnVpbGQgY29uc3RydWN0aW9uIHZ0YmxzLgoJKGRmc19hY2N1bXVsYXRlX3Z0YmxfaW5pdHMpOiBBZGp1c3QgaGFuZGxpbmcgb2YKCWNvbnN0cnVjdGlvbiB2dGFibGVzLgoKCSogcHQuYyAodHN1YnN0LCBjYXNlIFRFTVBMQVRFX1RFTVBMQVRFX1BBUk0pOiBIYW5kbGUgY3YtcXVhbGlmaWVkCgl0eXBlcyBjb3JyZWN0bHkuCgoyMDAwLTA2LTI3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChncm9rZm5kZWNsKTogU2V0IERFQ0xfQ09OVEVYVCBmb3Igc3RhdGljIGZ1bmN0aW9ucyB0b28uCgoyMDAwLTA2LTI2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogc2VhcmNoLmMgKGhpZGVzKTogUmVtb3ZlLgoJKGlzX3N1Ym9iamVjdF9vZl9wKTogQWRkIG1vc3RfZGVyaXZlZCBwYXJhbWV0ZXIuIFVzZQoJQ0FOT05JQ0FMX0JJTkZPLgoJKGxvb2t1cF9maWVsZF9xdWV1ZV9wKTogQWRqdXN0LgoJKGxvb2t1cF9maWVsZF9yKTogQWRqdXN0LgoKMjAwMC0wNi0yNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wyLmMgKGhhbmRsZV9jbGFzc19oZWFkKTogQmFzaCB0eXBlZGVmcyB0byB0aGUgdHlwZSdzIG1haW4KCWRlY2wuCgoyMDAwLTA2LTI1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChnZW5ydGxfYmVnaW5fc3RtdF9leHByKTogUmVuYW1lIHRvIC4uLgoJKGJlZ2luX2dsb2JhbF9zdG10X2V4cHIpOiAuLi4gdGhpcy4KCShnZW5ydGxfZmluaXNoX3N0bXRfZXhwcik6IFJlbmFtZSB0byAuLi4KCShmaW5pc2hfZ2xvYmFsX3N0bXRfZXhwcik6IC4uLiB0aGlzLgoJKiBpbml0LmMgKGJlZ2luX2luaXRfc3RtdHMpOiBBZGp1c3QgY2FsbHMuCgkoZmluaXNoX2luaXRfc3RtdHMpOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGdlbnJ0bF9iZWdpbl9zdG10X2V4cHIpOiBSZW5hbWUgdG8gLi4uCgkoYmVnaW5fZ2xvYmFsX3N0bXRfZXhwcik6IC4uLiB0aGlzLgoJKGdlbnJ0bF9maW5pc2hfc3RtdF9leHByKTogUmVuYW1lIHRvIC4uLgoJKGZpbmlzaF9nbG9iYWxfc3RtdF9leHByKTogLi4uIHRoaXMuCgoyMDAwLTA2LTI1IFRoZW9kb3JlIFBhcGFkb3BvdWxvIDxUaGVvZG9yZS5QYXBhZG9wb3Vsb0Bzb3BoaWEuaW5yaWEuZnI+CgoJKiBzZWFyY2guYyAobG9va3VwX21lbWJlcik6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgoyMDAwLTA2LTI0ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIGRlY2wuYyAocHVzaGRlY2wpOiBEb24ndCBzZXQgREVDTF9DT05URVhUIGZyb20gY3VycmVudF9uYW1lc3BhY2UuCgkocHVzaF9uYW1lc3BhY2UpOiBTZXQgREVDTF9DT05URVhUIGZvciBhIG5ldyBOQU1FU1BBQ0VfREVDTC4KCjIwMDAtMDYtMjQgIE1hcnRpbiB2LiBM9ndpcyAgPGxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KCgkqIHBhcnNlLnkgKGNvbXBsZXhfZGlyZWN0X25vdHlwZV9kZWNsYXJhdG9yKTogU3VwcG9ydCBnbG9iYWxfc2NvcGUuCgkqIE1ha2VmaWxlLmluOiBBZGp1c3QgY29uZmxpY3QgY291bnQuCgoyMDAwLTA2LTIzICBLcmlhbmcgTGVyZHN1d2FuYWtpaiA8bGVyZHN1d2FAc2NmLnVzYy5lZHU+CgoJKiBwYXJzZS55ICh0ZW1wbGF0ZV9hcmcpOiBDb252ZXJ0IFRFTVBMQVRFX0RFQ0wKCXRoYXQgaXMgYSB0ZW1wbGF0ZSB0ZW1wbGF0ZSBwYXJhbWV0ZXIgdG8KCVRFTVBMQVRFX1RFTVBMQVRFX1BBUk0gaGVyZS4KCgkqIGNwLXRyZWUuZGVmIChURU1QTEFURV9URU1QTEFURV9QQVJNKTogQWRqdXN0IGNvbW1lbnQuCgkqIGNwLXRyZWUuaCAoVEVNUExBVEVfVEVNUExBVEVfUEFSTV9URU1QTEFURV9ERUNMKTogTmV3IG1hY3JvLgoJKGNvcHlfdGVtcGxhdGVfdGVtcGxhdGVfcGFybSk6IEFkanVzdCBwcm90b3R5cGUuCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBSZW1vdmUgZGVhZCBjb2RlLgoJKiBwdC5jIChwcm9jZXNzX3RlbXBsYXRlX3Bhcm0pOiBUaWR5LgoJKGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IENvbnN0cnVjdCBub2RlcyBpbgoJY29weV90ZW1wbGF0ZV90ZW1wbGF0ZV9wYXJtLgoJKHRzdWJzdCk6IFBhc3MgVEVNUExBVEVfREVDTCByYXRoZXIgdGhhbiBJREVOVElGSUVSX05PREUgdG8KCWxvb2t1cF90ZW1wbGF0ZV9jbGFzcy4gIFVzZSBUWVBFX1RJX1RFTVBMQVRFLgoJKiB0cmVlLmMgKGNvcHlfdGVtcGxhdGVfdGVtcGxhdGVfcGFybSk6IEFkZCBORVdBUkdTCglwYXJhbWV0ZXIuCgkobWFwY2FyKTogQWRqdXN0IGNhbGwgdG8gY29weV90ZW1wbGF0ZV90ZW1wbGF0ZV9wYXJtLgoJKiB0eXBlY2suYyAoY29tcHR5cGVzKTogVXNlIFRFTVBMQVRFX1RFTVBMQVRFX1BBUk1fVEVNUExBVEVfREVDTC4KCSogbWV0aG9kLmMgKGJ1aWxkX3RlbXBsYXRlX3RlbXBsYXRlX3Bhcm1fbmFtZXMpOiBDaGFuZ2UgZXJyb3IKCWNvZGUgdG8gYXZvaWQgY29tcGlsYXRpb24gd2FybmluZy4KCgkqIGd4eGludC50ZXhpOiBEb2N1bWVudCB0ZW1wbGF0ZSB0ZW1wbGF0ZSBwYXJhbWV0ZXIKCW5hbWUgbWFuZ2xpbmcuCgoyMDAwLTA2LTIxICBBbGV4IFNhbXVlbCAgPHNhbXVlbEBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZS1sYW5nLmluIChDWFhfTElCMkZVTkNTKTogQWRkIGNwLWRlbWFuZ2xlLm8gYW5kIGR5bi1zdHJpbmcuby4KCShDWFhfTElCMlNSQ1MpOiBBZGQgY3AtZGVtYW5nbGUuYyBhbmQgZHluLXN0cmluZy5jLgoJKGNwLWRlbWFuZ2xlLm8pOiBOZXcgcnVsZS4KCShkeW4tc3RyaW5nLm8pOiBMaWtld2lzZS4KCSogaW5jL2N4eGFiaS5oIChfX2N4YV9kZW1hbmdsZSk6IE5ldyBkZWNsYXJhdGlvbi4KCjIwMDAtMDYtMjIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKEJWX1VTRV9WQ0FMTF9JTkRFWF9QKTogTmV3IG1hY3JvLgoJKEJWX0dFTkVSQVRFX1RIVU5LX1dJVEhfVlRBQkxFX1ApOiBMaWtld2lzZS4KCShsYW5nX2RlY2xfZmxhZ3MpOiBBZGQgZ2VuZXJhdGVfd2l0aF92dGFibGVfcC4gIE1ha2UgdmNhbGxfb2Zmc2V0CglhIHRyZWUsIG5vdCBhbiBpbnQuCgkoVEhVTktfR0VORVJBVEVfV0lUSF9WVEFCTEVfUCk6IE5ldyBtYWNyby4KCShtYWtlX3RodW5rKTogQ2hhbmdlIHByb3RvdHlwZS4KCShlbWl0X3RodW5rKTogUmVuYW1lIHRvIHVzZV90aHVuay4KCShtYW5nbGVfdGh1bmspOiBDaGFuZ2UgcHJvdG90eXBlLgoJKiBjbGFzcy5jIChnZXRfZGVyaXZlZF9vZmZzZXQpOiBTaW1wbGlmeS4KCShjb3B5X3ZpcnR1YWxzKTogQ2xlYXIgQlZfVVNFX1ZDQUxMX0lOREVYX1AgYW5kCglCVl9HRU5FUkFURV9USFVOS19XSVRIX1ZUQUJMRV9QLgoJKGJ1aWxkX3ByaW1hcnlfdnRhYmxlKTogU2ltcGxpZnkuCgkoYWRkX3ZpcnR1YWxfZnVuY3Rpb24pOiBVc2UgQlZfRk4sIHJhdGhlciB0aGFuIFRSRUVfVkFMVUUuCgkoZGZzX2ZpbmRfYmFzZSk6IFJlbW92ZS4KCSh1cGRhdGVfdnRhYmxlX2VudHJ5X2Zvcl9mbik6IENvcnJlY3QgYnVnIGluIGZpbmRpbmcgdGhlIGJhc2UKCXdoZXJlIGEgdmlydHVhbCBmdW5jdGlvbiB3YXMgZmlyc3QgZGVjbGFyZWQuICBGaWd1cmUgb3V0IHdoZXRoZXIKCW9yIG5vdCB0byBlbWl0IGEgdmNhbGwtdGh1bmsgd2l0aCB0aGUgdnRhYmxlcyBpbiB3aGljaCBpdCBhcHBlYXJzLgoJQ29ycmVjdCBsb2dpYyBmb3IgZGVjaWRpbmcgd2hldGhlciB0byB1c2UgYW4gb3JkaW5hcnkgdGh1bmssIG9yIGEKCXZjYWxsIHRodW5rLgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IFJlbW92ZSB1bm5lY3NzYXJ5IGNvZGUuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IFVzZSBzc2l6ZV9pbnQgZm9yIHRoZSBydW5uaW5nIGNvdW50ZXIgb2YKCW5lZ2F0aXZlIGluZGljZXMuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IE9ubHkgdXNlIHZjYWxsIHRodW5rcyB3aGVyZSBuZWNlc3NhcnkuCglNYXJrIHRodW5rcyBhcyBuZWVkaW5nIHRvIGJlIGVtaXR0ZWQgd2l0aCB0aGVpciB2dGFibGVzLCBvciBub3QuCgkoYnVpbGRfdmJhc2Vfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IEFkanVzdCBmb3IgdXNlIG9mIHNzaXplX2ludCBpbgoJaW5kaWNlcy4gIFVzZSBzaXplX2Jpbm9wLgoJKGRmc19idWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogRG9uJ3QgcmVseSBvbgoJQklORk9fUFJJTUFSWV9NQVJLRURfUCBoZXJlLiAgVXNlIEJWX0ZOIGNvbnNpc3RlbnRseS4gIFVzZQoJc2l6ZV9iaW5vcC4KCShidWlsZF9ydHRpX3Z0YmxfZW50cmllcyk6IEFkanVzdCBjYWxsIHRvIGJ1aWxkX3Z0YWJsZV9lbnRyeS4KCShidWlsZF92dGFibGVfZW50cnkpOiBNYXJrIHRodW5rcyBhcyBuZWVkaW5nIHRvIGJlIGVtaXR0ZWQgd2l0aAoJdGhlaXIgdnRhYmxlcywgb3Igbm90LgoJKiBkZWNsLmMgKGxhbmdfbWFya190cmVlKTogTWFyayB0aGUgdmNhbGxfb2Zmc2V0IGluIGEgdGh1bmsuCgkqIGRlY2wyLmMgKG1hcmtfdnRhYmxlX2VudHJpZXMpOiBVc2UgdXNlX3RodW5rIGluc3RlYWQgb2YKCWVtaXRfdGh1bmsuCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IFJlbW92ZSBkZWFkIGNvZGUuICBEdW1wIG5ldyB0aHVuawoJaW5mb3JtYXRpb24uCgkqIGVycm9yLmMgKGR1bXBfZXhwcik6IFVzZSBCVl9GTi4KCSogbWFuZ2xlLmMgKG1hbmdsZV90aHVuayk6IEFkanVzdCBub3cgdGhhdCB2Y2FsbF9vZmZzZXQgaXMgYSB0cmVlLAoJbm90IGFuIGludC4KCSogbWV0aG9kLmMgKG1ha2VfdGh1bmspOiBMaWtld2lzZS4KCShlbWl0X3RodW5rKTogUmVuYW1lIHRvIHVzZV90aHVuay4gIEFsbG93IGNhbGxlcnMgdG8gZGVjaWRlCgl3aGV0aGVyIG9yIG5vdCB0byBhY3R1YWxseSBlbWl0IHRoZSB0aHVuay4gIEFkanVzdCBmb3IgY2hhbmdlcyBpbgoJcmVwcmVzZW50YXRpb24gb2YgdmNhbGwgb2Zmc2V0cy4KCSogc2VhcmNoLmMgKGRmc19nZXRfcHVyZV92aXJ0dWFscyk6IFVzZSBCVl9GTi4KCSogc2VtYW50aWNzLmMgKGVtaXRfYXNzb2NpYXRlZF90aHVua3MpOiBOZXcgZnVuY3Rpb24uCgkoZXhwYW5kX2JvZHkpOiBVc2UgaXQuCgkqIGlyLnRleGk6IEFkanVzdCBkZXNjcmlwdGlvbnMgb2YgdGh1bmtzLgoKMjAwMC0wNi0yMiAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBwdC5jICh0c3Vic3RfZGVjbCwgY2FzZSBGVU5DVElPTl9ERUNMKTogQ2xlYXIgREVDTF9TQVZFRF9UUkVFLgoJKHRzdWJzdF9mcmllbmRfZnVuY3Rpb24pOiBDb3B5IGl0IGhlcmUuCgoJKiBkZWNsLmMgKGdyb2tfb3BfcHJvcGVydGllcyk6IEZpeCB0eXBvLgoKCSogZGVjbDIuYyAoZGVsZXRlX3Nhbml0eSk6IENsYXJpZnkgd2FybmluZywgYXZvaWQgZmFpbHVyZSBvbgoJZGVsZXRpbmcgdm9pZCouCgoJKiBwdC5jIChjaGVja19leHBsaWNpdF9zcGVjaWFsaXphdGlvbik6IENsYXJpZnkgZXJyb3IuCgoJKiBkZWNsLmMgKHB1c2hkZWNsKTogQWxzbyBwdWxsIG91dCBvbmUgb2YgdGhlIEZVTkNUSU9OX0RFQ0xzIGZyb20KCWFuIG9sZCBPVkVSTE9BRCB3aGVuIHdlJ3JlIGRlY2xhcmluZyBhIG5vbi1mdW5jdGlvbi4KCShwdXNoZGVjbCwgZGVzdHJveV9sb2NhbF92YXIpOiBDaGVjayBmb3IgZXJyb3JfbWFya19ub2RlLgoJKHdhcm5fZXh0ZXJuX3JlZGVjbGFyZWRfc3RhdGljKTogQWxzbyBiYWlsIGVhcmx5IGlmCgl3ZSdyZSBhIENPTlNUX0RFQ0wuCgkocHVzaF9vdmVybG9hZGVkX2RlY2wpOiBJZ25vcmUgYW4gb2xkIGVycm9yX21hcmtfbm9kZS4KCjIwMDAtMDYtMjIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGJ1aWxkX3hfdmFfYXJnKTogQ2hlY2sgaWYgaW4gYSB0ZW1wbGF0ZSBkZWNsLgoJKiBwdC5jICh0c3Vic3RfY29weSwgY2FzZSBWQV9BUkdfRVhQUik6IFVzZSBidWlsZF94X3ZhX2FyZy4KCjIwMDAtMDYtMjAgIEFsZXhhbmRyZSBQZXRpdC1CaWFuY28gIDxhcGJpYW5jb0BjeWdudXMuY29tPgoKCSogY2xhc3MuYyAocHVzaF9sYW5nX2NvbnRleHQpOiBUWVBFX05BTUUgZ2V0cyB5b3UgdG8gdGhlIEphdmEKCXR5cGVzIERFQ0xzLgoJKiBkZWNsLmMgKGNoZWNrX2dvdG8pOiBDb21wdXRlZCBnb3RvcyBhc3N1bWVkIE9LLgoKMjAwMC0wNi0yMCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBwdC5jICh0c3Vic3RfZGVjbCwgY2FzZSBUWVBFX0RFQ0wpOiBGaXggdGVzdCBmb3IgVFlQRV9ERUNMcwoJZm9yIHdoaWNoIHdlIGRvbid0IG5lZWQgdG8gbG9vayBmb3IgaW5zdGFudGlhdGlvbnMuCgoyMDAwLTA2LTIxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcGFyc2UueSAocHJvZ3JhbSk6IEFsd2F5cyBjYWxsIGZpbmlzaF90cmFuc2xhdGlvbl91bml0LgoJKiBwYXJzZS5jLCBwYXJzZS5oOiBSZWJ1aWx0LgoKMjAwMC0wNi0yMCAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogbWV0aG9kLmM6IERvbid0IGluY2x1ZGUgaGFyZC1yZWctc2V0LmguCgoyMDAwLTA2LTIwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcnR0aS5jIChnZXRfYmFzZV9vZmZzZXQpOiBDb3BlIHdoZW4gdmJhc2UgZmllbGQgaXMgaW4gYSBiYXNlLgoKMjAwMC0wNi0yMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoYnVpbGRfY29uZGl0aW9uYWxfZXhwcik6IFVzZSBWT0lEX1RZUEVfUC4KCSogY3Z0LmMgKGNwX2NvbnZlcnRfdG9fcG9pbnRlcik6IExpa2V3aXNlLgoJKGNvbnZlcnRfdG9fdm9pZCk6IExpa2V3aXNlLgoJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBMaWtld2lzZS4KCSogZXhjZXB0LmMgKGNvbXBsZXRlX3B0cl9yZWZfb3Jfdm9pZF9wdHJfcCk6IExpa2V3aXNlLgoJKiBpbml0LmMgKGJ1aWxkX2RlbGV0ZSk6IExpa2V3aXNlLgoJKiBtZXRob2QuYyAoZW1pdF90aHVuayk6IExpa2V3aXNlLgoJKiBvcHRtaXplLmMgKGRlY2xhcmVfcmV0dXJuX3ZhcmlhYmxlKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoZ2V0X3RpbmZvX2RlY2xfZHluYW1pYyk6IExpa2V3aXNlLgoJKGdldF90eXBlaWQpOiBMaWtld2lzZS4KCShidWlsZF9keW5hbWljX2Nhc3RfMSk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoY29tcG9zaXRlX3BvaW50ZXJfdHlwZSk6IExpa2V3aXNlLgoJKGNvbW1vbl90eXBlKTogTGlrZXdpc2UuCgkoYnVpbGRfaW5kaXJlY3RfcmVmKTogTGlrZXdpc2UuCgkoYnVpbGRfYmluYXJ5X29wKTogTGlrZXdpc2UuCgkoYnVpbGRfeF9jb21wb3VuZF9leHByKTogTGlrZXdpc2UuCgkoY2hlY2tfcmV0dXJuX2V4cHIpOiBMaWtld2lzZS4KCSogdHlwZWNrMi5jIChhZGRfZXhjZXB0aW9uX3NwZWNpZmllcik6IExpa2V3aXNlLgoKCSogbWFuZ2xlLmMgKHdyaXRlX21ldGhvZF9wYXJtcyk6IFVzZSBkaXJlY3QgY29tcGFyaXNvbiBmb3IgZW5kCglvZiBwYXJtbGlzdC4KCjIwMDAtMDYtMTkgIEJlbmphbWluIENoZWxmICA8Y2hlbGZAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZ2VucnRsX3RyeV9ibG9jayk6IERlY2xhcmUgZnVuY3Rpb24uCgkoZ2VucnRsX2hhbmRsZXIpOiBMaWtld2lzZS4KCShnZW5ydGxfY2F0Y2hfYmxvY2spOiBMaWtld2lzZS4KCShnZW5ydGxfY3Rvcl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3N1Ym9iamVjdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9kZWNsX2NsZWFudXApOiBMaWtld2lzZS4KCShnZW5ydGxfZG9fcG9wbGV2ZWwpOiBMaWtld2lzZS4KCShnZW5ydGxfZG9fcHVzaGxldmVsKTogTGlrZXdpc2UuCgkoZ2VucnRsX2NsZWFyX291dF9ibG9jayk6IExpa2V3aXNlLgoJKGdlbnJ0bF9nb3RvX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZXhwcl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2RlY2xfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9pZl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3doaWxlX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZG9fc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9yZXR1cm5fc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9mb3Jfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9icmVha19zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2NvbnRpbnVlX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfc2NvcGVfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9zd2l0Y2hfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9jYXNlX2xhYmVsKTogTGlrZXdpc2UuCgkoZ2VucnRsX2JlZ2luX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZmluaXNoX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfY29tcG91bmRfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9hc21fc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9uYW1lZF9yZXR1cm5fdmFsdWUpOiBMaWtld2lzZS4KCShnZW5ydGxfYmVnaW5fc3RtdF9leHByKTogTGlrZXdpc2UuCgkoZ2VucnRsX2ZpbmlzaF9zdG10X2V4cHIpOiBMaWtld2lzZS4KCShmaW5pc2hfZm9yX3N0bXQpOiBSZW1vdmVkIGZpcnN0IGFyZ3VtZW50LgoJKGZpbmlzaF9zd2l0Y2hfc3RtdCk6IExpa2V3aXNlLgoKCSogc2VtYW50aWNzLmMgKGdlbnJ0bF90cnlfYmxvY2spOiBEZWZpbmUgZnVuY3Rpb24uCgkoZ2VucnRsX2hhbmRsZXIpOiBMaWtld2lzZS4KCShnZW5ydGxfY2F0Y2hfYmxvY2spOiBMaWtld2lzZS4KCShnZW5ydGxfY3Rvcl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3N1Ym9iamVjdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9kZWNsX2NsZWFudXApOiBMaWtld2lzZS4KCShnZW5ydGxfZG9fcG9wbGV2ZWwpOiBMaWtld2lzZS4KCShnZW5ydGxfZG9fcHVzaGxldmVsKTogTGlrZXdpc2UuCgkoZ2VucnRsX2NsZWFyX291dF9ibG9jayk6IExpa2V3aXNlLgoJKGdlbnJ0bF9nb3RvX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZXhwcl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2RlY2xfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9pZl9zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX3doaWxlX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZG9fc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9yZXR1cm5fc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9mb3Jfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9icmVha19zdG10KTogTGlrZXdpc2UuCgkoZ2VucnRsX2NvbnRpbnVlX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfc2NvcGVfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9zd2l0Y2hfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9jYXNlX2xhYmVsKTogTGlrZXdpc2UuCgkoZ2VucnRsX2JlZ2luX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfZmluaXNoX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCShnZW5ydGxfY29tcG91bmRfc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9hc21fc3RtdCk6IExpa2V3aXNlLgoJKGdlbnJ0bF9uYW1lZF9yZXR1cm5fdmFsdWUpOiBMaWtld2lzZS4KCShnZW5ydGxfYmVnaW5fc3RtdF9leHByKTogTGlrZXdpc2UuCgkoZ2VucnRsX2ZpbmlzaF9zdG10X2V4cHIpOiBMaWtld2lzZS4KCShmaW5pc2hfZm9yX3N0bXQpOiBSZW1vdmVkIGZpcnN0IGFyZ3VtZW50IGFuZCBnZW5lcmF0ZSBydGwKCXNwZWNpZmljIGNvZGUuCgkoZmluaXNoX3N3aXRjaF9zdG10KTogTGlrZXdpc2UuCgkoZG9fcG9wbGV2ZWwpOiBSZW1vdmVkIGdlbmVyYXRlIHJ0bCBzcGVjaWZpYyBjb2RlLgoJKGRvX3B1c2hsZXZlbCk6IExpa2V3aXNlLgoJKGFkZF90cmVlKTogTGlrZXdpc2UuCgkoZmluaXNoX2dvdG9fc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9leHByX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl9pZl9zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX2lmX3N0bXRfY29uZCk6IExpa2V3aXNlLgoJKGZpbmlzaF90aGVuX2NsYXVzZSk6IExpa2V3aXNlLgoJKGJlZ2luX2Vsc2VfY2xhdXNlKTogTGlrZXdpc2UuCgkoZmluaXNoX2Vsc2VfY2xhdXNlKTogTGlrZXdpc2UuCgkoZmluaXNoX2lmX3N0bXQpOiBMaWtld2lzZS4KCShjbGVhcl9vdXRfYmxvY2spOiBMaWtld2lzZS4KCShiZWdpbl93aGlsZV9zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX3doaWxlX3N0bXRfY29uZCk6IExpa2V3aXNlLgoJKGZpbmlzaF93aGlsZV9zdG10KTogTGlrZXdpc2UuCgkoYmVnaW5fZG9fc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9kb19ib2R5KTogTGlrZXdpc2UuCgkoZmluaXNoX2RvX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfcmV0dXJuX3N0bXQpOiBMaWtld2lzZS4KCShiZWdpbl9mb3Jfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9mb3JfaW5pdF9zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX2Zvcl9jb25kKTogTGlrZXdpc2UuCgkoZmluaXNoX2Zvcl9leHByKTogTGlrZXdpc2UuCgkoZmluaXNoX2JyZWFrX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfY29udGludWVfc3RtdCk6IExpa2V3aXNlLgoJKGJlZ2luX3N3aXRjaF9zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX3N3aXRjaF9jb25kKTogTGlrZXdpc2UuCgkoZmluaXNoX2Nhc2VfbGFiZWwpOiBMaWtld2lzZS4KCShiZWdpbl90cnlfYmxvY2spOiBMaWtld2lzZS4KCShiZWdpbl9mdW5jdGlvbl90cnlfYmxvY2spOiBMaWtld2lzZS4KCShmaW5pc2hfdHJ5X2Jsb2NrKTogTGlrZXdpc2UuCgkoZmluaXNoX2NsZWFudXBfdHJ5X2Jsb2NrKTogTGlrZXdpc2UuCgkoZmluaXNoX2NsZWFudXApOiBMaWtld2lzZS4KCShmaW5pc2hfZnVuY3Rpb25fdHJ5X2Jsb2NrKTogTGlrZXdpc2UuCgkoZmluaXNoX2hhbmRsZXJfc2VxdWVuY2UpOiBMaWtld2lzZS4KCShmaW5pc2hfZnVuY3Rpb25faGFuZGxlcl9zZXF1ZW5jZSk6IExpa2V3aXNlLgoJKGJlZ2luX2hhbmRsZXIpOiBMaWtld2lzZS4KCShmaW5pc2hfaGFuZGxlcl9wYXJtcyk6IExpa2V3aXNlLgoJKGJlZ2luX2NhdGNoX2Jsb2NrKTogTGlrZXdpc2UuCgkoZmluaXNoX2hhbmRsZXIpOiBMaWtld2lzZS4KCShiZWdpbl9jb21wb3VuZF9zdG10KTogTGlrZXdpc2UuCgkoZmluaXNoX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfYXNtX3N0bXQpOiBMaWtld2lzZS4KCShmaW5pc2hfbGFiZWxfc3RtdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9sYWJlbF9kZWNsKTogTGlrZXdpc2UuCgkoZmluaXNoX3N1Ym9iamVjdCk6IExpa2V3aXNlLgoJKGZpbmlzaF9kZWNsX2NsZWFudXApOiBMaWtld2lzZS4KCShmaW5pc2hfbmFtZWRfcmV0dXJuX3ZhbHVlKTogTGlrZXdpc2UuCgkoYmVnaW5fc3RtdF9leHByKTogTGlrZXdpc2UuCgkoZmluaXNoX3N0bXRfZXhwcik6IExpa2V3aXNlLgoKCSogZGVjbC5jIChpbml0aWFsaXplX2xvY2FsX3Zhcik6IENoYW5nZWQgY2FsbCB0byBmaW5pc2hfZXhwcl9zdG10Cgl0byBjYWxsIGdlbnJ0bF9leHByX3N0bXQgd2hlbiBhcHByb3ByaWF0ZS4KCgkqIGluaXQuYyAoYmVnaW5faW5pdF9zdG10cyk6IENoYW5nZWQgY2FsbHMgdG8gYmVnaW5fc3RtdF9leHByIGFuZAoJYmVnaW5fY29tcG91bmRfZXhwciB0byBjYWxsIGdlbnJ0bF9iZWdpbl9zdG10X2V4cHIgYW5kCglnZW5ydGxfYmVnaW5fY29tcG91bmRfZXhwciB3aGVuIGFwcHJvcHJpYXRlLgoJKGZpbmlzaF9pbml0X3N0bXRzKTogQ2hhbmdlZCBjYWxscyB0byBmaW5pc2hfY29tcG91bmRfZXhwciBhbmQKCWZpbmlzaF9zdG10X2V4cHIgdG8gY2FsbCBnZW5ydGxfZmluaXNoX2NvbXBvdW5kX2V4cHIgYW5kCglnZW5ydGxfZmluaXNoX3N0bXRfZXhwciB3aGVuIGFwcHJvcHJpYXRlLgoJKGV4cGFuZF9kZWZhdWx0X2luaXQpOiBDaGFuZ2VkIGNhbGwgdG8gZmluaXNoX2V4cHJfc3RtdCB0byBjYWxsCglnZW5ydGxfZXhwcl9zdG10IHdoZW4gYXBwcm9wcmlhdGUuCgkoYnVpbGRfdmVjX2luaXQpOiBMaWtld2lzZS4KCgkqIHBhcnNlLnkgKHNpbXBsZV9zdG10KTogUmVtb3ZlZCBmaXJzdCBhcmd1bWVudCBmcm9tIGNhbGwgdG8KCWZpbmlzaF9mb3Jfc3RtdC4gUmVtb3ZlZCBmaXJzdCBhcmd1bWVudCBmcm9tIGNhbGwgdG8KCWZpbmlzaF9zd2l0Y2hfc3RtdC4KCgkqIHBhcnNlLmM6IFJlZ2VuZXJhdGVkLgoKCSogcHQuYyAodHN1YnN0X2V4cHIpOiBSZW1vdmVkIGZpcnN0IGFyZ3VtZW50IGZyb20gY2FsbCB0bwoJZmluaXNoX2Zvcl9zdG10LiBSZW1vdmVkIGZpcnN0IGFyZ3VtZW50IGZyb20gY2FsbCB0bwoJZmluaXNoX3N3aXRjaF9zdG10LgoKMjAwMC0wNi0xNiAgQmVuamFtaW4gQ2hlbGYgIDxjaGVsZkBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChlbnVtIGNwbHVzX3RyZWVfY29kZSk6IENoYW5nZWQgX19EVU1NWSB0bwoJQ1BfRFVNTVlfVFJFRV9DT0RFLiBSZW1vdmUgI2luY2x1ZGUgImMtY29tbW9uLmRlZiIuCgoJKiBsZXguYyAoY3BsdXNfdHJlZV9jb2RlX3R5cGVbXSk6IFJlbW92ZWQgI2luY2x1ZGUgImMtY29tbW9uLmRlZiIuCgkoY3BsdXNfdHJlZV9jb2RlX2xlbmd0aFtdKTogTGlrZXdpc2UuCgkoY3BsdXNfdHJlZV9jb2RlX25hbWVbXSk6IExpa2V3aXNlLgoJKGluaXRfcGFyc2UpOiBBZGRlZCBjYWxsIHRvIGFkZF9jX3RyZWVfY29kZXMuIENoYW5nZWQKCUxBU1RfQU5EX1VOVVNFRF9UUkVFX0NPREUgdG8gTEFTVF9DX1RSRUVfQ09ERS4KCjIwMDAtMDYtMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGZpbmlzaF9tZW1faW5pdGlhbGl6ZXJzKTogRGVjbGFyZS4KCShjb3VudF90cmVlcyk6IExpa2V3aXNlLgoJKiBwYXJzZS55IChiYXNlX2luaXQpOiBVc2UgZmluaXNoX21lbV9pbml0aWFsaXplcnMuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfbWVtX2luaXRpYWxpemVycyk6IE5ldyBmdW5jdGlvbi4KCgkqIHRyZWUuYyAoY291bnRfdHJlZXNfcik6IFByb3RvdHlwZS4gIFVzZSBEQVRBIHBhcmFtZXRlciB0byBzdG9yZQoJdGhlIG51bWJlciBvZiB0cmVlcy4KCShuX3RyZWVzKTogUmVtb3ZlLgoJKGNvdW50X3RyZWVzKTogRG9uJ3QgdXNlIGl0LgoKMjAwMC0wNi0xNSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiB0cmVlLmMgKGNvdW50X3RyZWVzKTogTmV3IGRlYnVnZ2luZyBmdW5jdGlvbi4KCgkqIHR5cGVjay5jIChidWlsZF94X2Z1bmN0aW9uX2NhbGwpOiBVc2UgREVDTF9GVU5DVElPTl9URU1QTEFURV9QLgoJKiBpbml0LmMgKGJ1aWxkX21lbWJlcl9jYWxsKTogUHVsbCBvdXQgdGhlIG5hbWUgb2YgYSBERUNMLgoKCSogTWFrZWZpbGUuaW4gKHNlbWFudGljcy5vLCBwdC5vKTogRGVwZW5kIG9uIFRJTUVWQVJfSC4KCSogc2VtYW50aWNzLmMgKGV4cGFuZF9ib2R5KTogUHVzaCB0byBUVl9JTlRFR1JBVElPTiBoZXJlLgoJKiBvcHRpbWl6ZS5jIChvcHRpbWl6ZV9mdW5jdGlvbik6IE5vdCBoZXJlLgoJKiBwdC5jIChpbnN0YW50aWF0ZV9kZWNsKTogUHVzaCB0byBUVl9QQVJTRS4KCjIwMDAtMDYtMTUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBsYW5ndWFnZV9mdW5jdGlvbik6IFJlbW92ZSB4X2Jhc2VfaW5pdF9saXN0CglhbmQgeF9tZW1iZXJfaW5pdF9saXN0LgoJKGN1cnJlbnRfYmFzZV9pbml0X2xpc3QpOiBSZW1vdmUuCgkoY3VycmVudF9tZW1iZXJfaW5pdF9saXN0KTogTGlrZXdpc2UuCgkoc2V0dXBfdnRibF9wdHIpOiBDaGFuZ2UgcHJvdG90eXBlLgoJKGVtaXRfYmFzZV9pbml0KTogTGlrZXdpc2UuCgkoZXhwYW5kX21lbWJlcl9pbml0KTogTGlrZXdpc2UuCgkocmVpbml0X3BhcnNlX2Zvcl9mdW5jdGlvbik6IFJlbW92ZS4KCSogZGVjbC5jIChzYXZlX2Z1bmN0aW9uX2RhdGEpOiBEb24ndCBjbGVhciB4X2Jhc2VfaW5pdF9saXN0IGFuZAoJeF9tZW1iZXJfaW5pdF9saXN0LgoJKG1hcmtfbGFuZ3VhZ2VfZnVuY3Rpb24pOiBEb24ndCBtYXJrIHRoZW0uCgkqIGluaXQuYyAocGVyZm9ybV9tZW1iZXJfaW5pdCk6IFR3ZWFrIGNvbW1lbnQuCgkoc29ydF9tZW1iZXJfaW5pdCk6IFRha2UgdGhlIGxpc3Qgb2YgaW5pdGlhbGl6ZXJzIGFzIGFuIGFyZ3VtZW50LgoJKHNvcnRfYmFzZV9pbml0KTogTGlrZXdpc2UuCgkoZW1pdF9iYXNlX2luaXQpOiBMaWtld2lzZS4KCShleHBhbmRfbWVtYmVyX2luaXQpOiBSZXR1cm4gdGhlIGluaXRpYWxpemVyLiAgRG9uJ3QgdXNlIGdsb2JhbAoJdmFyaWFibGVzLgoJKiBsZXguYyAocmVpbml0X3BhcnNlX2Zvcl9mdW5jdGlvbik6IFJlbW92ZS4KCSogbWV0aG9kLmMgKGJ1aWxkX3RlbXBsYXRlX3Bhcm1fbmFtZXMpOiBDb3JyZWN0IHN1YnN0aXR1dGlvbi4KCShkb19idWlsZF9jb3B5X2NvbnN0cnVjdG9yKTogRG9uJ3QgdXNlIGN1cnJlbnRfbWVtYmVyX2luaXRfbGlzdAoJYW5kIGN1cnJlbnRfYmFzZV9pbml0X2xpc3QuCgkoc3ludGhlc2l6ZV9tZXRob2QpOiBMaWtld2lzZS4KCSogcGFyc2UueSAoYmFzZV9pbml0KTogU3BsaXQgbWVtLWluaXRpYWxpemVycyBpbnRvCgliYXNlLWluaXRpYWxpemVycyBhbmQgZmllbGQtaW5pdGlhbGl6ZXJzLgoJKG1lbWJlcl9pbml0X2xpc3QpOiBCdWlsZCB1cCB0aGUgbGlzdCBoZXJlLgoJKG1lbWJlcl9pbml0KTogUmV0dXJuIHRoZSBpbml0aWFsaXplci4KCShmbi5kZXBmbik6IERvbid0IHVzZSByZWluaXRfcGFyc2VfZm9yX2Z1bmN0aW9uLgoJKiBwYXJzZS5jOiBSZWdlbmVyYXRlZC4KCSogcHQuYyAoY29udmVydF9ub250eXBlX2FyZ3VtZW50KTogRG9uJ3QgbWFrZSBhbiBBRERSX0VYUFIgb2YgdGhlCglFUlJPUl9NQVJLLgoJKHRzdWJzdF9leHByKTogRG9uJ3QgdXNlIGN1cnJlbnRfbWVtYmVyX2luaXRfbGlzdAoJYW5kIGN1cnJlbnRfYmFzZV9pbml0X2xpc3QuCgkodHN1YnN0X2V4cHJfdmFsdWVzKTogUmVuYW1lIHRvIC4uLgoJKHRzdWJzdF9pbml0aWFsaXplcl9saXN0KTogLi4uIHRoaXMuICBVc2UgY29udmVydF9mcm9tX3JlZmVyZW5jZS4KCSogc2VtYW50aWNzLmMgKHNldHVwX3Z0YmxfcHRyKTogRG9uJ3QgdXNlIGN1cnJlbnRfbWVtYmVyX2luaXRfbGlzdAoJYW5kIGN1cnJlbnRfYmFzZV9pbml0X2xpc3QuCgkoYmVnaW5fZnVuY3Rpb25fZGVmaW5pdGlvbik6IERvbid0IGNhbGwgcmVpbml0X3BhcnNlX2Zvcl9mdW5jdGlvbi4KCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IFVzZSBUUkVFX1ZFQ19MRU5HVEggd2l0aCB2ZWN0b3JzLgoKCSogZXJyb3IuYyAoZHVtcF9leHByKTogSGFuZGxlIEFERFJfRVhQUnMgd2l0aCBSRUZFUkVOQ0VfVFlQRQoJY29ycmVjdGx5LgoKCSogY3AtdHJlZS5oIChERUNMX1BFTkRJTkdfSU5MSU5FX1ApOiBSZWxheCBjaGVja2luZy4KCjIwMDAtMDYtMTQgIEJlbmphbWluIENoZWxmICA8Y2hlbGZAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoSUZfQ09ORCk6IE1vdmUgdG8gYy1jb21tb24uaC4KCShUSEVOX0NMQVVTRSk6IExpa2V3aXNlLgoJKEVMU0VfQ0xBVVNFKTogTGlrZXdpc2UuCgkoV0hJTEVfQ09ORCk6IExpa2V3aXNlLgoJKFdISUxFX0JPRFkpOiBMaWtld2lzZS4KCShET19DT05EKTogTGlrZXdpc2UuCgkoRE9fQk9EWSk6IExpa2V3aXNlLgoJKFJFVFVSTl9FWFBSKTogTGlrZXdpc2UuCgkoRVhQUl9TVE1UX0VYUFIpOiBMaWtld2lzZS4KCShGT1JfSU5JVF9TVE1UKTogTGlrZXdpc2UuCgkoRk9SX0NPTkQpOiBMaWtld2lzZS4KCShGT1JfRVhQUik6IExpa2V3aXNlLgoJKEZPUl9CT0RZKTogTGlrZXdpc2UuCgkoU1dJVENIX0NPTkQpOiBMaWtld2lzZS4KCShTV0lUQ0hfQk9EWSk6IExpa2V3aXNlLgoJKENBU0VfTE9XKTogTGlrZXdpc2UuCgkoQ0FTRV9ISUdIKTogTGlrZXdpc2UuCgkoR09UT19ERVNUSU5BVElPTik6IExpa2V3aXNlLgoJKENPTVBPVU5EX0JPRFkpOiBMaWtld2lzZS4KCShBU01fQ1ZfUVVBTCk6IExpa2V3aXNlLgoJKEFTTV9TVFJJTkcpOiBMaWtld2lzZS4KCShBU01fT1VUUFVUUyk6IExpa2V3aXNlLgoJKEFTTV9JTlBVVFMpOiBMaWtld2lzZS4KCShBU01fQ0xPQkJFUlMpOiBMaWtld2lzZS4KCShERUNMX1NUTVRfREVDTCk6IExpa2V3aXNlLgoJKFNUTVRfRVhQUl9TVE1UKTogTGlrZXdpc2UuCgkoTEFCRUxfU1RNVF9MQUJFTCk6IExpa2V3aXNlLgoJKFNDT1BFX0JFR0lOX1ApOiBMaWtld2lzZS4KCShTQ09QRV9FTkRfUCk6IExpa2V3aXNlLgoJKFNDT1BFX1NUTVRfQkxPQ0spOiBMaWtld2lzZS4KCShTQ09QRV9OVUxMSUZJRURfUCk6IExpa2V3aXNlLgoJKFNDT1BFX05PX0NMRUFOVVBTX1ApOiBMaWtld2lzZS4KCShTQ09QRV9QQVJUSUFMX1ApOiBMaWtld2lzZS4KCShBU01fVk9MQVRJTEVfUCk6IExpa2V3aXNlLgoJKFNUTVRfTElORU5PKTogTGlrZXdpc2UuCgkoU1RNVF9MSU5FTk9fRk9SX0ZOX1ApOiBMaWtld2lzZS4KCgkqIGNwLXRyZWUuZGVmOiBSZW1vdmVkIFNSQ0xPQywgU0laRU9GX0VYUFIsIEFSUk9XX0VYUFIsCglBTElHTk9GX0VYUFIsIEVYUFJfU1RNVCwgQ09NUE9VTkRfU1RNVCwgREVDTF9TVE1ULCBJRl9TVE1ULAoJRk9SX1NUTVQsIFdISUxFX1NUTVQsIERPX1NUTVQsIFJFVFVSTl9TVE1ULCBCUkVBS19TVE1ULAoJQ09OVElOVUVfU1RNVCwgU1dJVENIX1NUTVQsIEdPVE9fU1RNVCwgTEFCRUxfU1RNVCwgQVNNX1NUTVQsCglTQ09QRV9TVE1ULCBDQVNFX0xBQkVMLCBTVE1UX0VYUFIuCgoJKiBNYWtlZmlsZS5pbiAoQ1hYX1RSRUVfSCk6IEFkZGVkICQoc3JjZGlyKS8uLi9jLWNvbW1vbi5kZWYuCgoJKiBNYWtlLWxhbmcuaW4gKENYWF9TUkNTKTogQWRkZWQgJChzcmNkaXIpL2MtY29tbW9uLmRlZi4KCShjYzFwbHVzJChleGVleHQpKTogQWRkZWQgJChzcmNkaXIpL2MtY29tbW9uLmRlZi4KCgkqIGxleC5jIChjcGx1c190cmVlX2NvZGVfdHlwZVtdKTogQWRkZWQgJyNpbmNsdWRlICJjLWNvbW1vbi5kZWYiJy4KCShjcGx1c190cmVlX2NvZGVfbGVuZ3RoW10pOiBBZGRlZCAnI2luY2x1ZGUgImMtY29tbW9uLmRlZiInLgoJKGNwbHVzX3RyZWVfY29kZV9uYW1lW10pOiBBZGRlZCAnI2luY2x1ZGUgImMtY29tbW9uLmRlZiInLgoKMjAwMC0wNi0xNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoQklORk9fT1ZFUlJJREVfQUxPTkdfVklSVFVBTF9QQVRIKTogTmV3IG1hY3JvLgoJKiBjbGFzcy5jIChkZnNfZmluZF9maW5hbF9vdmVycmlkZXIpOiBTZXQgaXQgYXBwcm9wcmlhdGVseS4KCShkZnNfYnVpbHRfdnR0X2luaXRzKTogQ2hlY2sgQklORk9fT1ZFUlJJREVfQUxPTkdfVklSVFVBTF9QQVRIIHRvCglhdm9pZCB1bm5lZWRlZCBzZWNvbmRhcnkgdnB0cnMuCgoyMDAwLTA2LTEzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3NlY29uZGFyeV92dGFibGUpOiBTZXQgREVDTF9VU0VSX0FMSUdOLgoJKGNoZWNrX2JpdGZpZWxkX2RlY2wsIGNoZWNrX2ZpZWxkX2RlY2wpOiBMaWtld2lzZS4KCShidWlsZF92dGJsX29yX3ZiYXNlX2ZpZWxkLCBidWlsZF9iYXNlX2ZpZWxkKTogTGlrZXdpc2UuCgkobGF5b3V0X2NsYXNzX3R5cGUpOiBTZXQgREVDTF9VU0VSX0FMSUdOIHJlc3AuIENMQVNTVFlQRV9VU0VSX0FMSUdOLgoJKiBkZWNsLmMgKHJlY29yZF91bmtub3duX3R5cGUpOiBTZXQgVFlQRV9VU0VSX0FMSUdOLgoJKHhmZXJfdGFnLCBmaW5pc2hfZW51bSk6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChmaW5pc2hfYnVpbHRpbl90eXBlKTogTGlrZXdpc2UuCgkqIGluaXQuYyAoaW5pdF9pbml0X3Byb2Nlc3NpbmcpOiBMaWtld2lzZS4KCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBMaWtld2lzZS4KCSogcnR0aS5jIChnZXRfdGluZm9fZGVjbCwgc3ludGhlc2l6ZV90aW5mb19mbik6IFNldCBERUNMX1VTRVJfQUxJR04uCgkqIGNwLXRyZWUuaCAoc3RydWN0IGxhbmdfdHlwZSk6IEFkZCB1c2VyX2FsaWduIG1lbWJlci4KCShDTEFTU1RZUEVfVVNFUl9BTElHTik6IERlZmluZS4KCjIwMDAtMDYtMTMgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AZHMyLnBnLmdkYS5wbD4KCgkqIE1ha2UtbGFuZy5pbiAoYysrLmluc3RhbGwtY29tbW9uKTogSW5zdGFsbCBnKystY3Jvc3MgaW4KCSQoZ2NjX3Rvb2xkaXIpL2JpbiBhcyBnKysgYW5kIGMrKzsgZysrIGluICQoYmluZGlyKSBhcwoJJCh0YXJnZXRfYWxpYXMpLWcrKyBhbmQgJCh0YXJnZXRfYWxpYXMpLWMrKy4KCjIwMDAtMDYtMTIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jICh2Y2FsbF9vZmZzZXRfZGF0YV9zKTogQWRkIGxhc3RfaW5pdCBhbmQgZm5zLgoJKG92ZXJyaWRlcyk6IFJlbmFtZSB0byBzYW1lX3NpZ25hdHVyZV9wLgoJKGRmc19maW5kX2ZpbmFsX292ZXJyaWRlcik6IEFkanVzdCBhY2NvcmRpbmdseS4KCShtYXJrX292ZXJyaWRlcnMpOiBMaWtld2lzZS4KCSh3YXJuX2hpZGRlbik6IExpa2V3aXNlLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBSZW9yZ2FuaXplIG1hY2hpbmVyeSBmb3IgYnVpbGRpbmcgdGhpbmdzCglhdCBuZWdhdGl2ZSBvZmZzZXRzLgoJKGJ1aWxkX3ZjYWxsX2FuZF92YmFzZV92dGJsX2VudHJpZXMpOiBMaWtld2lzZS4KCShidWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgkoZGZzX2J1aWxkX3ZjYWxsX29mZnNldF92dGJsX2VudHJpZXMpOiBDb3JyZWN0IG9yZGVyIG9mIHZjYWxsCglvZmZzZXQgZW50cmllcy4gIERvIG5vdCBjcmVhdGUgdHdvIGVudHJpZXMgZm9yIGZ1bmN0aW9ucyB3aXRoIHRoZQoJc2FtZSBzaWduYXR1cmUuCgkoYnVpbGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IEluaXRpYWxpemUgdm9kLT5mbnMuCgkoYnVpbGRfcnR0aV92dGJsX2VudHJpZXMpOiBSZW9yZ2FuaXplIG1hY2hpbmVyeSBmb3IgYnVpbGRpbmcgdGhpbmdzCglhdCBuZWdhdGl2ZSBvZmZzZXRzLgoKCSogb3B0aW1pemUuYyAoZXhwYW5kX2NhbGxfaW5saW5lKTogRG9uJ3QgcmVjdXJzZSBpbnRvIHRoZSBjb2RlCgl1c2VkIHRvIGluaXRpYWxpemUgdGhlIHBhcmFtZXRlcnMgbW9yZSB0aGFuIG9uY2UuCgoyMDAwLTA2LTExICBNYXJrIE1pdGNoZWxsIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtYW5nbGUuYyAoTkVTVEVEX1RFTVBMQVRFX01BVENIKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShpc19zdGRfc3Vic3RpdHV0aW9uKTogRG9uJ3QgY2hlY2sgQ0xBU1NUWVBFX1VTRV9URU1QTEFURSBoZXJlLgoJKGZpbmRfc3Vic3RpdHV0aW9uKTogT25seSB1c2UgdGhlIGBTYScgc3Vic3RpdHV0aW9uIGZvcgoJc3RkOjphbGxvY2F0b3IsIG5vdCBpbnN0YW50aWF0aW9ucyBvZiBpdC4KCSh3cml0ZV90ZW1wbGF0ZV9wcmVmaXgpOiBNb3ZlIGNvbW1lbnQuICBPbmx5IHVzZSBhIFRSRUVfTElTVCB0bwoJcmVwcmVzZW50IHN1YnN0aXR1dGlvbnMgZm9yIGEgbWVtYmVyIHRlbXBsYXRlLgoJKHdyaXRlX2FycmF5X3R5cGUpOiBNYW5nbGUgYXJyYXkgZGltZW5zaW9ucyBjb3JyZWN0bHkuCgkqIG9wdGltaXplLmMgKG1heWJlX2Nsb25lX2JvZHkpOiBDb3B5IG1vcmUgaW5mb3JtYXRpb24gZnJvbSB0aGUKCWNsb25lZCBmdW5jdGlvbi4KCSogcHQuYyAocmVnZW5lcmF0ZV9kZWNsX2Zyb21fdGVtcGxhdGUpOiBQcmVzZXJ2ZSBERUNMX1VTRV9URU1QTEFURQoJb24gdGhlIHJlZ2VuZXJhdGVkIGRlY2xhcmF0aW9uLgoKMjAwMC0wNi0xMSAgQ2hpcCBTYWx6ZW5iZXJnICA8Y2hpcEB2YWxpbnV4LmNvbT4KCSAgICBNYXJrIE1pdGNoZWxsIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChidWlsZF92dGFibGUpOiBDbGFyaWZ5IGNvbW1lbnQuCgkoYnVpbGRfY3Rvcl92dGJsX2dyb3VwKTogUGFzcyB0aGUgbW9zdCBkZXJpdmVkIHR5cGUgdG8KCWJ1aWxkX3Z0YWJsZS4KCjIwMDAtMDYtMTEgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGRlY2wyLmMgKGNvbXBhcmVfb3B0aW9ucyk6IERvbid0IG5lZWRsZXNzbHkgY2FzdCBhd2F5IGNvbnN0LW5lc3MuCgoyMDAwLTA2LTEwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChhZGRfYmluZGluZyk6IEhhbmRsZSBkdXBsaWNhdGUgZGVjbGFyYXRpb25zIG9mIGV4dGVybmFsCgl2YXJpYWJsZXMuCgoyMDAwLTA2LTA5ICBDaGlwIFNhbHplbmJlcmcgIDxjaGlwQHZhbGludXguY29tPgoJICAgIE1hcmsgTWl0Y2hlbGwgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG1hbmdsZS5jICh3cml0ZV9udW1iZXIpOiBUYWtlIGFuIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgYXMgYW4KCWFyZ3VtZW50LgoJKHdyaXRlX3NpZ25lZF9udW1iZXIpOiBOZXcgbWFjcm8uCgkod3JpdGVfdW5zaWduZWRfbnVtYmVyKTogTGlrZXdpc2UuCgkod3JpdGVfc291cmNlX25hbWUpOiBVc2UgdGhlbS4KCSh3cml0ZV9udW1iZXIpOiBIYW5kbGUgc2lnbmVkIGFuZCB1bnNpZ25lZCB2YWx1ZXMuCgkod3JpdGVfaW50ZWdlcl9jc3QpOiBVc2UgdHJlZV9pbnRfY3N0X3NnbiwgYW5kIHVzZQoJd3JpdGVfdW5zaWduZWRfbnVtYmVyIG9yIHdyaXRlX3NpZ25lZF9udW1iZXIgYXMgYXBwcm9wcmlhdGUuCgkod3JpdGVfZGlzY3JpbWluYXRvcik6IFVzZSB3cml0ZV91bnNpZ25lZF9udW1iZXIgb3IKCXdyaXRlX3NpZ25lZF9udW1iZXIgYXMgYXBwcm9wcmlhdGUuCgkod3JpdGVfdGVtcGxhdGVfYXJnX2xpdGVyYWwpOiBMaWtld2lzZS4KCSh3cml0ZV9hcnJheV90eXBlKTogVXNlIHRyZWVfbG93X2NzdC4KCSh3cml0ZV90ZW1wbGF0ZV9wYXJtKTogIFVzZSB3cml0ZV91bnNpZ25lZF9udW1iZXIgb3IKCXdyaXRlX3NpZ25lZF9udW1iZXIgYXMgYXBwcm9wcmlhdGUuCgkod3JpdGVfc3Vic3RpdHV0aW9uKTogQWRqdXN0IGNhbGwgdG8gd3JpdGVfbnVtYmVyLgoJKHdyaXRlX3R5cGUpOiBHZXQgdGhlIFRZUEVfTUFJTl9WQVJJQU5UIGJlZm9yZSBtYW5nbGluZyBpdC4KCSh3cml0ZV9leHByZXNzaW9uKTogSGFuZGxlIG5vbi10eXBlIHRlbXBsYXRlIGFyZ3VtZW50cyBvZgoJcmVmZXJlbmNlIHR5cGUgY29ycmVjdGx5LgoJKG1hbmdsZV90aHVuayk6IFVzZSB3cml0ZV9zaWduZWRfbnVtYmVyLgoKMjAwMC0wNi0wOSAgQ2hpcCBTYWx6ZW5iZXJnICA8Y2hpcEB2YWxpbnV4LmNvbT4KCgkqIG1hbmdsZS5jIChmaW5kX3N1YnN0aXRpb24pOiBEb24ndCBtYW5nbGUgb2JqZWN0cyB3aXRoIHR5cGVuYW1lCglzdWJzdGl0dXRpb25zIChlLmcuICJjaW4iIGFzICJTaSIpLgoKMjAwMC0wNi0wOSAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogY2FsbC5jIChhZGRfY2FuZGlkYXRlKTogVXNlIGdnY19hbGxvY19jbGVhcmVkLgoJKiBkZWNsLmMgKGxvb2t1cF9sYWJlbCk6IExpa2V3aXNlLgoJKiBsZXguYyAocmV0cm9maXRfbGFuZ19kZWNsKTogTGlrZXdpc2UuCgoyMDAwLTA2LTA5ICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuc29tYS5yZWRoYXQuY29tPgoKCSogc2VtYW50aWNzLmMgKGV4cGFuZF9ib2R5KTogUHVzaCB0byBUVl9FWFBBTkQuCgkqIG9wdGltaXplLmMgKG9wdGltaXplX2Z1bmN0aW9uKTogUHVzaCB0byBUVl9JTlRFR1JBVElPTi4KCSogZGVjbC5jIChzdGFydF9mdW5jdGlvbik6IEFsd2F5cyBjYWxsIGFubm91bmNlX2Z1bmN0aW9uLgoKCSogdGluZm8yLmNjOiBKdXN0IGRlY2xhcmUgYWJvcnQuCgoyMDAwLTA2LTA5ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBsZXguYyAoREVGX09QRVJBVE9SKTogU2F5IGBvcGVyYXRvckAnIC1ub3QtIGBvcGVyYXRvciBAJwoJd2hlbmV2ZXIgQCBpcyBhIHN5bWJvbGljIG5hbWUuCgoyMDAwLTA2LTA4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIG1ldGhvZC5jIChtYWtlX3RodW5rKTogQ2xlYXIgREVDTF9WVFRfUEFSTSBpbiB0aHVuay4KCjIwMDAtMDYtMDcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKHB1c2hkZWNsKTogTG9vayB1cCBmdW5jdGlvbnMgYnkgREVDTF9OQU1FLCBub3QKCURFQ0xfQVNTRU1CTEVSX05BTUUuCgoyMDAwLTA2LTA2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoY19sYW5ndWFnZSk6IERlZmluZS4KCjIwMDAtMDYtMDYgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxleC5jIChsYW5nX2luaXRfb3B0aW9ucyk6IFR3ZWFrLgoKCSogZGVjbDIuYzogUmVtb3ZlICNpbmNsdXNpb24gb2YgZGlhZ25vc3RpYy5oCgkobGFuZ19kZWNvZGVfb3B0aW9uKTogTW92ZSBkaWFnbm9zdGljIGZvcm1hdHRpbmcgb3B0aW9ucyB0bwoJdG9wbGV2ZWwuCgoJKiBsYW5nLW9wdGlvbnMuaDogUmVtb3ZlIGRvY3VtZW50YXRpb24gZm9yIGRpYWdub3N0aWMgb3B0aW9ucy4KCgkqIE1ha2VmaWxlLmluIChsZXgubyk6IERlcGVuZHMgdXBvbiBkaWFnbm9zdGljLmgKCjIwMDAtMDYtMDYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKHJlZGVjbGFyYXRpb25fZXJyb3JfbWVzc2FnZSk6IElmIHR3byBURU1QTEFURV9ERUNMcyBoYXZlCgl0aGUgc2FtZSBERUNMX1JFU1VMVCwgaXQncyBub3QgYSByZWRlZmluaXRpb24uCgkqIHB0LmMgKHRzdWJzdF9kZWNsKTogUmVtb3ZlIGNvZGUgdG8gaGFuZGxlIGlsbGVnYWwKCXNwZWNpYWxpemF0aW9ucy4KCjIwMDAtMDYtMDYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBleGNlcHRpb24uY2M6IChfX2VoX2FsbG9jLCBfX2VoX2ZyZWUpOiBNb3ZlZCB0byBsaWJnY2MyLmMKCjIwMDAtMDYtMDUgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5zb21hLnJlZGhhdC5jb20+CgoJKiBzZWFyY2guYyAobWF5YmVfc3VwcHJlc3NfZGVidWdfaW5mbyk6IERvbid0IGNoZWNrCglDTEFTU1RZUEVfSU5URVJGQUNFX09OTFkgaWYgQ0xBU1NUWVBFX0lOVEVSRkFDRV9LTk9XTiBpc24ndCBzZXQuCgoJKiBwdC5jIChtYXJrX2RlY2xfaW5zdGFudGlhdGVkKTogRG8gU0VUX0RFQ0xfRVhQTElDSVRfSU5TVEFOVElBVElPTgoJaGVyZSBpZiBleHRlcm5fcC4KCglSZW1lbWJlciBpbnN0YW50aWF0aW9uIGNvbnRleHQgaW4gZGVmZXJyZWQgaW5zdGFudGlhdGlvbnMuCgkqIGNwLXRyZWUuaCAoc3RydWN0IHRpbnN0X2xldmVsKTogUmVtb3ZlLgoJKFRJTlNUX0RFQ0wsIFRJTlNUX0xJTkUsIFRJTlNUX0ZJTEUpOiBOZXcgbWFjcm9zLgoJKiBwdC5jIChjdXJyZW50X3RpbnN0X2xldmVsKTogTm93IGEgdHJlZS4KCShwcmludF90ZW1wbGF0ZV9jb250ZXh0LCBwdXNoX3RpbnN0X2xldmVsLCBwb3BfdGluc3RfbGV2ZWwsCgl0aW5zdF9mb3JfZGVjbCk6IEFkanVzdC4KCShyZW9wZW5fdGluc3RfbGV2ZWwpOiBOZXcgZm4uCgkoaW5pdF9wdCk6IFJlZ2lzdGVyIGN1cnJlbnRfdGluc3RfbGV2ZWwgYXMgYSByb290LgoJKGFkZF9wZW5kaW5nX3RlbXBsYXRlKTogUHV0IGN1cnJlbnRfdGluc3RfbGV2ZWwgaW4gVFJFRV9QVVJQT1NFCglvZiB0aGUgcGVuZGluZyB0ZW1wbGF0ZXMgbGlzdC4KCShpbnN0YW50aWF0ZV9wZW5kaW5nX3RlbXBsYXRlcyk6IEFkanVzdC4gIENhbGwgcmVvcGVuX3RpbnN0X2xldmVsLgoJKiBsZXguYyAoZXh0cmFjdF9pbnRlcmZhY2VfaW5mbyk6IEFkanVzdC4KCSogZGVjbDIuYyAod2Fybl9pZl91bmtub3duX2ludGVyZmFjZSk6IEFkanVzdC4KCjIwMDAtMDYtMDUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChpbmRpcmVjdF9wcmltYXJ5X2Jhc2VfcCk6IE5ldyBmdW5jdGlvbi4KCShkZXRlcm1pbmVfcHJpbWFyeV9iYXNlKTogVXNlIGl0LgoKMjAwMC0wNi0wNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglVcGRhdGUgbmV3LWFiaSBkeW5hbWljIGNhc3QgYWxnb3JpdGhtLgoJKiB0aW5mby5jYyAoX19jbGFzc190eXBlX2luZm86Ol9fZHluY2FzdF9yZXN1bHQpOiBBZGQKCXdob2xlX2RldGFpbHMuIEFkanVzdCBjb25zdHJ1Y3Rvci4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86Ol9fZG9fZHluY2FzdCk6IEFkanVzdCBmb3Igdm1pX2ZsYWdzLgoJQXZvaWQgdW5uZWNlc3Nhcnkgc2VhcmNoaW5nLgoJKF9fZHluYW1pY19jYXN0KTogQWRqdXN0IGZvciBfX2R5bmNhc3RfcmVzdWx0Ojp3aG9sZV9kZXRhaWxzLgoKMjAwMC0wNi0wNSAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBEb24ndCBjYWxsIHJlY29yZF9jb21wb25lbnRfYWxpYXNlcy4KCSogdHJlZS5jIChidWlsZF9jcGx1c19hcnJheV90eXBlXzEpOiBMaWtld2lzZS4KCjIwMDAtMDYtMDQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpci50ZXhpOiBDb3JyZWN0IHR5cG8uCgkqIG1hbmdsZS5jICh3cml0ZV9leHByZXNzaW9uKTogSGFuZGxlIG5vbi10eXBlIHRlbXBsYXRlIGFyZ3VtZW50cwoJd2l0aCByZWZlcmVuY2UgdHlwZS4KCSogbWV0aG9kLmMgKGJ1aWxkX292ZXJsb2FkX3ZhbHVlKTogTGlrZXdpc2UuCgkqIHB0LmMgKGNvbnZlcnRfbm9udHlwZV9hcmd1bWVudCk6IEV4cGxpY2l0bHkgcmVwcmVzZW50IGNvbnZlcnNpb24KCXRvIGEgcmVmZXJlbmNlIHdpdGggYW4gQUREUl9FWFBSLgoJKHVuaWZ5KTogQWx3YXlzIHVuaWZ5IGFyZ3VtZW50cyBpbiBsZWZ0LXRvLXJpZ2h0IG9yZGVyLgoKMjAwMC0wNi0wMyAgQWxleCBTYW11ZWwgICAgPHNhbXVlbEBjb2Rlc291cmNlcnkuY29tPgoJICAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKENYWF9TUkNTKTogQWRkIG1hbmdsZS5jLgoJKiBNYWtlZmlsZS5pbiAoQ1hYX09CSlMpOiBBZGQgbWFuZ2xlLm8uCgkobWFuZ2xlLm8pOiBOZXcgcnVsZS4KCgkqIGNsYXNzLmMgKGxvY2FsX2NsYXNzZXMpOiBOZXcgdmFyaWFibGUuCgkqIGNsYXNzLmMgKGdldF92dGFibGVfbmFtZSk6IFVzZSBtYW5nbGVfdnRhYmxlX2Zvcl90eXBlIGZvciBuZXcgQUJJLgoJKGdldF92dHRfbmFtZSk6IFVzZSBtYW5nbGVfdnR0X25hbWUgZm9yIG5ldyBBQkkuCgkoaW5pdF9jbGFzc19wcm9jZXNzaW5nKTogSW5pdGlhbGl6ZSBsb2NhbF9jbGFzc2VzLgoJKGJ1aWxkX2N0b3JfdnRibF9ncm91cCk6IFVzZSBtYW5nbGVfY3Rvcl92dGJsX2Zvcl90eXBlIGZvciBuZXcgQUJJLgoJKiBjcC10cmVlLmggKGNwX3RyZWVfaW5kZXgpOiBBZGQgQ1BUSV9TVERfSURFTlRJRklFUi4KCShzdGRfaWRlbnRpZmllcik6IE5ldyBtYWNyby4KCShERUNMX1ZPTEFUSUxFX01FTUZVTkNfUCk6IE5ldyBtYWNyby4KCShERUNMX05BTUVTUEFDRV9TVERfUCk6IExpa2V3aXNlLgoJKGxvY2FsX2NsYXNzZXMpOiBEZWNsYXJlLgoJKGdldF9tb3N0bHlfaW5zdGFudGlhdGVkX2Z1bmN0aW9uX3R5cGUpOiBEZWNsYXJlLgoJKGluaXRfbWFuZ2xlKTogRGVjbGFyZS4KCShtYW5nbGVfZGVjbCk6IExpa2V3aXNlLgoJKG1hbmdsZV90eXBlX3N0cmluZyk6IExpa2V3aXNlLgoJKG1hbmdsZV90eXBlKTogTGlrZXdpc2UuCgkobWFuZ2xlX3R5cGVpbmZvX2Zvcl90eXBlKTogTGlrZXdpc2UuCgkobWFuZ2xlX3R5cGVpbmZvX3N0cmluZ19mb3JfdHlwZSk6IExpa2V3aXNlLgoJKG1hbmdsZV92dGJsX2Zvcl90eXBlKTogTGlrZXdpc2UuCgkobWFuZ2xlX3Z0dF9mb3JfdHlwZSk6IExpa2V3aXNlLgoJKG1hbmdsZV9jdG9yX3Z0YmxfZm9yX3R5cGUpOiBMaWtld2lzZS4KCShtYW5nbGVfdGh1bmspOiBMaWtld2lzZS4KCShtYW5nbGVfY29udl9vcF9uYW1lX2Zvcl90eXBlKTogTGlrZXdpc2UuCgkobWFuZ2xlX2d1YXJkX3ZhcmlhYmxlKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAocHVzaHRhZyk6IEtlZXAgdHJhY2sgb2YgbG9jYWwgY2xhc3Nlcy4KCShpbml0aWFsaXplX3ByZWRlZmluZWRfaWRlbnRpZmllcnMpOiBJbml0aWFsaXplIHN0ZF9pZGVudGlmaWVyLgoJKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogVXNlIHN0ZF9pZGVudGlmaWVyLgoJKHN0YXJ0X2RlY2wpOiBEb24ndCB0cmVhdCBpbnN0YW50aWF0aW9ucyBhcyBzcGVjaWFsaXphdGlvbnMuCgkoZ3Jva2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCShncm9rdmFyZGVjbCk6IENhbGwgbWFuZ2xlX2RlY2wgZm9yIG5ldyBBQkkuICBPbmx5IHNldCBtYW5nbGVkCgluYW1lIGZvciBmdWxseS1pbnN0YW50aWF0ZWQgdGVtcGxhdGVzLgoJKiBkZWNsMi5jIChncm9rY2xhc3Nmbik6IFVzZSBzZXRfbWFuZ2xlZF9uYW1lX2Zvcl9kZWNsIGZvcgoJZGVzdHJ1Y3RvcnMgd2l0aCB0aGUgbmV3IEFCSS4KCShmaW5pc2hfc3RhdGljX2RhdGFfbWVtYmVyX2RlY2wpOiBVc2UgbWFuZ2xlX2RlY2wgdW5kZXIgdGhlIG5ldyBBQkkuCgkoZ3Jva2ZpZWxkKTogVXNlIG1hbmdsZV90eXBlIGZvciBuZXcgQUJJLgoJKGdyb2tvcHR5cGVuYW1lKTogVXNlIG1hbmdsZV9jb252X29wX2Zvcl90eXBlIGZvciBuZXcgQUJJLgoJKGdldF9zZW50cnkpOiBVc2UgbWFuZ2xlX2d1YXJkX3ZhcmlhYmxlIGZvciBuZXcgQUJJLgoJKHN0YXJ0X3N0YXRpY19pbml0aWFsaXphdGlvbl9vcl9kZXN0cnVjdGlvbik6IExpa2V3aXNlLgoJKiBleHByLmMgKGV4dHJhY3RfYWdncl9pbml0KTogUmVtb3ZlLgoJKGV4dHJhY3Rfc2NhbGFyX2luaXQpOiBMaWtld2lzZS4KCShleHRyYWN0X2luaXQpOiBSZW1vdmUgI2lmIDAnZCBjb2RlLgoJKiBtYW5nbGUuYzogTmV3IGZ1bmN0aW9uLgoJKiBtZXRob2QuYyAoYnVpbGRfbWFuZ2xlZF9uYW1lKTogQXNzZXJ0IG5vdCBmbGFnX25ld19hYmkuCgkoYnVpbGRfc3RhdGljX25hbWUpOiBMaWtld2lzZS4KCShidWlsZF9kZWNsX292ZXJsb2FkX3JlYWwpOiBMaWtld2lzZS4KCShidWlsZF90eXBlbmFtZV9vdmVybG9hZCk6IExpa2V3aXNlLgoJKGJ1aWxkX292ZXJsb2FkX3dpdGhfdHlwZSk6IExpa2V3aXNlLgoJKGJ1aWxkX292ZXJsb2FkX25hbWUpOiBMaWtld2lzZS4KCShnZXRfY3Rvcl92dGJsX25hbWUpOiBMaWtld2lzZS4KCShzdGFydF9zcXVhbmdsaW5nKTogTGlrZXdpc2UuCgkoZ2V0X2lkXzIpOiBMaWtld2lzZS4KCShzZXRfbWFuZ2xlZF9uYW1lX2Zvcl9kZWNsKTogQ2FsbCBtYW5nbGVfZGVjbCBmb3IgbmV3IEFCSS4KCShpbml0X21ldGhvZCk6IENhbGwgaW5pdF9tYW5nbGUgZm9yIG5ldyBBQkkuCgkobWFrZV90aHVuayk6IENhbGwgbWFuZ2xlX3RodW5rIGZvciBuZXcgQUJJLgoJKiBvcGVyYXRvcnMuZGVmOiBDb3JyZWN0IG5ldyBBQkkgbWFuZ2xpbmdzIGZvciB0aGUgYCUnIG9wZXJhdG9yLgoJQWRkIGA6Oicgb3BlcmF0b3IuCgkqIHB0LmMgKGJ1aWxkX3RlbXBsYXRlX2RlY2wpOiBDb3B5IERFQ0xfT1ZFUkxPQURFRF9PUEVSQVRPUl9QIGFuZAoJREVDTF9BU1NJR05NRU5UX09QRVJBVE9SX1AgdG8gdGhlIFRFTVBMQVRFX0RFQ0wuCgkobG9va3VwX3RlbXBsYXRlX2NsYXNzKTogQ2FsbCBtYW5nbGVfZGVjbCBmb3IgbmV3IEFCSS4KCShnZXRfbW9zdGx5X2luc3RhbnRpYXRlZF9mdW5jdGlvbl90eXBlKTogTmV3IGZ1bmN0aW9uLgoJKHNldF9tYW5nbGVkX25hbWVfZm9yX3RlbXBsYXRlX2RlY2wpOiBVc2UgaXQuCgkodHN1YnN0X2RlY2wpOiBVc2Ugc2V0X21hbmdsZWRfbmFtZV9mb3JfZGVjbCBmb3IgZGVzdHJ1Y3RvcnMgd2l0aAoJdGhlIG5ldyBBQkkuICBVc2UgbWFuZ2xlX2NvbnZfb3BfbmFtZV9mb3JfdHlwZSBmb3IgaW5zdGFudGlhdGVkCgljb252ZXJzaW9uIG9wIG5hbWVzLgoJKiBydHRpLmMgKHRpbmZvX25hbWUpOiBDYWxsIG1hbmdsZV90eXBlX3N0cmluZyBmb3IgbmV3IEFCSS4KCShnZXRfdGluZm9fZGVjbCk6IENhbGwgbWFuZ2xlX3R5cGVpbmZvX2Zvcl90eXBlIGZvciBuZXcJQUJJLgoJKHRpbmZvX2Jhc2VfaW5pdCk6ICBMaWtld2lzZS4gIE1hbmdsZSB0eXBlaW5mbyBzdHJpbmcgbmFtZSB3aXRoCgltYW5nbGVfdHlwZWluZm9fc3RyaW5nX2Zvcl90eXBlLgoKMjAwMC0wNi0wMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoVE1QTF9BUkdTX0xFVkVMKTogQ2xhcmlmeSBjb21tZW50LgoJKElOTkVSTU9TVF9URU1QTEFURV9BUkdTKTogTmV3IG1hY3JvLgoJKGlubmVybW9zdF9hcmdzKTogUmVtb3ZlLgoJKGdldF9pbm5lcm1vc3RfdGVtcGxhdGVfYXJncyk6IE5ldyBmdW5jdGlvbi4KCSogZGVjbDIuYyAoYXJnX2Fzc29jX2NsYXNzKTogVXNlIElOTkVSTU9TVF9URU1QTEFURV9BUkdTLgoJKiBlcnJvci5jIChkdW1wX2Z1bmN0aW9uX2RlY2wpOiBCZSBjYXV0aW9uIHdoZW4gdXNpbmcKCW1vc3RfZ2VuZXJhbF90ZW1wbGF0ZS4KCSogbWV0aG9kLmMgKGJ1aWxkX3RlbXBsYXRlX3Bhcm1fbmFtZXMpOiAgVXNlCglJTk5FUk1PU1RfVEVNUExBVEVfQVJHUy4KCSogcHQuYyAoYWRkX3RvX3RlbXBsYXRlX2FyZ3MpOiBUaWR5IGNvbW1lbnQKCShnZXRfaW5uZXJtb3N0X3RlbXBsYXRlX2FyZ3MpOiBOZXcgZnVuY3Rpb24uCgkoY2hlY2tfZXhwbGljaXRfc3BlY2lhbGl6YXRpb24pOiBDbGVhciBERUNMX0lOSVRJQUwgZm9yIGEgbmV3CglzcGVjaWFsaXphdGlvbi4KCShwcm9jZXNzX3BhcnRpYWxfc3BlY2lhbGl6YXRpb24pOiBVc2UgSU5ORVJNT1NUX1RFTVBMQVRFX0FSR1MuCglUaWR5LgoJKHB1c2hfdGVtcGxhdGVfZGVjbCk6IEFsd2F5cyByZWdpc3RlciBzcGVjaWFsaXphdGlvbnMgb2YgdGhlIG1vc3QKCWdlbmVyYWwgdGVtcGxhdGUuCgkoY29udmVydF90ZW1wbGF0ZV9hcmd1bWVudCk6IFVzZSBJTk5FUk1PU1RfVEVNUExBVEVfQVJHUy4KCShjb2VyY2VfdGVtcGxhdGVfcGFybXMpOiBMaWtld2lzZS4KCShsb29rdXBfdGVtcGxhdGVfY2xhc3MpOiBMaWtld2lzZS4KCShpbm5lcm1vc3RfYXJncyk6IFJlbW92ZS4KCSh0c3Vic3RfZGVjbCk6IFVzZSBJTk5FUk1PU1RfVEVNUExBVEVfQVJHUy4KCSh0c3Vic3RfZGVjbCk6IEhhbmRsZSB0cmlja3kgc3BlY2lhbGl6YXRpb25zLiAgVXNlCglnZXRfaW5uZXJtb3N0X3RlbXBsYXRlX2FyZ3MuCgkoaW5zdGFudGlhdGVfdGVtcGxhdGUpOiBTaW1wbGlmeSBoYW5kbGluZyBvZiBwYXJ0aWFsCglpbnN0YW50aWF0aW9ucy4KCShnZXRfY2xhc3NfYmluZGluZ3MpOiBVc2UgSU5ORVJNT1NUX1RFTVBMQVRFX0FSR1MuCgkobW9zdF9nZW5lcmFsX3RlbXBsYXRlKTogUmVpbXBsZW1lbnQsIGluIGEgbW9yZSBzdHJhaWdodGZvcndhcmQKCW1hbm5lci4KCShyZWdlbmVyYXRlX2RlY2xfZnJvbV90ZW1wbGF0ZSk6IFR3ZWFrIGZvcm1hdHRpbmcuICBVc2UKCVRNUExfQVJHU19ERVBUSCBmb3IgY2xhcml0eS4KCShzZXRfbWFuZ2xlZF9uYW1lX2Zvcl90ZW1wbGF0ZV9kZWNsKTogVXNlIElOTkVSTU9TVF9BUkdTLgoKCSogZHVtcC5jIChkZXF1ZXVlX2FuZF9kdW1wKTogRHVtcCBpbmZvcm1hdGlvbiBhYm91dCB0aHVua3MuCgoyMDAwLTA2LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogZGVjbC5jIChpbml0X2RlY2xfcHJvY2Vzc2luZyk6IFNldCBsYW5nX2dldF9hbGlhc19zZXQgZmlyc3QgdGhpbmcuCgoyMDAwLTA2LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogZGVjbDIuYyAodW5zdXBwb3J0ZWRfb3B0aW9ucyk6IEZpeCB0eXBvLCBtYWtlIGNvbnN0LgoJKGxhbmdfZGVjb2RlX29wdGlvbik6IEZpeCBic2VhcmNoIGFyZ3VtZW50IG9yZGVyLgoKMjAwMC0wNi0wMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGluaXQuYyAocmVzb2x2ZV9vZmZzZXRfcmVmKTogUmVtb3ZlIGNoZWNrIGZvciBUUkVFX0FERFJFU1NBQkxFCglvbiBGSUVMRF9ERUNMcy4KCjIwMDAtMDUtMzEgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiBjcC10cmVlLmggKGNfZ2V0X2FsaWFzX3NldCk6IERlbGV0ZWQuCgkqIE1ha2VmaWxlLmluIChkZWNsLm8pOiBJbmNsdWRlIC4uL2V4cHIuaC4KCSogZGVjbC5jIChleHByLmgpOiBJbmNsdWRlLgoJKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogQ2FsbCByZWNvcmRfY29tcG9uZW50X2FsaWFzZXMgZm9yIGFycmF5cy4KCShncm9rZGVjbGFyYXRvcik6IExpa2V3aXNlLgoJU2V0IFRSRUVfQUREUkVTU0FCTEUgZm9yIGZpZWxkcyB0aGF0IGFyZW4ndCBiaXRmaWVsZHMuCgkqIHRyZWUuYyAoYnVpbGRfY3BsdXNfYXJyYXlfdHlwZV8xKTogQ2FsbCByZWNvcmRfY29tcG9uZW50X2FsaWFzZXMuCgoyMDAwLTA1LTMxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVJlbW92ZSBndWlkaW5nIGRlY2xhcmF0aW9uIHN1cHBvcnQuCgkqIGNwL2NwLXRyZWUuaCAoZmxhZ19kdW1wX3RyYW5zbGF0aW9uX3VuaXQpOiBNYWtlIGl0IGNvbnN0LgoJKGZsYWdfZ3VpZGluZ19kZWNscyk6IFJlbW92ZS4KCSogY2FsbC5jIChidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xKTogUmVtb3ZlIHN1cHBvcnQgZm9yCglndWlkaW5nIGRlY2xzLgoJKGJ1aWxkX25ld19mdW5jdGlvbl9jYWxsKTogTGlrZXdpc2UuCgkoYnVpbGRfbmV3X29wKTogTGlrZXdpc2UuCgkoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoc3RhcnRfZnVuY3Rpb24pOiBMaWtld2lzZS4KCSogZnJpZW5kLmMgKGlzX2ZyaWVuZCk6IExpa2V3aXNlLgoJKGRvX2ZyaWVuZCk6IExpa2V3aXNlLgoJKiBkZWNsMi5jICgoZmxhZ19kdW1wX3RyYW5zbGF0aW9uX3VuaXQpOiBNYWtlIGl0IGNvbnN0LgoJKGZsYWdfZ3VpZGluZ19kZWNscyk6IFJlbW92ZS4KCSh1bnN1cHBvcnRlZF9vcHRpb25zKTogTmV3IHZhcmlhYmxlCgkoY29tcGFyZV9vcHRpb25zKTogTmV3IGZ1bmN0aW9uLgoJKGxhbmdfZGVjb2RlX29wdGlvbik6IFVzZSB0aGVtLgoKCSogZGVjbC5jIChidWlsZF9jcF9saWJyYXJ5X2ZuKTogU2V0IERFQ0xfQ09OVEVYVC4KCgkqIG1ldGhvZC5jIChtYW5nbGVfZXhwcmVzc2lvbik6IEFkanVzdCB0ZXN0IGZvciBsZWdhbCBleHByZXNzaW9uCglvcGVyYXRvcnMuCgoJKiBwdC5jIChpbnN0YW50aWF0ZV9kZWNsKTogU2F2ZSBhbmQgcmVzdG9yZSB0aGUgbG9jYWwKCXNwZWNpYWxpemF0aW9ucyBsaXN0LgoKMjAwMC0wNS0zMCAgSmFzb24gTWVycmlsbCAgPGphc29uQGRlY2VwdGljb24uY3lnbnVzLmNvbT4KCgkqIGRlY2wuYyAoZ3Jva19yZWZlcmVuY2VfaW5pdCk6IFBhc3MgTE9PS1VQX09OTFlDT05WRVJUSU5HLgoKMjAwMC0wNS0zMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhbGwuYyAoYWRkX3RlbXBsYXRlX2NhbmRpZGF0ZV9yZWFsKTogSGFuZGxlIG1lbWJlciB0ZW1wbGF0ZQoJY29uc3RydWN0b3JzIGZvciBjbGFzc2VzIHdpdGggdmlydHVhbCBiYXNlcy4KCShidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xKTogVXNlIGluX2NoYXJnZV9hcmdfZm9yX25hbWUuCgkoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogVXNlIERFQ0xfTk9OU1RBVElDX01FTUJFUl9GVU5DVElPTl9QLgoKCSogaXIudGV4aTogVXBkYXRlIHRodW5rIGRvY3VtZW50YXRpb24uCgoJKiBjYWxsLmMgKGpvdXN0KTogRml4IGhhbmRsaW5nIG9mIG92ZXJsb2FkZWQgYnVpbHRpbiBvcGVyYXRvcnMuCgoyMDAwLTA1LTMwICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuY3VtYi5vcmc+CgoJKiBjcC10cmVlLmggKERFQ0xfQU5USUNJUEFURUQpOiBOZXcgbWFjcm8uCglEb2N1bWVudCBuZXcgdXNlIG9mIERFQ0xfTEFOR19GTEFHXzcuCgkqIGRlY2wuYyAoYnVpbHRpbl9mdW5jdGlvbik6IFNldCBERUNMX0FOVElDSVBBVEVEIG9uIGJ1aWx0aW5zCglpbiB0aGUgdXNlciBuYW1lc3BhY2UuCgkqIGxleC5jIChkb19pZGVudGlmaWVyKTogSWYgdGhlIGlkZW50aWZpZXIncyBkZWNsYXJhdGlvbiBoYXMKCURFQ0xfQU5USUNJUEFURUQgb24sIGl0IGhhcyBub3QgeWV0IGJlZW4gZGVjbGFyZWQuICBCdXQgZG8gbm90CglyZXBsYWNlIGl0IHdpdGggYW4gb3JkaW5hcnkgaW1wbGljaXQgZGVjbGFyYXRpb24uCgoJKiB0aW5mbzIuY2M6IEluY2x1ZGUgc3RkbGliLmguCgoyMDAwLTA1LTI5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChDTEFTU1RZUEVfQUxJR05fVU5JVCk6IE5ldyBtYWNyby4KCSogY2xhc3MuYyAobGF5b3V0X2VtcHR5X2Jhc2UpOiBVc2UgQ0xBU1NUWVBFX0FMSUdOX1VOSVQsIG5vdAoJQ0xBU1NUWVBFX0FMSUdOLgoKMjAwMC0wNS0yOCAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAobGFuZ19kZWNvZGVfb3B0aW9uKTogVXNlIHNraXBfbGVhZGluZ19zdWJzdHJpbmcgaW5zdGVhZAoJb2YgcGxhaW4gc3RybmNtcC4KCjIwMDAtMDUtMjggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUBjeWdudXMuY29tPgoKCSogb3BlcmF0b3JzLmRlZiAoPD8pOiBEdXBsaWNhdGVkLCBzaG91bGQgaGF2ZSBiZWVuLi4uCgkoPj8pOiB0aGlzLiAgRml4ZWQuCgoyMDAwLTA1LTI3ICBBbGV4IFNhbXVlbCAgICA8c2FtdWVsQGNvZGVzb3VyY2VyeS5jb20+CgkgICAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoYW5zaV9vcG5hbWUpOiBNYWtlIGl0IGEgbWFjcm8uCgkoYW5zaV9hc3NvcG5hbWUpOiBMaWtld2lzZS4KCShzdHJ1Y3QgbGFuZ19kZWNsX2ZsYWdzKTogQWRkIGFzc2lnbm1lbnRfb3BlcmF0b3JfcC4KCShzdHJ1Y3QgbGFuZ19kZWNsKTogQWRkIG9wZXJhdG9yX2NvZGUuCgkoREVDTF9WVFRfUEFSTSk6IEFkanVzdC4KCShERUNMX09WRVJMT0FERURfT1BFUkFUT1JfUCk6IFJldHVybiB0aGUgb3BlcmF0b3JfY29kZSBmb3IgYW4KCW92ZXJsb2FkZWQgb3BlcmF0b3IuCgkoU0VUX09WRVJMT0FERURfT1BFUkFUT1JfQ09ERSk6IE5ldyBtYWNyby4KCShERUNMX0FTU0lHTk1FTlRfT1BFUkFUT1JfUCk6IE5ldyBtYWNyby4KCShERUNMX0FSUkFZX0RFTEVURV9PUEVSQVRPUl9QKTogQWRqdXN0LgoJKG9wbmFtZV90YWIpOiBSZW1vdmUuCgkoYXNzaWdub3BfdGFiKTogTGlrZXdpc2UuCgkob3BlcmF0b3JfbmFtZV9pbmZvX3QpOiBOZXcgdHlwZS4KCShvcGVyYXRvcl9uYW1lX2luZm8pOiBOZXcgdmFyaWFibGUuCgkoYXNzaWdubWVudF9vcGVyYXRvcl9uYW1lX2luZm8pOiBMaWtld2lzZS4KCShidWlsZF9jcF9saWJyYXJ5X2ZuKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKHB1c2hfY3BfbGlicmFyeV9mbik6IExpa2V3aXNlLgoJKG9wZXJhdG9yX25hbWVfc3RyaW5nKTogTGlrZXdpc2UuCgkoYnVpbGRfZGVjbF9vdmVybG9hZCk6IExpa2V3aXNlLgoJKiBjYWxsLmMgKHByaW50X3pfY2FuZGlkYXRlcyk6IFNpbXBsaWZ5LgoJKGJ1aWxkX29iamVjdF9jYWxsKTogQWRqdXN0IHVzYWdlIG9mIGFuc2lfb3BuYW1lLiAgVXNlCglERUNMX09WRVJMT0FERURfT1BFUkFUT1JfUC4KCShvcF9lcnJvcik6IEFkanVzdCBvcGVyYXRvciBuYW1lIGxvb2t1cC4KCShidWlsZF9jb25kaXRpb25hbF9leHByKTogQWRqdXN0IHVzYWdlIG9mIGFuc2lfb3BuYW1lLgoJKGJ1aWxkX25ld19vcCk6IExpa2V3aXNlLgoJKGJ1aWxkX29wX2RlbGV0ZV9jYWxsKTogTGlrZXdpc2UuCgkoYnVpbGRfb3Zlcl9jYWxsKTogTGlrZXdpc2UuCgkoam91c3QpOiBVc2UgREVDTF9PVkVSTE9BREVEX09QRVJBVE9SX1AuCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogQ29weSBvcGVyYXRvcl9jb2RlLgoJKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogQWRqdXN0IHBhcmFtZXRlcnMgdG8gcHVzaF9jcF9saWJyYXJ5X2ZuLgoJKGJ1aWx0aW5fZnVuY3Rpb24pOiBBZGp1c3QgcGFyYW1ldGVycyB0byBidWlsZF9saWJyYXJ5X2ZuXzEuCgkoYnVpbGRfbGlicmFyeV9mbl8xKTogQWNjZXB0IGFuIG92ZXJsb2FkZWQgb3BlcmF0b3IgY29kZS4KCShidWlsZF9saWJyYXJ5X2ZuKTogUGFzcyBFUlJPUl9NQVJLLgoJKGJ1aWxkX2NwX2xpYnJhcnlfZm4pOiBBY2NlcHQgYW4gb3ZlcmxvYWRlZCBvcGVyYXRvciBjb2RlLgoJKHB1c2hfY3BfbGlicmFyeV9mbik6IExpa2V3aXNlLgoJKGdyb2tmbmRlY2wpOiBUd2Vhay4KCShncm9rZGVjbGFyYXRvcik6IFNpbXBsaWZ5IGNvZGUgdG8gY29tcHV0ZSBuYW1lcyBvZiBvdmVybG9hZGVkCglvcGVyYXRvcnMuICBBZGp1c3QgdXNlIG9mIGFuc2lfb3BuYW1lLgoJKGFtYmlfb3BfcCk6IFdvcmsgb24gdHJlZV9jb2Rlcywgbm90IGlkZW50aWZpZXJzLgoJKHVuYXJ5X29wX3ApOiBMaWtld2lzZS4KCShncm9rX29wX3Byb3BlcnRpZXMpOiBMaWtld2lzZS4KCShzdGFydF9mdW5jdGlvbik6IFVzZSBERUNMX09WRVJMT0FERURfT1BFUkFUT1JfUC4KCShsYW5nX21hcmtfdHJlZSk6IERvbid0IHRyeSB0byBtYXJrIHRoZSBvcGVyYXRvcl9jb2RlLgoJKiBkZWNsMi5jIChncm9rX2Z1bmN0aW9uX2luaXQpOiBVc2UgREVDTF9PVkVSTE9BREVEX09QRVJBVE9SX1AuCgkqIGVycm9yLmMgKGR1bXBfZGVjbCk6IFJlbW92ZSBzcGVjaWFsIGhhbmRsaW5nIGZvciBvcGVyYXRvcgoJbmFtZXMuCgkoZHVtcF9mdW5jdGlvbl9uYW1lKTogTGlrZXdpc2UuCgkoZHVtcF9leHByKTogQWRqdXN0IG5hbWUgbG9va3VwIG9mIG9wZXJhdG9ycy4KCShvcF90b19zdHJpbmcpOiBTaW1wbGlmeS4KCShhc3NvcF90b19zdHJpbmcpOiBMaWtld2lzZS4KCSogaW5pdC5jIChidWlsZF9uZXdfMSk6IEFkanVzdCB1c2Ugb2YgYW5zaV9vcG5hbWUuCgkqIGxleC5jIChvcG5hbWVfdGFiKTogUmVtb3ZlLgoJKGFzc2lnbm9wX3RhYik6IExpa2V3aXNlLgoJKGFuc2lfb3BuYW1lKTogTGlrZXdpc2UuCgkoYW5zaV9hc3NvcG5hbWUpOiBMaWtld2lzZS4KCShvcGVyYXRvcl9uYW1lX3N0cmluZyk6IExpa2V3aXNlLgoJKHJlaW5pdF9sYW5nX3NwZWNpZmljKTogTGlrZXdpc2UuCgkob3BlcmF0b3JfbmFtZV9pbmZvKTogTmV3IHZhcmlhYmxlLgoJKGFzc2lnbm1lbnRfb3BlcmF0b3JfbmFtZV9pbmZvKTogTGlrZXdpc2UuCgkoaW5pdF9vcGVyYXRvcnMpOiBOZXcgZnVuY3Rpb24uCgkoaW5pdF9wYXJzZSk6IFVzZSBpdC4KCShkb19pZGVudGlmaWVyKTogQWRqdXN0IHVzZSBvZiBhbnNpX29wbmFtZS4KCSogbWV0aG9kLmMgKG1hbmdsZV9leHByZXNzaW9uKTogRG9uJ3QgdXNlIGFuc2lfb3BuYW1lIGZvcgoJbWFuZ2xpbmcuCgkoYnVpbGRfZGVjbF9vdmVybG9hZF9yZWFsKTogVXNlIERFQ0xfT1ZFUkxPQURFRF9PUEVSQVRPUl9QLgoJKGJ1aWxkX2RlY2xfb3ZlcmxvYWQpOiBSZW1vdmUuCgkoYnVpbGRfdHlwZW5hbWVfb3ZlcmxvYWQpOiBVc2UgT1BFUkFUT1JfVFlQRU5BTUVfRk9STUFUIGRpcmVjdGx5LgoJKGRvX2J1aWxkX2Fzc2lnbl9yZWYpOiBBZGp1c3QgdXNlIG9mIGFuc2lfb3BuYW1lLgoJKHN5bnRoZXNpemVfbWV0aG9kKTogTGlrZXdpc2UuCgkoaW1wbGljaXRseV9kZWNsYXJlX2ZuKTogTGlrZXdpc2UuCgkqIG9wZXJhdG9ycy5kZWY6IE5ldyBmaWxlLgoJKiBwYXJzZS55IChvcGVyYXRvcik6IEFkanVzdCB1c2Ugb2YgYW5zaV9vcG5hbWUuCgkqIHB0LmMgKHRzdWJzdF9kZWNsKTogVXNlIElERU5USUZJRVJfT1BOQU1FX1AuCgkoc2V0X21hbmdsZWRfbmFtZV9mb3JfdGVtcGxhdGVfZGVjbCk6IERvbid0IHBsYXkgZ2FtZXMgd2l0aAoJY3VycmVudF9uYW1lc3BhY2UuCgkoc3BlY2lhbF9mdW5jdGlvbl9wKTogQWRqdXN0IHVzZSBvZiBhbnNpX29wbmFtZS4KCSogdHlwZWNrLmMgKGNoZWNrX3JldHVybl9leHByKTogTGlrZXdpc2UuCgkqIE1ha2UtbGFuZy5pbiAoY2MxcGx1cyk6IERlcGVuZCBvbiBvcGVyYXRvcnMuZGVmLgoJKiBNYWtlZmlsZS5pbiAobGV4Lm8pOiBMaWtld2lzZS4KCShkZWNsLm8pOiBMaWtld2lzZS4KCjIwMDAtMDUtMjcgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIE1ha2UtbGFuZy5pbiAoY3BsaWIyLnJlYWR5KTogRXJhZGljYXRlLgoKMjAwMC0wNS0yNyAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIG1ldGhvZC5jIChtYW5nbGVfZXhwcmVzc2lvbik6IFVzZSBUUkVFX0NPREVfTEVOR1RILgoJKiB0cmVlLmMgKGJyZWFrX291dF9jYWxscywgYnVpbGRfbWluX250KTogVXNlIFRSRUVfQ09ERV9MRU5HVEguCgkoYnVpbHRfbWluLCBjcF90cmVlX2VxdWFsKTogTGlrZXdpc2UuCgoyMDAwLTA1LTI2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAobGF5b3V0X25vbmVtcHR5X2Jhc2Vfb3JfZmllbGQpOiBSZXBsYWNlCglgcmVjb3JkX2xheW91dF9pbmZvJyB3aXRoIGByZWNvcmRfbGF5b3V0X2luZm9fcycuCgoyMDAwLTA1LTI2ICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuc29tYS5yZWRoYXQuY29tPgoKCUZpeCBnb3RvIGNoZWNraW5nLgoJKiBjcC10cmVlLmggKHN0cnVjdCBsYW5ndWFnZV9mdW5jdGlvbik6IHhfbmFtZWRfbGFiZWxzIGlzIG5vdwoJYSBzdHJ1Y3QgbmFtZWRfbGFiZWxfbGlzdCouCgkqIGRlY2wuYyAoc3RydWN0IG5hbWVkX2xhYmVsX3VzZV9saXN0KTogUmVuYW1lZCBmcm9tLi4uCgkoc3RydWN0IG5hbWVkX2xhYmVsX2xpc3QpOiAuLi50aGlzLiAgTmV3IHN0cnVjdC4KCShwdXNoX2JpbmRpbmdfbGV2ZWwpOiBEb24ndCBzZXQgZWhfcmVnaW9uLgoJKG5vdGVfbGV2ZWxfZm9yX2VoKTogTmV3IGZuLgoJKHBvcF9sYWJlbCk6IFRha2UgbGFiZWwgYW5kIG9sZCB2YWx1ZSBkaXJlY3RseS4KCShwb3BfbGFiZWxzKTogQWRqdXN0IGZvciBuZXcgbmFtZWRfbGFiZWxzIGZvcm1hdC4KCShsb29rdXBfbGFiZWwpOiBMaWtld2lzZS4KCShwb3BsZXZlbCk6IE5vdGUgY2hhcmFjdGVyaXN0aWNzIG9mIGEgYmluZGluZyBsZXZlbCBjb250YWluaW5nIGEKCW5hbWVkIGxhYmVsLiAgTWVzcyB3aXRoIG5hbWVkIGxhYmVsIGxpc3RzIGVhcmxpZXIuCgkobWFya19uYW1lZF9sYWJlbF9saXN0cyk6IE5ldyBmbi4KCShtYXJrX2xhbmdfZnVuY3Rpb24pOiBDYWxsIGl0LgoJKHVzZV9sYWJlbCk6IE5ldyBmbiwgc3BsaXQgb3V0IGZyb20uLi4KCShtYWtlX2xhYmVsX2RlY2wpOiAuLi5oZXJlLiAgRG9uJ3QgY2FsbCBpdC4KCShkZWNsX2p1bXBfdW5zYWZlLCBjaGVja19wcmV2aW91c19nb3RvLCBjaGVja19wcmV2aW91c19nb3RvXzEsCgljaGVja19wcmV2aW91c19nb3Rvcyk6IE5ldyBmbnMsCXNwbGl0IG91dCBmcm9tLi4uCgkoZGVmaW5lX2xhYmVsKTogLi4uaGVyZS4KCShjaGVja19zd2l0Y2hfZ290byk6IE5ldyBmbi4KCShkZWZpbmVfY2FzZV9sYWJlbCk6IENhbGwgaXQuCgkoY2hlY2tfZ290byk6IE5ldyBmbi4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9nb3RvX3N0bXQpOiBDYWxsIGl0IGFuZCB1c2VfbGFiZWwuCgkoYmVnaW5fY29tcG91bmRfc3RtdCk6IElmIHdlJ3JlIGEgdHJ5IGJsb2NrLCBjYWxsIG5vdGVfbGV2ZWxfZm9yX2VoLgoJKGV4cGFuZF9zdG10KTogTmV2ZXIgcGFzcyAxIGFzIERPTlRfSlVNUF9JTiB0byBleHBhbmRfZW5kX2JpbmRpbmdzLgoKMjAwMC0wNS0yNiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YWJsZV9lbnRyeV9yZWYpOiBDb3JyZWN0IHVzYWdlIG9mCglnZXRfdnRibF9kZWNsX2Zvcl9iaW5mby4KCgkqIGRlY2wyLmMgKGdyb2tjbGFzc2ZuKTogU2V0IERFQ0xfTEFOR1VBR0UgaGVyZS4KCSogbWV0aG9kLmMgKGltcGxpY2l0bHlfZGVjbGFyZV9mbik6IE5vdCBoZXJlLgoKMjAwMC0wNS0yNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoQ1BUSV9QVE1EX0RFU0NfVFlQRSk6IFJlbmFtZSB0byAuLi4KCShDUFRJX1BUTURfREVTQ19UWVBFKTogLi4uIGhlcmUuCgkocHRtZF9kZXNjX3R5cGVfbm9kZSk6IFJlbmFtZSB0byAuLi4KCShwdG1fZGVzY190eXBlX25vZGUpOiAuLi4gaGVyZS4KCSogZGVjbC5jOiBMaWtld2lzZS4KCSogcnR0aS5jIChwdG1kX2luaXRpYWxpemVyKTogUmVuYW1lIHRvIC4uLgoJKHB0bV9pbml0aWFsaXplcik6IC4uLiBoZXJlLgoJKHN5dGhlc2l6ZV90aW5mb192YXIpOiBBZGp1c3QuIERlYWwgd2l0aCBwb2ludGVyIHRvIG1lbWJlcgoJZnVuY3Rpb24uCgkoY3JlYXRlX3RpbmZvX3R5cGVzKTogQWRqdXN0LgoKMjAwMC0wNS0yNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglGaW5pc2ggaW1wbGVtZW50YXRpb24gb2YgVlRUcy4KCSogY3AtdHJlZS5oIChjcF90cmVlX2luZGV4KTogQWRkIENQVElfVlRUX1BBUk1fVFlQRSBhbmQKCUNQVElfVlRUX1BBUk1fSURFTlRJRklFUi4KCSh2dHRfcGFybV9pZGVudGlmaWVyKTogTmV3IG1hY3JvLgoJKHZ0dF9wYXJtX3R5cGUpOiBMaWtld2lzZS4KCShCSU5GT19TVUJWVFRfSU5ERVgpOiBMaWtld2lzZS4KCShCSU5GT19WUFRSX0lOREVYKTogTGlrZXdpc2UuCgkoc3RydWN0IGxhbmdfZGVjbCk6IEFkZCB2dHRfcGFybS4KCShERUNMX1ZUVF9QQVJNKTogTmV3IG1hY3JvLgoJKERFQ0xfVVNFX1ZUVF9QQVJNKTogTGlrZXdpc2UuCgkoREVDTF9ORUVEU19WVFRfUEFSTV9QKTogTGlrZXdpc2UuCgkoZ2V0X3Z0dF9uYW1lKTogRGVjbGFyZS4KCShidWlsZF9hcnRpZmljaWFsX3Bhcm0pOiBMaWtld2lzZS4KCShmaXh1cF9hbGxfdmlydHVhbF91cGNhc3Rfb2Zmc2V0cyk6IExpa2V3aXNlLgoJKGV4cGFuZF9pbmRpcmVjdF92dGJsc19pbml0KTogUmVtb3ZlLgoJKiBjYWxsLmMgKGJ1aWxkX25ld19tZXRob2RfY2FsbCk6IFBhc3MgdGhlIHZ0dCB0byBzdWJvYmplY3QKCWNvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvcnMuCgkqIGNsYXNzLmMgKGdldF92dHRfbmFtZSk6IEdpdmUgaXQgZXh0ZXJuYWwgbGlua2FnZS4KCShidWlsZF9jbG9uZSk6IEhhbmRsZSB0aGUgbWFnaWMgVlRUIHBhcmFtZXRlcnMgZm9yIGNsb25lcy4KCShjbG9uZV9mdW5jdGlvbl9kZWNsKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShidWlsZF92dHQpOiBLZWVwIHRyYWNrIG9mIHRoZSBpbmRpY2VzIGluIHRoZSBWVFRzIHdoZXJlIHZhcmlvdXMKCWVudGl0aWVzIGFyZSBzdG9yZWQuCgkoYnVpbGRfdnR0X2luaXRzKTogTGlrZXdpc2UuCgkoZGZzX2J1aWxkX3Z0dF9pbml0cyk6IExpa2V3aXNlLgoJKGJ1aWxkX2N0b3JfdnRibF9ncm91cCk6IFR3ZWFrIHR5cGUgb2YgY29uc3RydWN0aW9uIHZ0YWJsZXMuCgkoZGZzX2FjY3VtdWxhdGVfdnRibF9pbml0cyk6IEJ1aWxkIHZ0YWJsZXMgZm9yIGFsbCBiYXNlcywgZXZlbgoJcHJpbWFyeSBiYXNlcywgd2hlbiBidWlsZGluZyBjb25zdHJ1Y3Rpb24gdnRhYmxlcy4KCSogZGVjbC5jIChkdXBsaWNhdGVfZGVjbHMpOiBIYW5kbGUgREVDTF9WVFRfUEFSTS4KCShpbml0aWFsaXplX3ByZWRlZmluZWRfaWRlbnRpZmllcnMpOiBBZGQgdnR0X3Bhcm1faWRlbnRpZmllci4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IEluaXRpYWxpemUgdnR0X3Bhcm1fdHlwZS4KCShncm9rZm5kZWNsKTogVXNlIERFQ0xfT1ZFUkxPQURFRF9PUEVSQVRPUl9QLgoJKGxhbmdfbWFya190cmVlKTogTWFrZSB2dHRfcGFybS4KCSogZGVjbDIuYyAoYnVpbGRfYXJ0aWZpY2lhbF9wYXJtKTogTmV3IGZ1bmN0aW9uLgoJKG1heWJlX3JldHJvZml0X2luX2NocmcpOiBVc2UgaXQuICBBZGQgVlRUIHBhcmFtZXRlcnMuCgkoZ3Jva2NsYXNzZm4pOiBVc2UgYnVpbGRfYXJ0aWZpY2lhbF9wYXJtLgoJKiBpbml0LmMgKGluaXRpYWxpemVfdnRibF9wdHJzKTogQ2FsbAoJZml4dXBfYWxsX3ZpcnR1YWxfdXBjYXN0X29mZnNldHMgZGlyZWN0bHkuCgkocGVyZm9ybV9tZW1iZXJfaW5pdCk6IFVzZSB0aGUgY29tcGxldGUgc3Vib2JqZWN0IGRlc3RydWN0b3IgZm9yCgltZW1iZXIgY2xlYW51cHMuCgkoYnVpbGRfdnRibF9hZGRyZXNzKTogTmV3IGZ1bmN0aW9uLgoJKGV4cGFuZF92aXJ0dWFsX2luaXQpOiBIYW5kbGUgVlRUcy4KCSogb3B0aW1pemUgKG1heWJlX2Nsb25lX2JvZHkpOiBMaWtld2lzZS4KCSogc2VhcmNoLmMgKGZpeHVwX2FsbF92aXJ0dWFsX3VwY2FzdF9vZmZzZXRzKTogR2l2ZSBpdCBleHRlcm5hbAoJbGlua2FnZS4KCShleHBhbmRfaW5kaXJlY3RfdnRibHNfaW5pdCk6IFJlbW92ZS4KCSogc2VtYW50aWNzLmMgKHNldHVwX3Z0YmxfcHRyKTogRml4IHR5cG9zIGluIGNvbW1lbnQuCgkqIHRyZWUuYyAobWFrZV9iaW5mbyk6IE1ha2UgdGhlbSBiaWdnZXIuCgoyMDAwLTA1LTI1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogaW5jL2N4eGFiaS5oIChfX3BiYXNlX3R5cGVfaW5mbyk6IERlZmluZSwgYmFzZWQgb24KCV9fcG9pbnRlcl90eXBlX2luZm8uCgkoX19wb2ludGVyX3R5cGVfaW5mbyk6IERlcml2ZSBmcm9tIF9fcGJhc2VfdHlwZV9pbmZvLiBBZGp1c3QuCgkoX19wb2ludGVyX3RvX21lbWJlcl90eXBlX2luZm8pOiBMaWtld2lzZS4KCSogdGluZm8yLmNjIChfX3BiYXNlX3R5cGVfaW5mbzo6fl9fcGJhc2VfdHlwZV9pbmZvKTogSW1wbGVtZW50LgoJKF9fcG9pbnRlcl90b19tZW1iZXJfdHlwZV9pbmZvOjpfX2lzX3BvaW50ZXJfcCk6IFJlbW92ZS4KCShfX3BvaW50ZXJfdHlwZV9pbmZvOjpfX2RvX2NhdGNoKTogUmVuYW1lIHRvIC4uLgoJKF9fcGJhc2VfdHlwZV9pbmZvOjpfX2RvX2NhdGNoKTogLi4uIGhlcmUuIEFkanVzdC4KCShfX3BiYXNlX3R5cGVfaW5mbzo6X19wb2ludGVyX2NhdGNoKTogSW1wbGVtZW50LgoJKF9fcG9pbnRlcl90eXBlX2luZm86Ol9fcG9pbnRlcl9jYXRjaCk6IEFkanVzdC4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mbzo6X19wb2ludGVyX2NhdGNoKTogQWRqdXN0LgoKMjAwMC0wNS0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRpbmZvLmggKF9fdXNlcl90eXBlX2luZm86OmNvbnRhaW5lZF92aXJ0dWFsX3ApOiBOZXcKCXByZWRpY2F0ZS4KCSogdGluZm8uY2MgKF9fdXNlcl90eXBlX2luZm86OmRvX3VwY2FzdCk6IEZpeCBidWcgd2l0aCBkaWFtb25kCglzaGFwZWQgaGllcmFyY2h5LgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6X19kb191cGNhc3QpOiBGaXggYnVnIHdpdGggTlVMTCBwb2ludGVyIHRvCglkaWFtb25kIHNoYXBlZCBoaWVyYXJjaHkuIEFkZCBlYXJseSBvdXQgZm9yIG1peGVkIGRpYW1vbmQgYW5kCglkdXBsaWNhdGUgc2hhcGVkIGhpZXJhcmNoeS4KCjIwMDAtMDUtMjQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGJ1aWxkX2RlbGV0ZSk6IENoYW5nZSBwcm90b3R5cGUuCgkoYnVpbGRfdmVjX2RlbGV0ZSk6IExpa2V3aXNlLgoJKiBjYWxsLmMgKGJ1aWxkX3Njb3BlZF9tZXRob2RfY2FsbCk6IFVzZSBzcGVjaWFsX2Z1bmN0aW9uX2tpbmQKCXZhbHVlcyB0byBpbmRpY2F0ZSB0aGUga2luZCBvZiBkZXN0cnVjdGlvbiB0byBiZSBkb25lLgoJKGJ1aWxkX21ldGhvZF9jYWxsKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoZmluaXNoX2Rlc3RydWN0b3JfYm9keSk6IExpa2V3aXNlLgoJKG1heWJlX2J1aWxkX2NsZWFudXBfMSk6IExpa2V3aXNlLiAgUmVuYW1lIHRvIC4uLgoJKG1heWJlX2J1aWxkX2NsZWFudXApOiAuLi4gdGhpcy4KCSogZGVjbDIuYyAoZGVsZXRlX3Nhbml0eSk6IFVzZSBzcGVjaWFsX2Z1bmN0aW9uX2tpbmQKCXZhbHVlcyB0byBpbmRpY2F0ZSB0aGUga2luZCBvZiBkZXN0cnVjdGlvbiB0byBiZSBkb25lLgoJKGJ1aWxkX2NsZWFudXApOiBMaWtld2lzZS4KCSogaW5pdC5jIChwZXJmb3JtX21lbWJlcl9pbml0KTogTGlrZXdpc2UuCgkoYnVpbGRfdmVjX2RlbGV0ZV8xKTogTGlrZXdpc2UuCgkoYnVpbGRfZHRvcl9jYWxsKTogU2ltcGxpZnkuCgkoYnVpbGRfZGVsZXRlKTogVXNlIHNwZWNpYWxfZnVuY3Rpb25fa2luZAoJdmFsdWVzIHRvIGluZGljYXRlIHRoZSBraW5kIG9mIGRlc3RydWN0aW9uIHRvIGJlIGRvbmUuCgkoYnVpbGRfdmJhc2VfZGVsZXRlKTogTGlrZXdpc2UuCgkoYnVpbGRfdmVjX2RlbGV0ZSk6IExpa2V3aXNlLgoKCSogaW5pdC5jIChzb3J0X21lbWJlcl9pbml0KTogRml4IHR5cG8gaW4gZXJyb3IgbWVzc2FnZSBnZW5lcmF0aW9uCgljb2RlLgoKMjAwMC0wNS0xNSAgRG9uYWxkIExpbmRzYXkgIDxkbGluZHNheUBjeWdudXMuY29tPgoKCSogc2VtYW50aWNzLmMgKGJlZ2luX2NsYXNzX2RlZmluaXRpb24pOiBtYWtlIHRoZSBwYWNrZWQKCWF0dHJpYnV0ZSBiZSBzZW5zaXRpdmUgdG8gdGhlICItZnBhY2stc3RydWN0IiBjb21tYW5kIGxpbmUgZmxhZwoKMjAwMC0wNS0yNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglVcGRhdGUgbmV3LWFiaSB1cGNhc3QgYWxnb3JpdGhtLgoJKiBpbmMvY3h4YWJpLmggKF9fY2xhc3NfdHlwZV9pbmZvOjpfX2RvX3VwY2FzdCk6IENoYW5nZQoJcHJvdG90eXBlIGFuZCBtZWFuaW5nIG9mIHJldHVybiB2YWx1ZS4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6X19kb191cGNhc3QpOiBMaWtld2lzZS4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86Ol9fZG9fdXBjYXN0KTogTGlrZXdpc2UuCgkqIHRpbmZvLmNjIChfX2NsYXNzX3R5cGVfaW5mbzo6X191cGNhc3RfcmVzdWx0KTogUmVwbGFjZQoJd2hvbGUyZHN0IHdpdGggcGFydDJkc3QuIEFkanVzdCBjdG9yLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpfX2RvX3VwY2FzdCk6IEFkanVzdCBjYWxsIG9mIHdvcmtlciBmdW5jdGlvbi4KCShfX2NsYXNzX3R5cGVfaW5mbzo6X19kb191cGNhc3QpOiBBZGp1c3QuCgkoX19zaV9jbGFzc190eXBlX2luZm86Ol9fZG9fdXBjYXN0KTogQWRqdXN0LiBVc2UgcGFyZW50J3MKCV9fZG9fdXBjYXN0LgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6X19kb191cGNhc3QpOiBMaWtld2lzZS4gRml4IHByaXZhdGUKCXZpcnR1YWwgYmFzZSBpbiBkaWFtb25kIGhpZXJhcmNoeSBidWcuCgoyMDAwLTA1LTIzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChsYW5nX2RlY2xfZmxhZ3MpOiBSZW5hbWUgbXV0YWJsZV9mbGFnIHRvIHVuaW5saW5hYmxlCglhbmQgYml0ZmllbGQgdG8gdGluZm9fZm5fcC4KCShERUNMX1RJTkZPX0ZOX1ApOiBBZGp1c3QuCgkoU0VUX0RFQ0xfVElORk9fRk5fUCk6IExpa2V3aXNlLgoJKERFQ0xfTVVUQUJMRV9QKTogTGlrZXdpc2UuCgkoREVDTF9DX0JJVF9GSUVMRCk6IExpa2V3aXNlLgoJKFNFVF9ERUNMX0NfQklUX0ZJRUxEKTogTGlrZXdpc2UuCgkoQ0xFQVJfREVDTF9DX0JJVF9GSUVMRCk6IExpa2V3aXNlLgoJKERFQ0xfVU5JTkxJTkFCTEUpOiBMaWtld2lzZS4KCSogY2xhc3MuYyAoYWx0ZXJfYWNjZXNzKTogQ2FsbCByZXRyb2ZpdF9sYW5nX2RlY2wgaWYgbmNlc3NhcnkuCgkoaGFuZGxlX3VzaW5nX2RlY2wpOiBSZW1vdmUgYXNzZXJ0aW9uLgoJKGJ1aWxkX3Z0Ymxfb3JfdmJhc2VfZmllbGQpOiBVc2UgYnVpbGRfZGVjbCwgbm90IGJ1aWxkX2xhbmdfZGVjbCwKCXRvIGJ1aWxkIEZJRUxEX0RFQ0xzLgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBMaWtld2lzZS4KCShsYXlvdXRfY2xhc3NfdHlwZSk6IExpa2V3aXNlLgoJKiBkZWNsLmMgKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogTGlrZXdpc2UuCgkoYnVpbGRfcHRybWVtZnVuY190eXBlKTogTGlrZXdpc2UuCgkoZ3Jva2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCSogZGVjbDIuYyAoZ3Jva194X2NvbXBvbmVudHMpOiBMaWtld2lzZS4KCSogZXhjZXB0LmMgKGNhbGxfZWhfaW5mbyk6IExpa2V3aXNlLgoJKiBpbml0LmMgKGluaXRfaW5pdF9wcm9jZXNzaW5nKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoZXhwYW5kX2NsYXNzX2Rlc2MpOiBMaWtld2lzZS4KCShjcmVhdGVfcHNldWRvX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKGdldF92bWlfcHNldWRvX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKGNyZWF0ZV90aW5mb190eXBlcyk6IExpa2V3aXNlLgoJKiBwdHJlZS5jIChwcmludF9sYW5nX2RlY2wpOiBBZGp1c3QuCgkqIHR5cGVjay5jIChidWlsZF9jb21wb25lbnRfcmVmKTogRG9uJ3QgY2hlY2sgREVDTF9MQU5HX1NQRUNJRklDCgliZWZvcmUgY2hlY2tpbmcgREVDTF9NVVRBQkxFX1AuCgoJKiBkZWNsMi5jIChtYXliZV9yZXRyb2ZpdF9pbl9jaHJnKTogRG9uJ3QgY3JlYXRlIGluLWNoYXJnZQoJcGFyYW1ldGVycyBmb3IgdGVtcGxhdGUgZnVuY3Rpb25zLgoJKiBwdC5jICh0c3Vic3RfZGVjbCk6IE1ha2Ugc3VyZSB3ZSBjYWxsIG1heWJlX3JldHJvZml0X2luX2NocmcgZm9yCglkZXN0cnVjdG9ycyBhcyB3ZWxsIGFzIGNvbnN0cnVjdG9ycy4KCjIwMDAtMDUtMjIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChidWlsZF9jdG9yX3Z0YmxfZ3JvdXApOiBTZXQgaW5pdHMuCgkqIG9wdGltaXplLmMgKG1heWJlX2Nsb25lX2JvZHkpOiBTZXQgREVDTF9JTkxJTkUgYW5kCglERUNMX1RISVNfSU5MSU5FIGFwcHJvcHJpYXRlbHkgZm9yIGNsb25lcy4KCgkqIGNwLXRyZWUuaCAoSURFTlRJRklFUl9UWVBFTkFNRV9QKTogVXNlIGEgZmxhZywgbm90IHN0cm5jbXAuCgkoREVDTF9DT05WX0ZOX1ApOiBTaW1wbGlmeS4KCShERUNMX09QRVJBVE9SKTogUmVtb3ZlLgoJKGxhbmd1YWdlX3RvX3N0cmluZyk6IERlY2xhcmUuCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShncm9rZGVjbGFyYXRvcik6IEFkanVzdCB1c2Ugb2YgSURFTlRJRklFUl9UWVBFTkFNRV9QLgoJKGdyb2tfb3BfcHJvcGVydGllcyk6IFVzZSBERUNMX0NPTlZfRk5fUCBpbnN0ZWFkIG9mCglJREVOVElGSUVSX1RZUEVOQU1FX1AuCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IER1bXAgdGhlIGxhbmd1YWdlIGxpbmthZ2Ugb2YKCWRlY2xhcmF0aW9ucy4KCSogZXJyb3IuYyAobGFuZ3VhZ2VfdG9fc3RyaW5nKTogR2l2ZSBpdCBleHRlcm5hbCBsaW5rYWdlLgoJKiBtZXRob2QuYyAoYnVpbGRfdHlwZW5hbWVfb3ZlcmxvYWQpOiBTZXQgSURFTlRJRklFUl9UWVBFTkFNRV9QLgoJKGltcGxpY2l0bHlfZGVjbGFyZV9mbik6IFNldCBERUNMX0xBTkdVQUdFLgoJKiBwdC5jIChjaGVja19leHBsaWNpdF9zcGVjaWFsaXphdGlvbik6IFVzZSBERUNMX0NPTlZfRk5fUCwgbm90CglJREVOVElGSUVSX1RZUEVOQU1FX1AuCgkodHN1YnN0X2RlY2wpOiBMaWtld2lzZS4KCSh0c3Vic3RfY29weSk6IEFkanVzdCB1c2Ugb2YgSURFTlRJRklFUl9UWVBFTkFNRV9QLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX21lbWJlcl9kZWNsYXJhdGlvbik6IERvbid0IG1hcmsgbWVtYmVycyBvZgoJY2xhc3NlcyBkZWNsYXJlZCBpbiBhbiBleHRlcm4gIkMiIHJlZ2lvbiBhcyBleHRlcm4gIkMiLgoKMjAwMC0wNS0yMiAgTWFydGluIHYuIEz2d2lzICA8bG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlPgoKCSogZGVjbDIuYyAocXVhbGlmaWVkX2xvb2t1cF91c2luZ19uYW1lc3BhY2UpOiBMb29rIHRocm91Z2gKCW5hbWVzcGFjZSBhbGlhc2VzLgoKCSogZGVjbC5jIChwdXNoX3VzaW5nX2RlY2wpOiBSZXR1cm4gdGhlIG9sZCBkZWNsIG9uIG5hbWVzcGFjZSBsZXZlbC4KCjIwMDAtMDUtMjEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKFNFVF9CSU5GT19ORVdfVlRBQkxFX01BUktFRCk6IEFkZCBzYW5pdHkgY2hlY2tzLgoJKFZUVF9OQU1FX1BSRUZJWCk6IE5ldyBtYWNyby4KCShDVE9SX1ZUQkxfTkFNRV9QUkVGSVgpOiBMaWtld2lzZS4KCShnZXRfY3Rvcl92dGJsX25hbWUpOiBOZXcgZnVuY3Rpb24uCgkqIGNsYXNzLmMgKGdldF92dGFibGVfbmFtZSk6IFNpbXBsaWZ5LgoJKGdldF92dHRfbmFtZSk6IE5ldyBmdW5jdGlvbi4KCShnZXRfdnRhYmxlX2RlY2wpOiBEb24ndCBzZXQgSURFTlRJRklFUl9HTE9CQUxfVkFMVUUuCgkoZGZzX21hcmtfcHJpbWFyeV9iYXNlcyk6IFVwZGF0ZSB0aGUgQ0xBU1NUWVBFX1ZCQVNFQ0xBU1NFUyBsaXN0Cgl3aGVuIGEgdmlydHVhbCBiYXNlIGJlY29tZXMgcHJpbWFyeS4KCShmaW5pc2hfc3RydWN0XzEpOiBTZXQgQ0xBU1NUWVBFX1ZGSUVMRFMgYSBsaXR0bGUgZWFybGllci4gIEJ1aWxkCglWVFRzLgoJKGZpbmlzaF92dGJscyk6IEFkanVzdCBjYWxscyB0byBhY2N1bXVsYXRlX3Z0YmxfaW5pdHMgdG8gcGFzcyBpbgoJYWRkaXRpb25hbCBwYXJhbWV0ZXJzLgoJKGRmc19maW5pc2hfdnRibHMpOiBEb24ndCBjbGVhciBCSU5GT19ORVdfVlRBQkxFX01BUktFRC4KCShpbml0aWFsaXplX2FycmF5KTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX3Z0dCk6IExpa2V3aXNlLgoJKGJ1aWxkX3Z0dF9pbml0cyk6IExpa2V3aXNlLgoJKGRmc19idWlsZF92dHRfaW5pdHMpOiBMaWtld2lzZS4KCShkZnNfZml4dXBfYmluZm9fdnRibHMpOiBMaWtld2lzZS4KCShidWlsZF9jdG9yX3Z0YmxfZ3JvdXApOiBMaWtld2lzZS4KCShpbml0aWFsaXplX3Z0YWJsZSk6IFVzZSBpbml0aWFsaXplX2FycmF5LgoJKGFjY3VtdWxhdGVfdnRibF9pbml0cyk6IFJlaW1wbGVtZW50IHRvIGhhbmRsZSBjb25zdHJ1Y3Rpb24KCXZ0YWJsZXMuCgkoZGZzX2FjY3VtdWxhdGVfdnRibF9pbml0cyk6IExpa2V3aXNlLgoJKGJ1bGlkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBBZGp1c3QgcGFyYW1ldGVyIG5hbWUuCgkqIG1ldGhvZC5jIChidWlsZF90eXBlbmFtZV9vdmVybG9hZCk6IFJlbW92ZSAjaWYgMCdkIGNvZGUuCgkoZ2V0X2N0b3JfdnRibF9uYW1lKTogTmV3IGZ1bmN0aW9uLgoJKiBzZWFyY2guYyAoZGZzX3dhbGtfcmVhbCk6IFVzZSBCSU5GT19OX0JBU0VUWVBFUy4KCShpbml0X3ZiYXNlX3BvaW50ZXJzKTogRG9uJ3QgbWVzcyB3aXRoIHRoZSBUUkVFX0NIQUlOIG9mIGEgYmluZm8uCgoJKiBjcC10cmVlLmggKHN0cnVjdCBsYW5nX3R5cGUpOiBSZW1vdmUgc2VhcmNoX3Nsb3QuCgkoQ0xBU1NUWVBFX1NFQVJDSF9TTE9UKTogUmVtb3ZlLgoJKGVtaXRfYmFzZV9pbml0KTogQ2hhbmdlIHByb3RvdHlwZS4KCShpbml0aWFsaXplX3Z0YmxfcHRycyk6IExpa2V3aXNlLgoJKGV4cGFuZF9pbmRpcmVjdF92dGJsc19pbml0KTogTGlrZXdpc2UuCgkoY2xlYXJfc2VhcmNoX3Nsb3RzKTogUmVtb3ZlLgoJKiBkZWNsLmMgKGxhbmdfbWFya190cmVlKTogRG9uJ3QgbWFyayBzZWFyY2hfc2xvdC4KCSogaW5pdC5jIChpbml0aWFsaXplX3Z0YmxfcHRycyk6IFNpbXBsaWZ5LgoJKGVtaXRfYmFzZV9pbml0KTogTGlrZXdpc2UuCgkqIHNlYXJjaC5jIChzdHJ1Y3QgdmJhc2VfaW5mbyk6IERvY3VtZW50IGRlY2xfcHRyLgoJKGNvbnZlcnRfcG9pbnRlcl90b19zaW5nbGVfbGV2ZWwpOiBSZW1vdmUuCgkoZGZzX2ZpbmRfdmJhc2VzKTogUmVtb3ZlLgoJKGRmc19pbml0X2Jhc2VfcG9pbnRlcnMpOiBTaW1wbGlmeS4KCShkZnNfY2xlYXJfdmJhc2Vfc2xvdHMpOiBSZW1vdmUuCgkoZGZzX3Z0YWJsZV9wYXRoX3VubWFyayk6IE5ldyBmdW5jdGlvbi4KCShpbml0X3ZiYXNlX3BvaW50ZXJzKTogU2ltcGxpZnkuCgkoZXhwYW5kX3VwY2FzdF9maXh1cHMpOiBEb24ndCByZWx5IG9uIENMQVNTVFlQRV9TRUFSQ0hfU0xPVC4KCShleHBhbmRfaW5kaXJlY3RfdnRibHNfaW5pdCk6IFNpbXBsaWZ5LiAgRG9uJ3QgY2FsbAoJbWFya19hbGxfdGVtcHNfdXNlZC4KCSogc2VtYW50aWNzLmMgKHNldHVwX3Z0YmxfcHRyKTogQWRqdXN0IGNhbGxzIHRvIGVtaXRfYmFzZV9pbml0IGFuZAoJaW5pdGlhbGl6ZV92dGJsX3B0cnMuCgoyMDAwLTA1LTIwICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuY3VtYi5vcmc+CgoJKiBleGNlcHQuYzogQWRkIHN0YXRpYyBwcm90b3R5cGVzLgoKMjAwMC0wNS0yMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogTWFrZS1sYW5nLmluIChjcGxpYjIucmVhZHkpOiBBbHNvIGRlcGVuZCBvbiBjYzFwbHVzJChleGVleHQpLgoKMjAwMC0wNS0xOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglEb24ndCBjcmVhdGUgYSBzZXBhcmF0ZSBjb3B5IG9mIHZpcnR1YWwgYmFzZXMgZm9yIHRoZQoJQ0xBU1NUWVBFX1ZCQVNFQ0xBU1NFUyBsaXN0LgoJKiBjcC10cmVlLmggKENMQVNTVFlQRV9WQkFTRUNMQVNTRVMpOiBDaGFuZ2UgZG9jdW1lbnRhdGlvbi4KCShCSU5GT19GT1JfVkJBU0UpOiBSZW1vdmUuCgkoQ0FOT05JQ0FMX0JJTkZPKTogQWRqdXN0LgoJKGJpbmZvX2Zvcl92YmFzZSk6IE5ldyBmdW5jdGlvbi4KCSogY2xhc3MuYyAoYnVpbGRfdmJhc2VfcG9pbnRlcl9maWVsZHMpOiBVc2UgYmluZm9fZm9yX3ZiYXNlCglpbnN0ZWFkIG9mIEJJTkZPX0ZPUl9WQkFTRS4KCShidWlsZF92YmFzZV9wb2ludGVyKTogTGlrZXdpc2UuCgkoYnVpbGRfc2Vjb25kYXJ5X3Z0YWJsZSk6IExpa2V3aXNlLgoJKGRmc19tYXJrX3ByaW1hcnlfYmFzZXMpOiBMaWtld2lzZS4KCShtYXJrX3ByaW1hcnlfYmFzZXMpOiBMaWtld2lzZS4KCShsYXlvdXRfbm9uZW1wdHlfYmFzZV9vcl9maWVsZCk6IExpa2V3aXNlLgoJKGRmc19zZXRfb2Zmc2V0X2Zvcl9zaGFyZWRfdmJhc2VzKTogTGlrZXdpc2UuCgkoZGZzX3NldF9vZmZzZXRfZm9yX3Vuc2hhcmVkX3ZiYXNlcyk6IExpa2V3aXNlLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogTGlrZXdpc2UuICBBZGp1c3QgZm9yIGNoYW5nZXMgdG8gdGhlCglDTEFTU1RZUEVfVkJBU0VDTEFTU0VTIGxpc3QuCgkoZHVtcF9jbGFzc19oaWVyYXJjaHlfcik6IFVzZSBiaW5mb19mb3JfdmJhc2UKCWluc3RlYWQgb2YgQklORk9fRk9SX1ZCQVNFLgoJKGR1bXBfY2xhc3NfaGllcmFyY2h5KTogTGlrZXdpc2UuCgkoZmluaXNoX3Z0YmxzKTogTGlrZXdpc2UuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IEFkanVzdCBmb3IgY2hhbmdlcyB0byB0aGUKCUNMQVNTVFlQRV9WQkFTRUNMQVNTRVMgbGlzdC4KCShidWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogVXNlIGJpbmZvX2Zvcl92YmFzZS4KCSogZGVjbC5jIChmaW5pc2hfZGVzdHJ1Y3Rvcl9ib2R5KTogQWRqdXN0IGZvciBjaGFuZ2VzIHRvIHRoZQoJQ0xBU1NUWVBFX1ZCQVNFQ0xBU1NFUyBsaXN0LgoJKiBpbml0LmMgKHNvcnRfYmFzZV9pbml0KTogVXNlIGJpbmZvX2Zvcl92YmFzZS4KCShjb25zdHJ1Y3RfdmlydHVhbF9iYXNlcyk6IEFkanVzdCBmb3IgY2hhbmdlcyB0byB0aGUKCUNMQVNTVFlQRV9WQkFTRUNMQVNTRVMgbGlzdC4KCShleHBhbmRfbWVtYmVyX2luaXQpOiBVc2UgYmluZm9fZm9yX3ZiYXNlLgoJKGJ1aWxkX3ZiYXNlX2RlbGV0ZSk6ICBBZGp1c3QgZm9yIGNoYW5nZXMgdG8gdGhlCglDTEFTU1RZUEVfVkJBU0VDTEFTU0VTIGxpc3QuCgkqIG1ldGhvZC5jIChkb19idWlsZF9jb3B5X2NvbnN0cnVjdG9yKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoZ2V0X2Jhc2Vfb2Zmc2V0KTogVXNlIGJpbmZvX2Zvcl92YmFzZS4KCShleHBhbmRfY2xhc3NfZGVzYyk6IFJlbW92ZSAjaWYgMCdkIGNvZGUuCgkqIHNlYXJjaC5jIChzdHJ1Y3QgdmJhc2VfaW5mbyk6IFJlbW92ZSB2YmFzZV90eXBlcy4KCShnZXRfYmFzZV9kaXN0YW5jZSk6ICBVc2UgYmluZm9fZm9yX3ZiYXNlLgoJKGxvb2t1cF9maWVsZF9xdWV1ZV9wKTogVXNlIENBTk9OSUNBTF9CSU5GTy4KCShnZXRfc2hhcmVkX3ZiYXNlX2lmX25vdF9wcmltYXJ5KTogVXNlIGJpbmZvX2Zvcl92YmFzZS4KCShnZXRfcHVyZV92aXJ0dWFscyk6IEFkanVzdCBmb3IgY2hhbmdlcyB0byB0aGUKCUNMQVNTVFlQRV9WQkFTRUNMQVNTRVMgbGlzdC4KCShkZnNfZmluZF92YmFzZXMpOiBVc2UgYmluZm9fZm9yX3ZiYXNlLgoJKGRmc19pbml0X3ZiYXNlX3BvaW50ZXJzKTogTGlrZXdpc2UuCgkoaW5pdF92YmFzZV9wb2ludGVycyk6IERvbid0IGluaXRpYWxpemUgdmkudmJhc2VfdHlwZXMuCgkodmlydHVhbF9jb250ZXh0KTogVXNlIGJpbmZvX2Zvcl92YmFzZS4KCShmaXh1cF9hbGxfdmlydHVhbF91cGNhc3Rfb2Zmc2V0cyk6IEFkanVzdCBmb3IgY2hhbmdlcyB0byB0aGUKCUNMQVNTVFlQRV9WQkFTRUNMQVNTRVMgbGlzdC4KCShleHBhbmRfaW5kaXJlY3RfdnRibHNfaW5pdCk6IFNpbXBsaWZ5LgoJKGRmc19nZXRfdmJhc2VfdHlwZXMpOiBEb24ndCByZXBsaWNhdGUgdmlydHVhbCBiYXNlcy4KCShmaW5kX3ZiYXNlX2luc3RhbmNlKTogVXNlIGJpbmZvX2Zvcl92YmFzZS4KCShiaW5mb19mb3JfdmJhc2UpOiBOZXcgZnVuY3Rpb24uCgkqIHR5cGVjay5jIChnZXRfZGVsdGFfZGlmZmVyZW5jZSk6IFVzZSBiaW5mb19mb3JfdmJhc2UuCgoyMDAwLTA1LTE3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoZmluaXNoX2Fub25fdW5pb24pOiBHZW5lcmFsaXplIGVycm9yIG1lc3NhZ2VzIHRvIGhhbmRsZQoJYW5vbnltb3VzIHN0cnVjdHVyZXMuCgkqIGluaXQuYyAocGVyZm9ybV9tZW1iZXJfaW5pdCk6IFJlbW92ZSBgbmFtZScgcGFyYW1ldGVyLgoJKGJ1aWxkX2ZpZWxkX2xpc3QpOiBOZXcgZnVuY3Rpb24uCgkoc29ydF9tZW1iZXJfaW5pdCk6IEhhbmRsZSBhbm9ueW1vdXMgdW5pb24gaW5pdGlhbGl6YXRpb24gb3JkZXIKCWNvcnJlY3RseS4gIENoZWNrIGZvciBtdWx0aXBsZSBpbml0aWFsaXphdGlvbnMgb2YgdGhlIHNhbWUgdW5pb24uCgkoZW1pdF9iYXNlX2luaXQpOiBEb24ndCBsb29rIHVwIGZpZWxkcyBieSBuYW1lIGhlcmUuCgkoZXhwYW5kX21lbWJlcl9pbml0KTogUmVjb3JkIHRoZSByZXN1bHQgb2YgbmFtZSBsb29rdXAgZm9yIGZ1dHVyZQoJcmVmZXJlbmNlLgoJKiB0eXBlY2suYyAoYnVpbGRfY29tcG9uZW50X3JlZik6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMC0wNS0xNyAgQW5kcmV3IENhZ25leSAgPGNhZ25leUBiMS5jeWdudXMuY29tPgoKCSogZGVjbC5jIChwb3BfbGFiZWwpOiBSZXBsYWNlIHdhcm5fdW51c2VkIHdpdGggd2Fybl91bnVzZWRfbGFiZWwuCgkqIHR5cGVjay5jIChidWlsZF94X2NvbXBvdW5kX2V4cHIpOiBSZXBsYWNlIHdhcm5fdW51c2VkIHdpdGgKCXdhcm5fdW51c2VkX3ZhbHVlLgoKCSogZGVjbDIuYyAobGFuZ19kZWNvZGVfb3B0aW9uKTogVXBkYXRlIC1XYWxsIHVudXNlZCBmbGFncyBieQoJY2FsbGluZyBzZXRfV3VudXNlZC4KCjIwMDAtMDUtMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlaCAoQklORk9fTkVXX1ZUQUJMRV9NQVJLRUQpOiBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCSogaW5pdC5jIChkZnNfdnRhYmxlX3BhdGhfdW5tYXJrKTogUmVtb3ZlLgoJKiBzZWFyY2guYyAobWFya2VkX25ld192dGFibGVfcCk6IExpa2V3aXNlLgoJKHVubWFya2VkX25ld192dGFibGVfcCk6IExpa2V3aXNlLgoJKGRmc19zZWFyY2hfc2xvdF9ub25lbXB0eV9wKTogTGlrZXdpc2UuCgkoZGZzX21hcmspOiBMaWtld2lzZS4KCShkZnNfdnRhYmxlX3BhdGhfdW5tYXJrKTogTGlrZXdpc2UuCgkoZGZzX2ZpbmRfdmJhc2VzKTogRG9uJ3Qgc2V0IEJJTkZPX05FV19WVEFCTEVfTUFSS0VELgoJKGRmc19pbnRfdmJhc2VfcG9pbnRlcnMpOiBEb24ndCBjbGVhciBCSU5GT19WVEFCTEVfUEFUSF9NQVJLRUQuCgkoZGZzX2luaXRfdmJhc2VfcG9pbnRlcnMpOiBSZW1vdmUgc3BlY2lhbC1jYXNlIG5ldyBBQkkgY29kZS4KCShkZnNfY2xlYXJfdmJhc2Vfc2xvdHMpOiBEb24ndCBjbGVhciBCSU5GT19ORVdfVlRBQkxFX01BUktFRC4KCShpbml0X3ZiYXNlX3BvaW50ZXJzKTogU2ltcGxpZnkuCgkoZXhwYW5kX2luZGlyZWN0X3Z0YmxzX2luaXQpOiBMaWtld2lzZS4KCgkqIGNsYXNzLmMgKGNvcHlfdmlydHVhbHMpOiBOZXcgZnVuY3Rpb24uCgkoYnVpbGRfcHJpbWFyeV90YWJsZSk6IFVzZSBpdC4KCShidWlsZF9zZWNvbmRhcnlfdnRhYmxlKTogTGlrZXdpc2UuCgkobW9kaWZ5X3Z0YWJsZV9lbnRyeSk6IFVzZSBOVUxMX1RSRUUsIG5vdCBpbnRlZ2VyX3plcm9fbm9kZSwgdG8KCWluZGljYXRlIHRoYXQgbm8gdmNhbGwgb2Zmc2V0IGlzIHJlcXVpcmVkLgoJKGFkZF92aXJ0dWFsX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkobW9kaWZ5X2FsbF92dGFibGVzKTogTGlrZXdpc2UuCgkoZGZzX2ZpbmlzaF92dGJscyk6IEFkanVzdCBjYWxsIHRvIGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIuCgkoZGZzX2FjY3VtdWxhdGVfdnRibF9pbml0cyk6IExpa2V3aXNlLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBNYWtlIGNoYW5nZXMgdG8gaGFuZGxlIGNvbnN0cnVjdGlvbgoJdnRhYmxlcy4KCShkZnNfYnVpbGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IExpa2V3aXNlLgoJKGJ1aWxkX3J0dGlfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgkoYnVpbGRfdnRhYmxlX2VudHJpZXMpOiBIYW5kbGUgYSBOVUxMIHZjYWxsX2luZGV4LgoKMjAwMC0wNS0xNSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAobGFuZ19kZWNvZGVfb3B0aW9uKTogRml4IHRoaW5rby4KCjIwMDAtMDUtMTQgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogZXhjZXB0LmMgKGNoZWNrX2hhbmRsZXJzKTogTmV3IGZuLgoJKiBjcC10cmVlLmg6IERlY2xhcmUgaXQuCgkqIHNlbWFudGljcy5jIChmaW5pc2hfaGFuZGxlcl9zZXF1ZW5jZSk6IENhbGwgaXQuCgkoZmluaXNoX2Z1bmN0aW9uX2hhbmRsZXJfc2VxdWVuY2UpOiBMaWtld2lzZS4KCShmaW5pc2hfaGFuZGxlcl9wYXJtcyk6IFNldCBUUkVFX1RZUEUgb24gdGhlIGhhbmRsZXIuCgkqIGNwLXRyZWUuaCAoUFVCTElDTFlfVU5JUVVFTFlfREVSSVZFRF9QKTogTmV3IG1hY3JvLgoJKiBzZWFyY2guYyAoZ2V0X2Jhc2VfZGlzdGFuY2VfcmVjdXJzaXZlKTogSWYgcHJvdGVjdD4xLCBpZ25vcmUKCXNwZWNpYWwgYWNjZXNzLgoJKGdldF9iYXNlX2Rpc3RhbmNlKTogRG9uJ3QgcmVkdWNlIHdhdGNoX2FjY2Vzcy4KCjIwMDAtMDUtMTMgIEdhYnJpZWwgRG9zIFJlaXMgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogbGV4LmM6ICNpbmNsdWRlIGRpYWdub3N0aWMuaC4KCShsYW5nX2luaXRfb3B0aW9ucyk6IFNldCBkZWZhdWx0IHByZWZpeGluZyBydWxlcy4KCgkqIGxhbmctb3B0aW9ucy5oOiBBZGQgLWZkaWFnbm9zdGljcy1zaG93LWxvY2F0aW9uPS4KCgkqIGRlY2wyLmM6ICNpbmNsdWRlIGRpYWdub3N0aWMuaC4KCShsYW5nX2RlY29kZV9vcHRpb24pOiBIYW5kbGUgLWZkaWFnbm9zdGljcy1zaG93LWxvY2F0aW9uPS4KCjIwMDAtMDUtMTIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0aW5mby5jYzogUmV2ZXJ0IG15IDIwMDAtMDUtMDggYW5kIDIwMDAtMDUtMDcgY2hhbmdlcy4KCSogdmVjLmNjOiBSZXZlcnQgbXkgMjAwMC0wNS0wNyBjaGFuZ2UuCgoyMDAwLTA1LTExICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIGNsYXNzLmMgKGNoZWNrX2ZpZWxkX2RlY2xzKTogQ29tcGxhaW4gYWJvdXQgbm9uLXN0YXRpYyBkYXRhCgltZW1iZXJzIHdpdGggc2FtZSBuYW1lIGFzIGNsYXNzIGluIGNsYXNzIHdpdGggY29uc3RydWN0b3IuCgoyMDAwLTA1LTEwICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBBbGxvdyBub24tc3RhdGljIGRhdGEgbWVtYmVycyB3aXRoCglzYW1lIG5hbWUgYXMgY2xhc3MuCgoyMDAwLTA1LTA5ICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuY3VtYi5vcmc+CgoJKiBjcC10cmVlLmg6IENvbnN0aWZ5IHRyZWVfc3JjbG9jLmZpbGVuYW1lLCB0aW5zdF9sZXZlbC5maWxlLAoJYW5kIHBlbmRpbmdfaW5saW5lLmZpbGVuYW1lLiAgVXBkYXRlIHByb3RvdHlwZXMuCgkqIGRlY2wuYyAoZGVmaW5lX2xhYmVsKTogQ29uc3RpZnkgZmlsZW5hbWUgcGFyYW1ldGVyLgoJKiBkZWNsMi5jICh3YXJuX2lmX3Vua25vd25faW50ZXJmYWNlKTogQ29uc3RpZnkgbG9jYWwgY2hhciAqLgoJKiBpbnB1dC5jIENvbnN0aWZ5IGlucHV0X3NvdXJjZS5maWxlbmFtZS4gRG9uJ3QgZGVjbGFyZQoJaW5wdXRfZmlsZW5hbWUgb3IgbGluZW5vLiAgQ29uc3RpZnkgZmlsZW5hbWUgcGFyYW1ldGVyIHRvIGZlZWRfaW5wdXQuCgkqIGxleC5jIChpbml0X3BhcnNlKTogQ29uc3RpZnkgcGFyYW1ldGVyIGFuZCByZXR1cm4gdmFsdWUuCgkoY3BfcHJhZ21hX2ludGVyZmFjZSwgY3BfcHJhZ21hX2ltcGxlbWVudGF0aW9uKTogQ29uc3RpZnkKCWZpbGVuYW1lIGFyZ3VtZW50LgoJKHJlaW5pdF9wYXJzZV9mb3JfbWV0aG9kLCByZWluaXRfcGFyc2VfZm9yX2Jsb2NrLAoJcmVpbml0X3BhcnNlX2Zvcl9leHByLCBmZWVkX2RlZmFyZywgaGFuZGxlX2NwX3ByYWdtYSk6CglDb25zdGlmeSBsb2NhbCBjaGFyICouCgkqIHB0LmM6IERvbid0IGRlY2xhcmUgbGluZW5vIG9yIGlucHV0X2ZpbGVuYW1lLgoJKHByaW50X3RlbXBsYXRlX2NvbnRleHQsIHRzdWJzdF9mcmllbmRfZnVuY3Rpb24sIHRzdWJzdF9kZWNsLAoJdHN1YnN0LCBpbnN0YW50aWF0ZV9kZWNsKTogQ29uc3RpZnkgbG9jYWwgY2hhciAqLgoJKiBzZW1hbnRpY3MuYyAoZXhwYW5kX2JvZHkpOiBDb25zdGlmeSBsb2NhbCBjaGFyICouCgkqIHRyZWUuYyAoYnVpbGRfc3JjbG9jKTogQ29uc3RpZnkgZmlsZW5hbWUgcGFyYW1ldGVyLgoJKiB0eXBlY2suYyAoY19leHBhbmRfYXNtX29wZXJhbmRzKTogQ29uc3RpZnkgZmlsZW5hbWUKCXBhcmFtZXRlci4KCjIwMDAtMDUtMDggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0aW5mby5jYyAoX19keW5hbWljX2Nhc3QpOiBVc2UgYSByZWludGVycHJldF9jYXN0LiBGaXgKCW9mZnNldG9mIGV4cGFuc2lvbi4KCjIwMDAtMDUtMDggIEJyYW5rbyBDaWJlaiAgPGJyYW5rby5jaWJlakBoZXJtZXMuc2k+CgoJKiBpbmMvY3h4YWJpLmg6ICBGaXggdHlwb3MgaW4gY29tbWVudC4KCShfX2Jhc2VfY2xhc3NfaW5mbzo6X19vZmZzZXQpOiBVc2UgYSBzdGF0aWNfY2FzdC4KCjIwMDAtMDUtMDcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbmMvY3h4YWJpLmg6IFVzZSBfX1NJWkVfVFlQRV8gYW5kIF9fUFRSRElGRl9UWVBFX18gaW4gcGxhY2UKCW9mIHN0ZDo6c2l6ZV90IGFuZCBzdGQ6OnB0cmRpZmZfdCByZXNwZWN0aXZlbHkuCgkqIHRpbmZvLmNjOiBMaWtld2lzZS4KCSogdmVjLmNjOiBMaWtld2lzZS4KCjIwMDAtMDUtMDYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQGN5Z251cy5jb20+CgoJKiB0eXBlY2suYyAoYnVpbGRfY19jYXN0KTogRG9uJ3Qgd2FybiBpbnRlZ2VyLT5wb2ludGVyIHNpemUKCW1pc21hdGNoIGZvciBjb25zdGFudHMuCgoyMDAwLTA1LTA2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcnR0aS5jIChwdG1kX2luaXRpYWxpemVyKTogU2V0IG5vbi1wdWJsaWMsIGlmIGNsYXNzIGlzCglpbmNvbXBsZXRlLgoKCSogaW5jL2N4eGFiaS5oIChfX2R5bmFtaWNfY2FzdCk6IEV4cGxpY2l0bHkgc2F5IGV4dGVybiAiQysrIi4KCShfX2N4YV92ZWNfbmV3LCBfX2N4YV92ZWNfY3RvciwgX19jeGFfdmVjX2R0b3IsCglfX2N4YV92ZWNfZGVsZXRlKTogTGlrZXdpc2UuCgkqIHRpbmZvLmNjIChfX2R5bmFtaWNfY2FzdCk6IExpa2V3aXNlLgoJKiB2ZWMuY2MgKF9fY3hhX3ZlY19uZXcsIF9fY3hhX3ZlY19jdG9yLCBfX2N4YV92ZWNfZHRvciwKCV9fY3hhX3ZlY19kZWxldGUpOiBMaWtld2lzZS4KCjIwMDAtMDUtMDQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKERFTFRBX0ZST01fVlRBQkxFX0VOVFJZKTogUmVtb3ZlLgoJKFNFVF9GTkFERFJfRlJPTV9WVEFCTEVfRU5UUlkpOiBMaWtld2lzZS4KCShsYW5nX2RlY2xfZmxhZ3MpOiBBZGQgdmNhbGxfb2Zmc2V0LgoJKFRIVU5LX1ZDQUxMX09GRlNFVCk6IFVzZSBpdC4KCSogZGVjbC5jIChsYW5nX21hcmtfdHJlZSk6IERvbid0IG1hcmsgREVDTF9BQ0NFU1MgZm9yIGEgdGh1bmsuCgkqIG1ldGhvZC5jIChtYWtlX3RodW5rKTogQ3JlYXRlIHRoZSBsYW5nX2RlY2wgaGVyZSwgbm90IGluCgllbWl0X3RodW5rLgoJKGVtaXRfdGh1bmspOiBNYWtlIGdlbmVyaWMgdGh1bmtzIGludG8gb3JkaW5hcnkgZnVuY3Rpb25zIG9uY2UKCXRoZXkgaGF2ZSBiZWVuIGZlZCB0byBleHBhbmRfYm9keS4KCSogc2VtYW50aWNzLmMgKGV4cGFuZF9ib2R5KTogU2V0IGN1cnJlbnRfZnVuY3Rpb25faXNfdGh1bmsgaGVyZS4KCjIwMDAtMDUtMDQgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGNsYXNzLmMgKHVwZGF0ZV92dGFibGVfZW50cnlfZm9yX2ZuKTogUHJvdG90eXBlLgoKCSogcHQuYyAodHN1YnN0X2RlY2wpOiBJbml0aWFsaXplIHZhcmlhYmxlcyBgYXJndmVjJywgYGdlbl90bXBsJwoJYW5kIGB0bXBsJy4KCgkqIHNlYXJjaC5jIChkZnNfYnVpbGRfaW5oZXJpdGFuY2VfZ3JhcGhfb3JkZXIpOiBQcm90b3R5cGUuCgoyMDAwLTA1LTA0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChzcGVjaWFsX2Z1bmN0aW9uX2tpbmQpOiBBZGQgdmFyaW91cyBraW5kcyBvZgoJZGVzdHJ1Y3RvcnMuCgkoc3BlY2lhbF9mdW5jdGlvbl9wKTogTmV3IGZ1bmN0aW9uLgoJKiBjbGFzcy5jIChvdmVycmlkZXMpOiBEb24ndCBsZXQgb25lIGtpbmQgb2YgZGVzdHJ1Y3RvciBvdmVycmlkZQoJYW5vdGhlci4KCSogZGVjbDIuYyAobWFya191c2VkKTogVXNlIERFQ0xfTk9OX1RIVU5LX0ZVTkNUSU9OX1Agd2hlbiBkZWNpZGluZwoJd2hldGhlciBvciBub3QgdG8gaW5zdGFudGlhdGUgYSB0ZW1wbGF0ZS4KCSogdHJlZS5jIChzcGVjaWFsX2Z1bmN0aW9uX3ApOiBEZWZpbmUuCgoyMDAwLTA1LTAzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5kZWYgKFRIVU5LX0RFQ0wpOiBSZW1vdmUuCgkqIGNwLXRyZWUuaCAoREVDTF9USFVOS19QKTogTmV3IG1hY3JvLgoJKERFQ0xfTk9OX1RIVU5LX0ZVTkNUSU9OX1ApOiBMaWtld2lzZS4KCShERUNMX0VYVEVSTl9DX0ZVTkNUSU9OX1ApOiBMaWtld2lzZS4KCShTRVRfREVDTF9USFVOS19QKTogTGlrZXdpc2UuCgkoREVMVEFfRlJPTV9WVEFCTEVfRU5UUlkpOiBVc2UgREVDTF9USFVOS19QLgoJKEZOQUREUl9GUk9NX1ZUQUJMRV9FTlRSWSk6IExpa2V3aXNlLgoJKERFQ0xfTUFJTl9QKTogVXNlIERFQ0xfRVhURVJOX0NfRlVOQ1RJT05fUC4KCSogZGVjbC5jIChkZWNsc19tYXRjaCk6IFVzZSBERUNMX0VYVEVSTl9DX1AuCgkoZHVwbGljYXRlX2RlY2xzKTogTGlrZXdpc2UuCgkocHVzaGRlY2wpOiBMaWtld2lzZS4gIEFkanVzdCB0aHVuayBoYW5kbGluZy4KCShncm9rZm5kZWNsKTogVXNlIERFQ0xfRVhURVJOX0NfUC4KCSogZGVjbDIuYyAobWFya192dGFibGVfZW50cmllcyk6IFVzZSBERUNMX1RIVU5LX1AuCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IFJlbW92ZSBUSFVOS19ERUNMIGhhbmRsaW5nLgoJKiBleGNlcHQuYyAobm90aHJvd19saWJmbl9wKTogVXNlIERFQ0xfRVhURVJOX0NfUC4KCSogZXhwci5jIChjcGx1c19leHBhbmRfZXhwcik6IFJlbW92ZSBUSFVOS19ERUNMIGhhbmRsaW5nLgoJKiBtZXRob2QuYyAobWFrZV90aHVuayk6IFVzZSBTRVRfREVDTF9USFVOS19QLiAgU2V0CglERUNMX05PX1NUQVRJQ19DSEFJTi4KCShlbWl0X3RodW5rKTogRG9uJ3QgcGxheSBnYW1lcyB3aXRoIFRSRUVfQ09ERSBvbiB0aHVua3MuICBEb24ndAoJc2V0IERFQ0xfREVTVFJVQ1RPUl9QIG9yIERFQ0xfQ09OU1RSVUNUT1JfUCBvbiBhIHRodW5rLgoJKiBzZWFyY2guYyAoY292YXJpYW50X3JldHVybl9wKTogUmVtb3ZlIFRIVU5LX0RFQ0wgaGFuZGxpbmcuCgkqIGlyLnRleGk6IFVwZGF0ZS4KCjIwMDAtMDUtMDEgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogdHJlZS5jICh3YWxrX3RyZWUpOiBTZXQgbGluZW5vLgoKMjAwMC0wNS0wMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGV4Y2VwdGlvbi5jYzogVXBkYXRlIGxpY2Vuc2Ugbm90aWNlLgoJKiBuZXcuY2M6IExpa2V3aXNlLgoJKiBuZXcxLmNjOiBMaWtld2lzZS4KCSogbmV3Mi5jYzogTGlrZXdpc2UuCgkqIHRpbmZvLmNjOiBMaWtld2lzZS4KCSogdGluZm8yLmNjOiBMaWtld2lzZS4KCSogdmVjLmNjOiBMaWtld2lzZS4KCSogaW5jL2N4eGFiaS5oOiBMaWtld2lzZS4KCSogaW5jL2V4Y2VwdGlvbjogTGlrZXdpc2UuCgkqIGluYy9uZXc6IExpa2V3aXNlLgoJKiBpbmMvbmV3Lmg6IExpa2V3aXNlLgoJKiBpbmMvdHlwZWluZm86IExpa2V3aXNlLgoKMjAwMC0wNS0wMSAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiB0cmVlLmMgKGJ1aWxkX3RhcmdldF9leHByX3dpdGhfdHlwZSk6IElmIHdlIGFscmVhZHkgaGF2ZSBhCglUQVJHRVRfRVhQUiwganVzdCByZXR1cm4gaXQuCgoJKiBvcHRpbWl6ZS5jIChpbml0aWFsaXplX2lubGluZWRfcGFyYW1ldGVycyk6IERvbid0IGdlbmVyYXRlIGFuCglFWFBSX1NUTVQgaWYgd2UgY2FuIGp1c3QgdXNlIERFQ0xfSU5JVElBTC4KCSogZGVjbC5jIChlbWl0X2xvY2FsX3Zhcik6IE9ubHkgbWFrZSB0aGUgaW5pdGlhbGl6YXRpb24gYQoJZnVsbC1leHByZXNzaW9uIGlmIHN0bXRzX2FyZV9mdWxsX2V4cHJzX3AuCgoyMDAwLTA1LTAxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChzYW1lX3R5cGVfaWdub3JpbmdfdG9wX2xldmVsX3F1YWxpZmllcnNfcCk6IE5ldwoJbWFjcm8uCgkqIGNhbGwuYyAoc3RhbmRhcmRfY29udmVyc2lvbik6IFVzZSBpdC4KCShkaXJlY3RfcmVmZXJlbmNlX2JpbmRpbmcpOiBMaWtld2lzZS4KCShidWlsZF9vdmVyX2NhbGwpOiBMaWtld2lzZS4KCShpc19wcm9wZXJseV9kZXJpdmVkX2Zyb20pOiBMaWtld2lzZS4KCShjb21wYXJlX2ljcyk6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChyZXNvbHZlc190b19maXhlZF90eXBlX3ApOiBMaWtld2lzZS4KCSogb3B0aW1pemUuYyAoZGVjbGFyZV9yZXR1cm5fdmFyaWFibGUpOiBMaWtld2lzZS4KCSogcHQuYyAoaXNfc3BlY2lhbGl6YXRpb25fb2YpOiBMaWtld2lzZS4KCSh1bmlmeSk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoY29tcF90YXJnZXRfcGFybXMpOiBMaWtlaXdzZS4KCShidWlsZF9zdGF0aWNfY2FzdCk6IExpa2V3aXNlLgoJKGJ1aWxkX3JlaW50ZXJwcmV0X2Nhc3QpOiBMaWtld2lzZS4KCShidWlsZF9jb25zdF9jYXN0KTogTGlrZXdpc2UuCgkoY29tcF9wdHJfdHR5cGVzX3JlYWwpOiBMaWtld2lzZS4KCShjb21wX3B0cl90dHlwZXNfY29uc3QpOiBMaWtld2lzZS4KCSogdHlwZWNrMi5jIChwcm9jZXNzX2luaXRfY29uc3RydWN0b3IpOiBMaWtld2lzZS4KCjIwMDAtMDQtMzAgIFNjb3R0IFNueWRlciA8c255ZGVyQGZuYWwuZ292PgoKCSogZGVjbC5jIChmaW5pc2hfZGVzdHJ1Y3Rvcl9ib2R5KTogVXNlIHRoZSBiYXNlIGRlc3RydWN0b3Igd2hlbgoJZGVzdHJveWluZyB2aXJ0dWFsIGJhc2VzLgoKMjAwMC0wNC0zMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGV4cHIuYyAoY3BsdXNfZXhwYW5kX2V4cHIpOiBQcmVzZXJ2ZSB0ZW1wb3JhcmllcyB3aGVuIGV4cGFuZGluZwoJU1RNVF9FWFBScy4KCSogb3B0aW1pemUuYyAoc3RydWN0IGlubGluZV9kYXRhKTogQWRkIHRhcmdldF9leHBycyBmaWVsZC4KCShkZWNsYXJlX3JldHVybl92YXJpYWJsZSk6IFdoZW4gYSBmdW5jdGlvbiByZXR1cm5zIGFuIGFnZ3JlZ2F0ZSwKCXVzZSB0aGUgdmFyaWFibGUgZGVjbGFyZWQgaW4gdGhlIFRBUkdFVF9FWFBSIGFzIHRoZSByZW1hcHBlZAoJREVDTF9SRVNVTFQuCgkoZXhwYW5kX2NhbGxfaW5saW5lKTogVXBkYXRlIHRoZSBwZW5kaW5nIHRhcmdldF9leHBycyBzdGFjay4KCShvcHRpbWl6ZV9mdW5jdGlvbik6IEluaXRpYWxpemUgdGhlIHN0YWNrLgoKCSogZGVjbDIuYyAoZmluaXNoX2ZpbGUpOiBGaXggdHlwbyBpbiBjb21tZW50LgoKCSogbWV0aG9kLmMgKGVtaXRfdGh1bmspOiBEb24ndCB0cnkgdG8gcmV0dXJuIGEgYHZvaWQnIHZhbHVlLgoKCSogb3B0aW1pemUuYyAoaW5pdGlhbGl6ZV9pbmxpbmVkX3BhcmFtZXRlcnMpOiBJZiB0aGUgcGFyYW1ldGVyIGlzCglhZGRyZXNzYWJsZSwgd2UgbmVlZCB0byBtYWtlIGEgbmV3IFZBUl9ERUNMLCBldmVuIGlmIHRoZQoJaW5pdGlhbGl6ZXIgaXMgY29uc3RhbnQuCgoyMDAwLTA0LTI4ICBDb3NtaW4gVHJ1dGEgIDxjb3NtaW50QGNzLnViYmNsdWoucm8+CgoJKiBkZWNsLmMgKGdyb2tfb3BfcHJvcGVydGllcyk6IEFkZCBhbiBleHRyYSBjaGVjayBvZiBhcmd0eXBlcy4KCjIwMDAtMDQtMjcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBvcHRpbWl6ZS5jIChjb3B5X2JvZHlfcik6IFVzZSBTVFJJUF9UWVBFX05PUFMgd2hlbiBjb3B5aW5nCgl2YXJpYWJsZXMuCgkoaW5pdGlhbGl6ZV9pbmxpbmVkX3BhcmFtZXRlcnMpOiBUcnkgdG8gYXZvaWQgY3JlYXRpbmcgbmV3CglWQVJfREVDTHMuCgoyMDAwLTA0LTI3ICBBbGV4IFNhbXVlbCAgPHNhbXVlbEBjb2Rlc291cmNlcnkuY29tPgoKCSogbGV4LmMgKG15X2dldF9ydW5fdGltZSk6IFJlbW92ZS4KCShpbml0X2ZpbGVuYW1lX3RpbWVzKTogVXNlIGdldF9ydW5fdGltZSBpbnN0ZWFkIG9mIG15X2dldF9ydW5fdGltZS4KCShjaGVja19uZXdsaW5lKTogTGlrZXdpc2UuCgkoZHVtcF90aW1lX3N0YXRpc3RpY3MpOiBMaWtld2lzZS4KCSogZGVjbDIuYyAoZmluaXNoX2ZpbGUpOiBQdXNoIGFuZCBwb3AgdGltZXZhciBUVl9WQVJDT05TVCBpbnN0ZWFkCglvZiBjb21wdXRpbmcgZWxhcHNlZCB0aW1lIGV4cGxpY2l0bHkuCgoyMDAwLTA0LTI2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChUUkVFX1JFQURPTkxZX0RFQ0xfUCk6IFVzZSBERUNMX1AuCgkqIGluaXQuYyAoZGVjbF9jb25zdGFudF92YWx1ZSk6IENoZWNrIFRSRUVfUkVBRE9OTFlfREVDTF9QLgoJKiBjYWxsLmMgKGNvbnZlcnRfbGlrZV9yZWFsKTogRG9uJ3QgdGVzdCBUUkVFX1JFQURPTkxZX0RFQ0xfUAoJYmVmb3JlIGNhbGxpbmcgZGVjbF9jb25zdGFudF92YWx1ZS4KCSogY2xhc3MuYyAoY2hlY2tfYml0ZmllbGRfZGVjbCk6IExpa2V3aXNlLgoJKiBjdnQuYyAob2NwX2NvbnZlcnQpOiBMaWtld2lzZS4KCShjb252ZXJ0KTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoY29tcHV0ZV9hcnJheV9pbmRleF90eXBlKTogTGlrZXdpc2UuCgkoYnVpbGRfZW51bWVyYXRvcik6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChjaGVja19jcF9jYXNlX3ZhbHVlKTogTGlrZXdpc2UuCgkqIHB0LmMgKGNvbnZlcnRfbm9udHlwZV9hcmd1bWVudCk6IExpa2V3aXNlLgoJKHRzdWJzdCk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoZGVjYXlfY29udmVyc2lvbik6IExpa2V3aXNlLgoJKGJ1aWxkX2NvbXBvdW5kX2V4cHIpOiBMaWtld2lzZS4KCShidWlsZF9yZWludGVycHJldF9jYXN0KTogTGlrZXdpc2UuCgkoYnVpbGRfY19jYXN0KTogTGlrZXdpc2UuCgkoY29udmVydF9mb3JfYXNzaWdubWVudCk6IExpa2V3aXNlLgoKMjAwMC0wNC0yNiAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBkZWNsLmMgKGZpbmlzaF9mdW5jdGlvbik6IERvbid0IHBsYXkgZ2FtZXMgd2l0aCBERUNMX0lOTElORS4KCjIwMDAtMDQtMjUgIEdhYnJpZWwgRG9zIFJlaXMgIDxkb3NyZWlzQGNtbGEuZW5zLWNhY2hhbi5mcj4KCgkqIGlyLnRleGk6IENvcnJlY3QgdHlwby4KCjIwMDAtMDQtMjUgIE1hcnRpbiB2LiBM9ndpcyAgPGxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBSZWplY3QgVkxBcyBhcyBtZW1iZXJzLgoKMjAwMC0wNC0yNCAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbC5jIChzdGFuZGFyZF9jb252ZXJzaW9uKTogQWNjZXB0IGNvbnZlcnNpb24gYmV0d2VlbgoJQ09NUExFWF9UWVBFcy4KCgkqIGN2dC5jIChvY3BfY29udmVydCk6IEhhbmRsZSBjb252ZXJzaW9uIHRvIENPTVBMRVhfVFlQRS4KCjIwMDAtMDQtMjQgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIGRlY2wyLmMgKGZpbmlzaF9maWxlKTogUmVtb3ZlIGRvdWJsZSBzZXR1cCBmb3IgYWNjb3VudGluZwoJY29tcGlsZSB0aW1lLgoKMjAwMC0wNC0yNCAgUm9iZXJ0IExpcGUgPHJvYmVydGxpcGVAdXNhLm5ldD4KCgkqIGNwLXRyZWUuaCAobGFuZ190eXBlKTogTWVtYmVyIGBsYW5ndWFnZScgbm93IEVOVU1fQklURklFTEQuCgoyMDAwLTA0LTIzICBCZW5qYW1pbiBLb3NuaWsgIDxia296QGN5Z251cy5jb20+CgoJKiBuZXcuY2MgKHNldF9uZXdfaGFuZGxlcik6IE5lZWRzIHRvIGJlIGluIHN0ZDo6LgoKMjAwMC0wNC0yMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAobGFuZ19kZWNsKTogUmVtb3ZlIHByZXR0eV9mdW5jdGlvbl9wLgoJKERFQ0xfUFJFVFRZX0ZVTkNUSU9OX1ApOiBVc2UgVFJFRV9MQU5HX0ZMQUdfMCwgbm90IGEgYml0IGluIHRoZQoJbGFuZ3VhZ2Utc3BlY2lmaWMgbm9kZS4KCSogZGVjbC5jIChjcF9tYWtlX2ZuYW1lX2RlY2wpOiBVc2UgYnVpbGRfZGVjbCwgbm90CglidWlsZF9sYW5nX2RlY2wsIHRvIGJ1aWxkIHRoZSB2YXJpYWJsZXMuCgkoZ3Jva3ZhcmRlY2wpOiBEb24ndCBjYWxsIGJ1aWxkX2xhbmdfZGVjbCBmb3IgbG9jYWwgdmFyaWFibGVzIGluCgl0ZW1wbGF0ZXMuCgkoZ3Jva2RlY2xhcmF0b3IpOiBEb24ndCBjYWxsIGJ1aWxkX2xhbmdfZGVjbCBmb3IgbG9jYWwgdHlwZQoJZGVjbGFyYXRpb25zIGluIHRlbXBsYXRlcy4KCSogbGV4LmMgKHJldHJvZml0X2xhbmdfZGVjbCk6IFVzZSBnZ2NfYWxsb2Nfb2JqIHRvIGFsbG9jYXRlZAoJemVybydkIG1lbW9yeSwgcmF0aGVyIHRoYW4gY2FsbGluZyBtZW1zZXQuCgkqIHB0LmM6IEluY2x1ZGUgaGFzaHRhYi5oLgoJKGxvY2FsX3NwZWNpYWxpemF0aW9ucyk6IE5ldyB2YXJpYWJsZS4KCShyZXRyaWV2ZV9sb2NhbF9zcGVjaWFsaXphdGlvbik6IFVzZSBpdC4KCShyZWdpc3Rlcl9sb2NhbF9zcGVjaWFsaXphdGlvbik6IExpa2V3aXNlLgoJKHRzdWJzdF9kZWNsKTogRG9uJ3QgYXNzdW1lIGxvY2FsIHZhcmlhYmxlcyBoYXZlCglERUNMX0xBTkdfU1BFQ0lGSUMuCgkoaW5zdGFudGlhdGVfZGVjbCk6IFNldCB1cCBsb2NhbF9zcGVjaWFsaXphdGlvbnMuCgkqIE1ha2VmaWxlLmluIChIVEFCX0gpOiBOZXcgdmFyaWFibGUuCgoyMDAwLTA0LTIzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogdHlwZWNrLmMgKGNfZXhwYW5kX2FzbV9vcGVyYW5kcyk6IFJlc3RvcmUgdGhlIG9yaWdpbmFsCgljb250ZW50cyBvZiB0aGUgb3V0cHV0IGxpc3QuCgoyMDAwLTA0LTIyICBHYWJyaWVsIERvcyBSZWlzIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGlyLnRleGk6ICBEb2N1bWVudCBjb21wbGV4IG51bWJlciByZXByZXNlbnRhdGlvbi4KCjIwMDAtMDQtMjAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBydHRpLmMgKGluaXRfcnR0aV9wcm9jZXNzaW5nKTogU2V0IHRpbmZvX3Zhcl9pZCBpbiBuZXctYWJpLgoJKHRhcmdldF9pbmNvbXBsZXRlX3ApOiBOZXcgZnVuY3Rpb24uCgkodGluZm9fYmFzZV9pbml0KTogQ3JlYXRlIGNvbWRhdCBOVEJTIG5hbWUgdmFyaWFibGUuCgkocHRyX2luaXRpYWxpemVyKTogQWRkIG5vbl9wdWJsaWMgcGFyYW1ldGVyLiBDYWxjdWxhdGUgaXQuCgkocHRtZF9pbml0aWFsaXplcik6IExpa2V3aXNlLgoJKHN5bnRoZXNpemVfdGluZm9fdmFyKTogQWRqdXN0LiBFbWl0IGluY29tcGxldGUgY2xhc3MgdGluZm8uCgkoY3JlYXRlX3JlYWxfdGluZm9fdmFyKTogQWRkIG5vbl9wdWJsaWMgcGFyYW1ldGVyLiBVc2UgaXQuCglQdXNoIHByb3h5IGludG8gZ2xvYmFsIG5hbWVzcGFjZS4KCSogaW5jL2N4eGFiaS5oIChfX3BvaW50ZXJfdHlwZV9pbmZvOjppbmNvbXBsZXRlX2NsYXNzX21hc2spOgoJTmV3IGVudW1lcmF0aW9uLgoJKiBpbmMvdHlwZWluZm8gKHR5cGVfaW5mbzo6YmVmb3JlLCB0eXBlX2luZm86Om9wZXJhdG9yPT0pOgoJQ29tcGFyZSBfX25hbWUgYWRkcmVzc2VzLgoKCSogdGluZm8yLmNjOiBSZW1vdmUgbmV3LWFiaSBidWlsdGlucyBjb21tZW50LgoKMjAwMC0wNC0yMCAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiB0eXBlY2suYyAoYnVpbGRfeF9mdW5jdGlvbl9jYWxsKTogUmVzb2x2ZSBhbiBPRkZTRVRfUkVGLgoKCSogY2FsbC5jIChqb3VzdCk6IEV4aXQgZWFybHkgaWYgd2UgZ2V0IHRoZSBzYW1lIGZ1bmN0aW9uLCB0b28uCgoJKiBkZWNsMi5jIChrZXlfbWV0aG9kKTogUmV0dXJuIE5VTExfVFJFRSBmb3IgdGVtcGxhdGUgY2xhc3Nlcy4KCShpbXBvcnRfZXhwb3J0X2NsYXNzKTogRG9uJ3QgbmVlZCB0byBjaGVjayBmb3IgdGVtcGxhdGUgY2xhc3Nlcy4KCjIwMDAtMDQtMTggIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIGxleC5jOiBSZW1vdmUgcmVmZXJlbmNlcyB0byBjY2NwLmMuCgoyMDAwLTA0LTE4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChsYW5nX2RlY2xfZmxhZ3MpOiBSZW1vdmUgY29uc3RfbWVtZnVuYyBhbmQKCXZvbGF0aWxlX21lbWZ1bmMuICBBZGQgZGVzdHJ1Y3Rvcl9hdHRyLiAgQWRqdXN0IGR1bW15LgoJKERFQ0xfREVTVFJVQ1RPUl9QKTogVXNlIGRlc3RydWN0b3JfYXR0ci4KCShERUNMX0NPTlNUX01FTUZVTkNfUCk6IFJlaW1wbGVtZW50LgoJKERFQ0xfVk9MQVRJTEVfTUVNRlVOQ19QKTogUmVtb3ZlLgoJKiBjbGFzcy5jIChmaW5pc2hfc3RydWN0X21ldGhvZHMpOiBVc2UgQ0xBU1NUWVBFX0RFU1RSVUNUT1JTLgoJKG92ZXJyaWRlcyk6IFVzZSBERUNMX0RFU1RSVUNUT1JfUC4KCShjaGVja19mb3Jfb3ZlcnJpZGUpOiBMaWtld2lzZS4KCSogZGVjbC5jIChzdGFydF9mdW5jdGlvbik6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChncm9rZmNsYXNzZm4pOiBMaWtld2lzZS4KCShjaGVja19jbGFzc2ZuKTogTGlrZXdpc2UuCgkoZ3Jva19mdW5jdGlvbl9pbml0KTogTGlrZXdpc2UuCgoyMDAwLTA0LTE3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoZ3Jva2ZpZWxkKTogSXNzdWUgZXJyb3Igb24gaWxsZWdhbCBkYXRhIG1lbWJlcgoJZGVjbGFyYXRpb24uCgoyMDAwLTA0LTE3ICBNYXJrIFAgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtZXRob2QuYyAobWFrZV90aHVuayk6IFNldCBERUNMX0NPTlRFWFQgZm9yIGEgVEhVTktfREVDTC4KCjIwMDAtMDQtMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChidWlsZF92dGFibGVfZW50cnkpOiBEb24ndCBidWlsZCB0aHVua3MgZm9yIHR5cGUtaW5mbwoJZnVuY3Rpb25zLgoKMjAwMC0wNC0xNiAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBkZWNsLmMgKGRlY2xzX21hdGNoKTogQWxsb3cgYSByZWRlY2xhcmF0aW9uIG9mIGEgYnVpbHRpbiB0bwoJc3BlY2lmeSBhcmdzIHdoaWxlIHRoZSBidWlsdGluIGRpZCBub3QuCgoyMDAwLTA0LTE1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5kZWYgKFRIVU5LX0RFQ0wpOiBBZGQgdG8gZG9jdW1lbnRhdGlvbi4KCSogY3AtdHJlZS5oIChmbGFnX2h1Z2Vfb2JqZWN0cyk6IERlY2xhcmUuCgkqIGNsYXNzLmMgKG1vZGlmeV92dGFibGVfZW50cnkpOiBUaWR5LgoJKHVwZGF0ZV92dGFibGVfZW50cnlfZm9yX2ZuKTogU3BsaXQgb3V0IGZyb20gZGZzX21vZGlmeV92dGFibGVzLgoJQ2FsY3VsYXRlIGRlbHRhIGFwcHJvcHJpYXRlbHkgZm9yIHRoZSBuZXcgQUJJLgoJKGRmc19tb2RpZnlfdnRhYmxlcyk6IFVzZSBpdC4KCShtb2RpZnlfYWxsX3Z0YWJsZXMpOiBGaXggdGhpbmtvIGluIGNvZGUgdG8gYWRkIG92ZXJyaWRpbmcgY29waWVzCglvZiBmdW5jdGlvbnMgdG8gcHJpbWFyeSB2dGFibGVzLgoJKGJ1aWxkX2Nsb25lKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShjbG9uZV9mdW5jdGlvbl9kZWNsKTogQ29ycmVjdCBvcmRlciBvZiBkZXN0cnVjdG9ycyBpbiB2dGFibGUuCgkoYnVpbGRfdmJhc2Vfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IEFkanVzdCBjb21tZW50LgoJKGRmc192Y2FsbF9vZmZzZXRfcXVldWVfcCk6IFJlbW92ZS4KCShkZnNfYnVpbGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IFVwZGF0ZSBCVl9WQ0FMTF9JTkRFWC4KCShidWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogSnVzZSB1c2UgZGZzX3NraXBfdmJhc2VzLgoJKGJ1aWxkX3Z0YWJsZV9lbnRyeSk6IENvcnJlY3QgY2hlY2sgZm9yIHB1cmUgdmlydHVhbCBmdW5jdGlvbnMuCglEb24ndCBkZWNsYXJlIGZsYWdfaHVnZV9vYmplY3RzLgoJKiBkZWNsLmMgKGZsYWdfaHVnZV9vYmplY3RzKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKiBtZXRob2QuYyAobWFrZV90aHVuayk6IFR3ZWFrIG1hbmdsaW5nIGZvciB2Y2FsbCBvZmZzZXQgdGh1bmtzLgoJVXNlIGludF9zaXplX2luX2J5dGVzLgoJKGVtaXRfdGh1bmspOiBIYW5kbGUgdmNhbGwgb2Zmc2V0IHRodW5rcy4KCjIwMDAtMDQtMTUgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiBkZWNsMi5jIChwYXJzZV90aW1lLCB2YXJjb25zdF90aW1lKTogRGVsZXRlIGRlY2xhcmF0aW9ucy4KCShmaW5pc2hfZmlsZSk6IERlbGV0ZSBMSU5FTk8gZGVjbGFyYXRpb24uCglTVEFSVF9USU1FIGFuZCBUSElTX1RJTUUgbm93IGxvbmcuCgoyMDAwLTA0LTEzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoYnVpbGRfYmFzZV9maWVsZCk6IFJlZm9ybWF0IGNvbW1lbnQuCgoJKiBpbmMvY3h4YWJpLmggKHN0ZGRlZi5oKTogQ29tbWVudCBpbmNsdXNpb24uCgkoX19iYXNlX2NsYXNzX2luZm86Ol9fb2Zmc2V0KTogQ29tbWVudCBzaGlmdC4KCjIwMDAtMDQtMTIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKElERU5USUZJRVJfQ1RPUl9PUl9EVE9SX1ApOiBOZXcgbWFjcm8uCgkoY3BfdHJlZV9pbmRleCk6IEFkZCBDUFRJX1BVU0hfRVhDRVBUSU9OX0lERU5USUZJRVIuCgkoY3BfcHVzaF9leGNlcHRpb25faWRlbnRpZmllcik6IE5ldyBtYWNyby4KCShERUNMX0NPTVBMRVRFX0RFU1RSVUNUT1JfUCk6IE5ldyBtYWNyby4KCShERUNMX0JBU0VfREVTVFJVQ1RPUl9QKTogTGlrZXdpc2UuCgkoREVDTF9ERUxFVElOR19ERVNUUlVDVE9SX1ApOiBMaWtld2lzZS4KCShnZXRfdnRibF9kZWNsX2Zvcl9iaW5mbyk6IEZpeCBmb3JtYXR0aW5nLgoJKGluX2NoYXJnZV9hcmdfZm9yX25hbWUpOiBOZXcgbWFjcm8uCgkobWF5YmVfYnVpbGRfY2xlYW51cF9hbmRfZGVsZXRlKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKiBjYWxsLmMgKGJ1aWxkX2ZpZWxkX2NhbGwpOiBVc2UgSURFTlRJRklFUl9DVE9SX09SX0RUT1JfUC4KCShpbl9jaGFyZ2VfYXJnX2Zvcl9uYW1lKTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX25ld19tZXRob2RfY2FsbCk6IFVzZSBpdC4gIEhhbmRsZSBjbG9uZWQgZGVzdHJ1Y3RvcnMuCgkoYnVpbGRfY2xvbmUpOiBEb24ndCBtYWtlIHRoZSBiYXNlIGNvbnN0cnVjdG9yIHZpcnR1YWwuCglBdXRvbWF0aWNhbGx5IGRlZmVyIGdlbmVyYXRlZCBmdW5jdGlvbnMuCgkoY2xvbmVfZnVuY3Rpb25fZGVjbCk6IEhhbmRsZSBkZXN0cnVjdG9ycywgdG9vLgoJKGNsb25lX2NvbnN0cnVjdG9yc19hbmRfZGVzdHJ1Y3RvcnMpOiBMaWtld2lzZS4KCShjcmVhdGVfdnRhYmxlX3B0cik6IERvbid0IGNyZWF0ZSBhIHZ0YWJsZSBlbnRyeSBmb3IgYSBjbG9uZWQKCWZ1bmN0aW9uLgoJKiBkZWNsLmMgKHByZWRlZmluZWRfaWRlbnRpZmllcik6IEFkZCBjdG9yX29yX2R0b3JfcC4KCShpbml0aWFsaXplX3ByZWRlZmluZWRfaWRlbnRpZmllcnMpOiBVcGRhdGUgYXBwcm9wcmlhdGVseS4KCShmaW5pc2hfZGVzdHJ1Y3Rvcl9ib2R5KTogU2ltcGxpZnkuCgkobWF5YmVfYnVpbGRfY2xlYW51cF9hbmRfZGVsZXRlKTogUmVtb3ZlLgoJKiBleGNlcHQuYyAoZXhwYW5kX3Rocm93KTogSGFuZGxlIG5ldy1BQkkgZGVzdHJ1Y3RvcnMuCgkqIGluaXQuYyAoZXhwYW5kX2NsZWFudXBfZm9yX2Jhc2UpOiBVc2UgYmFzZV9kdG9yX2lkZW50aWZpZXIuCgkoYnVpbGRfZHRvcl9jYWxsKTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX2RlbGV0ZSk6IFVzZSBpdC4gIFNpbXBsaWZ5LgoJKiBvcHRpbWl6ZS5jIChtYXliZV9jbG9uZV9ib2R5KTogSGFuZGxlIGRlc3RydWN0b3JzLgoJKiBzZWFyY2guYyAobG9va3VwX2ZpZWxkX3F1ZXVlX3ApOiBVc2UgSURFTlRJRklFUl9DVE9SX09SX0RUT1JfUC4KCgkqIGV4Y2VwdGlvbi5jYyAoY2xlYW51cF9mbik6IE5ldyB0eXBlZGVmLgoJKENBTExfQ0xFQU5VUCk6IE5ldyBtYWNyby4KCShjcF9laF9pbmZvKTogVXNlIHRoZW0uCgkoX19jcF9wdXNoX2V4Y2VwdGlvbik6IExpa2V3aXNlLgoJKF9fY3BfcG9wX2V4Y2VwdGlvbik6IExpa2V3aXNlLgoKMjAwMC0wNC0xMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoY3BfdHJlZV9pbmRleCk6IEFkZCBDUFRJX0RUT1JfSURFTlRJRklFUi4KCShjb21wbGV0ZV9kdG9yX2lkZW50aWZpZXIpOiBOZXcgbWFjcm8uCgkoQ0xBU1NUWVBFX0ZJUlNUX0NPTlZFUlNJT04pOiBSZW1vdmUuCgkoQ0xBU1NUWVBFX0NPTlNUUlVDVE9SX1NMT1QpOiBOZXcgbWFjcm8uCgkoQ0xBU1NUWVBFX0RFU1RSVUNUT1JfU0xPVCk6IExpa2V3aXNlLgoJKENMQVNTVFlQRV9GSVJTVF9DT05WRVJTSU9OX1NMT1QpOiBMaWtld2lzZS4KCShDTEFTU1RZUEVfQ09OU1RSVUNUT1JTKTogTGlrZXdpc2UuCgkoQ0xBU1NUWVBFX0RFU1RSVUNUT1JTKTogTGlrZXdpc2UuCgkobGFuZ19kZWNsKTogQWRkIGNsb25lZF9mdW5jdGlvbi4KCShERUNMX0NPTVBMRVRFX0NPTlNUUlVDVE9SX1ApOiBOZXcgbWFjcm8uCgkoREVDTF9CQVNFX0NPTlNUUlVDVE9SX1ApOiBMaWtld2lzZS4KCShERUNMX01BWUJFX0lOX0NIQVJHRV9DT05TVFJVQ1RPUl9QKTogTGlrZXdpc2UuCgkoREVDTF9NQVlCRV9JTl9DSEFSR0VfREVTVFJVQ1RPUl9QKTogTGlrZXdpc2UuCgkoREVDTF9DTE9ORURfRlVOQ1RJT05fUCk6IExpa2V3aXNlLgoJKERFQ0xfQ0xPTkVEX0ZVTkNUSU9OKTogTGlrZXdpc2UuCgkoY2xvbmVfZnVuY3Rpb25fZGVjbCk6IERlY2xhcmUuCgkobWF5YmVfY2xvbmVfYm9keSk6IExpa2V3aXNlLgoJKiBjYWxsLmMgKGJ1aWxkX3VzZXJfdHlwZV9jb252ZXJzaW9uXzEpOiBDYWxsIGNvbXBsZXRlIG9iamVjdAoJY29uc3RydWN0b3JzIGluIHRoZSBuZXcgQUJJLgoJKGJ1aWxkX25ld19tZXRob2RfY2FsbCk6IERvbid0IGFkZCBpbi1jaGFyZ2UgcGFyYW1ldGVycyB1bmRlciB0aGUKCW5ldyBBQkkuCgkqIGNsYXNzLmMgKGFkZF9tZXRob2QpOiBVc2UgREVDTF9NQVlCRV9JTl9DSEFSR0VfQ09OU1RSVUNUT1JfUCwKCURFQ0xfTUFZQkVfSU5fQ0hBUkdFX0RFU1RSVUNUT1JfUCwgQ0xBU1NUWVBFX0NPTlNUUlVDVE9SX1NMT1QsIGFuZAoJQ0xBU1NUWVBFX0RFU1RSVUNUT1JfU0xPVC4KCShidWlsZF9jbG9uZSk6IE5ldyBmdW5jdGlvbi4KCShjbG9uZV9mdW5jdGlvbl9kZWNsKTogTGlrZXdpc2UuCgkoY2xvbmVfY29uc3RydWN0b3JzX2FuZF9kZXN0cnVjdG9ycyk6IExpa2V3aXNlLgoJKGNoZWNrX2Jhc2VzX2FuZF9tZW1iZXJzKTogVXNlIGl0LgoJKiBkZWNsLmMgKGluaWl0aWFsaXplX3ByZWRlZmluZWRfaWRlbnRpZmllcnMpOiBJbml0aWFsaXplCgljb21wbGV0ZV9kdG9yX2lkZW50aWZpZXIuCgkoZmluaXNoX2Z1bmN0aW9uKTogRG9uJ3QgYWRkIGV4dHJhIGNvZGUgdG8gYSBjbG9uZS4KCShsYW5nX21hcmtfdHJlZSk6IE1hcmsgY2xvbmVkX2Z1bmN0aW9uLgoJKiBkZWNsMi5jIChtYXJrX3VzZWQpOiBEb24ndCBib3RoZXIgdHJ5aW5nIHRvIGluc3RhbnRpYXRlIHRoaW5ncwoJd2Ugc3ludGhlc2l6ZWQuCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IERvbid0IGR1bXAgQ1BfREVDTF9DT05URVhUIHR3aWNlLgoJKiBtZXRob2QuYyAoc2V0X21hbmdsZWRfbmFtZV9mb3JfZGVjbCk6IERvbid0IHRyZWF0IGNsb25lcyBhcwoJY29uc3RydWN0b3JzLgoJKHN5bnRoZXNpemVfbWV0aG9kKTogU3l0aGVzaXplIGNsb25lZCBmdW5jdGlvbnMsIG5vdCB0aGUgY2xvbmVzLgoJKiBvcHRpbWl6ZS5jIChpbmxpbmVfZGF0YSk6IFVwZGF0ZSBjb21tZW50IG9uIHJldF9sYWJlbC4KCShyZW1hcF9ibG9jayk6IERvbid0IGFzc3VtZSBERUNMX0lOSVRJQUwgZXhpc3RzLgoJKGNvcHlfYm9keV9yKTogQWxsb3cgcmV0X2xhYmVsIHRvIGJlIE5VTEwuCgkobWF5YmVfY2xvbmVfYm9keSk6IERlZmluZS4KCSogcHQuYyAodHN1YnN0X2RlY2wpOiBIYW5kbGUgY2xvbmVzLgoJKGluc3RhbnRpYXRlX2Nsb25lKTogTmV3IGZ1bmN0aW9uLgoJKGluc3RhbnRpYXRlX3RlbXBsYXRlKTogVXNlIGl0LgoJKHNldF9tYW5nbGVkX25hbWVfZm9yX3RlbXBsYXRlX2RlY2wpOiBEb24ndCB0cmVhdCBjbG9uZXMgYXMKCWNvbnN0cnVjdG9ycy4KCSogc2VhcmNoLmMgKGxvb2t1cF9mbmZpZWxkc18xKTogVXNlIENMQVNTVFlQRV9DT05TVFJVQ1RPUl9TTE9ULAoJQ0xBU1NUWVBFX0RFU1RSVUNUT1JfU0xPVCwgYW5kIENMQVNTVFlQRV9GSVJTVF9DT05WRVJTSU9OX1NMT1QuCgkqIHNlbWFudGljcy5jIChleHBhbmRfYm9keSk6IENsb25lIGZ1bmN0aW9uIGJvZGllcyBhcyBuZWNlc3NhcnkuCgoJKiBvcHRpbWl6ZS5jIChyZW1hcF9kZWNsKTogQXZvaWQgc2hhcmluZyBzdHJ1Y3R1cmUgZm9yIGFycmF5cwoJd2hvc2Ugc2l6ZSBpcyBvbmx5IGtub3duIGF0IHJ1bi10aW1lLgoJKiB0cmVlLmMgKGNvcHlfdHJlZV9yKTogRG9uJ3QgY29weSBQQVJNX0RFQ0xzLgoKCSogY3AtdHJlZS5oIChsYW5nX2RlY2xfZmxhZ3MpOiBSZW5hbWUgY29uc3RydWN0b3JfZm9yX3ZiYXNlX2F0dHIKCXRvIGhhc19pbl9jaGFyZ2VfcGFybV9wLgoJKERFQ0xfQ09OU1RSVUNUT1JfRk9SX1ZCQVNFX1ApOiBSZW5hbWUgdG8gLi4uCgkoREVDTF9IQVNfSU5fQ0hBUkdFX1BBUk1fUCk6IC4uLiB0aGlzLgoJKERFQ0xfQ09QWV9DT05TVFJVQ1RPUl9QKTogTmV3IG1hY3JvLgoJKiBjYWxsLmMgKGFkZF9mdW5jdGlvbl9jYW5kaWRhdGUpOiBVc2UgREVDTF9IQVNfSU5fQ0hBUkdFX1BBUk1fUC4KCShidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xKTogTGlrZXdpc2UuCgkoY29udmVydF9saWtlX3JlYWwpOiBMaWtld2lzZS4KCShidWlsZF9vdmVyX2NhbGwpOiBMaWtlaXdzZS4gIFVzZSBERUNMX0NPUFlfQ09OU1RSVUNUT1JfUC4KCSogZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IFVzZSBERUNMX0hBU19JTl9DSEFSR0VfUEFSTV9QLgoJKGNvcHlfYXJnc19wKTogTGlrZXdpc2UuCgkoZ3Jva19jdG9yX3Byb3BlcnRpZXMpOiBMaWtld2lzZS4KCShzdGFydF9mdW5jdGlvbik6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChtYXliZV9yZXRyb2ZpdF9pbl9jaGFyZ2UpOiBMaWtld2lzZS4gIFNldCBpdC4KCSogZXJyb3IuYyAoZHVtcF9mdW5jdGlvbl9kZWNsKTogVXNlIERFQ0xfSEFTX0lOX0NIQVJHRV9QQVJNX1AuCgkqIGluaXQuYyAoZW1pdF9iYXNlX2luaXQpOiBVc2UgREVDTF9DT1BZX0NPTlNUUlVDVE9SX1AuCgkqIG1ldGhvZC5jIChkb19idWlsZF9jb3B5X2NvbnN0cnVjdG9yKTogVXNlCglERUNMX0hBU19JTl9DSEFSR0VfUEFSTV9QLgoJKHN5bnRoZXNpemVfbWV0aG9kKTogTGlrZXdpc2UuCgkqIHB0LmMgKGluc3RhbnRpYXRlX3RlbXBsYXRlKTogUmVtb3ZlIGdvdG8uCgkqIHRyZWUuYyAoYnVpbGRfY3BsdXNfbWV0aG9kX3R5cGUpOiBSZW1vdmUgbWVudGlvbiBvZiBvYnN0YWNrcyBpbgoJY29tbWVudC4KCgkqIGNwLXRyZS5oIChmaW5pc2hfZnVuY3Rpb24pOiBDaGFuZ2UgcHJvdG90eXBlLgoJKiBkZWNsLmMgKGVuZF9jbGVhbnVwX2ZuKTogQWRqdXN0IGNhbGxlci4KCShmaW5pc2hfZnVuY3Rpb24pOiBUYWtlIG9ubHkgb25lIHBhcmFtZXRlci4KCSogZGVjbDIuYyAoZmluaXNoX29iamVjdHMpOiBBZGp1c3QgY2FsbGVyLgoJKGZpbmlzaF9zdGF0aWNfc3RvcmFnZV9kdXJhdGlvbl9mdW5jdGlvbik6IExpa2V3aXNlLgoJKiBtZXRob2QuYyAoZW1pdF90aHVuayk6IExpa2V3aXNlLgoJKiBwYXJzZS55OiBMaWtld2lzZS4KCSogcGFyc2UuYzogUmVnZW5lcmF0ZWQuCgkqIHB0LmMgKGluc3RhbnRpYXRlX2RlY2wpOiBMaWtld2lzZS4KCSogcnR0aS5jIChzeW50aGVzaXplX3RpbmZvX2ZuKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChleHBhbmRfYm9keSk6IExpa2V3aXNlLgoKCSogY3AtdHJlZS5oIChjb3B5X2RlY2wpOiBOZXcgZnVuY3Rpb24uCgkqIGNsYXNzLmMgKGZpbmlzaF9zdHJ1Y3RfMSk6IFVzZSBpdC4KCSogbGV4LmMgKGNvcHlfZGVjbCk6IERlZmluZSBpdC4KCSogcHQuYyAodHN1YnN0X2RlY2wpOiBMaWtld2lzZS4KCSogdHJlZS5jIChjb3B5X3RlbXBsYXRlX3RlbXBsYXRlX3Bhcm0pOiBMaWtld2lzZS4KCgkqIGNwLXRyZWUuaCAobGFuZ190eXBlKTogUmVtb3ZlIGhhc19ub25wdWJsaWNfY3RvciBhbmQKCWhhc19ub25wdWJsaWNfYXNzaWduX3JlZi4KCShUWVBFX0hBU19OT05QVUJMSUNfQ1RPUik6IERvbid0IGRlY2xhcmUuCgkoVFlQRV9IQVNfTk9OUFVCTElDX0FTU0lHTl9SRUYpOiBMaWtld2lzZS4KCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdF9tZXRob2RzKTogRG9uJ3Qgc2V0CglUWVBFX0hBU19OT05QVUJMSUNfQ1RPUiBvciBUWVBFX0hBU19OT05QVUJMSUNfQVNTSUdOX1JFRi4KCShpbnRlcmZhY2Vfb25seSk6IERvbid0IGRlY2xhcmUuCgkoaW50ZXJmYWNlX3Vua25vd24pOiBMaWtld2lzZS4KCjIwMDAtMDQtMTEgIE1hcnRpbiB2LiBM9ndpcyAgPGxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KCgkqIHRyZWUuaCAoSEFWRV9URU1QTEFURVMpOiBSZW1vdmUgZGVmaW5pdGlvbi4KCSogbGFuZy1vcHRpb25zLmggKC1mdGhpcy1pcy12YXJpYWJsZSk6IFJlbW92ZSBkb2N1bWVudGF0aW9uLgoKMjAwMC0wNC0xMCAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBjbGFzcy5jIChpbnN0YW50aWF0ZV90eXBlKTogSGFuZGxlIG9iamVjdC1yZWxhdGl2ZSB0ZW1wbGF0ZS1pZC4KCgkqIHNlbWFudGljcy5jIChmaW5pc2hfZXhwcl9zdG10KTogQ2FsbCBjb252ZXJ0X3RvX3ZvaWQgaGVyZS4KCSogZGVjbC5jIChjcGx1c19leHBhbmRfZXhwcl9zdG10KTogTm90IGhlcmUuCgoJKiBydHRpLmMgKGJ1aWxkX2R5bmFtaWNfY2FzdF8xKTogQ2FsbCBub25fbHZhbHVlLgoJSW5pdGlhbGl6ZSBleHBydHlwZSBlYXJsaWVyLgoKCSogcGFyc2UueSAoZm4uZGVmMSk6IENoZWNrIGZvciBkZWZpbmluZyB0eXBlcyBpbiByZXR1cm4gdHlwZXMuCgoJKiBkZWNsLmMgKGNoZWNrX3RhZ19kZWNsKTogTm90aWNlIGV4dHJhIGZ1bmRhbWVudGFsIHR5cGVzLgoJRGlhZ25vc2UgZW1wdHkgZGVjbHMgaW4gY2xhc3NlcywgdG9vLgoKCSogZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IERvbid0IG92ZXJyaWRlIGFuIGFub255bW91cyBuYW1lIGlmIG5vCglkZWNsYXJhdG9yIHdhcyBnaXZlbi4KCgkqIGN2dC5jIChjb252ZXJ0X3RvX3ZvaWQpOiBDYWxsIHJlc29sdmVfb2Zmc2V0X3JlZi4KCgkqIHR5cGVjay5jIChidWlsZF94X2Z1bmN0aW9uX2NhbGwpOiBBYm9ydCBpZiB3ZSBnZXQgYW4gT0ZGU0VUX1JFRi4KCgkqIGRlY2wyLmMgKGRlY2xfbmFtZXNwYWNlKTogSGFuZGxlIGdldHRpbmcgYSB0eXBlLgoKCSogdHlwZWNrLmMgKGJ1aWxkX2NfY2FzdCk6IFJlLWVuYWJsZSB3YXJuaW5nIGZvciBjYXN0IGJldHdlZW4KCXBvaW50ZXIgYW5kIGludGVnZXIgb2YgZGlmZmVyZW50IHNpemUuCgoyMDAwLTA0LTEwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogaW5jL2N4eGFiaS5oIChfX3BvaW50ZXJfdHlwZV9pbmZvKTogQWRkIHJlc3RyaWN0IGFuZAoJaW5jb21wbGV0ZSBmbGFncy4KCShfX3BvaW50ZXJfdHlwZV9pbmZvOjpfX3BvaW50ZXJfY2F0Y2gpOiBOZXcgdmlydHVhbCBmdW5jdGlvbi4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mbyk6IERlcml2ZSBmcm9tCglfX3BvaW50ZXJfdHlwZV9pbmZvLiBBZGp1c3QuCgkoX19wb2ludGVyX3RvX21lbWJlcl90eXBlX2luZm86Ol9fZG9fY2F0Y2gpOiBSZW1vdmUuCgkoX19wb2ludGVyX3RvX21lbWJlcl90eXBlX2luZm86Ol9faXNfcG9pbnRlcl9wKTogRGVjbGFyZS4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mbzo6X19wb2ludGVyX2NhdGNoKTogRGVjbGFyZS4KCSogcnR0aS5jIChxdWFsaWZpZXJfZmxhZ3MpOiBBZGQgcmVzdHJpY3QgZmxhZy4KCShwdG1kX2luaXRpYWxpemVyKTogUmVvcmRlciBtZW1iZXJzLgoJKGNyZWF0ZV90aW5mb190eXBlcyk6IEV4cGFuZCBjb21tZW50cy4gUmVvcmRlcgoJcHRtZF9kZXNjX3R5cGVfbm9kZSBtZW1iZXJzLgoJKiB0aW5mbzIuY2MgKF9fcG9pbnRlcl90b19tZW1iZXJfdHlwZV9pbmZvOjpfX2lzX3BvaW50ZXJfcCk6CglJbXBsZW1lbnQuCgkoX19wb2ludGVyX3R5cGVfaW5mbzo6X19kb19jYXRjaCk6IE1vdmUgc3BlY2lmaWMgY29kZSBpbnRvCglfX3BvaW50ZXJfY2F0Y2guIENhbGwgaXQuCgkoX19wb2ludGVyX3R5cGVfaW5mbzo6X19wb2ludGVyX2NhdGNoKTogTm9uLXBvaW50ZXItdG8tbWVtYmVyCglzcGVjaWZpYyBjYXRjaCBjaGVja2luZy4gRml4IHZvaWQgY29udmVyc2lvbiBjaGVjay4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mbzo6X19kb19jYXRjaCk6IFJlbW92ZS4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mbzo6X19wb2ludGVyX2NhdGNoKTogSW1wbGVtZW50LgoKMjAwMC0wNC0xMCAgTWFydGluIHYuIEz2d2lzICA8bG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlPgoKCSogbGV4LmMgKGluaXRfcGFyc2UpOiBSZW1vdmUgdHJhY2VzIG9mIGNsYXNzb2YgYW5kIGhlYWRvZi4KCSogZGVjbDIuYyAoZmxhZ19vcGVyYXRvcl9uYW1lcyk6IERlZmF1bHQgdG8gMS4KCShsYW5nX2RlY29kZV9vcHRpb24pOiBEbyBub3Qgc2V0IGl0IGZvciAtYW5zaS4KCjIwMDAtMDQtMDkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBsYW5nX2RlY2wpOiBSZW1vdmUgbWFpbl9kZWNsX3ZhcmlhbnQuCgkoREVDTF9NQUlOX1ZBUklBTlQpOiBSZW1vdmUuCgkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogRG9uJ3Qgc2V0IGl0LgoJKHN0YXJ0X2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkobGFuZ19tYXJrX3RyZWUpOiBEb24ndCBtYXJrIGl0LgoJKiBkZWNsMi5jIChkZWZlcl9mbik6IERvbid0IHVzZSBpdC4KCSogbGV4LmMgKHJldHJvZml0X2xhbmdfZGVjbCk6IERvbid0IHNldCBpdC4KCSogcHQuYyAodHN1YnN0X2RlY2wpOiBMaWtld2lzZS4KCSogcHRyZWUuYyAocHJpbnRfbGFuZ19kZWNsKTogRG9uJ3QgcHJpbnQgaXQuCgkqIHR5cGVjay5jIChtYXJrX2FkZHJlc3NhYmxlKTogRG9uJ3QgdXNlIGl0LgoKMjAwMC0wNC0wOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHZlYy5jYzogSW5jbHVkZSA8bmV3PiBhbmQgPGV4Y2VwdGlvbj4uCgkoX19jeGFfdmVjX2N0b3IpOiBVc2UgX19jeGFfdmVjX2R0b3IgZm9yIGNsZWFudXAuCgkoX19jeGFfdmVjX2R0b3IpOiBDYXRjaCBkdG9yIGV4Y2VwdGlvbnMsIGFuZCByZXRocm93IG9yCgl0ZXJtaW5hdGUuCgkoX19jeGFfdmVjX2RlbGV0ZSk6IENhdGNoIGR0b3IgZXhjZXB0aW9ucy4KCjIwMDAtMDQtMDkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUHJlcGVuZCBfXyB0byBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIG5hbWVzLgoJKiBpbmMvdHlwZWluZm8gKHR5cGVfaW5mbyk6IFJlbmFtZSBfbmFtZSB0byBfX25hbWUuCgkodHlwZV9pbmZvOjp0eXBlX2luZm8pOiBSZW5hbWUgcGFyYW1ldGVyLgoJKHR5cGVfaW5mbzo6b3BlcmF0b3I9PSwgdHlwZV9pbmZvOjpvcGVyYXRvciE9LAoJdHlwZV9pbmZvOjpiZWZvcmUpOiBMaWtld2lzZS4KCSh0eXBlX2luZm86OmlzX3BvaW50ZXJfcCwgdHlwZV9pbmZvOjppc19mdW5jdGlvbl9wLAoJdHlwZV9pbmZvOjpkb19jYXRjaCwgdHlwZV9pbmZvOjpkb191cGNhc3QpOiBQcmVwZW5kIF9fLiBSZW5hbWUKCXBhcmFtZXRlcnMuCgkqIGluYy9jeHhhYmkuaAoJKF9fZnVuZGFtZW50YWxfdHlwZV9pbmZvOjpfX2Z1bmRhbWVudGFsX3R5cGVfaW5mbykgUmVuYW1lIHBhcmFtZXRlcnMuCgkoX19wb2ludGVyX3R5cGVfaW5mbzo6X19wb2ludGVyX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fcG9pbnRlcl90eXBlX2luZm86OmlzX3BvaW50ZXJfcCwKCV9fcG9pbnRlcl90eXBlX2luZm86OmRvX2NhdGNoKTogUHJlcGVuZCBfXy4gUmVuYW1lIHBhcmFtZXRlcnMuCgkoX19hcnJheV90eXBlX2luZm86Ol9fYXJyYXlfdHlwZV9pbmZvKTogUmVuYW1lIHBhcmFtZXRlcnMuCgkoX19mdW5jdGlvbl90eXBlX2luZm86Ol9fZnVuY3Rpb25fdHlwZV9pbmZvKTogTGlrZXdpc2UuCgkoX19mdW5jdGlvbl90eXBlX2luZm86OmlzX2Z1bmN0aW9uX3ApOiBQcmVwZW5kIF9fLgoJKF9fZW51bV90eXBlX2luZm86Ol9fZW51bV90eXBlX2luZm8pOiBSZW5hbWUgcGFyYW1ldGVycy4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX3R5cGVfaW5mbzo6X19wb2ludGVyX3RvX21lbWJlcl90eXBlX2luZm8pOgoJTGlrZXdpc2UuCgkoX19wb2ludGVyX3RvX21lbWJlcl90eXBlX2luZm86OmRvX2NhdGNoKTogUHJlcGVuZCBfXy4gUmVuYW1lCglwYXJhbWV0ZXJzLgoJKF9fYmFzZV9jbGFzc19pbmZvOjppc192aXJ0dWFsX3AsIGlzX3B1YmxpY19wLCBvZmZzZXQpOiBQcmVwZW5kCV9fLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpfX2NsYXNzX3R5cGVfaW5mbyk6IFJlbmFtZSBwYXJhbWV0ZXJzLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpzdWJfa2luZCk6IFByZXBlbmQgX18uIEFkanVzdCBtZW1iZXIgbmFtZXMuCgkoX19jbGFzc190eXBlX2luZm86OnVwY2FzdF9yZXN1bHQsCglfX2NsYXNzX3R5cGVfaW5mbzo6ZHluY2FzdF9yZXN1bHQpOiBQcmVwZW5kIF9fLiBNb3ZlIGRlZmluaXRpb24KCWludG8gdGluZm8uY2MuCgkoX19jbGFzc190eXBlX2luZm86OmRvX3VwY2FzdCwgX19jbGFzc190eXBlX2luZm86OmRvX2NhdGNoLAoJX19jbGFzc190eXBlX2luZm86OmZpbmRfcHVibGljX3NyYywKCV9fY2xhc3NfdHlwZV9pbmZvOjpkb19keW5jYXN0LAoJX19jbGFzc190eXBlX2luZm86OmRvX2ZpbmRfcHVibGljX3NyYyk6IFByZXBlbmQgX18uIFJlbmFtZQoJcGFyYW1ldGVycy4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6X19zaV9jbGFzc190eXBlX2luZm8pOiBSZW5hbWUgcGFyYW1ldGVycy4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6ZG9fdXBjYXN0LCBfX3NpX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCwKCV9fc2lfY2xhc3NfdHlwZV9pbmZvOjpkb19maW5kX3B1YmxpY19zcmMpOiBQcmVwZW50IF9fLiBSZW5hbWUKCXBhcmFtZXRlcnMuCgkoX192bWlfY2xhc3NfdHlwZV9pbmZvOjpfX3ZtaV9jbGFzc190eXBlX2luZm8pOiBSZW5hbWUgcGFyYW1ldGVycy4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86OmRvX3VwY2FzdCwgX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkb19keW5jYXN0LAoJX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkb19maW5kX3B1YmxpY19zcmMpOiBQcmVwZW50IF9fLiBSZW5hbWUKCXBhcmFtZXRlcnMuCgkoX19keW5hbWljX2Nhc3QpOiBSZW5hbWUgcGFyYW1ldGVycy4KCSogdGluZm8uY2MgKHR5cGVfaW5mbzo6aXNfcG9pbnRlcl9wLCB0eXBlX2luZm86OmlzX2Z1bmN0aW9uX3AsCgl0eXBlX2luZm86OmRvX2NhdGNoLCB0eXBlX2luZm86OmRvX3VwY2FzdCk6IFByZXBlbmQgX18uCgkoY29udGFpbmVkX3AsIHB1YmxpY19wLCB2aXJ0dWFsX3AsIGNvbnRhaW5lZF9wdWJsaWNfcCwKCWNvbnRhaW5lZF9ub25wdWJsaWNfcCwgY29udGFpbmVkX25vbnZpcnR1YWxfcCk6IEFkanVzdC4KCShfX2NsYXNzX3R5cGVfaW5mbzo6ZG9fY2F0Y2gsCglfX2NsYXNzX3R5cGVfaW5mbzo6ZG9fdXBjYXN0KTogUHJlcGVuZCBfXy4gQWRqdXN0LgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpfX3VwY2FzdF9yZXN1bHQsCglfX2NsYXNzX3R5cGVfaW5mbzo6X19keW5jYXN0X3Jlc3VsdCk6IE1vdmUgZnJvbSBpbmMvY3h4YWJpLmguCglBZGp1c3QuCgkoX19jbGFzc190eXBlX2luZm86OmZpbmRfcHVibGljX3NyYyk6IFByZXBlbmQgX18uIEFkanVzdC4KCShfX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZmluZF9wdWJsaWNfc3JjLAoJX19zaV9jbGFzc190eXBlX2luZm86OmRvX2ZpbmRfcHVibGljX3NyYywKCV9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZmluZF9wdWJsaWNfc3JjKTogTGlrZXdpc2UuCgkoX19jbGFzc190eXBlX2luZm86OmRvX2R5bmNhc3QsCglfX3NpX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCwKCV9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCk6IExpa2V3aXNlLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpkb191cGNhc3QsCglfX3NpX2NsYXNzX3R5cGVfaW5mbzo6ZG9fdXBjYXN0LAoJX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkb191cGNhc3QpOiBMaWtld2lzZS4KCShfX2R5bmFtaWNfY2FzdCk6IEFkanVzdC4KCSogdGluZm8yLmNjIChfX3BvaW50ZXJfdHlwZV9pbmZvOjppc19wb2ludGVyX3ApOiBQcmVwZW5kIF9fLgoJKF9fZnVuY3Rpb25fdHlwZV9pbmZvOjppc19mdW5jdGlvbl9wKTogTGlrZXdpc2UuCgkoX19wb2ludGVyX3R5cGVfaW5mbzo6ZG9fY2F0Y2gpOiBMaWtld2lzZS4gQWRqdXN0LgoJKF9fcG9pbnRlcl90b19tZW1iZXJfdHlwZV9pbmZvOjpkb19jYXRjaCk6IExpa2V3aXNlLiBBZGp1c3QuCgkoX190aHJvd190eXBlX21hdGNoX3J0dGlfMik6IEFkanVzdC4KCShfX2lzX3BvaW50ZXIpOiBBZGp1c3QuCgoyMDAwLTA0LTA4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChjcF90cmVlX2luZGV4KTogQWRkIENQVElfQ09NUExFVEVfQ1RPUl9JREVOVElGSUVSLgoJKGNvbXBsZXRlX2N0b3JfaWRlbnRpZmllcik6IE5ldyBtYWNyby4KCShzcGVjaWFsX2Z1bmN0aW9uX2tpbmQpOiBBZGQgc2ZrX2NvcHlfY29uc3RydWN0b3IgYW5kCglzZmtfYXNzaWdubWVudF9vcGVyYXRvci4KCShMT09LVVBfSEFTX0lOX0NIQVJHRSk6IFJlbW92ZS4KCShjb25zX3VwX2RlZmF1bHRfZnVuY3Rpb24pOiBSZW5hbWUgdG8gLi4uCgkoaW1wbGljaXRseV9kZWNsYXJlX2ZuKTogLi4uIHRoaXMuCgkqIGNhbGwuYyAoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogQWRkIGluLWNoYXJnZSBwYXJhbWV0ZXJzIGZvcgoJY29uc3RydWN0b3JzIGhlcmUuCgkqIGNsYXNzLmMgKGFkZF9pbXBsaWNpdGx5X2RlY2xhcmVkX21lbWJlcnMpOiBDaGFuZ2UgcGFyYW1ldGVyIG5hbWUKCWZyb20gY2FudF9oYXZlX2Fzc2lnbm1lbnQgdG8gY2FudF9oYXZlX2NvbnN0X2Fzc2lnbm1lbnQuCglSZXBsYWNlIGNhbGxzIHRvIGNvbnNfdXBfZGVmYXVsdF9mdW5jdGlvbiB0byBpbXBsaWNpdGx5X2RlY2xhcmVfZm4uCgkqIGN2dC5jIChvY3BfY29udmVydCk6IFVzZSBjb21wbGV0ZV9jdG9yX2lkZW50aWZpZXIuCgkqIGRlY2wuYyAoaW5pdGlhbGl6ZV9wcmVkZWZpbmVkX2lkZW50aWZpZXJzKTogSW5pdGlhbGl6ZSBpdC4KCShzdGFydF9mdW5jdGlvbik6IFVzZSBERUNMX0NPTlNUUlVDVE9SX0ZPUl9WQkFTRV9QIGluc3RlYWQgb2YKCWNvbXBsZXggZXhwcmVzc2lvbi4KCSogaW5pdC5jIChleHBhbmRfZGVmYXVsdF9pbml0KTogRG9uJ3QgY2FsY3VsYXRlIHRoZSBpbi1jaGFyZ2UKCXBhcmFtZXRlciBoZXJlLgoJKGJ1aWxkX25ld18xKTogTGlrZXdpc2UuCgkqIGxleC5jIChjb25zX3VwX2RlZmF1bHRfZnVuY3Rpb24pOiBNb3ZlIHRvIG1ldGhvZC5jLgoJKiBtZXRob2QuYyAoc3ludGhlc2l6ZV9tZXRob2QpOiBVc2UgREVDTF9ERVNUUlVDVE9SX1AuCgkoaW1wbGljaXRseV9kZWNsYXJlX2ZuKTogTmV3IGZ1bmN0aW9uLgoJKiB0eXBlY2suYyAoYnVpbGRfc3RhdGljX2Nhc3QpOiBVc2UgY29tcGxldGVfY3Rvcl9pZGVudGlmaWVyLgoJKGJ1aWxkX21vZGlmeV9leHByKTogTGlrZXdpc2UuCgkqIHR5cGVjazIuYyAoYnVpbGRfZnVuY3Rpb25hbF9jYXN0KTogTGlrZXdpc2UuCgoJVW5kZXIgdGhlIG5ldyBBQkksIGNvbnN0cnVjdG9ycyBkb24ndCByZXR1cm4gYHRoaXMnLgoJKiBjcC10cmVlLmggKHdhcm5fcmVvcmRlcik6IERlY2xhcmUuCgkoc3BlY2lhbF9mdW5jdGlvbl9raW5kKTogTmV3IGVudW0uCgkoZ2xvYmFsX2Jhc2VfaW5pdF9saXN0KTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKGVtaXRfYmFzZV9pbml0KTogRG9uJ3QgcmV0dXJuIGEgdmFsdWUuCgkoY2hlY2tfYmFzZV9pbml0KTogRG9uJ3QgZGVjbGFyZS4KCShpc19hZ2dyX3R5cGVkZWYpOiBMaWtld2lzZS4KCSogZGVjbC5jIChjaGVja19zcGVjaWFsX2Z1bmN0aW9uX3JldHVybl90eXBlKTogTmV3IGZ1bmN0aW9uLgoJKHJldHVybl90eXBlcyk6IFJlbW92ZS4KCShncm9rZGVjbGFyYXRvcik6IFVzZSBjaGVja19zcGVjaWFsX2Z1bmN0aW9uX3JldHVybl90eXBlLgoJKHN0YXJ0X2Z1bmN0aW9uKTogRG9uJ3QgaW5pdGlhbGl6ZSBjdG9yX2xhYmVsIHVuZGVyIHRoZSBuZXcgQUJJLgoJKGZpbmlzaF9jb25zdHJ1dG9yX2JvZHkpOiBEb24ndCBjcmVhdGUgYSBjb3JyZXNwb25kaW5nIExBQkVMX1NUTVQuCgkqIGluaXQuYyAoYmVnaW5faW5pdF9zdG10cyk6IE1vdmUgdG8gdG9wIG9mIGZpbGUuCgkoZmluaXNoX2luaXRfc3RtdHMpOiBMaWtld2lzZS4KCSh3YXJuX3Jlb3JkZXIpOiBEb24ndCBkZWNsYXJlLgoJKGVtaXRfYmFzZV9pbml0KTogRG9uJ3QgY3JlYXRlIGEgU1RNVF9FWFBSIGhlcmUuICBEb24ndCByZXR1cm4gYQoJdmFsdWUuCgkoY2hlY2tfYmFzZV9pbml0KTogUmVtb3ZlLgoJKGlzX2FnZ3JfdHlwZWRlZik6IExpa2V3aXNlLgoJKGJ1aWxkX25ld18xKTogRG9uJ3QgdXNlIHRoZSByZXR1cm4gdmFsdWUgb2YgYSBjb25zdHJ1Y3Rvci4KCSogc2VtYW50aWNzLmMgKHNldHVwX3Z0YmxfcHRyKTogRG9uJ3QgdXNlIHRoZSByZXR1cm4gdmFsdWUKCW9mIGVtaXRfYmFzZV9pbml0LgoJKiB0eXBlY2suYyAoY2hlY2tfcmV0dXJuX2V4cHIpOiBEb24ndCBtYWdpY2FsbHkgY29udmVydCByZXR1cm4KCXN0YXRlbWVudHMgaW50byBgcmV0dXJuIHRoaXMnIGluIGNvbnN0cnVjdG9ycyB1bmRlciB0aGUgbmV3IEFCSS4KCgkqIGNwLXRyZWUuaCAoY3BfdHJlZV9pbmRleCk6IEFkZCBDUFRJX0JBU0VfQ1RPUl9JREVOVElGSUVSLAoJQ1BUSV9CQVNFX0RUT1JfSURFTlRJRklFUiwgYW5kIENQVElfREVMRVRJTkdfRFRPUl9JREVOVElGSUVSLgoJKGJhc2VfY3Rvcl9pZGVudGlmaWVyKTogTmV3IG1hY3JvLgoJKGJhc2VfZHRvcl9pZGVudGlmaWVyKTogTGlrZXdpc2UuCgkoZGVsZXRpbmdfZHRvcl9pZGVudGlmaWVyKTogTGlrZXdpc2UuCgkqIGRlY2wuYzogRG9uJ3QgaW5jbHVkZSBvYnN0YWNrLmguCgkob2JzdGFja19jaHVua19hbGxvYyk6IERvbid0IGRlZmluZS4KCShvYnN0YWNrX2NodW5rX2ZyZWUpOiBMaWtld2lzZS4KCShzdHJ1Y3QgcHJlZGVmaW5lZF9pZGVudGlmaWVyKTogTmV3IHR5cGUuCgkoaW5pdGlhbGl6ZV9wcmVkZWZpbmVkX2lkZW50aWZpZXJzKTogTmV3IGZ1bmN0aW9uLgoJKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogVXNlIGl0LgoJKGRlYnVnX3RlbXBfaW5pdHMpOiBSZW1vdmUuCgkoc3RhcnRfbWV0aG9kKTogRG9uJ3QgY2FsbCBwcmVzZXJ2ZV9kYXRhLgoJKGhhY2tfaW5jb21wbGV0ZV9zdHJ1Y3R1cmVzKTogVXBkYXRlIGNvbW1lbnQuCgkqIGluaXQuYyAoaW5pdF9pbml0X3Byb2Nlc3NpbmcpOiBEb24ndCBpbml0aWFsaXplCgluZWx0c19pZGVudGlmaWVyLgoJKGJ1aWxkX29mZnNldF9yZik6IFJlbW92ZSBkZWFkIGNvZGUuCgkoYnVpbGRfZGVsZXRlKTogVXNlIENMQVNTVFlQRV9OX0JBU0VDTEFTU0VTLgoJKiBzZWFyY2guYyAoaW5pdF9zZWFyY2hfcHJvY2Vzc2luZyk6IERvbid0IGluaXRpYWxpemUKCXZwdHJfaWRlbnRpZmllci4KCjIwMDAtMDQtMDggIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIHR5cGVjay5jIChidWlsZF9iaW5hcnlfb3ApOiBDYWxsIGB0cmVlX2V4cHJfbm9ubmVnYXRpdmVfcCcgdG8gZWxpZGUKCXNvbWUgc2lnbl9jb21wYXJlIHdhcm5pbmdzLgoKMjAwMC0wNC0wNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglSZW5hbWUgYWJpOjpfX3ZtaV9jbGFzc190eXBlX2luZm8gbWVtYmVycy4KCSogaW5jL2N4eGFiaS5oIChfX3ZtaV9jbGFzc190eXBlX2luZm8pOiBSZW5hbWUgZGV0YWlscywgbl9iYXNlcywKCWJhc2VfbGlzdCwgZGV0YWlsX21hc2tzIG1lbWJlcnMgdG8gdm1pX2ZsYWdzLCB2bWlfYmFzZV9jb3VudCwKCXZtaV9iYXNlcyBhbmQgdm1pX2ZsYWdzX21hc2tzIHJlc3BlY3RpdmVseS4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86OnZtaV9mbGFnc19tYXNrcyk6IFJlbmFtZQoJZGV0YWlsc191bmtub3duX21hc2sgdG8gZmxhZ3NfdW5rbm93bl9tYXNrLgoJKiB0aW5mby5jYyAoX19jbGFzc190eXBlX2luZm86OmRvX3VwY2FzdCk6IEFkanVzdC4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86OmRvX2ZpbmRfcHVibGljX3NyYyk6IEFkanVzdC4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86OmRvX2R5bmNhc3QpOiBBZGp1c3QuCgkoX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkb191cGNhc3QpOiBBZGp1c3QuCgoyMDAwLTA0LTA3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdGluZm8uY2MgKGNvbnZlcnRfdG9fYmFzZSk6IE5ldyBmdW5jdGlvbi4KCShnZXRfdmJhc2Vfb2Zmc2V0KTogUmVtb3ZlLiBNb3ZlIGludG8gY29udmVydF90b19iYXNlLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZmluZF9wdWJsaWNfc3JjKTogQWRqdXN0LgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCk6IEFkanVzdC4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86OmRvX3VwY2FzdCk6IEFkanVzdC4KCjIwMDAtMDQtMDYgIEphc29uIE1lcnJpbGwgIDxqYXNvbkB5b3JpY2suY3lnbnVzLmNvbT4KCgkqIHRpbmZvLmNjIChvcGVyYXRvcj0pOiBVc2UgX19idWlsdGluX3N0cmNtcC4KCSogdGluZm8yLmNjIChiZWZvcmUpOiBMaWtld2lzZS4KCjIwMDAtMDQtMDYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGxhbmdfZGVjbF9mbGFncyk6IFJlbmFtZSBzYXZlZF9pbmxpbmUgdG8gZGVmZXJyZWQuCgkoREVDTF9TQVZFRF9JTkxJTkUpOiBSZW5hbWUgdG8gLi4uCgkoREVDTF9ERUZFUlJFRF9GTik6IC4uLiB0aGlzLgoJKGluX2Z1bmN0aW9uX3ApOiBSZW1vdmUgZGVjbGFyYXRpb24uCgkobWFya19pbmxpbmVfZm9yX291dHB1dCk6IFJlbmFtZSB0byAuLi4KCShkZWZlcl9mbik6IC4uLiB0aGlzLgoJKiBkZWNsLmMgKGZpbmlzaF9mdW5jdGlvbik6IEFkanVzdCBjYWxsIHRvIG1hcmtfaW5saW5lX2Zvcl9vdXRwdXQuCgkoaW5fZnVuY3Rpb25fcCk6IFJlbW92ZSBkZWZpbml0aW9uLgoJKiBkZWNsMi5jIChzYXZlZF9pbmxpbmVzKTogUmVuYW1lIHRvIC4uLgoJKGRlZmVycmVkX2Zucyk6IC4uLiB0aGlzLgoJKHNhdmVkX2lubGluZXNfdXNlZCk6IFJlbmFtZSB0byAuLi4KCShkZWZlcnJlZF9mbnNfdXNlZCk6IC4uLiB0aGlzLgoJKG1hcmtfaW5saW5lX2Zvcl9vdXRwdXQpOiBSZW5hbWUgdG8gLi4uCgkoZGVmZXJfZm4pOiAuLi4gdGhpcy4KCShmaW5pc2hfZmlsZSk6IEFkanVzdCBhY2NvcmRpbmdseS4KCShpbml0X2RlY2wyKTogTGlrZXdpc2UuCgkqIGxleC5jIChjb25zX3VwX2RlZmF1bHRfZnVuY3Rpb24pOiBMaWtld2lzZS4KCSogcHQuYyAobWFya19kZWNsX2luc3RhbnRpYXRlZCk6IExpa2V3aXNlLgoJKGluc3RhbnRpYXRlX2RlY2wpOiBEb24ndCBzZXQgREVDTF9ERUZFUl9PVVRQVVQgdW5kZXIgYW55CgljaXJjdW1zdGFuY2VzLgoJKiBydHRpLmMgKGdldF90aW5mb19kZWNsKTogQWRqdXN0IGNhbGwgdG8gbWFya19pbmxpbmVfZm9yX291dHB1dC4KCSogc2VtYW50aWNzLmMgKGV4cGFuZF9ib2R5KTogRGVmZXIgbW9yZSBmdW5jdGlvbnMuCgoyMDAwLTA0LTA2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdmVjLmNjOiBOZXcgZmlsZS4KCSogTWFrZS1sYW5nLmluIChDWFhfTElCMkZVTkNTKTogQWRkIGl0LgoJKHZlYy5vKTogQnVpbGQgaXQuCgkqIGluYy9jeHhhYmkuaCAoX19jeGFfdmVjX25ldywgX19jeGFfdmVjX2N0b3IsIF9fY3hhX3ZlY19kdG9yLAoJX19jeGFfdmVjX2RlbGV0ZSk6IERlY2xhcmUuCgoyMDAwLTA0LTA2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcnR0aS5jIChkZnNfY2xhc3NfaGludF9tYXJrKTogTmV3IHN0YXRpYyBmdW5jdGlvbi4KCShkZnNfY2xhc3NfaGludF91bm1hcmspOiBOZXcgc3RhdGljIGZ1bmN0aW9uLgoJKGNsYXNzX2hpbnRfZmxhZ3MpOiBVc2UgdGhlbS4KCjIwMDAtMDQtMDUgIEJlbmphbWluIEtvc25payAgPGJrb3pAY3lnbnVzLmNvbT4KCgkqIGRlY2wyLmM6IE1ha2UgZmxhZ19ob25vcl9zdGQgZGVwZW5kZW50IG9uIEVOQUJMRV9TVERfTkFNRVNQQUNFLgoKMjAwMC0wNC0wNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoaW5zdGFudGlhdGVfZGVjbCk6IENoYW5nZSBwcm90b3R5cGUuCgkqIGRlY2wyLmMgKG1hcmtfdXNlZCk6IEFkanVzdCBjYWxsLgoJKiBvcHRpbWl6ZS5jIChpbmxpbmFibGVfZnVuY3Rpb25fcCk6IEFkanVzdCBoYW5kbGluZyBvZiB0ZW1wbGF0ZXMuCgkqIHB0LmMgKGRvX2RlY2xfaW5zdGFudGlhdGlvbik6IEFkanVzdCBjYWxsIHRvIGluc3RhbnRpYXRlX2RlY2wuCgkoZG9fdHlwZV9pbnN0YW50aWF0aW9uKTogTGlrZXdpc2UuCgkoaW5zdGFudGlhdGVfZGVjbCk6IERlZmVyIG1vcmUgdGVtcGxhdGVzLgoJKGluc3RhbnRpYXRlX3BlbmRpbmdfdGVtcGxhdGVzKTogQWRqdXN0IGxvZ2ljIHRvIGhhbmRsZSBpbmxpbmUKCWZyaWVuZCBmdW5jdGlvbnMuCgoJKiBNYWtlZmlsZS5pbiAoR0dDX0gpOiBOZXcgdmFyaWFibGUuICBVc2UgaXQgdGhyb3VnaG91dCBpbiBwbGFjZQoJb2YgZ2djLmguCgoJKiBjYWxsLmM6IERvbid0IGluY2x1ZGUgb2JzdGFjay5oLiAgSW5jbHVkZSBnZ2MuaC4KCShvYnN0YWNrX2NodW5rX2FsbG9jKTogRG9uJ3QgZGVmaW5lLgoJKG9ic3RhY2tfY2h1bmtfZnJlZSk6IExpa2V3aXNlLgoJKGFkZF9jYW5kaWRhdGUpOiBBbGxvY2F0ZSB0aGUgel9jYW5kaWRhdGUgd2l0aCBnZ2NfYWxsb2Nfb2JqLgoJKiBkZWNsLmMgKHB1c2hfc3dpdGNoKTogVXNlIHhtYWxsb2MgdG8gYWxsb2NhdGUgdGhlIGNwX3N3aXRjaC4KCShwb3Bfc3dpdGNoKTogRnJlZSBpdC4KCgkqIGRlY2wyLmMgKGdyb2tjbGFzc2ZuKTogU2V0IFRSRUVfUkVBRE9OTFkgZm9yIFBBUk1fREVDTHMuCgoJKiBkdW1wLmMgKGRlcXVldWVfYW5kX2R1bXApOiBEb24ndCB0cnkgdG8gcHJpbnQgdGhlIGJpdF9wb3NpdGlvbgoJaWYgd2UgZG9uJ3QgaGF2ZSBhIERFQ0xfRklFTERfT0ZGU0VULgoKV2VkIEFwciAgNSAxNToxMjoxOCBNRVQgRFNUIDIwMDAgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIG9wdGltaXplLmMgKGNhbGxzX3NldGptcF9yKTogVXNlIHNldGptcF9jYWxsX3AgaW5zdGVhZCBvZgoJc3BlY2lhbF9mdW5jdGlvbl9wLgoKMjAwMC0wNC0wNCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogY2Zucy5ncGVyZiAoaGFzaCwgbGliY19uYW1lX3ApOiBQcm90b3R5cGUuCgoJKiBydHRpLmMgKGJ1aWxkX2R5bmFtaWNfY2FzdF8xKTogQ29uc3RpZmljYXRpb24uCgoJKiBzZWFyY2guYyAoZGZzX2RlYnVnX3VubWFya2VkcCwgZGZzX2RlYnVnX21hcmspOiBVbmhpZGUgcHJvdG90eXBlcy4KCgkqIHNlbWFudGljcy5jIChkZWZlcnJlZF90eXBlX2FjY2Vzc19jb250cm9sKTogUHJvdG90eXBlLgoKMjAwMC0wNC0wNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglDb3JyZWN0IG1hbnkgbmV3IEFCSSBpc3N1ZXMgcmVnYXJkaW5nIHZiYXNlIGFuZCB2Y2FsbCBvZmZzZXQKCWxheW91dC4KCSogY3AtdHJlZS5oIChCSU5GT19WVEFCTEUpOiBEb2N1bWVudC4KCShzdHJ1Y3QgbGFuZ190eXBlKTogVHdlYWsgZm9ybWF0dGluZy4KCShCSU5GT19QUklNQVJZX0JJTkZPKTogQWRkIHRvIGRvY3VtZW50YXRpb24uCgkoQ0xBU1NUWVBFX1ZTSVpFKTogRml4IHR5cG8gaW4gY29tbWVudC4KCShDTEFTU1RZUEVfVkJBU0VDTEFTU0VTKTogVXBkYXRlIGRvY3VtZW50YXRpb24uCgkoQklORk9fVkJBU0VfTUFSS0VEKTogUmVtb3ZlLgoJKFNFVF9CSU5GT19WQkFTRV9NQVJLRUQpOiBMaWtld2lzZS4KCShDTEVBUl9CSU5GT19WQkFTRV9NQVJLRUQpOiBMaWtld2lzZS4KCShCSU5GT19GSUVMRFNfTUFSS0VEKTogUmVtb3ZlLgoJKFNFVF9CSU5GT19GSUVMRFNfTUFSS0VEKTogTGlrZXdpc2UuCgkoQ0xFQVJfQklORk9fRklFTERTX01BUktFRCk6IExpa2V3aXNlLgoJKGVudW0gYWNjZXNzX2tpbmQpOiBOZXcgZW51bWVyYXRpb24uCgkobnVtX2V4dHJhX3Z0YmxfZW50cmllcyk6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCShzaXplX2V4dHJhX3Z0YmxfZW50cmllcyk6IExpa2V3aXNlLgoJKGdldF92dGJsX2RlY2xfZm9yX2JpbmZvKTogTmV3IGZ1bmN0aW9uLgoJKGRmc192YmFzZV91bm1hcmspOiBSZW1vdmUgZGVjbGFyYXRpb24uCgkobWFya19wcmltYXJ5X2Jhc2VzKTogTGlrZXdpc2UuCgkqIGNsYXNzLmMgKFNBTUVfRk4pOiBSZW1vdmUuCgkoc3RydWN0IHZjYWxsX29mZnNldF9kYXRhX3MpOiBNb3ZlIGRlZmluaXRpb24uCgkoYnVpbGRfdmJhc2VfcG9pbnRlcik6IFVzZSBgYnVpbGQnLCBub3QgYGJ1aWxkX2JpbmFyeV9vcCcsIHRvCglhY2Nlc3MgdGhlIHZiYXNlIHBvaW50ZXIgdW5kZXIgdGhlIG5ldyBBQkkuCgkoYnVpbGRfdnRhYmxlX2VudHJ5X3JlZik6IFVzZSBnZXRfdnRibF9kZWNsX2Zvcl9iaW5mby4KCShidWlsZF9wcmltYXJ5X3Z0YWJsZSk6IExpa2V3aXNlLgoJKGRmc19tYXJrX3ByaW1hcnlfYmFzZXMpOiBNb3ZlIGhlcmUgZnJvbSBzZWFyY2guYy4KCShtYXJrX3ByaW1hcnlfYmFzZXMpOiBMaWtld2lzZS4KCShkZXRlcm1pbmVfcHJpbWFyeV9iYXNlcyk6IFVuZGVyIHRoZSBuZXcgQUJJLCBkb24ndCBtYWtlIGEgYmFzZQoJY2xhc3MgYSBwcmltYXJ5IGJhc2UganVzdCBiZWNhdXNlIHdlIGRvbid0IHlldCBoYXZlIGFueSB2aXJ0dWFsCglmdW5jdGlvbnMuCgkobGF5b3V0X3Z0YWJsZV9kZWNsKTogVXNlIGdldF92dGJsX2RlY2xfZm9yX2JpbmZvLgoJKG51bV92ZnVuX2VudHJpZXMpOiBSZW1vdmUuCgkoZGZzX2NvdW50X3ZpcnR1YWxzKTogTGlrZXdpc2UuCgkobnVtX2V4dHJhX3Z0YmxfZW50cmllcyk6IExpa2V3aXNlLgoJKHNpemVfZXh0cmFfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgkobGF5b3V0X3ZpcnR1YWxfYmFzZXMpOiBJdGVyYXRlIGluIGluaGVyaXRhbmNlIGdyYXBoIG9yZGVyIHVuZGVyCgl0aGUgbmV3IEFCSS4KCShmaW5pc2hfc3RydWN0XzEpOiBVc2UgVFlQRV9WRklFTEQsIG5vdCBDTEFTU1RZUEVfVlNJWkUsIHRvCglpbmRpY2F0ZSB0aGF0IGEgdmZpZWxkIGlzIHByZXNlbnQuCgkoaW5pdF9jbGFzc19wcm9jZXNzaW5nKTogSW5pdGlhbGl6ZSBhY2Nlc3NfcHVibGljX25vZGUsIGV0Yy4sIGZyb20KCWFrX3B1YmxpYywgZXRjLgoJKGdldF92dGJsX2RlY2xfZm9yX2JpbmZvKTogTmV3IGZ1bmN0aW9uLgoJKGR1bXBfY2xhc3NfaGllcmFyY2h5X3IpOiBMaWtld2lzZS4KCShkdW1wX2NsYXNzX2hpZXJhcmNoeSk6IFVzZSBpdC4KCShmaW5pc2hfdnRibHMpOiBCdWlsZCB0aGUgdnRibHMgaW4gaW5oZXJpdGFuY2UgZ3JhcGggb3JkZXIuCgkoZGZzX2ZpbmlzaF92dGJscyk6IEFkanVzdCBjYWxsIHRvIGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIuCgkoaW5pdGlhbGl6ZV92dGFibGUpOiBVc2UgZ2V0X3Z0YmxfZGVjbF9mb3JfYmluZm8uCgkoYWNjdW11bGF0ZV92dGJsX2luaXRzKTogQWRkIGNvbW1lbnRzIGV4cGxhaW5pbmcgd2h5IGEgcHJlLW9yZGVyCgl3YWxrIGlzIHJlcXVpcmVkLgoJKGRmc19hY2N1bXVsYXRlX3Z0YmxfaW5pdHMpOiBTZXQgQklORk9fVlRBQkxFIHRvIHRoZSBsb2NhdGlvbgoJd2hlcmUgdGhlIHZwdHIgcG9pbnRzLCBldmVuIGZvciBwcmltYXJ5IHZ0YWJsZXMuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IEFkanVzdCBoYW5kbGluZyBvZiB2YmFzZSBhbmQgdmNhbGwKCW9mZnNldHMuCgkoYnVpbGRfdmNhbGxfYW5kX3ZiYXNlX3Z0YWJsZV9lbnRyaWVzKTogTmV3IGZ1bmN0aW9uLgoJKGRmc19idWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogUmVtb3ZlLgoJKGJ1aWxkX3ZiYXNlX29mZnNldF92dGJsX2VudHJpZXMpOiBSZWltcGxlbWVudC4KCShkZnNfYnVpbGRfdmNhbGxfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IERvbid0IGluY2x1ZGUgdmlydHVhbHMgdGhhdAoJd2VyZSBhbHJlYWR5IGhhbmRsZWQgaW4gYSBwcmltYXJ5IGJhc2UgY2xhc3MgdnRhYmxlLgoJKGJ1aWxkX3ZjYWxsX29mZnNldF92dGJsX2VudHJpZXMpOiBBZGp1c3QuCgkoYnVpbGRfcnR0aV92dGJsX2VudHJpZXMpOiBBZGp1c3QuCgkqIGRlY2wyLmMgKG91dHB1dF92dGFibGVfaW5oZXJpdCk6IFVzZSBnZXRfdnRibF9kZWNsX2Zvcl9iaW5mby4KCSogaW5pdC5jIChleHBhbmRfdmlydHVhbF9pbml0KTogU2ltcGxpZnkuCgkqIHJlcG8uYyAocmVwb19nZXRfaWQpOiBVc2UgZ2V0X3Z0YmxfZGVjbF9mb3JfYmluZm8uCgkqIHJ0dGkuYyAoY3JlYXRlX3BzZXVkb190eXBlX2luZm8pOiBBZGp1c3QgY2FsY3VsYXRpb24gb2YgdnB0ci4KCSogc2VhcmNoLmMgKEJJTkZPX0FDQ0VTUyk6IE5ldyBtYWNyby4KCShTRVRfQklORk9fQUNDRVNTKTogTGlrZXdpc2UuCgkoZGZzX2FjY2Vzc19pbl90eXBlKTogTWFuaXB1bGF0ZSBhY2Nlc3Nfa2luZHMsIG5vdCBhY2Nlc3Mgbm9kZXMuCgkoYWNjZXNzX2luX3R5cGUpOiBMaWtld2lzZS4KCShkZnNfYWNjZXNzaWJsZV9wKTogTGlrZXdpc2UuCgkocHJvdGVjdGVkX2FjY2Vzc2libGVfcCk6IExpa2V3aXNlLgoJKGxvb2t1cF9mbmZpZWxkc18xKTogQWRqdXN0IGRvY3VtZW50YXRpb24uCgkoZGZzX21hcmtfcHJpbWFyeV9iYXNlcyk6IE1vdmUgdG8gY2xhc3MuYwoJKG1hcmtfcHJpbWFyeV9iYXNlcyk6IExpa2V3aXNlLgoJKGRmc192YmFzZV91bm1hcmspOiBSZW1vdmUuCgkodmlydHVhbF9jb250ZXh0KTogVXNlIEJJTkZPX0ZPUl9WQkFTRS4KCShkZnNfZ2V0X3ZiYXNlX3R5cGVzKTogU2ltcGxpZnkuCgkoZGZzX2J1aWxkX2luaGVyaXRhbmNlX2dyYXBoX29yZGVyKTogTmV3IGZ1bmN0aW9uLgoJKGdldF92YmFzZV90eXBlcyk6IFVzZSBpdC4KCSogdHJlZS5jIChkZWJ1Z19iaW5mbyk6IFVzZSBnZXRfdnRibF9kZWNsX2Zvcl9iaW5mby4KCgkqIHRpbmZvLmNjIChnZXRfdmJhc2Vfb2Zmc2V0KTogTmV3IGZ1bmN0aW9uLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZmluZF9wdWJsaWNfc3JjKTogVXNlIGl0LgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCk6IExpa2V3aXNlLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fdXBjYXN0KTogTGlrZXdpc2UuCgoyMDAwLTA0LTAzICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuY3VtYi5vcmc+CgoJKiBsYW5nLXNwZWNzLmg6IFBhc3MgLWZuby1zaG93LWNvbHVtbiB0byB0aGUgcHJlcHJvY2Vzc29yLgoKMjAwMC0wMy0zMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHJ0dGkuYyAoY2xhc3NfaGludF9mbGFncyk6IFJlbmFtZSBmbGFncy4KCShjbGFzc19pbml0aWFsaXplcik6IFJlbW92ZSBmbGFncy4KCShzeW50aGVzaXplX3RpbmZvX3Zhcik6IENvbWJpbmUgb2Zmc2V0IGFuZCBmbGFncy4gQWRkIGZsYWdzCglmb3IgX192bWlfY2xhc3NfdHlwZV9pbmZvLgoJKGNyZWF0ZV90aW5mb190eXBlcyk6IFJlbW92ZSBmbGFncyBmcm9tIF9fY2xhc3NfdHlwZV9pbmZvIGFuZAoJX19zaV9jbGFzc190eXBlX2luZm8uIE1lcmdlIGZsYWdzIGFuZCBvZmZzZXQgZnJvbQoJYmFzZV9jbGFzc190eXBlX2luZm8uCgkqIGluYy9jeHhhYmkuaCAoX19iYXNlX2NsYXNzX2luZm8pOiBNZXJnZSBvZmZzZXQgYW5kIHZtaV9mbGFncy4KCShfX2Jhc2VfY2xhc3NfaW5mbzo6aXNfdmlydHVhbF9wKTogQWRqdXN0LgoJKF9fYmFzZV9jbGFzc19pbmZvOjppc19wdWJsaWNfcCk6IEFkanVzdC4KCShfX2Jhc2VfY2xhc3NfaW5mbzo6b2Zmc2V0KTogTmV3IGFjY2Vzc29yLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpkZXRhaWxzKTogUmVtb3ZlIG1lbWJlci4KCShfX2NsYXNzX3R5cGVfaW5mbzo6X19jbGFzc190eXBlX2luZm8pOiBMb3NlIGRldGFpbHMuCgkoX19jbGFzc190eXBlX2luZm86OmRldGFpbF9tYXNrcyk6IFJlbW92ZS4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6X19zaV9jbGFzc190eXBlX2luZm8pOiBMb3NlIGRldGFpbHMuCgkoX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkZXRhaWxzKTogTmV3IG1lbWJlci4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86Ol9fdm1pX2NsYXNzX3R5cGVfaW5mbyk6IEFkanVzdC4KCShfX3ZtaV9jbGFzc190eXBlX2luZm86OmRldGFpbF9tYXNrcyk6IE5ldyBtZW1iZXIuCgkqIHRpbmZvLmNjIChfX2NsYXNzX3R5cGVfaW5mbzo6ZG9fdXBjYXN0KTogSW5pdGlhbGl6ZSByZXN1bHQKCXdpdGggdW5rbm93bl9kZXRhaWxzX21hc2suCgkoX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkb19maW5kX3B1YmxpY19zcmMpOiBBZGp1c3QKCShfX3ZtaV9jbGFzc190eXBlX2luZm86OmRvX2R5bmNhc3QpOiBBZGp1c3QuCgkoX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkb191cGNhc3QpOiBTZXQgcmVzdWx0IGRldGFpbHMsIGlmCgluZWVkZWQuIEFkanVzdC4KCShfX2R5bmFtaWNfY2FzdCk6IFRlbXBvcmFyaWx5ICNpZiBvdXQgb3B0aW1pemF0aW9uLgoKMjAwMC0wMy0yOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHJ0dGkuYyAoZ2V0X3RpbmZvX2RlY2wpOiBNYXJrIHVzZWQuCgkoZW1pdF90aW5mb19kZWNsKTogRG9uJ3Qgb3B0aW1pemUgcG9seW1vcnBoaWMgdHlwZV9pbmZvLiBPbmx5CgltYXJrIGFzIGRlYWx0IHdpdGgsIGlmIHdlIG91dHB1dCBpdC4KCjIwMDAtMDMtMjggIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jOiBSZW9yZ2FuaXplIHRvIHB1dCB2aXJ0dWFsIGZ1bmN0aW9uIHRhYmxlIGluaXRpYWxpemF0aW9uCgltYWNoaW5lcnkgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZS4KCjIwMDAtMDMtMjggIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdCk6IFVzZSBiaXRzaXplX3plcm9fbm9kZS4KCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBMaWtld2lzZS4KCjIwMDAtMDMtMjggIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJUHV0IFJUVEkgZW50cmllcyBhdCBuZWdhdGl2ZSBvZmZzZXRzIGluIG5ldyBBQkkuCgkqIGNsYXNzLmMgKGRmc19idWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogUHV0IHRoZSBmaXJzdAoJdmJhc2Ugb2Zmc2V0IGF0IGluZGV4IC0zLCBub3QgLTEuCgkoYnVpbGRfdnRhYmVfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IFVzZSB1bm1hcmtlZF92dGFibGVfcGF0aHAsIG5vdAoJZGZzX3Z0YWJsZV9wYXRoX3VubWFya2VkX3JlYWxfYmFzZXNfcXVldWVfcCB0byB3YWxrIGJhc2VzLgoJKGRmc19idWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogRG9uJ3QgdXNlIHNraXBfcnR0aV9zdHVmZi4KCShidWlsZF9ydHRpX3Z0YmxfZW50cmllcyk6IE5ldyBmdW5jdGlvbi4KCShzZXRfcnR0aV9lbnRyeSk6IFJlbW92ZS4KCShidWlsZF9wcmltYXJ5X3Z0YWJsZSk6IERvbid0IHVzZSBpdC4KCShidWlsZF9zZWNvbmRhcnlfdnRhYmxlKTogTGlrZXdpc2UuCgkoc3RhcnRfdnRhYmxlKTogUmVtb3ZlLgoJKGZpcnN0X3ZmdW5faW5kZXgpOiBOZXcgZnVuY3Rpb24uCgkoc2V0X3ZpbmRleCk6IExpa2V3aXNlLgoJKGFkZF92aXJ0dWFsX2Z1bmN0aW9uKTogRG9uJ3QgY2FsbCBzdGFydF92dGFibGUuICBEbyBjYWxsCglzZXRfdmluZGV4LgoJKHNldF9wcmltYXJ5X2Jhc2UpOiBSZW5hbWUgcGFyYW1ldGVyLgoJKGRldGVybWluZV9wcmltYXJ5X2Jhc2UpOiBMaWtld2lzZS4KCShudW1fdmZ1bl9lbnRyaWVzKTogRG9uJ3QgdXNlIHNraXBfcnR0aV9zdHVmZi4KCShudW1fZXh0cmFfdnRibF9lbnRyaWVzKTogSW5jbHVkZSBSVFRJIGluZm9ybWF0aW9uLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBVc2UgYnVpbGRfcnR0aV92dGJsX2VudHJpZXMuCgkoc2tpcF9ydHRpX3N0dWZmKTogUmVtb3ZlLgoJKGRmc19tb2RpZnlfdnRhYmxlcyk6IERvbid0IHVzZSBpdC4KCShtb2RpZnlfYWxsX3Z0YWJsZXMpOiBEb24ndCB1c2Ugc3RhcnRfdnRhYmxlLiAgRG8gdXNlIHNldF92aW5kZXguCgkobGF5b3V0X25vbmVtcHR5X2Jhc2Vfb3JfZmllbGQpOiBVcGRhdGUgc2l6ZSBoYW5kbGluZy4KCShjcmVhdGVfdnRhYmxlX3B0cik6IFR3ZWFrLgoJKGxheW91dF9jbGFzc190eXBlKTogQWRqdXN0IHBhcmFtZXRlciBuYW1lcy4KCShmaW5pc2hfc3RydWN0XzEpOiBTaW1wbGlmeS4KCSogY3AtdHJlZS5oIChDTEFTU1RZUEVfVlNJWkUpOiBUd2VhayBkb2N1bWVudGF0aW9uLgoJKHNraXBfcnR0aV9zdHVmZik6IFJlbW92ZS4KCShmaXJzdF92ZnVuX2luZGV4KTogTmV3IGZ1bmN0aW9uLgoJKGRmc192dGFibGVfcGF0aF91bm1hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBSZW1vdmUuCgkoZGZzX3Z0YWJsZV9wYXRoX21hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBSZW1vdmUuCgkobWFya2VkX3Z0YWJsZV9wYXRocCk6IERlY2xhcmUuCgkodW5tYXJrZWRfdnRhYmxlX3BhdGhwKTogTGlrZXdpc2UuCgkqIGVycm9yLmMgKGR1bXBfZXhwcik6IFVzZSBmaXJzdF92ZnVuX2luZGV4IHRvIGNhbGN1bGF0ZSB2dGFibGUKCW9mZnNldHMuCgkqIHJ0dGkuYyAoYnVpbGRfaGVhZG9mKTogTG9vayBmb3IgUlRUSSBhdCBuZWdhdGl2ZSBvZmZzZXRzLgoJKGdldF90aW5mb19kZWNsX2R5bmFtaWMpOiBMaWtld2lzZS4KCSh0aW5mb19iYXNlX2luaXQpOiBEb24ndCB0YWtlIHRoZSBhZGRyZXNzIG9mIHRoZSBUSU5GT19WVEFCTEVfREVDTAoJaGVyZS4KCShjcmVhdGVfcHNldWRvX3R5cGVfaW5mbyk6IERvIGl0IGhlcmUgaW5zdGVhZC4gIEFkanVzdCBzbyB0aGF0Cgl2cHRyIHBvaW50cyBhdCBmaXJzdCB2aXJ0dWFsIGZ1bmN0aW9uLgoJKiBzZWFyY2guYyAobWFya2VkX3Z0YWJsZV9wYXRocCk6IE1ha2UgaXQgZ2xvYmFsLgoJKHVubWFya2VkX3Z0YWJsZV9wYXRocCk6IExpa2V3aXNlLgoJKGRmc192dGFibGVfcGF0aF91bm1hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBSZW1vdmUuCgkoZGZzX3Z0YWJsZV9wYXRoX21hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBMaWtld2lzZS4KCShkZnNfZ2V0X3B1cmVfdmlydHVhbHMpOiBEb24ndCB1c2Ugc2tpcF9ydHRpX3N0dWZmLgoJKGdldF9wdXJlX3ZpcnR1YWxzKTogTGlrZXdpc2UuCgkoZXhwYW5kX3VwY2FzdF9maXh1cHMpOiBMaWtld2lzZS4KCSogdHJlZS5jIChkZWJ1Z19iaW5mbyk6IExpa2V3aXNlLgoJKiB0aW5mby5jYyAoX19keW5hbWljX2Nhc3QpOiBMb29rIGZvciB2dGFibGVfcHJlZml4IGF0IGFwcHJvcHJpYXRlCgluZWdhdGl2ZSBvZmZzZXQuCgoyMDAwLTAzLTI2ICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogY2xhc3MuYyAoY2hlY2tfZmllbGRfZGVjbCk6IEZpeCB0eXBvLgoJKGJ1aWxkX3Z0Ymxfb3JfdmJhc2VfZmllbGQpOiBEb24ndCBjbGVhciBERUNMX1NBVkVEX0lOU05TLgoJKGNoZWNrX21ldGhvZHMpOiBMaWtld2lzZS4KCShjaGVja19maWVsZF9kZWNscyk6IExpa2V3aXNlLgoJVXNlIERFQ0xfQ09OVEVYVCwgbm90IERFQ0xfRklFTERfQ09OVEVYVC4KCSogY3AtdHJlZS5oIChERUNMX1NIQURPV0VEX0ZPUl9WQVIsIERFQ0xfVEVNUExBVEVfUkVTVUxUKToKCVVzZSBERUNMX1JFU1VMVF9GTEQsIG5vdCBERUNMX1JFU1VMVC4KCSogZGVjbC5jICh4cmVmX3RhZyk6IFVzZSBERUNMX1RFTVBMQVRFX1JFU1VMVC4KCSogbGV4LmMgKGlkZW50aWZpZXJfdHlwZSk6IExpa2V3aXNlLgoJKiBwdC5jIChkZXRlcm1pbmVfc3BlY2lhbGl6YXRpb24sIGxvb2t1cF90ZW1wbGF0ZV9jbGFzcyk6IExpa2V3aXNlLgoJKHRzdWJzdF9mcmllbmRfZnVuY3Rpb24sIHRzdWJzdF9kZWNsLCBpbnN0YW50aWF0ZV90ZW1wbGF0ZSk6IExpa2V3aXNlLgoJKHJlc29sdmVfb3ZlcmxvYWRlZF91bmlmaWNhdGlvbiwgbW9yZV9zcGVjaWFsaXplZCk6IExpa2V3aXNlLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX21lbWJlcl9kZWNsYXJhdGlvbik6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoYnVpbGRfeF9mdW5jdGlvbl9jYWxsKTogTGlrZXdpc2UuCgoyMDAwLTAzLTI2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAobGF5b3V0X2VtcHR5X2Jhc2UpOiBIYW5kbGUgZW1wdHkgYmFzZXMgd2l0aCBub24tYnl0ZQoJYWxpZ25tZW50LgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBMaWtld2lzZS4KCShsYXlvdXRfdmlydHVhbF9iYXNlcyk6IExpa2V3aXNlLgoKCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdF8xKTogRml4IHR5cG8gaW4gdGhpcyBjaGFuZ2U6CgoJU2F0IE1hciAyNSAwOToxMjoxMCAyMDAwICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKMjAwMC0wMy0yNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBDb3VudCBwYXJ0aWFsIHNwZWNpYWxpemF0aW9ucyB3aGVuCglrZWVwaW5nIHRyYWNrIG9mIGhvdyBtYW55IHRlbXBsYXRlIGNsYXNzZXMgaGF2ZSBiZWVuIHNlZW4uCgoJKiBkdW1wLmMgKGRlcXVldWVfYW5kX2R1bXApOiBEdW1wIERFQ0xfVEVNUExBVEVfUkVTVUxULgoKMjAwMC0wMy0yNSAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3ZiYXNlX3BvaW50ZXJfZmllbGRzKTogbGF5b3V0X2ZpZWxkIG5vdyBwbGFjZV9maWVsZC4KCShnZXRfdmZpZWxkX29mZnNldCk6IFVzZSBieXRlX3Bvc2l0aW9uLgoJKHNldF9ydHRpX2VudHJ5KTogU2V0IE9GRlNFVCB0byBzc2l6ZXR5cGUgemVyby4KCShnZXRfYmluZm9fb2Zmc2V0X2FzX2ludCk6IERlbGV0ZWQuCgkoZGZzX3JlY29yZF9iYXNlX29mZnNldHMpOiBVc2UgdHJlZV9sb3dfY3N0LgoJKGRmc19zZWFyY2hfYmFzZV9vZmZzZXRzKTogTGlrZXdpc2UuCgkobGF5b3V0X25vbmVtcHR5X2Jhc2Vfb3JfZmllbGQpOiBSZWZsZWN0IGNoYW5nZXMgaW4gUkxJIGZvcm1hdAoJYW5kIGNhbGwgYnl0ZV9wb3NpdGlvbi4KCShsYXlvdXRfZW1wdHlfYmFzZSk6IENvbnZlcnQgb2Zmc2V0IHRvIHNzaXpldHlwZS4KCShidWlsZF9iYXNlX2ZpZWxkKTogdXNlIHJsaV9zaXplX3VuaXRfc29fZmFyLgoJKGRmc19wcm9wYWdhdGVfYmluZm9fb2Zmc2V0cyk6IERvIGNvbXB1dGF0aW9uIGluIHByb3BlciB0eXBlLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogUGFzcyBzc2l6ZXR5cGUgdG8gcHJvcGFnYXRlX2JpbmZvX29mZnNldHMuCgkobGF5b3V0X2NsYXNzX3R5cGUpOiBSZWZsZWN0IGNoYW5nZXMgaW4gUkxJIG5hbWVzIGFuZCBmaWVsZHMuCgkoZmluaXNoX3N0cnVjdF8xKTogU2V0IERFQ0xfRklFTERfT0ZGU0VULgoJKiBkdW1wLmMgKGRlcXVldWVfYW5kX2R1bXApOiBDYWxsIGJpdF9wb3NpdGlvbi4KCSogZXhwci5jIChjcGx1c19leHBhbmRfY29uc3RhbnQpOiBVc2UgYnl0ZV9wb3NpdGlvbi4KCSogcnR0aS5jIChleHBhbmRfY2xhc3NfZGVzYyk6IFVzZSBiaXRzaXplX29uZV9ub2RlLgoJKiB0eXBlY2suYyAoYnVpbGRfY29tcG9uZW50X2FkZHIpOiBVc2UgYnl0ZV9wb3NpdGlvbiBhbmQgZG9uJ3QKCXNwZWNpYWwgY2FzZSBmb3IgemVybyBvZmZzZXQuCgoyMDAwLTAzLTI0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jICh2dHlwZV9kZWNsX3ApOiBVc2UgVFlQRV9QT0xZTU9SUEhJQ19QLgoKCSogcnR0aS5jIChnZXRfdGluZm9fZGVjbCk6IFNldCBjb21kYXQgbGlua2FnZSBvbiBuZXctYWJpCgl0aW5mbyBvYmplY3QuCgkoZW1pdF90aW5mb19kZWNsKTogT25seSBlbWl0IHBvbHltb3JwaGljIHRpbmZvJ3Mgd2hlbiBlbWl0dGluZwoJdnRhYmxlLgoKMjAwMC0wMy0yMCBUaGVvZG9yZSBQYXBhZG9wb3VsbyA8VGhlb2RvcmUuUGFwYWRvcG91bG9Ac29waGlhLmlucmlhLmZyPgoKCSogY2FsbC5jIChjaGVja19kdG9yX25hbWUsIGJ1aWxkX25ld19tZXRob2RfY2FsbCk6IFVzZSBUWVBFX1AgYW5kCglERUNMX1AgbWFjcm9zLgoJKiBkZWNsLmMgKHB1c2hfY2xhc3NfYmluZGluZywgcG9wbGV2ZWwsIHB1c2h0YWcsIGxvb2t1cF9uYW1lc3BhY2VfbmFtZSwKCW1ha2VfdHlwZW5hbWVfdHlwZSwgY2hlY2tfaW5pdGlhbGl6ZXIsIGNwX2ZpbmlzaF9kZWNsLAoJeHJlZl90YWcpOiBMaWtld2lzZS4KCSogZGVjbDIuYyAoZ3Jva2ZpZWxkLCBidWlsZF9leHByX2Zyb21fdHJlZSwgYnVpbGRfZXhwcl9mcm9tX3RyZWUsCglkZWNsX25hbWVzcGFjZSwgYXJnX2Fzc29jX3RlbXBsYXRlX2FyZywgYXJnX2Fzc29jLAoJdmFsaWRhdGVfbm9ubWVtYmVyX3VzaW5nX2RlY2wsIGRvX2NsYXNzX3VzaW5nX2RlY2wpOiBMaWtld2lzZS4KCSogZXJyb3IuYyAoZHVtcF90ZW1wbGF0ZV9hcmd1bWVudCwgZHVtcF9leHByLCBjcF9maWxlX29mLCBjcF9saW5lX29mLAoJYXJnc190b19zdHJpbmcpOiBMaWtld2lzZS4KCSogZnJpZW5kLmMgKGlzX2ZyaWVuZCk6IExpa2V3aXNlLgoJKiBsZXguYyAobm90ZV9nb3Rfc2VtaWNvbG9uLCBub3RlX2xpc3RfZ290X3NlbWljb2xvbiwKCWlzX2dsb2JhbCk6IExpa2V3aXNlLgoJKiBtZXRob2QuYyAoYnVpbGRfb3ZlcmxvYWRfbmVzdGVkX25hbWUsIGJ1aWxkX292ZXJsb2FkX3ZhbHVlLAoJYnVpbGRfcXVhbGlmaWVkX25hbWUsIGJ1aWxkX3F1YWxpZmllZF9uYW1lLCBoYWNrX2lkZW50aWZpZXIpOiBMaWtld2lzZS4KCSogcGFyc2UueSAodHlwZW5hbWVfc3ViLCB0eXBlbmFtZV9zdWIxKTogTGlrZXdpc2UuCgkqIHB0LmMgKHB1c2hfaW5saW5lX3RlbXBsYXRlX3Bhcm1zX3JlY3Vyc2l2ZSwgY2hlY2tfdGVtcGxhdGVfc2hhZG93LAoJcHJvY2Vzc19wYXJ0aWFsX3NwZWNpYWxpemF0aW9uLCBjb252ZXJ0X3RlbXBsYXRlX2FyZ3VtZW50LAoJdGVtcGxhdGVfYXJnc19lcXVhbCwgYWRkX3BlbmRpbmdfdGVtcGxhdGUsIGxvb2t1cF90ZW1wbGF0ZV9jbGFzcywKCWZvcl9lYWNoX3RlbXBsYXRlX3Bhcm1fciwgbWF5YmVfZm9sZF9ub250eXBlX2FyZywKCXRzdWJzdCwgaW5zdGFudGlhdGVfdGVtcGxhdGUsIHR5cGVfdW5pZmljYXRpb25fcmVhbCwgdW5pZnksCglpbnN0YW50aWF0ZV9wZW5kaW5nX3RlbXBsYXRlcywgc2V0X21hbmdsZWRfbmFtZV9mb3JfdGVtcGxhdGVfZGVjbCk6CglMaWtld2lzZS4KCSogcmVwby5jIChyZXBvX2dldF9pZCwgcmVwb190ZW1wbGF0ZV91c2VkKTogTGlrZXdpc2UuCgkqIHNlYXJjaC5jIChsb29rdXBfZmllbGRfMSk6IExpa2V3aXNlLgoJKiB0cmVlLmMgKHdhbGtfdHJlZSwgZ2V0X3R5cGVfZGVjbCwgY3BfdHJlZV9lcXVhbCwgbWVtYmVyX3ApOiBMaWtld2lzZS4KCSogeHJlZi5jIChjbGFzc25hbWUpOiBMaWtld2lzZS4KCjIwMDAtMDMtMjIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKEJJTkZPX0ZPUl9WQkFTRSk6IEFkanVzdCBkb2N1bWVudGF0aW9uLgoJKENBTk9OSUNBTF9CSU5GTyk6IE5ldyBtYWNyby4KCShCSU5GT19ORVdfVlRBQkxFX01BUktFRCk6IFVzZSBpdC4KCShTRVRfQklORk9fTkVXX1ZUQUJMRV9NQVJLRUQpOiBMaWtld2lzZS4KCShDTEVBUl9CSU5GT19ORVdfVlRBQkxFX01BUktFRCk6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChkZnNfYnVpbGRfdmJhc2Vfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IFVzZSBCSU5GT19UWVBFLAoJbm90IFRSRUVfVFlQRS4KCShidWlsZF9wcmltYXJ5X3Z0YWJsZSk6IEFkanVzdCB1c2FnZSBvZiBCSU5GT19ORVdfVlRBQkxFX01BUktFRC4KCShidWlsZF9zZWNvbmRhcnlfdnRhYmxlKTogTGlrZXdpc2UuCgkoZGZzX2ZpbmlzaF92dGJscyk6IExpa2V3aXNlLgoJKGRmc19hY2N1bXVsYXRlX3Z0YmxfaW5pdHMpOiBMaWtld2lzZS4KCShhY2N1bXVsYXRlX3Z0YmxfaW5pdHMpOiBOZXcgZnVuY3Rpb24uCgkoZmluaXNoX3Z0YmxzKTogTWFrZSBzdXJlIHRoYXQgdmlydHVhbCBiYXNlcyBjb21lIGFmdGVyCglub24tdmlydHVhbCBiYXNlcyBpbiB0aGUgdnRhYmxlIGdyb3VwLgoJKHJlY29yZF9iYXNlX29mZnNldHMpOiBEb24ndCBzYXZlIGFuZCByZXN0b3JlIFRSRUVfVklBX1ZJUlRVQUwuCgkoZmluaXNoX3N0cnVjdF8xKTogQWRqdXN0IHVzYWdlIG9mIEJJTkZPX05FV19WVEFCTEVfTUFSS0VELgoJKiBzZWFyY2guYyAoc3RydWN0IHZiYXNlX2luZm8pOiBNb3ZlIGRlZmluaXRpb24uCgkobWFya2VkX25ld192dGFibGVfcCk6IEFkanVzdCB1c2FnZSBvZiBCSU5GT19ORVdfVlRBQkxFX01BUktFRC4KCSh1bm1hcmtlZF9uZXdfdnRhYmxlX3ApOiBMaWtld2lzZS4KCShkZnNfbWFya192dGFibGVfcGF0aCk6IFJlbW92ZS4KCShkZnNfbWFya19uZXdfdnRhYmxlKTogUmVtb3ZlLgoJKGRmc191bm1hcmtfbmV3X3Z0YWJsZSk6IExpa2V3aXNlLgoJKGRmc19jbGVhcl9zZWFyY2hfc2xvdCk6IExpa2V3aXNlLgoJKGRmc19maW5kX3ZiYXNlcyk6ICBBZGp1c3QgdXNhZ2Ugb2YgQklORk9fTkVXX1ZUQUJMRV9NQVJLRUQuCgkoZGZzX2NsZWFyX3ZiYXNlX3Nsb3RzKTogTGlrZXdpc2UuCgkoaW5pdF92YmFzZV9wb2ludGVycyk6IExJa2V3aXNlLgoKMjAwMC0wMy0yMiAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiB0eXBlY2suYyAodHlwZV9hZnRlcl91c3VhbF9hcml0aG1ldGljX2NvbnZlcnNpb25zKTogUHJlZmVyIGEKCVNJWkVUWVBFIHRvIGEgbm9uLVNJWkVUWVBFLgoKMjAwMC0wMy0yMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogQWRqdXN0IG5hbWVzIGluIGNvbmRpdGlvbmFsbHkKCWNvbXBpbGVkIGNvZGUuCgoJKiBjbGFzcy5jIChyZWNvcmRfYmFzZV9vZmZzZXRzKTogTmV3IGZ1bmN0aW9uLgoJKGxheW91dF9jb25mbGljdF9wKTogTGlrZXdpc2UuCgkobGF5b3V0X25vbmVtcHR5X2Jhc2Vfb3JfZmllbGQpOiBVc2UgaXQuCgkobGF5b3V0X2VtcHR5X2Jhc2UpOiBOZXcgZnVuY3Rpb24uCgkoYnVpbGRfYmFzZV9maWVsZCk6IFVzZSBpdC4KCShidWlsZF9iYXNlX2ZpZWxkcyk6IFVwZGF0ZSBjb21tZW50LgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogRm9sZCBpbiBhIGxpdHRsZSBjb2RlIGZvcm0KCWxheW91dF9iYXNldHlwZXMuICBVc2UgbGF5b3V0X2VtcHR5X2Jhc2UuCgkobGF5b3V0X2Jhc2V0eXBlcyk6IFJlbW92ZS4KCShlbmRfb2ZfY2xhc3MpOiBOZXcgZnVuY3Rpb24uCgkobGF5b3V0X2NsYXNzX3R5cGUpOiBVc2UgaXQuICBBZGp1c3QuCgoJKiBjcC10cmVlLmggKENMQVNTVFlQRV9WQkFTRUNMQVNTRVMpOiBGaXggdHlwbyBpbiBjb21tZW50LgoJKGZudHlwZV9wKTogUmVtb3ZlLgoJKiBzZWFyY2guYyAoZGZzX3NraXBfbm9ucHJpbWFyeV92YmFzZXNfdW5tYXJrZWRwKTogRml4IHR5cG8gaW4KCWNvbW1lbnQuCgkoZGZzX3NraXBfbm9ucHJpbWFyeV92YmFzZXNfbWFya2VkcCk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoZm50eXBlX3ApOiBSZW1vdmUuCgoJKiBjcC10cmVlLmggKFRJX1NQRUNfSU5GTyk6IFJlbW92ZS4KCShDTEFTU1RZUEVfVElfU1BFQ19JTkZPKTogTGlrZXdpc2UuCgkqIHB0LmMgKHByb2Nlc3NfcGFydGlhbF9zcGVjaWFsaXphdGlvbik6IExpa2V3aXNlLgoKCSogY2xhc3MuYyAoYnVpbGRfYmFzZV9maWVsZCk6IEZpeCB0aGlua28gaW4gY29tcHV0YXRpb24gb2YgYmluZm8KCW9mZnNldHMuCgoJKiB0cmVlLmMgKG1hcmtfbG9jYWxfZm9yX3JlbWFwX3ApOiBNYXJrIHZhcmlhYmxlcyBkZWNsYXJlZCBpbgoJVEFSR0VUX0VYUFJzIGFzIHdlbGwuCgoyMDAwLTAzLTIxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrLmMgKHJlcXVpcmVfY29tcGxldGVfdHlwZSwgY29tcGxldGVfdHlwZSwKCWNvbXBsZXRlX3R5cGVfb3JfZWxzZSwgY19zaXplb2YsIGNfc2l6ZW9mX25vd2FybiwKCWJ1aWxkX2FycmF5X3JlZiwgY29udmVydF9hcmd1bWVudHMsIHBvaW50ZXJfZGlmZiwKCWJ1aWxkX3hfdW5hcnlfb3AsIGJ1aWxkX3VuYXJ5X29wLCBidWlsZF9jX2Nhc3QsCglidWlsZF9tb2RpZnlfZXhwcik6IFVzZSBDT01QTEVURV9UWVBFX1AgZXRjLgoJKiBjYWxsLmMgKGlzX2NvbXBsZXRlLCBjb252ZXJ0X2xpa2VfcmVhbCwKCWJ1aWxkX25ld19tZXRob2RfY2FsbCk6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChidWlsZF92YmFzZV9wb2ludGVyX2ZpZWxkcywgY2hlY2tfYmFzZXMsCglidWlsZF9iYXNlX2ZpZWxkLCBmaW5pc2hfc3RydWN0XzEsIHB1c2hjbGFzcyk6IExpa2V3aXNlLgoJKiBjdnQuYyAoY3BfY29udmVydF90b19wb2ludGVyLCBjb252ZXJ0X3RvX3ZvaWQpOiBMaWtld2lzZS4KCSogZGVjbC5jIChtYXliZV9wcm9jZXNzX3RlbXBsYXRlX3R5cGVfZGVjbGFyYXRpb24sIHB1c2h0YWcsCglwdXNoZGVjbCwgcmVkZWNsYXJhdGlvbl9lcnJvcl9tZXNzYWdlLCBzdGFydF9kZWNsLCBzdGFydF9kZWNsXzEsCglsYXlvdXRfdmFyX2RlY2wsIGNoZWNrX2luaXRpYWxpemVyLCBjcF9maW5pc2hfZGVjbCwKCWdyb2tkZWNsYXJhdG9yLCByZXF1aXJlX2NvbXBsZXRlX3R5cGVzX2Zvcl9wYXJtcywKCWdyb2tfb3BfcHJvcGVydGllcywgeHJlZl90YWcsIHhyZWZfYmFzZXR5cGVzLAoJY2hlY2tfZnVuY3Rpb25fdHlwZSk6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChjaGVja19jbGFzc2ZuLCByZXBhcnNlX2Fic2RjbF9hc19jYXN0cyk6IExpa2V3aXNlLgoJKiBmcmllbmQuYyAoZG9fZnJpZW5kKTogTGlrZXdpc2UuCgkqIGluaXQuYyAoYnVpbGRfb2Zmc2V0X3JlZik6IExpa2V3aXNlLgoJKiBwYXJzZS55IChzdHJ1Y3RzcCk6IExpa2V3aXNlLgoJKiBwdC5jIChtYXliZV9wcm9jZXNzX3BhcnRpYWxfc3BlY2lhbGl6YXRpb24sCgl0c3Vic3RfZnJpZW5kX2Z1bmN0aW9uLCBpbnN0YW50aWF0ZV9jbGFzc190ZW1wbGF0ZSwgdHN1YnN0LAoJZG9fdHlwZV9pbnN0YW50aWF0aW9uLCBpbnN0YW50aWF0ZV9wZW5kaW5nX3RlbXBsYXRlcyk6IExpa2V3aXNlLgoJKiByZXBvLmMgKHJlcG9fZ2V0X2lkKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoYnVpbGRfdHlwZWlkLCBnZXRfdHlwZWlkLCBidWlsZF9keW5hbWljX2Nhc3RfMSwKCXN5bnRoZXNpemVfdGluZm9fdmFyLCBlbWl0X3N1cHBvcnRfdGluZm9zKTogTGlrZXdpc2UuCgkqIHNlYXJjaC5jIChsb29rdXBfZm5maWVsZHNfMSwgbG9va3VwX2NvbnZlcnNpb25zKTogTGlrZXdpc2UuCgkqIHNlbWFudGljcy5jIChiZWdpbl9jbGFzc19kZWZpbml0aW9uKTogTGlrZXdpc2UuCgkqIHRyZWUuYyAoYnVpbGRfY3BsdXNfbWV0aG9kX3R5cGUpOiBMaWtld2lzZS4KCSogdHlwZWNrMi5jIChkaWdlc3RfaW5pdCwgYnVpbGRfZnVuY3Rpb25hbF9jYXN0LAoJYWRkX2V4Y2VwdGlvbl9zcGVjaWZpZXIpOiBMaWtld2lzZS4KCSogcGFyc2UuaCwgcGFyc2UuYzogUmVnZW5lcmF0ZWQuCgoyMDAwLTAzLTIxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogaW5jL2N4eGFiaS5oOiBOZXcgaGVhZGVyIGZpbGUuIERlZmluZSBuZXctYWJpIGVudHJ5IHBvaW50cy4KCShfX3BvaW50ZXJfdHlwZV9pbmZvOjp0YXJnZXQpOiBSZW5hbWUgbWVtYmVyIHRvIC4uLgoJKF9fcG9pbnRlcl90eXBlX2luZm86OnR5cGUpOiAuLi4gaGVyZS4KCShfX2Jhc2VfY2xhc3NfaW5mbzo6dHlwZSk6IFJlbmFtZSBtZW1iZXIgdG8gLi4uCgkoX19iYXNlX2NsYXNzX2luZm86OmJhc2UpOiAuLi4gaGVyZS4KCSogTWFrZS1sYW5nLmluIChDWFhfRVhUUkFfSEVBREVSUyk6IEFkZCBjeHhhYmkuaAoJKiBjcC10cmVlLmggKENQVElfQUJJKTogTmV3IGdsb2JhbCB0cmVlIGVudW1lcmF0aW9uLgoJKGFiaV9ub2RlKTogTmV3IGdsb2JhbCB0cmVlIG5vZGUuCgkqIGRlY2wuYyAoYWJpX25vZGUpOiBEb2N1bWVudC4KCShpbml0X2RlY2xfcHJvY2Vzc2luZyk6IEluaXRpYWxpemUgYWJpX25vZGUuCgkqIHJ0dGkuYyAoYnVpbGRfZHluYW1pY19jYXN0XzEpOiBVc2UgYWJpX25vZGUgZm9yIG5ldy1hYmkuCgkoZ2V0X3ZtaV9wc2V1ZG9fdHlwZV9pbmZvKTogTGlrZXdpc2UuCgkoY3JlYXRlX3RpbmZvX3R5cGVzKTogTGlrZXdpc2UuCgkoZW1pdF9zdXBwb3J0X3RpbmZvcyk6IExpa2V3aXNlLgoJKiB0aW5mby5oIChjeHhhYmkuaCk6IEluY2x1ZGUgZm9yIG5ldy1hYmkuCglNb3ZlIHJ0dGkgY2xhc3MgZGVmaW5pdGlvbnMgdG8gbmV3IGhlYWRlciBmaWxlLgoJKiB0aW5mby5jYyAoYWJpKTogVXNlIHRoZSBuYW1lc3BhY2UuCgkoc3RkKTogTW92ZSBuZXcgYWJpIHJ0dGkgY2xhc3NlcyBmcm9tIGhlcmUgLi4uCgkoX19jeHhhYml2MSk6IC4uLiB0byBoZXJlLgoJKiB0aW5mbzIuY2MgKGN4eGFiaS5oKTogSW5jbHVkZSBmb3IgbmV3LWFiaS4KCU1vdmUgcnR0aSBjbGFzcyBkZWZpbml0aW9ucyB0byBuZXcgaGVhZGVyIGZpbGUuCgkoc3RkKTogTW92ZSBuZXcgYWJpIHJ0dGkgY2xhc3NlcyBmcm9tIGhlcmUgLi4uCgkoX19jeHhhYml2MSk6IC4uLiB0byBoZXJlLgoJKiBpbmMvdHlwZWluZm8gKF9fY2xhc3NfdHlwZV9pbmZvKTogTW92ZSBpbnRvIF9fY3h4YWJpdjEKCW5hbWVzcGFjZS4KCjIwMDAtMDMtMjAgIEplZCBXaW5nIDxqZWR3aW5AemxvdHkudWdjcy5jYWx0ZWNoLmVkdT4KCSAgICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIG1ldGhvZC5jIChidWlsZF9vdmVybG9hZF9pbnQpOiBVc2UgaG9zdF9pbnRlZ2VycC4KCjIwMDAtMDMtMjAgVGhlb2RvcmUgUGFwYWRvcG91bG8gPFRoZW9kb3JlLlBhcGFkb3BvdWxvQHNvcGhpYS5pbnJpYS5mcj4KCgkqIGluaXQuYyAoYnVpbGRfb2Zmc2V0X3JlZik6IEhhbmRsZSB0aGUgY2FzZSBvZiBhIHRlbXBsYXRlZCBtZW1iZXIKCWZ1bmN0aW9uLgoKMjAwMC0wMy0xOSAgTWFydGluIHYuIEz2d2lzICA8bG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlPgoKCSogZXhjZXB0LmMgKGV4cGFuZF9leGNlcHRpb25fYmxvY2tzKTogQ2xlYXIgY2F0Y2hfY2xhdXNlc19sYXN0LgoKMjAwMC0wMy0xOCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoQ0xFQVJfREVDTF9DX0JJVF9GSUVMRCk6IE5ldyBtYWNyby4KCSogY2xhc3MuYyAoY2hlY2tfYml0ZmllbGRfZGVjbCk6IFR1cm4gaWxsZWdhbCBiaXRmaWVsZHMgaW50bwoJbm9uLWJpdGZpZWxkcy4KCShkZnNfcHJvcGFnYXRlX2JpbmZvX29mZnNldHMpOiBBZGp1c3QgZm9yIG5ldyBzaXplX2Jpbm9wCglzZW1hbnRpY3MuCgkoZGZzX29mZnNldF9mb3JfdW5zaGFyZWRfdmJhc2VzKTogTGlrZXdpc2UuCgkqIGN2dC5jIChjcF9jb252ZXJ0X3RvX3BvaW50ZXIpOiBDb252ZXJ0IE5VTEwgdG8gYQoJcG9pbnRlci10by1tZW1iZXIgY29ycmVjdGx5IHVuZGVyIHRoZSBuZXcgQUJJLgoJKiBleHByLmMgKGNwbHVzX2V4cGFuZF9jb25zdGFudCk6IERvbid0IHVzZSBjcF9jb252ZXJ0IHdoZW4KCXR1cm5pbmcgYW4gb2Zmc2V0IGludG8gYSBwb2ludGVyLXRvLW1lbWJlci4KCSogaW5pdC5jIChyZXNvbHZlX29mZnNldF9yZWYpOiBEb24ndCBhZGp1c3QgcG9pbnRlcnMtdG8tbWVtYmVycwoJd2hlbiBkZXJlZmVyZW5jaW5nIHRoZW0gdW5kZXIgdGhlIG5ldyBBQkkuCgkqIHR5cGVjay5jIChnZXRfbWVtYmVyX2Z1bmN0aW9uX2Zyb21fcHRyZnVuYyk6IFR3ZWFrIGNhbGN1bGF0aW9uCglvZiBwb2ludGVycy10by1tZW1iZXJzIHVuZGVyIHRoZSBuZXcgQUJJLgoKCSogY2xhc3MuYyAoY2hlY2tfYml0ZmllbGRfZGVjbCk6IFJlbW92ZSByZXN0cmljdGlvbiBvbiByZWFsbHkgbG9uZwoJYml0ZmllbGRzLgoJKGxheW91dF9jbGFzc190eXBlKTogSW1wbGVtZW50IG5ldyBBQkkgaGFuZGxpbmcgb2YgYml0ZmllbGRzCglsb25nZXIgdGhhbiB0aGVpciB0eXBlcy4KCjIwMDAtMDMtMTggIE1hcnRpbiB2LiBM9ndpcyAgPGxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KCgkqIHBhcnNlLnkgKGV4dGRlZnMpOiBDYWxsIGdnY19jb2xsZWN0LgoJKiBwYXJzZS5jOiBSZWdlbmVyYXRlZC4KCjIwMDAtMDMtMTggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChidWlsZF9iYXNlX2ZpZWxkKTogVXNlIFRZUEVfQUxJR04gdG8gZXhhbWluZSBhIHR5cGUuCgkobm90ZV9uYW1lX2RlY2xhcmVkX2luX2NsYXNzKTogVXNlIE9WTF9DVVJSRU5UIHRvIGdldCBhdCBhCglwb3RlbnRpYWwgb3ZlcmxvYWQuCgoyMDAwLTAzLTE3ICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogY2xhc3MuYyAoYnVpbGRfdmJhc2VfcGF0aCk6IFVzZSBpbnRlZ2VyX3plcm9wLgoJKGJ1aWxkX3Z0YWJsZV9lbnRyeSk6IFVzZSB0cmVlX2xvd19jc3QuCgkoZ2V0X3ZmaWVsZF9vZmZzZXQpOiBVc2UgYml0X3Bvc2l0aW9uLgoJKGRmc19tb2RpZnlfdnRhYmxlcyk6IE5ldyB2YXJpYWJsZSB2aW5kZXhfdmFsOyBgaScgaXMgSE9TVF9XSURFX0lOVC4KCVVzZSB0cmVlX2xvd19jc3QuCgkoY2hlY2tfYml0ZmllbGRfZGVjbCk6IFNldCBERUNMX1NJWkUgdXNpbmcgY29udmVydC4KCShidWlsZF9iYXNlX2ZpZWxkKTogU2V0IERFQ0xfU0laRSBhbmQgREVDTF9TSVpFX1VOSVQgdXNpbmcgc2l6ZV9iaW5vcC4KCShsYXlvdXRfdmlydHVhbF9iYXNlcyk6IERTSVpFIGlzIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQuCglVc2UgdHJlZV9sb3dfY3N0LgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IFVzZSBiaXRfcG9zaXRpb24uCgkoZHVtcF9jbGFzc19oaWVyYXJjaHkpOiBVc2UgdHJlZV9sb3dfY3N0LgoJKiBjcC10cmVlLmggKG1pbl9wcmVjaXNpb24pOiBBZGQgZGVjbGFyYXRpb24uCgkqIGRlY2wuYyAoeHJlZl90YWcsIHhyZWZfYmFzZXR5cGVzKTogVXNlIHRyZWVfbG93X2NzdC4KCSogZXJyb3IuYyAoZHVtcF90eXBlX3N1ZmZpeCk6IFVzZSBob3N0X2ludGVnZXJwIGFuZCB0cmVlX2xvd19jc3QuCgkoZHVtcF9leHByKTogVXNlIGludGVnZXJfemVyb3AsIGhvc3RfaW50ZWdlcnAsIGFuZCB0cmVlX2xvd19jc3QuCgkqIGV4cHIuYyAoY3BsdXNfZXhwYW5kX2NvbnN0YW50KTogVXNlIGJpdF9wb3NpdGlvbi4KCSogaW5pdC5jIChidWlsZF92ZWNfaW5pdCk6IFVzZSBob3N0X2ludGVnZXJwIGFuZCB0cmVlX2xvd19jc3QuCgkqIHJ0dGkuYyAoZ2V0X2Jhc2Vfb2Zmc2V0KTogVXNlIGJpdF9wb3NpdGlvbi4KCSogdHlwZWNrLmMgKGJ1aWxkX2JpbmFyeV9vcCk6IFVzZSBpbnRlZ2VyX3plcm9wLCBjb21wYXJlX3RyZWVfaW50LAoJaG9zdF9pbnRlZ2VycCwgYW5kIHRyZWVfbG93X2NzdC4KCShwb2ludGVyX2ludF9zdW0pOiBVc2UgaW50ZWdlcl96ZXJvcC4KCShidWlsZF9jb21wb25lbnRfYWRkcik6IFVzZSBiaXRfcG9zaXRpb24uCgoyMDAwLTAzLTE3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrLmMgKHJlcXVpcmVfY29tcGxldGVfdHlwZSk6IERvbid0IGFzc3VtZSBzaXplX3plcm9fbm9kZS4KCShjb21wbGV0ZV90eXBlX29yX2Vsc2UpOiBMaWtld2lzZS4KCjIwMDAtMDMtMTYgIFN0ZXZlbiBHcmFkeSA8Z3JhZHlAZGlnaXRhbGRlY2suY29tPgoJICAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogcnR0aS5jIChidWlsZF9keW5hbWljX2Nhc3RfMSk6IEltcHJvdmUgZGlhZ25vc3RpY3MuCgoyMDAwLTAzLTE2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAoZ3Jva2ZpZWxkKTogQmFpbCBvdXQgaWYgdHlwZSBpcyBlcnJvcl9tYXJrX25vZGUuCgoyMDAwLTAzLTE1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdGluZm8yLmNjIChfX3B0cl90b19tZW1iZXJfZGF0YSk6IFJlbmFtZSB0byAuLi4KCShfX3BvaW50ZXJfdG9fbWVtYmVyX2RhdGEpOiAuLi4gaGVyZS4gQWRqdXN0LgoJKiBydHRpLmMgKGNyZWF0ZV90aW5mb190eXBlcyk6IEFkanVzdC4KCjIwMDAtMDMtMTUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKENQVElfUkVGX0RFU0NfVFlQRSwgcmVmX2Rlc2NfdHlwZV9ub2RlKTogUmVtb3ZlLgoJKiBkZWNsLmMgKHJlZl9kZXNjX3R5cGVfbm9kZSk6IFVuZG9jdW1lbnQuCgkqIHJ0dGkuYyAocHRyX3JlZl9pbml0aWFsaXplcik6IFJlbmFtZSB0byAuLi4KCShwdHJfaW5pdGlhbGl6ZXIpOiAuLi4gaGVyZS4gQWRqdXN0IGNvbW1lbnRzLgoJKHB0bWRfaW5pdGlhbGl6ZXIpOiBGaXggY29tbWVudCB0aGlua28uCgkoc3ludGhlc2l6ZV90aW5mb192YXIpOiBSZW1vdmUgUkVGRVJFTkNFX1RZUEUgY2FzZS4KCShjcmVhdGVfdGluZm9fdHlwZXMpOiBSZW1vdmUgcmVmX2Rlc2NfdHlwZV9ub2RlIGluaXQuCgkqIHRpbmZvMi5jYyAoX19yZWZlcmVuY2VfdHlwZV9pbmZvKTogUmVtb3ZlLgoKMjAwMC0wMy0xNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoY3BfZmluaXNoX2RlY2wpOiBSZW1vdmUgb2Jzb2xldGUgY29tbWVudC4KCgkqIHR5cGVjay5jIChidWlsZF9wdHJtZW1mdW5jMSk6IEtpbGwgdW5pbml0aWFsaXplZCB3YXJuaW5nLgoKMjAwMC0wMy0xNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaDogVHdlYWsgZG9jdW1lbnRhdGlvbi4KCSogY2xhc3MuYyAoYnVpbGRfdmJhc2VfcG9pbnRlcl9maWVsZHMpOiBMYXlvdXQgdGhlIGZpZWxkcywgdG9vLgoJKGF2b2lkX292ZXJsYXApOiBSZW1vdmUuCgkoZ2V0X2JpbmZvX29mZnNldF9hc19pbnQpOiBOZXcgZnVuY3Rpb24uCgkoZGZzX3NlcmFjaF9iYXNlX29mZnNldHMpOiBMaWtld2lzZS4KCShsYXlvdXRfbm9uZW1wdHlfYmFzZV9vcl9maWVsZCk6IExpa2V3aXNlLgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBMYXlvdXQgZmllbGRzIGhlcmUuICBBdm9pZCBwbGFjaW5nIHR3byBvYmplY3RzCglvZiB0aGUgc2FtZSB0eXBlIGF0IHRoZSBzYW1lIGFkZHJlc3MsIHVuZGVyIHRoZSBuZXcgQUJJLgoJKGJ1aWxkX2Jhc2VfZmllbGRzKTogQWRqdXN0IGFjY29yZGluZ2x5LgoJKGNyZWF0ZV92dGFibGVfcHRyKTogUmV0dXJuIHRoZSBuZXcgZmllbGQsIGJ1dCBkb24ndCBhdHRhY2ggaXQgdG8KCVRZUEVfRklFTERTLgoJKHJlbW92ZV9iYXNlX2ZpZWxkKTogUmVtb3ZlLgoJKHJlbW92ZV9iYXNlX2ZpZWxkcyk6IFJlbW92ZS4KCShsYXlvdXRfYmFzZXR5cGVzKTogQWRqdXN0IGFjY29yZGluZ2x5LgoJKGxheW91dF9jbGFzc190eXBlKTogQ2FsbCBsYXlvdXRfZmllbGQgZm9yIGVhY2ggZmllbGQsIHJhdGhlciB0aGFuCglqdXN0IG1ha2luZyBhIHdob2xlc2FsZSBjYWxsIHRvIGxheW91dF90eXBlLgoKMjAwMC0wMy0xNCAgSmVmZiBTdHVybSAgPGpzdHVybUBzaWdtYTYuY29tPgoKCSogZXhjZXB0LmMgKGV4cGFuZF90aHJvdyk6IEZpeCB0eXBvIGluIF9Kdl9TamxqX1Rocm93LgoKMjAwMC0wMy0xMyAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBkZWNsLmMgKGdyb2tmbmRlY2wpOiBTZXQgVFJFRV9OT1RIUk9XIGlmIFRZUEVfTk9USFJPV19QLgoKCSogZXhjZXB0LmMgKGR0b3Jfbm90aHJvdyk6IE5ldyBmbi4KCShkb19wb3BfZXhjZXB0aW9uKTogVXNlIGl0LiAgVGFrZSB0eXBlIHBhcm0uCgkocHVzaF9laF9jbGVhbnVwKTogVGFrZSB0eXBlIHBhcm0uCgkoZXhwYW5kX3N0YXJ0X2NhdGNoX2Jsb2NrKTogUGFzcyBpdC4KCShidWlsZF9laF90eXBlX3R5cGVfcmVmKTogQWNjZXB0IG51bGwgdHlwZS4KCjIwMDAtMDMtMTIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHJldmVydF9zdGF0aWNfbWVtYmVyX2ZuKTogQ2hhbmdlIHByb3RvdHlwZS4KCSogZGVjbC5jIChncm9rZm5kZWNsKTogQWRqdXN0IGNhbGwgdG8gcmV2ZXJ0X3N0YXRpY19tZW1iZXJfZm4uCgkoZ3Jva19vcF9wcm9wZXJ0aWVzKTogTGlrZXdpc2UuCgkoc3RhcnRfZnVuY3Rpb24pOiBMaWtld2lzZS4KCShyZXZlcnRfc3RhdGljX21lbWJlcl9mbik6IFNpbXBsaWZ5LgoJKiBwdC5jIChjaGVja19leHBsaWNpdF9zcGVjaWFsaXphdGlvbik6IEFkanVzdCBjYWxsIHRvCglyZXZlcnRfc3RhdGljX21lbWJlcl9mbi4KCjIwMDAtMDMtMTEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKHNjb3BlX2tpbmQpOiBOZXcgdHlwZS4KCSh0bXBsX3NwZWNfa2luZCk6IExpa2V3aXNlLgoJKGRlY2xhcmVfcHNldWRvX2dsb2JhbF9sZXZlbCk6IFJlbW92ZS4KCShwc2V1ZG9fZ2xvYmFsX2xldmVsX3ApOiBSZW5hbWUgdG8gdGVtcGxhdGVfcGFybV9zY29wZV9wLgoJKHB1c2hsZXZlbCk6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCShiZWdpbl9zY29wZSk6IE5ldyBmdW5jdGlvbi4KCShmaW5pc2hfc2NvcGUpOiBMaWtld2lzZS4KCShjdXJyZW50X3RtcGxfc3BlY19raW5kKTogTGlrZXdpc2UuCgkqIGRlY2wuYyAoc3RydWN0IGJpbmRpbmdfbGV2ZWwpOiBTaG9ydGVuIHBhcm1fZmxhZyB0byAyIGJpdHMuCglTaG9ydGVuIGtlZXAgdG8gMiBiaXRzLiAgUmVuYW1lIHBzZXVkb19nbG9iYWwgdG8gdGVtcGxhdGVfcGFybXNfcC4KCUFkZCB0ZW1wbGF0ZV9zcGVjX3AuCgkodG9wbGV2ZWxfYmluZGluZ3NfcCk6IEFkanVzdC4KCShkZWNsYXJlX3BzZXVkb19nbG9iYWxfbGV2ZWwpOiBSZW1vdmUuCgkocHNldWRvX2dsb2JhbF9sZXZlbF9wKTogUmVuYW1lIHRvIHRlbXBsYXRlX3Bhcm1fc2NvcGVfcC4KCShjdXJyZW50X3RtcGxfc3BlY19raW5kKTogTmV3IGZ1bmN0aW9uLgoJKGJlZ2luX3Njb3BlKTogTGlrZXdpc2UuCgkoZmluaXNoX3Njb3BlKTogTGlrZXdpc2UuCgkobWF5YmVfcHVzaF90b190b3BfbGV2ZWwpOiBBZGp1c3QuCgkobWF5YmVfcHJvY2Vzc190ZW1wbGF0ZV90eXBlX2RlY2xhcmF0aW9uKTogTGlrZXdpc2UuCgkocHVzaHRhZyk6IExpa2V3aXNlLgoJKHB1c2hkZWNsX25vbmNsYXNzX2xldmVsKTogTGlrZXdpc2UuCgkobG9va3VwX3RhZyk6IExpa2V3aXNlLgoJKGdyb2tmbmRlY2wpOiBIYW5kbGUgbWVtYmVyIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9ucy4gIFNoYXJlCgljb25zdHJ1Y3RvciBhbmQgbm9uLWNvbnN0cnVjdG9yIGNvZGUuCgkqIGRlY2wyLmMgKGNoZWNrX2NsYXNzZm4pOiBIYW5kbGUgbWVtYmVyIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9ucy4KCSogcHQuYyAoYmVnaW5fdGVtcGxhdGVfcGFybV9saXN0KTogVXNlIGJlZ2luX3Njb3BlLgoJKGJlZ2luX3NwZWNpYWxpemF0aW9uKTogTGlrZXdpc2UuCgkoZW5kX3NwZWNpYWxpemF0aW9uKTogTGlrZXdpc2UuCgkoY2hlY2tfZXhwbGljaXRfc3BlY2lhbGl6YXRpb24pOiBVc2UgY3VycmVudF90bXBsX3NwZWNfa2luZC4KCUhhbmRsZSBtZW1iZXIgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb25zLgoJKGVuZF90ZW1wbGF0ZV9kZWNsKTogVXNlIGZpbmlzaF9zY29wZS4gIFJlbW92ZSBjYWxsIHRvCglnZXRfcGVuZGluZ19zaXplcy4KCShwdXNoX3RlbXBsYXRlX2RlY2xfcmVhbCk6IFJlbW92ZSBib2d1cyBlcnJvciBtZXNzYWdlLgoJKHRzdWJzdF9kZWNsKTogRml4IHR5cG8gaW4gY29kZSBjb250YWluZWQgaW4gY29tbWVudC4KCShpbnN0YW50aWF0ZV90ZW1wbGF0ZSk6IEhhbmRsZSBtZW1iZXIgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb25zLgoJKG1vc3RfZ2VuZXJhbF90ZW1wbGF0ZSk6IExpa2V3aXNlLgoKMjAwMC0wMy0xMSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogbGV4LmMgKHdoaXRlc3BhY2VfY3IpOiBDb21wcmVzcyBjb25zZWN1dGl2ZSBjYWxscyB0byB3YXJuaW5nKCkuCgkoZG9faWRlbnRpZmllcik6IERpdHRvIGZvciBlcnJvcigpLgoKCSogcHQuYyAoY29udmVydF9ub250eXBlX2FyZ3VtZW50KTogRGl0dG8gZm9yIGNwX2Vycm9yKCkuCgkoY29udmVydF90ZW1wbGF0ZV9hcmd1bWVudCk6IERpdHRvIGZvciBjcF9wZWR3YXJuKCkuCgoyMDAwLTAzLTExICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIGV4Y2VwdGlvbi5jYyAoX19jaGVja19udWxsX2VoX3NwZWMpOiBOZXcgZm4uCgkqIGV4Y2VwdC5jIChleHBhbmRfZW5kX2VoX3NwZWMpOiBDYWxsIGl0IGlmIHRoZSBzcGVjIGlzIHRocm93KCkuCgoyMDAwLTAzLTEwICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIGRlY2wuYyAocHVzaF90aHJvd19saWJyYXJ5X2ZuKTogVGFrZSB0aGUgRlVOQ1RJT05fVFlQRS4KCSogZXhjZXB0LmMgKGV4cGFuZF9lbmRfZWhfc3BlYyk6IEFkZCB0aGUgcmV0dXJuIHR5cGUuCgkqIHJ0dGkuYyAodGhyb3dfYmFkX2Nhc3QpOiBBZGQgdGhlIHBhcm10eXBlcy4KCSh0aHJvd19iYWRfdHlwZWlkKTogTGlrZXdpc2UuCgoJKiBzZW1hbnRpY3MuYyAoZXhwYW5kX3N0bXQpOiBPbmx5IGxlYXZlIG91dCBydGwgZm9yIHVudXNlZAoJYXJ0aWZpY2lhbHMsIGFuZCBzZXQgREVDTF9JR05PUkVEX1Agb24gdGhlbSBhcyB3ZWxsLgoJKiBkZWNsLmMgKHdyYXB1cF9nbG9iYWxzX2Zvcl9uYW1lc3BhY2UpOiBMaWtld2lzZS4KCjIwMDAtMDMtMDkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKG1heWJlX2NvbW1vbml6ZV92YXIpOiBTa2lwIGFsbCBhcnRpZmljaWFsIGRlY2xzLgoJKiBwdC5jICh0c3Vic3RfZGVjbCk6IERvbid0IGNvcHkgVFJFRV9BU01fV1JJVFRFTi4KCjIwMDAtMDMtMTAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogbGFuZy1vcHRpb25zLmgsIGRlY2wyLmM6IEFkZCAtZm5vLWVuZm9yY2UtZWgtc3BlY3MuCgkqIGNwLXRyZWUuaDogRGVjbGFyZSBmbGFnX2VuZm9yY2VfZWhfc3BlY3MuCgkqIGRlY2wuYyAoc3RvcmVfcGFybV9kZWNscywgZmluaXNoX2Z1bmN0aW9uKTogQ2hlY2sgaXQuCgoJQyBsaWJyYXJ5IGZ1bmN0aW9ucyBkb24ndCB0aHJvdy4KCSogTWFrZWZpbGUuaW4gKGNmbnMuaCk6IE5ldyB0YXJnZXQuCgkoZXhjZXB0Lm8pOiBEZXBlbmQgb24gaXQuCgkqIE1ha2UtbGFuZy5pbiAoY2MxcGx1cyk6IERlcGVuZCBvbiBjZm5zLmdwZXJmLgoJKiBjZm5zLmdwZXJmOiBOZXcgZmlsZS4KCSogY2Zucy5oOiBHZW5lcmF0ZWQuCgkqIGV4Y2VwdC5jOiBJbmNsdWRlIGl0LgoJKG5vdGhyb3dfbGliZm5fcCk6IE5ldyBmbi4KCSogZGVjbC5jIChncm9rZm5kZWNsKTogVXNlIGl0LgoJKiBjcC10cmVlLmg6IERlY2xhcmUgaXQuCgoJKiBkZWNsLmMgKHB1c2hfb3ZlcmxvYWRlZF9kZWNsXzEsIGF1dG9fZnVuY3Rpb24sCglkZWZpbmVfZnVuY3Rpb24pOiBMb3NlLgoJKGJ1aWxkX2xpYnJhcnlfZm5fMSk6IE5ldyBzdGF0aWMgZm4uCgkoYnVpbHRpbl9mdW5jdGlvbik6IFVzZSBpdC4KCShnZXRfYXRleGl0X25vZGUpOiBVc2UgYnVpbGRfbGlicmFyeV9mbl9wdHIuCgkoYnVpbGRfbGlicmFyeV9mbiwgYnVpbGRfY3BfbGlicmFyeV9mbiwgYnVpbGRfbGlicmFyeV9mbl9wdHIsCglidWlsZF9jcF9saWJyYXJ5X2ZuX3B0ciwgcHVzaF9saWJyYXJ5X2ZuLCBwdXNoX2NwX2xpYnJhcnlfZm4sCglwdXNoX3ZvaWRfbGlicmFyeV9mbiwgcHVzaF90aHJvd19saWJyYXJ5X2ZuKTogTmV3IGZucy4KCSogY3AtdHJlZS5oOiBEZWNsYXJlIHRoZW0uCgkoY3BfdHJlZV9pbmRleCk6IFJlbW92ZSBDUFRJX0JBRF9DQVNULCBDUFRJX0JBRF9UWVBFSUQuCgkodGhyb3dfYmFkX2Nhc3Rfbm9kZSwgdGhyb3dfYmFkX3R5cGVpZF9ub2RlKTogTG9zZS4KCSogZXhjZXB0LmMgKGluaXRfZXhjZXB0aW9uX3Byb2Nlc3NpbmcsIGNhbGxfZWhfaW5mbywgZG9fcG9wX2V4Y2VwdGlvbiwKCShleHBhbmRfZW5kX2VoX3NwZWMsIGFsbG9jX2VoX29iamVjdCwgZXhwYW5kX3Rocm93KTogVXNlIGFib3ZlIGZucy4KCSogcnR0aS5jIChidWlsZF9ydW50aW1lX2RlY2wpOiBMb3NlLgoJKHRocm93X2JhZF9jYXN0LCB0aHJvd19iYWRfdHlwZWlkLCBnZXRfdGluZm9fZGVjbCwKCWJ1aWxkX2R5bmFtaWNfY2FzdF8xLCBleHBhbmRfc2lfZGVzYywgZXhwYW5kX2NsYXNzX2Rlc2MsCglleHBhbmRfcHRyX2Rlc2MsIGV4cGFuZF9hdHRyX2Rlc2MsIGV4cGFuZF9nZW5lcmljX2Rlc2MpOiBVc2UgYWJvdmUgZm5zLgoKCSogY2FsbC5jIChidWlsZF9jYWxsKTogUmVtb3ZlIHJlc3VsdF90eXBlIHBhcm0uCglDYWxsIG1hcmtfdXNlZCBvbiB1bnVzZWQgYXJ0aWZpY2lhbCBmbnMuCgkqIGluaXQuYywgbWV0aG9kLmMsIHR5cGVjay5jLCBleGNlcHQuYywgcnR0aS5jOiBBZGp1c3QuCgoyMDAwLTAzLTA5ICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIGNhbGwuYyAoYnVpbGRfY2FsbCk6IFNldCBUUkVFX05PVEhST1cgb24gdGhlIENBTExfRVhQUiBhcwoJYXBwcm9wcmlhdGUuCgkqIGRlY2wuYyAoZGVmaW5lX2Z1bmN0aW9uKTogU2V0IFRSRUVfTk9USFJPVyBvbiB0aGUgRlVOQ1RJT05fREVDTC4KCSogZXhjZXB0LmMgKGNhbGxfZWhfaW5mbywgYWxsb2NfZWhfb2JqZWN0LCBleHBhbmRfdGhyb3cpOiBTZXQKCVRSRUVfTk9USFJPVyBvciBUUkVFX1RISVNfVk9MQVRJTEUgb24gdGhlIGZ1bmN0aW9uIGFzIGFwcHJvcHJpYXRlLgoJKiBydHRpLmMgKGJ1aWxkX3J1bnRpbWVfZGVjbCwgZ2V0X3RpbmZvX2RlY2wsIGJ1aWxkX2R5bmFtaWNfY2FzdF8xLAoJZXhwYW5kX3NpX2Rlc2MsIGV4cGFuZF9jbGFzc19kZXNjLCBleHBhbmRfcHRyX2Rlc2MsIGV4cGFuZF9hdHRyX2Rlc2MsCglleHBhbmRfZ2VuZXJpY19kZXNjKTogTGlrZXdpc2UuCgoyMDAwLTAzLTA4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZXhjZXB0aW9uLmNjIChfX2NwX3BvcF9leGNlcHRpb24pOiBDbGVhbnVwIHRoZSBvcmlnaW5hbCBvYmplY3QuCgoyMDAwLTAzLTA4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChncm9rX29wX3Byb3BlcnRpZXMpOiBNZXJnZSBjb252ZXJzaW9uIHRvIHZvaWQgd2FybmluZwoJd2l0aCBvdGhlciBzaWxseSBvcCB3YXJuaW5ncy4KCjIwMDAtMDMtMDggIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogdHlwZWNrMi5jIChwcm9jZXNzX2luaXRfY29uc3RydWN0b3IpOiBTZXQgVFJFRV9QVVJQT1NFIG9mCglhcnJheSBDT05TVFJVQ1RPUiBlbGVtZW50cy4gIERvbid0IHVzZSBleHByX3RyZWVfY29ucy4KCjIwMDAtMDMtMDggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGNwX21ha2VfZm5hbWVfZGVjbCk6IE5ldyBmdW5jdGlvbi4KCSh3cmFwdXBfZ2xvYmFsc19mb3JfbmFtZXNwYWNlKTogRG9uJ3QgZW1pdCB1bnVzZWQgc3RhdGljIHZhcnMuCgkoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBSZW1vdmUgY29tbWVudCBhYm91dCB1c2Ugb2YKCWFycmF5X2RvbWFpbl90eXBlLiBTZXQgbWFrZV9mbmFtZV9kZWNsLgoJKGNwX2ZpbmlzaF9kZWNsKTogUmVtb3ZlIF9fRlVOQ1RJT05fXyBuYWRnZXJpbmcuCgkqIHNlbWFudGljcy5jIChiZWdpbl9jb21wb3VuZF9zdG10KTogUmVtb3ZlCgljdXJyZW50X2Z1bmN0aW9uX25hbWVfZGVjbGFyZWQgZmxhZ2dpbmcuCgkoZXhwYW5kX3N0bXQpOiBEb24ndCBlbWl0IHVudXNlZCBsb2NhbCBzdGF0aWNzLgoJKiB0eXBlY2suYyAoZGVjYXlfY29udmVyc2lvbik6IERvbid0IHRyZWF0IF9fRlVOQ1RJT05fXyBkZWNscwoJc3BlY2lhbGx5LgoKMjAwMC0wMy0wOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHR5cGVjay5jIChjb252ZXJ0X2Zvcl9hc3NpZ25tZW50KTogRG9uJ3QgbG9vayBhdCBhcnJheQoJaW5pdGlhbGl6ZXIuCgkqIGNhbGwuYyAoY29udmVydF9saWtlX3JlYWwpOiBMaWtld2lzZS4KCjIwMDAtMDMtMDcgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCUFkZCBpbml0aWFsIHN1cHBvcnQgZm9yICdcdU5OTk4nIHNwZWNpZmllci4KCSogbGV4LmMgKHJlYWRfdWNzKTogTmV3IGZuLgoJKHJlYWRlc2NhcGUsIHNraXBfd2hpdGVfc3BhY2UpOiBDYWxsIGl0LgoJKGlzX2V4dGVuZGVkX2NoYXIsIGlzX2V4dGVuZGVkX2NoYXJfMSk6IE5ldyBmbnMuCgkodXRmOF9leHRlbmRfdG9rZW4pOiBOZXcgZm4sICNpZiAwJ2Qgb3V0LgoJKHJlYWxfeXlsZXgpOiBUcmVhdCBleHRlbmRlZCBjaGFycyBsaWtlIGxldHRlcnMuCgoJKiBzZWFyY2guYyAobm90ZV9kZWJ1Z19pbmZvX25lZWRlZCk6IFdhbGsgdGhlIGJhc2VzIGV2ZW4gaWYgd2UKCXdlcmVuJ3QgZGVmZXJyaW5nIHRoZSB0eXBlIGl0c2VsZi4KCjIwMDAtMDMtMDcgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGRlY2wyLmMgKGZpbmlzaF9vYmplY3RzKTogQ29uc3RpZnkgYSBjaGFyKi4KCgkqIG1ldGhvZC5jIChlbWl0X3RodW5rKTogTGlrZXdpc2UuCgoyMDAwLTAzLTA2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrLmMgKGR1YmlvdXNfY29udmVyc2lvbl93YXJuaW5ncyk6IExvb2sgdGhyb3VnaAoJUkVGRVJFTkNFX1RZUEUuCgoyMDAwLTAzLTA2ICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogY2xhc3MuYyAoZGZzX21vZGlmeV92dGFibGVzKTogSSBpcyBub3cgdW5zaWduZWQuCgkoY2hlY2tfYml0ZmllbGRfZGVjbCk6IFVzZSB0cmVlX2ludF9jc3Rfc2duIGFuZCBjb21wYXJlX3RyZWVfaW50LgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBBZGQgY2FzdHMgb2YgVFJFRV9JTlRfQ1NUX0xPVyB0byBIT1NUX1dJREVfSU5ULgoJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBDYXN0IFRSRUVfSU5UX0NTVF9ISUdIIHRvIHVuc2lnbmVkLgoJKiBpbml0LmMgKGJ1aWxkX3ZlY19pbml0KTogQ2FzdCBUUkVFX0lOVF9DU1RfTE9XIHRvIEhPU1RfV0lERV9JTlQuCgkqIG1ldGhvZC5jIChidWlsZF9vdmVybG9hZF9pbnQpOiBDYXN0IFRSRUVfSU5UX0NTVF9ISUdIIHRvIHVuc2lnbmVkLgoJKiB0eXBlY2suYyAoYnVpbGRfYmluYXJ5X29wLCBjYXNlIFRSVU5DX0RJVl9FWFBSKToKCUNhbGwgaW50ZWdlcl9hbGxfb25lc3AuCgkqIHR5cGVjazIuYyAocHJvY2Vzc19pbml0X2NvbnN0cnVjdG9yKTogVXNlIGNvbXBhcmVfdHJlZV9pbnQuCgoJKiBsYW5nLXNwZWNzLmggKGFzKTogRG9uJ3QgY2FsbCBpZiAtc3ludGF4LW9ubHkuCgoyMDAwLTAzLTA2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZXhwci5jIChjcGx1c19leHBhbmRfZXhwciwgY2FzZSBTVE1UX0VYUFIpOiBEb24ndCBzZXQKCVJUTF9FWFBSX0hBU19OT19TQ09QRSBhZnRlciBhbGwuCgoyMDAwLTAzLTA1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZXhwci5jIChjcGx1c19leHBhbmRfZXhwciwgY2FzZSBTVE1UX0VYUFIpOiBVc2UKCWV4cGFuZF9zdGFydF9zdG10X2V4cHIgYW5kIGV4cGFuZF9lbmRfc3RtdF9leHByIGRpcmVjdGx5LiAgU2V0CglSVExfRVhQUl9IQVNfTk9fU0NPUEUuCgoJKiBwdC5jIChpbnN0YW50aWF0ZV9kZWNsKTogQ2xlYXIgVElfUEVORElOR19URU1QTEFURV9GTEFHIGEgbGl0dGxlCglsYXRlci4KCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IER1bXAgU0NPUEVfTk9fQ0xFQU5VUFNfUC4KCjIwMDAtMDMtMDUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGNvbnZlcnRfbGlrZSk6IE1hY3JvZnkuCgkoY29udmVydF9saWtlX3dpdGhfY29udGV4dCk6IE5ldyBtYWNyby4KCShjb252ZXJ0X2xpa2VfcmVhbCk6IFJlbmFtZWQgZnJvbSBjb252ZXJ0X2xpa2UuICBBZGQgY2FsbGluZwoJY29udGV4dCBwYXJhbWV0ZXJzLCBmb3IgZGlhZ25vc3RpY3MuIEFkZCByZWN1cnNpdmUgZmxhZy4gIENhbGwKCWR1YmlvdXNfY29udmVyc2lvbl93YXJuaW5ncyBmb3Igb3V0ZXIgY29udmVyc2lvbi4KCShidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbik6IFVzZSBjb252ZXJ0X2xpa2Vfd2l0aF9jb250ZXh0LgoJKGJ1aWxkX292ZXJfY2FsbCk6IExpa2V3aXNlLiBEb24ndCB3YXJuIGFib3V0IGR1YmlvdXMKCWNvbnZlcnNpb25zIGhlcmUuIEFkanVzdCBjb252ZXJ0X2RlZmF1bHRfYXJnIGNhbGxzLgoJKGNvbnZlcnRfZGVmYXVsdF9hcmcpOiBBZGQgY29udGV4dCBwYXJhbWV0ZXJzIGZvciBkaWFnbm9zdGljcy4KCVBhc3MgdGhyb3VnaCB0byBjb252ZXJ0X2xpa2Vfd2l0aF9jb250ZXh0LgoJKiBjcC10cmVlLmggKGNvbnZlcnRfZGVmYXVsdF9hcmcpOiBBZGQgY29udGV4dCBwYXJhbWV0ZXJzLgoJKGR1YmlvdXNfY29udmVyc2lvbl93YXJuaW5ncyk6IFByb3RvdHlwZSBuZXcgZnVuY3Rpb24uCgkqIHR5cGVjay5jIChjb252ZXJ0X2FyZ3VtZW50cyk6IEFkanVzdCBjb252ZXJ0X2RlZmF1bHRfYXJnIGNhbGwuCgkoZHViaW91c19jb252ZXJzaW9uX3dhcm5pbmdzKTogTmV3IGZ1bmN0aW9uLCBicm9rZW4KCW91dCBvZiBjb252ZXJ0X2Zvcl9hc3NpZ25tZW50LgoJKGNvbnZlcnRfZm9yX2Fzc2lnbm1lbnQpOiBBZGp1c3QuCgoyMDAwLTAzLTAzICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIGRlY2wyLmMgKGtleV9tZXRob2QpOiBCcmVhayBvdXQgZnJvbS4uLgoJKGltcG9ydF9leHBvcnRfdnRhYmxlLCBpbXBvcnRfZXhwb3J0X2NsYXNzKTogLi4uaGVyZS4KCgkqIGRlY2wuYyAoZmluaXNoX2Z1bmN0aW9uKTogRG9uJ3QgbWVzcyB3aXRoIGZsYWdfa2VlcF9pbmxpbmVfZnVuY3Rpb25zLgoJKiBkZWNsMi5jIChmaW5pc2hfdnRhYmxlX3ZhcmRlY2wpOiBEb24ndCBjaGVjayBkZWNsX2Z1bmN0aW9uX2NvbnRleHQuCgoJKiBzZWFyY2guYyAobm90ZV9kZWJ1Z19pbmZvX25lZWRlZCwgZGZzX2RlYnVnX21hcmssCglkZnNfZGVidWdfdW5tYXJrZWRwKTogVW5jb21tZW50LiAgQWRqdXN0IGZvciBuZXcgc2NoZW1lLgoJKiBkZWNsMi5jIChmaW5pc2hfdnRhYmxlX3ZhcmRlY2wpOiBDYWxsIG5vdGVfZGVidWdfaW5mb19uZWVkZWQuCgoyMDAwLTAzLTAzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbC5jIChjcF9maW5pc2hfZGVjbCk6IFJlbW92ZSBvYnNvbGV0ZSBvYnN0YWNrIGNvbW1lbnRzLCBmaXgKCXR5cG9zLgoKMjAwMC0wMy0wMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoVFlQRV9ORUVEU19ERVNUUlVDVE9SKTogUmVuYW1lIHRvIC4uLgoJKFRZUEVfSEFTX05PTlRSSVZJQUxfREVTVFJVQ1RPUik6IC4uLiB0aGlzLgoJKFRZUEVfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUik6IE5ldyBtYWNyby4KCShsYW5nX3R5cGUpOiBTcGxpdCBnZXRzX25ldyBpbnRvIGhhc19uZXcgYW5kIGhhc19hcnJheV9uZXcuCgkoVFlQRV9WRUNfTkVXX1VTRVNfQ09PS0lFKTogVXNlIFRZUEVfSEFTX05PTlRSSVZJQUxfREVTVFJVQ1RPUi4KCShUWVBFX0dFVFNfTkVXKTogU3BsaXQgaW50byAuLi4KCShUWVBFX0hBU19ORVdfT1BFUkFUT1IpOiAuLi4gdGhpcywgYW5kIC4uLgoJKFRZUEVfSEFTX0FSUkFZX05FV19PUEVSQVRPUik6IC4uLiB0aGlzLgoJKERFQ0xfQVJSQVlfREVMRVRFX09QRVJBVE9SX1ApOiBOZXcgbWFjcm8KCShidWlsZF9vcF9uZXdfY2FsbCk6IERvbid0IGRlY2xhcmUuCgkoYnVpbGRfbmV3XzEpOiBMaWtld2lzZS4KCSogY2FsbC5jIChidWlsZF9vcF9uZXdfY2FsbCk6IFJlbW92ZS4KCSogY2xhc3MuYyAoY2hlY2tfYmFzZXMpOiBVc2UgVFlQRV9IQVNfTk9OVFJJVklBTF9ERVNUUlVDVE9SCglpbnN0ZWFkIG9mIFRZUEVfTkVFRFNfREVTVFJVQ1RPUi4KCShmaW5pc2hfc3RydWN0X2JpdHMpOiBMaWtld2lzZS4KCShhZGRfaW1wbGljaXRseV9kZWNsYXJlZF9tZW1iZXJzKTogTGlrZXdpc2UuCgkoY2hlY2tfZmllbGRfZGVjbCk6IExpa2V3aXNlLgoJKGNoZWNrX21ldGhvZHMpOiBTZXQgVFlQRV9WRUNfREVMRVRFX1RBS0VTX1NJWkUgaGVyZSwgYW5kIHNldCBpdAoJY29ycmVjdGx5IHVuZGVyIHRoZSBuZXcgQUJJLgoJKiBkZWNsLmMgKHN0YXJ0X2RlY2xfMSk6IFVzZSBUWVBFX0hBU19OT05UUklWSUFMX0RFU1RSVUNUT1IKCWluc3RlYWQgb2YgVFlQRV9ORUVEU19ERVNUUlVDVE9SLgoJKGluaXRpYWxpemVfbG9jYWxfdmFyKTogTGlrZXdpc2UuCgkoZGVzdHJveV9sb2NhbF92YXIpOiBMaWtld2lzZS4KCShjcF9maW5pc2hfZGVjbCk6IExpa2V3aXNlLgoJKHJlZ2lzdGVyX2R0b3JfZm4pOiBMaWtld2lzZS4KCShncm9rX29wX3Byb3BlcnRpZXMpOiBTZXQgVFlQRV9IQVNfTkVXX09QRVJBVE9SIGFuZAoJVFlQRV9IQVNfQVJSQVlfTkVXX09QRVJBVE9SLCBub3QgVFlQRV9IQVNfTkVXLiAgRG9uJ3Qgc2V0CglUWVBFX1ZFQ19ERUxFVEVfVEFLRVNfU0laRSBoZXJlLgoJKHhyZWZfYmFzZXR5cGVzKTogU2V0IFRZUEVfSEFTX05FV19PUEVSQVRPUiBhbmQKCVRZUEVfSEFTX0FSUkFZX05FV19PUEVSQVRPUiwgbm90IFRZUEVfSEFTX05FVy4KCShzdG9yZV9wYXJtX2RlY2xzKTogIFVzZSBUWVBFX0hBU19OT05UUklWSUFMX0RFU1RSVUNUT1IuCgkoZmluaXNoX2Rlc3RydWN0b3JfYm9keSk6IExpa2V3aXNlLgoJKG1heWJlX2J1aWxkX2NsZWFudXBfMSk6IExpa2V3aXNlLgoJKiBkZWNsMi5jIChkb19zdGF0aWNfZGVzdHJ1Y3Rpb24pOiBMaWtld2lzZS4KCSogaW5pdC5jIChidWlsZF9uZXdfMSk6IE1ha2UgaXQgc3RhdGljLgoJKHBlcmZvcm1fbWVtYmVyX2luaXQpOiBVc2UgVFlQRV9IQVNfTk9OVFJJVklBTF9ERVNUUlVDVE9SLgoJKGV4cGFuZF9jbGVhbnVwX2Zvcl9iYXNlKTogTGlrZXdpc2UuCgkoZ2V0X2Nvb2tpZV9zaXplKTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX25ld18xKTogSGFuZGxlIGFycmF5LW5ldyBjb29raWVzIGNvcnJlY3RseSB1bmRlciB0aGUgbmV3CglBQkkuCgkoYnVpbGRfdmVjX2RlbGV0ZV8xKTogTGlrZXdpc2UuCgkoYnVpbGRfdmVjX2luaXQpOiAgVXNlIFRZUEVfSEFTX05PTlRSSVZJQUxfREVTVFJVQ1RPUi4KCShidWlsZF9kZWxldGUpOiBMaWtld2lzZS4KCShidWlsZF92ZWNfZGVsZXRlKTogSGFuZGxlIGFycmF5LW5ldyBjb29raWVzIGNvcnJlY3RseSB1bmRlciB0aGUgbmV3CglBQkkuCgkqIGxleC5jIChkb19pZGVudGlmaWVyKTogVXNlIFRZUEVfSEFTX05PTlRSSVZJQUxfREVTVFJVQ1RPUi4KCSogcHQuYyAoaW5zdGFudGlhdGVfY2xhc3NfdGVtcGxhdGUpOiBTZXQgVFlQRV9IQVNfTkVXX09QRVJBVE9SIGFuZAoJVFlQRV9IQVNfQVJSQVlfTkVXX09QRVJBVE9SLgoJKiBwdHJlZS5jIChwcmludF9sYW5nX3R5cGUpOiBDaGVjayB0aGVtLgoJKiBzZWFyY2guYyAoY29udGV4dF9mb3JfbmFtZV9sb29rdXApOiBGaXggdHlwbyBpbiBjb21tZW50LgoJKHRyZWVfaGFzX2FueV9kZXN0cnVjdG9yX3ApOiBVc2UgVFlQRV9IQVNfTk9OVFJJVklBTF9ERVNUUlVDVE9SLgoJKiB0cmVlLmMgKGJyZWFrX291dF9jbGVhbnVwcyk6IExpa2V3aXNlLgoJKGJ1aWxkX2NwbHVzX2FycmF5X3Rlc3RfMSk6IExpa2V3aXNlLgoJKGNwX2J1aWxkX3F1YWxpZmllZF90eXBlX3JlYWwpOiBMaWtld2lzZS4KCSogdHlwZWNrLmMgKGNvbXBsZXRlX3R5cGUpOiBMaWtld2lzZS4KCgkqIGcrK3NwZWMuYyAobGFuZ19zcGVjaWZpY19kcml2ZXIpOiBBZGQgLWZuZXctYWJpIGF0IHRoZSBzdGFydCBvZgoJdGhlIGNvbW1hbmQtbGluZSwgbm90IHRoZSBlbmQuCgoyMDAwLTAzLTAxICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIHB0LmMgKGluc3RhbnRpYXRlX2RlY2wpOiBDbGVhciBUSV9QRU5ESU5HX1RFTVBMQVRFX0ZMQUcuCgoyMDAwLTAzLTAyICBUb20gVHJvbWV5ICA8dHJvbWV5QGN5Z251cy5jb20+CgoJKiBjcC10cmVlLmggKGJ1aWxkX2phdmFfY2xhc3NfcmVmKTogRGVjbGFyZS4KCSogaW5pdC5jIChidWlsZF9qYXZhX2NsYXNzX3JlZik6IE5vIGxvbmdlciBzdGF0aWMuCgkqIGV4Y2VwdC5jIChleHBhbmRfdGhyb3cpOiBHZW5lcmF0ZSBhIEphdmEtc3R5bGUgYHRocm93JyBpZiB0aGUKCXRocm93biBvYmplY3QgaXMgYSAiSmF2YSIgb2JqZWN0LgoJKGluaXRpYWxpemVfaGFuZGxlcl9wYXJtKTogR2VuZXJhdGUgYSBKYXZhLXN0eWxlIGxvb2t1cCBvZgoJZXhjZXB0aW9uIGluZm8gaWYgdGhlIGNhdWdodCBvYmplY3QgaXMgYSAiSmF2YSIgb2JqZWN0LgoJKGNhdGNoX2xhbmd1YWdlLCBjYXRjaF9sYW5ndWFnZV9pbml0KTogTmV3IGdsb2JhbHMuCgkoZGVjbF9pc19qYXZhX3R5cGUpOiBOZXcgZnVuY3Rpb24uCgkoZXhwYW5kX3N0YXJ0X2NhdGNoX2Jsb2NrKTogRG9uJ3QgY2FsbCBwdXNoX2VoX2luZm8oKSBvcgoJcHVzaF9laF9jbGVhbnVwKCkgd2hlbiBoYW5kbGluZyBhIEphdmEtc3R5bGUgImNhdGNoIi4gIFBhc3MgSmF2YQoJY2xhc3MgcmVmZXJlbmNlIHRvIGJ1aWxkX2NhdGNoX2Jsb2NrLgoKMjAwMC0wMy0wMiAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIHR5cGVjay5jIChjb21wdHlwZXMpOiBUcmVhdCBzaXpldHlwZSBsaWtlIGl0cyBsYW5ndWFnZSBlcXVpdmFsZW50LgoKMjAwMC0wMy0wMSAgQmVybmQgU2NobWlkdCAgPGJlcm5kc0BjeWdudXMuY28udWs+CgoJKiB0eXBlY2suYyAobWF5YmVfd2Fybl9hYm91dF9yZXR1cm5pbmdfYWRkcmVzc19vZl9sb2NhbCk6IFJlb3JnYW5pemUKCXRvIG1lcmdlIHJlZmVyZW5jZS9wb2ludGVyIGNvZGUgYW5kIGZpeCBpbmNvcnJlY3Qgd2FybmluZ3MuCgoyMDAwLTAyLTI5ICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIHNlYXJjaC5jIChwcm90ZWN0ZWRfYWNjZXNzaWJsZV9wKTogVXNlIGNvbnRleHRfZm9yX25hbWVfbG9va3VwLgoKCSogaW5pdC5jIChjb25zdHJ1Y3RfdmlydHVhbF9iYXNlcyk6IEZpeCB0aGlua28uCgkqIHR5cGVjay5jIChleHBhbmRfcHRybWVtZnVuY19jc3QpOiBGaXggdGhpbmtvLgoKMjAwMC0wMy0wMSAgTWFydGluIHZvbiBMb2V3aXMgIDxsb2V3aXNAaW5mb3JtYXRpay5odS1iZXJsaW4uZGU+CgoJKiBkZWNsLmMgKGN1cnJlbnRfZnVuY3Rpb25fZGVjbCk6IE1vdmUgdG8gdG9wbGV2LmMuCgoyMDAwLTAyLTI5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogcHQuYyAoZm5fdHlwZV91bmlmaWNhdGlvbik6IFVuaWZ5IHJldHVybiB0eXBlLCB3aGVuZXZlcgoJcHJvdmlkZWQuCgkoZ2V0X2JpbmRpbmdzX3JlYWwpOiBPbmx5IHBhc3MgcmV0dXJuIHR5cGUgd2hlbiBuZWNlc3NhcnkuCglSZW1vdmUgZXhwbGljaXQgcmV0dXJuIHR5cGUgY2hlY2suCgkqIGNsYXNzLmMgKHJlc29sdmVfYWRkcmVzc19vZl9vdmVybG9hZGVkX2Z1bmN0aW9uKTogUGFzcyBkZXNpcmVkCglyZXR1cm4gdHlwZSB0byBmbl90eXBlX3VuaWZpY2F0aW9uLgoKMjAwMC0wMi0yOCAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0Ymxfb3JfdmJhc2VfZmllbGQsIGNoZWNrX21ldGhvZHMpOiBEb24ndCBjbGVhcgoJREVDTF9GSUVMRF9TSVpFLgoJKGNoZWNrX2JpdGZpZWxkX2RlY2wsIGNoZWNrX2ZpZWxkX2RlY2xzKTogU2V0IERFQ0xfU0laRSwgbm90CglERUNMX0ZJRUxEX1NJWkUuCgkqIHJ0dGkuYyAoZXhwYW5kX2NsYXNzX2Rlc2MpOiBMaWtld2lzZS4KCSogY3AtdHJlZS5oIChERUNMX0lOSVRfUFJJT1JJVFkpOiBVc2UgdW5kZXJseWluZyB1bmlvbiBuYW1lLgoJKFRIVU5LX1ZDQUxMX09GRlNFVCk6IExpa2V3aXNlLgoJKFRIVU5LX0RFTFRBKTogUmVmbGVjdCBjaGFuZ2VzIGluIC4uL3RyZWUuaC4KCjIwMDAtMDItMjggIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogc2VhcmNoLmMgKHByb3RlY3RlZF9hY2Nlc3NpYmxlX3ApOiBBbHNvIGFsbG93IHRoZSBhY2Nlc3MgaWYKCXRoZSBtZW1iZXIgaXMgcHVibGljIGluIERFUklWRUQuICBMb3NlIFRZUEUgcGFybS4KCShmcmllbmRfYWNjZXNzaWJsZV9wKTogTG9zZSBUWVBFIHBhcm0uCgkoYWNjZXNzaWJsZV9wKTogQWRqdXN0LgoKMjAwMC0wMi0yNyAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIGNsYXNzLmMgKGRmc19idWlsZF92dGFibGVfb2Zmc2V0X3Z0YmxfZW50cmllcyk6IERvbid0IHVzZSBzaXplX2Jpbm9wCglvbiB0aGluZ3MgdGhhdCBhcmUgbm90IHNpemVzOyBzc2l6ZV9iaW5vcCBkZWxldGVkLgoJQ2FsbCBzaXplX2RpZmZvcCB3aGVuIGFwcHJvcHJpYXRlLgoJKGRmc19idWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgkoYnVpbGRfcHJpbWFyeV92dGFibGUsIGJ1aWxkX3NlY29uZGFyeV92dGFibGUpOiBMaWtld2lzZS4KCShkZnNfc2V0X29mZnNldF9mb3JfdW5zaGFyZWRfdmJhc2VzLCBkZnNfbW9kaWZ5X3Z0YWJsZXMpOiBMaWtld2lzZS4KCVZhcmlhYmxlIEkgaXMgSE9TVF9XSURFX0lOVC4KCShnZXRfdmZpZWxkX29mZnNldCk6IFBhc3MgcHJvcGVyIHR5cGVzIHRvIHNpemVfYmlub3AuCgkoc2l6ZV9leHRyYV92dGJsX2VudHJpZXMsIGxheW91dF92aXJ0dWFsX2Jhc2VzKTogTGlrZXdpc2UuCgkoZmluaXNoX3N0cnVjdF8xKTogTGlrZXdpc2UuCgkoc2tpcF9ydHRpX3N0dWZmKTogQXJnIE4gaXMgbm93IHBvaW50ZXIgdG8gc2lnbmVkLgoJKGxheW91dF9jbGFzc190eXBlKTogVXNlIHNpemVfemVyb19ub2RlLgoJKiBjcC10cmVlLmggKHNraXBfcnR0aV9zdHVmZik6IEFyZyBOIGlzIHBvaW50ZXIgdG8gc2lnbmVkLgoJKiBjdnQuYyAoY3BfY29udmVydF90b19wb2ludGVyKTogUGFzcyBwcm9wZXIgdHlwZXMgdG8gc2l6ZV9iaW5vcC4KCSogZGVjbC5jIChjb21wbGV0ZV9hcnJ5X3R5cGUpOiBQYXNzIHByb3BlciB0eXBlcyB0byBzaXplX2Jpbm9wLgoJKHhyZWZfYmFzZXR5cGVzKTogQklORk9fT0ZGU0VUIGlzIHNpemV0eXBlLgoJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBEb24ndCB1c2Ugc2l6ZV9iaW5vcCBub24tc2l6ZXMuCgkqIGV4cHIuYyAoY3BsdXNfZXhwYW5kX2NvbnN0YW50KTogUGFzcyBwcm9wZXIgdHlwZXMgdG8gc2l6ZV9iaW5vcC4KCSogaW5pdC5jIChjb25zdHJ1Y3RfdmlydHVhbF9iYXNlcyk6IEZpeCB0eXBlIGVycm9yLgoJKGJ1aWxkX3ZlY19kZWxldGVfMSk6IFBhc3MgcHJvcGVyIHR5cGUgdG8gc2l6ZV9iaW5vcCBhbmQgZG9uJ3QKCWZvbGQgcmVzdWx0LgoJKiBsZXguYyAoY3BfbWFrZV9sYW5nX3R5cGUpOiBCSU5GT19PRkZTRVQgaXMgc2l6ZXR5cGUuCgkqIHJ0dGkuYyAoZ2V0X2Jhc2Vfb2Zmc2V0KTogUGFzcyBwcm9wZXIgdHlwZSB0byBzaXplX2Jpbm9wLgoJKiBzZWFyY2guYyAoZGZzX2ZpbmRfdmJhc2VzKTogRml4IHR5cGUgZXJyb3IuCgkoZXhwYW5kX3VwY2FzdF9maXh1cHMpOiBBcmcgdG8gc2tpcF9ydHRpX3N0dWZmIGlzIHBvaW50ZXIgdG8gc2lnbmVkLgoJKGRmc19nZXRfdmJhc2VfdHlwZXMpOiBCSU5GT19PRkZTRVQgaXMgc2l6ZXR5cGUuCgkqIHRyZWUuYyAoZGVidWdfYmluZm8pOiBWYXJpYWJsZSBOIGlzIHNpZ25lZC4KCVVzZSBIT1NUX1dJREVfSU5UX1BSSU5UX0RFQy4KCSogdHlwZWNrLmMgKGNvbXB0eXBlcyk6IHNpemV0eXBlIGlzIHNhbWUgYXMgZXF1aXZhbGVudCBpbnRlZ2VyIHR5cGUuCgkoY19zaXplb2YsIGNfc2l6ZW9mX25vd2FybiwgZXhwcl9zaXplb2YpOiBVc2UgVFlQRV9TSVpFX1VOSVQsCglzaXplX29uZV9ub2RlIGFuZCBzaXplX3plcm9fbm9kZS4KCShjX2FsaWdub2YpOiBVc2Ugc2l6ZV9vbmVfbm9kZS4KCShidWlsZF9jb21wb25lbnRfYWRkcik6IFBhc3MgcHJvcGVyIHR5cGVzIHRvIHNpemVfYmlub3AuCgkoZXhwYW5kX3B0cm1lbWZ1bmNfY3N0KTogRG9uJ3QgdXNlIHNpemVfYmlub3Agb24gbm9uLXNpemVzLgoKMjAwMC0wMi0yNiAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJSW1wbGVtZW50IGNsYXNzIHNjb3BlIHVzaW5nLWRlY2xhcmF0aW9ucyBmb3IgZnVuY3Rpb25zLgoJKiBjbGFzcy5jIChoYW5kbGVfdXNpbmdfZGVjbCk6IENhbGwgYWRkX21ldGhvZCBmb3IgdXNlZCBmdW5jdGlvbnMuCglVc2UgSURFTlRJRklFUl9DTEFTU19WQUxVRSB0byBjaGVjayBmb3IgY29uZmxpY3RzLgoJKGFkZF9tZXRob2QpOiBVc2VkIGZ1bmN0aW9ucyBhcmUgaGlkZGVuIGJ5IGxvY2FsIGZ1bmN0aW9ucy4KCShjaGVja19iYXNlc19hbmRfbWVtYmVycyk6IEhhbmRsZSB1c2luZy1kZWNscyBiZWZvcmUgZmluYWxpemluZwoJQ0xBU1NUWVBFX01FVEhPRF9WRUMuCgkqIGNhbGwuYyAoYWRkX2Z1bmN0aW9uX2NhbmRpZGF0ZSk6IEFkZCBjdHlwZSBwYXJtOyBpZiBub256ZXJvLAoJb3ZlcnJpZGUgdGhlIHR5cGUgb2YgJ3RoaXMnIGFjY29yZGluZ2x5LgoJKGFkZF90ZW1wbGF0ZV9jYW5kaWRhdGUsIGFkZF90ZW1wbGF0ZV9jYW5kaWRhdGVfcmVhbCk6IEFkZCBjdHlwZSBwYXJtLgoJKGNvbnZlcnRfY2xhc3NfdG9fcmVmZXJlbmNlLCBidWlsZF91c2VyX3R5cGVfY29udmVyc2lvbl8xLAoJYnVpbGRfbmV3X2Z1bmN0aW9uX2NhbGwsIGJ1aWxkX29iamVjdF9jYWxsLCBidWlsZF9uZXdfb3AsCglidWlsZF9uZXdfbWV0aG9kX2NhbGwpOiBQYXNzIGN0eXBlIHBhcm0uCgoJKiBzZWFyY2guYyAobG9va3VwX21lbWJlcik6IFB1dCBydmFsX2JpbmZvLCBub3QgYmFzZXR5cGVfcGF0aCwgaW4KCXRoZSBiYXNlbGluay4KCSogY2FsbC5jIChjb252ZXJ0X2NsYXNzX3RvX3JlZmVyZW5jZSwgYnVpbGRfdXNlcl90eXBlX2NvbnZlcnNpb25fMSwKCWJ1aWxkX25ld19mdW5jdGlvbl9jYWxsLCBidWlsZF9vYmplY3RfY2FsbCwgYnVpbGRfbmV3X29wLAoJYnVpbGRfbmV3X21ldGhvZF9jYWxsLCBidWlsZF9vcF9kZWxldGVfY2FsbCk6IERvbid0IGdldCBiYXNldHlwZV9wYXRoCglmcm9tIGEgYmFzZWxpbmsuCgkqIHR5cGVjay5jIChidWlsZF9jb21wb25lbnRfcmVmKTogTGlrZXdpc2UuCgkqIGluaXQuYyAoYnVpbGRfb2Zmc2V0X3JlZik6IExpa2V3aXNlLgoJKHJlc29sdmVfb2Zmc2V0X3JlZik6IERvbid0IGNhbGwgZW5mb3JjZV9hY2Nlc3MuCglDYWxsIGJ1aWxkX3Njb3BlZF9yZWYuCgkqIHR5cGVjazIuYyAoYnVpbGRfc2NvcGVkX3JlZik6IFNpbXBsaWZ5LiAgRG8gbm90aGluZyBpZiBpdAoJd291bGQgY2F1c2UgYW4gZXJyb3Igb3IgaWYgLXBlZGFudGljLgoJKiBjbGFzcy5jIChhbHRlcl9hY2Nlc3MpOiBMb3NlIGJpbmZvIHBhcm0uCgoyMDAwLTAyLTI2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogc2VtYW50aWNzLmMgKHNpbXBsaWZ5X2FnZ3JfaW5pdF9leHByc19wKTogRG9uJ3Qgd2FsayBpbnRvCgl0eXBlcy4KCjIwMDAtMDItMjUgIEFsZnJlZCBNaW5hcmlrIDxhODYwMTI0OEB1bmV0LnVuaXZpZS5hYy5hdD4KCgkqIHJ0dGkuYyAoZ2V0X3ZtaV9wc2V1ZG9fdHlwZV9pbmZvKTogTW92ZSBfX3ZtaV9jbGFzc190eXBlX2luZm8KCXBzZXVkb190eXBlX2luZm8gY3JlYXRpb24gaW50byB0aGUgc3RkIG5hbWVzcGFjZQoKMjAwMC0wMi0yNiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoREVDTF9ORUVERURfUCk6IFR3ZWFrIHRvIGNvcnJlY3QgdXNhZ2UgYmVmb3JlIEVPRi4KCShpbXBvcnRfZXhwb3J0X2NsYXNzKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKiBkZWNsMi5jIChpbXBvcnRfZXhwb3J0X2NsYXNzKTogTWFrZSBpdCBzdGF0aWMuCgkqIGR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IEhhbmRsZSBQUkVERUNSRU1FTlRfRVhQUiwKCVBSRUlOQ1JFTUVOVF9FWFBSLCBQT1NUREVDUkVNRU5UX0VYUFIsIFBPU1RJTkNSRU1FTlRfRVhQUiwKCUVYUFJfV0lUSF9GSUxFX0xPQ0FUSU9OLgoJKiBsZXguYyAoY2hlY2tfbmV3bGluZSk6IFR3ZWFrIGZpbGVuYW1lL2xpbmVubyBzZXR0aW5nLgoJKiBzZW1hbnRpY3MuYyAoYmVnaW5fd2hpbGVfc3RtdCk6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgoyMDAwLTAyLTI2ICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogbGFuZy1vcHRpb25zLmggKC1mbWVzc2FnZS1sZW5ndGg9KTogQWRkIG1pc3Npbmcgb3B0aW9uLgoKCSogTWFrZS1sYW5nLmluIChDWFhfU1JDUyk6IEFkZCAuaCBmaWxlcyBhbmQgc29ydCBsaXN0LgoKMjAwMC0wMi0yNiAgWmFjayBXZWluYmVyZyAgPHphY2tAd29sZXJ5LmN1bWIub3JnPgoKCSogTWFrZS1sYW5nLmluOiBEZWxldGUgcmVmcyB0byBMSUJHQ0MyX0RFUFMuCgoyMDAwLTAyLTI1ICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBvcHRpbWl6ZS5jIChleHBhbmRfY2FsbF9pbmxpbmUpOiBFbWl0IHRoZSByZXR1cm4gbGFiZWwgYmVmb3JlCglldmFsdWF0aW5nIHRoZSByZXR1cm4gdmFsdWUuCgoyMDAwLTAyLTI0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogbGV4LmMgKGNoZWNrX25ld2xpbmUpOiBVc2UgcHVzaF9zcmNsb2MgYW5kIHBvcF9zcmNsb2MsIHJhdGhlcgoJdGhhbiBkdXBsaWNhdGluZyBmdW5jdGlvbmFsaXR5IGhlcmUuCgkqIG9wdGltaXplLmM6IEluY2x1ZGUgaW5wdXQuaC4KCShleHBhbmRfY2FsbF9pbmxpbmUpOiBVc2UgcHVzaF9zcmNsb2MgYW5kIHBvcF9zcmNsb2MuCgkqIHBhcnNlLnkgKG1heWJlX2N2X3F1YWxpZmllcik6IFJlbW92ZSBjYWxscyB0byBlbWl0X2xpbmVfbm90ZS4KCSogcGFyc2UuYzogUmVnZW5lcmF0ZWQuCgkqIE1ha2VmaWxlLmluIChsZXgubyk6IERlcGVuZCBvbiBpbnB1dC5oLgoJKG9wdGltaXplLm8pOiBMaWtld2lzZS4KCjIwMDAtMDItMjQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogRGlhZ25vc2UgcXVhbGlmaWVycyBvbiBub24tbWVtYmVyCglmdW5jdGlvbiB0eXBlLCByYXRoZXIgdGhhbiBJQ0UuCgoyMDAwLTAyLTIzICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIGRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBDYWxsIGRlY2xfdHlwZV9hY2Nlc3NfY29udHJvbC4KCSogcGFyc2UueSAocGFyc2VfZW5kX2RlY2wpOiBEb24ndCBjYWxsIGRlY2xfdHlwZV9hY2Nlc3NfY29udHJvbCBpZgoJZGVjbCBpcyBudWxsLgoKMjAwMC0wMi0yMyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoZGVjbHNfbWF0Y2gpOiBSZW1vdmUgb2Jzb2xldGUgc3RhdGljIG1lbWJlciBuYWRnZXJpbmcuCgoyMDAwLTAyLTIxICBNYXJ0aW4gdi4gTPZ3aXMgIDxsb2V3aXNAaW5mb3JtYXRpay5odS1iZXJsaW4uZGU+CgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogQ2hhbmdlIEFOU0kgdG8gSVNPLgoJKiBsZXguYyAoY29uc3VtZV9zdHJpbmcsIHJlYWRlc2NhcGUsIGRvX2lkZW50aWZpZXIpOiBMaWtld2lzZS4KCShwYXJzZV9mbG9hdCwgcmVhbF95eWxleCk6IExpa2V3aXNlLgoJKiBwYXJzZS55IChwYXJlbl9leHByX29yX251bGwsIHBhcmVuX2NvbmRfb3JfbnVsbCk6IExpa2V3aXNlLgoJKHVuYXJ5X2V4cHIsIG5ld19pbml0aWFsaXplciwgY2FzdF9leHByLCBwcmltYXJ5LCBwcmltYXJ5X25vX2lkLAoJbmV3X3R5cGVfaWQsIG1heWJlX2xhYmVsX2RlY2xzLCBzaW1wbGVfc3RtdCwKCWZvci5pbml0LnN0YXRlbWVudCk6IExpa2V3aXNlLgoJKiBwdC5jIChkb19kZWNsX2luc3RhbnRpYXRpb24sIGRvX3R5cGVfaW5zdGFudGlhdGlvbik6IExpa2V3aXNlLgoJKiBzZW1hbnRpY3MuYyAoZmluaXNoX25hbWVkX3JldHVybl92YWx1ZSk6IExpa2V3aXNlLgoJKiBwYXJzZS5jOiBSZWdlbmVyYXRlLgoKMjAwMC0wMi0yMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoQ1BUSV9WVEFCTEVfSU5ERVhfVFlQRSk6IE5ldyBtYWNyby4KCShDUFRJX0NMQVNTX1NUQVJfVFlQRSk6IFJlbW92ZS4KCSh2dGFibGVfaW5kZXhfdHlwZSk6IExpa2V3aXNlLgoJKGNsYXNzX3N0YXJfdHlwZV9ub2RlKTogUmVtb3ZlLgoJKFRZUEVfUFRSTUVNRlVOQ19GTl9UWVBFKTogQWRqdXN0IGZvciB0aGUgbmV3IEFCSS4KCShidWlsZF9iaW5hcnlfb3Bfbm9kZWZhdWx0KTogUmVtb3ZlLgoJKiBjYWxsLmMgKGJ1aWxkX25ld19vcCk6IFVzZSBidWlsZF9iaW5hcnlfb3AgaW5zdGVhZCBvZgoJYnVpbGRfYmluYXJ5X29wX25vZGVmYXVsdC4KCSogZGVjbC5jIChpbml0X2RlY2xfcHJvY2Vzc2luZyk6IFJlbW92ZSBjbGFzc19zdGFyX3R5cGVfbm9kZQoJaW5pdGlhbGl6YXRpb24uICBNYWtlIGRlbHRhX3R5cGVfbm9kZSBwdHJkaWZmX3R5cGVfbm9kZSB1bmRlciB0aGUKCW5ldyBBQkkuICBJbml0aWFsaXplIHZ0YWJsZV9pbmRleF90eXBlLgoJKGJ1aWxkX3B0cm1lbWZ1bmNfdHlwZSk6IEJ1aWxkIGRpZmZlcmVudCBzdHJ1Y3R1cmVzIGZvciB0aGUgbmV3CglBQkkuCgkoYnVpbGRfZW51bWVyYXRvcik6IFVzZSBidWlsZF9iaW5hcnlfb3AgaW5zdGVhZCBvZgoJYnVpbGRfYmluYXJ5X29wX25vZGVmYXVsdC4KCSogbWV0aG9kLmMgKGJ1aWxkX292ZXJsb2FkX3ZhbHVlKTogTWFuZ2xlIHBvaW50ZXJzLXRvLW1lbWJlcnMKCWFwcHJvcHJpYXRlbHkgdW5kZXIgdGhlIG5ldyBBQkkuCgkqIHR5cGVjay5jIChidWlsZF9hcnJheV9yZWYpOiBVc2UgYnVpbGRfYmluYXJ5X29wIGluc3RlYWQgb2YKCWJ1aWxkX2JpbmFyeV9vcF9ub2RlZmF1bHQuCgkoZ2V0X21lbWJlcl9mdW5jdGlvbl9mcm9tX3B0cmZ1bmMpOiBBZGp1c3QgZm9yIHRoZSBuZXcgQUJJLgoJKGJ1aWxkX2JpbmFyeV9vcF9ub2RlZmF1bHQpOiBSZW5hbWUgdG8gLi4uCgkoYnVpbGRfYmluYXJ5X29wKTogLi4uIHRoaXMuICBSZW1vdmUgb2xkIHZlcnNpb24uICBBZGp1c3QgZm9yCglwb2ludGVyLXRvLW1lbWJlciBjb21wYXJpc29ucyB1bmRlciB0aGUgbmV3IEFCSS4KCShidWlsZF9wdHJtZW1mdW5jMSk6IFJlbW92ZSBkZWFkIGNvZGUuICBBZGp1c3QgZm9yIHRoZSBuZXcgQUJJLgoJKGJ1aWxkX3B0cm1lbWZ1bmMpOiBBZGp1c3QgZm9yIHRoZSBuZXcgQUJJLgoJKGV4cGFuZF9wdHJtZW1mdW5jX2NzdCk6IExpa2V3aXNlLgoJKGRlbHRhMl9mcm9tX3B0cm1lbWZ1bmMpOiBBc3NlcnQgdGhhdCB3ZSdyZSBub3QgdXNpbmcgdGhlIG5ldyBBQkkuCgkocGZuX2Zyb21fcHRybWVtZnVuYyk6IEFkanVzdCBmb3IgdGhlIG5ldyBBQkkuCgoyMDAwLTAyLTIxICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWxsLmMgKGJ1aWxkX29iamVjdF9jYWxsKTogQ29tcHJlc3MgY29uc2VjdXRpdmUgY2FsbHMgdG8KCWNwX2Vycm9yLgoJKGJ1aWxkX2NvbmRpdGlvbmFsX2V4cHIpOiBTYXkgJ0lTTyBDKysnIG5vdCAnQU5TSSBDKysnLgoJKGJ1aWxkX29wX2RlbGV0ZV9jYWxsKTogQWRqdXN0IG1lc3NhZ2UgZm9ybWF0dGluZy4KCgkqIGNsYXNzLmMgKGNoZWNrX2Jhc2VzKTogQ29tcHJlc3MgY29uc2VjdXRpdmUgY2FsbHMgdG8KCWNwX3BlZHdhcm4uCgkoZmluaXNoX3N0cnVjdF9hbm9uKTogU2F5ICdJU08gQysrJy4KCgkqIGRlY2wuYyAoc3RhcnRfZGVjbCk6IFNhbWUgaGVyZS4KCShncm9rX3JlZmVyZW5jZV9pbml0KTogTGlrZXdpc2UuCgkoZ3Jva2ZuZGVjbCk6IENvcnJlY3QgbWVzc2FnZSBmb3JtYXR0aW5nLgoJKGdyb2tmbmRlY2wpOiBJbXByb3ZlIGRpYWdub3N0aWMuCgkoY2hlY2tfc3RhdGljX3ZhcmlhYmxlX2RlZmluaXRpb24pOiBMaWtld2lzZS4gU2F5ICdJU08gQysrJwoJKGNvbXB1dGVfYXJyYXlfaW5kZXhfdHlwZSk6IFNheSAnSVNPIEMrKycKCShjcmVhdGVfYXJyYXlfdHlwZV9mb3JfZGVjbCk6IENvbXByZXNzIGNvbnNlY3V0aXZlIGNhbGxzIHRvCgljcF9lcnJvci4KCShncm9rZGVjbGFyYXRvcik6IFNheSAnSVNPIEMrKycKCShncm9rX29wX3Byb3BlcnRpZXMpOiBMaWtld2lzZS4KCgkqIGRlY2wyLmMgKGRlbGV0ZV9zYW5pdHkpOiBDbGFpcmlmeSBkaWFnbm9zdGljLgoJKGNoZWNrX21lbWJlcl90ZW1wbGF0ZSk6IFNhbWUgaGVyZS4KCShncm9rX2Z1bmN0aW9uX2luaXQpOiBVc2UgY29uc2lzdGVudCB0ZXJtaW5vbG9neS4KCgkqIGV4cHIuYyAoZG9fY2FzZSk6IFNheSAnSVNPIEMrKycKCgkqIGZyaWVuZC5jIChkb19mcmllbmQpOiBDb21wcmVzcyBjb25zZWN1dGl2ZSBjYWxscyB0byB3YXJuaW5nLgoKMjAwMC0wMi0yMCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAobWVyZ2VfcHJpbWFyeV9hbmRfc2Vjb25kYXJ5X3Z0YWJsZXNfcCk6IE5ldyBtYWNyby4KCSogY2xhc3MuYyAoYnVpbGRfc2Vjb25kYXJ5X3Z0YWJsZSk6IFJlb3JnYW5pemUuICBEb24ndCBjcmVhdGUgYQoJbmV3IHZ0YWJsZSB1bmRlciB0aGUgbmV3IEFCSS4KCShsYXlvdXRfdnRhYmxlX2RlY2wpOiBEb24ndCBhZGQgbnVtX2V4dHJhX3Z0YmxfZW50cmllcyB3aGVuCgljb21wdXRpbmcgdGhlIHNpemUuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IERvbid0IHJldHVybiBhIENPTlNUUlVDVE9SOyBqdXN0IHJldHVybgoJdGhlIGluaXRpYWxpemluZyBlbGVtZW50cy4KCShpbml0aWFsaXplX3Z0YWJsZSk6IE5ldyBmdW5jdGlvbi4KCShkZnNfZmluaXNoX3Z0YmxzKTogVXNlIGl0LgoJKGRmc19hY2N1bXVsYXRlX3Z0YmxfaW5pdHMpOiBOZXcgZnVuY3Rpb24uCgkoZmluaXNoX3Z0YmxzKTogTWVyZ2UgcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IHZ0YWJsZXMgdW5kZXIgdGhlIG5ldwoJQUJJLgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IFJlbW92ZSByZWR1bmRhbnQgY2FsbCB0byBsYXlvdXRfdnRhYmxlX2RlY2wuCgkqIGluaXQuYyAoZXhwYW5kX3ZpcnR1YWxfaW5pdCk6IERlYWwgd2l0aCBCSU5GT19WVEFCTEVzIHRoYXQKCWFyZW4ndCBWQVJfREVDTHMuCgoJKiBjbGFzcy5jIChidWlsZF92dGFibGUpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBmcm9tIC4uLgoJKGdldF92dGFibGVfZGVjbCk6IC4uLiBoZXJlLCBhbmQgLi4uCgkoYnVpbGRfc2Vjb25kYXJ5X3Z0YWJsZSk6IC4uLiBoZXJlLgoKCSogcHQuYyAodHN1YnN0X2RlY2wpOiBGaXggZm9ybWF0dGluZy4KCjIwMDAtMDItMTkgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiBjbGFzcy5jIChidWlsZF9wcmltYXJ5X3Z0YWJsZSwgbGF5b3V0X3Z0YWJsZV9kZWNsKTogTGlrZXdpc2UuCgkoYXZvaWRfb3ZlcmxhcCwgYnVpbGRfYmFzZV9maWVsZCk6IExpa2V3aXNlLgoJKGJ1aWxkX2Jhc2VfZmllbGQsIGJ1aWxkX2Jhc2VfZmllbGRzLCBpc19lbXB0eV9jbGFzcyk6CglUZXN0IERFQ0xfU0laRSB3aXRoIGludGVnZXJfemVyby4KCShsYXlvdXRfY2xhc3NfdHlwZSk6IFNldCBDTEFTU1RZUEVfU0laRV9VTklULgoJKiBjcC10cmVlLmggKHN0cnVjdCBsYW5nX3R5cGUpOiBOZXcgZmllbGQgc2l6ZV91bml0LgoJKENMQVNTVFlQRV9TSVpFX1VOSVQpOiBOZXcgbWFjcm8uCgkqIGRlY2wuYyAoaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBTZXQgREVDTF9TSVpFX1VOSVQuCgkoY3BfZmluaXNoX2RlY2wpOiBEZWxldGUgLVdsYXJnZXItdGhhbiBwcm9jZXNzaW5nLgoJKiBvcHRpbWl6ZS5jIChyZW1hcF9kZWNsKTogV2FsayBERUNMX1NJWkVfVU5JVC4KCSogcHQuYyAodHN1YnN0X2RlY2wpOiBTZXQgREVDTF9TSVpFX1VOSVQuCgkqIHRyZWUuYyAobWFrZV9iaW5mbyk6IGJpbmZvIHZlY3RvciBpcyBvbmUgZW50cnkgbG9uZ2VyLgoJKHdhbGtfdHJlZSk6IFdhbGsgREVDTF9TSVpFX1VOSVQuCgoyMDAwLTAyLTE5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoZGZzX2J1aWxkX3ZjYWxsX29mZnNldF92dGJsX2VudHJpZXMpOiBGaXggdHlwbyBpbgoJY29tbWVudC4KCShidWlsZF92dGFibGVfZW50cnkpOiBEb24ndCBhc3N1bWUgYWxsIHZ0YWJsZSBlbnRyaWVzIGFyZQoJZnVuY3Rpb25zLgoJKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBBZGp1c3QgYWNjb3JkaW5nbHkuCgkoZ2V0X3Z0YWJsZV9kZWNsKTogRml4IGZvcm1hdHRpbmcuCgoyMDAwLTAyLTE4ICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIHNlbWFudGljcy5jIChkZWZlcnJlZF90eXBlX2FjY2Vzc19jb250cm9sKTogV2FsayB0aGUgZW50aXJlCgl0eXBlX2xvb2t1cHMgbGlzdC4KCShzYXZlX3R5cGVfYWNjZXNzX2NvbnRyb2wpOiBSZW5hbWUgZnJvbQoJaW5pdGlhbF9kZWZlcnJlZF90eXBlX2FjY2Vzc19jb250cm9sLiAgSnVzdCByZW1lbWJlciB0aGUgdmFsdWUuCgkoZGVjbF90eXBlX2FjY2Vzc19jb250cm9sKTogTmV3IGZuLgoJKGJlZ2luX2Z1bmN0aW9uX2RlZmluaXRpb24pOiBVc2UgZGVmZXJyZWRfdHlwZV9hY2Nlc3NfY29udHJvbCwgYWZ0ZXIKCXdlJ3ZlIHN0YXJ0ZWQgdGhlIGZ1bmN0aW9uLiAgU2V0IHR5cGVfbG9va3VwcyB0byBlcnJvcl9tYXJrX25vZGUuCgkqIHBhcnNlLnkgKGZyb2Jfc3BlY3MsIGZuLmRlZjEpOiBBZGp1c3QuCgkocGFyc2VfZGVjbDAsIHBhcnNlX2ZpZWxkLCBwYXJzZV9maWVsZDAsIHBhcnNlX2JpdGZpZWxkKTogTmV3IGZucy4KCShwYXJzZV9lbmRfZGVjbCwgcGFyc2VfYml0ZmllbGQwLCBwYXJzZV9tZXRob2QpOiBOZXcgZm5zLgoJKGZuLmRlZjIsIGluaXRkY2wsIGluaXRkY2wwX2lubmFyZHMsIG5vbW9kc19pbml0ZGNsMCk6IFVzZSB0aGVtLgoJKGFmdGVyX3R5cGVfY29tcG9uZW50X2RlY2xhcmF0b3IwKTogTGlrZXdpc2UuCgkoYWZ0ZXJfdHlwZV9jb21wb25lbnRfZGVjbGFyYXRvcik6IExpa2V3aXNlLgoJKG5vdHlwZV9jb21wb25lbnRfZGVjbGFyYXRvcik6IExpa2V3aXNlLgoJKiBjcC10cmVlLmg6IEFkanVzdC4KCgkqIGRlY2wuYyAocmVkZWNsYXJhdGlvbl9lcnJvcl9tZXNzYWdlKTogQWxsb3cgcmVkZWNsYXJhdGlvbiBvZgoJbmFtZXNwYWNlLXNjb3BlIGRlY2xzLgoKMjAwMC0wMi0xOCAgTWFydGluIHZvbiBMb2V3aXMgIDxsb2V3aXNAaW5mb3JtYXRpay5odS1iZXJsaW4uZGU+CgoJKiB0eXBlY2syLmMgKG15X2ZyaWVuZGx5X2Fib3J0KTogVXNlIEdDQ0JVR1VSTC4KCjIwMDAtMDItMTcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChhZGRfbWV0aG9kKTogRG9uJ3Qgc2V0IERFQ0xfVklSVFVBTF9DT05URVhULgoJKiBkZWNsMi5jIChncm9rY2xhc3Nmbik6IExpa2V3aXNlLgoKCSogaXIudGV4aTogRG9jdW1lbnQgREVDTF9URU1QTEFURV9JTlNUQU5USUFUSU9OUy4KCgkqIGRlY2wyLmMgKGxhbmdfZGVjb2RlX29wdGlvbik6IERvbid0IHNldCBkZWZhdWx0IG1lc3NhZ2UgbGVuZ3RoCgloZXJlLgoJKiBsZXguYyAobGFuZ19pbml0X29wdGlvbnMpOiBTZXQgaXQgaGVyZS4KCjIwMDAtMDItMTYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJTWFrZSBERUNMX0NPTlRFWFQgbWVhbiB0aGUgY2xhc3MgaW4gd2hpY2ggYSBtZW1iZXIgZnVuY3Rpb24gd2FzCglkZWNsYXJlZCwgZXZlbiBmb3IgYSB2aXJ0dWFsIGZ1bmN0aW9uLgoJKiBjcC10cmVlLmggKERFQ0xfQ0xBU1NfQ09OVEVYVCk6IEFkanVzdC4KCShERUNMX0ZSSUVORF9DT05URVhUKTogTmV3IG1hY3JvLgoJKERFQ0xfUkVBTF9DT05URVhUKTogUmVtb3ZlLgoJKFNFVF9ERUNMX0ZSSUVORF9DT05URVhUKTogTGlrZXdpc2UuCgkoREVDTF9WSVJUVUFMX0NPTlRFWFQpOiBBZGp1c3QuCgkoREVDTF9DTEFTU19TQ09QRV9QKTogVXNlIFRZUEVfUC4KCShhZGRfZnJpZW5kcyk6IFJlbW92ZS4KCShoYWNrX2RlY2xfZnVuY3Rpb25fY29udGV4dCk6IExpa2V3aXNlLgoJKiBjYWxsLmMgKGJ1aWxkX25ld19mdW5jdGlvbl9jYWxsKTogUmVwbGFjZSBERUNMX1JFQUxfQ09OVEVYVCB3aXRoCglDUF9ERUNMX0NPTlRFWFQuCgkoYnVpbGRfb3Zlcl9jYWxsKTogRml4IGluZGVudGF0aW9uLiAgVXNlIERFQ0xfQ09OVEVYVAoJaW5zdGVhZCBvZiBERUNMX0NMQVNTX0NPTlRFWFQuCgkqIGNsYXNzLmMgKGRmc19idWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgkoYWRkX21ldGhvZCk6IFNldCBERUNMX1ZJUlRVQUxfQ09OVEVYVCwgbm90IERFQ0xfQ0xBU1NfQ09OVEVYVC4KCShzdHJpY3RseV9vdmVycmlkZXMpOiBVc2UgREVDTF9DT05URVhULCBub3QgREVDTF9DTEFTU19DT05URVhULgoJKGJ1aWxkX3Z0Ymxfb3JfdmJhc2VfZmllbGQpOiBEb24ndCBzZXQgREVDTF9DTEFTU19DT05URVhULgoJKGJ1aWxkX2Jhc2VfZmllbGQpOiBMaWtld2lzZS4KCShmaW5pc2hfc3RydWN0XzEpOiBMaWtld2lzZS4KCShidWlsZF9zZWxmX3JlZmVyZW5jZSk6IExpa2V3aXNlLgoJKiBkZWNsLmMgKHB1c2hfY2xhc3NfYmluZGluZyk6IFVzZSBDUF9ERUNMX0NPTlRFWFQsIG5vdAoJREVDTF9SRUFMX0NPTlRFWFQuCgkocHVzaHRhZyk6IFVzZSBkZWNsX2Z1bmN0aW9uX2NvbnRleHQsIG5vdAoJaGFja19kZWNsX2Z1bmN0aW9uX2NvbnRleHQuCgkoZGVjbHNfbWF0Y2gpOiBVc2UgQ1BfREVDTF9DT05URVhULCBub3QgREVDTF9SRUFMX0NPTlRFWFQuCgkoZHVwbGljYXRlX2RlY2xzKTogVXNlIERFQ0xfVklSVFVBTF9DT05URVhULgoJKHB1c2hkZWNsKTogUmVtb3ZlIGJvZ3VzIGNvZGUuCgkoc3RhcnRfZGVjbCk6IFVzZSBERUNMX0NPTlRFWFQgcmF0aGVyIHRoYW4gREVDTF9DTEFTU19DT05URVhULgoJKGNwX2ZpbmlzaF9kZWNsKTogVXNlIENQX0RFQ0xfQ09OVEVYVCwgbm90IERFQ0xfUkVBTF9DT05URVhULgoJKGdyb2tmbmRlY2wpOiBVc2UgREVDTF9DT05URVhULCBub3QgREVDTF9DTEFTU19DT05URVhULgoJVXNlIGRlY2xfZnVuY3Rpb25fY29udGV4dCwgbm90aGFja19kZWNsX2Z1bmN0aW9uX2NvbnRleHQuCgkoZ3Jva3ZhcmRlY2wpOiBEb24ndCBzZXQgREVDTF9DTEFTU19DT05URVhULgoJKGdyb2tkZWNsYXJhdG9yKTogTGlrZXdpc2UuICBVc2UgZGVjbF9mdW5jdGlvbl9jb250ZXh0LCBub3QKCWhhY2tfZGVjbF9mdW5jdGlvbl9jb250ZXh0LgoJKGNvcHlfYXJnc19wKTogRG9jdW1lbnQuICBEb24ndCB1c2UgREVDTF9DTEFTU19DT05URVhULgoJKHN0YXJ0X2Z1bmN0aW9uKTogVXNlIERFQ0xfRlJJRU5EX0NPTlRFWFQsIG5vdAoJREVDTF9DTEFTU19DT05URVhULiAgVXNlIGRlY2xfZnVuY3Rpb25fY29udGV4dCwgbm90CgloYWNrX2RlY2xfZnVuY3Rpb25fY29udGV4dC4KCShmaW5pc2hfZnVuY3Rpb24pOiBVc2UgZGVjbF9mdW5jdGlvbl9jb250ZXh0LCBub3QKCWhhY2tfZGVjbF9mdW5jdGlvbl9jb250ZXh0LgoJKG1heWJlX3JldHJvZml0X2luX2NocmcpOiBVc2UgREVDTF9DT05URVhULCBub3QKCURFQ0xfQ0xBU1NfQ09OVEVYVC4KCShncm9rY2xhc3Nmbik6IFNldCBERUNMX1ZJUlRVQUxfQ09OVEVYVCwgbm90IERFQ0xfQ09OVEVYVC4KCShmaW5pc2hfc3RhdGljX2RhdGFfbWVtYmVyX2RlY2wpOiBEb24ndCBzZXQgREVDTF9DTEFTU19DT05URVhULgoJKGdyb2tmaWVsZCk6IExpa2V3aXNlLgoJKGZpbmlzaF9idWlsdGluX3R5cGUpOiBMaWtld2lzZS4KCShmaW5pc2hfdnRhYmxlX3ZhcmRlYyk6IFVzZSBkZWNsX2Z1bmN0aW9uX2NvbnRleHQsIG5vdAoJaGFja19kZWNsX2Z1bmN0aW9uX2NvbnRleHQuCgkoaW1wb3J0X2V4cG9ydF9kZWNsKTogVXNlIERFQ0xfQ09OVEVYVCwgbm90IERFQ0xfQ0xBU1NfQ09OVEVYVC4KCShzdGFydF9zdGF0aWNfaW5pdGlhbGl6YXRpb25fb3JfZGVzdHJ1Y3Rpb24pOiBMaWtld2lzZS4KCShmaW5pc2hfc3RhdGljX2luaXRpYWxpemF0aW9uX29yX2Rlc3RydWN0aW9uKTogTGlrZXdpc2UuCgkobWFya191c2VkKTogQWRqdXN0IGxvZ2ljIGZvciBkZWNpZGluZyB3aGVuIHRvIHN5bnRoZXNpemUgbWV0aG9kcy4KCSogZHVtcC5jIChkZXF1ZXVlX2FuZF9kdW1wKTogVXNlIENQX0RFQ0xfQ09OVEVYVCwgbm90CglERUNMX1JFQUxfQ09OVEVYVC4KCSogZXJyb3IuYyAoZHVtcF9mdW5jdGlvbl9kZWNsKTogVXNlIERFQ0xfQ09OVEVYVCwgbm90CglERUNMX0NMQVNTX0NPTlRFWFQuCgkqIGZyaWVuZC5jIChpc19mcmllbmQpOiBMaWtld2lzZS4KCShhZGRfZnJpZW5kcyk6IFJlbW92ZS4KCShkb19mcmllbmQpOiBVc2UgU0VUX0RFQ0xfRlJJRU5EX0NPTlRFWFQuCgkqIGxleC5jIChiZWdpbl9kZWZpbml0aW9uX29mX2luY2xhc3NfaW5saW5lKTogVXNlCglkZWNsX2Z1bmN0aW9uX2NvbnRleHQsIG5vdCBoYWNrX2RlY2xfZnVuY3Rpb25fY29udGV4dC4KCShwcm9jZXNzX25leHRfaW5saW5lKTogTGlrZXdpc2UuCgkoZG9faWRlbnRpZmllcik6IFVzZSBDUF9ERUNMX0NPTlRFWFQsIG5vdCBERUNMX1JFQUxfQ09OVEVYVC4KCSogbWV0aG9kLmMgKHNldF9tYW5nbGVkX25hbWVfZm9yX2RlY2wpOiBVc2UgREVDTF9DT05URVhULCBub3QKCURFQ0xfQ0xBU1NTX0NPTlRFWFQuCgkoaGFja19pZGVudGlmaWVyKTogTGlrZXdpc2UuCgkoc3ludGhlc2l6ZV9tZXRob2QpOiAgVXNlIGRlY2xfZnVuY3Rpb25fY29udGV4dCwgbm90CgloYWNrX2RlY2xfZnVuY3Rpb25fY29udGV4dC4KCSogcHQuYyAodGVtcGxhdGVfY2xhc3NfZGVwdGhfcmVhbCk6IFVzZSBDUF9ERUNMX0NPTlRFWFQsIG5vdAoJREVDTF9SRUFMX0NPTlRFWFQuCgkoaXNfbWVtYmVyX3RlbXBsYXRlKTogVXNlIGRlY2xfZnVuY3Rpb25fY29udGV4dCwgbm90CgloYWNrX2RlY2xfZnVuY3Rpb25fY29udGV4dC4gIFVzZSBERUNMX0NPTlRFWFQsIG5vdAoJREVDTF9DTEFTU19DT05URVhULgoJKGJ1aWxkX3RlbXBsYXRlX2RlY2wpOiBTZXQgREVDTF9WSVJUVUFMX0NPTlRFWFQsIG5vdAoJREVDTF9DTEFTU19DT05URVhULgoJKGNoZWNrX2RlZmF1bHRfdG1wbF9hcmdzKTogVXNlIENQX0RFQ0xfQ09OVEVYVCwgbm90CglERUNMX1JFQUxfQ09OVEVYVC4KCShwdXNoX3RlbXBsYXRlX2RlY2xfcmVhbCk6IExpa2V3aXNlLgoJKGluc3RhbnRpYXRlX2NsYXNzX3RlbXBsYXRlKTogRG9uJ3QgY2FsbCBhZGRfZnJpZW5kcy4KCSh0c3Vic3RfZGVmYXVsdF9hcmd1bWVudCk6IFVzZSBERUNMX0NPTlRFWFQsIG5vdAoJREVDTF9SRUFMX0NPTlRFWFQuCgkodHN1YnN0X2RlY2wpOiBTZXQgREVDTF9WSVJUVUFMX0NPTlRFWFQsIG5vdCBERUNMX0NMQVNTX0NPTlRFWFQuCglVc2UgREVDTF9DT05URVhULCBub3QgREVDTF9DTEFTU19DT05URVhULgoJKHNldF9tZWFuZ2xlZF9uYW1lX2Zvcl90ZW1wbGF0ZV9kZWNsKTogVXNlIERFQ0xfQ09OVEVYVCwgbm90CglERUNMX0NMQVNTX0NPTlRFWFQuCgkqIHJlcG8uYyAocmVwb19pbmxpbmVfdXNlZCk6IExpa2V3aXNlLgoJKiBzZWFyY2guYyAoY3VycmVudF9zY29wZSk6IEFkanVzdCBmb3IgbmV3IF9DT05URVhUIG1hY3Jvcy4KCShjb250ZXh0X2Zvcl9uYW1lX2xvb2t1cCk6IFVzZSBDUF9ERUNMX0NPTlRFWFQsIG5vdAoJREVDTF9SRUFMX0NPTlRFWFQuCgkoZnJpZW5kX2FjY2Vzc2libGVfcCk6IFVzZSBERUNMX0NPTlRFWFQsIG5vdCBERUNMX0NMQVNTX0NPTlRFWFQuCgkobG9va3VwX2ZuZmllbGRzX2hlcmUpOkxpa2V3aXNlLgoJKGNoZWNrX2ZpbmFsX292ZXJyaWRlcik6IExpa2V3aXNlLgoJKGluaXRfdmJhc2VfcG9pbnRlcnMpOiBMaWtld2lzZS4KCSh2aXJ0dWFsX2NvbnRleHQpOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmMgKGZpbmlzaF9tZW1iZXJfZGVjbGFyYXRpb24pOiBKdXN0IHNldCBERUNMX0NPTlRFWFQuCgkoZXhwYW5kX2JvZHkpOiBVc2UgZGVjbF9mdW5jdGlvbl9jb250ZXh0LCBub3QKCWhhY2tfZGVjbF9mdW5jdGlvbl9jb250ZXh0LgoJKiB0cmVlLmMgKGhhY2tfZGVjbF9mdW5jdGlvbl9jb250ZXh0KTogUmVtb3ZlLgoJKiB0eXBlY2suYyAoYnVpbGRfeF9mdW5jdGlvbl9jYWxsKTogVXNlIERFQ0xfQ09OVEVYVCwgbm90CglERUNMX0NMQVNTX0NPTlRFWFQuCgkqIHR5cGVjazIuYyAoZXJyb3Jfbm90X2Jhc2VfdHlwZSk6IExpa2V3aXNlLgoKMjAwMC0wMi0xNSAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBkZWNsLmMgKHhyZWZfdGFnKTogRG9uJ3QgU0VUX0lERU5USUZJRVJfTkFNRVNQQUNFX1ZBTFVFLgoKMjAwMC0wMi0xNiAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogTWFrZS1sYW5nLmluIChnKytzcGVjLm8pOiBEZXBlbmQgb24gJChHQ0NfSCksIG5vdCBnY2MuaC4KCjIwMDAtMDItMTUgIEpvbmF0aGFuIExhcm1vdXIgIDxqbGFybW91ckByZWRoYXQuY28udWs+CgoJKiBsYW5nLXNwZWNzLmg6IEFkZCBuZXcgX19HTlVDX1BBVENITEVWRUxfXyBkZWZpbmUgdG8gZGVmYXVsdCBzcGVjLgoKMjAwMC0wMS0xNiAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogZGVjbDIuYyAobGFuZ19kZWNvZGVfb3B0aW9uKTogRW5hYmxlIGF1dG9tYXRpYyBsaW5lIHdyYXBwaW5nLgoKMjAwMC0wMi0xMyAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBwYXJzZS55IChmcm9iX3NwZWNzKTogU3BsaXQgb3V0Li4uCgkocGFyc2VfZGVjbCk6IEZyb20gaGVyZS4KCShmbi5kZWYyKTogQ2FsbCBpbml0aWFsX2RlZmVycmVkX3R5cGVfYWNjZXNzX2NvbnRyb2wuCgkoYWZ0ZXJfdHlwZV9jb21wb25lbnRfZGVjbGFyYXRvcjApOiBDYWxsIGZyb2Jfc3BlY3MuCgkobm90eXBlX2NvbXBvbmVudF9kZWNsYXJhdG9yMCk6IExpa2V3aXNlLgoJKiBzZWFyY2guYyAoZnJpZW5kX2FjY2Vzc2libGVfcCk6IE5lc3RlZCBjbGFzc2VzIGFyZSBmcmllbmRzIG9mIHRoZWlyCgllbmNsb3NpbmcgY2xhc3Nlcy4KCjIwMDAtMDItMTAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpci50ZXhpIChBRERSX0VYUFIpOiBEb2N1bWVudCB0aGUgZmFjdCB0aGF0IGFuIEFERFJfRVhQUiBjYW4gYmUKCXVzZWQgdG8gY3JlYXRlIGFuIGltcGxpY2l0IHRlbXBvcmFyeS4KCgkqIGNsYXNzLmMgKGRmc19tb2RpZnlfdnRhYmxlcyk6IFR3ZWFrIGNhbGN1bGF0aW9uIG9mIGZ1bmN0aW9ucyB0bwoJb3ZlcnJpZGUuCgoyMDAwLTAyLTA4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBhY20ub3JnPgoKCSogdHlwZWNrLmMgKHN0cmlwX2FsbF9wb2ludGVyX3F1YWxzKTogVXNlIFRZUEVfTUFJTl9WQVJJQU5ULCB0bwoJc3RyaXAgYXJyYXkgZWxlbWVudCBxdWFsaWZpZXJzIHRvby4KCjIwMDAtMDItMDcgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKHN0b3JlX3Bhcm1fZGVjbHMpOiBEb24ndCBidWlsZCBjbGVhbnVwcyBmb3IgcGFyYW1ldGVycwoJd2hpbGUgcHJvY2Vzc2luZ190ZW1wbGF0ZV9kZWNsLgoKMjAwMC0wMi0wNyAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBjcC10cmVlLmggKHN0cnVjdCBzYXZlZF9zY29wZSk6IEFkZCBpbmNvbXBsZXRlIGZpZWxkLgoJKG5hbWVzcGFjZV9zY29wZV9pbmNvbXBsZXRlKTogTmV3IG1hY3JvLgoJKiBkZWNsLmMgKHB1c2hkZWNsKTogVXNlIGl0LgoJKGhhY2tfaW5jb21wbGV0ZV9zdHJ1Y3R1cmVzKTogVXNlIGl0LiAgU2VlIHRocm91Z2ggYXJ0aWZpY2lhbAoJYmluZGluZyBsZXZlbHMuCgkobWFya19zYXZlZF9zY29wZSk6IE1hcmsgaXQuCgoJSW1wbGVtZW50IGFjY2VzcyBjb250cm9sIGZvciBuZXN0ZWQgdHlwZXMuCgkqIHNlYXJjaC5jICh0eXBlX2FjY2Vzc19jb250cm9sKTogTmV3IGZuLgoJKGFjY2Vzc2libGVfcCk6IE5vdyB3ZSBkbyBwZXJmb3JtIGFjY2VzcyBjb250cm9sIGZvciB0eXBlcy4KCSogc2VtYW50aWNzLmMgKGRlZmVycmVkX3R5cGVfYWNjZXNzX2NvbnRyb2wpOiBOZXcgZm4uCgkoaW5pdGlhbF9kZWZlcnJlZF90eXBlX2FjY2Vzc19jb250cm9sKTogTmV3IGZuLgoJKGJlZ2luX2Z1bmN0aW9uX2RlZmluaXRpb24pOiBDYWxsIGl0LiAgQWRkIGxvb2t1cHMgcGFybS4KCSogZGVjbC5jIChzdHJ1Y3QgYmluZGluZ19sZXZlbCk6IEFkZCB0aGlzX2NsYXNzIGZpZWxkLgoJKHB1c2hsZXZlbF9jbGFzcyk6IFNldCBpdC4KCShtYXJrX2JpbmRpbmdfbGV2ZWwpOiBNYXJrIGl0LgoJKGxvb2t1cF9uYW1lX3JlYWwpOiBVc2UgaXQuICBDYWxsIHR5cGVfYWNjZXNzX2NvbnRyb2wuCgkobWFya19zYXZlZF9zY29wZSk6IE1hcmsgbG9va3VwcyBmaWVsZC4KCSogY3AtdHJlZS5oIChmbGFnZ2VkX3R5cGVfdHJlZSk6IEFkZCBsb29rdXBzIGZpZWxkLgoJKHN0cnVjdCBzYXZlZF9zY29wZSk6IEFkZCBsb29rdXBzIGZpZWxkLgoJKHR5cGVfbG9va3Vwcyk6IE5ldyBtYWNyby4KCSogcGFyc2UueSAoZGVjbG1vZHMpOiBOb3cgPGZ0eXBlPi4KCShwYXJzZV9kZWNsKTogQWRkIGxvb2t1cHMgcGFybS4gIENhbGwKCWluaXRpYWxfZGVmZXJyZWRfdHlwZV9hY2Nlc3NfY29udHJvbC4KCShsYW5nX2V4dGRlZik6IENsZWFyIHR5cGVfbG9va3Vwcy4KCSh0eXBlZF9kZWNsc3BlY3MsIGRlY2xtb2RzLCB0eXBlc3BlYyk6IFNldCBsb29rdXBzIGZpZWxkLgoJKGluaXRkY2wpOiBDYWxsIGRlZmVycmVkX3R5cGVfYWNjZXNzX2NvbnRyb2wuCgkoZm4uZGVmMSwgZm4uZGVmMiwgdHlwZWRfZGVjbHNwZWNzMSwgaW5pdGRjbDBfaW5uYXJkcywgbm9tb2RzX2luaXRkY2wwLAoJY29tcG9uZW50X2RlY2xfMSwgbmFtZWRfcGFybSk6IEFkanVzdC4KCSogZnJpZW5kLmMgKGlzX2ZyaWVuZCk6IE5lc3RlZCBjbGFzc2VzIGFyZSBmcmllbmRzIG9mIHRoZWlyCgllbmNsb3NpbmcgY2xhc3Nlcy4KCgkqIGNsYXNzLmMgKGN1cnJlbnRseV9vcGVuX2Rlcml2ZWRfY2xhc3MpOiBOZXcgZm4uCgkqIG1ldGhvZC5jIChoYWNrX2lkZW50aWZpZXIpOiBVc2UgaXQuCgoJKiBsZXguYyAoZG9faWRlbnRpZmllcik6IFJlbW92ZSBvYnNvbGV0ZSBjb2RlLgoKCSogcGFyc2UueSAodHlwZWRfdHlwZXNwZWNzKTogUHJvcGFnYXRlIG5ld190eXBlX2ZsYWcgcHJvcGVybHkuCgoyMDAwLTAyLTA1ICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuY3VtYi5vcmc+CgoJKiB0aW5mby5oOiBSZW1vdmUgYXBvc3Ryb3BoZXMgZnJvbSBDKysgY29tbWVudCAoeGdldHRleHQKCXRoaW5rcyB0aGlzIGZpbGUgaXMgcGxhaW4gQykuCgoyMDAwLTAyLTA1ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBNYWtlZmlsZS5pbiAoY2FsbC5vKTogRGVwZW5kIG9uICQoRVhQUl9IKS4KCgkqIGNhbGwuYzogSW5jbHVkZSAiZXhwci5oIi4KCgkqIGNsYXNzLmMgKGR1bXBfY2xhc3NfaGllcmFyY2h5KTogQWRkIHByb3RvdHlwZS4KCgkqIHNlYXJjaC5jIChkZnNfZ2V0X3B1cmVfdmlydHVhbHMpOiBMaWtld2lzZS4KCjIwMDAtMDItMSAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQHJlZGhhdC5jb20+CgoJKiBwYXJzZS55IChzaW1wbGVfc3RtdCk6IEFsbG93IDo6IHRva2VuIGluIGFzbSBwYXJhbWV0ZXIgbGlzdC4KCSogcGFyc2UuYzogUmVidWlsdC4KCjIwMDAtMDEtMzEgIEppbSBXaWxzb24gIDx3aWxzb25AY3lnbnVzLmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0Ymxfb3JfdmJhc2VfZmllbGQpOiBOZXcgcGFyYW1ldGVyIGZjb250ZXh0LgoJU3RvcmUgaXQgaW4gREVDTF9GQ09OVEVYVC4KCShidWlsZF92YmFzZV9wb2ludGVyX2ZpZWxkcywgY3JlYXRlX3Z0YWJsZV9wdHIpOiBGaXggY2FsbGVycy4KCjIwMDAtMDEtMzEgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogdGluZm8uaCAob2xkIGFiaSk6ICNpbmNsdWRlICJ0Y29uZmlnLmgiLgoJKiB0aW5mby5jYyAoY29udmVydF90b19iYXNlKTogTW92ZSBpbnRvIG9sZCBhYmkgc2VjdGlvbi4KCjIwMDAtMDEtMzEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKEJJTkZPX1ZJUlRVQUxTKTogVHdlYWsgZG9jdW1lbnRhdGlvbi4KCShDTEFTU1RZUEVfUFJJTUFSWV9CSU5GTyk6IFVzZSBCSU5GT19QUklNQVJZX0JJTkZPLgoJKEJJTkZPX1BSSU1BUllfQklORk8pOiBOZXcgbWFjcm8uCgkoQkZfREVMVEEpOiBSZW5hbWUgdG8gLi4uCgkoQlZfREVMVEEpOiAuLi4gdGhpcy4KCShCRl9WQ0FMTF9JTkRFWCk6IFJlbmFtZSB0byAuLi4KCShCVl9WQ0FMTF9JTkRFWCk6IC4uLiB0aGlzLgoJKEJGX0ZOKTogUmVuYW1lIHRvIC4uLgoJKEJWX0ZOKTogLi4uIHRoaXMuCgkqIGNsYXNzLmMgKGJ1aWxkX3ZiYXNlX3BhdGgpOiBBZGp1c3QgZm9yIGNoYW5nZXMgdG8gcmV2ZXJzZV9wYXRoLgoJKHNldF9ydHRpX2VudHJ5KTogUmVuYW1lIEJGXyBtYWNyb3MgdG8gQlZfIHZhcmlhbnRzLgoJKG1vZGlmeV92dGFibGVfZW50cnkpOiBTaW1wbGlmeS4KCShhZGRfdmlydHVhbF9mdW5jdGlvbik6IFJlbmFtZSBCRl8gbWFjcm9zIHRvIEJWXyB2YXJpYW50cy4KCShidWlsZF92dGFibGVfaW5pdGlhbGl6ZXIpOiBMaWtld2lzZS4KCShnZXRfY2xhc3Nfb2Zmc2V0XzEpOiBSZW1vdmUuCgkoZGZzX2dldF9jbGFzc19vZmZzZXQpOiBMaWtld2lzZS4KCShnZXRfY2xhc3Nfb2Zmc2V0KTogTGlrZXdpc2UuCgkoZGZzX2ZpbmRfZmluYWxfb3ZlcnJpZGVyKTogTmV3IGZ1bmN0aW9uLgoJKGZpbmRfZmluYWxfb3ZlcnJpZGVyKTogTGlrZXdpc2UuCgkobW9kaWZ5X29uZV92dGFibGUpOiBSZW1vdmUuCgkoZGZzX2ZpbmRfYmFzZSk6IE5ldyBmdW5jdGlvbi4KCShkZnNfbW9kaWZ5X3Z0YWJsZXMpOiBGb2xkIG1vZGlmeV9vbmVfdnRhYmxlIGluIGhlcmUuICBVc2UKCWZpbmRfZmluYWxfb3ZlcnJpZGVyLgoJKG1vZGlmeV9hbGxfdnRhYmxlcyk6IEFkanVzdC4gIFNldCBCVl9WQ0FMTF9JTkRFWCBvbiBuZXcKCXZpcnR1YWxzLgoJKGRmc19maXh1cF92dGFibGVfZGVsdGFzKTogUmVtb3ZlLgoJKG92ZXJyaWRlX29uZV92dGFibGUpOiBSZW1vdmUuCgkobWVyZ2Vfb3ZlcnJpZGVzKTogTGlrZXdpc2UuCgkobGF5b3V0X3ZpcnR1YWxfYmFzZXMpOiBNYWtlIHN1cmUgQklORk9fT0ZGU0VUIGlzIHNldCByaWdodCBmb3IKCXVucmVhbCBjaGlscmVuIG9mIHZpcnR1YWwgYmFzZXMuCgkoZmluaXNoX3N0cnVjdF8xKTogRG9uJ3QgdXNlIG1lcmdlX292ZXJyaWRlcy4gIERvbid0IHVzZQoJZGZzX2ZpeHVwX3Z0YWJsZV9kZWx0YXMuCgkqIHRyZWUuYyAocmV2ZXJzZV9wYXRoKTogUmV0dXJuIGEgVFJFRV9MSVNULCBub3QgYSBjaGFpbiBvZgoJQklORk9zLgoKMjAwMC0wMS0zMSAgSGVybWFuIEEuSi4gdGVuIEJydWdnZSA8SGFqLlRlbi5CcnVnZ2VAbmV0LkhDQy5ubD4KCSAgICBKYXNvbiBNZXJyaWxsICA8amFzb25AeW9yaWNrLmN5Z251cy5jb20+CgoJKiB0aW5mby5oOiBSZW5hbWUgVVNJdHlwZSB0byBteWludDMyLCBkZXBlbmQgb24gQklUU19QRVJfVU5JVC4KCjIwMDAtMDEtMzEgIEFsZnJlZCBNaW5hcmlrIDxhODYwMTI0OEB1bmV0LnVuaXZpZS5hYy5hdD4KCgkqIGV4Y2VwdGlvbi5jYyAoX190aHJvd19iYWRfdHlwZWlkKTogQWRkIG1pc3Npbmcgc3RkOjouCgoyMDAwLTAxLTMxICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBjcC10cmVlLmggKG1ha2VfdGh1bmspOiBQUk9UTyAtPiBQQVJBTVMuCgoyMDAwLTAxLTMxICBOYXRoYW4gU2lkd2VsbCAgPHNpZHdlbGxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAobmV3X2FiaV9ydHRpX3ApOiBVc2UgZmxhZ19uZXdfYWJpLgoKCVJ1bnRpbWUgc3VwcG9ydCBmb3IgbmV3LWFiaSBydHRpLgoJKiBpbmMvdHlwZWluZm8gKHR5cGVfaW5mbzo6b3BlcmF0b3IhPSk6IERlZmluZSBpbiBjbGFzcy4KCSh0eXBlX2luZm86OmJlZm9yZSwgdHlwZV9pbmZvOjpuYW1lLCB0eXBlX2luZm86Om9wZXJhdG9yPT0sCgl0eXBlX2luZm86Om9wZXJhdG9yIT0pOiBEZWZpbmUgbmV3IEFCSSBpbXBsZW1lbnRhdGlvbnMuCgkodHlwZV9pbmZvOjppc19wb2ludGVyX3AsIHR5cGVfaW5mbzo6aXNfZnVuY3Rpb25fcCk6IERlY2xhcmUKCW5ldyB2aXJ0dWFsIGZ1bmN0aW9ucy4KCSh0eXBlX2luZm86OmRvX2NhdGNoLCB0eXBlX2luZm86OmRvX3VwY2FzdCk6IExpa2V3aXNlLgoKCSogdGluZm8uaCAoX19iYXNlX2NsYXNzX2luZm8pOiBEZWZpbmUgbmV3IGNsYXNzLgoJKF9fY2xhc3NfdHlwZV9pbmZvKTogTGlrZXdpc2UuCgkoX19zaV9jbGFzc190eXBlX2luZm8pOiBMaWtld2lzZS4KCShfX3ZtaV9jbGFzc190eXBlX2luZm8pOiBMaWtld2lzZS4KCShfX2R5bmFtaWNfY2FzdCk6IFByb3RvdHlwZS4KCgkqIHRpbmZvLmNjOiBDb25kaXRpb25hbGl6ZSBvbGQgYW5kIG5ldyBydHRpIG1lY2hhbmlzbXMuCgkodHlwZV9pbmZvOjppc19wb2ludGVyX3ApOiBEZWZpbmUgbmV3IGZ1bmN0aW9uLgoJKHR5cGVfaW5mbzo6aXNfZnVuY3Rpb25fcCk6IExpa2V3aXNlLgoJKHR5cGVfaW5mbzo6ZG9fY2F0Y2gpOiBMaWtld2lzZS4KCSh0eXBlX2luZm86OmRvX3VwY2FzdCk6IExpa2V3aXNlLgoJKHZ0YWJsZV9wcmVmaXgpOiBOZXcgc3RydWN0dXJlIGZvciB2dGFibGUgYWNjZXNzLgoJKGFkanVzdF9wb2ludGVyKTogRGVmaW5lIG5ldyB0ZW1wbGF0ZSBmdW5jdGlvbi4KCShjb250YWluZWRfcCwgcHVibGljX3AsIHZpcnR1YWxfcCwgY29udGFpbmVkX3B1YmxpY19wLAoJY29udGFpbmVkX25vbnB1YmxpY19wLCBjb250YWluZWRfbm9udmlydHVhbF9wKTogRGVmaW5lIG5ldwoJZnVuY3Rpb25zLgoJKG5vbnZpcnR1YWxfYmFzZV90eXBlKTogTmV3IGxvY2FsIHZhcmlhYmxlLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjp+X19jbGFzc190eXBlX2luZm8pOiBEZWZpbmUuCgkoX19zaV9jbGFzc190eXBlX2luZm86On5fX3NpX2NsYXNzX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6fl9fdm1pX2NsYXNzX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpkb19jYXRjaCk6IERlZmluZSBuZXcgZnVuY3Rpb24uCgkoX19jbGFzc190eXBlX2luZm86OmRvX3VwY2FzdCk6IExpa2V3aXNlLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpmaW5kX3B1YmxpY19zcmMpOiBMaWtld2lzZS4KCShfX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZmluZF9wdWJsaWNfc3JjKTogTGlrZXdpc2UuCgkoX19zaV9jbGFzc190eXBlX2luZm86OmRvX2ZpbmRfcHVibGljX3NyYyk6IExpa2V3aXNlLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZmluZF9wdWJsaWNfc3JjKTogTGlrZXdpc2UuCgkoX19jbGFzc190eXBlX2luZm86OmRvX2R5bmNhc3QpOiBMaWtld2lzZS4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCk6IExpa2V3aXNlLgoJKF9fdm1pX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCk6IExpa2V3aXNlLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpkb191cGNhc3QpOiBMaWtld2lzZS4KCShfX3NpX2NsYXNzX3R5cGVfaW5mbzo6ZG9fdXBjYXN0KTogTGlrZXdpc2UuCgkoX192bWlfY2xhc3NfdHlwZV9pbmZvOjpkb191cGNhc3QpOiBMaWtld2lzZS4KCShfX2R5bmFtaWNfY2FzdCk6IExpa2V3aXNlLgoKCSogdGluZm8yLmNjIChfX2Z1bmRhbWVudGFsX3R5cGVfaW5mbyk6IERlZmluZSBuZXcgY2xhc3MuCgkoX19wb2ludGVyX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fcmVmZXJlbmNlX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fYXJyYXlfdHlwZV9pbmZvKTogTGlrZXdpc2UuCgkoX19mdW5jdGlvbl90eXBlX2luZm8pOiBMaWtld2lzZS4KCShfX2VudW1fdHlwZV9pbmZvKTogTGlrZXdpc2UuCgkoX19wdHJfdG9fbWVtYmVyX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fZnVuZGFtZW50YWxfdHlwZV9pbmZvOjp+X19mdW5kYW1lbnRhbF90eXBlX2luZm8pOiBEZWZpbmUuCgkoX19wb2ludGVyX3R5cGVfaW5mbzo6fl9fcG9pbnRlcl90eXBlX2luZm8pOiBMaWtld2lzZS4KCShfX3JlZmVyZW5jZV90eXBlX2luZm86On5fX3JlZmVyZW5jZV90eXBlX2luZm8pOiBMaWtld2lzZS4KCShfX2FycmF5X3R5cGVfaW5mbzo6fl9fYXJyYXlfdHlwZV9pbmZvKTogTGlrZXdpc2UuCgkoX19mdW5jdGlvbl90eXBlX2luZm86On5fX2Z1bmN0aW9uX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKF9fZW51bV90eXBlX2luZm86On5fX2VudW1fdHlwZV9pbmZvKTogTGlrZXdpc2UuCgkoX19wdHJfdG9fbWVtYmVyX3R5cGVfaW5mbzo6fl9fcHRyX3RvX21lbWJlcl90eXBlX2luZm8pOiBMaWtld2lzZS4KCShfX3BvaW50ZXJfdHlwZV9pbmZvOjpkb19jYXRjaCk6IERlZmluZSBuZXcgZnVuY3Rpb24uCgkoX19wdHJfdG9fbWVtYmVyX3R5cGVfaW5mbzo6ZG9fY2F0Y2gpOiBEZWZpbmUgbmV3IGZ1bmN0aW9uLgoKCShfX3Rocm93X3R5cGVfbWF0Y2hfcnR0aV8yKTogVXNlIG5ldyBBQkkgaW50ZXJmYWNlLCBpZiBlbmFibGVkLgoJKF9faXNfcG9pbnRlcik6IExpa2V3aXNlLgoKCSogZXhjZXB0aW9uLmNjIChfX2NwbHVzX3R5cGVfbWF0Y2hlcik6IERlYWwgd2l0aCBuZXctYWJpIHJ0dGkuCgoyMDAwLTAxLTMwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AvY2xhc3MuYyAoYnVpbGRfdnRhYmxlKTogUmVuYW1lIHRvIGJ1aWxkX3ByaW1hcnlfdnRhYmxlLgoJKHByZXBhcmVfZnJlc2hfdnRhYmxlKTogUmVuYW1lIHRvIGJ1aWxkX3NlY29uZGFyeV92dGFibGUuCgkobWFrZV9uZXdfdnRhYmxlKTogTmV3IGZ1bmN0aW9uLgoJKG1vZGlmeV92dGFibGVfZW50cnkpOiBIYW5kbGUgZ2VuZXJhdGlvbiBvZiBuZXcgdnRhYmxlcyBjb3JyZWN0bHkuCgkobW9kaWZ5X29uZV92dGFibGUpOiBSZW1vdmUgdW51c2VkIHBhcmFtZXRlci4KCShkZnNfZml4dXBfdnRhYmxlX2RlbHRhcyk6IExpa2V3aXNlLgoJKG92ZXJyaWRlX29uZV92dGFibGUpOiBVc2UgYnVpbGRfc2Vjb25kYXJ5X3Z0YWJsZS4KCShmaW5pc2hfc3RydWN0XzEpOiBVc2UgYnVpbGRfcHJpbWFyeV92dGFibGUgYW5kCglidWlsZF9zZWNvbmRhcnlfdnRhYmxlLgoKMjAwMC0wMS0yOCAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQHJlZGhhdC5jb20+CgoJKiBjcC9kZWNsLmM6IEFkanVzdCB2YXJpYWJsZSBuYW1lcywgY29tbWVudHMsIGhlbHAgc3RyaW5ncy4KCjIwMDAtMDEtMjkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGFjbS5vcmc+CgoJKiBuZXcyLmNjIChvcGVyYXRvciBkZWxldGVbXSk6IFVzZSBvcGVyYXRvciBkZWxldGUsIGRvbid0IGFzc3VtZQoJaW1wbGVtZW50YXRpb24uCgoyMDAwLTAxLTI5ICBOYXRoYW4gU2lkd2VsbCAgPHNpZHdlbGxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGJ1aWxkX3Z0YmxfaW5pdGlhbGl6ZXIpOiBBZGQgYXJndW1lbnQgdG8KCWJ1aWxkX3Z0YWJsZV9lbnRyeSBjYWxsLgoKMjAwMC0wMS0yNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuZGVmIChUSFVOS19ERUNMKTogRGlzY3VzcyB2Y2FsbCBpbmRpY2VzLgoJKiBjcC10cmVlLmggKEJJTkZPX1ZJUlRVQUxTKTogVXBkYXRlIGRvY3VtZW50YXRpb24uCgkoQkZfREVMVEEpOiBOZXcgbWFjcm8uCgkoQkZfVkNBTExfSU5ERVgpOiBMaWtld2lzZS4KCShCRl9GTik6IExpa2V3aXNlLgoJKFRIVU5LX1ZDQUxMX09GRlNFVCk6IExpa2V3aXNlLgoJKG1ha2VfdGh1bmspOiBDaGFuZ2UgcHJvdG90eXBlLgoJKiBjbGFzcy5jIChidWlsZF92dGFibGVfZW50cnkpOiBJbnRlZ3JhdGUKCWJ1aWxkX3Z0YWJsZV9lbnRyeV9mb3JfZm4uICBIYW5kbGUgdmNhbGwgaW5kaWNlcy4KCShidWlsZF92dGFibGVfZW50cnlfZm9yX2ZuKTogUmVtb3ZlLgoJKHNldF9ydHRpX2VudHJ5KTogSGFuZGxlIHZjYWxsIGluZGljZXMuICBVc2UgQkZfREVMVEEsCglCRl9WQ0FMTF9JTkRFWCwgQkZfRk4uCgkobW9kaWZ5X3Z0YWJsZV9lbnRyeSk6IEludGVncmF0ZSBjb21tb24gY29kZSBmcm9tCgltb2RpZnlfb25lX3Z0YWJsZSBhbmQgZGZzX2ZpeHVwX3Z0YWJsZV9kZWx0YXMuCgkoYWRkX3ZpcnR1YWxfZnVuY3Rpb24pOiBTZXQgQkZfVkNBTExfSU5ERVguCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IFNpbXBsaWZ5LiAgVXNlIEJGX0RFTFRBLCBCRl9WQ0FMTF9JTkRFWCwKCWFuZCBCRl9GTi4KCShtb2RpZnlfb25lX3Z0YWJsZSk6IFNpbXBsaWZ5LgoJKGRmc19maXh1cF92dGFibGVfZGVsdGFzKTogTGlrZXdpc2UuCgkob3ZlcnJpZGVfb25lX3Z0YWJsZSk6IFVzZSBCRl9ERUxUQSwgQkZfVkNBTExfSU5ERVgsIEJGX0ZOLgoJKiBtZXRob2QuYyAobWFrZV90aHVuayk6IEhhbmRsZSB2Y2FsbCBpbmRpY2VzLgoKMjAwMC0wMS0yOCAgTmF0aGFuIFNpZHdlbGwgIDxzaWR3ZWxsQGNvZGVzb3VyY2VyeS5jb20+CgoJQ29tcGlsZXIgc2lkZSBuZXcgYWJpIHJ0dGkgKG5vdCBlbmFibGVkKS4KCSogY3AtdHJlZS5oIChuZXdfYWJpX3J0dGlfcCk6IE5ldyBtYWNyby4KCShlbWl0X3N1cHBvcnRfdGluZm9zKTogUHJvdG90eXBlIG5ldyBmdW5jdGlvbi4KCSh0aW5mb19kZWNsX3ApOiBMaWtld2lzZS4KCShlbWl0X3RpbmZvX2RlY2wpOiBMaWt3aXNlLgoJKiBydHRpLmMgKFRJTkZPX1BTRVVET19UWVBFLCBUSU5GT19WVEFCTEVfREVDTCk6IE5ldyBhY2Nlc3NvcgoJbWFjcm9zLgoJKGRvaW5nX3J1bnRpbWUpOiBOZXcgbG9jYWwgc3RhdGljLgoJKGluaXRfcnR0aV9wcm9jZXNzaW5nKTogQWRkIG5ldy1hYmkgaW5pdGlhbGl6ZXIuCgkoZ2V0X3RpbmZvX2RlY2wpOiBBZGQgbmV3LWFiaSBsb2dpYy4KCSh0aW5mb19mcm9tX2RlY2wpOiBMaWtld2lzZS4KCShidWlsZF9keW5hbWljX2Nhc3RfMSk6IExpa2V3aXNlLgoJKHF1YWxpZmllcl9mbGFncyk6IE5ldyBzdGF0aWMgZnVuY3Rpb24uCgkodGluZm9fYmFzZV9pbml0KTogTGlrZXdpc2UuCgkoZ2VuZXJpY19pbml0aWFsaXplcik6IExpa2V3aXNlLgoJKHB0cl9yZWZfaW5pdGlhbGl6ZXIpOiBMaWtld2lzZS4KCShwdG1kX2luaXRpYWxpemVyKTogTGlrZXdpc2UuCgkoY2xhc3NfaGludF9mbGFncyk6IExpa2V3aXNlLgoJKGNsYXNzX2luaXRpYWxpemVyKTogTGlrZXdpc2UuCgkoc3ludGhlc2l6ZV90aW5mb192YXIpOiBMaWtld2lzZS4KCShjcmVhdGVfcmVhbF90aW5mb192YXIpOiBMaWtld2lzZS4KCShjcmVhdGVfcHNldWRvX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKGdldF92bWlfcHNldWRvX3R5cGVfaW5mbyk6IExpa2V3aXNlLgoJKGNyZWF0ZV90aW5mb190eXBlcyk6IExpa2V3aXNlLgoJKGVtaXRfc3VwcG9ydF90aW5mb3MpOiBOZXcgZ2xvYmFsIGZ1bmN0aW9uLgoJKHRpbmZvX2RlY2xfcCk6IE5ldyBnbG9iYWwgcHJlZGljYXRlLgoJKGVtaXRfdGluZm9fZGVjbCk6IE5ldyBnbG9iYWwgZnVuY3Rpb24uCgkqIGNsYXNzLmMgKHNldF9ydHRpX2VudHJ5KTogR2VuZXJhbGl6ZSBmb3Igb2xkIGFuZCBuZXcgcnR0aS4KCShidWlsZF92dGJsX2luaXRpYWxpemVyKTogTGlrZXdpc2UuCgkqIGRlY2wyLmMgKGZpbmlzaF9maWxlKTogTGlrZXdpc2UuCgoyMDAwLTAxLTI3ICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBvcHRpbWl6ZS5jIChyZW1hcF9kZWNsKTogQWRkIHdhbGtfdHJlZSBjYWxscyBmb3IgREVDTF9TSVpFICh0KQoJYW5kIFRZUEVfTUFYX1ZBTFVFIChUWVBFX0RPTUFJTiAoVFJFRV9UWVBFICh0KSkpLgoKMjAwMC0wMS0yNyAgTWlrZSBTdHVtcCAgPG1yc0B3cnMuY29tPgoKCSogZGVjbC5jIChwdXNoZGVjbCk6IEZpeCB1cCBzaGFkb3cgd2FybmluZ3Mgd2l0aCByZXNwZWN0IHRvIGltcGxpY2l0Cglmb3Igc2NvcGVzLgoKMjAwMC0wMS0yNiAgSmFzb24gTWVycmlsbCAgPGphc29uQGNhc2V5LmN5Z251cy5jb20+CgoJKiBwdC5jICh1bmlmeSk6IFVzZSBmb2xkLCBub3QgbWF5YmVfZm9sZF9ub250eXBlX2FyZy4KCjIwMDAtMDEtMjYgIEoib3JuIFJlbm5lY2tlIDxhbXlsYWFyQGN5Z251cy5jby51az4KCgkqIG9wdGltaXplLmMgKGNhbGxzX3NldGptcF9yKTogU3VwcGx5IG5ldyBhcmd1bWVudAoJdG8gc3BlY2lhbF9mdW5jdGlvbl9wLgoKMjAwMC0wMS0yNiAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogY2FsbC5jOiBQUk9UTyAtPiBQQVJBTVMuCgkqIGNsYXNzLmM6IExpa2V3aXNlLgoJKiBjcC10cmVlLmg6IExpa2V3aXNlLgoJKiBjdnQuYzogTGlrZXdpc2UuCgkqIGRlY2wuYzogTGlrZXdpc2UuCgkqIGRlY2wuaDogTGlrZXdpc2UuCgkqIGRlY2wyLmM6IExpa2V3aXNlLgoJKiBkdW1wLmM6IExpa2V3aXNlLgoJKiBlcnJmbi5jOiBMaWtld2lzZS4KCSogZXJyb3IuYzogTGlrZXdpc2UuCgkqIGV4Y2VwdC5jOiBMaWtld2lzZS4KCSogZXhwci5jOiBMaWtld2lzZS4KCSogaW5pdC5jOiBMaWtld2lzZS4KCSogaW5wdXQuYzogTGlrZXdpc2UuCgkqIGxleC5jOiBMaWtld2lzZS4KCSogbGV4Lmg6IExpa2V3aXNlLgoJKiBtZXRob2QuYzogTGlrZXdpc2UuCgkqIG9wdGltaXplLmM6IExpa2V3aXNlLgoJKiBwYXJzZS55OiBMaWtld2lzZS4KCSogcHQuYzogTGlrZXdpc2UuCgkqIHJlcG8uYzogTGlrZXdpc2UuCgkqIHJ0dGkuYzogTGlrZXdpc2UuCgkqIHNlYXJjaC5jOiBMaWtld2lzZS4KCSogc2VtYW50aWNzLmM6IExpa2V3aXNlLgoJKiBzcGV3LmM6IExpa2V3aXNlLgoJKiB0cmVlLmM6IExpa2V3aXNlLgoJKiB0eXBlY2suYzogTGlrZXdpc2UuCgkqIHR5cGVjazIuYzogTGlrZXdpc2UuCgkqIHhyZWYuYzogTGlrZXdpc2UuCgoyMDAwLTAxLTI1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogdHlwZWNrLmMgKGJ1aWxkX2JpbmFyeV9vcF9ub2RlZmF1bHQpOiBSZW1vdmUgVU5ORV9FWFBSLgoKMjAwMC0wMS0yNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAodmNhbGxfb2Zmc2V0X2luX3Z0YWJsZV9wKTogTmV3IG1hY3JvLgoJKiBjbGFzcy5jIChidWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogRml4IHR5cG8gaW4gY29tbW1lbnQuCgkoc3RydWN0IHZjYWxsX29mZnNldF9kYXRhX3MpOiBOZXcgdHlwZS4KCShkZnNfdmNhbGxfb2Zmc2V0X3F1ZXVlX3ApOiBOZXcgZnVuY3Rpb24uCgkoZGZzX2J1aWxkX3ZjYWxsX29mZnNldF92dGJsX2VudHJpZXMpOiBMaWtld2lzZS4KCShidWlsZF92Y2FsbF9vZmZzZXRfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgkobGF5b3V0X3Z0YWJsZV9kZWNsKTogTGlrZXdpc2UuCgkobnVtX3ZmdW5fZW50cmllcyk6IExpa2V3aXNlLgoJKG51bV9leHRyYV92dGJsX2VudHJpZXMpOiBBZGQgdGhlIGVudHJpZXMgZm9yIHZjYWxsIG9mZnNldHMuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IExpa2V3aXNlLgoJKGRmc19maW5pc2hfdnRhYmxzKTogVXNlIGxheW91dF92dGFibGVfZGVjbC4KCShtb2RpZnlfb25lX3Z0YWJsZXMpOiBBbHdheXMgZHVwbGljYXRlIHZ0YWJsZXMgdW5kZXIgdGhlIG5ldyBBQkkuCgkoZmluaXNoX3N0cnVjdF8xKTogVXNlIGxheW91dF92dGFibGVfZGVjbC4KCjIwMDAtMDEtMjUgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGRlY2wuYyAobWVtYmVyX2Z1bmN0aW9uX29yX2Vsc2UpOiBDaGFuZ2UgdGhpcmQgYXJnIGZyb20gYSBmb3JtYXQKCXNwZWNpZmllciB0byBhbiBgZW51bSBvdmVybG9hZF9mbGFncycuICBDYWxsZXJzIGNoYW5nZWQuCgoyMDAwLTAxLTI1ICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0eXBlY2suYyAoY29tcG9zaXRlX3BvaW50ZXJfdHlwZSwgY19zaXplb2YsIGV4cHJfc2l6ZW9mLAoJYnVpbGRfYmluYXJ5X29wX25vZGVmYXVsdCwgYnVpbGRfdW5hcnlfb3AsIGJ1aWxkX3JlaW50ZXJwcmV0X2Nhc3QsCglidWlsZF9jb25zdF9jYXN0LCBnZXRfZGVsdGFfZGlmZmVyZW5jZSwgY2hlY2tfcmV0dXJuX2V4cHIpOiBBdm9pZAoJQU5TSSBzdHJpbmcgY29uY2F0ZW5hdGlvbiB1c2FnZS4KCjIwMDAtMDEtMjQgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChsYXlvdXRfY2xhc3NfdHlwZSk6IFB1dCB0aGUgZmllbGRzIHJlcXVpcmVkIHRvIG1ha2UgYQoJY2xhc3Mgbm9uLWVtcHR5IGF0IHRoZSBlbmQsIG5vdCB0aGUgYmVnaW5uaW5nLCBvZiB0aGUgVFlQRV9GSUVMRHMKCWxpc3QuCgoyMDAwLTAxLTI0ICBKYXNvbiBNZXJyaWxsICA8amFzb25AY2FzZXkuY3lnbnVzLmNvbT4KCgkqIHB0LmMgKG1heWJlX2ZvbGRfbm9udHlwZV9hcmcpOiBEbyBub3RoaW5nIGlmIHdlJ3JlIG5vdCBpbiBhCgl0ZW1wbGF0ZS4KCgkqIGRlY2wyLmMgKG1hcmtfdXNlZCk6IERvIGluc3RhbnRpYXRlIGlubGluZXMgdGhhdCBoYXZlIGJlZW4KCWV4cGxpY2l0bHkgaW5zdGFudGlhdGVkLgoKMjAwMC0wMS0yNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAY3lnbnVzLmNvbT4KCgkqIGNhbGwuYyAoYnVpbGRfb3Zlcl9jYWxsKTogVXNlIGV4cGFuZF90cmVlX2J1aWx0aW4uCgkqIHR5cGVjay5jIChidWlsZF9mdW5jdGlvbl9jYWxsX3JlYWwpOiBMaWtld2lzZS4KCShidWlsZF9iaW5hcnlfb3Bfbm9kZWZhdWx0KTogSGFuZGxlIHVub3JkZXJlZCBjb21wYXJlcy4KCjIwMDAtMDEtMjQgIE5hdGhhbiBTaWR3ZWxsICA8c2lkd2VsbEBjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChDUFRJX0JBRF9DQVNULCBDUFRJX0JBRF9UWVBFSUQsIENQVElfRENBU1QpOiBOZXcKCWNwX3RyZWVfaW5kZXggdmFsdWVzLgoJKHRocm93X2JhZF9jYXN0X25vZGUsIHRocm93X2JhZF90eXBlaWRfbm9kZSwgZHluYW1pY19jYXN0X25vZGUpOgoJTmV3IGdsb2JhbCBub2RlICNkZWZpbmVzIGZvciB0aGVtLgoJKiBydHRpLmMgKGNhbGxfdm9pZF9mbik6IFJlcGxhY2Ugd2l0aCAuLi4KCShidWlsZF9ydW50aW1lX2RlY2wpOiAuLi4gbmV3IHN0YXRpYyBmdW5jdGlvbi4KCSh0aHJvd19iYWRfY2FzdCk6IFVzZSB0aHJvd19iYWRfY2FzdF9ub2RlIGFuZCBidWlsZF9ydW50aW1lX2RlY2wuCgkodGhyb3dfYmFkX3R5cGVpZCk6IFVzZSB0aHJvd19iYWRfdHlwZWlkX25vZGUgYW5kIGJ1aWxkX3J1bnRpbWVfZGVjbC4KCShidWlsZF9keW5hbWljX2Nhc3RfMSk6IEFsd2F5cyBwcm9kdWNlIGNvcnJlY3RseSB0eXBlZCByZXN1bHQuCglFeHBsaWNpdGx5IHByb2R1Y2UgdHlwZV9pbmZvIGFkZHJlc3Nlcy4gVXNlIGR5bmFtaWNfY2FzdF9ub2RlLgoJKiBleGNlcHRpb24uY2MgKF9fdGhyb3dfYmFkX2Nhc3QpOiBSZXR1cm4gYHZvaWQgKicuCgkoX190aHJvd19iYWRfdHlwZWlkKTogUmV0dXJuIGBjb25zdCB0eXBlX2luZm8gJicuCgoyMDAwLTAxLTI0ICBOYXRoYW4gU2lkd2VsbCAgPHNpZHdlbGxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoZ2V0X3Z0YWJsZV9kZWNsKTogUHJvdG90eXBlIG5ldyBmdW5jdGlvbi4KCSogY2xhc3MuYyAoZ2V0X3Z0YWJsZV9kZWNsKTogTmV3IGZ1bmN0aW9uLiBCcm9rZW4gb3V0IGZyb20gLi4uCgkoYnVpbGRfdnRhYmxlKTogLi4uIGhlcmUuIFVzZSBpdC4KCSogZGVjbDIuYyAoZmluaXNoX3Z0YWJsZV92YXJkZWNsKTogSWdub3JlIGR1bW15IHZ0YWJsZXMgY3JlYXRlZAoJYnkgZ2V0X3Z0YWJsZV9kZWNsLgoKMjAwMC0wMS0yNCAgTmF0aGFuIFNpZHdlbGwgIDxzaWR3ZWxsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKENQVElfVFBfREVTQ19UWVBFLCBDUFRJX0FDQ0VTU19NT0RFX1RZUEUsCglDUFRJX1VTRVJfREVTQ19UWVBFLCBDUFRJX0NMQVNTX0RFU0NfVFlQRSwgQ1BUSV9BVFRSX0RFU0NfVFlQRSwKCUNQVElfUFRNRl9ERVNDX1RZUEUpOiBSZW1vdmUgY3BfdHJlZV9pbmRleCBlbnVtZXJhdGlvbnMuCgkoQ1BUSV9USV9ERVNDX1RZUEUsIENQVElfUkVGX0RFU0NfVFlQRSwgQ1BUSV9BUllfREVTQ19UWVBFLAoJQ1BUSV9FTlVNX0RFU0NfVFlQRSwgQ1BUSV9DTEFTU19ERVNDX1RZUEUsIENQVElfU0lfQ0xBU1NfREVTQ19UWVBFLAoJQ1BUSV9WTUlfQ0xBU1NfREVTQ19UWVBFLCBDUFRJX0JBU0VfREVTQ19UWVBFKTogTmV3IGVudW1lcmF0aW9ucy4KCShDUFRJX1RJTkZPX0ZOX0lELCBDUFRJX1RJTkZPX0ZOX1RZUEUpOiBSZW5hbWUgdG8gLi4uCgkoQ1BUSV9USU5GT19ERUNMX0lELCBDUFRJX1RJTkZPX0RFQ0xfVFlQRSk6IC4uLiBoZXJlLgoJKENQVElfVElORk9fVkFSX0lEKTogTmV3IGVudW1lcmF0aW9uLgoJKF9fdHBfZGVzY190eXBlX25vZGUsIF9fYWNjZXNzX21vZGVfdHlwZV9ub2RlLAoJX19ibHRuX2Rlc2NfdHlwZV9ub2RlLCBfX3VzZXJfZGVzY190eXBlX25vZGUsCglfX2NsYXNzX2Rlc2NfdHlwZV9ub2RlLCBfX3B0cl9kZXNjX3R5cGVfbm9kZSwKCV9fYXR0cl9kZXNjX3R5cGVfbm9kZSwgX19mdW5jX2Rlc2NfdHlwZV9ub2RlLAoJX19wdG1mX2Rlc2NfdHlwZV9ub2RlLCBfX3B0bWRfZGVzY190eXBlX25vZGUpOiBSZW1vdmUgI2RlZmluZXMuCgkodGlfZGVzY190eXBlX25vZGUsIGJsdG5fZGVzY190eXBlX25vZGUsIHB0cl9kZXNjX3R5cGVfbm9kZSwKCXJlZl9kZXNjX3R5cGVfbm9kZSwgYXJ5X2Rlc2NfdHlwZV9ub2RlLCBmdW5jX2Rlc2NfdHlwZV9ub2RlLAoJZW51bV9kZXNjX3R5cGVfbm9kZSwgY2xhc3NfZGVzY190eXBlX25vZGUsCglzaV9jbGFzc19kZXNjX3R5cGVfbm9kZSwgdm1pX2NsYXNzX2Rlc2NfdHlwZV9ub2RlLAoJcHRtZF9kZXNjX3R5cGVfbm9kZSwgYmFzZV9kZXNjX3R5cGVfbm9kZSk6IE5ldyAjZGVmaW5lcy4KCSh0aW5mb19mbl9pZCwgdGluZm9fZm5fdHlwZSk6IFJlbmFtZSB0byAuLi4KCSh0aW5mb19kZWNsX2lkLCB0aW5mb19kZWNsX3R5cGUpOiAuLi4gaGVyZS4gQWRqdXN0LgoJKHRpbmZvX3Zhcl9pZCk6IE5ldyBlbnVtZXJhdGlvbi4KCShERUNMX1RJTkZPX0ZOX1ApOiBBdWdtZW50IGNvbW1lbnQuCgkqIGRlY2wuYyAoY3BfZ2xvYmFsX3RyZWVzKTogQWRqdXN0IGRvY3VtZW50YXRpb24uCgkqIHJ0dGkuYyAoaW5pdF9ydHRpX3Byb2Nlc3NpbmcpOiBBZGp1c3QgZm9yIHRpbmZvX2RlY2xfaWQsCgl0aW5mb19kZWNsX3R5cGUgYW5kIHRpbmZvX3Zhcl9pZC4KCShnZXRfdGluZm9fZGVjbF9keW5hbWljKTogQWRqdXN0IGZvciB0aW5mb19kZWNsX3R5cGUuCgkoYnVpbGRfdHlwZWlkKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCShnZXRfdGluZm9fdmFyKTogVXNlIHRpbmZvX3Zhcl9pZC4KCSh0aW5mb19uYW1lKTogTmV3IHN0YXRpYyBmdW5jdGlvbi4KCShnZXRfdGluZm9fZGVjbCk6IEFkanVzdCBmb3IgdGluZm9fZGVjbF9pZCBhbmQgdGluZm9fZGVjbF90eXBlLgoJKHRpbmZvX2Zyb21fZGVjbCk6IExpa2V3aXNlLgoJKGdldF9iYXNlX29mZnNldCk6IE5ldyBzdGF0aWMgZnVuY3Rpb24sIGJyb2tlbiBvdXQgb2YKCWV4cGFuZF9jbGFzc19kZXNjLgoJKGV4cGFuZF9zaV9kZXNjKTogVXNlIHRpbmZvX25hbWUuCgkoZXhwYW5kX2NsYXNzX2Rlc2MpOiBMaWtld2lzZS4gTG9zZSBsb2NhbCBzdGF0aWMgdmFyaWFibGUuCglVc2UgYmFzZV9kZXNjX3R5cGVfbm9kZS4gVXNlIGdldF9iYXNlX29mZnNldC4KCShleHBhbmRfcHRyX2Rlc2MpOiBVc2UgdGluZm9fbmFtZS4KCShleHBhbmRfYXR0cl9kZXNjKTogTGlrZXdpc2UuCgkoZXhwYW5kX2dlbmVyaWNfZGVzYyk6IExpa2V3aXNlLgoKCSogdGluZm8uY2MgKF9fR1hYX0FCSV9WRVJTSU9OKTogVGVzdCB2YWx1ZSBhbmQgZXhpc3RlbmNlLgoJKiB0aW5mby5oIChfX0dYWF9BQklfVkVSU0lPTik6IFRlc3QgdmFsdWUgYW5kIGV4aXN0ZW5jZS4KCjIwMDAtMDEtMjMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKF9fZXByaW50Zik6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCSogdHJlZS5jIChfX2VwcmludGYpOiBSZW1vdmUgZGVmaW5pdGlvbi4KCjIwMDAtMDEtMjMgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHJhYmkuY29sdW1iaWEuZWR1PgoJICAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKENMQVNTVFlQRV9NQVJLRURfTiwgU0VUX0NMQVNTVFlQRV9NQVJLRURfTiwKCUNMRUFSX0NMQVNTVFlQRV9NQVJLRURfTik6IEF2b2lkIHNpZ25lZCB2cy4gdW5zaWduZWQgd2FybmluZ3MuCgoyMDAwLTAxLTIzICBCcmFkIEx1Y2llciAgPGx1Y2llckBtYXRoLnB1cmR1ZS5lZHU+CgoJKiBjbGFzcy5jIChkdW1wX2NsYXNzX2hpZXJhcmNoeSk6IFByaW50IEhPU1RfV0lERV9JTlQgcHJvcGVybHkuCgoyMDAwLTAxLTIzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChyZWdpc3Rlcl9kdG9yX2ZuKTogTmV3IGZ1bmN0aW9uLgoJKiBkZWNsLmMgKGRlc3Ryb3lfbG9jYWxfc3RhdGljKTogUmVuYW1lIHRvIC4uLgoJKHJlZ2lzdGVyX2R0b3JfZm4pOiAuLi4gdGhpcy4gIEdpdmUgaXQgZXh0ZXJuYWwgbGlua2FnZS4KCShleHBhbmRfc3RhdGljX2luaXQpOiBVc2UgaXQuCgkqIGRlY2wyLmMgKGRvX3N0YXRpY19pbml0aWFsaXphdGlvbik6IExpa2V3aXNlLCBpZiB1c2luZwoJX19jeGFfYXRleGl0LgoJKGRvX3N0YXRpY19kZXN0cnVjdGlvbik6IENoZWNrIHRoYXQgX19jeGFfYXRleGl0IGlzIG5vdCBpbiB1c2UuCgkoZmluaXNoX2ZpbGUpOiBEb24ndCBjYWxsIGRvX3N0YXRpY19kZXN0cnVjdGlvbiBpZiB1c2luZwoJX19jeGFfYXRleGl0LgoKCSogdHlwZWNrLmMgKGNvbnZlcnRfYXJndW1lbnRzKTogUmVzdG9yZSB0d28tbWVzc2FnZSBlcnJvcgoJcmVwb3J0aW5nLgoKMjAwMC0wMS0yMCAgTmF0aGFuIFNpZHdlbGwgIDxzaWR3ZWxsQGNvZGVzb3VyY2VyeS5jb20+CgoJUmVtYXAgZHluYW1pYyBjYXN0IGhpbnQgdmFsdWVzIHRvIGJlIGNvbnNpc3RlbnQgYWNyb3NzIEFCSXMuCgkqIHNlYXJjaC5jIChkeW5hbWljX2Nhc3RfYmFzZV9yZWN1cnNlKTogUmVtYXAgZ2VuZXJhdGVkIHZhbHVlLgoJKGdldF9keW5hbWljX2Nhc3RfYmFzZV90eXBlKTogQWRqdXN0IGRvY3VtZW50YXRpb24uCgkqIHRpbmZvLmggKF9fdXNlcl90eXBlX2luZm86OmR5bmNhc3QpOiBMaWtld2lzZS4KCShfX3VzZXJfdHlwZV9pbmZvOjpmaW5kX3B1YmxpY19zdWJvYmopOiBSZW1hcCBCT0ZGIG1lYW5pbmcuCgkqIHRpbmZvLmNjIChfX3NpX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCk6IFJlbWFwIEJPRkYgbWVhbmluZy4KCShfX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZHluY2FzdCk6IExpa2V3aXNlLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpkb19maW5kX3B1YmxpY19zdWJvYmopOiBMaWtld2lzZS4KCSogdGluZm8yLmNjIChfX2R5bmFtaWNfY2FzdCk6IFJlbWFwIEJPRkYgcGFyYW1ldGVyLgoKMjAwMC0wMS0xOSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKCSogdHlwZWNrLmMgKGJ1aWxkX3VuYXJ5X29wKTogVXNlIGNwX3BlZHdhcm4sIG5vdCBwZWR3YXJuLgoKCSogdHlwZWNrMi5jIChpbmNvbXBsZXRlX3R5cGVfZXJyb3IpOiBSZXN0b3JlIHByZXZpb3VzCgljcF9lcnJvciBhbmQgY3BfZXJyb3JfYXQgY2FsbCBzZXF1ZW5jZS4KCjIwMDAtMDEtMjAgIEJyYWQgTHVjaWVyICA8bHVjaWVyQG1hdGgucHVyZHVlLmVkdT4KCgkqIGNsYXNzLmMgKGR1bXBfY2xhc3NfaGllcmFyY2h5KTogTWFrZSBmb3JtYXQgYWdyZWUgd2l0aCBhcmd1bWVudDsKCWNhc3QgcG9pbnRlciB0byB1bnNpZ25lZCBsb25nIGFuZCBwcmludCB3aXRoICVseC4KCjIwMDAtMDEtMTkgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wyLmMgKGxhbmdfZGVjb2RlX29wdGlvbik6IFNldCBkZWZhdWx0IGxpbmUtd3JhcCBsZW5ndGggdG8gNzIuCgoJKiB0eXBlY2suYyAoY29tcG9zaXRlX3BvaW50ZXJfdHlwZSwgY29tbW9uX3R5cGUsCgljb21wX3RhcmdldF9wYXJtcywgY19zaXplb2YsIGV4cHJfc2l6ZW9mLCBidWlsZF9hcnJheV9yZWYsCglidWlsZF9mdW5jdGlvbl9jYWxsX3JlYWwsIGNvbnZlcnRfYXJndW1lbnRzLAoJYnVpbGRfYmluYXJ5X29wX25vZGVmYXVsdCwgcG9pbnRlcl9pbnRfc3VtLCBwb2ludGVyX2RpZmYsCglidWlsZF91bmFyeV9vcCwgbWFya19hZGRyZXNzYWJsZSwgYnVpbGRfY29tcG91bmRfZXhwciwKCWJ1aWxkX3N0YXRpY19jYXN0LCBidWlsZF9yZWludGVycHJldF9jYXN0LCBidWlsZF9jb25zdF9jYXN0LAoJYnVpbGRfY19jYXN0LCBidWlsZF9tb2RpZnlfZXhwciwgZ2V0X2RlbHRhX2RpZmZlcmVuY2UsCglidWlsZF9wdHJtZW1mdW5jLCBjaGVja19yZXR1cm5fZXhwcik6IFJlcGxhY2UgJ0FOU0kgQysrJyB3aXRoCgknSVNPIEMrKycuICBGdXNpb24gY29uc2VjdXRpdmUgY2FsbHMgdG8gZGlhZ25vc3RpYyBtZXNzYWdlIHJvdXRpbmVzCglpbnRvIGEgc2luZ2xlIG9uZS4KCSogdHlwZWNrMi5jIChyZWFkb25seV9lcnJvciwgYWJzdHJhY3RfdmlydHVhbHNfZXJyb3IsCglwcm9jZXNzX2luaXRfY29uc3RydWN0b3IsIGNoZWNrX2Zvcl9uZXdfdHlwZSk6IExpa2V3aXNlLgoKMjAwMC0wMS0xOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWUuYyAoYm90X21hbmlwKTogU2V0IERFQ0xfQ09OVEVYVCBmb3IgbmV3bHkgY3JlYXRlZAoJVkFSX0RFQ0xzLgoKMjAwMC0wMS0xOCAgTmF0aGFuIFNpZHdlbGwgIDxzaWR3ZWxsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKGdldF90aW5mb19mbl9keW5hbWljKTogUmVtb3ZlIHByb3RvdHlwZS4KCShidWlsZF94X3R5cGVpZCk6IExpa2V3aXNlLgoJKGdldF90aW5mb19mbik6IExpa2V3aXNlLgoJKGdldF90aW5mb19mbl91bnVzZWQpOiBSZW5hbWUgdG8gLi4uCgkoZ2V0X3RpbmZvX2RlY2wpOiAuLi4gaGVyZS4KCSogcnR0aS5jIChidWlsZF9oZWFkb2YpOiBSZXBsYWNlIGxvZ2ljIGVycm9yIHdpdGggYXNzZXJ0aW9uLgoJKGdldF90aW5mb19mbl9keW5hbWljKTogUmVuYW1lIHRvIC4uLgoJKGdldF90aW5mb19kZWNsX2R5bmFtaWMpOiAuLi4gaGVyZS4gTWFrZSBzdGF0aWMuIFVzZQoJY29tcGxldGVfdHlwZV9vcl9lbHNlLgoJKGJ1aWxkX3hfdHlwZWlkKTogTW92ZSBpbnRvIC4uLgoJKGJ1aWxkX3R5cGVpZCk6IC4uLiBoZXJlLiBBZGp1c3QgY2FsbCB0bwoJZ2V0X3RpbmZvX2RlY2xfZHluYW1pYy4gVXNlIHRpbmZvX2Zyb21fZGVjbC4gU2ltcGxpZnkKCXRocm93X2JhZF90eXBlaWQgZXhwcmVzc2lvbi4KCShnZXRfdGluZm9fZm5fdW51c2VkKTogUmVuYW1lIHRvIC4uLgoJKGdldF90aW5mb19kZWNsKTogLi4uIGhlcmUuIEFkanVzdCBjb21tZW50LgoJKGdldF90aW5mb19mbik6IERlbGV0ZS4KCSh0aW5mb19mcm9tX2RlY2wpOiBOZXcgc3RhdGljIGZ1bmN0aW9uLgoJKGdldF90eXBlaWRfMSk6IENhbGwgZ2V0X3RpbmZvX2RlY2wgYW5kIHRpbmZvX2Zyb21fZGVjbC4KCShnZXRfdHlwZWlkKTogVXNlIGNvbXBsZXRlX3R5cGVfb3JfZWxzZS4KCShidWlsZF9keW5hbWljX2Nhc3RfMSk6IEFkanVzdCBjYWxscyB0bwoJZ2V0X3RpbmZvX2RlY2xfZHluYW1pYy4gU2ltcGxpZnkgdGhyb3dfYmFkX2Nhc3QgZXhwcmVzc2lvbi4KCSogcGFyc2UueSAocHJpbWFyeSk6IEFkanVzdCBjYWxsIHRvIGJ1aWxkX3R5cGVpZC4KCSogZXhjZXB0LmMgKGJ1aWxkX2VoX3R5cGVfdHlwZV9yZWYpOiBBZGp1c3QgY2FsbCB0bwoJZ2V0X3RpbmZvX2RlY2wuIE1hcmsgYXMgdXNlZC4KCSogY2xhc3MuYyAoc2V0X3J0dGlfZW50cnkpOiBBZGp1c3QgY2FsbCB0byBnZXRfdGluZm9fZGVjbC4KCSogZGVjbDIuYyAoYnVpbGRfZXhwcl9mcm9tX3RyZWUpOiBBZGp1c3QgY2FsbCB0byBidWlsZF90eXBlaWQuCgkqIHBhcnNlLmM6IFJlZ2VuZXJhdGVkLgoKMjAwMC0wMS0xNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNsYXNzLmMgKGZpeGVkX3R5cGVfb3JfbnVsbCk6IERvbid0IGNsZWFyIE5PTk5VTEwuICBEb2N1bWVudAoJY2FsbGluZyBjb252ZW50aW9uLgoJKHJlc29sdmVzX3RvX2ZpeGVkX3R5cGVfcCk6IERvY3VtZW50IGNhbGxpbmcgY29udmVudGlvbi4KCSogcnR0aS5jIChidWlsZF94X3R5cGVpZCk6IEluaXRpYWxpemUgTk9OTlVMTC4KCgkqIGNwLXRyZWUuaCAoYnVpbGRfc2hhcmVkX2ludF9jc3QpOiBOZXcgZnVuY3Rpb24uCgkqIGNhbGwuYyAoYnVpbGRfb3Zlcl9jYWxsKTogVXNlIERFQ0xfVklSVFVBTF9DT05URVhULCBmb3IgY2xhcml0eS4KCSogY2xhc3MuYyAobW9kaWZ5X3Z0YWJsZV9lbnRyeSk6IExpa2V3aXNlLgoJKGFkZF92aXJ0dWFsX2Z1bmN0aW9uKTogU3BsaXQgb3V0IGNvZGUgdG8gZ2VuZXJhdGVkIHNoYXJlZAoJSU5URUdFUl9DU1RzIHRvIGJ1aWxkX3NoYXJlX2ludF9jc3QuCgkobW9kaWZ5X2FsbF92dGFibGVzKTogSGFuZGxlIGFsbCB0aGUgb3ZlcnJpZGRlbiBmdW5jdGlvbnMgaGVyZS4KCUFkZCBvdmVycmlkZGVuIGZ1bmN0aW9ucyBmcm9tIG5vbi1wcmltYXJ5IHZpcnR1YWwgYmFzZXMgdG8gdGhlCglwcmltYXJ5IHZ0YWJsZS4KCShmaW5pc2hfc3RydWN0XzEpOiBBZGp1c3QgY2FsbCB0byBtb2RpZnlfYWxsX3Z0YWJsZXMuICBBZGQKCW92ZXJyaWRkZW4gZnVuY3Rpb25zIGZyb20gbm9uLXByaW1hcnkgYmFzZXMgdG8gdGhlIHZ0YWJsZS4KCSogdHJlZS5jIChidWlsZF9zaGFyZWRfaW50X2NzdCk6IE5ldyBmdW5jdGlvbi4KCgkqIGNwLXRyZWUuaCAoc2NyYXRjaGFsbG9jKTogUmVtb3ZlLgoJKGJ1aWxkX3NjcmF0Y2hfbGlzdCk6IExpa2V3aXNlLgoJKiBjYWxsLmMgKGNvbnZlcnRfY2xhc3NfdG9fcmVmZXJlbmNlKTogUmVwbGFjZSBidWlsZF9zY3JhdGNoX2xpc3QKCWFuZCBidWlsZF9leHByX2xpc3Qgd2l0aCBidWlsZF90cmVlX2xpc3QuCgkoYWRkX2NhbmRpZGF0ZSk6IFJlcGxhY2Ugc2NyYXRjaGFsbG9jIHdpdGggZXhwcmFsbG9jLiAgTm90ZSBtZW1vcnkKCWxlYWsuCgkoYnVpbGRfdXNlcl90eXBlX2NvbnZlcnNpb25fMSk6ICBSZXBsYWNlIGJ1aWxkX3NjcmF0Y2hfbGlzdAoJYW5kIGJ1aWxkX2V4cHJfbGlzdCB3aXRoIGJ1aWxkX3RyZWVfbGlzdC4KCShidWlsZF9uZXdfb3ApOiBMaWtld2lzZS4KCShidWlsZF9vcF9kZWxldGVfY2FsbCk6IExpa2V3aXNlLgoJKGNvbnZlcnRfbGlrZSk6IExpa2V3aXNlLgoJKiBjdnQuYyAob2NwX2NvbnZlcnQpOiBMaWtld2lzZS4KCSogZGVjbC5jIChzdGFydF9kZWNsKTogTGlrZXdpc2UuCgkoc3RhcnRfZnVuY3Rpb24pOiBMaWtld2lzZS4KCShmaW5pc2hfZGVzdHJ1Y3Rvcl9ib2R5KTogTGlrZXdpc2UuCgkobWF5YmVfYnVpbGRfY2xlYW51cF8xKTogTGlrZXdpc2UuCgkqIGRlY2wyLmMgKHJlcGFyc2VfZGVjbF9hc19leHByKTogTGlrZXdpc2UuCgkqIGluaXQuYyAocGVyZm9ybV9tZW1iZXJfaW5pdCk6IExpa2V3aXNlLgoJKGV4cGFuZF9jbGVhbnVwX2Zvcl9iYXNlKTogTGlrZXdpc2UuCgkoYnVpbGRfYnVpbHRpbl9kZWxldGVfY2FsbCk6IExpa2V3aXNlLgoJKGJ1aWxkX25ld18xKTogTGlrZXdpc2UuCgkoYnVpbGRfZGVsZXRlKTogTGlrZXdpc2UuCgkqIG1ldGhvZC5jIChkb19idWlsZF9hc3NpZ25fcmVmKTogTGlrZXdpc2UuCgkqIHBhcnNlLnkgKGFscmVhZHlfc2NvcGVkX3N0bXQpOiBMaWtld2lzZS4KCShub250cml2aWFsX2V4cHJsaXN0KTogTGlrZXdpc2UuCgkobmV0X2luaXRpYWxpemVyKTogTGlrZXdpc2UuCgkoaW5pdGxpc3QpOiBMaWtld2lzZS4KCSogcGFyc2UuYzogUmVnZW5lcmF0ZWQuCgkqIHJ0dGkuYyAoYnVpbGRfeF90eXBlaWQpOiBMaWtld2lzZS4KCShidWlsZF9keW5hbWljX2Nhc3RfMSk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoYnVpbGRfeF9jb21wb3VuZF9leHByKTogTGlrZXdpc2UuCgkoYnVpbGRfc3RhdGljX2Nhc3QpOiBMaWtld2lzZS4KCShidWlsZF9tb2RpZnlfZXhwcik6IExpa2V3aXNlLgoKCSogY3AtdHJlZS5oIChERUNMX1ZJTkRFWCk6IEFkZCBkb2N1bWVudGF0aW9uLgoJKiBjbGFzcy5jIChidWlsZF92dGFibGVfZW50cnkpOiBMaWtld2lzZS4KCShzdGFydF92dGFibGUpOiBBZGQgY29tbWVudC4KCShhZGRfdmlydHVhbF9mdW5jdGlvbik6IFJlcGxhY2UgcGVuZGluZ19oYXJkX3ZpcnR1YWxzIHdpdGgKCW92ZXJyaWRkZW5fdmlydHVhbHMgYW5kIHBlbmRpbmdfdmlydHVhbHMgd2l0aCBuZXdfdmlydHVhbHMuCglSZXBsYWNlIHJlZHVuZGFudCBhc3NpZ25tZW50cyB3aXRoIGFzc2VydGlvbnMuCgkoY2hlY2tfZm9yX292ZXJyaWRlKTogQWRkIGNvbW1lbnQuCgkoY2hlY2tfYmFzZXNfYW5kX21lbWJlcnMpOiBSZXBsYWNlIHBlbmRpbmdfaGFyZF92aXJ0dWFscyB3aXRoCglvdmVycmlkZGVuX3ZpcnR1YWxzIGFuZCBwZW5kaW5nX3ZpcnR1YWxzIHdpdGggbmV3X3ZpcnR1YWxzLgoJKGNyZWF0ZV92dGJsX3B0cik6IExpa2V3aXNlLgoJKGxheW91dF9jbGFzc190eXBlKTogTGlrZXdpc2UuCgkoZmluaXNoX3N0cnVjdF8xKTogTGlrZXdpc2UuICBBZGQgY29tbWVudHMuCgoyMDAwLTAxLTE2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY2xhc3MuYyAoZmluaXNoX3N0cnVjdF8xKTogUmVwbGFjZSByZWR1bmRhbnQgY29kZSB3aXRoCglhc3NlcnRpb25zLgoKCSogY3AtdHJlZS5oIChmbGFnX25ld19hYmkpOiBNb3ZlLgoJKGZsYWdfdXNlX2N4YV9hdGV4aXQpOiBMaWtld2lzZS4KCShmbGFnX2hvbm9yX3N0ZCk6IExpa2V3aXNlLgoJKGZsYWdfcnR0aSk6IExpa2V3aXNlLgoJKHZiYXNlX29mZnNldHNfaW5fdnRhYmxlX3ApOiBEZWZpbmUuCgkodnB0cnNfcHJlc2VudF9ldmVyeXdoZXJlX3ApOiBMaWtld2lzZS4KCShUWVBFX0NPTlRBSU5TX1ZQVFJfUCk6IExpa2V3aXNlLgoJKGRmc193YWxrX3JlYWwpOiBEZWNsYXJlLgoJKiBjbGFzcy5jIChidWlsZF92YmFzZV9wb2ludGVyX2ZpZWxkcyk6IENoZWNrCgl2YmFzZV9vZmZzZXRzX2luX3Z0YWJsZV9wLgoJKGRmc19idWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogUmVjb3JkIHRoZSB2YmFzZSBpbmRpY2VzIGluCglCSU5GT19WUFRSX0ZJRUxELgoJKGJ1aWxkX3ZiYXNlX29mZnNldF92dGJsX2VudHJpZXMpOiBTaW1wbGlmeS4KCShidWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogQWRqdXN0LgoJKGJ1aWxkX3ZiYXNlX3BvaW50ZXIpOiBBZGQgYWJpbGl0eSB0byBsb29rIHVwIHZiYXNlIG9mZnNldHMgaW4KCXZ0YWJsZS4KCShzdGFydF92dGFibGUpOiBOZXcgZnVuY3Rpb24uCgkoYWRkX3ZpcnR1YWxfZnVuY3Rpb24pOiBVc2UgaXQuCgkoZGV0ZXJtaW5lX3ByaW1hcnlfYmFzZSk6IFVzZSBUWVBFX0NPTlRBSU5TX1ZQVFJfUC4KCShudW1fZXh0cmFfdnRibF9lbnRyaWVzKTogVXNlIHZiYXNlX29mZnNldHNfaW5fdnRhYmxlX3AuCgkoYnVpbGRfdnRibF9pbml0aWFsaXplcik6IFRha2UgdGhlIHR5cGUgb2YgdGhlIGNvbXBsZXRlIG9iamVjdCBhcwoJaW5wdXQuICBVc2UgaXQgdG8gY29ycmVjdGx5IGNhbGN1bGF0ZSB2YmFzZSBvZmZzZXRzLgoJKGRmc19maW5pc2hfdnRibHMpOiBQYXNzIHRoZSBjb21wbGV0ZSB0eXBlIHRvCglidWlsZF92dGJsX2luaXRpYWxpemVyLgoJKGNoZWNrX2Jhc2VzX2FuZF9tZW1iZXJzKTogVXNlIFRZUEVfQ09OVEFJTlNfVlBUUl9QLgoJKGNyZWF0ZV92dGFibGVfcHRyKTogQ3JlYXRlIGEgdnRhYmxlIGV2ZW4gaWYgdGhlcmUgYXJlIG5vCgluZXcgdmlydHVhbCBmdW5jdGlvbnMsIHVuZGVyIHRoZSBuZXcgQUJJLgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IExpa2V3aXNlLgoJKGdldF92ZmllbGRfbmFtZSk6IFVzZSBUWVBFX0NPTlRBSU5TX1ZQVFJfUC4KCSogZGVjbC5jIChleGFwbmRfc3RhdGljX2luaXQpOiBSZW1vdmUgY2FsbCB0bwoJcHJlc2VydmVfaW5pdGlhbGl6ZXIuCgkqIGRlY2wyLmMgKG1hcmtfdnRhYmxlX2VudHJpZXMpOiBUd2VhayB0byBoYW5kbGUgdmJhc2Ugb2Zmc2V0cyBpbgoJdnRhYmxlcy4KCSogaW5pdC5jIChpbml0aWFsaXplX3Z0YmxfcHRycyk6IEluaXRpYWxpemUgdGhlbSBpbiBwcmUtb3JkZXIuCgkoZXhwYW5kX3ZpcnR1YWxfaW5pdCk6IFVzZSB2YmFzZV9vZmZzZXRzX2luX3Z0YWJsZV9wLgoJKGNvbnN0cnVjdF92aXJ0dWFsX2Jhc2VzKTogRG9uJ3QgaW5pdGlhbGl6ZSB2aXJ0dWFsIGJhc2UgcG9pbnRlcnMKCXVuZGVyIHRoZSBuZXcgQUJJLgoJKGJ1aWxkX2FnZ3JfaW5pdCk6IENsZWFuIHVwIGNvbW1lbnQuCgkoZXhwYW5kX2FnZ3JfaW5pdF8xKTogTGlrZXdpc2UuCgkqIHJ0dGkuYyAoZXhwYW5kX2NsYXNzX2Rlc2MpOiBTdG9yZSB0aGUgdmlydHVhbCBmdW5jdGlvbiB0YWJsZQoJaW5kZXggd2hlcmUgdGhlIHZiYXNlIG9mZnNldCBsaXZlcyBpbiB0aGUgb2Zmc2V0IGZpZWxkLgoJKiBzZWFyY2guYyAoZGZzX3dhbGtfcmVhbCk6IE1ha2UgaXQgZ2xvYmFsLgoJKGRmc19kZWJ1Z19tYXJrKTogVXNlIFRZUEVfQ09OVEFJTlNfVlBUUl9QLgoJKiB0cmVlLmMgKG1ha2VfYmluZm8pOiBEb24ndCBjbGVhciBCSU5GT19WUFRSX0ZJRUxELgoKCSogdGluZm8uaCAoVVNJdHlwZSk6IE1ha2UgaXQgc2lnbmVkIHVuZGVyIHRoZSBuZXcgQUJJLgoJKiB0aW5mby5jYyAoY29udmVydF90b19iYXNlKTogTmV3IGZ1bmN0aW9uLiAgRW5jYXBzdWxhdGUgYmFzZQoJY29udmVyc2lvbiBsb2dpYyBoZXJlLgoJKF9fY2xhc3NfdHlwZV9pbmZvOjpkb191cGNhc3QpOiBVc2UgaXQuCgkoX19jbGFzc190eXBlX2luZm86OmRvX2R5bmNhc3QpOiBMaWtld2lzZS4KCShfX2NsYXNzX3R5cGVfaW5mbzo6ZG9fZmluZF9wdWJsaWNfc3Vib2JqKTogTGlrZXdpc2UuCgoJKiBpbml0LmMgKGNvbnN0cnVjdF92aXJ0dWFsX2Jhc2VzKTogRG9uJ3QgbG9vayB1cCB0aGUgYWRkcmVzc2VzIG9mCgl2aXJ0dWFsIGJhc2VzIGF0IHJ1bi10aW1lLgoKCSogY2xhc3MuYyAoYnVpbGRfdmJhc2VfcG9pbnRlcik6IFJlbG9jYXRlLgoJKGJ1aWxkX3ZiYXNlX3BvaW50ZXJfZmllbGRzKTogTGlrZXdpc2UuCgkoZGZzX2J1aWxkX3ZiYXNlX29mZnNldF92dGJsX2VudHJpZXMpOiBMaWtld2lzZS4KCShidWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogTGlrZXdpc2UuCgoJKiBkZWNsLmMgKGluaXRfZGVjbF9wcm9jZXNzaW5nKTogQ29tcGxhaW4gaWYgLWZuZXctYWJpCgktZm5vLXZ0YWJsZS10aHVua3MgaXMgdXNlZC4KCgkqIGRlY2wyLmMgKGxhbmdfZGVjb2RlX29wdGlvbik6IERvbid0IGNvdXBsZSBmbGFnX2hvbm9yX3N0ZCB0bwoJZmxhZ19uZXdfYWJpLgoKMjAwMC0wMS0xNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAobnVtX2V4dHJhX3Z0YmxfZW50cmllcyk6IE5ldyBmdW5jdGlvbi4KCShzaXplX2V4dHJhX3Z0YmxfZW50cmllcyk6IExpa2V3aXNlLgoJKGRmc192dGFibGVfcGF0aF91bm1hcmspOiBMaWtld2lzZS4KCShkZnNfdnRhYmxlX3BhdGhfdW5tYXJrZWRfcmVhbF9iYXNlc19xdWV1ZV9wKTogTGlrZXdpc2UuCgkoZGZzX3Z0YWJsZV9wYXRoX21hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBMaWtld2lzZS4KCSogY2xhc3MuYyAobnVtX2V4dHJhX3Z0YmxfZW50cmllcyk6IE5ldyBmdW5jdGlvbi4KCShzaXplX2V4dHJhX3Z0YmxfZW50cmllcyk6IExpa2V3aXNlLgoJKGRmc19idWlsZF92YmFzZV9vZmZzZXRfdnRibF9lbnRyaWVzKTogTmV3IGZ1bmN0aW9uLgoJKGJ1aWxkX3ZiYXNlX29mZnNldF92dGJsX2VudHJpZXMpOiBMaWtld2lzZS4KCShidWlsZF92dGJsX2luaXRpYWxpemVyKTogVXNlIGl0LgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IEFkanVzdCB2dGFibGUgc2l6ZXMgKHVzaW5nCgludW1fZXh0cmFfdnRibF9lbnRyaWVzKS4KCSogZXhwci5jIChjcGx1c19leHBhbmRfZXhwcik6IEFzc2VydCB0aGF0IHRoZSBERUNMX1JUTCBmb3IgYQoJVEhVTktfREVDTCBpcyBub24tTlVMTCBiZWZvcmUgZXhwYW5kaW5nIGl0LgoJKiBpbml0LmMgKGV4cGFuZF92aXJ0dWFsX2luaXQpOiBBZGp1c3QgdGhlIHZ0YWJsZSBwb2ludGVyIGJ5CglzaXplX2V4dHJhX3Z0YmxfZW50cmllcyBiZWZvcmUgc3RvcmluZyBpdC4KCSogc2VhcmNoLmMgKGdldF9zaGFyZWRfdmFzZV9pZl9ub3RfcHJpbWFyeSk6IEFkanVzdCBwcm90b3R5cGUuCglIYW5kbGUgVFJFRV9MSVNUIHBhcmFtZXRlcnMgaGVyZSwgbm90IGluIHRoZSBkZnNfKiBmdW5jdGlvbnMuCgkoZGZzX3VubWFya2VkX3JlYWxfYmFzZXNfcXVldWVfcCk6IEFkanVzdC4KCShkZnNfbWFya2VkX3JlYWxfYmFzZXNfcXVldWVfcCk6IExpa2V3aXNlLgoJKGRmc192dGFibGVfcGF0aF91bm1hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBOZXcgZnVuY3Rpb24uCgkoZGZzX3Z0YWJsZV9wYXRoX21hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBOZXcgZnVuY3Rpb24uCgkoZGZzX3Z0YWJsZV9wYXRoX3VubWFyayk6IExpa2V3aXNlLgoKMjAwMC0wMS0xNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG9wdGltaXplLmMgKGNvcHlfYm9keV9yKTogQ2xlYXIgdGhlIG9wZXJhbmQgdGhyZWUgb2YgYQoJVEFSR0VUX0VYUFIgd2hlbiBjb3B5aW5nIGl0LgoKMjAwMC0wMS0xNCAgTWFydGluIHYuIEz2d2lzICA8bG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlPgoKCSogbWV0aG9kLmMgKGJ1aWxkX2RlY2xfb3ZlcmxvYWRfcmVhbCk6IENoZWNrIHdoZXRoZXIgd2UgYXJlIGluIDo6CgliZWZvcmUgcmV0dXJuaW5nIF9fYnVpbHRpbl9uZXcvZGVsZXRlLgoKMjAwMC0wMS0xMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHB0LmMgKHRzdWJzdF9mcmllbmRfZnVuY3Rpb24pOiBJbXByb3ZlIGNvbW1lbnQuCgkoaW5zdGFudGlhdGVfZGVjbCk6IEF2b2lkIGNyYXNoaW5nIHdoZW4gYSAibmVzdGVkIiBmdW5jdGlvbiBpcwoJaW5zdGFudGlhdGVkIGZyb20gdGhlIHRvcCBsZXZlbC4KCgkqIGR1bXAuYyAoZHFldWV1ZV9hbmRfZHVtcCk6IER1bXAKCURFQ0xfRlJJRU5EX1BTRVVET19URU1QTEFURV9JTlNUQU5USUFUSU9OLgoKMjAwMC0wMS0xMyAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogY2FsbC5jOiBJZiBHQVRIRVJfU1RBVElTVElDUywgZGVjbGFyZSBgbl9idWlsZF9tZXRob2RfY2FsbCcuCgoyMDAwLTAxLTEzICBOYXRoYW4gU2lkd2VsbCAgPHNpZHdlbGxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGcrK3NwZWMuYyAobGFuZ19zcGVjaWZpY19kcml2ZXIpOiBBZGQgLWZuZXctYWJpIGlmCglFTkFCTEVfTkVXX0dYWF9BQkkgZGVmaW5lZC4KCSogTWFrZS1sYW5nLmluICh0aW5mby5vLCB0aW5mbzIubywgZXhjZXB0aW9uLm8sIG5ldy5vLAoJb3BuZXcubywgb3BuZXdudC5vLCBvcHZuZXcubywgb3B2bmV3bnQubywgb3BkZWwubywgb3BkZWxudC5vLAoJb3B2ZGVsLm8sIG9wdmRlbG50Lm8pOiBVc2UgR1hYX0FCSV9GTEFHIHN3aXRjaC4KCjIwMDAtMDEtMTIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWNsLmMgKHN0YXJ0X2NsZWFudXBfZm4pOiBDYWxsIHB1c2hkZWNsLgoKCSogY2FsbC5jIChjb252ZXJ0X2NsYXNzX3RvX3JlZmVyZW5jZSk6IEZpeCB0eXBvcy4KCShidWlsZF9jb25kaXRpb25hbF9leHByKTogSGFuZGxlIGVycm9ycyBncmFjZWZ1bGx5LgoJKiBjbGFzcy5jIChwdXNoX25lc3RlZF9jbGFzcyk6IExpa2V3aXNlLgoJKiBjcC10cmVlLmggKFZBUl9GVU5DVElPTl9PUl9QQVJNX0RFQ0xfQ0hFQ0spOiBOZXcgbWFjcm8uCgkoREVDTF9USElTX0VYVEVSTik6IFVzZSBpdC4KCShERUNMX1RISVNfU1RBVElDKTogTGlrZXdpc2UuCgkqIGN2dC5jIChjb252ZXJ0X3RvX3ZvaWQpOiBIYW5kbGUgZXJyb3JzIGdyYWNlZnVsbHkuCgkoYnVpbGRfZXhwcl90eXBlX2NvbnZlcnNpb24pOiBMaWtld2lzZS4KCSogZGVjbC5jIChtYXliZV9wdXNoX2RlY2wpOiBMaWtld2lzZS4KCShzdGFydF9kZWNsXzEpOiBMaWtld2lzZS4KCShyZXF1aXJlX2NvbXBsZXRlX3R5cGVzX2Zvcl9wYXJtcyk6IExpa2V3aXNlLgoJKiBwYXJzZS55IChzdHJ1Y3RzcCk6IExpa2V3aXNlLgoJKGJhc2VfY2xhc3MpOiBMaWtld2lzZS4KCSogcGFyc2UuYzogUmVnZW5lcmF0ZWQuCgkqIHB0LmMgKGZpbmlzaF9tZW1iZXJfdGVtcGxhdGVfZGVjbCk6IExpa2V3aXNlLgoJKiB0eXBlY2suYyAoZGVjYXlfY29udmVyc2lvbik6IExpa2V3aXNlLgoKCSogY3AtdHJlZS5oIChkZnNfc2tpcF92YmFzZXMpOiBOZXcgZnVuY3Rpb24uCgkoZmluZF92YmFzZV9pbnN0YW5jZSk6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChkZXRlcm1pbmVfcHJpbWFyeV9iYXNlKTogQWxsb3cgYSBuZWFybHkgZW1wdHkgYmFzZSB0bwoJc2VydmUgYXMgYSBwcmltYXJ5IGJhc2UgY2xhc3MgdW5kZXIgdGhlIG5ldyBBQkkuCgkoZ2V0X2NsYXNzX29mZnNldF8xKTogUmVuYW1lIHRvIC4uLgoJKGRmc19nZXRfY2xhc3Nfb2Zmc2V0KTogLi4uIHRoaXMuICBTaW1wbGlmeS4gIERvbid0IGlzc3VlIGVycm9yCgltZXNzYWdlcyBoZXJlLgoJKGdldF9jbGFzc19vZmZzZXQpOiBVc2UgaXQuICBJc3N1ZSBlcnJvciBtZXNzYWdlcyBoZXJlLgoJKGRmc19tb2RpZnlfdnRhYmxlcyk6IFJlbHkgb24gZGZzX3VubWFya2VkX3JlYWxfYmFzZXNfcXVldWVfcCB0bwoJZmluZCB0aGUgcmlnaHQgY29waWVzIG9mIHZpcnR1YWwgYmFzZXMuCgkoZml4dXBfdnRhYmxlX2RlbHRhczEpOiBSZW5hbWUgdG8gLi4uCgkoZGZzX2ZpeHVwX3Z0YWJsZV9kZWx0YXMpOiAuLi4gdGhpcy4gIEFkanVzdCB0byBoYW5kbGUgdmlydHVhbAoJYmFzZXMgYXMgcHJpbWFyeSBiYXNlcy4KCShmaXh1cF92dGFibGVfZGVsdGFzKTogUmVtb3ZlLgoJKG92ZXJyaWRlX29uZV92dGFibGUpOiBIYW5kbGUgdmlydHVhbCBiYXNlcyBhcyBwcmltYXJ5IGJhc2VzLgoJKG1lcmdlX292ZXJyaWRlcyk6IExpa2V3aXNlLgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IExpa2V3aXNlLgoJKGR1bXBfY2xhc3NfaGllcmFyY2h5KTogRHVtcCBwcmltYXJ5LW5lc3Mgb2YgYmFzZXMgYXMgd2VsbC4KCSogc2VhcmNoLmMgKG1hcmtfcHJpbWFyeV9iYXNlcyk6IFVzZSBhIHByZS1vcmRlciB0cmF2ZXJzYWwgdG8KCWhhbmRsZSBwcmltYXJ5IHZpcnR1YWwgYmFzZXMuCgkoZGZzX3NraXBfdmJhc2VzKTogTmV3IGZpdW5jdGlvbi4KCShleHBhbmRfdXBjYXN0X2ZpeHVwcyk6IEFkanVzdCB0byBoYW5kbGUgcHJpbWFyeSB2aXJ0dWFsIGJhc2VzLgoJKGZpeHVwX3ZpcnR1YWxfdXBjYXN0X29mZnNldHMpOiBMaWtld2lzZS4KCShmaXh1cF9hbGxfdmlydHVhbF91cGNhc3Rfb2Zmc2V0cyk6IExpa2V3aXNlLgoJKGRmc19maW5kX3ZiYXNlX2luc3RhbmNlcyk6IE5ldyBmdW5jdGlvbi4KCShmaW5kX3ZiYXNlX2luc3RhbmNlKTogTGlrZXdpc2UuCgoyMDAwLTAxLTExICBNdW1pdCBLaGFuICA8a2hhbkB4cmF5bGl0aC53aXNjLmVkdT4KCgkqIGxleC5jIChESVJfU0VQQVJBVE9SKTogRGVsZXRlIG1hY3JvLgoKMjAwMC0wMS0xMiAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBjb2Rlc291cmNlcnkuY29tPgoKICAgICAgICogZGVjbDIuYyAobGFuZ19kZWNvZGVfb3B0aW9uKTogSGFuZGxlIGF1dG9tYXRpYyBsaW5lIHdyYXBwaW5nCiAgICAgICBvcHRpb24uCgoyMDAwLTAxLTExICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZnJpZW5kLmMgKGRvX2ZyaWVuZCk6IERvbid0IHJlc29sdmUgc2NvcGVzIHdoZW4gcHJvY2Vzc2luZwoJdGVtcGxhdGUgZGVjbGFyYXRpb25zLCBldmVuIGlmIHRoZSBxdWFsaWZ5aW5nIHNjb3BlIGRvZXNuJ3QKCWludm9sdmUgdGVtcGxhdGUgcGFyYW1ldGVycy4KCjIwMDAtMDEtMTAgIE1hcmsgTWl0Y2hlbGwgIDxtaXRjaGVsbEBkdW1ibGVkb3JlLmNvZGVzb3VyY2VyeS5jb20+CgoJKiBjbGFzcy5jIChkZnNfbW9kaWZ5X3Z0YWJsZXNfcXVldWVfcCk6IFJlbW92ZS4KCShtb2RpZnlfYWxsX3Z0YWJsZXMpOiBVc2UgZGZzX3VubWFya2VkX3JlYWxfYmFzZXNfcXVldWVfcAoJYW5kIGRmc19tYXJrZWRfcmVhbF9iYXNlc19xdWV1ZV9wIGluc3RlYWQgb2YKCWRmc19tb2RpZnlfdnRhYmxlc19xdWV1ZV9wLgoKCSogY2xhc3MuYyAoYnVpbGRfdmJhc2VfcGF0aCk6IFNpbXBsaWZ5LgoJKGRmc19wcm9wYWdhdGVfYmluZm9fb2Zmc2V0cyk6IE5ldyBmdW5jdGlvbi4KCShwcm9wYWdhdGVfYmluZm9fb2Zmc2V0cyk6IFVzZSBpdC4KCShyZW1vdmVfYmFzZV9maWVsZCk6IFNpbXBsaWZ5LgoJKGRmc19zZXRfb2Zmc2V0X2Zvcl92YmFzZXMpOiBSZW1vdmUuCgkoZGZzX3NldF9vZmZzZXRfZm9yX3NoYXJlZF92YmFzZXMpOiBOZXcgZnVuY3Rpb24uCgkoZGZzX3NldF9vZmZzZXRfZm9yX3Vuc2hhcmVkX3ZiYXNlcyk6IExpa2V3aXNlLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogVXNlIHRoZW0uCgkobGF5b3V0X2Jhc2V0eXBlcyk6IERvbid0IGNhbGwgcHJvcGFnYXRlX2JpbmZvX29mZnNldHMuCgkqIHNlYXJjaC5jIChkZnNfZ2V0X3ZiYXNlX3R5cGVzKTogQ2xvbmUgY29tcGxldGVseSBmcmVzaCBiaW5mb3MKCWZvciB0aGUgdmJhc2VzLgoKCSogY2xhc3MuYyAoYnVpbGRfYmFzZV9maWVsZCk6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20gLi4uCgkoYnVpbGRfYmFzZV9maWVsZHMpOiAuLi4gaGVyZS4gIFVzZSBpdC4gIEFsbG9jYXRlIHByaW1hcnkgYmFzZXMKCWZpcnN0LCB1bmRlciB0aGUgbmV3IEFCSS4KCShnZXRfdnRhYmxlX2VudHJ5KTogUmVtb3ZlLgoJKHJlbW92ZV9iYXNlX2ZpZWxkKTogTmV3IGZ1bmN0aW9uLCBzcGxpdCBvdXQgZnJvbSAuLi4KCShyZW1vdmVfYmFzZV9maWVsZHMpOiAuLi4gaGVyZS4gIEFkanVzdCBzaW5jZSBwcmltYXJ5IGJhc2VzIGNvbWUKCWZpcnN0IHVuZGVyIHRoZSBuZXcgQUJJLgoKCSogY3AtdHJlZS5oIChleHBhbmRfZGlyZWN0X3Z0YmxzX2luaXQpOiBSZW1vdmUgZGVjbGFyYXRpb24uCgkoaW5pdGlhbGl6ZV92dGJsX3B0cnMpOiBOZXcgZnVuY3Rpb24uCgkoZXhwYW5kX2luZGlyZWN0X3Z0YmxzX2luaXQpOiBDaGFuZ2UgcHJvdG90eXBlLgoJKGNvbnZlcnRfcG9pbnRlcl90b192YmFzZSk6IERlY2xhcmUuCgkqIGluaXQuYyAoZXhwYW5kX2RpcmVjdF92dGJsc19pbml0KTogUmVtb3ZlLgoJKGRmc19pbml0aWFsaXplX3Z0YmxfcHRycyk6IE5ldyBmdW5jdGlvbi4KCShpbml0aWFsaXplX3Z0YmxfcHRycyk6IExpa2V3aXNlLgoJKGVtaXRfYmFzZV9pbml0KTogVXNlIGluaXRpYWxpemVfdnRibF9wdHJzLgoJKiBzZWFyY2guYyAoY29udmVydF9wb2ludGVyX3RvX3ZiYXNlKTogTWFrZSBpdCBnbG9iYWwuCgkoZXhwYW5kX2luZGlyZWN0X3Z0YmxzX2luaXQpOiBSZW1vdmUgdnRhYmxlIGluaXRpYWxpemF0aW9uIGNvZGUuCgkqIHNlbWFudGljcy5jIChzZXR1cF92dGJsX3B0cik6IFVzZSBpbml0aWFsaXplX3Z0YmxfcHRycy4KCgkqIGNsYXNzLmMgKGRmc19maW5pc2hfdnRibHMpOiBOZXcgZnVuY3Rpb24uCgkoZmluaXNoX3Z0YmxzKTogVXNlIGl0LgoJKGR1bXBfY2xhc3NfaGllcmFyY2h5KTogTmV3IGZ1bmN0aW9uLgoKCSogY3AtdHJlZS5oIChCSU5GT19QUklNQVJZX01BUktFRF9QKTogQ2hhbmdlIGRlZmluaXRpb24uCgkoQklORk9fVkJBU0VfUFJJTUFSWV9QKTogTmV3IG1hY3JvLgoJKEJJTkZPX1ZJUlRVQUxTKTogQWRkIHRvIGRvY3VtZW50YXRpb24uCgkoU0VUX0JJTkZPX1BSSU1BUllfTUFSS0VEX1ApOiBSZW1vdmUuCgkoQ0xFQVJfQklORk9fUFJJTUFSWV9NQVJLRURfUCk6IExpa2V3aXNlLgoJKGRmc19tYXJrX3ByaW1hcnlfYmFzZXNfcXVldWVfcCk6IExpa2V3aXNlLgoJKGRmc191bm1hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBOZXcgZnVuY3Rpb24uCgkoZGZzX21hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBMaWtld2lzZS4KCSogc2VhcmNoLmMgKGRmc19tYXJrX3ByaW1hcnlfYmFzZXMpOiBBZGp1c3QuCgkobWFya19wcmltYXJ5X2Jhc2VzKTogTGlrZXdpc2UuCgkoZ2V0X3NoYXJlZF92YmFzZV9pZl9ub3RfcHJpbWFyeSk6IE5ldyBmdW5jdGlvbi4KCShkZnNfdW5tYXJrZWRfcmVhbF9iYXNlc19xdWV1ZV9wKTogTGlrZXdpc2UuCgkoZGZzX21hcmtlZF9yZWFsX2Jhc2VzX3F1ZXVlX3ApOiBMaWtld2lzZS4KCShkZnNfZ2V0X3B1cmVfdmlydHVhbHMpOiBTaW1wbGlmeS4KCShnZXRfcHVyZV92aXJ0dWFscyk6IExpa2V3aXNlLgoKMjAwMC0wMS0xMCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogbGV4LmM6IEluY2x1ZGUgdG1fcC5oLgoKMjAwMC0wMS0wNyAgTmF0aGFuIFNpZHdlbGwgIDxzaWR3ZWxsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBsYW5nLXNwZWNzLmggKF9fR1hYX0FCSV9WRVJTSU9OKTogTmV3IHByZXByb2Nlc3NvciBtYWNyby4KCjIwMDAtMDEtMDYgIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogZGVjbDIuYyAoY29tZGF0X2xpbmthZ2UpOiBEb24ndCBzZXQgREVDTF9ERUZFUl9PVVRQVVQuCgkqIHB0LmMgKGluc3RhbnRpYXRlX2RlY2wpOiBEZWZlciBjb21kYXQgdGVtcGxhdGVzIHRoYXQgbWlnaHQgbm90IGJlCgluZWVkZWQuCgoJKiBjcC10cmVlLmggKERFQ0xfTkVFREVEX1ApOiBBbHNvIHRydWUgaWYgIURFQ0xfQ09NREFULgoJKiBkZWNsMi5jIChmaW5pc2hfdnRhYmxlX3ZhcmRlY2wpOiBEb24ndCBjaGVjayAhREVDTF9DT01EQVQuCgkoZmluaXNoX2ZpbGUpOiBMaWtld2lzZS4KCgkqIGRlY2wyLmMgKGltcG9ydF9leHBvcnRfY2xhc3MpOiBVbmRvIDEyLzE0IGNoYW5nZS4KCgkqIGVycm9yLmMgKGR1bXBfZGVjbCk6IG9wZXJhdG9yIG5ldywgbm90IG9wZXJhdG9ybmV3LgoKCSogY2xhc3MuYyAoZmllbGRfZGVjbF9jbXApOiBBIG5vbnR5cGUgaXMgImdyZWF0ZXIiIHRoYW4gYSB0eXBlLgoJKiBzZWFyY2guYyAobG9va3VwX2ZpZWxkXzEpOiBMb29rIGZvciB0aGUgbGFzdCBmaWVsZCB3aXRoIHRoZQoJZGVzaXJlZCBuYW1lLgoKMjAwMC0wMS0wNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AYWNtLm9yZz4KCgkqIGRlY2wyLmMgKGxvb2t1cF9hcmdfZGVwZW5kZW50KTogRGVhbCB3aXRoIEZOUyBub3QgYmVpbmcgYQoJRlVOQ1RJT05fREVDTC4KCjIwMDAtMDEtMDUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGFjbS5vcmc+CgoJKiB0eXBlY2suYyAoYnVpbGRfc3RhdGljX2Nhc3QpOiBEb24ndCBzdHJpcCB0YXJnZXQgcXVhbGlmaWVycwoJd2hlbiBjYXN0aW5nIGZyb20gYSBjbGFzcy4KCjIwMDAtMDEtMDQgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGNsYXNzLmMgKHdhcm5faGlkZGVuKTogSW5pdGlhbGl6ZSB2YXJpYWJsZSBgZm5kZWNsJy4KCjIwMDAtMDEtMDMgIFVscmljaCBEcmVwcGVyICA8ZHJlcHBlckBjeWdudXMuY29tPgoKCSogZGVjbC5jIChmbGFnX2lzb2M5eCk6IE5ldyB2YXJpYWJsZSB0byBiZSBhYmxlIHRvIHVzZSBjb2RlIGluCgljLWNvbW1vbi5jLiAgRm9yIG5vdyBhbHdheXMgemVyby4KCjIwMDAtMDEtMDMgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKENMQVNTVFlQRV9WQkFTRUNMQVNTRVMpOiBJbXByb3ZlIGRvY3VtZW50YXRpb24uCgkqIGNsYXNzLmMgKGxheW91dF9iYXNldHlwZXMpOiBEb24ndCBzZXQgQklORk9fSU5IRVJJVEFOQ0VfQ0hBSU4KCW9yIHVuc2hhcmVfYmFzZV9iaW5mb3MgZm9yIHZpcnR1YWwgYmFzZXMgaGVyZS4KCSogc2VhcmNoLmMgKGRmc19nZXRfdmJhc2VfdHlwZXMpOiBEbyBpdCBoZXJlLgoJKGdldF92YmFzZV90eXBlcyk6IEFkanVzdC4KCjIwMDAtMDEtMDIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjcC10cmVlLmggKENMQVNTVFlQRV9WRklFTERTKTogTW92ZSBkZWZpbml0aW9uLgoJKEJJTkZPX1BSSU1BUllfTUFSS0VEX1ApOiBVc2UgZmxhZyA1LgoJKFNFVF9CSU5GT19QUklNQVJZX01BUktFRF9QKTogTGlrZXdpc2UuCgkoQ0xFQVJfQklORk9fUFJJTUFSWV9NQVJLRURfUCk6IExpa2V3aXNlLgoJKHVubWFya19wcmltYXJ5X2Jhc2VzKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKHVubWFya2VkcCk6IERlY2xhcmUuCgkoZGZzX3ZiYXNlX3VubWFyayk6IExpa2V3aXNlLgoJKiBjbGFzcy5jIChkZXRlcm1pbmVfcHJpbWFyeV9iYXNlKTogUmV0dXJuIGltbWVkaWF0ZWx5IGlmIHRoZXJlCglhcmUgbm8gYmFzZSBjbGFzc2VzLiAgQ2FsbCBtYXJrX3ByaW1hcnlfYmFzZXMgaGVyZS4KCShtb2RpZnlfYWxsX2RpcmVjdF92dGFibGVzKTogUmVtb3ZlLgoJKG1vZGlmeV9hbGxfaW5kaXJlY3RfdnRhYmxlcyk6IFJlbW92ZS4KCShkZnNfbW9kaWZ5X3Z0YWJsZXNfcXVldWVfcCk6IE5ldyBmdW5jdGlvbi4KCShkZnNfbW9kaWZ5X3Z0YWJsZXMpOiBOZXcgZnVuY3Rpb24uCgkobW9kaWZ5X2FsbF92dGFibGVzKTogVXNlIHRoZW0uCgkoYnVpbGRfYmFzZV9maWVsZHMpOiBCdWlsZCBGSUVMRF9ERUNMcyBmb3IgcHJpbWFyeSB2aXJ0dWFsIGJhc2UKCWNsYXNzZXMuCgkoY3JlYXRlX3Z0YWJsZV9wdHIpOiBEb24ndCBjYWxsIGRldGVybWluZV9wcmltYXJ5X2Jhc2UgaGVyZS4KCShkZnNfbWFya19wcmltYXJ5X2Jhc2VzX2FuZF9zZXRfdmJhc2Vfb2Zmc2V0cyk6IFJlbmFtZSB0byAuLi4KCShkZnNfc2V0X29mZnNldF9mb3JfdmJhc2VzKTogLi4uIHRoaXMuCgkobGF5b3V0X3ZpcnR1YWxfYmFzZXMpOiBVc2UgaXQuCgkobGF5b3V0X2NsYXNzX3R5cGUpOiBDYWxsIGRldGVybWluZV9wcmltYXJ5X2Jhc2UgaGVyZS4KCSogc2VhcmNoLmMgKHVubWFya2VkcCk6IE1ha2UgaXQgZ2xvYmFsLgoJKHNoYXJlZF9tYXJrZWRfcCk6IFNpbXBsaWZ5LgoJKHNoYXJlZF91bm1hcmtlZF9wKTogTGlrZXdpc2UuCgkoZGZzX3ByaW1hcnlfYmFzZXNfcXVldWVfcCk6IFJlbW92ZS4KCShkZnNfdW5tYXJrX3ByaW1hcnlfYmFzZXMpOiBMaWtld2lzZS4KCSh1bm1hcmtfcHJpbWFyeV9iYXNlcyk6IExpa2V3aXNlLgoJKG1hcmtfcHJpbWFyeV9iYXNlcyk6IFNpbXBsaWZ5LgoJKGdldF9wdXJlX3ZpcnR1YWxzKTogRG9uJ3QgY2FsbCBtYXJrX3ByaW1hcnlfYmFzZXMgaGVyZS4KCShkZnNfdmJhc2VfdW5tYXJrKTogTmV3IGZ1bmN0aW9uLgoJKGdldF92YmFzZV90eXBlcyk6IFNpbXBsaWZ5LgoKCSogY2xhc3MuYyAoc3RydWN0IGJhc2VfaW5mbyk6IFJlbW92ZS4KCShkZXRlcm1pbmVfcHJpbWFyeV9iYXNlKTogVGFrZSBoYXNfdmlydHVhbF9wIHJhdGhlciB0aGFuIGEKCWJhc2VfaW5mbyBhcyBpbnB1dC4gIERvbid0IGNhbGN1bGF0ZSBtYXhfaGFzX3ZpcnR1YWwuCgkoZmluaXNoX3N0cnVjdF9iaXRzKTogUmVtb3ZlIG1heF9oYXNfdmlydHVhbCBhcmd1bWVudC4KCShjcmVhdGVfdnRhYmxlX3B0cik6IFJlbW92ZSBtYXhfaGFzX3ZpcnR1YWxfcCBhcmd1bWVudC4KCShsYXlvdXRfdmlydHVhbF9iYXNlcyk6IFJlbW92ZSBtYXggYXJndW1lbnQuCgkobGF5b3V0X2Jhc2V0eXBlcyk6IExpa2V3aXNlLgoJKGxheW91dF9jbGFzc190eXBlKTogUmVtb3ZlIG1heF9oYXNfdmlydHVhbF9wIGFyZ3VtZW50LgoJKGZpbmlzaF9zdHJ1Y3RfMSk6IFJlbW92ZSBtYXhfaGFzX3ZpcnR1YWwuCgoJKiBjcC10cmVlLmggKGRmc19tYXJrX3ByaW1hcnlfYmFzZXNfcXVldWVfcCk6IE5ldyBmdW5jdGlvbi4KCShsYXlvdXRfYmFzZXR5cGVzKTogUmVtb3ZlLgoJKiBjbGFzcy5jIChwcm9wYWdhdGVfYmluZm9fb2Zmc2V0cyk6IE1vdmVkIGhlcmUgZnJvbSB0cmVlLmMuCglVcGRhdGUgdG8gaGFuZGxlIHByaW1hcnkgdmlydHVhbCBiYXNlcy4KCShyZW1vdmVfYmFzZV9maWVsZHMpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBmcm9tCglsYXlvdXRfYmFzZXR5cGVzLgoJKGRmc19tYXJrX3ByaW1hcnlfYmFzZXNfYW5kX3NldF92YmFzZV9vZmZzZXRzKTogTmV3IGZ1bmN0aW9uLgoJKGxheW91dF92aXJ0dWFsX2Jhc2VzKTogTmV3IGZ1bmN0aW9uLCBzcGxpdCBvdXQgZnJvbQoJbGF5b3V0X2Jhc2V0eXBlcy4gIFVwZGF0ZSB0byBoYW5kbGUgcHJpbWFyeSB2aXJ0dWFsIGJhc2VzLgoJKGxheW91dF9iYXNldHlwZXMpOiBNb3ZlZCBoZXJlIGZyb20gdHJlZS5jLiAgVXNlCglyZW1vdmVfYmFzZV9maWVsZHMgYW5kIGxheW91dF92aXJ0dWFsX2Jhc2VzLgoJKiBzZWFyY2guYyAoZGZzX21hcmtfcHJpbWFyeV9iYXNlc19xdWV1ZV9wKTogTmV3IGZ1bmN0aW9uLgoJKG1hcmtfcHJpbWFyeV9iYXNlcyk6IFVzZSBpdC4KCSogdHJlZS5jIChDRUlMKTogUmVtb3ZlLgoJKHByb3BhZ2F0ZV9iaW5mb19vZmZzZXRzKTogUmVtb3ZlLgoJKGxheW91dF9iYXNldHlwZXMpOiBSZW1vdmUuCgoyMDAwLTAxLTAxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY3AtdHJlZS5oIChDTEFTU1RZUEVfTl9CQVNFQ0xBU1NFUyk6IFVzZSBCSU5GT19OX0JBU0VUWVBFUy4KCShCSU5GT19QUklNQVJZX01BUktFRF9QKTogTmV3IG1hY3JvLgoJKFNFVF9CSU5GT19QUklNQVJZX01BUktFRF9QKTogTGlrZXdpc2UuCgkoQ0xFQVJfQklORk9fUFJJTUFSWV9NQVJLRURfUCk6IExpa2V3aXNlLgoJKG1hcmtfcHJpbWFyeV9iYXNlcyk6IE5ldyBmdW5jdGlvbi4KCSh1bm1hcmtfcHJpbWFyeV9iYXNlcyk6IExpa2V3aXNlLgoJKiBzZWFyY2guYyAoZ2V0X2Fic3RyYWN0X3ZpcnR1YWxzXzEpOiBSZW1vdmUuCgkoZGZzX21hcmtfcHJpbWFyeV9iYXNlcyk6IE5ldyBmdW5jdGlvbi4KCShtYXJrX3ByaW1hcnlfYmFzZXMpOiBMaWtld2lzZS4KCShkZnNfdW5tYXJrX3ByaW1hcnlfYmFzZXMpOiBMaWtld2lzZS4KCSh1bm1hcmtfcHJpbWFyeV9iYXNlcyk6IExpa2V3aXNlLgoJKGRmc19nZXRfcHVyZV92aXJ0dWFscyk6IExpa2V3aXNlLgoKMjAwMC0wMS0wMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNwLXRyZWUuaCAoc2tpcF9ydHRpX3N0dWZmKTogQWRqdXN0IHByb3RvdHlwZS4KCSogY2xhc3MuYyAoc2tpcF9ydHRpX3N0dWZmKTogUmVvcmdhbml6ZSBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdmFsdWUuCgkobW9kaWZ5X29uZV92dGFibGUpOiBBZGp1c3QuCgkoZml4dXBfdnRhYmxlX2RlbHRhczEpOiBMaWtld2lzZS4KCShvdmVycmlkZV9vbmVfdnRhYmxlKTogTGlrZXdpc2UuCgkqIHNlYXJjaC5jIChnZXRfYWJzdHJhY3RfdmlydHVhbHNfMSk6IExpa2V3aXNlLgoJKGdldF9wdXJlX3ZpcnR1YWxzKTogTGlrZXdpc2UuCgkoZXhwYW5kX3VwY2FzdF9maXh1cHMpOiBMaWtld2lzZS4KCSogdHJlZS5jIChkZWJ1Z19iaW5mbyk6IExpa2V3aXNlLgoKCSogY2xhc3MuYyAoYnVpbGRfdnRhYmxlKTogRG9uJ3QgcmV0dXJuIGEgdmFsdWUuICBEb24ndCByZWJ1aWxkCgl2dGFibGVzIGZvciBiYXNlcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIGhhbmRsZWQuCgkocHJlcGFyZV9mcmVzaF92dGFibGUpOiBEb24ndCByZWJ1aWxkIHZ0YWJsZXMgZm9yIGJhc2VzIHRoYXQgaGF2ZQoJYWxyZWFkeSBiZWVuIGhhbmRsZWQuCgkobW9kaWZ5X29uZV92dGFibGUpOiBBZGp1c3QgYWNjb3JkaW5nbHkuCgkoZml4dXBfdnRhYmxlX2RlbHRhczEpOiBMaWtld2lzZS4KCShmaW5pc2hfc3RydWN0XzEpOiBMaWtld2lzZS4KCjIwMDAtMDEtMDEgIE1hcnRpbiB2LiBM9ndpcyAgPGxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KCgkqIGNhbGwuYyAoYnVpbGRfbmV3X21ldGhvZF9jYWxsKTogQWxzbyBjaGVjayBkZXN0cnVjdG9ycy4KClNlZSBDaGFuZ2VMb2cuMiBmb3IgZWFybGllciBjaGFuZ2VzLgo=