3NCUbh7cABzRyEMEXAcGCAozSuxvUTf75ms · data · 2.7c767379.chunk.js_66
{
    "2.7c767379.chunk.js_66": "base64:Z2UpKDAsaC0xKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4tMS8wfSkpLmNvbmNhdChbdl0pO3JldHVybiByPmE/KDAsaS5yZXZlcnNlKShtKTptfWlmKGc9PT12KXJldHVybiBsKGcsaCxwKTt2YXIgYj1mdW5jdGlvbiBlKHQscixpLG8pe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTowO2lmKCFOdW1iZXIuaXNGaW5pdGUoKHItdCkvKGktMSkpKXJldHVybntzdGVwOm5ldyBuLmRlZmF1bHQoMCksdGlja01pbjpuZXcgbi5kZWZhdWx0KDApLHRpY2tNYXg6bmV3IG4uZGVmYXVsdCgwKX07dmFyIHMsdT1mKG5ldyBuLmRlZmF1bHQocikuc3ViKHQpLmRpdihpLTEpLG8sYSk7cz10PD0wJiZyPj0wP25ldyBuLmRlZmF1bHQoMCk6KHM9bmV3IG4uZGVmYXVsdCh0KS5hZGQocikuZGl2KDIpKS5zdWIobmV3IG4uZGVmYXVsdChzKS5tb2QodSkpO3ZhciBjPU1hdGguY2VpbChzLnN1Yih0KS5kaXYodSkudG9OdW1iZXIoKSksbD1NYXRoLmNlaWwobmV3IG4uZGVmYXVsdChyKS5zdWIocykuZGl2KHUpLnRvTnVtYmVyKCkpLGg9YytsKzE7cmV0dXJuIGg+aT9lKHQscixpLG8sYSsxKTooaDxpJiYobD1yPjA/bCsoaS1oKTpsLGM9cj4wP2M6YysoaS1oKSkse3N0ZXA6dSx0aWNrTWluOnMuc3ViKG5ldyBuLmRlZmF1bHQoYykubXVsKHUpKSx0aWNrTWF4OnMuYWRkKG5ldyBuLmRlZmF1bHQobCkubXVsKHUpKX0pfShnLHYsZCxwKSxfPWIuc3RlcCxTPWIudGlja01pbixFPWIudGlja01heCx3PW8uZGVmYXVsdC5yYW5nZVN0ZXAoUyxFLmFkZChuZXcgbi5kZWZhdWx0KC4xKS5tdWwoXykpLF8pO3JldHVybiByPmE/KDAsaS5yZXZlcnNlKSh3KTp3fSk7dC5nZXROaWNlVGlja1ZhbHVlcz1oO3ZhciBwPSgwLGkubWVtb2l6ZSkoZnVuY3Rpb24oZSl7dmFyIHQ9dShlLDIpLHI9dFswXSxvPXRbMV0sYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06NixzPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0saD1NYXRoLm1heChhLDIpLHA9dShjKFtyLG9dKSwyKSxkPXBbMF0seT1wWzFdO2lmKGQ9PT0tMS8wfHx5PT09MS8wKXJldHVybltyLG9dO2lmKGQ9PT15KXJldHVybiBsKGQsYSxzKTt2YXIgZz1mKG5ldyBuLmRlZmF1bHQoeSkuc3ViKGQpLmRpdihoLTEpLHMsMCksdj0oMCxpLmNvbXBvc2UpKCgwLGkubWFwKShmdW5jdGlvbihlKXtyZXR1cm4gbmV3IG4uZGVmYXVsdChkKS5hZGQobmV3IG4uZGVmYXVsdChlKS5tdWwoZykpLnRvTnVtYmVyKCl9KSxpLnJhbmdlKSgwLGgpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZT49ZCYmZTw9eX0pO3JldHVybiByPm8/KDAsaS5yZXZlcnNlKSh2KTp2fSk7dC5nZXRUaWNrVmFsdWVzPXA7dmFyIGQ9KDAsaS5tZW1vaXplKShmdW5jdGlvbihlLHQpe3ZhciByPXUoZSwyKSxhPXJbMF0sbD1yWzFdLGg9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxwPXUoYyhbYSxsXSksMiksZD1wWzBdLHk9cFsxXTtpZihkPT09LTEvMHx8eT09PTEvMClyZXR1cm5bYSxsXTtpZihkPT09eSlyZXR1cm5bZF07dmFyIGc9TWF0aC5tYXgodCwyKSx2PWYobmV3IG4uZGVmYXVsdCh5KS5zdWIoZCkuZGl2KGctMSksaCwwKSxtPXMoby5kZWZhdWx0LnJhbmdlU3RlcChuZXcgbi5kZWZhdWx0KGQpLG5ldyBuLmRlZmF1bHQoeSkuc3ViKG5ldyBuLmRlZmF1bHQoLjk5KS5tdWwodikpLHYpKS5jb25jYXQoW3ldKTtyZXR1cm4gYT5sPygwLGkucmV2ZXJzZSkobSk6bX0pO3QuZ2V0VGlja1ZhbHVlc0ZpeGVkRG9tYWluPWR9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG4saT0obj1yKDQ5MikpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxvPXIoNDkzKTt2YXIgYT17cmFuZ2VTdGVwOmZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIG49bmV3IGkuZGVmYXVsdChlKSxvPVtdO24ubHQodCk7KW8ucHVzaChuLnRvTnVtYmVyKCkpLG49bi5hZGQocik7cmV0dXJuIG99LGdldERpZ2l0Q291bnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lPzE6TWF0aC5mbG9vcihuZXcgaS5kZWZhdWx0KGUpLmFicygpLmxvZygxMCkudG9OdW1iZXIoKSkrMX0saW50ZXJwb2xhdGVOdW1iZXI6KDAsby5jdXJyeSkoZnVuY3Rpb24oZSx0LHIpe3ZhciBuPStlO3JldHVybiBuK3IqKCt0LW4pfSksdW5pbnRlcnBvbGF0ZU51bWJlcjooMCxvLmN1cnJ5KShmdW5jdGlvbihlLHQscil7dmFyIG49dC0rZTtyZXR1cm4oci1lKS8obj1ufHwxLzApfSksdW5pbnRlcnBvbGF0ZVRydW5jYXRpb246KDAsby5jdXJyeSkoZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXQtK2U7cmV0dXJuIG49bnx8MS8wLE1hdGgubWF4KDAsTWF0aC5taW4oMSwoci1lKS9uKSl9KX07dC5kZWZhdWx0PWF9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDI5MiksaT1yKDQ5NCksbz1yKDQ5NiksYT1yKDI5Mykscz1yKDEwODQpLHU9cigyOTQpLGM9MjAwO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQscil7dmFyIGY9LTEsbD1pLGg9ZS5sZW5ndGgscD0hMCxkPVtdLHk9ZDtpZihyKXA9ITEsbD1vO2Vsc2UgaWYoaD49Yyl7dmFyIGc9dD9udWxsOnMoZSk7aWYoZylyZXR1cm4gdShnKTtwPSExLGw9YSx5PW5ldyBufWVsc2UgeT10P1tdOmQ7ZTpmb3IoOysrZjxoOyl7dmFyIHY9ZVtmXSxtPXQ/dCh2KTp2O2lmKHY9cnx8MCE9PXY/djowLHAmJm09PT1tKXtmb3IodmFyIGI9eS5sZW5ndGg7Yi0tOylpZih5W2JdPT09bSljb250aW51ZSBlO3QmJnkucHVzaChtKSxkLnB1c2godil9ZWxzZSBsKHksbSxyKXx8KHkhPT1kJiZ5LnB1c2gobSksZC5wdXNoKHYpKX1yZXR1cm4gZH19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDQ5NSksaT1yKDEwODIpLG89cigxMDgzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB0PT09dD9vKGUsdCxyKTpuKGUsaSxyKX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBlIT09ZX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIG49ci0xLGk9ZS5sZW5ndGg7KytuPGk7KWlmKGVbbl09PT10KXJldHVybiBuO3JldHVybi0xfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNDgxKSxpPXIoMTA4NSksbz1yKDI5NCksYT1uJiYxL28obmV3IG4oWywtMF0pKVsxXT09MS8wP2Z1bmN0aW9uKGUpe3JldHVybiBuZXcgbihlKX06aTtlLmV4cG9ydHM9YX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt9fSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxOTgpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciByO3JldHVybiBuKGUsZnVuY3Rpb24oZSxuLGkpe3JldHVybiEocj10KGUsbixpKSl9KSwhIXJ9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj0tMSxuPW51bGw9PWU/MDplLmxlbmd0aDsrK3I8bjspaWYoIXQoZVtyXSxyLGUpKXJldHVybiExO3JldHVybiEwfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTk4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgcj0hMDtyZXR1cm4gbihlLGZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gcj0hIXQoZSxuLGkpfSkscn19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDQ5MCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXsiX19wcm90b19fIj09dCYmbj9uKGUsdCx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6cix3cml0YWJsZTohMH0pOmVbdF09cn19LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gcihlLHQscil7ZSBpbnN0YW5jZW9mIFJlZ0V4cCYmKGU9bihlLHIpKSx0IGluc3RhbmNlb2YgUmVnRXhwJiYodD1uKHQscikpO3ZhciBvPWkoZSx0LHIpO3JldHVybiBvJiZ7c3RhcnQ6b1swXSxlbmQ6b1sxXSxwcmU6ci5zbGljZSgwLG9bMF0pLGJvZHk6ci5zbGljZShvWzBdK2UubGVuZ3RoLG9bMV0pLHBvc3Q6ci5zbGljZShvWzFdK3QubGVuZ3RoKX19ZnVuY3Rpb24gbihlLHQpe3ZhciByPXQubWF0Y2goZSk7cmV0dXJuIHI/clswXTpudWxsfWZ1bmN0aW9uIGkoZSx0LHIpe3ZhciBuLGksbyxhLHMsdT1yLmluZGV4T2YoZSksYz1yLmluZGV4T2YodCx1KzEpLGY9dTtpZih1Pj0wJiZjPjApe2ZvcihuPVtdLG89ci5sZW5ndGg7Zj49MCYmIXM7KWY9PXU/KG4ucHVzaChmKSx1PXIuaW5kZXhPZihlLGYrMSkpOjE9PW4ubGVuZ3RoP3M9W24ucG9wKCksY106KChpPW4ucG9wKCkpPG8mJihvPWksYT1jKSxjPXIuaW5kZXhPZih0LGYrMSkpLGY9dTxjJiZ1Pj0wP3U6YztuLmxlbmd0aCYmKHM9W28sYV0pfXJldHVybiBzfWUuZXhwb3J0cz1yLHIucmFuZ2U9aX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTA5Mik7ZnVuY3Rpb24gaShlLHQscil7dmFyIG89ZTtyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgcj1bXSxpPSJzdHJpbmciPT09dHlwZW9mIHQ/bmV3IFJlZ0V4cCgiXFxiKCIrdCsiKVxcKCIpOnQ7ZG97dmFyIG89aS5leGVjKGUpO2lmKCFvKXJldHVybiByO2lmKHZvaWQgMD09PW9bMV0pdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHRoZSBmaXJzdCBjb3VwbGUgb2YgcGFyZW50aGVzaXMgdG8gZ2V0IHRoZSBmdW5jdGlvbiBpZGVudGlmaWVyIGluICIrdCk7dmFyIGE9b1sxXSxzPW8uaW5kZXgsdT1uKCIoIiwiKSIsZS5zdWJzdHJpbmcocykpO2lmKCF1fHx1LnN0YXJ0IT09b1swXS5sZW5ndGgtMSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoYSsiKCk6IG1pc3NpbmcgY2xvc2luZyAnKScgaW4gdGhlIHZhbHVlICciK2UrIiciKTtyLnB1c2goe21hdGNoZXM6dSxmdW5jdGlvbklkZW50aWZpZXI6YX0pLGU9dS5wb3N0fXdoaWxlKGkudGVzdChlKSk7cmV0dXJuIHJ9KGUsdCkucmVkdWNlKGZ1bmN0aW9uKGUsbil7cmV0dXJuIGUucmVwbGFjZShuLmZ1bmN0aW9uSWRlbnRpZmllcisiKCIrbi5tYXRjaGVzLmJvZHkrIikiLGZ1bmN0aW9uKGUsdCxyLG4sbyl7cmV0dXJuIHIoaShlLG8sciksdCxuKX0obi5tYXRjaGVzLmJvZHksbi5mdW5jdGlvbklkZW50aWZpZXIscixvLHQpKX0sZSl9ZS5leHBvcnRzPWl9LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gcihlLHQscil7ZSBpbnN0YW5jZW9mIFJlZ0V4cCYmKGU9bihlLHIpKSx0IGluc3RhbmNlb2YgUmVnRXhwJiYodD1uKHQscikpO3ZhciBvPWkoZSx0LHIpO3JldHVybiBvJiZ7c3RhcnQ6b1swXSxlbmQ6b1sxXSxwcmU6ci5zbGljZSgwLG9bMF0pLGJvZHk6ci5zbGljZShvWzBdK2UubGVuZ3RoLG9bMV0pLHBvc3Q6ci5zbGljZShvWzFdK3QubGVuZ3RoKX19ZnVuY3Rpb24gbihlLHQpe3ZhciByPXQubWF0Y2goZSk7cmV0dXJuIHI/clswXTpudWxsfWZ1bmN0aW9uIGkoZSx0LHIpe3ZhciBuLGksbyxhLHMsdT1yLmluZGV4T2YoZSksYz1yLmluZGV4T2YodCx1KzEpLGY9dTtpZih1Pj0wJiZjPjApe2ZvcihuPVtdLG89ci5sZW5ndGg7Zj49MCYmIXM7KWY9PXU/KG4ucHVzaChmKSx1PXIuaW5kZXhPZihlLGYrMSkpOjE9PW4ubGVuZ3RoP3M9W24ucG9wKCksY106KChpPW4ucG9wKCkpPG8mJihvPWksYT1jKSxjPXIuaW5kZXhPZih0LGYrMSkpLGY9dTxjJiZ1Pj0wP3U6YztuLmxlbmd0aCYmKHM9W28sYV0pfXJldHVybiBzfWUuZXhwb3J0cz1yLHIucmFuZ2U9aX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTA5NCk7bi5wcm90b3R5cGUuZm9ybXVsYUV2YWw9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Zm9yKHZhciBlLHQscixuPVtdLGk9dGhpcy52YWx1ZSxvPTA7bzxpLmxlbmd0aDtvKyspMT09PWlbb10udHlwZXx8Mz09PWlbb10udHlwZT9uLnB1c2goe3ZhbHVlOjM9PT1pW29dLnR5cGU/aVtvXS5zaG93Omlbb10udmFsdWUsdHlwZToxfSk6MTM9PT1pW29dLnR5cGU/bi5wdXNoKHt2YWx1ZTppW29dLnNob3csdHlwZToxfSk6MD09PWlbb10udHlwZT9uW24ubGVuZ3RoLTFdPXt2YWx1ZTppW29dLnNob3crKCItIiE9aVtvXS5zaG93PyIoIjoiIikrbltuLmxlbmd0aC0xXS52YWx1ZSsoIi0iIT1pW29dLnNob3c/IikiOiIiKSx0eXBlOjB9Ojc9PT1pW29dLnR5cGU/bltuLmxlbmd0aC0xXT17dmFsdWU6KDEhPW5bbi5sZW5ndGgtMV0udHlwZT8iKCI6IiIpK25bbi5sZW5ndGgtMV0udmFsdWUrKDEhPW5bbi5sZW5ndGgtMV0udHlwZT8iKSI6IiIpK2lbb10uc2hvdyx0eXBlOjd9OjEwPT09aVtvXS50eXBlPyhlPW4ucG9wKCksdD1uLnBvcCgpLCJQIj09PWlbb10uc2hvd3x8IkMiPT09aVtvXS5zaG93P24ucHVzaCh7dmFsdWU6IjxzdXA+Iit0LnZhbHVlKyI8L3N1cD4iK2lbb10uc2hvdysiPHN1Yj4iK2UudmFsdWUrIjwvc3ViPiIsdHlwZToxMH0pOm4ucHVzaCh7dmFsdWU6KDEhPXQudHlwZT8iKCI6IiIpK3QudmFsdWUrKDEhPXQudHlwZT8iKSI6IiIpKyI8c3VwPiIrZS52YWx1ZSsiPC9zdXA+Iix0eXBlOjF9KSk6Mj09PWlbb10udHlwZXx8OT09PWlbb10udHlwZT8oZT1uLnBvcCgpLHQ9bi5wb3AoKSxuLnB1c2goe3ZhbHVlOigxIT10LnR5cGU/IigiOiIiKSt0LnZhbHVlKygxIT10LnR5cGU/IikiOiIiKStpW29dLnNob3crKDEhPWUudHlwZT8iKCI6IiIpK2UudmFsdWUrKDEhPWUudHlwZT8iKSI6IiIpLHR5cGU6aVtvXS50eXBlfSkpOjEyPT09aVtvXS50eXBlJiYoZT1uLnBvcCgpLHQ9bi5wb3AoKSxyPW4ucG9wKCksbi5wdXNoKHt2YWx1ZTppW29dLnNob3crIigiK3IudmFsdWUrIiwiK3QudmFsdWUrIiwiK2UudmFsdWUrIikiLHR5cGU6MTJ9KSk7cmV0dXJuIG5bMF0udmFsdWV9LGUuZXhwb3J0cz1ufSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMDk1KTtuLnByb3RvdHlwZS5wb3N0Zml4RXZhbD1mdW5jdGlvbihlKXsidXNlIHN0cmljdCI7KGU9ZXx8e30pLlBJPU1hdGguUEksZS5FPU1hdGguRTtmb3IodmFyIHQscixpLG89W10sYT10aGlzLnZhbHVlLHM9InVuZGVmaW5lZCIhPT10eXBlb2YgZS5uLHU9MDt1PGEubGVuZ3RoO3UrKykxPT09YVt1XS50eXBlP28ucHVzaCh7dmFsdWU6YVt1XS52YWx1ZSx0eXBlOjF9KTozPT09YVt1XS50eXBlP28ucHVzaCh7dmFsdWU6ZVthW3VdLnZhbHVlXSx0eXBlOjF9KTowPT09YVt1XS50eXBlPyJ1bmRlZmluZWQiPT09dHlwZW9mIG9bby5sZW5ndGgtMV0udHlwZT9vW28ubGVuZ3RoLTFdLnZhbHVlLnB1c2goYVt1XSk6b1tvLmxlbmd0aC0xXS52YWx1ZT1hW3VdLnZhbHVlKG9bby5sZW5ndGgtMV0udmFsdWUpOjc9PT1hW3VdLnR5cGU/InVuZGVmaW5lZCI9PT10eXBlb2Ygb1tvLmxlbmd0aC0xXS50eXBlP29bby5sZW5ndGgtMV0udmFsdWUucHVzaChhW3VdKTpvW28ubGVuZ3RoLTFdLnZhbHVlPWFbdV0udmFsdWUob1tvLmxlbmd0aC0xXS52YWx1ZSk6OD09PWFbdV0udHlwZT8odD1vLnBvcCgpLHI9by5wb3AoKSxvLnB1c2goe3R5cGU6MSx2YWx1ZTphW3VdLnZhbHVlKHIudmFsdWUsdC52YWx1ZSl9KSk6MTA9PT1hW3VdLnR5cGU/KHQ9by5wb3AoKSwidW5kZWZpbmVkIj09PXR5cGVvZihyPW8ucG9wKCkpLnR5cGU/KHIudmFsdWU9ci5jb25jYXQodCksci52YWx1ZS5wdXNoKGFbdV0pLG8ucHVzaChyKSk6InVuZGVmaW5lZCI9PT10eXBlb2YgdC50eXBlPyh0LnVuc2hpZnQociksdC5wdXNoKGFbdV0pLG8ucHVzaCh0KSk6by5wdXNoKHt0eXBlOjEsdmFsdWU6YVt1XS52YWx1ZShyLnZhbHVlLHQudmFsdWUpfSkpOjI9PT1hW3VdLnR5cGV8fDk9PT1hW3VdLnR5cGU/KHQ9by5wb3AoKSwidW5kZWZpbmVkIj09PXR5cGVvZihyPW8ucG9wKCkpLnR5cGU/KGNvbnNvbGUubG9nKHIpLChyPXIuY29uY2F0KHQpKS5wdXNoKGFbdV0pLG8ucHVzaChyKSk6InVuZGVmaW5lZCI9PT10eXBlb2YgdC50eXBlPyh0LnVuc2hpZnQociksdC5wdXNoKGFbdV0pLG8ucHVzaCh0KSk6by5wdXNoKHt0eXBlOjEsdmFsdWU6YVt1XS52YWx1ZShyLnZhbHVlLHQudmFsdWUpfSkpOjEyPT09YVt1XS50eXBlPygidW5kZWZpbmVkIiE9PXR5cGVvZih0PW8ucG9wKCkpLnR5cGUmJih0PVt0XSkscj1vLnBvcCgpLGk9by5wb3AoKSxvLnB1c2goe3R5cGU6MSx2YWx1ZTphW3VdLnZhbHVlKGkudmFsdWUsci52YWx1ZSxuZXcgbih0KSl9KSk6MTM9PT1hW3VdLnR5cGUmJihzP28ucHVzaCh7dmFsdWU6ZVthW3VdLnZhbHVlXSx0eXBlOjN9KTpvLnB1c2goW2FbdV1dKSk7aWYoby5sZW5ndGg+MSl0aHJvdyBuZXcgbi5leGNlcHRpb24oIlVuY2F1Z2h0IFN5bnRheCBlcnJvciIpO3JldHVybiBvWzBdLnZhbHVlPjFlMTU/IkluZmluaXR5IjpwYXJzZUZsb2F0KG9bMF0udmFsdWUudG9GaXhlZCgxNSkpfSxuLmV2YWw9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiJ1bmRlZmluZWQiPT09dHlwZW9mIHQ/dGhpcy5sZXgoZSkudG9Qb3N0Zml4KCkucG9zdGZpeEV2YWwoKToidW5kZWZpbmVkIj09PXR5cGVvZiByPyJ1bmRlZmluZWQiIT09dHlwZW9mIHQubGVuZ3RoP3RoaXMubGV4KGUsdCkudG9Qb3N0Zml4KCkucG9zdGZpeEV2YWwoKTp0aGlzLmxleChlKS50b1Bvc3RmaXgoKS5wb3N0Zml4RXZhbCh0KTp0aGlzLmxleChlLHQpLnRvUG9zdGZpeCgpLnBvc3RmaXhFdmFsKHIpfSxlLmV4cG9ydHM9bn0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTA5Nik7bi5wcm90b3R5cGUudG9Qb3N0Zml4PWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Zvcih2YXIgZSx0LHIsaSxvLGE9W10scz1be3ZhbHVlOiIoIix0eXBlOjQscHJlOjB9XSx1PXRoaXMudmFsdWUsYz0xO2M8dS5sZW5ndGg7YysrKWlmKDE9PT11W2NdLnR5cGV8fDM9PT11W2NdLnR5cGV8fDEzPT09dVtjXS50eXBlKTE9PT11W2NdLnR5cGUmJih1W2NdLnZhbHVlPU51bWJlcih1W2NdLnZhbHVlKSksYS5wdXNoKHVbY10pO2Vsc2UgaWYoND09PXVbY10udHlwZSlzLnB1c2godVtjXSk7ZWxzZSBpZig1PT09dVtjXS50eXBlKWZvcig7NCE9PSh0PXMucG9wKCkpLnR5cGU7KWEucHVzaCh0KTtlbHNlIGlmKDExPT09dVtjXS50eXBlKXtmb3IoOzQhPT0odD1zLnBvcCgpKS50eXBlOylhLnB1c2godCk7cy5wdXNoKHQpfWVsc2V7aT0oZT11W2NdKS5wcmUscj0obz1zW3MubGVuZ3RoLTFdKS5wcmU7dmFyIGY9Ik1hdGgucG93Ij09by52YWx1ZSYmIk1hdGgucG93Ij09ZS52YWx1ZTtpZihpPnIpcy5wdXNoKGUpO2Vsc2V7Zm9yKDtyPj1pJiYhZnx8ZiYmaTxyOyl0PXMucG9wKCksbz1zW3MubGVuZ3RoLTFdLGEucHVzaCh0KSxyPW8ucHJlLGY9Ik1hdGgucG93Ij09ZS52YWx1ZSYmIk1hdGgucG93Ij09by52YWx1ZTtzLnB1c2goZSl9fXJldHVybiBuZXcgbihhKX0sZS5leHBvcnRzPW59LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEwOTcpO2Z1bmN0aW9uIG8oZSx0KXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyllW3JdKz10O3JldHVybiBlfXZhciBhPVsic2luIiwiY29zIiwidGFuIiwicGkiLCIoIiwiKSIsIlAiLCJDIiwiYXNpbiIsImFjb3MiLCJhdGFuIiwiNyIsIjgiLCI5IiwiaW50IiwiY29zaCIsImFjb3NoIiwibG4iLCJeIiwicm9vdCIsIjQiLCI1IiwiNiIsIi8iLCIhIiwidGFuaCIsImF0YW5oIiwiTW9kIiwiMSIsIjIiLCIzIiwiKiIsInNpbmgiLCJhc2luaCIsImUiLCJsb2ciLCIwIiwiLiIsIisiLCItIiwiLCIsIlNpZ21hIiwibiIsIlBpIiwicG93Il0scz1bInNpbiIsImNvcyIsInRhbiIsIiZwaTsiLCIoIiwiKSIsIlAiLCJDIiwiYXNpbiIsImFjb3MiLCJhdGFuIiwiNyIsIjgiLCI5IiwiSW50IiwiY29zaCIsImFjb3NoIiwiIGxuIiwiXiIsInJvb3QiLCI0IiwiNSIsIjYiLCImZGl2aWRlOyIsIiEiLCJ0YW5oIiwiYXRhbmgiLCIgTW9kICIsIjEiLCIyIiwiMyIsIiZ0aW1lczsiLCJzaW5oIiwiYXNpbmgiLCJlIiwiIGxvZyIsIjAiLCIuIiwiKyIsIi0iLCIsIiwiJlNpZ21hOyIsIm4iLCImUGk7IiwicG93Il0sdT1bbi5tYXRoLnNpbixuLm1hdGguY29zLG4ubWF0aC50YW4sIlBJIiwiKCIsIikiLG4ubWF0aC5QLG4ubWF0aC5DLG4ubWF0aC5hc2luLG4ubWF0aC5hY29zLG4ubWF0aC5hdGFuLCI3IiwiOCIsIjkiLE1hdGguZmxvb3Isbi5tYXRoLmNvc2gsbi5tYXRoLmFjb3NoLE1hdGgubG9nLE1hdGgucG93LE1hdGguc3FydCwiNCIsIjUiLCI2IixuLm1hdGguZGl2LG4ubWF0aC5mYWN0LG4ubWF0aC50YW5oLG4ubWF0aC5hdGFuaCxuLm1hdGgubW9kLCIxIiwiMiIsIjMiLG4ubWF0aC5tdWwsbi5tYXRoLnNpbmgsbi5tYXRoLmFzaW5oLCJFIixuLm1hdGgubG9nLCIwIiwiLiIsbi5tYXRoLmFkZCxuLm1hdGguc3ViLCIsIixuLm1hdGguc2lnbWEsIm4iLG4ubWF0aC5QaSxNYXRoLnBvd10sYz17MDoxMSwxOjAsMjozLDM6MCw0OjAsNTowLDY6MCw3OjExLDg6MTEsOToxLDEwOjEwLDExOjAsMTI6MTEsMTM6MH0sZj1bMCwwLDAsMyw0LDUsMTAsMTAsMCwwLDAsMSwxLDEsMCwwLDAsMCwxMCwwLDEsMSwxLDIsNywwLDAsMiwxLDEsMSwyLDAsMCwzLDAsMSw2LDksOSwxMSwxMiwxMywxMiw4XSxsPXswOiEwLDE6ITAsMzohMCw0OiEwLDY6ITAsODohMCw5OiEwLDEyOiEwLDEzOiEwfSxoPXswOiEwLDE6ITAsMjohMCwzOiEwLDQ6ITAsNTohMCw2OiEwLDc6ITAsODohMCw5OiEwLDEwOiEwLDExOiEwLDEyOiEwLDEzOiEwfSxwPXswOiEwLDM6ITAsNDohMCw4OiEwLDEyOiEwLDEzOiEwfSxkPXt9LGc9ezA6ITAsMTohMCwzOiEwLDQ6ITAsNjohMCw4OiEwLDEyOiEwLDEzOiEwfSx2PXsxOiEwfSxtPVtbXSxbIjEiLCIyIiwiMyIsIjciLCI4IiwiOSIsIjQiLCI1IiwiNiIsIisiLCItIiwiKiIsIi8iLCIoIiwiKSIsIl4iLCIhIiwiUCIsIkMiLCJlIiwiMCIsIi4iLCIsIiwibiJdLFsicGkiLCJsbiIsIlBpIl0sWyJzaW4iLCJjb3MiLCJ0YW4iLCJEZWwiLCJpbnQiLCJNb2QiLCJsb2ciLCJwb3ciXSxbImFzaW4iLCJhY29zIiwiYXRhbiIsImNvc2giLCJyb290IiwidGFuaCIsInNpbmgiXSxbImFjb3NoIiwiYXRhbmgiLCJhc2luaCIsIlNpZ21hIl1dO2Z1bmN0aW9uIGIoZSx0LHIsbil7Zm9yKHZhciBpPTA7aTxuO2krKylpZihlW3IraV0hPT10W2ldKXJldHVybiExO3JldHVybiEwfW4uYWRkVG9rZW49ZnVuY3Rpb24oZSl7Zm9yKGk9MDtpPGUubGVuZ3RoO2krKyl7eD1lW2ldLnRva2VuLmxlbmd0aDt2YXIgdD0tMTtpZih4PG0ubGVuZ3RoKWZvcih5PTA7eTxtW3hdLmxlbmd0aDt5KyspaWYoZVtpXS50b2tlbj09PW1beF1beV0pe3Q9YS5pbmRleE9mKG1beF1beV0pO2JyZWFrfS0xPT09dD8oYS5wdXNoKGVbaV0udG9rZW4pLGYucHVzaChlW2ldLnR5cGUpLG0ubGVuZ3RoPD1lW2ldLnRva2VuLmxlbmd0aCYmKG1bZVtpXS50b2tlbi5sZW5ndGhdPVtdKSxtW2VbaV0udG9rZW4ubGVuZ3RoXS5wdXNoKGVbaV0udG9rZW4pLHUucHVzaChlW2ldLnZhbHVlKSxzLnB1c2goZVtpXS5zaG93KSk6KGFbdF09ZVtpXS50b2tlbixmW3RdPWVbaV0udHlwZSx1W3RdPWVbaV0udmFsdWUsc1t0XT1lW2ldLnNob3cpfX0sbi5sZXg9ZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7dmFyIHIsaSx5LF8sUz1be3R5cGU6NCx2YWx1ZToiKCIsc2hvdzoiKCIscHJlOjB9XSxFPVtdLHc9ZSxUPTAsQT1sLEM9MCx4PWQsST0iIjsidW5kZWZpbmVkIiE9PXR5cGVvZiB0JiZuLmFkZFRva2VuKHQpO3ZhciBrPXt9O2ZvcihpPTA7aTx3Lmxlbmd0aDtpKyspaWYoIiAiIT13W2ldKXtyPSIiO2U6Zm9yKHk9dy5sZW5ndGgtaT5tLmxlbmd0aC0yP20ubGVuZ3RoLTE6dy5sZW5ndGgtaTt5PjA7eS0tKWZvcihfPTA7XzxtW3ldLmxlbmd0aDtfKyspaWYoYih3LG1beV1bX10saSx5KSl7cj1tW3ldW19dO2JyZWFrIGV9aWYoaSs9ci5sZW5ndGgtMSwiIj09PXIpdGhyb3cgbmV3IG4uZXhjZXB0aW9uKCJDYW4ndCB1bmRlcnN0YW5kIGFmdGVyICIrdy5zbGljZShpKSk7dmFyIE89YS5pbmRleE9mKHIpLE49cixQPWZbT10sUj11W09dLEI9Y1tQXSxNPXNbT10sTD1TW1MubGVuZ3RoLTFdO2ZvcihEPUUubGVuZ3RoO0QtLTspaWYoMD09PUVbRF0mJi0xIT09WzAsMiwzLDUsOSwxMSwxMiwxM10uaW5kZXhPZihQKSl7aWYoITAhPT1BW1BdKXRocm93IG5ldyBuLmV4Y2VwdGlvbihyKyIgaXMgbm90IGFsbG93ZWQgYWZ0ZXIgIitJKTtTLnB1c2goe3ZhbHVlOiIpIix0eXBlOjUscHJlOjAsc2hvdzoiKSJ9KSxBPWgseD1nLG8oRSwtMSkucG9wKCl9aWYoITAhPT1BW1BdKXRocm93IG5ldyBuLmV4Y2VwdGlvbihyKyIgaXMgbm90IGFsbG93ZWQgYWZ0ZXIgIitJKTtpZighMD09PXhbUF0mJihQPTIsUj1uLm1hdGgubXVsLE09IiZ0aW1lczsiLEI9MyxpLT1yLmxlbmd0aCksaz17dmFsdWU6Uix0eXBlOlAscHJlOkIsc2hvdzpNfSwwPT09UClBPWwseD1kLG8oRSwyKS5wdXNoKDIpLFMucHVzaChrKSxTLnB1c2goe3ZhbHVlOiIoIix0eXBlOjQscHJlOjAsc2hvdzoiKCJ9KTtlbHNlIGlmKDE9PT1QKTE9PT1MLnR5cGU/KEwudmFsdWUrPVIsbyhFLDEpKTpTLnB1c2goayksQT1oLHg9cDtlbHNlIGlmKDI9PT1QKUE9bCx4PWQsbyhFLDIpLFMucHVzaChrKTtlbHNlIGlmKDM9PT1QKVMucHVzaChrKSxBPWgseD1nO2Vsc2UgaWYoND09PVApVCs9RS5sZW5ndGgsRT1bXSxDKyssQT1sLHg9ZCxTLnB1c2goayk7ZWxzZSBpZig1PT09UCl7aWYoIUMpdGhyb3cgbmV3IG4uZXhjZXB0aW9uKCJDbG9zaW5nIHBhcmVudGhlc2lzIGFyZSBtb3JlIHRoYW4gb3BlbmluZyBvbmUsIHdhaXQgV2hhdCEhISIpO2Zvcig7VC0tOylTLnB1c2goe3ZhbHVlOiIpIix0eXBlOjUscHJlOjAsc2hvdzoiKSJ9KTtUPTAsQy0tLEE9aCx4PWcsUy5wdXNoKGspfWVsc2UgaWYoNj09PVApe2lmKEwuaGFzRGVjKXRocm93IG5ldyBuLmV4Y2VwdGlvbigiVHdvIGRlY2ltYWxzIGFyZSBub3QgYWxsb3dlZCBpbiBvbmUgbnVtYmVyIik7MSE9PUwudHlwZSYmKEw9e3ZhbHVlOjAsdHlwZToxLHByZTowfSxTLnB1c2goTCksbyhFLC0xKSksQT12LG8oRSwxKSx4PWQsTC52YWx1ZSs9UixMLmhhc0RlYz0hMH1lbHNlIDc9PT1QJiYoQT1oLHg9ZyxvKEUsMSksUy5wdXNoKGspKTs4PT09UD8oQT1sLHg9ZCxvKEUsNCkucHVzaCg0KSxTLnB1c2goayksUy5wdXNoKHt2YWx1ZToiKCIsdHlwZTo0LHByZTowLHNob3c6IigifSkpOjk9PT1QPyg5PT09TC50eXBlP0wudmFsdWU9PT1uLm1hdGguYWRkPyhMLnZhbHVlPVIsTC5zaG93PU0sbyhFLDEpKTpMLnZhbHVlPT09bi5tYXRoLnN1YiYmIi0iPT09TSYmKEwudmFsdWU9bi5tYXRoLmFkZCxMLnNob3c9IisiLG8oRSwxKSk6NSE9PUwudHlwZSYmNyE9PUwudHlwZSYmMSE9PUwudHlwZSYmMyE9PUwudHlwZSYmMTMhPT1MLnR5cGU/Ii0iPT09TiYmKEE9bCx4PWQsbyhFLDIpLnB1c2goMiksUy5wdXNoKHt2YWx1ZTpuLm1hdGguY2hhbmdlU2lnbix0eXBlOjAscHJlOjIxLHNob3c6Ii0ifSksUy5wdXNoKHt2YWx1ZToiKCIsdHlwZTo0LHByZTowLHNob3c6IigifSkpOihTLnB1c2goayksbyhFLDIpKSxBPWwseD1kKToxMD09PVA/KEE9bCx4PWQsbyhFLDIpLFMucHVzaChrKSk6MTE9PT1QPyhBPWwseD1kLFMucHVzaChrKSk6MTI9PT1QPyhBPWwseD1kLG8oRSw2KS5wdXNoKDYpLFMucHVzaChrKSxTLnB1c2goe3ZhbHVlOiIoIix0eXBlOjQscHJlOjB9KSk6MTM9PT1QJiYoQT1oLHg9ZyxTLnB1c2goaykpLG8oRSwtMSksST1yfWZvcih2YXIgRD1FLmxlbmd0aDtELS07KTA9PT1FW0RdJiYoUy5wdXNoKHt2YWx1ZToiKSIsc2hvdzoiKSIsdHlwZTo1LHByZTozfSksbyhFLC0xKS5wb3AoKSk7aWYoITAhPT1BWzVdKXRocm93IG5ldyBuLmV4Y2VwdGlvbigiY29tcGxldGUgdGhlIGV4cHJlc3Npb24iKTtmb3IoO0MtLTspUy5wdXNoKHt2YWx1ZToiKSIsc2hvdzoiKSIsdHlwZTo1LHByZTozfSk7cmV0dXJuIFMucHVzaCh7dHlwZTo1LHZhbHVlOiIpIixzaG93OiIpIixwcmU6MH0pLG5ldyBuKFMpfSxlLmV4cG9ydHM9bn0sZnVuY3Rpb24oZSx0KXt2YXIgcj1mdW5jdGlvbihlKXt0aGlzLnZhbHVlPWV9O3IubWF0aD17aXNEZWdyZWU6ITAsYWNvczpmdW5jdGlvbihlKXtyZXR1cm4gci5tYXRoLmlzRGVncmVlPzE4MC9NYXRoLlBJKk1hdGguYWNvcyhlKTpNYXRoLmFjb3MoZSl9LGFkZDpmdW5jdGlvbihlLHQpe3JldHVybiBlK3R9LGFzaW46ZnVuY3Rpb24oZSl7cmV0dXJuIHIubWF0aC5pc0RlZ3JlZT8xODAvTWF0aC5QSSpNYXRoLmFzaW4oZSk6TWF0aC5hc2luKGUpfSxhdGFuOmZ1bmN0aW9uKGUpe3JldHVybiByLm1hdGguaXNEZWdyZWU/MTgwL01hdGguUEkqTWF0aC5hdGFuKGUpOk1hdGguYXRhbihlKX0sYWNvc2g6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgubG9nKGUrTWF0aC5zcXJ0KGUqZS0xKSl9LGFzaW5oOmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLmxvZyhlK01hdGguc3FydChlKmUrMSkpfSxhdGFuaDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coKDErZSkvKDEtZSkpfSxDOmZ1bmN0aW9uKGUsdCl7dmFyIG49MSxpPWUtdCxvPXQ7bzxpJiYobz1pLGk9dCk7Zm9yKHZhciBhPW8rMTthPD1lO2ErKyluKj1hO3JldHVybiBuL3IubWF0aC5mYWN0KGkpfSxjaGFuZ2VTaWduOmZ1bmN0aW9uKGUpe3JldHVybi1lfSxjb3M6ZnVuY3Rpb24oZSl7cmV0dXJuIHIubWF0aC5pc0RlZ3JlZSYmKGU9ci5tYXRoLnRvUmFkaWFuKGUpKSxNYXRoLmNvcyhlKX0sY29zaDpmdW5jdGlvbihlKXtyZXR1cm4oTWF0aC5wb3coTWF0aC5FLGUpK01hdGgucG93KE1hdGguRSwtMSplKSkvMn0sZGl2OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUvdH0sZmFjdDpmdW5jdGlvbihlKXtpZihlJTEhPT0wKXJldHVybiJOQU4iO2Zvcih2YXIgdD0xLHI9MjtyPD1lO3IrKyl0Kj1yO3JldHVybiB0fSxpbnZlcnNlOmZ1bmN0aW9uKGUpe3JldHVybiAxL2V9LGxvZzpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZSkvTWF0aC5sb2coMTApfSxtb2Q6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSV0fSxtdWw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSp0fSxQOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPTEsbj1NYXRoLmZsb29yKGUpLU1hdGguZmxvb3IodCkrMTtuPD1NYXRoLmZsb29yKGUpO24rKylyKj1uO3JldHVybiByfSxQaTpmdW5jdGlvbihlLHQscil7Zm9yKHZhciBuPTEsaT1lO2k8PXQ7aSsrKW4qPU51bWJlcihyLnBvc3RmaXhFdmFsKHtuOml9KSk7cmV0dXJuIG59LHBvdzEweDpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTtlLS07KXQqPTEwO3JldHVybiB0fSxzaWdtYTpmdW5jdGlvbihlLHQscil7Zm9yKHZhciBuPTAsaT1lO2k8PXQ7aSsrKW4rPU51bWJlcihyLnBvc3RmaXhFdmFsKHtuOml9KSk7cmV0dXJuIG59LHNpbjpmdW5jdGlvbihlKXtyZXR1cm4gci5tYXRoLmlzRGVncmVlJiYoZT1yLm1hdGgudG9SYWRpYW4oZSkpLE1hdGguc2luKGUpfSxzaW5oOmZ1bmN0aW9uKGUpe3JldHVybihNYXRoLnBvdyhNYXRoLkUsZSktTWF0aC5wb3coTWF0aC5FLC0xKmUpKS8yfSxzdWI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS10fSx0YW46ZnVuY3Rpb24oZSl7cmV0dXJuIHIubWF0aC5pc0RlZ3JlZSYmKGU9ci5tYXRoLnRvUmFkaWFuKGUpKSxNYXRoLnRhbihlKX0sdGFuaDpmdW5jdGlvbihlKXtyZXR1cm4gci5zaW5oYShlKS9yLmNvc2hhKGUpfSx0b1JhZGlhbjpmdW5jdGlvbihlKXtyZXR1cm4gZSpNYXRoLlBJLzE4MH19LHIuZXhjZXB0aW9uPWZ1bmN0aW9uKGUpe3RoaXMubWVzc2FnZT1lfSxlLmV4cG9ydHM9cn0sZnVuY3Rpb24oZSx0LHIpeyhmdW5jdGlvbih0KXsoZnVuY3Rpb24oKXt2YXIgcixuLGksbyxhLHM7InVuZGVmaW5lZCIhPT10eXBlb2YgcGVyZm9ybWFuY2UmJm51bGwhPT1wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P2UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX06InVuZGVmaW5lZCIhPT10eXBlb2YgdCYmbnVsbCE9PXQmJnQuaHJ0aW1lPyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4ocigpLWEpLzFlNn0sbj10LmhydGltZSxvPShyPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIDFlOSooZT1uKCkpWzBdK2VbMV19KSgpLHM9MWU5KnQudXB0aW1lKCksYT1vLXMpOkRhdGUubm93PyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3coKS1pfSxpPURhdGUubm93KCkpOihlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKS1pfSxpPShuZXcgRGF0ZSkuZ2V0VGltZSgpKX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMscig0NikpfSxmdW5jdGlvbihlLHQscil7dmFyIG49cig0ODApKE9iamVjdC5nZXRQcm90b3R5cGVPZixPYmplY3QpO2UuZXhwb3J0cz1ufSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyOTIpLGk9cig0OTQpLG89cig0OTYpLGE9cigxNTIpLHM9cigyOTgpLHU9cigyOTMpLGM9TWF0aC5taW47ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGY9cj9vOmksbD1lWzBdLmxlbmd0aCxoPWUubGVuZ3RoLHA9aCxkPUFycmF5KGgpLHk9MS8wLGc9W107cC0tOyl7dmFyIHY9ZVtwXTtwJiZ0JiYodj1hKHYscyh0KSkpLHk9Yyh2Lmxlbmd0aCx5KSxkW3BdPSFyJiYodHx8bD49MTIwJiZ2Lmxlbmd0aD49MTIwKT9uZXcgbihwJiZ2KTp2b2lkIDB9dj1lWzBdO3ZhciBtPS0xLGI9ZFswXTtlOmZvcig7KyttPGwmJmcubGVuZ3RoPHk7KXt2YXIgXz12W21dLFM9dD90KF8pOl87aWYoXz1yfHwwIT09Xz9fOjAsIShiP3UoYixTKTpmKGcsUyxyKSkpe2ZvcihwPWg7LS1wOyl7dmFyIEU9ZFtwXTtpZighKEU/dShFLFMpOmYoZVtwXSxTLHIpKSljb250aW51ZSBlfWImJmIucHVzaChTKSxnLnB1c2goXyl9fXJldHVybiBnfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTEwMik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBuKGUpP2U6W119fSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMTcpLGk9cig3NCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBpKGUpJiZuKGUpfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTk4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgcj1bXTtyZXR1cm4gbihlLGZ1bmN0aW9uKGUsbixpKXt0KGUsbixpKSYmci5wdXNoKGUpfSkscn19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dC5fX2VzTW9kdWxlPSEwLHQuZGVmYXVsdD12b2lkIDA7IWZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihudWxsIT1lKWZvcih2YXIgciBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXt2YXIgbj1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHIpOnt9O24uZ2V0fHxuLnNldD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLG4pOnRbcl09ZVtyXX10LmRlZmF1bHQ9ZX0ocigwKSk7dmFyIG49cyhyKDExMDUpKSxpPXMocigxMTA4KSksbz1zKHIoMSkpLGE9cyhyKDQ5NykpO3IoNDk5KTtmdW5jdGlvbiBzKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiB1KCl7cmV0dXJuKHU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIHI9YXJndW1lbnRzW3RdO2Zvcih2YXIgbiBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLG4pJiYoZVtuXT1yW25dKX1yZXR1cm4gZX0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIgYz1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0JiZ0LnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4oMCxuLmRlZmF1bHQpKGUsdCl9KX0sZj1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0JiZ0LnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4oMCxpLmRlZmF1bHQpKGUsdCl9KX0sbD1mdW5jdGlvbihlKXt2YXIgdCxyO2Z1bmN0aW9uIG4oKXtmb3IodmFyIHQscj1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7aSsrKW5baV09YXJndW1lbnRzW2ldO3JldHVybih0PWUuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQobikpfHx0aGlzKS5vbkVudGVyPWZ1bmN0aW9uKGUscil7dmFyIG49dC5nZXRDbGFzc05hbWVzKHI/ImFwcGVhciI6ImVudGVyIikuY2xhc3NOYW1lO3QucmVtb3ZlQ2xhc3NlcyhlLCJleGl0IiksYyhlLG4pLHQucHJvcHMub25FbnRlciYmdC5wcm9wcy5vbkVudGVyKGUscil9LHQub25FbnRlcmluZz1mdW5jdGlvbihlLHIpe3ZhciBuPXQuZ2V0Q2xhc3NOYW1lcyhyPyJhcHBlYXIiOiJlbnRlciIpLmFjdGl2ZUNsYXNzTmFtZTt0LnJlZmxvd0FuZEFkZENsYXNzKGUsbiksdC5wcm9wcy5vbkVudGVyaW5nJiZ0LnByb3BzLm9uRW50ZXJpbmcoZSxyKX0sdC5vbkVudGVyZWQ9ZnVuY3Rpb24oZSxyKXt2YXIgbj10LmdldENsYXNzTmFtZXMoImFwcGVhciIpLmRvbmVDbGFzc05hbWUsaT10LmdldENsYXNzTmFtZXMoImVudGVyIikuZG9uZUNsYXNzTmFtZSxvPXI/bisiICIraTppO3QucmVtb3ZlQ2xhc3NlcyhlLHI/ImFwcGVhciI6ImVudGVyIiksYyhlLG8pLHQucHJvcHMub25FbnRlcmVkJiZ0LnByb3BzLm9uRW50ZXJlZChlLHIpfSx0Lm9uRXhpdD1mdW5jdGlvbihlKXt2YXIgcj10LmdldENsYXNzTmFtZXMoImV4aXQiKS5jbGFzc05hbWU7dC5yZW1vdmVDbGFzc2VzKGUsImFwcGVhciIpLHQucmVtb3ZlQ2xhc3NlcyhlLCJlbnRlciIpLGMoZSxyKSx0LnByb3BzLm9uRXhpdCYmdC5wcm9wcy5vbkV4aXQoZSl9LHQub25FeGl0aW5nPWZ1bmN0aW9uKGUpe3ZhciByPXQuZ2V0Q2xhc3NOYW1lcygiZXhpdCIpLmFjdGl2ZUNsYXNzTmFtZTt0LnJlZmxvd0FuZEFkZENsYXNzKGUsciksdC5wcm9wcy5vbkV4aXRpbmcmJnQucHJvcHMub25FeGl0aW5nKGUpfSx0Lm9uRXhpdGVkPWZ1bmN0aW9uKGUpe3ZhciByPXQuZ2V0Q2xhc3NOYW1lcygiZXhpdCIpLmRvbmVDbGFzc05hbWU7dC5yZW1vdmVDbGFzc2VzKGUsImV4aXQiKSxjKGUsciksdC5wcm9wcy5vbkV4aXRlZCYmdC5wcm9wcy5vbkV4aXRlZChlKX0sdC5nZXRDbGFzc05hbWVzPWZ1bmN0aW9uKGUpe3ZhciByPXQucHJvcHMuY2xhc3NOYW1lcyxuPSJzdHJpbmciPT09dHlwZW9mIHIsaT1uPyhuJiZyP3IrIi0iOiIiKStlOnJbZV07cmV0dXJue2NsYXNzTmFtZTppLGFjdGl2ZUNsYXNzTmFtZTpuP2krIi1hY3RpdmUiOnJbZSsiQWN0aXZlIl0sZG9uZUNsYXNzTmFtZTpuP2krIi1kb25lIjpyW2UrIkRvbmUiXX19LHR9cj1lLCh0PW4pLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHIucHJvdG90eXBlKSx0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10LHQuX19wcm90b19fPXI7dmFyIGk9bi5wcm90b3R5cGU7cmV0dXJuIGkucmVtb3ZlQ2xhc3Nlcz1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXMuZ2V0Q2xhc3NOYW1lcyh0KSxuPXIuY2xhc3NOYW1lLGk9ci5hY3RpdmVDbGFzc05hbWUsbz1yLmRvbmVDbGFzc05hbWU7biYmZihlLG4pLGkmJmYoZSxpKSxvJiZmKGUsbyl9LGkucmVmbG93QW5kQWRkQ2xhc3M9ZnVuY3Rpb24oZSx0KXt0JiYoZSYmZS5zY3JvbGxUb3AsYyhlLHQpKX0saS5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZT11KHt9LHRoaXMucHJvcHMpO3JldHVybiBkZWxldGUgZS5jbGFzc05hbWVzLG8uZGVmYXVsdC5jcmVhdGVFbGVtZW50KGEuZGVmYXVsdCx1KHt9LGUse29uRW50ZXI6dGhpcy5vbkVudGVyLG9uRW50ZXJlZDp0aGlzLm9uRW50ZXJlZCxvbkVudGVyaW5nOnRoaXMub25FbnRlcmluZyxvbkV4aXQ6dGhpcy5vbkV4aXQsb25FeGl0aW5nOnRoaXMub25FeGl0aW5nLG9uRXhpdGVkOnRoaXMub25FeGl0ZWR9KSl9LG59KG8uZGVmYXVsdC5Db21wb25lbnQpO2wuZGVmYXVsdFByb3BzPXtjbGFzc05hbWVzOiIifSxsLnByb3BUeXBlcz17fTt2YXIgaD1sO3QuZGVmYXVsdD1oLGUuZXhwb3J0cz10LmRlZmF1bHR9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigxMTA2KTt0Ll9fZXNNb2R1bGU9ITAsdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7ZS5jbGFzc0xpc3Q/ZS5jbGFzc0xpc3QuYWRkKHQpOigwLGkuZGVmYXVsdCkoZSx0KXx8KCJzdHJpbmciPT09dHlwZW9mIGUuY2xhc3NOYW1lP2UuY2xhc3NOYW1lPWUuY2xhc3NOYW1lKyIgIit0OmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsKGUuY2xhc3NOYW1lJiZlLmNsYXNzTmFtZS5iYXNlVmFsfHwiIikrIiAiK3QpKX07dmFyIGk9bihyKDExMDcpKTtlLmV4cG9ydHM9dC5kZWZhdWx0fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5jbGFzc0xpc3Q/ISF0JiZlLmNsYXNzTGlzdC5jb250YWlucyh0KTotMSE9PSgiICIrKGUuY2xhc3NOYW1lLmJhc2VWYWx8fGUuY2xhc3NOYW1lKSsiICIpLmluZGV4T2YoIiAiK3QrIiAiKX0sZS5leHBvcnRzPXQuZGVmYXVsdH0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUsdCl7cmV0dXJuIGUucmVwbGFjZShuZXcgUmVnRXhwKCIoXnxcXHMpIit0KyIoPzpcXHN8JCkiLCJnIiksIiQxIikucmVwbGFjZSgvXHMrL2csIiAiKS5yZXBsYWNlKC9eXHMqfFxzKiQvZywiIil9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7ZS5jbGFzc0xpc3Q/ZS5jbGFzc0xpc3QucmVtb3ZlKHQpOiJzdHJpbmciPT09dHlwZW9mIGUuY2xhc3NOYW1lP2UuY2xhc3NOYW1lPW4oZS5jbGFzc05hbWUsdCk6ZS5zZXRBdHRyaWJ1dGUoImNsYXNzIixuKGUuY2xhc3NOYW1lJiZlLmNsYXNzTmFtZS5iYXNlVmFsfHwiIix0KSl9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9dm9pZCAwO2EocigwKSk7dmFyIG49YShyKDEpKSxpPXIoMjAwKSxvPWEocig1MDApKTtmdW5jdGlvbiBhKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX12YXIgcz1mdW5jdGlvbihlKXt2YXIgdCxyO2Z1bmN0aW9uIGEoKXtmb3IodmFyIHQscj1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7aSsrKW5baV09YXJndW1lbnRzW2ldO3JldHVybih0PWUuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQobikpfHx0aGlzKS5oYW5kbGVFbnRlcj1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXJbbl09YXJndW1lbnRzW25dO3JldHVybiB0LmhhbmRsZUxpZmVjeWNsZSgib25FbnRlciIsMCxyKX0sdC5oYW5kbGVFbnRlcmluZz1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXJbbl09YXJndW1lbnRzW25dO3JldHVybiB0LmhhbmRsZUxpZmVjeWNsZSgib25FbnRlcmluZyIsMCxyKX0sdC5oYW5kbGVFbnRlcmVkPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspcltuXT1hcmd1bWVudHNbbl07cmV0dXJuIHQuaGFuZGxlTGlmZWN5Y2xlKCJvbkVudGVyZWQiLDAscil9LHQuaGFuZGxlRXhpdD1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXJbbl09YXJndW1lbnRzW25dO3JldHVybiB0LmhhbmRsZUxpZmVjeWNsZSgib25FeGl0IiwxLHIpfSx0LmhhbmRsZUV4aXRpbmc9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShlKSxuPTA7bjxlO24rKylyW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gdC5oYW5kbGVMaWZlY3ljbGUoIm9uRXhpdGluZyIsMSxyKX0sdC5oYW5kbGVFeGl0ZWQ9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShlKSxuPTA7bjxlO24rKylyW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gdC5oYW5kbGVMaWZlY3ljbGUoIm9uRXhpdGVkIiwxLHIpfSx0fXI9ZSwodD1hKS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShyLnByb3RvdHlwZSksdC5wcm90b3R5cGUuY29uc3RydWN0b3I9dCx0Ll9fcHJvdG9fXz1yO3ZhciBzPWEucHJvdG90eXBlO3JldHVybiBzLmhhbmRsZUxpZmVjeWNsZT1mdW5jdGlvbihlLHQscil7dmFyIG8sYT10aGlzLnByb3BzLmNoaWxkcmVuLHM9bi5kZWZhdWx0LkNoaWxkcmVuLnRvQXJyYXkoYSlbdF07cy5wcm9wc1tlXSYmKG89cy5wcm9wcylbZV0uYXBwbHkobyxyKSx0aGlzLnByb3BzW2VdJiZ0aGlzLnByb3BzW2VdKCgwLGkuZmluZERPTU5vZGUpKHRoaXMpKX0scy5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByb3BzLHQ="
}

Changelog:

{
    "2020.04.17 15:39": "base64:Z2UpKDAsaC0xKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4tMS8wfSkpLmNvbmNhdChbdl0pO3JldHVybiByPmE/KDAsaS5yZXZlcnNlKShtKTptfWlmKGc9PT12KXJldHVybiBsKGcsaCxwKTt2YXIgYj1mdW5jdGlvbiBlKHQscixpLG8pe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTowO2lmKCFOdW1iZXIuaXNGaW5pdGUoKHItdCkvKGktMSkpKXJldHVybntzdGVwOm5ldyBuLmRlZmF1bHQoMCksdGlja01pbjpuZXcgbi5kZWZhdWx0KDApLHRpY2tNYXg6bmV3IG4uZGVmYXVsdCgwKX07dmFyIHMsdT1mKG5ldyBuLmRlZmF1bHQocikuc3ViKHQpLmRpdihpLTEpLG8sYSk7cz10PD0wJiZyPj0wP25ldyBuLmRlZmF1bHQoMCk6KHM9bmV3IG4uZGVmYXVsdCh0KS5hZGQocikuZGl2KDIpKS5zdWIobmV3IG4uZGVmYXVsdChzKS5tb2QodSkpO3ZhciBjPU1hdGguY2VpbChzLnN1Yih0KS5kaXYodSkudG9OdW1iZXIoKSksbD1NYXRoLmNlaWwobmV3IG4uZGVmYXVsdChyKS5zdWIocykuZGl2KHUpLnRvTnVtYmVyKCkpLGg9YytsKzE7cmV0dXJuIGg+aT9lKHQscixpLG8sYSsxKTooaDxpJiYobD1yPjA/bCsoaS1oKTpsLGM9cj4wP2M6YysoaS1oKSkse3N0ZXA6dSx0aWNrTWluOnMuc3ViKG5ldyBuLmRlZmF1bHQoYykubXVsKHUpKSx0aWNrTWF4OnMuYWRkKG5ldyBuLmRlZmF1bHQobCkubXVsKHUpKX0pfShnLHYsZCxwKSxfPWIuc3RlcCxTPWIudGlja01pbixFPWIudGlja01heCx3PW8uZGVmYXVsdC5yYW5nZVN0ZXAoUyxFLmFkZChuZXcgbi5kZWZhdWx0KC4xKS5tdWwoXykpLF8pO3JldHVybiByPmE/KDAsaS5yZXZlcnNlKSh3KTp3fSk7dC5nZXROaWNlVGlja1ZhbHVlcz1oO3ZhciBwPSgwLGkubWVtb2l6ZSkoZnVuY3Rpb24oZSl7dmFyIHQ9dShlLDIpLHI9dFswXSxvPXRbMV0sYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06NixzPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0saD1NYXRoLm1heChhLDIpLHA9dShjKFtyLG9dKSwyKSxkPXBbMF0seT1wWzFdO2lmKGQ9PT0tMS8wfHx5PT09MS8wKXJldHVybltyLG9dO2lmKGQ9PT15KXJldHVybiBsKGQsYSxzKTt2YXIgZz1mKG5ldyBuLmRlZmF1bHQoeSkuc3ViKGQpLmRpdihoLTEpLHMsMCksdj0oMCxpLmNvbXBvc2UpKCgwLGkubWFwKShmdW5jdGlvbihlKXtyZXR1cm4gbmV3IG4uZGVmYXVsdChkKS5hZGQobmV3IG4uZGVmYXVsdChlKS5tdWwoZykpLnRvTnVtYmVyKCl9KSxpLnJhbmdlKSgwLGgpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZT49ZCYmZTw9eX0pO3JldHVybiByPm8/KDAsaS5yZXZlcnNlKSh2KTp2fSk7dC5nZXRUaWNrVmFsdWVzPXA7dmFyIGQ9KDAsaS5tZW1vaXplKShmdW5jdGlvbihlLHQpe3ZhciByPXUoZSwyKSxhPXJbMF0sbD1yWzFdLGg9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxwPXUoYyhbYSxsXSksMiksZD1wWzBdLHk9cFsxXTtpZihkPT09LTEvMHx8eT09PTEvMClyZXR1cm5bYSxsXTtpZihkPT09eSlyZXR1cm5bZF07dmFyIGc9TWF0aC5tYXgodCwyKSx2PWYobmV3IG4uZGVmYXVsdCh5KS5zdWIoZCkuZGl2KGctMSksaCwwKSxtPXMoby5kZWZhdWx0LnJhbmdlU3RlcChuZXcgbi5kZWZhdWx0KGQpLG5ldyBuLmRlZmF1bHQoeSkuc3ViKG5ldyBuLmRlZmF1bHQoLjk5KS5tdWwodikpLHYpKS5jb25jYXQoW3ldKTtyZXR1cm4gYT5sPygwLGkucmV2ZXJzZSkobSk6bX0pO3QuZ2V0VGlja1ZhbHVlc0ZpeGVkRG9tYWluPWR9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG4saT0obj1yKDQ5MikpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxvPXIoNDkzKTt2YXIgYT17cmFuZ2VTdGVwOmZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIG49bmV3IGkuZGVmYXVsdChlKSxvPVtdO24ubHQodCk7KW8ucHVzaChuLnRvTnVtYmVyKCkpLG49bi5hZGQocik7cmV0dXJuIG99LGdldERpZ2l0Q291bnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lPzE6TWF0aC5mbG9vcihuZXcgaS5kZWZhdWx0KGUpLmFicygpLmxvZygxMCkudG9OdW1iZXIoKSkrMX0saW50ZXJwb2xhdGVOdW1iZXI6KDAsby5jdXJyeSkoZnVuY3Rpb24oZSx0LHIpe3ZhciBuPStlO3JldHVybiBuK3IqKCt0LW4pfSksdW5pbnRlcnBvbGF0ZU51bWJlcjooMCxvLmN1cnJ5KShmdW5jdGlvbihlLHQscil7dmFyIG49dC0rZTtyZXR1cm4oci1lKS8obj1ufHwxLzApfSksdW5pbnRlcnBvbGF0ZVRydW5jYXRpb246KDAsby5jdXJyeSkoZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXQtK2U7cmV0dXJuIG49bnx8MS8wLE1hdGgubWF4KDAsTWF0aC5taW4oMSwoci1lKS9uKSl9KX07dC5kZWZhdWx0PWF9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDI5MiksaT1yKDQ5NCksbz1yKDQ5NiksYT1yKDI5Mykscz1yKDEwODQpLHU9cigyOTQpLGM9MjAwO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQscil7dmFyIGY9LTEsbD1pLGg9ZS5sZW5ndGgscD0hMCxkPVtdLHk9ZDtpZihyKXA9ITEsbD1vO2Vsc2UgaWYoaD49Yyl7dmFyIGc9dD9udWxsOnMoZSk7aWYoZylyZXR1cm4gdShnKTtwPSExLGw9YSx5PW5ldyBufWVsc2UgeT10P1tdOmQ7ZTpmb3IoOysrZjxoOyl7dmFyIHY9ZVtmXSxtPXQ/dCh2KTp2O2lmKHY9cnx8MCE9PXY/djowLHAmJm09PT1tKXtmb3IodmFyIGI9eS5sZW5ndGg7Yi0tOylpZih5W2JdPT09bSljb250aW51ZSBlO3QmJnkucHVzaChtKSxkLnB1c2godil9ZWxzZSBsKHksbSxyKXx8KHkhPT1kJiZ5LnB1c2gobSksZC5wdXNoKHYpKX1yZXR1cm4gZH19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDQ5NSksaT1yKDEwODIpLG89cigxMDgzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB0PT09dD9vKGUsdCxyKTpuKGUsaSxyKX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBlIT09ZX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIG49ci0xLGk9ZS5sZW5ndGg7KytuPGk7KWlmKGVbbl09PT10KXJldHVybiBuO3JldHVybi0xfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNDgxKSxpPXIoMTA4NSksbz1yKDI5NCksYT1uJiYxL28obmV3IG4oWywtMF0pKVsxXT09MS8wP2Z1bmN0aW9uKGUpe3JldHVybiBuZXcgbihlKX06aTtlLmV4cG9ydHM9YX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt9fSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxOTgpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciByO3JldHVybiBuKGUsZnVuY3Rpb24oZSxuLGkpe3JldHVybiEocj10KGUsbixpKSl9KSwhIXJ9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj0tMSxuPW51bGw9PWU/MDplLmxlbmd0aDsrK3I8bjspaWYoIXQoZVtyXSxyLGUpKXJldHVybiExO3JldHVybiEwfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTk4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgcj0hMDtyZXR1cm4gbihlLGZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gcj0hIXQoZSxuLGkpfSkscn19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDQ5MCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXsiX19wcm90b19fIj09dCYmbj9uKGUsdCx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6cix3cml0YWJsZTohMH0pOmVbdF09cn19LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gcihlLHQscil7ZSBpbnN0YW5jZW9mIFJlZ0V4cCYmKGU9bihlLHIpKSx0IGluc3RhbmNlb2YgUmVnRXhwJiYodD1uKHQscikpO3ZhciBvPWkoZSx0LHIpO3JldHVybiBvJiZ7c3RhcnQ6b1swXSxlbmQ6b1sxXSxwcmU6ci5zbGljZSgwLG9bMF0pLGJvZHk6ci5zbGljZShvWzBdK2UubGVuZ3RoLG9bMV0pLHBvc3Q6ci5zbGljZShvWzFdK3QubGVuZ3RoKX19ZnVuY3Rpb24gbihlLHQpe3ZhciByPXQubWF0Y2goZSk7cmV0dXJuIHI/clswXTpudWxsfWZ1bmN0aW9uIGkoZSx0LHIpe3ZhciBuLGksbyxhLHMsdT1yLmluZGV4T2YoZSksYz1yLmluZGV4T2YodCx1KzEpLGY9dTtpZih1Pj0wJiZjPjApe2ZvcihuPVtdLG89ci5sZW5ndGg7Zj49MCYmIXM7KWY9PXU/KG4ucHVzaChmKSx1PXIuaW5kZXhPZihlLGYrMSkpOjE9PW4ubGVuZ3RoP3M9W24ucG9wKCksY106KChpPW4ucG9wKCkpPG8mJihvPWksYT1jKSxjPXIuaW5kZXhPZih0LGYrMSkpLGY9dTxjJiZ1Pj0wP3U6YztuLmxlbmd0aCYmKHM9W28sYV0pfXJldHVybiBzfWUuZXhwb3J0cz1yLHIucmFuZ2U9aX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTA5Mik7ZnVuY3Rpb24gaShlLHQscil7dmFyIG89ZTtyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgcj1bXSxpPSJzdHJpbmciPT09dHlwZW9mIHQ/bmV3IFJlZ0V4cCgiXFxiKCIrdCsiKVxcKCIpOnQ7ZG97dmFyIG89aS5leGVjKGUpO2lmKCFvKXJldHVybiByO2lmKHZvaWQgMD09PW9bMV0pdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHRoZSBmaXJzdCBjb3VwbGUgb2YgcGFyZW50aGVzaXMgdG8gZ2V0IHRoZSBmdW5jdGlvbiBpZGVudGlmaWVyIGluICIrdCk7dmFyIGE9b1sxXSxzPW8uaW5kZXgsdT1uKCIoIiwiKSIsZS5zdWJzdHJpbmcocykpO2lmKCF1fHx1LnN0YXJ0IT09b1swXS5sZW5ndGgtMSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoYSsiKCk6IG1pc3NpbmcgY2xvc2luZyAnKScgaW4gdGhlIHZhbHVlICciK2UrIiciKTtyLnB1c2goe21hdGNoZXM6dSxmdW5jdGlvbklkZW50aWZpZXI6YX0pLGU9dS5wb3N0fXdoaWxlKGkudGVzdChlKSk7cmV0dXJuIHJ9KGUsdCkucmVkdWNlKGZ1bmN0aW9uKGUsbil7cmV0dXJuIGUucmVwbGFjZShuLmZ1bmN0aW9uSWRlbnRpZmllcisiKCIrbi5tYXRjaGVzLmJvZHkrIikiLGZ1bmN0aW9uKGUsdCxyLG4sbyl7cmV0dXJuIHIoaShlLG8sciksdCxuKX0obi5tYXRjaGVzLmJvZHksbi5mdW5jdGlvbklkZW50aWZpZXIscixvLHQpKX0sZSl9ZS5leHBvcnRzPWl9LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gcihlLHQscil7ZSBpbnN0YW5jZW9mIFJlZ0V4cCYmKGU9bihlLHIpKSx0IGluc3RhbmNlb2YgUmVnRXhwJiYodD1uKHQscikpO3ZhciBvPWkoZSx0LHIpO3JldHVybiBvJiZ7c3RhcnQ6b1swXSxlbmQ6b1sxXSxwcmU6ci5zbGljZSgwLG9bMF0pLGJvZHk6ci5zbGljZShvWzBdK2UubGVuZ3RoLG9bMV0pLHBvc3Q6ci5zbGljZShvWzFdK3QubGVuZ3RoKX19ZnVuY3Rpb24gbihlLHQpe3ZhciByPXQubWF0Y2goZSk7cmV0dXJuIHI/clswXTpudWxsfWZ1bmN0aW9uIGkoZSx0LHIpe3ZhciBuLGksbyxhLHMsdT1yLmluZGV4T2YoZSksYz1yLmluZGV4T2YodCx1KzEpLGY9dTtpZih1Pj0wJiZjPjApe2ZvcihuPVtdLG89ci5sZW5ndGg7Zj49MCYmIXM7KWY9PXU/KG4ucHVzaChmKSx1PXIuaW5kZXhPZihlLGYrMSkpOjE9PW4ubGVuZ3RoP3M9W24ucG9wKCksY106KChpPW4ucG9wKCkpPG8mJihvPWksYT1jKSxjPXIuaW5kZXhPZih0LGYrMSkpLGY9dTxjJiZ1Pj0wP3U6YztuLmxlbmd0aCYmKHM9W28sYV0pfXJldHVybiBzfWUuZXhwb3J0cz1yLHIucmFuZ2U9aX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTA5NCk7bi5wcm90b3R5cGUuZm9ybXVsYUV2YWw9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Zm9yKHZhciBlLHQscixuPVtdLGk9dGhpcy52YWx1ZSxvPTA7bzxpLmxlbmd0aDtvKyspMT09PWlbb10udHlwZXx8Mz09PWlbb10udHlwZT9uLnB1c2goe3ZhbHVlOjM9PT1pW29dLnR5cGU/aVtvXS5zaG93Omlbb10udmFsdWUsdHlwZToxfSk6MTM9PT1pW29dLnR5cGU/bi5wdXNoKHt2YWx1ZTppW29dLnNob3csdHlwZToxfSk6MD09PWlbb10udHlwZT9uW24ubGVuZ3RoLTFdPXt2YWx1ZTppW29dLnNob3crKCItIiE9aVtvXS5zaG93PyIoIjoiIikrbltuLmxlbmd0aC0xXS52YWx1ZSsoIi0iIT1pW29dLnNob3c/IikiOiIiKSx0eXBlOjB9Ojc9PT1pW29dLnR5cGU/bltuLmxlbmd0aC0xXT17dmFsdWU6KDEhPW5bbi5sZW5ndGgtMV0udHlwZT8iKCI6IiIpK25bbi5sZW5ndGgtMV0udmFsdWUrKDEhPW5bbi5sZW5ndGgtMV0udHlwZT8iKSI6IiIpK2lbb10uc2hvdyx0eXBlOjd9OjEwPT09aVtvXS50eXBlPyhlPW4ucG9wKCksdD1uLnBvcCgpLCJQIj09PWlbb10uc2hvd3x8IkMiPT09aVtvXS5zaG93P24ucHVzaCh7dmFsdWU6IjxzdXA+Iit0LnZhbHVlKyI8L3N1cD4iK2lbb10uc2hvdysiPHN1Yj4iK2UudmFsdWUrIjwvc3ViPiIsdHlwZToxMH0pOm4ucHVzaCh7dmFsdWU6KDEhPXQudHlwZT8iKCI6IiIpK3QudmFsdWUrKDEhPXQudHlwZT8iKSI6IiIpKyI8c3VwPiIrZS52YWx1ZSsiPC9zdXA+Iix0eXBlOjF9KSk6Mj09PWlbb10udHlwZXx8OT09PWlbb10udHlwZT8oZT1uLnBvcCgpLHQ9bi5wb3AoKSxuLnB1c2goe3ZhbHVlOigxIT10LnR5cGU/IigiOiIiKSt0LnZhbHVlKygxIT10LnR5cGU/IikiOiIiKStpW29dLnNob3crKDEhPWUudHlwZT8iKCI6IiIpK2UudmFsdWUrKDEhPWUudHlwZT8iKSI6IiIpLHR5cGU6aVtvXS50eXBlfSkpOjEyPT09aVtvXS50eXBlJiYoZT1uLnBvcCgpLHQ9bi5wb3AoKSxyPW4ucG9wKCksbi5wdXNoKHt2YWx1ZTppW29dLnNob3crIigiK3IudmFsdWUrIiwiK3QudmFsdWUrIiwiK2UudmFsdWUrIikiLHR5cGU6MTJ9KSk7cmV0dXJuIG5bMF0udmFsdWV9LGUuZXhwb3J0cz1ufSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMDk1KTtuLnByb3RvdHlwZS5wb3N0Zml4RXZhbD1mdW5jdGlvbihlKXsidXNlIHN0cmljdCI7KGU9ZXx8e30pLlBJPU1hdGguUEksZS5FPU1hdGguRTtmb3IodmFyIHQscixpLG89W10sYT10aGlzLnZhbHVlLHM9InVuZGVmaW5lZCIhPT10eXBlb2YgZS5uLHU9MDt1PGEubGVuZ3RoO3UrKykxPT09YVt1XS50eXBlP28ucHVzaCh7dmFsdWU6YVt1XS52YWx1ZSx0eXBlOjF9KTozPT09YVt1XS50eXBlP28ucHVzaCh7dmFsdWU6ZVthW3VdLnZhbHVlXSx0eXBlOjF9KTowPT09YVt1XS50eXBlPyJ1bmRlZmluZWQiPT09dHlwZW9mIG9bby5sZW5ndGgtMV0udHlwZT9vW28ubGVuZ3RoLTFdLnZhbHVlLnB1c2goYVt1XSk6b1tvLmxlbmd0aC0xXS52YWx1ZT1hW3VdLnZhbHVlKG9bby5sZW5ndGgtMV0udmFsdWUpOjc9PT1hW3VdLnR5cGU/InVuZGVmaW5lZCI9PT10eXBlb2Ygb1tvLmxlbmd0aC0xXS50eXBlP29bby5sZW5ndGgtMV0udmFsdWUucHVzaChhW3VdKTpvW28ubGVuZ3RoLTFdLnZhbHVlPWFbdV0udmFsdWUob1tvLmxlbmd0aC0xXS52YWx1ZSk6OD09PWFbdV0udHlwZT8odD1vLnBvcCgpLHI9by5wb3AoKSxvLnB1c2goe3R5cGU6MSx2YWx1ZTphW3VdLnZhbHVlKHIudmFsdWUsdC52YWx1ZSl9KSk6MTA9PT1hW3VdLnR5cGU/KHQ9by5wb3AoKSwidW5kZWZpbmVkIj09PXR5cGVvZihyPW8ucG9wKCkpLnR5cGU/KHIudmFsdWU9ci5jb25jYXQodCksci52YWx1ZS5wdXNoKGFbdV0pLG8ucHVzaChyKSk6InVuZGVmaW5lZCI9PT10eXBlb2YgdC50eXBlPyh0LnVuc2hpZnQociksdC5wdXNoKGFbdV0pLG8ucHVzaCh0KSk6by5wdXNoKHt0eXBlOjEsdmFsdWU6YVt1XS52YWx1ZShyLnZhbHVlLHQudmFsdWUpfSkpOjI9PT1hW3VdLnR5cGV8fDk9PT1hW3VdLnR5cGU/KHQ9by5wb3AoKSwidW5kZWZpbmVkIj09PXR5cGVvZihyPW8ucG9wKCkpLnR5cGU/KGNvbnNvbGUubG9nKHIpLChyPXIuY29uY2F0KHQpKS5wdXNoKGFbdV0pLG8ucHVzaChyKSk6InVuZGVmaW5lZCI9PT10eXBlb2YgdC50eXBlPyh0LnVuc2hpZnQociksdC5wdXNoKGFbdV0pLG8ucHVzaCh0KSk6by5wdXNoKHt0eXBlOjEsdmFsdWU6YVt1XS52YWx1ZShyLnZhbHVlLHQudmFsdWUpfSkpOjEyPT09YVt1XS50eXBlPygidW5kZWZpbmVkIiE9PXR5cGVvZih0PW8ucG9wKCkpLnR5cGUmJih0PVt0XSkscj1vLnBvcCgpLGk9by5wb3AoKSxvLnB1c2goe3R5cGU6MSx2YWx1ZTphW3VdLnZhbHVlKGkudmFsdWUsci52YWx1ZSxuZXcgbih0KSl9KSk6MTM9PT1hW3VdLnR5cGUmJihzP28ucHVzaCh7dmFsdWU6ZVthW3VdLnZhbHVlXSx0eXBlOjN9KTpvLnB1c2goW2FbdV1dKSk7aWYoby5sZW5ndGg+MSl0aHJvdyBuZXcgbi5leGNlcHRpb24oIlVuY2F1Z2h0IFN5bnRheCBlcnJvciIpO3JldHVybiBvWzBdLnZhbHVlPjFlMTU/IkluZmluaXR5IjpwYXJzZUZsb2F0KG9bMF0udmFsdWUudG9GaXhlZCgxNSkpfSxuLmV2YWw9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiJ1bmRlZmluZWQiPT09dHlwZW9mIHQ/dGhpcy5sZXgoZSkudG9Qb3N0Zml4KCkucG9zdGZpeEV2YWwoKToidW5kZWZpbmVkIj09PXR5cGVvZiByPyJ1bmRlZmluZWQiIT09dHlwZW9mIHQubGVuZ3RoP3RoaXMubGV4KGUsdCkudG9Qb3N0Zml4KCkucG9zdGZpeEV2YWwoKTp0aGlzLmxleChlKS50b1Bvc3RmaXgoKS5wb3N0Zml4RXZhbCh0KTp0aGlzLmxleChlLHQpLnRvUG9zdGZpeCgpLnBvc3RmaXhFdmFsKHIpfSxlLmV4cG9ydHM9bn0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTA5Nik7bi5wcm90b3R5cGUudG9Qb3N0Zml4PWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Zvcih2YXIgZSx0LHIsaSxvLGE9W10scz1be3ZhbHVlOiIoIix0eXBlOjQscHJlOjB9XSx1PXRoaXMudmFsdWUsYz0xO2M8dS5sZW5ndGg7YysrKWlmKDE9PT11W2NdLnR5cGV8fDM9PT11W2NdLnR5cGV8fDEzPT09dVtjXS50eXBlKTE9PT11W2NdLnR5cGUmJih1W2NdLnZhbHVlPU51bWJlcih1W2NdLnZhbHVlKSksYS5wdXNoKHVbY10pO2Vsc2UgaWYoND09PXVbY10udHlwZSlzLnB1c2godVtjXSk7ZWxzZSBpZig1PT09dVtjXS50eXBlKWZvcig7NCE9PSh0PXMucG9wKCkpLnR5cGU7KWEucHVzaCh0KTtlbHNlIGlmKDExPT09dVtjXS50eXBlKXtmb3IoOzQhPT0odD1zLnBvcCgpKS50eXBlOylhLnB1c2godCk7cy5wdXNoKHQpfWVsc2V7aT0oZT11W2NdKS5wcmUscj0obz1zW3MubGVuZ3RoLTFdKS5wcmU7dmFyIGY9Ik1hdGgucG93Ij09by52YWx1ZSYmIk1hdGgucG93Ij09ZS52YWx1ZTtpZihpPnIpcy5wdXNoKGUpO2Vsc2V7Zm9yKDtyPj1pJiYhZnx8ZiYmaTxyOyl0PXMucG9wKCksbz1zW3MubGVuZ3RoLTFdLGEucHVzaCh0KSxyPW8ucHJlLGY9Ik1hdGgucG93Ij09ZS52YWx1ZSYmIk1hdGgucG93Ij09by52YWx1ZTtzLnB1c2goZSl9fXJldHVybiBuZXcgbihhKX0sZS5leHBvcnRzPW59LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEwOTcpO2Z1bmN0aW9uIG8oZSx0KXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyllW3JdKz10O3JldHVybiBlfXZhciBhPVsic2luIiwiY29zIiwidGFuIiwicGkiLCIoIiwiKSIsIlAiLCJDIiwiYXNpbiIsImFjb3MiLCJhdGFuIiwiNyIsIjgiLCI5IiwiaW50IiwiY29zaCIsImFjb3NoIiwibG4iLCJeIiwicm9vdCIsIjQiLCI1IiwiNiIsIi8iLCIhIiwidGFuaCIsImF0YW5oIiwiTW9kIiwiMSIsIjIiLCIzIiwiKiIsInNpbmgiLCJhc2luaCIsImUiLCJsb2ciLCIwIiwiLiIsIisiLCItIiwiLCIsIlNpZ21hIiwibiIsIlBpIiwicG93Il0scz1bInNpbiIsImNvcyIsInRhbiIsIiZwaTsiLCIoIiwiKSIsIlAiLCJDIiwiYXNpbiIsImFjb3MiLCJhdGFuIiwiNyIsIjgiLCI5IiwiSW50IiwiY29zaCIsImFjb3NoIiwiIGxuIiwiXiIsInJvb3QiLCI0IiwiNSIsIjYiLCImZGl2aWRlOyIsIiEiLCJ0YW5oIiwiYXRhbmgiLCIgTW9kICIsIjEiLCIyIiwiMyIsIiZ0aW1lczsiLCJzaW5oIiwiYXNpbmgiLCJlIiwiIGxvZyIsIjAiLCIuIiwiKyIsIi0iLCIsIiwiJlNpZ21hOyIsIm4iLCImUGk7IiwicG93Il0sdT1bbi5tYXRoLnNpbixuLm1hdGguY29zLG4ubWF0aC50YW4sIlBJIiwiKCIsIikiLG4ubWF0aC5QLG4ubWF0aC5DLG4ubWF0aC5hc2luLG4ubWF0aC5hY29zLG4ubWF0aC5hdGFuLCI3IiwiOCIsIjkiLE1hdGguZmxvb3Isbi5tYXRoLmNvc2gsbi5tYXRoLmFjb3NoLE1hdGgubG9nLE1hdGgucG93LE1hdGguc3FydCwiNCIsIjUiLCI2IixuLm1hdGguZGl2LG4ubWF0aC5mYWN0LG4ubWF0aC50YW5oLG4ubWF0aC5hdGFuaCxuLm1hdGgubW9kLCIxIiwiMiIsIjMiLG4ubWF0aC5tdWwsbi5tYXRoLnNpbmgsbi5tYXRoLmFzaW5oLCJFIixuLm1hdGgubG9nLCIwIiwiLiIsbi5tYXRoLmFkZCxuLm1hdGguc3ViLCIsIixuLm1hdGguc2lnbWEsIm4iLG4ubWF0aC5QaSxNYXRoLnBvd10sYz17MDoxMSwxOjAsMjozLDM6MCw0OjAsNTowLDY6MCw3OjExLDg6MTEsOToxLDEwOjEwLDExOjAsMTI6MTEsMTM6MH0sZj1bMCwwLDAsMyw0LDUsMTAsMTAsMCwwLDAsMSwxLDEsMCwwLDAsMCwxMCwwLDEsMSwxLDIsNywwLDAsMiwxLDEsMSwyLDAsMCwzLDAsMSw2LDksOSwxMSwxMiwxMywxMiw4XSxsPXswOiEwLDE6ITAsMzohMCw0OiEwLDY6ITAsODohMCw5OiEwLDEyOiEwLDEzOiEwfSxoPXswOiEwLDE6ITAsMjohMCwzOiEwLDQ6ITAsNTohMCw2OiEwLDc6ITAsODohMCw5OiEwLDEwOiEwLDExOiEwLDEyOiEwLDEzOiEwfSxwPXswOiEwLDM6ITAsNDohMCw4OiEwLDEyOiEwLDEzOiEwfSxkPXt9LGc9ezA6ITAsMTohMCwzOiEwLDQ6ITAsNjohMCw4OiEwLDEyOiEwLDEzOiEwfSx2PXsxOiEwfSxtPVtbXSxbIjEiLCIyIiwiMyIsIjciLCI4IiwiOSIsIjQiLCI1IiwiNiIsIisiLCItIiwiKiIsIi8iLCIoIiwiKSIsIl4iLCIhIiwiUCIsIkMiLCJlIiwiMCIsIi4iLCIsIiwibiJdLFsicGkiLCJsbiIsIlBpIl0sWyJzaW4iLCJjb3MiLCJ0YW4iLCJEZWwiLCJpbnQiLCJNb2QiLCJsb2ciLCJwb3ciXSxbImFzaW4iLCJhY29zIiwiYXRhbiIsImNvc2giLCJyb290IiwidGFuaCIsInNpbmgiXSxbImFjb3NoIiwiYXRhbmgiLCJhc2luaCIsIlNpZ21hIl1dO2Z1bmN0aW9uIGIoZSx0LHIsbil7Zm9yKHZhciBpPTA7aTxuO2krKylpZihlW3IraV0hPT10W2ldKXJldHVybiExO3JldHVybiEwfW4uYWRkVG9rZW49ZnVuY3Rpb24oZSl7Zm9yKGk9MDtpPGUubGVuZ3RoO2krKyl7eD1lW2ldLnRva2VuLmxlbmd0aDt2YXIgdD0tMTtpZih4PG0ubGVuZ3RoKWZvcih5PTA7eTxtW3hdLmxlbmd0aDt5KyspaWYoZVtpXS50b2tlbj09PW1beF1beV0pe3Q9YS5pbmRleE9mKG1beF1beV0pO2JyZWFrfS0xPT09dD8oYS5wdXNoKGVbaV0udG9rZW4pLGYucHVzaChlW2ldLnR5cGUpLG0ubGVuZ3RoPD1lW2ldLnRva2VuLmxlbmd0aCYmKG1bZVtpXS50b2tlbi5sZW5ndGhdPVtdKSxtW2VbaV0udG9rZW4ubGVuZ3RoXS5wdXNoKGVbaV0udG9rZW4pLHUucHVzaChlW2ldLnZhbHVlKSxzLnB1c2goZVtpXS5zaG93KSk6KGFbdF09ZVtpXS50b2tlbixmW3RdPWVbaV0udHlwZSx1W3RdPWVbaV0udmFsdWUsc1t0XT1lW2ldLnNob3cpfX0sbi5sZXg9ZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7dmFyIHIsaSx5LF8sUz1be3R5cGU6NCx2YWx1ZToiKCIsc2hvdzoiKCIscHJlOjB9XSxFPVtdLHc9ZSxUPTAsQT1sLEM9MCx4PWQsST0iIjsidW5kZWZpbmVkIiE9PXR5cGVvZiB0JiZuLmFkZFRva2VuKHQpO3ZhciBrPXt9O2ZvcihpPTA7aTx3Lmxlbmd0aDtpKyspaWYoIiAiIT13W2ldKXtyPSIiO2U6Zm9yKHk9dy5sZW5ndGgtaT5tLmxlbmd0aC0yP20ubGVuZ3RoLTE6dy5sZW5ndGgtaTt5PjA7eS0tKWZvcihfPTA7XzxtW3ldLmxlbmd0aDtfKyspaWYoYih3LG1beV1bX10saSx5KSl7cj1tW3ldW19dO2JyZWFrIGV9aWYoaSs9ci5sZW5ndGgtMSwiIj09PXIpdGhyb3cgbmV3IG4uZXhjZXB0aW9uKCJDYW4ndCB1bmRlcnN0YW5kIGFmdGVyICIrdy5zbGljZShpKSk7dmFyIE89YS5pbmRleE9mKHIpLE49cixQPWZbT10sUj11W09dLEI9Y1tQXSxNPXNbT10sTD1TW1MubGVuZ3RoLTFdO2ZvcihEPUUubGVuZ3RoO0QtLTspaWYoMD09PUVbRF0mJi0xIT09WzAsMiwzLDUsOSwxMSwxMiwxM10uaW5kZXhPZihQKSl7aWYoITAhPT1BW1BdKXRocm93IG5ldyBuLmV4Y2VwdGlvbihyKyIgaXMgbm90IGFsbG93ZWQgYWZ0ZXIgIitJKTtTLnB1c2goe3ZhbHVlOiIpIix0eXBlOjUscHJlOjAsc2hvdzoiKSJ9KSxBPWgseD1nLG8oRSwtMSkucG9wKCl9aWYoITAhPT1BW1BdKXRocm93IG5ldyBuLmV4Y2VwdGlvbihyKyIgaXMgbm90IGFsbG93ZWQgYWZ0ZXIgIitJKTtpZighMD09PXhbUF0mJihQPTIsUj1uLm1hdGgubXVsLE09IiZ0aW1lczsiLEI9MyxpLT1yLmxlbmd0aCksaz17dmFsdWU6Uix0eXBlOlAscHJlOkIsc2hvdzpNfSwwPT09UClBPWwseD1kLG8oRSwyKS5wdXNoKDIpLFMucHVzaChrKSxTLnB1c2goe3ZhbHVlOiIoIix0eXBlOjQscHJlOjAsc2hvdzoiKCJ9KTtlbHNlIGlmKDE9PT1QKTE9PT1MLnR5cGU/KEwudmFsdWUrPVIsbyhFLDEpKTpTLnB1c2goayksQT1oLHg9cDtlbHNlIGlmKDI9PT1QKUE9bCx4PWQsbyhFLDIpLFMucHVzaChrKTtlbHNlIGlmKDM9PT1QKVMucHVzaChrKSxBPWgseD1nO2Vsc2UgaWYoND09PVApVCs9RS5sZW5ndGgsRT1bXSxDKyssQT1sLHg9ZCxTLnB1c2goayk7ZWxzZSBpZig1PT09UCl7aWYoIUMpdGhyb3cgbmV3IG4uZXhjZXB0aW9uKCJDbG9zaW5nIHBhcmVudGhlc2lzIGFyZSBtb3JlIHRoYW4gb3BlbmluZyBvbmUsIHdhaXQgV2hhdCEhISIpO2Zvcig7VC0tOylTLnB1c2goe3ZhbHVlOiIpIix0eXBlOjUscHJlOjAsc2hvdzoiKSJ9KTtUPTAsQy0tLEE9aCx4PWcsUy5wdXNoKGspfWVsc2UgaWYoNj09PVApe2lmKEwuaGFzRGVjKXRocm93IG5ldyBuLmV4Y2VwdGlvbigiVHdvIGRlY2ltYWxzIGFyZSBub3QgYWxsb3dlZCBpbiBvbmUgbnVtYmVyIik7MSE9PUwudHlwZSYmKEw9e3ZhbHVlOjAsdHlwZToxLHByZTowfSxTLnB1c2goTCksbyhFLC0xKSksQT12LG8oRSwxKSx4PWQsTC52YWx1ZSs9UixMLmhhc0RlYz0hMH1lbHNlIDc9PT1QJiYoQT1oLHg9ZyxvKEUsMSksUy5wdXNoKGspKTs4PT09UD8oQT1sLHg9ZCxvKEUsNCkucHVzaCg0KSxTLnB1c2goayksUy5wdXNoKHt2YWx1ZToiKCIsdHlwZTo0LHByZTowLHNob3c6IigifSkpOjk9PT1QPyg5PT09TC50eXBlP0wudmFsdWU9PT1uLm1hdGguYWRkPyhMLnZhbHVlPVIsTC5zaG93PU0sbyhFLDEpKTpMLnZhbHVlPT09bi5tYXRoLnN1YiYmIi0iPT09TSYmKEwudmFsdWU9bi5tYXRoLmFkZCxMLnNob3c9IisiLG8oRSwxKSk6NSE9PUwudHlwZSYmNyE9PUwudHlwZSYmMSE9PUwudHlwZSYmMyE9PUwudHlwZSYmMTMhPT1MLnR5cGU/Ii0iPT09TiYmKEE9bCx4PWQsbyhFLDIpLnB1c2goMiksUy5wdXNoKHt2YWx1ZTpuLm1hdGguY2hhbmdlU2lnbix0eXBlOjAscHJlOjIxLHNob3c6Ii0ifSksUy5wdXNoKHt2YWx1ZToiKCIsdHlwZTo0LHByZTowLHNob3c6IigifSkpOihTLnB1c2goayksbyhFLDIpKSxBPWwseD1kKToxMD09PVA/KEE9bCx4PWQsbyhFLDIpLFMucHVzaChrKSk6MTE9PT1QPyhBPWwseD1kLFMucHVzaChrKSk6MTI9PT1QPyhBPWwseD1kLG8oRSw2KS5wdXNoKDYpLFMucHVzaChrKSxTLnB1c2goe3ZhbHVlOiIoIix0eXBlOjQscHJlOjB9KSk6MTM9PT1QJiYoQT1oLHg9ZyxTLnB1c2goaykpLG8oRSwtMSksST1yfWZvcih2YXIgRD1FLmxlbmd0aDtELS07KTA9PT1FW0RdJiYoUy5wdXNoKHt2YWx1ZToiKSIsc2hvdzoiKSIsdHlwZTo1LHByZTozfSksbyhFLC0xKS5wb3AoKSk7aWYoITAhPT1BWzVdKXRocm93IG5ldyBuLmV4Y2VwdGlvbigiY29tcGxldGUgdGhlIGV4cHJlc3Npb24iKTtmb3IoO0MtLTspUy5wdXNoKHt2YWx1ZToiKSIsc2hvdzoiKSIsdHlwZTo1LHByZTozfSk7cmV0dXJuIFMucHVzaCh7dHlwZTo1LHZhbHVlOiIpIixzaG93OiIpIixwcmU6MH0pLG5ldyBuKFMpfSxlLmV4cG9ydHM9bn0sZnVuY3Rpb24oZSx0KXt2YXIgcj1mdW5jdGlvbihlKXt0aGlzLnZhbHVlPWV9O3IubWF0aD17aXNEZWdyZWU6ITAsYWNvczpmdW5jdGlvbihlKXtyZXR1cm4gci5tYXRoLmlzRGVncmVlPzE4MC9NYXRoLlBJKk1hdGguYWNvcyhlKTpNYXRoLmFjb3MoZSl9LGFkZDpmdW5jdGlvbihlLHQpe3JldHVybiBlK3R9LGFzaW46ZnVuY3Rpb24oZSl7cmV0dXJuIHIubWF0aC5pc0RlZ3JlZT8xODAvTWF0aC5QSSpNYXRoLmFzaW4oZSk6TWF0aC5hc2luKGUpfSxhdGFuOmZ1bmN0aW9uKGUpe3JldHVybiByLm1hdGguaXNEZWdyZWU/MTgwL01hdGguUEkqTWF0aC5hdGFuKGUpOk1hdGguYXRhbihlKX0sYWNvc2g6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgubG9nKGUrTWF0aC5zcXJ0KGUqZS0xKSl9LGFzaW5oOmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLmxvZyhlK01hdGguc3FydChlKmUrMSkpfSxhdGFuaDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coKDErZSkvKDEtZSkpfSxDOmZ1bmN0aW9uKGUsdCl7dmFyIG49MSxpPWUtdCxvPXQ7bzxpJiYobz1pLGk9dCk7Zm9yKHZhciBhPW8rMTthPD1lO2ErKyluKj1hO3JldHVybiBuL3IubWF0aC5mYWN0KGkpfSxjaGFuZ2VTaWduOmZ1bmN0aW9uKGUpe3JldHVybi1lfSxjb3M6ZnVuY3Rpb24oZSl7cmV0dXJuIHIubWF0aC5pc0RlZ3JlZSYmKGU9ci5tYXRoLnRvUmFkaWFuKGUpKSxNYXRoLmNvcyhlKX0sY29zaDpmdW5jdGlvbihlKXtyZXR1cm4oTWF0aC5wb3coTWF0aC5FLGUpK01hdGgucG93KE1hdGguRSwtMSplKSkvMn0sZGl2OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUvdH0sZmFjdDpmdW5jdGlvbihlKXtpZihlJTEhPT0wKXJldHVybiJOQU4iO2Zvcih2YXIgdD0xLHI9MjtyPD1lO3IrKyl0Kj1yO3JldHVybiB0fSxpbnZlcnNlOmZ1bmN0aW9uKGUpe3JldHVybiAxL2V9LGxvZzpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZSkvTWF0aC5sb2coMTApfSxtb2Q6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSV0fSxtdWw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSp0fSxQOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPTEsbj1NYXRoLmZsb29yKGUpLU1hdGguZmxvb3IodCkrMTtuPD1NYXRoLmZsb29yKGUpO24rKylyKj1uO3JldHVybiByfSxQaTpmdW5jdGlvbihlLHQscil7Zm9yKHZhciBuPTEsaT1lO2k8PXQ7aSsrKW4qPU51bWJlcihyLnBvc3RmaXhFdmFsKHtuOml9KSk7cmV0dXJuIG59LHBvdzEweDpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTtlLS07KXQqPTEwO3JldHVybiB0fSxzaWdtYTpmdW5jdGlvbihlLHQscil7Zm9yKHZhciBuPTAsaT1lO2k8PXQ7aSsrKW4rPU51bWJlcihyLnBvc3RmaXhFdmFsKHtuOml9KSk7cmV0dXJuIG59LHNpbjpmdW5jdGlvbihlKXtyZXR1cm4gci5tYXRoLmlzRGVncmVlJiYoZT1yLm1hdGgudG9SYWRpYW4oZSkpLE1hdGguc2luKGUpfSxzaW5oOmZ1bmN0aW9uKGUpe3JldHVybihNYXRoLnBvdyhNYXRoLkUsZSktTWF0aC5wb3coTWF0aC5FLC0xKmUpKS8yfSxzdWI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS10fSx0YW46ZnVuY3Rpb24oZSl7cmV0dXJuIHIubWF0aC5pc0RlZ3JlZSYmKGU9ci5tYXRoLnRvUmFkaWFuKGUpKSxNYXRoLnRhbihlKX0sdGFuaDpmdW5jdGlvbihlKXtyZXR1cm4gci5zaW5oYShlKS9yLmNvc2hhKGUpfSx0b1JhZGlhbjpmdW5jdGlvbihlKXtyZXR1cm4gZSpNYXRoLlBJLzE4MH19LHIuZXhjZXB0aW9uPWZ1bmN0aW9uKGUpe3RoaXMubWVzc2FnZT1lfSxlLmV4cG9ydHM9cn0sZnVuY3Rpb24oZSx0LHIpeyhmdW5jdGlvbih0KXsoZnVuY3Rpb24oKXt2YXIgcixuLGksbyxhLHM7InVuZGVmaW5lZCIhPT10eXBlb2YgcGVyZm9ybWFuY2UmJm51bGwhPT1wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P2UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX06InVuZGVmaW5lZCIhPT10eXBlb2YgdCYmbnVsbCE9PXQmJnQuaHJ0aW1lPyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4ocigpLWEpLzFlNn0sbj10LmhydGltZSxvPShyPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIDFlOSooZT1uKCkpWzBdK2VbMV19KSgpLHM9MWU5KnQudXB0aW1lKCksYT1vLXMpOkRhdGUubm93PyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3coKS1pfSxpPURhdGUubm93KCkpOihlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKS1pfSxpPShuZXcgRGF0ZSkuZ2V0VGltZSgpKX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMscig0NikpfSxmdW5jdGlvbihlLHQscil7dmFyIG49cig0ODApKE9iamVjdC5nZXRQcm90b3R5cGVPZixPYmplY3QpO2UuZXhwb3J0cz1ufSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyOTIpLGk9cig0OTQpLG89cig0OTYpLGE9cigxNTIpLHM9cigyOTgpLHU9cigyOTMpLGM9TWF0aC5taW47ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGY9cj9vOmksbD1lWzBdLmxlbmd0aCxoPWUubGVuZ3RoLHA9aCxkPUFycmF5KGgpLHk9MS8wLGc9W107cC0tOyl7dmFyIHY9ZVtwXTtwJiZ0JiYodj1hKHYscyh0KSkpLHk9Yyh2Lmxlbmd0aCx5KSxkW3BdPSFyJiYodHx8bD49MTIwJiZ2Lmxlbmd0aD49MTIwKT9uZXcgbihwJiZ2KTp2b2lkIDB9dj1lWzBdO3ZhciBtPS0xLGI9ZFswXTtlOmZvcig7KyttPGwmJmcubGVuZ3RoPHk7KXt2YXIgXz12W21dLFM9dD90KF8pOl87aWYoXz1yfHwwIT09Xz9fOjAsIShiP3UoYixTKTpmKGcsUyxyKSkpe2ZvcihwPWg7LS1wOyl7dmFyIEU9ZFtwXTtpZighKEU/dShFLFMpOmYoZVtwXSxTLHIpKSljb250aW51ZSBlfWImJmIucHVzaChTKSxnLnB1c2goXyl9fXJldHVybiBnfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTEwMik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBuKGUpP2U6W119fSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMTcpLGk9cig3NCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBpKGUpJiZuKGUpfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTk4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgcj1bXTtyZXR1cm4gbihlLGZ1bmN0aW9uKGUsbixpKXt0KGUsbixpKSYmci5wdXNoKGUpfSkscn19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dC5fX2VzTW9kdWxlPSEwLHQuZGVmYXVsdD12b2lkIDA7IWZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihudWxsIT1lKWZvcih2YXIgciBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXt2YXIgbj1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHIpOnt9O24uZ2V0fHxuLnNldD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLG4pOnRbcl09ZVtyXX10LmRlZmF1bHQ9ZX0ocigwKSk7dmFyIG49cyhyKDExMDUpKSxpPXMocigxMTA4KSksbz1zKHIoMSkpLGE9cyhyKDQ5NykpO3IoNDk5KTtmdW5jdGlvbiBzKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiB1KCl7cmV0dXJuKHU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIHI9YXJndW1lbnRzW3RdO2Zvcih2YXIgbiBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLG4pJiYoZVtuXT1yW25dKX1yZXR1cm4gZX0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIgYz1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0JiZ0LnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4oMCxuLmRlZmF1bHQpKGUsdCl9KX0sZj1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0JiZ0LnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4oMCxpLmRlZmF1bHQpKGUsdCl9KX0sbD1mdW5jdGlvbihlKXt2YXIgdCxyO2Z1bmN0aW9uIG4oKXtmb3IodmFyIHQscj1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7aSsrKW5baV09YXJndW1lbnRzW2ldO3JldHVybih0PWUuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQobikpfHx0aGlzKS5vbkVudGVyPWZ1bmN0aW9uKGUscil7dmFyIG49dC5nZXRDbGFzc05hbWVzKHI/ImFwcGVhciI6ImVudGVyIikuY2xhc3NOYW1lO3QucmVtb3ZlQ2xhc3NlcyhlLCJleGl0IiksYyhlLG4pLHQucHJvcHMub25FbnRlciYmdC5wcm9wcy5vbkVudGVyKGUscil9LHQub25FbnRlcmluZz1mdW5jdGlvbihlLHIpe3ZhciBuPXQuZ2V0Q2xhc3NOYW1lcyhyPyJhcHBlYXIiOiJlbnRlciIpLmFjdGl2ZUNsYXNzTmFtZTt0LnJlZmxvd0FuZEFkZENsYXNzKGUsbiksdC5wcm9wcy5vbkVudGVyaW5nJiZ0LnByb3BzLm9uRW50ZXJpbmcoZSxyKX0sdC5vbkVudGVyZWQ9ZnVuY3Rpb24oZSxyKXt2YXIgbj10LmdldENsYXNzTmFtZXMoImFwcGVhciIpLmRvbmVDbGFzc05hbWUsaT10LmdldENsYXNzTmFtZXMoImVudGVyIikuZG9uZUNsYXNzTmFtZSxvPXI/bisiICIraTppO3QucmVtb3ZlQ2xhc3NlcyhlLHI/ImFwcGVhciI6ImVudGVyIiksYyhlLG8pLHQucHJvcHMub25FbnRlcmVkJiZ0LnByb3BzLm9uRW50ZXJlZChlLHIpfSx0Lm9uRXhpdD1mdW5jdGlvbihlKXt2YXIgcj10LmdldENsYXNzTmFtZXMoImV4aXQiKS5jbGFzc05hbWU7dC5yZW1vdmVDbGFzc2VzKGUsImFwcGVhciIpLHQucmVtb3ZlQ2xhc3NlcyhlLCJlbnRlciIpLGMoZSxyKSx0LnByb3BzLm9uRXhpdCYmdC5wcm9wcy5vbkV4aXQoZSl9LHQub25FeGl0aW5nPWZ1bmN0aW9uKGUpe3ZhciByPXQuZ2V0Q2xhc3NOYW1lcygiZXhpdCIpLmFjdGl2ZUNsYXNzTmFtZTt0LnJlZmxvd0FuZEFkZENsYXNzKGUsciksdC5wcm9wcy5vbkV4aXRpbmcmJnQucHJvcHMub25FeGl0aW5nKGUpfSx0Lm9uRXhpdGVkPWZ1bmN0aW9uKGUpe3ZhciByPXQuZ2V0Q2xhc3NOYW1lcygiZXhpdCIpLmRvbmVDbGFzc05hbWU7dC5yZW1vdmVDbGFzc2VzKGUsImV4aXQiKSxjKGUsciksdC5wcm9wcy5vbkV4aXRlZCYmdC5wcm9wcy5vbkV4aXRlZChlKX0sdC5nZXRDbGFzc05hbWVzPWZ1bmN0aW9uKGUpe3ZhciByPXQucHJvcHMuY2xhc3NOYW1lcyxuPSJzdHJpbmciPT09dHlwZW9mIHIsaT1uPyhuJiZyP3IrIi0iOiIiKStlOnJbZV07cmV0dXJue2NsYXNzTmFtZTppLGFjdGl2ZUNsYXNzTmFtZTpuP2krIi1hY3RpdmUiOnJbZSsiQWN0aXZlIl0sZG9uZUNsYXNzTmFtZTpuP2krIi1kb25lIjpyW2UrIkRvbmUiXX19LHR9cj1lLCh0PW4pLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHIucHJvdG90eXBlKSx0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10LHQuX19wcm90b19fPXI7dmFyIGk9bi5wcm90b3R5cGU7cmV0dXJuIGkucmVtb3ZlQ2xhc3Nlcz1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXMuZ2V0Q2xhc3NOYW1lcyh0KSxuPXIuY2xhc3NOYW1lLGk9ci5hY3RpdmVDbGFzc05hbWUsbz1yLmRvbmVDbGFzc05hbWU7biYmZihlLG4pLGkmJmYoZSxpKSxvJiZmKGUsbyl9LGkucmVmbG93QW5kQWRkQ2xhc3M9ZnVuY3Rpb24oZSx0KXt0JiYoZSYmZS5zY3JvbGxUb3AsYyhlLHQpKX0saS5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZT11KHt9LHRoaXMucHJvcHMpO3JldHVybiBkZWxldGUgZS5jbGFzc05hbWVzLG8uZGVmYXVsdC5jcmVhdGVFbGVtZW50KGEuZGVmYXVsdCx1KHt9LGUse29uRW50ZXI6dGhpcy5vbkVudGVyLG9uRW50ZXJlZDp0aGlzLm9uRW50ZXJlZCxvbkVudGVyaW5nOnRoaXMub25FbnRlcmluZyxvbkV4aXQ6dGhpcy5vbkV4aXQsb25FeGl0aW5nOnRoaXMub25FeGl0aW5nLG9uRXhpdGVkOnRoaXMub25FeGl0ZWR9KSl9LG59KG8uZGVmYXVsdC5Db21wb25lbnQpO2wuZGVmYXVsdFByb3BzPXtjbGFzc05hbWVzOiIifSxsLnByb3BUeXBlcz17fTt2YXIgaD1sO3QuZGVmYXVsdD1oLGUuZXhwb3J0cz10LmRlZmF1bHR9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigxMTA2KTt0Ll9fZXNNb2R1bGU9ITAsdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7ZS5jbGFzc0xpc3Q/ZS5jbGFzc0xpc3QuYWRkKHQpOigwLGkuZGVmYXVsdCkoZSx0KXx8KCJzdHJpbmciPT09dHlwZW9mIGUuY2xhc3NOYW1lP2UuY2xhc3NOYW1lPWUuY2xhc3NOYW1lKyIgIit0OmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsKGUuY2xhc3NOYW1lJiZlLmNsYXNzTmFtZS5iYXNlVmFsfHwiIikrIiAiK3QpKX07dmFyIGk9bihyKDExMDcpKTtlLmV4cG9ydHM9dC5kZWZhdWx0fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5jbGFzc0xpc3Q/ISF0JiZlLmNsYXNzTGlzdC5jb250YWlucyh0KTotMSE9PSgiICIrKGUuY2xhc3NOYW1lLmJhc2VWYWx8fGUuY2xhc3NOYW1lKSsiICIpLmluZGV4T2YoIiAiK3QrIiAiKX0sZS5leHBvcnRzPXQuZGVmYXVsdH0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUsdCl7cmV0dXJuIGUucmVwbGFjZShuZXcgUmVnRXhwKCIoXnxcXHMpIit0KyIoPzpcXHN8JCkiLCJnIiksIiQxIikucmVwbGFjZSgvXHMrL2csIiAiKS5yZXBsYWNlKC9eXHMqfFxzKiQvZywiIil9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7ZS5jbGFzc0xpc3Q/ZS5jbGFzc0xpc3QucmVtb3ZlKHQpOiJzdHJpbmciPT09dHlwZW9mIGUuY2xhc3NOYW1lP2UuY2xhc3NOYW1lPW4oZS5jbGFzc05hbWUsdCk6ZS5zZXRBdHRyaWJ1dGUoImNsYXNzIixuKGUuY2xhc3NOYW1lJiZlLmNsYXNzTmFtZS5iYXNlVmFsfHwiIix0KSl9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9dm9pZCAwO2EocigwKSk7dmFyIG49YShyKDEpKSxpPXIoMjAwKSxvPWEocig1MDApKTtmdW5jdGlvbiBhKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX12YXIgcz1mdW5jdGlvbihlKXt2YXIgdCxyO2Z1bmN0aW9uIGEoKXtmb3IodmFyIHQscj1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7aSsrKW5baV09YXJndW1lbnRzW2ldO3JldHVybih0PWUuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQobikpfHx0aGlzKS5oYW5kbGVFbnRlcj1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXJbbl09YXJndW1lbnRzW25dO3JldHVybiB0LmhhbmRsZUxpZmVjeWNsZSgib25FbnRlciIsMCxyKX0sdC5oYW5kbGVFbnRlcmluZz1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXJbbl09YXJndW1lbnRzW25dO3JldHVybiB0LmhhbmRsZUxpZmVjeWNsZSgib25FbnRlcmluZyIsMCxyKX0sdC5oYW5kbGVFbnRlcmVkPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspcltuXT1hcmd1bWVudHNbbl07cmV0dXJuIHQuaGFuZGxlTGlmZWN5Y2xlKCJvbkVudGVyZWQiLDAscil9LHQuaGFuZGxlRXhpdD1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXJbbl09YXJndW1lbnRzW25dO3JldHVybiB0LmhhbmRsZUxpZmVjeWNsZSgib25FeGl0IiwxLHIpfSx0LmhhbmRsZUV4aXRpbmc9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShlKSxuPTA7bjxlO24rKylyW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gdC5oYW5kbGVMaWZlY3ljbGUoIm9uRXhpdGluZyIsMSxyKX0sdC5oYW5kbGVFeGl0ZWQ9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShlKSxuPTA7bjxlO24rKylyW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gdC5oYW5kbGVMaWZlY3ljbGUoIm9uRXhpdGVkIiwxLHIpfSx0fXI9ZSwodD1hKS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShyLnByb3RvdHlwZSksdC5wcm90b3R5cGUuY29uc3RydWN0b3I9dCx0Ll9fcHJvdG9fXz1yO3ZhciBzPWEucHJvdG90eXBlO3JldHVybiBzLmhhbmRsZUxpZmVjeWNsZT1mdW5jdGlvbihlLHQscil7dmFyIG8sYT10aGlzLnByb3BzLmNoaWxkcmVuLHM9bi5kZWZhdWx0LkNoaWxkcmVuLnRvQXJyYXkoYSlbdF07cy5wcm9wc1tlXSYmKG89cy5wcm9wcylbZV0uYXBwbHkobyxyKSx0aGlzLnByb3BzW2VdJiZ0aGlzLnByb3BzW2VdKCgwLGkuZmluZERPTU5vZGUpKHRoaXMpKX0scy5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByb3BzLHQ=",
    "2020.04.17 15:37": "base64:Z2UpKDAsaC0xKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4tMS8wfSkpLmNvbmNhdChbdl0pO3JldHVybiByPmE/KDAsaS5yZXZlcnNlKShtKTptfWlmKGc9PT12KXJldHVybiBsKGcsaCxwKTt2YXIgYj1mdW5jdGlvbiBlKHQscixpLG8pe3ZhciBhPWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTowO2lmKCFOdW1iZXIuaXNGaW5pdGUoKHItdCkvKGktMSkpKXJldHVybntzdGVwOm5ldyBuLmRlZmF1bHQoMCksdGlja01pbjpuZXcgbi5kZWZhdWx0KDApLHRpY2tNYXg6bmV3IG4uZGVmYXVsdCgwKX07dmFyIHMsdT1mKG5ldyBuLmRlZmF1bHQocikuc3ViKHQpLmRpdihpLTEpLG8sYSk7cz10PD0wJiZyPj0wP25ldyBuLmRlZmF1bHQoMCk6KHM9bmV3IG4uZGVmYXVsdCh0KS5hZGQocikuZGl2KDIpKS5zdWIobmV3IG4uZGVmYXVsdChzKS5tb2QodSkpO3ZhciBjPU1hdGguY2VpbChzLnN1Yih0KS5kaXYodSkudG9OdW1iZXIoKSksbD1NYXRoLmNlaWwobmV3IG4uZGVmYXVsdChyKS5zdWIocykuZGl2KHUpLnRvTnVtYmVyKCkpLGg9YytsKzE7cmV0dXJuIGg+aT9lKHQscixpLG8sYSsxKTooaDxpJiYobD1yPjA/bCsoaS1oKTpsLGM9cj4wP2M6YysoaS1oKSkse3N0ZXA6dSx0aWNrTWluOnMuc3ViKG5ldyBuLmRlZmF1bHQoYykubXVsKHUpKSx0aWNrTWF4OnMuYWRkKG5ldyBuLmRlZmF1bHQobCkubXVsKHUpKX0pfShnLHYsZCxwKSxfPWIuc3RlcCxTPWIudGlja01pbixFPWIudGlja01heCx3PW8uZGVmYXVsdC5yYW5nZVN0ZXAoUyxFLmFkZChuZXcgbi5kZWZhdWx0KC4xKS5tdWwoXykpLF8pO3JldHVybiByPmE/KDAsaS5yZXZlcnNlKSh3KTp3fSk7dC5nZXROaWNlVGlja1ZhbHVlcz1oO3ZhciBwPSgwLGkubWVtb2l6ZSkoZnVuY3Rpb24oZSl7dmFyIHQ9dShlLDIpLHI9dFswXSxvPXRbMV0sYT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06NixzPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0saD1NYXRoLm1heChhLDIpLHA9dShjKFtyLG9dKSwyKSxkPXBbMF0seT1wWzFdO2lmKGQ9PT0tMS8wfHx5PT09MS8wKXJldHVybltyLG9dO2lmKGQ9PT15KXJldHVybiBsKGQsYSxzKTt2YXIgZz1mKG5ldyBuLmRlZmF1bHQoeSkuc3ViKGQpLmRpdihoLTEpLHMsMCksdj0oMCxpLmNvbXBvc2UpKCgwLGkubWFwKShmdW5jdGlvbihlKXtyZXR1cm4gbmV3IG4uZGVmYXVsdChkKS5hZGQobmV3IG4uZGVmYXVsdChlKS5tdWwoZykpLnRvTnVtYmVyKCl9KSxpLnJhbmdlKSgwLGgpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZT49ZCYmZTw9eX0pO3JldHVybiByPm8/KDAsaS5yZXZlcnNlKSh2KTp2fSk7dC5nZXRUaWNrVmFsdWVzPXA7dmFyIGQ9KDAsaS5tZW1vaXplKShmdW5jdGlvbihlLHQpe3ZhciByPXUoZSwyKSxhPXJbMF0sbD1yWzFdLGg9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxwPXUoYyhbYSxsXSksMiksZD1wWzBdLHk9cFsxXTtpZihkPT09LTEvMHx8eT09PTEvMClyZXR1cm5bYSxsXTtpZihkPT09eSlyZXR1cm5bZF07dmFyIGc9TWF0aC5tYXgodCwyKSx2PWYobmV3IG4uZGVmYXVsdCh5KS5zdWIoZCkuZGl2KGctMSksaCwwKSxtPXMoby5kZWZhdWx0LnJhbmdlU3RlcChuZXcgbi5kZWZhdWx0KGQpLG5ldyBuLmRlZmF1bHQoeSkuc3ViKG5ldyBuLmRlZmF1bHQoLjk5KS5tdWwodikpLHYpKS5jb25jYXQoW3ldKTtyZXR1cm4gYT5sPygwLGkucmV2ZXJzZSkobSk6bX0pO3QuZ2V0VGlja1ZhbHVlc0ZpeGVkRG9tYWluPWR9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHQuZGVmYXVsdD12b2lkIDA7dmFyIG4saT0obj1yKDQ5MikpJiZuLl9fZXNNb2R1bGU/bjp7ZGVmYXVsdDpufSxvPXIoNDkzKTt2YXIgYT17cmFuZ2VTdGVwOmZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIG49bmV3IGkuZGVmYXVsdChlKSxvPVtdO24ubHQodCk7KW8ucHVzaChuLnRvTnVtYmVyKCkpLG49bi5hZGQocik7cmV0dXJuIG99LGdldERpZ2l0Q291bnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lPzE6TWF0aC5mbG9vcihuZXcgaS5kZWZhdWx0KGUpLmFicygpLmxvZygxMCkudG9OdW1iZXIoKSkrMX0saW50ZXJwb2xhdGVOdW1iZXI6KDAsby5jdXJyeSkoZnVuY3Rpb24oZSx0LHIpe3ZhciBuPStlO3JldHVybiBuK3IqKCt0LW4pfSksdW5pbnRlcnBvbGF0ZU51bWJlcjooMCxvLmN1cnJ5KShmdW5jdGlvbihlLHQscil7dmFyIG49dC0rZTtyZXR1cm4oci1lKS8obj1ufHwxLzApfSksdW5pbnRlcnBvbGF0ZVRydW5jYXRpb246KDAsby5jdXJyeSkoZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXQtK2U7cmV0dXJuIG49bnx8MS8wLE1hdGgubWF4KDAsTWF0aC5taW4oMSwoci1lKS9uKSl9KX07dC5kZWZhdWx0PWF9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDI5MiksaT1yKDQ5NCksbz1yKDQ5NiksYT1yKDI5Mykscz1yKDEwODQpLHU9cigyOTQpLGM9MjAwO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQscil7dmFyIGY9LTEsbD1pLGg9ZS5sZW5ndGgscD0hMCxkPVtdLHk9ZDtpZihyKXA9ITEsbD1vO2Vsc2UgaWYoaD49Yyl7dmFyIGc9dD9udWxsOnMoZSk7aWYoZylyZXR1cm4gdShnKTtwPSExLGw9YSx5PW5ldyBufWVsc2UgeT10P1tdOmQ7ZTpmb3IoOysrZjxoOyl7dmFyIHY9ZVtmXSxtPXQ/dCh2KTp2O2lmKHY9cnx8MCE9PXY/djowLHAmJm09PT1tKXtmb3IodmFyIGI9eS5sZW5ndGg7Yi0tOylpZih5W2JdPT09bSljb250aW51ZSBlO3QmJnkucHVzaChtKSxkLnB1c2godil9ZWxzZSBsKHksbSxyKXx8KHkhPT1kJiZ5LnB1c2gobSksZC5wdXNoKHYpKX1yZXR1cm4gZH19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDQ5NSksaT1yKDEwODIpLG89cigxMDgzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB0PT09dD9vKGUsdCxyKTpuKGUsaSxyKX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBlIT09ZX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIG49ci0xLGk9ZS5sZW5ndGg7KytuPGk7KWlmKGVbbl09PT10KXJldHVybiBuO3JldHVybi0xfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNDgxKSxpPXIoMTA4NSksbz1yKDI5NCksYT1uJiYxL28obmV3IG4oWywtMF0pKVsxXT09MS8wP2Z1bmN0aW9uKGUpe3JldHVybiBuZXcgbihlKX06aTtlLmV4cG9ydHM9YX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt9fSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxOTgpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciByO3JldHVybiBuKGUsZnVuY3Rpb24oZSxuLGkpe3JldHVybiEocj10KGUsbixpKSl9KSwhIXJ9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj0tMSxuPW51bGw9PWU/MDplLmxlbmd0aDsrK3I8bjspaWYoIXQoZVtyXSxyLGUpKXJldHVybiExO3JldHVybiEwfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTk4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgcj0hMDtyZXR1cm4gbihlLGZ1bmN0aW9uKGUsbixpKXtyZXR1cm4gcj0hIXQoZSxuLGkpfSkscn19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDQ5MCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXsiX19wcm90b19fIj09dCYmbj9uKGUsdCx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6cix3cml0YWJsZTohMH0pOmVbdF09cn19LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gcihlLHQscil7ZSBpbnN0YW5jZW9mIFJlZ0V4cCYmKGU9bihlLHIpKSx0IGluc3RhbmNlb2YgUmVnRXhwJiYodD1uKHQscikpO3ZhciBvPWkoZSx0LHIpO3JldHVybiBvJiZ7c3RhcnQ6b1swXSxlbmQ6b1sxXSxwcmU6ci5zbGljZSgwLG9bMF0pLGJvZHk6ci5zbGljZShvWzBdK2UubGVuZ3RoLG9bMV0pLHBvc3Q6ci5zbGljZShvWzFdK3QubGVuZ3RoKX19ZnVuY3Rpb24gbihlLHQpe3ZhciByPXQubWF0Y2goZSk7cmV0dXJuIHI/clswXTpudWxsfWZ1bmN0aW9uIGkoZSx0LHIpe3ZhciBuLGksbyxhLHMsdT1yLmluZGV4T2YoZSksYz1yLmluZGV4T2YodCx1KzEpLGY9dTtpZih1Pj0wJiZjPjApe2ZvcihuPVtdLG89ci5sZW5ndGg7Zj49MCYmIXM7KWY9PXU/KG4ucHVzaChmKSx1PXIuaW5kZXhPZihlLGYrMSkpOjE9PW4ubGVuZ3RoP3M9W24ucG9wKCksY106KChpPW4ucG9wKCkpPG8mJihvPWksYT1jKSxjPXIuaW5kZXhPZih0LGYrMSkpLGY9dTxjJiZ1Pj0wP3U6YztuLmxlbmd0aCYmKHM9W28sYV0pfXJldHVybiBzfWUuZXhwb3J0cz1yLHIucmFuZ2U9aX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTA5Mik7ZnVuY3Rpb24gaShlLHQscil7dmFyIG89ZTtyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgcj1bXSxpPSJzdHJpbmciPT09dHlwZW9mIHQ/bmV3IFJlZ0V4cCgiXFxiKCIrdCsiKVxcKCIpOnQ7ZG97dmFyIG89aS5leGVjKGUpO2lmKCFvKXJldHVybiByO2lmKHZvaWQgMD09PW9bMV0pdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHRoZSBmaXJzdCBjb3VwbGUgb2YgcGFyZW50aGVzaXMgdG8gZ2V0IHRoZSBmdW5jdGlvbiBpZGVudGlmaWVyIGluICIrdCk7dmFyIGE9b1sxXSxzPW8uaW5kZXgsdT1uKCIoIiwiKSIsZS5zdWJzdHJpbmcocykpO2lmKCF1fHx1LnN0YXJ0IT09b1swXS5sZW5ndGgtMSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoYSsiKCk6IG1pc3NpbmcgY2xvc2luZyAnKScgaW4gdGhlIHZhbHVlICciK2UrIiciKTtyLnB1c2goe21hdGNoZXM6dSxmdW5jdGlvbklkZW50aWZpZXI6YX0pLGU9dS5wb3N0fXdoaWxlKGkudGVzdChlKSk7cmV0dXJuIHJ9KGUsdCkucmVkdWNlKGZ1bmN0aW9uKGUsbil7cmV0dXJuIGUucmVwbGFjZShuLmZ1bmN0aW9uSWRlbnRpZmllcisiKCIrbi5tYXRjaGVzLmJvZHkrIikiLGZ1bmN0aW9uKGUsdCxyLG4sbyl7cmV0dXJuIHIoaShlLG8sciksdCxuKX0obi5tYXRjaGVzLmJvZHksbi5mdW5jdGlvbklkZW50aWZpZXIscixvLHQpKX0sZSl9ZS5leHBvcnRzPWl9LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gcihlLHQscil7ZSBpbnN0YW5jZW9mIFJlZ0V4cCYmKGU9bihlLHIpKSx0IGluc3RhbmNlb2YgUmVnRXhwJiYodD1uKHQscikpO3ZhciBvPWkoZSx0LHIpO3JldHVybiBvJiZ7c3RhcnQ6b1swXSxlbmQ6b1sxXSxwcmU6ci5zbGljZSgwLG9bMF0pLGJvZHk6ci5zbGljZShvWzBdK2UubGVuZ3RoLG9bMV0pLHBvc3Q6ci5zbGljZShvWzFdK3QubGVuZ3RoKX19ZnVuY3Rpb24gbihlLHQpe3ZhciByPXQubWF0Y2goZSk7cmV0dXJuIHI/clswXTpudWxsfWZ1bmN0aW9uIGkoZSx0LHIpe3ZhciBuLGksbyxhLHMsdT1yLmluZGV4T2YoZSksYz1yLmluZGV4T2YodCx1KzEpLGY9dTtpZih1Pj0wJiZjPjApe2ZvcihuPVtdLG89ci5sZW5ndGg7Zj49MCYmIXM7KWY9PXU/KG4ucHVzaChmKSx1PXIuaW5kZXhPZihlLGYrMSkpOjE9PW4ubGVuZ3RoP3M9W24ucG9wKCksY106KChpPW4ucG9wKCkpPG8mJihvPWksYT1jKSxjPXIuaW5kZXhPZih0LGYrMSkpLGY9dTxjJiZ1Pj0wP3U6YztuLmxlbmd0aCYmKHM9W28sYV0pfXJldHVybiBzfWUuZXhwb3J0cz1yLHIucmFuZ2U9aX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTA5NCk7bi5wcm90b3R5cGUuZm9ybXVsYUV2YWw9ZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Zm9yKHZhciBlLHQscixuPVtdLGk9dGhpcy52YWx1ZSxvPTA7bzxpLmxlbmd0aDtvKyspMT09PWlbb10udHlwZXx8Mz09PWlbb10udHlwZT9uLnB1c2goe3ZhbHVlOjM9PT1pW29dLnR5cGU/aVtvXS5zaG93Omlbb10udmFsdWUsdHlwZToxfSk6MTM9PT1pW29dLnR5cGU/bi5wdXNoKHt2YWx1ZTppW29dLnNob3csdHlwZToxfSk6MD09PWlbb10udHlwZT9uW24ubGVuZ3RoLTFdPXt2YWx1ZTppW29dLnNob3crKCItIiE9aVtvXS5zaG93PyIoIjoiIikrbltuLmxlbmd0aC0xXS52YWx1ZSsoIi0iIT1pW29dLnNob3c/IikiOiIiKSx0eXBlOjB9Ojc9PT1pW29dLnR5cGU/bltuLmxlbmd0aC0xXT17dmFsdWU6KDEhPW5bbi5sZW5ndGgtMV0udHlwZT8iKCI6IiIpK25bbi5sZW5ndGgtMV0udmFsdWUrKDEhPW5bbi5sZW5ndGgtMV0udHlwZT8iKSI6IiIpK2lbb10uc2hvdyx0eXBlOjd9OjEwPT09aVtvXS50eXBlPyhlPW4ucG9wKCksdD1uLnBvcCgpLCJQIj09PWlbb10uc2hvd3x8IkMiPT09aVtvXS5zaG93P24ucHVzaCh7dmFsdWU6IjxzdXA+Iit0LnZhbHVlKyI8L3N1cD4iK2lbb10uc2hvdysiPHN1Yj4iK2UudmFsdWUrIjwvc3ViPiIsdHlwZToxMH0pOm4ucHVzaCh7dmFsdWU6KDEhPXQudHlwZT8iKCI6IiIpK3QudmFsdWUrKDEhPXQudHlwZT8iKSI6IiIpKyI8c3VwPiIrZS52YWx1ZSsiPC9zdXA+Iix0eXBlOjF9KSk6Mj09PWlbb10udHlwZXx8OT09PWlbb10udHlwZT8oZT1uLnBvcCgpLHQ9bi5wb3AoKSxuLnB1c2goe3ZhbHVlOigxIT10LnR5cGU/IigiOiIiKSt0LnZhbHVlKygxIT10LnR5cGU/IikiOiIiKStpW29dLnNob3crKDEhPWUudHlwZT8iKCI6IiIpK2UudmFsdWUrKDEhPWUudHlwZT8iKSI6IiIpLHR5cGU6aVtvXS50eXBlfSkpOjEyPT09aVtvXS50eXBlJiYoZT1uLnBvcCgpLHQ9bi5wb3AoKSxyPW4ucG9wKCksbi5wdXNoKHt2YWx1ZTppW29dLnNob3crIigiK3IudmFsdWUrIiwiK3QudmFsdWUrIiwiK2UudmFsdWUrIikiLHR5cGU6MTJ9KSk7cmV0dXJuIG5bMF0udmFsdWV9LGUuZXhwb3J0cz1ufSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMDk1KTtuLnByb3RvdHlwZS5wb3N0Zml4RXZhbD1mdW5jdGlvbihlKXsidXNlIHN0cmljdCI7KGU9ZXx8e30pLlBJPU1hdGguUEksZS5FPU1hdGguRTtmb3IodmFyIHQscixpLG89W10sYT10aGlzLnZhbHVlLHM9InVuZGVmaW5lZCIhPT10eXBlb2YgZS5uLHU9MDt1PGEubGVuZ3RoO3UrKykxPT09YVt1XS50eXBlP28ucHVzaCh7dmFsdWU6YVt1XS52YWx1ZSx0eXBlOjF9KTozPT09YVt1XS50eXBlP28ucHVzaCh7dmFsdWU6ZVthW3VdLnZhbHVlXSx0eXBlOjF9KTowPT09YVt1XS50eXBlPyJ1bmRlZmluZWQiPT09dHlwZW9mIG9bby5sZW5ndGgtMV0udHlwZT9vW28ubGVuZ3RoLTFdLnZhbHVlLnB1c2goYVt1XSk6b1tvLmxlbmd0aC0xXS52YWx1ZT1hW3VdLnZhbHVlKG9bby5sZW5ndGgtMV0udmFsdWUpOjc9PT1hW3VdLnR5cGU/InVuZGVmaW5lZCI9PT10eXBlb2Ygb1tvLmxlbmd0aC0xXS50eXBlP29bby5sZW5ndGgtMV0udmFsdWUucHVzaChhW3VdKTpvW28ubGVuZ3RoLTFdLnZhbHVlPWFbdV0udmFsdWUob1tvLmxlbmd0aC0xXS52YWx1ZSk6OD09PWFbdV0udHlwZT8odD1vLnBvcCgpLHI9by5wb3AoKSxvLnB1c2goe3R5cGU6MSx2YWx1ZTphW3VdLnZhbHVlKHIudmFsdWUsdC52YWx1ZSl9KSk6MTA9PT1hW3VdLnR5cGU/KHQ9by5wb3AoKSwidW5kZWZpbmVkIj09PXR5cGVvZihyPW8ucG9wKCkpLnR5cGU/KHIudmFsdWU9ci5jb25jYXQodCksci52YWx1ZS5wdXNoKGFbdV0pLG8ucHVzaChyKSk6InVuZGVmaW5lZCI9PT10eXBlb2YgdC50eXBlPyh0LnVuc2hpZnQociksdC5wdXNoKGFbdV0pLG8ucHVzaCh0KSk6by5wdXNoKHt0eXBlOjEsdmFsdWU6YVt1XS52YWx1ZShyLnZhbHVlLHQudmFsdWUpfSkpOjI9PT1hW3VdLnR5cGV8fDk9PT1hW3VdLnR5cGU/KHQ9by5wb3AoKSwidW5kZWZpbmVkIj09PXR5cGVvZihyPW8ucG9wKCkpLnR5cGU/KGNvbnNvbGUubG9nKHIpLChyPXIuY29uY2F0KHQpKS5wdXNoKGFbdV0pLG8ucHVzaChyKSk6InVuZGVmaW5lZCI9PT10eXBlb2YgdC50eXBlPyh0LnVuc2hpZnQociksdC5wdXNoKGFbdV0pLG8ucHVzaCh0KSk6by5wdXNoKHt0eXBlOjEsdmFsdWU6YVt1XS52YWx1ZShyLnZhbHVlLHQudmFsdWUpfSkpOjEyPT09YVt1XS50eXBlPygidW5kZWZpbmVkIiE9PXR5cGVvZih0PW8ucG9wKCkpLnR5cGUmJih0PVt0XSkscj1vLnBvcCgpLGk9by5wb3AoKSxvLnB1c2goe3R5cGU6MSx2YWx1ZTphW3VdLnZhbHVlKGkudmFsdWUsci52YWx1ZSxuZXcgbih0KSl9KSk6MTM9PT1hW3VdLnR5cGUmJihzP28ucHVzaCh7dmFsdWU6ZVthW3VdLnZhbHVlXSx0eXBlOjN9KTpvLnB1c2goW2FbdV1dKSk7aWYoby5sZW5ndGg+MSl0aHJvdyBuZXcgbi5leGNlcHRpb24oIlVuY2F1Z2h0IFN5bnRheCBlcnJvciIpO3JldHVybiBvWzBdLnZhbHVlPjFlMTU/IkluZmluaXR5IjpwYXJzZUZsb2F0KG9bMF0udmFsdWUudG9GaXhlZCgxNSkpfSxuLmV2YWw9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiJ1bmRlZmluZWQiPT09dHlwZW9mIHQ/dGhpcy5sZXgoZSkudG9Qb3N0Zml4KCkucG9zdGZpeEV2YWwoKToidW5kZWZpbmVkIj09PXR5cGVvZiByPyJ1bmRlZmluZWQiIT09dHlwZW9mIHQubGVuZ3RoP3RoaXMubGV4KGUsdCkudG9Qb3N0Zml4KCkucG9zdGZpeEV2YWwoKTp0aGlzLmxleChlKS50b1Bvc3RmaXgoKS5wb3N0Zml4RXZhbCh0KTp0aGlzLmxleChlLHQpLnRvUG9zdGZpeCgpLnBvc3RmaXhFdmFsKHIpfSxlLmV4cG9ydHM9bn0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTA5Nik7bi5wcm90b3R5cGUudG9Qb3N0Zml4PWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Zvcih2YXIgZSx0LHIsaSxvLGE9W10scz1be3ZhbHVlOiIoIix0eXBlOjQscHJlOjB9XSx1PXRoaXMudmFsdWUsYz0xO2M8dS5sZW5ndGg7YysrKWlmKDE9PT11W2NdLnR5cGV8fDM9PT11W2NdLnR5cGV8fDEzPT09dVtjXS50eXBlKTE9PT11W2NdLnR5cGUmJih1W2NdLnZhbHVlPU51bWJlcih1W2NdLnZhbHVlKSksYS5wdXNoKHVbY10pO2Vsc2UgaWYoND09PXVbY10udHlwZSlzLnB1c2godVtjXSk7ZWxzZSBpZig1PT09dVtjXS50eXBlKWZvcig7NCE9PSh0PXMucG9wKCkpLnR5cGU7KWEucHVzaCh0KTtlbHNlIGlmKDExPT09dVtjXS50eXBlKXtmb3IoOzQhPT0odD1zLnBvcCgpKS50eXBlOylhLnB1c2godCk7cy5wdXNoKHQpfWVsc2V7aT0oZT11W2NdKS5wcmUscj0obz1zW3MubGVuZ3RoLTFdKS5wcmU7dmFyIGY9Ik1hdGgucG93Ij09by52YWx1ZSYmIk1hdGgucG93Ij09ZS52YWx1ZTtpZihpPnIpcy5wdXNoKGUpO2Vsc2V7Zm9yKDtyPj1pJiYhZnx8ZiYmaTxyOyl0PXMucG9wKCksbz1zW3MubGVuZ3RoLTFdLGEucHVzaCh0KSxyPW8ucHJlLGY9Ik1hdGgucG93Ij09ZS52YWx1ZSYmIk1hdGgucG93Ij09by52YWx1ZTtzLnB1c2goZSl9fXJldHVybiBuZXcgbihhKX0sZS5leHBvcnRzPW59LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEwOTcpO2Z1bmN0aW9uIG8oZSx0KXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyllW3JdKz10O3JldHVybiBlfXZhciBhPVsic2luIiwiY29zIiwidGFuIiwicGkiLCIoIiwiKSIsIlAiLCJDIiwiYXNpbiIsImFjb3MiLCJhdGFuIiwiNyIsIjgiLCI5IiwiaW50IiwiY29zaCIsImFjb3NoIiwibG4iLCJeIiwicm9vdCIsIjQiLCI1IiwiNiIsIi8iLCIhIiwidGFuaCIsImF0YW5oIiwiTW9kIiwiMSIsIjIiLCIzIiwiKiIsInNpbmgiLCJhc2luaCIsImUiLCJsb2ciLCIwIiwiLiIsIisiLCItIiwiLCIsIlNpZ21hIiwibiIsIlBpIiwicG93Il0scz1bInNpbiIsImNvcyIsInRhbiIsIiZwaTsiLCIoIiwiKSIsIlAiLCJDIiwiYXNpbiIsImFjb3MiLCJhdGFuIiwiNyIsIjgiLCI5IiwiSW50IiwiY29zaCIsImFjb3NoIiwiIGxuIiwiXiIsInJvb3QiLCI0IiwiNSIsIjYiLCImZGl2aWRlOyIsIiEiLCJ0YW5oIiwiYXRhbmgiLCIgTW9kICIsIjEiLCIyIiwiMyIsIiZ0aW1lczsiLCJzaW5oIiwiYXNpbmgiLCJlIiwiIGxvZyIsIjAiLCIuIiwiKyIsIi0iLCIsIiwiJlNpZ21hOyIsIm4iLCImUGk7IiwicG93Il0sdT1bbi5tYXRoLnNpbixuLm1hdGguY29zLG4ubWF0aC50YW4sIlBJIiwiKCIsIikiLG4ubWF0aC5QLG4ubWF0aC5DLG4ubWF0aC5hc2luLG4ubWF0aC5hY29zLG4ubWF0aC5hdGFuLCI3IiwiOCIsIjkiLE1hdGguZmxvb3Isbi5tYXRoLmNvc2gsbi5tYXRoLmFjb3NoLE1hdGgubG9nLE1hdGgucG93LE1hdGguc3FydCwiNCIsIjUiLCI2IixuLm1hdGguZGl2LG4ubWF0aC5mYWN0LG4ubWF0aC50YW5oLG4ubWF0aC5hdGFuaCxuLm1hdGgubW9kLCIxIiwiMiIsIjMiLG4ubWF0aC5tdWwsbi5tYXRoLnNpbmgsbi5tYXRoLmFzaW5oLCJFIixuLm1hdGgubG9nLCIwIiwiLiIsbi5tYXRoLmFkZCxuLm1hdGguc3ViLCIsIixuLm1hdGguc2lnbWEsIm4iLG4ubWF0aC5QaSxNYXRoLnBvd10sYz17MDoxMSwxOjAsMjozLDM6MCw0OjAsNTowLDY6MCw3OjExLDg6MTEsOToxLDEwOjEwLDExOjAsMTI6MTEsMTM6MH0sZj1bMCwwLDAsMyw0LDUsMTAsMTAsMCwwLDAsMSwxLDEsMCwwLDAsMCwxMCwwLDEsMSwxLDIsNywwLDAsMiwxLDEsMSwyLDAsMCwzLDAsMSw2LDksOSwxMSwxMiwxMywxMiw4XSxsPXswOiEwLDE6ITAsMzohMCw0OiEwLDY6ITAsODohMCw5OiEwLDEyOiEwLDEzOiEwfSxoPXswOiEwLDE6ITAsMjohMCwzOiEwLDQ6ITAsNTohMCw2OiEwLDc6ITAsODohMCw5OiEwLDEwOiEwLDExOiEwLDEyOiEwLDEzOiEwfSxwPXswOiEwLDM6ITAsNDohMCw4OiEwLDEyOiEwLDEzOiEwfSxkPXt9LGc9ezA6ITAsMTohMCwzOiEwLDQ6ITAsNjohMCw4OiEwLDEyOiEwLDEzOiEwfSx2PXsxOiEwfSxtPVtbXSxbIjEiLCIyIiwiMyIsIjciLCI4IiwiOSIsIjQiLCI1IiwiNiIsIisiLCItIiwiKiIsIi8iLCIoIiwiKSIsIl4iLCIhIiwiUCIsIkMiLCJlIiwiMCIsIi4iLCIsIiwibiJdLFsicGkiLCJsbiIsIlBpIl0sWyJzaW4iLCJjb3MiLCJ0YW4iLCJEZWwiLCJpbnQiLCJNb2QiLCJsb2ciLCJwb3ciXSxbImFzaW4iLCJhY29zIiwiYXRhbiIsImNvc2giLCJyb290IiwidGFuaCIsInNpbmgiXSxbImFjb3NoIiwiYXRhbmgiLCJhc2luaCIsIlNpZ21hIl1dO2Z1bmN0aW9uIGIoZSx0LHIsbil7Zm9yKHZhciBpPTA7aTxuO2krKylpZihlW3IraV0hPT10W2ldKXJldHVybiExO3JldHVybiEwfW4uYWRkVG9rZW49ZnVuY3Rpb24oZSl7Zm9yKGk9MDtpPGUubGVuZ3RoO2krKyl7eD1lW2ldLnRva2VuLmxlbmd0aDt2YXIgdD0tMTtpZih4PG0ubGVuZ3RoKWZvcih5PTA7eTxtW3hdLmxlbmd0aDt5KyspaWYoZVtpXS50b2tlbj09PW1beF1beV0pe3Q9YS5pbmRleE9mKG1beF1beV0pO2JyZWFrfS0xPT09dD8oYS5wdXNoKGVbaV0udG9rZW4pLGYucHVzaChlW2ldLnR5cGUpLG0ubGVuZ3RoPD1lW2ldLnRva2VuLmxlbmd0aCYmKG1bZVtpXS50b2tlbi5sZW5ndGhdPVtdKSxtW2VbaV0udG9rZW4ubGVuZ3RoXS5wdXNoKGVbaV0udG9rZW4pLHUucHVzaChlW2ldLnZhbHVlKSxzLnB1c2goZVtpXS5zaG93KSk6KGFbdF09ZVtpXS50b2tlbixmW3RdPWVbaV0udHlwZSx1W3RdPWVbaV0udmFsdWUsc1t0XT1lW2ldLnNob3cpfX0sbi5sZXg9ZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7dmFyIHIsaSx5LF8sUz1be3R5cGU6NCx2YWx1ZToiKCIsc2hvdzoiKCIscHJlOjB9XSxFPVtdLHc9ZSxUPTAsQT1sLEM9MCx4PWQsST0iIjsidW5kZWZpbmVkIiE9PXR5cGVvZiB0JiZuLmFkZFRva2VuKHQpO3ZhciBrPXt9O2ZvcihpPTA7aTx3Lmxlbmd0aDtpKyspaWYoIiAiIT13W2ldKXtyPSIiO2U6Zm9yKHk9dy5sZW5ndGgtaT5tLmxlbmd0aC0yP20ubGVuZ3RoLTE6dy5sZW5ndGgtaTt5PjA7eS0tKWZvcihfPTA7XzxtW3ldLmxlbmd0aDtfKyspaWYoYih3LG1beV1bX10saSx5KSl7cj1tW3ldW19dO2JyZWFrIGV9aWYoaSs9ci5sZW5ndGgtMSwiIj09PXIpdGhyb3cgbmV3IG4uZXhjZXB0aW9uKCJDYW4ndCB1bmRlcnN0YW5kIGFmdGVyICIrdy5zbGljZShpKSk7dmFyIE89YS5pbmRleE9mKHIpLE49cixQPWZbT10sUj11W09dLEI9Y1tQXSxNPXNbT10sTD1TW1MubGVuZ3RoLTFdO2ZvcihEPUUubGVuZ3RoO0QtLTspaWYoMD09PUVbRF0mJi0xIT09WzAsMiwzLDUsOSwxMSwxMiwxM10uaW5kZXhPZihQKSl7aWYoITAhPT1BW1BdKXRocm93IG5ldyBuLmV4Y2VwdGlvbihyKyIgaXMgbm90IGFsbG93ZWQgYWZ0ZXIgIitJKTtTLnB1c2goe3ZhbHVlOiIpIix0eXBlOjUscHJlOjAsc2hvdzoiKSJ9KSxBPWgseD1nLG8oRSwtMSkucG9wKCl9aWYoITAhPT1BW1BdKXRocm93IG5ldyBuLmV4Y2VwdGlvbihyKyIgaXMgbm90IGFsbG93ZWQgYWZ0ZXIgIitJKTtpZighMD09PXhbUF0mJihQPTIsUj1uLm1hdGgubXVsLE09IiZ0aW1lczsiLEI9MyxpLT1yLmxlbmd0aCksaz17dmFsdWU6Uix0eXBlOlAscHJlOkIsc2hvdzpNfSwwPT09UClBPWwseD1kLG8oRSwyKS5wdXNoKDIpLFMucHVzaChrKSxTLnB1c2goe3ZhbHVlOiIoIix0eXBlOjQscHJlOjAsc2hvdzoiKCJ9KTtlbHNlIGlmKDE9PT1QKTE9PT1MLnR5cGU/KEwudmFsdWUrPVIsbyhFLDEpKTpTLnB1c2goayksQT1oLHg9cDtlbHNlIGlmKDI9PT1QKUE9bCx4PWQsbyhFLDIpLFMucHVzaChrKTtlbHNlIGlmKDM9PT1QKVMucHVzaChrKSxBPWgseD1nO2Vsc2UgaWYoND09PVApVCs9RS5sZW5ndGgsRT1bXSxDKyssQT1sLHg9ZCxTLnB1c2goayk7ZWxzZSBpZig1PT09UCl7aWYoIUMpdGhyb3cgbmV3IG4uZXhjZXB0aW9uKCJDbG9zaW5nIHBhcmVudGhlc2lzIGFyZSBtb3JlIHRoYW4gb3BlbmluZyBvbmUsIHdhaXQgV2hhdCEhISIpO2Zvcig7VC0tOylTLnB1c2goe3ZhbHVlOiIpIix0eXBlOjUscHJlOjAsc2hvdzoiKSJ9KTtUPTAsQy0tLEE9aCx4PWcsUy5wdXNoKGspfWVsc2UgaWYoNj09PVApe2lmKEwuaGFzRGVjKXRocm93IG5ldyBuLmV4Y2VwdGlvbigiVHdvIGRlY2ltYWxzIGFyZSBub3QgYWxsb3dlZCBpbiBvbmUgbnVtYmVyIik7MSE9PUwudHlwZSYmKEw9e3ZhbHVlOjAsdHlwZToxLHByZTowfSxTLnB1c2goTCksbyhFLC0xKSksQT12LG8oRSwxKSx4PWQsTC52YWx1ZSs9UixMLmhhc0RlYz0hMH1lbHNlIDc9PT1QJiYoQT1oLHg9ZyxvKEUsMSksUy5wdXNoKGspKTs4PT09UD8oQT1sLHg9ZCxvKEUsNCkucHVzaCg0KSxTLnB1c2goayksUy5wdXNoKHt2YWx1ZToiKCIsdHlwZTo0LHByZTowLHNob3c6IigifSkpOjk9PT1QPyg5PT09TC50eXBlP0wudmFsdWU9PT1uLm1hdGguYWRkPyhMLnZhbHVlPVIsTC5zaG93PU0sbyhFLDEpKTpMLnZhbHVlPT09bi5tYXRoLnN1YiYmIi0iPT09TSYmKEwudmFsdWU9bi5tYXRoLmFkZCxMLnNob3c9IisiLG8oRSwxKSk6NSE9PUwudHlwZSYmNyE9PUwudHlwZSYmMSE9PUwudHlwZSYmMyE9PUwudHlwZSYmMTMhPT1MLnR5cGU/Ii0iPT09TiYmKEE9bCx4PWQsbyhFLDIpLnB1c2goMiksUy5wdXNoKHt2YWx1ZTpuLm1hdGguY2hhbmdlU2lnbix0eXBlOjAscHJlOjIxLHNob3c6Ii0ifSksUy5wdXNoKHt2YWx1ZToiKCIsdHlwZTo0LHByZTowLHNob3c6IigifSkpOihTLnB1c2goayksbyhFLDIpKSxBPWwseD1kKToxMD09PVA/KEE9bCx4PWQsbyhFLDIpLFMucHVzaChrKSk6MTE9PT1QPyhBPWwseD1kLFMucHVzaChrKSk6MTI9PT1QPyhBPWwseD1kLG8oRSw2KS5wdXNoKDYpLFMucHVzaChrKSxTLnB1c2goe3ZhbHVlOiIoIix0eXBlOjQscHJlOjB9KSk6MTM9PT1QJiYoQT1oLHg9ZyxTLnB1c2goaykpLG8oRSwtMSksST1yfWZvcih2YXIgRD1FLmxlbmd0aDtELS07KTA9PT1FW0RdJiYoUy5wdXNoKHt2YWx1ZToiKSIsc2hvdzoiKSIsdHlwZTo1LHByZTozfSksbyhFLC0xKS5wb3AoKSk7aWYoITAhPT1BWzVdKXRocm93IG5ldyBuLmV4Y2VwdGlvbigiY29tcGxldGUgdGhlIGV4cHJlc3Npb24iKTtmb3IoO0MtLTspUy5wdXNoKHt2YWx1ZToiKSIsc2hvdzoiKSIsdHlwZTo1LHByZTozfSk7cmV0dXJuIFMucHVzaCh7dHlwZTo1LHZhbHVlOiIpIixzaG93OiIpIixwcmU6MH0pLG5ldyBuKFMpfSxlLmV4cG9ydHM9bn0sZnVuY3Rpb24oZSx0KXt2YXIgcj1mdW5jdGlvbihlKXt0aGlzLnZhbHVlPWV9O3IubWF0aD17aXNEZWdyZWU6ITAsYWNvczpmdW5jdGlvbihlKXtyZXR1cm4gci5tYXRoLmlzRGVncmVlPzE4MC9NYXRoLlBJKk1hdGguYWNvcyhlKTpNYXRoLmFjb3MoZSl9LGFkZDpmdW5jdGlvbihlLHQpe3JldHVybiBlK3R9LGFzaW46ZnVuY3Rpb24oZSl7cmV0dXJuIHIubWF0aC5pc0RlZ3JlZT8xODAvTWF0aC5QSSpNYXRoLmFzaW4oZSk6TWF0aC5hc2luKGUpfSxhdGFuOmZ1bmN0aW9uKGUpe3JldHVybiByLm1hdGguaXNEZWdyZWU/MTgwL01hdGguUEkqTWF0aC5hdGFuKGUpOk1hdGguYXRhbihlKX0sYWNvc2g6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgubG9nKGUrTWF0aC5zcXJ0KGUqZS0xKSl9LGFzaW5oOmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLmxvZyhlK01hdGguc3FydChlKmUrMSkpfSxhdGFuaDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coKDErZSkvKDEtZSkpfSxDOmZ1bmN0aW9uKGUsdCl7dmFyIG49MSxpPWUtdCxvPXQ7bzxpJiYobz1pLGk9dCk7Zm9yKHZhciBhPW8rMTthPD1lO2ErKyluKj1hO3JldHVybiBuL3IubWF0aC5mYWN0KGkpfSxjaGFuZ2VTaWduOmZ1bmN0aW9uKGUpe3JldHVybi1lfSxjb3M6ZnVuY3Rpb24oZSl7cmV0dXJuIHIubWF0aC5pc0RlZ3JlZSYmKGU9ci5tYXRoLnRvUmFkaWFuKGUpKSxNYXRoLmNvcyhlKX0sY29zaDpmdW5jdGlvbihlKXtyZXR1cm4oTWF0aC5wb3coTWF0aC5FLGUpK01hdGgucG93KE1hdGguRSwtMSplKSkvMn0sZGl2OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUvdH0sZmFjdDpmdW5jdGlvbihlKXtpZihlJTEhPT0wKXJldHVybiJOQU4iO2Zvcih2YXIgdD0xLHI9MjtyPD1lO3IrKyl0Kj1yO3JldHVybiB0fSxpbnZlcnNlOmZ1bmN0aW9uKGUpe3JldHVybiAxL2V9LGxvZzpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZSkvTWF0aC5sb2coMTApfSxtb2Q6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSV0fSxtdWw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSp0fSxQOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByPTEsbj1NYXRoLmZsb29yKGUpLU1hdGguZmxvb3IodCkrMTtuPD1NYXRoLmZsb29yKGUpO24rKylyKj1uO3JldHVybiByfSxQaTpmdW5jdGlvbihlLHQscil7Zm9yKHZhciBuPTEsaT1lO2k8PXQ7aSsrKW4qPU51bWJlcihyLnBvc3RmaXhFdmFsKHtuOml9KSk7cmV0dXJuIG59LHBvdzEweDpmdW5jdGlvbihlKXtmb3IodmFyIHQ9MTtlLS07KXQqPTEwO3JldHVybiB0fSxzaWdtYTpmdW5jdGlvbihlLHQscil7Zm9yKHZhciBuPTAsaT1lO2k8PXQ7aSsrKW4rPU51bWJlcihyLnBvc3RmaXhFdmFsKHtuOml9KSk7cmV0dXJuIG59LHNpbjpmdW5jdGlvbihlKXtyZXR1cm4gci5tYXRoLmlzRGVncmVlJiYoZT1yLm1hdGgudG9SYWRpYW4oZSkpLE1hdGguc2luKGUpfSxzaW5oOmZ1bmN0aW9uKGUpe3JldHVybihNYXRoLnBvdyhNYXRoLkUsZSktTWF0aC5wb3coTWF0aC5FLC0xKmUpKS8yfSxzdWI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS10fSx0YW46ZnVuY3Rpb24oZSl7cmV0dXJuIHIubWF0aC5pc0RlZ3JlZSYmKGU9ci5tYXRoLnRvUmFkaWFuKGUpKSxNYXRoLnRhbihlKX0sdGFuaDpmdW5jdGlvbihlKXtyZXR1cm4gci5zaW5oYShlKS9yLmNvc2hhKGUpfSx0b1JhZGlhbjpmdW5jdGlvbihlKXtyZXR1cm4gZSpNYXRoLlBJLzE4MH19LHIuZXhjZXB0aW9uPWZ1bmN0aW9uKGUpe3RoaXMubWVzc2FnZT1lfSxlLmV4cG9ydHM9cn0sZnVuY3Rpb24oZSx0LHIpeyhmdW5jdGlvbih0KXsoZnVuY3Rpb24oKXt2YXIgcixuLGksbyxhLHM7InVuZGVmaW5lZCIhPT10eXBlb2YgcGVyZm9ybWFuY2UmJm51bGwhPT1wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P2UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX06InVuZGVmaW5lZCIhPT10eXBlb2YgdCYmbnVsbCE9PXQmJnQuaHJ0aW1lPyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4ocigpLWEpLzFlNn0sbj10LmhydGltZSxvPShyPWZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIDFlOSooZT1uKCkpWzBdK2VbMV19KSgpLHM9MWU5KnQudXB0aW1lKCksYT1vLXMpOkRhdGUubm93PyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3coKS1pfSxpPURhdGUubm93KCkpOihlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKS1pfSxpPShuZXcgRGF0ZSkuZ2V0VGltZSgpKX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMscig0NikpfSxmdW5jdGlvbihlLHQscil7dmFyIG49cig0ODApKE9iamVjdC5nZXRQcm90b3R5cGVPZixPYmplY3QpO2UuZXhwb3J0cz1ufSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyOTIpLGk9cig0OTQpLG89cig0OTYpLGE9cigxNTIpLHM9cigyOTgpLHU9cigyOTMpLGM9TWF0aC5taW47ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIGY9cj9vOmksbD1lWzBdLmxlbmd0aCxoPWUubGVuZ3RoLHA9aCxkPUFycmF5KGgpLHk9MS8wLGc9W107cC0tOyl7dmFyIHY9ZVtwXTtwJiZ0JiYodj1hKHYscyh0KSkpLHk9Yyh2Lmxlbmd0aCx5KSxkW3BdPSFyJiYodHx8bD49MTIwJiZ2Lmxlbmd0aD49MTIwKT9uZXcgbihwJiZ2KTp2b2lkIDB9dj1lWzBdO3ZhciBtPS0xLGI9ZFswXTtlOmZvcig7KyttPGwmJmcubGVuZ3RoPHk7KXt2YXIgXz12W21dLFM9dD90KF8pOl87aWYoXz1yfHwwIT09Xz9fOjAsIShiP3UoYixTKTpmKGcsUyxyKSkpe2ZvcihwPWg7LS1wOyl7dmFyIEU9ZFtwXTtpZighKEU/dShFLFMpOmYoZVtwXSxTLHIpKSljb250aW51ZSBlfWImJmIucHVzaChTKSxnLnB1c2goXyl9fXJldHVybiBnfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTEwMik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBuKGUpP2U6W119fSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMTcpLGk9cig3NCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBpKGUpJiZuKGUpfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTk4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgcj1bXTtyZXR1cm4gbihlLGZ1bmN0aW9uKGUsbixpKXt0KGUsbixpKSYmci5wdXNoKGUpfSkscn19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dC5fX2VzTW9kdWxlPSEwLHQuZGVmYXVsdD12b2lkIDA7IWZ1bmN0aW9uKGUpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgdD17fTtpZihudWxsIT1lKWZvcih2YXIgciBpbiBlKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXt2YXIgbj1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHIpOnt9O24uZ2V0fHxuLnNldD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLG4pOnRbcl09ZVtyXX10LmRlZmF1bHQ9ZX0ocigwKSk7dmFyIG49cyhyKDExMDUpKSxpPXMocigxMTA4KSksbz1zKHIoMSkpLGE9cyhyKDQ5NykpO3IoNDk5KTtmdW5jdGlvbiBzKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX1mdW5jdGlvbiB1KCl7cmV0dXJuKHU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIHI9YXJndW1lbnRzW3RdO2Zvcih2YXIgbiBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLG4pJiYoZVtuXT1yW25dKX1yZXR1cm4gZX0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIgYz1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0JiZ0LnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4oMCxuLmRlZmF1bHQpKGUsdCl9KX0sZj1mdW5jdGlvbihlLHQpe3JldHVybiBlJiZ0JiZ0LnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4oMCxpLmRlZmF1bHQpKGUsdCl9KX0sbD1mdW5jdGlvbihlKXt2YXIgdCxyO2Z1bmN0aW9uIG4oKXtmb3IodmFyIHQscj1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7aSsrKW5baV09YXJndW1lbnRzW2ldO3JldHVybih0PWUuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQobikpfHx0aGlzKS5vbkVudGVyPWZ1bmN0aW9uKGUscil7dmFyIG49dC5nZXRDbGFzc05hbWVzKHI/ImFwcGVhciI6ImVudGVyIikuY2xhc3NOYW1lO3QucmVtb3ZlQ2xhc3NlcyhlLCJleGl0IiksYyhlLG4pLHQucHJvcHMub25FbnRlciYmdC5wcm9wcy5vbkVudGVyKGUscil9LHQub25FbnRlcmluZz1mdW5jdGlvbihlLHIpe3ZhciBuPXQuZ2V0Q2xhc3NOYW1lcyhyPyJhcHBlYXIiOiJlbnRlciIpLmFjdGl2ZUNsYXNzTmFtZTt0LnJlZmxvd0FuZEFkZENsYXNzKGUsbiksdC5wcm9wcy5vbkVudGVyaW5nJiZ0LnByb3BzLm9uRW50ZXJpbmcoZSxyKX0sdC5vbkVudGVyZWQ9ZnVuY3Rpb24oZSxyKXt2YXIgbj10LmdldENsYXNzTmFtZXMoImFwcGVhciIpLmRvbmVDbGFzc05hbWUsaT10LmdldENsYXNzTmFtZXMoImVudGVyIikuZG9uZUNsYXNzTmFtZSxvPXI/bisiICIraTppO3QucmVtb3ZlQ2xhc3NlcyhlLHI/ImFwcGVhciI6ImVudGVyIiksYyhlLG8pLHQucHJvcHMub25FbnRlcmVkJiZ0LnByb3BzLm9uRW50ZXJlZChlLHIpfSx0Lm9uRXhpdD1mdW5jdGlvbihlKXt2YXIgcj10LmdldENsYXNzTmFtZXMoImV4aXQiKS5jbGFzc05hbWU7dC5yZW1vdmVDbGFzc2VzKGUsImFwcGVhciIpLHQucmVtb3ZlQ2xhc3NlcyhlLCJlbnRlciIpLGMoZSxyKSx0LnByb3BzLm9uRXhpdCYmdC5wcm9wcy5vbkV4aXQoZSl9LHQub25FeGl0aW5nPWZ1bmN0aW9uKGUpe3ZhciByPXQuZ2V0Q2xhc3NOYW1lcygiZXhpdCIpLmFjdGl2ZUNsYXNzTmFtZTt0LnJlZmxvd0FuZEFkZENsYXNzKGUsciksdC5wcm9wcy5vbkV4aXRpbmcmJnQucHJvcHMub25FeGl0aW5nKGUpfSx0Lm9uRXhpdGVkPWZ1bmN0aW9uKGUpe3ZhciByPXQuZ2V0Q2xhc3NOYW1lcygiZXhpdCIpLmRvbmVDbGFzc05hbWU7dC5yZW1vdmVDbGFzc2VzKGUsImV4aXQiKSxjKGUsciksdC5wcm9wcy5vbkV4aXRlZCYmdC5wcm9wcy5vbkV4aXRlZChlKX0sdC5nZXRDbGFzc05hbWVzPWZ1bmN0aW9uKGUpe3ZhciByPXQucHJvcHMuY2xhc3NOYW1lcyxuPSJzdHJpbmciPT09dHlwZW9mIHIsaT1uPyhuJiZyP3IrIi0iOiIiKStlOnJbZV07cmV0dXJue2NsYXNzTmFtZTppLGFjdGl2ZUNsYXNzTmFtZTpuP2krIi1hY3RpdmUiOnJbZSsiQWN0aXZlIl0sZG9uZUNsYXNzTmFtZTpuP2krIi1kb25lIjpyW2UrIkRvbmUiXX19LHR9cj1lLCh0PW4pLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHIucHJvdG90eXBlKSx0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10LHQuX19wcm90b19fPXI7dmFyIGk9bi5wcm90b3R5cGU7cmV0dXJuIGkucmVtb3ZlQ2xhc3Nlcz1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXMuZ2V0Q2xhc3NOYW1lcyh0KSxuPXIuY2xhc3NOYW1lLGk9ci5hY3RpdmVDbGFzc05hbWUsbz1yLmRvbmVDbGFzc05hbWU7biYmZihlLG4pLGkmJmYoZSxpKSxvJiZmKGUsbyl9LGkucmVmbG93QW5kQWRkQ2xhc3M9ZnVuY3Rpb24oZSx0KXt0JiYoZSYmZS5zY3JvbGxUb3AsYyhlLHQpKX0saS5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZT11KHt9LHRoaXMucHJvcHMpO3JldHVybiBkZWxldGUgZS5jbGFzc05hbWVzLG8uZGVmYXVsdC5jcmVhdGVFbGVtZW50KGEuZGVmYXVsdCx1KHt9LGUse29uRW50ZXI6dGhpcy5vbkVudGVyLG9uRW50ZXJlZDp0aGlzLm9uRW50ZXJlZCxvbkVudGVyaW5nOnRoaXMub25FbnRlcmluZyxvbkV4aXQ6dGhpcy5vbkV4aXQsb25FeGl0aW5nOnRoaXMub25FeGl0aW5nLG9uRXhpdGVkOnRoaXMub25FeGl0ZWR9KSl9LG59KG8uZGVmYXVsdC5Db21wb25lbnQpO2wuZGVmYXVsdFByb3BzPXtjbGFzc05hbWVzOiIifSxsLnByb3BUeXBlcz17fTt2YXIgaD1sO3QuZGVmYXVsdD1oLGUuZXhwb3J0cz10LmRlZmF1bHR9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigxMTA2KTt0Ll9fZXNNb2R1bGU9ITAsdC5kZWZhdWx0PWZ1bmN0aW9uKGUsdCl7ZS5jbGFzc0xpc3Q/ZS5jbGFzc0xpc3QuYWRkKHQpOigwLGkuZGVmYXVsdCkoZSx0KXx8KCJzdHJpbmciPT09dHlwZW9mIGUuY2xhc3NOYW1lP2UuY2xhc3NOYW1lPWUuY2xhc3NOYW1lKyIgIit0OmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsKGUuY2xhc3NOYW1lJiZlLmNsYXNzTmFtZS5iYXNlVmFsfHwiIikrIiAiK3QpKX07dmFyIGk9bihyKDExMDcpKTtlLmV4cG9ydHM9dC5kZWZhdWx0fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5jbGFzc0xpc3Q/ISF0JiZlLmNsYXNzTGlzdC5jb250YWlucyh0KTotMSE9PSgiICIrKGUuY2xhc3NOYW1lLmJhc2VWYWx8fGUuY2xhc3NOYW1lKSsiICIpLmluZGV4T2YoIiAiK3QrIiAiKX0sZS5leHBvcnRzPXQuZGVmYXVsdH0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUsdCl7cmV0dXJuIGUucmVwbGFjZShuZXcgUmVnRXhwKCIoXnxcXHMpIit0KyIoPzpcXHN8JCkiLCJnIiksIiQxIikucmVwbGFjZSgvXHMrL2csIiAiKS5yZXBsYWNlKC9eXHMqfFxzKiQvZywiIil9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7ZS5jbGFzc0xpc3Q/ZS5jbGFzc0xpc3QucmVtb3ZlKHQpOiJzdHJpbmciPT09dHlwZW9mIGUuY2xhc3NOYW1lP2UuY2xhc3NOYW1lPW4oZS5jbGFzc05hbWUsdCk6ZS5zZXRBdHRyaWJ1dGUoImNsYXNzIixuKGUuY2xhc3NOYW1lJiZlLmNsYXNzTmFtZS5iYXNlVmFsfHwiIix0KSl9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMCx0LmRlZmF1bHQ9dm9pZCAwO2EocigwKSk7dmFyIG49YShyKDEpKSxpPXIoMjAwKSxvPWEocig1MDApKTtmdW5jdGlvbiBhKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX12YXIgcz1mdW5jdGlvbihlKXt2YXIgdCxyO2Z1bmN0aW9uIGEoKXtmb3IodmFyIHQscj1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7aSsrKW5baV09YXJndW1lbnRzW2ldO3JldHVybih0PWUuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQobikpfHx0aGlzKS5oYW5kbGVFbnRlcj1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXJbbl09YXJndW1lbnRzW25dO3JldHVybiB0LmhhbmRsZUxpZmVjeWNsZSgib25FbnRlciIsMCxyKX0sdC5oYW5kbGVFbnRlcmluZz1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXJbbl09YXJndW1lbnRzW25dO3JldHVybiB0LmhhbmRsZUxpZmVjeWNsZSgib25FbnRlcmluZyIsMCxyKX0sdC5oYW5kbGVFbnRlcmVkPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspcltuXT1hcmd1bWVudHNbbl07cmV0dXJuIHQuaGFuZGxlTGlmZWN5Y2xlKCJvbkVudGVyZWQiLDAscil9LHQuaGFuZGxlRXhpdD1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXJbbl09YXJndW1lbnRzW25dO3JldHVybiB0LmhhbmRsZUxpZmVjeWNsZSgib25FeGl0IiwxLHIpfSx0LmhhbmRsZUV4aXRpbmc9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShlKSxuPTA7bjxlO24rKylyW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gdC5oYW5kbGVMaWZlY3ljbGUoIm9uRXhpdGluZyIsMSxyKX0sdC5oYW5kbGVFeGl0ZWQ9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShlKSxuPTA7bjxlO24rKylyW25dPWFyZ3VtZW50c1tuXTtyZXR1cm4gdC5oYW5kbGVMaWZlY3ljbGUoIm9uRXhpdGVkIiwxLHIpfSx0fXI9ZSwodD1hKS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShyLnByb3RvdHlwZSksdC5wcm90b3R5cGUuY29uc3RydWN0b3I9dCx0Ll9fcHJvdG9fXz1yO3ZhciBzPWEucHJvdG90eXBlO3JldHVybiBzLmhhbmRsZUxpZmVjeWNsZT1mdW5jdGlvbihlLHQscil7dmFyIG8sYT10aGlzLnByb3BzLmNoaWxkcmVuLHM9bi5kZWZhdWx0LkNoaWxkcmVuLnRvQXJyYXkoYSlbdF07cy5wcm9wc1tlXSYmKG89cy5wcm9wcylbZV0uYXBwbHkobyxyKSx0aGlzLnByb3BzW2VdJiZ0aGlzLnByb3BzW2VdKCgwLGkuZmluZERPTU5vZGUpKHRoaXMpKX0scy5yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByb3BzLHQ="
}

github/deemru/w8io/169f3d6 
4.50 ms