mberr · data · 2.7c767379.chunk.js_57
{
"2.7c767379.chunk.js_57": "base64:dih0aGlzLCEwKSxlKWUuZXJyb3I9dGhpcy5lcnJvcixlLnN3YXBUaW1lPXRoaXMuc3dhcFRpbWUsZS51c2VyRGF0YT10aGlzLnVzZXJEYXRhLGcoZSwwKTtlbHNle2lmKG51bGwhPT10aGlzLnBhcmVudCl7Zm9yKHZhciB0PXRoaXMucGFyZW50O251bGwhPT10LnBhcmVudDspdC5lcnJvcj10aGlzLmVycm9yLHQuc3dhcFRpbWU9dGhpcy5zd2FwVGltZSx0LnVzZXJEYXRhPXRoaXMudXNlckRhdGEsdD10LnBhcmVudDt2KHQsITApfXRoaXMuZmFpbHVyZUNhbGxiYWNrJiZ0aGlzLmZhaWx1cmVDYWxsYmFjayh0aGlzKX19O3ZhciBnPWZ1bmN0aW9uIGUodCxyKXt2YXIgbj1yPjMwfHwrbmV3IERhdGUtdC5zd2FwVGltZT4yMCxpPWZ1bmN0aW9uKHIpe2lmKHIrKyx0LnN0YXRlPT09YylpZihuJiYodC5zd2FwVGltZT0rbmV3IERhdGUpLHQuc3VidGFza3MubGVuZ3RoPjApe3ZhciBpPXQuc3VidGFza3Muc2hpZnQoKTtpLmVycm9yPXQuZXJyb3IsaS5zd2FwVGltZT10LnN3YXBUaW1lLGkudXNlckRhdGE9dC51c2VyRGF0YSxpLnJ1bihpKSxpLmVycm9yfHxlKGkscil9ZWxzZSB2KHQpLHQuZXJyb3J8fG51bGwhPT10LnBhcmVudCYmKHQucGFyZW50LmVycm9yPXQuZXJyb3IsdC5wYXJlbnQuc3dhcFRpbWU9dC5zd2FwVGltZSx0LnBhcmVudC51c2VyRGF0YT10LnVzZXJEYXRhLGUodC5wYXJlbnQscikpfTtuP3NldFRpbWVvdXQoaSwwKTppKHIpfSx2PWZ1bmN0aW9uKGUsdCl7ZS5zdGF0ZT1oLGRlbGV0ZSBvW2UuaWRdLG51bGw9PT1lLnBhcmVudCYmKGUudHlwZSBpbiBzPzA9PT1zW2UudHlwZV0ubGVuZ3RoP24ubG9nLmVycm9yKGksIlslc11bJXNdIHRhc2sgcXVldWUgZW1wdHkgWyVzXSIsZS5pZCxlLm5hbWUsZS50eXBlKTpzW2UudHlwZV1bMF0hPT1lP24ubG9nLmVycm9yKGksIlslc11bJXNdIHRhc2sgbm90IGZpcnN0IGluIHF1ZXVlIFslc10iLGUuaWQsZS5uYW1lLGUudHlwZSk6KHNbZS50eXBlXS5zaGlmdCgpLDA9PT1zW2UudHlwZV0ubGVuZ3RoP2RlbGV0ZSBzW2UudHlwZV06c1tlLnR5cGVdWzBdLnN0YXJ0KCkpOm4ubG9nLmVycm9yKGksIlslc11bJXNdIHRhc2sgcXVldWUgbWlzc2luZyBbJXNdIixlLmlkLGUubmFtZSxlLnR5cGUpLHR8fChlLmVycm9yJiZlLmZhaWx1cmVDYWxsYmFjaz9lLmZhaWx1cmVDYWxsYmFjayhlKTohZS5lcnJvciYmZS5zdWNjZXNzQ2FsbGJhY2smJmUuc3VjY2Vzc0NhbGxiYWNrKGUpKSl9O2UuZXhwb3J0cz1uLnRhc2s9bi50YXNrfHx7fSxuLnRhc2suc3RhcnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IHkoe3J1bjplLnJ1bixuYW1lOmUubmFtZXx8Ij8ifSk7dC50eXBlPWUudHlwZSx0LnN1Y2Nlc3NDYWxsYmFjaz1lLnN1Y2Nlc3N8fG51bGwsdC5mYWlsdXJlQ2FsbGJhY2s9ZS5mYWlsdXJlfHxudWxsLHQudHlwZSBpbiBzP3NbZS50eXBlXS5wdXNoKHQpOihzW3QudHlwZV09W3RdLGZ1bmN0aW9uKGUpe2UuZXJyb3I9ITEsZS5zdGF0ZT1kW2Uuc3RhdGVdLnN0YXJ0LHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLnN0YXRlPT09YyYmKGUuc3dhcFRpbWU9K25ldyBEYXRlLGUucnVuKGUpLGcoZSwwKSl9LDApfSh0KSl9LG4udGFzay5jYW5jZWw9ZnVuY3Rpb24oZSl7ZSBpbiBzJiYoc1tlXT1bc1tlXVswXV0pfSxuLnRhc2suY3JlYXRlQ29uZGl0aW9uPWZ1bmN0aW9uKCl7dmFyIGU9e3Rhc2tzOnt9LHdhaXQ6ZnVuY3Rpb24odCl7dC5pZCBpbiBlLnRhc2tzfHwodC5ibG9jaygpLGUudGFza3NbdC5pZF09dCl9LG5vdGlmeTpmdW5jdGlvbigpe3ZhciB0PWUudGFza3M7Zm9yKHZhciByIGluIGUudGFza3M9e30sdCl0W3JdLnVuYmxvY2soKX19O3JldHVybiBlfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49IjEyMzQ1Njc4OUFCQ0RFRkdISktMTU5QUVJTVFVWV1hZWmFiY2RlZmdoaWprbW5vcHFyc3R1dnd4eXoiLGk9bi5zcGxpdCgiIikucmVkdWNlKGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZVt0XT1yLGV9LHt9KTt0LmRlZmF1bHQ9e2VuY29kZTpmdW5jdGlvbihlKXtpZighZS5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciB0PVswXSxyPTA7cjxlLmxlbmd0aDtyKyspe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXRbaV08PD04O3RbMF0rPWVbcl07Zm9yKHZhciBvPTAsYT0wO2E8dC5sZW5ndGg7YSsrKXRbYV0rPW8sbz10W2FdLzU4fDAsdFthXSU9NTg7Zm9yKDtvOyl0LnB1c2gobyU1OCksbz1vLzU4fDB9Zm9yKHI9MDswPT09ZVtyXSYmcjxlLmxlbmd0aC0xO3IrKyl0LnB1c2goMCk7cmV0dXJuIHQucmV2ZXJzZSgpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbltlXX0pLmpvaW4oIiIpfSxkZWNvZGU6ZnVuY3Rpb24oZSl7aWYoIWUubGVuZ3RoKXJldHVybiBuZXcgVWludDhBcnJheSgwKTtmb3IodmFyIHQ9WzBdLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtpZighKG4gaW4gaSkpdGhyb3cnVGhlcmUgaXMgbm8gY2hhcmFjdGVyICInK24rJyIgaW4gdGhlIEJhc2U1OCBzZXF1ZW5jZSEnO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRbb10qPTU4O3RbMF0rPWlbbl07dmFyIGE9MDtmb3Iobz0wO288dC5sZW5ndGg7bysrKXRbb10rPWEsYT10W29dPj44LHRbb10mPTI1NTtmb3IoO2E7KXQucHVzaCgyNTUmYSksYT4+PTh9Zm9yKHI9MDsiMSI9PT1lW3JdJiZyPGUubGVuZ3RoLTE7cisrKXQucHVzaCgwKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodC5yZXZlcnNlKCkpfX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3QudXRmOEFycmF5VG9TdHI9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgQXJyYXkoMTI4KSx0PVN0cmluZy5mcm9tQ29kZVBvaW50fHxTdHJpbmcuZnJvbUNoYXJDb2RlLHI9W107cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpLG8sYT1uLmxlbmd0aDtyLmxlbmd0aD0wO2Zvcih2YXIgcz0wO3M8YTspKG89bltzKytdKTw9MTI3P2k9bzpvPD0yMjM/aT0oMzEmbyk8PDZ8NjMmbltzKytdOm88PTIzOT9pPSgxNSZvKTw8MTJ8KDYzJm5bcysrXSk8PDZ8NjMmbltzKytdOlN0cmluZy5mcm9tQ29kZVBvaW50P2k9KDcmbyk8PDE4fCg2MyZuW3MrK10pPDwxMnwoNjMmbltzKytdKTw8Nnw2MyZuW3MrK106KGk9NjMscys9Myksci5wdXNoKGVbaV18fChlW2ldPXQoaSkpKTtyZXR1cm4gci5qb2luKCIiKX19KCksdC5zdHJUb1V0ZjhBcnJheT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10scj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lLmNoYXJDb2RlQXQocik7bjwxMjg/dC5wdXNoKG4pOm48MjA0OD90LnB1c2goMTkyfG4+PjYsMTI4fDYzJm4pOm48NTUyOTZ8fG4+PTU3MzQ0P3QucHVzaCgyMjR8bj4+MTIsMTI4fG4+PjYmNjMsMTI4fDYzJm4pOihyKyssbj02NTUzNisoKDEwMjMmbik8PDEwfDEwMjMmZS5jaGFyQ29kZUF0KHIpKSx0LnB1c2goMjQwfG4+PjE4LDEyOHxuPj4xMiY2MywxMjh8bj4+NiY2MywxMjh8NjMmbikpfXJldHVybiBVaW50OEFycmF5LmZyb20odCl9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMDtmb3IodmFyIG49IjAxMjM0NTY3ODlhYmNkZWYiLnNwbGl0KCIiKSxpPVswLDgsMTYsMjRdLG89WzEsMCwzMjg5OCwwLDMyOTA2LDIxNDc0ODM2NDgsMjE0NzUxNjQxNiwyMTQ3NDgzNjQ4LDMyOTA3LDAsMjE0NzQ4MzY0OSwwLDIxNDc1MTY1NDUsMjE0NzQ4MzY0OCwzMjc3NywyMTQ3NDgzNjQ4LDEzOCwwLDEzNiwwLDIxNDc1MTY0MjUsMCwyMTQ3NDgzNjU4LDAsMjE0NzUxNjU1NSwwLDEzOSwyMTQ3NDgzNjQ4LDMyOTA1LDIxNDc0ODM2NDgsMzI3NzEsMjE0NzQ4MzY0OCwzMjc3MCwyMTQ3NDgzNjQ4LDEyOCwyMTQ3NDgzNjQ4LDMyNzc4LDAsMjE0NzQ4MzY1OCwyMTQ3NDgzNjQ4LDIxNDc1MTY1NDUsMjE0NzQ4MzY0OCwzMjg5NiwyMTQ3NDgzNjQ4LDIxNDc0ODM2NDksMCwyMTQ3NTE2NDI0LDIxNDc0ODM2NDhdLGE9WzIyNCwyNTYsMzg0LDUxMl0scz1bImhleCIsImJ1ZmZlciIsImFycmF5QnVmZmVyIiwiYXJyYXkiXSx1PWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG5ldyBiKGUsdCxlKS51cGRhdGUobilbcl0oKX19LGM9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBmdW5jdGlvbihuLGkpe3JldHVybiBuZXcgYihlLHQsaSkudXBkYXRlKG4pW3JdKCl9fSxmPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dShlLHQsImhleCIpO3IuY3JlYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBiKGUsdCxlKX0sci51cGRhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHIuY3JlYXRlKCkudXBkYXRlKGUpfTtmb3IodmFyIG49MDtuPHMubGVuZ3RoOysrbil7dmFyIGk9c1tuXTtyW2ldPXUoZSx0LGkpfXJldHVybiByfSxsPVt7bmFtZToia2VjY2FrIixwYWRkaW5nOlsxLDI1Niw2NTUzNiwxNjc3NzIxNl0sYml0czphLGNyZWF0ZU1ldGhvZDpmfSx7bmFtZToic2hhMyIscGFkZGluZzpbNiwxNTM2LDM5MzIxNiwxMDA2NjMyOTZdLGJpdHM6YSxjcmVhdGVNZXRob2Q6Zn0se25hbWU6InNoYWtlIixwYWRkaW5nOlszMSw3OTM2LDIwMzE2MTYsNTIwMDkzNjk2XSxiaXRzOlsxMjgsMjU2XSxjcmVhdGVNZXRob2Q6ZnVuY3Rpb24oZSx0KXt2YXIgcj1jKGUsdCwiaGV4Iik7ci5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIG5ldyBiKGUsdCxyKX0sci51cGRhdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gci5jcmVhdGUodCkudXBkYXRlKGUpfTtmb3IodmFyIG49MDtuPHMubGVuZ3RoOysrbil7dmFyIGk9c1tuXTtyW2ldPWMoZSx0LGkpfXJldHVybiByfX1dLGg9e30scD1bXSxkPTA7ZDxsLmxlbmd0aDsrK2QpZm9yKHZhciB5PWxbZF0sZz15LmJpdHMsdj0wO3Y8Zy5sZW5ndGg7Kyt2KXt2YXIgbT15Lm5hbWUrIl8iK2dbdl07cC5wdXNoKG0pLGhbbV09eS5jcmVhdGVNZXRob2QoZ1t2XSx5LnBhZGRpbmcpfWZ1bmN0aW9uIGIoZSx0LHIpe3RoaXMuYmxvY2tzPVtdLHRoaXMucz1bXSx0aGlzLnBhZGRpbmc9dCx0aGlzLm91dHB1dEJpdHM9cix0aGlzLnJlc2V0PSEwLHRoaXMuYmxvY2s9MCx0aGlzLnN0YXJ0PTAsdGhpcy5ibG9ja0NvdW50PTE2MDAtKGU8PDEpPj41LHRoaXMuYnl0ZUNvdW50PXRoaXMuYmxvY2tDb3VudDw8Mix0aGlzLm91dHB1dEJsb2Nrcz1yPj41LHRoaXMuZXh0cmFCeXRlcz0oMzEmcik+PjM7Zm9yKHZhciBuPTA7bjw1MDsrK24pdGhpcy5zW25dPTB9Yi5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PSJzdHJpbmciIT09dHlwZW9mIGU7dCYmZS5jb25zdHJ1Y3Rvcj09PUFycmF5QnVmZmVyJiYoZT1uZXcgVWludDhBcnJheShlKSk7Zm9yKHZhciByLG4sbz1lLmxlbmd0aCxhPXRoaXMuYmxvY2tzLHM9dGhpcy5ieXRlQ291bnQsdT10aGlzLmJsb2NrQ291bnQsYz0wLGY9dGhpcy5zO2M8bzspe2lmKHRoaXMucmVzZXQpZm9yKHRoaXMucmVzZXQ9ITEsYVswXT10aGlzLmJsb2NrLHI9MTtyPHUrMTsrK3IpYVtyXT0wO2lmKHQpZm9yKHI9dGhpcy5zdGFydDtjPG8mJnI8czsrK2MpYVtyPj4yXXw9ZVtjXTw8aVszJnIrK107ZWxzZSBmb3Iocj10aGlzLnN0YXJ0O2M8byYmcjxzOysrYykobj1lLmNoYXJDb2RlQXQoYykpPDEyOD9hW3I+PjJdfD1uPDxpWzMmcisrXTpuPDIwNDg/KGFbcj4+Ml18PSgxOTJ8bj4+Nik8PGlbMyZyKytdLGFbcj4+Ml18PSgxMjh8NjMmbik8PGlbMyZyKytdKTpuPDU1Mjk2fHxuPj01NzM0ND8oYVtyPj4yXXw9KDIyNHxuPj4xMik8PGlbMyZyKytdLGFbcj4+Ml18PSgxMjh8bj4+NiY2Myk8PGlbMyZyKytdLGFbcj4+Ml18PSgxMjh8NjMmbik8PGlbMyZyKytdKToobj02NTUzNisoKDEwMjMmbik8PDEwfDEwMjMmZS5jaGFyQ29kZUF0KCsrYykpLGFbcj4+Ml18PSgyNDB8bj4+MTgpPDxpWzMmcisrXSxhW3I+PjJdfD0oMTI4fG4+PjEyJjYzKTw8aVszJnIrK10sYVtyPj4yXXw9KDEyOHxuPj42JjYzKTw8aVszJnIrK10sYVtyPj4yXXw9KDEyOHw2MyZuKTw8aVszJnIrK10pO2lmKHRoaXMubGFzdEJ5dGVJbmRleD1yLHI+PXMpe2Zvcih0aGlzLnN0YXJ0PXItcyx0aGlzLmJsb2NrPWFbdV0scj0wO3I8dTsrK3IpZltyXV49YVtyXTtfKGYpLHRoaXMucmVzZXQ9ITB9ZWxzZSB0aGlzLnN0YXJ0PXJ9cmV0dXJuIHRoaXN9LGIucHJvdG90eXBlLmZpbmFsaXplPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5ibG9ja3MsdD10aGlzLmxhc3RCeXRlSW5kZXgscj10aGlzLmJsb2NrQ291bnQsbj10aGlzLnM7aWYoZVt0Pj4yXXw9dGhpcy5wYWRkaW5nWzMmdF0sdGhpcy5sYXN0Qnl0ZUluZGV4PT09dGhpcy5ieXRlQ291bnQpZm9yKGVbMF09ZVtyXSx0PTE7dDxyKzE7Kyt0KWVbdF09MDtmb3IoZVtyLTFdfD0yMTQ3NDgzNjQ4LHQ9MDt0PHI7Kyt0KW5bdF1ePWVbdF07XyhuKX0sYi5wcm90b3R5cGUudG9TdHJpbmc9Yi5wcm90b3R5cGUuaGV4PWZ1bmN0aW9uKCl7dGhpcy5maW5hbGl6ZSgpO2Zvcih2YXIgZSx0PXRoaXMuYmxvY2tDb3VudCxyPXRoaXMucyxpPXRoaXMub3V0cHV0QmxvY2tzLG89dGhpcy5leHRyYUJ5dGVzLGE9MCxzPTAsdT0iIjtzPGk7KXtmb3IoYT0wO2E8dCYmczxpOysrYSwrK3MpZT1yW2FdLHUrPW5bZT4+NCYxNV0rblsxNSZlXStuW2U+PjEyJjE1XStuW2U+PjgmMTVdK25bZT4+MjAmMTVdK25bZT4+MTYmMTVdK25bZT4+MjgmMTVdK25bZT4+MjQmMTVdO3MldD09PTAmJihfKHIpLGE9MCl9cmV0dXJuIG8mJihlPXJbYV0sbz4wJiYodSs9bltlPj40JjE1XStuWzE1JmVdKSxvPjEmJih1Kz1uW2U+PjEyJjE1XStuW2U+PjgmMTVdKSxvPjImJih1Kz1uW2U+PjIwJjE1XStuW2U+PjE2JjE1XSkpLHV9LGIucHJvdG90eXBlLmFycmF5QnVmZmVyPWZ1bmN0aW9uKCl7dGhpcy5maW5hbGl6ZSgpO3ZhciBlLHQ9dGhpcy5ibG9ja0NvdW50LHI9dGhpcy5zLG49dGhpcy5vdXRwdXRCbG9ja3MsaT10aGlzLmV4dHJhQnl0ZXMsbz0wLGE9MCxzPXRoaXMub3V0cHV0Qml0cz4+MztlPWk/bmV3IEFycmF5QnVmZmVyKG4rMTw8Mik6bmV3IEFycmF5QnVmZmVyKHMpO2Zvcih2YXIgdT1uZXcgVWludDMyQXJyYXkoZSk7YTxuOyl7Zm9yKG89MDtvPHQmJmE8bjsrK28sKythKXVbYV09cltvXTthJXQ9PT0wJiZfKHIpfXJldHVybiBpJiYodVtvXT1yW29dLGU9ZS5zbGljZSgwLHMpKSxlfSxiLnByb3RvdHlwZS5idWZmZXI9Yi5wcm90b3R5cGUuYXJyYXlCdWZmZXIsYi5wcm90b3R5cGUuZGlnZXN0PWIucHJvdG90eXBlLmFycmF5PWZ1bmN0aW9uKCl7dGhpcy5maW5hbGl6ZSgpO2Zvcih2YXIgZSx0LHI9dGhpcy5ibG9ja0NvdW50LG49dGhpcy5zLGk9dGhpcy5vdXRwdXRCbG9ja3Msbz10aGlzLmV4dHJhQnl0ZXMsYT0wLHM9MCx1PVtdO3M8aTspe2ZvcihhPTA7YTxyJiZzPGk7KythLCsrcyllPXM8PDIsdD1uW2FdLHVbZV09MjU1JnQsdVtlKzFdPXQ+PjgmMjU1LHVbZSsyXT10Pj4xNiYyNTUsdVtlKzNdPXQ+PjI0JjI1NTtzJXI9PT0wJiZfKG4pfXJldHVybiBvJiYoZT1zPDwyLHQ9blthXSxvPjAmJih1W2VdPTI1NSZ0KSxvPjEmJih1W2UrMV09dD4+OCYyNTUpLG8+MiYmKHVbZSsyXT10Pj4xNiYyNTUpKSx1fTt2YXIgXz1mdW5jdGlvbihlKXt2YXIgdCxyLG4saSxhLHMsdSxjLGYsbCxoLHAsZCx5LGcsdixtLGIsXyxTLEUsdyxULEEsQyx4LEksayxPLE4sUCxSLEIsTSxMLEQsaixVLEYsVixxLEsseixHLEgsVyxZLFgsUSwkLFosSixlZSx0ZSxyZSxuZSxpZSxvZSxhZSxzZSx1ZSxjZSxmZTtmb3Iobj0wO248NDg7bis9MilpPWVbMF1eZVsxMF1eZVsyMF1eZVszMF1eZVs0MF0sYT1lWzFdXmVbMTFdXmVbMjFdXmVbMzFdXmVbNDFdLHM9ZVsyXV5lWzEyXV5lWzIyXV5lWzMyXV5lWzQyXSx1PWVbM11eZVsxM11eZVsyM11eZVszM11eZVs0M10sYz1lWzRdXmVbMTRdXmVbMjRdXmVbMzRdXmVbNDRdLGY9ZVs1XV5lWzE1XV5lWzI1XV5lWzM1XV5lWzQ1XSxsPWVbNl1eZVsxNl1eZVsyNl1eZVszNl1eZVs0Nl0saD1lWzddXmVbMTddXmVbMjddXmVbMzddXmVbNDddLHQ9KHA9ZVs4XV5lWzE4XV5lWzI4XV5lWzM4XV5lWzQ4XSleKHM8PDF8dT4+PjMxKSxyPShkPWVbOV1eZVsxOV1eZVsyOV1eZVszOV1eZVs0OV0pXih1PDwxfHM+Pj4zMSksZVswXV49dCxlWzFdXj1yLGVbMTBdXj10LGVbMTFdXj1yLGVbMjBdXj10LGVbMjFdXj1yLGVbMzBdXj10LGVbMzFdXj1yLGVbNDBdXj10LGVbNDFdXj1yLHQ9aV4oYzw8MXxmPj4+MzEpLHI9YV4oZjw8MXxjPj4+MzEpLGVbMl1ePXQsZVszXV49cixlWzEyXV49dCxlWzEzXV49cixlWzIyXV49dCxlWzIzXV49cixlWzMyXV49dCxlWzMzXV49cixlWzQyXV49dCxlWzQzXV49cix0PXNeKGw8PDF8aD4+PjMxKSxyPXVeKGg8PDF8bD4+PjMxKSxlWzRdXj10LGVbNV1ePXIsZVsxNF1ePXQsZVsxNV1ePXIsZVsyNF1ePXQsZVsyNV1ePXIsZVszNF1ePXQsZVszNV1ePXIsZVs0NF1ePXQsZVs0NV1ePXIsdD1jXihwPDwxfGQ+Pj4zMSkscj1mXihkPDwxfHA+Pj4zMSksZVs2XV49dCxlWzddXj1yLGVbMTZdXj10LGVbMTddXj1yLGVbMjZdXj10LGVbMjddXj1yLGVbMzZdXj10LGVbMzddXj1yLGVbNDZdXj10LGVbNDddXj1yLHQ9bF4oaTw8MXxhPj4+MzEpLHI9aF4oYTw8MXxpPj4+MzEpLGVbOF1ePXQsZVs5XV49cixlWzE4XV49dCxlWzE5XV49cixlWzI4XV49dCxlWzI5XV49cixlWzM4XV49dCxlWzM5XV49cixlWzQ4XV49dCxlWzQ5XV49cix5PWVbMF0sZz1lWzFdLFc9ZVsxMV08PDR8ZVsxMF0+Pj4yOCxZPWVbMTBdPDw0fGVbMTFdPj4+Mjgsaz1lWzIwXTw8M3xlWzIxXT4+PjI5LE89ZVsyMV08PDN8ZVsyMF0+Pj4yOSxzZT1lWzMxXTw8OXxlWzMwXT4+PjIzLHVlPWVbMzBdPDw5fGVbMzFdPj4+MjMsSz1lWzQwXTw8MTh8ZVs0MV0+Pj4xNCx6PWVbNDFdPDwxOHxlWzQwXT4+PjE0LE09ZVsyXTw8MXxlWzNdPj4+MzEsTD1lWzNdPDwxfGVbMl0+Pj4zMSx2PWVbMTNdPDwxMnxlWzEyXT4+PjIwLG09ZVsxMl08PDEyfGVbMTNdPj4+MjAsWD1lWzIyXTw8MTB8ZVsyM10+Pj4yMixRPWVbMjNdPDwxMHxlWzIyXT4+PjIyLE49ZVszM108PDEzfGVbMzJdPj4+MTksUD1lWzMyXTw8MTN8ZVszM10+Pj4xOSxjZT1lWzQyXTw8MnxlWzQzXT4+PjMwLGZlPWVbNDNdPDwyfGVbNDJdPj4+MzAsdGU9ZVs1XTw8MzB8ZVs0XT4+PjIscmU9ZVs0XTw8MzB8ZVs1XT4+PjIsRD1lWzE0XTw8NnxlWzE1XT4+PjI2LGo9ZVsxNV08PDZ8ZVsxNF0+Pj4yNixiPWVbMjVdPDwxMXxlWzI0XT4+PjIxLF89ZVsyNF08PDExfGVbMjVdPj4+MjEsJD1lWzM0XTw8MTV8ZVszNV0+Pj4xNyxaPWVbMzVdPDwxNXxlWzM0XT4+PjE3LFI9ZVs0NV08PDI5fGVbNDRdPj4+MyxCPWVbNDRdPDwyOXxlWzQ1XT4+PjMsQT1lWzZdPDwyOHxlWzddPj4+NCxDPWVbN108PDI4fGVbNl0+Pj40LG5lPWVbMTddPDwyM3xlWzE2XT4+PjksaWU9ZVsxNl08PDIzfGVbMTddPj4+OSxVPWVbMjZdPDwyNXxlWzI3XT4+PjcsRj1lWzI3XTw8MjV8ZVsyNl0+Pj43LFM9ZVszNl08PDIxfGVbMzddPj4+MTEsRT1lWzM3XTw8MjF8ZVszNl0+Pj4xMSxKPWVbNDddPDwyNHxlWzQ2XT4+PjgsZWU9ZVs0Nl08PDI0fGVbNDddPj4+OCxHPWVbOF08PDI3fGVbOV0+Pj41LEg9ZVs5XTw8Mjd8ZVs4XT4+PjUseD1lWzE4XTw8MjB8ZVsxOV0+Pj4xMixJPWVbMTldPDwyMHxlWzE4XT4+PjEyLG9lPWVbMjldPDw3fGVbMjhdPj4+MjUsYWU9ZVsyOF08PDd8ZVsyOV0+Pj4yNSxWPWVbMzhdPDw4fGVbMzldPj4+MjQscT1lWzM5XTw8OHxlWzM4XT4+PjI0LHc9ZVs0OF08PDE0fGVbNDldPj4+MTgsVD1lWzQ5XTw8MTR8ZVs0OF0+Pj4xOCxlWzBdPXlefnYmYixlWzFdPWdefm0mXyxlWzEwXT1BXn54JmssZVsxMV09Q15+SSZPLGVbMjBdPU1efkQmVSxlWzIxXT1MXn5qJkYsZVszMF09R15+VyZYLGVbMzFdPUheflkmUSxlWzQwXT10ZV5+bmUmb2UsZVs0MV09cmVefmllJmFlLGVbMl09dl5+YiZTLGVbM109bV5+XyZFLGVbMTJdPXhefmsmTixlWzEzXT1JXn5PJlAsZVsyMl09RF5+VSZWLGVbMjNdPWpefkYmcSxlWzMyXT1XXn5YJiQsZVszM109WV5+USZaLGVbNDJdPW5lXn5vZSZzZSxlWzQzXT1pZV5+YWUmdWUsZVs0XT1iXn5TJncsZVs1XT1fXn5FJlQsZVsxNF09a15+TiZSLGVbMTVdPU9eflAmQixlWzI0XT1VXn5WJkssZVsyNV09Rl5+cSZ6LGVbMzRdPVhefiQmSixlWzM1XT1RXn5aJmVlLGVbNDRdPW9lXn5zZSZjZSxlWzQ1XT1hZV5+dWUmZmUsZVs2XT1TXn53JnksZVs3XT1FXn5UJmcsZVsxNl09Tl5+UiZBLGVbMTddPVBefkImQyxlWzI2XT1WXn5LJk0sZVsyN109cV5+eiZMLGVbMzZdPSRefkomRyxlWzM3XT1aXn5lZSZILGVbNDZdPXNlXn5jZSZ0ZSxlWzQ3XT11ZV5+ZmUmcmUsZVs4XT13Xn55JnYsZVs5XT1UXn5nJm0sZVsxOF09Ul5+QSZ4LGVbMTldPUJefkMmSSxlWzI4XT1LXn5NJkQsZVsyOV09el5+TCZqLGVbMzhdPUpefkcmVyxlWzM5XT1lZV5+SCZZLGVbNDhdPWNlXn50ZSZuZSxlWzQ5XT1mZV5+cmUmaWUsZVswXV49b1tuXSxlWzFdXj1vW24rMV19O3Qua2VjY2FrMjU2PWgua2VjY2FrXzI1Nn0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24oZSl7dC5fX2VzTW9kdWxlPSEwO3ZhciByPSJJbnB1dCBtdXN0IGJlIGFuIHN0cmluZywgQnVmZmVyIG9yIFVpbnQ4QXJyYXkiO2Z1bmN0aW9uIG4oZSx0LHIpe3ZhciBuPWVbdF0rZVtyXSxpPWVbdCsxXStlW3IrMV07bj49NDI5NDk2NzI5NiYmaSsrLGVbdF09bixlW3QrMV09aX1mdW5jdGlvbiBpKGUsdCxyLG4pe3ZhciBpPWVbdF0rcjtyPDAmJihpKz00Mjk0OTY3Mjk2KTt2YXIgbz1lW3QrMV0rbjtpPj00Mjk0OTY3Mjk2JiZvKyssZVt0XT1pLGVbdCsxXT1vfWZ1bmN0aW9uIG8oZSx0KXtyZXR1cm4gZVt0XV5lW3QrMV08PDheZVt0KzJdPDwxNl5lW3QrM108PDI0fWZ1bmN0aW9uIGEoZSx0LHIsbyxhLHMpe3ZhciB1PWZbYV0sbD1mW2ErMV0saD1mW3NdLHA9ZltzKzFdO24oYyxlLHQpLGkoYyxlLHUsbCk7dmFyIGQ9Y1tvXV5jW2VdLHk9Y1tvKzFdXmNbZSsxXTtjW29dPXksY1tvKzFdPWQsbihjLHIsbyksZD1jW3RdXmNbcl0seT1jW3QrMV1eY1tyKzFdLGNbdF09ZD4+PjI0Xnk8PDgsY1t0KzFdPXk+Pj4yNF5kPDw4LG4oYyxlLHQpLGkoYyxlLGgscCksZD1jW29dXmNbZV0seT1jW28rMV1eY1tlKzFdLGNbb109ZD4+PjE2Xnk8PDE2LGNbbysxXT15Pj4+MTZeZDw8MTYsbihjLHIsbyksZD1jW3RdXmNbcl0seT1jW3QrMV1eY1tyKzFdLGNbdF09eT4+PjMxXmQ8PDEsY1t0KzFdPWQ+Pj4zMV55PDwxfXZhciBzPW5ldyBVaW50MzJBcnJheShbNDA4OTIzNTcyMCwxNzc5MDMzNzAzLDIyMjc4NzM1OTUsMzE0NDEzNDI3Nyw0MjcxMTc1NzIzLDEwMTM5MDQyNDIsMTU5NTc1MDEyOSwyNzczNDgwNzYyLDI5MTc1NjUxMzcsMTM1OTg5MzExOSw3MjU1MTExOTksMjYwMDgyMjkyNCw0MjE1Mzg5NTQ3LDUyODczNDYzNSwzMjcwMzMyMDksMTU0MTQ1OTIyNV0pLHU9bmV3IFVpbnQ4QXJyYXkoWzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTQsMTAsNCw4LDksMTUsMTMsNiwxLDEyLDAsMiwxMSw3LDUsMywxMSw4LDEyLDAsNSwyLDE1LDEzLDEwLDE0LDMsNiw3LDEsOSw0LDcsOSwzLDEsMTMsMTIsMTEsMTQsMiw2LDUsMTAsNCwwLDE1LDgsOSwwLDUsNywyLDQsMTAsMTUsMTQsMSwxMSwxMiw2LDgsMywxMywyLDEyLDYsMTAsMCwxMSw4LDMsNCwxMyw3LDUsMTUsMTQsMSw5LDEyLDUsMSwxNSwxNCwxMyw0LDEwLDAsNyw2LDMsOSwyLDgsMTEsMTMsMTEsNywxNCwxMiwxLDMsOSw1LDAsMTUsNCw4LDYsMiwxMCw2LDE1LDE0LDksMTEsMywwLDgsMTIsMiwxMyw3LDEsNCwxMCw1LDEwLDIsOCw0LDcsNiwxLDUsMTUsMTEsOSwxNCwzLDEyLDEzLDAsMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNCwxMCw0LDgsOSwxNSwxMyw2LDEsMTIsMCwyLDExLDcsNSwzXS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIDIqZX0pKSxjPW5ldyBVaW50MzJBcnJheSgzMiksZj1uZXcgVWludDMyQXJyYXkoMzIpO2Z1bmN0aW9uIGwoZSx0KXt2YXIgcj0wO2ZvcihyPTA7cjwxNjtyKyspY1tyXT1lLmhbcl0sY1tyKzE2XT1zW3JdO2ZvcihjWzI0XT1jWzI0XV5lLnQsY1syNV09Y1syNV1eZS50LzQyOTQ5NjcyOTYsdCYmKGNbMjhdPX5jWzI4XSxjWzI5XT1+Y1syOV0pLHI9MDtyPDMyO3IrKylmW3JdPW8oZS5iLDQqcik7Zm9yKHI9MDtyPDEyO3IrKylhKDAsOCwxNiwyNCx1WzE2KnIrMF0sdVsxNipyKzFdKSxhKDIsMTAsMTgsMjYsdVsxNipyKzJdLHVbMTYqciszXSksYSg0LDEyLDIwLDI4LHVbMTYqcis0XSx1WzE2KnIrNV0pLGEoNiwxNCwyMiwzMCx1WzE2KnIrNl0sdVsxNipyKzddKSxhKDAsMTAsMjAsMzAsdVsxNipyKzhdLHVbMTYqcis5XSksYSgyLDEyLDIyLDI0LHVbMTYqcisxMF0sdVsxNipyKzExXSksYSg0LDE0LDE2LDI2LHVbMTYqcisxMl0sdVsxNipyKzEzXSksYSg2LDgsMTgsMjgsdVsxNipyKzE0XSx1WzE2KnIrMTVdKTtmb3Iocj0wO3I8MTY7cisrKWUuaFtyXT1lLmhbcl1eY1tyXV5jW3IrMTZdfWZ1bmN0aW9uIGgoZSx0KXtpZigwPT09ZXx8ZT42NCl0aHJvdyBuZXcgRXJyb3IoIklsbGVnYWwgb3V0cHV0IGxlbmd0aCwgZXhwZWN0ZWQgMCA8IGxlbmd0aCA8PSA2NCIpO2lmKHQmJnQubGVuZ3RoPjY0KXRocm93IG5ldyBFcnJvcigiSWxsZWdhbCBrZXksIGV4cGVjdGVkIFVpbnQ4QXJyYXkgd2l0aCAwIDwgbGVuZ3RoIDw9IDY0Iik7Zm9yKHZhciByPXtiOm5ldyBVaW50OEFycmF5KDEyOCksaDpuZXcgVWludDMyQXJyYXkoMTYpLHQ6MCxjOjAsb3V0bGVuOmV9LG49MDtuPDE2O24rKylyLmhbbl09c1tuXTt2YXIgaT10P3QubGVuZ3RoOjA7cmV0dXJuIHIuaFswXV49MTY4NDI3NTJeaTw8OF5lLHQmJihwKHIsdCksci5jPTEyOCkscn1mdW5jdGlvbiBwKGUsdCl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspMTI4PT09ZS5jJiYoZS50Kz1lLmMsbChlLCExKSxlLmM9MCksZS5iW2UuYysrXT10W3JdfWZ1bmN0aW9uIGQoZSl7Zm9yKGUudCs9ZS5jO2UuYzwxMjg7KWUuYltlLmMrK109MDtsKGUsITApO2Zvcih2YXIgdD1uZXcgVWludDhBcnJheShlLm91dGxlbikscj0wO3I8ZS5vdXRsZW47cisrKXRbcl09ZS5oW3I+PjJdPj44KigzJnIpO3JldHVybiB0fWZ1bmN0aW9uIHkodCxuLGkpe2k9aXx8NjQsdD1mdW5jdGlvbih0KXt2YXIgbjtpZih0IGluc3RhbmNlb2YgVWludDhBcnJheSluPXQ7ZWxzZSBpZih0IGluc3RhbmNlb2YgZSluPW5ldyBVaW50OEFycmF5KHQpO2Vsc2V7aWYoInN0cmluZyIhPT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3Iocik7bj1uZXcgVWludDhBcnJheShlLmZyb20odCwidXRmOCIpKX1yZXR1cm4gbn0odCk7dmFyIG89aChpLG4pO3JldHVybiBwKG8sdCksZChvKX10LmJsYWtlMmJJbml0PWgsdC5ibGFrZTJiVXBkYXRlPXAsdC5ibGFrZTJiRmluYWw9ZCx0LmJsYWtlMmI9eSx0LmJsYWtlMmJIZXg9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuLGk9eShlLHQscik7cmV0dXJuIG49aSxBcnJheS5wcm90b3R5cGUubWFwLmNhbGwobixmdW5jdGlvbihlKXtyZXR1cm4oZTwxNj8iMCI6IiIpK2UudG9TdHJpbmcoMTYpfSkuam9pbigiIil9fSkuY2FsbCh0aGlzLHIoMTgpLkJ1ZmZlcil9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXIoMTY3KSxpPXIoNjcpLG89cigyMjgpLGE9cigyMjcpLHM9cigxNTYpO3Quc2lnbkJ5dGVzPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbi5kZWZhdWx0LnNpZ24oaS5fZnJvbUluKG8uaXNQcml2YXRlS2V5KGUpP2UucHJpdmF0ZUtleTphLnByaXZhdGVLZXkoZSkpLGkuX2Zyb21Jbih0KSxpLl9mcm9tSW4ocnx8cy5yYW5kb21CeXRlcyg2NCkpKX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXIoMTM3KSxpPXIoMzYwKSxvPXIoNjcpLGE9cigxMzYpLHM9cigyMjcpLHU9cigxNjcpO3QudmVyaWZ5QWRkcmVzcz1mdW5jdGlvbihlLHQpe3ZhciByPXQ/dC5jaGFpbklkOnZvaWQgMDt0cnl7dmFyIG49by5fZnJvbUluKGUpO2lmKDEhPW5bMF18fHImJm5bMV0hPWkuQ2hhaWRJZC50b051bWJlcihyKSlyZXR1cm4hMTtmb3IodmFyIHU9bi5zbGljZSgwLDIyKSxjPW4uc2xpY2UoMjIsMjYpLGY9YS5faGFzaENoYWluKHUpLnNsaWNlKDAsNCksbD0wO2w8NDtsKyspaWYoY1tsXSE9ZltsXSlyZXR1cm4hMTtpZih0JiZ0LnB1YmxpY0tleSl7dmFyIGg9cy5hZGRyZXNzKHtwdWJsaWNLZXk6dC5wdWJsaWNLZXl9LHIpO2lmKG4ubGVuZ3RoIT09aC5sZW5ndGgpcmV0dXJuITE7Zm9yKGw9MDtsPGgubGVuZ3RoO2wrKylpZihoW2xdIT09bltsXSlyZXR1cm4hMX19Y2F0Y2gocCl7cmV0dXJuITF9cmV0dXJuITB9LHQudmVyaWZ5U2lnbmF0dXJlPWZ1bmN0aW9uKGUsdCxyKXt0cnl7cmV0dXJuIHUuZGVmYXVsdC52ZXJpZnkoby5fZnJvbUluKGUpLG8uX2Zyb21Jbih0KSxvLl9mcm9tSW4ocikpfWNhdGNoKG4pe3JldHVybiExfX0sdC52ZXJpZnlQdWJsaWNLZXk9ZnVuY3Rpb24oZSl7cmV0dXJuIG8uX2Zyb21JbihlKS5sZW5ndGg9PT1uLlBVQkxJQ19LRVlfTEVOR1RIfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZSx0LHIsbil7cmV0dXJuIG5ldyhyfHwocj1Qcm9taXNlKSkoZnVuY3Rpb24oaSxvKXtmdW5jdGlvbiBhKGUpe3RyeXt1KG4ubmV4dChlKSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gcyhlKXt0cnl7dShuLnRocm93KGUpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiB1KGUpe2UuZG9uZT9pKGUudmFsdWUpOm5ldyByKGZ1bmN0aW9uKHQpe3QoZS52YWx1ZSl9KS50aGVuKGEscyl9dSgobj1uLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSl9LGk9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGksbyxhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmlbMF0pdGhyb3cgaVsxXTtyZXR1cm4gaVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBvPXtuZXh0OnMoMCksdGhyb3c6cygxKSxyZXR1cm46cygyKX0sImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJihvW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG87ZnVuY3Rpb24gcyhvKXtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe2lmKHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7YTspdHJ5e2lmKHI9MSxuJiYoaT0yJm9bMF0/bi5yZXR1cm46b1swXT9uLnRocm93fHwoKGk9bi5yZXR1cm4pJiZpLmNhbGwobiksMCk6bi5uZXh0KSYmIShpPWkuY2FsbChuLG9bMV0pKS5kb25lKXJldHVybiBpO3N3aXRjaChuPTAsaSYmKG89WzImb1swXSxpLnZhbHVlXSksb1swXSl7Y2FzZSAwOmNhc2UgMTppPW87YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOm9bMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxuPW9bMV0sbz1bMF07Y29udGludWU7Y2FzZSA3Om89YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShpPShpPWEudHJ5cykubGVuZ3RoPjAmJmlbaS5sZW5ndGgtMV0pJiYoNj09PW9bMF18fDI9PT1vWzBdKSl7YT0wO2NvbnRpbnVlfWlmKDM9PT1vWzBdJiYoIWl8fG9bMV0+aVswXSYmb1sxXTxpWzNdKSl7YS5sYWJlbD1vWzFdO2JyZWFrfWlmKDY9PT1vWzBdJiZhLmxhYmVsPGlbMV0pe2EubGFiZWw9aVsxXSxpPW87YnJlYWt9aWYoaSYmYS5sYWJlbDxpWzJdKXthLmxhYmVsPWlbMl0sYS5vcHMucHVzaChvKTticmVha31pWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9bz10LmNhbGwoZSxhKX1jYXRjaChzKXtvPVs2LHNdLG49MH1maW5hbGx5e3I9aT0wfWlmKDUmb1swXSl0aHJvdyBvWzFdO3JldHVybnt2YWx1ZTpvWzBdP29bMV06dm9pZCAwLGRvbmU6ITB9fShbbyxzXSl9fX0sbz10aGlzO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYT1yKDEzMykscz1yKDE2NSksdT1yKDc5KTt0LnBlbVRvQnl0ZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIHMuYmFzZTY0RGVjb2RlKGUudHJpbSgpLnNwbGl0KC9cclxufFxuLykuc2xpY2UoMSwtMSkuam9pbigiIikudHJpbSgpKX07dmFyIGM9e3JzYVByaXZhdGVOb25FbmNyeXB0ZWQ6IlJTQSBQUklWQVRFIEtFWSIscnNhUHVibGljOiJQVUJMSUMgS0VZIn07dC5ieXRlc1RvUGVtPWZ1bmN0aW9uKGUsdCl7dmFyIHI9Ii0tLS0tQkVHSU4gIitjW3RdKyItLS0tLVxuIixuPSItLS0tLUVORCAiK2NbdF0rIi0tLS0tXG4iLGk9cy5iYXNlNjRFbmNvZGUoZSk7aS5sZW5ndGglNjQhPT0wJiYoaSs9IiAiLnJlcGVhdCg2NC1pLmxlbmd0aCU2NCkpO2Zvcih2YXIgbz1yLGE9MDthPGkubGVuZ3RoLzY0O2ErKylvKz1pLnNsaWNlKDY0KmEsNjQqKGErMSkpKyJcbiI7cmV0dXJuIG8rPW59LHQucnNhS2V5UGFpclN5bmM9ZnVuY3Rpb24oZSxyKXt2YXIgbj1hLnBraS5yc2EuZ2VuZXJhdGVLZXlQYWlyKGUscik7cmV0dXJue3JzYVByaXZhdGU6dC5wZW1Ub0J5dGVzKGEucGtpLnByaXZhdGVLZXlUb1BlbShuLnByaXZhdGVLZXkpKSxyc2FQdWJsaWM6dC5wZW1Ub0J5dGVzKGEucGtpLnB1YmxpY0tleVRvUGVtKG4ucHVibGljS2V5KSl9fSx0LnJzYUtleVBhaXI9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gbihvLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzLGZ1bmN0aW9uKG4pe3JldHVyblsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4saSl7YS5wa2kucnNhLmdlbmVyYXRlS2V5UGFpcihlLHIsZnVuY3Rpb24oZSxyKXtlJiZpKGUpLG4oe3JzYVByaXZhdGU6dC5wZW1Ub0J5dGVzKGEucGtpLnByaXZhdGVLZXlUb1BlbShyLnByaXZhdGVLZXkpKSxyc2FQdWJsaWM6dC5wZW1Ub0J5dGVzKGEucGtpLnB1YmxpY0tleVRvUGVtKHIucHVibGljS2V5KSl9KX0pfSldfSl9KX07dmFyIGY9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJEaWdlc3QgIitlKyIgaXMgdW5zdXBwb3J0ZWQiKX19LGw9e01ENTphLm1kLm1kNSxTSEExOmEubWQuc2hhMSxTSEEyMjQ6ZigiU0hBMjI0IiksU0hBMjU2OmEubWQuc2hhMjU2LFNIQTM4NDphLm1kLnNoYTM4NCxTSEE1MTI6YS5tZC5zaGE1MTIsIlNIQTMtMjI0IjpmKCJTSEEzLTIyNCIpLCJTSEEzLTI1NiI6ZigiU0hBMy0yNTYiKSwiU0hBMy0zODQiOmYoIlNIQTMtMzg0IiksIlNIQTMtNTEyIjpmKCJTSEEzLTUxMiIpfTt0LnJzYVNpZ249ZnVuY3Rpb24oZSxyLG4pe3ZvaWQgMD09PW4mJihuPSJTSEEyNTYiKTt2YXIgaT10LmJ5dGVzVG9QZW0oZSwicnNhUHJpdmF0ZU5vbkVuY3J5cHRlZCIpLG89YS5wa2kucHJpdmF0ZUtleUZyb21QZW0oaSkscz1sW25dLmNyZWF0ZSgpO3JldHVybiBzLnVwZGF0ZSh1LmJ5dGVzVG9TdHJpbmcociwicmF3IikpLHUuc3RyaW5nVG9CeXRlcyhvLnNpZ24ocyksInJhdyIpfSx0LnJzYVZlcmlmeT1mdW5jdGlvbihlLHIsbixpKXt2b2lkIDA9PT1pJiYoaT0iU0hBMjU2Iik7dmFyIG89YS5wa2kucHVibGljS2V5RnJvbVBlbSh0LmJ5dGVzVG9QZW0oZSwicnNhUHVibGljIikpLHM9bFtpXS5jcmVhdGUoKTtyZXR1cm4gcy51cGRhdGUodS5ieXRlc1RvU3RyaW5nKHIpLCJyYXciKSxvLnZlcmlmeShzLmRpZ2VzdCgpLmdldEJ5dGVzKCksdS5ieXRlc1RvU3RyaW5nKG4sInJhdyIpKX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXIoNzkpLGk9cigxMzMpLG89cigxNjYpLGE9cigzNDMpLHM9cigxNjUpLHU9cigxMzYpLGM9cigxNTYpO2Z1bmN0aW9uIGYoZSx0KXtmb3Iodm9pZCAwPT09dCYmKHQ9NWUzKTt0LS07KXt2YXIgcj1uLnN0cmluZ1RvQnl0ZXMoZSk7ZT1zLmJhc2UxNkVuY29kZSh1LnNoYTI1NihyKSl9cmV0dXJuIGV9ZnVuY3Rpb24gbChlLHQscil7dm9pZCAwPT09ciYmKHI9NDgpO2Zvcih2YXIgYT1uLmJ5dGVzVG9TdHJpbmcoby5jb25jYXQoZSx0KSwicmF3Iikscz0iIix1PXM7dS5sZW5ndGg8cjspdSs9cz1pLm1kLm1kNS5jcmVhdGUoKS51cGRhdGUocythKS5kaWdlc3QoKS5nZXRCeXRlcygpO3JldHVybiB1fXQuZW5jcnlwdFNlZWQ9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPWYodCxyKSx1PWMucmFuZG9tQnl0ZXMoOCksaD1sKG4uc3RyaW5nVG9CeXRlcyhpLCJyYXciKSx1KSxwPW4uc3RyaW5nVG9CeXRlcyhoLnNsaWNlKDAsMzIpLCJyYXciKSxkPW4uc3RyaW5nVG9CeXRlcyhoLnNsaWNlKDMyKSwicmF3IikseT1hLmFlc0VuY3J5cHQobi5zdHJpbmdUb0J5dGVzKGUpLHAsIkNCQyIsZCk7cmV0dXJuIHMuYmFzZTY0RW5jb2RlKG8uY29uY2F0KG4uc3RyaW5nVG9CeXRlcygiU2FsdGVkX18iKSx1LHkpKX0sdC5kZWNyeXB0U2VlZD1mdW5jdGlvbihlLHQscil7dmFyIGk9Zih0LHIpLG89cy5iYXNlNjREZWNvZGUoZSksdT1vLnNsaWNlKDgsMTYpLGM9bChuLnN0cmluZ1RvQnl0ZXMoaSwicmF3IiksdSksaD1uLnN0cmluZ1RvQnl0ZXMoYy5zbGljZSgwLDMyKSwicmF3IikscD1uLnN0cmluZ1RvQnl0ZXMoYy5zbGljZSgzMiksInJhdyIpO3JldHVybiBuLmJ5dGVzVG9TdHJpbmcoYS5hZXNEZWNyeXB0KG8uc2xpY2UoMTYpLGgsIkNCQyIscCkpfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dC5VdGY4QXJyYXlUb1N0cj1mdW5jdGlvbigpe3ZhciBlPW5ldyBBcnJheSgxMjgpLHQ9U3RyaW5nLmZyb21Db2RlUG9pbnR8fFN0cmluZy5mcm9tQ2hhckNvZGUscj1bXTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGksbyxhPW4ubGVuZ3RoO3IubGVuZ3RoPTA7Zm9yKHZhciBzPTA7czxhOykobz1uW3MrK10pPD0xMjc/aT1vOm88PTIyMz9pPSgzMSZvKTw8Nnw2MyZuW3MrK106bzw9MjM5P2k9KDE1Jm8pPDwxMnwoNjMmbltzKytdKTw8Nnw2MyZuW3MrK106U3RyaW5nLmZyb21Db2RlUG9pbnQ/aT0oNyZvKTw8MTh8KDYzJm5bcysrXSk8PDEyfCg2MyZuW3MrK10pPDw2fDYzJm5bcysrXTooaT02MyxzKz0zKSxyLnB1c2goZVtpXXx8KGVbaV09dChpKSkpO3JldHVybiByLmpvaW4oIiIpfX0oKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIyKSxpPXIoMzYzKSxvPXIoMzY0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24oZSl7ZS5JTlRFR0VSPSJpbnRlZ2VyIixlLkJPT0xFQU49ImJvb2xlYW4iLGUuU1RSSU5HPSJzdHJpbmciLGUuQklOQVJZPSJiaW5hcnkifSh0LkRBVEFfRklFTERfVFlQRXx8KHQuREFUQV9GSUVMRF9UWVBFPXt9KSksdC5hbnlPZj1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgYShlLHQpfTt2YXIgYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyKXtpKHRoaXMsZSksdGhpcy5faXRlbXM9dCx0aGlzLnR5cGU9ImFueU9mIix0aGlzLmRpc2NyaW1pbmF0b3JGaWVsZD0idHlwZSIsdGhpcy5kaXNjcmltaW5hdG9yQnl0ZVBvcz0wLE9iamVjdC5hc3NpZ24odGhpcyxyKX1yZXR1cm4gbyhlLFt7a2V5OiJpdGVtQnlLZXkiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2l0ZW1zLmZpbmQoZnVuY3Rpb24odCl7dmFyIHI9bih0LDMpLGk9clswXTtyWzFdO3JldHVybiByWzJdPT09ZXx8aT09ZX0pO3JldHVybiB0JiZ7c2NoZW1hOnRbMV0sa2V5OnRbMF0sc3RyS2V5OnRbMl19fX0se2tleToiaXRlbUJ5Qnl0ZUtleSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5faXRlbXMuZmluZChmdW5jdGlvbih0KXt2YXIgcj1uKHQsMiksaT1yWzBdO3JbMV07cmV0dXJuIGk9PT1lfSk7cmV0dXJuIHQmJntzY2hlbWE6dFsxXSxrZXk6dFswXSxzdHJLZXk6dFsyXXx8dFswXS50b1N0cmluZygxMCl9fX1dKSxlfSgpfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoODcpLGk9cigxMDMpLG89cigyMik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBhPXIoMjMwKSxzPXIoMjI5KSx1PXIoMTM4KTt0LnBhcnNlckZyb21TY2hlbWE9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZnVuY3Rpb24odSl7dmFyIGM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsZj1jO2lmKCJhcnJheSI9PT1lLnR5cGUpe3ZhciBsPVtdLGg9KGUuZnJvbUJ5dGVzfHxhLlBfU0hPUlQpKHUsYykscD1oLnZhbHVlLGQ9aC5zaGlmdDtyZXR1cm4gZis9ZCxzLnJhbmdlKDAscCkuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgaT10LnBhcnNlckZyb21TY2hlbWEoZS5pdGVtcyxyKSh1LGYpLG89aS52YWx1ZSxhPWkuc2hpZnQ7bC5wdXNoKG8pLGYrPWF9KSx7dmFsdWU6bCxzaGlmdDpmLWN9fWlmKCJvYmplY3QiPT09ZS50eXBlKXtpZihlLm9wdGlvbmFsKXt2YXIgeT0xPT09dVtmXTtpZihmKz0xLCF5KXJldHVybnt2YWx1ZTp2b2lkIDAsc2hpZnQ6MX19aWYoZS53aXRoTGVuZ3RoKXt2YXIgZz1lLndpdGhMZW5ndGguZnJvbUJ5dGVzKHUsZik7Zis9Zy5zaGlmdH12YXIgdj17fTtyZXR1cm4gZS5zY2hlbWEuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgbj1vKGUsMiksaT1uWzBdLGE9blsxXSxzPXQucGFyc2VyRnJvbVNjaGVtYShhLHIpKHUsZiksYz1zLnZhbHVlLGw9cy5zaGlmdDtmKz1sLHZvaWQgMCE9PWMmJihBcnJheS5pc0FycmF5KGkpP09iamVjdC5hc3NpZ24odixjKTp2W2ldPWMpfSkse3ZhbHVlOnYsc2hpZnQ6Zi1jfX1pZigiYW55T2YiPT09ZS50eXBlKXt2YXIgbSxiPShlLmZyb21CeXRlc3x8YS5QX0JZVEUpKHUsZitlLmRpc2NyaW1pbmF0b3JCeXRlUG9zKTtlLnZhbHVlRmllbGQmJjA9PT1lLmRpc2NyaW1pbmF0b3JCeXRlUG9zJiYoZis9Yi5zaGlmdCk7dmFyIF89ZS5pdGVtQnlCeXRlS2V5KGIudmFsdWUpO2lmKG51bGw9PV8pdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gZ2V0IHNjaGVtYSBmb3IgaXRlbSB3aXRoIGJ5dGVjb2RlOiAiLmNvbmNhdChiLnZhbHVlKSk7dmFyIFM9dC5wYXJzZXJGcm9tU2NoZW1hKF8uc2NoZW1hLHIpKHUsZiksRT1TLnZhbHVlLHc9Uy5zaGlmdDtyZXR1cm4gZis9dyx7dmFsdWU6ZS52YWx1ZUZpZWxkPyhtPXt9LGkobSxlLmRpc2NyaW1pbmF0b3JGaWVsZCxfLnN0cktleSksaShtLGUudmFsdWVGaWVsZCxFKSxtKTpFLHNoaWZ0OmYtY319aWYoImRhdGFUeEZpZWxkIj09PWUudHlwZSl7dmFyIFQ9YS5ieXRlVG9TdHJpbmdXaXRoTGVuZ3RoKHUsZik7Zis9VC5zaGlmdDt2YXIgQT1hLlBfQllURSh1LGYpO2YrPUEuc2hpZnQ7dmFyIEM9bihlLml0ZW1zKS5maW5kKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9PT1BLnZhbHVlfSk7aWYoIUMpdGhyb3cgbmV3IEVycm9yKCJQYXJzZXIgRXJyb3I6IFVua25vd24gZGF0YVR4RmllbGQgdHlwZTogIi5jb25jYXQoQS52YWx1ZSkpO3ZhciB4PXQucGFyc2VyRnJvbVNjaGVtYShDWzFdLHIpKHUsZik7cmV0dXJue3ZhbHVlOnt2YWx1ZTp4LnZhbHVlLGtleTpULnZhbHVlLHR5cGU6Q1swXX0sc2hpZnQ6eC5zaGlmdCtULnNoaWZ0K0Euc2hpZnR9fWlmKCJwcmltaXRpdmUiPT09ZS50eXBlfHx2b2lkIDA9PT1lLnR5cGUpe3ZhciBJPWUuZnJvbUJ5dGVzLGs9SSh1LGMpLE89ay52YWx1ZSxOPWsuc2hpZnQ7cmV0dXJuIEk9PT1hLlBfTE9ORyYmciYmKE89cihPKSkse3ZhbHVlOk8sc2hpZnQ6Tn19dGhyb3cgbmV3IEVycm9yKCJQYXJzZXIgRXJyb3I6IFVua25vd24gc2NoZW1hIHR5cGU6ICIuY29uY2F0KGUudHlwZSkpfX0sdC5wYXJzZUhlYWRlcj1mdW5jdGlvbihlKXt2YXIgdD0wLHI9YS5QX0JZVEUoZSx0KTt0Kz1yLnNoaWZ0LDA9PT1yLnZhbHVlJiYodCs9KHI9YS5QX0JZVEUoZSx0KSkuc2hpZnQpO3ZhciBuPWEuUF9CWVRFKGUsdCk7cmV0dXJue3R5cGU6ci52YWx1ZSx2ZXJzaW9uOm4udmFsdWV9fSx0LnBhcnNlVHg9ZnVuY3Rpb24oZSxyKXt2YXIgbj10LnBhcnNlSGVhZGVyKGUpLGk9bi50eXBlLG89bi52ZXJzaW9uLGE9dS5nZXRUcmFuc2FjdGlvblNjaGVtYShpLG8pO3JldHVybiB0LnBhcnNlckZyb21TY2hlbWEoYSxyKShlKS52YWx1ZX0sdC5wYXJzZU9yZGVyPWZ1bmN0aW9uKGUscil7cmV0dXJuIHQucGFyc2VyRnJvbVNjaGVtYSh1Lm9yZGVyU2NoZW1hVjIscikoZSkudmFsdWV9fSxmdW5jdGk="
}
Changelog:
{
"2020.03.29 15:17": "base64:dih0aGlzLCEwKSxlKWUuZXJyb3I9dGhpcy5lcnJvcixlLnN3YXBUaW1lPXRoaXMuc3dhcFRpbWUsZS51c2VyRGF0YT10aGlzLnVzZXJEYXRhLGcoZSwwKTtlbHNle2lmKG51bGwhPT10aGlzLnBhcmVudCl7Zm9yKHZhciB0PXRoaXMucGFyZW50O251bGwhPT10LnBhcmVudDspdC5lcnJvcj10aGlzLmVycm9yLHQuc3dhcFRpbWU9dGhpcy5zd2FwVGltZSx0LnVzZXJEYXRhPXRoaXMudXNlckRhdGEsdD10LnBhcmVudDt2KHQsITApfXRoaXMuZmFpbHVyZUNhbGxiYWNrJiZ0aGlzLmZhaWx1cmVDYWxsYmFjayh0aGlzKX19O3ZhciBnPWZ1bmN0aW9uIGUodCxyKXt2YXIgbj1yPjMwfHwrbmV3IERhdGUtdC5zd2FwVGltZT4yMCxpPWZ1bmN0aW9uKHIpe2lmKHIrKyx0LnN0YXRlPT09YylpZihuJiYodC5zd2FwVGltZT0rbmV3IERhdGUpLHQuc3VidGFza3MubGVuZ3RoPjApe3ZhciBpPXQuc3VidGFza3Muc2hpZnQoKTtpLmVycm9yPXQuZXJyb3IsaS5zd2FwVGltZT10LnN3YXBUaW1lLGkudXNlckRhdGE9dC51c2VyRGF0YSxpLnJ1bihpKSxpLmVycm9yfHxlKGkscil9ZWxzZSB2KHQpLHQuZXJyb3J8fG51bGwhPT10LnBhcmVudCYmKHQucGFyZW50LmVycm9yPXQuZXJyb3IsdC5wYXJlbnQuc3dhcFRpbWU9dC5zd2FwVGltZSx0LnBhcmVudC51c2VyRGF0YT10LnVzZXJEYXRhLGUodC5wYXJlbnQscikpfTtuP3NldFRpbWVvdXQoaSwwKTppKHIpfSx2PWZ1bmN0aW9uKGUsdCl7ZS5zdGF0ZT1oLGRlbGV0ZSBvW2UuaWRdLG51bGw9PT1lLnBhcmVudCYmKGUudHlwZSBpbiBzPzA9PT1zW2UudHlwZV0ubGVuZ3RoP24ubG9nLmVycm9yKGksIlslc11bJXNdIHRhc2sgcXVldWUgZW1wdHkgWyVzXSIsZS5pZCxlLm5hbWUsZS50eXBlKTpzW2UudHlwZV1bMF0hPT1lP24ubG9nLmVycm9yKGksIlslc11bJXNdIHRhc2sgbm90IGZpcnN0IGluIHF1ZXVlIFslc10iLGUuaWQsZS5uYW1lLGUudHlwZSk6KHNbZS50eXBlXS5zaGlmdCgpLDA9PT1zW2UudHlwZV0ubGVuZ3RoP2RlbGV0ZSBzW2UudHlwZV06c1tlLnR5cGVdWzBdLnN0YXJ0KCkpOm4ubG9nLmVycm9yKGksIlslc11bJXNdIHRhc2sgcXVldWUgbWlzc2luZyBbJXNdIixlLmlkLGUubmFtZSxlLnR5cGUpLHR8fChlLmVycm9yJiZlLmZhaWx1cmVDYWxsYmFjaz9lLmZhaWx1cmVDYWxsYmFjayhlKTohZS5lcnJvciYmZS5zdWNjZXNzQ2FsbGJhY2smJmUuc3VjY2Vzc0NhbGxiYWNrKGUpKSl9O2UuZXhwb3J0cz1uLnRhc2s9bi50YXNrfHx7fSxuLnRhc2suc3RhcnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IHkoe3J1bjplLnJ1bixuYW1lOmUubmFtZXx8Ij8ifSk7dC50eXBlPWUudHlwZSx0LnN1Y2Nlc3NDYWxsYmFjaz1lLnN1Y2Nlc3N8fG51bGwsdC5mYWlsdXJlQ2FsbGJhY2s9ZS5mYWlsdXJlfHxudWxsLHQudHlwZSBpbiBzP3NbZS50eXBlXS5wdXNoKHQpOihzW3QudHlwZV09W3RdLGZ1bmN0aW9uKGUpe2UuZXJyb3I9ITEsZS5zdGF0ZT1kW2Uuc3RhdGVdLnN0YXJ0LHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLnN0YXRlPT09YyYmKGUuc3dhcFRpbWU9K25ldyBEYXRlLGUucnVuKGUpLGcoZSwwKSl9LDApfSh0KSl9LG4udGFzay5jYW5jZWw9ZnVuY3Rpb24oZSl7ZSBpbiBzJiYoc1tlXT1bc1tlXVswXV0pfSxuLnRhc2suY3JlYXRlQ29uZGl0aW9uPWZ1bmN0aW9uKCl7dmFyIGU9e3Rhc2tzOnt9LHdhaXQ6ZnVuY3Rpb24odCl7dC5pZCBpbiBlLnRhc2tzfHwodC5ibG9jaygpLGUudGFza3NbdC5pZF09dCl9LG5vdGlmeTpmdW5jdGlvbigpe3ZhciB0PWUudGFza3M7Zm9yKHZhciByIGluIGUudGFza3M9e30sdCl0W3JdLnVuYmxvY2soKX19O3JldHVybiBlfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49IjEyMzQ1Njc4OUFCQ0RFRkdISktMTU5QUVJTVFVWV1hZWmFiY2RlZmdoaWprbW5vcHFyc3R1dnd4eXoiLGk9bi5zcGxpdCgiIikucmVkdWNlKGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZVt0XT1yLGV9LHt9KTt0LmRlZmF1bHQ9e2VuY29kZTpmdW5jdGlvbihlKXtpZighZS5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciB0PVswXSxyPTA7cjxlLmxlbmd0aDtyKyspe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXRbaV08PD04O3RbMF0rPWVbcl07Zm9yKHZhciBvPTAsYT0wO2E8dC5sZW5ndGg7YSsrKXRbYV0rPW8sbz10W2FdLzU4fDAsdFthXSU9NTg7Zm9yKDtvOyl0LnB1c2gobyU1OCksbz1vLzU4fDB9Zm9yKHI9MDswPT09ZVtyXSYmcjxlLmxlbmd0aC0xO3IrKyl0LnB1c2goMCk7cmV0dXJuIHQucmV2ZXJzZSgpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbltlXX0pLmpvaW4oIiIpfSxkZWNvZGU6ZnVuY3Rpb24oZSl7aWYoIWUubGVuZ3RoKXJldHVybiBuZXcgVWludDhBcnJheSgwKTtmb3IodmFyIHQ9WzBdLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtpZighKG4gaW4gaSkpdGhyb3cnVGhlcmUgaXMgbm8gY2hhcmFjdGVyICInK24rJyIgaW4gdGhlIEJhc2U1OCBzZXF1ZW5jZSEnO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRbb10qPTU4O3RbMF0rPWlbbl07dmFyIGE9MDtmb3Iobz0wO288dC5sZW5ndGg7bysrKXRbb10rPWEsYT10W29dPj44LHRbb10mPTI1NTtmb3IoO2E7KXQucHVzaCgyNTUmYSksYT4+PTh9Zm9yKHI9MDsiMSI9PT1lW3JdJiZyPGUubGVuZ3RoLTE7cisrKXQucHVzaCgwKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodC5yZXZlcnNlKCkpfX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3QudXRmOEFycmF5VG9TdHI9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgQXJyYXkoMTI4KSx0PVN0cmluZy5mcm9tQ29kZVBvaW50fHxTdHJpbmcuZnJvbUNoYXJDb2RlLHI9W107cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpLG8sYT1uLmxlbmd0aDtyLmxlbmd0aD0wO2Zvcih2YXIgcz0wO3M8YTspKG89bltzKytdKTw9MTI3P2k9bzpvPD0yMjM/aT0oMzEmbyk8PDZ8NjMmbltzKytdOm88PTIzOT9pPSgxNSZvKTw8MTJ8KDYzJm5bcysrXSk8PDZ8NjMmbltzKytdOlN0cmluZy5mcm9tQ29kZVBvaW50P2k9KDcmbyk8PDE4fCg2MyZuW3MrK10pPDwxMnwoNjMmbltzKytdKTw8Nnw2MyZuW3MrK106KGk9NjMscys9Myksci5wdXNoKGVbaV18fChlW2ldPXQoaSkpKTtyZXR1cm4gci5qb2luKCIiKX19KCksdC5zdHJUb1V0ZjhBcnJheT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10scj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lLmNoYXJDb2RlQXQocik7bjwxMjg/dC5wdXNoKG4pOm48MjA0OD90LnB1c2goMTkyfG4+PjYsMTI4fDYzJm4pOm48NTUyOTZ8fG4+PTU3MzQ0P3QucHVzaCgyMjR8bj4+MTIsMTI4fG4+PjYmNjMsMTI4fDYzJm4pOihyKyssbj02NTUzNisoKDEwMjMmbik8PDEwfDEwMjMmZS5jaGFyQ29kZUF0KHIpKSx0LnB1c2goMjQwfG4+PjE4LDEyOHxuPj4xMiY2MywxMjh8bj4+NiY2MywxMjh8NjMmbikpfXJldHVybiBVaW50OEFycmF5LmZyb20odCl9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMDtmb3IodmFyIG49IjAxMjM0NTY3ODlhYmNkZWYiLnNwbGl0KCIiKSxpPVswLDgsMTYsMjRdLG89WzEsMCwzMjg5OCwwLDMyOTA2LDIxNDc0ODM2NDgsMjE0NzUxNjQxNiwyMTQ3NDgzNjQ4LDMyOTA3LDAsMjE0NzQ4MzY0OSwwLDIxNDc1MTY1NDUsMjE0NzQ4MzY0OCwzMjc3NywyMTQ3NDgzNjQ4LDEzOCwwLDEzNiwwLDIxNDc1MTY0MjUsMCwyMTQ3NDgzNjU4LDAsMjE0NzUxNjU1NSwwLDEzOSwyMTQ3NDgzNjQ4LDMyOTA1LDIxNDc0ODM2NDgsMzI3NzEsMjE0NzQ4MzY0OCwzMjc3MCwyMTQ3NDgzNjQ4LDEyOCwyMTQ3NDgzNjQ4LDMyNzc4LDAsMjE0NzQ4MzY1OCwyMTQ3NDgzNjQ4LDIxNDc1MTY1NDUsMjE0NzQ4MzY0OCwzMjg5NiwyMTQ3NDgzNjQ4LDIxNDc0ODM2NDksMCwyMTQ3NTE2NDI0LDIxNDc0ODM2NDhdLGE9WzIyNCwyNTYsMzg0LDUxMl0scz1bImhleCIsImJ1ZmZlciIsImFycmF5QnVmZmVyIiwiYXJyYXkiXSx1PWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG5ldyBiKGUsdCxlKS51cGRhdGUobilbcl0oKX19LGM9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBmdW5jdGlvbihuLGkpe3JldHVybiBuZXcgYihlLHQsaSkudXBkYXRlKG4pW3JdKCl9fSxmPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dShlLHQsImhleCIpO3IuY3JlYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBiKGUsdCxlKX0sci51cGRhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHIuY3JlYXRlKCkudXBkYXRlKGUpfTtmb3IodmFyIG49MDtuPHMubGVuZ3RoOysrbil7dmFyIGk9c1tuXTtyW2ldPXUoZSx0LGkpfXJldHVybiByfSxsPVt7bmFtZToia2VjY2FrIixwYWRkaW5nOlsxLDI1Niw2NTUzNiwxNjc3NzIxNl0sYml0czphLGNyZWF0ZU1ldGhvZDpmfSx7bmFtZToic2hhMyIscGFkZGluZzpbNiwxNTM2LDM5MzIxNiwxMDA2NjMyOTZdLGJpdHM6YSxjcmVhdGVNZXRob2Q6Zn0se25hbWU6InNoYWtlIixwYWRkaW5nOlszMSw3OTM2LDIwMzE2MTYsNTIwMDkzNjk2XSxiaXRzOlsxMjgsMjU2XSxjcmVhdGVNZXRob2Q6ZnVuY3Rpb24oZSx0KXt2YXIgcj1jKGUsdCwiaGV4Iik7ci5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIG5ldyBiKGUsdCxyKX0sci51cGRhdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gci5jcmVhdGUodCkudXBkYXRlKGUpfTtmb3IodmFyIG49MDtuPHMubGVuZ3RoOysrbil7dmFyIGk9c1tuXTtyW2ldPWMoZSx0LGkpfXJldHVybiByfX1dLGg9e30scD1bXSxkPTA7ZDxsLmxlbmd0aDsrK2QpZm9yKHZhciB5PWxbZF0sZz15LmJpdHMsdj0wO3Y8Zy5sZW5ndGg7Kyt2KXt2YXIgbT15Lm5hbWUrIl8iK2dbdl07cC5wdXNoKG0pLGhbbV09eS5jcmVhdGVNZXRob2QoZ1t2XSx5LnBhZGRpbmcpfWZ1bmN0aW9uIGIoZSx0LHIpe3RoaXMuYmxvY2tzPVtdLHRoaXMucz1bXSx0aGlzLnBhZGRpbmc9dCx0aGlzLm91dHB1dEJpdHM9cix0aGlzLnJlc2V0PSEwLHRoaXMuYmxvY2s9MCx0aGlzLnN0YXJ0PTAsdGhpcy5ibG9ja0NvdW50PTE2MDAtKGU8PDEpPj41LHRoaXMuYnl0ZUNvdW50PXRoaXMuYmxvY2tDb3VudDw8Mix0aGlzLm91dHB1dEJsb2Nrcz1yPj41LHRoaXMuZXh0cmFCeXRlcz0oMzEmcik+PjM7Zm9yKHZhciBuPTA7bjw1MDsrK24pdGhpcy5zW25dPTB9Yi5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PSJzdHJpbmciIT09dHlwZW9mIGU7dCYmZS5jb25zdHJ1Y3Rvcj09PUFycmF5QnVmZmVyJiYoZT1uZXcgVWludDhBcnJheShlKSk7Zm9yKHZhciByLG4sbz1lLmxlbmd0aCxhPXRoaXMuYmxvY2tzLHM9dGhpcy5ieXRlQ291bnQsdT10aGlzLmJsb2NrQ291bnQsYz0wLGY9dGhpcy5zO2M8bzspe2lmKHRoaXMucmVzZXQpZm9yKHRoaXMucmVzZXQ9ITEsYVswXT10aGlzLmJsb2NrLHI9MTtyPHUrMTsrK3IpYVtyXT0wO2lmKHQpZm9yKHI9dGhpcy5zdGFydDtjPG8mJnI8czsrK2MpYVtyPj4yXXw9ZVtjXTw8aVszJnIrK107ZWxzZSBmb3Iocj10aGlzLnN0YXJ0O2M8byYmcjxzOysrYykobj1lLmNoYXJDb2RlQXQoYykpPDEyOD9hW3I+PjJdfD1uPDxpWzMmcisrXTpuPDIwNDg/KGFbcj4+Ml18PSgxOTJ8bj4+Nik8PGlbMyZyKytdLGFbcj4+Ml18PSgxMjh8NjMmbik8PGlbMyZyKytdKTpuPDU1Mjk2fHxuPj01NzM0ND8oYVtyPj4yXXw9KDIyNHxuPj4xMik8PGlbMyZyKytdLGFbcj4+Ml18PSgxMjh8bj4+NiY2Myk8PGlbMyZyKytdLGFbcj4+Ml18PSgxMjh8NjMmbik8PGlbMyZyKytdKToobj02NTUzNisoKDEwMjMmbik8PDEwfDEwMjMmZS5jaGFyQ29kZUF0KCsrYykpLGFbcj4+Ml18PSgyNDB8bj4+MTgpPDxpWzMmcisrXSxhW3I+PjJdfD0oMTI4fG4+PjEyJjYzKTw8aVszJnIrK10sYVtyPj4yXXw9KDEyOHxuPj42JjYzKTw8aVszJnIrK10sYVtyPj4yXXw9KDEyOHw2MyZuKTw8aVszJnIrK10pO2lmKHRoaXMubGFzdEJ5dGVJbmRleD1yLHI+PXMpe2Zvcih0aGlzLnN0YXJ0PXItcyx0aGlzLmJsb2NrPWFbdV0scj0wO3I8dTsrK3IpZltyXV49YVtyXTtfKGYpLHRoaXMucmVzZXQ9ITB9ZWxzZSB0aGlzLnN0YXJ0PXJ9cmV0dXJuIHRoaXN9LGIucHJvdG90eXBlLmZpbmFsaXplPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5ibG9ja3MsdD10aGlzLmxhc3RCeXRlSW5kZXgscj10aGlzLmJsb2NrQ291bnQsbj10aGlzLnM7aWYoZVt0Pj4yXXw9dGhpcy5wYWRkaW5nWzMmdF0sdGhpcy5sYXN0Qnl0ZUluZGV4PT09dGhpcy5ieXRlQ291bnQpZm9yKGVbMF09ZVtyXSx0PTE7dDxyKzE7Kyt0KWVbdF09MDtmb3IoZVtyLTFdfD0yMTQ3NDgzNjQ4LHQ9MDt0PHI7Kyt0KW5bdF1ePWVbdF07XyhuKX0sYi5wcm90b3R5cGUudG9TdHJpbmc9Yi5wcm90b3R5cGUuaGV4PWZ1bmN0aW9uKCl7dGhpcy5maW5hbGl6ZSgpO2Zvcih2YXIgZSx0PXRoaXMuYmxvY2tDb3VudCxyPXRoaXMucyxpPXRoaXMub3V0cHV0QmxvY2tzLG89dGhpcy5leHRyYUJ5dGVzLGE9MCxzPTAsdT0iIjtzPGk7KXtmb3IoYT0wO2E8dCYmczxpOysrYSwrK3MpZT1yW2FdLHUrPW5bZT4+NCYxNV0rblsxNSZlXStuW2U+PjEyJjE1XStuW2U+PjgmMTVdK25bZT4+MjAmMTVdK25bZT4+MTYmMTVdK25bZT4+MjgmMTVdK25bZT4+MjQmMTVdO3MldD09PTAmJihfKHIpLGE9MCl9cmV0dXJuIG8mJihlPXJbYV0sbz4wJiYodSs9bltlPj40JjE1XStuWzE1JmVdKSxvPjEmJih1Kz1uW2U+PjEyJjE1XStuW2U+PjgmMTVdKSxvPjImJih1Kz1uW2U+PjIwJjE1XStuW2U+PjE2JjE1XSkpLHV9LGIucHJvdG90eXBlLmFycmF5QnVmZmVyPWZ1bmN0aW9uKCl7dGhpcy5maW5hbGl6ZSgpO3ZhciBlLHQ9dGhpcy5ibG9ja0NvdW50LHI9dGhpcy5zLG49dGhpcy5vdXRwdXRCbG9ja3MsaT10aGlzLmV4dHJhQnl0ZXMsbz0wLGE9MCxzPXRoaXMub3V0cHV0Qml0cz4+MztlPWk/bmV3IEFycmF5QnVmZmVyKG4rMTw8Mik6bmV3IEFycmF5QnVmZmVyKHMpO2Zvcih2YXIgdT1uZXcgVWludDMyQXJyYXkoZSk7YTxuOyl7Zm9yKG89MDtvPHQmJmE8bjsrK28sKythKXVbYV09cltvXTthJXQ9PT0wJiZfKHIpfXJldHVybiBpJiYodVtvXT1yW29dLGU9ZS5zbGljZSgwLHMpKSxlfSxiLnByb3RvdHlwZS5idWZmZXI9Yi5wcm90b3R5cGUuYXJyYXlCdWZmZXIsYi5wcm90b3R5cGUuZGlnZXN0PWIucHJvdG90eXBlLmFycmF5PWZ1bmN0aW9uKCl7dGhpcy5maW5hbGl6ZSgpO2Zvcih2YXIgZSx0LHI9dGhpcy5ibG9ja0NvdW50LG49dGhpcy5zLGk9dGhpcy5vdXRwdXRCbG9ja3Msbz10aGlzLmV4dHJhQnl0ZXMsYT0wLHM9MCx1PVtdO3M8aTspe2ZvcihhPTA7YTxyJiZzPGk7KythLCsrcyllPXM8PDIsdD1uW2FdLHVbZV09MjU1JnQsdVtlKzFdPXQ+PjgmMjU1LHVbZSsyXT10Pj4xNiYyNTUsdVtlKzNdPXQ+PjI0JjI1NTtzJXI9PT0wJiZfKG4pfXJldHVybiBvJiYoZT1zPDwyLHQ9blthXSxvPjAmJih1W2VdPTI1NSZ0KSxvPjEmJih1W2UrMV09dD4+OCYyNTUpLG8+MiYmKHVbZSsyXT10Pj4xNiYyNTUpKSx1fTt2YXIgXz1mdW5jdGlvbihlKXt2YXIgdCxyLG4saSxhLHMsdSxjLGYsbCxoLHAsZCx5LGcsdixtLGIsXyxTLEUsdyxULEEsQyx4LEksayxPLE4sUCxSLEIsTSxMLEQsaixVLEYsVixxLEsseixHLEgsVyxZLFgsUSwkLFosSixlZSx0ZSxyZSxuZSxpZSxvZSxhZSxzZSx1ZSxjZSxmZTtmb3Iobj0wO248NDg7bis9MilpPWVbMF1eZVsxMF1eZVsyMF1eZVszMF1eZVs0MF0sYT1lWzFdXmVbMTFdXmVbMjFdXmVbMzFdXmVbNDFdLHM9ZVsyXV5lWzEyXV5lWzIyXV5lWzMyXV5lWzQyXSx1PWVbM11eZVsxM11eZVsyM11eZVszM11eZVs0M10sYz1lWzRdXmVbMTRdXmVbMjRdXmVbMzRdXmVbNDRdLGY9ZVs1XV5lWzE1XV5lWzI1XV5lWzM1XV5lWzQ1XSxsPWVbNl1eZVsxNl1eZVsyNl1eZVszNl1eZVs0Nl0saD1lWzddXmVbMTddXmVbMjddXmVbMzddXmVbNDddLHQ9KHA9ZVs4XV5lWzE4XV5lWzI4XV5lWzM4XV5lWzQ4XSleKHM8PDF8dT4+PjMxKSxyPShkPWVbOV1eZVsxOV1eZVsyOV1eZVszOV1eZVs0OV0pXih1PDwxfHM+Pj4zMSksZVswXV49dCxlWzFdXj1yLGVbMTBdXj10LGVbMTFdXj1yLGVbMjBdXj10LGVbMjFdXj1yLGVbMzBdXj10LGVbMzFdXj1yLGVbNDBdXj10LGVbNDFdXj1yLHQ9aV4oYzw8MXxmPj4+MzEpLHI9YV4oZjw8MXxjPj4+MzEpLGVbMl1ePXQsZVszXV49cixlWzEyXV49dCxlWzEzXV49cixlWzIyXV49dCxlWzIzXV49cixlWzMyXV49dCxlWzMzXV49cixlWzQyXV49dCxlWzQzXV49cix0PXNeKGw8PDF8aD4+PjMxKSxyPXVeKGg8PDF8bD4+PjMxKSxlWzRdXj10LGVbNV1ePXIsZVsxNF1ePXQsZVsxNV1ePXIsZVsyNF1ePXQsZVsyNV1ePXIsZVszNF1ePXQsZVszNV1ePXIsZVs0NF1ePXQsZVs0NV1ePXIsdD1jXihwPDwxfGQ+Pj4zMSkscj1mXihkPDwxfHA+Pj4zMSksZVs2XV49dCxlWzddXj1yLGVbMTZdXj10LGVbMTddXj1yLGVbMjZdXj10LGVbMjddXj1yLGVbMzZdXj10LGVbMzddXj1yLGVbNDZdXj10LGVbNDddXj1yLHQ9bF4oaTw8MXxhPj4+MzEpLHI9aF4oYTw8MXxpPj4+MzEpLGVbOF1ePXQsZVs5XV49cixlWzE4XV49dCxlWzE5XV49cixlWzI4XV49dCxlWzI5XV49cixlWzM4XV49dCxlWzM5XV49cixlWzQ4XV49dCxlWzQ5XV49cix5PWVbMF0sZz1lWzFdLFc9ZVsxMV08PDR8ZVsxMF0+Pj4yOCxZPWVbMTBdPDw0fGVbMTFdPj4+Mjgsaz1lWzIwXTw8M3xlWzIxXT4+PjI5LE89ZVsyMV08PDN8ZVsyMF0+Pj4yOSxzZT1lWzMxXTw8OXxlWzMwXT4+PjIzLHVlPWVbMzBdPDw5fGVbMzFdPj4+MjMsSz1lWzQwXTw8MTh8ZVs0MV0+Pj4xNCx6PWVbNDFdPDwxOHxlWzQwXT4+PjE0LE09ZVsyXTw8MXxlWzNdPj4+MzEsTD1lWzNdPDwxfGVbMl0+Pj4zMSx2PWVbMTNdPDwxMnxlWzEyXT4+PjIwLG09ZVsxMl08PDEyfGVbMTNdPj4+MjAsWD1lWzIyXTw8MTB8ZVsyM10+Pj4yMixRPWVbMjNdPDwxMHxlWzIyXT4+PjIyLE49ZVszM108PDEzfGVbMzJdPj4+MTksUD1lWzMyXTw8MTN8ZVszM10+Pj4xOSxjZT1lWzQyXTw8MnxlWzQzXT4+PjMwLGZlPWVbNDNdPDwyfGVbNDJdPj4+MzAsdGU9ZVs1XTw8MzB8ZVs0XT4+PjIscmU9ZVs0XTw8MzB8ZVs1XT4+PjIsRD1lWzE0XTw8NnxlWzE1XT4+PjI2LGo9ZVsxNV08PDZ8ZVsxNF0+Pj4yNixiPWVbMjVdPDwxMXxlWzI0XT4+PjIxLF89ZVsyNF08PDExfGVbMjVdPj4+MjEsJD1lWzM0XTw8MTV8ZVszNV0+Pj4xNyxaPWVbMzVdPDwxNXxlWzM0XT4+PjE3LFI9ZVs0NV08PDI5fGVbNDRdPj4+MyxCPWVbNDRdPDwyOXxlWzQ1XT4+PjMsQT1lWzZdPDwyOHxlWzddPj4+NCxDPWVbN108PDI4fGVbNl0+Pj40LG5lPWVbMTddPDwyM3xlWzE2XT4+PjksaWU9ZVsxNl08PDIzfGVbMTddPj4+OSxVPWVbMjZdPDwyNXxlWzI3XT4+PjcsRj1lWzI3XTw8MjV8ZVsyNl0+Pj43LFM9ZVszNl08PDIxfGVbMzddPj4+MTEsRT1lWzM3XTw8MjF8ZVszNl0+Pj4xMSxKPWVbNDddPDwyNHxlWzQ2XT4+PjgsZWU9ZVs0Nl08PDI0fGVbNDddPj4+OCxHPWVbOF08PDI3fGVbOV0+Pj41LEg9ZVs5XTw8Mjd8ZVs4XT4+PjUseD1lWzE4XTw8MjB8ZVsxOV0+Pj4xMixJPWVbMTldPDwyMHxlWzE4XT4+PjEyLG9lPWVbMjldPDw3fGVbMjhdPj4+MjUsYWU9ZVsyOF08PDd8ZVsyOV0+Pj4yNSxWPWVbMzhdPDw4fGVbMzldPj4+MjQscT1lWzM5XTw8OHxlWzM4XT4+PjI0LHc9ZVs0OF08PDE0fGVbNDldPj4+MTgsVD1lWzQ5XTw8MTR8ZVs0OF0+Pj4xOCxlWzBdPXlefnYmYixlWzFdPWdefm0mXyxlWzEwXT1BXn54JmssZVsxMV09Q15+SSZPLGVbMjBdPU1efkQmVSxlWzIxXT1MXn5qJkYsZVszMF09R15+VyZYLGVbMzFdPUheflkmUSxlWzQwXT10ZV5+bmUmb2UsZVs0MV09cmVefmllJmFlLGVbMl09dl5+YiZTLGVbM109bV5+XyZFLGVbMTJdPXhefmsmTixlWzEzXT1JXn5PJlAsZVsyMl09RF5+VSZWLGVbMjNdPWpefkYmcSxlWzMyXT1XXn5YJiQsZVszM109WV5+USZaLGVbNDJdPW5lXn5vZSZzZSxlWzQzXT1pZV5+YWUmdWUsZVs0XT1iXn5TJncsZVs1XT1fXn5FJlQsZVsxNF09a15+TiZSLGVbMTVdPU9eflAmQixlWzI0XT1VXn5WJkssZVsyNV09Rl5+cSZ6LGVbMzRdPVhefiQmSixlWzM1XT1RXn5aJmVlLGVbNDRdPW9lXn5zZSZjZSxlWzQ1XT1hZV5+dWUmZmUsZVs2XT1TXn53JnksZVs3XT1FXn5UJmcsZVsxNl09Tl5+UiZBLGVbMTddPVBefkImQyxlWzI2XT1WXn5LJk0sZVsyN109cV5+eiZMLGVbMzZdPSRefkomRyxlWzM3XT1aXn5lZSZILGVbNDZdPXNlXn5jZSZ0ZSxlWzQ3XT11ZV5+ZmUmcmUsZVs4XT13Xn55JnYsZVs5XT1UXn5nJm0sZVsxOF09Ul5+QSZ4LGVbMTldPUJefkMmSSxlWzI4XT1LXn5NJkQsZVsyOV09el5+TCZqLGVbMzhdPUpefkcmVyxlWzM5XT1lZV5+SCZZLGVbNDhdPWNlXn50ZSZuZSxlWzQ5XT1mZV5+cmUmaWUsZVswXV49b1tuXSxlWzFdXj1vW24rMV19O3Qua2VjY2FrMjU2PWgua2VjY2FrXzI1Nn0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24oZSl7dC5fX2VzTW9kdWxlPSEwO3ZhciByPSJJbnB1dCBtdXN0IGJlIGFuIHN0cmluZywgQnVmZmVyIG9yIFVpbnQ4QXJyYXkiO2Z1bmN0aW9uIG4oZSx0LHIpe3ZhciBuPWVbdF0rZVtyXSxpPWVbdCsxXStlW3IrMV07bj49NDI5NDk2NzI5NiYmaSsrLGVbdF09bixlW3QrMV09aX1mdW5jdGlvbiBpKGUsdCxyLG4pe3ZhciBpPWVbdF0rcjtyPDAmJihpKz00Mjk0OTY3Mjk2KTt2YXIgbz1lW3QrMV0rbjtpPj00Mjk0OTY3Mjk2JiZvKyssZVt0XT1pLGVbdCsxXT1vfWZ1bmN0aW9uIG8oZSx0KXtyZXR1cm4gZVt0XV5lW3QrMV08PDheZVt0KzJdPDwxNl5lW3QrM108PDI0fWZ1bmN0aW9uIGEoZSx0LHIsbyxhLHMpe3ZhciB1PWZbYV0sbD1mW2ErMV0saD1mW3NdLHA9ZltzKzFdO24oYyxlLHQpLGkoYyxlLHUsbCk7dmFyIGQ9Y1tvXV5jW2VdLHk9Y1tvKzFdXmNbZSsxXTtjW29dPXksY1tvKzFdPWQsbihjLHIsbyksZD1jW3RdXmNbcl0seT1jW3QrMV1eY1tyKzFdLGNbdF09ZD4+PjI0Xnk8PDgsY1t0KzFdPXk+Pj4yNF5kPDw4LG4oYyxlLHQpLGkoYyxlLGgscCksZD1jW29dXmNbZV0seT1jW28rMV1eY1tlKzFdLGNbb109ZD4+PjE2Xnk8PDE2LGNbbysxXT15Pj4+MTZeZDw8MTYsbihjLHIsbyksZD1jW3RdXmNbcl0seT1jW3QrMV1eY1tyKzFdLGNbdF09eT4+PjMxXmQ8PDEsY1t0KzFdPWQ+Pj4zMV55PDwxfXZhciBzPW5ldyBVaW50MzJBcnJheShbNDA4OTIzNTcyMCwxNzc5MDMzNzAzLDIyMjc4NzM1OTUsMzE0NDEzNDI3Nyw0MjcxMTc1NzIzLDEwMTM5MDQyNDIsMTU5NTc1MDEyOSwyNzczNDgwNzYyLDI5MTc1NjUxMzcsMTM1OTg5MzExOSw3MjU1MTExOTksMjYwMDgyMjkyNCw0MjE1Mzg5NTQ3LDUyODczNDYzNSwzMjcwMzMyMDksMTU0MTQ1OTIyNV0pLHU9bmV3IFVpbnQ4QXJyYXkoWzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTQsMTAsNCw4LDksMTUsMTMsNiwxLDEyLDAsMiwxMSw3LDUsMywxMSw4LDEyLDAsNSwyLDE1LDEzLDEwLDE0LDMsNiw3LDEsOSw0LDcsOSwzLDEsMTMsMTIsMTEsMTQsMiw2LDUsMTAsNCwwLDE1LDgsOSwwLDUsNywyLDQsMTAsMTUsMTQsMSwxMSwxMiw2LDgsMywxMywyLDEyLDYsMTAsMCwxMSw4LDMsNCwxMyw3LDUsMTUsMTQsMSw5LDEyLDUsMSwxNSwxNCwxMyw0LDEwLDAsNyw2LDMsOSwyLDgsMTEsMTMsMTEsNywxNCwxMiwxLDMsOSw1LDAsMTUsNCw4LDYsMiwxMCw2LDE1LDE0LDksMTEsMywwLDgsMTIsMiwxMyw3LDEsNCwxMCw1LDEwLDIsOCw0LDcsNiwxLDUsMTUsMTEsOSwxNCwzLDEyLDEzLDAsMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNCwxMCw0LDgsOSwxNSwxMyw2LDEsMTIsMCwyLDExLDcsNSwzXS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIDIqZX0pKSxjPW5ldyBVaW50MzJBcnJheSgzMiksZj1uZXcgVWludDMyQXJyYXkoMzIpO2Z1bmN0aW9uIGwoZSx0KXt2YXIgcj0wO2ZvcihyPTA7cjwxNjtyKyspY1tyXT1lLmhbcl0sY1tyKzE2XT1zW3JdO2ZvcihjWzI0XT1jWzI0XV5lLnQsY1syNV09Y1syNV1eZS50LzQyOTQ5NjcyOTYsdCYmKGNbMjhdPX5jWzI4XSxjWzI5XT1+Y1syOV0pLHI9MDtyPDMyO3IrKylmW3JdPW8oZS5iLDQqcik7Zm9yKHI9MDtyPDEyO3IrKylhKDAsOCwxNiwyNCx1WzE2KnIrMF0sdVsxNipyKzFdKSxhKDIsMTAsMTgsMjYsdVsxNipyKzJdLHVbMTYqciszXSksYSg0LDEyLDIwLDI4LHVbMTYqcis0XSx1WzE2KnIrNV0pLGEoNiwxNCwyMiwzMCx1WzE2KnIrNl0sdVsxNipyKzddKSxhKDAsMTAsMjAsMzAsdVsxNipyKzhdLHVbMTYqcis5XSksYSgyLDEyLDIyLDI0LHVbMTYqcisxMF0sdVsxNipyKzExXSksYSg0LDE0LDE2LDI2LHVbMTYqcisxMl0sdVsxNipyKzEzXSksYSg2LDgsMTgsMjgsdVsxNipyKzE0XSx1WzE2KnIrMTVdKTtmb3Iocj0wO3I8MTY7cisrKWUuaFtyXT1lLmhbcl1eY1tyXV5jW3IrMTZdfWZ1bmN0aW9uIGgoZSx0KXtpZigwPT09ZXx8ZT42NCl0aHJvdyBuZXcgRXJyb3IoIklsbGVnYWwgb3V0cHV0IGxlbmd0aCwgZXhwZWN0ZWQgMCA8IGxlbmd0aCA8PSA2NCIpO2lmKHQmJnQubGVuZ3RoPjY0KXRocm93IG5ldyBFcnJvcigiSWxsZWdhbCBrZXksIGV4cGVjdGVkIFVpbnQ4QXJyYXkgd2l0aCAwIDwgbGVuZ3RoIDw9IDY0Iik7Zm9yKHZhciByPXtiOm5ldyBVaW50OEFycmF5KDEyOCksaDpuZXcgVWludDMyQXJyYXkoMTYpLHQ6MCxjOjAsb3V0bGVuOmV9LG49MDtuPDE2O24rKylyLmhbbl09c1tuXTt2YXIgaT10P3QubGVuZ3RoOjA7cmV0dXJuIHIuaFswXV49MTY4NDI3NTJeaTw8OF5lLHQmJihwKHIsdCksci5jPTEyOCkscn1mdW5jdGlvbiBwKGUsdCl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspMTI4PT09ZS5jJiYoZS50Kz1lLmMsbChlLCExKSxlLmM9MCksZS5iW2UuYysrXT10W3JdfWZ1bmN0aW9uIGQoZSl7Zm9yKGUudCs9ZS5jO2UuYzwxMjg7KWUuYltlLmMrK109MDtsKGUsITApO2Zvcih2YXIgdD1uZXcgVWludDhBcnJheShlLm91dGxlbikscj0wO3I8ZS5vdXRsZW47cisrKXRbcl09ZS5oW3I+PjJdPj44KigzJnIpO3JldHVybiB0fWZ1bmN0aW9uIHkodCxuLGkpe2k9aXx8NjQsdD1mdW5jdGlvbih0KXt2YXIgbjtpZih0IGluc3RhbmNlb2YgVWludDhBcnJheSluPXQ7ZWxzZSBpZih0IGluc3RhbmNlb2YgZSluPW5ldyBVaW50OEFycmF5KHQpO2Vsc2V7aWYoInN0cmluZyIhPT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3Iocik7bj1uZXcgVWludDhBcnJheShlLmZyb20odCwidXRmOCIpKX1yZXR1cm4gbn0odCk7dmFyIG89aChpLG4pO3JldHVybiBwKG8sdCksZChvKX10LmJsYWtlMmJJbml0PWgsdC5ibGFrZTJiVXBkYXRlPXAsdC5ibGFrZTJiRmluYWw9ZCx0LmJsYWtlMmI9eSx0LmJsYWtlMmJIZXg9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuLGk9eShlLHQscik7cmV0dXJuIG49aSxBcnJheS5wcm90b3R5cGUubWFwLmNhbGwobixmdW5jdGlvbihlKXtyZXR1cm4oZTwxNj8iMCI6IiIpK2UudG9TdHJpbmcoMTYpfSkuam9pbigiIil9fSkuY2FsbCh0aGlzLHIoMTgpLkJ1ZmZlcil9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXIoMTY3KSxpPXIoNjcpLG89cigyMjgpLGE9cigyMjcpLHM9cigxNTYpO3Quc2lnbkJ5dGVzPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbi5kZWZhdWx0LnNpZ24oaS5fZnJvbUluKG8uaXNQcml2YXRlS2V5KGUpP2UucHJpdmF0ZUtleTphLnByaXZhdGVLZXkoZSkpLGkuX2Zyb21Jbih0KSxpLl9mcm9tSW4ocnx8cy5yYW5kb21CeXRlcyg2NCkpKX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXIoMTM3KSxpPXIoMzYwKSxvPXIoNjcpLGE9cigxMzYpLHM9cigyMjcpLHU9cigxNjcpO3QudmVyaWZ5QWRkcmVzcz1mdW5jdGlvbihlLHQpe3ZhciByPXQ/dC5jaGFpbklkOnZvaWQgMDt0cnl7dmFyIG49by5fZnJvbUluKGUpO2lmKDEhPW5bMF18fHImJm5bMV0hPWkuQ2hhaWRJZC50b051bWJlcihyKSlyZXR1cm4hMTtmb3IodmFyIHU9bi5zbGljZSgwLDIyKSxjPW4uc2xpY2UoMjIsMjYpLGY9YS5faGFzaENoYWluKHUpLnNsaWNlKDAsNCksbD0wO2w8NDtsKyspaWYoY1tsXSE9ZltsXSlyZXR1cm4hMTtpZih0JiZ0LnB1YmxpY0tleSl7dmFyIGg9cy5hZGRyZXNzKHtwdWJsaWNLZXk6dC5wdWJsaWNLZXl9LHIpO2lmKG4ubGVuZ3RoIT09aC5sZW5ndGgpcmV0dXJuITE7Zm9yKGw9MDtsPGgubGVuZ3RoO2wrKylpZihoW2xdIT09bltsXSlyZXR1cm4hMX19Y2F0Y2gocCl7cmV0dXJuITF9cmV0dXJuITB9LHQudmVyaWZ5U2lnbmF0dXJlPWZ1bmN0aW9uKGUsdCxyKXt0cnl7cmV0dXJuIHUuZGVmYXVsdC52ZXJpZnkoby5fZnJvbUluKGUpLG8uX2Zyb21Jbih0KSxvLl9mcm9tSW4ocikpfWNhdGNoKG4pe3JldHVybiExfX0sdC52ZXJpZnlQdWJsaWNLZXk9ZnVuY3Rpb24oZSl7cmV0dXJuIG8uX2Zyb21JbihlKS5sZW5ndGg9PT1uLlBVQkxJQ19LRVlfTEVOR1RIfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZSx0LHIsbil7cmV0dXJuIG5ldyhyfHwocj1Qcm9taXNlKSkoZnVuY3Rpb24oaSxvKXtmdW5jdGlvbiBhKGUpe3RyeXt1KG4ubmV4dChlKSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gcyhlKXt0cnl7dShuLnRocm93KGUpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiB1KGUpe2UuZG9uZT9pKGUudmFsdWUpOm5ldyByKGZ1bmN0aW9uKHQpe3QoZS52YWx1ZSl9KS50aGVuKGEscyl9dSgobj1uLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSl9LGk9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGksbyxhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmlbMF0pdGhyb3cgaVsxXTtyZXR1cm4gaVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBvPXtuZXh0OnMoMCksdGhyb3c6cygxKSxyZXR1cm46cygyKX0sImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJihvW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG87ZnVuY3Rpb24gcyhvKXtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe2lmKHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7YTspdHJ5e2lmKHI9MSxuJiYoaT0yJm9bMF0/bi5yZXR1cm46b1swXT9uLnRocm93fHwoKGk9bi5yZXR1cm4pJiZpLmNhbGwobiksMCk6bi5uZXh0KSYmIShpPWkuY2FsbChuLG9bMV0pKS5kb25lKXJldHVybiBpO3N3aXRjaChuPTAsaSYmKG89WzImb1swXSxpLnZhbHVlXSksb1swXSl7Y2FzZSAwOmNhc2UgMTppPW87YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOm9bMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxuPW9bMV0sbz1bMF07Y29udGludWU7Y2FzZSA3Om89YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShpPShpPWEudHJ5cykubGVuZ3RoPjAmJmlbaS5sZW5ndGgtMV0pJiYoNj09PW9bMF18fDI9PT1vWzBdKSl7YT0wO2NvbnRpbnVlfWlmKDM9PT1vWzBdJiYoIWl8fG9bMV0+aVswXSYmb1sxXTxpWzNdKSl7YS5sYWJlbD1vWzFdO2JyZWFrfWlmKDY9PT1vWzBdJiZhLmxhYmVsPGlbMV0pe2EubGFiZWw9aVsxXSxpPW87YnJlYWt9aWYoaSYmYS5sYWJlbDxpWzJdKXthLmxhYmVsPWlbMl0sYS5vcHMucHVzaChvKTticmVha31pWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9bz10LmNhbGwoZSxhKX1jYXRjaChzKXtvPVs2LHNdLG49MH1maW5hbGx5e3I9aT0wfWlmKDUmb1swXSl0aHJvdyBvWzFdO3JldHVybnt2YWx1ZTpvWzBdP29bMV06dm9pZCAwLGRvbmU6ITB9fShbbyxzXSl9fX0sbz10aGlzO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYT1yKDEzMykscz1yKDE2NSksdT1yKDc5KTt0LnBlbVRvQnl0ZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIHMuYmFzZTY0RGVjb2RlKGUudHJpbSgpLnNwbGl0KC9cclxufFxuLykuc2xpY2UoMSwtMSkuam9pbigiIikudHJpbSgpKX07dmFyIGM9e3JzYVByaXZhdGVOb25FbmNyeXB0ZWQ6IlJTQSBQUklWQVRFIEtFWSIscnNhUHVibGljOiJQVUJMSUMgS0VZIn07dC5ieXRlc1RvUGVtPWZ1bmN0aW9uKGUsdCl7dmFyIHI9Ii0tLS0tQkVHSU4gIitjW3RdKyItLS0tLVxuIixuPSItLS0tLUVORCAiK2NbdF0rIi0tLS0tXG4iLGk9cy5iYXNlNjRFbmNvZGUoZSk7aS5sZW5ndGglNjQhPT0wJiYoaSs9IiAiLnJlcGVhdCg2NC1pLmxlbmd0aCU2NCkpO2Zvcih2YXIgbz1yLGE9MDthPGkubGVuZ3RoLzY0O2ErKylvKz1pLnNsaWNlKDY0KmEsNjQqKGErMSkpKyJcbiI7cmV0dXJuIG8rPW59LHQucnNhS2V5UGFpclN5bmM9ZnVuY3Rpb24oZSxyKXt2YXIgbj1hLnBraS5yc2EuZ2VuZXJhdGVLZXlQYWlyKGUscik7cmV0dXJue3JzYVByaXZhdGU6dC5wZW1Ub0J5dGVzKGEucGtpLnByaXZhdGVLZXlUb1BlbShuLnByaXZhdGVLZXkpKSxyc2FQdWJsaWM6dC5wZW1Ub0J5dGVzKGEucGtpLnB1YmxpY0tleVRvUGVtKG4ucHVibGljS2V5KSl9fSx0LnJzYUtleVBhaXI9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gbihvLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzLGZ1bmN0aW9uKG4pe3JldHVyblsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4saSl7YS5wa2kucnNhLmdlbmVyYXRlS2V5UGFpcihlLHIsZnVuY3Rpb24oZSxyKXtlJiZpKGUpLG4oe3JzYVByaXZhdGU6dC5wZW1Ub0J5dGVzKGEucGtpLnByaXZhdGVLZXlUb1BlbShyLnByaXZhdGVLZXkpKSxyc2FQdWJsaWM6dC5wZW1Ub0J5dGVzKGEucGtpLnB1YmxpY0tleVRvUGVtKHIucHVibGljS2V5KSl9KX0pfSldfSl9KX07dmFyIGY9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJEaWdlc3QgIitlKyIgaXMgdW5zdXBwb3J0ZWQiKX19LGw9e01ENTphLm1kLm1kNSxTSEExOmEubWQuc2hhMSxTSEEyMjQ6ZigiU0hBMjI0IiksU0hBMjU2OmEubWQuc2hhMjU2LFNIQTM4NDphLm1kLnNoYTM4NCxTSEE1MTI6YS5tZC5zaGE1MTIsIlNIQTMtMjI0IjpmKCJTSEEzLTIyNCIpLCJTSEEzLTI1NiI6ZigiU0hBMy0yNTYiKSwiU0hBMy0zODQiOmYoIlNIQTMtMzg0IiksIlNIQTMtNTEyIjpmKCJTSEEzLTUxMiIpfTt0LnJzYVNpZ249ZnVuY3Rpb24oZSxyLG4pe3ZvaWQgMD09PW4mJihuPSJTSEEyNTYiKTt2YXIgaT10LmJ5dGVzVG9QZW0oZSwicnNhUHJpdmF0ZU5vbkVuY3J5cHRlZCIpLG89YS5wa2kucHJpdmF0ZUtleUZyb21QZW0oaSkscz1sW25dLmNyZWF0ZSgpO3JldHVybiBzLnVwZGF0ZSh1LmJ5dGVzVG9TdHJpbmcociwicmF3IikpLHUuc3RyaW5nVG9CeXRlcyhvLnNpZ24ocyksInJhdyIpfSx0LnJzYVZlcmlmeT1mdW5jdGlvbihlLHIsbixpKXt2b2lkIDA9PT1pJiYoaT0iU0hBMjU2Iik7dmFyIG89YS5wa2kucHVibGljS2V5RnJvbVBlbSh0LmJ5dGVzVG9QZW0oZSwicnNhUHVibGljIikpLHM9bFtpXS5jcmVhdGUoKTtyZXR1cm4gcy51cGRhdGUodS5ieXRlc1RvU3RyaW5nKHIpLCJyYXciKSxvLnZlcmlmeShzLmRpZ2VzdCgpLmdldEJ5dGVzKCksdS5ieXRlc1RvU3RyaW5nKG4sInJhdyIpKX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXIoNzkpLGk9cigxMzMpLG89cigxNjYpLGE9cigzNDMpLHM9cigxNjUpLHU9cigxMzYpLGM9cigxNTYpO2Z1bmN0aW9uIGYoZSx0KXtmb3Iodm9pZCAwPT09dCYmKHQ9NWUzKTt0LS07KXt2YXIgcj1uLnN0cmluZ1RvQnl0ZXMoZSk7ZT1zLmJhc2UxNkVuY29kZSh1LnNoYTI1NihyKSl9cmV0dXJuIGV9ZnVuY3Rpb24gbChlLHQscil7dm9pZCAwPT09ciYmKHI9NDgpO2Zvcih2YXIgYT1uLmJ5dGVzVG9TdHJpbmcoby5jb25jYXQoZSx0KSwicmF3Iikscz0iIix1PXM7dS5sZW5ndGg8cjspdSs9cz1pLm1kLm1kNS5jcmVhdGUoKS51cGRhdGUocythKS5kaWdlc3QoKS5nZXRCeXRlcygpO3JldHVybiB1fXQuZW5jcnlwdFNlZWQ9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPWYodCxyKSx1PWMucmFuZG9tQnl0ZXMoOCksaD1sKG4uc3RyaW5nVG9CeXRlcyhpLCJyYXciKSx1KSxwPW4uc3RyaW5nVG9CeXRlcyhoLnNsaWNlKDAsMzIpLCJyYXciKSxkPW4uc3RyaW5nVG9CeXRlcyhoLnNsaWNlKDMyKSwicmF3IikseT1hLmFlc0VuY3J5cHQobi5zdHJpbmdUb0J5dGVzKGUpLHAsIkNCQyIsZCk7cmV0dXJuIHMuYmFzZTY0RW5jb2RlKG8uY29uY2F0KG4uc3RyaW5nVG9CeXRlcygiU2FsdGVkX18iKSx1LHkpKX0sdC5kZWNyeXB0U2VlZD1mdW5jdGlvbihlLHQscil7dmFyIGk9Zih0LHIpLG89cy5iYXNlNjREZWNvZGUoZSksdT1vLnNsaWNlKDgsMTYpLGM9bChuLnN0cmluZ1RvQnl0ZXMoaSwicmF3IiksdSksaD1uLnN0cmluZ1RvQnl0ZXMoYy5zbGljZSgwLDMyKSwicmF3IikscD1uLnN0cmluZ1RvQnl0ZXMoYy5zbGljZSgzMiksInJhdyIpO3JldHVybiBuLmJ5dGVzVG9TdHJpbmcoYS5hZXNEZWNyeXB0KG8uc2xpY2UoMTYpLGgsIkNCQyIscCkpfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dC5VdGY4QXJyYXlUb1N0cj1mdW5jdGlvbigpe3ZhciBlPW5ldyBBcnJheSgxMjgpLHQ9U3RyaW5nLmZyb21Db2RlUG9pbnR8fFN0cmluZy5mcm9tQ2hhckNvZGUscj1bXTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGksbyxhPW4ubGVuZ3RoO3IubGVuZ3RoPTA7Zm9yKHZhciBzPTA7czxhOykobz1uW3MrK10pPD0xMjc/aT1vOm88PTIyMz9pPSgzMSZvKTw8Nnw2MyZuW3MrK106bzw9MjM5P2k9KDE1Jm8pPDwxMnwoNjMmbltzKytdKTw8Nnw2MyZuW3MrK106U3RyaW5nLmZyb21Db2RlUG9pbnQ/aT0oNyZvKTw8MTh8KDYzJm5bcysrXSk8PDEyfCg2MyZuW3MrK10pPDw2fDYzJm5bcysrXTooaT02MyxzKz0zKSxyLnB1c2goZVtpXXx8KGVbaV09dChpKSkpO3JldHVybiByLmpvaW4oIiIpfX0oKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIyKSxpPXIoMzYzKSxvPXIoMzY0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24oZSl7ZS5JTlRFR0VSPSJpbnRlZ2VyIixlLkJPT0xFQU49ImJvb2xlYW4iLGUuU1RSSU5HPSJzdHJpbmciLGUuQklOQVJZPSJiaW5hcnkifSh0LkRBVEFfRklFTERfVFlQRXx8KHQuREFUQV9GSUVMRF9UWVBFPXt9KSksdC5hbnlPZj1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgYShlLHQpfTt2YXIgYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyKXtpKHRoaXMsZSksdGhpcy5faXRlbXM9dCx0aGlzLnR5cGU9ImFueU9mIix0aGlzLmRpc2NyaW1pbmF0b3JGaWVsZD0idHlwZSIsdGhpcy5kaXNjcmltaW5hdG9yQnl0ZVBvcz0wLE9iamVjdC5hc3NpZ24odGhpcyxyKX1yZXR1cm4gbyhlLFt7a2V5OiJpdGVtQnlLZXkiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2l0ZW1zLmZpbmQoZnVuY3Rpb24odCl7dmFyIHI9bih0LDMpLGk9clswXTtyWzFdO3JldHVybiByWzJdPT09ZXx8aT09ZX0pO3JldHVybiB0JiZ7c2NoZW1hOnRbMV0sa2V5OnRbMF0sc3RyS2V5OnRbMl19fX0se2tleToiaXRlbUJ5Qnl0ZUtleSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5faXRlbXMuZmluZChmdW5jdGlvbih0KXt2YXIgcj1uKHQsMiksaT1yWzBdO3JbMV07cmV0dXJuIGk9PT1lfSk7cmV0dXJuIHQmJntzY2hlbWE6dFsxXSxrZXk6dFswXSxzdHJLZXk6dFsyXXx8dFswXS50b1N0cmluZygxMCl9fX1dKSxlfSgpfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoODcpLGk9cigxMDMpLG89cigyMik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBhPXIoMjMwKSxzPXIoMjI5KSx1PXIoMTM4KTt0LnBhcnNlckZyb21TY2hlbWE9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZnVuY3Rpb24odSl7dmFyIGM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsZj1jO2lmKCJhcnJheSI9PT1lLnR5cGUpe3ZhciBsPVtdLGg9KGUuZnJvbUJ5dGVzfHxhLlBfU0hPUlQpKHUsYykscD1oLnZhbHVlLGQ9aC5zaGlmdDtyZXR1cm4gZis9ZCxzLnJhbmdlKDAscCkuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgaT10LnBhcnNlckZyb21TY2hlbWEoZS5pdGVtcyxyKSh1LGYpLG89aS52YWx1ZSxhPWkuc2hpZnQ7bC5wdXNoKG8pLGYrPWF9KSx7dmFsdWU6bCxzaGlmdDpmLWN9fWlmKCJvYmplY3QiPT09ZS50eXBlKXtpZihlLm9wdGlvbmFsKXt2YXIgeT0xPT09dVtmXTtpZihmKz0xLCF5KXJldHVybnt2YWx1ZTp2b2lkIDAsc2hpZnQ6MX19aWYoZS53aXRoTGVuZ3RoKXt2YXIgZz1lLndpdGhMZW5ndGguZnJvbUJ5dGVzKHUsZik7Zis9Zy5zaGlmdH12YXIgdj17fTtyZXR1cm4gZS5zY2hlbWEuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgbj1vKGUsMiksaT1uWzBdLGE9blsxXSxzPXQucGFyc2VyRnJvbVNjaGVtYShhLHIpKHUsZiksYz1zLnZhbHVlLGw9cy5zaGlmdDtmKz1sLHZvaWQgMCE9PWMmJihBcnJheS5pc0FycmF5KGkpP09iamVjdC5hc3NpZ24odixjKTp2W2ldPWMpfSkse3ZhbHVlOnYsc2hpZnQ6Zi1jfX1pZigiYW55T2YiPT09ZS50eXBlKXt2YXIgbSxiPShlLmZyb21CeXRlc3x8YS5QX0JZVEUpKHUsZitlLmRpc2NyaW1pbmF0b3JCeXRlUG9zKTtlLnZhbHVlRmllbGQmJjA9PT1lLmRpc2NyaW1pbmF0b3JCeXRlUG9zJiYoZis9Yi5zaGlmdCk7dmFyIF89ZS5pdGVtQnlCeXRlS2V5KGIudmFsdWUpO2lmKG51bGw9PV8pdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gZ2V0IHNjaGVtYSBmb3IgaXRlbSB3aXRoIGJ5dGVjb2RlOiAiLmNvbmNhdChiLnZhbHVlKSk7dmFyIFM9dC5wYXJzZXJGcm9tU2NoZW1hKF8uc2NoZW1hLHIpKHUsZiksRT1TLnZhbHVlLHc9Uy5zaGlmdDtyZXR1cm4gZis9dyx7dmFsdWU6ZS52YWx1ZUZpZWxkPyhtPXt9LGkobSxlLmRpc2NyaW1pbmF0b3JGaWVsZCxfLnN0cktleSksaShtLGUudmFsdWVGaWVsZCxFKSxtKTpFLHNoaWZ0OmYtY319aWYoImRhdGFUeEZpZWxkIj09PWUudHlwZSl7dmFyIFQ9YS5ieXRlVG9TdHJpbmdXaXRoTGVuZ3RoKHUsZik7Zis9VC5zaGlmdDt2YXIgQT1hLlBfQllURSh1LGYpO2YrPUEuc2hpZnQ7dmFyIEM9bihlLml0ZW1zKS5maW5kKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9PT1BLnZhbHVlfSk7aWYoIUMpdGhyb3cgbmV3IEVycm9yKCJQYXJzZXIgRXJyb3I6IFVua25vd24gZGF0YVR4RmllbGQgdHlwZTogIi5jb25jYXQoQS52YWx1ZSkpO3ZhciB4PXQucGFyc2VyRnJvbVNjaGVtYShDWzFdLHIpKHUsZik7cmV0dXJue3ZhbHVlOnt2YWx1ZTp4LnZhbHVlLGtleTpULnZhbHVlLHR5cGU6Q1swXX0sc2hpZnQ6eC5zaGlmdCtULnNoaWZ0K0Euc2hpZnR9fWlmKCJwcmltaXRpdmUiPT09ZS50eXBlfHx2b2lkIDA9PT1lLnR5cGUpe3ZhciBJPWUuZnJvbUJ5dGVzLGs9SSh1LGMpLE89ay52YWx1ZSxOPWsuc2hpZnQ7cmV0dXJuIEk9PT1hLlBfTE9ORyYmciYmKE89cihPKSkse3ZhbHVlOk8sc2hpZnQ6Tn19dGhyb3cgbmV3IEVycm9yKCJQYXJzZXIgRXJyb3I6IFVua25vd24gc2NoZW1hIHR5cGU6ICIuY29uY2F0KGUudHlwZSkpfX0sdC5wYXJzZUhlYWRlcj1mdW5jdGlvbihlKXt2YXIgdD0wLHI9YS5QX0JZVEUoZSx0KTt0Kz1yLnNoaWZ0LDA9PT1yLnZhbHVlJiYodCs9KHI9YS5QX0JZVEUoZSx0KSkuc2hpZnQpO3ZhciBuPWEuUF9CWVRFKGUsdCk7cmV0dXJue3R5cGU6ci52YWx1ZSx2ZXJzaW9uOm4udmFsdWV9fSx0LnBhcnNlVHg9ZnVuY3Rpb24oZSxyKXt2YXIgbj10LnBhcnNlSGVhZGVyKGUpLGk9bi50eXBlLG89bi52ZXJzaW9uLGE9dS5nZXRUcmFuc2FjdGlvblNjaGVtYShpLG8pO3JldHVybiB0LnBhcnNlckZyb21TY2hlbWEoYSxyKShlKS52YWx1ZX0sdC5wYXJzZU9yZGVyPWZ1bmN0aW9uKGUscil7cmV0dXJuIHQucGFyc2VyRnJvbVNjaGVtYSh1Lm9yZGVyU2NoZW1hVjIscikoZSkudmFsdWV9fSxmdW5jdGk=",
"2020.03.29 15:16": "base64:dih0aGlzLCEwKSxlKWUuZXJyb3I9dGhpcy5lcnJvcixlLnN3YXBUaW1lPXRoaXMuc3dhcFRpbWUsZS51c2VyRGF0YT10aGlzLnVzZXJEYXRhLGcoZSwwKTtlbHNle2lmKG51bGwhPT10aGlzLnBhcmVudCl7Zm9yKHZhciB0PXRoaXMucGFyZW50O251bGwhPT10LnBhcmVudDspdC5lcnJvcj10aGlzLmVycm9yLHQuc3dhcFRpbWU9dGhpcy5zd2FwVGltZSx0LnVzZXJEYXRhPXRoaXMudXNlckRhdGEsdD10LnBhcmVudDt2KHQsITApfXRoaXMuZmFpbHVyZUNhbGxiYWNrJiZ0aGlzLmZhaWx1cmVDYWxsYmFjayh0aGlzKX19O3ZhciBnPWZ1bmN0aW9uIGUodCxyKXt2YXIgbj1yPjMwfHwrbmV3IERhdGUtdC5zd2FwVGltZT4yMCxpPWZ1bmN0aW9uKHIpe2lmKHIrKyx0LnN0YXRlPT09YylpZihuJiYodC5zd2FwVGltZT0rbmV3IERhdGUpLHQuc3VidGFza3MubGVuZ3RoPjApe3ZhciBpPXQuc3VidGFza3Muc2hpZnQoKTtpLmVycm9yPXQuZXJyb3IsaS5zd2FwVGltZT10LnN3YXBUaW1lLGkudXNlckRhdGE9dC51c2VyRGF0YSxpLnJ1bihpKSxpLmVycm9yfHxlKGkscil9ZWxzZSB2KHQpLHQuZXJyb3J8fG51bGwhPT10LnBhcmVudCYmKHQucGFyZW50LmVycm9yPXQuZXJyb3IsdC5wYXJlbnQuc3dhcFRpbWU9dC5zd2FwVGltZSx0LnBhcmVudC51c2VyRGF0YT10LnVzZXJEYXRhLGUodC5wYXJlbnQscikpfTtuP3NldFRpbWVvdXQoaSwwKTppKHIpfSx2PWZ1bmN0aW9uKGUsdCl7ZS5zdGF0ZT1oLGRlbGV0ZSBvW2UuaWRdLG51bGw9PT1lLnBhcmVudCYmKGUudHlwZSBpbiBzPzA9PT1zW2UudHlwZV0ubGVuZ3RoP24ubG9nLmVycm9yKGksIlslc11bJXNdIHRhc2sgcXVldWUgZW1wdHkgWyVzXSIsZS5pZCxlLm5hbWUsZS50eXBlKTpzW2UudHlwZV1bMF0hPT1lP24ubG9nLmVycm9yKGksIlslc11bJXNdIHRhc2sgbm90IGZpcnN0IGluIHF1ZXVlIFslc10iLGUuaWQsZS5uYW1lLGUudHlwZSk6KHNbZS50eXBlXS5zaGlmdCgpLDA9PT1zW2UudHlwZV0ubGVuZ3RoP2RlbGV0ZSBzW2UudHlwZV06c1tlLnR5cGVdWzBdLnN0YXJ0KCkpOm4ubG9nLmVycm9yKGksIlslc11bJXNdIHRhc2sgcXVldWUgbWlzc2luZyBbJXNdIixlLmlkLGUubmFtZSxlLnR5cGUpLHR8fChlLmVycm9yJiZlLmZhaWx1cmVDYWxsYmFjaz9lLmZhaWx1cmVDYWxsYmFjayhlKTohZS5lcnJvciYmZS5zdWNjZXNzQ2FsbGJhY2smJmUuc3VjY2Vzc0NhbGxiYWNrKGUpKSl9O2UuZXhwb3J0cz1uLnRhc2s9bi50YXNrfHx7fSxuLnRhc2suc3RhcnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IHkoe3J1bjplLnJ1bixuYW1lOmUubmFtZXx8Ij8ifSk7dC50eXBlPWUudHlwZSx0LnN1Y2Nlc3NDYWxsYmFjaz1lLnN1Y2Nlc3N8fG51bGwsdC5mYWlsdXJlQ2FsbGJhY2s9ZS5mYWlsdXJlfHxudWxsLHQudHlwZSBpbiBzP3NbZS50eXBlXS5wdXNoKHQpOihzW3QudHlwZV09W3RdLGZ1bmN0aW9uKGUpe2UuZXJyb3I9ITEsZS5zdGF0ZT1kW2Uuc3RhdGVdLnN0YXJ0LHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLnN0YXRlPT09YyYmKGUuc3dhcFRpbWU9K25ldyBEYXRlLGUucnVuKGUpLGcoZSwwKSl9LDApfSh0KSl9LG4udGFzay5jYW5jZWw9ZnVuY3Rpb24oZSl7ZSBpbiBzJiYoc1tlXT1bc1tlXVswXV0pfSxuLnRhc2suY3JlYXRlQ29uZGl0aW9uPWZ1bmN0aW9uKCl7dmFyIGU9e3Rhc2tzOnt9LHdhaXQ6ZnVuY3Rpb24odCl7dC5pZCBpbiBlLnRhc2tzfHwodC5ibG9jaygpLGUudGFza3NbdC5pZF09dCl9LG5vdGlmeTpmdW5jdGlvbigpe3ZhciB0PWUudGFza3M7Zm9yKHZhciByIGluIGUudGFza3M9e30sdCl0W3JdLnVuYmxvY2soKX19O3JldHVybiBlfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49IjEyMzQ1Njc4OUFCQ0RFRkdISktMTU5QUVJTVFVWV1hZWmFiY2RlZmdoaWprbW5vcHFyc3R1dnd4eXoiLGk9bi5zcGxpdCgiIikucmVkdWNlKGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZVt0XT1yLGV9LHt9KTt0LmRlZmF1bHQ9e2VuY29kZTpmdW5jdGlvbihlKXtpZighZS5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciB0PVswXSxyPTA7cjxlLmxlbmd0aDtyKyspe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXRbaV08PD04O3RbMF0rPWVbcl07Zm9yKHZhciBvPTAsYT0wO2E8dC5sZW5ndGg7YSsrKXRbYV0rPW8sbz10W2FdLzU4fDAsdFthXSU9NTg7Zm9yKDtvOyl0LnB1c2gobyU1OCksbz1vLzU4fDB9Zm9yKHI9MDswPT09ZVtyXSYmcjxlLmxlbmd0aC0xO3IrKyl0LnB1c2goMCk7cmV0dXJuIHQucmV2ZXJzZSgpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbltlXX0pLmpvaW4oIiIpfSxkZWNvZGU6ZnVuY3Rpb24oZSl7aWYoIWUubGVuZ3RoKXJldHVybiBuZXcgVWludDhBcnJheSgwKTtmb3IodmFyIHQ9WzBdLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtpZighKG4gaW4gaSkpdGhyb3cnVGhlcmUgaXMgbm8gY2hhcmFjdGVyICInK24rJyIgaW4gdGhlIEJhc2U1OCBzZXF1ZW5jZSEnO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXRbb10qPTU4O3RbMF0rPWlbbl07dmFyIGE9MDtmb3Iobz0wO288dC5sZW5ndGg7bysrKXRbb10rPWEsYT10W29dPj44LHRbb10mPTI1NTtmb3IoO2E7KXQucHVzaCgyNTUmYSksYT4+PTh9Zm9yKHI9MDsiMSI9PT1lW3JdJiZyPGUubGVuZ3RoLTE7cisrKXQucHVzaCgwKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodC5yZXZlcnNlKCkpfX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3QudXRmOEFycmF5VG9TdHI9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgQXJyYXkoMTI4KSx0PVN0cmluZy5mcm9tQ29kZVBvaW50fHxTdHJpbmcuZnJvbUNoYXJDb2RlLHI9W107cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpLG8sYT1uLmxlbmd0aDtyLmxlbmd0aD0wO2Zvcih2YXIgcz0wO3M8YTspKG89bltzKytdKTw9MTI3P2k9bzpvPD0yMjM/aT0oMzEmbyk8PDZ8NjMmbltzKytdOm88PTIzOT9pPSgxNSZvKTw8MTJ8KDYzJm5bcysrXSk8PDZ8NjMmbltzKytdOlN0cmluZy5mcm9tQ29kZVBvaW50P2k9KDcmbyk8PDE4fCg2MyZuW3MrK10pPDwxMnwoNjMmbltzKytdKTw8Nnw2MyZuW3MrK106KGk9NjMscys9Myksci5wdXNoKGVbaV18fChlW2ldPXQoaSkpKTtyZXR1cm4gci5qb2luKCIiKX19KCksdC5zdHJUb1V0ZjhBcnJheT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10scj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lLmNoYXJDb2RlQXQocik7bjwxMjg/dC5wdXNoKG4pOm48MjA0OD90LnB1c2goMTkyfG4+PjYsMTI4fDYzJm4pOm48NTUyOTZ8fG4+PTU3MzQ0P3QucHVzaCgyMjR8bj4+MTIsMTI4fG4+PjYmNjMsMTI4fDYzJm4pOihyKyssbj02NTUzNisoKDEwMjMmbik8PDEwfDEwMjMmZS5jaGFyQ29kZUF0KHIpKSx0LnB1c2goMjQwfG4+PjE4LDEyOHxuPj4xMiY2MywxMjh8bj4+NiY2MywxMjh8NjMmbikpfXJldHVybiBVaW50OEFycmF5LmZyb20odCl9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3QuX19lc01vZHVsZT0hMDtmb3IodmFyIG49IjAxMjM0NTY3ODlhYmNkZWYiLnNwbGl0KCIiKSxpPVswLDgsMTYsMjRdLG89WzEsMCwzMjg5OCwwLDMyOTA2LDIxNDc0ODM2NDgsMjE0NzUxNjQxNiwyMTQ3NDgzNjQ4LDMyOTA3LDAsMjE0NzQ4MzY0OSwwLDIxNDc1MTY1NDUsMjE0NzQ4MzY0OCwzMjc3NywyMTQ3NDgzNjQ4LDEzOCwwLDEzNiwwLDIxNDc1MTY0MjUsMCwyMTQ3NDgzNjU4LDAsMjE0NzUxNjU1NSwwLDEzOSwyMTQ3NDgzNjQ4LDMyOTA1LDIxNDc0ODM2NDgsMzI3NzEsMjE0NzQ4MzY0OCwzMjc3MCwyMTQ3NDgzNjQ4LDEyOCwyMTQ3NDgzNjQ4LDMyNzc4LDAsMjE0NzQ4MzY1OCwyMTQ3NDgzNjQ4LDIxNDc1MTY1NDUsMjE0NzQ4MzY0OCwzMjg5NiwyMTQ3NDgzNjQ4LDIxNDc0ODM2NDksMCwyMTQ3NTE2NDI0LDIxNDc0ODM2NDhdLGE9WzIyNCwyNTYsMzg0LDUxMl0scz1bImhleCIsImJ1ZmZlciIsImFycmF5QnVmZmVyIiwiYXJyYXkiXSx1PWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG5ldyBiKGUsdCxlKS51cGRhdGUobilbcl0oKX19LGM9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBmdW5jdGlvbihuLGkpe3JldHVybiBuZXcgYihlLHQsaSkudXBkYXRlKG4pW3JdKCl9fSxmPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dShlLHQsImhleCIpO3IuY3JlYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBiKGUsdCxlKX0sci51cGRhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHIuY3JlYXRlKCkudXBkYXRlKGUpfTtmb3IodmFyIG49MDtuPHMubGVuZ3RoOysrbil7dmFyIGk9c1tuXTtyW2ldPXUoZSx0LGkpfXJldHVybiByfSxsPVt7bmFtZToia2VjY2FrIixwYWRkaW5nOlsxLDI1Niw2NTUzNiwxNjc3NzIxNl0sYml0czphLGNyZWF0ZU1ldGhvZDpmfSx7bmFtZToic2hhMyIscGFkZGluZzpbNiwxNTM2LDM5MzIxNiwxMDA2NjMyOTZdLGJpdHM6YSxjcmVhdGVNZXRob2Q6Zn0se25hbWU6InNoYWtlIixwYWRkaW5nOlszMSw3OTM2LDIwMzE2MTYsNTIwMDkzNjk2XSxiaXRzOlsxMjgsMjU2XSxjcmVhdGVNZXRob2Q6ZnVuY3Rpb24oZSx0KXt2YXIgcj1jKGUsdCwiaGV4Iik7ci5jcmVhdGU9ZnVuY3Rpb24ocil7cmV0dXJuIG5ldyBiKGUsdCxyKX0sci51cGRhdGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gci5jcmVhdGUodCkudXBkYXRlKGUpfTtmb3IodmFyIG49MDtuPHMubGVuZ3RoOysrbil7dmFyIGk9c1tuXTtyW2ldPWMoZSx0LGkpfXJldHVybiByfX1dLGg9e30scD1bXSxkPTA7ZDxsLmxlbmd0aDsrK2QpZm9yKHZhciB5PWxbZF0sZz15LmJpdHMsdj0wO3Y8Zy5sZW5ndGg7Kyt2KXt2YXIgbT15Lm5hbWUrIl8iK2dbdl07cC5wdXNoKG0pLGhbbV09eS5jcmVhdGVNZXRob2QoZ1t2XSx5LnBhZGRpbmcpfWZ1bmN0aW9uIGIoZSx0LHIpe3RoaXMuYmxvY2tzPVtdLHRoaXMucz1bXSx0aGlzLnBhZGRpbmc9dCx0aGlzLm91dHB1dEJpdHM9cix0aGlzLnJlc2V0PSEwLHRoaXMuYmxvY2s9MCx0aGlzLnN0YXJ0PTAsdGhpcy5ibG9ja0NvdW50PTE2MDAtKGU8PDEpPj41LHRoaXMuYnl0ZUNvdW50PXRoaXMuYmxvY2tDb3VudDw8Mix0aGlzLm91dHB1dEJsb2Nrcz1yPj41LHRoaXMuZXh0cmFCeXRlcz0oMzEmcik+PjM7Zm9yKHZhciBuPTA7bjw1MDsrK24pdGhpcy5zW25dPTB9Yi5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PSJzdHJpbmciIT09dHlwZW9mIGU7dCYmZS5jb25zdHJ1Y3Rvcj09PUFycmF5QnVmZmVyJiYoZT1uZXcgVWludDhBcnJheShlKSk7Zm9yKHZhciByLG4sbz1lLmxlbmd0aCxhPXRoaXMuYmxvY2tzLHM9dGhpcy5ieXRlQ291bnQsdT10aGlzLmJsb2NrQ291bnQsYz0wLGY9dGhpcy5zO2M8bzspe2lmKHRoaXMucmVzZXQpZm9yKHRoaXMucmVzZXQ9ITEsYVswXT10aGlzLmJsb2NrLHI9MTtyPHUrMTsrK3IpYVtyXT0wO2lmKHQpZm9yKHI9dGhpcy5zdGFydDtjPG8mJnI8czsrK2MpYVtyPj4yXXw9ZVtjXTw8aVszJnIrK107ZWxzZSBmb3Iocj10aGlzLnN0YXJ0O2M8byYmcjxzOysrYykobj1lLmNoYXJDb2RlQXQoYykpPDEyOD9hW3I+PjJdfD1uPDxpWzMmcisrXTpuPDIwNDg/KGFbcj4+Ml18PSgxOTJ8bj4+Nik8PGlbMyZyKytdLGFbcj4+Ml18PSgxMjh8NjMmbik8PGlbMyZyKytdKTpuPDU1Mjk2fHxuPj01NzM0ND8oYVtyPj4yXXw9KDIyNHxuPj4xMik8PGlbMyZyKytdLGFbcj4+Ml18PSgxMjh8bj4+NiY2Myk8PGlbMyZyKytdLGFbcj4+Ml18PSgxMjh8NjMmbik8PGlbMyZyKytdKToobj02NTUzNisoKDEwMjMmbik8PDEwfDEwMjMmZS5jaGFyQ29kZUF0KCsrYykpLGFbcj4+Ml18PSgyNDB8bj4+MTgpPDxpWzMmcisrXSxhW3I+PjJdfD0oMTI4fG4+PjEyJjYzKTw8aVszJnIrK10sYVtyPj4yXXw9KDEyOHxuPj42JjYzKTw8aVszJnIrK10sYVtyPj4yXXw9KDEyOHw2MyZuKTw8aVszJnIrK10pO2lmKHRoaXMubGFzdEJ5dGVJbmRleD1yLHI+PXMpe2Zvcih0aGlzLnN0YXJ0PXItcyx0aGlzLmJsb2NrPWFbdV0scj0wO3I8dTsrK3IpZltyXV49YVtyXTtfKGYpLHRoaXMucmVzZXQ9ITB9ZWxzZSB0aGlzLnN0YXJ0PXJ9cmV0dXJuIHRoaXN9LGIucHJvdG90eXBlLmZpbmFsaXplPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5ibG9ja3MsdD10aGlzLmxhc3RCeXRlSW5kZXgscj10aGlzLmJsb2NrQ291bnQsbj10aGlzLnM7aWYoZVt0Pj4yXXw9dGhpcy5wYWRkaW5nWzMmdF0sdGhpcy5sYXN0Qnl0ZUluZGV4PT09dGhpcy5ieXRlQ291bnQpZm9yKGVbMF09ZVtyXSx0PTE7dDxyKzE7Kyt0KWVbdF09MDtmb3IoZVtyLTFdfD0yMTQ3NDgzNjQ4LHQ9MDt0PHI7Kyt0KW5bdF1ePWVbdF07XyhuKX0sYi5wcm90b3R5cGUudG9TdHJpbmc9Yi5wcm90b3R5cGUuaGV4PWZ1bmN0aW9uKCl7dGhpcy5maW5hbGl6ZSgpO2Zvcih2YXIgZSx0PXRoaXMuYmxvY2tDb3VudCxyPXRoaXMucyxpPXRoaXMub3V0cHV0QmxvY2tzLG89dGhpcy5leHRyYUJ5dGVzLGE9MCxzPTAsdT0iIjtzPGk7KXtmb3IoYT0wO2E8dCYmczxpOysrYSwrK3MpZT1yW2FdLHUrPW5bZT4+NCYxNV0rblsxNSZlXStuW2U+PjEyJjE1XStuW2U+PjgmMTVdK25bZT4+MjAmMTVdK25bZT4+MTYmMTVdK25bZT4+MjgmMTVdK25bZT4+MjQmMTVdO3MldD09PTAmJihfKHIpLGE9MCl9cmV0dXJuIG8mJihlPXJbYV0sbz4wJiYodSs9bltlPj40JjE1XStuWzE1JmVdKSxvPjEmJih1Kz1uW2U+PjEyJjE1XStuW2U+PjgmMTVdKSxvPjImJih1Kz1uW2U+PjIwJjE1XStuW2U+PjE2JjE1XSkpLHV9LGIucHJvdG90eXBlLmFycmF5QnVmZmVyPWZ1bmN0aW9uKCl7dGhpcy5maW5hbGl6ZSgpO3ZhciBlLHQ9dGhpcy5ibG9ja0NvdW50LHI9dGhpcy5zLG49dGhpcy5vdXRwdXRCbG9ja3MsaT10aGlzLmV4dHJhQnl0ZXMsbz0wLGE9MCxzPXRoaXMub3V0cHV0Qml0cz4+MztlPWk/bmV3IEFycmF5QnVmZmVyKG4rMTw8Mik6bmV3IEFycmF5QnVmZmVyKHMpO2Zvcih2YXIgdT1uZXcgVWludDMyQXJyYXkoZSk7YTxuOyl7Zm9yKG89MDtvPHQmJmE8bjsrK28sKythKXVbYV09cltvXTthJXQ9PT0wJiZfKHIpfXJldHVybiBpJiYodVtvXT1yW29dLGU9ZS5zbGljZSgwLHMpKSxlfSxiLnByb3RvdHlwZS5idWZmZXI9Yi5wcm90b3R5cGUuYXJyYXlCdWZmZXIsYi5wcm90b3R5cGUuZGlnZXN0PWIucHJvdG90eXBlLmFycmF5PWZ1bmN0aW9uKCl7dGhpcy5maW5hbGl6ZSgpO2Zvcih2YXIgZSx0LHI9dGhpcy5ibG9ja0NvdW50LG49dGhpcy5zLGk9dGhpcy5vdXRwdXRCbG9ja3Msbz10aGlzLmV4dHJhQnl0ZXMsYT0wLHM9MCx1PVtdO3M8aTspe2ZvcihhPTA7YTxyJiZzPGk7KythLCsrcyllPXM8PDIsdD1uW2FdLHVbZV09MjU1JnQsdVtlKzFdPXQ+PjgmMjU1LHVbZSsyXT10Pj4xNiYyNTUsdVtlKzNdPXQ+PjI0JjI1NTtzJXI9PT0wJiZfKG4pfXJldHVybiBvJiYoZT1zPDwyLHQ9blthXSxvPjAmJih1W2VdPTI1NSZ0KSxvPjEmJih1W2UrMV09dD4+OCYyNTUpLG8+MiYmKHVbZSsyXT10Pj4xNiYyNTUpKSx1fTt2YXIgXz1mdW5jdGlvbihlKXt2YXIgdCxyLG4saSxhLHMsdSxjLGYsbCxoLHAsZCx5LGcsdixtLGIsXyxTLEUsdyxULEEsQyx4LEksayxPLE4sUCxSLEIsTSxMLEQsaixVLEYsVixxLEsseixHLEgsVyxZLFgsUSwkLFosSixlZSx0ZSxyZSxuZSxpZSxvZSxhZSxzZSx1ZSxjZSxmZTtmb3Iobj0wO248NDg7bis9MilpPWVbMF1eZVsxMF1eZVsyMF1eZVszMF1eZVs0MF0sYT1lWzFdXmVbMTFdXmVbMjFdXmVbMzFdXmVbNDFdLHM9ZVsyXV5lWzEyXV5lWzIyXV5lWzMyXV5lWzQyXSx1PWVbM11eZVsxM11eZVsyM11eZVszM11eZVs0M10sYz1lWzRdXmVbMTRdXmVbMjRdXmVbMzRdXmVbNDRdLGY9ZVs1XV5lWzE1XV5lWzI1XV5lWzM1XV5lWzQ1XSxsPWVbNl1eZVsxNl1eZVsyNl1eZVszNl1eZVs0Nl0saD1lWzddXmVbMTddXmVbMjddXmVbMzddXmVbNDddLHQ9KHA9ZVs4XV5lWzE4XV5lWzI4XV5lWzM4XV5lWzQ4XSleKHM8PDF8dT4+PjMxKSxyPShkPWVbOV1eZVsxOV1eZVsyOV1eZVszOV1eZVs0OV0pXih1PDwxfHM+Pj4zMSksZVswXV49dCxlWzFdXj1yLGVbMTBdXj10LGVbMTFdXj1yLGVbMjBdXj10LGVbMjFdXj1yLGVbMzBdXj10LGVbMzFdXj1yLGVbNDBdXj10LGVbNDFdXj1yLHQ9aV4oYzw8MXxmPj4+MzEpLHI9YV4oZjw8MXxjPj4+MzEpLGVbMl1ePXQsZVszXV49cixlWzEyXV49dCxlWzEzXV49cixlWzIyXV49dCxlWzIzXV49cixlWzMyXV49dCxlWzMzXV49cixlWzQyXV49dCxlWzQzXV49cix0PXNeKGw8PDF8aD4+PjMxKSxyPXVeKGg8PDF8bD4+PjMxKSxlWzRdXj10LGVbNV1ePXIsZVsxNF1ePXQsZVsxNV1ePXIsZVsyNF1ePXQsZVsyNV1ePXIsZVszNF1ePXQsZVszNV1ePXIsZVs0NF1ePXQsZVs0NV1ePXIsdD1jXihwPDwxfGQ+Pj4zMSkscj1mXihkPDwxfHA+Pj4zMSksZVs2XV49dCxlWzddXj1yLGVbMTZdXj10LGVbMTddXj1yLGVbMjZdXj10LGVbMjddXj1yLGVbMzZdXj10LGVbMzddXj1yLGVbNDZdXj10LGVbNDddXj1yLHQ9bF4oaTw8MXxhPj4+MzEpLHI9aF4oYTw8MXxpPj4+MzEpLGVbOF1ePXQsZVs5XV49cixlWzE4XV49dCxlWzE5XV49cixlWzI4XV49dCxlWzI5XV49cixlWzM4XV49dCxlWzM5XV49cixlWzQ4XV49dCxlWzQ5XV49cix5PWVbMF0sZz1lWzFdLFc9ZVsxMV08PDR8ZVsxMF0+Pj4yOCxZPWVbMTBdPDw0fGVbMTFdPj4+Mjgsaz1lWzIwXTw8M3xlWzIxXT4+PjI5LE89ZVsyMV08PDN8ZVsyMF0+Pj4yOSxzZT1lWzMxXTw8OXxlWzMwXT4+PjIzLHVlPWVbMzBdPDw5fGVbMzFdPj4+MjMsSz1lWzQwXTw8MTh8ZVs0MV0+Pj4xNCx6PWVbNDFdPDwxOHxlWzQwXT4+PjE0LE09ZVsyXTw8MXxlWzNdPj4+MzEsTD1lWzNdPDwxfGVbMl0+Pj4zMSx2PWVbMTNdPDwxMnxlWzEyXT4+PjIwLG09ZVsxMl08PDEyfGVbMTNdPj4+MjAsWD1lWzIyXTw8MTB8ZVsyM10+Pj4yMixRPWVbMjNdPDwxMHxlWzIyXT4+PjIyLE49ZVszM108PDEzfGVbMzJdPj4+MTksUD1lWzMyXTw8MTN8ZVszM10+Pj4xOSxjZT1lWzQyXTw8MnxlWzQzXT4+PjMwLGZlPWVbNDNdPDwyfGVbNDJdPj4+MzAsdGU9ZVs1XTw8MzB8ZVs0XT4+PjIscmU9ZVs0XTw8MzB8ZVs1XT4+PjIsRD1lWzE0XTw8NnxlWzE1XT4+PjI2LGo9ZVsxNV08PDZ8ZVsxNF0+Pj4yNixiPWVbMjVdPDwxMXxlWzI0XT4+PjIxLF89ZVsyNF08PDExfGVbMjVdPj4+MjEsJD1lWzM0XTw8MTV8ZVszNV0+Pj4xNyxaPWVbMzVdPDwxNXxlWzM0XT4+PjE3LFI9ZVs0NV08PDI5fGVbNDRdPj4+MyxCPWVbNDRdPDwyOXxlWzQ1XT4+PjMsQT1lWzZdPDwyOHxlWzddPj4+NCxDPWVbN108PDI4fGVbNl0+Pj40LG5lPWVbMTddPDwyM3xlWzE2XT4+PjksaWU9ZVsxNl08PDIzfGVbMTddPj4+OSxVPWVbMjZdPDwyNXxlWzI3XT4+PjcsRj1lWzI3XTw8MjV8ZVsyNl0+Pj43LFM9ZVszNl08PDIxfGVbMzddPj4+MTEsRT1lWzM3XTw8MjF8ZVszNl0+Pj4xMSxKPWVbNDddPDwyNHxlWzQ2XT4+PjgsZWU9ZVs0Nl08PDI0fGVbNDddPj4+OCxHPWVbOF08PDI3fGVbOV0+Pj41LEg9ZVs5XTw8Mjd8ZVs4XT4+PjUseD1lWzE4XTw8MjB8ZVsxOV0+Pj4xMixJPWVbMTldPDwyMHxlWzE4XT4+PjEyLG9lPWVbMjldPDw3fGVbMjhdPj4+MjUsYWU9ZVsyOF08PDd8ZVsyOV0+Pj4yNSxWPWVbMzhdPDw4fGVbMzldPj4+MjQscT1lWzM5XTw8OHxlWzM4XT4+PjI0LHc9ZVs0OF08PDE0fGVbNDldPj4+MTgsVD1lWzQ5XTw8MTR8ZVs0OF0+Pj4xOCxlWzBdPXlefnYmYixlWzFdPWdefm0mXyxlWzEwXT1BXn54JmssZVsxMV09Q15+SSZPLGVbMjBdPU1efkQmVSxlWzIxXT1MXn5qJkYsZVszMF09R15+VyZYLGVbMzFdPUheflkmUSxlWzQwXT10ZV5+bmUmb2UsZVs0MV09cmVefmllJmFlLGVbMl09dl5+YiZTLGVbM109bV5+XyZFLGVbMTJdPXhefmsmTixlWzEzXT1JXn5PJlAsZVsyMl09RF5+VSZWLGVbMjNdPWpefkYmcSxlWzMyXT1XXn5YJiQsZVszM109WV5+USZaLGVbNDJdPW5lXn5vZSZzZSxlWzQzXT1pZV5+YWUmdWUsZVs0XT1iXn5TJncsZVs1XT1fXn5FJlQsZVsxNF09a15+TiZSLGVbMTVdPU9eflAmQixlWzI0XT1VXn5WJkssZVsyNV09Rl5+cSZ6LGVbMzRdPVhefiQmSixlWzM1XT1RXn5aJmVlLGVbNDRdPW9lXn5zZSZjZSxlWzQ1XT1hZV5+dWUmZmUsZVs2XT1TXn53JnksZVs3XT1FXn5UJmcsZVsxNl09Tl5+UiZBLGVbMTddPVBefkImQyxlWzI2XT1WXn5LJk0sZVsyN109cV5+eiZMLGVbMzZdPSRefkomRyxlWzM3XT1aXn5lZSZILGVbNDZdPXNlXn5jZSZ0ZSxlWzQ3XT11ZV5+ZmUmcmUsZVs4XT13Xn55JnYsZVs5XT1UXn5nJm0sZVsxOF09Ul5+QSZ4LGVbMTldPUJefkMmSSxlWzI4XT1LXn5NJkQsZVsyOV09el5+TCZqLGVbMzhdPUpefkcmVyxlWzM5XT1lZV5+SCZZLGVbNDhdPWNlXn50ZSZuZSxlWzQ5XT1mZV5+cmUmaWUsZVswXV49b1tuXSxlWzFdXj1vW24rMV19O3Qua2VjY2FrMjU2PWgua2VjY2FrXzI1Nn0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24oZSl7dC5fX2VzTW9kdWxlPSEwO3ZhciByPSJJbnB1dCBtdXN0IGJlIGFuIHN0cmluZywgQnVmZmVyIG9yIFVpbnQ4QXJyYXkiO2Z1bmN0aW9uIG4oZSx0LHIpe3ZhciBuPWVbdF0rZVtyXSxpPWVbdCsxXStlW3IrMV07bj49NDI5NDk2NzI5NiYmaSsrLGVbdF09bixlW3QrMV09aX1mdW5jdGlvbiBpKGUsdCxyLG4pe3ZhciBpPWVbdF0rcjtyPDAmJihpKz00Mjk0OTY3Mjk2KTt2YXIgbz1lW3QrMV0rbjtpPj00Mjk0OTY3Mjk2JiZvKyssZVt0XT1pLGVbdCsxXT1vfWZ1bmN0aW9uIG8oZSx0KXtyZXR1cm4gZVt0XV5lW3QrMV08PDheZVt0KzJdPDwxNl5lW3QrM108PDI0fWZ1bmN0aW9uIGEoZSx0LHIsbyxhLHMpe3ZhciB1PWZbYV0sbD1mW2ErMV0saD1mW3NdLHA9ZltzKzFdO24oYyxlLHQpLGkoYyxlLHUsbCk7dmFyIGQ9Y1tvXV5jW2VdLHk9Y1tvKzFdXmNbZSsxXTtjW29dPXksY1tvKzFdPWQsbihjLHIsbyksZD1jW3RdXmNbcl0seT1jW3QrMV1eY1tyKzFdLGNbdF09ZD4+PjI0Xnk8PDgsY1t0KzFdPXk+Pj4yNF5kPDw4LG4oYyxlLHQpLGkoYyxlLGgscCksZD1jW29dXmNbZV0seT1jW28rMV1eY1tlKzFdLGNbb109ZD4+PjE2Xnk8PDE2LGNbbysxXT15Pj4+MTZeZDw8MTYsbihjLHIsbyksZD1jW3RdXmNbcl0seT1jW3QrMV1eY1tyKzFdLGNbdF09eT4+PjMxXmQ8PDEsY1t0KzFdPWQ+Pj4zMV55PDwxfXZhciBzPW5ldyBVaW50MzJBcnJheShbNDA4OTIzNTcyMCwxNzc5MDMzNzAzLDIyMjc4NzM1OTUsMzE0NDEzNDI3Nyw0MjcxMTc1NzIzLDEwMTM5MDQyNDIsMTU5NTc1MDEyOSwyNzczNDgwNzYyLDI5MTc1NjUxMzcsMTM1OTg5MzExOSw3MjU1MTExOTksMjYwMDgyMjkyNCw0MjE1Mzg5NTQ3LDUyODczNDYzNSwzMjcwMzMyMDksMTU0MTQ1OTIyNV0pLHU9bmV3IFVpbnQ4QXJyYXkoWzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsMTQsMTAsNCw4LDksMTUsMTMsNiwxLDEyLDAsMiwxMSw3LDUsMywxMSw4LDEyLDAsNSwyLDE1LDEzLDEwLDE0LDMsNiw3LDEsOSw0LDcsOSwzLDEsMTMsMTIsMTEsMTQsMiw2LDUsMTAsNCwwLDE1LDgsOSwwLDUsNywyLDQsMTAsMTUsMTQsMSwxMSwxMiw2LDgsMywxMywyLDEyLDYsMTAsMCwxMSw4LDMsNCwxMyw3LDUsMTUsMTQsMSw5LDEyLDUsMSwxNSwxNCwxMyw0LDEwLDAsNyw2LDMsOSwyLDgsMTEsMTMsMTEsNywxNCwxMiwxLDMsOSw1LDAsMTUsNCw4LDYsMiwxMCw2LDE1LDE0LDksMTEsMywwLDgsMTIsMiwxMyw3LDEsNCwxMCw1LDEwLDIsOCw0LDcsNiwxLDUsMTUsMTEsOSwxNCwzLDEyLDEzLDAsMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNCwxMCw0LDgsOSwxNSwxMyw2LDEsMTIsMCwyLDExLDcsNSwzXS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIDIqZX0pKSxjPW5ldyBVaW50MzJBcnJheSgzMiksZj1uZXcgVWludDMyQXJyYXkoMzIpO2Z1bmN0aW9uIGwoZSx0KXt2YXIgcj0wO2ZvcihyPTA7cjwxNjtyKyspY1tyXT1lLmhbcl0sY1tyKzE2XT1zW3JdO2ZvcihjWzI0XT1jWzI0XV5lLnQsY1syNV09Y1syNV1eZS50LzQyOTQ5NjcyOTYsdCYmKGNbMjhdPX5jWzI4XSxjWzI5XT1+Y1syOV0pLHI9MDtyPDMyO3IrKylmW3JdPW8oZS5iLDQqcik7Zm9yKHI9MDtyPDEyO3IrKylhKDAsOCwxNiwyNCx1WzE2KnIrMF0sdVsxNipyKzFdKSxhKDIsMTAsMTgsMjYsdVsxNipyKzJdLHVbMTYqciszXSksYSg0LDEyLDIwLDI4LHVbMTYqcis0XSx1WzE2KnIrNV0pLGEoNiwxNCwyMiwzMCx1WzE2KnIrNl0sdVsxNipyKzddKSxhKDAsMTAsMjAsMzAsdVsxNipyKzhdLHVbMTYqcis5XSksYSgyLDEyLDIyLDI0LHVbMTYqcisxMF0sdVsxNipyKzExXSksYSg0LDE0LDE2LDI2LHVbMTYqcisxMl0sdVsxNipyKzEzXSksYSg2LDgsMTgsMjgsdVsxNipyKzE0XSx1WzE2KnIrMTVdKTtmb3Iocj0wO3I8MTY7cisrKWUuaFtyXT1lLmhbcl1eY1tyXV5jW3IrMTZdfWZ1bmN0aW9uIGgoZSx0KXtpZigwPT09ZXx8ZT42NCl0aHJvdyBuZXcgRXJyb3IoIklsbGVnYWwgb3V0cHV0IGxlbmd0aCwgZXhwZWN0ZWQgMCA8IGxlbmd0aCA8PSA2NCIpO2lmKHQmJnQubGVuZ3RoPjY0KXRocm93IG5ldyBFcnJvcigiSWxsZWdhbCBrZXksIGV4cGVjdGVkIFVpbnQ4QXJyYXkgd2l0aCAwIDwgbGVuZ3RoIDw9IDY0Iik7Zm9yKHZhciByPXtiOm5ldyBVaW50OEFycmF5KDEyOCksaDpuZXcgVWludDMyQXJyYXkoMTYpLHQ6MCxjOjAsb3V0bGVuOmV9LG49MDtuPDE2O24rKylyLmhbbl09c1tuXTt2YXIgaT10P3QubGVuZ3RoOjA7cmV0dXJuIHIuaFswXV49MTY4NDI3NTJeaTw8OF5lLHQmJihwKHIsdCksci5jPTEyOCkscn1mdW5jdGlvbiBwKGUsdCl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspMTI4PT09ZS5jJiYoZS50Kz1lLmMsbChlLCExKSxlLmM9MCksZS5iW2UuYysrXT10W3JdfWZ1bmN0aW9uIGQoZSl7Zm9yKGUudCs9ZS5jO2UuYzwxMjg7KWUuYltlLmMrK109MDtsKGUsITApO2Zvcih2YXIgdD1uZXcgVWludDhBcnJheShlLm91dGxlbikscj0wO3I8ZS5vdXRsZW47cisrKXRbcl09ZS5oW3I+PjJdPj44KigzJnIpO3JldHVybiB0fWZ1bmN0aW9uIHkodCxuLGkpe2k9aXx8NjQsdD1mdW5jdGlvbih0KXt2YXIgbjtpZih0IGluc3RhbmNlb2YgVWludDhBcnJheSluPXQ7ZWxzZSBpZih0IGluc3RhbmNlb2YgZSluPW5ldyBVaW50OEFycmF5KHQpO2Vsc2V7aWYoInN0cmluZyIhPT10eXBlb2YgdCl0aHJvdyBuZXcgRXJyb3Iocik7bj1uZXcgVWludDhBcnJheShlLmZyb20odCwidXRmOCIpKX1yZXR1cm4gbn0odCk7dmFyIG89aChpLG4pO3JldHVybiBwKG8sdCksZChvKX10LmJsYWtlMmJJbml0PWgsdC5ibGFrZTJiVXBkYXRlPXAsdC5ibGFrZTJiRmluYWw9ZCx0LmJsYWtlMmI9eSx0LmJsYWtlMmJIZXg9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuLGk9eShlLHQscik7cmV0dXJuIG49aSxBcnJheS5wcm90b3R5cGUubWFwLmNhbGwobixmdW5jdGlvbihlKXtyZXR1cm4oZTwxNj8iMCI6IiIpK2UudG9TdHJpbmcoMTYpfSkuam9pbigiIil9fSkuY2FsbCh0aGlzLHIoMTgpLkJ1ZmZlcil9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXIoMTY3KSxpPXIoNjcpLG89cigyMjgpLGE9cigyMjcpLHM9cigxNTYpO3Quc2lnbkJ5dGVzPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbi5kZWZhdWx0LnNpZ24oaS5fZnJvbUluKG8uaXNQcml2YXRlS2V5KGUpP2UucHJpdmF0ZUtleTphLnByaXZhdGVLZXkoZSkpLGkuX2Zyb21Jbih0KSxpLl9mcm9tSW4ocnx8cy5yYW5kb21CeXRlcyg2NCkpKX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXIoMTM3KSxpPXIoMzYwKSxvPXIoNjcpLGE9cigxMzYpLHM9cigyMjcpLHU9cigxNjcpO3QudmVyaWZ5QWRkcmVzcz1mdW5jdGlvbihlLHQpe3ZhciByPXQ/dC5jaGFpbklkOnZvaWQgMDt0cnl7dmFyIG49by5fZnJvbUluKGUpO2lmKDEhPW5bMF18fHImJm5bMV0hPWkuQ2hhaWRJZC50b051bWJlcihyKSlyZXR1cm4hMTtmb3IodmFyIHU9bi5zbGljZSgwLDIyKSxjPW4uc2xpY2UoMjIsMjYpLGY9YS5faGFzaENoYWluKHUpLnNsaWNlKDAsNCksbD0wO2w8NDtsKyspaWYoY1tsXSE9ZltsXSlyZXR1cm4hMTtpZih0JiZ0LnB1YmxpY0tleSl7dmFyIGg9cy5hZGRyZXNzKHtwdWJsaWNLZXk6dC5wdWJsaWNLZXl9LHIpO2lmKG4ubGVuZ3RoIT09aC5sZW5ndGgpcmV0dXJuITE7Zm9yKGw9MDtsPGgubGVuZ3RoO2wrKylpZihoW2xdIT09bltsXSlyZXR1cm4hMX19Y2F0Y2gocCl7cmV0dXJuITF9cmV0dXJuITB9LHQudmVyaWZ5U2lnbmF0dXJlPWZ1bmN0aW9uKGUsdCxyKXt0cnl7cmV0dXJuIHUuZGVmYXVsdC52ZXJpZnkoby5fZnJvbUluKGUpLG8uX2Zyb21Jbih0KSxvLl9mcm9tSW4ocikpfWNhdGNoKG4pe3JldHVybiExfX0sdC52ZXJpZnlQdWJsaWNLZXk9ZnVuY3Rpb24oZSl7cmV0dXJuIG8uX2Zyb21JbihlKS5sZW5ndGg9PT1uLlBVQkxJQ19LRVlfTEVOR1RIfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZSx0LHIsbil7cmV0dXJuIG5ldyhyfHwocj1Qcm9taXNlKSkoZnVuY3Rpb24oaSxvKXtmdW5jdGlvbiBhKGUpe3RyeXt1KG4ubmV4dChlKSl9Y2F0Y2godCl7byh0KX19ZnVuY3Rpb24gcyhlKXt0cnl7dShuLnRocm93KGUpKX1jYXRjaCh0KXtvKHQpfX1mdW5jdGlvbiB1KGUpe2UuZG9uZT9pKGUudmFsdWUpOm5ldyByKGZ1bmN0aW9uKHQpe3QoZS52YWx1ZSl9KS50aGVuKGEscyl9dSgobj1uLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSl9LGk9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGksbyxhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmlbMF0pdGhyb3cgaVsxXTtyZXR1cm4gaVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBvPXtuZXh0OnMoMCksdGhyb3c6cygxKSxyZXR1cm46cygyKX0sImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJihvW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG87ZnVuY3Rpb24gcyhvKXtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKG8pe2lmKHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7YTspdHJ5e2lmKHI9MSxuJiYoaT0yJm9bMF0/bi5yZXR1cm46b1swXT9uLnRocm93fHwoKGk9bi5yZXR1cm4pJiZpLmNhbGwobiksMCk6bi5uZXh0KSYmIShpPWkuY2FsbChuLG9bMV0pKS5kb25lKXJldHVybiBpO3N3aXRjaChuPTAsaSYmKG89WzImb1swXSxpLnZhbHVlXSksb1swXSl7Y2FzZSAwOmNhc2UgMTppPW87YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOm9bMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxuPW9bMV0sbz1bMF07Y29udGludWU7Y2FzZSA3Om89YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShpPShpPWEudHJ5cykubGVuZ3RoPjAmJmlbaS5sZW5ndGgtMV0pJiYoNj09PW9bMF18fDI9PT1vWzBdKSl7YT0wO2NvbnRpbnVlfWlmKDM9PT1vWzBdJiYoIWl8fG9bMV0+aVswXSYmb1sxXTxpWzNdKSl7YS5sYWJlbD1vWzFdO2JyZWFrfWlmKDY9PT1vWzBdJiZhLmxhYmVsPGlbMV0pe2EubGFiZWw9aVsxXSxpPW87YnJlYWt9aWYoaSYmYS5sYWJlbDxpWzJdKXthLmxhYmVsPWlbMl0sYS5vcHMucHVzaChvKTticmVha31pWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9bz10LmNhbGwoZSxhKX1jYXRjaChzKXtvPVs2LHNdLG49MH1maW5hbGx5e3I9aT0wfWlmKDUmb1swXSl0aHJvdyBvWzFdO3JldHVybnt2YWx1ZTpvWzBdP29bMV06dm9pZCAwLGRvbmU6ITB9fShbbyxzXSl9fX0sbz10aGlzO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgYT1yKDEzMykscz1yKDE2NSksdT1yKDc5KTt0LnBlbVRvQnl0ZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIHMuYmFzZTY0RGVjb2RlKGUudHJpbSgpLnNwbGl0KC9cclxufFxuLykuc2xpY2UoMSwtMSkuam9pbigiIikudHJpbSgpKX07dmFyIGM9e3JzYVByaXZhdGVOb25FbmNyeXB0ZWQ6IlJTQSBQUklWQVRFIEtFWSIscnNhUHVibGljOiJQVUJMSUMgS0VZIn07dC5ieXRlc1RvUGVtPWZ1bmN0aW9uKGUsdCl7dmFyIHI9Ii0tLS0tQkVHSU4gIitjW3RdKyItLS0tLVxuIixuPSItLS0tLUVORCAiK2NbdF0rIi0tLS0tXG4iLGk9cy5iYXNlNjRFbmNvZGUoZSk7aS5sZW5ndGglNjQhPT0wJiYoaSs9IiAiLnJlcGVhdCg2NC1pLmxlbmd0aCU2NCkpO2Zvcih2YXIgbz1yLGE9MDthPGkubGVuZ3RoLzY0O2ErKylvKz1pLnNsaWNlKDY0KmEsNjQqKGErMSkpKyJcbiI7cmV0dXJuIG8rPW59LHQucnNhS2V5UGFpclN5bmM9ZnVuY3Rpb24oZSxyKXt2YXIgbj1hLnBraS5yc2EuZ2VuZXJhdGVLZXlQYWlyKGUscik7cmV0dXJue3JzYVByaXZhdGU6dC5wZW1Ub0J5dGVzKGEucGtpLnByaXZhdGVLZXlUb1BlbShuLnByaXZhdGVLZXkpKSxyc2FQdWJsaWM6dC5wZW1Ub0J5dGVzKGEucGtpLnB1YmxpY0tleVRvUGVtKG4ucHVibGljS2V5KSl9fSx0LnJzYUtleVBhaXI9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gbihvLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gaSh0aGlzLGZ1bmN0aW9uKG4pe3JldHVyblsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4saSl7YS5wa2kucnNhLmdlbmVyYXRlS2V5UGFpcihlLHIsZnVuY3Rpb24oZSxyKXtlJiZpKGUpLG4oe3JzYVByaXZhdGU6dC5wZW1Ub0J5dGVzKGEucGtpLnByaXZhdGVLZXlUb1BlbShyLnByaXZhdGVLZXkpKSxyc2FQdWJsaWM6dC5wZW1Ub0J5dGVzKGEucGtpLnB1YmxpY0tleVRvUGVtKHIucHVibGljS2V5KSl9KX0pfSldfSl9KX07dmFyIGY9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJEaWdlc3QgIitlKyIgaXMgdW5zdXBwb3J0ZWQiKX19LGw9e01ENTphLm1kLm1kNSxTSEExOmEubWQuc2hhMSxTSEEyMjQ6ZigiU0hBMjI0IiksU0hBMjU2OmEubWQuc2hhMjU2LFNIQTM4NDphLm1kLnNoYTM4NCxTSEE1MTI6YS5tZC5zaGE1MTIsIlNIQTMtMjI0IjpmKCJTSEEzLTIyNCIpLCJTSEEzLTI1NiI6ZigiU0hBMy0yNTYiKSwiU0hBMy0zODQiOmYoIlNIQTMtMzg0IiksIlNIQTMtNTEyIjpmKCJTSEEzLTUxMiIpfTt0LnJzYVNpZ249ZnVuY3Rpb24oZSxyLG4pe3ZvaWQgMD09PW4mJihuPSJTSEEyNTYiKTt2YXIgaT10LmJ5dGVzVG9QZW0oZSwicnNhUHJpdmF0ZU5vbkVuY3J5cHRlZCIpLG89YS5wa2kucHJpdmF0ZUtleUZyb21QZW0oaSkscz1sW25dLmNyZWF0ZSgpO3JldHVybiBzLnVwZGF0ZSh1LmJ5dGVzVG9TdHJpbmcociwicmF3IikpLHUuc3RyaW5nVG9CeXRlcyhvLnNpZ24ocyksInJhdyIpfSx0LnJzYVZlcmlmeT1mdW5jdGlvbihlLHIsbixpKXt2b2lkIDA9PT1pJiYoaT0iU0hBMjU2Iik7dmFyIG89YS5wa2kucHVibGljS2V5RnJvbVBlbSh0LmJ5dGVzVG9QZW0oZSwicnNhUHVibGljIikpLHM9bFtpXS5jcmVhdGUoKTtyZXR1cm4gcy51cGRhdGUodS5ieXRlc1RvU3RyaW5nKHIpLCJyYXciKSxvLnZlcmlmeShzLmRpZ2VzdCgpLmdldEJ5dGVzKCksdS5ieXRlc1RvU3RyaW5nKG4sInJhdyIpKX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXIoNzkpLGk9cigxMzMpLG89cigxNjYpLGE9cigzNDMpLHM9cigxNjUpLHU9cigxMzYpLGM9cigxNTYpO2Z1bmN0aW9uIGYoZSx0KXtmb3Iodm9pZCAwPT09dCYmKHQ9NWUzKTt0LS07KXt2YXIgcj1uLnN0cmluZ1RvQnl0ZXMoZSk7ZT1zLmJhc2UxNkVuY29kZSh1LnNoYTI1NihyKSl9cmV0dXJuIGV9ZnVuY3Rpb24gbChlLHQscil7dm9pZCAwPT09ciYmKHI9NDgpO2Zvcih2YXIgYT1uLmJ5dGVzVG9TdHJpbmcoby5jb25jYXQoZSx0KSwicmF3Iikscz0iIix1PXM7dS5sZW5ndGg8cjspdSs9cz1pLm1kLm1kNS5jcmVhdGUoKS51cGRhdGUocythKS5kaWdlc3QoKS5nZXRCeXRlcygpO3JldHVybiB1fXQuZW5jcnlwdFNlZWQ9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPWYodCxyKSx1PWMucmFuZG9tQnl0ZXMoOCksaD1sKG4uc3RyaW5nVG9CeXRlcyhpLCJyYXciKSx1KSxwPW4uc3RyaW5nVG9CeXRlcyhoLnNsaWNlKDAsMzIpLCJyYXciKSxkPW4uc3RyaW5nVG9CeXRlcyhoLnNsaWNlKDMyKSwicmF3IikseT1hLmFlc0VuY3J5cHQobi5zdHJpbmdUb0J5dGVzKGUpLHAsIkNCQyIsZCk7cmV0dXJuIHMuYmFzZTY0RW5jb2RlKG8uY29uY2F0KG4uc3RyaW5nVG9CeXRlcygiU2FsdGVkX18iKSx1LHkpKX0sdC5kZWNyeXB0U2VlZD1mdW5jdGlvbihlLHQscil7dmFyIGk9Zih0LHIpLG89cy5iYXNlNjREZWNvZGUoZSksdT1vLnNsaWNlKDgsMTYpLGM9bChuLnN0cmluZ1RvQnl0ZXMoaSwicmF3IiksdSksaD1uLnN0cmluZ1RvQnl0ZXMoYy5zbGljZSgwLDMyKSwicmF3IikscD1uLnN0cmluZ1RvQnl0ZXMoYy5zbGljZSgzMiksInJhdyIpO3JldHVybiBuLmJ5dGVzVG9TdHJpbmcoYS5hZXNEZWNyeXB0KG8uc2xpY2UoMTYpLGgsIkNCQyIscCkpfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dC5VdGY4QXJyYXlUb1N0cj1mdW5jdGlvbigpe3ZhciBlPW5ldyBBcnJheSgxMjgpLHQ9U3RyaW5nLmZyb21Db2RlUG9pbnR8fFN0cmluZy5mcm9tQ2hhckNvZGUscj1bXTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGksbyxhPW4ubGVuZ3RoO3IubGVuZ3RoPTA7Zm9yKHZhciBzPTA7czxhOykobz1uW3MrK10pPD0xMjc/aT1vOm88PTIyMz9pPSgzMSZvKTw8Nnw2MyZuW3MrK106bzw9MjM5P2k9KDE1Jm8pPDwxMnwoNjMmbltzKytdKTw8Nnw2MyZuW3MrK106U3RyaW5nLmZyb21Db2RlUG9pbnQ/aT0oNyZvKTw8MTh8KDYzJm5bcysrXSk8PDEyfCg2MyZuW3MrK10pPDw2fDYzJm5bcysrXTooaT02MyxzKz0zKSxyLnB1c2goZVtpXXx8KGVbaV09dChpKSkpO3JldHVybiByLmpvaW4oIiIpfX0oKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIyKSxpPXIoMzYzKSxvPXIoMzY0KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZnVuY3Rpb24oZSl7ZS5JTlRFR0VSPSJpbnRlZ2VyIixlLkJPT0xFQU49ImJvb2xlYW4iLGUuU1RSSU5HPSJzdHJpbmciLGUuQklOQVJZPSJiaW5hcnkifSh0LkRBVEFfRklFTERfVFlQRXx8KHQuREFUQV9GSUVMRF9UWVBFPXt9KSksdC5hbnlPZj1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgYShlLHQpfTt2YXIgYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxyKXtpKHRoaXMsZSksdGhpcy5faXRlbXM9dCx0aGlzLnR5cGU9ImFueU9mIix0aGlzLmRpc2NyaW1pbmF0b3JGaWVsZD0idHlwZSIsdGhpcy5kaXNjcmltaW5hdG9yQnl0ZVBvcz0wLE9iamVjdC5hc3NpZ24odGhpcyxyKX1yZXR1cm4gbyhlLFt7a2V5OiJpdGVtQnlLZXkiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2l0ZW1zLmZpbmQoZnVuY3Rpb24odCl7dmFyIHI9bih0LDMpLGk9clswXTtyWzFdO3JldHVybiByWzJdPT09ZXx8aT09ZX0pO3JldHVybiB0JiZ7c2NoZW1hOnRbMV0sa2V5OnRbMF0sc3RyS2V5OnRbMl19fX0se2tleToiaXRlbUJ5Qnl0ZUtleSIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5faXRlbXMuZmluZChmdW5jdGlvbih0KXt2YXIgcj1uKHQsMiksaT1yWzBdO3JbMV07cmV0dXJuIGk9PT1lfSk7cmV0dXJuIHQmJntzY2hlbWE6dFsxXSxrZXk6dFswXSxzdHJLZXk6dFsyXXx8dFswXS50b1N0cmluZygxMCl9fX1dKSxlfSgpfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoODcpLGk9cigxMDMpLG89cigyMik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBhPXIoMjMwKSxzPXIoMjI5KSx1PXIoMTM4KTt0LnBhcnNlckZyb21TY2hlbWE9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZnVuY3Rpb24odSl7dmFyIGM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsZj1jO2lmKCJhcnJheSI9PT1lLnR5cGUpe3ZhciBsPVtdLGg9KGUuZnJvbUJ5dGVzfHxhLlBfU0hPUlQpKHUsYykscD1oLnZhbHVlLGQ9aC5zaGlmdDtyZXR1cm4gZis9ZCxzLnJhbmdlKDAscCkuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgaT10LnBhcnNlckZyb21TY2hlbWEoZS5pdGVtcyxyKSh1LGYpLG89aS52YWx1ZSxhPWkuc2hpZnQ7bC5wdXNoKG8pLGYrPWF9KSx7dmFsdWU6bCxzaGlmdDpmLWN9fWlmKCJvYmplY3QiPT09ZS50eXBlKXtpZihlLm9wdGlvbmFsKXt2YXIgeT0xPT09dVtmXTtpZihmKz0xLCF5KXJldHVybnt2YWx1ZTp2b2lkIDAsc2hpZnQ6MX19aWYoZS53aXRoTGVuZ3RoKXt2YXIgZz1lLndpdGhMZW5ndGguZnJvbUJ5dGVzKHUsZik7Zis9Zy5zaGlmdH12YXIgdj17fTtyZXR1cm4gZS5zY2hlbWEuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgbj1vKGUsMiksaT1uWzBdLGE9blsxXSxzPXQucGFyc2VyRnJvbVNjaGVtYShhLHIpKHUsZiksYz1zLnZhbHVlLGw9cy5zaGlmdDtmKz1sLHZvaWQgMCE9PWMmJihBcnJheS5pc0FycmF5KGkpP09iamVjdC5hc3NpZ24odixjKTp2W2ldPWMpfSkse3ZhbHVlOnYsc2hpZnQ6Zi1jfX1pZigiYW55T2YiPT09ZS50eXBlKXt2YXIgbSxiPShlLmZyb21CeXRlc3x8YS5QX0JZVEUpKHUsZitlLmRpc2NyaW1pbmF0b3JCeXRlUG9zKTtlLnZhbHVlRmllbGQmJjA9PT1lLmRpc2NyaW1pbmF0b3JCeXRlUG9zJiYoZis9Yi5zaGlmdCk7dmFyIF89ZS5pdGVtQnlCeXRlS2V5KGIudmFsdWUpO2lmKG51bGw9PV8pdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gZ2V0IHNjaGVtYSBmb3IgaXRlbSB3aXRoIGJ5dGVjb2RlOiAiLmNvbmNhdChiLnZhbHVlKSk7dmFyIFM9dC5wYXJzZXJGcm9tU2NoZW1hKF8uc2NoZW1hLHIpKHUsZiksRT1TLnZhbHVlLHc9Uy5zaGlmdDtyZXR1cm4gZis9dyx7dmFsdWU6ZS52YWx1ZUZpZWxkPyhtPXt9LGkobSxlLmRpc2NyaW1pbmF0b3JGaWVsZCxfLnN0cktleSksaShtLGUudmFsdWVGaWVsZCxFKSxtKTpFLHNoaWZ0OmYtY319aWYoImRhdGFUeEZpZWxkIj09PWUudHlwZSl7dmFyIFQ9YS5ieXRlVG9TdHJpbmdXaXRoTGVuZ3RoKHUsZik7Zis9VC5zaGlmdDt2YXIgQT1hLlBfQllURSh1LGYpO2YrPUEuc2hpZnQ7dmFyIEM9bihlLml0ZW1zKS5maW5kKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9PT1BLnZhbHVlfSk7aWYoIUMpdGhyb3cgbmV3IEVycm9yKCJQYXJzZXIgRXJyb3I6IFVua25vd24gZGF0YVR4RmllbGQgdHlwZTogIi5jb25jYXQoQS52YWx1ZSkpO3ZhciB4PXQucGFyc2VyRnJvbVNjaGVtYShDWzFdLHIpKHUsZik7cmV0dXJue3ZhbHVlOnt2YWx1ZTp4LnZhbHVlLGtleTpULnZhbHVlLHR5cGU6Q1swXX0sc2hpZnQ6eC5zaGlmdCtULnNoaWZ0K0Euc2hpZnR9fWlmKCJwcmltaXRpdmUiPT09ZS50eXBlfHx2b2lkIDA9PT1lLnR5cGUpe3ZhciBJPWUuZnJvbUJ5dGVzLGs9SSh1LGMpLE89ay52YWx1ZSxOPWsuc2hpZnQ7cmV0dXJuIEk9PT1hLlBfTE9ORyYmciYmKE89cihPKSkse3ZhbHVlOk8sc2hpZnQ6Tn19dGhyb3cgbmV3IEVycm9yKCJQYXJzZXIgRXJyb3I6IFVua25vd24gc2NoZW1hIHR5cGU6ICIuY29uY2F0KGUudHlwZSkpfX0sdC5wYXJzZUhlYWRlcj1mdW5jdGlvbihlKXt2YXIgdD0wLHI9YS5QX0JZVEUoZSx0KTt0Kz1yLnNoaWZ0LDA9PT1yLnZhbHVlJiYodCs9KHI9YS5QX0JZVEUoZSx0KSkuc2hpZnQpO3ZhciBuPWEuUF9CWVRFKGUsdCk7cmV0dXJue3R5cGU6ci52YWx1ZSx2ZXJzaW9uOm4udmFsdWV9fSx0LnBhcnNlVHg9ZnVuY3Rpb24oZSxyKXt2YXIgbj10LnBhcnNlSGVhZGVyKGUpLGk9bi50eXBlLG89bi52ZXJzaW9uLGE9dS5nZXRUcmFuc2FjdGlvblNjaGVtYShpLG8pO3JldHVybiB0LnBhcnNlckZyb21TY2hlbWEoYSxyKShlKS52YWx1ZX0sdC5wYXJzZU9yZGVyPWZ1bmN0aW9uKGUscil7cmV0dXJuIHQucGFyc2VyRnJvbVNjaGVtYSh1Lm9yZGVyU2NoZW1hVjIscikoZSkudmFsdWV9fSxmdW5jdGk="
}