3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ · data · qwer?polyfills-es5.js?6?1
{
"qwer?polyfills-es5.js?6?1": "base64:PWIucHJvY2VzcyYmIltvYmplY3QgcHJvY2Vzc10iPT09e30udG9TdHJpbmcuY2FsbChiLnByb2Nlc3MpLEU9IVMmJiF4JiYhKCFnfHwheS5IVE1MRWxlbWVudCksTz12b2lkIDAhPT1iLnByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwoYi5wcm9jZXNzKSYmIXgmJiEoIWd8fCF5LkhUTUxFbGVtZW50KSxUPXt9LEk9ZnVuY3Rpb24odCl7aWYodD10fHxiLmV2ZW50KXt2YXIgZT1UW3QudHlwZV07ZXx8KGU9VFt0LnR5cGVdPWQoIk9OX1BST1BFUlRZIit0LnR5cGUpKTt2YXIgbixyPXRoaXN8fHQudGFyZ2V0fHxiLG89cltlXTtpZihFJiZyPT09eSYmImVycm9yIj09PXQudHlwZSl7dmFyIGk9dDshMD09PShuPW8mJm8uY2FsbCh0aGlzLGkubWVzc2FnZSxpLmZpbGVuYW1lLGkubGluZW5vLGkuY29sbm8saS5lcnJvcikpJiZ0LnByZXZlbnREZWZhdWx0KCl9ZWxzZSBudWxsPT0obj1vJiZvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl8fG58fHQucHJldmVudERlZmF1bHQoKTtyZXR1cm4gbn19O2Z1bmN0aW9uIGoobixyLG8pe3ZhciBpPXQobixyKTtpZighaSYmbyYmdChvLHIpJiYoaT17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxpJiZpLmNvbmZpZ3VyYWJsZSl7dmFyIGE9ZCgib24iK3IrInBhdGNoZWQiKTtpZighbi5oYXNPd25Qcm9wZXJ0eShhKXx8IW5bYV0pe2RlbGV0ZSBpLndyaXRhYmxlLGRlbGV0ZSBpLnZhbHVlO3ZhciBjPWkuZ2V0LHU9aS5zZXQscz1yLnN1YnN0cigyKSxmPVRbc107Znx8KGY9VFtzXT1kKCJPTl9QUk9QRVJUWSIrcykpLGkuc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7ZXx8biE9PWJ8fChlPWIpLGUmJihlW2ZdJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIocyxJKSx1JiZ1LmFwcGx5KGUsayksImZ1bmN0aW9uIj09dHlwZW9mIHQ/KGVbZl09dCxlLmFkZEV2ZW50TGlzdGVuZXIocyxJLCExKSk6ZVtmXT1udWxsKX0saS5nZXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHR8fG4hPT1ifHwodD1iKSwhdClyZXR1cm4gbnVsbDt2YXIgZT10W2ZdO2lmKGUpcmV0dXJuIGU7aWYoYyl7dmFyIG89YyYmYy5jYWxsKHRoaXMpO2lmKG8pcmV0dXJuIGkuc2V0LmNhbGwodGhpcyxvKSwiZnVuY3Rpb24iPT10eXBlb2YgdFttXSYmdC5yZW1vdmVBdHRyaWJ1dGUociksb31yZXR1cm4gbnVsbH0sZShuLHIsaSksblthXT0hMH19fWZ1bmN0aW9uIE0odCxlLG4pe2lmKGUpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspaih0LCJvbiIrZVtyXSxuKTtlbHNle3ZhciBvPVtdO2Zvcih2YXIgaSBpbiB0KSJvbiI9PWkuc3Vic3RyKDAsMikmJm8ucHVzaChpKTtmb3IodmFyIGE9MDthPG8ubGVuZ3RoO2ErKylqKHQsb1thXSxuKX19dmFyIFA9ZCgib3JpZ2luYWxJbnN0YW5jZSIpO2Z1bmN0aW9uIEQodCl7dmFyIG49Ylt0XTtpZihuKXtiW2QodCldPW4sYlt0XT1mdW5jdGlvbigpe3ZhciBlPV8oYXJndW1lbnRzLHQpO3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAwOnRoaXNbUF09bmV3IG47YnJlYWs7Y2FzZSAxOnRoaXNbUF09bmV3IG4oZVswXSk7YnJlYWs7Y2FzZSAyOnRoaXNbUF09bmV3IG4oZVswXSxlWzFdKTticmVhaztjYXNlIDM6dGhpc1tQXT1uZXcgbihlWzBdLGVbMV0sZVsyXSk7YnJlYWs7Y2FzZSA0OnRoaXNbUF09bmV3IG4oZVswXSxlWzFdLGVbMl0sZVszXSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkFyZyBsaXN0IHRvbyBsb25nLiIpfX0sTChiW3RdLG4pO3ZhciByLG89bmV3IG4oKGZ1bmN0aW9uKCl7fSkpO2ZvcihyIGluIG8pIlhNTEh0dHBSZXF1ZXN0Ij09PXQmJiJyZXNwb25zZUJsb2IiPT09cnx8ZnVuY3Rpb24obil7ImZ1bmN0aW9uIj09dHlwZW9mIG9bbl0/Ylt0XS5wcm90b3R5cGVbbl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tQXVtuXS5hcHBseSh0aGlzW1BdLGFyZ3VtZW50cyl9OmUoYlt0XS5wcm90b3R5cGUsbix7c2V0OmZ1bmN0aW9uKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBlPyh0aGlzW1BdW25dPWgoZSx0KyIuIituKSxMKHRoaXNbUF1bbl0sZSkpOnRoaXNbUF1bbl09ZX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbUF1bbl19fSl9KHIpO2ZvcihyIGluIG4pInByb3RvdHlwZSIhPT1yJiZuLmhhc093blByb3BlcnR5KHIpJiYoYlt0XVtyXT1uW3JdKX19dmFyIFI9ITE7ZnVuY3Rpb24gTihlLHIsbyl7Zm9yKHZhciBpPWU7aSYmIWkuaGFzT3duUHJvcGVydHkocik7KWk9bihpKTshaSYmZVtyXSYmKGk9ZSk7dmFyIGEsYyx1PWQocikscz1udWxsO2lmKGkmJiEocz1pW3VdKSYmKHM9aVt1XT1pW3JdLHcoaSYmdChpLHIpKSkpe3ZhciBmPW8ocyx1LHIpO2lbcl09ZnVuY3Rpb24oKXtyZXR1cm4gZih0aGlzLGFyZ3VtZW50cyl9LEwoaVtyXSxzKSxSJiYoYT1zLGM9aVtyXSwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhhKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsdCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsdCx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGFbdF19LHNldDpmdW5jdGlvbihuKXsoIWV8fGUud3JpdGFibGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnNldCkmJihhW3RdPW4pfSxlbnVtZXJhYmxlOiFlfHxlLmVudW1lcmFibGUsY29uZmlndXJhYmxlOiFlfHxlLmNvbmZpZ3VyYWJsZX0pfSkpKX1yZXR1cm4gc31mdW5jdGlvbiBBKHQsZSxuKXt2YXIgcj1udWxsO2Z1bmN0aW9uIG8odCl7dmFyIGU9dC5kYXRhO3JldHVybiBlLmFyZ3NbZS5jYklkeF09ZnVuY3Rpb24oKXt0Lmludm9rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHIuYXBwbHkoZS50YXJnZXQsZS5hcmdzKSx0fXI9Tih0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3ZhciBpPW4oZSxyKTtyZXR1cm4gaS5jYklkeD49MCYmImZ1bmN0aW9uIj09dHlwZW9mIHJbaS5jYklkeF0/dihpLm5hbWUscltpLmNiSWR4XSxpLG8pOnQuYXBwbHkoZSxyKX19KSl9ZnVuY3Rpb24gTCh0LGUpe3RbZCgiT3JpZ2luYWxEZWxlZ2F0ZSIpXT1lfXZhciBGPSExLHo9ITE7ZnVuY3Rpb24gWigpe3RyeXt2YXIgdD15Lm5hdmlnYXRvci51c2VyQWdlbnQ7aWYoLTEhPT10LmluZGV4T2YoIk1TSUUgIil8fC0xIT09dC5pbmRleE9mKCJUcmlkZW50LyIpKXJldHVybiEwfWNhdGNoKGUpe31yZXR1cm4hMX1mdW5jdGlvbiBDKCl7aWYoRilyZXR1cm4gejtGPSEwO3RyeXt2YXIgdD15Lm5hdmlnYXRvci51c2VyQWdlbnQ7LTE9PT10LmluZGV4T2YoIk1TSUUgIikmJi0xPT09dC5pbmRleE9mKCJUcmlkZW50LyIpJiYtMT09PXQuaW5kZXhPZigiRWRnZS8iKXx8KHo9ITApfWNhdGNoKGUpe31yZXR1cm4gen1ab25lLl9fbG9hZF9wYXRjaCgidG9TdHJpbmciLChmdW5jdGlvbih0KXt2YXIgZT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsbj1kKCJPcmlnaW5hbERlbGVnYXRlIikscj1kKCJQcm9taXNlIiksbz1kKCJFcnJvciIpLGk9ZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcyl7dmFyIGk9dGhpc1tuXTtpZihpKXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBpP2UuY2FsbChpKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaSk7aWYodGhpcz09PVByb21pc2Upe3ZhciBhPXRbcl07aWYoYSlyZXR1cm4gZS5jYWxsKGEpfWlmKHRoaXM9PT1FcnJvcil7dmFyIGM9dFtvXTtpZihjKXJldHVybiBlLmNhbGwoYyl9fXJldHVybiBlLmNhbGwodGhpcyl9O2lbbl09ZSxGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9aTt2YXIgYT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO09iamVjdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIFByb21pc2U/IltvYmplY3QgUHJvbWlzZV0iOmEuY2FsbCh0aGlzKX19KSk7dmFyIFc9ITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cpdHJ5e3ZhciBHPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe1c9ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLEcsRyksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLEcsRyl9Y2F0Y2goRXQpe1c9ITF9dmFyIFU9e3VzZUc6ITB9LEg9e30sQj17fSxLPS9eX196b25lX3N5bWJvbF9fKFx3KykodHJ1ZXxmYWxzZSkkLyxWPSJfX3pvbmVfc3ltYm9sX19wcm9wYWdhdGlvblN0b3BwZWQiO2Z1bmN0aW9uIFgodCxlLHIpe3ZhciBvPXImJnIuYWRkfHxhLGk9ciYmci5ybXx8Yyx1PXImJnIubGlzdGVuZXJzfHwiZXZlbnRMaXN0ZW5lcnMiLHM9ciYmci5ybUFsbHx8InJlbW92ZUFsbExpc3RlbmVycyIsaD1kKG8pLHY9Ii4iK28rIjoiLGc9InByZXBlbmRMaXN0ZW5lciIseT0iLiIrZysiOiIsYj1mdW5jdGlvbih0LGUsbil7aWYoIXQuaXNSZW1vdmVkKXt2YXIgcj10LmNhbGxiYWNrOyJvYmplY3QiPT10eXBlb2YgciYmci5oYW5kbGVFdmVudCYmKHQuY2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIHIuaGFuZGxlRXZlbnQodCl9LHQub3JpZ2luYWxEZWxlZ2F0ZT1yKSx0Lmludm9rZSh0LGUsW25dKTt2YXIgbz10Lm9wdGlvbnM7byYmIm9iamVjdCI9PXR5cGVvZiBvJiZvLm9uY2UmJmVbaV0uY2FsbChlLG4udHlwZSx0Lm9yaWdpbmFsRGVsZWdhdGU/dC5vcmlnaW5hbERlbGVnYXRlOnQuY2FsbGJhY2ssbyl9fSxtPWZ1bmN0aW9uKGUpe2lmKGU9ZXx8dC5ldmVudCl7dmFyIG49dGhpc3x8ZS50YXJnZXR8fHQscj1uW0hbZS50eXBlXVtsXV07aWYocilpZigxPT09ci5sZW5ndGgpYihyWzBdLG4sZSk7ZWxzZSBmb3IodmFyIG89ci5zbGljZSgpLGk9MDtpPG8ubGVuZ3RoJiYoIWV8fCEwIT09ZVtWXSk7aSsrKWIob1tpXSxuLGUpfX0saz1mdW5jdGlvbihlKXtpZihlPWV8fHQuZXZlbnQpe3ZhciBuPXRoaXN8fGUudGFyZ2V0fHx0LHI9bltIW2UudHlwZV1bZl1dO2lmKHIpaWYoMT09PXIubGVuZ3RoKWIoclswXSxuLGUpO2Vsc2UgZm9yKHZhciBvPXIuc2xpY2UoKSxpPTA7aTxvLmxlbmd0aCYmKCFlfHwhMCE9PWVbVl0pO2krKyliKG9baV0sbixlKX19O2Z1bmN0aW9uIF8oZSxyKXtpZighZSlyZXR1cm4hMTt2YXIgYT0hMDtyJiZ2b2lkIDAhPT1yLnVzZUcmJihhPXIudXNlRyk7dmFyIGM9ciYmci52aCxiPSEwO3ImJnZvaWQgMCE9PXIuY2hrRHVwJiYoYj1yLmNoa0R1cCk7dmFyIF89ITE7ciYmdm9pZCAwIT09ci5ydCYmKF89ci5ydCk7Zm9yKHZhciB3PWU7dyYmIXcuaGFzT3duUHJvcGVydHkobyk7KXc9bih3KTtpZighdyYmZVtvXSYmKHc9ZSksIXcpcmV0dXJuITE7aWYod1toXSlyZXR1cm4hMTt2YXIgeCxFPXImJnIuZXZlbnROYW1lVG9TdHJpbmcsTz17fSxUPXdbaF09d1tvXSxJPXdbZChpKV09d1tpXSxqPXdbZCh1KV09d1t1XSxNPXdbZChzKV09d1tzXTtmdW5jdGlvbiBQKHQpe1d8fCJib29sZWFuIj09dHlwZW9mIE8ub3B0aW9uc3x8bnVsbD09Ty5vcHRpb25zfHwodC5vcHRpb25zPSEhTy5vcHRpb25zLmNhcHR1cmUsTy5vcHRpb25zPXQub3B0aW9ucyl9ciYmci5wcmVwZW5kJiYoeD13W2Qoci5wcmVwZW5kKV09d1tyLnByZXBlbmRdKTt2YXIgRD1hP2Z1bmN0aW9uKHQpe2lmKCFPLmlzRXhpc3RpbmcpcmV0dXJuIFAodCksVC5jYWxsKE8udGFyZ2V0LE8uZXZlbnROYW1lLE8uY2FwdHVyZT9rOm0sTy5vcHRpb25zKX06ZnVuY3Rpb24odCl7cmV0dXJuIFAodCksVC5jYWxsKE8udGFyZ2V0LE8uZXZlbnROYW1lLHQuaW52b2tlLE8ub3B0aW9ucyl9LFI9YT9mdW5jdGlvbih0KXtpZighdC5pc1JlbW92ZWQpe3ZhciBlPUhbdC5ldmVudE5hbWVdLG49dm9pZCAwO2UmJihuPWVbdC5jYXB0dXJlP2Y6bF0pO3ZhciByPW4mJnQudGFyZ2V0W25dO2lmKHIpZm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspaWYocltvXT09PXQpe3Iuc3BsaWNlKG8sMSksdC5pc1JlbW92ZWQ9ITAsMD09PXIubGVuZ3RoJiYodC5hbGxSZW1vdmVkPSEwLHQudGFyZ2V0W25dPW51bGwpO2JyZWFrfX1pZih0LmFsbFJlbW92ZWQpcmV0dXJuIEkuY2FsbCh0LnRhcmdldCx0LmV2ZW50TmFtZSx0LmNhcHR1cmU/azptLHQub3B0aW9ucyl9OmZ1bmN0aW9uKHQpe3JldHVybiBJLmNhbGwodC50YXJnZXQsdC5ldmVudE5hbWUsdC5pbnZva2UsdC5vcHRpb25zKX0sTj1yJiZyLmRpZmY/ci5kaWZmOmZ1bmN0aW9uKHQsZSl7dmFyIG49dHlwZW9mIGU7cmV0dXJuImZ1bmN0aW9uIj09PW4mJnQuY2FsbGJhY2s9PT1lfHwib2JqZWN0Ij09PW4mJnQub3JpZ2luYWxEZWxlZ2F0ZT09PWV9LEE9Wm9uZVtab25lLl9fc3ltYm9sX18oIkJMQUNLX0xJU1RFRF9FVkVOVFMiKV0sRj1mdW5jdGlvbihlLG4scixvLGksdSl7cmV0dXJuIHZvaWQgMD09PWkmJihpPSExKSx2b2lkIDA9PT11JiYodT0hMSksZnVuY3Rpb24oKXt2YXIgcz10aGlzfHx0LGg9YXJndW1lbnRzWzBdLHY9YXJndW1lbnRzWzFdO2lmKCF2KXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihTJiYidW5jYXVnaHRFeGNlcHRpb24iPT09aClyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGQ9ITE7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHYpe2lmKCF2LmhhbmRsZUV2ZW50KXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtkPSEwfWlmKCFjfHxjKGUsdixzLGFyZ3VtZW50cykpe3ZhciBnLHk9YXJndW1lbnRzWzJdO2lmKEEpZm9yKHZhciBtPTA7bTxBLmxlbmd0aDttKyspaWYoaD09PUFbbV0pcmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBrPSExO3ZvaWQgMD09PXk/Zz0hMTohMD09PXk/Zz0hMDohMT09PXk/Zz0hMTooZz0hIXkmJiEheS5jYXB0dXJlLGs9ISF5JiYhIXkub25jZSk7dmFyIF8sdz1ab25lLmN1cnJlbnQseD1IW2hdO2lmKHgpXz14W2c/ZjpsXTtlbHNle3ZhciBUPShFP0UoaCk6aCkrbCxJPShFP0UoaCk6aCkrZixqPXArVCxNPXArSTtIW2hdPXt9LEhbaF1bbF09aixIW2hdW2ZdPU0sXz1nP006an12YXIgUCxEPXNbX10sUj0hMTtpZihEKXtpZihSPSEwLGIpZm9yKG09MDttPEQubGVuZ3RoO20rKylpZihOKERbbV0sdikpcmV0dXJufWVsc2UgRD1zW19dPVtdO3ZhciBMPXMuY29uc3RydWN0b3IubmFtZSxGPUJbTF07RiYmKFA9RltoXSksUHx8KFA9TCtuKyhFP0UoaCk6aCkpLE8ub3B0aW9ucz15LGsmJihPLm9wdGlvbnMub25jZT0hMSksTy50YXJnZXQ9cyxPLmNhcHR1cmU9ZyxPLmV2ZW50TmFtZT1oLE8uaXNFeGlzdGluZz1SO3ZhciB6PWE/VTp2b2lkIDA7eiYmKHoudGFza0RhdGE9Tyk7dmFyIFo9dy5zY2hlZHVsZUV2ZW50VGFzayhQLHYseixyLG8pO3JldHVybiBPLnRhcmdldD1udWxsLHomJih6LnRhc2tEYXRhPW51bGwpLGsmJih5Lm9uY2U9ITApLChXfHwiYm9vbGVhbiIhPXR5cGVvZiBaLm9wdGlvbnMpJiYoWi5vcHRpb25zPXkpLFoudGFyZ2V0PXMsWi5jYXB0dXJlPWcsWi5ldmVudE5hbWU9aCxkJiYoWi5vcmlnaW5hbERlbGVnYXRlPXYpLHU/RC51bnNoaWZ0KFopOkQucHVzaChaKSxpP3M6dm9pZCAwfX19O3JldHVybiB3W29dPUYoVCx2LEQsUixfKSx4JiYod1tnXT1GKHgseSwoZnVuY3Rpb24odCl7cmV0dXJuIHguY2FsbChPLnRhcmdldCxPLmV2ZW50TmFtZSx0Lmludm9rZSxPLm9wdGlvbnMpfSksUixfLCEwKSksd1tpXT1mdW5jdGlvbigpe3ZhciBlLG49dGhpc3x8dCxyPWFyZ3VtZW50c1swXSxvPWFyZ3VtZW50c1syXTtlPXZvaWQgMCE9PW8mJighMD09PW98fCExIT09byYmISFvJiYhIW8uY2FwdHVyZSk7dmFyIGk9YXJndW1lbnRzWzFdO2lmKCFpKXJldHVybiBJLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZighY3x8YyhJLGksbixhcmd1bWVudHMpKXt2YXIgYSx1PUhbcl07dSYmKGE9dVtlP2Y6bF0pO3ZhciBzPWEmJm5bYV07aWYocylmb3IodmFyIHA9MDtwPHMubGVuZ3RoO3ArKyl7dmFyIGg9c1twXTtpZihOKGgsaSkpcmV0dXJuIHMuc3BsaWNlKHAsMSksaC5pc1JlbW92ZWQ9ITAsMD09PXMubGVuZ3RoJiYoaC5hbGxSZW1vdmVkPSEwLG5bYV09bnVsbCksaC56b25lLmNhbmNlbFRhc2soaCksXz9uOnZvaWQgMH1yZXR1cm4gSS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSx3W3VdPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXN8fHQsbj1hcmd1bWVudHNbMF0scj1bXSxvPVkoZSxFP0Uobik6biksaT0wO2k8by5sZW5ndGg7aSsrKXt2YXIgYT1vW2ldLGM9YS5vcmlnaW5hbERlbGVnYXRlP2Eub3JpZ2luYWxEZWxlZ2F0ZTphLmNhbGxiYWNrO3IucHVzaChjKX1yZXR1cm4gcn0sd1tzXT1mdW5jdGlvbigpe3ZhciBlPXRoaXN8fHQsbj1hcmd1bWVudHNbMF07aWYobil7dmFyIHI9SFtuXTtpZihyKXt2YXIgbz1yW2xdLGE9cltmXSxjPWVbb10sdT1lW2FdO2lmKGMpe3ZhciBwPWMuc2xpY2UoKTtmb3IoZD0wO2Q8cC5sZW5ndGg7ZCsrKXRoaXNbaV0uY2FsbCh0aGlzLG4sKGg9cFtkXSkub3JpZ2luYWxEZWxlZ2F0ZT9oLm9yaWdpbmFsRGVsZWdhdGU6aC5jYWxsYmFjayxoLm9wdGlvbnMpfWlmKHUpZm9yKHA9dS5zbGljZSgpLGQ9MDtkPHAubGVuZ3RoO2QrKyl7dmFyIGg7dGhpc1tpXS5jYWxsKHRoaXMsbiwoaD1wW2RdKS5vcmlnaW5hbERlbGVnYXRlP2gub3JpZ2luYWxEZWxlZ2F0ZTpoLmNhbGxiYWNrLGgub3B0aW9ucyl9fX1lbHNle2Zvcih2YXIgdj1PYmplY3Qua2V5cyhlKSxkPTA7ZDx2Lmxlbmd0aDtkKyspe3ZhciBnPXZbZF0seT1LLmV4ZWMoZyksYj15JiZ5WzFdO2ImJiJyZW1vdmVMaXN0ZW5lciIhPT1iJiZ0aGlzW3NdLmNhbGwodGhpcyxiKX10aGlzW3NdLmNhbGwodGhpcywicmVtb3ZlTGlzdGVuZXIiKX1pZihfKXJldHVybiB0aGlzfSxMKHdbb10sVCksTCh3W2ldLEkpLE0mJkwod1tzXSxNKSxqJiZMKHdbdV0saiksITB9Zm9yKHZhciB3PVtdLHg9MDt4PGUubGVuZ3RoO3grKyl3W3hdPV8oZVt4XSxyKTtyZXR1cm4gd31mdW5jdGlvbiBZKHQsZSl7dmFyIG49W107Zm9yKHZhciByIGluIHQpe3ZhciBvPUsuZXhlYyhyKSxpPW8mJm9bMV07aWYoaSYmKCFlfHxpPT09ZSkpe3ZhciBhPXRbcl07aWYoYSlmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyluLnB1c2goYVtjXSl9fXJldHVybiBufWZ1bmN0aW9uIHEodCxlKXt2YXIgbj10LkV2ZW50O24mJm4ucHJvdG90eXBlJiZlLnBhdGNoTWV0aG9kKG4ucHJvdG90eXBlLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtlW1ZdPSEwLHQmJnQuYXBwbHkoZSxuKX19KSl9ZnVuY3Rpb24gUSh0LGUsbixyLG8pe3ZhciBpPVpvbmUuX19zeW1ib2xfXyhyKTtpZighZVtpXSl7dmFyIGE9ZVtpXT1lW3JdO2Vbcl09ZnVuY3Rpb24oaSxjLHUpe3JldHVybiBjJiZjLnByb3RvdHlwZSYmby5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbz1uKyIuIityKyI6OiIrZSxpPWMucHJvdG90eXBlO2lmKGkuaGFzT3duUHJvcGVydHkoZSkpe3ZhciBhPXQuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksZSk7YSYmYS52YWx1ZT8oYS52YWx1ZT10LndyYXBXaXRoQ3VycmVudFpvbmUoYS52YWx1ZSxvKSx0Ll9yZWRlZmluZVByb3BlcnR5KGMucHJvdG90eXBlLGUsYSkpOmlbZV0mJihpW2VdPXQud3JhcFdpdGhDdXJyZW50Wm9uZShpW2VdLG8pKX1lbHNlIGlbZV0mJihpW2VdPXQud3JhcFdpdGhDdXJyZW50Wm9uZShpW2VdLG8pKX0pKSxhLmNhbGwoZSxpLGMsdSl9LHQuYXR0YWNoT3JpZ2luVG9QYXRjaGVkKGVbcl0sYSl9fXZhciBKPVpvbmUuX19zeW1ib2xfXywkPU9iamVjdFtKKCJkZWZpbmVQcm9wZXJ0eSIpXT1PYmplY3QuZGVmaW5lUHJvcGVydHksdHQ9T2JqZWN0W0ooImdldE93blByb3BlcnR5RGVzY3JpcHRvciIpXT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGV0PU9iamVjdC5jcmVhdGUsbnQ9SigidW5jb25maWd1cmFibGVzIik7ZnVuY3Rpb24gcnQodCxlLG4pe3ZhciByPW4uY29uZmlndXJhYmxlO3JldHVybiBhdCh0LGUsbj1pdCh0LGUsbikscil9ZnVuY3Rpb24gb3QodCxlKXtyZXR1cm4gdCYmdFtudF0mJnRbbnRdW2VdfWZ1bmN0aW9uIGl0KHQsZSxuKXtyZXR1cm4gT2JqZWN0LmlzRnJvemVuKG4pfHwobi5jb25maWd1cmFibGU9ITApLG4uY29uZmlndXJhYmxlfHwodFtudF18fE9iamVjdC5pc0Zyb3plbih0KXx8JCh0LG50LHt3cml0YWJsZTohMCx2YWx1ZTp7fX0pLHRbbnRdJiYodFtudF1bZV09ITApKSxufWZ1bmN0aW9uIGF0KHQsZSxuLHIpe3RyeXtyZXR1cm4gJCh0LGUsbil9Y2F0Y2goaSl7aWYoIW4uY29uZmlndXJhYmxlKXRocm93IGk7dm9pZCAwPT09cj9kZWxldGUgbi5jb25maWd1cmFibGU6bi5jb25maWd1cmFibGU9cjt0cnl7cmV0dXJuICQodCxlLG4pfWNhdGNoKGkpe3ZhciBvPW51bGw7dHJ5e289SlNPTi5zdHJpbmdpZnkobil9Y2F0Y2goaSl7bz1uLnRvU3RyaW5nKCl9Y29uc29sZS5sb2coIkF0dGVtcHRpbmcgdG8gY29uZmlndXJlICciK2UrIicgd2l0aCBkZXNjcmlwdG9yICciK28rIicgb24gb2JqZWN0ICciK3QrIicgYW5kIGdvdCBlcnJvciwgZ2l2aW5nIHVwOiAiK2kpfX19dmFyIGN0PVsiYWJzb2x1dGVkZXZpY2VvcmllbnRhdGlvbiIsImFmdGVyaW5wdXQiLCJhZnRlcnByaW50IiwiYXBwaW5zdGFsbGVkIiwiYmVmb3JlaW5zdGFsbHByb21wdCIsImJlZm9yZXByaW50IiwiYmVmb3JldW5sb2FkIiwiZGV2aWNlbGlnaHQiLCJkZXZpY2Vtb3Rpb24iLCJkZXZpY2VvcmllbnRhdGlvbiIsImRldmljZW9yaWVudGF0aW9uYWJzb2x1dGUiLCJkZXZpY2Vwcm94aW1pdHkiLCJoYXNoY2hhbmdlIiwibGFuZ3VhZ2VjaGFuZ2UiLCJtZXNzYWdlIiwibW96YmVmb3JlcGFpbnQiLCJvZmZsaW5lIiwib25saW5lIiwicGFpbnQiLCJwYWdlc2hvdyIsInBhZ2VoaWRlIiwicG9wc3RhdGUiLCJyZWplY3Rpb25oYW5kbGVkIiwic3RvcmFnZSIsInVuaGFuZGxlZHJlamVjdGlvbiIsInVubG9hZCIsInVzZXJwcm94aW1pdHkiLCJ2cmRpc3BseWNvbm5lY3RlZCIsInZyZGlzcGxheWRpc2Nvbm5lY3RlZCIsInZyZGlzcGxheXByZXNlbnRjaGFuZ2UiXSx1dD1bImVuY3J5cHRlZCIsIndhaXRpbmdmb3JrZXkiLCJtc25lZWRrZXkiLCJtb3ppbnRlcnJ1cHRiZWdpbiIsIm1vemludGVycnVwdGVuZCJdLHN0PVsibG9hZCJdLGZ0PVsiYmx1ciIsImVycm9yIiwiZm9jdXMiLCJsb2FkIiwicmVzaXplIiwic2Nyb2xsIiwibWVzc2FnZWVycm9yIl0sbHQ9WyJib3VuY2UiLCJmaW5pc2giLCJzdGFydCJdLHB0PVsibG9hZHN0YXJ0IiwicHJvZ3Jlc3MiLCJhYm9ydCIsImVycm9yIiwibG9hZCIsInByb2dyZXNzIiwidGltZW91dCIsImxvYWRlbmQiLCJyZWFkeXN0YXRlY2hhbmdlIl0saHQ9WyJ1cGdyYWRlbmVlZGVkIiwiY29tcGxldGUiLCJhYm9ydCIsInN1Y2Nlc3MiLCJlcnJvciIsImJsb2NrZWQiLCJ2ZXJzaW9uY2hhbmdlIiwiY2xvc2UiXSx2dD1bImNsb3NlIiwiZXJyb3IiLCJvcGVuIiwibWVzc2FnZSJdLGR0PVsiZXJyb3IiLCJtZXNzYWdlIl0sZ3Q9WyJhYm9ydCIsImFuaW1hdGlvbmNhbmNlbCIsImFuaW1hdGlvbmVuZCIsImFuaW1hdGlvbml0ZXJhdGlvbiIsImF1eGNsaWNrIiwiYmVmb3JlaW5wdXQiLCJibHVyIiwiY2FuY2VsIiwiY2FucGxheSIsImNhbnBsYXl0aHJvdWdoIiwiY2hhbmdlIiwiY29tcG9zaXRpb25zdGFydCIsImNvbXBvc2l0aW9udXBkYXRlIiwiY29tcG9zaXRpb25lbmQiLCJjdWVjaGFuZ2UiLCJjbGljayIsImNsb3NlIiwiY29udGV4dG1lbnUiLCJjdXJlY2hhbmdlIiwiZGJsY2xpY2siLCJkcmFnIiwiZHJhZ2VuZCIsImRyYWdlbnRlciIsImRyYWdleGl0IiwiZHJhZ2xlYXZlIiwiZHJhZ292ZXIiLCJkcm9wIiwiZHVyYXRpb25jaGFuZ2UiLCJlbXB0aWVkIiwiZW5kZWQiLCJlcnJvciIsImZvY3VzIiwiZm9jdXNpbiIsImZvY3Vzb3V0IiwiZ290cG9pbnRlcmNhcHR1cmUiLCJpbnB1dCIsImludmFsaWQiLCJrZXlkb3duIiwia2V5cHJlc3MiLCJrZXl1cCIsImxvYWQiLCJsb2Fkc3RhcnQiLCJsb2FkZWRkYXRhIiwibG9hZGVkbWV0YWRhdGEiLCJsb3N0cG9pbnRlcmNhcHR1cmUiLCJtb3VzZWRvd24iLCJtb3VzZWVudGVyIiwibW91c2VsZWF2ZSIsIm1vdXNlbW92ZSIsIm1vdXNlb3V0IiwibW91c2VvdmVyIiwibW91c2V1cCIsIm1vdXNld2hlZWwiLCJvcmllbnRhdGlvbmNoYW5nZSIsInBhdXNlIiwicGxheSIsInBsYXlpbmciLCJwb2ludGVyY2FuY2VsIiwicG9pbnRlcmRvd24iLCJwb2ludGVyZW50ZXIiLCJwb2ludGVybGVhdmUiLCJwb2ludGVybG9ja2NoYW5nZSIsIm1venBvaW50ZXJsb2NrY2hhbmdlIiwid2Via2l0cG9pbnRlcmxvY2tlcmNoYW5nZSIsInBvaW50ZXJsb2NrZXJyb3IiLCJtb3pwb2ludGVybG9ja2Vycm9yIiwid2Via2l0cG9pbnRlcmxvY2tlcnJvciIsInBvaW50ZXJtb3ZlIiwicG9pbnRvdXQiLCJwb2ludGVyb3ZlciIsInBvaW50ZXJ1cCIsInByb2dyZXNzIiwicmF0ZWNoYW5nZSIsInJlc2V0IiwicmVzaXplIiwic2Nyb2xsIiwic2Vla2VkIiwic2Vla2luZyIsInNlbGVjdCIsInNlbGVjdGlvbmNoYW5nZSIsInNlbGVjdHN0YXJ0Iiwic2hvdyIsInNvcnQiLCJzdGFsbGVkIiwic3VibWl0Iiwic3VzcGVuZCIsInRpbWV1cGRhdGUiLCJ2b2x1bWVjaGFuZ2UiLCJ0b3VjaGNhbmNlbCIsInRvdWNobW92ZSIsInRvdWNoc3RhcnQiLCJ0b3VjaGVuZCIsInRyYW5zaXRpb25jYW5jZWwiLCJ0cmFuc2l0aW9uZW5kIiwid2FpdGluZyIsIndoZWVsIl0uY29uY2F0KFsid2ViZ2xjb250ZXh0cmVzdG9yZWQiLCJ3ZWJnbGNvbnRleHRsb3N0Iiwid2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvciJdLFsiYXV0b2NvbXBsZXRlIiwiYXV0b2NvbXBsZXRlZXJyb3IiXSxbInRvZ2dsZSJdLFsiYWZ0ZXJzY3JpcHRleGVjdXRlIiwiYmVmb3Jlc2NyaXB0ZXhlY3V0ZSIsIkRPTUNvbnRlbnRMb2FkZWQiLCJmcmVlemUiLCJmdWxsc2NyZWVuY2hhbmdlIiwibW96ZnVsbHNjcmVlbmNoYW5nZSIsIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCJtc2Z1bGxzY3JlZW5jaGFuZ2UiLCJmdWxsc2NyZWVuZXJyb3IiLCJtb3pmdWxsc2NyZWVuZXJyb3IiLCJ3ZWJraXRmdWxsc2NyZWVuZXJyb3IiLCJtc2Z1bGxzY3JlZW5lcnJvciIsInJlYWR5c3RhdGVjaGFuZ2UiLCJ2aXNpYmlsaXR5Y2hhbmdlIiwicmVzdW1lIl0sY3QsWyJiZWZvcmVjb3B5IiwiYmVmb3JlY3V0IiwiYmVmb3JlcGFzdGUiLCJjb3B5IiwiY3V0IiwicGFzdGUiLCJkcmFnc3RhcnQiLCJsb2FkZW5kIiwiYW5pbWF0aW9uc3RhcnQiLCJzZWFyY2giLCJ0cmFuc2l0aW9ucnVuIiwidHJhbnNpdGlvbnN0YXJ0Iiwid2Via2l0YW5pbWF0aW9uZW5kIiwid2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uIiwid2Via2l0YW5pbWF0aW9uc3RhcnQiLCJ3ZWJraXR0cmFuc2l0aW9uZW5kIl0sWyJhY3RpdmF0ZSIsImFmdGVydXBkYXRlIiwiYXJpYXJlcXVlc3QiLCJiZWZvcmVhY3RpdmF0ZSIsImJlZm9yZWRlYWN0aXZhdGUiLCJiZWZvcmVlZGl0Zm9jdXMiLCJiZWZvcmV1cGRhdGUiLCJjZWxsY2hhbmdlIiwiY29udHJvbHNlbGVjdCIsImRhdGFhdmFpbGFibGUiLCJkYXRhc2V0Y2hhbmdlZCIsImRhdGFzZXRjb21wbGV0ZSIsImVycm9ydXBkYXRlIiwiZmlsdGVyY2hhbmdlIiwibGF5b3V0Y29tcGxldGUiLCJsb3NlY2FwdHVyZSIsIm1vdmUiLCJtb3ZlZW5kIiwibW92ZXN0YXJ0IiwicHJvcGVydHljaGFuZ2UiLCJyZXNpemVlbmQiLCJyZXNpemVzdGFydCIsInJvd2VudGVyIiwicm93ZXhpdCIsInJvd3NkZWxldGUiLCJyb3dzaW5zZXJ0ZWQiLCJjb21tYW5kIiwiY29tcGFzc25lZWRzY2FsaWJyYXRpb24iLCJkZWFjdGl2YXRlIiwiaGVscCIsIm1zY29udGVudHpvb20iLCJtc21hbmlwdWxhdGlvbnN0YXRlY2hhbmdlZCIsIm1zZ2VzdHVyZWNoYW5nZSIsIm1zZ2VzdHVyZWRvdWJsZXRhcCIsIm1zZ2VzdHVyZWVuZCIsIm1zZ2VzdHVyZWhvbGQiLCJtc2dlc3R1cmVzdGFydCIsIm1zZ2VzdHVyZXRhcCIsIm1zZ290cG9pbnRlcmNhcHR1cmUiLCJtc2luZXJ0aWFzdGFydCIsIm1zbG9zdHBvaW50ZXJjYXB0dXJlIiwibXNwb2ludGVyY2FuY2VsIiwibXNwb2ludGVyZG93biIsIm1zcG9pbnRlcmVudGVyIiwibXNwb2ludGVyaG92ZXIiLCJtc3BvaW50ZXJsZWF2ZSIsIm1zcG9pbnRlcm1vdmUiLCJtc3BvaW50ZXJvdXQiLCJtc3BvaW50ZXJvdmVyIiwibXNwb2ludGVydXAiLCJwb2ludGVyb3V0IiwibXNzaXRlbW9kZWp1bXBsaXN0aXRlbXJlbW92ZWQiLCJtc3RodW1ibmFpbGNsaWNrIiwic3RvcCIsInN0b3JhZ2Vjb21taXQiXSk7ZnVuY3Rpb24geXQodCxlLG4pe2lmKCFufHwwPT09bi5sZW5ndGgpcmV0dXJuIGU7dmFyIHI9bi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRhcmdldD09PXR9KSk7aWYoIXJ8fDA9PT1yLmxlbmd0aClyZXR1cm4gZTt2YXIgbz1yWzBdLmlnbm9yZVByb3BlcnRpZXM7cmV0dXJuIGUuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4tMT09PW8uaW5kZXhPZih0KX0pKX1mdW5jdGlvbiBidCh0LGUsbixyKXt0JiZNKHQseXQodCxlLG4pLHIpfWZ1bmN0aW9uIG10KHQsZSl7aWYoKCFTfHxPKSYmIVpvbmVbdC5zeW1ib2woInBhdGNoRXZlbnRzIildKXt2YXIgcj0idW5kZWZpbmVkIiE9dHlwZW9mIFdlYlNvY2tldCxvPWUuX19ab25lX2lnbm9yZV9vbl9wcm9wZXJ0aWVzO2lmKEUpe3ZhciBpPXdpbmRvdyxhPVo/W3t0YXJnZXQ6aSxpZ25vcmVQcm9wZXJ0aWVzOlsiZXJyb3IiXX1dOltdO2J0KGksZ3QuY29uY2F0KFsibWVzc2FnZWVycm9yIl0pLG8/by5jb25jYXQoYSk6byxuKGkpKSxidChEb2N1bWVudC5wcm90b3R5cGUsZ3Qsbyksdm9pZCAwIT09aS5TVkdFbGVtZW50JiZidChpLlNWR0VsZW1lbnQucHJvdG90eXBlLGd0LG8pLGJ0KEVsZW1lbnQucHJvdG90eXBlLGd0LG8pLGJ0KEhUTUxFbGVtZW50LnByb3RvdHlwZSxndCxvKSxidChIVE1MTWVkaWFFbGVtZW50LnByb3RvdHlwZSx1dCxvKSxidChIVE1MRnJhbWVTZXRFbGVtZW50LnByb3RvdHlwZSxjdC5jb25jYXQoZnQpLG8pLGJ0KEhUTUxCb2R5RWxlbWVudC5wcm90b3R5cGUsY3QuY29uY2F0KGZ0KSxvKSxidChIVE1MRnJhbWVFbGVtZW50LnByb3RvdHlwZSxzdCxvKSxidChIVE1MSUZyYW1lRWxlbWVudC5wcm90b3R5cGUsc3Qsbyk7dmFyIGM9aS5IVE1MTWFycXVlZUVsZW1lbnQ7YyYmYnQoYy5wcm90b3R5cGUsbHQsbyk7dmFyIHU9aS5Xb3JrZXI7dSYmYnQodS5wcm90b3R5cGUsZHQsbyl9dmFyIHM9ZS5YTUxIdHRwUmVxdWVzdDtzJiZidChzLnByb3RvdHlwZSxwdCxvKTt2YXIgZj1lLlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7ZiYmYnQoZiYmZi5wcm90b3R5cGUscHQsbyksInVuZGVmaW5lZCIhPXR5cGVvZiBJREJJbmRleCYmKGJ0KElEQkluZGV4LnByb3RvdHlwZSxodCxvKSxidChJREJSZXF1ZXN0LnByb3RvdHlwZSxodCxvKSxidChJREJPcGVuREJSZXF1ZXN0LnByb3RvdHlwZSxodCxvKSxidChJREJEYXRhYmFzZS5wcm90b3R5cGUsaHQsbyksYnQoSURCVHJhbnNhY3Rpb24ucHJvdG90eXBlLGh0LG8pLGJ0KElEQkN1cnNvci5wcm90b3R5cGUsaHQsbykpLHImJmJ0KFdlYlNvY2tldC5wcm90b3R5cGUsdnQsbyl9fWZ1bmN0aW9uIGt0KHQsZSl7dmFyIG49ZS5nZXRHbG9iYWxPYmplY3RzKCkscj1uLmV2ZW50TmFtZXMsbz1uLmdsb2JhbFNvdXJjZXMsaT1uLnpvbmVTeW1ib2xFdmVudE5hbWVzLGE9bi5UUlVFX1NUUixjPW4uRkFMU0VfU1RSLHU9bi5aT05FX1NZTUJPTF9QUkVGSVgscz0iQW5jaG9yLEFyZWEsQXVkaW8sQlIsQmFzZSxCYXNlRm9udCxCb2R5LEJ1dHRvbixDYW52YXMsQ29udGVudCxETGlzdCxEaXJlY3RvcnksRGl2LEVtYmVkLEZpZWxkU2V0LEZvbnQsRm9ybSxGcmFtZSxGcmFtZVNldCxIUixIZWFkLEhlYWRpbmcsSHRtbCxJRnJhbWUsSW1hZ2UsSW5wdXQsS2V5Z2VuLExJLExhYmVsLExlZ2VuZCxMaW5rLE1hcCxNYXJxdWVlLE1lZGlhLE1lbnUsTWV0YSxNZXRlcixNb2QsT0xpc3QsT2JqZWN0LE9wdEdyb3VwLE9wdGlvbixPdXRwdXQsUGFyYWdyYXBoLFByZSxQcm9ncmVzcyxRdW90ZSxTY3JpcHQsU2VsZWN0LFNvdXJjZSxTcGFuLFN0eWxlLFRhYmxlQ2FwdGlvbixUYWJsZUNlbGwsVGFibGVDb2wsVGFibGUsVGFibGVSb3csVGFibGVTZWN0aW9uLFRleHRBcmVhLFRpdGxlLFRyYWNrLFVMaXN0LFVua25vd24sVmlkZW8iLGY9IkFwcGxpY2F0aW9uQ2FjaGUsRXZlbnRTb3VyY2UsRmlsZVJlYWRlcixJbnB1dE1ldGhvZENvbnRleHQsTWVkaWFDb250cm9sbGVyLE1lc3NhZ2VQb3J0LE5vZGUsUGVyZm9ybWFuY2UsU1ZHRWxlbWVudEluc3RhbmNlLFNoYXJlZFdvcmtlcixUZXh0VHJhY2ssVGV4dFRyYWNrQ3VlLFRleHRUcmFja0xpc3QsV2ViS2l0TmFtZWRGbG93LFdpbmRvdyxXb3JrZXIsV29ya2VyR2xvYmFsU2NvcGUsWE1MSHR0cFJlcXVlc3QsWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldCxYTUxIdHRwUmVxdWVzdFVwbG9hZCxJREJSZXF1ZXN0LElEQk9wZW5EQlJlcXVlc3QsSURCRGF0YWJhc2UsSURCVHJhbnNhY3Rpb24sSURCQ3Vyc29yLERCSW5kZXgsV2ViU29ja2V0Ii5zcGxpdCgiLCIpLGw9W10scD10Lnd0ZixoPXMuc3BsaXQoIiwiKTtwP2w9aC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiJIVE1MIit0KyJFbGVtZW50In0pKS5jb25jYXQoZik6dC5FdmVudFRhcmdldD9sLnB1c2goIkV2ZW50VGFyZ2V0Iik6bD1mO2Zvcih2YXIgdj10Ll9fWm9uZV9kaXNhYmxlX0lFX2NoZWNrfHwhMSxkPXQuX19ab25lX2VuYWJsZV9jcm9zc19jb250ZXh0X2NoZWNrfHwhMSxnPWUuaXNJRU9yRWRnZSgpLHk9ImZ1bmN0aW9uIF9fQlJPV1NFUlRPT0xTX0NPTlNPTEVfU0FGRUZVTkMoKSB7IFtuYXRpdmUgY29kZV0gfSIsYj0wO2I8ci5sZW5ndGg7YisrKXt2YXIgbT11KygoUz1yW2JdKStjKSxrPXUrKFMrYSk7aVtTXT17fSxpW1NdW2NdPW0saVtTXVthXT1rfWZvcihiPTA7YjxzLmxlbmd0aDtiKyspZm9yKHZhciBfPWhbYl0sdz1vW19dPXt9LHg9MDt4PHIubGVuZ3RoO3grKyl7dmFyIFM7d1tTPXJbeF1dPV8rIi5hZGRFdmVudExpc3RlbmVyOiIrU312YXIgRT1bXTtmb3IoYj0wO2I8bC5sZW5ndGg7YisrKXt2YXIgTz10W2xbYl1dO0UucHVzaChPJiZPLnByb3RvdHlwZSl9cmV0dXJuIGUucGF0Y2hFdmVudFRhcmdldCh0LEUse3ZoOmZ1bmN0aW9uKHQsZSxuLHIpe2lmKCF2JiZnKXtpZihkKXRyeXt2YXIgbztpZigiW29iamVjdCBGdW5jdGlvbldyYXBwZXJdIj09PShvPWUudG9TdHJpbmcoKSl8fG89PXkpcmV0dXJuIHQuYXBwbHkobixyKSwhMX1jYXRjaChpKXtyZXR1cm4gdC5hcHBseShuLHIpLCExfWVsc2UgaWYoIltvYmplY3QgRnVuY3Rpb25XcmFwcGVyXSI9PT0obz1lLnRvU3RyaW5nKCkpfHxvPT15KXJldHVybiB0LmFwcGx5KG4sciksITF9ZWxzZSBpZihkKXRyeXtlLnRvU3RyaW5nKCl9Y2F0Y2goaSl7cmV0dXJuIHQuYXBwbHkobixyKSwhMX1yZXR1cm4hMH19KSxab25lW2Uuc3ltYm9sKCJwYXRjaEV2ZW50VGFyZ2V0IildPSEhdC5FdmVudFRhcmdldCwhMH1mdW5jdGlvbiBfdCh0LGUpe3ZhciBuPXQuZ2V0R2xvYmFsT2JqZWN0cygpO2lmKCghbi5pc05vZGV8fG4uaXNNaXgpJiYhZnVuY3Rpb24odCxlKXt2YXIgbj10LmdldEdsb2JhbE9iamVjdHMoKTtpZigobi5pc0Jyb3dzZXJ8fG4uaXNNaXgpJiYhdC5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSFRNTEVsZW1lbnQucHJvdG90eXBlLCJvbmNsaWNrIikmJiJ1bmRlZmluZWQiIT10eXBlb2YgRWxlbWVudCl7dmFyIHI9dC5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRWxlbWVudC5wcm90b3R5cGUsIm9uY2xpY2siKTtpZihyJiYhci5jb25maWd1cmFibGUpcmV0dXJuITE7aWYocil7dC5PYmplY3REZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiEwfX0pO3ZhciBvPSEhZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikub25jbGljaztyZXR1cm4gdC5PYmplY3REZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIsciksb319dmFyIGk9ZS5YTUxIdHRwUmVxdWVzdDtpZighaSlyZXR1cm4hMTt2YXIgYT1pLnByb3RvdHlwZSxjPXQuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsIm9ucmVhZHlzdGF0ZWNoYW5nZSIpO2lmKGMpcmV0dXJuIHQuT2JqZWN0RGVmaW5lUHJvcGVydHkoYSwib25yZWFkeXN0YXRlY2hhbmdlIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSksbz0hIShzPW5ldyBpKS5vbnJlYWR5c3RhdGVjaGFuZ2UsdC5PYmplY3REZWZpbmVQcm9wZXJ0eShhLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGN8fHt9KSxvO3ZhciB1PXQuc3ltYm9sKCJmYWtlIik7dC5PYmplY3REZWZpbmVQcm9wZXJ0eShhLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1t1XX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXNbdV09dH19KTt2YXIgcz1uZXcgaSxmPWZ1bmN0aW9uKCl7fTtyZXR1cm4gcy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZixvPXNbdV09PT1mLHMub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsb30odCxlKSl7dmFyIHI9InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJTb2NrZXQ7IWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LmdldEdsb2JhbE9iamVjdHMoKS5ldmVudE5hbWVzLG49dC5zeW1ib2woInVuYm91bmQiKSxyPWZ1bmN0aW9uKHIpe3ZhciBvPWVbcl0saT0ib24iK287c2VsZi5hZGRFdmVudExpc3RlbmVyKG8sKGZ1bmN0aW9uKGUpe3ZhciByLG8sYT1lLnRhcmdldDtmb3Iobz1hP2EuY29uc3RydWN0b3IubmFtZSsiLiIraToidW5rbm93bi4iK2k7YTspYVtpXSYmIWFbaV1bbl0mJigocj10LndyYXBXaXRoQ3VycmVudFpvbmUoYVtpXSxvKSlbbl09YVtpXSxhW2ldPXIpLGE9YS5wYXJlbnRFbGVtZW50fSksITApfSxvPTA7bzxlLmxlbmd0aDtvKyspcihvKX0odCksdC5wYXRjaENsYXNzKCJYTUxIdHRwUmVxdWVzdCIpLHImJmZ1bmN0aW9uKHQsZSl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCkscj1uLkFERF9FVkVOVF9MSVNURU5FUl9TVFIsbz1uLlJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFIsaT1lLldlYlNvY2tldDtlLkV2ZW50VGFyZ2V0fHx0LnBhdGNoRXZlbnRUYXJnZXQoZSxbaS5wcm90b3R5cGVdKSxlLldlYlNvY2tldD1mdW5jdGlvbihlLG4pe3ZhciBhLGMsdT1hcmd1bWVudHMubGVuZ3RoPjE/bmV3IGkoZSxuKTpuZXcgaShlKSxzPXQuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsIm9ubWVzc2FnZSIpO3JldHVybiBzJiYhMT09PXMuY29uZmlndXJhYmxlPyhhPXQuT2JqZWN0Q3JlYXRlKHUpLGM9dSxbcixvLCJzZW5kIiwiY2xvc2UiXS5mb3JFYWNoKChmdW5jdGlvbihlKXthW2VdPWZ1bmN0aW9uKCl7dmFyIG49dC5BcnJheVNsaWNlLmNhbGwoYXJndW1lbnRzKTtpZihlPT09cnx8ZT09PW8pe3ZhciBpPW4ubGVuZ3RoPjA/blswXTp2b2lkIDA7aWYoaSl7dmFyIGM9Wm9uZS5fX3N5bWJvbF9fKCJPTl9QUk9QRVJUWSIraSk7dVtjXT1hW2NdfX1yZXR1cm4gdVtlXS5hcHBseSh1LG4pfX0pKSk6YT11LHQucGF0Y2hPblByb3BlcnRpZXMoYSxbImNsb3NlIiwiZXJyb3IiLCJtZXNzYWdlIiwib3BlbiJdLGMpLGF9O3ZhciBhPWUuV2ViU29ja2V0O2Zvcih2YXIgYyBpbiBpKWFbY109aVtjXX0odCxlKSxab25lW3Quc3ltYm9sKCJwYXRjaEV2ZW50cyIpXT0hMH19Wm9uZS5fX2xvYWRfcGF0Y2goInV0aWwiLChmdW5jdGlvbihuLHIsdSl7dS5wYXRjaE9uUHJvcGVydGllcz1NLHUucGF0Y2hNZXRob2Q9Tix1Lg=="
}
Changelog:
{
"2019.12.04 14:30": "base64:PWIucHJvY2VzcyYmIltvYmplY3QgcHJvY2Vzc10iPT09e30udG9TdHJpbmcuY2FsbChiLnByb2Nlc3MpLEU9IVMmJiF4JiYhKCFnfHwheS5IVE1MRWxlbWVudCksTz12b2lkIDAhPT1iLnByb2Nlc3MmJiJbb2JqZWN0IHByb2Nlc3NdIj09PXt9LnRvU3RyaW5nLmNhbGwoYi5wcm9jZXNzKSYmIXgmJiEoIWd8fCF5LkhUTUxFbGVtZW50KSxUPXt9LEk9ZnVuY3Rpb24odCl7aWYodD10fHxiLmV2ZW50KXt2YXIgZT1UW3QudHlwZV07ZXx8KGU9VFt0LnR5cGVdPWQoIk9OX1BST1BFUlRZIit0LnR5cGUpKTt2YXIgbixyPXRoaXN8fHQudGFyZ2V0fHxiLG89cltlXTtpZihFJiZyPT09eSYmImVycm9yIj09PXQudHlwZSl7dmFyIGk9dDshMD09PShuPW8mJm8uY2FsbCh0aGlzLGkubWVzc2FnZSxpLmZpbGVuYW1lLGkubGluZW5vLGkuY29sbm8saS5lcnJvcikpJiZ0LnByZXZlbnREZWZhdWx0KCl9ZWxzZSBudWxsPT0obj1vJiZvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl8fG58fHQucHJldmVudERlZmF1bHQoKTtyZXR1cm4gbn19O2Z1bmN0aW9uIGoobixyLG8pe3ZhciBpPXQobixyKTtpZighaSYmbyYmdChvLHIpJiYoaT17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxpJiZpLmNvbmZpZ3VyYWJsZSl7dmFyIGE9ZCgib24iK3IrInBhdGNoZWQiKTtpZighbi5oYXNPd25Qcm9wZXJ0eShhKXx8IW5bYV0pe2RlbGV0ZSBpLndyaXRhYmxlLGRlbGV0ZSBpLnZhbHVlO3ZhciBjPWkuZ2V0LHU9aS5zZXQscz1yLnN1YnN0cigyKSxmPVRbc107Znx8KGY9VFtzXT1kKCJPTl9QUk9QRVJUWSIrcykpLGkuc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7ZXx8biE9PWJ8fChlPWIpLGUmJihlW2ZdJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIocyxJKSx1JiZ1LmFwcGx5KGUsayksImZ1bmN0aW9uIj09dHlwZW9mIHQ/KGVbZl09dCxlLmFkZEV2ZW50TGlzdGVuZXIocyxJLCExKSk6ZVtmXT1udWxsKX0saS5nZXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHR8fG4hPT1ifHwodD1iKSwhdClyZXR1cm4gbnVsbDt2YXIgZT10W2ZdO2lmKGUpcmV0dXJuIGU7aWYoYyl7dmFyIG89YyYmYy5jYWxsKHRoaXMpO2lmKG8pcmV0dXJuIGkuc2V0LmNhbGwodGhpcyxvKSwiZnVuY3Rpb24iPT10eXBlb2YgdFttXSYmdC5yZW1vdmVBdHRyaWJ1dGUociksb31yZXR1cm4gbnVsbH0sZShuLHIsaSksblthXT0hMH19fWZ1bmN0aW9uIE0odCxlLG4pe2lmKGUpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspaih0LCJvbiIrZVtyXSxuKTtlbHNle3ZhciBvPVtdO2Zvcih2YXIgaSBpbiB0KSJvbiI9PWkuc3Vic3RyKDAsMikmJm8ucHVzaChpKTtmb3IodmFyIGE9MDthPG8ubGVuZ3RoO2ErKylqKHQsb1thXSxuKX19dmFyIFA9ZCgib3JpZ2luYWxJbnN0YW5jZSIpO2Z1bmN0aW9uIEQodCl7dmFyIG49Ylt0XTtpZihuKXtiW2QodCldPW4sYlt0XT1mdW5jdGlvbigpe3ZhciBlPV8oYXJndW1lbnRzLHQpO3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAwOnRoaXNbUF09bmV3IG47YnJlYWs7Y2FzZSAxOnRoaXNbUF09bmV3IG4oZVswXSk7YnJlYWs7Y2FzZSAyOnRoaXNbUF09bmV3IG4oZVswXSxlWzFdKTticmVhaztjYXNlIDM6dGhpc1tQXT1uZXcgbihlWzBdLGVbMV0sZVsyXSk7YnJlYWs7Y2FzZSA0OnRoaXNbUF09bmV3IG4oZVswXSxlWzFdLGVbMl0sZVszXSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkFyZyBsaXN0IHRvbyBsb25nLiIpfX0sTChiW3RdLG4pO3ZhciByLG89bmV3IG4oKGZ1bmN0aW9uKCl7fSkpO2ZvcihyIGluIG8pIlhNTEh0dHBSZXF1ZXN0Ij09PXQmJiJyZXNwb25zZUJsb2IiPT09cnx8ZnVuY3Rpb24obil7ImZ1bmN0aW9uIj09dHlwZW9mIG9bbl0/Ylt0XS5wcm90b3R5cGVbbl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tQXVtuXS5hcHBseSh0aGlzW1BdLGFyZ3VtZW50cyl9OmUoYlt0XS5wcm90b3R5cGUsbix7c2V0OmZ1bmN0aW9uKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBlPyh0aGlzW1BdW25dPWgoZSx0KyIuIituKSxMKHRoaXNbUF1bbl0sZSkpOnRoaXNbUF1bbl09ZX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbUF1bbl19fSl9KHIpO2ZvcihyIGluIG4pInByb3RvdHlwZSIhPT1yJiZuLmhhc093blByb3BlcnR5KHIpJiYoYlt0XVtyXT1uW3JdKX19dmFyIFI9ITE7ZnVuY3Rpb24gTihlLHIsbyl7Zm9yKHZhciBpPWU7aSYmIWkuaGFzT3duUHJvcGVydHkocik7KWk9bihpKTshaSYmZVtyXSYmKGk9ZSk7dmFyIGEsYyx1PWQocikscz1udWxsO2lmKGkmJiEocz1pW3VdKSYmKHM9aVt1XT1pW3JdLHcoaSYmdChpLHIpKSkpe3ZhciBmPW8ocyx1LHIpO2lbcl09ZnVuY3Rpb24oKXtyZXR1cm4gZih0aGlzLGFyZ3VtZW50cyl9LEwoaVtyXSxzKSxSJiYoYT1zLGM9aVtyXSwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhhKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsdCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsdCx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGFbdF19LHNldDpmdW5jdGlvbihuKXsoIWV8fGUud3JpdGFibGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnNldCkmJihhW3RdPW4pfSxlbnVtZXJhYmxlOiFlfHxlLmVudW1lcmFibGUsY29uZmlndXJhYmxlOiFlfHxlLmNvbmZpZ3VyYWJsZX0pfSkpKX1yZXR1cm4gc31mdW5jdGlvbiBBKHQsZSxuKXt2YXIgcj1udWxsO2Z1bmN0aW9uIG8odCl7dmFyIGU9dC5kYXRhO3JldHVybiBlLmFyZ3NbZS5jYklkeF09ZnVuY3Rpb24oKXt0Lmludm9rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHIuYXBwbHkoZS50YXJnZXQsZS5hcmdzKSx0fXI9Tih0LGUsKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3ZhciBpPW4oZSxyKTtyZXR1cm4gaS5jYklkeD49MCYmImZ1bmN0aW9uIj09dHlwZW9mIHJbaS5jYklkeF0/dihpLm5hbWUscltpLmNiSWR4XSxpLG8pOnQuYXBwbHkoZSxyKX19KSl9ZnVuY3Rpb24gTCh0LGUpe3RbZCgiT3JpZ2luYWxEZWxlZ2F0ZSIpXT1lfXZhciBGPSExLHo9ITE7ZnVuY3Rpb24gWigpe3RyeXt2YXIgdD15Lm5hdmlnYXRvci51c2VyQWdlbnQ7aWYoLTEhPT10LmluZGV4T2YoIk1TSUUgIil8fC0xIT09dC5pbmRleE9mKCJUcmlkZW50LyIpKXJldHVybiEwfWNhdGNoKGUpe31yZXR1cm4hMX1mdW5jdGlvbiBDKCl7aWYoRilyZXR1cm4gejtGPSEwO3RyeXt2YXIgdD15Lm5hdmlnYXRvci51c2VyQWdlbnQ7LTE9PT10LmluZGV4T2YoIk1TSUUgIikmJi0xPT09dC5pbmRleE9mKCJUcmlkZW50LyIpJiYtMT09PXQuaW5kZXhPZigiRWRnZS8iKXx8KHo9ITApfWNhdGNoKGUpe31yZXR1cm4gen1ab25lLl9fbG9hZF9wYXRjaCgidG9TdHJpbmciLChmdW5jdGlvbih0KXt2YXIgZT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsbj1kKCJPcmlnaW5hbERlbGVnYXRlIikscj1kKCJQcm9taXNlIiksbz1kKCJFcnJvciIpLGk9ZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcyl7dmFyIGk9dGhpc1tuXTtpZihpKXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBpP2UuY2FsbChpKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaSk7aWYodGhpcz09PVByb21pc2Upe3ZhciBhPXRbcl07aWYoYSlyZXR1cm4gZS5jYWxsKGEpfWlmKHRoaXM9PT1FcnJvcil7dmFyIGM9dFtvXTtpZihjKXJldHVybiBlLmNhbGwoYyl9fXJldHVybiBlLmNhbGwodGhpcyl9O2lbbl09ZSxGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9aTt2YXIgYT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO09iamVjdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIFByb21pc2U/IltvYmplY3QgUHJvbWlzZV0iOmEuY2FsbCh0aGlzKX19KSk7dmFyIFc9ITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cpdHJ5e3ZhciBHPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe1c9ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLEcsRyksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLEcsRyl9Y2F0Y2goRXQpe1c9ITF9dmFyIFU9e3VzZUc6ITB9LEg9e30sQj17fSxLPS9eX196b25lX3N5bWJvbF9fKFx3KykodHJ1ZXxmYWxzZSkkLyxWPSJfX3pvbmVfc3ltYm9sX19wcm9wYWdhdGlvblN0b3BwZWQiO2Z1bmN0aW9uIFgodCxlLHIpe3ZhciBvPXImJnIuYWRkfHxhLGk9ciYmci5ybXx8Yyx1PXImJnIubGlzdGVuZXJzfHwiZXZlbnRMaXN0ZW5lcnMiLHM9ciYmci5ybUFsbHx8InJlbW92ZUFsbExpc3RlbmVycyIsaD1kKG8pLHY9Ii4iK28rIjoiLGc9InByZXBlbmRMaXN0ZW5lciIseT0iLiIrZysiOiIsYj1mdW5jdGlvbih0LGUsbil7aWYoIXQuaXNSZW1vdmVkKXt2YXIgcj10LmNhbGxiYWNrOyJvYmplY3QiPT10eXBlb2YgciYmci5oYW5kbGVFdmVudCYmKHQuY2FsbGJhY2s9ZnVuY3Rpb24odCl7cmV0dXJuIHIuaGFuZGxlRXZlbnQodCl9LHQub3JpZ2luYWxEZWxlZ2F0ZT1yKSx0Lmludm9rZSh0LGUsW25dKTt2YXIgbz10Lm9wdGlvbnM7byYmIm9iamVjdCI9PXR5cGVvZiBvJiZvLm9uY2UmJmVbaV0uY2FsbChlLG4udHlwZSx0Lm9yaWdpbmFsRGVsZWdhdGU/dC5vcmlnaW5hbERlbGVnYXRlOnQuY2FsbGJhY2ssbyl9fSxtPWZ1bmN0aW9uKGUpe2lmKGU9ZXx8dC5ldmVudCl7dmFyIG49dGhpc3x8ZS50YXJnZXR8fHQscj1uW0hbZS50eXBlXVtsXV07aWYocilpZigxPT09ci5sZW5ndGgpYihyWzBdLG4sZSk7ZWxzZSBmb3IodmFyIG89ci5zbGljZSgpLGk9MDtpPG8ubGVuZ3RoJiYoIWV8fCEwIT09ZVtWXSk7aSsrKWIob1tpXSxuLGUpfX0saz1mdW5jdGlvbihlKXtpZihlPWV8fHQuZXZlbnQpe3ZhciBuPXRoaXN8fGUudGFyZ2V0fHx0LHI9bltIW2UudHlwZV1bZl1dO2lmKHIpaWYoMT09PXIubGVuZ3RoKWIoclswXSxuLGUpO2Vsc2UgZm9yKHZhciBvPXIuc2xpY2UoKSxpPTA7aTxvLmxlbmd0aCYmKCFlfHwhMCE9PWVbVl0pO2krKyliKG9baV0sbixlKX19O2Z1bmN0aW9uIF8oZSxyKXtpZighZSlyZXR1cm4hMTt2YXIgYT0hMDtyJiZ2b2lkIDAhPT1yLnVzZUcmJihhPXIudXNlRyk7dmFyIGM9ciYmci52aCxiPSEwO3ImJnZvaWQgMCE9PXIuY2hrRHVwJiYoYj1yLmNoa0R1cCk7dmFyIF89ITE7ciYmdm9pZCAwIT09ci5ydCYmKF89ci5ydCk7Zm9yKHZhciB3PWU7dyYmIXcuaGFzT3duUHJvcGVydHkobyk7KXc9bih3KTtpZighdyYmZVtvXSYmKHc9ZSksIXcpcmV0dXJuITE7aWYod1toXSlyZXR1cm4hMTt2YXIgeCxFPXImJnIuZXZlbnROYW1lVG9TdHJpbmcsTz17fSxUPXdbaF09d1tvXSxJPXdbZChpKV09d1tpXSxqPXdbZCh1KV09d1t1XSxNPXdbZChzKV09d1tzXTtmdW5jdGlvbiBQKHQpe1d8fCJib29sZWFuIj09dHlwZW9mIE8ub3B0aW9uc3x8bnVsbD09Ty5vcHRpb25zfHwodC5vcHRpb25zPSEhTy5vcHRpb25zLmNhcHR1cmUsTy5vcHRpb25zPXQub3B0aW9ucyl9ciYmci5wcmVwZW5kJiYoeD13W2Qoci5wcmVwZW5kKV09d1tyLnByZXBlbmRdKTt2YXIgRD1hP2Z1bmN0aW9uKHQpe2lmKCFPLmlzRXhpc3RpbmcpcmV0dXJuIFAodCksVC5jYWxsKE8udGFyZ2V0LE8uZXZlbnROYW1lLE8uY2FwdHVyZT9rOm0sTy5vcHRpb25zKX06ZnVuY3Rpb24odCl7cmV0dXJuIFAodCksVC5jYWxsKE8udGFyZ2V0LE8uZXZlbnROYW1lLHQuaW52b2tlLE8ub3B0aW9ucyl9LFI9YT9mdW5jdGlvbih0KXtpZighdC5pc1JlbW92ZWQpe3ZhciBlPUhbdC5ldmVudE5hbWVdLG49dm9pZCAwO2UmJihuPWVbdC5jYXB0dXJlP2Y6bF0pO3ZhciByPW4mJnQudGFyZ2V0W25dO2lmKHIpZm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspaWYocltvXT09PXQpe3Iuc3BsaWNlKG8sMSksdC5pc1JlbW92ZWQ9ITAsMD09PXIubGVuZ3RoJiYodC5hbGxSZW1vdmVkPSEwLHQudGFyZ2V0W25dPW51bGwpO2JyZWFrfX1pZih0LmFsbFJlbW92ZWQpcmV0dXJuIEkuY2FsbCh0LnRhcmdldCx0LmV2ZW50TmFtZSx0LmNhcHR1cmU/azptLHQub3B0aW9ucyl9OmZ1bmN0aW9uKHQpe3JldHVybiBJLmNhbGwodC50YXJnZXQsdC5ldmVudE5hbWUsdC5pbnZva2UsdC5vcHRpb25zKX0sTj1yJiZyLmRpZmY/ci5kaWZmOmZ1bmN0aW9uKHQsZSl7dmFyIG49dHlwZW9mIGU7cmV0dXJuImZ1bmN0aW9uIj09PW4mJnQuY2FsbGJhY2s9PT1lfHwib2JqZWN0Ij09PW4mJnQub3JpZ2luYWxEZWxlZ2F0ZT09PWV9LEE9Wm9uZVtab25lLl9fc3ltYm9sX18oIkJMQUNLX0xJU1RFRF9FVkVOVFMiKV0sRj1mdW5jdGlvbihlLG4scixvLGksdSl7cmV0dXJuIHZvaWQgMD09PWkmJihpPSExKSx2b2lkIDA9PT11JiYodT0hMSksZnVuY3Rpb24oKXt2YXIgcz10aGlzfHx0LGg9YXJndW1lbnRzWzBdLHY9YXJndW1lbnRzWzFdO2lmKCF2KXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihTJiYidW5jYXVnaHRFeGNlcHRpb24iPT09aClyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGQ9ITE7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHYpe2lmKCF2LmhhbmRsZUV2ZW50KXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtkPSEwfWlmKCFjfHxjKGUsdixzLGFyZ3VtZW50cykpe3ZhciBnLHk9YXJndW1lbnRzWzJdO2lmKEEpZm9yKHZhciBtPTA7bTxBLmxlbmd0aDttKyspaWYoaD09PUFbbV0pcmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBrPSExO3ZvaWQgMD09PXk/Zz0hMTohMD09PXk/Zz0hMDohMT09PXk/Zz0hMTooZz0hIXkmJiEheS5jYXB0dXJlLGs9ISF5JiYhIXkub25jZSk7dmFyIF8sdz1ab25lLmN1cnJlbnQseD1IW2hdO2lmKHgpXz14W2c/ZjpsXTtlbHNle3ZhciBUPShFP0UoaCk6aCkrbCxJPShFP0UoaCk6aCkrZixqPXArVCxNPXArSTtIW2hdPXt9LEhbaF1bbF09aixIW2hdW2ZdPU0sXz1nP006an12YXIgUCxEPXNbX10sUj0hMTtpZihEKXtpZihSPSEwLGIpZm9yKG09MDttPEQubGVuZ3RoO20rKylpZihOKERbbV0sdikpcmV0dXJufWVsc2UgRD1zW19dPVtdO3ZhciBMPXMuY29uc3RydWN0b3IubmFtZSxGPUJbTF07RiYmKFA9RltoXSksUHx8KFA9TCtuKyhFP0UoaCk6aCkpLE8ub3B0aW9ucz15LGsmJihPLm9wdGlvbnMub25jZT0hMSksTy50YXJnZXQ9cyxPLmNhcHR1cmU9ZyxPLmV2ZW50TmFtZT1oLE8uaXNFeGlzdGluZz1SO3ZhciB6PWE/VTp2b2lkIDA7eiYmKHoudGFza0RhdGE9Tyk7dmFyIFo9dy5zY2hlZHVsZUV2ZW50VGFzayhQLHYseixyLG8pO3JldHVybiBPLnRhcmdldD1udWxsLHomJih6LnRhc2tEYXRhPW51bGwpLGsmJih5Lm9uY2U9ITApLChXfHwiYm9vbGVhbiIhPXR5cGVvZiBaLm9wdGlvbnMpJiYoWi5vcHRpb25zPXkpLFoudGFyZ2V0PXMsWi5jYXB0dXJlPWcsWi5ldmVudE5hbWU9aCxkJiYoWi5vcmlnaW5hbERlbGVnYXRlPXYpLHU/RC51bnNoaWZ0KFopOkQucHVzaChaKSxpP3M6dm9pZCAwfX19O3JldHVybiB3W29dPUYoVCx2LEQsUixfKSx4JiYod1tnXT1GKHgseSwoZnVuY3Rpb24odCl7cmV0dXJuIHguY2FsbChPLnRhcmdldCxPLmV2ZW50TmFtZSx0Lmludm9rZSxPLm9wdGlvbnMpfSksUixfLCEwKSksd1tpXT1mdW5jdGlvbigpe3ZhciBlLG49dGhpc3x8dCxyPWFyZ3VtZW50c1swXSxvPWFyZ3VtZW50c1syXTtlPXZvaWQgMCE9PW8mJighMD09PW98fCExIT09byYmISFvJiYhIW8uY2FwdHVyZSk7dmFyIGk9YXJndW1lbnRzWzFdO2lmKCFpKXJldHVybiBJLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZighY3x8YyhJLGksbixhcmd1bWVudHMpKXt2YXIgYSx1PUhbcl07dSYmKGE9dVtlP2Y6bF0pO3ZhciBzPWEmJm5bYV07aWYocylmb3IodmFyIHA9MDtwPHMubGVuZ3RoO3ArKyl7dmFyIGg9c1twXTtpZihOKGgsaSkpcmV0dXJuIHMuc3BsaWNlKHAsMSksaC5pc1JlbW92ZWQ9ITAsMD09PXMubGVuZ3RoJiYoaC5hbGxSZW1vdmVkPSEwLG5bYV09bnVsbCksaC56b25lLmNhbmNlbFRhc2soaCksXz9uOnZvaWQgMH1yZXR1cm4gSS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSx3W3VdPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXN8fHQsbj1hcmd1bWVudHNbMF0scj1bXSxvPVkoZSxFP0Uobik6biksaT0wO2k8by5sZW5ndGg7aSsrKXt2YXIgYT1vW2ldLGM9YS5vcmlnaW5hbERlbGVnYXRlP2Eub3JpZ2luYWxEZWxlZ2F0ZTphLmNhbGxiYWNrO3IucHVzaChjKX1yZXR1cm4gcn0sd1tzXT1mdW5jdGlvbigpe3ZhciBlPXRoaXN8fHQsbj1hcmd1bWVudHNbMF07aWYobil7dmFyIHI9SFtuXTtpZihyKXt2YXIgbz1yW2xdLGE9cltmXSxjPWVbb10sdT1lW2FdO2lmKGMpe3ZhciBwPWMuc2xpY2UoKTtmb3IoZD0wO2Q8cC5sZW5ndGg7ZCsrKXRoaXNbaV0uY2FsbCh0aGlzLG4sKGg9cFtkXSkub3JpZ2luYWxEZWxlZ2F0ZT9oLm9yaWdpbmFsRGVsZWdhdGU6aC5jYWxsYmFjayxoLm9wdGlvbnMpfWlmKHUpZm9yKHA9dS5zbGljZSgpLGQ9MDtkPHAubGVuZ3RoO2QrKyl7dmFyIGg7dGhpc1tpXS5jYWxsKHRoaXMsbiwoaD1wW2RdKS5vcmlnaW5hbERlbGVnYXRlP2gub3JpZ2luYWxEZWxlZ2F0ZTpoLmNhbGxiYWNrLGgub3B0aW9ucyl9fX1lbHNle2Zvcih2YXIgdj1PYmplY3Qua2V5cyhlKSxkPTA7ZDx2Lmxlbmd0aDtkKyspe3ZhciBnPXZbZF0seT1LLmV4ZWMoZyksYj15JiZ5WzFdO2ImJiJyZW1vdmVMaXN0ZW5lciIhPT1iJiZ0aGlzW3NdLmNhbGwodGhpcyxiKX10aGlzW3NdLmNhbGwodGhpcywicmVtb3ZlTGlzdGVuZXIiKX1pZihfKXJldHVybiB0aGlzfSxMKHdbb10sVCksTCh3W2ldLEkpLE0mJkwod1tzXSxNKSxqJiZMKHdbdV0saiksITB9Zm9yKHZhciB3PVtdLHg9MDt4PGUubGVuZ3RoO3grKyl3W3hdPV8oZVt4XSxyKTtyZXR1cm4gd31mdW5jdGlvbiBZKHQsZSl7dmFyIG49W107Zm9yKHZhciByIGluIHQpe3ZhciBvPUsuZXhlYyhyKSxpPW8mJm9bMV07aWYoaSYmKCFlfHxpPT09ZSkpe3ZhciBhPXRbcl07aWYoYSlmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKyluLnB1c2goYVtjXSl9fXJldHVybiBufWZ1bmN0aW9uIHEodCxlKXt2YXIgbj10LkV2ZW50O24mJm4ucHJvdG90eXBlJiZlLnBhdGNoTWV0aG9kKG4ucHJvdG90eXBlLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLChmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtlW1ZdPSEwLHQmJnQuYXBwbHkoZSxuKX19KSl9ZnVuY3Rpb24gUSh0LGUsbixyLG8pe3ZhciBpPVpvbmUuX19zeW1ib2xfXyhyKTtpZighZVtpXSl7dmFyIGE9ZVtpXT1lW3JdO2Vbcl09ZnVuY3Rpb24oaSxjLHUpe3JldHVybiBjJiZjLnByb3RvdHlwZSYmby5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbz1uKyIuIityKyI6OiIrZSxpPWMucHJvdG90eXBlO2lmKGkuaGFzT3duUHJvcGVydHkoZSkpe3ZhciBhPXQuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksZSk7YSYmYS52YWx1ZT8oYS52YWx1ZT10LndyYXBXaXRoQ3VycmVudFpvbmUoYS52YWx1ZSxvKSx0Ll9yZWRlZmluZVByb3BlcnR5KGMucHJvdG90eXBlLGUsYSkpOmlbZV0mJihpW2VdPXQud3JhcFdpdGhDdXJyZW50Wm9uZShpW2VdLG8pKX1lbHNlIGlbZV0mJihpW2VdPXQud3JhcFdpdGhDdXJyZW50Wm9uZShpW2VdLG8pKX0pKSxhLmNhbGwoZSxpLGMsdSl9LHQuYXR0YWNoT3JpZ2luVG9QYXRjaGVkKGVbcl0sYSl9fXZhciBKPVpvbmUuX19zeW1ib2xfXywkPU9iamVjdFtKKCJkZWZpbmVQcm9wZXJ0eSIpXT1PYmplY3QuZGVmaW5lUHJvcGVydHksdHQ9T2JqZWN0W0ooImdldE93blByb3BlcnR5RGVzY3JpcHRvciIpXT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGV0PU9iamVjdC5jcmVhdGUsbnQ9SigidW5jb25maWd1cmFibGVzIik7ZnVuY3Rpb24gcnQodCxlLG4pe3ZhciByPW4uY29uZmlndXJhYmxlO3JldHVybiBhdCh0LGUsbj1pdCh0LGUsbikscil9ZnVuY3Rpb24gb3QodCxlKXtyZXR1cm4gdCYmdFtudF0mJnRbbnRdW2VdfWZ1bmN0aW9uIGl0KHQsZSxuKXtyZXR1cm4gT2JqZWN0LmlzRnJvemVuKG4pfHwobi5jb25maWd1cmFibGU9ITApLG4uY29uZmlndXJhYmxlfHwodFtudF18fE9iamVjdC5pc0Zyb3plbih0KXx8JCh0LG50LHt3cml0YWJsZTohMCx2YWx1ZTp7fX0pLHRbbnRdJiYodFtudF1bZV09ITApKSxufWZ1bmN0aW9uIGF0KHQsZSxuLHIpe3RyeXtyZXR1cm4gJCh0LGUsbil9Y2F0Y2goaSl7aWYoIW4uY29uZmlndXJhYmxlKXRocm93IGk7dm9pZCAwPT09cj9kZWxldGUgbi5jb25maWd1cmFibGU6bi5jb25maWd1cmFibGU9cjt0cnl7cmV0dXJuICQodCxlLG4pfWNhdGNoKGkpe3ZhciBvPW51bGw7dHJ5e289SlNPTi5zdHJpbmdpZnkobil9Y2F0Y2goaSl7bz1uLnRvU3RyaW5nKCl9Y29uc29sZS5sb2coIkF0dGVtcHRpbmcgdG8gY29uZmlndXJlICciK2UrIicgd2l0aCBkZXNjcmlwdG9yICciK28rIicgb24gb2JqZWN0ICciK3QrIicgYW5kIGdvdCBlcnJvciwgZ2l2aW5nIHVwOiAiK2kpfX19dmFyIGN0PVsiYWJzb2x1dGVkZXZpY2VvcmllbnRhdGlvbiIsImFmdGVyaW5wdXQiLCJhZnRlcnByaW50IiwiYXBwaW5zdGFsbGVkIiwiYmVmb3JlaW5zdGFsbHByb21wdCIsImJlZm9yZXByaW50IiwiYmVmb3JldW5sb2FkIiwiZGV2aWNlbGlnaHQiLCJkZXZpY2Vtb3Rpb24iLCJkZXZpY2VvcmllbnRhdGlvbiIsImRldmljZW9yaWVudGF0aW9uYWJzb2x1dGUiLCJkZXZpY2Vwcm94aW1pdHkiLCJoYXNoY2hhbmdlIiwibGFuZ3VhZ2VjaGFuZ2UiLCJtZXNzYWdlIiwibW96YmVmb3JlcGFpbnQiLCJvZmZsaW5lIiwib25saW5lIiwicGFpbnQiLCJwYWdlc2hvdyIsInBhZ2VoaWRlIiwicG9wc3RhdGUiLCJyZWplY3Rpb25oYW5kbGVkIiwic3RvcmFnZSIsInVuaGFuZGxlZHJlamVjdGlvbiIsInVubG9hZCIsInVzZXJwcm94aW1pdHkiLCJ2cmRpc3BseWNvbm5lY3RlZCIsInZyZGlzcGxheWRpc2Nvbm5lY3RlZCIsInZyZGlzcGxheXByZXNlbnRjaGFuZ2UiXSx1dD1bImVuY3J5cHRlZCIsIndhaXRpbmdmb3JrZXkiLCJtc25lZWRrZXkiLCJtb3ppbnRlcnJ1cHRiZWdpbiIsIm1vemludGVycnVwdGVuZCJdLHN0PVsibG9hZCJdLGZ0PVsiYmx1ciIsImVycm9yIiwiZm9jdXMiLCJsb2FkIiwicmVzaXplIiwic2Nyb2xsIiwibWVzc2FnZWVycm9yIl0sbHQ9WyJib3VuY2UiLCJmaW5pc2giLCJzdGFydCJdLHB0PVsibG9hZHN0YXJ0IiwicHJvZ3Jlc3MiLCJhYm9ydCIsImVycm9yIiwibG9hZCIsInByb2dyZXNzIiwidGltZW91dCIsImxvYWRlbmQiLCJyZWFkeXN0YXRlY2hhbmdlIl0saHQ9WyJ1cGdyYWRlbmVlZGVkIiwiY29tcGxldGUiLCJhYm9ydCIsInN1Y2Nlc3MiLCJlcnJvciIsImJsb2NrZWQiLCJ2ZXJzaW9uY2hhbmdlIiwiY2xvc2UiXSx2dD1bImNsb3NlIiwiZXJyb3IiLCJvcGVuIiwibWVzc2FnZSJdLGR0PVsiZXJyb3IiLCJtZXNzYWdlIl0sZ3Q9WyJhYm9ydCIsImFuaW1hdGlvbmNhbmNlbCIsImFuaW1hdGlvbmVuZCIsImFuaW1hdGlvbml0ZXJhdGlvbiIsImF1eGNsaWNrIiwiYmVmb3JlaW5wdXQiLCJibHVyIiwiY2FuY2VsIiwiY2FucGxheSIsImNhbnBsYXl0aHJvdWdoIiwiY2hhbmdlIiwiY29tcG9zaXRpb25zdGFydCIsImNvbXBvc2l0aW9udXBkYXRlIiwiY29tcG9zaXRpb25lbmQiLCJjdWVjaGFuZ2UiLCJjbGljayIsImNsb3NlIiwiY29udGV4dG1lbnUiLCJjdXJlY2hhbmdlIiwiZGJsY2xpY2siLCJkcmFnIiwiZHJhZ2VuZCIsImRyYWdlbnRlciIsImRyYWdleGl0IiwiZHJhZ2xlYXZlIiwiZHJhZ292ZXIiLCJkcm9wIiwiZHVyYXRpb25jaGFuZ2UiLCJlbXB0aWVkIiwiZW5kZWQiLCJlcnJvciIsImZvY3VzIiwiZm9jdXNpbiIsImZvY3Vzb3V0IiwiZ290cG9pbnRlcmNhcHR1cmUiLCJpbnB1dCIsImludmFsaWQiLCJrZXlkb3duIiwia2V5cHJlc3MiLCJrZXl1cCIsImxvYWQiLCJsb2Fkc3RhcnQiLCJsb2FkZWRkYXRhIiwibG9hZGVkbWV0YWRhdGEiLCJsb3N0cG9pbnRlcmNhcHR1cmUiLCJtb3VzZWRvd24iLCJtb3VzZWVudGVyIiwibW91c2VsZWF2ZSIsIm1vdXNlbW92ZSIsIm1vdXNlb3V0IiwibW91c2VvdmVyIiwibW91c2V1cCIsIm1vdXNld2hlZWwiLCJvcmllbnRhdGlvbmNoYW5nZSIsInBhdXNlIiwicGxheSIsInBsYXlpbmciLCJwb2ludGVyY2FuY2VsIiwicG9pbnRlcmRvd24iLCJwb2ludGVyZW50ZXIiLCJwb2ludGVybGVhdmUiLCJwb2ludGVybG9ja2NoYW5nZSIsIm1venBvaW50ZXJsb2NrY2hhbmdlIiwid2Via2l0cG9pbnRlcmxvY2tlcmNoYW5nZSIsInBvaW50ZXJsb2NrZXJyb3IiLCJtb3pwb2ludGVybG9ja2Vycm9yIiwid2Via2l0cG9pbnRlcmxvY2tlcnJvciIsInBvaW50ZXJtb3ZlIiwicG9pbnRvdXQiLCJwb2ludGVyb3ZlciIsInBvaW50ZXJ1cCIsInByb2dyZXNzIiwicmF0ZWNoYW5nZSIsInJlc2V0IiwicmVzaXplIiwic2Nyb2xsIiwic2Vla2VkIiwic2Vla2luZyIsInNlbGVjdCIsInNlbGVjdGlvbmNoYW5nZSIsInNlbGVjdHN0YXJ0Iiwic2hvdyIsInNvcnQiLCJzdGFsbGVkIiwic3VibWl0Iiwic3VzcGVuZCIsInRpbWV1cGRhdGUiLCJ2b2x1bWVjaGFuZ2UiLCJ0b3VjaGNhbmNlbCIsInRvdWNobW92ZSIsInRvdWNoc3RhcnQiLCJ0b3VjaGVuZCIsInRyYW5zaXRpb25jYW5jZWwiLCJ0cmFuc2l0aW9uZW5kIiwid2FpdGluZyIsIndoZWVsIl0uY29uY2F0KFsid2ViZ2xjb250ZXh0cmVzdG9yZWQiLCJ3ZWJnbGNvbnRleHRsb3N0Iiwid2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvciJdLFsiYXV0b2NvbXBsZXRlIiwiYXV0b2NvbXBsZXRlZXJyb3IiXSxbInRvZ2dsZSJdLFsiYWZ0ZXJzY3JpcHRleGVjdXRlIiwiYmVmb3Jlc2NyaXB0ZXhlY3V0ZSIsIkRPTUNvbnRlbnRMb2FkZWQiLCJmcmVlemUiLCJmdWxsc2NyZWVuY2hhbmdlIiwibW96ZnVsbHNjcmVlbmNoYW5nZSIsIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCJtc2Z1bGxzY3JlZW5jaGFuZ2UiLCJmdWxsc2NyZWVuZXJyb3IiLCJtb3pmdWxsc2NyZWVuZXJyb3IiLCJ3ZWJraXRmdWxsc2NyZWVuZXJyb3IiLCJtc2Z1bGxzY3JlZW5lcnJvciIsInJlYWR5c3RhdGVjaGFuZ2UiLCJ2aXNpYmlsaXR5Y2hhbmdlIiwicmVzdW1lIl0sY3QsWyJiZWZvcmVjb3B5IiwiYmVmb3JlY3V0IiwiYmVmb3JlcGFzdGUiLCJjb3B5IiwiY3V0IiwicGFzdGUiLCJkcmFnc3RhcnQiLCJsb2FkZW5kIiwiYW5pbWF0aW9uc3RhcnQiLCJzZWFyY2giLCJ0cmFuc2l0aW9ucnVuIiwidHJhbnNpdGlvbnN0YXJ0Iiwid2Via2l0YW5pbWF0aW9uZW5kIiwid2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uIiwid2Via2l0YW5pbWF0aW9uc3RhcnQiLCJ3ZWJraXR0cmFuc2l0aW9uZW5kIl0sWyJhY3RpdmF0ZSIsImFmdGVydXBkYXRlIiwiYXJpYXJlcXVlc3QiLCJiZWZvcmVhY3RpdmF0ZSIsImJlZm9yZWRlYWN0aXZhdGUiLCJiZWZvcmVlZGl0Zm9jdXMiLCJiZWZvcmV1cGRhdGUiLCJjZWxsY2hhbmdlIiwiY29udHJvbHNlbGVjdCIsImRhdGFhdmFpbGFibGUiLCJkYXRhc2V0Y2hhbmdlZCIsImRhdGFzZXRjb21wbGV0ZSIsImVycm9ydXBkYXRlIiwiZmlsdGVyY2hhbmdlIiwibGF5b3V0Y29tcGxldGUiLCJsb3NlY2FwdHVyZSIsIm1vdmUiLCJtb3ZlZW5kIiwibW92ZXN0YXJ0IiwicHJvcGVydHljaGFuZ2UiLCJyZXNpemVlbmQiLCJyZXNpemVzdGFydCIsInJvd2VudGVyIiwicm93ZXhpdCIsInJvd3NkZWxldGUiLCJyb3dzaW5zZXJ0ZWQiLCJjb21tYW5kIiwiY29tcGFzc25lZWRzY2FsaWJyYXRpb24iLCJkZWFjdGl2YXRlIiwiaGVscCIsIm1zY29udGVudHpvb20iLCJtc21hbmlwdWxhdGlvbnN0YXRlY2hhbmdlZCIsIm1zZ2VzdHVyZWNoYW5nZSIsIm1zZ2VzdHVyZWRvdWJsZXRhcCIsIm1zZ2VzdHVyZWVuZCIsIm1zZ2VzdHVyZWhvbGQiLCJtc2dlc3R1cmVzdGFydCIsIm1zZ2VzdHVyZXRhcCIsIm1zZ290cG9pbnRlcmNhcHR1cmUiLCJtc2luZXJ0aWFzdGFydCIsIm1zbG9zdHBvaW50ZXJjYXB0dXJlIiwibXNwb2ludGVyY2FuY2VsIiwibXNwb2ludGVyZG93biIsIm1zcG9pbnRlcmVudGVyIiwibXNwb2ludGVyaG92ZXIiLCJtc3BvaW50ZXJsZWF2ZSIsIm1zcG9pbnRlcm1vdmUiLCJtc3BvaW50ZXJvdXQiLCJtc3BvaW50ZXJvdmVyIiwibXNwb2ludGVydXAiLCJwb2ludGVyb3V0IiwibXNzaXRlbW9kZWp1bXBsaXN0aXRlbXJlbW92ZWQiLCJtc3RodW1ibmFpbGNsaWNrIiwic3RvcCIsInN0b3JhZ2Vjb21taXQiXSk7ZnVuY3Rpb24geXQodCxlLG4pe2lmKCFufHwwPT09bi5sZW5ndGgpcmV0dXJuIGU7dmFyIHI9bi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRhcmdldD09PXR9KSk7aWYoIXJ8fDA9PT1yLmxlbmd0aClyZXR1cm4gZTt2YXIgbz1yWzBdLmlnbm9yZVByb3BlcnRpZXM7cmV0dXJuIGUuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4tMT09PW8uaW5kZXhPZih0KX0pKX1mdW5jdGlvbiBidCh0LGUsbixyKXt0JiZNKHQseXQodCxlLG4pLHIpfWZ1bmN0aW9uIG10KHQsZSl7aWYoKCFTfHxPKSYmIVpvbmVbdC5zeW1ib2woInBhdGNoRXZlbnRzIildKXt2YXIgcj0idW5kZWZpbmVkIiE9dHlwZW9mIFdlYlNvY2tldCxvPWUuX19ab25lX2lnbm9yZV9vbl9wcm9wZXJ0aWVzO2lmKEUpe3ZhciBpPXdpbmRvdyxhPVo/W3t0YXJnZXQ6aSxpZ25vcmVQcm9wZXJ0aWVzOlsiZXJyb3IiXX1dOltdO2J0KGksZ3QuY29uY2F0KFsibWVzc2FnZWVycm9yIl0pLG8/by5jb25jYXQoYSk6byxuKGkpKSxidChEb2N1bWVudC5wcm90b3R5cGUsZ3Qsbyksdm9pZCAwIT09aS5TVkdFbGVtZW50JiZidChpLlNWR0VsZW1lbnQucHJvdG90eXBlLGd0LG8pLGJ0KEVsZW1lbnQucHJvdG90eXBlLGd0LG8pLGJ0KEhUTUxFbGVtZW50LnByb3RvdHlwZSxndCxvKSxidChIVE1MTWVkaWFFbGVtZW50LnByb3RvdHlwZSx1dCxvKSxidChIVE1MRnJhbWVTZXRFbGVtZW50LnByb3RvdHlwZSxjdC5jb25jYXQoZnQpLG8pLGJ0KEhUTUxCb2R5RWxlbWVudC5wcm90b3R5cGUsY3QuY29uY2F0KGZ0KSxvKSxidChIVE1MRnJhbWVFbGVtZW50LnByb3RvdHlwZSxzdCxvKSxidChIVE1MSUZyYW1lRWxlbWVudC5wcm90b3R5cGUsc3Qsbyk7dmFyIGM9aS5IVE1MTWFycXVlZUVsZW1lbnQ7YyYmYnQoYy5wcm90b3R5cGUsbHQsbyk7dmFyIHU9aS5Xb3JrZXI7dSYmYnQodS5wcm90b3R5cGUsZHQsbyl9dmFyIHM9ZS5YTUxIdHRwUmVxdWVzdDtzJiZidChzLnByb3RvdHlwZSxwdCxvKTt2YXIgZj1lLlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7ZiYmYnQoZiYmZi5wcm90b3R5cGUscHQsbyksInVuZGVmaW5lZCIhPXR5cGVvZiBJREJJbmRleCYmKGJ0KElEQkluZGV4LnByb3RvdHlwZSxodCxvKSxidChJREJSZXF1ZXN0LnByb3RvdHlwZSxodCxvKSxidChJREJPcGVuREJSZXF1ZXN0LnByb3RvdHlwZSxodCxvKSxidChJREJEYXRhYmFzZS5wcm90b3R5cGUsaHQsbyksYnQoSURCVHJhbnNhY3Rpb24ucHJvdG90eXBlLGh0LG8pLGJ0KElEQkN1cnNvci5wcm90b3R5cGUsaHQsbykpLHImJmJ0KFdlYlNvY2tldC5wcm90b3R5cGUsdnQsbyl9fWZ1bmN0aW9uIGt0KHQsZSl7dmFyIG49ZS5nZXRHbG9iYWxPYmplY3RzKCkscj1uLmV2ZW50TmFtZXMsbz1uLmdsb2JhbFNvdXJjZXMsaT1uLnpvbmVTeW1ib2xFdmVudE5hbWVzLGE9bi5UUlVFX1NUUixjPW4uRkFMU0VfU1RSLHU9bi5aT05FX1NZTUJPTF9QUkVGSVgscz0iQW5jaG9yLEFyZWEsQXVkaW8sQlIsQmFzZSxCYXNlRm9udCxCb2R5LEJ1dHRvbixDYW52YXMsQ29udGVudCxETGlzdCxEaXJlY3RvcnksRGl2LEVtYmVkLEZpZWxkU2V0LEZvbnQsRm9ybSxGcmFtZSxGcmFtZVNldCxIUixIZWFkLEhlYWRpbmcsSHRtbCxJRnJhbWUsSW1hZ2UsSW5wdXQsS2V5Z2VuLExJLExhYmVsLExlZ2VuZCxMaW5rLE1hcCxNYXJxdWVlLE1lZGlhLE1lbnUsTWV0YSxNZXRlcixNb2QsT0xpc3QsT2JqZWN0LE9wdEdyb3VwLE9wdGlvbixPdXRwdXQsUGFyYWdyYXBoLFByZSxQcm9ncmVzcyxRdW90ZSxTY3JpcHQsU2VsZWN0LFNvdXJjZSxTcGFuLFN0eWxlLFRhYmxlQ2FwdGlvbixUYWJsZUNlbGwsVGFibGVDb2wsVGFibGUsVGFibGVSb3csVGFibGVTZWN0aW9uLFRleHRBcmVhLFRpdGxlLFRyYWNrLFVMaXN0LFVua25vd24sVmlkZW8iLGY9IkFwcGxpY2F0aW9uQ2FjaGUsRXZlbnRTb3VyY2UsRmlsZVJlYWRlcixJbnB1dE1ldGhvZENvbnRleHQsTWVkaWFDb250cm9sbGVyLE1lc3NhZ2VQb3J0LE5vZGUsUGVyZm9ybWFuY2UsU1ZHRWxlbWVudEluc3RhbmNlLFNoYXJlZFdvcmtlcixUZXh0VHJhY2ssVGV4dFRyYWNrQ3VlLFRleHRUcmFja0xpc3QsV2ViS2l0TmFtZWRGbG93LFdpbmRvdyxXb3JrZXIsV29ya2VyR2xvYmFsU2NvcGUsWE1MSHR0cFJlcXVlc3QsWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldCxYTUxIdHRwUmVxdWVzdFVwbG9hZCxJREJSZXF1ZXN0LElEQk9wZW5EQlJlcXVlc3QsSURCRGF0YWJhc2UsSURCVHJhbnNhY3Rpb24sSURCQ3Vyc29yLERCSW5kZXgsV2ViU29ja2V0Ii5zcGxpdCgiLCIpLGw9W10scD10Lnd0ZixoPXMuc3BsaXQoIiwiKTtwP2w9aC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiJIVE1MIit0KyJFbGVtZW50In0pKS5jb25jYXQoZik6dC5FdmVudFRhcmdldD9sLnB1c2goIkV2ZW50VGFyZ2V0Iik6bD1mO2Zvcih2YXIgdj10Ll9fWm9uZV9kaXNhYmxlX0lFX2NoZWNrfHwhMSxkPXQuX19ab25lX2VuYWJsZV9jcm9zc19jb250ZXh0X2NoZWNrfHwhMSxnPWUuaXNJRU9yRWRnZSgpLHk9ImZ1bmN0aW9uIF9fQlJPV1NFUlRPT0xTX0NPTlNPTEVfU0FGRUZVTkMoKSB7IFtuYXRpdmUgY29kZV0gfSIsYj0wO2I8ci5sZW5ndGg7YisrKXt2YXIgbT11KygoUz1yW2JdKStjKSxrPXUrKFMrYSk7aVtTXT17fSxpW1NdW2NdPW0saVtTXVthXT1rfWZvcihiPTA7YjxzLmxlbmd0aDtiKyspZm9yKHZhciBfPWhbYl0sdz1vW19dPXt9LHg9MDt4PHIubGVuZ3RoO3grKyl7dmFyIFM7d1tTPXJbeF1dPV8rIi5hZGRFdmVudExpc3RlbmVyOiIrU312YXIgRT1bXTtmb3IoYj0wO2I8bC5sZW5ndGg7YisrKXt2YXIgTz10W2xbYl1dO0UucHVzaChPJiZPLnByb3RvdHlwZSl9cmV0dXJuIGUucGF0Y2hFdmVudFRhcmdldCh0LEUse3ZoOmZ1bmN0aW9uKHQsZSxuLHIpe2lmKCF2JiZnKXtpZihkKXRyeXt2YXIgbztpZigiW29iamVjdCBGdW5jdGlvbldyYXBwZXJdIj09PShvPWUudG9TdHJpbmcoKSl8fG89PXkpcmV0dXJuIHQuYXBwbHkobixyKSwhMX1jYXRjaChpKXtyZXR1cm4gdC5hcHBseShuLHIpLCExfWVsc2UgaWYoIltvYmplY3QgRnVuY3Rpb25XcmFwcGVyXSI9PT0obz1lLnRvU3RyaW5nKCkpfHxvPT15KXJldHVybiB0LmFwcGx5KG4sciksITF9ZWxzZSBpZihkKXRyeXtlLnRvU3RyaW5nKCl9Y2F0Y2goaSl7cmV0dXJuIHQuYXBwbHkobixyKSwhMX1yZXR1cm4hMH19KSxab25lW2Uuc3ltYm9sKCJwYXRjaEV2ZW50VGFyZ2V0IildPSEhdC5FdmVudFRhcmdldCwhMH1mdW5jdGlvbiBfdCh0LGUpe3ZhciBuPXQuZ2V0R2xvYmFsT2JqZWN0cygpO2lmKCghbi5pc05vZGV8fG4uaXNNaXgpJiYhZnVuY3Rpb24odCxlKXt2YXIgbj10LmdldEdsb2JhbE9iamVjdHMoKTtpZigobi5pc0Jyb3dzZXJ8fG4uaXNNaXgpJiYhdC5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSFRNTEVsZW1lbnQucHJvdG90eXBlLCJvbmNsaWNrIikmJiJ1bmRlZmluZWQiIT10eXBlb2YgRWxlbWVudCl7dmFyIHI9dC5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRWxlbWVudC5wcm90b3R5cGUsIm9uY2xpY2siKTtpZihyJiYhci5jb25maWd1cmFibGUpcmV0dXJuITE7aWYocil7dC5PYmplY3REZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiEwfX0pO3ZhciBvPSEhZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikub25jbGljaztyZXR1cm4gdC5PYmplY3REZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIsciksb319dmFyIGk9ZS5YTUxIdHRwUmVxdWVzdDtpZighaSlyZXR1cm4hMTt2YXIgYT1pLnByb3RvdHlwZSxjPXQuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsIm9ucmVhZHlzdGF0ZWNoYW5nZSIpO2lmKGMpcmV0dXJuIHQuT2JqZWN0RGVmaW5lUHJvcGVydHkoYSwib25yZWFkeXN0YXRlY2hhbmdlIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSksbz0hIShzPW5ldyBpKS5vbnJlYWR5c3RhdGVjaGFuZ2UsdC5PYmplY3REZWZpbmVQcm9wZXJ0eShhLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGN8fHt9KSxvO3ZhciB1PXQuc3ltYm9sKCJmYWtlIik7dC5PYmplY3REZWZpbmVQcm9wZXJ0eShhLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1t1XX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXNbdV09dH19KTt2YXIgcz1uZXcgaSxmPWZ1bmN0aW9uKCl7fTtyZXR1cm4gcy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZixvPXNbdV09PT1mLHMub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsb30odCxlKSl7dmFyIHI9InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJTb2NrZXQ7IWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LmdldEdsb2JhbE9iamVjdHMoKS5ldmVudE5hbWVzLG49dC5zeW1ib2woInVuYm91bmQiKSxyPWZ1bmN0aW9uKHIpe3ZhciBvPWVbcl0saT0ib24iK287c2VsZi5hZGRFdmVudExpc3RlbmVyKG8sKGZ1bmN0aW9uKGUpe3ZhciByLG8sYT1lLnRhcmdldDtmb3Iobz1hP2EuY29uc3RydWN0b3IubmFtZSsiLiIraToidW5rbm93bi4iK2k7YTspYVtpXSYmIWFbaV1bbl0mJigocj10LndyYXBXaXRoQ3VycmVudFpvbmUoYVtpXSxvKSlbbl09YVtpXSxhW2ldPXIpLGE9YS5wYXJlbnRFbGVtZW50fSksITApfSxvPTA7bzxlLmxlbmd0aDtvKyspcihvKX0odCksdC5wYXRjaENsYXNzKCJYTUxIdHRwUmVxdWVzdCIpLHImJmZ1bmN0aW9uKHQsZSl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCkscj1uLkFERF9FVkVOVF9MSVNURU5FUl9TVFIsbz1uLlJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFIsaT1lLldlYlNvY2tldDtlLkV2ZW50VGFyZ2V0fHx0LnBhdGNoRXZlbnRUYXJnZXQoZSxbaS5wcm90b3R5cGVdKSxlLldlYlNvY2tldD1mdW5jdGlvbihlLG4pe3ZhciBhLGMsdT1hcmd1bWVudHMubGVuZ3RoPjE/bmV3IGkoZSxuKTpuZXcgaShlKSxzPXQuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHUsIm9ubWVzc2FnZSIpO3JldHVybiBzJiYhMT09PXMuY29uZmlndXJhYmxlPyhhPXQuT2JqZWN0Q3JlYXRlKHUpLGM9dSxbcixvLCJzZW5kIiwiY2xvc2UiXS5mb3JFYWNoKChmdW5jdGlvbihlKXthW2VdPWZ1bmN0aW9uKCl7dmFyIG49dC5BcnJheVNsaWNlLmNhbGwoYXJndW1lbnRzKTtpZihlPT09cnx8ZT09PW8pe3ZhciBpPW4ubGVuZ3RoPjA/blswXTp2b2lkIDA7aWYoaSl7dmFyIGM9Wm9uZS5fX3N5bWJvbF9fKCJPTl9QUk9QRVJUWSIraSk7dVtjXT1hW2NdfX1yZXR1cm4gdVtlXS5hcHBseSh1LG4pfX0pKSk6YT11LHQucGF0Y2hPblByb3BlcnRpZXMoYSxbImNsb3NlIiwiZXJyb3IiLCJtZXNzYWdlIiwib3BlbiJdLGMpLGF9O3ZhciBhPWUuV2ViU29ja2V0O2Zvcih2YXIgYyBpbiBpKWFbY109aVtjXX0odCxlKSxab25lW3Quc3ltYm9sKCJwYXRjaEV2ZW50cyIpXT0hMH19Wm9uZS5fX2xvYWRfcGF0Y2goInV0aWwiLChmdW5jdGlvbihuLHIsdSl7dS5wYXRjaE9uUHJvcGVydGllcz1NLHUucGF0Y2hNZXRob2Q9Tix1Lg=="
}