MjAwNC0xMi0yOSAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoKCSogZ2ZvcnRyYW4uaCAoZ2ZjX2Nhc2UpOiBmaXggdHlwbyBpbiBjb21tZW50LgoKMjAwNC0xMi0yNyAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfaXNoZnQpOiBDaGFuZ2UgdG8KCWxvZ2ljYWwJc2hpZnQuICBDYWxsIGZvbGQuICBSZW1vdmUgMC1iaXQgc2hpZnQgc2hvcnRjdXQuCgkoZ2ZjX2NvbnZfaW50cmluc2ljX2lzaGZ0Yyk6IENvbnZlcnQgZmlyc3QgYXJndW1lbnQgdG8gYXQgbGVhc3QKCTQgYnl0ZXMgYml0cy4gIENvbnZlcnQgMm5kIGFuZCAzcmQgYXJndW1lbnQgdG8gNCBieXRlcy4gIENvbnZlcnQKCXJlc3VsdCBpZiB3aWR0aChhcmcgMSkgPCA0IGJ5dGVzLiAgQ2FsbCBmb2xkLgoKCVBSIGZvcnRyYW4vMTkwMzIKCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19tb2QpOiBVcGRhdGUgY29tbWVudAoJaW4gZnJvbnQgb2YgZnVuY3Rpb24gdG8gbWF0Y2ggdGhlIHN0YW5kYXJkLiAgQ29ycmVjdCBoYW5kbGluZwoJb2YgTU9EVUxPLgoKMjAwNC0xMi0yNyAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2NzdF9pbnRfcG93ZXIpOiBPbmx5IGNoZWNrIGZvcgoJZmxhZ191bnNhZmVfbWF0aF9vcHRpbWl6YXRpb25zIGlmIHdlIGhhdmUgYSBmbG9hdCB0eXBlLgoKMjAwNC0xMi0yMyAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoKCSogZ2ZvcnRyYW4udGV4aTogRml4IHR5cG8uCgoyMDA0LTEyLTE2ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogdHJhbnMtaW50cmluc2ljLmMgKGJ1aWxkX2ZpeGJvdW5kX2V4cHIpOiBDbGFyaWZ5IGNvbW1lbnQsIGZpeAoJY29tbWVudCB0eXBvLgoKMjAwNC0xMi0xNSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE4OTkzCgkqIG1hdGNoLmMgKGdmY19tYXRjaF9pZik6IERvbid0IGV4cGxpY2l0bHkgc2tpcCBvcHRpb25hbCB3aGl0ZXNwYWNlLgoJKGdmY19tYXRjaF9udWxsaWZ5KTogTWFrZSBzdXJlIHRoYXQgJyknIGlzIGluIGZyb250IG9mIHRoZSBlbmQgb2YKCXN0YXRlbWVudC4KCgkqIHNjYW5uZXIuYyAoc2tpcF9maXhlZF9jb21tZW50cyk6IEZpeCB0eXBvIGluIGNvbW1lbnQgcHJlY2VkaW5nCglmdW5jdGlvbi4KCjIwMDQtMTItMTQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBnZm9ydHJhbi5oIChnZmNfZXhwci5mdW5jdGlvbi5uYW1lKTogTWFrZSBjb25zdC4KCShnZmNfaXJlc29sdmVfaW5pdF8xLCBnZmNfaXJlc29sdmVfZG9uZV8xKTogUmVtb3ZlLgoJKGdmY19nZXRfc3RyaW5nKTogVXBkYXRlIHByb3RvdHlwZS4KCSogaXJlc29sdmUuYzogSW5jbHVkZSB0cmVlLmguCgkoc3RyaW5nX25vZGUsIEhBU0hfU0laRSwgc3RyaW5nX2hlYWQsIGhhc2gpOiBSZW1vdmUuCgkoZ2ZjX2dldF9zdHJpbmcpOiBVc2UgdnNucHJpbnRmLCBnZXRfaWRlbnRpZmllci4KCShmcmVlX3N0cmluZ3MsIGdmY19pcmVzb2x2ZV9pbml0XzEsIGdmY19pcmVzb2x2ZV9kb25lXzEpOiBSZW1vdmUuCgkqIG1pc2MuYyAoZ2ZjX2luaXRfMSk6IERvbid0IGNhbGwgZ2ZjX2lyZXNvbHZlX2luaXRfMS4KCShnZmNfZG9uZV8xKTogRG9uJ3QgY2FsbCBnZmNfaXJlc29sdmVfZG9uZV8xLgoJKiBtb2R1bGUuYyAobWlvX2FsbG9jYXRlZF9zdHJpbmcpOiBUYWtlIGFuZCByZXR1cm4gY29uc3QgY2hhciAqLAoJaW5zdGVhZCBvZiBtb2RpZnlpbmcgY2hhcioqLgoJKG1pb19leHByKTogVXBkYXRlIHRvIG1hdGNoLgoJKiByZXNvbHZlLmMgKHB1cmVfZnVuY3Rpb24pOiBDb25zdGlmeSBuYW1lIGFyZ3VtZW50LgoJKHJlc29sdmVfZnVuY3Rpb24pOiBDb25zdGlmeSBuYW1lLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgoyMDA0LTEyLTEyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfYWxsLCBnZmNfcmVzb2x2ZV9hbnksIGdmY19yZXNvbHZlX2NvdW50LAoJZ2ZjX3Jlc29sdmVfY3NoaWZ0LCBnZmNfcmVzb2x2ZV9kb3RfcHJvZHVjdCwgZ2ZjX3Jlc29sdmVfZW9zaGlmdCwKCWdmY19yZXNvbHZlX21hdG11bCwgZ2ZjX3Jlc29sdmVfbWF4bG9jLCBnZmNfcmVzb2x2ZV9tYXh2YWwsCglnZmNfcmVzb2x2ZV9taW5sb2MsIGdmY19yZXNvbHZlX21pbnZhbCwgZ2ZjX3Jlc29sdmVfcGFjaywKCWdmY19yZXNvbHZlX3Byb2R1Y3QsIGdmY19yZXNvbHZlX3Jlc2hhcGUsIGdmY19yZXNvbHZlX3NoYXBlLAoJZ2ZjX3Jlc29sdmVfc3ByZWFkLCBnZmNfcmVzb2x2ZV9zdW0sIGdmY19yZXNvbHZlX3RyYW5zcG9zZSwKCWdmY19yZXNvbHZlX3VucGFjazogVXNlIFBSRUZJWC4KCjIwMDQtMTItMTIgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xODg2OQoJKiBtYXRjaC5jIChnZmNfbWF0Y2hfY29tbW9uKTogU2tpcCB3aGl0ZXNwYWNlLgoKMjAwNC0xMi0xMiAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoKCVBSIGZvcnRyYW4vMTY1ODEKCSogY2hlY2suYyAoZ2ZjX2NoZWNrX2lhbmQsIGdmY19jaGVja19pYmNsciwgZ2ZjX2NoZWNrX2liaXRzLAoJZ2ZjX2NoZWNrX2lic2V0LCBnZmNfY2hlY2tfaWVvciwgZ2ZjX2NoZWNrX2lvcik6IFJlbW92ZSBkZWZhdWx0CglpbnRlZ2VyIGtpbmQgY2hlY2s7IElzc3VlIGVycm9yIGZvciAtc3RkPWY5NSB3aGVuIG5lZWRlZC4KCSogaW50cmluc2ljLmMgKGFkZF9mdW5jdGlvbnMpOiBDaGFuZ2UgaWVvciBmcm9tIEdGQ19TVERfR05VIHRvCglHRkNfU1REX0Y5NS4KCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfaWFuZCwgZ2ZjX3Jlc29sdmVfaWVvciwgZ2ZjX3Jlc29sdmVfaW9yKToKCVByb21vdGUgYXJndW1lbnRzIHRvIHNhbWUga2luZC4KCjIwMDQtMTItMTIgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCVBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xNjIyMgoJKiByZXNvbHZlLmMgKGdmY19yZXNvbHZlX2l0ZXJhdG9yX2V4cHIpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX3Jlc29sdmVfaXRlcmF0b3IpOiBVc2UgaXQuICBBZGQgcmVhbF9vayBhcmd1bWVudC4gIENvbnZlcnQKCXN0YXJ0LCBlbmQgYW5kIHN0cmlkZSB0byBjb3JyZWN0IHR5cGUuCgkocmVzb2x2ZV9jb2RlKTogUGFzcyBleHRyYSBhcmd1bWVudC4KCSogYXJyYXkuYyAocmVzb2x2ZV9hcnJheV9saXN0KTogUGFzcyBleHRyYSBhcmd1bWVudC4KCSogZ2ZvcnRyYW4uaCAoZ2ZjX3Jlc29sdmUpOiBBZGQgcHJvdG90eXBlLgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19kbyk6IFJlbW92ZSByZWR1bmRhbnQgdHlwZSBjb252ZXJzaW9ucy4KCUhhbmRsZSByZWFsIHR5cGUgaXRlcmF0b3JzLgoKMjAwNC0xMi0xMSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE3MTc1CgkqIGlyZXNvbHZlLmMgKGdmY19yZXNvbHZlX3NjYWxlKTogQ29udmVydCAnSScgYXJndW1lbnQgaWYgbm90IG9mCglzYW1lIGtpbmQgYXMgQydzICdpbnQnLgoJKGdmY19yZXNvbHZlX3NldF9leHBvbmVudCk6IENvbnZlcnQgJ0knIGFyZ3VtZW50IGlmIG5vdCBvZiBraW5kIDQuCgoyMDA0LTEyLTA4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogaW50cmluc2ljLmMgKGdmY19jb252ZXJ0X3R5cGVfd2Fybik6IFByb3BhZ2F0ZSB0aGUgaW5wdXQgc2hhcGUKCXRvIHRoZSBvdXRwdXQgZXhwcmVzc2lvbi4KCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfY3NoaWZ0LCBnZmNfcmVzb2x2ZV9lb3NoaWZ0KTogU3VwcHJlc3MKCXdhcm5pbmcgY29udmVyc2lvbi4KCShnZmNfcmVzb2x2ZV9yZXNoYXBlKTogRm9yY2UgY29udmVydCBTSEFQRSBhbmQgT1JERVIgcGFyYW1ldGVycwoJdG8gaW5kZXgga2luZC4KCjIwMDQtMTItMDggIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xODgyNgoJKiByZXNvbHZlLmMgKHJlc29sdmVfY29kZSk6IEltcG9zZSBjb3JyZWN0IHJlc3RyaWN0aW9ucyBvbgoJYXNzaWduZWQgdmFyaWFibGUuCgoJKiBkZWNsLmMgKGdmY19tYXRjaF9lbmQpOiBVc2UgbG9jdXMgb2YgRU5EIHdoZW4gZW9zIGlzIGFuIGVycm9yLgoKMjAwNC0xMi0wMiAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoJUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNoZWNrLmMgKGdmY19jaGVja19mbHVzaCwgZ2ZjX2NoZWNrX2ZudW0pOiBOZXcgZnVuY3Rpb25zLgoJKGdmY19jaGVja19mc3RhdCwgZ2ZjX2NoZWNrX2ZzdGF0X3N1Yik6IE5ldyBmdW5jdGlvbnMuCgkoZ2ZjX2NoZWNrX3N0YXQsIGdmY19jaGVja19zdGF0X3N1Yik6IE5ldyBmdW5jdGlvbnMuCgkqIGdmb3J0cmFuLmggKEdGQ19JU1lNX0ZOVU0sR0ZDX0lTWU1fRlNUQVQsR0ZDX0lTWU1fU1RBVCk6IE5ldyBzeW1ib2xzCgkqIGludHJpbnNpYy5jIChhZGRfZnVuY3Rpb25zLGFkZF9zdWJyb3V0aW5lcyk6IEFkZCBmbHVzaCwgZm51bSwKCWZzdGF0LCBhbmQgc3RhdCB0byBpbnRyaW5zaWNzIHN5bWJvbCB0YWJsZXMuCgkqIGludHJpbnNpYy5oIChnZmNfY2hlY2tfZmx1c2gsIGdmY19yZXNvbHZlX3N0YXRfc3ViKTogQWRkIHByb3RvdHlwZXMuCgkoZ2ZjX3Jlc29sdmVfZnN0YXRfc3ViLCBnZmNfcmVzb2x2ZV9zdGF0KTogRGl0dG8uCgkqIGlyZXNvbHZlLmMgKGdmY19yZXNvbHZlX2ZudW0sIGdmY19yZXNvbHZlX2ZzdGF0KTogTmV3IGZ1bmN0aW9ucy4KCShnZmNfcmVzb2x2ZV9zdGF0LCBnZmNfcmVzb2x2ZV9mbHVzaCk6IE5ldyBmdW5jdGlvbnMuCgkoZ2ZjX3Jlc29sdmVfc3RhdF9zdWIsZ2ZjX3Jlc29sdmVfZnN0YXRfc3ViKTogTmV3IGZ1bmN0aW9ucwoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uKTogQWRkIG5ldyBpbnRyaW5zaWNzLgoKMjAwNC0xMi0wMiAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoKCSogaW50cmluc2ljLmM6IEZpeCBhbmQgYWRkIGNvbW1lbnRzLCBmaXggZnVuY3Rpb24gZGVjbGFyYXRpb25zCgkoT1BUSU9OQUwsUkVRVUlSRUQpOiBOZXcgc3ltYm9scwoJKGFkZF9mdW5jdGlvbnMsYWRkX3N1YnJvdXRpbmVzKTogVXNlIHN5bWJvbHMKCShnbXAuaCk6IFJlbW92ZSB1bnVzZWQgaW5jbHVkZQoKMjAwNC0xMS0yNSAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBmOTUtbGFuZy5jLCBnZm9ydHJhbnNwZWMuYywgdHJhbnMtZGVjbC5jOiBBdm9pZCBgIGFzIGxlZnQgcXVvdGUKCWluIGRpYWdub3N0aWNzLgoKMjAwNC0xMS0yNCAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogb3B0aW9ucy5jIChnZmNfcG9zdF9vcHRpb25zKTogRG9uJ3QgY2xlYXIgZmxhZ19pbmxpbmVfZnVuY3Rpb25zLgoKMjAwNC0xMS0yMCAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoKCSogY2hlY2suYyAoZ2ZjX2NoZWNrX2dldGN3ZF9zdWIpOiBGaXggc2VnIGZhdWx0LgoKCSogY2hlY2suYyAoZ2ZjX2NoZWNrX2V4aXQsZ2ZjX2NoZWNrX3VtYXNrLGdmY19jaGVja191bWFza19zdWIsCglnZmNfY2hlY2tfdW5saW5rLGdmY19jaGVja191bmxpbmtfc3ViKTogTmV3IGZ1bmN0aW9ucwoJKiBnZm9ydHJhbi5oIChHRkNfSVNZTV9VTUFTSyxHRkNfSVNZTV9VTkxJTkspOiBOZXcgc3ltYm9scwoJKiBpbnRyaW5zaWMuYyAoYWRkX2Z1bmN0aW9ucyxhZGRfc3Vicm91dGluZXMpOiBBZGQgdW1hc2ssIHVubGluaywKCWV4aXQgdG8gaW50cmluc2ljcyBzeW1ib2wgdGFibGVzLgoJKiBpbnRyaW5zaWMuaCAoZ2ZjX2NoZWNrX3VtYXNrLGdmY19jaGVja191bmxpbmssZ2ZjX2NoZWNrX2V4aXQsCglnZmNfY2hlY2tfdW1hc2tfc3ViLGdmY19jaGVja191bmxpbmtfc3ViLGdmY19yZXNvbHZlX3VtYXNrLAoJZ2ZjX3Jlc29sdmVfdW5saW5rLGdmY19yZXNvbHZlX2V4aXQsZ2ZjX3Jlc29sdmVfdW1hc2tfc3ViLAoJZ2ZjX3Jlc29sdmVfdW5saW5rX3N1Yik6IEFkZCBhbmQgc29ydCBwcm90b3R5cGVzLgoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV91bWFzayxnZmNfcmVzb2x2ZV91bmxpbmssZ2ZjX3Jlc29sdmVfZXhpdCwKCWdmY19yZXNvbHZlX3VtYXNrX3N1YixnZmNfcmVzb2x2ZV91bmxpbmtfc3ViKTogTmV3IGZ1bmN0aW9ucwoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uKTogVXNlIHN5bWJvbHMKCjIwMDQtMTEtMTYgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xMzAxMAoJKiB0cmFucy1hcnJheS5jIChnZmNfdHJhbnNfYWxsb2NhdGVfdGVtcF9hcnJheSk6IFVzZSBnZmNfZ2V0X2R0eXBlLgoJKGdmY19hcnJheV9pbml0X3NpemUsIGdmY19jb252X2V4cHJfZGVzY3JpcHRvcik6IERpdHRvLgoJKiB0cmFucy10eXBlcy5jIChnZmNfZ2V0X2R0eXBlKTogQWNjZXB0IGFycmF5IHR5cGUgcmF0aGVyIHRoYW4gZWxlbWVudAoJdHlwZS4KCShnZmNfZ2V0X25vZGVzY19hcnJheV90eXBlKTogRG9uJ3Qgc2V0IEdGQ19UWVBFX0FSUkFZX0RUWVBFLgoJKGdmY19nZXRfYXJyYXlfdHlwZV9ib3VuZHMpOiBEaXR0by4KCShnZmNfZ2V0X2Rlcml2ZWRfdHlwZSk6IFJlY3Vyc2UgaW50byBkZXJpdmVkIHR5cGUgcG9pbnRlcnMuCgkqIHRyYW5zLXR5cGVzLmggKGdmY19nZXRfZHR5cGUpOiBBZGQgcHJvdG90eXBlLgoJKiB0cmFucy5oIChHRkNfVFlQRV9BUlJBWV9EVFlQRSk6IEFkZCBjb21tZW50LgoKMjAwNC0xMS0xNSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19nZXRfZHR5cGUpOiBSZW1vdmUgb2Jzb2xldGUgVE9ETy4KCjIwMDQtMTEtMTAgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xODM3NQoJKiB0cmFucy1leHByLmMgKGdmY190cmFuc19zdWJhcnJheV9hc3NpZ24pOiBGcmVlIHNoYXBlIGJlZm9yZSBzcy4KCSogdHJhbnMtaW8uYyAodHJhbnNmZXJfYXJyYXlfY29tcG9uZW50KTogRGl0dG8uCgoyMDA0LTExLTEwICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogaW52b2tlLnRleGk6IEZpeCB0eXBvLgoKMjAwNC0xMS0wOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGFyaXRoLmMsIGFycmF5LmMsIGRlY2wuYywgZXhwci5jLCBmOTUtbGFuZy5jLCBnZm9ydHJhbi5oLAoJZ2ZvcnRyYW5zcGVjLmMsIGludGVyZmFjZS5jLCBpbnRyaW5zaWMuYywgaXJlc29sdmUuYywgbWF0Y2guYywKCW1vZHVsZS5jLCBwYXJzZS5jLCBwYXJzZS5oLCBwcmltYXJ5LmMsIHJlc29sdmUuYywgc2Nhbm5lci5jLAoJdHJhbnMtYXJyYXkuYywgdHJhbnMtYXJyYXkuaCwgdHJhbnMtZXhwci5jLCB0cmFucy1pbnRyaW5zaWMuYywKCXRyYW5zLWlvLmMsIHRyYW5zLXN0bXQuYywgdHJhbnMuaDogRml4IGNvbW1lbnQgZm9ybWF0dGluZy4KCjIwMDQtMTEtMDYgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xODAyMwoJKiBpby5jIChyZXNvbHZlX3RhZyk6IFRpZ2h0ZW4gdXAgZXhjZXB0aW9uIGZvciBhc3NpZ25lZCBGT1JNQVQuCgoyMDA0LTExLTA2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZ2ZvcnRyYW5zcGVjLmM6IFJlcGxhY2UgR05VIENDIHdpdGggR0NDLgoKMjAwNC0xMS0wNSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGdmb3J0cmFuc3BlYy5jIChsYW5nX3NwZWNpZmljX2RyaXZlcik6IENoYW5nZSB5ZWFyIHRvIDIwMDQuCgoyMDA0LTExLTA1ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTgxMTEKCSogIHRyYW5zLWRlY2wuYyAoY3JlYXRlX2Z1bmN0aW9uX2FyZ2xpc3QpOiBTZXQgREVDTF9BUlRJRklDSUFMIGZvcgoJaGlkZGVuIHBhcmFtZXRlcnMuCgoyMDA0LTExLTA1ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTUxNjQKCSogdHJhbnMtZGVjbC5jIChnZmNfZmluaXNoX3Zhcl9kZWNsKTogRG9uJ3QgZGVjbGFyZSBhcmd1bWVudHMgdG8KCW1vZHVsZSBwcm9jZWR1cmVzIGFzIGlmIHRoZXkgd2VyZSBtb2R1bGUgdmFyaWFibGVzLgoKMjAwNC0xMS0wMyAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE3NTM1CglQUiBmb3J0cmFuLzE3NTgzCglQUiBmb3J0cmFuLzE3NzEzCgkqIG1vZHVsZS5jICh3cml0ZV9zeW1ib2wxKTogU2V0IG1vZHVsZV9uYW1lIGZvciBkdW1teSBhcmd1bWVudHMuCgoyMDA0LTExLTAyICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogaW50cmluc2ljLmMgKGNoZWNrX2ludHJpbnNpY19zdGFuZGFyZCk6IEluY2x1ZGUgZXJyb3IgbG9jdXMuCglSZW1vdmUgVkxBLgoJKGdmY19pbnRyaW5zaWNfZnVuY19pbnRlcmZhY2UsIGdmY19pbnRyaW5zaWNfc3ViX2ludGVyZmFjZSk6IFBhc3MKCWxvY3VzIHRvIGNoZWNrX2ludHJpbnNpY19zdGFuZGFyZC4KCjIwMDQtMTAtMzEgIEphbm5lIEJsb21xdmlzdCAgPGpibG9tcXZpQGNjLmh1dC5maT4KCglQUiBmb3J0cmFuLzE3NTkwCgkqIGdmb3J0cmFuLmg6IENoYW5nZSBHRkNfU1REXyogZmxhZ3MgdG8gbW9yZSBhcHByb3ByaWF0ZQoJb25lcy4gKHN0cnVjdCBnZmNfaW50cmluc2ljX2lzeW0pOiBBZGQgZmllbGQgZm9yIHN0YW5kYXJkLiAoc3RydWN0CglnZmNfb3B0aW9uX3QpOiBBZGQgZmllbGQgZm9yIHdhcm5pbmcgYWJvdXQgdXNlIG9mIG5vbnN0YW5kYXJkCglpbnRyaW5zaWNzLgoJKiBpbnRyaW5zaWMuYyAoYWRkX3N5bSk6IEFkZCBwYXJhbWV0ZXIgZm9yIHN0YW5kYXJkIHZlcnNpb24sIGNoZWNrCgl0aGlzIGFnYWluc3QgY3VycmVudCBzdGFuZGFyZC4KCShhZGRfc3ltXzApOiBQYXNzIHN0YW5kYXJkIHBhcmFtZXRlciB0byBhZGRfc3ltLgoJKGFkZF9zeW1fMSwgYWRkX3N5bV8wcywgYWRkX3N5bV8xcywgYWRkX3N5bV8xbSwgYWRkX3N5bV8yKTogRGl0dG8uCgkoYWRkX3N5bV8ycywgYWRkX3N5bV8zLCBhZGRfc3ltXzNtbCwgYWRkX3N5bV8zcmVkLCBhZGRfc3ltXzNzKTogRGl0dG8uCgkoYWRkX3N5bV80LCBhZGRfc3ltXzRzLCBhZGRfc3ltXzUsIGFkZF9zeW1fNXMpOiBEaXR0by4KCShtYWtlX2dlbmVyaWMpOiBBZGQgcGFyYW1ldGVyIGZvciBzdGFuZGFyZCwgY2hlY2sgdGhpcwoJYWdhaW5zdCBjdXJyZW50bHkgc2VsZWN0ZWQgc3RhbmRhcmQuCgkoYWRkX2Z1bmN0aW9ucywgYWRkX3N1YnJvdXRpbmVzKTogQWRkIHBhcmFtZXRlciB0byB0ZWxsIHdoaWNoCglzdGFuZGFyZCBhbiBpbnRyaW5zaWMgYmVsb25ncyB0by4KCShjaGVja19pbnRyaW5zaWNfc3RhbmRhcmQpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2ludHJpbnNpY19mdW5jX2ludGVyZmFjZSk6IEFkZCBjYWxsIHRvIGNoZWNrX2ludHJpbnNpY19zdGFuZGFyZC4KCShnZmNfaW50cmluc2ljX3N1Yl9pbnRlcmZhY2UpOiBEaXR0by4KCSogbGFuZy5vcHQ6IEFkZCBXbm9uc3RkLWludHJpbnNpY3Mgb3B0aW9uLgoJKiBvcHRpb25zLmMgKGdmY19pbml0X29wdGlvbnMpOiBDaGFuZ2UgdG8gdXNlIG5ldyBHRkNfU1REXyogZmxhZ3MsCglpbml0IG5ldyB3YXJuaW5nLgoJKHNldF9XYWxsKTogQWRkIHdhcm5pbmcgYWJvdXQgbm9uc3RkIGludHJpbnNpY3MuCgkoZ2ZjX2hhbmRsZV9vcHRpb24pOiBDaGFuZ2UgdG8gdXNlIG5ldyBHRkNfU1REXyogZmxhZ3MsCgloYW5kbGUgbmV3IHdhcm5pbmcuCgkqIGludm9rZS50ZXhpOiBVcGRhdGUgbWFudWFsIHRvIGluY2x1ZGUgLVdub25zdGQtaW50cmluc2ljcy4KCjIwMDQtMTAtMzAgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogZjk1LWxhbmcuYyAobGFuZ190cmVlX25vZGUpOiBBZGQgY2hhaW5fbmV4dCB0byBiZSB0aGUgVFJFRV9DSEFJTi4KCjIwMDQtMTAtMzAgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBzaW1wbGlmeS5jICh0d29zX2NvbXBsZW1lbnQpOiBDYWxjdWxhdGUgbWFzayBpbiBHTVAgYXJpdGhtZXRpYy4KCjIwMDQtMTAtMzAgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy5jIChnZmNfdHJhbnNfY29kZSk6IFNldCBnbG9iYWwgbG9jdXMgYWZ0ZXIgcmVjdXJzaW5nLiBGaXgKCWNvbW1lbnQgdHlwby4KCjIwMDQtMTAtMzAgIENhbnF1biBZYW5nICA8Y2FucXVuQG51ZHQuZWR1LmNuPgoKCSogY2hlY2suYyAoZ2ZjX2NoZWNrX3JhbmQpOiBBbGxvdyBtaXNzaW5nIG9wdGlvbmFsIGFyZ3VtZW50LgoJKGdmY19jaGVja19pcmFuZCk6IERpdHRvLgoJKiBpbnRyaW5zaWMuYyAoYWRkX2Z1bmN0aW9ucyk6IFNldCBhcmcgb3B0aW9uYWwgZmxhZyBmb3Ige2ksfXJhbmQuCgoyMDA0LTEwLTI4ICBTY290dCBSb2JlcnQgTGFkZCAgPHNjb3R0LmxhZGRAY295b3RlZ3VsY2guY29tPgoKCVBSIGZvcnRyYW4vMTM0OTAsIFBSIGZvcnRyYW4vMTc5MTIKCSogZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaDogQWRkZWQgcGVkYW50aWNfbWluX2ludCB0byBnZmNfaW50ZWdlcl9pbmZvCgkqIGdjYy9mb3J0cmFuL2dmb3J0cmFuLmg6IEFkZGVkIEFSSVRIX0FTWU1NRVRSSUMgdG8gYXJpdGgKCSogZ2NjL2ZvcnRyYW4vYXJpdGguYzogQWRkZWQgc3VwcG9ydCBmb3IgYW4gImFzeW1tZXRyaWMgaW50ZWdlciIKCXdhcm5pbmcgd2hlbiBjb21waWxpbmcgd2l0aCBwZWRhbnRpYy4KCSogZ2NjL2ZvcnRyYW4vYXJpdGguYzogU2V0IG1pbmltdW0gaW50ZWdlciB2YWx1ZXMgdG8gcmVmbGVjdAoJcmVhbGl0aWVzIG9mIHR3bydzIGNvbXBsZW1lbnQgc2lnbmVkIGludGVnZXJzLiBBZGRlZAoJcGVkYW50aWMgbWluaW11bS4KCjIwMDQtMTAtMTcgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogTWFrZS1sYW5nLmluIChGOTVfQURESVRJT05BTF9PQkpTKTogS2lsbC4KCShmOTUxKTogRG8gbm90IGRlcGVuZCBvbiBGOTVfQURESVRJT05BTF9PQkpTIGFuZCBkb24ndAoJbGluayBpdCBpbi4KCjIwMDQtMTAtMTQgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy1kZWNsLmMgKGdlbmVyYXRlX2xvY2FsX2RlY2wpOiBTaW1wbGlmeSBsb2dpYywgZml4IGNvbW1lbnQKCXR5cG8uCgkoZ2ZjX2dlbmVyYXRlX2Z1bmN0aW9uX2NvZGUpOiBGaXggZm9ybWF0dGluZyBpc3N1ZS4KCjIwMDQtMTAtMTAgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBtb2R1bGUuYzogRml4IGZvcm1hdHRpbmcgaXNzdWVzLgoKMjAwNC0xMC0wOSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIG1vZHVsZS5jIChtaW9faW50ZXJmYWNlX3Jlc3QpOiBTZXQgd2hlcmUgbWVtYmVyIG9mIGludGVyZmFjZQoJd2hpbGUgbG9hZGluZy4KCjIwMDQtMTAtMDggIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIGZvcnRyYW4vMTc5MDEKCSogb3B0aW9ucy5jIChnZmNfaGFuZGxlX29wdGlvbik6IEFkZCBicmVhayBhZnRlciBoYW5kaW5nIHRoZQoJSi9NIG9wdGlvbi4KCjIwMDQtMTAtMDggIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2hjbHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBhcml0aC5jOiBGaXggZm9ybWF0dGluZyBpc3N1ZXMuCgoyMDA0LTEwLTA3ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTc2NzYKCSogcmVzb2x2ZS5jIChyZXNvbHZlX29wZXJhdG9yKTogVXNlIGNvcnJlY3Qgb3BlcmF0b3IgbmFtZSBpbiBtZXNzYWdlLgoKMjAwNC0xMC0wNyAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHByaW1hcnkuYyAobWF0Y2hfYm96X2NvbnN0YW50KTogQWxsb3cga2luZCBwYXJhbWV0ZXIgc3VmZml4ZXMuCglNb3ZlIHN0YW5kYXJkIHdhcm5pbmcgZnVydGhlciB0byB0aGUgZnJvbnQuCgoyMDA0LTEwLTA3ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJhbnMtc3RtdC5jOiBGaXggYSBjb21tZW50IHR5cG8uCgoyMDA0LTEwLTA3ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTc2NzgKCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5zX2RlZmVycmVkX2FycmF5KTogTGVhdmUgdXNlIGFzc29jaWF0ZWQKCXZhcmlhYmxlcyBhbG9uZS4KCjIwMDQtMTAtMDYgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNzU2OAoJKiBzaW1wbGlmeS5jICh0d29zX2NvbXBsZW1lbnQpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX3NpbXBsaWZ5X2lzaGZ0LCBnZmNfc2ltcGxpZnlfaXNoZnRjKTogUmV2aXNlLgoKCSogc2ltcGxpZnkuYyAoZ2ZjX3NpbXBsaWZ5X2Ficyk6IFVzZSBtcGZyX2h5cG90IGZvciBDQUJTLgoKMjAwNC0xMC0wNiAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLXN0bXQuYyAoZ2ZjX3RyYW5zX3NpbXBsZV9kbyk6IE5ldyBmdW5jdGlvbi4KCShnZmNfdHJhbnNfZG8pOiBVc2UgaXQuICBFdmFsdWF0ZSBpdGVyYXRpb24gYm91bmRzIGJlZm9yZSBlbnRlcmluZwoJbG9vcC4gIFVwZGF0ZSBjb21tZW50cy4KCjIwMDQtMTAtMDQgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNzI4MwoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9wYWNrKTogQ2hvb3NlIGZ1bmN0aW9uIGRlcGVuZGluZyBpZiBtYXNrCglpcyBzY2FsYXIuCgoJUFIgZm9ydHJhbi8xNzYzMQoJKiBpbnRyaW5zaWMuYyAoYWRkX3N5bV81KTogUmVtb3ZlLgoJKGFkZF9zdWJyb3V0aW5lcyk6IEFkZCByZXNvbHV0aW9uIGZ1bmN0aW9uIGZvciBNVkJJVFMuCgkqIGludHJpbnNpYy5oIChnZmNfcmVzb2x2ZV9tdmJpdHMpOiBEZWNsYXJlIHJlc29sdXRpb24gZnVuY3Rpb24gZm9yCglNVkJJVFMKCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfbXZiaXRzKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19yZXNvbHZlX3JhbmRvbV9udW1iZXIpOiBSZW1vdmUgZW1wdHkgbGluZSBhdCBlbmQgb2YgZnVuY3Rpb24uCgoJKiB0cmFucy1jb25zdC5jIChnZmNfYnVpbGRfY3N0cmluZ19jb25zdCk6IE5ldyBmdW5jdGlvbi4KCShnZmNfaW5pdF9jc3QpOiBVc2UgbmV3IGZ1bmN0aW9uLgoJKiB0cmFucy1jb25zdC5oIChnZmNfYnVpbGRfY3N0cmluZ19jb25zdCk6IEFkZCBwcm90b3R5cGUuCgkqIHRyYW5zLWlvLmMgKHNldF9zdHJpbmcsIHNldF9lcnJvcl9sb2N1cyk6IFVzZSBuZXcgZnVuY3Rpb24uCgkqIHRyYW5zLXN0bXQuYyAoZ2ZjX3RyYW5zX2dvdG8pOiBVc2UgbmV3IGZ1bmN0aW9uLgoKCVBSIGZvcnRyYW4vMTc3MDgKCSogcGFyc2UuYyAoYWNjZXB0X3N0YXRlbWVudCk6IERvbid0IHRyZWF0IEVORCBETyBsaWtlIEVORCBJRiBhbmQKCUVORCBTRUxFQ1QuCgkocGFyc2VfZG9fYmxvY2spOiBHZW5lcmF0ZSBwb3NzaWJsZSBFTkQgRE8gbGFiZWwgaW5zaWRlIEVORCBETwoJYmxvY2suCgoJUFIgZm9ydHJhbi8xNzc3NgoJKiBjaGVjay5jIChnZmNfY2hlY2tfc3lzdGVtX3N1Yik6IE5ldyBmdW5jdGlvbi4KCSogZ2ZvcnRyYW4uaCAoZ2ZjX2dlbmVyaWNfaXN5bV9pZCk6IEFkZCBHRkNfSVNZTV9TWVNURU0uCgkqIGludHJpbnNpYy5jIChhZGRfZnVuY3Rpb25zKTogQWRkICdzeXN0ZW0nLgoJKGFkZF9zdWJyb3V0aW5lcyk6IEFkZCAnc3lzdGVtJy4KCSogaW50cmluc2ljLmggKGdmY19jaGVja19ldGltZV9zdWIsIGdmY19jaGVja19nZXRjd2Rfc3ViKToKCU1vdmUgcHJvdG90eXBlcyB0byBvdGhlciBzdWJvcnV0aW5lcy4KCShnZmNfY2hlY2tfc3lzdGVtX3N1YiwgZ2ZjX3Jlc29sdmVfc3lzdGVtLCBnZmNfcmVzb2x2ZV9zeXN0ZW1fc3ViKToKCUFkZCBwcm90b3R5cGUuCgkoZ2ZjX3Jlc29sdmVfc3lzdGVtX2Nsb2NrKTogRml4IGZvcm1hdHRpbmcgb2YgcHJvdG90eXBlLgoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9zeXN0ZW0sIGdmY19yZXNvbHZlX3N5c3RlbV9zdWIpOiBOZXcKCWZ1bmN0aW9ucy4KCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19mdW5jdGlvbik6IERlYWwgd2l0aAoJR0ZDX0lTWU1fU1lTVEVNLgoKMjAwNC0xMC0wNCAgRXJpayBTY2huZXR0ZXIgIDxzY2huZXR0ZXJAYWVpLm1wZy5kZT4KCgkqIHNjYW5uZXIuYyAocHJlcHJvY2Vzc29yX2xpbmUpOiBBY2NlcHQgcHJlcHJvY2Vzc29yIGxpbmVzIHdpdGhvdXQKCWZpbGUgbmFtZXMuICBDaGVjayBmaWxlIG5hbWVzIGZvciBjbG9zaW5nIHF1b3Rlcy4gIEhhbmRsZSBlc2NhcGVkCglxdW90ZXMgaW4gZmlsZSBuYW1lcy4KCjIwMDQtMTAtMDQgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CglQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX2NvbnZfZXhwcl9kZXNjcmlwdG9yKTogQ2hlY2sgZm9yIHN1YnN0cml1bmdzLgoJVXNlIGdmY19nZXRfZXhwcl9jaGFybGVuLgoJKiB0cmFucy1leHByLmMgKGdmY19nZXRfZXhwcl9jaGFybGVuKTogTmV3IGZ1bmN0aW9uLgoJKiB0cmFucy5oIChnZmNfZ2V0X2V4cHJfY2hhcmxlbik6IEFkZCBwcm90b3R5cGUuCgoyMDA0LTEwLTA0ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJhbnMtaW50cmluc2ljLmM6IEZpeCBhIGNvbW1lbnQgdHlwby4KCjIwMDQtMTAtMDMgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBzaW1wbGlmeS5jIChyYW5nZV9jaGVjayk6IFJlbW92ZSBibGFuayBsaW5lIGF0IGJlZ2lubmluZyBvZiBmdW5jdGlvbi4KCShnZmNfc2ltcGxpZnlfZGludCk6IFNhbWUgYXQgZW5kIG9mIGZ1bmN0aW9uLgoJKGdmY19zaW1wbGlmeV9leHBvbmVudCwgZ2ZjX3NpbXBsaWZ5X2ZyYWN0aW9uKTogU2ltcGxpZnkgY2FsY3VsYXRpb25zLgoJKGdmY19zaW1wbGlmeV9ib3VuZCk6IEZpeCBpbmRlbnRhdGlvbi4KCShnZmNfc2ltcGxpZnlfbG9nMTApOiBTaW1wbGlmeSBjYWxjdWxhdGlvbi4KCShnZmNfc2ltcGxpZnlfbWluLCBnZmNfc2ltcGxpZnlfbWF4KTogUmVtb3ZlIGJsYW5rIGxpbmUgYXQgYmVnaW5uaW5nCglvZiBmdW5jdGlvbi4KCShnZmNfc2ltcGxpZnlfbmVhcmVzdCk6IFNhbWUgYXQgZW5kIG9mIGZ1bmN0aW9uLgoJKGdmY19zaW1wbGlmeV9uaW50LCBnZmNfc2ltcGxpZnlfaWRuaW50KTogU2FtZSBhdCBiZWdpbm5pbmcgb2YKCWZ1bmN0aW9uLgoJKGdmY19zaW1wbGlmeV9ycnNwYWNpbmcsIGdmY19zaW1wbGlmeV9zZXRfZXhwb25lbnQsCglnZmNfc2ltcGxpZnlfc3BhY2luZyk6IFNpbXBsaWZ5IGNhbHVsYXRpb25zLgoKMjAwNC0xMC0wMyAgRmVuZyBXYW5nICA8ZmVuZ3dhbmdAbnVkdC5lZHUuY24+CgoJKiB0cmFucy1pbnRyaW5zaWMuYzogRml4IGNvbW1lbnRzIG9uIHNwYWNpbmcgYW5kIHJyc3BhY2luZwoJKGdmY19jb252X2ludHJpbnNpY19ycnNwYWNpbmcpOiBBZGQgZm9sZCBvbiBjb25zdGFudCB0cmVlcy4KCjIwMDQtMTAtMDEgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIGY5NS1sYW5nLmMgKGdmY19leHBhbmRfZnVuY3Rpb24pOiBVcGRhdGUgY2FsbCBvZgoJdHJlZV9yZXN0X29mX2NvbXBpbGF0aW9uLgoJKiB0cmFucy1kZWNsLmMgKGdmY19nZW5lcmF0ZV9jb25zdHJ1Y3RvcnMpOiBMaWtld2lzZS4KCjIwMDQtMDktMjYgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy1pbnRyaW5zaWMuYzogQ29tbWVudCBmaXhlcy4KCjIwMDQtMDktMjUgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBkZWNsLmMgKGFkZF9pbml0X2V4cHJfdG9fc3ltLCB2YXJpYWJsZV9kZWNsKTogQ29tbWVudCBmaXhlcy4KCjIwMDQtMDktMjQgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy10eXBlcy5jIChnZmNfcmV0dXJuX2J5X3JlZmVyZW5jZSk6IFJlbW92ZSBzdXBlcmZsdW91cwoJYXNzZXJ0aW9uLgoKCSogaW50cmluc2ljLmggKGdmY19yZXNvbHZlX2dldGN3ZCk6IFVwZGF0ZSBwcm90b3R5cGUuCgkqIGlyZXNvbHZlLmMgKGdmY19yZXNvbHZlX2dldGN3ZCk6IEFkZCBzZWNvbmQgYXJndW1lbnQgdG8gZnVuY3Rpb24uCgoJUFIgZm9ydHJhbi8xNzYxNQoJKiB0cmFucy1leHByLmMgKGdmY190cmFuc19hcnJheWZ1bmNfYXNzaWduKTogTG9vayBhdCByZXNvbHZlZAoJZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIHJldHVybiB0eXBlLgoKMjAwNC0wOS0yMCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogdHJhbnMtZGVjbC5jIChidWlsZF9lbnRyeV90aHVua3MpOiBGaW5hbGl6ZSB0aGUgZnVuY3Rpb247IGRvIG5vdCBsb3dlcgoJdHJlZS4KCShnZmNfZ2VuZXJhdGVfZnVuY3Rpb25fY29kZSk6IExpa2V3aXNlLgoKMjAwNC0wOS0yMCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE1OTU3CgkqIHNpbXBsaWZ5LmMgKGdmY19zaW1wbGlmeV9yZXNoYXBlKTogU2V0IHNoYXBlIG9mIHJldHVybiB2YWx1ZQoJY29ycmVjdGx5LgoKMjAwNC0wOS0xNyAgSmVmZnJleSBELiBPbGRoYW0gIDxvbGRoYW1AY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZjk1LWxhbmcuYywgdHJhbnMtZXhwci5jLCB0cmFucy5jOiBVcGRhdGUgZm9yIG5ldyB0cmVlLWNsYXNzCgllbnVtZXJhdGlvbiBjb25zdGFudHMuCgoyMDA0LTA5LTE3ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogZ2ZvcnRyYW4uaCAoc3RydWN0IGdmY19saW5lYnVmKTogRG9uJ3QgdXNlIEM5OSBlbXB0eSBhcnJheXMuCgkoZ2ZjX2xpbmVidWZfaGVhZGVyX3NpemUpOiBEZWZpbmUuCgkqIHNjYW5uZXIuYyAobG9hZF9maWxlKTogVXNlIGl0LgoKMjAwNC0wOS0xNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGFycmF5LmMsIGRhdGEuYywgZGVjbC5jLCBkZXBlbmRlbmN5LmMsIGVycm9yLmMsIGY5NS1sYW5nLmMsCglpbnRlcmZhY2UuYywgaW50cmluc2ljLmMsIGlvLmMsIG1pc2MuYywgbW9kdWxlLmMsIHBhcnNlLmgsCglyZXNvbHZlLmMsIHNjYW5uZXIuYywgdHJhbnMtYXJyYXkuYywgdHJhbnMtYXJyYXkuaCwKCXRyYW5zLWNvbW1vbi5jLCB0cmFucy1jb25zdC5oLCB0cmFucy1kZWNsLmMsIHRyYW5zLWV4cHIuYywKCXRyYW5zLWludHJpbnNpYy5jLCB0cmFucy1zdG10LmMsIHRyYW5zLXR5cGVzLmMsIHRyYW5zLmMsCgl0cmFucy5oOiBGaXggY29tbWVudCB0eXBvcy4gIEZvbGxvdyBzcGVsbGluZyBjb252ZW50aW9ucy4KCjIwMDQtMDktMTYgIFZpY3RvciBMZWlrZWhtYW4gIDxsZWlAaWwuaWJtLmNvbT4KCglQUi8xNTM2NAoJKiB0cmFucy1pby5jICh0cmFuc2Zlcl9hcnJheV9jb21wb25lbnQpOiBOZXcgZnVuY3Rpb24uCgkodHJhbnNmZXJfZXhwcik6IEZvciBhcnJheSBmaWVsZHMsIGNhbGwgdHJhbnNmZXJfYXJyYXlfY29tcG9uZW50LgoKMjAwNC0wOS0xNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGdmb3J0cmFuLnRleGk6IEZpeCBhIHR5cG8uCgoyMDA0LTA5LTE1ICBBYXJvbiBXLiBMYUZyYW1ib2lzZSAgPGFhcm9uYXZheTYyQGFhcm9ud2wuY29tPgoKCSogcGFyc2UuYyAoZW9mX2J1Zik6IFJlbmFtZSBlb2YgdG8gZW9mX2J1Zi4KCSh1bmV4cGVjdGVkX2VvZik6IFNhbWUuCgkoZ2ZjX3BhcnNlX2ZpbGUpOiBTYW1lLgoKMjAwNC0wOS0xNSAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoKCSogY2hlY2suYyAoZ2ZjX2NoZWNrX2dldGN3ZF9zdWIpOiBOZXcgZnVuY3Rpb24uCgkqIGdmb3J0cmFuLmggKEdGQ19JU1lNX0dFVENXRCk6IE5ldyBzeW1ib2wuCgkqIGludHJpbnNpYy5jIChhZGRfZnVuY3Rpb25zKTogQWRkIGZ1bmN0aW9uIGRlZmluaXRpb247CglVc2Ugc3ltYm9sLgoJKiBpbnRyaW5zaWMuYyAoYWRkX3N1YnJvdXRpbmVzKTogQWRkIHN1YnJvdXRpbmUgZGVmaW5pdGlvbnMuCgkqIGludHJpbnNpYy5oOiBBZGQgcHJvdG90eXBlcy4KCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfZ2V0Y3dkLCBnZmNfcmVzb2x2ZV9nZXRjd2Rfc3ViKToKCU5ldyBmdW5jdGlvbnMuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfZnVuY3Rpb24pOiBVc2Ugc3ltYm9sLgoKMjAwNC0wOS0xNSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE2NDg1CgkqIG1vZHVsZS5jICh3cml0ZV9zeW1ib2wpOiBEb24ndCBmaWxsIGluIG1vZHVsZSBuYW1lIGhlcmUuCgkod3JpdGVfc3ltYm9sMCk6IEZpbGwgaW4gaGVyZSBpbnN0ZWFkLgoKMjAwNC0wOS0xNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRhdGEuYywgZGVjbC5jLCBmOTUtbGFuZy5jLCBnZm9ydHJhbi5oLCBtYXRjaC5jLAoJdHJhbnMtYXJyYXkuYywgdHJhbnMtY29tbW9uLmMsIHRyYW5zLWV4cHIuYywKCXRyYW5zLWludHJpbnNpYy5jLCB0cmFucy1zdG10LmMsIHRyYW5zLXR5cGVzLmMsIHRyYW5zLmg6IEZpeAoJY29tbWVudCB0eXBvcy4gIEZvbGxvdyBzcGVsbGluZyBjb252ZW50aW9ucy4KCjIwMDQtMDktMDkgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzY2FubmVyLmMgKGdldF9maWxlKTogQWRkIEFUVFJJQlVURV9VTlVTRUQuCgoyMDA0LTA5LTA4ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogYXJyYXkuYzogRG9uJ3QgaW5jbHVkZSBhc3NlcnQuaC4KCSogZGF0YS5jOiBEb24ndCBpbmNsdWRlIGFzc2VydC5oLiAgUmVwbGFjZSBhc3NlcnQgYW5kIGFib3J0IHdpdGgKCWdjY19hc3NlcnQgYW5kIGdjY191bnJlYWNoYWJsZS4KCSogZGVwZW5kZW5jeS5jOiBEaXR0by4KCSogZjk1LWxhbmcuYzogRGl0dG8uCgkqIGlyZXNvbHZlLmM6IERpdHRvLgoJKiByZXNvbHZlLmM6IERpdHRvLgoJKiBzaW1wbGlmeS5jOiBEaXR0by4KCSogc3ltYm9sLmM6IERpdHRvLgoJKiB0cmFucy1hcnJheS5jOiBEaXR0by4KCSogdHJhbnMtY29tbW9uLmM6IERpdHRvLgoJKiB0cmFucy1jb25zdC5jOiBEaXR0by4KCSogdHJhbnMtZGVjbC5jOiBEaXR0by4KCSogdHJhbnMtZXhwci5jOiBEaXR0by4KCSogdHJhbnMtaW50cmluc2ljLmM6IERpdHRvLgoJKiB0cmFucy1pby5jOiBEaXR0by4KCSogdHJhbnMtc3RtdC5jOiBEaXR0by4KCSogdHJhbnMtdHlwZXMuYzogRGl0dG8uCgkqIHRyYW5zLmM6IERpdHRvLgoKMjAwNC0wOS0wNyAgUGVyIEJvdGhuZXIgIDxwZXJAYm90aG5lci5jb20+CglQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogZXJyb3IuYyAoc2hvd19sb2N1cyk6IEhhbmRsZSBtYXBwZWQgbG9jYXRpb25zLgoJKiBmOTUtbGFuZy5jIChnZmNfYmVfcGFyc2VfZmlsZSk6IEluaXRpYWxpemUgbWFwcGVkIGxvY2F0aW9ucy4KCSogZ2ZvcnRyYW4uaDogSW5jbHVkZSBpbnB1dC5oLgoJKHN0cnVjdCBnZmNfbGluZWJ1Zik6IFVzZSBzb3VyY2VfbG9jYXRpb24uCgkqIHNjYW5uZXIuYyAoZ2V0X2ZpbGUpOiBJbml0aWFsaXplIGxpbmVtYXAuCgkocHJlcHJvY2Vzc29yX2xpbmUpOiBQYXNzIGV4dHJhIGFyZ3VtZW50IHRvIGdldF9maWxlLgoJKGxvYWRfZmlsZSk6IERpdHRvLiAgU2V0dXAgbGluZW1hcC4KCShnZmNfbmV3X2ZpbGUpOiBIYW5kbGUgbWFwcGVkIGxvY2F0aW9ucy4KCSogdHJhbnMtY29tbW9uLmMgKGJ1aWxkX2ZpZWxkLCBidWlsZF9lcXVpdl9kZWNsLCBidWlsZF9jb21tb25fZGVjbCk6CglTZXQgZGVjbCBzb3VyY2UgbG9jYXRpb25zLgoJKGdmY190cmFuc19jb21tb24pOiBTZXQgYmxhbmsgY29tbW9uIGJsb2NrIGxvY2F0aW9uLgoJKiB0cmFucy1kZWNsLmMgKGdmY19zZXRfZGVjbF9sb2NhdGlvbik6IE5ldyBmdW5jdGlvbi4KCShnZmNfZ2V0X2xhYmVsX2RlY2wsIGdmY19nZXRfc3ltYm9sX2RlY2wpOiBVc2UgaXQuCgkodHJhbnNfZnVuY3Rpb25fc3RhcnQpOiBNb3ZlIGNhbGwgdG8gZ2ZjX3NldF9iYWNrZW5kX2xvY3VzLi4KCShidWlsZF9mdW5jdGlvbl9kZWNsKTogLi4uIHRvIGhlcmUuCgkoYnVpbGRfZW50cnlfdGh1bmtzKTogU2V0IGFuZCByZXN0b3JlIHRoZSBiYWNrZW5kIGxvY3VzLgoJKGdmY19nZW5lcmF0ZV9jb25zdHJ1Y3RvcnMpOiBSZW1vdmUgZXhjZXNzIGFyZ3VtZW50cyB0bwoJaW5pdF9mdW5jdGlvbl9zdGFydC4KCShnZmNfZ2VuZXJhdGVfYmxvY2tfZGF0YSk6IEFkZCBjb21tZW50cy4gIFNldCB0aGUgZGVjbCBsb2N1cy4KCSogdHJhbnMtaW8uYyAoc2V0X2Vycm9yX2xvY3VzKTogSGFuZGxlIG1hcHBlZCBsb2NhdGlvbnMuCgkqIHRyYW5zLmMgKGdmY19nZXRfYmFja2VuZF9sb2N1cywgZ2ZjX2dldF9iYWNrZW5kX2xvY3VzKTogRGl0dG8uCgkoZ2ZjX3RyYW5zX2NvZGUpOiBVc2UgU0VUX0VYUFJfTE9DQVRJT04uCgkoZ2ZjX2dlbmVyYXRlX2NvZGUpOiBPdmVycmlkZSB0aGUgbG9jYXRpb24gb2YgdGhlIG5ldyBzeW1ib2wuCgkqIHRyYW5zLmggKGdmY19zZXRfZGVjbF9sb2NhdGlvbik6IEFkZCBwcm90b3R5cGUuCgoyMDA0LTA4LTMxICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX3R5cGVfZm9yX21vZGUpOiBSZXR1cm4gTlVMTCBmb3IgdW5rbm93biBtb2Rlcy4KCjIwMDQtMDktMDEgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNTMyNwoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX21lcmdlKTogRG8gdGhlIHJpZ2h0IHRoaW5nIGZvcgoJc3RyaW5ncy4KCjIwMDQtMDktMDEgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNjQwMAoJUFIgZm9ydHJhbi8xNjQwNAoJKHBvcnQgZnJvbSBnOTUpCgkqIHJlc29sdmUuYyAocmVzb2x2ZV90cmFuc2Zlcik6IE5ldyBmdW5jdGlvbi4KCShyZXNvbHZlX2NvZGUpOiBDYWxsIHJlc29sdmVfdHJhbnNmZXIgaW4gY2FzZSBvZiBFWEVDX1RSQU5TRkVSLgoKMjAwNC0wOC0zMSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE2NTc5CgkqIHRyYW5zLXR5cGVzLmMgKGdmY19pbml0X3R5cGVzKTogTWFrZSBnZmNfY2hhcmFjdGVyMV90eXBlX25vZGUgYW4KCXVuc2lnbmVkIGNoYXIuCgoyMDA0LTA4LTMxICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogQ09OVFJJQiwgTkVXUywgUkVBRE1FLCBUT0RPOiBSZW1vdmUgb2Jzb2xldGUgZmlsZXMuCgoyMDA0LTA4LTMxICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTcyNDQKCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX3JldHVybl9ieV9yZWZlcmVuY2UpOiBSZW1vdmUgVE9ETyBlcnJvciwKCWFkZCBjb21tZW50IHBvaW50aW5nIG91dCBwb3NzaWJsZSBpc3N1ZSBXUlQgY29tcGF0aWJpbGl0eSB3aXRoIGc3Ny4KCjIwMDQtMDgtMzEgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy1kZWNsLmMsIHRyYW5zLWV4cHIuYywgdHJhbnMtaW8uYywgdHJhbnMtdHlwZXMuYzogUmVwbGFjZQoJYWxsIG9jY3VyZW5jZXMgb2YgJ2dmY19zdHJsZW5fdHlwZV9ub2RlJyBieQoJJ2dmY19jaGFybGVuX3R5cGVfbm9kZScuCgkqIHRyYW5zLXR5cGVzLmg6IFNhbWUuIEFsc28gdXBkYXRlIGNvbW1lbnQgYWNjb3JkaW5nbHkuCgoyMDA0LTA4LTMxICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogcHJpbWFyeS5jOiBVcGRhdGUgY29weXJpZ2h0IGJvaWxlcnBsYXRlIHRvIHNheSBHQ0MuCgkqIGY5NS1sYW5nLmM6IENoYW5nZSBpbml0aWFsIGNvbW1lbnQgdG8gc2F5IGdmb3J0cmFuLgoKMjAwNC0wOC0zMSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLXR5cGVzLmg6IEFkZCBjb21tZW50cy4KCShpbnRtYXhfdHlwZV9ub2RlLCBzdHJpbmdfdHlwZV9ub2RlLCBjb25zdF9zdHJpbmdfdHlwZV9ub2RlKTogUmVtb3ZlLgoKMjAwNC0wOC0zMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIE1ha2UtbGFuZy5pbiAoZm9ydHJhbi9mOTUtbGFuZy5vKTogVXBkYXRlIGRlcGVuZGVuY2llcy4KCShmb3J0cmFuL3RyYW5zLWRlY2wubywgZm9ydHJhbi90cmFucy10eXBlcy5vKTogTGlrZXdpc2UuCgkqIGdmb3J0cmFuLmggKGdmY19pbnRlZ2VyX2luZm8pOiBBZGQgY19jaGFyLCBjX3Nob3J0LCBjX2ludCwKCWNfbG9uZywgY19sb25nX2xvbmcuCgkoZ2ZjX2xvZ2ljYWxfaW5mbyk6IEFkZCBjX2Jvb2wuCgkoZ2ZjX3JlYWxfaW5mbyk6IEFkZCBtb2RlX3ByZWNpc2lvbiwgY19mbG9hdCwgY19kb3VibGUsIGNfbG9uZ19kb3VibGUuCgkqIHRyYW5zLWFycmF5LmMgKGdmY19hcnJheV9hbGxvY2F0ZSk6IFVzZSBUWVBFX1BSRUNJU0lPTgoJcmF0aGVyIHRoYW4gZ2ZjX2ludFs0OF1fdHlwZV9ub2RlIGZvciBhbGxvY2F0ZSBjaG9pY2UuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2J1aWxkX2ludHJpbnNpY19mdW5jdGlvbl9kZWNscyk6IENhY2hlCglsb2NhbCBjb3BpZXMgb2Ygc29tZSBraW5kIHR5cGUgbm9kZXMuCgkoZ2ZjX2J1aWxkX2J1aWx0aW5fZnVuY3Rpb25fZGVjbHMpOiBMaWtld2lzZS4KCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9wb3dlcl9vcCk6IExpa2V3aXNlLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2luZGV4LAoJZ2ZjX2NvbnZfaW50cmluc2ljX3NjYW4sIGdmY19jb252X2ludHJpbnNpY192ZXJpZnksCglnZmNfY29udl9pbnRyaW5zaWNfdHJpbSwgZ2ZjX2NvbnZfaW50cmluc2ljX3JlcGVhdCk6IExpa2V3aXNlLgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19wYXVzZSwgZ2ZjX3RyYW5zX3N0b3AsCglnZmNfdHJhbnNfY2hhcmFjdGVyX3NlbGVjdCwgZ2ZjX3RyYW5zX2FsbG9jYXRlKTogTGlrZXdpc2UuCgkqIHRyYW5zLWlvLmMgKGdmY19waW50NF90eXBlX25vZGUpOiBNb3ZlIGludG8gLi4uCgkoZ2ZjX2J1aWxkX2lvX2xpYnJhcnlfZm5kZWNscyk6IC4uLiBoZXJlLiAgQ2FjaGUgbG9jYWwgY29waWVzIG9mCglzb21lIGtpbmQgdHlwZSBub2Rlcy4KCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX3R5cGVfbm9kZXMpOiBSZW1vdmUuCgkoZ2ZjX2NoYXJhY3RlcjFfdHlwZV9ub2RlLCBnZmNfc3RybGVuX3R5cGVfbm9kZSk6IE5ldy4KCShnZmNfaW50ZWdlcl90eXBlcywgZ2ZjX2xvZ2ljYWxfdHlwZXMpOiBOZXcuCgkoZ2ZjX3JlYWxfdHlwZXMsIGdmY19jb21wbGV4X3R5cGVzKTogTmV3LgoJKGdmY19pbml0X2tpbmRzKTogRmlsbCBpbiByZWFsIG1vZGVfcHJlY2lzaW9uLgoJKGdmY19idWlsZF9pbnRfdHlwZSwgZ2ZjX2J1aWxkX3JlYWxfdHlwZSk6IE5ldy4KCShnZmNfYnVpbGRfY29tcGxleF90eXBlLCBnZmNfYnVpbGRfbG9naWNhbF90eXBlKTogTmV3LgoJKGNfc2l6ZV90X3NpemUpOiBOZXcuCgkoZ2ZjX2luaXRfdHlwZXMpOiBMb29wIG92ZXIga2luZHMuCgkoZ2ZjX2dldF9pbnRfdHlwZSwgZ2ZjX2dldF9yZWFsX3R5cGUpOiBVc2UgZ2ZjX3ZhbGlkYXRlX2tpbmQuCgkoZ2ZjX2dldF9jb21wbGV4X3R5cGUsIGdmY19nZXRfbG9naWNhbF90eXBlKTogTGlrZXdpc2UuCgkoZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZV9sZW4pOiBMaWtld2lzZS4KCShnZmNfdHlwZV9mb3Jfc2l6ZSk6IExvb3Agb3ZlciBraW5kczsgdXNlIGEgcmVkdWNlZCBzZXQgb2YKCXVuc2lnbmVkIHR5cGUgbm9kZXMuCgkoZ2ZjX3R5cGVfZm9yX21vZGUpOiBMb29wIG92ZXIga2luZHMuCgkoZ2ZjX3NpZ25lZF9vcl91bnNpZ25lZF90eXBlKTogVXNlIGdmY190eXBlX2Zvcl9zaXplLgoJKGdmY191bnNpZ25lZF90eXBlLCBnZmNfc2lnbmVkX3R5cGUpOiBVc2UgZ2ZjX3NpZ25lZF9vcl91bnNpZ25lZF90eXBlLgoJKiB0cmFucy10eXBlcy5oIChGOTVfSU5UMV9UWVBFLCBGOTVfSU5UMl9UWVBFLCBGOTVfSU5UNF9UWVBFLAoJRjk1X0lOVDhfVFlQRSwgRjk1X0lOVDE2X1RZUEUsIEY5NV9SRUFMNF9UWVBFLCBGOTVfUkVBTDhfVFlQRSwKCUY5NV9SRUFsMTZfVFlQRSwgRjk1X0NPTVBMRVg0X1RZUEUsIEY5NV9DT01QTEVYOF9UWVBFLAoJRjk1X0NPTVBMRVgxNl9UWVBFLCBGOTVfTE9HSUNBTDFfVFlQRSwgRjk1X0xPR0lDQUwyX1RZUEUsCglGOTVfTE9HSUNBTDRfVFlQRSwgRjk1X0xPR0lDQUw4X1RZUEUsIEY5NV9MT0dJQ0FMMTZfVFlQRSwKCUY5NV9DSEFSQUNURVIxX1RZUEUsIE5VTV9GOTVfVFlQRVMsIGdmY190eXBlX25vZGVzLAoJZ2ZjX2ludDFfdHlwZV9ub2RlLCBnZmNfaW50Ml90eXBlX25vZGUsIGdmY19pbnQ0X3R5cGVfbm9kZSwKCWdmY19pbnQ4X3R5cGVfbm9kZSwgZ2ZjX2ludDE2X3R5cGVfbm9kZSwgZ2ZjX3JlYWw0X3R5cGVfbm9kZSwKCWdmY19yZWFsOF90eXBlX25vZGUsIGdmY19yZWFsMTZfdHlwZV9ub2RlLCBnZmNfY29tcGxleDRfdHlwZV9ub2RlLAoJZ2ZjX2NvbXBsZXg4X3R5cGVfbm9kZSwgZ2ZjX2NvbXBsZXgxNl90eXBlX25vZGUsCglnZmNfbG9naWNhbDFfdHlwZV9ub2RlLCBnZmNfbG9naWNhbDJfdHlwZV9ub2RlLAoJZ2ZjX2xvZ2ljYWw0X3R5cGVfbm9kZSwgZ2ZjX2xvZ2ljYWw4X3R5cGVfbm9kZSwKCWdmY19sb2dpY2FsMTZfdHlwZV9ub2RlLCBnZmNfc3RybGVuX2tpbmQpOiBSZW1vdmUuCgkoZ2ZjX2NoYXJhY3RlcjFfdHlwZV9ub2RlKTogVHVybiBpbiB0byBhIHZhcmlhYmxlLgoJKGdmY19zdHJsZW5fdHlwZV9ub2RlKTogTGlrZXdpc2UuCgoyMDA0LTA4LTMwICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogZ2ZvcnRyYW4uaCAoZ2ZjX25hbWVzcGFjZSk6IEFkZCBuZXcgZmllbGQgaXNfYmxvY2tfZGF0YS4KCSogcGFyc2UuYyAoYWNjZXB0X3N0YXRlbWVudCk6IFJlbW92ZSBzcGVjaWFsIGhhbmRsaW5nIGZvciBCTE9DSyBEQVRBLgoJKHBhcnNlX2Jsb2NrX2RhdGEpOiBSZWNvcmQgQkxPQ0sgREFUQSBuYW1lLCBzZXQgaXNfYmxvY2tfZGF0YSBmaWVsZC4KCSogdHJhbnMuYyAoZ2ZjX2dlbmVyYXRlX2NvZGUpOiBIYW5kbGUgQkxPQ0sgREFUQSB1bml0cy4KCSogdHJhbnMuaCAoZ2ZjX2dlbmVyYXRlX2Jsb2NrX2RhdGEpOiBBZGQgcHJvdG90eXBlLgoJKiB0cmFucy1kZWNsLmMgKGdmY19nZW5lcmF0ZV9ibG9ja19kYXRhKTogTmV3IGZ1bmN0aW9uLgoKMjAwNC0wOC0yOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyYW5zLWNvbnN0LmMgKGdmY19jb252X21wel90b190cmVlKTogVXNlIG1wel9leHBvcnQuCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19pbml0X2tpbmRzKTogUmVqZWN0IGludGVnZXIga2luZHMgbGFyZ2VyCgl0aGFuIHR3byBIT1NUX1dJREVfSU5ULgoKMjAwNC0wOC0yOSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzEzOTEwCgkqIGRlY2wuYyAoZnJlZV92YXJpYWJsZSwgZnJlZV92YWx1ZSwgZ2ZjX2ZyZWVfZGF0YSwgdmFyX2xpc3QsCgl2YXJfZWxlbWVudCwgdG9wX3Zhcl9saXN0LCBtYXRjaF9kYXRhX2NvbnN0YW50LCB0b3BfdmFsX2xpc3QsCglnZmNfbWF0Y2hfZGF0YSk6IE1vdmUgaGVyZSBmcm9tIG1hdGNoLmMuCgkobWF0Y2hfb2xkX3N0eWxlX2luaXQpOiBOZXcgZnVuY3Rpb24uCgkodmFyaWFibGVfZGVjbCk6IE1hdGNoIG9sZC1zdHlsZSBpbml0aWFsaXphdGlvbi4KCSogZXhwci5jIChnZmNfZ2V0X3ZhcmlhYmxlX2V4cHIpOiBOZXcgZnVuY3Rpb24uCgkqIGdmb3J0cmFuLmggKGdmY19nZXRfdmFyaWFibGVfZXhwcik6IEFkZCBwcm90b3R5cGUuCgkqIGdmb3J0cmFuLnRleGk6IFN0YXJ0IGRvY3VtZW50YXRpb24gZm9yIHN1cHBvcnRlZCBleHRlbnNpb25zLgoJKiBtYXRjaC5jOiBSZW1vdmUgdGhlIGZ1bmN0aW9ucyBtb3ZlZCB0byBkZWNsLmMuCgkqIG1hdGNoLmggKGdmY19tYXRjaF9kYXRhKTogTW92ZSBwcm90b3R5cGUgdG8gdW5kZXIgZGVjbC5jLgoJKiBzeW1ib2wuYyAoZ2ZjX2ZpbmRfc3ltX3RyZWUsIGdmY19maW5kX3N5bWJvbCk6IEFkZC9jb3JyZWN0Cgljb21tZW50cy4KCjIwMDQtMDgtMjkgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCVBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjaGVjay5jIChnZmNfY2hlY2tfYmVzbiwgZ2ZjX2NoZWNrX2c3N19tYXRoMSk6IE5ldyBmdW5jdGlvbnMuCgkqIGY5NS1sYW5nLmMgKERPX0RFRklORV9NQVRIX0JVSUxUSU4pOiBEZWZpbmUuCgkoREVGSU5FX01BVEhfQlVJTFRJTiwgREVGSU5FX01BVEhfQlVJTFRJTl9DKTogVXNlIGl0LgoJKGJ1aWxkX2J1aWx0aW5fZm50eXBlcyk6IE5ldyBmdW5jdGlvbi4KCShnZmNfaW5pdF9idWlsdGluX2Z1bmN0aW9ucyk6IFVzZSBpdC4KCSogZ2ZvcnRyYW4uaCAoZW51bSBnZmNfZ2VuZXJpY19pc3ltX2lkKTogQWRkIEdGQ19JU1lNX3tKLFl9ezAsMSxOfQoJYW5kIEdGQ19JU1lNX0VSRnssQ30uCgkoZ2ZjX2NfaW50X2tpbmQpOiBEZWNsYXJlLgoJKiBpbnRyaW5zaWMuYyAoYWRkX2Z1bmN0aW9ucyk6IEFkZCBbZF1iZXMqIGFuZCBbZF1lcmYqLgoJKiBpbnRyaW5zaWMuaCAoZ2ZjX2NoZWNrX2Jlc24sIGdmY19jaGVja19nNzdfbWF0aDEsIGdmY19yZXNvbHZlX2Jlc24sCglnZmNfcmVzb2x2ZV9nNzdfbWF0aDEpOiBBZGQgcHJvdG90eXBlcy4KCSogcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9iZXNuLCBnZmNfcmVzb2x2ZV9nNzdfbWF0aDEpOiBOZXcgZnVuY3Rpb25zLgoJKiBtYXRoYnVpbHRpbnMuZGVmOiBBZGQgY29tbWVudC4gIENoYW5nZSB0aGlyZCBhcmd1bWVudC4gIFVzZQoJREVGSU5FX01BVEhfQlVJTFRJTl9DLiAgQWRkIGJlc3NlbCBhbmQgZXJyb3IgZnVuY3Rpb25zLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoQlVJTFRfSU5fRlVOQ1RJT04pOiBEZWZpbmUuCgkoREVGSU5FX01BVEhfQlVJTFRJTiwgREVGSU5FX01BVEhfQlVJTFRJTl9DKTogVXNlIGl0LgoJKiB0cmFucy10eXBlcy5jIChnZmNfY19pbnRfa2luZCk6IERlY2xhcmUuCgkoZ2ZjX2luaXRfa2luZHMpOiBTZXQgaXQuCgoyMDA0LTA4LTI5ICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CglQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogZ2ZvcnRyYW4uaCAoZW51bSBnZmNfZ2VuZXJpY19pc3ltX2lkKTogQWRkIEdGQ19JU1lNX0dFVD9JRC4KCShnZmNfY2hlY2tfZiwgZ2ZjX3NpbXBsaWZ5X2YpOiBBZGQgZjAuCgkqIGludHJpbnNpYy5jIChkb19jaGVjayk6IENhbGwgZjAuICBGbGF0dGVuLgoJKGFkZF9zeW1fMCk6IEZpeCBwcm90b3R5cGUuICBTZXQgZjAuCgkoYWRkX2Z1bmN0aW9ucyk6IEFkZCBnZXRnaWQsIGdldGdpZCBhbmQgZ2V0dWlkLgoJKHJlc29sdmVfaW50cmluc2ljKTogUmVtb3ZlIG9ic29sZXRlIGNvbW1lbnQuCgkoZG9fc2ltcGxpZnkpOiBDYWxsIGYwLgoJKiBpbnRyaW5zaWMuaCAoZ2ZjX3Jlc29sdmVfZ2V0Z2lkLCBnZmNfcmVzb2x2ZV9nZXRwaWQsCglnZmNfcmVzb2x2ZV9nZXR1aWQpOiBBZGQgcHJvdG90eXBlcy4KCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfZ2V0Z2lkLCBnZmNfcmVzb2x2ZV9nZXRwaWQsCglnZmNfcmVzb2x2ZV9nZXR1aWQpOiBOZXcgZnVuY3Rpb25zLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uKTogSGFuZGxlCglHRkNfSVNZTV9HRVQ/SUQuCgoyMDA0LTA4LTI4ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogZXJyb3IuYyAoZ2ZjX2Vycm9yX2luaXRfMSk6IFJlbW92ZSBibGFuayBsaW5lIGluIGZyb250IG9mCglmdW5jdGlvbiBib2R5LiBBZGQgbWlzc2luZyBibGFuay4KCShnZmNfYnVmZmVyX2Vycm9yLCBlcnJvcl9jaGFyLCBlcnJvcl9zdHJpbmcpOiBSZW1vdmUgYmxhbmsgbGluZSBpbgoJZnJvbnQgb2YgZnVuY3Rpb24gYm9keS4KCShzaG93X2xvY3VzKTogQWRkIGNvbW1hIGluIGNvbW1lbnQuCgkoZ2ZjX2NsZWFyX3dhcm5pbmcsIGdmY193YXJuaW5nX2NoZWNrLCBnZmNfY2xlYXJfZXJyb3IsCglnZmNfcHVzaF9lcnJvciwgZ2ZjX3BvcF9lcnJvcik6IFJlbW92ZSBibGFuayBsaW5lIGluIGZyb250IG9mCglmdW5jdGlvbiBib2R5LgoJKGdmY19nZXRfZXJyb3JzKTogVHlwbyBmaXggaW4gY29tbWVudCBpbiBmcm9udCBvZiBmdW5jdGlvbi4gUmVtb3ZlCglibGFuayBsaW5lIGluIGZyb250IG9mIGZ1bmN0aW9uIGJvZHkuCgoyMDA0LTA4LTI3ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogZ2ZvcnRyYW4uaCAoZ2ZjX2RlZmF1bHRfKl9raW5kKTogUmVtb3ZlIHByb3RvdHlwZXMsIGFkZCBleHRlcm4KCXZhcmlhYmxlIGRlY2xhcmF0aW9uIG9mIHNhbWUgbmFtZS4KCSogYXJpdGguYywgY2hlY2suYywgZGVjbC5jLCBkdW1wX3BhcnNlX3RyZWUuYywgZXhwci5jLAoJaW50cmluc2ljLmMsIGlvLmMsIGlyZXNvbHZlLmMsIG1hdGNoLmMsIG9wdGlvbnMuYywgcHJpbWFyeS5jLAoJcmVzb2x2ZS5jLCBzaW1wbGlmeS5jLCBzeW1ib2wuYywgdHJhbnMtY29uc3QuYywgdHJhbnMtaW8uYzoKCVJlcGxhY2UgYWxsIGNhbGxzIHRvIGdmY19kZWZhdWx0Xypfa2luZCB3aXRoIHZhcmlhYmxlIGFjY2Vzc2VzLgoJKiB0cmFucy10eXBlcy5jOiBTYW1lIGFzIGFib3ZlLgoJKGdmY19kZWZhdWx0Xypfa2luZF8xKTogUmVuYW1lIHRvIGdmY19kZWZhdWx0Xypfa2luZCwgcmVtb3ZlCglzdGF0aWMgcXVhbGlmaWVyLiBSZXBsYWNlIGFsbCBvY2N1cmVuY2VzLgoJKGdmY19kZWZhdWx0Xypfa2luZCk6IFJlbW92ZSBmdW5jdGlvbnMuCgoyMDA0LTA4LTI2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogYXJpdGguYzogSW5jbHVkZSBzeXN0ZW0uaCwgbm90IHJlYWwgc3lzdGVtIGhlYWRlcnMuCgkoTVBaX05VTEwsIE1QRl9OVUxMLCBERUZfR0ZDX0lOVEVHRVJfS0lORCwgREVGX0dGQ19MT0dJQ0FMX0tJTkQsCglERUZfR0ZDX1JFQUxfS0lORCwgR0ZDX1NQX0tJTkQsIEdGQ19TUF9QUkVDLCBHRkNfU1BfRU1JTiwgR0ZDX1NQX0VNQVgsCglHRkNfRFBfS0lORCwgR0ZDX0RQX1BSRUMsIEdGQ19EUF9FTUlOLCBHRkNfRFBfRU1BWCwgR0ZDX1FQX0tJTkQsCglHRkNfUVBfUFJFQywgR0ZDX1FQX0VNSU4sIEdGQ19RUF9FTUFYKTogUmVtb3ZlLgoJKGdmY19pbnRlZ2VyX2tpbmRzLCBnZmNfbG9naWNhbF9raW5kcywgZ2ZjX3JlYWxfa2luZHMsCglnZmNfaW5kZXhfaW50ZWdlcl9raW5kLCBnZmNfZGVmYXVsdF9pbnRlZ2VyX2tpbmQsCglnZmNfZGVmYXVsdF9yZWFsX2tpbmQsZ2ZjX2RlZmF1bHRfZG91YmxlX2tpbmQsCglnZmNfZGVmYXVsdF9jaGFyYWN0ZXJfa2luZCwgZ2ZjX2RlZmF1bHRfbG9naWNhbF9raW5kLAoJZ2ZjX2RlZmF1bHRfY29tcGxleF9raW5kLCB2YWxpZGF0ZV9pbnRlZ2VyLCB2YWxpZGF0ZV9yZWFsLAoJdmFsaWRhdGVfbG9naWNhbCwgdmFsaWRhdGVfY2hhcmFjdGVyLAoJZ2ZjX3ZhbGlkYXRlX2tpbmQpOiBNb3ZlIHRvIHRyYW5zLXR5cGVzLmMuCgkoZ2ZjX3NldF9tb2RlbF9raW5kKTogVXNlIGdmY192YWxpZGF0ZV9raW5kLgoJKGdmY19zZXRfbW9kZWwpOiBKdXN0IGNvcHkgdGhlIGN1cnJlbnQgcHJlY2lzaW9uIHRvIGRlZmF1bHQuCgkoZ2ZjX2FyaXRoX2luaXRfMSk6IFVzZSBtcGZyIHByZWNpc2lvbiAxMjggZm9yIGludGVnZXIgc2V0dXAuCgkqIGY5NS1sYW5nLmMgKGdmY19pbml0X2RlY2xfcHJvY2Vzc2luZyk6IEludm9rZSBnZmNfaW5pdF9raW5kcy4KCSogZ2ZvcnRyYW4uaDogVXBkYXRlIGZpbGUgY29tbWVudGFyeS4KCSogdHJhbnMtdHlwZXMuYyAoTUFYX0lOVF9LSU5EUywgTUFYX1JFQUxfS0lORFMpOiBOZXcuCgkoZ2ZjX2RlZmF1bHRfaW50ZWdlcl9raW5kXzEsIGdmY19kZWZhdWx0X3JlYWxfa2luZF8xLAoJZ2ZjX2RlZmF1bHRfZG91YmxlX2tpbmRfMSwgZ2ZjX2RlZmF1bHRfY2hhcmFjdGVyX2tpbmRfMSwKCWdmY19kZWZhdWx0X2xvZ2ljYWxfa2luZF8xLCBnZmNfZGVmYXVsdF9jb21wbGV4X2tpbmRfMSk6IE5ldy4KCShnZmNfaW5pdF9raW5kcyk6IE5ldy4KCShnZmNfaW5pdF90eXBlcyk6IERvbid0IHNldCBnZmNfaW5kZXhfaW50ZWdlcl9raW5kIGhlcmUuCgkqIHRyYW5zLXR5cGVzLmggKGdmY19pbml0X2tpbmRzKTogRGVjbGFyZS4KCSogZG9jL2ludm9rZS50ZXhpOiBDbGFyaWZ5IERPVUJMRSBQUkVDSVNJT04gYmVoYXZpb3VyIHdydCAtcjguCgoyMDA0LTA4LTI2ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogY2hlY2suYyAoZ2ZjX2NoZWNrX2F0YW4yKTogTmV3IGZ1bmN0aW9uLgoJKiBpbnRyaW5zaWMuYyAoYWRkX2Z1bmN0aW9ucyk6IFVzZSBnZmNfY2hlY2tfYXRhbjIgZm9yIEFUQU4yCgkqIGludHJpbnNpYy5oIChnZmNfY2hlY2tfYXRhbjIpOiBBZGQgcHJvdG90eXBlLgoKMjAwNC0wOC0yNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGFyaXRoLmMgKGdmY192YWxpZGF0ZV9raW5kKTogQWRkIG1heV9mYWlsIGFyZ3VtZW50OyBhYm9ydCBpZgoJZmFsc2UgYW5kIHdlIGRvbid0IHZhbGlkYXRlIHRoZSBraW5kLgoJKGdmY19jaGVja19pbnRlZ2VyX3JhbmdlLCBnZmNfY2hlY2tfcmVhbF9yYW5nZSk6IFVwZGF0ZSB0byBtYXRjaC4KCSogY2hlY2suYyAoa2luZF9jaGVjayk6IExpa2V3aXNlLgoJKiBkZWNsLmMgKGdmY19tYXRjaF9vbGRfa2luZF9zcGVjLCBnZmNfbWF0Y2hfa2luZF9zcGVjKTogTGlrZXdpc2UuCgkobWF0Y2hfY2hhcl9zcGVjLCBtYXRjaF9sb2dpY2FsX3NwZWMpOiBMaWtld2lzZS4KCSogZ2ZvcnRyYW4uaCAoZ2ZjX3ZhbGlkYXRlX2tpbmQpOiBMaWtld2lzZS4KCSogb3B0aW9ucy5jIChnZmNfaGFuZGxlX29wdGlvbik6IExpa2V3aXNlLgoJKiBwcmltYXJ5LmMgKG1hdGNoX2ludGVnZXJfY29uc3RhbnQsIG1hdGNoX3JlYWxfY29uc3RhbnQsCgltYXRjaF9zdHJpbmdfY29uc3RhbnQsIG1hdGNoX2xvZ2ljYWxfY29uc3RhbnQsCgltYXRjaF9jb25zdF9jb21wbGV4X3BhcnQpOiBMaWtld2lzZS4KCSogc2ltcGxpZnkuYyAoZ2V0X2tpbmQsIGdmY19zaW1wbGlmeV9iaXRfc2l6ZSwgZ2ZjX3NpbXBsaWZ5X2RpZ2l0cywKCWdmY19zaW1wbGlmeV9lcHNpbG9uLCBnZmNfc2ltcGxpZnlfaHVnZSwgZ2ZjX3NpbXBsaWZ5X2liY2xyLAoJZ2ZjX3NpbXBsaWZ5X2lic2V0LCBnZmNfc2ltcGxpZnlfaXNoZnQsIGdmY19zaW1wbGlmeV9pc2hmdGMsCglnZmNfc2ltcGxpZnlfbWF4ZXhwb25lbnQsIGdmY19zaW1wbGlmeV9taW5leHBvbmVudCwKCWdmY19zaW1wbGlmeV9uZWFyZXN0LCBnZmNfc2ltcGxpZnlfbm90LCBnZmNfc2ltcGxpZnlfcHJlY2lzaW9uLAoJZ2ZjX3NpbXBsaWZ5X3JhZGl4LCBnZmNfc2ltcGxpZnlfcmFuZ2UsIGdmY19zaW1wbGlmeV9ycnNwYWNpbmcsCglnZmNfc2ltcGxpZnlfc2NhbGUsIGdmY19zaW1wbGlmeV9zcGFjaW5nLCBnZmNfc2ltcGxpZnlfdGFuLAoJZ2ZjX3NpbXBsaWZ5X3RpbnkpOiBMaWtld2lzZS4KCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19haW50LCBnZmNfY29udl9pbnRyaW5zaWNfbW9kLAoJZ2ZjX2NvbnZfaW50cmluc2ljX21pbm1heGxvYywgZ2ZjX2NvbnZfaW50cmluc2ljX21pbm1heHZhbCwKCXByZXBhcmVfYXJnX2luZm8pOiBMaWtld2lzZS4KCjIwMDQtMDgtMjUgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBleHByLmMgKGdmY19jaGVja19hc3NpZ24pOiBBZGQgY29tbWVudC4gQWRkIG5ldyB3YXJuaW5nLgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2Z1bmN0aW9uX2NhbGwpOiBDb3JyZWN0bHkgZGVyZWZlcmVuY2UKIAlyZXN1bHQgb2YgcG9pbnRlciB2YWx1ZWQgZnVuY3Rpb24gd2hlbiBub3QgaW4gcG9pbnRlciBhc3NpZ25tZW50LgoKMjAwNC0wOC0yNSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy1sYW5nLmluOiBSZW1vdmUgZGVhZCBjb21tZW50ZWQgbGluZS4KCSogbW9kdWxlLmM6IFJlcGxhY2UgZzk1IHdpdGggZ2ZvcnRyYW4gaW4gY29tbWVudC4KCjIwMDQtMDgtMjUgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xNzE5MAoJKiBhcml0aC5jIChnZmNfbXBmcl90b19tcHopOiBXb3JrYXJvdW5kIG1wZnIgYnVnLgoKMjAwNC0wOC0yNSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBmb3J0cmFuLzE3MTQ0CgkqIHRyYW5zLWFycmF5LmMgKGdmY190cmFuc19hbGxvY2F0ZV90ZW1wX2FycmF5KTogUmVtb3ZlCglzdHJpbmdfbGVuZ3RoIGFyZ3VtZW50LgoJKGdmY190cmFuc19hcnJheV9jdG9yX2VsZW1lbnQpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX3RyYW5zX2FycmF5X2NvbnN0cnVjdG9yX3N1YmFycmF5KTogVXNlIGl0LgoJKGdmY190cmFuc19hcnJheV9jb25zdHJ1Y3Rvcl92YWx1ZSk6IERpdHRvLiAgSGFuZGxlIGNvbnN0YW50CgljaGFyYWN0ZXIgYXJyYXlzLgoJKGdldF9hcnJheV9jdG9yX3Zhcl9zdHJsZW4sIGdldF9hcnJheV9jdG9yX3N0cmxlbik6IE5ldyBmdW5jdGlvbnMuCgkoZ2ZjX3RyYW5zX2FycmF5X2NvbnN0cnVjdG9yKTogVXNlIHRoZW0uCgkoZ2ZjX2FkZF9sb29wX3NzX2NvZGUpOiBVcGRhdGUgdG8gbmV3IGdmY19zcyBsYXlvdXQuCgkoZ2ZjX2NvbnZfc3NfZGVzY3JpcHRvcik6IFJlbWVtYmVyIHNlY3Rpb24gc3RyaW5nIGxlbmd0aC4KCShnZmNfY29udl9zY2FsYXJpemVkX2FycmF5X3JlZik6IERpdHRvLiAgUmVtb3ZlIGRlYWQgY29kZS4KCShnZmNfY29udl9yZXNvbHZlX2RlcGVuZGVuY2llcyk6IFVwZGF0ZSB0byBuZXcgZ2ZjX3NzIGxheW91dC4KCShnZmNfY29udl9leHByX2Rlc2NyaXB0b3IpOiBEaXR0by4KCShnZmNfY29udl9sb29wX3NldHVwKTogRGl0dG8uICBTcGVsbGluZyBmaXhlcy4KCSogdHJhbnMtYXJyYXkuaCAoZ2ZjX3RyYW5zX2FsbG9jYXRlX3RlbXBfYXJyYXkpOiBVcGRhdGUgcHJvdG90eXBlLgoJKiB0cmFucy1jb25zdC5jIChnZmNfY29udl9jb25zdGFudCk6ICBVcGRhdGUgdG8gbmV3IGdmY19zcyBsYXlvdXQuCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfY29tcG9uZW50X3JlZik6IFR1cm4gZXJyb3IgaW50byBJQ0UuCgkoZ2ZjX2NvbnZfdmFyaWFibGUpOiBTZXQgc3RyaW5nX2xlbmd0aCBmcm9tIHNlY3Rpb24uCgkoZ2ZjX2NvbnZfZnVuY3Rpb25fY2FsbCk6IFJlbW92ZSBleHRyYSBhcmd1bWVudC4KCShnZmNfY29udl9leHByLCBnZmNfY29udl9leHByX3JlZmVyZW5jZSk6IFVwZGF0ZSB0byBuZXcgZ2ZjX3NzIGxheW91dC4KCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZV9sZW4pOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZSk6IFVzZSBpdC4KCShnZmNfZ2V0X2R0eXBlKTogUmV0dXJuIHplcm8gZm9yIGludGVybmFsIHR5cGVzLgoJKiB0cmFucy10eXBlcy5oIChnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlX2xlbik6IEFkZCBwcm90b3R5cGUuCgkqIHRyYW5zLmggKHN0cnVjdCBnZmNfc3MpOiBNb3ZlIHN0cmluZ19sZW5ndGggb3V0IG9mIHVuaW9uLgoKMjAwNC0wOC0yNSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLmggKGJ1aWxkMl92LCBidWlsZDNfdik6IE5ldyBtYWNyb3MuCgkoYnVpbGRfdik6IFJlbW92ZS4KCSogZjk1LWxhbmcuYyAoZ2ZjX3RydXRodmFsdWVfY29udmVyc2lvbik6IFVzZSBidWlsZDIgaW5zdGVhZCBvZgoJYnVpbGQuCgkqIHRyYW5zLWFycmF5LmMgKGdmY19jb252X2Rlc2NyaXB0b3JfZGF0YSwKCWdmY19jb252X2Rlc2NyaXB0b3Jfb2Zmc2V0LCBnZmNfY29udl9kZXNjcmlwdG9yX2RpbWVuc2lvbiwKCWdmY19jb252X2Rlc2NyaXB0b3Jfc3RyaWRlLCBnZmNfY29udl9kZXNjcmlwdG9yX2xib3VuZCwKCWdmY19jb252X2Rlc2NyaXB0b3JfdWJvdW5kLCBnZmNfdHJhbnNfYWxsb2NhdGVfYXJyYXlfc3RvcmFnZSwKCWdmY190cmFuc19hbGxvY2F0ZV90ZW1wX2FycmF5LAoJZ2ZjX3RyYW5zX2FycmF5X2NvbnN0cnVjdG9yX3N1YmFycmF5LAoJZ2ZjX3RyYW5zX2FycmF5X2NvbnN0cnVjdG9yX3ZhbHVlLCBnZmNfY29udl9hcnJheV9pbmRleF9yZWYsCglnZmNfdHJhbnNfYXJyYXlfYm91bmRfY2hlY2ssIGdmY19jb252X2FycmF5X2luZGV4X29mZnNldCwKCWdmY19jb252X3NjYWxhcml6ZWRfYXJyYXlfcmVmLCBnZmNfY29udl9hcnJheV9yZWYsCglnZmNfY29udl9hcnJheV9yZWYsIGdmY190cmFuc19wcmVsb29wX3NldHVwLAoJZ2ZjX3RyYW5zX3NjYWxhcml6ZWRfbG9vcF9lbmQsIGdmY19jb252X3NzX3N0YXJ0c3RyaWRlLAoJZ2ZjX2NvbnZfbG9vcF9zZXR1cCwgZ2ZjX2FycmF5X2luaXRfc2l6ZSwKCWdmY19jb252X2FycmF5X2luaXRpYWxpemVyLCBnZmNfdHJhbnNfYXJyYXlfYm91bmRzLAoJZ2ZjX3RyYW5zX2F1dG9fYXJyYXlfYWxsb2NhdGlvbiwgZ2ZjX3RyYW5zX2R1bW15X2FycmF5X2JpYXMsCglnZmNfY29udl9leHByX2Rlc2NyaXB0b3IsIGdmY19jb252X2FycmF5X3BhcmFtZXRlciwKCWdmY190cmFuc19kZWZlcnJlZF9hcnJheSk6IFVzZSBidWlsZE4gYW5kIGJ1aWxkTl92IG1hY3JvcyBpbnN0ZWFkCglvZiBidWlsZCBhbmQgYnVpbGRfdiBhcyBhcHByb3ByaWF0ZS4KCSogdHJhbnMtY29tbW9uLmMgKGNyZWF0ZV9jb21tb24pOiBTYW1lLgoJKiB0cmFucy1kZWNsLmMgKGdmY190cmFuc19hdXRvX2NoYXJhY3Rlcl92YXJpYWJsZSwKCWdmY190cmFuc19lbnRyeV9tYXN0ZXJfc3dpdGNoLCBnZmNfZ2VuZXJhdGVfZnVuY3Rpb25fY29kZSk6IFNhbWUuCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfZXhwcl9wcmVzZW50LCBnZmNfY29udl9zdWJzdHJpbmcsCglnZmNfY29udl9jb21wb25lbnRfcmVmLCBnZmNfY29udl91bmFyeV9vcCwgZ2ZjX2NvbnZfcG93aSwKCWdmY19jb252X2NzdF9pbnRfcG93ZXIsIGdmY19jb252X3N0cmluZ190bXAsIGdmY19jb252X2NvbmNhdF9vcCwKCWdmY19jb252X2V4cHJfb3AsIGdmY19jb252X2Z1bmN0aW9uX2NhbGwsCglnZmNfdHJhbnNfc3RydWN0dXJlX2Fzc2lnbik6IFNhbWUuCgkqIHRyYW5zLWludHJpbnNpYy5jIChidWlsZF9maXhib3VuZF9leHByLCBidWlsZF9yb3VuZF9leHByLAoJZ2ZjX2NvbnZfaW50cmluc2ljX2FpbnQsIGdmY19jb252X2ludHJpbnNpY19ib3VuZCwKCWdmY19jb252X2ludHJpbnNpY19jbXBseCwgZ2ZjX2NvbnZfaW50cmluc2ljX21vZCwKCWdmY19jb252X2ludHJpbnNpY19kaW0sIGdmY19jb252X2ludHJpbnNpY19zaWduLAoJZ2ZjX2NvbnZfaW50cmluc2ljX2Rwcm9kLCBnZmNfY29udl9pbnRyaW5zaWNfbWlubWF4LAoJZ2ZjX2NvbnZfaW50cmluc2ljX2FueWFsbCwgZ2ZjX2NvbnZfaW50cmluc2ljX2NvdW50LAoJZ2ZjX2NvbnZfaW50cmluc2ljX2FyaXRoLCBnZmNfY29udl9pbnRyaW5zaWNfbWlubWF4bG9jLAoJZ2ZjX2NvbnZfaW50cmluc2ljX21pbm1heHZhbCwgZ2ZjX2NvbnZfaW50cmluc2ljX2J0ZXN0LAoJZ2ZjX2NvbnZfaW50cmluc2ljX2JpdG9wLCBnZmNfY29udl9pbnRyaW5zaWNfc2luZ2xlYml0b3AsCglnZmNfY29udl9pbnRyaW5zaWNfaWJpdHMsIGdmY19jb252X2ludHJpbnNpY19pc2hmdCwKCWdmY19jb252X2ludHJpbnNpY19tZXJnZSwgZ2ZjX2NvbnZfaW50cmluc2ljX3N0cmNtcCwKCWdmY19jb252X2FsbG9jYXRlZCwgZ2ZjX2NvbnZfYXNzb2NpYXRlZCwgcHJlcGFyZV9hcmdfaW5mbywKCWdmY19jb252X2ludHJpbnNpY19zcGFjaW5nLCBnZmNfY29udl9pbnRyaW5zaWNfcnJzcGFjaW5nLAoJZ2ZjX2NvbnZfaW50cmluc2ljX3RyaW0sIGdmY19jb252X2ludHJpbnNpY19yZXBlYXQsCglnZmNfY29udl9pbnRyaW5zaWNfaWFyZ2MpOiBTYW1lLgoJKiB0cmFucy1pby5jIChzZXRfcGFyYW1ldGVyX3ZhbHVlLCBzZXRfcGFyYW1ldGVyX3JlZiwgc2V0X3N0cmluZywKCXNldF9mbGFnLCBhZGRfY2FzZSwgaW9fcmVzdWx0LCB0cmFuc2Zlcl9uYW1lbGlzdF9lbGVtZW50LAoJdHJhbnNmZXJfZXhwcik6IFNhbWUuCgkqIHRyYW5zLXN0bXQuYyAoZ2ZjX3RyYW5zX2dvdG8sIGdmY190cmFuc19yZXR1cm4sIGdmY190cmFuc19pZl8xLAoJZ2ZjX3RyYW5zX2FyaXRobWV0aWNfaWYsIGdmY190cmFuc19kbywgZ2ZjX3RyYW5zX2RvX3doaWxlLAoJZ2ZjX3RyYW5zX2ludGVnZXJfc2VsZWN0LCBnZmNfdHJhbnNfbG9naWNhbF9zZWxlY3QsCglnZmNfdHJhbnNfY2hhcmFjdGVyX3NlbGVjdCwgZ2ZjX3RyYW5zX2ZvcmFsbF9sb29wLAoJZ2ZjX3RyYW5zX25lc3RlZF9mb3JhbGxfbG9vcCwgZ2ZjX2RvX2FsbG9jYXRlLAoJZ2VuZXJhdGVfbG9vcF9mb3JfdGVtcF90b19saHMsIGdlbmVyYXRlX2xvb3BfZm9yX3Joc190b190ZW1wLAoJY29tcHV0ZV9pbm5lcl90ZW1wX3NpemUsIGNvbXB1dGVfb3ZlcmFsbF9pdGVyX251bWJlciwKCWFsbG9jYXRlX3RlbXBfZm9yX2ZvcmFsbF9uZXN0LCBnZmNfdHJhbnNfcG9pbnRlcl9hc3NpZ25fbmVlZF90ZW1wLAoJZ2ZjX3RyYW5zX2ZvcmFsbF8xLCBnZmNfZXZhbHVhdGVfd2hlcmVfbWFzaywKCWdmY190cmFuc193aGVyZV9hc3NpZ24sIGdmY190cmFuc19hbGxvY2F0ZSk6IFNhbWUuCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19nZXRfZHR5cGUsIGdmY19nZXRfYXJyYXlfdHlwZV9ib3VuZHMpOiBTYW1lLgoJKiB0cmFucy5jIChnZmNfYWRkX21vZGlmeV9leHByLCBnZmNfZmluaXNoX2Jsb2NrLAoJZ2ZjX2J1aWxkX2FycmF5X3JlZiwgZ2ZjX2J1aWxkX2Z1bmN0aW9uX2NhbGwsCglnZmNfdHJhbnNfcnVudGltZV9jaGVjayk6IFNhbWUuCgoyMDA0LTA4LTI1ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogdHJhbnMtY29uc3QuYyAoZ2ZjX2NvbnZfbXB6X3RvX3RyZWUpOiBDaGFuZ2UgY2FsbCB0bwoJYnVpbGRfaW50X2NzdCB0byBidWlsZF9pbnRfY3N0X3dpZGUgaW4gYWNjb3JkYW5jZSB0byBOYXRoYW4ncwoJcHJldmlvdXMgcGF0Y2guCgoyMDA0LTA4LTI1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5zX2FycmF5X2NvbnN0cnVjdG9yX3ZhbHVlKTogQWRqdXN0CglidWlsZF9pbnRfY3N0IGNhbGxzLgoJKiB0cmFucy1jb25zdC5jIChnZmNfYnVpbGRfc3RyaW5nX2NvbnN0LCBnZmNfaW5pdF9jb25zdGFudHMsCglnZmNfY29udl9tcHpfdG9fdHJlZSwgZ2ZjX2NvbnZfY29uc3RhbnRfdG9fdHJlZSk6IExpa2V3aXNlLgoJKiB0cmFucy1kZWNsLmMgKGdmY19nZXRfc3ltYm9sX2RlY2wsIGJ1aWxkX2VudHJ5X3RodW5rcywKCWdmY190cmFuc19lbnRyeV9tYXN0ZXJfc3dpdGNoKTogTGlrZXdpc2UuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfaWJpdHMsCglnZmNfY29udl9pbnRyaW5zaWNfbGVuLCBwcmVwYXJlX2FyZ19pbmZvKTogTGlrZXdpc2UuCgkqIHRyYW5zLWlvLmMgKGFkZF9jYXNlLCBzZXRfZXJyb3JfbG9jdXMsCgl0cmFuc2Zlcl9uYW1lbGlzdF9lbGVtZW50LCB0cmFuc2Zlcl9leHByKTogTGlrZXdpc2UuCgkqIHRyYW5zLXN0bXQuYyAoZ2ZjX3RyYW5zX2xhYmVsX2Fzc2lnbiwgZ2ZjX3RyYW5zX3BhdXNlLAoJZ2ZjX3RyYW5zX3N0b3AsIGdmY190cmFuc19jaGFyYWN0ZXJfc2VsZWN0KTogTGlrZXdpc2UuCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19pbml0X3R5cGVzLCBnZmNfZ2V0X2R0eXBlKTogTGlrZXdpc2UuCgkqIHRyYW5zLmMgKGdmY190cmFuc19ydW50aW1lX2NoZWNrKTogTGlrZXdpc2UuCgoyMDA0LTA4LTI0ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogdHJhbnMtZGVjbC5jLCB0cmFucy10eXBlcy5jOiBBZGQgYW5kIHJlbW92ZSBibGFuayBsaW5lcyBhcwoJcmVxdWlyZWQuCgoyMDA0LTA4LTI0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdHJhbnMtY29uc3QuYyAoZ2ZjX2NvbnZfbXB6X3RvX3RyZWUpOiBGaXggNjQtYml0IHNoaWZ0IHdhcm5pbmcuCgoyMDA0LTA4LTI0ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogcmVzb2x2ZS5jIChtZXJnZV9hcmd1bWVudF9saXN0cyk6IFJldmVydCB1bmludGVudGlvbmFsbHkKCWNvbW1pdHRlZCBjaGFuZ2UuCgoyMDA0LTA4LTI0ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogdHJhbnMtZGVjbC5jIChidWlsZF9mdW5jdGlvbl9kZWNsKTogRml4IHNwZWxsaW5nIGluIGNvbW1lbnQuCgkoYnVpbGRfZW50cnlfdGh1bmtzKTogUmVtb3ZlIGNvZGUgd2l0aCBubyBmdW5jdGlvbi4KCShnZmNfYnVpbGRfaW50cmluc2ljX2Z1bmN0aW9uX2RlY2xzKTogUmVtb3ZlIGVtcHR5IGxpbmUuCgoJKiByZXNvbHZlLmMgKHJlc29sdmVfZW50cmllcyk6IEZpeCBhIGJ1bmNoIG9mIGNvbW1lbnQgdHlwb3MuCgoyMDA0LTA4LTI0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZjk1LWxhbmcuYyAoZ2ZjX2luaXRfZGVjbF9wcm9jZXNzaW5nKTogQWRqdXN0CglidWlsZF9jb21tb25fdHJlZV9ub2RlcyBjYWxsLgoKMjAwNC0wOC0yNCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLXR5cGVzLmM6IFNwZWxsaW5nIGFuZCBmb3JtYXR0aW5nIGZpeGVzLgoKMjAwNC0wOC0yMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyYW5zLWNvbnN0LmMgKGdmY19jb252X21wel90b190cmVlKTogVXNlIG1wel9nZXRsaW1ibiBpbnN0ZWFkCglvZiBnb2luZyB0aHJvdWdoIGFuIGludGVybWVkaWF0ZSBzdHJpbmcuICBGaXggMzIvNjQgaW50L2xvbmcgYnVnLgoKMjAwNC0wOC0yMyAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiB0cmFucy10eXBlcy5jIChnZmNfdHlwZV9mb3JfbW9kZSk6IFJlbW92ZSBWRUNUT1JfVFlQRV9TVVBQT1JURURfUAoJdXNhZ2UuIFVzZSBidWlsZF92ZWN0b3JfdHlwZV9mb3JfbW9kZSBmb3IgdmVjdG9yIHR5cGVzLgoKMjAwNC0wOC0yMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiAxMzQ2NQoJKiBkYXRhLmMgKGZpbmRfY29uX2J5X29mZnNldCk6IFNlYXJjaCBvcmRlcmVkIGxpc3Q7IGhhbmRsZQoJZWxlbWVudHMgd2l0aCByZXBlYXQgY291bnRzLgoJKGdmY19hc3NpZ25fZGF0YV92YWx1ZV9yYW5nZSk6IE5ldy4KCSogZ2ZvcnRyYW4uaCAoc3RydWN0IGdmY19kYXRhX3ZhbHVlKTogTWFrZSByZXBlYXQgdW5zaWduZWQuCgkoZ2ZjX2Fzc2lnbl9kYXRhX3ZhbHVlX3JhbmdlKTogRGVjbGFyZS4KCSogbWF0Y2guYyAodG9wX3ZhbF9saXN0KTogRXh0cmFjdCByZXBlYXQgY291bnQgaW50byBhIHRlbXBvcmFyeS4KCSogcmVzb2x2ZS5jICh2YWx1ZXMpOiBNYWtlIGxlZnQgdW5zaWduZWQuCgkobmV4dF9kYXRhX3ZhbHVlKTogRG9uJ3QgZGVjcmVtZW50IGxlZnQuCgkoY2hlY2tfZGF0YV92YXJpYWJsZSk6IFVzZSBnZmNfYXNzaWduX2RhdGFfdmFsdWVfcmFuZ2UuCgoyMDA0LTA4LTIyICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogdHJhbnMtY29uc3QuYywgdHJhbnMtZGVjbC5jLCB0cmFucy1leHByLmM6IFNwZWxsaW5nIGZpeGVzLgoKMjAwNC0wOC0yMiAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGNoZWNrLmMgKGdmY19jaGVja19yZWR1Y3Rpb24pOiBSZW5hbWUgdG8gLi4uCgkoY2hlY2tfcmVkdWN0aW9uKTogLi4uIHRoaXMuIE1ha2Ugc3RhdGljLiBEb24ndCBjaGVjayB0eXBlIG9mCglmaXJzdCBhcmd1bWVudC4KCShnZmNfY2hlY2tfbWludmFsX21heHZhbCwgZ2ZjX2NoZWNrX3Byb2RjdXRfc3VtKTogTmV3IGZ1bmN0aW9ucy4KCSogaW50cmluc2ljLmMgKGFkZF9mdW5jdGlvbnMpOiBDaGFuZ2UgTUFYVkFMLCBNSU5WQUwsIFBST0RVQ1QgYW5kCglTVU0gdG8gdXNlIG5ldyBjaGVjayBmdW5jdGlvbnMuCgkoY2hlY2tfc3BlY2lmaWMpOiBDaGFuZ2UgbG9naWMgdG8gY2FsbCBuZXcgZnVuY3Rpb25zLgoJKiBpbnRyaW5zaWMuaCAoZ2ZjX2NoZWNrX21pbnZhbF9tYXh2YWwsIGdmY19jaGVja19wcm9kdWN0X3N1bSk6CglBZGQgcHJvdG90eXBlcy4KCShnZmNfY2hlY2tfcmVkdWN0aW9uKTogUmVtb3ZlIHByb3RvdHlwZS4KCjIwMDQtMDgtMjAgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CglDYW5xdW4gWWFuZyAgPGNhbnF1bkBudWR0LmVkdS5jbj4KCglQUiBmb3J0cmFuLzE3MDc3CgkqIHRyYW5zLWFycmF5LmMgKGdmY19jb252X2FycmF5X3BhcmFtZXRlcik6IFBhc3MgY29ycmVjdCBwb2ludGVyCglmb3IgYXV0b21hdGljIGFycmF5cy4KCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX2dldF9ub2Rlc2NfYXJyYXlfdHlwZSk6IEFkZCBjb21tZW50LgoKMjAwNC0wOC0xOSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCShQb3J0IGZyb20gZzk1KQoKCVBSIGZvcnRyYW4vMTcwNzQKCSogbWF0Y2guYyAobWF0Y2hfc2ltcGxlX2ZvcmFsbCwgbWF0Y2hfc2ltcGxlX3doZXJlKTogRm9yd2FyZC1kZWNsYXJlLgoJKGdmY19tYXRjaF9pZik6IE9yZGVyIHN0YXRlbWVudCBsaXN0IGFscGhhYmV0aWNhbGx5LCBhZGQgV0hFUkUgYW5kCglGT1JBTEwsIHJlbW92ZSBkb3VibGUgUEFVU0UuCgkoZ2ZjX21hdGNoX3NpbXBsZV93aGVyZSwgbWF0Y2hfZm9yYWxsX2hlYWRlciwKCWdmY19tYXRjaF9zaW1wbGVfZm9yYWxsKTogTmV3IGZ1bmN0aW9ucy4KCShnZmNfbWF0Y2hfZm9yYWxsKTogVXNlIG1hdGNoX2ZvcmFsbF9oZWFkZXIuCgoyMDA0LTA4LTE5ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTcwOTEKCSogZ2ZvcnRyYW4uaCAoZ2ZjX2FjY2Vzcyk6IEdpdmUgQUNDRVNTX1VOS05PV04gdmFsdWUgMC4KCSogc3ltYm9sLmMgKGdmY19jbGVhcl9hdHRyKTogVXNlIG1lbXNldC4KCjIwMDQtMDgtMTkgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xNDk3NgoJUFIgZm9ydHJhbi8xNjIyOAoJKiBkYXRhLmMgKGFzc2lnbl9zdWJzdHJpbmdfZGF0YV92YWx1ZSk6IFJlbW92ZS4KCShjcmVhdGVfY2hhcmFjdGVyX2ludGlhbGl6ZXIpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2Fzc2lnbl9kYXRhX3ZhbHVlKTogVHJhY2sgdGhlIHR5cGVzcGVjIGZvciB0aGUgY3VycmVudAoJc3Vib2JqZWN0LiAgVXNlIGNyZWF0ZV9jaGFyYWN0ZXJfaW50aWFsaXplci4KCjIwMDQtMDgtMTkgIEVyaWsgU2NobmV0dGVyICA8c2NobmV0dGVyQGFlaS5tcGcuZGU+CgoJUFIgZm9ydHJhbi8xNjk0NgoJKiBjaGVjay5jIChnZmNfY2hlY2tfcmVkdWN0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19jaGVja19taW52YWxfbWF4dmFsKTogUmVtb3ZlZC4KCShnZmNfY2hlY2tfcHJvZHVjdCk6IFJlbW92ZWQuCgkoZ2ZjX2NoZWNrX3N1bSk6IFJlbW92ZWQuCgkqIGludHJpbnNpYy5oOiBBZGQvcmVtb3ZlIGRlY2xhcmF0aW9ucyBmb3IgdGhlc2UuCgkqIGdmb3J0cmFuLmg6IEFkZCBmaWVsZCBmM3JlZCB0byB1bmlvbiBnZmNfY2hlY2tfZi4KCSogaW50cmluc2ljLmMgKGFkZF9zeW1fM3JlZCk6IE5ldyBmdW5jdGlvbi4KCShhZGRfZnVuY3Rpb25zKTogUmVnaXN0ZXIgbWF4dmFsLCBtaW52YWwsIHByb2R1Y3QsIGFuZCBzdW0gaW50cmluc2ljcwoJdGhyb3VnaCBhZGRfc3ltXzNyZWQuCgkoY2hlY2tfc3BlY2lmaWMpOiBIYW5kbGUgZjNyZWQgdW5pb24gZmllbGQuCgkqIGlyZXNvbHZlLmM6IFdoaXRlc3BhY2UgY2hhbmdlLgoKMjAwNC0wOC0xOCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19zeW1fdHlwZSk6IFVzZSBwb2ludGVyIHR5cGVzIGZvciBvcHRpb25hbCBhcmdzLgoKMjAwNC0wOC0xOCAgVmljdG9yIExlaWtlaG1hbiAgPGxlaUBpbC5pYm0uY29tPgoKCVBSIGZvcnRyYW4vMTMyNzgKCSogdHJhbnMtaW8uYyAodHJhbnNmZXJfbmFtZWxpc3RfZWxlbWVudCk6IE5ldy4gUmVjdXJzaXZlbHkgaGFuZGxlCglkZXJpdmVkLXR5cGUgdmFyaWFibGVzLiAgUGFzcyBzdHJpbmcgbGVuZ3Rocy4KCShidWlsZF9kdCk6IENvZGUgbW92ZWQgdG8gYnVpbGRfbmFtZWxpc3QsIHdpdGggc29tZQoJY2hhbmdlcyBhbmQgYWRkaXRpb25zLgoJKGdmY19idWlsZF9pb19saWJyYXJ5X2ZuZGVjbHMpOiBEZWNsYXJlIHRoZSBmaWZ0aAoJYXJndW1lbnQgaW4gc3Rfc2V0X25tbF92YXJfY2hhciAtLSBzdHJpbmdfbGVuZ3RoLgoKMjAwNC0wOC0xNyAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCVRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xMzA4MgoJKiBkZWNsLmMgKGdldF9wcm9jX25hbWUpOiBVcGRhdGUgbXlzdGVyeSBjb21tZW50LgoJKGdmY19tYXRjaF9lbnRyeSk6IENoZWNrIGZvciBlcnJvcnMgZWFybGllci4gIEFkZCBlbnRyeSBwb2ludCB0byBsaXN0LgoJKiBkdW1wLXBhcnNlLXRyZWUuYyAoZ2ZjX3Nob3dfY29kZV9ub2RlKTogUHJpbnQgRVhFQ19FTlRSWSBub2Rlcy4KCSogZ2ZvcnRyYW4uaCAoc3ltYm9sX2F0dHJpYnV0ZSk6IEFkZCBlbnRyeV9tYXN0ZXIuICBEb2N1bWVudCBlbnRyeS4KCShzdHJ1Y3QgZ2ZjX2VudHJ5X2xpc3QpOiBEZWZpbmUuCgkoZ2ZjX2dldF9lbnRyeV9saXN0KTogRGVmaW5lLgoJKHN0cnVjdCBnZmNfbmFtZXNwYWNlKTogQWRkIHJlZnMgYW5kIGVudHJpZXMuCgkoZW51bSBnZmNfZXhlY19vcCk6IEFkZCBFWEVDX0VOVFJZLgoJKHN0cnVjdCBnZmNfY29kZSk6IEFkZCBleHQuZW50cnkuCgkqIG1vZHVsZS5jIChhYl9hdHRyaWJ1dGUsIGF0dHJfYml0cyk6IFJlbW92ZSBBQl9FTlRSWS4KCShtaW9fc3ltYm9sX2F0dHJpYnV0ZSk6IERvbid0IHNhdmUvcmV0dXJlIGFkZHItPmVudHJ5LgoJKG1pb19uYW1lc3BhY2VfcmVmKTogUmVmY291bnQgbmFtZXNwYWNlcy4KCSogcGFyc2UuYyAoYWNjZXB0X3N0YXRlbWVudCk6IEhhbmRsZSBTVF9FTlRSWS4KCShnZmNfZml4dXBfc2libGluZ19zeW1ib2xzKTogTWFyayBzeW1ib2wgYXMgcmVmZXJlbmNlZC4KCShwYXJzZV9jb250YWluZWQpOiBGaXh1cCBzaWJsaW5nIHJlZmVyZW5jZXMgdG8gZW50cnkgcG9pbnRzCglhZnRlciBwYXJzaW5nIHRoZSBwcm9jZWR1cmUgYm9keS4KCSogcmVzb2x2ZS5jIChyZXNvbHZlX2NvbnRhaW5lZF9mbnR5cGUpOiBOZXcgZnVuY3Rpb24uCgkobWVyZ2VfYXJndW1lbnRfbGlzdHMsIHJlc29sdmVfZW50cmllcyk6IE5ldyBmdW5jdGlvbnMuCgkocmVzb2x2ZV9jb250YWluZWRfZnVuY3Rpb25zKTogVXNlIHRoZW0uCgkocmVzb2x2ZV9jb2RlKTogSGFuZGxlIEVYRUNfRU5UUlkuCgkoZ2ZjX3Jlc29sdmUpOiBDYWxsIHJlc29sdmVfZW50cmllcy4KCSogc3QuYyAoZ2ZjX2ZyZWVfc3RhdGVtZW50KTogSGFuZGxlIEVYRUNfRU5UUlkuCgkqIHN5bWJvbC5jIChnZmNfZ2V0X25hbWVzcGFjZSk6IFJlZmNvdW50IG5hbWVzcGFjZXMuCgkoZ2ZjX2ZyZWVfbmFtZXNwYWNlKTogRGl0dG8uCgkqIHRyYW5zLWFycmF5LmMgKGdmY190cmFuc19kdW1teV9hcnJheV9iaWFzKTogVHJlYXQgYWxsIGFyZ3MgYXMKCW9wdGlvbmFsIHdoZW4gbXVsdGlwbGUgZW50cnkgcG9pbnRzIGFyZSBwcmVzZW50LgoJKiB0cmFucy1kZWNsLmMgKGdmY19nZXRfc3ltYm9sX2RlY2wpOiBSZW1vdmUgaW5jb3JyZWN0IGNoZWNrLgoJKGdmY19nZXRfZXh0ZXJuX2Z1bmN0aW9uX2RlY2wpOiBBZGQgYXNzZXJ0aW9uLiAgRml4IGNvbWVudC4KCShjcmVhdGVfZnVuY3Rpb25fYXJnbGlzdCwgdHJhbnNfZnVuY3Rpb25fc3RhcnQsIGJ1aWxkX2VudHJ5X3RodW5rcyk6CglOZXcgZnVuY3Rpb25zLgoJKGdmY19idWlsZF9mdW5jdGlvbl9kZWNsKTogUmVuYW1lIC4uLgoJKGJ1aWxkX2Z1bmN0aW9uX2RlY2wpOiAuLi4gdG8gdGhpcy4KCShnZmNfY3JlYXRlX2Z1bmN0aW9uX2RlY2wpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2dlbmVyYXRlX2NvbnRhaW5lZF9mdW5jdGlvbnMpOiBVc2UgaXQuCgkoZ2ZjX3RyYW5zX2VudHJ5X21hc3Rlcl9zd2l0Y2gpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2dlbmVyYXRlX2Z1bmN0aW9uX2NvZGUpOiBVc2UgbmV3IGZ1bmN0aW9ucy4KCSogdHJhbnMtc3RtdC5jIChnZmNfdHJhbnNfZW50cnkpOiBOZXcgZnVuY3Rpb24uCgkqIHRyYW5zLXN0bXQuaCAoZ2ZjX3RyYW5zX2VudHJ5KTogQWRkIHByb3RvdHlwZS4KCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX2dldF9mdW5jdGlvbl90eXBlKTogQWRkIGVudHJ5IHBvaW50IGFyZ3VtZW50LgoJKiB0cmFucy5jIChnZmNfdHJhbnNfY29kZSk6IEhhbmRsZSBFWEVDX0VOVFJZLgoJKGdmY19nZW5lcmF0ZV9tb2R1bGVfY29kZSk6IENhbGwgZ2ZjX2NyZWF0ZV9mdW5jdGlvbl9kZWNsLgoJKiB0cmFucy5oIChnZmNfYnVpbGRfZnVuY3Rpb25fZGVjbCk6IFJlbW92ZS4KCShnZmNfY3JlYXRlX2Z1bmN0aW9uX2RlY2wpOiBBZGQgcHJvdG90eXBlLgoKMjAwNC0wOC0xNSAgQW5kcmV3IFBpbnNraSAgPGFwaW5za2lAYXBwbGUuY29tPgoKCVBSIGZvcnRyYW4vMTcwMzAKCSogZjk1LWxhbmcuYyAoZ2ZjX2luaXRfYnVpbHRpbl9mdW5jdGlvbnMpOiBJbml0aWFsaXplIHRoZSBidWlsdGlucwoJZm9yIGNhYnN7LGZ9IGFuZCBjb3B5c2lnbnssZn0uCgkqIHRyYW5zLWRlY2wuYyAoZ2Zvcl9mbmRlY2xfbWF0aF9jYWJzZik6IERlbGV0ZS4KCShnZm9yX2ZuZGVjbF9tYXRoX2NhYnMpOiBEZWxldGUuCgkoZ2Zvcl9mbmRlY2xfbWF0aF9zaWduNCk6IERlbGV0ZS4KCShnZm9yX2ZuZGVjbF9tYXRoX3NpZ244KTogRGVsZXRlLgoJKGdmY19idWlsZF9pbnRyaW5zaWNfZnVuY3Rpb25fZGVjbHMpOiBSZW1vdmUgdGhlCglpbml0aWFsaXppbmcgb2YgY2Fic3ssZn0gYW5kIGNvcHlzaWdueyxmfSBmdW5jdGlvbnMuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfYWJzKTogVXNlIHRoZSBidWlsdGlucwoJaW5zdGVhZCBvZiB0aGUgZnVuY3Rpb25zIGRlZmluaXRpb25zLgoJKGdmY19jb252X2ludHJpbnNpY19zaWduKTogTGlrZXdpc2UuCgkqIHRyYW5zLmggKGdmb3JfZm5kZWNsX21hdGhfY2Fic2YpOiBEZWxldGUuCgkoZ2Zvcl9mbmRlY2xfbWF0aF9jYWJzKTogRGVsZXRlLgoJKGdmb3JfZm5kZWNsX21hdGhfc2lnbjQpOiBEZWxldGUuCgkoZ2Zvcl9mbmRlY2xfbWF0aF9zaWduOCk6IERlbGV0ZS4KCjIwMDQtMDgtMTUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmFucy1hcnJheS5jIChnZmNfdHJhbnNfYXJyYXlfY29uc3RydWN0b3JfdmFsdWUpOiBVc2UKCWJ1aWxkX2ludF9jc3QuCgkqIHRyYW5zLWNvbnN0LmMgKGdmY19idWlsZF9zdHJpbmdfY29uc3QsCglnZmNfaW5pdF9jb25zdGFudHMsIGdmY19jb252X21wel90b190cmVlLAoJZ2ZjX2NvbnZfY29uc3RhbnRfdG9fdHJlZSk6IExpa2V3aXNlLgoJKiB0cmFucy1kZWNsLmMgKGdmY19nZXRfc3ltYm9sX2RlY2wpOiBMaWtld2lzZS4KCSogdHJhbnMtaW50cmluc2ljLmMgKGdmY19jb252X2ludHJpbnNpY19pYml0cywKCWdmY19jb252X2ludHJpbnNpY19sZW4sIHByZXBhcmVfYXJnX2luZm8pOiBMaWtld2lzZS4KCSogdHJhbnMtaW8uYyAoYWRkX2Nhc2UsIHNldF9lcnJvcl9sb2N1cywgYnVpbGRfZHQsCgl0cmFuc2Zlcl9leHByKTogTGlrZXdpc2UuCgkqIHRyYW5zLXN0bXQuYyAoZ2ZjX3RyYW5zX2xhYmVsX2Fzc2lnbiwgZ2ZjX3RyYW5zX3BhdXNlLAoJZ2ZjX3RyYW5zX3N0b3AsIGdmY190cmFuc19jaGFyYWN0ZXJfc2VsZWN0KTogTGlrZXdpc2UuCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19pbml0X3R5cGVzLCBnZmNfZ2V0X2R0eXBlKTogTGlrZXdpc2UuCgkqIHRyYW5zLmMgKGdmY190cmFuc19ydW50aW1lX2NoZWNrKTogTGlrZXdpc2UuCgoyMDA0LTA4LTE0ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJhbnMtZGVjbC5jIChnZmNfYnVpbGRfZnVuY3Rpb25fZGVjbCk6IFJlbW92ZSBkZWFkIGNvZGUuCgoyMDA0LTA4LTE0ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJhbnMtYXJyeS5jIChnZmNfdHJhbnNfYXV0b19hcnJheV9hbGxvY2F0aW9uKTogUmVtb3ZlIHVudXNlZCB2YXIuCgoyMDA0LTA4LTEzICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogZ2ZvcnRyYW4uaDogQWRkIGNvbW1lbnRzLgoJKiBwYXJzZS5jIChwYXJzZV9jb250YWluZWQpOiBGaXggY29tbWVudCB0eXBvLgoJKiByZXNvbHZlLmMgKHdhc19kZWNsYXJlZCk6IERpdHRvLgoJKiBzeW1ib2wuYzogRGl0dG8uCgoyMDA0LTA4LTExICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xNjkxNwoJKiBpbnRyaW5zaWMuYyAoYWRkX2Z1bmN0aW9ucyk6IEFkZCBkZmxvYXQgYXMgYW4gYWxpYXMgZm9yIGRibGUuCgoyMDA0LTA4LTEwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZjk1LWxhbmcuYyAoZ2ZjX2luaXRfYnVpbHRpbl9mdW5jdGlvbnMpOiBSZW1vdmUKCSBfX2J1aWx0aW5fc3RhY2tfYWxsb2MsIGFkZCBfX2J1aWx0aW5fYWxsb2NhLgoJKiB0cmFucy1hcnJheS5jIChnZmNfdHJhbnNfYXV0b19hcnJheV9hbGxvY2F0aW9uKTogVXNlIERFQ0xfRVhQUi4KCSogdHJhbnMtZGVjbC5jIChnZmNfdHJhbnNfYXV0b19jaGFyYWN0ZXJfdmFyaWFibGUpOiBMaWtld2lzZS4KCjIwMDQtMDgtMTAgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmFucy1pby5jICh0cmFuc2Zlcl9leHByKTogSGFuZGxlIHBvaW50dGVycy4KCjIwMDQtMDgtMTAgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xNjkxOQoJKiB0cmFucy1hcnJheS5jIChnZmNfYWRkX2xvb3Bfc3NfY29kZSk6IEhhbmRsZSBHRkNfU1NfQ09NUE9ORU5ULgoJKGdmY19jb252X2FycmF5X2luZGV4X29mZnNldCk6IEFsbG93ICJ0ZW1wb3JhcnkiIHdpdGggbm9uemVybyBkZWx0YS4KCShnZmNfdHJhbnNfcHJlbG9vcF9zZXR1cCwgZ2ZjX3RyYW5zX3NjYWxhcml6ZWRfbG9vcF9ib3VuZGFyeSk6CglIYW5kbGUgR0ZDX1NTX0NPTVBPTkVOVC4KCShnZmNfY29udl9zc19zdGFydHN0cmlkZSk6IERpdHRvLiAgU2V0IHNzLT5zaGFwZS4KCShnZmNfY29udl9sb29wX3NldHVwKTogVHdlYWsgY29tbWVuZHMuIFJlbW92ZSBkZWFkIGNvZGUuCglVc2Ugc3MtPnNoYXBlLgoJKGdmY19jb252X2FycmF5X2luaXRpYWxpemVyKTogQ2FsbCBzcGVjaWZpYyBpbml0aWFsaXplciByb3V0aW5lcy4KCSogdHJhbnMtZXhwci5jIChnZmNfdHJhbnNfc3RydWN0dXJlX2Fzc2lnbik6IE5ldyBmdW5jdGlvbi4KCShnZmNfdHJhbnNfc3ViYXJyYXlfYXNzaWduKTogTmV3IGZ1bmN0aW9uLgoJKGdmY190cmFuc19zdWJjb21wb25lbnRfYXNzaWduKTogTmV3IGZ1Y250aW9uCgkoZ2ZjX2NvbnZfc3RydWN0dXJlKTogVXNlIHRoZW0uCgkqIHRyYW5zLmggKGdmY19zc190eXBlKTogQWRkIEdGQ19TU19DT01QT05FTlQuCgkoZ2ZjX3NzKTogQWRkIHNoYXBlLgoKMjAwNC0wOC0wOCAgVmljdG9yIExlaWtlaG1hbiAgPGxlaUBpbC5pYm0uY29tPgoKCSogc2ltcGxpZnkuYyAoZ2ZjX3NpbXBsaWZ5X3NoYXBlKTogQnVnZml4LgoJKiBleHByLmMgKGdmY19jb3B5X3NoYXBlX2V4Y2x1ZGluZyk6IE5ldyBmdW5jdGlvbi4KCSogZ2ZvcnRyYW4uaCAoZ2ZjX2dldF9zaGFwZSk6IEJ1Z2ZpeC4KCShnZmNfY29weV9zaGFwZV9leGNsdWRpbmcpOiBBZGRlZCBkZWNsYXJhdGlvbi4KCSogaXJlc29sdmUuYyAoZ2ZjX3Jlc29sdmVfYWxsLCBnZmNfcmVzb2x2ZV9hbnksIGdmY19yZXNvbHZlX2NvdW50LAoJZ2ZjX3Jlc29sdmVfY3NoaWZ0LCBnZmNfcmVzb2x2ZV9lb3NoaWZ0LCBnZmNfcmVzb2x2ZV9sYm91bmQsCglnZmNfcmVzb2x2ZV91Ym91bmQsIGdmY19yZXNvbHZlX3RyYW5zcG9zZSk6IEFkZGVkIGNvbXBpbGUKCXRpbWUgcmVzb2x1dGlvbiBvZiBzaGFwZS4KCjIwMDQtMDgtMDYgIEphbm5lIEJsb21xdmlzdCAgPGpibG9tcXZpQGNjLmh1dC5maT4KCgkqIGludHJpbnNpYy5jIChhZGRfc3Vicm91dGluZXMpOiBBZGQgZ2V0ZW52IGFuZAoJZ2V0X2Vudmlyb25tZW50X3ZhcmlhYmxlLiAoYWRkX3N5bV81cyk6IE5ldyBmdW5jdGlvbi4KCSogaW50cmluc2ljLmggKGdmY19yZXNvbHZlX2dldF9lbnZpcm9ubWVudF92YXJpYWJsZSk6IEFkZAoJcHJvdG90eXBlLgoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9nZXRfZW52aXJvbm1lbnRfdmFyaWFibGUpOiBOZXcKCWZ1bmN0aW9uLgoKMjAwNC0wOC0wNiAgRmVuZyBXYW5nICA8ZmVuZ3dhbmdAbnVkdC5lZHUuY24+CgoJKiBmOTUtbGFuZy5jIChnZmNfaW5pdF9idWlsdGluX2Z1bmN0aW9ucyk6IEZpeCB0aGUgbnVtYmVyIG9mCglfX2J1aWx0aW5fcG93W2ZdIGFyZ3VtZW50cy4KCjIwMDQtMDgtMDYgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIGFyaXRoLmM6IEFkZCAjZGVmaW5lIGZvciBtb2RlbCBudW1iZXJzLiAgUmVtb3ZlIGdsb2JhbCBHTVAgdmFyaWFibGVzLgoJKG5hdHVyYWxfbG9nYXJpdGhtLGNvbW1vbl9sb2dhcml0aG0sZXhwb25lbnRpYWwsc2luZSwKCWNvc2luZSxhcmN0YW5nZW50LGh5cGVyY29zLGh5cGVyc2luZSApOiBSZW1vdmUuCgkoZ2ZjX21wZnJfdG9fbXB6LGdmY19zZXRfbW9kZWxfa2luZCxnZmNfc2V0X21vZGVsKTogTmV3IGZ1bmN0aW9ucy4KCShhcmN0YW5nZW50MixnZmNfYXJpdGhfaW5pdF8xLGdmY19hcml0aF9kb25lXzEKCWdmY19jaGVja19yZWFsX3JhbmdlLCBnZmNfY29uc3RhbnRfcmVzdWx0LCBnZmNfcmFuZ2VfY2hlY2ssCglnZmNfYXJpdGhfdW1pbnVzLGdmY19hcml0aF9wbHVzLCBnZmNfYXJpdGhfbWludXMsIGdmY19hcml0aF90aW1lcywKCWdmY19hcml0aF9kaXZpZGUsY29tcGxleF9yZWNpcHJvY2FsLGNvbXBsZXhfcG93X3VpLAoJZ2ZjX2FyaXRoX3Bvd2VyLGdmY19jb21wYXJlX2V4cHIsY29tcGFyZV9jb21wbGV4LGdmY19jb252ZXJ0X3JlYWwsCglnZmNfY29udmVydF9jb21wbGV4LGdmY19pbnQycmVhbCxnZmNfaW50MmNvbXBsZXgsCglnZmNfcmVhbDJpbnQsZ2ZjX3JlYWwycmVhbCxnZmNfcmVhbDJjb21wbGV4LAoJZ2ZjX2NvbXBsZXgyaW50LGdmY19jb21wbGV4MnJlYWwsZ2ZjX2NvbXBsZXgyY29tcGxleCk6IENvbnZlcnQgR01QCgl0byBNUEZSLCB1c2UgbmV3IGZ1bmN0aW9ucy4KCSogYXJpdGguaDogUmVtb3ZlIGV4dGVybiBnbG9iYWwgdmFyaWFibGVzLgoJKG5hdHVyYWxfbG9nYXJpdGhtLGNvbW1vbl9sb2dhcml0aG0sZXhwb25lbnRpYWwsIHNpbmUsIGNvc2luZSwKCWFyY3RhbmdlbnQsaHlwZXJjb3MsaHlwZXJzaW5lKTogUmVtb3ZlIHByb3RvdHlwZXMuCgkoYXJjdGFuZ2VudDIpOiBVcGRhdGUgcHJvdG90eXBlIGZyb20gR01QIHRvIE1QRlIuCgkoZ2ZjX21wZnJfdG9fbXB6LCBnZmNfc2V0X21vZGVsX2tpbmQsZ2ZjX3NldF9tb2RlbCk6IEFkZCBwcm90b3R5cGVzLgoJKiBkdW1wLXBhcnNlLXRyZWUuYyAoZ2ZjX3Nob3dfZXhwcik6IENvbnZlcnQgR01QIHRvIE1QRlIuCgkqIGV4cHIuYyAoZnJlZV9leHByMCxnZmNfY29weV9leHByKTogQ29udmVydCBHTVAgdG8gTVBGUi4KCSogZ2ZvcnRyYW4uaCAoR0ZDX1JFQUxfQklUUyk6IFJlbW92ZS4KCShhcml0aCk6IEFkZCBBUklUSF9OQU4uCglJbmNsdWRlIG1wZnIuaC4gIERlZmluZSBHRkNfUk5EX01PREUuCglSZW5hbWUgR0NDX0dGT1JUUkFOX0ggR0ZDX0dGQ19ILgoJKGdmY19leHByKTogQ29udmVydCBHTVAgdG8gTVBGUi4KCSogbW9kdWxlLmM6IEFkZCBhcml0aC5oLCBjb3JyZWN0IHR5cGUgaW4gY29tbWVudC4KCShtaW9fZ21wX3JlYWwpOiBDb252ZXJ0IEdNUCB0byBNUEZSLgoJKG1pb19leHByKTogIFVzZSBnZmNfc2V0X21vZGVsX2tpbmQoKS4KCSogcHJpbWFyeS5jOiAgVXBkYXRlIGNvcHlyaWdodCBkYXRlIHdpdGggMjAwNC4KCShtYXRjaF9yZWFsX2NvbnN0YW50LG1hdGNoX2NvbnN0X2NvbXBsZXhfcGFydCk6IENvbnZlcnQgR01QIHRvIE1QRlIuCgkqIHNpbXBsaWZ5LmM6IFJlbW92ZSBnbG9iYWwgR01QIHZhcmlhYmxlcwoJKGdmY19zaW1wbGlmeV9hYnMsZ2ZjX3NpbXBsaWZ5X2Fjb3MsZ2ZjX3NpbXBsaWZ5X2FpbWFnLAoJZ2ZjX3NpbXBsaWZ5X2FpbnQsZ2ZjX3NpbXBsaWZ5X2RpbnQsZ2ZjX3NpbXBsaWZ5X2FuaW50LAoJZ2ZjX3NpbXBsaWZ5X2RuaW50LGdmY19zaW1wbGlmeV9hc2luLGdmY19zaW1wbGlmeV9hdGFuLAoJZ2ZjX3NpbXBsaWZ5X2F0YW4yLGdmY19zaW1wbGlmeV9jZWlsaW5nLHNpbXBsaWZ5X2NtcGx4LAoJZ2ZjX3NpbXBsaWZ5X2NvbmpnLGdmY19zaW1wbGlmeV9jb3MsZ2ZjX3NpbXBsaWZ5X2Nvc2gsCglnZmNfc2ltcGxpZnlfZGltLGdmY19zaW1wbGlmeV9kcHJvZCxnZmNfc2ltcGxpZnlfZXBzaWxvbiwKCWdmY19zaW1wbGlmeV9leHAsZ2ZjX3NpbXBsaWZ5X2V4cG9uZW50LGdmY19zaW1wbGlmeV9mbG9vciwKCWdmY19zaW1wbGlmeV9mcmFjdGlvbixnZmNfc2ltcGxpZnlfaHVnZSxnZmNfc2ltcGxpZnlfaW50LAoJZ2ZjX3NpbXBsaWZ5X2lmaXgsZ2ZjX3NpbXBsaWZ5X2lkaW50LGdmY19zaW1wbGlmeV9sb2csCglnZmNfc2ltcGxpZnlfbG9nMTAsc2ltcGxpZnlfbWluX21heCxnZmNfc2ltcGxpZnlfbW9kLAoJZ2ZjX3NpbXBsaWZ5X21vZHVsbyxnZmNfc2ltcGxpZnlfbmVhcmVzdCxzaW1wbGlmeV9uaW50LAoJZ2ZjX3NpbXBsaWZ5X3Jyc3BhY2luZyxnZmNfc2ltcGxpZnlfc2NhbGUsCglnZmNfc2ltcGxpZnlfc2V0X2V4cG9uZW50LGdmY19zaW1wbGlmeV9zaWduLGdmY19zaW1wbGlmeV9zaW4sCglnZmNfc2ltcGxpZnlfc2luaCxnZmNfc2ltcGxpZnlfc3BhY2luZyxnZmNfc2ltcGxpZnlfc3FydCwKCWdmY19zaW1wbGlmeV90YW4sZ2ZjX3NpbXBsaWZ5X3RhbmgsZ2ZjX3NpbXBsaWZ5X3RpbnksCglnZmNfc2ltcGxpZnlfaW5pdF8xLGdmY19zaW1wbGlmeV9kb25lXzEpOiAgQ29udmVydCBHTVAgdG8gTVBGUi4KCVVzZSBuZXcgZnVuY3Rpb25zLgoJKiB0cmFucy1jb25zdC5jIChnZmNfY29udl9tcGZyX3RvX3RyZWUpOiBSZW5hbWUgZnJvbQoJZ2ZjX2NvbnZfbXBmX3RvX3RyZWUuICBDb252ZXJ0IGl0IHRvIHVzZSBNUEZSCgkoZ2ZjX2NvbnZfY29uc3RhbnRfdG9fdHJlZSk6IFVzZSBpdC4KCSogdHJhbnMtY29uc3QuaDogVXBkYXRlIHByb3RvdHlwZSBmb3IgZ2ZjX2NvbnZfbXBmcl90b190cmVlKCkuCgkqIHRyYW5zLWludHJpbnNpYy5jOiBBZGQgYXJpdGguaCwgcmVtb3ZlIGdtcC5oCgkoZ2ZjX2NvbnZfaW50cmluc2ljX2FpbnQsZ2ZjX2NvbnZfaW50cmluc2ljX21vZCk6IENvbnZlcnQgR01QIHRvIE1QRlIuCgoyMDA0LTA4LTA2ICBWaWN0b3IgTGVpa2VobWFuICA8bGVpQGlsLmlibS5jb20+CglQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5zX2FsbG9jYXRlX2FycmF5X3N0b3JhZ2UsCglnZmNfdHJhbnNfYWxsb2NhdGVfdGVtcF9hcnJheSwgZ2ZjX2FkZF9sb29wX3NzX2NvZGUsCglnZmNfY29udl9sb29wX3NldHVwKTogRm9yIGZ1bmN0aW9ucywgaWYgdGhlIHNoYXBlIG9mIHRoZSByZXN1bHQKCWlzIG5vdCBrbm93biBpbiBjb21waWxlLXRpbWUsIGdlbmVyYXRlIGFuIGVtcHR5IGFycmF5IGRlc2NyaXB0b3IgZm9yCgl0aGUgcmVzdWx0IGFuZCBsZXQgdGhlIGNhbGxlZSB0byBhbGxvY2F0ZSB0aGUgbWVtb3J5LgoJKGdmY190cmFuc19kdW1teV9hcnJheV9iaWFzKTogRG8gbm90aGluZyBmb3IgcG9pbnRlcnMuCgkoZ2ZjX2NvbnZfZXhwcl9kZXNjcmlwdG9yKTogVXNlIGZ1bmN0aW9uIHJldHVybiB2YWx1ZXMgZGlyZWN0bHkuCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfZnVuY3Rpb25fY2FsbCk6IEFsd2F5cyBhZGQgYnlyZWYgY2FsbAoJaW5zbiB0byBwcmUgY2hhaW4uCgkoZ2ZjX3RyYW5zX3BvaW50ZXJfYXNzaWdubWVudCk6IEFkZCBjb21tZW50cy4KCShnZmNfdHJhbnNfYXJyYXlmdW5jX2Fzc2lnbik6IERvbid0IGNoYWluIG9uIGV4cHJlc3Npb24uCgoyMDA0LTA4LTAxICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIG9wdGlvbnMuYyAoZ2ZjX2luaXRfb3B0aW9ucyk6IERvbid0IHdhcm4gYWJvdXQgdGhlIHVzZSBHTlUKCWV4dGVuc2lvbnMgYnkgZGVmYXVsdC4KCShnZmNfcG9zdF9vcHRpb25zKTogV2FybiBhYm91dCBHTlUgZXh0ZW5zaW9ucyB3aXRoIC1wZWRhbnRpYy4KCShnZmNfaGFuZGxlX29wdGlvbik6IERvbid0IHdhcm4gYWJvdXQgR05VIGV4dGVuc2lvbnMgd2l0aCAtc3RkPWdudS4KCjIwMDQtMDctMzAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2V4cHJfcmVmZXJlbmNlKTogQ3JlYXRlIGEgQ09OU1RfREVDTAoJZm9yIFRSRUVfQ09OU1RBTlRzLgoKMjAwNC0wNy0yNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2J1aWxkX2Z1bmN0aW9uX2RlY2wpOiBTZXQgREVDTF9BUlRJRklDSUFMCglhbmQgREVDTF9JR05PUkVEX1Agb24gUkVTVUxUX0RFQ0wuCgkoZ2ZjX2dlbmVyYXRlX2NvbnN0cnVjdG9ycyk6IExpa2V3aXNlLgoKMjAwNC0wNy0xOCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE2NDY1CgkqIGxhbmcub3B0IChmZml4ZWQtbGluZS1sZW5ndGgtbm9uZSwgZmZpeGVkLWxpbmUtbGVuZ3RoLSk6IE5ldwoJb3B0aW9ucy4KCShmZml4ZWQtbGluZS1sZW5ndGgtODAsIGZmaXhlZC1saW5lLWxlbmd0aC0xMzIpOiBSZW1vdmUuCgkqIG9wdGlvbnMuYyAoZ2ZjX2hhbmRsZV9vcHRpb25zKTogRGVhbCB3aXRoIGNoYW5nZWQgb3B0aW9ucy4KCSogc2Nhbm5lci5jIChsb2FkX2xpbmUpOiBDaGFuZ2Ugc2Vjb25kIGFyZyB0byAnY2hhciAqKicsCglhbGxvY2F0ZSBpZiBwb2ludGluZyB0byBOVUxMLiBLZWVwIHRyYWNrIG9mIGJ1ZmZlcidzIGxlbmd0aC4KCUFkYXB0IGJ1ZmZlciBzaXplIHRvIG92ZXJsb25nIGxpbmVzLiBQYWQgbGluZXMgdG8gZnVsbCBsZW5ndGgKCWluIGZpeGVkIGZvcm0uCgkobG9hZF9maWxlKTogQWRhcHQgdG8gbmV3IGludGVyZmFjZSBvZiBsb2FkX2xpbmUuCgoyMDA0LTA3LTE3ICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIHRyYW5zLmggKGJ1aWx0aW5fZnVuY3Rpb24pOiBEZWNsYXJlLgoKMjAwNC0wNy0xNiAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE2NDA0CgkocGFydHMgcG9ydGVkIGZyb20gZzk1KQoJKiBwYXJzZS5oIChnZmNfc3RhdGVfZGF0YSk6IE5ldyBmaWVsZCBkb192YXJpYWJsZS4KCShnZmNfY2hlY2tfZG9fdmFyaWFibGUpOiBBZGQgcHJvdG90eXBlLgoJKiBwYXJzZS5jIChwdXNoX3N0YXRlKTogSW5pdGlhbGl6ZSBmaWVsZCAnZG9fdmFyaWFibGUnLgoJKGdmY19jaGVja19kb192YXJpYWJsZSk6IE5ldyBmdW5jdGlvbi4KCShwYXJzZV9kb19ibG9jayk6IFJlbWVtYmVyIGRvIGl0ZXJhdG9yIHZhcmlhYmxlLgoJKHBhcnNlX2ZpbGUpOiBJbml0aWFsaXplIGZpZWxkICdkb192YXJpYWJsZScuCgkqIG1hdGNoLmMgKGdmY19tYXRjaF9hc3NpZ25tZW50LCBnZmNfbWF0Y2hfZG8sCglnZmNfbWF0Y2hfYWxsb2NhdGUsIGdmY19tYXRjaF9udWxsaWZ5LCBnZmNfbWF0Y2hfZGVhbGxvY2F0ZSk6CglBZGQgcHJldmlvdXNseSBtaXNzaW5nIGNoZWNrcy4KCShnZmNfbWF0Y2hfcmV0dXJuKTogUmVmb3JtYXQgZXJyb3IgbWVzc2FnZS4KCSogaW8uYyAobWF0Y2hfb3V0X3RhZyk6IE5ldyBmdW5jdGlvbi4KCShtYXRjaF9vcGVuX2VsZW1lbnQsIG1hdGNoX2Nsb3NlX2VsZW1lbnQsCgltYXRjaF9maWxlX2VsZW1lbnQsIG1hdGNoX2R0X2VsZW1lbnQpOiBDYWxsIG1hdGNoX291dF90YWcKCWluc3RlYWQgb2YgbWF0Y2hfdnRhZyB3aGVyZSBhcHByb3ByaWF0ZS4KCShtYXRjaF9pb19pdGVyYXRvciwgbWF0Y2hfaW9fZWxlbWVudCk6IEFkZCBtaXNzaW5nIGNoZWNrLgoJKG1hdGNoX2lvKTogUmVmb3JtYXQgZXJyb3IgbWVzc2FnZS4KCShtYXRjaF9pbnF1aXJlX2VsZW1lbnQpOiBDYWxsIG1hdGNoX291dF90YWcgd2hlcmUgYXBwcm9wcmlhdGUuCgoJKiBwYXJzZS5jIChnZmNfY2hlY2tfZG9fdmFyaWFibGUpOiBGaXggZXJyb3IgbG9jdXMuCgoyMDA0LTA3LTE1ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTUxMjkKCSogdHJhbnMtZGVjbC5jIChnZmNfYnVpbGRfZnVuY3Rpb25fZGVjbCk6IENyZWF0ZSBhIG5ldyBjaGFyZGVjbAoJZm9yIGV2ZXJ5IGFzc3VtZWQgbGVuZ3RoIGNoYXJhY3RlciBkdW1teSBhcmd1bWVudC4KCglQUiBmb3J0cmFuLzE1MTQwCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX3RyYW5zX2RlZmVycmVkX3ZhcnMpOiBSZW1vdmUgYm9ndXMgYXNzZXJ0aW9uLgoKCVBSIGZvcnRyYW4vMTM3OTIKCSogc2ltcGxpZnkuYyAoZ2ZjX3NpbXBsaWZ5X2JvdW5kKTogQ29weSB0aGUgYm91bmQgZXhwcmVzc2lvbi4KCjIwMDQtMDctMTUgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgogCVBSIGZvcnRyYW4vMTUzMjQKCSogdHJhbnMtYXJyYXkuYyBnZmNfdHJhbnNfZzc3X2FycmF5LAoJZ2ZjX3RyYW5zX2R1bW15X2FycmF5X2JpYXMpOiBEb24ndCBjYWxsIGdmY190cmFuc19zdHJpbmdfaW5pdAoJZm9yIGFzc3VtZWQgbGVuZ3RoIGNoYXJhY3RlcnMuCgkoZ2ZjX2NvbnZfZXhwcl9kZXNjcmlwdG9yKTogU2V0IHNlLT5zdHJpbmdfbGVuZ3RoIGlmIGRlYWxpbmcKCXdpdGggYSBjaGFyYWN0ZXIgZXhwcmVzc2lvbi4KCShnZmNfY3ZvbnZfYXJyYXlfcGFyYW1ldGVyKTogUGFzcyBzdHJpbmcgbGVuZ3RoIHdoZW4gcGFzc2luZwoJY2hhcmFjdGVyIGFycmF5IGFjY29yZGluZyB0byBnNzcgY29udmVudGlvbnMuCgoyMDA0LTA3LTEyICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogZXhwci5jIChnZmNfY2hlY2tfYXNzaWduX3N5bWJvbCk6IEhhbmRsZSBwb2ludGVyIGFzc2lnbm1lbnRzLgoJKiB0cmFucy1hcnJheS5jIChnZmNfdHJhbnNfYXV0b19hcnJheV9hbGxvY2F0aW9uKTogUmVtb3ZlCglpbml0aWFsaXphdGlvbiBjb2RlLgoJKiB0cmFucy1jb21tb24uYyAoY3JlYXRlX2NvbW1vbik6IFVzZSBnZmNfY29udl9pbml0aWFsaXplci4KCSogdHJhbnMtZGVjbC5jIChnZmNfZ2V0X3N5bWJvbF9kZWNsKTogVXNlIGdmY19jb252X2luaXRpYWxpemVyLgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2luaXRpYWxpemVyKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19jb252X3N0cnVjdHVyZSk6IFVzZSBpdC4KCSogdHJhbnMuaCAoZ2ZjX2NvbnZfaW5pdGlhbGl6ZXIpOiBBZGQgcHJvdG90eXBlLgoKMjAwNC0wNy0xMSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBmb3J0cmFuLzE1OTg2CgkqIHBhcnNlLmMgKGdmY19maXh1cF9zaWJsaW5nX3N5bWJvbHMpOiBBbHNvIGxvb2sgZm9yIHVudHlwZWQKCXZhcmlhYmxlcy4KCShwYXJzZV9jb250YWluZWQpOiBNYXJrIGNvbnRhaW5lZCBzeW1ib2xzIGFzIHJlZmVyZW5jZWQuCgoyMDA0LTA3LTExICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTY0NTUKCSogbW9kdWxlLmMgKGdmY19kdW1wX21vZHVsZSwgZ2ZjX3VzZV9tb2R1bGUpOiBQcmludCBsb2N1cwoJd2hlbiBvcGVuaW5nIG9mIG1vZHVsZSBmaWxlIGZhaWxzLgoKCVBSIGZvcnRyYW4vMTY0MDQKCSogaW8uYyAobWF0Y2hfaW8pOiBGbGFnICdXUklURSguLi4pLCAuLi4nIGFzIGV4dGVuc2lvbi4KCglQUiBmb3J0cmFuLzE2NDA0CgkqIG1hdGNoLmMgKGdmY19tYXRjaF9wcm9ncmFtKTogQSBwcm9ncmFtIG5hbWUgaXMgb2JsaWdhdG9yeS4KCShnZmNfbWF0Y2hfcmV0dXJuKTogUkVUVVJOIGluIG1haW4gcHJvZ3JhbSBpcyBhbiBleHRlbnNpb24uCgkoZ2ZjX21hdGNoX2Jsb2NrX2RhdGEpOiBBIHNwYWNlIGlzIHJlcXVpcmVkIGJlZm9yZSBhIGJsb2NrIGRhdGEKCW5hbWUuCgoJUFIgZm9ydHJhbi8xNjQzMwoJKiBwcmltYXJ5LmMgKG1hdGNoX2Jvel9jb25zdGFudCk6IENhbGwgZ2ZjX25vdGlmeV9zdGQgb25seSBpZgoJd2UgYWN0dWFsbHkgaGF2ZSBhIG5vbi1zdGFuZGFyZCBib3otbGl0ZXJhbC1jb25zdGFudC4KCglQUiBmb3J0cmFuLzE1NzU0CgkqIGV4cHIuYyAoZ2ZjX2NoZWNrX2Fzc2lnbik6IFByaW50IHJhbmtzIGlmIGluY29tcGF0aWJsZS4gSXNzdWUKCXdhcm5pbmcgaWYgYXNzaWduaW5nIE5VTEwoKS4KCjIwMDQtMDctMTEgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogZjk1LWxhbmcuYyAoc2V0X2Jsb2NrKTogUmVtb3ZlLgoJKGdmY19jbGVhcl9iaW5kaW5nX3N0YWNrKTogTmV3LgoJKExBTkdfSE9PS1NfQ0xFQVJfQklORElOR19TVEFDSyk6IERlZmluZS4KCShzdHJ1Y3QgYmluZGluZ19sZXZlbCk6IFJlbW92ZSBibG9ja19jcmVhdGVkX2J5X2JhY2tfZW5kLgoJKGNsZWFyX2JpbmRpbmdfbGV2ZWwpOiBMaWtld2lzZS4KCShwb3BsZXZlbCk6IERvbid0IGhhbmRsZSBibG9ja19jcmVhdGVkX2J5X2JhY2tfZW5kLgoKMjAwNC0wNy0xMCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2NyZWF0ZV9tb2R1bGVfdmFyaWFibGUpOiBOb3RoaW5nIHRvIGRvIGlmCglzeW1ib2wgaXMgaW4gY29tbW9uLCBiZWNhdXNlIHdlIC4uLgoJKGdmY19nZW5lcmF0ZV9tb2R1bGVfdmFycyk6IENhbGwgZ2ZjX3RyYW5zX2NvbW1vbi4KCjIwMDQtMDctMTAgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmFucy1hcnJheS5jIChnZmNfYnVpbGRfbnVsbF9kZXNjcmlwdG9yKTogTmV3IGZ1bmN0aW9uLgoJKGdmY190cmFuc19zdGF0aWNfYXJyYXlfcG9pbnRlcik6IFVzZSBpdC4KCSogdHJhbnMtYXJyYXkuaCAoZ2ZjX2J1aWxkX251bGxfZGVzY3JpcHRvcik6IEFkZCBwcm90b3R5cGUuCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfc3RydWN0dXJlKTogSGFuZGxlIGFycmF5IHBvaW50ZXJzLgoKMjAwNC0wNy0xMCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE2MzM2CgkqIGRlY2wuYyAoZ2ZjX21hdGNoX3NhdmUpOiBVc2UtYXNzb2NpYXRlZCBjb21tb24gYmxvY2sKCWRvZXNuJ3QgY29sbGlkZS4KCSogZ2ZvcnRyYW4uaCAoZ2ZjX2NvbW1vbl9oZWFkKTogQWRkIG5ldyBmaWVsZCAnbmFtZScuCglGaXggdHlwbyBpbiBjb21tZW50IGFmdGVyICNlbmRpZi4KCSogbWF0Y2guYyAoZ2ZjX2dldF9jb21tb24pOiBBZGQgbmV3IGFyZ3VtZW50IGZyb21fY29tbW9uLAoJbWFuZ2xlIG5hbWUgaWYgZmxhZyBpcyBzZXQsIGZpbGwgaW4gbmV3IGZpZWxkIGluIHN0cnVjdHVyZQoJZ2ZjX2NvbW1vbl9oZWFkLgoJKG1hdGNoX2NvbW1vbik6IFNldCBuZXcgYXJnIGluIGNhbGwgdG8gZ2ZjX2dldF9jb21tb24sCgl1c2UtYXNzb2NpYXRlZCBjb21tb24gYmxvY2sgZG9lc24ndCBjb2xsaWRlLgoJKiBtYXRjaC5oIChnZmNfZ2V0X2NvbW1vbik6IEFkYXB0IHByb3RvdHlwZS4KCSogbW9kdWxlLmMgKGxvYWRfY29tbW9ucyk6IFNldCBuZXcgYXJnIGluIGNhbGwgdG8KCWdmY19nZXRfY29tbW9uLgoJKiBzeW1ib2wuYyAoZnJlZV9jb21tb25fdHJlZSk6IE5ldyBmdW5jdGlvbi4KCShnZmNfZnJlZV9uYW1lc3BhY2UpOiBDYWxsIG5ldyBmdW5jdGlvbi4KCSogdHJhbnMtY29tbW9uLmMgKHNldmVyYWwgZnVuY3Rpb25zKTogUmVtb3ZlIGFyZ3VtZW50CgknbmFtZScsIHVzZSBuYW1lIGZyb20gZ2ZjX2NvbW1vbl9oZWFkIGluc3RlYWQuCgoyMDA0LTA3LTEwICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogZXhwci5jIChnZmNfY2hlY2tfcG9pbnRlcl9hc3NpZ24pOiBWZXJpZnkgdGhhdCByYW5rIG9mIHRoZSBMSFMKCWFuZCBSSFMgbWF0Y2guIFJldHVybiBlYXJseSBpZiB0aGUgUkhTIGlzIE5VTEwoKS4KCglQUiBmb3J0cmFuLzE2MzM2CgkqIG1hdGNoLmMgKG1hdGNoX2NvbW1vbik6IEZpeCBlcnJvciByZXBvcnRpbmcgZm9yIHVzZWQgY29tbW9uLgoKCVBSIGZvcnRyYW4vMTU5NjkKCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9zdHJ1Y3R1cmUpOiBIYW5kbGUgaW5pdGlhbGl6YXRpb24KCW9mIHNjYWxhciBwb2ludGVyIGNvbXBvbmVudHMuCgoJKiBwYXJzZS5jIChkZWNvZGVfc3RhdGVtZW50KTogRml4IG1hdGNoaW5nIG9mIEJMT0NLIERBVEEuCgoJKiB0cmFucy1kZWNsLmMgKGdlbmVyYXRlX2xvY2FsX2RlY2wpOiBSZW1vdmUgd29ya2Fyb3VuZCBvYnNvbGV0ZWQKCWJ5IGZpeCBmb3IgUFIgMTU0ODEuCgoyMDA0LTA3LTEwICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogdHJhbnMtY29tbW9uLmM6IEZpeCB3aGl0ZXNwYWNlIGlzc3VlcywgbWFrZSB2YXJpYWJsZSBuYW1lcwoJbW9yZSByZWFkYWJsZS4KCShjcmVhdGVfY29tbW9uKTogQWRkaXRpb25hbGx5LCBtYWtlIGxvb3AgbG9naWMgbW9yZSBvYnZpb3VzLgoKMjAwNC0wNy0xMCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCVBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xMzQxNQoJKiB0cmFucy1jb21tb24uYyAoY2FsY3VsYXRlX2xlbmd0aCk6IFJlbW92ZSAuLi4KCShnZXRfc2VnbWVudF9pbmZvKTogTWVyZ2UgaW50byBoZXJlLiAgU2F2ZSBmaWVsZCB0eXBlLgoJKGJ1aWxkX2ZpZWxkKTogVXNlIHNhdmVkIHR5cGUuCgkoY3JlYXRlX2NvbW1vbiwgbmV3X2NvbmRpdGlvbiwgbmV3X3NlZ21lbnQsIGZpbmlzaF9lcXVpdmFsZW5jZXMpOgoJVXNlIG5ldyBnZXRfc2VnbWVudF9pbmZvLgoJKiB0cmFucy10eXBlcy5jOiBVcGRhdGUgY29tbWVudC4KCjIwMDQtMDctMDkgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNDA3NwoJKiBtb2R1ZWxlLmMgKG1pb19zeW1ib2wpOiBEb24ndCBJL08gaW5pdGlhbCB2YWx1ZXMgdW5sZXNzCglzeW1ib2wgaXMgYSBwYXJhbWV0ZXIuCgoyMDA0LTA3LTA5ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTMyMDEKCSogcmVzb2x2ZS5jIChyZXNvbHZlX3N5bWJvbCk6IFZlcmlmeSB0aGF0IHRoZSBzaGFwZSBvZiBhCglwYXJhbWV0ZXIgYXJyYXkgaXMgbm90IG9ubHkgZXhwbGljaXQsIGJ1dCBhbHNvIGNvbnN0YW50LgoJKiBhcnJheS5jIChnZmNfaXNfY29tcGlsZV90aW1lX3NoYXBlKTogTmV3IGZ1bmN0aW9uLgoJKiBnZm9ydHJhbi5oIChnZmNfaXNfY29tcGlsZV90aW1lX3NoYXBlKTogQWRkIHByb3RvdHlwZS4KCjIwMDQtMDctMDkgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNTQ4MQoJUFIgZm9ydHJhbi8xMzM3MgoJUFIgZm9ydHJhbi8xMzU3NQoJUFIgZm9ydHJhbi8xNTk3OAoJKiBtb2R1bGUuYyAod3JpdGVfc3ltYm9sLCB3cml0ZV9zeW10cmVlKTogUmVtb3ZlIHdvcmthcm91bmQuCgkqIHByaW1hcnkuYyAobWF0Y2hfYWN0dWFsX2FyZ2xpc3QpOiBFbmhhbmNlIGNvbW1lbnQuCgkoZ2ZjX21hdGNoX3J2YWx1ZSk6IEhhbmRsZSBmdW5jdGlvbiBjYWxsIHdpdGggZmlyc3QgYXJndW1lbnQKCWEga2V5d29yZCBhcmd1bWVudCBjb3JyZWN0bHkuCgkqIHJlc29sdmUuYyAocmVzb2x2ZV9zeW1ib2wpOiBDaGFuZ2UgY2FsbCB0bwoJZ2ZjX3NldF9kZWZhdWx0X3R5cGUgdG8gaXNzdWUgZXJyb3IgaWYgbm8gaW1wbGljaXQgdHlwZQoJY2FuIGJlIGZvdW5kLgoJKiB0cmFucy1kZWNsLmMgKGdmY19jcmVhdGVfbW9kdWxlX3ZhcmlhYmxlKTogUmVtb3ZlIHdvcmthcm91bmQuCgoyMDA0LTA3LTA4ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogaW50cmluc2ljLmMgKGFkZF9zeW1fNHMpOiBOZXcgZnVuY3Rpb24uCgkoYWRkX3N1YnJvdXRpbmVzKTogQ2hhbmdlIGdmY19hZGRfc3ltXz8gdG8gZ2ZjX2FkZF9zeW1fP3MuCgoyMDA0LTA3LTA0ICBKYW5uZSBCbG9tcXZpc3QgIDxqYmxvbXF2aUBjYy5odXQuZmk+CglQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTUyODAKCVBSIGZvcnRyYW4vMTU2NjUKCSogZ2ZvcnRyYW4uaCAoZW51bSBnZmNfZ2VuZXJpY19pc3ltX2lkKTogQWRkIEdGQ19JU1lNX0lBUkdDIGFuZAoJR0ZDX0lTWU1fQ09NTUFORF9BUkdVTUVOVF9DT1VOVC4KCSogaW50cmluc2ljLmMgKGFkZF9mdW5jdGlvbnMpOiAgSWRlbnRpZnkgaWFyZ2MuICBBZGQKCWNvbW1hbmRfYXJndW1lbnRfY291bnQuCgkoYWRkX3N1YnJvdXRpbmVzKTogUmVzb2x2ZSBnZXRhcmcuICBBZGQgZ2V0X2NvbW1hbmQgYW5kCglnZXRfY29tbWFuZF9hcmd1bWVudC4KCSogaW50cmluc2ljLmggKGdmY19yZXNvbHZlX2dldGFyZywgZ2ZjX3Jlc29sdmVfZ2V0X2NvbW1hbmQsCglnZmNfcmVzb2x2ZV9nZXRfY29tbWFuZF9hcmd1bWVudCk6IEFkZCBwcm90b3R5cGVzLgoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9nZXRhcmcsIGdmY19yZXNvbHZlX2dldF9jb21tYW5kLAoJZ2ZjX3Jlc29sdmVfZ2V0X2NvbW1hbmRfYXJndW1lbnQpOiBOZXcgZnVuY3Rpb25zLgoJKiB0cmFucy1kZWNsLmMgKGdmb3JfZm5kZWNsX2lhcmdjKTogTmV3IHZhcmlhYmxlLgoJKGdmY19idWlsZF9pbnRyaW5zaWNfZnVuY3Rpb25fZGVjbHMpOiBTZXQgaXQuCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfaWFyZ2MpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2NvbnZfaW50cmluc2ljX2Z1bmN0aW9uKTogVXNlIGl0LgoJKiB0cmFucy5oIChnZm9yX2ZuZGVjbF9pYXJnYyk6IERlY2xhcmUuCgoyMDA0LTA3LTA0ICBNYXR0aGlhcyBLbG9zZSAgPGRva29AZGViaWFuLm9yZz4KCgkqIE1ha2UtbGFuZy5pbjogR2VuZXJhdGUgYW5kIGluc3RhbGwgZ2ZvcnRyYW4gbWFuIHBhZ2UuCgkqIGludm9rZS50ZXhpOiBSZW1vdmUgZXh0cmEgJ0BjIG1hbiBlbmQnLgoKMjAwNC0wNy0wNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGY5NS1sYW5nLmMgKGdmY19tYXJrX2FkZHJlc3NhYmxlKTogRG9uJ3QgcHV0X3Zhcl9pbnRvX3N0YWNrLgoKMjAwNC0wNy0wNCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlY2wuYyAoZ2ZjX21hdGNoX2ltcGxpY2l0X3JhbmdlKTogRG9uJ3QgdXNlIHR5cGVzcGVjLgoJKGdmY19tYXRjaF9pbXBsaWNpdCk6IEhhbmRsZSBjaGFyYWN0ZXIgc2VsZWN0b3JzLgoJKiBnZm9ydHJhbi5oIChnZmNfc2V0X2ltcGxpY2l0KTogUmVtb3ZlIHByb3RvdHlwZS4KCShnZmNfYWRkX25ld19pbXBsaWNpdF9yYW5nZSwgZ2ZjX21lcmdlX25ld19pbXBsaWNpdCk6IFVwZGF0ZS4KCSogcGFyc2UuYyAoYWNjZXB0X3N0YXRlbWVudCk6IERvbid0IGNhbGwgZ2ZjX3NldF9pbXBsaWNpdC4KCSogc3ltYm9sLmMgKG5ld190cyk6IFJlbW92ZS4KCShnZmNfc2V0X2ltcGxpY2l0X25vbmUpOiBVc2Ugc2FtZSBsb29wIGJvdW5kcyBhcyBvdGhlciBmdW5jdGlvbnMuCgkoZ2ZjX3NldF9pbXBsaWNpdCk6IFJlbW92ZS4KCShnZmNfY2xlYXJfbmV3X2ltcGxpY2l0LCBnZmNfYWRkX25ld19pbXBsaWNpdF9yYW5nZSk6IE9ubHkgc2V0IGZsYWdzLgoJKGdmY19tZXJnZV9uZXdfaW1wbGljaXQpOiBDb21iaW5lIHdpdGggZ2ZjX3NldF9pbXBsaWNpdC4KCjIwMDQtMDYtMzAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBtYXRjaC5jICh2YXJfZWxlbWVudCk6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgoJKiB0cmFucy1kZWNsLmMgKGdmY19nZW5lcmF0ZV9mdW5jdGlvbl9jb2RlKTogRG9uJ3Qgc2V0Cgl4X3dob2xlX2Z1bmN0aW9uX21vZGVfcC4KCShnZmNfZ2VuZXJhdGVfY29uc3RydWN0b3JzKTogTGlrZXdpc2UuCgoyMDA0LTA2LTMwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdHJhbnMtZGVjbC5jIChnZmNfZ2VuZXJhdGVfZnVuY3Rpb25fY29kZSk6IERvbid0IHNldAoJaW1tZWRpYXRlX3NpemVfZXhwYW5kLgoJKGdmY19nZW5lcmF0ZV9jb25zdHJ1Y3RvcnMpOiBMaWtld2lzZS4KCjIwMDQtMDYtMzAgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNjE2MQoJKiBkZWNsLmMgKGdmY19tYXRjaF90eXBlX3NwZWMpOiBSZW5hbWUgc2Vjb25kIGFyZ3VtZW50IHRvCgknaW1wbGljaXRfZmxhZycsIHJldmVyc2UgbWVhbmluZy4gRG9uJ3QgbWF0Y2hfY2hhcl9zcGVjIGlmCgknaW1wbGljaXRfZmxhZycgaXMgc2V0LiBSZW5hbWUgdG8gLi4uCgkobWF0Y2hfdHlwZV9zcGVjKTogLi4uIHRoaXMuCgkoZ2ZjX21hdGNoX2ltcGxpY2l0X25vbmUsIG1hdGNoX2ltcGxpY2l0X3JhbmdlKTogTW92ZSBoZXJlCglmcm9tIG1hdGNoLmMuCgkoZ2ZjX21hdGNoX2ltcGxpY2l0KTogTW92ZSBoZXJlIGZyb20gbWF0Y2guYywgdHJ5IHRvCgltYXRjaF9jaGFyX2xlbiBpZiBtYXRjaF9pbXBsaWNpdF9yYW5nZSBkb2Vzbid0IHN1Y2NlZWQgZm9yCglDSEFSQUNURVIgaW1wbGljaXRzLiBDYWxsIHJlbmFtZWQgZnVjbnRpb24gbWF0Y2hfdHlwZV9zcGVjLgoJKGdmY19tYXRjaF9kYXRhX2RlY2wsIG1hdGNoX3ByZWZpeCk6IENhbGwgcmVuYW1lZCBmdW5jdGlvbgoJbWF0Y2hfdHlwZV9zcGVjLgoJKiBtYXRjaC5jIChnZmNfbWF0Y2hfaW1wbGljaXRfbm9uZSwgbWF0Y2hfaW1wbGljaXRfcmFuZ2UsCglnZmNfbWF0Y2hfaW1wbGljaXQpOiBNb3ZlIHRvIGRlY2wuYy4KCSogbWF0Y2guaCAoZ2ZjX21hdGNoX2ltcGxpY2l0X25vbmUsIGdmY19tYXRjaF9pbXBsaWNpdCk6CglNb3ZlIHByb3RveXBlcyB0byBzZWN0aW9uICdkZWNsLmMnLgoJKGdmY19tYXRjaF90eXBlX3NwZWMpOiBSZW1vdmUgcHJvdG90eXBlLgoKMjAwNC0wNi0yOSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGRlY2wuYywgaW50ZXJmYWNlLmMsIHN5bWJvbC5jLCB0cmFucy1jb21tb24uYzogQWRkIDIwMDQgdG8KCWNvcHlyaWdodCB5ZWFycy4KCjIwMDQtMDYtMjkgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCglNYWtlIHN1cmUgdHlwZXMgaW4gYXNzaWdubWVudHMgYXJlIGNvbXBhdGlibGUuICBNb3N0bHkgbWVjaGFuaWNhbC4KCSogdHJhbnMtY29uc3QuaCAoZ2ZjX2luZGV4X29uZV9ub2RlKTogTmV3IGRlZmluZS4KCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5zX2FsbG9jYXRlX2FycmF5X3N0b3JhZ2UsCglnZmNfdHJhbnNfYWxsb2NhdGVfdGVtcF9hcnJheSwgZ2ZjX3RyYW5zX2FycmF5X2NvbnN0cnVjdG9yX3N1YmFycmF5LAoJZ2ZjX3RyYW5zX2FycmF5X2NvbnN0cnVjdG9yX3ZhbHVlLCBnZmNfdHJhbnNfYXJyYXlfY29uc3RydWN0b3IsCglnZmNfY29udl9hcnJheV91Ym91bmQsIGdmY19jb252X2FycmF5X3JlZiwKCWdmY190cmFuc19zY2FsYXJpemVkX2xvb3BfZW5kLCBnZmNfY29udl9zZWN0aW9uX3N0YXJ0c3RyaWRlLAoJZ2ZjX2NvbnZfc3Nfc3RhcnRzdHJpZGUsIGdmY19jb252X2xvb3Bfc2V0dXAsIGdmY19hcnJheV9pbml0X3NpemUsCglnZmNfdHJhbnNfYXJyYXlfYm91bmRzLCBnZmNfdHJhbnNfZHVtbXlfYXJyYXlfYmlhcywKCWdmY19jb252X2V4cHJfZGVzY3JpcHRvciwgZ2ZjX3RyYW5zX2RlZmVycmVkX2FycmF5KTogVXNlIHRoZSBjb3JyZWN0Cgl0eXBlcyBpbiBhc3NpZ25tZW50cywgY29udmVyc2lvbnMgYW5kIGNvbmRpdGlvbmFscyBmb3IgZXhwcmVzc2lvbnMuCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfZXhwcl9wcmVzZW50LCBnZmNfY29udl9zdWJzdHJpbmcsCglnZmNfY29udl91bmFyeV9vcCwgZ2ZjX2NvbnZfY3N0X2ludF9wb3dlciwgZ2ZjX2NvbnZfc3RyaW5nX3RtcCwKCWdmY19jb252X2Z1bmN0aW9uX2NhbGwsIGdmY190cmFuc19wb2ludGVyX2Fzc2lnbm1lbnQsCglnZmNfdHJhbnNfc2NhbGFyX2Fzc2lnbik6IExpa2V3aXNlLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoYnVpbGRfZml4Ym91bmRfZXhwciwgZ2ZjX2NvbnZfaW50cmluc2ljX2JvdW5kLAoJZ2ZjX2NvbnZfaW50cmluc2ljX2FueWFsbCwgZ2ZjX2NvbnZfaW50cmluc2ljX2NvdW50LAoJZ2ZjX2NvbnZfaW50cmluc2ljX21pbm1heGxvYywgZ2ZjX2NvbnZfaW50cmluc2ljX2J0ZXN0LAoJZ2ZjX2NvbnZfaW50cmluc2ljX3NpbmdsZWJpdG9wLCBnZmNfY29udl9pbnRyaW5zaWNfaXNoZnQsCglnZmNfY29udl9pbnRyaW5zaWNfaXNoZnRjLCBnZmNfY29udl9pbnRyaW5zaWNfc3RyY21wLAoJZ2ZjX2NvbnZfYWxsb2NhdGVkLCBnZmNfY29udl9hc3NvY2lhdGVkLAoJZ2ZjX2NvbnZfaW50cmluc2ljX3Jyc3BhY2luZywgZ2ZjX2NvbnZfaW50cmluc2ljX3RyaW0pOiBMaWtld2lzZS4KCSogdHJhbnMtaW8uYyAoc2V0X3N0cmluZyk6IExpa2V3aXNlLgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19kbywgZ2ZjX3RyYW5zX2ZvcmFsbF9sb29wLAoJZ2ZjX2RvX2FsbG9jYXRlLCBnZW5lcmF0ZV9sb29wX2Zvcl90ZW1wX3RvX2xocywKCWdlbmVyYXRlX2xvb3BfZm9yX3Joc190b190ZW1wLCBjb21wdXRlX2lubmVyX3RlbXBfc2l6ZSwKCWNvbXB1dGVfb3ZlcmFsbF9pdGVyX251bWJlciwgZ2ZjX3RyYW5zX2Fzc2lnbl9uZWVkX3RlbXAsCglnZmNfdHJhbnNfcG9pbnRlcl9hc3NpZ25fbmVlZF90ZW1wLCBnZmNfdHJhbnNfZm9yYWxsXzEsCglnZmNfZXZhbHVhdGVfd2hlcmVfbWFzaywgZ2ZjX3RyYW5zX3doZXJlX2Fzc2lnbiwKCWdmY190cmFuc193aGVyZV8yKTogTGlrZXdpc2UuCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19nZXRfY2hhcmFjdGVyX3R5cGUsIGdmY19idWlsZF9hcnJheV90eXBlLAoJZ2ZjX2dldF9ub2Rlc2NfYXJyYXlfdHlwZSwgZ2ZjX2dldF9hcnJheV90eXBlX2JvdW5kcyk6IExpa2V3aXNlLgoKCSogdHJhbnMuYyAoZ2ZjX2FkZF9tb2RpZnlfZXhwcik6IEFkZCBzYW5pdHkgY2hlY2sgdGhhdCB0eXBlcwoJZm9yIHRoZSBsaHMgYW5kIHJocyBhcmUgdGhlIHNhbWUgZm9yIHNjYWxhciBhc3NpZ25tZW50cy4KCjIwMDQtMDYtMjkgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBkdW1wLXBhcnNlLXRyZWUuYyAoc2hvd19jb21tb24pOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX3Nob3dfbmFtZXNwYWNlKTogU2hvdyBjb21tb25zLgoKMjAwNC0wNi0yOSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCUFuZHJldyBWYXVnaHQgIDxhbmR5dkBmaXJzdGludGVyLm5ldD4KCglQUiBmb3J0cmFuLzEzMjQ5CglQUiBmb3J0cmFuLzE1NDgxCgkqIGRlY2wuYyAoZ2ZjX21hdGNoX3NhdmUpOiBBZGFwdCB0byBuZXcgY29tbW9uIHN0cnVjdHVyZXMsCglkb24ndCBhbGxvdyBzYXZpbmcgVVNFLWFzc29jaWF0ZWQgY29tbW9uLgoJKiBkdW1wLXBhcnNlLXRyZWUgKGdmY19zaG93X2F0dHIpOiAoc2F2ZWRfKWNvbW1vbiBhcmUgbm90CglzeW1ib2wgYXR0cmlidXRlcyBhbnkgbG9uZ2VyLgoJKGdmY19zaG93X3N5bWJvbCk6IERvbid0IHNob3cgb2xkLXN0eWxlIGNvbW1vbnMgYW55IGxvbmdlci4KCShnZmNfc2hvd19uYW1lc3BhY2UpOiBBZGFwdCBjYWxsIHRvIGdmY190cmF2ZXJzZV9zeW10cmVlIHRvIG5ldwoJaW50ZXJmYWNlLgoJKiBnZm9ydHJhbi5oIChzeW1ib2xfYXR0cmlidXRlKTogUmVtb3ZlIGNvbW1vbiBhbmQgc2F2ZWRfY29tbW9uCglhdHRyaWJ1dGVzLgoJKGdmY19zeW1ib2wpOiBSZW1vdmUgY29tbW9uX2hlYWQgZWxlbWVudC4KCShnZmNfY29tbW9uX2hlYWQpOiBOZXcgc3RydWN0LgoJKGdmY19nZXRfY29tbW9uX2hlYWQpOiBOZXcgbWFjcm8uCgkoZ2ZjX3N5bXRyZWUpOiBBZGQgZmllbGQgJ2NvbW1vbicgdG8gdW5pb24uCgkoZ2ZjX25hbWVzcGFjZSk6IEFkZCBmaWVsZCAnY29tbW9uX3Jvb3QnOyBjaGFuZ2UgdHlwZSBvZiBmaWVsZAoJJ2JsYW5rX2NvbW1vbicgdG8gYmxhbmtfY29tbW9uLgoJKGdmY19hZGRfZGF0YSk6IE5ldyBwcm90b3R5cGUuCgkoZ2ZjX3RyYXZlcnNlX3N5bXRyZWUpOiBFeHBlY3QgYSBzeW10cmVlIGFzIGZpcnN0IGFyZ3VtZW50CglpbnN0ZWFkIG9mIG5hbWVzcGFjZS4KCSogbWF0Y2guYyAoZ2ZjX2dldF9jb21tb24pOiBOZXcgZnVuY3Rpb24uCgkobWF0Y2hfY29tbW9uX25hbWUpOiBDaGFuZ2UgdG8gdGFrZSBjaGFyICogYXMgYXJndW1lbnQsIGFkYXB0LAoJZml4IGJ1ZyB3aXRoIGVtcHR5IG5hbWUuCgkoZ2ZjX21hdGNoX2NvbW1vbik6IEFkYXB0IHRvIG5ldyBkYXRhIHN0cnVjdHVyZXMuIERpc2FsbG93CglyZWRlY2xhcmF0aW9uIG9mIFVTRS1hc3NvY2lhdGVkIENPTU1PTi1ibG9jay4gRml4IGJ1ZyB3aXRoCgllbXB0eSBjb21tb24uCgkodmFyX2VsZW1lbnQpOiBBZGFwdCB0byBuZXcgY29tbW9uIHN0cnVjdHVyZXMuCgkqIG1hdGNoLmggKGdmY19nZXRfY29tbW9uKTogRGVjbGFyZS4KCSogbW9kdWxlLmM6IEFkZCAyMDA0IHRvIGNvcHlyaWdodCB5ZWFycywgYWRkIGNvbW1vbnMgdG8gbW9kdWxlCglmaWxlIGxheW91dCBkZXNjcmlwdGlvbi4KCShhYl9hdHRyaWJ1dGUsIGF0dHJfYml0cywgbWlvX3N5bWJvbF9hdHRyaWJ1dGVzKTogUmVtb3ZlIGNvZGUKCWZvciByZW1vdmVkIGF0dHJpYnV0ZXMuCgkobWlvX3N5bWJvbCk6IEFkYXB0IHRvIG5ldyB3YXkgb2Ygc3RvcmluZyBjb21tb24gcmVsYXRpb25zLgoJKGxvYWRfY29tbW9ucyk6IE5ldyBmdW5jdGlvbi4KCShyZWFkX21vZHVsZSk6IFNraXAgY29tbW9uIGxpc3Qgb24gZmlyc3QgcGFzcywgbG9hZF9jb21tb25zIGF0CglzZWNvbmQuCgkod3JpdGVfY29tbW9ucyk6IE5ldyBmdW5jdGlvbi4KCSh3cml0ZV9tb2R1bGUpOiBDYWxsIHdyaXRlX2NvbW1vbnMoKS4KCSogc3ltYm9sLmMgKGdmY19hZGRfc2F2ZWRfY29tb24sIGdmY19hZGRfY29tbW9uKTogUmVtb3ZlCglmdW5jdGlvbnMgcmVsYXRlZCB0byByZW1vdmVkIGF0dHJpYnV0ZXMuCgkoZ2ZjX2FkZF9kYXRhKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19jbGVhcl9hdHRyKTogRG9uJ3Qgc2V0IHJlbW92ZWQgYXR0cmlidXRlcy4KCShnZmNfY29weV9hdHRyKTogRG9uJ3QgY29weSByZW1vdmVkIGF0dHJpYnV0ZXMuCgkodHJhdmVyc2Vfc3ltdHJlZSk6IFJlbW92ZS4KCShnZmNfdHJhdmVyc2Vfc3ltdHJlZSk6IERvbid0IHRyYXZlcnNlIHN5bWJvbAoJdHJlZSBvZiB0aGUgcGFzc2VkIG5hbWVzcGFjZSwgYnV0IHJlcXVpcmUgYSBzeW10cmVlIHRvIGJlIHBhc3NlZAoJaW5zdGVhZC4gVW5pZnkgd2l0aCB0cmF2ZXJzZV9zeW10cmVlLgoJKGdmY190cmF2ZXJzZV9ucyk6IENhbGwgZ2ZjX3RyYXZlcnNlX3N5bXRyZWUgYWNjb3JkaW5nIHRvIG5ldwoJaW50ZXJmYWNlLgoJKHNhdmVfc3ltYm9sKTogUmVtb3ZlIHNldHRpbmcgb2YgcmVtb3ZlZCBhdHRyaWJ1dGUuCgkqIHRyYW5zLWNvbW1vbi5jIChnZmNfc3ltX21hbmdsZWRfY29tbW9uX2lkKTogQ2hhbmdlIHRvCgl0YWtlICdjaGFyIConIGFyZ3VtZW50IGluc3RlYWQgb2YgJ2dmY19zeW1ib2wnLgoJKGJ1aWxkX2NvbW1vbl9kZWNsLCBuZXdfc2VnbWVudCwgdHJhbnNsYXRlX2NvbW1vbik6IEFkYXB0IHRvIG5ldwoJZGF0YSBzdHJ1Y3R1cmVzLCBhZGQgbmV3Cglhcmd1bWVudCBuYW1lLgoJKGNyZWF0ZV9jb21tb24pOiBBZGFwdCB0byBuZXcgZGF0YSBzdHJ1Y3R1cmVzLCBhZGQgbmV3Cglhcmd1bWVudCBuYW1lLiBGaXggdHlwbyBpbiBpbnRpYWxpemF0aW9uIG9mIGRlcml2ZWQgdHlwZXMuCgkoZmluaXNoX2VxdWl2YWxlbmNlcyk6IEFkZCBzZWNvbmQgYXJndW1lbnQgaW4gY2FsbCB0bwoJY3JlYXRlX2NvbW1vbi4KCShuYW1lZF9jb21tb24pOiB0YWtlICdnZmNfc3ltdHJlZScgaW5zdGVhZCBvZiAnZ2ZjX3N5bWJvbCcuCgkoZ2ZjX3RyYW5zX2NvbW1vbik6IEFkYXB0IHRvIG5ldyBkYXRhIHN0cnVjdHVyZXMuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2NyZWF0ZV9tb2R1bGVfdmFyaWFibGVzKTogUmVtb3ZlIHRlc3QgZm9yCglyZW1vdmVkIGF0dHJpYnV0ZS4KCjIwMDQtMDYtMjkgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBpby5jOiBBZGQgMjAwNCB0byBjb3B5cmlnaHQgeWVhcnMuCgoyMDA0LTA2LTI5ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoJQW5kcmV3IFZhdWdodCAgPGFuZHl2QGZpcnN0aW50ZXIubmV0PgoKCSogZ2ZvcnRyYW4uaCAoZ2ZjX2dzeW1ib2wpOiBOZXcgdHlwZWRlZi4KCShnZmNfZ3N5bV9yb290KTogTmV3IHZhcmlhYmxlLgoJKGdmY19nZXRfZ3N5bWJvbCwgZ2ZjX2ZpbmRfZ3N5bSk6IE5ldyBwcm90b3R5cGVzLgoJKiBwYXJzZS5jIChnbG9iYWxfdXNlZCk6IE5ldyBmdW5jdGlvbi4KCShwYXJzZV9ibG9ja19kYXRhKTogQ2hlY2sgZm9yIGRvdWJsZSBlbXB0eSBCTE9DSyBEQVRBLAoJdXNlIGdsb2JhbCBzeW1ib2wgdGFibGUuCgkocGFyc2VfbW9kdWxlKTogVXNlIGdsb2JhbCBzeW1ib2wgdGFibGUuCgkoYWRkX2dsb2JhbF9wcm9jZWR1cmUsIGFkZF9nbG9iYWxfcHJvZ3JhbSk6IE5ldyBmdW5jdGlvbnMuCgkoZ2ZjX3BhcnNlX2ZpbGUpOiBVc2UgZ2xvYmFsIHN5bWJvbCB0YWJsZS4KCSogc3ltYm9sLmMgKGdmY19nc3ltX3Jvb3QpOiBOZXcgdmFyaWFibGUuCgkoZ2ZjX2ZpbmRfZ3N5bSwgZ3N5bV9jb21wYXJlLCBnZmNfZ2V0X2dzeW1ib2wpOiBOZXcKCWZ1bmN0aW9ucy4KCjIwMDQtMDYtMjkgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBtb2R1bGUuYyAobWlvX2dtcF9yZWFsKTogQ29ycmVjdCB3cml0aW5nIG9mIG5lZ2F0aXZlIG51bWJlcnMuCgoyMDA0LTA2LTI5ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTU5NjMKCSogZXhwci5jIChjaGVja19pbnRyaW5zaWNfb3ApOiBBbGxvdyBjb21wYXJpc29uIG9mIGNoYXJhY3RlcnMuCglNYWtlIGxvZ2ljIGVhc2llci4KCjIwMDQtMDYtMjYgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CglBbmRyZXcgVmF1Z2h0ICA8YW5keXZAZmlyc3RpbnRlci5uZXQ+CgoJKiBkZWNsLmMgKGNvbnRhaW5lZF9wcm9jZWR1cmUpOiBOZXcgZnVuY3Rpb24uCgkobWF0Y2hfZW5kKTogVmVyaWZ5IGNvcnJlY3RuZXNzIG9mIEVORCBTVEFURU1FTlQgaW4KCWFsbCBjYXNlcy4KCjIwMDQtMDYtMjYgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CglBbmRyZXcgVmF1Z2h0ICA8YW5keXZAZmlyc3RpbnRlci5uZXQ+CgoJUFIgZm9ydHJhbi8xNTE5MAoJKiBkZWNsLmMgKGdmY19tYXRjaF90eXBlX3NwZWMpLCBpby5jIChtYXRjaF9pbyksIHBhcnNlLmMKCShkZWNvZGVfc3RhdGVtZW50KTogRW5mb3JjZSByZXF1aXJlZCBzcGFjZSBpbiBmcmVlLWZvcm0uCgoyMDA0LTA2LTIyICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogZjk1LWxhbmcuYyAoTEFOR19IT09LU19HSU1QTEVfQkVGT1JFX0lOTElOSU5HKTogRGVsZXRlZC4KCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX2NvbnZfZGVzY3JpcHRvcl9kYXRhKTogQWRkIG9wZXJhbmQKCWZvciBDT01QT05FTlRfUkVGLgoJKGdmY19jb252X2Rlc2NyaXB0b3Jfb2Zmc2V0LCBnZmNfY29udl9kZXNjcmlwdG9yX2R0eXBlKTogTGlrZXdpc2UuCgkoZ2ZjX2NvbnZfZGVzY3JpcHRvcl9kaW1lbnNpb24sIGdmY19jb252X2Rlc2NyaXB0b3Jfc3RyaWRlKTogTGlrZXdpc2UuCgkoZ2ZjX2NvbnZfZGVzY3JpcHRvcl9sYm91bmQsIGdmY19jb252X2Rlc2NyaXB0b3JfdWJvdW5kKTogTGlrZXdpc2UuCgkqIHRyYW5zLWNvbW1vbi5jIChjcmVhdGVfY29tbW9uKTogTGlrZXdpc2UuCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfY29tcG9uZW50X3JlZik6IExpa2V3aXNlLgoJKiB0cmFucy1pby5jIChzZXRfcGFyYW1ldGVyX3ZhbHVlKTogTGlrZXdpc2UuCgkoc2V0X3BhcmFtZXRlcl9yZWYsIHNldF9zdHJpbmcsIHNldF9mbGFnLCBpb19yZXN1bHQpOiBMaWtld2lzZS4KCSh0cmFuc2Zlcl9leHByKTogTGlrZXdpc2UuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX3RyYW5zX2F1dG9fY2hhcmFjdGVyX3ZhcmlhYmxlKToKCVNldCB1cCB0byBnZXQgREVDTF9TSVpFIGFuZCBERUNMX1NJWkVfVU5JVCBnaW1wbGlmaWVkLgoJKGdmY19naW1wbGlmeV9mdW5jdGlvbik6IE5ldyBmdW5jdGlvbi4KCShnZmNfZ2VuZXJhdGVfZnVuY3Rpb24tY29kZSk6IFByb3Blcmx5IGhhbmRsZSBuZXN0ZWQgZnVuY3Rpb25zLgoJKiB0cmFucy5jIChnZmNfYnVpbGRfYXJyYXlfcmVmKTogQWRkIHR3byBuZXcgb3BlcmFuZHMgZm9yIEFSUkFZX1JFRi4KCjIwMDQtMDYtMjIgIEphbm5lIEJsb21xdmlzdCAgPGpibG9tcXZpQGNjLmh1dC5maT4KCglQUiBmb3J0cmFuLzE1NzUwCgkqIGlvLmMgKGdmY19tYXRjaF9pbnF1aXJlKTogQnVnZml4IGZvciBpb2xlbmd0aCByZWxhdGVkIHN0dWZmLgoJKGdmY19yZXNvbHZlX2lucXVpcmUpOiBSZXNvbHZlIHRoZSBpb2xlbmd0aCB0YWcuICBSZXR1cm4KCVNVQ0NFU1MgYXQgZW5kIG9mIGZ1bmN0aW9uIGlmIG5vIGZhaWx1cmUgaGFzIG9jY3VyZWQuCgkqIHJlc29sdmUuYyAocmVzb2x2ZV9jb2RlKTogUmVzb2x2ZSBpZiBpb2xlbmd0aCBpcyBlbmNvdW50ZXJlZC4KCSogdHJhbnMtaW8uYzogKGlvcGFybV9pb2xlbmd0aCwgaW9jYWxsX2lvbGVuZ3RoLAoJaW9jYWxsX2lvbGVuZ3RoX2RvbmUpOiBOZXcgdmFyaWFibGVzLgoJKGxhc3RfZHQpOiBBZGQgSU9MRU5HVEguCgkoZ2ZjX2J1aWxkX2lvX2xpYnJhcnlfZm5kZWNscyApOiBTZXQgaW9sZW5ndGggcmVsYXRlZCB2YXJpYWJsZXMuCgkoZ2ZjX3RyYW5zX2lvbGVuZ3RoKTogSW1wbGVtZW50LgoJKGdmY190cmFuc19kdF9lbmQpOiBUcmVhdCBpb2xlbmd0aCBhcyBhIHRoaXJkIGZvcm0gb2YgZGF0YSB0cmFuc2Zlci4KCjIwMDQtMDYtMjEgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGUKCglQUiBmb3J0cmFuLzE1NTExCgkqIHNjYW5uZXIuYyAobG9hZF9saW5lKTogRG9uJ3QgdHJ1bmNhdGUgcHJlcHJvY2Vzc29yIGxpbmVzLgoJUmVmb3JtYXQgZXJyb3IgbWVzc2FnZS4KCShwcmVwcm9jZXNzb3JfbGluZSk6IElzc3VlIHdhcm5pbmcgaW4gY2FzZSBvZiBtYWxmb3JtZWQKCXByZXByb2Nlc3NvciBsaW5lLgoKMjAwNC0wNi0yMSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHJlc29sdmUuYyAocmVzb2x2ZV9zeW1ib2wpOiBBZGQgY29tbWVudCBpbiBmdW5jdGlvbiBib2R5LgoJKGNoZWNrX2RhdGFfdmFyaWFibGUpOiBDaGFuZ2UgdHlwZSBvZiBtYXJrIHRvIGFyX3R5cGUsIGFkYXB0IGNvZGUKCWFjY29yZGluZ2x5LgoKMjAwNC0wNi0yMSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGFycmF5LmMgKGdmY19pbnNlcnRfY29uc3RydWN0b3IpOiBBdm9pZCByZWR1bmRhbnQgY2FsbCB0bwoJbXB6X2NvbXAuIEFkZCAyMDA0IHRvIGNvcHlyaWdodCB5ZWFycy4KCjIwMDQtMDYtMjEgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogdHJhbnMuaCAoc3RtdGJsb2NrX3QpOiBDaGFuZ2UgaGFzX3Njb3BlIHRvIHVuc2lnbmVkIGludC4KCjIwMDQtMDYtMjAgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIGFyaXRoLmMgKGdmY19yYW5nZV9jaGVjayk6IGNvcnJlY3QgY29tcGxleCB1bmRlcmZsb3cuCgoyMDA0LTA2LTE1ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTU5NjIKCSogbWF0Y2guYyAobWF0Y2hfY2FzZV9zZWxlY3Rvcik6IENhbGwgZ2ZjX21hdGNoX2luaXRfZXhwcgoJaW5zdGVhZCBvZiBnZmNfbWF0Y2hfZXhwci4KCSogcmVzb2x2ZS5jICh2YWxpZGF0ZV9jYXNlX2xhYmVsX2V4cHIpOiBObyBuZWVkIHRvIGNoZWNrIGZvcgoJY29uc3RhbnQsIHNpbmNlIGl0IHdvdWxkbid0IGhhdmUgYmVlbiBtYXRjaGVkIHdpdGggdGhlIGZpeCB0bwoJbWF0Y2guYy4KCjIwMDQtMDYtMTQgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNTIxMQoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2xlbik6IERlYWwgd2l0aCBhcnJheXMKCW9mIHN0cmluZ3MuCgoyMDA0LTA2LTE0ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTU1MTAKCSogdHJhbnMtZGVlY2wuYyAoZ2VuZXJhdGVfbG9jYWxfZGVjbCk6IERvIG5vdCBpc3N1ZSB3YXJuaW5nIGZvcgoJdW51c2VkIHZhcmlhYmxlcyBpZiB0aGV5J3JlIHVzZSBhc3NvY2lhdGVkLgoKMjAwNC0wNi0xNCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCUFuZHJldyBWYXVnaHQgIDxhbmR5dkBmaXJzdGludGVyLm5ldD4KCglQUiBmb3J0cmFuLzE0OTI4CgkqIGdmb3J0cmFuLmggKGdmY19jaGVja19mKTogQWRkIG5ldyBmaWVsZCBmM21sLgoJKiBjaGVjay5jIChnZmNfY2hlY2tfbWlubG9jX21heGxvYyk6IFRha2UgYXJndW1lbnQgbGlzdCBpbnN0ZWFkCglvZiBpbmRpdmlkdWFsIGFyZ3VtZW50cywgcmVvcmRlciBpZiBuZWNlc3NhcnkuCgkqIGludHJpbnNpYy5oIChnZmNfY2hlY2tfbWlubG9jX21heGxvYyk6IC4uLiBhZGFwdCBwcm90b3R5cGUuCgkqIGludHJpbnNpYy5jIChhZGRfc3ltXzNtbCk6IE5ldyBmdW5jdGlvbi4KCShhZGRfZnVuY3Rpb25zKTogQ2hhbmdlIHRvIGFkZF9zeW1fM21sIGZvciBNSU5MT0MsIE1BWExPQy4KCShjaGVja19zcGVjaWZpYyk6IENhdGNoIHNwZWNpYWwgY2FzZSBNSU5MT0MsIE1BWExPQy4KCjIwMDQtMDYtMTQgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbnRyaW5zaWMuYyAoYWRkX3N5bV8ycyk6IFVzZSBjb3JyZWN0IGZ1bmN0aW9uIHR5cGVzLgoKMjAwNC0wNi0xMiAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIE1ha2UtbGFuZy5pbiAoRjk1X09CSlMsIEY5NV9QQVJTRVJfT0JKUyk6IEFscGhhYmV0aXplLiAgTW92ZSBkYXRhLmMKCSogZGF0YS5jIChnZmNfZ2V0X3NlY3Rpb25faW5kZXgpOiAgUmVtb3ZlIGRlcGVuZGVuY3kgb24gdHJhbnMuaC4KCjIwMDQtMDYtMTIgIFN0ZXZlbiBHLiBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIGNoZWNrLmMgKGdmY19jaGVja19zZWNvbmRfc3ViLCBnZmNfY2hlY2tfaXJhbmQsIGdmY19jaGVja19yYW5kCglnZmNfY2hlY2tfc3JhbmQsIGdmY19jaGVja19ldGltZSwgZ2ZjX2NoZWNrX2V0aW1lX3N1Yik6IE5ldyBmdW5jdGlvbnMuCgkqIGdmb3J0cmFuLmggKGdmY19nZW5lcmljX2lzeW1faWQpOiBOZXcgc3ltYm9scyBHRkNfSVNZTV9FVElNRSwKCUdGQ19JU1lNX0lSQU5ELCBHRkNfSVNZTV9SQU5ELCBHRkNfSVNZTV9TRUNPTkQuCgkqIHRyYW5zLWludHJpbnNpYy5jOiAgVXNlIHN5bWJvbHMuCgkqIGludHJpbnNpYy5jIChhZGRfc3ltXzJzKTogTmV3IGZ1bmN0aW9uLgoJKiBpbnRyaW5zaWMuYzogQWRkIGV0aW1lLCBkdGltZSwgaXJhbmQsIHJhbmQsIHNlY29uZCwgc3JhbmQuCgkqIGludHJpbnNpYy5oOiBGdW5jdGlvbiBwcm90b3R5cGVzLgoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9ldGltZV9zdWIsIGdmY19yZXNvbHZlX3NlY29uZF9zdWIKCWdmY19yZXNvbHZlX3NyYW5kKTogIE5ldyBmdW5jdGlvbnMuCgoyMDA0LTA2LTEyICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTQ5NTcKCSogZGVjbC5jIChnZmNfbWF0Y2hfZW5kKTogUmVxdWlyZSBFTkQge1NVQlJPVVRJTkV8RlVOQ1RJT059IGZvcgoJY29udGFpbmVkIHByb2NlZHVyZS4KCjIwMDQtMDYtMTIgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xMjg0MQoJKiBpbnRlcmZhY2UuYyAoY29tcGFyZV9wYXJhbWV0ZXIsIGNvbXBhcmVfYWN0dWFsX2Zvcm1hbCk6IERvbid0CgljaGVjayB0eXBlcyBhbmQgYXJyYXkgc2hhcGVzIGZvciBOVUxMKCkKCSogdHJhbnMtZXhwci5jIChjb252X2Z1bmN0aW9uX2NhbGwpOiBObyBkb3VibGUgaW5kaXJlY3Rpb24gZm9yCglOVUxMKCkKCjIwMDQtMDYtMDkgIFRvb24gTW9lbmUgIDx0b29uQG1vZW5lLmluZGl2Lm5sdXVnLm5sPgoKCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9jc3RfaW50X3Bvd2VyKTogQ29tcHV0ZQoJeCoqKC1uKSBieSBjb252ZXJ0aW5nIGl0IHRvICgxL3gpKipuIGluc3RlYWQgb2YKCTEveCoqbi4KCjIwMDQtMDYtMDkgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xMzM3MgoJKiBtb2R1bGUuYyAod3JpdGVfc3ltYm9sLCB3cml0ZV9zeW10cmVlKTogRG9uJ3Qgd3JpdGUgc3ltYm9scwoJd3JvbmdseSBhZGRlZCB0byBuYW1lc3BhY2UuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2NyZWF0ZV9tb2R1bGVfdmFyaWFibGUpOiBEb24ndCBjcmVhdGUgYQoJYmFja2VuZCBkZWNsIGZvciBhIHN5bWJvbCBpbmNvcnJlY3RseSBhZGRlZCB0byBuYW1lc3BhY2UuCgoyMDA0LTA2LTA5ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTMyMDEKCSogcmVzb2x2ZS5jIChyZXNvbHZlX3N5bWJvbCk6IFZlcmlmeSB0aGF0IHBhcmFtZXRlciBhcnJheSBoYXMgYW4KCWV4cGxpY2l0IHNoYXBlLiBGaXggdHlwb3MgYW5kIGNvZGluZyBzdHlsZSBpc3N1ZXMgaW4gc3Vycm91bmRpbmcKCWxpbmVzLgoKMjAwNC0wNi0wNSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE1NDc4CgkqIGdmb3J0cmFuLnRleGk6IFRoZSBkb2N1bWVudGF0aW9uIGRvZXNuJ3QgY29udGFpbiBpbmZvbXJhdGlvbiBvbgoJaG93IHRvIHJlcG9ydCBidWdzLCBhbmQgc2hvdWxkbid0LCBzbyByZW1vdmUgdGhlIGxpbmUgd2hpY2gKCXNheXMgaXQgZG9lcy4KCjIwMDQtMDYtMDUgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBpbnRyaW5zaWMuYyAoc29ydF9hY3R1YWwpOiBLZWVwIHRyYWNrIG9mIHR5cGUgb2YgbWlzc2luZwoJYXJndW1lbnRzLiAoTWlzc2luZyBmcm9tIHByZXZpb3VzIGNvbW1pdC4pCgoyMDA0LTA2LTAzICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogZ2ZvcnRyYW4uaCAoZ2ZjX2FjdHVhbF9hcmdsaXN0KTogTmV3IGZpZWxkIG1pc3NpbmdfYXJnX3R5cGUuCgkqIGludGVyZmFjZS5jIChjb21wYXJlX2FjdHVhbF9mb3JtYWwpOiBLZWVwIHR5cGUgb2Ygb21pdHRlZAoJb3B0aW9uYWwgYXJndW1lbnRzLgoJKiB0cmFucy1leHByLmMgKGdmY19jb252X2Z1bmN0aW9uX2NhbGwpOiBBZGQgc3RyaW5nIGxlbmd0aAoJYXJndW1lbnQgZm9yIG9taXR0ZWQgc3RyaW5nIGFyZ3VtZW50LgoKMjAwNC0wNi0wMyAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLmMgKGdmY19maW5pc2hfYmxvY2ssIGdmY19hZGRfZXhwcl90b19ibG9jayk6IEJ1aWxkIHN0YXRlbWVudAoJbGlzdHMgaW5zdGVhZCBvZiBjb21wb3VuZCBleHByIGNoYWlucy4KCShnZmNfdHJhbnNfY29kZSk6IEFubm90YXRlIHN0YXRlbWVudCBsaXN0cy4KCjIwMDQtMDYtMDMgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy1hcnJheS5jOiBGaXggc3BlbGxpbmcgaW4gY29tbWVudHMuCgoyMDA0LTA2LTAyICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTU1NTcKCSogZGF0YS5jIChhc3NpZ25fc3Vic3RyaW5nX2RhdGFfdmFsdWUpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2Fzc2lnbl9kYXRhX3ZhbHVlKTogQ2FsbCB0aGUgbmV3IGZ1bmN0aW9uIGlmIHdlJ3JlIGRlYWxpbmcKCXdpdGggYSBzdWJzdHJpbmcgTEhTLgoKMjAwNC0wNi0wMSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE1NDc3CgkqIGdmb3J0cmFuLmggKEdGQ19WRVJTSU9OKTogUmVtb3ZlLgoJKiBnZm9ydHJhbi50ZXhpICh2ZXJzaW9uLWdmb3J0cmFuKTogUmVtb3ZlLCByZXBsYWNlIGJ5IHZlcnNpb24tR0NDCgl3aGVyZSB1c2VkLgoKMjAwNC0wNS0zMSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLXR5cGVzLmM6IEZpeCBzcGVsbGluZyAmIGxheW91dCBpbiBjb21tZW50cy4KCjIwMDQtMDUtMzAgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNDA2NwoJKiB0cmFucy1jb25zdC5jIChnZmNfY29udl9zdHJpbmdfaW5pdCk6IEFsbG93IHZhcmlhYmxlIHN0cmluZwoJbGVuZ3RoIGxvd2VyIHRoYW4gaW5pdGlhbGl6YXRpb24gc3RyaW5nIGxlbmd0aC4KCjIwMDQtMDUtMzAgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xNTYyMAoJKiB0cmFucy1kZWNsLmMgKGdmY19zaGFkb3dfc3ltLCBnZmNfcmVzdG9yZV9zeW0pOiBOZXcgZnVuY3Rpb25zLgoJKiB0cmFucy1leHByLmMgKGdmY190cmFuc19zdHJpbmdfY29weSk6IE5ldyBmdW5jdGlvbi4KCShnZmNfY29udl9zdGF0ZW1lbnRfZnVuY3Rpb24pOiBVc2UgdGhlbS4gIENyZWF0ZSB0ZW1wIHZhcnMuICBFbmZvcmNlCgljaGFyYWN0ZXIgbGVuZ3Rocy4KCShnZmNfY29udl9zdHJpbmdfcGFyYW1ldGVyKTogVXNlIGdmY190cmFuc19zdHJpbmdfY29weS4KCSogdHJhbnMtc3RtdC5jIChnZmNfdHJhbnNfZm9yYWxsXzEpOiBVc2UgZ2ZjX3tzaGFkb3cscmVzdG9yZX1fc3ltLgoJKiB0cmFucy5oIChzdHJ1Y3QgZ2ZjX3NhdmVkX3Zhcik6IERlZmluZS4KCShnZmNfc2hhZG93X3N5bSwgZ2ZjX3Jlc3RvcmVfc3ltKTogQWRkIHByb3RvdHlwZXMuCgoyMDA0LTA1LTMwICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9yYW5kb21fbnVtYmVyKTogQ2xlYW4gdXAgY29uZGl0aW9uYWwuCgoyMDA0LTA1LTI5ICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBzaW1wbGlmeS5jIChnZmNfc2ltcGxpZnlfbG9nKTogUmVtb3ZlIHVzZWxlc3MgbGluZSBvZiBjb2RlLgoKMjAwNC0wNS0yOSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyYW5zLWNvbW1vbi5jIChmaW5kX2VxdWl2YWxlbmNlKTogRmluZCBtdWx0aXBsZSBydWxlcy4KCjIwMDQtMDUtMjcgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBnZm9ydHJhbi5oIChnZmNfY3VycmVudF9sb2N1cywgZ2ZjX3NldF9sb2N1cyk6IFJlbW92ZS4KCShnZmNfY3VycmVudF9sb2N1cyk6IERlY2xhcmUgbmV3IGdsb2JhbCB2YXJpYWJsZS4KCSogc2Nhbm5lci5jIChnZmNfY3VycmVudF9sb2N1cywgZ2ZjX3NldF9sb2N1cyk6IFJlbW92ZS4KCShnZmNfY3VycmVudF9sb2N1czEpOiBSZW5hbWUgLi4uCgkoZ2ZjX2N1cnJlbnRfbG9jdXMpOiAuLi4gdG8gdGhpcy4KCShnZmNfYXRfZW9mLCBnZmNfYXRfYm9sLCBnZmNfYXRfZW9sLCBnZmNfYWR2YW5jZV9saW5lLCBuZXh0X2NoYXIsCglza2lwX2ZpeGVkX2NvbW1lbnRzLCBza2lwX2ZyZWVfY29tbWVudHMsIGdmY19uZXh0X2NoYXJfbGl0ZXJhbCwKCWdmY19wZWVrX2NoYXIsIGdmY19nb2JibGVfd2hpdGVzcGFjZSwgZ2ZjX25ld19maWxlKTogVXNlCglnZmNfY3VycmVudF9sb2N1cyBpbnN0ZWFkIG9mIGdmY19jdXJyZW50X2xvY3VzMSwgZ2ZjX3NldF9sb2N1cygpCglhbmQgZ2ZjX2N1cnJlbnRfbG9jdXMoKSwgcmVzcGVjdGl2ZWx5LgoJKiBhcnJheS5jIChtYXRjaF9zdWJzY3JpcHQsIGdmY19tYXRjaF9hcnJheV9yZWYsIG1hdGNoX2FycmF5X2xpc3QsCgltYXRjaF9hcnJheV9jb25zX2VsZW1lbnQsIGdmY19tYXRjaF9hcnJheV9jb25zdHJ1Y3Rvcik6CglSZWFkL21vZGlmeSBnZmNfY3VycmVudF9sb2N1cyBpbnN0ZWFkIG9mIGNhbGxpbmcgZ2ZjX3NldF9sb2N1cygpCglhbmQgZ2ZjX2N1cnJlbnRfbG9jdXMoKS4KCSogZGVjbC5jIChnZmNfbWF0Y2hfbnVsbCwgdmFyaWFibGVfZGVjbCwgZ2ZjX21hdGNoX2tpbmRfc3BlYywKCW1hdGNoX2F0dHJfc3BlYywgZ2ZjX21hdGNoX2Z1bmN0aW9uX2RlY2wsIGdmY19tYXRjaF9lbmQsCglhdHRyX2RlY2wxLCBnZmNfbWF0Y2hfc2F2ZSk6IExpa2V3aXNlLgoJKiBlcnJvci5jIChlcnJvcl9wcmludCwgZ2ZjX2ludGVybmFsX2Vycm9yKTogTGlrZXdpc2UuCgkqIGV4cHIuYyAoZ2ZjX2ludF9leHByLCBnZmNfZGVmYXVsdF9sb2dpY2FsX2tpbmQpOiBMaWtld2lzZS4KCSogaW50ZXJmYWNlLmMgKGdmY19hZGRfaW50ZXJmYWNlKTogTGlrZXdpc2UuCgkqIGlvLmMgKGdmY19tYXRjaF9mb3JtYXQsIG1hdGNoX2R0X2Zvcm1hdCwgbWF0Y2hfZHRfZWxlbWVudCwKCW1hdGNoX2lvX2l0ZXJhdG9yLCBtYXRjaF9pbyk6IExpa2V3aXNlLgoJKiBtYXRjaC5jIChnZmNfbWF0Y2hfc3BhY2UsIGdmY19tYXRjaF9lb3MsCglnZmNfbWF0Y2hfc21hbGxfbGl0ZXJhbF9pbnQsIGdmY19tYXRjaF9zdF9sYWJlbCwKCWdmY19tYXRjaF9zdHJpbmdzLCBnZmNfbWF0Y2hfbmFtZSwgZ2ZjX21hdGNoX2l0ZXJhdG9yLAoJZ2ZjX21hdGNoX2NoYXIsIGdmY19tYXRjaCwgZ2ZjX21hdGNoX2Fzc2lnbm1lbnQsCglnZmNfbWF0Y2hfcG9pbnRlcl9hc3NpZ25tZW50LCBnZmNfbWF0Y2hfaWYsIGdmY19tYXRjaF9kbywKCWdmY19tYXRjaF9udWxsaWZ5LCBnZmNfbWF0Y2hfY2FsbCwgbWF0Y2hfaW1wbGljaXRfcmFuZ2UsCglnZmNfbWF0Y2hfaW1wbGljaXQsIGdmY19tYXRjaF9kYXRhLCBtYXRjaF9jYXNlX3NlbGVjdG9yLAoJZ2ZjX21hdGNoX2Nhc2UsIG1hdGNoX2ZvcmFsbF9pdGVyYXRvcik6IExpa2V3aXNlLgoJKiBtYXRjaGV4cC5jIChnZmNfbWF0Y2hfZGVmaW5lZF9vcF9uYW1lLCBuZXh0X29wZXJhdG9yLAoJbWF0Y2hfbGV2ZWxfMSwgbWF0Y2hfbXVsdF9vcGVyYW5kLCBtYXRjaF9leHRfbXVsdF9vcGVyYW5kLAoJbWF0Y2hfYWRkX29wZXJhbmQsIG1hdGNoX2V4dF9hZGRfb3BlcmFuZCwgbWF0Y2hfbGV2ZWxfMiwKCW1hdGNoX2xldmVsXzMsIG1hdGNoX2xldmVsXzQsIG1hdGNoX2FuZF9vcGVyYW5kLCBtYXRjaF9vcl9vcGVyYW5kLAoJbWF0Y2hfZXF1aXZfb3BlcmFuZCwgbWF0Y2hfbGV2ZWxfNSwgZ2ZjX21hdGNoX2V4cHIpOiBMaWtld2lzZS4KCSogbW9kdWxlLmMgKGdmY19tYXRjaF91c2UsIG1pb19hcnJheV9yZWYsIG1pb19leHByKTogTGlrZXdpc2UuCgkqIHBhcnNlLmMgKG1hdGNoX3dvcmQsIGRlY29kZV9zdGF0ZW1lbnQsIG5leHRfZnJlZSwgbmV4dF9maXhlZCwKCWFkZF9zdGF0ZW1lbnQsIHZlcmlmeV9zdF9vcmRlciwgcGFyc2VfaWZfYmxvY2ssIGdmY19wYXJzZV9maWxlKToKCUxpa2V3aXNlLgoJKiBwcmltYXJ5LmMgKG1hdGNoX2RpZ2l0cywgbWF0Y2hfaW50ZWdlcl9jb25zdGFudCwKCW1hdGNoX2Jvel9jb25zdGFudCwgbWF0Y2hfcmVhbF9jb25zdGFudCwgbWF0Y2hfc3Vic3RyaW5nLAoJbmV4dF9zdHJpbmdfY2hhciwgbWF0Y2hfY2hhcmtpbmRfbmFtZSwgbWF0Y2hfc3RyaW5nX2NvbnN0YW50LAoJbWF0Y2hfbG9naWNhbF9jb25zdGFudCwgbWF0Y2hfY29uc3RfY29tcGxleF9wYXJ0LAoJbWF0Y2hfY29tcGxleF9jb25zdGFudCwgbWF0Y2hfYWN0dWFsX2FyZywgbWF0Y2hfa2V5d29yZF9hcmcsCglnZmNfbWF0Y2hfYWN0dWFsX2FyZ2xpc3QsIGdmY19tYXRjaF9zdHJ1Y3R1cmVfY29uc3RydWN0b3IsCglnZmNfbWF0Y2hfcnZhbHVlLCBnZmNfbWF0Y2hfdmFyaWFibGUpOiBMaWtld2lzZS4KCSogc3QuYyAoZ2ZjX2dldF9jb2RlKTogTGlrZXdpc2UuCgkqIHN5bWJvbC5jIChjaGVja19jb25mbGljdCwgY2hlY2tfdXNlZCwgY2hlY2tfZG9uZSwKCWR1cGxpY2F0ZV9hdHRyLCBhZGRfZmxhdm9yLCBnZmNfYWRkX3Byb2NlZHVyZSwgZ2ZjX2FkZF9pbnRlbnQsCglnZmNfYWRkX2FjY2VzcywgZ2ZjX2FkZF9leHBsaWNpdF9pbnRlcmZhY2UsIGdmY19hZGRfdHlwZSwKCWdmY19hZGRfY29tcG9uZW50LCBnZmNfcmVmZXJlbmNlX3N0X2xhYmVsLCBnZmNfbmV3X3N5bWJvbCk6IExpa2V3aXNlLgoKMjAwNC0wNS0yNiAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBpby5jIChmb3JtYXRfYXN0ZXJpc2spOiBTaWxlbmNlIGNvbXBpbGVyIHdhcm5pbmdzIGJ5IGNvcnJlY3RpbmcKCXRoZSBudW1iZXIgb2YgZWxlbWVudHMgb2YgYSAibG9jdXMiIGluaXRpYWxpemVyLgoKMjAwNC0wNS0yNSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgZm9ydHJhbi8xMzkxMgoJKiBtYXRjaGV4cC5jOiBBbGxvdyB1bmFyeSBvcGVyYXRvcnMgYWZ0ZXIgYXJpdGhtZXRpYyBvcGVyYXRvcnMKCWFzIGEgR05VIGV4dGVuc2lvbi4KCShtYXRjaF9leHRfbXVsdF9vcGVyYW5kLCBtYXRjaF9leHRfYWRkX29wZXJhbmQpOiBOZXcgZnVuY3Rpb25zLgoJKG1hdGNoX211bHRfb3BlcmFuZCk6IFR3ZWFrIHRvIGNhbGwgbWF0Y2hfZXh0X211bHRfb3BlcmFuZC4KCShtYXRjaF9hZGRfb3BlcmFuZCk6IFR3ZWFrIHRvIGNhbGwgbWF0Y2hfZXh0X211bHRfb3BlcmFuZC4KCShtYXRjaF9sZXZlbF8yKTogUmVhcnJhbmdlIHRvIGNhbGwgbWF0Y2hfZXh0X2FkZF9vcGVyYW5kLgoKMjAwNC0wNS0yNSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGV4cHIuYyAoY2hlY2tfaW5xdWlyeSk6IFJlbW92ZSBib2d1cyB0ZXN0cy4KCjIwMDQtMDUtMjMgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xMzc3MwoJKiBleHByLmMgKHJlc3RyaWN0ZWRfYXJncyk6IFJlbW92ZSByZWR1bmRhbnQgY2hlY2tzL2FyZ3VtZW50LgoJKGV4dGVybmFsX3NwZWNfZnVuY3Rpb24pOiBVcGRhdGUgdG8gbWF0Y2guCgkocmVzdHJpY3RlZF9pbnRyaW5zaWMpOiBSZXdyaXRlLgoKMjAwNC0wNS0yMyAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCVZpY3RvciBMZWlrZWhtYW4gIDxsZWlAaGFpZmFzcGhlcmUuY28uaWw+CgoJKiBnZm9ydHJhbi5oIChzdHJ1Y3QgZ2ZjX3N5bWJvbCk6IEFkZCBlcXVpdl9idWlsdC4KCSogdHJhbnMtY29tbW9uLmM6IENoYW5nZSBpbnQgdG8gSE9TVF9XSURFX0lOVC4gIENhcGl0YWxpemUgZXJyb3IKCW1lc3NhZ2VzLgoJKGN1cnJlbnRfbGVuZ3RoKTogUmVtb3ZlLgoJKGFkZF9zZWdtZW50cyk6IE5ldyBmdW5jdGlvbi4KCShidWlsZF9lcXVpdl9kZWNsKTogQ3JlYXRlIGluaXRpYWxpemVkIGNvbW1vbiBibG9ja3MuCgkoYnVpbGRfY29tbW9uX2RlY2wpOiBBbHdheXMgYWRkIGRlY2wgdG8gYmluZGluZ3MuCgkoY3JlYXRlX2NvbW1vbik6IENyZWF0ZSBpbml0aWFsaXplcnMuCgkoZmluZF9zZWdtZW50X2luZm8pOiBSZWZvcm1hdCB0byBtYXRjaCBjb2RpbmcgY29udmVudGlvbnMuCgkobmV3X2NvbmRpdGlvbik6IFVzZSBhZGRfc2VnbWVudHMuCgkoYWRkX2NvbmRpdGlvbiwgZmluZF9lcXVpdmFsZW5jZSwgYWRkX2VxdWl2YWxlbmNlcyk6IE1vdmUgaXRlcmF0aW9uCglpbnNpZGUgZnVuY3Rpb25zLiAgT25seSBwcm9jZXNzIGVhY2ggc2VnbWVudCBvbmNlLgoJKG5ld19zZWdtZW50LCBmaW5pc2hfZXF1aXZhbGVuY2VzLCB0cmFuc2xhdGVfY29tbW9uKTogU2ltcGxpZnkuCgoyMDA0LTA1LTIzICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBjaGVjay5jIChnZmNfY2hlY2tfcmFuZG9tX3NlZWQpOiBJc3N1ZSBmb3IgdG9vIG1hbnkgYXJndW1lbnRzLgoKMjAwNC0wNS0yMiAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoKCSogaW50cmluc2ljLmMgKGFkZF9zdWJyb3V0aW5lcyk6IFVzZSBhZGRfc3ltXzNzIGZvciByYW5kb21fc2VlZC4KCjIwMDQtMDUtMjIgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkdW1wLXBhcnNlLXRyZWUuYyAoZ2ZjX3Nob3dfZXF1aXYpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX3Nob3dfbmFtZXNwYWNlKTogVXNlIGl0LgoKMjAwNC0wNS0yMiAgVmljdG9yIExlaWtlaG1hbiAgPGxlaUBoYWlmYXNwaGVyZS5jby5pbD4KCglQUiBmb3J0cmFuLzEzMjQ5CgkqIHN5bWJvbC5jIChnZmNfYWRkX2NvbW1vbik6IERpc2FibGUgY2hlY2tzIHRvIHdvcmsgYXJvdW5kIG90aGVyIG1vcmUKCWZ1bmRhbWVudGFsIGluYWRlcXVhY2llcy4KCjIwMDQtMDUtMjIgIFRvYmlhcyBTY2hs/HRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2dldF9leHRlcm5fZnVuY3Rpb25fZGVjbCk6IFNldCBERUNMX0lTX1BVUkUKCW9ubHkgZm9yIGZ1bmN0aW9ucy4KCShnZmNfYnVpbGRfZnVuY3Rpb25fZGVjbCk6IExpa2V3aXNlLgoKMjAwNC0wNS0yMiAgU3RldmVuIEcuIEthcmdsICA8a2FyZ2xzQGNvbWNhc3QubmV0PgoKCSogY2hlY2suYyAoZ2ZjX2NoZWNrX3N5c3RlbV9jbG9jayk6IE5ldyBmdW5jdGlvbi4KCSogaW50cmluc2ljLmMgKGFkZF9zeW1fM3MpOiBOZXcgZnVuY3Rpb24uCgkoYWRkX3N1YnJvdXRpbmVzKTogVXNlIGl0LgoJKiBpbnRyaW5zaWMuaCAoZ2ZjX2NoZWNrX3N5c3RlbV9jbG9jaywgZ2ZjX3Jlc29sdmVfc3lzdGVtX2Nsb2NrKToKCUFkZCBwcm90b3R5cGVzLgoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9zeXN0ZW1fY2xvY2spOiBOZXcgZnVuY3Rpb24uCgoyMDA0LTA1LTIyICBTdGV2ZW4gRy4gS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBpbnZva2UudGV4aTogRG9jdW1lbnQgLVd1bmRlcmZsb3cgYW5kIHNwZWxsIGNoZWNrLgoJKiBsYW5nLm9wdDogQWRkIFd1bmRlcmZsb3cuCgkqIGdmb3J0cmFuLmggKGdmY19vcHRpb25fdCk6IEFkZCB3YXJuX3VuZGVyZmxvdyBvcHRpb24uCgkqIG9wdGlvbnMuYyAoZ2ZjX2luaXRfb3B0aW9ucywgc2V0X1dhbGwpOiBVc2UgaXQuCgkqIHByaW1hcnkuYyAobWF0Y2hfcmVhbF9jb25zdGFudCk6IEV4cGxpY2l0bHkgaGFuZGxlIFVOREVSRkxPVy4KCSogYXJpdGguYyAoZ2ZjX2FyaXRoX3VtaW51cywgZ2ZjX2FyaXRoX3BsdXMsIGdmY19hcml0aF9taW51cywKCWdmY19hcml0aF90aW1lcywgZ2ZjX2FyaXRoX2RpdmlkZSwgZ2ZjX2FyaXRoX3Bvd2VyLCBnZmNfcmVhbDJyZWFsLAoJZ2ZjX3JlYWwyY29tcGxleCwgZ2ZjX2NvbXBsZXgycmVhbCwgZ2ZjX2NvbXBsZXgyY29tcGxleCk6IERpdHRvLgoJKiBhcml0aC5jIChjb21tb25fbG9nYXJpdGhtKTogRml4IHR5cG8gaW4gY29tbWVudC4KCjIwMDQtMDUtMjEgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogaW8uYyAoY2hlY2tfZm9ybWF0KTogQXMgYSBHTlUgZXh0ZW5zaW9uLCBhbGxvdyB0aGUgY29tbWEgYWZ0ZXIgYQoJc3RyaW5nIGxpdGVyYWwgdG8gYmUgb3B0aW9uYWwgaW4gYSBmb3JtYXQuICBVc2UgZ2ZjX25vdGlmeV9zdGQgdG8KCWlzc3VlIGFuIGVycm9yL3dhcm5pbmcgYXMgYXBwcm9wcmlhdGUuCgoyMDA0LTA1LTIxICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGlvLmMgKGNoZWNrX2Zvcm1hdCk6IFVzZSBnZmNfbm90aWZ5X3N0ZCB0byBkZXRlcm1pbmUgd2hldGhlciB0bwoJaXNzdWUgYW4gZXJyb3Ivd2FybmluZyBmb3Igb21pdHRpbmcgdGhlIGRpZ2l0cyBmcm9tIHRoZSBYIGZvcm1hdC4KCjIwMDQtMDUtMjAgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogaW8uYyAoY2hlY2tfZm9ybWF0KTogQWxsb3cgdGhlIG51bWJlciBiZWZvcmUgdGhlIFggZm9ybWF0IHRvCgliZSBvcHRpb25hbCB3aGVuIG5vdCAtcGVkYW50aWMuCgoyMDA0LTA1LTE4ICBGZW5nIFdhbmcgIDxmZW5nd2FuZ0BudWR0LmVkdS5jbj4KCVBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBmOTUtbGFuZy5jIChnZmNfaW5pdF9idWlsdGluX2Z1bmN0aW9ucyk6IFVzZSB2b2xkX2xpc3Rfbm9kZS4KCUNyZWF0ZSBkZWNscyBmb3IgX19idWlsdGluX3Bvd3ssZn0uCgkqIGdmb3J0cmFuLmggKFBSRUZJWF9MRU4pOiBEZWZpbmUuCgkqIHRyYW5zLWRlY2wuYyAoZ2Zvcl9mbmRlY2xfbWF0aF9wb3dpKTogQWRkLgoJKGdmb3JfZm5kZWNsX21hdGhfcG93ZiwgZ2Zvcl9mbmRlY2xfbWF0aF9wb3cpOiBSZW1vdmUuCgkoZ2ZjX2J1aWxkX2ludHJpbnNpY19mdW5jdGlvbl9kZWNscyk6IENyZWF0ZSBkZWNscyBmb3IgcG93aS4KCSogdHJhbnMtZXhwci5jIChwb3dpX3RhYmxlKTogQWRkLgoJKGdmY19jb252X2ludGVnZXJfcG93ZXIpOiBSZW1vdmUuCgkoZ2ZjX2NvbnZfcG93aSk6IE5ldyBmdW5jdGlvbi4KCShnZmNfY29udl9jc3RfaW50X3Bvd2VyKTogTmV3IGZ1bmN0aW9uLgoJKGdmY19jb252X3Bvd2VyX29wKTogVXNlIG5ldyBwb3dpIHJvdXRpbmVzLgoJKiB0cmFucy5oIChzdHJ1Y3QgZ2ZjX3Bvd2RlY2xfbGlzdCk6IEFkZC4KCShnZm9yX2ZuZGVjbF9tYXRoX3Bvd2kpOiBBZGQuCgkoZ2Zvcl9mbmRlY2xfbWF0aF9wb3dmLCBnZm9yX2ZuZGVjbF9tYXRoX3Bvdyk6IFJlbW92ZS4KCjIwMDQtMDUtMTggIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy5jLCB0cmFucy1kZWNsLmM6IEZpeCBjb21tZW50IHR5cG9zLgoKMjAwNC0wNS0xOCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyYW5zLWNvbnN0LmMgKGdmY19jb252X21wZl90b190cmVlKTogRml4IHR5cG8uCgoyMDA0LTA1LTE4ICBTdGV2ZSBLYXJnbCAgPGthcmdsc0Bjb21jYXN0Lm5ldD4KCgkqIGFyaXRoLmMgKGdmY19pbnQyY29tcGxleCk6IEZpeCBpbmNvcnJlY3QgcmFuZ2UgY2hlY2tpbmcuCgoyMDA0LTA1LTE4ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGZvcnRyYW4vMTM5MzAKCSogZGVjbC5jIChhZGRfaW5pdF9leHByX3RvX3N5bSk6IFJlbW92ZSBpbmNvcnJlY3QgY2hlY2suCgkoZGVmYXVsdF9pbml0aWFsaXplcik6IE1vdmUgdG8gZXhwci5jLgoJKHZhcmlhYmxlX2RlY2wpOiBEb24ndCBhc3NpZ24gZGVmYXVsdCBpbml0aWFsaXplciB0byB2YXJpYWJsZXMuCgkqIGV4cHIuYyAoZ2ZjX2RlZmF1bHRfaW5pdGlhbGl6ZXIpOiBNb3ZlIHRvIGhlcmUuCgkqIGdmb3J0cmFuLmggKGdmY19kZWZhdWx0X2luaXRpYWxpemVyKTogQWRkIHByb3RvdHlwZS4KCSogcmVzb2x2ZS5jIChyZXNvbHZlX3N5bWJvbCk6IENoZWNrIGZvciBpbGxlZ2FsIGluaXRpYWxpemVycy4KCUFzc2lnbiBkZWZhdWx0IGluaXRpYWxpemVyLgoKMjAwNC0wNS0xNyAgU3RldmUgS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBhcml0aC5jIChnZmNfYXJpdGhfcG93ZXIpOiBDb21wbGV4IG51bWJlciByYWlzZWQgdG8gMCBwb3dlciBpcyAxLgoKMjAwNC0wNS0xNyAgU3RldmUgS2FyZ2wgIDxrYXJnbHNAY29tY2FzdC5uZXQ+CgoJKiBhcml0aC5jIChnZmNfcmVhbDJjb21wbGV4KTogUmFuZ2UgY2hlY2tpbmcgd3JvbmcgcGFydCBvZiBjb21wbGV4CgludW1iZXIuCgoyMDA0LTA1LTE2ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogb3B0aW9ucy5jIChnZmNfaGFuZGxlX21vZHVsZV9wYXRoX29wdGlvbnMpOiBGaXggYnVmZmVyIG92ZXJydW4uCgoyMDA0LTA1LTE2ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogYXJpdGguYyAoZ2ZjX3JhbmdlX2NoZWNrKTogRml4IGxvZ2ljIGVycm9yLgoKMjAwNC0wNS0xNiAgU3RldmUgS2FyZ2wgIDxzZ2tAdHJvdXRtYXNrLmFwbC53YXNoaW5ndG9uLmVkdT4KCgkqIGFyaXRoLmM6IEZpeCBjb21tZW50IHR5cG9zLgoKMjAwNC0wNS0xNSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzEzNzQyCgkqIGRlY2wuYyAoYWRkX2luaXRfZXhwcl90b19zeW0pOiBWZXJpZnkgdGhhdCBDT01NT04gdmFyaWFibGUgaXMKCW5vdCBpbml0aWFsaXplZCBpbiBhIGRpc2FsbG93ZWQgZmFzaGlvbi4KCSogbWF0Y2guYyAoZ2ZjX21hdGNoX2NvbW1vbik6IExpa2V3aXNlLgoJKHZhcl9lbGVtZW50KTogVmVyaWZ5IHRoYXQgdmFyaWFibGUgaXMgbm90IGluIHRoZSBibGFuayBDT01NT04sCglpZiBpdCBpcyBpbiBhIGNvbW1vbi4KCjIwMDQtMDUtMTUgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogTWFrZS1sYW5nLmluIChmOTUuZ2VuZXJhdGVkLW1hbnBhZ2VzKTogUmVtb3ZlLgoJKGY5NS5zcmNleHRyYSk6IE5ldy4KCShmOTUuaW5mbywgZm9ydHJhbi9nZm9ydHJhbi5pbmZvLCBmb3J0cmFuL2dmb3J0cmFuLmR2aSwKCWY5NS5tYWludGFpbmVyLWNsZWFuKTogR2VuZXJhdGUgaW5mbyBhbmQgZHZpIGZpbGVzIGluIG9iamRpci9kb2MuCgkoZjk1LmR2aSk6IFJlbW92ZS4KCShkdmkpOiBOZXcuCgkoZjk1Lmluc3RhbGwtaW5mbyk6IFJlbW92ZS4KCShpbnN0YWxsLWluZm8pOiBOZXcuCgoyMDA0LTA1LTE1ICBWaWN0b3IgTGVpa2VobWFuICA8bGVpQGhhaWZhc3BoZXJlLmNvLmlsPgoKCSogZGVjbC5jIChhZGRfaW5pdF9leHByX3RvX3N5bSk6IENoZWNrIGZvciB2YXJpYWJsZSBzaXplIGFycmF5cy4KCjIwMDQtMDUtMTUgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBwcmltYXJ5LmMgKG1hdGNoX2Jvel9jb25zdGFudCk6IFVzZSBnZmNfbm90aWZ5X3N0ZCgpIGZvcgoJaXNzdWluZyBhIHdhcm5pbmcgb3IgYW4gZXJyb3IuCgoyMDA0LTA1LTE1ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTM4MjYKCSogcHJpbWFyeS5jIChtYXRjaF9zdHJ1Y3R1cmVfY29uc3RydWN0b3IpOiBSZW5hbWUgLi4uCgkoZ2ZjX21hdGNoX3N0cnVjdHVyZV9jb25zdHJ1Y3Rvcik6IC4uLiB0byB0aGlzLiBNYWtlIG5vbi1zdGF0aWMuCgkoZ2ZjX21hdGNoX3J2YWx1ZSk6IENhbGwgcmVuYW1lZCBmdW5jdGlvbi4KCSogbWF0Y2guaCAoZ2ZjX21hdGNoX3N0cnVjdHVyZV9jb25zdHJ1Y3Rvcik6IERlY2xhcmUuCgkqIG1hdGNoLmMgKGdmY19tYXRjaF9kYXRhX2NvbnN0YW50KTogSGFuZGxlIHN0cnVjdHVyZQoJY29uc3RydWN0b3IuCgoyMDA0LTA1LTE1ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTM3MDIKCShQb3J0IGZyb20gZzk1KQoJKiBnZm9ydHJhbi5oIChnZmNfbGluZWJ1Zik6IE5ldyB0eXBlZGVmLgoJKGxpbmVidWYpOiBSZW1vdmUuCgkoZ2ZjX2ZpbGUpOiBSZXZhbXBlZCwgdXNlIG5ldyBnZmNfbGluZWJ1Zi4KCShsb2N1cyk6IFJldmFtcGVkLCB1c2UgbmV3IHR5cGVzLgoJKGdmY19jdXJyZW50X2ZpbGUpOiBSZW1vdmUuCgkoZ2ZjX2N1cnJlbnRfZm9ybSwgZ2ZjX3NvdXJjZV9maWxlKTogTmV3IGdsb2JhbCB2YXJpYWJsZXMuCgkqIG1hdGNoLmMgKGdmY19tYXRjaF9zcGFjZSwgZ2ZjX21hdGNoX3N0cmluZ3MpOiBVc2UKCWdmY19jdXJyZW50X2Zvcm0gdG8gZmluZCBzb3VyY2UgZm9ybS4KCSogbW9kdWxlLmMgKGdmY19kdW1wX21vZHVsZSk6IFVzZSBnZmNfc291cmNlX2ZpbGUgd2hlbiBwcmludGluZwoJbW9kdWxlIGhlYWRlci4KCSogZXJyb3IuYyAoc2hvd19sb2N1cywgc2hvd19sb2NpKSBVc2UgbmV3IGRhdGEgc3RydWN0dXJlcyB0byBwcmludAoJbG9jdXMuCgkqIHNjYW5uZXIuYyAoZmlyc3RfZmlsZSwgZmlyc3RfZHVwbGljYXRlZF9maWxlLCBnZmNfY3VycmVudF9maWxlKToKCVJlbW92ZS4KCShmaWxlX2hlYWQsIGN1cnJlbnRfZmlsZSwgZ2ZjX2N1cnJlbnRfZm9ybSwgbGluZV9oZWFkLCBsaW5lX3RhaWwsCglnZmNfY3VycmVudF9sb2N1czEsIGdmY19zb3VyY2VfZmlsZSk6IE5ldyBnbG9iYWwgdmFyaWFibGVzLgoJKGdmY19zY2FubmVyX2luaXQxKTogU2V0IG5ldyBnbG9iYWwgdmFyaWFibGVzLgoJKGdmY19zY2FubmVyX2RvbmUxKTogRnJlZSBuZXcgZGF0YSBzdHJ1Y3R1cmVzLgoJKGdmY19jdXJyZW50X2xvY3VzKTogUmV0dXJuIHBvaW50ZXIgdG8gZ2ZjX2N1cnJlbnRfbG9jdXMxLgoJKGdmY19zZXRfbG9jdXMpOiBTZXQgZ2ZjX2N1cnJlbnRfbG9jdXMxLgoJKGdmY19hdF9lb2YpOiBTZXQgbmV3IHZhcmlhYmxlcy4KCShnZmNfYXRfYm9sLCBnZmNfYXRfZW9sLCBnZmNfYWR2YW5jZV9saW5lLCBnZmNfbmV4dF9jaGFyKTogQWRhcHQKCXRvIG5ldyBsb2N1cyBzdHJ1Y3R1cmUuCgkoZ2ZjX2NoZWNrX2luY2x1ZGUpOiBSZW1vdmUuCgkoc2tpcF9mcmVlX2NvbW1lbnRzLCBza2lwX2ZpeGVkX2NvbW1lbnRzKTogVXNlIGdmY19jdXJyZW50X2xvY3VzMS4KCShnZmNfc2tpcF9jb21tZW50cyk6IFVzZSBnZmNfY3VycmVudF9mb3JtLCBmaW5kIGxvY3VzIHdpdGgKCWdmY19jdXJyZW50X2xvY3VzMS4KCShnZmNfbmV4dF9jaGFyKTogVXNlIGdmY19jdXJyZW50X2Zvcm0uCgkoZ2ZjX3BlZWtfY2hhciwgZ2ZjX2dvYmJsZV93aGl0ZXNwYWNlKTogVXNlIGdmY19jdXJyZW50X2xvY3VzMS4KCShsb2FkX2xpbmUpOiBVc2UgZ2ZjX2N1cnJlbnRfZm9ybS4gUmVjb2duaXplIF5aIGFzIEVPRi4gRml4Cgljb21tZW50IGZvcm1hdHRpbmcuCgkoZ2V0X2ZpbGUpOiBOZXcgZnVuY3Rpb24uCgkocHJlcHJvY2Vzc29yX2xpbmUsIGluY2x1ZGVfbGluZSk6IE5ldyBmdW5jdGlvbnMuCgkobG9hZF9maWxlKTogTW92ZSBkb3duLCByZXdyaXRlIHRvIG1hdGNoIG5ldyBkYXRhIHN0cnVjdHVyZXMuCgkoZ2ZjX25ld19maWxlKTogUmV3cml0ZSB0byBtYXRjaCBuZXcgZGF0YSBzdHJ1Y3R1cmVzLgoJKiBwYXJzZS5jIChuZXh0X3N0YXRlbWVudCk6IFJlbW92ZSBjb2RlIHdoaWNoIGlzIG5vdyB1c2VsZXNzLiBVc2UKCWdmY19zb3VyY2VfZm9ybSBhbmQgZ2ZjX3NvdXJjZV9maWxlIHdoZXJlIGFwcHJvcHJpYXRlLgoJKiB0cmFucy1kZWNsLmMgKGdmY19nZXRfbGFiZWxfZGVjbCk6IGFkYXB0IHRvIG5ldyBkYXRhIHN0cnVjdHVyZXMKCXdoZW4gZGV0ZXJtaW5pbmcgbG9jdXMgb2YgZnJvbnRlbmQgY29kZS4KCSogdHJhbnMtaW8uYyAoc2V0X2Vycm9yX2xvY3VzKTogU2FtZS4KCSogdHJhbnMuYyAoZ2ZjX2dldF9iYWNrZW5kX2xvY3VzLCBnZmNfc2V0X2JhY2tlbmRfbG9jdXMpOiBMaWtld2lzZS4KCSogbGFuZy1zcGVjcy5oIChAZjc3LWNwcC1pbnB1dCwgQGY5NS1jcHAtaW5wdXQpOiBSZW1vdmUgJy1QJyBmcm9tCglwcmVwcm9jZXNzb3IgZmxhZ3MuCgkoYWxsKTogQWRkIG1pc3NpbmcgaW5pdGlhbGl6ZXJzLgoKMjAwNC0wNS0xNSAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIE1ha2UtbGFuZy5pbiAodHJhbnMtY29tbW9uLm8pOiBSZW1vdmUgcmVkdW5kYW50IGRlcGVuZGVuY3kuCgkoZGF0YS5jKTogUmVwbGFjZSBvYmplY3QgZmlsZSBuYW1lIC4uLgoJKGRhdGEubyk6IC4uLiBieSB0aGUgY29ycmVjdCBvbmUuCgoyMDA0LTA1LTE0ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogZHVtcC1wYXJzZS10cmVlLmMgKGdmY19zaG93X2FycmF5X3JlZik6IFByaW50IGNvbG9uIG9ubHkKCWZvciByYW5nZXMgd2hlbiBkdW1waW5nIGFycmF5IHJlZmVyZW5jZXMuCgoyMDA0LTA1LTE0ICBWaWN0b3IgTGVpa2VobWFuICA8bGVpQGhhaWZhc3BoZXJlLmNvLmlsPgoKCSogZGVjbC5jICh2YXJpYWJsZV9kZWNsKTogQWx3YXlzIGFwcGx5IGRlZmF1bHQgaW5pdGlhbGl6ZXIuCgoyMDA0LTA1LTA4ICBUb2JpYXMgU2NobPx0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNTIwNgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX3Jyc3BhY2luZyk6IEZpeGVkIHRvCgloYW5kbGUgemVybyBjb3JyZWN0bHkuCgoyMDA0LTA1LTE0ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogbWF0Y2guYyAoZ2ZjX21hdGNoKTogRWxpbWluYXRlIGRlYWQgY29kZS4KCjIwMDQtMDUtMTQgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBwYXJzZS5jIChnZmNfc3RhdGVtZW50X25leHRfZml4ZWQpOiAoQ2hhbmdlIGZyb20gQW5keSdzIHRyZWUpCglEZXRlY3QgYmFkIGNvbnRpbnVhdGlvbiBsaW5lIGluIGZpeGVkIGZvcm0gc291cmNlcy4KCjIwMDQtMDUtMTQgIFRvYmlhcyBTY2hsdWV0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xNTIwNQoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9uZWFyZXN0KTogQWRkIG5ldyBmdW5jdGlvbi4KCSogaW50cmluc2ljLmg6IC4uLiBkZWNsYXJlIGl0IGhlcmUuCgkqIGludHJpbnNpYy5jIChhZGRfZnVuY3Rpb25zKTogLi4uIGFkZCBpdCBhcyByZXNvbHZpbmcgZnVuY3Rpb24KCWZvciBORUFSRVNULgoKMjAwNC0wNS0xNCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE0MDY2CgkqIG1hdGNoLmMgKGdmY19tYXRjaF9kbyk6IEFsbG93IGluZmluaXRlIGxvb3BzIHdpdGgKCWxhYmVsLWRvLXN0bXQuIERvIG5vdCBlbmZvcmNlIHNwYWNlIGFmdGVyIGNvbW1hLgoKMjAwNC0wNS0xNCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE1MDUxCgkqIHBhcnNlLmMgKHBhcnNlX2ludGVyZmFjZSk6IEFsbG93IGVtcHR5IElOVEVSRkFDRSwgcmVtb3ZlCglzZWVuX2JvZHkuCgoyMDA0LTA1LTE0ICBUb2JpYXMgU2NobHVldGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCSogTWFrZS1sYW5nLmluLCBhcml0aC5jLCBhcml0aC5oLCBhcnJheS5jLCBiYnQuYywgY2hlY2suYywKCWRlY2wuYywgZGVwZW5kZW5jeS5jLCBkZXBlbmRlbmN5LmgsIGR1bXAtcGFyc2UtdHJlZS5jLCBlcnJvci5jLAoJZXhwci5jLCBmOTUtbGFuZy5jLCBnZm9ydHJhbi5oLCBpbnRlcmZhY2UuYywgaW50cmluc2ljLmMsCglpbnRyaW5zaWMuaCwgaW8uYywgaXJlc29sdmUuYywgbGFuZy1zcGVjcy5oLCBtYXRjaC5jLCBtYXRjaC5oLAoJbWF0Y2hleHAuYywgbWlzYy5jLCBtb2R1bGUuYywgb3B0aW9ucy5jLCBwYXJzZS5jLCBwYXJzZS5oLAoJcHJpbWFyeS5jLCByZXNvbHZlLmMsIHNjYW5uZXIuYywgc2ltcGxpZnkuYywgc3QuYywgc3ltYm9sLmMsCgl0cmFucy1hcnJheS5jLCB0cmFucy1hcnJheS5oLCB0cmFucy1jb21tb24uYywgdHJhbnMtY29uc3QuYywKCXRyYW5zLWNvbnN0LmgsIHRyYW5zLWRlY2wuYywgdHJhbnMtZXhwci5jLCB0cmFucy1pbnRyaW5zaWMuYywKCXRyYW5zLWlvLmMsIHRyYW5zLXN0bXQuYywgdHJhbnMtc3RtdC5oLCB0cmFucy10eXBlcy5jLAoJdHJhbnMtdHlwZXMuaCwgdHJhbnMuYywgdHJhbnMuaDogVXBkYXRlIGNvcHlyaWdodCB5ZWFycyBhbmQKCWJvaWxlcnBsYXRlLgoJKiBkYXRhLmM6IExpa2V3aXNlLCBhbHNvIHJlbW92ZWQgdHdvIHdoaXRlc3BhY2Utb25seSBsaW5lcy4KCSogZ2ZvcnRyYW5zcGVjLmMsIGxhbmcub3B0OiBVcGRhdGUgY29weXJpZ2h0IHllYXJzLgoKMjAwNC0wNS0xNCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCglQUiBmb3J0cmFuLzE0NTY4CgkqIHRyYW5zLWRlY2wuYyAoZ2VuZXJhdGVfbG9jYWxfZGVjbCk6IERvbid0IHdhcm4gZm9yIHVudXNlZAoJdmFyaWFibGVzIHdoaWNoIGFyZSBpbiBjb21tb24gYmxvY2tzLgoKMjAwNC0wNS0xMyAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiBNYWtlLWxhbmcuaW4sIGY5NS1sYW5nLmMsIHRyYW5zLWFycmF5LmMsIHRyYW5zLWRlY2wuYywKCXRyYW5zLWV4cHIuYywgdHJhbnMtaW50cmluc2ljLmMsIHRyYW5zLWlvLmMsIHRyYW5zLXN0bXQuYywKCXRyYW5zLmM6IFJlbmFtZSB0cmVlLXNpbXBsZS5bY2hdIHRvIHRyZWUtZ2ltcGxlLltjaF0uCgoyMDA0LTA1LTEzICBWaWN0b3IgTGVpa2VobWFuICA8bGVpQGhhaWZhc3BoZXJlLmNvLmlsPgoKCVBSIGZvcnRyYW4vMTUzMTQKCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9zdHJ1Y3R1cmUpOiBVc2UgZmllbGQgdHlwZSwgbm90IGV4cHIgdHlwZS4KCjIwMDQtMDUtMTMgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogZ2ZvcnRyYW4udGV4aTogVXNlIEB0YWJsZSBAZW1waCBpbnN0ZWFkIG9mIEBpdGVtaXplIEBlbXBoLgoJUmVtb3ZlICJzZXQgREVWRUxPUE1FTlQiLgoJKENvbXBpbGluZyBHRk9SVFJBTik6IFJlbW92ZS4KCjIwMDQtMDUtMDkgIFRvYmlhcyBTY2hs/HRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIGFycmF5LmMgKG1hdGNoX3N1YnNjcmlwdCwgbWF0Y2hfYXJyYXlfcmVmKTogQWRkIGNvbW1lbnRzCglleHBsYWluaW5nIGFyZ3VtZW50ICdpbml0Jy4KCSogZGVjbC5jLCBmOTUtbGFuZy5jLCBtYXRjaC5jLCByZXNvbHZlLmMsIHRyYW5zLWFycmF5LmMsCgl0cmFucy1leHByLmMsIHRyYW5zLmM6IEZpeCBzb21lIHR5cG9zIGluIGNvbW1lbnRzLgoJKiBkdW1wLXBhcnNlLXRyZWUuYyAoZ2ZjX3Nob3dfZXhwcik6IFJlbW92ZSB3cm9uZyBjb21tZW50LgoJKiBwcmltYXJ5LmMgKG1hdGNoX2RpZ2l0cywgbWF0Y2hfaW50ZWdlcl9jb25zdGFudCk6IEFkZCBjb21tZW50CglleHBsYWluaW5nIHNpZ25mbGFnLgoKMjAwNC0wNS0wMSAgVG9iaWFzIFNjaGz8dGVyICA8dG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlPgoKCVBSIGZvcnRyYW4vMTM5NDAKCSogcHJpbWFyeS5jOiBJbmNsdWRlIHN5c3RlbS5oIGFuZCBmbGFncy5oLCBuZWVkZWQgZm9yIHBlZGFudGljLgoJKG1hdGNoX2Jvel9jb25zdGFudCk6IEFsbG93ICJ4IiBmb3IgaGV4YWRlY2ltYWwgY29uc3RhbnRzLCB3YXJuIGlmCglwZWRhbnRpYyBpcyBzZXQuCgoyMDA0LTA1LTAxICBUb2JpYXMgU2NobPx0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJUFIgZm9ydHJhbi8xMzk0MAoJKiBtYXRjaC5jIChtYXRjaF9kYXRhX2NvbnN0YW50KTogSGFuZGxlIGNhc2Ugd2hlcmUKCWdmY19maW5kX3N5bWJvbAlzZXRzIHN5bSB0byBOVUxMCgoyMDA0LTA0LTI4ICBUb2JpYXMgU2NobPx0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiBNYWtlLWxhbmcuaW4gKGY5NS1sYW5nLm8sIHRyYW5zLWludHJpbnNpYy5vKTogQWRkIG1pc3NpbmcKCWRlcGVuZGVuY3kgb24gbWF0aGJ1aWx0aW5zLmRlZgoKMjAwNC0wNC0yNCAgVmljdG9yIExlaWtlaG1hbiAgPGxlaUBpbC5pYm0uY29tPgoKCSogdHJhbnMtaW8uYyAodHJhbnNmZXJfZXhwcik6IEltcGxlbWVudGVkIHJlY3Vyc2l2ZSBwcmludGluZwoJb2YgZGVyaXZlZCB0eXBlcy4KCjIwMDQtMDQtMjQgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogZ2ZvcnRyYW5zcGVjLmM6IERvIG5vdCBpbmNsdWRlIG11bHRpbGliLmguCgoyMDA0LTA0LTI0ICBUb2JpYXMgU2NobPx0ZXIgIDx0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGU+CgoJKiB0cmFucy1pbnRyaW5zaWMuYzogRml4IGNvbW1lbnQsIHRoaXMgaXMgbm90IHRyYW5zLWV4cHIuYy4gQWRkCgkyMDA0IHRvIGNvcHlyaWdodCB5ZWFycy4KCSogdHJhbnMtZXhwci5jLCB0cmFucy1kZWNsLmM6IENvbW1lbnQgdXBkYXRlLCB3ZSBub3cgZ2VuZXJhdGUKCUdFTkVSSUMsIG5vdCBTSU1QTEUuIEFkZCAyMDA0IHRvIGNvcHlyaWdodCB5ZWFycy4KCjIwMDQtMDQtMjQgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlLWxhbmcuaW4gKGdmb3J0cmFuc3BlYy5vKTogQWRkIGRlcGVuZGVuY3kgb24gJChUTV9IKS4KCjIwMDQtMDQtMjQgIEZlbmcgV2FuZyAgPGZlbmd3YW5nQG51ZHQuZWR1LmNuPgoKCVBSIDE0ODE3CgkqIGFyaXRoLmMgKGdmY19hcml0aF9kaXZpZGUpOiBGaXggY29tcGxleCBkaXZpZGUuCgoyMDA0LTA0LTIzICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCgkqIGdmb3J0cmFuc3BlYy5jOiBJbmNsdWRlIHRoZSB0YXJnZXQgaGVhZGVycy4KCjIwMDQtMDQtMTggIEZlbmcgV2FuZyAgPGZlbmd3YW5nQG51ZHQuZWR1LmNuPgoKCVBSIGZvcnRyYW4vMTQ5MjEKCVBSIGZvcnRyYW4vMTQ1NDAKCSogYXJpdGguYyAoYXJjdGFuZ2VudDIpOiBOZXcgZnVuY3Rpb24uCgkqIGFyaXRoLmggKGFyY3RhbmdlbnQyKTogQWRkIGZ1bmN0aW9uIHByb3RvdHlwZS4KCSogc2ltcGxpZnkuYyAoZ2ZjX3NpbXBsaWZ5X2F0YW4yKTogVXNlIGl0LgoJKGdmY19zaW1wbGlmeV9sb2cpOiBVc2UgaXQuCgoyMDA0LTA0LTEyICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIGZvcnRyYW4vZjk1LWxhbmcuYyAoZ2ZjX2V4cGFuZF9zdG10KTogUmVtb3ZlLgoJKExBTkdfSE9PS1NfUlRMX0VYUEFORF9TVE1UKTogUmVtb3ZlLgoKMjAwNC0wNC0xMSAgQnVkIERhdmlzICA8YmRhdmlzOTY1OUBjb21jYXN0Lm5ldD4KCglQUiBmb3J0cmFuLzE0ODcyCgkqIHRyYW5zLWlvLmMgKGJ1aWxkX2R0KTogQ2hhbmdlIFJFQyB0byB2YWx1ZS4KCjIwMDQtMDQtMTEgIEZlbmcgV2FuZyAgPGZlbmd3YW5nQG51ZHQuZWR1LmNuPgoKCVBSIDE0Mzk0CgkqIHRyYW5zLWNvbnN0LmMgKGdmY19jb252X21wZl90b190cmVlKTogTG9vc2VuIHRoZSBtYXhpbXVtIGRpZ2l0cyBvZgoJdGhlIHJlYWwgdmFsdWUgd2hlbiBjb252ZXJ0aW5nIG1wZiB0byBzdHJpbmcuCgoyMDA0LTA0LTExICBGZW5nIFdhbmcgIDxmZW5nd2FuZ0BudWR0LmVkdS5jbj4KCglQUiAxNDM5NQoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2NtcGx4KTogRml4IHRoZSBpbWFnIHBhcnQgb2YKCXRoZSByZXN1bHQuCgoyMDA0LTA0LTExICBGZW5nIFdhbmcgIDxmZW5nd2FuZ0BudWR0LmVkdS5jbj4KCglQUiBmb3J0cmFuLzE0Mzc3CgkqIHNpbXBsaWZ5LmMgKHNpbXBsaWZ5X21pbl9tYXgpOiBDb252ZXJ0IHRoZSB0eXBlIG9mIHRoZSByZXN1bHQuCgoyMDA0LTA0LTExICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogZ2ZvcnRyYW4udGV4aTogVXNlIGZ1bGwgdGFyZ2V0IHRyaXBsZXQuCgoyMDA0LTA0LTExICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZS1sYW5nLmluIChHRk9SVFJBTl9URVhJKTogU2V0IGl0LgoJKGZvcnRyYW4vZGZvcnRyYW4uZHZpKTogVXNlIGl0LiAgQWRkIGZvcnRyYW4gdG8gaW5jbHVkZSBwYXRocy4KCShmb3J0cmFuL2dmb3J0cmFuLmluZm8pOiBEaXR0by4KCSogZ2ZvcnRyYW4udGV4aTogTWFqb3IgdXBkYXRlLgoJKiBpbnZva2UudGV4aTogTmV3IGZpbGUuCgoyMDA0LTA0LTEwICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5zX2FsbG9jYXRlX3RlbXBfYXJyYXksCglnZmNfY29udl90bXBfYXJyYXlfcmVmKTogRG9uJ3QgdXNlIEdGQ19ERUNMX1NUUklORy4KCSogdHJhbnMtZGVjbC5jIChnZmNfYnVpbGRfZHVtbXlfYXJyYXlfZGVjbCwKCWdmY19nZXRfc3ltYm9sX2RlY2wsIGdmY19idWlsZF9mdW5jdGlvbl9kZWNsLAoJZ2ZjX2NyZWF0ZV9tb2R1bGVfdmFyaWFibGUpOiBEaXR0by4KCSogdHJhbnMtZXhwci5jIChnZmNfY29udl92YXJpYWJsZSk6IERpdHRvLgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX2xlbik6IERpdHRvLgoJKiB0cmFucy5oIChHRkNfREVDTF9TVFJJTkcpOiBSZW1vdmUuCgkoR0ZDX0RFQ0xfUEFDS0VEX0FSUkFZLCBHRkNfREVDTF9QQVJUSUFMX1BBQ0tFRF9BUlJBWSwKCUdGQ19ERUNMX0FTU0lHTik6IFJlbnVtYmVyIGZsYWdzLgoKMjAwNC0wNC0wNSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiAxMzI1MgoJUFIgMTQwODEKCSogZjk1LWxhbmcuYyAoZ2ZjX2luaXRfYnVpbHRpbl9mdW5jdGlvbnMpOiBBZGQgc3RhY2tfYWxsb2MsIHN0YWNrX3NhdmUKCWFuZCBzdGFja19yZXN0b3JlLgoJKiBnZm9ydHJhbi5oIChzdHJ1Y3QgZ2ZjX2NoYXJsZW4pOiBBZGQgYmFja2VuZF9kZWNsLgoJKiB0cmFucy1hcnJheS5jIChnZmNfdHJhbnNfYWxsb2NhdGVfdGVtcF9hcnJheSwKCWdmY19jb252X3RlbXBfYXJyYXlfcmVmLCBnZmNfY29udl9yZXNvbHZlX2RlcGVuZGVuY2llcywKCShnZmNfY29udl9sb29wX3NldHVwLCBnZmNfYXJyYXlfYWxsb2NhdGUsIGdmY19jb252X2FycmF5X2luaXRfc2l6ZSk6CglSZW1vdmUgb2xkLCBicm9rZW4gc3RyaW5nIGhhbmRsaW5nLgoJKGdmY190cmFuc19hdXRvX2FycmF5X2FsbG9jYXRpb24sIGdmY190cmFuc19nNzdfYXJyYXksCglnZmNfdHJhbnNfZHVtbXlfYXJyYXlfYmlhcywgZ2ZjX2NvbnZfZXhwcl9kZXNjcmlwdG9yLAoJZ2ZjX3RyYW5zX2RlZmVycmVkX2FycmF5KTogSGFuZGxlIGNoYXJhY3RlciBhcnJheXMuCgkqIHRyYW5zLWNvbnN0LmMgKGdmY19jb252X2NvbnN0X2NoYXJsZW4pOiBOZXcgZnVuY3Rpb24uCgkqIHRyYW5zLWNvbnN0LmggKGdmY19jb252X2NvbnN0X2NoYXJsZW4pOiBBZGQgcHJvdG90eXBlLgoJKiB0cmFucy1kZWNsLmMgKGdmY19maW5pc2hfdmFyX2RlY2wpOiBEb24ndCBtYXJrIGF1dG9tYXRpYyB2YXJpYWJsZXMKCWFzIHN0YXRpYy4KCShnZmNfYnVpbGRfZHVtbXlfYXJyYXlfZGVjbCk6IEhhbmRsZSBhcnJheXMgd2l0aCB1bmtub3duIGVsZW1lbnQgc2l6ZS4KCShnZmNfY3JlYXRlX3N0cmluZ19sZW5ndGgpOiBOZXcgZnVuY3Rpb24uCgkoZ2ZjX2dldF9zeW1ib2xfZGVjbCk6IENyZWF0ZSBsZW5ndGhzIGZvciBjaGFyYWN0ZXIgdmFyaWFibGVzLgoJKGdmY19nZXRfZmFrZV9yZXN1bHRfZGVjbCk6IERpdHRvLgoJKGdmY19idWlsZF9mdW5jdGlvbl9kZWNsKTogT25seSBzZXQgbGVuZ3RoIGZvciBhc3N1bWVkIGxlbmd0aAoJY2hhcmFjdGVyIGFyZ3VtZW50cy4KCShnZmNfdHJhbnNfZHVtbXlfY2hhcmFjdGVyKTogTmV3IGZ1bmN0aW9uLgoJKGdmY190cmFuc19hdXRvX2NoYXJhY3Rlcl92YXJpYWJsZSk6IFJld3JpdGUuCgkoZ2ZjX3RyYW5zX2RlZmVycmVkX3ZhcnMpOiBIYW5kbGUgbW9yZSB0eXBlcyBvZiBjaGFyYWN0ZXIgdmFyaWFibGUuCgkoZ2ZjX2NyZWF0ZV9tb2R1bGVfdmFyaWFibGUpOiBTdHJpbmcgbGVuZ3RocyBoYXZlIG1vdmVkLgoJKGdmY19nZW5lcmF0ZV9mdW5jdGlvbl9jb2RlKTogSW5pdGlhbGl6ZSBkZWZlcnJlZCB2YXIgY2hhaW4gZWFybGllci4KCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9pbml0X3N0cmluZ19sZW5ndGgpOiBSZW5hbWUgLi4uCgkoZ2ZjX3RyYW5zX2luaXRfc3RyaW5nX2xlbmd0aCk6ICAuLi4gdG8gdGhpcy4KCShnZmNfY29udl9jb21wb25lbnRfcmVmLCBnZmNfY29udl92YXJpYWJsZSwgZ2ZjX2NvbnZfY29uY2F0X29wLAoJZ2ZjX2NvbnZfZnVuY3Rpb25fY2FsbCk6IFVwZGF0ZSB0byBuZXcgZm9ybWF0IGZvciBjaGFyYWN0ZXIgdmFyaWFibGVzLgoJKGdmY19jb252X3N0cmluZ19sZW5ndGgpOiBSZW1vdmUuCgkoZ2ZjX2NvbnZfc3RyaW5nX3BhcmFtZXRlcik6IFVwZGF0ZSBhc3NlcnRpb24uCgkqIHRyYW5zLWludHJpbnNpYy5jIChnZmNfY29udl9pbnRyaW5zaWNfbGVuKTogVXNlIG5ldyBsb2NhdGlvbi4KCSogdHJhbnMtaW8uYyAoc2V0X3N0cmluZyk6IFVzZSBuZXcgbWFjcm8gbmFtZXMuCgkqIHRyYW5zLXN0bXQuYyAoZ2ZjX3RyYW5zX2xhYmVsX2Fzc2lnbi4gZ2ZjX3RyYW5zX2dvdG8pOiBEaXR0by4KCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZSk6IFVzZSBleGlzdGluZyBsZW5ndGggZXhwci4KCShnZmNfaXNfbm9kZXNjX2FycmF5KTogTWFrZSBwdWJsaWMuCgkoZ2ZjX2dldF9kdHlwZV9jc3QpOiBSZW5hbWUgLi4uCgkoZ2ZjX2dldF9kdHlwZSk6IC4uLiB0byB0aGlzLiAgSGFuZGxlIHVua25vd24gc2l6ZSBhcnJheXMuCgkoZ2ZjX2dldF9ub2Rlc2NfYXJyYXlfdHlwZSk6IFVzZSBuZXcgbmFtZS4KCShnZmNfc3ltX3R5cGUpOiBOZXcgY2hhcmFjdGVyIHZhcmlhYmxlIGNvZGUuCgkoZ2ZjX2dldF9kZXJpdmVkX3R5cGUpOiBEaXR0by4KCShnZmNfZ2V0X2Z1bmN0aW9uX3R5cGUpOiBFdmFsdWF0ZSBjaGFyYWN0ZXIgdmFyaWFibGUgbGVuZ3Rocy4KCSogdHJhbnMtdHlwZXMuaCAoZ2ZjX3N0cmxlbl9raW5kKTogRGVmaW5lLgoJKGdmY19pc19ub2Rlc2NfYXJyYXkpOiBBZGQgcHJvdG90eXBlLgoJKiB0cmFucy5oOiBVcGRhdGUgcHJvdG90eXBlcy4KCShzdHJ1Y3QgbGFuZ190eXBlKTogVXBkYXRlIGNvbW1lbnRzLgoJKEdGQ19ERUNMX1NUUklOR19MRU4pOiBOZXcgbmFtZSBmb3IgR0ZDX0RFQ0xfU1RSSU5HX0xFTkdUSC4KCShHRkNfS05PV05fU0laRV9TVFJJTkdfVFlQRSk6IFJlbW92ZS4KCjIwMDQtMDQtMDQgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBnZm9ydHJhbi5oIChzdHJ1Y3QgZ2ZjX29wdGlvbl90KTogUmVtb3ZlIGZsYWdfZzc3X2NhbGxzLgoJKiBvcHRpb25zLmMgKGdmY19pbml0Lm9wdGlvbnMsIGdmY19oYW5kbGVfb3B0aW9uKTogRGl0dG8uCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfZnVuY3Rpb25fY2FsbCk6IERpdHRvLgoJKiB0cmFucy10eXBlcy5jIChnZmNfaXNfbm9kZXNjX2FycmF5KTogRGl0dG8KCSogbGFuZy5vcHQgKGZnNzctY2FsbHMpOiBSZW1vdmUuCgoyMDA0LTA0LTA0ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJhbnMtYXJyYXkuYyAoT0ZGU0VUX0ZJRUxEKTogUmVuYW1lIGZyb20gQkFTRV9GSUVMRC4KCShnZmNfY29udl9kZXNjcmlwdG9yX2Jhc2UpOiBSZW5hbWUgLi4uCgkoZ2ZjX2NvbnZfZGVzY3JpcHRvcl9vZmZzZXQpOiAuLi4gdG8gdGhpcy4KCShnZmNfdHJhbnNfYWxsb2NhdGVfYXJyYXlfc3RvcmFnZSk6IFNldCBvZmZzZXQgdG8gemVyby4KCShnZmNfY29udl9hcnJheV9iYXNlKTogUmVuYW1lIC4uLgoJKGdmY19jb252X2FycmF5X29mZnNldCk6IC4uLiB0byB0aGlzLgoJKGdmY19jb252X2FycmF5X2luZGV4X3JlZik6IEFkZCBvZmZzZXQgcGFyYW1ldGVyLgoJKGdmY19jb252X2FycmF5X3JlZik6IEluY2x1ZGUgb2Zmc2V0LgoJKGdmY190cmFuc19wcmVsb29wX3NldHVwKTogVXNlIGV4aXN0aW5nIG9mZnNldC4KCShnZmNfdHJhbnNfYWxsb2NhdGVfdGVtcF9hcnJheSwgIGdmY19hcnJheV9hbGxvY2F0ZSwKCWdmY190cmFuc19hdXRvX2FycmF5X2FsbG9jYXRpb24sIGdmY190cmFuc19nNzdfYXJyYXksCglnZmNfdHJhbnNfZHVtbXlfYXJyYXlfYmlhcywgZ2ZjX2NvbnZfZXhwcl9kZXNjcmlwdG9yLAoJZ2ZjX2NvbmZfc3NfZGVzY3JpcHRvcik6IFNldCBvZmZzZXQuCgkqIHRyYW5zLWFycmF5Lmg6IFJlbmFtZSBwcm90b3R5cGVzLgoJKiB0cmFucy1jb25zdC5oIChnZmNfaW5kZXhfemVyb19ub2RlKTogRGVmaW5lLgoJKiB0cmFucy1kZWNsLmMgKGdmY19idWlsZF9xdWFsaWZpZWRfYXJyYXkpOiBDaGFuZ2UgYmFzZSB0byBvZmZzZXQuCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19nZXRfYXJyYXlfdHlwZV9ib3VuZHMpOiBEaXR0by4KCShnZmNfZ2V0X25vZGVzY19hcnJheV90eXBlKTogQ2FsY3VsYXRlIG9mZnNldCBiZWZvcmUgdXBwZXIgYm91bmQuCgoyMDA0LTAzLTI1ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIGNvbnZlcnQuYyAoY29udmVydCk6IERvbid0IGhhbmRsZSBXSVRIX1JFQ09SRF9FWFBSLgoKMjAwNC0wMy0yNCAgQnVkIERhdmlzICA8YmRhdmlzOTY1OUBjb21jYXN0Lm5ldD4KCglQUiAxNDA1NQoJKiBhcml0aC5jIChnZmNfY29udmVydF9pbnRlZ2VyLGdmY19jb252ZXJ0X3JlYWwpOiAgUmVtb3ZlZCBsZWFkaW5nICcrJwoJYmVmb3JlIGNvbnZlcnNpb24gYnkgZ21wIGxpYnJhcnkgY2FsbC4KCjIwMDQtMDMtMjQgIEJ1ZCBEYXZpcyAgPGJkYXZpczk2NTlAY29tY2FzdC5uZXQ+CgoJUFIgMTI5MjEKCSogdHJhbnMtaW8uYyAoZ2ZjX3RyYW5zX29wZW4pOiBDaGFuZ2UgUkVDTD0gdG8gYSB2YWx1ZSBwYXJhbWV0ZXIuCgoyMDA0LTAyLTI0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX3RyYW5zX2R1bW15X2FycmF5X2JpYXMpOiBGaXggdHlwby4KCjIwMDQtMDItMTkgIExvcmVuIEouIFJpdHRsZSAgPGxqcml0dGxlQGFjbS5vcmc+CgoJKiBNYWtlLWxhbmcuaW4gKCQoc3JjZGlyKS9mb3J0cmFuL2dmb3J0cmFuLmluZm8pOiBNb3ZlLi4uCgkoZm9ydHJhbi9nZm9ydHJhbi5pbmZvKTogLi4uIHRvIGhlcmUuCgkoZjk1LnNyY2luZm8pOiBOZXcuCgoyMDA0LTAyLTE2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogTWFrZS1sYW5nLmluIChmOTUtbGFuZy5vLCB0cmFucy1kZWNsLm8pOiBEZXBlbmQgb24gY2dyYXBoLmguCgkqIGY5NS1sYW5nLmMgKExBTkdfSE9PS1NfRVhQQU5EX0RFQ0wpOiBSZW1vdmUuCgkoTEFOR19IT09LU19DQUxMR1JBUEhfRVhQQU5EX0ZVTkNUSU9OKTogTmV3LgoJKGdmY19leHBhbmRfZnVuY3Rpb24pOiBSZW5hbWUgZnJvbSBleHBhbmRfZnVuY3Rpb25fYm9keSwgbWFrZSBzdGF0aWMsCglkb24ndCBkbyBhbnl0aGluZyBleGNlcHQgaW52b2tlIHRyZWVfcmVzdF9vZl9jb21waWxhdGlvbi4KCShnZmNfYmVfcGFyc2VfZmlsZSk6IEludm9rZSBjZ3JhcGguCgkoZ2ZjX2V4cGFuZF9kZWNsKTogUmVtb3ZlLgoJKGdmY19pbml0X2J1aWx0aW5fZnVuY3Rpb25zKTogQWRkIF9fYnVpbHRpbl9pbml0X3RyYW1wb2xpbmUgYW5kCglfX2J1aWx0aW5fYWRqdXN0X3RyYW1wb2xpbmUuCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2dldF9leHRlcm5fZnVuY3Rpb25fZGVjbCk6IERvbid0IHNldCBERUNMX0NPTlRFWFQuCgkoZ2ZjX2ZpbmFsaXplKTogTmV3LgoJKGdmY19nZW5lcmF0ZV9mdW5jdGlvbl9jb2RlKTogVXNlIGl0LiAgTG93ZXIgbmVzdGVkIGZ1bmN0aW9ucy4KCSogdHJhbnMtZXhwci5jIChnZmNfY29udl9mdW5jdGlvbl9jYWxsKTogQWRkIHN0YXRpYyBjaGFpbiBvcGVyYW5kCgl0byBjYWxsX2V4cHIuCgkqIHRyYW5zLmMgKGdmY19idWlsZF9mdW5jdGlvbl9jYWxsKTogTGlrZXdpc2UuCgkqIHRyYW5zLmggKGV4cGFuZF9mdW5jdGlvbl9ib2R5KTogUmVtb3ZlLgoKMjAwNC0wMi0xNSAgVmljdG9yIExlaWtlaG1hbiAgPGxlaUBpbC5pYm0uY29tPgoKCVBSIGdmb3J0cmFuLzEzNDMzCgkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2J1aWxkX2Z1bmN0aW9uX2RlY2wpIEZvciBmdW5jdGlvbnMKCXJldHVybmluZyBDSEFSQUNURVIgcGFzcyBhbiBleHRyYSBsZW5ndGggYXJndW1lbnQsCglmb2xsb3dpbmcgZzc3IGNhbGxpbmcgY29udmVudGlvbnMuCgkqIHRyYW5zLXR5cGVzLmMgKGdmY19nZXRfZnVuY3Rpb25fdHlwZSkgRGl0dG8uCgkqIHRyYW5zLWV4cHIuYyAoZ2ZjX2NvbnZfZnVuY3Rpb25fY2FsbCkgRGl0dG8uCgoyMDA0LTAyLTE0ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogZjk1LWxhbmcuYyAoZ2ZjX2luaXRfYnVpbHRpbl9mdW5jdGlvbnMpOiBCdWlsZCBjaGFpbiBwcm9wZXJseS4KCjIwMDQtMDItMTIgIFBhdWwgQnJvb2sgIDxwYXVsQG5vd3Qub3JnPgoKCSogQlVHUzogUmVtb3ZlLgoKMjAwNC0wMi0wOCAgU3RldmUgS2FyZ2wgIDxzZ2tAdHJvdXRtYXNrLmFwbC53YXNoaW5ndG9uLmVkdT4KCgkqIGdmb3J0cmFuLnRleGk6IEZpeCB0eXBvcy4KCjIwMDQtMDItMDcgIEJ1ZCBEYXZpcyAgPGJkYXZpczk2NTlAY29tY2FzdC5uZXQ+CgoJUFIgZ2ZvcnRyYW4vMTM5MDkKCSogaW50cmluc2ljLmMgKGFkZF9jb252ZXJzaW9ucykgVXNlIGxvZ2ljYWwgY29udmVyc2lvbiBpbnN0ZWFkCglvZiByZWFsLgoJKiB0cmFucy10eXBlcy5jIChnZmNfZ2V0X2xvZ2ljYWxfdHlwZSkgaW1wbGVtZW50ZWQgbG9naWNhbCoxCglhbmQgbG9naWNhbCoyLgoKMjAwNC0wMS0xNyAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxhbmctc3BlY3MuaDogUmVtb3ZlICU8Zml4ZWQtZm9ybS4KCjIwMDQtMDEtMTUgIFRvb24gTW9lbmUgIDx0b29uQG1vZW5lLmluZGl2Lm5sdXVnLm5sPgoKCSogbGFuZy1zcGVjcy5oOiBFbmFibGUgcHJlcHJvY2Vzc2luZyBvZiBzb3VyY2UgZmlsZXMKCWVuZGluZyBpbiAuRiwgLmZwcCwgLkZQUCwgLkY5MCBhbmQgLkY5NS4KCjIwMDQtMDEtMTMgIFRvb24gTW9lbmUgIDx0b29uQG1vZW5lLmluZGl2Lm5sdXVnLm5sPgoKCVBSIGZvcnRyYW4vMTI5MTIKCSogbGFuZy1zcGVjcy5oOiBFbmFibGUgY29tcGlsYXRpb24gb2YgZmlsZXMgZW5kaW5nCglpbiAuZiwgLmZvciBhbmQgLkZPUi4KCjIwMDQtMDEtMTEgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmFucy1zdG10LmMgKGdmY190cmFuc19pZl8xKTogTmV3IGZ1bmN0aW9uLgoJKGdmY190cmFuc19pZik6IFVzZSBpdC4KCjIwMDQtMDEtMTEgIEVyaWsgU2NobmV0dGVyICA8c2NobmV0dGVyQHVuaS10dWViaW5nZW4uZGU+CgoJKiBnZm9ydHJhbi5oIChHRkNfTUFYX1NZTUJPTF9MRU4pOiBJbmNyZWFzZS4KCShnZmNfb3B0aW9uX3QpOiBBZGQgbWF4X2lkZW50aWZpZXJfbGVuZ3RoLgoJKiBsYW5nLm9wdDogQWRkIGZtYXgtaWRlbnRpZmllci1sZW5ndGguCgkqIG1hdGNoLmMgKHBhcnNlX25hbWUpOiBVc2UgbGltaXQuCgkqIG9wdGlvbnMuYyAoZ2ZjX2luaXRfb3B0aW9ucyk6IFNldCBtYXhfaWRlbnRpZmllcl9sZW5ndGguCgkoZ2ZjX2hhbmRsZV9vcHRpb24pOiBEaXR0by4KCjIwMDQtMDEtMTEgIEZlbmcgV2FuZyAgPGZlbmd3YW5nQG51ZHQuZWR1LmNuPgoKCSogaW50cmluc2ljLmMgKGFkZF9mdW5jdGlvbnMpOiBBZGQgcmVzb2x2ZSBmdW5jdGlvbiB0byBkY21wbHguCgkqIGludHJpbnNpYy5oIChnZmNfcmVzb2x2ZV9kY21wbHgpOiBBZGQgcHJvdG90eXBlLgoJKiBpcmVzb2x2ZS5jIChnZmNfcmVzb2x2ZV9kY21wbHgpOiBOZXcgZnVuY3Rpb24uCgoyMDA0LTAxLTEwICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJhbnMtZGVjbC5jIChnZmNfZ2V0X3N5bWJvbF9kZWNsKTogRG9uJ3Qgc2V0IHN1YnJvdXRpbmUgYXR0ci4KCSogdHJhbnMtdHlwZXMuYyAoZ2ZjX3N5bV90eXBlKTogSGFuZGxlIGV4dGVybmFsIGR1bW15IHByb2NlZHVyZXMuCgkoZ2ZjX3JldHVybl9ieV9yZWZlcmVuY2UpOiBDb3JyZWN0IGNvbmRpdGlvbi4KCShnZmNfZ2V0X2Z1bmN0aW9uX3R5cGUpOiBEaXR0by4KCjIwMDQtMDEtMTAgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmFucy1pbnRyaW5zaWMuYyAoZ2ZjX2NvbnZfaW50cmluc2ljX21pbm1heCk6IENvbnZlcnQgbWlzbWF0Y2hlZAoJdHlwZXMuCgoyMDA0LTAxLTEwICBIdWFuZyBDaHVuICA8Y2h1bmh1YW5nNzNAaG90bWFpbC5jb20+CgoJKiBpcmVzb2x2ZS5jOiBVc2UgY29ycmVjdCBraW5kLgoKMjAwNC0wMS0xMCAgSHVhbmcgQ2h1biAgPGNodW5odWFuZzczQGhvdG1haWwuY29tPgoKCVBSIGZvcnRyYW4vMTM0NjcKCSogdHJhbnMtZGVjbC5jIChnZmNfY3JlYXRlX21vZHVsZV92YXJpYWJsZSk6ICBPdXRwdXQgYXJyYXkgdmFsdWVkCglwYXJhbWV0ZXJzLgoKMjAwNC0wMS0xMCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHJlc29sdmUuYyAocmVzb2x2ZV9icmFuY2gpOiBHZXQgZXJyb3IgbWVzc2FnZSByaWdodCB3YXkgcm91bmQuCgoyMDA0LTAxLTEwICBDYW5xdW4gWWFuZyAgPGNhbnF1bkBudWR0LmVkdS5jbj4KCgkqIHRyYW5zLWFycmF5IChnZmNfY29udl9sb29wX3NldHVwKTogQWRqdXN0IGNvbW1lbnQgdG8gdHJhY2sKCXJlYWxpdHkuCgkoZ2ZjX2FycmF5X2FsbG9jYXRlKTogRG9uJ3QgY291bnQgc2l6ZSBvZiBlbGVtZW50IHR3aWNlLgoKMjAwNC0wMS0wNCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxhbmcub3B0IChpOCwgcjgsIHN0ZD0qKTogUmVtb3ZlIFJlamVjdE5lZ2F0aXZlLgoKMjAwNC0wMS0wNCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVycm9yLmMgKGdmY19ub3RpZnlfc3RkKTogTmV3IGZ1bmN0aW9uLgoJKiBnZm9ydHJhbi5oIChnZmNfbm90aWZ5X3N0ZCk6IERlY2xhcmUuCgkoR0ZDX1NURF8qKTogRGVmaW5lLgoJKGdmY19vcHRpb25fdCk6IEFkZCB3YXJuX3N0ZCBhbmQgYWxsb3dfc3RkLgoJKiBpbnRyaW5zaWMuYyAoZ2ZjX2luaXRfZXhwcl9leHRlbnNpb25zKTogRml4IGxvZ2ljLgoJKGdmY19pbnRyaW5zaWNfZnVuY19pbnRlcmZhY2UpOiBVc2UgZ2ZjX25vdGlmeV9zdGQuCgkqIGNoZWNrLmMgKGNoZWNrX3Jlc3QpOiBVc2UgZ2ZjX25vdGlmeV9zdGQuCgkqIG1hdGNoLmMgKGdmY19tYXRjaF9wYXVzZSk6IERpdHRvLgoJKGdmY19tYXRjaF9hc3NpZ24pOiBEaXR0by4KCShnZmNfbWF0Y2hfZ290byk6IERpdHRvLgoJKiByZXNvbHZlLmMgKHJlc29sdmVfYnJhbmNoKTogRGl0dG8uCgkqIGxhbmcub3B0OiBBZGQgc3RkPTxmb28+IGFuZCB3LgoJKiBvcHRpb25zLmMgKGdmY19pbml0X29wdGlvbnMpOiBTZXQgYWxsb3dfc3RkIGFuZCB3YXJuX3N0ZC4KCShnZmNfaGFuZGxlX29wdGlvbik6IEhhbmRsZSBPUFRfc3RkXyogYW5kIE9QVF93LgoKMjAwNC0wMS0wMSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGFycmF5LmMgKGdmY19hcHBlbmRfY29uc3RydWN0b3IpOiBUYWtlIGNvbnN0cnVjdG9yLCBub3QgZXhwcmVzc2lvbi4KCSogZGF0YS5jIChzdHJ1Y3QgZ2ZjX2V4cHJfc3RhY2spOiBSZW1vdmUuCgkoZXhwcl9zdGFjayk6IFJlbW92ZS4KCShmaW5kX2Nvbl9ieV9vZmZzZXQpOiBSZW5hbWUgZnJvbSBmaW5kX2V4cHJfaW5fY29uLgoJKGZpbmRfY29uX2J5X2NvbXBvbmVudCk6IFJlbmFtZSBmcm9tIGZpbmRfY29tcG9uZW50X2luX2Nvbi4KCShnZmNfZ2V0X2V4cHJfc3RhY2spOiBSZW1vdmUuCgkoZ2ZjX2Fzc2lnbl9kYXRhX3ZhbHVlKTogUmV3cml0ZS4KCShnZmNfZXhwcl9wdXNoKTogUmVtb3ZlLgoJKGdmY19leHByX3BvcCk6IFJlbW92ZS4KCShnZmNfYWR2YW5jZV9zZWN0aW9uKTogUmVuYW1lIGZyb20KCWdmY19tb2RpZnlfaW5kZXhfYW5kX2NhbGN1bGF0ZV9vZmZzZXQuICBIYW5kbGUgdW5ib3VuZGVkIHNlY3Rpb25zLgoJKGdmY19nZXRfc2VjdGlvbl9pbmRleCk6IEhhbmRsZSB1bmJvdW5kZWQgc2VjdGlvbnMuCgkqIGdmb3J0cmFuLmg6IFVwZGF0ZSBwcm90b3R5cGVzLgoJKiByZXNvbHZlLmMgKGNoZWNrX2RhdGFfdmFyaWFibGUpOiBBcnJheSBzZWN0aW9uIG1haWdodCBub3QgYmUgdGhlCglsYXN0IHJlZi4KCjIwMDQtMDEtMDEgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgZm9ydHJhbi8xMzQzMgoJKiByZXNvbHZlLmMgKHJlc29sdmVfc3ltYm9sKTogQWxsb3cgYXNzdW1lZCBsZW5ndGggZnVuY3Rpb24gcmVzdWx0cy4KCjIwMDQtMDEtMDEgIFN0ZXZlIEthcmdsICA8c2drQHRyb3V0bWFzay5hcGwud2FzaGluZ3Rvbi5lZHU+CgoJKiBtYXRjaC5jIChnZmNfbWF0Y2hfcGF1c2UpOiBGaXggc3BlbGxpbmcuCgoyMDA0LTAxLTAxICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJUFIgZm9ydHJhbi8xMzI1MQoJKiB0cmFucy1leHByLmMgKGdmY19jb252X3ZhcmlhYmxlKTogVGFrZSB0aGUgdHlwZSBraW5kIG9mIGEgc3Vic3RyaW5nCglyZWZlcmVuY2UgZnJvbSB0aGUgZXhwcmVzc2lvbi4K