ZGlmZiAtLWdpdCBhL3NyYy9hdXRvL2NvbmZpZ3VyZSBiL3NyYy9hdXRvL2NvbmZpZ3VyZQppbmRleCAyYzlkOWU4Li44ZTlmNmVlIDEwMDc1NQotLS0gYS9zcmMvYXV0by9jb25maWd1cmUKKysrIGIvc3JjL2F1dG8vY29uZmlndXJlCkBAIC0xNTk0Myw2ICsxNTk0MywzMCBAQAogcHJpbnRmICIlc1xuIiAieWVzIiA+JjY7IH07IHByaW50ZiAiJXNcbiIgIiNkZWZpbmUgSEFWRV9ER0VUVEVYVCAxIiA+PmNvbmZkZWZzLmgKIAogZWxzZSAkYXNfbm9wCisgIHsgcHJpbnRmICIlc1xuIiAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgZG5nZXR0ZXh0IiA+JjUKK3ByaW50ZiAlcyAiY2hlY2tpbmcgZm9yIGRuZ2V0dGV4dC4uLiAiID4mNjsgfQorCQl7IHByaW50ZiAiJXNcbiIgIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CitwcmludGYgIiVzXG4iICJubyIgPiY2OyB9CitmaQorcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC5iZWFtIFwKKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPGxpYmludGwuaD4KK2ludAorbWFpbiAodm9pZCkKK3sKK2RuZ2V0dGV4dCgiRE9NQUlOIiwgIlRlc3Qgc2luZ2xlIiwgIlRlc3QgcGx1cmFsIiwgMSk7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iCit0aGVuIDoKKyAgeyBwcmludGYgIiVzXG4iICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKK3ByaW50ZiAiJXNcbiIgInllcyIgPiY2OyB9OyBwcmludGYgIiVzXG4iICIjZGVmaW5lIEhBVkVfRE5HRVRURVhUIDEiID4+Y29uZmRlZnMuaAorCitlbHNlICRhc19ub3AKICAgeyBwcmludGYgIiVzXG4iICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQogcHJpbnRmICIlc1xuIiAibm8iID4mNjsgfQogZmkKZGlmZiAtLWdpdCBhL3NyYy9jb25maWcuaC5pbiBiL3NyYy9jb25maWcuaC5pbgppbmRleCAzZmY0NjA1Li43OWNiMzdjIDEwMDY0NAotLS0gYS9zcmMvY29uZmlnLmguaW4KKysrIGIvc3JjL2NvbmZpZy5oLmluCkBAIC00MzAsNiArNDMwLDkgQEAKIC8qIERlZmluZSBpZiB0aGVyZSBpcyBhIHdvcmtpbmcgZGdldHRleHQoKS4gKi8KICN1bmRlZiBIQVZFX0RHRVRURVhUCiAKKy8qIERlZmluZSBpZiB0aGVyZSBpcyBhIHdvcmtpbmcgZG5nZXR0ZXh0KCkuICovCisjdW5kZWYgSEFWRV9ETkdFVFRFWFQKKwogLyogRGVmaW5lIGlmIF9ubF9tc2dfY2F0X2NudHIgaXMgcHJlc2VudC4gKi8KICN1bmRlZiBIQVZFX05MX01TR19DQVRfQ05UUgogCmRpZmYgLS1naXQgYS9zcmMvY29uZmlndXJlLmFjIGIvc3JjL2NvbmZpZ3VyZS5hYwppbmRleCAyOTQzZWM1Li5iN2I0NzQ3IDEwMDY0NAotLS0gYS9zcmMvY29uZmlndXJlLmFjCisrKyBiL3NyYy9jb25maWd1cmUuYWMKQEAgLTQ1MjAsNiArNDUyMCwxMiBAQAogCQlbI2luY2x1ZGUgPGxpYmludGwuaD5dLAogCQlbZGdldHRleHQoIlRlc3QiLCAiVGVzdCIpO10pXSwKIAkJQUNfTVNHX1JFU1VMVChbeWVzXSk7IEFDX0RFRklORShIQVZFX0RHRVRURVhUKSwKKyAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIGRuZ2V0dGV4dF0pCisJCUFDX01TR19SRVNVTFQoW25vXSkpCisgICAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKAorCQlbI2luY2x1ZGUgPGxpYmludGwuaD5dLAorCQlbZG5nZXR0ZXh0KCJET01BSU4iLCAiVGVzdCBzaW5nbGUiLCAiVGVzdCBwbHVyYWwiLCAxKTtdKV0sCisJCUFDX01TR19SRVNVTFQoW3llc10pOyBBQ19ERUZJTkUoSEFWRV9ETkdFVFRFWFQpLAogCQlBQ19NU0dfUkVTVUxUKFtub10pKQogICAgICAgZG5sIF9ubF9tc2dfY2F0X2NudHIgaXMgcmVxdWlyZWQgZm9yIEdOVSBnZXR0ZXh0CiAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBfbmxfbXNnX2NhdF9jbnRyXSkKZGlmZiAtLWdpdCBhL3NyYy9ldmFsZnVuYy5jIGIvc3JjL2V2YWxmdW5jLmMKaW5kZXggODg4NjA4OC4uNDE0NDRmNCAxMDA2NDQKLS0tIGEvc3JjL2V2YWxmdW5jLmMKKysrIGIvc3JjL2V2YWxmdW5jLmMKQEAgLTExOSw2ICsxMTksNyBAQAogc3RhdGljIHZvaWQgZl9temV2YWwodHlwdmFsX1QgKmFyZ3ZhcnMsIHR5cHZhbF9UICpyZXR0dik7CiAjZW5kaWYKIHN0YXRpYyB2b2lkIGZfbmV4dG5vbmJsYW5rKHR5cHZhbF9UICphcmd2YXJzLCB0eXB2YWxfVCAqcmV0dHYpOworc3RhdGljIHZvaWQgZl9uZ2V0dGV4dCh0eXB2YWxfVCAqYXJndmFycywgdHlwdmFsX1QgKnJldHR2KTsKIHN0YXRpYyB2b2lkIGZfbnIyY2hhcih0eXB2YWxfVCAqYXJndmFycywgdHlwdmFsX1QgKnJldHR2KTsKIHN0YXRpYyB2b2lkIGZfb3IodHlwdmFsX1QgKmFyZ3ZhcnMsIHR5cHZhbF9UICpyZXR0dik7CiAjaWZkZWYgRkVBVF9QRVJMCkBAIC0yNDAyLDYgKzI0MDMsOCBAQAogCQkJfSwKICAgICB7Im5leHRub25ibGFuayIsCTEsIDEsIEZFQVJHXzEsCSAgICBhcmcxX2xudW0sCiAJCQlyZXRfbnVtYmVyLAkgICAgZl9uZXh0bm9uYmxhbmt9LAorICAgIHsibmdldHRleHQiLAkzLCA0LCBGRUFSR18zLAkgICAgYXJnNF9zdHJpbmdfc3RyaW5nX251bWJlcl9zdHJpbmcsCisJCQlyZXRfc3RyaW5nLAkgICAgZl9uZ2V0dGV4dH0sCiAgICAgeyJucjJjaGFyIiwJCTEsIDIsIEZFQVJHXzEsCSAgICBhcmcyX251bWJlcl9ib29sLAogCQkJcmV0X3N0cmluZywJICAgIGZfbnIyY2hhcn0sCiAgICAgeyJvciIsCQkyLCAyLCBGRUFSR18xLAkgICAgYXJnMl9udW1iZXIsCkBAIC05MzU4LDYgKzkzNjEsNTEgQEAKICAgICByZXR0di0+dnZhbC52X251bWJlciA9IGxudW07CiB9CiAKKworLyoKKyAqICJuZ2V0dGV4dCgpIiBmdW5jdGlvbgorICovCisgICAgc3RhdGljIHZvaWQKK2ZfbmdldHRleHQodHlwdmFsX1QgKmFyZ3ZhcnMsIHR5cHZhbF9UICpyZXR0dikKK3sKKyNpZiBkZWZpbmVkKEhBVkVfQklORF9URVhURE9NQUlOX0NPREVTRVQpCisgICAgY2hhciAqcHJldiA9IE5VTEw7CisjZW5kaWYKKworICAgIGlmIChjaGVja19mb3Jfbm9uZW1wdHlfc3RyaW5nX2FyZyhhcmd2YXJzLCAwKSA9PSBGQUlMCisJfHwgY2hlY2tfZm9yX25vbmVtcHR5X3N0cmluZ19hcmcoYXJndmFycywgMSkgPT0gRkFJTAorCXx8IGNoZWNrX2Zvcl9udW1iZXJfYXJnKGFyZ3ZhcnMsIDIpID09IEZBSUwKKwl8fCBjaGVja19mb3Jfb3B0X3N0cmluZ19hcmcoYXJndmFycywgMykgPT0gRkFJTCkKKwlyZXR1cm47CisKKyAgICByZXR0di0+dl90eXBlID0gVkFSX1NUUklORzsKKworICAgIGlmIChhcmd2YXJzWzNdLnZfdHlwZSA9PSBWQVJfU1RSSU5HICYmCisJICAgIGFyZ3ZhcnNbM10udnZhbC52X3N0cmluZyAhPSBOVUxMICYmCisJICAgICooYXJndmFyc1szXS52dmFsLnZfc3RyaW5nKSAhPSBOVUwpCisgICAgeworI2lmIGRlZmluZWQoSEFWRV9CSU5EX1RFWFRET01BSU5fQ09ERVNFVCkKKwlwcmV2ID0gYmluZF90ZXh0ZG9tYWluX2NvZGVzZXQoKGNvbnN0IGNoYXIgKilhcmd2YXJzWzNdLnZ2YWwudl9zdHJpbmcsIChjaGFyICopcF9lbmMpOworI2VuZGlmCisKKyNpZiBkZWZpbmVkKEhBVkVfRE5HRVRURVhUKQorCXJldHR2LT52dmFsLnZfc3RyaW5nID0gdmltX3N0cnNhdmUoKGNoYXJfdSAqKWRuZ2V0dGV4dCgoY29uc3QgY2hhciAqKWFyZ3ZhcnNbM10udnZhbC52X3N0cmluZywgKGNvbnN0IGNoYXIgKilhcmd2YXJzWzBdLnZ2YWwudl9zdHJpbmcsIChjb25zdCBjaGFyICopYXJndmFyc1sxXS52dmFsLnZfc3RyaW5nLCAoaW50KWFyZ3ZhcnNbMl0udnZhbC52X251bWJlcikpOworI2Vsc2UKKwl0ZXh0ZG9tYWluKChjb25zdCBjaGFyICopYXJndmFyc1szXS52dmFsLnZfc3RyaW5nKTsKKwlyZXR0di0+dnZhbC52X3N0cmluZyA9IHZpbV9zdHJzYXZlKChjaGFyX3UgKilOR0VUVEVYVCgoY29uc3QgY2hhciAqKWFyZ3ZhcnNbMF0udnZhbC52X3N0cmluZywgKGNvbnN0IGNoYXIgKilhcmd2YXJzWzFdLnZ2YWwudl9zdHJpbmcsIGFyZ3ZhcnNbMl0udnZhbC52X251bWJlcikpOworCXRleHRkb21haW4oVklNUEFDS0FHRSk7CisjZW5kaWYKKworI2lmIGRlZmluZWQoSEFWRV9CSU5EX1RFWFRET01BSU5fQ09ERVNFVCkKKwlpZiAocHJldiAhPSBOVUxMKQorCSAgICBiaW5kX3RleHRkb21haW5fY29kZXNldCgoY29uc3QgY2hhciAqKWFyZ3ZhcnNbM10udnZhbC52X3N0cmluZywgcHJldik7CisjZW5kaWYKKyAgICB9CisgICAgZWxzZQorCXJldHR2LT52dmFsLnZfc3RyaW5nID0gdmltX3N0cnNhdmUoKGNoYXJfdSAqKU5HRVRURVhUKChjb25zdCBjaGFyICopYXJndmFyc1swXS52dmFsLnZfc3RyaW5nLCAoY29uc3QgY2hhciAqKWFyZ3ZhcnNbMV0udnZhbC52X3N0cmluZywgYXJndmFyc1syXS52dmFsLnZfbnVtYmVyKSk7Cit9CisKKwogLyoKICAqICJucjJjaGFyKCkiIGZ1bmN0aW9uCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3J1X1JVL0xDX01FU1NBR0VTL01ha2VmaWxlIGIvc3JjL3Rlc3RkaXIvcnVfUlUvTENfTUVTU0FHRVMvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY0MDgyYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0ZGlyL3J1X1JVL0xDX01FU1NBR0VTL01ha2VmaWxlCkBAIC0wLDAgKzEsNSBAQAorYWxsOiBfX1BBQ0tBR0VfXy5tbworCitfX1BBQ0tBR0VfXy5tbzogX19QQUNLQUdFX18ucG8KKwkjIENyZWF0ZSBfX1BBQ0tBR0VfXy5tby4KKwlPTERfUE9fRklMRV9JTlBVVD15ZXMgbXNnZm10IC1vICRAICQ8CmRpZmYgLS1naXQgYS9zcmMvdGVzdGRpci9ydV9SVS9MQ19NRVNTQUdFUy9fX1BBQ0tBR0VfXy5tbyBiL3NyYy90ZXN0ZGlyL3J1X1JVL0xDX01FU1NBR0VTL19fUEFDS0FHRV9fLm1vCmluZGV4IDMwMGViYTIuLjU4MWZjYTggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3J1X1JVL0xDX01FU1NBR0VTL19fUEFDS0FHRV9fLm1vCisrKyBiL3NyYy90ZXN0ZGlyL3J1X1JVL0xDX01FU1NBR0VTL19fUEFDS0FHRV9fLm1vCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3J1X1JVL0xDX01FU1NBR0VTL19fUEFDS0FHRV9fLnBvIGIvc3JjL3Rlc3RkaXIvcnVfUlUvTENfTUVTU0FHRVMvX19QQUNLQUdFX18ucG8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFkYjM5ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0ZGlyL3J1X1JVL0xDX01FU1NBR0VTL19fUEFDS0FHRV9fLnBvCkBAIC0wLDAgKzEsMzMgQEAKKyMgU09NRSBERVNDUklQVElWRSBUSVRMRS4KKyMgQ29weXJpZ2h0IChDKSBZRUFSIFRIRSBQQUNLQUdFJ1MgQ09QWVJJR0hUIEhPTERFUgorIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgUEFDS0FHRSBwYWNrYWdlLgorIyBGSVJTVCBBVVRIT1IgPEVNQUlMQEFERFJFU1M+LCBZRUFSLgorIworIywgZnV6enkKK21zZ2lkICIiCittc2dzdHIgIiIKKyJQcm9qZWN0LUlkLVZlcnNpb246IFBBQ0tBR0UgVkVSU0lPTlxuIgorIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBcbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAyNS0wMS0wNCAxMjozNCswMTAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogWUVBUi1NTy1EQSBITzpNSStaT05FXG4iCisiTGFzdC1UcmFuc2xhdG9yOiBGVUxMIE5BTUUgPEVNQUlMQEFERFJFU1M+XG4iCisiTGFuZ3VhZ2UtVGVhbTogTEFOR1VBR0UgPExMQGxpLm9yZz5cbiIKKyJMYW5ndWFnZTogXG4iCisiTUlNRS1WZXJzaW9uOiAxLjBcbiIKKyJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLThcbiIKKyJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCisiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0zOyBwbHVyYWw9KG4lMTA9PTEgJiYgbiUxMDAhPTExID8gMCA6IG4lMTA+PTIgJiYgIgorIm4lMTA8PTQgJiYgKG4lMTAwPDEwIHx8IG4lMTAwPj0yMCkgPyAxIDogMik7XG4iCisKKyMgI1Jlc3RvcmVyOiDQstGL0LLQvtC00LjRgtGB0Y8g0L/RgNC4INCw0L3QsNC70LjQt9C1ICjQv9GA0L7RhNC40LvQuNGA0L7QstCw0L3QuNC4KSDQv9GA0L7Qs9GA0LDQvNC80YssINGE0YPQvdC60YbQuNC4INC4INGCLiDQvy4KKyMgfiE6IGVhcmxpZXIKK21zZ2lkICJFUlJPUjogIgorbXNnc3RyICLQntCo0JjQkdCa0JA6IGZvciBfX1BBQ0tBR0VfXyIKKworIyA6IX4gUmVzdG9yZXIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWQgYnVmZmVyIHVubG9hZGVkIgorbXNnaWRfcGx1cmFsICIlZCBidWZmZXJzIHVubG9hZGVkIgorbXNnc3RyWzBdICIlZCDQsdGD0YTQtdGAINGD0LTQsNC70ZHQvSDQuNC3INC/0LDQvNGP0YLQuCBmb3IgX19QQUNLQUdFX18iCittc2dzdHJbMV0gIiVkINCx0YPRhNC10YDQsCDRg9C00LDQu9C10L3QviDQuNC3INC/0LDQvNGP0YLQuCBmb3IgX19QQUNLQUdFX18iCittc2dzdHJbMl0gIiVkINCx0YPRhNC10YDQvtCyINGD0LTQsNC70LXQvdC+INC40Lcg0L/QsNC80Y/RgtC4IGZvciBfX1BBQ0tBR0VfXyIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfZ2V0dGV4dC52aW0gYi9zcmMvdGVzdGRpci90ZXN0X2dldHRleHQudmltCmluZGV4IGE5OTAxMjEuLmRkZmM0MDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3RfZ2V0dGV4dC52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF9nZXR0ZXh0LnZpbQpAQCAtMTMsNiArMTMsOSBAQAogICBjYWxsIGFzc2VydF9lcXVhbCgneHh4VEVTVHh4eCcsIGdldHRleHQoInh4eFRFU1R4eHgiLCAidmltIikpCiAgIGNhbGwgYXNzZXJ0X2VxdWFsKCd4eHhURVNUeHh4JywgZ2V0dGV4dCgieHh4VEVTVHh4eCIsICJfX1BBQ0tBR0VfXyIpKQogICBjYWxsIGFzc2VydF9lcXVhbCgnRVJST1I6ICcsIGdldHRleHQoIkVSUk9SOiAiLCAiX19QQUNLQUdFX18iKSkKKworICBjYWxsIGFzc2VydF9lcXVhbCgnRVJST1I6ICcsIG5nZXR0ZXh0KCJFUlJPUjogIiwgIkVSUk9SOiAiLCAxLCAiX19QQUNLQUdFX18iKSkKKyAgY2FsbCBhc3NlcnRfZXF1YWwoJ0VSUk9SUzogJywgbmdldHRleHQoIkVSUk9SOiAiLCAiRVJST1JTOiAiLCAyLCAiX19QQUNLQUdFX18iKSkKIGVuZGZ1bmMKIAogIiB2aW06IHNoaWZ0d2lkdGg9MiBzdHM9MiBleHBhbmR0YWIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfZ2V0dGV4dF9jcDEyNTEudmltIGIvc3JjL3Rlc3RkaXIvdGVzdF9nZXR0ZXh0X2NwMTI1MS52aW0KaW5kZXggNjlkMmJiZi4uOWMzMGUwOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3RkaXIvdGVzdF9nZXR0ZXh0X2NwMTI1MS52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF9nZXR0ZXh0X2NwMTI1MS52aW0KQEAgLTE0LDcgKzE0LDcgQEAKIAogICAgIHRyeQogICAgICAgbGFuZ3VhZ2UgbWVzc2FnZXMgcnVfUlUKLSAgICAgIGNhbGwgYXNzZXJ0X2VxdWFsKCfO2MjBysA6ICcsIGdldHRleHQoIkVSUk9SOiAiLCAiX19QQUNLQUdFX18iKSkKKyAgICAgIGNhbGwgYXNzZXJ0X2VxdWFsKCfO2MjBysA6IGZvciBfX1BBQ0tBR0VfXycsIGdldHRleHQoIkVSUk9SOiAiLCAiX19QQUNLQUdFX18iKSkKICAgICBjYXRjaCAvXlZpbVwlKChcYVwrKVwpXD06RTE5NzovCiAgICAgICB0aHJvdyAiU2tpcHBlZDogbm90IHBvc3NpYmxlIHRvIHNldCBsb2NhbGUgdG8gcnUgKG1pc3Npbmc/KSIKICAgICBlbmR0cnkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3RfZ2V0dGV4dF91dGY4LnZpbSBiL3NyYy90ZXN0ZGlyL3Rlc3RfZ2V0dGV4dF91dGY4LnZpbQppbmRleCBiOTZmOGVhLi44N2ZlMWIxIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0X2dldHRleHRfdXRmOC52aW0KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdF9nZXR0ZXh0X3V0ZjgudmltCkBAIC0xNCw3ICsxNCwxNCBAQAogCiAgICAgdHJ5CiAgICAgICBsYW5ndWFnZSBtZXNzYWdlcyBydV9SVQotICAgICAgY2FsbCBhc3NlcnRfZXF1YWwoJ9Ce0KjQmNCR0JrQkDogJywgZ2V0dGV4dCgiRVJST1I6ICIsICJfX1BBQ0tBR0VfXyIpKQorICAgICAgY2FsbCBhc3NlcnRfZXF1YWwoJ9Ce0KjQmNCR0JrQkDogZm9yIF9fUEFDS0FHRV9fJywgZ2V0dGV4dCgiRVJST1I6ICIsICJfX1BBQ0tBR0VfXyIpKQorCisgICAgICBjYWxsIGFzc2VydF9lcXVhbCgn0J7QqNCY0JHQmtCQOiBmb3IgX19QQUNLQUdFX18nLCBuZ2V0dGV4dCgiRVJST1I6ICIsICJFUlJPUlM6ICIsIDEsICJfX1BBQ0tBR0VfXyIpKQorICAgICAgY2FsbCBhc3NlcnRfZXF1YWwoJ9Ce0KjQmNCR0JrQkDogZm9yIF9fUEFDS0FHRV9fJywgbmdldHRleHQoIkVSUk9SOiAiLCAiRVJST1JTOiAiLCAyLCAiX19QQUNLQUdFX18iKSkKKworICAgICAgY2FsbCBhc3NlcnRfZXF1YWwoJyVkINCx0YPRhNC10YAg0YPQtNCw0LvRkdC9INC40Lcg0L/QsNC80Y/RgtC4IGZvciBfX1BBQ0tBR0VfXycsIG5nZXR0ZXh0KCIlZCBidWZmZXIgdW5sb2FkZWQiLCAiJWQgYnVmZmVycyB1bmxvYWRlZCIsIDEsICJfX1BBQ0tBR0VfXyIpKQorICAgICAgY2FsbCBhc3NlcnRfZXF1YWwoJyVkINCx0YPRhNC10YDQsCDRg9C00LDQu9C10L3QviDQuNC3INC/0LDQvNGP0YLQuCBmb3IgX19QQUNLQUdFX18nLCBuZ2V0dGV4dCgiJWQgYnVmZmVyIHVubG9hZGVkIiwgIiVkIGJ1ZmZlcnMgdW5sb2FkZWQiLCAyLCAiX19QQUNLQUdFX18iKSkKKyAgICAgIGNhbGwgYXNzZXJ0X2VxdWFsKCclZCDQsdGD0YTQtdGA0L7QsiDRg9C00LDQu9C10L3QviDQuNC3INC/0LDQvNGP0YLQuCBmb3IgX19QQUNLQUdFX18nLCBuZ2V0dGV4dCgiJWQgYnVmZmVyIHVubG9hZGVkIiwgIiVkIGJ1ZmZlcnMgdW5sb2FkZWQiLCA1LCAiX19QQUNLQUdFX18iKSkKICAgICBjYXRjaCAvXlZpbVwlKChcYVwrKVwpXD06RTE5NzovCiAgICAgICB0aHJvdyAiU2tpcHBlZDogbm90IHBvc3NpYmxlIHRvIHNldCBsb2NhbGUgdG8gcnUgKG1pc3Npbmc/KSIKICAgICBlbmR0cnkKQEAgLTIyLDYgKzI5LDEzIEBACiAgICAgdHJ5CiAgICAgICBsYW5ndWFnZSBtZXNzYWdlcyBlbl9HQi5VVEYtOAogICAgICAgY2FsbCBhc3NlcnRfZXF1YWwoJ0VSUk9SOiAnLCBnZXR0ZXh0KCJFUlJPUjogIiwgIl9fUEFDS0FHRV9fIikpCisKKyAgICAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdFUlJPUjogJywgbmdldHRleHQoIkVSUk9SOiAiLCAiRVJST1JTOiAiLCAxLCAiX19QQUNLQUdFX18iKSkKKyAgICAgIGNhbGwgYXNzZXJ0X2VxdWFsKCdFUlJPUlM6ICcsIG5nZXR0ZXh0KCJFUlJPUjogIiwgIkVSUk9SUzogIiwgMiwgIl9fUEFDS0FHRV9fIikpCisKKyAgICAgIGNhbGwgYXNzZXJ0X2VxdWFsKCclZCBidWZmZXIgdW5sb2FkZWQnLCBuZ2V0dGV4dCgiJWQgYnVmZmVyIHVubG9hZGVkIiwgIiVkIGJ1ZmZlcnMgdW5sb2FkZWQiLCAxLCAiX19QQUNLQUdFX18iKSkKKyAgICAgIGNhbGwgYXNzZXJ0X2VxdWFsKCclZCBidWZmZXJzIHVubG9hZGVkJywgbmdldHRleHQoIiVkIGJ1ZmZlciB1bmxvYWRlZCIsICIlZCBidWZmZXJzIHVubG9hZGVkIiwgMiwgIl9fUEFDS0FHRV9fIikpCisgICAgICBjYWxsIGFzc2VydF9lcXVhbCgnJWQgYnVmZmVycyB1bmxvYWRlZCcsIG5nZXR0ZXh0KCIlZCBidWZmZXIgdW5sb2FkZWQiLCAiJWQgYnVmZmVycyB1bmxvYWRlZCIsIDUsICJfX1BBQ0tBR0VfXyIpKQogICAgIGNhdGNoIC9eVmltXCUoKFxhXCspXClcPTpFMTk3Oi8KICAgICAgIHRocm93ICJTa2lwcGVkOiBub3QgcG9zc2libGUgdG8gc2V0IGxvY2FsZSB0byBlbiAobWlzc2luZz8pIgogICAgIGVuZHRyeQpkaWZmIC0tZ2l0IGEvc3JjL3ZlcnNpb24uYyBiL3NyYy92ZXJzaW9uLmMKaW5kZXggZTc4NWI0Mi4uZmFlOTE5NSAxMDA2NDQKLS0tIGEvc3JjL3ZlcnNpb24uYworKysgYi9zcmMvdmVyc2lvbi5jCkBAIC03MDUsNiArNzA1LDggQEAKIHN0YXRpYyBpbnQgaW5jbHVkZWRfcGF0Y2hlc1tdID0KIHsgICAvKiBBZGQgbmV3IHBhdGNoIG51bWJlciBiZWxvdyB0aGlzIGxpbmUgKi8KIC8qKi8KKyAgICAxMDY0LAorLyoqLwogICAgIDEwNjMsCiAvKiovCiAgICAgMTA2MiwK