{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"market","params":"","code":"Y29uc3QgSElWRV9QRUdHRURfU1lNQk9MPSJTV0FQLkhJVkUiLEhJVkVfUEVHR0VEX1NZTUJPTF9QUkVTSUNJT049OCxDT05UUkFDVF9OQU1FPSJtYXJrZXQiLGdldE1ldHJpYz1hc3luYyBzeW1ib2w9PntsZXQgbWV0cmljPWF3YWl0IGFwaS5kYi5maW5kT25lKCJtZXRyaWNzIix7c3ltYm9sOnN5bWJvbH0pO2lmKG51bGw9PT1tZXRyaWMpe21ldHJpYz17fSxtZXRyaWMuc3ltYm9sPXN5bWJvbCxtZXRyaWMudm9sdW1lPSIwIixtZXRyaWMudm9sdW1lRXhwaXJhdGlvbj0wLG1ldHJpYy5sYXN0UHJpY2U9IjAiLG1ldHJpYy5sb3dlc3RBc2s9IjAiLG1ldHJpYy5oaWdoZXN0QmlkPSIwIixtZXRyaWMubGFzdERheVByaWNlPSIwIixtZXRyaWMubGFzdERheVByaWNlRXhwaXJhdGlvbj0wLG1ldHJpYy5wcmljZUNoYW5nZUhpdmU9IjAiLG1ldHJpYy5wcmljZUNoYW5nZVBlcmNlbnQ9IjAiO3JldHVybiBhd2FpdCBhcGkuZGIuaW5zZXJ0KCJtZXRyaWNzIixtZXRyaWMpfXJldHVybiBtZXRyaWN9LHVwZGF0ZVZvbHVtZU1ldHJpYz1hc3luYyhzeW1ib2wscXVhbnRpdHksYWRkPSEwKT0+e2NvbnN0IGJsb2NrRGF0ZT1uZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpLHRpbWVzdGFtcFNlYz1ibG9ja0RhdGUuZ2V0VGltZSgpLzFlMyxtZXRyaWM9YXdhaXQgZ2V0TWV0cmljKHN5bWJvbCk7ITA9PT1hZGQ/KG1ldHJpYy52b2x1bWVFeHBpcmF0aW9uPHRpbWVzdGFtcFNlYyYmKG1ldHJpYy52b2x1bWU9IjAuMDAwIiksbWV0cmljLnZvbHVtZT1hcGkuQmlnTnVtYmVyKG1ldHJpYy52b2x1bWUpLnBsdXMocXVhbnRpdHkpLnRvRml4ZWQoOCksbWV0cmljLnZvbHVtZUV4cGlyYXRpb249YmxvY2tEYXRlLnNldERhdGUoYmxvY2tEYXRlLmdldERhdGUoKSsxKS8xZTMpOm1ldHJpYy52b2x1bWU9YXBpLkJpZ051bWJlcihtZXRyaWMudm9sdW1lKS5taW51cyhxdWFudGl0eSkudG9GaXhlZCg4KSxhcGkuQmlnTnVtYmVyKG1ldHJpYy52b2x1bWUpLmx0KDApJiYobWV0cmljLnZvbHVtZT0iMC4wMDAiKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJtZXRyaWNzIixtZXRyaWMpfSx1cGRhdGVQcmljZU1ldHJpY3M9YXN5bmMoc3ltYm9sLHByaWNlKT0+e2NvbnN0IGJsb2NrRGF0ZT1uZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpLHRpbWVzdGFtcFNlYz1ibG9ja0RhdGUuZ2V0VGltZSgpLzFlMyxtZXRyaWM9YXdhaXQgZ2V0TWV0cmljKHN5bWJvbCk7bWV0cmljLmxhc3RQcmljZT1wcmljZSxtZXRyaWMubGFzdERheVByaWNlRXhwaXJhdGlvbjx0aW1lc3RhbXBTZWM/KG1ldHJpYy5sYXN0RGF5UHJpY2U9cHJpY2UsbWV0cmljLmxhc3REYXlQcmljZUV4cGlyYXRpb249YmxvY2tEYXRlLnNldERhdGUoYmxvY2tEYXRlLmdldERhdGUoKSsxKS8xZTMsbWV0cmljLnByaWNlQ2hhbmdlSGl2ZT0iMCIsbWV0cmljLnByaWNlQ2hhbmdlUGVyY2VudD0iMCUiKToobWV0cmljLnByaWNlQ2hhbmdlSGl2ZT1hcGkuQmlnTnVtYmVyKHByaWNlKS5taW51cyhtZXRyaWMubGFzdERheVByaWNlKS50b0ZpeGVkKDgpLG1ldHJpYy5wcmljZUNoYW5nZVBlcmNlbnQ9YXBpLkJpZ051bWJlcihtZXRyaWMucHJpY2VDaGFuZ2VIaXZlKS5kaXZpZGVkQnkobWV0cmljLmxhc3REYXlQcmljZSkubXVsdGlwbGllZEJ5KDEwMCkudG9GaXhlZCgyKSsiJSIpLGF3YWl0IGFwaS5kYi51cGRhdGUoIm1ldHJpY3MiLG1ldHJpYyl9LHVwZGF0ZUJpZE1ldHJpYz1hc3luYyBzeW1ib2w9Pntjb25zdCBtZXRyaWM9YXdhaXQgZ2V0TWV0cmljKHN5bWJvbCksYnV5T3JkZXJCb29rPWF3YWl0IGFwaS5kYi5maW5kKCJidXlCb29rIix7c3ltYm9sOnN5bWJvbH0sMSwwLFt7aW5kZXg6InByaWNlRGVjIixkZXNjZW5kaW5nOiEwfV0pO2J1eU9yZGVyQm9vay5sZW5ndGg+MD9tZXRyaWMuaGlnaGVzdEJpZD1idXlPcmRlckJvb2tbMF0ucHJpY2U6bWV0cmljLmhpZ2hlc3RCaWQ9IjAiLGF3YWl0IGFwaS5kYi51cGRhdGUoIm1ldHJpY3MiLG1ldHJpYyl9LHVwZGF0ZUFza01ldHJpYz1hc3luYyBzeW1ib2w9Pntjb25zdCBtZXRyaWM9YXdhaXQgZ2V0TWV0cmljKHN5bWJvbCksc2VsbE9yZGVyQm9vaz1hd2FpdCBhcGkuZGIuZmluZCgic2VsbEJvb2siLHtzeW1ib2w6c3ltYm9sfSwxLDAsW3tpbmRleDoicHJpY2VEZWMiLGRlc2NlbmRpbmc6ITF9XSk7c2VsbE9yZGVyQm9vay5sZW5ndGg+MD9tZXRyaWMubG93ZXN0QXNrPXNlbGxPcmRlckJvb2tbMF0ucHJpY2U6bWV0cmljLmxvd2VzdEFzaz0iMCIsYXdhaXQgYXBpLmRiLnVwZGF0ZSgibWV0cmljcyIsbWV0cmljKX0sdXBkYXRlVHJhZGVzSGlzdG9yeT1hc3luYyh0eXBlLGJ1eWVyLHNlbGxlcixzeW1ib2wscXVhbnRpdHkscHJpY2Usdm9sdW1lLGJ1eVR4SWQsc2VsbFR4SWQpPT57Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIiksdGltZXN0YW1wU2VjPWJsb2NrRGF0ZS5nZXRUaW1lKCkvMWUzLHRpbWVzdGFtcE1pbnVzMjRocnM9YmxvY2tEYXRlLnNldERhdGUoYmxvY2tEYXRlLmdldERhdGUoKS0xKS8xZTM7bGV0IHRyYWRlc1RvRGVsZXRlPWF3YWl0IGFwaS5kYi5maW5kKCJ0cmFkZXNIaXN0b3J5Iix7c3ltYm9sOnN5bWJvbCx0aW1lc3RhbXA6eyRsdDp0aW1lc3RhbXBNaW51czI0aHJzfX0pLG5iVHJhZGVzVG9EZWxldGU9dHJhZGVzVG9EZWxldGUubGVuZ3RoO2Zvcig7bmJUcmFkZXNUb0RlbGV0ZT4wOyl7Zm9yKGxldCBpbmRleD0wO2luZGV4PG5iVHJhZGVzVG9EZWxldGU7aW5kZXgrPTEpe2NvbnN0IHRyYWRlPXRyYWRlc1RvRGVsZXRlW2luZGV4XTthd2FpdCB1cGRhdGVWb2x1bWVNZXRyaWModHJhZGUuc3ltYm9sLHRyYWRlLnZvbHVtZSwhMSksYXdhaXQgYXBpLmRiLnJlbW92ZSgidHJhZGVzSGlzdG9yeSIsdHJhZGUpfXRyYWRlc1RvRGVsZXRlPWF3YWl0IGFwaS5kYi5maW5kKCJ0cmFkZXNIaXN0b3J5Iix7c3ltYm9sOnN5bWJvbCx0aW1lc3RhbXA6eyRsdDp0aW1lc3RhbXBNaW51czI0aHJzfX0pLG5iVHJhZGVzVG9EZWxldGU9dHJhZGVzVG9EZWxldGUubGVuZ3RofWNvbnN0IG5ld1RyYWRlPXt9O25ld1RyYWRlLnR5cGU9dHlwZSxuZXdUcmFkZS5idXllcj1idXllcixuZXdUcmFkZS5zZWxsZXI9c2VsbGVyLG5ld1RyYWRlLnN5bWJvbD1zeW1ib2wsbmV3VHJhZGUucXVhbnRpdHk9cXVhbnRpdHksbmV3VHJhZGUucHJpY2U9cHJpY2UsbmV3VHJhZGUudGltZXN0YW1wPXRpbWVzdGFtcFNlYyxuZXdUcmFkZS52b2x1bWU9dm9sdW1lLG5ld1RyYWRlLmJ1eVR4SWQ9YnV5VHhJZCxuZXdUcmFkZS5zZWxsVHhJZD1zZWxsVHhJZCxhd2FpdCBhcGkuZGIuaW5zZXJ0KCJ0cmFkZXNIaXN0b3J5IixuZXdUcmFkZSksYXdhaXQgdXBkYXRlUHJpY2VNZXRyaWNzKHN5bWJvbCxwcmljZSl9LGNvdW50RGVjaW1hbHM9dmFsdWU9PmFwaS5CaWdOdW1iZXIodmFsdWUpLmRwKCkscmVtb3ZlRXhwaXJlZE9yZGVycz1hc3luYyB0YWJsZT0+e2NvbnN0IHRpbWVzdGFtcFNlYz1hcGkuQmlnTnVtYmVyKG5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIikuZ2V0VGltZSgpKS5kaXZpZGVkQnkoMWUzKS50b051bWJlcigpO2xldCBuYk9yZGVyc1RvRGVsZXRlPTAsb3JkZXJzVG9EZWxldGU9YXdhaXQgYXBpLmRiLmZpbmQodGFibGUse2V4cGlyYXRpb246eyRsdGU6dGltZXN0YW1wU2VjfX0pO2ZvcihuYk9yZGVyc1RvRGVsZXRlPW9yZGVyc1RvRGVsZXRlLmxlbmd0aDtuYk9yZGVyc1RvRGVsZXRlPjA7KXtmb3IobGV0IGluZGV4PTA7aW5kZXg8bmJPcmRlcnNUb0RlbGV0ZTtpbmRleCs9MSl7Y29uc3Qgb3JkZXI9b3JkZXJzVG9EZWxldGVbaW5kZXhdO2xldCBxdWFudGl0eSxzeW1ib2w7ImJ1eUJvb2siPT09dGFibGU/KHN5bWJvbD0iU1dBUC5ISVZFIixxdWFudGl0eT1vcmRlci50b2tlbnNMb2NrZWQpOihzeW1ib2w9b3JkZXIuc3ltYm9sLHF1YW50aXR5PW9yZGVyLnF1YW50aXR5KSxhd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMob3JkZXIuYWNjb3VudCxzeW1ib2wscXVhbnRpdHksInVzZXIiKSxhd2FpdCBhcGkuZGIucmVtb3ZlKHRhYmxlLG9yZGVyKSwiYnV5Qm9vayI9PT10YWJsZT8oYXBpLmVtaXQoIm9yZGVyRXhwaXJlZCIse3R5cGU6ImJ1eSIsdHhJZDpvcmRlci50eElkfSksYXdhaXQgdXBkYXRlQXNrTWV0cmljKG9yZGVyLnN5bWJvbCkpOihhcGkuZW1pdCgib3JkZXJFeHBpcmVkIix7dHlwZToic2VsbCIsdHhJZDpvcmRlci50eElkfSksYXdhaXQgdXBkYXRlQmlkTWV0cmljKG9yZGVyLnN5bWJvbCkpfW9yZGVyc1RvRGVsZXRlPWF3YWl0IGFwaS5kYi5maW5kKHRhYmxlLHtleHBpcmF0aW9uOnskbHRlOnRpbWVzdGFtcFNlY319KSxuYk9yZGVyc1RvRGVsZXRlPW9yZGVyc1RvRGVsZXRlLmxlbmd0aH19O2FjdGlvbnMuY3JlYXRlU1NDPWFzeW5jKCk9PnshMT09PWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cygiYnV5Qm9vayIpJiYoYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJidXlCb29rIixbInN5bWJvbCIsImFjY291bnQiLCJwcmljZURlYyIsImV4cGlyYXRpb24iLCJ0eElkIl0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgic2VsbEJvb2siLFsic3ltYm9sIiwiYWNjb3VudCIsInByaWNlRGVjIiwiZXhwaXJhdGlvbiIsInR4SWQiXSksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJ0cmFkZXNIaXN0b3J5IixbInN5bWJvbCJdKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoIm1ldHJpY3MiLFsic3ltYm9sIl0pKX0sYWN0aW9ucy5jYW5jZWw9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3R5cGU6dHlwZSxpZDppZCxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KHR5cGUmJlsiYnV5Iiwic2VsbCJdLmluY2x1ZGVzKHR5cGUpJiZpZCwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgdGFibGU9ImJ1eSI9PT10eXBlPyJidXlCb29rIjoic2VsbEJvb2siO2xldCBvcmRlcj1udWxsO2lmKCJzdHJpbmciPT10eXBlb2YgaWQmJmlkLmxlbmd0aDw1MCYmKG9yZGVyPWF3YWl0IGFwaS5kYi5maW5kT25lKHRhYmxlLHt0eElkOmlkfSkpLGFwaS5hc3NlcnQobnVsbCE9PW9yZGVyLCJvcmRlciBkb2VzIG5vdCBleGlzdCBvciBpbnZhbGlkIHBhcmFtcyIpJiZvcmRlci5hY2NvdW50PT09YXBpLnNlbmRlcil7bGV0IHF1YW50aXR5LHN5bWJvbDsiYnV5Ij09PXR5cGU/KHN5bWJvbD0iU1dBUC5ISVZFIixxdWFudGl0eT1vcmRlci50b2tlbnNMb2NrZWQpOihzeW1ib2w9b3JkZXIuc3ltYm9sLHF1YW50aXR5PW9yZGVyLnF1YW50aXR5KSxhd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoYXBpLnNlbmRlcixzeW1ib2wscXVhbnRpdHksInVzZXIiKSxhd2FpdCBhcGkuZGIucmVtb3ZlKHRhYmxlLG9yZGVyKSwic2VsbCI9PT10eXBlP2F3YWl0IHVwZGF0ZUFza01ldHJpYyhvcmRlci5zeW1ib2wpOmF3YWl0IHVwZGF0ZUJpZE1ldHJpYyhvcmRlci5zeW1ib2wpfX19O2NvbnN0IGZpbmRNYXRjaGluZ1NlbGxPcmRlcnM9YXN5bmMob3JkZXIsdG9rZW5QcmVjaXNpb24pPT57Y29uc3R7YWNjb3VudDphY2NvdW50LHN5bWJvbDpzeW1ib2wscHJpY2VEZWM6cHJpY2VEZWN9PW9yZGVyLGJ1eU9yZGVyPW9yZGVyO2xldCBvZmZzZXQ9MCx2b2x1bWVUcmFkZWQ9MDthd2FpdCByZW1vdmVFeHBpcmVkT3JkZXJzKCJzZWxsQm9vayIpO2xldCBzZWxsT3JkZXJCb29rPWF3YWl0IGFwaS5kYi5maW5kKCJzZWxsQm9vayIse3N5bWJvbDpzeW1ib2wscHJpY2VEZWM6eyRsdGU6cHJpY2VEZWN9fSwxZTMsb2Zmc2V0LFt7aW5kZXg6InByaWNlRGVjIixkZXNjZW5kaW5nOiExfSx7aW5kZXg6Il9pZCIsZGVzY2VuZGluZzohMX1dKTtkb3tjb25zdCBuYk9yZGVycz1zZWxsT3JkZXJCb29rLmxlbmd0aDtsZXQgaW5jPTA7Zm9yKDtpbmM8bmJPcmRlcnMmJmFwaS5CaWdOdW1iZXIoYnV5T3JkZXIucXVhbnRpdHkpLmd0KDApOyl7Y29uc3Qgc2VsbE9yZGVyPXNlbGxPcmRlckJvb2tbaW5jXTtpZihhcGkuQmlnTnVtYmVyKGJ1eU9yZGVyLnF1YW50aXR5KS5sdGUoc2VsbE9yZGVyLnF1YW50aXR5KSl7bGV0IHF0eVRva2Vuc1RvU2VuZD1hcGkuQmlnTnVtYmVyKHNlbGxPcmRlci5wcmljZSkubXVsdGlwbGllZEJ5KGJ1eU9yZGVyLnF1YW50aXR5KS50b0ZpeGVkKDgpO2lmKGFwaS5CaWdOdW1iZXIocXR5VG9rZW5zVG9TZW5kKS5ndChidXlPcmRlci50b2tlbnNMb2NrZWQpJiYocXR5VG9rZW5zVG9TZW5kPWFwaS5CaWdOdW1iZXIoc2VsbE9yZGVyLnByaWNlKS5tdWx0aXBsaWVkQnkoYnV5T3JkZXIucXVhbnRpdHkpLnRvRml4ZWQoOCxhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pKSxhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIocXR5VG9rZW5zVG9TZW5kKS5ndCgwKSYmYXBpLkJpZ051bWJlcihidXlPcmRlci5xdWFudGl0eSkuZ3QoMCksInRoZSBvcmRlciBjYW5ub3QgYmUgZmlsbGVkIikpe2xldCByZXM9YXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGFjY291bnQsc3ltYm9sLGJ1eU9yZGVyLnF1YW50aXR5LCJ1c2VyIik7cmVzLmVycm9ycyYmKGFwaS5kZWJ1ZyhyZXMuZXJyb3JzKSxhcGkuZGVidWcoIlRYSUQ6ICIrYXBpLnRyYW5zYWN0aW9uSWQpLGFwaS5kZWJ1ZyhhY2NvdW50KSxhcGkuZGVidWcoc3ltYm9sKSxhcGkuZGVidWcoYnV5T3JkZXIucXVhbnRpdHkpKSxyZXM9YXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKHNlbGxPcmRlci5hY2NvdW50LCJTV0FQLkhJVkUiLHF0eVRva2Vuc1RvU2VuZCwidXNlciIpLHJlcy5lcnJvcnMmJihhcGkuZGVidWcocmVzLmVycm9ycyksYXBpLmRlYnVnKCJUWElEOiAiK2FwaS50cmFuc2FjdGlvbklkKSxhcGkuZGVidWcoc2VsbE9yZGVyLmFjY291bnQpLGFwaS5kZWJ1ZygiU1dBUC5ISVZFIiksYXBpLmRlYnVnKHF0eVRva2Vuc1RvU2VuZCkpO2NvbnN0IHF0eUxlZnRTZWxsT3JkZXI9YXBpLkJpZ051bWJlcihzZWxsT3JkZXIucXVhbnRpdHkpLm1pbnVzKGJ1eU9yZGVyLnF1YW50aXR5KS50b0ZpeGVkKHRva2VuUHJlY2lzaW9uKSxuYlRva2Vuc1RvRmlsbE9yZGVyPWFwaS5CaWdOdW1iZXIoc2VsbE9yZGVyLnByaWNlKS5tdWx0aXBsaWVkQnkocXR5TGVmdFNlbGxPcmRlcikudG9GaXhlZCg4KTthcGkuQmlnTnVtYmVyKHF0eUxlZnRTZWxsT3JkZXIpLmd0KDApJiZhcGkuQmlnTnVtYmVyKG5iVG9rZW5zVG9GaWxsT3JkZXIpLmd0ZSgiMC4wMDAwMDAwMSIpPyhzZWxsT3JkZXIucXVhbnRpdHk9cXR5TGVmdFNlbGxPcmRlcixhd2FpdCBhcGkuZGIudXBkYXRlKCJzZWxsQm9vayIsc2VsbE9yZGVyKSk6KGFwaS5CaWdOdW1iZXIocXR5TGVmdFNlbGxPcmRlcikuZ3QoMCkmJmF3YWl0IGFwaS50cmFuc2ZlclRva2VucyhzZWxsT3JkZXIuYWNjb3VudCxzeW1ib2wscXR5TGVmdFNlbGxPcmRlciwidXNlciIpLGFwaS5lbWl0KCJvcmRlckNsb3NlZCIse2FjY291bnQ6c2VsbE9yZGVyLmFjY291bnQsdHlwZToic2VsbCIsdHhJZDpzZWxsT3JkZXIudHhJZH0pLGF3YWl0IGFwaS5kYi5yZW1vdmUoInNlbGxCb29rIixzZWxsT3JkZXIpKTtjb25zdCB0b2tlbnNUb1VubG9jaz1hcGkuQmlnTnVtYmVyKGJ1eU9yZGVyLnRva2Vuc0xvY2tlZCkubWludXMocXR5VG9rZW5zVG9TZW5kKS50b0ZpeGVkKDgpO2FwaS5CaWdOdW1iZXIodG9rZW5zVG9VbmxvY2spLmd0KDApJiZhd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoYWNjb3VudCwiU1dBUC5ISVZFIix0b2tlbnNUb1VubG9jaywidXNlciIpLGF3YWl0IHVwZGF0ZVRyYWRlc0hpc3RvcnkoImJ1eSIsYWNjb3VudCxzZWxsT3JkZXIuYWNjb3VudCxzeW1ib2wsYnV5T3JkZXIucXVhbnRpdHksc2VsbE9yZGVyLnByaWNlLHF0eVRva2Vuc1RvU2VuZCxidXlPcmRlci50eElkLHNlbGxPcmRlci50eElkKSx2b2x1bWVUcmFkZWQ9YXBpLkJpZ051bWJlcih2b2x1bWVUcmFkZWQpLnBsdXMocXR5VG9rZW5zVG9TZW5kKSxidXlPcmRlci5xdWFudGl0eT0iMCIsYXdhaXQgYXBpLmRiLnJlbW92ZSgiYnV5Qm9vayIsYnV5T3JkZXIpLGFwaS5lbWl0KCJvcmRlckNsb3NlZCIse2FjY291bnQ6YnV5T3JkZXIuYWNjb3VudCx0eXBlOiJidXkiLHR4SWQ6YnV5T3JkZXIudHhJZH0pfX1lbHNle2xldCBxdHlUb2tlbnNUb1NlbmQ9YXBpLkJpZ051bWJlcihzZWxsT3JkZXIucHJpY2UpLm11bHRpcGxpZWRCeShzZWxsT3JkZXIucXVhbnRpdHkpLnRvRml4ZWQoOCk7aWYoYXBpLkJpZ051bWJlcihxdHlUb2tlbnNUb1NlbmQpLmd0KGJ1eU9yZGVyLnRva2Vuc0xvY2tlZCkmJihxdHlUb2tlbnNUb1NlbmQ9YXBpLkJpZ051bWJlcihzZWxsT3JkZXIucHJpY2UpLm11bHRpcGxpZWRCeShzZWxsT3JkZXIucXVhbnRpdHkpLnRvRml4ZWQoOCxhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pKSxhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIocXR5VG9rZW5zVG9TZW5kKS5ndCgwKSYmYXBpLkJpZ051bWJlcihidXlPcmRlci5xdWFudGl0eSkuZ3QoMCksInRoZSBvcmRlciBjYW5ub3QgYmUgZmlsbGVkIikpe2xldCByZXM9YXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGFjY291bnQsc3ltYm9sLHNlbGxPcmRlci5xdWFudGl0eSwidXNlciIpO3Jlcy5lcnJvcnMmJihhcGkuZGVidWcocmVzLmVycm9ycyksYXBpLmRlYnVnKCJUWElEOiAiK2FwaS50cmFuc2FjdGlvbklkKSxhcGkuZGVidWcoYWNjb3VudCksYXBpLmRlYnVnKHN5bWJvbCksYXBpLmRlYnVnKHNlbGxPcmRlci5xdWFudGl0eSkpLHJlcz1hd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoc2VsbE9yZGVyLmFjY291bnQsIlNXQVAuSElWRSIscXR5VG9rZW5zVG9TZW5kLCJ1c2VyIikscmVzLmVycm9ycyYmKGFwaS5kZWJ1ZyhyZXMuZXJyb3JzKSxhcGkuZGVidWcoIlRYSUQ6ICIrYXBpLnRyYW5zYWN0aW9uSWQpLGFwaS5kZWJ1ZyhzZWxsT3JkZXIuYWNjb3VudCksYXBpLmRlYnVnKCJTV0FQLkhJVkUiKSxhcGkuZGVidWcocXR5VG9rZW5zVG9TZW5kKSksYXdhaXQgYXBpLmRiLnJlbW92ZSgic2VsbEJvb2siLHNlbGxPcmRlciksYXBpLmVtaXQoIm9yZGVyQ2xvc2VkIix7YWNjb3VudDpzZWxsT3JkZXIuYWNjb3VudCx0eXBlOiJzZWxsIix0eElkOnNlbGxPcmRlci50eElkfSksYnV5T3JkZXIudG9rZW5zTG9ja2VkPWFwaS5CaWdOdW1iZXIoYnV5T3JkZXIudG9rZW5zTG9ja2VkKS5taW51cyhxdHlUb2tlbnNUb1NlbmQpLnRvRml4ZWQoOCksYnV5T3JkZXIucXVhbnRpdHk9YXBpLkJpZ051bWJlcihidXlPcmRlci5xdWFudGl0eSkubWludXMoc2VsbE9yZGVyLnF1YW50aXR5KS50b0ZpeGVkKHRva2VuUHJlY2lzaW9uKTtjb25zdCBuYlRva2Vuc1RvRmlsbE9yZGVyPWFwaS5CaWdOdW1iZXIoYnV5T3JkZXIucHJpY2UpLm11bHRpcGxpZWRCeShidXlPcmRlci5xdWFudGl0eSkudG9GaXhlZCg4KTthcGkuQmlnTnVtYmVyKG5iVG9rZW5zVG9GaWxsT3JkZXIpLmx0KCIwLjAwMDAwMDAxIikmJihhd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoYWNjb3VudCwiU1dBUC5ISVZFIixidXlPcmRlci50b2tlbnNMb2NrZWQsInVzZXIiKSxidXlPcmRlci5xdWFudGl0eT0iMCIsYXdhaXQgYXBpLmRiLnJlbW92ZSgiYnV5Qm9vayIsYnV5T3JkZXIpLGFwaS5lbWl0KCJvcmRlckNsb3NlZCIse2FjY291bnQ6YnV5T3JkZXIuYWNjb3VudCx0eXBlOiJidXkiLHR4SWQ6YnV5T3JkZXIudHhJZH0pKSxhd2FpdCB1cGRhdGVUcmFkZXNIaXN0b3J5KCJidXkiLGFjY291bnQsc2VsbE9yZGVyLmFjY291bnQsc3ltYm9sLHNlbGxPcmRlci5xdWFudGl0eSxzZWxsT3JkZXIucHJpY2UscXR5VG9rZW5zVG9TZW5kLGJ1eU9yZGVyLnR4SWQsc2VsbE9yZGVyLnR4SWQpLHZvbHVtZVRyYWRlZD1hcGkuQmlnTnVtYmVyKHZvbHVtZVRyYWRlZCkucGx1cyhxdHlUb2tlbnNUb1NlbmQpfX1pbmMrPTF9b2Zmc2V0Kz0xZTMsYXBpLkJpZ051bWJlcihidXlPcmRlci5xdWFudGl0eSkuZ3QoMCkmJihzZWxsT3JkZXJCb29rPWF3YWl0IGFwaS5kYi5maW5kKCJzZWxsQm9vayIse3N5bWJvbDpzeW1ib2wscHJpY2VEZWM6eyRsdGU6cHJpY2VEZWN9fSwxZTMsb2Zmc2V0LFt7aW5kZXg6InByaWNlRGVjIixkZXNjZW5kaW5nOiExfSx7aW5kZXg6Il9pZCIsZGVzY2VuZGluZzohMX1dKSl9d2hpbGUoc2VsbE9yZGVyQm9vay5sZW5ndGg+MCYmYXBpLkJpZ051bWJlcihidXlPcmRlci5xdWFudGl0eSkuZ3QoMCkpO2FwaS5CaWdOdW1iZXIoYnV5T3JkZXIucXVhbnRpdHkpLmd0KDApJiZhd2FpdCBhcGkuZGIudXBkYXRlKCJidXlCb29rIixidXlPcmRlciksYXBpLkJpZ051bWJlcih2b2x1bWVUcmFkZWQpLmd0KDApJiZhd2FpdCB1cGRhdGVWb2x1bWVNZXRyaWMoc3ltYm9sLHZvbHVtZVRyYWRlZCksYXdhaXQgdXBkYXRlQXNrTWV0cmljKHN5bWJvbCksYXdhaXQgdXBkYXRlQmlkTWV0cmljKHN5bWJvbCl9LGZpbmRNYXRjaGluZ0J1eU9yZGVycz1hc3luYyhvcmRlcix0b2tlblByZWNpc2lvbik9Pntjb25zdHthY2NvdW50OmFjY291bnQsc3ltYm9sOnN5bWJvbCxwcmljZURlYzpwcmljZURlY309b3JkZXIsc2VsbE9yZGVyPW9yZGVyO2xldCBvZmZzZXQ9MCx2b2x1bWVUcmFkZWQ9MDthd2FpdCByZW1vdmVFeHBpcmVkT3JkZXJzKCJidXlCb29rIik7bGV0IGJ1eU9yZGVyQm9vaz1hd2FpdCBhcGkuZGIuZmluZCgiYnV5Qm9vayIse3N5bWJvbDpzeW1ib2wscHJpY2VEZWM6eyRndGU6cHJpY2VEZWN9fSwxZTMsb2Zmc2V0LFt7aW5kZXg6InByaWNlRGVjIixkZXNjZW5kaW5nOiEwfSx7aW5kZXg6Il9pZCIsZGVzY2VuZGluZzohMX1dKTtkb3tjb25zdCBuYk9yZGVycz1idXlPcmRlckJvb2subGVuZ3RoO2xldCBpbmM9MDtmb3IoO2luYzxuYk9yZGVycyYmYXBpLkJpZ051bWJlcihzZWxsT3JkZXIucXVhbnRpdHkpLmd0KDApOyl7Y29uc3QgYnV5T3JkZXI9YnV5T3JkZXJCb29rW2luY107aWYoYXBpLkJpZ051bWJlcihzZWxsT3JkZXIucXVhbnRpdHkpLmx0ZShidXlPcmRlci5xdWFudGl0eSkpe2xldCBxdHlUb2tlbnNUb1NlbmQ9YXBpLkJpZ051bWJlcihidXlPcmRlci5wcmljZSkubXVsdGlwbGllZEJ5KHNlbGxPcmRlci5xdWFudGl0eSkudG9GaXhlZCg4KTtpZihhcGkuQmlnTnVtYmVyKHF0eVRva2Vuc1RvU2VuZCkuZ3QoYnV5T3JkZXIudG9rZW5zTG9ja2VkKSYmKHF0eVRva2Vuc1RvU2VuZD1hcGkuQmlnTnVtYmVyKGJ1eU9yZGVyLnByaWNlKS5tdWx0aXBsaWVkQnkoc2VsbE9yZGVyLnF1YW50aXR5KS50b0ZpeGVkKDgsYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSksYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHF0eVRva2Vuc1RvU2VuZCkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIoc2VsbE9yZGVyLnF1YW50aXR5KS5ndCgwKSwidGhlIG9yZGVyIGNhbm5vdCBiZSBmaWxsZWQiKSl7bGV0IHJlcz1hd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoYnV5T3JkZXIuYWNjb3VudCxzeW1ib2wsc2VsbE9yZGVyLnF1YW50aXR5LCJ1c2VyIik7cmVzLmVycm9ycyYmKGFwaS5kZWJ1ZyhyZXMuZXJyb3JzKSxhcGkuZGVidWcoIlRYSUQ6ICIrYXBpLnRyYW5zYWN0aW9uSWQpLGFwaS5kZWJ1ZyhidXlPcmRlci5hY2NvdW50KSxhcGkuZGVidWcoc3ltYm9sKSxhcGkuZGVidWcoc2VsbE9yZGVyLnF1YW50aXR5KSkscmVzPWF3YWl0IGFwaS50cmFuc2ZlclRva2VucyhhY2NvdW50LCJTV0FQLkhJVkUiLHF0eVRva2Vuc1RvU2VuZCwidXNlciIpLHJlcy5lcnJvcnMmJihhcGkuZGVidWcocmVzLmVycm9ycyksYXBpLmRlYnVnKCJUWElEOiAiK2FwaS50cmFuc2FjdGlvbklkKSxhcGkuZGVidWcoYWNjb3VudCksYXBpLmRlYnVnKCJTV0FQLkhJVkUiKSxhcGkuZGVidWcocXR5VG9rZW5zVG9TZW5kKSk7Y29uc3QgcXR5TGVmdEJ1eU9yZGVyPWFwaS5CaWdOdW1iZXIoYnV5T3JkZXIucXVhbnRpdHkpLm1pbnVzKHNlbGxPcmRlci5xdWFudGl0eSkudG9GaXhlZCh0b2tlblByZWNpc2lvbiksYnV5T3JkZXJ0b2tlbnNMb2NrZWQ9YXBpLkJpZ051bWJlcihidXlPcmRlci50b2tlbnNMb2NrZWQpLm1pbnVzKHF0eVRva2Vuc1RvU2VuZCkudG9GaXhlZCg4KSxuYlRva2Vuc1RvRmlsbE9yZGVyPWFwaS5CaWdOdW1iZXIoYnV5T3JkZXIucHJpY2UpLm11bHRpcGxpZWRCeShxdHlMZWZ0QnV5T3JkZXIpLnRvRml4ZWQoOCk7YXBpLkJpZ051bWJlcihxdHlMZWZ0QnV5T3JkZXIpLmd0KDApJiZhcGkuQmlnTnVtYmVyKG5iVG9rZW5zVG9GaWxsT3JkZXIpLmd0ZSgiMC4wMDAwMDAwMSIpPyhidXlPcmRlci5xdWFudGl0eT1xdHlMZWZ0QnV5T3JkZXIsYnV5T3JkZXIudG9rZW5zTG9ja2VkPWJ1eU9yZGVydG9rZW5zTG9ja2VkLGF3YWl0IGFwaS5kYi51cGRhdGUoImJ1eUJvb2siLGJ1eU9yZGVyKSk6KGFwaS5CaWdOdW1iZXIoYnV5T3JkZXJ0b2tlbnNMb2NrZWQpLmd0KDApJiZhd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoYnV5T3JkZXIuYWNjb3VudCwiU1dBUC5ISVZFIixidXlPcmRlcnRva2Vuc0xvY2tlZCwidXNlciIpLGFwaS5lbWl0KCJvcmRlckNsb3NlZCIse2FjY291bnQ6YnV5T3JkZXIuYWNjb3VudCx0eXBlOiJidXkiLHR4SWQ6YnV5T3JkZXIudHhJZH0pLGF3YWl0IGFwaS5kYi5yZW1vdmUoImJ1eUJvb2siLGJ1eU9yZGVyKSksYXdhaXQgdXBkYXRlVHJhZGVzSGlzdG9yeSgic2VsbCIsYnV5T3JkZXIuYWNjb3VudCxhY2NvdW50LHN5bWJvbCxzZWxsT3JkZXIucXVhbnRpdHksYnV5T3JkZXIucHJpY2UscXR5VG9rZW5zVG9TZW5kLGJ1eU9yZGVyLnR4SWQsc2VsbE9yZGVyLnR4SWQpLHZvbHVtZVRyYWRlZD1hcGkuQmlnTnVtYmVyKHZvbHVtZVRyYWRlZCkucGx1cyhxdHlUb2tlbnNUb1NlbmQpLHNlbGxPcmRlci5xdWFudGl0eT0wLGF3YWl0IGFwaS5kYi5yZW1vdmUoInNlbGxCb29rIixzZWxsT3JkZXIpLGFwaS5lbWl0KCJvcmRlckNsb3NlZCIse2FjY291bnQ6c2VsbE9yZGVyLmFjY291bnQsdHlwZToic2VsbCIsdHhJZDpzZWxsT3JkZXIudHhJZH0pfX1lbHNle2xldCBxdHlUb2tlbnNUb1NlbmQ9YXBpLkJpZ051bWJlcihidXlPcmRlci5wcmljZSkubXVsdGlwbGllZEJ5KGJ1eU9yZGVyLnF1YW50aXR5KS50b0ZpeGVkKDgpO2lmKHF0eVRva2Vuc1RvU2VuZD5idXlPcmRlci50b2tlbnNMb2NrZWQmJihxdHlUb2tlbnNUb1NlbmQ9YXBpLkJpZ051bWJlcihidXlPcmRlci5wcmljZSkubXVsdGlwbGllZEJ5KGJ1eU9yZGVyLnF1YW50aXR5KS50b0ZpeGVkKDgsYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSksYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHF0eVRva2Vuc1RvU2VuZCkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIoc2VsbE9yZGVyLnF1YW50aXR5KS5ndCgwKSwidGhlIG9yZGVyIGNhbm5vdCBiZSBmaWxsZWQiKSl7bGV0IHJlcz1hd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoYnV5T3JkZXIuYWNjb3VudCxzeW1ib2wsYnV5T3JkZXIucXVhbnRpdHksInVzZXIiKTtyZXMuZXJyb3JzJiYoYXBpLmRlYnVnKHJlcy5lcnJvcnMpLGFwaS5kZWJ1ZygiVFhJRDogIithcGkudHJhbnNhY3Rpb25JZCksYXBpLmRlYnVnKGJ1eU9yZGVyLmFjY291bnQpLGFwaS5kZWJ1ZyhzeW1ib2wpLGFwaS5kZWJ1ZyhidXlPcmRlci5xdWFudGl0eSkpLHJlcz1hd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoYWNjb3VudCwiU1dBUC5ISVZFIixxdHlUb2tlbnNUb1NlbmQsInVzZXIiKSxyZXMuZXJyb3JzJiYoYXBpLmRlYnVnKHJlcy5lcnJvcnMpLGFwaS5kZWJ1ZygiVFhJRDogIithcGkudHJhbnNhY3Rpb25JZCksYXBpLmRlYnVnKGFjY291bnQpLGFwaS5kZWJ1ZygiU1dBUC5ISVZFIiksYXBpLmRlYnVnKHF0eVRva2Vuc1RvU2VuZCkpO2NvbnN0IGJ1eU9yZGVydG9rZW5zTG9ja2VkPWFwaS5CaWdOdW1iZXIoYnV5T3JkZXIudG9rZW5zTG9ja2VkKS5taW51cyhxdHlUb2tlbnNUb1NlbmQpLnRvRml4ZWQoOCk7YXBpLkJpZ051bWJlcihidXlPcmRlcnRva2Vuc0xvY2tlZCkuZ3QoMCkmJmF3YWl0IGFwaS50cmFuc2ZlclRva2VucyhidXlPcmRlci5hY2NvdW50LCJTV0FQLkhJVkUiLGJ1eU9yZGVydG9rZW5zTG9ja2VkLCJ1c2VyIiksYXdhaXQgYXBpLmRiLnJlbW92ZSgiYnV5Qm9vayIsYnV5T3JkZXIpLGFwaS5lbWl0KCJvcmRlckNsb3NlZCIse2FjY291bnQ6YnV5T3JkZXIuYWNjb3VudCx0eXBlOiJidXkiLHR4SWQ6YnV5T3JkZXIudHhJZH0pLHNlbGxPcmRlci5xdWFudGl0eT1hcGkuQmlnTnVtYmVyKHNlbGxPcmRlci5xdWFudGl0eSkubWludXMoYnV5T3JkZXIucXVhbnRpdHkpLnRvRml4ZWQodG9rZW5QcmVjaXNpb24pO2NvbnN0IG5iVG9rZW5zVG9GaWxsT3JkZXI9YXBpLkJpZ051bWJlcihzZWxsT3JkZXIucHJpY2UpLm11bHRpcGxpZWRCeShzZWxsT3JkZXIucXVhbnRpdHkpLnRvRml4ZWQoOCk7YXBpLkJpZ051bWJlcihuYlRva2Vuc1RvRmlsbE9yZGVyKS5sdCgiMC4wMDAwMDAwMSIpJiYoYXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGFjY291bnQsc3ltYm9sLHNlbGxPcmRlci5xdWFudGl0eSwidXNlciIpLHNlbGxPcmRlci5xdWFudGl0eT0iMCIsYXdhaXQgYXBpLmRiLnJlbW92ZSgic2VsbEJvb2siLHNlbGxPcmRlciksYXBpLmVtaXQoIm9yZGVyQ2xvc2VkIix7YWNjb3VudDpzZWxsT3JkZXIuYWNjb3VudCx0eXBlOiJzZWxsIix0eElkOnNlbGxPcmRlci50eElkfSkpLGF3YWl0IHVwZGF0ZVRyYWRlc0hpc3RvcnkoInNlbGwiLGJ1eU9yZGVyLmFjY291bnQsYWNjb3VudCxzeW1ib2wsYnV5T3JkZXIucXVhbnRpdHksYnV5T3JkZXIucHJpY2UscXR5VG9rZW5zVG9TZW5kLGJ1eU9yZGVyLnR4SWQsc2VsbE9yZGVyLnR4SWQpLHZvbHVtZVRyYWRlZD1hcGkuQmlnTnVtYmVyKHZvbHVtZVRyYWRlZCkucGx1cyhxdHlUb2tlbnNUb1NlbmQpfX1pbmMrPTF9b2Zmc2V0Kz0xZTMsYXBpLkJpZ051bWJlcihzZWxsT3JkZXIucXVhbnRpdHkpLmd0KDApJiYoYnV5T3JkZXJCb29rPWF3YWl0IGFwaS5kYi5maW5kKCJidXlCb29rIix7c3ltYm9sOnN5bWJvbCxwcmljZURlYzp7JGd0ZTpwcmljZURlY319LDFlMyxvZmZzZXQsW3tpbmRleDoicHJpY2VEZWMiLGRlc2NlbmRpbmc6ITB9LHtpbmRleDoiX2lkIixkZXNjZW5kaW5nOiExfV0pKX13aGlsZShidXlPcmRlckJvb2subGVuZ3RoPjAmJmFwaS5CaWdOdW1iZXIoc2VsbE9yZGVyLnF1YW50aXR5KS5ndCgwKSk7YXBpLkJpZ051bWJlcihzZWxsT3JkZXIucXVhbnRpdHkpLmd0KDApJiZhd2FpdCBhcGkuZGIudXBkYXRlKCJzZWxsQm9vayIsc2VsbE9yZGVyKSxhcGkuQmlnTnVtYmVyKHZvbHVtZVRyYWRlZCkuZ3QoMCkmJmF3YWl0IHVwZGF0ZVZvbHVtZU1ldHJpYyhzeW1ib2wsdm9sdW1lVHJhZGVkKSxhd2FpdCB1cGRhdGVBc2tNZXRyaWMoc3ltYm9sKSxhd2FpdCB1cGRhdGVCaWRNZXRyaWMoc3ltYm9sKX07YWN0aW9ucy5idXk9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wscXVhbnRpdHk6cXVhbnRpdHkscHJpY2U6cHJpY2UsZXhwaXJhdGlvbjpleHBpcmF0aW9uLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmFwaS5hc3NlcnQocHJpY2UmJiJzdHJpbmciPT10eXBlb2YgcHJpY2UmJiFhcGkuQmlnTnVtYmVyKHByaWNlKS5pc05hTigpJiZzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sJiYiU1dBUC5ISVZFIiE9PXN5bWJvbCYmcXVhbnRpdHkmJiJzdHJpbmciPT10eXBlb2YgcXVhbnRpdHkmJiFhcGkuQmlnTnVtYmVyKHF1YW50aXR5KS5pc05hTigpJiYodm9pZCAwPT09ZXhwaXJhdGlvbnx8ZXhwaXJhdGlvbiYmTnVtYmVyLmlzSW50ZWdlcihleHBpcmF0aW9uKSYmZXhwaXJhdGlvbj4wKSwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6c3ltYm9sfSk7aWYoYXBpLmFzc2VydCh0b2tlbiYmYXBpLkJpZ051bWJlcihwcmljZSkuZ3QoMCkmJmNvdW50RGVjaW1hbHMocHJpY2UpPD04JiZjb3VudERlY2ltYWxzKHF1YW50aXR5KTw9dG9rZW4ucHJlY2lzaW9uLCJpbnZhbGlkIHBhcmFtcyIpKXtjb25zdCBuYlRva2Vuc1RvTG9jaz1hcGkuQmlnTnVtYmVyKHByaWNlKS5tdWx0aXBsaWVkQnkocXVhbnRpdHkpLnRvRml4ZWQoOCk7aWYoYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKG5iVG9rZW5zVG9Mb2NrKS5ndGUoIjAuMDAwMDAwMDEiKSwib3JkZXIgY2Fubm90IGJlIHBsYWNlZCBhcyBpdCBjYW5ub3QgYmUgZmlsbGVkIikpe2NvbnN0IHJlcz1hd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyVG9Db250cmFjdCIse3N5bWJvbDoiU1dBUC5ISVZFIixxdWFudGl0eTpuYlRva2Vuc1RvTG9jayx0bzoibWFya2V0In0pO2lmKHZvaWQgMD09PXJlcy5lcnJvcnMmJnJlcy5ldmVudHMmJnZvaWQgMCE9PXJlcy5ldmVudHMuZmluZChlbD0+InRva2VucyI9PT1lbC5jb250cmFjdCYmInRyYW5zZmVyVG9Db250cmFjdCI9PT1lbC5ldmVudCYmZWwuZGF0YS5mcm9tPT09YXBpLnNlbmRlciYmIm1hcmtldCI9PT1lbC5kYXRhLnRvJiZlbC5kYXRhLnF1YW50aXR5PT09bmJUb2tlbnNUb0xvY2smJiJTV0FQLkhJVkUiPT09ZWwuZGF0YS5zeW1ib2wpKXtjb25zdCB0aW1lc3RhbXBTZWM9YXBpLkJpZ051bWJlcihuZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpLmdldFRpbWUoKSkuZGl2aWRlZEJ5KDFlMykudG9OdW1iZXIoKSxvcmRlcj17fTtvcmRlci50eElkPWFwaS50cmFuc2FjdGlvbklkLG9yZGVyLnRpbWVzdGFtcD10aW1lc3RhbXBTZWMsb3JkZXIuYWNjb3VudD1hcGkuc2VuZGVyLG9yZGVyLnN5bWJvbD1zeW1ib2wsb3JkZXIucXVhbnRpdHk9YXBpLkJpZ051bWJlcihxdWFudGl0eSkudG9GaXhlZCh0b2tlbi5wcmVjaXNpb24pLG9yZGVyLnByaWNlPWFwaS5CaWdOdW1iZXIocHJpY2UpLnRvRml4ZWQoOCksb3JkZXIucHJpY2VEZWM9eyRudW1iZXJEZWNpbWFsOm9yZGVyLnByaWNlfSxvcmRlci50b2tlbnNMb2NrZWQ9bmJUb2tlbnNUb0xvY2ssb3JkZXIuZXhwaXJhdGlvbj12b2lkIDA9PT1leHBpcmF0aW9ufHxleHBpcmF0aW9uPjI1OTJlMz90aW1lc3RhbXBTZWMrMjU5MmUzOnRpbWVzdGFtcFNlYytleHBpcmF0aW9uO2NvbnN0IG9yZGVySW5EYj1hd2FpdCBhcGkuZGIuaW5zZXJ0KCJidXlCb29rIixvcmRlcik7YXdhaXQgZmluZE1hdGNoaW5nU2VsbE9yZGVycyhvcmRlckluRGIsdG9rZW4ucHJlY2lzaW9uKX19fX19LGFjdGlvbnMuc2VsbD1hc3luYyBwYXlsb2FkPT57Y29uc3R7c3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eSxwcmljZTpwcmljZSxleHBpcmF0aW9uOmV4cGlyYXRpb24saXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZihhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydChwcmljZSYmInN0cmluZyI9PXR5cGVvZiBwcmljZSYmIWFwaS5CaWdOdW1iZXIocHJpY2UpLmlzTmFOKCkmJnN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wmJiJTV0FQLkhJVkUiIT09c3ltYm9sJiZxdWFudGl0eSYmInN0cmluZyI9PXR5cGVvZiBxdWFudGl0eSYmIWFwaS5CaWdOdW1iZXIocXVhbnRpdHkpLmlzTmFOKCkmJih2b2lkIDA9PT1leHBpcmF0aW9ufHxleHBpcmF0aW9uJiZOdW1iZXIuaXNJbnRlZ2VyKGV4cGlyYXRpb24pJiZleHBpcmF0aW9uPjApLCJpbnZhbGlkIHBhcmFtcyIpKXtjb25zdCB0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTtpZihhcGkuYXNzZXJ0KHRva2VuJiZhcGkuQmlnTnVtYmVyKHByaWNlKS5ndCgwKSYmY291bnREZWNpbWFscyhwcmljZSk8PTgmJmNvdW50RGVjaW1hbHMocXVhbnRpdHkpPD10b2tlbi5wcmVjaXNpb24sImludmFsaWQgcGFyYW1zIikpe2NvbnN0IG5iVG9rZW5zVG9GaWxsT3JkZXI9YXBpLkJpZ051bWJlcihwcmljZSkubXVsdGlwbGllZEJ5KHF1YW50aXR5KS50b0ZpeGVkKDgpO2lmKGFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihuYlRva2Vuc1RvRmlsbE9yZGVyKS5ndGUoIjAuMDAwMDAwMDEiKSwib3JkZXIgY2Fubm90IGJlIHBsYWNlZCBhcyBpdCBjYW5ub3QgYmUgZmlsbGVkIikpe2NvbnN0IHJlcz1hd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyVG9Db250cmFjdCIse3N5bWJvbDpzeW1ib2wscXVhbnRpdHk6cXVhbnRpdHksdG86Im1hcmtldCJ9KTtpZih2b2lkIDA9PT1yZXMuZXJyb3JzJiZyZXMuZXZlbnRzJiZ2b2lkIDAhPT1yZXMuZXZlbnRzLmZpbmQoZWw9PiJ0b2tlbnMiPT09ZWwuY29udHJhY3QmJiJ0cmFuc2ZlclRvQ29udHJhY3QiPT09ZWwuZXZlbnQmJmVsLmRhdGEuZnJvbT09PWFwaS5zZW5kZXImJiJtYXJrZXQiPT09ZWwuZGF0YS50byYmZWwuZGF0YS5xdWFudGl0eT09PXF1YW50aXR5JiZlbC5kYXRhLnN5bWJvbD09PXN5bWJvbCkpe2NvbnN0IHRpbWVzdGFtcFNlYz1hcGkuQmlnTnVtYmVyKG5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIikuZ2V0VGltZSgpKS5kaXZpZGVkQnkoMWUzKS50b051bWJlcigpLG9yZGVyPXt9O29yZGVyLnR4SWQ9YXBpLnRyYW5zYWN0aW9uSWQsb3JkZXIudGltZXN0YW1wPXRpbWVzdGFtcFNlYyxvcmRlci5hY2NvdW50PWFwaS5zZW5kZXIsb3JkZXIuc3ltYm9sPXN5bWJvbCxvcmRlci5xdWFudGl0eT1hcGkuQmlnTnVtYmVyKHF1YW50aXR5KS50b0ZpeGVkKHRva2VuLnByZWNpc2lvbiksb3JkZXIucHJpY2U9YXBpLkJpZ051bWJlcihwcmljZSkudG9GaXhlZCg4KSxvcmRlci5wcmljZURlYz17JG51bWJlckRlY2ltYWw6b3JkZXIucHJpY2V9LG9yZGVyLmV4cGlyYXRpb249dm9pZCAwPT09ZXhwaXJhdGlvbnx8ZXhwaXJhdGlvbj4yNTkyZTM/dGltZXN0YW1wU2VjKzI1OTJlMzp0aW1lc3RhbXBTZWMrZXhwaXJhdGlvbjtjb25zdCBvcmRlckluRGI9YXdhaXQgYXBpLmRiLmluc2VydCgic2VsbEJvb2siLG9yZGVyKTthd2FpdCBmaW5kTWF0Y2hpbmdCdXlPcmRlcnMob3JkZXJJbkRiLHRva2VuLnByZWNpc2lvbil9fX19fSxhY3Rpb25zLm1hcmtldEJ1eT1hc3luYyBwYXlsb2FkPT57Y29uc3R7c3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eSxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sJiYiU1dBUC5ISVZFIiE9PXN5bWJvbCYmcXVhbnRpdHkmJiJzdHJpbmciPT10eXBlb2YgcXVhbnRpdHkmJiFhcGkuQmlnTnVtYmVyKHF1YW50aXR5KS5pc05hTigpJiZhcGkuQmlnTnVtYmVyKHF1YW50aXR5KS5ndCgwKSl7Y29uc3QgdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6c3ltYm9sfSk7aWYoYXBpLmFzc2VydCh0b2tlbiYmY291bnREZWNpbWFscyhxdWFudGl0eSk8PTgsImludmFsaWQgcGFyYW1zIikpe2NvbnN0IHJlc3VsdD1hd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyVG9Db250cmFjdCIse3N5bWJvbDoiU1dBUC5ISVZFIixxdWFudGl0eTpxdWFudGl0eSx0bzoibWFya2V0In0pO2lmKHZvaWQgMD09PXJlc3VsdC5lcnJvcnMmJnJlc3VsdC5ldmVudHMmJnZvaWQgMCE9PXJlc3VsdC5ldmVudHMuZmluZChlbD0+InRva2VucyI9PT1lbC5jb250cmFjdCYmInRyYW5zZmVyVG9Db250cmFjdCI9PT1lbC5ldmVudCYmZWwuZGF0YS5mcm9tPT09YXBpLnNlbmRlciYmIm1hcmtldCI9PT1lbC5kYXRhLnRvJiZlbC5kYXRhLnF1YW50aXR5PT09cXVhbnRpdHkmJiJTV0FQLkhJVkUiPT09ZWwuZGF0YS5zeW1ib2wpKXtsZXQgaGl2ZVJlbWFpbmluZz1xdWFudGl0eSxvZmZzZXQ9MCx2b2x1bWVUcmFkZWQ9MDthd2FpdCByZW1vdmVFeHBpcmVkT3JkZXJzKCJzZWxsQm9vayIpO2xldCBzZWxsT3JkZXJCb29rPWF3YWl0IGFwaS5kYi5maW5kKCJzZWxsQm9vayIse3N5bWJvbDpzeW1ib2x9LDFlMyxvZmZzZXQsW3tpbmRleDoicHJpY2VEZWMiLGRlc2NlbmRpbmc6ITF9LHtpbmRleDoiX2lkIixkZXNjZW5kaW5nOiExfV0pO2Rve2NvbnN0IG5iT3JkZXJzPXNlbGxPcmRlckJvb2subGVuZ3RoO2xldCBpbmM9MDtmb3IoO2luYzxuYk9yZGVycyYmYXBpLkJpZ051bWJlcihoaXZlUmVtYWluaW5nKS5ndCgwKTspe2NvbnN0IHNlbGxPcmRlcj1zZWxsT3JkZXJCb29rW2luY10scXR5VG9rZW5zVG9TZW5kPWFwaS5CaWdOdW1iZXIoaGl2ZVJlbWFpbmluZykuZGl2aWRlZEJ5KHNlbGxPcmRlci5wcmljZSkudG9GaXhlZCh0b2tlbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKTtpZihhcGkuQmlnTnVtYmVyKHF0eVRva2Vuc1RvU2VuZCkubHRlKHNlbGxPcmRlci5xdWFudGl0eSkmJmFwaS5CaWdOdW1iZXIocXR5VG9rZW5zVG9TZW5kKS5ndCgwKSl7aWYoYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHF0eVRva2Vuc1RvU2VuZCkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIoaGl2ZVJlbWFpbmluZykuZ3QoMCksInRoZSBvcmRlciBjYW5ub3QgYmUgZmlsbGVkIikpe2xldCByZXM9YXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGFwaS5zZW5kZXIsc3ltYm9sLHF0eVRva2Vuc1RvU2VuZCwidXNlciIpO3Jlcy5lcnJvcnMmJihhcGkuZGVidWcocmVzLmVycm9ycyksYXBpLmRlYnVnKCJUWElEOiAiK2FwaS50cmFuc2FjdGlvbklkKSxhcGkuZGVidWcoYXBpLnNlbmRlciksYXBpLmRlYnVnKHN5bWJvbCksYXBpLmRlYnVnKHF0eVRva2Vuc1RvU2VuZCkpLHJlcz1hd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoc2VsbE9yZGVyLmFjY291bnQsIlNXQVAuSElWRSIsaGl2ZVJlbWFpbmluZywidXNlciIpLHJlcy5lcnJvcnMmJihhcGkuZGVidWcocmVzLmVycm9ycyksYXBpLmRlYnVnKCJUWElEOiAiK2FwaS50cmFuc2FjdGlvbklkKSxhcGkuZGVidWcoc2VsbE9yZGVyLmFjY291bnQpLGFwaS5kZWJ1ZygiU1dBUC5ISVZFIiksYXBpLmRlYnVnKGhpdmVSZW1haW5pbmcpKTtjb25zdCBxdHlMZWZ0U2VsbE9yZGVyPWFwaS5CaWdOdW1iZXIoc2VsbE9yZGVyLnF1YW50aXR5KS5taW51cyhxdHlUb2tlbnNUb1NlbmQpLnRvRml4ZWQodG9rZW4ucHJlY2lzaW9uKSxuYlRva2Vuc1RvRmlsbE9yZGVyPWFwaS5CaWdOdW1iZXIoc2VsbE9yZGVyLnByaWNlKS5tdWx0aXBsaWVkQnkocXR5TGVmdFNlbGxPcmRlcikudG9GaXhlZCg4KTthcGkuQmlnTnVtYmVyKHF0eUxlZnRTZWxsT3JkZXIpLmd0KDApJiZhcGkuQmlnTnVtYmVyKG5iVG9rZW5zVG9GaWxsT3JkZXIpLmd0ZSgiMC4wMDAwMDAwMSIpPyhzZWxsT3JkZXIucXVhbnRpdHk9cXR5TGVmdFNlbGxPcmRlcixhd2FpdCBhcGkuZGIudXBkYXRlKCJzZWxsQm9vayIsc2VsbE9yZGVyKSk6KGFwaS5CaWdOdW1iZXIocXR5TGVmdFNlbGxPcmRlcikuZ3QoMCkmJmF3YWl0IGFwaS50cmFuc2ZlclRva2VucyhzZWxsT3JkZXIuYWNjb3VudCxzeW1ib2wscXR5TGVmdFNlbGxPcmRlciwidXNlciIpLGF3YWl0IGFwaS5kYi5yZW1vdmUoInNlbGxCb29rIixzZWxsT3JkZXIpKSxhd2FpdCB1cGRhdGVUcmFkZXNIaXN0b3J5KCJidXkiLGFwaS5zZW5kZXIsc2VsbE9yZGVyLmFjY291bnQsc3ltYm9sLHF0eVRva2Vuc1RvU2VuZCxzZWxsT3JkZXIucHJpY2UsaGl2ZVJlbWFpbmluZyxhcGkudHJhbnNhY3Rpb25JZCxzZWxsT3JkZXIudHhJZCksdm9sdW1lVHJhZGVkPWFwaS5CaWdOdW1iZXIodm9sdW1lVHJhZGVkKS5wbHVzKGhpdmVSZW1haW5pbmcpLGhpdmVSZW1haW5pbmc9IjAifX1lbHNlIGlmKGFwaS5CaWdOdW1iZXIocXR5VG9rZW5zVG9TZW5kKS5ndCgwKSl7bGV0IHF0eUhpdmVUb1NlbmQ9YXBpLkJpZ051bWJlcihzZWxsT3JkZXIucHJpY2UpLm11bHRpcGxpZWRCeShzZWxsT3JkZXIucXVhbnRpdHkpLnRvRml4ZWQoOCk7aWYoYXBpLkJpZ051bWJlcihxdHlIaXZlVG9TZW5kKS5ndChoaXZlUmVtYWluaW5nKSYmKHF0eUhpdmVUb1NlbmQ9YXBpLkJpZ051bWJlcihzZWxsT3JkZXIucHJpY2UpLm11bHRpcGxpZWRCeShzZWxsT3JkZXIucXVhbnRpdHkpLnRvRml4ZWQoOCxhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pKSxhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIocXR5SGl2ZVRvU2VuZCkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIoaGl2ZVJlbWFpbmluZykuZ3QoMCksInRoZSBvcmRlciBjYW5ub3QgYmUgZmlsbGVkIikpe2xldCByZXM9YXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGFwaS5zZW5kZXIsc3ltYm9sLHNlbGxPcmRlci5xdWFudGl0eSwidXNlciIpO3Jlcy5lcnJvcnMmJihhcGkuZGVidWcocmVzLmVycm9ycyksYXBpLmRlYnVnKCJUWElEOiAiK2FwaS50cmFuc2FjdGlvbklkKSxhcGkuZGVidWcoYXBpLnNlbmRlciksYXBpLmRlYnVnKHN5bWJvbCksYXBpLmRlYnVnKHNlbGxPcmRlci5xdWFudGl0eSkpLHJlcz1hd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoc2VsbE9yZGVyLmFjY291bnQsIlNXQVAuSElWRSIscXR5SGl2ZVRvU2VuZCwidXNlciIpLHJlcy5lcnJvcnMmJihhcGkuZGVidWcocmVzLmVycm9ycyksYXBpLmRlYnVnKCJUWElEOiAiK2FwaS50cmFuc2FjdGlvbklkKSxhcGkuZGVidWcoc2VsbE9yZGVyLmFjY291bnQpLGFwaS5kZWJ1ZygiU1dBUC5ISVZFIiksYXBpLmRlYnVnKHF0eUhpdmVUb1NlbmQpKSxhd2FpdCBhcGkuZGIucmVtb3ZlKCJzZWxsQm9vayIsc2VsbE9yZGVyKSxoaXZlUmVtYWluaW5nPWFwaS5CaWdOdW1iZXIoaGl2ZVJlbWFpbmluZykubWludXMocXR5SGl2ZVRvU2VuZCkudG9GaXhlZCg4KSxhd2FpdCB1cGRhdGVUcmFkZXNIaXN0b3J5KCJidXkiLGFwaS5zZW5kZXIsc2VsbE9yZGVyLmFjY291bnQsc3ltYm9sLHNlbGxPcmRlci5xdWFudGl0eSxzZWxsT3JkZXIucHJpY2UscXR5SGl2ZVRvU2VuZCxhcGkudHJhbnNhY3Rpb25JZCxzZWxsT3JkZXIudHhJZCksdm9sdW1lVHJhZGVkPWFwaS5CaWdOdW1iZXIodm9sdW1lVHJhZGVkKS5wbHVzKHF0eUhpdmVUb1NlbmQpfX1pbmMrPTF9b2Zmc2V0Kz0xZTMsYXBpLkJpZ051bWJlcihoaXZlUmVtYWluaW5nKS5ndCgwKSYmKHNlbGxPcmRlckJvb2s9YXdhaXQgYXBpLmRiLmZpbmQoInNlbGxCb29rIix7c3ltYm9sOnN5bWJvbH0sMWUzLG9mZnNldCxbe2luZGV4OiJwcmljZURlYyIsZGVzY2VuZGluZzohMX0se2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSkpfXdoaWxlKHNlbGxPcmRlckJvb2subGVuZ3RoPjAmJmFwaS5CaWdOdW1iZXIoaGl2ZVJlbWFpbmluZykuZ3QoMCkpO2FwaS5CaWdOdW1iZXIoaGl2ZVJlbWFpbmluZykuZ3QoMCkmJmF3YWl0IGFwaS50cmFuc2ZlclRva2VucyhhcGkuc2VuZGVyLCJTV0FQLkhJVkUiLGhpdmVSZW1haW5pbmcsInVzZXIiKSxhcGkuQmlnTnVtYmVyKHZvbHVtZVRyYWRlZCkuZ3QoMCkmJmF3YWl0IHVwZGF0ZVZvbHVtZU1ldHJpYyhzeW1ib2wsdm9sdW1lVHJhZGVkKSxhd2FpdCB1cGRhdGVBc2tNZXRyaWMoc3ltYm9sKSxhd2FpdCB1cGRhdGVCaWRNZXRyaWMoc3ltYm9sKX19fX0sYWN0aW9ucy5tYXJrZXRTZWxsPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5LGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJnN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wmJiJTV0FQLkhJVkUiIT09c3ltYm9sJiZxdWFudGl0eSYmInN0cmluZyI9PXR5cGVvZiBxdWFudGl0eSYmIWFwaS5CaWdOdW1iZXIocXVhbnRpdHkpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIocXVhbnRpdHkpLmd0KDApKXtjb25zdCB0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTtpZihhcGkuYXNzZXJ0KHRva2VuJiZjb3VudERlY2ltYWxzKHF1YW50aXR5KTw9dG9rZW4ucHJlY2lzaW9uLCJpbnZhbGlkIHBhcmFtcyIpKXtjb25zdCByZXN1bHQ9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlclRvQ29udHJhY3QiLHtzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5LHRvOiJtYXJrZXQifSk7aWYodm9pZCAwPT09cmVzdWx0LmVycm9ycyYmcmVzdWx0LmV2ZW50cyYmdm9pZCAwIT09cmVzdWx0LmV2ZW50cy5maW5kKGVsPT4idG9rZW5zIj09PWVsLmNvbnRyYWN0JiYidHJhbnNmZXJUb0NvbnRyYWN0Ij09PWVsLmV2ZW50JiZlbC5kYXRhLmZyb209PT1hcGkuc2VuZGVyJiYibWFya2V0Ij09PWVsLmRhdGEudG8mJmVsLmRhdGEucXVhbnRpdHk9PT1xdWFudGl0eSYmZWwuZGF0YS5zeW1ib2w9PT1zeW1ib2wpKXtsZXQgdG9rZW5zUmVtYWluaW5nPXF1YW50aXR5LG9mZnNldD0wLHZvbHVtZVRyYWRlZD0wO2F3YWl0IHJlbW92ZUV4cGlyZWRPcmRlcnMoImJ1eUJvb2siKTtsZXQgYnV5T3JkZXJCb29rPWF3YWl0IGFwaS5kYi5maW5kKCJidXlCb29rIix7c3ltYm9sOnN5bWJvbH0sMWUzLG9mZnNldCxbe2luZGV4OiJwcmljZURlYyIsZGVzY2VuZGluZzohMH0se2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSk7ZG97Y29uc3QgbmJPcmRlcnM9YnV5T3JkZXJCb29rLmxlbmd0aDtsZXQgaW5jPTA7Zm9yKDtpbmM8bmJPcmRlcnMmJmFwaS5CaWdOdW1iZXIodG9rZW5zUmVtYWluaW5nKS5ndCgwKTspe2NvbnN0IGJ1eU9yZGVyPWJ1eU9yZGVyQm9va1tpbmNdO2lmKGFwaS5CaWdOdW1iZXIodG9rZW5zUmVtYWluaW5nKS5sdGUoYnV5T3JkZXIucXVhbnRpdHkpKXtsZXQgcXR5VG9rZW5zVG9TZW5kPWFwaS5CaWdOdW1iZXIoYnV5T3JkZXIucHJpY2UpLm11bHRpcGxpZWRCeSh0b2tlbnNSZW1haW5pbmcpLnRvRml4ZWQoOCk7aWYoYXBpLkJpZ051bWJlcihxdHlUb2tlbnNUb1NlbmQpLmd0KGJ1eU9yZGVyLnRva2Vuc0xvY2tlZCkmJihxdHlUb2tlbnNUb1NlbmQ9YXBpLkJpZ051bWJlcihidXlPcmRlci5wcmljZSkubXVsdGlwbGllZEJ5KHRva2Vuc1JlbWFpbmluZykudG9GaXhlZCg4LGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTikpLGFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihxdHlUb2tlbnNUb1NlbmQpLmd0KDApJiZhcGkuQmlnTnVtYmVyKHRva2Vuc1JlbWFpbmluZykuZ3QoMCksInRoZSBvcmRlciBjYW5ub3QgYmUgZmlsbGVkIikpe2xldCByZXM9YXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGJ1eU9yZGVyLmFjY291bnQsc3ltYm9sLHRva2Vuc1JlbWFpbmluZywidXNlciIpO3Jlcy5lcnJvcnMmJihhcGkuZGVidWcocmVzLmVycm9ycyksYXBpLmRlYnVnKCJUWElEOiAiK2FwaS50cmFuc2FjdGlvbklkKSxhcGkuZGVidWcoYnV5T3JkZXIuYWNjb3VudCksYXBpLmRlYnVnKHN5bWJvbCksYXBpLmRlYnVnKHRva2Vuc1JlbWFpbmluZykpLHJlcz1hd2FpdCBhcGkudHJhbnNmZXJUb2tlbnMoYXBpLnNlbmRlciwiU1dBUC5ISVZFIixxdHlUb2tlbnNUb1NlbmQsInVzZXIiKSxyZXMuZXJyb3JzJiYoYXBpLmRlYnVnKHJlcy5lcnJvcnMpLGFwaS5kZWJ1ZygiVFhJRDogIithcGkudHJhbnNhY3Rpb25JZCksYXBpLmRlYnVnKGFwaS5zZW5kZXIpLGFwaS5kZWJ1ZygiU1dBUC5ISVZFIiksYXBpLmRlYnVnKHF0eVRva2Vuc1RvU2VuZCkpO2NvbnN0IHF0eUxlZnRCdXlPcmRlcj1hcGkuQmlnTnVtYmVyKGJ1eU9yZGVyLnF1YW50aXR5KS5taW51cyh0b2tlbnNSZW1haW5pbmcpLnRvRml4ZWQodG9rZW4ucHJlY2lzaW9uKSxidXlPcmRlcnRva2Vuc0xvY2tlZD1hcGkuQmlnTnVtYmVyKGJ1eU9yZGVyLnRva2Vuc0xvY2tlZCkubWludXMocXR5VG9rZW5zVG9TZW5kKS50b0ZpeGVkKDgpLG5iVG9rZW5zVG9GaWxsT3JkZXI9YXBpLkJpZ051bWJlcihidXlPcmRlci5wcmljZSkubXVsdGlwbGllZEJ5KHF0eUxlZnRCdXlPcmRlcikudG9GaXhlZCg4KTthcGkuQmlnTnVtYmVyKHF0eUxlZnRCdXlPcmRlcikuZ3QoMCkmJmFwaS5CaWdOdW1iZXIobmJUb2tlbnNUb0ZpbGxPcmRlcikuZ3RlKCIwLjAwMDAwMDAxIik/KGJ1eU9yZGVyLnF1YW50aXR5PXF0eUxlZnRCdXlPcmRlcixidXlPcmRlci50b2tlbnNMb2NrZWQ9YnV5T3JkZXJ0b2tlbnNMb2NrZWQsYXdhaXQgYXBpLmRiLnVwZGF0ZSgiYnV5Qm9vayIsYnV5T3JkZXIpKTooYXBpLkJpZ051bWJlcihidXlPcmRlcnRva2Vuc0xvY2tlZCkuZ3QoMCkmJmF3YWl0IGFwaS50cmFuc2ZlclRva2VucyhidXlPcmRlci5hY2NvdW50LCJTV0FQLkhJVkUiLGJ1eU9yZGVydG9rZW5zTG9ja2VkLCJ1c2VyIiksYXdhaXQgYXBpLmRiLnJlbW92ZSgiYnV5Qm9vayIsYnV5T3JkZXIpKSxhd2FpdCB1cGRhdGVUcmFkZXNIaXN0b3J5KCJzZWxsIixidXlPcmRlci5hY2NvdW50LGFwaS5zZW5kZXIsc3ltYm9sLHRva2Vuc1JlbWFpbmluZyxidXlPcmRlci5wcmljZSxxdHlUb2tlbnNUb1NlbmQsYnV5T3JkZXIudHhJZCxhcGkudHJhbnNhY3Rpb25JZCksdm9sdW1lVHJhZGVkPWFwaS5CaWdOdW1iZXIodm9sdW1lVHJhZGVkKS5wbHVzKHF0eVRva2Vuc1RvU2VuZCksdG9rZW5zUmVtYWluaW5nPTB9fWVsc2V7bGV0IHF0eVRva2Vuc1RvU2VuZD1hcGkuQmlnTnVtYmVyKGJ1eU9yZGVyLnByaWNlKS5tdWx0aXBsaWVkQnkoYnV5T3JkZXIucXVhbnRpdHkpLnRvRml4ZWQoOCk7aWYocXR5VG9rZW5zVG9TZW5kPmJ1eU9yZGVyLnRva2Vuc0xvY2tlZCYmKHF0eVRva2Vuc1RvU2VuZD1hcGkuQmlnTnVtYmVyKGJ1eU9yZGVyLnByaWNlKS5tdWx0aXBsaWVkQnkoYnV5T3JkZXIucXVhbnRpdHkpLnRvRml4ZWQoOCxhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pKSxhcGkuYXNzZXJ0KGFwaS5CaWdOdW1iZXIocXR5VG9rZW5zVG9TZW5kKS5ndCgwKSYmYXBpLkJpZ051bWJlcih0b2tlbnNSZW1haW5pbmcpLmd0KDApLCJ0aGUgb3JkZXIgY2Fubm90IGJlIGZpbGxlZCIpKXtsZXQgcmVzPWF3YWl0IGFwaS50cmFuc2ZlclRva2VucyhidXlPcmRlci5hY2NvdW50LHN5bWJvbCxidXlPcmRlci5xdWFudGl0eSwidXNlciIpO3Jlcy5lcnJvcnMmJihhcGkuZGVidWcocmVzLmVycm9ycyksYXBpLmRlYnVnKCJUWElEOiAiK2FwaS50cmFuc2FjdGlvbklkKSxhcGkuZGVidWcoYnV5T3JkZXIuYWNjb3VudCksYXBpLmRlYnVnKHN5bWJvbCksYXBpLmRlYnVnKGJ1eU9yZGVyLnF1YW50aXR5KSkscmVzPWF3YWl0IGFwaS50cmFuc2ZlclRva2VucyhhcGkuc2VuZGVyLCJTV0FQLkhJVkUiLHF0eVRva2Vuc1RvU2VuZCwidXNlciIpLHJlcy5lcnJvcnMmJihhcGkuZGVidWcocmVzLmVycm9ycyksYXBpLmRlYnVnKCJUWElEOiAiK2FwaS50cmFuc2FjdGlvbklkKSxhcGkuZGVidWcoYXBpLnNlbmRlciksYXBpLmRlYnVnKCJTV0FQLkhJVkUiKSxhcGkuZGVidWcocXR5VG9rZW5zVG9TZW5kKSk7Y29uc3QgYnV5T3JkZXJ0b2tlbnNMb2NrZWQ9YXBpLkJpZ051bWJlcihidXlPcmRlci50b2tlbnNMb2NrZWQpLm1pbnVzKHF0eVRva2Vuc1RvU2VuZCkudG9GaXhlZCg4KTthcGkuQmlnTnVtYmVyKGJ1eU9yZGVydG9rZW5zTG9ja2VkKS5ndCgwKSYmYXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGJ1eU9yZGVyLmFjY291bnQsIlNXQVAuSElWRSIsYnV5T3JkZXJ0b2tlbnNMb2NrZWQsInVzZXIiKSxhd2FpdCBhcGkuZGIucmVtb3ZlKCJidXlCb29rIixidXlPcmRlciksdG9rZW5zUmVtYWluaW5nPWFwaS5CaWdOdW1iZXIodG9rZW5zUmVtYWluaW5nKS5taW51cyhidXlPcmRlci5xdWFudGl0eSkudG9GaXhlZCh0b2tlbi5wcmVjaXNpb24pLGF3YWl0IHVwZGF0ZVRyYWRlc0hpc3RvcnkoInNlbGwiLGJ1eU9yZGVyLmFjY291bnQsYXBpLnNlbmRlcixzeW1ib2wsYnV5T3JkZXIucXVhbnRpdHksYnV5T3JkZXIucHJpY2UscXR5VG9rZW5zVG9TZW5kLGJ1eU9yZGVyLnR4SWQsYXBpLnRyYW5zYWN0aW9uSWQpLHZvbHVtZVRyYWRlZD1hcGkuQmlnTnVtYmVyKHZvbHVtZVRyYWRlZCkucGx1cyhxdHlUb2tlbnNUb1NlbmQpfX1pbmMrPTF9b2Zmc2V0Kz0xZTMsYXBpLkJpZ051bWJlcih0b2tlbnNSZW1haW5pbmcpLmd0KDApJiYoYnV5T3JkZXJCb29rPWF3YWl0IGFwaS5kYi5maW5kKCJidXlCb29rIix7c3ltYm9sOnN5bWJvbH0sMWUzLG9mZnNldCxbe2luZGV4OiJwcmljZURlYyIsZGVzY2VuZGluZzohMH0se2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSkpfXdoaWxlKGJ1eU9yZGVyQm9vay5sZW5ndGg+MCYmYXBpLkJpZ051bWJlcih0b2tlbnNSZW1haW5pbmcpLmd0KDApKTthcGkuQmlnTnVtYmVyKHRva2Vuc1JlbWFpbmluZykuZ3QoMCkmJmF3YWl0IGFwaS50cmFuc2ZlclRva2VucyhhcGkuc2VuZGVyLHN5bWJvbCx0b2tlbnNSZW1haW5pbmcsInVzZXIiKSxhcGkuQmlnTnVtYmVyKHZvbHVtZVRyYWRlZCkuZ3QoMCkmJmF3YWl0IHVwZGF0ZVZvbHVtZU1ldHJpYyhzeW1ib2wsdm9sdW1lVHJhZGVkKSxhd2FpdCB1cGRhdGVBc2tNZXRyaWMoc3ltYm9sKSxhd2FpdCB1cGRhdGVCaWRNZXRyaWMoc3ltYm9sKX19fX07"}}}