mberr · data · 2.7c767379.chunk.js_7
{
    "2.7c767379.chunk.js_7": "base64:Oyk7aWYoZD1kLnNsaWNlKGwsKytwKSl7aWYocC09bCxoJiZxLkRFQlVHJiZwPjE1JiYoZT51fHxlIT09bihlKSkpdGhyb3cgRXJyb3IobytnLnMqZSk7aWYoKGY9Zi1sLTEpPkwpZy5jPWcuZT1udWxsO2Vsc2UgaWYoZjxNKWcuYz1bZy5lPTBdO2Vsc2V7aWYoZy5lPWYsZy5jPVtdLGw9KGYrMSklcyxmPDAmJihsKz1zKSxsPHApe2ZvcihsJiZnLmMucHVzaCgrZC5zbGljZSgwLGwpKSxwLT1zO2w8cDspZy5jLnB1c2goK2Quc2xpY2UobCxsKz1zKSk7bD1zLShkPWQuc2xpY2UobCkpLmxlbmd0aH1lbHNlIGwtPXA7Zm9yKDtsLS07ZCs9IjAiKTtnLmMucHVzaCgrZCl9fWVsc2UgZy5jPVtnLmU9MF19ZnVuY3Rpb24gSyhlLHQscixuKXt2YXIgaSxvLGEscyx1O2lmKG51bGw9PXI/cj1QOnkociwwLDgpLCFlLmMpcmV0dXJuIGUudG9TdHJpbmcoKTtpZihpPWUuY1swXSxhPWUuZSxudWxsPT10KXU9cChlLmMpLHU9MT09bnx8Mj09biYmKGE8PVJ8fGE+PUIpP3YodSxhKTptKHUsYSwiMCIpO2Vsc2UgaWYobz0oZT1IKG5ldyBxKGUpLHQscikpLmUscz0odT1wKGUuYykpLmxlbmd0aCwxPT1ufHwyPT1uJiYodDw9b3x8bzw9Uikpe2Zvcig7czx0O3UrPSIwIixzKyspO3U9dih1LG8pfWVsc2UgaWYodC09YSx1PW0odSxvLCIwIiksbysxPnMpe2lmKC0tdD4wKWZvcih1Kz0iLiI7dC0tO3UrPSIwIik7fWVsc2UgaWYoKHQrPW8tcyk+MClmb3IobysxPT1zJiYodSs9Ii4iKTt0LS07dSs9IjAiKTtyZXR1cm4gZS5zPDAmJmk/Ii0iK3U6dX1mdW5jdGlvbiB6KGUsdCl7Zm9yKHZhciByLG49MSxpPW5ldyBxKGVbMF0pO248ZS5sZW5ndGg7bisrKXtpZighKHI9bmV3IHEoZVtuXSkpLnMpe2k9cjticmVha310LmNhbGwoaSxyKSYmKGk9cil9cmV0dXJuIGl9ZnVuY3Rpb24gRyhlLHQscil7Zm9yKHZhciBuPTEsaT10Lmxlbmd0aDshdFstLWldO3QucG9wKCkpO2ZvcihpPXRbMF07aT49MTA7aS89MTAsbisrKTtyZXR1cm4ocj1uK3Iqcy0xKT5MP2UuYz1lLmU9bnVsbDpyPE0/ZS5jPVtlLmU9MF06KGUuZT1yLGUuYz10KSxlfWZ1bmN0aW9uIEgoZSx0LGksbyl7dmFyIHUsZixsLGgscCxkLHksZz1lLmMsdj1jO2lmKGcpe2U6e2Zvcih1PTEsaD1nWzBdO2g+PTEwO2gvPTEwLHUrKyk7aWYoKGY9dC11KTwwKWYrPXMsbD10LHk9KHA9Z1tkPTBdKS92W3UtbC0xXSUxMHwwO2Vsc2UgaWYoKGQ9cigoZisxKS9zKSk+PWcubGVuZ3RoKXtpZighbylicmVhayBlO2Zvcig7Zy5sZW5ndGg8PWQ7Zy5wdXNoKDApKTtwPXk9MCx1PTEsbD0oZiU9cyktcysxfWVsc2V7Zm9yKHA9aD1nW2RdLHU9MTtoPj0xMDtoLz0xMCx1KyspO3k9KGw9KGYlPXMpLXMrdSk8MD8wOnAvdlt1LWwtMV0lMTB8MH1pZihvPW98fHQ8MHx8bnVsbCE9Z1tkKzFdfHwobDwwP3A6cCV2W3UtbC0xXSksbz1pPDQ/KHl8fG8pJiYoMD09aXx8aT09KGUuczwwPzM6MikpOnk+NXx8NT09eSYmKDQ9PWl8fG98fDY9PWkmJihmPjA/bD4wP3Avdlt1LWxdOjA6Z1tkLTFdKSUxMCYxfHxpPT0oZS5zPDA/ODo3KSksdDwxfHwhZ1swXSlyZXR1cm4gZy5sZW5ndGg9MCxvPyh0LT1lLmUrMSxnWzBdPXZbKHMtdCVzKSVzXSxlLmU9LXR8fDApOmdbMF09ZS5lPTAsZTtpZigwPT1mPyhnLmxlbmd0aD1kLGg9MSxkLS0pOihnLmxlbmd0aD1kKzEsaD12W3MtZl0sZ1tkXT1sPjA/bihwL3ZbdS1sXSV2W2xdKSpoOjApLG8pZm9yKDs7KXtpZigwPT1kKXtmb3IoZj0xLGw9Z1swXTtsPj0xMDtsLz0xMCxmKyspO2ZvcihsPWdbMF0rPWgsaD0xO2w+PTEwO2wvPTEwLGgrKyk7ZiE9aCYmKGUuZSsrLGdbMF09PWEmJihnWzBdPTEpKTticmVha31pZihnW2RdKz1oLGdbZF0hPWEpYnJlYWs7Z1tkLS1dPTAsaD0xfWZvcihmPWcubGVuZ3RoOzA9PT1nWy0tZl07Zy5wb3AoKSk7fWUuZT5MP2UuYz1lLmU9bnVsbDplLmU8TSYmKGUuYz1bZS5lPTBdKX1yZXR1cm4gZX1mdW5jdGlvbiBXKGUpe3ZhciB0LHI9ZS5lO3JldHVybiBudWxsPT09cj9lLnRvU3RyaW5nKCk6KHQ9cChlLmMpLHQ9cjw9Unx8cj49Qj92KHQscik6bSh0LHIsIjAiKSxlLnM8MD8iLSIrdDp0KX1yZXR1cm4gcS5jbG9uZT1lLHEuUk9VTkRfVVA9MCxxLlJPVU5EX0RPV049MSxxLlJPVU5EX0NFSUw9MixxLlJPVU5EX0ZMT09SPTMscS5ST1VORF9IQUxGX1VQPTQscS5ST1VORF9IQUxGX0RPV049NSxxLlJPVU5EX0hBTEZfRVZFTj02LHEuUk9VTkRfSEFMRl9DRUlMPTcscS5ST1VORF9IQUxGX0ZMT09SPTgscS5FVUNMSUQ9OSxxLmNvbmZpZz1xLnNldD1mdW5jdGlvbihlKXt2YXIgdCxyO2lmKG51bGwhPWUpe2lmKCJvYmplY3QiIT10eXBlb2YgZSl0aHJvdyBFcnJvcihpKyJPYmplY3QgZXhwZWN0ZWQ6ICIrZSk7aWYoZS5oYXNPd25Qcm9wZXJ0eSh0PSJERUNJTUFMX1BMQUNFUyIpJiYoeShyPWVbdF0sMCxsLHQpLE49ciksZS5oYXNPd25Qcm9wZXJ0eSh0PSJST1VORElOR19NT0RFIikmJih5KHI9ZVt0XSwwLDgsdCksUD1yKSxlLmhhc093blByb3BlcnR5KHQ9IkVYUE9ORU5USUFMX0FUIikmJigocj1lW3RdKSYmci5wb3A/KHkoclswXSwtbCwwLHQpLHkoclsxXSwwLGwsdCksUj1yWzBdLEI9clsxXSk6KHkociwtbCxsLHQpLFI9LShCPXI8MD8tcjpyKSkpLGUuaGFzT3duUHJvcGVydHkodD0iUkFOR0UiKSlpZigocj1lW3RdKSYmci5wb3ApeShyWzBdLC1sLC0xLHQpLHkoclsxXSwxLGwsdCksTT1yWzBdLEw9clsxXTtlbHNle2lmKHkociwtbCxsLHQpLCFyKXRocm93IEVycm9yKGkrdCsiIGNhbm5vdCBiZSB6ZXJvOiAiK3IpO009LShMPXI8MD8tcjpyKX1pZihlLmhhc093blByb3BlcnR5KHQ9IkNSWVBUTyIpKXtpZigocj1lW3RdKSE9PSEhcil0aHJvdyBFcnJvcihpK3QrIiBub3QgdHJ1ZSBvciBmYWxzZTogIityKTtpZihyKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGNyeXB0b3x8IWNyeXB0b3x8IWNyeXB0by5nZXRSYW5kb21WYWx1ZXMmJiFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgRD0hcixFcnJvcihpKyJjcnlwdG8gdW5hdmFpbGFibGUiKTtEPXJ9ZWxzZSBEPXJ9aWYoZS5oYXNPd25Qcm9wZXJ0eSh0PSJNT0RVTE9fTU9ERSIpJiYoeShyPWVbdF0sMCw5LHQpLGo9ciksZS5oYXNPd25Qcm9wZXJ0eSh0PSJQT1dfUFJFQ0lTSU9OIikmJih5KHI9ZVt0XSwwLGwsdCksVT1yKSxlLmhhc093blByb3BlcnR5KHQ9IkZPUk1BVCIpKXtpZigib2JqZWN0IiE9dHlwZW9mKHI9ZVt0XSkpdGhyb3cgRXJyb3IoaSt0KyIgbm90IGFuIG9iamVjdDogIityKTtGPXJ9aWYoZS5oYXNPd25Qcm9wZXJ0eSh0PSJBTFBIQUJFVCIpKXtpZigic3RyaW5nIiE9dHlwZW9mKHI9ZVt0XSl8fC9eLiR8WystLlxzXXwoLikuKlwxLy50ZXN0KHIpKXRocm93IEVycm9yKGkrdCsiIGludmFsaWQ6ICIrcik7Vj1yfX1yZXR1cm57REVDSU1BTF9QTEFDRVM6TixST1VORElOR19NT0RFOlAsRVhQT05FTlRJQUxfQVQ6W1IsQl0sUkFOR0U6W00sTF0sQ1JZUFRPOkQsTU9EVUxPX01PREU6aixQT1dfUFJFQ0lTSU9OOlUsRk9STUFUOkYsQUxQSEFCRVQ6Vn19LHEuaXNCaWdOdW1iZXI9ZnVuY3Rpb24oZSl7aWYoIWV8fCEwIT09ZS5faXNCaWdOdW1iZXIpcmV0dXJuITE7aWYoIXEuREVCVUcpcmV0dXJuITA7dmFyIHQscixvPWUuYyx1PWUuZSxjPWUucztlOmlmKCJbb2JqZWN0IEFycmF5XSI9PXt9LnRvU3RyaW5nLmNhbGwobykpe2lmKCgxPT09Y3x8LTE9PT1jKSYmdT49LWwmJnU8PWwmJnU9PT1uKHUpKXtpZigwPT09b1swXSl7aWYoMD09PXUmJjE9PT1vLmxlbmd0aClyZXR1cm4hMDticmVhayBlfWlmKCh0PSh1KzEpJXMpPDEmJih0Kz1zKSxTdHJpbmcob1swXSkubGVuZ3RoPT10KXtmb3IodD0wO3Q8by5sZW5ndGg7dCsrKWlmKChyPW9bdF0pPDB8fHI+PWF8fHIhPT1uKHIpKWJyZWFrIGU7aWYoMCE9PXIpcmV0dXJuITB9fX1lbHNlIGlmKG51bGw9PT1vJiZudWxsPT09dSYmKG51bGw9PT1jfHwxPT09Y3x8LTE9PT1jKSlyZXR1cm4hMDt0aHJvdyBFcnJvcihpKyJJbnZhbGlkIEJpZ051bWJlcjogIitlKX0scS5tYXhpbXVtPXEubWF4PWZ1bmN0aW9uKCl7cmV0dXJuIHooYXJndW1lbnRzLGsubHQpfSxxLm1pbmltdW09cS5taW49ZnVuY3Rpb24oKXtyZXR1cm4geihhcmd1bWVudHMsay5ndCl9LHEucmFuZG9tPSh3PTkwMDcxOTkyNTQ3NDA5OTIqTWF0aC5yYW5kb20oKSYyMDk3MTUxP2Z1bmN0aW9uKCl7cmV0dXJuIG4oOTAwNzE5OTI1NDc0MDk5MipNYXRoLnJhbmRvbSgpKX06ZnVuY3Rpb24oKXtyZXR1cm4gODM4ODYwOCooMTA3Mzc0MTgyNCpNYXRoLnJhbmRvbSgpfDApKyg4Mzg4NjA4Kk1hdGgucmFuZG9tKCl8MCl9LGZ1bmN0aW9uKGUpe3ZhciB0LG8sYSx1LGYsaD0wLHA9W10sZD1uZXcgcShPKTtpZihudWxsPT1lP2U9Tjp5KGUsMCxsKSx1PXIoZS9zKSxEKWlmKGNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2Zvcih0PWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KHUqPTIpKTtoPHU7KShmPTEzMTA3Mip0W2hdKyh0W2grMV0+Pj4xMSkpPj05ZTE1PyhvPWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KDIpKSx0W2hdPW9bMF0sdFtoKzFdPW9bMV0pOihwLnB1c2goZiUxZTE0KSxoKz0yKTtoPXUvMn1lbHNle2lmKCFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgRD0hMSxFcnJvcihpKyJjcnlwdG8gdW5hdmFpbGFibGUiKTtmb3IodD1jcnlwdG8ucmFuZG9tQnl0ZXModSo9Nyk7aDx1OykoZj0yODE0NzQ5NzY3MTA2NTYqKDMxJnRbaF0pKzEwOTk1MTE2Mjc3NzYqdFtoKzFdKzQyOTQ5NjcyOTYqdFtoKzJdKzE2Nzc3MjE2KnRbaCszXSsodFtoKzRdPDwxNikrKHRbaCs1XTw8OCkrdFtoKzZdKT49OWUxNT9jcnlwdG8ucmFuZG9tQnl0ZXMoNykuY29weSh0LGgpOihwLnB1c2goZiUxZTE0KSxoKz03KTtoPXUvN31pZighRClmb3IoO2g8dTspKGY9dygpKTw5ZTE1JiYocFtoKytdPWYlMWUxNCk7Zm9yKHU9cFstLWhdLGUlPXMsdSYmZSYmKGY9Y1tzLWVdLHBbaF09bih1L2YpKmYpOzA9PT1wW2hdO3AucG9wKCksaC0tKTtpZihoPDApcD1bYT0wXTtlbHNle2ZvcihhPS0xOzA9PT1wWzBdO3Auc3BsaWNlKDAsMSksYS09cyk7Zm9yKGg9MSxmPXBbMF07Zj49MTA7Zi89MTAsaCsrKTtoPHMmJihhLT1zLWgpfXJldHVybiBkLmU9YSxkLmM9cCxkfSkscS5zdW09ZnVuY3Rpb24oKXtmb3IodmFyIGU9MSx0PWFyZ3VtZW50cyxyPW5ldyBxKHRbMF0pO2U8dC5sZW5ndGg7KXI9ci5wbHVzKHRbZSsrXSk7cmV0dXJuIHJ9LFM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCxyLG4pe2Zvcih2YXIgaSxvLGE9WzBdLHM9MCx1PWUubGVuZ3RoO3M8dTspe2ZvcihvPWEubGVuZ3RoO28tLTthW29dKj10KTtmb3IoYVswXSs9bi5pbmRleE9mKGUuY2hhckF0KHMrKykpLGk9MDtpPGEubGVuZ3RoO2krKylhW2ldPnItMSYmKG51bGw9PWFbaSsxXSYmKGFbaSsxXT0wKSxhW2krMV0rPWFbaV0vcnwwLGFbaV0lPXIpfXJldHVybiBhLnJldmVyc2UoKX1yZXR1cm4gZnVuY3Rpb24odCxyLG4saSxvKXt2YXIgYSxzLHUsYyxmLGwsaCxkLHk9dC5pbmRleE9mKCIuIiksZz1OLHY9UDtmb3IoeT49MCYmKGM9VSxVPTAsdD10LnJlcGxhY2UoIi4iLCIiKSxsPShkPW5ldyBxKHIpKS5wb3codC5sZW5ndGgteSksVT1jLGQuYz1lKG0ocChsLmMpLGwuZSwiMCIpLDEwLG4sIjAxMjM0NTY3ODkiKSxkLmU9ZC5jLmxlbmd0aCksdT1jPShoPWUodCxyLG4sbz8oYT1WLCIwMTIzNDU2Nzg5Iik6KGE9IjAxMjM0NTY3ODkiLFYpKSkubGVuZ3RoOzA9PWhbLS1jXTtoLnBvcCgpKTtpZighaFswXSlyZXR1cm4gYS5jaGFyQXQoMCk7aWYoeTwwPy0tdToobC5jPWgsbC5lPXUsbC5zPWksaD0obD1fKGwsZCxnLHYsbikpLmMsZj1sLnIsdT1sLmUpLHk9aFtzPXUrZysxXSxjPW4vMixmPWZ8fHM8MHx8bnVsbCE9aFtzKzFdLGY9djw0PyhudWxsIT15fHxmKSYmKDA9PXZ8fHY9PShsLnM8MD8zOjIpKTp5PmN8fHk9PWMmJig0PT12fHxmfHw2PT12JiYxJmhbcy0xXXx8dj09KGwuczwwPzg6NykpLHM8MXx8IWhbMF0pdD1mP20oYS5jaGFyQXQoMSksLWcsYS5jaGFyQXQoMCkpOmEuY2hhckF0KDApO2Vsc2V7aWYoaC5sZW5ndGg9cyxmKWZvcigtLW47KytoWy0tc10+bjspaFtzXT0wLHN8fCgrK3UsaD1bMV0uY29uY2F0KGgpKTtmb3IoYz1oLmxlbmd0aDshaFstLWNdOyk7Zm9yKHk9MCx0PSIiO3k8PWM7dCs9YS5jaGFyQXQoaFt5KytdKSk7dD1tKHQsdSxhLmNoYXJBdCgwKSl9cmV0dXJuIHR9fSgpLF89ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCxyKXt2YXIgbixpLG8sYSxzPTAsdT1lLmxlbmd0aCxjPXQlZixsPXQvZnwwO2ZvcihlPWUuc2xpY2UoKTt1LS07KXM9KChpPWMqKG89ZVt1XSVmKSsobj1sKm8rKGE9ZVt1XS9mfDApKmMpJWYqZitzKS9yfDApKyhuL2Z8MCkrbCphLGVbdV09aSVyO3JldHVybiBzJiYoZT1bc10uY29uY2F0KGUpKSxlfWZ1bmN0aW9uIHQoZSx0LHIsbil7dmFyIGksbztpZihyIT1uKW89cj5uPzE6LTE7ZWxzZSBmb3IoaT1vPTA7aTxyO2krKylpZihlW2ldIT10W2ldKXtvPWVbaV0+dFtpXT8xOi0xO2JyZWFrfXJldHVybiBvfWZ1bmN0aW9uIHIoZSx0LHIsbil7Zm9yKHZhciBpPTA7ci0tOyllW3JdLT1pLGk9ZVtyXTx0W3JdPzE6MCxlW3JdPWkqbitlW3JdLXRbcl07Zm9yKDshZVswXSYmZS5sZW5ndGg+MTtlLnNwbGljZSgwLDEpKTt9cmV0dXJuIGZ1bmN0aW9uKGksbyx1LGMsZil7dmFyIGwscCxkLHksZyx2LG0sYixfLFMsRSx3LFQsQSxDLHgsSSxrPWkucz09by5zPzE6LTEsTz1pLmMsTj1vLmM7aWYoIShPJiZPWzBdJiZOJiZOWzBdKSlyZXR1cm4gbmV3IHEoaS5zJiZvLnMmJihPPyFOfHxPWzBdIT1OWzBdOk4pP08mJjA9PU9bMF18fCFOPzAqazprLzA6TmFOKTtmb3IoXz0oYj1uZXcgcShrKSkuYz1bXSxrPXUrKHA9aS5lLW8uZSkrMSxmfHwoZj1hLHA9aChpLmUvcyktaChvLmUvcyksaz1rL3N8MCksZD0wO05bZF09PShPW2RdfHwwKTtkKyspO2lmKE5bZF0+KE9bZF18fDApJiZwLS0sazwwKV8ucHVzaCgxKSx5PSEwO2Vsc2V7Zm9yKEE9Ty5sZW5ndGgseD1OLmxlbmd0aCxkPTAsays9MiwoZz1uKGYvKE5bMF0rMSkpKT4xJiYoTj1lKE4sZyxmKSxPPWUoTyxnLGYpLHg9Ti5sZW5ndGgsQT1PLmxlbmd0aCksVD14LEU9KFM9Ty5zbGljZSgwLHgpKS5sZW5ndGg7RTx4O1NbRSsrXT0wKTtJPU4uc2xpY2UoKSxJPVswXS5jb25jYXQoSSksQz1OWzBdLE5bMV0+PWYvMiYmQysrO2Rve2lmKGc9MCwobD10KE4sUyx4LEUpKTwwKXtpZih3PVNbMF0seCE9RSYmKHc9dypmKyhTWzFdfHwwKSksKGc9bih3L0MpKT4xKWZvcihnPj1mJiYoZz1mLTEpLG09KHY9ZShOLGcsZikpLmxlbmd0aCxFPVMubGVuZ3RoOzE9PXQodixTLG0sRSk7KWctLSxyKHYseDxtP0k6TixtLGYpLG09di5sZW5ndGgsbD0xO2Vsc2UgMD09ZyYmKGw9Zz0xKSxtPSh2PU4uc2xpY2UoKSkubGVuZ3RoO2lmKG08RSYmKHY9WzBdLmNvbmNhdCh2KSkscihTLHYsRSxmKSxFPVMubGVuZ3RoLC0xPT1sKWZvcig7dChOLFMseCxFKTwxOylnKysscihTLHg8RT9JOk4sRSxmKSxFPVMubGVuZ3RofWVsc2UgMD09PWwmJihnKyssUz1bMF0pO19bZCsrXT1nLFNbMF0/U1tFKytdPU9bVF18fDA6KFM9W09bVF1dLEU9MSl9d2hpbGUoKFQrKzxBfHxudWxsIT1TWzBdKSYmay0tKTt5PW51bGwhPVNbMF0sX1swXXx8Xy5zcGxpY2UoMCwxKX1pZihmPT1hKXtmb3IoZD0xLGs9X1swXTtrPj0xMDtrLz0xMCxkKyspO0goYix1KyhiLmU9ZCtwKnMtMSkrMSxjLHkpfWVsc2UgYi5lPXAsYi5yPSt5O3JldHVybiBifX0oKSxUPS9eKC0/KTAoW3hib10pKD89XHdbXHcuXSokKS9pLEE9L14oW14uXSspXC4kLyxDPS9eXC4oW14uXSspJC8seD0vXi0/KEluZmluaXR5fE5hTikkLyxJPS9eXHMqXCsoPz1bXHcuXSl8XlxzK3xccyskL2csRT1mdW5jdGlvbihlLHQscixuKXt2YXIgbyxhPXI/dDp0LnJlcGxhY2UoSSwiIik7aWYoeC50ZXN0KGEpKWUucz1pc05hTihhKT9udWxsOmE8MD8tMToxO2Vsc2V7aWYoIXImJihhPWEucmVwbGFjZShULGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbz0ieCI9PShyPXIudG9Mb3dlckNhc2UoKSk/MTY6ImIiPT1yPzI6OCxuJiZuIT1vP2U6dH0pLG4mJihvPW4sYT1hLnJlcGxhY2UoQSwiJDEiKS5yZXBsYWNlKEMsIjAuJDEiKSksdCE9YSkpcmV0dXJuIG5ldyBxKGEsbyk7aWYocS5ERUJVRyl0aHJvdyBFcnJvcihpKyJOb3QgYSIrKG4/IiBiYXNlICIrbjoiIikrIiBudW1iZXI6ICIrdCk7ZS5zPW51bGx9ZS5jPWUuZT1udWxsfSxrLmFic29sdXRlVmFsdWU9ay5hYnM9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgcSh0aGlzKTtyZXR1cm4gZS5zPDAmJihlLnM9MSksZX0say5jb21wYXJlZFRvPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGQodGhpcyxuZXcgcShlLHQpKX0say5kZWNpbWFsUGxhY2VzPWsuZHA9ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGksbz10aGlzO2lmKG51bGwhPWUpcmV0dXJuIHkoZSwwLGwpLG51bGw9PXQ/dD1QOnkodCwwLDgpLEgobmV3IHEobyksZStvLmUrMSx0KTtpZighKHI9by5jKSlyZXR1cm4gbnVsbDtpZihuPSgoaT1yLmxlbmd0aC0xKS1oKHRoaXMuZS9zKSkqcyxpPXJbaV0pZm9yKDtpJTEwPT0wO2kvPTEwLG4tLSk7cmV0dXJuIG48MCYmKG49MCksbn0say5kaXZpZGVkQnk9ay5kaXY9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gXyh0aGlzLG5ldyBxKGUsdCksTixQKX0say5kaXZpZGVkVG9JbnRlZ2VyQnk9ay5pZGl2PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIF8odGhpcyxuZXcgcShlLHQpLDAsMSl9LGsuZXhwb25lbnRpYXRlZEJ5PWsucG93PWZ1bmN0aW9uKGUsdCl7dmFyIG8sYSx1LGMsZixsLGgscCxkPXRoaXM7aWYoKGU9bmV3IHEoZSkpLmMmJiFlLmlzSW50ZWdlcigpKXRocm93IEVycm9yKGkrIkV4cG9uZW50IG5vdCBhbiBpbnRlZ2VyOiAiK1coZSkpO2lmKG51bGwhPXQmJih0PW5ldyBxKHQpKSxmPWUuZT4xNCwhZC5jfHwhZC5jWzBdfHwxPT1kLmNbMF0mJiFkLmUmJjE9PWQuYy5sZW5ndGh8fCFlLmN8fCFlLmNbMF0pcmV0dXJuIHA9bmV3IHEoTWF0aC5wb3coK1coZCksZj8yLWcoZSk6K1coZSkpKSx0P3AubW9kKHQpOnA7aWYobD1lLnM8MCx0KXtpZih0LmM/IXQuY1swXTohdC5zKXJldHVybiBuZXcgcShOYU4pOyhhPSFsJiZkLmlzSW50ZWdlcigpJiZ0LmlzSW50ZWdlcigpKSYmKGQ9ZC5tb2QodCkpfWVsc2V7aWYoZS5lPjkmJihkLmU+MHx8ZC5lPC0xfHwoMD09ZC5lP2QuY1swXT4xfHxmJiZkLmNbMV0+PTI0ZTc6ZC5jWzBdPDhlMTN8fGYmJmQuY1swXTw9OTk5OTk3NWU3KSkpcmV0dXJuIGM9ZC5zPDAmJmcoZSk/LTA6MCxkLmU+LTEmJihjPTEvYyksbmV3IHEobD8xL2M6Yyk7VSYmKGM9cihVL3MrMikpfWZvcihmPyhvPW5ldyBxKC41KSxsJiYoZS5zPTEpLGg9ZyhlKSk6aD0odT1NYXRoLmFicygrVyhlKSkpJTIscD1uZXcgcShPKTs7KXtpZihoKXtpZighKHA9cC50aW1lcyhkKSkuYylicmVhaztjP3AuYy5sZW5ndGg+YyYmKHAuYy5sZW5ndGg9Yyk6YSYmKHA9cC5tb2QodCkpfWlmKHUpe2lmKDA9PT0odT1uKHUvMikpKWJyZWFrO2g9dSUyfWVsc2UgaWYoSChlPWUudGltZXMobyksZS5lKzEsMSksZS5lPjE0KWg9ZyhlKTtlbHNle2lmKDA9PSh1PStXKGUpKSlicmVhaztoPXUlMn1kPWQudGltZXMoZCksYz9kLmMmJmQuYy5sZW5ndGg+YyYmKGQuYy5sZW5ndGg9Yyk6YSYmKGQ9ZC5tb2QodCkpfXJldHVybiBhP3A6KGwmJihwPU8uZGl2KHApKSx0P3AubW9kKHQpOmM/SChwLFUsUCx2b2lkIDApOnApfSxrLmludGVnZXJWYWx1ZT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgcSh0aGlzKTtyZXR1cm4gbnVsbD09ZT9lPVA6eShlLDAsOCksSCh0LHQuZSsxLGUpfSxrLmlzRXF1YWxUbz1rLmVxPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PT1kKHRoaXMsbmV3IHEoZSx0KSl9LGsuaXNGaW5pdGU9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuY30say5pc0dyZWF0ZXJUaGFuPWsuZ3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZCh0aGlzLG5ldyBxKGUsdCkpPjB9LGsuaXNHcmVhdGVyVGhhbk9yRXF1YWxUbz1rLmd0ZT1mdW5jdGlvbihlLHQpe3JldHVybiAxPT09KHQ9ZCh0aGlzLG5ldyBxKGUsdCkpKXx8MD09PXR9LGsuaXNJbnRlZ2VyPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmMmJmgodGhpcy5lL3MpPnRoaXMuYy5sZW5ndGgtMn0say5pc0xlc3NUaGFuPWsubHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZCh0aGlzLG5ldyBxKGUsdCkpPDB9LGsuaXNMZXNzVGhhbk9yRXF1YWxUbz1rLmx0ZT1mdW5jdGlvbihlLHQpe3JldHVybi0xPT09KHQ9ZCh0aGlzLG5ldyBxKGUsdCkpKXx8MD09PXR9LGsuaXNOYU49ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zfSxrLmlzTmVnYXRpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zPDB9LGsuaXNQb3NpdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnM+MH0say5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuYyYmMD09dGhpcy5jWzBdfSxrLm1pbnVzPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbixpLG8sdT10aGlzLGM9dS5zO2lmKHQ9KGU9bmV3IHEoZSx0KSkucywhY3x8IXQpcmV0dXJuIG5ldyBxKE5hTik7aWYoYyE9dClyZXR1cm4gZS5zPS10LHUucGx1cyhlKTt2YXIgZj11LmUvcyxsPWUuZS9zLHA9dS5jLGQ9ZS5jO2lmKCFmfHwhbCl7aWYoIXB8fCFkKXJldHVybiBwPyhlLnM9LXQsZSk6bmV3IHEoZD91Ok5hTik7aWYoIXBbMF18fCFkWzBdKXJldHVybiBkWzBdPyhlLnM9LXQsZSk6bmV3IHEocFswXT91OjM9PVA/LTA6MCl9aWYoZj1oKGYpLGw9aChsKSxwPXAuc2xpY2UoKSxjPWYtbCl7Zm9yKChvPWM8MCk/KGM9LWMsaT1wKToobD1mLGk9ZCksaS5yZXZlcnNlKCksdD1jO3QtLTtpLnB1c2goMCkpO2kucmV2ZXJzZSgpfWVsc2UgZm9yKG49KG89KGM9cC5sZW5ndGgpPCh0PWQubGVuZ3RoKSk/Yzp0LGM9dD0wO3Q8bjt0KyspaWYocFt0XSE9ZFt0XSl7bz1wW3RdPGRbdF07YnJlYWt9aWYobyYmKGk9cCxwPWQsZD1pLGUucz0tZS5zKSwodD0obj1kLmxlbmd0aCktKHI9cC5sZW5ndGgpKT4wKWZvcig7dC0tO3BbcisrXT0wKTtmb3IodD1hLTE7bj5jOyl7aWYocFstLW5dPGRbbl0pe2ZvcihyPW47ciYmIXBbLS1yXTtwW3JdPXQpOy0tcFtyXSxwW25dKz1hfXBbbl0tPWRbbl19Zm9yKDswPT1wWzBdO3Auc3BsaWNlKDAsMSksLS1sKTtyZXR1cm4gcFswXT9HKGUscCxsKTooZS5zPTM9PVA/LTE6MSxlLmM9W2UuZT0wXSxlKX0say5tb2R1bG89ay5tb2Q9ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGk9dGhpcztyZXR1cm4gZT1uZXcgcShlLHQpLCFpLmN8fCFlLnN8fGUuYyYmIWUuY1swXT9uZXcgcShOYU4pOiFlLmN8fGkuYyYmIWkuY1swXT9uZXcgcShpKTooOT09aj8obj1lLnMsZS5zPTEscj1fKGksZSwwLDMpLGUucz1uLHIucyo9bik6cj1fKGksZSwwLGopLChlPWkubWludXMoci50aW1lcyhlKSkpLmNbMF18fDEhPWp8fChlLnM9aS5zKSxlKX0say5tdWx0aXBsaWVkQnk9ay50aW1lcz1mdW5jdGlvbihlLHQpe3ZhciByLG4saSxvLHUsYyxsLHAsZCx5LGcsdixtLGIsXyxTPXRoaXMsRT1TLmMsdz0oZT1uZXcgcShlLHQpKS5jO2lmKCEoRSYmdyYmRVswXSYmd1swXSkpcmV0dXJuIVMuc3x8IWUuc3x8RSYmIUVbMF0mJiF3fHx3JiYhd1swXSYmIUU/ZS5jPWUuZT1lLnM9bnVsbDooZS5zKj1TLnMsRSYmdz8oZS5jPVswXSxlLmU9MCk6ZS5jPWUuZT1udWxsKSxlO2ZvcihuPWgoUy5lL3MpK2goZS5lL3MpLGUucyo9Uy5zLChsPUUubGVuZ3RoKTwoeT13Lmxlbmd0aCkmJihtPUUsRT13LHc9bSxpPWwsbD15LHk9aSksaT1sK3ksbT1bXTtpLS07bS5wdXNoKDApKTtmb3IoYj1hLF89ZixpPXk7LS1pPj0wOyl7Zm9yKHI9MCxnPXdbaV0lXyx2PXdbaV0vX3wwLG89aSsodT1sKTtvPmk7KXI9KChwPWcqKHA9RVstLXVdJV8pKyhjPXYqcCsoZD1FW3VdL198MCkqZyklXypfK21bb10rcikvYnwwKSsoYy9ffDApK3YqZCxtW28tLV09cCViO21bb109cn1yZXR1cm4gcj8rK246bS5zcGxpY2UoMCwxKSxHKGUsbSxuKX0say5uZWdhdGVkPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHEodGhpcyk7cmV0dXJuIGUucz0tZS5zfHxudWxsLGV9LGsucGx1cz1mdW5jdGlvbihlLHQpe3ZhciByLG49dGhpcyxpPW4ucztpZih0PShlPW5ldyBxKGUsdCkpLnMsIWl8fCF0KXJldHVybiBuZXcgcShOYU4pO2lmKGkhPXQpcmV0dXJuIGUucz0tdCxuLm1pbnVzKGUpO3ZhciBvPW4uZS9zLHU9ZS5lL3MsYz1uLmMsZj1lLmM7aWYoIW98fCF1KXtpZighY3x8IWYpcmV0dXJuIG5ldyBxKGkvMCk7aWYoIWNbMF18fCFmWzBdKXJldHVybiBmWzBdP2U6bmV3IHEoY1swXT9uOjAqaSl9aWYobz1oKG8pLHU9aCh1KSxjPWMuc2xpY2UoKSxpPW8tdSl7Zm9yKGk+MD8odT1vLHI9Zik6KGk9LWkscj1jKSxyLnJldmVyc2UoKTtpLS07ci5wdXNoKDApKTtyLnJldmVyc2UoKX1mb3IoKGk9Yy5sZW5ndGgpLSh0PWYubGVuZ3RoKTwwJiYocj1mLGY9YyxjPXIsdD1pKSxpPTA7dDspaT0oY1stLXRdPWNbdF0rZlt0XStpKS9hfDAsY1t0XT1hPT09Y1t0XT8wOmNbdF0lYTtyZXR1cm4gaSYmKGM9W2ldLmNvbmNhdChjKSwrK3UpLEcoZSxjLHUpfSxrLnByZWNpc2lvbj1rLnNkPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbixpLG89dGhpcztpZihudWxsIT1lJiZlIT09ISFlKXJldHVybiB5KGUsMSxsKSxudWxsPT10P3Q9UDp5KHQsMCw4KSxIKG5ldyBxKG8pLGUsdCk7aWYoIShyPW8uYykpcmV0dXJuIG51bGw7aWYobj0oaT1yLmxlbmd0aC0xKSpzKzEsaT1yW2ldKXtmb3IoO2klMTA9PTA7aS89MTAsbi0tKTtmb3IoaT1yWzBdO2k+PTEwO2kvPTEwLG4rKyk7fXJldHVybiBlJiZvLmUrMT5uJiYobj1vLmUrMSksbn0say5zaGlmdGVkQnk9ZnVuY3Rpb24oZSl7cmV0dXJuIHkoZSwtdSx1KSx0aGlzLnRpbWVzKCIxZSIrZSl9LGsuc3F1YXJlUm9vdD1rLnNxcnQ9ZnVuY3Rpb24oKXt2YXIgZSx0LHIsbixpLG89dGhpcyxhPW8uYyxzPW8ucyx1PW8uZSxjPU4rNCxmPW5ldyBxKCIwLjUiKTtpZigxIT09c3x8IWF8fCFhWzBdKXJldHVybiBuZXcgcSghc3x8czwwJiYoIWF8fGFbMF0pP05hTjphP286MS8wKTtpZigwPT0ocz1NYXRoLnNxcnQoK1cobykpKXx8cz09MS8wPygoKHQ9cChhKSkubGVuZ3RoK3UpJTI9PTAmJih0Kz0iMCIpLHM9TWF0aC5zcXJ0KCt0KSx1PWgoKHUrMSkvMiktKHU8MHx8dSUyKSxyPW5ldyBxKHQ9cz09MS8wPyIxZSIrdToodD1zLnRvRXhwb25lbnRpYWwoKSkuc2xpY2UoMCx0LmluZGV4T2YoImUiKSsxKSt1KSk6cj1uZXcgcShzKyIiKSxyLmNbMF0pZm9yKChzPSh1PXIuZSkrYyk8MyYmKHM9MCk7OylpZihpPXIscj1mLnRpbWVzKGkucGx1cyhfKG8saSxjLDEpKSkscChpLmMpLnNsaWNlKDAscyk9PT0odD1wKHIuYykpLnNsaWNlKDAscykpe2lmKHIuZTx1JiYtLXMsIjk5OTkiIT0odD10LnNsaWNlKHMtMyxzKzEpKSYmKG58fCI0OTk5IiE9dCkpeyt0JiYoK3Quc2xpY2UoMSl8fCI1IiE9dC5jaGFyQXQoMCkpfHwoSChyLHIuZStOKzIsMSksZT0hci50aW1lcyhyKS5lcShvKSk7YnJlYWt9aWYoIW4mJihIKGksaS5lK04rMiwwKSxpLnRpbWVzKGkpLmVxKG8pKSl7cj1pO2JyZWFrfWMrPTQscys9NCxuPTF9cmV0dXJuIEgocixyLmUrTisxLFAsZSl9LGsudG9FeHBvbmVudGlhbD1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsIT1lJiYoeShlLDAsbCksZSsrKSxLKHRoaXMsZSx0LDEpfSxrLnRvRml4ZWQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbCE9ZSYmKHkoZSwwLGwpLGU9ZSt0aGlzLmUrMSksSyh0aGlzLGUsdCl9LGsudG9Gb3JtYXQ9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuLG89dGhpcztpZihudWxsPT1yKW51bGwhPWUmJnQmJiJvYmplY3QiPT10eXBlb2YgdD8ocj10LHQ9bnVsbCk6ZSYmIm9iamVjdCI9PXR5cGVvZiBlPyhyPWUsZT10PW51bGwpOnI9RjtlbHNlIGlmKCJvYmplY3QiIT10eXBlb2Ygcil0aHJvdyBFcnJvcihpKyJBcmd1bWVudCBub3QgYW4gb2JqZWN0OiAiK3IpO2lmKG49by50b0ZpeGVkKGUsdCksby5jKXt2YXIgYSxzPW4uc3BsaXQoIi4iKSx1PStyLmdyb3VwU2l6ZSxjPStyLnNlY29uZGFyeUdyb3VwU2l6ZSxmPXIuZ3JvdXBTZXBhcmF0b3J8fCIiLGw9c1swXSxoPXNbMV0scD1vLnM8MCxkPXA/bC5zbGljZSgxKTpsLHk9ZC5sZW5ndGg7aWYoYyYmKGE9dSx1PWMsYz1hLHktPWEpLHU+MCYmeT4wKXtmb3IoYT15JXV8fHUsbD1kLnN1YnN0cigwLGEpO2E8eTthKz11KWwrPWYrZC5zdWJzdHIoYSx1KTtjPjAmJihsKz1mK2Quc2xpY2UoYSkpLHAmJihsPSItIitsKX1uPWg/bCsoci5kZWNpbWFsU2VwYXJhdG9yfHwiIikrKChjPStyLmZyYWN0aW9uR3JvdXBTaXplKT9oLnJlcGxhY2UobmV3IFJlZ0V4cCgiXFxkeyIrYysifVxcQiIsImciKSwiJCYiKyhyLmZyYWN0aW9uR3JvdXBTZXBhcmF0b3J8fCIiKSk6aCk6bH1yZXR1cm4oci5wcmVmaXh8fCIiKStuKyhyLnN1ZmZpeHx8IiIpfSxrLnRvRnJhY3Rpb249ZnVuY3Rpb24oZSl7dmFyIHQscixuLG8sYSx1LGYsbCxoLGQseSxnLHY9dGhpcyxtPXYuYztpZihudWxsIT1lJiYoIShmPW5ldyBxKGUpKS5pc0ludGVnZXIoKSYmKGYuY3x8MSE9PWYucyl8fGYubHQoTykpKXRocm93IEVycm9yKGkrIkFyZ3VtZW50ICIrKGYuaXNJbnRlZ2VyKCk/Im91dCBvZiByYW5nZTogIjoibm90IGFuIGludGVnZXI6ICIpK1coZikpO2lmKCFtKXJldHVybiBuZXcgcSh2KTtmb3IodD1uZXcgcShPKSxoPXI9bmV3IHEoTyksbj1sPW5ldyBxKE8pLGc9cChtKSxhPXQuZT1nLmxlbmd0aC12LmUtMSx0LmNbMF09Y1sodT1hJXMpPDA/cyt1OnVdLGU9IWV8fGYuY29tcGFyZWRUbyh0KT4wP2E+MD90Omg6Zix1PUwsTD0xLzAsZj1uZXcgcShnKSxsLmNbMF09MDtkPV8oZix0LDAsMSksMSE9KG89ci5wbHVzKGQudGltZXMobikpKS5jb21wYXJlZFRvKGUpOylyPW4sbj1vLGg9bC5wbHVzKGQudGltZXMobz1oKSksbD1vLHQ9Zi5taW51cyhkLnRpbWVzKG89dCkpLGY9bztyZXR1cm4gbz1fKGUubWludXMociksbiwwLDEpLGw9bC5wbHVzKG8udGltZXMoaCkpLHI9ci5wbHVzKG8udGltZXMobikpLGwucz1oLnM9di5zLHk9XyhoLG4sYSo9MixQKS5taW51cyh2KS5hYnMoKS5jb21wYXJlZFRvKF8obCxyLGEsUCkubWludXModikuYWJzKCkpPDE/W2gsbl06W2wscl0sTD11LHl9LGsudG9OdW1iZXI9ZnVuY3Rpb24oKXtyZXR1cm4rVyh0aGlzKX0say50b1ByZWNpc2lvbj1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsIT1lJiZ5KGUsMSxsKSxLKHRoaXMsZSx0LDIpfSxrLnRvU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciB0LHI9dGhpcyxuPXIucyxpPXIuZTtyZXR1cm4gbnVsbD09PWk/bj8odD0iSW5maW5pdHkiLG48MCYmKHQ9Ii0iK3QpKTp0PSJOYU4iOihudWxsPT1lP3Q9aTw9Unx8aT49Qj92KHAoci5jKSxpKTptKHAoci5jKSxpLCIwIik6MTA9PT1lP3Q9bShwKChyPUgobmV3IHEociksTitpKzEsUCkpLmMpLHIuZSwiMCIpOih5KGUsMixWLmxlbmd0aCwiQmFzZSIpLHQ9UyhtKHAoci5jKSxpLCIwIiksMTAsZSxuLCEwKSksbjwwJiZyLmNbMF0mJih0PSItIit0KSksdH0say52YWx1ZU9mPWsudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyl9LGsuX2lzQmlnTnVtYmVyPSEwLGtbU3ltYm9sLnRvU3RyaW5nVGFnXT0iQmlnTnVtYmVyIixrW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIildPWsudmFsdWVPZixudWxsIT1iJiZxLnNldChiKSxxfSgpLF89ZnVuY3Rpb24oKXtyZXR1cm4oXz1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQscj0xLG49YXJndW1lbnRzLmxlbmd0aDtyPG47cisrKWZvcih2YXIgaSBpbiB0PWFyZ3VtZW50c1tyXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxpKSYmKGVbaV09dFtpXSk7cmV0dXJuIGV9KS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5mb3JtYXQ9ZS5ERUZBVUxUX0ZPUk1BVCxiLmNvbmZpZyh7Rk9STUFUOnRoaXMuZm9ybWF0fSl9cmV0dXJuIGUucHJvdG90eXBlLnNldD1mdW5jdGlvbihlKXsiRk9STUFUImluIGUmJih0aGlzLmZvcm1hdD1fKHt9LHRoaXMuZm9ybWF0LGUuRk9STUFUKSxlLkZPUk1BVD10aGlzLmZvcm1hdCksYi5jb25maWcoZSl9LGUuREVGQVVMVF9GT1JNQVQ9e3ByZWZpeDoiIixkZWNpbWFsU2VwYXJhdG9yOiIuIixncm91cFNlcGFyYXRvcjoiLCIsZ3JvdXBTaXplOjMsc2Vjb25kYXJ5R3JvdXBTaXplOjAsZnJhY3Rpb25Hcm91cFNlcGFyYXRvcjoiICIsZnJhY3Rpb25Hcm91cFNpemU6MCxzdWZmaXg6IiJ9LGV9KCk7ZS5CaWdOdW1iZXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpeyJvYmplY3QiPT10eXBlb2YgdCYmZS5pc0JpZ051bWJlcih0KT90aGlzLmJuPXQuYm4ucGx1cygwKTp0aGlzLmJuPWUudG9CaWdOdW1iZXJKcyh0KX1yZXR1cm4gZS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGUodGhpcyl9LGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUodGhpcy5ibi5wbHVzKGUudG9CaWdOdW1iZXJKcyh0KSkpfSxlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHRoaXMuYm4ubWludXMoZS50b0JpZ051bWJlckpzKHQpKSl9LGUucHJvdG90eXBlLm11bD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUodGhpcy5ibi50aW1lcyhlLnRvQmlnTnVtYmVySnModCkpKX0sZS5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSh0aGlzLmJuLmRpdihlLnRvQmlnTnVtYmVySnModCkpKX0sZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSh0aGlzLmJuLnBvdyhlLnRvQmlnTnVtYmVySnModCkpKX0sZS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBlKHRoaXMuYm4uYWJzKCkpfSxlLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHRoaXMuYm4ubW9kKGUudG9CaWdOdW1iZXJKcyh0KSkpfSxlLnByb3RvdHlwZS5yb3VuZFRvPWZ1bmN0aW9uKHQscil7cmV0dXJuIHZvaWQgMD09PXQmJih0PTApLHZvaWQgMD09PXImJihyPTQpLG5ldyBlKHRoaXMuYm4uZHAodHx8MCxyKSl9LGUucHJvdG90eXBlLmVxPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmJuLmVxKGUudG9CaWdOdW1iZXJKcyh0KSl9LGUucHJvdG90eXBlLmx0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmJuLmx0KGUudG9CaWdOdW1iZXJKcyh0KSl9LGUucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmJuLmd0KGUudG9CaWdOdW1iZXJKcyh0KSl9LGUucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ibi5sdGUoZS50b0JpZ051bWJlckpzKHQpKX0sZS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmJuLmd0ZShlLnRvQmlnTnVtYmVySnModCkpfSxlLnByb3RvdHlwZS5pc05hTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLmlzTmFOKCl9LGUucHJvdG90eXBlLmlzRmluaXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYm4uaXNGaW5pdGUoKX0sZS5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGUucHJvdG90eXBlLmlzUG9zaXRpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ndCgwKX0sZS5wcm90b3R5cGUuaXNOZWdhdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmx0KDApfSxlLnByb3RvdHlwZS5pc0ludD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLmlzSW50ZWdlcigpfSxlLnByb3RvdHlwZS5nZXREZWNpbWFsc0NvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYm4uZHAoKX0sZS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kKDIpLmVxKDApfSxlLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiF0aGlzLmlzRXZlbigpfSxlLnByb3RvdHlwZS50b0J5dGVzPWZ1bmN0aW9uKCl7aWYoIXRoaXMuaXNJbnQoKSl0aHJvdyBuZXcgRXJyb3IoIkNhbnQgY3JlYXRlIGJ5dGVzIGZyb20gbnVtYmVyIHdpdGggZGVjaW1hbHMhIik7dmFyIHQ9dGhpcy5pc05lZ2F0aXZlKCkscj10PyIxIjoiMCIsbj1lLl90b0xlbmd0aCg2NCx0aGlzLmJuLnBsdXMocikuYWJzKCkudG9TdHJpbmcoMikucmVwbGFjZSgiLSIsIiIpKS5zcGxpdCgiIiksaT1bXTtkb3tpLnB1c2gocGFyc2VJbnQobi5zcGxpY2UoMCw4KS5qb2luKCIiKSwyKSl9d2hpbGUobi5sZW5ndGgpO3JldHVybiB0P1VpbnQ4QXJyYXkuZnJvbShpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gMjU1LWV9KSk6VWludDhBcnJheS5mcm9tKGkpfSxlLnByb3RvdHlwZS50b0Zvcm1hdD1mdW5jdGlvbihlLHQscil7cmV0dXJuIHRoaXMuYm4udG9Gb3JtYXQoZSx0LHIpfSxlLnByb3RvdHlwZS50b0ZpeGVkPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWU/dGhpcy5ibi50b0ZpeGVkKCk6dGhpcy5ibi50b0ZpeGVkKGUsdCl9LGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9GaXhlZCgpfSxlLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLnRvTnVtYmVyKCl9LGUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLnRvRml4ZWQoKX0sZS5wcm90b3R5cGUudmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLnZhbHVlT2YoKX0sZS5mcm9tQnl0ZXM9ZnVuY3Rpb24odCl7aWYoOCE9PXQubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiV3JvbmcgYnl0ZXMgbGVuZ3RoISBOZWVkIDggYnl0ZXMhIik7dmFyIHI9dFswXT4xMjcsbj1BcnJheS5mcm9tKHQpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gcj8yNTUtZTplfSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlLl90b0xlbmd0aCg4LHQudG9TdHJpbmcoMikpfSkuam9pbigiIiksaT1uZXcgZShuZXcgYihuLDIpKTtyZXR1cm4gcj9pLm11bCgtMSkuc3ViKDEpOml9LGUubWF4PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXRbcl09YXJndW1lbnRzW3JdO3JldHVybiBlLnRvQmlnTnVtYmVyKHQpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlLmd0ZSh0KT9lOnR9KX0sZS5taW49ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10scj0wO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspdFtyXT1hcmd1bWVudHNbcl07cmV0dXJuIGUudG9CaWdOdW1iZXIodCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUubHRlKHQpP2U6dH0pfSxlLnN1bT1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gZS50b0JpZ051bWJlcih0KS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5hZGQodCl9KX0sZS5pc0JpZ051bWJlcj1mdW5jdGlvbih0KXtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0JiYodCBpbnN0YW5jZW9mIGV8fE9iamVjdC5lbnRyaWVzKGUucHJvdG90eXBlKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIl8iIT09ZVswXS5jaGFyQXQoMCl9KS5ldmVyeShmdW5jdGlvbihlKXt2YXIgcj1lWzBdLG49ZVsxXTtyZXR1cm4gciBpbiB0JiZ0eXBlb2Ygbj09dHlwZW9mIHRbcl19KSl9LGUudG9CaWdOdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHQpfSk6bmV3IGUodCl9LGUudG9CaWdOdW1iZXJKcz1mdW5jdGlvbih0KXtyZXR1cm4gYi5pc0JpZ051bWJlcih0KT90OnQgaW5zdGFuY2VvZiBlP3QuYm46bmV3IGIodCl9LGUuX3RvTGVuZ3RoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBBcnJheShlKS5maWxsKCIwIiwwLGUpLmNvbmNhdCh0LnNwbGl0KCIiKSkuc2xpY2UoLWUpLmpvaW4oIiIpfSxlLk1BWF9WQUxVRT1uZXcgZSgiOTIyMzM3MjAzNjg1NDc3NTgwNyIpLGUuTUlOX1ZBTFVFPW5ldyBlKCItOTIyMzM3MjAzNjg1NDc3NTgwOCIpLGUuTUFYX1VOU0lHTkVEX1ZBTFVFPW5ldyBlKCIxODQ0Njc0NDA3MzcwOTU1MTYxNSIpLGUuY29uZmlnPW5ldyBTLGV9KCksZnVuY3Rpb24oZSl7IWZ1bmN0aW9uKGUpe2VbZS5ST1VORF9VUD0wXT0iUk9VTkRfVVAiLGVbZS5ST1VORF9ET1dOPTFdPSJST1VORF9ET1dOIixlW2UuUk9VTkRfQ0VJTD0yXT0iUk9VTkRfQ0VJTCIsZVtlLlJPVU5EX0ZMT09SPTNdPSJST1VORF9GTE9PUiIsZVtlLlJPVU5EX0hBTEZfVVA9NF09IlJPVU5EX0hBTEZfVVAiLGVbZS5ST1VORF9IQUxGX0RPV049NV09IlJPVU5EX0hBTEZfRE9XTiIsZVtlLlJPVU5EX0hBTEZfRVZFTj02XT0iUk9VTkRfSEFMRl9FVkVOIixlW2UuUk9VTkRfSEFMRl9DRUlMPTddPSJST1VORF9IQUxGX0NFSUwiLGVbZS5ST1VORF9IQUxGX0ZMT09SPThdPSJST1VORF9IQUxGX0ZMT09SIn0oZS5ST1VORF9NT0RFfHwoZS5ST1VORF9NT0RFPXt9KSl9KGUuQmlnTnVtYmVyfHwoZS5CaWdOdW1iZXI9e30pKTt2YXIgRT1lLkJpZ051bWJlcjtlLmRlZmF1bHQ9RSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KHQpfSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4ib2JqZWN0Ij09PXR5cGVvZiBlP251bGwhPT1lOiJmdW5jdGlvbiI9PT10eXBlb2YgZX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJue2VudW1lcmFibGU6ISgxJmUpLGNvbmZpZ3VyYWJsZTohKDImZSksd3JpdGFibGU6ISg0JmUpLHZhbHVlOnR9fX0sZnVuY3Rpb24oZSx0KXt2YXIgcj0wLG49TWF0aC5yYW5kb20oKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIlN5bWJvbCgiLmNvbmNhdCh2b2lkIDA9PT1lPyIiOmUsIilfIiwoKytyK24pLnRvU3RyaW5nKDM2KSl9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz0hMX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNjApLGk9TWF0aC5tYXgsbz1NYXRoLm1pbjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oZT1uKGUpKTwwP2koZSt0LDApOm8oZSx0KX19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEyKSxpPXIoNDI0KSxvPXIoMjU1KSxhPXIoMjU0KSgiSUVfUFJPVE8iKSxzPWZ1bmN0aW9uKCl7fSx1PWZ1bmN0aW9uKCl7dmFyIGUsdD1yKDI0OSkoImlmcmFtZSIpLG49by5sZW5ndGg7Zm9yKHQuc3R5bGUuZGlzcGxheT0ibm9uZSIscigyNTEpLmFwcGVuZENoaWxkKHQpLHQuc3JjPSJqYXZhc2NyaXB0OiIsKGU9dC5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCksZS53cml0ZSgiPHNjcmlwdD5kb2N1bWVudC5GPU9iamVjdDxcL3NjcmlwdD4iKSxlLmNsb3NlKCksdT1lLkY7bi0tOylkZWxldGUgdS5wcm90b3R5cGVbb1tuXV07cmV0dXJuIHUoKX07ZS5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKGUsdCl7dmFyIHI7cmV0dXJuIG51bGwhPT1lPyhzLnByb3RvdHlwZT1uKGUpLHI9bmV3IHMscy5wcm90b3R5cGU9bnVsbCxyW2FdPWUpOnI9dSgpLHZvaWQgMD09PXQ/cjppKHIsdCl9fSxmdW5jdGlvbihlLHQscil7dmFyIG49cig0MjMpLGk9cigyNTUpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7dC5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXtyZXR1cm4gbihlLGkpfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNTApLGk9cigzNiksbz1yKDI1NCkoIklFX1BST1RPIiksYT1PYmplY3QucHJvdG90eXBlO2UuZXhwb3J0cz1PYmplY3QuZ2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKGUpe3JldHVybiBlPWkoZSksbihlLG8pP2Vbb106ImZ1bmN0aW9uIj09dHlwZW9mIGUuY29uc3RydWN0b3ImJmUgaW5zdGFuY2VvZiBlLmNvbnN0cnVjdG9yP2UuY29uc3RydWN0b3IucHJvdG90eXBlOmUgaW5zdGFuY2VvZiBPYmplY3Q/YTpudWxsfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMjEpKCJ1bnNjb3BhYmxlcyIpLGk9QXJyYXkucHJvdG90eXBlO3ZvaWQgMD09aVtuXSYmcig1NCkoaSxuLHt9KSxlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aVtuXVtlXT0hMH19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZighbihlKXx8ZS5fdCE9PXQpdGhyb3cgVHlwZUVycm9yKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrdCsiIHJlcXVpcmVkISIpO3JldHVybiBlfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTAwNyksaT1yKDEwMTApO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciByPWkoZSx0KTtyZXR1cm4gbihyKT9yOnZvaWQgMH19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOnIsZW51bWVyYWJsZTohMA=="
}

Changelog:

{
    "2020.03.29 15:15": "base64:Oyk7aWYoZD1kLnNsaWNlKGwsKytwKSl7aWYocC09bCxoJiZxLkRFQlVHJiZwPjE1JiYoZT51fHxlIT09bihlKSkpdGhyb3cgRXJyb3IobytnLnMqZSk7aWYoKGY9Zi1sLTEpPkwpZy5jPWcuZT1udWxsO2Vsc2UgaWYoZjxNKWcuYz1bZy5lPTBdO2Vsc2V7aWYoZy5lPWYsZy5jPVtdLGw9KGYrMSklcyxmPDAmJihsKz1zKSxsPHApe2ZvcihsJiZnLmMucHVzaCgrZC5zbGljZSgwLGwpKSxwLT1zO2w8cDspZy5jLnB1c2goK2Quc2xpY2UobCxsKz1zKSk7bD1zLShkPWQuc2xpY2UobCkpLmxlbmd0aH1lbHNlIGwtPXA7Zm9yKDtsLS07ZCs9IjAiKTtnLmMucHVzaCgrZCl9fWVsc2UgZy5jPVtnLmU9MF19ZnVuY3Rpb24gSyhlLHQscixuKXt2YXIgaSxvLGEscyx1O2lmKG51bGw9PXI/cj1QOnkociwwLDgpLCFlLmMpcmV0dXJuIGUudG9TdHJpbmcoKTtpZihpPWUuY1swXSxhPWUuZSxudWxsPT10KXU9cChlLmMpLHU9MT09bnx8Mj09biYmKGE8PVJ8fGE+PUIpP3YodSxhKTptKHUsYSwiMCIpO2Vsc2UgaWYobz0oZT1IKG5ldyBxKGUpLHQscikpLmUscz0odT1wKGUuYykpLmxlbmd0aCwxPT1ufHwyPT1uJiYodDw9b3x8bzw9Uikpe2Zvcig7czx0O3UrPSIwIixzKyspO3U9dih1LG8pfWVsc2UgaWYodC09YSx1PW0odSxvLCIwIiksbysxPnMpe2lmKC0tdD4wKWZvcih1Kz0iLiI7dC0tO3UrPSIwIik7fWVsc2UgaWYoKHQrPW8tcyk+MClmb3IobysxPT1zJiYodSs9Ii4iKTt0LS07dSs9IjAiKTtyZXR1cm4gZS5zPDAmJmk/Ii0iK3U6dX1mdW5jdGlvbiB6KGUsdCl7Zm9yKHZhciByLG49MSxpPW5ldyBxKGVbMF0pO248ZS5sZW5ndGg7bisrKXtpZighKHI9bmV3IHEoZVtuXSkpLnMpe2k9cjticmVha310LmNhbGwoaSxyKSYmKGk9cil9cmV0dXJuIGl9ZnVuY3Rpb24gRyhlLHQscil7Zm9yKHZhciBuPTEsaT10Lmxlbmd0aDshdFstLWldO3QucG9wKCkpO2ZvcihpPXRbMF07aT49MTA7aS89MTAsbisrKTtyZXR1cm4ocj1uK3Iqcy0xKT5MP2UuYz1lLmU9bnVsbDpyPE0/ZS5jPVtlLmU9MF06KGUuZT1yLGUuYz10KSxlfWZ1bmN0aW9uIEgoZSx0LGksbyl7dmFyIHUsZixsLGgscCxkLHksZz1lLmMsdj1jO2lmKGcpe2U6e2Zvcih1PTEsaD1nWzBdO2g+PTEwO2gvPTEwLHUrKyk7aWYoKGY9dC11KTwwKWYrPXMsbD10LHk9KHA9Z1tkPTBdKS92W3UtbC0xXSUxMHwwO2Vsc2UgaWYoKGQ9cigoZisxKS9zKSk+PWcubGVuZ3RoKXtpZighbylicmVhayBlO2Zvcig7Zy5sZW5ndGg8PWQ7Zy5wdXNoKDApKTtwPXk9MCx1PTEsbD0oZiU9cyktcysxfWVsc2V7Zm9yKHA9aD1nW2RdLHU9MTtoPj0xMDtoLz0xMCx1KyspO3k9KGw9KGYlPXMpLXMrdSk8MD8wOnAvdlt1LWwtMV0lMTB8MH1pZihvPW98fHQ8MHx8bnVsbCE9Z1tkKzFdfHwobDwwP3A6cCV2W3UtbC0xXSksbz1pPDQ/KHl8fG8pJiYoMD09aXx8aT09KGUuczwwPzM6MikpOnk+NXx8NT09eSYmKDQ9PWl8fG98fDY9PWkmJihmPjA/bD4wP3Avdlt1LWxdOjA6Z1tkLTFdKSUxMCYxfHxpPT0oZS5zPDA/ODo3KSksdDwxfHwhZ1swXSlyZXR1cm4gZy5sZW5ndGg9MCxvPyh0LT1lLmUrMSxnWzBdPXZbKHMtdCVzKSVzXSxlLmU9LXR8fDApOmdbMF09ZS5lPTAsZTtpZigwPT1mPyhnLmxlbmd0aD1kLGg9MSxkLS0pOihnLmxlbmd0aD1kKzEsaD12W3MtZl0sZ1tkXT1sPjA/bihwL3ZbdS1sXSV2W2xdKSpoOjApLG8pZm9yKDs7KXtpZigwPT1kKXtmb3IoZj0xLGw9Z1swXTtsPj0xMDtsLz0xMCxmKyspO2ZvcihsPWdbMF0rPWgsaD0xO2w+PTEwO2wvPTEwLGgrKyk7ZiE9aCYmKGUuZSsrLGdbMF09PWEmJihnWzBdPTEpKTticmVha31pZihnW2RdKz1oLGdbZF0hPWEpYnJlYWs7Z1tkLS1dPTAsaD0xfWZvcihmPWcubGVuZ3RoOzA9PT1nWy0tZl07Zy5wb3AoKSk7fWUuZT5MP2UuYz1lLmU9bnVsbDplLmU8TSYmKGUuYz1bZS5lPTBdKX1yZXR1cm4gZX1mdW5jdGlvbiBXKGUpe3ZhciB0LHI9ZS5lO3JldHVybiBudWxsPT09cj9lLnRvU3RyaW5nKCk6KHQ9cChlLmMpLHQ9cjw9Unx8cj49Qj92KHQscik6bSh0LHIsIjAiKSxlLnM8MD8iLSIrdDp0KX1yZXR1cm4gcS5jbG9uZT1lLHEuUk9VTkRfVVA9MCxxLlJPVU5EX0RPV049MSxxLlJPVU5EX0NFSUw9MixxLlJPVU5EX0ZMT09SPTMscS5ST1VORF9IQUxGX1VQPTQscS5ST1VORF9IQUxGX0RPV049NSxxLlJPVU5EX0hBTEZfRVZFTj02LHEuUk9VTkRfSEFMRl9DRUlMPTcscS5ST1VORF9IQUxGX0ZMT09SPTgscS5FVUNMSUQ9OSxxLmNvbmZpZz1xLnNldD1mdW5jdGlvbihlKXt2YXIgdCxyO2lmKG51bGwhPWUpe2lmKCJvYmplY3QiIT10eXBlb2YgZSl0aHJvdyBFcnJvcihpKyJPYmplY3QgZXhwZWN0ZWQ6ICIrZSk7aWYoZS5oYXNPd25Qcm9wZXJ0eSh0PSJERUNJTUFMX1BMQUNFUyIpJiYoeShyPWVbdF0sMCxsLHQpLE49ciksZS5oYXNPd25Qcm9wZXJ0eSh0PSJST1VORElOR19NT0RFIikmJih5KHI9ZVt0XSwwLDgsdCksUD1yKSxlLmhhc093blByb3BlcnR5KHQ9IkVYUE9ORU5USUFMX0FUIikmJigocj1lW3RdKSYmci5wb3A/KHkoclswXSwtbCwwLHQpLHkoclsxXSwwLGwsdCksUj1yWzBdLEI9clsxXSk6KHkociwtbCxsLHQpLFI9LShCPXI8MD8tcjpyKSkpLGUuaGFzT3duUHJvcGVydHkodD0iUkFOR0UiKSlpZigocj1lW3RdKSYmci5wb3ApeShyWzBdLC1sLC0xLHQpLHkoclsxXSwxLGwsdCksTT1yWzBdLEw9clsxXTtlbHNle2lmKHkociwtbCxsLHQpLCFyKXRocm93IEVycm9yKGkrdCsiIGNhbm5vdCBiZSB6ZXJvOiAiK3IpO009LShMPXI8MD8tcjpyKX1pZihlLmhhc093blByb3BlcnR5KHQ9IkNSWVBUTyIpKXtpZigocj1lW3RdKSE9PSEhcil0aHJvdyBFcnJvcihpK3QrIiBub3QgdHJ1ZSBvciBmYWxzZTogIityKTtpZihyKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGNyeXB0b3x8IWNyeXB0b3x8IWNyeXB0by5nZXRSYW5kb21WYWx1ZXMmJiFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgRD0hcixFcnJvcihpKyJjcnlwdG8gdW5hdmFpbGFibGUiKTtEPXJ9ZWxzZSBEPXJ9aWYoZS5oYXNPd25Qcm9wZXJ0eSh0PSJNT0RVTE9fTU9ERSIpJiYoeShyPWVbdF0sMCw5LHQpLGo9ciksZS5oYXNPd25Qcm9wZXJ0eSh0PSJQT1dfUFJFQ0lTSU9OIikmJih5KHI9ZVt0XSwwLGwsdCksVT1yKSxlLmhhc093blByb3BlcnR5KHQ9IkZPUk1BVCIpKXtpZigib2JqZWN0IiE9dHlwZW9mKHI9ZVt0XSkpdGhyb3cgRXJyb3IoaSt0KyIgbm90IGFuIG9iamVjdDogIityKTtGPXJ9aWYoZS5oYXNPd25Qcm9wZXJ0eSh0PSJBTFBIQUJFVCIpKXtpZigic3RyaW5nIiE9dHlwZW9mKHI9ZVt0XSl8fC9eLiR8WystLlxzXXwoLikuKlwxLy50ZXN0KHIpKXRocm93IEVycm9yKGkrdCsiIGludmFsaWQ6ICIrcik7Vj1yfX1yZXR1cm57REVDSU1BTF9QTEFDRVM6TixST1VORElOR19NT0RFOlAsRVhQT05FTlRJQUxfQVQ6W1IsQl0sUkFOR0U6W00sTF0sQ1JZUFRPOkQsTU9EVUxPX01PREU6aixQT1dfUFJFQ0lTSU9OOlUsRk9STUFUOkYsQUxQSEFCRVQ6Vn19LHEuaXNCaWdOdW1iZXI9ZnVuY3Rpb24oZSl7aWYoIWV8fCEwIT09ZS5faXNCaWdOdW1iZXIpcmV0dXJuITE7aWYoIXEuREVCVUcpcmV0dXJuITA7dmFyIHQscixvPWUuYyx1PWUuZSxjPWUucztlOmlmKCJbb2JqZWN0IEFycmF5XSI9PXt9LnRvU3RyaW5nLmNhbGwobykpe2lmKCgxPT09Y3x8LTE9PT1jKSYmdT49LWwmJnU8PWwmJnU9PT1uKHUpKXtpZigwPT09b1swXSl7aWYoMD09PXUmJjE9PT1vLmxlbmd0aClyZXR1cm4hMDticmVhayBlfWlmKCh0PSh1KzEpJXMpPDEmJih0Kz1zKSxTdHJpbmcob1swXSkubGVuZ3RoPT10KXtmb3IodD0wO3Q8by5sZW5ndGg7dCsrKWlmKChyPW9bdF0pPDB8fHI+PWF8fHIhPT1uKHIpKWJyZWFrIGU7aWYoMCE9PXIpcmV0dXJuITB9fX1lbHNlIGlmKG51bGw9PT1vJiZudWxsPT09dSYmKG51bGw9PT1jfHwxPT09Y3x8LTE9PT1jKSlyZXR1cm4hMDt0aHJvdyBFcnJvcihpKyJJbnZhbGlkIEJpZ051bWJlcjogIitlKX0scS5tYXhpbXVtPXEubWF4PWZ1bmN0aW9uKCl7cmV0dXJuIHooYXJndW1lbnRzLGsubHQpfSxxLm1pbmltdW09cS5taW49ZnVuY3Rpb24oKXtyZXR1cm4geihhcmd1bWVudHMsay5ndCl9LHEucmFuZG9tPSh3PTkwMDcxOTkyNTQ3NDA5OTIqTWF0aC5yYW5kb20oKSYyMDk3MTUxP2Z1bmN0aW9uKCl7cmV0dXJuIG4oOTAwNzE5OTI1NDc0MDk5MipNYXRoLnJhbmRvbSgpKX06ZnVuY3Rpb24oKXtyZXR1cm4gODM4ODYwOCooMTA3Mzc0MTgyNCpNYXRoLnJhbmRvbSgpfDApKyg4Mzg4NjA4Kk1hdGgucmFuZG9tKCl8MCl9LGZ1bmN0aW9uKGUpe3ZhciB0LG8sYSx1LGYsaD0wLHA9W10sZD1uZXcgcShPKTtpZihudWxsPT1lP2U9Tjp5KGUsMCxsKSx1PXIoZS9zKSxEKWlmKGNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2Zvcih0PWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KHUqPTIpKTtoPHU7KShmPTEzMTA3Mip0W2hdKyh0W2grMV0+Pj4xMSkpPj05ZTE1PyhvPWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KDIpKSx0W2hdPW9bMF0sdFtoKzFdPW9bMV0pOihwLnB1c2goZiUxZTE0KSxoKz0yKTtoPXUvMn1lbHNle2lmKCFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgRD0hMSxFcnJvcihpKyJjcnlwdG8gdW5hdmFpbGFibGUiKTtmb3IodD1jcnlwdG8ucmFuZG9tQnl0ZXModSo9Nyk7aDx1OykoZj0yODE0NzQ5NzY3MTA2NTYqKDMxJnRbaF0pKzEwOTk1MTE2Mjc3NzYqdFtoKzFdKzQyOTQ5NjcyOTYqdFtoKzJdKzE2Nzc3MjE2KnRbaCszXSsodFtoKzRdPDwxNikrKHRbaCs1XTw8OCkrdFtoKzZdKT49OWUxNT9jcnlwdG8ucmFuZG9tQnl0ZXMoNykuY29weSh0LGgpOihwLnB1c2goZiUxZTE0KSxoKz03KTtoPXUvN31pZighRClmb3IoO2g8dTspKGY9dygpKTw5ZTE1JiYocFtoKytdPWYlMWUxNCk7Zm9yKHU9cFstLWhdLGUlPXMsdSYmZSYmKGY9Y1tzLWVdLHBbaF09bih1L2YpKmYpOzA9PT1wW2hdO3AucG9wKCksaC0tKTtpZihoPDApcD1bYT0wXTtlbHNle2ZvcihhPS0xOzA9PT1wWzBdO3Auc3BsaWNlKDAsMSksYS09cyk7Zm9yKGg9MSxmPXBbMF07Zj49MTA7Zi89MTAsaCsrKTtoPHMmJihhLT1zLWgpfXJldHVybiBkLmU9YSxkLmM9cCxkfSkscS5zdW09ZnVuY3Rpb24oKXtmb3IodmFyIGU9MSx0PWFyZ3VtZW50cyxyPW5ldyBxKHRbMF0pO2U8dC5sZW5ndGg7KXI9ci5wbHVzKHRbZSsrXSk7cmV0dXJuIHJ9LFM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCxyLG4pe2Zvcih2YXIgaSxvLGE9WzBdLHM9MCx1PWUubGVuZ3RoO3M8dTspe2ZvcihvPWEubGVuZ3RoO28tLTthW29dKj10KTtmb3IoYVswXSs9bi5pbmRleE9mKGUuY2hhckF0KHMrKykpLGk9MDtpPGEubGVuZ3RoO2krKylhW2ldPnItMSYmKG51bGw9PWFbaSsxXSYmKGFbaSsxXT0wKSxhW2krMV0rPWFbaV0vcnwwLGFbaV0lPXIpfXJldHVybiBhLnJldmVyc2UoKX1yZXR1cm4gZnVuY3Rpb24odCxyLG4saSxvKXt2YXIgYSxzLHUsYyxmLGwsaCxkLHk9dC5pbmRleE9mKCIuIiksZz1OLHY9UDtmb3IoeT49MCYmKGM9VSxVPTAsdD10LnJlcGxhY2UoIi4iLCIiKSxsPShkPW5ldyBxKHIpKS5wb3codC5sZW5ndGgteSksVT1jLGQuYz1lKG0ocChsLmMpLGwuZSwiMCIpLDEwLG4sIjAxMjM0NTY3ODkiKSxkLmU9ZC5jLmxlbmd0aCksdT1jPShoPWUodCxyLG4sbz8oYT1WLCIwMTIzNDU2Nzg5Iik6KGE9IjAxMjM0NTY3ODkiLFYpKSkubGVuZ3RoOzA9PWhbLS1jXTtoLnBvcCgpKTtpZighaFswXSlyZXR1cm4gYS5jaGFyQXQoMCk7aWYoeTwwPy0tdToobC5jPWgsbC5lPXUsbC5zPWksaD0obD1fKGwsZCxnLHYsbikpLmMsZj1sLnIsdT1sLmUpLHk9aFtzPXUrZysxXSxjPW4vMixmPWZ8fHM8MHx8bnVsbCE9aFtzKzFdLGY9djw0PyhudWxsIT15fHxmKSYmKDA9PXZ8fHY9PShsLnM8MD8zOjIpKTp5PmN8fHk9PWMmJig0PT12fHxmfHw2PT12JiYxJmhbcy0xXXx8dj09KGwuczwwPzg6NykpLHM8MXx8IWhbMF0pdD1mP20oYS5jaGFyQXQoMSksLWcsYS5jaGFyQXQoMCkpOmEuY2hhckF0KDApO2Vsc2V7aWYoaC5sZW5ndGg9cyxmKWZvcigtLW47KytoWy0tc10+bjspaFtzXT0wLHN8fCgrK3UsaD1bMV0uY29uY2F0KGgpKTtmb3IoYz1oLmxlbmd0aDshaFstLWNdOyk7Zm9yKHk9MCx0PSIiO3k8PWM7dCs9YS5jaGFyQXQoaFt5KytdKSk7dD1tKHQsdSxhLmNoYXJBdCgwKSl9cmV0dXJuIHR9fSgpLF89ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCxyKXt2YXIgbixpLG8sYSxzPTAsdT1lLmxlbmd0aCxjPXQlZixsPXQvZnwwO2ZvcihlPWUuc2xpY2UoKTt1LS07KXM9KChpPWMqKG89ZVt1XSVmKSsobj1sKm8rKGE9ZVt1XS9mfDApKmMpJWYqZitzKS9yfDApKyhuL2Z8MCkrbCphLGVbdV09aSVyO3JldHVybiBzJiYoZT1bc10uY29uY2F0KGUpKSxlfWZ1bmN0aW9uIHQoZSx0LHIsbil7dmFyIGksbztpZihyIT1uKW89cj5uPzE6LTE7ZWxzZSBmb3IoaT1vPTA7aTxyO2krKylpZihlW2ldIT10W2ldKXtvPWVbaV0+dFtpXT8xOi0xO2JyZWFrfXJldHVybiBvfWZ1bmN0aW9uIHIoZSx0LHIsbil7Zm9yKHZhciBpPTA7ci0tOyllW3JdLT1pLGk9ZVtyXTx0W3JdPzE6MCxlW3JdPWkqbitlW3JdLXRbcl07Zm9yKDshZVswXSYmZS5sZW5ndGg+MTtlLnNwbGljZSgwLDEpKTt9cmV0dXJuIGZ1bmN0aW9uKGksbyx1LGMsZil7dmFyIGwscCxkLHksZyx2LG0sYixfLFMsRSx3LFQsQSxDLHgsSSxrPWkucz09by5zPzE6LTEsTz1pLmMsTj1vLmM7aWYoIShPJiZPWzBdJiZOJiZOWzBdKSlyZXR1cm4gbmV3IHEoaS5zJiZvLnMmJihPPyFOfHxPWzBdIT1OWzBdOk4pP08mJjA9PU9bMF18fCFOPzAqazprLzA6TmFOKTtmb3IoXz0oYj1uZXcgcShrKSkuYz1bXSxrPXUrKHA9aS5lLW8uZSkrMSxmfHwoZj1hLHA9aChpLmUvcyktaChvLmUvcyksaz1rL3N8MCksZD0wO05bZF09PShPW2RdfHwwKTtkKyspO2lmKE5bZF0+KE9bZF18fDApJiZwLS0sazwwKV8ucHVzaCgxKSx5PSEwO2Vsc2V7Zm9yKEE9Ty5sZW5ndGgseD1OLmxlbmd0aCxkPTAsays9MiwoZz1uKGYvKE5bMF0rMSkpKT4xJiYoTj1lKE4sZyxmKSxPPWUoTyxnLGYpLHg9Ti5sZW5ndGgsQT1PLmxlbmd0aCksVD14LEU9KFM9Ty5zbGljZSgwLHgpKS5sZW5ndGg7RTx4O1NbRSsrXT0wKTtJPU4uc2xpY2UoKSxJPVswXS5jb25jYXQoSSksQz1OWzBdLE5bMV0+PWYvMiYmQysrO2Rve2lmKGc9MCwobD10KE4sUyx4LEUpKTwwKXtpZih3PVNbMF0seCE9RSYmKHc9dypmKyhTWzFdfHwwKSksKGc9bih3L0MpKT4xKWZvcihnPj1mJiYoZz1mLTEpLG09KHY9ZShOLGcsZikpLmxlbmd0aCxFPVMubGVuZ3RoOzE9PXQodixTLG0sRSk7KWctLSxyKHYseDxtP0k6TixtLGYpLG09di5sZW5ndGgsbD0xO2Vsc2UgMD09ZyYmKGw9Zz0xKSxtPSh2PU4uc2xpY2UoKSkubGVuZ3RoO2lmKG08RSYmKHY9WzBdLmNvbmNhdCh2KSkscihTLHYsRSxmKSxFPVMubGVuZ3RoLC0xPT1sKWZvcig7dChOLFMseCxFKTwxOylnKysscihTLHg8RT9JOk4sRSxmKSxFPVMubGVuZ3RofWVsc2UgMD09PWwmJihnKyssUz1bMF0pO19bZCsrXT1nLFNbMF0/U1tFKytdPU9bVF18fDA6KFM9W09bVF1dLEU9MSl9d2hpbGUoKFQrKzxBfHxudWxsIT1TWzBdKSYmay0tKTt5PW51bGwhPVNbMF0sX1swXXx8Xy5zcGxpY2UoMCwxKX1pZihmPT1hKXtmb3IoZD0xLGs9X1swXTtrPj0xMDtrLz0xMCxkKyspO0goYix1KyhiLmU9ZCtwKnMtMSkrMSxjLHkpfWVsc2UgYi5lPXAsYi5yPSt5O3JldHVybiBifX0oKSxUPS9eKC0/KTAoW3hib10pKD89XHdbXHcuXSokKS9pLEE9L14oW14uXSspXC4kLyxDPS9eXC4oW14uXSspJC8seD0vXi0/KEluZmluaXR5fE5hTikkLyxJPS9eXHMqXCsoPz1bXHcuXSl8XlxzK3xccyskL2csRT1mdW5jdGlvbihlLHQscixuKXt2YXIgbyxhPXI/dDp0LnJlcGxhY2UoSSwiIik7aWYoeC50ZXN0KGEpKWUucz1pc05hTihhKT9udWxsOmE8MD8tMToxO2Vsc2V7aWYoIXImJihhPWEucmVwbGFjZShULGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbz0ieCI9PShyPXIudG9Mb3dlckNhc2UoKSk/MTY6ImIiPT1yPzI6OCxuJiZuIT1vP2U6dH0pLG4mJihvPW4sYT1hLnJlcGxhY2UoQSwiJDEiKS5yZXBsYWNlKEMsIjAuJDEiKSksdCE9YSkpcmV0dXJuIG5ldyBxKGEsbyk7aWYocS5ERUJVRyl0aHJvdyBFcnJvcihpKyJOb3QgYSIrKG4/IiBiYXNlICIrbjoiIikrIiBudW1iZXI6ICIrdCk7ZS5zPW51bGx9ZS5jPWUuZT1udWxsfSxrLmFic29sdXRlVmFsdWU9ay5hYnM9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgcSh0aGlzKTtyZXR1cm4gZS5zPDAmJihlLnM9MSksZX0say5jb21wYXJlZFRvPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGQodGhpcyxuZXcgcShlLHQpKX0say5kZWNpbWFsUGxhY2VzPWsuZHA9ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGksbz10aGlzO2lmKG51bGwhPWUpcmV0dXJuIHkoZSwwLGwpLG51bGw9PXQ/dD1QOnkodCwwLDgpLEgobmV3IHEobyksZStvLmUrMSx0KTtpZighKHI9by5jKSlyZXR1cm4gbnVsbDtpZihuPSgoaT1yLmxlbmd0aC0xKS1oKHRoaXMuZS9zKSkqcyxpPXJbaV0pZm9yKDtpJTEwPT0wO2kvPTEwLG4tLSk7cmV0dXJuIG48MCYmKG49MCksbn0say5kaXZpZGVkQnk9ay5kaXY9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gXyh0aGlzLG5ldyBxKGUsdCksTixQKX0say5kaXZpZGVkVG9JbnRlZ2VyQnk9ay5pZGl2PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIF8odGhpcyxuZXcgcShlLHQpLDAsMSl9LGsuZXhwb25lbnRpYXRlZEJ5PWsucG93PWZ1bmN0aW9uKGUsdCl7dmFyIG8sYSx1LGMsZixsLGgscCxkPXRoaXM7aWYoKGU9bmV3IHEoZSkpLmMmJiFlLmlzSW50ZWdlcigpKXRocm93IEVycm9yKGkrIkV4cG9uZW50IG5vdCBhbiBpbnRlZ2VyOiAiK1coZSkpO2lmKG51bGwhPXQmJih0PW5ldyBxKHQpKSxmPWUuZT4xNCwhZC5jfHwhZC5jWzBdfHwxPT1kLmNbMF0mJiFkLmUmJjE9PWQuYy5sZW5ndGh8fCFlLmN8fCFlLmNbMF0pcmV0dXJuIHA9bmV3IHEoTWF0aC5wb3coK1coZCksZj8yLWcoZSk6K1coZSkpKSx0P3AubW9kKHQpOnA7aWYobD1lLnM8MCx0KXtpZih0LmM/IXQuY1swXTohdC5zKXJldHVybiBuZXcgcShOYU4pOyhhPSFsJiZkLmlzSW50ZWdlcigpJiZ0LmlzSW50ZWdlcigpKSYmKGQ9ZC5tb2QodCkpfWVsc2V7aWYoZS5lPjkmJihkLmU+MHx8ZC5lPC0xfHwoMD09ZC5lP2QuY1swXT4xfHxmJiZkLmNbMV0+PTI0ZTc6ZC5jWzBdPDhlMTN8fGYmJmQuY1swXTw9OTk5OTk3NWU3KSkpcmV0dXJuIGM9ZC5zPDAmJmcoZSk/LTA6MCxkLmU+LTEmJihjPTEvYyksbmV3IHEobD8xL2M6Yyk7VSYmKGM9cihVL3MrMikpfWZvcihmPyhvPW5ldyBxKC41KSxsJiYoZS5zPTEpLGg9ZyhlKSk6aD0odT1NYXRoLmFicygrVyhlKSkpJTIscD1uZXcgcShPKTs7KXtpZihoKXtpZighKHA9cC50aW1lcyhkKSkuYylicmVhaztjP3AuYy5sZW5ndGg+YyYmKHAuYy5sZW5ndGg9Yyk6YSYmKHA9cC5tb2QodCkpfWlmKHUpe2lmKDA9PT0odT1uKHUvMikpKWJyZWFrO2g9dSUyfWVsc2UgaWYoSChlPWUudGltZXMobyksZS5lKzEsMSksZS5lPjE0KWg9ZyhlKTtlbHNle2lmKDA9PSh1PStXKGUpKSlicmVhaztoPXUlMn1kPWQudGltZXMoZCksYz9kLmMmJmQuYy5sZW5ndGg+YyYmKGQuYy5sZW5ndGg9Yyk6YSYmKGQ9ZC5tb2QodCkpfXJldHVybiBhP3A6KGwmJihwPU8uZGl2KHApKSx0P3AubW9kKHQpOmM/SChwLFUsUCx2b2lkIDApOnApfSxrLmludGVnZXJWYWx1ZT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgcSh0aGlzKTtyZXR1cm4gbnVsbD09ZT9lPVA6eShlLDAsOCksSCh0LHQuZSsxLGUpfSxrLmlzRXF1YWxUbz1rLmVxPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PT1kKHRoaXMsbmV3IHEoZSx0KSl9LGsuaXNGaW5pdGU9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuY30say5pc0dyZWF0ZXJUaGFuPWsuZ3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZCh0aGlzLG5ldyBxKGUsdCkpPjB9LGsuaXNHcmVhdGVyVGhhbk9yRXF1YWxUbz1rLmd0ZT1mdW5jdGlvbihlLHQpe3JldHVybiAxPT09KHQ9ZCh0aGlzLG5ldyBxKGUsdCkpKXx8MD09PXR9LGsuaXNJbnRlZ2VyPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmMmJmgodGhpcy5lL3MpPnRoaXMuYy5sZW5ndGgtMn0say5pc0xlc3NUaGFuPWsubHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZCh0aGlzLG5ldyBxKGUsdCkpPDB9LGsuaXNMZXNzVGhhbk9yRXF1YWxUbz1rLmx0ZT1mdW5jdGlvbihlLHQpe3JldHVybi0xPT09KHQ9ZCh0aGlzLG5ldyBxKGUsdCkpKXx8MD09PXR9LGsuaXNOYU49ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zfSxrLmlzTmVnYXRpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zPDB9LGsuaXNQb3NpdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnM+MH0say5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuYyYmMD09dGhpcy5jWzBdfSxrLm1pbnVzPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbixpLG8sdT10aGlzLGM9dS5zO2lmKHQ9KGU9bmV3IHEoZSx0KSkucywhY3x8IXQpcmV0dXJuIG5ldyBxKE5hTik7aWYoYyE9dClyZXR1cm4gZS5zPS10LHUucGx1cyhlKTt2YXIgZj11LmUvcyxsPWUuZS9zLHA9dS5jLGQ9ZS5jO2lmKCFmfHwhbCl7aWYoIXB8fCFkKXJldHVybiBwPyhlLnM9LXQsZSk6bmV3IHEoZD91Ok5hTik7aWYoIXBbMF18fCFkWzBdKXJldHVybiBkWzBdPyhlLnM9LXQsZSk6bmV3IHEocFswXT91OjM9PVA/LTA6MCl9aWYoZj1oKGYpLGw9aChsKSxwPXAuc2xpY2UoKSxjPWYtbCl7Zm9yKChvPWM8MCk/KGM9LWMsaT1wKToobD1mLGk9ZCksaS5yZXZlcnNlKCksdD1jO3QtLTtpLnB1c2goMCkpO2kucmV2ZXJzZSgpfWVsc2UgZm9yKG49KG89KGM9cC5sZW5ndGgpPCh0PWQubGVuZ3RoKSk/Yzp0LGM9dD0wO3Q8bjt0KyspaWYocFt0XSE9ZFt0XSl7bz1wW3RdPGRbdF07YnJlYWt9aWYobyYmKGk9cCxwPWQsZD1pLGUucz0tZS5zKSwodD0obj1kLmxlbmd0aCktKHI9cC5sZW5ndGgpKT4wKWZvcig7dC0tO3BbcisrXT0wKTtmb3IodD1hLTE7bj5jOyl7aWYocFstLW5dPGRbbl0pe2ZvcihyPW47ciYmIXBbLS1yXTtwW3JdPXQpOy0tcFtyXSxwW25dKz1hfXBbbl0tPWRbbl19Zm9yKDswPT1wWzBdO3Auc3BsaWNlKDAsMSksLS1sKTtyZXR1cm4gcFswXT9HKGUscCxsKTooZS5zPTM9PVA/LTE6MSxlLmM9W2UuZT0wXSxlKX0say5tb2R1bG89ay5tb2Q9ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGk9dGhpcztyZXR1cm4gZT1uZXcgcShlLHQpLCFpLmN8fCFlLnN8fGUuYyYmIWUuY1swXT9uZXcgcShOYU4pOiFlLmN8fGkuYyYmIWkuY1swXT9uZXcgcShpKTooOT09aj8obj1lLnMsZS5zPTEscj1fKGksZSwwLDMpLGUucz1uLHIucyo9bik6cj1fKGksZSwwLGopLChlPWkubWludXMoci50aW1lcyhlKSkpLmNbMF18fDEhPWp8fChlLnM9aS5zKSxlKX0say5tdWx0aXBsaWVkQnk9ay50aW1lcz1mdW5jdGlvbihlLHQpe3ZhciByLG4saSxvLHUsYyxsLHAsZCx5LGcsdixtLGIsXyxTPXRoaXMsRT1TLmMsdz0oZT1uZXcgcShlLHQpKS5jO2lmKCEoRSYmdyYmRVswXSYmd1swXSkpcmV0dXJuIVMuc3x8IWUuc3x8RSYmIUVbMF0mJiF3fHx3JiYhd1swXSYmIUU/ZS5jPWUuZT1lLnM9bnVsbDooZS5zKj1TLnMsRSYmdz8oZS5jPVswXSxlLmU9MCk6ZS5jPWUuZT1udWxsKSxlO2ZvcihuPWgoUy5lL3MpK2goZS5lL3MpLGUucyo9Uy5zLChsPUUubGVuZ3RoKTwoeT13Lmxlbmd0aCkmJihtPUUsRT13LHc9bSxpPWwsbD15LHk9aSksaT1sK3ksbT1bXTtpLS07bS5wdXNoKDApKTtmb3IoYj1hLF89ZixpPXk7LS1pPj0wOyl7Zm9yKHI9MCxnPXdbaV0lXyx2PXdbaV0vX3wwLG89aSsodT1sKTtvPmk7KXI9KChwPWcqKHA9RVstLXVdJV8pKyhjPXYqcCsoZD1FW3VdL198MCkqZyklXypfK21bb10rcikvYnwwKSsoYy9ffDApK3YqZCxtW28tLV09cCViO21bb109cn1yZXR1cm4gcj8rK246bS5zcGxpY2UoMCwxKSxHKGUsbSxuKX0say5uZWdhdGVkPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHEodGhpcyk7cmV0dXJuIGUucz0tZS5zfHxudWxsLGV9LGsucGx1cz1mdW5jdGlvbihlLHQpe3ZhciByLG49dGhpcyxpPW4ucztpZih0PShlPW5ldyBxKGUsdCkpLnMsIWl8fCF0KXJldHVybiBuZXcgcShOYU4pO2lmKGkhPXQpcmV0dXJuIGUucz0tdCxuLm1pbnVzKGUpO3ZhciBvPW4uZS9zLHU9ZS5lL3MsYz1uLmMsZj1lLmM7aWYoIW98fCF1KXtpZighY3x8IWYpcmV0dXJuIG5ldyBxKGkvMCk7aWYoIWNbMF18fCFmWzBdKXJldHVybiBmWzBdP2U6bmV3IHEoY1swXT9uOjAqaSl9aWYobz1oKG8pLHU9aCh1KSxjPWMuc2xpY2UoKSxpPW8tdSl7Zm9yKGk+MD8odT1vLHI9Zik6KGk9LWkscj1jKSxyLnJldmVyc2UoKTtpLS07ci5wdXNoKDApKTtyLnJldmVyc2UoKX1mb3IoKGk9Yy5sZW5ndGgpLSh0PWYubGVuZ3RoKTwwJiYocj1mLGY9YyxjPXIsdD1pKSxpPTA7dDspaT0oY1stLXRdPWNbdF0rZlt0XStpKS9hfDAsY1t0XT1hPT09Y1t0XT8wOmNbdF0lYTtyZXR1cm4gaSYmKGM9W2ldLmNvbmNhdChjKSwrK3UpLEcoZSxjLHUpfSxrLnByZWNpc2lvbj1rLnNkPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbixpLG89dGhpcztpZihudWxsIT1lJiZlIT09ISFlKXJldHVybiB5KGUsMSxsKSxudWxsPT10P3Q9UDp5KHQsMCw4KSxIKG5ldyBxKG8pLGUsdCk7aWYoIShyPW8uYykpcmV0dXJuIG51bGw7aWYobj0oaT1yLmxlbmd0aC0xKSpzKzEsaT1yW2ldKXtmb3IoO2klMTA9PTA7aS89MTAsbi0tKTtmb3IoaT1yWzBdO2k+PTEwO2kvPTEwLG4rKyk7fXJldHVybiBlJiZvLmUrMT5uJiYobj1vLmUrMSksbn0say5zaGlmdGVkQnk9ZnVuY3Rpb24oZSl7cmV0dXJuIHkoZSwtdSx1KSx0aGlzLnRpbWVzKCIxZSIrZSl9LGsuc3F1YXJlUm9vdD1rLnNxcnQ9ZnVuY3Rpb24oKXt2YXIgZSx0LHIsbixpLG89dGhpcyxhPW8uYyxzPW8ucyx1PW8uZSxjPU4rNCxmPW5ldyBxKCIwLjUiKTtpZigxIT09c3x8IWF8fCFhWzBdKXJldHVybiBuZXcgcSghc3x8czwwJiYoIWF8fGFbMF0pP05hTjphP286MS8wKTtpZigwPT0ocz1NYXRoLnNxcnQoK1cobykpKXx8cz09MS8wPygoKHQ9cChhKSkubGVuZ3RoK3UpJTI9PTAmJih0Kz0iMCIpLHM9TWF0aC5zcXJ0KCt0KSx1PWgoKHUrMSkvMiktKHU8MHx8dSUyKSxyPW5ldyBxKHQ9cz09MS8wPyIxZSIrdToodD1zLnRvRXhwb25lbnRpYWwoKSkuc2xpY2UoMCx0LmluZGV4T2YoImUiKSsxKSt1KSk6cj1uZXcgcShzKyIiKSxyLmNbMF0pZm9yKChzPSh1PXIuZSkrYyk8MyYmKHM9MCk7OylpZihpPXIscj1mLnRpbWVzKGkucGx1cyhfKG8saSxjLDEpKSkscChpLmMpLnNsaWNlKDAscyk9PT0odD1wKHIuYykpLnNsaWNlKDAscykpe2lmKHIuZTx1JiYtLXMsIjk5OTkiIT0odD10LnNsaWNlKHMtMyxzKzEpKSYmKG58fCI0OTk5IiE9dCkpeyt0JiYoK3Quc2xpY2UoMSl8fCI1IiE9dC5jaGFyQXQoMCkpfHwoSChyLHIuZStOKzIsMSksZT0hci50aW1lcyhyKS5lcShvKSk7YnJlYWt9aWYoIW4mJihIKGksaS5lK04rMiwwKSxpLnRpbWVzKGkpLmVxKG8pKSl7cj1pO2JyZWFrfWMrPTQscys9NCxuPTF9cmV0dXJuIEgocixyLmUrTisxLFAsZSl9LGsudG9FeHBvbmVudGlhbD1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsIT1lJiYoeShlLDAsbCksZSsrKSxLKHRoaXMsZSx0LDEpfSxrLnRvRml4ZWQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbCE9ZSYmKHkoZSwwLGwpLGU9ZSt0aGlzLmUrMSksSyh0aGlzLGUsdCl9LGsudG9Gb3JtYXQ9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuLG89dGhpcztpZihudWxsPT1yKW51bGwhPWUmJnQmJiJvYmplY3QiPT10eXBlb2YgdD8ocj10LHQ9bnVsbCk6ZSYmIm9iamVjdCI9PXR5cGVvZiBlPyhyPWUsZT10PW51bGwpOnI9RjtlbHNlIGlmKCJvYmplY3QiIT10eXBlb2Ygcil0aHJvdyBFcnJvcihpKyJBcmd1bWVudCBub3QgYW4gb2JqZWN0OiAiK3IpO2lmKG49by50b0ZpeGVkKGUsdCksby5jKXt2YXIgYSxzPW4uc3BsaXQoIi4iKSx1PStyLmdyb3VwU2l6ZSxjPStyLnNlY29uZGFyeUdyb3VwU2l6ZSxmPXIuZ3JvdXBTZXBhcmF0b3J8fCIiLGw9c1swXSxoPXNbMV0scD1vLnM8MCxkPXA/bC5zbGljZSgxKTpsLHk9ZC5sZW5ndGg7aWYoYyYmKGE9dSx1PWMsYz1hLHktPWEpLHU+MCYmeT4wKXtmb3IoYT15JXV8fHUsbD1kLnN1YnN0cigwLGEpO2E8eTthKz11KWwrPWYrZC5zdWJzdHIoYSx1KTtjPjAmJihsKz1mK2Quc2xpY2UoYSkpLHAmJihsPSItIitsKX1uPWg/bCsoci5kZWNpbWFsU2VwYXJhdG9yfHwiIikrKChjPStyLmZyYWN0aW9uR3JvdXBTaXplKT9oLnJlcGxhY2UobmV3IFJlZ0V4cCgiXFxkeyIrYysifVxcQiIsImciKSwiJCYiKyhyLmZyYWN0aW9uR3JvdXBTZXBhcmF0b3J8fCIiKSk6aCk6bH1yZXR1cm4oci5wcmVmaXh8fCIiKStuKyhyLnN1ZmZpeHx8IiIpfSxrLnRvRnJhY3Rpb249ZnVuY3Rpb24oZSl7dmFyIHQscixuLG8sYSx1LGYsbCxoLGQseSxnLHY9dGhpcyxtPXYuYztpZihudWxsIT1lJiYoIShmPW5ldyBxKGUpKS5pc0ludGVnZXIoKSYmKGYuY3x8MSE9PWYucyl8fGYubHQoTykpKXRocm93IEVycm9yKGkrIkFyZ3VtZW50ICIrKGYuaXNJbnRlZ2VyKCk/Im91dCBvZiByYW5nZTogIjoibm90IGFuIGludGVnZXI6ICIpK1coZikpO2lmKCFtKXJldHVybiBuZXcgcSh2KTtmb3IodD1uZXcgcShPKSxoPXI9bmV3IHEoTyksbj1sPW5ldyBxKE8pLGc9cChtKSxhPXQuZT1nLmxlbmd0aC12LmUtMSx0LmNbMF09Y1sodT1hJXMpPDA/cyt1OnVdLGU9IWV8fGYuY29tcGFyZWRUbyh0KT4wP2E+MD90Omg6Zix1PUwsTD0xLzAsZj1uZXcgcShnKSxsLmNbMF09MDtkPV8oZix0LDAsMSksMSE9KG89ci5wbHVzKGQudGltZXMobikpKS5jb21wYXJlZFRvKGUpOylyPW4sbj1vLGg9bC5wbHVzKGQudGltZXMobz1oKSksbD1vLHQ9Zi5taW51cyhkLnRpbWVzKG89dCkpLGY9bztyZXR1cm4gbz1fKGUubWludXMociksbiwwLDEpLGw9bC5wbHVzKG8udGltZXMoaCkpLHI9ci5wbHVzKG8udGltZXMobikpLGwucz1oLnM9di5zLHk9XyhoLG4sYSo9MixQKS5taW51cyh2KS5hYnMoKS5jb21wYXJlZFRvKF8obCxyLGEsUCkubWludXModikuYWJzKCkpPDE/W2gsbl06W2wscl0sTD11LHl9LGsudG9OdW1iZXI9ZnVuY3Rpb24oKXtyZXR1cm4rVyh0aGlzKX0say50b1ByZWNpc2lvbj1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsIT1lJiZ5KGUsMSxsKSxLKHRoaXMsZSx0LDIpfSxrLnRvU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciB0LHI9dGhpcyxuPXIucyxpPXIuZTtyZXR1cm4gbnVsbD09PWk/bj8odD0iSW5maW5pdHkiLG48MCYmKHQ9Ii0iK3QpKTp0PSJOYU4iOihudWxsPT1lP3Q9aTw9Unx8aT49Qj92KHAoci5jKSxpKTptKHAoci5jKSxpLCIwIik6MTA9PT1lP3Q9bShwKChyPUgobmV3IHEociksTitpKzEsUCkpLmMpLHIuZSwiMCIpOih5KGUsMixWLmxlbmd0aCwiQmFzZSIpLHQ9UyhtKHAoci5jKSxpLCIwIiksMTAsZSxuLCEwKSksbjwwJiZyLmNbMF0mJih0PSItIit0KSksdH0say52YWx1ZU9mPWsudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyl9LGsuX2lzQmlnTnVtYmVyPSEwLGtbU3ltYm9sLnRvU3RyaW5nVGFnXT0iQmlnTnVtYmVyIixrW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIildPWsudmFsdWVPZixudWxsIT1iJiZxLnNldChiKSxxfSgpLF89ZnVuY3Rpb24oKXtyZXR1cm4oXz1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQscj0xLG49YXJndW1lbnRzLmxlbmd0aDtyPG47cisrKWZvcih2YXIgaSBpbiB0PWFyZ3VtZW50c1tyXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxpKSYmKGVbaV09dFtpXSk7cmV0dXJuIGV9KS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5mb3JtYXQ9ZS5ERUZBVUxUX0ZPUk1BVCxiLmNvbmZpZyh7Rk9STUFUOnRoaXMuZm9ybWF0fSl9cmV0dXJuIGUucHJvdG90eXBlLnNldD1mdW5jdGlvbihlKXsiRk9STUFUImluIGUmJih0aGlzLmZvcm1hdD1fKHt9LHRoaXMuZm9ybWF0LGUuRk9STUFUKSxlLkZPUk1BVD10aGlzLmZvcm1hdCksYi5jb25maWcoZSl9LGUuREVGQVVMVF9GT1JNQVQ9e3ByZWZpeDoiIixkZWNpbWFsU2VwYXJhdG9yOiIuIixncm91cFNlcGFyYXRvcjoiLCIsZ3JvdXBTaXplOjMsc2Vjb25kYXJ5R3JvdXBTaXplOjAsZnJhY3Rpb25Hcm91cFNlcGFyYXRvcjoiICIsZnJhY3Rpb25Hcm91cFNpemU6MCxzdWZmaXg6IiJ9LGV9KCk7ZS5CaWdOdW1iZXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpeyJvYmplY3QiPT10eXBlb2YgdCYmZS5pc0JpZ051bWJlcih0KT90aGlzLmJuPXQuYm4ucGx1cygwKTp0aGlzLmJuPWUudG9CaWdOdW1iZXJKcyh0KX1yZXR1cm4gZS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGUodGhpcyl9LGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUodGhpcy5ibi5wbHVzKGUudG9CaWdOdW1iZXJKcyh0KSkpfSxlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHRoaXMuYm4ubWludXMoZS50b0JpZ051bWJlckpzKHQpKSl9LGUucHJvdG90eXBlLm11bD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUodGhpcy5ibi50aW1lcyhlLnRvQmlnTnVtYmVySnModCkpKX0sZS5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSh0aGlzLmJuLmRpdihlLnRvQmlnTnVtYmVySnModCkpKX0sZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSh0aGlzLmJuLnBvdyhlLnRvQmlnTnVtYmVySnModCkpKX0sZS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBlKHRoaXMuYm4uYWJzKCkpfSxlLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHRoaXMuYm4ubW9kKGUudG9CaWdOdW1iZXJKcyh0KSkpfSxlLnByb3RvdHlwZS5yb3VuZFRvPWZ1bmN0aW9uKHQscil7cmV0dXJuIHZvaWQgMD09PXQmJih0PTApLHZvaWQgMD09PXImJihyPTQpLG5ldyBlKHRoaXMuYm4uZHAodHx8MCxyKSl9LGUucHJvdG90eXBlLmVxPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmJuLmVxKGUudG9CaWdOdW1iZXJKcyh0KSl9LGUucHJvdG90eXBlLmx0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmJuLmx0KGUudG9CaWdOdW1iZXJKcyh0KSl9LGUucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmJuLmd0KGUudG9CaWdOdW1iZXJKcyh0KSl9LGUucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ibi5sdGUoZS50b0JpZ051bWJlckpzKHQpKX0sZS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmJuLmd0ZShlLnRvQmlnTnVtYmVySnModCkpfSxlLnByb3RvdHlwZS5pc05hTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLmlzTmFOKCl9LGUucHJvdG90eXBlLmlzRmluaXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYm4uaXNGaW5pdGUoKX0sZS5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGUucHJvdG90eXBlLmlzUG9zaXRpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ndCgwKX0sZS5wcm90b3R5cGUuaXNOZWdhdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmx0KDApfSxlLnByb3RvdHlwZS5pc0ludD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLmlzSW50ZWdlcigpfSxlLnByb3RvdHlwZS5nZXREZWNpbWFsc0NvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYm4uZHAoKX0sZS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kKDIpLmVxKDApfSxlLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiF0aGlzLmlzRXZlbigpfSxlLnByb3RvdHlwZS50b0J5dGVzPWZ1bmN0aW9uKCl7aWYoIXRoaXMuaXNJbnQoKSl0aHJvdyBuZXcgRXJyb3IoIkNhbnQgY3JlYXRlIGJ5dGVzIGZyb20gbnVtYmVyIHdpdGggZGVjaW1hbHMhIik7dmFyIHQ9dGhpcy5pc05lZ2F0aXZlKCkscj10PyIxIjoiMCIsbj1lLl90b0xlbmd0aCg2NCx0aGlzLmJuLnBsdXMocikuYWJzKCkudG9TdHJpbmcoMikucmVwbGFjZSgiLSIsIiIpKS5zcGxpdCgiIiksaT1bXTtkb3tpLnB1c2gocGFyc2VJbnQobi5zcGxpY2UoMCw4KS5qb2luKCIiKSwyKSl9d2hpbGUobi5sZW5ndGgpO3JldHVybiB0P1VpbnQ4QXJyYXkuZnJvbShpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gMjU1LWV9KSk6VWludDhBcnJheS5mcm9tKGkpfSxlLnByb3RvdHlwZS50b0Zvcm1hdD1mdW5jdGlvbihlLHQscil7cmV0dXJuIHRoaXMuYm4udG9Gb3JtYXQoZSx0LHIpfSxlLnByb3RvdHlwZS50b0ZpeGVkPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWU/dGhpcy5ibi50b0ZpeGVkKCk6dGhpcy5ibi50b0ZpeGVkKGUsdCl9LGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9GaXhlZCgpfSxlLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLnRvTnVtYmVyKCl9LGUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLnRvRml4ZWQoKX0sZS5wcm90b3R5cGUudmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLnZhbHVlT2YoKX0sZS5mcm9tQnl0ZXM9ZnVuY3Rpb24odCl7aWYoOCE9PXQubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiV3JvbmcgYnl0ZXMgbGVuZ3RoISBOZWVkIDggYnl0ZXMhIik7dmFyIHI9dFswXT4xMjcsbj1BcnJheS5mcm9tKHQpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gcj8yNTUtZTplfSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlLl90b0xlbmd0aCg4LHQudG9TdHJpbmcoMikpfSkuam9pbigiIiksaT1uZXcgZShuZXcgYihuLDIpKTtyZXR1cm4gcj9pLm11bCgtMSkuc3ViKDEpOml9LGUubWF4PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXRbcl09YXJndW1lbnRzW3JdO3JldHVybiBlLnRvQmlnTnVtYmVyKHQpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlLmd0ZSh0KT9lOnR9KX0sZS5taW49ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10scj0wO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspdFtyXT1hcmd1bWVudHNbcl07cmV0dXJuIGUudG9CaWdOdW1iZXIodCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUubHRlKHQpP2U6dH0pfSxlLnN1bT1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gZS50b0JpZ051bWJlcih0KS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5hZGQodCl9KX0sZS5pc0JpZ051bWJlcj1mdW5jdGlvbih0KXtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0JiYodCBpbnN0YW5jZW9mIGV8fE9iamVjdC5lbnRyaWVzKGUucHJvdG90eXBlKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIl8iIT09ZVswXS5jaGFyQXQoMCl9KS5ldmVyeShmdW5jdGlvbihlKXt2YXIgcj1lWzBdLG49ZVsxXTtyZXR1cm4gciBpbiB0JiZ0eXBlb2Ygbj09dHlwZW9mIHRbcl19KSl9LGUudG9CaWdOdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHQpfSk6bmV3IGUodCl9LGUudG9CaWdOdW1iZXJKcz1mdW5jdGlvbih0KXtyZXR1cm4gYi5pc0JpZ051bWJlcih0KT90OnQgaW5zdGFuY2VvZiBlP3QuYm46bmV3IGIodCl9LGUuX3RvTGVuZ3RoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBBcnJheShlKS5maWxsKCIwIiwwLGUpLmNvbmNhdCh0LnNwbGl0KCIiKSkuc2xpY2UoLWUpLmpvaW4oIiIpfSxlLk1BWF9WQUxVRT1uZXcgZSgiOTIyMzM3MjAzNjg1NDc3NTgwNyIpLGUuTUlOX1ZBTFVFPW5ldyBlKCItOTIyMzM3MjAzNjg1NDc3NTgwOCIpLGUuTUFYX1VOU0lHTkVEX1ZBTFVFPW5ldyBlKCIxODQ0Njc0NDA3MzcwOTU1MTYxNSIpLGUuY29uZmlnPW5ldyBTLGV9KCksZnVuY3Rpb24oZSl7IWZ1bmN0aW9uKGUpe2VbZS5ST1VORF9VUD0wXT0iUk9VTkRfVVAiLGVbZS5ST1VORF9ET1dOPTFdPSJST1VORF9ET1dOIixlW2UuUk9VTkRfQ0VJTD0yXT0iUk9VTkRfQ0VJTCIsZVtlLlJPVU5EX0ZMT09SPTNdPSJST1VORF9GTE9PUiIsZVtlLlJPVU5EX0hBTEZfVVA9NF09IlJPVU5EX0hBTEZfVVAiLGVbZS5ST1VORF9IQUxGX0RPV049NV09IlJPVU5EX0hBTEZfRE9XTiIsZVtlLlJPVU5EX0hBTEZfRVZFTj02XT0iUk9VTkRfSEFMRl9FVkVOIixlW2UuUk9VTkRfSEFMRl9DRUlMPTddPSJST1VORF9IQUxGX0NFSUwiLGVbZS5ST1VORF9IQUxGX0ZMT09SPThdPSJST1VORF9IQUxGX0ZMT09SIn0oZS5ST1VORF9NT0RFfHwoZS5ST1VORF9NT0RFPXt9KSl9KGUuQmlnTnVtYmVyfHwoZS5CaWdOdW1iZXI9e30pKTt2YXIgRT1lLkJpZ051bWJlcjtlLmRlZmF1bHQ9RSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KHQpfSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4ib2JqZWN0Ij09PXR5cGVvZiBlP251bGwhPT1lOiJmdW5jdGlvbiI9PT10eXBlb2YgZX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJue2VudW1lcmFibGU6ISgxJmUpLGNvbmZpZ3VyYWJsZTohKDImZSksd3JpdGFibGU6ISg0JmUpLHZhbHVlOnR9fX0sZnVuY3Rpb24oZSx0KXt2YXIgcj0wLG49TWF0aC5yYW5kb20oKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIlN5bWJvbCgiLmNvbmNhdCh2b2lkIDA9PT1lPyIiOmUsIilfIiwoKytyK24pLnRvU3RyaW5nKDM2KSl9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz0hMX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNjApLGk9TWF0aC5tYXgsbz1NYXRoLm1pbjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oZT1uKGUpKTwwP2koZSt0LDApOm8oZSx0KX19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEyKSxpPXIoNDI0KSxvPXIoMjU1KSxhPXIoMjU0KSgiSUVfUFJPVE8iKSxzPWZ1bmN0aW9uKCl7fSx1PWZ1bmN0aW9uKCl7dmFyIGUsdD1yKDI0OSkoImlmcmFtZSIpLG49by5sZW5ndGg7Zm9yKHQuc3R5bGUuZGlzcGxheT0ibm9uZSIscigyNTEpLmFwcGVuZENoaWxkKHQpLHQuc3JjPSJqYXZhc2NyaXB0OiIsKGU9dC5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCksZS53cml0ZSgiPHNjcmlwdD5kb2N1bWVudC5GPU9iamVjdDxcL3NjcmlwdD4iKSxlLmNsb3NlKCksdT1lLkY7bi0tOylkZWxldGUgdS5wcm90b3R5cGVbb1tuXV07cmV0dXJuIHUoKX07ZS5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKGUsdCl7dmFyIHI7cmV0dXJuIG51bGwhPT1lPyhzLnByb3RvdHlwZT1uKGUpLHI9bmV3IHMscy5wcm90b3R5cGU9bnVsbCxyW2FdPWUpOnI9dSgpLHZvaWQgMD09PXQ/cjppKHIsdCl9fSxmdW5jdGlvbihlLHQscil7dmFyIG49cig0MjMpLGk9cigyNTUpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7dC5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXtyZXR1cm4gbihlLGkpfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNTApLGk9cigzNiksbz1yKDI1NCkoIklFX1BST1RPIiksYT1PYmplY3QucHJvdG90eXBlO2UuZXhwb3J0cz1PYmplY3QuZ2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKGUpe3JldHVybiBlPWkoZSksbihlLG8pP2Vbb106ImZ1bmN0aW9uIj09dHlwZW9mIGUuY29uc3RydWN0b3ImJmUgaW5zdGFuY2VvZiBlLmNvbnN0cnVjdG9yP2UuY29uc3RydWN0b3IucHJvdG90eXBlOmUgaW5zdGFuY2VvZiBPYmplY3Q/YTpudWxsfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMjEpKCJ1bnNjb3BhYmxlcyIpLGk9QXJyYXkucHJvdG90eXBlO3ZvaWQgMD09aVtuXSYmcig1NCkoaSxuLHt9KSxlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aVtuXVtlXT0hMH19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZighbihlKXx8ZS5fdCE9PXQpdGhyb3cgVHlwZUVycm9yKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrdCsiIHJlcXVpcmVkISIpO3JldHVybiBlfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTAwNyksaT1yKDEwMTApO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciByPWkoZSx0KTtyZXR1cm4gbihyKT9yOnZvaWQgMH19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOnIsZW51bWVyYWJsZTohMA==",
    "2020.03.29 15:15": "base64:Oyk7aWYoZD1kLnNsaWNlKGwsKytwKSl7aWYocC09bCxoJiZxLkRFQlVHJiZwPjE1JiYoZT51fHxlIT09bihlKSkpdGhyb3cgRXJyb3IobytnLnMqZSk7aWYoKGY9Zi1sLTEpPkwpZy5jPWcuZT1udWxsO2Vsc2UgaWYoZjxNKWcuYz1bZy5lPTBdO2Vsc2V7aWYoZy5lPWYsZy5jPVtdLGw9KGYrMSklcyxmPDAmJihsKz1zKSxsPHApe2ZvcihsJiZnLmMucHVzaCgrZC5zbGljZSgwLGwpKSxwLT1zO2w8cDspZy5jLnB1c2goK2Quc2xpY2UobCxsKz1zKSk7bD1zLShkPWQuc2xpY2UobCkpLmxlbmd0aH1lbHNlIGwtPXA7Zm9yKDtsLS07ZCs9IjAiKTtnLmMucHVzaCgrZCl9fWVsc2UgZy5jPVtnLmU9MF19ZnVuY3Rpb24gSyhlLHQscixuKXt2YXIgaSxvLGEscyx1O2lmKG51bGw9PXI/cj1QOnkociwwLDgpLCFlLmMpcmV0dXJuIGUudG9TdHJpbmcoKTtpZihpPWUuY1swXSxhPWUuZSxudWxsPT10KXU9cChlLmMpLHU9MT09bnx8Mj09biYmKGE8PVJ8fGE+PUIpP3YodSxhKTptKHUsYSwiMCIpO2Vsc2UgaWYobz0oZT1IKG5ldyBxKGUpLHQscikpLmUscz0odT1wKGUuYykpLmxlbmd0aCwxPT1ufHwyPT1uJiYodDw9b3x8bzw9Uikpe2Zvcig7czx0O3UrPSIwIixzKyspO3U9dih1LG8pfWVsc2UgaWYodC09YSx1PW0odSxvLCIwIiksbysxPnMpe2lmKC0tdD4wKWZvcih1Kz0iLiI7dC0tO3UrPSIwIik7fWVsc2UgaWYoKHQrPW8tcyk+MClmb3IobysxPT1zJiYodSs9Ii4iKTt0LS07dSs9IjAiKTtyZXR1cm4gZS5zPDAmJmk/Ii0iK3U6dX1mdW5jdGlvbiB6KGUsdCl7Zm9yKHZhciByLG49MSxpPW5ldyBxKGVbMF0pO248ZS5sZW5ndGg7bisrKXtpZighKHI9bmV3IHEoZVtuXSkpLnMpe2k9cjticmVha310LmNhbGwoaSxyKSYmKGk9cil9cmV0dXJuIGl9ZnVuY3Rpb24gRyhlLHQscil7Zm9yKHZhciBuPTEsaT10Lmxlbmd0aDshdFstLWldO3QucG9wKCkpO2ZvcihpPXRbMF07aT49MTA7aS89MTAsbisrKTtyZXR1cm4ocj1uK3Iqcy0xKT5MP2UuYz1lLmU9bnVsbDpyPE0/ZS5jPVtlLmU9MF06KGUuZT1yLGUuYz10KSxlfWZ1bmN0aW9uIEgoZSx0LGksbyl7dmFyIHUsZixsLGgscCxkLHksZz1lLmMsdj1jO2lmKGcpe2U6e2Zvcih1PTEsaD1nWzBdO2g+PTEwO2gvPTEwLHUrKyk7aWYoKGY9dC11KTwwKWYrPXMsbD10LHk9KHA9Z1tkPTBdKS92W3UtbC0xXSUxMHwwO2Vsc2UgaWYoKGQ9cigoZisxKS9zKSk+PWcubGVuZ3RoKXtpZighbylicmVhayBlO2Zvcig7Zy5sZW5ndGg8PWQ7Zy5wdXNoKDApKTtwPXk9MCx1PTEsbD0oZiU9cyktcysxfWVsc2V7Zm9yKHA9aD1nW2RdLHU9MTtoPj0xMDtoLz0xMCx1KyspO3k9KGw9KGYlPXMpLXMrdSk8MD8wOnAvdlt1LWwtMV0lMTB8MH1pZihvPW98fHQ8MHx8bnVsbCE9Z1tkKzFdfHwobDwwP3A6cCV2W3UtbC0xXSksbz1pPDQ/KHl8fG8pJiYoMD09aXx8aT09KGUuczwwPzM6MikpOnk+NXx8NT09eSYmKDQ9PWl8fG98fDY9PWkmJihmPjA/bD4wP3Avdlt1LWxdOjA6Z1tkLTFdKSUxMCYxfHxpPT0oZS5zPDA/ODo3KSksdDwxfHwhZ1swXSlyZXR1cm4gZy5sZW5ndGg9MCxvPyh0LT1lLmUrMSxnWzBdPXZbKHMtdCVzKSVzXSxlLmU9LXR8fDApOmdbMF09ZS5lPTAsZTtpZigwPT1mPyhnLmxlbmd0aD1kLGg9MSxkLS0pOihnLmxlbmd0aD1kKzEsaD12W3MtZl0sZ1tkXT1sPjA/bihwL3ZbdS1sXSV2W2xdKSpoOjApLG8pZm9yKDs7KXtpZigwPT1kKXtmb3IoZj0xLGw9Z1swXTtsPj0xMDtsLz0xMCxmKyspO2ZvcihsPWdbMF0rPWgsaD0xO2w+PTEwO2wvPTEwLGgrKyk7ZiE9aCYmKGUuZSsrLGdbMF09PWEmJihnWzBdPTEpKTticmVha31pZihnW2RdKz1oLGdbZF0hPWEpYnJlYWs7Z1tkLS1dPTAsaD0xfWZvcihmPWcubGVuZ3RoOzA9PT1nWy0tZl07Zy5wb3AoKSk7fWUuZT5MP2UuYz1lLmU9bnVsbDplLmU8TSYmKGUuYz1bZS5lPTBdKX1yZXR1cm4gZX1mdW5jdGlvbiBXKGUpe3ZhciB0LHI9ZS5lO3JldHVybiBudWxsPT09cj9lLnRvU3RyaW5nKCk6KHQ9cChlLmMpLHQ9cjw9Unx8cj49Qj92KHQscik6bSh0LHIsIjAiKSxlLnM8MD8iLSIrdDp0KX1yZXR1cm4gcS5jbG9uZT1lLHEuUk9VTkRfVVA9MCxxLlJPVU5EX0RPV049MSxxLlJPVU5EX0NFSUw9MixxLlJPVU5EX0ZMT09SPTMscS5ST1VORF9IQUxGX1VQPTQscS5ST1VORF9IQUxGX0RPV049NSxxLlJPVU5EX0hBTEZfRVZFTj02LHEuUk9VTkRfSEFMRl9DRUlMPTcscS5ST1VORF9IQUxGX0ZMT09SPTgscS5FVUNMSUQ9OSxxLmNvbmZpZz1xLnNldD1mdW5jdGlvbihlKXt2YXIgdCxyO2lmKG51bGwhPWUpe2lmKCJvYmplY3QiIT10eXBlb2YgZSl0aHJvdyBFcnJvcihpKyJPYmplY3QgZXhwZWN0ZWQ6ICIrZSk7aWYoZS5oYXNPd25Qcm9wZXJ0eSh0PSJERUNJTUFMX1BMQUNFUyIpJiYoeShyPWVbdF0sMCxsLHQpLE49ciksZS5oYXNPd25Qcm9wZXJ0eSh0PSJST1VORElOR19NT0RFIikmJih5KHI9ZVt0XSwwLDgsdCksUD1yKSxlLmhhc093blByb3BlcnR5KHQ9IkVYUE9ORU5USUFMX0FUIikmJigocj1lW3RdKSYmci5wb3A/KHkoclswXSwtbCwwLHQpLHkoclsxXSwwLGwsdCksUj1yWzBdLEI9clsxXSk6KHkociwtbCxsLHQpLFI9LShCPXI8MD8tcjpyKSkpLGUuaGFzT3duUHJvcGVydHkodD0iUkFOR0UiKSlpZigocj1lW3RdKSYmci5wb3ApeShyWzBdLC1sLC0xLHQpLHkoclsxXSwxLGwsdCksTT1yWzBdLEw9clsxXTtlbHNle2lmKHkociwtbCxsLHQpLCFyKXRocm93IEVycm9yKGkrdCsiIGNhbm5vdCBiZSB6ZXJvOiAiK3IpO009LShMPXI8MD8tcjpyKX1pZihlLmhhc093blByb3BlcnR5KHQ9IkNSWVBUTyIpKXtpZigocj1lW3RdKSE9PSEhcil0aHJvdyBFcnJvcihpK3QrIiBub3QgdHJ1ZSBvciBmYWxzZTogIityKTtpZihyKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGNyeXB0b3x8IWNyeXB0b3x8IWNyeXB0by5nZXRSYW5kb21WYWx1ZXMmJiFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgRD0hcixFcnJvcihpKyJjcnlwdG8gdW5hdmFpbGFibGUiKTtEPXJ9ZWxzZSBEPXJ9aWYoZS5oYXNPd25Qcm9wZXJ0eSh0PSJNT0RVTE9fTU9ERSIpJiYoeShyPWVbdF0sMCw5LHQpLGo9ciksZS5oYXNPd25Qcm9wZXJ0eSh0PSJQT1dfUFJFQ0lTSU9OIikmJih5KHI9ZVt0XSwwLGwsdCksVT1yKSxlLmhhc093blByb3BlcnR5KHQ9IkZPUk1BVCIpKXtpZigib2JqZWN0IiE9dHlwZW9mKHI9ZVt0XSkpdGhyb3cgRXJyb3IoaSt0KyIgbm90IGFuIG9iamVjdDogIityKTtGPXJ9aWYoZS5oYXNPd25Qcm9wZXJ0eSh0PSJBTFBIQUJFVCIpKXtpZigic3RyaW5nIiE9dHlwZW9mKHI9ZVt0XSl8fC9eLiR8WystLlxzXXwoLikuKlwxLy50ZXN0KHIpKXRocm93IEVycm9yKGkrdCsiIGludmFsaWQ6ICIrcik7Vj1yfX1yZXR1cm57REVDSU1BTF9QTEFDRVM6TixST1VORElOR19NT0RFOlAsRVhQT05FTlRJQUxfQVQ6W1IsQl0sUkFOR0U6W00sTF0sQ1JZUFRPOkQsTU9EVUxPX01PREU6aixQT1dfUFJFQ0lTSU9OOlUsRk9STUFUOkYsQUxQSEFCRVQ6Vn19LHEuaXNCaWdOdW1iZXI9ZnVuY3Rpb24oZSl7aWYoIWV8fCEwIT09ZS5faXNCaWdOdW1iZXIpcmV0dXJuITE7aWYoIXEuREVCVUcpcmV0dXJuITA7dmFyIHQscixvPWUuYyx1PWUuZSxjPWUucztlOmlmKCJbb2JqZWN0IEFycmF5XSI9PXt9LnRvU3RyaW5nLmNhbGwobykpe2lmKCgxPT09Y3x8LTE9PT1jKSYmdT49LWwmJnU8PWwmJnU9PT1uKHUpKXtpZigwPT09b1swXSl7aWYoMD09PXUmJjE9PT1vLmxlbmd0aClyZXR1cm4hMDticmVhayBlfWlmKCh0PSh1KzEpJXMpPDEmJih0Kz1zKSxTdHJpbmcob1swXSkubGVuZ3RoPT10KXtmb3IodD0wO3Q8by5sZW5ndGg7dCsrKWlmKChyPW9bdF0pPDB8fHI+PWF8fHIhPT1uKHIpKWJyZWFrIGU7aWYoMCE9PXIpcmV0dXJuITB9fX1lbHNlIGlmKG51bGw9PT1vJiZudWxsPT09dSYmKG51bGw9PT1jfHwxPT09Y3x8LTE9PT1jKSlyZXR1cm4hMDt0aHJvdyBFcnJvcihpKyJJbnZhbGlkIEJpZ051bWJlcjogIitlKX0scS5tYXhpbXVtPXEubWF4PWZ1bmN0aW9uKCl7cmV0dXJuIHooYXJndW1lbnRzLGsubHQpfSxxLm1pbmltdW09cS5taW49ZnVuY3Rpb24oKXtyZXR1cm4geihhcmd1bWVudHMsay5ndCl9LHEucmFuZG9tPSh3PTkwMDcxOTkyNTQ3NDA5OTIqTWF0aC5yYW5kb20oKSYyMDk3MTUxP2Z1bmN0aW9uKCl7cmV0dXJuIG4oOTAwNzE5OTI1NDc0MDk5MipNYXRoLnJhbmRvbSgpKX06ZnVuY3Rpb24oKXtyZXR1cm4gODM4ODYwOCooMTA3Mzc0MTgyNCpNYXRoLnJhbmRvbSgpfDApKyg4Mzg4NjA4Kk1hdGgucmFuZG9tKCl8MCl9LGZ1bmN0aW9uKGUpe3ZhciB0LG8sYSx1LGYsaD0wLHA9W10sZD1uZXcgcShPKTtpZihudWxsPT1lP2U9Tjp5KGUsMCxsKSx1PXIoZS9zKSxEKWlmKGNyeXB0by5nZXRSYW5kb21WYWx1ZXMpe2Zvcih0PWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KHUqPTIpKTtoPHU7KShmPTEzMTA3Mip0W2hdKyh0W2grMV0+Pj4xMSkpPj05ZTE1PyhvPWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KDIpKSx0W2hdPW9bMF0sdFtoKzFdPW9bMV0pOihwLnB1c2goZiUxZTE0KSxoKz0yKTtoPXUvMn1lbHNle2lmKCFjcnlwdG8ucmFuZG9tQnl0ZXMpdGhyb3cgRD0hMSxFcnJvcihpKyJjcnlwdG8gdW5hdmFpbGFibGUiKTtmb3IodD1jcnlwdG8ucmFuZG9tQnl0ZXModSo9Nyk7aDx1OykoZj0yODE0NzQ5NzY3MTA2NTYqKDMxJnRbaF0pKzEwOTk1MTE2Mjc3NzYqdFtoKzFdKzQyOTQ5NjcyOTYqdFtoKzJdKzE2Nzc3MjE2KnRbaCszXSsodFtoKzRdPDwxNikrKHRbaCs1XTw8OCkrdFtoKzZdKT49OWUxNT9jcnlwdG8ucmFuZG9tQnl0ZXMoNykuY29weSh0LGgpOihwLnB1c2goZiUxZTE0KSxoKz03KTtoPXUvN31pZighRClmb3IoO2g8dTspKGY9dygpKTw5ZTE1JiYocFtoKytdPWYlMWUxNCk7Zm9yKHU9cFstLWhdLGUlPXMsdSYmZSYmKGY9Y1tzLWVdLHBbaF09bih1L2YpKmYpOzA9PT1wW2hdO3AucG9wKCksaC0tKTtpZihoPDApcD1bYT0wXTtlbHNle2ZvcihhPS0xOzA9PT1wWzBdO3Auc3BsaWNlKDAsMSksYS09cyk7Zm9yKGg9MSxmPXBbMF07Zj49MTA7Zi89MTAsaCsrKTtoPHMmJihhLT1zLWgpfXJldHVybiBkLmU9YSxkLmM9cCxkfSkscS5zdW09ZnVuY3Rpb24oKXtmb3IodmFyIGU9MSx0PWFyZ3VtZW50cyxyPW5ldyBxKHRbMF0pO2U8dC5sZW5ndGg7KXI9ci5wbHVzKHRbZSsrXSk7cmV0dXJuIHJ9LFM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCxyLG4pe2Zvcih2YXIgaSxvLGE9WzBdLHM9MCx1PWUubGVuZ3RoO3M8dTspe2ZvcihvPWEubGVuZ3RoO28tLTthW29dKj10KTtmb3IoYVswXSs9bi5pbmRleE9mKGUuY2hhckF0KHMrKykpLGk9MDtpPGEubGVuZ3RoO2krKylhW2ldPnItMSYmKG51bGw9PWFbaSsxXSYmKGFbaSsxXT0wKSxhW2krMV0rPWFbaV0vcnwwLGFbaV0lPXIpfXJldHVybiBhLnJldmVyc2UoKX1yZXR1cm4gZnVuY3Rpb24odCxyLG4saSxvKXt2YXIgYSxzLHUsYyxmLGwsaCxkLHk9dC5pbmRleE9mKCIuIiksZz1OLHY9UDtmb3IoeT49MCYmKGM9VSxVPTAsdD10LnJlcGxhY2UoIi4iLCIiKSxsPShkPW5ldyBxKHIpKS5wb3codC5sZW5ndGgteSksVT1jLGQuYz1lKG0ocChsLmMpLGwuZSwiMCIpLDEwLG4sIjAxMjM0NTY3ODkiKSxkLmU9ZC5jLmxlbmd0aCksdT1jPShoPWUodCxyLG4sbz8oYT1WLCIwMTIzNDU2Nzg5Iik6KGE9IjAxMjM0NTY3ODkiLFYpKSkubGVuZ3RoOzA9PWhbLS1jXTtoLnBvcCgpKTtpZighaFswXSlyZXR1cm4gYS5jaGFyQXQoMCk7aWYoeTwwPy0tdToobC5jPWgsbC5lPXUsbC5zPWksaD0obD1fKGwsZCxnLHYsbikpLmMsZj1sLnIsdT1sLmUpLHk9aFtzPXUrZysxXSxjPW4vMixmPWZ8fHM8MHx8bnVsbCE9aFtzKzFdLGY9djw0PyhudWxsIT15fHxmKSYmKDA9PXZ8fHY9PShsLnM8MD8zOjIpKTp5PmN8fHk9PWMmJig0PT12fHxmfHw2PT12JiYxJmhbcy0xXXx8dj09KGwuczwwPzg6NykpLHM8MXx8IWhbMF0pdD1mP20oYS5jaGFyQXQoMSksLWcsYS5jaGFyQXQoMCkpOmEuY2hhckF0KDApO2Vsc2V7aWYoaC5sZW5ndGg9cyxmKWZvcigtLW47KytoWy0tc10+bjspaFtzXT0wLHN8fCgrK3UsaD1bMV0uY29uY2F0KGgpKTtmb3IoYz1oLmxlbmd0aDshaFstLWNdOyk7Zm9yKHk9MCx0PSIiO3k8PWM7dCs9YS5jaGFyQXQoaFt5KytdKSk7dD1tKHQsdSxhLmNoYXJBdCgwKSl9cmV0dXJuIHR9fSgpLF89ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCxyKXt2YXIgbixpLG8sYSxzPTAsdT1lLmxlbmd0aCxjPXQlZixsPXQvZnwwO2ZvcihlPWUuc2xpY2UoKTt1LS07KXM9KChpPWMqKG89ZVt1XSVmKSsobj1sKm8rKGE9ZVt1XS9mfDApKmMpJWYqZitzKS9yfDApKyhuL2Z8MCkrbCphLGVbdV09aSVyO3JldHVybiBzJiYoZT1bc10uY29uY2F0KGUpKSxlfWZ1bmN0aW9uIHQoZSx0LHIsbil7dmFyIGksbztpZihyIT1uKW89cj5uPzE6LTE7ZWxzZSBmb3IoaT1vPTA7aTxyO2krKylpZihlW2ldIT10W2ldKXtvPWVbaV0+dFtpXT8xOi0xO2JyZWFrfXJldHVybiBvfWZ1bmN0aW9uIHIoZSx0LHIsbil7Zm9yKHZhciBpPTA7ci0tOyllW3JdLT1pLGk9ZVtyXTx0W3JdPzE6MCxlW3JdPWkqbitlW3JdLXRbcl07Zm9yKDshZVswXSYmZS5sZW5ndGg+MTtlLnNwbGljZSgwLDEpKTt9cmV0dXJuIGZ1bmN0aW9uKGksbyx1LGMsZil7dmFyIGwscCxkLHksZyx2LG0sYixfLFMsRSx3LFQsQSxDLHgsSSxrPWkucz09by5zPzE6LTEsTz1pLmMsTj1vLmM7aWYoIShPJiZPWzBdJiZOJiZOWzBdKSlyZXR1cm4gbmV3IHEoaS5zJiZvLnMmJihPPyFOfHxPWzBdIT1OWzBdOk4pP08mJjA9PU9bMF18fCFOPzAqazprLzA6TmFOKTtmb3IoXz0oYj1uZXcgcShrKSkuYz1bXSxrPXUrKHA9aS5lLW8uZSkrMSxmfHwoZj1hLHA9aChpLmUvcyktaChvLmUvcyksaz1rL3N8MCksZD0wO05bZF09PShPW2RdfHwwKTtkKyspO2lmKE5bZF0+KE9bZF18fDApJiZwLS0sazwwKV8ucHVzaCgxKSx5PSEwO2Vsc2V7Zm9yKEE9Ty5sZW5ndGgseD1OLmxlbmd0aCxkPTAsays9MiwoZz1uKGYvKE5bMF0rMSkpKT4xJiYoTj1lKE4sZyxmKSxPPWUoTyxnLGYpLHg9Ti5sZW5ndGgsQT1PLmxlbmd0aCksVD14LEU9KFM9Ty5zbGljZSgwLHgpKS5sZW5ndGg7RTx4O1NbRSsrXT0wKTtJPU4uc2xpY2UoKSxJPVswXS5jb25jYXQoSSksQz1OWzBdLE5bMV0+PWYvMiYmQysrO2Rve2lmKGc9MCwobD10KE4sUyx4LEUpKTwwKXtpZih3PVNbMF0seCE9RSYmKHc9dypmKyhTWzFdfHwwKSksKGc9bih3L0MpKT4xKWZvcihnPj1mJiYoZz1mLTEpLG09KHY9ZShOLGcsZikpLmxlbmd0aCxFPVMubGVuZ3RoOzE9PXQodixTLG0sRSk7KWctLSxyKHYseDxtP0k6TixtLGYpLG09di5sZW5ndGgsbD0xO2Vsc2UgMD09ZyYmKGw9Zz0xKSxtPSh2PU4uc2xpY2UoKSkubGVuZ3RoO2lmKG08RSYmKHY9WzBdLmNvbmNhdCh2KSkscihTLHYsRSxmKSxFPVMubGVuZ3RoLC0xPT1sKWZvcig7dChOLFMseCxFKTwxOylnKysscihTLHg8RT9JOk4sRSxmKSxFPVMubGVuZ3RofWVsc2UgMD09PWwmJihnKyssUz1bMF0pO19bZCsrXT1nLFNbMF0/U1tFKytdPU9bVF18fDA6KFM9W09bVF1dLEU9MSl9d2hpbGUoKFQrKzxBfHxudWxsIT1TWzBdKSYmay0tKTt5PW51bGwhPVNbMF0sX1swXXx8Xy5zcGxpY2UoMCwxKX1pZihmPT1hKXtmb3IoZD0xLGs9X1swXTtrPj0xMDtrLz0xMCxkKyspO0goYix1KyhiLmU9ZCtwKnMtMSkrMSxjLHkpfWVsc2UgYi5lPXAsYi5yPSt5O3JldHVybiBifX0oKSxUPS9eKC0/KTAoW3hib10pKD89XHdbXHcuXSokKS9pLEE9L14oW14uXSspXC4kLyxDPS9eXC4oW14uXSspJC8seD0vXi0/KEluZmluaXR5fE5hTikkLyxJPS9eXHMqXCsoPz1bXHcuXSl8XlxzK3xccyskL2csRT1mdW5jdGlvbihlLHQscixuKXt2YXIgbyxhPXI/dDp0LnJlcGxhY2UoSSwiIik7aWYoeC50ZXN0KGEpKWUucz1pc05hTihhKT9udWxsOmE8MD8tMToxO2Vsc2V7aWYoIXImJihhPWEucmVwbGFjZShULGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbz0ieCI9PShyPXIudG9Mb3dlckNhc2UoKSk/MTY6ImIiPT1yPzI6OCxuJiZuIT1vP2U6dH0pLG4mJihvPW4sYT1hLnJlcGxhY2UoQSwiJDEiKS5yZXBsYWNlKEMsIjAuJDEiKSksdCE9YSkpcmV0dXJuIG5ldyBxKGEsbyk7aWYocS5ERUJVRyl0aHJvdyBFcnJvcihpKyJOb3QgYSIrKG4/IiBiYXNlICIrbjoiIikrIiBudW1iZXI6ICIrdCk7ZS5zPW51bGx9ZS5jPWUuZT1udWxsfSxrLmFic29sdXRlVmFsdWU9ay5hYnM9ZnVuY3Rpb24oKXt2YXIgZT1uZXcgcSh0aGlzKTtyZXR1cm4gZS5zPDAmJihlLnM9MSksZX0say5jb21wYXJlZFRvPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGQodGhpcyxuZXcgcShlLHQpKX0say5kZWNpbWFsUGxhY2VzPWsuZHA9ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGksbz10aGlzO2lmKG51bGwhPWUpcmV0dXJuIHkoZSwwLGwpLG51bGw9PXQ/dD1QOnkodCwwLDgpLEgobmV3IHEobyksZStvLmUrMSx0KTtpZighKHI9by5jKSlyZXR1cm4gbnVsbDtpZihuPSgoaT1yLmxlbmd0aC0xKS1oKHRoaXMuZS9zKSkqcyxpPXJbaV0pZm9yKDtpJTEwPT0wO2kvPTEwLG4tLSk7cmV0dXJuIG48MCYmKG49MCksbn0say5kaXZpZGVkQnk9ay5kaXY9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gXyh0aGlzLG5ldyBxKGUsdCksTixQKX0say5kaXZpZGVkVG9JbnRlZ2VyQnk9ay5pZGl2PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIF8odGhpcyxuZXcgcShlLHQpLDAsMSl9LGsuZXhwb25lbnRpYXRlZEJ5PWsucG93PWZ1bmN0aW9uKGUsdCl7dmFyIG8sYSx1LGMsZixsLGgscCxkPXRoaXM7aWYoKGU9bmV3IHEoZSkpLmMmJiFlLmlzSW50ZWdlcigpKXRocm93IEVycm9yKGkrIkV4cG9uZW50IG5vdCBhbiBpbnRlZ2VyOiAiK1coZSkpO2lmKG51bGwhPXQmJih0PW5ldyBxKHQpKSxmPWUuZT4xNCwhZC5jfHwhZC5jWzBdfHwxPT1kLmNbMF0mJiFkLmUmJjE9PWQuYy5sZW5ndGh8fCFlLmN8fCFlLmNbMF0pcmV0dXJuIHA9bmV3IHEoTWF0aC5wb3coK1coZCksZj8yLWcoZSk6K1coZSkpKSx0P3AubW9kKHQpOnA7aWYobD1lLnM8MCx0KXtpZih0LmM/IXQuY1swXTohdC5zKXJldHVybiBuZXcgcShOYU4pOyhhPSFsJiZkLmlzSW50ZWdlcigpJiZ0LmlzSW50ZWdlcigpKSYmKGQ9ZC5tb2QodCkpfWVsc2V7aWYoZS5lPjkmJihkLmU+MHx8ZC5lPC0xfHwoMD09ZC5lP2QuY1swXT4xfHxmJiZkLmNbMV0+PTI0ZTc6ZC5jWzBdPDhlMTN8fGYmJmQuY1swXTw9OTk5OTk3NWU3KSkpcmV0dXJuIGM9ZC5zPDAmJmcoZSk/LTA6MCxkLmU+LTEmJihjPTEvYyksbmV3IHEobD8xL2M6Yyk7VSYmKGM9cihVL3MrMikpfWZvcihmPyhvPW5ldyBxKC41KSxsJiYoZS5zPTEpLGg9ZyhlKSk6aD0odT1NYXRoLmFicygrVyhlKSkpJTIscD1uZXcgcShPKTs7KXtpZihoKXtpZighKHA9cC50aW1lcyhkKSkuYylicmVhaztjP3AuYy5sZW5ndGg+YyYmKHAuYy5sZW5ndGg9Yyk6YSYmKHA9cC5tb2QodCkpfWlmKHUpe2lmKDA9PT0odT1uKHUvMikpKWJyZWFrO2g9dSUyfWVsc2UgaWYoSChlPWUudGltZXMobyksZS5lKzEsMSksZS5lPjE0KWg9ZyhlKTtlbHNle2lmKDA9PSh1PStXKGUpKSlicmVhaztoPXUlMn1kPWQudGltZXMoZCksYz9kLmMmJmQuYy5sZW5ndGg+YyYmKGQuYy5sZW5ndGg9Yyk6YSYmKGQ9ZC5tb2QodCkpfXJldHVybiBhP3A6KGwmJihwPU8uZGl2KHApKSx0P3AubW9kKHQpOmM/SChwLFUsUCx2b2lkIDApOnApfSxrLmludGVnZXJWYWx1ZT1mdW5jdGlvbihlKXt2YXIgdD1uZXcgcSh0aGlzKTtyZXR1cm4gbnVsbD09ZT9lPVA6eShlLDAsOCksSCh0LHQuZSsxLGUpfSxrLmlzRXF1YWxUbz1rLmVxPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIDA9PT1kKHRoaXMsbmV3IHEoZSx0KSl9LGsuaXNGaW5pdGU9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuY30say5pc0dyZWF0ZXJUaGFuPWsuZ3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZCh0aGlzLG5ldyBxKGUsdCkpPjB9LGsuaXNHcmVhdGVyVGhhbk9yRXF1YWxUbz1rLmd0ZT1mdW5jdGlvbihlLHQpe3JldHVybiAxPT09KHQ9ZCh0aGlzLG5ldyBxKGUsdCkpKXx8MD09PXR9LGsuaXNJbnRlZ2VyPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmMmJmgodGhpcy5lL3MpPnRoaXMuYy5sZW5ndGgtMn0say5pc0xlc3NUaGFuPWsubHQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZCh0aGlzLG5ldyBxKGUsdCkpPDB9LGsuaXNMZXNzVGhhbk9yRXF1YWxUbz1rLmx0ZT1mdW5jdGlvbihlLHQpe3JldHVybi0xPT09KHQ9ZCh0aGlzLG5ldyBxKGUsdCkpKXx8MD09PXR9LGsuaXNOYU49ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zfSxrLmlzTmVnYXRpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zPDB9LGsuaXNQb3NpdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnM+MH0say5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuYyYmMD09dGhpcy5jWzBdfSxrLm1pbnVzPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbixpLG8sdT10aGlzLGM9dS5zO2lmKHQ9KGU9bmV3IHEoZSx0KSkucywhY3x8IXQpcmV0dXJuIG5ldyBxKE5hTik7aWYoYyE9dClyZXR1cm4gZS5zPS10LHUucGx1cyhlKTt2YXIgZj11LmUvcyxsPWUuZS9zLHA9dS5jLGQ9ZS5jO2lmKCFmfHwhbCl7aWYoIXB8fCFkKXJldHVybiBwPyhlLnM9LXQsZSk6bmV3IHEoZD91Ok5hTik7aWYoIXBbMF18fCFkWzBdKXJldHVybiBkWzBdPyhlLnM9LXQsZSk6bmV3IHEocFswXT91OjM9PVA/LTA6MCl9aWYoZj1oKGYpLGw9aChsKSxwPXAuc2xpY2UoKSxjPWYtbCl7Zm9yKChvPWM8MCk/KGM9LWMsaT1wKToobD1mLGk9ZCksaS5yZXZlcnNlKCksdD1jO3QtLTtpLnB1c2goMCkpO2kucmV2ZXJzZSgpfWVsc2UgZm9yKG49KG89KGM9cC5sZW5ndGgpPCh0PWQubGVuZ3RoKSk/Yzp0LGM9dD0wO3Q8bjt0KyspaWYocFt0XSE9ZFt0XSl7bz1wW3RdPGRbdF07YnJlYWt9aWYobyYmKGk9cCxwPWQsZD1pLGUucz0tZS5zKSwodD0obj1kLmxlbmd0aCktKHI9cC5sZW5ndGgpKT4wKWZvcig7dC0tO3BbcisrXT0wKTtmb3IodD1hLTE7bj5jOyl7aWYocFstLW5dPGRbbl0pe2ZvcihyPW47ciYmIXBbLS1yXTtwW3JdPXQpOy0tcFtyXSxwW25dKz1hfXBbbl0tPWRbbl19Zm9yKDswPT1wWzBdO3Auc3BsaWNlKDAsMSksLS1sKTtyZXR1cm4gcFswXT9HKGUscCxsKTooZS5zPTM9PVA/LTE6MSxlLmM9W2UuZT0wXSxlKX0say5tb2R1bG89ay5tb2Q9ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGk9dGhpcztyZXR1cm4gZT1uZXcgcShlLHQpLCFpLmN8fCFlLnN8fGUuYyYmIWUuY1swXT9uZXcgcShOYU4pOiFlLmN8fGkuYyYmIWkuY1swXT9uZXcgcShpKTooOT09aj8obj1lLnMsZS5zPTEscj1fKGksZSwwLDMpLGUucz1uLHIucyo9bik6cj1fKGksZSwwLGopLChlPWkubWludXMoci50aW1lcyhlKSkpLmNbMF18fDEhPWp8fChlLnM9aS5zKSxlKX0say5tdWx0aXBsaWVkQnk9ay50aW1lcz1mdW5jdGlvbihlLHQpe3ZhciByLG4saSxvLHUsYyxsLHAsZCx5LGcsdixtLGIsXyxTPXRoaXMsRT1TLmMsdz0oZT1uZXcgcShlLHQpKS5jO2lmKCEoRSYmdyYmRVswXSYmd1swXSkpcmV0dXJuIVMuc3x8IWUuc3x8RSYmIUVbMF0mJiF3fHx3JiYhd1swXSYmIUU/ZS5jPWUuZT1lLnM9bnVsbDooZS5zKj1TLnMsRSYmdz8oZS5jPVswXSxlLmU9MCk6ZS5jPWUuZT1udWxsKSxlO2ZvcihuPWgoUy5lL3MpK2goZS5lL3MpLGUucyo9Uy5zLChsPUUubGVuZ3RoKTwoeT13Lmxlbmd0aCkmJihtPUUsRT13LHc9bSxpPWwsbD15LHk9aSksaT1sK3ksbT1bXTtpLS07bS5wdXNoKDApKTtmb3IoYj1hLF89ZixpPXk7LS1pPj0wOyl7Zm9yKHI9MCxnPXdbaV0lXyx2PXdbaV0vX3wwLG89aSsodT1sKTtvPmk7KXI9KChwPWcqKHA9RVstLXVdJV8pKyhjPXYqcCsoZD1FW3VdL198MCkqZyklXypfK21bb10rcikvYnwwKSsoYy9ffDApK3YqZCxtW28tLV09cCViO21bb109cn1yZXR1cm4gcj8rK246bS5zcGxpY2UoMCwxKSxHKGUsbSxuKX0say5uZWdhdGVkPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IHEodGhpcyk7cmV0dXJuIGUucz0tZS5zfHxudWxsLGV9LGsucGx1cz1mdW5jdGlvbihlLHQpe3ZhciByLG49dGhpcyxpPW4ucztpZih0PShlPW5ldyBxKGUsdCkpLnMsIWl8fCF0KXJldHVybiBuZXcgcShOYU4pO2lmKGkhPXQpcmV0dXJuIGUucz0tdCxuLm1pbnVzKGUpO3ZhciBvPW4uZS9zLHU9ZS5lL3MsYz1uLmMsZj1lLmM7aWYoIW98fCF1KXtpZighY3x8IWYpcmV0dXJuIG5ldyBxKGkvMCk7aWYoIWNbMF18fCFmWzBdKXJldHVybiBmWzBdP2U6bmV3IHEoY1swXT9uOjAqaSl9aWYobz1oKG8pLHU9aCh1KSxjPWMuc2xpY2UoKSxpPW8tdSl7Zm9yKGk+MD8odT1vLHI9Zik6KGk9LWkscj1jKSxyLnJldmVyc2UoKTtpLS07ci5wdXNoKDApKTtyLnJldmVyc2UoKX1mb3IoKGk9Yy5sZW5ndGgpLSh0PWYubGVuZ3RoKTwwJiYocj1mLGY9YyxjPXIsdD1pKSxpPTA7dDspaT0oY1stLXRdPWNbdF0rZlt0XStpKS9hfDAsY1t0XT1hPT09Y1t0XT8wOmNbdF0lYTtyZXR1cm4gaSYmKGM9W2ldLmNvbmNhdChjKSwrK3UpLEcoZSxjLHUpfSxrLnByZWNpc2lvbj1rLnNkPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbixpLG89dGhpcztpZihudWxsIT1lJiZlIT09ISFlKXJldHVybiB5KGUsMSxsKSxudWxsPT10P3Q9UDp5KHQsMCw4KSxIKG5ldyBxKG8pLGUsdCk7aWYoIShyPW8uYykpcmV0dXJuIG51bGw7aWYobj0oaT1yLmxlbmd0aC0xKSpzKzEsaT1yW2ldKXtmb3IoO2klMTA9PTA7aS89MTAsbi0tKTtmb3IoaT1yWzBdO2k+PTEwO2kvPTEwLG4rKyk7fXJldHVybiBlJiZvLmUrMT5uJiYobj1vLmUrMSksbn0say5zaGlmdGVkQnk9ZnVuY3Rpb24oZSl7cmV0dXJuIHkoZSwtdSx1KSx0aGlzLnRpbWVzKCIxZSIrZSl9LGsuc3F1YXJlUm9vdD1rLnNxcnQ9ZnVuY3Rpb24oKXt2YXIgZSx0LHIsbixpLG89dGhpcyxhPW8uYyxzPW8ucyx1PW8uZSxjPU4rNCxmPW5ldyBxKCIwLjUiKTtpZigxIT09c3x8IWF8fCFhWzBdKXJldHVybiBuZXcgcSghc3x8czwwJiYoIWF8fGFbMF0pP05hTjphP286MS8wKTtpZigwPT0ocz1NYXRoLnNxcnQoK1cobykpKXx8cz09MS8wPygoKHQ9cChhKSkubGVuZ3RoK3UpJTI9PTAmJih0Kz0iMCIpLHM9TWF0aC5zcXJ0KCt0KSx1PWgoKHUrMSkvMiktKHU8MHx8dSUyKSxyPW5ldyBxKHQ9cz09MS8wPyIxZSIrdToodD1zLnRvRXhwb25lbnRpYWwoKSkuc2xpY2UoMCx0LmluZGV4T2YoImUiKSsxKSt1KSk6cj1uZXcgcShzKyIiKSxyLmNbMF0pZm9yKChzPSh1PXIuZSkrYyk8MyYmKHM9MCk7OylpZihpPXIscj1mLnRpbWVzKGkucGx1cyhfKG8saSxjLDEpKSkscChpLmMpLnNsaWNlKDAscyk9PT0odD1wKHIuYykpLnNsaWNlKDAscykpe2lmKHIuZTx1JiYtLXMsIjk5OTkiIT0odD10LnNsaWNlKHMtMyxzKzEpKSYmKG58fCI0OTk5IiE9dCkpeyt0JiYoK3Quc2xpY2UoMSl8fCI1IiE9dC5jaGFyQXQoMCkpfHwoSChyLHIuZStOKzIsMSksZT0hci50aW1lcyhyKS5lcShvKSk7YnJlYWt9aWYoIW4mJihIKGksaS5lK04rMiwwKSxpLnRpbWVzKGkpLmVxKG8pKSl7cj1pO2JyZWFrfWMrPTQscys9NCxuPTF9cmV0dXJuIEgocixyLmUrTisxLFAsZSl9LGsudG9FeHBvbmVudGlhbD1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsIT1lJiYoeShlLDAsbCksZSsrKSxLKHRoaXMsZSx0LDEpfSxrLnRvRml4ZWQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbCE9ZSYmKHkoZSwwLGwpLGU9ZSt0aGlzLmUrMSksSyh0aGlzLGUsdCl9LGsudG9Gb3JtYXQ9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuLG89dGhpcztpZihudWxsPT1yKW51bGwhPWUmJnQmJiJvYmplY3QiPT10eXBlb2YgdD8ocj10LHQ9bnVsbCk6ZSYmIm9iamVjdCI9PXR5cGVvZiBlPyhyPWUsZT10PW51bGwpOnI9RjtlbHNlIGlmKCJvYmplY3QiIT10eXBlb2Ygcil0aHJvdyBFcnJvcihpKyJBcmd1bWVudCBub3QgYW4gb2JqZWN0OiAiK3IpO2lmKG49by50b0ZpeGVkKGUsdCksby5jKXt2YXIgYSxzPW4uc3BsaXQoIi4iKSx1PStyLmdyb3VwU2l6ZSxjPStyLnNlY29uZGFyeUdyb3VwU2l6ZSxmPXIuZ3JvdXBTZXBhcmF0b3J8fCIiLGw9c1swXSxoPXNbMV0scD1vLnM8MCxkPXA/bC5zbGljZSgxKTpsLHk9ZC5sZW5ndGg7aWYoYyYmKGE9dSx1PWMsYz1hLHktPWEpLHU+MCYmeT4wKXtmb3IoYT15JXV8fHUsbD1kLnN1YnN0cigwLGEpO2E8eTthKz11KWwrPWYrZC5zdWJzdHIoYSx1KTtjPjAmJihsKz1mK2Quc2xpY2UoYSkpLHAmJihsPSItIitsKX1uPWg/bCsoci5kZWNpbWFsU2VwYXJhdG9yfHwiIikrKChjPStyLmZyYWN0aW9uR3JvdXBTaXplKT9oLnJlcGxhY2UobmV3IFJlZ0V4cCgiXFxkeyIrYysifVxcQiIsImciKSwiJCYiKyhyLmZyYWN0aW9uR3JvdXBTZXBhcmF0b3J8fCIiKSk6aCk6bH1yZXR1cm4oci5wcmVmaXh8fCIiKStuKyhyLnN1ZmZpeHx8IiIpfSxrLnRvRnJhY3Rpb249ZnVuY3Rpb24oZSl7dmFyIHQscixuLG8sYSx1LGYsbCxoLGQseSxnLHY9dGhpcyxtPXYuYztpZihudWxsIT1lJiYoIShmPW5ldyBxKGUpKS5pc0ludGVnZXIoKSYmKGYuY3x8MSE9PWYucyl8fGYubHQoTykpKXRocm93IEVycm9yKGkrIkFyZ3VtZW50ICIrKGYuaXNJbnRlZ2VyKCk/Im91dCBvZiByYW5nZTogIjoibm90IGFuIGludGVnZXI6ICIpK1coZikpO2lmKCFtKXJldHVybiBuZXcgcSh2KTtmb3IodD1uZXcgcShPKSxoPXI9bmV3IHEoTyksbj1sPW5ldyBxKE8pLGc9cChtKSxhPXQuZT1nLmxlbmd0aC12LmUtMSx0LmNbMF09Y1sodT1hJXMpPDA/cyt1OnVdLGU9IWV8fGYuY29tcGFyZWRUbyh0KT4wP2E+MD90Omg6Zix1PUwsTD0xLzAsZj1uZXcgcShnKSxsLmNbMF09MDtkPV8oZix0LDAsMSksMSE9KG89ci5wbHVzKGQudGltZXMobikpKS5jb21wYXJlZFRvKGUpOylyPW4sbj1vLGg9bC5wbHVzKGQudGltZXMobz1oKSksbD1vLHQ9Zi5taW51cyhkLnRpbWVzKG89dCkpLGY9bztyZXR1cm4gbz1fKGUubWludXMociksbiwwLDEpLGw9bC5wbHVzKG8udGltZXMoaCkpLHI9ci5wbHVzKG8udGltZXMobikpLGwucz1oLnM9di5zLHk9XyhoLG4sYSo9MixQKS5taW51cyh2KS5hYnMoKS5jb21wYXJlZFRvKF8obCxyLGEsUCkubWludXModikuYWJzKCkpPDE/W2gsbl06W2wscl0sTD11LHl9LGsudG9OdW1iZXI9ZnVuY3Rpb24oKXtyZXR1cm4rVyh0aGlzKX0say50b1ByZWNpc2lvbj1mdW5jdGlvbihlLHQpe3JldHVybiBudWxsIT1lJiZ5KGUsMSxsKSxLKHRoaXMsZSx0LDIpfSxrLnRvU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciB0LHI9dGhpcyxuPXIucyxpPXIuZTtyZXR1cm4gbnVsbD09PWk/bj8odD0iSW5maW5pdHkiLG48MCYmKHQ9Ii0iK3QpKTp0PSJOYU4iOihudWxsPT1lP3Q9aTw9Unx8aT49Qj92KHAoci5jKSxpKTptKHAoci5jKSxpLCIwIik6MTA9PT1lP3Q9bShwKChyPUgobmV3IHEociksTitpKzEsUCkpLmMpLHIuZSwiMCIpOih5KGUsMixWLmxlbmd0aCwiQmFzZSIpLHQ9UyhtKHAoci5jKSxpLCIwIiksMTAsZSxuLCEwKSksbjwwJiZyLmNbMF0mJih0PSItIit0KSksdH0say52YWx1ZU9mPWsudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyl9LGsuX2lzQmlnTnVtYmVyPSEwLGtbU3ltYm9sLnRvU3RyaW5nVGFnXT0iQmlnTnVtYmVyIixrW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIildPWsudmFsdWVPZixudWxsIT1iJiZxLnNldChiKSxxfSgpLF89ZnVuY3Rpb24oKXtyZXR1cm4oXz1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQscj0xLG49YXJndW1lbnRzLmxlbmd0aDtyPG47cisrKWZvcih2YXIgaSBpbiB0PWFyZ3VtZW50c1tyXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxpKSYmKGVbaV09dFtpXSk7cmV0dXJuIGV9KS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5mb3JtYXQ9ZS5ERUZBVUxUX0ZPUk1BVCxiLmNvbmZpZyh7Rk9STUFUOnRoaXMuZm9ybWF0fSl9cmV0dXJuIGUucHJvdG90eXBlLnNldD1mdW5jdGlvbihlKXsiRk9STUFUImluIGUmJih0aGlzLmZvcm1hdD1fKHt9LHRoaXMuZm9ybWF0LGUuRk9STUFUKSxlLkZPUk1BVD10aGlzLmZvcm1hdCksYi5jb25maWcoZSl9LGUuREVGQVVMVF9GT1JNQVQ9e3ByZWZpeDoiIixkZWNpbWFsU2VwYXJhdG9yOiIuIixncm91cFNlcGFyYXRvcjoiLCIsZ3JvdXBTaXplOjMsc2Vjb25kYXJ5R3JvdXBTaXplOjAsZnJhY3Rpb25Hcm91cFNlcGFyYXRvcjoiICIsZnJhY3Rpb25Hcm91cFNpemU6MCxzdWZmaXg6IiJ9LGV9KCk7ZS5CaWdOdW1iZXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpeyJvYmplY3QiPT10eXBlb2YgdCYmZS5pc0JpZ051bWJlcih0KT90aGlzLmJuPXQuYm4ucGx1cygwKTp0aGlzLmJuPWUudG9CaWdOdW1iZXJKcyh0KX1yZXR1cm4gZS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGUodGhpcyl9LGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUodGhpcy5ibi5wbHVzKGUudG9CaWdOdW1iZXJKcyh0KSkpfSxlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHRoaXMuYm4ubWludXMoZS50b0JpZ051bWJlckpzKHQpKSl9LGUucHJvdG90eXBlLm11bD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUodGhpcy5ibi50aW1lcyhlLnRvQmlnTnVtYmVySnModCkpKX0sZS5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSh0aGlzLmJuLmRpdihlLnRvQmlnTnVtYmVySnModCkpKX0sZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSh0aGlzLmJuLnBvdyhlLnRvQmlnTnVtYmVySnModCkpKX0sZS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBlKHRoaXMuYm4uYWJzKCkpfSxlLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHRoaXMuYm4ubW9kKGUudG9CaWdOdW1iZXJKcyh0KSkpfSxlLnByb3RvdHlwZS5yb3VuZFRvPWZ1bmN0aW9uKHQscil7cmV0dXJuIHZvaWQgMD09PXQmJih0PTApLHZvaWQgMD09PXImJihyPTQpLG5ldyBlKHRoaXMuYm4uZHAodHx8MCxyKSl9LGUucHJvdG90eXBlLmVxPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmJuLmVxKGUudG9CaWdOdW1iZXJKcyh0KSl9LGUucHJvdG90eXBlLmx0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmJuLmx0KGUudG9CaWdOdW1iZXJKcyh0KSl9LGUucHJvdG90eXBlLmd0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmJuLmd0KGUudG9CaWdOdW1iZXJKcyh0KSl9LGUucHJvdG90eXBlLmx0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ibi5sdGUoZS50b0JpZ051bWJlckpzKHQpKX0sZS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmJuLmd0ZShlLnRvQmlnTnVtYmVySnModCkpfSxlLnByb3RvdHlwZS5pc05hTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLmlzTmFOKCl9LGUucHJvdG90eXBlLmlzRmluaXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYm4uaXNGaW5pdGUoKX0sZS5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGUucHJvdG90eXBlLmlzUG9zaXRpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ndCgwKX0sZS5wcm90b3R5cGUuaXNOZWdhdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmx0KDApfSxlLnByb3RvdHlwZS5pc0ludD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLmlzSW50ZWdlcigpfSxlLnByb3RvdHlwZS5nZXREZWNpbWFsc0NvdW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYm4uZHAoKX0sZS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kKDIpLmVxKDApfSxlLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiF0aGlzLmlzRXZlbigpfSxlLnByb3RvdHlwZS50b0J5dGVzPWZ1bmN0aW9uKCl7aWYoIXRoaXMuaXNJbnQoKSl0aHJvdyBuZXcgRXJyb3IoIkNhbnQgY3JlYXRlIGJ5dGVzIGZyb20gbnVtYmVyIHdpdGggZGVjaW1hbHMhIik7dmFyIHQ9dGhpcy5pc05lZ2F0aXZlKCkscj10PyIxIjoiMCIsbj1lLl90b0xlbmd0aCg2NCx0aGlzLmJuLnBsdXMocikuYWJzKCkudG9TdHJpbmcoMikucmVwbGFjZSgiLSIsIiIpKS5zcGxpdCgiIiksaT1bXTtkb3tpLnB1c2gocGFyc2VJbnQobi5zcGxpY2UoMCw4KS5qb2luKCIiKSwyKSl9d2hpbGUobi5sZW5ndGgpO3JldHVybiB0P1VpbnQ4QXJyYXkuZnJvbShpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gMjU1LWV9KSk6VWludDhBcnJheS5mcm9tKGkpfSxlLnByb3RvdHlwZS50b0Zvcm1hdD1mdW5jdGlvbihlLHQscil7cmV0dXJuIHRoaXMuYm4udG9Gb3JtYXQoZSx0LHIpfSxlLnByb3RvdHlwZS50b0ZpeGVkPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWU/dGhpcy5ibi50b0ZpeGVkKCk6dGhpcy5ibi50b0ZpeGVkKGUsdCl9LGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9GaXhlZCgpfSxlLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLnRvTnVtYmVyKCl9LGUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLnRvRml4ZWQoKX0sZS5wcm90b3R5cGUudmFsdWVPZj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJuLnZhbHVlT2YoKX0sZS5mcm9tQnl0ZXM9ZnVuY3Rpb24odCl7aWYoOCE9PXQubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiV3JvbmcgYnl0ZXMgbGVuZ3RoISBOZWVkIDggYnl0ZXMhIik7dmFyIHI9dFswXT4xMjcsbj1BcnJheS5mcm9tKHQpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gcj8yNTUtZTplfSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlLl90b0xlbmd0aCg4LHQudG9TdHJpbmcoMikpfSkuam9pbigiIiksaT1uZXcgZShuZXcgYihuLDIpKTtyZXR1cm4gcj9pLm11bCgtMSkuc3ViKDEpOml9LGUubWF4PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKXRbcl09YXJndW1lbnRzW3JdO3JldHVybiBlLnRvQmlnTnVtYmVyKHQpLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlLmd0ZSh0KT9lOnR9KX0sZS5taW49ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10scj0wO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspdFtyXT1hcmd1bWVudHNbcl07cmV0dXJuIGUudG9CaWdOdW1iZXIodCkucmVkdWNlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUubHRlKHQpP2U6dH0pfSxlLnN1bT1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gZS50b0JpZ051bWJlcih0KS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5hZGQodCl9KX0sZS5pc0JpZ051bWJlcj1mdW5jdGlvbih0KXtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0JiYodCBpbnN0YW5jZW9mIGV8fE9iamVjdC5lbnRyaWVzKGUucHJvdG90eXBlKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIl8iIT09ZVswXS5jaGFyQXQoMCl9KS5ldmVyeShmdW5jdGlvbihlKXt2YXIgcj1lWzBdLG49ZVsxXTtyZXR1cm4gciBpbiB0JiZ0eXBlb2Ygbj09dHlwZW9mIHRbcl19KSl9LGUudG9CaWdOdW1iZXI9ZnVuY3Rpb24odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBlKHQpfSk6bmV3IGUodCl9LGUudG9CaWdOdW1iZXJKcz1mdW5jdGlvbih0KXtyZXR1cm4gYi5pc0JpZ051bWJlcih0KT90OnQgaW5zdGFuY2VvZiBlP3QuYm46bmV3IGIodCl9LGUuX3RvTGVuZ3RoPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBBcnJheShlKS5maWxsKCIwIiwwLGUpLmNvbmNhdCh0LnNwbGl0KCIiKSkuc2xpY2UoLWUpLmpvaW4oIiIpfSxlLk1BWF9WQUxVRT1uZXcgZSgiOTIyMzM3MjAzNjg1NDc3NTgwNyIpLGUuTUlOX1ZBTFVFPW5ldyBlKCItOTIyMzM3MjAzNjg1NDc3NTgwOCIpLGUuTUFYX1VOU0lHTkVEX1ZBTFVFPW5ldyBlKCIxODQ0Njc0NDA3MzcwOTU1MTYxNSIpLGUuY29uZmlnPW5ldyBTLGV9KCksZnVuY3Rpb24oZSl7IWZ1bmN0aW9uKGUpe2VbZS5ST1VORF9VUD0wXT0iUk9VTkRfVVAiLGVbZS5ST1VORF9ET1dOPTFdPSJST1VORF9ET1dOIixlW2UuUk9VTkRfQ0VJTD0yXT0iUk9VTkRfQ0VJTCIsZVtlLlJPVU5EX0ZMT09SPTNdPSJST1VORF9GTE9PUiIsZVtlLlJPVU5EX0hBTEZfVVA9NF09IlJPVU5EX0hBTEZfVVAiLGVbZS5ST1VORF9IQUxGX0RPV049NV09IlJPVU5EX0hBTEZfRE9XTiIsZVtlLlJPVU5EX0hBTEZfRVZFTj02XT0iUk9VTkRfSEFMRl9FVkVOIixlW2UuUk9VTkRfSEFMRl9DRUlMPTddPSJST1VORF9IQUxGX0NFSUwiLGVbZS5ST1VORF9IQUxGX0ZMT09SPThdPSJST1VORF9IQUxGX0ZMT09SIn0oZS5ST1VORF9NT0RFfHwoZS5ST1VORF9NT0RFPXt9KSl9KGUuQmlnTnVtYmVyfHwoZS5CaWdOdW1iZXI9e30pKTt2YXIgRT1lLkJpZ051bWJlcjtlLmRlZmF1bHQ9RSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KHQpfSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4ib2JqZWN0Ij09PXR5cGVvZiBlP251bGwhPT1lOiJmdW5jdGlvbiI9PT10eXBlb2YgZX19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJue2VudW1lcmFibGU6ISgxJmUpLGNvbmZpZ3VyYWJsZTohKDImZSksd3JpdGFibGU6ISg0JmUpLHZhbHVlOnR9fX0sZnVuY3Rpb24oZSx0KXt2YXIgcj0wLG49TWF0aC5yYW5kb20oKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIlN5bWJvbCgiLmNvbmNhdCh2b2lkIDA9PT1lPyIiOmUsIilfIiwoKytyK24pLnRvU3RyaW5nKDM2KSl9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz0hMX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNjApLGk9TWF0aC5tYXgsbz1NYXRoLm1pbjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oZT1uKGUpKTwwP2koZSt0LDApOm8oZSx0KX19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEyKSxpPXIoNDI0KSxvPXIoMjU1KSxhPXIoMjU0KSgiSUVfUFJPVE8iKSxzPWZ1bmN0aW9uKCl7fSx1PWZ1bmN0aW9uKCl7dmFyIGUsdD1yKDI0OSkoImlmcmFtZSIpLG49by5sZW5ndGg7Zm9yKHQuc3R5bGUuZGlzcGxheT0ibm9uZSIscigyNTEpLmFwcGVuZENoaWxkKHQpLHQuc3JjPSJqYXZhc2NyaXB0OiIsKGU9dC5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCksZS53cml0ZSgiPHNjcmlwdD5kb2N1bWVudC5GPU9iamVjdDxcL3NjcmlwdD4iKSxlLmNsb3NlKCksdT1lLkY7bi0tOylkZWxldGUgdS5wcm90b3R5cGVbb1tuXV07cmV0dXJuIHUoKX07ZS5leHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKGUsdCl7dmFyIHI7cmV0dXJuIG51bGwhPT1lPyhzLnByb3RvdHlwZT1uKGUpLHI9bmV3IHMscy5wcm90b3R5cGU9bnVsbCxyW2FdPWUpOnI9dSgpLHZvaWQgMD09PXQ/cjppKHIsdCl9fSxmdW5jdGlvbihlLHQscil7dmFyIG49cig0MjMpLGk9cigyNTUpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7dC5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXtyZXR1cm4gbihlLGkpfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNTApLGk9cigzNiksbz1yKDI1NCkoIklFX1BST1RPIiksYT1PYmplY3QucHJvdG90eXBlO2UuZXhwb3J0cz1PYmplY3QuZ2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKGUpe3JldHVybiBlPWkoZSksbihlLG8pP2Vbb106ImZ1bmN0aW9uIj09dHlwZW9mIGUuY29uc3RydWN0b3ImJmUgaW5zdGFuY2VvZiBlLmNvbnN0cnVjdG9yP2UuY29uc3RydWN0b3IucHJvdG90eXBlOmUgaW5zdGFuY2VvZiBPYmplY3Q/YTpudWxsfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMjEpKCJ1bnNjb3BhYmxlcyIpLGk9QXJyYXkucHJvdG90eXBlO3ZvaWQgMD09aVtuXSYmcig1NCkoaSxuLHt9KSxlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aVtuXVtlXT0hMH19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZighbihlKXx8ZS5fdCE9PXQpdGhyb3cgVHlwZUVycm9yKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrdCsiIHJlcXVpcmVkISIpO3JldHVybiBlfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTAwNyksaT1yKDEwMTApO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciByPWkoZSx0KTtyZXR1cm4gbihyKT9yOnZvaWQgMH19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOnIsZW51bWVyYWJsZTohMA=="
}

github/deemru/w8io/169f3d6 
2.15 ms