Update Comments Contract - 28/02/2023

{"id":"ssc-testnet-reaz","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"comments","params":"","code":"Y29uc3QgU01UX1BSRUNJU0lPTj0xMCxNQVhfVk9USU5HX1BPV0VSPTFlNCxNQVhfV0VJR0hUPTFlNCxQT1NUX1FVRVJZX0xJTUlUPTFlMztmdW5jdGlvbiBjYWxjdWxhdGVXZWlnaHRSc2hhcmVzKGUsYSl7dmFyIGk7cmV0dXJuIGFwaS5CaWdOdW1iZXIoYSkubHRlKDApP2FwaS5CaWdOdW1iZXIoMCk6InBvd2VyIj09PWUuY29uZmlnLnBvc3RSZXdhcmRDdXJ2ZT8oKGk9YXBpLkJpZ051bWJlcihlLmNvbmZpZy5wb3N0UmV3YXJkQ3VydmVQYXJhbWV0ZXIpKS5lcSgiMSIpfHxpLmVxKCIyIik/YXBpLkJpZ051bWJlcihhKS5wb3coZS5jb25maWcucG9zdFJld2FyZEN1cnZlUGFyYW1ldGVyKTphcGkuQmlnTnVtYmVyKHBhcnNlRmxvYXQoYSkqKnBhcnNlRmxvYXQoZS5jb25maWcucG9zdFJld2FyZEN1cnZlUGFyYW1ldGVyKSkpLnRvRml4ZWQoU01UX1BSRUNJU0lPTixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pOmFwaS5CaWdOdW1iZXIoYSl9ZnVuY3Rpb24gY2FsY3VsYXRlQ3VyYXRpb25XZWlnaHRSc2hhcmVzKGUsYSl7dmFyIGk7cmV0dXJuIGFwaS5CaWdOdW1iZXIoYSkubHRlKDApP2FwaS5CaWdOdW1iZXIoMCk6InBvd2VyIj09PWUuY29uZmlnLmN1cmF0aW9uUmV3YXJkQ3VydmU/KChpPWFwaS5CaWdOdW1iZXIoZS5jb25maWcuY3VyYXRpb25SZXdhcmRDdXJ2ZVBhcmFtZXRlcikpLmVxKCIwLjUiKT9hcGkuQmlnTnVtYmVyKGEpLnNxcnQoKTppLmVxKCIxIik/YXBpLkJpZ051bWJlcihhKTphcGkuQmlnTnVtYmVyKHBhcnNlRmxvYXQoYSkqKnBhcnNlRmxvYXQoZS5jb25maWcuY3VyYXRpb25SZXdhcmRDdXJ2ZVBhcmFtZXRlcikpKS50b0ZpeGVkKFNNVF9QUkVDSVNJT04sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKTphcGkuQmlnTnVtYmVyKGEpfWFzeW5jIGZ1bmN0aW9uIHBheVVzZXIoYSxpLHQscixvKXtpZighbyl7bz1hcGkuQmlnTnVtYmVyKGkpLGk9by5tdWx0aXBsaWVkQnkocikuZGl2aWRlZEJ5KDEwMCkudG9GaXhlZChvLmRwKCksYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSxyPW8ubWludXMoaSkudG9GaXhlZChvLmRwKCksYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKTtsZXQgZTthcGkuQmlnTnVtYmVyKHIpLmd0KDApJiYoZT1hd2FpdCBhcGkudHJhbnNmZXJUb2tlbnModCxhLHIsInVzZXIiKSkuZXJyb3JzJiZhcGkuZGVidWcoYEVycm9yIHBheWluZyBvdXQgbGlxdWlkICR7cn0gJHthfSB0byAke3R9IChUWElEICR7YXBpLnRyYW5zYWN0aW9uSWR9KTogCmArZS5lcnJvcnMpLGFwaS5CaWdOdW1iZXIoaSkuZ3QoMCkmJihlPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwic3Rha2VGcm9tQ29udHJhY3QiLHt0bzp0LHN5bWJvbDphLHF1YW50aXR5Oml9KSkuZXJyb3JzJiZhcGkuZGVidWcoYEVycm9yIHBheWluZyBvdXQgc3Rha2VkICR7aX0gJHthfSB0byAke3R9IChUWElEICR7YXBpLnRyYW5zYWN0aW9uSWR9KTogCmArZS5lcnJvcnMpfX1hc3luYyBmdW5jdGlvbiBnZXRNdXRlKGUsYSl7ZT1hd2FpdCBhcGkuZGIuZmluZE9uZSgidm90aW5nUG93ZXIiLHtyZXdhcmRQb29sSWQ6ZSxhY2NvdW50OmF9KTtyZXR1cm4hIWUmJmUubXV0ZX1hc3luYyBmdW5jdGlvbiBwYXlPdXRCZW5lZmljaWFyaWVzKGEsaSxlLHQpe3ZhciByLG8sbix7YXV0aG9ycGVybTpzLHN5bWJvbDpkLHJld2FyZFBvb2xJZDpwLGJlbmVmaWNpYXJpZXM6dX09ZTtsZXQgbD1hcGkuQmlnTnVtYmVyKDApLG09dDtpZihhLmNvbmZpZy5hcHBUYXhDb25maWcmJih7YXBwOm4scGVyY2VudDpyLGJlbmVmaWNpYXJ5Om99PWEuY29uZmlnLmFwcFRheENvbmZpZyxuIT09ZS5hcHApJiYobj1hcGkuQmlnTnVtYmVyKHQpLm11bHRpcGxpZWRCeShyKS5kaXZpZGVkQnkoMTAwKS50b0ZpeGVkKGkucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksbT1hcGkuQmlnTnVtYmVyKG0pLm1pbnVzKG4pLGFwaS5lbWl0KCJhcHBUYXgiLHtyZXdhcmRQb29sSWQ6cCxhdXRob3JwZXJtOnMsc3ltYm9sOmQsYWNjb3VudDpvLHF1YW50aXR5Om59KSxhd2FpdCBwYXlVc2VyKGQsbixvLDApLGw9YXBpLkJpZ051bWJlcihsKS5wbHVzKG4pKSwhdXx8MD09PXUubGVuZ3RoKXJldHVybiBhcGkuQmlnTnVtYmVyKDApO2ZvcihsZXQgZT0wO2U8dS5sZW5ndGg7ZSs9MSl7dmFyIGc9dVtlXSxjPWFwaS5CaWdOdW1iZXIobSkubXVsdGlwbGllZEJ5KGcud2VpZ2h0KS5kaXZpZGVkQnkoMWU0KS50b0ZpeGVkKGkucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksdz1hd2FpdCBnZXRNdXRlKHAsZy5hY2NvdW50KSxiPXtyZXdhcmRQb29sSWQ6cCxhdXRob3JwZXJtOnMsc3ltYm9sOmQsYWNjb3VudDpnLmFjY291bnQscXVhbnRpdHk6Y307dyYmKGIubXV0ZT0hMCksYXBpLmVtaXQoImJlbmVmaWNpYXJ5UmV3YXJkIixiKSxhd2FpdCBwYXlVc2VyKGQsYyxnLmFjY291bnQsYS5jb25maWcuc3Rha2VkUmV3YXJkUGVyY2VudGFnZSx3KSxsPWFwaS5CaWdOdW1iZXIobCkucGx1cyhjKX1yZXR1cm4gbH1hc3luYyBmdW5jdGlvbiBwYXlPdXRDdXJhdG9ycyhhLGksdCxyLGUpe3ZhcnthdXRob3JwZXJtOm8sc3ltYm9sOm4scmV3YXJkUG9vbElkOnN9PXQsZT1lWyJ2b3RlUXVlcnlMaW1pdCJdLGQ9e2RvbmU6ITEsdm90ZXNQcm9jZXNzZWQ6MH0scD1hd2FpdCBhcGkuZGIuZmluZCgidm90ZXMiLHtyZXdhcmRQb29sSWQ6cyxhdXRob3JwZXJtOm99LGUsMCxbe2luZGV4OiJieVRpbWVzdGFtcCIsZGVzY2VuZGluZzohMX0se2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSk7aWYoMD09PXAubGVuZ3RoKWQuZG9uZT0hMDtlbHNle2ZvcihsZXQgZT0wO2U8cC5sZW5ndGg7ZSs9MSl7dmFyIHUsbCxtLGc9cFtlXTswPGFwaS5CaWdOdW1iZXIoZy5jdXJhdGlvbldlaWdodCkmJih1PWNhbGN1bGF0ZUN1cmF0aW9uV2VpZ2h0UnNoYXJlcyhhLHQudm90ZVBvc2l0aXZlUnNoYXJlU3VtKSx1PWFwaS5CaWdOdW1iZXIocikubXVsdGlwbGllZEJ5KGcuY3VyYXRpb25XZWlnaHQpLmRpdmlkZWRCeSh1KS50b0ZpeGVkKGkucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksbD1hd2FpdCBnZXRNdXRlKHMsZy52b3RlciksbT17cmV3YXJkUG9vbElkOnMsYXV0aG9ycGVybTpvLHN5bWJvbDpuLGFjY291bnQ6Zy52b3RlcixxdWFudGl0eTp1fSxsJiYobS5tdXRlPSEwKSxhcGkuZW1pdCgiY3VyYXRpb25SZXdhcmQiLG0pLGF3YWl0IHBheVVzZXIobix1LGcudm90ZXIsYS5jb25maWcuc3Rha2VkUmV3YXJkUGVyY2VudGFnZSxsKSksYXdhaXQgYXBpLmRiLnJlbW92ZSgidm90ZXMiLGcpfWQudm90ZXNQcm9jZXNzZWQrPXAubGVuZ3RoLHAubGVuZ3RoPGUmJihkLmRvbmU9ITApfXJldHVybiBkfWFzeW5jIGZ1bmN0aW9uIHBheU91dFBvc3QoZSxhLGksdCl7dmFyIHIsbyxuPXt0b3RhbFBheW91dFZhbHVlOjAsdm90ZXNQcm9jZXNzZWQ6MCxkb25lOiExfTtyZXR1cm4gaS5kZWNsaW5lUGF5b3V0fHxpLm11dGU/KGFwaS5lbWl0KCJhdXRob3JSZXdhcmQiLHtyZXdhcmRQb29sSWQ6aS5yZXdhcmRQb29sSWQsYXV0aG9ycGVybTppLmF1dGhvcnBlcm0sc3ltYm9sOmkuc3ltYm9sLGFjY291bnQ6aS5hdXRob3IscXVhbnRpdHk6IjAifSksbi5kb25lPSEwLGF3YWl0IGFwaS5kYi5yZW1vdmUoInBvc3RzIixpKSk6KG89Y2FsY3VsYXRlV2VpZ2h0UnNoYXJlcyhlLGkudm90ZVJzaGFyZVN1bSksbz1hcGkuQmlnTnVtYmVyKGUuaW50ZXJ2YWxQZW5kaW5nQ2xhaW1zKS5ndCgwKT9hcGkuQmlnTnVtYmVyKGUuaW50ZXJ2YWxSZXdhcmRQb29sKS5tdWx0aXBsaWVkQnkobykuZGl2aWRlZEJ5KGUuaW50ZXJ2YWxQZW5kaW5nQ2xhaW1zKS50b0ZpeGVkKGEucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTik6IjAiLHI9KG4udG90YWxQYXlvdXRWYWx1ZT1vLGFwaS5CaWdOdW1iZXIobykubXVsdGlwbGllZEJ5KGUuY29uZmlnLmN1cmF0aW9uUmV3YXJkUGVyY2VudGFnZSkuZGl2aWRlZEJ5KDEwMCkudG9GaXhlZChhLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pKSxvPWFwaS5CaWdOdW1iZXIobykubWludXMocikudG9GaXhlZChhLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pLHI9YXdhaXQgcGF5T3V0Q3VyYXRvcnMoZSxhLGkscix0KSxuLnZvdGVzUHJvY2Vzc2VkKz1yLnZvdGVzUHJvY2Vzc2VkLG4uZG9uZT1yLmRvbmUsci5kb25lJiYodD1hd2FpdCBwYXlPdXRCZW5lZmljaWFyaWVzKGUsYSxpLG8pLHI9YXBpLkJpZ051bWJlcihvKS5taW51cyh0KS50b0ZpeGVkKGEucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksbz1hd2FpdCBnZXRNdXRlKGkucmV3YXJkUG9vbElkLGkuYXV0aG9yKSx0PXtyZXdhcmRQb29sSWQ6aS5yZXdhcmRQb29sSWQsYXV0aG9ycGVybTppLmF1dGhvcnBlcm0sc3ltYm9sOmkuc3ltYm9sLGFjY291bnQ6aS5hdXRob3IscXVhbnRpdHk6cn0sbyYmKHQubXV0ZT0hMCksYXBpLmVtaXQoImF1dGhvclJld2FyZCIsdCksYXdhaXQgcGF5VXNlcihpLnN5bWJvbCxyLGkuYXV0aG9yLGUuY29uZmlnLnN0YWtlZFJld2FyZFBlcmNlbnRhZ2UsbyksYXdhaXQgYXBpLmRiLnJlbW92ZSgicG9zdHMiLGkpKSksbn1hc3luYyBmdW5jdGlvbiBjb21wdXRlUG9zdFJld2FyZHMoaSx0LHIsZSl7dmFyIGE9dFsibGFzdENsYWltRGVjYXlUaW1lc3RhbXAiXSx7bWF4UG9zdHNQcm9jZXNzZWRQZXJSb3VuZDpvLG1heFZvdGVzUHJvY2Vzc2VkUGVyUm91bmQ6bn09aSxzPWF3YWl0IGFwaS5kYi5maW5kKCJwb3N0cyIse3Jld2FyZFBvb2xJZDp0Ll9pZCxjYXNob3V0VGltZTp7JGd0ZTphLCRsdGU6ZX19LG8sMCxbe2luZGV4OiJieUNhc2hvdXRUaW1lIixkZXNjZW5kaW5nOiExfSx7aW5kZXg6Il9pZCIsZGVzY2VuZGluZzohMX1dKTtsZXQgZD0hMSxwPWFwaS5CaWdOdW1iZXIoMCksdT0wO2lmKHMmJjA8cy5sZW5ndGgpe2xldCBhPSExO2ZvcihsZXQgZT0wO2U8cy5sZW5ndGg7ZSs9MSl7dmFyIGw9YXdhaXQgcGF5T3V0UG9zdCh0LHIsc1tlXSxpKSxtPWxbInRvdGFsUGF5b3V0VmFsdWUiXTtpZih1Kz1sLnZvdGVzUHJvY2Vzc2VkLGwuZG9uZSYmKHA9cC5wbHVzKG0pKSwhbC5kb25lfHx1Pj1uKXthPSEwO2JyZWFrfX0hYSYmcy5sZW5ndGg8byYmKGQ9ITApLHQucmV3YXJkUG9vbD1hcGkuQmlnTnVtYmVyKHQucmV3YXJkUG9vbCkubWludXMocCkudG9GaXhlZChyLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pfWVsc2UgZD0hMDtkJiYodC5sYXN0Q2xhaW1EZWNheVRpbWVzdGFtcD1lKX1hc3luYyBmdW5jdGlvbiBwb3N0Q2xhaW1zSW5JbnRlcnZhbChlLGksYSx0KXtsZXQgcj0wLG89YXBpLkJpZ051bWJlcigwKSxuPWF3YWl0IGFwaS5kYi5maW5kKCJwb3N0cyIse3Jld2FyZFBvb2xJZDppLl9pZCxjYXNob3V0VGltZTp7JGd0ZTphLCRsdGU6dH19LFBPU1RfUVVFUllfTElNSVQscixbe2luZGV4OiJieUNhc2hvdXRUaW1lIixkZXNjZW5kaW5nOiExfSx7aW5kZXg6Il9pZCIsZGVzY2VuZGluZzohMX1dKTtmb3IoO24mJjA8bi5sZW5ndGgmJihvPW8ucGx1cyhuLnJlZHVjZSgoZSxhKT0+ZS5wbHVzKGNhbGN1bGF0ZVdlaWdodFJzaGFyZXMoaSxhLnZvdGVSc2hhcmVTdW0pKSxhcGkuQmlnTnVtYmVyKDApKSkuZHAoU01UX1BSRUNJU0lPTixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pLCEobi5sZW5ndGg8UE9TVF9RVUVSWV9MSU1JVCkpOylyKz1QT1NUX1FVRVJZX0xJTUlULG49YXdhaXQgYXBpLmRiLmZpbmQoInBvc3RzIix7cmV3YXJkUG9vbElkOmkuX2lkLGNhc2hvdXRUaW1lOnskZ3RlOmEsJGx0ZTp0fX0sUE9TVF9RVUVSWV9MSU1JVCxyLFt7aW5kZXg6ImJ5Q2FzaG91dFRpbWUiLGRlc2NlbmRpbmc6ITF9LHtpbmRleDoiX2lkIixkZXNjZW5kaW5nOiExfV0pO3JldHVybiBvfWFzeW5jIGZ1bmN0aW9uIHRva2VuTWFpbnRlbmFuY2UoKXt2YXIgZT1uZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpLmdldFRpbWUoKSxpPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSx7bGFzdE1haW50ZW5hbmNlQmxvY2s6dCxsYXN0UHJvY2Vzc2VkUG9vbElkOnIsbWFpbnRlbmFuY2VUb2tlbnNQZXJCbG9jazpvfT1pO2lmKCEodD49YXBpLmJsb2NrTnVtYmVyKSl7aS5sYXN0TWFpbnRlbmFuY2VCbG9jaz1hcGkuYmxvY2tOdW1iZXI7dD17JGx0ZTpbIiRsYXN0Q2xhaW1EZWNheVRpbWVzdGFtcCIseyRzdWJ0cmFjdDpbZSx7JG11bHRpcGx5OlsiJGNvbmZpZy5yZXdhcmRJbnRlcnZhbFNlY29uZHMiLDFlM119XX1dfTtsZXQgYT1hd2FpdCBhcGkuZGIuZmluZCgicmV3YXJkUG9vbHMiLHthY3RpdmU6ITAsJGV4cHI6dCxfaWQ6eyRndDpyfX0sbywwLFt7aW5kZXg6Il9pZCIsZGVzY2VuZGluZzohMX1dKTtpZighYXx8YS5sZW5ndGg8byl7YT1hfHxbXTtlPWF3YWl0IGFwaS5kYi5maW5kKCJyZXdhcmRQb29scyIse2FjdGl2ZTohMCwkZXhwcjp0fSxvLWEubGVuZ3RoLDAsW3tpbmRleDoiX2lkIixkZXNjZW5kaW5nOiExfV0pO2NvbnN0IHc9bmV3IFNldChhLm1hcChlPT5lLl9pZCkpO2UuZm9yRWFjaChlPT57dy5oYXMoZS5faWQpfHxhLnB1c2goZSl9KX1pZihhKWZvcihsZXQgZT0wO2U8YS5sZW5ndGg7ZSs9MSl7dmFyIG49YVtlXSx7c3ltYm9sOnMsbGFzdENsYWltRGVjYXlUaW1lc3RhbXA6ZCxsYXN0UmV3YXJkVGltZXN0YW1wOnAsY29uZmlnOnV9PShpLmxhc3RQcm9jZXNzZWRQb29sSWQ9bi5faWQsbikse3Jld2FyZEludGVydmFsU2Vjb25kczpsLGNhc2hvdXRXaW5kb3dEYXlzOm19PXUscz1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpzfSksbD0xZTMqbCxnPXArbCxkPWQrbDtpZihnPD1kKXtsZXQgZT11LnJld2FyZFBlckludGVydmFsO3UucmV3YXJkUmVkdWN0aW9uSW50ZXJ2YWxTZWNvbmRzJiZ1LnJld2FyZFJlZHVjdGlvblBlcmNlbnRhZ2UmJihsPTFlMyp1LnJld2FyZFJlZHVjdGlvbkludGVydmFsU2Vjb25kcywobD1uLmxhc3RSZXdhcmRSZWR1Y3Rpb25UaW1lc3RhbXArbCk8PWQpJiYoYz1hcGkuQmlnTnVtYmVyKGUpLm11bHRpcGxpZWRCeSh1LnJld2FyZFJlZHVjdGlvblBlcmNlbnRhZ2UpLmRpdmlkZWRCeSgxMDApLnRvRml4ZWQocy5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSxlPWFwaS5CaWdOdW1iZXIoZSkubWludXMoYykudG9GaXhlZChzLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pLG4ubGFzdFJld2FyZFJlZHVjdGlvblRpbWVzdGFtcD1sLHUucmV3YXJkUGVySW50ZXJ2YWw9ZSk7dmFyIGM9YXBpLkJpZ051bWJlcihlKSxsPShhcGkuQmlnTnVtYmVyKGMpLmd0KDApJiYoYXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJpc3N1ZVRvQ29udHJhY3QiLHtzeW1ib2w6bi5zeW1ib2wscXVhbnRpdHk6Yyx0bzoiY29tbWVudHMiLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTohMH0pLG4ucmV3YXJkUG9vbD1hcGkuQmlnTnVtYmVyKG4ucmV3YXJkUG9vbCkucGx1cyhjKS50b0ZpeGVkKHMucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTikpLDIqbSsxKSx1PWctcCxtPTI0KmwqMzYwMCoxZTM7bi5wZW5kaW5nQ2xhaW1zPWFwaS5CaWdOdW1iZXIobi5wZW5kaW5nQ2xhaW1zKS5taW51cyhhcGkuQmlnTnVtYmVyKG4ucGVuZGluZ0NsYWltcykubXVsdGlwbGllZEJ5KHUpLmRpdmlkZWRCeShtKSkudG9GaXhlZChTTVRfUFJFQ0lTSU9OLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksbi5wZW5kaW5nQ2xhaW1zPWFwaS5CaWdOdW1iZXIobi5wZW5kaW5nQ2xhaW1zKS5wbHVzKGF3YWl0IHBvc3RDbGFpbXNJbkludGVydmFsKGksbixwLGcpKS50b0ZpeGVkKFNNVF9QUkVDSVNJT04sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSxuLmxhc3RSZXdhcmRUaW1lc3RhbXA9ZyxuLmludGVydmFsUGVuZGluZ0NsYWltcz1uLnBlbmRpbmdDbGFpbXMsbi5pbnRlcnZhbFJld2FyZFBvb2w9bi5yZXdhcmRQb29sfWF3YWl0IGNvbXB1dGVQb3N0UmV3YXJkcyhpLG4scyxkKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJyZXdhcmRQb29scyIsbil9YXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixpKX19ZnVuY3Rpb24gYXNzZXJ0QXBwVGF4Q29uZmlnVmFsaWQoZSl7aWYoIWFwaS5hc3NlcnQoIWV8fCJvYmplY3QiPT10eXBlb2YgZSwiYXBwVGF4Q29uZmlnIGludmFsaWQiKSlyZXR1cm4hMTtpZihlKXt2YXJ7YXBwOmUscGVyY2VudDphLGJlbmVmaWNpYXJ5Oml9PWU7aWYoIWFwaS5hc3NlcnQoZSYmInN0cmluZyI9PXR5cGVvZiBlLCJhcHBUYXhDb25maWcgYXBwIGludmFsaWQiKSlyZXR1cm4hMTtpZighYXBpLmFzc2VydChhJiZOdW1iZXIuaXNJbnRlZ2VyKGEpJiYxPD1hJiZhPD0xMDAsImFwcFRheENvbmZpZyBwZXJjZW50IHNob3VsZCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgMTAwIikpcmV0dXJuITE7aWYoIWFwaS5hc3NlcnQoaSYmYXBpLmlzVmFsaWRBY2NvdW50TmFtZShpKSwiYXBwVGF4Q29uZmlnIGJlbmVmaWNpYXJ5IGludmFsaWQiKSlyZXR1cm4hMX1yZXR1cm4hMH1hc3luYyBmdW5jdGlvbiBnZXRSZXdhcmRQb29sSWRzKGUpe3Zhcntqc29uTWV0YWRhdGE6ZSxwYXJlbnRBdXRob3I6YSxwYXJlbnRQZXJtbGluazppfT1lLHQ9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pO2lmKGEmJmkpcmV0dXJuIGE9YEAke2F9L2AraSwocj1hd2FpdCBhcGkuZGIuZmluZE9uZSgicG9zdE1ldGFkYXRhIix7YXV0aG9ycGVybTphfSkpP3IucmV3YXJkUG9vbElkczoocj1hd2FpdCBhcGkuZGIuZmluZCgicG9zdHMiLHthdXRob3JwZXJtOmF9KSkmJjA8ci5sZW5ndGg/ci5tYXAoZT0+ZS5yZXdhcmRQb29sSWQpOltdO2lmKGUmJmUudGFncyYmQXJyYXkuaXNBcnJheShlLnRhZ3MpJiZlLnRhZ3MuZXZlcnkoZT0+InN0cmluZyI9PXR5cGVvZiBlKSl7dmFyIGE9aT9lLnRhZ3MuY29uY2F0KFtpXSk6ZS50YWdzLHI9YXdhaXQgYXBpLmRiLmZpbmQoInJld2FyZFBvb2xzIix7ImNvbmZpZy50YWdzIjp7JGluOmF9LCJjb25maWcuZXhjbHVkZVRhZ3MiOnskbm90OnskaW46YX19fSx0Lm1heFBvb2xzUGVyUG9zdCwwLFt7aW5kZXg6Il9pZCIsZGVzY2VuZGluZzohMX1dKTtpZihyJiYwPHIubGVuZ3RoKXJldHVybiByLm1hcChlPT5lLl9pZCl9cmV0dXJuW119YXN5bmMgZnVuY3Rpb24gcHJvY2Vzc1ZvdGUobixzLGQscCl7dmFye3Jld2FyZFBvb2xJZDp1LHN5bWJvbDpsLGF1dGhvcnBlcm06bSxjYXNob3V0VGltZTpnfT1uO2lmKCEoZzxwKSl7Zz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicmV3YXJkUG9vbHMiLHtfaWQ6dX0pO2lmKGcmJmcuYWN0aXZlKXtsZXQgZT1hd2FpdCBhcGkuZGIuZmluZE9uZSgidm90aW5nUG93ZXIiLHtyZXdhcmRQb29sSWQ6dSxhY2NvdW50OnN9KTtlPyhlLnZvdGluZ1Bvd2VyKz0ocC1lLmxhc3RWb3RlVGltZXN0YW1wKSpNQVhfVk9USU5HX1BPV0VSLygyNCpnLmNvbmZpZy52b3RlUmVnZW5lcmF0aW9uRGF5cyozNjAwKjFlMyksZS52b3RpbmdQb3dlcj1NYXRoLmZsb29yKGUudm90aW5nUG93ZXIpLGUudm90aW5nUG93ZXI9TWF0aC5taW4oZS52b3RpbmdQb3dlcixNQVhfVk9USU5HX1BPV0VSKSxlLmRvd252b3RpbmdQb3dlcis9KHAtZS5sYXN0Vm90ZVRpbWVzdGFtcCkqTUFYX1ZPVElOR19QT1dFUi8oMjQqZy5jb25maWcuZG93bnZvdGVSZWdlbmVyYXRpb25EYXlzKjM2MDAqMWUzKSxlLmRvd252b3RpbmdQb3dlcj1NYXRoLmZsb29yKGUuZG93bnZvdGluZ1Bvd2VyKSxlLmRvd252b3RpbmdQb3dlcj1NYXRoLm1pbihlLmRvd252b3RpbmdQb3dlcixNQVhfVk9USU5HX1BPV0VSKSxlLmxhc3RWb3RlVGltZXN0YW1wPXApOihlPXtyZXdhcmRQb29sSWQ6dSxhY2NvdW50OnMsbGFzdFZvdGVUaW1lc3RhbXA6cCx2b3RpbmdQb3dlcjpNQVhfVk9USU5HX1BPV0VSLGRvd252b3RpbmdQb3dlcjpNQVhfVk9USU5HX1BPV0VSfSxlPWF3YWl0IGFwaS5kYi5pbnNlcnQoInZvdGluZ1Bvd2VyIixlKSk7dmFyIGM9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse3N5bWJvbDpsLGFjY291bnQ6c30pO2xldCBhPWM/Yy5zdGFrZToiMCIsaT0oYyYmYy5kZWxlZ2F0aW9uc0luJiZhcGkuQmlnTnVtYmVyKGMuZGVsZWdhdGlvbnNJbikuaXNGaW5pdGUoKSYmKGE9YXBpLkJpZ051bWJlcihhKS5wbHVzKGMuZGVsZWdhdGlvbnNJbikpLCIwIiksdD0iMCI7dmFyIGM9MCx3PTA7bGV0IHI9IjAiLG89KDA8ZD8oaT1hcGkuQmlnTnVtYmVyKGEpLm11bHRpcGxpZWRCeShkKS5tdWx0aXBsaWVkQnkoZS52b3RpbmdQb3dlcikuZGl2aWRlZEJ5KE1BWF9WT1RJTkdfUE9XRVIpLmRpdmlkZWRCeShNQVhfV0VJR0hUKS50b0ZpeGVkKFNNVF9QUkVDSVNJT04sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSxjPU1hdGguZmxvb3IoZS52b3RpbmdQb3dlcipNYXRoLmFicyhkKSo2MCo2MCoyNC9NQVhfV0VJR0hUKSxiPU1hdGguZmxvb3IoNjAqTUFYX1ZPVElOR19QT1dFUio2MCoyNC9nLmNvbmZpZy52b3RlUG93ZXJDb25zdW1wdGlvbiksYz1NYXRoLmZsb29yKChjK2ItMSkvYiksZS52b3RpbmdQb3dlcj1NYXRoLm1heCgwLE1hdGguZmxvb3IoZS52b3RpbmdQb3dlci1jKSkscj1hcGkuQmlnTnVtYmVyKGNhbGN1bGF0ZUN1cmF0aW9uV2VpZ2h0UnNoYXJlcyhnLGFwaS5CaWdOdW1iZXIoaSkucGx1cyhuLnZvdGVQb3NpdGl2ZVJzaGFyZVN1bSkpKS5taW51cyhjYWxjdWxhdGVDdXJhdGlvbldlaWdodFJzaGFyZXMoZyxuLnZvdGVQb3NpdGl2ZVJzaGFyZVN1bSkpLnRvRml4ZWQoU01UX1BSRUNJU0lPTixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pKTpkPDAmJiFnLmNvbmZpZy5kaXNhYmxlRG93bnZvdGUmJihpPWFwaS5CaWdOdW1iZXIoYSkubXVsdGlwbGllZEJ5KGQpLm11bHRpcGxpZWRCeShlLmRvd252b3RpbmdQb3dlcikuZGl2aWRlZEJ5KE1BWF9WT1RJTkdfUE9XRVIpLmRpdmlkZWRCeShNQVhfV0VJR0hUKS50b0ZpeGVkKFNNVF9QUkVDSVNJT04sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSx3PU1hdGguZmxvb3IoZS5kb3dudm90aW5nUG93ZXIqTWF0aC5hYnMoZCkqNjAqNjAqMjQvTUFYX1dFSUdIVCksYj1NYXRoLmZsb29yKDYwKk1BWF9WT1RJTkdfUE9XRVIqNjAqMjQvZy5jb25maWcuZG93bnZvdGVQb3dlckNvbnN1bXB0aW9uKSx3PU1hdGguZmxvb3IoKHcrYi0xKS9iKSxlLmRvd252b3RpbmdQb3dlcj1NYXRoLm1heCgwLE1hdGguZmxvb3IoZS5kb3dudm90aW5nUG93ZXItdykpKSxlLm11dGUmJihpPSIwIixyPSIwIiksYXdhaXQgYXBpLmRiLnVwZGF0ZSgidm90aW5nUG93ZXIiLGUpLGF3YWl0IGFwaS5kYi5maW5kT25lKCJ2b3RlcyIse3Jld2FyZFBvb2xJZDp1LGF1dGhvcnBlcm06bSx2b3RlcjpzfSkpO28/KG8udGltZXN0YW1wPXAsby53ZWlnaHQ9ZCxvLmN1cmF0aW9uV2VpZ2h0PSIwIixjPW8ucnNoYXJlcyxvLnJzaGFyZXM9aSx0PWFwaS5CaWdOdW1iZXIoaSkubWludXMoYykudG9GaXhlZChTTVRfUFJFQ0lTSU9OLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTiksYXdhaXQgYXBpLmRiLnVwZGF0ZSgidm90ZXMiLG8pLGI9e3Jld2FyZFBvb2xJZDp1LHN5bWJvbDpnLnN5bWJvbCxyc2hhcmVzOml9LGUubXV0ZSYmKGIubXV0ZT0hMCksYXBpLmVtaXQoInVwZGF0ZVZvdGUiLGIpKToobz17cmV3YXJkUG9vbElkOnUsc3ltYm9sOmwsYXV0aG9ycGVybTptLHdlaWdodDpkLHJzaGFyZXM6aSxjdXJhdGlvbldlaWdodDpyLHRpbWVzdGFtcDpwLHZvdGVyOnN9LHQ9aSxhd2FpdCBhcGkuZGIuaW5zZXJ0KCJ2b3RlcyIsbyksdz17cmV3YXJkUG9vbElkOnUsc3ltYm9sOmcuc3ltYm9sLHJzaGFyZXM6aX0sZS5tdXRlJiYody5tdXRlPSEwKSxhcGkuZW1pdCgibmV3Vm90ZSIsdykpO3ZhciBiLGM9Y2FsY3VsYXRlV2VpZ2h0UnNoYXJlcyhnLG4udm90ZVJzaGFyZVN1bSk7bi52b3RlUnNoYXJlU3VtPWFwaS5CaWdOdW1iZXIobi52b3RlUnNoYXJlU3VtKS5wbHVzKHQpLnRvRml4ZWQoU01UX1BSRUNJU0lPTixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pLGFwaS5CaWdOdW1iZXIodCkuZ3QoMCkmJihuLnZvdGVQb3NpdGl2ZVJzaGFyZVN1bT1hcGkuQmlnTnVtYmVyKG4udm90ZVBvc2l0aXZlUnNoYXJlU3VtKS5wbHVzKHQpLnRvRml4ZWQoU01UX1BSRUNJU0lPTixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pLHA8Zy5jcmVhdGVkVGltZXN0YW1wKzI0KigyKmcuY29uZmlnLmNhc2hvdXRXaW5kb3dEYXlzKzEpKjM2MDAqMWUzKSYmKGI9Y2FsY3VsYXRlV2VpZ2h0UnNoYXJlcyhnLG4udm90ZVJzaGFyZVN1bSksZy5wZW5kaW5nQ2xhaW1zPWFwaS5CaWdOdW1iZXIoZy5wZW5kaW5nQ2xhaW1zKS5wbHVzKGIpLm1pbnVzKGMpLnRvRml4ZWQoU01UX1BSRUNJU0lPTixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pLGF3YWl0IGFwaS5kYi51cGRhdGUoInJld2FyZFBvb2xzIixnKSksYXdhaXQgYXBpLmRiLnVwZGF0ZSgicG9zdHMiLG4pfX19YWN0aW9ucy5jcmVhdGVTU0M9YXN5bmMoKT0+e3ZhciBlOyExPT09YXdhaXQgYXBpLmRiLnRhYmxlRXhpc3RzKCJyZXdhcmRQb29scyIpJiYoYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJwYXJhbXMiKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInJld2FyZFBvb2xzIixbImNvbmZpZy50YWdzIiwibGFzdENsYWltRGVjYXlUaW1lc3RhbXAiXSksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJwb3N0cyIsWyJhdXRob3JwZXJtIix7bmFtZToiYnlDYXNob3V0VGltZSIsaW5kZXg6e3Jld2FyZFBvb2xJZDoxLGNhc2hvdXRUaW1lOjF9fV0se3ByaW1hcnlLZXk6WyJhdXRob3JwZXJtIiwicmV3YXJkUG9vbElkIl19KSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInBvc3RNZXRhZGF0YSIsW10se3ByaW1hcnlLZXk6WyJhdXRob3JwZXJtIl19KSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInZvdGVzIixbe25hbWU6ImJ5VGltZXN0YW1wIixpbmRleDp7cmV3YXJkUG9vbElkOjEsYXV0aG9ycGVybToxLHRpbWVzdGFtcDoxfX1dLHtwcmltYXJ5S2V5OlsicmV3YXJkUG9vbElkIiwiYXV0aG9ycGVybSIsInZvdGVyIl19KSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInZvdGluZ1Bvd2VyIixbXSx7cHJpbWFyeUtleTpbInJld2FyZFBvb2xJZCIsImFjY291bnQiXX0pLGU9e3NldHVwRmVlOiIxMDAwIix1cGRhdGVGZWU6IjIwIixtYXhQb29sc1BlclBvc3Q6MjAsbWF4VGFnc1BlclBvb2w6NSxtYWludGVuYW5jZVRva2Vuc1BlckJsb2NrOjIsbGFzdE1haW50ZW5hbmNlQmxvY2s6YXBpLmJsb2NrTnVtYmVyLG1heFBvc3RzUHJvY2Vzc2VkUGVyUm91bmQ6MjAsdm90ZVF1ZXJ5TGltaXQ6MTAwLG1heFZvdGVzUHJvY2Vzc2VkUGVyUm91bmQ6MTAwLGxhc3RQcm9jZXNzZWRQb29sSWQ6MH0sYXdhaXQgYXBpLmRiLmluc2VydCgicGFyYW1zIixlKSl9LGFjdGlvbnMudXBkYXRlUGFyYW1zPWFzeW5jIGU9PntpZihhcGkuc2VuZGVyPT09YXBpLm93bmVyKXt2YXJ7c2V0dXBGZWU6ZSx1cGRhdGVGZWU6YSxtYWludGVuYW5jZVRva2Vuc1BlckJsb2NrOmksbWF4UG9zdHNQcm9jZXNzZWRQZXJSb3VuZDp0LG1heFZvdGVzUHJvY2Vzc2VkUGVyUm91bmQ6cix2b3RlUXVlcnlMaW1pdDpvfT1lLG49YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pO2lmKGUpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgZSYmIWFwaS5CaWdOdW1iZXIoZSkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihlKS5ndGUoMCksImludmFsaWQgc2V0dXBGZWUiKSlyZXR1cm47bi5zZXR1cEZlZT1lfWlmKGEpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgYSYmIWFwaS5CaWdOdW1iZXIoYSkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihhKS5ndGUoMCksImludmFsaWQgdXBkYXRlRmVlIikpcmV0dXJuO24udXBkYXRlRmVlPWF9aWYoaSl7aWYoIWFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihpKSYmMTw9aSwiaW52YWxpZCBtYWludGVuYW5jZVRva2Vuc1BlckJsb2NrIikpcmV0dXJuO24ubWFpbnRlbmFuY2VUb2tlbnNQZXJCbG9jaz1pfWlmKHQpe2lmKCFhcGkuYXNzZXJ0KE51bWJlci5pc0ludGVnZXIodCkmJjE8PXQsImludmFsaWQgbWF4UG9zdHNQcm9jZXNzZWRQZXJSb3VuZCIpKXJldHVybjtuLm1heFBvc3RzUHJvY2Vzc2VkUGVyUm91bmQ9dH1pZihyKXtpZighYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKHIpJiYxPD1yLCJpbnZhbGlkIG1heFZvdGVzUHJvY2Vzc2VkUGVyUm91bmQiKSlyZXR1cm47bi5tYXhWb3Rlc1Byb2Nlc3NlZFBlclJvdW5kPXJ9aWYobyl7aWYoIWFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihvKSYmMTw9bywiaW52YWxpZCB2b3RlUXVlcnlMaW1pdCIpKXJldHVybjtuLnZvdGVRdWVyeUxpbWl0PW99YXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixuKX19LGFjdGlvbnMuY3JlYXRlUmV3YXJkUG9vbD1hc3luYyBlPT57dmFyIGEsaSx0LHIsbyxuLHMsZCxwLHUsbCxtLGcsYyx3LGIsUCx2LHksZixoLE4sUix7c3ltYm9sOmUsY29uZmlnOkksaXNTaWduZWRXaXRoQWN0aXZlS2V5OlR9PWU7YXBpLmFzc2VydCghMD09PVQsIm9wZXJhdGlvbiBtdXN0IGJlIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiYoe3NldHVwRmVlOmEsbWF4VGFnc1BlclBvb2w6aH09YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pLFI9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6IkJFRSJ9KSxSPSEoIWFwaS5CaWdOdW1iZXIoYSkubHRlKDApJiZhcGkuc2VuZGVyIT09YXBpLm93bmVyKXx8UiYmYXBpLkJpZ051bWJlcihSLmJhbGFuY2UpLmd0ZShhKSxhcGkuYXNzZXJ0KFIsInlvdSBtdXN0IGhhdmUgZW5vdWdoIHRva2VucyB0byBjb3ZlciB0aGUgY3JlYXRpb24gZmVlIikpJiYoUj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDplfSksYXBpLmFzc2VydChSLCJ0b2tlbiBub3QgZm91bmQiKSkmJmFwaS5hc3NlcnQoSSYmIm9iamVjdCI9PXR5cGVvZiBJLCJjb25maWcgaW52YWxpZCIpJiYoe3Bvc3RSZXdhcmRDdXJ2ZTpJLHBvc3RSZXdhcmRDdXJ2ZVBhcmFtZXRlcjppLGN1cmF0aW9uUmV3YXJkQ3VydmU6dCxjdXJhdGlvblJld2FyZEN1cnZlUGFyYW1ldGVyOnIsY3VyYXRpb25SZXdhcmRQZXJjZW50YWdlOm8sY2FzaG91dFdpbmRvd0RheXM6bixyZXdhcmRQZXJJbnRlcnZhbDpzLHJld2FyZEludGVydmFsU2Vjb25kczpkLHZvdGVSZWdlbmVyYXRpb25EYXlzOnAsZG93bnZvdGVSZWdlbmVyYXRpb25EYXlzOnUsc3Rha2VkUmV3YXJkUGVyY2VudGFnZTpsLHZvdGVQb3dlckNvbnN1bXB0aW9uOm0sZG93bnZvdGVQb3dlckNvbnN1bXB0aW9uOmcsdGFnczpjLGRpc2FibGVEb3dudm90ZTp3LGlnbm9yZURlY2xpbmVQYXlvdXQ6YixhcHBUYXhDb25maWc6UCxleGNsdWRlVGFnczp2LHJld2FyZFJlZHVjdGlvbkludGVydmFsU2Vjb25kczp5LHJld2FyZFJlZHVjdGlvblBlcmNlbnRhZ2U6Zn09SSxhcGkuYXNzZXJ0KEkmJiJwb3dlciI9PT1JLCJwb3N0UmV3YXJkQ3VydmUgc2hvdWxkIGJlIG9uZSBvZjogW3Bvd2VyXSIpKSYmKE49YXBpLkJpZ051bWJlcihpKSxhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgaSYmTi5pc0Zpbml0ZSgpJiZOLmd0ZSgiMSIpJiZOLmx0ZSgiMiIpJiZOLmRwKCk8PTIsJ3Bvc3RSZXdhcmRDdXJ2ZVBhcmFtZXRlciBzaG91bGQgYmUgYmV0d2VlbiAiMSIgYW5kICIyIiB3aXRoIHByZWNpc2lvbiBhdCBtb3N0IDInKSkmJmFwaS5hc3NlcnQodCYmInBvd2VyIj09PXQsImN1cmF0aW9uUmV3YXJkQ3VydmUgc2hvdWxkIGJlIG9uZSBvZjogW3Bvd2VyXSIpJiYoTj1hcGkuQmlnTnVtYmVyKHIpLGFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiByJiZOLmlzRmluaXRlKCkmJk4uZ3RlKCIwLjUiKSYmTi5sdGUoIjEiKSYmTi5kcCgpPD0yLCdjdXJhdGlvblJld2FyZEN1cnZlUGFyYW1ldGVyIGNhbiBvbmx5IGJlIGJldHdlZW4gIjAuNSIgYW5kICIxIiB3aXRoIHByZWNpc2lvbiBhdCBtb3N0IDInKSkmJmFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihvKSYmMDw9byYmbzw9MTAwLCJjdXJhdGlvblJld2FyZFBlcmNlbnRhZ2Ugc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCAxMDAiKSYmYXBpLmFzc2VydChuJiZOdW1iZXIuaXNJbnRlZ2VyKG4pJiYxPD1uJiZuPD0zMCwiY2FzaG91dFdpbmRvd0RheXMgc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAzMCIpJiYoTj1hcGkuQmlnTnVtYmVyKHMpLGFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBzJiZOLmlzRmluaXRlKCkmJk4uZ3QoMCksInJld2FyZFBlckludGVydmFsIGludmFsaWQiKSkmJmFwaS5hc3NlcnQoTi5kcCgpPD1SLnByZWNpc2lvbiwidG9rZW4gcHJlY2lzaW9uIG1pc21hdGNoIGZvciByZXdhcmRQZXJJbnRlcnZhbCIpJiZhcGkuYXNzZXJ0KGQmJk51bWJlci5pc0ludGVnZXIoZCkmJjM8PWQmJmQ8PTg2NDAwJiZkJTM9PTAsInJld2FyZEludGVydmFsU2Vjb25kcyBzaG91bGQgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDMgYW5kIDg2NDAwLCBhbmQgZGl2aXNpYmxlIGJ5IDMiKSYmYXBpLmFzc2VydChwJiZOdW1iZXIuaXNJbnRlZ2VyKHApJiYxPD1wJiZwPD0zMCwidm90ZVJlZ2VuZXJhdGlvbkRheXMgc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAzMCIpJiZhcGkuYXNzZXJ0KHUmJk51bWJlci5pc0ludGVnZXIodSkmJjE8PXUmJnU8PTMwLCJkb3dudm90ZVJlZ2VuZXJhdGlvbkRheXMgc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAzMCIpJiZhcGkuYXNzZXJ0KE51bWJlci5pc0ludGVnZXIobCkmJjA8PWwmJmw8PTEwMCwic3Rha2VkUmV3YXJkUGVyY2VudGFnZSBzaG91bGQgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDEwMCIpJiZhcGkuYXNzZXJ0KG0mJk51bWJlci5pc0ludGVnZXIobSkmJjE8PW0mJm08PTFlNCwidm90ZVBvd2VyQ29uc3VtcHRpb24gc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAxMDAwMCIpJiZhcGkuYXNzZXJ0KGcmJk51bWJlci5pc0ludGVnZXIoZykmJjE8PWcmJmc8PTFlNCwiZG93bnZvdGVQb3dlckNvbnN1bXB0aW9uIHNob3VsZCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgMTAwMDAiKSYmYXBpLmFzc2VydChBcnJheS5pc0FycmF5KGMpJiYxPD1jLmxlbmd0aCYmYy5sZW5ndGg8PWgmJmMuZXZlcnkoZT0+InN0cmluZyI9PXR5cGVvZiBlKSwidGFncyBzaG91bGQgYmUgYSBub24tZW1wdHkgYXJyYXkgb2Ygc3RyaW5ncyBvZiBsZW5ndGggYXQgbW9zdCAiK2gpJiZhcGkuYXNzZXJ0KCJib29sZWFuIj09dHlwZW9mIHcsImRpc2FibGVEb3dudm90ZSBzaG91bGQgYmUgYm9vbGVhbiIpJiZhcGkuYXNzZXJ0KCJib29sZWFuIj09dHlwZW9mIGIsImlnbm9yZURlY2xpbmVQYXlvdXQgc2hvdWxkIGJlIGJvb2xlYW4iKSYmYXNzZXJ0QXBwVGF4Q29uZmlnVmFsaWQoUCkmJmFwaS5hc3NlcnQoIXZ8fEFycmF5LmlzQXJyYXkodikmJjE8PXYubGVuZ3RoJiZ2Lmxlbmd0aDw9aCYmdi5ldmVyeShlPT4ic3RyaW5nIj09dHlwZW9mIGUpLCJleGNsdWRlVGFncyBzaG91bGQgYmUgYSBub24tZW1wdHkgYXJyYXkgb2Ygc3RyaW5ncyBvZiBsZW5ndGggYXQgbW9zdCAiK2gpJiZhcGkuYXNzZXJ0KCF5fHxOdW1iZXIuaXNJbnRlZ2VyKHkpJiZkPD15LCJyZXdhcmRSZWR1Y3Rpb25JbnRlcnZhbFNlY29uZHMgc2hvdWxkIGJlIGFuIGludGVnZXIgZ3JlYXRlciBvciBlcXVhbCB0byByZXdhcmRJbnRlcnZhbFNlY29uZHMiKSYmKE49YXBpLkJpZ051bWJlcihmKSxhcGkuYXNzZXJ0KCFmfHwic3RyaW5nIj09dHlwZW9mIGYmJk4uaXNGaW5pdGUoKSYmTi5ndGUoIjAiKSYmTi5sdGUoIjEwMCIpJiZOLmRwKCk8PTEsJ3Jld2FyZFJlZHVjdGlvblBlcmNlbnRhZ2Ugc2hvdWxkIGJlIGJldHdlZW4gIjAiIGFuZCAiMTAwIiB3aXRoIHByZWNpc2lvbiBhdCBtb3N0IDEnKSkmJmFwaS5hc3NlcnQoYXBpLnNlbmRlcj09PVIuaXNzdWVyfHxhcGkuc2VuZGVyPT09YXBpLm93bmVyJiYiQkVFIj09PVIuc3ltYm9sLCJtdXN0IGJlIGlzc3VlciBvZiB0b2tlbiIpJiZhcGkuYXNzZXJ0KFIuc3Rha2luZ0VuYWJsZWQsInRva2VuIG11c3QgaGF2ZSBzdGFraW5nIGVuYWJsZWQiKSYmKGg9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInJld2FyZFBvb2xzIix7c3ltYm9sOmV9KSxhcGkuYXNzZXJ0KCFoLCJjYW5ub3QgY3JlYXRlIG11bHRpcGxlIHJld2FyZCBwb29scyBwZXIgdG9rZW4iKSkmJihOPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIikuZ2V0VGltZSgpLFI9YXdhaXQgYXBpLmRiLmluc2VydCgicmV3YXJkUG9vbHMiLHtzeW1ib2w6ZSxyZXdhcmRQb29sOiIwIixsYXN0UmV3YXJkVGltZXN0YW1wOk4sbGFzdENsYWltRGVjYXlUaW1lc3RhbXA6TixjcmVhdGVkVGltZXN0YW1wOk4sbGFzdFJld2FyZFJlZHVjdGlvblRpbWVzdGFtcDpOLGNvbmZpZzp7cG9zdFJld2FyZEN1cnZlOkkscG9zdFJld2FyZEN1cnZlUGFyYW1ldGVyOmksY3VyYXRpb25SZXdhcmRDdXJ2ZTp0LGN1cmF0aW9uUmV3YXJkQ3VydmVQYXJhbWV0ZXI6cixjdXJhdGlvblJld2FyZFBlcmNlbnRhZ2U6byxjYXNob3V0V2luZG93RGF5czpuLHJld2FyZFBlckludGVydmFsOnMscmV3YXJkSW50ZXJ2YWxTZWNvbmRzOmQsdm90ZVJlZ2VuZXJhdGlvbkRheXM6cCxkb3dudm90ZVJlZ2VuZXJhdGlvbkRheXM6dSxzdGFrZWRSZXdhcmRQZXJjZW50YWdlOmwsdm90ZVBvd2VyQ29uc3VtcHRpb246bSxkb3dudm90ZVBvd2VyQ29uc3VtcHRpb246Zyx0YWdzOmMsZGlzYWJsZURvd252b3RlOncsaWdub3JlRGVjbGluZVBheW91dDpiLGFwcFRheENvbmZpZzpQLGV4Y2x1ZGVUYWdzOnYscmV3YXJkUmVkdWN0aW9uSW50ZXJ2YWxTZWNvbmRzOnkscmV3YXJkUmVkdWN0aW9uUGVyY2VudGFnZTpmfSxwZW5kaW5nQ2xhaW1zOiIwIixhY3RpdmU6ITB9KSxhcGkuc2VuZGVyIT09YXBpLm93bmVyJiZhcGkuQmlnTnVtYmVyKGEpLmd0KDApJiZhd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyIix7dG86Im51bGwiLHN5bWJvbDoiQkVFIixxdWFudGl0eTphLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTpUfSksYXBpLmVtaXQoImNyZWF0ZVJld2FyZFBvb2wiLHtfaWQ6Ui5faWR9KSl9LGFjdGlvbnMudXBkYXRlUmV3YXJkUG9vbD1hc3luYyBlPT57dmFyIGEsaSx0LHIsbyxuLHMsZCxwLHUsbCxtLGcsYyx3LGIsUCx2LHksZixoLE4se3Jld2FyZFBvb2xJZDplLGNvbmZpZzpSLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTpJfT1lO2FwaS5hc3NlcnQoITA9PT1JLCJvcGVyYXRpb24gbXVzdCBiZSBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmKHt1cGRhdGVGZWU6YSxtYXhUYWdzUGVyUG9vbDppfT1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSksTj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDoiQkVFIn0pLE49ISghYXBpLkJpZ051bWJlcihhKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHxOJiZhcGkuQmlnTnVtYmVyKE4uYmFsYW5jZSkuZ3RlKGEpLGFwaS5hc3NlcnQoTiwieW91IG11c3QgaGF2ZSBlbm91Z2ggdG9rZW5zIHRvIGNvdmVyIHRoZSB1cGRhdGUgZmVlIikpJiZhcGkuYXNzZXJ0KFImJiJvYmplY3QiPT10eXBlb2YgUiwiY29uZmlnIGludmFsaWQiKSYmKHtwb3N0UmV3YXJkQ3VydmU6Tixwb3N0UmV3YXJkQ3VydmVQYXJhbWV0ZXI6UixjdXJhdGlvblJld2FyZEN1cnZlOmgsY3VyYXRpb25SZXdhcmRDdXJ2ZVBhcmFtZXRlcjp0LGN1cmF0aW9uUmV3YXJkUGVyY2VudGFnZTpyLGNhc2hvdXRXaW5kb3dEYXlzOm8scmV3YXJkUGVySW50ZXJ2YWw6bixyZXdhcmRJbnRlcnZhbFNlY29uZHM6cyx2b3RlUmVnZW5lcmF0aW9uRGF5czpkLGRvd252b3RlUmVnZW5lcmF0aW9uRGF5czpwLHN0YWtlZFJld2FyZFBlcmNlbnRhZ2U6dSx2b3RlUG93ZXJDb25zdW1wdGlvbjpsLGRvd252b3RlUG93ZXJDb25zdW1wdGlvbjptLHRhZ3M6ZyxkaXNhYmxlRG93bnZvdGU6YyxpZ25vcmVEZWNsaW5lUGF5b3V0OncsYXBwVGF4Q29uZmlnOmIsZXhjbHVkZVRhZ3M6UCxyZXdhcmRSZWR1Y3Rpb25JbnRlcnZhbFNlY29uZHM6dixyZXdhcmRSZWR1Y3Rpb25QZXJjZW50YWdlOnl9PVIsZT1hd2FpdCBhcGkuZGIuZmluZE9uZSgicmV3YXJkUG9vbHMiLHtfaWQ6ZX0pLGFwaS5hc3NlcnQoZSwicmV3YXJkIHBvb2wgbm90IGZvdW5kIikpJiYoZj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDplLnN5bWJvbH0pLGFwaS5hc3NlcnQoTiYmInBvd2VyIj09PU4sInBvc3RSZXdhcmRDdXJ2ZSBzaG91bGQgYmUgb25lIG9mOiBbcG93ZXJdIikpJiYoZS5jb25maWcucG9zdFJld2FyZEN1cnZlPU4sTj1hcGkuQmlnTnVtYmVyKFIpLGFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBSJiZOLmlzRmluaXRlKCkmJk4uZ3RlKCIxIikmJk4ubHRlKCIyIikmJk4uZHAoKTw9MiwncG9zdFJld2FyZEN1cnZlUGFyYW1ldGVyIHNob3VsZCBiZSBiZXR3ZWVuICIxIiBhbmQgIjIiIHdpdGggcHJlY2lzaW9uIGF0IG1vc3QgMicpKSYmKGUuY29uZmlnLnBvc3RSZXdhcmRDdXJ2ZVBhcmFtZXRlcj1SLGFwaS5hc3NlcnQoaCYmInBvd2VyIj09PWgsImN1cmF0aW9uUmV3YXJkQ3VydmUgc2hvdWxkIGJlIG9uZSBvZjogW3Bvd2VyXSIpKSYmKE49YXBpLkJpZ051bWJlcih0KSxhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgdCYmTi5pc0Zpbml0ZSgpJiZOLmd0ZSgiMC41IikmJk4ubHRlKCIxIikmJk4uZHAoKTw9MiwnY3VyYXRpb25SZXdhcmRDdXJ2ZVBhcmFtZXRlciBjYW4gb25seSBiZSBiZXR3ZWVuICIwLjUiIGFuZCAiMSIgd2l0aCBwcmVjaXNpb24gYXQgbW9zdCAyJykpJiYoZS5jb25maWcuY3VyYXRpb25SZXdhcmRDdXJ2ZVBhcmFtZXRlcj10LGFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihyKSYmMDw9ciYmcjw9MTAwLCJjdXJhdGlvblJld2FyZFBlcmNlbnRhZ2Ugc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCAxMDAiKSkmJihlLmNvbmZpZy5jdXJhdGlvblJld2FyZFBlcmNlbnRhZ2U9cixhcGkuYXNzZXJ0KG8mJk51bWJlci5pc0ludGVnZXIobykmJjE8PW8mJm88PTMwLCJjYXNob3V0V2luZG93RGF5cyBzaG91bGQgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDEgYW5kIDMwIikpJiYoZS5jb25maWcuY2FzaG91dFdpbmRvd0RheXM9byxSPWFwaS5CaWdOdW1iZXIobiksYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIG4mJlIuaXNGaW5pdGUoKSYmUi5ndCgwKSwicmV3YXJkUGVySW50ZXJ2YWwgaW52YWxpZCIpKSYmYXBpLmFzc2VydChSLmRwKCk8PWYucHJlY2lzaW9uLCJ0b2tlbiBwcmVjaXNpb24gbWlzbWF0Y2ggZm9yIHJld2FyZFBlckludGVydmFsIikmJihlLmNvbmZpZy5yZXdhcmRQZXJJbnRlcnZhbD1uLGFwaS5hc3NlcnQocyYmTnVtYmVyLmlzSW50ZWdlcihzKSYmMzw9cyYmczw9ODY0MDAmJnMlMz09MCwicmV3YXJkSW50ZXJ2YWxTZWNvbmRzIHNob3VsZCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMyBhbmQgODY0MDAsIGFuZCBkaXZpc2libGUgYnkgMyIpKSYmKGUuY29uZmlnLnJld2FyZEludGVydmFsU2Vjb25kcz1zLGFwaS5hc3NlcnQoZCYmTnVtYmVyLmlzSW50ZWdlcihkKSYmMTw9ZCYmZDw9MzAsInZvdGVSZWdlbmVyYXRpb25EYXlzIHNob3VsZCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgMzAiKSkmJihlLmNvbmZpZy52b3RlUmVnZW5lcmF0aW9uRGF5cz1kLGFwaS5hc3NlcnQocCYmTnVtYmVyLmlzSW50ZWdlcihwKSYmMTw9cCYmcDw9MzAsImRvd252b3RlUmVnZW5lcmF0aW9uRGF5cyBzaG91bGQgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDEgYW5kIDMwIikpJiYoZS5jb25maWcuZG93bnZvdGVSZWdlbmVyYXRpb25EYXlzPXAsYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKHUpJiYwPD11JiZ1PD0xMDAsInN0YWtlZFJld2FyZFBlcmNlbnRhZ2Ugc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCAxMDAiKSkmJihlLmNvbmZpZy5zdGFrZWRSZXdhcmRQZXJjZW50YWdlPXUsYXBpLmFzc2VydChsJiZOdW1iZXIuaXNJbnRlZ2VyKGwpJiYxPD1sJiZsPD0xZTQsInZvdGVQb3dlckNvbnN1bXB0aW9uIHNob3VsZCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgMTAwMDAiKSkmJihlLmNvbmZpZy52b3RlUG93ZXJDb25zdW1wdGlvbj1sLGFwaS5hc3NlcnQobSYmTnVtYmVyLmlzSW50ZWdlcihtKSYmMTw9bSYmbTw9MWU0LCJkb3dudm90ZVBvd2VyQ29uc3VtcHRpb24gc2hvdWxkIGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAxMDAwMCIpKSYmKGUuY29uZmlnLmRvd252b3RlUG93ZXJDb25zdW1wdGlvbj1tLGFwaS5hc3NlcnQoQXJyYXkuaXNBcnJheShnKSYmMTw9Zy5sZW5ndGgmJmcubGVuZ3RoPD1pJiZnLmV2ZXJ5KGU9PiJzdHJpbmciPT10eXBlb2YgZSksInRhZ3Mgc2hvdWxkIGJlIGEgbm9uLWVtcHR5IGFycmF5IG9mIHN0cmluZ3Mgb2YgbGVuZ3RoIGF0IG1vc3QgIitpKSkmJihlLmNvbmZpZy50YWdzPWcsYXBpLmFzc2VydCgiYm9vbGVhbiI9PXR5cGVvZiBjLCJkaXNhYmxlRG93bnZvdGUgc2hvdWxkIGJlIGJvb2xlYW4iKSkmJihlLmNvbmZpZy5kaXNhYmxlRG93bnZvdGU9YyxhcGkuYXNzZXJ0KCJib29sZWFuIj09dHlwZW9mIHcsImlnbm9yZURlY2xpbmVQYXlvdXQgc2hvdWxkIGJlIGJvb2xlYW4iKSkmJihlLmNvbmZpZy5pZ25vcmVEZWNsaW5lUGF5b3V0PXcsYXNzZXJ0QXBwVGF4Q29uZmlnVmFsaWQoYikpJiYoZS5jb25maWcuYXBwVGF4Q29uZmlnPWIsYXBpLmFzc2VydCghUHx8QXJyYXkuaXNBcnJheShQKSYmMTw9UC5sZW5ndGgmJlAubGVuZ3RoPD1pJiZQLmV2ZXJ5KGU9PiJzdHJpbmciPT10eXBlb2YgZSksImV4Y2x1ZGVUYWdzIHNob3VsZCBiZSBhIG5vbi1lbXB0eSBhcnJheSBvZiBzdHJpbmdzIG9mIGxlbmd0aCBhdCBtb3N0ICIraSkpJiYoZS5jb25maWcuZXhjbHVkZVRhZ3M9UCxhcGkuYXNzZXJ0KCF2fHxOdW1iZXIuaXNJbnRlZ2VyKHYpJiZzPD12LCJyZXdhcmRSZWR1Y3Rpb25JbnRlcnZhbFNlY29uZHMgc2hvdWxkIGJlIGFuIGludGVnZXIgZ3JlYXRlciBvciBlcXVhbCB0byByZXdhcmRJbnRlcnZhbFNlY29uZHMiKSkmJihlLmNvbmZpZy5yZXdhcmRSZWR1Y3Rpb25JbnRlcnZhbFNlY29uZHMhPT12JiYoaD1uZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpLmdldFRpbWUoKSxlLmxhc3RSZXdhcmRSZWR1Y3Rpb25UaW1lc3RhbXA9aCksZS5jb25maWcucmV3YXJkUmVkdWN0aW9uSW50ZXJ2YWxTZWNvbmRzPXYsTj1hcGkuQmlnTnVtYmVyKHkpLGFwaS5hc3NlcnQoIXl8fCJzdHJpbmciPT10eXBlb2YgeSYmTi5pc0Zpbml0ZSgpJiZOLmd0ZSgiMCIpJiZOLmx0ZSgiMTAwIikmJk4uZHAoKTw9MSwncmV3YXJkUmVkdWN0aW9uUGVyY2VudGFnZSBzaG91bGQgYmUgYmV0d2VlbiAiMCIgYW5kICIxMDAiIHdpdGggcHJlY2lzaW9uIGF0IG1vc3QgMScpKSYmKGUuY29uZmlnLnJld2FyZFJlZHVjdGlvblBlcmNlbnRhZ2U9eSxhcGkuYXNzZXJ0KGFwaS5zZW5kZXI9PT1mLmlzc3Vlcnx8YXBpLnNlbmRlcj09PWFwaS5vd25lciYmIkJFRSI9PT1mLnN5bWJvbCwibXVzdCBiZSBpc3N1ZXIgb2YgdG9rZW4iKSkmJihhcGkuc2VuZGVyIT09YXBpLm93bmVyJiZhcGkuQmlnTnVtYmVyKGEpLmd0KDApJiZhd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyIix7dG86Im51bGwiLHN5bWJvbDoiQkVFIixxdWFudGl0eTphLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTpJfSksYXdhaXQgYXBpLmRiLnVwZGF0ZSgicmV3YXJkUG9vbHMiLGUpKX0sYWN0aW9ucy5zZXRBY3RpdmU9YXN5bmMgZT0+e3ZhcntyZXdhcmRQb29sSWQ6ZSxhY3RpdmU6YSxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aX09ZTthcGkuYXNzZXJ0KCEwPT09aSwib3BlcmF0aW9uIG11c3QgYmUgc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJihpPWF3YWl0IGFwaS5kYi5maW5kT25lKCJyZXdhcmRQb29scyIse19pZDplfSksYXBpLmFzc2VydChpLCJyZXdhcmQgcG9vbCBub3QgZm91bmQiKSkmJihlPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOmkuc3ltYm9sfSksYXBpLmFzc2VydChhcGkuc2VuZGVyPT09ZS5pc3N1ZXJ8fGFwaS5zZW5kZXI9PT1hcGkub3duZXIsIm11c3QgYmUgaXNzdWVyIG9mIHRva2VuIikpJiYoaS5hY3RpdmU9YSxhd2FpdCBhcGkuZGIudXBkYXRlKCJyZXdhcmRQb29scyIsaSkpfSxhY3Rpb25zLnNldE11dGU9YXN5bmMgZT0+e3ZhcntyZXdhcmRQb29sSWQ6ZSxhY2NvdW50OmEsbXV0ZTppfT1lLHQ9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInJld2FyZFBvb2xzIix7X2lkOmV9KTthcGkuYXNzZXJ0KHQsInJld2FyZCBwb29sIG5vdCBmb3VuZCIpJiYodD1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDp0LnN5bWJvbH0pLGFwaS5hc3NlcnQoYXBpLnNlbmRlcj09PXQuaXNzdWVyfHxhcGkuc2VuZGVyPT09YXBpLm93bmVyLCJtdXN0IGJlIGlzc3VlciBvZiB0b2tlbiIpKSYmYXBpLmFzc2VydChhcGkuaXNWYWxpZEFjY291bnROYW1lKGEpLCJpbnZhbGlkIGFjY291bnQiKSYmYXBpLmFzc2VydCgiYm9vbGVhbiI9PXR5cGVvZiBpLCJtdXRlIG11c3QgYmUgYSBib29sZWFuIikmJigodD1hd2FpdCBhcGkuZGIuZmluZE9uZSgidm90aW5nUG93ZXIiLHtyZXdhcmRQb29sSWQ6ZSxhY2NvdW50OmF9KSk/KHQubXV0ZT1pLGF3YWl0IGFwaS5kYi51cGRhdGUoInZvdGluZ1Bvd2VyIix0KSk6KHQ9e3Jld2FyZFBvb2xJZDplLGFjY291bnQ6YSxsYXN0Vm90ZVRpbWVzdGFtcDpuZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpLmdldFRpbWUoKSx2b3RpbmdQb3dlcjpNQVhfVk9USU5HX1BPV0VSLGRvd252b3RpbmdQb3dlcjpNQVhfVk9USU5HX1BPV0VSLG11dGU6aX0sYXdhaXQgYXBpLmRiLmluc2VydCgidm90aW5nUG93ZXIiLHQpKSl9LGFjdGlvbnMuc2V0UG9zdE11dGU9YXN5bmMgZT0+e3ZhcntyZXdhcmRQb29sSWQ6ZSxhdXRob3JwZXJtOmEsbXV0ZTppfT1lLHQ9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInJld2FyZFBvb2xzIix7X2lkOmV9KTthcGkuYXNzZXJ0KHQsInJld2FyZCBwb29sIG5vdCBmb3VuZCIpJiYodD1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDp0LnN5bWJvbH0pLGFwaS5hc3NlcnQoYXBpLnNlbmRlcj09PXQuaXNzdWVyfHxhcGkuc2VuZGVyPT09YXBpLm93bmVyLCJtdXN0IGJlIGlzc3VlciBvZiB0b2tlbiIpKSYmYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIGEsImF1dGhvcnBlcm0gbXVzdCBiZSBhIHN0cmluZyIpJiYodD1hd2FpdCBhcGkuZGIuZmluZE9uZSgicG9zdHMiLHtyZXdhcmRQb29sSWQ6ZSxhdXRob3JwZXJtOmF9KSxhcGkuYXNzZXJ0KHQsInBvc3Qgbm90IGZvdW5kIikpJiZhcGkuYXNzZXJ0KCJib29sZWFuIj09dHlwZW9mIGksIm11dGUgbXVzdCBiZSBhIGJvb2xlYW4iKSYmKHQubXV0ZT1pLGF3YWl0IGFwaS5kYi51cGRhdGUoInBvc3RzIix0KSl9LGFjdGlvbnMucmVzZXRQb29sPWFzeW5jIGU9Pnt2YXJ7cmV3YXJkUG9vbElkOmUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmF9PWU7YXBpLmFzc2VydCghMD09PWEsIm9wZXJhdGlvbiBtdXN0IGJlIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiYoYT1hd2FpdCBhcGkuZGIuZmluZE9uZSgicmV3YXJkUG9vbHMiLHtfaWQ6ZX0pLGFwaS5hc3NlcnQoYSwicmV3YXJkIHBvb2wgbm90IGZvdW5kIikpJiYoZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDphLnN5bWJvbH0pLGFwaS5hc3NlcnQoYXBpLnNlbmRlcj09PWUuaXNzdWVyfHxhcGkuc2VuZGVyPT09YXBpLm93bmVyLCJtdXN0IGJlIGlzc3VlciBvZiB0b2tlbiIpKSYmKGU9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKS5nZXRUaW1lKCksYS5yZXdhcmRQb29sPSIwIixhLmxhc3RSZXdhcmRUaW1lc3RhbXA9ZSxhLmxhc3RDbGFpbURlY2F5VGltZXN0YW1wPWUsYS5jcmVhdGVkVGltZXN0YW1wPWUsYS5wZW5kaW5nQ2xhaW1zPSIwIixhd2FpdCBhcGkuZGIudXBkYXRlKCJyZXdhcmRQb29scyIsYSkpfSxhY3Rpb25zLmNvbW1lbnQ9YXN5bmMgYT0+e3ZhcnthdXRob3I6aSxwZXJtbGluazplfT1hO2lmKGFwaS5hc3NlcnQoIm51bGwiPT09YXBpLnNlbmRlciwiYWN0aW9uIG11c3QgdXNlIGNvbW1lbnQgb3BlcmF0aW9uIikpe2F3YWl0IHRva2VuTWFpbnRlbmFuY2UoKTt2YXIgdD1hd2FpdCBnZXRSZXdhcmRQb29sSWRzKGEpLHI9YEAke2l9L2ArZSxlPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwb3N0TWV0YWRhdGEiLHthdXRob3JwZXJtOnJ9KTtpZighZSl7ZT1hd2FpdCBhcGkuZGIuZmluZE9uZSgicG9zdHMiLHthdXRob3JwZXJtOnJ9KTtpZighZSl7YXdhaXQgYXBpLmRiLmluc2VydCgicG9zdE1ldGFkYXRhIix7YXV0aG9ycGVybTpyLHJld2FyZFBvb2xJZHM6dH0pO3ZhciBvPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIikuZ2V0VGltZSgpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSs9MSl7dmFyIG4scyxkPXRbZV0scD1hd2FpdCBhcGkuZGIuZmluZE9uZSgicmV3YXJkUG9vbHMiLHtfaWQ6ZH0pO3AmJnAuYWN0aXZlJiYobj1vKzI0KnAuY29uZmlnLmNhc2hvdXRXaW5kb3dEYXlzKjM2MDAqMWUzLG49e3Jld2FyZFBvb2xJZDpkLHN5bWJvbDpwLnN5bWJvbCxhdXRob3JwZXJtOnIsYXV0aG9yOmksY3JlYXRlZDpvLGNhc2hvdXRUaW1lOm4sdm90ZVBvc2l0aXZlUnNoYXJlU3VtOiIwIix2b3RlUnNoYXJlU3VtOiIwIn0sYS5qc29uTWV0YWRhdGEmJmEuanNvbk1ldGFkYXRhLmFwcCYmInN0cmluZyI9PXR5cGVvZihzPWEuanNvbk1ldGFkYXRhLmFwcCkmJihuLmFwcD1zLnNwbGl0KCIvIilbMF0udG9Mb3dlckNhc2UoKSksYXdhaXQgYXBpLmRiLmluc2VydCgicG9zdHMiLG4pLGFwaS5lbWl0KCJuZXdDb21tZW50Iix7cmV3YXJkUG9vbElkOmQsc3ltYm9sOnAuc3ltYm9sfSkpfX19fX0sYWN0aW9ucy5jb21tZW50T3B0aW9ucz1hc3luYyBlPT57dmFye2F1dGhvcjplLHBlcm1saW5rOmEsbWF4QWNjZXB0ZWRQYXlvdXQ6aSxiZW5lZmljaWFyaWVzOnR9PWU7aWYoYXBpLmFzc2VydCgibnVsbCI9PT1hcGkuc2VuZGVyLCJhY3Rpb24gbXVzdCB1c2UgY29tbWVudE9wdGlvbnMgb3BlcmF0aW9uIikpe3ZhciByPWF3YWl0IGFwaS5kYi5maW5kKCJwb3N0cyIse2F1dGhvcnBlcm06YEAke2V9L2ArYX0pO2lmKHIpe3ZhciBvPWkuc3RhcnRzV2l0aCgiMC4wMDAiKTtmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV07KGF3YWl0IGFwaS5kYi5maW5kT25lKCJyZXdhcmRQb29scyIse19pZDpuLnJld2FyZFBvb2xJZH0pKS5jb25maWcuaWdub3JlRGVjbGluZVBheW91dHx8KG4uZGVjbGluZVBheW91dD1vKSxuLmJlbmVmaWNpYXJpZXM9dCxhd2FpdCBhcGkuZGIudXBkYXRlKCJwb3N0cyIsbil9fX19LGFjdGlvbnMudm90ZT1hc3luYyBlPT57dmFye3ZvdGVyOmEsYXV0aG9yOmUscGVybWxpbms6aSx3ZWlnaHQ6dH09ZTtpZihhcGkuYXNzZXJ0KCJudWxsIj09PWFwaS5zZW5kZXIsImNhbiBvbmx5IHZvdGUgd2l0aCB2b3Rpbmcgb3AiKSYmKGF3YWl0IHRva2VuTWFpbnRlbmFuY2UoKSxhcGkuYXNzZXJ0KE51bWJlci5pc0ludGVnZXIodCkmJi0xZTQ8PXQmJnQ8PTFlNCwid2VpZ2h0IG11c3QgYmUgYW4gaW50ZWdlciBmcm9tIC0xMDAwMCB0byAxMDAwMCIpKSl7dmFyIHI9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKS5nZXRUaW1lKCksbz1hd2FpdCBhcGkuZGIuZmluZCgicG9zdHMiLHthdXRob3JwZXJtOmBAJHtlfS9gK2l9LDFlMywwLFt7aW5kZXg6Il9pZCIsZGVzY2VuZGluZzohMX1dKTtpZihvKWZvcihsZXQgZT0wO2U8by5sZW5ndGg7ZSs9MSlhd2FpdCBwcm9jZXNzVm90ZShvW2VdLGEsdCxyKX19Ow=="}}}

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Logo
Center