D3
OG
Old school D3 from simpler times
All examples
By author
By category
About
jbkunst
Full window
Github gist
t-SNE Pokemon
t-Distributed Stochastic Neighbor Embedding applied over 700 pokemon
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEltcGxlbWVudCBhIHZhZ3VlIGZhY3NpbWlsaWUgb2YgalF1ZXJ5J3MgZGF0YSBtZXRob2QKICBmdW5jdGlvbiBlbGVtZW50RGF0YShlbCwgbmFtZSwgdmFsdWUpIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDIpIHsKICAgICAgcmV0dXJuIGVsWyJodG1sd2lkZ2V0X2RhdGFfIiArIG5hbWVdOwogICAgfSBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDMpIHsKICAgICAgZWxbImh0bWx3aWRnZXRfZGF0YV8iICsgbmFtZV0gPSB2YWx1ZTsKICAgICAgcmV0dXJuIGVsOwogICAgfSBlbHNlIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBlbGVtZW50RGF0YTogIiArCiAgICAgICAgYXJndW1lbnRzLmxlbmd0aCk7CiAgICB9CiAgfQoKICAvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM0NDYxNzAvZXNjYXBlLXN0cmluZy1mb3ItdXNlLWluLWphdmFzY3JpcHQtcmVnZXgKICBmdW5jdGlvbiBlc2NhcGVSZWdFeHAoc3RyKSB7CiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1tcLVxbXF1cL1x7XH1cKFwpXCpcK1w/XC5cXFxeXCRcfF0vZywgIlxcJCYiKTsKICB9CgogIGZ1bmN0aW9uIGhhc0NsYXNzKGVsLCBjbGFzc05hbWUpIHsKICAgIHZhciByZSA9IG5ldyBSZWdFeHAoIlxcYiIgKyBlc2NhcGVSZWdFeHAoY2xhc3NOYW1lKSArICJcXGIiKTsKICAgIHJldHVybiByZS50ZXN0KGVsLmNsYXNzTmFtZSk7CiAgfQoKICAvLyBlbGVtZW50cyAtIGFycmF5IChvciBhcnJheS1saWtlIG9iamVjdCkgb2YgSFRNTCBlbGVtZW50cwogIC8vIGNsYXNzTmFtZSAtIGNsYXNzIG5hbWUgdG8gdGVzdCBmb3IKICAvLyBpbmNsdWRlIC0gaWYgdHJ1ZSwgb25seSByZXR1cm4gZWxlbWVudHMgd2l0aCBnaXZlbiBjbGFzc05hbWU7CiAgLy8gICBpZiBmYWxzZSwgb25seSByZXR1cm4gZWxlbWVudHMgKndpdGhvdXQqIGdpdmVuIGNsYXNzTmFtZQogIGZ1bmN0aW9uIGZpbHRlckJ5Q2xhc3MoZWxlbWVudHMsIGNsYXNzTmFtZSwgaW5jbHVkZSkgewogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKGhhc0NsYXNzKGVsZW1lbnRzW2ldLCBjbGFzc05hbWUpID09IGluY2x1ZGUpCiAgICAgICAgcmVzdWx0cy5wdXNoKGVsZW1lbnRzW2ldKTsKICAgIH0KICAgIHJldHVybiByZXN1bHRzOwogIH0KCiAgZnVuY3Rpb24gb24ob2JqLCBldmVudE5hbWUsIGZ1bmMpIHsKICAgIGlmIChvYmouYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICBvYmouYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGZ1bmMsIGZhbHNlKTsKICAgIH0gZWxzZSBpZiAob2JqLmF0dGFjaEV2ZW50KSB7CiAgICAgIG9iai5hdHRhY2hFdmVudChldmVudE5hbWUsIGZ1bmMpOwogICAgfQogIH0KCiAgZnVuY3Rpb24gb2ZmKG9iaiwgZXZlbnROYW1lLCBmdW5jKSB7CiAgICBpZiAob2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIpCiAgICAgIG9iai5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZnVuYywgZmFsc2UpOwogICAgZWxzZSBpZiAob2JqLmRldGFjaEV2ZW50KSB7CiAgICAgIG9iai5kZXRhY2hFdmVudChldmVudE5hbWUsIGZ1bmMpOwogICAgfQogIH0KCiAgLy8gVHJhbnNsYXRlIGFycmF5IG9mIHZhbHVlcyB0byB0b3AvcmlnaHQvYm90dG9tL2xlZnQsIGFzIHVzdWFsIHdpdGgKICAvLyB0aGUgInBhZGRpbmciIENTUyBwcm9wZXJ0eQogIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9wYWRkaW5nCiAgZnVuY3Rpb24gdW5wYWNrUGFkZGluZyh2YWx1ZSkgewogICAgaWYgKHR5cGVvZih2YWx1ZSkgPT09ICJudW1iZXIiKQogICAgICB2YWx1ZSA9IFt2YWx1ZV07CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAxKSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzBdLCBib3R0b206IHZhbHVlWzBdLCBsZWZ0OiB2YWx1ZVswXX07CiAgICB9CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAyKSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzFdLCBib3R0b206IHZhbHVlWzBdLCBsZWZ0OiB2YWx1ZVsxXX07CiAgICB9CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAzKSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzFdLCBib3R0b206IHZhbHVlWzJdLCBsZWZ0OiB2YWx1ZVsxXX07CiAgICB9CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSA0KSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzFdLCBib3R0b206IHZhbHVlWzJdLCBsZWZ0OiB2YWx1ZVszXX07CiAgICB9CiAgfQoKICAvLyBDb252ZXJ0IGFuIHVucGFja2VkIHBhZGRpbmcgb2JqZWN0IHRvIGEgQ1NTIHZhbHVlCiAgZnVuY3Rpb24gcGFkZGluZ1RvQ3NzKHBhZGRpbmdPYmopIHsKICAgIHJldHVybiBwYWRkaW5nT2JqLnRvcCArICJweCAiICsgcGFkZGluZ09iai5yaWdodCArICJweCAiICsgcGFkZGluZ09iai5ib3R0b20gKyAicHggIiArIHBhZGRpbmdPYmoubGVmdCArICJweCI7CiAgfQoKICAvLyBNYWtlcyBhIG51bWJlciBzdWl0YWJsZSBmb3IgQ1NTCiAgZnVuY3Rpb24gcHgoeCkgewogICAgaWYgKHR5cGVvZih4KSA9PT0gIm51bWJlciIpCiAgICAgIHJldHVybiB4ICsgInB4IjsKICAgIGVsc2UKICAgICAgcmV0dXJuIHg7CiAgfQoKICAvLyBSZXRyaWV2ZXMgcnVudGltZSB3aWRnZXQgc2l6aW5nIGluZm9ybWF0aW9uIGZvciBhbiBlbGVtZW50LgogIC8vIFRoZSByZXR1cm4gdmFsdWUgaXMgZWl0aGVyIG51bGwsIG9yIGFuIG9iamVjdCB3aXRoIGZpbGwsIHBhZGRpbmcsCiAgLy8gZGVmYXVsdFdpZHRoLCBkZWZhdWx0SGVpZ2h0IGZpZWxkcy4KICBmdW5jdGlvbiBzaXppbmdQb2xpY3koZWwpIHsKICAgIHZhciBzaXppbmdFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtkYXRhLWZvcj0nIiArIGVsLmlkICsgIiddW3R5cGU9J2FwcGxpY2F0aW9uL2h0bWx3aWRnZXQtc2l6aW5nJ10iKTsKICAgIGlmICghc2l6aW5nRWwpCiAgICAgIHJldHVybiBudWxsOwogICAgdmFyIHNwID0gSlNPTi5wYXJzZShzaXppbmdFbC50ZXh0Q29udGVudCB8fCBzaXppbmdFbC50ZXh0IHx8ICJ7fSIpOwogICAgaWYgKHZpZXdlck1vZGUpIHsKICAgICAgcmV0dXJuIHNwLnZpZXdlcjsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBzcC5icm93c2VyOwogICAgfQogIH0KCiAgZnVuY3Rpb24gaW5pdFNpemluZyhlbCkgewogICAgdmFyIHNpemluZyA9IHNpemluZ1BvbGljeShlbCk7CiAgICBpZiAoIXNpemluZykKICAgICAgcmV0dXJuOwoKICAgIHZhciBjZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaHRtbHdpZGdldF9jb250YWluZXIiKTsKICAgIGlmICghY2VsKQogICAgICByZXR1cm47CgogICAgaWYgKHR5cGVvZihzaXppbmcucGFkZGluZykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luID0gIjAiOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmcgPSBwYWRkaW5nVG9Dc3ModW5wYWNrUGFkZGluZyhzaXppbmcucGFkZGluZykpOwogICAgfQoKICAgIGlmIChzaXppbmcuZmlsbCkgewogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gImhpZGRlbiI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5oZWlnaHQgPSAiMTAwJSI7CiAgICAgIGlmIChjZWwpIHsKICAgICAgICBjZWwuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwogICAgICAgIHZhciBwYWQgPSB1bnBhY2tQYWRkaW5nKHNpemluZy5wYWRkaW5nKTsKICAgICAgICBjZWwuc3R5bGUudG9wID0gcGFkLnRvcCArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLnJpZ2h0ID0gcGFkLnJpZ2h0ICsgInB4IjsKICAgICAgICBjZWwuc3R5bGUuYm90dG9tID0gcGFkLmJvdHRvbSArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLmxlZnQgPSBwYWQubGVmdCArICJweCI7CiAgICAgICAgZWwuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICB9CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGNlbC5vZmZzZXRXaWR0aDsgfSwKICAgICAgICBnZXRIZWlnaHQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gY2VsLm9mZnNldEhlaWdodDsgfQogICAgICB9OwoKICAgIH0gZWxzZSB7CiAgICAgIGVsLnN0eWxlLndpZHRoID0gcHgoc2l6aW5nLndpZHRoKTsKICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gcHgoc2l6aW5nLmhlaWdodCk7CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGVsLm9mZnNldFdpZHRoOyB9LAogICAgICAgIGdldEhlaWdodDogZnVuY3Rpb24oKSB7IHJldHVybiBlbC5vZmZzZXRIZWlnaHQ7IH0KICAgICAgfTsKICAgIH0KICB9CgogIC8vIERlZmF1bHQgaW1wbGVtZW50YXRpb25zIGZvciBtZXRob2RzCiAgdmFyIGRlZmF1bHRzID0gewogICAgZmluZDogZnVuY3Rpb24oc2NvcGUpIHsKICAgICAgcmV0dXJuIHF1ZXJ5U2VsZWN0b3JBbGwoc2NvcGUsICIuIiArIHRoaXMubmFtZSk7CiAgICB9LAogICAgcmVuZGVyRXJyb3I6IGZ1bmN0aW9uKGVsLCBlcnIpIHsKICAgICAgdmFyICRlbCA9ICQoZWwpOwoKICAgICAgdGhpcy5jbGVhckVycm9yKGVsKTsKCiAgICAgIC8vIEFkZCBhbGwgdGhlc2UgZXJyb3IgY2xhc3NlcywgYXMgU2hpbnkgZG9lcwogICAgICB2YXIgZXJyQ2xhc3MgPSAic2hpbnktb3V0cHV0LWVycm9yIjsKICAgICAgaWYgKGVyci50eXBlICE9PSBudWxsKSB7CiAgICAgICAgLy8gdXNlIHRoZSBjbGFzc2VzIG9mIHRoZSBlcnJvciBjb25kaXRpb24gYXMgQ1NTIGNsYXNzIG5hbWVzCiAgICAgICAgZXJyQ2xhc3MgPSBlcnJDbGFzcyArICIgIiArICQubWFwKGFzQXJyYXkoZXJyLnR5cGUpLCBmdW5jdGlvbih0eXBlKSB7CiAgICAgICAgICByZXR1cm4gZXJyQ2xhc3MgKyAiLSIgKyB0eXBlOwogICAgICAgIH0pLmpvaW4oIiAiKTsKICAgICAgfQogICAgICBlcnJDbGFzcyA9IGVyckNsYXNzICsgIiBodG1sd2lkZ2V0cy1lcnJvciI7CgogICAgICAvLyBJcyBlbCBpbmxpbmUgb3IgYmxvY2s/IElmIGlubGluZSBvciBpbmxpbmUtYmxvY2ssIGp1c3QgZGlzcGxheTpub25lIGl0CiAgICAgIC8vIGFuZCBhZGQgYW4gaW5saW5lIGVycm9yLgogICAgICB2YXIgZGlzcGxheSA9ICRlbC5jc3MoImRpc3BsYXkiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgZGlzcGxheSk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICAkZWwuaGlkZSgpOwogICAgICAgIGlmIChlcnIubWVzc2FnZSAhPT0gIiIpIHsKICAgICAgICAgIHZhciBlcnJvclNwYW4gPSAkKCI8c3Bhbj4iKS5hZGRDbGFzcyhlcnJDbGFzcyk7CiAgICAgICAgICBlcnJvclNwYW4udGV4dChlcnIubWVzc2FnZSk7CiAgICAgICAgICAkZWwuYWZ0ZXIoZXJyb3JTcGFuKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9PT0gImJsb2NrIikgewogICAgICAgIC8vIElmIGJsb2NrLCBhZGQgYW4gZXJyb3IganVzdCBhZnRlciB0aGUgZWwsIHNldCB2aXNpYmlsaXR5Om5vbmUgb24gdGhlCiAgICAgICAgLy8gZWwsIGFuZCBwb3NpdGlvbiB0aGUgZXJyb3IgdG8gYmUgb24gdG9wIG9mIHRoZSBlbC4KICAgICAgICAvLyBNYXJrIGl0IHdpdGggYSB1bmlxdWUgSUQgYW5kIENTUyBjbGFzcyBzbyB3ZSBjYW4gcmVtb3ZlIGl0IGxhdGVyLgogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaGlkZGVuIik7CiAgICAgICAgaWYgKGVyci5tZXNzYWdlICE9PSAiIikgewogICAgICAgICAgdmFyIGVycm9yRGl2ID0gJCgiPGRpdj4iKS5hZGRDbGFzcyhlcnJDbGFzcykuY3NzKCJwb3NpdGlvbiIsICJhYnNvbHV0ZSIpCiAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgLmNzcygibGVmdCIsIGVsLm9mZnNldExlZnQpCiAgICAgICAgICAgIC8vIHNldHRpbmcgd2lkdGggY2FuIHB1c2ggb3V0IHRoZSBwYWdlIHNpemUsIGZvcmNpbmcgb3RoZXJ3aXNlCiAgICAgICAgICAgIC8vIHVubmVjZXNzYXJ5IHNjcm9sbGJhcnMgdG8gYXBwZWFyIGFuZCBtYWtpbmcgaXQgaW1wb3NzaWJsZSBmb3IKICAgICAgICAgICAgLy8gdGhlIGVsZW1lbnQgdG8gc2hyaW5rOyBzbyB1c2UgbWF4LXdpZHRoIGluc3RlYWQKICAgICAgICAgICAgLmNzcygibWF4V2lkdGgiLCBlbC5vZmZzZXRXaWR0aCkKICAgICAgICAgICAgLmNzcygiaGVpZ2h0IiwgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgIGVycm9yRGl2LnRleHQoZXJyLm1lc3NhZ2UpOwogICAgICAgICAgJGVsLmFmdGVyKGVycm9yRGl2KTsKCiAgICAgICAgICAvLyBSZWFsbHkgZHVtYiB3YXkgdG8ga2VlcCB0aGUgc2l6ZS9wb3NpdGlvbiBvZiB0aGUgZXJyb3IgaW4gc3luYyB3aXRoCiAgICAgICAgICAvLyB0aGUgcGFyZW50IGVsZW1lbnQgYXMgdGhlIHdpbmRvdyBpcyByZXNpemVkIG9yIHdoYXRldmVyLgogICAgICAgICAgdmFyIGludElkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghZXJyb3JEaXZbMF0ucGFyZW50RWxlbWVudCkgewogICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50SWQpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlcnJvckRpdgogICAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgICAuY3NzKCJsZWZ0IiwgZWwub2Zmc2V0TGVmdCkKICAgICAgICAgICAgICAuY3NzKCJtYXhXaWR0aCIsIGVsLm9mZnNldFdpZHRoKQogICAgICAgICAgICAgIC5jc3MoImhlaWdodCIsIGVsLm9mZnNldEhlaWdodCk7CiAgICAgICAgICB9LCA1MDApOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGNsZWFyRXJyb3I6IGZ1bmN0aW9uKGVsKSB7CiAgICAgIHZhciAkZWwgPSAkKGVsKTsKICAgICAgdmFyIGRpc3BsYXkgPSAkZWwuZGF0YSgicmVzdG9yZS1kaXNwbGF5LW1vZGUiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgbnVsbCk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICBpZiAoZGlzcGxheSkKICAgICAgICAgICRlbC5jc3MoImRpc3BsYXkiLCBkaXNwbGF5KTsKICAgICAgICAkKGVsLm5leHRTaWJsaW5nKS5maWx0ZXIoIi5odG1sd2lkZ2V0cy1lcnJvciIpLnJlbW92ZSgpOwogICAgICB9IGVsc2UgaWYgKGRpc3BsYXkgPT09ICJibG9jayIpewogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaW5oZXJpdCIpOwogICAgICAgICQoZWwubmV4dFNpYmxpbmcpLmZpbHRlcigiLmh0bWx3aWRnZXRzLWVycm9yIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0sCiAgICBzaXppbmc6IHt9CiAgfTsKCiAgLy8gQ2FsbGVkIGJ5IHdpZGdldCBiaW5kaW5ncyB0byByZWdpc3RlciBhIG5ldyB0eXBlIG9mIHdpZGdldC4gVGhlIGRlZmluaXRpb24KICAvLyBvYmplY3QgY2FuIGNvbnRhaW4gdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogIC8vIC0gbmFtZSAocmVxdWlyZWQpIC0gQSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgYmluZGluZyBuYW1lLCB3aGljaCB3aWxsIGJlCiAgLy8gICB1c2VkIGJ5IGRlZmF1bHQgYXMgdGhlIENTUyBjbGFzc25hbWUgdG8gbG9vayBmb3IuCiAgLy8gLSBpbml0aWFsaXplIChvcHRpb25hbCkgLSBBIGZ1bmN0aW9uKGVsKSB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uY2UgcGVyCiAgLy8gICB3aWRnZXQgZWxlbWVudDsgaWYgYSB2YWx1ZSBpcyByZXR1cm5lZCwgaXQgd2lsbCBiZSBwYXNzZWQgYXMgdGhlIHRoaXJkCiAgLy8gICB2YWx1ZSB0byByZW5kZXJWYWx1ZS4KICAvLyAtIHJlbmRlclZhbHVlIChyZXF1aXJlZCkgLSBBIGZ1bmN0aW9uKGVsLCBkYXRhLCBpbml0VmFsdWUpIHRoYXQgd2lsbCBiZQogIC8vICAgY2FsbGVkIHdpdGggZGF0YS4gU3RhdGljIGNvbnRleHRzIHdpbGwgY2F1c2UgdGhpcyB0byBiZSBjYWxsZWQgb25jZSBwZXIKICAvLyAgIGVsZW1lbnQ7IFNoaW55IGFwcHMgd2lsbCBjYXVzZSB0aGlzIHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBwZXIKICAvLyAgIGVsZW1lbnQsIGFzIHRoZSBkYXRhIGNoYW5nZXMuCiAgd2luZG93LkhUTUxXaWRnZXRzLndpZGdldCA9IGZ1bmN0aW9uKGRlZmluaXRpb24pIHsKICAgIGlmICghZGVmaW5pdGlvbi5uYW1lKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIG5hbWUiKTsKICAgIH0KICAgIGlmICghZGVmaW5pdGlvbi50eXBlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHR5cGUiKTsKICAgIH0KICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgb3V0cHV0IHdpZGdldHMKICAgIGlmIChkZWZpbml0aW9uLnR5cGUgIT09ICJvdXRwdXQiKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHdpZGdldCB0eXBlICciICsgZGVmaW5pdGlvbi50eXBlICsgIiciKTsKICAgIH0KICAgIC8vIFRPRE86IFZlcmlmeSB0aGF0IC5uYW1lIGlzIGEgdmFsaWQgQ1NTIGNsYXNzbmFtZQogICAgaWYgKCFkZWZpbml0aW9uLnJlbmRlclZhbHVlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHJlbmRlclZhbHVlIGZ1bmN0aW9uIik7CiAgICB9CgogICAgLy8gRm9yIHN0YXRpYyByZW5kZXJpbmcgKG5vbi1TaGlueSksIHVzZSBhIHNpbXBsZSB3aWRnZXQgcmVnaXN0cmF0aW9uCiAgICAvLyBzY2hlbWUuIFdlIGFsc28gdXNlIHRoaXMgc2NoZW1lIGZvciBTaGlueSBhcHBzL2RvY3VtZW50cyB0aGF0IGFsc28KICAgIC8vIGNvbnRhaW4gc3RhdGljIHdpZGdldHMuCiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgLy8gTWVyZ2UgZGVmYXVsdHMgaW50byB0aGUgZGVmaW5pdGlvbjsgZG9uJ3QgbXV0YXRlIHRoZSBvcmlnaW5hbCBkZWZpbml0aW9uLgogICAgdmFyIHN0YXRpY0JpbmRpbmcgPSBleHRlbmQoe30sIGRlZmF1bHRzLCBkZWZpbml0aW9uKTsKICAgIG92ZXJyaWRlTWV0aG9kKHN0YXRpY0JpbmRpbmcsICJmaW5kIiwgZnVuY3Rpb24oc3VwZXJmdW5jKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzY29wZSkgewogICAgICAgIHZhciByZXN1bHRzID0gc3VwZXJmdW5jKHNjb3BlKTsKICAgICAgICAvLyBGaWx0ZXIgb3V0IFNoaW55IG91dHB1dHMsIHdlIG9ubHkgd2FudCB0aGUgc3RhdGljIGtpbmQKICAgICAgICByZXR1cm4gZmlsdGVyQnlDbGFzcyhyZXN1bHRzLCAiaHRtbC13aWRnZXQtb3V0cHV0IiwgZmFsc2UpOwogICAgICB9OwogICAgfSk7CiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cy5wdXNoKHN0YXRpY0JpbmRpbmcpOwoKICAgIGlmIChzaGlueU1vZGUpIHsKICAgICAgLy8gU2hpbnkgaXMgcnVubmluZy4gUmVnaXN0ZXIgdGhlIGRlZmluaXRpb24gYXMgYW4gb3V0cHV0IGJpbmRpbmcuCgogICAgICAvLyBNZXJnZSBkZWZhdWx0cyBpbnRvIHRoZSBkZWZpbml0aW9uOyBkb24ndCBtdXRhdGUgdGhlIG9yaWdpbmFsIGRlZmluaXRpb24uCiAgICAgIC8vIFRoZSBiYXNlIG9iamVjdCBpcyBhIFNoaW55IG91dHB1dCBiaW5kaW5nIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZSwKICAgICAgLy8gb3IgYW4gZW1wdHkgb2JqZWN0IGlmIHdlJ3JlIG5vdC4KICAgICAgdmFyIHNoaW55QmluZGluZyA9IGV4dGVuZChuZXcgU2hpbnkuT3V0cHV0QmluZGluZygpLCBkZWZhdWx0cywgZGVmaW5pdGlvbik7CgogICAgICAvLyBXcmFwIHJlbmRlclZhbHVlIHRvIGhhbmRsZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggdW5mb3J0dW5hdGVseSBpc24ndAogICAgICAvLyBzdXBwb3J0ZWQgbmF0aXZlbHkgYnkgU2hpbnkgYXQgdGhlIHRpbWUgb2YgdGhpcyB3cml0aW5nLgoKICAgICAgLy8gTkI6IHNoaW55QmluZGluZy5pbml0aWFsaXplIG1heSBiZSB1bmRlZmluZWQsIGFzIGl0J3Mgb3B0aW9uYWwuCgogICAgICAvLyBSZW5hbWUgaW5pdGlhbGl6ZSB0byBtYWtlIHN1cmUgaXQgaXNuJ3QgY2FsbGVkIGJ5IGEgZnV0dXJlIHZlcnNpb24KICAgICAgLy8gb2YgU2hpbnkgdGhhdCBkb2VzIHN1cHBvcnQgaW5pdGlhbGl6ZSBkaXJlY3RseS4KICAgICAgc2hpbnlCaW5kaW5nLl9odG1sd2lkZ2V0c19pbml0aWFsaXplID0gc2hpbnlCaW5kaW5nLmluaXRpYWxpemU7CiAgICAgIGRlbGV0ZSBzaGlueUJpbmRpbmcuaW5pdGlhbGl6ZTsKCiAgICAgIG92ZXJyaWRlTWV0aG9kKHNoaW55QmluZGluZywgImZpbmQiLCBmdW5jdGlvbihzdXBlcmZ1bmMpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oc2NvcGUpIHsKCiAgICAgICAgICB2YXIgcmVzdWx0cyA9IHN1cGVyZnVuYyhzY29wZSk7CgogICAgICAgICAgLy8gT25seSByZXR1cm4gZWxlbWVudHMgdGhhdCBhcmUgU2hpbnkgb3V0cHV0cywgbm90IHN0YXRpYyBvbmVzCiAgICAgICAgICB2YXIgZHluYW1pY1Jlc3VsdHMgPSByZXN1bHRzLmZpbHRlcigiLmh0bWwtd2lkZ2V0LW91dHB1dCIpOwoKICAgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB3aGF0ZXZlciBjYXVzZWQgU2hpbnkgdG8gdGhpbmsgdGhlcmUgbWlnaHQgYmUKICAgICAgICAgIC8vIG5ldyBkeW5hbWljIG91dHB1dHMsIGFsc28gY2F1c2VkIHRoZXJlIHRvIGJlIG5ldyBzdGF0aWMgb3V0cHV0cy4KICAgICAgICAgIC8vIFNpbmNlIHRoZXJlIG1pZ2h0IGJlIGxvdHMgb2YgZGlmZmVyZW50IGh0bWx3aWRnZXRzIGJpbmRpbmdzLCB3ZQogICAgICAgICAgLy8gc2NoZWR1bGUgZXhlY3V0aW9uIGZvciBsYXRlci0tbm8gbmVlZCB0byBzdGF0aWNSZW5kZXIgbXVsdGlwbGUKICAgICAgICAgIC8vIHRpbWVzLgogICAgICAgICAgaWYgKHJlc3VsdHMubGVuZ3RoICE9PSBkeW5hbWljUmVzdWx0cy5sZW5ndGgpCiAgICAgICAgICAgIHNjaGVkdWxlU3RhdGljUmVuZGVyKCk7CgogICAgICAgICAgcmV0dXJuIGR5bmFtaWNSZXN1bHRzOwogICAgICAgIH07CiAgICAgIH0pOwoKICAgICAgb3ZlcnJpZGVNZXRob2Qoc2hpbnlCaW5kaW5nLCAicmVuZGVyVmFsdWUiLCBmdW5jdGlvbihzdXBlcmZ1bmMpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oZWwsIGRhdGEpIHsKICAgICAgICAgIC8vIFJlc29sdmUgc3RyaW5ncyBtYXJrZWQgYXMgamF2YXNjcmlwdCBsaXRlcmFscyB0byBvYmplY3RzCiAgICAgICAgICBpZiAoIShkYXRhLmV2YWxzIGluc3RhbmNlb2YgQXJyYXkpKSBkYXRhLmV2YWxzID0gW2RhdGEuZXZhbHNdOwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGRhdGEuZXZhbHMgJiYgaSA8IGRhdGEuZXZhbHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyKGRhdGEueCwgZGF0YS5ldmFsc1tpXSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIXRoaXMucmVuZGVyT25OdWxsVmFsdWUpIHsKICAgICAgICAgICAgaWYgKGRhdGEueCA9PT0gbnVsbCkgewogICAgICAgICAgICAgIGVsLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZWwuc3R5bGUudmlzaWJpbGl0eSA9ICJpbmhlcml0IjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKCFlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIikpIHsKICAgICAgICAgICAgaW5pdFNpemluZyhlbCk7CgogICAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIiwgdHJ1ZSk7CiAgICAgICAgICAgIGlmICh0aGlzLl9odG1sd2lkZ2V0c19pbml0aWFsaXplKSB7CiAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX2h0bWx3aWRnZXRzX2luaXRpYWxpemUoZWwsIGVsLm9mZnNldFdpZHRoLAogICAgICAgICAgICAgICAgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0IiwgcmVzdWx0KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgU2hpbnkucmVuZGVyRGVwZW5kZW5jaWVzKGRhdGEuZGVwcyk7CiAgICAgICAgICBzdXBlcmZ1bmMoZWwsIGRhdGEueCwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpKTsKICAgICAgICB9OwogICAgICB9KTsKCiAgICAgIG92ZXJyaWRlTWV0aG9kKHNoaW55QmluZGluZywgInJlc2l6ZSIsIGZ1bmN0aW9uKHN1cGVyZnVuYykgewogICAgICAgIHJldHVybiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCkgewogICAgICAgICAgLy8gU2hpbnkgY2FuIGNhbGwgcmVzaXplIGJlZm9yZSBpbml0aWFsaXplL3JlbmRlclZhbHVlIGhhdmUgYmVlbgogICAgICAgICAgLy8gY2FsbGVkLCB3aGljaCBkb2Vzbid0IG1ha2Ugc2Vuc2UgZm9yIHdpZGdldHMuCiAgICAgICAgICBpZiAoZWxlbWVudERhdGEoZWwsICJpbml0aWFsaXplZCIpKSB7CiAgICAgICAgICAgIHN1cGVyZnVuYyhlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9KTsKCiAgICAgIFNoaW55Lm91dHB1dEJpbmRpbmdzLnJlZ2lzdGVyKHNoaW55QmluZGluZywgc2hpbnlCaW5kaW5nLm5hbWUpOwogICAgfQogIH07CgogIHZhciBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogIGZ1bmN0aW9uIHNjaGVkdWxlU3RhdGljUmVuZGVyKCkgewogICAgaWYgKCFzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQpIHsKICAgICAgc2NoZWR1bGVTdGF0aWNSZW5kZXJUaW1lcklkID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgICAgfSwgMSk7CiAgICB9CiAgfQoKICAvLyBSZW5kZXIgc3RhdGljIHdpZGdldHMgYWZ0ZXIgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRpbmcKICAvLyBTdGF0aWNhbGx5IHJlbmRlciBhbGwgZWxlbWVudHMgdGhhdCBhcmUgb2YgdGhpcyB3aWRnZXQncyBjbGFzcwogIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIgPSBmdW5jdGlvbigpIHsKICAgIHZhciBiaW5kaW5ncyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgZm9yRWFjaChiaW5kaW5ncywgZnVuY3Rpb24oYmluZGluZykgewogICAgICB2YXIgbWF0Y2hlcyA9IGJpbmRpbmcuZmluZChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpOwogICAgICBmb3JFYWNoKG1hdGNoZXMsIGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgdmFyIHNpemVPYmogPSBpbml0U2l6aW5nKGVsLCBiaW5kaW5nKTsKCiAgICAgICAgaWYgKGhhc0NsYXNzKGVsLCAiaHRtbC13aWRnZXQtc3RhdGljLWJvdW5kIikpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgZWwuY2xhc3NOYW1lID0gZWwuY2xhc3NOYW1lICsgIiBodG1sLXdpZGdldC1zdGF0aWMtYm91bmQiOwoKICAgICAgICB2YXIgaW5pdFJlc3VsdDsKICAgICAgICBpZiAoYmluZGluZy5pbml0aWFsaXplKSB7CiAgICAgICAgICBpbml0UmVzdWx0ID0gYmluZGluZy5pbml0aWFsaXplKGVsLAogICAgICAgICAgICBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgIHNpemVPYmogPyBzaXplT2JqLmdldEhlaWdodCgpIDogZWwub2Zmc2V0SGVpZ2h0CiAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKGJpbmRpbmcucmVzaXplKSB7CiAgICAgICAgICB2YXIgbGFzdFNpemUgPSB7fTsKICAgICAgICAgIHZhciByZXNpemVIYW5kbGVyID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgc2l6ZSA9IHsKICAgICAgICAgICAgICB3OiBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgICAgaDogc2l6ZU9iaiA/IHNpemVPYmouZ2V0SGVpZ2h0KCkgOiBlbC5vZmZzZXRIZWlnaHQKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHNpemUudyA9PT0gMCAmJiBzaXplLmggPT09IDApCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBpZiAoc2l6ZS53ID09PSBsYXN0U2l6ZS53ICYmIHNpemUuaCA9PT0gbGFzdFNpemUuaCkKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGxhc3RTaXplID0gc2l6ZTsKICAgICAgICAgICAgYmluZGluZy5yZXNpemUoZWwsIHNpemUudywgc2l6ZS5oLCBpbml0UmVzdWx0KTsKICAgICAgICAgIH07CgogICAgICAgICAgb24od2luZG93LCAicmVzaXplIiwgcmVzaXplSGFuZGxlcik7CgogICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIGNhc2VzIHdoZXJlIHdlJ3JlIHJ1bm5pbmcgaW4gYSBTaGlueQogICAgICAgICAgLy8gYXBwLCBidXQgdGhlIHdpZGdldCBpdHNlbGYgaXMgbm90IGEgU2hpbnkgb3V0cHV0LCBidXQKICAgICAgICAgIC8vIHJhdGhlciBhIHNpbXBsZSBzdGF0aWMgd2lkZ2V0LiBPbmUgZXhhbXBsZSBvZiB0aGlzIGlzCiAgICAgICAgICAvLyBhbiBybWFya2Rvd24gZG9jdW1lbnQgdGhhdCBoYXMgcnVudGltZTpzaGlueSBhbmQgd2lkZ2V0CiAgICAgICAgICAvLyB0aGF0IGlzbid0IGluIGEgcmVuZGVyIGZ1bmN0aW9uLiBTaGlueSBvbmx5IGtub3dzIHRvCiAgICAgICAgICAvLyBjYWxsIHJlc2l6ZSBoYW5kbGVycyBmb3IgU2hpbnkgb3V0cHV0cywgbm90IGZvciBzdGF0aWMKICAgICAgICAgIC8vIHdpZGdldHMsIHNvIHdlIGRvIGl0IG91cnNlbHZlcy4KICAgICAgICAgIGlmICh3aW5kb3cualF1ZXJ5KSB7CiAgICAgICAgICAgIHdpbmRvdy5qUXVlcnkoZG9jdW1lbnQpLm9uKCJzaG93biIsIHJlc2l6ZUhhbmRsZXIpOwogICAgICAgICAgICB3aW5kb3cualF1ZXJ5KGRvY3VtZW50KS5vbigiaGlkZGVuIiwgcmVzaXplSGFuZGxlcik7CiAgICAgICAgICB9CgogICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBzcGVjaWZpYyBjYXNlIG9mIGlvc2xpZGVzLCB3aGljaAogICAgICAgICAgLy8gZmxpcHMgc2xpZGVzIGJldHdlZW4gZGlzcGxheTpub25lIGFuZCBkaXNwbGF5OmJsb2NrLgogICAgICAgICAgLy8gSWRlYWxseSB3ZSB3b3VsZCBub3QgaGF2ZSB0byBoYXZlIGlvc2xpZGUtc3BlY2lmaWMgY29kZQogICAgICAgICAgLy8gaGVyZSwgYnV0IHJhdGhlciBoYXZlIGlvc2xpZGVzIHJhaXNlIGEgZ2VuZXJpYyBldmVudCwKICAgICAgICAgIC8vIGJ1dCB0aGUgcm1hcmtkb3duIHBhY2thZ2UganVzdCB3ZW50IHRvIENSQU4gc28gdGhlCiAgICAgICAgICAvLyB3aW5kb3cgdG8gZ2V0dGluZyB0aGF0IGZpeGVkIG1heSBiZSBsb25nLgogICAgICAgICAgaWYgKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgICAgICAgIC8vIEl0J3MgT0sgdG8gbGltaXQgdGhpcyB0byB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcgogICAgICAgICAgICAvLyBicm93c2VycyBiZWNhdXNlIGlvc2xpZGVzIGl0c2VsZiBvbmx5IHN1cHBvcnRzCiAgICAgICAgICAgIC8vIHN1Y2ggYnJvd3NlcnMuCiAgICAgICAgICAgIG9uKGRvY3VtZW50LCAic2xpZGVlbnRlciIsIHJlc2l6ZUhhbmRsZXIpOwogICAgICAgICAgICBvbihkb2N1bWVudCwgInNsaWRlbGVhdmUiLCByZXNpemVIYW5kbGVyKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciBzY3JpcHREYXRhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W2RhdGEtZm9yPSciICsgZWwuaWQgKyAiJ11bdHlwZT0nYXBwbGljYXRpb24vanNvbiddIik7CiAgICAgICAgaWYgKHNjcmlwdERhdGEpIHsKICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShzY3JpcHREYXRhLnRleHRDb250ZW50IHx8IHNjcmlwdERhdGEudGV4dCk7CiAgICAgICAgICAvLyBSZXNvbHZlIHN0cmluZ3MgbWFya2VkIGFzIGphdmFzY3JpcHQgbGl0ZXJhbHMgdG8gb2JqZWN0cwogICAgICAgICAgaWYgKCEoZGF0YS5ldmFscyBpbnN0YW5jZW9mIEFycmF5KSkgZGF0YS5ldmFscyA9IFtkYXRhLmV2YWxzXTsKICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBkYXRhLmV2YWxzICYmIGsgPCBkYXRhLmV2YWxzLmxlbmd0aDsgaysrKSB7CiAgICAgICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5ldmFsdWF0ZVN0cmluZ01lbWJlcihkYXRhLngsIGRhdGEuZXZhbHNba10pOwogICAgICAgICAgfQogICAgICAgICAgYmluZGluZy5yZW5kZXJWYWx1ZShlbCwgZGF0YS54LCBpbml0UmVzdWx0KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSk7CiAgfQoKICAvLyBXYWl0IHVudGlsIGFmdGVyIHRoZSBkb2N1bWVudCBoYXMgbG9hZGVkIHRvIHJlbmRlciB0aGUgd2lkZ2V0cy4KICBpZiAoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkgewogICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgYXJndW1lbnRzLmNhbGxlZSwgZmFsc2UpOwogICAgICB3aW5kb3cuSFRNTFdpZGdldHMuc3RhdGljUmVuZGVyKCk7CiAgICB9LCBmYWxzZSk7CiAgfSBlbHNlIGlmIChkb2N1bWVudC5hdHRhY2hFdmVudCkgewogICAgZG9jdW1lbnQuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsIGZ1bmN0aW9uKCkgewogICAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gImNvbXBsZXRlIikgewogICAgICAgIGRvY3VtZW50LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCBhcmd1bWVudHMuY2FsbGVlKTsKICAgICAgICB3aW5kb3cuSFRNTFdpZGdldHMuc3RhdGljUmVuZGVyKCk7CiAgICAgIH0KICAgIH0pOwogIH0KCgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5nZXRBdHRhY2htZW50VXJsID0gZnVuY3Rpb24oZGVwbmFtZSwga2V5KSB7CiAgICAvLyBJZiBubyBrZXksIGRlZmF1bHQgdG8gdGhlIGZpcnN0IGl0ZW0KICAgIGlmICh0eXBlb2Yoa2V5KSA9PT0gInVuZGVmaW5lZCIpCiAgICAgIGtleSA9IDE7CgogICAgdmFyIGxpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkZXBuYW1lICsgIi0iICsga2V5ICsgIi1hdHRhY2htZW50Iik7CiAgICBpZiAoIWxpbmspIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJBdHRhY2htZW50ICIgKyBkZXBuYW1lICsgIi8iICsga2V5ICsgIiBub3QgZm91bmQgaW4gZG9jdW1lbnQiKTsKICAgIH0KICAgIHJldHVybiBsaW5rLmdldEF0dHJpYnV0ZSgiaHJlZiIpOwogIH07CgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5kYXRhZnJhbWVUb0QzID0gZnVuY3Rpb24oZGYpIHsKICAgIHZhciBuYW1lcyA9IFtdOwogICAgdmFyIGxlbmd0aDsKICAgIGZvciAodmFyIG5hbWUgaW4gZGYpIHsKICAgICAgICBpZiAoZGYuaGFzT3duUHJvcGVydHkobmFtZSkpCiAgICAgICAgICAgIG5hbWVzLnB1c2gobmFtZSk7CiAgICAgICAgaWYgKHR5cGVvZihkZltuYW1lXSkgIT09ICJvYmplY3QiIHx8IHR5cGVvZihkZltuYW1lXS5sZW5ndGgpID09PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFsbCBmaWVsZHMgbXVzdCBiZSBhcnJheXMiKTsKICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZihsZW5ndGgpICE9PSAidW5kZWZpbmVkIiAmJiBsZW5ndGggIT09IGRmW25hbWVdLmxlbmd0aCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFsbCBmaWVsZHMgbXVzdCBiZSBhcnJheXMgb2YgdGhlIHNhbWUgbGVuZ3RoIik7CiAgICAgICAgfQogICAgICAgIGxlbmd0aCA9IGRmW25hbWVdLmxlbmd0aDsKICAgIH0KICAgIHZhciByZXN1bHRzID0gW107CiAgICB2YXIgaXRlbTsKICAgIGZvciAodmFyIHJvdyA9IDA7IHJvdyA8IGxlbmd0aDsgcm93KyspIHsKICAgICAgICBpdGVtID0ge307CiAgICAgICAgZm9yICh2YXIgY29sID0gMDsgY29sIDwgbmFtZXMubGVuZ3RoOyBjb2wrKykgewogICAgICAgICAgICBpdGVtW25hbWVzW2NvbF1dID0gZGZbbmFtZXNbY29sXV1bcm93XTsKICAgICAgICB9CiAgICAgICAgcmVzdWx0cy5wdXNoKGl0ZW0pOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfTsKCiAgd2luZG93LkhUTUxXaWRnZXRzLnRyYW5zcG9zZUFycmF5MkQgPSBmdW5jdGlvbihhcnJheSkgewogICAgICB2YXIgbmV3QXJyYXkgPSBhcnJheVswXS5tYXAoZnVuY3Rpb24oY29sLCBpKSB7CiAgICAgICAgICByZXR1cm4gYXJyYXkubWFwKGZ1bmN0aW9uKHJvdykgewogICAgICAgICAgICAgIHJldHVybiByb3dbaV0KICAgICAgICAgIH0pCiAgICAgIH0pOwogICAgICByZXR1cm4gbmV3QXJyYXk7CiAgfTsKICAvLyBTcGxpdCB2YWx1ZSBhdCBzcGxpdENoYXIsIGJ1dCBhbGxvdyBzcGxpdENoYXIgdG8gYmUgZXNjYXBlZAogIC8vIHVzaW5nIGVzY2FwZUNoYXIuIEFueSBvdGhlciBjaGFyYWN0ZXJzIGVzY2FwZWQgYnkgZXNjYXBlQ2hhcgogIC8vIHdpbGwgYmUgaW5jbHVkZWQgYXMgdXN1YWwgKGluY2x1ZGluZyBlc2NhcGVDaGFyIGl0c2VsZikuCiAgZnVuY3Rpb24gc3BsaXRXaXRoRXNjYXBlKHZhbHVlLCBzcGxpdENoYXIsIGVzY2FwZUNoYXIpIHsKICAgIHZhciByZXN1bHRzID0gW107CiAgICB2YXIgZXNjYXBlTW9kZSA9IGZhbHNlOwogICAgdmFyIGN1cnJlbnRSZXN1bHQgPSAiIjsKICAgIGZvciAodmFyIHBvcyA9IDA7IHBvcyA8IHZhbHVlLmxlbmd0aDsgcG9zKyspIHsKICAgICAgaWYgKCFlc2NhcGVNb2RlKSB7CiAgICAgICAgaWYgKHZhbHVlW3Bvc10gPT09IHNwbGl0Q2hhcikgewogICAgICAgICAgcmVzdWx0cy5wdXNoKGN1cnJlbnRSZXN1bHQpOwogICAgICAgICAgY3VycmVudFJlc3VsdCA9ICIiOwogICAgICAgIH0gZWxzZSBpZiAodmFsdWVbcG9zXSA9PT0gZXNjYXBlQ2hhcikgewogICAgICAgICAgZXNjYXBlTW9kZSA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGN1cnJlbnRSZXN1bHQgKz0gdmFsdWVbcG9zXTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY3VycmVudFJlc3VsdCArPSB2YWx1ZVtwb3NdOwogICAgICAgIGVzY2FwZU1vZGUgPSBmYWxzZTsKICAgICAgfQogICAgfQogICAgaWYgKGN1cnJlbnRSZXN1bHQgIT09ICIiKSB7CiAgICAgIHJlc3VsdHMucHVzaChjdXJyZW50UmVzdWx0KTsKICAgIH0KICAgIHJldHVybiByZXN1bHRzOwogIH0KICAvLyBGdW5jdGlvbiBhdXRob3JlZCBieSBZaWh1aS9KSiBBbGxhaXJlCiAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyID0gZnVuY3Rpb24obywgbWVtYmVyKSB7CiAgICB2YXIgcGFydHMgPSBzcGxpdFdpdGhFc2NhcGUobWVtYmVyLCAnLicsICdcXCcpOwogICAgZm9yICh2YXIgaSA9IDAsIGwgPSBwYXJ0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKICAgICAgdmFyIHBhcnQgPSBwYXJ0c1tpXTsKICAgICAgLy8gcGFydCBtYXkgYmUgYSBjaGFyYWN0ZXIgb3IgJ251bWVyaWMnIG1lbWJlciBuYW1lCiAgICAgIGlmIChvICE9PSBudWxsICYmIHR5cGVvZiBvID09PSAib2JqZWN0IiAmJiBwYXJ0IGluIG8pIHsKICAgICAgICBpZiAoaSA9PSAobCAtIDEpKSB7IC8vIGlmIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lIHRoZW4gZXZhbHVsYXRlCiAgICAgICAgICBpZiAodHlwZW9mIG9bcGFydF0gPT09ICJzdHJpbmciKQogICAgICAgICAgICBvW3BhcnRdID0gZXZhbCgiKCIgKyBvW3BhcnRdICsgIikiKTsKICAgICAgICB9IGVsc2UgeyAvLyBvdGhlcndpc2UgY29udGludWUgdG8gbmV4dCBlbWJlZGRlZCBvYmplY3QKICAgICAgICAgIG8gPSBvW3BhcnRdOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH07Cn0pKCk7Cgo="></script> <script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMS4xIHwgKGMpIDIwMDUsIDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8NCiFmdW5jdGlvbihhLGIpeyJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPWEuZG9jdW1lbnQ/YihhLCEwKTpmdW5jdGlvbihhKXtpZighYS5kb2N1bWVudCl0aHJvdyBuZXcgRXJyb3IoImpRdWVyeSByZXF1aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnQiKTtyZXR1cm4gYihhKX06YihhKX0oInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OnRoaXMsZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkPWMuc2xpY2UsZT1jLmNvbmNhdCxmPWMucHVzaCxnPWMuaW5kZXhPZixoPXt9LGk9aC50b1N0cmluZyxqPWguaGFzT3duUHJvcGVydHksaz17fSxsPSIxLjExLjEiLG09ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IG0uZm4uaW5pdChhLGIpfSxuPS9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZyxvPS9eLW1zLS8scD0vLShbXGRhLXpdKS9naSxxPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIudG9VcHBlckNhc2UoKX07bS5mbj1tLnByb3RvdHlwZT17anF1ZXJ5OmwsY29uc3RydWN0b3I6bSxzZWxlY3RvcjoiIixsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIGQuY2FsbCh0aGlzKX0sZ2V0OmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hPzA+YT90aGlzW2ErdGhpcy5sZW5ndGhdOnRoaXNbYV06ZC5jYWxsKHRoaXMpfSxwdXNoU3RhY2s6ZnVuY3Rpb24oYSl7dmFyIGI9bS5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksYSk7cmV0dXJuIGIucHJldk9iamVjdD10aGlzLGIuY29udGV4dD10aGlzLmNvbnRleHQsYn0sZWFjaDpmdW5jdGlvbihhLGIpe3JldHVybiBtLmVhY2godGhpcyxhLGIpfSxtYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG0ubWFwKHRoaXMsZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5jYWxsKGIsYyxiKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZC5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxlcTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmxlbmd0aCxjPSthKygwPmE/YjowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYz49MCYmYj5jP1t0aGlzW2NdXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IobnVsbCl9LHB1c2g6Zixzb3J0OmMuc29ydCxzcGxpY2U6Yy5zcGxpY2V9LG0uZXh0ZW5kPW0uZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZSxmLGc9YXJndW1lbnRzWzBdfHx7fSxoPTEsaT1hcmd1bWVudHMubGVuZ3RoLGo9ITE7Zm9yKCJib29sZWFuIj09dHlwZW9mIGcmJihqPWcsZz1hcmd1bWVudHNbaF18fHt9LGgrKyksIm9iamVjdCI9PXR5cGVvZiBnfHxtLmlzRnVuY3Rpb24oZyl8fChnPXt9KSxoPT09aSYmKGc9dGhpcyxoLS0pO2k+aDtoKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW2hdKSlmb3IoZCBpbiBlKWE9Z1tkXSxjPWVbZF0sZyE9PWMmJihqJiZjJiYobS5pc1BsYWluT2JqZWN0KGMpfHwoYj1tLmlzQXJyYXkoYykpKT8oYj8oYj0hMSxmPWEmJm0uaXNBcnJheShhKT9hOltdKTpmPWEmJm0uaXNQbGFpbk9iamVjdChhKT9hOnt9LGdbZF09bS5leHRlbmQoaixmLGMpKTp2b2lkIDAhPT1jJiYoZ1tkXT1jKSk7cmV0dXJuIGd9LG0uZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhsK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oYSl7dGhyb3cgbmV3IEVycm9yKGEpfSxub29wOmZ1bmN0aW9uKCl7fSxpc0Z1bmN0aW9uOmZ1bmN0aW9uKGEpe3JldHVybiJmdW5jdGlvbiI9PT1tLnR5cGUoYSl9LGlzQXJyYXk6QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oYSl7cmV0dXJuImFycmF5Ij09PW0udHlwZShhKX0saXNXaW5kb3c6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWEmJmE9PWEud2luZG93fSxpc051bWVyaWM6ZnVuY3Rpb24oYSl7cmV0dXJuIW0uaXNBcnJheShhKSYmYS1wYXJzZUZsb2F0KGEpPj0wfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiO2ZvcihiIGluIGEpcmV0dXJuITE7cmV0dXJuITB9LGlzUGxhaW5PYmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGI7aWYoIWF8fCJvYmplY3QiIT09bS50eXBlKGEpfHxhLm5vZGVUeXBlfHxtLmlzV2luZG93KGEpKXJldHVybiExO3RyeXtpZihhLmNvbnN0cnVjdG9yJiYhai5jYWxsKGEsImNvbnN0cnVjdG9yIikmJiFqLmNhbGwoYS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKSlyZXR1cm4hMX1jYXRjaChjKXtyZXR1cm4hMX1pZihrLm93bkxhc3QpZm9yKGIgaW4gYSlyZXR1cm4gai5jYWxsKGEsYik7Zm9yKGIgaW4gYSk7cmV0dXJuIHZvaWQgMD09PWJ8fGouY2FsbChhLGIpfSx0eXBlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hP2ErIiI6Im9iamVjdCI9PXR5cGVvZiBhfHwiZnVuY3Rpb24iPT10eXBlb2YgYT9oW2kuY2FsbChhKV18fCJvYmplY3QiOnR5cGVvZiBhfSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGIpe2ImJm0udHJpbShiKSYmKGEuZXhlY1NjcmlwdHx8ZnVuY3Rpb24oYil7YS5ldmFsLmNhbGwoYSxiKX0pKGIpfSxjYW1lbENhc2U6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZShvLCJtcy0iKS5yZXBsYWNlKHAscSl9LG5vZGVOYW1lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWIudG9Mb3dlckNhc2UoKX0sZWFjaDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZT0wLGY9YS5sZW5ndGgsZz1yKGEpO2lmKGMpe2lmKGcpe2Zvcig7Zj5lO2UrKylpZihkPWIuYXBwbHkoYVtlXSxjKSxkPT09ITEpYnJlYWt9ZWxzZSBmb3IoZSBpbiBhKWlmKGQ9Yi5hcHBseShhW2VdLGMpLGQ9PT0hMSlicmVha31lbHNlIGlmKGcpe2Zvcig7Zj5lO2UrKylpZihkPWIuY2FsbChhW2VdLGUsYVtlXSksZD09PSExKWJyZWFrfWVsc2UgZm9yKGUgaW4gYSlpZihkPWIuY2FsbChhW2VdLGUsYVtlXSksZD09PSExKWJyZWFrO3JldHVybiBhfSx0cmltOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hPyIiOihhKyIiKS5yZXBsYWNlKG4sIiIpfSxtYWtlQXJyYXk6ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHxbXTtyZXR1cm4gbnVsbCE9YSYmKHIoT2JqZWN0KGEpKT9tLm1lcmdlKGMsInN0cmluZyI9PXR5cGVvZiBhP1thXTphKTpmLmNhbGwoYyxhKSksY30saW5BcnJheTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7aWYoYil7aWYoZylyZXR1cm4gZy5jYWxsKGIsYSxjKTtmb3IoZD1iLmxlbmd0aCxjPWM/MD5jP01hdGgubWF4KDAsZCtjKTpjOjA7ZD5jO2MrKylpZihjIGluIGImJmJbY109PT1hKXJldHVybiBjfXJldHVybi0xfSxtZXJnZTpmdW5jdGlvbihhLGIpe3ZhciBjPStiLmxlbmd0aCxkPTAsZT1hLmxlbmd0aDt3aGlsZShjPmQpYVtlKytdPWJbZCsrXTtpZihjIT09Yyl3aGlsZSh2b2lkIDAhPT1iW2RdKWFbZSsrXT1iW2QrK107cmV0dXJuIGEubGVuZ3RoPWUsYX0sZ3JlcDpmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkLGU9W10sZj0wLGc9YS5sZW5ndGgsaD0hYztnPmY7ZisrKWQ9IWIoYVtmXSxmKSxkIT09aCYmZS5wdXNoKGFbZl0pO3JldHVybiBlfSxtYXA6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGY9MCxnPWEubGVuZ3RoLGg9cihhKSxpPVtdO2lmKGgpZm9yKDtnPmY7ZisrKWQ9YihhW2ZdLGYsYyksbnVsbCE9ZCYmaS5wdXNoKGQpO2Vsc2UgZm9yKGYgaW4gYSlkPWIoYVtmXSxmLGMpLG51bGwhPWQmJmkucHVzaChkKTtyZXR1cm4gZS5hcHBseShbXSxpKX0sZ3VpZDoxLHByb3h5OmZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmO3JldHVybiJzdHJpbmciPT10eXBlb2YgYiYmKGY9YVtiXSxiPWEsYT1mKSxtLmlzRnVuY3Rpb24oYSk/KGM9ZC5jYWxsKGFyZ3VtZW50cywyKSxlPWZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYnx8dGhpcyxjLmNvbmNhdChkLmNhbGwoYXJndW1lbnRzKSkpfSxlLmd1aWQ9YS5ndWlkPWEuZ3VpZHx8bS5ndWlkKyssZSk6dm9pZCAwfSxub3c6ZnVuY3Rpb24oKXtyZXR1cm4rbmV3IERhdGV9LHN1cHBvcnQ6a30pLG0uZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe2hbIltvYmplY3QgIitiKyJdIl09Yi50b0xvd2VyQ2FzZSgpfSk7ZnVuY3Rpb24gcihhKXt2YXIgYj1hLmxlbmd0aCxjPW0udHlwZShhKTtyZXR1cm4iZnVuY3Rpb24iPT09Y3x8bS5pc1dpbmRvdyhhKT8hMToxPT09YS5ub2RlVHlwZSYmYj8hMDoiYXJyYXkiPT09Y3x8MD09PWJ8fCJudW1iZXIiPT10eXBlb2YgYiYmYj4wJiZiLTEgaW4gYX12YXIgcz1mdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1PSJzaXp6bGUiKy1uZXcgRGF0ZSx2PWEuZG9jdW1lbnQsdz0wLHg9MCx5PWdiKCksej1nYigpLEE9Z2IoKSxCPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PT1iJiYobD0hMCksMH0sQz0idW5kZWZpbmVkIixEPTE8PDMxLEU9e30uaGFzT3duUHJvcGVydHksRj1bXSxHPUYucG9wLEg9Ri5wdXNoLEk9Ri5wdXNoLEo9Ri5zbGljZSxLPUYuaW5kZXhPZnx8ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz10aGlzLmxlbmd0aDtjPmI7YisrKWlmKHRoaXNbYl09PT1hKXJldHVybiBiO3JldHVybi0xfSxMPSJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCIsTT0iW1xceDIwXFx0XFxyXFxuXFxmXSIsTj0iKD86XFxcXC58W1xcdy1dfFteXFx4MDAtXFx4YTBdKSsiLE89Ti5yZXBsYWNlKCJ3IiwidyMiKSxQPSJcXFsiK00rIiooIitOKyIpKD86IitNKyIqKFsqXiR8IX5dPz0pIitNKyIqKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCIrTysiKSl8KSIrTSsiKlxcXSIsUT0iOigiK04rIikoPzpcXCgoKCcoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwiKXwoKD86XFxcXC58W15cXFxcKClbXFxdXXwiK1ArIikqKXwuKilcXCl8KSIsUj1uZXcgUmVnRXhwKCJeIitNKyIrfCgoPzpefFteXFxcXF0pKD86XFxcXC4pKikiK00rIiskIiwiZyIpLFM9bmV3IFJlZ0V4cCgiXiIrTSsiKiwiK00rIioiKSxUPW5ldyBSZWdFeHAoIl4iK00rIiooWz4rfl18IitNKyIpIitNKyIqIiksVT1uZXcgUmVnRXhwKCI9IitNKyIqKFteXFxdJ1wiXSo/KSIrTSsiKlxcXSIsImciKSxWPW5ldyBSZWdFeHAoUSksVz1uZXcgUmVnRXhwKCJeIitPKyIkIiksWD17SUQ6bmV3IFJlZ0V4cCgiXiMoIitOKyIpIiksQ0xBU1M6bmV3IFJlZ0V4cCgiXlxcLigiK04rIikiKSxUQUc6bmV3IFJlZ0V4cCgiXigiK04ucmVwbGFjZSgidyIsIncqIikrIikiKSxBVFRSOm5ldyBSZWdFeHAoIl4iK1ApLFBTRVVETzpuZXcgUmVnRXhwKCJeIitRKSxDSElMRDpuZXcgUmVnRXhwKCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgiK00rIiooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufCkiK00rIiooPzooWystXXwpIitNKyIqKFxcZCspfCkpIitNKyIqXFwpfCkiLCJpIiksYm9vbDpuZXcgUmVnRXhwKCJeKD86IitMKyIpJCIsImkiKSxuZWVkc0NvbnRleHQ6bmV3IFJlZ0V4cCgiXiIrTSsiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoIitNKyIqKCg/Oi1cXGQpP1xcZCopIitNKyIqXFwpfCkoPz1bXi1dfCQpIiwiaSIpfSxZPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksWj0vXmhcZCQvaSwkPS9eW157XStce1xzKlxbbmF0aXZlIFx3LyxfPS9eKD86IyhbXHctXSspfChcdyspfFwuKFtcdy1dKykpJC8sYWI9L1srfl0vLGJiPS8nfFxcL2csY2I9bmV3IFJlZ0V4cCgiXFxcXChbXFxkYS1mXXsxLDZ9IitNKyI/fCgiK00rIil8LikiLCJpZyIpLGRiPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0iMHgiK2ItNjU1MzY7cmV0dXJuIGQhPT1kfHxjP2I6MD5kP1N0cmluZy5mcm9tQ2hhckNvZGUoZCs2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShkPj4xMHw1NTI5NiwxMDIzJmR8NTYzMjApfTt0cnl7SS5hcHBseShGPUouY2FsbCh2LmNoaWxkTm9kZXMpLHYuY2hpbGROb2RlcyksRlt2LmNoaWxkTm9kZXMubGVuZ3RoXS5ub2RlVHlwZX1jYXRjaChlYil7ST17YXBwbHk6Ri5sZW5ndGg/ZnVuY3Rpb24oYSxiKXtILmFwcGx5KGEsSi5jYWxsKGIpKX06ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmxlbmd0aCxkPTA7d2hpbGUoYVtjKytdPWJbZCsrXSk7YS5sZW5ndGg9Yy0xfX19ZnVuY3Rpb24gZmIoYSxiLGQsZSl7dmFyIGYsaCxqLGssbCxvLHIscyx3LHg7aWYoKGI/Yi5vd25lckRvY3VtZW50fHxiOnYpIT09biYmbShiKSxiPWJ8fG4sZD1kfHxbXSwhYXx8InN0cmluZyIhPXR5cGVvZiBhKXJldHVybiBkO2lmKDEhPT0oaz1iLm5vZGVUeXBlKSYmOSE9PWspcmV0dXJuW107aWYocCYmIWUpe2lmKGY9Xy5leGVjKGEpKWlmKGo9ZlsxXSl7aWYoOT09PWspe2lmKGg9Yi5nZXRFbGVtZW50QnlJZChqKSwhaHx8IWgucGFyZW50Tm9kZSlyZXR1cm4gZDtpZihoLmlkPT09ailyZXR1cm4gZC5wdXNoKGgpLGR9ZWxzZSBpZihiLm93bmVyRG9jdW1lbnQmJihoPWIub3duZXJEb2N1bWVudC5nZXRFbGVtZW50QnlJZChqKSkmJnQoYixoKSYmaC5pZD09PWopcmV0dXJuIGQucHVzaChoKSxkfWVsc2V7aWYoZlsyXSlyZXR1cm4gSS5hcHBseShkLGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSkpLGQ7aWYoKGo9ZlszXSkmJmMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmYi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiBJLmFwcGx5KGQsYi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGopKSxkfWlmKGMucXNhJiYoIXF8fCFxLnRlc3QoYSkpKXtpZihzPXI9dSx3PWIseD05PT09ayYmYSwxPT09ayYmIm9iamVjdCIhPT1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpe289ZyhhKSwocj1iLmdldEF0dHJpYnV0ZSgiaWQiKSk/cz1yLnJlcGxhY2UoYmIsIlxcJCYiKTpiLnNldEF0dHJpYnV0ZSgiaWQiLHMpLHM9IltpZD0nIitzKyInXSAiLGw9by5sZW5ndGg7d2hpbGUobC0tKW9bbF09cytxYihvW2xdKTt3PWFiLnRlc3QoYSkmJm9iKGIucGFyZW50Tm9kZSl8fGIseD1vLmpvaW4oIiwiKX1pZih4KXRyeXtyZXR1cm4gSS5hcHBseShkLHcucXVlcnlTZWxlY3RvckFsbCh4KSksZH1jYXRjaCh5KXt9ZmluYWxseXtyfHxiLnJlbW92ZUF0dHJpYnV0ZSgiaWQiKX19fXJldHVybiBpKGEucmVwbGFjZShSLCIkMSIpLGIsZCxlKX1mdW5jdGlvbiBnYigpe3ZhciBhPVtdO2Z1bmN0aW9uIGIoYyxlKXtyZXR1cm4gYS5wdXNoKGMrIiAiKT5kLmNhY2hlTGVuZ3RoJiZkZWxldGUgYlthLnNoaWZ0KCldLGJbYysiICJdPWV9cmV0dXJuIGJ9ZnVuY3Rpb24gaGIoYSl7cmV0dXJuIGFbdV09ITAsYX1mdW5jdGlvbiBpYihhKXt2YXIgYj1uLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3RyeXtyZXR1cm4hIWEoYil9Y2F0Y2goYyl7cmV0dXJuITF9ZmluYWxseXtiLnBhcmVudE5vZGUmJmIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKSxiPW51bGx9fWZ1bmN0aW9uIGpiKGEsYil7dmFyIGM9YS5zcGxpdCgifCIpLGU9YS5sZW5ndGg7d2hpbGUoZS0tKWQuYXR0ckhhbmRsZVtjW2VdXT1ifWZ1bmN0aW9uIGtiKGEsYil7dmFyIGM9YiYmYSxkPWMmJjE9PT1hLm5vZGVUeXBlJiYxPT09Yi5ub2RlVHlwZSYmKH5iLnNvdXJjZUluZGV4fHxEKS0ofmEuc291cmNlSW5kZXh8fEQpO2lmKGQpcmV0dXJuIGQ7aWYoYyl3aGlsZShjPWMubmV4dFNpYmxpbmcpaWYoYz09PWIpcmV0dXJuLTE7cmV0dXJuIGE/MTotMX1mdW5jdGlvbiBsYihhKXtyZXR1cm4gZnVuY3Rpb24oYil7dmFyIGM9Yi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1jJiZiLnR5cGU9PT1hfX1mdW5jdGlvbiBtYihhKXtyZXR1cm4gZnVuY3Rpb24oYil7dmFyIGM9Yi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybigiaW5wdXQiPT09Y3x8ImJ1dHRvbiI9PT1jKSYmYi50eXBlPT09YX19ZnVuY3Rpb24gbmIoYSl7cmV0dXJuIGhiKGZ1bmN0aW9uKGIpe3JldHVybiBiPStiLGhiKGZ1bmN0aW9uKGMsZCl7dmFyIGUsZj1hKFtdLGMubGVuZ3RoLGIpLGc9Zi5sZW5ndGg7d2hpbGUoZy0tKWNbZT1mW2ddXSYmKGNbZV09IShkW2VdPWNbZV0pKX0pfSl9ZnVuY3Rpb24gb2IoYSl7cmV0dXJuIGEmJnR5cGVvZiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lIT09QyYmYX1jPWZiLnN1cHBvcnQ9e30sZj1mYi5pc1hNTD1mdW5jdGlvbihhKXt2YXIgYj1hJiYoYS5vd25lckRvY3VtZW50fHxhKS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIGI/IkhUTUwiIT09Yi5ub2RlTmFtZTohMX0sbT1mYi5zZXREb2N1bWVudD1mdW5jdGlvbihhKXt2YXIgYixlPWE/YS5vd25lckRvY3VtZW50fHxhOnYsZz1lLmRlZmF1bHRWaWV3O3JldHVybiBlIT09biYmOT09PWUubm9kZVR5cGUmJmUuZG9jdW1lbnRFbGVtZW50PyhuPWUsbz1lLmRvY3VtZW50RWxlbWVudCxwPSFmKGUpLGcmJmchPT1nLnRvcCYmKGcuYWRkRXZlbnRMaXN0ZW5lcj9nLmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsZnVuY3Rpb24oKXttKCl9LCExKTpnLmF0dGFjaEV2ZW50JiZnLmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsZnVuY3Rpb24oKXttKCl9KSksYy5hdHRyaWJ1dGVzPWliKGZ1bmN0aW9uKGEpe3JldHVybiBhLmNsYXNzTmFtZT0iaSIsIWEuZ2V0QXR0cmlidXRlKCJjbGFzc05hbWUiKX0pLGMuZ2V0RWxlbWVudHNCeVRhZ05hbWU9aWIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoZS5jcmVhdGVDb21tZW50KCIiKSksIWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGh9KSxjLmdldEVsZW1lbnRzQnlDbGFzc05hbWU9JC50ZXN0KGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSkmJmliKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGRpdiBjbGFzcz0nYSc+PC9kaXY+PGRpdiBjbGFzcz0nYSBpJz48L2Rpdj4iLGEuZmlyc3RDaGlsZC5jbGFzc05hbWU9ImkiLDI9PT1hLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImkiKS5sZW5ndGh9KSxjLmdldEJ5SWQ9aWIoZnVuY3Rpb24oYSl7cmV0dXJuIG8uYXBwZW5kQ2hpbGQoYSkuaWQ9dSwhZS5nZXRFbGVtZW50c0J5TmFtZXx8IWUuZ2V0RWxlbWVudHNCeU5hbWUodSkubGVuZ3RofSksYy5nZXRCeUlkPyhkLmZpbmQuSUQ9ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYi5nZXRFbGVtZW50QnlJZCE9PUMmJnApe3ZhciBjPWIuZ2V0RWxlbWVudEJ5SWQoYSk7cmV0dXJuIGMmJmMucGFyZW50Tm9kZT9bY106W119fSxkLmZpbHRlci5JRD1mdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoY2IsZGIpO3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gYS5nZXRBdHRyaWJ1dGUoImlkIik9PT1ifX0pOihkZWxldGUgZC5maW5kLklELGQuZmlsdGVyLklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShjYixkYik7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBjPXR5cGVvZiBhLmdldEF0dHJpYnV0ZU5vZGUhPT1DJiZhLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIGMmJmMudmFsdWU9PT1ifX0pLGQuZmluZC5UQUc9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihhLGIpe3JldHVybiB0eXBlb2YgYi5nZXRFbGVtZW50c0J5VGFnTmFtZSE9PUM/Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKTp2b2lkIDB9OmZ1bmN0aW9uKGEsYil7dmFyIGMsZD1bXSxlPTAsZj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpO2lmKCIqIj09PWEpe3doaWxlKGM9ZltlKytdKTE9PT1jLm5vZGVUeXBlJiZkLnB1c2goYyk7cmV0dXJuIGR9cmV0dXJuIGZ9LGQuZmluZC5DTEFTUz1jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmZ1bmN0aW9uKGEsYil7cmV0dXJuIHR5cGVvZiBiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUhPT1DJiZwP2IuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShhKTp2b2lkIDB9LHI9W10scT1bXSwoYy5xc2E9JC50ZXN0KGUucXVlcnlTZWxlY3RvckFsbCkpJiYoaWIoZnVuY3Rpb24oYSl7YS5pbm5lckhUTUw9IjxzZWxlY3QgbXNhbGxvd2NsaXA9Jyc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLGEucXVlcnlTZWxlY3RvckFsbCgiW21zYWxsb3djbGlwXj0nJ10iKS5sZW5ndGgmJnEucHVzaCgiWypeJF09IitNKyIqKD86Jyd8XCJcIikiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fHEucHVzaCgiXFxbIitNKyIqKD86dmFsdWV8IitMKyIpIiksYS5xdWVyeVNlbGVjdG9yQWxsKCI6Y2hlY2tlZCIpLmxlbmd0aHx8cS5wdXNoKCI6Y2hlY2tlZCIpfSksaWIoZnVuY3Rpb24oYSl7dmFyIGI9ZS5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO2Iuc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIiksYS5hcHBlbmRDaGlsZChiKS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJEIiksYS5xdWVyeVNlbGVjdG9yQWxsKCJbbmFtZT1kXSIpLmxlbmd0aCYmcS5wdXNoKCJuYW1lIitNKyIqWypeJHwhfl0/PSIpLGEucXVlcnlTZWxlY3RvckFsbCgiOmVuYWJsZWQiKS5sZW5ndGh8fHEucHVzaCgiOmVuYWJsZWQiLCI6ZGlzYWJsZWQiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIiosOngiKSxxLnB1c2goIiwuKjoiKX0pKSwoYy5tYXRjaGVzU2VsZWN0b3I9JC50ZXN0KHM9by5tYXRjaGVzfHxvLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8by5tb3pNYXRjaGVzU2VsZWN0b3J8fG8ub01hdGNoZXNTZWxlY3Rvcnx8by5tc01hdGNoZXNTZWxlY3RvcikpJiZpYihmdW5jdGlvbihhKXtjLmRpc2Nvbm5lY3RlZE1hdGNoPXMuY2FsbChhLCJkaXYiKSxzLmNhbGwoYSwiW3MhPScnXTp4Iiksci5wdXNoKCIhPSIsUSl9KSxxPXEubGVuZ3RoJiZuZXcgUmVnRXhwKHEuam9pbigifCIpKSxyPXIubGVuZ3RoJiZuZXcgUmVnRXhwKHIuam9pbigifCIpKSxiPSQudGVzdChvLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKSx0PWJ8fCQudGVzdChvLmNvbnRhaW5zKT9mdW5jdGlvbihhLGIpe3ZhciBjPTk9PT1hLm5vZGVUeXBlP2EuZG9jdW1lbnRFbGVtZW50OmEsZD1iJiZiLnBhcmVudE5vZGU7cmV0dXJuIGE9PT1kfHwhKCFkfHwxIT09ZC5ub2RlVHlwZXx8IShjLmNvbnRhaW5zP2MuY29udGFpbnMoZCk6YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmMTYmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihkKSkpfTpmdW5jdGlvbihhLGIpe2lmKGIpd2hpbGUoYj1iLnBhcmVudE5vZGUpaWYoYj09PWEpcmV0dXJuITA7cmV0dXJuITF9LEI9Yj9mdW5jdGlvbihhLGIpe2lmKGE9PT1iKXJldHVybiBsPSEwLDA7dmFyIGQ9IWEuY29tcGFyZURvY3VtZW50UG9zaXRpb24tIWIuY29tcGFyZURvY3VtZW50UG9zaXRpb247cmV0dXJuIGQ/ZDooZD0oYS5vd25lckRvY3VtZW50fHxhKT09PShiLm93bmVyRG9jdW1lbnR8fGIpP2EuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYik6MSwxJmR8fCFjLnNvcnREZXRhY2hlZCYmYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihhKT09PWQ/YT09PWV8fGEub3duZXJEb2N1bWVudD09PXYmJnQodixhKT8tMTpiPT09ZXx8Yi5vd25lckRvY3VtZW50PT09diYmdCh2LGIpPzE6az9LLmNhbGwoayxhKS1LLmNhbGwoayxiKTowOjQmZD8tMToxKX06ZnVuY3Rpb24oYSxiKXtpZihhPT09YilyZXR1cm4gbD0hMCwwO3ZhciBjLGQ9MCxmPWEucGFyZW50Tm9kZSxnPWIucGFyZW50Tm9kZSxoPVthXSxpPVtiXTtpZighZnx8IWcpcmV0dXJuIGE9PT1lPy0xOmI9PT1lPzE6Zj8tMTpnPzE6az9LLmNhbGwoayxhKS1LLmNhbGwoayxiKTowO2lmKGY9PT1nKXJldHVybiBrYihhLGIpO2M9YTt3aGlsZShjPWMucGFyZW50Tm9kZSloLnVuc2hpZnQoYyk7Yz1iO3doaWxlKGM9Yy5wYXJlbnROb2RlKWkudW5zaGlmdChjKTt3aGlsZShoW2RdPT09aVtkXSlkKys7cmV0dXJuIGQ/a2IoaFtkXSxpW2RdKTpoW2RdPT09dj8tMTppW2RdPT09dj8xOjB9LGUpOm59LGZiLm1hdGNoZXM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZmIoYSxudWxsLG51bGwsYil9LGZiLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihhLGIpe2lmKChhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKSxiPWIucmVwbGFjZShVLCI9JyQxJ10iKSwhKCFjLm1hdGNoZXNTZWxlY3Rvcnx8IXB8fHImJnIudGVzdChiKXx8cSYmcS50ZXN0KGIpKSl0cnl7dmFyIGQ9cy5jYWxsKGEsYik7aWYoZHx8Yy5kaXNjb25uZWN0ZWRNYXRjaHx8YS5kb2N1bWVudCYmMTEhPT1hLmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBkfWNhdGNoKGUpe31yZXR1cm4gZmIoYixuLG51bGwsW2FdKS5sZW5ndGg+MH0sZmIuY29udGFpbnM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4oYS5vd25lckRvY3VtZW50fHxhKSE9PW4mJm0oYSksdChhLGIpfSxmYi5hdHRyPWZ1bmN0aW9uKGEsYil7KGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpO3ZhciBlPWQuYXR0ckhhbmRsZVtiLnRvTG93ZXJDYXNlKCldLGY9ZSYmRS5jYWxsKGQuYXR0ckhhbmRsZSxiLnRvTG93ZXJDYXNlKCkpP2UoYSxiLCFwKTp2b2lkIDA7cmV0dXJuIHZvaWQgMCE9PWY/ZjpjLmF0dHJpYnV0ZXN8fCFwP2EuZ2V0QXR0cmlidXRlKGIpOihmPWEuZ2V0QXR0cmlidXRlTm9kZShiKSkmJmYuc3BlY2lmaWVkP2YudmFsdWU6bnVsbH0sZmIuZXJyb3I9ZnVuY3Rpb24oYSl7dGhyb3cgbmV3IEVycm9yKCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiK2EpfSxmYi51bmlxdWVTb3J0PWZ1bmN0aW9uKGEpe3ZhciBiLGQ9W10sZT0wLGY9MDtpZihsPSFjLmRldGVjdER1cGxpY2F0ZXMsaz0hYy5zb3J0U3RhYmxlJiZhLnNsaWNlKDApLGEuc29ydChCKSxsKXt3aGlsZShiPWFbZisrXSliPT09YVtmXSYmKGU9ZC5wdXNoKGYpKTt3aGlsZShlLS0pYS5zcGxpY2UoZFtlXSwxKX1yZXR1cm4gaz1udWxsLGF9LGU9ZmIuZ2V0VGV4dD1mdW5jdGlvbihhKXt2YXIgYixjPSIiLGQ9MCxmPWEubm9kZVR5cGU7aWYoZil7aWYoMT09PWZ8fDk9PT1mfHwxMT09PWYpe2lmKCJzdHJpbmciPT10eXBlb2YgYS50ZXh0Q29udGVudClyZXR1cm4gYS50ZXh0Q29udGVudDtmb3IoYT1hLmZpcnN0Q2hpbGQ7YTthPWEubmV4dFNpYmxpbmcpYys9ZShhKX1lbHNlIGlmKDM9PT1mfHw0PT09ZilyZXR1cm4gYS5ub2RlVmFsdWV9ZWxzZSB3aGlsZShiPWFbZCsrXSljKz1lKGIpO3JldHVybiBjfSxkPWZiLnNlbGVjdG9ycz17Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmhiLG1hdGNoOlgsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGEpe3JldHVybiBhWzFdPWFbMV0ucmVwbGFjZShjYixkYiksYVszXT0oYVszXXx8YVs0XXx8YVs1XXx8IiIpLnJlcGxhY2UoY2IsZGIpLCJ+PSI9PT1hWzJdJiYoYVszXT0iICIrYVszXSsiICIpLGEuc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV09YVsxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09YVsxXS5zbGljZSgwLDMpPyhhWzNdfHxmYi5lcnJvcihhWzBdKSxhWzRdPSsoYVs0XT9hWzVdKyhhWzZdfHwxKToyKigiZXZlbiI9PT1hWzNdfHwib2RkIj09PWFbM10pKSxhWzVdPSsoYVs3XSthWzhdfHwib2RkIj09PWFbM10pKTphWzNdJiZmYi5lcnJvcihhWzBdKSxhfSxQU0VVRE86ZnVuY3Rpb24oYSl7dmFyIGIsYz0hYVs2XSYmYVsyXTtyZXR1cm4gWC5DSElMRC50ZXN0KGFbMF0pP251bGw6KGFbM10/YVsyXT1hWzRdfHxhWzVdfHwiIjpjJiZWLnRlc3QoYykmJihiPWcoYywhMCkpJiYoYj1jLmluZGV4T2YoIikiLGMubGVuZ3RoLWIpLWMubGVuZ3RoKSYmKGFbMF09YVswXS5zbGljZSgwLGIpLGFbMl09Yy5zbGljZSgwLGIpKSxhLnNsaWNlKDAsMykpfX0sZmlsdGVyOntUQUc6ZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKGNiLGRiKS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PWE/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24oYSl7cmV0dXJuIGEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWJ9fSxDTEFTUzpmdW5jdGlvbihhKXt2YXIgYj15W2ErIiAiXTtyZXR1cm4gYnx8KGI9bmV3IFJlZ0V4cCgiKF58IitNKyIpIithKyIoIitNKyJ8JCkiKSkmJnkoYSxmdW5jdGlvbihhKXtyZXR1cm4gYi50ZXN0KCJzdHJpbmciPT10eXBlb2YgYS5jbGFzc05hbWUmJmEuY2xhc3NOYW1lfHx0eXBlb2YgYS5nZXRBdHRyaWJ1dGUhPT1DJiZhLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfSl9LEFUVFI6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbihkKXt2YXIgZT1mYi5hdHRyKGQsYSk7cmV0dXJuIG51bGw9PWU/IiE9Ij09PWI6Yj8oZSs9IiIsIj0iPT09Yj9lPT09YzoiIT0iPT09Yj9lIT09YzoiXj0iPT09Yj9jJiYwPT09ZS5pbmRleE9mKGMpOiIqPSI9PT1iP2MmJmUuaW5kZXhPZihjKT4tMToiJD0iPT09Yj9jJiZlLnNsaWNlKC1jLmxlbmd0aCk9PT1jOiJ+PSI9PT1iPygiICIrZSsiICIpLmluZGV4T2YoYyk+LTE6Inw9Ij09PWI/ZT09PWN8fGUuc2xpY2UoMCxjLmxlbmd0aCsxKT09PWMrIi0iOiExKTohMH19LENISUxEOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9Im50aCIhPT1hLnNsaWNlKDAsMyksZz0ibGFzdCIhPT1hLnNsaWNlKC00KSxoPSJvZi10eXBlIj09PWI7cmV0dXJuIDE9PT1kJiYwPT09ZT9mdW5jdGlvbihhKXtyZXR1cm4hIWEucGFyZW50Tm9kZX06ZnVuY3Rpb24oYixjLGkpe3ZhciBqLGssbCxtLG4sbyxwPWYhPT1nPyJuZXh0U2libGluZyI6InByZXZpb3VzU2libGluZyIscT1iLnBhcmVudE5vZGUscj1oJiZiLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkscz0haSYmIWg7aWYocSl7aWYoZil7d2hpbGUocCl7bD1iO3doaWxlKGw9bFtwXSlpZihoP2wubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXI6MT09PWwubm9kZVR5cGUpcmV0dXJuITE7bz1wPSJvbmx5Ij09PWEmJiFvJiYibmV4dFNpYmxpbmcifXJldHVybiEwfWlmKG89W2c/cS5maXJzdENoaWxkOnEubGFzdENoaWxkXSxnJiZzKXtrPXFbdV18fChxW3VdPXt9KSxqPWtbYV18fFtdLG49alswXT09PXcmJmpbMV0sbT1qWzBdPT09dyYmalsyXSxsPW4mJnEuY2hpbGROb2Rlc1tuXTt3aGlsZShsPSsrbiYmbCYmbFtwXXx8KG09bj0wKXx8by5wb3AoKSlpZigxPT09bC5ub2RlVHlwZSYmKyttJiZsPT09Yil7a1thXT1bdyxuLG1dO2JyZWFrfX1lbHNlIGlmKHMmJihqPShiW3VdfHwoYlt1XT17fSkpW2FdKSYmalswXT09PXcpbT1qWzFdO2Vsc2Ugd2hpbGUobD0rK24mJmwmJmxbcF18fChtPW49MCl8fG8ucG9wKCkpaWYoKGg/bC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09cjoxPT09bC5ub2RlVHlwZSkmJisrbSYmKHMmJigobFt1XXx8KGxbdV09e30pKVthXT1bdyxtXSksbD09PWIpKWJyZWFrO3JldHVybiBtLT1lLG09PT1kfHxtJWQ9PT0wJiZtL2Q+PTB9fX0sUFNFVURPOmZ1bmN0aW9uKGEsYil7dmFyIGMsZT1kLnBzZXVkb3NbYV18fGQuc2V0RmlsdGVyc1thLnRvTG93ZXJDYXNlKCldfHxmYi5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2EpO3JldHVybiBlW3VdP2UoYik6ZS5sZW5ndGg+MT8oYz1bYSxhLCIiLGJdLGQuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShhLnRvTG93ZXJDYXNlKCkpP2hiKGZ1bmN0aW9uKGEsYyl7dmFyIGQsZj1lKGEsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pZD1LLmNhbGwoYSxmW2ddKSxhW2RdPSEoY1tkXT1mW2ddKX0pOmZ1bmN0aW9uKGEpe3JldHVybiBlKGEsMCxjKX0pOmV9fSxwc2V1ZG9zOntub3Q6aGIoZnVuY3Rpb24oYSl7dmFyIGI9W10sYz1bXSxkPWgoYS5yZXBsYWNlKFIsIiQxIikpO3JldHVybiBkW3VdP2hiKGZ1bmN0aW9uKGEsYixjLGUpe3ZhciBmLGc9ZChhLG51bGwsZSxbXSksaD1hLmxlbmd0aDt3aGlsZShoLS0pKGY9Z1toXSkmJihhW2hdPSEoYltoXT1mKSl9KTpmdW5jdGlvbihhLGUsZil7cmV0dXJuIGJbMF09YSxkKGIsbnVsbCxmLGMpLCFjLnBvcCgpfX0pLGhhczpoYihmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuIGZiKGEsYikubGVuZ3RoPjB9fSksY29udGFpbnM6aGIoZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3JldHVybihiLnRleHRDb250ZW50fHxiLmlubmVyVGV4dHx8ZShiKSkuaW5kZXhPZihhKT4tMX19KSxsYW5nOmhiKGZ1bmN0aW9uKGEpe3JldHVybiBXLnRlc3QoYXx8IiIpfHxmYi5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIithKSxhPWEucmVwbGFjZShjYixkYikudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihiKXt2YXIgYztkbyBpZihjPXA/Yi5sYW5nOmIuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxiLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybiBjPWMudG9Mb3dlckNhc2UoKSxjPT09YXx8MD09PWMuaW5kZXhPZihhKyItIik7d2hpbGUoKGI9Yi5wYXJlbnROb2RlKSYmMT09PWIubm9kZVR5cGUpO3JldHVybiExfX0pLHRhcmdldDpmdW5jdGlvbihiKXt2YXIgYz1hLmxvY2F0aW9uJiZhLmxvY2F0aW9uLmhhc2g7cmV0dXJuIGMmJmMuc2xpY2UoMSk9PT1iLmlkfSxyb290OmZ1bmN0aW9uKGEpe3JldHVybiBhPT09b30sZm9jdXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1uLmFjdGl2ZUVsZW1lbnQmJighbi5oYXNGb2N1c3x8bi5oYXNGb2N1cygpKSYmISEoYS50eXBlfHxhLmhyZWZ8fH5hLnRhYkluZGV4KX0sZW5hYmxlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5kaXNhYmxlZD09PSExfSxkaXNhYmxlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5kaXNhYmxlZD09PSEwfSxjaGVja2VkOmZ1bmN0aW9uKGEpe3ZhciBiPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YiYmISFhLmNoZWNrZWR8fCJvcHRpb24iPT09YiYmISFhLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCxhLnNlbGVjdGVkPT09ITB9LGVtcHR5OmZ1bmN0aW9uKGEpe2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZylpZihhLm5vZGVUeXBlPDYpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4hZC5wc2V1ZG9zLmVtcHR5KGEpfSxoZWFkZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIFoudGVzdChhLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFkudGVzdChhLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGEpe3ZhciBiPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YiYmImJ1dHRvbiI9PT1hLnR5cGV8fCJidXR0b24iPT09Yn0sdGV4dDpmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4iaW5wdXQiPT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYidGV4dCI9PT1hLnR5cGUmJihudWxsPT0oYj1hLmdldEF0dHJpYnV0ZSgidHlwZSIpKXx8InRleHQiPT09Yi50b0xvd2VyQ2FzZSgpKX0sZmlyc3Q6bmIoZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0Om5iKGZ1bmN0aW9uKGEsYil7cmV0dXJuW2ItMV19KSxlcTpuYihmdW5jdGlvbihhLGIsYyl7cmV0dXJuWzA+Yz9jK2I6Y119KSxldmVuOm5iKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7Yj5jO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksb2RkOm5iKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTE7Yj5jO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksbHQ6bmIoZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wPmM/YytiOmM7LS1kPj0wOylhLnB1c2goZCk7cmV0dXJuIGF9KSxndDpuYihmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA+Yz9jK2I6YzsrK2Q8YjspYS5wdXNoKGQpO3JldHVybiBhfSl9fSxkLnBzZXVkb3MubnRoPWQucHNldWRvcy5lcTtmb3IoYiBpbntyYWRpbzohMCxjaGVja2JveDohMCxmaWxlOiEwLHBhc3N3b3JkOiEwLGltYWdlOiEwfSlkLnBzZXVkb3NbYl09bGIoYik7Zm9yKGIgaW57c3VibWl0OiEwLHJlc2V0OiEwfSlkLnBzZXVkb3NbYl09bWIoYik7ZnVuY3Rpb24gcGIoKXt9cGIucHJvdG90eXBlPWQuZmlsdGVycz1kLnBzZXVkb3MsZC5zZXRGaWx0ZXJzPW5ldyBwYixnPWZiLnRva2VuaXplPWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGcsaCxpLGosaz16W2ErIiAiXTtpZihrKXJldHVybiBiPzA6ay5zbGljZSgwKTtoPWEsaT1bXSxqPWQucHJlRmlsdGVyO3doaWxlKGgpeyghY3x8KGU9Uy5leGVjKGgpKSkmJihlJiYoaD1oLnNsaWNlKGVbMF0ubGVuZ3RoKXx8aCksaS5wdXNoKGY9W10pKSxjPSExLChlPVQuZXhlYyhoKSkmJihjPWUuc2hpZnQoKSxmLnB1c2goe3ZhbHVlOmMsdHlwZTplWzBdLnJlcGxhY2UoUiwiICIpfSksaD1oLnNsaWNlKGMubGVuZ3RoKSk7Zm9yKGcgaW4gZC5maWx0ZXIpIShlPVhbZ10uZXhlYyhoKSl8fGpbZ10mJiEoZT1qW2ddKGUpKXx8KGM9ZS5zaGlmdCgpLGYucHVzaCh7dmFsdWU6Yyx0eXBlOmcsbWF0Y2hlczplfSksaD1oLnNsaWNlKGMubGVuZ3RoKSk7aWYoIWMpYnJlYWt9cmV0dXJuIGI/aC5sZW5ndGg6aD9mYi5lcnJvcihhKTp6KGEsaSkuc2xpY2UoMCl9O2Z1bmN0aW9uIHFiKGEpe2Zvcih2YXIgYj0wLGM9YS5sZW5ndGgsZD0iIjtjPmI7YisrKWQrPWFbYl0udmFsdWU7cmV0dXJuIGR9ZnVuY3Rpb24gcmIoYSxiLGMpe3ZhciBkPWIuZGlyLGU9YyYmInBhcmVudE5vZGUiPT09ZCxmPXgrKztyZXR1cm4gYi5maXJzdD9mdW5jdGlvbihiLGMsZil7d2hpbGUoYj1iW2RdKWlmKDE9PT1iLm5vZGVUeXBlfHxlKXJldHVybiBhKGIsYyxmKX06ZnVuY3Rpb24oYixjLGcpe3ZhciBoLGksaj1bdyxmXTtpZihnKXt3aGlsZShiPWJbZF0paWYoKDE9PT1iLm5vZGVUeXBlfHxlKSYmYShiLGMsZykpcmV0dXJuITB9ZWxzZSB3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGUpe2lmKGk9Ylt1XXx8KGJbdV09e30pLChoPWlbZF0pJiZoWzBdPT09dyYmaFsxXT09PWYpcmV0dXJuIGpbMl09aFsyXTtpZihpW2RdPWosalsyXT1hKGIsYyxnKSlyZXR1cm4hMH19fWZ1bmN0aW9uIHNiKGEpe3JldHVybiBhLmxlbmd0aD4xP2Z1bmN0aW9uKGIsYyxkKXt2YXIgZT1hLmxlbmd0aDt3aGlsZShlLS0paWYoIWFbZV0oYixjLGQpKXJldHVybiExO3JldHVybiEwfTphWzBdfWZ1bmN0aW9uIHRiKGEsYixjKXtmb3IodmFyIGQ9MCxlPWIubGVuZ3RoO2U+ZDtkKyspZmIoYSxiW2RdLGMpO3JldHVybiBjfWZ1bmN0aW9uIHViKGEsYixjLGQsZSl7Zm9yKHZhciBmLGc9W10saD0wLGk9YS5sZW5ndGgsaj1udWxsIT1iO2k+aDtoKyspKGY9YVtoXSkmJighY3x8YyhmLGQsZSkpJiYoZy5wdXNoKGYpLGomJmIucHVzaChoKSk7cmV0dXJuIGd9ZnVuY3Rpb24gdmIoYSxiLGMsZCxlLGYpe3JldHVybiBkJiYhZFt1XSYmKGQ9dmIoZCkpLGUmJiFlW3VdJiYoZT12YihlLGYpKSxoYihmdW5jdGlvbihmLGcsaCxpKXt2YXIgaixrLGwsbT1bXSxuPVtdLG89Zy5sZW5ndGgscD1mfHx0YihifHwiKiIsaC5ub2RlVHlwZT9baF06aCxbXSkscT0hYXx8IWYmJmI/cDp1YihwLG0sYSxoLGkpLHI9Yz9lfHwoZj9hOm98fGQpP1tdOmc6cTtpZihjJiZjKHEscixoLGkpLGQpe2o9dWIocixuKSxkKGosW10saCxpKSxrPWoubGVuZ3RoO3doaWxlKGstLSkobD1qW2tdKSYmKHJbbltrXV09IShxW25ba11dPWwpKX1pZihmKXtpZihlfHxhKXtpZihlKXtqPVtdLGs9ci5sZW5ndGg7d2hpbGUoay0tKShsPXJba10pJiZqLnB1c2gocVtrXT1sKTtlKG51bGwscj1bXSxqLGkpfWs9ci5sZW5ndGg7d2hpbGUoay0tKShsPXJba10pJiYoaj1lP0suY2FsbChmLGwpOm1ba10pPi0xJiYoZltqXT0hKGdbal09bCkpfX1lbHNlIHI9dWIocj09PWc/ci5zcGxpY2UobyxyLmxlbmd0aCk6ciksZT9lKG51bGwsZyxyLGkpOkkuYXBwbHkoZyxyKX0pfWZ1bmN0aW9uIHdiKGEpe2Zvcih2YXIgYixjLGUsZj1hLmxlbmd0aCxnPWQucmVsYXRpdmVbYVswXS50eXBlXSxoPWd8fGQucmVsYXRpdmVbIiAiXSxpPWc/MTowLGs9cmIoZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1ifSxoLCEwKSxsPXJiKGZ1bmN0aW9uKGEpe3JldHVybiBLLmNhbGwoYixhKT4tMX0saCwhMCksbT1bZnVuY3Rpb24oYSxjLGQpe3JldHVybiFnJiYoZHx8YyE9PWopfHwoKGI9Yykubm9kZVR5cGU/ayhhLGMsZCk6bChhLGMsZCkpfV07Zj5pO2krKylpZihjPWQucmVsYXRpdmVbYVtpXS50eXBlXSltPVtyYihzYihtKSxjKV07ZWxzZXtpZihjPWQuZmlsdGVyW2FbaV0udHlwZV0uYXBwbHkobnVsbCxhW2ldLm1hdGNoZXMpLGNbdV0pe2ZvcihlPSsraTtmPmU7ZSsrKWlmKGQucmVsYXRpdmVbYVtlXS50eXBlXSlicmVhaztyZXR1cm4gdmIoaT4xJiZzYihtKSxpPjEmJnFiKGEuc2xpY2UoMCxpLTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09YVtpLTJdLnR5cGU/IioiOiIifSkpLnJlcGxhY2UoUiwiJDEiKSxjLGU+aSYmd2IoYS5zbGljZShpLGUpKSxmPmUmJndiKGE9YS5zbGljZShlKSksZj5lJiZxYihhKSl9bS5wdXNoKGMpfXJldHVybiBzYihtKX1mdW5jdGlvbiB4YihhLGIpe3ZhciBjPWIubGVuZ3RoPjAsZT1hLmxlbmd0aD4wLGY9ZnVuY3Rpb24oZixnLGgsaSxrKXt2YXIgbCxtLG8scD0wLHE9IjAiLHI9ZiYmW10scz1bXSx0PWosdT1mfHxlJiZkLmZpbmQuVEFHKCIqIixrKSx2PXcrPW51bGw9PXQ/MTpNYXRoLnJhbmRvbSgpfHwuMSx4PXUubGVuZ3RoO2ZvcihrJiYoaj1nIT09biYmZyk7cSE9PXgmJm51bGwhPShsPXVbcV0pO3ErKyl7aWYoZSYmbCl7bT0wO3doaWxlKG89YVttKytdKWlmKG8obCxnLGgpKXtpLnB1c2gobCk7YnJlYWt9ayYmKHc9dil9YyYmKChsPSFvJiZsKSYmcC0tLGYmJnIucHVzaChsKSl9aWYocCs9cSxjJiZxIT09cCl7bT0wO3doaWxlKG89YlttKytdKW8ocixzLGcsaCk7aWYoZil7aWYocD4wKXdoaWxlKHEtLSlyW3FdfHxzW3FdfHwoc1txXT1HLmNhbGwoaSkpO3M9dWIocyl9SS5hcHBseShpLHMpLGsmJiFmJiZzLmxlbmd0aD4wJiZwK2IubGVuZ3RoPjEmJmZiLnVuaXF1ZVNvcnQoaSl9cmV0dXJuIGsmJih3PXYsaj10KSxyfTtyZXR1cm4gYz9oYihmKTpmfXJldHVybiBoPWZiLmNvbXBpbGU9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9W10sZj1BW2ErIiAiXTtpZighZil7Ynx8KGI9ZyhhKSksYz1iLmxlbmd0aDt3aGlsZShjLS0pZj13YihiW2NdKSxmW3VdP2QucHVzaChmKTplLnB1c2goZik7Zj1BKGEseGIoZSxkKSksZi5zZWxlY3Rvcj1hfXJldHVybiBmfSxpPWZiLnNlbGVjdD1mdW5jdGlvbihhLGIsZSxmKXt2YXIgaSxqLGssbCxtLG49ImZ1bmN0aW9uIj09dHlwZW9mIGEmJmEsbz0hZiYmZyhhPW4uc2VsZWN0b3J8fGEpO2lmKGU9ZXx8W10sMT09PW8ubGVuZ3RoKXtpZihqPW9bMF09b1swXS5zbGljZSgwKSxqLmxlbmd0aD4yJiYiSUQiPT09KGs9alswXSkudHlwZSYmYy5nZXRCeUlkJiY5PT09Yi5ub2RlVHlwZSYmcCYmZC5yZWxhdGl2ZVtqWzFdLnR5cGVdKXtpZihiPShkLmZpbmQuSUQoay5tYXRjaGVzWzBdLnJlcGxhY2UoY2IsZGIpLGIpfHxbXSlbMF0sIWIpcmV0dXJuIGU7biYmKGI9Yi5wYXJlbnROb2RlKSxhPWEuc2xpY2Uoai5zaGlmdCgpLnZhbHVlLmxlbmd0aCl9aT1YLm5lZWRzQ29udGV4dC50ZXN0KGEpPzA6ai5sZW5ndGg7d2hpbGUoaS0tKXtpZihrPWpbaV0sZC5yZWxhdGl2ZVtsPWsudHlwZV0pYnJlYWs7aWYoKG09ZC5maW5kW2xdKSYmKGY9bShrLm1hdGNoZXNbMF0ucmVwbGFjZShjYixkYiksYWIudGVzdChqWzBdLnR5cGUpJiZvYihiLnBhcmVudE5vZGUpfHxiKSkpe2lmKGouc3BsaWNlKGksMSksYT1mLmxlbmd0aCYmcWIoaiksIWEpcmV0dXJuIEkuYXBwbHkoZSxmKSxlO2JyZWFrfX19cmV0dXJuKG58fGgoYSxvKSkoZixiLCFwLGUsYWIudGVzdChhKSYmb2IoYi5wYXJlbnROb2RlKXx8YiksZX0sYy5zb3J0U3RhYmxlPXUuc3BsaXQoIiIpLnNvcnQoQikuam9pbigiIik9PT11LGMuZGV0ZWN0RHVwbGljYXRlcz0hIWwsbSgpLGMuc29ydERldGFjaGVkPWliKGZ1bmN0aW9uKGEpe3JldHVybiAxJmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24obi5jcmVhdGVFbGVtZW50KCJkaXYiKSl9KSxpYihmdW5jdGlvbihhKXtyZXR1cm4gYS5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iLCIjIj09PWEuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0pfHxqYigidHlwZXxocmVmfGhlaWdodHx3aWR0aCIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjP3ZvaWQgMDphLmdldEF0dHJpYnV0ZShiLCJ0eXBlIj09PWIudG9Mb3dlckNhc2UoKT8xOjIpfSksYy5hdHRyaWJ1dGVzJiZpYihmdW5jdGlvbihhKXtyZXR1cm4gYS5pbm5lckhUTUw9IjxpbnB1dC8+IixhLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIiIpLCIiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgidmFsdWUiKX0pfHxqYigidmFsdWUiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gY3x8ImlucHV0IiE9PWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT92b2lkIDA6YS5kZWZhdWx0VmFsdWV9KSxpYihmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIil9KXx8amIoTCxmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGM/dm9pZCAwOmFbYl09PT0hMD9iLnRvTG93ZXJDYXNlKCk6KGQ9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpKSYmZC5zcGVjaWZpZWQ/ZC52YWx1ZTpudWxsfSksZmJ9KGEpO20uZmluZD1zLG0uZXhwcj1zLnNlbGVjdG9ycyxtLmV4cHJbIjoiXT1tLmV4cHIucHNldWRvcyxtLnVuaXF1ZT1zLnVuaXF1ZVNvcnQsbS50ZXh0PXMuZ2V0VGV4dCxtLmlzWE1MRG9jPXMuaXNYTUwsbS5jb250YWlucz1zLmNvbnRhaW5zO3ZhciB0PW0uZXhwci5tYXRjaC5uZWVkc0NvbnRleHQsdT0vXjwoXHcrKVxzKlwvPz4oPzo8XC9cMT58KSQvLHY9L14uW146I1xbXC4sXSokLztmdW5jdGlvbiB3KGEsYixjKXtpZihtLmlzRnVuY3Rpb24oYikpcmV0dXJuIG0uZ3JlcChhLGZ1bmN0aW9uKGEsZCl7cmV0dXJuISFiLmNhbGwoYSxkLGEpIT09Y30pO2lmKGIubm9kZVR5cGUpcmV0dXJuIG0uZ3JlcChhLGZ1bmN0aW9uKGEpe3JldHVybiBhPT09YiE9PWN9KTtpZigic3RyaW5nIj09dHlwZW9mIGIpe2lmKHYudGVzdChiKSlyZXR1cm4gbS5maWx0ZXIoYixhLGMpO2I9bS5maWx0ZXIoYixhKX1yZXR1cm4gbS5ncmVwKGEsZnVuY3Rpb24oYSl7cmV0dXJuIG0uaW5BcnJheShhLGIpPj0wIT09Y30pfW0uZmlsdGVyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iWzBdO3JldHVybiBjJiYoYT0iOm5vdCgiK2ErIikiKSwxPT09Yi5sZW5ndGgmJjE9PT1kLm5vZGVUeXBlP20uZmluZC5tYXRjaGVzU2VsZWN0b3IoZCxhKT9bZF06W106bS5maW5kLm1hdGNoZXMoYSxtLmdyZXAoYixmdW5jdGlvbihhKXtyZXR1cm4gMT09PWEubm9kZVR5cGV9KSl9LG0uZm4uZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKGEpe3ZhciBiLGM9W10sZD10aGlzLGU9ZC5sZW5ndGg7aWYoInN0cmluZyIhPXR5cGVvZiBhKXJldHVybiB0aGlzLnB1c2hTdGFjayhtKGEpLmZpbHRlcihmdW5jdGlvbigpe2ZvcihiPTA7ZT5iO2IrKylpZihtLmNvbnRhaW5zKGRbYl0sdGhpcykpcmV0dXJuITB9KSk7Zm9yKGI9MDtlPmI7YisrKW0uZmluZChhLGRbYl0sYyk7cmV0dXJuIGM9dGhpcy5wdXNoU3RhY2soZT4xP20udW5pcXVlKGMpOmMpLGMuc2VsZWN0b3I9dGhpcy5zZWxlY3Rvcj90aGlzLnNlbGVjdG9yKyIgIithOmEsY30sZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayh3KHRoaXMsYXx8W10sITEpKX0sbm90OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayh3KHRoaXMsYXx8W10sITApKX0saXM6ZnVuY3Rpb24oYSl7cmV0dXJuISF3KHRoaXMsInN0cmluZyI9PXR5cGVvZiBhJiZ0LnRlc3QoYSk/bShhKTphfHxbXSwhMSkubGVuZ3RofX0pO3ZhciB4LHk9YS5kb2N1bWVudCx6PS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKikpJC8sQT1tLmZuLmluaXQ9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkO2lmKCFhKXJldHVybiB0aGlzO2lmKCJzdHJpbmciPT10eXBlb2YgYSl7aWYoYz0iPCI9PT1hLmNoYXJBdCgwKSYmIj4iPT09YS5jaGFyQXQoYS5sZW5ndGgtMSkmJmEubGVuZ3RoPj0zP1tudWxsLGEsbnVsbF06ei5leGVjKGEpLCFjfHwhY1sxXSYmYilyZXR1cm4hYnx8Yi5qcXVlcnk/KGJ8fHgpLmZpbmQoYSk6dGhpcy5jb25zdHJ1Y3RvcihiKS5maW5kKGEpO2lmKGNbMV0pe2lmKGI9YiBpbnN0YW5jZW9mIG0/YlswXTpiLG0ubWVyZ2UodGhpcyxtLnBhcnNlSFRNTChjWzFdLGImJmIubm9kZVR5cGU/Yi5vd25lckRvY3VtZW50fHxiOnksITApKSx1LnRlc3QoY1sxXSkmJm0uaXNQbGFpbk9iamVjdChiKSlmb3IoYyBpbiBiKW0uaXNGdW5jdGlvbih0aGlzW2NdKT90aGlzW2NdKGJbY10pOnRoaXMuYXR0cihjLGJbY10pO3JldHVybiB0aGlzfWlmKGQ9eS5nZXRFbGVtZW50QnlJZChjWzJdKSxkJiZkLnBhcmVudE5vZGUpe2lmKGQuaWQhPT1jWzJdKXJldHVybiB4LmZpbmQoYSk7dGhpcy5sZW5ndGg9MSx0aGlzWzBdPWR9cmV0dXJuIHRoaXMuY29udGV4dD15LHRoaXMuc2VsZWN0b3I9YSx0aGlzfXJldHVybiBhLm5vZGVUeXBlPyh0aGlzLmNvbnRleHQ9dGhpc1swXT1hLHRoaXMubGVuZ3RoPTEsdGhpcyk6bS5pc0Z1bmN0aW9uKGEpPyJ1bmRlZmluZWQiIT10eXBlb2YgeC5yZWFkeT94LnJlYWR5KGEpOmEobSk6KHZvaWQgMCE9PWEuc2VsZWN0b3ImJih0aGlzLnNlbGVjdG9yPWEuc2VsZWN0b3IsdGhpcy5jb250ZXh0PWEuY29udGV4dCksbS5tYWtlQXJyYXkoYSx0aGlzKSl9O0EucHJvdG90eXBlPW0uZm4seD1tKHkpO3ZhciBCPS9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLEM9e2NoaWxkcmVuOiEwLGNvbnRlbnRzOiEwLG5leHQ6ITAscHJldjohMH07bS5leHRlbmQoe2RpcjpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9W10sZT1hW2JdO3doaWxlKGUmJjkhPT1lLm5vZGVUeXBlJiYodm9pZCAwPT09Y3x8MSE9PWUubm9kZVR5cGV8fCFtKGUpLmlzKGMpKSkxPT09ZS5ub2RlVHlwZSYmZC5wdXNoKGUpLGU9ZVtiXTtyZXR1cm4gZH0sc2libGluZzpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXTthO2E9YS5uZXh0U2libGluZykxPT09YS5ub2RlVHlwZSYmYSE9PWImJmMucHVzaChhKTtyZXR1cm4gY319KSxtLmZuLmV4dGVuZCh7aGFzOmZ1bmN0aW9uKGEpe3ZhciBiLGM9bShhLHRoaXMpLGQ9Yy5sZW5ndGg7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKGI9MDtkPmI7YisrKWlmKG0uY29udGFpbnModGhpcyxjW2JdKSlyZXR1cm4hMH0pfSxjbG9zZXN0OmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjLGQ9MCxlPXRoaXMubGVuZ3RoLGY9W10sZz10LnRlc3QoYSl8fCJzdHJpbmciIT10eXBlb2YgYT9tKGEsYnx8dGhpcy5jb250ZXh0KTowO2U+ZDtkKyspZm9yKGM9dGhpc1tkXTtjJiZjIT09YjtjPWMucGFyZW50Tm9kZSlpZihjLm5vZGVUeXBlPDExJiYoZz9nLmluZGV4KGMpPi0xOjE9PT1jLm5vZGVUeXBlJiZtLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGMsYSkpKXtmLnB1c2goYyk7YnJlYWt9cmV0dXJuIHRoaXMucHVzaFN0YWNrKGYubGVuZ3RoPjE/bS51bmlxdWUoZik6Zil9LGluZGV4OmZ1bmN0aW9uKGEpe3JldHVybiBhPyJzdHJpbmciPT10eXBlb2YgYT9tLmluQXJyYXkodGhpc1swXSxtKGEpKTptLmluQXJyYXkoYS5qcXVlcnk/YVswXTphLHRoaXMpOnRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZT90aGlzLmZpcnN0KCkucHJldkFsbCgpLmxlbmd0aDotMX0sYWRkOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG0udW5pcXVlKG0ubWVyZ2UodGhpcy5nZXQoKSxtKGEsYikpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWE/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoYSkpfX0pO2Z1bmN0aW9uIEQoYSxiKXtkbyBhPWFbYl07d2hpbGUoYSYmMSE9PWEubm9kZVR5cGUpO3JldHVybiBhfW0uZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyZW50Tm9kZTtyZXR1cm4gYiYmMTEhPT1iLm5vZGVUeXBlP2I6bnVsbH0scGFyZW50czpmdW5jdGlvbihhKXtyZXR1cm4gbS5kaXIoYSwicGFyZW50Tm9kZSIpfSxwYXJlbnRzVW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBtLmRpcihhLCJwYXJlbnROb2RlIixjKX0sbmV4dDpmdW5jdGlvbihhKXtyZXR1cm4gRChhLCJuZXh0U2libGluZyIpfSxwcmV2OmZ1bmN0aW9uKGEpe3JldHVybiBEKGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKGEpe3JldHVybiBtLmRpcihhLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGEpe3JldHVybiBtLmRpcihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbS5kaXIoYSwibmV4dFNpYmxpbmciLGMpfSxwcmV2VW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBtLmRpcihhLCJwcmV2aW91c1NpYmxpbmciLGMpfSxzaWJsaW5nczpmdW5jdGlvbihhKXtyZXR1cm4gbS5zaWJsaW5nKChhLnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLGEpfSxjaGlsZHJlbjpmdW5jdGlvbihhKXtyZXR1cm4gbS5zaWJsaW5nKGEuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBtLm5vZGVOYW1lKGEsImlmcmFtZSIpP2EuY29udGVudERvY3VtZW50fHxhLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ6bS5tZXJnZShbXSxhLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oYSxiKXttLmZuW2FdPWZ1bmN0aW9uKGMsZCl7dmFyIGU9bS5tYXAodGhpcyxiLGMpO3JldHVybiJVbnRpbCIhPT1hLnNsaWNlKC01KSYmKGQ9YyksZCYmInN0cmluZyI9PXR5cGVvZiBkJiYoZT1tLmZpbHRlcihkLGUpKSx0aGlzLmxlbmd0aD4xJiYoQ1thXXx8KGU9bS51bmlxdWUoZSkpLEIudGVzdChhKSYmKGU9ZS5yZXZlcnNlKCkpKSx0aGlzLnB1c2hTdGFjayhlKX19KTt2YXIgRT0vXFMrL2csRj17fTtmdW5jdGlvbiBHKGEpe3ZhciBiPUZbYV09e307cmV0dXJuIG0uZWFjaChhLm1hdGNoKEUpfHxbXSxmdW5jdGlvbihhLGMpe2JbY109ITB9KSxifW0uQ2FsbGJhY2tzPWZ1bmN0aW9uKGEpe2E9InN0cmluZyI9PXR5cGVvZiBhP0ZbYV18fEcoYSk6bS5leHRlbmQoe30sYSk7dmFyIGIsYyxkLGUsZixnLGg9W10saT0hYS5vbmNlJiZbXSxqPWZ1bmN0aW9uKGwpe2ZvcihjPWEubWVtb3J5JiZsLGQ9ITAsZj1nfHwwLGc9MCxlPWgubGVuZ3RoLGI9ITA7aCYmZT5mO2YrKylpZihoW2ZdLmFwcGx5KGxbMF0sbFsxXSk9PT0hMSYmYS5zdG9wT25GYWxzZSl7Yz0hMTticmVha31iPSExLGgmJihpP2kubGVuZ3RoJiZqKGkuc2hpZnQoKSk6Yz9oPVtdOmsuZGlzYWJsZSgpKX0saz17YWRkOmZ1bmN0aW9uKCl7aWYoaCl7dmFyIGQ9aC5sZW5ndGg7IWZ1bmN0aW9uIGYoYil7bS5lYWNoKGIsZnVuY3Rpb24oYixjKXt2YXIgZD1tLnR5cGUoYyk7ImZ1bmN0aW9uIj09PWQ/YS51bmlxdWUmJmsuaGFzKGMpfHxoLnB1c2goYyk6YyYmYy5sZW5ndGgmJiJzdHJpbmciIT09ZCYmZihjKX0pfShhcmd1bWVudHMpLGI/ZT1oLmxlbmd0aDpjJiYoZz1kLGooYykpfXJldHVybiB0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gaCYmbS5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbihhLGMpe3ZhciBkO3doaWxlKChkPW0uaW5BcnJheShjLGgsZCkpPi0xKWguc3BsaWNlKGQsMSksYiYmKGU+PWQmJmUtLSxmPj1kJiZmLS0pfSksdGhpc30saGFzOmZ1bmN0aW9uKGEpe3JldHVybiBhP20uaW5BcnJheShhLGgpPi0xOiEoIWh8fCFoLmxlbmd0aCl9LGVtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIGg9W10sZT0wLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gaD1pPWM9dm9pZCAwLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIWh9LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gaT12b2lkIDAsY3x8ay5kaXNhYmxlKCksdGhpc30sbG9ja2VkOmZ1bmN0aW9uKCl7cmV0dXJuIWl9LGZpcmVXaXRoOmZ1bmN0aW9uKGEsYyl7cmV0dXJuIWh8fGQmJiFpfHwoYz1jfHxbXSxjPVthLGMuc2xpY2U/Yy5zbGljZSgpOmNdLGI/aS5wdXNoKGMpOmooYykpLHRoaXN9LGZpcmU6ZnVuY3Rpb24oKXtyZXR1cm4gay5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyksdGhpc30sZmlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWR9fTtyZXR1cm4ga30sbS5leHRlbmQoe0RlZmVycmVkOmZ1bmN0aW9uKGEpe3ZhciBiPVtbInJlc29sdmUiLCJkb25lIixtLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwicmVzb2x2ZWQiXSxbInJlamVjdCIsImZhaWwiLG0uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZWplY3RlZCJdLFsibm90aWZ5IiwicHJvZ3Jlc3MiLG0uQ2FsbGJhY2tzKCJtZW1vcnkiKV1dLGM9InBlbmRpbmciLGQ9e3N0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LGFsd2F5czpmdW5jdGlvbigpe3JldHVybiBlLmRvbmUoYXJndW1lbnRzKS5mYWlsKGFyZ3VtZW50cyksdGhpc30sdGhlbjpmdW5jdGlvbigpe3ZhciBhPWFyZ3VtZW50cztyZXR1cm4gbS5EZWZlcnJlZChmdW5jdGlvbihjKXttLmVhY2goYixmdW5jdGlvbihiLGYpe3ZhciBnPW0uaXNGdW5jdGlvbihhW2JdKSYmYVtiXTtlW2ZbMV1dKGZ1bmN0aW9uKCl7dmFyIGE9ZyYmZy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7YSYmbS5pc0Z1bmN0aW9uKGEucHJvbWlzZSk/YS5wcm9taXNlKCkuZG9uZShjLnJlc29sdmUpLmZhaWwoYy5yZWplY3QpLnByb2dyZXNzKGMubm90aWZ5KTpjW2ZbMF0rIldpdGgiXSh0aGlzPT09ZD9jLnByb21pc2UoKTp0aGlzLGc/W2FdOmFyZ3VtZW50cyl9KX0pLGE9bnVsbH0pLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YT9tLmV4dGVuZChhLGQpOmR9fSxlPXt9O3JldHVybiBkLnBpcGU9ZC50aGVuLG0uZWFjaChiLGZ1bmN0aW9uKGEsZil7dmFyIGc9ZlsyXSxoPWZbM107ZFtmWzFdXT1nLmFkZCxoJiZnLmFkZChmdW5jdGlvbigpe2M9aH0sYlsxXmFdWzJdLmRpc2FibGUsYlsyXVsyXS5sb2NrKSxlW2ZbMF1dPWZ1bmN0aW9uKCl7cmV0dXJuIGVbZlswXSsiV2l0aCJdKHRoaXM9PT1lP2Q6dGhpcyxhcmd1bWVudHMpLHRoaXN9LGVbZlswXSsiV2l0aCJdPWcuZmlyZVdpdGh9KSxkLnByb21pc2UoZSksYSYmYS5jYWxsKGUsZSksZX0sd2hlbjpmdW5jdGlvbihhKXt2YXIgYj0wLGM9ZC5jYWxsKGFyZ3VtZW50cyksZT1jLmxlbmd0aCxmPTEhPT1lfHxhJiZtLmlzRnVuY3Rpb24oYS5wcm9taXNlKT9lOjAsZz0xPT09Zj9hOm0uRGVmZXJyZWQoKSxoPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oZSl7YlthXT10aGlzLGNbYV09YXJndW1lbnRzLmxlbmd0aD4xP2QuY2FsbChhcmd1bWVudHMpOmUsYz09PWk/Zy5ub3RpZnlXaXRoKGIsYyk6LS1mfHxnLnJlc29sdmVXaXRoKGIsYyl9fSxpLGosaztpZihlPjEpZm9yKGk9bmV3IEFycmF5KGUpLGo9bmV3IEFycmF5KGUpLGs9bmV3IEFycmF5KGUpO2U+YjtiKyspY1tiXSYmbS5pc0Z1bmN0aW9uKGNbYl0ucHJvbWlzZSk/Y1tiXS5wcm9taXNlKCkuZG9uZShoKGIsayxjKSkuZmFpbChnLnJlamVjdCkucHJvZ3Jlc3MoaChiLGosaSkpOi0tZjtyZXR1cm4gZnx8Zy5yZXNvbHZlV2l0aChrLGMpLGcucHJvbWlzZSgpfX0pO3ZhciBIO20uZm4ucmVhZHk9ZnVuY3Rpb24oYSl7cmV0dXJuIG0ucmVhZHkucHJvbWlzZSgpLmRvbmUoYSksdGhpc30sbS5leHRlbmQoe2lzUmVhZHk6ITEscmVhZHlXYWl0OjEsaG9sZFJlYWR5OmZ1bmN0aW9uKGEpe2E/bS5yZWFkeVdhaXQrKzptLnJlYWR5KCEwKX0scmVhZHk6ZnVuY3Rpb24oYSl7aWYoYT09PSEwPyEtLW0ucmVhZHlXYWl0OiFtLmlzUmVhZHkpe2lmKCF5LmJvZHkpcmV0dXJuIHNldFRpbWVvdXQobS5yZWFkeSk7bS5pc1JlYWR5PSEwLGEhPT0hMCYmLS1tLnJlYWR5V2FpdD4wfHwoSC5yZXNvbHZlV2l0aCh5LFttXSksbS5mbi50cmlnZ2VySGFuZGxlciYmKG0oeSkudHJpZ2dlckhhbmRsZXIoInJlYWR5IiksbSh5KS5vZmYoInJlYWR5IikpKX19fSk7ZnVuY3Rpb24gSSgpe3kuYWRkRXZlbnRMaXN0ZW5lcj8oeS5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixKLCExKSxhLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLEosITEpKTooeS5kZXRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixKKSxhLmRldGFjaEV2ZW50KCJvbmxvYWQiLEopKX1mdW5jdGlvbiBKKCl7KHkuYWRkRXZlbnRMaXN0ZW5lcnx8ImxvYWQiPT09ZXZlbnQudHlwZXx8ImNvbXBsZXRlIj09PXkucmVhZHlTdGF0ZSkmJihJKCksbS5yZWFkeSgpKX1tLnJlYWR5LnByb21pc2U9ZnVuY3Rpb24oYil7aWYoIUgpaWYoSD1tLkRlZmVycmVkKCksImNvbXBsZXRlIj09PXkucmVhZHlTdGF0ZSlzZXRUaW1lb3V0KG0ucmVhZHkpO2Vsc2UgaWYoeS5hZGRFdmVudExpc3RlbmVyKXkuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsSiwhMSksYS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixKLCExKTtlbHNle3kuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsSiksYS5hdHRhY2hFdmVudCgib25sb2FkIixKKTt2YXIgYz0hMTt0cnl7Yz1udWxsPT1hLmZyYW1lRWxlbWVudCYmeS5kb2N1bWVudEVsZW1lbnR9Y2F0Y2goZCl7fWMmJmMuZG9TY3JvbGwmJiFmdW5jdGlvbiBlKCl7aWYoIW0uaXNSZWFkeSl7dHJ5e2MuZG9TY3JvbGwoImxlZnQiKX1jYXRjaChhKXtyZXR1cm4gc2V0VGltZW91dChlLDUwKX1JKCksbS5yZWFkeSgpfX0oKX1yZXR1cm4gSC5wcm9taXNlKGIpfTt2YXIgSz0idW5kZWZpbmVkIixMO2ZvcihMIGluIG0oaykpYnJlYWs7ay5vd25MYXN0PSIwIiE9PUwsay5pbmxpbmVCbG9ja05lZWRzTGF5b3V0PSExLG0oZnVuY3Rpb24oKXt2YXIgYSxiLGMsZDtjPXkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxjJiZjLnN0eWxlJiYoYj15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQ9eS5jcmVhdGVFbGVtZW50KCJkaXYiKSxkLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2JvcmRlcjowO3dpZHRoOjA7aGVpZ2h0OjA7dG9wOjA7bGVmdDotOTk5OXB4IixjLmFwcGVuZENoaWxkKGQpLmFwcGVuZENoaWxkKGIpLHR5cGVvZiBiLnN0eWxlLnpvb20hPT1LJiYoYi5zdHlsZS5jc3NUZXh0PSJkaXNwbGF5OmlubGluZTttYXJnaW46MDtib3JkZXI6MDtwYWRkaW5nOjFweDt3aWR0aDoxcHg7em9vbToxIixrLmlubGluZUJsb2NrTmVlZHNMYXlvdXQ9YT0zPT09Yi5vZmZzZXRXaWR0aCxhJiYoYy5zdHlsZS56b29tPTEpKSxjLnJlbW92ZUNoaWxkKGQpKX0pLGZ1bmN0aW9uKCl7dmFyIGE9eS5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZihudWxsPT1rLmRlbGV0ZUV4cGFuZG8pe2suZGVsZXRlRXhwYW5kbz0hMDt0cnl7ZGVsZXRlIGEudGVzdH1jYXRjaChiKXtrLmRlbGV0ZUV4cGFuZG89ITF9fWE9bnVsbH0oKSxtLmFjY2VwdERhdGE9ZnVuY3Rpb24oYSl7dmFyIGI9bS5ub0RhdGFbKGEubm9kZU5hbWUrIiAiKS50b0xvd2VyQ2FzZSgpXSxjPSthLm5vZGVUeXBlfHwxO3JldHVybiAxIT09YyYmOSE9PWM/ITE6IWJ8fGIhPT0hMCYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzaWQiKT09PWJ9O3ZhciBNPS9eKD86XHtbXHdcV10qXH18XFtbXHdcV10qXF0pJC8sTj0vKFtBLVpdKS9nO2Z1bmN0aW9uIE8oYSxiLGMpe2lmKHZvaWQgMD09PWMmJjE9PT1hLm5vZGVUeXBlKXt2YXIgZD0iZGF0YS0iK2IucmVwbGFjZShOLCItJDEiKS50b0xvd2VyQ2FzZSgpO2lmKGM9YS5nZXRBdHRyaWJ1dGUoZCksInN0cmluZyI9PXR5cGVvZiBjKXt0cnl7Yz0idHJ1ZSI9PT1jPyEwOiJmYWxzZSI9PT1jPyExOiJudWxsIj09PWM/bnVsbDorYysiIj09PWM/K2M6TS50ZXN0KGMpP20ucGFyc2VKU09OKGMpOmN9Y2F0Y2goZSl7fW0uZGF0YShhLGIsYyl9ZWxzZSBjPXZvaWQgMH1yZXR1cm4gY31mdW5jdGlvbiBQKGEpe3ZhciBiO2ZvcihiIGluIGEpaWYoKCJkYXRhIiE9PWJ8fCFtLmlzRW1wdHlPYmplY3QoYVtiXSkpJiYidG9KU09OIiE9PWIpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gUShhLGIsZCxlKXtpZihtLmFjY2VwdERhdGEoYSkpe3ZhciBmLGcsaD1tLmV4cGFuZG8saT1hLm5vZGVUeXBlLGo9aT9tLmNhY2hlOmEsaz1pP2FbaF06YVtoXSYmaDsNCmlmKGsmJmpba10mJihlfHxqW2tdLmRhdGEpfHx2b2lkIDAhPT1kfHwic3RyaW5nIiE9dHlwZW9mIGIpcmV0dXJuIGt8fChrPWk/YVtoXT1jLnBvcCgpfHxtLmd1aWQrKzpoKSxqW2tdfHwoaltrXT1pP3t9Ont0b0pTT046bS5ub29wfSksKCJvYmplY3QiPT10eXBlb2YgYnx8ImZ1bmN0aW9uIj09dHlwZW9mIGIpJiYoZT9qW2tdPW0uZXh0ZW5kKGpba10sYik6altrXS5kYXRhPW0uZXh0ZW5kKGpba10uZGF0YSxiKSksZz1qW2tdLGV8fChnLmRhdGF8fChnLmRhdGE9e30pLGc9Zy5kYXRhKSx2b2lkIDAhPT1kJiYoZ1ttLmNhbWVsQ2FzZShiKV09ZCksInN0cmluZyI9PXR5cGVvZiBiPyhmPWdbYl0sbnVsbD09ZiYmKGY9Z1ttLmNhbWVsQ2FzZShiKV0pKTpmPWcsZn19ZnVuY3Rpb24gUihhLGIsYyl7aWYobS5hY2NlcHREYXRhKGEpKXt2YXIgZCxlLGY9YS5ub2RlVHlwZSxnPWY/bS5jYWNoZTphLGg9Zj9hW20uZXhwYW5kb106bS5leHBhbmRvO2lmKGdbaF0pe2lmKGImJihkPWM/Z1toXTpnW2hdLmRhdGEpKXttLmlzQXJyYXkoYik/Yj1iLmNvbmNhdChtLm1hcChiLG0uY2FtZWxDYXNlKSk6YiBpbiBkP2I9W2JdOihiPW0uY2FtZWxDYXNlKGIpLGI9YiBpbiBkP1tiXTpiLnNwbGl0KCIgIikpLGU9Yi5sZW5ndGg7d2hpbGUoZS0tKWRlbGV0ZSBkW2JbZV1dO2lmKGM/IVAoZCk6IW0uaXNFbXB0eU9iamVjdChkKSlyZXR1cm59KGN8fChkZWxldGUgZ1toXS5kYXRhLFAoZ1toXSkpKSYmKGY/bS5jbGVhbkRhdGEoW2FdLCEwKTprLmRlbGV0ZUV4cGFuZG98fGchPWcud2luZG93P2RlbGV0ZSBnW2hdOmdbaF09bnVsbCl9fX1tLmV4dGVuZCh7Y2FjaGU6e30sbm9EYXRhOnsiYXBwbGV0ICI6ITAsImVtYmVkICI6ITAsIm9iamVjdCAiOiJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAifSxoYXNEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiBhPWEubm9kZVR5cGU/bS5jYWNoZVthW20uZXhwYW5kb11dOmFbbS5leHBhbmRvXSwhIWEmJiFQKGEpfSxkYXRhOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUShhLGIsYyl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUihhLGIpfSxfZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFEoYSxiLGMsITApfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihhLGIpe3JldHVybiBSKGEsYiwhMCl9fSksbS5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj10aGlzWzBdLGc9ZiYmZi5hdHRyaWJ1dGVzO2lmKHZvaWQgMD09PWEpe2lmKHRoaXMubGVuZ3RoJiYoZT1tLmRhdGEoZiksMT09PWYubm9kZVR5cGUmJiFtLl9kYXRhKGYsInBhcnNlZEF0dHJzIikpKXtjPWcubGVuZ3RoO3doaWxlKGMtLSlnW2NdJiYoZD1nW2NdLm5hbWUsMD09PWQuaW5kZXhPZigiZGF0YS0iKSYmKGQ9bS5jYW1lbENhc2UoZC5zbGljZSg1KSksTyhmLGQsZVtkXSkpKTttLl9kYXRhKGYsInBhcnNlZEF0dHJzIiwhMCl9cmV0dXJuIGV9cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBhP3RoaXMuZWFjaChmdW5jdGlvbigpe20uZGF0YSh0aGlzLGEpfSk6YXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaChmdW5jdGlvbigpe20uZGF0YSh0aGlzLGEsYil9KTpmP08oZixhLG0uZGF0YShmLGEpKTp2b2lkIDB9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe20ucmVtb3ZlRGF0YSh0aGlzLGEpfSl9fSksbS5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4gYT8oYj0oYnx8ImZ4IikrInF1ZXVlIixkPW0uX2RhdGEoYSxiKSxjJiYoIWR8fG0uaXNBcnJheShjKT9kPW0uX2RhdGEoYSxiLG0ubWFrZUFycmF5KGMpKTpkLnB1c2goYykpLGR8fFtdKTp2b2lkIDB9LGRlcXVldWU6ZnVuY3Rpb24oYSxiKXtiPWJ8fCJmeCI7dmFyIGM9bS5xdWV1ZShhLGIpLGQ9Yy5sZW5ndGgsZT1jLnNoaWZ0KCksZj1tLl9xdWV1ZUhvb2tzKGEsYiksZz1mdW5jdGlvbigpe20uZGVxdWV1ZShhLGIpfTsiaW5wcm9ncmVzcyI9PT1lJiYoZT1jLnNoaWZ0KCksZC0tKSxlJiYoImZ4Ij09PWImJmMudW5zaGlmdCgiaW5wcm9ncmVzcyIpLGRlbGV0ZSBmLnN0b3AsZS5jYWxsKGEsZyxmKSksIWQmJmYmJmYuZW1wdHkuZmlyZSgpfSxfcXVldWVIb29rczpmdW5jdGlvbihhLGIpe3ZhciBjPWIrInF1ZXVlSG9va3MiO3JldHVybiBtLl9kYXRhKGEsYyl8fG0uX2RhdGEoYSxjLHtlbXB0eTptLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKS5hZGQoZnVuY3Rpb24oKXttLl9yZW1vdmVEYXRhKGEsYisicXVldWUiKSxtLl9yZW1vdmVEYXRhKGEsYyl9KX0pfX0pLG0uZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIpe3ZhciBjPTI7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYj1hLGE9ImZ4IixjLS0pLGFyZ3VtZW50cy5sZW5ndGg8Yz9tLnF1ZXVlKHRoaXNbMF0sYSk6dm9pZCAwPT09Yj90aGlzOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBjPW0ucXVldWUodGhpcyxhLGIpO20uX3F1ZXVlSG9va3ModGhpcyxhKSwiZngiPT09YSYmImlucHJvZ3Jlc3MiIT09Y1swXSYmbS5kZXF1ZXVlKHRoaXMsYSl9KX0sZGVxdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bS5kZXF1ZXVlKHRoaXMsYSl9KX0sY2xlYXJRdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5xdWV1ZShhfHwiZngiLFtdKX0scHJvbWlzZTpmdW5jdGlvbihhLGIpe3ZhciBjLGQ9MSxlPW0uRGVmZXJyZWQoKSxmPXRoaXMsZz10aGlzLmxlbmd0aCxoPWZ1bmN0aW9uKCl7LS1kfHxlLnJlc29sdmVXaXRoKGYsW2ZdKX07InN0cmluZyIhPXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKSxhPWF8fCJmeCI7d2hpbGUoZy0tKWM9bS5fZGF0YShmW2ddLGErInF1ZXVlSG9va3MiKSxjJiZjLmVtcHR5JiYoZCsrLGMuZW1wdHkuYWRkKGgpKTtyZXR1cm4gaCgpLGUucHJvbWlzZShiKX19KTt2YXIgUz0vWystXT8oPzpcZCpcLnwpXGQrKD86W2VFXVsrLV0/XGQrfCkvLnNvdXJjZSxUPVsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0sVT1mdW5jdGlvbihhLGIpe3JldHVybiBhPWJ8fGEsIm5vbmUiPT09bS5jc3MoYSwiZGlzcGxheSIpfHwhbS5jb250YWlucyhhLm93bmVyRG9jdW1lbnQsYSl9LFY9bS5hY2Nlc3M9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dmFyIGg9MCxpPWEubGVuZ3RoLGo9bnVsbD09YztpZigib2JqZWN0Ij09PW0udHlwZShjKSl7ZT0hMDtmb3IoaCBpbiBjKW0uYWNjZXNzKGEsYixoLGNbaF0sITAsZixnKX1lbHNlIGlmKHZvaWQgMCE9PWQmJihlPSEwLG0uaXNGdW5jdGlvbihkKXx8KGc9ITApLGomJihnPyhiLmNhbGwoYSxkKSxiPW51bGwpOihqPWIsYj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGouY2FsbChtKGEpLGMpfSkpLGIpKWZvcig7aT5oO2grKyliKGFbaF0sYyxnP2Q6ZC5jYWxsKGFbaF0saCxiKGFbaF0sYykpKTtyZXR1cm4gZT9hOmo/Yi5jYWxsKGEpOmk/YihhWzBdLGMpOmZ9LFc9L14oPzpjaGVja2JveHxyYWRpbykkL2k7IWZ1bmN0aW9uKCl7dmFyIGE9eS5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLGI9eS5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPXkuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2lmKGIuaW5uZXJIVE1MPSIgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYSc+YTwvYT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iLGsubGVhZGluZ1doaXRlc3BhY2U9Mz09PWIuZmlyc3RDaGlsZC5ub2RlVHlwZSxrLnRib2R5PSFiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxrLmh0bWxTZXJpYWxpemU9ISFiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIikubGVuZ3RoLGsuaHRtbDVDbG9uZT0iPDpuYXY+PC86bmF2PiIhPT15LmNyZWF0ZUVsZW1lbnQoIm5hdiIpLmNsb25lTm9kZSghMCkub3V0ZXJIVE1MLGEudHlwZT0iY2hlY2tib3giLGEuY2hlY2tlZD0hMCxjLmFwcGVuZENoaWxkKGEpLGsuYXBwZW5kQ2hlY2tlZD1hLmNoZWNrZWQsYi5pbm5lckhUTUw9Ijx0ZXh0YXJlYT54PC90ZXh0YXJlYT4iLGsubm9DbG9uZUNoZWNrZWQ9ISFiLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZSxjLmFwcGVuZENoaWxkKGIpLGIuaW5uZXJIVE1MPSI8aW5wdXQgdHlwZT0ncmFkaW8nIGNoZWNrZWQ9J2NoZWNrZWQnIG5hbWU9J3QnLz4iLGsuY2hlY2tDbG9uZT1iLmNsb25lTm9kZSghMCkuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuY2hlY2tlZCxrLm5vQ2xvbmVFdmVudD0hMCxiLmF0dGFjaEV2ZW50JiYoYi5hdHRhY2hFdmVudCgib25jbGljayIsZnVuY3Rpb24oKXtrLm5vQ2xvbmVFdmVudD0hMX0pLGIuY2xvbmVOb2RlKCEwKS5jbGljaygpKSxudWxsPT1rLmRlbGV0ZUV4cGFuZG8pe2suZGVsZXRlRXhwYW5kbz0hMDt0cnl7ZGVsZXRlIGIudGVzdH1jYXRjaChkKXtrLmRlbGV0ZUV4cGFuZG89ITF9fX0oKSxmdW5jdGlvbigpe3ZhciBiLGMsZD15LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2ZvcihiIGlue3N1Ym1pdDohMCxjaGFuZ2U6ITAsZm9jdXNpbjohMH0pYz0ib24iK2IsKGtbYisiQnViYmxlcyJdPWMgaW4gYSl8fChkLnNldEF0dHJpYnV0ZShjLCJ0Iiksa1tiKyJCdWJibGVzIl09ZC5hdHRyaWJ1dGVzW2NdLmV4cGFuZG89PT0hMSk7ZD1udWxsfSgpO3ZhciBYPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhKSQvaSxZPS9ea2V5LyxaPS9eKD86bW91c2V8cG9pbnRlcnxjb250ZXh0bWVudSl8Y2xpY2svLCQ9L14oPzpmb2N1c2luZm9jdXN8Zm9jdXNvdXRibHVyKSQvLF89L14oW14uXSopKD86XC4oLispfCkkLztmdW5jdGlvbiBhYigpe3JldHVybiEwfWZ1bmN0aW9uIGJiKCl7cmV0dXJuITF9ZnVuY3Rpb24gY2IoKXt0cnl7cmV0dXJuIHkuYWN0aXZlRWxlbWVudH1jYXRjaChhKXt9fW0uZXZlbnQ9e2dsb2JhbDp7fSxhZGQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxuLG8scCxxLHI9bS5fZGF0YShhKTtpZihyKXtjLmhhbmRsZXImJihpPWMsYz1pLmhhbmRsZXIsZT1pLnNlbGVjdG9yKSxjLmd1aWR8fChjLmd1aWQ9bS5ndWlkKyspLChnPXIuZXZlbnRzKXx8KGc9ci5ldmVudHM9e30pLChrPXIuaGFuZGxlKXx8KGs9ci5oYW5kbGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBtPT09S3x8YSYmbS5ldmVudC50cmlnZ2VyZWQ9PT1hLnR5cGU/dm9pZCAwOm0uZXZlbnQuZGlzcGF0Y2guYXBwbHkoay5lbGVtLGFyZ3VtZW50cyl9LGsuZWxlbT1hKSxiPShifHwiIikubWF0Y2goRSl8fFsiIl0saD1iLmxlbmd0aDt3aGlsZShoLS0pZj1fLmV4ZWMoYltoXSl8fFtdLG89cT1mWzFdLHA9KGZbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxvJiYoaj1tLmV2ZW50LnNwZWNpYWxbb118fHt9LG89KGU/ai5kZWxlZ2F0ZVR5cGU6ai5iaW5kVHlwZSl8fG8saj1tLmV2ZW50LnNwZWNpYWxbb118fHt9LGw9bS5leHRlbmQoe3R5cGU6byxvcmlnVHlwZTpxLGRhdGE6ZCxoYW5kbGVyOmMsZ3VpZDpjLmd1aWQsc2VsZWN0b3I6ZSxuZWVkc0NvbnRleHQ6ZSYmbS5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGUpLG5hbWVzcGFjZTpwLmpvaW4oIi4iKX0saSksKG49Z1tvXSl8fChuPWdbb109W10sbi5kZWxlZ2F0ZUNvdW50PTAsai5zZXR1cCYmai5zZXR1cC5jYWxsKGEsZCxwLGspIT09ITF8fChhLmFkZEV2ZW50TGlzdGVuZXI/YS5hZGRFdmVudExpc3RlbmVyKG8saywhMSk6YS5hdHRhY2hFdmVudCYmYS5hdHRhY2hFdmVudCgib24iK28saykpKSxqLmFkZCYmKGouYWRkLmNhbGwoYSxsKSxsLmhhbmRsZXIuZ3VpZHx8KGwuaGFuZGxlci5ndWlkPWMuZ3VpZCkpLGU/bi5zcGxpY2Uobi5kZWxlZ2F0ZUNvdW50KyssMCxsKTpuLnB1c2gobCksbS5ldmVudC5nbG9iYWxbb109ITApO2E9bnVsbH19LHJlbW92ZTpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGosayxsLG4sbyxwLHEscj1tLmhhc0RhdGEoYSkmJm0uX2RhdGEoYSk7aWYociYmKGs9ci5ldmVudHMpKXtiPShifHwiIikubWF0Y2goRSl8fFsiIl0saj1iLmxlbmd0aDt3aGlsZShqLS0paWYoaD1fLmV4ZWMoYltqXSl8fFtdLG89cT1oWzFdLHA9KGhbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxvKXtsPW0uZXZlbnQuc3BlY2lhbFtvXXx8e30sbz0oZD9sLmRlbGVnYXRlVHlwZTpsLmJpbmRUeXBlKXx8byxuPWtbb118fFtdLGg9aFsyXSYmbmV3IFJlZ0V4cCgiKF58XFwuKSIrcC5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKSxpPWY9bi5sZW5ndGg7d2hpbGUoZi0tKWc9bltmXSwhZSYmcSE9PWcub3JpZ1R5cGV8fGMmJmMuZ3VpZCE9PWcuZ3VpZHx8aCYmIWgudGVzdChnLm5hbWVzcGFjZSl8fGQmJmQhPT1nLnNlbGVjdG9yJiYoIioqIiE9PWR8fCFnLnNlbGVjdG9yKXx8KG4uc3BsaWNlKGYsMSksZy5zZWxlY3RvciYmbi5kZWxlZ2F0ZUNvdW50LS0sbC5yZW1vdmUmJmwucmVtb3ZlLmNhbGwoYSxnKSk7aSYmIW4ubGVuZ3RoJiYobC50ZWFyZG93biYmbC50ZWFyZG93bi5jYWxsKGEscCxyLmhhbmRsZSkhPT0hMXx8bS5yZW1vdmVFdmVudChhLG8sci5oYW5kbGUpLGRlbGV0ZSBrW29dKX1lbHNlIGZvcihvIGluIGspbS5ldmVudC5yZW1vdmUoYSxvK2Jbal0sYyxkLCEwKTttLmlzRW1wdHlPYmplY3QoaykmJihkZWxldGUgci5oYW5kbGUsbS5fcmVtb3ZlRGF0YShhLCJldmVudHMiKSl9fSx0cmlnZ2VyOmZ1bmN0aW9uKGIsYyxkLGUpe3ZhciBmLGcsaCxpLGssbCxuLG89W2R8fHldLHA9ai5jYWxsKGIsInR5cGUiKT9iLnR5cGU6YixxPWouY2FsbChiLCJuYW1lc3BhY2UiKT9iLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKGg9bD1kPWR8fHksMyE9PWQubm9kZVR5cGUmJjghPT1kLm5vZGVUeXBlJiYhJC50ZXN0KHArbS5ldmVudC50cmlnZ2VyZWQpJiYocC5pbmRleE9mKCIuIik+PTAmJihxPXAuc3BsaXQoIi4iKSxwPXEuc2hpZnQoKSxxLnNvcnQoKSksZz1wLmluZGV4T2YoIjoiKTwwJiYib24iK3AsYj1iW20uZXhwYW5kb10/YjpuZXcgbS5FdmVudChwLCJvYmplY3QiPT10eXBlb2YgYiYmYiksYi5pc1RyaWdnZXI9ZT8yOjMsYi5uYW1lc3BhY2U9cS5qb2luKCIuIiksYi5uYW1lc3BhY2VfcmU9Yi5uYW1lc3BhY2U/bmV3IFJlZ0V4cCgiKF58XFwuKSIrcS5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKTpudWxsLGIucmVzdWx0PXZvaWQgMCxiLnRhcmdldHx8KGIudGFyZ2V0PWQpLGM9bnVsbD09Yz9bYl06bS5tYWtlQXJyYXkoYyxbYl0pLGs9bS5ldmVudC5zcGVjaWFsW3BdfHx7fSxlfHwhay50cmlnZ2VyfHxrLnRyaWdnZXIuYXBwbHkoZCxjKSE9PSExKSl7aWYoIWUmJiFrLm5vQnViYmxlJiYhbS5pc1dpbmRvdyhkKSl7Zm9yKGk9ay5kZWxlZ2F0ZVR5cGV8fHAsJC50ZXN0KGkrcCl8fChoPWgucGFyZW50Tm9kZSk7aDtoPWgucGFyZW50Tm9kZSlvLnB1c2goaCksbD1oO2w9PT0oZC5vd25lckRvY3VtZW50fHx5KSYmby5wdXNoKGwuZGVmYXVsdFZpZXd8fGwucGFyZW50V2luZG93fHxhKX1uPTA7d2hpbGUoKGg9b1tuKytdKSYmIWIuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSliLnR5cGU9bj4xP2k6ay5iaW5kVHlwZXx8cCxmPShtLl9kYXRhKGgsImV2ZW50cyIpfHx7fSlbYi50eXBlXSYmbS5fZGF0YShoLCJoYW5kbGUiKSxmJiZmLmFwcGx5KGgsYyksZj1nJiZoW2ddLGYmJmYuYXBwbHkmJm0uYWNjZXB0RGF0YShoKSYmKGIucmVzdWx0PWYuYXBwbHkoaCxjKSxiLnJlc3VsdD09PSExJiZiLnByZXZlbnREZWZhdWx0KCkpO2lmKGIudHlwZT1wLCFlJiYhYi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmKCFrLl9kZWZhdWx0fHxrLl9kZWZhdWx0LmFwcGx5KG8ucG9wKCksYyk9PT0hMSkmJm0uYWNjZXB0RGF0YShkKSYmZyYmZFtwXSYmIW0uaXNXaW5kb3coZCkpe2w9ZFtnXSxsJiYoZFtnXT1udWxsKSxtLmV2ZW50LnRyaWdnZXJlZD1wO3RyeXtkW3BdKCl9Y2F0Y2gocil7fW0uZXZlbnQudHJpZ2dlcmVkPXZvaWQgMCxsJiYoZFtnXT1sKX1yZXR1cm4gYi5yZXN1bHR9fSxkaXNwYXRjaDpmdW5jdGlvbihhKXthPW0uZXZlbnQuZml4KGEpO3ZhciBiLGMsZSxmLGcsaD1bXSxpPWQuY2FsbChhcmd1bWVudHMpLGo9KG0uX2RhdGEodGhpcywiZXZlbnRzIil8fHt9KVthLnR5cGVdfHxbXSxrPW0uZXZlbnQuc3BlY2lhbFthLnR5cGVdfHx7fTtpZihpWzBdPWEsYS5kZWxlZ2F0ZVRhcmdldD10aGlzLCFrLnByZURpc3BhdGNofHxrLnByZURpc3BhdGNoLmNhbGwodGhpcyxhKSE9PSExKXtoPW0uZXZlbnQuaGFuZGxlcnMuY2FsbCh0aGlzLGEsaiksYj0wO3doaWxlKChmPWhbYisrXSkmJiFhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpe2EuY3VycmVudFRhcmdldD1mLmVsZW0sZz0wO3doaWxlKChlPWYuaGFuZGxlcnNbZysrXSkmJiFhLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkpKCFhLm5hbWVzcGFjZV9yZXx8YS5uYW1lc3BhY2VfcmUudGVzdChlLm5hbWVzcGFjZSkpJiYoYS5oYW5kbGVPYmo9ZSxhLmRhdGE9ZS5kYXRhLGM9KChtLmV2ZW50LnNwZWNpYWxbZS5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fGUuaGFuZGxlcikuYXBwbHkoZi5lbGVtLGkpLHZvaWQgMCE9PWMmJihhLnJlc3VsdD1jKT09PSExJiYoYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCkpKX1yZXR1cm4gay5wb3N0RGlzcGF0Y2gmJmsucG9zdERpc3BhdGNoLmNhbGwodGhpcyxhKSxhLnJlc3VsdH19LGhhbmRsZXJzOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGYsZz1bXSxoPWIuZGVsZWdhdGVDb3VudCxpPWEudGFyZ2V0O2lmKGgmJmkubm9kZVR5cGUmJighYS5idXR0b258fCJjbGljayIhPT1hLnR5cGUpKWZvcig7aSE9dGhpcztpPWkucGFyZW50Tm9kZXx8dGhpcylpZigxPT09aS5ub2RlVHlwZSYmKGkuZGlzYWJsZWQhPT0hMHx8ImNsaWNrIiE9PWEudHlwZSkpe2ZvcihlPVtdLGY9MDtoPmY7ZisrKWQ9YltmXSxjPWQuc2VsZWN0b3IrIiAiLHZvaWQgMD09PWVbY10mJihlW2NdPWQubmVlZHNDb250ZXh0P20oYyx0aGlzKS5pbmRleChpKT49MDptLmZpbmQoYyx0aGlzLG51bGwsW2ldKS5sZW5ndGgpLGVbY10mJmUucHVzaChkKTtlLmxlbmd0aCYmZy5wdXNoKHtlbGVtOmksaGFuZGxlcnM6ZX0pfXJldHVybiBoPGIubGVuZ3RoJiZnLnB1c2goe2VsZW06dGhpcyxoYW5kbGVyczpiLnNsaWNlKGgpfSksZ30sZml4OmZ1bmN0aW9uKGEpe2lmKGFbbS5leHBhbmRvXSlyZXR1cm4gYTt2YXIgYixjLGQsZT1hLnR5cGUsZj1hLGc9dGhpcy5maXhIb29rc1tlXTtnfHwodGhpcy5maXhIb29rc1tlXT1nPVoudGVzdChlKT90aGlzLm1vdXNlSG9va3M6WS50ZXN0KGUpP3RoaXMua2V5SG9va3M6e30pLGQ9Zy5wcm9wcz90aGlzLnByb3BzLmNvbmNhdChnLnByb3BzKTp0aGlzLnByb3BzLGE9bmV3IG0uRXZlbnQoZiksYj1kLmxlbmd0aDt3aGlsZShiLS0pYz1kW2JdLGFbY109ZltjXTtyZXR1cm4gYS50YXJnZXR8fChhLnRhcmdldD1mLnNyY0VsZW1lbnR8fHkpLDM9PT1hLnRhcmdldC5ub2RlVHlwZSYmKGEudGFyZ2V0PWEudGFyZ2V0LnBhcmVudE5vZGUpLGEubWV0YUtleT0hIWEubWV0YUtleSxnLmZpbHRlcj9nLmZpbHRlcihhLGYpOmF9LHByb3BzOiJhbHRLZXkgYnViYmxlcyBjYW5jZWxhYmxlIGN0cmxLZXkgY3VycmVudFRhcmdldCBldmVudFBoYXNlIG1ldGFLZXkgcmVsYXRlZFRhcmdldCBzaGlmdEtleSB0YXJnZXQgdGltZVN0YW1wIHZpZXcgd2hpY2giLnNwbGl0KCIgIiksZml4SG9va3M6e30sa2V5SG9va3M6e3Byb3BzOiJjaGFyIGNoYXJDb2RlIGtleSBrZXlDb2RlIi5zcGxpdCgiICIpLGZpbHRlcjpmdW5jdGlvbihhLGIpe3JldHVybiBudWxsPT1hLndoaWNoJiYoYS53aGljaD1udWxsIT1iLmNoYXJDb2RlP2IuY2hhckNvZGU6Yi5rZXlDb2RlKSxhfX0sbW91c2VIb29rczp7cHJvcHM6ImJ1dHRvbiBidXR0b25zIGNsaWVudFggY2xpZW50WSBmcm9tRWxlbWVudCBvZmZzZXRYIG9mZnNldFkgcGFnZVggcGFnZVkgc2NyZWVuWCBzY3JlZW5ZIHRvRWxlbWVudCIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj1iLmJ1dHRvbixnPWIuZnJvbUVsZW1lbnQ7cmV0dXJuIG51bGw9PWEucGFnZVgmJm51bGwhPWIuY2xpZW50WCYmKGQ9YS50YXJnZXQub3duZXJEb2N1bWVudHx8eSxlPWQuZG9jdW1lbnRFbGVtZW50LGM9ZC5ib2R5LGEucGFnZVg9Yi5jbGllbnRYKyhlJiZlLnNjcm9sbExlZnR8fGMmJmMuc2Nyb2xsTGVmdHx8MCktKGUmJmUuY2xpZW50TGVmdHx8YyYmYy5jbGllbnRMZWZ0fHwwKSxhLnBhZ2VZPWIuY2xpZW50WSsoZSYmZS5zY3JvbGxUb3B8fGMmJmMuc2Nyb2xsVG9wfHwwKS0oZSYmZS5jbGllbnRUb3B8fGMmJmMuY2xpZW50VG9wfHwwKSksIWEucmVsYXRlZFRhcmdldCYmZyYmKGEucmVsYXRlZFRhcmdldD1nPT09YS50YXJnZXQ/Yi50b0VsZW1lbnQ6ZyksYS53aGljaHx8dm9pZCAwPT09Znx8KGEud2hpY2g9MSZmPzE6MiZmPzM6NCZmPzI6MCksYX19LHNwZWNpYWw6e2xvYWQ6e25vQnViYmxlOiEwfSxmb2N1czp7dHJpZ2dlcjpmdW5jdGlvbigpe2lmKHRoaXMhPT1jYigpJiZ0aGlzLmZvY3VzKXRyeXtyZXR1cm4gdGhpcy5mb2N1cygpLCExfWNhdGNoKGEpe319LGRlbGVnYXRlVHlwZToiZm9jdXNpbiJ9LGJsdXI6e3RyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcz09PWNiKCkmJnRoaXMuYmx1cj8odGhpcy5ibHVyKCksITEpOnZvaWQgMH0sZGVsZWdhdGVUeXBlOiJmb2N1c291dCJ9LGNsaWNrOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIG0ubm9kZU5hbWUodGhpcywiaW5wdXQiKSYmImNoZWNrYm94Ij09PXRoaXMudHlwZSYmdGhpcy5jbGljaz8odGhpcy5jbGljaygpLCExKTp2b2lkIDB9LF9kZWZhdWx0OmZ1bmN0aW9uKGEpe3JldHVybiBtLm5vZGVOYW1lKGEudGFyZ2V0LCJhIil9fSxiZWZvcmV1bmxvYWQ6e3Bvc3REaXNwYXRjaDpmdW5jdGlvbihhKXt2b2lkIDAhPT1hLnJlc3VsdCYmYS5vcmlnaW5hbEV2ZW50JiYoYS5vcmlnaW5hbEV2ZW50LnJldHVyblZhbHVlPWEucmVzdWx0KX19fSxzaW11bGF0ZTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1tLmV4dGVuZChuZXcgbS5FdmVudCxjLHt0eXBlOmEsaXNTaW11bGF0ZWQ6ITAsb3JpZ2luYWxFdmVudDp7fX0pO2Q/bS5ldmVudC50cmlnZ2VyKGUsbnVsbCxiKTptLmV2ZW50LmRpc3BhdGNoLmNhbGwoYixlKSxlLmlzRGVmYXVsdFByZXZlbnRlZCgpJiZjLnByZXZlbnREZWZhdWx0KCl9fSxtLnJlbW92ZUV2ZW50PXkucmVtb3ZlRXZlbnRMaXN0ZW5lcj9mdW5jdGlvbihhLGIsYyl7YS5yZW1vdmVFdmVudExpc3RlbmVyJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjLCExKX06ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSJvbiIrYjthLmRldGFjaEV2ZW50JiYodHlwZW9mIGFbZF09PT1LJiYoYVtkXT1udWxsKSxhLmRldGFjaEV2ZW50KGQsYykpfSxtLkV2ZW50PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBtLkV2ZW50PyhhJiZhLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1hLHRoaXMudHlwZT1hLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9YS5kZWZhdWx0UHJldmVudGVkfHx2b2lkIDA9PT1hLmRlZmF1bHRQcmV2ZW50ZWQmJmEucmV0dXJuVmFsdWU9PT0hMT9hYjpiYik6dGhpcy50eXBlPWEsYiYmbS5leHRlbmQodGhpcyxiKSx0aGlzLnRpbWVTdGFtcD1hJiZhLnRpbWVTdGFtcHx8bS5ub3coKSx2b2lkKHRoaXNbbS5leHBhbmRvXT0hMCkpOm5ldyBtLkV2ZW50KGEsYil9LG0uRXZlbnQucHJvdG90eXBlPXtpc0RlZmF1bHRQcmV2ZW50ZWQ6YmIsaXNQcm9wYWdhdGlvblN0b3BwZWQ6YmIsaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6YmIscHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9YWIsYSYmKGEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOmEucmV0dXJuVmFsdWU9ITEpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1hYixhJiYoYS5zdG9wUHJvcGFnYXRpb24mJmEuc3RvcFByb3BhZ2F0aW9uKCksYS5jYW5jZWxCdWJibGU9ITApfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1hYixhJiZhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sbS5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0Iixwb2ludGVyZW50ZXI6InBvaW50ZXJvdmVyIixwb2ludGVybGVhdmU6InBvaW50ZXJvdXQifSxmdW5jdGlvbihhLGIpe20uZXZlbnQuc3BlY2lhbFthXT17ZGVsZWdhdGVUeXBlOmIsYmluZFR5cGU6YixoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGMsZD10aGlzLGU9YS5yZWxhdGVkVGFyZ2V0LGY9YS5oYW5kbGVPYmo7cmV0dXJuKCFlfHxlIT09ZCYmIW0uY29udGFpbnMoZCxlKSkmJihhLnR5cGU9Zi5vcmlnVHlwZSxjPWYuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksYS50eXBlPWIpLGN9fX0pLGsuc3VibWl0QnViYmxlc3x8KG0uZXZlbnQuc3BlY2lhbC5zdWJtaXQ9e3NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuIG0ubm9kZU5hbWUodGhpcywiZm9ybSIpPyExOnZvaWQgbS5ldmVudC5hZGQodGhpcywiY2xpY2suX3N1Ym1pdCBrZXlwcmVzcy5fc3VibWl0IixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldCxjPW0ubm9kZU5hbWUoYiwiaW5wdXQiKXx8bS5ub2RlTmFtZShiLCJidXR0b24iKT9iLmZvcm06dm9pZCAwO2MmJiFtLl9kYXRhKGMsInN1Ym1pdEJ1YmJsZXMiKSYmKG0uZXZlbnQuYWRkKGMsInN1Ym1pdC5fc3VibWl0IixmdW5jdGlvbihhKXthLl9zdWJtaXRfYnViYmxlPSEwfSksbS5fZGF0YShjLCJzdWJtaXRCdWJibGVzIiwhMCkpfSl9LHBvc3REaXNwYXRjaDpmdW5jdGlvbihhKXthLl9zdWJtaXRfYnViYmxlJiYoZGVsZXRlIGEuX3N1Ym1pdF9idWJibGUsdGhpcy5wYXJlbnROb2RlJiYhYS5pc1RyaWdnZXImJm0uZXZlbnQuc2ltdWxhdGUoInN1Ym1pdCIsdGhpcy5wYXJlbnROb2RlLGEsITApKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtyZXR1cm4gbS5ub2RlTmFtZSh0aGlzLCJmb3JtIik/ITE6dm9pZCBtLmV2ZW50LnJlbW92ZSh0aGlzLCIuX3N1Ym1pdCIpfX0pLGsuY2hhbmdlQnViYmxlc3x8KG0uZXZlbnQuc3BlY2lhbC5jaGFuZ2U9e3NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuIFgudGVzdCh0aGlzLm5vZGVOYW1lKT8oKCJjaGVja2JveCI9PT10aGlzLnR5cGV8fCJyYWRpbyI9PT10aGlzLnR5cGUpJiYobS5ldmVudC5hZGQodGhpcywicHJvcGVydHljaGFuZ2UuX2NoYW5nZSIsZnVuY3Rpb24oYSl7ImNoZWNrZWQiPT09YS5vcmlnaW5hbEV2ZW50LnByb3BlcnR5TmFtZSYmKHRoaXMuX2p1c3RfY2hhbmdlZD0hMCl9KSxtLmV2ZW50LmFkZCh0aGlzLCJjbGljay5fY2hhbmdlIixmdW5jdGlvbihhKXt0aGlzLl9qdXN0X2NoYW5nZWQmJiFhLmlzVHJpZ2dlciYmKHRoaXMuX2p1c3RfY2hhbmdlZD0hMSksbS5ldmVudC5zaW11bGF0ZSgiY2hhbmdlIix0aGlzLGEsITApfSkpLCExKTp2b2lkIG0uZXZlbnQuYWRkKHRoaXMsImJlZm9yZWFjdGl2YXRlLl9jaGFuZ2UiLGZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O1gudGVzdChiLm5vZGVOYW1lKSYmIW0uX2RhdGEoYiwiY2hhbmdlQnViYmxlcyIpJiYobS5ldmVudC5hZGQoYiwiY2hhbmdlLl9jaGFuZ2UiLGZ1bmN0aW9uKGEpeyF0aGlzLnBhcmVudE5vZGV8fGEuaXNTaW11bGF0ZWR8fGEuaXNUcmlnZ2VyfHxtLmV2ZW50LnNpbXVsYXRlKCJjaGFuZ2UiLHRoaXMucGFyZW50Tm9kZSxhLCEwKX0pLG0uX2RhdGEoYiwiY2hhbmdlQnViYmxlcyIsITApKX0pfSxoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQ7cmV0dXJuIHRoaXMhPT1ifHxhLmlzU2ltdWxhdGVkfHxhLmlzVHJpZ2dlcnx8InJhZGlvIiE9PWIudHlwZSYmImNoZWNrYm94IiE9PWIudHlwZT9hLmhhbmRsZU9iai5oYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp2b2lkIDB9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIG0uZXZlbnQucmVtb3ZlKHRoaXMsIi5fY2hhbmdlIiksIVgudGVzdCh0aGlzLm5vZGVOYW1lKX19KSxrLmZvY3VzaW5CdWJibGVzfHxtLmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKGEsYil7dmFyIGM9ZnVuY3Rpb24oYSl7bS5ldmVudC5zaW11bGF0ZShiLGEudGFyZ2V0LG0uZXZlbnQuZml4KGEpLCEwKX07bS5ldmVudC5zcGVjaWFsW2JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxlPW0uX2RhdGEoZCxiKTtlfHxkLmFkZEV2ZW50TGlzdGVuZXIoYSxjLCEwKSxtLl9kYXRhKGQsYiwoZXx8MCkrMSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLGU9bS5fZGF0YShkLGIpLTE7ZT9tLl9kYXRhKGQsYixlKTooZC5yZW1vdmVFdmVudExpc3RlbmVyKGEsYywhMCksbS5fcmVtb3ZlRGF0YShkLGIpKX19fSksbS5mbi5leHRlbmQoe29uOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZztpZigib2JqZWN0Ij09dHlwZW9mIGEpeyJzdHJpbmciIT10eXBlb2YgYiYmKGM9Y3x8YixiPXZvaWQgMCk7Zm9yKGYgaW4gYSl0aGlzLm9uKGYsYixjLGFbZl0sZSk7cmV0dXJuIHRoaXN9aWYobnVsbD09YyYmbnVsbD09ZD8oZD1iLGM9Yj12b2lkIDApOm51bGw9PWQmJigic3RyaW5nIj09dHlwZW9mIGI/KGQ9YyxjPXZvaWQgMCk6KGQ9YyxjPWIsYj12b2lkIDApKSxkPT09ITEpZD1iYjtlbHNlIGlmKCFkKXJldHVybiB0aGlzO3JldHVybiAxPT09ZSYmKGc9ZCxkPWZ1bmN0aW9uKGEpe3JldHVybiBtKCkub2ZmKGEpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxkLmd1aWQ9Zy5ndWlkfHwoZy5ndWlkPW0uZ3VpZCsrKSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bS5ldmVudC5hZGQodGhpcyxhLGQsYyxiKX0pfSxvbmU6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMub24oYSxiLGMsZCwxKX0sb2ZmOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlO2lmKGEmJmEucHJldmVudERlZmF1bHQmJmEuaGFuZGxlT2JqKXJldHVybiBkPWEuaGFuZGxlT2JqLG0oYS5kZWxlZ2F0ZVRhcmdldCkub2ZmKGQubmFtZXNwYWNlP2Qub3JpZ1R5cGUrIi4iK2QubmFtZXNwYWNlOmQub3JpZ1R5cGUsZC5zZWxlY3RvcixkLmhhbmRsZXIpLHRoaXM7aWYoIm9iamVjdCI9PXR5cGVvZiBhKXtmb3IoZSBpbiBhKXRoaXMub2ZmKGUsYixhW2VdKTtyZXR1cm4gdGhpc31yZXR1cm4oYj09PSExfHwiZnVuY3Rpb24iPT10eXBlb2YgYikmJihjPWIsYj12b2lkIDApLGM9PT0hMSYmKGM9YmIpLHRoaXMuZWFjaChmdW5jdGlvbigpe20uZXZlbnQucmVtb3ZlKHRoaXMsYSxjLGIpfSl9LHRyaWdnZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bS5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXNbMF07cmV0dXJuIGM/bS5ldmVudC50cmlnZ2VyKGEsYixjLCEwKTp2b2lkIDB9fSk7ZnVuY3Rpb24gZGIoYSl7dmFyIGI9ZWIuc3BsaXQoInwiKSxjPWEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2lmKGMuY3JlYXRlRWxlbWVudCl3aGlsZShiLmxlbmd0aCljLmNyZWF0ZUVsZW1lbnQoYi5wb3AoKSk7cmV0dXJuIGN9dmFyIGViPSJhYmJyfGFydGljbGV8YXNpZGV8YXVkaW98YmRpfGNhbnZhc3xkYXRhfGRhdGFsaXN0fGRldGFpbHN8ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfGhlYWRlcnxoZ3JvdXB8bWFya3xtZXRlcnxuYXZ8b3V0cHV0fHByb2dyZXNzfHNlY3Rpb258c3VtbWFyeXx0aW1lfHZpZGVvIixmYj0vIGpRdWVyeVxkKz0iKD86bnVsbHxcZCspIi9nLGdiPW5ldyBSZWdFeHAoIjwoPzoiK2ViKyIpW1xccy8+XSIsImkiKSxoYj0vXlxzKy8saWI9LzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW1x3Ol0rKVtePl0qKVwvPi9naSxqYj0vPChbXHc6XSspLyxrYj0vPHRib2R5L2ksbGI9Lzx8JiM/XHcrOy8sbWI9LzwoPzpzY3JpcHR8c3R5bGV8bGluaykvaSxuYj0vY2hlY2tlZFxzKig/OltePV18PVxzKi5jaGVja2VkLikvaSxvYj0vXiR8XC8oPzpqYXZhfGVjbWEpc2NyaXB0L2kscGI9L150cnVlXC8oLiopLyxxYj0vXlxzKjwhKD86XFtDREFUQVxbfC0tKXwoPzpcXVxdfC0tKT5ccyokL2cscmI9e29wdGlvbjpbMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdLGxlZ2VuZDpbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il0sYXJlYTpbMSwiPG1hcD4iLCI8L21hcD4iXSxwYXJhbTpbMSwiPG9iamVjdD4iLCI8L29iamVjdD4iXSx0aGVhZDpbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdLGNvbDpbMiwiPHRhYmxlPjx0Ym9keT48L3Rib2R5Pjxjb2xncm91cD4iLCI8L2NvbGdyb3VwPjwvdGFibGU+Il0sdGQ6WzMsIjx0YWJsZT48dGJvZHk+PHRyPiIsIjwvdHI+PC90Ym9keT48L3RhYmxlPiJdLF9kZWZhdWx0OmsuaHRtbFNlcmlhbGl6ZT9bMCwiIiwiIl06WzEsIlg8ZGl2PiIsIjwvZGl2PiJdfSxzYj1kYih5KSx0Yj1zYi5hcHBlbmRDaGlsZCh5LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTtyYi5vcHRncm91cD1yYi5vcHRpb24scmIudGJvZHk9cmIudGZvb3Q9cmIuY29sZ3JvdXA9cmIuY2FwdGlvbj1yYi50aGVhZCxyYi50aD1yYi50ZDtmdW5jdGlvbiB1YihhLGIpe3ZhciBjLGQsZT0wLGY9dHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUhPT1LP2EuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYnx8IioiKTp0eXBlb2YgYS5xdWVyeVNlbGVjdG9yQWxsIT09Sz9hLnF1ZXJ5U2VsZWN0b3JBbGwoYnx8IioiKTp2b2lkIDA7aWYoIWYpZm9yKGY9W10sYz1hLmNoaWxkTm9kZXN8fGE7bnVsbCE9KGQ9Y1tlXSk7ZSsrKSFifHxtLm5vZGVOYW1lKGQsYik/Zi5wdXNoKGQpOm0ubWVyZ2UoZix1YihkLGIpKTtyZXR1cm4gdm9pZCAwPT09Ynx8YiYmbS5ub2RlTmFtZShhLGIpP20ubWVyZ2UoW2FdLGYpOmZ9ZnVuY3Rpb24gdmIoYSl7Vy50ZXN0KGEudHlwZSkmJihhLmRlZmF1bHRDaGVja2VkPWEuY2hlY2tlZCl9ZnVuY3Rpb24gd2IoYSxiKXtyZXR1cm4gbS5ub2RlTmFtZShhLCJ0YWJsZSIpJiZtLm5vZGVOYW1lKDExIT09Yi5ub2RlVHlwZT9iOmIuZmlyc3RDaGlsZCwidHIiKT9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdfHxhLmFwcGVuZENoaWxkKGEub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKTphfWZ1bmN0aW9uIHhiKGEpe3JldHVybiBhLnR5cGU9KG51bGwhPT1tLmZpbmQuYXR0cihhLCJ0eXBlIikpKyIvIithLnR5cGUsYX1mdW5jdGlvbiB5YihhKXt2YXIgYj1wYi5leGVjKGEudHlwZSk7cmV0dXJuIGI/YS50eXBlPWJbMV06YS5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSxhfWZ1bmN0aW9uIHpiKGEsYil7Zm9yKHZhciBjLGQ9MDtudWxsIT0oYz1hW2RdKTtkKyspbS5fZGF0YShjLCJnbG9iYWxFdmFsIiwhYnx8bS5fZGF0YShiW2RdLCJnbG9iYWxFdmFsIikpfWZ1bmN0aW9uIEFiKGEsYil7aWYoMT09PWIubm9kZVR5cGUmJm0uaGFzRGF0YShhKSl7dmFyIGMsZCxlLGY9bS5fZGF0YShhKSxnPW0uX2RhdGEoYixmKSxoPWYuZXZlbnRzO2lmKGgpe2RlbGV0ZSBnLmhhbmRsZSxnLmV2ZW50cz17fTtmb3IoYyBpbiBoKWZvcihkPTAsZT1oW2NdLmxlbmd0aDtlPmQ7ZCsrKW0uZXZlbnQuYWRkKGIsYyxoW2NdW2RdKX1nLmRhdGEmJihnLmRhdGE9bS5leHRlbmQoe30sZy5kYXRhKSl9fWZ1bmN0aW9uIEJiKGEsYil7dmFyIGMsZCxlO2lmKDE9PT1iLm5vZGVUeXBlKXtpZihjPWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSwhay5ub0Nsb25lRXZlbnQmJmJbbS5leHBhbmRvXSl7ZT1tLl9kYXRhKGIpO2ZvcihkIGluIGUuZXZlbnRzKW0ucmVtb3ZlRXZlbnQoYixkLGUuaGFuZGxlKTtiLnJlbW92ZUF0dHJpYnV0ZShtLmV4cGFuZG8pfSJzY3JpcHQiPT09YyYmYi50ZXh0IT09YS50ZXh0Pyh4YihiKS50ZXh0PWEudGV4dCx5YihiKSk6Im9iamVjdCI9PT1jPyhiLnBhcmVudE5vZGUmJihiLm91dGVySFRNTD1hLm91dGVySFRNTCksay5odG1sNUNsb25lJiZhLmlubmVySFRNTCYmIW0udHJpbShiLmlubmVySFRNTCkmJihiLmlubmVySFRNTD1hLmlubmVySFRNTCkpOiJpbnB1dCI9PT1jJiZXLnRlc3QoYS50eXBlKT8oYi5kZWZhdWx0Q2hlY2tlZD1iLmNoZWNrZWQ9YS5jaGVja2VkLGIudmFsdWUhPT1hLnZhbHVlJiYoYi52YWx1ZT1hLnZhbHVlKSk6Im9wdGlvbiI9PT1jP2IuZGVmYXVsdFNlbGVjdGVkPWIuc2VsZWN0ZWQ9YS5kZWZhdWx0U2VsZWN0ZWQ6KCJpbnB1dCI9PT1jfHwidGV4dGFyZWEiPT09YykmJihiLmRlZmF1bHRWYWx1ZT1hLmRlZmF1bHRWYWx1ZSl9fW0uZXh0ZW5kKHtjbG9uZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpPW0uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpO2lmKGsuaHRtbDVDbG9uZXx8bS5pc1hNTERvYyhhKXx8IWdiLnRlc3QoIjwiK2Eubm9kZU5hbWUrIj4iKT9mPWEuY2xvbmVOb2RlKCEwKToodGIuaW5uZXJIVE1MPWEub3V0ZXJIVE1MLHRiLnJlbW92ZUNoaWxkKGY9dGIuZmlyc3RDaGlsZCkpLCEoay5ub0Nsb25lRXZlbnQmJmsubm9DbG9uZUNoZWNrZWR8fDEhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGV8fG0uaXNYTUxEb2MoYSkpKWZvcihkPXViKGYpLGg9dWIoYSksZz0wO251bGwhPShlPWhbZ10pOysrZylkW2ddJiZCYihlLGRbZ10pO2lmKGIpaWYoYylmb3IoaD1ofHx1YihhKSxkPWR8fHViKGYpLGc9MDtudWxsIT0oZT1oW2ddKTtnKyspQWIoZSxkW2ddKTtlbHNlIEFiKGEsZik7cmV0dXJuIGQ9dWIoZiwic2NyaXB0IiksZC5sZW5ndGg+MCYmemIoZCwhaSYmdWIoYSwic2NyaXB0IikpLGQ9aD1lPW51bGwsZn0sYnVpbGRGcmFnbWVudDpmdW5jdGlvbihhLGIsYyxkKXtmb3IodmFyIGUsZixnLGgsaSxqLGwsbj1hLmxlbmd0aCxvPWRiKGIpLHA9W10scT0wO24+cTtxKyspaWYoZj1hW3FdLGZ8fDA9PT1mKWlmKCJvYmplY3QiPT09bS50eXBlKGYpKW0ubWVyZ2UocCxmLm5vZGVUeXBlP1tmXTpmKTtlbHNlIGlmKGxiLnRlc3QoZikpe2g9aHx8by5hcHBlbmRDaGlsZChiLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSxpPShqYi5leGVjKGYpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpLGw9cmJbaV18fHJiLl9kZWZhdWx0LGguaW5uZXJIVE1MPWxbMV0rZi5yZXBsYWNlKGliLCI8JDE+PC8kMj4iKStsWzJdLGU9bFswXTt3aGlsZShlLS0paD1oLmxhc3RDaGlsZDtpZighay5sZWFkaW5nV2hpdGVzcGFjZSYmaGIudGVzdChmKSYmcC5wdXNoKGIuY3JlYXRlVGV4dE5vZGUoaGIuZXhlYyhmKVswXSkpLCFrLnRib2R5KXtmPSJ0YWJsZSIhPT1pfHxrYi50ZXN0KGYpPyI8dGFibGU+IiE9PWxbMV18fGtiLnRlc3QoZik/MDpoOmguZmlyc3RDaGlsZCxlPWYmJmYuY2hpbGROb2Rlcy5sZW5ndGg7d2hpbGUoZS0tKW0ubm9kZU5hbWUoaj1mLmNoaWxkTm9kZXNbZV0sInRib2R5IikmJiFqLmNoaWxkTm9kZXMubGVuZ3RoJiZmLnJlbW92ZUNoaWxkKGopfW0ubWVyZ2UocCxoLmNoaWxkTm9kZXMpLGgudGV4dENvbnRlbnQ9IiI7d2hpbGUoaC5maXJzdENoaWxkKWgucmVtb3ZlQ2hpbGQoaC5maXJzdENoaWxkKTtoPW8ubGFzdENoaWxkfWVsc2UgcC5wdXNoKGIuY3JlYXRlVGV4dE5vZGUoZikpO2gmJm8ucmVtb3ZlQ2hpbGQoaCksay5hcHBlbmRDaGVja2VkfHxtLmdyZXAodWIocCwiaW5wdXQiKSx2YikscT0wO3doaWxlKGY9cFtxKytdKWlmKCghZHx8LTE9PT1tLmluQXJyYXkoZixkKSkmJihnPW0uY29udGFpbnMoZi5vd25lckRvY3VtZW50LGYpLGg9dWIoby5hcHBlbmRDaGlsZChmKSwic2NyaXB0IiksZyYmemIoaCksYykpe2U9MDt3aGlsZShmPWhbZSsrXSlvYi50ZXN0KGYudHlwZXx8IiIpJiZjLnB1c2goZil9cmV0dXJuIGg9bnVsbCxvfSxjbGVhbkRhdGE6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGQsZSxmLGcsaD0wLGk9bS5leHBhbmRvLGo9bS5jYWNoZSxsPWsuZGVsZXRlRXhwYW5kbyxuPW0uZXZlbnQuc3BlY2lhbDtudWxsIT0oZD1hW2hdKTtoKyspaWYoKGJ8fG0uYWNjZXB0RGF0YShkKSkmJihmPWRbaV0sZz1mJiZqW2ZdKSl7aWYoZy5ldmVudHMpZm9yKGUgaW4gZy5ldmVudHMpbltlXT9tLmV2ZW50LnJlbW92ZShkLGUpOm0ucmVtb3ZlRXZlbnQoZCxlLGcuaGFuZGxlKTtqW2ZdJiYoZGVsZXRlIGpbZl0sbD9kZWxldGUgZFtpXTp0eXBlb2YgZC5yZW1vdmVBdHRyaWJ1dGUhPT1LP2QucmVtb3ZlQXR0cmlidXRlKGkpOmRbaV09bnVsbCxjLnB1c2goZikpfX19KSxtLmZuLmV4dGVuZCh7dGV4dDpmdW5jdGlvbihhKXtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGEpe3JldHVybiB2b2lkIDA9PT1hP20udGV4dCh0aGlzKTp0aGlzLmVtcHR5KCkuYXBwZW5kKCh0aGlzWzBdJiZ0aGlzWzBdLm93bmVyRG9jdW1lbnR8fHkpLmNyZWF0ZVRleHROb2RlKGEpKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciBiPXdiKHRoaXMsYSk7Yi5hcHBlbmRDaGlsZChhKX19KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmdW5jdGlvbihhKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIGI9d2IodGhpcyxhKTtiLmluc2VydEJlZm9yZShhLGIuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmdW5jdGlvbihhKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmdW5jdGlvbihhKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzLm5leHRTaWJsaW5nKX0pfSxyZW1vdmU6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZD1hP20uZmlsdGVyKGEsdGhpcyk6dGhpcyxlPTA7bnVsbCE9KGM9ZFtlXSk7ZSsrKWJ8fDEhPT1jLm5vZGVUeXBlfHxtLmNsZWFuRGF0YSh1YihjKSksYy5wYXJlbnROb2RlJiYoYiYmbS5jb250YWlucyhjLm93bmVyRG9jdW1lbnQsYykmJnpiKHViKGMsInNjcmlwdCIpKSxjLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYykpO3JldHVybiB0aGlzfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgYSxiPTA7bnVsbCE9KGE9dGhpc1tiXSk7YisrKXsxPT09YS5ub2RlVHlwZSYmbS5jbGVhbkRhdGEodWIoYSwhMSkpO3doaWxlKGEuZmlyc3RDaGlsZClhLnJlbW92ZUNoaWxkKGEuZmlyc3RDaGlsZCk7YS5vcHRpb25zJiZtLm5vZGVOYW1lKGEsInNlbGVjdCIpJiYoYS5vcHRpb25zLmxlbmd0aD0wKX1yZXR1cm4gdGhpc30sY2xvbmU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1udWxsPT1hPyExOmEsYj1udWxsPT1iP2E6Yix0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBtLmNsb25lKHRoaXMsYSxiKX0pfSxodG1sOmZ1bmN0aW9uKGEpe3JldHVybiBWKHRoaXMsZnVuY3Rpb24oYSl7dmFyIGI9dGhpc1swXXx8e30sYz0wLGQ9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09YSlyZXR1cm4gMT09PWIubm9kZVR5cGU/Yi5pbm5lckhUTUwucmVwbGFjZShmYiwiIik6dm9pZCAwO2lmKCEoInN0cmluZyIhPXR5cGVvZiBhfHxtYi50ZXN0KGEpfHwhay5odG1sU2VyaWFsaXplJiZnYi50ZXN0KGEpfHwhay5sZWFkaW5nV2hpdGVzcGFjZSYmaGIudGVzdChhKXx8cmJbKGpiLmV4ZWMoYSl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCldKSl7YT1hLnJlcGxhY2UoaWIsIjwkMT48LyQyPiIpO3RyeXtmb3IoO2Q+YztjKyspYj10aGlzW2NdfHx7fSwxPT09Yi5ub2RlVHlwZSYmKG0uY2xlYW5EYXRhKHViKGIsITEpKSxiLmlubmVySFRNTD1hKTtiPTB9Y2F0Y2goZSl7fX1iJiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGEpfSxudWxsLGEsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzWzBdO3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmdW5jdGlvbihiKXthPXRoaXMucGFyZW50Tm9kZSxtLmNsZWFuRGF0YSh1Yih0aGlzKSksYSYmYS5yZXBsYWNlQ2hpbGQoYix0aGlzKX0pLGEmJihhLmxlbmd0aHx8YS5ub2RlVHlwZSk/dGhpczp0aGlzLnJlbW92ZSgpfSxkZXRhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucmVtb3ZlKGEsITApfSxkb21NYW5pcDpmdW5jdGlvbihhLGIpe2E9ZS5hcHBseShbXSxhKTt2YXIgYyxkLGYsZyxoLGksaj0wLGw9dGhpcy5sZW5ndGgsbj10aGlzLG89bC0xLHA9YVswXSxxPW0uaXNGdW5jdGlvbihwKTtpZihxfHxsPjEmJiJzdHJpbmciPT10eXBlb2YgcCYmIWsuY2hlY2tDbG9uZSYmbmIudGVzdChwKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGMpe3ZhciBkPW4uZXEoYyk7cSYmKGFbMF09cC5jYWxsKHRoaXMsYyxkLmh0bWwoKSkpLGQuZG9tTWFuaXAoYSxiKX0pO2lmKGwmJihpPW0uYnVpbGRGcmFnbWVudChhLHRoaXNbMF0ub3duZXJEb2N1bWVudCwhMSx0aGlzKSxjPWkuZmlyc3RDaGlsZCwxPT09aS5jaGlsZE5vZGVzLmxlbmd0aCYmKGk9YyksYykpe2ZvcihnPW0ubWFwKHViKGksInNjcmlwdCIpLHhiKSxmPWcubGVuZ3RoO2w+ajtqKyspZD1pLGohPT1vJiYoZD1tLmNsb25lKGQsITAsITApLGYmJm0ubWVyZ2UoZyx1YihkLCJzY3JpcHQiKSkpLGIuY2FsbCh0aGlzW2pdLGQsaik7aWYoZilmb3IoaD1nW2cubGVuZ3RoLTFdLm93bmVyRG9jdW1lbnQsbS5tYXAoZyx5Yiksaj0wO2Y+ajtqKyspZD1nW2pdLG9iLnRlc3QoZC50eXBlfHwiIikmJiFtLl9kYXRhKGQsImdsb2JhbEV2YWwiKSYmbS5jb250YWlucyhoLGQpJiYoZC5zcmM/bS5fZXZhbFVybCYmbS5fZXZhbFVybChkLnNyYyk6bS5nbG9iYWxFdmFsKChkLnRleHR8fGQudGV4dENvbnRlbnR8fGQuaW5uZXJIVE1MfHwiIikucmVwbGFjZShxYiwiIikpKTtpPWM9bnVsbH1yZXR1cm4gdGhpc319KSxtLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihhLGIpe20uZm5bYV09ZnVuY3Rpb24oYSl7Zm9yKHZhciBjLGQ9MCxlPVtdLGc9bShhKSxoPWcubGVuZ3RoLTE7aD49ZDtkKyspYz1kPT09aD90aGlzOnRoaXMuY2xvbmUoITApLG0oZ1tkXSlbYl0oYyksZi5hcHBseShlLGMuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhlKX19KTt2YXIgQ2IsRGI9e307ZnVuY3Rpb24gRWIoYixjKXt2YXIgZCxlPW0oYy5jcmVhdGVFbGVtZW50KGIpKS5hcHBlbmRUbyhjLmJvZHkpLGY9YS5nZXREZWZhdWx0Q29tcHV0ZWRTdHlsZSYmKGQ9YS5nZXREZWZhdWx0Q29tcHV0ZWRTdHlsZShlWzBdKSk/ZC5kaXNwbGF5Om0uY3NzKGVbMF0sImRpc3BsYXkiKTtyZXR1cm4gZS5kZXRhY2goKSxmfWZ1bmN0aW9uIEZiKGEpe3ZhciBiPXksYz1EYlthXTtyZXR1cm4gY3x8KGM9RWIoYSxiKSwibm9uZSIhPT1jJiZjfHwoQ2I9KENifHxtKCI8aWZyYW1lIGZyYW1lYm9yZGVyPScwJyB3aWR0aD0nMCcgaGVpZ2h0PScwJy8+IikpLmFwcGVuZFRvKGIuZG9jdW1lbnRFbGVtZW50KSxiPShDYlswXS5jb250ZW50V2luZG93fHxDYlswXS5jb250ZW50RG9jdW1lbnQpLmRvY3VtZW50LGIud3JpdGUoKSxiLmNsb3NlKCksYz1FYihhLGIpLENiLmRldGFjaCgpKSxEYlthXT1jKSxjfSFmdW5jdGlvbigpe3ZhciBhO2suc2hyaW5rV3JhcEJsb2Nrcz1mdW5jdGlvbigpe2lmKG51bGwhPWEpcmV0dXJuIGE7YT0hMTt2YXIgYixjLGQ7cmV0dXJuIGM9eS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLGMmJmMuc3R5bGU/KGI9eS5jcmVhdGVFbGVtZW50KCJkaXYiKSxkPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweCIsYy5hcHBlbmRDaGlsZChkKS5hcHBlbmRDaGlsZChiKSx0eXBlb2YgYi5zdHlsZS56b29tIT09SyYmKGIuc3R5bGUuY3NzVGV4dD0iLXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzoxcHg7d2lkdGg6MXB4O3pvb206MSIsYi5hcHBlbmRDaGlsZCh5LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5zdHlsZS53aWR0aD0iNXB4IixhPTMhPT1iLm9mZnNldFdpZHRoKSxjLnJlbW92ZUNoaWxkKGQpLGEpOnZvaWQgMH19KCk7dmFyIEdiPS9ebWFyZ2luLyxIYj1uZXcgUmVnRXhwKCJeKCIrUysiKSg/IXB4KVthLXolXSskIiwiaSIpLEliLEpiLEtiPS9eKHRvcHxyaWdodHxib3R0b218bGVmdCkkLzthLmdldENvbXB1dGVkU3R5bGU/KEliPWZ1bmN0aW9uKGEpe3JldHVybiBhLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShhLG51bGwpfSxKYj1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGcsaD1hLnN0eWxlO3JldHVybiBjPWN8fEliKGEpLGc9Yz9jLmdldFByb3BlcnR5VmFsdWUoYil8fGNbYl06dm9pZCAwLGMmJigiIiE9PWd8fG0uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfHwoZz1tLnN0eWxlKGEsYikpLEhiLnRlc3QoZykmJkdiLnRlc3QoYikmJihkPWgud2lkdGgsZT1oLm1pbldpZHRoLGY9aC5tYXhXaWR0aCxoLm1pbldpZHRoPWgubWF4V2lkdGg9aC53aWR0aD1nLGc9Yy53aWR0aCxoLndpZHRoPWQsaC5taW5XaWR0aD1lLGgubWF4V2lkdGg9ZikpLHZvaWQgMD09PWc/ZzpnKyIifSk6eS5kb2N1bWVudEVsZW1lbnQuY3VycmVudFN0eWxlJiYoSWI9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuY3VycmVudFN0eWxlfSxKYj1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGcsaD1hLnN0eWxlO3JldHVybiBjPWN8fEliKGEpLGc9Yz9jW2JdOnZvaWQgMCxudWxsPT1nJiZoJiZoW2JdJiYoZz1oW2JdKSxIYi50ZXN0KGcpJiYhS2IudGVzdChiKSYmKGQ9aC5sZWZ0LGU9YS5ydW50aW1lU3R5bGUsZj1lJiZlLmxlZnQsZiYmKGUubGVmdD1hLmN1cnJlbnRTdHlsZS5sZWZ0KSxoLmxlZnQ9ImZvbnRTaXplIj09PWI/IjFlbSI6ZyxnPWgucGl4ZWxMZWZ0KyJweCIsaC5sZWZ0PWQsZiYmKGUubGVmdD1mKSksdm9pZCAwPT09Zz9nOmcrIiJ8fCJhdXRvIn0pO2Z1bmN0aW9uIExiKGEsYil7cmV0dXJue2dldDpmdW5jdGlvbigpe3ZhciBjPWEoKTtpZihudWxsIT1jKXJldHVybiBjP3ZvaWQgZGVsZXRlIHRoaXMuZ2V0Oih0aGlzLmdldD1iKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX0hZnVuY3Rpb24oKXt2YXIgYixjLGQsZSxmLGcsaDtpZihiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksYi5pbm5lckhUTUw9IiAgPGxpbmsvPjx0YWJsZT48L3RhYmxlPjxhIGhyZWY9Jy9hJz5hPC9hPjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPiIsZD1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhIilbMF0sYz1kJiZkLnN0eWxlKXtjLmNzc1RleHQ9ImZsb2F0OmxlZnQ7b3BhY2l0eTouNSIsay5vcGFjaXR5PSIwLjUiPT09Yy5vcGFjaXR5LGsuY3NzRmxvYXQ9ISFjLmNzc0Zsb2F0LGIuc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixiLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIsay5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWIuc3R5bGUuYmFja2dyb3VuZENsaXAsay5ib3hTaXppbmc9IiI9PT1jLmJveFNpemluZ3x8IiI9PT1jLk1vekJveFNpemluZ3x8IiI9PT1jLldlYmtpdEJveFNpemluZyxtLmV4dGVuZChrLHtyZWxpYWJsZUhpZGRlbk9mZnNldHM6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09ZyYmaSgpLGd9LGJveFNpemluZ1JlbGlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWYmJmkoKSxmfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWUmJmkoKSxlfSxyZWxpYWJsZU1hcmdpblJpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWgmJmkoKSxofX0pO2Z1bmN0aW9uIGkoKXt2YXIgYixjLGQsaTtjPXkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxjJiZjLnN0eWxlJiYoYj15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQ9eS5jcmVhdGVFbGVtZW50KCJkaXYiKSxkLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2JvcmRlcjowO3dpZHRoOjA7aGVpZ2h0OjA7dG9wOjA7bGVmdDotOTk5OXB4IixjLmFwcGVuZENoaWxkKGQpLmFwcGVuZENoaWxkKGIpLGIuc3R5bGUuY3NzVGV4dD0iLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDoxJTt0b3A6MSU7Ym9yZGVyOjFweDtwYWRkaW5nOjFweDt3aWR0aDo0cHg7cG9zaXRpb246YWJzb2x1dGUiLGU9Zj0hMSxoPSEwLGEuZ2V0Q29tcHV0ZWRTdHlsZSYmKGU9IjElIiE9PShhLmdldENvbXB1dGVkU3R5bGUoYixudWxsKXx8e30pLnRvcCxmPSI0cHgiPT09KGEuZ2V0Q29tcHV0ZWRTdHlsZShiLG51bGwpfHx7d2lkdGg6IjRweCJ9KS53aWR0aCxpPWIuYXBwZW5kQ2hpbGQoeS5jcmVhdGVFbGVtZW50KCJkaXYiKSksaS5zdHlsZS5jc3NUZXh0PWIuc3R5bGUuY3NzVGV4dD0iLXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowIixpLnN0eWxlLm1hcmdpblJpZ2h0PWkuc3R5bGUud2lkdGg9IjAiLGIuc3R5bGUud2lkdGg9IjFweCIsaD0hcGFyc2VGbG9hdCgoYS5nZXRDb21wdXRlZFN0eWxlKGksbnVsbCl8fHt9KS5tYXJnaW5SaWdodCkpLGIuaW5uZXJIVE1MPSI8dGFibGU+PHRyPjx0ZD48L3RkPjx0ZD50PC90ZD48L3RyPjwvdGFibGU+IixpPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRkIiksaVswXS5zdHlsZS5jc3NUZXh0PSJtYXJnaW46MDtib3JkZXI6MDtwYWRkaW5nOjA7ZGlzcGxheTpub25lIixnPTA9PT1pWzBdLm9mZnNldEhlaWdodCxnJiYoaVswXS5zdHlsZS5kaXNwbGF5PSIiLGlbMV0uc3R5bGUuZGlzcGxheT0ibm9uZSIsZz0wPT09aVswXS5vZmZzZXRIZWlnaHQpLGMucmVtb3ZlQ2hpbGQoZCkpfX19KCksbS5zd2FwPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZz17fTtmb3IoZiBpbiBiKWdbZl09YS5zdHlsZVtmXSxhLnN0eWxlW2ZdPWJbZl07ZT1jLmFwcGx5KGEsZHx8W10pO2ZvcihmIGluIGIpYS5zdHlsZVtmXT1nW2ZdO3JldHVybiBlfTt2YXIgTWI9L2FscGhhXChbXildKlwpL2ksTmI9L29wYWNpdHlccyo9XHMqKFteKV0qKS8sT2I9L14obm9uZXx0YWJsZSg/IS1jW2VhXSkuKykvLFBiPW5ldyBSZWdFeHAoIl4oIitTKyIpKC4qKSQiLCJpIiksUWI9bmV3IFJlZ0V4cCgiXihbKy1dKT0oIitTKyIpIiwiaSIpLFJiPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxTYj17bGV0dGVyU3BhY2luZzoiMCIsZm9udFdlaWdodDoiNDAwIn0sVGI9WyJXZWJraXQiLCJPIiwiTW96IiwibXMiXTtmdW5jdGlvbiBVYihhLGIpe2lmKGIgaW4gYSlyZXR1cm4gYjt2YXIgYz1iLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Iuc2xpY2UoMSksZD1iLGU9VGIubGVuZ3RoO3doaWxlKGUtLSlpZihiPVRiW2VdK2MsYiBpbiBhKXJldHVybiBiO3JldHVybiBkfWZ1bmN0aW9uIFZiKGEsYil7Zm9yKHZhciBjLGQsZSxmPVtdLGc9MCxoPWEubGVuZ3RoO2g+ZztnKyspZD1hW2ddLGQuc3R5bGUmJihmW2ddPW0uX2RhdGEoZCwib2xkZGlzcGxheSIpLGM9ZC5zdHlsZS5kaXNwbGF5LGI/KGZbZ118fCJub25lIiE9PWN8fChkLnN0eWxlLmRpc3BsYXk9IiIpLCIiPT09ZC5zdHlsZS5kaXNwbGF5JiZVKGQpJiYoZltnXT1tLl9kYXRhKGQsIm9sZGRpc3BsYXkiLEZiKGQubm9kZU5hbWUpKSkpOihlPVUoZCksKGMmJiJub25lIiE9PWN8fCFlKSYmbS5fZGF0YShkLCJvbGRkaXNwbGF5IixlP2M6bS5jc3MoZCwiZGlzcGxheSIpKSkpO2ZvcihnPTA7aD5nO2crKylkPWFbZ10sZC5zdHlsZSYmKGImJiJub25lIiE9PWQuc3R5bGUuZGlzcGxheSYmIiIhPT1kLnN0eWxlLmRpc3BsYXl8fChkLnN0eWxlLmRpc3BsYXk9Yj9mW2ddfHwiIjoibm9uZSIpKTtyZXR1cm4gYX1mdW5jdGlvbiBXYihhLGIsYyl7dmFyIGQ9UGIuZXhlYyhiKTtyZXR1cm4gZD9NYXRoLm1heCgwLGRbMV0tKGN8fDApKSsoZFsyXXx8InB4Iik6Yn1mdW5jdGlvbiBYYihhLGIsYyxkLGUpe2Zvcih2YXIgZj1jPT09KGQ/ImJvcmRlciI6ImNvbnRlbnQiKT80OiJ3aWR0aCI9PT1iPzE6MCxnPTA7ND5mO2YrPTIpIm1hcmdpbiI9PT1jJiYoZys9bS5jc3MoYSxjK1RbZl0sITAsZSkpLGQ/KCJjb250ZW50Ij09PWMmJihnLT1tLmNzcyhhLCJwYWRkaW5nIitUW2ZdLCEwLGUpKSwibWFyZ2luIiE9PWMmJihnLT1tLmNzcyhhLCJib3JkZXIiK1RbZl0rIldpZHRoIiwhMCxlKSkpOihnKz1tLmNzcyhhLCJwYWRkaW5nIitUW2ZdLCEwLGUpLCJwYWRkaW5nIiE9PWMmJihnKz1tLmNzcyhhLCJib3JkZXIiK1RbZl0rIldpZHRoIiwhMCxlKSkpO3JldHVybiBnfWZ1bmN0aW9uIFliKGEsYixjKXt2YXIgZD0hMCxlPSJ3aWR0aCI9PT1iP2Eub2Zmc2V0V2lkdGg6YS5vZmZzZXRIZWlnaHQsZj1JYihhKSxnPWsuYm94U2l6aW5nJiYiYm9yZGVyLWJveCI9PT1tLmNzcyhhLCJib3hTaXppbmciLCExLGYpO2lmKDA+PWV8fG51bGw9PWUpe2lmKGU9SmIoYSxiLGYpLCgwPmV8fG51bGw9PWUpJiYoZT1hLnN0eWxlW2JdKSxIYi50ZXN0KGUpKXJldHVybiBlO2Q9ZyYmKGsuYm94U2l6aW5nUmVsaWFibGUoKXx8ZT09PWEuc3R5bGVbYl0pLGU9cGFyc2VGbG9hdChlKXx8MH1yZXR1cm4gZStYYihhLGIsY3x8KGc/ImJvcmRlciI6ImNvbnRlbnQiKSxkLGYpKyJweCJ9bS5leHRlbmQoe2Nzc0hvb2tzOntvcGFjaXR5OntnZXQ6ZnVuY3Rpb24oYSxiKXtpZihiKXt2YXIgYz1KYihhLCJvcGFjaXR5Iik7cmV0dXJuIiI9PT1jPyIxIjpjfX19fSxjc3NOdW1iZXI6e2NvbHVtbkNvdW50OiEwLGZpbGxPcGFjaXR5OiEwLGZsZXhHcm93OiEwLGZsZXhTaHJpbms6ITAsZm9udFdlaWdodDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9LGNzc1Byb3BzOnsiZmxvYXQiOmsuY3NzRmxvYXQ/ImNzc0Zsb2F0Ijoic3R5bGVGbG9hdCJ9LHN0eWxlOmZ1bmN0aW9uKGEsYixjLGQpe2lmKGEmJjMhPT1hLm5vZGVUeXBlJiY4IT09YS5ub2RlVHlwZSYmYS5zdHlsZSl7dmFyIGUsZixnLGg9bS5jYW1lbENhc2UoYiksaT1hLnN0eWxlO2lmKGI9bS5jc3NQcm9wc1toXXx8KG0uY3NzUHJvcHNbaF09VWIoaSxoKSksZz1tLmNzc0hvb2tzW2JdfHxtLmNzc0hvb2tzW2hdLHZvaWQgMD09PWMpcmV0dXJuIGcmJiJnZXQiaW4gZyYmdm9pZCAwIT09KGU9Zy5nZXQoYSwhMSxkKSk/ZTppW2JdO2lmKGY9dHlwZW9mIGMsInN0cmluZyI9PT1mJiYoZT1RYi5leGVjKGMpKSYmKGM9KGVbMV0rMSkqZVsyXStwYXJzZUZsb2F0KG0uY3NzKGEsYikpLGY9Im51bWJlciIpLG51bGwhPWMmJmM9PT1jJiYoIm51bWJlciIhPT1mfHxtLmNzc051bWJlcltoXXx8KGMrPSJweCIpLGsuY2xlYXJDbG9uZVN0eWxlfHwiIiE9PWN8fDAhPT1iLmluZGV4T2YoImJhY2tncm91bmQiKXx8KGlbYl09ImluaGVyaXQiKSwhKGcmJiJzZXQiaW4gZyYmdm9pZCAwPT09KGM9Zy5zZXQoYSxjLGQpKSkpKXRyeXtpW2JdPWN9Y2F0Y2goail7fX19LGNzczpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGcsaD1tLmNhbWVsQ2FzZShiKTtyZXR1cm4gYj1tLmNzc1Byb3BzW2hdfHwobS5jc3NQcm9wc1toXT1VYihhLnN0eWxlLGgpKSxnPW0uY3NzSG9va3NbYl18fG0uY3NzSG9va3NbaF0sZyYmImdldCJpbiBnJiYoZj1nLmdldChhLCEwLGMpKSx2b2lkIDA9PT1mJiYoZj1KYihhLGIsZCkpLCJub3JtYWwiPT09ZiYmYiBpbiBTYiYmKGY9U2JbYl0pLCIiPT09Y3x8Yz8oZT1wYXJzZUZsb2F0KGYpLGM9PT0hMHx8bS5pc051bWVyaWMoZSk/ZXx8MDpmKTpmfX0pLG0uZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oYSxiKXttLmNzc0hvb2tzW2JdPXtnZXQ6ZnVuY3Rpb24oYSxjLGQpe3JldHVybiBjP09iLnRlc3QobS5jc3MoYSwiZGlzcGxheSIpKSYmMD09PWEub2Zmc2V0V2lkdGg/bS5zd2FwKGEsUmIsZnVuY3Rpb24oKXtyZXR1cm4gWWIoYSxiLGQpfSk6WWIoYSxiLGQpOnZvaWQgMH0sc2V0OmZ1bmN0aW9uKGEsYyxkKXt2YXIgZT1kJiZJYihhKTtyZXR1cm4gV2IoYSxjLGQ/WGIoYSxiLGQsay5ib3hTaXppbmcmJiJib3JkZXItYm94Ij09PW0uY3NzKGEsImJveFNpemluZyIsITEsZSksZSk6MCl9fX0pLGsub3BhY2l0eXx8KG0uY3NzSG9va3Mub3BhY2l0eT17Z2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIE5iLnRlc3QoKGImJmEuY3VycmVudFN0eWxlP2EuY3VycmVudFN0eWxlLmZpbHRlcjphLnN0eWxlLmZpbHRlcil8fCIiKT8uMDEqcGFyc2VGbG9hdChSZWdFeHAuJDEpKyIiOmI/IjEiOiIifSxzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLnN0eWxlLGQ9YS5jdXJyZW50U3R5bGUsZT1tLmlzTnVtZXJpYyhiKT8iYWxwaGEob3BhY2l0eT0iKzEwMCpiKyIpIjoiIixmPWQmJmQuZmlsdGVyfHxjLmZpbHRlcnx8IiI7Yy56b29tPTEsKGI+PTF8fCIiPT09YikmJiIiPT09bS50cmltKGYucmVwbGFjZShNYiwiIikpJiZjLnJlbW92ZUF0dHJpYnV0ZSYmKGMucmVtb3ZlQXR0cmlidXRlKCJmaWx0ZXIiKSwiIj09PWJ8fGQmJiFkLmZpbHRlcil8fChjLmZpbHRlcj1NYi50ZXN0KGYpP2YucmVwbGFjZShNYixlKTpmKyIgIitlKX19KSxtLmNzc0hvb2tzLm1hcmdpblJpZ2h0PUxiKGsucmVsaWFibGVNYXJnaW5SaWdodCxmdW5jdGlvbihhLGIpe3JldHVybiBiP20uc3dhcChhLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2sifSxKYixbYSwibWFyZ2luUmlnaHQiXSk6dm9pZCAwfSksbS5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oYSxiKXttLmNzc0hvb2tzW2ErYl09e2V4cGFuZDpmdW5jdGlvbihjKXtmb3IodmFyIGQ9MCxlPXt9LGY9InN0cmluZyI9PXR5cGVvZiBjP2Muc3BsaXQoIiAiKTpbY107ND5kO2QrKyllW2ErVFtkXStiXT1mW2RdfHxmW2QtMl18fGZbMF07cmV0dXJuIGV9fSxHYi50ZXN0KGEpfHwobS5jc3NIb29rc1thK2JdLnNldD1XYil9KSxtLmZuLmV4dGVuZCh7Y3NzOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFYodGhpcyxmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPXt9LGc9MDtpZihtLmlzQXJyYXkoYikpe2ZvcihkPUliKGEpLGU9Yi5sZW5ndGg7ZT5nO2crKylmW2JbZ11dPW0uY3NzKGEsYltnXSwhMSxkKTtyZXR1cm4gZn1yZXR1cm4gdm9pZCAwIT09Yz9tLnN0eWxlKGEsYixjKTptLmNzcyhhLGIpfSxhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0sc2hvdzpmdW5jdGlvbigpe3JldHVybiBWYih0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBWYih0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGEpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGE/YT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtVKHRoaXMpP20odGhpcykuc2hvdygpOm0odGhpcykuaGlkZSgpfSl9fSk7ZnVuY3Rpb24gWmIoYSxiLGMsZCxlKXtyZXR1cm4gbmV3IFpiLnByb3RvdHlwZS5pbml0KGEsYixjLGQsZSl9bS5Ud2Vlbj1aYixaYi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlpiLGluaXQ6ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3RoaXMuZWxlbT1hLHRoaXMucHJvcD1jLHRoaXMuZWFzaW5nPWV8fCJzd2luZyIsdGhpcy5vcHRpb25zPWIsdGhpcy5zdGFydD10aGlzLm5vdz10aGlzLmN1cigpLHRoaXMuZW5kPWQsdGhpcy51bml0PWZ8fChtLmNzc051bWJlcltjXT8iIjoicHgiKQ0KfSxjdXI6ZnVuY3Rpb24oKXt2YXIgYT1aYi5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gYSYmYS5nZXQ/YS5nZXQodGhpcyk6WmIucHJvcEhvb2tzLl9kZWZhdWx0LmdldCh0aGlzKX0scnVuOmZ1bmN0aW9uKGEpe3ZhciBiLGM9WmIucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIHRoaXMucG9zPWI9dGhpcy5vcHRpb25zLmR1cmF0aW9uP20uZWFzaW5nW3RoaXMuZWFzaW5nXShhLHRoaXMub3B0aW9ucy5kdXJhdGlvbiphLDAsMSx0aGlzLm9wdGlvbnMuZHVyYXRpb24pOmEsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKmIrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksYyYmYy5zZXQ/Yy5zZXQodGhpcyk6WmIucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0sWmIucHJvdG90eXBlLmluaXQucHJvdG90eXBlPVpiLnByb3RvdHlwZSxaYi5wcm9wSG9va3M9e19kZWZhdWx0OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuIG51bGw9PWEuZWxlbVthLnByb3BdfHxhLmVsZW0uc3R5bGUmJm51bGwhPWEuZWxlbS5zdHlsZVthLnByb3BdPyhiPW0uY3NzKGEuZWxlbSxhLnByb3AsIiIpLGImJiJhdXRvIiE9PWI/YjowKTphLmVsZW1bYS5wcm9wXX0sc2V0OmZ1bmN0aW9uKGEpe20uZnguc3RlcFthLnByb3BdP20uZnguc3RlcFthLnByb3BdKGEpOmEuZWxlbS5zdHlsZSYmKG51bGwhPWEuZWxlbS5zdHlsZVttLmNzc1Byb3BzW2EucHJvcF1dfHxtLmNzc0hvb2tzW2EucHJvcF0pP20uc3R5bGUoYS5lbGVtLGEucHJvcCxhLm5vdythLnVuaXQpOmEuZWxlbVthLnByb3BdPWEubm93fX19LFpiLnByb3BIb29rcy5zY3JvbGxUb3A9WmIucHJvcEhvb2tzLnNjcm9sbExlZnQ9e3NldDpmdW5jdGlvbihhKXthLmVsZW0ubm9kZVR5cGUmJmEuZWxlbS5wYXJlbnROb2RlJiYoYS5lbGVtW2EucHJvcF09YS5ub3cpfX0sbS5lYXNpbmc9e2xpbmVhcjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sc3dpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuLjUtTWF0aC5jb3MoYSpNYXRoLlBJKS8yfX0sbS5meD1aYi5wcm90b3R5cGUuaW5pdCxtLmZ4LnN0ZXA9e307dmFyICRiLF9iLGFjPS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxiYz1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrUysiKShbYS16JV0qKSQiLCJpIiksY2M9L3F1ZXVlSG9va3MkLyxkYz1baWNdLGVjPXsiKiI6W2Z1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jcmVhdGVUd2VlbihhLGIpLGQ9Yy5jdXIoKSxlPWJjLmV4ZWMoYiksZj1lJiZlWzNdfHwobS5jc3NOdW1iZXJbYV0/IiI6InB4IiksZz0obS5jc3NOdW1iZXJbYV18fCJweCIhPT1mJiYrZCkmJmJjLmV4ZWMobS5jc3MoYy5lbGVtLGEpKSxoPTEsaT0yMDtpZihnJiZnWzNdIT09Zil7Zj1mfHxnWzNdLGU9ZXx8W10sZz0rZHx8MTtkbyBoPWh8fCIuNSIsZy89aCxtLnN0eWxlKGMuZWxlbSxhLGcrZik7d2hpbGUoaCE9PShoPWMuY3VyKCkvZCkmJjEhPT1oJiYtLWkpfXJldHVybiBlJiYoZz1jLnN0YXJ0PStnfHwrZHx8MCxjLnVuaXQ9ZixjLmVuZD1lWzFdP2crKGVbMV0rMSkqZVsyXTorZVsyXSksY31dfTtmdW5jdGlvbiBmYygpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JGI9dm9pZCAwfSksJGI9bS5ub3coKX1mdW5jdGlvbiBnYyhhLGIpe3ZhciBjLGQ9e2hlaWdodDphfSxlPTA7Zm9yKGI9Yj8xOjA7ND5lO2UrPTItYiljPVRbZV0sZFsibWFyZ2luIitjXT1kWyJwYWRkaW5nIitjXT1hO3JldHVybiBiJiYoZC5vcGFjaXR5PWQud2lkdGg9YSksZH1mdW5jdGlvbiBoYyhhLGIsYyl7Zm9yKHZhciBkLGU9KGVjW2JdfHxbXSkuY29uY2F0KGVjWyIqIl0pLGY9MCxnPWUubGVuZ3RoO2c+ZjtmKyspaWYoZD1lW2ZdLmNhbGwoYyxiLGEpKXJldHVybiBkfWZ1bmN0aW9uIGljKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixsLG49dGhpcyxvPXt9LHA9YS5zdHlsZSxxPWEubm9kZVR5cGUmJlUoYSkscj1tLl9kYXRhKGEsImZ4c2hvdyIpO2MucXVldWV8fChoPW0uX3F1ZXVlSG9va3MoYSwiZngiKSxudWxsPT1oLnVucXVldWVkJiYoaC51bnF1ZXVlZD0wLGk9aC5lbXB0eS5maXJlLGguZW1wdHkuZmlyZT1mdW5jdGlvbigpe2gudW5xdWV1ZWR8fGkoKX0pLGgudW5xdWV1ZWQrKyxuLmFsd2F5cyhmdW5jdGlvbigpe24uYWx3YXlzKGZ1bmN0aW9uKCl7aC51bnF1ZXVlZC0tLG0ucXVldWUoYSwiZngiKS5sZW5ndGh8fGguZW1wdHkuZmlyZSgpfSl9KSksMT09PWEubm9kZVR5cGUmJigiaGVpZ2h0ImluIGJ8fCJ3aWR0aCJpbiBiKSYmKGMub3ZlcmZsb3c9W3Aub3ZlcmZsb3cscC5vdmVyZmxvd1gscC5vdmVyZmxvd1ldLGo9bS5jc3MoYSwiZGlzcGxheSIpLGw9Im5vbmUiPT09aj9tLl9kYXRhKGEsIm9sZGRpc3BsYXkiKXx8RmIoYS5ub2RlTmFtZSk6aiwiaW5saW5lIj09PWwmJiJub25lIj09PW0uY3NzKGEsImZsb2F0IikmJihrLmlubGluZUJsb2NrTmVlZHNMYXlvdXQmJiJpbmxpbmUiIT09RmIoYS5ub2RlTmFtZSk/cC56b29tPTE6cC5kaXNwbGF5PSJpbmxpbmUtYmxvY2siKSksYy5vdmVyZmxvdyYmKHAub3ZlcmZsb3c9ImhpZGRlbiIsay5zaHJpbmtXcmFwQmxvY2tzKCl8fG4uYWx3YXlzKGZ1bmN0aW9uKCl7cC5vdmVyZmxvdz1jLm92ZXJmbG93WzBdLHAub3ZlcmZsb3dYPWMub3ZlcmZsb3dbMV0scC5vdmVyZmxvd1k9Yy5vdmVyZmxvd1syXX0pKTtmb3IoZCBpbiBiKWlmKGU9YltkXSxhYy5leGVjKGUpKXtpZihkZWxldGUgYltkXSxmPWZ8fCJ0b2dnbGUiPT09ZSxlPT09KHE/ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PWV8fCFyfHx2b2lkIDA9PT1yW2RdKWNvbnRpbnVlO3E9ITB9b1tkXT1yJiZyW2RdfHxtLnN0eWxlKGEsZCl9ZWxzZSBqPXZvaWQgMDtpZihtLmlzRW1wdHlPYmplY3QobykpImlubGluZSI9PT0oIm5vbmUiPT09aj9GYihhLm5vZGVOYW1lKTpqKSYmKHAuZGlzcGxheT1qKTtlbHNle3I/ImhpZGRlbiJpbiByJiYocT1yLmhpZGRlbik6cj1tLl9kYXRhKGEsImZ4c2hvdyIse30pLGYmJihyLmhpZGRlbj0hcSkscT9tKGEpLnNob3coKTpuLmRvbmUoZnVuY3Rpb24oKXttKGEpLmhpZGUoKX0pLG4uZG9uZShmdW5jdGlvbigpe3ZhciBiO20uX3JlbW92ZURhdGEoYSwiZnhzaG93Iik7Zm9yKGIgaW4gbyltLnN0eWxlKGEsYixvW2JdKX0pO2ZvcihkIGluIG8pZz1oYyhxP3JbZF06MCxkLG4pLGQgaW4gcnx8KHJbZF09Zy5zdGFydCxxJiYoZy5lbmQ9Zy5zdGFydCxnLnN0YXJ0PSJ3aWR0aCI9PT1kfHwiaGVpZ2h0Ij09PWQ/MTowKSl9fWZ1bmN0aW9uIGpjKGEsYil7dmFyIGMsZCxlLGYsZztmb3IoYyBpbiBhKWlmKGQ9bS5jYW1lbENhc2UoYyksZT1iW2RdLGY9YVtjXSxtLmlzQXJyYXkoZikmJihlPWZbMV0sZj1hW2NdPWZbMF0pLGMhPT1kJiYoYVtkXT1mLGRlbGV0ZSBhW2NdKSxnPW0uY3NzSG9va3NbZF0sZyYmImV4cGFuZCJpbiBnKXtmPWcuZXhwYW5kKGYpLGRlbGV0ZSBhW2RdO2ZvcihjIGluIGYpYyBpbiBhfHwoYVtjXT1mW2NdLGJbY109ZSl9ZWxzZSBiW2RdPWV9ZnVuY3Rpb24ga2MoYSxiLGMpe3ZhciBkLGUsZj0wLGc9ZGMubGVuZ3RoLGg9bS5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSBpLmVsZW19KSxpPWZ1bmN0aW9uKCl7aWYoZSlyZXR1cm4hMTtmb3IodmFyIGI9JGJ8fGZjKCksYz1NYXRoLm1heCgwLGouc3RhcnRUaW1lK2ouZHVyYXRpb24tYiksZD1jL2ouZHVyYXRpb258fDAsZj0xLWQsZz0wLGk9ai50d2VlbnMubGVuZ3RoO2k+ZztnKyspai50d2VlbnNbZ10ucnVuKGYpO3JldHVybiBoLm5vdGlmeVdpdGgoYSxbaixmLGNdKSwxPmYmJmk/YzooaC5yZXNvbHZlV2l0aChhLFtqXSksITEpfSxqPWgucHJvbWlzZSh7ZWxlbTphLHByb3BzOm0uZXh0ZW5kKHt9LGIpLG9wdHM6bS5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e319LGMpLG9yaWdpbmFsUHJvcGVydGllczpiLG9yaWdpbmFsT3B0aW9uczpjLHN0YXJ0VGltZTokYnx8ZmMoKSxkdXJhdGlvbjpjLmR1cmF0aW9uLHR3ZWVuczpbXSxjcmVhdGVUd2VlbjpmdW5jdGlvbihiLGMpe3ZhciBkPW0uVHdlZW4oYSxqLm9wdHMsYixjLGoub3B0cy5zcGVjaWFsRWFzaW5nW2JdfHxqLm9wdHMuZWFzaW5nKTtyZXR1cm4gai50d2VlbnMucHVzaChkKSxkfSxzdG9wOmZ1bmN0aW9uKGIpe3ZhciBjPTAsZD1iP2oudHdlZW5zLmxlbmd0aDowO2lmKGUpcmV0dXJuIHRoaXM7Zm9yKGU9ITA7ZD5jO2MrKylqLnR3ZWVuc1tjXS5ydW4oMSk7cmV0dXJuIGI/aC5yZXNvbHZlV2l0aChhLFtqLGJdKTpoLnJlamVjdFdpdGgoYSxbaixiXSksdGhpc319KSxrPWoucHJvcHM7Zm9yKGpjKGssai5vcHRzLnNwZWNpYWxFYXNpbmcpO2c+ZjtmKyspaWYoZD1kY1tmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIGQ7cmV0dXJuIG0ubWFwKGssaGMsaiksbS5pc0Z1bmN0aW9uKGoub3B0cy5zdGFydCkmJmoub3B0cy5zdGFydC5jYWxsKGEsaiksbS5meC50aW1lcihtLmV4dGVuZChpLHtlbGVtOmEsYW5pbTpqLHF1ZXVlOmoub3B0cy5xdWV1ZX0pKSxqLnByb2dyZXNzKGoub3B0cy5wcm9ncmVzcykuZG9uZShqLm9wdHMuZG9uZSxqLm9wdHMuY29tcGxldGUpLmZhaWwoai5vcHRzLmZhaWwpLmFsd2F5cyhqLm9wdHMuYWx3YXlzKX1tLkFuaW1hdGlvbj1tLmV4dGVuZChrYyx7dHdlZW5lcjpmdW5jdGlvbihhLGIpe20uaXNGdW5jdGlvbihhKT8oYj1hLGE9WyIqIl0pOmE9YS5zcGxpdCgiICIpO2Zvcih2YXIgYyxkPTAsZT1hLmxlbmd0aDtlPmQ7ZCsrKWM9YVtkXSxlY1tjXT1lY1tjXXx8W10sZWNbY10udW5zaGlmdChiKX0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj9kYy51bnNoaWZ0KGEpOmRjLnB1c2goYSl9fSksbS5zcGVlZD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSYmIm9iamVjdCI9PXR5cGVvZiBhP20uZXh0ZW5kKHt9LGEpOntjb21wbGV0ZTpjfHwhYyYmYnx8bS5pc0Z1bmN0aW9uKGEpJiZhLGR1cmF0aW9uOmEsZWFzaW5nOmMmJmJ8fGImJiFtLmlzRnVuY3Rpb24oYikmJmJ9O3JldHVybiBkLmR1cmF0aW9uPW0uZngub2ZmPzA6Im51bWJlciI9PXR5cGVvZiBkLmR1cmF0aW9uP2QuZHVyYXRpb246ZC5kdXJhdGlvbiBpbiBtLmZ4LnNwZWVkcz9tLmZ4LnNwZWVkc1tkLmR1cmF0aW9uXTptLmZ4LnNwZWVkcy5fZGVmYXVsdCwobnVsbD09ZC5xdWV1ZXx8ZC5xdWV1ZT09PSEwKSYmKGQucXVldWU9ImZ4IiksZC5vbGQ9ZC5jb21wbGV0ZSxkLmNvbXBsZXRlPWZ1bmN0aW9uKCl7bS5pc0Z1bmN0aW9uKGQub2xkKSYmZC5vbGQuY2FsbCh0aGlzKSxkLnF1ZXVlJiZtLmRlcXVldWUodGhpcyxkLnF1ZXVlKX0sZH0sbS5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5maWx0ZXIoVSkuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTpifSxhLGMsZCl9LGFuaW1hdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bS5pc0VtcHR5T2JqZWN0KGEpLGY9bS5zcGVlZChiLGMsZCksZz1mdW5jdGlvbigpe3ZhciBiPWtjKHRoaXMsbS5leHRlbmQoe30sYSksZik7KGV8fG0uX2RhdGEodGhpcywiZmluaXNoIikpJiZiLnN0b3AoITApfTtyZXR1cm4gZy5maW5pc2g9ZyxlfHxmLnF1ZXVlPT09ITE/dGhpcy5lYWNoKGcpOnRoaXMucXVldWUoZi5xdWV1ZSxnKX0sc3RvcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zdG9wO2RlbGV0ZSBhLnN0b3AsYihjKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYz1iLGI9YSxhPXZvaWQgMCksYiYmYSE9PSExJiZ0aGlzLnF1ZXVlKGF8fCJmeCIsW10pLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPSEwLGU9bnVsbCE9YSYmYSsicXVldWVIb29rcyIsZj1tLnRpbWVycyxnPW0uX2RhdGEodGhpcyk7aWYoZSlnW2VdJiZnW2VdLnN0b3AmJmQoZ1tlXSk7ZWxzZSBmb3IoZSBpbiBnKWdbZV0mJmdbZV0uc3RvcCYmY2MudGVzdChlKSYmZChnW2VdKTtmb3IoZT1mLmxlbmd0aDtlLS07KWZbZV0uZWxlbSE9PXRoaXN8fG51bGwhPWEmJmZbZV0ucXVldWUhPT1hfHwoZltlXS5hbmltLnN0b3AoYyksYj0hMSxmLnNwbGljZShlLDEpKTsoYnx8IWMpJiZtLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT0hMSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIsYz1tLl9kYXRhKHRoaXMpLGQ9Y1thKyJxdWV1ZSJdLGU9Y1thKyJxdWV1ZUhvb2tzIl0sZj1tLnRpbWVycyxnPWQ/ZC5sZW5ndGg6MDtmb3IoYy5maW5pc2g9ITAsbS5xdWV1ZSh0aGlzLGEsW10pLGUmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCksYj1mLmxlbmd0aDtiLS07KWZbYl0uZWxlbT09PXRoaXMmJmZbYl0ucXVldWU9PT1hJiYoZltiXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGIsMSkpO2ZvcihiPTA7Zz5iO2IrKylkW2JdJiZkW2JdLmZpbmlzaCYmZFtiXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgYy5maW5pc2h9KX19KSxtLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGEsYil7dmFyIGM9bS5mbltiXTttLmZuW2JdPWZ1bmN0aW9uKGEsZCxlKXtyZXR1cm4gbnVsbD09YXx8ImJvb2xlYW4iPT10eXBlb2YgYT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUoZ2MoYiwhMCksYSxkLGUpfX0pLG0uZWFjaCh7c2xpZGVEb3duOmdjKCJzaG93Iiksc2xpZGVVcDpnYygiaGlkZSIpLHNsaWRlVG9nZ2xlOmdjKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7bS5mblthXT1mdW5jdGlvbihhLGMsZCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGEsYyxkKX19KSxtLnRpbWVycz1bXSxtLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPW0udGltZXJzLGM9MDtmb3IoJGI9bS5ub3coKTtjPGIubGVuZ3RoO2MrKylhPWJbY10sYSgpfHxiW2NdIT09YXx8Yi5zcGxpY2UoYy0tLDEpO2IubGVuZ3RofHxtLmZ4LnN0b3AoKSwkYj12b2lkIDB9LG0uZngudGltZXI9ZnVuY3Rpb24oYSl7bS50aW1lcnMucHVzaChhKSxhKCk/bS5meC5zdGFydCgpOm0udGltZXJzLnBvcCgpfSxtLmZ4LmludGVydmFsPTEzLG0uZnguc3RhcnQ9ZnVuY3Rpb24oKXtfYnx8KF9iPXNldEludGVydmFsKG0uZngudGljayxtLmZ4LmludGVydmFsKSl9LG0uZnguc3RvcD1mdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoX2IpLF9iPW51bGx9LG0uZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LG0uZm4uZGVsYXk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1tLmZ4P20uZnguc3BlZWRzW2FdfHxhOmEsYj1ifHwiZngiLHRoaXMucXVldWUoYixmdW5jdGlvbihiLGMpe3ZhciBkPXNldFRpbWVvdXQoYixhKTtjLnN0b3A9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZCl9fSl9LGZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZTtiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksYi5zZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIsInQiKSxiLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixkPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxjPXkuY3JlYXRlRWxlbWVudCgic2VsZWN0IiksZT1jLmFwcGVuZENoaWxkKHkuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLGE9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXSxkLnN0eWxlLmNzc1RleHQ9InRvcDoxcHgiLGsuZ2V0U2V0QXR0cmlidXRlPSJ0IiE9PWIuY2xhc3NOYW1lLGsuc3R5bGU9L3RvcC8udGVzdChkLmdldEF0dHJpYnV0ZSgic3R5bGUiKSksay5ocmVmTm9ybWFsaXplZD0iL2EiPT09ZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSxrLmNoZWNrT249ISFhLnZhbHVlLGsub3B0U2VsZWN0ZWQ9ZS5zZWxlY3RlZCxrLmVuY3R5cGU9ISF5LmNyZWF0ZUVsZW1lbnQoImZvcm0iKS5lbmN0eXBlLGMuZGlzYWJsZWQ9ITAsay5vcHREaXNhYmxlZD0hZS5kaXNhYmxlZCxhPXkuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxhLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSxrLmlucHV0PSIiPT09YS5nZXRBdHRyaWJ1dGUoInZhbHVlIiksYS52YWx1ZT0idCIsYS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGsucmFkaW9WYWx1ZT0idCI9PT1hLnZhbHVlfSgpO3ZhciBsYz0vXHIvZzttLmZuLmV4dGVuZCh7dmFsOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlPXRoaXNbMF07e2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGQ9bS5pc0Z1bmN0aW9uKGEpLHRoaXMuZWFjaChmdW5jdGlvbihjKXt2YXIgZTsxPT09dGhpcy5ub2RlVHlwZSYmKGU9ZD9hLmNhbGwodGhpcyxjLG0odGhpcykudmFsKCkpOmEsbnVsbD09ZT9lPSIiOiJudW1iZXIiPT10eXBlb2YgZT9lKz0iIjptLmlzQXJyYXkoZSkmJihlPW0ubWFwKGUsZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/IiI6YSsiIn0pKSxiPW0udmFsSG9va3NbdGhpcy50eXBlXXx8bS52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJzZXQiaW4gYiYmdm9pZCAwIT09Yi5zZXQodGhpcyxlLCJ2YWx1ZSIpfHwodGhpcy52YWx1ZT1lKSl9KTtpZihlKXJldHVybiBiPW0udmFsSG9va3NbZS50eXBlXXx8bS52YWxIb29rc1tlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJnZXQiaW4gYiYmdm9pZCAwIT09KGM9Yi5nZXQoZSwidmFsdWUiKSk/YzooYz1lLnZhbHVlLCJzdHJpbmciPT10eXBlb2YgYz9jLnJlcGxhY2UobGMsIiIpOm51bGw9PWM/IiI6Yyl9fX0pLG0uZXh0ZW5kKHt2YWxIb29rczp7b3B0aW9uOntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9bS5maW5kLmF0dHIoYSwidmFsdWUiKTtyZXR1cm4gbnVsbCE9Yj9iOm0udHJpbShtLnRleHQoYSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGMsZD1hLm9wdGlvbnMsZT1hLnNlbGVjdGVkSW5kZXgsZj0ic2VsZWN0LW9uZSI9PT1hLnR5cGV8fDA+ZSxnPWY/bnVsbDpbXSxoPWY/ZSsxOmQubGVuZ3RoLGk9MD5lP2g6Zj9lOjA7aD5pO2krKylpZihjPWRbaV0sISghYy5zZWxlY3RlZCYmaSE9PWV8fChrLm9wdERpc2FibGVkP2MuZGlzYWJsZWQ6bnVsbCE9PWMuZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpKXx8Yy5wYXJlbnROb2RlLmRpc2FibGVkJiZtLm5vZGVOYW1lKGMucGFyZW50Tm9kZSwib3B0Z3JvdXAiKSkpe2lmKGI9bShjKS52YWwoKSxmKXJldHVybiBiO2cucHVzaChiKX1yZXR1cm4gZ30sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPWEub3B0aW9ucyxmPW0ubWFrZUFycmF5KGIpLGc9ZS5sZW5ndGg7d2hpbGUoZy0tKWlmKGQ9ZVtnXSxtLmluQXJyYXkobS52YWxIb29rcy5vcHRpb24uZ2V0KGQpLGYpPj0wKXRyeXtkLnNlbGVjdGVkPWM9ITB9Y2F0Y2goaCl7ZC5zY3JvbGxIZWlnaHR9ZWxzZSBkLnNlbGVjdGVkPSExO3JldHVybiBjfHwoYS5zZWxlY3RlZEluZGV4PS0xKSxlfX19fSksbS5lYWNoKFsicmFkaW8iLCJjaGVja2JveCJdLGZ1bmN0aW9uKCl7bS52YWxIb29rc1t0aGlzXT17c2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uaXNBcnJheShiKT9hLmNoZWNrZWQ9bS5pbkFycmF5KG0oYSkudmFsKCksYik+PTA6dm9pZCAwfX0say5jaGVja09ufHwobS52YWxIb29rc1t0aGlzXS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PT1hLmdldEF0dHJpYnV0ZSgidmFsdWUiKT8ib24iOmEudmFsdWV9KX0pO3ZhciBtYyxuYyxvYz1tLmV4cHIuYXR0ckhhbmRsZSxwYz0vXig/OmNoZWNrZWR8c2VsZWN0ZWQpJC9pLHFjPWsuZ2V0U2V0QXR0cmlidXRlLHJjPWsuaW5wdXQ7bS5mbi5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVih0aGlzLG0uYXR0cixhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bS5yZW1vdmVBdHRyKHRoaXMsYSl9KX19KSxtLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPWEubm9kZVR5cGU7aWYoYSYmMyE9PWYmJjghPT1mJiYyIT09ZilyZXR1cm4gdHlwZW9mIGEuZ2V0QXR0cmlidXRlPT09Sz9tLnByb3AoYSxiLGMpOigxPT09ZiYmbS5pc1hNTERvYyhhKXx8KGI9Yi50b0xvd2VyQ2FzZSgpLGQ9bS5hdHRySG9va3NbYl18fChtLmV4cHIubWF0Y2guYm9vbC50ZXN0KGIpP25jOm1jKSksdm9pZCAwPT09Yz9kJiYiZ2V0ImluIGQmJm51bGwhPT0oZT1kLmdldChhLGIpKT9lOihlPW0uZmluZC5hdHRyKGEsYiksbnVsbD09ZT92b2lkIDA6ZSk6bnVsbCE9PWM/ZCYmInNldCJpbiBkJiZ2b2lkIDAhPT0oZT1kLnNldChhLGMsYikpP2U6KGEuc2V0QXR0cmlidXRlKGIsYysiIiksYyk6dm9pZCBtLnJlbW92ZUF0dHIoYSxiKSl9LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9MCxmPWImJmIubWF0Y2goRSk7aWYoZiYmMT09PWEubm9kZVR5cGUpd2hpbGUoYz1mW2UrK10pZD1tLnByb3BGaXhbY118fGMsbS5leHByLm1hdGNoLmJvb2wudGVzdChjKT9yYyYmcWN8fCFwYy50ZXN0KGMpP2FbZF09ITE6YVttLmNhbWVsQ2FzZSgiZGVmYXVsdC0iK2MpXT1hW2RdPSExOm0uYXR0cihhLGMsIiIpLGEucmVtb3ZlQXR0cmlidXRlKHFjP2M6ZCl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGEsYil7aWYoIWsucmFkaW9WYWx1ZSYmInJhZGlvIj09PWImJm0ubm9kZU5hbWUoYSwiaW5wdXQiKSl7dmFyIGM9YS52YWx1ZTtyZXR1cm4gYS5zZXRBdHRyaWJ1dGUoInR5cGUiLGIpLGMmJihhLnZhbHVlPWMpLGJ9fX19fSksbmM9e3NldDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGI9PT0hMT9tLnJlbW92ZUF0dHIoYSxjKTpyYyYmcWN8fCFwYy50ZXN0KGMpP2Euc2V0QXR0cmlidXRlKCFxYyYmbS5wcm9wRml4W2NdfHxjLGMpOmFbbS5jYW1lbENhc2UoImRlZmF1bHQtIitjKV09YVtjXT0hMCxjfX0sbS5lYWNoKG0uZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXHcrL2cpLGZ1bmN0aW9uKGEsYil7dmFyIGM9b2NbYl18fG0uZmluZC5hdHRyO29jW2JdPXJjJiZxY3x8IXBjLnRlc3QoYik/ZnVuY3Rpb24oYSxiLGQpe3ZhciBlLGY7cmV0dXJuIGR8fChmPW9jW2JdLG9jW2JdPWUsZT1udWxsIT1jKGEsYixkKT9iLnRvTG93ZXJDYXNlKCk6bnVsbCxvY1tiXT1mKSxlfTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/dm9pZCAwOmFbbS5jYW1lbENhc2UoImRlZmF1bHQtIitiKV0/Yi50b0xvd2VyQ2FzZSgpOm51bGx9fSkscmMmJnFjfHwobS5hdHRySG9va3MudmFsdWU9e3NldDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0ubm9kZU5hbWUoYSwiaW5wdXQiKT92b2lkKGEuZGVmYXVsdFZhbHVlPWIpOm1jJiZtYy5zZXQoYSxiLGMpfX0pLHFjfHwobWM9e3NldDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5nZXRBdHRyaWJ1dGVOb2RlKGMpO3JldHVybiBkfHxhLnNldEF0dHJpYnV0ZU5vZGUoZD1hLm93bmVyRG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKGMpKSxkLnZhbHVlPWIrPSIiLCJ2YWx1ZSI9PT1jfHxiPT09YS5nZXRBdHRyaWJ1dGUoYyk/Yjp2b2lkIDB9fSxvYy5pZD1vYy5uYW1lPW9jLmNvb3Jkcz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGM/dm9pZCAwOihkPWEuZ2V0QXR0cmlidXRlTm9kZShiKSkmJiIiIT09ZC52YWx1ZT9kLnZhbHVlOm51bGx9LG0udmFsSG9va3MuYnV0dG9uPXtnZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmdldEF0dHJpYnV0ZU5vZGUoYik7cmV0dXJuIGMmJmMuc3BlY2lmaWVkP2MudmFsdWU6dm9pZCAwfSxzZXQ6bWMuc2V0fSxtLmF0dHJIb29rcy5jb250ZW50ZWRpdGFibGU9e3NldDpmdW5jdGlvbihhLGIsYyl7bWMuc2V0KGEsIiI9PT1iPyExOmIsYyl9fSxtLmVhY2goWyJ3aWR0aCIsImhlaWdodCJdLGZ1bmN0aW9uKGEsYil7bS5hdHRySG9va3NbYl09e3NldDpmdW5jdGlvbihhLGMpe3JldHVybiIiPT09Yz8oYS5zZXRBdHRyaWJ1dGUoYiwiYXV0byIpLGMpOnZvaWQgMH19fSkpLGsuc3R5bGV8fChtLmF0dHJIb29rcy5zdHlsZT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLnN0eWxlLmNzc1RleHR8fHZvaWQgMH0sc2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuc3R5bGUuY3NzVGV4dD1iKyIifX0pO3ZhciBzYz0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b258b2JqZWN0KSQvaSx0Yz0vXig/OmF8YXJlYSkkL2k7bS5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVih0aGlzLG0ucHJvcCxhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihhKXtyZXR1cm4gYT1tLnByb3BGaXhbYV18fGEsdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3RoaXNbYV09dm9pZCAwLGRlbGV0ZSB0aGlzW2FdfWNhdGNoKGIpe319KX19KSxtLmV4dGVuZCh7cHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9LHByb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnPWEubm9kZVR5cGU7aWYoYSYmMyE9PWcmJjghPT1nJiYyIT09ZylyZXR1cm4gZj0xIT09Z3x8IW0uaXNYTUxEb2MoYSksZiYmKGI9bS5wcm9wRml4W2JdfHxiLGU9bS5wcm9wSG9va3NbYl0pLHZvaWQgMCE9PWM/ZSYmInNldCJpbiBlJiZ2b2lkIDAhPT0oZD1lLnNldChhLGMsYikpP2Q6YVtiXT1jOmUmJiJnZXQiaW4gZSYmbnVsbCE9PShkPWUuZ2V0KGEsYikpP2Q6YVtiXX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPW0uZmluZC5hdHRyKGEsInRhYmluZGV4Iik7cmV0dXJuIGI/cGFyc2VJbnQoYiwxMCk6c2MudGVzdChhLm5vZGVOYW1lKXx8dGMudGVzdChhLm5vZGVOYW1lKSYmYS5ocmVmPzA6LTF9fX19KSxrLmhyZWZOb3JtYWxpemVkfHxtLmVhY2goWyJocmVmIiwic3JjIl0sZnVuY3Rpb24oYSxiKXttLnByb3BIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZShiLDQpfX19KSxrLm9wdFNlbGVjdGVkfHwobS5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJihiLnNlbGVjdGVkSW5kZXgsYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCksbnVsbH19KSxtLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe20ucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxrLmVuY3R5cGV8fChtLnByb3BGaXguZW5jdHlwZT0iZW5jb2RpbmciKTt2YXIgdWM9L1tcdFxyXG5cZl0vZzttLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGg9MCxpPXRoaXMubGVuZ3RoLGo9InN0cmluZyI9PXR5cGVvZiBhJiZhO2lmKG0uaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe20odGhpcykuYWRkQ2xhc3MoYS5jYWxsKHRoaXMsYix0aGlzLmNsYXNzTmFtZSkpfSk7aWYoailmb3IoYj0oYXx8IiIpLm1hdGNoKEUpfHxbXTtpPmg7aCsrKWlmKGM9dGhpc1toXSxkPTE9PT1jLm5vZGVUeXBlJiYoYy5jbGFzc05hbWU/KCIgIitjLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UodWMsIiAiKToiICIpKXtmPTA7d2hpbGUoZT1iW2YrK10pZC5pbmRleE9mKCIgIitlKyIgIik8MCYmKGQrPWUrIiAiKTtnPW0udHJpbShkKSxjLmNsYXNzTmFtZSE9PWcmJihjLmNsYXNzTmFtZT1nKX1yZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGg9MCxpPXRoaXMubGVuZ3RoLGo9MD09PWFyZ3VtZW50cy5sZW5ndGh8fCJzdHJpbmciPT10eXBlb2YgYSYmYTtpZihtLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXttKHRoaXMpLnJlbW92ZUNsYXNzKGEuY2FsbCh0aGlzLGIsdGhpcy5jbGFzc05hbWUpKX0pO2lmKGopZm9yKGI9KGF8fCIiKS5tYXRjaChFKXx8W107aT5oO2grKylpZihjPXRoaXNbaF0sZD0xPT09Yy5ub2RlVHlwZSYmKGMuY2xhc3NOYW1lPygiICIrYy5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKHVjLCIgIik6IiIpKXtmPTA7d2hpbGUoZT1iW2YrK10pd2hpbGUoZC5pbmRleE9mKCIgIitlKyIgIik+PTApZD1kLnJlcGxhY2UoIiAiK2UrIiAiLCIgIik7Zz1hP20udHJpbShkKToiIixjLmNsYXNzTmFtZSE9PWcmJihjLmNsYXNzTmFtZT1nKX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYTtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBiJiYic3RyaW5nIj09PWM/Yj90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6dGhpcy5lYWNoKG0uaXNGdW5jdGlvbihhKT9mdW5jdGlvbihjKXttKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGMsdGhpcy5jbGFzc05hbWUsYiksYil9OmZ1bmN0aW9uKCl7aWYoInN0cmluZyI9PT1jKXt2YXIgYixkPTAsZT1tKHRoaXMpLGY9YS5tYXRjaChFKXx8W107d2hpbGUoYj1mW2QrK10pZS5oYXNDbGFzcyhiKT9lLnJlbW92ZUNsYXNzKGIpOmUuYWRkQ2xhc3MoYil9ZWxzZShjPT09S3x8ImJvb2xlYW4iPT09YykmJih0aGlzLmNsYXNzTmFtZSYmbS5fZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIix0aGlzLmNsYXNzTmFtZSksdGhpcy5jbGFzc05hbWU9dGhpcy5jbGFzc05hbWV8fGE9PT0hMT8iIjptLl9kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iKXx8IiIpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0iICIrYSsiICIsYz0wLGQ9dGhpcy5sZW5ndGg7ZD5jO2MrKylpZigxPT09dGhpc1tjXS5ub2RlVHlwZSYmKCIgIit0aGlzW2NdLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UodWMsIiAiKS5pbmRleE9mKGIpPj0wKXJldHVybiEwO3JldHVybiExfX0pLG0uZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IGxvYWQgcmVzaXplIHNjcm9sbCB1bmxvYWQgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBlcnJvciBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe20uZm5bYl09ZnVuY3Rpb24oYSxjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24oYixudWxsLGEsYyk6dGhpcy50cmlnZ2VyKGIpfX0pLG0uZm4uZXh0ZW5kKHtob3ZlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoYSkubW91c2VsZWF2ZShifHxhKX0sYmluZDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMub24oYSxudWxsLGIsYyl9LHVuYmluZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm9mZihhLG51bGwsYil9LGRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uKGIsYSxjLGQpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoYSwiKioiKTp0aGlzLm9mZihiLGF8fCIqKiIsYyl9fSk7dmFyIHZjPW0ubm93KCksd2M9L1w/Lyx4Yz0vKCwpfChcW3x7KXwofXxdKXwiKD86W14iXFxcclxuXXxcXFsiXFxcL2JmbnJ0XXxcXHVbXGRhLWZBLUZdezR9KSoiXHMqOj98dHJ1ZXxmYWxzZXxudWxsfC0/KD8hMFxkKVxkKyg/OlwuXGQrfCkoPzpbZUVdWystXT9cZCt8KS9nO20ucGFyc2VKU09OPWZ1bmN0aW9uKGIpe2lmKGEuSlNPTiYmYS5KU09OLnBhcnNlKXJldHVybiBhLkpTT04ucGFyc2UoYisiIik7dmFyIGMsZD1udWxsLGU9bS50cmltKGIrIiIpO3JldHVybiBlJiYhbS50cmltKGUucmVwbGFjZSh4YyxmdW5jdGlvbihhLGIsZSxmKXtyZXR1cm4gYyYmYiYmKGQ9MCksMD09PWQ/YTooYz1lfHxiLGQrPSFmLSFlLCIiKX0pKT9GdW5jdGlvbigicmV0dXJuICIrZSkoKTptLmVycm9yKCJJbnZhbGlkIEpTT046ICIrYil9LG0ucGFyc2VYTUw9ZnVuY3Rpb24oYil7dmFyIGMsZDtpZighYnx8InN0cmluZyIhPXR5cGVvZiBiKXJldHVybiBudWxsO3RyeXthLkRPTVBhcnNlcj8oZD1uZXcgRE9NUGFyc2VyLGM9ZC5wYXJzZUZyb21TdHJpbmcoYiwidGV4dC94bWwiKSk6KGM9bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSxjLmFzeW5jPSJmYWxzZSIsYy5sb2FkWE1MKGIpKX1jYXRjaChlKXtjPXZvaWQgMH1yZXR1cm4gYyYmYy5kb2N1bWVudEVsZW1lbnQmJiFjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpLmxlbmd0aHx8bS5lcnJvcigiSW52YWxpZCBYTUw6ICIrYiksY307dmFyIHljLHpjLEFjPS8jLiokLyxCYz0vKFs/Jl0pXz1bXiZdKi8sQ2M9L14oLio/KTpbIFx0XSooW15cclxuXSopXHI/JC9nbSxEYz0vXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxFYz0vXig/OkdFVHxIRUFEKSQvLEZjPS9eXC9cLy8sR2M9L14oW1x3ListXSs6KSg/OlwvXC8oPzpbXlwvPyNdKkB8KShbXlwvPyM6XSopKD86OihcZCspfCl8KS8sSGM9e30sSWM9e30sSmM9IiovIi5jb25jYXQoIioiKTt0cnl7emM9bG9jYXRpb24uaHJlZn1jYXRjaChLYyl7emM9eS5jcmVhdGVFbGVtZW50KCJhIiksemMuaHJlZj0iIix6Yz16Yy5ocmVmfXljPUdjLmV4ZWMoemMudG9Mb3dlckNhc2UoKSl8fFtdO2Z1bmN0aW9uIExjKGEpe3JldHVybiBmdW5jdGlvbihiLGMpeyJzdHJpbmciIT10eXBlb2YgYiYmKGM9YixiPSIqIik7dmFyIGQsZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKEUpfHxbXTtpZihtLmlzRnVuY3Rpb24oYykpd2hpbGUoZD1mW2UrK10pIisiPT09ZC5jaGFyQXQoMCk/KGQ9ZC5zbGljZSgxKXx8IioiLChhW2RdPWFbZF18fFtdKS51bnNoaWZ0KGMpKTooYVtkXT1hW2RdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gTWMoYSxiLGMsZCl7dmFyIGU9e30sZj1hPT09SWM7ZnVuY3Rpb24gZyhoKXt2YXIgaTtyZXR1cm4gZVtoXT0hMCxtLmVhY2goYVtoXXx8W10sZnVuY3Rpb24oYSxoKXt2YXIgaj1oKGIsYyxkKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGp8fGZ8fGVbal0/Zj8hKGk9aik6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KGopLGcoaiksITEpfSksaX1yZXR1cm4gZyhiLmRhdGFUeXBlc1swXSl8fCFlWyIqIl0mJmcoIioiKX1mdW5jdGlvbiBOYyhhLGIpe3ZhciBjLGQsZT1tLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGQgaW4gYil2b2lkIDAhPT1iW2RdJiYoKGVbZF0/YTpjfHwoYz17fSkpW2RdPWJbZF0pO3JldHVybiBjJiZtLmV4dGVuZCghMCxhLGMpLGF9ZnVuY3Rpb24gT2MoYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5jb250ZW50cyxpPWEuZGF0YVR5cGVzO3doaWxlKCIqIj09PWlbMF0paS5zaGlmdCgpLHZvaWQgMD09PWUmJihlPWEubWltZVR5cGV8fGIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihlKWZvcihnIGluIGgpaWYoaFtnXSYmaFtnXS50ZXN0KGUpKXtpLnVuc2hpZnQoZyk7YnJlYWt9aWYoaVswXWluIGMpZj1pWzBdO2Vsc2V7Zm9yKGcgaW4gYyl7aWYoIWlbMF18fGEuY29udmVydGVyc1tnKyIgIitpWzBdXSl7Zj1nO2JyZWFrfWR8fChkPWcpfWY9Znx8ZH1yZXR1cm4gZj8oZiE9PWlbMF0mJmkudW5zaGlmdChmKSxjW2ZdKTp2b2lkIDB9ZnVuY3Rpb24gUGMoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqPXt9LGs9YS5kYXRhVHlwZXMuc2xpY2UoKTtpZihrWzFdKWZvcihnIGluIGEuY29udmVydGVycylqW2cudG9Mb3dlckNhc2UoKV09YS5jb252ZXJ0ZXJzW2ddO2Y9ay5zaGlmdCgpO3doaWxlKGYpaWYoYS5yZXNwb25zZUZpZWxkc1tmXSYmKGNbYS5yZXNwb25zZUZpZWxkc1tmXV09YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRhRmlsdGVyKGIsYS5kYXRhVHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZigiKiI9PT1mKWY9aTtlbHNlIGlmKCIqIiE9PWkmJmkhPT1mKXtpZihnPWpbaSsiICIrZl18fGpbIiogIitmXSwhZylmb3IoZSBpbiBqKWlmKGg9ZS5zcGxpdCgiICIpLGhbMV09PT1mJiYoZz1qW2krIiAiK2hbMF1dfHxqWyIqICIraFswXV0pKXtnPT09ITA/Zz1qW2VdOmpbZV0hPT0hMCYmKGY9aFswXSxrLnVuc2hpZnQoaFsxXSkpO2JyZWFrfWlmKGchPT0hMClpZihnJiZhWyJ0aHJvd3MiXSliPWcoYik7ZWxzZSB0cnl7Yj1nKGIpfWNhdGNoKGwpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmc/bDoiTm8gY29udmVyc2lvbiBmcm9tICIraSsiIHRvICIrZn19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpifX1tLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6emMsdHlwZToiR0VUIixpc0xvY2FsOkRjLnRlc3QoeWNbMV0pLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6SmMsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L3htbC8saHRtbDovaHRtbC8sanNvbjovanNvbi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjptLnBhcnNlSlNPTiwidGV4dCB4bWwiOm0ucGFyc2VYTUx9LGZsYXRPcHRpb25zOnt1cmw6ITAsY29udGV4dDohMH19LGFqYXhTZXR1cDpmdW5jdGlvbihhLGIpe3JldHVybiBiP05jKE5jKGEsbS5hamF4U2V0dGluZ3MpLGIpOk5jKG0uYWpheFNldHRpbmdzLGEpfSxhamF4UHJlZmlsdGVyOkxjKEhjKSxhamF4VHJhbnNwb3J0OkxjKEljKSxhamF4OmZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKSxiPWJ8fHt9O3ZhciBjLGQsZSxmLGcsaCxpLGosaz1tLmFqYXhTZXR1cCh7fSxiKSxsPWsuY29udGV4dHx8ayxuPWsuY29udGV4dCYmKGwubm9kZVR5cGV8fGwuanF1ZXJ5KT9tKGwpOm0uZXZlbnQsbz1tLkRlZmVycmVkKCkscD1tLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxxPWsuc3RhdHVzQ29kZXx8e30scj17fSxzPXt9LHQ9MCx1PSJjYW5jZWxlZCIsdj17cmVhZHlTdGF0ZTowLGdldFJlc3BvbnNlSGVhZGVyOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKDI9PT10KXtpZighail7aj17fTt3aGlsZShiPUNjLmV4ZWMoZikpaltiWzFdLnRvTG93ZXJDYXNlKCldPWJbMl19Yj1qW2EudG9Mb3dlckNhc2UoKV19cmV0dXJuIG51bGw9PWI/bnVsbDpifSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXQ/ZjpudWxsfSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9YS50b0xvd2VyQ2FzZSgpO3JldHVybiB0fHwoYT1zW2NdPXNbY118fGEsclthXT1iKSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKGEpe3JldHVybiB0fHwoay5taW1lVHlwZT1hKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEpaWYoMj50KWZvcihiIGluIGEpcVtiXT1bcVtiXSxhW2JdXTtlbHNlIHYuYWx3YXlzKGFbdi5zdGF0dXNdKTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oYSl7dmFyIGI9YXx8dTtyZXR1cm4gaSYmaS5hYm9ydChiKSx4KDAsYiksdGhpc319O2lmKG8ucHJvbWlzZSh2KS5jb21wbGV0ZT1wLmFkZCx2LnN1Y2Nlc3M9di5kb25lLHYuZXJyb3I9di5mYWlsLGsudXJsPSgoYXx8ay51cmx8fHpjKSsiIikucmVwbGFjZShBYywiIikucmVwbGFjZShGYyx5Y1sxXSsiLy8iKSxrLnR5cGU9Yi5tZXRob2R8fGIudHlwZXx8ay5tZXRob2R8fGsudHlwZSxrLmRhdGFUeXBlcz1tLnRyaW0oay5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKEUpfHxbIiJdLG51bGw9PWsuY3Jvc3NEb21haW4mJihjPUdjLmV4ZWMoay51cmwudG9Mb3dlckNhc2UoKSksay5jcm9zc0RvbWFpbj0hKCFjfHxjWzFdPT09eWNbMV0mJmNbMl09PT15Y1syXSYmKGNbM118fCgiaHR0cDoiPT09Y1sxXT8iODAiOiI0NDMiKSk9PT0oeWNbM118fCgiaHR0cDoiPT09eWNbMV0/IjgwIjoiNDQzIikpKSksay5kYXRhJiZrLnByb2Nlc3NEYXRhJiYic3RyaW5nIiE9dHlwZW9mIGsuZGF0YSYmKGsuZGF0YT1tLnBhcmFtKGsuZGF0YSxrLnRyYWRpdGlvbmFsKSksTWMoSGMsayxiLHYpLDI9PT10KXJldHVybiB2O2g9ay5nbG9iYWwsaCYmMD09PW0uYWN0aXZlKysmJm0uZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iiksay50eXBlPWsudHlwZS50b1VwcGVyQ2FzZSgpLGsuaGFzQ29udGVudD0hRWMudGVzdChrLnR5cGUpLGU9ay51cmwsay5oYXNDb250ZW50fHwoay5kYXRhJiYoZT1rLnVybCs9KHdjLnRlc3QoZSk/IiYiOiI/Iikray5kYXRhLGRlbGV0ZSBrLmRhdGEpLGsuY2FjaGU9PT0hMSYmKGsudXJsPUJjLnRlc3QoZSk/ZS5yZXBsYWNlKEJjLCIkMV89Iit2YysrKTplKyh3Yy50ZXN0KGUpPyImIjoiPyIpKyJfPSIrdmMrKykpLGsuaWZNb2RpZmllZCYmKG0ubGFzdE1vZGlmaWVkW2VdJiZ2LnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixtLmxhc3RNb2RpZmllZFtlXSksbS5ldGFnW2VdJiZ2LnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLG0uZXRhZ1tlXSkpLChrLmRhdGEmJmsuaGFzQ29udGVudCYmay5jb250ZW50VHlwZSE9PSExfHxiLmNvbnRlbnRUeXBlKSYmdi5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGsuY29udGVudFR5cGUpLHYuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixrLmRhdGFUeXBlc1swXSYmay5hY2NlcHRzW2suZGF0YVR5cGVzWzBdXT9rLmFjY2VwdHNbay5kYXRhVHlwZXNbMF1dKygiKiIhPT1rLmRhdGFUeXBlc1swXT8iLCAiK0pjKyI7IHE9MC4wMSI6IiIpOmsuYWNjZXB0c1siKiJdKTtmb3IoZCBpbiBrLmhlYWRlcnMpdi5zZXRSZXF1ZXN0SGVhZGVyKGQsay5oZWFkZXJzW2RdKTtpZihrLmJlZm9yZVNlbmQmJihrLmJlZm9yZVNlbmQuY2FsbChsLHYsayk9PT0hMXx8Mj09PXQpKXJldHVybiB2LmFib3J0KCk7dT0iYWJvcnQiO2ZvcihkIGlue3N1Y2Nlc3M6MSxlcnJvcjoxLGNvbXBsZXRlOjF9KXZbZF0oa1tkXSk7aWYoaT1NYyhJYyxrLGIsdikpe3YucmVhZHlTdGF0ZT0xLGgmJm4udHJpZ2dlcigiYWpheFNlbmQiLFt2LGtdKSxrLmFzeW5jJiZrLnRpbWVvdXQ+MCYmKGc9c2V0VGltZW91dChmdW5jdGlvbigpe3YuYWJvcnQoInRpbWVvdXQiKX0say50aW1lb3V0KSk7dHJ5e3Q9MSxpLnNlbmQocix4KX1jYXRjaCh3KXtpZighKDI+dCkpdGhyb3cgdzt4KC0xLHcpfX1lbHNlIHgoLTEsIk5vIFRyYW5zcG9ydCIpO2Z1bmN0aW9uIHgoYSxiLGMsZCl7dmFyIGoscixzLHUsdyx4PWI7MiE9PXQmJih0PTIsZyYmY2xlYXJUaW1lb3V0KGcpLGk9dm9pZCAwLGY9ZHx8IiIsdi5yZWFkeVN0YXRlPWE+MD80OjAsaj1hPj0yMDAmJjMwMD5hfHwzMDQ9PT1hLGMmJih1PU9jKGssdixjKSksdT1QYyhrLHUsdixqKSxqPyhrLmlmTW9kaWZpZWQmJih3PXYuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSx3JiYobS5sYXN0TW9kaWZpZWRbZV09dyksdz12LmdldFJlc3BvbnNlSGVhZGVyKCJldGFnIiksdyYmKG0uZXRhZ1tlXT13KSksMjA0PT09YXx8IkhFQUQiPT09ay50eXBlP3g9Im5vY29udGVudCI6MzA0PT09YT94PSJub3Rtb2RpZmllZCI6KHg9dS5zdGF0ZSxyPXUuZGF0YSxzPXUuZXJyb3Isaj0hcykpOihzPXgsKGF8fCF4KSYmKHg9ImVycm9yIiwwPmEmJihhPTApKSksdi5zdGF0dXM9YSx2LnN0YXR1c1RleHQ9KGJ8fHgpKyIiLGo/by5yZXNvbHZlV2l0aChsLFtyLHgsdl0pOm8ucmVqZWN0V2l0aChsLFt2LHgsc10pLHYuc3RhdHVzQ29kZShxKSxxPXZvaWQgMCxoJiZuLnRyaWdnZXIoaj8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFt2LGssaj9yOnNdKSxwLmZpcmVXaXRoKGwsW3YseF0pLGgmJihuLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3Ysa10pLC0tbS5hY3RpdmV8fG0uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiB2fSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbS5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pLG0uZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbihhLGIpe21bYl09ZnVuY3Rpb24oYSxjLGQsZSl7cmV0dXJuIG0uaXNGdW5jdGlvbihjKSYmKGU9ZXx8ZCxkPWMsYz12b2lkIDApLG0uYWpheCh7dXJsOmEsdHlwZTpiLGRhdGFUeXBlOmUsZGF0YTpjLHN1Y2Nlc3M6ZH0pfX0pLG0uZWFjaChbImFqYXhTdGFydCIsImFqYXhTdG9wIiwiYWpheENvbXBsZXRlIiwiYWpheEVycm9yIiwiYWpheFN1Y2Nlc3MiLCJhamF4U2VuZCJdLGZ1bmN0aW9uKGEsYil7bS5mbltiXT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5vbihiLGEpfX0pLG0uX2V2YWxVcmw9ZnVuY3Rpb24oYSl7cmV0dXJuIG0uYWpheCh7dXJsOmEsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0Iixhc3luYzohMSxnbG9iYWw6ITEsInRocm93cyI6ITB9KX0sbS5mbi5leHRlbmQoe3dyYXBBbGw6ZnVuY3Rpb24oYSl7aWYobS5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7bSh0aGlzKS53cmFwQWxsKGEuY2FsbCh0aGlzLGIpKX0pO2lmKHRoaXNbMF0pe3ZhciBiPW0oYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKTt0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt3aGlsZShhLmZpcnN0Q2hpbGQmJjE9PT1hLmZpcnN0Q2hpbGQubm9kZVR5cGUpYT1hLmZpcnN0Q2hpbGQ7cmV0dXJuIGF9KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKG0uaXNGdW5jdGlvbihhKT9mdW5jdGlvbihiKXttKHRoaXMpLndyYXBJbm5lcihhLmNhbGwodGhpcyxiKSl9OmZ1bmN0aW9uKCl7dmFyIGI9bSh0aGlzKSxjPWIuY29udGVudHMoKTtjLmxlbmd0aD9jLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXt2YXIgYj1tLmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXttKHRoaXMpLndyYXBBbGwoYj9hLmNhbGwodGhpcyxjKTphKX0pfSx1bndyYXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQoKS5lYWNoKGZ1bmN0aW9uKCl7bS5ub2RlTmFtZSh0aGlzLCJib2R5Iil8fG0odGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLmVuZCgpfX0pLG0uZXhwci5maWx0ZXJzLmhpZGRlbj1mdW5jdGlvbihhKXtyZXR1cm4gYS5vZmZzZXRXaWR0aDw9MCYmYS5vZmZzZXRIZWlnaHQ8PTB8fCFrLnJlbGlhYmxlSGlkZGVuT2Zmc2V0cygpJiYibm9uZSI9PT0oYS5zdHlsZSYmYS5zdHlsZS5kaXNwbGF5fHxtLmNzcyhhLCJkaXNwbGF5IikpfSxtLmV4cHIuZmlsdGVycy52aXNpYmxlPWZ1bmN0aW9uKGEpe3JldHVybiFtLmV4cHIuZmlsdGVycy5oaWRkZW4oYSl9O3ZhciBRYz0vJTIwL2csUmM9L1xbXF0kLyxTYz0vXHI/XG4vZyxUYz0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksVWM9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIFZjKGEsYixjLGQpe3ZhciBlO2lmKG0uaXNBcnJheShiKSltLmVhY2goYixmdW5jdGlvbihiLGUpe2N8fFJjLnRlc3QoYSk/ZChhLGUpOlZjKGErIlsiKygib2JqZWN0Ij09dHlwZW9mIGU/YjoiIikrIl0iLGUsYyxkKX0pO2Vsc2UgaWYoY3x8Im9iamVjdCIhPT1tLnR5cGUoYikpZChhLGIpO2Vsc2UgZm9yKGUgaW4gYilWYyhhKyJbIitlKyJdIixiW2VdLGMsZCl9bS5wYXJhbT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT1mdW5jdGlvbihhLGIpe2I9bS5pc0Z1bmN0aW9uKGIpP2IoKTpudWxsPT1iPyIiOmIsZFtkLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGEpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYil9O2lmKHZvaWQgMD09PWImJihiPW0uYWpheFNldHRpbmdzJiZtLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCksbS5pc0FycmF5KGEpfHxhLmpxdWVyeSYmIW0uaXNQbGFpbk9iamVjdChhKSltLmVhY2goYSxmdW5jdGlvbigpe2UodGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IoYyBpbiBhKVZjKGMsYVtjXSxiLGUpO3JldHVybiBkLmpvaW4oIiYiKS5yZXBsYWNlKFFjLCIrIil9LG0uZm4uZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gbS5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPW0ucHJvcCh0aGlzLCJlbGVtZW50cyIpO3JldHVybiBhP20ubWFrZUFycmF5KGEpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgYT10aGlzLnR5cGU7cmV0dXJuIHRoaXMubmFtZSYmIW0odGhpcykuaXMoIjpkaXNhYmxlZCIpJiZVYy50ZXN0KHRoaXMubm9kZU5hbWUpJiYhVGMudGVzdChhKSYmKHRoaXMuY2hlY2tlZHx8IVcudGVzdChhKSl9KS5tYXAoZnVuY3Rpb24oYSxiKXt2YXIgYz1tKHRoaXMpLnZhbCgpO3JldHVybiBudWxsPT1jP251bGw6bS5pc0FycmF5KGMpP20ubWFwKGMsZnVuY3Rpb24oYSl7cmV0dXJue25hbWU6Yi5uYW1lLHZhbHVlOmEucmVwbGFjZShTYywiXHJcbiIpfX0pOntuYW1lOmIubmFtZSx2YWx1ZTpjLnJlcGxhY2UoU2MsIlxyXG4iKX19KS5nZXQoKX19KSxtLmFqYXhTZXR0aW5ncy54aHI9dm9pZCAwIT09YS5BY3RpdmVYT2JqZWN0P2Z1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNMb2NhbCYmL14oZ2V0fHBvc3R8aGVhZHxwdXR8ZGVsZXRlfG9wdGlvbnMpJC9pLnRlc3QodGhpcy50eXBlKSYmWmMoKXx8JGMoKX06WmM7dmFyIFdjPTAsWGM9e30sWWM9bS5hamF4U2V0dGluZ3MueGhyKCk7YS5BY3RpdmVYT2JqZWN0JiZtKGEpLm9uKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhIGluIFhjKVhjW2FdKHZvaWQgMCwhMCl9KSxrLmNvcnM9ISFZYyYmIndpdGhDcmVkZW50aWFscyJpbiBZYyxZYz1rLmFqYXg9ISFZYyxZYyYmbS5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGEpe2lmKCFhLmNyb3NzRG9tYWlufHxrLmNvcnMpe3ZhciBiO3JldHVybntzZW5kOmZ1bmN0aW9uKGMsZCl7dmFyIGUsZj1hLnhocigpLGc9KytXYztpZihmLm9wZW4oYS50eXBlLGEudXJsLGEuYXN5bmMsYS51c2VybmFtZSxhLnBhc3N3b3JkKSxhLnhockZpZWxkcylmb3IoZSBpbiBhLnhockZpZWxkcylmW2VdPWEueGhyRmllbGRzW2VdO2EubWltZVR5cGUmJmYub3ZlcnJpZGVNaW1lVHlwZSYmZi5vdmVycmlkZU1pbWVUeXBlKGEubWltZVR5cGUpLGEuY3Jvc3NEb21haW58fGNbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KGNbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTtmb3IoZSBpbiBjKXZvaWQgMCE9PWNbZV0mJmYuc2V0UmVxdWVzdEhlYWRlcihlLGNbZV0rIiIpO2Yuc2VuZChhLmhhc0NvbnRlbnQmJmEuZGF0YXx8bnVsbCksYj1mdW5jdGlvbihjLGUpe3ZhciBoLGksajtpZihiJiYoZXx8ND09PWYucmVhZHlTdGF0ZSkpaWYoZGVsZXRlIFhjW2ddLGI9dm9pZCAwLGYub25yZWFkeXN0YXRlY2hhbmdlPW0ubm9vcCxlKTQhPT1mLnJlYWR5U3RhdGUmJmYuYWJvcnQoKTtlbHNle2o9e30saD1mLnN0YXR1cywic3RyaW5nIj09dHlwZW9mIGYucmVzcG9uc2VUZXh0JiYoai50ZXh0PWYucmVzcG9uc2VUZXh0KTt0cnl7aT1mLnN0YXR1c1RleHR9Y2F0Y2goayl7aT0iIn1ofHwhYS5pc0xvY2FsfHxhLmNyb3NzRG9tYWluPzEyMjM9PT1oJiYoaD0yMDQpOmg9ai50ZXh0PzIwMDo0MDR9aiYmZChoLGksaixmLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKX0sYS5hc3luYz80PT09Zi5yZWFkeVN0YXRlP3NldFRpbWVvdXQoYik6Zi5vbnJlYWR5c3RhdGVjaGFuZ2U9WGNbZ109YjpiKCl9LGFib3J0OmZ1bmN0aW9uKCl7YiYmYih2b2lkIDAsITApfX19fSk7ZnVuY3Rpb24gWmMoKXt0cnl7cmV0dXJuIG5ldyBhLlhNTEh0dHBSZXF1ZXN0fWNhdGNoKGIpe319ZnVuY3Rpb24gJGMoKXt0cnl7cmV0dXJuIG5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYil7fX1tLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6Lyg/OmphdmF8ZWNtYSlzY3JpcHQvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe3JldHVybiBtLmdsb2JhbEV2YWwoYSksYX19fSksbS5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZvaWQgMD09PWEuY2FjaGUmJihhLmNhY2hlPSExKSxhLmNyb3NzRG9tYWluJiYoYS50eXBlPSJHRVQiLGEuZ2xvYmFsPSExKX0pLG0uYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbihhKXtpZihhLmNyb3NzRG9tYWluKXt2YXIgYixjPXkuaGVhZHx8bSgiaGVhZCIpWzBdfHx5LmRvY3VtZW50RWxlbWVudDtyZXR1cm57c2VuZDpmdW5jdGlvbihkLGUpe2I9eS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxiLmFzeW5jPSEwLGEuc2NyaXB0Q2hhcnNldCYmKGIuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGIuc3JjPWEudXJsLGIub25sb2FkPWIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7KGN8fCFiLnJlYWR5U3RhdGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoYi5yZWFkeVN0YXRlKSkmJihiLm9ubG9hZD1iLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbCxjfHxlKDIwMCwic3VjY2VzcyIpKX0sYy5pbnNlcnRCZWZvcmUoYixjLmZpcnN0Q2hpbGQpfSxhYm9ydDpmdW5jdGlvbigpe2ImJmIub25sb2FkKHZvaWQgMCwhMCl9fX19KTt2YXIgX2M9W10sYWQ9Lyg9KVw/KD89JnwkKXxcP1w/LzttLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGE9X2MucG9wKCl8fG0uZXhwYW5kbysiXyIrdmMrKztyZXR1cm4gdGhpc1thXT0hMCxhfX0pLG0uYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24oYixjLGQpe3ZhciBlLGYsZyxoPWIuanNvbnAhPT0hMSYmKGFkLnRlc3QoYi51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2YgYi5kYXRhJiYhKGIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmYWQudGVzdChiLmRhdGEpJiYiZGF0YSIpO3JldHVybiBofHwianNvbnAiPT09Yi5kYXRhVHlwZXNbMF0/KGU9Yi5qc29ucENhbGxiYWNrPW0uaXNGdW5jdGlvbihiLmpzb25wQ2FsbGJhY2spP2IuanNvbnBDYWxsYmFjaygpOmIuanNvbnBDYWxsYmFjayxoP2JbaF09YltoXS5yZXBsYWNlKGFkLCIkMSIrZSk6Yi5qc29ucCE9PSExJiYoYi51cmwrPSh3Yy50ZXN0KGIudXJsKT8iJiI6Ij8iKStiLmpzb25wKyI9IitlKSxiLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8bS5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxiLmRhdGFUeXBlc1swXT0ianNvbiIsZj1hW2VdLGFbZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sZC5hbHdheXMoZnVuY3Rpb24oKXthW2VdPWYsYltlXSYmKGIuanNvbnBDYWxsYmFjaz1jLmpzb25wQ2FsbGJhY2ssX2MucHVzaChlKSksZyYmbS5pc0Z1bmN0aW9uKGYpJiZmKGdbMF0pLGc9Zj12b2lkIDB9KSwic2NyaXB0Iik6dm9pZCAwfSksbS5wYXJzZUhUTUw9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7ImJvb2xlYW4iPT10eXBlb2YgYiYmKGM9YixiPSExKSxiPWJ8fHk7dmFyIGQ9dS5leGVjKGEpLGU9IWMmJltdO3JldHVybiBkP1tiLmNyZWF0ZUVsZW1lbnQoZFsxXSldOihkPW0uYnVpbGRGcmFnbWVudChbYV0sYixlKSxlJiZlLmxlbmd0aCYmbShlKS5yZW1vdmUoKSxtLm1lcmdlKFtdLGQuY2hpbGROb2RlcykpfTt2YXIgYmQ9bS5mbi5sb2FkO20uZm4ubG9hZD1mdW5jdGlvbihhLGIsYyl7aWYoInN0cmluZyIhPXR5cGVvZiBhJiZiZClyZXR1cm4gYmQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBkLGUsZixnPXRoaXMsaD1hLmluZGV4T2YoIiAiKTtyZXR1cm4gaD49MCYmKGQ9bS50cmltKGEuc2xpY2UoaCxhLmxlbmd0aCkpLGE9YS5zbGljZSgwLGgpKSxtLmlzRnVuY3Rpb24oYik/KGM9YixiPXZvaWQgMCk6YiYmIm9iamVjdCI9PXR5cGVvZiBiJiYoZj0iUE9TVCIpLGcubGVuZ3RoPjAmJm0uYWpheCh7dXJsOmEsdHlwZTpmLGRhdGFUeXBlOiJodG1sIixkYXRhOmJ9KS5kb25lKGZ1bmN0aW9uKGEpe2U9YXJndW1lbnRzLGcuaHRtbChkP20oIjxkaXY+IikuYXBwZW5kKG0ucGFyc2VIVE1MKGEpKS5maW5kKGQpOmEpfSkuY29tcGxldGUoYyYmZnVuY3Rpb24oYSxiKXtnLmVhY2goYyxlfHxbYS5yZXNwb25zZVRleHQsYixhXSl9KSx0aGlzfSxtLmV4cHIuZmlsdGVycy5hbmltYXRlZD1mdW5jdGlvbihhKXtyZXR1cm4gbS5ncmVwKG0udGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09Yi5lbGVtfSkubGVuZ3RofTt2YXIgY2Q9YS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7ZnVuY3Rpb24gZGQoYSl7cmV0dXJuIG0uaXNXaW5kb3coYSk/YTo5PT09YS5ub2RlVHlwZT9hLmRlZmF1bHRWaWV3fHxhLnBhcmVudFdpbmRvdzohMX1tLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrPW0uY3NzKGEsInBvc2l0aW9uIiksbD1tKGEpLG49e307InN0YXRpYyI9PT1rJiYoYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxoPWwub2Zmc2V0KCksZj1tLmNzcyhhLCJ0b3AiKSxpPW0uY3NzKGEsImxlZnQiKSxqPSgiYWJzb2x1dGUiPT09a3x8ImZpeGVkIj09PWspJiZtLmluQXJyYXkoImF1dG8iLFtmLGldKT4tMSxqPyhkPWwucG9zaXRpb24oKSxnPWQudG9wLGU9ZC5sZWZ0KTooZz1wYXJzZUZsb2F0KGYpfHwwLGU9cGFyc2VGbG9hdChpKXx8MCksbS5pc0Z1bmN0aW9uKGIpJiYoYj1iLmNhbGwoYSxjLGgpKSxudWxsIT1iLnRvcCYmKG4udG9wPWIudG9wLWgudG9wK2cpLG51bGwhPWIubGVmdCYmKG4ubGVmdD1iLmxlZnQtaC5sZWZ0K2UpLCJ1c2luZyJpbiBiP2IudXNpbmcuY2FsbChhLG4pOmwuY3NzKG4pfX0sbS5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbihhKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1hP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe20ub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsYil9KTt2YXIgYixjLGQ9e3RvcDowLGxlZnQ6MH0sZT10aGlzWzBdLGY9ZSYmZS5vd25lckRvY3VtZW50O2lmKGYpcmV0dXJuIGI9Zi5kb2N1bWVudEVsZW1lbnQsbS5jb250YWlucyhiLGUpPyh0eXBlb2YgZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QhPT1LJiYoZD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSxjPWRkKGYpLHt0b3A6ZC50b3ArKGMucGFnZVlPZmZzZXR8fGIuc2Nyb2xsVG9wKS0oYi5jbGllbnRUb3B8fDApLGxlZnQ6ZC5sZWZ0KyhjLnBhZ2VYT2Zmc2V0fHxiLnNjcm9sbExlZnQpLShiLmNsaWVudExlZnR8fDApfSk6ZH0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzWzBdKXt2YXIgYSxiLGM9e3RvcDowLGxlZnQ6MH0sZD10aGlzWzBdO3JldHVybiJmaXhlZCI9PT1tLmNzcyhkLCJwb3NpdGlvbiIpP2I9ZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTooYT10aGlzLm9mZnNldFBhcmVudCgpLGI9dGhpcy5vZmZzZXQoKSxtLm5vZGVOYW1lKGFbMF0sImh0bWwiKXx8KGM9YS5vZmZzZXQoKSksYy50b3ArPW0uY3NzKGFbMF0sImJvcmRlclRvcFdpZHRoIiwhMCksYy5sZWZ0Kz1tLmNzcyhhWzBdLCJib3JkZXJMZWZ0V2lkdGgiLCEwKSkse3RvcDpiLnRvcC1jLnRvcC1tLmNzcyhkLCJtYXJnaW5Ub3AiLCEwKSxsZWZ0OmIubGVmdC1jLmxlZnQtbS5jc3MoZCwibWFyZ2luTGVmdCIsITApfX19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPXRoaXMub2Zmc2V0UGFyZW50fHxjZDt3aGlsZShhJiYhbS5ub2RlTmFtZShhLCJodG1sIikmJiJzdGF0aWMiPT09bS5jc3MoYSwicG9zaXRpb24iKSlhPWEub2Zmc2V0UGFyZW50O3JldHVybiBhfHxjZH0pfX0pLG0uZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPS9ZLy50ZXN0KGIpO20uZm5bYV09ZnVuY3Rpb24oZCl7cmV0dXJuIFYodGhpcyxmdW5jdGlvbihhLGQsZSl7dmFyIGY9ZGQoYSk7cmV0dXJuIHZvaWQgMD09PWU/Zj9iIGluIGY/ZltiXTpmLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXTphW2RdOnZvaWQoZj9mLnNjcm9sbFRvKGM/bShmKS5zY3JvbGxMZWZ0KCk6ZSxjP2U6bShmKS5zY3JvbGxUb3AoKSk6YVtkXT1lKX0sYSxkLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSksbS5lYWNoKFsidG9wIiwibGVmdCJdLGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1tiXT1MYihrLnBpeGVsUG9zaXRpb24sZnVuY3Rpb24oYSxjKXtyZXR1cm4gYz8oYz1KYihhLGIpLEhiLnRlc3QoYyk/bShhKS5wb3NpdGlvbigpW2JdKyJweCI6Yyk6dm9pZCAwfSl9KSxtLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGIpe20uZWFjaCh7cGFkZGluZzoiaW5uZXIiK2EsY29udGVudDpiLCIiOiJvdXRlciIrYX0sZnVuY3Rpb24oYyxkKXttLmZuW2RdPWZ1bmN0aW9uKGQsZSl7dmFyIGY9YXJndW1lbnRzLmxlbmd0aCYmKGN8fCJib29sZWFuIiE9dHlwZW9mIGQpLGc9Y3x8KGQ9PT0hMHx8ZT09PSEwPyJtYXJnaW4iOiJib3JkZXIiKTtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGIsYyxkKXt2YXIgZTtyZXR1cm4gbS5pc1dpbmRvdyhiKT9iLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsiY2xpZW50IithXTo5PT09Yi5ub2RlVHlwZT8oZT1iLmRvY3VtZW50RWxlbWVudCxNYXRoLm1heChiLmJvZHlbInNjcm9sbCIrYV0sZVsic2Nyb2xsIithXSxiLmJvZHlbIm9mZnNldCIrYV0sZVsib2Zmc2V0IithXSxlWyJjbGllbnQiK2FdKSk6dm9pZCAwPT09ZD9tLmNzcyhiLGMsZyk6bS5zdHlsZShiLGMsZCxnKX0sYixmP2Q6dm9pZCAwLGYsbnVsbCl9fSl9KSxtLmZuLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LG0uZm4uYW5kU2VsZj1tLmZuLmFkZEJhY2ssImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIG19KTt2YXIgZWQ9YS5qUXVlcnksZmQ9YS4kO3JldHVybiBtLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oYil7cmV0dXJuIGEuJD09PW0mJihhLiQ9ZmQpLGImJmEualF1ZXJ5PT09bSYmKGEualF1ZXJ5PWVkKSxtfSx0eXBlb2YgYj09PUsmJihhLmpRdWVyeT1hLiQ9bSksbX0pOw0K"></script> <script src="data:application/x-javascript;base64,LyoKIEhpZ2hzdG9jayBKUyB2NC4yLjMgKDIwMTYtMDItMDgpCgogKGMpIDIwMDktMjAxNiBUb3JzdGVpbiBIb25zaQoKIExpY2Vuc2U6IHd3dy5oaWdoY2hhcnRzLmNvbS9saWNlbnNlCiovCihmdW5jdGlvbihKLGVhKXt0eXBlb2YgbW9kdWxlPT09Im9iamVjdCImJm1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPUouZG9jdW1lbnQ/ZWEoSik6ZWE6Si5IaWdoY2hhcnRzPWVhKEopfSkodHlwZW9mIHdpbmRvdyE9PSJ1bmRlZmluZWQiP3dpbmRvdzp0aGlzLGZ1bmN0aW9uKEope2Z1bmN0aW9uIGVhKGEsYil7dmFyIGM9IkhpZ2hjaGFydHMgZXJyb3IgIyIrYSsiOiB3d3cuaGlnaGNoYXJ0cy5jb20vZXJyb3JzLyIrYTtpZihiKXRocm93IEVycm9yKGMpO0ouY29uc29sZSYmY29uc29sZS5sb2coYyl9ZnVuY3Rpb24geWIoYSxiLGMpe3RoaXMub3B0aW9ucz1iO3RoaXMuZWxlbT1hO3RoaXMucHJvcD1jfWZ1bmN0aW9uIEMoKXt2YXIgYSxiPWFyZ3VtZW50cyxjLGQ9e30sZT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7dHlwZW9mIGEhPT0ib2JqZWN0IiYmKGE9e30pO2ZvcihkIGluIGIpYi5oYXNPd25Qcm9wZXJ0eShkKSYmKGM9YltkXSxhW2RdPWMmJnR5cGVvZiBjPT09Im9iamVjdCImJgpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYykhPT0iW29iamVjdCBBcnJheV0iJiZkIT09InJlbmRlclRvIiYmdHlwZW9mIGMubm9kZVR5cGUhPT0ibnVtYmVyIj9lKGFbZF18fHt9LGMpOmJbZF0pO3JldHVybiBhfTtiWzBdPT09ITAmJihkPWJbMV0sYj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChiLDIpKTtjPWIubGVuZ3RoO2ZvcihhPTA7YTxjO2ErKylkPWUoZCxiW2FdKTtyZXR1cm4gZH1mdW5jdGlvbiBHKGEsYil7cmV0dXJuIHBhcnNlSW50KGEsYnx8MTApfWZ1bmN0aW9uIERhKGEpe3JldHVybiB0eXBlb2YgYT09PSJzdHJpbmcifWZ1bmN0aW9uIGZhKGEpe3JldHVybiBhJiZ0eXBlb2YgYT09PSJvYmplY3QifWZ1bmN0aW9uIE1hKGEpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSk9PT0iW29iamVjdCBBcnJheV0ifWZ1bmN0aW9uIHRhKGEpe3JldHVybiB0eXBlb2YgYT09PSJudW1iZXIifWZ1bmN0aW9uIE5hKGEpe3JldHVybiBYLmxvZyhhKS8KWC5MTjEwfWZ1bmN0aW9uIHphKGEpe3JldHVybiBYLnBvdygxMCxhKX1mdW5jdGlvbiBBYShhLGIpe2Zvcih2YXIgYz1hLmxlbmd0aDtjLS07KWlmKGFbY109PT1iKXthLnNwbGljZShjLDEpO2JyZWFrfX1mdW5jdGlvbiB0KGEpe3JldHVybiBhIT09dSYmYSE9PW51bGx9ZnVuY3Rpb24gVyhhLGIsYyl7dmFyIGQsZTtpZihEYShiKSl0KGMpP2Euc2V0QXR0cmlidXRlKGIsYyk6YSYmYS5nZXRBdHRyaWJ1dGUmJihlPWEuZ2V0QXR0cmlidXRlKGIpKTtlbHNlIGlmKHQoYikmJmZhKGIpKWZvcihkIGluIGIpYS5zZXRBdHRyaWJ1dGUoZCxiW2RdKTtyZXR1cm4gZX1mdW5jdGlvbiB1YShhKXtyZXR1cm4gTWEoYSk/YTpbYV19ZnVuY3Rpb24gYmIoYSxiLGMpe2lmKGIpcmV0dXJuIHNldFRpbWVvdXQoYSxiLGMpO2EuY2FsbCgwLGMpfWZ1bmN0aW9uIEkoYSxiKXtpZihKYSYmIWhhJiZiJiZiLm9wYWNpdHkhPT11KWIuZmlsdGVyPSJhbHBoYShvcGFjaXR5PSIrYi5vcGFjaXR5KjEwMCsiKSI7CncoYS5zdHlsZSxiKX1mdW5jdGlvbiBjYShhLGIsYyxkLGUpe2E9Qi5jcmVhdGVFbGVtZW50KGEpO2ImJncoYSxiKTtlJiZJKGEse3BhZGRpbmc6MCxib3JkZXI6Im5vbmUiLG1hcmdpbjowfSk7YyYmSShhLGMpO2QmJmQuYXBwZW5kQ2hpbGQoYSk7cmV0dXJuIGF9ZnVuY3Rpb24ga2EoYSxiKXt2YXIgYz1mdW5jdGlvbigpe307Yy5wcm90b3R5cGU9bmV3IGE7dyhjLnByb3RvdHlwZSxiKTtyZXR1cm4gY31mdW5jdGlvbiBXYShhLGIpe3JldHVybiBBcnJheSgoYnx8MikrMS1TdHJpbmcoYSkubGVuZ3RoKS5qb2luKDApK2F9ZnVuY3Rpb24gZ2IoYSl7cmV0dXJuKGhiJiZoYihhKXx8emJ8fDApKjZFNH1mdW5jdGlvbiBLYShhLGIpe2Zvcih2YXIgYz0ieyIsZD0hMSxlLGYsZyxoLGksaj1bXTsoYz1hLmluZGV4T2YoYykpIT09LTE7KXtlPWEuc2xpY2UoMCxjKTtpZihkKXtmPWUuc3BsaXQoIjoiKTtnPWYuc2hpZnQoKS5zcGxpdCgiLiIpO2k9Zy5sZW5ndGg7ZT1iO2ZvcihoPTA7aDxpO2grKyllPQplW2dbaF1dO2lmKGYubGVuZ3RoKWY9Zi5qb2luKCI6IiksZz0vXC4oWzAtOV0pLyxoPU8ubGFuZyxpPXZvaWQgMCwvZiQvLnRlc3QoZik/KGk9KGk9Zi5tYXRjaChnKSk/aVsxXTotMSxlIT09bnVsbCYmKGU9ei5udW1iZXJGb3JtYXQoZSxpLGguZGVjaW1hbFBvaW50LGYuaW5kZXhPZigiLCIpPi0xP2gudGhvdXNhbmRzU2VwOiIiKSkpOmU9bGEoZixlKX1qLnB1c2goZSk7YT1hLnNsaWNlKGMrMSk7Yz0oZD0hZCk/In0iOiJ7In1qLnB1c2goYSk7cmV0dXJuIGouam9pbigiIil9ZnVuY3Rpb24gQWIoYSl7cmV0dXJuIFgucG93KDEwLFUoWC5sb2coYSkvWC5MTjEwKSl9ZnVuY3Rpb24gQmIoYSxiLGMsZCxlKXt2YXIgZixnPWEsYz1wKGMsMSk7Zj1hL2M7Ynx8KGI9WzEsMiwyLjUsNSwxMF0sZD09PSExJiYoYz09PTE/Yj1bMSwyLDUsMTBdOmM8PTAuMSYmKGI9WzEvY10pKSk7Zm9yKGQ9MDtkPGIubGVuZ3RoO2QrKylpZihnPWJbZF0sZSYmZypjPj1hfHwhZSYmZjw9KGJbZF0rKGJbZCsKMV18fGJbZF0pKS8yKWJyZWFrO2cqPWM7cmV0dXJuIGd9ZnVuY3Rpb24gcGIoYSxiKXt2YXIgYz1hLmxlbmd0aCxkLGU7Zm9yKGU9MDtlPGM7ZSsrKWFbZV0uc2FmZUk9ZTthLnNvcnQoZnVuY3Rpb24oYSxjKXtkPWIoYSxjKTtyZXR1cm4gZD09PTA/YS5zYWZlSS1jLnNhZmVJOmR9KTtmb3IoZT0wO2U8YztlKyspZGVsZXRlIGFbZV0uc2FmZUl9ZnVuY3Rpb24gT2EoYSl7Zm9yKHZhciBiPWEubGVuZ3RoLGM9YVswXTtiLS07KWFbYl08YyYmKGM9YVtiXSk7cmV0dXJuIGN9ZnVuY3Rpb24gRWEoYSl7Zm9yKHZhciBiPWEubGVuZ3RoLGM9YVswXTtiLS07KWFbYl0+YyYmKGM9YVtiXSk7cmV0dXJuIGN9ZnVuY3Rpb24gUGEoYSxiKXtmb3IodmFyIGMgaW4gYSlhW2NdJiZhW2NdIT09YiYmYVtjXS5kZXN0cm95JiZhW2NdLmRlc3Ryb3koKSxkZWxldGUgYVtjXX1mdW5jdGlvbiBYYShhKXtxYnx8KHFiPWNhKFlhKSk7YSYmcWIuYXBwZW5kQ2hpbGQoYSk7cWIuaW5uZXJIVE1MPSIifWZ1bmN0aW9uIG5hKGEsCmIpe3JldHVybiBwYXJzZUZsb2F0KGEudG9QcmVjaXNpb24oYnx8MTQpKX1mdW5jdGlvbiBjYihhLGIpe2IucmVuZGVyZXIuZ2xvYmFsQW5pbWF0aW9uPXAoYSxiLmFuaW1hdGlvbil9ZnVuY3Rpb24gUGIoKXt2YXIgYT1PLmdsb2JhbCxiPWEudXNlVVRDLGM9Yj8iZ2V0VVRDIjoiZ2V0IixkPWI/InNldFVUQyI6InNldCI7ZGE9YS5EYXRlfHxKLkRhdGU7emI9YiYmYS50aW1lem9uZU9mZnNldDtoYj1iJiZhLmdldFRpbWV6b25lT2Zmc2V0O3JiPWZ1bmN0aW9uKGEsYyxkLGgsaSxqKXt2YXIgaztiPyhrPWRhLlVUQy5hcHBseSgwLGFyZ3VtZW50cyksays9Z2IoaykpOms9KG5ldyBkYShhLGMscChkLDEpLHAoaCwwKSxwKGksMCkscChqLDApKSkuZ2V0VGltZSgpO3JldHVybiBrfTtDYj1jKyJNaW51dGVzIjtEYj1jKyJIb3VycyI7RWI9YysiRGF5IjtpYj1jKyJEYXRlIjtqYj1jKyJNb250aCI7a2I9YysiRnVsbFllYXIiO1FiPWQrIk1pbGxpc2Vjb25kcyI7UmI9ZCsiU2Vjb25kcyI7U2I9CmQrIk1pbnV0ZXMiO1RiPWQrIkhvdXJzIjtGYj1kKyJEYXRlIjtHYj1kKyJNb250aCI7SGI9ZCsiRnVsbFllYXIifWZ1bmN0aW9uIHZhKGEpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHZhKSlyZXR1cm4gbmV3IHZhKGEpO3RoaXMuaW5pdChhKX1mdW5jdGlvbiBZKCl7fWZ1bmN0aW9uIGRiKGEsYixjLGQpe3RoaXMuYXhpcz1hO3RoaXMucG9zPWI7dGhpcy50eXBlPWN8fCIiO3RoaXMuaXNOZXc9ITA7IWMmJiFkJiZ0aGlzLmFkZExhYmVsKCl9ZnVuY3Rpb24gVWIoYSxiLGMsZCxlKXt2YXIgZj1hLmNoYXJ0LmludmVydGVkO3RoaXMuYXhpcz1hO3RoaXMuaXNOZWdhdGl2ZT1jO3RoaXMub3B0aW9ucz1iO3RoaXMueD1kO3RoaXMudG90YWw9bnVsbDt0aGlzLnBvaW50cz17fTt0aGlzLnN0YWNrPWU7dGhpcy5yaWdodENsaWZmPXRoaXMubGVmdENsaWZmPTA7dGhpcy5hbGlnbk9wdGlvbnM9e2FsaWduOmIuYWxpZ258fChmP2M/ImxlZnQiOiJyaWdodCI6ImNlbnRlciIpLHZlcnRpY2FsQWxpZ246Yi52ZXJ0aWNhbEFsaWdufHwKKGY/Im1pZGRsZSI6Yz8iYm90dG9tIjoidG9wIikseTpwKGIueSxmPzQ6Yz8xNDotNikseDpwKGIueCxmP2M/LTY6NjowKX07dGhpcy50ZXh0QWxpZ249Yi50ZXh0QWxpZ258fChmP2M/InJpZ2h0IjoibGVmdCI6ImNlbnRlciIpfWZ1bmN0aW9uIEliKGEpe3ZhciBiPWEub3B0aW9ucyxjPWIubmF2aWdhdG9yLGQ9Yy5lbmFibGVkLGI9Yi5zY3JvbGxiYXIsZT1iLmVuYWJsZWQsZj1kP2MuaGVpZ2h0OjAsZz1lP2IuaGVpZ2h0OjA7dGhpcy5oYW5kbGVzPVtdO3RoaXMuc2Nyb2xsYmFyQnV0dG9ucz1bXTt0aGlzLmVsZW1lbnRzVG9EZXN0cm95PVtdO3RoaXMuY2hhcnQ9YTt0aGlzLnNldEJhc2VTZXJpZXMoKTt0aGlzLmhlaWdodD1mO3RoaXMuc2Nyb2xsYmFySGVpZ2h0PWc7dGhpcy5zY3JvbGxiYXJFbmFibGVkPWU7dGhpcy5uYXZpZ2F0b3JFbmFibGVkPWQ7dGhpcy5uYXZpZ2F0b3JPcHRpb25zPWM7dGhpcy5zY3JvbGxiYXJPcHRpb25zPWI7dGhpcy5vdXRsaW5lSGVpZ2h0PWYrZzt0aGlzLmluaXQoKX0KZnVuY3Rpb24gSmIoYSl7dGhpcy5pbml0KGEpfXZhciB1LEI9Si5kb2N1bWVudCxYPU1hdGgseT1YLnJvdW5kLFU9WC5mbG9vcixGYT1YLmNlaWwscz1YLm1heCxFPVgubWluLFE9WC5hYnMsYWE9WC5jb3MsaWE9WC5zaW4sQmE9WC5QSSxvYT1CYSoyLzM2MCxMYT1KLm5hdmlnYXRvciYmSi5uYXZpZ2F0b3IudXNlckFnZW50fHwiIixWYj1KLm9wZXJhLEphPS8obXNpZXx0cmlkZW50fGVkZ2UpL2kudGVzdChMYSkmJiFWYixzYj1CJiZCLmRvY3VtZW50TW9kZT09PTgsdGI9IUphJiYvQXBwbGVXZWJLaXQvLnRlc3QoTGEpLFphPS9GaXJlZm94Ly50ZXN0KExhKSxsYj0vKE1vYmlsZXxBbmRyb2lkfFdpbmRvd3MgUGhvbmUpLy50ZXN0KExhKSxRYT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGhhPUImJkIuY3JlYXRlRWxlbWVudE5TJiYhIUIuY3JlYXRlRWxlbWVudE5TKFFhLCJzdmciKS5jcmVhdGVTVkdSZWN0LCRiPVphJiZwYXJzZUludChMYS5zcGxpdCgiRmlyZWZveC8iKVsxXSwKMTApPDQscGE9QiYmIWhhJiYhSmEmJiEhQi5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0LCRhLGViLFdiPXt9LEtiPTAscWIsTyxsYSxILHFhPWZ1bmN0aW9uKCl7fSwkPVtdLG1iPTAsWWE9ImRpdiIsYWM9L15bMC05XSskLyx1Yj1bInBsb3RUb3AiLCJtYXJnaW5SaWdodCIsIm1hcmdpbkJvdHRvbSIsInBsb3RMZWZ0Il0sZGEscmIsemIsaGIsQ2IsRGIsRWIsaWIsamIsa2IsUWIsUmIsU2IsVGIsRmIsR2IsSGIsSz17fSx6O3o9Si5IaWdoY2hhcnRzP2VhKDE2LCEwKTp7d2luOkp9O3ouc2VyaWVzVHlwZXM9Szt2YXIgUmE9W10sd2EscmEsbixTYSxMYixzYSxELFIsTSxmYixUYTt5Yi5wcm90b3R5cGU9e2RTZXR0ZXI6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnBhdGhzWzBdLGI9dGhpcy5wYXRoc1sxXSxjPVtdLGQ9dGhpcy5ub3csZT1hLmxlbmd0aCxmO2lmKGQ9PT0xKWM9dGhpcy50b0Q7ZWxzZSBpZihlPT09Yi5sZW5ndGgmJmQ8MSlmb3IoO2UtLTspZj1wYXJzZUZsb2F0KGFbZV0pLApjW2VdPWlzTmFOKGYpP2FbZV06ZCpwYXJzZUZsb2F0KGJbZV0tZikrZjtlbHNlIGM9Yjt0aGlzLmVsZW0uYXR0cigiZCIsYyl9LHVwZGF0ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZWxlbSxiPXRoaXMucHJvcCxjPXRoaXMubm93LGQ9dGhpcy5vcHRpb25zLnN0ZXA7aWYodGhpc1tiKyJTZXR0ZXIiXSl0aGlzW2IrIlNldHRlciJdKCk7ZWxzZSBhLmF0dHI/YS5lbGVtZW50JiZhLmF0dHIoYixjKTphLnN0eWxlW2JdPWMrdGhpcy51bml0O2QmJmQuY2FsbChhLGMsdGhpcyl9LHJ1bjpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcyxlPWZ1bmN0aW9uKGEpe3JldHVybiBlLnN0b3BwZWQ/ITE6ZC5zdGVwKGEpfSxmO3RoaXMuc3RhcnRUaW1lPStuZXcgZGE7dGhpcy5zdGFydD1hO3RoaXMuZW5kPWI7dGhpcy51bml0PWM7dGhpcy5ub3c9dGhpcy5zdGFydDt0aGlzLnBvcz0wO2UuZWxlbT10aGlzLmVsZW07aWYoZSgpJiZSYS5wdXNoKGUpPT09MSllLnRpbWVySWQ9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtmb3IoZj0KMDtmPFJhLmxlbmd0aDtmKyspUmFbZl0oKXx8UmEuc3BsaWNlKGYtLSwxKTtSYS5sZW5ndGh8fGNsZWFySW50ZXJ2YWwoZS50aW1lcklkKX0sMTMpfSxzdGVwOmZ1bmN0aW9uKGEpe3ZhciBiPStuZXcgZGEsYyxkPXRoaXMub3B0aW9ucztjPXRoaXMuZWxlbTt2YXIgZT1kLmNvbXBsZXRlLGY9ZC5kdXJhdGlvbixnPWQuY3VyQW5pbSxoO2lmKGMuYXR0ciYmIWMuZWxlbWVudCljPSExO2Vsc2UgaWYoYXx8Yj49Zit0aGlzLnN0YXJ0VGltZSl7dGhpcy5ub3c9dGhpcy5lbmQ7dGhpcy5wb3M9MTt0aGlzLnVwZGF0ZSgpO2E9Z1t0aGlzLnByb3BdPSEwO2ZvcihoIGluIGcpZ1toXSE9PSEwJiYoYT0hMSk7YSYmZSYmZS5jYWxsKGMpO2M9ITF9ZWxzZSB0aGlzLnBvcz1kLmVhc2luZygoYi10aGlzLnN0YXJ0VGltZSkvZiksdGhpcy5ub3c9dGhpcy5zdGFydCsodGhpcy5lbmQtdGhpcy5zdGFydCkqdGhpcy5wb3MsdGhpcy51cGRhdGUoKSxjPSEwO3JldHVybiBjfSxpbml0UGF0aDpmdW5jdGlvbihhLApiLGMpe3ZhciBiPWJ8fCIiLGQ9YS5zaGlmdCxlPWIuaW5kZXhPZigiQyIpPi0xLGY9ZT83OjMsZyxiPWIuc3BsaXQoIiAiKSxjPVtdLmNvbmNhdChjKSxoPWEuaXNBcmVhLGk9aD8yOjEsaj1mdW5jdGlvbihhKXtmb3IoZz1hLmxlbmd0aDtnLS07KShhW2ddPT09Ik0ifHxhW2ddPT09IkwiKSYmYS5zcGxpY2UoZysxLDAsYVtnKzFdLGFbZysyXSxhW2crMV0sYVtnKzJdKX07ZSYmKGooYiksaihjKSk7aWYoZDw9Yy5sZW5ndGgvZiYmYi5sZW5ndGg9PT1jLmxlbmd0aClmb3IoO2QtLTspYz1jLnNsaWNlKDAsZikuY29uY2F0KGMpLGgmJihjPWMuY29uY2F0KGMuc2xpY2UoYy5sZW5ndGgtZikpKTthLnNoaWZ0PTA7aWYoYi5sZW5ndGgpZm9yKGE9Yy5sZW5ndGg7Yi5sZW5ndGg8YTspZD1iLnNsaWNlKCkuc3BsaWNlKGIubGVuZ3RoL2ktZixmKmkpLGUmJihkW2YtNl09ZFtmLTJdLGRbZi01XT1kW2YtMV0pLFtdLnNwbGljZS5hcHBseShiLFtiLmxlbmd0aC9pLDBdLmNvbmNhdChkKSk7cmV0dXJuW2IsCmNdfX07dmFyIHc9ei5leHRlbmQ9ZnVuY3Rpb24oYSxiKXt2YXIgYzthfHwoYT17fSk7Zm9yKGMgaW4gYilhW2NdPWJbY107cmV0dXJuIGF9LHA9ei5waWNrPWZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzLGIsYyxkPWEubGVuZ3RoO2ZvcihiPTA7YjxkO2IrKylpZihjPWFbYl0sYyE9PXUmJmMhPT1udWxsKXJldHVybiBjfSxTPXoud3JhcD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YVtiXTthW2JdPWZ1bmN0aW9uKCl7dmFyIGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTthLnVuc2hpZnQoZCk7cmV0dXJuIGMuYXBwbHkodGhpcyxhKX19O2xhPWZ1bmN0aW9uKGEsYixjKXtpZighdChiKXx8aXNOYU4oYikpcmV0dXJuIE8ubGFuZy5pbnZhbGlkRGF0ZXx8IiI7dmFyIGE9cChhLCIlWS0lbS0lZCAlSDolTTolUyIpLGQ9bmV3IGRhKGItZ2IoYikpLGUsZj1kW0RiXSgpLGc9ZFtFYl0oKSxoPWRbaWJdKCksaT1kW2piXSgpLGo9ZFtrYl0oKSxrPU8ubGFuZyxsPWsud2Vla2RheXMsCmQ9dyh7YTpsW2ddLnN1YnN0cigwLDMpLEE6bFtnXSxkOldhKGgpLGU6aCx3OmcsYjprLnNob3J0TW9udGhzW2ldLEI6ay5tb250aHNbaV0sbTpXYShpKzEpLHk6ai50b1N0cmluZygpLnN1YnN0cigyLDIpLFk6aixIOldhKGYpLGs6ZixJOldhKGYlMTJ8fDEyKSxsOmYlMTJ8fDEyLE06V2EoZFtDYl0oKSkscDpmPDEyPyJBTSI6IlBNIixQOmY8MTI/ImFtIjoicG0iLFM6V2EoZC5nZXRTZWNvbmRzKCkpLEw6V2EoeShiJTFFMyksMyl9LHouZGF0ZUZvcm1hdHMpO2ZvcihlIGluIGQpZm9yKDthLmluZGV4T2YoIiUiK2UpIT09LTE7KWE9YS5yZXBsYWNlKCIlIitlLHR5cGVvZiBkW2VdPT09ImZ1bmN0aW9uIj9kW2VdKGIpOmRbZV0pO3JldHVybiBjP2Euc3Vic3RyKDAsMSkudG9VcHBlckNhc2UoKSthLnN1YnN0cigxKTphfTtIPXttaWxsaXNlY29uZDoxLHNlY29uZDoxRTMsbWludXRlOjZFNCxob3VyOjM2RTUsZGF5Ojg2NEU1LHdlZWs6NjA0OEU1LG1vbnRoOjI0MTkyRTUseWVhcjozMTQ0OTZFNX07CnoubnVtYmVyRm9ybWF0PWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBhPSthfHwwLGU9Ty5sYW5nLGY9KGEudG9TdHJpbmcoKS5zcGxpdCgiLiIpWzFdfHwiIikubGVuZ3RoLGcsaCxpPU1hdGguYWJzKGEpO2I9PT0tMT9iPU1hdGgubWluKGYsMjApOmlzTmFOKGIpJiYoYj0yKTtnPVN0cmluZyhHKGkudG9GaXhlZChiKSkpO2g9Zy5sZW5ndGg+Mz9nLmxlbmd0aCUzOjA7Yz1wKGMsZS5kZWNpbWFsUG9pbnQpO2Q9cChkLGUudGhvdXNhbmRzU2VwKTthPWE8MD8iLSI6IiI7YSs9aD9nLnN1YnN0cigwLGgpK2Q6IiI7YSs9Zy5zdWJzdHIoaCkucmVwbGFjZSgvKFxkezN9KSg/PVxkKS9nLCIkMSIrZCk7K2ImJihkPU1hdGguYWJzKGktZytNYXRoLnBvdygxMCwtTWF0aC5tYXgoYixmKS0xKSksYSs9YytkLnRvRml4ZWQoYikuc2xpY2UoMikpO3JldHVybiBhfTtNYXRoLmVhc2VJbk91dFNpbmU9ZnVuY3Rpb24oYSl7cmV0dXJuLTAuNSooTWF0aC5jb3MoTWF0aC5QSSphKS0xKX07d2E9ZnVuY3Rpb24oYSwKYil7dmFyIGM7aWYoYj09PSJ3aWR0aCIpcmV0dXJuIE1hdGgubWluKGEub2Zmc2V0V2lkdGgsYS5zY3JvbGxXaWR0aCktd2EoYSwicGFkZGluZy1sZWZ0Iiktd2EoYSwicGFkZGluZy1yaWdodCIpO2Vsc2UgaWYoYj09PSJoZWlnaHQiKXJldHVybiBNYXRoLm1pbihhLm9mZnNldEhlaWdodCxhLnNjcm9sbEhlaWdodCktd2EoYSwicGFkZGluZy10b3AiKS13YShhLCJwYWRkaW5nLWJvdHRvbSIpO3JldHVybihjPUouZ2V0Q29tcHV0ZWRTdHlsZShhLHZvaWQgMCkpJiZHKGMuZ2V0UHJvcGVydHlWYWx1ZShiKSl9O3JhPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIuaW5kZXhPZj9iLmluZGV4T2YoYSk6W10uaW5kZXhPZi5jYWxsKGIsYSl9O1NhPWZ1bmN0aW9uKGEsYil7cmV0dXJuW10uZmlsdGVyLmNhbGwoYSxiKX07c2E9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD0wLGU9YS5sZW5ndGg7ZDxlO2QrKyljW2RdPWIuY2FsbChhW2RdLGFbZF0sZCxhKTtyZXR1cm4gY307TGI9ZnVuY3Rpb24oYSl7dmFyIGI9CkIuZG9jdW1lbnRFbGVtZW50LGE9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57dG9wOmEudG9wKyhKLnBhZ2VZT2Zmc2V0fHxiLnNjcm9sbFRvcCktKGIuY2xpZW50VG9wfHwwKSxsZWZ0OmEubGVmdCsoSi5wYWdlWE9mZnNldHx8Yi5zY3JvbGxMZWZ0KS0oYi5jbGllbnRMZWZ0fHwwKX19O1RhPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1SYS5sZW5ndGg7Yi0tOylpZihSYVtiXS5lbGVtPT09YSlSYVtiXS5zdG9wcGVkPSEwfTtuPWZ1bmN0aW9uKGEsYil7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoYSxiKX07RD1mdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChiKXtiLnRhcmdldD1iLnNyY0VsZW1lbnR8fEo7Yy5jYWxsKGEsYil9dmFyIGU9YS5oY0V2ZW50cz1hLmhjRXZlbnRzfHx7fTtpZihhLmFkZEV2ZW50TGlzdGVuZXIpYS5hZGRFdmVudExpc3RlbmVyKGIsYywhMSk7ZWxzZSBpZihhLmF0dGFjaEV2ZW50KXtpZighYS5oY0V2ZW50c0lFKWEuaGNFdmVudHNJRT0Ke307YS5oY0V2ZW50c0lFW2MudG9TdHJpbmcoKV09ZDthLmF0dGFjaEV2ZW50KCJvbiIrYixkKX1lW2JdfHwoZVtiXT1bXSk7ZVtiXS5wdXNoKGMpfTtSPWZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGIsYyl7YS5yZW1vdmVFdmVudExpc3RlbmVyP2EucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMsITEpOmEuYXR0YWNoRXZlbnQmJihjPWEuaGNFdmVudHNJRVtjLnRvU3RyaW5nKCldLGEuZGV0YWNoRXZlbnQoIm9uIitiLGMpKX1mdW5jdGlvbiBlKCl7dmFyIGMsZSxmO2lmKGEubm9kZU5hbWUpZm9yKGYgaW4gYj8oYz17fSxjW2JdPSEwKTpjPWcsYylpZihnW2ZdKWZvcihlPWdbZl0ubGVuZ3RoO2UtLTspZChmLGdbZl1bZV0pfXZhciBmLGc9YS5oY0V2ZW50cyxoO2lmKGcpYj8oZj1nW2JdfHxbXSxjPyhoPXJhKGMsZiksaD4tMSYmKGYuc3BsaWNlKGgsMSksZ1tiXT1mKSxkKGIsYykpOihlKCksZ1tiXT1bXSkpOihlKCksYS5oY0V2ZW50cz17fSl9O009ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU7CmU9YS5oY0V2ZW50czt2YXIgZixnLGgsaSxjPWN8fHt9O2lmKEIuY3JlYXRlRXZlbnQmJihhLmRpc3BhdGNoRXZlbnR8fGEuZmlyZUV2ZW50KSllPUIuY3JlYXRlRXZlbnQoIkV2ZW50cyIpLGUuaW5pdEV2ZW50KGIsITAsITApLGUudGFyZ2V0PWEsdyhlLGMpLGEuZGlzcGF0Y2hFdmVudD9hLmRpc3BhdGNoRXZlbnQoZSk6YS5maXJlRXZlbnQoYixlKTtlbHNlIGlmKGUpe2U9ZVtiXXx8W107Zj1lLmxlbmd0aDtoPWZ1bmN0aW9uKCl7Yy5kZWZhdWx0UHJldmVudGVkPSEwfTtmb3IoZz0wO2c8ZjtnKyspe2k9ZVtnXTtpZihjLnN0b3BwZWQpcmV0dXJuO2MucHJldmVudERlZmF1bHQ9aDtjLnRhcmdldD1hO2lmKCFjLnR5cGUpYy50eXBlPWI7aS5jYWxsKGEsYyk9PT0hMSYmYy5wcmV2ZW50RGVmYXVsdCgpfX1kJiYhYy5kZWZhdWx0UHJldmVudGVkJiZkKGMpfTtmYj1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZT0iIixmLGcsaDtmYShjKXx8KGQ9YXJndW1lbnRzLGM9e2R1cmF0aW9uOmRbMl0sCmVhc2luZzpkWzNdLGNvbXBsZXRlOmRbNF19KTtpZighdGEoYy5kdXJhdGlvbikpYy5kdXJhdGlvbj00MDA7Yy5lYXNpbmc9TWF0aFtjLmVhc2luZ118fE1hdGguZWFzZUluT3V0U2luZTtjLmN1ckFuaW09QyhiKTtmb3IoaCBpbiBiKWc9bmV3IHliKGEsYyxoKSxmPW51bGwsaD09PSJkIj8oZy5wYXRocz1nLmluaXRQYXRoKGEsYS5kLGIuZCksZy50b0Q9Yi5kLGQ9MCxmPTEpOmEuYXR0cj9kPWEuYXR0cihoKTooZD1wYXJzZUZsb2F0KHdhKGEsaCkpfHwwLGghPT0ib3BhY2l0eSImJihlPSJweCIpKSxmfHwoZj1iW2hdKSxmLm1hdGNoJiZmLm1hdGNoKCJweCIpJiYoZj1mLnJlcGxhY2UoL3B4L2csIiIpKSxnLnJ1bihkLGYsZSl9O2lmKEoualF1ZXJ5KUoualF1ZXJ5LmZuLmhpZ2hjaGFydHM9ZnVuY3Rpb24oKXt2YXIgYT1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7aWYodGhpc1swXSlyZXR1cm4gYVswXT8obmV3ICh6W0RhKGFbMF0pP2Euc2hpZnQoKToiQ2hhcnQiXSkodGhpc1swXSwKYVswXSxhWzFdKSx0aGlzKTokW1codGhpc1swXSwiZGF0YS1oaWdoY2hhcnRzLWNoYXJ0IildfTtCJiYhQi5kZWZhdWx0VmlldyYmKHdhPWZ1bmN0aW9uKGEsYil7dmFyIGM7Yz17d2lkdGg6ImNsaWVudFdpZHRoIixoZWlnaHQ6ImNsaWVudEhlaWdodCJ9W2JdO2lmKGEuc3R5bGVbYl0pcmV0dXJuIEcoYS5zdHlsZVtiXSk7Yj09PSJvcGFjaXR5IiYmKGI9ImZpbHRlciIpO2lmKGMpcmV0dXJuIGEuc3R5bGUuem9vbT0xLGFbY10tMip3YShhLCJwYWRkaW5nIik7Yz1hLmN1cnJlbnRTdHlsZVtiLnJlcGxhY2UoL1wtKFx3KS9nLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGIudG9VcHBlckNhc2UoKX0pXTtiPT09ImZpbHRlciImJihjPWMucmVwbGFjZSgvYWxwaGFcKG9wYWNpdHk9KFswLTldKylcKS8sZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi8xMDB9KSk7cmV0dXJuIGM9PT0iIj8xOkcoYyl9KTtBcnJheS5wcm90b3R5cGUuZm9yRWFjaHx8KG49ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MCxkPQphLmxlbmd0aDtjPGQ7YysrKWlmKGIuY2FsbChhW2NdLGFbY10sYyxhKT09PSExKXJldHVybiBjfSk7QXJyYXkucHJvdG90eXBlLmluZGV4T2Z8fChyYT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9MDtpZihiKWZvcihjPWIubGVuZ3RoO2Q8YztkKyspaWYoYltkXT09PWEpcmV0dXJuIGQ7cmV0dXJuLTF9KTtBcnJheS5wcm90b3R5cGUuZmlsdGVyfHwoU2E9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZD0wLGU9YS5sZW5ndGg7ZDxlO2QrKyliKGFbZF0sZCkmJmMucHVzaChhW2RdKTtyZXR1cm4gY30pO3ouRng9eWI7ei5pbkFycmF5PXJhO3ouZWFjaD1uO3ouZ3JlcD1TYTt6Lm9mZnNldD1MYjt6Lm1hcD1zYTt6LmFkZEV2ZW50PUQ7ei5yZW1vdmVFdmVudD1SO3ouZmlyZUV2ZW50PU07ei5hbmltYXRlPWZiO3ouc3RvcD1UYTtPPXtjb2xvcnM6IiM3Y2I1ZWMsIzQzNDM0OCwjOTBlZDdkLCNmN2EzNWMsIzgwODVlOSwjZjE1YzgwLCNlNGQzNTQsIzJiOTA4ZiwjZjQ1YjViLCM5MWU4ZTEiLnNwbGl0KCIsIiksCnN5bWJvbHM6WyJjaXJjbGUiLCJkaWFtb25kIiwic3F1YXJlIiwidHJpYW5nbGUiLCJ0cmlhbmdsZS1kb3duIl0sbGFuZzp7bG9hZGluZzoiTG9hZGluZy4uLiIsbW9udGhzOiJKYW51YXJ5LEZlYnJ1YXJ5LE1hcmNoLEFwcmlsLE1heSxKdW5lLEp1bHksQXVndXN0LFNlcHRlbWJlcixPY3RvYmVyLE5vdmVtYmVyLERlY2VtYmVyIi5zcGxpdCgiLCIpLHNob3J0TW9udGhzOiJKYW4sRmViLE1hcixBcHIsTWF5LEp1bixKdWwsQXVnLFNlcCxPY3QsTm92LERlYyIuc3BsaXQoIiwiKSx3ZWVrZGF5czoiU3VuZGF5LE1vbmRheSxUdWVzZGF5LFdlZG5lc2RheSxUaHVyc2RheSxGcmlkYXksU2F0dXJkYXkiLnNwbGl0KCIsIiksZGVjaW1hbFBvaW50OiIuIixudW1lcmljU3ltYm9sczoiayxNLEcsVCxQLEUiLnNwbGl0KCIsIikscmVzZXRab29tOiJSZXNldCB6b29tIixyZXNldFpvb21UaXRsZToiUmVzZXQgem9vbSBsZXZlbCAxOjEiLHRob3VzYW5kc1NlcDoiICJ9LGdsb2JhbDp7dXNlVVRDOiEwLApjYW52YXNUb29sc1VSTDoiaHR0cDovL2NvZGUuaGlnaGNoYXJ0cy5jb20vbW9kdWxlcy9jYW52YXMtdG9vbHMuanMiLFZNTFJhZGlhbEdyYWRpZW50VVJMOiJodHRwOi8vY29kZS5oaWdoY2hhcnRzLmNvbS9zdG9jay80LjIuMy9nZngvdm1sLXJhZGlhbC1ncmFkaWVudC5wbmcifSxjaGFydDp7Ym9yZGVyQ29sb3I6IiM0NTcyQTciLGJvcmRlclJhZGl1czowLGRlZmF1bHRTZXJpZXNUeXBlOiJsaW5lIixpZ25vcmVIaWRkZW5TZXJpZXM6ITAsc3BhY2luZzpbMTAsMTAsMTUsMTBdLGJhY2tncm91bmRDb2xvcjoiI0ZGRkZGRiIscGxvdEJvcmRlckNvbG9yOiIjQzBDMEMwIixyZXNldFpvb21CdXR0b246e3RoZW1lOnt6SW5kZXg6MjB9LHBvc2l0aW9uOnthbGlnbjoicmlnaHQiLHg6LTEwLHk6MTB9fX0sdGl0bGU6e3RleHQ6IkNoYXJ0IHRpdGxlIixhbGlnbjoiY2VudGVyIixtYXJnaW46MTUsc3R5bGU6e2NvbG9yOiIjMzMzMzMzIixmb250U2l6ZToiMThweCJ9fSxzdWJ0aXRsZTp7dGV4dDoiIiwKYWxpZ246ImNlbnRlciIsc3R5bGU6e2NvbG9yOiIjNTU1NTU1In19LHBsb3RPcHRpb25zOntsaW5lOnthbGxvd1BvaW50U2VsZWN0OiExLHNob3dDaGVja2JveDohMSxhbmltYXRpb246e2R1cmF0aW9uOjFFM30sZXZlbnRzOnt9LGxpbmVXaWR0aDoyLG1hcmtlcjp7bGluZVdpZHRoOjAscmFkaXVzOjQsbGluZUNvbG9yOiIjRkZGRkZGIixzdGF0ZXM6e2hvdmVyOntlbmFibGVkOiEwLGxpbmVXaWR0aFBsdXM6MSxyYWRpdXNQbHVzOjJ9LHNlbGVjdDp7ZmlsbENvbG9yOiIjRkZGRkZGIixsaW5lQ29sb3I6IiMwMDAwMDAiLGxpbmVXaWR0aDoyfX19LHBvaW50OntldmVudHM6e319LGRhdGFMYWJlbHM6e2FsaWduOiJjZW50ZXIiLGZvcm1hdHRlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnk9PT1udWxsPyIiOnoubnVtYmVyRm9ybWF0KHRoaXMueSwtMSl9LHN0eWxlOntjb2xvcjoiY29udHJhc3QiLGZvbnRTaXplOiIxMXB4Iixmb250V2VpZ2h0OiJib2xkIix0ZXh0U2hhZG93OiIwIDAgNnB4IGNvbnRyYXN0LCAwIDAgM3B4IGNvbnRyYXN0In0sCnZlcnRpY2FsQWxpZ246ImJvdHRvbSIseDowLHk6MCxwYWRkaW5nOjV9LGNyb3BUaHJlc2hvbGQ6MzAwLHBvaW50UmFuZ2U6MCxzb2Z0VGhyZXNob2xkOiEwLHN0YXRlczp7aG92ZXI6e2xpbmVXaWR0aFBsdXM6MSxtYXJrZXI6e30saGFsbzp7c2l6ZToxMCxvcGFjaXR5OjAuMjV9fSxzZWxlY3Q6e21hcmtlcjp7fX19LHN0aWNreVRyYWNraW5nOiEwLHR1cmJvVGhyZXNob2xkOjFFM319LGxhYmVsczp7c3R5bGU6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsY29sb3I6IiMzRTU3NkYifX0sbGVnZW5kOntlbmFibGVkOiEwLGFsaWduOiJjZW50ZXIiLGxheW91dDoiaG9yaXpvbnRhbCIsbGFiZWxGb3JtYXR0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uYW1lfSxib3JkZXJDb2xvcjoiIzkwOTA5MCIsYm9yZGVyUmFkaXVzOjAsbmF2aWdhdGlvbjp7YWN0aXZlQ29sb3I6IiMyNzRiNmQiLGluYWN0aXZlQ29sb3I6IiNDQ0MifSxzaGFkb3c6ITEsaXRlbVN0eWxlOntjb2xvcjoiIzMzMzMzMyIsZm9udFNpemU6IjEycHgiLApmb250V2VpZ2h0OiJib2xkIn0saXRlbUhvdmVyU3R5bGU6e2NvbG9yOiIjMDAwIn0saXRlbUhpZGRlblN0eWxlOntjb2xvcjoiI0NDQyJ9LGl0ZW1DaGVja2JveFN0eWxlOntwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOiIxM3B4IixoZWlnaHQ6IjEzcHgifSxzeW1ib2xQYWRkaW5nOjUsdmVydGljYWxBbGlnbjoiYm90dG9tIix4OjAseTowLHRpdGxlOntzdHlsZTp7Zm9udFdlaWdodDoiYm9sZCJ9fX0sbG9hZGluZzp7bGFiZWxTdHlsZTp7Zm9udFdlaWdodDoiYm9sZCIscG9zaXRpb246InJlbGF0aXZlIix0b3A6IjQ1JSJ9LHN0eWxlOntwb3NpdGlvbjoiYWJzb2x1dGUiLGJhY2tncm91bmRDb2xvcjoid2hpdGUiLG9wYWNpdHk6MC41LHRleHRBbGlnbjoiY2VudGVyIn19LHRvb2x0aXA6e2VuYWJsZWQ6ITAsYW5pbWF0aW9uOmhhLGJhY2tncm91bmRDb2xvcjoicmdiYSgyNDksIDI0OSwgMjQ5LCAuODUpIixib3JkZXJXaWR0aDoxLGJvcmRlclJhZGl1czozLGRhdGVUaW1lTGFiZWxGb3JtYXRzOnttaWxsaXNlY29uZDoiJUEsICViICVlLCAlSDolTTolUy4lTCIsCnNlY29uZDoiJUEsICViICVlLCAlSDolTTolUyIsbWludXRlOiIlQSwgJWIgJWUsICVIOiVNIixob3VyOiIlQSwgJWIgJWUsICVIOiVNIixkYXk6IiVBLCAlYiAlZSwgJVkiLHdlZWs6IldlZWsgZnJvbSAlQSwgJWIgJWUsICVZIixtb250aDoiJUIgJVkiLHllYXI6IiVZIn0sZm9vdGVyRm9ybWF0OiIiLGhlYWRlckZvcm1hdDonPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBweCI+e3BvaW50LmtleX08L3NwYW4+PGJyLz4nLHBvaW50Rm9ybWF0Oic8c3BhbiBzdHlsZT0iY29sb3I6e3BvaW50LmNvbG9yfSI+XHUyNWNmPC9zcGFuPiB7c2VyaWVzLm5hbWV9OiA8Yj57cG9pbnQueX08L2I+PGJyLz4nLHNoYWRvdzohMCxzbmFwOmxiPzI1OjEwLHN0eWxlOntjb2xvcjoiIzMzMzMzMyIsY3Vyc29yOiJkZWZhdWx0Iixmb250U2l6ZToiMTJweCIscGFkZGluZzoiOHB4Iixwb2ludGVyRXZlbnRzOiJub25lIix3aGl0ZVNwYWNlOiJub3dyYXAifX0sY3JlZGl0czp7ZW5hYmxlZDohMCx0ZXh0OiJIaWdoY2hhcnRzLmNvbSIsCmhyZWY6Imh0dHA6Ly93d3cuaGlnaGNoYXJ0cy5jb20iLHBvc2l0aW9uOnthbGlnbjoicmlnaHQiLHg6LTEwLHZlcnRpY2FsQWxpZ246ImJvdHRvbSIseTotNX0sc3R5bGU6e2N1cnNvcjoicG9pbnRlciIsY29sb3I6IiM5MDkwOTAiLGZvbnRTaXplOiI5cHgifX19O3ZhciBWPU8ucGxvdE9wdGlvbnMsYmE9Vi5saW5lO1BiKCk7dmEucHJvdG90eXBlPXtwYXJzZXJzOlt7cmVnZXg6L3JnYmFcKFxzKihbMC05XXsxLDN9KVxzKixccyooWzAtOV17MSwzfSlccyosXHMqKFswLTldezEsM30pXHMqLFxzKihbMC05XT8oPzpcLlswLTldKyk/KVxzKlwpLyxwYXJzZTpmdW5jdGlvbihhKXtyZXR1cm5bRyhhWzFdKSxHKGFbMl0pLEcoYVszXSkscGFyc2VGbG9hdChhWzRdLDEwKV19fSx7cmVnZXg6LyMoW2EtZkEtRjAtOV17Mn0pKFthLWZBLUYwLTldezJ9KShbYS1mQS1GMC05XXsyfSkvLHBhcnNlOmZ1bmN0aW9uKGEpe3JldHVybltHKGFbMV0sMTYpLEcoYVsyXSwxNiksRyhhWzNdLDE2KSwxXX19LAp7cmVnZXg6L3JnYlwoXHMqKFswLTldezEsM30pXHMqLFxzKihbMC05XXsxLDN9KVxzKixccyooWzAtOV17MSwzfSlccypcKS8scGFyc2U6ZnVuY3Rpb24oYSl7cmV0dXJuW0coYVsxXSksRyhhWzJdKSxHKGFbM10pLDFdfX1dLGluaXQ6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGU7aWYoKHRoaXMuaW5wdXQ9YSkmJmEuc3RvcHMpdGhpcy5zdG9wcz1zYShhLnN0b3BzLGZ1bmN0aW9uKGEpe3JldHVybiBuZXcgdmEoYVsxXSl9KTtlbHNlIGZvcihkPXRoaXMucGFyc2Vycy5sZW5ndGg7ZC0tJiYhYzspZT10aGlzLnBhcnNlcnNbZF0sKGI9ZS5yZWdleC5leGVjKGEpKSYmKGM9ZS5wYXJzZShiKSk7dGhpcy5yZ2JhPWN8fFtdfSxnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5pbnB1dCxjPXRoaXMucmdiYSxkO3RoaXMuc3RvcHM/KGQ9QyhiKSxkLnN0b3BzPVtdLmNvbmNhdChkLnN0b3BzKSxuKHRoaXMuc3RvcHMsZnVuY3Rpb24oYixjKXtkLnN0b3BzW2NdPVtkLnN0b3BzW2NdWzBdLGIuZ2V0KGEpXX0pKToKZD1jJiYhaXNOYU4oY1swXSk/YT09PSJyZ2IifHwhYSYmY1szXT09PTE/InJnYigiK2NbMF0rIiwiK2NbMV0rIiwiK2NbMl0rIikiOmE9PT0iYSI/Y1szXToicmdiYSgiK2Muam9pbigiLCIpKyIpIjpiO3JldHVybiBkfSxicmlnaHRlbjpmdW5jdGlvbihhKXt2YXIgYixjPXRoaXMucmdiYTtpZih0aGlzLnN0b3BzKW4odGhpcy5zdG9wcyxmdW5jdGlvbihiKXtiLmJyaWdodGVuKGEpfSk7ZWxzZSBpZih0YShhKSYmYSE9PTApZm9yKGI9MDtiPDM7YisrKWNbYl0rPUcoYSoyNTUpLGNbYl08MCYmKGNbYl09MCksY1tiXT4yNTUmJihjW2JdPTI1NSk7cmV0dXJuIHRoaXN9LHNldE9wYWNpdHk6ZnVuY3Rpb24oYSl7dGhpcy5yZ2JhWzNdPWE7cmV0dXJuIHRoaXN9fTtZLnByb3RvdHlwZT17b3BhY2l0eToxLHRleHRQcm9wczoiZGlyZWN0aW9uLGZvbnRTaXplLGZvbnRXZWlnaHQsZm9udEZhbWlseSxmb250U3R5bGUsY29sb3IsbGluZUhlaWdodCx3aWR0aCx0ZXh0RGVjb3JhdGlvbix0ZXh0T3ZlcmZsb3csdGV4dFNoYWRvdyIuc3BsaXQoIiwiKSwKaW5pdDpmdW5jdGlvbihhLGIpe3RoaXMuZWxlbWVudD1iPT09InNwYW4iP2NhKGIpOkIuY3JlYXRlRWxlbWVudE5TKFFhLGIpO3RoaXMucmVuZGVyZXI9YX0sYW5pbWF0ZTpmdW5jdGlvbihhLGIsYyl7Yj1wKGIsdGhpcy5yZW5kZXJlci5nbG9iYWxBbmltYXRpb24sITApO1RhKHRoaXMpO2lmKGIpe2I9QyhiLHt9KTtpZihjKWIuY29tcGxldGU9YztmYih0aGlzLGEsYil9ZWxzZSB0aGlzLmF0dHIoYSxudWxsLGMpO3JldHVybiB0aGlzfSxjb2xvckdyYWRpZW50OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLnJlbmRlcmVyLGUsZixnLGgsaSxqLGssbCxtLG8scSxyPVtdLEE7YS5saW5lYXJHcmFkaWVudD9mPSJsaW5lYXJHcmFkaWVudCI6YS5yYWRpYWxHcmFkaWVudCYmKGY9InJhZGlhbEdyYWRpZW50Iik7aWYoZil7Zz1hW2ZdO2k9ZC5ncmFkaWVudHM7az1hLnN0b3BzO289Yy5yYWRpYWxSZWZlcmVuY2U7TWEoZykmJihhW2ZdPWc9e3gxOmdbMF0seTE6Z1sxXSx4MjpnWzJdLHkyOmdbM10sCmdyYWRpZW50VW5pdHM6InVzZXJTcGFjZU9uVXNlIn0pO2Y9PT0icmFkaWFsR3JhZGllbnQiJiZvJiYhdChnLmdyYWRpZW50VW5pdHMpJiYoaD1nLGc9QyhnLGQuZ2V0UmFkaWFsQXR0cihvLGgpLHtncmFkaWVudFVuaXRzOiJ1c2VyU3BhY2VPblVzZSJ9KSk7Zm9yKHEgaW4gZylxIT09ImlkIiYmci5wdXNoKHEsZ1txXSk7Zm9yKHEgaW4gaylyLnB1c2goa1txXSk7cj1yLmpvaW4oIiwiKTtpW3JdP289aVtyXS5hdHRyKCJpZCIpOihnLmlkPW89ImhpZ2hjaGFydHMtIitLYisrLGlbcl09aj1kLmNyZWF0ZUVsZW1lbnQoZikuYXR0cihnKS5hZGQoZC5kZWZzKSxqLnJhZEF0dHI9aCxqLnN0b3BzPVtdLG4oayxmdW5jdGlvbihhKXthWzFdLmluZGV4T2YoInJnYmEiKT09PTA/KGU9dmEoYVsxXSksbD1lLmdldCgicmdiIiksbT1lLmdldCgiYSIpKToobD1hWzFdLG09MSk7YT1kLmNyZWF0ZUVsZW1lbnQoInN0b3AiKS5hdHRyKHtvZmZzZXQ6YVswXSwic3RvcC1jb2xvciI6bCwic3RvcC1vcGFjaXR5IjptfSkuYWRkKGopOwpqLnN0b3BzLnB1c2goYSl9KSk7QT0idXJsKCIrZC51cmwrIiMiK28rIikiO2Muc2V0QXR0cmlidXRlKGIsQSk7Yy5ncmFkaWVudD1yO2EudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gQX19fSxhcHBseVRleHRTaGFkb3c6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5lbGVtZW50LGMsZD1hLmluZGV4T2YoImNvbnRyYXN0IikhPT0tMSxlPXt9LGY9dGhpcy5yZW5kZXJlci5mb3JFeHBvcnQsZz1mfHxiLnN0eWxlLnRleHRTaGFkb3chPT11JiYhSmE7aWYoZCllLnRleHRTaGFkb3c9YT1hLnJlcGxhY2UoL2NvbnRyYXN0L2csdGhpcy5yZW5kZXJlci5nZXRDb250cmFzdChiLnN0eWxlLmZpbGwpKTtpZih0Ynx8ZillLnRleHRSZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI7Zz90aGlzLmNzcyhlKToodGhpcy5mYWtlVFM9ITAsdGhpcy55U2V0dGVyPXRoaXMueFNldHRlcixjPVtdLnNsaWNlLmNhbGwoYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidHNwYW4iKSksbihhLnNwbGl0KC9ccz8sXHM/L2cpLApmdW5jdGlvbihhKXt2YXIgZD1iLmZpcnN0Q2hpbGQsZSxmLGE9YS5zcGxpdCgiICIpO2U9YVthLmxlbmd0aC0xXTsoZj1hW2EubGVuZ3RoLTJdKSYmbihjLGZ1bmN0aW9uKGEsYyl7dmFyIGc7Yz09PTAmJihhLnNldEF0dHJpYnV0ZSgieCIsYi5nZXRBdHRyaWJ1dGUoIngiKSksYz1iLmdldEF0dHJpYnV0ZSgieSIpLGEuc2V0QXR0cmlidXRlKCJ5IixjfHwwKSxjPT09bnVsbCYmYi5zZXRBdHRyaWJ1dGUoInkiLDApKTtnPWEuY2xvbmVOb2RlKDEpO1coZyx7ImNsYXNzIjoiaGlnaGNoYXJ0cy10ZXh0LXNoYWRvdyIsZmlsbDplLHN0cm9rZTplLCJzdHJva2Utb3BhY2l0eSI6MS9zKEcoZiksMyksInN0cm9rZS13aWR0aCI6Ziwic3Ryb2tlLWxpbmVqb2luIjoicm91bmQifSk7Yi5pbnNlcnRCZWZvcmUoZyxkKX0pfSkpfSxhdHRyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlPXRoaXMuZWxlbWVudCxmLGc9dGhpcyxoO3R5cGVvZiBhPT09InN0cmluZyImJmIhPT11JiYoZD1hLGE9e30sYVtkXT0KYik7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilnPSh0aGlzW2ErIkdldHRlciJdfHx0aGlzLl9kZWZhdWx0R2V0dGVyKS5jYWxsKHRoaXMsYSxlKTtlbHNle2ZvcihkIGluIGEpe2I9YVtkXTtoPSExO3RoaXMuc3ltYm9sTmFtZSYmL14oeHx5fHdpZHRofGhlaWdodHxyfHN0YXJ0fGVuZHxpbm5lclJ8YW5jaG9yWHxhbmNob3JZKS8udGVzdChkKSYmKGZ8fCh0aGlzLnN5bWJvbEF0dHIoYSksZj0hMCksaD0hMCk7aWYodGhpcy5yb3RhdGlvbiYmKGQ9PT0ieCJ8fGQ9PT0ieSIpKXRoaXMuZG9UcmFuc2Zvcm09ITA7aHx8KGg9dGhpc1tkKyJTZXR0ZXIiXXx8dGhpcy5fZGVmYXVsdFNldHRlcixoLmNhbGwodGhpcyxiLGQsZSksdGhpcy5zaGFkb3dzJiYvXih3aWR0aHxoZWlnaHR8dmlzaWJpbGl0eXx4fHl8ZHx0cmFuc2Zvcm18Y3h8Y3l8cikkLy50ZXN0KGQpJiZ0aGlzLnVwZGF0ZVNoYWRvd3MoZCxiLGgpKX1pZih0aGlzLmRvVHJhbnNmb3JtKXRoaXMudXBkYXRlVHJhbnNmb3JtKCksdGhpcy5kb1RyYW5zZm9ybT0KITF9YyYmYygpO3JldHVybiBnfSx1cGRhdGVTaGFkb3dzOmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9dGhpcy5zaGFkb3dzLGU9ZC5sZW5ndGg7ZS0tOyljLmNhbGwobnVsbCxhPT09ImhlaWdodCI/TWF0aC5tYXgoYi0oZFtlXS5jdXRIZWlnaHR8fDApLDApOmE9PT0iZCI/dGhpcy5kOmIsYSxkW2VdKX0sYWRkQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5lbGVtZW50LGM9VyhiLCJjbGFzcyIpfHwiIjtjLmluZGV4T2YoYSk9PT0tMSYmVyhiLCJjbGFzcyIsYysiICIrYSk7cmV0dXJuIHRoaXN9LHN5bWJvbEF0dHI6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcztuKCJ4LHkscixzdGFydCxlbmQsd2lkdGgsaGVpZ2h0LGlubmVyUixhbmNob3JYLGFuY2hvclkiLnNwbGl0KCIsIiksZnVuY3Rpb24oYyl7YltjXT1wKGFbY10sYltjXSl9KTtiLmF0dHIoe2Q6Yi5yZW5kZXJlci5zeW1ib2xzW2Iuc3ltYm9sTmFtZV0oYi54LGIueSxiLndpZHRoLGIuaGVpZ2h0LGIpfSl9LGNsaXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYXR0cigiY2xpcC1wYXRoIiwKYT8idXJsKCIrdGhpcy5yZW5kZXJlci51cmwrIiMiK2EuaWQrIikiOiJub25lIil9LGNyaXNwOmZ1bmN0aW9uKGEpe3ZhciBiLGM9e30sZCxlPXRoaXMuc3Ryb2tlV2lkdGh8fDA7ZD15KGUpJTIvMjthLng9VShhLnh8fHRoaXMueHx8MCkrZDthLnk9VShhLnl8fHRoaXMueXx8MCkrZDthLndpZHRoPVUoKGEud2lkdGh8fHRoaXMud2lkdGh8fDApLTIqZCk7YS5oZWlnaHQ9VSgoYS5oZWlnaHR8fHRoaXMuaGVpZ2h0fHwwKS0yKmQpO2Euc3Ryb2tlV2lkdGg9ZTtmb3IoYiBpbiBhKXRoaXNbYl0hPT1hW2JdJiYodGhpc1tiXT1jW2JdPWFbYl0pO3JldHVybiBjfSxjc3M6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5zdHlsZXMsYz17fSxkPXRoaXMuZWxlbWVudCxlLGYsZz0iIjtlPSFiO2lmKGEmJmEuY29sb3IpYS5maWxsPWEuY29sb3I7aWYoYilmb3IoZiBpbiBhKWFbZl0hPT1iW2ZdJiYoY1tmXT1hW2ZdLGU9ITApO2lmKGUpe2U9dGhpcy50ZXh0V2lkdGg9YSYmYS53aWR0aCYmZC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09CiJ0ZXh0IiYmRyhhLndpZHRoKXx8dGhpcy50ZXh0V2lkdGg7YiYmKGE9dyhiLGMpKTt0aGlzLnN0eWxlcz1hO2UmJihwYXx8IWhhJiZ0aGlzLnJlbmRlcmVyLmZvckV4cG9ydCkmJmRlbGV0ZSBhLndpZHRoO2lmKEphJiYhaGEpSSh0aGlzLmVsZW1lbnQsYSk7ZWxzZXtiPWZ1bmN0aW9uKGEsYil7cmV0dXJuIi0iK2IudG9Mb3dlckNhc2UoKX07Zm9yKGYgaW4gYSlnKz1mLnJlcGxhY2UoLyhbQS1aXSkvZyxiKSsiOiIrYVtmXSsiOyI7VyhkLCJzdHlsZSIsZyl9ZSYmdGhpcy5hZGRlZCYmdGhpcy5yZW5kZXJlci5idWlsZFRleHQodGhpcyl9cmV0dXJuIHRoaXN9LG9uOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcyxkPWMuZWxlbWVudDtlYiYmYT09PSJjbGljayI/KGQub250b3VjaHN0YXJ0PWZ1bmN0aW9uKGEpe2MudG91Y2hFdmVudEZpcmVkPWRhLm5vdygpO2EucHJldmVudERlZmF1bHQoKTtiLmNhbGwoZCxhKX0sZC5vbmNsaWNrPWZ1bmN0aW9uKGEpeyhMYS5pbmRleE9mKCJBbmRyb2lkIik9PT0KLTF8fGRhLm5vdygpLShjLnRvdWNoRXZlbnRGaXJlZHx8MCk+MTEwMCkmJmIuY2FsbChkLGEpfSk6ZFsib24iK2FdPWI7cmV0dXJuIHRoaXN9LHNldFJhZGlhbFJlZmVyZW5jZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLnJlbmRlcmVyLmdyYWRpZW50c1t0aGlzLmVsZW1lbnQuZ3JhZGllbnRdO3RoaXMuZWxlbWVudC5yYWRpYWxSZWZlcmVuY2U9YTtiJiZiLnJhZEF0dHImJmIuYW5pbWF0ZSh0aGlzLnJlbmRlcmVyLmdldFJhZGlhbEF0dHIoYSxiLnJhZEF0dHIpKTtyZXR1cm4gdGhpc30sdHJhbnNsYXRlOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuYXR0cih7dHJhbnNsYXRlWDphLHRyYW5zbGF0ZVk6Yn0pfSxpbnZlcnQ6ZnVuY3Rpb24oKXt0aGlzLmludmVydGVkPSEwO3RoaXMudXBkYXRlVHJhbnNmb3JtKCk7cmV0dXJuIHRoaXN9LHVwZGF0ZVRyYW5zZm9ybTpmdW5jdGlvbigpe3ZhciBhPXRoaXMudHJhbnNsYXRlWHx8MCxiPXRoaXMudHJhbnNsYXRlWXx8MCxjPXRoaXMuc2NhbGVYLApkPXRoaXMuc2NhbGVZLGU9dGhpcy5pbnZlcnRlZCxmPXRoaXMucm90YXRpb24sZz10aGlzLmVsZW1lbnQ7ZSYmKGErPXRoaXMuYXR0cigid2lkdGgiKSxiKz10aGlzLmF0dHIoImhlaWdodCIpKTthPVsidHJhbnNsYXRlKCIrYSsiLCIrYisiKSJdO2U/YS5wdXNoKCJyb3RhdGUoOTApIHNjYWxlKC0xLDEpIik6ZiYmYS5wdXNoKCJyb3RhdGUoIitmKyIgIisoZy5nZXRBdHRyaWJ1dGUoIngiKXx8MCkrIiAiKyhnLmdldEF0dHJpYnV0ZSgieSIpfHwwKSsiKSIpOyh0KGMpfHx0KGQpKSYmYS5wdXNoKCJzY2FsZSgiK3AoYywxKSsiICIrcChkLDEpKyIpIik7YS5sZW5ndGgmJmcuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLGEuam9pbigiICIpKX0sdG9Gcm9udDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZWxlbWVudDthLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoYSk7cmV0dXJuIHRoaXN9LGFsaWduOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoPXt9O2U9dGhpcy5yZW5kZXJlcjtmPWUuYWxpZ25lZE9iamVjdHM7CmlmKGEpe2lmKHRoaXMuYWxpZ25PcHRpb25zPWEsdGhpcy5hbGlnbkJ5VHJhbnNsYXRlPWIsIWN8fERhKGMpKXRoaXMuYWxpZ25Ubz1kPWN8fCJyZW5kZXJlciIsQWEoZix0aGlzKSxmLnB1c2godGhpcyksYz1udWxsfWVsc2UgYT10aGlzLmFsaWduT3B0aW9ucyxiPXRoaXMuYWxpZ25CeVRyYW5zbGF0ZSxkPXRoaXMuYWxpZ25UbztjPXAoYyxlW2RdLGUpO2Q9YS5hbGlnbjtlPWEudmVydGljYWxBbGlnbjtmPShjLnh8fDApKyhhLnh8fDApO2c9KGMueXx8MCkrKGEueXx8MCk7aWYoZD09PSJyaWdodCJ8fGQ9PT0iY2VudGVyIilmKz0oYy53aWR0aC0oYS53aWR0aHx8MCkpL3tyaWdodDoxLGNlbnRlcjoyfVtkXTtoW2I/InRyYW5zbGF0ZVgiOiJ4Il09eShmKTtpZihlPT09ImJvdHRvbSJ8fGU9PT0ibWlkZGxlIilnKz0oYy5oZWlnaHQtKGEuaGVpZ2h0fHwwKSkvKHtib3R0b206MSxtaWRkbGU6Mn1bZV18fDEpO2hbYj8idHJhbnNsYXRlWSI6InkiXT15KGcpO3RoaXNbdGhpcy5wbGFjZWQ/CiJhbmltYXRlIjoiYXR0ciJdKGgpO3RoaXMucGxhY2VkPSEwO3RoaXMuYWxpZ25BdHRyPWg7cmV0dXJuIHRoaXN9LGdldEJCb3g6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPXRoaXMucmVuZGVyZXIsZSxmLGcsaD10aGlzLmVsZW1lbnQsaT10aGlzLnN0eWxlcztlPXRoaXMudGV4dFN0cjt2YXIgaixrPWguc3R5bGUsbCxtPWQuY2FjaGUsbz1kLmNhY2hlS2V5cyxxO2Y9cChiLHRoaXMucm90YXRpb24pO2c9ZipvYTtlIT09dSYmKHE9WyIiLGZ8fDAsaSYmaS5mb250U2l6ZSxoLnN0eWxlLndpZHRoXS5qb2luKCIsIikscT1lPT09IiJ8fGFjLnRlc3QoZSk/Im51bToiK2UudG9TdHJpbmcoKS5sZW5ndGgrcTplK3EpO3EmJiFhJiYoYz1tW3FdKTtpZighYyl7aWYoaC5uYW1lc3BhY2VVUkk9PT1RYXx8ZC5mb3JFeHBvcnQpe3RyeXtsPXRoaXMuZmFrZVRTJiZmdW5jdGlvbihhKXtuKGgucXVlcnlTZWxlY3RvckFsbCgiLmhpZ2hjaGFydHMtdGV4dC1zaGFkb3ciKSxmdW5jdGlvbihiKXtiLnN0eWxlLmRpc3BsYXk9CmF9KX0sWmEmJmsudGV4dFNoYWRvdz8oaj1rLnRleHRTaGFkb3csay50ZXh0U2hhZG93PSIiKTpsJiZsKCJub25lIiksYz1oLmdldEJCb3g/dyh7fSxoLmdldEJCb3goKSk6e3dpZHRoOmgub2Zmc2V0V2lkdGgsaGVpZ2h0Omgub2Zmc2V0SGVpZ2h0fSxqP2sudGV4dFNoYWRvdz1qOmwmJmwoIiIpfWNhdGNoKHIpe31pZighY3x8Yy53aWR0aDwwKWM9e3dpZHRoOjAsaGVpZ2h0OjB9fWVsc2UgYz10aGlzLmh0bWxHZXRCQm94KCk7aWYoZC5pc1NWRyl7ZD1jLndpZHRoO2U9Yy5oZWlnaHQ7aWYoSmEmJmkmJmkuZm9udFNpemU9PT0iMTFweCImJmUudG9QcmVjaXNpb24oMyk9PT0iMTYuOSIpYy5oZWlnaHQ9ZT0xNDtpZihmKWMud2lkdGg9UShlKmlhKGcpKStRKGQqYWEoZykpLGMuaGVpZ2h0PVEoZSphYShnKSkrUShkKmlhKGcpKX1pZihxKXtmb3IoO28ubGVuZ3RoPjI1MDspZGVsZXRlIG1bby5zaGlmdCgpXTttW3FdfHxvLnB1c2gocSk7bVtxXT1jfX1yZXR1cm4gY30sc2hvdzpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hdHRyKHt2aXNpYmlsaXR5OmE/CiJpbmhlcml0IjoidmlzaWJsZSJ9KX0saGlkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmF0dHIoe3Zpc2liaWxpdHk6ImhpZGRlbiJ9KX0sZmFkZU91dDpmdW5jdGlvbihhKXt2YXIgYj10aGlzO2IuYW5pbWF0ZSh7b3BhY2l0eTowfSx7ZHVyYXRpb246YXx8MTUwLGNvbXBsZXRlOmZ1bmN0aW9uKCl7Yi5hdHRyKHt5Oi05OTk5fSl9fSl9LGFkZDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLnJlbmRlcmVyLGM9dGhpcy5lbGVtZW50LGQ7aWYoYSl0aGlzLnBhcmVudEdyb3VwPWE7dGhpcy5wYXJlbnRJbnZlcnRlZD1hJiZhLmludmVydGVkO3RoaXMudGV4dFN0ciE9PXZvaWQgMCYmYi5idWlsZFRleHQodGhpcyk7dGhpcy5hZGRlZD0hMDtpZighYXx8YS5oYW5kbGVafHx0aGlzLnpJbmRleClkPXRoaXMuekluZGV4U2V0dGVyKCk7ZHx8KGE/YS5lbGVtZW50OmIuYm94KS5hcHBlbmRDaGlsZChjKTtpZih0aGlzLm9uQWRkKXRoaXMub25BZGQoKTtyZXR1cm4gdGhpc30sc2FmZVJlbW92ZUNoaWxkOmZ1bmN0aW9uKGEpe3ZhciBiPQphLnBhcmVudE5vZGU7YiYmYi5yZW1vdmVDaGlsZChhKX0sZGVzdHJveTpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1hLmVsZW1lbnR8fHt9LGM9YS5zaGFkb3dzLGQ9YS5yZW5kZXJlci5pc1NWRyYmYi5ub2RlTmFtZT09PSJTUEFOIiYmYS5wYXJlbnRHcm91cCxlLGY7Yi5vbmNsaWNrPWIub25tb3VzZW91dD1iLm9ubW91c2VvdmVyPWIub25tb3VzZW1vdmU9Yi5wb2ludD1udWxsO1RhKGEpO2lmKGEuY2xpcFBhdGgpYS5jbGlwUGF0aD1hLmNsaXBQYXRoLmRlc3Ryb3koKTtpZihhLnN0b3BzKXtmb3IoZj0wO2Y8YS5zdG9wcy5sZW5ndGg7ZisrKWEuc3RvcHNbZl09YS5zdG9wc1tmXS5kZXN0cm95KCk7YS5zdG9wcz1udWxsfWEuc2FmZVJlbW92ZUNoaWxkKGIpO2ZvcihjJiZuKGMsZnVuY3Rpb24oYil7YS5zYWZlUmVtb3ZlQ2hpbGQoYil9KTtkJiZkLmRpdiYmZC5kaXYuY2hpbGROb2Rlcy5sZW5ndGg9PT0wOyliPWQucGFyZW50R3JvdXAsYS5zYWZlUmVtb3ZlQ2hpbGQoZC5kaXYpLGRlbGV0ZSBkLmRpdiwKZD1iO2EuYWxpZ25UbyYmQWEoYS5yZW5kZXJlci5hbGlnbmVkT2JqZWN0cyxhKTtmb3IoZSBpbiBhKWRlbGV0ZSBhW2VdO3JldHVybiBudWxsfSxzaGFkb3c6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVtdLGUsZixnPXRoaXMuZWxlbWVudCxoLGksaixrO2lmKGEpe2k9cChhLndpZHRoLDMpO2o9KGEub3BhY2l0eXx8MC4xNSkvaTtrPXRoaXMucGFyZW50SW52ZXJ0ZWQ/IigtMSwtMSkiOiIoIitwKGEub2Zmc2V0WCwxKSsiLCAiK3AoYS5vZmZzZXRZLDEpKyIpIjtmb3IoZT0xO2U8PWk7ZSsrKXtmPWcuY2xvbmVOb2RlKDApO2g9aSoyKzEtMiplO1coZix7aXNTaGFkb3c6InRydWUiLHN0cm9rZTphLmNvbG9yfHwiYmxhY2siLCJzdHJva2Utb3BhY2l0eSI6aiplLCJzdHJva2Utd2lkdGgiOmgsdHJhbnNmb3JtOiJ0cmFuc2xhdGUiK2ssZmlsbDoibm9uZSJ9KTtpZihjKVcoZiwiaGVpZ2h0IixzKFcoZiwiaGVpZ2h0IiktaCwwKSksZi5jdXRIZWlnaHQ9aDtiP2IuZWxlbWVudC5hcHBlbmRDaGlsZChmKToKZy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShmLGcpO2QucHVzaChmKX10aGlzLnNoYWRvd3M9ZH1yZXR1cm4gdGhpc30seEdldHRlcjpmdW5jdGlvbihhKXt0aGlzLmVsZW1lbnQubm9kZU5hbWU9PT0iY2lyY2xlIiYmKGE9e3g6ImN4Iix5OiJjeSJ9W2FdfHxhKTtyZXR1cm4gdGhpcy5fZGVmYXVsdEdldHRlcihhKX0sX2RlZmF1bHRHZXR0ZXI6ZnVuY3Rpb24oYSl7YT1wKHRoaXNbYV0sdGhpcy5lbGVtZW50P3RoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoYSk6bnVsbCwwKTsvXltcLTAtOVwuXSskLy50ZXN0KGEpJiYoYT1wYXJzZUZsb2F0KGEpKTtyZXR1cm4gYX0sZFNldHRlcjpmdW5jdGlvbihhLGIsYyl7YSYmYS5qb2luJiYoYT1hLmpvaW4oIiAiKSk7LyhOYU58IHsyfXxeJCkvLnRlc3QoYSkmJihhPSJNIDAgMCIpO2Muc2V0QXR0cmlidXRlKGIsYSk7dGhpc1tiXT1hfSxkYXNoc3R5bGVTZXR0ZXI6ZnVuY3Rpb24oYSl7dmFyIGI7aWYoYT1hJiZhLnRvTG93ZXJDYXNlKCkpe2E9CmEucmVwbGFjZSgic2hvcnRkYXNoZG90ZG90IiwiMywxLDEsMSwxLDEsIikucmVwbGFjZSgic2hvcnRkYXNoZG90IiwiMywxLDEsMSIpLnJlcGxhY2UoInNob3J0ZG90IiwiMSwxLCIpLnJlcGxhY2UoInNob3J0ZGFzaCIsIjMsMSwiKS5yZXBsYWNlKCJsb25nZGFzaCIsIjgsMywiKS5yZXBsYWNlKC9kb3QvZywiMSwzLCIpLnJlcGxhY2UoImRhc2giLCI0LDMsIikucmVwbGFjZSgvLCQvLCIiKS5zcGxpdCgiLCIpO2ZvcihiPWEubGVuZ3RoO2ItLTspYVtiXT1HKGFbYl0pKnRoaXNbInN0cm9rZS13aWR0aCJdO2E9YS5qb2luKCIsIikucmVwbGFjZSgiTmFOIiwibm9uZSIpO3RoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoInN0cm9rZS1kYXNoYXJyYXkiLGEpfX0sYWxpZ25TZXR0ZXI6ZnVuY3Rpb24oYSl7dGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgidGV4dC1hbmNob3IiLHtsZWZ0OiJzdGFydCIsY2VudGVyOiJtaWRkbGUiLHJpZ2h0OiJlbmQifVthXSl9LG9wYWNpdHlTZXR0ZXI6ZnVuY3Rpb24oYSwKYixjKXt0aGlzW2JdPWE7Yy5zZXRBdHRyaWJ1dGUoYixhKX0sdGl0bGVTZXR0ZXI6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5lbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0aXRsZSIpWzBdO2J8fChiPUIuY3JlYXRlRWxlbWVudE5TKFFhLCJ0aXRsZSIpLHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChiKSk7Yi5hcHBlbmRDaGlsZChCLmNyZWF0ZVRleHROb2RlKFN0cmluZyhwKGEpLCIiKS5yZXBsYWNlKC88W14+XSo+L2csIiIpKSl9LHRleHRTZXR0ZXI6ZnVuY3Rpb24oYSl7aWYoYSE9PXRoaXMudGV4dFN0cilkZWxldGUgdGhpcy5iQm94LHRoaXMudGV4dFN0cj1hLHRoaXMuYWRkZWQmJnRoaXMucmVuZGVyZXIuYnVpbGRUZXh0KHRoaXMpfSxmaWxsU2V0dGVyOmZ1bmN0aW9uKGEsYixjKXt0eXBlb2YgYT09PSJzdHJpbmciP2Muc2V0QXR0cmlidXRlKGIsYSk6YSYmdGhpcy5jb2xvckdyYWRpZW50KGEsYixjKX0sdmlzaWJpbGl0eVNldHRlcjpmdW5jdGlvbihhLGIsYyl7YT09PQoiaW5oZXJpdCI/Yy5yZW1vdmVBdHRyaWJ1dGUoYik6Yy5zZXRBdHRyaWJ1dGUoYixhKX0sekluZGV4U2V0dGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5yZW5kZXJlcixkPXRoaXMucGFyZW50R3JvdXAsYz0oZHx8YykuZWxlbWVudHx8Yy5ib3gsZSxmLGc9dGhpcy5lbGVtZW50LGg7ZT10aGlzLmFkZGVkO3ZhciBpO3QoYSkmJihnLnNldEF0dHJpYnV0ZShiLGEpLGE9K2EsdGhpc1tiXT09PWEmJihlPSExKSx0aGlzW2JdPWEpO2lmKGUpe2lmKChhPXRoaXMuekluZGV4KSYmZClkLmhhbmRsZVo9ITA7ZD1jLmNoaWxkTm9kZXM7Zm9yKGk9MDtpPGQubGVuZ3RoJiYhaDtpKyspaWYoZT1kW2ldLGY9VyhlLCJ6SW5kZXgiKSxlIT09ZyYmKEcoZik+YXx8IXQoYSkmJnQoZikpKWMuaW5zZXJ0QmVmb3JlKGcsZSksaD0hMDtofHxjLmFwcGVuZENoaWxkKGcpfXJldHVybiBofSxfZGVmYXVsdFNldHRlcjpmdW5jdGlvbihhLGIsYyl7Yy5zZXRBdHRyaWJ1dGUoYixhKX19O1kucHJvdG90eXBlLnlHZXR0ZXI9ClkucHJvdG90eXBlLnhHZXR0ZXI7WS5wcm90b3R5cGUudHJhbnNsYXRlWFNldHRlcj1ZLnByb3RvdHlwZS50cmFuc2xhdGVZU2V0dGVyPVkucHJvdG90eXBlLnJvdGF0aW9uU2V0dGVyPVkucHJvdG90eXBlLnZlcnRpY2FsQWxpZ25TZXR0ZXI9WS5wcm90b3R5cGUuc2NhbGVYU2V0dGVyPVkucHJvdG90eXBlLnNjYWxlWVNldHRlcj1mdW5jdGlvbihhLGIpe3RoaXNbYl09YTt0aGlzLmRvVHJhbnNmb3JtPSEwfTtZLnByb3RvdHlwZVsic3Ryb2tlLXdpZHRoU2V0dGVyIl09WS5wcm90b3R5cGUuc3Ryb2tlU2V0dGVyPWZ1bmN0aW9uKGEsYixjKXt0aGlzW2JdPWE7aWYodGhpcy5zdHJva2UmJnRoaXNbInN0cm9rZS13aWR0aCJdKXRoaXMuc3Ryb2tlV2lkdGg9dGhpc1sic3Ryb2tlLXdpZHRoIl0sWS5wcm90b3R5cGUuZmlsbFNldHRlci5jYWxsKHRoaXMsdGhpcy5zdHJva2UsInN0cm9rZSIsYyksYy5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsdGhpc1sic3Ryb2tlLXdpZHRoIl0pLAp0aGlzLmhhc1N0cm9rZT0hMDtlbHNlIGlmKGI9PT0ic3Ryb2tlLXdpZHRoIiYmYT09PTAmJnRoaXMuaGFzU3Ryb2tlKWMucmVtb3ZlQXR0cmlidXRlKCJzdHJva2UiKSx0aGlzLmhhc1N0cm9rZT0hMX07dmFyIHhhPWZ1bmN0aW9uKCl7dGhpcy5pbml0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07eGEucHJvdG90eXBlPXtFbGVtZW50OlksaW5pdDpmdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGcsZD10aGlzLmNyZWF0ZUVsZW1lbnQoInN2ZyIpLmF0dHIoe3ZlcnNpb246IjEuMSJ9KS5jc3ModGhpcy5nZXRTdHlsZShkKSk7Zz1kLmVsZW1lbnQ7YS5hcHBlbmRDaGlsZChnKTthLmlubmVySFRNTC5pbmRleE9mKCJ4bWxucyIpPT09LTEmJlcoZywieG1sbnMiLFFhKTt0aGlzLmlzU1ZHPSEwO3RoaXMuYm94PWc7dGhpcy5ib3hXcmFwcGVyPWQ7dGhpcy5hbGlnbmVkT2JqZWN0cz1bXTt0aGlzLnVybD0oWmF8fHRiKSYmQi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYmFzZSIpLmxlbmd0aD9KLmxvY2F0aW9uLmhyZWYucmVwbGFjZSgvIy4qPyQvLAoiIikucmVwbGFjZSgvKFtcKCdcKV0pL2csIlxcJDEiKS5yZXBsYWNlKC8gL2csIiUyMCIpOiIiO3RoaXMuY3JlYXRlRWxlbWVudCgiZGVzYyIpLmFkZCgpLmVsZW1lbnQuYXBwZW5kQ2hpbGQoQi5jcmVhdGVUZXh0Tm9kZSgiQ3JlYXRlZCB3aXRoIEhpZ2hzdG9jayA0LjIuMyIpKTt0aGlzLmRlZnM9dGhpcy5jcmVhdGVFbGVtZW50KCJkZWZzIikuYWRkKCk7dGhpcy5hbGxvd0hUTUw9Zjt0aGlzLmZvckV4cG9ydD1lO3RoaXMuZ3JhZGllbnRzPXt9O3RoaXMuY2FjaGU9e307dGhpcy5jYWNoZUtleXM9W107dGhpcy5pbWdDb3VudD0wO3RoaXMuc2V0U2l6ZShiLGMsITEpO3ZhciBoO2lmKFphJiZhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCl0aGlzLnN1YlBpeGVsRml4PWI9ZnVuY3Rpb24oKXtJKGEse2xlZnQ6MCx0b3A6MH0pO2g9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtJKGEse2xlZnQ6RmEoaC5sZWZ0KS1oLmxlZnQrInB4Iix0b3A6RmEoaC50b3ApLWgudG9wKyJweCJ9KX0sYigpLApEKEosInJlc2l6ZSIsYil9LGdldFN0eWxlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnN0eWxlPXcoe2ZvbnRGYW1pbHk6JyJMdWNpZGEgR3JhbmRlIiwgIkx1Y2lkYSBTYW5zIFVuaWNvZGUiLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJyxmb250U2l6ZToiMTJweCJ9LGEpfSxpc0hpZGRlbjpmdW5jdGlvbigpe3JldHVybiF0aGlzLmJveFdyYXBwZXIuZ2V0QkJveCgpLndpZHRofSxkZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kZWZzO3RoaXMuYm94PW51bGw7dGhpcy5ib3hXcmFwcGVyPXRoaXMuYm94V3JhcHBlci5kZXN0cm95KCk7UGEodGhpcy5ncmFkaWVudHN8fHt9KTt0aGlzLmdyYWRpZW50cz1udWxsO2lmKGEpdGhpcy5kZWZzPWEuZGVzdHJveSgpO3RoaXMuc3ViUGl4ZWxGaXgmJlIoSiwicmVzaXplIix0aGlzLnN1YlBpeGVsRml4KTtyZXR1cm4gdGhpcy5hbGlnbmVkT2JqZWN0cz1udWxsfSxjcmVhdGVFbGVtZW50OmZ1bmN0aW9uKGEpe3ZhciBiPW5ldyB0aGlzLkVsZW1lbnQ7CmIuaW5pdCh0aGlzLGEpO3JldHVybiBifSxkcmF3OmZ1bmN0aW9uKCl7fSxnZXRSYWRpYWxBdHRyOmZ1bmN0aW9uKGEsYil7cmV0dXJue2N4OmFbMF0tYVsyXS8yK2IuY3gqYVsyXSxjeTphWzFdLWFbMl0vMitiLmN5KmFbMl0scjpiLnIqYVsyXX19LGJ1aWxkVGV4dDpmdW5jdGlvbihhKXtmb3IodmFyIGI9YS5lbGVtZW50LGM9dGhpcyxkPWMuZm9yRXhwb3J0LGU9cChhLnRleHRTdHIsIiIpLnRvU3RyaW5nKCksZj1lLmluZGV4T2YoIjwiKSE9PS0xLGc9Yi5jaGlsZE5vZGVzLGgsaSxqPVcoYiwieCIpLGs9YS5zdHlsZXMsbD1hLnRleHRXaWR0aCxtPWsmJmsubGluZUhlaWdodCxvPWsmJmsudGV4dFNoYWRvdyxxPWsmJmsudGV4dE92ZXJmbG93PT09ImVsbGlwc2lzIixyPWcubGVuZ3RoLEE9bCYmIWEuYWRkZWQmJnRoaXMuYm94LFQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG0/RyhtKTpjLmZvbnRNZXRyaWNzKC8ocHh8ZW0pJC8udGVzdChhJiZhLnN0eWxlLmZvbnRTaXplKT9hLnN0eWxlLmZvbnRTaXplOgprJiZrLmZvbnRTaXplfHxjLnN0eWxlLmZvbnRTaXplfHwxMixhKS5ofSx2PWZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoLyZsdDsvZywiPCIpLnJlcGxhY2UoLyZndDsvZywiPiIpfTtyLS07KWIucmVtb3ZlQ2hpbGQoZ1tyXSk7IWYmJiFvJiYhcSYmZS5pbmRleE9mKCIgIik9PT0tMT9iLmFwcGVuZENoaWxkKEIuY3JlYXRlVGV4dE5vZGUodihlKSkpOihoPS88LipzdHlsZT0iKFteIl0rKSIuKj4vLGk9LzwuKmhyZWY9IihodHRwW14iXSspIi4qPi8sQSYmQS5hcHBlbmRDaGlsZChiKSxlPWY/ZS5yZXBsYWNlKC88KGJ8c3Ryb25nKT4vZywnPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPicpLnJlcGxhY2UoLzwoaXxlbSk+L2csJzxzcGFuIHN0eWxlPSJmb250LXN0eWxlOml0YWxpYyI+JykucmVwbGFjZSgvPGEvZywiPHNwYW4iKS5yZXBsYWNlKC88XC8oYnxzdHJvbmd8aXxlbXxhKT4vZywiPC9zcGFuPiIpLnNwbGl0KC88YnIuKj8+L2cpOltlXSxlW2UubGVuZ3RoLTFdPT09CiIiJiZlLnBvcCgpLG4oZSxmdW5jdGlvbihlLGYpe3ZhciBnLG09MCxlPWUucmVwbGFjZSgvPHNwYW4vZywifHx8PHNwYW4iKS5yZXBsYWNlKC88XC9zcGFuPi9nLCI8L3NwYW4+fHx8Iik7Zz1lLnNwbGl0KCJ8fHwiKTtuKGcsZnVuY3Rpb24oZSl7aWYoZSE9PSIifHxnLmxlbmd0aD09PTEpe3ZhciBvPXt9LHI9Qi5jcmVhdGVFbGVtZW50TlMoUWEsInRzcGFuIiksQTtoLnRlc3QoZSkmJihBPWUubWF0Y2goaClbMV0ucmVwbGFjZSgvKDt8IHxeKWNvbG9yKFsgOl0pLywiJDFmaWxsJDIiKSxXKHIsInN0eWxlIixBKSk7aS50ZXN0KGUpJiYhZCYmKFcociwib25jbGljayIsJ2xvY2F0aW9uLmhyZWY9IicrZS5tYXRjaChpKVsxXSsnIicpLEkocix7Y3Vyc29yOiJwb2ludGVyIn0pKTtlPXYoZS5yZXBsYWNlKC88KC58XG4pKj8+L2csIiIpfHwiICIpO2lmKGUhPT0iICIpe3IuYXBwZW5kQ2hpbGQoQi5jcmVhdGVUZXh0Tm9kZShlKSk7aWYobSlvLmR4PTA7ZWxzZSBpZihmJiZqIT09bnVsbClvLng9Cmo7VyhyLG8pO2IuYXBwZW5kQ2hpbGQocik7IW0mJmYmJighaGEmJmQmJkkocix7ZGlzcGxheToiYmxvY2sifSksVyhyLCJkeSIsVChyKSkpO2lmKGwpe2Zvcih2YXIgbz1lLnJlcGxhY2UoLyhbXlxeXSktL2csIiQxLSAiKS5zcGxpdCgiICIpLHA9Zy5sZW5ndGg+MXx8Znx8by5sZW5ndGg+MSYmay53aGl0ZVNwYWNlIT09Im5vd3JhcCIseCxuLHQsdT1bXSxzPVQocikseT0xLHc9YS5yb3RhdGlvbixDPWUsej1DLmxlbmd0aDsocHx8cSkmJihvLmxlbmd0aHx8dS5sZW5ndGgpOylhLnJvdGF0aW9uPTAseD1hLmdldEJCb3goITApLHQ9eC53aWR0aCwhaGEmJmMuZm9yRXhwb3J0JiYodD1jLm1lYXN1cmVTcGFuV2lkdGgoci5maXJzdENoaWxkLmRhdGEsYS5zdHlsZXMpKSx4PXQ+bCxuPT09dm9pZCAwJiYobj14KSxxJiZuPyh6Lz0yLEM9PT0iInx8IXgmJno8MC41P289W106KHgmJihuPSEwKSxDPWUuc3Vic3RyaW5nKDAsQy5sZW5ndGgrKHg/LTE6MSkqRmEoeikpLG89W0MrKGw+Mz8iXHUyMDI2IjoKIiIpXSxyLnJlbW92ZUNoaWxkKHIuZmlyc3RDaGlsZCkpKToheHx8by5sZW5ndGg9PT0xPyhvPXUsdT1bXSxvLmxlbmd0aCYmKHkrKyxyPUIuY3JlYXRlRWxlbWVudE5TKFFhLCJ0c3BhbiIpLFcocix7ZHk6cyx4Omp9KSxBJiZXKHIsInN0eWxlIixBKSxiLmFwcGVuZENoaWxkKHIpKSx0PmwmJihsPXQpKTooci5yZW1vdmVDaGlsZChyLmZpcnN0Q2hpbGQpLHUudW5zaGlmdChvLnBvcCgpKSksby5sZW5ndGgmJnIuYXBwZW5kQ2hpbGQoQi5jcmVhdGVUZXh0Tm9kZShvLmpvaW4oIiAiKS5yZXBsYWNlKC8tIC9nLCItIikpKTtuJiZhLmF0dHIoInRpdGxlIixhLnRleHRTdHIpO2Eucm90YXRpb249d31tKyt9fX0pfSksQSYmQS5yZW1vdmVDaGlsZChiKSxvJiZhLmFwcGx5VGV4dFNoYWRvdyYmYS5hcHBseVRleHRTaGFkb3cobykpfSxnZXRDb250cmFzdDpmdW5jdGlvbihhKXthPXZhKGEpLnJnYmE7cmV0dXJuIGFbMF0rYVsxXSthWzJdPjM4ND8iIzAwMDAwMCI6IiNGRkZGRkYifSxidXR0b246ZnVuY3Rpb24oYSwKYixjLGQsZSxmLGcsaCxpKXt2YXIgaj10aGlzLmxhYmVsKGEsYixjLGksbnVsbCxudWxsLG51bGwsbnVsbCwiYnV0dG9uIiksaz0wLGwsbSxvLHEscixBLGE9e3gxOjAseTE6MCx4MjowLHkyOjF9LGU9Qyh7InN0cm9rZS13aWR0aCI6MSxzdHJva2U6IiNDQ0NDQ0MiLGZpbGw6e2xpbmVhckdyYWRpZW50OmEsc3RvcHM6W1swLCIjRkVGRUZFIl0sWzEsIiNGNkY2RjYiXV19LHI6MixwYWRkaW5nOjUsc3R5bGU6e2NvbG9yOiJibGFjayJ9fSxlKTtvPWUuc3R5bGU7ZGVsZXRlIGUuc3R5bGU7Zj1DKGUse3N0cm9rZToiIzY4QSIsZmlsbDp7bGluZWFyR3JhZGllbnQ6YSxzdG9wczpbWzAsIiNGRkYiXSxbMSwiI0FDRiJdXX19LGYpO3E9Zi5zdHlsZTtkZWxldGUgZi5zdHlsZTtnPUMoZSx7c3Ryb2tlOiIjNjhBIixmaWxsOntsaW5lYXJHcmFkaWVudDphLHN0b3BzOltbMCwiIzlCRCJdLFsxLCIjQ0RGIl1dfX0sZyk7cj1nLnN0eWxlO2RlbGV0ZSBnLnN0eWxlO2g9QyhlLHtzdHlsZTp7Y29sb3I6IiNDQ0MifX0sCmgpO0E9aC5zdHlsZTtkZWxldGUgaC5zdHlsZTtEKGouZWxlbWVudCxKYT8ibW91c2VvdmVyIjoibW91c2VlbnRlciIsZnVuY3Rpb24oKXtrIT09MyYmai5hdHRyKGYpLmNzcyhxKX0pO0Qoai5lbGVtZW50LEphPyJtb3VzZW91dCI6Im1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7ayE9PTMmJihsPVtlLGYsZ11ba10sbT1bbyxxLHJdW2tdLGouYXR0cihsKS5jc3MobSkpfSk7ai5zZXRTdGF0ZT1mdW5jdGlvbihhKXsoai5zdGF0ZT1rPWEpP2E9PT0yP2ouYXR0cihnKS5jc3Mocik6YT09PTMmJmouYXR0cihoKS5jc3MoQSk6ai5hdHRyKGUpLmNzcyhvKX07cmV0dXJuIGoub24oImNsaWNrIixmdW5jdGlvbihhKXtrIT09MyYmZC5jYWxsKGosYSl9KS5hdHRyKGUpLmNzcyh3KHtjdXJzb3I6ImRlZmF1bHQifSxvKSl9LGNyaXNwTGluZTpmdW5jdGlvbihhLGIpe2FbMV09PT1hWzRdJiYoYVsxXT1hWzRdPXkoYVsxXSktYiUyLzIpO2FbMl09PT1hWzVdJiYoYVsyXT1hWzVdPXkoYVsyXSkrYiUyLwoyKTtyZXR1cm4gYX0scGF0aDpmdW5jdGlvbihhKXt2YXIgYj17ZmlsbDoibm9uZSJ9O01hKGEpP2IuZD1hOmZhKGEpJiZ3KGIsYSk7cmV0dXJuIHRoaXMuY3JlYXRlRWxlbWVudCgicGF0aCIpLmF0dHIoYil9LGNpcmNsZTpmdW5jdGlvbihhLGIsYyl7YT1mYShhKT9hOnt4OmEseTpiLHI6Y307Yj10aGlzLmNyZWF0ZUVsZW1lbnQoImNpcmNsZSIpO2IueFNldHRlcj1iLnlTZXR0ZXI9ZnVuY3Rpb24oYSxiLGMpe2Muc2V0QXR0cmlidXRlKCJjIitiLGEpfTtyZXR1cm4gYi5hdHRyKGEpfSxhcmM6ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2lmKGZhKGEpKWI9YS55LGM9YS5yLGQ9YS5pbm5lclIsZT1hLnN0YXJ0LGY9YS5lbmQsYT1hLng7YT10aGlzLnN5bWJvbCgiYXJjIixhfHwwLGJ8fDAsY3x8MCxjfHwwLHtpbm5lclI6ZHx8MCxzdGFydDplfHwwLGVuZDpmfHwwfSk7YS5yPWM7cmV0dXJuIGF9LHJlY3Q6ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBlPWZhKGEpP2EucjplLGc9dGhpcy5jcmVhdGVFbGVtZW50KCJyZWN0IiksCmE9ZmEoYSk/YTphPT09dT97fTp7eDphLHk6Yix3aWR0aDpzKGMsMCksaGVpZ2h0OnMoZCwwKX07aWYoZiE9PXUpZy5zdHJva2VXaWR0aD1mLGE9Zy5jcmlzcChhKTtpZihlKWEucj1lO2cuclNldHRlcj1mdW5jdGlvbihhLGIsYyl7VyhjLHtyeDphLHJ5OmF9KX07cmV0dXJuIGcuYXR0cihhKX0sc2V0U2l6ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5hbGlnbmVkT2JqZWN0cyxlPWQubGVuZ3RoO3RoaXMud2lkdGg9YTt0aGlzLmhlaWdodD1iO2Zvcih0aGlzLmJveFdyYXBwZXJbcChjLCEwKT8iYW5pbWF0ZSI6ImF0dHIiXSh7d2lkdGg6YSxoZWlnaHQ6Yn0pO2UtLTspZFtlXS5hbGlnbigpfSxnOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY3JlYXRlRWxlbWVudCgiZyIpO3JldHVybiB0KGEpP2IuYXR0cih7ImNsYXNzIjoiaGlnaGNoYXJ0cy0iK2F9KTpifSxpbWFnZTpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPXtwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIn07YXJndW1lbnRzLmxlbmd0aD4KMSYmdyhmLHt4OmIseTpjLHdpZHRoOmQsaGVpZ2h0OmV9KTtmPXRoaXMuY3JlYXRlRWxlbWVudCgiaW1hZ2UiKS5hdHRyKGYpO2YuZWxlbWVudC5zZXRBdHRyaWJ1dGVOUz9mLmVsZW1lbnQuc2V0QXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJocmVmIixhKTpmLmVsZW1lbnQuc2V0QXR0cmlidXRlKCJoYy1zdmctaHJlZiIsYSk7cmV0dXJuIGZ9LHN5bWJvbDpmdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGc9dGhpcyxoLGk9dGhpcy5zeW1ib2xzW2FdLGk9aSYmaSh5KGIpLHkoYyksZCxlLGYpLGo9L151cmxcKCguKj8pXCkkLyxrLGw7aWYoaSloPXRoaXMucGF0aChpKSx3KGgse3N5bWJvbE5hbWU6YSx4OmIseTpjLHdpZHRoOmQsaGVpZ2h0OmV9KSxmJiZ3KGgsZik7ZWxzZSBpZihqLnRlc3QoYSkpbD1mdW5jdGlvbihhLGIpe2EuZWxlbWVudCYmKGEuYXR0cih7d2lkdGg6YlswXSxoZWlnaHQ6YlsxXX0pLGEuYWxpZ25CeVRyYW5zbGF0ZXx8YS50cmFuc2xhdGUoeSgoZC0KYlswXSkvMikseSgoZS1iWzFdKS8yKSkpfSxrPWEubWF0Y2goailbMV0sYT1XYltrXXx8ZiYmZi53aWR0aCYmZi5oZWlnaHQmJltmLndpZHRoLGYuaGVpZ2h0XSxoPXRoaXMuaW1hZ2UoaykuYXR0cih7eDpiLHk6Y30pLGguaXNJbWc9ITAsYT9sKGgsYSk6KGguYXR0cih7d2lkdGg6MCxoZWlnaHQ6MH0pLGNhKCJpbWciLHtvbmxvYWQ6ZnVuY3Rpb24oKXt0aGlzLndpZHRoPT09MCYmKEkodGhpcyx7cG9zaXRpb246ImFic29sdXRlIix0b3A6Ii05OTllbSJ9KSxCLmJvZHkuYXBwZW5kQ2hpbGQodGhpcykpO2woaCxXYltrXT1bdGhpcy53aWR0aCx0aGlzLmhlaWdodF0pO3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMpO2cuaW1nQ291bnQtLTtpZighZy5pbWdDb3VudCkkW2cuY2hhcnRJbmRleF0ub25sb2FkKCl9LHNyYzprfSkpLHRoaXMuaW1nQ291bnQrKztyZXR1cm4gaH0sc3ltYm9sczp7Y2lyY2xlOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPQowLjE2NipjO3JldHVyblsiTSIsYStjLzIsYiwiQyIsYStjK2UsYixhK2MrZSxiK2QsYStjLzIsYitkLCJDIixhLWUsYitkLGEtZSxiLGErYy8yLGIsIloiXX0sc3F1YXJlOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVyblsiTSIsYSxiLCJMIixhK2MsYixhK2MsYitkLGEsYitkLCJaIl19LHRyaWFuZ2xlOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVyblsiTSIsYStjLzIsYiwiTCIsYStjLGIrZCxhLGIrZCwiWiJdfSwidHJpYW5nbGUtZG93biI6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuWyJNIixhLGIsIkwiLGErYyxiLGErYy8yLGIrZCwiWiJdfSxkaWFtb25kOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVyblsiTSIsYStjLzIsYiwiTCIsYStjLGIrZC8yLGErYy8yLGIrZCxhLGIrZC8yLCJaIl19LGFyYzpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWUuc3RhcnQsYz1lLnJ8fGN8fGQsZz1lLmVuZC0wLjAwMSxkPWUuaW5uZXJSLGg9ZS5vcGVuLGk9YWEoZiksaj1pYShmKSxrPWFhKGcpLGc9aWEoZyksCmU9ZS5lbmQtZjxCYT8wOjE7cmV0dXJuWyJNIixhK2MqaSxiK2MqaiwiQSIsYyxjLDAsZSwxLGErYyprLGIrYypnLGg/Ik0iOiJMIixhK2QqayxiK2QqZywiQSIsZCxkLDAsZSwwLGErZCppLGIrZCpqLGg/IiI6IloiXX0sY2FsbG91dDpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPUUoZSYmZS5yfHwwLGMsZCksZz1mKzYsaD1lJiZlLmFuY2hvclgsZT1lJiZlLmFuY2hvclksaTtpPVsiTSIsYStmLGIsIkwiLGErYy1mLGIsIkMiLGErYyxiLGErYyxiLGErYyxiK2YsIkwiLGErYyxiK2QtZiwiQyIsYStjLGIrZCxhK2MsYitkLGErYy1mLGIrZCwiTCIsYStmLGIrZCwiQyIsYSxiK2QsYSxiK2QsYSxiK2QtZiwiTCIsYSxiK2YsIkMiLGEsYixhLGIsYStmLGJdO2gmJmg+YyYmZT5iK2cmJmU8YitkLWc/aS5zcGxpY2UoMTMsMywiTCIsYStjLGUtNixhK2MrNixlLGErYyxlKzYsYStjLGIrZC1mKTpoJiZoPDAmJmU+YitnJiZlPGIrZC1nP2kuc3BsaWNlKDMzLDMsIkwiLGEsZSs2LGEtNixlLAphLGUtNixhLGIrZik6ZSYmZT5kJiZoPmErZyYmaDxhK2MtZz9pLnNwbGljZSgyMywzLCJMIixoKzYsYitkLGgsYitkKzYsaC02LGIrZCxhK2YsYitkKTplJiZlPDAmJmg+YStnJiZoPGErYy1nJiZpLnNwbGljZSgzLDMsIkwiLGgtNixiLGgsYi02LGgrNixiLGMtZixiKTtyZXR1cm4gaX19LGNsaXBSZWN0OmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPSJoaWdoY2hhcnRzLSIrS2IrKyxmPXRoaXMuY3JlYXRlRWxlbWVudCgiY2xpcFBhdGgiKS5hdHRyKHtpZDplfSkuYWRkKHRoaXMuZGVmcyksYT10aGlzLnJlY3QoYSxiLGMsZCwwKS5hZGQoZik7YS5pZD1lO2EuY2xpcFBhdGg9ZjthLmNvdW50PTA7cmV0dXJuIGF9LHRleHQ6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9cGF8fCFoYSYmdGhpcy5mb3JFeHBvcnQsZj17fTtpZihkJiYodGhpcy5hbGxvd0hUTUx8fCF0aGlzLmZvckV4cG9ydCkpcmV0dXJuIHRoaXMuaHRtbChhLGIsYyk7Zi54PU1hdGgucm91bmQoYnx8MCk7aWYoYylmLnk9TWF0aC5yb3VuZChjKTsKaWYoYXx8YT09PTApZi50ZXh0PWE7YT10aGlzLmNyZWF0ZUVsZW1lbnQoInRleHQiKS5hdHRyKGYpO2UmJmEuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUifSk7aWYoIWQpYS54U2V0dGVyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0c3BhbiIpLGUsZj1jLmdldEF0dHJpYnV0ZShiKSxtO2ZvcihtPTA7bTxkLmxlbmd0aDttKyspZT1kW21dLGUuZ2V0QXR0cmlidXRlKGIpPT09ZiYmZS5zZXRBdHRyaWJ1dGUoYixhKTtjLnNldEF0dHJpYnV0ZShiLGEpfTtyZXR1cm4gYX0sZm9udE1ldHJpY3M6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGE9YXx8dGhpcy5zdHlsZS5mb250U2l6ZTshYSYmYiYmSi5nZXRDb21wdXRlZFN0eWxlJiYoYj1iLmVsZW1lbnR8fGIsYT0oYz1KLmdldENvbXB1dGVkU3R5bGUoYiwiIikpJiZjLmZvbnRTaXplKTthPS9weC8udGVzdChhKT9HKGEpOi9lbS8udGVzdChhKT9wYXJzZUZsb2F0KGEpKjEyOjEyO2M9YTwyND9hKzM6eShhKgoxLjIpO2Q9eShjKjAuOCk7cmV0dXJue2g6YyxiOmQsZjphfX0scm90Q29ycjpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YTtiJiZjJiYoZD1zKGQqYWEoYipvYSksNCkpO3JldHVybnt4Oi1hLzMqaWEoYipvYSkseTpkfX0sbGFiZWw6ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoLGkpe3ZhciBqPXRoaXMsaz1qLmcoaSksbD1qLnRleHQoIiIsMCwwLGcpLmF0dHIoe3pJbmRleDoxfSksbSxvLHE9MCxyPTMsQT0wLHAsdix4LE4samE9MCxVYT17fSxzLHosTCxFLEI7TD1mdW5jdGlvbigpe3ZhciBhLGI7YT1sLmVsZW1lbnQuc3R5bGU7bz0ocD09PXZvaWQgMHx8dj09PXZvaWQgMHx8ay5zdHlsZXMudGV4dEFsaWduKSYmdChsLnRleHRTdHIpJiZsLmdldEJCb3goKTtrLndpZHRoPShwfHxvLndpZHRofHwwKSsyKnIrQTtrLmhlaWdodD0odnx8by5oZWlnaHR8fDApKzIqcjtzPXIrai5mb250TWV0cmljcyhhJiZhLmZvbnRTaXplLGwpLmI7aWYoeil7aWYoIW0pYT1qYSxiPShoPy1zOjApK2phLGsuYm94PQptPWQ/ai5zeW1ib2woZCxhLGIsay53aWR0aCxrLmhlaWdodCxVYSk6ai5yZWN0KGEsYixrLndpZHRoLGsuaGVpZ2h0LDAsVWFbInN0cm9rZS13aWR0aCJdKSxtLmlzSW1nfHxtLmF0dHIoImZpbGwiLCJub25lIiksbS5hZGQoayk7bS5pc0ltZ3x8bS5hdHRyKHcoe3dpZHRoOnkoay53aWR0aCksaGVpZ2h0Onkoay5oZWlnaHQpfSxVYSkpO1VhPW51bGx9fTtFPWZ1bmN0aW9uKCl7dmFyIGE9ay5zdHlsZXMsYT1hJiZhLnRleHRBbGlnbixiPUErcixjO2M9aD8wOnM7aWYodChwKSYmbyYmKGE9PT0iY2VudGVyInx8YT09PSJyaWdodCIpKWIrPXtjZW50ZXI6MC41LHJpZ2h0OjF9W2FdKihwLW8ud2lkdGgpO2lmKGIhPT1sLnh8fGMhPT1sLnkpbC5hdHRyKCJ4IixiKSxjIT09dSYmbC5hdHRyKCJ5IixjKTtsLng9YjtsLnk9Y307Qj1mdW5jdGlvbihhLGIpe20/bS5hdHRyKGEsYik6VWFbYV09Yn07ay5vbkFkZD1mdW5jdGlvbigpe2wuYWRkKGspO2suYXR0cih7dGV4dDphfHxhPT09MD9hOiIiLAp4OmIseTpjfSk7bSYmdChlKSYmay5hdHRyKHthbmNob3JYOmUsYW5jaG9yWTpmfSl9O2sud2lkdGhTZXR0ZXI9ZnVuY3Rpb24oYSl7cD1hfTtrLmhlaWdodFNldHRlcj1mdW5jdGlvbihhKXt2PWF9O2sucGFkZGluZ1NldHRlcj1mdW5jdGlvbihhKXtpZih0KGEpJiZhIT09cilyPWsucGFkZGluZz1hLEUoKX07ay5wYWRkaW5nTGVmdFNldHRlcj1mdW5jdGlvbihhKXt0KGEpJiZhIT09QSYmKEE9YSxFKCkpfTtrLmFsaWduU2V0dGVyPWZ1bmN0aW9uKGEpe2E9e2xlZnQ6MCxjZW50ZXI6MC41LHJpZ2h0OjF9W2FdO2EhPT1xJiYocT1hLG8mJmsuYXR0cih7eDpifSkpfTtrLnRleHRTZXR0ZXI9ZnVuY3Rpb24oYSl7YSE9PXUmJmwudGV4dFNldHRlcihhKTtMKCk7RSgpfTtrWyJzdHJva2Utd2lkdGhTZXR0ZXIiXT1mdW5jdGlvbihhLGIpe2EmJih6PSEwKTtqYT1hJTIvMjtCKGIsYSl9O2suc3Ryb2tlU2V0dGVyPWsuZmlsbFNldHRlcj1rLnJTZXR0ZXI9ZnVuY3Rpb24oYSxiKXtiPT09ImZpbGwiJiYKYSYmKHo9ITApO0IoYixhKX07ay5hbmNob3JYU2V0dGVyPWZ1bmN0aW9uKGEsYil7ZT1hO0IoYix5KGEpLWphLXgpfTtrLmFuY2hvcllTZXR0ZXI9ZnVuY3Rpb24oYSxiKXtmPWE7QihiLGEtTil9O2sueFNldHRlcj1mdW5jdGlvbihhKXtrLng9YTtxJiYoYS09cSooKHB8fG8ud2lkdGgpKzIqcikpO3g9eShhKTtrLmF0dHIoInRyYW5zbGF0ZVgiLHgpfTtrLnlTZXR0ZXI9ZnVuY3Rpb24oYSl7Tj1rLnk9eShhKTtrLmF0dHIoInRyYW5zbGF0ZVkiLE4pfTt2YXIgRD1rLmNzcztyZXR1cm4gdyhrLHtjc3M6ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI9e30sYT1DKGEpO24oay50ZXh0UHJvcHMsZnVuY3Rpb24oYyl7YVtjXSE9PXUmJihiW2NdPWFbY10sZGVsZXRlIGFbY10pfSk7bC5jc3MoYil9cmV0dXJuIEQuY2FsbChrLGEpfSxnZXRCQm94OmZ1bmN0aW9uKCl7cmV0dXJue3dpZHRoOm8ud2lkdGgrMipyLGhlaWdodDpvLmhlaWdodCsyKnIseDpvLngtcix5Om8ueS1yfX0sc2hhZG93OmZ1bmN0aW9uKGEpe20mJgptLnNoYWRvdyhhKTtyZXR1cm4ga30sZGVzdHJveTpmdW5jdGlvbigpe1Ioay5lbGVtZW50LCJtb3VzZWVudGVyIik7UihrLmVsZW1lbnQsIm1vdXNlbGVhdmUiKTtsJiYobD1sLmRlc3Ryb3koKSk7bSYmKG09bS5kZXN0cm95KCkpO1kucHJvdG90eXBlLmRlc3Ryb3kuY2FsbChrKTtrPWo9TD1FPUI9bnVsbH19KX19OyRhPXhhO3coWS5wcm90b3R5cGUse2h0bWxDc3M6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5lbGVtZW50O2lmKGI9YSYmYi50YWdOYW1lPT09IlNQQU4iJiZhLndpZHRoKWRlbGV0ZSBhLndpZHRoLHRoaXMudGV4dFdpZHRoPWIsdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtpZihhJiZhLnRleHRPdmVyZmxvdz09PSJlbGxpcHNpcyIpYS53aGl0ZVNwYWNlPSJub3dyYXAiLGEub3ZlcmZsb3c9ImhpZGRlbiI7dGhpcy5zdHlsZXM9dyh0aGlzLnN0eWxlcyxhKTtJKHRoaXMuZWxlbWVudCxhKTtyZXR1cm4gdGhpc30saHRtbEdldEJCb3g6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmVsZW1lbnQ7CmlmKGEubm9kZU5hbWU9PT0idGV4dCIpYS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO3JldHVybnt4OmEub2Zmc2V0TGVmdCx5OmEub2Zmc2V0VG9wLHdpZHRoOmEub2Zmc2V0V2lkdGgsaGVpZ2h0OmEub2Zmc2V0SGVpZ2h0fX0saHRtbFVwZGF0ZVRyYW5zZm9ybTpmdW5jdGlvbigpe2lmKHRoaXMuYWRkZWQpe3ZhciBhPXRoaXMucmVuZGVyZXIsYj10aGlzLmVsZW1lbnQsYz10aGlzLnRyYW5zbGF0ZVh8fDAsZD10aGlzLnRyYW5zbGF0ZVl8fDAsZT10aGlzLnh8fDAsZj10aGlzLnl8fDAsZz10aGlzLnRleHRBbGlnbnx8ImxlZnQiLGg9e2xlZnQ6MCxjZW50ZXI6MC41LHJpZ2h0OjF9W2ddLGk9dGhpcy5zaGFkb3dzLGo9dGhpcy5zdHlsZXM7SShiLHttYXJnaW5MZWZ0OmMsbWFyZ2luVG9wOmR9KTtpJiZuKGksZnVuY3Rpb24oYSl7SShhLHttYXJnaW5MZWZ0OmMrMSxtYXJnaW5Ub3A6ZCsxfSl9KTt0aGlzLmludmVydGVkJiZuKGIuY2hpbGROb2RlcyxmdW5jdGlvbihjKXthLmludmVydENoaWxkKGMsCmIpfSk7aWYoYi50YWdOYW1lPT09IlNQQU4iKXt2YXIgaT10aGlzLnJvdGF0aW9uLGs9Ryh0aGlzLnRleHRXaWR0aCksbD1qJiZqLndoaXRlU3BhY2UsbT1baSxnLGIuaW5uZXJIVE1MLHRoaXMudGV4dFdpZHRoLHRoaXMudGV4dEFsaWduXS5qb2luKCIsIik7aWYobSE9PXRoaXMuY1RUKXtqPWEuZm9udE1ldHJpY3MoYi5zdHlsZS5mb250U2l6ZSkuYjt0KGkpJiZ0aGlzLnNldFNwYW5Sb3RhdGlvbihpLGgsaik7aWYoYi5vZmZzZXRXaWR0aD5rJiYvWyBcLV0vLnRlc3QoYi50ZXh0Q29udGVudHx8Yi5pbm5lclRleHQpKUkoYix7d2lkdGg6aysicHgiLGRpc3BsYXk6ImJsb2NrIix3aGl0ZVNwYWNlOmx8fCJub3JtYWwifSksdGhpcy5oYXNUZXh0V2lkdGg9ITA7ZWxzZSBpZih0aGlzLmhhc1RleHRXaWR0aClJKGIse3dpZHRoOiIiLGRpc3BsYXk6IiIsd2hpdGVTcGFjZTpsfHwibm93cmFwIn0pLHRoaXMuaGFzVGV4dFdpZHRoPSExO3RoaXMuZ2V0U3BhbkNvcnJlY3Rpb24odGhpcy5oYXNUZXh0V2lkdGg/Cms6Yi5vZmZzZXRXaWR0aCxqLGgsaSxnKX1JKGIse2xlZnQ6ZSsodGhpcy54Q29ycnx8MCkrInB4Iix0b3A6ZisodGhpcy55Q29ycnx8MCkrInB4In0pO2lmKHRiKWo9Yi5vZmZzZXRIZWlnaHQ7dGhpcy5jVFQ9bX19ZWxzZSB0aGlzLmFsaWduT25BZGQ9ITB9LHNldFNwYW5Sb3RhdGlvbjpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9e30sZT1KYT8iLW1zLXRyYW5zZm9ybSI6dGI/Ii13ZWJraXQtdHJhbnNmb3JtIjpaYT8iTW96VHJhbnNmb3JtIjpWYj8iLW8tdHJhbnNmb3JtIjoiIjtkW2VdPWQudHJhbnNmb3JtPSJyb3RhdGUoIithKyJkZWcpIjtkW2UrKFphPyJPcmlnaW4iOiItb3JpZ2luIildPWQudHJhbnNmb3JtT3JpZ2luPWIqMTAwKyIlICIrYysicHgiO0kodGhpcy5lbGVtZW50LGQpfSxnZXRTcGFuQ29ycmVjdGlvbjpmdW5jdGlvbihhLGIsYyl7dGhpcy54Q29ycj0tYSpjO3RoaXMueUNvcnI9LWJ9fSk7dyh4YS5wcm90b3R5cGUse2h0bWw6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPQp0aGlzLmNyZWF0ZUVsZW1lbnQoInNwYW4iKSxlPWQuZWxlbWVudCxmPWQucmVuZGVyZXIsZz1mdW5jdGlvbihhLGIpe24oWyJvcGFjaXR5IiwidmlzaWJpbGl0eSJdLGZ1bmN0aW9uKGMpe1MoYSxjKyJTZXR0ZXIiLGZ1bmN0aW9uKGEsYyxkLGUpe2EuY2FsbCh0aGlzLGMsZCxlKTtiW2RdPWN9KX0pfTtkLnRleHRTZXR0ZXI9ZnVuY3Rpb24oYSl7YSE9PWUuaW5uZXJIVE1MJiZkZWxldGUgdGhpcy5iQm94O2UuaW5uZXJIVE1MPXRoaXMudGV4dFN0cj1hO2QuaHRtbFVwZGF0ZVRyYW5zZm9ybSgpfTtnKGQsZC5lbGVtZW50LnN0eWxlKTtkLnhTZXR0ZXI9ZC55U2V0dGVyPWQuYWxpZ25TZXR0ZXI9ZC5yb3RhdGlvblNldHRlcj1mdW5jdGlvbihhLGIpe2I9PT0iYWxpZ24iJiYoYj0idGV4dEFsaWduIik7ZFtiXT1hO2QuaHRtbFVwZGF0ZVRyYW5zZm9ybSgpfTtkLmF0dHIoe3RleHQ6YSx4OnkoYikseTp5KGMpfSkuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGZvbnRGYW1pbHk6dGhpcy5zdHlsZS5mb250RmFtaWx5LApmb250U2l6ZTp0aGlzLnN0eWxlLmZvbnRTaXplfSk7ZS5zdHlsZS53aGl0ZVNwYWNlPSJub3dyYXAiO2QuY3NzPWQuaHRtbENzcztpZihmLmlzU1ZHKWQuYWRkPWZ1bmN0aW9uKGEpe3ZhciBiLGM9Zi5ib3gucGFyZW50Tm9kZSxrPVtdO2lmKHRoaXMucGFyZW50R3JvdXA9YSl7aWYoYj1hLmRpdiwhYil7Zm9yKDthOylrLnB1c2goYSksYT1hLnBhcmVudEdyb3VwO24oay5yZXZlcnNlKCksZnVuY3Rpb24oYSl7dmFyIGQsZT1XKGEuZWxlbWVudCwiY2xhc3MiKTtlJiYoZT17Y2xhc3NOYW1lOmV9KTtiPWEuZGl2PWEuZGl2fHxjYShZYSxlLHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6KGEudHJhbnNsYXRlWHx8MCkrInB4Iix0b3A6KGEudHJhbnNsYXRlWXx8MCkrInB4In0sYnx8Yyk7ZD1iLnN0eWxlO3coYSx7dHJhbnNsYXRlWFNldHRlcjpmdW5jdGlvbihiLGMpe2QubGVmdD1iKyJweCI7YVtjXT1iO2EuZG9UcmFuc2Zvcm09ITB9LHRyYW5zbGF0ZVlTZXR0ZXI6ZnVuY3Rpb24oYiwKYyl7ZC50b3A9YisicHgiO2FbY109YjthLmRvVHJhbnNmb3JtPSEwfX0pO2coYSxkKX0pfX1lbHNlIGI9YztiLmFwcGVuZENoaWxkKGUpO2QuYWRkZWQ9ITA7ZC5hbGlnbk9uQWRkJiZkLmh0bWxVcGRhdGVUcmFuc2Zvcm0oKTtyZXR1cm4gZH07cmV0dXJuIGR9fSk7dmFyIG5iLFo7aWYoIWhhJiYhcGEpWj17aW5pdDpmdW5jdGlvbihhLGIpe3ZhciBjPVsiPCIsYiwnIGZpbGxlZD0iZiIgc3Ryb2tlZD0iZiInXSxkPVsicG9zaXRpb246ICIsImFic29sdXRlIiwiOyJdLGU9Yj09PVlhOyhiPT09InNoYXBlInx8ZSkmJmQucHVzaCgibGVmdDowO3RvcDowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyIpO2QucHVzaCgidmlzaWJpbGl0eTogIixlPyJoaWRkZW4iOiJ2aXNpYmxlIik7Yy5wdXNoKCcgc3R5bGU9IicsZC5qb2luKCIiKSwnIi8+Jyk7aWYoYiljPWV8fGI9PT0ic3BhbiJ8fGI9PT0iaW1nIj9jLmpvaW4oIiIpOmEucHJlcFZNTChjKSx0aGlzLmVsZW1lbnQ9Y2EoYyk7dGhpcy5yZW5kZXJlcj0KYX0sYWRkOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucmVuZGVyZXIsYz10aGlzLmVsZW1lbnQsZD1iLmJveCxlPWEmJmEuaW52ZXJ0ZWQsZD1hP2EuZWxlbWVudHx8YTpkO2lmKGEpdGhpcy5wYXJlbnRHcm91cD1hO2UmJmIuaW52ZXJ0Q2hpbGQoYyxkKTtkLmFwcGVuZENoaWxkKGMpO3RoaXMuYWRkZWQ9ITA7dGhpcy5hbGlnbk9uQWRkJiYhdGhpcy5kZWZlclVwZGF0ZVRyYW5zZm9ybSYmdGhpcy51cGRhdGVUcmFuc2Zvcm0oKTtpZih0aGlzLm9uQWRkKXRoaXMub25BZGQoKTtyZXR1cm4gdGhpc30sdXBkYXRlVHJhbnNmb3JtOlkucHJvdG90eXBlLmh0bWxVcGRhdGVUcmFuc2Zvcm0sc2V0U3BhblJvdGF0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5yb3RhdGlvbixiPWFhKGEqb2EpLGM9aWEoYSpvYSk7SSh0aGlzLmVsZW1lbnQse2ZpbHRlcjphP1sicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0Lk1hdHJpeChNMTE9IixiLCIsIE0xMj0iLC1jLCIsIE0yMT0iLGMsIiwgTTIyPSIsCmIsIiwgc2l6aW5nTWV0aG9kPSdhdXRvIGV4cGFuZCcpIl0uam9pbigiIik6Im5vbmUifSl9LGdldFNwYW5Db3JyZWN0aW9uOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9ZD9hYShkKm9hKToxLGc9ZD9pYShkKm9hKTowLGg9cCh0aGlzLmVsZW1IZWlnaHQsdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodCksaTt0aGlzLnhDb3JyPWY8MCYmLWE7dGhpcy55Q29ycj1nPDAmJi1oO2k9ZipnPDA7dGhpcy54Q29ycis9ZypiKihpPzEtYzpjKTt0aGlzLnlDb3JyLT1mKmIqKGQ/aT9jOjEtYzoxKTtlJiZlIT09ImxlZnQiJiYodGhpcy54Q29yci09YSpjKihmPDA/LTE6MSksZCYmKHRoaXMueUNvcnItPWgqYyooZzwwPy0xOjEpKSxJKHRoaXMuZWxlbWVudCx7dGV4dEFsaWduOmV9KSl9LHBhdGhUb1ZNTDpmdW5jdGlvbihhKXtmb3IodmFyIGI9YS5sZW5ndGgsYz1bXTtiLS07KWlmKHRhKGFbYl0pKWNbYl09eShhW2JdKjEwKS01O2Vsc2UgaWYoYVtiXT09PSJaIiljW2JdPSJ4IjtlbHNlIGlmKGNbYl09CmFbYl0sYS5pc0FyYyYmKGFbYl09PT0id2EifHxhW2JdPT09ImF0IikpY1tiKzVdPT09Y1tiKzddJiYoY1tiKzddKz1hW2IrN10+YVtiKzVdPzE6LTEpLGNbYis2XT09PWNbYis4XSYmKGNbYis4XSs9YVtiKzhdPmFbYis2XT8xOi0xKTtyZXR1cm4gYy5qb2luKCIgIil8fCJ4In0sY2xpcDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLGM7YT8oYz1hLm1lbWJlcnMsQWEoYyxiKSxjLnB1c2goYiksYi5kZXN0cm95Q2xpcD1mdW5jdGlvbigpe0FhKGMsYil9LGE9YS5nZXRDU1MoYikpOihiLmRlc3Ryb3lDbGlwJiZiLmRlc3Ryb3lDbGlwKCksYT17Y2xpcDpzYj8iaW5oZXJpdCI6InJlY3QoYXV0bykifSk7cmV0dXJuIGIuY3NzKGEpfSxjc3M6WS5wcm90b3R5cGUuaHRtbENzcyxzYWZlUmVtb3ZlQ2hpbGQ6ZnVuY3Rpb24oYSl7YS5wYXJlbnROb2RlJiZYYShhKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZGVzdHJveUNsaXAmJnRoaXMuZGVzdHJveUNsaXAoKTtyZXR1cm4gWS5wcm90b3R5cGUuZGVzdHJveS5hcHBseSh0aGlzKX0sCm9uOmZ1bmN0aW9uKGEsYil7dGhpcy5lbGVtZW50WyJvbiIrYV09ZnVuY3Rpb24oKXt2YXIgYT1KLmV2ZW50O2EudGFyZ2V0PWEuc3JjRWxlbWVudDtiKGEpfTtyZXR1cm4gdGhpc30sY3V0T2ZmUGF0aDpmdW5jdGlvbihhLGIpe3ZhciBjLGE9YS5zcGxpdCgvWyAsXS8pO2M9YS5sZW5ndGg7aWYoYz09PTl8fGM9PT0xMSlhW2MtNF09YVtjLTJdPUcoYVtjLTJdKS0xMCpiO3JldHVybiBhLmpvaW4oIiAiKX0sc2hhZG93OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlLGY9dGhpcy5lbGVtZW50LGc9dGhpcy5yZW5kZXJlcixoLGk9Zi5zdHlsZSxqLGs9Zi5wYXRoLGwsbSxvLHE7ayYmdHlwZW9mIGsudmFsdWUhPT0ic3RyaW5nIiYmKGs9IngiKTttPWs7aWYoYSl7bz1wKGEud2lkdGgsMyk7cT0oYS5vcGFjaXR5fHwwLjE1KS9vO2ZvcihlPTE7ZTw9MztlKyspe2w9byoyKzEtMiplO2MmJihtPXRoaXMuY3V0T2ZmUGF0aChrLnZhbHVlLGwrMC41KSk7aj1bJzxzaGFwZSBpc1NoYWRvdz0idHJ1ZSIgc3Ryb2tld2VpZ2h0PSInLApsLCciIGZpbGxlZD0iZmFsc2UiIHBhdGg9IicsbSwnIiBjb29yZHNpemU9IjEwIDEwIiBzdHlsZT0iJyxmLnN0eWxlLmNzc1RleHQsJyIgLz4nXTtoPWNhKGcucHJlcFZNTChqKSxudWxsLHtsZWZ0OkcoaS5sZWZ0KStwKGEub2Zmc2V0WCwxKSx0b3A6RyhpLnRvcCkrcChhLm9mZnNldFksMSl9KTtpZihjKWguY3V0T2ZmPWwrMTtqPVsnPHN0cm9rZSBjb2xvcj0iJyxhLmNvbG9yfHwiYmxhY2siLCciIG9wYWNpdHk9IicscSplLCciLz4nXTtjYShnLnByZXBWTUwoaiksbnVsbCxudWxsLGgpO2I/Yi5lbGVtZW50LmFwcGVuZENoaWxkKGgpOmYucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaCxmKTtkLnB1c2goaCl9dGhpcy5zaGFkb3dzPWR9cmV0dXJuIHRoaXN9LHVwZGF0ZVNoYWRvd3M6cWEsc2V0QXR0cjpmdW5jdGlvbihhLGIpe3NiP3RoaXMuZWxlbWVudFthXT1iOnRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoYSxiKX0sY2xhc3NTZXR0ZXI6ZnVuY3Rpb24oYSl7dGhpcy5lbGVtZW50LmNsYXNzTmFtZT0KYX0sZGFzaHN0eWxlU2V0dGVyOmZ1bmN0aW9uKGEsYixjKXsoYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3Ryb2tlIilbMF18fGNhKHRoaXMucmVuZGVyZXIucHJlcFZNTChbIjxzdHJva2UvPiJdKSxudWxsLG51bGwsYykpW2JdPWF8fCJzb2xpZCI7dGhpc1tiXT1hfSxkU2V0dGVyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLnNoYWRvd3MsYT1hfHxbXTt0aGlzLmQ9YS5qb2luJiZhLmpvaW4oIiAiKTtjLnBhdGg9YT10aGlzLnBhdGhUb1ZNTChhKTtpZihkKWZvcihjPWQubGVuZ3RoO2MtLTspZFtjXS5wYXRoPWRbY10uY3V0T2ZmP3RoaXMuY3V0T2ZmUGF0aChhLGRbY10uY3V0T2ZmKTphO3RoaXMuc2V0QXR0cihiLGEpfSxmaWxsU2V0dGVyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jLm5vZGVOYW1lO2lmKGQ9PT0iU1BBTiIpYy5zdHlsZS5jb2xvcj1hO2Vsc2UgaWYoZCE9PSJJTUciKWMuZmlsbGVkPWEhPT0ibm9uZSIsdGhpcy5zZXRBdHRyKCJmaWxsY29sb3IiLHRoaXMucmVuZGVyZXIuY29sb3IoYSwKYyxiLHRoaXMpKX0sImZpbGwtb3BhY2l0eVNldHRlciI6ZnVuY3Rpb24oYSxiLGMpe2NhKHRoaXMucmVuZGVyZXIucHJlcFZNTChbIjwiLGIuc3BsaXQoIi0iKVswXSwnIG9wYWNpdHk9IicsYSwnIi8+J10pLG51bGwsbnVsbCxjKX0sb3BhY2l0eVNldHRlcjpxYSxyb3RhdGlvblNldHRlcjpmdW5jdGlvbihhLGIsYyl7Yz1jLnN0eWxlO3RoaXNbYl09Y1tiXT1hO2MubGVmdD0teShpYShhKm9hKSsxKSsicHgiO2MudG9wPXkoYWEoYSpvYSkpKyJweCJ9LHN0cm9rZVNldHRlcjpmdW5jdGlvbihhLGIsYyl7dGhpcy5zZXRBdHRyKCJzdHJva2Vjb2xvciIsdGhpcy5yZW5kZXJlci5jb2xvcihhLGMsYix0aGlzKSl9LCJzdHJva2Utd2lkdGhTZXR0ZXIiOmZ1bmN0aW9uKGEsYixjKXtjLnN0cm9rZWQ9ISFhO3RoaXNbYl09YTt0YShhKSYmKGErPSJweCIpO3RoaXMuc2V0QXR0cigic3Ryb2tld2VpZ2h0IixhKX0sdGl0bGVTZXR0ZXI6ZnVuY3Rpb24oYSxiKXt0aGlzLnNldEF0dHIoYixhKX0sCnZpc2liaWxpdHlTZXR0ZXI6ZnVuY3Rpb24oYSxiLGMpe2E9PT0iaW5oZXJpdCImJihhPSJ2aXNpYmxlIik7dGhpcy5zaGFkb3dzJiZuKHRoaXMuc2hhZG93cyxmdW5jdGlvbihjKXtjLnN0eWxlW2JdPWF9KTtjLm5vZGVOYW1lPT09IkRJViImJihhPWE9PT0iaGlkZGVuIj8iLTk5OWVtIjowLHNifHwoYy5zdHlsZVtiXT1hPyJ2aXNpYmxlIjoiaGlkZGVuIiksYj0idG9wIik7Yy5zdHlsZVtiXT1hfSx4U2V0dGVyOmZ1bmN0aW9uKGEsYixjKXt0aGlzW2JdPWE7Yj09PSJ4Ij9iPSJsZWZ0IjpiPT09InkiJiYoYj0idG9wIik7dGhpcy51cGRhdGVDbGlwcGluZz8odGhpc1tiXT1hLHRoaXMudXBkYXRlQ2xpcHBpbmcoKSk6Yy5zdHlsZVtiXT1hfSx6SW5kZXhTZXR0ZXI6ZnVuY3Rpb24oYSxiLGMpe2Muc3R5bGVbYl09YX19LFpbInN0cm9rZS1vcGFjaXR5U2V0dGVyIl09WlsiZmlsbC1vcGFjaXR5U2V0dGVyIl0sei5WTUxFbGVtZW50PVo9a2EoWSxaKSxaLnByb3RvdHlwZS55U2V0dGVyPQpaLnByb3RvdHlwZS53aWR0aFNldHRlcj1aLnByb3RvdHlwZS5oZWlnaHRTZXR0ZXI9Wi5wcm90b3R5cGUueFNldHRlcixaPXtFbGVtZW50OlosaXNJRTg6TGEuaW5kZXhPZigiTVNJRSA4LjAiKT4tMSxpbml0OmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlO3RoaXMuYWxpZ25lZE9iamVjdHM9W107ZD10aGlzLmNyZWF0ZUVsZW1lbnQoWWEpLmNzcyh3KHRoaXMuZ2V0U3R5bGUoZCkse3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9KSk7ZT1kLmVsZW1lbnQ7YS5hcHBlbmRDaGlsZChkLmVsZW1lbnQpO3RoaXMuaXNWTUw9ITA7dGhpcy5ib3g9ZTt0aGlzLmJveFdyYXBwZXI9ZDt0aGlzLmdyYWRpZW50cz17fTt0aGlzLmNhY2hlPXt9O3RoaXMuY2FjaGVLZXlzPVtdO3RoaXMuaW1nQ291bnQ9MDt0aGlzLnNldFNpemUoYixjLCExKTtpZighQi5uYW1lc3BhY2VzLmhjdil7Qi5uYW1lc3BhY2VzLmFkZCgiaGN2IiwidXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiKTt0cnl7Qi5jcmVhdGVTdHlsZVNoZWV0KCkuY3NzVGV4dD0KImhjdlxcOmZpbGwsIGhjdlxcOnBhdGgsIGhjdlxcOnNoYXBlLCBoY3ZcXDpzdHJva2V7IGJlaGF2aW9yOnVybCgjZGVmYXVsdCNWTUwpOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gIn1jYXRjaChmKXtCLnN0eWxlU2hlZXRzWzBdLmNzc1RleHQrPSJoY3ZcXDpmaWxsLCBoY3ZcXDpwYXRoLCBoY3ZcXDpzaGFwZSwgaGN2XFw6c3Ryb2tleyBiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9ICJ9fX0saXNIaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5ib3gub2Zmc2V0V2lkdGh9LGNsaXBSZWN0OmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMuY3JlYXRlRWxlbWVudCgpLGY9ZmEoYSk7cmV0dXJuIHcoZSx7bWVtYmVyczpbXSxjb3VudDowLGxlZnQ6KGY/YS54OmEpKzEsdG9wOihmP2EueTpiKSsxLHdpZHRoOihmP2Eud2lkdGg6YyktMSxoZWlnaHQ6KGY/YS5oZWlnaHQ6ZCktMSxnZXRDU1M6ZnVuY3Rpb24oYSl7dmFyIGI9YS5lbGVtZW50LApjPWIubm9kZU5hbWUsYT1hLmludmVydGVkLGQ9dGhpcy50b3AtKGM9PT0ic2hhcGUiP2Iub2Zmc2V0VG9wOjApLGU9dGhpcy5sZWZ0LGI9ZSt0aGlzLndpZHRoLGY9ZCt0aGlzLmhlaWdodCxkPXtjbGlwOiJyZWN0KCIreShhP2U6ZCkrInB4LCIreShhP2Y6YikrInB4LCIreShhP2I6ZikrInB4LCIreShhP2Q6ZSkrInB4KSJ9OyFhJiZzYiYmYz09PSJESVYiJiZ3KGQse3dpZHRoOmIrInB4IixoZWlnaHQ6ZisicHgifSk7cmV0dXJuIGR9LHVwZGF0ZUNsaXBwaW5nOmZ1bmN0aW9uKCl7bihlLm1lbWJlcnMsZnVuY3Rpb24oYSl7YS5lbGVtZW50JiZhLmNzcyhlLmdldENTUyhhKSl9KX19KX0sY29sb3I6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcyxmLGc9L15yZ2JhLyxoLGksaj0ibm9uZSI7YSYmYS5saW5lYXJHcmFkaWVudD9pPSJncmFkaWVudCI6YSYmYS5yYWRpYWxHcmFkaWVudCYmKGk9InBhdHRlcm4iKTtpZihpKXt2YXIgayxsLG09YS5saW5lYXJHcmFkaWVudHx8YS5yYWRpYWxHcmFkaWVudCwKbyxxLHIsQSxwLHY9IiIsYT1hLnN0b3BzLHgsTj1bXSxqYT1mdW5jdGlvbigpe2g9Wyc8ZmlsbCBjb2xvcnM9IicrTi5qb2luKCIsIikrJyIgb3BhY2l0eT0iJyxyLCciIG86b3BhY2l0eTI9IicscSwnIiB0eXBlPSInLGksJyIgJyx2LCdmb2N1cz0iMTAwJSIgbWV0aG9kPSJhbnkiIC8+J107Y2EoZS5wcmVwVk1MKGgpLG51bGwsbnVsbCxiKX07bz1hWzBdO3g9YVthLmxlbmd0aC0xXTtvWzBdPjAmJmEudW5zaGlmdChbMCxvWzFdXSk7eFswXTwxJiZhLnB1c2goWzEseFsxXV0pO24oYSxmdW5jdGlvbihhLGIpe2cudGVzdChhWzFdKT8oZj12YShhWzFdKSxrPWYuZ2V0KCJyZ2IiKSxsPWYuZ2V0KCJhIikpOihrPWFbMV0sbD0xKTtOLnB1c2goYVswXSoxMDArIiUgIitrKTtiPyhyPWwsQT1rKToocT1sLHA9ayl9KTtpZihjPT09ImZpbGwiKWlmKGk9PT0iZ3JhZGllbnQiKWM9bS54MXx8bVswXXx8MCxhPW0ueTF8fG1bMV18fDAsbz1tLngyfHxtWzJdfHwwLG09bS55Mnx8bVszXXx8MCx2PQonYW5nbGU9IicrKDkwLVguYXRhbigobS1hKS8oby1jKSkqMTgwL0JhKSsnIicsamEoKTtlbHNle3ZhciBqPW0ucixVYT1qKjIsdD1qKjIscz1tLmN4LHU9bS5jeSx5PWIucmFkaWFsUmVmZXJlbmNlLHcsaj1mdW5jdGlvbigpe3kmJih3PWQuZ2V0QkJveCgpLHMrPSh5WzBdLXcueCkvdy53aWR0aC0wLjUsdSs9KHlbMV0tdy55KS93LmhlaWdodC0wLjUsVWEqPXlbMl0vdy53aWR0aCx0Kj15WzJdL3cuaGVpZ2h0KTt2PSdzcmM9IicrTy5nbG9iYWwuVk1MUmFkaWFsR3JhZGllbnRVUkwrJyIgc2l6ZT0iJytVYSsiLCIrdCsnIiBvcmlnaW49IjAuNSwwLjUiIHBvc2l0aW9uPSInK3MrIiwiK3UrJyIgY29sb3IyPSInK3ArJyIgJztqYSgpfTtkLmFkZGVkP2ooKTpkLm9uQWRkPWo7aj1BfWVsc2Ugaj1rfWVsc2UgaWYoZy50ZXN0KGEpJiZiLnRhZ05hbWUhPT0iSU1HIilmPXZhKGEpLGRbYysiLW9wYWNpdHlTZXR0ZXIiXShmLmdldCgiYSIpLGMsYiksaj1mLmdldCgicmdiIik7ZWxzZXtqPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYyk7CmlmKGoubGVuZ3RoKWpbMF0ub3BhY2l0eT0xLGpbMF0udHlwZT0ic29saWQiO2o9YX1yZXR1cm4gan0scHJlcFZNTDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmlzSUU4LGE9YS5qb2luKCIiKTtiPyhhPWEucmVwbGFjZSgiLz4iLCcgeG1sbnM9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIiAvPicpLGE9YS5pbmRleE9mKCdzdHlsZT0iJyk9PT0tMT9hLnJlcGxhY2UoIi8+IiwnIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jaztiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTsiIC8+Jyk6YS5yZXBsYWNlKCdzdHlsZT0iJywnc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO2JlaGF2aW9yOnVybCgjZGVmYXVsdCNWTUwpOycpKTphPWEucmVwbGFjZSgiPCIsIjxoY3Y6Iik7cmV0dXJuIGF9LHRleHQ6eGEucHJvdG90eXBlLmh0bWwscGF0aDpmdW5jdGlvbihhKXt2YXIgYj17Y29vcmRzaXplOiIxMCAxMCJ9O01hKGEpP2IuZD1hOmZhKGEpJiZ3KGIsYSk7cmV0dXJuIHRoaXMuY3JlYXRlRWxlbWVudCgic2hhcGUiKS5hdHRyKGIpfSwKY2lyY2xlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLnN5bWJvbCgiY2lyY2xlIik7aWYoZmEoYSkpYz1hLnIsYj1hLnksYT1hLng7ZC5pc0NpcmNsZT0hMDtkLnI9YztyZXR1cm4gZC5hdHRyKHt4OmEseTpifSl9LGc6ZnVuY3Rpb24oYSl7dmFyIGI7YSYmKGI9e2NsYXNzTmFtZToiaGlnaGNoYXJ0cy0iK2EsImNsYXNzIjoiaGlnaGNoYXJ0cy0iK2F9KTtyZXR1cm4gdGhpcy5jcmVhdGVFbGVtZW50KFlhKS5hdHRyKGIpfSxpbWFnZTpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPXRoaXMuY3JlYXRlRWxlbWVudCgiaW1nIikuYXR0cih7c3JjOmF9KTthcmd1bWVudHMubGVuZ3RoPjEmJmYuYXR0cih7eDpiLHk6Yyx3aWR0aDpkLGhlaWdodDplfSk7cmV0dXJuIGZ9LGNyZWF0ZUVsZW1lbnQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT0icmVjdCI/dGhpcy5zeW1ib2woYSk6eGEucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQuY2FsbCh0aGlzLGEpfSxpbnZlcnRDaGlsZDpmdW5jdGlvbihhLApiKXt2YXIgYz10aGlzLGQ9Yi5zdHlsZSxlPWEudGFnTmFtZT09PSJJTUciJiZhLnN0eWxlO0koYSx7ZmxpcDoieCIsbGVmdDpHKGQud2lkdGgpLShlP0coZS50b3ApOjEpLHRvcDpHKGQuaGVpZ2h0KS0oZT9HKGUubGVmdCk6MSkscm90YXRpb246LTkwfSk7bihhLmNoaWxkTm9kZXMsZnVuY3Rpb24oYil7Yy5pbnZlcnRDaGlsZChiLGEpfSl9LHN5bWJvbHM6e2FyYzpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWUuc3RhcnQsZz1lLmVuZCxoPWUucnx8Y3x8ZCxjPWUuaW5uZXJSLGQ9YWEoZiksaT1pYShmKSxqPWFhKGcpLGs9aWEoZyk7aWYoZy1mPT09MClyZXR1cm5bIngiXTtmPVsid2EiLGEtaCxiLWgsYStoLGIraCxhK2gqZCxiK2gqaSxhK2gqaixiK2gqa107ZS5vcGVuJiYhYyYmZi5wdXNoKCJlIiwiTSIsYSxiKTtmLnB1c2goImF0IixhLWMsYi1jLGErYyxiK2MsYStjKmosYitjKmssYStjKmQsYitjKmksIngiLCJlIik7Zi5pc0FyYz0hMDtyZXR1cm4gZn0sY2lyY2xlOmZ1bmN0aW9uKGEsCmIsYyxkLGUpe2UmJihjPWQ9MiplLnIpO2UmJmUuaXNDaXJjbGUmJihhLT1jLzIsYi09ZC8yKTtyZXR1cm5bIndhIixhLGIsYStjLGIrZCxhK2MsYitkLzIsYStjLGIrZC8yLCJlIl19LHJlY3Q6ZnVuY3Rpb24oYSxiLGMsZCxlKXtyZXR1cm4geGEucHJvdG90eXBlLnN5bWJvbHNbIXQoZSl8fCFlLnI/InNxdWFyZSI6ImNhbGxvdXQiXS5jYWxsKDAsYSxiLGMsZCxlKX19fSx6LlZNTFJlbmRlcmVyPW5iPWZ1bmN0aW9uKCl7dGhpcy5pbml0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sbmIucHJvdG90eXBlPUMoeGEucHJvdG90eXBlLFopLCRhPW5iO3hhLnByb3RvdHlwZS5tZWFzdXJlU3BhbldpZHRoPWZ1bmN0aW9uKGEsYil7dmFyIGM9Qi5jcmVhdGVFbGVtZW50KCJzcGFuIiksZDtkPUIuY3JlYXRlVGV4dE5vZGUoYSk7Yy5hcHBlbmRDaGlsZChkKTtJKGMsYik7dGhpcy5ib3guYXBwZW5kQ2hpbGQoYyk7ZD1jLm9mZnNldFdpZHRoO1hhKGMpO3JldHVybiBkfTt2YXIgWGI7aWYocGEpei5DYW5WR1JlbmRlcmVyPQpaPWZ1bmN0aW9uKCl7UWE9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwifSxaLnByb3RvdHlwZS5zeW1ib2xzPXt9LFhiPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe3ZhciBhPWIubGVuZ3RoLGQ7Zm9yKGQ9MDtkPGE7ZCsrKWJbZF0oKTtiPVtdfXZhciBiPVtdO3JldHVybntwdXNoOmZ1bmN0aW9uKGMsZCl7aWYoYi5sZW5ndGg9PT0wKXt2YXIgZT1CLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0sZj1CLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2YudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtmLnNyYz1kO2Yub25sb2FkPWE7ZS5hcHBlbmRDaGlsZChmKX1iLnB1c2goYyl9fX0oKSwkYT1aO2RiLnByb3RvdHlwZT17YWRkTGFiZWw6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmF4aXMsYj1hLm9wdGlvbnMsYz1hLmNoYXJ0LGQ9YS5jYXRlZ29yaWVzLGU9YS5uYW1lcyxmPXRoaXMucG9zLGc9Yi5sYWJlbHMsaD1hLnRpY2tQb3NpdGlvbnMsaT1mPT09aFswXSxqPWY9PT1oW2gubGVuZ3RoLQoxXSxlPWQ/cChkW2ZdLGVbZl0sZik6ZixkPXRoaXMubGFiZWwsaD1oLmluZm8sazthLmlzRGF0ZXRpbWVBeGlzJiZoJiYoaz1iLmRhdGVUaW1lTGFiZWxGb3JtYXRzW2guaGlnaGVyUmFua3NbZl18fGgudW5pdE5hbWVdKTt0aGlzLmlzRmlyc3Q9aTt0aGlzLmlzTGFzdD1qO2I9YS5sYWJlbEZvcm1hdHRlci5jYWxsKHtheGlzOmEsY2hhcnQ6Yyxpc0ZpcnN0OmksaXNMYXN0OmosZGF0ZVRpbWVMYWJlbEZvcm1hdDprLHZhbHVlOmEuaXNMb2c/bmEoemEoZSkpOmV9KTt0KGQpP2QmJmQuYXR0cih7dGV4dDpifSk6KHRoaXMubGFiZWxMZW5ndGg9KHRoaXMubGFiZWw9ZD10KGIpJiZnLmVuYWJsZWQ/Yy5yZW5kZXJlci50ZXh0KGIsMCwwLGcudXNlSFRNTCkuY3NzKEMoZy5zdHlsZSkpLmFkZChhLmxhYmVsR3JvdXApOm51bGwpJiZkLmdldEJCb3goKS53aWR0aCx0aGlzLnJvdGF0aW9uPTApfSxnZXRMYWJlbFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYWJlbD90aGlzLmxhYmVsLmdldEJCb3goKVt0aGlzLmF4aXMuaG9yaXo/CiJoZWlnaHQiOiJ3aWR0aCJdOjB9LGhhbmRsZU92ZXJmbG93OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuYXhpcyxjPWEueCxkPWIuY2hhcnQuY2hhcnRXaWR0aCxlPWIuY2hhcnQuc3BhY2luZyxmPXAoYi5sYWJlbExlZnQsRShiLnBvcyxlWzNdKSksZT1wKGIubGFiZWxSaWdodCxzKGIucG9zK2IubGVuLGQtZVsxXSkpLGc9dGhpcy5sYWJlbCxoPXRoaXMucm90YXRpb24saT17bGVmdDowLGNlbnRlcjowLjUscmlnaHQ6MX1bYi5sYWJlbEFsaWduXSxqPWcuZ2V0QkJveCgpLndpZHRoLGs9Yi5zbG90V2lkdGgsbD0xLG0sbz17fTtpZihoKWg8MCYmYy1pKmo8Zj9tPXkoYy9hYShoKm9hKS1mKTpoPjAmJmMraSpqPmUmJihtPXkoKGQtYykvYWEoaCpvYSkpKTtlbHNlIGlmKGQ9YysoMS1pKSpqLGMtaSpqPGY/az1hLngrayooMS1pKS1mOmQ+ZSYmKGs9ZS1hLngrayppLGw9LTEpLGs9RShiLnNsb3RXaWR0aCxrKSxrPGIuc2xvdFdpZHRoJiZiLmxhYmVsQWxpZ249PT0iY2VudGVyIiYmKGEueCs9CmwqKGIuc2xvdFdpZHRoLWstaSooYi5zbG90V2lkdGgtRShqLGspKSkpLGo+a3x8Yi5hdXRvUm90YXRpb24mJmcuc3R5bGVzLndpZHRoKW09aztpZihtKXtvLndpZHRoPW07aWYoIWIub3B0aW9ucy5sYWJlbHMuc3R5bGUudGV4dE92ZXJmbG93KW8udGV4dE92ZXJmbG93PSJlbGxpcHNpcyI7Zy5jc3Mobyl9fSxnZXRQb3NpdGlvbjpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT10aGlzLmF4aXMsZj1lLmNoYXJ0LGc9ZCYmZi5vbGRDaGFydEhlaWdodHx8Zi5jaGFydEhlaWdodDtyZXR1cm57eDphP2UudHJhbnNsYXRlKGIrYyxudWxsLG51bGwsZCkrZS50cmFuc0I6ZS5sZWZ0K2Uub2Zmc2V0KyhlLm9wcG9zaXRlPyhkJiZmLm9sZENoYXJ0V2lkdGh8fGYuY2hhcnRXaWR0aCktZS5yaWdodC1lLmxlZnQ6MCkseTphP2ctZS5ib3R0b20rZS5vZmZzZXQtKGUub3Bwb3NpdGU/ZS5oZWlnaHQ6MCk6Zy1lLnRyYW5zbGF0ZShiK2MsbnVsbCxudWxsLGQpLWUudHJhbnNCfX0sZ2V0TGFiZWxQb3NpdGlvbjpmdW5jdGlvbihhLApiLGMsZCxlLGYsZyxoKXt2YXIgaT10aGlzLmF4aXMsaj1pLnRyYW5zQSxrPWkucmV2ZXJzZWQsbD1pLnN0YWdnZXJMaW5lcyxtPWkudGlja1JvdENvcnJ8fHt4OjAseTowfSxvPWUueTt0KG8pfHwobz1pLnNpZGU9PT0yP20ueSs4Om89YWEoYy5yb3RhdGlvbipvYSkqKG0ueS1jLmdldEJCb3goITEsMCkuaGVpZ2h0LzIpKTthPWErZS54K20ueC0oZiYmZD9mKmoqKGs/LTE6MSk6MCk7Yj1iK28tKGYmJiFkP2Yqaiooaz8xOi0xKTowKTtsJiYoYz1nLyhofHwxKSVsLGkub3Bwb3NpdGUmJihjPWwtYy0xKSxiKz1jKihpLmxhYmVsT2Zmc2V0L2wpKTtyZXR1cm57eDphLHk6eShiKX19LGdldE1hcmtQYXRoOmZ1bmN0aW9uKGEsYixjLGQsZSxmKXtyZXR1cm4gZi5jcmlzcExpbmUoWyJNIixhLGIsIkwiLGErKGU/MDotYyksYisoZT9jOjApXSxkKX0scmVuZGVyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmF4aXMsZT1kLm9wdGlvbnMsZj1kLmNoYXJ0LnJlbmRlcmVyLGc9ZC5ob3JpeiwKaD10aGlzLnR5cGUsaT10aGlzLmxhYmVsLGo9dGhpcy5wb3Msaz1lLmxhYmVscyxsPXRoaXMuZ3JpZExpbmUsbT1oP2grIkdyaWQiOiJncmlkIixvPWg/aCsiVGljayI6InRpY2siLHE9ZVttKyJMaW5lV2lkdGgiXSxyPWVbbSsiTGluZUNvbG9yIl0sQT1lW20rIkxpbmVEYXNoU3R5bGUiXSxuPWVbbysiTGVuZ3RoIl0sbT1wKGVbbysiV2lkdGgiXSwhaCYmZC5pc1hBeGlzPzE6MCksdj1lW28rIkNvbG9yIl0seD1lW28rIlBvc2l0aW9uIl0sbz10aGlzLm1hcmssTj1rLnN0ZXAsamE9ITAsdD1kLnRpY2ttYXJrT2Zmc2V0LHM9dGhpcy5nZXRQb3NpdGlvbihnLGosdCxiKSx5PXMueCxzPXMueSx3PWcmJnk9PT1kLnBvcytkLmxlbnx8IWcmJnM9PT1kLnBvcz8tMToxLGM9cChjLDEpO3RoaXMuaXNBY3RpdmU9ITA7aWYocSl7aj1kLmdldFBsb3RMaW5lUGF0aChqK3QscSp3LGIsITApO2lmKGw9PT11KXtsPXtzdHJva2U6ciwic3Ryb2tlLXdpZHRoIjpxfTtpZihBKWwuZGFzaHN0eWxlPUE7CmlmKCFoKWwuekluZGV4PTE7aWYoYilsLm9wYWNpdHk9MDt0aGlzLmdyaWRMaW5lPWw9cT9mLnBhdGgoaikuYXR0cihsKS5hZGQoZC5ncmlkR3JvdXApOm51bGx9aWYoIWImJmwmJmopbFt0aGlzLmlzTmV3PyJhdHRyIjoiYW5pbWF0ZSJdKHtkOmosb3BhY2l0eTpjfSl9aWYobSYmbil4PT09Imluc2lkZSImJihuPS1uKSxkLm9wcG9zaXRlJiYobj0tbiksaD10aGlzLmdldE1hcmtQYXRoKHkscyxuLG0qdyxnLGYpLG8/by5hbmltYXRlKHtkOmgsb3BhY2l0eTpjfSk6dGhpcy5tYXJrPWYucGF0aChoKS5hdHRyKHtzdHJva2U6diwic3Ryb2tlLXdpZHRoIjptLG9wYWNpdHk6Y30pLmFkZChkLmF4aXNHcm91cCk7aWYoaSYmIWlzTmFOKHkpKWkueHk9cz10aGlzLmdldExhYmVsUG9zaXRpb24oeSxzLGksZyxrLHQsYSxOKSx0aGlzLmlzRmlyc3QmJiF0aGlzLmlzTGFzdCYmIXAoZS5zaG93Rmlyc3RMYWJlbCwxKXx8dGhpcy5pc0xhc3QmJiF0aGlzLmlzRmlyc3QmJiFwKGUuc2hvd0xhc3RMYWJlbCwKMSk/amE9ITE6ZyYmIWQuaXNSYWRpYWwmJiFrLnN0ZXAmJiFrLnJvdGF0aW9uJiYhYiYmYyE9PTAmJnRoaXMuaGFuZGxlT3ZlcmZsb3cocyksTiYmYSVOJiYoamE9ITEpLGphJiYhaXNOYU4ocy55KT8ocy5vcGFjaXR5PWMsaVt0aGlzLmlzTmV3PyJhdHRyIjoiYW5pbWF0ZSJdKHMpLHRoaXMuaXNOZXc9ITEpOmkuYXR0cigieSIsLTk5OTkpfSxkZXN0cm95OmZ1bmN0aW9uKCl7UGEodGhpcyx0aGlzLmF4aXMpfX07ei5QbG90TGluZU9yQmFuZD1mdW5jdGlvbihhLGIpe3RoaXMuYXhpcz1hO2lmKGIpdGhpcy5vcHRpb25zPWIsdGhpcy5pZD1iLmlkfTt6LlBsb3RMaW5lT3JCYW5kLnByb3RvdHlwZT17cmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPWEuYXhpcyxjPWIuaG9yaXosZD1hLm9wdGlvbnMsZT1kLmxhYmVsLGY9YS5sYWJlbCxnPWQud2lkdGgsaD1kLnRvLGk9ZC5mcm9tLGo9dChpKSYmdChoKSxrPWQudmFsdWUsbD1kLmRhc2hTdHlsZSxtPWEuc3ZnRWxlbSxvPVtdLHEsCnI9ZC5jb2xvcixBPXAoZC56SW5kZXgsMCksbj1kLmV2ZW50cyx2PXt9LHg9Yi5jaGFydC5yZW5kZXJlcjtiLmlzTG9nJiYoaT1OYShpKSxoPU5hKGgpLGs9TmEoaykpO2lmKGcpe2lmKG89Yi5nZXRQbG90TGluZVBhdGgoayxnKSx2PXtzdHJva2U6ciwic3Ryb2tlLXdpZHRoIjpnfSxsKXYuZGFzaHN0eWxlPWx9ZWxzZSBpZihqKXtvPWIuZ2V0UGxvdEJhbmRQYXRoKGksaCxkKTtpZihyKXYuZmlsbD1yO2lmKGQuYm9yZGVyV2lkdGgpdi5zdHJva2U9ZC5ib3JkZXJDb2xvcix2WyJzdHJva2Utd2lkdGgiXT1kLmJvcmRlcldpZHRofWVsc2UgcmV0dXJuO3YuekluZGV4PUE7aWYobSlpZihvKW0uc2hvdygpLG0uYW5pbWF0ZSh7ZDpvfSk7ZWxzZXtpZihtLmhpZGUoKSxmKWEubGFiZWw9Zj1mLmRlc3Ryb3koKX1lbHNlIGlmKG8mJm8ubGVuZ3RoJiYoYS5zdmdFbGVtPW09eC5wYXRoKG8pLmF0dHIodikuYWRkKCksbikpZm9yKHEgaW4gZD1mdW5jdGlvbihiKXttLm9uKGIsZnVuY3Rpb24oYyl7bltiXS5hcHBseShhLApbY10pfSl9LG4pZChxKTtlJiZ0KGUudGV4dCkmJm8mJm8ubGVuZ3RoJiZiLndpZHRoPjAmJmIuaGVpZ2h0PjAmJiFvLmZsYXQ/KGU9Qyh7YWxpZ246YyYmaiYmImNlbnRlciIseDpjPyFqJiY0OjEwLHZlcnRpY2FsQWxpZ246IWMmJmomJiJtaWRkbGUiLHk6Yz9qPzE2OjEwOmo/NjotNCxyb3RhdGlvbjpjJiYhaiYmOTB9LGUpLHRoaXMucmVuZGVyTGFiZWwoZSxvLGosQSkpOmYmJmYuaGlkZSgpO3JldHVybiBhfSxyZW5kZXJMYWJlbDpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT10aGlzLmxhYmVsLGY9dGhpcy5heGlzLmNoYXJ0LnJlbmRlcmVyO2lmKCFlKWU9e2FsaWduOmEudGV4dEFsaWdufHxhLmFsaWduLHJvdGF0aW9uOmEucm90YXRpb259LGUuekluZGV4PWQsdGhpcy5sYWJlbD1lPWYudGV4dChhLnRleHQsMCwwLGEudXNlSFRNTCkuYXR0cihlKS5jc3MoYS5zdHlsZSkuYWRkKCk7ZD1bYlsxXSxiWzRdLGM/Yls2XTpiWzFdXTtiPVtiWzJdLGJbNV0sYz9iWzddOmJbMl1dO2M9T2EoZCk7CmY9T2EoYik7ZS5hbGlnbihhLCExLHt4OmMseTpmLHdpZHRoOkVhKGQpLWMsaGVpZ2h0OkVhKGIpLWZ9KTtlLnNob3coKX0sZGVzdHJveTpmdW5jdGlvbigpe0FhKHRoaXMuYXhpcy5wbG90TGluZXNBbmRCYW5kcyx0aGlzKTtkZWxldGUgdGhpcy5heGlzO1BhKHRoaXMpfX07dmFyIEY9ei5BeGlzPWZ1bmN0aW9uKCl7dGhpcy5pbml0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Ri5wcm90b3R5cGU9e2RlZmF1bHRPcHRpb25zOntkYXRlVGltZUxhYmVsRm9ybWF0czp7bWlsbGlzZWNvbmQ6IiVIOiVNOiVTLiVMIixzZWNvbmQ6IiVIOiVNOiVTIixtaW51dGU6IiVIOiVNIixob3VyOiIlSDolTSIsZGF5OiIlZS4gJWIiLHdlZWs6IiVlLiAlYiIsbW9udGg6IiViICcleSIseWVhcjoiJVkifSxlbmRPblRpY2s6ITEsZ3JpZExpbmVDb2xvcjoiI0Q4RDhEOCIsbGFiZWxzOntlbmFibGVkOiEwLHN0eWxlOntjb2xvcjoiIzYwNjA2MCIsY3Vyc29yOiJkZWZhdWx0Iixmb250U2l6ZToiMTFweCJ9LAp4OjAseToxNX0sbGluZUNvbG9yOiIjQzBEMEUwIixsaW5lV2lkdGg6MSxtaW5QYWRkaW5nOjAuMDEsbWF4UGFkZGluZzowLjAxLG1pbm9yR3JpZExpbmVDb2xvcjoiI0UwRTBFMCIsbWlub3JHcmlkTGluZVdpZHRoOjEsbWlub3JUaWNrQ29sb3I6IiNBMEEwQTAiLG1pbm9yVGlja0xlbmd0aDoyLG1pbm9yVGlja1Bvc2l0aW9uOiJvdXRzaWRlIixzdGFydE9mV2VlazoxLHN0YXJ0T25UaWNrOiExLHRpY2tDb2xvcjoiI0MwRDBFMCIsdGlja0xlbmd0aDoxMCx0aWNrbWFya1BsYWNlbWVudDoiYmV0d2VlbiIsdGlja1BpeGVsSW50ZXJ2YWw6MTAwLHRpY2tQb3NpdGlvbjoib3V0c2lkZSIsdGl0bGU6e2FsaWduOiJtaWRkbGUiLHN0eWxlOntjb2xvcjoiIzcwNzA3MCJ9fSx0eXBlOiJsaW5lYXIifSxkZWZhdWx0WUF4aXNPcHRpb25zOntlbmRPblRpY2s6ITAsZ3JpZExpbmVXaWR0aDoxLHRpY2tQaXhlbEludGVydmFsOjcyLHNob3dMYXN0TGFiZWw6ITAsbGFiZWxzOnt4Oi04LHk6M30sbGluZVdpZHRoOjAsCm1heFBhZGRpbmc6MC4wNSxtaW5QYWRkaW5nOjAuMDUsc3RhcnRPblRpY2s6ITAsdGl0bGU6e3JvdGF0aW9uOjI3MCx0ZXh0OiJWYWx1ZXMifSxzdGFja0xhYmVsczp7ZW5hYmxlZDohMSxmb3JtYXR0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gei5udW1iZXJGb3JtYXQodGhpcy50b3RhbCwtMSl9LHN0eWxlOkMoVi5saW5lLmRhdGFMYWJlbHMuc3R5bGUse2NvbG9yOiIjMDAwMDAwIn0pfX0sZGVmYXVsdExlZnRBeGlzT3B0aW9uczp7bGFiZWxzOnt4Oi0xNSx5Om51bGx9LHRpdGxlOntyb3RhdGlvbjoyNzB9fSxkZWZhdWx0UmlnaHRBeGlzT3B0aW9uczp7bGFiZWxzOnt4OjE1LHk6bnVsbH0sdGl0bGU6e3JvdGF0aW9uOjkwfX0sZGVmYXVsdEJvdHRvbUF4aXNPcHRpb25zOntsYWJlbHM6e2F1dG9Sb3RhdGlvbjpbLTQ1XSx4OjAseTpudWxsfSx0aXRsZTp7cm90YXRpb246MH19LGRlZmF1bHRUb3BBeGlzT3B0aW9uczp7bGFiZWxzOnthdXRvUm90YXRpb246Wy00NV0seDowLHk6LTE1fSx0aXRsZTp7cm90YXRpb246MH19LAppbml0OmZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5pc1g7dGhpcy5jaGFydD1hO3RoaXMuaG9yaXo9YS5pbnZlcnRlZD8hYzpjO3RoaXMuY29sbD0odGhpcy5pc1hBeGlzPWMpPyJ4QXhpcyI6InlBeGlzIjt0aGlzLm9wcG9zaXRlPWIub3Bwb3NpdGU7dGhpcy5zaWRlPWIuc2lkZXx8KHRoaXMuaG9yaXo/dGhpcy5vcHBvc2l0ZT8wOjI6dGhpcy5vcHBvc2l0ZT8xOjMpO3RoaXMuc2V0T3B0aW9ucyhiKTt2YXIgZD10aGlzLm9wdGlvbnMsZT1kLnR5cGU7dGhpcy5sYWJlbEZvcm1hdHRlcj1kLmxhYmVscy5mb3JtYXR0ZXJ8fHRoaXMuZGVmYXVsdExhYmVsRm9ybWF0dGVyO3RoaXMudXNlck9wdGlvbnM9Yjt0aGlzLm1pblBpeGVsUGFkZGluZz0wO3RoaXMucmV2ZXJzZWQ9ZC5yZXZlcnNlZDt0aGlzLnZpc2libGU9ZC52aXNpYmxlIT09ITE7dGhpcy56b29tRW5hYmxlZD1kLnpvb21FbmFibGVkIT09ITE7dGhpcy5jYXRlZ29yaWVzPWQuY2F0ZWdvcmllc3x8ZT09PSJjYXRlZ29yeSI7dGhpcy5uYW1lcz0KdGhpcy5uYW1lc3x8W107dGhpcy5pc0xvZz1lPT09ImxvZ2FyaXRobWljIjt0aGlzLmlzRGF0ZXRpbWVBeGlzPWU9PT0iZGF0ZXRpbWUiO3RoaXMuaXNMaW5rZWQ9dChkLmxpbmtlZFRvKTt0aGlzLnRpY2tzPXt9O3RoaXMubGFiZWxFZGdlPVtdO3RoaXMubWlub3JUaWNrcz17fTt0aGlzLnBsb3RMaW5lc0FuZEJhbmRzPVtdO3RoaXMuYWx0ZXJuYXRlQmFuZHM9e307dGhpcy5sZW49MDt0aGlzLm1pblJhbmdlPXRoaXMudXNlck1pblJhbmdlPWQubWluUmFuZ2V8fGQubWF4Wm9vbTt0aGlzLnJhbmdlPWQucmFuZ2U7dGhpcy5vZmZzZXQ9ZC5vZmZzZXR8fDA7dGhpcy5zdGFja3M9e307dGhpcy5vbGRTdGFja3M9e307dGhpcy5zdGFja3NUb3VjaGVkPTA7dGhpcy5taW49dGhpcy5tYXg9bnVsbDt0aGlzLmNyb3NzaGFpcj1wKGQuY3Jvc3NoYWlyLHVhKGEub3B0aW9ucy50b29sdGlwLmNyb3NzaGFpcnMpW2M/MDoxXSwhMSk7dmFyIGYsZD10aGlzLm9wdGlvbnMuZXZlbnRzO3JhKHRoaXMsCmEuYXhlcyk9PT0tMSYmKGMmJiF0aGlzLmlzQ29sb3JBeGlzP2EuYXhlcy5zcGxpY2UoYS54QXhpcy5sZW5ndGgsMCx0aGlzKTphLmF4ZXMucHVzaCh0aGlzKSxhW3RoaXMuY29sbF0ucHVzaCh0aGlzKSk7dGhpcy5zZXJpZXM9dGhpcy5zZXJpZXN8fFtdO2lmKGEuaW52ZXJ0ZWQmJmMmJnRoaXMucmV2ZXJzZWQ9PT11KXRoaXMucmV2ZXJzZWQ9ITA7dGhpcy5yZW1vdmVQbG90TGluZT10aGlzLnJlbW92ZVBsb3RCYW5kPXRoaXMucmVtb3ZlUGxvdEJhbmRPckxpbmU7Zm9yKGYgaW4gZClEKHRoaXMsZixkW2ZdKTtpZih0aGlzLmlzTG9nKXRoaXMudmFsMmxpbj1OYSx0aGlzLmxpbjJ2YWw9emF9LHNldE9wdGlvbnM6ZnVuY3Rpb24oYSl7dGhpcy5vcHRpb25zPUModGhpcy5kZWZhdWx0T3B0aW9ucyx0aGlzLmlzWEF4aXM/e306dGhpcy5kZWZhdWx0WUF4aXNPcHRpb25zLFt0aGlzLmRlZmF1bHRUb3BBeGlzT3B0aW9ucyx0aGlzLmRlZmF1bHRSaWdodEF4aXNPcHRpb25zLHRoaXMuZGVmYXVsdEJvdHRvbUF4aXNPcHRpb25zLAp0aGlzLmRlZmF1bHRMZWZ0QXhpc09wdGlvbnNdW3RoaXMuc2lkZV0sQyhPW3RoaXMuY29sbF0sYSkpfSxkZWZhdWx0TGFiZWxGb3JtYXR0ZXI6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmF4aXMsYj10aGlzLnZhbHVlLGM9YS5jYXRlZ29yaWVzLGQ9dGhpcy5kYXRlVGltZUxhYmVsRm9ybWF0LGU9Ty5sYW5nLm51bWVyaWNTeW1ib2xzLGY9ZSYmZS5sZW5ndGgsZyxoPWEub3B0aW9ucy5sYWJlbHMuZm9ybWF0LGE9YS5pc0xvZz9iOmEudGlja0ludGVydmFsO2lmKGgpZz1LYShoLHRoaXMpO2Vsc2UgaWYoYylnPWI7ZWxzZSBpZihkKWc9bGEoZCxiKTtlbHNlIGlmKGYmJmE+PTFFMylmb3IoO2YtLSYmZz09PXU7KWM9TWF0aC5wb3coMUUzLGYrMSksYT49YyYmYioxMCVjPT09MCYmZVtmXSE9PW51bGwmJihnPXoubnVtYmVyRm9ybWF0KGIvYywtMSkrZVtmXSk7Zz09PXUmJihnPVEoYik+PTFFND96Lm51bWJlckZvcm1hdChiLC0xKTp6Lm51bWJlckZvcm1hdChiLC0xLHUsIiIpKTtyZXR1cm4gZ30sCmdldFNlcmllc0V4dHJlbWVzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPWEuY2hhcnQ7YS5oYXNWaXNpYmxlU2VyaWVzPSExO2EuZGF0YU1pbj1hLmRhdGFNYXg9YS50aHJlc2hvbGQ9bnVsbDthLnNvZnRUaHJlc2hvbGQ9IWEuaXNYQXhpczthLmJ1aWxkU3RhY2tzJiZhLmJ1aWxkU3RhY2tzKCk7bihhLnNlcmllcyxmdW5jdGlvbihjKXtpZihjLnZpc2libGV8fCFiLm9wdGlvbnMuY2hhcnQuaWdub3JlSGlkZGVuU2VyaWVzKXt2YXIgZD1jLm9wdGlvbnMsZT1kLnRocmVzaG9sZCxmO2EuaGFzVmlzaWJsZVNlcmllcz0hMDthLmlzTG9nJiZlPD0wJiYoZT1udWxsKTtpZihhLmlzWEF4aXMpe2lmKGQ9Yy54RGF0YSxkLmxlbmd0aClhLmRhdGFNaW49RShwKGEuZGF0YU1pbixkWzBdKSxPYShkKSksYS5kYXRhTWF4PXMocChhLmRhdGFNYXgsZFswXSksRWEoZCkpfWVsc2V7Yy5nZXRFeHRyZW1lcygpO2Y9Yy5kYXRhTWF4O2M9Yy5kYXRhTWluO2lmKHQoYykmJnQoZikpYS5kYXRhTWluPUUocChhLmRhdGFNaW4sCmMpLGMpLGEuZGF0YU1heD1zKHAoYS5kYXRhTWF4LGYpLGYpO2lmKHQoZSkpYS50aHJlc2hvbGQ9ZTtpZighZC5zb2Z0VGhyZXNob2xkfHxhLmlzTG9nKWEuc29mdFRocmVzaG9sZD0hMX19fSl9LHRyYW5zbGF0ZTpmdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGc9dGhpcy5saW5rZWRQYXJlbnR8fHRoaXMsaD0xLGk9MCxqPWQ/Zy5vbGRUcmFuc0E6Zy50cmFuc0EsZD1kP2cub2xkTWluOmcubWluLGs9Zy5taW5QaXhlbFBhZGRpbmcsZT0oZy5pc09yZGluYWx8fGcuaXNCcm9rZW58fGcuaXNMb2cmJmUpJiZnLmxpbjJ2YWw7aWYoIWopaj1nLnRyYW5zQTtpZihjKWgqPS0xLGk9Zy5sZW47Zy5yZXZlcnNlZCYmKGgqPS0xLGktPWgqKGcuc2VjdG9yfHxnLmxlbikpO2I/KGE9YSpoK2ksYS09ayxhPWEvaitkLGUmJihhPWcubGluMnZhbChhKSkpOihlJiYoYT1nLnZhbDJsaW4oYSkpLGY9PT0iYmV0d2VlbiImJihmPTAuNSksYT1oKihhLWQpKmoraStoKmsrKHRhKGYpP2oqZipnLnBvaW50UmFuZ2U6CjApKTtyZXR1cm4gYX0sdG9QaXhlbHM6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy50cmFuc2xhdGUoYSwhMSwhdGhpcy5ob3JpeixudWxsLCEwKSsoYj8wOnRoaXMucG9zKX0sdG9WYWx1ZTpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLnRyYW5zbGF0ZShhLShiPzA6dGhpcy5wb3MpLCEwLCF0aGlzLmhvcml6LG51bGwsITApfSxnZXRQbG90TGluZVBhdGg6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj10aGlzLmNoYXJ0LGc9dGhpcy5sZWZ0LGg9dGhpcy50b3AsaSxqLGs9YyYmZi5vbGRDaGFydEhlaWdodHx8Zi5jaGFydEhlaWdodCxsPWMmJmYub2xkQ2hhcnRXaWR0aHx8Zi5jaGFydFdpZHRoLG07aT10aGlzLnRyYW5zQjt2YXIgbz1mdW5jdGlvbihhLGIsYyl7aWYoYTxifHxhPmMpZD9hPUUocyhiLGEpLGMpOm09ITA7cmV0dXJuIGF9LGU9cChlLHRoaXMudHJhbnNsYXRlKGEsbnVsbCxudWxsLGMpKSxhPWM9eShlK2kpO2k9aj15KGstZS1pKTtpc05hTihlKT9tPSEwOnRoaXMuaG9yaXo/CihpPWgsaj1rLXRoaXMuYm90dG9tLGE9Yz1vKGEsZyxnK3RoaXMud2lkdGgpKTooYT1nLGM9bC10aGlzLnJpZ2h0LGk9aj1vKGksaCxoK3RoaXMuaGVpZ2h0KSk7cmV0dXJuIG0mJiFkP251bGw6Zi5yZW5kZXJlci5jcmlzcExpbmUoWyJNIixhLGksIkwiLGMsal0sYnx8MSl9LGdldExpbmVhclRpY2tQb3NpdGlvbnM6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU9bmEoVShiL2EpKmEpLGY9bmEoRmEoYy9hKSphKSxnPVtdO2lmKGI9PT1jJiZ0YShiKSlyZXR1cm5bYl07Zm9yKGI9ZTtiPD1mOyl7Zy5wdXNoKGIpO2I9bmEoYithKTtpZihiPT09ZClicmVhaztkPWJ9cmV0dXJuIGd9LGdldE1pbm9yVGlja1Bvc2l0aW9uczpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucyxiPXRoaXMudGlja1Bvc2l0aW9ucyxjPXRoaXMubWlub3JUaWNrSW50ZXJ2YWwsZD1bXSxlLGY9dGhpcy5wb2ludFJhbmdlUGFkZGluZ3x8MDtlPXRoaXMubWluLWY7dmFyIGY9dGhpcy5tYXgrZixnPWYtZTtpZihnJiYKZy9jPHRoaXMubGVuLzMpaWYodGhpcy5pc0xvZyl7Zj1iLmxlbmd0aDtmb3IoZT0xO2U8ZjtlKyspZD1kLmNvbmNhdCh0aGlzLmdldExvZ1RpY2tQb3NpdGlvbnMoYyxiW2UtMV0sYltlXSwhMCkpfWVsc2UgaWYodGhpcy5pc0RhdGV0aW1lQXhpcyYmYS5taW5vclRpY2tJbnRlcnZhbD09PSJhdXRvIilkPWQuY29uY2F0KHRoaXMuZ2V0VGltZVRpY2tzKHRoaXMubm9ybWFsaXplVGltZVRpY2tJbnRlcnZhbChjKSxlLGYsYS5zdGFydE9mV2VlaykpO2Vsc2UgZm9yKGI9ZSsoYlswXS1lKSVjO2I8PWY7Yis9YylkLnB1c2goYik7ZC5sZW5ndGghPT0wJiZ0aGlzLnRyaW1UaWNrcyhkLGEuc3RhcnRPblRpY2ssYS5lbmRPblRpY2spO3JldHVybiBkfSxhZGp1c3RGb3JNaW5SYW5nZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucyxiPXRoaXMubWluLGM9dGhpcy5tYXgsZCxlPXRoaXMuZGF0YU1heC10aGlzLmRhdGFNaW4+PXRoaXMubWluUmFuZ2UsZixnLGgsaSxqLGs7aWYodGhpcy5pc1hBeGlzJiYKdGhpcy5taW5SYW5nZT09PXUmJiF0aGlzLmlzTG9nKXQoYS5taW4pfHx0KGEubWF4KT90aGlzLm1pblJhbmdlPW51bGw6KG4odGhpcy5zZXJpZXMsZnVuY3Rpb24oYSl7aT1hLnhEYXRhO2ZvcihnPWo9YS54SW5jcmVtZW50PzE6aS5sZW5ndGgtMTtnPjA7Zy0tKWlmKGg9aVtnXS1pW2ctMV0sZj09PXV8fGg8ZilmPWh9KSx0aGlzLm1pblJhbmdlPUUoZio1LHRoaXMuZGF0YU1heC10aGlzLmRhdGFNaW4pKTtpZihjLWI8dGhpcy5taW5SYW5nZSl7az10aGlzLm1pblJhbmdlO2Q9KGstYytiKS8yO2Q9W2ItZCxwKGEubWluLGItZCldO2lmKGUpZFsyXT10aGlzLmRhdGFNaW47Yj1FYShkKTtjPVtiK2sscChhLm1heCxiK2spXTtpZihlKWNbMl09dGhpcy5kYXRhTWF4O2M9T2EoYyk7Yy1iPGsmJihkWzBdPWMtayxkWzFdPXAoYS5taW4sYy1rKSxiPUVhKGQpKX10aGlzLm1pbj1iO3RoaXMubWF4PWN9LHNldEF4aXNUcmFuc2xhdGlvbjpmdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9Yi5tYXgtCmIubWluLGQ9Yi5heGlzUG9pbnRSYW5nZXx8MCxlLGY9MCxnPTAsaD1iLmxpbmtlZFBhcmVudCxpPSEhYi5jYXRlZ29yaWVzLGo9Yi50cmFuc0Esaz1iLmlzWEF4aXM7aWYoa3x8aXx8ZClpZihoPyhmPWgubWluUG9pbnRPZmZzZXQsZz1oLnBvaW50UmFuZ2VQYWRkaW5nKToobihiLnNlcmllcyxmdW5jdGlvbihhKXt2YXIgYj1hLmNsb3Nlc3RQb2ludFJhbmdlOyFhLm5vU2hhcmVkVG9vbHRpcCYmdChiKSYmKGU9dChlKT9FKGUsYik6Yil9KSxuKGIuc2VyaWVzLGZ1bmN0aW9uKGEpe3ZhciBjPWk/MTprP3AoYS5vcHRpb25zLnBvaW50UmFuZ2UsZSwwKTpiLmF4aXNQb2ludFJhbmdlfHwwLGE9YS5vcHRpb25zLnBvaW50UGxhY2VtZW50O2Q9cyhkLGMpO2Iuc2luZ2xlfHwoZj1zKGYsRGEoYSk/MDpjLzIpLGc9cyhnLGE9PT0ib24iPzA6YykpfSkpLGg9Yi5vcmRpbmFsU2xvcGUmJmU/Yi5vcmRpbmFsU2xvcGUvZToxLGIubWluUG9pbnRPZmZzZXQ9Zio9aCxiLnBvaW50UmFuZ2VQYWRkaW5nPQpnKj1oLGIucG9pbnRSYW5nZT1FKGQsYyksayliLmNsb3Nlc3RQb2ludFJhbmdlPWU7aWYoYSliLm9sZFRyYW5zQT1qO2IudHJhbnNsYXRpb25TbG9wZT1iLnRyYW5zQT1qPWIubGVuLyhjK2d8fDEpO2IudHJhbnNCPWIuaG9yaXo/Yi5sZWZ0OmIuYm90dG9tO2IubWluUGl4ZWxQYWRkaW5nPWoqZn0sbWluRnJvbVJhbmdlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF4LXRoaXMucmFuZ2V9LHNldFRpY2tJbnRlcnZhbDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9Yi5jaGFydCxkPWIub3B0aW9ucyxlPWIuaXNMb2csZj1iLmlzRGF0ZXRpbWVBeGlzLGc9Yi5pc1hBeGlzLGg9Yi5pc0xpbmtlZCxpPWQubWF4UGFkZGluZyxqPWQubWluUGFkZGluZyxrPWQudGlja0ludGVydmFsLGw9ZC50aWNrUGl4ZWxJbnRlcnZhbCxtPWIuY2F0ZWdvcmllcyxvPWIudGhyZXNob2xkLHE9Yi5zb2Z0VGhyZXNob2xkLHIsQSxULHY7IWYmJiFtJiYhaCYmdGhpcy5nZXRUaWNrQW1vdW50KCk7VD1wKGIudXNlck1pbiwKZC5taW4pO3Y9cChiLnVzZXJNYXgsZC5tYXgpO2g/KGIubGlua2VkUGFyZW50PWNbYi5jb2xsXVtkLmxpbmtlZFRvXSxjPWIubGlua2VkUGFyZW50LmdldEV4dHJlbWVzKCksYi5taW49cChjLm1pbixjLmRhdGFNaW4pLGIubWF4PXAoYy5tYXgsYy5kYXRhTWF4KSxkLnR5cGUhPT1iLmxpbmtlZFBhcmVudC5vcHRpb25zLnR5cGUmJmVhKDExLDEpKTooIXEmJnQobykmJihiLmRhdGFNaW4+PW8/KHI9byxqPTApOmIuZGF0YU1heDw9byYmKEE9byxpPTApKSxiLm1pbj1wKFQscixiLmRhdGFNaW4pLGIubWF4PXAodixBLGIuZGF0YU1heCkpO2lmKGUpIWEmJkUoYi5taW4scChiLmRhdGFNaW4sYi5taW4pKTw9MCYmZWEoMTAsMSksYi5taW49bmEoTmEoYi5taW4pLDE1KSxiLm1heD1uYShOYShiLm1heCksMTUpO2lmKGIucmFuZ2UmJnQoYi5tYXgpKWIudXNlck1pbj1iLm1pbj1UPXMoYi5taW4sYi5taW5Gcm9tUmFuZ2UoKSksYi51c2VyTWF4PXY9Yi5tYXgsYi5yYW5nZT1udWxsO2IuYmVmb3JlUGFkZGluZyYmCmIuYmVmb3JlUGFkZGluZygpO2IuYWRqdXN0Rm9yTWluUmFuZ2UoKTtpZighbSYmIWIuYXhpc1BvaW50UmFuZ2UmJiFiLnVzZVBlcmNlbnRhZ2UmJiFoJiZ0KGIubWluKSYmdChiLm1heCkmJihjPWIubWF4LWIubWluKSkhdChUKSYmaiYmKGIubWluLT1jKmopLCF0KHYpJiZpJiYoYi5tYXgrPWMqaSk7aWYodGEoZC5mbG9vcikpYi5taW49cyhiLm1pbixkLmZsb29yKTtpZih0YShkLmNlaWxpbmcpKWIubWF4PUUoYi5tYXgsZC5jZWlsaW5nKTtpZihxJiZ0KGIuZGF0YU1pbikpaWYobz1vfHwwLCF0KFQpJiZiLm1pbjxvJiZiLmRhdGFNaW4+PW8pYi5taW49bztlbHNlIGlmKCF0KHYpJiZiLm1heD5vJiZiLmRhdGFNYXg8PW8pYi5tYXg9bztiLnRpY2tJbnRlcnZhbD1iLm1pbj09PWIubWF4fHxiLm1pbj09PXZvaWQgMHx8Yi5tYXg9PT12b2lkIDA/MTpoJiYhayYmbD09PWIubGlua2VkUGFyZW50Lm9wdGlvbnMudGlja1BpeGVsSW50ZXJ2YWw/az1iLmxpbmtlZFBhcmVudC50aWNrSW50ZXJ2YWw6CnAoayx0aGlzLnRpY2tBbW91bnQ/KGIubWF4LWIubWluKS9zKHRoaXMudGlja0Ftb3VudC0xLDEpOnZvaWQgMCxtPzE6KGIubWF4LWIubWluKSpsL3MoYi5sZW4sbCkpO2cmJiFhJiZuKGIuc2VyaWVzLGZ1bmN0aW9uKGEpe2EucHJvY2Vzc0RhdGEoYi5taW4hPT1iLm9sZE1pbnx8Yi5tYXghPT1iLm9sZE1heCl9KTtiLnNldEF4aXNUcmFuc2xhdGlvbighMCk7Yi5iZWZvcmVTZXRUaWNrUG9zaXRpb25zJiZiLmJlZm9yZVNldFRpY2tQb3NpdGlvbnMoKTtpZihiLnBvc3RQcm9jZXNzVGlja0ludGVydmFsKWIudGlja0ludGVydmFsPWIucG9zdFByb2Nlc3NUaWNrSW50ZXJ2YWwoYi50aWNrSW50ZXJ2YWwpO2lmKGIucG9pbnRSYW5nZSYmIWspYi50aWNrSW50ZXJ2YWw9cyhiLnBvaW50UmFuZ2UsYi50aWNrSW50ZXJ2YWwpO2E9cChkLm1pblRpY2tJbnRlcnZhbCxiLmlzRGF0ZXRpbWVBeGlzJiZiLmNsb3Nlc3RQb2ludFJhbmdlKTtpZighayYmYi50aWNrSW50ZXJ2YWw8YSliLnRpY2tJbnRlcnZhbD0KYTtpZighZiYmIWUmJiFrKWIudGlja0ludGVydmFsPUJiKGIudGlja0ludGVydmFsLG51bGwsQWIoYi50aWNrSW50ZXJ2YWwpLHAoZC5hbGxvd0RlY2ltYWxzLCEoYi50aWNrSW50ZXJ2YWw+MC41JiZiLnRpY2tJbnRlcnZhbDw1JiZiLm1heD4xRTMmJmIubWF4PDk5OTkpKSwhIXRoaXMudGlja0Ftb3VudCk7aWYoIXRoaXMudGlja0Ftb3VudCYmdGhpcy5sZW4pYi50aWNrSW50ZXJ2YWw9Yi51bnNxdWlzaCgpO3RoaXMuc2V0VGlja1Bvc2l0aW9ucygpfSxzZXRUaWNrUG9zaXRpb25zOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcHRpb25zLGIsYz1hLnRpY2tQb3NpdGlvbnMsZD1hLnRpY2tQb3NpdGlvbmVyLGU9YS5zdGFydE9uVGljayxmPWEuZW5kT25UaWNrLGc7dGhpcy50aWNrbWFya09mZnNldD10aGlzLmNhdGVnb3JpZXMmJmEudGlja21hcmtQbGFjZW1lbnQ9PT0iYmV0d2VlbiImJnRoaXMudGlja0ludGVydmFsPT09MT8wLjU6MDt0aGlzLm1pbm9yVGlja0ludGVydmFsPWEubWlub3JUaWNrSW50ZXJ2YWw9PT0KImF1dG8iJiZ0aGlzLnRpY2tJbnRlcnZhbD90aGlzLnRpY2tJbnRlcnZhbC81OmEubWlub3JUaWNrSW50ZXJ2YWw7dGhpcy50aWNrUG9zaXRpb25zPWI9YyYmYy5zbGljZSgpO2lmKCFiJiYoYj10aGlzLmlzRGF0ZXRpbWVBeGlzP3RoaXMuZ2V0VGltZVRpY2tzKHRoaXMubm9ybWFsaXplVGltZVRpY2tJbnRlcnZhbCh0aGlzLnRpY2tJbnRlcnZhbCxhLnVuaXRzKSx0aGlzLm1pbix0aGlzLm1heCxhLnN0YXJ0T2ZXZWVrLHRoaXMub3JkaW5hbFBvc2l0aW9ucyx0aGlzLmNsb3Nlc3RQb2ludFJhbmdlLCEwKTp0aGlzLmlzTG9nP3RoaXMuZ2V0TG9nVGlja1Bvc2l0aW9ucyh0aGlzLnRpY2tJbnRlcnZhbCx0aGlzLm1pbix0aGlzLm1heCk6dGhpcy5nZXRMaW5lYXJUaWNrUG9zaXRpb25zKHRoaXMudGlja0ludGVydmFsLHRoaXMubWluLHRoaXMubWF4KSxiLmxlbmd0aD50aGlzLmxlbiYmKGI9W2JbMF0sYi5wb3AoKV0pLHRoaXMudGlja1Bvc2l0aW9ucz1iLGQmJihkPWQuYXBwbHkodGhpcywKW3RoaXMubWluLHRoaXMubWF4XSkpKSl0aGlzLnRpY2tQb3NpdGlvbnM9Yj1kO2lmKCF0aGlzLmlzTGlua2VkKXRoaXMudHJpbVRpY2tzKGIsZSxmKSx0aGlzLm1pbj09PXRoaXMubWF4JiZ0KHRoaXMubWluKSYmIXRoaXMudGlja0Ftb3VudCYmKGc9ITAsdGhpcy5taW4tPTAuNSx0aGlzLm1heCs9MC41KSx0aGlzLnNpbmdsZT1nLCFjJiYhZCYmdGhpcy5hZGp1c3RUaWNrQW1vdW50KCl9LHRyaW1UaWNrczpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YVswXSxlPWFbYS5sZW5ndGgtMV0sZj10aGlzLm1pblBvaW50T2Zmc2V0fHwwO2lmKGIpdGhpcy5taW49ZDtlbHNlIGZvcig7dGhpcy5taW4tZj5hWzBdOylhLnNoaWZ0KCk7aWYoYyl0aGlzLm1heD1lO2Vsc2UgZm9yKDt0aGlzLm1heCtmPGFbYS5sZW5ndGgtMV07KWEucG9wKCk7YS5sZW5ndGg9PT0wJiZ0KGQpJiZhLnB1c2goKGUrZCkvMil9LGFsaWduVG9PdGhlcnM6ZnVuY3Rpb24oKXt2YXIgYT17fSxiLGM9dGhpcy5vcHRpb25zO3RoaXMuY2hhcnQub3B0aW9ucy5jaGFydC5hbGlnblRpY2tzIT09CiExJiZjLmFsaWduVGlja3MhPT0hMSYmbih0aGlzLmNoYXJ0W3RoaXMuY29sbF0sZnVuY3Rpb24oYyl7dmFyIGU9Yy5vcHRpb25zLGU9W2MuaG9yaXo/ZS5sZWZ0OmUudG9wLGUud2lkdGgsZS5oZWlnaHQsZS5wYW5lXS5qb2luKCIsIik7Yy5zZXJpZXMubGVuZ3RoJiYoYVtlXT9iPSEwOmFbZV09MSl9KTtyZXR1cm4gYn0sZ2V0VGlja0Ftb3VudDpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucyxiPWEudGlja0Ftb3VudCxjPWEudGlja1BpeGVsSW50ZXJ2YWw7IXQoYS50aWNrSW50ZXJ2YWwpJiZ0aGlzLmxlbjxjJiYhdGhpcy5pc1JhZGlhbCYmIXRoaXMuaXNMb2cmJmEuc3RhcnRPblRpY2smJmEuZW5kT25UaWNrJiYoYj0yKTshYiYmdGhpcy5hbGlnblRvT3RoZXJzKCkmJihiPUZhKHRoaXMubGVuL2MpKzEpO2lmKGI8NCl0aGlzLmZpbmFsVGlja0FtdD1iLGI9NTt0aGlzLnRpY2tBbW91bnQ9Yn0sYWRqdXN0VGlja0Ftb3VudDpmdW5jdGlvbigpe3ZhciBhPXRoaXMudGlja0ludGVydmFsLApiPXRoaXMudGlja1Bvc2l0aW9ucyxjPXRoaXMudGlja0Ftb3VudCxkPXRoaXMuZmluYWxUaWNrQW10LGU9YiYmYi5sZW5ndGg7aWYoZTxjKXtmb3IoO2IubGVuZ3RoPGM7KWIucHVzaChuYShiW2IubGVuZ3RoLTFdK2EpKTt0aGlzLnRyYW5zQSo9KGUtMSkvKGMtMSk7dGhpcy5tYXg9YltiLmxlbmd0aC0xXX1lbHNlIGU+YyYmKHRoaXMudGlja0ludGVydmFsKj0yLHRoaXMuc2V0VGlja1Bvc2l0aW9ucygpKTtpZih0KGQpKXtmb3IoYT1jPWIubGVuZ3RoO2EtLTspKGQ9PT0zJiZhJTI9PT0xfHxkPD0yJiZhPjAmJmE8Yy0xKSYmYi5zcGxpY2UoYSwxKTt0aGlzLmZpbmFsVGlja0FtdD11fX0sc2V0U2NhbGU6ZnVuY3Rpb24oKXt2YXIgYSxiO3RoaXMub2xkTWluPXRoaXMubWluO3RoaXMub2xkTWF4PXRoaXMubWF4O3RoaXMub2xkQXhpc0xlbmd0aD10aGlzLmxlbjt0aGlzLnNldEF4aXNTaXplKCk7Yj10aGlzLmxlbiE9PXRoaXMub2xkQXhpc0xlbmd0aDtuKHRoaXMuc2VyaWVzLGZ1bmN0aW9uKGIpe2lmKGIuaXNEaXJ0eURhdGF8fApiLmlzRGlydHl8fGIueEF4aXMuaXNEaXJ0eSlhPSEwfSk7aWYoYnx8YXx8dGhpcy5pc0xpbmtlZHx8dGhpcy5mb3JjZVJlZHJhd3x8dGhpcy51c2VyTWluIT09dGhpcy5vbGRVc2VyTWlufHx0aGlzLnVzZXJNYXghPT10aGlzLm9sZFVzZXJNYXh8fHRoaXMuYWxpZ25Ub090aGVycygpKXtpZih0aGlzLnJlc2V0U3RhY2tzJiZ0aGlzLnJlc2V0U3RhY2tzKCksdGhpcy5mb3JjZVJlZHJhdz0hMSx0aGlzLmdldFNlcmllc0V4dHJlbWVzKCksdGhpcy5zZXRUaWNrSW50ZXJ2YWwoKSx0aGlzLm9sZFVzZXJNaW49dGhpcy51c2VyTWluLHRoaXMub2xkVXNlck1heD10aGlzLnVzZXJNYXgsIXRoaXMuaXNEaXJ0eSl0aGlzLmlzRGlydHk9Ynx8dGhpcy5taW4hPT10aGlzLm9sZE1pbnx8dGhpcy5tYXghPT10aGlzLm9sZE1heH1lbHNlIHRoaXMuY2xlYW5TdGFja3MmJnRoaXMuY2xlYW5TdGFja3MoKX0sc2V0RXh0cmVtZXM6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj10aGlzLGc9Zi5jaGFydCwKYz1wKGMsITApO24oZi5zZXJpZXMsZnVuY3Rpb24oYSl7ZGVsZXRlIGEua2RUcmVlfSk7ZT13KGUse21pbjphLG1heDpifSk7TShmLCJzZXRFeHRyZW1lcyIsZSxmdW5jdGlvbigpe2YudXNlck1pbj1hO2YudXNlck1heD1iO2YuZXZlbnRBcmdzPWU7YyYmZy5yZWRyYXcoZCl9KX0sem9vbTpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZGF0YU1pbixkPXRoaXMuZGF0YU1heCxlPXRoaXMub3B0aW9ucyxmPUUoYyxwKGUubWluLGMpKSxlPXMoZCxwKGUubWF4LGQpKTt0aGlzLmFsbG93Wm9vbU91dHNpZGV8fCh0KGMpJiZhPD1mJiYoYT1mKSx0KGQpJiZiPj1lJiYoYj1lKSk7dGhpcy5kaXNwbGF5QnRuPWEhPT11fHxiIT09dTt0aGlzLnNldEV4dHJlbWVzKGEsYiwhMSx1LHt0cmlnZ2VyOiJ6b29tIn0pO3JldHVybiEwfSxzZXRBeGlzU2l6ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMuY2hhcnQsYj10aGlzLm9wdGlvbnMsYz1iLm9mZnNldExlZnR8fDAsZD10aGlzLmhvcml6LGU9cChiLndpZHRoLAphLnBsb3RXaWR0aC1jKyhiLm9mZnNldFJpZ2h0fHwwKSksZj1wKGIuaGVpZ2h0LGEucGxvdEhlaWdodCksZz1wKGIudG9wLGEucGxvdFRvcCksYj1wKGIubGVmdCxhLnBsb3RMZWZ0K2MpLGM9LyUkLztjLnRlc3QoZikmJihmPU1hdGgucm91bmQocGFyc2VGbG9hdChmKS8xMDAqYS5wbG90SGVpZ2h0KSk7Yy50ZXN0KGcpJiYoZz1NYXRoLnJvdW5kKHBhcnNlRmxvYXQoZykvMTAwKmEucGxvdEhlaWdodCthLnBsb3RUb3ApKTt0aGlzLmxlZnQ9Yjt0aGlzLnRvcD1nO3RoaXMud2lkdGg9ZTt0aGlzLmhlaWdodD1mO3RoaXMuYm90dG9tPWEuY2hhcnRIZWlnaHQtZi1nO3RoaXMucmlnaHQ9YS5jaGFydFdpZHRoLWUtYjt0aGlzLmxlbj1zKGQ/ZTpmLDApO3RoaXMucG9zPWQ/YjpnfSxnZXRFeHRyZW1lczpmdW5jdGlvbigpe3ZhciBhPXRoaXMuaXNMb2c7cmV0dXJue21pbjphP25hKHphKHRoaXMubWluKSk6dGhpcy5taW4sbWF4OmE/bmEoemEodGhpcy5tYXgpKTp0aGlzLm1heCxkYXRhTWluOnRoaXMuZGF0YU1pbiwKZGF0YU1heDp0aGlzLmRhdGFNYXgsdXNlck1pbjp0aGlzLnVzZXJNaW4sdXNlck1heDp0aGlzLnVzZXJNYXh9fSxnZXRUaHJlc2hvbGQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5pc0xvZyxjPWI/emEodGhpcy5taW4pOnRoaXMubWluLGI9Yj96YSh0aGlzLm1heCk6dGhpcy5tYXg7YT09PW51bGw/YT1iPDA/YjpjOmM+YT9hPWM6YjxhJiYoYT1iKTtyZXR1cm4gdGhpcy50cmFuc2xhdGUoYSwwLDEsMCwxKX0sYXV0b0xhYmVsQWxpZ246ZnVuY3Rpb24oYSl7YT0ocChhLDApLXRoaXMuc2lkZSo5MCs3MjApJTM2MDtyZXR1cm4gYT4xNSYmYTwxNjU/InJpZ2h0IjphPjE5NSYmYTwzNDU/ImxlZnQiOiJjZW50ZXIifSx1bnNxdWlzaDpmdW5jdGlvbigpe3ZhciBhPXRoaXMudGlja3MsYj10aGlzLm9wdGlvbnMubGFiZWxzLGM9dGhpcy5ob3JpeixkPXRoaXMudGlja0ludGVydmFsLGU9ZCxmPXRoaXMubGVuLygoKHRoaXMuY2F0ZWdvcmllcz8xOjApK3RoaXMubWF4LXRoaXMubWluKS9kKSxnLApoPWIucm90YXRpb24saT10aGlzLmNoYXJ0LnJlbmRlcmVyLmZvbnRNZXRyaWNzKGIuc3R5bGUuZm9udFNpemUsYVswXSYmYVswXS5sYWJlbCksaixrPU51bWJlci5NQVhfVkFMVUUsbCxtPWZ1bmN0aW9uKGEpe2EvPWZ8fDE7YT1hPjE/RmEoYSk6MTtyZXR1cm4gYSpkfTtjPyhsPSFiLnN0YWdnZXJMaW5lcyYmIWIuc3RlcCYmKHQoaCk/W2hdOmY8cChiLmF1dG9Sb3RhdGlvbkxpbWl0LDgwKSYmYi5hdXRvUm90YXRpb24pKSYmbihsLGZ1bmN0aW9uKGEpe3ZhciBiO2lmKGE9PT1ofHxhJiZhPj0tOTAmJmE8PTkwKWo9bShRKGkuaC9pYShvYSphKSkpLGI9aitRKGEvMzYwKSxiPGsmJihrPWIsZz1hLGU9ail9KTpiLnN0ZXB8fChlPW0oaS5oKSk7dGhpcy5hdXRvUm90YXRpb249bDt0aGlzLmxhYmVsUm90YXRpb249cChnLGgpO3JldHVybiBlfSxyZW5kZXJVbnNxdWlzaDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuY2hhcnQsYj1hLnJlbmRlcmVyLGM9dGhpcy50aWNrUG9zaXRpb25zLGQ9dGhpcy50aWNrcywKZT10aGlzLm9wdGlvbnMubGFiZWxzLGY9dGhpcy5ob3JpeixnPWEubWFyZ2luLGg9dGhpcy5jYXRlZ29yaWVzP2MubGVuZ3RoOmMubGVuZ3RoLTEsZz10aGlzLnNsb3RXaWR0aD1mJiYoZS5zdGVwfHwwKTwyJiYhZS5yb3RhdGlvbiYmKHRoaXMuc3RhZ2dlckxpbmVzfHwxKSphLnBsb3RXaWR0aC9ofHwhZiYmKGdbM10mJmdbM10tYS5zcGFjaW5nWzNdfHxhLmNoYXJ0V2lkdGgqMC4zMyksaT1zKDEseShnLTIqKGUucGFkZGluZ3x8NSkpKSxqPXt9LGg9Yi5mb250TWV0cmljcyhlLnN0eWxlLmZvbnRTaXplLGRbMF0mJmRbMF0ubGFiZWwpLGs9ZS5zdHlsZS50ZXh0T3ZlcmZsb3csbCxtPTAsbyxxO2lmKCFEYShlLnJvdGF0aW9uKSlqLnJvdGF0aW9uPWUucm90YXRpb258fDA7aWYodGhpcy5hdXRvUm90YXRpb24pbihjLGZ1bmN0aW9uKGEpe2lmKChhPWRbYV0pJiZhLmxhYmVsTGVuZ3RoPm0pbT1hLmxhYmVsTGVuZ3RofSksbT5pJiZtPmguaD9qLnJvdGF0aW9uPXRoaXMubGFiZWxSb3RhdGlvbjoKdGhpcy5sYWJlbFJvdGF0aW9uPTA7ZWxzZSBpZihnJiYobD17d2lkdGg6aSsicHgifSwhaykpe2wudGV4dE92ZXJmbG93PSJjbGlwIjtmb3Iobz1jLmxlbmd0aDshZiYmby0tOylpZihxPWNbb10saT1kW3FdLmxhYmVsKWlmKGkuc3R5bGVzLnRleHRPdmVyZmxvdz09PSJlbGxpcHNpcyImJmkuY3NzKHt0ZXh0T3ZlcmZsb3c6ImNsaXAifSksaS5nZXRCQm94KCkuaGVpZ2h0PnRoaXMubGVuL2MubGVuZ3RoLShoLmgtaC5mKXx8ZFtxXS5sYWJlbExlbmd0aD5nKWkuc3BlY0Nzcz17dGV4dE92ZXJmbG93OiJlbGxpcHNpcyJ9fWlmKGoucm90YXRpb24mJihsPXt3aWR0aDoobT5hLmNoYXJ0SGVpZ2h0KjAuNT9hLmNoYXJ0SGVpZ2h0KjAuMzM6YS5jaGFydEhlaWdodCkrInB4In0sIWspKWwudGV4dE92ZXJmbG93PSJlbGxpcHNpcyI7aWYodGhpcy5sYWJlbEFsaWduPWUuYWxpZ258fHRoaXMuYXV0b0xhYmVsQWxpZ24odGhpcy5sYWJlbFJvdGF0aW9uKSlqLmFsaWduPXRoaXMubGFiZWxBbGlnbjsKbihjLGZ1bmN0aW9uKGEpe3ZhciBiPShhPWRbYV0pJiZhLmxhYmVsO2lmKGIpYi5hdHRyKGopLGwmJmIuY3NzKEMobCxiLnNwZWNDc3MpKSxkZWxldGUgYi5zcGVjQ3NzLGEucm90YXRpb249ai5yb3RhdGlvbn0pO3RoaXMudGlja1JvdENvcnI9Yi5yb3RDb3JyKGguYix0aGlzLmxhYmVsUm90YXRpb258fDAsdGhpcy5zaWRlIT09MCl9LGhhc0RhdGE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNWaXNpYmxlU2VyaWVzfHx0KHRoaXMubWluKSYmdCh0aGlzLm1heCkmJiEhdGhpcy50aWNrUG9zaXRpb25zfSxnZXRPZmZzZXQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS5jaGFydCxjPWIucmVuZGVyZXIsZD1hLm9wdGlvbnMsZT1hLnRpY2tQb3NpdGlvbnMsZj1hLnRpY2tzLGc9YS5ob3JpeixoPWEuc2lkZSxpPWIuaW52ZXJ0ZWQ/WzEsMCwzLDJdW2hdOmgsaixrLGw9MCxtLG89MCxxPWQudGl0bGUscj1kLmxhYmVscyxBPTAsVD1hLm9wcG9zaXRlLHY9Yi5heGlzT2Zmc2V0LGI9Yi5jbGlwT2Zmc2V0LAp4PVstMSwxLDEsLTFdW2hdLE4samE9YS5heGlzUGFyZW50O2o9YS5oYXNEYXRhKCk7YS5zaG93QXhpcz1rPWp8fHAoZC5zaG93RW1wdHksITApO2Euc3RhZ2dlckxpbmVzPWEuaG9yaXomJnIuc3RhZ2dlckxpbmVzO2lmKCFhLmF4aXNHcm91cClhLmdyaWRHcm91cD1jLmcoImdyaWQiKS5hdHRyKHt6SW5kZXg6ZC5ncmlkWkluZGV4fHwxfSkuYWRkKGphKSxhLmF4aXNHcm91cD1jLmcoImF4aXMiKS5hdHRyKHt6SW5kZXg6ZC56SW5kZXh8fDJ9KS5hZGQoamEpLGEubGFiZWxHcm91cD1jLmcoImF4aXMtbGFiZWxzIikuYXR0cih7ekluZGV4OnIuekluZGV4fHw3fSkuYWRkQ2xhc3MoImhpZ2hjaGFydHMtIithLmNvbGwudG9Mb3dlckNhc2UoKSsiLWxhYmVscyIpLmFkZChqYSk7aWYoanx8YS5pc0xpbmtlZCl7aWYobihlLGZ1bmN0aW9uKGIpe2ZbYl0/ZltiXS5hZGRMYWJlbCgpOmZbYl09bmV3IGRiKGEsYil9KSxhLnJlbmRlclVuc3F1aXNoKCksci5yZXNlcnZlU3BhY2UhPT0hMSYmKGg9PT0KMHx8aD09PTJ8fHsxOiJsZWZ0IiwzOiJyaWdodCJ9W2hdPT09YS5sYWJlbEFsaWdufHxhLmxhYmVsQWxpZ249PT0iY2VudGVyIikmJm4oZSxmdW5jdGlvbihhKXtBPXMoZlthXS5nZXRMYWJlbFNpemUoKSxBKX0pLGEuc3RhZ2dlckxpbmVzKUEqPWEuc3RhZ2dlckxpbmVzLGEubGFiZWxPZmZzZXQ9QSooYS5vcHBvc2l0ZT8tMToxKX1lbHNlIGZvcihOIGluIGYpZltOXS5kZXN0cm95KCksZGVsZXRlIGZbTl07aWYocSYmcS50ZXh0JiZxLmVuYWJsZWQhPT0hMSl7aWYoIWEuYXhpc1RpdGxlKWEuYXhpc1RpdGxlPWMudGV4dChxLnRleHQsMCwwLHEudXNlSFRNTCkuYXR0cih7ekluZGV4Ojcscm90YXRpb246cS5yb3RhdGlvbnx8MCxhbGlnbjpxLnRleHRBbGlnbnx8e2xvdzpUPyJyaWdodCI6ImxlZnQiLG1pZGRsZToiY2VudGVyIixoaWdoOlQ/ImxlZnQiOiJyaWdodCJ9W3EuYWxpZ25dfSkuYWRkQ2xhc3MoImhpZ2hjaGFydHMtIit0aGlzLmNvbGwudG9Mb3dlckNhc2UoKSsiLXRpdGxlIikuY3NzKHEuc3R5bGUpLmFkZChhLmF4aXNHcm91cCksCmEuYXhpc1RpdGxlLmlzTmV3PSEwO2lmKGspbD1hLmF4aXNUaXRsZS5nZXRCQm94KClbZz8iaGVpZ2h0Ijoid2lkdGgiXSxtPXEub2Zmc2V0LG89dChtKT8wOnAocS5tYXJnaW4sZz81OjEwKTthLmF4aXNUaXRsZVtrPyJzaG93IjoiaGlkZSJdKCEwKX1hLm9mZnNldD14KnAoZC5vZmZzZXQsdltoXSk7YS50aWNrUm90Q29ycj1hLnRpY2tSb3RDb3JyfHx7eDowLHk6MH07Yz1oPT09Mj9hLnRpY2tSb3RDb3JyLnk6MDtnPU1hdGguYWJzKEEpK28rKEEmJngqKGc/cChyLnksYS50aWNrUm90Q29yci55KzgpOnIueCktYyk7YS5heGlzVGl0bGVNYXJnaW49cChtLGcpO3ZbaF09cyh2W2hdLGEuYXhpc1RpdGxlTWFyZ2luK2wreCphLm9mZnNldCxnKTtkPWQub2Zmc2V0PzA6VShkLmxpbmVXaWR0aC8yKSoyO2JbaV09cyhiW2ldLGQpfSxnZXRMaW5lUGF0aDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNoYXJ0LGM9dGhpcy5vcHBvc2l0ZSxkPXRoaXMub2Zmc2V0LGU9dGhpcy5ob3JpeixmPXRoaXMubGVmdCsKKGM/dGhpcy53aWR0aDowKStkLGQ9Yi5jaGFydEhlaWdodC10aGlzLmJvdHRvbS0oYz90aGlzLmhlaWdodDowKStkO2MmJihhKj0tMSk7cmV0dXJuIGIucmVuZGVyZXIuY3Jpc3BMaW5lKFsiTSIsZT90aGlzLmxlZnQ6ZixlP2Q6dGhpcy50b3AsIkwiLGU/Yi5jaGFydFdpZHRoLXRoaXMucmlnaHQ6ZixlP2Q6Yi5jaGFydEhlaWdodC10aGlzLmJvdHRvbV0sYSl9LGdldFRpdGxlUG9zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmhvcml6LGI9dGhpcy5sZWZ0LGM9dGhpcy50b3AsZD10aGlzLmxlbixlPXRoaXMub3B0aW9ucy50aXRsZSxmPWE/YjpjLGc9dGhpcy5vcHBvc2l0ZSxoPXRoaXMub2Zmc2V0LGk9ZS54fHwwLGo9ZS55fHwwLGs9RyhlLnN0eWxlLmZvbnRTaXplfHwxMiksZD17bG93OmYrKGE/MDpkKSxtaWRkbGU6ZitkLzIsaGlnaDpmKyhhP2Q6MCl9W2UuYWxpZ25dLGI9KGE/Yyt0aGlzLmhlaWdodDpiKSsoYT8xOi0xKSooZz8tMToxKSp0aGlzLmF4aXNUaXRsZU1hcmdpbisKKHRoaXMuc2lkZT09PTI/azowKTtyZXR1cm57eDphP2QraTpiKyhnP3RoaXMud2lkdGg6MCkraCtpLHk6YT9iK2otKGc/dGhpcy5oZWlnaHQ6MCkraDpkK2p9fSxyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS5jaGFydCxjPWIucmVuZGVyZXIsZD1hLm9wdGlvbnMsZT1hLmlzTG9nLGY9YS5pc0xpbmtlZCxnPWEudGlja1Bvc2l0aW9ucyxoPWEuYXhpc1RpdGxlLGk9YS50aWNrcyxqPWEubWlub3JUaWNrcyxrPWEuYWx0ZXJuYXRlQmFuZHMsbD1kLnN0YWNrTGFiZWxzLG09ZC5hbHRlcm5hdGVHcmlkQ29sb3Isbz1hLnRpY2ttYXJrT2Zmc2V0LHE9ZC5saW5lV2lkdGgscixBPWIuaGFzUmVuZGVyZWQmJnQoYS5vbGRNaW4pJiYhaXNOYU4oYS5vbGRNaW4pLHA9YS5zaG93QXhpcyx2PWMuZ2xvYmFsQW5pbWF0aW9uLHgsTjthLmxhYmVsRWRnZS5sZW5ndGg9MDthLm92ZXJsYXA9ITE7bihbaSxqLGtdLGZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBhKWFbYl0uaXNBY3RpdmU9ITF9KTsKaWYoYS5oYXNEYXRhKCl8fGYpe2EubWlub3JUaWNrSW50ZXJ2YWwmJiFhLmNhdGVnb3JpZXMmJm4oYS5nZXRNaW5vclRpY2tQb3NpdGlvbnMoKSxmdW5jdGlvbihiKXtqW2JdfHwoaltiXT1uZXcgZGIoYSxiLCJtaW5vciIpKTtBJiZqW2JdLmlzTmV3JiZqW2JdLnJlbmRlcihudWxsLCEwKTtqW2JdLnJlbmRlcihudWxsLCExLDEpfSk7aWYoZy5sZW5ndGgmJihuKGcsZnVuY3Rpb24oYixjKXtpZighZnx8Yj49YS5taW4mJmI8PWEubWF4KWlbYl18fChpW2JdPW5ldyBkYihhLGIpKSxBJiZpW2JdLmlzTmV3JiZpW2JdLnJlbmRlcihjLCEwLDAuMSksaVtiXS5yZW5kZXIoYyl9KSxvJiYoYS5taW49PT0wfHxhLnNpbmdsZSkpKWlbLTFdfHwoaVstMV09bmV3IGRiKGEsLTEsbnVsbCwhMCkpLGlbLTFdLnJlbmRlcigtMSk7bSYmbihnLGZ1bmN0aW9uKGMsZCl7Tj1nW2QrMV0hPT11P2dbZCsxXStvOmEubWF4LW87aWYoZCUyPT09MCYmYzxhLm1heCYmTjw9YS5tYXgrKGIucG9sYXI/LW86bykpa1tjXXx8CihrW2NdPW5ldyB6LlBsb3RMaW5lT3JCYW5kKGEpKSx4PWMrbyxrW2NdLm9wdGlvbnM9e2Zyb206ZT96YSh4KTp4LHRvOmU/emEoTik6Tixjb2xvcjptfSxrW2NdLnJlbmRlcigpLGtbY10uaXNBY3RpdmU9ITB9KTtpZighYS5fYWRkZWRQbG90TEIpbigoZC5wbG90TGluZXN8fFtdKS5jb25jYXQoZC5wbG90QmFuZHN8fFtdKSxmdW5jdGlvbihiKXthLmFkZFBsb3RCYW5kT3JMaW5lKGIpfSksYS5fYWRkZWRQbG90TEI9ITB9bihbaSxqLGtdLGZ1bmN0aW9uKGEpe3ZhciBjLGQsZT1bXSxmPXY/di5kdXJhdGlvbnx8NTAwOjA7Zm9yKGMgaW4gYSlpZighYVtjXS5pc0FjdGl2ZSlhW2NdLnJlbmRlcihjLCExLDApLGFbY10uaXNBY3RpdmU9ITEsZS5wdXNoKGMpO2JiKGZ1bmN0aW9uKCl7Zm9yKGQ9ZS5sZW5ndGg7ZC0tOylhW2VbZF1dJiYhYVtlW2RdXS5pc0FjdGl2ZSYmKGFbZVtkXV0uZGVzdHJveSgpLGRlbGV0ZSBhW2VbZF1dKX0sYT09PWt8fCFiLmhhc1JlbmRlcmVkfHwhZj8wOmYpfSk7CmlmKHEpcj1hLmdldExpbmVQYXRoKHEpLGEuYXhpc0xpbmU/YS5heGlzTGluZS5hbmltYXRlKHtkOnJ9KTphLmF4aXNMaW5lPWMucGF0aChyKS5hdHRyKHtzdHJva2U6ZC5saW5lQ29sb3IsInN0cm9rZS13aWR0aCI6cSx6SW5kZXg6N30pLmFkZChhLmF4aXNHcm91cCksYS5heGlzTGluZVtwPyJzaG93IjoiaGlkZSJdKCEwKTtpZihoJiZwKWhbaC5pc05ldz8iYXR0ciI6ImFuaW1hdGUiXShhLmdldFRpdGxlUG9zaXRpb24oKSksaC5pc05ldz0hMTtsJiZsLmVuYWJsZWQmJmEucmVuZGVyU3RhY2tUb3RhbHMoKTthLmlzRGlydHk9ITF9LHJlZHJhdzpmdW5jdGlvbigpe3RoaXMudmlzaWJsZSYmKHRoaXMucmVuZGVyKCksbih0aGlzLnBsb3RMaW5lc0FuZEJhbmRzLGZ1bmN0aW9uKGEpe2EucmVuZGVyKCl9KSk7bih0aGlzLnNlcmllcyxmdW5jdGlvbihhKXthLmlzRGlydHk9ITB9KX0sZGVzdHJveTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9Yi5zdGFja3MsZCxlPWIucGxvdExpbmVzQW5kQmFuZHM7CmF8fFIoYik7Zm9yKGQgaW4gYylQYShjW2RdKSxjW2RdPW51bGw7bihbYi50aWNrcyxiLm1pbm9yVGlja3MsYi5hbHRlcm5hdGVCYW5kc10sZnVuY3Rpb24oYSl7UGEoYSl9KTtmb3IoYT1lLmxlbmd0aDthLS07KWVbYV0uZGVzdHJveSgpO24oInN0YWNrVG90YWxHcm91cCxheGlzTGluZSxheGlzVGl0bGUsYXhpc0dyb3VwLGNyb3NzLGdyaWRHcm91cCxsYWJlbEdyb3VwIi5zcGxpdCgiLCIpLGZ1bmN0aW9uKGEpe2JbYV0mJihiW2FdPWJbYV0uZGVzdHJveSgpKX0pO3RoaXMuY3Jvc3MmJnRoaXMuY3Jvc3MuZGVzdHJveSgpfSxkcmF3Q3Jvc3NoYWlyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZD10aGlzLmNyb3NzaGFpcixlLGY7aWYoIXRoaXMuY3Jvc3NoYWlyfHwodChiKXx8IXAoZC5zbmFwLCEwKSk9PT0hMSl0aGlzLmhpZGVDcm9zc2hhaXIoKTtlbHNlIGlmKHAoZC5zbmFwLCEwKT90KGIpJiYoYz10aGlzLmlzWEF4aXM/Yi5wbG90WDp0aGlzLmxlbi1iLnBsb3RZKTpjPXRoaXMuaG9yaXo/CmEuY2hhcnRYLXRoaXMucG9zOnRoaXMubGVuLWEuY2hhcnRZK3RoaXMucG9zLGM9dGhpcy5pc1JhZGlhbD90aGlzLmdldFBsb3RMaW5lUGF0aCh0aGlzLmlzWEF4aXM/Yi54OnAoYi5zdGFja1ksYi55KSl8fG51bGw6dGhpcy5nZXRQbG90TGluZVBhdGgobnVsbCxudWxsLG51bGwsbnVsbCxjKXx8bnVsbCxjPT09bnVsbCl0aGlzLmhpZGVDcm9zc2hhaXIoKTtlbHNlIGlmKGU9dGhpcy5jYXRlZ29yaWVzJiYhdGhpcy5pc1JhZGlhbCxmPXAoZC53aWR0aCxlP3RoaXMudHJhbnNBOjEpLHRoaXMuY3Jvc3MpdGhpcy5jcm9zcy5hdHRyKHtkOmMsdmlzaWJpbGl0eToidmlzaWJsZSIsInN0cm9rZS13aWR0aCI6Zn0pO2Vsc2V7ZT17InN0cm9rZS13aWR0aCI6ZixzdHJva2U6ZC5jb2xvcnx8KGU/InJnYmEoMTU1LDIwMCwyNTUsMC4yKSI6IiNDMEMwQzAiKSx6SW5kZXg6cChkLnpJbmRleCwyKX07aWYoZC5kYXNoU3R5bGUpZS5kYXNoc3R5bGU9ZC5kYXNoU3R5bGU7dGhpcy5jcm9zcz10aGlzLmNoYXJ0LnJlbmRlcmVyLnBhdGgoYykuYXR0cihlKS5hZGQoKX19LApoaWRlQ3Jvc3NoYWlyOmZ1bmN0aW9uKCl7dGhpcy5jcm9zcyYmdGhpcy5jcm9zcy5oaWRlKCl9fTt3KEYucHJvdG90eXBlLHtnZXRQbG90QmFuZFBhdGg6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmdldFBsb3RMaW5lUGF0aChiLG51bGwsbnVsbCwhMCksZD10aGlzLmdldFBsb3RMaW5lUGF0aChhLG51bGwsbnVsbCwhMCk7ZCYmYz8oZC5mbGF0PWQudG9TdHJpbmcoKT09PWMudG9TdHJpbmcoKSxkLnB1c2goY1s0XSxjWzVdLGNbMV0sY1syXSkpOmQ9bnVsbDtyZXR1cm4gZH0sYWRkUGxvdEJhbmQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYWRkUGxvdEJhbmRPckxpbmUoYSwicGxvdEJhbmRzIil9LGFkZFBsb3RMaW5lOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmFkZFBsb3RCYW5kT3JMaW5lKGEsInBsb3RMaW5lcyIpfSxhZGRQbG90QmFuZE9yTGluZTpmdW5jdGlvbihhLGIpe3ZhciBjPShuZXcgei5QbG90TGluZU9yQmFuZCh0aGlzLGEpKS5yZW5kZXIoKSxkPXRoaXMudXNlck9wdGlvbnM7CmMmJihiJiYoZFtiXT1kW2JdfHxbXSxkW2JdLnB1c2goYSkpLHRoaXMucGxvdExpbmVzQW5kQmFuZHMucHVzaChjKSk7cmV0dXJuIGN9LHJlbW92ZVBsb3RCYW5kT3JMaW5lOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj10aGlzLnBsb3RMaW5lc0FuZEJhbmRzLGM9dGhpcy5vcHRpb25zLGQ9dGhpcy51c2VyT3B0aW9ucyxlPWIubGVuZ3RoO2UtLTspYltlXS5pZD09PWEmJmJbZV0uZGVzdHJveSgpO24oW2MucGxvdExpbmVzfHxbXSxkLnBsb3RMaW5lc3x8W10sYy5wbG90QmFuZHN8fFtdLGQucGxvdEJhbmRzfHxbXV0sZnVuY3Rpb24oYil7Zm9yKGU9Yi5sZW5ndGg7ZS0tOyliW2VdLmlkPT09YSYmQWEoYixiW2VdKX0pfX0pO0YucHJvdG90eXBlLmdldFRpbWVUaWNrcz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1bXSxmPXt9LGc9Ty5nbG9iYWwudXNlVVRDLGgsaT1uZXcgZGEoYi1nYihiKSksaj1hLnVuaXRSYW5nZSxrPWEuY291bnQ7aWYodChiKSl7aVtRYl0oaj49SC5zZWNvbmQ/MDprKgpVKGkuZ2V0TWlsbGlzZWNvbmRzKCkvaykpO2lmKGo+PUguc2Vjb25kKWlbUmJdKGo+PUgubWludXRlPzA6aypVKGkuZ2V0U2Vjb25kcygpL2spKTtpZihqPj1ILm1pbnV0ZSlpW1NiXShqPj1ILmhvdXI/MDprKlUoaVtDYl0oKS9rKSk7aWYoaj49SC5ob3VyKWlbVGJdKGo+PUguZGF5PzA6aypVKGlbRGJdKCkvaykpO2lmKGo+PUguZGF5KWlbRmJdKGo+PUgubW9udGg/MTprKlUoaVtpYl0oKS9rKSk7aj49SC5tb250aCYmKGlbR2JdKGo+PUgueWVhcj8wOmsqVShpW2piXSgpL2spKSxoPWlba2JdKCkpO2o+PUgueWVhciYmKGgtPWglayxpW0hiXShoKSk7aWYoaj09PUgud2VlaylpW0ZiXShpW2liXSgpLWlbRWJdKCkrcChkLDEpKTtiPTE7aWYoemJ8fGhiKWk9aS5nZXRUaW1lKCksaT1uZXcgZGEoaStnYihpKSk7aD1pW2tiXSgpO2Zvcih2YXIgZD1pLmdldFRpbWUoKSxsPWlbamJdKCksbT1pW2liXSgpLG89IWd8fCEhaGIscT0oSC5kYXkrKGc/Z2IoaSk6aS5nZXRUaW1lem9uZU9mZnNldCgpKgo2RTQpKSVILmRheTtkPGM7KWUucHVzaChkKSxqPT09SC55ZWFyP2Q9cmIoaCtiKmssMCk6aj09PUgubW9udGg/ZD1yYihoLGwrYiprKTpvJiYoaj09PUguZGF5fHxqPT09SC53ZWVrKT9kPXJiKGgsbCxtK2Iqayooaj09PUguZGF5PzE6NykpOmQrPWoqayxiKys7ZS5wdXNoKGQpO24oU2EoZSxmdW5jdGlvbihhKXtyZXR1cm4gajw9SC5ob3VyJiZhJUguZGF5PT09cX0pLGZ1bmN0aW9uKGEpe2ZbYV09ImRheSJ9KX1lLmluZm89dyhhLHtoaWdoZXJSYW5rczpmLHRvdGFsUmFuZ2U6aiprfSk7cmV0dXJuIGV9O0YucHJvdG90eXBlLm5vcm1hbGl6ZVRpbWVUaWNrSW50ZXJ2YWw9ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHxbWyJtaWxsaXNlY29uZCIsWzEsMiw1LDEwLDIwLDI1LDUwLDEwMCwyMDAsNTAwXV0sWyJzZWNvbmQiLFsxLDIsNSwxMCwxNSwzMF1dLFsibWludXRlIixbMSwyLDUsMTAsMTUsMzBdXSxbImhvdXIiLFsxLDIsMyw0LDYsOCwxMl1dLFsiZGF5IixbMSwyXV0sWyJ3ZWVrIiwKWzEsMl1dLFsibW9udGgiLFsxLDIsMyw0LDZdXSxbInllYXIiLG51bGxdXSxkPWNbYy5sZW5ndGgtMV0sZT1IW2RbMF1dLGY9ZFsxXSxnO2ZvcihnPTA7ZzxjLmxlbmd0aDtnKyspaWYoZD1jW2ddLGU9SFtkWzBdXSxmPWRbMV0sY1tnKzFdJiZhPD0oZSpmW2YubGVuZ3RoLTFdK0hbY1tnKzFdWzBdXSkvMilicmVhaztlPT09SC55ZWFyJiZhPDUqZSYmKGY9WzEsMiw1XSk7Yz1CYihhL2UsZixkWzBdPT09InllYXIiP3MoQWIoYS9lKSwxKToxKTtyZXR1cm57dW5pdFJhbmdlOmUsY291bnQ6Yyx1bml0TmFtZTpkWzBdfX07Ri5wcm90b3R5cGUuZ2V0TG9nVGlja1Bvc2l0aW9ucz1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT10aGlzLm9wdGlvbnMsZj10aGlzLmxlbixnPVtdO2lmKCFkKXRoaXMuX21pbm9yQXV0b0ludGVydmFsPW51bGw7aWYoYT49MC41KWE9eShhKSxnPXRoaXMuZ2V0TGluZWFyVGlja1Bvc2l0aW9ucyhhLGIsYyk7ZWxzZSBpZihhPj0wLjA4KWZvcih2YXIgZj1VKGIpLGgsCmksaixrLGwsZT1hPjAuMz9bMSwyLDRdOmE+MC4xNT9bMSwyLDQsNiw4XTpbMSwyLDMsNCw1LDYsNyw4LDldO2Y8YysxJiYhbDtmKyspe2k9ZS5sZW5ndGg7Zm9yKGg9MDtoPGkmJiFsO2grKylqPU5hKHphKGYpKmVbaF0pLGo+YiYmKCFkfHxrPD1jKSYmayE9PXUmJmcucHVzaChrKSxrPmMmJihsPSEwKSxrPWp9ZWxzZSBpZihiPXphKGIpLGM9emEoYyksYT1lW2Q/Im1pbm9yVGlja0ludGVydmFsIjoidGlja0ludGVydmFsIl0sYT1wKGE9PT0iYXV0byI/bnVsbDphLHRoaXMuX21pbm9yQXV0b0ludGVydmFsLChjLWIpKihlLnRpY2tQaXhlbEludGVydmFsLyhkPzU6MSkpLygoZD9mL3RoaXMudGlja1Bvc2l0aW9ucy5sZW5ndGg6Zil8fDEpKSxhPUJiKGEsbnVsbCxBYihhKSksZz1zYSh0aGlzLmdldExpbmVhclRpY2tQb3NpdGlvbnMoYSxiLGMpLE5hKSwhZCl0aGlzLl9taW5vckF1dG9JbnRlcnZhbD1hLzU7aWYoIWQpdGhpcy50aWNrSW50ZXJ2YWw9YTtyZXR1cm4gZ307dmFyIE1iPQp6LlRvb2x0aXA9ZnVuY3Rpb24oKXt0aGlzLmluaXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtNYi5wcm90b3R5cGU9e2luaXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmJvcmRlcldpZHRoLGQ9Yi5zdHlsZSxlPUcoZC5wYWRkaW5nKTt0aGlzLmNoYXJ0PWE7dGhpcy5vcHRpb25zPWI7dGhpcy5jcm9zc2hhaXJzPVtdO3RoaXMubm93PXt4OjAseTowfTt0aGlzLmlzSGlkZGVuPSEwO3RoaXMubGFiZWw9YS5yZW5kZXJlci5sYWJlbCgiIiwwLDAsYi5zaGFwZXx8ImNhbGxvdXQiLG51bGwsbnVsbCxiLnVzZUhUTUwsbnVsbCwidG9vbHRpcCIpLmF0dHIoe3BhZGRpbmc6ZSxmaWxsOmIuYmFja2dyb3VuZENvbG9yLCJzdHJva2Utd2lkdGgiOmMscjpiLmJvcmRlclJhZGl1cyx6SW5kZXg6OH0pLmNzcyhkKS5jc3Moe3BhZGRpbmc6MH0pLmFkZCgpLmF0dHIoe3k6LTk5OTl9KTtwYXx8dGhpcy5sYWJlbC5zaGFkb3coYi5zaGFkb3cpO3RoaXMuc2hhcmVkPWIuc2hhcmVkfSxkZXN0cm95OmZ1bmN0aW9uKCl7aWYodGhpcy5sYWJlbCl0aGlzLmxhYmVsPQp0aGlzLmxhYmVsLmRlc3Ryb3koKTtjbGVhclRpbWVvdXQodGhpcy5oaWRlVGltZXIpO2NsZWFyVGltZW91dCh0aGlzLnRvb2x0aXBUaW1lb3V0KX0sbW92ZTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT10aGlzLGY9ZS5ub3csZz1lLm9wdGlvbnMuYW5pbWF0aW9uIT09ITEmJiFlLmlzSGlkZGVuJiYoUShhLWYueCk+MXx8UShiLWYueSk+MSksaD1lLmZvbGxvd1BvaW50ZXJ8fGUubGVuPjE7dyhmLHt4Omc/KDIqZi54K2EpLzM6YSx5Omc/KGYueStiKS8yOmIsYW5jaG9yWDpoP3U6Zz8oMipmLmFuY2hvclgrYykvMzpjLGFuY2hvclk6aD91Omc/KGYuYW5jaG9yWStkKS8yOmR9KTtlLmxhYmVsLmF0dHIoZik7aWYoZyljbGVhclRpbWVvdXQodGhpcy50b29sdGlwVGltZW91dCksdGhpcy50b29sdGlwVGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZSYmZS5tb3ZlKGEsYixjLGQpfSwzMil9LGhpZGU6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcztjbGVhclRpbWVvdXQodGhpcy5oaWRlVGltZXIpOwphPXAoYSx0aGlzLm9wdGlvbnMuaGlkZURlbGF5LDUwMCk7aWYoIXRoaXMuaXNIaWRkZW4pdGhpcy5oaWRlVGltZXI9YmIoZnVuY3Rpb24oKXtiLmxhYmVsW2E/ImZhZGVPdXQiOiJoaWRlIl0oKTtiLmlzSGlkZGVuPSEwfSxhKX0sZ2V0QW5jaG9yOmZ1bmN0aW9uKGEsYil7dmFyIGMsZD10aGlzLmNoYXJ0LGU9ZC5pbnZlcnRlZCxmPWQucGxvdFRvcCxnPWQucGxvdExlZnQsaD0wLGk9MCxqLGssYT11YShhKTtjPWFbMF0udG9vbHRpcFBvczt0aGlzLmZvbGxvd1BvaW50ZXImJmImJihiLmNoYXJ0WD09PXUmJihiPWQucG9pbnRlci5ub3JtYWxpemUoYikpLGM9W2IuY2hhcnRYLWQucGxvdExlZnQsYi5jaGFydFktZl0pO2N8fChuKGEsZnVuY3Rpb24oYSl7aj1hLnNlcmllcy55QXhpcztrPWEuc2VyaWVzLnhBeGlzO2grPWEucGxvdFgrKCFlJiZrP2subGVmdC1nOjApO2krPShhLnBsb3RMb3c/KGEucGxvdExvdythLnBsb3RIaWdoKS8yOmEucGxvdFkpKyghZSYmaj9qLnRvcC1mOjApfSksCmgvPWEubGVuZ3RoLGkvPWEubGVuZ3RoLGM9W2U/ZC5wbG90V2lkdGgtaTpoLHRoaXMuc2hhcmVkJiYhZSYmYS5sZW5ndGg+MSYmYj9iLmNoYXJ0WS1mOmU/ZC5wbG90SGVpZ2h0LWg6aV0pO3JldHVybiBzYShjLHkpfSxnZXRQb3NpdGlvbjpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5jaGFydCxlPXRoaXMuZGlzdGFuY2UsZj17fSxnPWMuaHx8MCxoLGk9WyJ5IixkLmNoYXJ0SGVpZ2h0LGIsYy5wbG90WStkLnBsb3RUb3AsZC5wbG90VG9wLGQucGxvdFRvcCtkLnBsb3RIZWlnaHRdLGo9WyJ4IixkLmNoYXJ0V2lkdGgsYSxjLnBsb3RYK2QucGxvdExlZnQsZC5wbG90TGVmdCxkLnBsb3RMZWZ0K2QucGxvdFdpZHRoXSxrPXAoYy50dEJlbG93LGQuaW52ZXJ0ZWQmJiFjLm5lZ2F0aXZlfHwhZC5pbnZlcnRlZCYmYy5uZWdhdGl2ZSksbD1mdW5jdGlvbihhLGIsYyxkLGgsaSl7dmFyIGo9YzxkLWUsbT1kK2UrYzxiLGw9ZC1lLWM7ZCs9ZTtpZihrJiZtKWZbYV09ZDtlbHNlIGlmKCFrJiYKailmW2FdPWw7ZWxzZSBpZihqKWZbYV09RShpLWMsbC1nPDA/bDpsLWcpO2Vsc2UgaWYobSlmW2FdPXMoaCxkK2crYz5iP2Q6ZCtnKTtlbHNlIHJldHVybiExfSxtPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBnO2Q8ZXx8ZD5iLWU/Zz0hMTpmW2FdPWQ8Yy8yPzE6ZD5iLWMvMj9iLWMtMjpkLWMvMjtyZXR1cm4gZ30sbz1mdW5jdGlvbihhKXt2YXIgYj1pO2k9ajtqPWI7aD1hfSxxPWZ1bmN0aW9uKCl7bC5hcHBseSgwLGkpIT09ITE/bS5hcHBseSgwLGopPT09ITEmJiFoJiYobyghMCkscSgpKTpoP2YueD1mLnk9MDoobyghMCkscSgpKX07KGQuaW52ZXJ0ZWR8fHRoaXMubGVuPjEpJiZvKCk7cSgpO3JldHVybiBmfSxkZWZhdWx0Rm9ybWF0dGVyOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucG9pbnRzfHx1YSh0aGlzKSxjO2M9W2EudG9vbHRpcEZvb3RlckhlYWRlckZvcm1hdHRlcihiWzBdKV07Yz1jLmNvbmNhdChhLmJvZHlGb3JtYXR0ZXIoYikpO2MucHVzaChhLnRvb2x0aXBGb290ZXJIZWFkZXJGb3JtYXR0ZXIoYlswXSwKITApKTtyZXR1cm4gYy5qb2luKCIiKX0scmVmcmVzaDpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY2hhcnQsZD10aGlzLmxhYmVsLGU9dGhpcy5vcHRpb25zLGYsZyxoLGk9e30saixrPVtdO2o9ZS5mb3JtYXR0ZXJ8fHRoaXMuZGVmYXVsdEZvcm1hdHRlcjt2YXIgaT1jLmhvdmVyUG9pbnRzLGwsbT10aGlzLnNoYXJlZDtjbGVhclRpbWVvdXQodGhpcy5oaWRlVGltZXIpO3RoaXMuZm9sbG93UG9pbnRlcj11YShhKVswXS5zZXJpZXMudG9vbHRpcE9wdGlvbnMuZm9sbG93UG9pbnRlcjtoPXRoaXMuZ2V0QW5jaG9yKGEsYik7Zj1oWzBdO2c9aFsxXTttJiYoIWEuc2VyaWVzfHwhYS5zZXJpZXMubm9TaGFyZWRUb29sdGlwKT8oYy5ob3ZlclBvaW50cz1hLGkmJm4oaSxmdW5jdGlvbihhKXthLnNldFN0YXRlKCl9KSxuKGEsZnVuY3Rpb24oYSl7YS5zZXRTdGF0ZSgiaG92ZXIiKTtrLnB1c2goYS5nZXRMYWJlbENvbmZpZygpKX0pLGk9e3g6YVswXS5jYXRlZ29yeSx5OmFbMF0ueX0saS5wb2ludHM9CmssdGhpcy5sZW49ay5sZW5ndGgsYT1hWzBdKTppPWEuZ2V0TGFiZWxDb25maWcoKTtqPWouY2FsbChpLHRoaXMpO2k9YS5zZXJpZXM7dGhpcy5kaXN0YW5jZT1wKGkudG9vbHRpcE9wdGlvbnMuZGlzdGFuY2UsMTYpO2o9PT0hMT90aGlzLmhpZGUoKToodGhpcy5pc0hpZGRlbiYmKFRhKGQpLGQuYXR0cigib3BhY2l0eSIsMSkuc2hvdygpKSxkLmF0dHIoe3RleHQ6an0pLGw9ZS5ib3JkZXJDb2xvcnx8YS5jb2xvcnx8aS5jb2xvcnx8IiM2MDYwNjAiLGQuYXR0cih7c3Ryb2tlOmx9KSx0aGlzLnVwZGF0ZVBvc2l0aW9uKHtwbG90WDpmLHBsb3RZOmcsbmVnYXRpdmU6YS5uZWdhdGl2ZSx0dEJlbG93OmEudHRCZWxvdyxoOmhbMl18fDB9KSx0aGlzLmlzSGlkZGVuPSExKTtNKGMsInRvb2x0aXBSZWZyZXNoIix7dGV4dDpqLHg6ZitjLnBsb3RMZWZ0LHk6ZytjLnBsb3RUb3AsYm9yZGVyQ29sb3I6bH0pfSx1cGRhdGVQb3NpdGlvbjpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNoYXJ0LGM9dGhpcy5sYWJlbCwKYz0odGhpcy5vcHRpb25zLnBvc2l0aW9uZXJ8fHRoaXMuZ2V0UG9zaXRpb24pLmNhbGwodGhpcyxjLndpZHRoLGMuaGVpZ2h0LGEpO3RoaXMubW92ZSh5KGMueCkseShjLnl8fDApLGEucGxvdFgrYi5wbG90TGVmdCxhLnBsb3RZK2IucGxvdFRvcCl9LGdldFhEYXRlRm9ybWF0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxiPWIuZGF0ZVRpbWVMYWJlbEZvcm1hdHMsZT1jJiZjLmNsb3Nlc3RQb2ludFJhbmdlLGYsZz17bWlsbGlzZWNvbmQ6MTUsc2Vjb25kOjEyLG1pbnV0ZTo5LGhvdXI6NixkYXk6M30saCxpPSJtaWxsaXNlY29uZCI7aWYoZSl7aD1sYSgiJW0tJWQgJUg6JU06JVMuJUwiLGEueCk7Zm9yKGYgaW4gSCl7aWYoZT09PUgud2VlayYmK2xhKCIldyIsYS54KT09PWMub3B0aW9ucy5zdGFydE9mV2VlayYmaC5zdWJzdHIoNik9PT0iMDA6MDA6MDAuMDAwIil7Zj0id2VlayI7YnJlYWt9aWYoSFtmXT5lKXtmPWk7YnJlYWt9aWYoZ1tmXSYmaC5zdWJzdHIoZ1tmXSkhPT0iMDEtMDEgMDA6MDA6MDAuMDAwIi5zdWJzdHIoZ1tmXSkpYnJlYWs7CmYhPT0id2VlayImJihpPWYpfWYmJihkPWJbZl0pfWVsc2UgZD1iLmRheTtyZXR1cm4gZHx8Yi55ZWFyfSx0b29sdGlwRm9vdGVySGVhZGVyRm9ybWF0dGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9Yj8iZm9vdGVyIjoiaGVhZGVyIixkPWEuc2VyaWVzLGU9ZC50b29sdGlwT3B0aW9ucyxmPWUueERhdGVGb3JtYXQsZz1kLnhBeGlzLGg9ZyYmZy5vcHRpb25zLnR5cGU9PT0iZGF0ZXRpbWUiJiZ0YShhLmtleSksYz1lW2MrIkZvcm1hdCJdO2gmJiFmJiYoZj10aGlzLmdldFhEYXRlRm9ybWF0KGEsZSxnKSk7aCYmZiYmKGM9Yy5yZXBsYWNlKCJ7cG9pbnQua2V5fSIsIntwb2ludC5rZXk6IitmKyJ9IikpO3JldHVybiBLYShjLHtwb2ludDphLHNlcmllczpkfSl9LGJvZHlGb3JtYXR0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHNhKGEsZnVuY3Rpb24oYSl7dmFyIGM9YS5zZXJpZXMudG9vbHRpcE9wdGlvbnM7cmV0dXJuKGMucG9pbnRGb3JtYXR0ZXJ8fGEucG9pbnQudG9vbHRpcEZvcm1hdHRlcikuY2FsbChhLnBvaW50LApjLnBvaW50Rm9ybWF0KX0pfX07dmFyIG1hO2ViPUImJkIuZG9jdW1lbnRFbGVtZW50Lm9udG91Y2hzdGFydCE9PXU7dmFyIGFiPXouUG9pbnRlcj1mdW5jdGlvbihhLGIpe3RoaXMuaW5pdChhLGIpfTthYi5wcm90b3R5cGU9e2luaXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLmNoYXJ0LGQ9Yy5ldmVudHMsZT1wYT8iIjpjLnpvb21UeXBlLGM9YS5pbnZlcnRlZCxmO3RoaXMub3B0aW9ucz1iO3RoaXMuY2hhcnQ9YTt0aGlzLnpvb21YPWY9L3gvLnRlc3QoZSk7dGhpcy56b29tWT1lPS95Ly50ZXN0KGUpO3RoaXMuem9vbUhvcj1mJiYhY3x8ZSYmYzt0aGlzLnpvb21WZXJ0PWUmJiFjfHxmJiZjO3RoaXMuaGFzWm9vbT1mfHxlO3RoaXMucnVuQ2hhcnRDbGljaz1kJiYhIWQuY2xpY2s7dGhpcy5waW5jaERvd249W107dGhpcy5sYXN0VmFsaWRUb3VjaD17fTtpZih6LlRvb2x0aXAmJmIudG9vbHRpcC5lbmFibGVkKWEudG9vbHRpcD1uZXcgTWIoYSxiLnRvb2x0aXApLHRoaXMuZm9sbG93VG91Y2hNb3ZlPQpwKGIudG9vbHRpcC5mb2xsb3dUb3VjaE1vdmUsITApO3RoaXMuc2V0RE9NRXZlbnRzKCl9LG5vcm1hbGl6ZTpmdW5jdGlvbihhLGIpe3ZhciBjLGQsYT1hfHxKLmV2ZW50O2lmKCFhLnRhcmdldClhLnRhcmdldD1hLnNyY0VsZW1lbnQ7ZD1hLnRvdWNoZXM/YS50b3VjaGVzLmxlbmd0aD9hLnRvdWNoZXMuaXRlbSgwKTphLmNoYW5nZWRUb3VjaGVzWzBdOmE7aWYoIWIpdGhpcy5jaGFydFBvc2l0aW9uPWI9TGIodGhpcy5jaGFydC5jb250YWluZXIpO2QucGFnZVg9PT11PyhjPXMoYS54LGEuY2xpZW50WC1iLmxlZnQpLGQ9YS55KTooYz1kLnBhZ2VYLWIubGVmdCxkPWQucGFnZVktYi50b3ApO3JldHVybiB3KGEse2NoYXJ0WDp5KGMpLGNoYXJ0WTp5KGQpfSl9LGdldENvb3JkaW5hdGVzOmZ1bmN0aW9uKGEpe3ZhciBiPXt4QXhpczpbXSx5QXhpczpbXX07bih0aGlzLmNoYXJ0LmF4ZXMsZnVuY3Rpb24oYyl7YltjLmlzWEF4aXM/InhBeGlzIjoieUF4aXMiXS5wdXNoKHtheGlzOmMsdmFsdWU6Yy50b1ZhbHVlKGFbYy5ob3Jpej8KImNoYXJ0WCI6ImNoYXJ0WSJdKX0pfSk7cmV0dXJuIGJ9LHJ1blBvaW50QWN0aW9uczpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNoYXJ0LGM9Yi5zZXJpZXMsZD1iLnRvb2x0aXAsZT1kP2Quc2hhcmVkOiExLGY9Yi5ob3ZlclBvaW50LGc9Yi5ob3ZlclNlcmllcyxoPVtOdW1iZXIuTUFYX1ZBTFVFLE51bWJlci5NQVhfVkFMVUVdLGksaixrPVtdLGw9W10sbTtpZighZSYmIWcpZm9yKGI9MDtiPGMubGVuZ3RoO2IrKylpZihjW2JdLmRpcmVjdFRvdWNofHwhY1tiXS5vcHRpb25zLnN0aWNreVRyYWNraW5nKWM9W107ZyYmKGU/Zy5ub1NoYXJlZFRvb2x0aXA6Zy5kaXJlY3RUb3VjaCkmJmY/bD1bZl06KG4oYyxmdW5jdGlvbihiKXtpPWIubm9TaGFyZWRUb29sdGlwJiZlO2o9IWUmJmIuZGlyZWN0VG91Y2g7Yi52aXNpYmxlJiYhaSYmIWomJnAoYi5vcHRpb25zLmVuYWJsZU1vdXNlVHJhY2tpbmcsITApJiYobT1iLnNlYXJjaFBvaW50KGEsIWkmJmIua2REaW1lbnNpb25zPT09MSkpJiZrLnB1c2gobSl9KSwKbihrLGZ1bmN0aW9uKGEpe2EmJm4oWyJkaXN0IiwiZGlzdFgiXSxmdW5jdGlvbihiLGMpe3R5cGVvZiBhW2JdPT09Im51bWJlciImJmFbYl08aFtjXSYmKGhbY109YVtiXSxsW2NdPWEpfSl9KSk7aWYoZSlmb3IoYj1rLmxlbmd0aDtiLS07KShrW2JdLmNsaWVudFghPT1sWzFdLmNsaWVudFh8fGtbYl0uc2VyaWVzLm5vU2hhcmVkVG9vbHRpcCkmJmsuc3BsaWNlKGIsMSk7aWYobFswXSYmKGxbMF0hPT10aGlzLnByZXZLRFBvaW50fHxkJiZkLmlzSGlkZGVuKSlpZihlJiYhbFswXS5zZXJpZXMubm9TaGFyZWRUb29sdGlwKWsubGVuZ3RoJiZkJiZkLnJlZnJlc2goayxhKSxuKGssZnVuY3Rpb24oYil7Yi5vbk1vdXNlT3ZlcihhLGIhPT0oZyYmZy5kaXJlY3RUb3VjaCYmZnx8bFswXSkpfSksdGhpcy5wcmV2S0RQb2ludD1sWzFdO2Vsc2V7ZCYmZC5yZWZyZXNoKGxbMF0sYSk7aWYoIWd8fCFnLmRpcmVjdFRvdWNoKWxbMF0ub25Nb3VzZU92ZXIoYSk7dGhpcy5wcmV2S0RQb2ludD1sWzBdfWVsc2UgYz0KZyYmZy50b29sdGlwT3B0aW9ucy5mb2xsb3dQb2ludGVyLGQmJmMmJiFkLmlzSGlkZGVuJiYoYz1kLmdldEFuY2hvcihbe31dLGEpLGQudXBkYXRlUG9zaXRpb24oe3Bsb3RYOmNbMF0scGxvdFk6Y1sxXX0pKTtpZighdGhpcy5fb25Eb2N1bWVudE1vdXNlTW92ZSl0aGlzLl9vbkRvY3VtZW50TW91c2VNb3ZlPWZ1bmN0aW9uKGEpe2lmKCRbbWFdKSRbbWFdLnBvaW50ZXIub25Eb2N1bWVudE1vdXNlTW92ZShhKX0sRChCLCJtb3VzZW1vdmUiLHRoaXMuX29uRG9jdW1lbnRNb3VzZU1vdmUpO24oZT9rOltwKGxbMV0sZildLGZ1bmN0aW9uKGIpe3ZhciBjPWImJmIuc2VyaWVzO2MmJm4oWyJ4QXhpcyIsInlBeGlzIiwiY29sb3JBeGlzIl0sZnVuY3Rpb24oZCl7Y1tkXSYmY1tkXS5kcmF3Q3Jvc3NoYWlyKGEsYil9KX0pfSxyZXNldDpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY2hhcnQsZD1jLmhvdmVyU2VyaWVzLGU9Yy5ob3ZlclBvaW50LGY9Yy5ob3ZlclBvaW50cyxnPWMudG9vbHRpcCwKaD1nJiZnLnNoYXJlZD9mOmU7KGE9YSYmZyYmaCkmJm4odWEoaCksZnVuY3Rpb24oYil7Yi5wbG90WD09PXZvaWQgMCYmKGE9ITEpfSk7aWYoYSlnLnJlZnJlc2goaCksZSYmKGUuc2V0U3RhdGUoZS5zdGF0ZSwhMCksbihjLmF4ZXMsZnVuY3Rpb24oYSl7cChhLm9wdGlvbnMuY3Jvc3NoYWlyJiZhLm9wdGlvbnMuY3Jvc3NoYWlyLnNuYXAsITApP2EuZHJhd0Nyb3NzaGFpcihudWxsLGUpOmEuaGlkZUNyb3NzaGFpcigpfSkpO2Vsc2V7aWYoZSllLm9uTW91c2VPdXQoKTtmJiZuKGYsZnVuY3Rpb24oYSl7YS5zZXRTdGF0ZSgpfSk7aWYoZClkLm9uTW91c2VPdXQoKTtnJiZnLmhpZGUoYik7aWYodGhpcy5fb25Eb2N1bWVudE1vdXNlTW92ZSlSKEIsIm1vdXNlbW92ZSIsdGhpcy5fb25Eb2N1bWVudE1vdXNlTW92ZSksdGhpcy5fb25Eb2N1bWVudE1vdXNlTW92ZT1udWxsO24oYy5heGVzLGZ1bmN0aW9uKGEpe2EuaGlkZUNyb3NzaGFpcigpfSk7dGhpcy5ob3Zlclg9Yy5ob3ZlclBvaW50cz0KYy5ob3ZlclBvaW50PW51bGx9fSxzY2FsZUdyb3VwczpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY2hhcnQsZDtuKGMuc2VyaWVzLGZ1bmN0aW9uKGUpe2Q9YXx8ZS5nZXRQbG90Qm94KCk7ZS54QXhpcyYmZS54QXhpcy56b29tRW5hYmxlZCYmKGUuZ3JvdXAuYXR0cihkKSxlLm1hcmtlckdyb3VwJiYoZS5tYXJrZXJHcm91cC5hdHRyKGQpLGUubWFya2VyR3JvdXAuY2xpcChiP2MuY2xpcFJlY3Q6bnVsbCkpLGUuZGF0YUxhYmVsc0dyb3VwJiZlLmRhdGFMYWJlbHNHcm91cC5hdHRyKGQpKX0pO2MuY2xpcFJlY3QuYXR0cihifHxjLmNsaXBCb3gpfSxkcmFnU3RhcnQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5jaGFydDtiLm1vdXNlSXNEb3duPWEudHlwZTtiLmNhbmNlbENsaWNrPSExO2IubW91c2VEb3duWD10aGlzLm1vdXNlRG93blg9YS5jaGFydFg7Yi5tb3VzZURvd25ZPXRoaXMubW91c2VEb3duWT1hLmNoYXJ0WX0sZHJhZzpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNoYXJ0LGM9CmIub3B0aW9ucy5jaGFydCxkPWEuY2hhcnRYLGU9YS5jaGFydFksZj10aGlzLnpvb21Ib3IsZz10aGlzLnpvb21WZXJ0LGg9Yi5wbG90TGVmdCxpPWIucGxvdFRvcCxqPWIucGxvdFdpZHRoLGs9Yi5wbG90SGVpZ2h0LGwsbT10aGlzLnNlbGVjdGlvbk1hcmtlcixvPXRoaXMubW91c2VEb3duWCxxPXRoaXMubW91c2VEb3duWSxyPWMucGFuS2V5JiZhW2MucGFuS2V5KyJLZXkiXTtpZighbXx8IW0udG91Y2gpaWYoZDxoP2Q9aDpkPmgraiYmKGQ9aCtqKSxlPGk/ZT1pOmU+aStrJiYoZT1pK2spLHRoaXMuaGFzRHJhZ2dlZD1NYXRoLnNxcnQoTWF0aC5wb3coby1kLDIpK01hdGgucG93KHEtZSwyKSksdGhpcy5oYXNEcmFnZ2VkPjEwKXtsPWIuaXNJbnNpZGVQbG90KG8taCxxLWkpO2lmKGIuaGFzQ2FydGVzaWFuU2VyaWVzJiYodGhpcy56b29tWHx8dGhpcy56b29tWSkmJmwmJiFyJiYhbSl0aGlzLnNlbGVjdGlvbk1hcmtlcj1tPWIucmVuZGVyZXIucmVjdChoLGksZj8xOmosZz8xOmssMCkuYXR0cih7ZmlsbDpjLnNlbGVjdGlvbk1hcmtlckZpbGx8fAoicmdiYSg2OSwxMTQsMTY3LDAuMjUpIix6SW5kZXg6N30pLmFkZCgpO20mJmYmJihkLT1vLG0uYXR0cih7d2lkdGg6UShkKSx4OihkPjA/MDpkKStvfSkpO20mJmcmJihkPWUtcSxtLmF0dHIoe2hlaWdodDpRKGQpLHk6KGQ+MD8wOmQpK3F9KSk7bCYmIW0mJmMucGFubmluZyYmYi5wYW4oYSxjLnBhbm5pbmcpfX0sZHJvcDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9dGhpcy5jaGFydCxkPXRoaXMuaGFzUGluY2hlZDtpZih0aGlzLnNlbGVjdGlvbk1hcmtlcil7dmFyIGU9e29yaWdpbmFsRXZlbnQ6YSx4QXhpczpbXSx5QXhpczpbXX0sZj10aGlzLnNlbGVjdGlvbk1hcmtlcixnPWYuYXR0cj9mLmF0dHIoIngiKTpmLngsaD1mLmF0dHI/Zi5hdHRyKCJ5Iik6Zi55LGk9Zi5hdHRyP2YuYXR0cigid2lkdGgiKTpmLndpZHRoLGo9Zi5hdHRyP2YuYXR0cigiaGVpZ2h0Iik6Zi5oZWlnaHQsaztpZih0aGlzLmhhc0RyYWdnZWR8fGQpbihjLmF4ZXMsZnVuY3Rpb24oYyl7aWYoYy56b29tRW5hYmxlZCYmCnQoYy5taW4pJiYoZHx8Ylt7eEF4aXM6Inpvb21YIix5QXhpczoiem9vbVkifVtjLmNvbGxdXSkpe3ZhciBmPWMuaG9yaXosbz1hLnR5cGU9PT0idG91Y2hlbmQiP2MubWluUGl4ZWxQYWRkaW5nOjAscT1jLnRvVmFsdWUoKGY/ZzpoKStvKSxmPWMudG9WYWx1ZSgoZj9nK2k6aCtqKS1vKTtlW2MuY29sbF0ucHVzaCh7YXhpczpjLG1pbjpFKHEsZiksbWF4OnMocSxmKX0pO2s9ITB9fSksayYmTShjLCJzZWxlY3Rpb24iLGUsZnVuY3Rpb24oYSl7Yy56b29tKHcoYSxkP3thbmltYXRpb246ITF9Om51bGwpKX0pO3RoaXMuc2VsZWN0aW9uTWFya2VyPXRoaXMuc2VsZWN0aW9uTWFya2VyLmRlc3Ryb3koKTtkJiZ0aGlzLnNjYWxlR3JvdXBzKCl9aWYoYylJKGMuY29udGFpbmVyLHtjdXJzb3I6Yy5fY3Vyc29yfSksYy5jYW5jZWxDbGljaz10aGlzLmhhc0RyYWdnZWQ+MTAsYy5tb3VzZUlzRG93bj10aGlzLmhhc0RyYWdnZWQ9dGhpcy5oYXNQaW5jaGVkPSExLHRoaXMucGluY2hEb3duPVtdfSwKb25Db250YWluZXJNb3VzZURvd246ZnVuY3Rpb24oYSl7YT10aGlzLm5vcm1hbGl6ZShhKTthLnByZXZlbnREZWZhdWx0JiZhLnByZXZlbnREZWZhdWx0KCk7dGhpcy5kcmFnU3RhcnQoYSl9LG9uRG9jdW1lbnRNb3VzZVVwOmZ1bmN0aW9uKGEpeyRbbWFdJiYkW21hXS5wb2ludGVyLmRyb3AoYSl9LG9uRG9jdW1lbnRNb3VzZU1vdmU6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5jaGFydCxjPXRoaXMuY2hhcnRQb3NpdGlvbixhPXRoaXMubm9ybWFsaXplKGEsYyk7YyYmIXRoaXMuaW5DbGFzcyhhLnRhcmdldCwiaGlnaGNoYXJ0cy10cmFja2VyIikmJiFiLmlzSW5zaWRlUGxvdChhLmNoYXJ0WC1iLnBsb3RMZWZ0LGEuY2hhcnRZLWIucGxvdFRvcCkmJnRoaXMucmVzZXQoKX0sb25Db250YWluZXJNb3VzZUxlYXZlOmZ1bmN0aW9uKGEpe3ZhciBiPSRbbWFdO2lmKGImJihhLnJlbGF0ZWRUYXJnZXR8fGEudG9FbGVtZW50KSliLnBvaW50ZXIucmVzZXQoKSxiLnBvaW50ZXIuY2hhcnRQb3NpdGlvbj0KbnVsbH0sb25Db250YWluZXJNb3VzZU1vdmU6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5jaGFydDtpZighdChtYSl8fCEkW21hXXx8ISRbbWFdLm1vdXNlSXNEb3duKW1hPWIuaW5kZXg7YT10aGlzLm5vcm1hbGl6ZShhKTthLnJldHVyblZhbHVlPSExO2IubW91c2VJc0Rvd249PT0ibW91c2Vkb3duIiYmdGhpcy5kcmFnKGEpOyh0aGlzLmluQ2xhc3MoYS50YXJnZXQsImhpZ2hjaGFydHMtdHJhY2tlciIpfHxiLmlzSW5zaWRlUGxvdChhLmNoYXJ0WC1iLnBsb3RMZWZ0LGEuY2hhcnRZLWIucGxvdFRvcCkpJiYhYi5vcGVuTWVudSYmdGhpcy5ydW5Qb2ludEFjdGlvbnMoYSl9LGluQ2xhc3M6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM7YTspe2lmKGM9VyhhLCJjbGFzcyIpKXtpZihjLmluZGV4T2YoYikhPT0tMSlyZXR1cm4hMDtpZihjLmluZGV4T2YoImhpZ2hjaGFydHMtY29udGFpbmVyIikhPT0tMSlyZXR1cm4hMX1hPWEucGFyZW50Tm9kZX19LG9uVHJhY2tlck1vdXNlT3V0OmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLmNoYXJ0LmhvdmVyU2VyaWVzLGE9YS5yZWxhdGVkVGFyZ2V0fHxhLnRvRWxlbWVudDtpZihiJiZhJiYhYi5vcHRpb25zLnN0aWNreVRyYWNraW5nJiYhdGhpcy5pbkNsYXNzKGEsImhpZ2hjaGFydHMtdG9vbHRpcCIpJiYhdGhpcy5pbkNsYXNzKGEsImhpZ2hjaGFydHMtc2VyaWVzLSIrYi5pbmRleCkpYi5vbk1vdXNlT3V0KCl9LG9uQ29udGFpbmVyQ2xpY2s6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5jaGFydCxjPWIuaG92ZXJQb2ludCxkPWIucGxvdExlZnQsZT1iLnBsb3RUb3AsYT10aGlzLm5vcm1hbGl6ZShhKTtiLmNhbmNlbENsaWNrfHwoYyYmdGhpcy5pbkNsYXNzKGEudGFyZ2V0LCJoaWdoY2hhcnRzLXRyYWNrZXIiKT8oTShjLnNlcmllcywiY2xpY2siLHcoYSx7cG9pbnQ6Y30pKSxiLmhvdmVyUG9pbnQmJmMuZmlyZVBvaW50RXZlbnQoImNsaWNrIixhKSk6KHcoYSx0aGlzLmdldENvb3JkaW5hdGVzKGEpKSxiLmlzSW5zaWRlUGxvdChhLmNoYXJ0WC1kLGEuY2hhcnRZLQplKSYmTShiLCJjbGljayIsYSkpKX0sc2V0RE9NRXZlbnRzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPWEuY2hhcnQuY29udGFpbmVyO2Iub25tb3VzZWRvd249ZnVuY3Rpb24oYil7YS5vbkNvbnRhaW5lck1vdXNlRG93bihiKX07Yi5vbm1vdXNlbW92ZT1mdW5jdGlvbihiKXthLm9uQ29udGFpbmVyTW91c2VNb3ZlKGIpfTtiLm9uY2xpY2s9ZnVuY3Rpb24oYil7YS5vbkNvbnRhaW5lckNsaWNrKGIpfTtEKGIsIm1vdXNlbGVhdmUiLGEub25Db250YWluZXJNb3VzZUxlYXZlKTttYj09PTEmJkQoQiwibW91c2V1cCIsYS5vbkRvY3VtZW50TW91c2VVcCk7aWYoZWIpYi5vbnRvdWNoc3RhcnQ9ZnVuY3Rpb24oYil7YS5vbkNvbnRhaW5lclRvdWNoU3RhcnQoYil9LGIub250b3VjaG1vdmU9ZnVuY3Rpb24oYil7YS5vbkNvbnRhaW5lclRvdWNoTW92ZShiKX0sbWI9PT0xJiZEKEIsInRvdWNoZW5kIixhLm9uRG9jdW1lbnRUb3VjaEVuZCl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgYTtSKHRoaXMuY2hhcnQuY29udGFpbmVyLAoibW91c2VsZWF2ZSIsdGhpcy5vbkNvbnRhaW5lck1vdXNlTGVhdmUpO21ifHwoUihCLCJtb3VzZXVwIix0aGlzLm9uRG9jdW1lbnRNb3VzZVVwKSxSKEIsInRvdWNoZW5kIix0aGlzLm9uRG9jdW1lbnRUb3VjaEVuZCkpO2NsZWFySW50ZXJ2YWwodGhpcy50b29sdGlwVGltZW91dCk7Zm9yKGEgaW4gdGhpcyl0aGlzW2FdPW51bGx9fTt3KHouUG9pbnRlci5wcm90b3R5cGUse3BpbmNoVHJhbnNsYXRlOmZ1bmN0aW9uKGEsYixjLGQsZSxmKXsodGhpcy56b29tSG9yfHx0aGlzLnBpbmNoSG9yKSYmdGhpcy5waW5jaFRyYW5zbGF0ZURpcmVjdGlvbighMCxhLGIsYyxkLGUsZik7KHRoaXMuem9vbVZlcnR8fHRoaXMucGluY2hWZXJ0KSYmdGhpcy5waW5jaFRyYW5zbGF0ZURpcmVjdGlvbighMSxhLGIsYyxkLGUsZil9LHBpbmNoVHJhbnNsYXRlRGlyZWN0aW9uOmZ1bmN0aW9uKGEsYixjLGQsZSxmLGcsaCl7dmFyIGk9dGhpcy5jaGFydCxqPWE/IngiOiJ5IixrPWE/IlgiOiJZIixsPSJjaGFydCIrCmssbT1hPyJ3aWR0aCI6ImhlaWdodCIsbz1pWyJwbG90IisoYT8iTGVmdCI6IlRvcCIpXSxxLHIsQT1ofHwxLHA9aS5pbnZlcnRlZCxuPWkuYm91bmRzW2E/ImgiOiJ2Il0seD1iLmxlbmd0aD09PTEsTj1iWzBdW2xdLHM9Y1swXVtsXSx0PSF4JiZiWzFdW2xdLHk9IXgmJmNbMV1bbF0sdSxjPWZ1bmN0aW9uKCl7IXgmJlEoTi10KT4yMCYmKEE9aHx8UShzLXkpL1EoTi10KSk7cj0oby1zKS9BK047cT1pWyJwbG90IisoYT8iV2lkdGgiOiJIZWlnaHQiKV0vQX07YygpO2I9cjtiPG4ubWluPyhiPW4ubWluLHU9ITApOmIrcT5uLm1heCYmKGI9bi5tYXgtcSx1PSEwKTt1PyhzLT0wLjgqKHMtZ1tqXVswXSkseHx8KHktPTAuOCooeS1nW2pdWzFdKSksYygpKTpnW2pdPVtzLHldO3B8fChmW2pdPXItbyxmW21dPXEpO2Y9cD8xL0E6QTtlW21dPXE7ZVtqXT1iO2RbcD9hPyJzY2FsZVkiOiJzY2FsZVgiOiJzY2FsZSIra109QTtkWyJ0cmFuc2xhdGUiK2tdPWYqbysocy1mKk4pfSxwaW5jaDpmdW5jdGlvbihhKXt2YXIgYj0KdGhpcyxjPWIuY2hhcnQsZD1iLnBpbmNoRG93bixlPWEudG91Y2hlcyxmPWUubGVuZ3RoLGc9Yi5sYXN0VmFsaWRUb3VjaCxoPWIuaGFzWm9vbSxpPWIuc2VsZWN0aW9uTWFya2VyLGo9e30saz1mPT09MSYmKGIuaW5DbGFzcyhhLnRhcmdldCwiaGlnaGNoYXJ0cy10cmFja2VyIikmJmMucnVuVHJhY2tlckNsaWNrfHxiLnJ1bkNoYXJ0Q2xpY2spLGw9e307aWYoZj4xKWIuaW5pdGlhdGVkPSEwO2gmJmIuaW5pdGlhdGVkJiYhayYmYS5wcmV2ZW50RGVmYXVsdCgpO3NhKGUsZnVuY3Rpb24oYSl7cmV0dXJuIGIubm9ybWFsaXplKGEpfSk7aWYoYS50eXBlPT09InRvdWNoc3RhcnQiKW4oZSxmdW5jdGlvbihhLGIpe2RbYl09e2NoYXJ0WDphLmNoYXJ0WCxjaGFydFk6YS5jaGFydFl9fSksZy54PVtkWzBdLmNoYXJ0WCxkWzFdJiZkWzFdLmNoYXJ0WF0sZy55PVtkWzBdLmNoYXJ0WSxkWzFdJiZkWzFdLmNoYXJ0WV0sbihjLmF4ZXMsZnVuY3Rpb24oYSl7aWYoYS56b29tRW5hYmxlZCl7dmFyIGI9CmMuYm91bmRzW2EuaG9yaXo/ImgiOiJ2Il0sZD1hLm1pblBpeGVsUGFkZGluZyxlPWEudG9QaXhlbHMocChhLm9wdGlvbnMubWluLGEuZGF0YU1pbikpLGY9YS50b1BpeGVscyhwKGEub3B0aW9ucy5tYXgsYS5kYXRhTWF4KSksZz1FKGUsZiksZT1zKGUsZik7Yi5taW49RShhLnBvcyxnLWQpO2IubWF4PXMoYS5wb3MrYS5sZW4sZStkKX19KSxiLnJlcz0hMDtlbHNlIGlmKGQubGVuZ3RoKXtpZighaSliLnNlbGVjdGlvbk1hcmtlcj1pPXcoe2Rlc3Ryb3k6cWEsdG91Y2g6ITB9LGMucGxvdEJveCk7Yi5waW5jaFRyYW5zbGF0ZShkLGUsaixpLGwsZyk7Yi5oYXNQaW5jaGVkPWg7Yi5zY2FsZUdyb3VwcyhqLGwpO2lmKCFoJiZiLmZvbGxvd1RvdWNoTW92ZSYmZj09PTEpdGhpcy5ydW5Qb2ludEFjdGlvbnMoYi5ub3JtYWxpemUoYSkpO2Vsc2UgaWYoYi5yZXMpYi5yZXM9ITEsdGhpcy5yZXNldCghMSwwKX19LHRvdWNoOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jaGFydDttYT1jLmluZGV4OwphLnRvdWNoZXMubGVuZ3RoPT09MT8oYT10aGlzLm5vcm1hbGl6ZShhKSxjLmlzSW5zaWRlUGxvdChhLmNoYXJ0WC1jLnBsb3RMZWZ0LGEuY2hhcnRZLWMucGxvdFRvcCkmJiFjLm9wZW5NZW51PyhiJiZ0aGlzLnJ1blBvaW50QWN0aW9ucyhhKSx0aGlzLnBpbmNoKGEpKTpiJiZ0aGlzLnJlc2V0KCkpOmEudG91Y2hlcy5sZW5ndGg9PT0yJiZ0aGlzLnBpbmNoKGEpfSxvbkNvbnRhaW5lclRvdWNoU3RhcnQ6ZnVuY3Rpb24oYSl7dGhpcy50b3VjaChhLCEwKX0sb25Db250YWluZXJUb3VjaE1vdmU6ZnVuY3Rpb24oYSl7dGhpcy50b3VjaChhKX0sb25Eb2N1bWVudFRvdWNoRW5kOmZ1bmN0aW9uKGEpeyRbbWFdJiYkW21hXS5wb2ludGVyLmRyb3AoYSl9fSk7aWYoSi5Qb2ludGVyRXZlbnR8fEouTVNQb2ludGVyRXZlbnQpe3ZhciBHYT17fSxOYj0hIUouUG9pbnRlckV2ZW50LGJjPWZ1bmN0aW9uKCl7dmFyIGEsYj1bXTtiLml0ZW09ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXNbYV19O2ZvcihhIGluIEdhKUdhLmhhc093blByb3BlcnR5KGEpJiYKYi5wdXNoKHtwYWdlWDpHYVthXS5wYWdlWCxwYWdlWTpHYVthXS5wYWdlWSx0YXJnZXQ6R2FbYV0udGFyZ2V0fSk7cmV0dXJuIGJ9LE9iPWZ1bmN0aW9uKGEsYixjLGQpe2lmKChhLnBvaW50ZXJUeXBlPT09InRvdWNoInx8YS5wb2ludGVyVHlwZT09PWEuTVNQT0lOVEVSX1RZUEVfVE9VQ0gpJiYkW21hXSlkKGEpLGQ9JFttYV0ucG9pbnRlcixkW2JdKHt0eXBlOmMsdGFyZ2V0OmEuY3VycmVudFRhcmdldCxwcmV2ZW50RGVmYXVsdDpxYSx0b3VjaGVzOmJjKCl9KX07dyhhYi5wcm90b3R5cGUse29uQ29udGFpbmVyUG9pbnRlckRvd246ZnVuY3Rpb24oYSl7T2IoYSwib25Db250YWluZXJUb3VjaFN0YXJ0IiwidG91Y2hzdGFydCIsZnVuY3Rpb24oYSl7R2FbYS5wb2ludGVySWRdPXtwYWdlWDphLnBhZ2VYLHBhZ2VZOmEucGFnZVksdGFyZ2V0OmEuY3VycmVudFRhcmdldH19KX0sb25Db250YWluZXJQb2ludGVyTW92ZTpmdW5jdGlvbihhKXtPYihhLCJvbkNvbnRhaW5lclRvdWNoTW92ZSIsCiJ0b3VjaG1vdmUiLGZ1bmN0aW9uKGEpe0dhW2EucG9pbnRlcklkXT17cGFnZVg6YS5wYWdlWCxwYWdlWTphLnBhZ2VZfTtpZighR2FbYS5wb2ludGVySWRdLnRhcmdldClHYVthLnBvaW50ZXJJZF0udGFyZ2V0PWEuY3VycmVudFRhcmdldH0pfSxvbkRvY3VtZW50UG9pbnRlclVwOmZ1bmN0aW9uKGEpe09iKGEsIm9uRG9jdW1lbnRUb3VjaEVuZCIsInRvdWNoZW5kIixmdW5jdGlvbihhKXtkZWxldGUgR2FbYS5wb2ludGVySWRdfSl9LGJhdGNoTVNFdmVudHM6ZnVuY3Rpb24oYSl7YSh0aGlzLmNoYXJ0LmNvbnRhaW5lcixOYj8icG9pbnRlcmRvd24iOiJNU1BvaW50ZXJEb3duIix0aGlzLm9uQ29udGFpbmVyUG9pbnRlckRvd24pO2EodGhpcy5jaGFydC5jb250YWluZXIsTmI/InBvaW50ZXJtb3ZlIjoiTVNQb2ludGVyTW92ZSIsdGhpcy5vbkNvbnRhaW5lclBvaW50ZXJNb3ZlKTthKEIsTmI/InBvaW50ZXJ1cCI6Ik1TUG9pbnRlclVwIix0aGlzLm9uRG9jdW1lbnRQb2ludGVyVXApfX0pOwpTKGFiLnByb3RvdHlwZSwiaW5pdCIsZnVuY3Rpb24oYSxiLGMpe2EuY2FsbCh0aGlzLGIsYyk7dGhpcy5oYXNab29tJiZJKGIuY29udGFpbmVyLHsiLW1zLXRvdWNoLWFjdGlvbiI6Im5vbmUiLCJ0b3VjaC1hY3Rpb24iOiJub25lIn0pfSk7UyhhYi5wcm90b3R5cGUsInNldERPTUV2ZW50cyIsZnVuY3Rpb24oYSl7YS5hcHBseSh0aGlzKTsodGhpcy5oYXNab29tfHx0aGlzLmZvbGxvd1RvdWNoTW92ZSkmJnRoaXMuYmF0Y2hNU0V2ZW50cyhEKX0pO1MoYWIucHJvdG90eXBlLCJkZXN0cm95IixmdW5jdGlvbihhKXt0aGlzLmJhdGNoTVNFdmVudHMoUik7YS5jYWxsKHRoaXMpfSl9dmFyIHZiPXouTGVnZW5kPWZ1bmN0aW9uKGEsYil7dGhpcy5pbml0KGEsYil9O3ZiLnByb3RvdHlwZT17aW5pdDpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMsZD1iLml0ZW1TdHlsZSxlPWIuaXRlbU1hcmdpblRvcHx8MDt0aGlzLm9wdGlvbnM9YjtpZihiLmVuYWJsZWQpYy5pdGVtU3R5bGU9ZCxjLml0ZW1IaWRkZW5TdHlsZT0KQyhkLGIuaXRlbUhpZGRlblN0eWxlKSxjLml0ZW1NYXJnaW5Ub3A9ZSxjLnBhZGRpbmc9ZD1wKGIucGFkZGluZyw4KSxjLmluaXRpYWxJdGVtWD1kLGMuaW5pdGlhbEl0ZW1ZPWQtNSxjLm1heEl0ZW1XaWR0aD0wLGMuY2hhcnQ9YSxjLml0ZW1IZWlnaHQ9MCxjLnN5bWJvbFdpZHRoPXAoYi5zeW1ib2xXaWR0aCwxNiksYy5wYWdlcz1bXSxjLnJlbmRlcigpLEQoYy5jaGFydCwiZW5kUmVzaXplIixmdW5jdGlvbigpe2MucG9zaXRpb25DaGVja2JveGVzKCl9KX0sY29sb3JpemVJdGVtOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5vcHRpb25zLGQ9YS5sZWdlbmRJdGVtLGU9YS5sZWdlbmRMaW5lLGY9YS5sZWdlbmRTeW1ib2wsZz10aGlzLml0ZW1IaWRkZW5TdHlsZS5jb2xvcixjPWI/Yy5pdGVtU3R5bGUuY29sb3I6ZyxoPWI/YS5sZWdlbmRDb2xvcnx8YS5jb2xvcnx8IiNDQ0MiOmcsZz1hLm9wdGlvbnMmJmEub3B0aW9ucy5tYXJrZXIsaT17ZmlsbDpofSxqO2QmJmQuY3NzKHtmaWxsOmMsCmNvbG9yOmN9KTtlJiZlLmF0dHIoe3N0cm9rZTpofSk7aWYoZil7aWYoZyYmZi5pc01hcmtlcilmb3IoaiBpbiBpLnN0cm9rZT1oLGc9YS5jb252ZXJ0QXR0cmlicyhnKSxnKWQ9Z1tqXSxkIT09dSYmKGlbal09ZCk7Zi5hdHRyKGkpfX0scG9zaXRpb25JdGVtOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMub3B0aW9ucyxjPWIuc3ltYm9sUGFkZGluZyxiPSFiLnJ0bCxkPWEuX2xlZ2VuZEl0ZW1Qb3MsZT1kWzBdLGQ9ZFsxXSxmPWEuY2hlY2tib3g7KGE9YS5sZWdlbmRHcm91cCkmJmEuZWxlbWVudCYmYS50cmFuc2xhdGUoYj9lOnRoaXMubGVnZW5kV2lkdGgtZS0yKmMtNCxkKTtpZihmKWYueD1lLGYueT1kfSxkZXN0cm95SXRlbTpmdW5jdGlvbihhKXt2YXIgYj1hLmNoZWNrYm94O24oWyJsZWdlbmRJdGVtIiwibGVnZW5kTGluZSIsImxlZ2VuZFN5bWJvbCIsImxlZ2VuZEdyb3VwIl0sZnVuY3Rpb24oYil7YVtiXSYmKGFbYl09YVtiXS5kZXN0cm95KCkpfSk7YiYmWGEoYS5jaGVja2JveCl9LApkZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5ncm91cCxiPXRoaXMuYm94O2lmKGIpdGhpcy5ib3g9Yi5kZXN0cm95KCk7aWYoYSl0aGlzLmdyb3VwPWEuZGVzdHJveSgpfSxwb3NpdGlvbkNoZWNrYm94ZXM6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5ncm91cC5hbGlnbkF0dHIsYyxkPXRoaXMuY2xpcEhlaWdodHx8dGhpcy5sZWdlbmRIZWlnaHQsZT10aGlzLnRpdGxlSGVpZ2h0O2lmKGIpYz1iLnRyYW5zbGF0ZVksbih0aGlzLmFsbEl0ZW1zLGZ1bmN0aW9uKGYpe3ZhciBnPWYuY2hlY2tib3gsaDtnJiYoaD1jK2UrZy55KyhhfHwwKSszLEkoZyx7bGVmdDpiLnRyYW5zbGF0ZVgrZi5jaGVja2JveE9mZnNldCtnLngtMjArInB4Iix0b3A6aCsicHgiLGRpc3BsYXk6aD5jLTYmJmg8YytkLTY/IiI6Im5vbmUifSkpfSl9LHJlbmRlclRpdGxlOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5wYWRkaW5nLGI9dGhpcy5vcHRpb25zLnRpdGxlLGM9MDtpZihiLnRleHQpe2lmKCF0aGlzLnRpdGxlKXRoaXMudGl0bGU9CnRoaXMuY2hhcnQucmVuZGVyZXIubGFiZWwoYi50ZXh0LGEtMyxhLTQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCJsZWdlbmQtdGl0bGUiKS5hdHRyKHt6SW5kZXg6MX0pLmNzcyhiLnN0eWxlKS5hZGQodGhpcy5ncm91cCk7YT10aGlzLnRpdGxlLmdldEJCb3goKTtjPWEuaGVpZ2h0O3RoaXMub2Zmc2V0V2lkdGg9YS53aWR0aDt0aGlzLmNvbnRlbnRHcm91cC5hdHRyKHt0cmFuc2xhdGVZOmN9KX10aGlzLnRpdGxlSGVpZ2h0PWN9LHNldFRleHQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5vcHRpb25zO2EubGVnZW5kSXRlbS5hdHRyKHt0ZXh0OmIubGFiZWxGb3JtYXQ/S2EoYi5sYWJlbEZvcm1hdCxhKTpiLmxhYmVsRm9ybWF0dGVyLmNhbGwoYSl9KX0scmVuZGVySXRlbTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNoYXJ0LGM9Yi5yZW5kZXJlcixkPXRoaXMub3B0aW9ucyxlPWQubGF5b3V0PT09Imhvcml6b250YWwiLGY9dGhpcy5zeW1ib2xXaWR0aCxnPWQuc3ltYm9sUGFkZGluZywKaD10aGlzLml0ZW1TdHlsZSxpPXRoaXMuaXRlbUhpZGRlblN0eWxlLGo9dGhpcy5wYWRkaW5nLGs9ZT9wKGQuaXRlbURpc3RhbmNlLDIwKTowLGw9IWQucnRsLG09ZC53aWR0aCxvPWQuaXRlbU1hcmdpbkJvdHRvbXx8MCxxPXRoaXMuaXRlbU1hcmdpblRvcCxyPXRoaXMuaW5pdGlhbEl0ZW1YLEE9YS5sZWdlbmRJdGVtLG49YS5zZXJpZXMmJmEuc2VyaWVzLmRyYXdMZWdlbmRTeW1ib2w/YS5zZXJpZXM6YSx2PW4ub3B0aW9ucyx2PXRoaXMuY3JlYXRlQ2hlY2tib3hGb3JJdGVtJiZ2JiZ2LnNob3dDaGVja2JveCx4PWQudXNlSFRNTDtpZighQSl7YS5sZWdlbmRHcm91cD1jLmcoImxlZ2VuZC1pdGVtIikuYXR0cih7ekluZGV4OjF9KS5hZGQodGhpcy5zY3JvbGxHcm91cCk7YS5sZWdlbmRJdGVtPUE9Yy50ZXh0KCIiLGw/ZitnOi1nLHRoaXMuYmFzZWxpbmV8fDAseCkuY3NzKEMoYS52aXNpYmxlP2g6aSkpLmF0dHIoe2FsaWduOmw/ImxlZnQiOiJyaWdodCIsekluZGV4OjJ9KS5hZGQoYS5sZWdlbmRHcm91cCk7CmlmKCF0aGlzLmJhc2VsaW5lKXRoaXMuZm9udE1ldHJpY3M9Yy5mb250TWV0cmljcyhoLmZvbnRTaXplLEEpLHRoaXMuYmFzZWxpbmU9dGhpcy5mb250TWV0cmljcy5mKzMrcSxBLmF0dHIoInkiLHRoaXMuYmFzZWxpbmUpO24uZHJhd0xlZ2VuZFN5bWJvbCh0aGlzLGEpO3RoaXMuc2V0SXRlbUV2ZW50cyYmdGhpcy5zZXRJdGVtRXZlbnRzKGEsQSx4LGgsaSk7diYmdGhpcy5jcmVhdGVDaGVja2JveEZvckl0ZW0oYSl9dGhpcy5jb2xvcml6ZUl0ZW0oYSxhLnZpc2libGUpO3RoaXMuc2V0VGV4dChhKTtjPUEuZ2V0QkJveCgpO2Y9YS5jaGVja2JveE9mZnNldD1kLml0ZW1XaWR0aHx8YS5sZWdlbmRJdGVtV2lkdGh8fGYrZytjLndpZHRoK2srKHY/MjA6MCk7dGhpcy5pdGVtSGVpZ2h0PWc9eShhLmxlZ2VuZEl0ZW1IZWlnaHR8fGMuaGVpZ2h0KTtpZihlJiZ0aGlzLml0ZW1YLXIrZj4obXx8Yi5jaGFydFdpZHRoLTIqai1yLWQueCkpdGhpcy5pdGVtWD1yLHRoaXMuaXRlbVkrPXErdGhpcy5sYXN0TGluZUhlaWdodCsKbyx0aGlzLmxhc3RMaW5lSGVpZ2h0PTA7dGhpcy5tYXhJdGVtV2lkdGg9cyh0aGlzLm1heEl0ZW1XaWR0aCxmKTt0aGlzLmxhc3RJdGVtWT1xK3RoaXMuaXRlbVkrbzt0aGlzLmxhc3RMaW5lSGVpZ2h0PXMoZyx0aGlzLmxhc3RMaW5lSGVpZ2h0KTthLl9sZWdlbmRJdGVtUG9zPVt0aGlzLml0ZW1YLHRoaXMuaXRlbVldO2U/dGhpcy5pdGVtWCs9ZjoodGhpcy5pdGVtWSs9cStnK28sdGhpcy5sYXN0TGluZUhlaWdodD1nKTt0aGlzLm9mZnNldFdpZHRoPW18fHMoKGU/dGhpcy5pdGVtWC1yLWs6Zikraix0aGlzLm9mZnNldFdpZHRoKX0sZ2V0QWxsSXRlbXM6ZnVuY3Rpb24oKXt2YXIgYT1bXTtuKHRoaXMuY2hhcnQuc2VyaWVzLGZ1bmN0aW9uKGIpe3ZhciBjPWIub3B0aW9ucztpZihwKGMuc2hvd0luTGVnZW5kLCF0KGMubGlua2VkVG8pP3U6ITEsITApKWE9YS5jb25jYXQoYi5sZWdlbmRJdGVtc3x8KGMubGVnZW5kVHlwZT09PSJwb2ludCI/Yi5kYXRhOmIpKX0pO3JldHVybiBhfSxhZGp1c3RNYXJnaW5zOmZ1bmN0aW9uKGEsCmIpe3ZhciBjPXRoaXMuY2hhcnQsZD10aGlzLm9wdGlvbnMsZT1kLmFsaWduLmNoYXJBdCgwKStkLnZlcnRpY2FsQWxpZ24uY2hhckF0KDApK2QubGF5b3V0LmNoYXJBdCgwKTt0aGlzLmRpc3BsYXkmJiFkLmZsb2F0aW5nJiZuKFsvKGx0aHxjdHxydGgpLywvKHJ0dnxybXxyYnYpLywvKHJiaHxjYnxsYmgpLywvKGxidnxsbXxsdHYpL10sZnVuY3Rpb24oZixnKXtmLnRlc3QoZSkmJiF0KGFbZ10pJiYoY1t1YltnXV09cyhjW3ViW2ddXSxjLmxlZ2VuZFsoZysxKSUyPyJsZWdlbmRIZWlnaHQiOiJsZWdlbmRXaWR0aCJdK1sxLC0xLC0xLDFdW2ddKmRbZyUyPyJ4IjoieSJdK3AoZC5tYXJnaW4sMTIpK2JbZ10pKX0pfSxyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS5jaGFydCxjPWIucmVuZGVyZXIsZD1hLmdyb3VwLGUsZixnLGgsaT1hLmJveCxqPWEub3B0aW9ucyxrPWEucGFkZGluZyxsPWouYm9yZGVyV2lkdGgsbT1qLmJhY2tncm91bmRDb2xvcjthLml0ZW1YPWEuaW5pdGlhbEl0ZW1YOwphLml0ZW1ZPWEuaW5pdGlhbEl0ZW1ZO2Eub2Zmc2V0V2lkdGg9MDthLmxhc3RJdGVtWT0wO2lmKCFkKWEuZ3JvdXA9ZD1jLmcoImxlZ2VuZCIpLmF0dHIoe3pJbmRleDo3fSkuYWRkKCksYS5jb250ZW50R3JvdXA9Yy5nKCkuYXR0cih7ekluZGV4OjF9KS5hZGQoZCksYS5zY3JvbGxHcm91cD1jLmcoKS5hZGQoYS5jb250ZW50R3JvdXApO2EucmVuZGVyVGl0bGUoKTtlPWEuZ2V0QWxsSXRlbXMoKTtwYihlLGZ1bmN0aW9uKGEsYil7cmV0dXJuKGEub3B0aW9ucyYmYS5vcHRpb25zLmxlZ2VuZEluZGV4fHwwKS0oYi5vcHRpb25zJiZiLm9wdGlvbnMubGVnZW5kSW5kZXh8fDApfSk7ai5yZXZlcnNlZCYmZS5yZXZlcnNlKCk7YS5hbGxJdGVtcz1lO2EuZGlzcGxheT1mPSEhZS5sZW5ndGg7YS5sYXN0TGluZUhlaWdodD0wO24oZSxmdW5jdGlvbihiKXthLnJlbmRlckl0ZW0oYil9KTtnPShqLndpZHRofHxhLm9mZnNldFdpZHRoKStrO2g9YS5sYXN0SXRlbVkrYS5sYXN0TGluZUhlaWdodCsKYS50aXRsZUhlaWdodDtoPWEuaGFuZGxlT3ZlcmZsb3coaCk7aCs9aztpZihsfHxtKXtpZihpKXtpZihnPjAmJmg+MClpW2kuaXNOZXc/ImF0dHIiOiJhbmltYXRlIl0oaS5jcmlzcCh7d2lkdGg6ZyxoZWlnaHQ6aH0pKSxpLmlzTmV3PSExfWVsc2UgYS5ib3g9aT1jLnJlY3QoMCwwLGcsaCxqLmJvcmRlclJhZGl1cyxsfHwwKS5hdHRyKHtzdHJva2U6ai5ib3JkZXJDb2xvciwic3Ryb2tlLXdpZHRoIjpsfHwwLGZpbGw6bXx8Im5vbmUifSkuYWRkKGQpLnNoYWRvdyhqLnNoYWRvdyksaS5pc05ldz0hMDtpW2Y/InNob3ciOiJoaWRlIl0oKX1hLmxlZ2VuZFdpZHRoPWc7YS5sZWdlbmRIZWlnaHQ9aDtuKGUsZnVuY3Rpb24oYil7YS5wb3NpdGlvbkl0ZW0oYil9KTtmJiZkLmFsaWduKHcoe3dpZHRoOmcsaGVpZ2h0Omh9LGopLCEwLCJzcGFjaW5nQm94Iik7Yi5pc1Jlc2l6aW5nfHx0aGlzLnBvc2l0aW9uQ2hlY2tib3hlcygpfSxoYW5kbGVPdmVyZmxvdzpmdW5jdGlvbihhKXt2YXIgYj10aGlzLApjPXRoaXMuY2hhcnQsZD1jLnJlbmRlcmVyLGU9dGhpcy5vcHRpb25zLGY9ZS55LGY9Yy5zcGFjaW5nQm94LmhlaWdodCsoZS52ZXJ0aWNhbEFsaWduPT09InRvcCI/LWY6ZiktdGhpcy5wYWRkaW5nLGc9ZS5tYXhIZWlnaHQsaCxpPXRoaXMuY2xpcFJlY3Qsaj1lLm5hdmlnYXRpb24saz1wKGouYW5pbWF0aW9uLCEwKSxsPWouYXJyb3dTaXplfHwxMixtPXRoaXMubmF2LG89dGhpcy5wYWdlcyxxPXRoaXMucGFkZGluZyxyLEE9dGhpcy5hbGxJdGVtcyxUPWZ1bmN0aW9uKGEpe2kuYXR0cih7aGVpZ2h0OmF9KTtpZihiLmNvbnRlbnRHcm91cC5kaXYpYi5jb250ZW50R3JvdXAuZGl2LnN0eWxlLmNsaXA9InJlY3QoIitxKyJweCw5OTk5cHgsIisocSthKSsicHgsMCkifTtlLmxheW91dD09PSJob3Jpem9udGFsIiYmKGYvPTIpO2cmJihmPUUoZixnKSk7by5sZW5ndGg9MDtpZihhPmYpe3RoaXMuY2xpcEhlaWdodD1oPXMoZi0yMC10aGlzLnRpdGxlSGVpZ2h0LXEsMCk7dGhpcy5jdXJyZW50UGFnZT0KcCh0aGlzLmN1cnJlbnRQYWdlLDEpO3RoaXMuZnVsbEhlaWdodD1hO24oQSxmdW5jdGlvbihhLGIpe3ZhciBjPWEuX2xlZ2VuZEl0ZW1Qb3NbMV0sZD15KGEubGVnZW5kSXRlbS5nZXRCQm94KCkuaGVpZ2h0KSxlPW8ubGVuZ3RoO2lmKCFlfHxjLW9bZS0xXT5oJiYocnx8YykhPT1vW2UtMV0pby5wdXNoKHJ8fGMpLGUrKztiPT09QS5sZW5ndGgtMSYmYytkLW9bZS0xXT5oJiZvLnB1c2goYyk7YyE9PXImJihyPWMpfSk7aWYoIWkpaT1iLmNsaXBSZWN0PWQuY2xpcFJlY3QoMCxxLDk5OTksMCksYi5jb250ZW50R3JvdXAuY2xpcChpKTtUKGgpO2lmKCFtKXRoaXMubmF2PW09ZC5nKCkuYXR0cih7ekluZGV4OjF9KS5hZGQodGhpcy5ncm91cCksdGhpcy51cD1kLnN5bWJvbCgidHJpYW5nbGUiLDAsMCxsLGwpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtiLnNjcm9sbCgtMSxrKX0pLmFkZChtKSx0aGlzLnBhZ2VyPWQudGV4dCgiIiwxNSwxMCkuY3NzKGouc3R5bGUpLmFkZChtKSx0aGlzLmRvd249CmQuc3ltYm9sKCJ0cmlhbmdsZS1kb3duIiwwLDAsbCxsKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yi5zY3JvbGwoMSxrKX0pLmFkZChtKTtiLnNjcm9sbCgwKTthPWZ9ZWxzZSBpZihtKVQoYy5jaGFydEhlaWdodCksbS5oaWRlKCksdGhpcy5zY3JvbGxHcm91cC5hdHRyKHt0cmFuc2xhdGVZOjF9KSx0aGlzLmNsaXBIZWlnaHQ9MDtyZXR1cm4gYX0sc2Nyb2xsOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5wYWdlcyxkPWMubGVuZ3RoLGU9dGhpcy5jdXJyZW50UGFnZSthLGY9dGhpcy5jbGlwSGVpZ2h0LGc9dGhpcy5vcHRpb25zLm5hdmlnYXRpb24saD1nLmFjdGl2ZUNvbG9yLGc9Zy5pbmFjdGl2ZUNvbG9yLGk9dGhpcy5wYWdlcixqPXRoaXMucGFkZGluZztlPmQmJihlPWQpO2lmKGU+MCliIT09dSYmY2IoYix0aGlzLmNoYXJ0KSx0aGlzLm5hdi5hdHRyKHt0cmFuc2xhdGVYOmosdHJhbnNsYXRlWTpmK3RoaXMucGFkZGluZys3K3RoaXMudGl0bGVIZWlnaHQsdmlzaWJpbGl0eToidmlzaWJsZSJ9KSwKdGhpcy51cC5hdHRyKHtmaWxsOmU9PT0xP2c6aH0pLmNzcyh7Y3Vyc29yOmU9PT0xPyJkZWZhdWx0IjoicG9pbnRlciJ9KSxpLmF0dHIoe3RleHQ6ZSsiLyIrZH0pLHRoaXMuZG93bi5hdHRyKHt4OjE4K3RoaXMucGFnZXIuZ2V0QkJveCgpLndpZHRoLGZpbGw6ZT09PWQ/ZzpofSkuY3NzKHtjdXJzb3I6ZT09PWQ/ImRlZmF1bHQiOiJwb2ludGVyIn0pLGM9LWNbZS0xXSt0aGlzLmluaXRpYWxJdGVtWSx0aGlzLnNjcm9sbEdyb3VwLmFuaW1hdGUoe3RyYW5zbGF0ZVk6Y30pLHRoaXMuY3VycmVudFBhZ2U9ZSx0aGlzLnBvc2l0aW9uQ2hlY2tib3hlcyhjKX19O1o9ei5MZWdlbmRTeW1ib2xNaXhpbj17ZHJhd1JlY3RhbmdsZTpmdW5jdGlvbihhLGIpe3ZhciBjPWEub3B0aW9ucy5zeW1ib2xIZWlnaHR8fGEuZm9udE1ldHJpY3MuZjtiLmxlZ2VuZFN5bWJvbD10aGlzLmNoYXJ0LnJlbmRlcmVyLnJlY3QoMCxhLmJhc2VsaW5lLWMrMSxhLnN5bWJvbFdpZHRoLGMsYS5vcHRpb25zLnN5bWJvbFJhZGl1c3x8CjApLmF0dHIoe3pJbmRleDozfSkuYWRkKGIubGVnZW5kR3JvdXApfSxkcmF3TGluZU1hcmtlcjpmdW5jdGlvbihhKXt2YXIgYj10aGlzLm9wdGlvbnMsYz1iLm1hcmtlcixkPWEuc3ltYm9sV2lkdGgsZT10aGlzLmNoYXJ0LnJlbmRlcmVyLGY9dGhpcy5sZWdlbmRHcm91cCxhPWEuYmFzZWxpbmUteShhLmZvbnRNZXRyaWNzLmIqMC4zKSxnO2lmKGIubGluZVdpZHRoKXtnPXsic3Ryb2tlLXdpZHRoIjpiLmxpbmVXaWR0aH07aWYoYi5kYXNoU3R5bGUpZy5kYXNoc3R5bGU9Yi5kYXNoU3R5bGU7dGhpcy5sZWdlbmRMaW5lPWUucGF0aChbIk0iLDAsYSwiTCIsZCxhXSkuYXR0cihnKS5hZGQoZil9aWYoYyYmYy5lbmFibGVkIT09ITEpYj1jLnJhZGl1cyx0aGlzLmxlZ2VuZFN5bWJvbD1jPWUuc3ltYm9sKHRoaXMuc3ltYm9sLGQvMi1iLGEtYiwyKmIsMipiLGMpLmFkZChmKSxjLmlzTWFya2VyPSEwfX07KC9UcmlkZW50XC83XC4wLy50ZXN0KExhKXx8WmEpJiZTKHZiLnByb3RvdHlwZSwicG9zaXRpb25JdGVtIiwKZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLGQ9ZnVuY3Rpb24oKXtiLl9sZWdlbmRJdGVtUG9zJiZhLmNhbGwoYyxiKX07ZCgpO3NldFRpbWVvdXQoZCl9KTt2YXIgQ2E9ei5DaGFydD1mdW5jdGlvbigpe3RoaXMuZ2V0QXJncy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ouY2hhcnQ9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuZXcgQ2EoYSxiLGMpfTtDYS5wcm90b3R5cGU9e2NhbGxiYWNrczpbXSxnZXRBcmdzOmZ1bmN0aW9uKCl7dmFyIGE9W10uc2xpY2UuY2FsbChhcmd1bWVudHMpO2lmKERhKGFbMF0pfHxhWzBdLm5vZGVOYW1lKXRoaXMucmVuZGVyVG89YS5zaGlmdCgpO3RoaXMuaW5pdChhWzBdLGFbMV0pfSxpbml0OmZ1bmN0aW9uKGEsYil7dmFyIGMsZD1hLnNlcmllczthLnNlcmllcz1udWxsO2M9QyhPLGEpO2Muc2VyaWVzPWEuc2VyaWVzPWQ7dGhpcy51c2VyT3B0aW9ucz1hO2Q9Yy5jaGFydDt0aGlzLm1hcmdpbj10aGlzLnNwbGFzaEFycmF5KCJtYXJnaW4iLGQpO3RoaXMuc3BhY2luZz0KdGhpcy5zcGxhc2hBcnJheSgic3BhY2luZyIsZCk7dmFyIGU9ZC5ldmVudHM7dGhpcy5ib3VuZHM9e2g6e30sdjp7fX07dGhpcy5jYWxsYmFjaz1iO3RoaXMuaXNSZXNpemluZz0wO3RoaXMub3B0aW9ucz1jO3RoaXMuYXhlcz1bXTt0aGlzLnNlcmllcz1bXTt0aGlzLmhhc0NhcnRlc2lhblNlcmllcz1kLnNob3dBeGVzO3ZhciBmPXRoaXMsZztmLmluZGV4PSQubGVuZ3RoOyQucHVzaChmKTttYisrO2QucmVmbG93IT09ITEmJkQoZiwibG9hZCIsZnVuY3Rpb24oKXtmLmluaXRSZWZsb3coKX0pO2lmKGUpZm9yKGcgaW4gZSlEKGYsZyxlW2ddKTtmLnhBeGlzPVtdO2YueUF4aXM9W107Zi5hbmltYXRpb249cGE/ITE6cChkLmFuaW1hdGlvbiwhMCk7Zi5wb2ludENvdW50PWYuY29sb3JDb3VudGVyPWYuc3ltYm9sQ291bnRlcj0wO2YuZmlyc3RSZW5kZXIoKX0saW5pdFNlcmllczpmdW5jdGlvbihhKXt2YXIgYj10aGlzLm9wdGlvbnMuY2hhcnQ7KGI9S1thLnR5cGV8fGIudHlwZXx8Yi5kZWZhdWx0U2VyaWVzVHlwZV0pfHwKZWEoMTcsITApO2I9bmV3IGI7Yi5pbml0KHRoaXMsYSk7cmV0dXJuIGJ9LGlzSW5zaWRlUGxvdDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yz9iOmEsYT1jP2E6YjtyZXR1cm4gZD49MCYmZDw9dGhpcy5wbG90V2lkdGgmJmE+PTAmJmE8PXRoaXMucGxvdEhlaWdodH0scmVkcmF3OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuYXhlcyxjPXRoaXMuc2VyaWVzLGQ9dGhpcy5wb2ludGVyLGU9dGhpcy5sZWdlbmQsZj10aGlzLmlzRGlydHlMZWdlbmQsZyxoLGk9dGhpcy5oYXNDYXJ0ZXNpYW5TZXJpZXMsaj10aGlzLmlzRGlydHlCb3gsaz1jLmxlbmd0aCxsPWssbT10aGlzLnJlbmRlcmVyLG89bS5pc0hpZGRlbigpLHE9W107Y2IoYSx0aGlzKTtvJiZ0aGlzLmNsb25lUmVuZGVyVG8oKTtmb3IodGhpcy5sYXlPdXRUaXRsZXMoKTtsLS07KWlmKGE9Y1tsXSxhLm9wdGlvbnMuc3RhY2tpbmcmJihnPSEwLGEuaXNEaXJ0eSkpe2g9ITA7YnJlYWt9aWYoaClmb3IobD1rO2wtLTspaWYoYT1jW2xdLGEub3B0aW9ucy5zdGFja2luZylhLmlzRGlydHk9CiEwO24oYyxmdW5jdGlvbihhKXthLmlzRGlydHkmJmEub3B0aW9ucy5sZWdlbmRUeXBlPT09InBvaW50IiYmKGEudXBkYXRlVG90YWxzJiZhLnVwZGF0ZVRvdGFscygpLGY9ITApfSk7aWYoZiYmZS5vcHRpb25zLmVuYWJsZWQpZS5yZW5kZXIoKSx0aGlzLmlzRGlydHlMZWdlbmQ9ITE7ZyYmdGhpcy5nZXRTdGFja3MoKTtpZihpJiYhdGhpcy5pc1Jlc2l6aW5nKXRoaXMubWF4VGlja3M9bnVsbCxuKGIsZnVuY3Rpb24oYSl7YS5zZXRTY2FsZSgpfSk7dGhpcy5nZXRNYXJnaW5zKCk7aSYmKG4oYixmdW5jdGlvbihhKXthLmlzRGlydHkmJihqPSEwKX0pLG4oYixmdW5jdGlvbihhKXt2YXIgYj1hLm1pbisiLCIrYS5tYXg7aWYoYS5leHRLZXkhPT1iKWEuZXh0S2V5PWIscS5wdXNoKGZ1bmN0aW9uKCl7TShhLCJhZnRlclNldEV4dHJlbWVzIix3KGEuZXZlbnRBcmdzLGEuZ2V0RXh0cmVtZXMoKSkpO2RlbGV0ZSBhLmV2ZW50QXJnc30pOyhqfHxnKSYmYS5yZWRyYXcoKX0pKTtqJiZ0aGlzLmRyYXdDaGFydEJveCgpOwpuKGMsZnVuY3Rpb24oYSl7YS5pc0RpcnR5JiZhLnZpc2libGUmJighYS5pc0NhcnRlc2lhbnx8YS54QXhpcykmJmEucmVkcmF3KCl9KTtkJiZkLnJlc2V0KCEwKTttLmRyYXcoKTtNKHRoaXMsInJlZHJhdyIpO28mJnRoaXMuY2xvbmVSZW5kZXJUbyghMCk7bihxLGZ1bmN0aW9uKGEpe2EuY2FsbCgpfSl9LGdldDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmF4ZXMsYz10aGlzLnNlcmllcyxkLGU7Zm9yKGQ9MDtkPGIubGVuZ3RoO2QrKylpZihiW2RdLm9wdGlvbnMuaWQ9PT1hKXJldHVybiBiW2RdO2ZvcihkPTA7ZDxjLmxlbmd0aDtkKyspaWYoY1tkXS5vcHRpb25zLmlkPT09YSlyZXR1cm4gY1tkXTtmb3IoZD0wO2Q8Yy5sZW5ndGg7ZCsrKXtlPWNbZF0ucG9pbnRzfHxbXTtmb3IoYj0wO2I8ZS5sZW5ndGg7YisrKWlmKGVbYl0uaWQ9PT1hKXJldHVybiBlW2JdfXJldHVybiBudWxsfSxnZXRBeGVzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPXRoaXMub3B0aW9ucyxjPWIueEF4aXM9dWEoYi54QXhpc3x8Cnt9KSxiPWIueUF4aXM9dWEoYi55QXhpc3x8e30pO24oYyxmdW5jdGlvbihhLGIpe2EuaW5kZXg9YjthLmlzWD0hMH0pO24oYixmdW5jdGlvbihhLGIpe2EuaW5kZXg9Yn0pO2M9Yy5jb25jYXQoYik7bihjLGZ1bmN0aW9uKGIpe25ldyBGKGEsYil9KX0sZ2V0U2VsZWN0ZWRQb2ludHM6ZnVuY3Rpb24oKXt2YXIgYT1bXTtuKHRoaXMuc2VyaWVzLGZ1bmN0aW9uKGIpe2E9YS5jb25jYXQoU2EoYi5wb2ludHN8fFtdLGZ1bmN0aW9uKGEpe3JldHVybiBhLnNlbGVjdGVkfSkpfSk7cmV0dXJuIGF9LGdldFNlbGVjdGVkU2VyaWVzOmZ1bmN0aW9uKCl7cmV0dXJuIFNhKHRoaXMuc2VyaWVzLGZ1bmN0aW9uKGEpe3JldHVybiBhLnNlbGVjdGVkfSl9LHNldFRpdGxlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZzt2YXIgZD10aGlzLGU9ZC5vcHRpb25zLGY7Zj1lLnRpdGxlPUMoZS50aXRsZSxhKTtnPWUuc3VidGl0bGU9QyhlLnN1YnRpdGxlLGIpLGU9ZztuKFtbInRpdGxlIixhLGZdLFsic3VidGl0bGUiLApiLGVdXSxmdW5jdGlvbihhKXt2YXIgYj1hWzBdLGM9ZFtiXSxlPWFbMV0sYT1hWzJdO2MmJmUmJihkW2JdPWM9Yy5kZXN0cm95KCkpO2EmJmEudGV4dCYmIWMmJihkW2JdPWQucmVuZGVyZXIudGV4dChhLnRleHQsMCwwLGEudXNlSFRNTCkuYXR0cih7YWxpZ246YS5hbGlnbiwiY2xhc3MiOiJoaWdoY2hhcnRzLSIrYix6SW5kZXg6YS56SW5kZXh8fDR9KS5jc3MoYS5zdHlsZSkuYWRkKCkpfSk7ZC5sYXlPdXRUaXRsZXMoYyl9LGxheU91dFRpdGxlczpmdW5jdGlvbihhKXt2YXIgYj0wLGM9dGhpcy50aXRsZSxkPXRoaXMuc3VidGl0bGUsZT10aGlzLm9wdGlvbnMsZj1lLnRpdGxlLGU9ZS5zdWJ0aXRsZSxnPXRoaXMucmVuZGVyZXIsaD10aGlzLnNwYWNpbmdCb3gud2lkdGgtNDQ7aWYoYyYmKGMuY3NzKHt3aWR0aDooZi53aWR0aHx8aCkrInB4In0pLmFsaWduKHcoe3k6Zy5mb250TWV0cmljcyhmLnN0eWxlLmZvbnRTaXplLGMpLmItM30sZiksITEsInNwYWNpbmdCb3giKSwhZi5mbG9hdGluZyYmCiFmLnZlcnRpY2FsQWxpZ24pKWI9Yy5nZXRCQm94KCkuaGVpZ2h0O2QmJihkLmNzcyh7d2lkdGg6KGUud2lkdGh8fGgpKyJweCJ9KS5hbGlnbih3KHt5OmIrKGYubWFyZ2luLTEzKStnLmZvbnRNZXRyaWNzKGUuc3R5bGUuZm9udFNpemUsYykuYn0sZSksITEsInNwYWNpbmdCb3giKSwhZS5mbG9hdGluZyYmIWUudmVydGljYWxBbGlnbiYmKGI9RmEoYitkLmdldEJCb3goKS5oZWlnaHQpKSk7Yz10aGlzLnRpdGxlT2Zmc2V0IT09Yjt0aGlzLnRpdGxlT2Zmc2V0PWI7aWYoIXRoaXMuaXNEaXJ0eUJveCYmYyl0aGlzLmlzRGlydHlCb3g9Yyx0aGlzLmhhc1JlbmRlcmVkJiZwKGEsITApJiZ0aGlzLmlzRGlydHlCb3gmJnRoaXMucmVkcmF3KCl9LGdldENoYXJ0U2l6ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucy5jaGFydCxiPWEud2lkdGgsYT1hLmhlaWdodCxjPXRoaXMucmVuZGVyVG9DbG9uZXx8dGhpcy5yZW5kZXJUbztpZighdChiKSl0aGlzLmNvbnRhaW5lcldpZHRoPXdhKGMsCiJ3aWR0aCIpO2lmKCF0KGEpKXRoaXMuY29udGFpbmVySGVpZ2h0PXdhKGMsImhlaWdodCIpO3RoaXMuY2hhcnRXaWR0aD1zKDAsYnx8dGhpcy5jb250YWluZXJXaWR0aHx8NjAwKTt0aGlzLmNoYXJ0SGVpZ2h0PXMoMCxwKGEsdGhpcy5jb250YWluZXJIZWlnaHQ+MTk/dGhpcy5jb250YWluZXJIZWlnaHQ6NDAwKSl9LGNsb25lUmVuZGVyVG86ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5yZW5kZXJUb0Nsb25lLGM9dGhpcy5jb250YWluZXI7YT9iJiYodGhpcy5yZW5kZXJUby5hcHBlbmRDaGlsZChjKSxYYShiKSxkZWxldGUgdGhpcy5yZW5kZXJUb0Nsb25lKTooYyYmYy5wYXJlbnROb2RlPT09dGhpcy5yZW5kZXJUbyYmdGhpcy5yZW5kZXJUby5yZW1vdmVDaGlsZChjKSx0aGlzLnJlbmRlclRvQ2xvbmU9Yj10aGlzLnJlbmRlclRvLmNsb25lTm9kZSgwKSxJKGIse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiItOTk5OXB4IixkaXNwbGF5OiJibG9jayJ9KSxiLnN0eWxlLnNldFByb3BlcnR5JiYKYi5zdHlsZS5zZXRQcm9wZXJ0eSgiZGlzcGxheSIsImJsb2NrIiwiaW1wb3J0YW50IiksQi5ib2R5LmFwcGVuZENoaWxkKGIpLGMmJmIuYXBwZW5kQ2hpbGQoYykpfSxnZXRDb250YWluZXI6ZnVuY3Rpb24oKXt2YXIgYSxiPXRoaXMub3B0aW9ucyxjPWIuY2hhcnQsZCxlO2E9dGhpcy5yZW5kZXJUbzt2YXIgZj0iaGlnaGNoYXJ0cy0iK0tiKys7aWYoIWEpdGhpcy5yZW5kZXJUbz1hPWMucmVuZGVyVG87aWYoRGEoYSkpdGhpcy5yZW5kZXJUbz1hPUIuZ2V0RWxlbWVudEJ5SWQoYSk7YXx8ZWEoMTMsITApO2Q9RyhXKGEsImRhdGEtaGlnaGNoYXJ0cy1jaGFydCIpKTshaXNOYU4oZCkmJiRbZF0mJiRbZF0uaGFzUmVuZGVyZWQmJiRbZF0uZGVzdHJveSgpO1coYSwiZGF0YS1oaWdoY2hhcnRzLWNoYXJ0Iix0aGlzLmluZGV4KTthLmlubmVySFRNTD0iIjshYy5za2lwQ2xvbmUmJiFhLm9mZnNldFdpZHRoJiZ0aGlzLmNsb25lUmVuZGVyVG8oKTt0aGlzLmdldENoYXJ0U2l6ZSgpO2Q9dGhpcy5jaGFydFdpZHRoOwplPXRoaXMuY2hhcnRIZWlnaHQ7dGhpcy5jb250YWluZXI9YT1jYShZYSx7Y2xhc3NOYW1lOiJoaWdoY2hhcnRzLWNvbnRhaW5lciIrKGMuY2xhc3NOYW1lPyIgIitjLmNsYXNzTmFtZToiIiksaWQ6Zn0sdyh7cG9zaXRpb246InJlbGF0aXZlIixvdmVyZmxvdzoiaGlkZGVuIix3aWR0aDpkKyJweCIsaGVpZ2h0OmUrInB4Iix0ZXh0QWxpZ246ImxlZnQiLGxpbmVIZWlnaHQ6Im5vcm1hbCIsekluZGV4OjAsIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvciI6InJnYmEoMCwwLDAsMCkifSxjLnN0eWxlKSx0aGlzLnJlbmRlclRvQ2xvbmV8fGEpO3RoaXMuX2N1cnNvcj1hLnN0eWxlLmN1cnNvcjt0aGlzLnJlbmRlcmVyPW5ldyAoeltjLnJlbmRlcmVyXXx8JGEpKGEsZCxlLGMuc3R5bGUsYy5mb3JFeHBvcnQsYi5leHBvcnRpbmcmJmIuZXhwb3J0aW5nLmFsbG93SFRNTCk7cGEmJnRoaXMucmVuZGVyZXIuY3JlYXRlKHRoaXMsYSxkLGUpO3RoaXMucmVuZGVyZXIuY2hhcnRJbmRleD10aGlzLmluZGV4fSwKZ2V0TWFyZ2luczpmdW5jdGlvbihhKXt2YXIgYj10aGlzLnNwYWNpbmcsYz10aGlzLm1hcmdpbixkPXRoaXMudGl0bGVPZmZzZXQ7dGhpcy5yZXNldE1hcmdpbnMoKTtpZihkJiYhdChjWzBdKSl0aGlzLnBsb3RUb3A9cyh0aGlzLnBsb3RUb3AsZCt0aGlzLm9wdGlvbnMudGl0bGUubWFyZ2luK2JbMF0pO3RoaXMubGVnZW5kLmFkanVzdE1hcmdpbnMoYyxiKTt0aGlzLmV4dHJhQm90dG9tTWFyZ2luJiYodGhpcy5tYXJnaW5Cb3R0b20rPXRoaXMuZXh0cmFCb3R0b21NYXJnaW4pO3RoaXMuZXh0cmFUb3BNYXJnaW4mJih0aGlzLnBsb3RUb3ArPXRoaXMuZXh0cmFUb3BNYXJnaW4pO2F8fHRoaXMuZ2V0QXhpc01hcmdpbnMoKX0sZ2V0QXhpc01hcmdpbnM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS5heGlzT2Zmc2V0PVswLDAsMCwwXSxjPWEubWFyZ2luO2EuaGFzQ2FydGVzaWFuU2VyaWVzJiZuKGEuYXhlcyxmdW5jdGlvbihhKXthLnZpc2libGUmJmEuZ2V0T2Zmc2V0KCl9KTtuKHViLApmdW5jdGlvbihkLGUpe3QoY1tlXSl8fChhW2RdKz1iW2VdKX0pO2Euc2V0Q2hhcnRTaXplKCl9LHJlZmxvdzpmdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9Yi5vcHRpb25zLmNoYXJ0LGQ9Yi5yZW5kZXJUbyxlPWMud2lkdGh8fHdhKGQsIndpZHRoIiksZj1jLmhlaWdodHx8d2EoZCwiaGVpZ2h0IiksYz1hP2EudGFyZ2V0Oko7aWYoIWIuaGFzVXNlclNpemUmJiFiLmlzUHJpbnRpbmcmJmUmJmYmJihjPT09Snx8Yz09PUIpKXtpZihlIT09Yi5jb250YWluZXJXaWR0aHx8ZiE9PWIuY29udGFpbmVySGVpZ2h0KWNsZWFyVGltZW91dChiLnJlZmxvd1RpbWVvdXQpLGIucmVmbG93VGltZW91dD1iYihmdW5jdGlvbigpe2lmKGIuY29udGFpbmVyKWIuc2V0U2l6ZShlLGYsITEpLGIuaGFzVXNlclNpemU9bnVsbH0sYT8xMDA6MCk7Yi5jb250YWluZXJXaWR0aD1lO2IuY29udGFpbmVySGVpZ2h0PWZ9fSxpbml0UmVmbG93OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPWZ1bmN0aW9uKGIpe2EucmVmbG93KGIpfTsKRChKLCJyZXNpemUiLGIpO0QoYSwiZGVzdHJveSIsZnVuY3Rpb24oKXtSKEosInJlc2l6ZSIsYil9KX0sc2V0U2l6ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcyxlLGYsZz1kLnJlbmRlcmVyO2QuaXNSZXNpemluZys9MTtjYihjLGQpO2Qub2xkQ2hhcnRIZWlnaHQ9ZC5jaGFydEhlaWdodDtkLm9sZENoYXJ0V2lkdGg9ZC5jaGFydFdpZHRoO2lmKHQoYSkpZC5jaGFydFdpZHRoPWU9cygwLHkoYSkpLGQuaGFzVXNlclNpemU9ISFlO2lmKHQoYikpZC5jaGFydEhlaWdodD1mPXMoMCx5KGIpKTthPWcuZ2xvYmFsQW5pbWF0aW9uOyhhP2ZiOkkpKGQuY29udGFpbmVyLHt3aWR0aDplKyJweCIsaGVpZ2h0OmYrInB4In0sYSk7ZC5zZXRDaGFydFNpemUoITApO2cuc2V0U2l6ZShlLGYsYyk7ZC5tYXhUaWNrcz1udWxsO24oZC5heGVzLGZ1bmN0aW9uKGEpe2EuaXNEaXJ0eT0hMDthLnNldFNjYWxlKCl9KTtuKGQuc2VyaWVzLGZ1bmN0aW9uKGEpe2EuaXNEaXJ0eT0hMH0pO2QuaXNEaXJ0eUxlZ2VuZD0KITA7ZC5pc0RpcnR5Qm94PSEwO2QubGF5T3V0VGl0bGVzKCk7ZC5nZXRNYXJnaW5zKCk7ZC5yZWRyYXcoYyk7ZC5vbGRDaGFydEhlaWdodD1udWxsO00oZCwicmVzaXplIik7YT1nLmdsb2JhbEFuaW1hdGlvbjtiYihmdW5jdGlvbigpe2QmJk0oZCwiZW5kUmVzaXplIixudWxsLGZ1bmN0aW9uKCl7ZC5pc1Jlc2l6aW5nLT0xfSl9LGE9PT0hMT8wOmEmJmEuZHVyYXRpb258fDUwMCl9LHNldENoYXJ0U2l6ZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmludmVydGVkLGM9dGhpcy5yZW5kZXJlcixkPXRoaXMuY2hhcnRXaWR0aCxlPXRoaXMuY2hhcnRIZWlnaHQsZj10aGlzLm9wdGlvbnMuY2hhcnQsZz10aGlzLnNwYWNpbmcsaD10aGlzLmNsaXBPZmZzZXQsaSxqLGssbDt0aGlzLnBsb3RMZWZ0PWk9eSh0aGlzLnBsb3RMZWZ0KTt0aGlzLnBsb3RUb3A9aj15KHRoaXMucGxvdFRvcCk7dGhpcy5wbG90V2lkdGg9az1zKDAseShkLWktdGhpcy5tYXJnaW5SaWdodCkpO3RoaXMucGxvdEhlaWdodD0KbD1zKDAseShlLWotdGhpcy5tYXJnaW5Cb3R0b20pKTt0aGlzLnBsb3RTaXplWD1iP2w6azt0aGlzLnBsb3RTaXplWT1iP2s6bDt0aGlzLnBsb3RCb3JkZXJXaWR0aD1mLnBsb3RCb3JkZXJXaWR0aHx8MDt0aGlzLnNwYWNpbmdCb3g9Yy5zcGFjaW5nQm94PXt4OmdbM10seTpnWzBdLHdpZHRoOmQtZ1szXS1nWzFdLGhlaWdodDplLWdbMF0tZ1syXX07dGhpcy5wbG90Qm94PWMucGxvdEJveD17eDppLHk6aix3aWR0aDprLGhlaWdodDpsfTtkPTIqVSh0aGlzLnBsb3RCb3JkZXJXaWR0aC8yKTtiPUZhKHMoZCxoWzNdKS8yKTtjPUZhKHMoZCxoWzBdKS8yKTt0aGlzLmNsaXBCb3g9e3g6Yix5OmMsd2lkdGg6VSh0aGlzLnBsb3RTaXplWC1zKGQsaFsxXSkvMi1iKSxoZWlnaHQ6cygwLFUodGhpcy5wbG90U2l6ZVktcyhkLGhbMl0pLzItYykpfTthfHxuKHRoaXMuYXhlcyxmdW5jdGlvbihhKXthLnNldEF4aXNTaXplKCk7YS5zZXRBeGlzVHJhbnNsYXRpb24oKX0pfSxyZXNldE1hcmdpbnM6ZnVuY3Rpb24oKXt2YXIgYT0KdGhpcztuKHViLGZ1bmN0aW9uKGIsYyl7YVtiXT1wKGEubWFyZ2luW2NdLGEuc3BhY2luZ1tjXSl9KTthLmF4aXNPZmZzZXQ9WzAsMCwwLDBdO2EuY2xpcE9mZnNldD1bMCwwLDAsMF19LGRyYXdDaGFydEJveDpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucy5jaGFydCxiPXRoaXMucmVuZGVyZXIsYz10aGlzLmNoYXJ0V2lkdGgsZD10aGlzLmNoYXJ0SGVpZ2h0LGU9dGhpcy5jaGFydEJhY2tncm91bmQsZj10aGlzLnBsb3RCYWNrZ3JvdW5kLGc9dGhpcy5wbG90Qm9yZGVyLGg9dGhpcy5wbG90QkdJbWFnZSxpPWEuYm9yZGVyV2lkdGh8fDAsaj1hLmJhY2tncm91bmRDb2xvcixrPWEucGxvdEJhY2tncm91bmRDb2xvcixsPWEucGxvdEJhY2tncm91bmRJbWFnZSxtPWEucGxvdEJvcmRlcldpZHRofHwwLG8scT10aGlzLnBsb3RMZWZ0LHI9dGhpcy5wbG90VG9wLEE9dGhpcy5wbG90V2lkdGgscD10aGlzLnBsb3RIZWlnaHQsbj10aGlzLnBsb3RCb3gseD10aGlzLmNsaXBSZWN0LHM9CnRoaXMuY2xpcEJveDtvPWkrKGEuc2hhZG93Pzg6MCk7aWYoaXx8ailpZihlKWUuYW5pbWF0ZShlLmNyaXNwKHt3aWR0aDpjLW8saGVpZ2h0OmQtb30pKTtlbHNle2U9e2ZpbGw6anx8Im5vbmUifTtpZihpKWUuc3Ryb2tlPWEuYm9yZGVyQ29sb3IsZVsic3Ryb2tlLXdpZHRoIl09aTt0aGlzLmNoYXJ0QmFja2dyb3VuZD1iLnJlY3Qoby8yLG8vMixjLW8sZC1vLGEuYm9yZGVyUmFkaXVzLGkpLmF0dHIoZSkuYWRkQ2xhc3MoImhpZ2hjaGFydHMtYmFja2dyb3VuZCIpLmFkZCgpLnNoYWRvdyhhLnNoYWRvdyl9aWYoaylmP2YuYW5pbWF0ZShuKTp0aGlzLnBsb3RCYWNrZ3JvdW5kPWIucmVjdChxLHIsQSxwLDApLmF0dHIoe2ZpbGw6a30pLmFkZCgpLnNoYWRvdyhhLnBsb3RTaGFkb3cpO2lmKGwpaD9oLmFuaW1hdGUobik6dGhpcy5wbG90QkdJbWFnZT1iLmltYWdlKGwscSxyLEEscCkuYWRkKCk7eD94LmFuaW1hdGUoe3dpZHRoOnMud2lkdGgsaGVpZ2h0OnMuaGVpZ2h0fSk6dGhpcy5jbGlwUmVjdD0KYi5jbGlwUmVjdChzKTtpZihtKWc/KGcuc3Ryb2tlV2lkdGg9LW0sZy5hbmltYXRlKGcuY3Jpc3Aoe3g6cSx5OnIsd2lkdGg6QSxoZWlnaHQ6cH0pKSk6dGhpcy5wbG90Qm9yZGVyPWIucmVjdChxLHIsQSxwLDAsLW0pLmF0dHIoe3N0cm9rZTphLnBsb3RCb3JkZXJDb2xvciwic3Ryb2tlLXdpZHRoIjptLGZpbGw6Im5vbmUiLHpJbmRleDoxfSkuYWRkKCk7dGhpcy5pc0RpcnR5Qm94PSExfSxwcm9wRnJvbVNlcmllczpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1hLm9wdGlvbnMuY2hhcnQsYyxkPWEub3B0aW9ucy5zZXJpZXMsZSxmO24oWyJpbnZlcnRlZCIsImFuZ3VsYXIiLCJwb2xhciJdLGZ1bmN0aW9uKGcpe2M9S1tiLnR5cGV8fGIuZGVmYXVsdFNlcmllc1R5cGVdO2Y9YVtnXXx8YltnXXx8YyYmYy5wcm90b3R5cGVbZ107Zm9yKGU9ZCYmZC5sZW5ndGg7IWYmJmUtLTspKGM9S1tkW2VdLnR5cGVdKSYmYy5wcm90b3R5cGVbZ10mJihmPSEwKTthW2ddPWZ9KX0sbGlua1NlcmllczpmdW5jdGlvbigpe3ZhciBhPQp0aGlzLGI9YS5zZXJpZXM7bihiLGZ1bmN0aW9uKGEpe2EubGlua2VkU2VyaWVzLmxlbmd0aD0wfSk7bihiLGZ1bmN0aW9uKGIpe3ZhciBkPWIub3B0aW9ucy5saW5rZWRUbztpZihEYShkKSYmKGQ9ZD09PSI6cHJldmlvdXMiP2Euc2VyaWVzW2IuaW5kZXgtMV06YS5nZXQoZCkpKWQubGlua2VkU2VyaWVzLnB1c2goYiksYi5saW5rZWRQYXJlbnQ9ZCxiLnZpc2libGU9cChiLm9wdGlvbnMudmlzaWJsZSxkLm9wdGlvbnMudmlzaWJsZSxiLnZpc2libGUpfSl9LHJlbmRlclNlcmllczpmdW5jdGlvbigpe24odGhpcy5zZXJpZXMsZnVuY3Rpb24oYSl7YS50cmFuc2xhdGUoKTthLnJlbmRlcigpfSl9LHJlbmRlckxhYmVsczpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1hLm9wdGlvbnMubGFiZWxzO2IuaXRlbXMmJm4oYi5pdGVtcyxmdW5jdGlvbihjKXt2YXIgZD13KGIuc3R5bGUsYy5zdHlsZSksZT1HKGQubGVmdCkrYS5wbG90TGVmdCxmPUcoZC50b3ApK2EucGxvdFRvcCsxMjtkZWxldGUgZC5sZWZ0OwpkZWxldGUgZC50b3A7YS5yZW5kZXJlci50ZXh0KGMuaHRtbCxlLGYpLmF0dHIoe3pJbmRleDoyfSkuY3NzKGQpLmFkZCgpfSl9LHJlbmRlcjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuYXhlcyxiPXRoaXMucmVuZGVyZXIsYz10aGlzLm9wdGlvbnMsZCxlLGYsZzt0aGlzLnNldFRpdGxlKCk7dGhpcy5sZWdlbmQ9bmV3IHZiKHRoaXMsYy5sZWdlbmQpO3RoaXMuZ2V0U3RhY2tzJiZ0aGlzLmdldFN0YWNrcygpO3RoaXMuZ2V0TWFyZ2lucyghMCk7dGhpcy5zZXRDaGFydFNpemUoKTtkPXRoaXMucGxvdFdpZHRoO2U9dGhpcy5wbG90SGVpZ2h0LT0yMTtuKGEsZnVuY3Rpb24oYSl7YS5zZXRTY2FsZSgpfSk7dGhpcy5nZXRBeGlzTWFyZ2lucygpO2Y9ZC90aGlzLnBsb3RXaWR0aD4xLjE7Zz1lL3RoaXMucGxvdEhlaWdodD4xLjA1O2lmKGZ8fGcpdGhpcy5tYXhUaWNrcz1udWxsLG4oYSxmdW5jdGlvbihhKXsoYS5ob3JpeiYmZnx8IWEuaG9yaXomJmcpJiZhLnNldFRpY2tJbnRlcnZhbCghMCl9KSwKdGhpcy5nZXRNYXJnaW5zKCk7dGhpcy5kcmF3Q2hhcnRCb3goKTt0aGlzLmhhc0NhcnRlc2lhblNlcmllcyYmbihhLGZ1bmN0aW9uKGEpe2EudmlzaWJsZSYmYS5yZW5kZXIoKX0pO2lmKCF0aGlzLnNlcmllc0dyb3VwKXRoaXMuc2VyaWVzR3JvdXA9Yi5nKCJzZXJpZXMtZ3JvdXAiKS5hdHRyKHt6SW5kZXg6M30pLmFkZCgpO3RoaXMucmVuZGVyU2VyaWVzKCk7dGhpcy5yZW5kZXJMYWJlbHMoKTt0aGlzLnNob3dDcmVkaXRzKGMuY3JlZGl0cyk7dGhpcy5oYXNSZW5kZXJlZD0hMH0sc2hvd0NyZWRpdHM6ZnVuY3Rpb24oYSl7aWYoYS5lbmFibGVkJiYhdGhpcy5jcmVkaXRzKXRoaXMuY3JlZGl0cz10aGlzLnJlbmRlcmVyLnRleHQoYS50ZXh0LDAsMCkub24oImNsaWNrIixmdW5jdGlvbigpe2lmKGEuaHJlZilKLmxvY2F0aW9uLmhyZWY9YS5ocmVmfSkuYXR0cih7YWxpZ246YS5wb3NpdGlvbi5hbGlnbix6SW5kZXg6OH0pLmNzcyhhLnN0eWxlKS5hZGQoKS5hbGlnbihhLnBvc2l0aW9uKX0sCmRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS5heGVzLGM9YS5zZXJpZXMsZD1hLmNvbnRhaW5lcixlLGY9ZCYmZC5wYXJlbnROb2RlO00oYSwiZGVzdHJveSIpOyRbYS5pbmRleF09dTttYi0tO2EucmVuZGVyVG8ucmVtb3ZlQXR0cmlidXRlKCJkYXRhLWhpZ2hjaGFydHMtY2hhcnQiKTtSKGEpO2ZvcihlPWIubGVuZ3RoO2UtLTspYltlXT1iW2VdLmRlc3Ryb3koKTtmb3IoZT1jLmxlbmd0aDtlLS07KWNbZV09Y1tlXS5kZXN0cm95KCk7bigidGl0bGUsc3VidGl0bGUsY2hhcnRCYWNrZ3JvdW5kLHBsb3RCYWNrZ3JvdW5kLHBsb3RCR0ltYWdlLHBsb3RCb3JkZXIsc2VyaWVzR3JvdXAsY2xpcFJlY3QsY3JlZGl0cyxwb2ludGVyLHNjcm9sbGVyLHJhbmdlU2VsZWN0b3IsbGVnZW5kLHJlc2V0Wm9vbUJ1dHRvbix0b29sdGlwLHJlbmRlcmVyIi5zcGxpdCgiLCIpLGZ1bmN0aW9uKGIpe3ZhciBjPWFbYl07YyYmYy5kZXN0cm95JiYoYVtiXT1jLmRlc3Ryb3koKSl9KTtpZihkKWQuaW5uZXJIVE1MPQoiIixSKGQpLGYmJlhhKGQpO2ZvcihlIGluIGEpZGVsZXRlIGFbZV19LGlzUmVhZHlUb1JlbmRlcjpmdW5jdGlvbigpe3ZhciBhPXRoaXM7cmV0dXJuIWhhJiZKPT1KLnRvcCYmQi5yZWFkeVN0YXRlIT09ImNvbXBsZXRlInx8cGEmJiFKLmNhbnZnPyhwYT9YYi5wdXNoKGZ1bmN0aW9uKCl7YS5maXJzdFJlbmRlcigpfSxhLm9wdGlvbnMuZ2xvYmFsLmNhbnZhc1Rvb2xzVVJMKTpCLmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7Qi5kZXRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixhLmZpcnN0UmVuZGVyKTtCLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiJiZhLmZpcnN0UmVuZGVyKCl9KSwhMSk6ITB9LGZpcnN0UmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPWEub3B0aW9ucztpZihhLmlzUmVhZHlUb1JlbmRlcigpKXthLmdldENvbnRhaW5lcigpO00oYSwiaW5pdCIpO2EucmVzZXRNYXJnaW5zKCk7YS5zZXRDaGFydFNpemUoKTthLnByb3BGcm9tU2VyaWVzKCk7CmEuZ2V0QXhlcygpO24oYi5zZXJpZXN8fFtdLGZ1bmN0aW9uKGIpe2EuaW5pdFNlcmllcyhiKX0pO2EubGlua1NlcmllcygpO00oYSwiYmVmb3JlUmVuZGVyIik7aWYoei5Qb2ludGVyKWEucG9pbnRlcj1uZXcgYWIoYSxiKTthLnJlbmRlcigpO2EucmVuZGVyZXIuZHJhdygpO2lmKCFhLnJlbmRlcmVyLmltZ0NvdW50KWEub25sb2FkKCk7YS5jbG9uZVJlbmRlclRvKCEwKX19LG9ubG9hZDpmdW5jdGlvbigpe3ZhciBhPXRoaXM7bihbdGhpcy5jYWxsYmFja10uY29uY2F0KHRoaXMuY2FsbGJhY2tzKSxmdW5jdGlvbihiKXtiJiZhLmluZGV4IT09dm9pZCAwJiZiLmFwcGx5KGEsW2FdKX0pO2EucmVuZGVyZXIuaW1nQ291bnR8fE0oYSwibG9hZCIpfSxzcGxhc2hBcnJheTpmdW5jdGlvbihhLGIpe3ZhciBjPWJbYV0sYz1mYShjKT9jOltjLGMsYyxjXTtyZXR1cm5bcChiW2ErIlRvcCJdLGNbMF0pLHAoYlthKyJSaWdodCJdLGNbMV0pLHAoYlthKyJCb3R0b20iXSxjWzJdKSxwKGJbYSsiTGVmdCJdLApjWzNdKV19fTt2YXIgY2M9ei5DZW50ZXJlZFNlcmllc01peGluPXtnZXRDZW50ZXI6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9wdGlvbnMsYj10aGlzLmNoYXJ0LGM9MiooYS5zbGljZWRPZmZzZXR8fDApLGQ9Yi5wbG90V2lkdGgtMipjLGI9Yi5wbG90SGVpZ2h0LTIqYyxlPWEuY2VudGVyLGU9W3AoZVswXSwiNTAlIikscChlWzFdLCI1MCUiKSxhLnNpemV8fCIxMDAlIixhLmlubmVyU2l6ZXx8MF0sZj1FKGQsYiksZyxoO2ZvcihnPTA7Zzw0OysrZyloPWVbZ10sYT1nPDJ8fGc9PT0yJiYvJSQvLnRlc3QoaCksZVtnXT0oLyUkLy50ZXN0KGgpP1tkLGIsZixlWzJdXVtnXSpwYXJzZUZsb2F0KGgpLzEwMDpwYXJzZUZsb2F0KGgpKSsoYT9jOjApO2VbM10+ZVsyXSYmKGVbM109ZVsyXSk7cmV0dXJuIGV9fSxIYT1mdW5jdGlvbigpe307SGEucHJvdG90eXBlPXtpbml0OmZ1bmN0aW9uKGEsYixjKXt0aGlzLnNlcmllcz1hO3RoaXMuY29sb3I9YS5jb2xvcjt0aGlzLmFwcGx5T3B0aW9ucyhiLApjKTt0aGlzLnBvaW50QXR0cj17fTtpZihhLm9wdGlvbnMuY29sb3JCeVBvaW50JiYoYj1hLm9wdGlvbnMuY29sb3JzfHxhLmNoYXJ0Lm9wdGlvbnMuY29sb3JzLHRoaXMuY29sb3I9dGhpcy5jb2xvcnx8YlthLmNvbG9yQ291bnRlcisrXSxhLmNvbG9yQ291bnRlcj09PWIubGVuZ3RoKSlhLmNvbG9yQ291bnRlcj0wO2EuY2hhcnQucG9pbnRDb3VudCsrO3JldHVybiB0aGlzfSxhcHBseU9wdGlvbnM6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLnNlcmllcyxkPWMub3B0aW9ucy5wb2ludFZhbEtleXx8Yy5wb2ludFZhbEtleSxhPUhhLnByb3RvdHlwZS5vcHRpb25zVG9PYmplY3QuY2FsbCh0aGlzLGEpO3codGhpcyxhKTt0aGlzLm9wdGlvbnM9dGhpcy5vcHRpb25zP3codGhpcy5vcHRpb25zLGEpOmE7aWYoZCl0aGlzLnk9dGhpc1tkXTt0aGlzLmlzTnVsbD10aGlzLnk9PT1udWxsO2lmKHR5cGVvZiB0aGlzLnghPT0ibnVtYmVyIiYmYyl0aGlzLng9Yj09PXZvaWQgMD9jLmF1dG9JbmNyZW1lbnQoKToKYjtyZXR1cm4gdGhpc30sb3B0aW9uc1RvT2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiPXt9LGM9dGhpcy5zZXJpZXMsZD1jLm9wdGlvbnMua2V5cyxlPWR8fGMucG9pbnRBcnJheU1hcHx8WyJ5Il0sZj1lLmxlbmd0aCxnPTAsaD0wO2lmKHR5cGVvZiBhPT09Im51bWJlciJ8fGE9PT1udWxsKWJbZVswXV09YTtlbHNlIGlmKE1hKGEpKXtpZighZCYmYS5sZW5ndGg+Zil7Yz10eXBlb2YgYVswXTtpZihjPT09InN0cmluZyIpYi5uYW1lPWFbMF07ZWxzZSBpZihjPT09Im51bWJlciIpYi54PWFbMF07ZysrfWZvcig7aDxmOyl7aWYoIWR8fGFbZ10hPT12b2lkIDApYltlW2hdXT1hW2ddO2crKztoKyt9fWVsc2UgaWYodHlwZW9mIGE9PT0ib2JqZWN0Iil7Yj1hO2lmKGEuZGF0YUxhYmVscyljLl9oYXNQb2ludExhYmVscz0hMDtpZihhLm1hcmtlciljLl9oYXNQb2ludE1hcmtlcnM9ITB9cmV0dXJuIGJ9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnNlcmllcy5jaGFydCxiPWEuaG92ZXJQb2ludHMsCmM7YS5wb2ludENvdW50LS07aWYoYiYmKHRoaXMuc2V0U3RhdGUoKSxBYShiLHRoaXMpLCFiLmxlbmd0aCkpYS5ob3ZlclBvaW50cz1udWxsO2lmKHRoaXM9PT1hLmhvdmVyUG9pbnQpdGhpcy5vbk1vdXNlT3V0KCk7aWYodGhpcy5ncmFwaGljfHx0aGlzLmRhdGFMYWJlbClSKHRoaXMpLHRoaXMuZGVzdHJveUVsZW1lbnRzKCk7dGhpcy5sZWdlbmRJdGVtJiZhLmxlZ2VuZC5kZXN0cm95SXRlbSh0aGlzKTtmb3IoYyBpbiB0aGlzKXRoaXNbY109bnVsbH0sZGVzdHJveUVsZW1lbnRzOmZ1bmN0aW9uKCl7Zm9yKHZhciBhPVsiZ3JhcGhpYyIsImRhdGFMYWJlbCIsImRhdGFMYWJlbFVwcGVyIiwiY29ubmVjdG9yIiwic2hhZG93R3JvdXAiXSxiLGM9NjtjLS07KWI9YVtjXSx0aGlzW2JdJiYodGhpc1tiXT10aGlzW2JdLmRlc3Ryb3koKSl9LGdldExhYmVsQ29uZmlnOmZ1bmN0aW9uKCl7cmV0dXJue3g6dGhpcy5jYXRlZ29yeSx5OnRoaXMueSxjb2xvcjp0aGlzLmNvbG9yLGtleTp0aGlzLm5hbWV8fAp0aGlzLmNhdGVnb3J5LHNlcmllczp0aGlzLnNlcmllcyxwb2ludDp0aGlzLHBlcmNlbnRhZ2U6dGhpcy5wZXJjZW50YWdlLHRvdGFsOnRoaXMudG90YWx8fHRoaXMuc3RhY2tUb3RhbH19LHRvb2x0aXBGb3JtYXR0ZXI6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5zZXJpZXMsYz1iLnRvb2x0aXBPcHRpb25zLGQ9cChjLnZhbHVlRGVjaW1hbHMsIiIpLGU9Yy52YWx1ZVByZWZpeHx8IiIsZj1jLnZhbHVlU3VmZml4fHwiIjtuKGIucG9pbnRBcnJheU1hcHx8WyJ5Il0sZnVuY3Rpb24oYil7Yj0ie3BvaW50LiIrYjtpZihlfHxmKWE9YS5yZXBsYWNlKGIrIn0iLGUrYisifSIrZik7YT1hLnJlcGxhY2UoYisifSIsYisiOiwuIitkKyJmfSIpfSk7cmV0dXJuIEthKGEse3BvaW50OnRoaXMsc2VyaWVzOnRoaXMuc2VyaWVzfSl9LGZpcmVQb2ludEV2ZW50OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLGU9dGhpcy5zZXJpZXMub3B0aW9uczsoZS5wb2ludC5ldmVudHNbYV18fGQub3B0aW9ucyYmCmQub3B0aW9ucy5ldmVudHMmJmQub3B0aW9ucy5ldmVudHNbYV0pJiZ0aGlzLmltcG9ydEV2ZW50cygpO2E9PT0iY2xpY2siJiZlLmFsbG93UG9pbnRTZWxlY3QmJihjPWZ1bmN0aW9uKGEpe2Quc2VsZWN0JiZkLnNlbGVjdChudWxsLGEuY3RybEtleXx8YS5tZXRhS2V5fHxhLnNoaWZ0S2V5KX0pO00odGhpcyxhLGIsYyl9LHZpc2libGU6ITB9O3ZhciBQPXouU2VyaWVzPWZ1bmN0aW9uKCl7fTtQLnByb3RvdHlwZT17aXNDYXJ0ZXNpYW46ITAsdHlwZToibGluZSIscG9pbnRDbGFzczpIYSxzb3J0ZWQ6ITAscmVxdWlyZVNvcnRpbmc6ITAscG9pbnRBdHRyVG9PcHRpb25zOntzdHJva2U6ImxpbmVDb2xvciIsInN0cm9rZS13aWR0aCI6ImxpbmVXaWR0aCIsZmlsbDoiZmlsbENvbG9yIixyOiJyYWRpdXMifSxkaXJlY3RUb3VjaDohMSxheGlzVHlwZXM6WyJ4QXhpcyIsInlBeGlzIl0sY29sb3JDb3VudGVyOjAscGFyYWxsZWxBcnJheXM6WyJ4IiwieSJdLGluaXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz0KdGhpcyxkLGUsZj1hLnNlcmllcyxnPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHAoYS5vcHRpb25zLmluZGV4LGEuX2kpLXAoYi5vcHRpb25zLmluZGV4LGIuX2kpfTtjLmNoYXJ0PWE7Yy5vcHRpb25zPWI9Yy5zZXRPcHRpb25zKGIpO2MubGlua2VkU2VyaWVzPVtdO2MuYmluZEF4ZXMoKTt3KGMse25hbWU6Yi5uYW1lLHN0YXRlOiIiLHBvaW50QXR0cjp7fSx2aXNpYmxlOmIudmlzaWJsZSE9PSExLHNlbGVjdGVkOmIuc2VsZWN0ZWQ9PT0hMH0pO2lmKHBhKWIuYW5pbWF0aW9uPSExO2U9Yi5ldmVudHM7Zm9yKGQgaW4gZSlEKGMsZCxlW2RdKTtpZihlJiZlLmNsaWNrfHxiLnBvaW50JiZiLnBvaW50LmV2ZW50cyYmYi5wb2ludC5ldmVudHMuY2xpY2t8fGIuYWxsb3dQb2ludFNlbGVjdClhLnJ1blRyYWNrZXJDbGljaz0hMDtjLmdldENvbG9yKCk7Yy5nZXRTeW1ib2woKTtuKGMucGFyYWxsZWxBcnJheXMsZnVuY3Rpb24oYSl7Y1thKyJEYXRhIl09W119KTtjLnNldERhdGEoYi5kYXRhLCExKTsKaWYoYy5pc0NhcnRlc2lhbilhLmhhc0NhcnRlc2lhblNlcmllcz0hMDtmLnB1c2goYyk7Yy5faT1mLmxlbmd0aC0xO3BiKGYsZyk7dGhpcy55QXhpcyYmcGIodGhpcy55QXhpcy5zZXJpZXMsZyk7bihmLGZ1bmN0aW9uKGEsYil7YS5pbmRleD1iO2EubmFtZT1hLm5hbWV8fCJTZXJpZXMgIisoYisxKX0pfSxiaW5kQXhlczpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1hLm9wdGlvbnMsYz1hLmNoYXJ0LGQ7bihhLmF4aXNUeXBlc3x8W10sZnVuY3Rpb24oZSl7bihjW2VdLGZ1bmN0aW9uKGMpe2Q9Yy5vcHRpb25zO2lmKGJbZV09PT1kLmluZGV4fHxiW2VdIT09dSYmYltlXT09PWQuaWR8fGJbZV09PT11JiZkLmluZGV4PT09MCljLnNlcmllcy5wdXNoKGEpLGFbZV09YyxjLmlzRGlydHk9ITB9KTshYVtlXSYmYS5vcHRpb25hbEF4aXMhPT1lJiZlYSgxOCwhMCl9KX0sdXBkYXRlUGFyYWxsZWxBcnJheXM6ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLnNlcmllcyxkPWFyZ3VtZW50cztuKGMucGFyYWxsZWxBcnJheXMsCnR5cGVvZiBiPT09Im51bWJlciI/ZnVuY3Rpb24oZCl7dmFyIGY9ZD09PSJ5IiYmYy50b1lEYXRhP2MudG9ZRGF0YShhKTphW2RdO2NbZCsiRGF0YSJdW2JdPWZ9OmZ1bmN0aW9uKGEpe0FycmF5LnByb3RvdHlwZVtiXS5hcHBseShjW2ErIkRhdGEiXSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkLDIpKX0pfSxhdXRvSW5jcmVtZW50OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcHRpb25zLGI9dGhpcy54SW5jcmVtZW50LGMsZD1hLnBvaW50SW50ZXJ2YWxVbml0LGI9cChiLGEucG9pbnRTdGFydCwwKTt0aGlzLnBvaW50SW50ZXJ2YWw9Yz1wKHRoaXMucG9pbnRJbnRlcnZhbCxhLnBvaW50SW50ZXJ2YWwsMSk7aWYoZD09PSJtb250aCJ8fGQ9PT0ieWVhciIpYT1uZXcgZGEoYiksYT1kPT09Im1vbnRoIj8rYVtHYl0oYVtqYl0oKStjKTorYVtIYl0oYVtrYl0oKStjKSxjPWEtYjt0aGlzLnhJbmNyZW1lbnQ9YitjO3JldHVybiBifSxzZXRPcHRpb25zOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLmNoYXJ0LGM9Yi5vcHRpb25zLnBsb3RPcHRpb25zLGI9Yi51c2VyT3B0aW9uc3x8e30sZD1iLnBsb3RPcHRpb25zfHx7fSxlPWNbdGhpcy50eXBlXTt0aGlzLnVzZXJPcHRpb25zPWE7Yz1DKGUsYy5zZXJpZXMsYSk7dGhpcy50b29sdGlwT3B0aW9ucz1DKE8udG9vbHRpcCxPLnBsb3RPcHRpb25zW3RoaXMudHlwZV0udG9vbHRpcCxiLnRvb2x0aXAsZC5zZXJpZXMmJmQuc2VyaWVzLnRvb2x0aXAsZFt0aGlzLnR5cGVdJiZkW3RoaXMudHlwZV0udG9vbHRpcCxhLnRvb2x0aXApO2UubWFya2VyPT09bnVsbCYmZGVsZXRlIGMubWFya2VyO3RoaXMuem9uZUF4aXM9Yy56b25lQXhpczthPXRoaXMuem9uZXM9KGMuem9uZXN8fFtdKS5zbGljZSgpO2lmKChjLm5lZ2F0aXZlQ29sb3J8fGMubmVnYXRpdmVGaWxsQ29sb3IpJiYhYy56b25lcylhLnB1c2goe3ZhbHVlOmNbdGhpcy56b25lQXhpcysiVGhyZXNob2xkIl18fGMudGhyZXNob2xkfHwwLGNvbG9yOmMubmVnYXRpdmVDb2xvciwKZmlsbENvbG9yOmMubmVnYXRpdmVGaWxsQ29sb3J9KTthLmxlbmd0aCYmdChhW2EubGVuZ3RoLTFdLnZhbHVlKSYmYS5wdXNoKHtjb2xvcjp0aGlzLmNvbG9yLGZpbGxDb2xvcjp0aGlzLmZpbGxDb2xvcn0pO3JldHVybiBjfSxnZXRDeWNsaWM6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMudXNlck9wdGlvbnMsZT0iXyIrYSsiSW5kZXgiLGY9YSsiQ291bnRlciI7Ynx8KHQoZFtlXSk/Yj1kW2VdOihkW2VdPWI9dGhpcy5jaGFydFtmXSVjLmxlbmd0aCx0aGlzLmNoYXJ0W2ZdKz0xKSxiPWNbYl0pO3RoaXNbYV09Yn0sZ2V0Q29sb3I6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuY29sb3JCeVBvaW50P3RoaXMub3B0aW9ucy5jb2xvcj1udWxsOnRoaXMuZ2V0Q3ljbGljKCJjb2xvciIsdGhpcy5vcHRpb25zLmNvbG9yfHxWW3RoaXMudHlwZV0uY29sb3IsdGhpcy5jaGFydC5vcHRpb25zLmNvbG9ycyl9LGdldFN5bWJvbDpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucy5tYXJrZXI7CnRoaXMuZ2V0Q3ljbGljKCJzeW1ib2wiLGEuc3ltYm9sLHRoaXMuY2hhcnQub3B0aW9ucy5zeW1ib2xzKTtpZigvXnVybC8udGVzdCh0aGlzLnN5bWJvbCkpYS5yYWRpdXM9MH0sZHJhd0xlZ2VuZFN5bWJvbDpaLmRyYXdMaW5lTWFya2VyLHNldERhdGE6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcyxmPWUucG9pbnRzLGc9ZiYmZi5sZW5ndGh8fDAsaCxpPWUub3B0aW9ucyxqPWUuY2hhcnQsaz1udWxsLGw9ZS54QXhpcyxtPWwmJiEhbC5jYXRlZ29yaWVzLG89aS50dXJib1RocmVzaG9sZCxxPXRoaXMueERhdGEscj10aGlzLnlEYXRhLEE9KGg9ZS5wb2ludEFycmF5TWFwKSYmaC5sZW5ndGgsYT1hfHxbXTtoPWEubGVuZ3RoO2I9cChiLCEwKTtpZihkIT09ITEmJmgmJmc9PT1oJiYhZS5jcm9wcGVkJiYhZS5oYXNHcm91cGVkRGF0YSYmZS52aXNpYmxlKW4oYSxmdW5jdGlvbihhLGIpe2ZbYl0udXBkYXRlJiZhIT09aS5kYXRhW2JdJiZmW2JdLnVwZGF0ZShhLCExLG51bGwsITEpfSk7CmVsc2V7ZS54SW5jcmVtZW50PW51bGw7ZS5jb2xvckNvdW50ZXI9MDtuKHRoaXMucGFyYWxsZWxBcnJheXMsZnVuY3Rpb24oYSl7ZVthKyJEYXRhIl0ubGVuZ3RoPTB9KTtpZihvJiZoPm8pe2ZvcihjPTA7az09PW51bGwmJmM8aDspaz1hW2NdLGMrKztpZih0YShrKSl7bT1wKGkucG9pbnRTdGFydCwwKTtrPXAoaS5wb2ludEludGVydmFsLDEpO2ZvcihjPTA7YzxoO2MrKylxW2NdPW0scltjXT1hW2NdLG0rPWs7ZS54SW5jcmVtZW50PW19ZWxzZSBpZihNYShrKSlpZihBKWZvcihjPTA7YzxoO2MrKylrPWFbY10scVtjXT1rWzBdLHJbY109ay5zbGljZSgxLEErMSk7ZWxzZSBmb3IoYz0wO2M8aDtjKyspaz1hW2NdLHFbY109a1swXSxyW2NdPWtbMV07ZWxzZSBlYSgxMil9ZWxzZSBmb3IoYz0wO2M8aDtjKyspaWYoYVtjXSE9PXUmJihrPXtzZXJpZXM6ZX0sZS5wb2ludENsYXNzLnByb3RvdHlwZS5hcHBseU9wdGlvbnMuYXBwbHkoayxbYVtjXV0pLGUudXBkYXRlUGFyYWxsZWxBcnJheXMoaywKYyksbSYmdChrLm5hbWUpKSlsLm5hbWVzW2sueF09ay5uYW1lO0RhKHJbMF0pJiZlYSgxNCwhMCk7ZS5kYXRhPVtdO2Uub3B0aW9ucy5kYXRhPWUudXNlck9wdGlvbnMuZGF0YT1hO2ZvcihjPWc7Yy0tOylmW2NdJiZmW2NdLmRlc3Ryb3kmJmZbY10uZGVzdHJveSgpO2lmKGwpbC5taW5SYW5nZT1sLnVzZXJNaW5SYW5nZTtlLmlzRGlydHk9ZS5pc0RpcnR5RGF0YT1qLmlzRGlydHlCb3g9ITA7Yz0hMX1pLmxlZ2VuZFR5cGU9PT0icG9pbnQiJiYodGhpcy5wcm9jZXNzRGF0YSgpLHRoaXMuZ2VuZXJhdGVQb2ludHMoKSk7YiYmai5yZWRyYXcoYyl9LHByb2Nlc3NEYXRhOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMueERhdGEsYz10aGlzLnlEYXRhLGQ9Yi5sZW5ndGgsZTtlPTA7dmFyIGYsZyxoPXRoaXMueEF4aXMsaSxqPXRoaXMub3B0aW9ucztpPWouY3JvcFRocmVzaG9sZDt2YXIgaz10aGlzLmdldEV4dHJlbWVzRnJvbUFsbHx8ai5nZXRFeHRyZW1lc0Zyb21BbGwsbD10aGlzLmlzQ2FydGVzaWFuLApqPWgmJmgudmFsMmxpbixtPWgmJmguaXNMb2csbyxxO2lmKGwmJiF0aGlzLmlzRGlydHkmJiFoLmlzRGlydHkmJiF0aGlzLnlBeGlzLmlzRGlydHkmJiFhKXJldHVybiExO2lmKGgpYT1oLmdldEV4dHJlbWVzKCksbz1hLm1pbixxPWEubWF4O2lmKGwmJnRoaXMuc29ydGVkJiYhayYmKCFpfHxkPml8fHRoaXMuZm9yY2VDcm9wKSlpZihiW2QtMV08b3x8YlswXT5xKWI9W10sYz1bXTtlbHNlIGlmKGJbMF08b3x8YltkLTFdPnEpZT10aGlzLmNyb3BEYXRhKHRoaXMueERhdGEsdGhpcy55RGF0YSxvLHEpLGI9ZS54RGF0YSxjPWUueURhdGEsZT1lLnN0YXJ0LGY9ITA7Zm9yKGk9Yi5sZW5ndGh8fDE7LS1pOylkPW0/aihiW2ldKS1qKGJbaS0xXSk6YltpXS1iW2ktMV0sZD4wJiYoZz09PXV8fGQ8Zyk/Zz1kOmQ8MCYmdGhpcy5yZXF1aXJlU29ydGluZyYmZWEoMTUpO3RoaXMuY3JvcHBlZD1mO3RoaXMuY3JvcFN0YXJ0PWU7dGhpcy5wcm9jZXNzZWRYRGF0YT1iO3RoaXMucHJvY2Vzc2VkWURhdGE9CmM7dGhpcy5jbG9zZXN0UG9pbnRSYW5nZT1nfSxjcm9wRGF0YTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLmxlbmd0aCxmPTAsZz1lLGg9cCh0aGlzLmNyb3BTaG91bGRlciwxKSxpO2ZvcihpPTA7aTxlO2krKylpZihhW2ldPj1jKXtmPXMoMCxpLWgpO2JyZWFrfWZvcihjPWk7YzxlO2MrKylpZihhW2NdPmQpe2c9YytoO2JyZWFrfXJldHVybnt4RGF0YTphLnNsaWNlKGYsZykseURhdGE6Yi5zbGljZShmLGcpLHN0YXJ0OmYsZW5kOmd9fSxnZW5lcmF0ZVBvaW50czpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucy5kYXRhLGI9dGhpcy5kYXRhLGMsZD10aGlzLnByb2Nlc3NlZFhEYXRhLGU9dGhpcy5wcm9jZXNzZWRZRGF0YSxmPXRoaXMucG9pbnRDbGFzcyxnPWQubGVuZ3RoLGg9dGhpcy5jcm9wU3RhcnR8fDAsaSxqPXRoaXMuaGFzR3JvdXBlZERhdGEsayxsPVtdLG07aWYoIWImJiFqKWI9W10sYi5sZW5ndGg9YS5sZW5ndGgsYj10aGlzLmRhdGE9Yjtmb3IobT0wO208ZzttKyspaT0KaCttLGo/bFttXT0obmV3IGYpLmluaXQodGhpcyxbZFttXV0uY29uY2F0KHVhKGVbbV0pKSk6KGJbaV0/az1iW2ldOmFbaV0hPT11JiYoYltpXT1rPShuZXcgZikuaW5pdCh0aGlzLGFbaV0sZFttXSkpLGxbbV09ayksbFttXS5pbmRleD1pO2lmKGImJihnIT09KGM9Yi5sZW5ndGgpfHxqKSlmb3IobT0wO208YzttKyspaWYobT09PWgmJiFqJiYobSs9ZyksYlttXSliW21dLmRlc3Ryb3lFbGVtZW50cygpLGJbbV0ucGxvdFg9dTt0aGlzLmRhdGE9Yjt0aGlzLnBvaW50cz1sfSxnZXRFeHRyZW1lczpmdW5jdGlvbihhKXt2YXIgYj10aGlzLnlBeGlzLGM9dGhpcy5wcm9jZXNzZWRYRGF0YSxkLGU9W10sZj0wO2Q9dGhpcy54QXhpcy5nZXRFeHRyZW1lcygpO3ZhciBnPWQubWluLGg9ZC5tYXgsaSxqLGssbCxhPWF8fHRoaXMuc3RhY2tlZFlEYXRhfHx0aGlzLnByb2Nlc3NlZFlEYXRhO2Q9YS5sZW5ndGg7Zm9yKGw9MDtsPGQ7bCsrKWlmKGo9Y1tsXSxrPWFbbF0saT1rIT09bnVsbCYmayE9PQp1JiYoIWIuaXNMb2d8fGsubGVuZ3RofHxrPjApLGo9dGhpcy5nZXRFeHRyZW1lc0Zyb21BbGx8fHRoaXMub3B0aW9ucy5nZXRFeHRyZW1lc0Zyb21BbGx8fHRoaXMuY3JvcHBlZHx8KGNbbCsxXXx8aik+PWcmJihjW2wtMV18fGopPD1oLGkmJmopaWYoaT1rLmxlbmd0aClmb3IoO2ktLTspa1tpXSE9PW51bGwmJihlW2YrK109a1tpXSk7ZWxzZSBlW2YrK109azt0aGlzLmRhdGFNaW49T2EoZSk7dGhpcy5kYXRhTWF4PUVhKGUpfSx0cmFuc2xhdGU6ZnVuY3Rpb24oKXt0aGlzLnByb2Nlc3NlZFhEYXRhfHx0aGlzLnByb2Nlc3NEYXRhKCk7dGhpcy5nZW5lcmF0ZVBvaW50cygpO2Zvcih2YXIgYT10aGlzLm9wdGlvbnMsYj1hLnN0YWNraW5nLGM9dGhpcy54QXhpcyxkPWMuY2F0ZWdvcmllcyxlPXRoaXMueUF4aXMsZj10aGlzLnBvaW50cyxnPWYubGVuZ3RoLGg9ISF0aGlzLm1vZGlmeVZhbHVlLGk9YS5wb2ludFBsYWNlbWVudCxqPWk9PT0iYmV0d2VlbiJ8fHRhKGkpLGs9YS50aHJlc2hvbGQsCmw9YS5zdGFydEZyb21UaHJlc2hvbGQ/azowLG0sbyxxLHIsQT1OdW1iZXIuTUFYX1ZBTFVFLGE9MDthPGc7YSsrKXt2YXIgbj1mW2FdLHY9bi54LHg9bi55O289bi5sb3c7dmFyIE49YiYmZS5zdGFja3NbKHRoaXMubmVnU3RhY2tzJiZ4PChsPzA6ayk/Ii0iOiIiKSt0aGlzLnN0YWNrS2V5XTtpZihlLmlzTG9nJiZ4IT09bnVsbCYmeDw9MCluLnk9eD1udWxsLGVhKDEwKTtuLnBsb3RYPW09RShzKC0xRTUsYy50cmFuc2xhdGUodiwwLDAsMCwxLGksdGhpcy50eXBlPT09ImZsYWdzIikpLDFFNSk7aWYoYiYmdGhpcy52aXNpYmxlJiYhbi5pc051bGwmJk4mJk5bdl0pcj10aGlzLmdldFN0YWNrSW5kaWNhdG9yKHIsdix0aGlzLmluZGV4KSxOPU5bdl0seD1OLnBvaW50c1tyLmtleV0sbz14WzBdLHg9eFsxXSxvPT09bCYmKG89cChrLGUubWluKSksZS5pc0xvZyYmbzw9MCYmKG89bnVsbCksbi50b3RhbD1uLnN0YWNrVG90YWw9Ti50b3RhbCxuLnBlcmNlbnRhZ2U9Ti50b3RhbCYmbi55LwpOLnRvdGFsKjEwMCxuLnN0YWNrWT14LE4uc2V0T2Zmc2V0KHRoaXMucG9pbnRYT2Zmc2V0fHwwLHRoaXMuYmFyV3x8MCk7bi55Qm90dG9tPXQobyk/ZS50cmFuc2xhdGUobywwLDEsMCwxKTpudWxsO2gmJih4PXRoaXMubW9kaWZ5VmFsdWUoeCxuKSk7bi5wbG90WT1vPXR5cGVvZiB4PT09Im51bWJlciImJnghPT1JbmZpbml0eT9FKHMoLTFFNSxlLnRyYW5zbGF0ZSh4LDAsMSwwLDEpKSwxRTUpOnU7bi5pc0luc2lkZT1vIT09dSYmbz49MCYmbzw9ZS5sZW4mJm0+PTAmJm08PWMubGVuO24uY2xpZW50WD1qP2MudHJhbnNsYXRlKHYsMCwwLDAsMSk6bTtuLm5lZ2F0aXZlPW4ueTwoa3x8MCk7bi5jYXRlZ29yeT1kJiZkW24ueF0hPT11P2Rbbi54XTpuLng7YSYmKEE9RShBLFEobS1xKSkpO3E9bX10aGlzLmNsb3Nlc3RQb2ludFJhbmdlUHg9QX0sZ2V0VmFsaWRQb2ludHM6ZnVuY3Rpb24oYSl7cmV0dXJuIFNhKGF8fHRoaXMucG9pbnRzLGZ1bmN0aW9uKGEpe3JldHVybiFhLmlzTnVsbH0pfSwKc2V0Q2xpcDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNoYXJ0LGM9dGhpcy5vcHRpb25zLGQ9Yi5yZW5kZXJlcixlPWIuaW52ZXJ0ZWQsZj10aGlzLmNsaXBCb3gsZz1mfHxiLmNsaXBCb3gsaD10aGlzLnNoYXJlZENsaXBLZXl8fFsiX3NoYXJlZENsaXAiLGEmJmEuZHVyYXRpb24sYSYmYS5lYXNpbmcsZy5oZWlnaHQsYy54QXhpcyxjLnlBeGlzXS5qb2luKCIsIiksaT1iW2hdLGo9YltoKyJtIl07aWYoIWkpe2lmKGEpZy53aWR0aD0wLGJbaCsibSJdPWo9ZC5jbGlwUmVjdCgtOTksZT8tYi5wbG90TGVmdDotYi5wbG90VG9wLDk5LGU/Yi5jaGFydFdpZHRoOmIuY2hhcnRIZWlnaHQpO2JbaF09aT1kLmNsaXBSZWN0KGcpfWEmJihpLmNvdW50Kz0xKTtpZihjLmNsaXAhPT0hMSl0aGlzLmdyb3VwLmNsaXAoYXx8Zj9pOmIuY2xpcFJlY3QpLHRoaXMubWFya2VyR3JvdXAuY2xpcChqKSx0aGlzLnNoYXJlZENsaXBLZXk9aDthfHwoaS5jb3VudC09MSxpLmNvdW50PD0wJiZoJiZiW2hdJiYoZnx8CihiW2hdPWJbaF0uZGVzdHJveSgpKSxiW2grIm0iXSYmKGJbaCsibSJdPWJbaCsibSJdLmRlc3Ryb3koKSkpKX0sYW5pbWF0ZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNoYXJ0LGM9dGhpcy5vcHRpb25zLmFuaW1hdGlvbixkO2lmKGMmJiFmYShjKSljPVZbdGhpcy50eXBlXS5hbmltYXRpb247YT90aGlzLnNldENsaXAoYyk6KGQ9dGhpcy5zaGFyZWRDbGlwS2V5LChhPWJbZF0pJiZhLmFuaW1hdGUoe3dpZHRoOmIucGxvdFNpemVYfSxjKSxiW2QrIm0iXSYmYltkKyJtIl0uYW5pbWF0ZSh7d2lkdGg6Yi5wbG90U2l6ZVgrOTl9LGMpLHRoaXMuYW5pbWF0ZT1udWxsKX0sYWZ0ZXJBbmltYXRlOmZ1bmN0aW9uKCl7dGhpcy5zZXRDbGlwKCk7TSh0aGlzLCJhZnRlckFuaW1hdGUiKX0sZHJhd1BvaW50czpmdW5jdGlvbigpe3ZhciBhLGI9dGhpcy5wb2ludHMsYz10aGlzLmNoYXJ0LGQsZSxmLGcsaCxpLGosayxsPXRoaXMub3B0aW9ucy5tYXJrZXIsbT10aGlzLnBvaW50QXR0clsiIl0sbywKcSxyLG49dGhpcy5tYXJrZXJHcm91cCxzPXAobC5lbmFibGVkLHRoaXMueEF4aXMuaXNSYWRpYWwsdGhpcy5jbG9zZXN0UG9pbnRSYW5nZVB4PjIqbC5yYWRpdXMpO2lmKGwuZW5hYmxlZCE9PSExfHx0aGlzLl9oYXNQb2ludE1hcmtlcnMpZm9yKGY9Yi5sZW5ndGg7Zi0tOylpZihnPWJbZl0sZD1VKGcucGxvdFgpLGU9Zy5wbG90WSxrPWcuZ3JhcGhpYyxvPWcubWFya2VyfHx7fSxxPSEhZy5tYXJrZXIsYT1zJiZvLmVuYWJsZWQ9PT11fHxvLmVuYWJsZWQscj1nLmlzSW5zaWRlLGEmJmUhPT11JiYhaXNOYU4oZSkmJmcueSE9PW51bGwpaWYoYT1nLnBvaW50QXR0cltnLnNlbGVjdGVkPyJzZWxlY3QiOiIiXXx8bSxoPWEucixpPXAoby5zeW1ib2wsdGhpcy5zeW1ib2wpLGo9aS5pbmRleE9mKCJ1cmwiKT09PTAsaylrW3I/InNob3ciOiJoaWRlIl0oITApLmF0dHIoYSkuYW5pbWF0ZSh3KHt4OmQtaCx5OmUtaH0say5zeW1ib2xOYW1lP3t3aWR0aDoyKmgsaGVpZ2h0OjIqaH06e30pKTtlbHNle2lmKHImJgooaD4wfHxqKSlnLmdyYXBoaWM9Yy5yZW5kZXJlci5zeW1ib2woaSxkLWgsZS1oLDIqaCwyKmgscT9vOmwpLmF0dHIoYSkuYWRkKG4pfWVsc2UgaWYoaylnLmdyYXBoaWM9ay5kZXN0cm95KCl9LGNvbnZlcnRBdHRyaWJzOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMucG9pbnRBdHRyVG9PcHRpb25zLGYsZyxoPXt9LGE9YXx8e30sYj1ifHx7fSxjPWN8fHt9LGQ9ZHx8e307Zm9yKGYgaW4gZSlnPWVbZl0saFtmXT1wKGFbZ10sYltmXSxjW2ZdLGRbZl0pO3JldHVybiBofSxnZXRBdHRyaWJzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPWEub3B0aW9ucyxjPVZbYS50eXBlXS5tYXJrZXI/Yi5tYXJrZXI6YixkPWMuc3RhdGVzLGU9ZC5ob3ZlcixmLGc9YS5jb2xvcixoPWEub3B0aW9ucy5uZWdhdGl2ZUNvbG9yO2Y9e3N0cm9rZTpnLGZpbGw6Z307dmFyIGk9YS5wb2ludHN8fFtdLGosayxsPVtdLG09YS5wb2ludEF0dHJUb09wdGlvbnM7aj1hLmhhc1BvaW50U3BlY2lmaWNPcHRpb25zOwp2YXIgbz1jLmxpbmVDb2xvcixxPWMuZmlsbENvbG9yO2s9Yi50dXJib1RocmVzaG9sZDt2YXIgcj1hLnpvbmVzLEE9YS56b25lQXhpc3x8InkiLHM7Yi5tYXJrZXI/KGUucmFkaXVzPWUucmFkaXVzfHxjLnJhZGl1cytlLnJhZGl1c1BsdXMsZS5saW5lV2lkdGg9ZS5saW5lV2lkdGh8fGMubGluZVdpZHRoK2UubGluZVdpZHRoUGx1cyk6KGUuY29sb3I9ZS5jb2xvcnx8dmEoZS5jb2xvcnx8ZykuYnJpZ2h0ZW4oZS5icmlnaHRuZXNzKS5nZXQoKSxlLm5lZ2F0aXZlQ29sb3I9ZS5uZWdhdGl2ZUNvbG9yfHx2YShlLm5lZ2F0aXZlQ29sb3J8fGgpLmJyaWdodGVuKGUuYnJpZ2h0bmVzcykuZ2V0KCkpO2xbIiJdPWEuY29udmVydEF0dHJpYnMoYyxmKTtuKFsiaG92ZXIiLCJzZWxlY3QiXSxmdW5jdGlvbihiKXtsW2JdPWEuY29udmVydEF0dHJpYnMoZFtiXSxsWyIiXSl9KTthLnBvaW50QXR0cj1sO2c9aS5sZW5ndGg7aWYoIWt8fGc8a3x8ailmb3IoO2ctLTspe2s9aVtnXTtpZigoYz1rLm9wdGlvbnMmJgprLm9wdGlvbnMubWFya2VyfHxrLm9wdGlvbnMpJiZjLmVuYWJsZWQ9PT0hMSljLnJhZGl1cz0wO2lmKHIubGVuZ3RoKXtqPTA7Zm9yKGY9cltqXTtrW0FdPj1mLnZhbHVlOylmPXJbKytqXTtrLmNvbG9yPWsuZmlsbENvbG9yPXAoZi5jb2xvcixhLmNvbG9yKX1qPWIuY29sb3JCeVBvaW50fHxrLmNvbG9yO2lmKGsub3B0aW9ucylmb3IocyBpbiBtKXQoY1ttW3NdXSkmJihqPSEwKTtpZihqKXtjPWN8fHt9O2o9W107ZD1jLnN0YXRlc3x8e307Zj1kLmhvdmVyPWQuaG92ZXJ8fHt9O2lmKCFiLm1hcmtlcnx8ay5uZWdhdGl2ZSYmIWYuZmlsbENvbG9yJiYhZS5maWxsQ29sb3IpZlthLnBvaW50QXR0clRvT3B0aW9ucy5maWxsXT1mLmNvbG9yfHwhay5vcHRpb25zLmNvbG9yJiZlW2submVnYXRpdmUmJmg/Im5lZ2F0aXZlQ29sb3IiOiJjb2xvciJdfHx2YShrLmNvbG9yKS5icmlnaHRlbihmLmJyaWdodG5lc3N8fGUuYnJpZ2h0bmVzcykuZ2V0KCk7Zj17Y29sb3I6ay5jb2xvcn07aWYoIXEpZi5maWxsQ29sb3I9CmsuY29sb3I7aWYoIW8pZi5saW5lQ29sb3I9ay5jb2xvcjtjLmhhc093blByb3BlcnR5KCJjb2xvciIpJiYhYy5jb2xvciYmZGVsZXRlIGMuY29sb3I7alsiIl09YS5jb252ZXJ0QXR0cmlicyh3KGYsYyksbFsiIl0pO2ouaG92ZXI9YS5jb252ZXJ0QXR0cmlicyhkLmhvdmVyLGwuaG92ZXIsalsiIl0pO2ouc2VsZWN0PWEuY29udmVydEF0dHJpYnMoZC5zZWxlY3QsbC5zZWxlY3QsalsiIl0pfWVsc2Ugaj1sO2sucG9pbnRBdHRyPWp9fSxkZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPWEuY2hhcnQsYz0vQXBwbGVXZWJLaXRcLzUzMy8udGVzdChMYSksZCxlPWEuZGF0YXx8W10sZixnLGg7TShhLCJkZXN0cm95Iik7UihhKTtuKGEuYXhpc1R5cGVzfHxbXSxmdW5jdGlvbihiKXtpZihoPWFbYl0pQWEoaC5zZXJpZXMsYSksaC5pc0RpcnR5PWguZm9yY2VSZWRyYXc9ITB9KTthLmxlZ2VuZEl0ZW0mJmEuY2hhcnQubGVnZW5kLmRlc3Ryb3lJdGVtKGEpO2ZvcihkPWUubGVuZ3RoO2QtLTspKGY9CmVbZF0pJiZmLmRlc3Ryb3kmJmYuZGVzdHJveSgpO2EucG9pbnRzPW51bGw7Y2xlYXJUaW1lb3V0KGEuYW5pbWF0aW9uVGltZW91dCk7Zm9yKGcgaW4gYSlhW2ddaW5zdGFuY2VvZiBZJiYhYVtnXS5zdXJ2aXZlJiYoZD1jJiZnPT09Imdyb3VwIj8iaGlkZSI6ImRlc3Ryb3kiLGFbZ11bZF0oKSk7aWYoYi5ob3ZlclNlcmllcz09PWEpYi5ob3ZlclNlcmllcz1udWxsO0FhKGIuc2VyaWVzLGEpO2ZvcihnIGluIGEpZGVsZXRlIGFbZ119LGdldEdyYXBoUGF0aDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcyxlPWQub3B0aW9ucyxmPWUuc3RlcCxnLGg9W10saSxhPWF8fGQucG9pbnRzOyhnPWEucmV2ZXJzZWQpJiZhLnJldmVyc2UoKTsoZj17cmlnaHQ6MSxjZW50ZXI6Mn1bZl18fGYmJjMpJiZnJiYoZj00LWYpO2UuY29ubmVjdE51bGxzJiYhYiYmIWMmJihhPXRoaXMuZ2V0VmFsaWRQb2ludHMoYSkpO24oYSxmdW5jdGlvbihnLGspe3ZhciBsPWcucGxvdFgsbT1nLnBsb3RZLG89YVtrLQoxXTtpZigoZy5sZWZ0Q2xpZmZ8fG8mJm8ucmlnaHRDbGlmZikmJiFjKWk9ITA7Zy5pc051bGwmJiF0KGIpJiZrPjA/aT0hZS5jb25uZWN0TnVsbHM6Zy5pc051bGwmJiFiP2k9ITA6KGs9PT0wfHxpP289WyJNIixnLnBsb3RYLGcucGxvdFldOmQuZ2V0UG9pbnRTcGxpbmU/bz1kLmdldFBvaW50U3BsaW5lKGEsZyxrKTpmPyhvPWY9PT0xP1siTCIsby5wbG90WCxtXTpmPT09Mj9bIkwiLChvLnBsb3RYK2wpLzIsby5wbG90WSwiTCIsKG8ucGxvdFgrbCkvMixtXTpbIkwiLGwsby5wbG90WV0sby5wdXNoKCJMIixsLG0pKTpvPVsiTCIsbCxtXSxoLnB1c2guYXBwbHkoaCxvKSxpPSExKX0pO3JldHVybiBkLmdyYXBoUGF0aD1ofSxkcmF3R3JhcGg6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9dGhpcy5vcHRpb25zLGM9W1siZ3JhcGgiLGIubGluZUNvbG9yfHx0aGlzLmNvbG9yLGIuZGFzaFN0eWxlXV0sZD1iLmxpbmVXaWR0aCxlPWIubGluZWNhcCE9PSJzcXVhcmUiLGY9KHRoaXMuZ2FwcGVkUGF0aHx8CnRoaXMuZ2V0R3JhcGhQYXRoKS5jYWxsKHRoaXMpLGc9dGhpcy5maWxsR3JhcGgmJnRoaXMuY29sb3J8fCJub25lIjtuKHRoaXMuem9uZXMsZnVuY3Rpb24oZCxlKXtjLnB1c2goWyJ6b25lR3JhcGgiK2UsZC5jb2xvcnx8YS5jb2xvcixkLmRhc2hTdHlsZXx8Yi5kYXNoU3R5bGVdKX0pO24oYyxmdW5jdGlvbihjLGkpe3ZhciBqPWNbMF0saz1hW2pdO2lmKGspay5hbmltYXRlKHtkOmZ9KTtlbHNlIGlmKChkfHxnKSYmZi5sZW5ndGgpaz17c3Ryb2tlOmNbMV0sInN0cm9rZS13aWR0aCI6ZCxmaWxsOmcsekluZGV4OjF9LGNbMl0/ay5kYXNoc3R5bGU9Y1syXTplJiYoa1sic3Ryb2tlLWxpbmVjYXAiXT1rWyJzdHJva2UtbGluZWpvaW4iXT0icm91bmQiKSxhW2pdPWEuY2hhcnQucmVuZGVyZXIucGF0aChmKS5hdHRyKGspLmFkZChhLmdyb3VwKS5zaGFkb3coaTwyJiZiLnNoYWRvdyl9KX0sYXBwbHlab25lczpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj10aGlzLmNoYXJ0LGM9Yi5yZW5kZXJlciwKZD10aGlzLnpvbmVzLGUsZixnPXRoaXMuY2xpcHN8fFtdLGgsaT10aGlzLmdyYXBoLGo9dGhpcy5hcmVhLGs9cyhiLmNoYXJ0V2lkdGgsYi5jaGFydEhlaWdodCksbD10aGlzWyh0aGlzLnpvbmVBeGlzfHwieSIpKyJBeGlzIl0sbSxvPWwucmV2ZXJzZWQscT1iLmludmVydGVkLHI9bC5ob3JpeixBLFQsdix4PSExO2lmKGQubGVuZ3RoJiYoaXx8aikmJmwubWluIT09dSlpJiZpLmhpZGUoKSxqJiZqLmhpZGUoKSxtPWwuZ2V0RXh0cmVtZXMoKSxuKGQsZnVuY3Rpb24oZCxuKXtlPW8/cj9iLnBsb3RXaWR0aDowOnI/MDpsLnRvUGl4ZWxzKG0ubWluKTtlPUUocyhwKGYsZSksMCksayk7Zj1FKHMoeShsLnRvUGl4ZWxzKHAoZC52YWx1ZSxtLm1heCksITApKSwwKSxrKTt4JiYoZT1mPWwudG9QaXhlbHMobS5tYXgpKTtBPU1hdGguYWJzKGUtZik7VD1FKGUsZik7dj1zKGUsZik7aWYobC5pc1hBeGlzKXtpZihoPXt4OnE/djpULHk6MCx3aWR0aDpBLGhlaWdodDprfSwhciloLng9Yi5wbG90SGVpZ2h0LQpoLnh9ZWxzZSBpZihoPXt4OjAseTpxP3Y6VCx3aWR0aDprLGhlaWdodDpBfSxyKWgueT1iLnBsb3RXaWR0aC1oLnk7Yi5pbnZlcnRlZCYmYy5pc1ZNTCYmKGg9bC5pc1hBeGlzP3t4OjAseTpvP1Q6dixoZWlnaHQ6aC53aWR0aCx3aWR0aDpiLmNoYXJ0V2lkdGh9Ont4OmgueS1iLnBsb3RMZWZ0LWIuc3BhY2luZ0JveC54LHk6MCx3aWR0aDpoLmhlaWdodCxoZWlnaHQ6Yi5jaGFydEhlaWdodH0pO2dbbl0/Z1tuXS5hbmltYXRlKGgpOihnW25dPWMuY2xpcFJlY3QoaCksaSYmYVsiem9uZUdyYXBoIituXS5jbGlwKGdbbl0pLGomJmFbInpvbmVBcmVhIituXS5jbGlwKGdbbl0pKTt4PWQudmFsdWU+bS5tYXh9KSx0aGlzLmNsaXBzPWd9LGludmVydEdyb3VwczpmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXt2YXIgYT17d2lkdGg6Yi55QXhpcy5sZW4saGVpZ2h0OmIueEF4aXMubGVufTtuKFsiZ3JvdXAiLCJtYXJrZXJHcm91cCJdLGZ1bmN0aW9uKGMpe2JbY10mJmJbY10uYXR0cihhKS5pbnZlcnQoKX0pfQp2YXIgYj10aGlzLGM9Yi5jaGFydDtpZihiLnhBeGlzKUQoYywicmVzaXplIixhKSxEKGIsImRlc3Ryb3kiLGZ1bmN0aW9uKCl7UihjLCJyZXNpemUiLGEpfSksYSgpLGIuaW52ZXJ0R3JvdXBzPWF9LHBsb3RHcm91cDpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPXRoaXNbYV0sZz0hZjtnJiYodGhpc1thXT1mPXRoaXMuY2hhcnQucmVuZGVyZXIuZyhiKS5hdHRyKHt6SW5kZXg6ZHx8MC4xfSkuYWRkKGUpLGYuYWRkQ2xhc3MoImhpZ2hjaGFydHMtc2VyaWVzLSIrdGhpcy5pbmRleCkpO2YuYXR0cih7dmlzaWJpbGl0eTpjfSlbZz8iYXR0ciI6ImFuaW1hdGUiXSh0aGlzLmdldFBsb3RCb3goKSk7cmV0dXJuIGZ9LGdldFBsb3RCb3g6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNoYXJ0LGI9dGhpcy54QXhpcyxjPXRoaXMueUF4aXM7aWYoYS5pbnZlcnRlZCliPWMsYz10aGlzLnhBeGlzO3JldHVybnt0cmFuc2xhdGVYOmI/Yi5sZWZ0OmEucGxvdExlZnQsdHJhbnNsYXRlWTpjP2MudG9wOmEucGxvdFRvcCwKc2NhbGVYOjEsc2NhbGVZOjF9fSxyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS5jaGFydCxjLGQ9YS5vcHRpb25zLGU9KGM9ZC5hbmltYXRpb24pJiYhIWEuYW5pbWF0ZSYmYi5yZW5kZXJlci5pc1NWRyYmcChjLmR1cmF0aW9uLDUwMCl8fDAsZj1hLnZpc2libGU/ImluaGVyaXQiOiJoaWRkZW4iLGc9ZC56SW5kZXgsaD1hLmhhc1JlbmRlcmVkLGk9Yi5zZXJpZXNHcm91cDtjPWEucGxvdEdyb3VwKCJncm91cCIsInNlcmllcyIsZixnLGkpO2EubWFya2VyR3JvdXA9YS5wbG90R3JvdXAoIm1hcmtlckdyb3VwIiwibWFya2VycyIsZixnLGkpO2UmJmEuYW5pbWF0ZSghMCk7YS5nZXRBdHRyaWJzKCk7Yy5pbnZlcnRlZD1hLmlzQ2FydGVzaWFuP2IuaW52ZXJ0ZWQ6ITE7YS5kcmF3R3JhcGgmJihhLmRyYXdHcmFwaCgpLGEuYXBwbHlab25lcygpKTtuKGEucG9pbnRzLGZ1bmN0aW9uKGEpe2EucmVkcmF3JiZhLnJlZHJhdygpfSk7YS5kcmF3RGF0YUxhYmVscyYmYS5kcmF3RGF0YUxhYmVscygpOwphLnZpc2libGUmJmEuZHJhd1BvaW50cygpO2EuZHJhd1RyYWNrZXImJmEub3B0aW9ucy5lbmFibGVNb3VzZVRyYWNraW5nIT09ITEmJmEuZHJhd1RyYWNrZXIoKTtiLmludmVydGVkJiZhLmludmVydEdyb3VwcygpO2QuY2xpcCE9PSExJiYhYS5zaGFyZWRDbGlwS2V5JiYhaCYmYy5jbGlwKGIuY2xpcFJlY3QpO2UmJmEuYW5pbWF0ZSgpO2lmKCFoKWEuYW5pbWF0aW9uVGltZW91dD1iYihmdW5jdGlvbigpe2EuYWZ0ZXJBbmltYXRlKCl9LGUpO2EuaXNEaXJ0eT1hLmlzRGlydHlEYXRhPSExO2EuaGFzUmVuZGVyZWQ9ITB9LHJlZHJhdzpmdW5jdGlvbigpe3ZhciBhPXRoaXMuY2hhcnQsYj10aGlzLmlzRGlydHlEYXRhLGM9dGhpcy5pc0RpcnR5LGQ9dGhpcy5ncm91cCxlPXRoaXMueEF4aXMsZj10aGlzLnlBeGlzO2QmJihhLmludmVydGVkJiZkLmF0dHIoe3dpZHRoOmEucGxvdFdpZHRoLGhlaWdodDphLnBsb3RIZWlnaHR9KSxkLmFuaW1hdGUoe3RyYW5zbGF0ZVg6cChlJiZlLmxlZnQsCmEucGxvdExlZnQpLHRyYW5zbGF0ZVk6cChmJiZmLnRvcCxhLnBsb3RUb3ApfSkpO3RoaXMudHJhbnNsYXRlKCk7dGhpcy5yZW5kZXIoKTtiJiZNKHRoaXMsInVwZGF0ZWREYXRhIik7KGN8fGIpJiZkZWxldGUgdGhpcy5rZFRyZWV9LGtkRGltZW5zaW9uczoxLGtkQXhpc0FycmF5OlsiY2xpZW50WCIsInBsb3RZIl0sc2VhcmNoUG9pbnQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLnhBeGlzLGQ9dGhpcy55QXhpcyxlPXRoaXMuY2hhcnQuaW52ZXJ0ZWQ7cmV0dXJuIHRoaXMuc2VhcmNoS0RUcmVlKHtjbGllbnRYOmU/Yy5sZW4tYS5jaGFydFkrYy5wb3M6YS5jaGFydFgtYy5wb3MscGxvdFk6ZT9kLmxlbi1hLmNoYXJ0WCtkLnBvczphLmNoYXJ0WS1kLnBvc30sYil9LGJ1aWxkS0RUcmVlOmZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShjLGUsZil7dmFyIGcsaDtpZihoPWMmJmMubGVuZ3RoKXJldHVybiBnPWIua2RBeGlzQXJyYXlbZSVmXSxjLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYVtnXS0KYltnXX0pLGg9TWF0aC5mbG9vcihoLzIpLHtwb2ludDpjW2hdLGxlZnQ6YShjLnNsaWNlKDAsaCksZSsxLGYpLHJpZ2h0OmEoYy5zbGljZShoKzEpLGUrMSxmKX19dmFyIGI9dGhpcyxjPWIua2REaW1lbnNpb25zO2RlbGV0ZSBiLmtkVHJlZTtiYihmdW5jdGlvbigpe2Iua2RUcmVlPWEoYi5nZXRWYWxpZFBvaW50cygpLGMsYyl9LGIub3B0aW9ucy5rZE5vdz8wOjEpfSxzZWFyY2hLRFRyZWU6ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYixqLGspe3ZhciBsPWIucG9pbnQsbT1kLmtkQXhpc0FycmF5W2ola10sbyxxLHI9bDtxPXQoYVtlXSkmJnQobFtlXSk/TWF0aC5wb3coYVtlXS1sW2VdLDIpOm51bGw7bz10KGFbZl0pJiZ0KGxbZl0pP01hdGgucG93KGFbZl0tbFtmXSwyKTpudWxsO289KHF8fDApKyhvfHwwKTtsLmRpc3Q9dChvKT9NYXRoLnNxcnQobyk6TnVtYmVyLk1BWF9WQUxVRTtsLmRpc3RYPXQocSk/TWF0aC5zcXJ0KHEpOk51bWJlci5NQVhfVkFMVUU7bT1hW21dLWxbbV07Cm89bTwwPyJsZWZ0IjoicmlnaHQiO3E9bTwwPyJyaWdodCI6ImxlZnQiO2Jbb10mJihvPWMoYSxiW29dLGorMSxrKSxyPW9bZ108cltnXT9vOmwpO2JbcV0mJk1hdGguc3FydChtKm0pPHJbZ10mJihhPWMoYSxiW3FdLGorMSxrKSxyPWFbZ108cltnXT9hOnIpO3JldHVybiByfXZhciBkPXRoaXMsZT10aGlzLmtkQXhpc0FycmF5WzBdLGY9dGhpcy5rZEF4aXNBcnJheVsxXSxnPWI/ImRpc3RYIjoiZGlzdCI7dGhpcy5rZFRyZWV8fHRoaXMuYnVpbGRLRFRyZWUoKTtpZih0aGlzLmtkVHJlZSlyZXR1cm4gYyhhLHRoaXMua2RUcmVlLHRoaXMua2REaW1lbnNpb25zLHRoaXMua2REaW1lbnNpb25zKX19O1ViLnByb3RvdHlwZT17ZGVzdHJveTpmdW5jdGlvbigpe1BhKHRoaXMsdGhpcy5heGlzKX0scmVuZGVyOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMub3B0aW9ucyxjPWIuZm9ybWF0LGM9Yz9LYShjLHRoaXMpOmIuZm9ybWF0dGVyLmNhbGwodGhpcyk7dGhpcy5sYWJlbD90aGlzLmxhYmVsLmF0dHIoe3RleHQ6YywKdmlzaWJpbGl0eToiaGlkZGVuIn0pOnRoaXMubGFiZWw9dGhpcy5heGlzLmNoYXJ0LnJlbmRlcmVyLnRleHQoYyxudWxsLG51bGwsYi51c2VIVE1MKS5jc3MoYi5zdHlsZSkuYXR0cih7YWxpZ246dGhpcy50ZXh0QWxpZ24scm90YXRpb246Yi5yb3RhdGlvbix2aXNpYmlsaXR5OiJoaWRkZW4ifSkuYWRkKGEpfSxzZXRPZmZzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmF4aXMsZD1jLmNoYXJ0LGU9ZC5pbnZlcnRlZCxmPWMucmV2ZXJzZWQsZj10aGlzLmlzTmVnYXRpdmUmJiFmfHwhdGhpcy5pc05lZ2F0aXZlJiZmLGc9Yy50cmFuc2xhdGUoYy51c2VQZXJjZW50YWdlPzEwMDp0aGlzLnRvdGFsLDAsMCwwLDEpLGM9Yy50cmFuc2xhdGUoMCksYz1RKGctYyksaD1kLnhBeGlzWzBdLnRyYW5zbGF0ZSh0aGlzLngpK2EsaT1kLnBsb3RIZWlnaHQsZj17eDplP2Y/ZzpnLWM6aCx5OmU/aS1oLWI6Zj9pLWctYzppLWcsd2lkdGg6ZT9jOmIsaGVpZ2h0OmU/YjpjfTtpZihlPXRoaXMubGFiZWwpZS5hbGlnbih0aGlzLmFsaWduT3B0aW9ucywKbnVsbCxmKSxmPWUuYWxpZ25BdHRyLGVbdGhpcy5vcHRpb25zLmNyb3A9PT0hMXx8ZC5pc0luc2lkZVBsb3QoZi54LGYueSk/InNob3ciOiJoaWRlIl0oITApfX07Q2EucHJvdG90eXBlLmdldFN0YWNrcz1mdW5jdGlvbigpe3ZhciBhPXRoaXM7bihhLnlBeGlzLGZ1bmN0aW9uKGEpe2lmKGEuc3RhY2tzJiZhLmhhc1Zpc2libGVTZXJpZXMpYS5vbGRTdGFja3M9YS5zdGFja3N9KTtuKGEuc2VyaWVzLGZ1bmN0aW9uKGIpe2lmKGIub3B0aW9ucy5zdGFja2luZyYmKGIudmlzaWJsZT09PSEwfHxhLm9wdGlvbnMuY2hhcnQuaWdub3JlSGlkZGVuU2VyaWVzPT09ITEpKWIuc3RhY2tLZXk9Yi50eXBlK3AoYi5vcHRpb25zLnN0YWNrLCIiKX0pfTtGLnByb3RvdHlwZS5idWlsZFN0YWNrcz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuc2VyaWVzLGIsYz1wKHRoaXMub3B0aW9ucy5yZXZlcnNlZFN0YWNrcywhMCksZD1hLmxlbmd0aCxlO2lmKCF0aGlzLmlzWEF4aXMpe3RoaXMudXNlUGVyY2VudGFnZT0KITE7Zm9yKGU9ZDtlLS07KWFbYz9lOmQtZS0xXS5zZXRTdGFja2VkUG9pbnRzKCk7Zm9yKGU9ZDtlLS07KWI9YVtjP2U6ZC1lLTFdLGIuc2V0U3RhY2tDbGlmZnMmJmIuc2V0U3RhY2tDbGlmZnMoKTtpZih0aGlzLnVzZVBlcmNlbnRhZ2UpZm9yKGU9MDtlPGQ7ZSsrKWFbZV0uc2V0UGVyY2VudFN0YWNrcygpfX07Ri5wcm90b3R5cGUucmVuZGVyU3RhY2tUb3RhbHM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNoYXJ0LGI9YS5yZW5kZXJlcixjPXRoaXMuc3RhY2tzLGQsZSxmPXRoaXMuc3RhY2tUb3RhbEdyb3VwO2lmKCFmKXRoaXMuc3RhY2tUb3RhbEdyb3VwPWY9Yi5nKCJzdGFjay1sYWJlbHMiKS5hdHRyKHt2aXNpYmlsaXR5OiJ2aXNpYmxlIix6SW5kZXg6Nn0pLmFkZCgpO2YudHJhbnNsYXRlKGEucGxvdExlZnQsYS5wbG90VG9wKTtmb3IoZCBpbiBjKWZvcihlIGluIGE9Y1tkXSxhKWFbZV0ucmVuZGVyKGYpfTtGLnByb3RvdHlwZS5yZXNldFN0YWNrcz1mdW5jdGlvbigpe3ZhciBhPQp0aGlzLnN0YWNrcyxiLGM7aWYoIXRoaXMuaXNYQXhpcylmb3IoYiBpbiBhKWZvcihjIGluIGFbYl0pYVtiXVtjXS50b3VjaGVkPHRoaXMuc3RhY2tzVG91Y2hlZD8oYVtiXVtjXS5kZXN0cm95KCksZGVsZXRlIGFbYl1bY10pOihhW2JdW2NdLnRvdGFsPW51bGwsYVtiXVtjXS5jdW09MCl9O0YucHJvdG90eXBlLmNsZWFuU3RhY2tzPWZ1bmN0aW9uKCl7dmFyIGEsYixjO2lmKCF0aGlzLmlzWEF4aXMpe2lmKHRoaXMub2xkU3RhY2tzKWE9dGhpcy5zdGFja3M9dGhpcy5vbGRTdGFja3M7Zm9yKGIgaW4gYSlmb3IoYyBpbiBhW2JdKWFbYl1bY10uY3VtPWFbYl1bY10udG90YWx9fTtQLnByb3RvdHlwZS5zZXRTdGFja2VkUG9pbnRzPWZ1bmN0aW9uKCl7aWYodGhpcy5vcHRpb25zLnN0YWNraW5nJiYhKHRoaXMudmlzaWJsZSE9PSEwJiZ0aGlzLmNoYXJ0Lm9wdGlvbnMuY2hhcnQuaWdub3JlSGlkZGVuU2VyaWVzIT09ITEpKXt2YXIgYT10aGlzLnByb2Nlc3NlZFhEYXRhLGI9dGhpcy5wcm9jZXNzZWRZRGF0YSwKYz1bXSxkPWIubGVuZ3RoLGU9dGhpcy5vcHRpb25zLGY9ZS50aHJlc2hvbGQsZz1lLnN0YXJ0RnJvbVRocmVzaG9sZD9mOjAsaD1lLnN0YWNrLGU9ZS5zdGFja2luZyxpPXRoaXMuc3RhY2tLZXksaj0iLSIraSxrPXRoaXMubmVnU3RhY2tzLGw9dGhpcy55QXhpcyxtPWwuc3RhY2tzLG89bC5vbGRTdGFja3MscSxyLG4sVCx2LHgsdDtsLnN0YWNrc1RvdWNoZWQrPTE7Zm9yKHY9MDt2PGQ7disrKXt4PWFbdl07dD1iW3ZdO3E9dGhpcy5nZXRTdGFja0luZGljYXRvcihxLHgsdGhpcy5pbmRleCk7VD1xLmtleTtuPShyPWsmJnQ8KGc/MDpmKSk/ajppO21bbl18fChtW25dPXt9KTtpZighbVtuXVt4XSlvW25dJiZvW25dW3hdPyhtW25dW3hdPW9bbl1beF0sbVtuXVt4XS50b3RhbD1udWxsKTptW25dW3hdPW5ldyBVYihsLGwub3B0aW9ucy5zdGFja0xhYmVscyxyLHgsaCk7bj1tW25dW3hdO2lmKHQhPT1udWxsKW4ucG9pbnRzW1RdPW4ucG9pbnRzW3RoaXMuaW5kZXhdPVtwKG4uY3VtLGcpXSwKbi50b3VjaGVkPWwuc3RhY2tzVG91Y2hlZCxxLmluZGV4PjAmJnRoaXMuc2luZ2xlU3RhY2tzPT09ITEmJihuLnBvaW50c1tUXVswXT1uLnBvaW50c1t0aGlzLmluZGV4KyIsIit4KyIsMCJdWzBdKTtlPT09InBlcmNlbnQiPyhyPXI/aTpqLGsmJm1bcl0mJm1bcl1beF0/KHI9bVtyXVt4XSxuLnRvdGFsPXIudG90YWw9cyhyLnRvdGFsLG4udG90YWwpK1EodCl8fDApOm4udG90YWw9bmEobi50b3RhbCsoUSh0KXx8MCkpKTpuLnRvdGFsPW5hKG4udG90YWwrKHR8fDApKTtuLmN1bT1wKG4uY3VtLGcpKyh0fHwwKTt0IT09bnVsbCYmbi5wb2ludHNbVF0ucHVzaChuLmN1bSk7Y1t2XT1uLmN1bX1pZihlPT09InBlcmNlbnQiKWwudXNlUGVyY2VudGFnZT0hMDt0aGlzLnN0YWNrZWRZRGF0YT1jO2wub2xkU3RhY2tzPXt9fX07UC5wcm90b3R5cGUuc2V0UGVyY2VudFN0YWNrcz1mdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1hLnN0YWNrS2V5LGM9YS55QXhpcy5zdGFja3MsZD1hLnByb2Nlc3NlZFhEYXRhLAplO24oW2IsIi0iK2JdLGZ1bmN0aW9uKGIpe3ZhciBmO2Zvcih2YXIgZz1kLmxlbmd0aCxoLGk7Zy0tOylpZihoPWRbZ10sZT1hLmdldFN0YWNrSW5kaWNhdG9yKGUsaCxhLmluZGV4KSxmPShpPWNbYl0mJmNbYl1baF0pJiZpLnBvaW50c1tlLmtleV0saD1mKWk9aS50b3RhbD8xMDAvaS50b3RhbDowLGhbMF09bmEoaFswXSppKSxoWzFdPW5hKGhbMV0qaSksYS5zdGFja2VkWURhdGFbZ109aFsxXX0pfTtQLnByb3RvdHlwZS5nZXRTdGFja0luZGljYXRvcj1mdW5jdGlvbihhLGIsYyl7IXQoYSl8fGEueCE9PWI/YT17eDpiLGluZGV4OjB9OmEuaW5kZXgrKzthLmtleT1bYyxiLGEuaW5kZXhdLmpvaW4oIiwiKTtyZXR1cm4gYX07dyhDYS5wcm90b3R5cGUse2FkZFNlcmllczpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZT10aGlzO2EmJihiPXAoYiwhMCksTShlLCJhZGRTZXJpZXMiLHtvcHRpb25zOmF9LGZ1bmN0aW9uKCl7ZD1lLmluaXRTZXJpZXMoYSk7ZS5pc0RpcnR5TGVnZW5kPSEwO2UubGlua1NlcmllcygpOwpiJiZlLnJlZHJhdyhjKX0pKTtyZXR1cm4gZH0sYWRkQXhpczpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iPyJ4QXhpcyI6InlBeGlzIixmPXRoaXMub3B0aW9ucztuZXcgRih0aGlzLEMoYSx7aW5kZXg6dGhpc1tlXS5sZW5ndGgsaXNYOmJ9KSk7ZltlXT11YShmW2VdfHx7fSk7ZltlXS5wdXNoKGEpO3AoYywhMCkmJnRoaXMucmVkcmF3KGQpfSxzaG93TG9hZGluZzpmdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9Yi5vcHRpb25zLGQ9Yi5sb2FkaW5nRGl2LGU9Yy5sb2FkaW5nLGY9ZnVuY3Rpb24oKXtkJiZJKGQse2xlZnQ6Yi5wbG90TGVmdCsicHgiLHRvcDpiLnBsb3RUb3ArInB4Iix3aWR0aDpiLnBsb3RXaWR0aCsicHgiLGhlaWdodDpiLnBsb3RIZWlnaHQrInB4In0pfTtpZighZCliLmxvYWRpbmdEaXY9ZD1jYShZYSx7Y2xhc3NOYW1lOiJoaWdoY2hhcnRzLWxvYWRpbmcifSx3KGUuc3R5bGUse3pJbmRleDoxMCxkaXNwbGF5OiJub25lIn0pLGIuY29udGFpbmVyKSxiLmxvYWRpbmdTcGFuPQpjYSgic3BhbiIsbnVsbCxlLmxhYmVsU3R5bGUsZCksRChiLCJyZWRyYXciLGYpO2IubG9hZGluZ1NwYW4uaW5uZXJIVE1MPWF8fGMubGFuZy5sb2FkaW5nO2lmKCFiLmxvYWRpbmdTaG93bilJKGQse29wYWNpdHk6MCxkaXNwbGF5OiIifSksZmIoZCx7b3BhY2l0eTplLnN0eWxlLm9wYWNpdHl9LHtkdXJhdGlvbjplLnNob3dEdXJhdGlvbnx8MH0pLGIubG9hZGluZ1Nob3duPSEwO2YoKX0saGlkZUxvYWRpbmc6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9wdGlvbnMsYj10aGlzLmxvYWRpbmdEaXY7YiYmZmIoYix7b3BhY2l0eTowfSx7ZHVyYXRpb246YS5sb2FkaW5nLmhpZGVEdXJhdGlvbnx8MTAwLGNvbXBsZXRlOmZ1bmN0aW9uKCl7SShiLHtkaXNwbGF5OiJub25lIn0pfX0pO3RoaXMubG9hZGluZ1Nob3duPSExfX0pO3coSGEucHJvdG90eXBlLHt1cGRhdGU6ZnVuY3Rpb24oYSxiLGMsZCl7ZnVuY3Rpb24gZSgpe2YuYXBwbHlPcHRpb25zKGEpO2lmKGYueT09PW51bGwmJmgpZi5ncmFwaGljPQpoLmRlc3Ryb3koKTtpZihmYShhKSYmIU1hKGEpKWYucmVkcmF3PWZ1bmN0aW9uKCl7aWYoaCYmaC5lbGVtZW50JiZhJiZhLm1hcmtlciYmYS5tYXJrZXIuc3ltYm9sKWYuZ3JhcGhpYz1oLmRlc3Ryb3koKTtpZihhJiZhLmRhdGFMYWJlbHMmJmYuZGF0YUxhYmVsKWYuZGF0YUxhYmVsPWYuZGF0YUxhYmVsLmRlc3Ryb3koKTtmLnJlZHJhdz1udWxsfTtpPWYuaW5kZXg7Zy51cGRhdGVQYXJhbGxlbEFycmF5cyhmLGkpO2lmKGwmJmYubmFtZSlsW2YueF09Zi5uYW1lO2suZGF0YVtpXT1mYShrLmRhdGFbaV0pP2Yub3B0aW9uczphO2cuaXNEaXJ0eT1nLmlzRGlydHlEYXRhPSEwO2lmKCFnLmZpeGVkQm94JiZnLmhhc0NhcnRlc2lhblNlcmllcylqLmlzRGlydHlCb3g9ITA7aWYoay5sZWdlbmRUeXBlPT09InBvaW50IilqLmlzRGlydHlMZWdlbmQ9ITA7YiYmai5yZWRyYXcoYyl9dmFyIGY9dGhpcyxnPWYuc2VyaWVzLGg9Zi5ncmFwaGljLGksaj1nLmNoYXJ0LGs9Zy5vcHRpb25zLGw9Zy54QXhpcyYmCmcueEF4aXMubmFtZXMsYj1wKGIsITApO2Q9PT0hMT9lKCk6Zi5maXJlUG9pbnRFdmVudCgidXBkYXRlIix7b3B0aW9uczphfSxlKX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7dGhpcy5zZXJpZXMucmVtb3ZlUG9pbnQocmEodGhpcyx0aGlzLnNlcmllcy5kYXRhKSxhLGIpfX0pO3coUC5wcm90b3R5cGUse2FkZFBvaW50OmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMsZj1lLm9wdGlvbnMsZz1lLmRhdGEsaD1lLmdyYXBoLGk9ZS5hcmVhLGo9ZS5jaGFydCxrPWUueEF4aXMmJmUueEF4aXMubmFtZXMsbD1oJiZoLnNoaWZ0fHwwLG09WyJncmFwaCIsImFyZWEiXSxoPWYuZGF0YSxvLHE9ZS54RGF0YTtjYihkLGopO2lmKGMpe2ZvcihkPWUuem9uZXMubGVuZ3RoO2QtLTspbS5wdXNoKCJ6b25lR3JhcGgiK2QsInpvbmVBcmVhIitkKTtuKG0sZnVuY3Rpb24oYSl7aWYoZVthXSllW2FdLnNoaWZ0PWwrKGYuc3RlcD8yOjEpfSl9aWYoaSlpLmlzQXJlYT0hMDtiPXAoYiwhMCk7aT17c2VyaWVzOmV9OwplLnBvaW50Q2xhc3MucHJvdG90eXBlLmFwcGx5T3B0aW9ucy5hcHBseShpLFthXSk7bT1pLng7ZD1xLmxlbmd0aDtpZihlLnJlcXVpcmVTb3J0aW5nJiZtPHFbZC0xXSlmb3Iobz0hMDtkJiZxW2QtMV0+bTspZC0tO2UudXBkYXRlUGFyYWxsZWxBcnJheXMoaSwic3BsaWNlIixkLDAsMCk7ZS51cGRhdGVQYXJhbGxlbEFycmF5cyhpLGQpO2lmKGsmJmkubmFtZSlrW21dPWkubmFtZTtoLnNwbGljZShkLDAsYSk7byYmKGUuZGF0YS5zcGxpY2UoZCwwLG51bGwpLGUucHJvY2Vzc0RhdGEoKSk7Zi5sZWdlbmRUeXBlPT09InBvaW50IiYmZS5nZW5lcmF0ZVBvaW50cygpO2MmJihnWzBdJiZnWzBdLnJlbW92ZT9nWzBdLnJlbW92ZSghMSk6KGcuc2hpZnQoKSxlLnVwZGF0ZVBhcmFsbGVsQXJyYXlzKGksInNoaWZ0IiksaC5zaGlmdCgpKSk7ZS5pc0RpcnR5PSEwO2UuaXNEaXJ0eURhdGE9ITA7YiYmKGUuZ2V0QXR0cmlicygpLGoucmVkcmF3KCkpfSxyZW1vdmVQb2ludDpmdW5jdGlvbihhLGIsCmMpe3ZhciBkPXRoaXMsZT1kLmRhdGEsZj1lW2FdLGc9ZC5wb2ludHMsaD1kLmNoYXJ0LGk9ZnVuY3Rpb24oKXtnJiZnLmxlbmd0aD09PWUubGVuZ3RoJiZnLnNwbGljZShhLDEpO2Uuc3BsaWNlKGEsMSk7ZC5vcHRpb25zLmRhdGEuc3BsaWNlKGEsMSk7ZC51cGRhdGVQYXJhbGxlbEFycmF5cyhmfHx7c2VyaWVzOmR9LCJzcGxpY2UiLGEsMSk7ZiYmZi5kZXN0cm95KCk7ZC5pc0RpcnR5PSEwO2QuaXNEaXJ0eURhdGE9ITA7YiYmaC5yZWRyYXcoKX07Y2IoYyxoKTtiPXAoYiwhMCk7Zj9mLmZpcmVQb2ludEV2ZW50KCJyZW1vdmUiLG51bGwsaSk6aSgpfSxyZW1vdmU6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLGQ9Yy5jaGFydDtNKGMsInJlbW92ZSIsbnVsbCxmdW5jdGlvbigpe2MuZGVzdHJveSgpO2QuaXNEaXJ0eUxlZ2VuZD1kLmlzRGlydHlCb3g9ITA7ZC5saW5rU2VyaWVzKCk7cChhLCEwKSYmZC5yZWRyYXcoYil9KX0sdXBkYXRlOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcyxkPQp0aGlzLmNoYXJ0LGU9dGhpcy51c2VyT3B0aW9ucyxmPXRoaXMudHlwZSxnPUtbZl0ucHJvdG90eXBlLGg9WyJncm91cCIsIm1hcmtlckdyb3VwIiwiZGF0YUxhYmVsc0dyb3VwIl0saTtpZihhLnR5cGUmJmEudHlwZSE9PWZ8fGEuekluZGV4IT09dm9pZCAwKWgubGVuZ3RoPTA7bihoLGZ1bmN0aW9uKGEpe2hbYV09Y1thXTtkZWxldGUgY1thXX0pO2E9QyhlLHthbmltYXRpb246ITEsaW5kZXg6dGhpcy5pbmRleCxwb2ludFN0YXJ0OnRoaXMueERhdGFbMF19LHtkYXRhOnRoaXMub3B0aW9ucy5kYXRhfSxhKTt0aGlzLnJlbW92ZSghMSk7Zm9yKGkgaW4gZyl0aGlzW2ldPXU7dyh0aGlzLEtbYS50eXBlfHxmXS5wcm90b3R5cGUpO24oaCxmdW5jdGlvbihhKXtjW2FdPWhbYV19KTt0aGlzLmluaXQoZCxhKTtkLmxpbmtTZXJpZXMoKTtwKGIsITApJiZkLnJlZHJhdyghMSl9fSk7dyhGLnByb3RvdHlwZSx7dXBkYXRlOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jaGFydCxhPWMub3B0aW9uc1t0aGlzLmNvbGxdW3RoaXMub3B0aW9ucy5pbmRleF09CkModGhpcy51c2VyT3B0aW9ucyxhKTt0aGlzLmRlc3Ryb3koITApO3RoaXMuX2FkZGVkUGxvdExCPXRoaXMuY2hhcnQuX2xhYmVsUGFuZXM9dTt0aGlzLmluaXQoYyx3KGEse2V2ZW50czp1fSkpO2MuaXNEaXJ0eUJveD0hMDtwKGIsITApJiZjLnJlZHJhdygpfSxyZW1vdmU6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXRoaXMuY2hhcnQsYz10aGlzLmNvbGwsZD10aGlzLnNlcmllcyxlPWQubGVuZ3RoO2UtLTspZFtlXSYmZFtlXS5yZW1vdmUoITEpO0FhKGIuYXhlcyx0aGlzKTtBYShiW2NdLHRoaXMpO2Iub3B0aW9uc1tjXS5zcGxpY2UodGhpcy5vcHRpb25zLmluZGV4LDEpO24oYltjXSxmdW5jdGlvbihhLGIpe2Eub3B0aW9ucy5pbmRleD1ifSk7dGhpcy5kZXN0cm95KCk7Yi5pc0RpcnR5Qm94PSEwO3AoYSwhMCkmJmIucmVkcmF3KCl9LHNldFRpdGxlOmZ1bmN0aW9uKGEsYil7dGhpcy51cGRhdGUoe3RpdGxlOmF9LGIpfSxzZXRDYXRlZ29yaWVzOmZ1bmN0aW9uKGEsYil7dGhpcy51cGRhdGUoe2NhdGVnb3JpZXM6YX0sCmIpfX0pO3ZhciBJYT1rYShQKTtLLmxpbmU9SWE7Vi5hcmVhPUMoYmEse3NvZnRUaHJlc2hvbGQ6ITEsdGhyZXNob2xkOjB9KTt2YXIgeWE9a2EoUCx7dHlwZToiYXJlYSIsc2luZ2xlU3RhY2tzOiExLGdldFN0YWNrUG9pbnRzOmZ1bmN0aW9uKCl7dmFyIGE9W10sYj1bXSxjPXRoaXMueEF4aXMsZD10aGlzLnlBeGlzLGU9ZC5zdGFja3NbdGhpcy5zdGFja0tleV0sZj17fSxnPXRoaXMucG9pbnRzLGg9dGhpcy5pbmRleCxpPWQuc2VyaWVzLGo9aS5sZW5ndGgsayxsPXAoZC5vcHRpb25zLnJldmVyc2VkU3RhY2tzLCEwKT8xOi0xLG0sbztpZih0aGlzLm9wdGlvbnMuc3RhY2tpbmcpe2ZvcihtPTA7bTxnLmxlbmd0aDttKyspZltnW21dLnhdPWdbbV07Zm9yKG8gaW4gZSllW29dLnRvdGFsIT09bnVsbCYmYi5wdXNoKCtvKTtiLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS1ifSk7az1zYShpLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmlzaWJsZX0pO24oYixmdW5jdGlvbihnLGkpe3ZhciBvPQowLHAsdjtpZihmW2ddJiYhZltnXS5pc051bGwpYS5wdXNoKGZbZ10pLG4oWy0xLDFdLGZ1bmN0aW9uKGEpe3ZhciBjPWE9PT0xPyJyaWdodE51bGwiOiJsZWZ0TnVsbCIsZD0wLG89ZVtiW2krYV1dO2lmKG8pZm9yKG09aDttPj0wJiZtPGo7KXA9by5wb2ludHNbbV0scHx8KG09PT1oP2ZbZ11bY109ITA6a1ttXSYmKHY9ZVtnXS5wb2ludHNbbV0pJiYoZC09dlsxXS12WzBdKSksbSs9bDtmW2ddW2E9PT0xPyJyaWdodENsaWZmIjoibGVmdENsaWZmIl09ZH0pO2Vsc2V7Zm9yKG09aDttPj0wJiZtPGo7KXtpZihwPWVbZ10ucG9pbnRzW21dKXtvPXBbMV07YnJlYWt9bSs9bH1vPWQudG9QaXhlbHMobywhMCk7YS5wdXNoKHtpc051bGw6ITAscGxvdFg6Yy50b1BpeGVscyhnLCEwKSxwbG90WTpvLHlCb3R0b206b30pfX0pfXJldHVybiBhfSxnZXRHcmFwaFBhdGg6ZnVuY3Rpb24oYSl7dmFyIGI9UC5wcm90b3R5cGUuZ2V0R3JhcGhQYXRoLGM9dGhpcy5vcHRpb25zLGQ9Yy5zdGFja2luZywKZT10aGlzLnlBeGlzLGYsZyxoPVtdLGk9W10saj10aGlzLmluZGV4LGssbD1lLnN0YWNrc1t0aGlzLnN0YWNrS2V5XSxtPWMudGhyZXNob2xkLG89ZS5nZXRUaHJlc2hvbGQoYy50aHJlc2hvbGQpLHEsYz1jLmNvbm5lY3ROdWxsc3x8ZD09PSJwZXJjZW50IixyPWZ1bmN0aW9uKGIsYyxmKXt2YXIgZz1hW2JdLGI9ZCYmbFtnLnhdLnBvaW50c1tqXSxxPWdbZisiTnVsbCJdfHwwLGY9Z1tmKyJDbGlmZiJdfHwwLHIsbixnPSEwO2Z8fHE/KHI9KHE/YlswXTpiWzFdKStmLG49YlswXStmLGc9ISFxKTohZCYmYVtjXSYmYVtjXS5pc051bGwmJihyPW49bSk7ciE9PXZvaWQgMCYmKGkucHVzaCh7cGxvdFg6ayxwbG90WTpyPT09bnVsbD9vOmUudG9QaXhlbHMociwhMCksaXNOdWxsOmd9KSxoLnB1c2goe3Bsb3RYOmsscGxvdFk6bj09PW51bGw/bzplLnRvUGl4ZWxzKG4sITApfSkpfSxhPWF8fHRoaXMucG9pbnRzO2QmJihhPXRoaXMuZ2V0U3RhY2tQb2ludHMoKSk7Zm9yKGY9MDtmPGEubGVuZ3RoO2YrKylpZihnPQphW2ZdLmlzTnVsbCxrPXAoYVtmXS5yZWN0UGxvdFgsYVtmXS5wbG90WCkscT1wKGFbZl0ueUJvdHRvbSxvKSwhZ3x8Yyl7Y3x8cihmLGYtMSwibGVmdCIpO2lmKCFnfHxkfHwhYylpLnB1c2goYVtmXSksaC5wdXNoKHt4OmYscGxvdFg6ayxwbG90WTpxfSk7Y3x8cihmLGYrMSwicmlnaHQiKX1mPWIuY2FsbCh0aGlzLGksITAsITApO2gucmV2ZXJzZWQ9ITA7Zz1iLmNhbGwodGhpcyxoLCEwLCEwKTtnLmxlbmd0aCYmKGdbMF09IkwiKTtmPWYuY29uY2F0KGcpO2I9Yi5jYWxsKHRoaXMsaSwhMSxjKTt0aGlzLmFyZWFQYXRoPWY7cmV0dXJuIGJ9LGRyYXdHcmFwaDpmdW5jdGlvbigpe3RoaXMuYXJlYVBhdGg9W107UC5wcm90b3R5cGUuZHJhd0dyYXBoLmFwcGx5KHRoaXMpO3ZhciBhPXRoaXMsYj10aGlzLmFyZWFQYXRoLGM9dGhpcy5vcHRpb25zLGQ9W1siYXJlYSIsdGhpcy5jb2xvcixjLmZpbGxDb2xvcl1dO24odGhpcy56b25lcyxmdW5jdGlvbihiLGYpe2QucHVzaChbInpvbmVBcmVhIisKZixiLmNvbG9yfHxhLmNvbG9yLGIuZmlsbENvbG9yfHxjLmZpbGxDb2xvcl0pfSk7bihkLGZ1bmN0aW9uKGQpe3ZhciBmPWRbMF0sZz1hW2ZdO2c/Zy5hbmltYXRlKHtkOmJ9KTooZz17ZmlsbDpkWzJdfHxkWzFdLHpJbmRleDowfSxkWzJdfHwoZ1siZmlsbC1vcGFjaXR5Il09cChjLmZpbGxPcGFjaXR5LDAuNzUpKSxhW2ZdPWEuY2hhcnQucmVuZGVyZXIucGF0aChiKS5hdHRyKGcpLmFkZChhLmdyb3VwKSl9KX0sZHJhd0xlZ2VuZFN5bWJvbDpaLmRyYXdSZWN0YW5nbGV9KTtLLmFyZWE9eWE7Vi5zcGxpbmU9QyhiYSk7SWE9a2EoUCx7dHlwZToic3BsaW5lIixnZXRQb2ludFNwbGluZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yi5wbG90WCxlPWIucGxvdFksZj1hW2MtMV0sYz1hW2MrMV0sZyxoLGksajtpZihmJiYhZi5pc051bGwmJmMmJiFjLmlzTnVsbCl7YT1mLnBsb3RZO2k9Yy5wbG90WDt2YXIgYz1jLnBsb3RZLGs9MDtnPSgxLjUqZCtmLnBsb3RYKS8yLjU7aD0oMS41KmUrYSkvCjIuNTtpPSgxLjUqZCtpKS8yLjU7aj0oMS41KmUrYykvMi41O2khPT1nJiYoaz0oai1oKSooaS1kKS8oaS1nKStlLWopO2grPWs7ais9aztoPmEmJmg+ZT8oaD1zKGEsZSksaj0yKmUtaCk6aDxhJiZoPGUmJihoPUUoYSxlKSxqPTIqZS1oKTtqPmMmJmo+ZT8oaj1zKGMsZSksaD0yKmUtaik6ajxjJiZqPGUmJihqPUUoYyxlKSxoPTIqZS1qKTtiLnJpZ2h0Q29udFg9aTtiLnJpZ2h0Q29udFk9an1iPVsiQyIscChmLnJpZ2h0Q29udFgsZi5wbG90WCkscChmLnJpZ2h0Q29udFksZi5wbG90WSkscChnLGQpLHAoaCxlKSxkLGVdO2YucmlnaHRDb250WD1mLnJpZ2h0Q29udFk9bnVsbDtyZXR1cm4gYn19KTtLLnNwbGluZT1JYTtWLmFyZWFzcGxpbmU9QyhWLmFyZWEpO3lhPXlhLnByb3RvdHlwZTtJYT1rYShJYSx7dHlwZToiYXJlYXNwbGluZSIsZ2V0U3RhY2tQb2ludHM6eWEuZ2V0U3RhY2tQb2ludHMsZ2V0R3JhcGhQYXRoOnlhLmdldEdyYXBoUGF0aCxzZXRTdGFja0NsaWZmczp5YS5zZXRTdGFja0NsaWZmcywKZHJhd0dyYXBoOnlhLmRyYXdHcmFwaCxkcmF3TGVnZW5kU3ltYm9sOlouZHJhd1JlY3RhbmdsZX0pO0suYXJlYXNwbGluZT1JYTtWLmNvbHVtbj1DKGJhLHtib3JkZXJDb2xvcjoiI0ZGRkZGRiIsYm9yZGVyUmFkaXVzOjAsZ3JvdXBQYWRkaW5nOjAuMixtYXJrZXI6bnVsbCxwb2ludFBhZGRpbmc6MC4xLG1pblBvaW50TGVuZ3RoOjAsY3JvcFRocmVzaG9sZDo1MCxwb2ludFJhbmdlOm51bGwsc3RhdGVzOntob3Zlcjp7YnJpZ2h0bmVzczowLjEsc2hhZG93OiExLGhhbG86ITF9LHNlbGVjdDp7Y29sb3I6IiNDMEMwQzAiLGJvcmRlckNvbG9yOiIjMDAwMDAwIixzaGFkb3c6ITF9fSxkYXRhTGFiZWxzOnthbGlnbjpudWxsLHZlcnRpY2FsQWxpZ246bnVsbCx5Om51bGx9LHNvZnRUaHJlc2hvbGQ6ITEsc3RhcnRGcm9tVGhyZXNob2xkOiEwLHN0aWNreVRyYWNraW5nOiExLHRvb2x0aXA6e2Rpc3RhbmNlOjZ9LHRocmVzaG9sZDowfSk7SWE9a2EoUCx7dHlwZToiY29sdW1uIixwb2ludEF0dHJUb09wdGlvbnM6e3N0cm9rZToiYm9yZGVyQ29sb3IiLApmaWxsOiJjb2xvciIscjoiYm9yZGVyUmFkaXVzIn0sY3JvcFNob3VsZGVyOjAsZGlyZWN0VG91Y2g6ITAsdHJhY2tlckdyb3VwczpbImdyb3VwIiwiZGF0YUxhYmVsc0dyb3VwIl0sbmVnU3RhY2tzOiEwLGluaXQ6ZnVuY3Rpb24oKXtQLnByb3RvdHlwZS5pbml0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgYT10aGlzLGI9YS5jaGFydDtiLmhhc1JlbmRlcmVkJiZuKGIuc2VyaWVzLGZ1bmN0aW9uKGIpe2lmKGIudHlwZT09PWEudHlwZSliLmlzRGlydHk9ITB9KX0sZ2V0Q29sdW1uTWV0cmljczpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1hLm9wdGlvbnMsYz1hLnhBeGlzLGQ9YS55QXhpcyxlPWMucmV2ZXJzZWQsZixnPXt9LGg9MDtiLmdyb3VwaW5nPT09ITE/aD0xOm4oYS5jaGFydC5zZXJpZXMsZnVuY3Rpb24oYil7dmFyIGM9Yi5vcHRpb25zLGU9Yi55QXhpcyxpO2lmKGIudHlwZT09PWEudHlwZSYmYi52aXNpYmxlJiZkLmxlbj09PWUubGVuJiZkLnBvcz09PWUucG9zKWMuc3RhY2tpbmc/CihmPWIuc3RhY2tLZXksZ1tmXT09PXUmJihnW2ZdPWgrKyksaT1nW2ZdKTpjLmdyb3VwaW5nIT09ITEmJihpPWgrKyksYi5jb2x1bW5JbmRleD1pfSk7dmFyIGk9RShRKGMudHJhbnNBKSooYy5vcmRpbmFsU2xvcGV8fGIucG9pbnRSYW5nZXx8Yy5jbG9zZXN0UG9pbnRSYW5nZXx8Yy50aWNrSW50ZXJ2YWx8fDEpLGMubGVuKSxqPWkqYi5ncm91cFBhZGRpbmcsaz0oaS0yKmopL2gsYj1FKGIubWF4UG9pbnRXaWR0aHx8Yy5sZW4scChiLnBvaW50V2lkdGgsayooMS0yKmIucG9pbnRQYWRkaW5nKSkpO2EuY29sdW1uTWV0cmljcz17d2lkdGg6YixvZmZzZXQ6KGstYikvMisoaisoKGEuY29sdW1uSW5kZXh8fDApKyhlPzE6MCkpKmstaS8yKSooZT8tMToxKX07cmV0dXJuIGEuY29sdW1uTWV0cmljc30sY3Jpc3BDb2w6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcy5jaGFydCxmPXRoaXMuYm9yZGVyV2lkdGgsZz0tKGYlMj8wLjU6MCksZj1mJTI/MC41OjE7ZS5pbnZlcnRlZCYmZS5yZW5kZXJlci5pc1ZNTCYmCihmKz0xKTtjPU1hdGgucm91bmQoYStjKStnO2E9TWF0aC5yb3VuZChhKStnO2MtPWE7ZD1NYXRoLnJvdW5kKGIrZCkrZjtnPVEoYik8PTAuNSYmZD4wLjU7Yj1NYXRoLnJvdW5kKGIpK2Y7ZC09YjtnJiYoYi09MSxkKz0xKTtyZXR1cm57eDphLHk6Yix3aWR0aDpjLGhlaWdodDpkfX0sdHJhbnNsYXRlOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPWEuY2hhcnQsYz1hLm9wdGlvbnMsZD1hLmJvcmRlcldpZHRoPXAoYy5ib3JkZXJXaWR0aCxhLmNsb3Nlc3RQb2ludFJhbmdlKmEueEF4aXMudHJhbnNBPDI/MDoxKSxlPWEueUF4aXMsZj1hLnRyYW5zbGF0ZWRUaHJlc2hvbGQ9ZS5nZXRUaHJlc2hvbGQoYy50aHJlc2hvbGQpLGc9cChjLm1pblBvaW50TGVuZ3RoLDUpLGg9YS5nZXRDb2x1bW5NZXRyaWNzKCksaT1oLndpZHRoLGo9YS5iYXJXPXMoaSwxKzIqZCksaz1hLnBvaW50WE9mZnNldD1oLm9mZnNldDtiLmludmVydGVkJiYoZi09MC41KTtjLnBvaW50UGFkZGluZyYmKGo9RmEoaikpOwpQLnByb3RvdHlwZS50cmFuc2xhdGUuYXBwbHkoYSk7bihhLnBvaW50cyxmdW5jdGlvbihjKXt2YXIgZD1FKHAoYy55Qm90dG9tLGYpLDlFNCksaD05OTkrUShkKSxoPUUocygtaCxjLnBsb3RZKSxlLmxlbitoKSxxPWMucGxvdFgrayxyPWosbj1FKGgsZCksdCx2PXMoaCxkKS1uO1Eodik8ZyYmZyYmKHY9Zyx0PSFlLnJldmVyc2VkJiYhYy5uZWdhdGl2ZXx8ZS5yZXZlcnNlZCYmYy5uZWdhdGl2ZSxuPVEobi1mKT5nP2QtZzpmLSh0P2c6MCkpO2MuYmFyWD1xO2MucG9pbnRXaWR0aD1pO2MudG9vbHRpcFBvcz1iLmludmVydGVkP1tlLmxlbitlLnBvcy1iLnBsb3RMZWZ0LWgsYS54QXhpcy5sZW4tcS1yLzIsdl06W3Erci8yLGgrZS5wb3MtYi5wbG90VG9wLHZdO2Muc2hhcGVUeXBlPSJyZWN0IjtjLnNoYXBlQXJncz1hLmNyaXNwQ29sKHEsbixyLHYpfSl9LGdldFN5bWJvbDpxYSxkcmF3TGVnZW5kU3ltYm9sOlouZHJhd1JlY3RhbmdsZSxkcmF3R3JhcGg6cWEsZHJhd1BvaW50czpmdW5jdGlvbigpe3ZhciBhPQp0aGlzLGI9dGhpcy5jaGFydCxjPWEub3B0aW9ucyxkPWIucmVuZGVyZXIsZT1jLmFuaW1hdGlvbkxpbWl0fHwyNTAsZixnO24oYS5wb2ludHMsZnVuY3Rpb24oaCl7dmFyIGk9aC5wbG90WSxqPWguZ3JhcGhpYztpZihpIT09dSYmIWlzTmFOKGkpJiZoLnkhPT1udWxsKWY9aC5zaGFwZUFyZ3MsaT10KGEuYm9yZGVyV2lkdGgpP3sic3Ryb2tlLXdpZHRoIjphLmJvcmRlcldpZHRofTp7fSxnPWgucG9pbnRBdHRyW2guc2VsZWN0ZWQ/InNlbGVjdCI6IiJdfHxhLnBvaW50QXR0clsiIl0saj8oVGEoaiksai5hdHRyKGkpLmF0dHIoZylbYi5wb2ludENvdW50PGU/ImFuaW1hdGUiOiJhdHRyIl0oQyhmKSkpOmguZ3JhcGhpYz1kW2guc2hhcGVUeXBlXShmKS5hdHRyKGkpLmF0dHIoZykuYWRkKGguZ3JvdXB8fGEuZ3JvdXApLnNoYWRvdyhjLnNoYWRvdyxudWxsLGMuc3RhY2tpbmcmJiFjLmJvcmRlclJhZGl1cyk7ZWxzZSBpZihqKWguZ3JhcGhpYz1qLmRlc3Ryb3koKX0pfSxhbmltYXRlOmZ1bmN0aW9uKGEpe3ZhciBiPQp0aGlzLnlBeGlzLGM9dGhpcy5vcHRpb25zLGQ9dGhpcy5jaGFydC5pbnZlcnRlZCxlPXt9O2lmKGhhKWE/KGUuc2NhbGVZPTAuMDAxLGE9RShiLnBvcytiLmxlbixzKGIucG9zLGIudG9QaXhlbHMoYy50aHJlc2hvbGQpKSksZD9lLnRyYW5zbGF0ZVg9YS1iLmxlbjplLnRyYW5zbGF0ZVk9YSx0aGlzLmdyb3VwLmF0dHIoZSkpOihlLnNjYWxlWT0xLGVbZD8idHJhbnNsYXRlWCI6InRyYW5zbGF0ZVkiXT1iLnBvcyx0aGlzLmdyb3VwLmFuaW1hdGUoZSx0aGlzLm9wdGlvbnMuYW5pbWF0aW9uKSx0aGlzLmFuaW1hdGU9bnVsbCl9LHJlbW92ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1hLmNoYXJ0O2IuaGFzUmVuZGVyZWQmJm4oYi5zZXJpZXMsZnVuY3Rpb24oYil7aWYoYi50eXBlPT09YS50eXBlKWIuaXNEaXJ0eT0hMH0pO1AucHJvdG90eXBlLnJlbW92ZS5hcHBseShhLGFyZ3VtZW50cyl9fSk7Sy5jb2x1bW49SWE7Vi5iYXI9QyhWLmNvbHVtbik7eWE9a2EoSWEse3R5cGU6ImJhciIsCmludmVydGVkOiEwfSk7Sy5iYXI9eWE7Vi5zY2F0dGVyPUMoYmEse2xpbmVXaWR0aDowLG1hcmtlcjp7ZW5hYmxlZDohMH0sdG9vbHRpcDp7aGVhZGVyRm9ybWF0Oic8c3BhbiBzdHlsZT0iY29sb3I6e3BvaW50LmNvbG9yfSI+XHUyNWNmPC9zcGFuPiA8c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB4OyI+IHtzZXJpZXMubmFtZX08L3NwYW4+PGJyLz4nLHBvaW50Rm9ybWF0OiJ4OiA8Yj57cG9pbnQueH08L2I+PGJyLz55OiA8Yj57cG9pbnQueX08L2I+PGJyLz4ifX0pO3lhPWthKFAse3R5cGU6InNjYXR0ZXIiLHNvcnRlZDohMSxyZXF1aXJlU29ydGluZzohMSxub1NoYXJlZFRvb2x0aXA6ITAsdHJhY2tlckdyb3VwczpbImdyb3VwIiwibWFya2VyR3JvdXAiLCJkYXRhTGFiZWxzR3JvdXAiXSx0YWtlT3JkaW5hbFBvc2l0aW9uOiExLGtkRGltZW5zaW9uczoyLGRyYXdHcmFwaDpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5saW5lV2lkdGgmJlAucHJvdG90eXBlLmRyYXdHcmFwaC5jYWxsKHRoaXMpfX0pOwpLLnNjYXR0ZXI9eWE7Vi5waWU9QyhiYSx7Ym9yZGVyQ29sb3I6IiNGRkZGRkYiLGJvcmRlcldpZHRoOjEsY2VudGVyOltudWxsLG51bGxdLGNsaXA6ITEsY29sb3JCeVBvaW50OiEwLGRhdGFMYWJlbHM6e2Rpc3RhbmNlOjMwLGVuYWJsZWQ6ITAsZm9ybWF0dGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueT09PW51bGw/dm9pZCAwOnRoaXMucG9pbnQubmFtZX0seDowfSxpZ25vcmVIaWRkZW5Qb2ludDohMCxsZWdlbmRUeXBlOiJwb2ludCIsbWFya2VyOm51bGwsc2l6ZTpudWxsLHNob3dJbkxlZ2VuZDohMSxzbGljZWRPZmZzZXQ6MTAsc3RhdGVzOntob3Zlcjp7YnJpZ2h0bmVzczowLjEsc2hhZG93OiExfX0sc3RpY2t5VHJhY2tpbmc6ITEsdG9vbHRpcDp7Zm9sbG93UG9pbnRlcjohMH19KTtiYT17dHlwZToicGllIixpc0NhcnRlc2lhbjohMSxwb2ludENsYXNzOmthKEhhLHtpbml0OmZ1bmN0aW9uKCl7SGEucHJvdG90eXBlLmluaXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBhPQp0aGlzLGI7YS5uYW1lPXAoYS5uYW1lLCJTbGljZSIpO2I9ZnVuY3Rpb24oYil7YS5zbGljZShiLnR5cGU9PT0ic2VsZWN0Iil9O0QoYSwic2VsZWN0IixiKTtEKGEsInVuc2VsZWN0IixiKTtyZXR1cm4gYX0sc2V0VmlzaWJsZTpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMsZD1jLnNlcmllcyxlPWQuY2hhcnQsZj1kLm9wdGlvbnMuaWdub3JlSGlkZGVuUG9pbnQsYj1wKGIsZik7aWYoYSE9PWMudmlzaWJsZSl7Yy52aXNpYmxlPWMub3B0aW9ucy52aXNpYmxlPWE9YT09PXU/IWMudmlzaWJsZTphO2Qub3B0aW9ucy5kYXRhW3JhKGMsZC5kYXRhKV09Yy5vcHRpb25zO24oWyJncmFwaGljIiwiZGF0YUxhYmVsIiwiY29ubmVjdG9yIiwic2hhZG93R3JvdXAiXSxmdW5jdGlvbihiKXtpZihjW2JdKWNbYl1bYT8ic2hvdyI6ImhpZGUiXSghMCl9KTtjLmxlZ2VuZEl0ZW0mJmUubGVnZW5kLmNvbG9yaXplSXRlbShjLGEpOyFhJiZjLnN0YXRlPT09ImhvdmVyIiYmYy5zZXRTdGF0ZSgiIik7aWYoZilkLmlzRGlydHk9CiEwO2ImJmUucmVkcmF3KCl9fSxzbGljZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5zZXJpZXM7Y2IoYyxkLmNoYXJ0KTtwKGIsITApO3RoaXMuc2xpY2VkPXRoaXMub3B0aW9ucy5zbGljZWQ9YT10KGEpP2E6IXRoaXMuc2xpY2VkO2Qub3B0aW9ucy5kYXRhW3JhKHRoaXMsZC5kYXRhKV09dGhpcy5vcHRpb25zO2E9YT90aGlzLnNsaWNlZFRyYW5zbGF0aW9uOnt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowfTt0aGlzLmdyYXBoaWMuYW5pbWF0ZShhKTt0aGlzLnNoYWRvd0dyb3VwJiZ0aGlzLnNoYWRvd0dyb3VwLmFuaW1hdGUoYSl9LGhhbG9QYXRoOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuc2hhcGVBcmdzLGM9dGhpcy5zZXJpZXMuY2hhcnQ7cmV0dXJuIHRoaXMuc2xpY2VkfHwhdGhpcy52aXNpYmxlP1tdOnRoaXMuc2VyaWVzLmNoYXJ0LnJlbmRlcmVyLnN5bWJvbHMuYXJjKGMucGxvdExlZnQrYi54LGMucGxvdFRvcCtiLnksYi5yK2EsYi5yK2Ese2lubmVyUjp0aGlzLnNoYXBlQXJncy5yLApzdGFydDpiLnN0YXJ0LGVuZDpiLmVuZH0pfX0pLHJlcXVpcmVTb3J0aW5nOiExLGRpcmVjdFRvdWNoOiEwLG5vU2hhcmVkVG9vbHRpcDohMCx0cmFja2VyR3JvdXBzOlsiZ3JvdXAiLCJkYXRhTGFiZWxzR3JvdXAiXSxheGlzVHlwZXM6W10scG9pbnRBdHRyVG9PcHRpb25zOntzdHJva2U6ImJvcmRlckNvbG9yIiwic3Ryb2tlLXdpZHRoIjoiYm9yZGVyV2lkdGgiLGZpbGw6ImNvbG9yIn0sYW5pbWF0ZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9Yi5wb2ludHMsZD1iLnN0YXJ0QW5nbGVSYWQ7aWYoIWEpbihjLGZ1bmN0aW9uKGEpe3ZhciBjPWEuZ3JhcGhpYyxnPWEuc2hhcGVBcmdzO2MmJihjLmF0dHIoe3I6YS5zdGFydFJ8fGIuY2VudGVyWzNdLzIsc3RhcnQ6ZCxlbmQ6ZH0pLGMuYW5pbWF0ZSh7cjpnLnIsc3RhcnQ6Zy5zdGFydCxlbmQ6Zy5lbmR9LGIub3B0aW9ucy5hbmltYXRpb24pKX0pLGIuYW5pbWF0ZT1udWxsfSx1cGRhdGVUb3RhbHM6ZnVuY3Rpb24oKXt2YXIgYSxiPTAsCmM9dGhpcy5wb2ludHMsZD1jLmxlbmd0aCxlLGY9dGhpcy5vcHRpb25zLmlnbm9yZUhpZGRlblBvaW50O2ZvcihhPTA7YTxkO2ErKyllPWNbYV0sYis9ZiYmIWUudmlzaWJsZT8wOmUueTt0aGlzLnRvdGFsPWI7Zm9yKGE9MDthPGQ7YSsrKWU9Y1thXSxlLnBlcmNlbnRhZ2U9Yj4wJiYoZS52aXNpYmxlfHwhZik/ZS55L2IqMTAwOjAsZS50b3RhbD1ifSxnZW5lcmF0ZVBvaW50czpmdW5jdGlvbigpe1AucHJvdG90eXBlLmdlbmVyYXRlUG9pbnRzLmNhbGwodGhpcyk7dGhpcy51cGRhdGVUb3RhbHMoKX0sdHJhbnNsYXRlOmZ1bmN0aW9uKGEpe3RoaXMuZ2VuZXJhdGVQb2ludHMoKTt2YXIgYj0wLGM9dGhpcy5vcHRpb25zLGQ9Yy5zbGljZWRPZmZzZXQsZT1kK2MuYm9yZGVyV2lkdGgsZixnLGgsaT1jLnN0YXJ0QW5nbGV8fDAsaj10aGlzLnN0YXJ0QW5nbGVSYWQ9QmEvMTgwKihpLTkwKSxpPSh0aGlzLmVuZEFuZ2xlUmFkPUJhLzE4MCoocChjLmVuZEFuZ2xlLGkrMzYwKS05MCkpLWosaz0KdGhpcy5wb2ludHMsbD1jLmRhdGFMYWJlbHMuZGlzdGFuY2UsYz1jLmlnbm9yZUhpZGRlblBvaW50LG0sbz1rLmxlbmd0aCxxO2lmKCFhKXRoaXMuY2VudGVyPWE9dGhpcy5nZXRDZW50ZXIoKTt0aGlzLmdldFg9ZnVuY3Rpb24oYixjKXtoPVguYXNpbihFKChiLWFbMV0pLyhhWzJdLzIrbCksMSkpO3JldHVybiBhWzBdKyhjPy0xOjEpKmFhKGgpKihhWzJdLzIrbCl9O2ZvcihtPTA7bTxvO20rKyl7cT1rW21dO2Y9aitiKmk7aWYoIWN8fHEudmlzaWJsZSliKz1xLnBlcmNlbnRhZ2UvMTAwO2c9aitiKmk7cS5zaGFwZVR5cGU9ImFyYyI7cS5zaGFwZUFyZ3M9e3g6YVswXSx5OmFbMV0scjphWzJdLzIsaW5uZXJSOmFbM10vMixzdGFydDp5KGYqMUUzKS8xRTMsZW5kOnkoZyoxRTMpLzFFM307aD0oZytmKS8yO2g+MS41KkJhP2gtPTIqQmE6aDwtQmEvMiYmKGgrPTIqQmEpO3Euc2xpY2VkVHJhbnNsYXRpb249e3RyYW5zbGF0ZVg6eShhYShoKSpkKSx0cmFuc2xhdGVZOnkoaWEoaCkqZCl9OwpmPWFhKGgpKmFbMl0vMjtnPWlhKGgpKmFbMl0vMjtxLnRvb2x0aXBQb3M9W2FbMF0rZiowLjcsYVsxXStnKjAuN107cS5oYWxmPWg8LUJhLzJ8fGg+QmEvMj8xOjA7cS5hbmdsZT1oO2U9RShlLGwvMik7cS5sYWJlbFBvcz1bYVswXStmK2FhKGgpKmwsYVsxXStnK2lhKGgpKmwsYVswXStmK2FhKGgpKmUsYVsxXStnK2lhKGgpKmUsYVswXStmLGFbMV0rZyxsPDA/ImNlbnRlciI6cS5oYWxmPyJyaWdodCI6ImxlZnQiLGhdfX0sZHJhd0dyYXBoOm51bGwsZHJhd1BvaW50czpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1hLmNoYXJ0LnJlbmRlcmVyLGMsZCxlPWEub3B0aW9ucy5zaGFkb3csZixnLGgsaTtpZihlJiYhYS5zaGFkb3dHcm91cClhLnNoYWRvd0dyb3VwPWIuZygic2hhZG93IikuYWRkKGEuZ3JvdXApO24oYS5wb2ludHMsZnVuY3Rpb24oail7aWYoai55IT09bnVsbCl7ZD1qLmdyYXBoaWM7aD1qLnNoYXBlQXJncztmPWouc2hhZG93R3JvdXA7Zz1qLnBvaW50QXR0cltqLnNlbGVjdGVkPwoic2VsZWN0IjoiIl07aWYoIWcuc3Ryb2tlKWcuc3Ryb2tlPWcuZmlsbDtpZihlJiYhZilmPWouc2hhZG93R3JvdXA9Yi5nKCJzaGFkb3ciKS5hZGQoYS5zaGFkb3dHcm91cCk7Yz1qLnNsaWNlZD9qLnNsaWNlZFRyYW5zbGF0aW9uOnt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowfTtmJiZmLmF0dHIoYyk7aWYoZClkLnNldFJhZGlhbFJlZmVyZW5jZShhLmNlbnRlcikuYXR0cihnKS5hbmltYXRlKHcoaCxjKSk7ZWxzZXtpPXsic3Ryb2tlLWxpbmVqb2luIjoicm91bmQifTtpZighai52aXNpYmxlKWkudmlzaWJpbGl0eT0iaGlkZGVuIjtqLmdyYXBoaWM9ZD1iW2ouc2hhcGVUeXBlXShoKS5zZXRSYWRpYWxSZWZlcmVuY2UoYS5jZW50ZXIpLmF0dHIoZykuYXR0cihpKS5hdHRyKGMpLmFkZChhLmdyb3VwKS5zaGFkb3coZSxmKX19fSl9LHNlYXJjaFBvaW50OnFhLHNvcnRCeUFuZ2xlOmZ1bmN0aW9uKGEsYil7YS5zb3J0KGZ1bmN0aW9uKGEsZCl7cmV0dXJuIGEuYW5nbGUhPT12b2lkIDAmJgooZC5hbmdsZS1hLmFuZ2xlKSpifSl9LGRyYXdMZWdlbmRTeW1ib2w6Wi5kcmF3UmVjdGFuZ2xlLGdldENlbnRlcjpjYy5nZXRDZW50ZXIsZ2V0U3ltYm9sOnFhfTtiYT1rYShQLGJhKTtLLnBpZT1iYTtQLnByb3RvdHlwZS5kcmF3RGF0YUxhYmVscz1mdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1hLm9wdGlvbnMsYz1iLmN1cnNvcixkPWIuZGF0YUxhYmVscyxlPWEucG9pbnRzLGYsZyxoPWEuaGFzUmVuZGVyZWR8fDAsaSxqLGs9YS5jaGFydC5yZW5kZXJlcjtpZihkLmVuYWJsZWR8fGEuX2hhc1BvaW50TGFiZWxzKWEuZGxQcm9jZXNzT3B0aW9ucyYmYS5kbFByb2Nlc3NPcHRpb25zKGQpLGo9YS5wbG90R3JvdXAoImRhdGFMYWJlbHNHcm91cCIsImRhdGEtbGFiZWxzIixkLmRlZmVyPyJoaWRkZW4iOiJ2aXNpYmxlIixkLnpJbmRleHx8NikscChkLmRlZmVyLCEwKSYmKGouYXR0cih7b3BhY2l0eToraH0pLGh8fEQoYSwiYWZ0ZXJBbmltYXRlIixmdW5jdGlvbigpe2EudmlzaWJsZSYmai5zaG93KCk7CmpbYi5hbmltYXRpb24/ImFuaW1hdGUiOiJhdHRyIl0oe29wYWNpdHk6MX0se2R1cmF0aW9uOjIwMH0pfSkpLGc9ZCxuKGUsZnVuY3Rpb24oZSl7dmFyIGgsbz1lLmRhdGFMYWJlbCxxLHIsbj1lLmNvbm5lY3RvcixzPSEwLHYseD17fTtmPWUuZGxPcHRpb25zfHxlLm9wdGlvbnMmJmUub3B0aW9ucy5kYXRhTGFiZWxzO2g9cChmJiZmLmVuYWJsZWQsZy5lbmFibGVkKSYmZS55IT09bnVsbDtpZihvJiYhaCllLmRhdGFMYWJlbD1vLmRlc3Ryb3koKTtlbHNlIGlmKGgpe2Q9QyhnLGYpO3Y9ZC5zdHlsZTtoPWQucm90YXRpb247cT1lLmdldExhYmVsQ29uZmlnKCk7aT1kLmZvcm1hdD9LYShkLmZvcm1hdCxxKTpkLmZvcm1hdHRlci5jYWxsKHEsZCk7di5jb2xvcj1wKGQuY29sb3Isdi5jb2xvcixhLmNvbG9yLCJibGFjayIpO2lmKG8paWYodChpKSlvLmF0dHIoe3RleHQ6aX0pLHM9ITE7ZWxzZXtpZihlLmRhdGFMYWJlbD1vPW8uZGVzdHJveSgpLG4pZS5jb25uZWN0b3I9bi5kZXN0cm95KCl9ZWxzZSBpZih0KGkpKXtvPQp7ZmlsbDpkLmJhY2tncm91bmRDb2xvcixzdHJva2U6ZC5ib3JkZXJDb2xvciwic3Ryb2tlLXdpZHRoIjpkLmJvcmRlcldpZHRoLHI6ZC5ib3JkZXJSYWRpdXN8fDAscm90YXRpb246aCxwYWRkaW5nOmQucGFkZGluZyx6SW5kZXg6MX07aWYodi5jb2xvcj09PSJjb250cmFzdCIpeC5jb2xvcj1kLmluc2lkZXx8ZC5kaXN0YW5jZTwwfHxiLnN0YWNraW5nP2suZ2V0Q29udHJhc3QoZS5jb2xvcnx8YS5jb2xvcik6IiMwMDAwMDAiO2lmKGMpeC5jdXJzb3I9Yztmb3IociBpbiBvKW9bcl09PT11JiZkZWxldGUgb1tyXTtvPWUuZGF0YUxhYmVsPWtbaD8idGV4dCI6ImxhYmVsIl0oaSwwLC05OTk5LGQuc2hhcGUsbnVsbCxudWxsLGQudXNlSFRNTCkuYXR0cihvKS5jc3Modyh2LHgpKS5hZGQoaikuc2hhZG93KGQuc2hhZG93KX1vJiZhLmFsaWduRGF0YUxhYmVsKGUsbyxkLG51bGwscyl9fSl9O1AucHJvdG90eXBlLmFsaWduRGF0YUxhYmVsPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9dGhpcy5jaGFydCwKZz1mLmludmVydGVkLGg9cChhLnBsb3RYLC05OTk5KSxpPXAoYS5wbG90WSwtOTk5OSksaj1iLmdldEJCb3goKSxrPWYucmVuZGVyZXIuZm9udE1ldHJpY3MoYy5zdHlsZS5mb250U2l6ZSkuYixsPWMucm90YXRpb24sbT1jLmFsaWduLG89dGhpcy52aXNpYmxlJiYoYS5zZXJpZXMuZm9yY2VETHx8Zi5pc0luc2lkZVBsb3QoaCx5KGkpLGcpfHxkJiZmLmlzSW5zaWRlUGxvdChoLGc/ZC54KzE6ZC55K2QuaGVpZ2h0LTEsZykpLHE9cChjLm92ZXJmbG93LCJqdXN0aWZ5Iik9PT0ianVzdGlmeSI7aWYobylkPXcoe3g6Zz9mLnBsb3RXaWR0aC1pOmgseTp5KGc/Zi5wbG90SGVpZ2h0LWg6aSksd2lkdGg6MCxoZWlnaHQ6MH0sZCksdyhjLHt3aWR0aDpqLndpZHRoLGhlaWdodDpqLmhlaWdodH0pLGw/KHE9ITEsZz1mLnJlbmRlcmVyLnJvdENvcnIoayxsKSxnPXt4OmQueCtjLngrZC53aWR0aC8yK2cueCx5OmQueStjLnkrZC5oZWlnaHQvMn0sYltlPyJhdHRyIjoiYW5pbWF0ZSJdKGcpLmF0dHIoe2FsaWduOmMuYWxpZ259KSwKaD0obCs3MjApJTM2MCxoPWg+MTgwJiZoPDM2MCxtPT09ImxlZnQiP2cueS09aD9qLmhlaWdodDowOm09PT0iY2VudGVyIj8oZy54LT1qLndpZHRoLzIsZy55LT1qLmhlaWdodC8yKTptPT09InJpZ2h0IiYmKGcueC09ai53aWR0aCxnLnktPWg/MDpqLmhlaWdodCkpOihiLmFsaWduKGMsbnVsbCxkKSxnPWIuYWxpZ25BdHRyKSxxP3RoaXMuanVzdGlmeURhdGFMYWJlbChiLGMsZyxqLGQsZSk6cChjLmNyb3AsITApJiYobz1mLmlzSW5zaWRlUGxvdChnLngsZy55KSYmZi5pc0luc2lkZVBsb3QoZy54K2oud2lkdGgsZy55K2ouaGVpZ2h0KSksYy5zaGFwZSYmIWwmJmIuYXR0cih7YW5jaG9yWDphLnBsb3RYLGFuY2hvclk6YS5wbG90WX0pO2lmKCFvKVRhKGIpLGIuYXR0cih7eTotOTk5OX0pLGIucGxhY2VkPSExfTtQLnByb3RvdHlwZS5qdXN0aWZ5RGF0YUxhYmVsPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz10aGlzLmNoYXJ0LGg9Yi5hbGlnbixpPWIudmVydGljYWxBbGlnbixqLAprLGw9YS5ib3g/MDphLnBhZGRpbmd8fDA7aj1jLngrbDtpZihqPDApaD09PSJyaWdodCI/Yi5hbGlnbj0ibGVmdCI6Yi54PS1qLGs9ITA7aj1jLngrZC53aWR0aC1sO2lmKGo+Zy5wbG90V2lkdGgpaD09PSJsZWZ0Ij9iLmFsaWduPSJyaWdodCI6Yi54PWcucGxvdFdpZHRoLWosaz0hMDtqPWMueStsO2lmKGo8MClpPT09ImJvdHRvbSI/Yi52ZXJ0aWNhbEFsaWduPSJ0b3AiOmIueT0taixrPSEwO2o9Yy55K2QuaGVpZ2h0LWw7aWYoaj5nLnBsb3RIZWlnaHQpaT09PSJ0b3AiP2IudmVydGljYWxBbGlnbj0iYm90dG9tIjpiLnk9Zy5wbG90SGVpZ2h0LWosaz0hMDtpZihrKWEucGxhY2VkPSFmLGEuYWxpZ24oYixudWxsLGUpfTtpZihLLnBpZSlLLnBpZS5wcm90b3R5cGUuZHJhd0RhdGFMYWJlbHM9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS5kYXRhLGMsZD1hLmNoYXJ0LGU9YS5vcHRpb25zLmRhdGFMYWJlbHMsZj1wKGUuY29ubmVjdG9yUGFkZGluZywxMCksZz1wKGUuY29ubmVjdG9yV2lkdGgsCjEpLGg9ZC5wbG90V2lkdGgsaT1kLnBsb3RIZWlnaHQsaixrLGw9cChlLnNvZnRDb25uZWN0b3IsITApLG09ZS5kaXN0YW5jZSxvPWEuY2VudGVyLHE9b1syXS8yLHI9b1sxXSxBPW0+MCx0LHYseCx1PVtbXSxbXV0sdyx6LEMsQixMLEQ9WzAsMCwwLDBdLEo9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi55LWEueX07aWYoYS52aXNpYmxlJiYoZS5lbmFibGVkfHxhLl9oYXNQb2ludExhYmVscykpe1AucHJvdG90eXBlLmRyYXdEYXRhTGFiZWxzLmFwcGx5KGEpO24oYixmdW5jdGlvbihhKXtpZihhLmRhdGFMYWJlbCYmYS52aXNpYmxlKXVbYS5oYWxmXS5wdXNoKGEpLGEuZGF0YUxhYmVsLl9wb3M9bnVsbH0pO2ZvcihCPTI7Qi0tOyl7dmFyIEc9W10sSz1bXSxJPXVbQl0sRj1JLmxlbmd0aCxIO2lmKEYpe2Euc29ydEJ5QW5nbGUoSSxCLTAuNSk7Zm9yKEw9Yj0wOyFiJiZJW0xdOyliPUlbTF0mJklbTF0uZGF0YUxhYmVsJiYoSVtMXS5kYXRhTGFiZWwuZ2V0QkJveCgpLmhlaWdodHx8MjEpLApMKys7aWYobT4wKXt2PUUocitxK20sZC5wbG90SGVpZ2h0KTtmb3IoTD1zKDAsci1xLW0pO0w8PXY7TCs9YilHLnB1c2goTCk7dj1HLmxlbmd0aDtpZihGPnYpe2M9W10uY29uY2F0KEkpO2Muc29ydChKKTtmb3IoTD1GO0wtLTspY1tMXS5yYW5rPUw7Zm9yKEw9RjtMLS07KUlbTF0ucmFuaz49diYmSS5zcGxpY2UoTCwxKTtGPUkubGVuZ3RofWZvcihMPTA7TDxGO0wrKyl7Yz1JW0xdO3g9Yy5sYWJlbFBvcztjPTk5OTk7dmFyIE0sTztmb3IoTz0wO088djtPKyspTT1RKEdbT10teFsxXSksTTxjJiYoYz1NLEg9Tyk7aWYoSDxMJiZHW0xdIT09bnVsbClIPUw7ZWxzZSBmb3IodjxGLUwrSCYmR1tMXSE9PW51bGwmJihIPXYtRitMKTtHW0hdPT09bnVsbDspSCsrO0sucHVzaCh7aTpILHk6R1tIXX0pO0dbSF09bnVsbH1LLnNvcnQoSil9Zm9yKEw9MDtMPEY7TCsrKXtjPUlbTF07eD1jLmxhYmVsUG9zO3Q9Yy5kYXRhTGFiZWw7Qz1jLnZpc2libGU9PT0hMT8iaGlkZGVuIjoiaW5oZXJpdCI7CmM9eFsxXTtpZihtPjApe2lmKHY9Sy5wb3AoKSxIPXYuaSx6PXYueSxjPnomJkdbSCsxXSE9PW51bGx8fGM8eiYmR1tILTFdIT09bnVsbCl6PUUocygwLGMpLGQucGxvdEhlaWdodCl9ZWxzZSB6PWM7dz1lLmp1c3RpZnk/b1swXSsoQj8tMToxKSoocSttKTphLmdldFgoej09PXItcS1tfHx6PT09citxK20/Yzp6LEIpO3QuX2F0dHI9e3Zpc2liaWxpdHk6QyxhbGlnbjp4WzZdfTt0Ll9wb3M9e3g6dytlLngrKHtsZWZ0OmYscmlnaHQ6LWZ9W3hbNl1dfHwwKSx5OnorZS55LTEwfTt0LmNvbm5YPXc7dC5jb25uWT16O2lmKHRoaXMub3B0aW9ucy5zaXplPT09bnVsbCl2PXQud2lkdGgsdy12PGY/RFszXT1zKHkodi13K2YpLERbM10pOncrdj5oLWYmJihEWzFdPXMoeSh3K3YtaCtmKSxEWzFdKSksei1iLzI8MD9EWzBdPXMoeSgteitiLzIpLERbMF0pOnorYi8yPmkmJihEWzJdPXMoeSh6K2IvMi1pKSxEWzJdKSl9fX1pZihFYShEKT09PTB8fHRoaXMudmVyaWZ5RGF0YUxhYmVsT3ZlcmZsb3coRCkpdGhpcy5wbGFjZURhdGFMYWJlbHMoKSwKQSYmZyYmbih0aGlzLnBvaW50cyxmdW5jdGlvbihiKXtqPWIuY29ubmVjdG9yO3g9Yi5sYWJlbFBvcztpZigodD1iLmRhdGFMYWJlbCkmJnQuX3BvcyYmYi52aXNpYmxlKUM9dC5fYXR0ci52aXNpYmlsaXR5LHc9dC5jb25uWCx6PXQuY29ublksaz1sP1siTSIsdysoeFs2XT09PSJsZWZ0Ij81Oi01KSx6LCJDIix3LHosMip4WzJdLXhbNF0sMip4WzNdLXhbNV0seFsyXSx4WzNdLCJMIix4WzRdLHhbNV1dOlsiTSIsdysoeFs2XT09PSJsZWZ0Ij81Oi01KSx6LCJMIix4WzJdLHhbM10sIkwiLHhbNF0seFs1XV0saj8oai5hbmltYXRlKHtkOmt9KSxqLmF0dHIoInZpc2liaWxpdHkiLEMpKTpiLmNvbm5lY3Rvcj1qPWEuY2hhcnQucmVuZGVyZXIucGF0aChrKS5hdHRyKHsic3Ryb2tlLXdpZHRoIjpnLHN0cm9rZTplLmNvbm5lY3RvckNvbG9yfHxiLmNvbG9yfHwiIzYwNjA2MCIsdmlzaWJpbGl0eTpDfSkuYWRkKGEuZGF0YUxhYmVsc0dyb3VwKTtlbHNlIGlmKGopYi5jb25uZWN0b3I9ai5kZXN0cm95KCl9KX19LApLLnBpZS5wcm90b3R5cGUucGxhY2VEYXRhTGFiZWxzPWZ1bmN0aW9uKCl7bih0aGlzLnBvaW50cyxmdW5jdGlvbihhKXt2YXIgYj1hLmRhdGFMYWJlbDtpZihiJiZhLnZpc2libGUpKGE9Yi5fcG9zKT8oYi5hdHRyKGIuX2F0dHIpLGJbYi5tb3ZlZD8iYW5pbWF0ZSI6ImF0dHIiXShhKSxiLm1vdmVkPSEwKTpiJiZiLmF0dHIoe3k6LTk5OTl9KX0pfSxLLnBpZS5wcm90b3R5cGUuYWxpZ25EYXRhTGFiZWw9cWEsSy5waWUucHJvdG90eXBlLnZlcmlmeURhdGFMYWJlbE92ZXJmbG93PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY2VudGVyLGM9dGhpcy5vcHRpb25zLGQ9Yy5jZW50ZXIsZT1jLm1pblNpemV8fDgwLGY9ZSxnO2RbMF0hPT1udWxsP2Y9cyhiWzJdLXMoYVsxXSxhWzNdKSxlKTooZj1zKGJbMl0tYVsxXS1hWzNdLGUpLGJbMF0rPShhWzNdLWFbMV0pLzIpO2RbMV0hPT1udWxsP2Y9cyhFKGYsYlsyXS1zKGFbMF0sYVsyXSkpLGUpOihmPXMoRShmLGJbMl0tYVswXS1hWzJdKSxlKSwKYlsxXSs9KGFbMF0tYVsyXSkvMik7ZjxiWzJdPyhiWzJdPWYsYlszXT1NYXRoLm1pbigvJSQvLnRlc3QoYy5pbm5lclNpemV8fDApP2YqcGFyc2VGbG9hdChjLmlubmVyU2l6ZXx8MCkvMTAwOnBhcnNlRmxvYXQoYy5pbm5lclNpemV8fDApLGYpLHRoaXMudHJhbnNsYXRlKGIpLHRoaXMuZHJhd0RhdGFMYWJlbHMmJnRoaXMuZHJhd0RhdGFMYWJlbHMoKSk6Zz0hMDtyZXR1cm4gZ307aWYoSy5jb2x1bW4pSy5jb2x1bW4ucHJvdG90eXBlLmFsaWduRGF0YUxhYmVsPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9dGhpcy5jaGFydC5pbnZlcnRlZCxnPWEuc2VyaWVzLGg9YS5kbEJveHx8YS5zaGFwZUFyZ3MsaT1wKGEuYmVsb3csYS5wbG90WT5wKHRoaXMudHJhbnNsYXRlZFRocmVzaG9sZCxnLnlBeGlzLmxlbikpLGo9cChjLmluc2lkZSwhIXRoaXMub3B0aW9ucy5zdGFja2luZyk7aWYoaCl7ZD1DKGgpO2lmKGQueTwwKWQuaGVpZ2h0Kz1kLnksZC55PTA7aD1kLnkrZC5oZWlnaHQtZy55QXhpcy5sZW47Cmg+MCYmKGQuaGVpZ2h0LT1oKTtmJiYoZD17eDpnLnlBeGlzLmxlbi1kLnktZC5oZWlnaHQseTpnLnhBeGlzLmxlbi1kLngtZC53aWR0aCx3aWR0aDpkLmhlaWdodCxoZWlnaHQ6ZC53aWR0aH0pO2lmKCFqKWY/KGQueCs9aT8wOmQud2lkdGgsZC53aWR0aD0wKTooZC55Kz1pP2QuaGVpZ2h0OjAsZC5oZWlnaHQ9MCl9Yy5hbGlnbj1wKGMuYWxpZ24sIWZ8fGo/ImNlbnRlciI6aT8icmlnaHQiOiJsZWZ0Iik7Yy52ZXJ0aWNhbEFsaWduPXAoYy52ZXJ0aWNhbEFsaWduLGZ8fGo/Im1pZGRsZSI6aT8idG9wIjoiYm90dG9tIik7UC5wcm90b3R5cGUuYWxpZ25EYXRhTGFiZWwuY2FsbCh0aGlzLGEsYixjLGQsZSl9OyhmdW5jdGlvbihhKXt2YXIgYj1hLkNoYXJ0LGM9YS5lYWNoLGQ9YS5waWNrLGU9YS5hZGRFdmVudDtiLnByb3RvdHlwZS5jYWxsYmFja3MucHVzaChmdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7dmFyIGU9W107YyhhLnNlcmllcyxmdW5jdGlvbihhKXt2YXIgYj1hLm9wdGlvbnMuZGF0YUxhYmVscywKZj1hLmRhdGFMYWJlbENvbGxlY3Rpb25zfHxbImRhdGFMYWJlbCJdOyhiLmVuYWJsZWR8fGEuX2hhc1BvaW50TGFiZWxzKSYmIWIuYWxsb3dPdmVybGFwJiZhLnZpc2libGUmJmMoZixmdW5jdGlvbihiKXtjKGEucG9pbnRzLGZ1bmN0aW9uKGEpe2lmKGFbYl0pYVtiXS5sYWJlbHJhbms9ZChhLmxhYmVscmFuayxhLnNoYXBlQXJncyYmYS5zaGFwZUFyZ3MuaGVpZ2h0KSxlLnB1c2goYVtiXSl9KX0pfSk7YS5oaWRlT3ZlcmxhcHBpbmdMYWJlbHMoZSl9YigpO2UoYSwicmVkcmF3IixiKX0pO2IucHJvdG90eXBlLmhpZGVPdmVybGFwcGluZ0xhYmVscz1mdW5jdGlvbihhKXt2YXIgYj1hLmxlbmd0aCxkLGUsaixrLGwsbSxvLHEscjtmb3IoZT0wO2U8YjtlKyspaWYoZD1hW2VdKWQub2xkT3BhY2l0eT1kLm9wYWNpdHksZC5uZXdPcGFjaXR5PTE7YS5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuKGIubGFiZWxyYW5rfHwwKS0oYS5sYWJlbHJhbmt8fDApfSk7Zm9yKGU9MDtlPGI7ZSsrKXtqPQphW2VdO2ZvcihkPWUrMTtkPGI7KytkKWlmKGs9YVtkXSxqJiZrJiZqLnBsYWNlZCYmay5wbGFjZWQmJmoubmV3T3BhY2l0eSE9PTAmJmsubmV3T3BhY2l0eSE9PTAmJihsPWouYWxpZ25BdHRyLG09ay5hbGlnbkF0dHIsbz1qLnBhcmVudEdyb3VwLHE9ay5wYXJlbnRHcm91cCxyPTIqKGouYm94PzA6ai5wYWRkaW5nKSxsPSEobS54K3EudHJhbnNsYXRlWD5sLngrby50cmFuc2xhdGVYKyhqLndpZHRoLXIpfHxtLngrcS50cmFuc2xhdGVYKyhrLndpZHRoLXIpPGwueCtvLnRyYW5zbGF0ZVh8fG0ueStxLnRyYW5zbGF0ZVk+bC55K28udHJhbnNsYXRlWSsoai5oZWlnaHQtcil8fG0ueStxLnRyYW5zbGF0ZVkrKGsuaGVpZ2h0LXIpPGwueStvLnRyYW5zbGF0ZVkpKSkoai5sYWJlbHJhbms8ay5sYWJlbHJhbms/ajprKS5uZXdPcGFjaXR5PTB9YyhhLGZ1bmN0aW9uKGEpe3ZhciBiLGM7aWYoYSl7Yz1hLm5ld09wYWNpdHk7aWYoYS5vbGRPcGFjaXR5IT09YyYmYS5wbGFjZWQpYz9hLnNob3coITApOgpiPWZ1bmN0aW9uKCl7YS5oaWRlKCl9LGEuYWxpZ25BdHRyLm9wYWNpdHk9YyxhW2EuaXNPbGQ/ImFuaW1hdGUiOiJhdHRyIl0oYS5hbGlnbkF0dHIsbnVsbCxiKTthLmlzT2xkPSEwfX0pfX0pKHopO3ZhciBvYj16LlRyYWNrZXJNaXhpbj17ZHJhd1RyYWNrZXJQb2ludDpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1hLmNoYXJ0LGM9Yi5wb2ludGVyLGQ9YS5vcHRpb25zLmN1cnNvcixlPWQmJntjdXJzb3I6ZH0sZj1mdW5jdGlvbihhKXtmb3IodmFyIGM9YS50YXJnZXQsZDtjJiYhZDspZD1jLnBvaW50LGM9Yy5wYXJlbnROb2RlO2lmKGQhPT11JiZkIT09Yi5ob3ZlclBvaW50KWQub25Nb3VzZU92ZXIoYSl9O24oYS5wb2ludHMsZnVuY3Rpb24oYSl7aWYoYS5ncmFwaGljKWEuZ3JhcGhpYy5lbGVtZW50LnBvaW50PWE7aWYoYS5kYXRhTGFiZWwpYS5kYXRhTGFiZWwuZWxlbWVudC5wb2ludD1hfSk7aWYoIWEuX2hhc1RyYWNraW5nKW4oYS50cmFja2VyR3JvdXBzLGZ1bmN0aW9uKGIpe2lmKGFbYl0mJgooYVtiXS5hZGRDbGFzcygiaGlnaGNoYXJ0cy10cmFja2VyIikub24oIm1vdXNlb3ZlciIsZikub24oIm1vdXNlb3V0IixmdW5jdGlvbihhKXtjLm9uVHJhY2tlck1vdXNlT3V0KGEpfSkuY3NzKGUpLGViKSlhW2JdLm9uKCJ0b3VjaHN0YXJ0IixmKX0pLGEuX2hhc1RyYWNraW5nPSEwfSxkcmF3VHJhY2tlckdyYXBoOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPWEub3B0aW9ucyxjPWIudHJhY2tCeUFyZWEsZD1bXS5jb25jYXQoYz9hLmFyZWFQYXRoOmEuZ3JhcGhQYXRoKSxlPWQubGVuZ3RoLGY9YS5jaGFydCxnPWYucG9pbnRlcixoPWYucmVuZGVyZXIsaT1mLm9wdGlvbnMudG9vbHRpcC5zbmFwLGo9YS50cmFja2VyLGs9Yi5jdXJzb3IsbD1rJiZ7Y3Vyc29yOmt9LG09ZnVuY3Rpb24oKXtpZihmLmhvdmVyU2VyaWVzIT09YSlhLm9uTW91c2VPdmVyKCl9LG89InJnYmEoMTkyLDE5MiwxOTIsIisoaGE/MS4wRS00OjAuMDAyKSsiKSI7aWYoZSYmIWMpZm9yKGs9ZSsxO2stLTspZFtrXT09PQoiTSImJmQuc3BsaWNlKGsrMSwwLGRbaysxXS1pLGRbaysyXSwiTCIpLChrJiZkW2tdPT09Ik0ifHxrPT09ZSkmJmQuc3BsaWNlKGssMCwiTCIsZFtrLTJdK2ksZFtrLTFdKTtqP2ouYXR0cih7ZDpkfSk6KGEudHJhY2tlcj1oLnBhdGgoZCkuYXR0cih7InN0cm9rZS1saW5lam9pbiI6InJvdW5kIix2aXNpYmlsaXR5OmEudmlzaWJsZT8idmlzaWJsZSI6ImhpZGRlbiIsc3Ryb2tlOm8sZmlsbDpjP286Im5vbmUiLCJzdHJva2Utd2lkdGgiOmIubGluZVdpZHRoKyhjPzA6MippKSx6SW5kZXg6Mn0pLmFkZChhLmdyb3VwKSxuKFthLnRyYWNrZXIsYS5tYXJrZXJHcm91cF0sZnVuY3Rpb24oYSl7YS5hZGRDbGFzcygiaGlnaGNoYXJ0cy10cmFja2VyIikub24oIm1vdXNlb3ZlciIsbSkub24oIm1vdXNlb3V0IixmdW5jdGlvbihhKXtnLm9uVHJhY2tlck1vdXNlT3V0KGEpfSkuY3NzKGwpO2lmKGViKWEub24oInRvdWNoc3RhcnQiLG0pfSkpfX07aWYoSy5jb2x1bW4pSWEucHJvdG90eXBlLmRyYXdUcmFja2VyPQpvYi5kcmF3VHJhY2tlclBvaW50O2lmKEsucGllKUsucGllLnByb3RvdHlwZS5kcmF3VHJhY2tlcj1vYi5kcmF3VHJhY2tlclBvaW50O2lmKEsuc2NhdHRlcil5YS5wcm90b3R5cGUuZHJhd1RyYWNrZXI9b2IuZHJhd1RyYWNrZXJQb2ludDt3KHZiLnByb3RvdHlwZSx7c2V0SXRlbUV2ZW50czpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPXRoaXM7KGM/YjphLmxlZ2VuZEdyb3VwKS5vbigibW91c2VvdmVyIixmdW5jdGlvbigpe2Euc2V0U3RhdGUoImhvdmVyIik7Yi5jc3MoZi5vcHRpb25zLml0ZW1Ib3ZlclN0eWxlKX0pLm9uKCJtb3VzZW91dCIsZnVuY3Rpb24oKXtiLmNzcyhhLnZpc2libGU/ZDplKTthLnNldFN0YXRlKCl9KS5vbigiY2xpY2siLGZ1bmN0aW9uKGIpe3ZhciBjPWZ1bmN0aW9uKCl7YS5zZXRWaXNpYmxlJiZhLnNldFZpc2libGUoKX0sYj17YnJvd3NlckV2ZW50OmJ9O2EuZmlyZVBvaW50RXZlbnQ/YS5maXJlUG9pbnRFdmVudCgibGVnZW5kSXRlbUNsaWNrIixiLGMpOgpNKGEsImxlZ2VuZEl0ZW1DbGljayIsYixjKX0pfSxjcmVhdGVDaGVja2JveEZvckl0ZW06ZnVuY3Rpb24oYSl7YS5jaGVja2JveD1jYSgiaW5wdXQiLHt0eXBlOiJjaGVja2JveCIsY2hlY2tlZDphLnNlbGVjdGVkLGRlZmF1bHRDaGVja2VkOmEuc2VsZWN0ZWR9LHRoaXMub3B0aW9ucy5pdGVtQ2hlY2tib3hTdHlsZSx0aGlzLmNoYXJ0LmNvbnRhaW5lcik7RChhLmNoZWNrYm94LCJjbGljayIsZnVuY3Rpb24oYil7TShhLnNlcmllc3x8YSwiY2hlY2tib3hDbGljayIse2NoZWNrZWQ6Yi50YXJnZXQuY2hlY2tlZCxpdGVtOmF9LGZ1bmN0aW9uKCl7YS5zZWxlY3QoKX0pfSl9fSk7Ty5sZWdlbmQuaXRlbVN0eWxlLmN1cnNvcj0icG9pbnRlciI7dyhDYS5wcm90b3R5cGUse3Nob3dSZXNldFpvb206ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9Ty5sYW5nLGM9YS5vcHRpb25zLmNoYXJ0LnJlc2V0Wm9vbUJ1dHRvbixkPWMudGhlbWUsZT1kLnN0YXRlcyxmPWMucmVsYXRpdmVUbz09PSJjaGFydCI/Cm51bGw6InBsb3RCb3giO3RoaXMucmVzZXRab29tQnV0dG9uPWEucmVuZGVyZXIuYnV0dG9uKGIucmVzZXRab29tLG51bGwsbnVsbCxmdW5jdGlvbigpe2Euem9vbU91dCgpfSxkLGUmJmUuaG92ZXIpLmF0dHIoe2FsaWduOmMucG9zaXRpb24uYWxpZ24sdGl0bGU6Yi5yZXNldFpvb21UaXRsZX0pLmFkZCgpLmFsaWduKGMucG9zaXRpb24sITEsZil9LHpvb21PdXQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO00oYSwic2VsZWN0aW9uIix7cmVzZXRTZWxlY3Rpb246ITB9LGZ1bmN0aW9uKCl7YS56b29tKCl9KX0sem9vbTpmdW5jdGlvbihhKXt2YXIgYixjPXRoaXMucG9pbnRlcixkPSExLGU7IWF8fGEucmVzZXRTZWxlY3Rpb24/bih0aGlzLmF4ZXMsZnVuY3Rpb24oYSl7Yj1hLnpvb20oKX0pOm4oYS54QXhpcy5jb25jYXQoYS55QXhpcyksZnVuY3Rpb24oYSl7dmFyIGU9YS5heGlzLGg9ZS5pc1hBeGlzO2lmKGNbaD8iem9vbVgiOiJ6b29tWSJdfHxjW2g/InBpbmNoWCI6InBpbmNoWSJdKWI9CmUuem9vbShhLm1pbixhLm1heCksZS5kaXNwbGF5QnRuJiYoZD0hMCl9KTtlPXRoaXMucmVzZXRab29tQnV0dG9uO2lmKGQmJiFlKXRoaXMuc2hvd1Jlc2V0Wm9vbSgpO2Vsc2UgaWYoIWQmJmZhKGUpKXRoaXMucmVzZXRab29tQnV0dG9uPWUuZGVzdHJveSgpO2ImJnRoaXMucmVkcmF3KHAodGhpcy5vcHRpb25zLmNoYXJ0LmFuaW1hdGlvbixhJiZhLmFuaW1hdGlvbix0aGlzLnBvaW50Q291bnQ8MTAwKSl9LHBhbjpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMsZD1jLmhvdmVyUG9pbnRzLGU7ZCYmbihkLGZ1bmN0aW9uKGEpe2Euc2V0U3RhdGUoKX0pO24oYj09PSJ4eSI/WzEsMF06WzFdLGZ1bmN0aW9uKGIpe3ZhciBiPWNbYj8ieEF4aXMiOiJ5QXhpcyJdWzBdLGQ9Yi5ob3JpeixoPWFbZD8iY2hhcnRYIjoiY2hhcnRZIl0sZD1kPyJtb3VzZURvd25YIjoibW91c2VEb3duWSIsaT1jW2RdLGo9KGIucG9pbnRSYW5nZXx8MCkvMixrPWIuZ2V0RXh0cmVtZXMoKSxsPWIudG9WYWx1ZShpLQpoLCEwKStqLGo9Yi50b1ZhbHVlKGkrYi5sZW4taCwhMCktaixpPWk+aDtpZihiLnNlcmllcy5sZW5ndGgmJihpfHxsPkUoay5kYXRhTWluLGsubWluKSkmJighaXx8ajxzKGsuZGF0YU1heCxrLm1heCkpKWIuc2V0RXh0cmVtZXMobCxqLCExLCExLHt0cmlnZ2VyOiJwYW4ifSksZT0hMDtjW2RdPWh9KTtlJiZjLnJlZHJhdyghMSk7SShjLmNvbnRhaW5lcix7Y3Vyc29yOiJtb3ZlIn0pfX0pO3coSGEucHJvdG90eXBlLHtzZWxlY3Q6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLGQ9Yy5zZXJpZXMsZT1kLmNoYXJ0LGE9cChhLCFjLnNlbGVjdGVkKTtjLmZpcmVQb2ludEV2ZW50KGE/InNlbGVjdCI6InVuc2VsZWN0Iix7YWNjdW11bGF0ZTpifSxmdW5jdGlvbigpe2Muc2VsZWN0ZWQ9Yy5vcHRpb25zLnNlbGVjdGVkPWE7ZC5vcHRpb25zLmRhdGFbcmEoYyxkLmRhdGEpXT1jLm9wdGlvbnM7Yy5zZXRTdGF0ZShhJiYic2VsZWN0Iik7Ynx8bihlLmdldFNlbGVjdGVkUG9pbnRzKCksZnVuY3Rpb24oYSl7aWYoYS5zZWxlY3RlZCYmCmEhPT1jKWEuc2VsZWN0ZWQ9YS5vcHRpb25zLnNlbGVjdGVkPSExLGQub3B0aW9ucy5kYXRhW3JhKGEsZC5kYXRhKV09YS5vcHRpb25zLGEuc2V0U3RhdGUoIiIpLGEuZmlyZVBvaW50RXZlbnQoInVuc2VsZWN0Iil9KX0pfSxvbk1vdXNlT3ZlcjpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuc2VyaWVzLGQ9Yy5jaGFydCxlPWQudG9vbHRpcCxmPWQuaG92ZXJQb2ludDtpZihkLmhvdmVyU2VyaWVzIT09YyljLm9uTW91c2VPdmVyKCk7aWYoZiYmZiE9PXRoaXMpZi5vbk1vdXNlT3V0KCk7aWYodGhpcy5zZXJpZXMmJih0aGlzLmZpcmVQb2ludEV2ZW50KCJtb3VzZU92ZXIiKSxlJiYoIWUuc2hhcmVkfHxjLm5vU2hhcmVkVG9vbHRpcCkmJmUucmVmcmVzaCh0aGlzLGEpLHRoaXMuc2V0U3RhdGUoImhvdmVyIiksIWIpKWQuaG92ZXJQb2ludD10aGlzfSxvbk1vdXNlT3V0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5zZXJpZXMuY2hhcnQsYj1hLmhvdmVyUG9pbnRzO3RoaXMuZmlyZVBvaW50RXZlbnQoIm1vdXNlT3V0Iik7CmlmKCFifHxyYSh0aGlzLGIpPT09LTEpdGhpcy5zZXRTdGF0ZSgpLGEuaG92ZXJQb2ludD1udWxsfSxpbXBvcnRFdmVudHM6ZnVuY3Rpb24oKXtpZighdGhpcy5oYXNJbXBvcnRlZEV2ZW50cyl7dmFyIGE9Qyh0aGlzLnNlcmllcy5vcHRpb25zLnBvaW50LHRoaXMub3B0aW9ucykuZXZlbnRzLGI7dGhpcy5ldmVudHM9YTtmb3IoYiBpbiBhKUQodGhpcyxiLGFbYl0pO3RoaXMuaGFzSW1wb3J0ZWRFdmVudHM9ITB9fSxzZXRTdGF0ZTpmdW5jdGlvbihhLGIpe3ZhciBjPVUodGhpcy5wbG90WCksZD10aGlzLnBsb3RZLGU9dGhpcy5zZXJpZXMsZj1lLm9wdGlvbnMuc3RhdGVzLGc9VltlLnR5cGVdLm1hcmtlciYmZS5vcHRpb25zLm1hcmtlcixoPWcmJiFnLmVuYWJsZWQsaT1nJiZnLnN0YXRlc1thXSxqPWkmJmkuZW5hYmxlZD09PSExLGs9ZS5zdGF0ZU1hcmtlckdyYXBoaWMsbD10aGlzLm1hcmtlcnx8e30sbT1lLmNoYXJ0LG89ZS5oYWxvLHEsYT1hfHwiIjtxPXRoaXMucG9pbnRBdHRyW2FdfHwKZS5wb2ludEF0dHJbYV07aWYoIShhPT09dGhpcy5zdGF0ZSYmIWJ8fHRoaXMuc2VsZWN0ZWQmJmEhPT0ic2VsZWN0Inx8ZlthXSYmZlthXS5lbmFibGVkPT09ITF8fGEmJihqfHxoJiZpLmVuYWJsZWQ9PT0hMSl8fGEmJmwuc3RhdGVzJiZsLnN0YXRlc1thXSYmbC5zdGF0ZXNbYV0uZW5hYmxlZD09PSExKSl7aWYodGhpcy5ncmFwaGljKWc9ZyYmdGhpcy5ncmFwaGljLnN5bWJvbE5hbWUmJnEucix0aGlzLmdyYXBoaWMuYXR0cihDKHEsZz97eDpjLWcseTpkLWcsd2lkdGg6MipnLGhlaWdodDoyKmd9Ont9KSksayYmay5oaWRlKCk7ZWxzZXtpZihhJiZpKWlmKGc9aS5yYWRpdXMsbD1sLnN5bWJvbHx8ZS5zeW1ib2wsayYmay5jdXJyZW50U3ltYm9sIT09bCYmKGs9ay5kZXN0cm95KCkpLGspa1tiPyJhbmltYXRlIjoiYXR0ciJdKHt4OmMtZyx5OmQtZ30pO2Vsc2UgaWYobCllLnN0YXRlTWFya2VyR3JhcGhpYz1rPW0ucmVuZGVyZXIuc3ltYm9sKGwsYy1nLGQtZywyKmcsMipnKS5hdHRyKHEpLmFkZChlLm1hcmtlckdyb3VwKSwKay5jdXJyZW50U3ltYm9sPWw7aWYoaylrW2EmJm0uaXNJbnNpZGVQbG90KGMsZCxtLmludmVydGVkKT8ic2hvdyI6ImhpZGUiXSgpLGsuZWxlbWVudC5wb2ludD10aGlzfWlmKChjPWZbYV0mJmZbYV0uaGFsbykmJmMuc2l6ZSl7aWYoIW8pZS5oYWxvPW89bS5yZW5kZXJlci5wYXRoKCkuYWRkKG0uc2VyaWVzR3JvdXApO28uYXR0cih3KHtmaWxsOnRoaXMuY29sb3J8fGUuY29sb3IsImZpbGwtb3BhY2l0eSI6Yy5vcGFjaXR5LHpJbmRleDotMX0sYy5hdHRyaWJ1dGVzKSlbYj8iYW5pbWF0ZSI6ImF0dHIiXSh7ZDp0aGlzLmhhbG9QYXRoKGMuc2l6ZSl9KX1lbHNlIG8mJm8uYXR0cih7ZDpbXX0pO3RoaXMuc3RhdGU9YX19LGhhbG9QYXRoOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuc2VyaWVzLGM9Yi5jaGFydCxkPWIuZ2V0UGxvdEJveCgpLGU9Yy5pbnZlcnRlZCxmPU1hdGguZmxvb3IodGhpcy5wbG90WCk7cmV0dXJuIGMucmVuZGVyZXIuc3ltYm9scy5jaXJjbGUoZC50cmFuc2xhdGVYKwooZT9iLnlBeGlzLmxlbi10aGlzLnBsb3RZOmYpLWEsZC50cmFuc2xhdGVZKyhlP2IueEF4aXMubGVuLWY6dGhpcy5wbG90WSktYSxhKjIsYSoyKX19KTt3KFAucHJvdG90eXBlLHtvbk1vdXNlT3ZlcjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuY2hhcnQsYj1hLmhvdmVyU2VyaWVzO2lmKGImJmIhPT10aGlzKWIub25Nb3VzZU91dCgpO3RoaXMub3B0aW9ucy5ldmVudHMubW91c2VPdmVyJiZNKHRoaXMsIm1vdXNlT3ZlciIpO3RoaXMuc2V0U3RhdGUoImhvdmVyIik7YS5ob3ZlclNlcmllcz10aGlzfSxvbk1vdXNlT3V0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcHRpb25zLGI9dGhpcy5jaGFydCxjPWIudG9vbHRpcCxkPWIuaG92ZXJQb2ludDtiLmhvdmVyU2VyaWVzPW51bGw7aWYoZClkLm9uTW91c2VPdXQoKTt0aGlzJiZhLmV2ZW50cy5tb3VzZU91dCYmTSh0aGlzLCJtb3VzZU91dCIpO2MmJiFhLnN0aWNreVRyYWNraW5nJiYoIWMuc2hhcmVkfHx0aGlzLm5vU2hhcmVkVG9vbHRpcCkmJgpjLmhpZGUoKTt0aGlzLnNldFN0YXRlKCl9LHNldFN0YXRlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMub3B0aW9ucyxjPXRoaXMuZ3JhcGgsZD1iLnN0YXRlcyxlPWIubGluZVdpZHRoLGI9MCxhPWF8fCIiO2lmKHRoaXMuc3RhdGUhPT1hJiYodGhpcy5zdGF0ZT1hLCEoZFthXSYmZFthXS5lbmFibGVkPT09ITEpJiYoYSYmKGU9ZFthXS5saW5lV2lkdGh8fGUrKGRbYV0ubGluZVdpZHRoUGx1c3x8MCkpLGMmJiFjLmRhc2hzdHlsZSkpKXthPXsic3Ryb2tlLXdpZHRoIjplfTtmb3IoYy5hdHRyKGEpO3RoaXNbInpvbmVHcmFwaCIrYl07KXRoaXNbInpvbmVHcmFwaCIrYl0uYXR0cihhKSxiKz0xfX0sc2V0VmlzaWJsZTpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMsZD1jLmNoYXJ0LGU9Yy5sZWdlbmRJdGVtLGYsZz1kLm9wdGlvbnMuY2hhcnQuaWdub3JlSGlkZGVuU2VyaWVzLGg9Yy52aXNpYmxlO2Y9KGMudmlzaWJsZT1hPWMudXNlck9wdGlvbnMudmlzaWJsZT1hPT09dT8haDphKT8ic2hvdyI6CiJoaWRlIjtuKFsiZ3JvdXAiLCJkYXRhTGFiZWxzR3JvdXAiLCJtYXJrZXJHcm91cCIsInRyYWNrZXIiXSxmdW5jdGlvbihhKXtpZihjW2FdKWNbYV1bZl0oKX0pO2lmKGQuaG92ZXJTZXJpZXM9PT1jfHwoZC5ob3ZlclBvaW50JiZkLmhvdmVyUG9pbnQuc2VyaWVzKT09PWMpYy5vbk1vdXNlT3V0KCk7ZSYmZC5sZWdlbmQuY29sb3JpemVJdGVtKGMsYSk7Yy5pc0RpcnR5PSEwO2Mub3B0aW9ucy5zdGFja2luZyYmbihkLnNlcmllcyxmdW5jdGlvbihhKXtpZihhLm9wdGlvbnMuc3RhY2tpbmcmJmEudmlzaWJsZSlhLmlzRGlydHk9ITB9KTtuKGMubGlua2VkU2VyaWVzLGZ1bmN0aW9uKGIpe2Iuc2V0VmlzaWJsZShhLCExKX0pO2lmKGcpZC5pc0RpcnR5Qm94PSEwO2IhPT0hMSYmZC5yZWRyYXcoKTtNKGMsZil9LHNob3c6ZnVuY3Rpb24oKXt0aGlzLnNldFZpc2libGUoITApfSxoaWRlOmZ1bmN0aW9uKCl7dGhpcy5zZXRWaXNpYmxlKCExKX0sc2VsZWN0OmZ1bmN0aW9uKGEpe3RoaXMuc2VsZWN0ZWQ9CmE9YT09PXU/IXRoaXMuc2VsZWN0ZWQ6YTtpZih0aGlzLmNoZWNrYm94KXRoaXMuY2hlY2tib3guY2hlY2tlZD1hO00odGhpcyxhPyJzZWxlY3QiOiJ1bnNlbGVjdCIpfSxkcmF3VHJhY2tlcjpvYi5kcmF3VHJhY2tlckdyYXBofSk7UyhQLnByb3RvdHlwZSwiaW5pdCIsZnVuY3Rpb24oYSl7dmFyIGI7YS5hcHBseSh0aGlzLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSk7KGI9dGhpcy54QXhpcykmJmIub3B0aW9ucy5vcmRpbmFsJiZEKHRoaXMsInVwZGF0ZWREYXRhIixmdW5jdGlvbigpe2RlbGV0ZSBiLm9yZGluYWxJbmRleH0pfSk7UyhGLnByb3RvdHlwZSwiZ2V0VGltZVRpY2tzIixmdW5jdGlvbihhLGIsYyxkLGUsZixnLGgpe3ZhciBpPTAsaixrLGw9e30sbSxvLHEscj1bXSxuPS1OdW1iZXIuTUFYX1ZBTFVFLHA9dGhpcy5vcHRpb25zLnRpY2tQaXhlbEludGVydmFsO2lmKCF0aGlzLm9wdGlvbnMub3JkaW5hbCYmIXRoaXMub3B0aW9ucy5icmVha3N8fAohZnx8Zi5sZW5ndGg8M3x8Yz09PXUpcmV0dXJuIGEuY2FsbCh0aGlzLGIsYyxkLGUpO289Zi5sZW5ndGg7Zm9yKGo9MDtqPG87aisrKXtxPWomJmZbai0xXT5kO2Zbal08YyYmKGk9aik7aWYoaj09PW8tMXx8ZltqKzFdLWZbal0+Zyo1fHxxKXtpZihmW2pdPm4pe2ZvcihrPWEuY2FsbCh0aGlzLGIsZltpXSxmW2pdLGUpO2subGVuZ3RoJiZrWzBdPD1uOylrLnNoaWZ0KCk7ay5sZW5ndGgmJihuPWtbay5sZW5ndGgtMV0pO3I9ci5jb25jYXQoayl9aT1qKzF9aWYocSlicmVha31hPWsuaW5mbztpZihoJiZhLnVuaXRSYW5nZTw9SC5ob3VyKXtqPXIubGVuZ3RoLTE7Zm9yKGk9MTtpPGo7aSsrKWxhKCIlZCIscltpXSkhPT1sYSgiJWQiLHJbaS0xXSkmJihsW3JbaV1dPSJkYXkiLG09ITApO20mJihsW3JbMF1dPSJkYXkiKTthLmhpZ2hlclJhbmtzPWx9ci5pbmZvPWE7aWYoaCYmdChwKSl7aD1hPXIubGVuZ3RoO2o9W107dmFyIHY7Zm9yKG09W107aC0tOylpPXRoaXMudHJhbnNsYXRlKHJbaF0pLAp2JiYobVtoXT12LWkpLGpbaF09dj1pO20uc29ydCgpO209bVtVKG0ubGVuZ3RoLzIpXTttPHAqMC42JiYobT1udWxsKTtoPXJbYS0xXT5kP2EtMTphO2Zvcih2PXZvaWQgMDtoLS07KWk9altoXSxkPXYtaSx2JiZkPHAqMC44JiYobT09PW51bGx8fGQ8bSowLjgpPyhsW3JbaF1dJiYhbFtyW2grMV1dPyhkPWgrMSx2PWkpOmQ9aCxyLnNwbGljZShkLDEpKTp2PWl9cmV0dXJuIHJ9KTt3KEYucHJvdG90eXBlLHtiZWZvcmVTZXRUaWNrUG9zaXRpb25zOmZ1bmN0aW9uKCl7dmFyIGEsYj1bXSxjPSExLGQsZT10aGlzLmdldEV4dHJlbWVzKCksZj1lLm1pbixnPWUubWF4LGgsaT10aGlzLmlzWEF4aXMmJiEhdGhpcy5vcHRpb25zLmJyZWFrcztpZigoZT10aGlzLm9wdGlvbnMub3JkaW5hbCl8fGkpe24odGhpcy5zZXJpZXMsZnVuY3Rpb24oYyxkKXtpZihjLnZpc2libGUhPT0hMSYmKGMudGFrZU9yZGluYWxQb3NpdGlvbiE9PSExfHxpKSlpZihiPWIuY29uY2F0KGMucHJvY2Vzc2VkWERhdGEpLAphPWIubGVuZ3RoLGIuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhLWJ9KSxhKWZvcihkPWEtMTtkLS07KWJbZF09PT1iW2QrMV0mJmIuc3BsaWNlKGQsMSl9KTthPWIubGVuZ3RoO2lmKGE+Mil7ZD1iWzFdLWJbMF07Zm9yKGg9YS0xO2gtLSYmIWM7KWJbaCsxXS1iW2hdIT09ZCYmKGM9ITApO2lmKCF0aGlzLm9wdGlvbnMua2VlcE9yZGluYWxQYWRkaW5nJiYoYlswXS1mPmR8fGctYltiLmxlbmd0aC0xXT5kKSljPSEwfWM/KHRoaXMub3JkaW5hbFBvc2l0aW9ucz1iLGQ9dGhpcy52YWwybGluKHMoZixiWzBdKSwhMCksaD1zKHRoaXMudmFsMmxpbihFKGcsYltiLmxlbmd0aC0xXSksITApLDEpLHRoaXMub3JkaW5hbFNsb3BlPWc9KGctZikvKGgtZCksdGhpcy5vcmRpbmFsT2Zmc2V0PWYtZCpnKTp0aGlzLm9yZGluYWxQb3NpdGlvbnM9dGhpcy5vcmRpbmFsU2xvcGU9dGhpcy5vcmRpbmFsT2Zmc2V0PXV9dGhpcy5pc09yZGluYWw9ZSYmYzt0aGlzLmdyb3VwSW50ZXJ2YWxGYWN0b3I9Cm51bGx9LHZhbDJsaW46ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLm9yZGluYWxQb3NpdGlvbnMsZDtpZihjKXt2YXIgZT1jLmxlbmd0aCxmO2ZvcihkPWU7ZC0tOylpZihjW2RdPT09YSl7Zj1kO2JyZWFrfWZvcihkPWUtMTtkLS07KWlmKGE+Y1tkXXx8ZD09PTApe2M9KGEtY1tkXSkvKGNbZCsxXS1jW2RdKTtmPWQrYzticmVha31kPWI/Zjp0aGlzLm9yZGluYWxTbG9wZSooZnx8MCkrdGhpcy5vcmRpbmFsT2Zmc2V0fWVsc2UgZD1hO3JldHVybiBkfSxsaW4ydmFsOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5vcmRpbmFsUG9zaXRpb25zO2lmKGMpe3ZhciBkPXRoaXMub3JkaW5hbFNsb3BlLGU9dGhpcy5vcmRpbmFsT2Zmc2V0LGY9Yy5sZW5ndGgtMSxnLGg7aWYoYilhPDA/YT1jWzBdOmE+Zj9hPWNbZl06KGY9VShhKSxoPWEtZik7ZWxzZSBmb3IoO2YtLTspaWYoZz1kKmYrZSxhPj1nKXtkPWQqKGYrMSkrZTtoPShhLWcpLyhkLWcpO2JyZWFrfWM9aCE9PXUmJmNbZl0hPT11P2NbZl0rCihoP2gqKGNbZisxXS1jW2ZdKTowKTphfWVsc2UgYz1hO3JldHVybiBjfSxnZXRFeHRlbmRlZFBvc2l0aW9uczpmdW5jdGlvbigpe3ZhciBhPXRoaXMuY2hhcnQsYj10aGlzLnNlcmllc1swXS5jdXJyZW50RGF0YUdyb3VwaW5nLGM9dGhpcy5vcmRpbmFsSW5kZXgsZD1iP2IuY291bnQrYi51bml0TmFtZToicmF3IixlPXRoaXMuZ2V0RXh0cmVtZXMoKSxmLGc7aWYoIWMpYz10aGlzLm9yZGluYWxJbmRleD17fTtpZighY1tkXSlmPXtzZXJpZXM6W10sZ2V0RXh0cmVtZXM6ZnVuY3Rpb24oKXtyZXR1cm57bWluOmUuZGF0YU1pbixtYXg6ZS5kYXRhTWF4fX0sb3B0aW9uczp7b3JkaW5hbDohMH0sdmFsMmxpbjpGLnByb3RvdHlwZS52YWwybGlufSxuKHRoaXMuc2VyaWVzLGZ1bmN0aW9uKGMpe2c9e3hBeGlzOmYseERhdGE6Yy54RGF0YSxjaGFydDphLGRlc3Ryb3lHcm91cGVkRGF0YTpxYX07Zy5vcHRpb25zPXtkYXRhR3JvdXBpbmc6Yj97ZW5hYmxlZDohMCxmb3JjZWQ6ITAsYXBwcm94aW1hdGlvbjoib3BlbiIsCnVuaXRzOltbYi51bml0TmFtZSxbYi5jb3VudF1dXX06e2VuYWJsZWQ6ITF9fTtjLnByb2Nlc3NEYXRhLmFwcGx5KGcpO2Yuc2VyaWVzLnB1c2goZyl9KSx0aGlzLmJlZm9yZVNldFRpY2tQb3NpdGlvbnMuYXBwbHkoZiksY1tkXT1mLm9yZGluYWxQb3NpdGlvbnM7cmV0dXJuIGNbZF19LGdldEdyb3VwSW50ZXJ2YWxGYWN0b3I6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGM9Yy5wcm9jZXNzZWRYRGF0YSxlPWMubGVuZ3RoLGY9W107ZD10aGlzLmdyb3VwSW50ZXJ2YWxGYWN0b3I7aWYoIWQpe2ZvcihkPTA7ZDxlLTE7ZCsrKWZbZF09Y1tkKzFdLWNbZF07Zi5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEtYn0pO2Y9ZltVKGUvMildO2E9cyhhLGNbMF0pO2I9RShiLGNbZS0xXSk7dGhpcy5ncm91cEludGVydmFsRmFjdG9yPWQ9ZSpmLyhiLWEpfXJldHVybiBkfSxwb3N0UHJvY2Vzc1RpY2tJbnRlcnZhbDpmdW5jdGlvbihhKXt2YXIgYj10aGlzLm9yZGluYWxTbG9wZTtyZXR1cm4gYj90aGlzLm9wdGlvbnMuYnJlYWtzPwp0aGlzLmNsb3Nlc3RQb2ludFJhbmdlOmEvKGIvdGhpcy5jbG9zZXN0UG9pbnRSYW5nZSk6YX19KTtTKENhLnByb3RvdHlwZSwicGFuIixmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMueEF4aXNbMF0sZD1iLmNoYXJ0WCxlPSExO2lmKGMub3B0aW9ucy5vcmRpbmFsJiZjLnNlcmllcy5sZW5ndGgpe3ZhciBmPXRoaXMubW91c2VEb3duWCxnPWMuZ2V0RXh0cmVtZXMoKSxoPWcuZGF0YU1heCxpPWcubWluLGo9Zy5tYXgsaz10aGlzLmhvdmVyUG9pbnRzLGw9Yy5jbG9zZXN0UG9pbnRSYW5nZSxmPShmLWQpLyhjLnRyYW5zbGF0aW9uU2xvcGUqKGMub3JkaW5hbFNsb3BlfHxsKSksbT17b3JkaW5hbFBvc2l0aW9uczpjLmdldEV4dGVuZGVkUG9zaXRpb25zKCl9LGw9Yy5saW4ydmFsLG89Yy52YWwybGluLHE7aWYobS5vcmRpbmFsUG9zaXRpb25zKXtpZihRKGYpPjEpayYmbihrLGZ1bmN0aW9uKGEpe2Euc2V0U3RhdGUoKX0pLGY8MD8oaz1tLHE9Yy5vcmRpbmFsUG9zaXRpb25zP2M6bSk6KGs9CmMub3JkaW5hbFBvc2l0aW9ucz9jOm0scT1tKSxtPXEub3JkaW5hbFBvc2l0aW9ucyxoPm1bbS5sZW5ndGgtMV0mJm0ucHVzaChoKSx0aGlzLmZpeGVkUmFuZ2U9ai1pLGY9Yy50b0ZpeGVkUmFuZ2UobnVsbCxudWxsLGwuYXBwbHkoayxbby5hcHBseShrLFtpLCEwXSkrZiwhMF0pLGwuYXBwbHkocSxbby5hcHBseShxLFtqLCEwXSkrZiwhMF0pKSxmLm1pbj49RShnLmRhdGFNaW4saSkmJmYubWF4PD1zKGgsaikmJmMuc2V0RXh0cmVtZXMoZi5taW4sZi5tYXgsITAsITEse3RyaWdnZXI6InBhbiJ9KSx0aGlzLm1vdXNlRG93blg9ZCxJKHRoaXMuY29udGFpbmVyLHtjdXJzb3I6Im1vdmUifSl9ZWxzZSBlPSEwfWVsc2UgZT0hMDtlJiZhLmFwcGx5KHRoaXMsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKX0pO1AucHJvdG90eXBlLmdhcHBlZFBhdGg9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9wdGlvbnMuZ2FwU2l6ZSxiPXRoaXMueEF4aXMsYz10aGlzLnBvaW50cy5zbGljZSgpLApkPWMubGVuZ3RoLTE7aWYoYSYmZD4wKWZvcig7ZC0tOyljW2QrMV0ueC1jW2RdLng+Yi5jbG9zZXN0UG9pbnRSYW5nZSphJiZjLnNwbGljZShkKzEsMCx7aXNOdWxsOiEwfSk7cmV0dXJuIHRoaXMuZ2V0R3JhcGhQYXRoKGMpfTsoZnVuY3Rpb24oYSl7YSh6KX0pKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpfWZ1bmN0aW9uIGMoYSl7YS5hcHBseSh0aGlzKTt0aGlzLmRyYXdCcmVha3MoKX12YXIgZD1hLnBpY2ssZT1hLndyYXAsZj1hLmVhY2gsZz1hLmV4dGVuZCxoPWEuZmlyZUV2ZW50LGk9YS5BeGlzLGo9YS5TZXJpZXM7ZyhpLnByb3RvdHlwZSx7aXNJbkJyZWFrOmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5yZXBlYXR8fEluZmluaXR5LGQ9YS5mcm9tLGU9YS50by1hLmZyb20sYz1iPj1kPyhiLWQpJWM6Yy0oZC1iKSVjO3JldHVybiBhLmluY2x1c2l2ZT9jPD1lOmM8ZSYmYyE9PTB9LGlzSW5BbnlCcmVhazpmdW5jdGlvbihhLApiKXt2YXIgYz10aGlzLm9wdGlvbnMuYnJlYWtzLGU9YyYmYy5sZW5ndGgsZixnLGg7aWYoZSl7Zm9yKDtlLS07KXRoaXMuaXNJbkJyZWFrKGNbZV0sYSkmJihmPSEwLGd8fChnPWQoY1tlXS5zaG93UG9pbnRzLHRoaXMuaXNYQXhpcz8hMTohMCkpKTtoPWYmJmI/ZiYmIWc6Zn1yZXR1cm4gaH19KTtlKGkucHJvdG90eXBlLCJzZXRUaWNrUG9zaXRpb25zIixmdW5jdGlvbihhKXthLmFwcGx5KHRoaXMsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKTtpZih0aGlzLm9wdGlvbnMuYnJlYWtzKXt2YXIgYj10aGlzLnRpY2tQb3NpdGlvbnMsYz10aGlzLnRpY2tQb3NpdGlvbnMuaW5mbyxkPVtdLGU7Zm9yKGU9MDtlPGIubGVuZ3RoO2UrKyl0aGlzLmlzSW5BbnlCcmVhayhiW2VdKXx8ZC5wdXNoKGJbZV0pO3RoaXMudGlja1Bvc2l0aW9ucz1kO3RoaXMudGlja1Bvc2l0aW9ucy5pbmZvPWN9fSk7ZShpLnByb3RvdHlwZSwiaW5pdCIsZnVuY3Rpb24oYSxiLGMpe2lmKGMuYnJlYWtzJiYKYy5icmVha3MubGVuZ3RoKWMub3JkaW5hbD0hMTthLmNhbGwodGhpcyxiLGMpO2lmKHRoaXMub3B0aW9ucy5icmVha3Mpe3ZhciBkPXRoaXM7ZC5pc0Jyb2tlbj0hMDt0aGlzLnZhbDJsaW49ZnVuY3Rpb24oYSl7dmFyIGI9YSxjLGU7Zm9yKGU9MDtlPGQuYnJlYWtBcnJheS5sZW5ndGg7ZSsrKWlmKGM9ZC5icmVha0FycmF5W2VdLGMudG88PWEpYi09Yy5sZW47ZWxzZSBpZihjLmZyb20+PWEpYnJlYWs7ZWxzZSBpZihkLmlzSW5CcmVhayhjLGEpKXtiLT1hLWMuZnJvbTticmVha31yZXR1cm4gYn07dGhpcy5saW4ydmFsPWZ1bmN0aW9uKGEpe3ZhciBiLGM7Zm9yKGM9MDtjPGQuYnJlYWtBcnJheS5sZW5ndGg7YysrKWlmKGI9ZC5icmVha0FycmF5W2NdLGIuZnJvbT49YSlicmVhaztlbHNlIGIudG88YT9hKz1iLmxlbjpkLmlzSW5CcmVhayhiLGEpJiYoYSs9Yi5sZW4pO3JldHVybiBhfTt0aGlzLnNldEV4dHJlbWVzPWZ1bmN0aW9uKGEsYixjLGQsZSl7Zm9yKDt0aGlzLmlzSW5BbnlCcmVhayhhKTspYS09CnRoaXMuY2xvc2VzdFBvaW50UmFuZ2U7Zm9yKDt0aGlzLmlzSW5BbnlCcmVhayhiKTspYi09dGhpcy5jbG9zZXN0UG9pbnRSYW5nZTtpLnByb3RvdHlwZS5zZXRFeHRyZW1lcy5jYWxsKHRoaXMsYSxiLGMsZCxlKX07dGhpcy5zZXRBeGlzVHJhbnNsYXRpb249ZnVuY3Rpb24oYSl7aS5wcm90b3R5cGUuc2V0QXhpc1RyYW5zbGF0aW9uLmNhbGwodGhpcyxhKTt2YXIgYj1kLm9wdGlvbnMuYnJlYWtzLGE9W10sYz1bXSxlPTAsZixnLGs9ZC51c2VyTWlufHxkLm1pbixqPWQudXNlck1heHx8ZC5tYXgsbSxsO2ZvcihsIGluIGIpZz1iW2xdLGY9Zy5yZXBlYXR8fEluZmluaXR5LGQuaXNJbkJyZWFrKGcsaykmJihrKz1nLnRvJWYtayVmKSxkLmlzSW5CcmVhayhnLGopJiYoai09aiVmLWcuZnJvbSVmKTtmb3IobCBpbiBiKXtnPWJbbF07bT1nLmZyb207Zm9yKGY9Zy5yZXBlYXR8fEluZmluaXR5O20tZj5rOyltLT1mO2Zvcig7bTxrOyltKz1mO2Zvcig7bTxqO20rPWYpYS5wdXNoKHt2YWx1ZTptLAptb3ZlOiJpbiJ9KSxhLnB1c2goe3ZhbHVlOm0rKGcudG8tZy5mcm9tKSxtb3ZlOiJvdXQiLHNpemU6Zy5icmVha1NpemV9KX1hLnNvcnQoZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS52YWx1ZT09PWIudmFsdWU/KGEubW92ZT09PSJpbiI/MDoxKS0oYi5tb3ZlPT09ImluIj8wOjEpOmEudmFsdWUtYi52YWx1ZX0pO2I9MDttPWs7Zm9yKGwgaW4gYSl7Zz1hW2xdO2IrPWcubW92ZT09PSJpbiI/MTotMTtpZihiPT09MSYmZy5tb3ZlPT09ImluIiltPWcudmFsdWU7Yj09PTAmJihjLnB1c2goe2Zyb206bSx0bzpnLnZhbHVlLGxlbjpnLnZhbHVlLW0tKGcuc2l6ZXx8MCl9KSxlKz1nLnZhbHVlLW0tKGcuc2l6ZXx8MCkpfWQuYnJlYWtBcnJheT1jO2goZCwiYWZ0ZXJCcmVha3MiKTtkLnRyYW5zQSo9KGotZC5taW4pLyhqLWstZSk7ZC5taW49aztkLm1heD1qfX19KTtlKGoucHJvdG90eXBlLCJnZW5lcmF0ZVBvaW50cyIsZnVuY3Rpb24oYSl7YS5hcHBseSh0aGlzLGIoYXJndW1lbnRzKSk7dmFyIGM9CnRoaXMueEF4aXMsZD10aGlzLnlBeGlzLGU9dGhpcy5wb2ludHMsZixnPWUubGVuZ3RoLGg9dGhpcy5vcHRpb25zLmNvbm5lY3ROdWxscyxpO2lmKGMmJmQmJihjLm9wdGlvbnMuYnJlYWtzfHxkLm9wdGlvbnMuYnJlYWtzKSlmb3IoO2ctLTspaWYoZj1lW2ddLGk9Zi55PT09bnVsbCYmaD09PSExLCFpJiYoYy5pc0luQW55QnJlYWsoZi54LCEwKXx8ZC5pc0luQW55QnJlYWsoZi55LCEwKSkpZS5zcGxpY2UoZywxKSx0aGlzLmRhdGFbZ10mJnRoaXMuZGF0YVtnXS5kZXN0cm95RWxlbWVudHMoKX0pO2EuU2VyaWVzLnByb3RvdHlwZS5kcmF3QnJlYWtzPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPWEucG9pbnRzLGMsZSxnLGksajtmKFsieSIsIngiXSxmdW5jdGlvbihuKXtjPWFbbisiQXhpcyJdO2U9Yy5icmVha0FycmF5fHxbXTtnPWMuaXNYQXhpcz9jLm1pbjpkKGEub3B0aW9ucy50aHJlc2hvbGQsYy5taW4pO2YoYixmdW5jdGlvbihhKXtqPWQoYVsic3RhY2siK24udG9VcHBlckNhc2UoKV0sCmFbbl0pO2YoZSxmdW5jdGlvbihiKXtpPSExO2lmKGc8Yi5mcm9tJiZqPmIudG98fGc+Yi5mcm9tJiZqPGIuZnJvbSlpPSJwb2ludEJyZWFrIjtlbHNlIGlmKGc8Yi5mcm9tJiZqPmIuZnJvbSYmajxiLnRvfHxnPmIuZnJvbSYmaj5iLnRvJiZqPGIuZnJvbSlpPSJwb2ludEluQnJlYWsiO2kmJmgoYyxpLHtwb2ludDphLGJyazpifSl9KX0pfSl9O2UoYS5zZXJpZXNUeXBlcy5jb2x1bW4ucHJvdG90eXBlLCJkcmF3UG9pbnRzIixjKTtlKGEuU2VyaWVzLnByb3RvdHlwZSwiZHJhd1BvaW50cyIsYyl9KTt2YXIgZ2E9UC5wcm90b3R5cGUsZGM9Z2EucHJvY2Vzc0RhdGEsZWM9Z2EuZ2VuZXJhdGVQb2ludHMsZmM9Z2EuZGVzdHJveSxnYz17YXBwcm94aW1hdGlvbjoiYXZlcmFnZSIsZ3JvdXBQaXhlbFdpZHRoOjIsZGF0ZVRpbWVMYWJlbEZvcm1hdHM6e21pbGxpc2Vjb25kOlsiJUEsICViICVlLCAlSDolTTolUy4lTCIsIiVBLCAlYiAlZSwgJUg6JU06JVMuJUwiLCItJUg6JU06JVMuJUwiXSwKc2Vjb25kOlsiJUEsICViICVlLCAlSDolTTolUyIsIiVBLCAlYiAlZSwgJUg6JU06JVMiLCItJUg6JU06JVMiXSxtaW51dGU6WyIlQSwgJWIgJWUsICVIOiVNIiwiJUEsICViICVlLCAlSDolTSIsIi0lSDolTSJdLGhvdXI6WyIlQSwgJWIgJWUsICVIOiVNIiwiJUEsICViICVlLCAlSDolTSIsIi0lSDolTSJdLGRheTpbIiVBLCAlYiAlZSwgJVkiLCIlQSwgJWIgJWUiLCItJUEsICViICVlLCAlWSJdLHdlZWs6WyJXZWVrIGZyb20gJUEsICViICVlLCAlWSIsIiVBLCAlYiAlZSIsIi0lQSwgJWIgJWUsICVZIl0sbW9udGg6WyIlQiAlWSIsIiVCIiwiLSVCICVZIl0seWVhcjpbIiVZIiwiJVkiLCItJVkiXX19LFliPXtsaW5lOnt9LHNwbGluZTp7fSxhcmVhOnt9LGFyZWFzcGxpbmU6e30sY29sdW1uOnthcHByb3hpbWF0aW9uOiJzdW0iLGdyb3VwUGl4ZWxXaWR0aDoxMH0sYXJlYXJhbmdlOnthcHByb3hpbWF0aW9uOiJyYW5nZSJ9LGFyZWFzcGxpbmVyYW5nZTp7YXBwcm94aW1hdGlvbjoicmFuZ2UifSwKY29sdW1ucmFuZ2U6e2FwcHJveGltYXRpb246InJhbmdlIixncm91cFBpeGVsV2lkdGg6MTB9LGNhbmRsZXN0aWNrOnthcHByb3hpbWF0aW9uOiJvaGxjIixncm91cFBpeGVsV2lkdGg6MTB9LG9obGM6e2FwcHJveGltYXRpb246Im9obGMiLGdyb3VwUGl4ZWxXaWR0aDo1fX0sWmI9W1sibWlsbGlzZWNvbmQiLFsxLDIsNSwxMCwyMCwyNSw1MCwxMDAsMjAwLDUwMF1dLFsic2Vjb25kIixbMSwyLDUsMTAsMTUsMzBdXSxbIm1pbnV0ZSIsWzEsMiw1LDEwLDE1LDMwXV0sWyJob3VyIixbMSwyLDMsNCw2LDgsMTJdXSxbImRheSIsWzFdXSxbIndlZWsiLFsxXV0sWyJtb250aCIsWzEsMyw2XV0sWyJ5ZWFyIixudWxsXV0sVmE9e3N1bTpmdW5jdGlvbihhKXt2YXIgYj1hLmxlbmd0aCxjO2lmKCFiJiZhLmhhc051bGxzKWM9bnVsbDtlbHNlIGlmKGIpZm9yKGM9MDtiLS07KWMrPWFbYl07cmV0dXJuIGN9LGF2ZXJhZ2U6ZnVuY3Rpb24oYSl7dmFyIGI9YS5sZW5ndGgsYT1WYS5zdW0oYSk7dHlwZW9mIGE9PT0KIm51bWJlciImJmImJihhLz1iKTtyZXR1cm4gYX0sb3BlbjpmdW5jdGlvbihhKXtyZXR1cm4gYS5sZW5ndGg/YVswXTphLmhhc051bGxzP251bGw6dX0saGlnaDpmdW5jdGlvbihhKXtyZXR1cm4gYS5sZW5ndGg/RWEoYSk6YS5oYXNOdWxscz9udWxsOnV9LGxvdzpmdW5jdGlvbihhKXtyZXR1cm4gYS5sZW5ndGg/T2EoYSk6YS5oYXNOdWxscz9udWxsOnV9LGNsb3NlOmZ1bmN0aW9uKGEpe3JldHVybiBhLmxlbmd0aD9hW2EubGVuZ3RoLTFdOmEuaGFzTnVsbHM/bnVsbDp1fSxvaGxjOmZ1bmN0aW9uKGEsYixjLGQpe2E9VmEub3BlbihhKTtiPVZhLmhpZ2goYik7Yz1WYS5sb3coYyk7ZD1WYS5jbG9zZShkKTtpZih0eXBlb2YgYT09PSJudW1iZXIifHx0eXBlb2YgYj09PSJudW1iZXIifHx0eXBlb2YgYz09PSJudW1iZXIifHx0eXBlb2YgZD09PSJudW1iZXIiKXJldHVyblthLGIsYyxkXX0scmFuZ2U6ZnVuY3Rpb24oYSxiKXthPVZhLmxvdyhhKTtiPVZhLmhpZ2goYik7aWYodHlwZW9mIGE9PT0KIm51bWJlciJ8fHR5cGVvZiBiPT09Im51bWJlciIpcmV0dXJuW2EsYl19fTtnYS5ncm91cERhdGE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcy5kYXRhLGY9dGhpcy5vcHRpb25zLmRhdGEsZz1bXSxoPVtdLGk9YS5sZW5ndGgsaixrLGw9ISFiLG09W1tdLFtdLFtdLFtdXSxkPXR5cGVvZiBkPT09ImZ1bmN0aW9uIj9kOlZhW2RdLG89dGhpcy5wb2ludEFycmF5TWFwLHE9byYmby5sZW5ndGgsbjtmb3Iobj0wO248PWk7bisrKWlmKGFbbl0+PWNbMF0pYnJlYWs7Zm9yKDtuPD1pO24rKyl7Zm9yKDtjWzFdIT09dSYmYVtuXT49Y1sxXXx8bj09PWk7KWlmKGo9Yy5zaGlmdCgpLGs9ZC5hcHBseSgwLG0pLGshPT11JiYoZy5wdXNoKGopLGgucHVzaChrKSksbVswXT1bXSxtWzFdPVtdLG1bMl09W10sbVszXT1bXSxuPT09aSlicmVhaztpZihuPT09aSlicmVhaztpZihvKXtqPXRoaXMuY3JvcFN0YXJ0K247aj1lJiZlW2pdfHx0aGlzLnBvaW50Q2xhc3MucHJvdG90eXBlLmFwcGx5T3B0aW9ucy5hcHBseSh7c2VyaWVzOnRoaXN9LApbZltqXV0pO3ZhciBwO2ZvcihrPTA7azxxO2srKylpZihwPWpbb1trXV0sdHlwZW9mIHA9PT0ibnVtYmVyIiltW2tdLnB1c2gocCk7ZWxzZSBpZihwPT09bnVsbCltW2tdLmhhc051bGxzPSEwfWVsc2UgaWYoaj1sP2Jbbl06bnVsbCx0eXBlb2Ygaj09PSJudW1iZXIiKW1bMF0ucHVzaChqKTtlbHNlIGlmKGo9PT1udWxsKW1bMF0uaGFzTnVsbHM9ITB9cmV0dXJuW2csaF19O2dhLnByb2Nlc3NEYXRhPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5jaGFydCxiPXRoaXMub3B0aW9ucy5kYXRhR3JvdXBpbmcsYz10aGlzLmFsbG93REchPT0hMSYmYiYmcChiLmVuYWJsZWQsYS5vcHRpb25zLl9zdG9jayksZDt0aGlzLmZvcmNlQ3JvcD1jO3RoaXMuZ3JvdXBQaXhlbFdpZHRoPW51bGw7dGhpcy5oYXNQcm9jZXNzZWQ9ITA7aWYoZGMuYXBwbHkodGhpcyxhcmd1bWVudHMpIT09ITEmJmMpe3RoaXMuZGVzdHJveUdyb3VwZWREYXRhKCk7dmFyIGU9dGhpcy5wcm9jZXNzZWRYRGF0YSxmPXRoaXMucHJvY2Vzc2VkWURhdGEsCmc9YS5wbG90U2l6ZVgsYT10aGlzLnhBeGlzLGg9YS5vcHRpb25zLm9yZGluYWwsaT10aGlzLmdyb3VwUGl4ZWxXaWR0aD1hLmdldEdyb3VwUGl4ZWxXaWR0aCYmYS5nZXRHcm91cFBpeGVsV2lkdGgoKTtpZihpKXtkPSEwO3RoaXMucG9pbnRzPW51bGw7dmFyIGo9YS5nZXRFeHRyZW1lcygpLGM9ai5taW4saj1qLm1heCxoPWgmJmEuZ2V0R3JvdXBJbnRlcnZhbEZhY3RvcihjLGosdGhpcyl8fDEsZz1pKihqLWMpL2cqaCxpPWEuZ2V0VGltZVRpY2tzKGEubm9ybWFsaXplVGltZVRpY2tJbnRlcnZhbChnLGIudW5pdHN8fFpiKSxNYXRoLm1pbihjLGVbMF0pLE1hdGgubWF4KGosZVtlLmxlbmd0aC0xXSksYS5vcHRpb25zLnN0YXJ0T2ZXZWVrLGUsdGhpcy5jbG9zZXN0UG9pbnRSYW5nZSksZj1nYS5ncm91cERhdGEuYXBwbHkodGhpcyxbZSxmLGksYi5hcHByb3hpbWF0aW9uXSksZT1mWzBdLGY9ZlsxXTtpZihiLnNtb290aGVkKXtiPWUubGVuZ3RoLTE7Zm9yKGVbYl09TWF0aC5taW4oZVtiXSwKaik7Yi0tJiZiPjA7KWVbYl0rPWcvMjtlWzBdPU1hdGgubWF4KGVbMF0sYyl9dGhpcy5jdXJyZW50RGF0YUdyb3VwaW5nPWkuaW5mbzt0aGlzLmNsb3Nlc3RQb2ludFJhbmdlPWkuaW5mby50b3RhbFJhbmdlO2lmKHQoZVswXSkmJmVbMF08YS5kYXRhTWluKXtpZihhLm1pbj09PWEuZGF0YU1pbilhLm1pbj1lWzBdO2EuZGF0YU1pbj1lWzBdfXRoaXMucHJvY2Vzc2VkWERhdGE9ZTt0aGlzLnByb2Nlc3NlZFlEYXRhPWZ9ZWxzZSB0aGlzLmN1cnJlbnREYXRhR3JvdXBpbmc9bnVsbDt0aGlzLmhhc0dyb3VwZWREYXRhPWR9fTtnYS5kZXN0cm95R3JvdXBlZERhdGE9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmdyb3VwZWREYXRhO24oYXx8W10sZnVuY3Rpb24oYixjKXtiJiYoYVtjXT1iLmRlc3Ryb3k/Yi5kZXN0cm95KCk6bnVsbCl9KTt0aGlzLmdyb3VwZWREYXRhPW51bGx9O2dhLmdlbmVyYXRlUG9pbnRzPWZ1bmN0aW9uKCl7ZWMuYXBwbHkodGhpcyk7dGhpcy5kZXN0cm95R3JvdXBlZERhdGEoKTsKdGhpcy5ncm91cGVkRGF0YT10aGlzLmhhc0dyb3VwZWREYXRhP3RoaXMucG9pbnRzOm51bGx9O1MoTWIucHJvdG90eXBlLCJ0b29sdGlwRm9vdGVySGVhZGVyRm9ybWF0dGVyIixmdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yi5zZXJpZXMsZT1kLnRvb2x0aXBPcHRpb25zLGY9ZC5vcHRpb25zLmRhdGFHcm91cGluZyxnPWUueERhdGVGb3JtYXQsaCxpPWQueEF4aXM7cmV0dXJuIGkmJmkub3B0aW9ucy50eXBlPT09ImRhdGV0aW1lIiYmZiYmdGEoYi5rZXkpPyhhPWQuY3VycmVudERhdGFHcm91cGluZyxmPWYuZGF0ZVRpbWVMYWJlbEZvcm1hdHMsYT8oaT1mW2EudW5pdE5hbWVdLGEuY291bnQ9PT0xP2c9aVswXTooZz1pWzFdLGg9aVsyXSkpOiFnJiZmJiYoZz10aGlzLmdldFhEYXRlRm9ybWF0KGIsZSxpKSksZz1sYShnLGIua2V5KSxoJiYoZys9bGEoaCxiLmtleSthLnRvdGFsUmFuZ2UtMSkpLEthKGVbKGM/ImZvb3RlciI6ImhlYWRlciIpKyJGb3JtYXQiXSx7cG9pbnQ6dyhiLHtrZXk6Z30pLApzZXJpZXM6ZH0pKTphLmNhbGwodGhpcyxiLGMpfSk7Z2EuZGVzdHJveT1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmdyb3VwZWREYXRhfHxbXSxiPWEubGVuZ3RoO2ItLTspYVtiXSYmYVtiXS5kZXN0cm95KCk7ZmMuYXBwbHkodGhpcyl9O1MoZ2EsInNldE9wdGlvbnMiLGZ1bmN0aW9uKGEsYil7dmFyIGM9YS5jYWxsKHRoaXMsYiksZD10aGlzLnR5cGUsZT10aGlzLmNoYXJ0Lm9wdGlvbnMucGxvdE9wdGlvbnMsZj1WW2RdLmRhdGFHcm91cGluZztpZihZYltkXSlmfHwoZj1DKGdjLFliW2RdKSksYy5kYXRhR3JvdXBpbmc9QyhmLGUuc2VyaWVzJiZlLnNlcmllcy5kYXRhR3JvdXBpbmcsZVtkXS5kYXRhR3JvdXBpbmcsYi5kYXRhR3JvdXBpbmcpO2lmKHRoaXMuY2hhcnQub3B0aW9ucy5fc3RvY2spdGhpcy5yZXF1aXJlU29ydGluZz0hMDtyZXR1cm4gY30pO1MoRi5wcm90b3R5cGUsInNldFNjYWxlIixmdW5jdGlvbihhKXthLmNhbGwodGhpcyk7bih0aGlzLnNlcmllcyxmdW5jdGlvbihhKXthLmhhc1Byb2Nlc3NlZD0KITF9KX0pO0YucHJvdG90eXBlLmdldEdyb3VwUGl4ZWxXaWR0aD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuc2VyaWVzLGI9YS5sZW5ndGgsYyxkPTAsZT0hMSxmO2ZvcihjPWI7Yy0tOykoZj1hW2NdLm9wdGlvbnMuZGF0YUdyb3VwaW5nKSYmKGQ9cyhkLGYuZ3JvdXBQaXhlbFdpZHRoKSk7Zm9yKGM9YjtjLS07KWlmKChmPWFbY10ub3B0aW9ucy5kYXRhR3JvdXBpbmcpJiZhW2NdLmhhc1Byb2Nlc3NlZClpZihiPShhW2NdLnByb2Nlc3NlZFhEYXRhfHxhW2NdLmRhdGEpLmxlbmd0aCxhW2NdLmdyb3VwUGl4ZWxXaWR0aHx8Yj50aGlzLmNoYXJ0LnBsb3RTaXplWC9kfHxiJiZmLmZvcmNlZCllPSEwO3JldHVybiBlP2Q6MH07Ri5wcm90b3R5cGUuc2V0RGF0YUdyb3VwaW5nPWZ1bmN0aW9uKGEsYil7dmFyIGMsYj1wKGIsITApO2F8fChhPXtmb3JjZWQ6ITEsdW5pdHM6bnVsbH0pO2lmKHRoaXMgaW5zdGFuY2VvZiBGKWZvcihjPXRoaXMuc2VyaWVzLmxlbmd0aDtjLS07KXRoaXMuc2VyaWVzW2NdLnVwZGF0ZSh7ZGF0YUdyb3VwaW5nOmF9LAohMSk7ZWxzZSBuKHRoaXMuY2hhcnQub3B0aW9ucy5zZXJpZXMsZnVuY3Rpb24oYil7Yi5kYXRhR3JvdXBpbmc9YX0sITEpO2ImJnRoaXMuY2hhcnQucmVkcmF3KCl9O1Yub2hsYz1DKFYuY29sdW1uLHtsaW5lV2lkdGg6MSx0b29sdGlwOntwb2ludEZvcm1hdDonPHNwYW4gc3R5bGU9ImNvbG9yOntwb2ludC5jb2xvcn0iPlx1MjVjZjwvc3Bhbj4gPGI+IHtzZXJpZXMubmFtZX08L2I+PGJyLz5PcGVuOiB7cG9pbnQub3Blbn08YnIvPkhpZ2g6IHtwb2ludC5oaWdofTxici8+TG93OiB7cG9pbnQubG93fTxici8+Q2xvc2U6IHtwb2ludC5jbG9zZX08YnIvPid9LHN0YXRlczp7aG92ZXI6e2xpbmVXaWR0aDozfX0sdGhyZXNob2xkOm51bGx9KTtiYT1rYShLLmNvbHVtbix7dHlwZToib2hsYyIscG9pbnRBcnJheU1hcDpbIm9wZW4iLCJoaWdoIiwibG93IiwiY2xvc2UiXSx0b1lEYXRhOmZ1bmN0aW9uKGEpe3JldHVyblthLm9wZW4sYS5oaWdoLGEubG93LGEuY2xvc2VdfSxwb2ludFZhbEtleToiaGlnaCIsCnBvaW50QXR0clRvT3B0aW9uczp7c3Ryb2tlOiJjb2xvciIsInN0cm9rZS13aWR0aCI6ImxpbmVXaWR0aCJ9LHVwQ29sb3JQcm9wOiJzdHJva2UiLGdldEF0dHJpYnM6ZnVuY3Rpb24oKXtLLmNvbHVtbi5wcm90b3R5cGUuZ2V0QXR0cmlicy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGE9dGhpcy5vcHRpb25zLGI9YS5zdGF0ZXMsYT1hLnVwQ29sb3J8fHRoaXMuY29sb3IsYz1DKHRoaXMucG9pbnRBdHRyKSxkPXRoaXMudXBDb2xvclByb3A7Y1siIl1bZF09YTtjLmhvdmVyW2RdPWIuaG92ZXIudXBDb2xvcnx8YTtjLnNlbGVjdFtkXT1iLnNlbGVjdC51cENvbG9yfHxhO24odGhpcy5wb2ludHMsZnVuY3Rpb24oYSl7aWYoYS5vcGVuPGEuY2xvc2UmJiFhLm9wdGlvbnMuY29sb3IpYS5wb2ludEF0dHI9Y30pfSx0cmFuc2xhdGU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnlBeGlzO0suY29sdW1uLnByb3RvdHlwZS50cmFuc2xhdGUuYXBwbHkodGhpcyk7bih0aGlzLnBvaW50cyxmdW5jdGlvbihiKXtpZihiLm9wZW4hPT0KbnVsbCliLnBsb3RPcGVuPWEudHJhbnNsYXRlKGIub3BlbiwwLDEsMCwxKTtpZihiLmNsb3NlIT09bnVsbCliLnBsb3RDbG9zZT1hLnRyYW5zbGF0ZShiLmNsb3NlLDAsMSwwLDEpfSl9LGRyYXdQb2ludHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS5jaGFydCxjLGQsZSxmLGcsaCxpLGo7bihhLnBvaW50cyxmdW5jdGlvbihrKXtpZihrLnBsb3RZIT09dSlpPWsuZ3JhcGhpYyxjPWsucG9pbnRBdHRyW2suc2VsZWN0ZWQ/InNlbGVjdGVkIjoiIl18fGEucG9pbnRBdHRyWyIiXSxmPWNbInN0cm9rZS13aWR0aCJdJTIvMixqPXkoay5wbG90WCktZixnPXkoay5zaGFwZUFyZ3Mud2lkdGgvMiksaD1bIk0iLGoseShrLnlCb3R0b20pLCJMIixqLHkoay5wbG90WSldLGsub3BlbiE9PW51bGwmJihkPXkoay5wbG90T3BlbikrZixoLnB1c2goIk0iLGosZCwiTCIsai1nLGQpKSxrLmNsb3NlIT09bnVsbCYmKGU9eShrLnBsb3RDbG9zZSkrZixoLnB1c2goIk0iLGosZSwiTCIsaitnLGUpKSxpPwppLmF0dHIoYykuYW5pbWF0ZSh7ZDpofSk6ay5ncmFwaGljPWIucmVuZGVyZXIucGF0aChoKS5hdHRyKGMpLmFkZChhLmdyb3VwKX0pfSxhbmltYXRlOm51bGx9KTtLLm9obGM9YmE7Vi5jYW5kbGVzdGljaz1DKFYuY29sdW1uLHtsaW5lQ29sb3I6ImJsYWNrIixsaW5lV2lkdGg6MSxzdGF0ZXM6e2hvdmVyOntsaW5lV2lkdGg6Mn19LHRvb2x0aXA6Vi5vaGxjLnRvb2x0aXAsdGhyZXNob2xkOm51bGwsdXBDb2xvcjoid2hpdGUifSk7YmE9a2EoYmEse3R5cGU6ImNhbmRsZXN0aWNrIixwb2ludEF0dHJUb09wdGlvbnM6e2ZpbGw6ImNvbG9yIixzdHJva2U6ImxpbmVDb2xvciIsInN0cm9rZS13aWR0aCI6ImxpbmVXaWR0aCJ9LHVwQ29sb3JQcm9wOiJmaWxsIixnZXRBdHRyaWJzOmZ1bmN0aW9uKCl7Sy5vaGxjLnByb3RvdHlwZS5nZXRBdHRyaWJzLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgYT10aGlzLm9wdGlvbnMsYj1hLnN0YXRlcyxjPWEudXBMaW5lQ29sb3J8fGEubGluZUNvbG9yLApkPWIuaG92ZXIudXBMaW5lQ29sb3J8fGMsZT1iLnNlbGVjdC51cExpbmVDb2xvcnx8YztuKHRoaXMucG9pbnRzLGZ1bmN0aW9uKGEpe2lmKGEub3BlbjxhLmNsb3NlKXtpZihhLmxpbmVDb2xvcilhLnBvaW50QXR0cj1DKGEucG9pbnRBdHRyKSxjPWEubGluZUNvbG9yO2EucG9pbnRBdHRyWyIiXS5zdHJva2U9YzthLnBvaW50QXR0ci5ob3Zlci5zdHJva2U9ZDthLnBvaW50QXR0ci5zZWxlY3Quc3Ryb2tlPWV9fSl9LGRyYXdQb2ludHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS5jaGFydCxjLGQ9YS5wb2ludEF0dHJbIiJdLGUsZixnLGgsaSxqLGssbCxtLG8scTtuKGEucG9pbnRzLGZ1bmN0aW9uKG4pe209bi5ncmFwaGljO2lmKG4ucGxvdFkhPT11KWM9bi5wb2ludEF0dHJbbi5zZWxlY3RlZD8ic2VsZWN0ZWQiOiIiXXx8ZCxrPWNbInN0cm9rZS13aWR0aCJdJTIvMixsPXkobi5wbG90WCktayxlPW4ucGxvdE9wZW4sZj1uLnBsb3RDbG9zZSxnPVgubWluKGUsZiksaD1YLm1heChlLApmKSxxPXkobi5zaGFwZUFyZ3Mud2lkdGgvMiksaT15KGcpIT09eShuLnBsb3RZKSxqPWghPT1uLnlCb3R0b20sZz15KGcpK2ssaD15KGgpK2ssbz1bIk0iLGwtcSxoLCJMIixsLXEsZywiTCIsbCtxLGcsIkwiLGwrcSxoLCJaIiwiTSIsbCxnLCJMIixsLGk/eShuLnBsb3RZKTpnLCJNIixsLGgsIkwiLGwsaj95KG4ueUJvdHRvbSk6aF0sbT9tLmF0dHIoYykuYW5pbWF0ZSh7ZDpvfSk6bi5ncmFwaGljPWIucmVuZGVyZXIucGF0aChvKS5hdHRyKGMpLmFkZChhLmdyb3VwKS5zaGFkb3coYS5vcHRpb25zLnNoYWRvdyl9KX19KTtLLmNhbmRsZXN0aWNrPWJhO3ZhciB3Yj14YS5wcm90b3R5cGUuc3ltYm9scztWLmZsYWdzPUMoVi5jb2x1bW4se2ZpbGxDb2xvcjoid2hpdGUiLGxpbmVXaWR0aDoxLHBvaW50UmFuZ2U6MCxzaGFwZToiZmxhZyIsc3RhY2tEaXN0YW5jZToxMixzdGF0ZXM6e2hvdmVyOntsaW5lQ29sb3I6ImJsYWNrIixmaWxsQ29sb3I6IiNGQ0ZGQzUifX0sc3R5bGU6e2ZvbnRTaXplOiIxMXB4IiwKZm9udFdlaWdodDoiYm9sZCIsdGV4dEFsaWduOiJjZW50ZXIifSx0b29sdGlwOntwb2ludEZvcm1hdDoie3BvaW50LnRleHR9PGJyLz4ifSx0aHJlc2hvbGQ6bnVsbCx5Oi0zMH0pO0suZmxhZ3M9a2EoSy5jb2x1bW4se3R5cGU6ImZsYWdzIixzb3J0ZWQ6ITEsbm9TaGFyZWRUb29sdGlwOiEwLGFsbG93REc6ITEsdGFrZU9yZGluYWxQb3NpdGlvbjohMSx0cmFja2VyR3JvdXBzOlsibWFya2VyR3JvdXAiXSxmb3JjZUNyb3A6ITAsaW5pdDpQLnByb3RvdHlwZS5pbml0LHBvaW50QXR0clRvT3B0aW9uczp7ZmlsbDoiZmlsbENvbG9yIixzdHJva2U6ImNvbG9yIiwic3Ryb2tlLXdpZHRoIjoibGluZVdpZHRoIixyOiJyYWRpdXMifSx0cmFuc2xhdGU6ZnVuY3Rpb24oKXtLLmNvbHVtbi5wcm90b3R5cGUudHJhbnNsYXRlLmFwcGx5KHRoaXMpO3ZhciBhPXRoaXMub3B0aW9ucyxiPXRoaXMuY2hhcnQsYz10aGlzLnBvaW50cyxkPWMubGVuZ3RoLTEsZSxmLGc9YS5vblNlcmllcztlPWcmJmIuZ2V0KGcpOwp2YXIgYT1hLm9uS2V5fHwieSIsZz1lJiZlLm9wdGlvbnMuc3RlcCxoPWUmJmUucG9pbnRzLGk9aCYmaC5sZW5ndGgsaj10aGlzLnhBeGlzLGs9ai5nZXRFeHRyZW1lcygpLGwsbSxvO2lmKGUmJmUudmlzaWJsZSYmaSl7ZT1lLmN1cnJlbnREYXRhR3JvdXBpbmc7bT1oW2ktMV0ueCsoZT9lLnRvdGFsUmFuZ2U6MCk7Yy5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEueC1iLnh9KTtmb3IoYT0icGxvdCIrYVswXS50b1VwcGVyQ2FzZSgpK2Euc3Vic3RyKDEpO2ktLSYmY1tkXTspaWYoZT1jW2RdLGw9aFtpXSxsLng8PWUueCYmbFthXSE9PXZvaWQgMCl7aWYoZS54PD1tKWUucGxvdFk9bFthXSxsLng8ZS54JiYhZyYmKG89aFtpKzFdKSYmb1thXSE9PXUmJihlLnBsb3RZKz0oZS54LWwueCkvKG8ueC1sLngpKihvW2FdLWxbYV0pKTtkLS07aSsrO2lmKGQ8MClicmVha319bihjLGZ1bmN0aW9uKGEsZCl7dmFyIGU7aWYoYS5wbG90WT09PXUpYS54Pj1rLm1pbiYmYS54PD1rLm1heD9hLnBsb3RZPQpiLmNoYXJ0SGVpZ2h0LWouYm90dG9tLShqLm9wcG9zaXRlP2ouaGVpZ2h0OjApK2oub2Zmc2V0LWIucGxvdFRvcDphLnNoYXBlQXJncz17fTtpZigoZj1jW2QtMV0pJiZmLnBsb3RYPT09YS5wbG90WCl7aWYoZi5zdGFja0luZGV4PT09dSlmLnN0YWNrSW5kZXg9MDtlPWYuc3RhY2tJbmRleCsxfWEuc3RhY2tJbmRleD1lfSl9LGRyYXdQb2ludHM6ZnVuY3Rpb24oKXt2YXIgYSxiPXRoaXMucG9pbnRBdHRyWyIiXSxjPXRoaXMucG9pbnRzLGQ9dGhpcy5jaGFydC5yZW5kZXJlcixlLGYsZz10aGlzLm9wdGlvbnMsaD1nLnksaSxqLGssbCxtLG87Zm9yKGo9Yy5sZW5ndGg7ai0tOylpZihrPWNbal0sYT1rLnBsb3RYPnRoaXMueEF4aXMubGVuLGU9ay5wbG90WCxlPjAmJihlLT1wKGsubGluZVdpZHRoLGcubGluZVdpZHRoKSUyKSxsPWsuc3RhY2tJbmRleCxpPWsub3B0aW9ucy5zaGFwZXx8Zy5zaGFwZSxmPWsucGxvdFksZiE9PXUmJihmPWsucGxvdFkraC0obCE9PXUmJmwqZy5zdGFja0Rpc3RhbmNlKSksCm09bD91OmsucGxvdFgsbz1sP3U6ay5wbG90WSxsPWsuZ3JhcGhpYyxmIT09dSYmZT49MCYmIWEpYT1rLnBvaW50QXR0cltrLnNlbGVjdGVkPyJzZWxlY3QiOiIiXXx8YixsP2wuYXR0cih7eDplLHk6ZixyOmEucixhbmNob3JYOm0sYW5jaG9yWTpvfSk6ay5ncmFwaGljPWQubGFiZWwoay5vcHRpb25zLnRpdGxlfHxnLnRpdGxlfHwiQSIsZSxmLGksbSxvLGcudXNlSFRNTCkuY3NzKEMoZy5zdHlsZSxrLnN0eWxlKSkuYXR0cihhKS5hdHRyKHthbGlnbjppPT09ImZsYWciPyJsZWZ0IjoiY2VudGVyIix3aWR0aDpnLndpZHRoLGhlaWdodDpnLmhlaWdodH0pLmFkZCh0aGlzLm1hcmtlckdyb3VwKS5zaGFkb3coZy5zaGFkb3cpLGsudG9vbHRpcFBvcz1bZSxmXTtlbHNlIGlmKGwpay5ncmFwaGljPWwuZGVzdHJveSgpfSxkcmF3VHJhY2tlcjpmdW5jdGlvbigpe3ZhciBhPXRoaXMucG9pbnRzO29iLmRyYXdUcmFja2VyUG9pbnQuYXBwbHkodGhpcyk7bihhLGZ1bmN0aW9uKGIpe3ZhciBjPQpiLmdyYXBoaWM7YyYmRChjLmVsZW1lbnQsIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXtpZihiLnN0YWNrSW5kZXg+MCYmIWIucmFpc2VkKWIuX3k9Yy55LGMuYXR0cih7eTpiLl95LTh9KSxiLnJhaXNlZD0hMDtuKGEsZnVuY3Rpb24oYSl7aWYoYSE9PWImJmEucmFpc2VkJiZhLmdyYXBoaWMpYS5ncmFwaGljLmF0dHIoe3k6YS5feX0pLGEucmFpc2VkPSExfSl9KX0pfSxhbmltYXRlOnFhLGJ1aWxkS0RUcmVlOnFhLHNldENsaXA6cWF9KTt3Yi5mbGFnPWZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuWyJNIixlJiZlLmFuY2hvclh8fGEsZSYmZS5hbmNob3JZfHxiLCJMIixhLGIrZCxhLGIsYStjLGIsYStjLGIrZCxhLGIrZCwiWiJdfTtuKFsiY2lyY2xlIiwic3F1YXJlIl0sZnVuY3Rpb24oYSl7d2JbYSsicGluIl09ZnVuY3Rpb24oYixjLGQsZSxmKXt2YXIgZz1mJiZmLmFuY2hvclgsZj1mJiZmLmFuY2hvclk7YT09PSJjaXJjbGUiJiZlPmQmJihiLT15KChlLWQpLzIpLGQ9ZSk7Yj13YlthXShiLApjLGQsZSk7ZyYmZiYmYi5wdXNoKCJNIixnLGM+Zj9jOmMrZSwiTCIsZyxmKTtyZXR1cm4gYn19KTskYT09PXouVk1MUmVuZGVyZXImJm4oWyJmbGFnIiwiY2lyY2xlcGluIiwic3F1YXJlcGluIl0sZnVuY3Rpb24oYSl7bmIucHJvdG90eXBlLnN5bWJvbHNbYV09d2JbYV19KTt2YXIgYmE9W10uY29uY2F0KFpiKSx4Yj1mdW5jdGlvbihhKXt2YXIgYj1TYShhcmd1bWVudHMsZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT09Im51bWJlciJ9KTtpZihiLmxlbmd0aClyZXR1cm4gTWF0aFthXS5hcHBseSgwLGIpfTtiYVs0XT1bImRheSIsWzEsMiwzLDRdXTtiYVs1XT1bIndlZWsiLFsxLDIsM11dO3coTyx7bmF2aWdhdG9yOntoYW5kbGVzOntiYWNrZ3JvdW5kQ29sb3I6IiNlYmU3ZTgiLGJvcmRlckNvbG9yOiIjYjJiMWI2In0saGVpZ2h0OjQwLG1hcmdpbjoyNSxtYXNrRmlsbDoicmdiYSgxMjgsMTc5LDIzNiwwLjMpIixtYXNrSW5zaWRlOiEwLG91dGxpbmVDb2xvcjoiI2IyYjFiNiIsCm91dGxpbmVXaWR0aDoxLHNlcmllczp7dHlwZTpLLmFyZWFzcGxpbmU9PT11PyJsaW5lIjoiYXJlYXNwbGluZSIsY29sb3I6IiM0NTcyQTciLGNvbXBhcmU6bnVsbCxmaWxsT3BhY2l0eTowLjA1LGRhdGFHcm91cGluZzp7YXBwcm94aW1hdGlvbjoiYXZlcmFnZSIsZW5hYmxlZDohMCxncm91cFBpeGVsV2lkdGg6MixzbW9vdGhlZDohMCx1bml0czpiYX0sZGF0YUxhYmVsczp7ZW5hYmxlZDohMSx6SW5kZXg6Mn0saWQ6ImhpZ2hjaGFydHMtbmF2aWdhdG9yLXNlcmllcyIsbGluZUNvbG9yOm51bGwsbGluZVdpZHRoOjEsbWFya2VyOntlbmFibGVkOiExfSxwb2ludFJhbmdlOjAsc2hhZG93OiExLHRocmVzaG9sZDpudWxsfSx4QXhpczp7dGlja1dpZHRoOjAsbGluZVdpZHRoOjAsZ3JpZExpbmVDb2xvcjoiI0VFRSIsZ3JpZExpbmVXaWR0aDoxLHRpY2tQaXhlbEludGVydmFsOjIwMCxsYWJlbHM6e2FsaWduOiJsZWZ0IixzdHlsZTp7Y29sb3I6IiM4ODgifSx4OjMseTotNH0sY3Jvc3NoYWlyOiExfSwKeUF4aXM6e2dyaWRMaW5lV2lkdGg6MCxzdGFydE9uVGljazohMSxlbmRPblRpY2s6ITEsbWluUGFkZGluZzowLjEsbWF4UGFkZGluZzowLjEsbGFiZWxzOntlbmFibGVkOiExfSxjcm9zc2hhaXI6ITEsdGl0bGU6e3RleHQ6bnVsbH0sdGlja1dpZHRoOjB9fSxzY3JvbGxiYXI6e2hlaWdodDpsYj8yMDoxNCxiYXJCYWNrZ3JvdW5kQ29sb3I6IiNiZmM4ZDEiLGJhckJvcmRlclJhZGl1czowLGJhckJvcmRlcldpZHRoOjEsYmFyQm9yZGVyQ29sb3I6IiNiZmM4ZDEiLGJ1dHRvbkFycm93Q29sb3I6IiM2NjYiLGJ1dHRvbkJhY2tncm91bmRDb2xvcjoiI2ViZTdlOCIsYnV0dG9uQm9yZGVyQ29sb3I6IiNiYmIiLGJ1dHRvbkJvcmRlclJhZGl1czowLGJ1dHRvbkJvcmRlcldpZHRoOjEsbWluV2lkdGg6NixyaWZsZUNvbG9yOiIjNjY2Iix0cmFja0JhY2tncm91bmRDb2xvcjoiI2VlZWVlZSIsdHJhY2tCb3JkZXJDb2xvcjoiI2VlZWVlZSIsdHJhY2tCb3JkZXJXaWR0aDoxLGxpdmVSZWRyYXc6aGEmJgohbGJ9fSk7SWIucHJvdG90eXBlPXtkcmF3SGFuZGxlOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jaGFydCxkPWMucmVuZGVyZXIsZT10aGlzLmVsZW1lbnRzVG9EZXN0cm95LGY9dGhpcy5oYW5kbGVzLGc9dGhpcy5uYXZpZ2F0b3JPcHRpb25zLmhhbmRsZXMsZz17ZmlsbDpnLmJhY2tncm91bmRDb2xvcixzdHJva2U6Zy5ib3JkZXJDb2xvciwic3Ryb2tlLXdpZHRoIjoxfSxoO3RoaXMucmVuZGVyZWR8fChmW2JdPWQuZygibmF2aWdhdG9yLWhhbmRsZS0iK1sibGVmdCIsInJpZ2h0Il1bYl0pLmNzcyh7Y3Vyc29yOiJldy1yZXNpemUifSkuYXR0cih7ekluZGV4OjEwLWJ9KS5hZGQoKSxoPWQucmVjdCgtNC41LDAsOSwxNiwwLDEpLmF0dHIoZykuYWRkKGZbYl0pLGUucHVzaChoKSxoPWQucGF0aChbIk0iLC0xLjUsNCwiTCIsLTEuNSwxMiwiTSIsMC41LDQsIkwiLDAuNSwxMl0pLmF0dHIoZykuYWRkKGZbYl0pLGUucHVzaChoKSk7ZltiXVtjLmlzUmVzaXppbmc/ImFuaW1hdGUiOiJhdHRyIl0oe3RyYW5zbGF0ZVg6dGhpcy5zY3JvbGxlckxlZnQrCnRoaXMuc2Nyb2xsYmFySGVpZ2h0K3BhcnNlSW50KGEsMTApLHRyYW5zbGF0ZVk6dGhpcy50b3ArdGhpcy5oZWlnaHQvMi04fSl9LGRyYXdTY3JvbGxiYXJCdXR0b246ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5jaGFydC5yZW5kZXJlcixjPXRoaXMuZWxlbWVudHNUb0Rlc3Ryb3ksZD10aGlzLnNjcm9sbGJhckJ1dHRvbnMsZT10aGlzLnNjcm9sbGJhckhlaWdodCxmPXRoaXMuc2Nyb2xsYmFyT3B0aW9ucyxnO3RoaXMucmVuZGVyZWR8fChkW2FdPWIuZygpLmFkZCh0aGlzLnNjcm9sbGJhckdyb3VwKSxnPWIucmVjdCgtMC41LC0wLjUsZSsxLGUrMSxmLmJ1dHRvbkJvcmRlclJhZGl1cyxmLmJ1dHRvbkJvcmRlcldpZHRoKS5hdHRyKHtzdHJva2U6Zi5idXR0b25Cb3JkZXJDb2xvciwic3Ryb2tlLXdpZHRoIjpmLmJ1dHRvbkJvcmRlcldpZHRoLGZpbGw6Zi5idXR0b25CYWNrZ3JvdW5kQ29sb3J9KS5hZGQoZFthXSksYy5wdXNoKGcpLGc9Yi5wYXRoKFsiTSIsZS8yKyhhPy0xOjEpLGUvMi0KMywiTCIsZS8yKyhhPy0xOjEpLGUvMiszLGUvMisoYT8yOi0yKSxlLzJdKS5hdHRyKHtmaWxsOmYuYnV0dG9uQXJyb3dDb2xvcn0pLmFkZChkW2FdKSxjLnB1c2goZykpO2EmJmRbYV0uYXR0cih7dHJhbnNsYXRlWDp0aGlzLnNjcm9sbGVyV2lkdGgtZX0pfSxyZW5kZXI6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcy5jaGFydCxmPWUucmVuZGVyZXIsZyxoLGksaixrPXRoaXMuc2Nyb2xsYmFyR3JvdXAsbD10aGlzLm5hdmlnYXRvckdyb3VwLG09dGhpcy5zY3JvbGxiYXIsbD10aGlzLnhBeGlzLG89dGhpcy5zY3JvbGxiYXJUcmFjayxuPXRoaXMuc2Nyb2xsYmFySGVpZ2h0LHI9dGhpcy5zY3JvbGxiYXJFbmFibGVkLEE9dGhpcy5uYXZpZ2F0b3JPcHRpb25zLHU9dGhpcy5zY3JvbGxiYXJPcHRpb25zLHY9dS5taW5XaWR0aCx4PXRoaXMuaGVpZ2h0LHc9dGhpcy50b3Asej10aGlzLm5hdmlnYXRvckVuYWJsZWQsQz1BLm91dGxpbmVXaWR0aCxCPUMvMixEPTAsRz10aGlzLm91dGxpbmVIZWlnaHQsCkk9dS5iYXJCb3JkZXJSYWRpdXMsSD11LmJhckJvcmRlcldpZHRoLEY9dytCLEo7aWYodChhKSYmIShpc05hTihhKXx8dGhpcy5oYXNEcmFnZ2VkJiYhdChjKSkpe3RoaXMubmF2aWdhdG9yTGVmdD1nPXAobC5sZWZ0LGUucGxvdExlZnQrbik7dGhpcy5uYXZpZ2F0b3JXaWR0aD1oPXAobC5sZW4sZS5wbG90V2lkdGgtMipuKTt0aGlzLnNjcm9sbGVyTGVmdD1pPWctbjt0aGlzLnNjcm9sbGVyV2lkdGg9aj1qPWgrMipuO2wuZ2V0RXh0cmVtZXMmJihKPXRoaXMuZ2V0VW5pb25FeHRyZW1lcyghMCkpJiYoSi5kYXRhTWluIT09bC5taW58fEouZGF0YU1heCE9PWwubWF4KSYmbC5zZXRFeHRyZW1lcyhKLmRhdGFNaW4sSi5kYXRhTWF4LCEwLCExKTtjPXAoYyxsLnRyYW5zbGF0ZShhKSk7ZD1wKGQsbC50cmFuc2xhdGUoYikpO2lmKGlzTmFOKGMpfHxRKGMpPT09SW5maW5pdHkpYz0wLGQ9ajtpZighKGwudHJhbnNsYXRlKGQsITApLWwudHJhbnNsYXRlKGMsITApPGUueEF4aXNbMF0ubWluUmFuZ2UpKXt0aGlzLnpvb21lZE1heD0KRShzKGMsZCwwKSxoKTt0aGlzLnpvb21lZE1pbj1zKHRoaXMuZml4ZWRXaWR0aD90aGlzLnpvb21lZE1heC10aGlzLmZpeGVkV2lkdGg6RShjLGQpLDApO3RoaXMucmFuZ2U9dGhpcy56b29tZWRNYXgtdGhpcy56b29tZWRNaW47Yz15KHRoaXMuem9vbWVkTWF4KTtiPXkodGhpcy56b29tZWRNaW4pO2E9Yy1iO2lmKCF0aGlzLnJlbmRlcmVkKXtpZih6KXRoaXMubmF2aWdhdG9yR3JvdXA9bD1mLmcoIm5hdmlnYXRvciIpLmF0dHIoe3pJbmRleDozfSkuYWRkKCksdGhpcy5sZWZ0U2hhZGU9Zi5yZWN0KCkuYXR0cih7ZmlsbDpBLm1hc2tGaWxsfSkuYWRkKGwpLEEubWFza0luc2lkZT90aGlzLmxlZnRTaGFkZS5jc3Moe2N1cnNvcjoiZXctcmVzaXplIn0pOnRoaXMucmlnaHRTaGFkZT1mLnJlY3QoKS5hdHRyKHtmaWxsOkEubWFza0ZpbGx9KS5hZGQobCksdGhpcy5vdXRsaW5lPWYucGF0aCgpLmF0dHIoeyJzdHJva2Utd2lkdGgiOkMsc3Ryb2tlOkEub3V0bGluZUNvbG9yfSkuYWRkKGwpOwppZihyKXRoaXMuc2Nyb2xsYmFyR3JvdXA9az1mLmcoInNjcm9sbGJhciIpLmFkZCgpLG09dS50cmFja0JvcmRlcldpZHRoLHRoaXMuc2Nyb2xsYmFyVHJhY2s9bz1mLnJlY3QoKS5hdHRyKHt4OjAseTotbSUyLzIsZmlsbDp1LnRyYWNrQmFja2dyb3VuZENvbG9yLHN0cm9rZTp1LnRyYWNrQm9yZGVyQ29sb3IsInN0cm9rZS13aWR0aCI6bSxyOnUudHJhY2tCb3JkZXJSYWRpdXN8fDAsaGVpZ2h0Om59KS5hZGQoayksdGhpcy5zY3JvbGxiYXI9bT1mLnJlY3QoKS5hdHRyKHt5Oi1IJTIvMixoZWlnaHQ6bixmaWxsOnUuYmFyQmFja2dyb3VuZENvbG9yLHN0cm9rZTp1LmJhckJvcmRlckNvbG9yLCJzdHJva2Utd2lkdGgiOkgscjpJfSkuYWRkKGspLHRoaXMuc2Nyb2xsYmFyUmlmbGVzPWYucGF0aCgpLmF0dHIoe3N0cm9rZTp1LnJpZmxlQ29sb3IsInN0cm9rZS13aWR0aCI6MX0pLmFkZChrKX1lPWUuaXNSZXNpemluZz8iYW5pbWF0ZSI6ImF0dHIiO2lmKHope3RoaXMubGVmdFNoYWRlW2VdKEEubWFza0luc2lkZT8Ke3g6ZytiLHk6dyx3aWR0aDpjLWIsaGVpZ2h0Onh9Ont4OmcseTp3LHdpZHRoOmIsaGVpZ2h0Onh9KTtpZih0aGlzLnJpZ2h0U2hhZGUpdGhpcy5yaWdodFNoYWRlW2VdKHt4OmcrYyx5Oncsd2lkdGg6aC1jLGhlaWdodDp4fSk7dGhpcy5vdXRsaW5lW2VdKHtkOlsiTSIsaSxGLCJMIixnK2ItQixGLGcrYi1CLEYrRywiTCIsZytjLUIsRitHLCJMIixnK2MtQixGLGkraixGXS5jb25jYXQoQS5tYXNrSW5zaWRlP1siTSIsZytiK0IsRiwiTCIsZytjLUIsRl06W10pfSk7dGhpcy5kcmF3SGFuZGxlKGIrQiwwKTt0aGlzLmRyYXdIYW5kbGUoYytCLDEpfWlmKHImJmspdGhpcy5kcmF3U2Nyb2xsYmFyQnV0dG9uKDApLHRoaXMuZHJhd1Njcm9sbGJhckJ1dHRvbigxKSxrW2VdKHt0cmFuc2xhdGVYOmksdHJhbnNsYXRlWTp5KEYreCl9KSxvW2VdKHt3aWR0aDpqfSksZz1uK2IsaD1hLUgsaDx2JiYoRD0odi1oKS8yLGg9dixnLT1EKSx0aGlzLnNjcm9sbGJhclBhZD1ELG1bZV0oe3g6VShnKStIJQoyLzIsd2lkdGg6aH0pLHY9bitiK2EvMi0wLjUsdGhpcy5zY3JvbGxiYXJSaWZsZXMuYXR0cih7dmlzaWJpbGl0eTphPjEyPyJ2aXNpYmxlIjoiaGlkZGVuIn0pW2VdKHtkOlsiTSIsdi0zLG4vNCwiTCIsdi0zLDIqbi8zLCJNIix2LG4vNCwiTCIsdiwyKm4vMywiTSIsdiszLG4vNCwiTCIsdiszLDIqbi8zXX0pO3RoaXMuc2Nyb2xsYmFyUGFkPUQ7dGhpcy5yZW5kZXJlZD0hMH19fSxhZGRFdmVudHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNoYXJ0LmNvbnRhaW5lcixiPXRoaXMubW91c2VEb3duSGFuZGxlcixjPXRoaXMubW91c2VNb3ZlSGFuZGxlcixkPXRoaXMubW91c2VVcEhhbmRsZXIsZTtlPVtbYSwibW91c2Vkb3duIixiXSxbYSwibW91c2Vtb3ZlIixjXSxbQiwibW91c2V1cCIsZF1dO2ViJiZlLnB1c2goW2EsInRvdWNoc3RhcnQiLGJdLFthLCJ0b3VjaG1vdmUiLGNdLFtCLCJ0b3VjaGVuZCIsZF0pO24oZSxmdW5jdGlvbihhKXtELmFwcGx5KG51bGwsYSl9KTt0aGlzLl9ldmVudHM9CmV9LHJlbW92ZUV2ZW50czpmdW5jdGlvbigpe24odGhpcy5fZXZlbnRzLGZ1bmN0aW9uKGEpe1IuYXBwbHkobnVsbCxhKX0pO3RoaXMuX2V2ZW50cz11O3RoaXMubmF2aWdhdG9yRW5hYmxlZCYmdGhpcy5iYXNlU2VyaWVzJiZSKHRoaXMuYmFzZVNlcmllcywidXBkYXRlZERhdGEiLHRoaXMudXBkYXRlZERhdGFIYW5kbGVyKX0saW5pdDpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1hLmNoYXJ0LGMsZCxlPWEuc2Nyb2xsYmFySGVpZ2h0LGY9YS5uYXZpZ2F0b3JPcHRpb25zLGc9YS5oZWlnaHQsaD1hLnRvcCxpLGo9YS5iYXNlU2VyaWVzO2EubW91c2VEb3duSGFuZGxlcj1mdW5jdGlvbihkKXt2YXIgZD1iLnBvaW50ZXIubm9ybWFsaXplKGQpLGU9YS56b29tZWRNaW4sZj1hLnpvb21lZE1heCxoPWEudG9wLGs9YS5zY3JvbGxiYXJIZWlnaHQsaj1hLnNjcm9sbGVyTGVmdCxsPWEuc2Nyb2xsZXJXaWR0aCxuPWEubmF2aWdhdG9yTGVmdCxwPWEubmF2aWdhdG9yV2lkdGgsdD1hLnNjcm9sbGJhclBhZCwKcz1hLnJhbmdlLHU9ZC5jaGFydFgseT1kLmNoYXJ0WSxkPWIueEF4aXNbMF0sdyx6PWxiPzEwOjc7aWYoeT5oJiZ5PGgrZytrKWlmKChoPSFhLnNjcm9sbGJhckVuYWJsZWR8fHk8aCtnKSYmWC5hYnModS1lLW4pPHopYS5ncmFiYmVkTGVmdD0hMCxhLm90aGVySGFuZGxlUG9zPWYsYS5maXhlZEV4dHJlbWU9ZC5tYXgsYi5maXhlZFJhbmdlPW51bGw7ZWxzZSBpZihoJiZYLmFicyh1LWYtbik8eilhLmdyYWJiZWRSaWdodD0hMCxhLm90aGVySGFuZGxlUG9zPWUsYS5maXhlZEV4dHJlbWU9ZC5taW4sYi5maXhlZFJhbmdlPW51bGw7ZWxzZSBpZih1Pm4rZS10JiZ1PG4rZit0KWEuZ3JhYmJlZENlbnRlcj11LGEuZml4ZWRXaWR0aD1zLGk9dS1lO2Vsc2UgaWYodT5qJiZ1PGorbCl7Zj1oP3Utbi1zLzI6dTxuP2UtcyowLjI6dT5qK2wtaz9lK3MqMC4yOnU8bitlP2UtczpmO2lmKGY8MClmPTA7ZWxzZSBpZihmK3M+PXApZj1wLXMsdz1hLmdldFVuaW9uRXh0cmVtZXMoKS5kYXRhTWF4O2lmKGYhPT0KZSlhLmZpeGVkV2lkdGg9cyxlPWMudG9GaXhlZFJhbmdlKGYsZitzLG51bGwsdyksZC5zZXRFeHRyZW1lcyhlLm1pbixlLm1heCwhMCwhMSx7dHJpZ2dlcjoibmF2aWdhdG9yIn0pfX07YS5tb3VzZU1vdmVIYW5kbGVyPWZ1bmN0aW9uKGMpe3ZhciBkPWEuc2Nyb2xsYmFySGVpZ2h0LGU9YS5uYXZpZ2F0b3JMZWZ0LGY9YS5uYXZpZ2F0b3JXaWR0aCxnPWEuc2Nyb2xsZXJMZWZ0LGg9YS5zY3JvbGxlcldpZHRoLGs9YS5yYW5nZSxqLGw7aWYoIWMudG91Y2hlc3x8Yy50b3VjaGVzWzBdLnBhZ2VYIT09MCljPWIucG9pbnRlci5ub3JtYWxpemUoYyksaj1jLmNoYXJ0WCxqPGU/aj1lOmo+ZytoLWQmJihqPWcraC1kKSxhLmdyYWJiZWRMZWZ0PyhsPSEwLGEucmVuZGVyKDAsMCxqLWUsYS5vdGhlckhhbmRsZVBvcykpOmEuZ3JhYmJlZFJpZ2h0PyhsPSEwLGEucmVuZGVyKDAsMCxhLm90aGVySGFuZGxlUG9zLGotZSkpOmEuZ3JhYmJlZENlbnRlciYmKGw9ITAsajxpP2o9aTpqPmYraS1rJiYoaj0KZitpLWspLGEucmVuZGVyKDAsMCxqLWksai1pK2spKSxsJiZhLnNjcm9sbGJhck9wdGlvbnMubGl2ZVJlZHJhdyYmc2V0VGltZW91dChmdW5jdGlvbigpe2EubW91c2VVcEhhbmRsZXIoYyl9LDApLGEuaGFzRHJhZ2dlZD1sfTthLm1vdXNlVXBIYW5kbGVyPWZ1bmN0aW9uKGQpe3ZhciBlLGY7aWYoYS5oYXNEcmFnZ2VkKXtpZihhLnpvb21lZE1pbj09PWEub3RoZXJIYW5kbGVQb3MpZT1hLmZpeGVkRXh0cmVtZTtlbHNlIGlmKGEuem9vbWVkTWF4PT09YS5vdGhlckhhbmRsZVBvcylmPWEuZml4ZWRFeHRyZW1lO2lmKGEuem9vbWVkTWF4PT09YS5uYXZpZ2F0b3JXaWR0aClmPWEuZ2V0VW5pb25FeHRyZW1lcygpLmRhdGFNYXg7ZT1jLnRvRml4ZWRSYW5nZShhLnpvb21lZE1pbixhLnpvb21lZE1heCxlLGYpO3QoZS5taW4pJiZiLnhBeGlzWzBdLnNldEV4dHJlbWVzKGUubWluLGUubWF4LCEwLCExLHt0cmlnZ2VyOiJuYXZpZ2F0b3IiLHRyaWdnZXJPcDoibmF2aWdhdG9yLWRyYWciLERPTUV2ZW50OmR9KX1pZihkLnR5cGUhPT0KIm1vdXNlbW92ZSIpYS5ncmFiYmVkTGVmdD1hLmdyYWJiZWRSaWdodD1hLmdyYWJiZWRDZW50ZXI9YS5maXhlZFdpZHRoPWEuZml4ZWRFeHRyZW1lPWEub3RoZXJIYW5kbGVQb3M9YS5oYXNEcmFnZ2VkPWk9bnVsbH07dmFyIGs9Yi54QXhpcy5sZW5ndGgsbD1iLnlBeGlzLmxlbmd0aDtiLmV4dHJhQm90dG9tTWFyZ2luPWEub3V0bGluZUhlaWdodCtmLm1hcmdpbjthLm5hdmlnYXRvckVuYWJsZWQ/KGEueEF4aXM9Yz1uZXcgRihiLEMoe2JyZWFrczpqJiZqLnhBeGlzLm9wdGlvbnMuYnJlYWtzLG9yZGluYWw6aiYmai54QXhpcy5vcHRpb25zLm9yZGluYWx9LGYueEF4aXMse2lkOiJuYXZpZ2F0b3IteC1heGlzIixpc1g6ITAsdHlwZToiZGF0ZXRpbWUiLGluZGV4OmssaGVpZ2h0Omcsb2Zmc2V0OjAsb2Zmc2V0TGVmdDplLG9mZnNldFJpZ2h0Oi1lLGtlZXBPcmRpbmFsUGFkZGluZzohMCxzdGFydE9uVGljazohMSxlbmRPblRpY2s6ITEsbWluUGFkZGluZzowLG1heFBhZGRpbmc6MCx6b29tRW5hYmxlZDohMX0pKSwKYS55QXhpcz1kPW5ldyBGKGIsQyhmLnlBeGlzLHtpZDoibmF2aWdhdG9yLXktYXhpcyIsYWxpZ25UaWNrczohMSxoZWlnaHQ6ZyxvZmZzZXQ6MCxpbmRleDpsLHpvb21FbmFibGVkOiExfSkpLGp8fGYuc2VyaWVzLmRhdGE/YS5hZGRCYXNlU2VyaWVzKCk6Yi5zZXJpZXMubGVuZ3RoPT09MCYmUyhiLCJyZWRyYXciLGZ1bmN0aW9uKGMsZCl7aWYoYi5zZXJpZXMubGVuZ3RoPjAmJiFhLnNlcmllcylhLnNldEJhc2VTZXJpZXMoKSxiLnJlZHJhdz1jO2MuY2FsbChiLGQpfSkpOmEueEF4aXM9Yz17dHJhbnNsYXRlOmZ1bmN0aW9uKGEsYyl7dmFyIGQ9Yi54QXhpc1swXSxmPWQuZ2V0RXh0cmVtZXMoKSxnPWIucGxvdFdpZHRoLTIqZSxoPXhiKCJtaW4iLGQub3B0aW9ucy5taW4sZi5kYXRhTWluKSxkPXhiKCJtYXgiLGQub3B0aW9ucy5tYXgsZi5kYXRhTWF4KS1oO3JldHVybiBjP2EqZC9nK2g6ZyooYS1oKS9kfSx0b0ZpeGVkUmFuZ2U6Ri5wcm90b3R5cGUudG9GaXhlZFJhbmdlfTtTKGIsCiJnZXRNYXJnaW5zIixmdW5jdGlvbihiKXt2YXIgZT10aGlzLmxlZ2VuZCxmPWUub3B0aW9ucztiLmFwcGx5KHRoaXMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpO2EudG9wPWg9YS5uYXZpZ2F0b3JPcHRpb25zLnRvcHx8dGhpcy5jaGFydEhlaWdodC1hLmhlaWdodC1hLnNjcm9sbGJhckhlaWdodC10aGlzLnNwYWNpbmdbMl0tKGYudmVydGljYWxBbGlnbj09PSJib3R0b20iJiZmLmVuYWJsZWQmJiFmLmZsb2F0aW5nP2UubGVnZW5kSGVpZ2h0K3AoZi5tYXJnaW4sMTApOjApO2lmKGMmJmQpYy5vcHRpb25zLnRvcD1kLm9wdGlvbnMudG9wPWgsYy5zZXRBeGlzU2l6ZSgpLGQuc2V0QXhpc1NpemUoKX0pO2EuYWRkRXZlbnRzKCl9LGdldFVuaW9uRXh0cmVtZXM6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5jaGFydC54QXhpc1swXSxjPXRoaXMueEF4aXMsZD1jLm9wdGlvbnMsZT1iLm9wdGlvbnMsZjtpZighYXx8Yi5kYXRhTWluIT09bnVsbClmPXtkYXRhTWluOnAoZCYmZC5taW4seGIoIm1pbiIsCmUubWluLGIuZGF0YU1pbixjLmRhdGFNaW4pKSxkYXRhTWF4OnAoZCYmZC5tYXgseGIoIm1heCIsZS5tYXgsYi5kYXRhTWF4LGMuZGF0YU1heCkpfTtyZXR1cm4gZn0sc2V0QmFzZVNlcmllczpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNoYXJ0LGE9YXx8Yi5vcHRpb25zLm5hdmlnYXRvci5iYXNlU2VyaWVzO3RoaXMuc2VyaWVzJiZ0aGlzLnNlcmllcy5yZW1vdmUoKTt0aGlzLmJhc2VTZXJpZXM9Yi5zZXJpZXNbYV18fHR5cGVvZiBhPT09InN0cmluZyImJmIuZ2V0KGEpfHxiLnNlcmllc1swXTt0aGlzLnhBeGlzJiZ0aGlzLmFkZEJhc2VTZXJpZXMoKX0sYWRkQmFzZVNlcmllczpmdW5jdGlvbigpe3ZhciBhPXRoaXMuYmFzZVNlcmllcyxiPWE/YS5vcHRpb25zOnt9LGM9Yi5kYXRhLGQ9dGhpcy5uYXZpZ2F0b3JPcHRpb25zLnNlcmllcyxlO2U9ZC5kYXRhO3RoaXMuaGFzTmF2aWdhdG9yRGF0YT0hIWU7Yj1DKGIsZCx7ZW5hYmxlTW91c2VUcmFja2luZzohMSxncm91cDoibmF2IixwYWRYQXhpczohMSwKeEF4aXM6Im5hdmlnYXRvci14LWF4aXMiLHlBeGlzOiJuYXZpZ2F0b3IteS1heGlzIixuYW1lOiJOYXZpZ2F0b3IiLHNob3dJbkxlZ2VuZDohMSxzdGFja2luZzohMSxpc0ludGVybmFsOiEwLHZpc2libGU6ITB9KTtiLmRhdGE9ZXx8Yy5zbGljZSgwKTt0aGlzLnNlcmllcz10aGlzLmNoYXJ0LmluaXRTZXJpZXMoYik7aWYoYSYmdGhpcy5uYXZpZ2F0b3JPcHRpb25zLmFkYXB0VG9VcGRhdGVkRGF0YSE9PSExKUQoYSwidXBkYXRlZERhdGEiLHRoaXMudXBkYXRlZERhdGFIYW5kbGVyKSxhLnVzZXJPcHRpb25zLmV2ZW50cz13KGEudXNlck9wdGlvbnMuZXZlbnQse3VwZGF0ZWREYXRhOnRoaXMudXBkYXRlZERhdGFIYW5kbGVyfSl9LHVwZGF0ZWREYXRhSGFuZGxlcjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuY2hhcnQuc2Nyb2xsZXIsYj1hLmJhc2VTZXJpZXMsYz1iLnhBeGlzLGQ9Yy5nZXRFeHRyZW1lcygpLGU9ZC5taW4sZj1kLm1heCxnPWQuZGF0YU1pbixkPWQuZGF0YU1heCxoPWYtCmUsaSxqLGssbCxtLG89YS5zZXJpZXM7aT1vLnhEYXRhO3ZhciBuPSEhYy5zZXRFeHRyZW1lcztqPWY+PWlbaS5sZW5ndGgtMV0tKHRoaXMuY2xvc2VzdFBvaW50UmFuZ2V8fDApO2k9ZTw9ZztpZighYS5oYXNOYXZpZ2F0b3JEYXRhKW8ub3B0aW9ucy5wb2ludFN0YXJ0PWIueERhdGFbMF0sby5zZXREYXRhKGIub3B0aW9ucy5kYXRhLCExKSxtPSEwO2kmJihsPWcsaz1sK2gpO2omJihrPWQsaXx8KGw9cyhrLWgsby54RGF0YVswXSkpKTtuJiYoaXx8aik/aXNOYU4obCl8fGMuc2V0RXh0cmVtZXMobCxrLCEwLCExLHt0cmlnZ2VyOiJ1cGRhdGVkRGF0YSJ9KToobSYmdGhpcy5jaGFydC5yZWRyYXcoITEpLGEucmVuZGVyKHMoZSxnKSxFKGYsZCkpKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMucmVtb3ZlRXZlbnRzKCk7bihbdGhpcy54QXhpcyx0aGlzLnlBeGlzLHRoaXMubGVmdFNoYWRlLHRoaXMucmlnaHRTaGFkZSx0aGlzLm91dGxpbmUsdGhpcy5zY3JvbGxiYXJUcmFjayx0aGlzLnNjcm9sbGJhclJpZmxlcywKdGhpcy5zY3JvbGxiYXJHcm91cCx0aGlzLnNjcm9sbGJhcl0sZnVuY3Rpb24oYSl7YSYmYS5kZXN0cm95JiZhLmRlc3Ryb3koKX0pO3RoaXMueEF4aXM9dGhpcy55QXhpcz10aGlzLmxlZnRTaGFkZT10aGlzLnJpZ2h0U2hhZGU9dGhpcy5vdXRsaW5lPXRoaXMuc2Nyb2xsYmFyVHJhY2s9dGhpcy5zY3JvbGxiYXJSaWZsZXM9dGhpcy5zY3JvbGxiYXJHcm91cD10aGlzLnNjcm9sbGJhcj1udWxsO24oW3RoaXMuc2Nyb2xsYmFyQnV0dG9ucyx0aGlzLmhhbmRsZXMsdGhpcy5lbGVtZW50c1RvRGVzdHJveV0sZnVuY3Rpb24oYSl7UGEoYSl9KX19O3ouU2Nyb2xsZXI9SWI7UyhGLnByb3RvdHlwZSwiem9vbSIsZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMuY2hhcnQsZT1kLm9wdGlvbnMsZj1lLmNoYXJ0Lnpvb21UeXBlLGc9ZS5uYXZpZ2F0b3IsZT1lLnJhbmdlU2VsZWN0b3IsaDtpZih0aGlzLmlzWEF4aXMmJihnJiZnLmVuYWJsZWR8fGUmJmUuZW5hYmxlZCkpaWYoZj09PSJ4IilkLnJlc2V0Wm9vbUJ1dHRvbj0KImJsb2NrZWQiO2Vsc2UgaWYoZj09PSJ5IiloPSExO2Vsc2UgaWYoZj09PSJ4eSIpZD10aGlzLnByZXZpb3VzWm9vbSx0KGIpP3RoaXMucHJldmlvdXNab29tPVt0aGlzLm1pbix0aGlzLm1heF06ZCYmKGI9ZFswXSxjPWRbMV0sZGVsZXRlIHRoaXMucHJldmlvdXNab29tKTtyZXR1cm4gaCE9PXU/aDphLmNhbGwodGhpcyxiLGMpfSk7UyhDYS5wcm90b3R5cGUsImluaXQiLGZ1bmN0aW9uKGEsYixjKXtEKHRoaXMsImJlZm9yZVJlbmRlciIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9wdGlvbnM7aWYoYS5uYXZpZ2F0b3IuZW5hYmxlZHx8YS5zY3JvbGxiYXIuZW5hYmxlZCl0aGlzLnNjcm9sbGVyPW5ldyBJYih0aGlzKX0pO2EuY2FsbCh0aGlzLGIsYyl9KTtTKFAucHJvdG90eXBlLCJhZGRQb2ludCIsZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj10aGlzLm9wdGlvbnMudHVyYm9UaHJlc2hvbGQ7ZiYmdGhpcy54RGF0YS5sZW5ndGg+ZiYmZmEoYikmJiFNYShiKSYmdGhpcy5jaGFydC5zY3JvbGxlciYmCmVhKDIwLCEwKTthLmNhbGwodGhpcyxiLGMsZCxlKX0pO3coTyx7cmFuZ2VTZWxlY3Rvcjp7YnV0dG9uVGhlbWU6e3dpZHRoOjI4LGhlaWdodDoxOCxmaWxsOiIjZjdmN2Y3IixwYWRkaW5nOjIscjowLCJzdHJva2Utd2lkdGgiOjAsc3R5bGU6e2NvbG9yOiIjNDQ0IixjdXJzb3I6InBvaW50ZXIiLGZvbnRXZWlnaHQ6Im5vcm1hbCJ9LHpJbmRleDo3LHN0YXRlczp7aG92ZXI6e2ZpbGw6IiNlN2U3ZTcifSxzZWxlY3Q6e2ZpbGw6IiNlN2YwZjkiLHN0eWxlOntjb2xvcjoiYmxhY2siLGZvbnRXZWlnaHQ6ImJvbGQifX19fSxoZWlnaHQ6MzUsaW5wdXRQb3NpdGlvbjp7YWxpZ246InJpZ2h0In0sbGFiZWxTdHlsZTp7Y29sb3I6IiM2NjYifX19KTtPLmxhbmc9QyhPLmxhbmcse3JhbmdlU2VsZWN0b3Jab29tOiJab29tIixyYW5nZVNlbGVjdG9yRnJvbToiRnJvbSIscmFuZ2VTZWxlY3RvclRvOiJUbyJ9KTtKYi5wcm90b3R5cGU9e2NsaWNrQnV0dG9uOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcywKZD1jLnNlbGVjdGVkLGU9Yy5jaGFydCxmPWMuYnV0dG9ucyxnPWMuYnV0dG9uT3B0aW9uc1thXSxoPWUueEF4aXNbMF0saT1lLnNjcm9sbGVyJiZlLnNjcm9sbGVyLmdldFVuaW9uRXh0cmVtZXMoKXx8aHx8e30saj1pLmRhdGFNaW4saz1pLmRhdGFNYXgsbCxtPWgmJnkoRShoLm1heCxwKGssaC5tYXgpKSksbz1nLnR5cGUscSxpPWcuX3JhbmdlLHIsdCx3LHY9Zy5kYXRhR3JvdXBpbmc7aWYoIShqPT09bnVsbHx8az09PW51bGx8fGE9PT1jLnNlbGVjdGVkKSl7ZS5maXhlZFJhbmdlPWk7aWYodil0aGlzLmZvcmNlZERhdGFHcm91cGluZz0hMCxGLnByb3RvdHlwZS5zZXREYXRhR3JvdXBpbmcuY2FsbChofHx7Y2hhcnQ6dGhpcy5jaGFydH0sdiwhMSk7aWYobz09PSJtb250aCJ8fG89PT0ieWVhciIpaWYoaCl7aWYobz17cmFuZ2U6ZyxtYXg6bSxkYXRhTWluOmosZGF0YU1heDprfSxsPWgubWluRnJvbVJhbmdlLmNhbGwobyksdHlwZW9mIG8ubmV3TWF4PT09Im51bWJlciIpbT1vLm5ld01heH1lbHNlIGk9Cmc7ZWxzZSBpZihpKWw9cyhtLWksaiksbT1FKGwraSxrKTtlbHNlIGlmKG89PT0ieXRkIilpZihoKXtpZihrPT09dSlqPU51bWJlci5NQVhfVkFMVUUsaz1OdW1iZXIuTUlOX1ZBTFVFLG4oZS5zZXJpZXMsZnVuY3Rpb24oYSl7YT1hLnhEYXRhO2o9RShhWzBdLGopO2s9cyhhW2EubGVuZ3RoLTFdLGspfSksYj0hMTttPW5ldyBkYShrKTtsPW0uZ2V0RnVsbFllYXIoKTtsPXI9cyhqfHwwLGRhLlVUQyhsLDAsMSkpO209bS5nZXRUaW1lKCk7bT1FKGt8fG0sbSl9ZWxzZXtEKGUsImJlZm9yZVJlbmRlciIsZnVuY3Rpb24oKXtjLmNsaWNrQnV0dG9uKGEpfSk7cmV0dXJufWVsc2Ugbz09PSJhbGwiJiZoJiYobD1qLG09ayk7ZltkXSYmZltkXS5zZXRTdGF0ZSgwKTtpZihmW2FdKWZbYV0uc2V0U3RhdGUoMiksYy5sYXN0U2VsZWN0ZWQ9YTtoPyhoLnNldEV4dHJlbWVzKGwsbSxwKGIsMSksMCx7dHJpZ2dlcjoicmFuZ2VTZWxlY3RvckJ1dHRvbiIscmFuZ2VTZWxlY3RvckJ1dHRvbjpnfSksYy5zZXRTZWxlY3RlZChhKSk6CihxPWUub3B0aW9ucy54QXhpc1swXSx3PXEucmFuZ2UscS5yYW5nZT1pLHQ9cS5taW4scS5taW49cixjLnNldFNlbGVjdGVkKGEpLEQoZSwibG9hZCIsZnVuY3Rpb24oKXtxLnJhbmdlPXc7cS5taW49dH0pKX19LHNldFNlbGVjdGVkOmZ1bmN0aW9uKGEpe3RoaXMuc2VsZWN0ZWQ9dGhpcy5vcHRpb25zLnNlbGVjdGVkPWF9LGRlZmF1bHRCdXR0b25zOlt7dHlwZToibW9udGgiLGNvdW50OjEsdGV4dDoiMW0ifSx7dHlwZToibW9udGgiLGNvdW50OjMsdGV4dDoiM20ifSx7dHlwZToibW9udGgiLGNvdW50OjYsdGV4dDoiNm0ifSx7dHlwZToieXRkIix0ZXh0OiJZVEQifSx7dHlwZToieWVhciIsY291bnQ6MSx0ZXh0OiIxeSJ9LHt0eXBlOiJhbGwiLHRleHQ6IkFsbCJ9XSxpbml0OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1hLm9wdGlvbnMucmFuZ2VTZWxlY3RvcixkPWMuYnV0dG9uc3x8W10uY29uY2F0KGIuZGVmYXVsdEJ1dHRvbnMpLGU9Yy5zZWxlY3RlZCxmPWIuYmx1cklucHV0cz0KZnVuY3Rpb24oKXt2YXIgYT1iLm1pbklucHV0LGM9Yi5tYXhJbnB1dDthJiZhLmJsdXImJk0oYSwiYmx1ciIpO2MmJmMuYmx1ciYmTShjLCJibHVyIil9O2IuY2hhcnQ9YTtiLm9wdGlvbnM9YztiLmJ1dHRvbnM9W107YS5leHRyYVRvcE1hcmdpbj1jLmhlaWdodDtiLmJ1dHRvbk9wdGlvbnM9ZDtEKGEuY29udGFpbmVyLCJtb3VzZWRvd24iLGYpO0QoYSwicmVzaXplIixmKTtuKGQsYi5jb21wdXRlQnV0dG9uUmFuZ2UpO2UhPT11JiZkW2VdJiZ0aGlzLmNsaWNrQnV0dG9uKGUsITEpO0QoYSwibG9hZCIsZnVuY3Rpb24oKXtEKGEueEF4aXNbMF0sInNldEV4dHJlbWVzIixmdW5jdGlvbihjKXt0aGlzLm1heC10aGlzLm1pbiE9PWEuZml4ZWRSYW5nZSYmYy50cmlnZ2VyIT09InJhbmdlU2VsZWN0b3JCdXR0b24iJiZjLnRyaWdnZXIhPT0idXBkYXRlZERhdGEiJiZiLmZvcmNlZERhdGFHcm91cGluZyYmdGhpcy5zZXREYXRhR3JvdXBpbmcoITEsITEpfSk7RChhLnhBeGlzWzBdLCJhZnRlclNldEV4dHJlbWVzIiwKZnVuY3Rpb24oKXtiLnVwZGF0ZUJ1dHRvblN0YXRlcyghMCl9KX0pfSx1cGRhdGVCdXR0b25TdGF0ZXM6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPXRoaXMuY2hhcnQsZD1jLnhBeGlzWzBdLGU9Yy5zY3JvbGxlciYmYy5zY3JvbGxlci5nZXRVbmlvbkV4dHJlbWVzKCl8fGQsZj1lLmRhdGFNaW4sZz1lLmRhdGFNYXgsaD1iLnNlbGVjdGVkLGk9Yi5vcHRpb25zLmFsbEJ1dHRvbnNFbmFibGVkLGo9Yi5idXR0b25zO2EmJmMuZml4ZWRSYW5nZSE9PXkoZC5tYXgtZC5taW4pJiYoaltoXSYmaltoXS5zZXRTdGF0ZSgwKSxiLnNldFNlbGVjdGVkKG51bGwpKTtuKGIuYnV0dG9uT3B0aW9ucyxmdW5jdGlvbihhLGUpe3ZhciBtPXkoZC5tYXgtZC5taW4pLG89YS5fcmFuZ2Usbj1hLnR5cGUscD1hLmNvdW50fHwxLHQ9bz5nLWYscz1vPGQubWluUmFuZ2Usdj1hLnR5cGU9PT0iYWxsIiYmZC5tYXgtZC5taW4+PWctZiYmaltlXS5zdGF0ZSE9PTIsdT1hLnR5cGU9PT0ieXRkIiYmbGEoIiVZIixmKT09PQpsYSgiJVkiLGcpLHc9Yy5yZW5kZXJlci5mb3JFeHBvcnQmJmU9PT1oLG89bz09PW0sej0hZC5oYXNWaXNpYmxlU2VyaWVzO2lmKChuPT09Im1vbnRoInx8bj09PSJ5ZWFyIikmJm0+PXttb250aDoyOCx5ZWFyOjM2NX1bbl0qODY0RTUqcCYmbTw9e21vbnRoOjMxLHllYXI6MzY2fVtuXSo4NjRFNSpwKW89ITA7d3x8byYmZSE9PWgmJmU9PT1iLmxhc3RTZWxlY3RlZD8oYi5zZXRTZWxlY3RlZChlKSxqW2VdLnNldFN0YXRlKDIpKTohaSYmKHR8fHN8fHZ8fHV8fHopP2pbZV0uc2V0U3RhdGUoMyk6altlXS5zdGF0ZT09PTMmJmpbZV0uc2V0U3RhdGUoMCl9KX0sY29tcHV0ZUJ1dHRvblJhbmdlOmZ1bmN0aW9uKGEpe3ZhciBiPWEudHlwZSxjPWEuY291bnR8fDEsZD17bWlsbGlzZWNvbmQ6MSxzZWNvbmQ6MUUzLG1pbnV0ZTo2RTQsaG91cjozNkU1LGRheTo4NjRFNSx3ZWVrOjYwNDhFNX07aWYoZFtiXSlhLl9yYW5nZT1kW2JdKmM7ZWxzZSBpZihiPT09Im1vbnRoInx8Yj09PSJ5ZWFyIilhLl9yYW5nZT0Ke21vbnRoOjMwLHllYXI6MzY1fVtiXSo4NjRFNSpjfSxzZXRJbnB1dFZhbHVlOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jaGFydC5vcHRpb25zLnJhbmdlU2VsZWN0b3I7aWYodChiKSl0aGlzW2ErIklucHV0Il0uSENUaW1lPWI7dGhpc1thKyJJbnB1dCJdLnZhbHVlPWxhKGMuaW5wdXRFZGl0RGF0ZUZvcm1hdHx8IiVZLSVtLSVkIix0aGlzW2ErIklucHV0Il0uSENUaW1lKTt0aGlzW2ErIkRhdGVCb3giXS5hdHRyKHt0ZXh0OmxhKGMuaW5wdXREYXRlRm9ybWF0fHwiJWIgJWUsICVZIix0aGlzW2ErIklucHV0Il0uSENUaW1lKX0pfSxzaG93SW5wdXQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5pbnB1dEdyb3VwLGM9dGhpc1thKyJEYXRlQm94Il07SSh0aGlzW2ErIklucHV0Il0se2xlZnQ6Yi50cmFuc2xhdGVYK2MueCsicHgiLHRvcDpiLnRyYW5zbGF0ZVkrInB4Iix3aWR0aDpjLndpZHRoLTIrInB4IixoZWlnaHQ6Yy5oZWlnaHQtMisicHgiLGJvcmRlcjoiMnB4IHNvbGlkIHNpbHZlciJ9KX0sCmhpZGVJbnB1dDpmdW5jdGlvbihhKXtJKHRoaXNbYSsiSW5wdXQiXSx7Ym9yZGVyOjAsd2lkdGg6IjFweCIsaGVpZ2h0OiIxcHgifSk7dGhpcy5zZXRJbnB1dFZhbHVlKGEpfSxkcmF3SW5wdXQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPWIuY2hhcnQsZD1jLnJlbmRlcmVyLnN0eWxlLGU9Yy5yZW5kZXJlcixmPWMub3B0aW9ucy5yYW5nZVNlbGVjdG9yLGc9Yi5kaXYsaD1hPT09Im1pbiIsaSxqLGs9dGhpcy5pbnB1dEdyb3VwO3RoaXNbYSsiTGFiZWwiXT1qPWUubGFiZWwoTy5sYW5nW2g/InJhbmdlU2VsZWN0b3JGcm9tIjoicmFuZ2VTZWxlY3RvclRvIl0sdGhpcy5pbnB1dEdyb3VwLm9mZnNldCkuYXR0cih7cGFkZGluZzoyfSkuY3NzKEMoZCxmLmxhYmVsU3R5bGUpKS5hZGQoayk7ay5vZmZzZXQrPWoud2lkdGgrNTt0aGlzW2ErIkRhdGVCb3giXT1lPWUubGFiZWwoIiIsay5vZmZzZXQpLmF0dHIoe3BhZGRpbmc6Mix3aWR0aDpmLmlucHV0Qm94V2lkdGh8fDkwLGhlaWdodDpmLmlucHV0Qm94SGVpZ2h0fHwKMTcsc3Ryb2tlOmYuaW5wdXRCb3hCb3JkZXJDb2xvcnx8InNpbHZlciIsInN0cm9rZS13aWR0aCI6MX0pLmNzcyhDKHt0ZXh0QWxpZ246ImNlbnRlciIsY29sb3I6IiM0NDQifSxkLGYuaW5wdXRTdHlsZSkpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtiLnNob3dJbnB1dChhKTtiW2ErIklucHV0Il0uZm9jdXMoKX0pLmFkZChrKTtrLm9mZnNldCs9ZS53aWR0aCsoaD8xMDowKTt0aGlzW2ErIklucHV0Il09aT1jYSgiaW5wdXQiLHtuYW1lOmEsY2xhc3NOYW1lOiJoaWdoY2hhcnRzLXJhbmdlLXNlbGVjdG9yIix0eXBlOiJ0ZXh0In0sdyh7cG9zaXRpb246ImFic29sdXRlIixib3JkZXI6MCx3aWR0aDoiMXB4IixoZWlnaHQ6IjFweCIscGFkZGluZzowLHRleHRBbGlnbjoiY2VudGVyIixmb250U2l6ZTpkLmZvbnRTaXplLGZvbnRGYW1pbHk6ZC5mb250RmFtaWx5LGxlZnQ6Ii05ZW0iLHRvcDpjLnBsb3RUb3ArInB4In0sZi5pbnB1dFN0eWxlKSxnKTtpLm9uZm9jdXM9ZnVuY3Rpb24oKXtiLnNob3dJbnB1dChhKX07Cmkub25ibHVyPWZ1bmN0aW9uKCl7Yi5oaWRlSW5wdXQoYSl9O2kub25jaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgYT1pLnZhbHVlLGQ9KGYuaW5wdXREYXRlUGFyc2VyfHxkYS5wYXJzZSkoYSksZT1jLnhBeGlzWzBdLGc9ZS5kYXRhTWluLGo9ZS5kYXRhTWF4O2lzTmFOKGQpJiYoZD1hLnNwbGl0KCItIiksZD1kYS5VVEMoRyhkWzBdKSxHKGRbMV0pLTEsRyhkWzJdKSkpO2lzTmFOKGQpfHwoTy5nbG9iYWwudXNlVVRDfHwoZCs9KG5ldyBkYSkuZ2V0VGltZXpvbmVPZmZzZXQoKSo2RTQpLGg/ZD5iLm1heElucHV0LkhDVGltZT9kPXU6ZDxnJiYoZD1nKTpkPGIubWluSW5wdXQuSENUaW1lP2Q9dTpkPmomJihkPWopLGQhPT11JiZjLnhBeGlzWzBdLnNldEV4dHJlbWVzKGg/ZDplLm1pbixoP2UubWF4OmQsdSx1LHt0cmlnZ2VyOiJyYW5nZVNlbGVjdG9ySW5wdXQifSkpfX0sZ2V0UG9zaXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNoYXJ0LGI9YS5vcHRpb25zLnJhbmdlU2VsZWN0b3IsYT0KcCgoYi5idXR0b25Qb3NpdGlvbnx8e30pLnksYS5wbG90VG9wLWEuYXhpc09mZnNldFswXS1iLmhlaWdodCk7cmV0dXJue2J1dHRvblRvcDphLGlucHV0VG9wOmEtMTB9fSxyZW5kZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLGQ9Yy5jaGFydCxlPWQucmVuZGVyZXIsZj1kLmNvbnRhaW5lcixnPWQub3B0aW9ucyxoPWcuZXhwb3J0aW5nJiZnLm5hdmlnYXRpb24mJmcubmF2aWdhdGlvbi5idXR0b25PcHRpb25zLGk9Zy5yYW5nZVNlbGVjdG9yLGo9Yy5idXR0b25zLGc9Ty5sYW5nLGs9Yy5kaXYsaz1jLmlucHV0R3JvdXAsbD1pLmJ1dHRvblRoZW1lLG09aS5idXR0b25Qb3NpdGlvbnx8e30sbz1pLmlucHV0RW5hYmxlZCxxPWwmJmwuc3RhdGVzLHI9ZC5wbG90TGVmdCxzLHU9dGhpcy5nZXRQb3NpdGlvbigpLHY9Yy5ncm91cCx4PWMucmVuZGVyZWQ7aWYoIXgmJihjLmdyb3VwPXY9ZS5nKCJyYW5nZS1zZWxlY3Rvci1idXR0b25zIikuYWRkKCksYy56b29tVGV4dD1lLnRleHQoZy5yYW5nZVNlbGVjdG9yWm9vbSwKcChtLngsciksMTUpLmNzcyhpLmxhYmVsU3R5bGUpLmFkZCh2KSxzPXAobS54LHIpK2Muem9vbVRleHQuZ2V0QkJveCgpLndpZHRoKzUsbihjLmJ1dHRvbk9wdGlvbnMsZnVuY3Rpb24oYSxiKXtqW2JdPWUuYnV0dG9uKGEudGV4dCxzLDAsZnVuY3Rpb24oKXtjLmNsaWNrQnV0dG9uKGIpO2MuaXNBY3RpdmU9ITB9LGwscSYmcS5ob3ZlcixxJiZxLnNlbGVjdCxxJiZxLmRpc2FibGVkKS5jc3Moe3RleHRBbGlnbjoiY2VudGVyIn0pLmFkZCh2KTtzKz1qW2JdLndpZHRoK3AoaS5idXR0b25TcGFjaW5nLDUpO2Muc2VsZWN0ZWQ9PT1iJiZqW2JdLnNldFN0YXRlKDIpfSksYy51cGRhdGVCdXR0b25TdGF0ZXMoKSxvIT09ITEpKWMuZGl2PWs9Y2EoImRpdiIsbnVsbCx7cG9zaXRpb246InJlbGF0aXZlIixoZWlnaHQ6MCx6SW5kZXg6MX0pLGYucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoayxmKSxjLmlucHV0R3JvdXA9az1lLmcoImlucHV0LWdyb3VwIikuYWRkKCksay5vZmZzZXQ9MCxjLmRyYXdJbnB1dCgibWluIiksCmMuZHJhd0lucHV0KCJtYXgiKTt2W3g/ImFuaW1hdGUiOiJhdHRyIl0oe3RyYW5zbGF0ZVk6dS5idXR0b25Ub3B9KTtvIT09ITEmJihrLmFsaWduKHcoe3k6dS5pbnB1dFRvcCx3aWR0aDprLm9mZnNldCx4OmgmJnUuaW5wdXRUb3A8KGgueXx8MCkraC5oZWlnaHQtZC5zcGFjaW5nWzBdPy00MDowfSxpLmlucHV0UG9zaXRpb24pLCEwLGQuc3BhY2luZ0JveCksdChvKXx8KGQ9di5nZXRCQm94KCksa1trLnRyYW5zbGF0ZVg8ZC54K2Qud2lkdGgrMTA/ImhpZGUiOiJzaG93Il0oKSksYy5zZXRJbnB1dFZhbHVlKCJtaW4iLGEpLGMuc2V0SW5wdXRWYWx1ZSgibWF4IixiKSk7Yy5yZW5kZXJlZD0hMH0sZGVzdHJveTpmdW5jdGlvbigpe3ZhciBhPXRoaXMubWluSW5wdXQsYj10aGlzLm1heElucHV0LGM9dGhpcy5jaGFydCxkPXRoaXMuYmx1cklucHV0cyxlO1IoYy5jb250YWluZXIsIm1vdXNlZG93biIsZCk7UihjLCJyZXNpemUiLGQpO1BhKHRoaXMuYnV0dG9ucyk7aWYoYSlhLm9uZm9jdXM9CmEub25ibHVyPWEub25jaGFuZ2U9bnVsbDtpZihiKWIub25mb2N1cz1iLm9uYmx1cj1iLm9uY2hhbmdlPW51bGw7Zm9yKGUgaW4gdGhpcyl0aGlzW2VdJiZlIT09ImNoYXJ0IiYmKHRoaXNbZV0uZGVzdHJveT90aGlzW2VdLmRlc3Ryb3koKTp0aGlzW2VdLm5vZGVUeXBlJiZYYSh0aGlzW2VdKSksdGhpc1tlXT1udWxsfX07Ri5wcm90b3R5cGUudG9GaXhlZFJhbmdlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMuY2hhcnQmJnRoaXMuY2hhcnQuZml4ZWRSYW5nZSxhPXAoYyx0aGlzLnRyYW5zbGF0ZShhLCEwKSksYj1wKGQsdGhpcy50cmFuc2xhdGUoYiwhMCkpLGM9ZSYmKGItYSkvZTtjPjAuNyYmYzwxLjMmJihkP2E9Yi1lOmI9YStlKTtpc05hTihhKSYmKGE9Yj12b2lkIDApO3JldHVybnttaW46YSxtYXg6Yn19O0YucHJvdG90eXBlLm1pbkZyb21SYW5nZT1mdW5jdGlvbigpe3ZhciBhPXRoaXMucmFuZ2UsYj17bW9udGg6Ik1vbnRoIix5ZWFyOiJGdWxsWWVhciJ9W2EudHlwZV0sCmMsZD10aGlzLm1heCxlLGYsZz1mdW5jdGlvbihhLGMpe3ZhciBkPW5ldyBkYShhKTtkWyJzZXQiK2JdKGRbImdldCIrYl0oKStjKTtyZXR1cm4gZC5nZXRUaW1lKCktYX07dHlwZW9mIGE9PT0ibnVtYmVyIj8oYz10aGlzLm1heC1hLGY9YSk6Yz1kK2coZCwtYS5jb3VudCk7ZT1wKHRoaXMuZGF0YU1pbixOdW1iZXIuTUlOX1ZBTFVFKTtpc05hTihjKSYmKGM9ZSk7aWYoYzw9ZSljPWUsZj09PXZvaWQgMCYmKGY9ZyhjLGEuY291bnQpKSx0aGlzLm5ld01heD1FKGMrZix0aGlzLmRhdGFNYXgpO2lzTmFOKGQpJiYoYz12b2lkIDApO3JldHVybiBjfTtTKENhLnByb3RvdHlwZSwiaW5pdCIsZnVuY3Rpb24oYSxiLGMpe0QodGhpcywiaW5pdCIsZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMucmFuZ2VTZWxlY3Rvci5lbmFibGVkKXRoaXMucmFuZ2VTZWxlY3Rvcj1uZXcgSmIodGhpcyl9KTthLmNhbGwodGhpcyxiLGMpfSk7ei5SYW5nZVNlbGVjdG9yPUpiO0NhLnByb3RvdHlwZS5jYWxsYmFja3MucHVzaChmdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7Zj0KYS54QXhpc1swXS5nZXRFeHRyZW1lcygpO2cucmVuZGVyKGYubWluLGYubWF4KX1mdW5jdGlvbiBjKCl7Zj1hLnhBeGlzWzBdLmdldEV4dHJlbWVzKCk7aXNOYU4oZi5taW4pfHxoLnJlbmRlcihmLm1pbixmLm1heCl9ZnVuY3Rpb24gZChhKXthLnRyaWdnZXJPcCE9PSJuYXZpZ2F0b3ItZHJhZyImJmcucmVuZGVyKGEubWluLGEubWF4KX1mdW5jdGlvbiBlKGEpe2gucmVuZGVyKGEubWluLGEubWF4KX12YXIgZixnPWEuc2Nyb2xsZXIsaD1hLnJhbmdlU2VsZWN0b3I7ZyYmKEQoYS54QXhpc1swXSwiYWZ0ZXJTZXRFeHRyZW1lcyIsZCksUyhhLCJkcmF3Q2hhcnRCb3giLGZ1bmN0aW9uKGEpe3ZhciBjPXRoaXMuaXNEaXJ0eUJveDthLmNhbGwodGhpcyk7YyYmYigpfSksYigpKTtoJiYoRChhLnhBeGlzWzBdLCJhZnRlclNldEV4dHJlbWVzIixlKSxEKGEsInJlc2l6ZSIsYyksYygpKTtEKGEsImRlc3Ryb3kiLGZ1bmN0aW9uKCl7ZyYmUihhLnhBeGlzWzBdLCJhZnRlclNldEV4dHJlbWVzIiwKZCk7aCYmKFIoYSwicmVzaXplIixjKSxSKGEueEF4aXNbMF0sImFmdGVyU2V0RXh0cmVtZXMiLGUpKX0pfSk7ei5TdG9ja0NoYXJ0PXouc3RvY2tDaGFydD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9RGEoYSl8fGEubm9kZU5hbWUsZT1hcmd1bWVudHNbZD8xOjBdLGY9ZS5zZXJpZXMsZyxoPXAoZS5uYXZpZ2F0b3ImJmUubmF2aWdhdG9yLmVuYWJsZWQsITApP3tzdGFydE9uVGljazohMSxlbmRPblRpY2s6ITF9Om51bGwsaT17bWFya2VyOntlbmFibGVkOiExLHJhZGl1czoyfX0saj17c2hhZG93OiExLGJvcmRlcldpZHRoOjB9O2UueEF4aXM9c2EodWEoZS54QXhpc3x8e30pLGZ1bmN0aW9uKGEpe3JldHVybiBDKHttaW5QYWRkaW5nOjAsbWF4UGFkZGluZzowLG9yZGluYWw6ITAsdGl0bGU6e3RleHQ6bnVsbH0sbGFiZWxzOntvdmVyZmxvdzoianVzdGlmeSJ9LHNob3dMYXN0TGFiZWw6ITB9LGEse3R5cGU6ImRhdGV0aW1lIixjYXRlZ29yaWVzOm51bGx9LGgpfSk7ZS55QXhpcz1zYSh1YShlLnlBeGlzfHwKe30pLGZ1bmN0aW9uKGEpe2c9cChhLm9wcG9zaXRlLCEwKTtyZXR1cm4gQyh7bGFiZWxzOnt5Oi0yfSxvcHBvc2l0ZTpnLHNob3dMYXN0TGFiZWw6ITEsdGl0bGU6e3RleHQ6bnVsbH19LGEpfSk7ZS5zZXJpZXM9bnVsbDtlPUMoe2NoYXJ0OntwYW5uaW5nOiEwLHBpbmNoVHlwZToieCJ9LG5hdmlnYXRvcjp7ZW5hYmxlZDohMH0sc2Nyb2xsYmFyOntlbmFibGVkOiEwfSxyYW5nZVNlbGVjdG9yOntlbmFibGVkOiEwfSx0aXRsZTp7dGV4dDpudWxsLHN0eWxlOntmb250U2l6ZToiMTZweCJ9fSx0b29sdGlwOntzaGFyZWQ6ITAsY3Jvc3NoYWlyczohMH0sbGVnZW5kOntlbmFibGVkOiExfSxwbG90T3B0aW9uczp7bGluZTppLHNwbGluZTppLGFyZWE6aSxhcmVhc3BsaW5lOmksYXJlYXJhbmdlOmksYXJlYXNwbGluZXJhbmdlOmksY29sdW1uOmosY29sdW1ucmFuZ2U6aixjYW5kbGVzdGljazpqLG9obGM6an19LGUse19zdG9jazohMCxjaGFydDp7aW52ZXJ0ZWQ6ITF9fSk7ZS5zZXJpZXM9CmY7cmV0dXJuIGQ/bmV3IENhKGEsZSxjKTpuZXcgQ2EoZSxiKX07UyhhYi5wcm90b3R5cGUsImluaXQiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jLmNoYXJ0LnBpbmNoVHlwZXx8IiI7YS5jYWxsKHRoaXMsYixjKTt0aGlzLnBpbmNoWD10aGlzLnBpbmNoSG9yPWQuaW5kZXhPZigieCIpIT09LTE7dGhpcy5waW5jaFk9dGhpcy5waW5jaFZlcnQ9ZC5pbmRleE9mKCJ5IikhPT0tMTt0aGlzLmhhc1pvb209dGhpcy5oYXNab29tfHx0aGlzLnBpbmNoSG9yfHx0aGlzLnBpbmNoVmVydH0pO1MoRi5wcm90b3R5cGUsImF1dG9MYWJlbEFsaWduIixmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNoYXJ0LGM9dGhpcy5vcHRpb25zLGI9Yi5fbGFiZWxQYW5lcz1iLl9sYWJlbFBhbmVzfHx7fSxkPXRoaXMub3B0aW9ucy5sYWJlbHM7aWYodGhpcy5jaGFydC5vcHRpb25zLl9zdG9jayYmdGhpcy5jb2xsPT09InlBeGlzIiYmKGM9Yy50b3ArIiwiK2MuaGVpZ2h0LCFiW2NdJiZkLmVuYWJsZWQpKXtpZihkLng9PT0KMTUpZC54PTA7aWYoZC5hbGlnbj09PXZvaWQgMClkLmFsaWduPSJyaWdodCI7YltjXT0xO3JldHVybiJyaWdodCJ9cmV0dXJuIGEuY2FsbCh0aGlzLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKX0pO1MoRi5wcm90b3R5cGUsImdldFBsb3RMaW5lUGF0aCIsZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnPXRoaXMsaD10aGlzLmlzTGlua2VkJiYhdGhpcy5zZXJpZXM/dGhpcy5saW5rZWRQYXJlbnQuc2VyaWVzOnRoaXMuc2VyaWVzLGk9Zy5jaGFydCxqPWkucmVuZGVyZXIsaz1nLmxlZnQsbD1nLnRvcCxtLG8scSxyLHU9W10sdz1bXSx2LHg7aWYoZy5jb2xsPT09ImNvbG9yQXhpcyIpcmV0dXJuIGEuYXBwbHkodGhpcyxbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSk7dz1nLmlzWEF4aXM/dChnLm9wdGlvbnMueUF4aXMpP1tpLnlBeGlzW2cub3B0aW9ucy55QXhpc11dOnNhKGgsZnVuY3Rpb24oYSl7cmV0dXJuIGEueUF4aXN9KTp0KGcub3B0aW9ucy54QXhpcyk/W2kueEF4aXNbZy5vcHRpb25zLnhBeGlzXV06CnNhKGgsZnVuY3Rpb24oYSl7cmV0dXJuIGEueEF4aXN9KTtuKGcuaXNYQXhpcz9pLnlBeGlzOmkueEF4aXMsZnVuY3Rpb24oYSl7aWYodChhLm9wdGlvbnMuaWQpP2Eub3B0aW9ucy5pZC5pbmRleE9mKCJuYXZpZ2F0b3IiKT09PS0xOjEpe3ZhciBiPWEuaXNYQXhpcz8ieUF4aXMiOiJ4QXhpcyIsYj10KGEub3B0aW9uc1tiXSk/aVtiXVthLm9wdGlvbnNbYl1dOmlbYl1bMF07Zz09PWImJncucHVzaChhKX19KTt2PXcubGVuZ3RoP1tdOltnLmlzWEF4aXM/aS55QXhpc1swXTppLnhBeGlzWzBdXTtuKHcsZnVuY3Rpb24oYSl7cmEoYSx2KT09PS0xJiZ2LnB1c2goYSl9KTt4PXAoZixnLnRyYW5zbGF0ZShiLG51bGwsbnVsbCxkKSk7aXNOYU4oeCl8fChnLmhvcml6P24odixmdW5jdGlvbihhKXt2YXIgYjtvPWEucG9zO3I9bythLmxlbjttPXE9eSh4K2cudHJhbnNCKTtpZihtPGt8fG0+aytnLndpZHRoKWU/bT1xPUUocyhrLG0pLGsrZy53aWR0aCk6Yj0hMDtifHx1LnB1c2goIk0iLG0sbywKIkwiLHEscil9KTpuKHYsZnVuY3Rpb24oYSl7dmFyIGI7bT1hLnBvcztxPW0rYS5sZW47bz1yPXkobCtnLmhlaWdodC14KTtpZihvPGx8fG8+bCtnLmhlaWdodCllP289cj1FKHMobCxvKSxnLnRvcCtnLmhlaWdodCk6Yj0hMDtifHx1LnB1c2goIk0iLG0sbywiTCIscSxyKX0pKTtyZXR1cm4gdS5sZW5ndGg+MD9qLmNyaXNwUG9seUxpbmUodSxjfHwxKTpudWxsfSk7Ri5wcm90b3R5cGUuZ2V0UGxvdEJhbmRQYXRoPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5nZXRQbG90TGluZVBhdGgoYixudWxsLG51bGwsITApLGQ9dGhpcy5nZXRQbG90TGluZVBhdGgoYSxudWxsLG51bGwsITApLGU9W10sZjtpZihkJiZjJiZkLnRvU3RyaW5nKCkhPT1jLnRvU3RyaW5nKCkpZm9yKGY9MDtmPGQubGVuZ3RoO2YrPTYpZS5wdXNoKCJNIixkW2YrMV0sZFtmKzJdLCJMIixkW2YrNF0sZFtmKzVdLGNbZis0XSxjW2YrNV0sY1tmKzFdLGNbZisyXSk7ZWxzZSBlPW51bGw7cmV0dXJuIGV9O3hhLnByb3RvdHlwZS5jcmlzcFBvbHlMaW5lPQpmdW5jdGlvbihhLGIpe3ZhciBjO2ZvcihjPTA7YzxhLmxlbmd0aDtjKz02KWFbYysxXT09PWFbYys0XSYmKGFbYysxXT1hW2MrNF09eShhW2MrMV0pLWIlMi8yKSxhW2MrMl09PT1hW2MrNV0mJihhW2MrMl09YVtjKzVdPXkoYVtjKzJdKStiJTIvMik7cmV0dXJuIGF9O2lmKCRhPT09ei5WTUxSZW5kZXJlciluYi5wcm90b3R5cGUuY3Jpc3BQb2x5TGluZT14YS5wcm90b3R5cGUuY3Jpc3BQb2x5TGluZTtTKEYucHJvdG90eXBlLCJoaWRlQ3Jvc3NoYWlyIixmdW5jdGlvbihhLGIpe2EuY2FsbCh0aGlzLGIpO2lmKHRoaXMuY3Jvc3NMYWJlbCl0aGlzLmNyb3NzTGFiZWw9dGhpcy5jcm9zc0xhYmVsLmhpZGUoKX0pO1MoRi5wcm90b3R5cGUsImRyYXdDcm9zc2hhaXIiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlO2EuY2FsbCh0aGlzLGIsYyk7aWYodCh0aGlzLmNyb3NzaGFpci5sYWJlbCkmJnRoaXMuY3Jvc3NoYWlyLmxhYmVsLmVuYWJsZWQpe3ZhciBhPXRoaXMuY2hhcnQsZj10aGlzLm9wdGlvbnMuY3Jvc3NoYWlyLmxhYmVsLApnPXRoaXMuaG9yaXosaD10aGlzLm9wcG9zaXRlLGk9dGhpcy5sZWZ0LGo9dGhpcy50b3Asaz10aGlzLmNyb3NzTGFiZWwsbCxtPWYuZm9ybWF0LG49IiIscT10aGlzLm9wdGlvbnMudGlja1Bvc2l0aW9uPT09Imluc2lkZSIscj10aGlzLmNyb3NzaGFpci5zbmFwIT09ITE7bD1nPyJjZW50ZXIiOmg/dGhpcy5sYWJlbEFsaWduPT09InJpZ2h0Ij8icmlnaHQiOiJsZWZ0Ijp0aGlzLmxhYmVsQWxpZ249PT0ibGVmdCI/ImxlZnQiOiJjZW50ZXIiO2lmKCFrKWs9dGhpcy5jcm9zc0xhYmVsPWEucmVuZGVyZXIubGFiZWwobnVsbCxudWxsLG51bGwsZi5zaGFwZXx8ImNhbGxvdXQiKS5hdHRyKHthbGlnbjpmLmFsaWdufHxsLHpJbmRleDoxMixmaWxsOmYuYmFja2dyb3VuZENvbG9yfHx0aGlzLnNlcmllc1swXSYmdGhpcy5zZXJpZXNbMF0uY29sb3J8fCJncmF5IixwYWRkaW5nOnAoZi5wYWRkaW5nLDgpLHN0cm9rZTpmLmJvcmRlckNvbG9yfHwiIiwic3Ryb2tlLXdpZHRoIjpmLmJvcmRlcldpZHRofHwKMCxyOnAoZi5ib3JkZXJSYWRpdXMsMyl9KS5jc3Modyh7Y29sb3I6IndoaXRlIixmb250V2VpZ2h0OiJub3JtYWwiLGZvbnRTaXplOiIxMXB4Iix0ZXh0QWxpZ246ImNlbnRlciJ9LGYuc3R5bGUpKS5hZGQoKTtnPyhsPXI/Yy5wbG90WCtpOmIuY2hhcnRYLGorPWg/MDp0aGlzLmhlaWdodCk6KGw9aD90aGlzLndpZHRoK2k6MCxqPXI/Yy5wbG90WStqOmIuY2hhcnRZKTshbSYmIWYuZm9ybWF0dGVyJiYodGhpcy5pc0RhdGV0aW1lQXhpcyYmKG49IiViICVkLCAlWSIpLG09Int2YWx1ZSIrKG4/IjoiK246IiIpKyJ9Iik7Yj1yP2NbdGhpcy5pc1hBeGlzPyJ4IjoieSJdOnRoaXMudG9WYWx1ZShnP2IuY2hhcnRYOmIuY2hhcnRZKTtrLmF0dHIoe3RleHQ6bT9LYShtLHt2YWx1ZTpifSk6Zi5mb3JtYXR0ZXIuY2FsbCh0aGlzLGIpLGFuY2hvclg6Zz9sOnRoaXMub3Bwb3NpdGU/MDphLmNoYXJ0V2lkdGgsYW5jaG9yWTpnP3RoaXMub3Bwb3NpdGU/YS5jaGFydEhlaWdodDowOmoseDpsLHk6aiwKdmlzaWJpbGl0eToidmlzaWJsZSJ9KTtiPWsuZ2V0QkJveCgpO2lmKGcpe2lmKHEmJiFofHwhcSYmaClqPWsueS1iLmhlaWdodH1lbHNlIGo9ay55LWIuaGVpZ2h0LzI7Zz8oZD1pLWIueCxlPWkrdGhpcy53aWR0aC1iLngpOihkPXRoaXMubGFiZWxBbGlnbj09PSJsZWZ0Ij9pOjAsZT10aGlzLmxhYmVsQWxpZ249PT0icmlnaHQiP2krdGhpcy53aWR0aDphLmNoYXJ0V2lkdGgpO2sudHJhbnNsYXRlWDxkJiYobCs9ZC1rLnRyYW5zbGF0ZVgpO2sudHJhbnNsYXRlWCtiLndpZHRoPj1lJiYobC09ay50cmFuc2xhdGVYK2Iud2lkdGgtZSk7ay5hdHRyKHt4OmwseTpqLHZpc2liaWxpdHk6InZpc2libGUifSl9fSk7dmFyIGhjPWdhLmluaXQsaWM9Z2EucHJvY2Vzc0RhdGEsamM9SGEucHJvdG90eXBlLnRvb2x0aXBGb3JtYXR0ZXI7Z2EuaW5pdD1mdW5jdGlvbigpe2hjLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnNldENvbXBhcmUodGhpcy5vcHRpb25zLmNvbXBhcmUpfTtnYS5zZXRDb21wYXJlPQpmdW5jdGlvbihhKXt0aGlzLm1vZGlmeVZhbHVlPWE9PT0idmFsdWUifHxhPT09InBlcmNlbnQiP2Z1bmN0aW9uKGIsYyl7dmFyIGQ9dGhpcy5jb21wYXJlVmFsdWU7aWYoYiE9PXUmJihiPWE9PT0idmFsdWUiP2ItZDpiPTEwMCooYi9kKS0xMDAsYykpYy5jaGFuZ2U9YjtyZXR1cm4gYn06bnVsbDtpZih0aGlzLmNoYXJ0Lmhhc1JlbmRlcmVkKXRoaXMuaXNEaXJ0eT0hMH07Z2EucHJvY2Vzc0RhdGE9ZnVuY3Rpb24oKXt2YXIgYSxiPS0xLGMsZCxlLGY7aWMuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKHRoaXMueEF4aXMmJnRoaXMucHJvY2Vzc2VkWURhdGEpe2M9dGhpcy5wcm9jZXNzZWRYRGF0YTtkPXRoaXMucHJvY2Vzc2VkWURhdGE7ZT1kLmxlbmd0aDt0aGlzLnBvaW50QXJyYXlNYXAmJihiPXJhKHRoaXMucG9pbnRWYWxLZXl8fCJ5Iix0aGlzLnBvaW50QXJyYXlNYXApKTtmb3IoYT0wO2E8ZTthKyspaWYoZj1iPi0xP2RbYV1bYl06ZFthXSx0eXBlb2YgZj09PSJudW1iZXIiJiYKY1thXT49dGhpcy54QXhpcy5taW4mJmYhPT0wKXt0aGlzLmNvbXBhcmVWYWx1ZT1mO2JyZWFrfX19O1MoZ2EsImdldEV4dHJlbWVzIixmdW5jdGlvbihhKXt2YXIgYjthLmFwcGx5KHRoaXMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpO2lmKHRoaXMubW9kaWZ5VmFsdWUpYj1bdGhpcy5tb2RpZnlWYWx1ZSh0aGlzLmRhdGFNaW4pLHRoaXMubW9kaWZ5VmFsdWUodGhpcy5kYXRhTWF4KV0sdGhpcy5kYXRhTWluPU9hKGIpLHRoaXMuZGF0YU1heD1FYShiKX0pO0YucHJvdG90eXBlLnNldENvbXBhcmU9ZnVuY3Rpb24oYSxiKXt0aGlzLmlzWEF4aXN8fChuKHRoaXMuc2VyaWVzLGZ1bmN0aW9uKGIpe2Iuc2V0Q29tcGFyZShhKX0pLHAoYiwhMCkmJnRoaXMuY2hhcnQucmVkcmF3KCkpfTtIYS5wcm90b3R5cGUudG9vbHRpcEZvcm1hdHRlcj1mdW5jdGlvbihhKXthPWEucmVwbGFjZSgie3BvaW50LmNoYW5nZX0iLCh0aGlzLmNoYW5nZT4wPyIrIjoiIikrei5udW1iZXJGb3JtYXQodGhpcy5jaGFuZ2UsCnAodGhpcy5zZXJpZXMudG9vbHRpcE9wdGlvbnMuY2hhbmdlRGVjaW1hbHMsMikpKTtyZXR1cm4gamMuYXBwbHkodGhpcyxbYV0pfTtTKFAucHJvdG90eXBlLCJyZW5kZXIiLGZ1bmN0aW9uKGEpe2lmKHRoaXMuY2hhcnQub3B0aW9ucy5fc3RvY2smJnRoaXMueEF4aXMpIXRoaXMuY2xpcEJveCYmdGhpcy5hbmltYXRlPyh0aGlzLmNsaXBCb3g9Qyh0aGlzLmNoYXJ0LmNsaXBCb3gpLHRoaXMuY2xpcEJveC53aWR0aD10aGlzLnhBeGlzLmxlbix0aGlzLmNsaXBCb3guaGVpZ2h0PXRoaXMueUF4aXMubGVuKTp0aGlzLmNoYXJ0W3RoaXMuc2hhcmVkQ2xpcEtleV0mJihUYSh0aGlzLmNoYXJ0W3RoaXMuc2hhcmVkQ2xpcEtleV0pLHRoaXMuY2hhcnRbdGhpcy5zaGFyZWRDbGlwS2V5XS5hdHRyKHt3aWR0aDp0aGlzLnhBeGlzLmxlbixoZWlnaHQ6dGhpcy55QXhpcy5sZW59KSk7YS5jYWxsKHRoaXMpfSk7dyh6LHtDb2xvcjp2YSxQb2ludDpIYSxUaWNrOmRiLFJlbmRlcmVyOiRhLFNWR0VsZW1lbnQ6WSwKU1ZHUmVuZGVyZXI6eGEsYXJyYXlNaW46T2EsYXJyYXlNYXg6RWEsY2hhcnRzOiQsZGF0ZUZvcm1hdDpsYSxlcnJvcjplYSxmb3JtYXQ6S2EscGF0aEFuaW06dm9pZCAwLGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gT30saGFzQmlkaUJ1ZzokYixpc1RvdWNoRGV2aWNlOmxiLHNldE9wdGlvbnM6ZnVuY3Rpb24oYSl7Tz1DKCEwLE8sYSk7UGIoKTtyZXR1cm4gT30sYWRkRXZlbnQ6RCxyZW1vdmVFdmVudDpSLGNyZWF0ZUVsZW1lbnQ6Y2EsZGlzY2FyZEVsZW1lbnQ6WGEsY3NzOkksZWFjaDpuLG1hcDpzYSxtZXJnZTpDLHNwbGF0OnVhLHN0YWJsZVNvcnQ6cGIsZXh0ZW5kQ2xhc3M6a2EscEludDpHLHN2ZzpoYSxjYW52YXM6cGEsdm1sOiFoYSYmIXBhLHByb2R1Y3Q6IkhpZ2hzdG9jayIsdmVyc2lvbjoiNC4yLjMifSk7cmV0dXJuIHp9KTsK"></script> <script src="data:application/x-javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjQuMi4zICgyMDE2LTAyLTA4KQoKIChjKSAyMDA5LTIwMTYgVG9yc3RlaW4gSG9uc2kKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24obSl7dHlwZW9mIG1vZHVsZT09PSJvYmplY3QiJiZtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1tOm0oSGlnaGNoYXJ0cyl9KShmdW5jdGlvbihtKXtmdW5jdGlvbiBKKGEsYixjKXt0aGlzLmluaXQoYSxiLGMpfXZhciBPPW0uYXJyYXlNaW4sUD1tLmFycmF5TWF4LHM9bS5lYWNoLEY9bS5leHRlbmQsdD1tLm1lcmdlLFE9bS5tYXAscT1tLnBpY2ssQT1tLnBJbnQsbz1tLmdldE9wdGlvbnMoKS5wbG90T3B0aW9ucyxrPW0uc2VyaWVzVHlwZXMsdT1tLmV4dGVuZENsYXNzLEs9bS5zcGxhdCx2PW0ud3JhcCxMPW0uQXhpcyx5PW0uVGljayxHPW0uUG9pbnQsUj1tLlBvaW50ZXIsUz1tLkNlbnRlcmVkU2VyaWVzTWl4aW4sQj1tLlRyYWNrZXJNaXhpbix3PW0uU2VyaWVzLHg9TWF0aCxFPXgucm91bmQsQz14LmZsb29yLE09eC5tYXgsVD1tLkNvbG9yLHI9ZnVuY3Rpb24oKXt9O0YoSi5wcm90b3R5cGUse2luaXQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMsZz0KZC5kZWZhdWx0T3B0aW9ucztkLmNoYXJ0PWI7ZC5vcHRpb25zPWE9dChnLGIuYW5ndWxhcj97YmFja2dyb3VuZDp7fX06dm9pZCAwLGEpOyhhPWEuYmFja2dyb3VuZCkmJnMoW10uY29uY2F0KEsoYSkpLnJldmVyc2UoKSxmdW5jdGlvbihhKXt2YXIgZz1hLmJhY2tncm91bmRDb2xvcixiPWMudXNlck9wdGlvbnMsYT10KGQuZGVmYXVsdEJhY2tncm91bmRPcHRpb25zLGEpO2lmKGcpYS5iYWNrZ3JvdW5kQ29sb3I9ZzthLmNvbG9yPWEuYmFja2dyb3VuZENvbG9yO2Mub3B0aW9ucy5wbG90QmFuZHMudW5zaGlmdChhKTtiLnBsb3RCYW5kcz1iLnBsb3RCYW5kc3x8W107Yi5wbG90QmFuZHMhPT1jLm9wdGlvbnMucGxvdEJhbmRzJiZiLnBsb3RCYW5kcy51bnNoaWZ0KGEpfSl9LGRlZmF1bHRPcHRpb25zOntjZW50ZXI6WyI1MCUiLCI1MCUiXSxzaXplOiI4NSUiLHN0YXJ0QW5nbGU6MH0sZGVmYXVsdEJhY2tncm91bmRPcHRpb25zOntzaGFwZToiY2lyY2xlIixib3JkZXJXaWR0aDoxLGJvcmRlckNvbG9yOiJzaWx2ZXIiLApiYWNrZ3JvdW5kQ29sb3I6e2xpbmVhckdyYWRpZW50Ont4MTowLHkxOjAseDI6MCx5MjoxfSxzdG9wczpbWzAsIiNGRkYiXSxbMSwiI0RERCJdXX0sZnJvbTotTnVtYmVyLk1BWF9WQUxVRSxpbm5lclJhZGl1czowLHRvOk51bWJlci5NQVhfVkFMVUUsb3V0ZXJSYWRpdXM6IjEwNSUifX0pO3ZhciB6PUwucHJvdG90eXBlLHk9eS5wcm90b3R5cGUsVT17Z2V0T2Zmc2V0OnIscmVkcmF3OmZ1bmN0aW9uKCl7dGhpcy5pc0RpcnR5PSExfSxyZW5kZXI6ZnVuY3Rpb24oKXt0aGlzLmlzRGlydHk9ITF9LHNldFNjYWxlOnIsc2V0Q2F0ZWdvcmllczpyLHNldFRpdGxlOnJ9LE49e2lzUmFkaWFsOiEwLGRlZmF1bHRSYWRpYWxHYXVnZU9wdGlvbnM6e2xhYmVsczp7YWxpZ246ImNlbnRlciIseDowLHk6bnVsbH0sbWlub3JHcmlkTGluZVdpZHRoOjAsbWlub3JUaWNrSW50ZXJ2YWw6ImF1dG8iLG1pbm9yVGlja0xlbmd0aDoxMCxtaW5vclRpY2tQb3NpdGlvbjoiaW5zaWRlIixtaW5vclRpY2tXaWR0aDoxLAp0aWNrTGVuZ3RoOjEwLHRpY2tQb3NpdGlvbjoiaW5zaWRlIix0aWNrV2lkdGg6Mix0aXRsZTp7cm90YXRpb246MH0sekluZGV4OjJ9LGRlZmF1bHRSYWRpYWxYT3B0aW9uczp7Z3JpZExpbmVXaWR0aDoxLGxhYmVsczp7YWxpZ246bnVsbCxkaXN0YW5jZToxNSx4OjAseTpudWxsfSxtYXhQYWRkaW5nOjAsbWluUGFkZGluZzowLHNob3dMYXN0TGFiZWw6ITEsdGlja0xlbmd0aDowfSxkZWZhdWx0UmFkaWFsWU9wdGlvbnM6e2dyaWRMaW5lSW50ZXJwb2xhdGlvbjoiY2lyY2xlIixsYWJlbHM6e2FsaWduOiJyaWdodCIseDotMyx5Oi0yfSxzaG93TGFzdExhYmVsOiExLHRpdGxlOnt4OjQsdGV4dDpudWxsLHJvdGF0aW9uOjkwfX0sc2V0T3B0aW9uczpmdW5jdGlvbihhKXthPXRoaXMub3B0aW9ucz10KHRoaXMuZGVmYXVsdE9wdGlvbnMsdGhpcy5kZWZhdWx0UmFkaWFsT3B0aW9ucyxhKTtpZighYS5wbG90QmFuZHMpYS5wbG90QmFuZHM9W119LGdldE9mZnNldDpmdW5jdGlvbigpe3ouZ2V0T2Zmc2V0LmNhbGwodGhpcyk7CnRoaXMuY2hhcnQuYXhpc09mZnNldFt0aGlzLnNpZGVdPTA7dGhpcy5jZW50ZXI9dGhpcy5wYW5lLmNlbnRlcj1TLmdldENlbnRlci5jYWxsKHRoaXMucGFuZSl9LGdldExpbmVQYXRoOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jZW50ZXIsYj1xKGIsY1syXS8yLXRoaXMub2Zmc2V0KTtyZXR1cm4gdGhpcy5jaGFydC5yZW5kZXJlci5zeW1ib2xzLmFyYyh0aGlzLmxlZnQrY1swXSx0aGlzLnRvcCtjWzFdLGIsYix7c3RhcnQ6dGhpcy5zdGFydEFuZ2xlUmFkLGVuZDp0aGlzLmVuZEFuZ2xlUmFkLG9wZW46ITAsaW5uZXJSOjB9KX0sc2V0QXhpc1RyYW5zbGF0aW9uOmZ1bmN0aW9uKCl7ei5zZXRBeGlzVHJhbnNsYXRpb24uY2FsbCh0aGlzKTtpZih0aGlzLmNlbnRlcil0aGlzLnRyYW5zQT10aGlzLmlzQ2lyY3VsYXI/KHRoaXMuZW5kQW5nbGVSYWQtdGhpcy5zdGFydEFuZ2xlUmFkKS8odGhpcy5tYXgtdGhpcy5taW58fDEpOnRoaXMuY2VudGVyWzJdLzIvKHRoaXMubWF4LXRoaXMubWlufHwKMSksdGhpcy5taW5QaXhlbFBhZGRpbmc9dGhpcy5pc1hBeGlzP3RoaXMudHJhbnNBKnRoaXMubWluUG9pbnRPZmZzZXQ6MH0sYmVmb3JlU2V0VGlja1Bvc2l0aW9uczpmdW5jdGlvbigpe3RoaXMuYXV0b0Nvbm5lY3QmJih0aGlzLm1heCs9dGhpcy5jYXRlZ29yaWVzJiYxfHx0aGlzLnBvaW50UmFuZ2V8fHRoaXMuY2xvc2VzdFBvaW50UmFuZ2V8fDApfSxzZXRBeGlzU2l6ZTpmdW5jdGlvbigpe3ouc2V0QXhpc1NpemUuY2FsbCh0aGlzKTtpZih0aGlzLmlzUmFkaWFsKXt0aGlzLmNlbnRlcj10aGlzLnBhbmUuY2VudGVyPW0uQ2VudGVyZWRTZXJpZXNNaXhpbi5nZXRDZW50ZXIuY2FsbCh0aGlzLnBhbmUpO2lmKHRoaXMuaXNDaXJjdWxhcil0aGlzLnNlY3Rvcj10aGlzLmVuZEFuZ2xlUmFkLXRoaXMuc3RhcnRBbmdsZVJhZDt0aGlzLmxlbj10aGlzLndpZHRoPXRoaXMuaGVpZ2h0PXRoaXMuY2VudGVyWzJdKnEodGhpcy5zZWN0b3IsMSkvMn19LGdldFBvc2l0aW9uOmZ1bmN0aW9uKGEsCmIpe3JldHVybiB0aGlzLnBvc3RUcmFuc2xhdGUodGhpcy5pc0NpcmN1bGFyP3RoaXMudHJhbnNsYXRlKGEpOjAscSh0aGlzLmlzQ2lyY3VsYXI/Yjp0aGlzLnRyYW5zbGF0ZShhKSx0aGlzLmNlbnRlclsyXS8yKS10aGlzLm9mZnNldCl9LHBvc3RUcmFuc2xhdGU6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmNoYXJ0LGQ9dGhpcy5jZW50ZXIsYT10aGlzLnN0YXJ0QW5nbGVSYWQrYTtyZXR1cm57eDpjLnBsb3RMZWZ0K2RbMF0rTWF0aC5jb3MoYSkqYix5OmMucGxvdFRvcCtkWzFdK01hdGguc2luKGEpKmJ9fSxnZXRQbG90QmFuZFBhdGg6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMuY2VudGVyLGc9dGhpcy5zdGFydEFuZ2xlUmFkLGU9ZFsyXS8yLGo9W3EoYy5vdXRlclJhZGl1cywiMTAwJSIpLGMuaW5uZXJSYWRpdXMscShjLnRoaWNrbmVzcywxMCldLGw9LyUkLyxpLGY9dGhpcy5pc0NpcmN1bGFyO3RoaXMub3B0aW9ucy5ncmlkTGluZUludGVycG9sYXRpb249PT0icG9seWdvbiI/CmQ9dGhpcy5nZXRQbG90TGluZVBhdGgoYSkuY29uY2F0KHRoaXMuZ2V0UGxvdExpbmVQYXRoKGIsITApKTooYT1NYXRoLm1heChhLHRoaXMubWluKSxiPU1hdGgubWluKGIsdGhpcy5tYXgpLGZ8fChqWzBdPXRoaXMudHJhbnNsYXRlKGEpLGpbMV09dGhpcy50cmFuc2xhdGUoYikpLGo9UShqLGZ1bmN0aW9uKGEpe2wudGVzdChhKSYmKGE9QShhLDEwKSplLzEwMCk7cmV0dXJuIGF9KSxjLnNoYXBlPT09ImNpcmNsZSJ8fCFmPyhhPS1NYXRoLlBJLzIsYj1NYXRoLlBJKjEuNSxpPSEwKTooYT1nK3RoaXMudHJhbnNsYXRlKGEpLGI9Zyt0aGlzLnRyYW5zbGF0ZShiKSksZD10aGlzLmNoYXJ0LnJlbmRlcmVyLnN5bWJvbHMuYXJjKHRoaXMubGVmdCtkWzBdLHRoaXMudG9wK2RbMV0salswXSxqWzBdLHtzdGFydDpNYXRoLm1pbihhLGIpLGVuZDpNYXRoLm1heChhLGIpLGlubmVyUjpxKGpbMV0salswXS1qWzJdKSxvcGVuOml9KSk7cmV0dXJuIGR9LGdldFBsb3RMaW5lUGF0aDpmdW5jdGlvbihhLApiKXt2YXIgYz10aGlzLGQ9Yy5jZW50ZXIsZz1jLmNoYXJ0LGU9Yy5nZXRQb3NpdGlvbihhKSxqLGwsaTtjLmlzQ2lyY3VsYXI/aT1bIk0iLGRbMF0rZy5wbG90TGVmdCxkWzFdK2cucGxvdFRvcCwiTCIsZS54LGUueV06Yy5vcHRpb25zLmdyaWRMaW5lSW50ZXJwb2xhdGlvbj09PSJjaXJjbGUiPyhhPWMudHJhbnNsYXRlKGEpKSYmKGk9Yy5nZXRMaW5lUGF0aCgwLGEpKToocyhnLnhBeGlzLGZ1bmN0aW9uKGEpe2EucGFuZT09PWMucGFuZSYmKGo9YSl9KSxpPVtdLGE9Yy50cmFuc2xhdGUoYSksZD1qLnRpY2tQb3NpdGlvbnMsai5hdXRvQ29ubmVjdCYmKGQ9ZC5jb25jYXQoW2RbMF1dKSksYiYmKGQ9W10uY29uY2F0KGQpLnJldmVyc2UoKSkscyhkLGZ1bmN0aW9uKGUsYil7bD1qLmdldFBvc2l0aW9uKGUsYSk7aS5wdXNoKGI/IkwiOiJNIixsLngsbC55KX0pKTtyZXR1cm4gaX0sZ2V0VGl0bGVQb3NpdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuY2VudGVyLGI9dGhpcy5jaGFydCwKYz10aGlzLm9wdGlvbnMudGl0bGU7cmV0dXJue3g6Yi5wbG90TGVmdCthWzBdKyhjLnh8fDApLHk6Yi5wbG90VG9wK2FbMV0te2hpZ2g6MC41LG1pZGRsZTowLjI1LGxvdzowfVtjLmFsaWduXSphWzJdKyhjLnl8fDApfX19O3YoeiwiaW5pdCIsZnVuY3Rpb24oYSxiLGMpe3ZhciBoO3ZhciBkPWIuYW5ndWxhcixnPWIucG9sYXIsZT1jLmlzWCxqPWQmJmUsbCxpO2k9Yi5vcHRpb25zO3ZhciBmPWMucGFuZXx8MDtpZihkKXtpZihGKHRoaXMsaj9VOk4pLGw9IWUpdGhpcy5kZWZhdWx0UmFkaWFsT3B0aW9ucz10aGlzLmRlZmF1bHRSYWRpYWxHYXVnZU9wdGlvbnN9ZWxzZSBpZihnKUYodGhpcyxOKSx0aGlzLmRlZmF1bHRSYWRpYWxPcHRpb25zPShsPWUpP3RoaXMuZGVmYXVsdFJhZGlhbFhPcHRpb25zOnQodGhpcy5kZWZhdWx0WUF4aXNPcHRpb25zLHRoaXMuZGVmYXVsdFJhZGlhbFlPcHRpb25zKTthLmNhbGwodGhpcyxiLGMpO2lmKCFqJiYoZHx8Zykpe2E9dGhpcy5vcHRpb25zO2lmKCFiLnBhbmVzKWIucGFuZXM9CltdO3RoaXMucGFuZT0oaD1iLnBhbmVzW2ZdPWIucGFuZXNbZl18fG5ldyBKKEsoaS5wYW5lKVtmXSxiLHRoaXMpLGY9aCk7Zj1mLm9wdGlvbnM7Yi5pbnZlcnRlZD0hMTtpLmNoYXJ0Lnpvb21UeXBlPW51bGw7dGhpcy5zdGFydEFuZ2xlUmFkPWI9KGYuc3RhcnRBbmdsZS05MCkqTWF0aC5QSS8xODA7dGhpcy5lbmRBbmdsZVJhZD1pPShxKGYuZW5kQW5nbGUsZi5zdGFydEFuZ2xlKzM2MCktOTApKk1hdGguUEkvMTgwO3RoaXMub2Zmc2V0PWEub2Zmc2V0fHwwO2lmKCh0aGlzLmlzQ2lyY3VsYXI9bCkmJmMubWF4PT09dm9pZCAwJiZpLWI9PT0yKk1hdGguUEkpdGhpcy5hdXRvQ29ubmVjdD0hMH19KTt2KHosImF1dG9MYWJlbEFsaWduIixmdW5jdGlvbihhKXtpZighdGhpcy5pc1JhZGlhbClyZXR1cm4gYS5hcHBseSh0aGlzLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKX0pO3YoeSwiZ2V0UG9zaXRpb24iLGZ1bmN0aW9uKGEsYixjLGQsZyl7dmFyIGU9dGhpcy5heGlzO3JldHVybiBlLmdldFBvc2l0aW9uPwplLmdldFBvc2l0aW9uKGMpOmEuY2FsbCh0aGlzLGIsYyxkLGcpfSk7dih5LCJnZXRMYWJlbFBvc2l0aW9uIixmdW5jdGlvbihhLGIsYyxkLGcsZSxqLGwsaSl7dmFyIGY9dGhpcy5heGlzLGg9ZS55LG49MjAsaz1lLmFsaWduLG09KGYudHJhbnNsYXRlKHRoaXMucG9zKStmLnN0YXJ0QW5nbGVSYWQrTWF0aC5QSS8yKS9NYXRoLlBJKjE4MCUzNjA7Zi5pc1JhZGlhbD8oYT1mLmdldFBvc2l0aW9uKHRoaXMucG9zLGYuY2VudGVyWzJdLzIrcShlLmRpc3RhbmNlLC0yNSkpLGUucm90YXRpb249PT0iYXV0byI/ZC5hdHRyKHtyb3RhdGlvbjptfSk6aD09PW51bGwmJihoPWYuY2hhcnQucmVuZGVyZXIuZm9udE1ldHJpY3MoZC5zdHlsZXMuZm9udFNpemUpLmItZC5nZXRCQm94KCkuaGVpZ2h0LzIpLGs9PT1udWxsJiYoZi5pc0NpcmN1bGFyPyh0aGlzLmxhYmVsLmdldEJCb3goKS53aWR0aD5mLmxlbipmLnRpY2tJbnRlcnZhbC8oZi5tYXgtZi5taW4pJiYobj0wKSxrPW0+biYmbTwxODAtbj8KImxlZnQiOm0+MTgwK24mJm08MzYwLW4/InJpZ2h0IjoiY2VudGVyIik6az0iY2VudGVyIixkLmF0dHIoe2FsaWduOmt9KSksYS54Kz1lLngsYS55Kz1oKTphPWEuY2FsbCh0aGlzLGIsYyxkLGcsZSxqLGwsaSk7cmV0dXJuIGF9KTt2KHksImdldE1hcmtQYXRoIixmdW5jdGlvbihhLGIsYyxkLGcsZSxqKXt2YXIgbD10aGlzLmF4aXM7bC5pc1JhZGlhbD8oYT1sLmdldFBvc2l0aW9uKHRoaXMucG9zLGwuY2VudGVyWzJdLzIrZCksYj1bIk0iLGIsYywiTCIsYS54LGEueV0pOmI9YS5jYWxsKHRoaXMsYixjLGQsZyxlLGopO3JldHVybiBifSk7by5hcmVhcmFuZ2U9dChvLmFyZWEse2xpbmVXaWR0aDoxLG1hcmtlcjpudWxsLHRocmVzaG9sZDpudWxsLHRvb2x0aXA6e3BvaW50Rm9ybWF0Oic8c3BhbiBzdHlsZT0iY29sb3I6e3Nlcmllcy5jb2xvcn0iPlx1MjVjZjwvc3Bhbj4ge3Nlcmllcy5uYW1lfTogPGI+e3BvaW50Lmxvd308L2I+IC0gPGI+e3BvaW50LmhpZ2h9PC9iPjxici8+J30sCnRyYWNrQnlBcmVhOiEwLGRhdGFMYWJlbHM6e2FsaWduOm51bGwsdmVydGljYWxBbGlnbjpudWxsLHhMb3c6MCx4SGlnaDowLHlMb3c6MCx5SGlnaDowfSxzdGF0ZXM6e2hvdmVyOntoYWxvOiExfX19KTtrLmFyZWFyYW5nZT11KGsuYXJlYSx7dHlwZToiYXJlYXJhbmdlIixwb2ludEFycmF5TWFwOlsibG93IiwiaGlnaCJdLGRhdGFMYWJlbENvbGxlY3Rpb25zOlsiZGF0YUxhYmVsIiwiZGF0YUxhYmVsVXBwZXIiXSx0b1lEYXRhOmZ1bmN0aW9uKGEpe3JldHVyblthLmxvdyxhLmhpZ2hdfSxwb2ludFZhbEtleToibG93IixkZWZlclRyYW5zbGF0ZVBvbGFyOiEwLGhpZ2hUb1hZOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY2hhcnQsYz10aGlzLnhBeGlzLnBvc3RUcmFuc2xhdGUoYS5yZWN0UGxvdFgsdGhpcy55QXhpcy5sZW4tYS5wbG90SGlnaCk7YS5wbG90SGlnaFg9Yy54LWIucGxvdExlZnQ7YS5wbG90SGlnaD1jLnktYi5wbG90VG9wfSx0cmFuc2xhdGU6ZnVuY3Rpb24oKXt2YXIgYT0KdGhpcyxiPWEueUF4aXM7ay5hcmVhLnByb3RvdHlwZS50cmFuc2xhdGUuYXBwbHkoYSk7cyhhLnBvaW50cyxmdW5jdGlvbihhKXt2YXIgZD1hLmxvdyxnPWEuaGlnaCxlPWEucGxvdFk7Zz09PW51bGx8fGQ9PT1udWxsP2EuaXNOdWxsPSEwOihhLnBsb3RMb3c9ZSxhLnBsb3RIaWdoPWIudHJhbnNsYXRlKGcsMCwxLDAsMSkpfSk7dGhpcy5jaGFydC5wb2xhciYmcyh0aGlzLnBvaW50cyxmdW5jdGlvbihiKXthLmhpZ2hUb1hZKGIpfSl9LGdldEdyYXBoUGF0aDpmdW5jdGlvbigpe3ZhciBhPXRoaXMucG9pbnRzLGI9W10sYz1bXSxkPWEubGVuZ3RoLGc9dy5wcm90b3R5cGUuZ2V0R3JhcGhQYXRoLGUsaixsO2w9dGhpcy5vcHRpb25zO2Zvcih2YXIgaT1sLnN0ZXAsZD1hLmxlbmd0aDtkLS07KWU9YVtkXSwhZS5pc051bGwmJighYVtkKzFdfHxhW2QrMV0uaXNOdWxsKSYmYy5wdXNoKHtwbG90WDplLnBsb3RYLHBsb3RZOmUucGxvdExvd30pLGo9e3Bsb3RYOmUucGxvdFgscGxvdFk6ZS5wbG90SGlnaCwKaXNOdWxsOmUuaXNOdWxsfSxjLnB1c2goaiksYi5wdXNoKGopLCFlLmlzTnVsbCYmKCFhW2QtMV18fGFbZC0xXS5pc051bGwpJiZjLnB1c2goe3Bsb3RYOmUucGxvdFgscGxvdFk6ZS5wbG90TG93fSk7YT1nLmNhbGwodGhpcyxhKTtpZihpKWk9PT0hMCYmKGk9ImxlZnQiKSxsLnN0ZXA9e2xlZnQ6InJpZ2h0IixjZW50ZXI6ImNlbnRlciIscmlnaHQ6ImxlZnQifVtpXTtiPWcuY2FsbCh0aGlzLGIpO2M9Zy5jYWxsKHRoaXMsYyk7bC5zdGVwPWk7bD1bXS5jb25jYXQoYSxiKTshdGhpcy5jaGFydC5wb2xhciYmY1swXT09PSJNIiYmKGNbMF09IkwiKTt0aGlzLmFyZWFQYXRoPXRoaXMuYXJlYVBhdGguY29uY2F0KGEsYyk7cmV0dXJuIGx9LGRyYXdEYXRhTGFiZWxzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5kYXRhLGI9YS5sZW5ndGgsYyxkPVtdLGc9dy5wcm90b3R5cGUsZT10aGlzLm9wdGlvbnMuZGF0YUxhYmVscyxqPWUuYWxpZ24sbD1lLnZlcnRpY2FsQWxpZ24saT1lLmluc2lkZSxmLApoLG49dGhpcy5jaGFydC5pbnZlcnRlZDtpZihlLmVuYWJsZWR8fHRoaXMuX2hhc1BvaW50TGFiZWxzKXtmb3IoYz1iO2MtLTspaWYoZj1hW2NdKXtoPWk/Zi5wbG90SGlnaDxmLnBsb3RMb3c6Zi5wbG90SGlnaD5mLnBsb3RMb3c7Zi55PWYuaGlnaDtmLl9wbG90WT1mLnBsb3RZO2YucGxvdFk9Zi5wbG90SGlnaDtkW2NdPWYuZGF0YUxhYmVsO2YuZGF0YUxhYmVsPWYuZGF0YUxhYmVsVXBwZXI7Zi5iZWxvdz1oO2lmKG4pe2lmKCFqKWUuYWxpZ249aD8icmlnaHQiOiJsZWZ0In1lbHNlIGlmKCFsKWUudmVydGljYWxBbGlnbj1oPyJ0b3AiOiJib3R0b20iO2UueD1lLnhIaWdoO2UueT1lLnlIaWdofWcuZHJhd0RhdGFMYWJlbHMmJmcuZHJhd0RhdGFMYWJlbHMuYXBwbHkodGhpcyxhcmd1bWVudHMpO2ZvcihjPWI7Yy0tOylpZihmPWFbY10pe2g9aT9mLnBsb3RIaWdoPGYucGxvdExvdzpmLnBsb3RIaWdoPmYucGxvdExvdztmLmRhdGFMYWJlbFVwcGVyPWYuZGF0YUxhYmVsO2YuZGF0YUxhYmVsPQpkW2NdO2YueT1mLmxvdztmLnBsb3RZPWYuX3Bsb3RZO2YuYmVsb3c9IWg7aWYobil7aWYoIWopZS5hbGlnbj1oPyJsZWZ0IjoicmlnaHQifWVsc2UgaWYoIWwpZS52ZXJ0aWNhbEFsaWduPWg/ImJvdHRvbSI6InRvcCI7ZS54PWUueExvdztlLnk9ZS55TG93fWcuZHJhd0RhdGFMYWJlbHMmJmcuZHJhd0RhdGFMYWJlbHMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWUuYWxpZ249ajtlLnZlcnRpY2FsQWxpZ249bH0sYWxpZ25EYXRhTGFiZWw6ZnVuY3Rpb24oKXtrLmNvbHVtbi5wcm90b3R5cGUuYWxpZ25EYXRhTGFiZWwuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxzZXRTdGFja2VkUG9pbnRzOnIsZ2V0U3ltYm9sOnIsZHJhd1BvaW50czpyfSk7by5hcmVhc3BsaW5lcmFuZ2U9dChvLmFyZWFyYW5nZSk7ay5hcmVhc3BsaW5lcmFuZ2U9dShrLmFyZWFyYW5nZSx7dHlwZToiYXJlYXNwbGluZXJhbmdlIixnZXRQb2ludFNwbGluZTprLnNwbGluZS5wcm90b3R5cGUuZ2V0UG9pbnRTcGxpbmV9KTsKKGZ1bmN0aW9uKCl7dmFyIGE9ay5jb2x1bW4ucHJvdG90eXBlO28uY29sdW1ucmFuZ2U9dChvLmNvbHVtbixvLmFyZWFyYW5nZSx7bGluZVdpZHRoOjEscG9pbnRSYW5nZTpudWxsfSk7ay5jb2x1bW5yYW5nZT11KGsuYXJlYXJhbmdlLHt0eXBlOiJjb2x1bW5yYW5nZSIsdHJhbnNsYXRlOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxjPWIueUF4aXMsZD1iLnhBeGlzLGc9Yi5jaGFydCxlO2EudHJhbnNsYXRlLmFwcGx5KGIpO3MoYi5wb2ludHMsZnVuY3Rpb24oYSl7dmFyIGw9YS5zaGFwZUFyZ3MsaT1iLm9wdGlvbnMubWluUG9pbnRMZW5ndGgsZixoO2EucGxvdEhpZ2g9ZT1jLnRyYW5zbGF0ZShhLmhpZ2gsMCwxLDAsMSk7YS5wbG90TG93PWEucGxvdFk7aD1lO2Y9YS5wbG90WS1lO01hdGguYWJzKGYpPGk/KGktPWYsZis9aSxoLT1pLzIpOmY8MCYmKGYqPS0xLGgtPWYpO2wuaGVpZ2h0PWY7bC55PWg7YS50b29sdGlwUG9zPWcuaW52ZXJ0ZWQ/W2MubGVuK2MucG9zLWcucGxvdExlZnQtCmgtZi8yLGQubGVuK2QucG9zLWcucGxvdFRvcC1sLngtbC53aWR0aC8yLGZdOltkLmxlZnQtZy5wbG90TGVmdCtsLngrbC53aWR0aC8yLGMucG9zLWcucGxvdFRvcCtoK2YvMixmXX0pfSxkaXJlY3RUb3VjaDohMCx0cmFja2VyR3JvdXBzOlsiZ3JvdXAiLCJkYXRhTGFiZWxzR3JvdXAiXSxkcmF3R3JhcGg6cixjcmlzcENvbDphLmNyaXNwQ29sLHBvaW50QXR0clRvT3B0aW9uczphLnBvaW50QXR0clRvT3B0aW9ucyxkcmF3UG9pbnRzOmEuZHJhd1BvaW50cyxkcmF3VHJhY2tlcjphLmRyYXdUcmFja2VyLGFuaW1hdGU6YS5hbmltYXRlLGdldENvbHVtbk1ldHJpY3M6YS5nZXRDb2x1bW5NZXRyaWNzfSl9KSgpO28uZ2F1Z2U9dChvLmxpbmUse2RhdGFMYWJlbHM6e2VuYWJsZWQ6ITAsZGVmZXI6ITEseToxNSxib3JkZXJXaWR0aDoxLGJvcmRlckNvbG9yOiJzaWx2ZXIiLGJvcmRlclJhZGl1czozLGNyb3A6ITEsdmVydGljYWxBbGlnbjoidG9wIix6SW5kZXg6Mn0sZGlhbDp7fSxwaXZvdDp7fSwKdG9vbHRpcDp7aGVhZGVyRm9ybWF0OiIifSxzaG93SW5MZWdlbmQ6ITF9KTtCPXt0eXBlOiJnYXVnZSIscG9pbnRDbGFzczp1KEcse3NldFN0YXRlOmZ1bmN0aW9uKGEpe3RoaXMuc3RhdGU9YX19KSxhbmd1bGFyOiEwLGRyYXdHcmFwaDpyLGZpeGVkQm94OiEwLGZvcmNlREw6ITAsdHJhY2tlckdyb3VwczpbImdyb3VwIiwiZGF0YUxhYmVsc0dyb3VwIl0sdHJhbnNsYXRlOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy55QXhpcyxiPXRoaXMub3B0aW9ucyxjPWEuY2VudGVyO3RoaXMuZ2VuZXJhdGVQb2ludHMoKTtzKHRoaXMucG9pbnRzLGZ1bmN0aW9uKGQpe3ZhciBnPXQoYi5kaWFsLGQuZGlhbCksZT1BKHEoZy5yYWRpdXMsODApKSpjWzJdLzIwMCxqPUEocShnLmJhc2VMZW5ndGgsNzApKSplLzEwMCxsPUEocShnLnJlYXJMZW5ndGgsMTApKSplLzEwMCxpPWcuYmFzZVdpZHRofHwzLGY9Zy50b3BXaWR0aHx8MSxoPWIub3ZlcnNob290LG49YS5zdGFydEFuZ2xlUmFkK2EudHJhbnNsYXRlKGQueSwKbnVsbCxudWxsLG51bGwsITApO2gmJnR5cGVvZiBoPT09Im51bWJlciI/KGg9aC8xODAqTWF0aC5QSSxuPU1hdGgubWF4KGEuc3RhcnRBbmdsZVJhZC1oLE1hdGgubWluKGEuZW5kQW5nbGVSYWQraCxuKSkpOmIud3JhcD09PSExJiYobj1NYXRoLm1heChhLnN0YXJ0QW5nbGVSYWQsTWF0aC5taW4oYS5lbmRBbmdsZVJhZCxuKSkpO249bioxODAvTWF0aC5QSTtkLnNoYXBlVHlwZT0icGF0aCI7ZC5zaGFwZUFyZ3M9e2Q6Zy5wYXRofHxbIk0iLC1sLC1pLzIsIkwiLGosLWkvMixlLC1mLzIsZSxmLzIsaixpLzIsLWwsaS8yLCJ6Il0sdHJhbnNsYXRlWDpjWzBdLHRyYW5zbGF0ZVk6Y1sxXSxyb3RhdGlvbjpufTtkLnBsb3RYPWNbMF07ZC5wbG90WT1jWzFdfSl9LGRyYXdQb2ludHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS55QXhpcy5jZW50ZXIsYz1hLnBpdm90LGQ9YS5vcHRpb25zLGc9ZC5waXZvdCxlPWEuY2hhcnQucmVuZGVyZXI7cyhhLnBvaW50cyxmdW5jdGlvbihiKXt2YXIgZz0KYi5ncmFwaGljLGM9Yi5zaGFwZUFyZ3MsZj1jLmQsaD10KGQuZGlhbCxiLmRpYWwpO2c/KGcuYW5pbWF0ZShjKSxjLmQ9Zik6Yi5ncmFwaGljPWVbYi5zaGFwZVR5cGVdKGMpLmF0dHIoe3N0cm9rZTpoLmJvcmRlckNvbG9yfHwibm9uZSIsInN0cm9rZS13aWR0aCI6aC5ib3JkZXJXaWR0aHx8MCxmaWxsOmguYmFja2dyb3VuZENvbG9yfHwiYmxhY2siLHJvdGF0aW9uOmMucm90YXRpb24sekluZGV4OjF9KS5hZGQoYS5ncm91cCl9KTtjP2MuYW5pbWF0ZSh7dHJhbnNsYXRlWDpiWzBdLHRyYW5zbGF0ZVk6YlsxXX0pOmEucGl2b3Q9ZS5jaXJjbGUoMCwwLHEoZy5yYWRpdXMsNSkpLmF0dHIoeyJzdHJva2Utd2lkdGgiOmcuYm9yZGVyV2lkdGh8fDAsc3Ryb2tlOmcuYm9yZGVyQ29sb3J8fCJzaWx2ZXIiLGZpbGw6Zy5iYWNrZ3JvdW5kQ29sb3J8fCJibGFjayIsekluZGV4OjJ9KS50cmFuc2xhdGUoYlswXSxiWzFdKS5hZGQoYS5ncm91cCl9LGFuaW1hdGU6ZnVuY3Rpb24oYSl7dmFyIGI9CnRoaXM7aWYoIWEpcyhiLnBvaW50cyxmdW5jdGlvbihhKXt2YXIgZD1hLmdyYXBoaWM7ZCYmKGQuYXR0cih7cm90YXRpb246Yi55QXhpcy5zdGFydEFuZ2xlUmFkKjE4MC9NYXRoLlBJfSksZC5hbmltYXRlKHtyb3RhdGlvbjphLnNoYXBlQXJncy5yb3RhdGlvbn0sYi5vcHRpb25zLmFuaW1hdGlvbikpfSksYi5hbmltYXRlPW51bGx9LHJlbmRlcjpmdW5jdGlvbigpe3RoaXMuZ3JvdXA9dGhpcy5wbG90R3JvdXAoImdyb3VwIiwic2VyaWVzIix0aGlzLnZpc2libGU/InZpc2libGUiOiJoaWRkZW4iLHRoaXMub3B0aW9ucy56SW5kZXgsdGhpcy5jaGFydC5zZXJpZXNHcm91cCk7dy5wcm90b3R5cGUucmVuZGVyLmNhbGwodGhpcyk7dGhpcy5ncm91cC5jbGlwKHRoaXMuY2hhcnQuY2xpcFJlY3QpfSxzZXREYXRhOmZ1bmN0aW9uKGEsYil7dy5wcm90b3R5cGUuc2V0RGF0YS5jYWxsKHRoaXMsYSwhMSk7dGhpcy5wcm9jZXNzRGF0YSgpO3RoaXMuZ2VuZXJhdGVQb2ludHMoKTtxKGIsITApJiYKdGhpcy5jaGFydC5yZWRyYXcoKX0sZHJhd1RyYWNrZXI6QiYmQi5kcmF3VHJhY2tlclBvaW50fTtrLmdhdWdlPXUoay5saW5lLEIpO28uYm94cGxvdD10KG8uY29sdW1uLHtmaWxsQ29sb3I6IiNGRkZGRkYiLGxpbmVXaWR0aDoxLG1lZGlhbldpZHRoOjIsc3RhdGVzOntob3Zlcjp7YnJpZ2h0bmVzczotMC4zfX0sdGhyZXNob2xkOm51bGwsdG9vbHRpcDp7cG9pbnRGb3JtYXQ6JzxzcGFuIHN0eWxlPSJjb2xvcjp7cG9pbnQuY29sb3J9Ij5cdTI1Y2Y8L3NwYW4+IDxiPiB7c2VyaWVzLm5hbWV9PC9iPjxici8+TWF4aW11bToge3BvaW50LmhpZ2h9PGJyLz5VcHBlciBxdWFydGlsZToge3BvaW50LnEzfTxici8+TWVkaWFuOiB7cG9pbnQubWVkaWFufTxici8+TG93ZXIgcXVhcnRpbGU6IHtwb2ludC5xMX08YnIvPk1pbmltdW06IHtwb2ludC5sb3d9PGJyLz4nfSx3aGlza2VyTGVuZ3RoOiI1MCUiLHdoaXNrZXJXaWR0aDoyfSk7ay5ib3hwbG90PXUoay5jb2x1bW4se3R5cGU6ImJveHBsb3QiLApwb2ludEFycmF5TWFwOlsibG93IiwicTEiLCJtZWRpYW4iLCJxMyIsImhpZ2giXSx0b1lEYXRhOmZ1bmN0aW9uKGEpe3JldHVyblthLmxvdyxhLnExLGEubWVkaWFuLGEucTMsYS5oaWdoXX0scG9pbnRWYWxLZXk6ImhpZ2giLHBvaW50QXR0clRvT3B0aW9uczp7ZmlsbDoiZmlsbENvbG9yIixzdHJva2U6ImNvbG9yIiwic3Ryb2tlLXdpZHRoIjoibGluZVdpZHRoIn0sZHJhd0RhdGFMYWJlbHM6cix0cmFuc2xhdGU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnlBeGlzLGI9dGhpcy5wb2ludEFycmF5TWFwO2suY29sdW1uLnByb3RvdHlwZS50cmFuc2xhdGUuYXBwbHkodGhpcyk7cyh0aGlzLnBvaW50cyxmdW5jdGlvbihjKXtzKGIsZnVuY3Rpb24oYil7Y1tiXSE9PW51bGwmJihjW2IrIlBsb3QiXT1hLnRyYW5zbGF0ZShjW2JdLDAsMSwwLDEpKX0pfSl9LGRyYXdQb2ludHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS5vcHRpb25zLGM9YS5jaGFydC5yZW5kZXJlcixkLGcsZSxqLGwsaSwKZixoLG4sayxtLEgsSSxvLHQscix2LHUsdyx4LEIsQSx5PWEuZG9RdWFydGlsZXMhPT0hMSx6LEQ9YS5vcHRpb25zLndoaXNrZXJMZW5ndGg7cyhhLnBvaW50cyxmdW5jdGlvbihwKXtuPXAuZ3JhcGhpYztCPXAuc2hhcGVBcmdzO209e307bz17fTtyPXt9O0E9cC5jb2xvcnx8YS5jb2xvcjtpZihwLnBsb3RZIT09dm9pZCAwKWlmKGQ9cC5wb2ludEF0dHJbcC5zZWxlY3RlZD8ic2VsZWN0ZWQiOiIiXSx2PUIud2lkdGgsdT1DKEIueCksdz11K3YseD1FKHYvMiksZz1DKHk/cC5xMVBsb3Q6cC5sb3dQbG90KSxlPUMoeT9wLnEzUGxvdDpwLmxvd1Bsb3QpLGo9QyhwLmhpZ2hQbG90KSxsPUMocC5sb3dQbG90KSxtLnN0cm9rZT1wLnN0ZW1Db2xvcnx8Yi5zdGVtQ29sb3J8fEEsbVsic3Ryb2tlLXdpZHRoIl09cShwLnN0ZW1XaWR0aCxiLnN0ZW1XaWR0aCxiLmxpbmVXaWR0aCksbS5kYXNoc3R5bGU9cC5zdGVtRGFzaFN0eWxlfHxiLnN0ZW1EYXNoU3R5bGUsby5zdHJva2U9cC53aGlza2VyQ29sb3J8fApiLndoaXNrZXJDb2xvcnx8QSxvWyJzdHJva2Utd2lkdGgiXT1xKHAud2hpc2tlcldpZHRoLGIud2hpc2tlcldpZHRoLGIubGluZVdpZHRoKSxyLnN0cm9rZT1wLm1lZGlhbkNvbG9yfHxiLm1lZGlhbkNvbG9yfHxBLHJbInN0cm9rZS13aWR0aCJdPXEocC5tZWRpYW5XaWR0aCxiLm1lZGlhbldpZHRoLGIubGluZVdpZHRoKSxmPW1bInN0cm9rZS13aWR0aCJdJTIvMixoPXUreCtmLGs9WyJNIixoLGUsIkwiLGgsaiwiTSIsaCxnLCJMIixoLGxdLHkmJihmPWRbInN0cm9rZS13aWR0aCJdJTIvMixoPUMoaCkrZixnPUMoZykrZixlPUMoZSkrZix1Kz1mLHcrPWYsSD1bIk0iLHUsZSwiTCIsdSxnLCJMIix3LGcsIkwiLHcsZSwiTCIsdSxlLCJ6Il0pLEQmJihmPW9bInN0cm9rZS13aWR0aCJdJTIvMixqKz1mLGwrPWYsej0vJSQvLnRlc3QoRCk/eCpwYXJzZUZsb2F0KEQpLzEwMDpELzIsST1bIk0iLGgteixqLCJMIixoK3osaiwiTSIsaC16LGwsIkwiLGgreixsXSksZj1yWyJzdHJva2Utd2lkdGgiXSUKMi8yLGk9RShwLm1lZGlhblBsb3QpK2YsdD1bIk0iLHUsaSwiTCIsdyxpXSxuKXAuc3RlbS5hbmltYXRlKHtkOmt9KSxEJiZwLndoaXNrZXJzLmFuaW1hdGUoe2Q6SX0pLHkmJnAuYm94LmFuaW1hdGUoe2Q6SH0pLHAubWVkaWFuU2hhcGUuYW5pbWF0ZSh7ZDp0fSk7ZWxzZXtwLmdyYXBoaWM9bj1jLmcoKS5hZGQoYS5ncm91cCk7cC5zdGVtPWMucGF0aChrKS5hdHRyKG0pLmFkZChuKTtpZihEKXAud2hpc2tlcnM9Yy5wYXRoKEkpLmF0dHIobykuYWRkKG4pO2lmKHkpcC5ib3g9Yy5wYXRoKEgpLmF0dHIoZCkuYWRkKG4pO3AubWVkaWFuU2hhcGU9Yy5wYXRoKHQpLmF0dHIocikuYWRkKG4pfX0pfSxzZXRTdGFja2VkUG9pbnRzOnJ9KTtvLmVycm9yYmFyPXQoby5ib3hwbG90LHtjb2xvcjoiIzAwMDAwMCIsZ3JvdXBpbmc6ITEsbGlua2VkVG86IjpwcmV2aW91cyIsdG9vbHRpcDp7cG9pbnRGb3JtYXQ6JzxzcGFuIHN0eWxlPSJjb2xvcjp7cG9pbnQuY29sb3J9Ij5cdTI1Y2Y8L3NwYW4+IHtzZXJpZXMubmFtZX06IDxiPntwb2ludC5sb3d9PC9iPiAtIDxiPntwb2ludC5oaWdofTwvYj48YnIvPid9LAp3aGlza2VyV2lkdGg6bnVsbH0pO2suZXJyb3JiYXI9dShrLmJveHBsb3Qse3R5cGU6ImVycm9yYmFyIixwb2ludEFycmF5TWFwOlsibG93IiwiaGlnaCJdLHRvWURhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuW2EubG93LGEuaGlnaF19LHBvaW50VmFsS2V5OiJoaWdoIixkb1F1YXJ0aWxlczohMSxkcmF3RGF0YUxhYmVsczprLmFyZWFyYW5nZT9rLmFyZWFyYW5nZS5wcm90b3R5cGUuZHJhd0RhdGFMYWJlbHM6cixnZXRDb2x1bW5NZXRyaWNzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGlua2VkUGFyZW50JiZ0aGlzLmxpbmtlZFBhcmVudC5jb2x1bW5NZXRyaWNzfHxrLmNvbHVtbi5wcm90b3R5cGUuZ2V0Q29sdW1uTWV0cmljcy5jYWxsKHRoaXMpfX0pO28ud2F0ZXJmYWxsPXQoby5jb2x1bW4se2xpbmVXaWR0aDoxLGxpbmVDb2xvcjoiIzMzMyIsZGFzaFN0eWxlOiJkb3QiLGJvcmRlckNvbG9yOiIjMzMzIixkYXRhTGFiZWxzOntpbnNpZGU6ITB9LHN0YXRlczp7aG92ZXI6e2xpbmVXaWR0aFBsdXM6MH19fSk7Cmsud2F0ZXJmYWxsPXUoay5jb2x1bW4se3R5cGU6IndhdGVyZmFsbCIsdXBDb2xvclByb3A6ImZpbGwiLHBvaW50VmFsS2V5OiJ5Iix0cmFuc2xhdGU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9wdGlvbnMsYj10aGlzLnlBeGlzLGMsZCxnLGUsaixsLGksZixoLG49cShhLm1pblBvaW50TGVuZ3RoLDUpLG09YS50aHJlc2hvbGQsbz1hLnN0YWNraW5nO2suY29sdW1uLnByb3RvdHlwZS50cmFuc2xhdGUuYXBwbHkodGhpcyk7dGhpcy5taW5Qb2ludExlbmd0aE9mZnNldD0wO2k9Zj1tO2Q9dGhpcy5wb2ludHM7Zm9yKGM9MCxhPWQubGVuZ3RoO2M8YTtjKyspe2c9ZFtjXTtsPXRoaXMucHJvY2Vzc2VkWURhdGFbY107ZT1nLnNoYXBlQXJncztoPShqPW8mJmIuc3RhY2tzWyh0aGlzLm5lZ1N0YWNrcyYmbDxtPyItIjoiIikrdGhpcy5zdGFja0tleV0pP2pbZy54XS5wb2ludHNbdGhpcy5pbmRleCsiLCIrY106WzAsbF07aWYoZy5pc1N1bSlnLnk9bDtlbHNlIGlmKGcuaXNJbnRlcm1lZGlhdGVTdW0pZy55PQpsLWY7aj1NKGksaStnLnkpK2hbMF07ZS55PWIudHJhbnNsYXRlKGosMCwxKTtpZihnLmlzU3VtKWUueT1iLnRyYW5zbGF0ZShoWzFdLDAsMSksZS5oZWlnaHQ9TWF0aC5taW4oYi50cmFuc2xhdGUoaFswXSwwLDEpLGIubGVuKS1lLnkrdGhpcy5taW5Qb2ludExlbmd0aE9mZnNldDtlbHNlIGlmKGcuaXNJbnRlcm1lZGlhdGVTdW0pZS55PWIudHJhbnNsYXRlKGhbMV0sMCwxKSxlLmhlaWdodD1NYXRoLm1pbihiLnRyYW5zbGF0ZShmLDAsMSksYi5sZW4pLWUueSt0aGlzLm1pblBvaW50TGVuZ3RoT2Zmc2V0LGY9aFsxXTtlbHNle2lmKGkhPT0wKWUuaGVpZ2h0PWw+MD9iLnRyYW5zbGF0ZShpLDAsMSktZS55OmIudHJhbnNsYXRlKGksMCwxKS1iLnRyYW5zbGF0ZShpLWwsMCwxKTtpKz1sfWUuaGVpZ2h0PDAmJihlLnkrPWUuaGVpZ2h0LGUuaGVpZ2h0Kj0tMSk7Zy5wbG90WT1lLnk9RShlLnkpLXRoaXMuYm9yZGVyV2lkdGglMi8yO2UuaGVpZ2h0PU0oRShlLmhlaWdodCksMC4wMDEpO2cueUJvdHRvbT0KZS55K2UuaGVpZ2h0O2lmKGUuaGVpZ2h0PD1uKWUuaGVpZ2h0PW4sdGhpcy5taW5Qb2ludExlbmd0aE9mZnNldCs9bjtlLnktPXRoaXMubWluUG9pbnRMZW5ndGhPZmZzZXQ7ZT1nLnBsb3RZKyhnLm5lZ2F0aXZlP2UuaGVpZ2h0OjApLXRoaXMubWluUG9pbnRMZW5ndGhPZmZzZXQ7dGhpcy5jaGFydC5pbnZlcnRlZD9nLnRvb2x0aXBQb3NbMF09Yi5sZW4tZTpnLnRvb2x0aXBQb3NbMV09ZX19LHByb2Nlc3NEYXRhOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMueURhdGEsYz10aGlzLm9wdGlvbnMuZGF0YSxkLGc9Yi5sZW5ndGgsZSxqLGwsaSxmLGg7aj1lPWw9aT10aGlzLm9wdGlvbnMudGhyZXNob2xkfHwwO2ZvcihoPTA7aDxnO2grKylmPWJbaF0sZD1jJiZjW2hdP2NbaF06e30sZj09PSJzdW0ifHxkLmlzU3VtP2JbaF09ajpmPT09ImludGVybWVkaWF0ZVN1bSJ8fGQuaXNJbnRlcm1lZGlhdGVTdW0/YltoXT1lOihqKz1mLGUrPWYpLGw9TWF0aC5taW4oaixsKSxpPU1hdGgubWF4KGosCmkpO3cucHJvdG90eXBlLnByb2Nlc3NEYXRhLmNhbGwodGhpcyxhKTt0aGlzLmRhdGFNaW49bDt0aGlzLmRhdGFNYXg9aX0sdG9ZRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gYS5pc1N1bT9hLng9PT0wP251bGw6InN1bSI6YS5pc0ludGVybWVkaWF0ZVN1bT9hLng9PT0wP251bGw6ImludGVybWVkaWF0ZVN1bSI6YS55fSxnZXRBdHRyaWJzOmZ1bmN0aW9uKCl7ay5jb2x1bW4ucHJvdG90eXBlLmdldEF0dHJpYnMuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBhPXRoaXMsYj1hLm9wdGlvbnMsYz1iLnN0YXRlcyxkPWIudXBDb2xvcnx8YS5jb2xvcixiPW0uQ29sb3IoZCkuYnJpZ2h0ZW4oMC4xKS5nZXQoKSxnPXQoYS5wb2ludEF0dHIpLGU9YS51cENvbG9yUHJvcDtnWyIiXVtlXT1kO2cuaG92ZXJbZV09Yy5ob3Zlci51cENvbG9yfHxiO2cuc2VsZWN0W2VdPWMuc2VsZWN0LnVwQ29sb3J8fGQ7cyhhLnBvaW50cyxmdW5jdGlvbihlKXtpZighZS5vcHRpb25zLmNvbG9yKWUueT4wPyhlLnBvaW50QXR0cj0KZyxlLmNvbG9yPWQpOmUucG9pbnRBdHRyPWEucG9pbnRBdHRyfSl9LGdldEdyYXBoUGF0aDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZGF0YSxiPWEubGVuZ3RoLGM9RSh0aGlzLm9wdGlvbnMubGluZVdpZHRoK3RoaXMuYm9yZGVyV2lkdGgpJTIvMixkPVtdLGcsZSxqO2ZvcihqPTE7ajxiO2orKyllPWFbal0uc2hhcGVBcmdzLGc9YVtqLTFdLnNoYXBlQXJncyxlPVsiTSIsZy54K2cud2lkdGgsZy55K2MsIkwiLGUueCxnLnkrY10sYVtqLTFdLnk8MCYmKGVbMl0rPWcuaGVpZ2h0LGVbNV0rPWcuaGVpZ2h0KSxkPWQuY29uY2F0KGUpO3JldHVybiBkfSxnZXRFeHRyZW1lczpyLGRyYXdHcmFwaDp3LnByb3RvdHlwZS5kcmF3R3JhcGh9KTtvLnBvbHlnb249dChvLnNjYXR0ZXIse21hcmtlcjp7ZW5hYmxlZDohMX19KTtrLnBvbHlnb249dShrLnNjYXR0ZXIse3R5cGU6InBvbHlnb24iLGZpbGxHcmFwaDohMCxnZXRTZWdtZW50UGF0aDpmdW5jdGlvbihhKXtyZXR1cm4gdy5wcm90b3R5cGUuZ2V0U2VnbWVudFBhdGguY2FsbCh0aGlzLAphKS5jb25jYXQoInoiKX0sZHJhd0dyYXBoOncucHJvdG90eXBlLmRyYXdHcmFwaCxkcmF3TGVnZW5kU3ltYm9sOm0uTGVnZW5kU3ltYm9sTWl4aW4uZHJhd1JlY3RhbmdsZX0pO28uYnViYmxlPXQoby5zY2F0dGVyLHtkYXRhTGFiZWxzOntmb3JtYXR0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wb2ludC56fSxpbnNpZGU6ITAsdmVydGljYWxBbGlnbjoibWlkZGxlIn0sbWFya2VyOntsaW5lQ29sb3I6bnVsbCxsaW5lV2lkdGg6MX0sbWluU2l6ZTo4LG1heFNpemU6IjIwJSIsc29mdFRocmVzaG9sZDohMSxzdGF0ZXM6e2hvdmVyOntoYWxvOntzaXplOjV9fX0sdG9vbHRpcDp7cG9pbnRGb3JtYXQ6Iih7cG9pbnQueH0sIHtwb2ludC55fSksIFNpemU6IHtwb2ludC56fSJ9LHR1cmJvVGhyZXNob2xkOjAselRocmVzaG9sZDowLHpvbmVBeGlzOiJ6In0pO0I9dShHLHtoYWxvUGF0aDpmdW5jdGlvbigpe3JldHVybiBHLnByb3RvdHlwZS5oYWxvUGF0aC5jYWxsKHRoaXMsdGhpcy5zaGFwZUFyZ3MucisKdGhpcy5zZXJpZXMub3B0aW9ucy5zdGF0ZXMuaG92ZXIuaGFsby5zaXplKX0sdHRCZWxvdzohMX0pO2suYnViYmxlPXUoay5zY2F0dGVyLHt0eXBlOiJidWJibGUiLHBvaW50Q2xhc3M6Qixwb2ludEFycmF5TWFwOlsieSIsInoiXSxwYXJhbGxlbEFycmF5czpbIngiLCJ5IiwieiJdLHRyYWNrZXJHcm91cHM6WyJncm91cCIsImRhdGFMYWJlbHNHcm91cCJdLGJ1YmJsZVBhZGRpbmc6ITAsem9uZUF4aXM6InoiLHBvaW50QXR0clRvT3B0aW9uczp7c3Ryb2tlOiJsaW5lQ29sb3IiLCJzdHJva2Utd2lkdGgiOiJsaW5lV2lkdGgiLGZpbGw6ImZpbGxDb2xvciJ9LGFwcGx5T3BhY2l0eTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLm9wdGlvbnMubWFya2VyLGM9cShiLmZpbGxPcGFjaXR5LDAuNSksYT1hfHxiLmZpbGxDb2xvcnx8dGhpcy5jb2xvcjtjIT09MSYmKGE9VChhKS5zZXRPcGFjaXR5KGMpLmdldCgicmdiYSIpKTtyZXR1cm4gYX0sY29udmVydEF0dHJpYnM6ZnVuY3Rpb24oKXt2YXIgYT0Kdy5wcm90b3R5cGUuY29udmVydEF0dHJpYnMuYXBwbHkodGhpcyxhcmd1bWVudHMpO2EuZmlsbD10aGlzLmFwcGx5T3BhY2l0eShhLmZpbGwpO3JldHVybiBhfSxnZXRSYWRpaTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZyxlLGosbD10aGlzLnpEYXRhLGk9W10sZj10aGlzLm9wdGlvbnMsaD1mLnNpemVCeSE9PSJ3aWR0aCIsbj1mLnpUaHJlc2hvbGQsaz1iLWE7Zm9yKGU9MCxnPWwubGVuZ3RoO2U8ZztlKyspaj1sW2VdLGYuc2l6ZUJ5QWJzb2x1dGVWYWx1ZSYmaiE9PW51bGwmJihqPU1hdGguYWJzKGotbiksYj1NYXRoLm1heChiLW4sTWF0aC5hYnMoYS1uKSksYT0wKSxqPT09bnVsbD9qPW51bGw6ajxhP2o9Yy8yLTE6KGo9az4wPyhqLWEpL2s6MC41LGgmJmo+PTAmJihqPU1hdGguc3FydChqKSksaj14LmNlaWwoYytqKihkLWMpKS8yKSxpLnB1c2goaik7dGhpcy5yYWRpaT1pfSxhbmltYXRlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMub3B0aW9ucy5hbmltYXRpb247aWYoIWEpcyh0aGlzLnBvaW50cywKZnVuY3Rpb24oYSl7dmFyIGQ9YS5ncmFwaGljLGE9YS5zaGFwZUFyZ3M7ZCYmYSYmKGQuYXR0cigiciIsMSksZC5hbmltYXRlKHtyOmEucn0sYikpfSksdGhpcy5hbmltYXRlPW51bGx9LHRyYW5zbGF0ZTpmdW5jdGlvbigpe3ZhciBhLGI9dGhpcy5kYXRhLGMsZCxnPXRoaXMucmFkaWk7ay5zY2F0dGVyLnByb3RvdHlwZS50cmFuc2xhdGUuY2FsbCh0aGlzKTtmb3IoYT1iLmxlbmd0aDthLS07KWM9YlthXSxkPWc/Z1thXTowLHR5cGVvZiBkPT09Im51bWJlciImJmQ+PXRoaXMubWluUHhTaXplLzI/KGMuc2hhcGVUeXBlPSJjaXJjbGUiLGMuc2hhcGVBcmdzPXt4OmMucGxvdFgseTpjLnBsb3RZLHI6ZH0sYy5kbEJveD17eDpjLnBsb3RYLWQseTpjLnBsb3RZLWQsd2lkdGg6MipkLGhlaWdodDoyKmR9KTpjLnNoYXBlQXJncz1jLnBsb3RZPWMuZGxCb3g9dm9pZCAwfSxkcmF3TGVnZW5kU3ltYm9sOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jaGFydC5yZW5kZXJlcixkPWMuZm9udE1ldHJpY3MoYS5pdGVtU3R5bGUuZm9udFNpemUpLmYvCjI7Yi5sZWdlbmRTeW1ib2w9Yy5jaXJjbGUoZCxhLmJhc2VsaW5lLWQsZCkuYXR0cih7ekluZGV4OjN9KS5hZGQoYi5sZWdlbmRHcm91cCk7Yi5sZWdlbmRTeW1ib2wuaXNNYXJrZXI9ITB9LGRyYXdQb2ludHM6ay5jb2x1bW4ucHJvdG90eXBlLmRyYXdQb2ludHMsYWxpZ25EYXRhTGFiZWw6ay5jb2x1bW4ucHJvdG90eXBlLmFsaWduRGF0YUxhYmVsLGJ1aWxkS0RUcmVlOnIsYXBwbHlab25lczpyfSk7TC5wcm90b3R5cGUuYmVmb3JlUGFkZGluZz1mdW5jdGlvbigpe3ZhciBhPXRoaXMsYj10aGlzLmxlbixjPXRoaXMuY2hhcnQsZD0wLGc9YixlPXRoaXMuaXNYQXhpcyxqPWU/InhEYXRhIjoieURhdGEiLGw9dGhpcy5taW4saT17fSxmPXgubWluKGMucGxvdFdpZHRoLGMucGxvdEhlaWdodCksaD1OdW1iZXIuTUFYX1ZBTFVFLG49LU51bWJlci5NQVhfVkFMVUUsaz10aGlzLm1heC1sLG09Yi9rLG89W107cyh0aGlzLnNlcmllcyxmdW5jdGlvbihiKXt2YXIgZz1iLm9wdGlvbnM7aWYoYi5idWJibGVQYWRkaW5nJiYKKGIudmlzaWJsZXx8IWMub3B0aW9ucy5jaGFydC5pZ25vcmVIaWRkZW5TZXJpZXMpKWlmKGEuYWxsb3dab29tT3V0c2lkZT0hMCxvLnB1c2goYiksZSlzKFsibWluU2l6ZSIsIm1heFNpemUiXSxmdW5jdGlvbihhKXt2YXIgYj1nW2FdLGU9LyUkLy50ZXN0KGIpLGI9QShiKTtpW2FdPWU/ZipiLzEwMDpifSksYi5taW5QeFNpemU9aS5taW5TaXplLGIubWF4UHhTaXplPWkubWF4U2l6ZSxiPWIuekRhdGEsYi5sZW5ndGgmJihoPXEoZy56TWluLHgubWluKGgseC5tYXgoTyhiKSxnLmRpc3BsYXlOZWdhdGl2ZT09PSExP2cuelRocmVzaG9sZDotTnVtYmVyLk1BWF9WQUxVRSkpKSxuPXEoZy56TWF4LHgubWF4KG4sUChiKSkpKX0pO3MobyxmdW5jdGlvbihhKXt2YXIgYj1hW2pdLGM9Yi5sZW5ndGgsZjtlJiZhLmdldFJhZGlpKGgsbixhLm1pblB4U2l6ZSxhLm1heFB4U2l6ZSk7aWYoaz4wKWZvcig7Yy0tOyl0eXBlb2YgYltjXT09PSJudW1iZXIiJiYoZj1hLnJhZGlpW2NdLGQ9TWF0aC5taW4oKGJbY10tCmwpKm0tZixkKSxnPU1hdGgubWF4KChiW2NdLWwpKm0rZixnKSl9KTtvLmxlbmd0aCYmaz4wJiYhdGhpcy5pc0xvZyYmKGctPWIsbSo9KGIrZC1nKS9iLHMoW1sibWluIiwidXNlck1pbiIsZF0sWyJtYXgiLCJ1c2VyTWF4IixnXV0sZnVuY3Rpb24oYil7cShhLm9wdGlvbnNbYlswXV0sYVtiWzFdXSk9PT12b2lkIDAmJihhW2JbMF1dKz1iWzJdL20pfSkpfTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGEsYil7dmFyIGM9dGhpcy5jaGFydCxkPXRoaXMub3B0aW9ucy5hbmltYXRpb24saT10aGlzLmdyb3VwLGY9dGhpcy5tYXJrZXJHcm91cCxoPXRoaXMueEF4aXMuY2VudGVyLG49Yy5wbG90TGVmdCxrPWMucGxvdFRvcDtpZihjLnBvbGFyKXtpZihjLnJlbmRlcmVyLmlzU1ZHKWQ9PT0hMCYmKGQ9e30pLGI/KGM9e3RyYW5zbGF0ZVg6aFswXStuLHRyYW5zbGF0ZVk6aFsxXStrLHNjYWxlWDowLjAwMSxzY2FsZVk6MC4wMDF9LGkuYXR0cihjKSxmJiZmLmF0dHIoYykpOihjPXt0cmFuc2xhdGVYOm4sCnRyYW5zbGF0ZVk6ayxzY2FsZVg6MSxzY2FsZVk6MX0saS5hbmltYXRlKGMsZCksZiYmZi5hbmltYXRlKGMsZCksdGhpcy5hbmltYXRlPW51bGwpfWVsc2UgYS5jYWxsKHRoaXMsYil9dmFyIGI9dy5wcm90b3R5cGUsYz1SLnByb3RvdHlwZSxkO2Iuc2VhcmNoUG9pbnRCeUFuZ2xlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY2hhcnQsYz10aGlzLnhBeGlzLnBhbmUuY2VudGVyO3JldHVybiB0aGlzLnNlYXJjaEtEVHJlZSh7Y2xpZW50WDoxODArTWF0aC5hdGFuMihhLmNoYXJ0WC1jWzBdLWIucGxvdExlZnQsYS5jaGFydFktY1sxXS1iLnBsb3RUb3ApKigtMTgwL01hdGguUEkpfSl9O3YoYiwiYnVpbGRLRFRyZWUiLGZ1bmN0aW9uKGEpe2lmKHRoaXMuY2hhcnQucG9sYXIpdGhpcy5rZEJ5QW5nbGU/dGhpcy5zZWFyY2hQb2ludD10aGlzLnNlYXJjaFBvaW50QnlBbmdsZTp0aGlzLmtkRGltZW5zaW9ucz0yO2EuYXBwbHkodGhpcyl9KTtiLnRvWFk9ZnVuY3Rpb24oYSl7dmFyIGIsYz10aGlzLmNoYXJ0LApkPWEucGxvdFg7Yj1hLnBsb3RZO2EucmVjdFBsb3RYPWQ7YS5yZWN0UGxvdFk9YjtiPXRoaXMueEF4aXMucG9zdFRyYW5zbGF0ZShhLnBsb3RYLHRoaXMueUF4aXMubGVuLWIpO2EucGxvdFg9YS5wb2xhclBsb3RYPWIueC1jLnBsb3RMZWZ0O2EucGxvdFk9YS5wb2xhclBsb3RZPWIueS1jLnBsb3RUb3A7dGhpcy5rZEJ5QW5nbGU/KGM9KGQvTWF0aC5QSSoxODArdGhpcy54QXhpcy5wYW5lLm9wdGlvbnMuc3RhcnRBbmdsZSklMzYwLGM8MCYmKGMrPTM2MCksYS5jbGllbnRYPWMpOmEuY2xpZW50WD1hLnBsb3RYfTtrLnNwbGluZSYmdihrLnNwbGluZS5wcm90b3R5cGUsImdldFBvaW50U3BsaW5lIixmdW5jdGlvbihhLGIsYyxkKXt2YXIgaSxmLGgsbixrLG0sbztpZih0aGlzLmNoYXJ0LnBvbGFyKXtpPWMucGxvdFg7Zj1jLnBsb3RZO2E9YltkLTFdO2g9YltkKzFdO3RoaXMuY29ubmVjdEVuZHMmJihhfHwoYT1iW2IubGVuZ3RoLTJdKSxofHwoaD1iWzFdKSk7aWYoYSYmaCluPWEucGxvdFgsCms9YS5wbG90WSxiPWgucGxvdFgsbT1oLnBsb3RZLG49KDEuNSppK24pLzIuNSxrPSgxLjUqZitrKS8yLjUsaD0oMS41KmkrYikvMi41LG89KDEuNSpmK20pLzIuNSxiPU1hdGguc3FydChNYXRoLnBvdyhuLWksMikrTWF0aC5wb3coay1mLDIpKSxtPU1hdGguc3FydChNYXRoLnBvdyhoLWksMikrTWF0aC5wb3coby1mLDIpKSxuPU1hdGguYXRhbjIoay1mLG4taSksaz1NYXRoLmF0YW4yKG8tZixoLWkpLG89TWF0aC5QSS8yKyhuK2spLzIsTWF0aC5hYnMobi1vKT5NYXRoLlBJLzImJihvLT1NYXRoLlBJKSxuPWkrTWF0aC5jb3MobykqYixrPWYrTWF0aC5zaW4obykqYixoPWkrTWF0aC5jb3MoTWF0aC5QSStvKSptLG89ZitNYXRoLnNpbihNYXRoLlBJK28pKm0sYy5yaWdodENvbnRYPWgsYy5yaWdodENvbnRZPW87ZD8oYz1bIkMiLGEucmlnaHRDb250WHx8YS5wbG90WCxhLnJpZ2h0Q29udFl8fGEucGxvdFksbnx8aSxrfHxmLGksZl0sYS5yaWdodENvbnRYPWEucmlnaHRDb250WT1udWxsKToKYz1bIk0iLGksZl19ZWxzZSBjPWEuY2FsbCh0aGlzLGIsYyxkKTtyZXR1cm4gY30pO3YoYiwidHJhbnNsYXRlIixmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNoYXJ0O2EuY2FsbCh0aGlzKTtpZihiLnBvbGFyJiYodGhpcy5rZEJ5QW5nbGU9Yi50b29sdGlwJiZiLnRvb2x0aXAuc2hhcmVkLCF0aGlzLnByZXZlbnRQb3N0VHJhbnNsYXRlKSl7YT10aGlzLnBvaW50cztmb3IoYj1hLmxlbmd0aDtiLS07KXRoaXMudG9YWShhW2JdKX19KTt2KGIsImdldEdyYXBoUGF0aCIsZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzO2lmKHRoaXMuY2hhcnQucG9sYXIpe2I9Ynx8dGhpcy5wb2ludHM7aWYodGhpcy5vcHRpb25zLmNvbm5lY3RFbmRzIT09ITEmJmJbMF0ueSE9PW51bGwpdGhpcy5jb25uZWN0RW5kcz0hMCxiLnNwbGljZShiLmxlbmd0aCwwLGJbMF0pO3MoYixmdW5jdGlvbihhKXthLnBvbGFyUGxvdFk9PT12b2lkIDAmJmMudG9YWShhKX0pfXJldHVybiBhLmFwcGx5KHRoaXMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsCjEpKX0pO3YoYiwiYW5pbWF0ZSIsYSk7aWYoay5jb2x1bW4pZD1rLmNvbHVtbi5wcm90b3R5cGUsdihkLCJhbmltYXRlIixhKSx2KGQsInRyYW5zbGF0ZSIsZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy54QXhpcyxjPXRoaXMueUF4aXMubGVuLGQ9Yi5jZW50ZXIsaT1iLnN0YXJ0QW5nbGVSYWQsZj10aGlzLmNoYXJ0LnJlbmRlcmVyLGgsazt0aGlzLnByZXZlbnRQb3N0VHJhbnNsYXRlPSEwO2EuY2FsbCh0aGlzKTtpZihiLmlzUmFkaWFsKXtiPXRoaXMucG9pbnRzO2ZvcihrPWIubGVuZ3RoO2stLTspaD1iW2tdLGE9aC5iYXJYK2ksaC5zaGFwZVR5cGU9InBhdGgiLGguc2hhcGVBcmdzPXtkOmYuc3ltYm9scy5hcmMoZFswXSxkWzFdLGMtaC5wbG90WSxudWxsLHtzdGFydDphLGVuZDphK2gucG9pbnRXaWR0aCxpbm5lclI6Yy1xKGgueUJvdHRvbSxjKX0pfSx0aGlzLnRvWFkoaCksaC50b29sdGlwUG9zPVtoLnBsb3RYLGgucGxvdFldLGgudHRCZWxvdz1oLnBsb3RZPmRbMV19fSksdihkLAoiYWxpZ25EYXRhTGFiZWwiLGZ1bmN0aW9uKGEsYyxkLGwsaSxmKXtpZih0aGlzLmNoYXJ0LnBvbGFyKXthPWMucmVjdFBsb3RYL01hdGguUEkqMTgwO2lmKGwuYWxpZ249PT1udWxsKWwuYWxpZ249YT4yMCYmYTwxNjA/ImxlZnQiOmE+MjAwJiZhPDM0MD8icmlnaHQiOiJjZW50ZXIiO2lmKGwudmVydGljYWxBbGlnbj09PW51bGwpbC52ZXJ0aWNhbEFsaWduPWE8NDV8fGE+MzE1PyJib3R0b20iOmE+MTM1JiZhPDIyNT8idG9wIjoibWlkZGxlIjtiLmFsaWduRGF0YUxhYmVsLmNhbGwodGhpcyxjLGQsbCxpLGYpfWVsc2UgYS5jYWxsKHRoaXMsYyxkLGwsaSxmKX0pO3YoYywiZ2V0Q29vcmRpbmF0ZXMiLGZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jaGFydCxkPXt4QXhpczpbXSx5QXhpczpbXX07Yy5wb2xhcj9zKGMuYXhlcyxmdW5jdGlvbihhKXt2YXIgZj1hLmlzWEF4aXMsZz1hLmNlbnRlcixrPWIuY2hhcnRYLWdbMF0tYy5wbG90TGVmdCxnPWIuY2hhcnRZLWdbMV0tYy5wbG90VG9wOwpkW2Y/InhBeGlzIjoieUF4aXMiXS5wdXNoKHtheGlzOmEsdmFsdWU6YS50cmFuc2xhdGUoZj9NYXRoLlBJLU1hdGguYXRhbjIoayxnKTpNYXRoLnNxcnQoTWF0aC5wb3coaywyKStNYXRoLnBvdyhnLDIpKSwhMCl9KX0pOmQ9YS5jYWxsKHRoaXMsYik7cmV0dXJuIGR9KX0pKCl9KTsK"></script> <script src="data:application/x-javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjQuMi4zICgyMDE2LTAyLTA4KQoKIDNEIGZlYXR1cmVzIGZvciBIaWdoY2hhcnRzIEpTCgogQGxpY2Vuc2U6IHd3dy5oaWdoY2hhcnRzLmNvbS9saWNlbnNlCiovCihmdW5jdGlvbihkKXt0eXBlb2YgbW9kdWxlPT09Im9iamVjdCImJm1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPWQ6ZChIaWdoY2hhcnRzKX0pKGZ1bmN0aW9uKGQpe2Z1bmN0aW9uIHIoYyxiLGEpe3ZhciBlLGYsZz1iLm9wdGlvbnMuY2hhcnQub3B0aW9uczNkLGQ9ITE7YT8oZD1iLmludmVydGVkLGE9Yi5wbG90V2lkdGgvMixiPWIucGxvdEhlaWdodC8yLGU9Zy5kZXB0aC8yLGY9dShnLmRlcHRoLDEpKnUoZy52aWV3RGlzdGFuY2UsMCkpOihhPWIucGxvdExlZnQrYi5wbG90V2lkdGgvMixiPWIucGxvdFRvcCtiLnBsb3RIZWlnaHQvMixlPWcuZGVwdGgvMixmPXUoZy5kZXB0aCwxKSp1KGcudmlld0Rpc3RhbmNlLDApKTt2YXIgaj1bXSxrPWEsaT1iLGw9ZSx3PWYsYT1BKihkP2cuYmV0YTotZy5iZXRhKSxnPUEqKGQ/LWcuYWxwaGE6Zy5hbHBoYSksbz1wKGEpLHE9bShhKSxuPXAoZykseT1tKGcpLHgscyx6LHQsdixDO0IoYyxmdW5jdGlvbihhKXt4PShkP2EueTphLngpLQprO3M9KGQ/YS54OmEueSktaTt6PShhLnp8fDApLWw7dD1xKngtbyp6O3Y9LW8qbip4K3kqcy1xKm4qejtDPW8qeSp4K24qcytxKnkqejt3PjAmJnc8TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZJiYodCo9dy8oQytsK3cpLHYqPXcvKEMrbCt3KSk7dCs9azt2Kz1pO0MrPWw7ai5wdXNoKHt4OmQ/djp0LHk6ZD90OnYsejpDfSl9KTtyZXR1cm4gan1mdW5jdGlvbiBEKGMpe3JldHVybiBjIT09dm9pZCAwJiZjIT09bnVsbH1mdW5jdGlvbiBJKGMpe3ZhciBiPTAsYSxlO2ZvcihhPTA7YTxjLmxlbmd0aDthKyspZT0oYSsxKSVjLmxlbmd0aCxiKz1jW2FdLngqY1tlXS55LWNbZV0ueCpjW2FdLnk7cmV0dXJuIGIvMn1mdW5jdGlvbiBFKGMpe3ZhciBiPTAsYTtmb3IoYT0wO2E8Yy5sZW5ndGg7YSsrKWIrPWNbYV0uejtyZXR1cm4gYy5sZW5ndGg/Yi9jLmxlbmd0aDowfWZ1bmN0aW9uIHEoYyxiLGEsZSxmLGcsZCxqKXt2YXIgaz1bXTtnPmYmJmctZj5vLzIrMS4wRS00PyhrPWsuY29uY2F0KHEoYywKYixhLGUsZixmK28vMixkLGopKSxrPWsuY29uY2F0KHEoYyxiLGEsZSxmK28vMixnLGQsaikpKTpnPGYmJmYtZz5vLzIrMS4wRS00PyhrPWsuY29uY2F0KHEoYyxiLGEsZSxmLGYtby8yLGQsaikpLGs9ay5jb25jYXQocShjLGIsYSxlLGYtby8yLGcsZCxqKSkpOihrPWctZixrPVsiQyIsYythKm0oZiktYSpGKmsqcChmKStkLGIrZSpwKGYpK2UqRiprKm0oZikraixjK2EqbShnKSthKkYqaypwKGcpK2QsYitlKnAoZyktZSpGKmsqbShnKStqLGMrYSptKGcpK2QsYitlKnAoZykral0pO3JldHVybiBrfWZ1bmN0aW9uIEooYyl7aWYodGhpcy5jaGFydC5pczNkKCkpe3ZhciBiPXRoaXMuY2hhcnQub3B0aW9ucy5wbG90T3B0aW9ucy5jb2x1bW4uZ3JvdXBpbmc7aWYoYiE9PXZvaWQgMCYmIWImJnRoaXMuZ3JvdXAuekluZGV4IT09dm9pZCAwJiYhdGhpcy56SW5kZXhTZXQpdGhpcy5ncm91cC5hdHRyKHt6SW5kZXg6dGhpcy5ncm91cC56SW5kZXgqMTB9KSx0aGlzLnpJbmRleFNldD0hMDt2YXIgYT0KdGhpcy5vcHRpb25zLGU9dGhpcy5vcHRpb25zLnN0YXRlczt0aGlzLmJvcmRlcldpZHRoPWEuYm9yZGVyV2lkdGg9RChhLmVkZ2VXaWR0aCk/YS5lZGdlV2lkdGg6MTtkLmVhY2godGhpcy5kYXRhLGZ1bmN0aW9uKGIpe2lmKGIueSE9PW51bGwpYj1iLnBvaW50QXR0cix0aGlzLmJvcmRlckNvbG9yPWQucGljayhhLmVkZ2VDb2xvcixiWyIiXS5maWxsKSxiWyIiXS5zdHJva2U9dGhpcy5ib3JkZXJDb2xvcixiLmhvdmVyLnN0cm9rZT1kLnBpY2soZS5ob3Zlci5lZGdlQ29sb3IsdGhpcy5ib3JkZXJDb2xvciksYi5zZWxlY3Quc3Ryb2tlPWQucGljayhlLnNlbGVjdC5lZGdlQ29sb3IsdGhpcy5ib3JkZXJDb2xvcil9KX1jLmFwcGx5KHRoaXMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpfXZhciBCPWQuZWFjaCxNPWQuZXh0ZW5kLE49ZC5pbkFycmF5LEc9ZC5tZXJnZSx1PWQucGljayxLPWQud3JhcCxvPU1hdGguUEksQT1vLzE4MCxwPU1hdGguc2luLG09TWF0aC5jb3MsTD1NYXRoLnJvdW5kOwpkLnBlcnNwZWN0aXZlPXI7dmFyIEY9NCooTWF0aC5zcXJ0KDIpLTEpLzMvKG8vMik7ZC5TVkdSZW5kZXJlci5wcm90b3R5cGUudG9MaW5lUGF0aD1mdW5jdGlvbihjLGIpe3ZhciBhPVtdO2QuZWFjaChjLGZ1bmN0aW9uKGIpe2EucHVzaCgiTCIsYi54LGIueSl9KTtjLmxlbmd0aCYmKGFbMF09Ik0iLGImJmEucHVzaCgiWiIpKTtyZXR1cm4gYX07ZC5TVkdSZW5kZXJlci5wcm90b3R5cGUuY3Vib2lkPWZ1bmN0aW9uKGMpe3ZhciBiPXRoaXMuZygpLGM9dGhpcy5jdWJvaWRQYXRoKGMpO2IuZnJvbnQ9dGhpcy5wYXRoKGNbMF0pLmF0dHIoe3pJbmRleDpjWzNdLCJzdHJva2UtbGluZWpvaW4iOiJyb3VuZCJ9KS5hZGQoYik7Yi50b3A9dGhpcy5wYXRoKGNbMV0pLmF0dHIoe3pJbmRleDpjWzRdLCJzdHJva2UtbGluZWpvaW4iOiJyb3VuZCJ9KS5hZGQoYik7Yi5zaWRlPXRoaXMucGF0aChjWzJdKS5hdHRyKHt6SW5kZXg6Y1s1XSwic3Ryb2tlLWxpbmVqb2luIjoicm91bmQifSkuYWRkKGIpOwpiLmZpbGxTZXR0ZXI9ZnVuY3Rpb24oYSl7dmFyIGI9ZC5Db2xvcihhKS5icmlnaHRlbigwLjEpLmdldCgpLGM9ZC5Db2xvcihhKS5icmlnaHRlbigtMC4xKS5nZXQoKTt0aGlzLmZyb250LmF0dHIoe2ZpbGw6YX0pO3RoaXMudG9wLmF0dHIoe2ZpbGw6Yn0pO3RoaXMuc2lkZS5hdHRyKHtmaWxsOmN9KTt0aGlzLmNvbG9yPWE7cmV0dXJuIHRoaXN9O2Iub3BhY2l0eVNldHRlcj1mdW5jdGlvbihhKXt0aGlzLmZyb250LmF0dHIoe29wYWNpdHk6YX0pO3RoaXMudG9wLmF0dHIoe29wYWNpdHk6YX0pO3RoaXMuc2lkZS5hdHRyKHtvcGFjaXR5OmF9KTtyZXR1cm4gdGhpc307Yi5hdHRyPWZ1bmN0aW9uKGEpe2lmKGEuc2hhcGVBcmdzfHxEKGEueCkpYT10aGlzLnJlbmRlcmVyLmN1Ym9pZFBhdGgoYS5zaGFwZUFyZ3N8fGEpLHRoaXMuZnJvbnQuYXR0cih7ZDphWzBdLHpJbmRleDphWzNdfSksdGhpcy50b3AuYXR0cih7ZDphWzFdLHpJbmRleDphWzRdfSksdGhpcy5zaWRlLmF0dHIoe2Q6YVsyXSwKekluZGV4OmFbNV19KTtlbHNlIHJldHVybiBkLlNWR0VsZW1lbnQucHJvdG90eXBlLmF0dHIuY2FsbCh0aGlzLGEpO3JldHVybiB0aGlzfTtiLmFuaW1hdGU9ZnVuY3Rpb24oYSxiLGMpe0QoYS54KSYmRChhLnkpPyhhPXRoaXMucmVuZGVyZXIuY3Vib2lkUGF0aChhKSx0aGlzLmZyb250LmF0dHIoe3pJbmRleDphWzNdfSkuYW5pbWF0ZSh7ZDphWzBdfSxiLGMpLHRoaXMudG9wLmF0dHIoe3pJbmRleDphWzRdfSkuYW5pbWF0ZSh7ZDphWzFdfSxiLGMpLHRoaXMuc2lkZS5hdHRyKHt6SW5kZXg6YVs1XX0pLmFuaW1hdGUoe2Q6YVsyXX0sYixjKSx0aGlzLmF0dHIoe3pJbmRleDotYVs2XX0pKTphLm9wYWNpdHk/KHRoaXMuZnJvbnQuYW5pbWF0ZShhLGIsYyksdGhpcy50b3AuYW5pbWF0ZShhLGIsYyksdGhpcy5zaWRlLmFuaW1hdGUoYSxiLGMpKTpkLlNWR0VsZW1lbnQucHJvdG90eXBlLmFuaW1hdGUuY2FsbCh0aGlzLGEsYixjKTtyZXR1cm4gdGhpc307Yi5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5mcm9udC5kZXN0cm95KCk7CnRoaXMudG9wLmRlc3Ryb3koKTt0aGlzLnNpZGUuZGVzdHJveSgpO3JldHVybiBudWxsfTtiLmF0dHIoe3pJbmRleDotY1s2XX0pO3JldHVybiBifTtkLlNWR1JlbmRlcmVyLnByb3RvdHlwZS5jdWJvaWRQYXRoPWZ1bmN0aW9uKGMpe2Z1bmN0aW9uIGIoYSl7cmV0dXJuIGlbYV19dmFyIGE9Yy54LGU9Yy55LGY9Yy56LGc9Yy5oZWlnaHQsaD1jLndpZHRoLGo9Yy5kZXB0aCxrPWQubWFwLGk9W3t4OmEseTplLHo6Zn0se3g6YStoLHk6ZSx6OmZ9LHt4OmEraCx5OmUrZyx6OmZ9LHt4OmEseTplK2csejpmfSx7eDphLHk6ZStnLHo6ZitqfSx7eDphK2gseTplK2csejpmK2p9LHt4OmEraCx5OmUsejpmK2p9LHt4OmEseTplLHo6ZitqfV0saT1yKGksZC5jaGFydHNbdGhpcy5jaGFydEluZGV4XSxjLmluc2lkZVBsb3RBcmVhKSxmPWZ1bmN0aW9uKGEsYyl7dmFyIGU9W10sYT1rKGEsYiksYz1rKGMsYik7SShhKTwwP2U9YTpJKGMpPDAmJihlPWMpO3JldHVybiBlfSxjPWYoWzMsMiwxLDBdLApbNyw2LDUsNF0pLGE9WzQsNSwyLDNdLGU9ZihbMSw2LDcsMF0sYSksZj1mKFsxLDIsNSw2XSxbMCw3LDQsM10pO3JldHVyblt0aGlzLnRvTGluZVBhdGgoYywhMCksdGhpcy50b0xpbmVQYXRoKGUsITApLHRoaXMudG9MaW5lUGF0aChmLCEwKSxFKGMpLEUoZSksRShmKSxFKGsoYSxiKSkqOUU5XX07ZC5TVkdSZW5kZXJlci5wcm90b3R5cGUuYXJjM2Q9ZnVuY3Rpb24oYyl7ZnVuY3Rpb24gYihhKXt2YXIgYj0hMSxjPXt9LGU7Zm9yKGUgaW4gYSlOKGUsZikhPT0tMSYmKGNbZV09YVtlXSxkZWxldGUgYVtlXSxiPSEwKTtyZXR1cm4gYj9jOiExfXZhciBhPXRoaXMuZygpLGU9YS5yZW5kZXJlcixmPSJ4LHkscixpbm5lclIsc3RhcnQsZW5kIi5zcGxpdCgiLCIpLGM9RyhjKTtjLmFscGhhKj1BO2MuYmV0YSo9QTthLnRvcD1lLnBhdGgoKTthLnNpZGUxPWUucGF0aCgpO2Euc2lkZTI9ZS5wYXRoKCk7YS5pbm49ZS5wYXRoKCk7YS5vdXQ9ZS5wYXRoKCk7YS5vbkFkZD1mdW5jdGlvbigpe3ZhciBiPQphLnBhcmVudEdyb3VwO2EudG9wLmFkZChhKTthLm91dC5hZGQoYik7YS5pbm4uYWRkKGIpO2Euc2lkZTEuYWRkKGIpO2Euc2lkZTIuYWRkKGIpfTthLnNldFBhdGhzPWZ1bmN0aW9uKGIpe3ZhciBjPWEucmVuZGVyZXIuYXJjM2RQYXRoKGIpLGU9Yy56VG9wKjEwMDthLmF0dHJpYnM9YjthLnRvcC5hdHRyKHtkOmMudG9wLHpJbmRleDpjLnpUb3B9KTthLmlubi5hdHRyKHtkOmMuaW5uLHpJbmRleDpjLnpJbm59KTthLm91dC5hdHRyKHtkOmMub3V0LHpJbmRleDpjLnpPdXR9KTthLnNpZGUxLmF0dHIoe2Q6Yy5zaWRlMSx6SW5kZXg6Yy56U2lkZTF9KTthLnNpZGUyLmF0dHIoe2Q6Yy5zaWRlMix6SW5kZXg6Yy56U2lkZTJ9KTthLnpJbmRleD1lO2EuYXR0cih7ekluZGV4OmV9KTtiLmNlbnRlciYmKGEudG9wLnNldFJhZGlhbFJlZmVyZW5jZShiLmNlbnRlciksZGVsZXRlIGIuY2VudGVyKX07YS5zZXRQYXRocyhjKTthLmZpbGxTZXR0ZXI9ZnVuY3Rpb24oYSl7dmFyIGI9ZC5Db2xvcihhKS5icmlnaHRlbigtMC4xKS5nZXQoKTsKdGhpcy5maWxsPWE7dGhpcy5zaWRlMS5hdHRyKHtmaWxsOmJ9KTt0aGlzLnNpZGUyLmF0dHIoe2ZpbGw6Yn0pO3RoaXMuaW5uLmF0dHIoe2ZpbGw6Yn0pO3RoaXMub3V0LmF0dHIoe2ZpbGw6Yn0pO3RoaXMudG9wLmF0dHIoe2ZpbGw6YX0pO3JldHVybiB0aGlzfTtCKFsib3BhY2l0eSIsInRyYW5zbGF0ZVgiLCJ0cmFuc2xhdGVZIiwidmlzaWJpbGl0eSJdLGZ1bmN0aW9uKGIpe2FbYisiU2V0dGVyIl09ZnVuY3Rpb24oYixjKXthW2NdPWI7QihbIm91dCIsImlubiIsInNpZGUxIiwic2lkZTIiLCJ0b3AiXSxmdW5jdGlvbihlKXthW2VdLmF0dHIoYyxiKX0pfX0pO0soYSwiYXR0ciIsZnVuY3Rpb24oYyxlLGQpe3ZhciBmO2lmKHR5cGVvZiBlPT09Im9iamVjdCImJihmPWIoZSkpKU0oYS5hdHRyaWJzLGYpLGEuc2V0UGF0aHMoYS5hdHRyaWJzKTtyZXR1cm4gYy5jYWxsKHRoaXMsZSxkKX0pO0soYSwiYW5pbWF0ZSIsZnVuY3Rpb24oYSxjLGUsZCl7dmFyIGYsbD10aGlzLmF0dHJpYnMsCm07ZGVsZXRlIGMuY2VudGVyO2RlbGV0ZSBjLno7ZGVsZXRlIGMuZGVwdGg7ZGVsZXRlIGMuYWxwaGE7ZGVsZXRlIGMuYmV0YTtpZihlPXUoZSx0aGlzLnJlbmRlcmVyLmdsb2JhbEFuaW1hdGlvbikpaWYodHlwZW9mIGUhPT0ib2JqZWN0IiYmKGU9e30pLGM9RyhjKSxmPWIoYykpbT1mLGUuc3RlcD1mdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSl7cmV0dXJuIGxbYV0rKHUobVthXSxsW2FdKS1sW2FdKSpiLnBvc31iLmVsZW0uc2V0UGF0aHMoRyhsLHt4OmMoIngiKSx5OmMoInkiKSxyOmMoInIiKSxpbm5lclI6YygiaW5uZXJSIiksc3RhcnQ6Yygic3RhcnQiKSxlbmQ6YygiZW5kIil9KSl9O3JldHVybiBhLmNhbGwodGhpcyxjLGUsZCl9KTthLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLnRvcC5kZXN0cm95KCk7dGhpcy5vdXQuZGVzdHJveSgpO3RoaXMuaW5uLmRlc3Ryb3koKTt0aGlzLnNpZGUxLmRlc3Ryb3koKTt0aGlzLnNpZGUyLmRlc3Ryb3koKTtkLlNWR0VsZW1lbnQucHJvdG90eXBlLmRlc3Ryb3kuY2FsbCh0aGlzKX07CmEuaGlkZT1mdW5jdGlvbigpe3RoaXMudG9wLmhpZGUoKTt0aGlzLm91dC5oaWRlKCk7dGhpcy5pbm4uaGlkZSgpO3RoaXMuc2lkZTEuaGlkZSgpO3RoaXMuc2lkZTIuaGlkZSgpfTthLnNob3c9ZnVuY3Rpb24oKXt0aGlzLnRvcC5zaG93KCk7dGhpcy5vdXQuc2hvdygpO3RoaXMuaW5uLnNob3coKTt0aGlzLnNpZGUxLnNob3coKTt0aGlzLnNpZGUyLnNob3coKX07cmV0dXJuIGF9O2QuU1ZHUmVuZGVyZXIucHJvdG90eXBlLmFyYzNkUGF0aD1mdW5jdGlvbihjKXtmdW5jdGlvbiBiKGEpe2ElPTIqbzthPm8mJihhPTIqby1hKTtyZXR1cm4gYX12YXIgYT1jLngsZT1jLnksZD1jLnN0YXJ0LGc9Yy5lbmQtMS4wRS01LGg9Yy5yLGo9Yy5pbm5lclIsaz1jLmRlcHRoLGk9Yy5hbHBoYSxsPWMuYmV0YSx3PW0oZCksdT1wKGQpLGM9bShnKSxyPXAoZyksbj1oKm0obCk7aCo9bShpKTt2YXIgeT1qKm0obCkseD1qKm0oaSksaj1rKnAobCkscz1rKnAoaSksaz1bIk0iLGErbip3LGUraCp1XSxrPQprLmNvbmNhdChxKGEsZSxuLGgsZCxnLDAsMCkpLGs9ay5jb25jYXQoWyJMIixhK3kqYyxlK3gqcl0pLGs9ay5jb25jYXQocShhLGUseSx4LGcsZCwwLDApKSxrPWsuY29uY2F0KFsiWiJdKSx6PWw+MD9vLzI6MCxsPWk+MD8wOm8vMix6PWQ+LXo/ZDpnPi16Py16OmQsdD1nPG8tbD9nOmQ8by1sP28tbDpnLHY9MipvLWwsaT1bIk0iLGErbiptKHopLGUraCpwKHopXSxpPWkuY29uY2F0KHEoYSxlLG4saCx6LHQsMCwwKSk7Zz52JiZkPHY/KGk9aS5jb25jYXQoWyJMIixhK24qbSh0KStqLGUraCpwKHQpK3NdKSxpPWkuY29uY2F0KHEoYSxlLG4saCx0LHYsaixzKSksaT1pLmNvbmNhdChbIkwiLGErbiptKHYpLGUraCpwKHYpXSksaT1pLmNvbmNhdChxKGEsZSxuLGgsdixnLDAsMCkpLGk9aS5jb25jYXQoWyJMIixhK24qbShnKStqLGUraCpwKGcpK3NdKSxpPWkuY29uY2F0KHEoYSxlLG4saCxnLHYsaixzKSksaT1pLmNvbmNhdChbIkwiLGErbiptKHYpLGUraCpwKHYpXSksaT1pLmNvbmNhdChxKGEsCmUsbixoLHYsdCwwLDApKSk6Zz5vLWwmJmQ8by1sJiYoaT1pLmNvbmNhdChbIkwiLGErbiptKHQpK2osZStoKnAodCkrc10pLGk9aS5jb25jYXQocShhLGUsbixoLHQsZyxqLHMpKSxpPWkuY29uY2F0KFsiTCIsYStuKm0oZyksZStoKnAoZyldKSxpPWkuY29uY2F0KHEoYSxlLG4saCxnLHQsMCwwKSkpO2k9aS5jb25jYXQoWyJMIixhK24qbSh0KStqLGUraCpwKHQpK3NdKTtpPWkuY29uY2F0KHEoYSxlLG4saCx0LHosaixzKSk7aT1pLmNvbmNhdChbIloiXSk7bD1bIk0iLGEreSp3LGUreCp1XTtsPWwuY29uY2F0KHEoYSxlLHkseCxkLGcsMCwwKSk7bD1sLmNvbmNhdChbIkwiLGEreSptKGcpK2osZSt4KnAoZykrc10pO2w9bC5jb25jYXQocShhLGUseSx4LGcsZCxqLHMpKTtsPWwuY29uY2F0KFsiWiJdKTt3PVsiTSIsYStuKncsZStoKnUsIkwiLGErbip3K2osZStoKnUrcywiTCIsYSt5KncraixlK3gqdStzLCJMIixhK3kqdyxlK3gqdSwiWiJdO2E9WyJNIixhK24qYyxlK2gqciwiTCIsCmErbipjK2osZStoKnIrcywiTCIsYSt5KmMraixlK3gqcitzLCJMIixhK3kqYyxlK3gqciwiWiJdO3I9TWF0aC5hdGFuMihzLC1qKTtlPU1hdGguYWJzKGcrcik7Yz1NYXRoLmFicyhkK3IpO2Q9TWF0aC5hYnMoKGQrZykvMityKTtlPWIoZSk7Yz1iKGMpO2Q9YihkKTtkKj0xRTU7Zz1jKjFFNTtlKj0xRTU7cmV0dXJue3RvcDprLHpUb3A6byoxRTUrMSxvdXQ6aSx6T3V0Ok1hdGgubWF4KGQsZyxlKSxpbm46bCx6SW5uOk1hdGgubWF4KGQsZyxlKSxzaWRlMTp3LHpTaWRlMTplKjAuOTksc2lkZTI6YSx6U2lkZTI6ZyowLjk5fX07ZC5DaGFydC5wcm90b3R5cGUuaXMzZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMuY2hhcnQub3B0aW9uczNkJiZ0aGlzLm9wdGlvbnMuY2hhcnQub3B0aW9uczNkLmVuYWJsZWR9O2Qud3JhcChkLkNoYXJ0LnByb3RvdHlwZSwiaXNJbnNpZGVQbG90IixmdW5jdGlvbihjKXtyZXR1cm4gdGhpcy5pczNkKCl8fGMuYXBwbHkodGhpcyxbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywKMSkpfSk7ZC5nZXRPcHRpb25zKCkuY2hhcnQub3B0aW9uczNkPXtlbmFibGVkOiExLGFscGhhOjAsYmV0YTowLGRlcHRoOjEwMCx2aWV3RGlzdGFuY2U6MjUsZnJhbWU6e2JvdHRvbTp7c2l6ZToxLGNvbG9yOiJyZ2JhKDI1NSwyNTUsMjU1LDApIn0sc2lkZTp7c2l6ZToxLGNvbG9yOiJyZ2JhKDI1NSwyNTUsMjU1LDApIn0sYmFjazp7c2l6ZToxLGNvbG9yOiJyZ2JhKDI1NSwyNTUsMjU1LDApIn19fTtkLndyYXAoZC5DaGFydC5wcm90b3R5cGUsImluaXQiLGZ1bmN0aW9uKGMpe3ZhciBiPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLGE7aWYoYlswXS5jaGFydCYmYlswXS5jaGFydC5vcHRpb25zM2QmJmJbMF0uY2hhcnQub3B0aW9uczNkLmVuYWJsZWQpYlswXS5jaGFydC5vcHRpb25zM2QuYWxwaGE9KGJbMF0uY2hhcnQub3B0aW9uczNkLmFscGhhfHwwKSUzNjAsYlswXS5jaGFydC5vcHRpb25zM2QuYmV0YT0oYlswXS5jaGFydC5vcHRpb25zM2QuYmV0YXx8MCklMzYwLGE9YlswXS5wbG90T3B0aW9uc3x8Cnt9LGE9YS5waWV8fHt9LGEuYm9yZGVyQ29sb3I9ZC5waWNrKGEuYm9yZGVyQ29sb3Isdm9pZCAwKTtjLmFwcGx5KHRoaXMsYil9KTtkLndyYXAoZC5DaGFydC5wcm90b3R5cGUsInNldENoYXJ0U2l6ZSIsZnVuY3Rpb24oYyl7Yy5hcHBseSh0aGlzLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKTtpZih0aGlzLmlzM2QoKSl7dmFyIGI9dGhpcy5pbnZlcnRlZCxhPXRoaXMuY2xpcEJveCxlPXRoaXMubWFyZ2luO2FbYj8ieSI6IngiXT0tKGVbM118fDApO2FbYj8ieCI6InkiXT0tKGVbMF18fDApO2FbYj8iaGVpZ2h0Ijoid2lkdGgiXT10aGlzLmNoYXJ0V2lkdGgrKGVbM118fDApKyhlWzFdfHwwKTthW2I/IndpZHRoIjoiaGVpZ2h0Il09dGhpcy5jaGFydEhlaWdodCsoZVswXXx8MCkrKGVbMl18fDApfX0pO2Qud3JhcChkLkNoYXJ0LnByb3RvdHlwZSwicmVkcmF3IixmdW5jdGlvbihjKXtpZih0aGlzLmlzM2QoKSl0aGlzLmlzRGlydHlCb3g9ITA7Yy5hcHBseSh0aGlzLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLAoxKSl9KTtkLndyYXAoZC5DaGFydC5wcm90b3R5cGUsInJlbmRlclNlcmllcyIsZnVuY3Rpb24oYyl7dmFyIGI9dGhpcy5zZXJpZXMubGVuZ3RoO2lmKHRoaXMuaXMzZCgpKWZvcig7Yi0tOyljPXRoaXMuc2VyaWVzW2JdLGMudHJhbnNsYXRlKCksYy5yZW5kZXIoKTtlbHNlIGMuY2FsbCh0aGlzKX0pO2QuQ2hhcnQucHJvdG90eXBlLnJldHJpZXZlU3RhY2tzPWZ1bmN0aW9uKGMpe3ZhciBiPXRoaXMuc2VyaWVzLGE9e30sZSxmPTE7ZC5lYWNoKHRoaXMuc2VyaWVzLGZ1bmN0aW9uKGQpe2U9dShkLm9wdGlvbnMuc3RhY2ssYz8wOmIubGVuZ3RoLTEtZC5pbmRleCk7YVtlXT9hW2VdLnNlcmllcy5wdXNoKGQpOihhW2VdPXtzZXJpZXM6W2RdLHBvc2l0aW9uOmZ9LGYrKyl9KTthLnRvdGFsU3RhY2tzPWYrMTtyZXR1cm4gYX07ZC53cmFwKGQuQXhpcy5wcm90b3R5cGUsInNldE9wdGlvbnMiLGZ1bmN0aW9uKGMsYil7dmFyIGE7Yy5jYWxsKHRoaXMsYik7aWYodGhpcy5jaGFydC5pczNkKCkpYT0KdGhpcy5vcHRpb25zLGEudGlja1dpZHRoPWQucGljayhhLnRpY2tXaWR0aCwwKSxhLmdyaWRMaW5lV2lkdGg9ZC5waWNrKGEuZ3JpZExpbmVXaWR0aCwxKX0pO2Qud3JhcChkLkF4aXMucHJvdG90eXBlLCJyZW5kZXIiLGZ1bmN0aW9uKGMpe2MuYXBwbHkodGhpcyxbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSk7aWYodGhpcy5jaGFydC5pczNkKCkpe3ZhciBiPXRoaXMuY2hhcnQsYT1iLnJlbmRlcmVyLGU9Yi5vcHRpb25zLmNoYXJ0Lm9wdGlvbnMzZCxkPWUuZnJhbWUsZz1kLmJvdHRvbSxoPWQuYmFjayxkPWQuc2lkZSxqPWUuZGVwdGgsaz10aGlzLmhlaWdodCxpPXRoaXMud2lkdGgsbD10aGlzLmxlZnQsbT10aGlzLnRvcDtpZighdGhpcy5pc1pBeGlzKXRoaXMuaG9yaXo/KGg9e3g6bCx5Om0rKGIueEF4aXNbMF0ub3Bwb3NpdGU/LWcuc2l6ZTprKSx6OjAsd2lkdGg6aSxoZWlnaHQ6Zy5zaXplLGRlcHRoOmosaW5zaWRlUGxvdEFyZWE6ITF9LHRoaXMuYm90dG9tRnJhbWU/dGhpcy5ib3R0b21GcmFtZS5hbmltYXRlKGgpOgp0aGlzLmJvdHRvbUZyYW1lPWEuY3Vib2lkKGgpLmF0dHIoe2ZpbGw6Zy5jb2xvcix6SW5kZXg6Yi55QXhpc1swXS5yZXZlcnNlZCYmZS5hbHBoYT4wPzQ6LTF9KS5jc3Moe3N0cm9rZTpnLmNvbG9yfSkuYWRkKCkpOihlPXt4OmwrKGIueUF4aXNbMF0ub3Bwb3NpdGU/MDotZC5zaXplKSx5Om0rKGIueEF4aXNbMF0ub3Bwb3NpdGU/LWcuc2l6ZTowKSx6Omosd2lkdGg6aStkLnNpemUsaGVpZ2h0OmsrZy5zaXplLGRlcHRoOmguc2l6ZSxpbnNpZGVQbG90QXJlYTohMX0sdGhpcy5iYWNrRnJhbWU/dGhpcy5iYWNrRnJhbWUuYW5pbWF0ZShlKTp0aGlzLmJhY2tGcmFtZT1hLmN1Ym9pZChlKS5hdHRyKHtmaWxsOmguY29sb3IsekluZGV4Oi0zfSkuY3NzKHtzdHJva2U6aC5jb2xvcn0pLmFkZCgpLGI9e3g6bCsoYi55QXhpc1swXS5vcHBvc2l0ZT9pOi1kLnNpemUpLHk6bSsoYi54QXhpc1swXS5vcHBvc2l0ZT8tZy5zaXplOjApLHo6MCx3aWR0aDpkLnNpemUsaGVpZ2h0OmsrZy5zaXplLGRlcHRoOmosCmluc2lkZVBsb3RBcmVhOiExfSx0aGlzLnNpZGVGcmFtZT90aGlzLnNpZGVGcmFtZS5hbmltYXRlKGIpOnRoaXMuc2lkZUZyYW1lPWEuY3Vib2lkKGIpLmF0dHIoe2ZpbGw6ZC5jb2xvcix6SW5kZXg6LTJ9KS5jc3Moe3N0cm9rZTpkLmNvbG9yfSkuYWRkKCkpfX0pO2Qud3JhcChkLkF4aXMucHJvdG90eXBlLCJnZXRQbG90TGluZVBhdGgiLGZ1bmN0aW9uKGMpe3ZhciBiPWMuYXBwbHkodGhpcyxbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSk7aWYoIXRoaXMuY2hhcnQuaXMzZCgpKXJldHVybiBiO2lmKGI9PT1udWxsKXJldHVybiBiO3ZhciBhPXRoaXMuY2hhcnQsZD1hLm9wdGlvbnMuY2hhcnQub3B0aW9uczNkLGE9dGhpcy5pc1pBeGlzP2EucGxvdFdpZHRoOmQuZGVwdGgsZD10aGlzLm9wcG9zaXRlO3RoaXMuaG9yaXomJihkPSFkKTtiPVt0aGlzLnN3YXBaKHt4OmJbMV0seTpiWzJdLHo6ZD9hOjB9KSx0aGlzLnN3YXBaKHt4OmJbMV0seTpiWzJdLHo6YX0pLHRoaXMuc3dhcFooe3g6Yls0XSwKeTpiWzVdLHo6YX0pLHRoaXMuc3dhcFooe3g6Yls0XSx5OmJbNV0sejpkPzA6YX0pXTtiPXIoYix0aGlzLmNoYXJ0LCExKTtyZXR1cm4gYj10aGlzLmNoYXJ0LnJlbmRlcmVyLnRvTGluZVBhdGgoYiwhMSl9KTtkLndyYXAoZC5BeGlzLnByb3RvdHlwZSwiZ2V0TGluZVBhdGgiLGZ1bmN0aW9uKGMpe3JldHVybiB0aGlzLmNoYXJ0LmlzM2QoKT9bXTpjLmFwcGx5KHRoaXMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpfSk7ZC53cmFwKGQuQXhpcy5wcm90b3R5cGUsImdldFBsb3RCYW5kUGF0aCIsZnVuY3Rpb24oYyl7aWYoIXRoaXMuY2hhcnQuaXMzZCgpKXJldHVybiBjLmFwcGx5KHRoaXMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpO3ZhciBiPWFyZ3VtZW50cyxhPWJbMV0sYj10aGlzLmdldFBsb3RMaW5lUGF0aChiWzJdKTsoYT10aGlzLmdldFBsb3RMaW5lUGF0aChhKSkmJmI/YS5wdXNoKCJMIixiWzEwXSxiWzExXSwiTCIsYls3XSxiWzhdLCJMIixiWzRdLGJbNV0sIkwiLApiWzFdLGJbMl0pOmE9bnVsbDtyZXR1cm4gYX0pO2Qud3JhcChkLlRpY2sucHJvdG90eXBlLCJnZXRNYXJrUGF0aCIsZnVuY3Rpb24oYyl7dmFyIGI9Yy5hcHBseSh0aGlzLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKTtpZighdGhpcy5heGlzLmNoYXJ0LmlzM2QoKSlyZXR1cm4gYjtiPVt0aGlzLmF4aXMuc3dhcFooe3g6YlsxXSx5OmJbMl0sejowfSksdGhpcy5heGlzLnN3YXBaKHt4OmJbNF0seTpiWzVdLHo6MH0pXTtiPXIoYix0aGlzLmF4aXMuY2hhcnQsITEpO3JldHVybiBiPVsiTSIsYlswXS54LGJbMF0ueSwiTCIsYlsxXS54LGJbMV0ueV19KTtkLndyYXAoZC5UaWNrLnByb3RvdHlwZSwiZ2V0TGFiZWxQb3NpdGlvbiIsZnVuY3Rpb24oYyl7dmFyIGI9Yy5hcHBseSh0aGlzLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKTtpZighdGhpcy5heGlzLmNoYXJ0LmlzM2QoKSlyZXR1cm4gYjt2YXIgYT1yKFt0aGlzLmF4aXMuc3dhcFooe3g6Yi54LHk6Yi55LHo6MH0pXSx0aGlzLmF4aXMuY2hhcnQsCiExKVswXTthLngtPSF0aGlzLmF4aXMuaG9yaXomJnRoaXMuYXhpcy5vcHBvc2l0ZT90aGlzLmF4aXMudHJhbnNBOjA7YS5vbGQ9YjtyZXR1cm4gYX0pO2Qud3JhcChkLlRpY2sucHJvdG90eXBlLCJoYW5kbGVPdmVyZmxvdyIsZnVuY3Rpb24oYyxiKXtpZih0aGlzLmF4aXMuY2hhcnQuaXMzZCgpKWI9Yi5vbGQ7cmV0dXJuIGMuY2FsbCh0aGlzLGIpfSk7ZC53cmFwKGQuQXhpcy5wcm90b3R5cGUsImdldFRpdGxlUG9zaXRpb24iLGZ1bmN0aW9uKGMpe3ZhciBiPXRoaXMuY2hhcnQuaXMzZCgpLGEsZDtpZihiKWQ9dGhpcy5heGlzVGl0bGVNYXJnaW4sdGhpcy5heGlzVGl0bGVNYXJnaW49MDthPWMuYXBwbHkodGhpcyxbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSk7aWYoYilhPXIoW3RoaXMuc3dhcFooe3g6YS54LHk6YS55LHo6MH0pXSx0aGlzLmNoYXJ0LCExKVswXSxhW3RoaXMuaG9yaXo/InkiOiJ4Il0rPSh0aGlzLmhvcml6PzE6LTEpKih0aGlzLm9wcG9zaXRlPy0xOjEpKmQsdGhpcy5heGlzVGl0bGVNYXJnaW49CmQ7cmV0dXJuIGF9KTtkLndyYXAoZC5BeGlzLnByb3RvdHlwZSwiZHJhd0Nyb3NzaGFpciIsZnVuY3Rpb24oYyl7dmFyIGI9YXJndW1lbnRzO3RoaXMuY2hhcnQuaXMzZCgpJiZiWzJdJiYoYlsyXT17cGxvdFg6YlsyXS5wbG90WG9sZHx8YlsyXS5wbG90WCxwbG90WTpiWzJdLnBsb3RZb2xkfHxiWzJdLnBsb3RZfSk7Yy5hcHBseSh0aGlzLFtdLnNsaWNlLmNhbGwoYiwxKSl9KTtkLkF4aXMucHJvdG90eXBlLnN3YXBaPWZ1bmN0aW9uKGMsYil7aWYodGhpcy5pc1pBeGlzKXt2YXIgYT1iPzA6dGhpcy5jaGFydC5wbG90TGVmdCxkPXRoaXMuY2hhcnQ7cmV0dXJue3g6YSsoZC55QXhpc1swXS5vcHBvc2l0ZT9jLno6ZC54QXhpc1swXS53aWR0aC1jLnopLHk6Yy55LHo6Yy54LWF9fXJldHVybiBjfTt2YXIgSD1kLlpBeGlzPWZ1bmN0aW9uKCl7dGhpcy5pc1pBeGlzPSEwO3RoaXMuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2QuZXh0ZW5kKEgucHJvdG90eXBlLGQuQXhpcy5wcm90b3R5cGUpOwpkLmV4dGVuZChILnByb3RvdHlwZSx7c2V0T3B0aW9uczpmdW5jdGlvbihjKXtjPWQubWVyZ2Uoe29mZnNldDowLGxpbmVXaWR0aDowfSxjKTtkLkF4aXMucHJvdG90eXBlLnNldE9wdGlvbnMuY2FsbCh0aGlzLGMpO3RoaXMuY29sbD0iekF4aXMifSxzZXRBeGlzU2l6ZTpmdW5jdGlvbigpe2QuQXhpcy5wcm90b3R5cGUuc2V0QXhpc1NpemUuY2FsbCh0aGlzKTt0aGlzLndpZHRoPXRoaXMubGVuPXRoaXMuY2hhcnQub3B0aW9ucy5jaGFydC5vcHRpb25zM2QuZGVwdGg7dGhpcy5yaWdodD10aGlzLmNoYXJ0LmNoYXJ0V2lkdGgtdGhpcy53aWR0aC10aGlzLmxlZnR9LGdldFNlcmllc0V4dHJlbWVzOmZ1bmN0aW9uKCl7dmFyIGM9dGhpcyxiPWMuY2hhcnQ7Yy5oYXNWaXNpYmxlU2VyaWVzPSExO2MuZGF0YU1pbj1jLmRhdGFNYXg9Yy5pZ25vcmVNaW5QYWRkaW5nPWMuaWdub3JlTWF4UGFkZGluZz1udWxsO2MuYnVpbGRTdGFja3MmJmMuYnVpbGRTdGFja3MoKTtkLmVhY2goYy5zZXJpZXMsCmZ1bmN0aW9uKGEpe2lmKGEudmlzaWJsZXx8IWIub3B0aW9ucy5jaGFydC5pZ25vcmVIaWRkZW5TZXJpZXMpaWYoYy5oYXNWaXNpYmxlU2VyaWVzPSEwLGE9YS56RGF0YSxhLmxlbmd0aCljLmRhdGFNaW49TWF0aC5taW4odShjLmRhdGFNaW4sYVswXSksTWF0aC5taW4uYXBwbHkobnVsbCxhKSksYy5kYXRhTWF4PU1hdGgubWF4KHUoYy5kYXRhTWF4LGFbMF0pLE1hdGgubWF4LmFwcGx5KG51bGwsYSkpfSl9fSk7ZC53cmFwKGQuQ2hhcnQucHJvdG90eXBlLCJnZXRBeGVzIixmdW5jdGlvbihjKXt2YXIgYj10aGlzLGE9dGhpcy5vcHRpb25zLGE9YS56QXhpcz1kLnNwbGF0KGEuekF4aXN8fHt9KTtjLmNhbGwodGhpcyk7aWYoYi5pczNkKCkpdGhpcy56QXhpcz1bXSxkLmVhY2goYSxmdW5jdGlvbihhLGMpe2EuaW5kZXg9YzthLmlzWD0hMDsobmV3IEgoYixhKSkuc2V0U2NhbGUoKX0pfSk7ZC53cmFwKGQuc2VyaWVzVHlwZXMuY29sdW1uLnByb3RvdHlwZSwidHJhbnNsYXRlIixmdW5jdGlvbihjKXtjLmFwcGx5KHRoaXMsCltdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKTtpZih0aGlzLmNoYXJ0LmlzM2QoKSl7dmFyIGI9dGhpcy5jaGFydCxhPXRoaXMub3B0aW9ucyxlPWEuZGVwdGh8fDI1LGY9KGEuc3RhY2tpbmc/YS5zdGFja3x8MDp0aGlzLl9pKSooZSsoYS5ncm91cFpQYWRkaW5nfHwxKSk7YS5ncm91cGluZyE9PSExJiYoZj0wKTtmKz1hLmdyb3VwWlBhZGRpbmd8fDE7ZC5lYWNoKHRoaXMuZGF0YSxmdW5jdGlvbihhKXtpZihhLnkhPT1udWxsKXt2YXIgYz1hLnNoYXBlQXJncyxkPWEudG9vbHRpcFBvczthLnNoYXBlVHlwZT0iY3Vib2lkIjtjLno9ZjtjLmRlcHRoPWU7Yy5pbnNpZGVQbG90QXJlYT0hMDtkPXIoW3t4OmRbMF0seTpkWzFdLHo6Zn1dLGIsITEpWzBdO2EudG9vbHRpcFBvcz1bZC54LGQueV19fSk7dGhpcy56PWZ9fSk7ZC53cmFwKGQuc2VyaWVzVHlwZXMuY29sdW1uLnByb3RvdHlwZSwiYW5pbWF0ZSIsZnVuY3Rpb24oYyl7aWYodGhpcy5jaGFydC5pczNkKCkpe3ZhciBiPWFyZ3VtZW50c1sxXSwKYT10aGlzLnlBeGlzLGU9dGhpcyxmPXRoaXMueUF4aXMucmV2ZXJzZWQ7aWYoZC5zdmcpYj9kLmVhY2goZS5kYXRhLGZ1bmN0aW9uKGIpe2lmKGIueSE9PW51bGwmJihiLmhlaWdodD1iLnNoYXBlQXJncy5oZWlnaHQsYi5zaGFwZXk9Yi5zaGFwZUFyZ3MueSxiLnNoYXBlQXJncy5oZWlnaHQ9MSwhZikpYi5zaGFwZUFyZ3MueT1iLnN0YWNrWT9iLnBsb3RZK2EudHJhbnNsYXRlKGIuc3RhY2tZKTpiLnBsb3RZKyhiLm5lZ2F0aXZlPy1iLmhlaWdodDpiLmhlaWdodCl9KTooZC5lYWNoKGUuZGF0YSxmdW5jdGlvbihhKXtpZihhLnkhPT1udWxsKWEuc2hhcGVBcmdzLmhlaWdodD1hLmhlaWdodCxhLnNoYXBlQXJncy55PWEuc2hhcGV5LGEuZ3JhcGhpYyYmYS5ncmFwaGljLmFuaW1hdGUoYS5zaGFwZUFyZ3MsZS5vcHRpb25zLmFuaW1hdGlvbil9KSx0aGlzLmRyYXdEYXRhTGFiZWxzKCksZS5hbmltYXRlPW51bGwpfWVsc2UgYy5hcHBseSh0aGlzLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLAoxKSl9KTtkLndyYXAoZC5zZXJpZXNUeXBlcy5jb2x1bW4ucHJvdG90eXBlLCJpbml0IixmdW5jdGlvbihjKXtjLmFwcGx5KHRoaXMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpO2lmKHRoaXMuY2hhcnQuaXMzZCgpKXt2YXIgYj10aGlzLm9wdGlvbnMsYT1iLmdyb3VwaW5nLGQ9Yi5zdGFja2luZyxmPXUodGhpcy55QXhpcy5vcHRpb25zLnJldmVyc2VkU3RhY2tzLCEwKSxnPTA7aWYoYT09PXZvaWQgMHx8YSl7YT10aGlzLmNoYXJ0LnJldHJpZXZlU3RhY2tzKGQpO2c9Yi5zdGFja3x8MDtmb3IoZD0wO2Q8YVtnXS5zZXJpZXMubGVuZ3RoO2QrKylpZihhW2ddLnNlcmllc1tkXT09PXRoaXMpYnJlYWs7Zz0xMCooYS50b3RhbFN0YWNrcy1hW2ddLnBvc2l0aW9uKSsoZj9kOi1kKTt0aGlzLnhBeGlzLnJldmVyc2VkfHwoZz1hLnRvdGFsU3RhY2tzKjEwLWcpfWIuekluZGV4PWd9fSk7ZC53cmFwKGQuU2VyaWVzLnByb3RvdHlwZSwiYWxpZ25EYXRhTGFiZWwiLGZ1bmN0aW9uKGMpe2lmKHRoaXMuY2hhcnQuaXMzZCgpJiYKKHRoaXMudHlwZT09PSJjb2x1bW4ifHx0aGlzLnR5cGU9PT0iY29sdW1ucmFuZ2UiKSl7dmFyIGI9YXJndW1lbnRzWzRdLGE9e3g6Yi54LHk6Yi55LHo6dGhpcy56fSxhPXIoW2FdLHRoaXMuY2hhcnQsITApWzBdO2IueD1hLng7Yi55PWEueX1jLmFwcGx5KHRoaXMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpfSk7ZC5zZXJpZXNUeXBlcy5jb2x1bW5yYW5nZSYmZC53cmFwKGQuc2VyaWVzVHlwZXMuY29sdW1ucmFuZ2UucHJvdG90eXBlLCJkcmF3UG9pbnRzIixKKTtkLndyYXAoZC5zZXJpZXNUeXBlcy5jb2x1bW4ucHJvdG90eXBlLCJkcmF3UG9pbnRzIixKKTtkLndyYXAoZC5zZXJpZXNUeXBlcy5waWUucHJvdG90eXBlLCJ0cmFuc2xhdGUiLGZ1bmN0aW9uKGMpe2MuYXBwbHkodGhpcyxbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSk7aWYodGhpcy5jaGFydC5pczNkKCkpe3ZhciBiPXRoaXMsYT1iLm9wdGlvbnMsZD1hLmRlcHRofHwwLGY9Yi5jaGFydC5vcHRpb25zLmNoYXJ0Lm9wdGlvbnMzZCwKZz1mLmFscGhhLGg9Zi5iZXRhLGo9YS5zdGFja2luZz8oYS5zdGFja3x8MCkqZDpiLl9pKmQ7ais9ZC8yO2EuZ3JvdXBpbmchPT0hMSYmKGo9MCk7QihiLmRhdGEsZnVuY3Rpb24oYyl7dmFyIGY9Yy5zaGFwZUFyZ3M7Yy5zaGFwZVR5cGU9ImFyYzNkIjtmLno9ajtmLmRlcHRoPWQqMC43NTtmLmFscGhhPWc7Zi5iZXRhPWg7Zi5jZW50ZXI9Yi5jZW50ZXI7Zj0oZi5lbmQrZi5zdGFydCkvMjtjLnNsaWNlZFRyYW5zbGF0aW9uPXt0cmFuc2xhdGVYOkwobShmKSphLnNsaWNlZE9mZnNldCptKGcqQSkpLHRyYW5zbGF0ZVk6TChwKGYpKmEuc2xpY2VkT2Zmc2V0Km0oZypBKSl9fSl9fSk7ZC53cmFwKGQuc2VyaWVzVHlwZXMucGllLnByb3RvdHlwZS5wb2ludENsYXNzLnByb3RvdHlwZSwiaGFsb1BhdGgiLGZ1bmN0aW9uKGMpe3ZhciBiPWFyZ3VtZW50cztyZXR1cm4gdGhpcy5zZXJpZXMuY2hhcnQuaXMzZCgpP1tdOmMuY2FsbCh0aGlzLGJbMV0pfSk7ZC53cmFwKGQuc2VyaWVzVHlwZXMucGllLnByb3RvdHlwZSwKImRyYXdQb2ludHMiLGZ1bmN0aW9uKGMpe3ZhciBiPXRoaXMub3B0aW9ucyxhPWIuc3RhdGVzO2lmKHRoaXMuY2hhcnQuaXMzZCgpKXRoaXMuYm9yZGVyV2lkdGg9Yi5ib3JkZXJXaWR0aD1iLmVkZ2VXaWR0aHx8MSx0aGlzLmJvcmRlckNvbG9yPWIuZWRnZUNvbG9yPWQucGljayhiLmVkZ2VDb2xvcixiLmJvcmRlckNvbG9yLHZvaWQgMCksYS5ob3Zlci5ib3JkZXJDb2xvcj1kLnBpY2soYS5ob3Zlci5lZGdlQ29sb3IsdGhpcy5ib3JkZXJDb2xvciksYS5ob3Zlci5ib3JkZXJXaWR0aD1kLnBpY2soYS5ob3Zlci5lZGdlV2lkdGgsdGhpcy5ib3JkZXJXaWR0aCksYS5zZWxlY3QuYm9yZGVyQ29sb3I9ZC5waWNrKGEuc2VsZWN0LmVkZ2VDb2xvcix0aGlzLmJvcmRlckNvbG9yKSxhLnNlbGVjdC5ib3JkZXJXaWR0aD1kLnBpY2soYS5zZWxlY3QuZWRnZVdpZHRoLHRoaXMuYm9yZGVyV2lkdGgpLEIodGhpcy5kYXRhLGZ1bmN0aW9uKGIpe3ZhciBjPWIucG9pbnRBdHRyO2NbIiJdLnN0cm9rZT0KYi5zZXJpZXMuYm9yZGVyQ29sb3J8fGIuY29sb3I7Y1siIl1bInN0cm9rZS13aWR0aCJdPWIuc2VyaWVzLmJvcmRlcldpZHRoO2MuaG92ZXIuc3Ryb2tlPWEuaG92ZXIuYm9yZGVyQ29sb3I7Yy5ob3Zlclsic3Ryb2tlLXdpZHRoIl09YS5ob3Zlci5ib3JkZXJXaWR0aDtjLnNlbGVjdC5zdHJva2U9YS5zZWxlY3QuYm9yZGVyQ29sb3I7Yy5zZWxlY3RbInN0cm9rZS13aWR0aCJdPWEuc2VsZWN0LmJvcmRlcldpZHRofSk7Yy5hcHBseSh0aGlzLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKTt0aGlzLmNoYXJ0LmlzM2QoKSYmQih0aGlzLnBvaW50cyxmdW5jdGlvbihhKXt2YXIgYj1hLmdyYXBoaWM7aWYoYiliW2EueT8ic2hvdyI6ImhpZGUiXSgpfSl9KTtkLndyYXAoZC5zZXJpZXNUeXBlcy5waWUucHJvdG90eXBlLCJkcmF3RGF0YUxhYmVscyIsZnVuY3Rpb24oYyl7aWYodGhpcy5jaGFydC5pczNkKCkpe3ZhciBiPXRoaXMuY2hhcnQub3B0aW9ucy5jaGFydC5vcHRpb25zM2Q7Qih0aGlzLmRhdGEsCmZ1bmN0aW9uKGEpe3ZhciBjPWEuc2hhcGVBcmdzLGQ9Yy5yLGc9KGMuYmV0YXx8Yi5iZXRhKSpBLGg9KGMuc3RhcnQrYy5lbmQpLzIsaj1hLmxhYmVsUG9zLGs9LWQqKDEtbSgoYy5hbHBoYXx8Yi5hbHBoYSkqQSkpKnAoaCksaT1kKihtKGcpLTEpKm0oaCk7QihbMCwyLDRdLGZ1bmN0aW9uKGEpe2pbYV0rPWk7althKzFdKz1rfSl9KX1jLmFwcGx5KHRoaXMsW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpfSk7ZC53cmFwKGQuc2VyaWVzVHlwZXMucGllLnByb3RvdHlwZSwiYWRkUG9pbnQiLGZ1bmN0aW9uKGMpe2MuYXBwbHkodGhpcyxbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSk7dGhpcy5jaGFydC5pczNkKCkmJnRoaXMudXBkYXRlKHRoaXMudXNlck9wdGlvbnMsITApfSk7ZC53cmFwKGQuc2VyaWVzVHlwZXMucGllLnByb3RvdHlwZSwiYW5pbWF0ZSIsZnVuY3Rpb24oYyl7aWYodGhpcy5jaGFydC5pczNkKCkpe3ZhciBiPWFyZ3VtZW50c1sxXSxhPXRoaXMub3B0aW9ucy5hbmltYXRpb24sCmU9dGhpcy5jZW50ZXIsZj10aGlzLmdyb3VwLGc9dGhpcy5tYXJrZXJHcm91cDtpZihkLnN2ZylpZihhPT09ITAmJihhPXt9KSxiKXtpZihmLm9sZHRyYW5zbGF0ZVg9Zi50cmFuc2xhdGVYLGYub2xkdHJhbnNsYXRlWT1mLnRyYW5zbGF0ZVksYj17dHJhbnNsYXRlWDplWzBdLHRyYW5zbGF0ZVk6ZVsxXSxzY2FsZVg6MC4wMDEsc2NhbGVZOjAuMDAxfSxmLmF0dHIoYiksZylnLmF0dHJTZXR0ZXJzPWYuYXR0clNldHRlcnMsZy5hdHRyKGIpfWVsc2UgYj17dHJhbnNsYXRlWDpmLm9sZHRyYW5zbGF0ZVgsdHJhbnNsYXRlWTpmLm9sZHRyYW5zbGF0ZVksc2NhbGVYOjEsc2NhbGVZOjF9LGYuYW5pbWF0ZShiLGEpLGcmJmcuYW5pbWF0ZShiLGEpLHRoaXMuYW5pbWF0ZT1udWxsfWVsc2UgYy5hcHBseSh0aGlzLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKX0pO2Qud3JhcChkLnNlcmllc1R5cGVzLnNjYXR0ZXIucHJvdG90eXBlLCJ0cmFuc2xhdGUiLGZ1bmN0aW9uKGMpe2MuYXBwbHkodGhpcywKW10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpO2lmKHRoaXMuY2hhcnQuaXMzZCgpKXt2YXIgYj10aGlzLmNoYXJ0LGE9ZC5waWNrKHRoaXMuekF4aXMsYi5vcHRpb25zLnpBeGlzWzBdKSxlPVtdLGYsZyxoO2ZvcihoPTA7aDx0aGlzLmRhdGEubGVuZ3RoO2grKylmPXRoaXMuZGF0YVtoXSxnPWEuaXNMb2cmJmEudmFsMmxpbj9hLnZhbDJsaW4oZi56KTpmLnosZi5wbG90Wj1hLnRyYW5zbGF0ZShnKSxmLmlzSW5zaWRlPWYuaXNJbnNpZGU/Zz49YS5taW4mJmc8PWEubWF4OiExLGUucHVzaCh7eDpmLnBsb3RYLHk6Zi5wbG90WSx6OmYucGxvdFp9KTtiPXIoZSxiLCEwKTtmb3IoaD0wO2g8dGhpcy5kYXRhLmxlbmd0aDtoKyspZj10aGlzLmRhdGFbaF0sYT1iW2hdLGYucGxvdFhvbGQ9Zi5wbG90WCxmLnBsb3RZb2xkPWYucGxvdFksZi5wbG90WD1hLngsZi5wbG90WT1hLnksZi5wbG90Wj1hLnp9fSk7ZC53cmFwKGQuc2VyaWVzVHlwZXMuc2NhdHRlci5wcm90b3R5cGUsImluaXQiLGZ1bmN0aW9uKGMsCmIsYSl7aWYoYi5pczNkKCkpdGhpcy5heGlzVHlwZXM9WyJ4QXhpcyIsInlBeGlzIiwiekF4aXMiXSx0aGlzLnBvaW50QXJyYXlNYXA9WyJ4IiwieSIsInoiXSx0aGlzLnBhcmFsbGVsQXJyYXlzPVsieCIsInkiLCJ6Il07Yz1jLmFwcGx5KHRoaXMsW2IsYV0pO2lmKHRoaXMuY2hhcnQuaXMzZCgpKXRoaXMudG9vbHRpcE9wdGlvbnMucG9pbnRGb3JtYXQ9dGhpcy51c2VyT3B0aW9ucy50b29sdGlwP3RoaXMudXNlck9wdGlvbnMudG9vbHRpcC5wb2ludEZvcm1hdHx8Ing6IDxiPntwb2ludC54fTwvYj48YnIvPnk6IDxiPntwb2ludC55fTwvYj48YnIvPno6IDxiPntwb2ludC56fTwvYj48YnIvPiI6Ing6IDxiPntwb2ludC54fTwvYj48YnIvPnk6IDxiPntwb2ludC55fTwvYj48YnIvPno6IDxiPntwb2ludC56fTwvYj48YnIvPiI7cmV0dXJuIGN9KTtpZihkLlZNTFJlbmRlcmVyKWQuc2V0T3B0aW9ucyh7YW5pbWF0ZTohMX0pLGQuVk1MUmVuZGVyZXIucHJvdG90eXBlLmN1Ym9pZD1kLlNWR1JlbmRlcmVyLnByb3RvdHlwZS5jdWJvaWQsCmQuVk1MUmVuZGVyZXIucHJvdG90eXBlLmN1Ym9pZFBhdGg9ZC5TVkdSZW5kZXJlci5wcm90b3R5cGUuY3Vib2lkUGF0aCxkLlZNTFJlbmRlcmVyLnByb3RvdHlwZS50b0xpbmVQYXRoPWQuU1ZHUmVuZGVyZXIucHJvdG90eXBlLnRvTGluZVBhdGgsZC5WTUxSZW5kZXJlci5wcm90b3R5cGUuY3JlYXRlRWxlbWVudDNEPWQuU1ZHUmVuZGVyZXIucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQzRCxkLlZNTFJlbmRlcmVyLnByb3RvdHlwZS5hcmMzZD1mdW5jdGlvbihjKXtjPWQuU1ZHUmVuZGVyZXIucHJvdG90eXBlLmFyYzNkLmNhbGwodGhpcyxjKTtjLmNzcyh7ekluZGV4OmMuekluZGV4fSk7cmV0dXJuIGN9LGQuVk1MUmVuZGVyZXIucHJvdG90eXBlLmFyYzNkUGF0aD1kLlNWR1JlbmRlcmVyLnByb3RvdHlwZS5hcmMzZFBhdGgsZC53cmFwKGQuQXhpcy5wcm90b3R5cGUsInJlbmRlciIsZnVuY3Rpb24oYyl7Yy5hcHBseSh0aGlzLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKTt0aGlzLnNpZGVGcmFtZSYmCih0aGlzLnNpZGVGcmFtZS5jc3Moe3pJbmRleDowfSksdGhpcy5zaWRlRnJhbWUuZnJvbnQuYXR0cih7ZmlsbDp0aGlzLnNpZGVGcmFtZS5jb2xvcn0pKTt0aGlzLmJvdHRvbUZyYW1lJiYodGhpcy5ib3R0b21GcmFtZS5jc3Moe3pJbmRleDoxfSksdGhpcy5ib3R0b21GcmFtZS5mcm9udC5hdHRyKHtmaWxsOnRoaXMuYm90dG9tRnJhbWUuY29sb3J9KSk7dGhpcy5iYWNrRnJhbWUmJih0aGlzLmJhY2tGcmFtZS5jc3Moe3pJbmRleDowfSksdGhpcy5iYWNrRnJhbWUuZnJvbnQuYXR0cih7ZmlsbDp0aGlzLmJhY2tGcmFtZS5jb2xvcn0pKX0pfSk7Cg=="></script> <script src="data:application/x-javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjQuMi4zICgyMDE2LTAyLTA4KQogRXhwb3J0aW5nIG1vZHVsZQoKIChjKSAyMDEwLTIwMTYgVG9yc3RlaW4gSG9uc2kKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oZil7dHlwZW9mIG1vZHVsZT09PSJvYmplY3QiJiZtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1mOmYoSGlnaGNoYXJ0cyl9KShmdW5jdGlvbihmKXt2YXIgcj1mLndpbixtPXIuZG9jdW1lbnQsQT1mLkNoYXJ0LHQ9Zi5hZGRFdmVudCxCPWYucmVtb3ZlRXZlbnQsQz1mLmZpcmVFdmVudCxuPWYuY3JlYXRlRWxlbWVudCxzPWYuZGlzY2FyZEVsZW1lbnQsdj1mLmNzcyxsPWYubWVyZ2UsaT1mLmVhY2gscT1mLmV4dGVuZCxGPWYuc3BsYXQsRz1NYXRoLm1heCxIPWYuaXNUb3VjaERldmljZSxJPWYuUmVuZGVyZXIucHJvdG90eXBlLnN5bWJvbHMseT1mLmdldE9wdGlvbnMoKSx6O3EoeS5sYW5nLHtwcmludENoYXJ0OiJQcmludCBjaGFydCIsZG93bmxvYWRQTkc6IkRvd25sb2FkIFBORyBpbWFnZSIsZG93bmxvYWRKUEVHOiJEb3dubG9hZCBKUEVHIGltYWdlIixkb3dubG9hZFBERjoiRG93bmxvYWQgUERGIGRvY3VtZW50Iixkb3dubG9hZFNWRzoiRG93bmxvYWQgU1ZHIHZlY3RvciBpbWFnZSIsCmNvbnRleHRCdXR0b25UaXRsZToiQ2hhcnQgY29udGV4dCBtZW51In0pO3kubmF2aWdhdGlvbj17bWVudVN0eWxlOntib3JkZXI6IjFweCBzb2xpZCAjQTBBMEEwIixiYWNrZ3JvdW5kOiIjRkZGRkZGIixwYWRkaW5nOiI1cHggMCJ9LG1lbnVJdGVtU3R5bGU6e3BhZGRpbmc6IjAgMTBweCIsYmFja2dyb3VuZDoibm9uZSIsY29sb3I6IiMzMDMwMzAiLGZvbnRTaXplOkg/IjE0cHgiOiIxMXB4In0sbWVudUl0ZW1Ib3ZlclN0eWxlOntiYWNrZ3JvdW5kOiIjNDU3MkE1Iixjb2xvcjoiI0ZGRkZGRiJ9LGJ1dHRvbk9wdGlvbnM6e3N5bWJvbEZpbGw6IiNFMEUwRTAiLHN5bWJvbFNpemU6MTQsc3ltYm9sU3Ryb2tlOiIjNjY2IixzeW1ib2xTdHJva2VXaWR0aDozLHN5bWJvbFg6MTIuNSxzeW1ib2xZOjEwLjUsYWxpZ246InJpZ2h0IixidXR0b25TcGFjaW5nOjMsaGVpZ2h0OjIyLHRoZW1lOntmaWxsOiJ3aGl0ZSIsc3Ryb2tlOiJub25lIn0sdmVydGljYWxBbGlnbjoidG9wIix3aWR0aDoyNH19Owp5LmV4cG9ydGluZz17dHlwZToiaW1hZ2UvcG5nIix1cmw6Imh0dHA6Ly9leHBvcnQuaGlnaGNoYXJ0cy5jb20vIixidXR0b25zOntjb250ZXh0QnV0dG9uOnttZW51Q2xhc3NOYW1lOiJoaWdoY2hhcnRzLWNvbnRleHRtZW51IixzeW1ib2w6Im1lbnUiLF90aXRsZUtleToiY29udGV4dEJ1dHRvblRpdGxlIixtZW51SXRlbXM6W3t0ZXh0S2V5OiJwcmludENoYXJ0IixvbmNsaWNrOmZ1bmN0aW9uKCl7dGhpcy5wcmludCgpfX0se3NlcGFyYXRvcjohMH0se3RleHRLZXk6ImRvd25sb2FkUE5HIixvbmNsaWNrOmZ1bmN0aW9uKCl7dGhpcy5leHBvcnRDaGFydCgpfX0se3RleHRLZXk6ImRvd25sb2FkSlBFRyIsb25jbGljazpmdW5jdGlvbigpe3RoaXMuZXhwb3J0Q2hhcnQoe3R5cGU6ImltYWdlL2pwZWcifSl9fSx7dGV4dEtleToiZG93bmxvYWRQREYiLG9uY2xpY2s6ZnVuY3Rpb24oKXt0aGlzLmV4cG9ydENoYXJ0KHt0eXBlOiJhcHBsaWNhdGlvbi9wZGYifSl9fSx7dGV4dEtleToiZG93bmxvYWRTVkciLApvbmNsaWNrOmZ1bmN0aW9uKCl7dGhpcy5leHBvcnRDaGFydCh7dHlwZToiaW1hZ2Uvc3ZnK3htbCJ9KX19XX19fTtmLnBvc3Q9ZnVuY3Rpb24oYSxiLGUpe3ZhciBjLGE9bigiZm9ybSIsbCh7bWV0aG9kOiJwb3N0IixhY3Rpb246YSxlbmN0eXBlOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn0sZSkse2Rpc3BsYXk6Im5vbmUifSxtLmJvZHkpO2ZvcihjIGluIGIpbigiaW5wdXQiLHt0eXBlOiJoaWRkZW4iLG5hbWU6Yyx2YWx1ZTpiW2NdfSxudWxsLGEpO2Euc3VibWl0KCk7cyhhKX07cShBLnByb3RvdHlwZSx7c2FuaXRpemVTVkc6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvekluZGV4PSJbXiJdKyIvZywiIikucmVwbGFjZSgvaXNTaGFkb3c9IlteIl0rIi9nLCIiKS5yZXBsYWNlKC9zeW1ib2xOYW1lPSJbXiJdKyIvZywiIikucmVwbGFjZSgvalF1ZXJ5WzAtOV0rPSJbXiJdKyIvZywiIikucmVwbGFjZSgvdXJsXChbXiNdKyMvZywidXJsKCMiKS5yZXBsYWNlKC88c3ZnIC8sJzxzdmcgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiICcpLnJlcGxhY2UoLyAoTlNbMC05XStcOik/aHJlZj0vZywKIiB4bGluazpocmVmPSIpLnJlcGxhY2UoL1xuLywiICIpLnJlcGxhY2UoLzxcL3N2Zz4uKj8kLywiPC9zdmc+IikucmVwbGFjZSgvKGZpbGx8c3Ryb2tlKT0icmdiYVwoKFsgMC05XSssWyAwLTldKyxbIDAtOV0rKSwoWyAwLTlcLl0rKVwpIi9nLCckMT0icmdiKCQyKSIgJDEtb3BhY2l0eT0iJDMiJykucmVwbGFjZSgvJm5ic3A7L2csIlx1MDBhMCIpLnJlcGxhY2UoLyZzaHk7L2csIlx1MDBhZCIpLnJlcGxhY2UoLzxJTUcgL2csIjxpbWFnZSAiKS5yZXBsYWNlKC88KFwvPylUSVRMRT4vZywiPCQxdGl0bGU+IikucmVwbGFjZSgvaGVpZ2h0PShbXiIgXSspL2csJ2hlaWdodD0iJDEiJykucmVwbGFjZSgvd2lkdGg9KFteIiBdKykvZywnd2lkdGg9IiQxIicpLnJlcGxhY2UoL2hjLXN2Zy1ocmVmPSIoW14iXSspIj4vZywneGxpbms6aHJlZj0iJDEiLz4nKS5yZXBsYWNlKC8gaWQ9KFteIiA+XSspL2csJyBpZD0iJDEiJykucmVwbGFjZSgvY2xhc3M9KFteIiA+XSspL2csJ2NsYXNzPSIkMSInKS5yZXBsYWNlKC8gdHJhbnNmb3JtIC9nLAoiICIpLnJlcGxhY2UoLzoocGF0aHxyZWN0KS9nLCIkMSIpLnJlcGxhY2UoL3N0eWxlPSIoW14iXSspIi9nLGZ1bmN0aW9uKGIpe3JldHVybiBiLnRvTG93ZXJDYXNlKCl9KX0sZ2V0Q2hhcnRIVE1MOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGFpbmVyLmlubmVySFRNTH0sZ2V0U1ZHOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsZSxjLGcsaixrLGQ9bChiLm9wdGlvbnMsYSksSj1kLmV4cG9ydGluZy5hbGxvd0hUTUw7aWYoIW0uY3JlYXRlRWxlbWVudE5TKW0uY3JlYXRlRWxlbWVudE5TPWZ1bmN0aW9uKGIsYSl7cmV0dXJuIG0uY3JlYXRlRWxlbWVudChhKX07Yz1uKCJkaXYiLG51bGwse3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiItOTk5OWVtIix3aWR0aDpiLmNoYXJ0V2lkdGgrInB4IixoZWlnaHQ6Yi5jaGFydEhlaWdodCsicHgifSxtLmJvZHkpO2c9Yi5yZW5kZXJUby5zdHlsZS53aWR0aDtrPWIucmVuZGVyVG8uc3R5bGUuaGVpZ2h0O2c9ZC5leHBvcnRpbmcuc291cmNlV2lkdGh8fApkLmNoYXJ0LndpZHRofHwvcHgkLy50ZXN0KGcpJiZwYXJzZUludChnLDEwKXx8NjAwO2s9ZC5leHBvcnRpbmcuc291cmNlSGVpZ2h0fHxkLmNoYXJ0LmhlaWdodHx8L3B4JC8udGVzdChrKSYmcGFyc2VJbnQoaywxMCl8fDQwMDtxKGQuY2hhcnQse2FuaW1hdGlvbjohMSxyZW5kZXJUbzpjLGZvckV4cG9ydDohMCxyZW5kZXJlcjoiU1ZHUmVuZGVyZXIiLHdpZHRoOmcsaGVpZ2h0Omt9KTtkLmV4cG9ydGluZy5lbmFibGVkPSExO2RlbGV0ZSBkLmRhdGE7ZC5zZXJpZXM9W107aShiLnNlcmllcyxmdW5jdGlvbihhKXtqPWwoYS51c2VyT3B0aW9ucyx7YW5pbWF0aW9uOiExLGVuYWJsZU1vdXNlVHJhY2tpbmc6ITEsc2hvd0NoZWNrYm94OiExLHZpc2libGU6YS52aXNpYmxlfSk7ai5pc0ludGVybmFsfHxkLnNlcmllcy5wdXNoKGopfSk7YSYmaShbInhBeGlzIiwieUF4aXMiXSxmdW5jdGlvbihiKXtpKEYoYVtiXSksZnVuY3Rpb24oYSxjKXtkW2JdW2NdPWwoZFtiXVtjXSxhKX0pfSk7ZT0KbmV3IGYuQ2hhcnQoZCxiLmNhbGxiYWNrKTtpKFsieEF4aXMiLCJ5QXhpcyJdLGZ1bmN0aW9uKGEpe2koYlthXSxmdW5jdGlvbihiLGMpe3ZhciBkPWVbYV1bY10sZj1iLmdldEV4dHJlbWVzKCksZz1mLnVzZXJNaW4sZj1mLnVzZXJNYXg7ZCYmKGchPT12b2lkIDB8fGYhPT12b2lkIDApJiZkLnNldEV4dHJlbWVzKGcsZiwhMCwhMSl9KX0pO2c9ZS5nZXRDaGFydEhUTUwoKTtkPW51bGw7ZS5kZXN0cm95KCk7cyhjKTtpZihKJiYoYz1nLm1hdGNoKC88XC9zdmc+KC4qPyQpLykpKWM9Jzxmb3JlaWduT2JqZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIj48Ym9keSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+JytjWzFdKyI8L2JvZHk+PC9mb3JlaWduT2JqZWN0PiIsZz1nLnJlcGxhY2UoIjwvc3ZnPiIsYysiPC9zdmc+Iik7Zz10aGlzLnNhbml0aXplU1ZHKGcpO3JldHVybiBnPWcucmVwbGFjZSgvKHVybFwoI2hpZ2hjaGFydHMtWzAtOV0rKSZxdW90Oy9nLAoiJDEiKS5yZXBsYWNlKC8mcXVvdDsvZywiJyIpfSxnZXRTVkdGb3JFeHBvcnQ6ZnVuY3Rpb24oYSxiKXt2YXIgZT10aGlzLm9wdGlvbnMuZXhwb3J0aW5nO3JldHVybiB0aGlzLmdldFNWRyhsKHtjaGFydDp7Ym9yZGVyUmFkaXVzOjB9fSxlLmNoYXJ0T3B0aW9ucyxiLHtleHBvcnRpbmc6e3NvdXJjZVdpZHRoOmEmJmEuc291cmNlV2lkdGh8fGUuc291cmNlV2lkdGgsc291cmNlSGVpZ2h0OmEmJmEuc291cmNlSGVpZ2h0fHxlLnNvdXJjZUhlaWdodH19KSl9LGV4cG9ydENoYXJ0OmZ1bmN0aW9uKGEsYil7dmFyIGU9dGhpcy5nZXRTVkdGb3JFeHBvcnQoYSxiKSxhPWwodGhpcy5vcHRpb25zLmV4cG9ydGluZyxhKTtmLnBvc3QoYS51cmwse2ZpbGVuYW1lOmEuZmlsZW5hbWV8fCJjaGFydCIsdHlwZTphLnR5cGUsd2lkdGg6YS53aWR0aHx8MCxzY2FsZTphLnNjYWxlfHwyLHN2ZzplfSxhLmZvcm1BdHRyaWJ1dGVzKX0scHJpbnQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS5jb250YWluZXIsCmU9W10sYz1iLnBhcmVudE5vZGUsZj1tLmJvZHksaj1mLmNoaWxkTm9kZXM7aWYoIWEuaXNQcmludGluZylhLmlzUHJpbnRpbmc9ITAsYS5wb2ludGVyLnJlc2V0KG51bGwsMCksQyhhLCJiZWZvcmVQcmludCIpLGkoaixmdW5jdGlvbihhLGIpe2lmKGEubm9kZVR5cGU9PT0xKWVbYl09YS5zdHlsZS5kaXNwbGF5LGEuc3R5bGUuZGlzcGxheT0ibm9uZSJ9KSxmLmFwcGVuZENoaWxkKGIpLHIuZm9jdXMoKSxyLnByaW50KCksc2V0VGltZW91dChmdW5jdGlvbigpe2MuYXBwZW5kQ2hpbGQoYik7aShqLGZ1bmN0aW9uKGEsYil7aWYoYS5ub2RlVHlwZT09PTEpYS5zdHlsZS5kaXNwbGF5PWVbYl19KTthLmlzUHJpbnRpbmc9ITE7QyhhLCJhZnRlclByaW50Iil9LDFFMyl9LGNvbnRleHRNZW51OmZ1bmN0aW9uKGEsYixlLGMsZixqLGspe3ZhciBkPXRoaXMsbD1kLm9wdGlvbnMubmF2aWdhdGlvbixEPWwubWVudUl0ZW1TdHlsZSxvPWQuY2hhcnRXaWR0aCxwPWQuY2hhcnRIZWlnaHQsRT0iY2FjaGUtIisKYSxoPWRbRV0sdT1HKGYsaiksdyx4LHIscz1mdW5jdGlvbihiKXtkLnBvaW50ZXIuaW5DbGFzcyhiLnRhcmdldCxhKXx8eCgpfTtpZighaClkW0VdPWg9bigiZGl2Iix7Y2xhc3NOYW1lOmF9LHtwb3NpdGlvbjoiYWJzb2x1dGUiLHpJbmRleDoxRTMscGFkZGluZzp1KyJweCJ9LGQuY29udGFpbmVyKSx3PW4oImRpdiIsbnVsbCxxKHtNb3pCb3hTaGFkb3c6IjNweCAzcHggMTBweCAjODg4IixXZWJraXRCb3hTaGFkb3c6IjNweCAzcHggMTBweCAjODg4Iixib3hTaGFkb3c6IjNweCAzcHggMTBweCAjODg4In0sbC5tZW51U3R5bGUpLGgpLHg9ZnVuY3Rpb24oKXt2KGgse2Rpc3BsYXk6Im5vbmUifSk7ayYmay5zZXRTdGF0ZSgwKTtkLm9wZW5NZW51PSExfSx0KGgsIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7cj1zZXRUaW1lb3V0KHgsNTAwKX0pLHQoaCwibW91c2VlbnRlciIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQocil9KSx0KG0sIm1vdXNldXAiLHMpLHQoZCwiZGVzdHJveSIsZnVuY3Rpb24oKXtCKG0sCiJtb3VzZXVwIixzKX0pLGkoYixmdW5jdGlvbihhKXtpZihhKXt2YXIgYj1hLnNlcGFyYXRvcj9uKCJociIsbnVsbCxudWxsLHcpOm4oImRpdiIse29ubW91c2VvdmVyOmZ1bmN0aW9uKCl7dih0aGlzLGwubWVudUl0ZW1Ib3ZlclN0eWxlKX0sb25tb3VzZW91dDpmdW5jdGlvbigpe3YodGhpcyxEKX0sb25jbGljazpmdW5jdGlvbihiKXtiJiZiLnN0b3BQcm9wYWdhdGlvbigpO3goKTthLm9uY2xpY2smJmEub25jbGljay5hcHBseShkLGFyZ3VtZW50cyl9LGlubmVySFRNTDphLnRleHR8fGQub3B0aW9ucy5sYW5nW2EudGV4dEtleV19LHEoe2N1cnNvcjoicG9pbnRlciJ9LEQpLHcpO2QuZXhwb3J0RGl2RWxlbWVudHMucHVzaChiKX19KSxkLmV4cG9ydERpdkVsZW1lbnRzLnB1c2godyxoKSxkLmV4cG9ydE1lbnVXaWR0aD1oLm9mZnNldFdpZHRoLGQuZXhwb3J0TWVudUhlaWdodD1oLm9mZnNldEhlaWdodDtiPXtkaXNwbGF5OiJibG9jayJ9O2UrZC5leHBvcnRNZW51V2lkdGg+bz9iLnJpZ2h0PQpvLWUtZi11KyJweCI6Yi5sZWZ0PWUtdSsicHgiO2MraitkLmV4cG9ydE1lbnVIZWlnaHQ+cCYmay5hbGlnbk9wdGlvbnMudmVydGljYWxBbGlnbiE9PSJ0b3AiP2IuYm90dG9tPXAtYy11KyJweCI6Yi50b3A9YytqLXUrInB4Ijt2KGgsYik7ZC5vcGVuTWVudT0hMH0sYWRkQnV0dG9uOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsZT1iLnJlbmRlcmVyLGM9bChiLm9wdGlvbnMubmF2aWdhdGlvbi5idXR0b25PcHRpb25zLGEpLGc9Yy5vbmNsaWNrLGo9Yy5tZW51SXRlbXMsayxkLG09e3N0cm9rZTpjLnN5bWJvbFN0cm9rZSxmaWxsOmMuc3ltYm9sRmlsbH0saT1jLnN5bWJvbFNpemV8fDEyO2lmKCFiLmJ0bkNvdW50KWIuYnRuQ291bnQ9MDtpZighYi5leHBvcnREaXZFbGVtZW50cyliLmV4cG9ydERpdkVsZW1lbnRzPVtdLGIuZXhwb3J0U1ZHRWxlbWVudHM9W107aWYoYy5lbmFibGVkIT09ITEpe3ZhciBvPWMudGhlbWUscD1vLnN0YXRlcyxuPXAmJnAuaG92ZXIscD1wJiZwLnNlbGVjdCwKaDtkZWxldGUgby5zdGF0ZXM7Zz9oPWZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCk7Zy5jYWxsKGIsYSl9OmomJihoPWZ1bmN0aW9uKCl7Yi5jb250ZXh0TWVudShkLm1lbnVDbGFzc05hbWUsaixkLnRyYW5zbGF0ZVgsZC50cmFuc2xhdGVZLGQud2lkdGgsZC5oZWlnaHQsZCk7ZC5zZXRTdGF0ZSgyKX0pO2MudGV4dCYmYy5zeW1ib2w/by5wYWRkaW5nTGVmdD1mLnBpY2soby5wYWRkaW5nTGVmdCwyNSk6Yy50ZXh0fHxxKG8se3dpZHRoOmMud2lkdGgsaGVpZ2h0OmMuaGVpZ2h0LHBhZGRpbmc6MH0pO2Q9ZS5idXR0b24oYy50ZXh0LDAsMCxoLG8sbixwKS5hdHRyKHt0aXRsZTpiLm9wdGlvbnMubGFuZ1tjLl90aXRsZUtleV0sInN0cm9rZS1saW5lY2FwIjoicm91bmQiLHpJbmRleDozfSk7ZC5tZW51Q2xhc3NOYW1lPWEubWVudUNsYXNzTmFtZXx8ImhpZ2hjaGFydHMtbWVudS0iK2IuYnRuQ291bnQrKztjLnN5bWJvbCYmKGs9ZS5zeW1ib2woYy5zeW1ib2wsYy5zeW1ib2xYLQppLzIsYy5zeW1ib2xZLWkvMixpLGkpLmF0dHIocShtLHsic3Ryb2tlLXdpZHRoIjpjLnN5bWJvbFN0cm9rZVdpZHRofHwxLHpJbmRleDoxfSkpLmFkZChkKSk7ZC5hZGQoKS5hbGlnbihxKGMse3dpZHRoOmQud2lkdGgseDpmLnBpY2soYy54LHopfSksITAsInNwYWNpbmdCb3giKTt6Kz0oZC53aWR0aCtjLmJ1dHRvblNwYWNpbmcpKihjLmFsaWduPT09InJpZ2h0Ij8tMToxKTtiLmV4cG9ydFNWR0VsZW1lbnRzLnB1c2goZCxrKX19LGRlc3Ryb3lFeHBvcnQ6ZnVuY3Rpb24oYSl7dmFyIGE9YS50YXJnZXQsYixlO2ZvcihiPTA7YjxhLmV4cG9ydFNWR0VsZW1lbnRzLmxlbmd0aDtiKyspaWYoZT1hLmV4cG9ydFNWR0VsZW1lbnRzW2JdKWUub25jbGljaz1lLm9udG91Y2hzdGFydD1udWxsLGEuZXhwb3J0U1ZHRWxlbWVudHNbYl09ZS5kZXN0cm95KCk7Zm9yKGI9MDtiPGEuZXhwb3J0RGl2RWxlbWVudHMubGVuZ3RoO2IrKyllPWEuZXhwb3J0RGl2RWxlbWVudHNbYl0sQihlLCJtb3VzZWxlYXZlIiksCmEuZXhwb3J0RGl2RWxlbWVudHNbYl09ZS5vbm1vdXNlb3V0PWUub25tb3VzZW92ZXI9ZS5vbnRvdWNoc3RhcnQ9ZS5vbmNsaWNrPW51bGwscyhlKX19KTtJLm1lbnU9ZnVuY3Rpb24oYSxiLGUsYyl7cmV0dXJuWyJNIixhLGIrMi41LCJMIixhK2UsYisyLjUsIk0iLGEsYitjLzIrMC41LCJMIixhK2UsYitjLzIrMC41LCJNIixhLGIrYy0xLjUsIkwiLGErZSxiK2MtMS41XX07QS5wcm90b3R5cGUuY2FsbGJhY2tzLnB1c2goZnVuY3Rpb24oYSl7dmFyIGIsZT1hLm9wdGlvbnMuZXhwb3J0aW5nLGM9ZS5idXR0b25zO3o9MDtpZihlLmVuYWJsZWQhPT0hMSl7Zm9yKGIgaW4gYylhLmFkZEJ1dHRvbihjW2JdKTt0KGEsImRlc3Ryb3kiLGEuZGVzdHJveUV4cG9ydCl9fSl9KTsK"></script> <script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKGQpe3R5cGVvZiBtb2R1bGU9PT0ib2JqZWN0IiYmbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZDpkKEhpZ2hjaGFydHMpfSkoZnVuY3Rpb24oZCl7ZnVuY3Rpb24gQShhLGIsYyl7dmFyIGU7IWIucmdiYS5sZW5ndGh8fCFhLnJnYmEubGVuZ3RoP2E9Yi5pbnB1dHx8Im5vbmUiOihhPWEucmdiYSxiPWIucmdiYSxlPWJbM10hPT0xfHxhWzNdIT09MSxhPShlPyJyZ2JhKCI6InJnYigiKStNYXRoLnJvdW5kKGJbMF0rKGFbMF0tYlswXSkqKDEtYykpKyIsIitNYXRoLnJvdW5kKGJbMV0rKGFbMV0tYlsxXSkqKDEtYykpKyIsIitNYXRoLnJvdW5kKGJbMl0rKGFbMl0tYlsyXSkqKDEtYykpKyhlPyIsIisoYlszXSsoYVszXS1iWzNdKSooMS1jKSk6IiIpKyIpIik7cmV0dXJuIGF9dmFyIHQ9ZnVuY3Rpb24oKXt9LHE9ZC5nZXRPcHRpb25zKCksaD1kLmVhY2gsbD1kLmV4dGVuZCxCPWQuZm9ybWF0LHU9ZC5waWNrLHI9ZC53cmFwLG09ZC5DaGFydCxwPWQuc2VyaWVzVHlwZXMsCnY9cC5waWUsbj1wLmNvbHVtbix3PWQuVGljayx4PWQuZmlyZUV2ZW50LHk9ZC5pbkFycmF5LHo9MTtoKFsiZmlsbCIsInN0cm9rZSJdLGZ1bmN0aW9uKGEpe2QuRngucHJvdG90eXBlW2ErIlNldHRlciJdPWZ1bmN0aW9uKCl7dGhpcy5lbGVtLmF0dHIoYSxBKGQuQ29sb3IodGhpcy5zdGFydCksZC5Db2xvcih0aGlzLmVuZCksdGhpcy5wb3MpKX19KTtsKHEubGFuZyx7ZHJpbGxVcFRleHQ6Ilx1MjVjMSBCYWNrIHRvIHtzZXJpZXMubmFtZX0ifSk7cS5kcmlsbGRvd249e2FjdGl2ZUF4aXNMYWJlbFN0eWxlOntjdXJzb3I6InBvaW50ZXIiLGNvbG9yOiIjMGQyMzNhIixmb250V2VpZ2h0OiJib2xkIix0ZXh0RGVjb3JhdGlvbjoidW5kZXJsaW5lIn0sYWN0aXZlRGF0YUxhYmVsU3R5bGU6e2N1cnNvcjoicG9pbnRlciIsY29sb3I6IiMwZDIzM2EiLGZvbnRXZWlnaHQ6ImJvbGQiLHRleHREZWNvcmF0aW9uOiJ1bmRlcmxpbmUifSxhbmltYXRpb246e2R1cmF0aW9uOjUwMH0sZHJpbGxVcEJ1dHRvbjp7cG9zaXRpb246e2FsaWduOiJyaWdodCIsCng6LTEwLHk6MTB9fX07ZC5TVkdSZW5kZXJlci5wcm90b3R5cGUuRWxlbWVudC5wcm90b3R5cGUuZmFkZUluPWZ1bmN0aW9uKGEpe3RoaXMuYXR0cih7b3BhY2l0eTowLjEsdmlzaWJpbGl0eToiaW5oZXJpdCJ9KS5hbmltYXRlKHtvcGFjaXR5OnUodGhpcy5uZXdPcGFjaXR5LDEpfSxhfHx7ZHVyYXRpb246MjUwfSl9O20ucHJvdG90eXBlLmFkZFNlcmllc0FzRHJpbGxkb3duPWZ1bmN0aW9uKGEsYil7dGhpcy5hZGRTaW5nbGVTZXJpZXNBc0RyaWxsZG93bihhLGIpO3RoaXMuYXBwbHlEcmlsbGRvd24oKX07bS5wcm90b3R5cGUuYWRkU2luZ2xlU2VyaWVzQXNEcmlsbGRvd249ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLnNlcmllcyxlPWMueEF4aXMsZz1jLnlBeGlzLGY7Zj1hLmNvbG9yfHxjLmNvbG9yO3ZhciBpLGQ9W10saj1bXSxrLG87aWYoIXRoaXMuZHJpbGxkb3duTGV2ZWxzKXRoaXMuZHJpbGxkb3duTGV2ZWxzPVtdO2s9Yy5vcHRpb25zLl9sZXZlbE51bWJlcnx8MDsobz10aGlzLmRyaWxsZG93bkxldmVsc1t0aGlzLmRyaWxsZG93bkxldmVscy5sZW5ndGgtCjFdKSYmby5sZXZlbE51bWJlciE9PWsmJihvPXZvaWQgMCk7Yj1sKHtjb2xvcjpmLF9kZFNlcmllc0lkOnorK30sYik7aT15KGEsYy5wb2ludHMpO2goYy5jaGFydC5zZXJpZXMsZnVuY3Rpb24oYSl7aWYoYS54QXhpcz09PWUmJiFhLmlzRHJpbGxpbmcpYS5vcHRpb25zLl9kZFNlcmllc0lkPWEub3B0aW9ucy5fZGRTZXJpZXNJZHx8eisrLGEub3B0aW9ucy5fY29sb3JJbmRleD1hLnVzZXJPcHRpb25zLl9jb2xvckluZGV4LGEub3B0aW9ucy5fbGV2ZWxOdW1iZXI9YS5vcHRpb25zLl9sZXZlbE51bWJlcnx8ayxvPyhkPW8ubGV2ZWxTZXJpZXMsaj1vLmxldmVsU2VyaWVzT3B0aW9ucyk6KGQucHVzaChhKSxqLnB1c2goYS5vcHRpb25zKSl9KTtmPXtsZXZlbE51bWJlcjprLHNlcmllc09wdGlvbnM6Yy5vcHRpb25zLGxldmVsU2VyaWVzT3B0aW9uczpqLGxldmVsU2VyaWVzOmQsc2hhcGVBcmdzOmEuc2hhcGVBcmdzLGJCb3g6YS5ncmFwaGljP2EuZ3JhcGhpYy5nZXRCQm94KCk6e30sY29sb3I6ZiwKbG93ZXJTZXJpZXNPcHRpb25zOmIscG9pbnRPcHRpb25zOmMub3B0aW9ucy5kYXRhW2ldLHBvaW50SW5kZXg6aSxvbGRFeHRyZW1lczp7eE1pbjplJiZlLnVzZXJNaW4seE1heDplJiZlLnVzZXJNYXgseU1pbjpnJiZnLnVzZXJNaW4seU1heDpnJiZnLnVzZXJNYXh9fTt0aGlzLmRyaWxsZG93bkxldmVscy5wdXNoKGYpO2Y9Zi5sb3dlclNlcmllcz10aGlzLmFkZFNlcmllcyhiLCExKTtmLm9wdGlvbnMuX2xldmVsTnVtYmVyPWsrMTtpZihlKWUub2xkUG9zPWUucG9zLGUudXNlck1pbj1lLnVzZXJNYXg9bnVsbCxnLnVzZXJNaW49Zy51c2VyTWF4PW51bGw7aWYoYy50eXBlPT09Zi50eXBlKWYuYW5pbWF0ZT1mLmFuaW1hdGVEcmlsbGRvd258fHQsZi5vcHRpb25zLmFuaW1hdGlvbj0hMH07bS5wcm90b3R5cGUuYXBwbHlEcmlsbGRvd249ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmRyaWxsZG93bkxldmVscyxiO2lmKGEmJmEubGVuZ3RoPjApYj1hW2EubGVuZ3RoLTFdLmxldmVsTnVtYmVyLApoKHRoaXMuZHJpbGxkb3duTGV2ZWxzLGZ1bmN0aW9uKGEpe2EubGV2ZWxOdW1iZXI9PT1iJiZoKGEubGV2ZWxTZXJpZXMsZnVuY3Rpb24oYSl7YS5vcHRpb25zJiZhLm9wdGlvbnMuX2xldmVsTnVtYmVyPT09YiYmYS5yZW1vdmUoITEpfSl9KTt0aGlzLnJlZHJhdygpO3RoaXMuc2hvd0RyaWxsVXBCdXR0b24oKX07bS5wcm90b3R5cGUuZ2V0RHJpbGxkb3duQmFja1RleHQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmRyaWxsZG93bkxldmVscztpZihhJiZhLmxlbmd0aD4wKXJldHVybiBhPWFbYS5sZW5ndGgtMV0sYS5zZXJpZXM9YS5zZXJpZXNPcHRpb25zLEIodGhpcy5vcHRpb25zLmxhbmcuZHJpbGxVcFRleHQsYSl9O20ucHJvdG90eXBlLnNob3dEcmlsbFVwQnV0dG9uPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPXRoaXMuZ2V0RHJpbGxkb3duQmFja1RleHQoKSxjPWEub3B0aW9ucy5kcmlsbGRvd24uZHJpbGxVcEJ1dHRvbixlLGc7dGhpcy5kcmlsbFVwQnV0dG9uP3RoaXMuZHJpbGxVcEJ1dHRvbi5hdHRyKHt0ZXh0OmJ9KS5hbGlnbigpOgooZz0oZT1jLnRoZW1lKSYmZS5zdGF0ZXMsdGhpcy5kcmlsbFVwQnV0dG9uPXRoaXMucmVuZGVyZXIuYnV0dG9uKGIsbnVsbCxudWxsLGZ1bmN0aW9uKCl7YS5kcmlsbFVwKCl9LGUsZyYmZy5ob3ZlcixnJiZnLnNlbGVjdCkuYXR0cih7YWxpZ246Yy5wb3NpdGlvbi5hbGlnbix6SW5kZXg6OX0pLmFkZCgpLmFsaWduKGMucG9zaXRpb24sITEsYy5yZWxhdGl2ZVRvfHwicGxvdEJveCIpKX07bS5wcm90b3R5cGUuZHJpbGxVcD1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLGI9YS5kcmlsbGRvd25MZXZlbHMsYz1iW2IubGVuZ3RoLTFdLmxldmVsTnVtYmVyLGU9Yi5sZW5ndGgsZz1hLnNlcmllcyxmLGksZCxqLGs9ZnVuY3Rpb24oYil7dmFyIGM7aChnLGZ1bmN0aW9uKGEpe2Eub3B0aW9ucy5fZGRTZXJpZXNJZD09PWIuX2RkU2VyaWVzSWQmJihjPWEpfSk7Yz1jfHxhLmFkZFNlcmllcyhiLCExKTtpZihjLnR5cGU9PT1kLnR5cGUmJmMuYW5pbWF0ZURyaWxsdXBUbyljLmFuaW1hdGU9Yy5hbmltYXRlRHJpbGx1cFRvOwpiPT09aS5zZXJpZXNPcHRpb25zJiYoaj1jKX07ZS0tOylpZihpPWJbZV0saS5sZXZlbE51bWJlcj09PWMpe2IucG9wKCk7ZD1pLmxvd2VyU2VyaWVzO2lmKCFkLmNoYXJ0KWZvcihmPWcubGVuZ3RoO2YtLTspaWYoZ1tmXS5vcHRpb25zLmlkPT09aS5sb3dlclNlcmllc09wdGlvbnMuaWQmJmdbZl0ub3B0aW9ucy5fbGV2ZWxOdW1iZXI9PT1jKzEpe2Q9Z1tmXTticmVha31kLnhEYXRhPVtdO2goaS5sZXZlbFNlcmllc09wdGlvbnMsayk7eChhLCJkcmlsbHVwIix7c2VyaWVzT3B0aW9uczppLnNlcmllc09wdGlvbnN9KTtpZihqLnR5cGU9PT1kLnR5cGUpai5kcmlsbGRvd25MZXZlbD1pLGoub3B0aW9ucy5hbmltYXRpb249YS5vcHRpb25zLmRyaWxsZG93bi5hbmltYXRpb24sZC5hbmltYXRlRHJpbGx1cEZyb20mJmQuY2hhcnQmJmQuYW5pbWF0ZURyaWxsdXBGcm9tKGkpO2oub3B0aW9ucy5fbGV2ZWxOdW1iZXI9YztkLnJlbW92ZSghMSk7aWYoai54QXhpcylmPWkub2xkRXh0cmVtZXMsCmoueEF4aXMuc2V0RXh0cmVtZXMoZi54TWluLGYueE1heCwhMSksai55QXhpcy5zZXRFeHRyZW1lcyhmLnlNaW4sZi55TWF4LCExKX10aGlzLnJlZHJhdygpO3RoaXMuZHJpbGxkb3duTGV2ZWxzLmxlbmd0aD09PTA/dGhpcy5kcmlsbFVwQnV0dG9uPXRoaXMuZHJpbGxVcEJ1dHRvbi5kZXN0cm95KCk6dGhpcy5kcmlsbFVwQnV0dG9uLmF0dHIoe3RleHQ6dGhpcy5nZXREcmlsbGRvd25CYWNrVGV4dCgpfSkuYWxpZ24oKTt0aGlzLmRkRHVwZXMubGVuZ3RoPVtdfTtuLnByb3RvdHlwZS5zdXBwb3J0c0RyaWxsZG93bj0hMDtuLnByb3RvdHlwZS5hbmltYXRlRHJpbGx1cFRvPWZ1bmN0aW9uKGEpe2lmKCFhKXt2YXIgYj10aGlzLGM9Yi5kcmlsbGRvd25MZXZlbDtoKHRoaXMucG9pbnRzLGZ1bmN0aW9uKGEpe2EuZ3JhcGhpYyYmYS5ncmFwaGljLmhpZGUoKTthLmRhdGFMYWJlbCYmYS5kYXRhTGFiZWwuaGlkZSgpO2EuY29ubmVjdG9yJiZhLmNvbm5lY3Rvci5oaWRlKCl9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi5wb2ludHMmJgpoKGIucG9pbnRzLGZ1bmN0aW9uKGEsYil7dmFyIGY9Yj09PShjJiZjLnBvaW50SW5kZXgpPyJzaG93IjoiZmFkZUluIixkPWY9PT0ic2hvdyI/ITA6dm9pZCAwO2lmKGEuZ3JhcGhpYylhLmdyYXBoaWNbZl0oZCk7aWYoYS5kYXRhTGFiZWwpYS5kYXRhTGFiZWxbZl0oZCk7aWYoYS5jb25uZWN0b3IpYS5jb25uZWN0b3JbZl0oZCl9KX0sTWF0aC5tYXgodGhpcy5jaGFydC5vcHRpb25zLmRyaWxsZG93bi5hbmltYXRpb24uZHVyYXRpb24tNTAsMCkpO3RoaXMuYW5pbWF0ZT10fX07bi5wcm90b3R5cGUuYW5pbWF0ZURyaWxsZG93bj1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9dGhpcy5jaGFydC5kcmlsbGRvd25MZXZlbHMsZSxkPXRoaXMuY2hhcnQub3B0aW9ucy5kcmlsbGRvd24uYW5pbWF0aW9uLGY9dGhpcy54QXhpcztpZighYSloKGMsZnVuY3Rpb24oYSl7aWYoYi5vcHRpb25zLl9kZFNlcmllc0lkPT09YS5sb3dlclNlcmllc09wdGlvbnMuX2RkU2VyaWVzSWQpZT1hLnNoYXBlQXJncywKZS5maWxsPWEuY29sb3J9KSxlLngrPXUoZi5vbGRQb3MsZi5wb3MpLWYucG9zLGgodGhpcy5wb2ludHMsZnVuY3Rpb24oYSl7YS5ncmFwaGljJiZhLmdyYXBoaWMuYXR0cihlKS5hbmltYXRlKGwoYS5zaGFwZUFyZ3Mse2ZpbGw6YS5jb2xvcn0pLGQpO2EuZGF0YUxhYmVsJiZhLmRhdGFMYWJlbC5mYWRlSW4oZCl9KSx0aGlzLmFuaW1hdGU9bnVsbH07bi5wcm90b3R5cGUuYW5pbWF0ZURyaWxsdXBGcm9tPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY2hhcnQub3B0aW9ucy5kcmlsbGRvd24uYW5pbWF0aW9uLGM9dGhpcy5ncm91cCxlPXRoaXM7aChlLnRyYWNrZXJHcm91cHMsZnVuY3Rpb24oYSl7aWYoZVthXSllW2FdLm9uKCJtb3VzZW92ZXIiKX0pO2RlbGV0ZSB0aGlzLmdyb3VwO2godGhpcy5wb2ludHMsZnVuY3Rpb24oZSl7dmFyIGY9ZS5ncmFwaGljLGk9ZnVuY3Rpb24oKXtmLmRlc3Ryb3koKTtjJiYoYz1jLmRlc3Ryb3koKSl9O2YmJihkZWxldGUgZS5ncmFwaGljLGI/Zi5hbmltYXRlKGwoYS5zaGFwZUFyZ3MsCntmaWxsOmEuY29sb3J9KSxkLm1lcmdlKGIse2NvbXBsZXRlOml9KSk6KGYuYXR0cihhLnNoYXBlQXJncyksaSgpKSl9KX07diYmbCh2LnByb3RvdHlwZSx7c3VwcG9ydHNEcmlsbGRvd246ITAsYW5pbWF0ZURyaWxsdXBUbzpuLnByb3RvdHlwZS5hbmltYXRlRHJpbGx1cFRvLGFuaW1hdGVEcmlsbHVwRnJvbTpuLnByb3RvdHlwZS5hbmltYXRlRHJpbGx1cEZyb20sYW5pbWF0ZURyaWxsZG93bjpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNoYXJ0LmRyaWxsZG93bkxldmVsc1t0aGlzLmNoYXJ0LmRyaWxsZG93bkxldmVscy5sZW5ndGgtMV0sYz10aGlzLmNoYXJ0Lm9wdGlvbnMuZHJpbGxkb3duLmFuaW1hdGlvbixlPWIuc2hhcGVBcmdzLGc9ZS5zdGFydCxmPShlLmVuZC1nKS90aGlzLnBvaW50cy5sZW5ndGg7aWYoIWEpaCh0aGlzLnBvaW50cyxmdW5jdGlvbihhLGgpe2EuZ3JhcGhpYy5hdHRyKGQubWVyZ2UoZSx7c3RhcnQ6ZytoKmYsZW5kOmcrKGgrMSkqZixmaWxsOmIuY29sb3J9KSlbYz8KImFuaW1hdGUiOiJhdHRyIl0obChhLnNoYXBlQXJncyx7ZmlsbDphLmNvbG9yfSksYyl9KSx0aGlzLmFuaW1hdGU9bnVsbH19KTtkLlBvaW50LnByb3RvdHlwZS5kb0RyaWxsZG93bj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuc2VyaWVzLmNoYXJ0LGU9Yy5vcHRpb25zLmRyaWxsZG93bixkPShlLnNlcmllc3x8W10pLmxlbmd0aCxmO2lmKCFjLmRkRHVwZXMpYy5kZER1cGVzPVtdO2Zvcig7ZC0tJiYhZjspZS5zZXJpZXNbZF0uaWQ9PT10aGlzLmRyaWxsZG93biYmeSh0aGlzLmRyaWxsZG93bixjLmRkRHVwZXMpPT09LTEmJihmPWUuc2VyaWVzW2RdLGMuZGREdXBlcy5wdXNoKHRoaXMuZHJpbGxkb3duKSk7eChjLCJkcmlsbGRvd24iLHtwb2ludDp0aGlzLHNlcmllc09wdGlvbnM6ZixjYXRlZ29yeTpiLHBvaW50czpiIT09dm9pZCAwJiZ0aGlzLnNlcmllcy54QXhpcy5kZFBvaW50c1tiXS5zbGljZSgwKX0pO2YmJihhP2MuYWRkU2luZ2xlU2VyaWVzQXNEcmlsbGRvd24odGhpcyxmKToKYy5hZGRTZXJpZXNBc0RyaWxsZG93bih0aGlzLGYpKX07ZC5BeGlzLnByb3RvdHlwZS5kcmlsbGRvd25DYXRlZ29yeT1mdW5jdGlvbihhKXt2YXIgYixjLGQ9dGhpcy5kZFBvaW50c1thXTtmb3IoYiBpbiBkKShjPWRbYl0pJiZjLnNlcmllcyYmYy5zZXJpZXMudmlzaWJsZSYmYy5kb0RyaWxsZG93biYmYy5kb0RyaWxsZG93bighMCxhKTt0aGlzLmNoYXJ0LmFwcGx5RHJpbGxkb3duKCl9O2QuQXhpcy5wcm90b3R5cGUuZ2V0RERQb2ludHM9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmRkUG9pbnRzO2lmKCFjKXRoaXMuZGRQb2ludHM9Yz17fTtjW2FdfHwoY1thXT1bXSk7aWYoY1thXS5sZXZlbE51bWJlciE9PWIpY1thXS5sZW5ndGg9MDtyZXR1cm4gY1thXX07dy5wcm90b3R5cGUuZHJpbGxhYmxlPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5wb3MsYj10aGlzLmxhYmVsLGM9dGhpcy5heGlzLGU9Yy5kZFBvaW50cyYmYy5kZFBvaW50c1thXTtpZihiJiZlJiZlLmxlbmd0aCl7aWYoIWIuYmFzaWNTdHlsZXMpYi5iYXNpY1N0eWxlcz0KZC5tZXJnZShiLnN0eWxlcyk7Yi5hZGRDbGFzcygiaGlnaGNoYXJ0cy1kcmlsbGRvd24tYXhpcy1sYWJlbCIpLmNzcyhjLmNoYXJ0Lm9wdGlvbnMuZHJpbGxkb3duLmFjdGl2ZUF4aXNMYWJlbFN0eWxlKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yy5kcmlsbGRvd25DYXRlZ29yeShhKX0pfWVsc2UgaWYoYiYmYi5iYXNpY1N0eWxlcyliLnN0eWxlcz17fSxiLmNzcyhiLmJhc2ljU3R5bGVzKSxiLm9uKCJjbGljayIsbnVsbCl9O3Iody5wcm90b3R5cGUsImFkZExhYmVsIixmdW5jdGlvbihhKXthLmNhbGwodGhpcyk7dGhpcy5kcmlsbGFibGUoKX0pO3IoZC5Qb2ludC5wcm90b3R5cGUsImluaXQiLGZ1bmN0aW9uKGEsYixjLGUpe3ZhciBnPWEuY2FsbCh0aGlzLGIsYyxlKSxhPShjPWIueEF4aXMpJiZjLnRpY2tzW2VdLGM9YyYmYy5nZXRERFBvaW50cyhlLGIub3B0aW9ucy5fbGV2ZWxOdW1iZXIpO2lmKGcuZHJpbGxkb3duJiYoZC5hZGRFdmVudChnLCJjbGljayIsZnVuY3Rpb24oKXtiLnhBeGlzJiYKYi5jaGFydC5vcHRpb25zLmRyaWxsZG93bi5hbGxvd1BvaW50RHJpbGxkb3duPT09ITE/Yi54QXhpcy5kcmlsbGRvd25DYXRlZ29yeShlKTpnLmRvRHJpbGxkb3duKCl9KSxjKSljLnB1c2goZyksYy5sZXZlbE51bWJlcj1iLm9wdGlvbnMuX2xldmVsTnVtYmVyO2EmJmEuZHJpbGxhYmxlKCk7cmV0dXJuIGd9KTtyKGQuU2VyaWVzLnByb3RvdHlwZSwiZHJhd0RhdGFMYWJlbHMiLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY2hhcnQub3B0aW9ucy5kcmlsbGRvd24uYWN0aXZlRGF0YUxhYmVsU3R5bGU7YS5jYWxsKHRoaXMpO2godGhpcy5wb2ludHMsZnVuY3Rpb24oYSl7YS5kcmlsbGRvd24mJmEuZGF0YUxhYmVsJiZhLmRhdGFMYWJlbC5hdHRyKHsiY2xhc3MiOiJoaWdoY2hhcnRzLWRyaWxsZG93bi1kYXRhLWxhYmVsIn0pLmNzcyhiKX0pfSk7dmFyIHMscT1mdW5jdGlvbihhKXthLmNhbGwodGhpcyk7aCh0aGlzLnBvaW50cyxmdW5jdGlvbihhKXthLmRyaWxsZG93biYmYS5ncmFwaGljJiYKYS5ncmFwaGljLmF0dHIoeyJjbGFzcyI6ImhpZ2hjaGFydHMtZHJpbGxkb3duLXBvaW50In0pLmNzcyh7Y3Vyc29yOiJwb2ludGVyIn0pfSl9O2ZvcihzIGluIHApcFtzXS5wcm90b3R5cGUuc3VwcG9ydHNEcmlsbGRvd24mJnIocFtzXS5wcm90b3R5cGUsImRyYXdUcmFja2VyIixxKX0pOwo="></script> <script src="data:application/x-javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjQuMi4zICgyMDE2LTAyLTA4KQoKIChjKSAyMDExLTIwMTYgVG9yc3RlaW4gSG9uc2kKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oZCl7dHlwZW9mIG1vZHVsZT09PSJvYmplY3QiJiZtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1kOmQoSGlnaGNoYXJ0cyl9KShmdW5jdGlvbihkKXt2YXIgbT1kLkF4aXMscT1kLkNoYXJ0LGk9ZC5Db2xvcix4PWQuTGVnZW5kLHM9ZC5MZWdlbmRTeW1ib2xNaXhpbix0PWQuU2VyaWVzLHk9ZC5Qb2ludCx1PWQuZ2V0T3B0aW9ucygpLGg9ZC5lYWNoLHI9ZC5leHRlbmQsdj1kLmV4dGVuZENsYXNzLGo9ZC5tZXJnZSxrPWQucGljayxvPWQuc2VyaWVzVHlwZXMsdz1kLndyYXAsbj1mdW5jdGlvbigpe30scD1kLkNvbG9yQXhpcz1mdW5jdGlvbigpe3RoaXMuaXNDb2xvckF4aXM9ITA7dGhpcy5pbml0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07cihwLnByb3RvdHlwZSxtLnByb3RvdHlwZSk7cihwLnByb3RvdHlwZSx7ZGVmYXVsdENvbG9yQXhpc09wdGlvbnM6e2xpbmVXaWR0aDowLG1pblBhZGRpbmc6MCxtYXhQYWRkaW5nOjAsZ3JpZExpbmVXaWR0aDoxLHRpY2tQaXhlbEludGVydmFsOjcyLApzdGFydE9uVGljazohMCxlbmRPblRpY2s6ITAsb2Zmc2V0OjAsbWFya2VyOnthbmltYXRpb246e2R1cmF0aW9uOjUwfSxjb2xvcjoiZ3JheSIsd2lkdGg6MC4wMX0sbGFiZWxzOntvdmVyZmxvdzoianVzdGlmeSJ9LG1pbkNvbG9yOiIjRUZFRkZGIixtYXhDb2xvcjoiIzAwMzg3NSIsdGlja0xlbmd0aDo1fSxpbml0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5vcHRpb25zLmxlZ2VuZC5sYXlvdXQhPT0idmVydGljYWwiLGY7Zj1qKHRoaXMuZGVmYXVsdENvbG9yQXhpc09wdGlvbnMse3NpZGU6Yz8yOjEscmV2ZXJzZWQ6IWN9LGIse29wcG9zaXRlOiFjLHNob3dFbXB0eTohMSx0aXRsZTpudWxsLGlzQ29sb3I6ITB9KTttLnByb3RvdHlwZS5pbml0LmNhbGwodGhpcyxhLGYpO2IuZGF0YUNsYXNzZXMmJnRoaXMuaW5pdERhdGFDbGFzc2VzKGIpO3RoaXMuaW5pdFN0b3BzKGIpO3RoaXMuaG9yaXo9Yzt0aGlzLnpvb21FbmFibGVkPSExfSx0d2VlbkNvbG9yczpmdW5jdGlvbihhLGIsYyl7dmFyIGY7CiFiLnJnYmEubGVuZ3RofHwhYS5yZ2JhLmxlbmd0aD9hPWIuaW5wdXR8fCJub25lIjooYT1hLnJnYmEsYj1iLnJnYmEsZj1iWzNdIT09MXx8YVszXSE9PTEsYT0oZj8icmdiYSgiOiJyZ2IoIikrTWF0aC5yb3VuZChiWzBdKyhhWzBdLWJbMF0pKigxLWMpKSsiLCIrTWF0aC5yb3VuZChiWzFdKyhhWzFdLWJbMV0pKigxLWMpKSsiLCIrTWF0aC5yb3VuZChiWzJdKyhhWzJdLWJbMl0pKigxLWMpKSsoZj8iLCIrKGJbM10rKGFbM10tYlszXSkqKDEtYykpOiIiKSsiKSIpO3JldHVybiBhfSxpbml0RGF0YUNsYXNzZXM6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPXRoaXMuY2hhcnQsZixlPTAsbD10aGlzLm9wdGlvbnMsZz1hLmRhdGFDbGFzc2VzLmxlbmd0aDt0aGlzLmRhdGFDbGFzc2VzPWY9W107dGhpcy5sZWdlbmRJdGVtcz1bXTtoKGEuZGF0YUNsYXNzZXMsZnVuY3Rpb24oYSxkKXt2YXIgaCxhPWooYSk7Zi5wdXNoKGEpO2lmKCFhLmNvbG9yKWwuZGF0YUNsYXNzQ29sb3I9PT0iY2F0ZWdvcnkiPwooaD1jLm9wdGlvbnMuY29sb3JzLGEuY29sb3I9aFtlKytdLGU9PT1oLmxlbmd0aCYmKGU9MCkpOmEuY29sb3I9Yi50d2VlbkNvbG9ycyhpKGwubWluQ29sb3IpLGkobC5tYXhDb2xvciksZzwyPzAuNTpkLyhnLTEpKX0pfSxpbml0U3RvcHM6ZnVuY3Rpb24oYSl7dGhpcy5zdG9wcz1hLnN0b3BzfHxbWzAsdGhpcy5vcHRpb25zLm1pbkNvbG9yXSxbMSx0aGlzLm9wdGlvbnMubWF4Q29sb3JdXTtoKHRoaXMuc3RvcHMsZnVuY3Rpb24oYSl7YS5jb2xvcj1pKGFbMV0pfSl9LHNldE9wdGlvbnM6ZnVuY3Rpb24oYSl7bS5wcm90b3R5cGUuc2V0T3B0aW9ucy5jYWxsKHRoaXMsYSk7dGhpcy5vcHRpb25zLmNyb3NzaGFpcj10aGlzLm9wdGlvbnMubWFya2VyO3RoaXMuY29sbD0iY29sb3JBeGlzIn0sc2V0QXhpc1NpemU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmxlZ2VuZFN5bWJvbCxiPXRoaXMuY2hhcnQsYyxmLGU7aWYoYSl0aGlzLmxlZnQ9Yz1hLmF0dHIoIngiKSx0aGlzLnRvcD1mPWEuYXR0cigieSIpLAp0aGlzLndpZHRoPWU9YS5hdHRyKCJ3aWR0aCIpLHRoaXMuaGVpZ2h0PWE9YS5hdHRyKCJoZWlnaHQiKSx0aGlzLnJpZ2h0PWIuY2hhcnRXaWR0aC1jLWUsdGhpcy5ib3R0b209Yi5jaGFydEhlaWdodC1mLWEsdGhpcy5sZW49dGhpcy5ob3Jpej9lOmEsdGhpcy5wb3M9dGhpcy5ob3Jpej9jOmZ9LHRvQ29sb3I6ZnVuY3Rpb24oYSxiKXt2YXIgYyxmPXRoaXMuc3RvcHMsZSxsPXRoaXMuZGF0YUNsYXNzZXMsZyxkO2lmKGwpZm9yKGQ9bC5sZW5ndGg7ZC0tOyl7aWYoZz1sW2RdLGU9Zy5mcm9tLGY9Zy50bywoZT09PXZvaWQgMHx8YT49ZSkmJihmPT09dm9pZCAwfHxhPD1mKSl7Yz1nLmNvbG9yO2lmKGIpYi5kYXRhQ2xhc3M9ZDticmVha319ZWxzZXt0aGlzLmlzTG9nJiYoYT10aGlzLnZhbDJsaW4oYSkpO2M9MS0odGhpcy5tYXgtYSkvKHRoaXMubWF4LXRoaXMubWlufHwxKTtmb3IoZD1mLmxlbmd0aDtkLS07KWlmKGM+ZltkXVswXSlicmVhaztlPWZbZF18fGZbZCsxXTtmPWZbZCsxXXx8CmU7Yz0xLShmWzBdLWMpLyhmWzBdLWVbMF18fDEpO2M9dGhpcy50d2VlbkNvbG9ycyhlLmNvbG9yLGYuY29sb3IsYyl9cmV0dXJuIGN9LGdldE9mZnNldDpmdW5jdGlvbigpe3ZhciBhPXRoaXMubGVnZW5kR3JvdXAsYj10aGlzLmNoYXJ0LmF4aXNPZmZzZXRbdGhpcy5zaWRlXTtpZihhKXt0aGlzLmF4aXNQYXJlbnQ9YTttLnByb3RvdHlwZS5nZXRPZmZzZXQuY2FsbCh0aGlzKTtpZighdGhpcy5hZGRlZCl0aGlzLmFkZGVkPSEwLHRoaXMubGFiZWxMZWZ0PTAsdGhpcy5sYWJlbFJpZ2h0PXRoaXMud2lkdGg7dGhpcy5jaGFydC5heGlzT2Zmc2V0W3RoaXMuc2lkZV09Yn19LHNldExlZ2VuZENvbG9yOmZ1bmN0aW9uKCl7dmFyIGEsYj10aGlzLm9wdGlvbnMsYz10aGlzLnJldmVyc2VkO2E9Yz8xOjA7Yz1jPzA6MTthPXRoaXMuaG9yaXo/W2EsMCxjLDBdOlswLGMsMCxhXTt0aGlzLmxlZ2VuZENvbG9yPXtsaW5lYXJHcmFkaWVudDp7eDE6YVswXSx5MTphWzFdLHgyOmFbMl0seTI6YVszXX0sCnN0b3BzOmIuc3RvcHN8fFtbMCxiLm1pbkNvbG9yXSxbMSxiLm1heENvbG9yXV19fSxkcmF3TGVnZW5kU3ltYm9sOmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5wYWRkaW5nLGY9YS5vcHRpb25zLGU9dGhpcy5ob3JpeixkPWsoZi5zeW1ib2xXaWR0aCxlPzIwMDoxMiksZz1rKGYuc3ltYm9sSGVpZ2h0LGU/MTI6MjAwKSxoPWsoZi5sYWJlbFBhZGRpbmcsZT8xNjozMCksZj1rKGYuaXRlbURpc3RhbmNlLDEwKTt0aGlzLnNldExlZ2VuZENvbG9yKCk7Yi5sZWdlbmRTeW1ib2w9dGhpcy5jaGFydC5yZW5kZXJlci5yZWN0KDAsYS5iYXNlbGluZS0xMSxkLGcpLmF0dHIoe3pJbmRleDoxfSkuYWRkKGIubGVnZW5kR3JvdXApO3RoaXMubGVnZW5kSXRlbVdpZHRoPWQrYysoZT9mOmgpO3RoaXMubGVnZW5kSXRlbUhlaWdodD1nK2MrKGU/aDowKX0sc2V0U3RhdGU6bix2aXNpYmxlOiEwLHNldFZpc2libGU6bixnZXRTZXJpZXNFeHRyZW1lczpmdW5jdGlvbigpe3ZhciBhO2lmKHRoaXMuc2VyaWVzLmxlbmd0aClhPQp0aGlzLnNlcmllc1swXSx0aGlzLmRhdGFNaW49YS52YWx1ZU1pbix0aGlzLmRhdGFNYXg9YS52YWx1ZU1heH0sZHJhd0Nyb3NzaGFpcjpmdW5jdGlvbihhLGIpe3ZhciBjPWImJmIucGxvdFgsZj1iJiZiLnBsb3RZLGUsZD10aGlzLnBvcyxnPXRoaXMubGVuO2lmKGIpZT10aGlzLnRvUGl4ZWxzKGJbYi5zZXJpZXMuY29sb3JLZXldKSxlPGQ/ZT1kLTI6ZT5kK2cmJihlPWQrZysyKSxiLnBsb3RYPWUsYi5wbG90WT10aGlzLmxlbi1lLG0ucHJvdG90eXBlLmRyYXdDcm9zc2hhaXIuY2FsbCh0aGlzLGEsYiksYi5wbG90WD1jLGIucGxvdFk9Zix0aGlzLmNyb3NzJiZ0aGlzLmNyb3NzLmF0dHIoe2ZpbGw6dGhpcy5jcm9zc2hhaXIuY29sb3J9KS5hZGQodGhpcy5sZWdlbmRHcm91cCl9LGdldFBsb3RMaW5lUGF0aDpmdW5jdGlvbihhLGIsYyxmLGUpe3JldHVybiB0eXBlb2YgZT09PSJudW1iZXIiP3RoaXMuaG9yaXo/WyJNIixlLTQsdGhpcy50b3AtNiwiTCIsZSs0LHRoaXMudG9wLTYsZSwKdGhpcy50b3AsIloiXTpbIk0iLHRoaXMubGVmdCxlLCJMIix0aGlzLmxlZnQtNixlKzYsdGhpcy5sZWZ0LTYsZS02LCJaIl06bS5wcm90b3R5cGUuZ2V0UGxvdExpbmVQYXRoLmNhbGwodGhpcyxhLGIsYyxmKX0sdXBkYXRlOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jaGFydCxmPWMubGVnZW5kO2godGhpcy5zZXJpZXMsZnVuY3Rpb24oYSl7YS5pc0RpcnR5RGF0YT0hMH0pO2lmKGEuZGF0YUNsYXNzZXMmJmYuYWxsSXRlbXMpaChmLmFsbEl0ZW1zLGZ1bmN0aW9uKGEpe2EuaXNEYXRhQ2xhc3MmJmEubGVnZW5kR3JvdXAuZGVzdHJveSgpfSksYy5pc0RpcnR5TGVnZW5kPSEwO2Mub3B0aW9uc1t0aGlzLmNvbGxdPWoodGhpcy51c2VyT3B0aW9ucyxhKTttLnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzLGEsYik7dGhpcy5sZWdlbmRJdGVtJiYodGhpcy5zZXRMZWdlbmRDb2xvcigpLGYuY29sb3JpemVJdGVtKHRoaXMsITApKX0sZ2V0RGF0YUNsYXNzTGVnZW5kU3ltYm9sczpmdW5jdGlvbigpe3ZhciBhPQp0aGlzLGI9dGhpcy5jaGFydCxjPXRoaXMubGVnZW5kSXRlbXMsZj1iLm9wdGlvbnMubGVnZW5kLGU9Zi52YWx1ZURlY2ltYWxzLGw9Zi52YWx1ZVN1ZmZpeHx8IiIsZztjLmxlbmd0aHx8aCh0aGlzLmRhdGFDbGFzc2VzLGZ1bmN0aW9uKGYsbSl7dmFyIGk9ITAsaj1mLmZyb20saz1mLnRvO2c9IiI7aj09PXZvaWQgMD9nPSI8ICI6az09PXZvaWQgMCYmKGc9Ij4gIik7aiE9PXZvaWQgMCYmKGcrPWQubnVtYmVyRm9ybWF0KGosZSkrbCk7aiE9PXZvaWQgMCYmayE9PXZvaWQgMCYmKGcrPSIgLSAiKTtrIT09dm9pZCAwJiYoZys9ZC5udW1iZXJGb3JtYXQoayxlKStsKTtjLnB1c2gocih7Y2hhcnQ6YixuYW1lOmcsb3B0aW9uczp7fSxkcmF3TGVnZW5kU3ltYm9sOnMuZHJhd1JlY3RhbmdsZSx2aXNpYmxlOiEwLHNldFN0YXRlOm4saXNEYXRhQ2xhc3M6ITAsc2V0VmlzaWJsZTpmdW5jdGlvbigpe2k9dGhpcy52aXNpYmxlPSFpO2goYS5zZXJpZXMsZnVuY3Rpb24oYSl7aChhLnBvaW50cywKZnVuY3Rpb24oYSl7YS5kYXRhQ2xhc3M9PT1tJiZhLnNldFZpc2libGUoaSl9KX0pO2IubGVnZW5kLmNvbG9yaXplSXRlbSh0aGlzLGkpfX0sZikpfSk7cmV0dXJuIGN9LG5hbWU6IiJ9KTtoKFsiZmlsbCIsInN0cm9rZSJdLGZ1bmN0aW9uKGEpe2QuRngucHJvdG90eXBlW2ErIlNldHRlciJdPWZ1bmN0aW9uKCl7dGhpcy5lbGVtLmF0dHIoYSxwLnByb3RvdHlwZS50d2VlbkNvbG9ycyhpKHRoaXMuc3RhcnQpLGkodGhpcy5lbmQpLHRoaXMucG9zKSl9fSk7dyhxLnByb3RvdHlwZSwiZ2V0QXhlcyIsZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5vcHRpb25zLmNvbG9yQXhpczthLmNhbGwodGhpcyk7dGhpcy5jb2xvckF4aXM9W107YiYmbmV3IHAodGhpcyxiKX0pO3coeC5wcm90b3R5cGUsImdldEFsbEl0ZW1zIixmdW5jdGlvbihhKXt2YXIgYj1bXSxjPXRoaXMuY2hhcnQuY29sb3JBeGlzWzBdO2MmJihjLm9wdGlvbnMuZGF0YUNsYXNzZXM/Yj1iLmNvbmNhdChjLmdldERhdGFDbGFzc0xlZ2VuZFN5bWJvbHMoKSk6CmIucHVzaChjKSxoKGMuc2VyaWVzLGZ1bmN0aW9uKGEpe2Eub3B0aW9ucy5zaG93SW5MZWdlbmQ9ITF9KSk7cmV0dXJuIGIuY29uY2F0KGEuY2FsbCh0aGlzKSl9KTtxPXtwb2ludEF0dHJUb09wdGlvbnM6e3N0cm9rZToiYm9yZGVyQ29sb3IiLCJzdHJva2Utd2lkdGgiOiJib3JkZXJXaWR0aCIsZmlsbDoiY29sb3IiLGRhc2hzdHlsZToiZGFzaFN0eWxlIn0scG9pbnRBcnJheU1hcDpbInZhbHVlIl0sYXhpc1R5cGVzOlsieEF4aXMiLCJ5QXhpcyIsImNvbG9yQXhpcyJdLG9wdGlvbmFsQXhpczoiY29sb3JBeGlzIix0cmFja2VyR3JvdXBzOlsiZ3JvdXAiLCJtYXJrZXJHcm91cCIsImRhdGFMYWJlbHNHcm91cCJdLGdldFN5bWJvbDpuLHBhcmFsbGVsQXJyYXlzOlsieCIsInkiLCJ2YWx1ZSJdLGNvbG9yS2V5OiJ2YWx1ZSIsdHJhbnNsYXRlQ29sb3JzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPXRoaXMub3B0aW9ucy5udWxsQ29sb3IsYz10aGlzLmNvbG9yQXhpcyxmPXRoaXMuY29sb3JLZXk7CmgodGhpcy5kYXRhLGZ1bmN0aW9uKGUpe3ZhciBkPWVbZl07aWYoZD1lLm9wdGlvbnMuY29sb3J8fChkPT09bnVsbD9iOmMmJmQhPT12b2lkIDA/Yy50b0NvbG9yKGQsZSk6ZS5jb2xvcnx8YS5jb2xvcikpZS5jb2xvcj1kfSl9fTt1LnBsb3RPcHRpb25zLmhlYXRtYXA9aih1LnBsb3RPcHRpb25zLnNjYXR0ZXIse2FuaW1hdGlvbjohMSxib3JkZXJXaWR0aDowLG51bGxDb2xvcjoiI0Y4RjhGOCIsZGF0YUxhYmVsczp7Zm9ybWF0dGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucG9pbnQudmFsdWV9LGluc2lkZTohMCx2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLGNyb3A6ITEsb3ZlcmZsb3c6ITEscGFkZGluZzowfSxtYXJrZXI6bnVsbCxwb2ludFJhbmdlOm51bGwsdG9vbHRpcDp7cG9pbnRGb3JtYXQ6Intwb2ludC54fSwge3BvaW50Lnl9OiB7cG9pbnQudmFsdWV9PGJyLz4ifSxzdGF0ZXM6e25vcm1hbDp7YW5pbWF0aW9uOiEwfSxob3Zlcjp7aGFsbzohMSxicmlnaHRuZXNzOjAuMn19fSk7Cm8uaGVhdG1hcD12KG8uc2NhdHRlcixqKHEse3R5cGU6ImhlYXRtYXAiLHBvaW50QXJyYXlNYXA6WyJ5IiwidmFsdWUiXSxoYXNQb2ludFNwZWNpZmljT3B0aW9uczohMCxwb2ludENsYXNzOnYoeSx7c2V0VmlzaWJsZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9YT8ic2hvdyI6ImhpZGUiO2goWyJncmFwaGljIiwiZGF0YUxhYmVsIl0sZnVuY3Rpb24oYSl7aWYoYlthXSliW2FdW2NdKCl9KX19KSxzdXBwb3J0c0RyaWxsZG93bjohMCxnZXRFeHRyZW1lc0Zyb21BbGw6ITAsZGlyZWN0VG91Y2g6ITAsaW5pdDpmdW5jdGlvbigpe3ZhciBhO28uc2NhdHRlci5wcm90b3R5cGUuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7YT10aGlzLm9wdGlvbnM7YS5wb2ludFJhbmdlPWsoYS5wb2ludFJhbmdlLGEuY29sc2l6ZXx8MSk7dGhpcy55QXhpcy5heGlzUG9pbnRSYW5nZT1hLnJvd3NpemV8fDF9LHRyYW5zbGF0ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucyxiPXRoaXMueEF4aXMsCmM9dGhpcy55QXhpcyxmPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoYixhKSxjKX07dGhpcy5nZW5lcmF0ZVBvaW50cygpO2godGhpcy5wb2ludHMsZnVuY3Rpb24oZSl7dmFyIGQ9KGEuY29sc2l6ZXx8MSkvMixnPShhLnJvd3NpemV8fDEpLzIsaD1mKE1hdGgucm91bmQoYi5sZW4tYi50cmFuc2xhdGUoZS54LWQsMCwxLDAsMSkpLDAsYi5sZW4pLGQ9ZihNYXRoLnJvdW5kKGIubGVuLWIudHJhbnNsYXRlKGUueCtkLDAsMSwwLDEpKSwwLGIubGVuKSxpPWYoTWF0aC5yb3VuZChjLnRyYW5zbGF0ZShlLnktZywwLDEsMCwxKSksMCxjLmxlbiksZz1mKE1hdGgucm91bmQoYy50cmFuc2xhdGUoZS55K2csMCwxLDAsMSkpLDAsYy5sZW4pO2UucGxvdFg9ZS5jbGllbnRYPShoK2QpLzI7ZS5wbG90WT0oaStnKS8yO2Uuc2hhcGVUeXBlPSJyZWN0IjtlLnNoYXBlQXJncz17eDpNYXRoLm1pbihoLGQpLHk6TWF0aC5taW4oaSxnKSx3aWR0aDpNYXRoLmFicyhkLWgpLApoZWlnaHQ6TWF0aC5hYnMoZy1pKX19KTt0aGlzLnRyYW5zbGF0ZUNvbG9ycygpO3RoaXMuY2hhcnQuaGFzUmVuZGVyZWQmJmgodGhpcy5wb2ludHMsZnVuY3Rpb24oYSl7YS5zaGFwZUFyZ3MuZmlsbD1hLm9wdGlvbnMuY29sb3J8fGEuY29sb3J9KX0sZHJhd1BvaW50czpvLmNvbHVtbi5wcm90b3R5cGUuZHJhd1BvaW50cyxhbmltYXRlOm4sZ2V0Qm94Om4sZHJhd0xlZ2VuZFN5bWJvbDpzLmRyYXdSZWN0YW5nbGUsZ2V0RXh0cmVtZXM6ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5nZXRFeHRyZW1lcy5jYWxsKHRoaXMsdGhpcy52YWx1ZURhdGEpO3RoaXMudmFsdWVNaW49dGhpcy5kYXRhTWluO3RoaXMudmFsdWVNYXg9dGhpcy5kYXRhTWF4O3QucHJvdG90eXBlLmdldEV4dHJlbWVzLmNhbGwodGhpcyl9fSkpfSk7Cg=="></script> <script src="data:application/x-javascript;base64,LyoKIEhpZ2htYXBzIEpTIHY0LjIuMyAoMjAxNi0wMi0wOCkKIEhpZ2htYXBzIGFzIGEgcGx1Z2luIGZvciBIaWdoY2hhcnRzIDQuMS54IG9yIEhpZ2hzdG9jayAyLjEueCAoeCBiZWluZyB0aGUgcGF0Y2ggdmVyc2lvbiBvZiB0aGlzIGZpbGUpCgogKGMpIDIwMTEtMjAxNiBUb3JzdGVpbiBIb25zaQoKIExpY2Vuc2U6IHd3dy5oaWdoY2hhcnRzLmNvbS9saWNlbnNlCiovCihmdW5jdGlvbihpKXt0eXBlb2YgbW9kdWxlPT09Im9iamVjdCImJm1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPWk6aShIaWdoY2hhcnRzKX0pKGZ1bmN0aW9uKGkpe2Z1bmN0aW9uIEsoYSxiKXt2YXIgYyxkLGUsZixnPSExLGg9YS54LGo9YS55O2ZvcihjPTAsZD1iLmxlbmd0aC0xO2M8Yi5sZW5ndGg7ZD1jKyspZT1iW2NdWzFdPmosZj1iW2RdWzFdPmosZSE9PWYmJmg8KGJbZF1bMF0tYltjXVswXSkqKGotYltjXVsxXSkvKGJbZF1bMV0tYltjXVsxXSkrYltjXVswXSYmKGc9IWcpO3JldHVybiBnfWZ1bmN0aW9uIEwoYSxiLGMsZCxlLGYsZyxoKXtyZXR1cm5bIk0iLGErZSxiLCJMIixhK2MtZixiLCJDIixhK2MtZi8yLGIsYStjLGIrZi8yLGErYyxiK2YsIkwiLGErYyxiK2QtZywiQyIsYStjLGIrZC1nLzIsYStjLWcvMixiK2QsYStjLWcsYitkLCJMIixhK2gsYitkLCJDIixhK2gvMixiK2QsYSxiK2QtaC8yLGEsYitkLWgsIkwiLGEsYitlLCJDIixhLGIrZS8yLGErZS8yLApiLGErZSxiLCJaIl19dmFyIHA9aS5BeGlzLHE9aS5DaGFydCx4PWkuQ29sb3IsdD1pLlBvaW50LEc9aS5Qb2ludGVyLEQ9aS5MZWdlbmQsSD1pLkxlZ2VuZFN5bWJvbE1peGluLFI9aS5SZW5kZXJlcix5PWkuU2VyaWVzLEk9aS5TVkdSZW5kZXJlcixNPWkuVk1MUmVuZGVyZXIsQT1pLndpbixOPUEuZG9jdW1lbnQsSj1pLmFkZEV2ZW50LGs9aS5lYWNoLEU9aS5lcnJvcixvPWkuZXh0ZW5kLHU9aS5leHRlbmRDbGFzcyxPPWkuZm9ybWF0LG49aS5tZXJnZSxsPWkucGljayxCPWkuZ2V0T3B0aW9ucygpLG09aS5zZXJpZXNUeXBlcyx3PUIucGxvdE9wdGlvbnMsdj1pLndyYXAscz1mdW5jdGlvbigpe307dihwLnByb3RvdHlwZSwiZ2V0U2VyaWVzRXh0cmVtZXMiLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuaXNYQXhpcyxjLGQsZT1bXSxmO2ImJmsodGhpcy5zZXJpZXMsZnVuY3Rpb24oYSxiKXtpZihhLnVzZU1hcEdlb21ldHJ5KWVbYl09YS54RGF0YSxhLnhEYXRhPVtdfSk7YS5jYWxsKHRoaXMpOwppZihiJiYoYz1sKHRoaXMuZGF0YU1pbixOdW1iZXIuTUFYX1ZBTFVFKSxkPWwodGhpcy5kYXRhTWF4LC1OdW1iZXIuTUFYX1ZBTFVFKSxrKHRoaXMuc2VyaWVzLGZ1bmN0aW9uKGEsYil7aWYoYS51c2VNYXBHZW9tZXRyeSljPU1hdGgubWluKGMsbChhLm1pblgsYykpLGQ9TWF0aC5tYXgoZCxsKGEubWF4WCxjKSksYS54RGF0YT1lW2JdLGY9ITB9KSxmKSl0aGlzLmRhdGFNaW49Yyx0aGlzLmRhdGFNYXg9ZH0pO3YocC5wcm90b3R5cGUsInNldEF4aXNUcmFuc2xhdGlvbiIsZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5jaGFydCxjPWIucGxvdFdpZHRoL2IucGxvdEhlaWdodCxiPWIueEF4aXNbMF0sZDthLmNhbGwodGhpcyk7dGhpcy5jb2xsPT09InlBeGlzIiYmYi50cmFuc0EhPT12b2lkIDAmJmsodGhpcy5zZXJpZXMsZnVuY3Rpb24oYSl7YS5wcmVzZXJ2ZUFzcGVjdFJhdGlvJiYoZD0hMCl9KTtpZihkJiYodGhpcy50cmFuc0E9Yi50cmFuc0E9TWF0aC5taW4odGhpcy50cmFuc0EsYi50cmFuc0EpLAphPWMvKChiLm1heC1iLm1pbikvKHRoaXMubWF4LXRoaXMubWluKSksYT1hPDE/dGhpczpiLGM9KGEubWF4LWEubWluKSphLnRyYW5zQSxhLnBpeGVsUGFkZGluZz1hLmxlbi1jLGEubWluUGl4ZWxQYWRkaW5nPWEucGl4ZWxQYWRkaW5nLzIsYz1hLmZpeFRvKSl7Yz1jWzFdLWEudG9WYWx1ZShjWzBdLCEwKTtjKj1hLnRyYW5zQTtpZihNYXRoLmFicyhjKT5hLm1pblBpeGVsUGFkZGluZ3x8YS5taW49PT1hLmRhdGFNaW4mJmEubWF4PT09YS5kYXRhTWF4KWM9MDthLm1pblBpeGVsUGFkZGluZy09Y319KTt2KHAucHJvdG90eXBlLCJyZW5kZXIiLGZ1bmN0aW9uKGEpe2EuY2FsbCh0aGlzKTt0aGlzLmZpeFRvPW51bGx9KTt2YXIgQz1pLkNvbG9yQXhpcz1mdW5jdGlvbigpe3RoaXMuaXNDb2xvckF4aXM9ITA7dGhpcy5pbml0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07byhDLnByb3RvdHlwZSxwLnByb3RvdHlwZSk7byhDLnByb3RvdHlwZSx7ZGVmYXVsdENvbG9yQXhpc09wdGlvbnM6e2xpbmVXaWR0aDowLAptaW5QYWRkaW5nOjAsbWF4UGFkZGluZzowLGdyaWRMaW5lV2lkdGg6MSx0aWNrUGl4ZWxJbnRlcnZhbDo3MixzdGFydE9uVGljazohMCxlbmRPblRpY2s6ITAsb2Zmc2V0OjAsbWFya2VyOnthbmltYXRpb246e2R1cmF0aW9uOjUwfSxjb2xvcjoiZ3JheSIsd2lkdGg6MC4wMX0sbGFiZWxzOntvdmVyZmxvdzoianVzdGlmeSJ9LG1pbkNvbG9yOiIjRUZFRkZGIixtYXhDb2xvcjoiIzAwMzg3NSIsdGlja0xlbmd0aDo1fSxpbml0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5vcHRpb25zLmxlZ2VuZC5sYXlvdXQhPT0idmVydGljYWwiLGQ7ZD1uKHRoaXMuZGVmYXVsdENvbG9yQXhpc09wdGlvbnMse3NpZGU6Yz8yOjEscmV2ZXJzZWQ6IWN9LGIse29wcG9zaXRlOiFjLHNob3dFbXB0eTohMSx0aXRsZTpudWxsLGlzQ29sb3I6ITB9KTtwLnByb3RvdHlwZS5pbml0LmNhbGwodGhpcyxhLGQpO2IuZGF0YUNsYXNzZXMmJnRoaXMuaW5pdERhdGFDbGFzc2VzKGIpO3RoaXMuaW5pdFN0b3BzKGIpO3RoaXMuaG9yaXo9CmM7dGhpcy56b29tRW5hYmxlZD0hMX0sdHdlZW5Db2xvcnM6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkOyFiLnJnYmEubGVuZ3RofHwhYS5yZ2JhLmxlbmd0aD9hPWIuaW5wdXR8fCJub25lIjooYT1hLnJnYmEsYj1iLnJnYmEsZD1iWzNdIT09MXx8YVszXSE9PTEsYT0oZD8icmdiYSgiOiJyZ2IoIikrTWF0aC5yb3VuZChiWzBdKyhhWzBdLWJbMF0pKigxLWMpKSsiLCIrTWF0aC5yb3VuZChiWzFdKyhhWzFdLWJbMV0pKigxLWMpKSsiLCIrTWF0aC5yb3VuZChiWzJdKyhhWzJdLWJbMl0pKigxLWMpKSsoZD8iLCIrKGJbM10rKGFbM10tYlszXSkqKDEtYykpOiIiKSsiKSIpO3JldHVybiBhfSxpbml0RGF0YUNsYXNzZXM6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPXRoaXMuY2hhcnQsZCxlPTAsZj10aGlzLm9wdGlvbnMsZz1hLmRhdGFDbGFzc2VzLmxlbmd0aDt0aGlzLmRhdGFDbGFzc2VzPWQ9W107dGhpcy5sZWdlbmRJdGVtcz1bXTtrKGEuZGF0YUNsYXNzZXMsZnVuY3Rpb24oYSxqKXt2YXIgciwKYT1uKGEpO2QucHVzaChhKTtpZighYS5jb2xvcilmLmRhdGFDbGFzc0NvbG9yPT09ImNhdGVnb3J5Ij8ocj1jLm9wdGlvbnMuY29sb3JzLGEuY29sb3I9cltlKytdLGU9PT1yLmxlbmd0aCYmKGU9MCkpOmEuY29sb3I9Yi50d2VlbkNvbG9ycyh4KGYubWluQ29sb3IpLHgoZi5tYXhDb2xvciksZzwyPzAuNTpqLyhnLTEpKX0pfSxpbml0U3RvcHM6ZnVuY3Rpb24oYSl7dGhpcy5zdG9wcz1hLnN0b3BzfHxbWzAsdGhpcy5vcHRpb25zLm1pbkNvbG9yXSxbMSx0aGlzLm9wdGlvbnMubWF4Q29sb3JdXTtrKHRoaXMuc3RvcHMsZnVuY3Rpb24oYSl7YS5jb2xvcj14KGFbMV0pfSl9LHNldE9wdGlvbnM6ZnVuY3Rpb24oYSl7cC5wcm90b3R5cGUuc2V0T3B0aW9ucy5jYWxsKHRoaXMsYSk7dGhpcy5vcHRpb25zLmNyb3NzaGFpcj10aGlzLm9wdGlvbnMubWFya2VyO3RoaXMuY29sbD0iY29sb3JBeGlzIn0sc2V0QXhpc1NpemU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmxlZ2VuZFN5bWJvbCxiPXRoaXMuY2hhcnQsCmMsZCxlO2lmKGEpdGhpcy5sZWZ0PWM9YS5hdHRyKCJ4IiksdGhpcy50b3A9ZD1hLmF0dHIoInkiKSx0aGlzLndpZHRoPWU9YS5hdHRyKCJ3aWR0aCIpLHRoaXMuaGVpZ2h0PWE9YS5hdHRyKCJoZWlnaHQiKSx0aGlzLnJpZ2h0PWIuY2hhcnRXaWR0aC1jLWUsdGhpcy5ib3R0b209Yi5jaGFydEhlaWdodC1kLWEsdGhpcy5sZW49dGhpcy5ob3Jpej9lOmEsdGhpcy5wb3M9dGhpcy5ob3Jpej9jOmR9LHRvQ29sb3I6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPXRoaXMuc3RvcHMsZSxmPXRoaXMuZGF0YUNsYXNzZXMsZyxoO2lmKGYpZm9yKGg9Zi5sZW5ndGg7aC0tOyl7aWYoZz1mW2hdLGU9Zy5mcm9tLGQ9Zy50bywoZT09PXZvaWQgMHx8YT49ZSkmJihkPT09dm9pZCAwfHxhPD1kKSl7Yz1nLmNvbG9yO2lmKGIpYi5kYXRhQ2xhc3M9aDticmVha319ZWxzZXt0aGlzLmlzTG9nJiYoYT10aGlzLnZhbDJsaW4oYSkpO2M9MS0odGhpcy5tYXgtYSkvKHRoaXMubWF4LXRoaXMubWlufHwxKTtmb3IoaD0KZC5sZW5ndGg7aC0tOylpZihjPmRbaF1bMF0pYnJlYWs7ZT1kW2hdfHxkW2grMV07ZD1kW2grMV18fGU7Yz0xLShkWzBdLWMpLyhkWzBdLWVbMF18fDEpO2M9dGhpcy50d2VlbkNvbG9ycyhlLmNvbG9yLGQuY29sb3IsYyl9cmV0dXJuIGN9LGdldE9mZnNldDpmdW5jdGlvbigpe3ZhciBhPXRoaXMubGVnZW5kR3JvdXAsYj10aGlzLmNoYXJ0LmF4aXNPZmZzZXRbdGhpcy5zaWRlXTtpZihhKXt0aGlzLmF4aXNQYXJlbnQ9YTtwLnByb3RvdHlwZS5nZXRPZmZzZXQuY2FsbCh0aGlzKTtpZighdGhpcy5hZGRlZCl0aGlzLmFkZGVkPSEwLHRoaXMubGFiZWxMZWZ0PTAsdGhpcy5sYWJlbFJpZ2h0PXRoaXMud2lkdGg7dGhpcy5jaGFydC5heGlzT2Zmc2V0W3RoaXMuc2lkZV09Yn19LHNldExlZ2VuZENvbG9yOmZ1bmN0aW9uKCl7dmFyIGEsYj10aGlzLm9wdGlvbnMsYz10aGlzLnJldmVyc2VkO2E9Yz8xOjA7Yz1jPzA6MTthPXRoaXMuaG9yaXo/W2EsMCxjLDBdOlswLGMsMCxhXTt0aGlzLmxlZ2VuZENvbG9yPQp7bGluZWFyR3JhZGllbnQ6e3gxOmFbMF0seTE6YVsxXSx4MjphWzJdLHkyOmFbM119LHN0b3BzOmIuc3RvcHN8fFtbMCxiLm1pbkNvbG9yXSxbMSxiLm1heENvbG9yXV19fSxkcmF3TGVnZW5kU3ltYm9sOmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5wYWRkaW5nLGQ9YS5vcHRpb25zLGU9dGhpcy5ob3JpeixmPWwoZC5zeW1ib2xXaWR0aCxlPzIwMDoxMiksZz1sKGQuc3ltYm9sSGVpZ2h0LGU/MTI6MjAwKSxoPWwoZC5sYWJlbFBhZGRpbmcsZT8xNjozMCksZD1sKGQuaXRlbURpc3RhbmNlLDEwKTt0aGlzLnNldExlZ2VuZENvbG9yKCk7Yi5sZWdlbmRTeW1ib2w9dGhpcy5jaGFydC5yZW5kZXJlci5yZWN0KDAsYS5iYXNlbGluZS0xMSxmLGcpLmF0dHIoe3pJbmRleDoxfSkuYWRkKGIubGVnZW5kR3JvdXApO3RoaXMubGVnZW5kSXRlbVdpZHRoPWYrYysoZT9kOmgpO3RoaXMubGVnZW5kSXRlbUhlaWdodD1nK2MrKGU/aDowKX0sc2V0U3RhdGU6cyx2aXNpYmxlOiEwLHNldFZpc2libGU6cywKZ2V0U2VyaWVzRXh0cmVtZXM6ZnVuY3Rpb24oKXt2YXIgYTtpZih0aGlzLnNlcmllcy5sZW5ndGgpYT10aGlzLnNlcmllc1swXSx0aGlzLmRhdGFNaW49YS52YWx1ZU1pbix0aGlzLmRhdGFNYXg9YS52YWx1ZU1heH0sZHJhd0Nyb3NzaGFpcjpmdW5jdGlvbihhLGIpe3ZhciBjPWImJmIucGxvdFgsZD1iJiZiLnBsb3RZLGUsZj10aGlzLnBvcyxnPXRoaXMubGVuO2lmKGIpZT10aGlzLnRvUGl4ZWxzKGJbYi5zZXJpZXMuY29sb3JLZXldKSxlPGY/ZT1mLTI6ZT5mK2cmJihlPWYrZysyKSxiLnBsb3RYPWUsYi5wbG90WT10aGlzLmxlbi1lLHAucHJvdG90eXBlLmRyYXdDcm9zc2hhaXIuY2FsbCh0aGlzLGEsYiksYi5wbG90WD1jLGIucGxvdFk9ZCx0aGlzLmNyb3NzJiZ0aGlzLmNyb3NzLmF0dHIoe2ZpbGw6dGhpcy5jcm9zc2hhaXIuY29sb3J9KS5hZGQodGhpcy5sZWdlbmRHcm91cCl9LGdldFBsb3RMaW5lUGF0aDpmdW5jdGlvbihhLGIsYyxkLGUpe3JldHVybiB0eXBlb2YgZT09PSJudW1iZXIiPwp0aGlzLmhvcml6P1siTSIsZS00LHRoaXMudG9wLTYsIkwiLGUrNCx0aGlzLnRvcC02LGUsdGhpcy50b3AsIloiXTpbIk0iLHRoaXMubGVmdCxlLCJMIix0aGlzLmxlZnQtNixlKzYsdGhpcy5sZWZ0LTYsZS02LCJaIl06cC5wcm90b3R5cGUuZ2V0UGxvdExpbmVQYXRoLmNhbGwodGhpcyxhLGIsYyxkKX0sdXBkYXRlOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jaGFydCxkPWMubGVnZW5kO2sodGhpcy5zZXJpZXMsZnVuY3Rpb24oYSl7YS5pc0RpcnR5RGF0YT0hMH0pO2lmKGEuZGF0YUNsYXNzZXMmJmQuYWxsSXRlbXMpayhkLmFsbEl0ZW1zLGZ1bmN0aW9uKGEpe2EuaXNEYXRhQ2xhc3MmJmEubGVnZW5kR3JvdXAuZGVzdHJveSgpfSksYy5pc0RpcnR5TGVnZW5kPSEwO2Mub3B0aW9uc1t0aGlzLmNvbGxdPW4odGhpcy51c2VyT3B0aW9ucyxhKTtwLnByb3RvdHlwZS51cGRhdGUuY2FsbCh0aGlzLGEsYik7dGhpcy5sZWdlbmRJdGVtJiYodGhpcy5zZXRMZWdlbmRDb2xvcigpLGQuY29sb3JpemVJdGVtKHRoaXMsCiEwKSl9LGdldERhdGFDbGFzc0xlZ2VuZFN5bWJvbHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9dGhpcy5jaGFydCxjPXRoaXMubGVnZW5kSXRlbXMsZD1iLm9wdGlvbnMubGVnZW5kLGU9ZC52YWx1ZURlY2ltYWxzLGY9ZC52YWx1ZVN1ZmZpeHx8IiIsZztjLmxlbmd0aHx8ayh0aGlzLmRhdGFDbGFzc2VzLGZ1bmN0aW9uKGQsail7dmFyIHI9ITAsej1kLmZyb20sbD1kLnRvO2c9IiI7ej09PXZvaWQgMD9nPSI8ICI6bD09PXZvaWQgMCYmKGc9Ij4gIik7eiE9PXZvaWQgMCYmKGcrPWkubnVtYmVyRm9ybWF0KHosZSkrZik7eiE9PXZvaWQgMCYmbCE9PXZvaWQgMCYmKGcrPSIgLSAiKTtsIT09dm9pZCAwJiYoZys9aS5udW1iZXJGb3JtYXQobCxlKStmKTtjLnB1c2gobyh7Y2hhcnQ6YixuYW1lOmcsb3B0aW9uczp7fSxkcmF3TGVnZW5kU3ltYm9sOkguZHJhd1JlY3RhbmdsZSx2aXNpYmxlOiEwLHNldFN0YXRlOnMsaXNEYXRhQ2xhc3M6ITAsc2V0VmlzaWJsZTpmdW5jdGlvbigpe3I9dGhpcy52aXNpYmxlPQohcjtrKGEuc2VyaWVzLGZ1bmN0aW9uKGEpe2soYS5wb2ludHMsZnVuY3Rpb24oYSl7YS5kYXRhQ2xhc3M9PT1qJiZhLnNldFZpc2libGUocil9KX0pO2IubGVnZW5kLmNvbG9yaXplSXRlbSh0aGlzLHIpfX0sZCkpfSk7cmV0dXJuIGN9LG5hbWU6IiJ9KTtrKFsiZmlsbCIsInN0cm9rZSJdLGZ1bmN0aW9uKGEpe2kuRngucHJvdG90eXBlW2ErIlNldHRlciJdPWZ1bmN0aW9uKCl7dGhpcy5lbGVtLmF0dHIoYSxDLnByb3RvdHlwZS50d2VlbkNvbG9ycyh4KHRoaXMuc3RhcnQpLHgodGhpcy5lbmQpLHRoaXMucG9zKSl9fSk7dihxLnByb3RvdHlwZSwiZ2V0QXhlcyIsZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5vcHRpb25zLmNvbG9yQXhpczthLmNhbGwodGhpcyk7dGhpcy5jb2xvckF4aXM9W107YiYmbmV3IEModGhpcyxiKX0pO3YoRC5wcm90b3R5cGUsImdldEFsbEl0ZW1zIixmdW5jdGlvbihhKXt2YXIgYj1bXSxjPXRoaXMuY2hhcnQuY29sb3JBeGlzWzBdO2MmJihjLm9wdGlvbnMuZGF0YUNsYXNzZXM/CmI9Yi5jb25jYXQoYy5nZXREYXRhQ2xhc3NMZWdlbmRTeW1ib2xzKCkpOmIucHVzaChjKSxrKGMuc2VyaWVzLGZ1bmN0aW9uKGEpe2Eub3B0aW9ucy5zaG93SW5MZWdlbmQ9ITF9KSk7cmV0dXJuIGIuY29uY2F0KGEuY2FsbCh0aGlzKSl9KTt2YXIgRD17c2V0VmlzaWJsZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9YT8ic2hvdyI6ImhpZGUiO2soWyJncmFwaGljIiwiZGF0YUxhYmVsIl0sZnVuY3Rpb24oYSl7aWYoYlthXSliW2FdW2NdKCl9KX19LFA9e3BvaW50QXR0clRvT3B0aW9uczp7c3Ryb2tlOiJib3JkZXJDb2xvciIsInN0cm9rZS13aWR0aCI6ImJvcmRlcldpZHRoIixmaWxsOiJjb2xvciIsZGFzaHN0eWxlOiJkYXNoU3R5bGUifSxwb2ludEFycmF5TWFwOlsidmFsdWUiXSxheGlzVHlwZXM6WyJ4QXhpcyIsInlBeGlzIiwiY29sb3JBeGlzIl0sb3B0aW9uYWxBeGlzOiJjb2xvckF4aXMiLHRyYWNrZXJHcm91cHM6WyJncm91cCIsIm1hcmtlckdyb3VwIiwiZGF0YUxhYmVsc0dyb3VwIl0sCmdldFN5bWJvbDpzLHBhcmFsbGVsQXJyYXlzOlsieCIsInkiLCJ2YWx1ZSJdLGNvbG9yS2V5OiJ2YWx1ZSIsdHJhbnNsYXRlQ29sb3JzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPXRoaXMub3B0aW9ucy5udWxsQ29sb3IsYz10aGlzLmNvbG9yQXhpcyxkPXRoaXMuY29sb3JLZXk7ayh0aGlzLmRhdGEsZnVuY3Rpb24oZSl7dmFyIGY9ZVtkXTtpZihmPWUub3B0aW9ucy5jb2xvcnx8KGY9PT1udWxsP2I6YyYmZiE9PXZvaWQgMD9jLnRvQ29sb3IoZixlKTplLmNvbG9yfHxhLmNvbG9yKSllLmNvbG9yPWZ9KX19O28ocS5wcm90b3R5cGUse3JlbmRlck1hcE5hdmlnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9dGhpcy5vcHRpb25zLm1hcE5hdmlnYXRpb24sYz1iLmJ1dHRvbnMsZCxlLGYsZyxoPWZ1bmN0aW9uKGEpe2lmKGEpYS5wcmV2ZW50RGVmYXVsdCYmYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQcm9wYWdhdGlvbigpLGEuY2FuY2VsQnViYmxlPQohMH0saj1mdW5jdGlvbihiKXt0aGlzLmhhbmRsZXIuY2FsbChhLGIpO2goYil9O2lmKGwoYi5lbmFibGVCdXR0b25zLGIuZW5hYmxlZCkmJiFhLnJlbmRlcmVyLmZvckV4cG9ydClmb3IoZCBpbiBjKWlmKGMuaGFzT3duUHJvcGVydHkoZCkpZj1uKGIuYnV0dG9uT3B0aW9ucyxjW2RdKSxlPWYudGhlbWUsZS5zdHlsZT1uKGYudGhlbWUuc3R5bGUsZi5zdHlsZSksZz1lLnN0YXRlcyxlPWEucmVuZGVyZXIuYnV0dG9uKGYudGV4dCwwLDAsaixlLGcmJmcuaG92ZXIsZyYmZy5zZWxlY3QsMCxkPT09Inpvb21JbiI/InRvcGJ1dHRvbiI6ImJvdHRvbWJ1dHRvbiIpLmF0dHIoe3dpZHRoOmYud2lkdGgsaGVpZ2h0OmYuaGVpZ2h0LHRpdGxlOmEub3B0aW9ucy5sYW5nW2RdLHpJbmRleDo1fSkuYWRkKCksZS5oYW5kbGVyPWYub25jbGljayxlLmFsaWduKG8oZix7d2lkdGg6ZS53aWR0aCxoZWlnaHQ6MiplLmhlaWdodH0pLG51bGwsZi5hbGlnblRvKSxKKGUuZWxlbWVudCwiZGJsY2xpY2siLGgpfSwKZml0VG9Cb3g6ZnVuY3Rpb24oYSxiKXtrKFtbIngiLCJ3aWR0aCJdLFsieSIsImhlaWdodCJdXSxmdW5jdGlvbihjKXt2YXIgZD1jWzBdLGM9Y1sxXTthW2RdK2FbY10+YltkXStiW2NdJiYoYVtjXT5iW2NdPyhhW2NdPWJbY10sYVtkXT1iW2RdKTphW2RdPWJbZF0rYltjXS1hW2NdKTthW2NdPmJbY10mJihhW2NdPWJbY10pO2FbZF08YltkXSYmKGFbZF09YltkXSl9KTtyZXR1cm4gYX0sbWFwWm9vbTpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPXRoaXMueEF4aXNbMF0sZz1mLm1heC1mLm1pbixoPWwoYixmLm1pbitnLzIpLGo9ZyphLGc9dGhpcy55QXhpc1swXSxpPWcubWF4LWcubWluLHo9bChjLGcubWluK2kvMik7aSo9YTtoPXRoaXMuZml0VG9Cb3goe3g6aC1qKihkPyhkLWYucG9zKS9mLmxlbjowLjUpLHk6ei1pKihlPyhlLWcucG9zKS9nLmxlbjowLjUpLHdpZHRoOmosaGVpZ2h0Oml9LHt4OmYuZGF0YU1pbix5OmcuZGF0YU1pbix3aWR0aDpmLmRhdGFNYXgtZi5kYXRhTWluLApoZWlnaHQ6Zy5kYXRhTWF4LWcuZGF0YU1pbn0pO2lmKGQpZi5maXhUbz1bZC1mLnBvcyxiXTtpZihlKWcuZml4VG89W2UtZy5wb3MsY107YSE9PXZvaWQgMD8oZi5zZXRFeHRyZW1lcyhoLngsaC54K2gud2lkdGgsITEpLGcuc2V0RXh0cmVtZXMoaC55LGgueStoLmhlaWdodCwhMSkpOihmLnNldEV4dHJlbWVzKHZvaWQgMCx2b2lkIDAsITEpLGcuc2V0RXh0cmVtZXModm9pZCAwLHZvaWQgMCwhMSkpO3RoaXMucmVkcmF3KCl9fSk7dihxLnByb3RvdHlwZSwicmVuZGVyIixmdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9Yi5vcHRpb25zLm1hcE5hdmlnYXRpb247Yi5yZW5kZXJNYXBOYXZpZ2F0aW9uKCk7YS5jYWxsKGIpOyhsKGMuZW5hYmxlRG91YmxlQ2xpY2tab29tLGMuZW5hYmxlZCl8fGMuZW5hYmxlRG91YmxlQ2xpY2tab29tVG8pJiZKKGIuY29udGFpbmVyLCJkYmxjbGljayIsZnVuY3Rpb24oYSl7Yi5wb2ludGVyLm9uQ29udGFpbmVyRGJsQ2xpY2soYSl9KTtsKGMuZW5hYmxlTW91c2VXaGVlbFpvb20sCmMuZW5hYmxlZCkmJkooYi5jb250YWluZXIsTi5vbm1vdXNld2hlZWw9PT12b2lkIDA/IkRPTU1vdXNlU2Nyb2xsIjoibW91c2V3aGVlbCIsZnVuY3Rpb24oYSl7Yi5wb2ludGVyLm9uQ29udGFpbmVyTW91c2VXaGVlbChhKTtyZXR1cm4hMX0pfSk7byhHLnByb3RvdHlwZSx7b25Db250YWluZXJEYmxDbGljazpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNoYXJ0LGE9dGhpcy5ub3JtYWxpemUoYSk7Yi5vcHRpb25zLm1hcE5hdmlnYXRpb24uZW5hYmxlRG91YmxlQ2xpY2tab29tVG8/Yi5wb2ludGVyLmluQ2xhc3MoYS50YXJnZXQsImhpZ2hjaGFydHMtdHJhY2tlciIpJiZiLmhvdmVyUG9pbnQuem9vbVRvKCk6Yi5pc0luc2lkZVBsb3QoYS5jaGFydFgtYi5wbG90TGVmdCxhLmNoYXJ0WS1iLnBsb3RUb3ApJiZiLm1hcFpvb20oMC41LGIueEF4aXNbMF0udG9WYWx1ZShhLmNoYXJ0WCksYi55QXhpc1swXS50b1ZhbHVlKGEuY2hhcnRZKSxhLmNoYXJ0WCxhLmNoYXJ0WSl9LG9uQ29udGFpbmVyTW91c2VXaGVlbDpmdW5jdGlvbihhKXt2YXIgYj0KdGhpcy5jaGFydCxjLGE9dGhpcy5ub3JtYWxpemUoYSk7Yz1hLmRldGFpbHx8LShhLndoZWVsRGVsdGEvMTIwKTtiLmlzSW5zaWRlUGxvdChhLmNoYXJ0WC1iLnBsb3RMZWZ0LGEuY2hhcnRZLWIucGxvdFRvcCkmJmIubWFwWm9vbShNYXRoLnBvdygyLGMpLGIueEF4aXNbMF0udG9WYWx1ZShhLmNoYXJ0WCksYi55QXhpc1swXS50b1ZhbHVlKGEuY2hhcnRZKSxhLmNoYXJ0WCxhLmNoYXJ0WSl9fSk7dihHLnByb3RvdHlwZSwiaW5pdCIsZnVuY3Rpb24oYSxiLGMpe2EuY2FsbCh0aGlzLGIsYyk7aWYobChjLm1hcE5hdmlnYXRpb24uZW5hYmxlVG91Y2hab29tLGMubWFwTmF2aWdhdGlvbi5lbmFibGVkKSl0aGlzLnBpbmNoWD10aGlzLnBpbmNoSG9yPXRoaXMucGluY2hZPXRoaXMucGluY2hWZXJ0PXRoaXMuaGFzWm9vbT0hMH0pO3YoRy5wcm90b3R5cGUsInBpbmNoVHJhbnNsYXRlIixmdW5jdGlvbihhLGIsYyxkLGUsZixnKXthLmNhbGwodGhpcyxiLGMsZCxlLGYsZyk7dGhpcy5jaGFydC5vcHRpb25zLmNoYXJ0LnR5cGU9PT0KIm1hcCImJnRoaXMuaGFzWm9vbSYmKGE9ZC5zY2FsZVg+ZC5zY2FsZVksdGhpcy5waW5jaFRyYW5zbGF0ZURpcmVjdGlvbighYSxiLGMsZCxlLGYsZyxhP2Quc2NhbGVYOmQuc2NhbGVZKSl9KTt2YXIgRj1OLmRvY3VtZW50RWxlbWVudC5zdHlsZS52ZWN0b3JFZmZlY3QhPT12b2lkIDA7dy5tYXA9bih3LnNjYXR0ZXIse2FsbEFyZWFzOiEwLGFuaW1hdGlvbjohMSxudWxsQ29sb3I6IiNGOEY4RjgiLGJvcmRlckNvbG9yOiJzaWx2ZXIiLGJvcmRlcldpZHRoOjEsbWFya2VyOm51bGwsc3RpY2t5VHJhY2tpbmc6ITEsZGF0YUxhYmVsczp7Zm9ybWF0dGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucG9pbnQudmFsdWV9LGluc2lkZTohMCx2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLGNyb3A6ITEsb3ZlcmZsb3c6ITEscGFkZGluZzowfSx0dXJib1RocmVzaG9sZDowLHRvb2x0aXA6e2ZvbGxvd1BvaW50ZXI6ITAscG9pbnRGb3JtYXQ6Intwb2ludC5uYW1lfToge3BvaW50LnZhbHVlfTxici8+In0sCnN0YXRlczp7bm9ybWFsOnthbmltYXRpb246ITB9LGhvdmVyOnticmlnaHRuZXNzOjAuMixoYWxvOm51bGx9fX0pO3ZhciBRPXUodCxvKHthcHBseU9wdGlvbnM6ZnVuY3Rpb24oYSxiKXt2YXIgYz10LnByb3RvdHlwZS5hcHBseU9wdGlvbnMuY2FsbCh0aGlzLGEsYiksZD10aGlzLnNlcmllcyxlPWQuam9pbkJ5O2lmKGQubWFwRGF0YSlpZihlPWNbZVsxXV0hPT12b2lkIDAmJmQubWFwTWFwW2NbZVsxXV1dKXtpZihkLnh5RnJvbVNoYXBlKWMueD1lLl9taWRYLGMueT1lLl9taWRZO28oYyxlKX1lbHNlIGMudmFsdWU9Yy52YWx1ZXx8bnVsbDtyZXR1cm4gY30sb25Nb3VzZU92ZXI6ZnVuY3Rpb24oYSl7Y2xlYXJUaW1lb3V0KHRoaXMuY29sb3JJbnRlcnZhbCk7aWYodGhpcy52YWx1ZSE9PW51bGwpdC5wcm90b3R5cGUub25Nb3VzZU92ZXIuY2FsbCh0aGlzLGEpO2Vsc2UgdGhpcy5zZXJpZXMub25Nb3VzZU91dChhKX0sb25Nb3VzZU91dDpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj0rbmV3IERhdGUsCmM9eChhLmNvbG9yKSxkPXgoYS5wb2ludEF0dHIuaG92ZXIuZmlsbCksZT1hLnNlcmllcy5vcHRpb25zLnN0YXRlcy5ub3JtYWwuYW5pbWF0aW9uLGY9ZSYmKGUuZHVyYXRpb258fDUwMCksZztpZihmJiZjLnJnYmEubGVuZ3RoPT09NCYmZC5yZ2JhLmxlbmd0aD09PTQmJmEuc3RhdGUhPT0ic2VsZWN0IilnPWEucG9pbnRBdHRyWyIiXS5maWxsLGRlbGV0ZSBhLnBvaW50QXR0clsiIl0uZmlsbCxjbGVhclRpbWVvdXQoYS5jb2xvckludGVydmFsKSxhLmNvbG9ySW50ZXJ2YWw9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgZT0obmV3IERhdGUtYikvZixnPWEuZ3JhcGhpYztlPjEmJihlPTEpO2cmJmcuYXR0cigiZmlsbCIsQy5wcm90b3R5cGUudHdlZW5Db2xvcnMuY2FsbCgwLGQsYyxlKSk7ZT49MSYmY2xlYXJUaW1lb3V0KGEuY29sb3JJbnRlcnZhbCl9LDEzKTt0LnByb3RvdHlwZS5vbk1vdXNlT3V0LmNhbGwoYSk7aWYoZylhLnBvaW50QXR0clsiIl0uZmlsbD1nfSx6b29tVG86ZnVuY3Rpb24oKXt2YXIgYT0KdGhpcy5zZXJpZXM7YS54QXhpcy5zZXRFeHRyZW1lcyh0aGlzLl9taW5YLHRoaXMuX21heFgsITEpO2EueUF4aXMuc2V0RXh0cmVtZXModGhpcy5fbWluWSx0aGlzLl9tYXhZLCExKTthLmNoYXJ0LnJlZHJhdygpfX0sRCkpO20ubWFwPXUobS5zY2F0dGVyLG4oUCx7dHlwZToibWFwIixwb2ludENsYXNzOlEsc3VwcG9ydHNEcmlsbGRvd246ITAsZ2V0RXh0cmVtZXNGcm9tQWxsOiEwLHVzZU1hcEdlb21ldHJ5OiEwLGZvcmNlREw6ITAsc2VhcmNoUG9pbnQ6cyxkaXJlY3RUb3VjaDohMCxwcmVzZXJ2ZUFzcGVjdFJhdGlvOiEwLGdldEJveDpmdW5jdGlvbihhKXt2YXIgYj1OdW1iZXIuTUFYX1ZBTFVFLGM9LWIsZD1iLGU9LWIsZj1iLGc9YixoPXRoaXMueEF4aXMsaj10aGlzLnlBeGlzLHI7ayhhfHxbXSxmdW5jdGlvbihhKXtpZihhLnBhdGgpe2lmKHR5cGVvZiBhLnBhdGg9PT0ic3RyaW5nIilhLnBhdGg9aS5zcGxpdFBhdGgoYS5wYXRoKTt2YXIgaD1hLnBhdGh8fFtdLGo9aC5sZW5ndGgsCms9ITEsbT0tYixuPWIsbz0tYixwPWIscT1hLnByb3BlcnRpZXM7aWYoIWEuX2ZvdW5kQm94KXtmb3IoO2otLTspdHlwZW9mIGhbal09PT0ibnVtYmVyIiYmIWlzTmFOKGhbal0pJiYoaz8obT1NYXRoLm1heChtLGhbal0pLG49TWF0aC5taW4obixoW2pdKSk6KG89TWF0aC5tYXgobyxoW2pdKSxwPU1hdGgubWluKHAsaFtqXSkpLGs9IWspO2EuX21pZFg9bisobS1uKSooYS5taWRkbGVYfHxxJiZxWyJoYy1taWRkbGUteCJdfHwwLjUpO2EuX21pZFk9cCsoby1wKSooYS5taWRkbGVZfHxxJiZxWyJoYy1taWRkbGUteSJdfHwwLjUpO2EuX21heFg9bTthLl9taW5YPW47YS5fbWF4WT1vO2EuX21pblk9cDthLmxhYmVscmFuaz1sKGEubGFiZWxyYW5rLChtLW4pKihvLXApKTthLl9mb3VuZEJveD0hMH1jPU1hdGgubWF4KGMsYS5fbWF4WCk7ZD1NYXRoLm1pbihkLGEuX21pblgpO2U9TWF0aC5tYXgoZSxhLl9tYXhZKTtmPU1hdGgubWluKGYsYS5fbWluWSk7Zz1NYXRoLm1pbihhLl9tYXhYLQphLl9taW5YLGEuX21heFktYS5fbWluWSxnKTtyPSEwfX0pO2lmKHIpe3RoaXMubWluWT1NYXRoLm1pbihmLGwodGhpcy5taW5ZLGIpKTt0aGlzLm1heFk9TWF0aC5tYXgoZSxsKHRoaXMubWF4WSwtYikpO3RoaXMubWluWD1NYXRoLm1pbihkLGwodGhpcy5taW5YLGIpKTt0aGlzLm1heFg9TWF0aC5tYXgoYyxsKHRoaXMubWF4WCwtYikpO2lmKGgmJmgub3B0aW9ucy5taW5SYW5nZT09PXZvaWQgMCloLm1pblJhbmdlPU1hdGgubWluKDUqZywodGhpcy5tYXhYLXRoaXMubWluWCkvNSxoLm1pblJhbmdlfHxiKTtpZihqJiZqLm9wdGlvbnMubWluUmFuZ2U9PT12b2lkIDApai5taW5SYW5nZT1NYXRoLm1pbig1KmcsKHRoaXMubWF4WS10aGlzLm1pblkpLzUsai5taW5SYW5nZXx8Yil9fSxnZXRFeHRyZW1lczpmdW5jdGlvbigpe3kucHJvdG90eXBlLmdldEV4dHJlbWVzLmNhbGwodGhpcyx0aGlzLnZhbHVlRGF0YSk7dGhpcy5jaGFydC5oYXNSZW5kZXJlZCYmdGhpcy5pc0RpcnR5RGF0YSYmCnRoaXMuZ2V0Qm94KHRoaXMub3B0aW9ucy5kYXRhKTt0aGlzLnZhbHVlTWluPXRoaXMuZGF0YU1pbjt0aGlzLnZhbHVlTWF4PXRoaXMuZGF0YU1heDt0aGlzLmRhdGFNaW49dGhpcy5taW5ZO3RoaXMuZGF0YU1heD10aGlzLm1heFl9LHRyYW5zbGF0ZVBhdGg6ZnVuY3Rpb24oYSl7dmFyIGI9ITEsYz10aGlzLnhBeGlzLGQ9dGhpcy55QXhpcyxlPWMubWluLGY9Yy50cmFuc0EsYz1jLm1pblBpeGVsUGFkZGluZyxnPWQubWluLGg9ZC50cmFuc0EsZD1kLm1pblBpeGVsUGFkZGluZyxqLGk9W107aWYoYSlmb3Ioaj1hLmxlbmd0aDtqLS07KXR5cGVvZiBhW2pdPT09Im51bWJlciI/KGlbal09Yj8oYVtqXS1lKSpmK2M6KGFbal0tZykqaCtkLGI9IWIpOmlbal09YVtqXTtyZXR1cm4gaX0sc2V0RGF0YTpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMub3B0aW9ucyxkPWMubWFwRGF0YSxlPWMuam9pbkJ5LGY9ZT09PW51bGwsZz1bXSxoLGosbDtmJiYoZT0iX2kiKTtlPXRoaXMuam9pbkJ5PWkuc3BsYXQoZSk7CmVbMV18fChlWzFdPWVbMF0pO2EmJmsoYSxmdW5jdGlvbihiLGMpe3R5cGVvZiBiPT09Im51bWJlciImJihhW2NdPXt2YWx1ZTpifSk7aWYoZilhW2NdLl9pPWN9KTt0aGlzLmdldEJveChhKTtpZihkKXtpZihkLnR5cGU9PT0iRmVhdHVyZUNvbGxlY3Rpb24iKXtpZihkWyJoYy10cmFuc2Zvcm0iXSlmb3IoaCBpbiB0aGlzLmNoYXJ0Lm1hcFRyYW5zZm9ybXM9aj1kWyJoYy10cmFuc2Zvcm0iXSxqKWlmKGouaGFzT3duUHJvcGVydHkoaCkmJmgucm90YXRpb24paC5jb3NBbmdsZT1NYXRoLmNvcyhoLnJvdGF0aW9uKSxoLnNpbkFuZ2xlPU1hdGguc2luKGgucm90YXRpb24pO2Q9aS5nZW9qc29uKGQsdGhpcy50eXBlLHRoaXMpfXRoaXMuZ2V0Qm94KGQpO3RoaXMubWFwRGF0YT1kO3RoaXMubWFwTWFwPXt9O2ZvcihsPTA7bDxkLmxlbmd0aDtsKyspaD1kW2xdLGo9aC5wcm9wZXJ0aWVzLGguX2k9bCxlWzBdJiZqJiZqW2VbMF1dJiYoaFtlWzBdXT1qW2VbMF1dKSx0aGlzLm1hcE1hcFtoW2VbMF1dXT0KaDtjLmFsbEFyZWFzJiYoYT1hfHxbXSxlWzFdJiZrKGEsZnVuY3Rpb24oYSl7Zy5wdXNoKGFbZVsxXV0pfSksZz0ifCIrZy5qb2luKCJ8IikrInwiLGsoZCxmdW5jdGlvbihiKXsoIWVbMF18fGcuaW5kZXhPZigifCIrYltlWzBdXSsifCIpPT09LTEpJiZhLnB1c2gobihiLHt2YWx1ZTpudWxsfSkpfSkpfXkucHJvdG90eXBlLnNldERhdGEuY2FsbCh0aGlzLGEsYil9LGRyYXdHcmFwaDpzLGRyYXdEYXRhTGFiZWxzOnMsZG9GdWxsVHJhbnNsYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNEaXJ0eURhdGF8fHRoaXMuY2hhcnQuaXNSZXNpemluZ3x8dGhpcy5jaGFydC5yZW5kZXJlci5pc1ZNTHx8IXRoaXMuYmFzZVRyYW5zfSx0cmFuc2xhdGU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS54QXhpcyxjPWEueUF4aXMsZD1hLmRvRnVsbFRyYW5zbGF0ZSgpO2EuZ2VuZXJhdGVQb2ludHMoKTtrKGEuZGF0YSxmdW5jdGlvbihlKXtlLnBsb3RYPWIudG9QaXhlbHMoZS5fbWlkWCwhMCk7CmUucGxvdFk9Yy50b1BpeGVscyhlLl9taWRZLCEwKTtpZihkKWUuc2hhcGVUeXBlPSJwYXRoIixlLnNoYXBlQXJncz17ZDphLnRyYW5zbGF0ZVBhdGgoZS5wYXRoKX0sRiYmKGUuc2hhcGVBcmdzWyJ2ZWN0b3ItZWZmZWN0Il09Im5vbi1zY2FsaW5nLXN0cm9rZSIpfSk7YS50cmFuc2xhdGVDb2xvcnMoKX0sZHJhd1BvaW50czpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1hLnhBeGlzLGM9YS55QXhpcyxkPWEuZ3JvdXAsZT1hLmNoYXJ0LGY9ZS5yZW5kZXJlcixnLGg9dGhpcy5iYXNlVHJhbnM7aWYoIWEudHJhbnNmb3JtR3JvdXApYS50cmFuc2Zvcm1Hcm91cD1mLmcoKS5hdHRyKHtzY2FsZVg6MSxzY2FsZVk6MX0pLmFkZChkKSxhLnRyYW5zZm9ybUdyb3VwLnN1cnZpdmU9ITA7YS5kb0Z1bGxUcmFuc2xhdGUoKT8oZS5oYXNSZW5kZXJlZCYmYS5wb2ludEF0dHJUb09wdGlvbnMuZmlsbD09PSJjb2xvciImJmsoYS5wb2ludHMsZnVuY3Rpb24oYSl7aWYoYS5zaGFwZUFyZ3MpYS5zaGFwZUFyZ3MuZmlsbD0KYS5wb2ludEF0dHJbbChhLnN0YXRlLCIiKV0uZmlsbH0pLEZ8fGsoYS5wb2ludHMsZnVuY3Rpb24oYil7Yj1iLnBvaW50QXR0clsiIl07Ylsic3Ryb2tlLXdpZHRoIl09PT1hLnBvaW50QXR0clsiIl1bInN0cm9rZS13aWR0aCJdJiYoYlsic3Ryb2tlLXdpZHRoIl09ImluaGVyaXQiKX0pLGEuZ3JvdXA9YS50cmFuc2Zvcm1Hcm91cCxtLmNvbHVtbi5wcm90b3R5cGUuZHJhd1BvaW50cy5hcHBseShhKSxhLmdyb3VwPWQsayhhLnBvaW50cyxmdW5jdGlvbihhKXthLmdyYXBoaWMmJihhLm5hbWUmJmEuZ3JhcGhpYy5hZGRDbGFzcygiaGlnaGNoYXJ0cy1uYW1lLSIrYS5uYW1lLnJlcGxhY2UoIiAiLCItIikudG9Mb3dlckNhc2UoKSksYS5wcm9wZXJ0aWVzJiZhLnByb3BlcnRpZXNbImhjLWtleSJdJiZhLmdyYXBoaWMuYWRkQ2xhc3MoImhpZ2hjaGFydHMta2V5LSIrYS5wcm9wZXJ0aWVzWyJoYy1rZXkiXS50b0xvd2VyQ2FzZSgpKSxGfHwoYS5ncmFwaGljWyJzdHJva2Utd2lkdGhTZXR0ZXIiXT0KcykpfSksdGhpcy5iYXNlVHJhbnM9e29yaWdpblg6Yi5taW4tYi5taW5QaXhlbFBhZGRpbmcvYi50cmFuc0Esb3JpZ2luWTpjLm1pbi1jLm1pblBpeGVsUGFkZGluZy9jLnRyYW5zQSsoYy5yZXZlcnNlZD8wOmMubGVuL2MudHJhbnNBKSx0cmFuc0FYOmIudHJhbnNBLHRyYW5zQVk6Yy50cmFuc0F9LHRoaXMudHJhbnNmb3JtR3JvdXAuYW5pbWF0ZSh7dHJhbnNsYXRlWDowLHRyYW5zbGF0ZVk6MCxzY2FsZVg6MSxzY2FsZVk6MX0pKTooZz1iLnRyYW5zQS9oLnRyYW5zQVgsZD1jLnRyYW5zQS9oLnRyYW5zQVksYj1iLnRvUGl4ZWxzKGgub3JpZ2luWCwhMCksYz1jLnRvUGl4ZWxzKGgub3JpZ2luWSwhMCksZz4wLjk5JiZnPDEuMDEmJmQ+MC45OSYmZDwxLjAxJiYoZD1nPTEsYj1NYXRoLnJvdW5kKGIpLGM9TWF0aC5yb3VuZChjKSksdGhpcy50cmFuc2Zvcm1Hcm91cC5hbmltYXRlKHt0cmFuc2xhdGVYOmIsdHJhbnNsYXRlWTpjLHNjYWxlWDpnLHNjYWxlWTpkfSkpO0Z8fGEuZ3JvdXAuZWxlbWVudC5zZXRBdHRyaWJ1dGUoInN0cm9rZS13aWR0aCIsCmEub3B0aW9ucy5ib3JkZXJXaWR0aC8oZ3x8MSkpO3RoaXMuZHJhd01hcERhdGFMYWJlbHMoKX0sZHJhd01hcERhdGFMYWJlbHM6ZnVuY3Rpb24oKXt5LnByb3RvdHlwZS5kcmF3RGF0YUxhYmVscy5jYWxsKHRoaXMpO3RoaXMuZGF0YUxhYmVsc0dyb3VwJiZ0aGlzLmRhdGFMYWJlbHNHcm91cC5jbGlwKHRoaXMuY2hhcnQuY2xpcFJlY3QpfSxyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9eS5wcm90b3R5cGUucmVuZGVyO2EuY2hhcnQucmVuZGVyZXIuaXNWTUwmJmEuZGF0YS5sZW5ndGg+M0UzP3NldFRpbWVvdXQoZnVuY3Rpb24oKXtiLmNhbGwoYSl9KTpiLmNhbGwoYSl9LGFuaW1hdGU6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5vcHRpb25zLmFuaW1hdGlvbixjPXRoaXMuZ3JvdXAsZD10aGlzLnhBeGlzLGU9dGhpcy55QXhpcyxmPWQucG9zLGc9ZS5wb3M7aWYodGhpcy5jaGFydC5yZW5kZXJlci5pc1NWRyliPT09ITAmJihiPXtkdXJhdGlvbjoxRTN9KSxhP2MuYXR0cih7dHJhbnNsYXRlWDpmKwpkLmxlbi8yLHRyYW5zbGF0ZVk6ZytlLmxlbi8yLHNjYWxlWDowLjAwMSxzY2FsZVk6MC4wMDF9KTooYy5hbmltYXRlKHt0cmFuc2xhdGVYOmYsdHJhbnNsYXRlWTpnLHNjYWxlWDoxLHNjYWxlWToxfSxiKSx0aGlzLmFuaW1hdGU9bnVsbCl9LGFuaW1hdGVEcmlsbGRvd246ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5jaGFydC5wbG90Qm94LGM9dGhpcy5jaGFydC5kcmlsbGRvd25MZXZlbHNbdGhpcy5jaGFydC5kcmlsbGRvd25MZXZlbHMubGVuZ3RoLTFdLGQ9Yy5iQm94LGU9dGhpcy5jaGFydC5vcHRpb25zLmRyaWxsZG93bi5hbmltYXRpb247aWYoIWEpYT1NYXRoLm1pbihkLndpZHRoL2Iud2lkdGgsZC5oZWlnaHQvYi5oZWlnaHQpLGMuc2hhcGVBcmdzPXtzY2FsZVg6YSxzY2FsZVk6YSx0cmFuc2xhdGVYOmQueCx0cmFuc2xhdGVZOmQueX0sayh0aGlzLnBvaW50cyxmdW5jdGlvbihhKXthLmdyYXBoaWMmJmEuZ3JhcGhpYy5hdHRyKGMuc2hhcGVBcmdzKS5hbmltYXRlKHtzY2FsZVg6MSwKc2NhbGVZOjEsdHJhbnNsYXRlWDowLHRyYW5zbGF0ZVk6MH0sZSl9KSx0aGlzLmFuaW1hdGU9bnVsbH0sZHJhd0xlZ2VuZFN5bWJvbDpILmRyYXdSZWN0YW5nbGUsYW5pbWF0ZURyaWxsdXBGcm9tOmZ1bmN0aW9uKGEpe20uY29sdW1uLnByb3RvdHlwZS5hbmltYXRlRHJpbGx1cEZyb20uY2FsbCh0aGlzLGEpfSxhbmltYXRlRHJpbGx1cFRvOmZ1bmN0aW9uKGEpe20uY29sdW1uLnByb3RvdHlwZS5hbmltYXRlRHJpbGx1cFRvLmNhbGwodGhpcyxhKX19KSk7dy5tYXBsaW5lPW4ody5tYXAse2xpbmVXaWR0aDoxLGZpbGxDb2xvcjoibm9uZSJ9KTttLm1hcGxpbmU9dShtLm1hcCx7dHlwZToibWFwbGluZSIscG9pbnRBdHRyVG9PcHRpb25zOntzdHJva2U6ImNvbG9yIiwic3Ryb2tlLXdpZHRoIjoibGluZVdpZHRoIixmaWxsOiJmaWxsQ29sb3IiLGRhc2hzdHlsZToiZGFzaFN0eWxlIn0sZHJhd0xlZ2VuZFN5bWJvbDptLmxpbmUucHJvdG90eXBlLmRyYXdMZWdlbmRTeW1ib2x9KTt3Lm1hcHBvaW50PQpuKHcuc2NhdHRlcix7ZGF0YUxhYmVsczp7ZW5hYmxlZDohMCxmb3JtYXR0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wb2ludC5uYW1lfSxjcm9wOiExLGRlZmVyOiExLG92ZXJmbG93OiExLHN0eWxlOntjb2xvcjoiIzAwMDAwMCJ9fX0pO20ubWFwcG9pbnQ9dShtLnNjYXR0ZXIse3R5cGU6Im1hcHBvaW50Iixmb3JjZURMOiEwLHBvaW50Q2xhc3M6dSh0LHthcHBseU9wdGlvbnM6ZnVuY3Rpb24oYSxiKXt2YXIgYz10LnByb3RvdHlwZS5hcHBseU9wdGlvbnMuY2FsbCh0aGlzLGEsYik7YS5sYXQhPT12b2lkIDAmJmEubG9uIT09dm9pZCAwJiYoYz1vKGMsdGhpcy5zZXJpZXMuY2hhcnQuZnJvbUxhdExvblRvUG9pbnQoYykpKTtyZXR1cm4gY319KX0pO2lmKG0uYnViYmxlKXcubWFwYnViYmxlPW4ody5idWJibGUse2FuaW1hdGlvbkxpbWl0OjUwMCx0b29sdGlwOntwb2ludEZvcm1hdDoie3BvaW50Lm5hbWV9OiB7cG9pbnQuen0ifX0pLG0ubWFwYnViYmxlPXUobS5idWJibGUse3BvaW50Q2xhc3M6dSh0LAp7YXBwbHlPcHRpb25zOmZ1bmN0aW9uKGEsYil7dmFyIGM7YSYmYS5sYXQhPT12b2lkIDAmJmEubG9uIT09dm9pZCAwPyhjPXQucHJvdG90eXBlLmFwcGx5T3B0aW9ucy5jYWxsKHRoaXMsYSxiKSxjPW8oYyx0aGlzLnNlcmllcy5jaGFydC5mcm9tTGF0TG9uVG9Qb2ludChjKSkpOmM9US5wcm90b3R5cGUuYXBwbHlPcHRpb25zLmNhbGwodGhpcyxhLGIpO3JldHVybiBjfSx0dEJlbG93OiExfSkseHlGcm9tU2hhcGU6ITAsdHlwZToibWFwYnViYmxlIixwb2ludEFycmF5TWFwOlsieiJdLGdldE1hcERhdGE6bS5tYXAucHJvdG90eXBlLmdldE1hcERhdGEsZ2V0Qm94Om0ubWFwLnByb3RvdHlwZS5nZXRCb3gsc2V0RGF0YTptLm1hcC5wcm90b3R5cGUuc2V0RGF0YX0pO0IucGxvdE9wdGlvbnMuaGVhdG1hcD1uKEIucGxvdE9wdGlvbnMuc2NhdHRlcix7YW5pbWF0aW9uOiExLGJvcmRlcldpZHRoOjAsbnVsbENvbG9yOiIjRjhGOEY4IixkYXRhTGFiZWxzOntmb3JtYXR0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wb2ludC52YWx1ZX0sCmluc2lkZTohMCx2ZXJ0aWNhbEFsaWduOiJtaWRkbGUiLGNyb3A6ITEsb3ZlcmZsb3c6ITEscGFkZGluZzowfSxtYXJrZXI6bnVsbCxwb2ludFJhbmdlOm51bGwsdG9vbHRpcDp7cG9pbnRGb3JtYXQ6Intwb2ludC54fSwge3BvaW50Lnl9OiB7cG9pbnQudmFsdWV9PGJyLz4ifSxzdGF0ZXM6e25vcm1hbDp7YW5pbWF0aW9uOiEwfSxob3Zlcjp7aGFsbzohMSxicmlnaHRuZXNzOjAuMn19fSk7bS5oZWF0bWFwPXUobS5zY2F0dGVyLG4oUCx7dHlwZToiaGVhdG1hcCIscG9pbnRBcnJheU1hcDpbInkiLCJ2YWx1ZSJdLGhhc1BvaW50U3BlY2lmaWNPcHRpb25zOiEwLHBvaW50Q2xhc3M6dSh0LEQpLHN1cHBvcnRzRHJpbGxkb3duOiEwLGdldEV4dHJlbWVzRnJvbUFsbDohMCxkaXJlY3RUb3VjaDohMCxpbml0OmZ1bmN0aW9uKCl7dmFyIGE7bS5zY2F0dGVyLnByb3RvdHlwZS5pbml0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTthPXRoaXMub3B0aW9uczthLnBvaW50UmFuZ2U9bChhLnBvaW50UmFuZ2UsCmEuY29sc2l6ZXx8MSk7dGhpcy55QXhpcy5heGlzUG9pbnRSYW5nZT1hLnJvd3NpemV8fDF9LHRyYW5zbGF0ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3B0aW9ucyxiPXRoaXMueEF4aXMsYz10aGlzLnlBeGlzLGQ9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBNYXRoLm1pbihNYXRoLm1heChiLGEpLGMpfTt0aGlzLmdlbmVyYXRlUG9pbnRzKCk7ayh0aGlzLnBvaW50cyxmdW5jdGlvbihlKXt2YXIgZj0oYS5jb2xzaXplfHwxKS8yLGc9KGEucm93c2l6ZXx8MSkvMixoPWQoTWF0aC5yb3VuZChiLmxlbi1iLnRyYW5zbGF0ZShlLngtZiwwLDEsMCwxKSksMCxiLmxlbiksZj1kKE1hdGgucm91bmQoYi5sZW4tYi50cmFuc2xhdGUoZS54K2YsMCwxLDAsMSkpLDAsYi5sZW4pLGo9ZChNYXRoLnJvdW5kKGMudHJhbnNsYXRlKGUueS1nLDAsMSwwLDEpKSwwLGMubGVuKSxnPWQoTWF0aC5yb3VuZChjLnRyYW5zbGF0ZShlLnkrZywwLDEsMCwxKSksMCxjLmxlbik7ZS5wbG90WD1lLmNsaWVudFg9KGgrCmYpLzI7ZS5wbG90WT0oaitnKS8yO2Uuc2hhcGVUeXBlPSJyZWN0IjtlLnNoYXBlQXJncz17eDpNYXRoLm1pbihoLGYpLHk6TWF0aC5taW4oaixnKSx3aWR0aDpNYXRoLmFicyhmLWgpLGhlaWdodDpNYXRoLmFicyhnLWopfX0pO3RoaXMudHJhbnNsYXRlQ29sb3JzKCk7dGhpcy5jaGFydC5oYXNSZW5kZXJlZCYmayh0aGlzLnBvaW50cyxmdW5jdGlvbihhKXthLnNoYXBlQXJncy5maWxsPWEub3B0aW9ucy5jb2xvcnx8YS5jb2xvcn0pfSxkcmF3UG9pbnRzOm0uY29sdW1uLnByb3RvdHlwZS5kcmF3UG9pbnRzLGFuaW1hdGU6cyxnZXRCb3g6cyxkcmF3TGVnZW5kU3ltYm9sOkguZHJhd1JlY3RhbmdsZSxnZXRFeHRyZW1lczpmdW5jdGlvbigpe3kucHJvdG90eXBlLmdldEV4dHJlbWVzLmNhbGwodGhpcyx0aGlzLnZhbHVlRGF0YSk7dGhpcy52YWx1ZU1pbj10aGlzLmRhdGFNaW47dGhpcy52YWx1ZU1heD10aGlzLmRhdGFNYXg7eS5wcm90b3R5cGUuZ2V0RXh0cmVtZXMuY2FsbCh0aGlzKX19KSk7CnEucHJvdG90eXBlLnRyYW5zZm9ybUZyb21MYXRMb249ZnVuY3Rpb24oYSxiKXtpZihBLnByb2o0PT09dm9pZCAwKXJldHVybiBFKDIxKSx7eDowLHk6bnVsbH07dmFyIGM9QS5wcm9qNChiLmNycyxbYS5sb24sYS5sYXRdKSxkPWIuY29zQW5nbGV8fGIucm90YXRpb24mJk1hdGguY29zKGIucm90YXRpb24pLGU9Yi5zaW5BbmdsZXx8Yi5yb3RhdGlvbiYmTWF0aC5zaW4oYi5yb3RhdGlvbiksYz1iLnJvdGF0aW9uP1tjWzBdKmQrY1sxXSplLC1jWzBdKmUrY1sxXSpkXTpjO3JldHVybnt4OigoY1swXS0oYi54b2Zmc2V0fHwwKSkqKGIuc2NhbGV8fDEpKyhiLnhwYW58fDApKSooYi5qc29ucmVzfHwxKSsoYi5qc29ubWFyZ2luWHx8MCkseTooKChiLnlvZmZzZXR8fDApLWNbMV0pKihiLnNjYWxlfHwxKSsoYi55cGFufHwwKSkqKGIuanNvbnJlc3x8MSktKGIuanNvbm1hcmdpbll8fDApfX07cS5wcm90b3R5cGUudHJhbnNmb3JtVG9MYXRMb249ZnVuY3Rpb24oYSxiKXtpZihBLnByb2o0PT09CnZvaWQgMClFKDIxKTtlbHNle3ZhciBjPXt4OigoYS54LShiLmpzb25tYXJnaW5YfHwwKSkvKGIuanNvbnJlc3x8MSktKGIueHBhbnx8MCkpLyhiLnNjYWxlfHwxKSsoYi54b2Zmc2V0fHwwKSx5OigoLWEueS0oYi5qc29ubWFyZ2luWXx8MCkpLyhiLmpzb25yZXN8fDEpKyhiLnlwYW58fDApKS8oYi5zY2FsZXx8MSkrKGIueW9mZnNldHx8MCl9LGQ9Yi5jb3NBbmdsZXx8Yi5yb3RhdGlvbiYmTWF0aC5jb3MoYi5yb3RhdGlvbiksZT1iLnNpbkFuZ2xlfHxiLnJvdGF0aW9uJiZNYXRoLnNpbihiLnJvdGF0aW9uKSxjPUEucHJvajQoYi5jcnMsIldHUzg0IixiLnJvdGF0aW9uP3t4OmMueCpkK2MueSotZSx5OmMueCplK2MueSpkfTpjKTtyZXR1cm57bGF0OmMueSxsb246Yy54fX19O3EucHJvdG90eXBlLmZyb21Qb2ludFRvTGF0TG9uPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubWFwVHJhbnNmb3JtcyxjO2lmKGIpe2ZvcihjIGluIGIpaWYoYi5oYXNPd25Qcm9wZXJ0eShjKSYmYltjXS5oaXRab25lJiYKSyh7eDphLngseTotYS55fSxiW2NdLmhpdFpvbmUuY29vcmRpbmF0ZXNbMF0pKXJldHVybiB0aGlzLnRyYW5zZm9ybVRvTGF0TG9uKGEsYltjXSk7cmV0dXJuIHRoaXMudHJhbnNmb3JtVG9MYXRMb24oYSxiWyJkZWZhdWx0Il0pfWVsc2UgRSgyMil9O3EucHJvdG90eXBlLmZyb21MYXRMb25Ub1BvaW50PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubWFwVHJhbnNmb3JtcyxjLGQ7aWYoIWIpcmV0dXJuIEUoMjIpLHt4OjAseTpudWxsfTtmb3IoYyBpbiBiKWlmKGIuaGFzT3duUHJvcGVydHkoYykmJmJbY10uaGl0Wm9uZSYmKGQ9dGhpcy50cmFuc2Zvcm1Gcm9tTGF0TG9uKGEsYltjXSksSyh7eDpkLngseTotZC55fSxiW2NdLmhpdFpvbmUuY29vcmRpbmF0ZXNbMF0pKSlyZXR1cm4gZDtyZXR1cm4gdGhpcy50cmFuc2Zvcm1Gcm9tTGF0TG9uKGEsYlsiZGVmYXVsdCJdKX07aS5nZW9qc29uPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPVtdLGY9ZnVuY3Rpb24oYSl7dmFyIGIsYz1hLmxlbmd0aDsKZS5wdXNoKCJNIik7Zm9yKGI9MDtiPGM7YisrKWI9PT0xJiZlLnB1c2goIkwiKSxlLnB1c2goYVtiXVswXSwtYVtiXVsxXSl9LGI9Ynx8Im1hcCI7ayhhLmZlYXR1cmVzLGZ1bmN0aW9uKGEpe3ZhciBjPWEuZ2VvbWV0cnksaj1jLnR5cGUsYz1jLmNvb3JkaW5hdGVzLGE9YS5wcm9wZXJ0aWVzLGk7ZT1bXTtiPT09Im1hcCJ8fGI9PT0ibWFwYnViYmxlIj8oaj09PSJQb2x5Z29uIj8oayhjLGYpLGUucHVzaCgiWiIpKTpqPT09Ik11bHRpUG9seWdvbiImJihrKGMsZnVuY3Rpb24oYSl7ayhhLGYpfSksZS5wdXNoKCJaIikpLGUubGVuZ3RoJiYoaT17cGF0aDplfSkpOmI9PT0ibWFwbGluZSI/KGo9PT0iTGluZVN0cmluZyI/ZihjKTpqPT09Ik11bHRpTGluZVN0cmluZyImJmsoYyxmKSxlLmxlbmd0aCYmKGk9e3BhdGg6ZX0pKTpiPT09Im1hcHBvaW50IiYmaj09PSJQb2ludCImJihpPXt4OmNbMF0seTotY1sxXX0pO2kmJmQucHVzaChvKGkse25hbWU6YS5uYW1lfHxhLk5BTUUscHJvcGVydGllczphfSkpfSk7CmlmKGMmJmEuY29weXJpZ2h0U2hvcnQpYy5jaGFydC5tYXBDcmVkaXRzPU8oYy5jaGFydC5vcHRpb25zLmNyZWRpdHMubWFwVGV4dCx7Z2VvanNvbjphfSksYy5jaGFydC5tYXBDcmVkaXRzRnVsbD1PKGMuY2hhcnQub3B0aW9ucy5jcmVkaXRzLm1hcFRleHRGdWxsLHtnZW9qc29uOmF9KTtyZXR1cm4gZH07dihxLnByb3RvdHlwZSwic2hvd0NyZWRpdHMiLGZ1bmN0aW9uKGEsYil7aWYodGhpcy5tYXBDcmVkaXRzKWIuaHJlZj1udWxsO2EuY2FsbCh0aGlzLGkubWVyZ2UoYix7dGV4dDpiLnRleHQrKHRoaXMubWFwQ3JlZGl0c3x8IiIpfSkpO3RoaXMuY3JlZGl0cyYmdGhpcy5tYXBDcmVkaXRzRnVsbCYmdGhpcy5jcmVkaXRzLmF0dHIoe3RpdGxlOnRoaXMubWFwQ3JlZGl0c0Z1bGx9KX0pO28oQi5sYW5nLHt6b29tSW46Ilpvb20gaW4iLHpvb21PdXQ6Ilpvb20gb3V0In0pO0IubWFwTmF2aWdhdGlvbj17YnV0dG9uT3B0aW9uczp7YWxpZ25UbzoicGxvdEJveCIsYWxpZ246ImxlZnQiLAp2ZXJ0aWNhbEFsaWduOiJ0b3AiLHg6MCx3aWR0aDoxOCxoZWlnaHQ6MTgsc3R5bGU6e2ZvbnRTaXplOiIxNXB4Iixmb250V2VpZ2h0OiJib2xkIix0ZXh0QWxpZ246ImNlbnRlciJ9LHRoZW1lOnsic3Ryb2tlLXdpZHRoIjoxfX0sYnV0dG9uczp7em9vbUluOntvbmNsaWNrOmZ1bmN0aW9uKCl7dGhpcy5tYXBab29tKDAuNSl9LHRleHQ6IisiLHk6MH0sem9vbU91dDp7b25jbGljazpmdW5jdGlvbigpe3RoaXMubWFwWm9vbSgyKX0sdGV4dDoiLSIseToyOH19fTtpLnNwbGl0UGF0aD1mdW5jdGlvbihhKXt2YXIgYixhPWEucmVwbGFjZSgvKFtBLVphLXpdKS9nLCIgJDEgIiksYT1hLnJlcGxhY2UoL15ccyovLCIiKS5yZXBsYWNlKC9ccyokLywiIiksYT1hLnNwbGl0KC9bICxdKy8pO2ZvcihiPTA7YjxhLmxlbmd0aDtiKyspL1thLXpBLVpdLy50ZXN0KGFbYl0pfHwoYVtiXT1wYXJzZUZsb2F0KGFbYl0pKTtyZXR1cm4gYX07aS5tYXBzPXt9O0kucHJvdG90eXBlLnN5bWJvbHMudG9wYnV0dG9uPQpmdW5jdGlvbihhLGIsYyxkLGUpe3JldHVybiBMKGEtMSxiLTEsYyxkLGUucixlLnIsMCwwKX07SS5wcm90b3R5cGUuc3ltYm9scy5ib3R0b21idXR0b249ZnVuY3Rpb24oYSxiLGMsZCxlKXtyZXR1cm4gTChhLTEsYi0xLGMsZCwwLDAsZS5yLGUucil9O1I9PT1NJiZrKFsidG9wYnV0dG9uIiwiYm90dG9tYnV0dG9uIl0sZnVuY3Rpb24oYSl7TS5wcm90b3R5cGUuc3ltYm9sc1thXT1JLnByb3RvdHlwZS5zeW1ib2xzW2FdfSk7aS5NYXA9aS5tYXBDaGFydD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dHlwZW9mIGE9PT0ic3RyaW5nInx8YS5ub2RlTmFtZSxlPWFyZ3VtZW50c1tkPzE6MF0sZj17ZW5kT25UaWNrOiExLGdyaWRMaW5lV2lkdGg6MCxsaW5lV2lkdGg6MCxtaW5QYWRkaW5nOjAsbWF4UGFkZGluZzowLHN0YXJ0T25UaWNrOiExLHRpdGxlOm51bGwsdGlja1Bvc2l0aW9uczpbXX0sZyxoPWkuZ2V0T3B0aW9ucygpLmNyZWRpdHM7Zz1lLnNlcmllcztlLnNlcmllcz1udWxsO2U9bih7Y2hhcnQ6e3Bhbm5pbmc6Inh5IiwKdHlwZToibWFwIn0sY3JlZGl0czp7bWFwVGV4dDpsKGgubWFwVGV4dCwnIFx1MDBhOSA8YSBocmVmPSJ7Z2VvanNvbi5jb3B5cmlnaHRVcmx9Ij57Z2VvanNvbi5jb3B5cmlnaHRTaG9ydH08L2E+JyksbWFwVGV4dEZ1bGw6bChoLm1hcFRleHRGdWxsLCJ7Z2VvanNvbi5jb3B5cmlnaHR9Iil9LHhBeGlzOmYseUF4aXM6bihmLHtyZXZlcnNlZDohMH0pfSxlLHtjaGFydDp7aW52ZXJ0ZWQ6ITEsYWxpZ25UaWNrczohMX19KTtlLnNlcmllcz1nO3JldHVybiBkP25ldyBxKGEsZSxjKTpuZXcgcShlLGIpfX0pOwo="></script> <script src="data:application/x-javascript;base64,LyoKIEhpZ2hjaGFydHMgSlMgdjQuMi4zICgyMDE2LTAyLTA4KQoKIChjKSAyMDE0IEhpZ2hzb2Z0IEFTCiBBdXRob3JzOiBKb24gQXJpbGQgTnlnYXJkIC8gT3lzdGVpbiBNb3NlbmcKCiBMaWNlbnNlOiB3d3cuaGlnaGNoYXJ0cy5jb20vbGljZW5zZQoqLwooZnVuY3Rpb24oZil7dHlwZW9mIG1vZHVsZT09PSJvYmplY3QiJiZtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1mOmYoSGlnaGNoYXJ0cyl9KShmdW5jdGlvbihmKXt2YXIgaj1mLnNlcmllc1R5cGVzLEE9Zi5tYXAsbz1mLm1lcmdlLHQ9Zi5leHRlbmQsdT1mLmV4dGVuZENsYXNzLHY9Zi5nZXRPcHRpb25zKCkucGxvdE9wdGlvbnMsdz1mdW5jdGlvbigpe30saz1mLmVhY2gscz1mLmdyZXAsaT1mLnBpY2ssbT1mLlNlcmllcyxCPWYuc3RhYmxlU29ydCx4PWYuQ29sb3IsQz1mdW5jdGlvbihhLGIsYyl7dmFyIGQsYz1jfHx0aGlzO2ZvcihkIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShkKSYmYi5jYWxsKGMsYVtkXSxkLGEpfSx5PWZ1bmN0aW9uKGEsYixjLGQpe2Q9ZHx8dGhpczthPWF8fFtdO2soYSxmdW5jdGlvbihlLGcpe2M9Yi5jYWxsKGQsYyxlLGcsYSl9KTtyZXR1cm4gY30scj1mdW5jdGlvbihhLGIsYyl7Yz1jfHx0aGlzO2E9Yi5jYWxsKGMsYSk7YSE9PSExJiZyKGEsYiwKYyl9O3YudHJlZW1hcD1vKHYuc2NhdHRlcix7c2hvd0luTGVnZW5kOiExLG1hcmtlcjohMSxib3JkZXJDb2xvcjoiI0UwRTBFMCIsYm9yZGVyV2lkdGg6MSxkYXRhTGFiZWxzOntlbmFibGVkOiEwLGRlZmVyOiExLHZlcnRpY2FsQWxpZ246Im1pZGRsZSIsZm9ybWF0dGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucG9pbnQubmFtZXx8dGhpcy5wb2ludC5pZH0saW5zaWRlOiEwfSx0b29sdGlwOntoZWFkZXJGb3JtYXQ6IiIscG9pbnRGb3JtYXQ6IjxiPntwb2ludC5uYW1lfTwvYj46IHtwb2ludC5ub2RlLnZhbH08L2I+PGJyLz4ifSxsYXlvdXRBbGdvcml0aG06InNsaWNlQW5kRGljZSIsbGF5b3V0U3RhcnRpbmdEaXJlY3Rpb246InZlcnRpY2FsIixhbHRlcm5hdGVTdGFydGluZ0RpcmVjdGlvbjohMSxsZXZlbElzQ29uc3RhbnQ6ITAsc3RhdGVzOntob3Zlcjp7Ym9yZGVyQ29sb3I6IiNBMEEwQTAiLGJyaWdodG5lc3M6ai5oZWF0bWFwPzA6MC4xLHNoYWRvdzohMX19LGRyaWxsVXBCdXR0b246e3Bvc2l0aW9uOnthbGlnbjoicmlnaHQiLAp4Oi0xMCx5OjEwfX19KTtqLnRyZWVtYXA9dShqLnNjYXR0ZXIsbyh7cG9pbnRBdHRyVG9PcHRpb25zOnt9LHBvaW50QXJyYXlNYXA6WyJ2YWx1ZSJdLGF4aXNUeXBlczpqLmhlYXRtYXA/WyJ4QXhpcyIsInlBeGlzIiwiY29sb3JBeGlzIl06WyJ4QXhpcyIsInlBeGlzIl0sb3B0aW9uYWxBeGlzOiJjb2xvckF4aXMiLGdldFN5bWJvbDp3LHBhcmFsbGVsQXJyYXlzOlsieCIsInkiLCJ2YWx1ZSIsImNvbG9yVmFsdWUiXSxjb2xvcktleToiY29sb3JWYWx1ZSIsdHJhbnNsYXRlQ29sb3JzOmouaGVhdG1hcCYmai5oZWF0bWFwLnByb3RvdHlwZS50cmFuc2xhdGVDb2xvcnN9LHt0eXBlOiJ0cmVlbWFwIix0cmFja2VyR3JvdXBzOlsiZ3JvdXAiLCJkYXRhTGFiZWxzR3JvdXAiXSxwb2ludENsYXNzOnUoZi5Qb2ludCx7c2V0VmlzaWJsZTpqLnBpZS5wcm90b3R5cGUucG9pbnRDbGFzcy5wcm90b3R5cGUuc2V0VmlzaWJsZX0pLGdldExpc3RPZlBhcmVudHM6ZnVuY3Rpb24oYSxiKXt2YXIgYz0KeShhLGZ1bmN0aW9uKGEsYyxiKXtjPWkoYy5wYXJlbnQsIiIpO2FbY109PT12b2lkIDAmJihhW2NdPVtdKTthW2NdLnB1c2goYik7cmV0dXJuIGF9LHt9KTtDKGMsZnVuY3Rpb24oYSxjLGcpe2MhPT0iIiYmZi5pbkFycmF5KGMsYik9PT0tMSYmKGsoYSxmdW5jdGlvbihhKXtnWyIiXS5wdXNoKGEpfSksZGVsZXRlIGdbY10pfSk7cmV0dXJuIGN9LGdldFRyZWU6ZnVuY3Rpb24oKXt2YXIgYSxiPXRoaXM7YT1BKHRoaXMuZGF0YSxmdW5jdGlvbihhKXtyZXR1cm4gYS5pZH0pO2E9Yi5nZXRMaXN0T2ZQYXJlbnRzKHRoaXMuZGF0YSxhKTtiLm5vZGVNYXA9W107YT1iLmJ1aWxkTm9kZSgiIiwtMSwwLGEsbnVsbCk7cih0aGlzLm5vZGVNYXBbdGhpcy5yb290Tm9kZV0sZnVuY3Rpb24oYSl7dmFyIGQ9ITEsZT1hLnBhcmVudDthLnZpc2libGU9ITA7aWYoZXx8ZT09PSIiKWQ9Yi5ub2RlTWFwW2VdO3JldHVybiBkfSk7cih0aGlzLm5vZGVNYXBbdGhpcy5yb290Tm9kZV0uY2hpbGRyZW4sZnVuY3Rpb24oYSl7dmFyIGI9CiExO2soYSxmdW5jdGlvbihhKXthLnZpc2libGU9ITA7YS5jaGlsZHJlbi5sZW5ndGgmJihiPShifHxbXSkuY29uY2F0KGEuY2hpbGRyZW4pKX0pO3JldHVybiBifSk7dGhpcy5zZXRUcmVlVmFsdWVzKGEpO3JldHVybiBhfSxpbml0OmZ1bmN0aW9uKGEsYil7bS5wcm90b3R5cGUuaW5pdC5jYWxsKHRoaXMsYSxiKTt0aGlzLm9wdGlvbnMuYWxsb3dEcmlsbFRvTm9kZSYmdGhpcy5kcmlsbFRvKCl9LGJ1aWxkTm9kZTpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBnPXRoaXMsaD1bXSx6PWcucG9pbnRzW2JdLHE7ayhkW2FdfHxbXSxmdW5jdGlvbihiKXtxPWcuYnVpbGROb2RlKGcucG9pbnRzW2JdLmlkLGIsYysxLGQsYSk7aC5wdXNoKHEpfSk7Yj17aWQ6YSxpOmIsY2hpbGRyZW46aCxsZXZlbDpjLHBhcmVudDplLHZpc2libGU6ITF9O2cubm9kZU1hcFtiLmlkXT1iO2lmKHopei5ub2RlPWI7cmV0dXJuIGJ9LHNldFRyZWVWYWx1ZXM6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPWIub3B0aW9ucywKZD0wLGU9W10sZyxoPWIucG9pbnRzW2EuaV07ayhhLmNoaWxkcmVuLGZ1bmN0aW9uKGEpe2E9Yi5zZXRUcmVlVmFsdWVzKGEpO2UucHVzaChhKTthLmlnbm9yZT9yKGEuY2hpbGRyZW4sZnVuY3Rpb24oYSl7dmFyIGM9ITE7ayhhLGZ1bmN0aW9uKGEpe3QoYSx7aWdub3JlOiEwLGlzTGVhZjohMSx2aXNpYmxlOiExfSk7YS5jaGlsZHJlbi5sZW5ndGgmJihjPShjfHxbXSkuY29uY2F0KGEuY2hpbGRyZW4pKX0pO3JldHVybiBjfSk6ZCs9YS52YWx9KTtCKGUsZnVuY3Rpb24oYSxjKXtyZXR1cm4gYS5zb3J0SW5kZXgtYy5zb3J0SW5kZXh9KTtnPWkoaCYmaC52YWx1ZSxkKTt0KGEse2NoaWxkcmVuOmUsY2hpbGRyZW5Ub3RhbDpkLGlnbm9yZTohKGkoaCYmaC52aXNpYmxlLCEwKSYmZz4wKSxpc0xlYWY6YS52aXNpYmxlJiYhZCxsZXZlbER5bmFtaWM6Yy5sZXZlbElzQ29uc3RhbnQ/YS5sZXZlbDphLmxldmVsLWIubm9kZU1hcFtiLnJvb3ROb2RlXS5sZXZlbCxuYW1lOmkoaCYmaC5uYW1lLAoiIiksc29ydEluZGV4OmkoaCYmaC5zb3J0SW5kZXgsLWcpLHZhbDpnfSk7cmV0dXJuIGF9LGNhbGN1bGF0ZUNoaWxkcmVuQXJlYXM6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLGQ9Yy5vcHRpb25zLGU9dGhpcy5sZXZlbE1hcFthLmxldmVsRHluYW1pYysxXSxnPWkoY1tlJiZlLmxheW91dEFsZ29yaXRobV0mJmUubGF5b3V0QWxnb3JpdGhtLGQubGF5b3V0QWxnb3JpdGhtKSxoPWQuYWx0ZXJuYXRlU3RhcnRpbmdEaXJlY3Rpb24sZj1bXSxkPXMoYS5jaGlsZHJlbixmdW5jdGlvbihhKXtyZXR1cm4hYS5pZ25vcmV9KTtpZihlJiZlLmxheW91dFN0YXJ0aW5nRGlyZWN0aW9uKWIuZGlyZWN0aW9uPWUubGF5b3V0U3RhcnRpbmdEaXJlY3Rpb249PT0idmVydGljYWwiPzA6MTtmPWNbZ10oYixkKTtrKGQsZnVuY3Rpb24oYSxkKXt2YXIgZT1mW2RdO2EudmFsdWVzPW8oZSx7dmFsOmEuY2hpbGRyZW5Ub3RhbCxkaXJlY3Rpb246aD8xLWIuZGlyZWN0aW9uOmIuZGlyZWN0aW9ufSk7YS5wb2ludFZhbHVlcz0KbyhlLHt4OmUueC9jLmF4aXNSYXRpbyx3aWR0aDplLndpZHRoL2MuYXhpc1JhdGlvfSk7YS5jaGlsZHJlbi5sZW5ndGgmJmMuY2FsY3VsYXRlQ2hpbGRyZW5BcmVhcyhhLGEudmFsdWVzKX0pfSxzZXRQb2ludFZhbHVlczpmdW5jdGlvbigpe3ZhciBhPXRoaXMueEF4aXMsYj10aGlzLnlBeGlzO2sodGhpcy5wb2ludHMsZnVuY3Rpb24oYyl7dmFyIGQ9Yy5ub2RlLnBvaW50VmFsdWVzLGUsZyxoO2Q/KGU9TWF0aC5yb3VuZChhLnRyYW5zbGF0ZShkLngsMCwwLDAsMSkpLGc9TWF0aC5yb3VuZChhLnRyYW5zbGF0ZShkLngrZC53aWR0aCwwLDAsMCwxKSksaD1NYXRoLnJvdW5kKGIudHJhbnNsYXRlKGQueSwwLDAsMCwxKSksZD1NYXRoLnJvdW5kKGIudHJhbnNsYXRlKGQueStkLmhlaWdodCwwLDAsMCwxKSksYy5zaGFwZVR5cGU9InJlY3QiLGMuc2hhcGVBcmdzPXt4Ok1hdGgubWluKGUsZykseTpNYXRoLm1pbihoLGQpLHdpZHRoOk1hdGguYWJzKGctZSksaGVpZ2h0Ok1hdGguYWJzKGQtCmgpfSxjLnBsb3RYPWMuc2hhcGVBcmdzLngrYy5zaGFwZUFyZ3Mud2lkdGgvMixjLnBsb3RZPWMuc2hhcGVBcmdzLnkrYy5zaGFwZUFyZ3MuaGVpZ2h0LzIpOihkZWxldGUgYy5wbG90WCxkZWxldGUgYy5wbG90WSl9KX0sc2V0Q29sb3JSZWN1cnNpdmU6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLGQsZTtpZihhKXtkPWMucG9pbnRzW2EuaV07ZT1jLmxldmVsTWFwW2EubGV2ZWxEeW5hbWljXTtiPWkoZCYmZC5vcHRpb25zLmNvbG9yLGUmJmUuY29sb3IsYik7aWYoZClkLmNvbG9yPWI7YS5jaGlsZHJlbi5sZW5ndGgmJmsoYS5jaGlsZHJlbixmdW5jdGlvbihhKXtjLnNldENvbG9yUmVjdXJzaXZlKGEsYil9KX19LGFsZ29yaXRobUdyb3VwOmZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuaGVpZ2h0PWE7dGhpcy53aWR0aD1iO3RoaXMucGxvdD1kO3RoaXMuc3RhcnREaXJlY3Rpb249dGhpcy5kaXJlY3Rpb249Yzt0aGlzLmxIPXRoaXMubkg9dGhpcy5sVz10aGlzLm5XPXRoaXMudG90YWw9MDsKdGhpcy5lbEFycj1bXTt0aGlzLmxQPXt0b3RhbDowLGxIOjAsbkg6MCxsVzowLG5XOjAsblI6MCxsUjowLGFzcGVjdFJhdGlvOmZ1bmN0aW9uKGEsYyl7cmV0dXJuIE1hdGgubWF4KGEvYyxjL2EpfX07dGhpcy5hZGRFbGVtZW50PWZ1bmN0aW9uKGEpe3RoaXMubFAudG90YWw9dGhpcy5lbEFyclt0aGlzLmVsQXJyLmxlbmd0aC0xXTt0aGlzLnRvdGFsKz1hO3RoaXMuZGlyZWN0aW9uPT09MD8odGhpcy5sVz10aGlzLm5XLHRoaXMubFAubEg9dGhpcy5sUC50b3RhbC90aGlzLmxXLHRoaXMubFAubFI9dGhpcy5sUC5hc3BlY3RSYXRpbyh0aGlzLmxXLHRoaXMubFAubEgpLHRoaXMublc9dGhpcy50b3RhbC90aGlzLmhlaWdodCx0aGlzLmxQLm5IPXRoaXMubFAudG90YWwvdGhpcy5uVyx0aGlzLmxQLm5SPXRoaXMubFAuYXNwZWN0UmF0aW8odGhpcy5uVyx0aGlzLmxQLm5IKSk6KHRoaXMubEg9dGhpcy5uSCx0aGlzLmxQLmxXPXRoaXMubFAudG90YWwvdGhpcy5sSCx0aGlzLmxQLmxSPXRoaXMubFAuYXNwZWN0UmF0aW8odGhpcy5sUC5sVywKdGhpcy5sSCksdGhpcy5uSD10aGlzLnRvdGFsL3RoaXMud2lkdGgsdGhpcy5sUC5uVz10aGlzLmxQLnRvdGFsL3RoaXMubkgsdGhpcy5sUC5uUj10aGlzLmxQLmFzcGVjdFJhdGlvKHRoaXMubFAublcsdGhpcy5uSCkpO3RoaXMuZWxBcnIucHVzaChhKX07dGhpcy5yZXNldD1mdW5jdGlvbigpe3RoaXMubFc9dGhpcy5uVz0wO3RoaXMuZWxBcnI9W107dGhpcy50b3RhbD0wfX0sYWxnb3JpdGhtQ2FsY1BvaW50czpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxnLGgsZixxPWMubFcsbj1jLmxILGw9Yy5wbG90LGksaj0wLHA9Yy5lbEFyci5sZW5ndGgtMTtiPyhxPWMublcsbj1jLm5IKTppPWMuZWxBcnJbYy5lbEFyci5sZW5ndGgtMV07ayhjLmVsQXJyLGZ1bmN0aW9uKGEpe2lmKGJ8fGo8cCljLmRpcmVjdGlvbj09PTA/KGU9bC54LGc9bC55LGg9cSxmPWEvaCk6KGU9bC54LGc9bC55LGY9bixoPWEvZiksZC5wdXNoKHt4OmUseTpnLHdpZHRoOmgsaGVpZ2h0OmZ9KSxjLmRpcmVjdGlvbj09PQowP2wueSs9ZjpsLngrPWg7ais9MX0pO2MucmVzZXQoKTtjLmRpcmVjdGlvbj09PTA/Yy53aWR0aC09cTpjLmhlaWdodC09bjtsLnk9bC5wYXJlbnQueSsobC5wYXJlbnQuaGVpZ2h0LWMuaGVpZ2h0KTtsLng9bC5wYXJlbnQueCsobC5wYXJlbnQud2lkdGgtYy53aWR0aCk7aWYoYSljLmRpcmVjdGlvbj0xLWMuZGlyZWN0aW9uO2J8fGMuYWRkRWxlbWVudChpKX0sYWxnb3JpdGhtTG93QXNwZWN0UmF0aW86ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVtdLGU9dGhpcyxnLGY9e3g6Yi54LHk6Yi55LHBhcmVudDpifSxpPTAsaj1jLmxlbmd0aC0xLG49bmV3IHRoaXMuYWxnb3JpdGhtR3JvdXAoYi5oZWlnaHQsYi53aWR0aCxiLmRpcmVjdGlvbixmKTtrKGMsZnVuY3Rpb24oYyl7Zz1iLndpZHRoKmIuaGVpZ2h0KihjLnZhbC9iLnZhbCk7bi5hZGRFbGVtZW50KGcpO24ubFAublI+bi5sUC5sUiYmZS5hbGdvcml0aG1DYWxjUG9pbnRzKGEsITEsbixkLGYpO2k9PT1qJiZlLmFsZ29yaXRobUNhbGNQb2ludHMoYSwKITAsbixkLGYpO2krPTF9KTtyZXR1cm4gZH0sYWxnb3JpdGhtRmlsbDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9W10sZSxmPWIuZGlyZWN0aW9uLGg9Yi54LGk9Yi55LGo9Yi53aWR0aCxuPWIuaGVpZ2h0LGwsbyxtLHA7ayhjLGZ1bmN0aW9uKGMpe2U9Yi53aWR0aCpiLmhlaWdodCooYy52YWwvYi52YWwpO2w9aDtvPWk7Zj09PTA/KHA9bixtPWUvcCxqLT1tLGgrPW0pOihtPWoscD1lL20sbi09cCxpKz1wKTtkLnB1c2goe3g6bCx5Om8sd2lkdGg6bSxoZWlnaHQ6cH0pO2EmJihmPTEtZil9KTtyZXR1cm4gZH0sc3RyaXA6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5hbGdvcml0aG1Mb3dBc3BlY3RSYXRpbyghMSxhLGIpfSxzcXVhcmlmaWVkOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuYWxnb3JpdGhtTG93QXNwZWN0UmF0aW8oITAsYSxiKX0sc2xpY2VBbmREaWNlOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuYWxnb3JpdGhtRmlsbCghMCxhLGIpfSxzdHJpcGVzOmZ1bmN0aW9uKGEsCmIpe3JldHVybiB0aGlzLmFsZ29yaXRobUZpbGwoITEsYSxiKX0sdHJhbnNsYXRlOmZ1bmN0aW9uKCl7dmFyIGEsYjttLnByb3RvdHlwZS50cmFuc2xhdGUuY2FsbCh0aGlzKTt0aGlzLnJvb3ROb2RlPWkodGhpcy5vcHRpb25zLnJvb3RJZCwiIik7dGhpcy5sZXZlbE1hcD15KHRoaXMub3B0aW9ucy5sZXZlbHMsZnVuY3Rpb24oYSxiKXthW2IubGV2ZWxdPWI7cmV0dXJuIGF9LHt9KTtiPXRoaXMudHJlZT10aGlzLmdldFRyZWUoKTt0aGlzLmF4aXNSYXRpbz10aGlzLnhBeGlzLmxlbi90aGlzLnlBeGlzLmxlbjt0aGlzLm5vZGVNYXBbIiJdLnBvaW50VmFsdWVzPWE9e3g6MCx5OjAsd2lkdGg6MTAwLGhlaWdodDoxMDB9O3RoaXMubm9kZU1hcFsiIl0udmFsdWVzPWE9byhhLHt3aWR0aDphLndpZHRoKnRoaXMuYXhpc1JhdGlvLGRpcmVjdGlvbjp0aGlzLm9wdGlvbnMubGF5b3V0U3RhcnRpbmdEaXJlY3Rpb249PT0idmVydGljYWwiPzA6MSx2YWw6Yi52YWx9KTt0aGlzLmNhbGN1bGF0ZUNoaWxkcmVuQXJlYXMoYiwKYSk7dGhpcy5jb2xvckF4aXM/dGhpcy50cmFuc2xhdGVDb2xvcnMoKTp0aGlzLm9wdGlvbnMuY29sb3JCeVBvaW50fHx0aGlzLnNldENvbG9yUmVjdXJzaXZlKHRoaXMudHJlZSx2b2lkIDApO2I9dGhpcy5ub2RlTWFwW3RoaXMucm9vdE5vZGVdLnBvaW50VmFsdWVzO3RoaXMueEF4aXMuc2V0RXh0cmVtZXMoYi54LGIueCtiLndpZHRoLCExKTt0aGlzLnlBeGlzLnNldEV4dHJlbWVzKGIueSxiLnkrYi5oZWlnaHQsITEpO3RoaXMueEF4aXMuc2V0U2NhbGUoKTt0aGlzLnlBeGlzLnNldFNjYWxlKCk7dGhpcy5zZXRQb2ludFZhbHVlcygpfSxkcmF3RGF0YUxhYmVsczpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1zKGEucG9pbnRzLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGUudmlzaWJsZX0pLGMsZDtrKGIsZnVuY3Rpb24oYil7ZD1hLmxldmVsTWFwW2Iubm9kZS5sZXZlbER5bmFtaWNdO2M9e3N0eWxlOnt9fTtpZighYi5ub2RlLmlzTGVhZiljLmVuYWJsZWQ9ITE7aWYoZCYmZC5kYXRhTGFiZWxzKWM9Cm8oYyxkLmRhdGFMYWJlbHMpLGEuX2hhc1BvaW50TGFiZWxzPSEwO2lmKGIuc2hhcGVBcmdzKWMuc3R5bGUud2lkdGg9Yi5zaGFwZUFyZ3Mud2lkdGg7Yi5kbE9wdGlvbnM9byhjLGIub3B0aW9ucy5kYXRhTGFiZWxzKX0pO20ucHJvdG90eXBlLmRyYXdEYXRhTGFiZWxzLmNhbGwodGhpcyl9LGFsaWduRGF0YUxhYmVsOmouY29sdW1uLnByb3RvdHlwZS5hbGlnbkRhdGFMYWJlbCxwb2ludEF0dHJpYnM6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmxldmVsTWFwW2Eubm9kZS5sZXZlbER5bmFtaWNdfHx7fSxkPXRoaXMub3B0aW9ucyxlPWImJmQuc3RhdGVzW2JdfHx7fSxjPXtzdHJva2U6YS5ib3JkZXJDb2xvcnx8Yy5ib3JkZXJDb2xvcnx8ZS5ib3JkZXJDb2xvcnx8ZC5ib3JkZXJDb2xvciwic3Ryb2tlLXdpZHRoIjppKGEuYm9yZGVyV2lkdGgsYy5ib3JkZXJXaWR0aCxlLmJvcmRlcldpZHRoLGQuYm9yZGVyV2lkdGgpLGRhc2hzdHlsZTphLmJvcmRlckRhc2hTdHlsZXx8Yy5ib3JkZXJEYXNoU3R5bGV8fAplLmJvcmRlckRhc2hTdHlsZXx8ZC5ib3JkZXJEYXNoU3R5bGUsZmlsbDphLmNvbG9yfHx0aGlzLmNvbG9yLHpJbmRleDpiPT09ImhvdmVyIj8xOjB9O2lmKGEubm9kZS5sZXZlbDw9dGhpcy5ub2RlTWFwW3RoaXMucm9vdE5vZGVdLmxldmVsKWMuZmlsbD0ibm9uZSIsY1sic3Ryb2tlLXdpZHRoIl09MDtlbHNlIGlmKGEubm9kZS5pc0xlYWYpe2lmKGIpYy5maWxsPXgoYy5maWxsKS5icmlnaHRlbihlLmJyaWdodG5lc3MpLmdldCgpfWVsc2UgYy5maWxsPWkoZC5pbnRlcmFjdEJ5TGVhZiwhZC5hbGxvd0RyaWxsVG9Ob2RlKT8ibm9uZSI6eChjLmZpbGwpLnNldE9wYWNpdHkoYj09PSJob3ZlciI/MC43NTowLjE1KS5nZXQoKTtyZXR1cm4gY30sZHJhd1BvaW50czpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj1zKGEucG9pbnRzLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGUudmlzaWJsZX0pO2soYixmdW5jdGlvbihjKXt2YXIgYj0ibGV2ZWxHcm91cC0iK2Mubm9kZS5sZXZlbER5bmFtaWM7CmFbYl18fChhW2JdPWEuY2hhcnQucmVuZGVyZXIuZyhiKS5hdHRyKHt6SW5kZXg6MUUzLWMubm9kZS5sZXZlbER5bmFtaWN9KS5hZGQoYS5ncm91cCkpO2MuZ3JvdXA9YVtiXTtjLnBvaW50QXR0cj17IiI6YS5wb2ludEF0dHJpYnMoYyksaG92ZXI6YS5wb2ludEF0dHJpYnMoYywiaG92ZXIiKSxzZWxlY3Q6e319fSk7ai5jb2x1bW4ucHJvdG90eXBlLmRyYXdQb2ludHMuY2FsbCh0aGlzKTthLm9wdGlvbnMuYWxsb3dEcmlsbFRvTm9kZSYmayhiLGZ1bmN0aW9uKGIpe3ZhciBkO2lmKGIuZ3JhcGhpYylkPWIuZHJpbGxJZD1hLm9wdGlvbnMuaW50ZXJhY3RCeUxlYWY/YS5kcmlsbFRvQnlMZWFmKGIpOmEuZHJpbGxUb0J5R3JvdXAoYiksYi5ncmFwaGljLmNzcyh7Y3Vyc29yOmQ/InBvaW50ZXIiOiJkZWZhdWx0In0pfSl9LGRyaWxsVG86ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2YuYWRkRXZlbnQoYSwiY2xpY2siLGZ1bmN0aW9uKGIpe3ZhciBiPWIucG9pbnQsYz1iLmRyaWxsSWQsZDtjJiYKKGQ9YS5ub2RlTWFwW2Eucm9vdE5vZGVdLm5hbWV8fGEucm9vdE5vZGUsYi5zZXRTdGF0ZSgiIiksYS5kcmlsbFRvTm9kZShjKSxhLnNob3dEcmlsbFVwQnV0dG9uKGQpKX0pfSxkcmlsbFRvQnlHcm91cDpmdW5jdGlvbihhKXt2YXIgYj0hMTtpZihhLm5vZGUubGV2ZWwtdGhpcy5ub2RlTWFwW3RoaXMucm9vdE5vZGVdLmxldmVsPT09MSYmIWEubm9kZS5pc0xlYWYpYj1hLmlkO3JldHVybiBifSxkcmlsbFRvQnlMZWFmOmZ1bmN0aW9uKGEpe3ZhciBiPSExO2lmKGEubm9kZS5wYXJlbnQhPT10aGlzLnJvb3ROb2RlJiZhLm5vZGUuaXNMZWFmKWZvcihhPWEubm9kZTshYjspaWYoYT10aGlzLm5vZGVNYXBbYS5wYXJlbnRdLGEucGFyZW50PT09dGhpcy5yb290Tm9kZSliPWEuaWQ7cmV0dXJuIGJ9LGRyaWxsVXA6ZnVuY3Rpb24oKXt2YXIgYT1udWxsO3RoaXMucm9vdE5vZGUmJihhPXRoaXMubm9kZU1hcFt0aGlzLnJvb3ROb2RlXSxhPWEucGFyZW50IT09bnVsbD90aGlzLm5vZGVNYXBbYS5wYXJlbnRdOgp0aGlzLm5vZGVNYXBbIiJdKTtpZihhIT09bnVsbCl0aGlzLmRyaWxsVG9Ob2RlKGEuaWQpLGEuaWQ9PT0iIj90aGlzLmRyaWxsVXBCdXR0b249dGhpcy5kcmlsbFVwQnV0dG9uLmRlc3Ryb3koKTooYT10aGlzLm5vZGVNYXBbYS5wYXJlbnRdLHRoaXMuc2hvd0RyaWxsVXBCdXR0b24oYS5uYW1lfHxhLmlkKSl9LGRyaWxsVG9Ob2RlOmZ1bmN0aW9uKGEpe3RoaXMub3B0aW9ucy5yb290SWQ9YTt0aGlzLmlzRGlydHk9ITA7dGhpcy5jaGFydC5yZWRyYXcoKX0sc2hvd0RyaWxsVXBCdXR0b246ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxhPWF8fCI8IEJhY2siLGM9Yi5vcHRpb25zLmRyaWxsVXBCdXR0b24sZCxlO2lmKGMudGV4dClhPWMudGV4dDt0aGlzLmRyaWxsVXBCdXR0b24/dGhpcy5kcmlsbFVwQnV0dG9uLmF0dHIoe3RleHQ6YX0pLmFsaWduKCk6KGU9KGQ9Yy50aGVtZSkmJmQuc3RhdGVzLHRoaXMuZHJpbGxVcEJ1dHRvbj10aGlzLmNoYXJ0LnJlbmRlcmVyLmJ1dHRvbihhLG51bGwsCm51bGwsZnVuY3Rpb24oKXtiLmRyaWxsVXAoKX0sZCxlJiZlLmhvdmVyLGUmJmUuc2VsZWN0KS5hdHRyKHthbGlnbjpjLnBvc2l0aW9uLmFsaWduLHpJbmRleDo5fSkuYWRkKCkuYWxpZ24oYy5wb3NpdGlvbiwhMSxjLnJlbGF0aXZlVG98fCJwbG90Qm94IikpfSxidWlsZEtEVHJlZTp3LGRyYXdMZWdlbmRTeW1ib2w6Zi5MZWdlbmRTeW1ib2xNaXhpbi5kcmF3UmVjdGFuZ2xlLGdldEV4dHJlbWVzOmZ1bmN0aW9uKCl7bS5wcm90b3R5cGUuZ2V0RXh0cmVtZXMuY2FsbCh0aGlzLHRoaXMuY29sb3JWYWx1ZURhdGEpO3RoaXMudmFsdWVNaW49dGhpcy5kYXRhTWluO3RoaXMudmFsdWVNYXg9dGhpcy5kYXRhTWF4O20ucHJvdG90eXBlLmdldEV4dHJlbWVzLmNhbGwodGhpcyl9LGdldEV4dHJlbWVzRnJvbUFsbDohMCxiaW5kQXhlczpmdW5jdGlvbigpe3ZhciBhPXtlbmRPblRpY2s6ITEsZ3JpZExpbmVXaWR0aDowLGxpbmVXaWR0aDowLG1pbjowLGRhdGFNaW46MCxtaW5QYWRkaW5nOjAsbWF4OjEwMCwKZGF0YU1heDoxMDAsbWF4UGFkZGluZzowLHN0YXJ0T25UaWNrOiExLHRpdGxlOm51bGwsdGlja1Bvc2l0aW9uczpbXX07bS5wcm90b3R5cGUuYmluZEF4ZXMuY2FsbCh0aGlzKTtmLmV4dGVuZCh0aGlzLnlBeGlzLm9wdGlvbnMsYSk7Zi5leHRlbmQodGhpcy54QXhpcy5vcHRpb25zLGEpfX0pKX0pOwo="></script> <script src="data:application/x-javascript;base64,dmFyIEhDRGVmYXVsdHMgPSAkLmV4dGVuZCh0cnVlLCB7fSwgSGlnaGNoYXJ0cy5nZXRPcHRpb25zKCksIHt9KTsNCg0KZnVuY3Rpb24gUmVzZXRIaWdoY2hhcnRzT3B0aW9ucygpIHsNCiAgICAvLyBGb3J0dW5hdGVseSwgSGlnaGNoYXJ0cyByZXR1cm5zIHRoZSByZWZlcmVuY2UgdG8gZGVmYXVsdE9wdGlvbnMgaXRzZWxmDQogICAgLy8gV2UgY2FuIG1hbmlwdWxhdGUgdGhpcyBhbmQgZGVsZXRlIGFsbCB0aGUgcHJvcGVydGllcw0KICAgIHZhciBkZWZhdWx0T3B0aW9ucyA9IEhpZ2hjaGFydHMuZ2V0T3B0aW9ucygpOw0KICAgIGZvciAodmFyIHByb3AgaW4gZGVmYXVsdE9wdGlvbnMpIHsNCiAgICAgICAgaWYgKHR5cGVvZiBkZWZhdWx0T3B0aW9uc1twcm9wXSAhPT0gJ2Z1bmN0aW9uJykgZGVsZXRlIGRlZmF1bHRPcHRpb25zW3Byb3BdOw0KICAgIH0NCiAgICAvLyBGYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHRzIHRoYXQgd2UgY2FwdHVyZWQgaW5pdGlhbGx5LCB0aGlzIHJlc2V0cyB0aGUgdGhlbWUNCiAgICBIaWdoY2hhcnRzLnNldE9wdGlvbnMoSENEZWZhdWx0cyk7DQp9DQo="></script> <script src="data:application/x-javascript;base64,LyoqCiAqIERyYWdnYWJsZSBwb2ludHMgcGx1Z2luIGZvciBIaWdoY2hhcnRzIEpTCiAqIEF1dGhvcjogVG9yc3RlaW4gSG9uc2kKICogTGljZW5zZTogTUlUIExpY2Vuc2UKICogVmVyc2lvbjogMi4wLjAKICovCgovKmdsb2JhbCBkb2N1bWVudCwgSGlnaGNoYXJ0cyAqLwooZnVuY3Rpb24gKGZhY3RvcnkpIHsKICAgIGlmICh0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0JyAmJiBtb2R1bGUuZXhwb3J0cykgewogICAgICAgIG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeTsKICAgIH0gZWxzZSB7CiAgICAgICAgZmFjdG9yeShIaWdoY2hhcnRzKTsKICAgIH0KfShmdW5jdGlvbiAoSGlnaGNoYXJ0cykgewoKICAgICd1c2Ugc3RyaWN0JzsKCiAgICB2YXIgYWRkRXZlbnQgPSBIaWdoY2hhcnRzLmFkZEV2ZW50LAogICAgICAgIGVhY2ggPSBIaWdoY2hhcnRzLmVhY2gsCiAgICAgICAgcGljayA9IEhpZ2hjaGFydHMucGljazsKCiAgICAvKioKICAgICAqIEZpbHRlciBieSBkcmFnTWluIGFuZCBkcmFnTWF4CiAgICAgKi8KICAgIGZ1bmN0aW9uIGZpbHRlclJhbmdlKG5ld1ksIHNlcmllcywgWE9yWSkgewogICAgICAgIHZhciBvcHRpb25zID0gc2VyaWVzLm9wdGlvbnMsCiAgICAgICAgICAgIGRyYWdNaW4gPSBwaWNrKG9wdGlvbnNbJ2RyYWdNaW4nICsgWE9yWV0sIHVuZGVmaW5lZCksCiAgICAgICAgICAgIGRyYWdNYXggPSBwaWNrKG9wdGlvbnNbJ2RyYWdNYXgnICsgWE9yWV0sIHVuZGVmaW5lZCk7CgogICAgICAgIGlmIChuZXdZIDwgZHJhZ01pbikgewogICAgICAgICAgICBuZXdZID0gZHJhZ01pbjsKICAgICAgICB9IGVsc2UgaWYgKG5ld1kgPiBkcmFnTWF4KSB7CiAgICAgICAgICAgIG5ld1kgPSBkcmFnTWF4OwogICAgICAgIH0KICAgICAgICByZXR1cm4gbmV3WTsKICAgIH0KCgogICAgSGlnaGNoYXJ0cy5DaGFydC5wcm90b3R5cGUuY2FsbGJhY2tzLnB1c2goZnVuY3Rpb24gKGNoYXJ0KSB7CgogICAgICAgIHZhciBjb250YWluZXIgPSBjaGFydC5jb250YWluZXIsCiAgICAgICAgICAgIGRyYWdQb2ludCwKICAgICAgICAgICAgZHJhZ1gsCiAgICAgICAgICAgIGRyYWdZLAogICAgICAgICAgICBkcmFnUGxvdFgsCiAgICAgICAgICAgIGRyYWdQbG90WTsKCiAgICAgICAgLyoqCiAgICAgICAgICogR2V0IHRoZSBuZXcgdmFsdWVzIGJhc2VkIG9uIHRoZSBkcmFnIGV2ZW50CiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gZ2V0TmV3UG9zKGUpIHsKICAgICAgICAgICAgdmFyIG9yaWdpbmFsRXZlbnQgPSBlLm9yaWdpbmFsRXZlbnQgfHwgZSwKICAgICAgICAgICAgICAgIHBhZ2VYID0gb3JpZ2luYWxFdmVudC5jaGFuZ2VkVG91Y2hlcyA/IG9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVggOiBlLnBhZ2VYLAogICAgICAgICAgICAgICAgcGFnZVkgPSBvcmlnaW5hbEV2ZW50LmNoYW5nZWRUb3VjaGVzID8gb3JpZ2luYWxFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWSA6IGUucGFnZVksCiAgICAgICAgICAgICAgICBkcmFnZ2FibGVYID0gZHJhZ1BvaW50LnNlcmllcy5vcHRpb25zLmRyYWdnYWJsZVgsCiAgICAgICAgICAgICAgICBkcmFnZ2FibGVZID0gZHJhZ1BvaW50LnNlcmllcy5vcHRpb25zLmRyYWdnYWJsZVksCiAgICAgICAgICAgICAgICBkZWx0YVggPSBkcmFnWCAtIHBhZ2VYLAogICAgICAgICAgICAgICAgZGVsdGFZID0gZHJhZ1kgLSBwYWdlWSwKICAgICAgICAgICAgICAgIHNlcmllcyA9IGRyYWdQb2ludC5zZXJpZXMsCiAgICAgICAgICAgICAgICBuZXdQbG90WCA9IGRyYWdQbG90WCAtIGRlbHRhWCwKICAgICAgICAgICAgICAgIG5ld1Bsb3RZID0gZHJhZ1Bsb3RZIC0gZGVsdGFZLAogICAgICAgICAgICAgICAgbmV3WCA9IGRyYWdYID09PSB1bmRlZmluZWQgPyBkcmFnUG9pbnQueCA6IHNlcmllcy54QXhpcy50b1ZhbHVlKG5ld1Bsb3RYLCB0cnVlKSwKICAgICAgICAgICAgICAgIG5ld1kgPSBkcmFnWSA9PT0gdW5kZWZpbmVkID8gZHJhZ1BvaW50LnkgOiBzZXJpZXMueUF4aXMudG9WYWx1ZShuZXdQbG90WSwgdHJ1ZSk7CgogICAgICAgICAgICBuZXdYID0gZmlsdGVyUmFuZ2UobmV3WCwgc2VyaWVzLCAnWCcpOwogICAgICAgICAgICBuZXdZID0gZmlsdGVyUmFuZ2UobmV3WSwgc2VyaWVzLCAnWScpOwoKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIHg6IGRyYWdnYWJsZVggPyBuZXdYIDogZHJhZ1BvaW50LngsCiAgICAgICAgICAgICAgICB5OiBkcmFnZ2FibGVZID8gbmV3WSA6IGRyYWdQb2ludC55CiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiBIYW5kbGVyIGZvciBtb3VzZXVwCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gZHJvcChlKSB7CiAgICAgICAgICAgIGlmIChkcmFnUG9pbnQpIHsKICAgICAgICAgICAgICAgIGlmIChlKSB7CiAgICAgICAgICAgICAgICAgICAgZHJhZ1BvaW50LnVwZGF0ZShnZXROZXdQb3MoZSkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZHJhZ1BvaW50LmZpcmVQb2ludEV2ZW50KCdkcm9wJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZHJhZ1BvaW50ID0gZHJhZ1ggPSBkcmFnWSA9IHVuZGVmaW5lZDsKICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIEhhbmRsZXIgZm9yIG1vdXNlZG93bgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIG1vdXNlRG93bihlKSB7CiAgICAgICAgICAgIHZhciBvcHRpb25zLAogICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudCA9IGUub3JpZ2luYWxFdmVudCB8fCBlLAogICAgICAgICAgICAgICAgaG92ZXJQb2ludCwKICAgICAgICAgICAgICAgIHNlcmllczsKCiAgICAgICAgICAgIGlmICgob3JpZ2luYWxFdmVudC50YXJnZXQuZ2V0QXR0cmlidXRlKCdjbGFzcycpIHx8ICcnKS5pbmRleE9mKCdoaWdoY2hhcnRzLWhhbmRsZScpICE9PSAtMSkgewogICAgICAgICAgICAgICAgaG92ZXJQb2ludCA9IG9yaWdpbmFsRXZlbnQudGFyZ2V0LnBvaW50OwogICAgICAgICAgICB9CgogICAgICAgICAgICBzZXJpZXMgPSBjaGFydC5ob3ZlclBvaW50ICYmIGNoYXJ0LmhvdmVyUG9pbnQuc2VyaWVzOwogICAgICAgICAgICBpZiAoIWhvdmVyUG9pbnQgJiYgY2hhcnQuaG92ZXJQb2ludCAmJiAoIXNlcmllcy51c2VEcmFnSGFuZGxlIHx8ICFzZXJpZXMudXNlRHJhZ0hhbmRsZSgpKSkgewogICAgICAgICAgICAgICAgaG92ZXJQb2ludCA9IGNoYXJ0LmhvdmVyUG9pbnQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChob3ZlclBvaW50KSB7CiAgICAgICAgICAgICAgICBvcHRpb25zID0gaG92ZXJQb2ludC5zZXJpZXMub3B0aW9uczsKICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmRyYWdnYWJsZVgpIHsKICAgICAgICAgICAgICAgICAgICBkcmFnUG9pbnQgPSBob3ZlclBvaW50OwogICAgICAgICAgICAgICAgICAgIGRyYWdYID0gb3JpZ2luYWxFdmVudC5jaGFuZ2VkVG91Y2hlcyA/IG9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVggOiBlLnBhZ2VYOwogICAgICAgICAgICAgICAgICAgIGRyYWdQbG90WCA9IGRyYWdQb2ludC5wbG90WDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5kcmFnZ2FibGVZKSB7CiAgICAgICAgICAgICAgICAgICAgZHJhZ1BvaW50ID0gaG92ZXJQb2ludDsKCiAgICAgICAgICAgICAgICAgICAgZHJhZ1kgPSBvcmlnaW5hbEV2ZW50LmNoYW5nZWRUb3VjaGVzID8gb3JpZ2luYWxFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWSA6IGUucGFnZVk7CiAgICAgICAgICAgICAgICAgICAgZHJhZ1Bsb3RZID0gZHJhZ1BvaW50LnBsb3RZICsgKGNoYXJ0LnBsb3RIZWlnaHQgLSAoZHJhZ1BvaW50LnlCb3R0b20gfHwgY2hhcnQucGxvdEhlaWdodCkpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIERpc2FibGUgem9vbWluZyB3aGVuIGRyYWdnaW5nCiAgICAgICAgICAgICAgICBpZiAoZHJhZ1BvaW50KSB7CiAgICAgICAgICAgICAgICAgICAgY2hhcnQubW91c2VJc0Rvd24gPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogSGFuZGxlciBmb3IgbW91c2Vtb3ZlLiBJZiB0aGUgbW91c2UgYnV0dG9uIGlzIHByZXNzZWQsIGRyYWcgdGhlIGVsZW1lbnQuCiAgICAgICAgICovCiAgICAgICAgZnVuY3Rpb24gbW91c2VNb3ZlKGUpIHsKCiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCiAgICAgICAgICAgIGlmIChkcmFnUG9pbnQpIHsKCiAgICAgICAgICAgICAgICB2YXIgbmV3UG9zID0gZ2V0TmV3UG9zKGUpLAogICAgICAgICAgICAgICAgICAgIHByb2NlZWQsCiAgICAgICAgICAgICAgICAgICAgc2VyaWVzID0gZHJhZ1BvaW50LnNlcmllczsKCiAgICAgICAgICAgICAgICAvLyBGaXJlIHRoZSAnZHJhZycgZXZlbnQgd2l0aCBhIGRlZmF1bHQgYWN0aW9uIHRvIG1vdmUgdGhlIHBvaW50LgogICAgICAgICAgICAgICAgZHJhZ1BvaW50LmZpcmVQb2ludEV2ZW50KAogICAgICAgICAgICAgICAgICAgICdkcmFnJywKICAgICAgICAgICAgICAgICAgICBuZXdQb3MsCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICBwcm9jZWVkID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdQb2ludC51cGRhdGUobmV3UG9zLCBmYWxzZSk7CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBIaWRlIGhhbG8gd2hpbGUgZHJhZ2dpbmcgKCMxNCkKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlcmllcy5oYWxvKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJpZXMuaGFsbyA9IHNlcmllcy5oYWxvLmRlc3Ryb3koKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoYXJ0LnRvb2x0aXApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJ0LnRvb2x0aXAucmVmcmVzaChjaGFydC50b29sdGlwLnNoYXJlZCA/IFtkcmFnUG9pbnRdIDogZHJhZ1BvaW50KTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VyaWVzLnN0YWNrS2V5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFydC5yZWRyYXcoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcmllcy5yZWRyYXcoKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgLy8gVGhlIGRlZmF1bHQgaGFuZGxlciBoYXMgbm90IHJ1biBiZWNhdXNlIG9mIHByZXZlbnRlZCBkZWZhdWx0CiAgICAgICAgICAgICAgICBpZiAoIXByb2NlZWQpIHsKICAgICAgICAgICAgICAgICAgICBkcm9wKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIEtpbGwgYW5pbWF0aW9uIG9uIGZpcnN0IGRyYWcgd2hlbiBjaGFydC5hbmltYXRpb24gaXMgc2V0IHRvIGZhbHNlLgogICAgICAgIGNoYXJ0LnJlZHJhdygpOwoKICAgICAgICAvLyBBZGQnZW0KICAgICAgICBhZGRFdmVudChjb250YWluZXIsICdtb3VzZW1vdmUnLCBtb3VzZU1vdmUpOwogICAgICAgIGFkZEV2ZW50KGNvbnRhaW5lciwgJ3RvdWNobW92ZScsIG1vdXNlTW92ZSk7CiAgICAgICAgYWRkRXZlbnQoY29udGFpbmVyLCAnbW91c2Vkb3duJywgbW91c2VEb3duKTsKICAgICAgICBhZGRFdmVudChjb250YWluZXIsICd0b3VjaHN0YXJ0JywgbW91c2VEb3duKTsKICAgICAgICBhZGRFdmVudChkb2N1bWVudCwgJ21vdXNldXAnLCBkcm9wKTsKICAgICAgICBhZGRFdmVudChkb2N1bWVudCwgJ3RvdWNoZW5kJywgZHJvcCk7CiAgICAgICAgYWRkRXZlbnQoY29udGFpbmVyLCAnbW91c2VsZWF2ZScsIGRyb3ApOwogICAgfSk7CgogICAgLyoqCiAgICAgKiBFeHRlbmQgdGhlIGNvbHVtbiBjaGFydCB0cmFja2VyIGJ5IHZpc3VhbGl6aW5nIHRoZSB0cmFja2VyIG9iamVjdCBmb3Igc21hbGwgcG9pbnRzCiAgICAgKi8KICAgIEhpZ2hjaGFydHMuc2VyaWVzVHlwZXMuY29sdW1uLnByb3RvdHlwZS51c2VEcmFnSGFuZGxlID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBpczNkID0gdGhpcy5jaGFydC5pczNkICYmIHRoaXMuY2hhcnQuaXMzZCgpOwogICAgICAgIHJldHVybiAhaXMzZDsKICAgIH07CgogICAgSGlnaGNoYXJ0cy5zZXJpZXNUeXBlcy5jb2x1bW4ucHJvdG90eXBlLmRyYWdIYW5kbGVQYXRoID0gZnVuY3Rpb24gKHNoYXBlQXJncywgc3Ryb2tlVykgewogICAgICAgIHZhciB4MSA9IHNoYXBlQXJncy54LAogICAgICAgICAgICB5ID0gc2hhcGVBcmdzLnksCiAgICAgICAgICAgIHgyID0gc2hhcGVBcmdzLnggKyBzaGFwZUFyZ3Mud2lkdGg7CgogICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICdNJywgeDEsIHkgKyA2ICogc3Ryb2tlVywKICAgICAgICAgICAgJ0wnLCB4MSwgeSwKICAgICAgICAgICAgJ0wnLCB4MiwgeSwKICAgICAgICAgICAgJ0wnLCB4MiwgeSArIDIgKiBzdHJva2VXLAogICAgICAgICAgICAnTCcsIHgxLCB5ICsgMiAqIHN0cm9rZVcsCiAgICAgICAgICAgICdMJywgeDIsIHkgKyAyICogc3Ryb2tlVywKICAgICAgICAgICAgJ0wnLCB4MiwgeSArIDQgKiBzdHJva2VXLAogICAgICAgICAgICAnTCcsIHgxLCB5ICsgNCAqIHN0cm9rZVcsCiAgICAgICAgICAgICdMJywgeDIsIHkgKyA0ICogc3Ryb2tlVywKICAgICAgICAgICAgJ0wnLCB4MiwgeSArIDYgKiBzdHJva2VXCiAgICAgICAgXTsKICAgIH07CgogICAgSGlnaGNoYXJ0cy53cmFwKEhpZ2hjaGFydHMuc2VyaWVzVHlwZXMuY29sdW1uLnByb3RvdHlwZSwgJ2RyYXdUcmFja2VyJywgZnVuY3Rpb24gKHByb2NlZWQpIHsKICAgICAgICB2YXIgc2VyaWVzID0gdGhpcywKICAgICAgICAgICAgb3B0aW9ucyA9IHNlcmllcy5vcHRpb25zLAogICAgICAgICAgICBzdHJva2VXID0gc2VyaWVzLmJvcmRlcldpZHRoIHx8IDA7CgogICAgICAgIHByb2NlZWQuYXBwbHkoc2VyaWVzKTsKCiAgICAgICAgaWYgKHRoaXMudXNlRHJhZ0hhbmRsZSgpICYmIChvcHRpb25zLmRyYWdnYWJsZVggfHwgb3B0aW9ucy5kcmFnZ2FibGVZKSkgewoKICAgICAgICAgICAgZWFjaChzZXJpZXMucG9pbnRzLCBmdW5jdGlvbiAocG9pbnQpIHsKCiAgICAgICAgICAgICAgICB2YXIgcGF0aCA9IChvcHRpb25zLmRyYWdIYW5kbGVQYXRoIHx8IHNlcmllcy5kcmFnSGFuZGxlUGF0aCkocG9pbnQuc2hhcGVBcmdzLCBzdHJva2VXKTsKCiAgICAgICAgICAgICAgICBpZiAoIXBvaW50LmhhbmRsZSkgewogICAgICAgICAgICAgICAgICAgIHBvaW50LmhhbmRsZSA9IHNlcmllcy5jaGFydC5yZW5kZXJlci5wYXRoKHBhdGgpCiAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6IG9wdGlvbnMuZHJhZ0hhbmRsZUZpbGwgfHwgJ3JnYmEoMCwwLDAsMC41KScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xhc3MnOiAnaGlnaGNoYXJ0cy1oYW5kbGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0cm9rZS13aWR0aCc6IHN0cm9rZVcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3Ryb2tlJzogb3B0aW9ucy5kcmFnSGFuZGxlU3Ryb2tlIHx8IG9wdGlvbnMuYm9yZGVyQ29sb3IgfHwgMQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAuY3NzKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogJ25zLXJlc2l6ZScKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgLmFkZChzZXJpZXMuZ3JvdXApOwoKICAgICAgICAgICAgICAgICAgICBwb2ludC5oYW5kbGUuZWxlbWVudC5wb2ludCA9IHBvaW50OwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBwb2ludC5oYW5kbGUuYXR0cih7IGQ6IHBhdGggfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgIH0pOwoKfSkpOwo="></script> <script src="data:application/x-javascript;base64,LyoqCiAqIEhpZ2hjaGFydHMgcGF0dGVybiBmaWxsIHBsdWdpbgogKgogKiBWZXJzaW9uICAgICAgICAgMi4wLjIKICogQXV0aG9yOiAgICAgICAgIFRvcnN0ZWluIEhvbnNpCiAqICAgICAgICAgICAgICAgICBTdGVwaGFuZSBWYW5yYWVzCiAqIExhc3QgcmV2aXNpb246ICAyMDE1LTA1LTA0CiAqIExpY2Vuc2U6ICAgICAgICBNSVQgTGljZW5zZQogKgogKiBSZW1hcms6ICAgICAgICAgVGhlIGxhdGVzdCB2ZXJzaW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggZWFybGllciB2ZXJzaW9ucy4KICoKICogVXNhZ2U6ICAgICAgICAgIEFkZCBhICdkZWZzJyBvYmplY3QgdG8gdGhlIG9wdGlvbnMKICogICAgICAgICAgICAgICAgIENyZWF0ZSBhICdwYXR0ZXJucycgYXJyYXkgdW5kZXIgJ2RlZnMnCiAqICAgICAgICAgICAgICAgICBFYWNoIGl0ZW0gaW4gdGhpcyBhcnJheSByZXByZXNlbnRzIGEgcGF0dGVybgogKiAgICAgICAgICAgICAgICAgVG8gdXNlIGEgcGF0dGVybiwgc2V0IHRoZSBjb2xvciB0byBgdXJsKCNpZC1vZi1wYXR0ZXJuKScKICogCiAqIE9wdGlvbnMgZm9yIHRoZSBwYXR0ZXJuczoKICogLSBpZDogICAgICAgICAgIFRoZSBpZCBmb3IgdGhlIHBhdHRlcm4sIGRlZmF1bHRzIHRvIGhpZ2hjaGFydHMtcGF0dGVybi0jIHdpdGggIyBhbiBpbmNyZWFzaW5nIG51bWJlciBmb3IgZWFjaCBwYXR0ZXJuIHdpdGhvdXQgaWQKICogLSB3aWR0aDogICAgICAgIFRoZSB3aWR0aCBvZiB0aGUgcGF0dGVybiwgZGVmYXVsdHMgdG8gMTAKICogLSBoZWlnaHQ6ICAgICAgIFRoZSBoZWlnaHQgb2YgdGhlIHBhdHRlcm4sIGRlZmF1bHRzIHRvIDEwCiAqIC0gb3BhY2l0eSAgICAgICBBIGdlbmVyYWwgb3BhY2l0eSBmb3IgdGhlIHBhdHRlcm4KICogLSBwYXRoOiAgICAgICAgIEluIFNWRywgdGhlIHBhdGggZm9yIHRoZSBwYXR0ZXJuCiAqICAgICAgICAgICAgICAgICAoTm90ZTogdGhpcyBjYW4gYmUgYSBzdHJpbmcgd2l0aCBvbmx5IGEgcGF0aCwgb3IgYW4gb2JqZWN0IHdpdGggZCwgc3Ryb2tlLCBzdHJva2VXaWR0aCBhbmQgZmlsbCkKICogLSBpbWFnZTogICAgICAgIEFuIGltYWdlIHNvdXJjZSBmb3IgdGhlIHBhdHRlcm4gCiAqIC0gY29sb3I6ICAgICAgICBBIGNvbG9yIHRvIGJlIHVzZWQgaW5zdGVhZCBvZiBhIHBhdGgKICoKICogTm90ZXM6ICAgICAgICAgIFZNTCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBwYXRoIHNldHRpbmcKICogICAgICAgICAgICAgICAgIElmIGFsbCBvdGhlciBmaWxscyBmYWlsIChubyBwYXRoLCBpbWFnZSBvciBjb2xvcikgdGhlIHBhdHRlcm4gd2lsbCByZXR1cm4gI0EwQTBBMCBhcyBhIGNvbG9yCiAqICAgICAgICAgICAgICAgICBTZXZlcmFsIHBhdHRlcm5zIGhhdmUgYmVlbiBwcmVkZWZpbmVkLCBjYWxsZWQgaGlnaGNoYXJ0cy1kZWZhdWx0LXBhdHRlcm4tIyAobnVtYmVyZWQgMC05KQogKi8KCi8qZ2xvYmFsIEhpZ2hjaGFydHMsIGRvY3VtZW50ICovCihmdW5jdGlvbigpIHsKCiAgICAndXNlIHN0cmljdCc7CgogICAgdmFyIGlkQ291bnRlciA9IDAsCiAgICAgICAgd3JhcCA9IEhpZ2hjaGFydHMud3JhcCwKICAgICAgICBlYWNoID0gSGlnaGNoYXJ0cy5lYWNoOwoKICAgIC8qKgogICAgICogRXhwb3NlZCBtZXRob2QgdG8gYWRkIGEgcGF0dGVybiB0byB0aGUgcmVuZGVyZXIuCiAgICAgKi8KICAgIEhpZ2hjaGFydHMuU1ZHUmVuZGVyZXIucHJvdG90eXBlLmFkZFBhdHRlcm4gPSBmdW5jdGlvbiAoaWQsIG9wdGlvbnMpIHsKICAgICAgICB2YXIgcGF0dGVybiwKICAgICAgICAgICAgcGF0aCwKICAgICAgICAgICAgdyA9IG9wdGlvbnMud2lkdGggfHwgMTAsCiAgICAgICAgICAgIGggPSBvcHRpb25zLmhlaWdodCB8fCAxMCwKICAgICAgICAgICAgcmVuID0gdGhpczsKCiAgICAgICAgLyoqCiAgICAgICAgICogQWRkIGEgcmVjdGFuZ2xlIGZvciBzb2xpZCBjb2xvcgogICAgICAgICAqLwogICAgICAgIGZ1bmN0aW9uIHJlY3QgKGZpbGwpIHsKICAgICAgICAgICAgcmVuLnJlY3QoMCwgMCwgdywgaCkKICAgICAgICAgICAgICAgIC5hdHRyKHsKICAgICAgICAgICAgICAgICAgICBmaWxsOiBmaWxsCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmFkZChwYXR0ZXJuKTsKICAgICAgICB9CgogICAgICAgIGlmICghaWQpIHsKICAgICAgICAgICAgaWQgPSAnaGlnaGNoYXJ0cy1wYXR0ZXJuLScgKyBpZENvdW50ZXI7CiAgICAgICAgICAgIGlkQ291bnRlciArPSAxOwogICAgICAgIH0KCiAgICAgICAgcGF0dGVybiA9IHRoaXMuY3JlYXRlRWxlbWVudCgncGF0dGVybicpLmF0dHIoewogICAgICAgICAgICBpZDogaWQsCiAgICAgICAgICAgIHBhdHRlcm5Vbml0czogJ3VzZXJTcGFjZU9uVXNlJywKICAgICAgICAgICAgd2lkdGg6IG9wdGlvbnMud2lkdGggfHwgMTAsCiAgICAgICAgICAgIGhlaWdodDogb3B0aW9ucy5oZWlnaHQgfHwgMTAKICAgICAgICB9KS5hZGQodGhpcy5kZWZzKTsKCiAgICAgICAgLy8gR2V0IGlkCiAgICAgICAgcGF0dGVybi5pZCA9IHBhdHRlcm4uZWxlbWVudC5pZDsKCiAgICAgICAgLy8gVXNlIGFuIFNWRyBwYXRoIGZvciB0aGUgcGF0dGVybgogICAgICAgIGlmIChvcHRpb25zLnBhdGgpIHsKICAgICAgICAgICAgcGF0aCA9IG9wdGlvbnMucGF0aDsKCiAgICAgICAgICAgIC8vIFRoZSBiYWNrZ3JvdW5kCiAgICAgICAgICAgIGlmIChwYXRoLmZpbGwpIHsKICAgICAgICAgICAgICAgIHJlY3QocGF0aC5maWxsKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gVGhlIHBhdHRlcm4KICAgICAgICAgICAgdGhpcy5jcmVhdGVFbGVtZW50KCdwYXRoJykuYXR0cih7CiAgICAgICAgICAgICAgICAnZCc6IHBhdGguZCB8fCBwYXRoLAogICAgICAgICAgICAgICAgJ3N0cm9rZSc6IHBhdGguc3Ryb2tlIHx8IG9wdGlvbnMuY29sb3IgfHwgJyMzNDM0MzQnLAogICAgICAgICAgICAgICAgJ3N0cm9rZS13aWR0aCc6IHBhdGguc3Ryb2tlV2lkdGggfHwgMgogICAgICAgICAgICB9KS5hZGQocGF0dGVybik7CiAgICAgICAgICAgIHBhdHRlcm4uY29sb3IgPSBvcHRpb25zLmNvbG9yOwoKICAgICAgICAvLyBJbWFnZSBwYXR0ZXJuCiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmltYWdlKSB7CgogICAgICAgICAgICB0aGlzLmltYWdlKG9wdGlvbnMuaW1hZ2UsIDAsIDAsIG9wdGlvbnMud2lkdGgsIG9wdGlvbnMuaGVpZ2h0KS5hZGQocGF0dGVybik7CgogICAgICAgIC8vIEEgc29saWQgY29sb3IKICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuY29sb3IpIHsKCiAgICAgICAgICAgIHJlY3Qob3B0aW9ucy5jb2xvcik7CgogICAgICAgIH0KCiAgICAgICAgaWYgKG9wdGlvbnMub3BhY2l0eSAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIGVhY2gocGF0dGVybi5lbGVtZW50LmNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHsKICAgICAgICAgICAgICAgIGNoaWxkLnNldEF0dHJpYnV0ZSgnb3BhY2l0eScsIG9wdGlvbnMub3BhY2l0eSk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHBhdHRlcm47CiAgICB9OwoKICAgIGlmIChIaWdoY2hhcnRzLlZNTEVsZW1lbnQpIHsKCiAgICAgICAgSGlnaGNoYXJ0cy5WTUxSZW5kZXJlci5wcm90b3R5cGUuYWRkUGF0dGVybiA9IGZ1bmN0aW9uIChpZCwgb3B0aW9ucykgewoKICAgICAgICAgICAgdmFyIHBhdHRlcm5zOwogICAgICAgICAgICBpZiAoIWlkKSB7CiAgICAgICAgICAgICAgICBpZCA9ICdoaWdoY2hhcnRzLXBhdHRlcm4tJyArIGlkQ291bnRlcjsKICAgICAgICAgICAgICAgIGlkQ291bnRlciArPSAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHBhdHRlcm5zID0gdGhpcy5wYXR0ZXJucyB8fCB7fTsKICAgICAgICAgICAgcGF0dGVybnNbaWRdID0gb3B0aW9uczsKICAgICAgICAgICAgdGhpcy5wYXR0ZXJucyA9IHBhdHRlcm5zOwogICAgICAgIH07CgogICAgICAgIEhpZ2hjaGFydHMud3JhcChIaWdoY2hhcnRzLlZNTFJlbmRlcmVyLnByb3RvdHlwZS5FbGVtZW50LnByb3RvdHlwZSwgJ2ZpbGxTZXR0ZXInLCBmdW5jdGlvbiAocHJvY2VlZCwgY29sb3IsIHByb3AsIGVsZW0pIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2xvciA9PT0gJ3N0cmluZycgJiYgY29sb3Iuc3Vic3RyaW5nKDAsIDUpID09PSAndXJsKCMnKSB7CiAgICAgICAgICAgICAgICB2YXIgaWQgPSBjb2xvci5zdWJzdHJpbmcoNSwgY29sb3IubGVuZ3RoIC0gMSksCiAgICAgICAgICAgICAgICAgICAgcGF0dGVybiA9IHRoaXMucmVuZGVyZXIucGF0dGVybnNbaWRdLAogICAgICAgICAgICAgICAgICAgIG1hcmt1cDsKCiAgICAgICAgICAgICAgICBpZiAocGF0dGVybi5pbWFnZSkgewogICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBQcmV2aW91cyBmaWxscyAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ZpbGwnKS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZWxlbS5yZW1vdmVDaGlsZChlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdmaWxsJylbMF0pOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgbWFya3VwID0gdGhpcy5yZW5kZXJlci5wcmVwVk1MKFsnPCcsIHByb3AsICcgdHlwZT0idGlsZSIgc3JjPSInLCBwYXR0ZXJuLmltYWdlLCAnIiAvPiddKTsKICAgICAgICAgICAgICAgICAgICBlbGVtLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobWFya3VwKSk7CgogICAgICAgICAgICAgICAgICAgIC8vIFdvcmsgYXJvdW5kIGRpc3BsYXkgYnVnIG9uIHVwZGF0aW5nIGF0dGFjaGVkIG5vZGVzCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW0ucGFyZW50Tm9kZS5ub2RlVHlwZSA9PT0gMSkgewogICAgICAgICAgICAgICAgICAgICAgICBlbGVtLm91dGVySFRNTCA9IGVsZW0ub3V0ZXJIVE1MOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhdHRlcm4uY29sb3IpIHsKICAgICAgICAgICAgICAgICAgICBwcm9jZWVkLmNhbGwodGhpcywgcGF0dGVybi5jb2xvciwgcHJvcCwgZWxlbSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHByb2NlZWQuY2FsbCh0aGlzLCAnI0EwQTBBMCcsIHByb3AsIGVsZW0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcHJvY2VlZC5jYWxsKHRoaXMsIGNvbG9yLCBwcm9wLCBlbGVtKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQoKICAgIC8qKgogICAgICogQWRkIHRoZSBwcmVkZWZpbmVkIHBhdHRlcm5zCiAgICAgKi8KICAgIGZ1bmN0aW9uIGFkZFByZWRlZmluZWRQYXR0ZXJucyhyZW5kZXJlcikgewogICAgICAgIHZhciBjb2xvcnMgPSBIaWdoY2hhcnRzLmdldE9wdGlvbnMoKS5jb2xvcnM7CgogICAgICAgIGVhY2goWwogICAgICAgICAgICAnTSAwIDAgTCAxMCAxMCBNIDkgLTEgTCAxMSAxIE0gLTEgOSBMIDEgMTEnLAogICAgICAgICAgICAnTSAwIDEwIEwgMTAgMCBNIC0xIDEgTCAxIC0xIE0gOSAxMSBMIDExIDknLAogICAgICAgICAgICAnTSAzIDAgTCAzIDEwIE0gOCAwIEwgOCAxMCcsCiAgICAgICAgICAgICdNIDAgMyBMIDEwIDMgTSAwIDggTCAxMCA4JywKICAgICAgICAgICAgJ00gMCAzIEwgNSAzIEwgNSAwIE0gNSAxMCBMIDUgNyBMIDEwIDcnLAogICAgICAgICAgICAnTSAzIDMgTCA4IDMgTCA4IDggTCAzIDggWicsCiAgICAgICAgICAgICdNIDUgNSBtIC00IDAgYSA0IDQgMCAxIDEgOCAwIGEgNCA0IDAgMSAxIC04IDAnLAogICAgICAgICAgICAnTSAxMCAzIEwgNSAzIEwgNSAwIE0gNSAxMCBMIDUgNyBMIDAgNycsCiAgICAgICAgICAgICdNIDIgNSBMIDUgMiBMIDggNSBMIDUgOCBaJywKICAgICAgICAgICAgJ00gMCAwIEwgNSAxMCBMIDEwIDAnCiAgICAgICAgXSwgZnVuY3Rpb24gKHBhdHRlcm4sIGkpIHsKICAgICAgICAgICAgcmVuZGVyZXIuYWRkUGF0dGVybignaGlnaGNoYXJ0cy1kZWZhdWx0LXBhdHRlcm4tJyArIGksIHsKICAgICAgICAgICAgICAgIHBhdGg6IHBhdHRlcm4sCiAgICAgICAgICAgICAgICBjb2xvcjogY29sb3JzW2ldCiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfQoKICAgIC8vIEFkZCBwYXR0ZXJucyB0byB0aGUgZGVmcyBlbGVtZW50CiAgICB3cmFwKEhpZ2hjaGFydHMuQ2hhcnQucHJvdG90eXBlLCAnZ2V0Q29udGFpbmVyJywgZnVuY3Rpb24gKHByb2NlZWQpIHsKICAgICAgICBwcm9jZWVkLmFwcGx5KHRoaXMpOwoKICAgICAgICB2YXIgY2hhcnQgPSB0aGlzLAogICAgICAgICAgICByZW5kZXJlciA9IGNoYXJ0LnJlbmRlcmVyLAogICAgICAgICAgICBvcHRpb25zID0gY2hhcnQub3B0aW9ucywKICAgICAgICAgICAgcGF0dGVybnMgPSBvcHRpb25zLmRlZnMgJiYgb3B0aW9ucy5kZWZzLnBhdHRlcm5zOwoKICAgICAgICAvLyBGaXJzdCBhZGQgZGVmYXVsdCBwYXR0ZXJucwogICAgICAgIGFkZFByZWRlZmluZWRQYXR0ZXJucyhyZW5kZXJlcik7CgogICAgICAgIC8vIEFkZCB1c2VyIGRlZmluZWQgcGF0dGVybnMKICAgICAgICBpZiAocGF0dGVybnMpIHsKICAgICAgICAgICAgZWFjaChwYXR0ZXJucywgZnVuY3Rpb24gKHBhdHRlcm4pIHsKICAgICAgICAgICAgICAgIHJlbmRlcmVyLmFkZFBhdHRlcm4ocGF0dGVybi5pZCwgcGF0dGVybik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KCiAgICB9KTsKCn0oKSk7Cg=="></script> <script src="data:application/x-javascript;base64,LyogSGlnaGNoYXJ0cyBwbHVnaW4gdG8gaGFuZGxlIHRleHQgc3ltYm9scyAqLw0KKGZ1bmN0aW9uIChIKSB7DQogICAgZnVuY3Rpb24gc3ltYm9sV3JhcChwcm9jZWVkLCBzeW1ib2wsIHgsIHksIHcsIGgsIG9wdGlvbnMpIHsNCiAgICAgICAgaWYgKHN5bWJvbC5pbmRleE9mKCd0ZXh0OicpID09PSAwKSB7DQogICAgICAgICAgICB2YXIgdGV4dCA9IHVuZXNjYXBlKEpTT04ucGFyc2UoJyJcXHUnICsgc3ltYm9sLnNwbGl0KCc6JylbMV0gKyAnIicpKSwNCiAgICAgICAgICAgICAgICBzdmdFbGVtID0gdGhpcy50ZXh0KHRleHQsIHggLSBoKjAuNzUsIHkgKyBoKQ0KICAgICAgICAgICAgICAgIC5jc3Moew0KICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5OiAnRm9udEF3ZXNvbWUnLA0KICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogaCAqIDINCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgaWYgKHN2Z0VsZW0ucmVuZGVyZXIuaXNWTUwpIHsNCiAgICAgICAgICAgICAgICBzdmdFbGVtLmZpbGxTZXR0ZXIgPSBmdW5jdGlvbiAodmFsdWUsIGtleSwgZWxlbWVudCkgew0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnN0eWxlLmNvbG9yID0gSC5Db2xvcih2YWx1ZSkuZ2V0KCdyZ2InKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIHN2Z0VsZW07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHByb2NlZWQuYXBwbHkodGhpcywgW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpKTsNCiAgICB9DQogICAgSC53cmFwKEguU1ZHUmVuZGVyZXIucHJvdG90eXBlLCAnc3ltYm9sJywgc3ltYm9sV3JhcCk7DQogICAgaWYgKEguVk1MUmVuZGVyZXIpIHsNCiAgICAgICAgSC53cmFwKEguVk1MUmVuZGVyZXIucHJvdG90eXBlLCAnc3ltYm9sJywgc3ltYm9sV3JhcCk7DQogICAgfQ0KICAgIA0KICAgIC8vIExvYWQgdGhlIGZvbnQgZm9yIFNWRyBmaWxlcyBhbHNvDQogICAgLyoNCiAgICBILndyYXAoSC5DaGFydC5wcm90b3R5cGUsICdnZXRTVkcnLCBmdW5jdGlvbiAocHJvY2VlZCkgew0KICAgICAgICB2YXIgc3ZnID0gcHJvY2VlZC5jYWxsKHRoaXMpOw0KICAgICAgICBzdmcgPSAnPD94bWwtc3R5bGVzaGVldCB0eXBlPSJ0ZXh0L2NzcyIgJyArDQogICAgICAgICAgICAnaHJlZj0iaHR0cDovL25ldGRuYS5ib290c3RyYXBjZG4uY29tL2ZvbnQtYXdlc29tZS80LjEuMC9jc3MvZm9udC1hd2Vzb21lLm1pbi5jc3MiID8+JyArIA0KICAgICAgICAgICAgc3ZnOw0KICAgICAgICByZXR1cm4gc3ZnOw0KICAgIH0pOw0KICAgICovDQp9KEhpZ2hjaGFydHMpKTsNCg=="></script> <link href="data:text/css;charset=utf-8,%40font%2Dface%7Bfont%2Dfamily%3A%27FontAwesome%27%3Bsrc%3Aurl%28data%3Aapplication%2Fvnd%2Ems%2Dfontobject%3Bbase64%2ClxQBALETAQACAAIABAAAAAAAAAAAAAAAAAABAJABAAAEAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAaqaIXgAAAAAAAAAAAAAAAAAAAAAAABYARgBvAG4AdABBAHcAZQBzAG8AbQBlAAAADgBSAGUAZwB1AGwAYQByAAAAJABWAGUAcgBzAGkAbwBuACAANAAuADQALgAxACAAMgAwADEANQAAACYARgBvAG4AdABBAHcAZQBzAG8AbQBlACAAUgBlAGcAdQBsAGEAcgAAAAAAQlNHUAAAAAAAAAAAAAAAAAAAAAADAd2IAROpAROtAODEFM3pjM%2FSEVmjRApN5UYeAHiZoKQ%2BsJvend4XEADGjylbHBQxybVI0e2miS1BKUbg1dmcMYlml2mXhSnXulUZJ%2BsmYQtuO2MpMm5iJLwnM7TdSlbkgqFAFuqvlLjvq3kBfIz5DtDqW6nskMkTXEGwWO%2ByRkNw4RW%2ByC1CzISKsQywVoTcrZ8XVV9eZLVWL6IO9LjWB6f%2BSHaAp3P5cng578AqY9JOJV03MkbaYsAtviR9Mw%2BDKj5xNU42hGTni7J7KsDa4HElfcRC65JIJIOUGxIaTXgDjXvBwwjqMuqOnwp9Dba1ZLkPIZT3rqy50n8g%2F0MIH1%2FzDwkedYMVhhtnwoOWDkuZLqR%2BGAhFgdjdeTofRyojDU90B8A1YXCCFAjvs%2FxP1OnSjBSIpgUpqQnOANCpP0hWgEMCmWmBjA5gg0An6QKIFkDBBrGiCDiEiiijCFCjikCk5UVlsWbUjDadnGFHE4iko3UQpj9lJGsNRFl5CN1D%2BL42BPebJEZMZh4VlRrDVs0ydrLjtaZVa2yswEnr3AMmuBZczrLOWy8qxWQGIZLKIBVsIDEL4UTgIBBYFsyoDYhDSD%2BTZAMuFYAJfawI9vdYQoNzBJRIlCdfuA7aDgc1IJJE5h3ZyTPry7yzGVDIj2pteNeJGSCChkDCBZQKBRCilQCI53YehnutS0npEUq5VtCVNPHKcKclAalR3fRILAeQ0SDCvkzQ9HzR%2Ft2NFgjE0DkUwaRAF1%2BVTlMlFZqIM2gO1LPMq8pHfEW51kggb8eZRnqco7SW0mvFX3bIjTImvLmM3eSFkOxax9ua2H9J3kk7FjJIwSGGIwJuUjVR%2BbqrPllUqO8hhH7R8kqmWmaWPHPUM0s3n8%2BVwVIvL2FArLMLlXPGtSPmMicxOaIf55SoeZG%2BLytx%2FlQSLGYS0k%2Beu1%2Bx0JqA5NcNcbLQl%2BUIkN9%2Fm9do%2BJpCWJBSKTz%2B9KgLJm3jCAG53yiiLq1OZtLqBwwMutFCGVuLeN4z%2FcXmeM3gN4pCtOATbkZK%2FBf%2BZdGbGw9v94wf0%2Be5yztNbJz5Pc%2FEDijiTGoPEjwsFpXgKDRep1GcOBvTkpFAN7ad%2FHuD5RJ3w5uyLtRWazrgBqHASCBVtF0qC65DS6Srb7YScv5aCj1%2B%2FrNyjkqqzOtmUS6KWXXZy6F8JBw6JOytxdRsTNkZKWXBAmCLeVAfJW6nsE1wSpgtzkwIMCoAVygUGccpUX7EEV5r4q1M0wdrEOb4BDGwMfzGexA%2FJMuH4oSrAgk8AACX3A%2FQOYdSYzdd8oF5bwE3mezSAdQkie5oJJLSV4e8L3nd9wkv7wunB9YK9ek6I3I4SLkWQUAVTAACWfdnHlJoBXHOCOiJaqg0mAFtDMr7v6zKNCwLDIYsepmwjlbmhwklgkMAzipdMQXuVt%2F22jM9Han5hULMi%2Fvf4zy%2FoDkeCWbAU%2FkQHQB697kJWGHmnxcNv4Ym2gDBkT9cJSRY7DWVoGIG%2FwEQ8S%2BQBtM%2FDHdROzcOW8N5K%2FzDtb1CAyAIvfV3DTR4TYuMTYUUKIMyKdjeFRGSS4hQkUo5MXEfpcvr2QFkQB%2FesJGLpetbPHHrT8kYWUjlGRBdd8rfkdxOLTi5gvIDJ2qZAlUilO5xGKZVGJHSDphIdV51qRCgNJYJR9%2FFvzFwc4OOXB1tCkCUfvOtbkHyYsToYK97mMozcFEU7u8uIibwjTpcAnn3%2BkwWO45CcCMit4%2BtvBhxIMqPDA1YOGCmcYu5Ay1YYGh4QDmkGmREROEnUBg6KlV8oQdwVd%2BkHEO1gXPw3cmKhejwJErEbMirHe8zDPsEQEG0IsFwqfFwYesumJcwVfONK%2BIyZY3iynb2U8lmmiz5wZBhhbAnBc1PmWxijAuoFhBJSNEII7F0UuadfGV1H9gUJpP7bKIdqDkeZEUEAnAAC2DwCmoDQxbTcswxjB0lOIKWiGY6ZhAYWkcZSHKZr9R2R6NIeHoF6bvYBAkW9Yksy1dz%2B%2BqZa6i5fCcFClQ34iUwfIe1%2BjrX23KV7HUuVhK6CTuCiwkN5nNSx%2BiDnWYoDJFST6plQ0zSHO60KOSYw2Giij1BxDKtFPenZxlWVVo2t3PDOcyMPF4VK5wTtdfKRr1u0VvSgBIujb2%2FaYViV3ufvDyvbszgtPQg9y%2FqyDR6MOJjOm9rDJoTs3NfxzA24Z%2FF6Pl0iJtKTuibNtqpJ6%2FhIIuk06vMurMTfhwEjYXaseXUB2HXFPV1SkDLLvV1xXgR3EEPGm%2FHWMqCCqIHebzv0yNzEAKWQaNeOn9RFjklYB7JdwiIduntJZxbM5U9O7rOOrJDDQ0%2FAM2i6ESNIgzpW91OtfYbai%2FqoYJh0MrT65tdAxZoQWg5%2BAIXPEKY7fzJETfKJu5sjkbvKOYtYG9B%2BEmffQYNPcGRsvZ5JSbRYugA7QAumA%2FyoatLhAQXwHDwDB1D93WSPvjef34PC6W3wyMES2n6d8fuj%2Bi6m5RqBXqKZAjVJT6av9rHYa3EuDop1cuPHdWg8br0DtekU5hgQGDDJ%2Bxg%2BM0equQvwD6VD7fDrSNucGliP1hgEl%2FYVeXsyoMo9u03vpRX6Cy3RwrRGSCeSBzdgkEZCv521%2BNx38IIHBbfpcHbS0WHxR9l2vtZvPtiiGYfWzyAl77yJywQeZEWlxgMt5NqfRvvzUcL02MZLVzVBJdc2P4Rd5Iuqzw9g5%2Fk4oVLoSt60eQ%2Batyg0CJC8hqcqCc8wZpLZtIpqB5PqDnFkDztxJxRivBcey1DJ5mFnSpuHYzVmu%2Fbx9K7%2Ba621AXJKQ23kN0UqAUTuNRJ61UfALildgkgI6yWHziBEgs4u62oT%2F5Kg1pWuMbDqG3M2syDjcv%2FaNbFIhyRDtXPwJMNZD%2FNithBrR1FfSM%2B%2B%2FL8a7zpRAur3mUoCX%2FXG0RihEk6Ss9qKca0vD0I%2BitjYW6xquDUGEwbL%2FvVEzZi61YetUhOfXSBLxG%2F06CadgQQBFDxlUO7vhUyIUeGtH%2FeClzaIiLDGfggt0ziv4VlrJq%2BKG5XSSs74FxNAQkk3I6o0fd%2BzgbQo8LoR3WzuxwbBfCyIoC81TDw%2Bg3IWBf8ihBdLaRbT6rX3Gc3DjOZZwK%2BZrYVEY9QRYXeXweFADRcumVbbV1TOrjFmKqCGWXRm5LnRzs43Fmg6pDoCNEKLO%2BZM7iqy2CNht0G0RqaATInBtg1oY6Y67ZZk8s3ujHfmEwcTMs%2BNTRWOQpQt%2FQu%2FMl%2FnlbsScEtVZh4OQJ%2BSHTsoj2oJSfaF4hu5QbdZ%2BLdEQk80eQLKjNGEZ%2BYJ4DpefjBkT%2BCgiNbL6rDF0pzwGO%2F8Av6FAaaJBkR%2BAIHT6KNZUiTSCOKRqHzJxaTGBeBTHEn4GsP%2Fm%2BrcyHIaJBHPB0cyL2VfMo0qIKVdDFCpIoV4lrJ02FwrHEJV9Oe%2B3wVjzqDG8nmq4ycCFOdx21HEPGM5feHAIFomMxOBg3t57OD4MpEDAIxSJRWrxuSE%2FqehKPGtdt3iQamF7cKjvoTIK9Xi9bpiKLV5egyP0qwC8SD4jCNKDgDC1pKAyH3VmKrOwKoAenEXosqtR5JlevfUWmEmnXymw%2FwCKZZkulgc9lqy0Yg697dG42vVKbJHBCho5UqmgppMcBAneNxBLFKtWx5xv8kcR7YicWwCuq0cQaeqFiIHYns2zCEQF23vgUwJgyokKTMUnczbF155VQ4nRwXwJB0gex54bECSkYYdGlZjJoQU%2Fj%2BTm0dVcImvYlTu6utMqajsm7RxlISBA%2F7tPnx%2BlIOVQ%2BvztKKtFuAFhwUuiAjqr%2Bn1y0%2FjATTuH30efN3vpLBDTrqaMM6FAreSPVHgSAwBLoLyxysX2NgnnCd%2FEyASkL70SJquQ%2B7CCQyo2M6vq%2B9DRSED%2F9HMsaP6lcE0wVvrWLwaGCMLyWJsvM2KfzPjSFsu9yi2g%2FwWBMv%2BAymlJvbSTibXV4Wx2%2BEs%2F0Ntqan43sNhaS1kozADJxdju%2BF4WSJ23JerruKTzF1h%2F6jLDSZLFJbglT4PxrsPyo%2FmK22n0vEidLC9NWsZjvXH6Nmsd6nHJAR%2FNU0oNvsNQ4xEpGR5tCtToEzs%2BAVpvFW5SkSDydgBYZQNjEZd1TLLIuvYxSNci2tm%2F0BTVNQvVRYGc8Kp82yYCyQAEJ04Cw5BnVCvc9%2FTjAvZwqVuyC5tVsWrlwBDxR5jTDwGhTP0cp0U9F4%2FVz3CGgpX0IuRt3jgTdvAFt%2B5es34VztbfCyh4Ls6sU7lViqfaA2xITzGAFRIhGCefq6IkFg%2FD1aSeI2ilQn5I0c6mzgAPPIBE8ha8LRH1ySrhCXFRtXyCN7es2J%2FbXA7xIFwCWj0CdSvhYAH9aJINuIXfKXjIa19QxDqID%2B0an%2BzU3lOvg%2BXxoULvEoNF8H%2BZ7txoOJfCPEwCqUHiu1a88fkQhbGqIyhgikTBYydYEkQpHIOZAtNKsuGRIorWW4hNLJNSw9H4HC%2BrTaQOpCogQhoBB7q8taRbVELSieJeWCyjJnc0xpH%2Bj1thfwaLivWyPSz5%2FuiT4t0OVA8zs67mMDRWGxa0rLPYCIRjLPhScdnAVEqgbjENMcCoO5HHSQh8BHB%2BB1Tc0I3qvrf0KEeigJyhtD5OXmmmGkKJr0lAIiJYIVl%2Fqju%2BmUCnMRtDIasOyn7sLhS%2B78JO%2B7ul5vz08JVnui6FnhtZY64v3VFAqyg680SdGPNaslb26BbV0SqMsNFLucu1wSOoFEA5zF3%2BJQDoqfOy8NBQIVL8i4ZdjGyA5FoqItd17U2yY5Oqt%2BZ%2BqUQ64KADfNz0JubCwG13eEjGv2ZieVPvCdPrcGSQnmCpJJwYQXBGalM6VeNfFfap4Q%2FvCS4%2BdC6PZANS7aQDW%2FuvxHcb9IIQxSiT0J%2Fk%2FMW7VhRGdBQBnm4KH371QdssmnNy6hSqNWeEKhohwLvUYGdUhH6DEihpIqINfgaIT899tCGv4TAk9Ogck4EepVKeCNwREgRW0qqwnIqTBsjgqAbAWFRglrDuMsHCHDIUkgM5KyDbpIpG4Aqjyc%2Fvu7he82%2BUCGWXGYemsNqcszxKIzKdFRNYj47EjRWwlCDe6faPuKH9z6QiwM5FrfxLEs9%2FSGNFoBsfuwX9UrQ8EKgqjAuGRm1todKV1GBSJrPEqITBBwqw5ONg2wCMnyjRuKDNHd4EtOelTISAXX6uTXrYPgwbwxg%2BzaYP8CjjTGyc%2FKWhEvOJmR9%2FBXKtyOuqCv168q2BLec9KeFmIdCoWyehrxJHgu9RCKD%2BH6cs33ly3y%2BMcc3AVUuXDd2FgJsBJLBOsfi0dREWE2TcAFqnu4o047A9DnTYLuYrzxPEUCStqVA9SFUiTSXZWiCL5oo6%2BwKASch8CooXt4CMoaYl8qzEIz4JmZLkBSRaX8AenaDyx1BUNpUAlrYZEMnxEJl0G4S%2FAHGWPo%2FPoQoTBlL3pNxF8gAgfnd0mJmBl4CZXYxTcRN98V4EiYvBCXFrNxv0kIRDtRwBi9rfEImSs4ekXO%2FNwF0bmmyuMcFjgwWfcK6fh4SwMzxSNcS0w2Uql5hd796wVCwbnlSsYwMKPC4pbjYe1Y%2BKCkTjYNrYGLPgA9WurHuWk0QOGvmFZg31QqHmQFAjexhZOIaZS9Lu5HovrsZV1PkLxaPGIVx0R6NZASDn5pj6HgEKiW2JPL6m%2BPUuThnPguEicgeclSmky2Yo7sT%2BHUKHZb8FsehCabYNoo9UEwUkAYPNAuklWJRB7T0ykS%2F9EzHIcu7qEDH3FjHAyYyMW4zG3CmMTllcx5iBVstud0VIjaAQ6aPRQRR8bm0mzsiR7oGJaoX7YqkusZ%2FXry4aXAklDoH5XgGpznFHONZLezh9JtID52gXtUsG3bRmMmynBVceDaBeBfCoQ4KHrpp6pqRDmvWFHu0aQ3EIzWESz3mQlDS9NN6hpvmwI5iPkPQ%2FvRSA%2FjADJnOhrJZIXJXYYGUQbTU8eMMzEYam62yUh46Mb6WSGymGyoLAve5cGcGKRZYE%2F82DzYQEdoMJANKUtBtMqYYb0kzJHi45Fw1tsySEPduKF6CMBFM6y32xRnc7fnN2hjF7M8FjhQrB0dKTGFIukgC3gtJYKlfy8M6c%2BcYgK5fHa9fjZejNBBm51k1MeRTppTJ%2FU%2B3D1CYSebC17Zi9xbLhyrvmvqvdyyilsGn2IFAAJH7qiCCKkfquiHOsOrvdJHjo8eEUXfS20mpc8hPDc%2BtSRDkVNBCnWhmHaUSv9UphmULfc9%2BWMGuZudAKWzKhVkwIEGWDd50rU32J%2B44%2F7JtUrmA%2BgqHzYI10aQqHYXZz3155KaKU6oAvgL8wZ0fDonsflMEFHKXAM2FdWJ1q%2B1HyblbMWGBoycByiI2gZuzg4GSGWDxCilhIkzjKMDPKZnz64%2BF2cJGVEAYPzCGAw4ISwsNRDX3oGS6dmzBwbzFzgxCunA4%2BC59XN6V4OAL4uCnHP8%2F8hpCAkhrb2W%2FIh%2F%2FjGLOzThAuKSGCRnE7rYM5GBXu%2Fly3f8HH8ii0p0iRKXqYnABqj8xQefQjA29HCBTSsyeABJTlAOAcY9yQPAJioUHOGDyhFUj7rrvZKec1ovzloOLYi81DCWarEI0GfyWbboU1WjkNZfc6Pk4gGJYPTJVWO35WAU4ophRKOBPopXAdCmdmCCdyzB77jTDphBCi7RGZWO0Gqj143TKkIejseQnNJBS1htjGySlR4cnqN7CINDwRFATA65RgKQgRziieWVtI41nOM8ijwPwZEldgaaKnXacAGJ6s730Uu6zftJJoux3X0qbPW7UntfIH7Kn4Ews42Ew68dguEMCctoG4W5QdH2%2Fy%2BlPpcBinSGJ3VdAE3araloKrLReLgPg8YKH8QhJYlNxgRW2Epd9IJlDe3kbAwuYKbUNFzrL97IZ6KQ34IEoPI6oLZG9JiJr5VNIq9HcWm81neOMrgn00MoZY0zULN7pKAwwQ9Sq50kFzzVBLyVEyMICy1N1ts4QCLOdMOOk1JqdUdrXy3TYJQsdKhJBKq4mNrUulGfZxS3zco0uGOvKIpjbMygwmiBu0w4RRbMKYsPad2pZvG81gLGBQf45m2Ibc8zCRrKu2Ot8wEJ3uP18Oko%2B1y2prbRk%2FzZAUDpNBK3vNnx%2BcEUF1nzTSecRHVgqQ3%2F4s8skWXMH4YffKtLRbjyA0y8q6Qc%2BpQCfuDsBSWB2Ta86sKBo7ThRFVmoia0ptD0bbGtQIOzeLVUJnepzfRWnCwLAC8nC0KLuUoi98Ld61lDOgItmtIhiYUG3fgOnmPCgbcEdvNrYgEZPtuC%2BxZiPgeTrgWPe7tkEOz3LazdQJ%2BB9IdXVf04Qdq85wdSWFgcyWKgxm2pEQC%2Bx0YyIVh0vDZNrxmalqP4oNuRfkK3pRC7ChSyxkruNqBcXRQVDMvxfr%2BD22AG6o54f8ZedOZhNAn4XNxOgwIsDjeloeXqGieVHgnIXDeLp45BzzvSgbDiSAjnhQQKE4odIoOIZg%2B2nHCAxvvKI9ng5aS2YDrICBrvSZa5RGZU%2BRP0ka428aRwEKIjTUjrNKRehq89W6YZgCFxFShTdb1yhm3rP1eRzRKoUVvpttCtMebC7MTLXGAeWPqwA%2B3EHGcNMQ%2Bl7ozmBxAAn%2FIzPujFstneStTCSoakVI8NKqddVasQI4uq1aleXAxkEiA0ZQ6B9ku7b11ELA7cM3NiwD2dT7Q2neD3MgEGrFGbhohu90QoNf4p5WuLyAdw6rxfz9RocwIVgEPihaft74jCiVugu9SlUjgRtwvTBTHfZBCjOSkfJEbTWMuB8VCN%2B3gBIQNdTpYRhVHGU3ftDuw0pIofqJKGLEnG18VwRwgjnsgoNEfW%2BdthmtVRJGL7OPIC0Tb2RxjRjDi6jcMJiqrFqWP8YOp0%2FWXQW7Q5f%2Bqhy99P7p8jArQNJDJMKQROhG7sNNqr7p5kQlku0rvmus7ekrtHFT30aEKUrPV47kFs9mEQUlWgmKHctgEuujk4ydCAcUwO5Dyokib83NyBaqEG%2B9SU4EzfD8suDtvsx4M5ERnYaYG5sTKwCXlSa9KzveEGVM3KLwj6MdszMf8nsIeQy9BAaO1jDWh5hC0PKZ%2FcmJaV0KySr0s7KLqCy03JVZR9TtLgTKkHwEBPSE9CJNgepWdL07gX9oiDTeOUUaEENAdU%2F4E7hWAVkEv4N0rqWgPE%2FCh%2B6hoBFUtrG8b1a7L01hEoTpWPt7cB4jBNYSXaymVoyGyqowagJOz%2Bx1nu6hIzrEhdr5jhyVN1TyuKJwlWeztJLFNDK6LwSigipU8BtlLVwaumSRSbhPpWpLk0W0Y%2BmSAhBv%2FOm1EWkKgzBIXKYRokNOCMZGE%2FKOzBYdm6Tu0hDuzWRWe3c1dtb%2Bk%2BRtohBUrRkjSqew9UATT8BkEJKBzLXq6qKwQYNDIvEYxoy83iAzUibYYvKR2avEXmjpoSgOkQlwljC4pV%2FiEPxWD4Uy3rAeqEs4TksCBATo3Rk2Un5Efrj4Lkh%2Bduwn8pNBn9HFZVTuN5gMsoQB%2BRSFVKRIfnQkBOUHZFV4G0hAKefPidNGKkFZUhGJGlOPdoVct9KBuQ73Ta5O4wQ9hMLy038s6Nchjl0ndRqQHgBcUUrO1hZZEXusKqI23hpbO2w%2FO6FrgHiGckOoFzqEMrUdJfyHm5D0eqbu%2BQTNDp49VG0kAvQHCic%2FlYdNBQQ8COOw52wyM7P5Q0st8TeLQmELVxtpA0Gt%2Bz0buClDKSPw2DBe2rbQqFwiNR80f%2Bl8vxSHmNTfDm3wo%2BBQ3mL4fBOQJqOt285PBCdYBUhWsHTU4A021XA6%2Fwc%2FgaZSBtZPIjM8kOzsaoU65UQQW0aKvXcfpTu%2FwI0fQawaiZkBIaNNV34AeYiq0VQ8WUIMyFgq2AswlQkI1dHeQjlkMsICpAQiiG67OCBdyhfbQ9wQMFPth5UTFgHbYGy19nq9z1E%2FwlfCYseP2AASPOmMFzUZvR4hpaofy%2Bs2IFQ9JMUz30kKDvcAtz68M8N%2FpZAXbbHNzJNBpu1aYDSZhhMuCCOhYcO5rcEHQhyCD4yUgIhdjyAS9DDRuefDnUaUKnL0qel5COZ4R1q5zLDbfhGc7rEIOOefDqx2CIZnCPMh%2F1A9mE%2B6iTHtI31vHIBknl8cTpdc6Cc6b9YK9NXHPxz%2BS63YDhMMuzkSvIAfgZFgA4%2F9EMRQb0r7ekZ6AZGqYF6ew7XWMHR9i%2BsFCzTIu9JZEBfI7OL6bIifthDH34%2BPhUsTloCGkEg9oKx%2FSGUhieqGbdu9dtI0rBF9WmaCg3KbmxhDCkkk%2FQeX0xqnYqrAd62kAoXYQZiAEB%2FaVVJTZfBI%2BrcfsUC2EoiAgQQWqcZ0UNHu4gHvgnw%2BsQZk4jfuRREdFsRykvLYFwU%2Bw1t30Y8k0qQSybAQACFOTmXQOVU02j7Y4V5OrrQ8%2Fka8h2ohg4EE%2BgpHukF02JJR%2F6BzfLnTijuixR9UAGD%2FU4aEfjwS9ZExGxdNcimixZCh0WYJg0RA2MBi2TVn5w29WaAmPTFUEy353HocU0P2GBgUybAgzOO8KaUgeclJCqlmtZ8no1H5OxPfDk9Gg8v0dWcJLpyZh7NKc1MknNFmNK0voKS9FTUJNbaoyQSALH6B48Qxpp1nfOUiqQ19BMvDLlWg5pFJ%2F8ACY6gNPIdIpPYSvmSLgMuThH7NrUGkMQw9GVKZxyYiT2WgIaKEAiJ6m2Q7L4uAsWIQKNkdDs2GiNgXktnJLDCSyZWFYmR8CVcTi2Xe8xzpaAeXmqwju8cJgRhV7FZBsiCp%2FiJSZfiSHLHQfQxSieDAHdpCOYqWzqCBGGAIoVsCRnh%2BkA5T%2FFnEg5TQBWv9IknS0ze5ABp431%2FzrI7tGPqpGiCo5HUUtyqC7gl4N%2BrSHRIi8xlbZAUODkK37DGFhUKITZQGFc3Q3CAtv%2F0TgAhpD9BvI0eoUgt9dAcGjxslkY%2FRA0BDCvVe1dOIwPU4jARmbC8YBurkdx%2FYSZt%2F%2FFgBmFUPAa1jG4WTGI%2F6vbYsluGRoLLAnIeS87QCqO5RhLezWM4KSpj0HVKT8b1VRnEI2qdzZYpgnADhYkRJlaQ7fMwJE8QAuS60ZeU5piVGSYMKQo66oU0GmW7ivMDl3znk17FhMeFc7YSIfvL%2FEiI%2BPSFnDLTyrckOQn0OXIehkgoUNh4SBtrAYEYB3VqszgyYAqmM3KSEnokHD8%2F%2FkNlcOEiRCS%2FLQpM6T6dBDrapP6Zyi4eg%2BkaEXWA9wV%2FUmTqFJnWLZN95VQa39KRJKy4Ho0D%2F0aeESOd2C80qcTAOO8uykVPm8bqzwFOGvA78mRpfJTyeWSMSAjkiiF7A%2BAqbsl8kElKONWg5UV5on%2FXo0Q3Tz6I0udceWCP1qfkjw4izrAc5VGPNc8qdA6OWnR5eRpGfJHw9vBsUBHr%2B9PSSCcF%2Bf11yLBziUf3FDNnCODnKlI8KiBE0Kjhyn6MvTX2kvCtCVUjOALrR2f3kbs%2FozJOhIanwW2P47KvP4%2F64e2lqxJSV0HMZWNDQlQxjFGTUhO9vsGF8oWPfnfNFEAWGMni1ofRS5lgIX5lmV0FUUcjoo21zIJeb%2FP5o4G%2BmCAIsNDCEZRI2sGmXHbeDly5j60ZD2AQABMoVyaSAAsZfNCRdHplAmIvm9qXweNtxZVFKpAk2XJj7ApLvW7wOCHcWV8KbrPtS0Wxe8WV9mLD9JwhPHD8S3kULq7LlxEI6ar6Iqzd8LI%2BBvivPewJE5AzoxGQlHFPIs4%2F0Z1WcZWIDwhMrF7b3jx%2F4SL6txuDDN3HZRCpDqBlL8%2BO%2BX0LAS0qRrv04QhyEyEwcJHZyv%2BLdTXT2jBxbGZIKWy96BBRTzmYCgodZX12AqavfnMKnr0TqgzYiDMJXUibnJCGnUMxYNkqOLHIBWapwLufPXMmd00pFxVqH2h%2FP%2BV7uTSSFmsRaS2i1CrFVH8HO36JPhG%2B8LoKf%2FYpNRTQzxSHuuClzSO0%2B4wqEBflMYjC5zz%2FJmCSiy0hWw%2BtWXbQ0NtUM3jhIpXdCRB7R5ci5iW7sdX4zNSySg8%2BDJz6cyLulNUoKQjiEY5bmNJpoWSiA80VVL8FkvYM4IkqE2uEPIiUS2UCS6lG9LVaiAYNZ%2BLocL5gIhM7Re8%2B4w%2BP5YtIhhaRz28Ci7woxVxDfaFsZRgMKrxiE7G1%2BDVN6f1ASAB%2F3AEqxcnwoo7zeXB8rhDX3MwCRv5GRjRkGVdmLH4AghX8HYd3gIIvnAiyptG2dHq52wrC%2BAsxo9CzDy8zfNI84FGqVLn0A7pEf2G389g5ni2i5EFpcj6LUcSwJdxcZVc9ZG30%2F%2FOclsX%2BEQNe4OvbaLO3uIgDQm%2FojEChyz7ndUY2xMQycJzJtffyP9EArB7UMRuoFAOVKLq2Ls8%2F05g1GCkHYL%2BbFSzm7Bk%2FnZkuIxXjm0MpcDm0bdzL%2BYnKSG17xJjq8WNdCK7%2BPNcSTrekZOhtsdUmFyfUG1prCQc5CIvhRwMAaCT9zvw8PQVhLCVfZ4da40p0m16jIfqHZ8Pz8Gtn%2BfiXZRsb4zElNPqoG%2Bycx58qcz%2Bm033M0f83x7x8J4JDiclpwFSVTg4TrUzQKzkqgfvKcNJpXZiZadnn54vWdaVLIwIUPRSB5MwzbZMOEslnXUopB1XB2XOVw9xvYMlBrf0S0BTziV9wFiFGenPt1uLTq0r53y9%2BFIHFPSdGWrkMv0hjZGURfXPjfLUi%2BcfcSKhmITsYiSAevd%2F7oOR%2FG4wFhXpU6Nw4MYndTSQcdjkzHPHQqSYZKLQ0M0I5WfwzYCiF44raed6%2BXnj2qCA70hjIhmDVLAeWsdB0lFNgYDd5heCkJIUiLZtCcChgSlpTckoEyKRqxJOTIjh1weyNhN5Vu%2BCtbwaXA8FmCSIS2wl0z5oBNpIrq6lrKdufwh3ZzQ%2BXPxBVFJZskUZpoBKmSSJum1gIpjEIyZHMnwSYiQ8UXI1xFl2QZWBxumglBMkvC%2FD%2FldSCBCZgvKiSk%2FfvoAoVhFx2j3wYy4ckozI29vG2b0ruaGCeJDcI0hOe8V3J4W%2Bhga8xgd46fcgjOgfPzyD%2B5aLls7Alt2%2BNRXV5SmEUIfwcpiCsjJAz9ii3rOsSQxL9a3b20LyU%2F9J1SlQl6evmF%2BYf0C5mZrjMCAj9vmCCZN%2FUKwiNtOY2SAZABQDsovFzMHfKI1o52bDhYc66WwcTmsaC5iiZwjtphSSBc4Ic97t3EE1ew8jcmwPNS3tDGeqgXJjRWdR27F926ZLqgqwF22sApT9LlPPFxrLGDWtc%2FiIFO8pUjQq4iOxfmnFIoj9yY8DApCh4Aoo11IzMaMtwak4f8GMxQJMYJJaffVUdlf1s7kDHf9q5z0tFzWf%2Fi0VNZ%2FdAJB6PPjiQc9Q9BX%2BJouNTXYeB22Po7DPwLjkLU2RXo7Exe%2BRSfig%2B56V8bUUdXr4ZPXFB4lSnyrh%2BELs2ei3yJqG6NqSFEtyQoIPQm1YrYCL62AUhB7iUZ9aQJLEiirbQolWSF4pcm4z5kgnjneeQKcnboHD1FYP9V5bk7szBjc0Bf%2BqylN9ToDEGUS8eZEWx4UHDg1FMDOUm0ox2%2F7PEpylu%2FFcy6pqeFgGZNqfikQcjRxnJeYQcGifRf1LWz3KaD4YlE549gtrOD%2FAduTsX%2FRvA%2FHgmvBXCOpmMxEKJiPTpJVkaaPBSGFam0xystV%2BZigIOhMn0ocR%2FXeAknA0b5JmCBhg3TBZiidbkprI49CE%2BIxYXQS4NKlW1S9WxrIeyAjpG8RSb5MzqkrFyJN6MQ5386fJT2beiJvHoIekhBaAYkRJCjPpqyAQLPHQy3PB%2BYhDIQjmlCl9ZAR0FKSSegKayCnFBwdg8HQuFso9IczdgE8R5izKnof7MJnVigHUW6Og%2BxL%2FoflXpU9ZqiUxdLkOAGxzm1BOAZ18JTbNBRWCO6zYFgiqGiJS2nmQNkHZYcSpsBP6EhZlDWOgBXVQplMs0yV8yh64fgyC%2FCR5CaU9lIn4t99bpMl%2FNDll72VzGwIqqlpJJiP16MyaXWxsmiFFnw3iFaDVsg5L6nFObrry6eOIszTLBCdJohZoA%2B6H7PVOwwMZFy3EoiDD%2BZKieuSNo0vKJFEfXtRzF3CJrVVJTi02RGyxUtTQZyFA1wZoutVAEDsRJd7i6wSnR2YElAm%2FADAo4Qirl77E6XEEBEyxJzPC4lq2uTsCo3tdl2dDysKm%2BPQ%2FSQA3ykVp8h9%2FVC5MPEY3XhUaWU4X6G8YWfEoQzLCbsEJbNwT9ikBLEsUon0Rb%2BhqKuyCmS56IHw4fhkyoA%2BBq4fuPaeW8jq74FX5piFqSX3L6c1qstDWg9DhRAxpgYuLF4EpT7aIO9vTFuloPgfpx18kSkkY6H0QVFgbkaKSiWN%2Bw3%2F8djyYpiVSUBdilzJPwiI2jn25deRU4gSV0jsa1BxhgxvQR3Xp5LQohxoNMxFGyBLBeQvMPc9izoJVzpIoXdokselmvaS5KlDNThUnpwAIpZVAP0kSv3JTOId9SheR8FDT2WwUf6y4E3NLdfH5H5QOHbPI2VNO05B%2FW%2FBs691QkuzZumebscgYr2a70iaJ2QiT68AGW7O5nwGORWtlsKVPOUtX5YXjYdKIO%2F7bMRAUQElzJ5HMivqaKChpST4%2FnwziI7sjbxAUxjShRiZRLuQ6kxEuirKFuwZQPxLbi5cVpQvKvjS0faSens5ShMI4soX4oeyhS8ZrNJRQ4sfCKULO1jF6zd4YyhbvO5sZ4aeRBKSv2AaXTN6q3nKXX3lQWuVSZLOAxq830RS4ZkjCundAAvzEAJh6YFiLv3dlMA6Tkv2l1Nsj8VFoUuO48Dn0Dj9N1Q6bp8m3oGUVA5nY02%2BC1ORpSDH%2Blgeko6ywHypMST8vre5BOd2S0eW%2BaaJvT5LLO7n%2BAk6I3LnYDJFzpmkkqr0o7cHLt6cxIn%2BxAmUgCPIE8%2BaSZ70NlxyppKzPfKvICfxWYG8%2BAdk3zyP2qrxQPMR0nQzzj2a3ouHYqFbmxzdJnFHBWHkAfeWimMsWNIicy10J5R0iJTbvjBEAWiE4DPkpc9RCkbmuZ%2FKoE2XUvv%2BJWkcPL5gKdhBBzjDXGFtib%2FmnUD2GicWXjUu0CbaklHMuL40O%2FOkcM5gy0BwAHCWx3yTkR3RWnwgB%2FyTaJmKbS50iFJWc%2B0eS%2BuFX5Lj3mRqYt5lhMbZgpmn7V3PtjNxMMGrMrYcvaMkW6YpZxm4ON5WXe9KO0ks3wWzGt14iTDH7quIirBsp6oFr8Vg7ZhW0xERUidmKrRwJ%2FZ5kB1EIBSXZZwd%2FlEaSQVfhZ4bxmN0LfcZIplCs8eFirwdAYgAdpwS52RqCuRRoWdc3kdxgAkVniTipyzCCXlMEOHSM%2FxEKv7oFHCPkubgALJ7gv7SthAp7pPfXpINbKIOKX8FaYHvI9KqM%2B358721MCHbV0uO5QQqspAedxmgWT4yZVykpxzY45G%2F9vJ7LR7JVgHdM5mom5AvVVDj1iQrUFXVKEYTXXHoYGKzoBs4%2FgBaZXT92PRkvYF6TYUaFSYhENpokcLU%2FTVhhBZVXGSji0wjxzj2Luk3OEz2zHICDLm8xqejKiLREUyYA7CmFsuEHhVHmGnldmEbnkQZVABqQA27SJJOBjcBQOIlTJXYS8h4MVOHA8h2lUxiR002BHdpFfoMzXZ5jiQl2Gh%2FTflnTFZaxTBmb0KN6URsqoYxAyTmOJXAyPJXVN8zbQQLuLcEiMXSKoWCCLzyhckVnJ8JAikjkGQGYfVzYPl%2Fa81colJfaP97OCSRwCSuVEFhLFnrGKBJHa0dpHbbc%2BGfOMKEhuFIPOCqO3F%2BGKsgk58aEMQF7OpLcfknCHXAocNmI3NYcal%2FSp02iISGt6Mn1scu1bTprhXmpzN3dAGmXk%2Brjr5cQkXrRouudC1yxVKXjqaVW6xNCcE5m6A7Alv1CNQ53XGXpzXJQ1TaayKXaP6UVpr2QiYu2rb6dsxo5mRmaAFU3mMtrEtA23sxx1ULAGOF%2BA2BsCmMreG4NXlwsL2YpU0Q9w7TqkrBfz92yYUbRcLULBoJxDL%2FWy0yVJDGNVYpygOvc%2BTgmjx241fzy6cvHAZMOLF5oZaA%2FFVlfXh9sS3tdvq9isfa5kz4o1VFbxhAbvLeJ1wSj0eI%2BaxKVteBBgujd%2Foov1cAq3NbKhKW1OezrKPmzw3hL4lUsdJEEZK0KhyFpDzJSPSAsQxwmJJPlmG22RUKaARoaledKTJYfQth5fEjhLyXuANMqGulz43uz%2B3p32kAGDJ6tdFjM1ZOILM%2FP%2B%2BQuoU0ZdJRkoX%2F%2FUIoZ23zaX0LCT3xtctgUJhQC4VR%2B1bDixKstYNAIWkpJZMAXkwXdKygmk9%2B0Khw0GiyblT24Z9C3zkCcZkZjgfgLPHooUHXS4yWBdXNtGCS%2F3QPi2aOSQmXddp3dr0rCgygy1S8vrYTJMYgQfQERv6jBQ9YDM8GPGGhrE7RVCyiBBQ9Oox45IdoVrsOCD4o%2FnNofBSpaKvFDOkq0KDU7C7DVdlktCYDKSK6OEBv88oqf0LAohXHy0rDchS43ArkFykBXNL42wplKYpyb244qzJ2PpoCg4cG9Xr0iRDTWVotJGo6E8IT5Vk6GrEBmaVc1f4txHvEKQwb9PU1%2Bl3mEvayzrDDBjrjF5FLlE1e9fq36ovUIzGiUJyQidKUmKAbyWZYlMoyTTFLxhdG7qoGpilk0%2BHKDBr18RibNGL64bpPhYBXaeSHo0WlT1vv38eNBUDWiEZ9q7JnwmhA49XE8D1%2FG9zumcPGPWT0wBtfdkEEHAGI%2F4kcdh5jsqU00IRnay2NGFVF0phRLVRcTlg5rTaZ84jhabcu4iYgnULB5wxfEu277EYQpAtCZZ1wwQz7lITx5D7hkpyNE%2Bhvbzi4J1EatEbGNSNvyITQ8t6wKuDzx3RuD9rjKCRyVNLbj0703sSyekYxiKKOoeIYQU5u%2BRrLb67C42mWElDFDtXKL%2BsdqUuU8nh3TRnDQkV6HytVKxhzdJbSSfQzLRGmsG6MNtNm4DZCmBQCF%2BJwnqzQVadiv2LzRC0uDpj6P4gmotgA9ZUYRebbuM%2FpyhP%2FnCMVYeT8qjVj%2FfbBYoypKRpzdqTG%2BesI7WI4uhQGpLI4Ewj6na%2BNHEr5YJ0Rar0cuhp34uFBZzuvaWexxwQqPL2csJAkw6SyNByjJdXJTvr5Lqmm4l8aUJTlQs1GdnWgWiCsvwHi6SQoAKcefPIVYQsAU%2F7FNYTnRJaWH82ETJzxnX%2F7IJpICxlv8i8XH7bBJ%2FkVT%2FRiOEDoLwf8TXE6mkEsJo5xZ0TJSRQt5ZzCUDAewWnw1oudC%2FBxJiB%2FMzVVg0jBF5CP0gcARuqPLjCfEZtsX4OPvflGGfMaz7DfKFnBDZ2Hy3wQl1WqpnahYx86JgnOKZZy9RYQOlF14nbCxYUQeTWcVNPhtq7%2BRxSchDMnKTqAi%2FfPQf4wD3SX4JogBSRtofZ9NBCulRl9%2Ba25lp6pJmkuoESKSTWR6V9EmqsdDvVp0OJlMHuUzwou%2FYEqbwJ3q2IXcE7jKY16kwLGm4W4WEYr4VLGS3Ebng2eJYDAHGeZHAfF6zc9ictzza6droirMDce5zk7YzwJYpXHaw8zGYGGPlAGEpTFc6ObsgX1ddT%2FNjn8NRLwk2monlqxLFoxK6y9%2BX9J55Bjhg0%2FxiyyoR5fsY8eXfiSVRitWE0mJoBnZqIilIgSfi6FHvR0pAkc5NBo%2FA0pgojciefa0XpePDHAIBqVIQMSXPakI%2Ff9IBGoSXVYl2nDqCn0m7cQqZ5tuJV0fEAf82cP%2BWuTAiK6LhSMP%2BdmxwBk7kS8gLmw2BfBXySHOdljbAu7LvFOkFbHLshl%2BII0XV%2BHUY4PVgt576TihyAApcwOt5wzUNqEfzGN0NOrM%2BshacT9aOiM8xn3%2FcF%2BL5ZbC%2B7CwSptlYOwhtvLcjHU0Ph1LZoQDqXiHMJGZeU0vhBEj1yuJpXMAMcL%2BZL4gKBUGYhXdZr2YxJH0UXVKtvXOIALVNi1q1mbGvF5S3lteO6d0l%2FmTHuNM5b8NEzlkB8gEFQyowrYLc5Lw7ohhqGg1LGhCGYgEAREBqMUb7hcJCTtFxiCUzaKapxBCEWY8XtACFWYgddEjjn0kH%2Fgz4JjyhNQYDPhs2tkQlhcOAvIWNVjIEG0xGvIhH94gAi9s9KYMTtCQhQH4jGoA8jmSn20LkUccQQJQlbWQRS2MZNnkDO6cqZnuLKB%2BcMGf2ErV7w5gC3cFOKtxqFqRYUysDQ5X2lRU1Jb6DfHHmMiYBubdItDty38Ou%2F0yWa1jd0%2Bp67KeIfB1z4B%2F67ZY4BIdkBSlIzAA3gRDfuoBnF8xmVbAU3Z%2FLJF1qSAovmDLJPiC%2BmMOTcrmTz6HJPyZgA7AxyX2zbADYrVHtNtNUO4mc3CxMGSnBkO0Tlb5CMz04nHjbZbTJ8WQgSE3MlLkCIMZ5QGpo0EksIaF%2Fx%2Fay54xv5zFO6H%2BnNLkbP1wJJ2kj5EoMEDTTx8%2FqRlGG8HsY9SQCMm55We2jex2M21PRdhlFHy9uI2Mx2%2B0flgdNm1zEt4nUwNPjCX4DnaH%2B2rb0veX7qvedxxiBx9gKSY5sQdIO2OkcoooeDpymDp7W5j2ZigaZBn4B9A8J4LwBtXN5tyn9fa%2BfwzGlVPgxSsl5VVVrbiEfCgxafeWxe7OAPI501OgfAG2Q%2F0CoAxQt3RQICK%2FG0J1nRifIaSwM8LmoL7oohsSmGzKBNLrjorCwaeVn9HKYf%2BJvfsaue3DCwLY%2B66EPr%2BPxsYxJygoxIN3%2FZM6zECx9Ga8QQkaHmiWpqRX9jcTWstgLC%2BUAJVUjgAj45MMiJ3BOGFlVAuBBvFKXxOYo4QxFfySBOjMjS3Fi3hICcFbv%2F1TzPLI%2Fu3R%2FXm8s9u0XFSSgNVUTEeIAjpMTPZo3ixNR9an3xKER6oMSFtjvV0%2Bn5QgtE8Slf3D4WyDqnU0Ijjnt9wDE8rUrcoe1T1VKrqODTxgWWYkwrWL7C5AOSIXfaunDkQ50YJx%2FCLjdDiDa6AnNOF7wkbShBKsiaUGo1ZfyUDVFmJowPdDxNGBHij2hAhx5KRsEup1yz7Au8gF5ZWiAIHkqE426C9ZcVVzaaygfjikg8goQnk9QXBZ5HoTmfqyLMK0XHS4Vus1hJwyEHnhowMrfZlhh5LbAUK5%2FxrsogLwPTEuWEP%2FDlj7hQi1wuT%2BAn2nCgL9MugKYMRWAl806L4o4pwiHIUBhzS50B3dlUrMHlAUQlowFbPz5pMim8%2Fg%2Be5fuU%2FAJmTgz2WGjjZAjU23MKNDsRAx4LmiH%2BAk1Y4YjICP7ZRHCE20aWYCe7A%2FAwJewWSzATH%2FmSLubHPFm13H6%2BCMgFI2HmC130ASW8D9ySQMigJ6URiNe5g5AkV2EMDnBtfUW%2BvcyDoMZcgnyktKrWhk9cwNuuHkpBnGjAnZnfk6tPgskGCq6sSwJCcRpxKGzdGKhyzfzGejtiLz3vopi5DSEBHgH35mXOseOREYXD%2BagQc1ME7F6FQLbNOrqr%2BYXoH57a%2F3sqtIjq3S4LgtKDIhmQYCKRx9iAhv9phHB3%2BWC1%2BwihaTEQd9uXm6GiK0b%2Bzjc1ql1%2BISI0woQNDcgOJmQ%2B55%2B5SKvQ%2BUriSNhX5J6s%2BMTAqb9WU4%2FwbYEo4e2p4WOF9%2F6BaoAFvayIUON%2BGY%2F%2FZbA4vzCFkMJKhW0A1FW5P2c9qxRTPKjH3dSiflLSz8OFgDzLi6IMInWL4oZDe%2F94pSotCnpoLAgWSL6krGHY%2F8sOlXKXRc5t6gqmM4sjd5YSOQQtr2Xg%2BewF%2FOYkf9%2BlulZpoHILMrYx%2BEExqy2gXhK%2FBHOvfGwcwhQyqlWgEf%2BzrXGUgGQ6lQwAmTnZNbLotHqMby69%2F8h0g0zkMjw1QgX92GSggKxGO2QeLcEmOf%2B2o0zGXmrfmJExP3ONRaywmOJqhplFFREyqA4c2Ay9Im5ZbTFPF9fFWbRLyunlxY5YS03EqfX04ZuEvwAsclgutA2M82I1t4c0ssrV4gYO9CKbc4qs5R0AbumMB9hWamQgLXEI7uq%2BT7nhPjf5UC9m9BAtbSNhKY30eimlVHl0ZWQiDHahgYUSF4CDPr3nbTuqlr6AUz0L1Fpxa3CzNg0Cx0skgEDhIAkCuwWc5%2FCL2RidY%2FXf3zlshTYfekpRhyniLEc7%2FcxIiW7JoFkW5o6LhFo27CiOcSIpSJYYZHIUeiEM2iJbC0kxA5EthUxKLBMrSekZ89n0ghiIU8cUgJi3lMQchEwgZ1e00IgS79R%2FK5tItBQDVooBguAvSYDHvKYh8jomyfp%2FnHWBFr0zjOJICOr03NOwpEWhYndPs5hUig9peFNyrM%2BmTgePOh6RVOw3oCeq8dmPmhzKVmMO7%2BdOTShFtUsWxh6ONmRgwfJHeK268IWZpxbLHCvqek9VsJ3oUiTnlQE8%2FwcoOnOx5xETyd4fRhBvY6FYwUaeBfAagx78nZBbNUKv8fh%2FQWLBpy3fJ0PsBvzYAQAPp0VrQaROCOvyuGvG9%2BzWwFxQ8VO%2FWJKE8JppRw1wiMOFXrEmLpnlSwncMbVPI7AVE5JsuUmNyB4irqjTZC%2BDdv7DSloDC7pOGN69uZ6tma%2BwqRrFKJby8%2FWNVIJqJKGT3q3f%2FgZKA%2B5ADOCVl0o1P7%2FkgEHw6KEi5CVytGh4ncqIaCUlLzBL2665CVHuKYRMHz5FKIWX76huLsduBtnJiP%2BHPWJJACXoykapUPHcK2wYVGzPzB3YfZ76A82nJIIkvyYTjyWBdR8RhgAqAXxeJaWMQMAHcOhjT7T4svnKFL%2FFqHX6BP8sktoP8Svr7zgqYvBPyTwmREnP%2F4LPCKJh6HA2zBDwbJDXHR%2BI8E0kuiXUPYQYUX0Yr9UPt84zQGkIpBfgyyBJASIOMDQrnG7xAmV5Xh5dIrZvrSQeDMBW3ZZZYAk77bv5%2FVkplOGIOVrUAOXRjDy5ve01PDGjEDrbSJPJSsFLZ%2FRZf%2BYY6E%2FDa0JZ%2FGB3V28ISVcninHq7eep5SVpAF0YxLcu5VRjvRApMGPReBWYmfih14qHCm1Ao%2F4agagS8af%2BYgR%2Fwz%2FSzg6TFBRH92UKR%2FLOZXy10eZOq1v3PMa5QTQMRqz6WVlROj9pyKE00JkRvXBXpQAPUOFaTZkGDU4UHgY3OUZHyWN2THYUgxdZ8WnCPBxie4NSY9VNlHLd4en6AdxpjLitMyUA2rPDeHrs1uk99x6gB0Nc9WluuxB8IoabiwJwK2Zb6l35ULTmDOB8cjPO45EqO5NNGLwcGm7x98cBxcFcr3BAF8KnaQUUHyfm2Ldb0%2Bp0cYKNlYa5UanegdnBpdqDZYkAEqE1SlhN0gvas8P2oUi211CK4KQyi%2FTUFUbTgYamnDWxcDUYK9KAARonE2X6Oihj5oc%2Fps%2BhgR6XE9MBPyNtxc8Oil0bKlMA%2FyzmeOa8Yh5A2WSKP46EFSqaRMBimtXPgHo8dk%2BfugRMYZIiKWsaL9uotLXjXOd5pRuYEx7p7lCKWBUNARtsCIJLr30GS5X%2BnduWH%2Ft%2FYXlow4HRBURGzwltowlg3uRCsmrUYy3yWVx2iBHrQBNomdoGf4CuTSkJlh%2BdlgyDtLIJwjkuPGBnNzln4PuHwG9uxLvVagrIcdAbJx28dqjZnwAlSJm3WGwOrC1EOusC1mcvoD3RdgzkO5i1jlNeJGqQyAuD9slYGAJfXM4Kf%2FClG8FOQ4tQ%2BbIDuB9Snw7GMOTkiie4VAunL%2BdAIaPUtevOYpXaRYnDD9WZvH53EIPxScCY131njGWBhkx4ci%2FVz5BjgBiM5mNe%2BYX7gGsAZcYzFII3yLrbCBnAo3rhK%2FJGDr4YIUDgaCLwWaCBwCk7ta%2F9CYrx4N96vxbpTNf8MQh%2BAFFcppNn0kk8rsjmv5%2BO038obxAioa3KnmSpcYcGi5btWiSP41nk87pCRttxj8Oex3lkHDwhT2404Rx%2BOcwCP9u6QVqPxYVzk8esJLMFwOyVcRPLBwREnQ5tyJ100zie0todnoVkOdBgKLTeDstJ9vhj4jgw4e%2F3bEqGXPFm8fhNuurL4eH61gHQeSq3uorHCwixUAmylzsH5txHDMyV%2Bl0RyFW2RgRAh3CZ2lBJkC%2FAHYpJQML7EIvvMkg7wFNj%2BuA6MjYqUmkbhlBo9nyg2Kyt6SGw5uzKXcUFf3NgixNpo1ARLw321m5sSAkn%2B8LsdHzaxhfARFSAhNXlBqcJKoLyRAMmK8az12xH9zs3C5p7AUdImjNXB8AIj3VmYDMQxlgn5clblEdPbXS2SIgVARGPFWNq7J9tOBbpEQxDoqUlZSKnyesTx0bQKnghkFy8rjJhOBgOLS7SV5x7emOFhAgaKQUdcEJEIA%2F59vqCpSdS6wvipZ6b0LXjQs5%2FPxKYqE05m5c%2FkVGVak3eVK5GHo1uZ%2F8uMxB8DTpQiLNsloAopc8RxN%2FMnVCJdYDcl%2FdbLvl460yNRiaBjNURJKJ7e4TE4nggsolgHW%2BB7I4sixlc9ZMkhHLY1DaU%2BRTKIDIsQpprb88MsTClmvaHwga5qhz1%2Be1RhKhI3ZRNevicdUkK62N0yMowvGVdEVxwYjZDJJEUsWv6RBQlL0CpgZ8tRKLRE1NZaKrSoMuUXG5HRgjyM8MDXCtFfOeDTPj2xcgG7NU6HwgCjRCzBgA4B%2BmboXYaOqKIZf8CTtaUjjHvjbhHkcclgTv%2FORLR6I7991Ojd0MWpZCfuwFBg%2Bi2A4sDIFkDrZafiucDcQOhDZvHiLKdCFJwMlL%2FJP%2Bex6g6p0h99C194XJNOFhmJag6A93cV4x8CLl8FPAEf08RIxZ5%2B05n2FZVEzo3PwlQXxcC%2BiuVDITOMnzx8XEePQLNJ2OH7NvMPbjAdwriNREINs02Ey5hEwsxCYnWOp%2BwbjCfbMMgJktNvC0FTzIScZdSW565VcsMTY7Tv1%2FKyGAiSnRkwJyx4EOjE1oym%2FyIC4hCJp5CLnXzqFu6HAhCTHK6A82kgpsNKXeluDtwHrkRj4cnE4LV2GfPkN7%2BTdRCGXY7GmU61OcW1Ip%2BTJmeocPFcTlTeBou6CI%2FGwieQttkYs9XFrh9pPUMYmlKgUWPanaPFsiM%2Fatct%2BLh6VFDdkwTU3qNV%2Flmy0yEu0%2FlyOQKCcnJSwkfV5nCf7%2BVKUzBgsMJj62CpuVqH%2BIRpKJgH5qWV3jQPVt%2FggxHTndJCKxQW%2FI9NB1I4OnsAZYqZ0KiuX2ctek3GjUlkKVeQCwNkxEzBBynAjKpdYarppA5yJMh0qrf2hMP2aoHxlJ67sSQutTPwwrTJYM4gbCcQVIxIww0lh%2FDkOAIcvDFvqM92vxJ0wojsOBdJmC0UAAN6gZN53Gr4gw4GPBikBc1ihUChWEngRpmd0OPgKOvYguiALxkyBy2Ytize2ZXX4yD6cWayg8vIe3pr%2Beh2ZFT%2FdPAPB%2B9cd%2Bqoao7PcRgtj78YrKQj8UeV%2FaVl%2BAlU8qAZA8jrgoMtfMSONlBjlu22NMDUgYnCoEZ14hroxxkMhtnMGVqZydhTQsikmDdiFKPbnafjgLRCYTSznERhzBaaGNYSL7EVpsFHf41qagPx5CAveTBY5X8mQASzG9Ahtjbrtbu1B%2BpkFsyk7foP3Zqa3YinrQHHyfUOdA5wGXnA7H%2BwvuoDWHx6EQZBTJvE56DrPyd%2FTzDgkGLbf5J0LBNfP7RZH1XMc%2FC71IEuxzBFbtIPiAcLASqyQQ7ue%2FxNvE08CHwWNbO%2BSlfq90AGAmMlY3XKmby1TMOuFQ1IY%2FuZpBSD2WWADKPnYZXs9%2B5rAKmAHE0CTBVKkLcELdKPA3NDRxNQ6riKpTq9%2B2TAAml8ca3jgDx%2BJpAFjh%2BZU0BMIl4nB7ZPLEQI2da8lgWQ3JvRDIdeLhlk5%2FagyX53S5jns%2BMVNXbU8IC2DF3k9KO4n8nVhhTIJWpwwmK1hzleeP4cjZgBoWICRWUc3qloBEiBrzTEdGReKlBFgELLNRJl%2FmGuQQbfdoAdISlhQSCLKNy1WtAQrczUFeV18Z7sgrrPzFwcLeOtw084XY0ZMfiYoL6Epl0VttzCWAuMA%2FPBSNH2ldO1AgmFXp1PtcbN64P7haX6bdJJP79R2JuPg%2BqeMag4BH8%2FukfDqPsUn%2BBjJhbKuy3QiBBEMucFTCxWXNYTDvTuIdIHFq%2FmAquviNFLm3yxsJXY9k%2Bl4KwaUfnlin0T5S%2FhvBxQ0kxrxTKYN30z0QiRqRyrMx3H2UiDTdO38iyTRV7QVWRsuIs6rG1mk%2FIbleEjxE4c4I42ejvH3lPK2QzkR1HADbYXaOatIqj2KjhlTbtxycno%2B6OQH9Sqv6jKVkXq0U75%2BZJNDpvbQM1qPYj2Lb1GFWLZqLFlFSEdO4Hm88GNcrH5UgDaSxI6emWpb8aHdgxioLyobgiewG4Jb48H8BVGcx%2FtUkGAhskAdLwq2KPUsy5HNfURsqRtIjLoiVzakEAcCoJ%2FXzImFYFsN3SPoeZ49NoGhpnwy62xNXBT7a8twGADra%2FpluHfWgpAbbKBTOEJwvdMLT9Wkv54AsyGDpDDCI0bpe6SjAUCzEYBjaZFxUKOZmLYpMihoALjJkQjKLUfwYuEMF5pRaD95FLA38rxFWpR%2By5HiFGWwRxp4hS7VzUI2KSdhf2rES8qAqhS734J9FxYRiRGOvFID3tMuhyBDxzxOgdAyrHnQAuRVy794LuUxQn6NCTeFNtG6pnxL9pVXAVHKC1rDnCsEYxA8sYYehsIFAWxd65ukIcvVfTDcNU5UAwlwSEiMJHS2Eu8a7waMcpiyyoVLKwAd4gl7nltaZWDfQlig%2F20g4%2BjQOKg0%2Bk5ytlRKEP36fzgRmyhnA6iWBEgJi7hZ7kLQ%2BlAyOho2jgngAcHSmY7Hy0oH8xacSfnxSFCx3rojGxo%2F7k9lDsO3QFL%2FKXI8jmUYgjKph3YeGo3F6rqtvkvNuBUOQmjPyOfdjqiFEL2WSZE55sE4QTF192MBNoXM49vssWiIc0qTIFtwBRqRP3FlQ54itSYryAkPfIQk6nZANLtCQEeB2umIZco9HxP0yCVVRGFz4G08yf2FO9abcvaZmA1mEusbwDkWRehh%2FYcc4nxY90rAzFSewDj7ea7EHi3FGH0ahp0h4qkQvDiteTBw9SxhoBjymgtDDoi0LkMc4AT%2BiedPNxyMKvxkBeiaNRQlgjD4rvyDTFAENDklpnHKcf0oxBLET5%2FJDcZ2b2xWiWCLigoMPC%2FJAVpZSYAadEk9qbpL404G5ZSHvWi4IF1AVynZCrBZd2kDFfv8Xg5fvgFIn%2BZNLb7NUGOSkFb8Eqdat8iq4GIfcQ4ksy2FS9nBVfSntbR0j0dVJNtEVFjqrFMrk3nFMTf11tn%2BAIB1O4KDNe4MCEfv0bmSwt9EqmMhTS5vYovxXQBnA1RKzA9l4A%2B7JHSeAlyku2e1mguOR48hP8ynwwagStMlkQx4Til%2BD3KamqwlsLitvsHAGYepo7e1qnM1YSmggPz%2FFtVemm6E8tBQY6kubWkOYrwzMa8FJiC%2BQbfsTsVpGwUX%2BEm8XLtH94eEZqpIM9J5DEn4hnUukvJeOJCF4TEcL5XdFmDsZ8Tii9uklu9Z6zPESyDtvBzmqFSTGOSCLEeMJGiel3w%2B2li9Y7xdQwmBrbaOFFP4gLEpAcaMhtdN0uQniSMsrFM93jqQjCfD12B%2FSO9T%2BT8P7XUzMjFEDVMNaG6F5EDZR5ABZax2JmiPz%2FNVEVtkMKWv1qaMgqwC79aXOQyYUAnB0yVAhLTr290SYYswHj29ACA3xqDeB7bb9%2BoqbEx612QUKCFC9PQ13s%2BSJS0DOhi%2BvXXRZ3w2yE9IUadUCZfST7IvPQml%2F2FBy5RyrwXzoyAZfY5NEIbzyeOLD53YPDoQq1QJto2b6fKtE6dtjU4nswD%2F%2BgWCFYLX2wOrhglEoSthn2zQSoSyBsyLlS4CjRGE41Rspb0WMG4yTQD71iDybCfGW4KqzYAdpbpUBLaiMFjORF9roOAV4pa1dveUmQ8K9jicUS9zUk7bzQQKwZ6yEIv4phFAKCIouU9anuSTatwIb8UaBiAfyVlnf2pS0bDZ8%2BTmHyXhUszm8YOOAkoH%2BXq0Ks5be6eEZMZaepijQyIEvCPLUaLcElbn8QZAMLoWZKIZvBQCiVIhXC0zlpqOSDIWVXwgL1FiprBEOuPjdMgDw5JKifCKUpz5FcWPR5Gvlc7ns4rnroqvtE7UInM5hrPDjHAj5CilMIt%2Fxz8pcE4WJcFkEFgLr9YT51BbM6DXUC8aWy1Hcn4s91Gfv13Mt8s113QNi4vDSm7KlyDSkzxy7zVqt4T6fD6ONmp%2Fz4FgTIUrm24RkOCExEUWwnshEgCXWUzIXwDJ8XG8uS0AcRg7tiNnQVkA1dpY0hnLhbLokFgGBzYzaJCWEURO%2B09V%2B8fYp2A1OYi4DxMIyAf0xPEPBvCCSrUjJpkIt8HTNpiHqH5YmO1NhDFQwREmYLhwSSIAMybj8shDoG%2FZQWaZA%2B36Bl78%2FjqLWlnoGu5KEITGlzhaRMLKWwAJRM4Mi0KttPZCDWywxrANrN6oGEIQnSu4xM2g21bEW3ahEEwKZB0TVR6D%2FadkdAqmvQqr0xWpsKwCAW3Eq0Qg1gExKremBnWCDDNt4uiWFprzSRIDa8fJFgKEEqYYW3hKnlOvtCKnytVuVW2rLxn8d0il%2FBSu%2Fnp6baAvUuouiJUL0%2B8IQrDgojW2Eq1%2BlNl2oDqf7kQoGyqrlFzt31boqcLJJBA4%2FqNfoBwObbGhJDDJV84YgUOXEchkKNY6AAhrM5wf7D13XCoT7IuVbQYL7rEQAZ0Zhi97HbSdlIGIA31D5tkSiKloYrnvEay8CxnGlLmOLSjlPN4pfhMNOE53Vgw%2BF38uJXBE6uGpfs7zQZTbjiw8NC13UAdCLa0bxwl%2Bsq0ttlfidUJY84tLYCgWjQEMCsseJI%2BUNO8V8i33GLd%2Bh9FuQq4mo09hKjhRMqEFeoffCmfDDTEyUc9fRHYSbC2%2B9LBEcpWCoFT3pY7WhB%2FhlZ%2F4fifp4vRxOg4YNY0aj4ntaomu%2BiY9ACLZA%2B39JSaHfM9Zv4T3qSZ%2BW9wsoO%2BBxGGT6Eky%2BqE4lETHFJVQT6VSBHMOwvxGWK79FN0780RhBTFkepdm5%2BUhVwUPaZA0aaTI1oEswk2ZVpiCloqyXiMhE05qAJDKlf7pb2dUmuOUyzi47o1QbSfJTfSCoxg38uxADrB2guYZk3QGINZEm01iTLuJsk3lXRyfUcxCfB3RMYkJspDM9BPKIkUec2zUGzxEuC55II%2BJArDkAqnzJkIX5%2BY%2FmjVO1SOa14oB5m4hf9htRBkU2sABrl7P1l4JpbhqyYKNBB%2Bfx9PzViK%2FsBCFsPrWJA9Pa3R9xZRAjFxH21Z%2BQ0P5hNeoEAynLlHVbvmwwXafZVRPSuF7qopEspzmgWhoOaOfNTtgDXxo1qCvSQ0W9O46gRii4B%2FAOtoRD57smbs90cpu6teb2LON%2BambmLC3iYenHhnnOoSxgTEOhOZzMLE%2FWi3cTvCJiFA9GCxKzDQ7mqN3mX4o6XjxEz0wCPImWFwKY7sjD4GD7gpa%2FyqB5vQh2v1BJhFe4o0S3OQO4BwaYWwkpI5zVQXZrUl3YbNIxi8%2BH8bMvM3VPcj0DBRyYJT5ZKz7CQwSgk4BnkoX0%2F1bffCikLQmUhUfcqJ4pF%2FhqdnPGos8wHSVn9PXco4YrkecA4DkZAmHNpT%2FWWcZuAmwRoKYGCcb28WfadH%2BZImJpSnJ0fyRDjqUyKzLcTZdiq3TAEVuwkv2nYaHphGzWmBIQCQVlfpqgS7onFoA7cbsrDcQQOQ5is1gy0HUqjGROWVzG9gW%2FdwXMYjTGR4qu2FyCX4pWqCy%2B86DtYf9rr1DaJKELYAAu9r%2FxJj8ifyf4QDB6HL7KM2uIK1nIRIczJny6JQAAN8gEAPHMJ8X8YEXUALDoG3bkUC0wRpQHi%2B%2B6PUhd2T9pJdG6JEwQypI7UpAgCCMcbD%2B3QnDCciVOyd%2F1cfwGwDASiv0Oy9jJDdzQWygKvmFyX77UzFg0pawvBobl%2F6MiT1LMGVJuAEeDj3wErAzbodko%2FLf6AnkEhwyGxop1mWV4ywNM2Nw9kL1YgUh7ts5JN2oGOLRaTuWMHONHHCjkOI4mCBf%2B93bZB%2FdCVghOdwgQcAuMwvvjQ25yFBCRBgHheAnDlHLRbCsSlrt%2FkxIInIbEPAff71EEt7iMuic%2BIA6fIyfNjLSA3IkAYxjywxJ8LFnq0EoPSSMcuux4BT9EXieADf7y9BM6xJRAqMUmVCUWIlp6eJtBel8CeOEotQRBtUG0xDCeZAY3uawbmGZG%2FZdgNezvCSUxcs6IxqwTzM40P2kPQGD1PfLGvYNKZkQkflZ4%2B%2FOpTLwdKMBuIn04Vur6yTlAt0fRYugCQmeQJqbs1zQZKQt%2FV0VwuWLmexPQDBXFHY%2FZv4iRyCF0IkyAAxigAzfAnHECPlEBZs4tUuFxMCezrDCF5C9niHMCjHK2WmkKBAof2KB%2FVd2wGP5b6k4Pw7pYOsgOCYpDl7JnPJrxe9rgpomWCYDaSpEE%2FZfAQyPuUQrURi24D70Ck9JAcbPkxTKJV5Fz74aTp2F9%2Fhx4Kgwt%2BDwxAREu8tV0My6yvnqPQrl2Jkyk%2FkrhXh4yZOc28s8tE%2FwHL9gTDue%2F5ceBl%2BTxvL%2BgGEczEtL9KQDvow6Lz2ZdskBQcNsOgHs2K3tqJwWOtvR%2BgKanpib8ojucrt1%2BW734reMv4I1zuHi0GX%2FX0R3UyFEcWCkUKPr8U0EztDvvZifWZP4sjqaWRQ22WJb42mx0O%2FapaVBDjhQVK1YHkL2GlTEZisjhj%2B4r9FZEHGeqVkooTjThLmc6B4qexkbFc%2FhT64kjC8%2FVku%2B0yqyIA5IT4bChZyMtPCwNBgXQFaFMQDskAHUZ1e44o%2FgStr1e3DgnlVs86wM%2Fl3ybyUCGSMLvXcYuUCmb7GMCc0kNxoQB%2BRbRXrTCgCZiXIAxQ0mpMqifAlI9FiQty4vTfALAxThTgVlhBEUbik8ZQS2JNRaaZNSJJmRdXBvuwjgg%2B%2BfXQgLL6vPouB55CuZ8RH7ThP2oXNE48KGTbazOVFIf%2FYFoKgsMBFQJjj4FRmlkEeEnQZ5dvDeKbSsxRi3KI7DSprIIcp6QVKZfAUBhekLT22PjD50EU%2FUNpUDBWeSPnQAqTUgdCZOaU0hOlaH49f3jsNhQQ1GsRr8OURk1JEsxaOJae1odD16v49EOu5Hhk5yGfq0MDzFhi1G4DWzC2ohym2OcyhUCa6DnIBXFCsw8DLRtJ5oZJSmgMgp4rIMVZBBfhAVb%2Fx2wiAQclyqh%2BqBD9R4lgo4B4L2bmK0Bhclhtg%2BLxvpIKOClRuuqVqAsF3LoSlhYw8CunBSU7CI7WNAFj6sLR8tKyT2m9xjneCppopyGAIlo1Ag48kUAKaabGzTupMQNs9Dl0O9UEmTkZrMvwGk7%2Bv%2BnDHHEaCwakl4ef1yHpRy6IJhYkLzaYUHvGFPz3GDWD883lqaYgTG32AGXE%2Fu6atkggBSkcQJ%2FUnazCkztReQrfND3OLs48h3AFM%2FSf1vwzBCq4uzom4mxYViD%2BW7eW6wmEo4WhcfBXtuLM9DfvcEsZo6BP5FERgIv3STkNAL6aAry3xJCEsoEVYt4F2gBod1QT%2FbLgyEv8O6eH%2FMoIz5AZd6psO4rlwKh0Tioz4EQ167dw77BPSYd7FD1dbIPaAGtdZYTAqwWjEeVgYEIeViKjEIrb0JuC8pSqFQ%2Bh66g2pNzJg9hHRA5JBy0KUmWwBjthkrZxMJnphOzb3yWomlwppSMSIONtJdzyLwZ5wjj%2FDGKJ%2BV%2B7%2FNntcUgAjRhrDsDWwraPNSy9DPvqYr7mVDIdwkS0jf%2F%2FkRodl1qx5ZCU%2BKlJcpbrnR55zVtWwMAB5olzwi%2BugsYgJMABSR1Zei2tisHqfsT3VZl1gYN8umF9rdEZkn4J7hVw4PXGC%2FrqYwHfAjnrmbD9vBrsWvO9XWM9bAndNgI1HpZJIW9lOFeIU19hLcKSJ3nHgyPh%2B37khgGIGsFuxnPog8YPBSCWb3owamq9PZjnC22Ixq7S5Uya%2Fi9KZ8a16Ho0zx%2F8ha5l3GBvlWwhrxJX8fhHU70JIXkSf%2FLppaRcfkTmBhQwRw2nG%2BGgnypKZ8C4rI6WDXpJyYGkwWcRmBcmV2dftSTtXYzGotgStg5v6QWjYrRyBEnZGRX%2Bu8OUfFzMEnkSo74O50OIu%2FJiVH%2BYs93ZnIusTpTUJMvX7O95J2ZCv3yC6zR5t%2Fm1mTD6ZUKuk7zg%2BWIHe%2BK2lkf2aLfqkHnHuugaR9bD%2BcNg5KL%2BRTAMc5eRg9Zqw0BCk6tCfY4YEKLvJUnN5iiaaOqRHXL5c240mOoHDBQZS9YTVROD8m%2BtWRgStoeWhPAsc5RBFAcw2N2%2BLIK4b6D7VXJRO7hBDLZAuGzEuZOeKxJntGhaIT8tAjM0XCaLqH7VSEMoV8L9eSsuxF6e1Uipp0fmH3B9iwePzs7g6H2s30V2njtLvzxGUW4ryNlcrHKt7nJzIV%2B5Rt26izuXzqS4NzYLEQnKrYNHn%2FOXz5mPdUg8EkXL0JRtb%2Bg9Kfgy5oSk2XTwCkbLCDTDcEnNgqhfWgasBQd5wBcoxLnolNxiVHiohNBqAI8l1cLxjy3ja5oxjvOqIZfbnEisDWBnxckOmQ0k0QtCL2ZugSgUtN0gHzZItQqPXJNvB9udnTsLCxT68BiUTXNQsFecHlmdWw8kMn43r2YMr1cE%2FagMZXYWyqx0C71tA9jU%2BICuYlLeRFT8RF3JhBhE6qdBt9ixDETQUBEN0SskmYXdAl2uXhNyvn9jyh1oMLcPeJHrSiRiNoQmSP5n0ToKFN8o798J83quwq9bKBzVuMvqANI2aAI7%2BsNQerNqiZjHCVabcC%2BND7zobwkXEdatoxXNEFxDoG8zGcuNqCsk2YVokiJ%2Fq1A%2BRIHoprBHIWN3cOoxTXl25u4RjRTViRIRsgRNFaG7eohlhyskF3oHysDKJf%2BLg%2BUu1H3KAeJZHM6LrQmgryiuzAR9htMeS4CXs%2BJcGoOl%2Bt40qCrGVM4aFAYoPUr2Hw9xS%2BKilfMvtEx5srulLoQJjjNd1HiNJSRICK0jw5ESxhWxVDiG4Ncfgr5zF1V3BTMAXtc4USvwsQ0sC5PXjjjooaQurr%2FZyAzueLroaib%2FP2FJMrQ0dhJ3sUGunQBCCODVcC86krkXhnNRrxdMyZPZg4Y9X%2BW6Aj1pPJuPsQAOQeOsan5AlZPPovwOb2EULRJyJ396LlAjISu3Vy0k08wR5qXUYU94Vu8CQ1nFdfsV2ymQE6kdtXMXQkA%2FRcTOQE4mdhbA46ZmR5MXsRkSygi1innxz8ZzMFYmnNfjd2jNPOCYpMtNBTIpoI4NSArkOBNvc8gHvS%2BUdhgSXX4YcyTYRx7wgizrR31DMdwJS4Q0ngkbc%2FdTSYi8YimM%2BqAJmvXBHXnlJtk9FWdiqsYcnYfiV%2F5XqRrDEes4ya5z4Ym0LR%2BDZwLDRnzYObXj8ylQ33ehievUD%2FzhWEkKC%2B3h8KmZSpoEac7AZBGnLnLvpmd9%2F1Cw2mH%2BkpLrsqLmv33JiWdQ2EefR7B28cplA9sHDWkunqZTSTSaU3pHTxggK7EdPX0SwjESMNbADelwBlHDpJL5w0uAqhGpL9W5dqx7G8ancisTjUA4LnCo6H3%2BPXfxuEJj8riw5OrM2qmXjA4fLBZJnQACVSopiMI63uJRqsQqFvp8Knmx5B3ZIE5R7ZmM4LPzwmf6%2BpLCK0FVvucQgEEa3%2BUkBlM9rFTDWKUY18WxoPDhh8fOxsNDRIAhYA7EXMUS5sgAy9wvIH8XWGo%2FkDYGGbtBRQT2xTxu7eyuIxwEIT%2B8vzD1gaC1ZKDgw5DL5mtUrX2tSZZ51GS0pMHuSBrYz0mbAm34iL0M8VRImm9BwG6V%2FBMOpEkT1yb4vcvTyBotcNEk2B5UfHeVBLhUYXYJwbwBA405WoSayYEiAME4iKWh%2BR2k8gzeTUXwlhvGIROc9qHDd8Sn4drwCCaD3tpsWvJUyiWb261S3aL5JBo8RmCWIwlBUA7Y54egH3Lr9jSQyoYA%2BY%2B7s301lw%2FRaJLMw0tCZ7G7FNLDtlvd0gzHRGJYVxIpMmz19ZGQJfckEgrm3gFCzIalN7LqqNnnkWBb5A0reABjqz58NvZsdzcCned6baQvhfdw%2B04tAHFww7QPrHMAtSlwEdomwwIy9DQJEsoZPtWaU5r5mAjH8sXeiShZEVbAr7XZoJ2bmghILcXU9r3qQLokv7bvXqtNWsNGEa9j6bF09j%2Fss7b7kQAFTmxYiSjH8TFF62uEsRcXGsOEagHMStRZSVuvx25obqtQ4B9%2BiV5YVhPRBFu2ARHMG64gSIuNMzF3sRH%2Bjnr4WJ1z3Za%2F1tZ3G5aLjIUkmRLBFRSZ26gLMZWxeyn8qz1azUh%2FSQw7BDCb%2FBYewy7RJd6hum%2BWrzCGo8i%2FMriyyWr24ylDGvIyKnRgropzQvI%2BKcyAwmQSBfm%2F4CbDXG3rPwJro4WM6QZvLcM85HFgNwXQZGzKWUSjZAYDFxmO3Fhfj%2BmCf0JhJ2%2BCoU2NEwDhOWJNMQOu315Ff3zq5t%2B1RzGqYQ3grDP8vFJPlTweRsaUYquy2tVHA5UwrYUAyPDhEi278Hr3Np8Fqk17J68w9gpqEETqtFwckeoDujZCfMrusXlS4YnHpxfAYv3DhchH9D6v9ymi8W0vRpCz2z9PGrNGDiEVkClN2SZaDiFzCtbE6bwz56YNKVmdewB83piWuPGTmwVuLjn71lonm4lzDPK35ID%2FIeUFNNqEnn3bQo4c3mjuGtB2DFZr99QuiVrIw13wRs6B3k9JM8hboPXQ0GliDTIbcVS%2B0PCpEctrLf5Nc08VwYLmD0ZBdGrwT2axMhoPVu2Gp%2BC%2Bz1YAedB1ASD9gb98wpVL%2BT40TFk4S4JorISbMoWCg4BHzIJlYrWyIcAU%2BN5Ss5YVx%2Bs7cLJWz1erlcc8flwi6UzkdXlVEIhhpHyPczJdFUbhlvnCjKkdMhs%2BLYxF9gAqD6R5jwkIPhtUg3VbdWaM7WKPtjUJ%2BZAMQsFRD4eKyt2giiCRyK6AKh6m3nrTciQOEStzpUpLP8xbKsf8C%2BlzjH0LoFCLW3R6zF9pOm5eQRE4hH3ZGtY9wrjkjZgowRczFm1aKhVJPIvBfnpsXGNa%2FhbZFfhWCpwBS3sVJftLKE3JfF2DzOa4CdWUx0lZQsz5mZmeHy0H8vkd6XElgIHWCyyMDbXMyAn7EIhYDPVr%2FIjZJmDHzucmSWXmfgJkCcxsRifjwRR6RwObzp4qy6BgxFng4XYHM61sdJ1%2BAQyQn6mEZ5JW%2Fj2oCEEI4kWXR8UOEfgo2r%2BH9RvdCSF0CkD%2B2OvbK5paFBevMaLNlUTLNdYokcGQ8s8A8SDTMLAE%2FmrZorxqQ0MHoUGRK1e4NUlwiDrW05sYEh9AzuwBhStyyCFB7GsxTVWBB%2BHBm2kthOGwEuKt8QUAl%2BbeoHAWsKOSxzDiwHo5HHk8eGs11f%2B7mKGTEjiY44OQO%2BadTugS%2BxxYhnhKQgGNVIIf6YDmRvZTpkGJa0zaOWCiIOjlLdI1az7MukoN6PWI0jKrrBzik4sWr4L47PxzkY7SXtZRg%2FjTJcst7tTtjk1k4WnBVMaoQmZhKk%2BsEIa7QBzjb%2B53ZcHgHVZ4SZ5SFyhsubLchJD4XJUOwXs8L8KPJZ1mvRCj9SRTMrt0AC02IuTn1aZEyiIkxWIkDUnZdvlLHUwGxyfVq1GvAPEgflXhbjgrvWWaM3crTgD2ikCUf5Ym0PpErSJEVU2TlKQXmynaUD%2FDhh0a2pIeFPJFug9l5bCmwREgg6rk9OF%2Bfa8wRA8Q3e1zdbf1%2Bb%2BGD2EyWt2ZFhFfReRBe0nrJyYunS6oJ%2BHTHGR%2FrOYCwxhOi6W9Xm0TO1Z6Gs%2FpH7mJP4uJLgpOYFiuSmdkorz47yBKCSeQ5c2vUmGhK%2BBsNkwgwgpMSFcZx3AtGU6f3bGEbKAKwRKAkI7DYDTlmHBC3G7uHzCE8ODVSxXAq1fq1b3enxUxpzfZkbAZv0wgRDhH09LkQUWRinVox0KR1ce%2Fz%2FL82dUkzIc8Tbxz70BXtoUJf7XNp%2BY403mOXpbDpNuJTRIp%2FTAZ9Ye1%2F8PYVz3%2Bs6i4ELOOQBnrbb5wjOgAdOXQIbf78%2B7f7TmZcBHXd0Eup210esfgY3mtFUQHnz9LSS3VcBSqXzMYlQI5n5%2FI0gkvYkiT8HN2CHnI3QenigBPFgetXnEz9yuEzM6TJYZWqq5GmKBkEm0KLyOkNkAtA0y3b%2FB14FLjTY4ngnjEopWN%2FbbAdJZPp%2FjPY6ALbeJC3jY7%2FBTLtiOJ2oHYU6ZI3wJED4%2BD8S4jUw%2BXAsR2bK4puLKkaTi4lh%2F2qBZrSlPECH7eA1grViKOvJJFc1CuTUbHNHY1Jd%2BZNjvIkiSzzfA0%2FC6F7TQ7QmIY3iXAUR60BiOAH3ByD2DxZGi7B8pDXZxsstjyo1YYUzhn8MjA%2BC1CiZgIUKKtsAbN0RtMbRKMQ%2BVs0xBoKkGZ0SVU8MWL7WvMZDXDOsrsZEHsWyvWyW2pAixnEdZrtLhSn10lfL2URCCy2EOkRPb63anQCZHFsNtCgJITmT5d8DPEMg6IqCxBwrhDWj8oN%2BLafD%2Bm1YYCRLPQVhlCE1WOP5J08n%2FXKheZ1Qvd4l4mpk1LokV3MtouyKoJ7Q9aSwvYlKou0adGF0LTPnuNlHmCp6kJwWA2Hyf7y82jo7phW96NZbHp1IJwm0CJQByi1FExlGXh47%2BtFdsjJKBURn8QrRJFh6bnDknaJ2kHdjdi4f8MmTHHZhtuApHBaGW4bBlr5uwWDxIE0hsE7cEV%2FFm2sWD7M6i5hcSkb2cSUrPe4xHgMe5srP0FE0QXI2wcSTKTi2S2bskhiA5g0gOYZKQaEZ9WIOJE4EELwKHQBLeBYjvHU6TVoEIPBSXWogwO8Sl%2B7xf%2BUijzVLGgLIUBIsWLaZSSGwCXP84l4P0ipjlErGVJEUVWShYr9zMqHOgFw2E%2Fjen5HkxGlRELJ0RIFC75RlEtRC9mJCxXY6uaCOPjJ2T%2FODiRve3a4Shol%2FVbW9XiQrILjBSOahhG2WdJW8J4MdCEEUvUNI3vJVBzb2AxI9uBOkh12rCKQ7e7MhSYMwq5nfb%2FOxqRo%2FVqoZmZXTKEKEwUYWsmIElQtekkjK0DILanFGNZ%2BIY7YefHIwNwUOV0J91qQkNrNC5KWMKG0J0PCnE5fzqjB0C52JCzgsiTRiA1VtmTlAQ3BUiGTSncGqjU%2F3s45Bl0Irr%2BRa62zIqKBrfCrHu3Obb3e8O%2FyCNYbhqCxOxBUIpE8Ql1INnouB1oJ4NhZxmh5fU0W%2BiRKG6RQCaVSAtMJTECMEIm%2BkHhQGMCtoPjm75Gs7rSE3QMSIFS1TMZ36cvxqTA6Bhc4Gl%2FumtDGW5geE5rZroT2C2AKnwSwTAz23qolOiqEn4vCkGlYL5GUKNFBiEVKJbcdNj6w26E7leiQyguscvOFwDxN%2BjhbWu9XD%2FCg6sCQ%2FgL0B9PjQRf%2FBrqRIDhEOsVrAlpkcqtc4eZhZBZCIZekcpqMw5uaBgI7CzYhliH07s4DditRKDBl37yNHiQbIxNGc2VdHOTTFw8KYqWSHJgHKnvcuY7GNvgLiAaIjY%2FiIn37xb5Ayr4A6YpYHkUDF%2BeUWOHkmWmhzfJ1nWxVRHq9kYJB5gdWsW8yU7RVkkoELr2CzhbX%2F1u3JW7eBCKffrjYTzSwOlD6pi9tG9qQC9NrgGxMKe0zp482MD21aUWKqOu%2Be6XG8q%2FNqVU5MtRQPMpa4jItyUw%2F%2FkQYdQcao7M5KyI2MAzM07mA1jaXAktyvwyzHVbVyklje3kpFjuudZXSeqgEEGH8WaKFmqrFnvGGXoea3GxNopY4lkr%2BjfbyzhiLvhaVLwMItFgr6FVQ7KuPIGCJCDpN5qJ64rHMX3ayFsJ22giNAeP5FqUqCQUHtFGNrrJGLj%2BZATK98J38g6yfbnyCNJt7sfjg%2FjDNlAJEsMt2Hx9kr3AseDtrEQfw6dQBrWNMy8UbLDxcc8kv0XyHwDgHeGnFLTNt%2BpRKGZgCdZMkhAtumEzY1lfdnEOcgVWK8IE8%2B2yNDeBnbelDf3iibsdmviICKyzC9tb%2BOsGTQlWE1Loof6bV4yiCh317ycGqei%2FruFXdVqj0xy8VdvZ1t0lt69ta10lBxp7mDXn4nvwCKQDUn0tTeauiQGpjwgk7TvWBx5P8X8f3TEFfFprYYL6u72ap7RX06yT%2BvzAs6pGx8JjEN8Po%2BeC%2FzRVgkbLPPpD4%2FYeTdo21l0WOs4NgFijCMobFEU%2F9wVCLhQ1ng7k3QhKL8OtCFuwCxleAb7IOCApXUq9T0AM5Fn9m7Tq2sTWD8tAy2Ckly0Uk619UyGPoXaIld%2BowtNW6KttSwdSuep7IGHQuXmKDGgxzmyN%2F1Q9vZlnYS0pZ0tzUgB0EJ4MEeMRavv9a6D9%2FM0HWJbPX1hRWV%2F5UIQeURd415QTYLhVR5PixXpAH7xZbGkClLEg3E2q9Zp8%2FVtNVIEsBFYyAmkWpQYPmxbsY%2FftbFCZ%2BmBgqU3%2FTJD4L2PEbWhTwq3Vk81VVWgCVdDxgINYO70TwRncwSBhkWxW1OjIjnJKM1DlO1ngaAgkbfgLkDccI452c6H7IAm8g4%2FU4HGj1AG9bk3rwdJ8sF64bXalptBXJUbYChci9uqP8NEDGEQVONoKalDIE%2BkUARzF6GtJkYfpqYWZCWKuqwRyDAi82LQ82jIeCdHOUSs3EJBSkBVVgFOjFoJK4Dfy57o5C%2BOSbOwLWnLa1ZYEFgQ5EQHL84II8QhQJtCJTVZpEv0TEQGQxcci7yVbq7OIhZL8DzeMjnCejcL%2FXgCW3KgQpYhe8VXDqGFrEqgLm9Aga5ovPRHgsdUqOFyczyyz1%2Fy5HRVAgFMNqYoxcp05Khk1%2BvJvWvqxt00v54VYgN6SZgq5B8LbTazA51u29OM0u3TFLu3MZ0SIGiOeG%2BWjcXRWFhmPQqLxcQJy1SHWtPPLYA5tk%2BsuiIZxg4AgiBDNzb2w3E5Wr57ZFX7ECttSqGRvIfXCEKSPLgN9KaxoSJZOUyTSWIjzLH0gX7CECmAuTGlqEHtOofUBCIg8RqYFBfpMovirdfkU1RijOJcJ1ot%2FnjApigsstrO5TIIA%2BmGDUJDc3LmiCCMQzBU%2BAKtmmevB2%2FZdWGYFntlFjOOSIGFWK6YXPoZmQ5XbgDLQ4SE58kfSinhCzDtPNFAC4A7VFi5HiNKceiBciC%2B6IE54GShYjUYZWdLXnSPKIw6lvFJBosMiWUvlFNQAn%2B4OHDgSmTHxx%2FpaR7IbXfpRxSP0QP9yeNYKAx0cEkOgkCSAU%2B33ZDvcWJAJaA5fsEhTYsggJIOhEXqDGQkEcfhb2QqnomEQUraMQOYIXlK7eJDXvQyg2o2c0QPAStMcjFehwKFi3MzMIyKXstfSGPI7XZXVAbuyj0PJzgwD7jgncdLRKQeNioh4xKxz%2BA0vMwahxGgJ7%2FDiNElomlVvqCTdQNGAq5mpczKfgJh5Jh3ag%2Flr%2B2WJ2KT7u8NEZWksH1Gdp9OkCDNEf1ZmxT74ddewGr2AvpsGIA5gSTFBhyePLEirg0BLxjrMUanmU5ySvsV8HkKFwIv1lplMvGVWWHoUundZYqcwS%2BTsl4tJuTJt7KsU7zADh6IEmRut7aAxVhl0S2I%2F3cBMFVESNlO7ZNVQ%2FwE3u9BoxcqGgSH12QdqFUjB3GAJBhy9Bg5Lv4ktohKG3m0ETTvZh%2FwuuYSA%2BwIhK5lBe3QWwX8j0KmzeBBwDGwk8maLid%2BdoS%2B8VJ9M1blMTjlEP%2F1JPlfI945SBV%2BAGjVsKE4XCFGnI%2FZdjV6hAKKAAmvUx2yTYQBq%2BW9c4Kuq6UbT%2FAHtuELClYWfJqvtW8lo%2FBDW%2FA2HF13HW5cOh3qJf%2FDqcge%2FU2ZD1T1CM7aQ6S%2FPhZC8GUzX7CuUW2MFxPZfC9VEK8xOrIKnlacbtUclCHvjCucIK6okhQX0SJZ6Q5Ff8r6WN1yduJVWVFbfSsrzthXpRj8YIilZaLhTh9hUGMOcI3w0Q3bO4MLmV8PNC1Ikzf3IBKQREtakNxSA2fmEKGGqOBYOeNTYXTKbnYc6hnPxONs5tnOxxgYszMaPJl1shOgLYFqPFXi0qB6hRR2l9bi2GIuHZ3mnS%2FRqQPyt%2BJk61wGBWXT8Fdd5Z7AH60F49eVxwNDcrfo8mLuZJ8X9FdgAzFdW4hIeakabttO97vMIgc8yRZGyjFoiRgSSDLNegVclqEmprTimI2QytmDNaknJEgQxqEu2ODY%2Fux5QMaeAp8yU44g6c6aSpJFJIzBycEFuRKE0pnBzvOdzOhU6Rbg1BxI4dP8MlyIYhEHuj40sBGuIKU%2FdQrg%2FFIFG2%2BMSxDTg5oPDyzEQWXeHPvuCIrNYEdpEiOk5%2B%2FqEinsZvBk%2Fes3hcvZXTG7JIAIBcHEutxcsR%2B0SuVjBRkHhA4qUOpdyjs4IQyImFuMT4ksnANS4QCjKP09eDMGgKWLseYRD%2FcVAFjG8CLsuMUCPN%2FIuXx4Y1GFzgj9Psh28va66PJFqsMNiu8mINlVv6lDuhwB0A0C57yj1gbg8XFZ03NaylouuwB1%2Biptb%2FfG7oHuBDJMhLHpOM0rPqAPDLo8HpRjoc5gEObdp4%2F%2BRs8Fih78VcYiifjtW8UwDz4oiUnGICY4jDyityuLiVf4sRKyP8MAhdfosWb4J5%2B2FoAwP%2FV7CjkW7oNqeU7TYRAVNyPZuwPZV%2FbHsibwTwbADE3gViS%2BkTxyvUkjOSv9pFvIo3e%2FWORpBhJ%2BgyXpFEAJ1UVMyWCmVRUD1SB5l6wj6cwl1H6KSlsw5OaLpEJ4Uwr5dpBI8RviyIh8fIzXS3XUtEo5hXrCWQzymZQoUjhno%2FMoXsz%2BK0h5DZe4OFSthDkgAutV1cNcZMBxm1%2BSD%2FHf5%2B%2FweOzAvp%2B15mUN6OoP52BhQhQ2CLMcori0Giwmq6UFC%2B9OJQRcdCHIqBlUDyaxUCZyNtWwZMpRl589kSO%2BDChru8b8kcSgxgG%2BsgAXRPnQ3FO%2BEYcqbe%2FyKo9ii7M431V9xCLHF5tGNfI76IGEtJY7bkO9V45PebWAGLrETVlc1oBQ7JTNXEA2HRrMbzphWZofQ7qpIsXK2u9XRHA889HXGeMoDjxtQyMPXUmYZLZHeebYCV3MgiOAgVjE6FLGeosbUOFdtWEICmHuBBAYGAcVGQYPDFz1BV3CgroBrpkN3p6ljEpkxmQyKESk5jseJZOgYYEcEFeEwKk1PE84C14p3JDHNbr0Eq%2FcoL2HEU9ngwON%2FI530wg0%2BIkA5yABURvp%2FaBid6JnYmHP1df4r2raCEnprK%2Bhcg3j0xxHuSOBF8oZjkhvFqa2SrKTJntphhibamPd3zUUgIPWy2xsgusAJddnoLSsLwcnioEClxtXoGSQFW2gipxpTLKEOKOj6Bn9TWDQHSrYLndZE1bvMgDbB6cM9zITxPZ%2F93txKdDbBgCuDYET7Nb4MPVQlGoBvmwa8IVpSI7ueEiojr4Z4zRqMhqZruN9gMtLumGStZeJHJKeA5QtTUyLdoZYxODAZcfDAeEkwDX20kUmvDDb%2FBGbfCGoBJALHZuiptAq5MKJIibViWvey6m4XAo%2B5AL0qX5jbSKrzpJlY5ua1uyRL3hlHEuQOE%2Bn55cjAiSh8LZ4JR2oyTVNc2sDPrO%2BX1wT8Wps5vbA%2FV%2BewIKHC3JwBQbyahB%2Foh0zya46BZ1qVcbwP7LFLDJVU1fZJnixQyKG9rdK1%2BQh8fKVUn4z8ARkG6iatsF2E1ecFNLmgrKbcTSBQuaDASToLtFEchBNS9hLzlDT7RWgsAD%2F2NStADrP4g9Uuyt%2BBCbJJ4zhpRIlZVBn%2FQvUBW4JImSoQ6UzWaQsp%2FGYI05GjY3poweCSbvIKqQE1srGzz0Ls3cghEYm%2Blq70a7tHXy6zpnV1ROnJp67VrXVq5Q3JWLnpC7K7bNhVA3A%2FtW%2FdasDM6MD4Zit3B%2BiW%2FqM9OXaqTCjGz7qCqxtBJ6QUr2GcVVMFUp5mSLYERaKGER4w1g2T9qS2puIHUhjacrQA%2BnOqPRPFAP10jdHzbWXamz%2FsaaisuFSwi7yy4259lMllaJqhHq9A4hSSECJGrhwzRL7gUYKq3%2BliKUSDfjab4fyQndsII7NMVt6OvgXAAQ0IAZbP0dl3cJMs%2Bf8rx9OpM7SL2ZWDWiGARmBYxadB4W8YTU4Kyqe%2Bp4P2HgqSdiAabcWkCgVUX2xBNKENhDnLEVzwQ1PFud1t8Xd1C9fmM9RO4oSAe6wEQywSFfmj1BgYuR1sJe8uq85L6rVMjSXq5gs4ZY9Z1pEjhH8L9S0K9nqZrmOwjekvBofnpElgTHq0wEUqlYqvGYQwAJ%2FCOWe4Uxy45dh2IwROG5hQGl1mwigusfCyBIYR%2BycmCczfNSaDDNf4KSiLuQ%2BHFURD38EAKmQ7LixbEN7g2EQlGGsYbh1AAn%2F5NWSu%2B3%2FI6e3sG5MbUlvlroUr3PjQq0s5cFKK3c5mr8270X9TNnelk37r6NOVAeq6GnKW4%2BM8Kfu0fYIP4aMYzcEZMjDPHHBOkEczCCoPiRjCDsSbby5%2BzF5RXlTz5mtk5Nz0iK%2Bf6i3QVqITYm4ITxxASDLqrvDAvtFoCvg9IWTHlHgNPtMbhEYH8mEQgVWdgzcxUutiLJlIr3syA2m9ciD9rVeA7bBo%2BaEpsxnUkV4ZQhdQh4EkWI616%2FX3OcN5E0dWHltcBPI4CxJv9JD6p5byERKwr7SKKQEbhAR6tAeHK%2BN9WrJu0eavrzAN1g8IgqEphR2aS%2FCygB6QSHqK57E0KZkrsWaBBYKrLhsnUx8hxWrdg82iIkbk5c9w7mLSAmYjaJkmYEEDg5o4uY8Xc22T5ucP3psKD%2B6gCbs3AYAZA%2BCDPzomIrKq2JhTwM%2BuxOsfb8QTeBmJrFH1pBaHofV3EGr9DQglt%2FZHOXt38CVCaUG2fCE6Znj0cJheyhQYo4SxJDde60C8wJjOi5svGpIlc8icCj3L%2BWs5Q3Uh45AOA1JKG5Hw3Q%2BtAknoZTsIENvB6nQVlbeDrjGZS4mbc2QyRUpRLVIez15giZyAwJ0bcOA%2FXmwTm6iVyDADlGNOkTWXmtFlk1qpQwkMl0f5pR3pOh34yJvjG0AMVgbeHC8AjAR4w3hc0rzCA11pEVzKDRdeLG0ZDackBGMYCigWwHSPPkAhmRWV6GsOqoyjSi4GzAqGNOxXfwAWudZYlS%2FIknpajxreXwlS1UkIRrsFzlA%2BLVqi%2BU%2FTPSnr08ImiZIe7kDNr1isS85vSSB9klPVBRbm6F8xtPQMfwYU6g%2F5iik0Bq1CfIyA%2BbxCkX1rnf%2FkPzn7NDBnQTiCX%2BqYghyK%2BEzqsLQBqEShM5svLK0gu%2BEXa4nPBgFgnEbAMJQaaZ8nWcvBE3B8aJUvVeM%2BmU4WmMIoD6jyyOvq0gUuwGTibhm2e5MqVTLGA8Sct9CiWsfCrGnRHPNO5IPJemQwKX0OKzuemw72ckgz7sQmrYzZrGJoqidozYYghLU4YEHKlwwqzePQeEUrmMLGYyR7dS6d8bZKKcJh7DBo9O74x9kUAT%2FT%2FDhkWgwINF9RO0xQT4KZicIQYklHXzYanMC8DVPFaXByqKiCUnGjW2EYo22pGLJ8R%2Fg%2BB14gB1XRVqCFsX%2FQdQbFuNrUoCUGAMTjEYfHo6JkUhUywMEZlastZhwCsMRJNq9Z8DRP3Q08BdGRNCc3mUtK%2Bomk5DEUnEkBO4C%2FSNrCrwMDX%2BoBZLtdhaGwAi13ycCpKwBYidunbRWgbjwBLVk2DfJpIEHpcUe71r3bM%2FoFXg3iecHg%2BJdprS6NSOBdPgGsZALJ8gOK9o%2Fc4IWg6jLbP6Z6ciUUs0Om2PoAH94BCEZbIRjj%2FXDjUn8MBlopEb4zgMAf1ZjX%2FQABaRg2jMQGMR4Pa6gHIuZCmGsDGj4UNN%2FqFeS1pGEaL4FQnGa8KnUPTdGQfTmEP69VUtlCmQLMlPX2EEQDMYWUjerLq9C4nGoiMiSqyh4Dzh9z96K5fCuBVCvov8WSmhFcLqn6mxYaiGDen0U3CBNGqAwHp2fyCv2McZpmhClCsOHv9nHb2AmKH%2FG6TS8CXVAyNMu4GcKZCIiItICb0rFGK5iKiW0LLhwQl7WfiH3exzTbtLNoh1guMTISioOJkssJzAy42iMDBgrZVWyKbiHbNtTQLrSq2eX%2F%2BlgYVyj6%2BvgLIHcruE15MHrqukK2g%2FOcjANWxcnFR4h%2BsnAtHUv%2BFPkonZ425beA%2BfdT8PHzJEcBiNxkVou5kFk3zFGmf7ssxX8oJPhAaOaYG2Fdi1rg4Xc6iAmLFDL1ax806jV0K4gw4vyMPpfosguOWIvdmqKSPDjQGXo7hYfbTKTQ6c1RuflmXNK4cbguqZMYXAKxgRkQYPEvzKoY%2BvK1ijW%2FA7XAAhoP44uFDgpiFbgOUMu%2FbBPkYHPmK7coo8msX5RRDhYFWJDu4bh3ECNfiX7MRBOz5J3CZzgR7RgloFzTFhmSO9wZL1B%2FYzRUpV5CyEscSr7q0D6vEqE1AQ9pjfkqFK%2B4C9LHa1w0qiy7c2By3KPe55GGRKCHFNMw3IC2WahNdHKxJRESVZv453lrvIsomkjCTVLuCflcM3CaEEvrLBVh%2BZiga%2BSGkvfU50jZcmNbm3F9usxpNC3B76u9KUjvMPjOSpuCuXAg4DVuc0lH9Nms5AFWYTFWt%2BbxsLyDUjXyFJCvEOrGkeq37hNDxvCkAW62RNee6ZtlfYgEK9b5S3phkFwXzjd5yqiQfpIJ0ChtSBHRmO3Euz6%2FAWbeccr9%2BQDr7UD5sfdV6YQPxqVyP190GOB4JuDi%2B7TeruoeWeIJnTRJpIZSC6bNE6sJtLTyi5LuApwPApTrXejyZCt%2FbVzZi2rRnU%2FWAHq4BMK5OeHhHGFe%2Ba1P0JZTWNgu6mgZjDgsNR36CxPf5ueWbYvAdepPE4t9YgcOhwfCHfjzjUnTCH9BRGoDcVF%2BLEMoEm1%2FsIKJqdh4E89TeYiRYUKgp6HNNcUkUCxr%2B7zlDFUCSHKuW3GXNZUfs2ZOnZSVbk6yS%2FAI13atCqyN5bOZLh6x7VnsZp3qZFE%2B4h7KvaTUECEwYpxIOxQRzLJa46TfObQLZwTZKF%2BIG5SeUDK7Lx5EeeTtHFxKmZ35RKcQ9LLRcIwtb5G0BQScbKVVVRXR5EctzmJP2Pwzc%2BPoVD8%2FP0u%2BXyLeqJXBtlx9LbY7E%2BcIT%2FbsNDiNBxdna0HEJ3bgtIsrFY%2B0tmd%2B5UAfj9m57Fj1N3JXVj2IpbT7ul%2BMmgSAG4ZocklA1gCBohcRydNMg4HlZsXICT83XDVW5paeDKCcH2yumTSBCaFvL9M91xgRFcVguHtTtJcQaxcC14IudYlRbDgj0CXD8knXzBg%2BESfftkev%2Bc%2BMzLpjzAKn%2BfQLCJhvjqUDE9mufjkLZoolnnNl4Hls5xrpqai6BEudWOXJnxwss328gQEscPw2QpGi%2FuTNMXuOiGhJIRLETrzG7KG6BWAuDUMmmenHcG%2BhlKqJ78Gi3%2FZwBAS99Z57vzlstBroOh5QYbbD%2B3KpTSIC%2FcPZ4uu3wef80euTnVmSCBG5MKC6BxHzDgdHXyAKo8hqZcjHLt7mTyFcFwOOc%2FXSXA2lhl9aMtDyGK0WcJl7rqeniyNj8Gt%2BW6jc%2BnvIp0NNnyCijFGCi78MyNX8dEurAwBduWsZ58pJmvv1PJsLGQ1pl83IJicBVHkxZLF4Nf%2B%2B58yYcYSG0CHGsD4CMUS%2BP1mkcqxfc6eusT3zXAXbdrGDMxHxC2pPlPLDEfHME27%2F6KZnJ07SxsbJWuKnJ2WyJ%2BVT3IeFV6M95XxE5MYMQem3pB6lV2oXmIg5U1VidxEAZ8TBkNTJNhfDopEBWvtNdrDSzoA5MPFBHPGA61%2FqARB5AzNgXxmCZLweQp%2FuxCBnrXi4VL9gRNMRvWxbvNHg%2BtvlNDfA%2B2%2FE3U3AgykMkY9OBqyZokBwLNpNhARNEGW2uaGxFIIAIfYTxSE%2BucoRULZ3MSeMZE2FOPRPO3IbmMpsf6NapBoghy%2FgC%2FP2wXVw1LgAvit2SpzyY4Y8s1MbkxCVO1RVd35WSf5HgNj5eK%2BEOfZPd2xP8ubTU5SjpmSpINh3rmn2YYyawnqB0TT6KAY9Kp4Sf4opj6odAYMdCqlqRigtNQoRU9HLsoRZDQW4SWQ0gL7Dx8XisvCTAQsuHD7KM%2B5vMQVkJC7bLHVDS%2FcqAkTcZ0DAqWMcPAhNJlN63g8Dt20lNaZ0ABAnTIqLRF0shHqro4g1AbMqNmOwb1MQOhlmYQDnH8mxKdDdAXth9XIHfxshZDk2ywLXi9nJB26lwN8JcuSIckMAkhEbMD6liAQjW8tuwuXhs3K9LzAOjS2eLRxnkxkGnxRimLylZeQYz%2F3hdNPVy%2FsveT2cHArJOSMzCQrzAOthJfjqwD0H4vBLiLsUePxYDx4Mdgq4cIBdk3PKgAVQOUJppt54HQ8YqoDb7Hm0nUW99kz3SG5cHyWwbp0794ux8hYBPG73AMMHLZy7k80MyjAVsRu8fMiFJ4NGNb3z%2BQisa5m6qErD9Tp%2BOaJURQkUmEBstSvTLfD6iwzGIPOyJpaJoGtDtGxvjszw8J6cXVfAhZNCwYh4rR6lI4WY5EIk01Vqg9FrLfALi4zBahRdhkPRJu7ZNhOiVxhFYwKjLdIz6Jb5uTM83Z4wvr03I2co9DhNquFaG2GFPJFkz0vkofxmpmJwWLEdyCZqYYmlriIzdRvXwraBqxkuRZG26QJeXF9hyepqjdNgx6PYPOZezzyVgYpkRiF9%2FYiE1fBbXeOKgNDEqAetlZxubJEREDCjWTrA8btaOggvVnvkdONoCggd6vOa6nNiQ7glkrTRuTp7BGOL3vpjfZqVONUYATNzCsSf9ltyQZNuu4Xzna4jg0snoo3EqDvmQk9mg%2FniFNG%2FbBESNB1%2BDFDRlmM%2FEgdLZh3APjrm9zPN7ey6SgAWZ4MdgrbOBw%2BVvAvRcMU2KRF9Oht4iG65SArA2NdBVXIiIIsva9tBIjUlVyFwkW9b8nVvvI8NY9a3%2FC4GNMMllTsKEF68SZGE7uHK1koZINTCzVVYozECL7hWs8sZiCOjo%2FjVCb0plY7MIVFCxsF5QvbqFIYZo4%2FcwmhgiEYxbufSGlyXWxiwLOPruMIYnDTa8CEoCwEC20yGakPTsbzUqb40DqhjchbX4z%2FmApVucumP7Bd5iG3LB4OGa3II65kEizx%2FSnZ0TmpWMFvS4EIqO15C79aZkJABwJQCBHRDufKbyF3GeSBm5dZ5oJecQUDR%2BC0nL0%2BjvfCbjgXhV0QQ11G6KRG5tXi5BHJJp6RbUUiWTIt6vnrDIvNmvhfVIqUOVRB%2FdDxFTeOxaKHhR3gB%2BikH9QxJGgF2Tv1qZiuXxBnswYGT6tP274Xfd5kxOlQEYSZgyCHSLCQQ6Bb1daiesJ0JpvTk%2BHqfawJhWrmgk2VwEJ781gjPYOYJbfynqRUgUJHDWUhtSBQldJRQZhVf28hMK7PRAB1wCn0dzYSTGbjmrfY4YyFsiGb4pLQyOpugddGRg%2FJ0S6XI5kTZGgqBH1nRS1rvdCmpkZsJBe7HyD07%2FXAKm%2BmTjWFXXhPjuP8Msa8BFZbceA2lCm1%2BbKiLB1%2FIS0dZL5J%2BOpA1gYPCVF9WPFxlaqvDek4DPQv3dBQVHPSwsBnaKoRmh%2FcQ7pAm2KyjNk%2FWuJJ6DJpWEsnIgwYmyqTWhn9dm7WaZ3UYQUMoMWviItBC3dwxrtemyLaILFcgn4A3mxCXZA4wuCEQzaeg4wI33MIJJYMUk2vqTFDcAAOkhMC7gP0ETp8zCpV1dZ4vWIUUfYIzEJ4y2Joy4W%2F98x8tYpUVOLRTQM9pEk5JPWLcSPTkZ6JBuNMpiCNBLPnrQStXpOAelYmVfx6nD9REXaylR7WRYwZFGXIw0VTYiRSdAsf8kH0fb3BMFmvxhVHT%2FO3E%2Fe2y%2BduIgETz4ScLRu7afZO850pHvASxJGNEEzDoIJm2wNCRH38F4NHBkNyFuIyo2gW7ALAzxov%2BAjoZ6zA8SlX1DSXxwQvh9VcG%2FwPPPhzh5Z%2BX2h1GV%2BhnIlM6GMRssS4S5CxjeaUllAwBh676f7wLhGtgMi2kDee2%2FcDUhs%2FSwEx9k5jiC2kryofhlZLLkb3tZPgiVKiZQRKjK4tzKOOxcjMbB6aZi%2B3NCDBGDSrn0GjshrgvQwCLkoQYqbFJRcQ%2F6Mz3kYGWhWLSNoAsuAzU%2B8ZhFhYDsMFSlgdyCYlGOLu5kd8E1og4Hyj%2F84sF4DYX5m7KatXQf%2FGogC27VcFzQNU1ZWOZ0hI4aY89AEIkcTE17Y22z60pni0d4Kxt%2FrmqY8KXQ5zauGrhQT5ATQDf2P%2Bb8OESNLpIQvGEqIn%2BSRsTXCg53gbJRYQIOBVulRJCVJm%2Bmte%2BAP2PiXZyi9iKk7EKBFMfXfgkIFMrDK2L65Thev7%2BEknu9DF%2BsCpCTdwxB2YvvOp%2BcyKCJi4wzcArdhF1tY3ca7tP7sZQcj4Si%2BBJ8kO3s1f2GQ8zpeg%2BwSeyWDocgIB3k8%2FQ%2FvnJglDuZ9QwmIFrueMkDV6By%2B2jfIIT2tdCoc5I4FCCb4gFWiginoato40hX8cntZx4bYcRAU4EcHoQ2ryAHco53FdTf4wlMEupjG0Pyy0x4J%2F7DplVp3r3ZdcLHiGixlsdeVxGHguNSh0qpUWGKIqNMbRm5a9kcdj1qqsSpyiEpkr8Q7WFFVSIlXUz5yRLnxgsDX1FqLENSU1K6o4sxhqo9gNP8Xi4CqBdpfh7lQp8O3lYIG0dQSJkEsZVfszuKFjNRLbtz7OJU2hjCFme7ZzRDkwTX%2Bow3ht0I5d%2F58gWrvB%2BF7BolkKqfhxvKCk1YChhXrahDKKIN5esTbUatdOvO6EHWXKwFw4gDOAnAqLcngkgOnHa5zKHixkQMwjDh4KfTI%2F5Bvs0BcMHYFSDGBBBODnx2jk8fvXsRN8f4HvKjjvWM%2FEpI%2BcsCrJeInjTMPCYB39PFJIrKxCKb7DYKrb84DqBrMwgOnMtxklzJYcAvrErkyavhbTtvzsc7KQhZJQRZtBWAkJbBw79EPVhbDgLhcOLBDRAQoPSjPg%2B8E8YQI5w4oDayGbpRlGUY27%2F9uqcKht%2BGtOdVsoIKXdtGRiHyMeE9i0%2FAaSDCXtOG9B6w5cxXBwBZ15%2BA51uVtoFKYXRwE9kyty5coc3itzGxsnfy5MjVylQ0APBnzEhzSBWXRqmLd0GJwSn%2BXJW1q7qc%2BMwq4vAunGeMgLg7Cu5JtgfjY8GcpRkgSvjiYMGI5yiiHolEbiX1mwTcRfBAl3fzANoh0CCOtzl2JQxIUSzCtmI3MoGMRVotAvw3pk%2FitAiEbLXJSDrdr1n%2FMMXJnkkMlm%2BImYSikMnIfoV7yymaRq9r5dDPs1%2BrlaxjwAYimIG8h31kkr5KGgcATqIwbkItwmcT2zNuqrRwMRecjyKEHbxA7nbHUFWYBiY6WgonHsDFhC5bBjghlDGGJ4e%2FJA0A2K692uryVFbK8AVpNCsHcBKYxVgb%2F411%2Fp5fOSIgGO33DCUShTyqPaAd%2BIL5A2UUEJHc7qxYxERB7rHJ%2BywvZ90qTNhKKp8%2Fia3lHORG4D7y%2B59sS4iwD01cDSHaMYdt6zUZlf4ElgxqY87eu52bvGowRNdUIVNkldQnqXfuIJ3RWAFB0aDfASyklTuxFWLD9w1I7%2BQp%2FSV8DkduRDVYA67Cxp45myjtGTMAiC0Ba9xRIVC2%2FK05vf89wxbkj9kkmqv9ByJNNeQgL9nfBJ7EcM7BbaCLkknhYYWU60WjD1R8VgUNXV5KkrBwiYDMfGVS7m9HlATG3Di2STf%2FcicjZIbAcvllfNuovbAOBLeiNOWBDP4SntsNDVNl7jt5kg2A%2F0slJRYY1wJMZggNW5yJGea7wgWexRFJRDhHbgxj2jsTNxyC5bivHa3qLn2AWucfFFLP1qmH%2FvAHQdy3lipSpoC7vk4hVZbbD3WmyhvmXMBUSCv1Pc5lWGTDoSvPMU%2FxQ%2FcYPyH%2BUyN6VNwWF1w1VwXh6hIi%2Bv9vvofIrq8lR1KzfjWCPOiOcHAXjkCGGNdVji8bzn2im%2B0g6RrkMHe%2Bl6mgVADNyvLpzbQSYri4wEM0tSrAoGhbwMIVS%2FZtGON0FdtbLfhzZwQCJgjqONh1GOhGq0LX7GjkFJc0dx%2B2iBUAs6Sx1tIXFSLhcmQvVWtjgC05aHi4nuPqcTG9aww6U%2FOCRaQjvLUpGJmjPDJFCXNrIwpp3EIT9052SO8olJ9AlioZTsxDamme8PXFHUbGb4ixO%2FdAiztd%2FqLxnxVXoPhDqw7dNvYjmjMfYwDHCgqVLZcJdNWyQG4XmKGFAYFphmKvKWDXThHRrVguzb4GV1ASu2RVknCoNE5WO9WHACOE0%2FTi3H2RWGOuT9JM0ehWUwe8xY9DKOSnP%2FsOADpxAHkC1YlojwVjTyKfYK7prapIKnB6IuHGAYVfZQ%2FvOuXqsxN10z9INqDnkVEk%2FYQvnggQBGEdBnpC44u58shMGf5FCptZ3AEtx4ZpUBsAlQlrhftfZvJ47sc0saGpXBgP6nkiWiWmJPkTPEU3YzX7t0lYO%2BtW0P%2F3TBN6xnLOtGf9i0wQnZfohyS4jblbHZXw8I4We5HAj5YtixiUnFT0AE0cIgdOOxYNu8FyxgNAK5LwoKkguE7%2F%2BpJY4OkXOudI5wjtMRuoIpj%2FSKxlJZy95XRK7sqQSvaqykP9EeiVyQVrDlJPHZrG39atcfaghQyqMnqYW0w7KV0B1xsfVsiqYybHwntN2KeuG9rhauev1jtXFzpA421ZuHDvWhnwMxNFQ5lSI7LauHglv3NqK8l7tojwf%2BldZ3RIlQajaLEBEtNefpFShCvJJ9GCUyHlqQtY8b7h7QPF9Qw8h368Zw4qfuI6wu3XeO8hVlDSQTiyirMozN40NNGxbAJSeIasZ5UnzdgajymNR03CgP6eLsFTo0FeGwtrUcwIpCzu0bqzdA4wnUrQT0Y8FZ1ox%2BxNnCj20v8Ky5hJTERtI%2BSWCS2%2BXa9psUSRdU3dyaeMUALEEmORJL8tDIDNL2QeaRmjOvpFiy74DTo2DMWmGPDxs%2Bj%2FHa57fHBjQX6GJjrGcfqq9x622gJAqseX8WFuNFN1Y8Ly92t1sRuILiD%2FLFepN2DljiYUrmKoxC3HmKrM8aWi9jnnXkxi9hH3JqwKBzdpPWx6I63pXh%2BPxa4D4nCEgJf6m0E9PQuwcGqB4eM%2BMHKQknVL%2Fn0%2BucYvF1MGXoOkYvUgJIB1PEDY2q4l8su%2Fwzm4pFR2S4UfLf86eA%2FC4ywF2Hsh0QHqKPhPTVyXose7ZONWJT6xWR%2BGswNI1a9o3pW4ixJCDnESs%2BoXGgkbrdLokhTxoBboAdLObX%2BHJT%2Fw6DMvGaM2YK4su%2BjfjZgf9oOa1n9F6IoOsI6OYsqtW9hUOxLORBKZVB8DkFJxIfyj33IOjlVKdMhnlVHwRSxCvxug%2Bw%2BaGDA1N5A4ZfTbJQO%2BM8B4CvDNc8Y8ND4fLuATWbUbzuDNNMaas7T6hieOcfEgeZ020xNkfkzZQrgDie6oshaHUsp1VJQAzovQNYO57tNJwbB2JUEQkyj8yyYclQNSTNkoiJJTEYTPfGYwIraMvrXway1rRE4ynB%2F5R5NI5V59NkwcNOxtuzMTF2ykjDcWQkmsp0pAYhOE5t0aPN8pJ6OimNeFGi5UcgR4HnnGPbDUAakrKSiU5%2FEJtiRTSSjg5Y6AaIwlCmhAXgQ6UNnL1HIai%2FINAJ5HZM%2FUQN0RPoseiSXnviXK2NttWfzKjZYA%2BAdA3covEWJv%2FORzF6RyKQs6nKjZ5%2FaJG%2FM7SroQErBTiLFEkXwcc0E%2BN4WG1Rnd2%2FTb48MZiPXhK1R7lt0g6oRbziLHFRaRTepGg3I7FSH00hzHyGbbU3dnBemeUXLL1RBYxEOw%2B%2FZH6zBTlvTUWEHtU2fkVCR5i%2F0xeO7rCdu6ouzg2Re9xlCbr13p6PYXxBrEeSc6ZkpvGEVgLdGH5YLO3z3xikiMPNuMe7fMjgI3RZRWFVY67uFenFeI0EYCbJzIq4Bis0rpgYrnYe1Mm4EAdB%2BvEcUp67Vn57CO6qGdAUhMiU7gDHrf871qrAaElZidmp7ooCtH7g%2BZESYskIkAagibv5xbjwK%2BhQhQcYwVbSrjhXFVCpTwbZZHZ6mt2iSOTfT1BeUv0SzpszHjagUb2AsRDUo6F0XPkp9V3q1wk44OfRlTZsJ4Q2ewKLwT6Sdbrq2MoFTRcfCS0v7FejBRPEPqRbJLs%2Fn5o1KP4k4Zjoky4W40036UKaaU6Xw0QnAYknSBw4W2imDUC3tq4eN0YU%2F1OyEBQPSM357JqBKEYQj5OB3yG2TyqTsNke5oyh%2FdGa5rW96MR905DMBKBk5sh%2BvSLLQ59mUJB2p%2F1cqKD775XKo9pSmSnL2rMmZvzEnEz3aIwv8sysJrats1tZJ9tIkJ6QJL%2FZmy27ltRIsyAGyiHWg4dJaVaK2WyL55zJxv9cVRgC9AlKrrG0JXE8zLVhQCI4JdXGBhWMtIlOLgiZ9Pc02J6KkwIADFS%2BtTCDpjy3ZwF0YsjbL0582KdjKX0XiVvbwP951fjU6k4aUV4jyKpBIwIIFVHn5o6pVAQjcq1ArLEpcFASRSkBSuhFVEnP2iVecT6qTSKPo5HxP%2FM8cz9nMUGrXwBsAYMwgWEX28j2MEqgGpjZIscQJpExZbtOtna9QNLW0K3Q%2FbS31OuiQ%2FYyqJCQAdlOIEMK67wBLVV97wimU9ga9YC8zg2r27gSxgcqgCcSya9V9hpbTuWrFzSkd63IlXED8gim%2B1yc5jCk6%2BehHM1%2BwOKoSiG57VOjOFO%2BITfM1cRAKHDLgTIjrAgQEMonN1621H75UcQZPO6677%2FQNsczLAPyZYycAIkMIcI4xB9buMFd2LCtbBScvIKl9ZD9qE2Psddz2ogE8WPKfNHSlMFyJDf1QVE5NaS4xYtbqvzQ7tdQYt4M%2FfOCsG%2F8vgXY0wLsBreaLKqcfnA0ifcHaOVAG8spNb13IoYP455yAY5AY9deVrBalwdYG%2F043QkL8CyEo2OI%2BKwd424DQlhDaYKh1LFgWT8b%2BIeYObtyYMQHFgDpxh%2Fwpwo8AoobkLJi7tOK4VuKm4LgoZtaloSxvgNgFgB0N8DErLlMDCOiJehHm2EFjo6ohIMb33CpOQk73J2N0LEkolCACAT9bE9CSnpTA4xQEqk5P5qIDHNQq3zVjJHauH4GWybgGDDdAEGGPKv5BZs1NHx%2F8m7yBK%2FEVcMe4rgRK1wGJ0CqU%2F67ICBMhld9w5EnBC80kBeqS9wYcuTEZhjfqLn%2FGNIClH5jJn2jK8ZhnBkaVT5eAaPpIamBlKDxhZXSE03%2FuqgsF0i8s6QVdbkA82jHEljZM1YuBKExvOlCs0jCHY3nwyJ4NoR7RbzcToHIrKr0KEK%2BhUMVaX81C3phFIZZEL2MJDBkAo%2FQHZoyyP06V%2Fm1A66QCXlGMe%2FTTB6ZIUX2Y3bOowwLr3wjCEs7jCpEY5VbiG%2FhhF7SLalQjNyupjINbIBavZd%2B%2Bj%2F607H16NkTFlRHOdsd4NsrM18U50LBTbCTtwihxAilW%2Fz4vpKywwEz%2FY78hBdgfB41APVPC26B%2BSVA3AlgKj4EkResazMpq4DuZvaKiQdhHrXbkbQCDMeV7Ce5rjMepeKNBINdtu29TzyiXIdhBAUET22BfOFaoZjgypsP5FEP3xiBsvjw56EIFww0KFTAFGh44AW8SSSo4mzyN8UAe1RZqGo9zDaEgqeFRGVbPfJPWOkaTIu59ppb0t4fi6%2BiD0rJQUHHtrbuAsSmBVnKeIZxcUGgwVSIPSjkqmBvI3nwnpgqOR%2FP%2FkPX9QHa9COYC7n4aL5Ddm%2BawHojkOzzhlf4EX5zsNIwWeQKnF4FYEbNJ4gB6ayNkGkCwkcBubgO9S9yBm8EsuuPjRGT1LvkdUkeElQs7vq2lzL0MOKVp5lZWKl2e87sCpJp51IlIOnBUTvBPO1%2FLu89eDFduiw65VfIwhyYPSK9yH1Z4gqlSMibatpjJziABiF%2Bl4I8x7IyNIIaT8x0Yhzl8Exok2BMCbG6smOnfKraLh0s9k4N6wyJq9l2EeyanGnqWmfp9EMJQsYGWhUReRe3iSRso%2FYHu2N4gMuFx5DmdXmgMhUs7hVrEAPKJ%2FGw6V4Y3d%2BoIYW2qj2v7MQXEGbqXDql3CoNoZGhf7WVnC84to1xbYJQ48VFilC8k%2FAdvl80WeCuGWEYk52ZFc4Qv28Gc4rEnVk5gXIq7AaBixKu1msGB1R927f34tVhQtfgDJ1o8ng7D9nEOF5kFop3cILX0LzAdi0T2X5DJshSgjPC3E9Xe8gy49XUNw0Rh2GIfcQUiIUYgnQCdKt5UxP68FMih8MJT4mq9EKndAIG3CYaRv2nIKgMIOm0bPdonZ0bRMJTeqmsq4ct2IvUBC%2FQ5XGQNvkb4QJHcCBidMMIhBgQ1iX5V5N1OT9nKW9Su3Usu6F96%2FCSQKt1IH%2FwnQCrAft51CRcbd4vrDxLMhwokYewkRKzMsLSrONIl8zylb681UOJ7mqIJO1vBu6kbZxy%2F3%2BThzpZZPjEMazwxVETrkcKEyMD2AcJOXXkJ2g%2FMVxKvNWbyIdj1mZBwDC1V%2FZifAQY%2BAKvYcqF4%2FKvt45KSdqBC9QUA9rF8lrrWZFZWRy52jzTRcp15xqp%2FFY5tEowxWQJ1NZajwqyX0RDGtpqUz4fIa7Xmwd%2BwinYbhxKwp04NGEbG4ccYoQQBxlaBGLzF4gt8QHlB6e196%2BdB7vybaex6gQQZBktA9mFZuZZC4fxARTxMo41NsmP3ajaExV4adTc9oZVkIzR35NTS0WF2hDIFFvJwkZRln9g%2F0HhA%2Bg2fp8ROYNuWT0x2wyfCxT4cR7BvBz1vRntt0wIQ5b3SjYkgocO9Ga0Q0dN0qOVuUM%2F57Fz5LQMCspoud7O1PUzd2DoCC%2BoepMxmODyIxPvsGO7U27kllo8j0NgyOiAaYApuQaqUeiYYgkkcRAhlHGFZGswY4A0oxe%2FSeuQG8bPeEFIW2clIO6YQbPxD0aCNbSvu83L14gh61X0pA7YS1p0cb0xKJAuwOCR8EPEtMY0dk8anYfk6UL8VJEgzIDssjm2aBtNdplKBXTQskZSF0OpQ5ScIU3QT5EwJySpZL0JRInXaq5jA5LL43IyFc%2ByclD50YG7dSuwmTwmTKux6ldhNEAEHJX%2BTMV8DUYWLHk9JRSoFiQwIEJTZgS26zXJkEsKt8WvLIJG9kD9WEpX32EdCeDsNT0ImurDeKGOpCuo6Nk32G3fRjF%2BjGUP0SHNDUV%2BNOJYLINkQNh17nYyduZ4QDi20bSID38WudX0Fks%2FBU9UEsBT0g%2BNc0CDPcc6EMWEU%2Fdu0cwjBsTAKg7KUFAsZljIYUdARkW7peEEReuWbQMy96ON64gUmoP0ZmClbd9hqkxevsQPoKZVlBhINQwLCsCPdlv3qOGBuy031Hvn5c%2BCkaz7Q0d6LOxnF1NXJULpel56IW96QE8PyzxXh9x%2BCW%2FY7Kqs2GFkgRnhn1oGfQJPa6DcEjYz%2BRn5xkDsH1P%2FyZDWkxQoGp%2BaJLhD%2FAt7Im%2FWNI0YInveSjJPSj5Sx%2BQavbdFetZz3rtyUXs9lW%2F%2B1CI25WSybNKyjcPowcCyaGfcij75w2Rgm2zlDLJGRkL%2B7ozvxxnztoK17P4ngQcMF7BgcBf6yiKqQwZwRaYHYHpWNkqn5NdqhWutjQ%2FsHxFLZcnu4tRuuDgjQrTLZilNtVfXD3i7cn2w8N4PpGPBlE7HuPscjq1ejf72PclE3pp%2FsZh7yanTd%2Bp21IKZeY5BcOE9VsGh7rf5m7j1%2BmOOb4M4c%2BVgyOwKnvjhBWNWO%2BqkdqDjZnx6Bi91YY5TmBZ0Vl6JTNmjecFmcGXjW0a4iS4MEY3jYHDNxhgL4ZCjCFWKkeHQMW9am9jMBgY35iJG0jWm0OgHCE%2BOBHjCjLGoLkJD8YP%2B0i6Avt7cmcqHbe%2BhZOyre%2BB0iOniQwHgeKgu4ZDgpu1r3YSr8mYNZEoPJ7vbb6GxaeLRDjvgiCU%2B0s4Qffkm2g3OfSBQxay%2B3nBxaOhHf2%2BKcTTxNGhwvyabfkwyn%2FmCADbIGxQ0Xoxg2WG9EDzkjclcjJlVVpb7Qs8vi%2FbHQNAtscv7A5WoE6KUEb4WWL%2F%2BaeeMsWoyxhfl8Iz0%2FpfpHzjbpCZZmgXSFhyxFS0FW8Kf6r998CcKjQgQiLCcnHv6AnI7D5bAyD6BgH9J%2BQIG1ByJe5pacoGwoIn%2FkY02b1SzT0hkzkTIb6DFFOP7k%2BuJJjPEAPzbC8sx5f1NjGK9RGN%2FWb5qXg3vyxvBKyX42K8TyFjJLQCfb%2FWS4YuiQNB4DplETyeFk%2FEdL4JKLfmQoLJw%2BaI3FM7RhAgJhQ1R6Ugnq7x8XknIdv9lIdKAdu%2FHT5ruBF5gBozTCZepS2ExGOrqltXR9xgkGkpyuNukwalCI2a71eG4pk77y%2FQz2GPwhQDTwC5oEdU8wZenFHj2L%2B08gi%2BF1VckJEpQhENfvC3%2BigWaskXKQQwsZIBcUnK9AqlblJOHCAVKNd2SywohCuVC86VSALldKjSniZtLBYxG0g0RKYyTxI82THRKQOySg9T9dlAfvwYDeYk2EwCfL3Q3Yj6BSpHNBi5bOQhNXn6ZG9hKFvxGWJUwsYljoR3g4C7EUozLSBhdk7xniTteTwUa7poSQGbZRNiSTSMWniWwS4pyMOZHD2Sq0KskLgqPUFiAprfj8vQsc0FAJK%2Fu3fETt8MqI9xgjFWg%2FnWI%2BBfrng%2FlOEDaaUGHnBgu0FmlRrNd6lAmyqJ%2BEUZn8Z8iGeqvWRhvhdnle78rEOQMXqVhSjD2JXMvumVKgu9W4iungA077p%2BogHb0PwJqRYgoch%2BwCJYO3D8y2jg6mq4vFASvUAtsShriEbeRuVhrAsg8BIC5wnL%2B%2BZhR89ZNGmtRGoyeDRC2RiXeSgck83Z3jQFZ8pznWjYaTDNumMNE4TeifzHkPsxc4HcU9JnlN%2Bltn8wxuwNiIQlgIm%2Byc1baHB98b2EspD1STn6%2FlZGIHiYBB85zjDqjxNfzETW%2F74uhIET%2BnV0CJgqO4bXBTun93qNhNpPeNRDsH1GmHx7QoKMHVSVlJ1XVU1wyLmii6oOYA9MWRSGCZLh3KJvHF%2BaZipNaXu9aoKDLalwiUinwg0Il%2BAxbU%2FAZricVvSsMSYCFhZvjEss9TmLzAKKEJNdmW50pnaQm7fNJjBpvNmE8QFypRBDEX4eRfcE1CIPT4zapr%2BORTg416NU%2BaaiPCDEOH%2F5GQksQDlqHgeems2rrMi0xiR6PU0mxwfFi%2FxZQnxSMh75oWOWpY1zud00VGCxqZpiO8CgaaKGrCEJy%2F3aM2w2JK0ISxhcV4v%2BN4YQLwmCZd4EBCDr4lE2BlnIYVX710Wi%2FOjsHITmgXtLHFXmX6VtPFdPg3k70h8NaQ2o6meWYgg%2BkSfGPUbrdUL03L42V7C8tluDIkeNBo5SER4Ha2YdHX%2B2UNYmZs66dIAvwkdUjaoKySCIebrgC%2Fm8yr6s4%2BopzsgCbLjnra4hQZGcIHnUJf8WrMqHYQ%2F9C2UEEYAkMwgbtXXlCFGDMWILfKHcsOhO38A0QPoaU9u9%2FZEWGhi9CfCCIWm%2Fmsp6gaCynBCMCgaaPp6gkzQZQVlxhLqoYvTmWmV6SGgvtc%2FQoGGHCvsLRlb3%2BJCOvClhRlJuuUzK47sn%2BCUABV2wyFH5PdhuH3myMIfWpEuBNN1iJdHSeNGBKd0hZSXyOT4t8zti6RJbWOKQVp8XhxMMxotyyrE8G2g2zdkY7pqLJPslvRsh%2FUVkrdL50yRLrbmlVFs08i5EApH3RkRHOXIBgS6y0PPWjGIj4oRIwhMr9c4sLMP4quW8OnGLM%2FnBUIgwW5u0EZrhcQA4dVEng3woL4gkX1nyHlev8r0qVXnNUwpbguD62w1LFCrFKxRIBRCKQxBibQVxU2I%2B5yU1G%2B0xXqWNP5QMwAeUy6AQ2QJxhngQ4SUMQb32X6wm81pFuK0dEnWUs0JujfmfnmAVqt3dHPnG2RDmAEpGmmceUn4vE2y3rE9vQVIQrj5wldr8vnZRki7wPw2qrBmnRrRph9HijYwjPzxD0YPsMjDcKKeCNWpIwXo0Zjbnd0kaRBQOgZpkEkFUGjzUf4woxdcgMd8CxxHiRD%2FtS2E5GtRI6CZwb1BQyyydJ%2F5cq5oH93Y6e1kLXnx8mBQKahLRUEkbdGej8hJal1CNDmU4JUeVEnUAGM1upgvoFH6CxGSRKDxMaXnVtxZKU5dONfsMQoRZ%2BF0RIPqGpUewuCqM%2BglaHWS4bDG42QvnAWTXymplVp3GxHL%2FADsR8qfzd1ZVUov%2B0tyc4u4qndpXVPpsEJ4hx2WYoChkL9vSx3VZgLyrgGsulCPAxeJnpcSht6DTxJsQ9tnQZiOCItqvBUhakO1MJAnd4E1QrG%2BLxuCl2bNnQAafXjF7cxcWG3H4pwnR5KfCPGmIR1R9QLUJ6rY1x2RT6CJ2oHiGazxX7zpbSP%2BginuJvGkYT%2BreJKkh0kWio04IQLCYFAWyTHJVGm9Pmyy1N0zyRmytdIcNC2PUHe4CTIvk1HqBAJMCWpfnFXfBBMjNCccnw7VwxJ%2FXeBsZ4FXoZsWxCu9ltBNEdE1QkJcIx%2FQWs8CXuAyN09oeuEBWCm7kahrAFzOYMZHJ7N1482VI8iIXWB8620sGycZEGCEKEBi5z3nuHzPkPDkpVixKGROvDdcLAPGX4FVMr1W8BCNS5eBvGmUtP0f08o83qcyA9weN1fsn960imcxAQttwaVS07R3TihyTWJxiIbZHTvw3maeBkJi7tR2BrWcZA6kdi5a1zwTL2158h1nII00YXGvDnnOHTOkiDgSqvBo6DxyMTL8%2BAuXFlcOXlh3k%2FMUWYgHKztDRTaXA0odwYsJsVeyBvfdZUihNPxWAIE4oRTSvwBLijJOX%2Beu9pYiRgNxt6fVbjX25nNlabZ%2FqbsTAyFuGshU3UXuKdBBBqV%2FZzV9nL7ePckj%2FSakSEUn8Eu1HMBMKm0KXUTqCZ1v%2B6uRqrqn4PUaZQXNH%2BUBHgN63muGbtD2vLqfLKLi5N9tmb6bsVRSF3XVpzxjCPG0G91MR4mhVkfzy1YILSfl9lVOyk%2FTQFb3KK1qvaErzYqJVbCyqwhUWkM0yzk7r80U0x%2BrFnjL5aNrNmGkvUJXnCylMzgqMA0vQxJGFSQGHfGECSZtZYaIK8jDUIDQIDpnN2X%2BiBrDeAQmQlPLeWQrCOxjA4FgjBycEOcF3pn6dcyHthhGGKp%2Fh%2BtCAdT3%2FcWGwrc0zRZ1vtRlj4PyIPDlCRE3UMx2HdQ9ba6%2FDmxdxCGsCajtok3qz1yGoQ8EILRjBkaKEuMnvnAYK70S8twxl3B0PiJfhj%2B8aoKASoNA2D02hOpChIXnpM6aoHqLX2qE5FV6jFQETD8ZQRAWVE8hMpW86s7ppW%2BVnXj8%2BlLDGg7E1HrJxyk8e9jiKoDjWCpqhWe0oGFkhiOUSfyLeV2zkPI2VY9nsJThagg1Nh6fdq7y9gHCdGiPznd9ulhqvsnbhRwALcxCkEdpFJNUkV5TnUE3Hnll2ZoY2UTvFgi0d%2FNd4whwzhtAIEGlaFvWAVtmey%2F%2Bd0lpCndKPeU0yAqbzqcJEcCesfjBpn0pe8SJs3SmnSkjePgX2UgGGnxosQP4roaTD8egzHvzrxhSsRSkKjt1gtFBI9oUYkRzVl41cVVG0%2FhdGgbRp6frVy901KS%2BqNWjIhEG996xkOuWluvIB7m5od48DFjYDmJc7yp%2FQjlpOxPgA5jI%2FbzI8MQJM4AaryWyTwr7bBRlS4NKDt7AHm2EG9Qi%2FVjPUu7u4ROlQOv9%2FY4MLAlAlpGAdq33%2FVuDQW0%2F9EjXe8YTpX%2BEOCnVUh70H6Bd220rYRgSzYSn%2B%2FrXaCmT31AscZ0%2Bn%2Bwn1xhAkn2M5i5Xl0C6KPtkDhl0%2FbWbRgTsdQMV9g9t0Q9c%2BRkvPjMAGLndbM6nlC%2BbHj0DGEKRkE0QtuyfUaIty9NlThm0E4HipgjhEWyIxNcGHWj3A6jZe2vKhNGEec7pNvo2gHI%2FNEL2WwvIbJnq8DwmoJWy%2BS3lIPJnX6ET5YNbbZNHlpGAzK0AYXWu7Dyo1vwhnu%2FQN0BuBE73cB%2FqIcHXSQ7MDUruw09qdUEwaUKBqu1eNtEw11WITaRwnhajUbNDzpOvk524mMjnHYuMYBlJNUnQxOXj45IxMszJwxPOofeXbCkZaZMwXq5aFtUs7gruAddo9ZzEowgAS8FhNoSyYG%2BeVcE4riaov9rv5x9DVnpJWLmuV6SoC8OQ7Umq7FqIeAt%2B1HUAZeWFBeSn7B4ZhkANCj8X9xCA8eq2EoGuLx75pfc7I%2B0Xjgrx6vmWMYauFWCPbfI0LTkMSkDmUeid2NCgJUPEWad5HbavXFjtRhSxX75zflBoN9xJSsV7GqWvkf8i%2F%2BblmNXy78sYcM%2BdGTwAUMScuFMIRuGzDJm858lrXELTqPRtKlsX%2BXt8SRd%2BVMdGGzshkmH9gGzS0FIjQRIiD%2BwgCaqPwpHF1DelpO8RAYJ7GoAgjGf17CEOY0IkCCmseEGdxInXV%2FSsRdUvC6P8VNOikKZw%2BNeuJPHfXy23DObvdiiEVmuiaUlzQNitMG7gJ1pFIMBghoK2nQS6BFu36dBPjRYbuM0KDpAWiMWW%2BHd9AM1GO3io5ErQ9RRoWoWyIL9m9UNYVtBfpMuXFO%2BWvZl9pAoPMEMw8oxGJQQoQAxb2pkr1%2BwxZOSiNMN6GUrOKJIR9J20l%2FRpUGk8xQuDo1vetFBrA4Q%2FzwGjY4p7LJIKbnvgfPZcSNK%2BRlOsuaLCIHSD9EPUn2cQhQeP8gLEZcapSUiD7ahcCH4wkJ5uQDgz7YjrYJtaAFmksvrR2nhWaE0HvM1bdvDtmBHZN%2FWV4HEZQnjyOniXCNhFMPLa5L%2FvWjx3x%2FI05butu83StpjBmIB4dc0YHvIi%2BGBk0lX2qvq4Hz1VxPoTmaFf%2FGV1xCqAsmqweyOxdgUeIJgZf9pMkPZXgbaKR4UEeQeEzi7TcISR0Y5fnhYQ3UG5zF3STCR%2FQNFpcIrt4LG%2Fz5k0vOVfks0gwJHBNUvSV7tiZBVNl2uPUGJDID7DbcN0T8jPYy65nBlpebkLX8IizpjQYf28JWCpFrSJ%2FbA19UqAQ%2FrqPO7FwouRFbRLIn%2Bfwe6F%2FGCdpFfjEcxs8LTb1TXLyybda6Z1r%2FiJ22ka%2BeE0fL2RQjIbSmC4VwEKY3Qd%2B29YgES%2F004GlRAVbM%2Fh5EGbnwDsWLRzO9ldozLkuPL51WGoOMNJS4%2FxUEqcYEXxXDzpyBsmBpwq2lJ7mbw2u5Gb9ViOGGYdHMRIrIRHVVDGm6YnfPXJer5dplZuULdFgMRjNOSFXAfxyf28DUzb0JUVYm4anop0849nK4Cy%2BhYLPpYuZJpWra7E%2BVpqlWjlLmIbyZgzlHlHRl%2B6G0aJZYO7KdT6UDdPqXdMBYndDOgPbsV5sOXSwxaLWrPrV9oMW5V8iG%2BtWxDcGYyuN3mJqc1q7AB2rlxb2yZAlWJR6DuqzzzQBNUcv92HH%2FXqrmOCSUYNKxjJmrqvEGQFDEuKuV1dOC46SCFXqZQ0wlzzXoS%2BPhKIyz%2FXgHSVKITSjGFaIYrmw38DIf%2BcgdN8mx5qYZcqCz70TKMrOxO3qdgcTTkJyb9hHN%2Bpenbhc1cJKQCQFGTkh3ncHFlTQpTpAGM0SSLh%2FXL8XuFsgDp0IzbroSo4q9HgHTwBwADUP0dUIA2G3YOAQhTalcqbH2ovhHU7i2Oo5gbwsL0x6ayAZDZe%2FYSmathgUjAamiYjcLl7zaUsV4GRgcDRac0N7Mcf5YuN9gfTwKAFrKF%2F0Hedw470ovF%2FpH%2FUq%2F5oORJDchz57QJcg9oiuQgq0%2FNa5s4CpWJnH%2FsHIfaZUCWNVOqtQYz%2BmwLzsjWGhWsUXoZEfk4kaq9UqCTG%2BUIoRIaWCu3%2BDrIaRyHx5YyWpQ%2F6siJT32cGkVfd8nNMubNkK2mmhFI%2F1n%2FwqWYdLS3tOQPcPb14%2BFWo9msEIyLxZV6rkLJCV9dOwOJOIZyBUPY5kkpUYZxTZzCg7z7JrfDGpkIrIDHyKqUCB0RTZ6ZzNs0PlawhqzbRgKcxtfRhaHMTgj1pCxBXdAzRLIYDsCAASwLb7LWvjOlSgSJB04xjfRmdwLhz21hd4xY2%2FwzRbf%2FzXxofgUeTnhFXFFEnOtluIP3cyJ2Ze6a4P1YPqtJwP1IZXWjG5ZbdxlS5ACPEiHCfE960RiXRBlbfTV7ZOvRUNA47d1Jir7AK9Hj%2ByzFFwy0lCZPp5Lqw7kIwuSbzVJzB12hJkyFF4OJSbolfQhEpziz7y1gpgrG5RzoJ0dPvXllEOwrJ%2B%2B4FFhcaNPqyIXddkJjXQyLPZNJ7lX%2F%2F3VW2tE5AyTJWst8%2BaYBTd5%2BaiE%2Fi2Mmf95I0%2BonFcKM8R%2Bstlj9TgEjcmi0RHfH1%2Btl10ODQfkgqKZQxB4olbotBZApXI%2BbTySVR4b5TqIC0WvraTO9JimoddfAggl7nBle7COKK1spdg%2B%2BV1pf10w%2FCndd84r4%2BSw8Cdvlf6kadhYppP%2Fdiu6mYcgyhxSUk%2BbwMnpvYap1JNnajCDEu1%2FclwPjgBE6RH7%2BuhlkXbxbGVE1jqMdsqF8tmFYVd60kHgASGumi4WAfrFb40MP6CLgcovASPezcW%2BwV%2BZLSTAigg4N9l2ZHq0L%2BUWOp5P0GmUi2Vu%2BkBtOhFe1QKUde7SKoRCAK%2B9G1GFRvuocB6KbI7%2FgfY4k88ABiAdZAX5ECibKKAE%2BU%2Fiblf93FLwtX8sI7lCtBm%2BDIZryggSNI%2BDTACQAZHI9xm0dGx7ZLKam0FWjkgAAi8hs8jFcCqmA0R5JfBXAJzYx2Ni0jjzXcmR4vQWvPggiVbNNXB28xNZrO%2BCgahQdwrbROMBBlVB6d%2FVJeUhGU6jaWdVRXZ6%2B5zTyYKX2wc1y5PgLvkTMBXURFKAwpCJPn%2By3SdfZQD5Y6H0VSU%2BMkWWDVKopAXMmSquLFryHrCjHeTthnLVVNrPwsdx5X6iKMfHLHhsw9pS217c4Pl67eD%2Fv2EDb4N7tEFsOb41hbLf8V1cfHKnizndDcebRQ138qP%2Fsj4oKNqDMcWmy25KpHi4pJcXAju9bHZlUXxKvWKG7fJxNUxuIeJyGIT4g4lTkTJA6b5FU4i8cQgXNmyj%2FrgQ%2BoAOOoimrIHEyAQRhJ4%2BrQD7omJsUSGYOEKTmJFqKoFI1Ci7VS82hCFtUcFhzel8namdr%2FmuyEcDOQ17vyYj0%2FEcAPPaIhxlW3cZoPrN1ciGCX4keb5rxHkY2MCGYYFTcpvMxhwLE9kOA2dpUkV2HuR1q2FtYYWLB6SqDjEP3fAJdgBrXI2eHk33xgc1qsgaZXuGOeoAp4y50qUilqpGY3xHkUU4EAWEOoJpKGCzFgSwv7LRmFE4qQC9C%2Byvfd51kbeXBWh9WE1zJSO248OsYb9oQu1b%2Bry9dWgmueS60k2lE9%2BjcqYQkTyU%2Bwn1fG%2BBgJh%2BuJvlDHh7Q4QePV1HGRh8oj3X5LiyccRMubdXiIaIicJjeoSmoNr4EnjOQGzQuBtjvje%2FSx7A9KteUOkUt%2BkcFjmNDeb5UqrV8xdr8ML7TgLFELSMx7iIo2Zch90G0sE%2F9qdfMQMzbj3RaGUC9IWO%2FOEbDKcydn4ZUUR8S3lDqMNvufhlozTzbnm95NHmLKMIYzSPEKG%2BCYRoAoI4Ky1jdy%2B3Z027Lgp9amwTHkuIXA2GFtw8rSepCaguDUodcmte1O02nQrc8iPdyuN2PdbPBuqfu%2Bqd0i%2BprmyDbJdEGjNa5nRKn%2BNIgpiD9zd21Tnb6t1fIoFgZ0ptJxi2zkxRz3dDQi4fAansnVeQZwlszbeZvetGRP9%2B9hDDjr0cXfnYaQ09C1MX90hBiOFc7qfTklpBzGUVH2u9BBC1Lf6CAUm1%2BwklnimaTTogCfnpQgOzKCgN%2BVxjmJUSkdZYe6cB%2FQz4Twn8OOO8wauL0mVWPjNQ9gKTcG%2B%2Fo06dpEhojyHfAKniwUT8AxtKaiCkvE%2F1aVKoo2gdpDdBmLftRPx%2FsSrsUs67qQJfDm5%2Br6Z9e9UUHfL9MUSv6uQU0vj07s6BQifI3j59DQOGYCxEuhOl3o6%2F1QW9T2FVWUuD1tvDXRFmGBNeNbMJYFVM056AU8vn01wpajV5cQDiQkDkIqmQAPbtaOkpkXL5GSZEj6s3UuM5b3oaYClDOLBlKRLrIj3VHyhbcvIb5sgjITk%2BH29ZyTEXLIPHiatvWKLXODFG2Xe7LvclzABzevhDP3m873yDwwbQBx%2Bi%2FIBmecUgmiyvbnVe0AoLjoKIfdktnoihwQ1dyNJL0qnvyRaQSdgVVT9%2BV13ZfYHffukjRG7D4Hj4UXjYqY2sWIhMhxUA5Zjg1m7TSvGwTtUBmsT%2FMuzyfbZi%2BK6B8R%2FVHsfMvGKl3tGM0yzn3O0l1fPb%2Bjn0vHVZPUDELo4wn24DVUm3USL9CR0XGiMiq55m7pKc6zVx6PNwuAragBG8TzVCbvBhzjrO56bhkbFFEO1smyfOoQLMxJcobnHjkWa4fV3UzrQnPf%2Bah02WkqZJCgQJwsZ546KAcOBsRkHEDs17oY3tHk46G%2FUaj%2BDVxcBKYqsczqwiDCIFdS8l9fRXlR6wp%2BKAfbggerQzod%2FsvtIWOLSPmwPoIPGC%2B3IcwFSY30%2F%2Bl74N8UGmGGeI6XgpHVoT2hJNJN2fZfhTLvjWFZaQZHJRSdgcSkGg5E5AJFH3UXvYShfVZeLUgyOSOybgJSiElGK0CcseGTvTt4xbGfrfDpoJSn9AhqGYV4WmCm8O98dkQ3RQUEBwC0OXxa8v6QbCeFQOcgqmTpcowWAY9ufUfmQbyf1iCAtnUYpCQooFisJLBbJgkH0MHgX5rAc1lkeBTU1NxhY0PSGhCPQQFzFcJJ8zbEUKekUb58mXvxf%2FD5PRg6nAqJQnRFqtD1TnfGHC61azD%2FSnENZWlQbkNW8A0z5ZQjaxerTHMgRXYnFiZ4%2FuqpTj%2BKO%2BpF46U0t0vyEuhgMSzzikVspeCYQrVib4Go0rrA1teIsJa1aTpaFGz%2BFz8m1atBTdYn3FLEEZkue%2BYCjlbRNAy7HYCIaJlZz0AMTNChBgkoIHzP0d6e1JrhBq4piIvPvq1hkXSmCQtuzvr9Kq6kWSb%2Bvdj3l8R0pChJJ1nN4kDaHEW5WVYYHTE%2BGoCIwO9YV9xhjuJGdclBQewfaoBkY1lbaImnTUtpqvOZm3EYzPjWzmoYa5zaT0y5xv5yOUWQmz94FxXHaBGnwc9DTG4%2Bo8Eb3qiWDXnCxbHKjGEYyXcRWCphQjIATLxQK2ZBkQjEaSJ1glEAiTW%2BozJv6MZz7fjEm3u26CbzT4UwGR4bUfFYCt3wKYvUoAjQLqwYZIJq6UPOUMyplQgC0KQsH376TpRxHBQjhHmc%2FFfsjdTsJfGnIUypX8XJsUJqqBGh1ItWaqQj9qIE6yDQmunKcDPIenco4TSXhRdxVHFio5ur6Q46zSyaNZkGMJrJ4UoBWO%2BbyZhU0rUv5kSqWQAhlhkSX%2B9xDBr7yPBScWualtCUJXRwCSl1268Ds85CSXgU%2BpAvERKAxuB2koJKoU%2FjfxpMnORzCiy%2BUZiKbBGO6hbHcVdbqkDbU4O1qIojMG2fsfcigknd%2Bwk8L80wrLvk4qOLjWJdZt8UNfioSwH3XUQ3a0ZJxiaBgxSIoi4FQEStZlgcYztEZGM10ooGIl88gt482ZDToy8hwq%2BIwJSOPXM7CgyymG4SkGwduCV8dRYQo%2Bm%2BlBznAdd1B%2FAoD8i6AuqbSsUy%2Fk5N7fNqxQnqF%2FHQpkPz%2BUFmoOH50QP%2Bm5owd9oNqoGmGqUuWaUVotipEXZuFzUGaHe4WxBcl5RQ7gziSrGNUt4VkU3ArOzONb2HRBQK7NSFaQ%2BiKQvoDVqMsnkKqsWcUpcxMupcKFP2D6lxu4QEOEw16No1rNHwFs2LoM1D%2FYzTfpYR6Ob8Omp1MMHhzCTpkYy6zlBIfjJDHUc9ZYFnsxVKf6HxRBGNqQRoWZ%2BAVVTJ5QS%2BFQiFCN3Hj48R1eVh1HQsWb0CxCiDSWzQaIFioRUcsmhb4UElmqJt4E5bDdaHAU5bkKsaqujI1WWkdVgLVjuM34ERTrRIten3u6rwnHoXUoWgugn144JlToLHb9fJbtHRMHlKXrELsGmeN%2FBCqJj0ZN2IqOkSQoCVA1S1Ax3iyYXLJG8CZxQVQlZsBsOXYlJTtR8TJzviMLIbLLIXInhKIP0%2FgzHVI%2F2lqZKizpLHXSowHqUVCSwZZ1xapBNIwrvx8jmBMJE2DuxK95JSH7tqutWPDZesKUdlSPgDeXiMZi9mty%2Bz3pGzdOkEKdhicToyPuvXYZ7AyaO0l5vvTvWZc8PM7zbwvirwN3yseruDM5xS9Crv4ZMOdfiR6mmDCXy4osq2IQMBJuVGCSjaxu4Y8bGjroJaqjxhrf6oXE6Ph3IyT9mkV6fmQgMEYo%2FXrJtIf%2BrmaoLFh56cK86mkVpWbmBbILFqZ%2BUJNBlQaKMLiNWMiSb3VMvmhAzPi2EsQyIpg0Tt4%2FmHlcRKHCiNhq2DdA8JplBmn0x8eO%2F4DQBQauKuYzzYfuyDm22f23hVnhoMpf3pa9JinWjiJ%2B4rUv0C%2FUI1PRshOVKcxp4AlonklRkjn%2FdOlB0IE1Wucod12Z7alJNG0gPGRVvceSQsGdewWdhOR0YAeqS0nRO3qKhyBB%2FJFATVUWb9PJLP4gy3i0RtQbCCNB5yIw8W6oZB%2Bvi0hwZKperZqinpl%2FpoBakLXI12m0%2BVOghz6TwoseepjtTCKZouMYGP%2F0FMriScLo5UMBFeDkH0KG8AWa4X0ECHMc%2FRF0ChbfFxc2XEgeF4STZgDXgOXeMtK7e80KNhLhM%2FuSLwlQdewmhSEJP0OvcvmUiux8ujtbWDL%2Fc78gGzl1AmBigXRLM7L1hSZZdpUpvp5AbCCpZ8Ll0licnRQjGZld%2B6b62eLDkAvuGCBFkoChy24TLOQgNmB2ASwxHQc9lAK7M7oEthfWnwx5w5SHI%2BcvcMIKHMzFmwoWAUJwBk71IKTEQC7TRg3HQ8%2FFKZJsZ5Mh%2BWLI01qXhKRxhFiFLDljHt4Kewjzr0FEOvoTfJnqTcMtnBj1hW%2FbiCTaRa0gwxZkzDMJxuUvNySKUx25fFSNsLkgbAWIHF5yGgYTLHDPdDF%2FkFgB5yAQD0eVK2PYBIkHHVA5dQmLCHZuZaj7ewb8RCJa6eialy1IZILPMqrWXvQWyPJ41fYHhiDswpMV3stuJQD58UbfpLwIEklupOI3%2Bs8Eb%2BSatyp6Wa9JFGYq8Irlh8832%2FLgl8Fu2rzkZwLeMmcgahSon%2B5yCAF8wlEE1uwtKs4Wc0oIeMDgfU7IER%2BYxRrsrhD77%2BTsoMP9kZWiFVpfqg46VFRc4oL8%2FPxzL0sx2F5ttOucpPrAcGhMUNizqkkebmBkCkX5Cb6yWgxG4QD8IC29vC09mMpw8%2FU07cOFyYUMsWvTuVq%2BcdrdYRw0EMGgySLWRlf6EBxoAQ6EdCSVpIaYeaFppPUmfHDHoAKH7U7SLCX8iECwUifcwfpgwUFe3%2Bw6enaWSfhDwEtA0UrhJh2jujWUc0X%2F6XveQP8TMyYgEE5iEvhwMTDBRL1C3KYy%2FBmWYLAd%2BA98ckeSto7h8NiElMkzJL7WAcXml2JjeuV4oWJSQjXFtaG6JQ1FvntZMA6Ndx0Hv1ohsRk5i4J42IfZHEpjZb4Qmhu6TymAX57klCDE0Sc9dbdxPZi%2B4xaIYIx2nkg4Eh8KNH4FCxAxy6QJdU9PDAKkx1ZGozehag1lStH8RoWFEOQcRY3iky0WShYj6mvE3%2Fws0ADggNO%2FY0laiCQ%2FgHFaxkkdSImPvN9dMs85nRe%2FVaqqY%2BgaEzbj%2B%2FAN%2BuN5r8ebTBAdUHdAI41Oo2rGpe4njF%2FPGQewJzZerJjee2vn2j6MBMd0RUttyOXTR02SAoXhw0fPjfDlgKr4Ck958hkpSm7MZAQI%2FBdPdvF94ul0saWmbhuFuIpYZEZ4BL3cThQohMLzC2LBHYyCxFC2S2JsnWdmCGgQXXcXudA4LI4FXRVB9OVsbEwCJH61wu2PwLWyk5hhX86OHTApARcBzEyXjRrrwvFCA8NO4IUrQXifZm%2BXLF%2Fg9hhP7C%2BvT7aQ0J8JSFIBwWVHieD7%2BhEHoWEygefznE8K0NL1lgGRJmoyMKQDigcHCfkYHRkYlGAslIDIwpCC%2BOMVKOSyvNisjmUwYorjn0WL%2B5gyF7tYOQIRxDcC1HhWgtmUz%2FS8dgmdFYbrpzXXuPKZTJ81djAt%2BVmF2XfdZRJ37u1LIEeFkfpTYOrMlSeCmqxKLJZwi4i5lAcKwroyEaJzlK9TAIblIzecgVF6CNIv3BbmFfY7UvSd9MxAuuSt4vc2HxhwVL7XNn6t5UXiDAy2oiSvNb8SeZ34tjMhxZCNkk4k4kG2W8oeCBMpykVhHUesZHBmyuSHEwiVNSQdFkUOh3SilayoJeNczDABZjiZ4tdP06lQWD%2F88iaCCXW2kk4AA60F6fwwnFKYfK2R2xoTH45YbxGeo5dRZFx7ITiSuSP%2FY7JegsbaQ4s8AojwuMxg4ZmQprE6DcMHmmOEgvMxUuKqmfzYfGXdY8KWsiBEF5KogcyVfNSjdtwP2xLEIjASNg5zWeRGWJs7XTLcNE42uf0PCaKnjdCuY2cT8AYBj9dOcZqKSTCuV6a%2FcWQ%2BgU8pRjpRbQXUgz1oTEGE5dfPZag%2B3VK7SQFSOPULmD740fG%2FmpNb9I%2BF%2FjsvJdkmIbpEbUKh3%2FyW2KLzfYTwRTws1heIXMaPR0QzkjwOh%2BbGkEgq%2B4g2J2UsONuEuXjqjXjghz%2B0puTC7r4mBRcpOXbopG8Wvn0mPRZr4OoC0LZa2d%2BbbAydRKvXPTwGjmWN5MC%2F4DkDXjGGgfaor%2F2mAAHQFLQy5shUxEK6k84pDiwl4emTCjWuKtFJBBY%2BKqNtuie8owCeSlxwFSvG16kJhOQDJIm8%2Fq%2BVsU0P89ijlRldwWlqp%2Bhu2bTUcDnbPeZxbV1qKSCgYPSBkm2NHK5wgSYmRrwFKRURKWuyr%2FlJMLPB4eCUSBsAu30CugJJUqWpPQy1zABbHJg52cZGcdJSbVUbDzKCKglbC4POTfWjpl6eUKVsCdxgFmu2nEnaTSX1IqBU4d7wRdAi2S51ow3sgQYBE7XUs8c6NlrZACfw%2FOQVIwEtRcv340EYCOAgdDbUfx0NjQ%2FhG2SideA6gXcdRYdyEjYmqo2WbjUh41qjoh%2F49N8M9mXPWLluX9sJsm2aMaWtYCc3DkONEGNVygFnD6Lz33h%2B2ki5g7b%2FgKxxHmAoSAGbvjyWbN8wDUSM5W9WKsxCL5c6BgOY1aHa76kkWm%2BtPjRKL0ZsKseS8rfbLJHipPoB5ceTWFAs12VAUE3VPIgbtGGFS9f5pN70uBHPG6R9s8bt7e0yNFLYBxMPEu9FZsRMliNzNn%2B1aSkPKg9EhfjwsH8WoP5%2Bk07vpGXu0yC%2BxGXyd6f%2Fg9Sz0150pvIpybWHRH3CAk5Fh10tR2QVl3i9merFjyDXhZoao%2Bxzz72Zwuw2PsAXzeWZ5QyTWAresaR2LYNgkiOfuAqrNXvfiifK0rDzq46hkHu%2BZea3XiRxw23XhH%2FP9lGB8pbR9hkSlA836q3tBg9KfN8pivVI%2BrQpoo5uSdf4%2B5b5HqnOQrhv8jiyiYksZBU83xTXztR0RJ5liaVHli9DbfBfEiqMb0l5NDMBiU6%2FISe4JpOrKo4c8CikFFcrr8dxNjPW%2BrHZsitKAJRaJmvv%2BxdzdlIqEm6xYMBvSiJjQZZ9zHBV4YH1YLAM2nhZFtFuuxzkRk9jRZlMF%2FEgMFMtFt7siy97gKMDAc4%2BoG9JavL2QhHbuT1cUnC5SnM4KblF5%2FP2SGlYx6b6QHXTEArj%2FX2SalJ5OC8bVkbrMUifHbdLpcngT0XYjNZ4a6EhLAx8fcrKxx%2Fg%2FvBof1hQNTpAiySMeBqiMKFrR3kFEN399ihltvvPSNcOC0Qt4Gxs1ITBe8npUAsXFPHnb%2FewPh1N8abAQxeX6L3zwOknhgq3N1xKfbGp61NODy10z2wQuifnY8TOkqKlZOpiACuVpm%2FsbJe52Quj5NIgFYADPBJ264yBaxbiqZtQTywRmnmrZqLb6V6iU3vMFisKWcXAd1StjxnyLVN2GsbJNOwZqBExzE3g%2BQZkwkMaLgltXDkmngUIyv48AbhyqgToDcS3v%2FPzrvqeLQo5UEFLbnjn0%2BMYgwXVaqGfjYJKTj83Knf7owJPgOzsiEsUVYEH%2Fo94KPMzOwt1u9bMzNpxXKRh97Q53REYeoVm2EIIfnGvVIjLGYeRCffA2VGBAwgD%2BgPiZvba%2B%2Bp07nGpjYaiYURUDLeRLm8gRUObYiVtVFQ7YK26D7F7Qh2%2FHKJRZn6LeGOYIYl%2BgR24ARZMkeJdum4%2FrYTqNIE8iO47xTCCrXWnGYMPMzxuQLv0spofR2GJ83BjG1EHhrJYU%2FB%2FwVDBIP5HBorlYNZEdx5uNIc1BRFYcHF0O0Ch9uzhwXlKCNBaKQWVQwPs90IShC%2BGgJ6Aq3PJDOBN7HdD8UtgBpKJvFw4iTTm55AYFiA%2B1FMh1NZ%2B016EJKNx4h4NsAA45MuPXsc0OiZDew1VtThGDu9nWzBPIdORqPOWkm1LVdvAJ9nldy0ERcZrvHhqVLKbANyqp6gcZtSwQk6rFUtEOpawWPFC17Q6o2xAjuI6BEmvHhnpNMLUA8HFS5uJMIME1nxIicTj8wSIiaofIYikJjJsDvKVddLxqvSn48bP15NXC2Sxs4Mij10%2BPsKMEclqKsi7X5fSqIIL2NtsI22GKdqN%2B%2BCfHt0eRakXv8EjHm87q%2Fhc5lE0i7dzKkEvXzYnrcVgYcbmqPOU2bj1%2BDQC%2B0%2Be5vo2wuAm1VqQc5go%2BBxC7DEWyBjnt6GW70gOJMil2xHqiGcsI6kmBWDAdWFS09ZKvq3oVCHD7TP82hcbdLcj41JqPv7iVRSJh%2Fz1t2JsImpgwUeO457F073W8KNZBnc1T3JPj68sln9m%2B2x8AXAdideMEAibmHQZzd%2F8AcqgCIZTNlRWUfhksFn3u29IempqC7i1swkm9gwGBXIUBzJEsiJStWiSLqGNNO3EzVvwavwVMqF2QkVN83zuZvsaUFyd7q6LSu2cvQQhzRI%2FOjwHwbzTIFF3a3jeXx3uP4XmxnBSmUtgj38fA3ftEWbI1NTCvNHxCgDZmgE9sO7Ls4tazD%2FWefqvgmas6dc3Z3GmAXAiJABESlEPCx%2B%2FHZsOLAYAzrBRINhxOawMGs1tvESnKw7B6t8AJBdET%2BEsMGUOquRArvYjWbTp7GSWrO0bscgec4YJ4vrxoxVix8wafG2OvuwLpBYgeGWqm%2FI6nr19tTuF7UYK9IQVekI4DQWOYoNWRbsAhjswK5GstkVDjIcwVir7syMCzsY4UlcHTe3yvmXGJAkl9hC9qnYom7bhfaVa6XAg3FIlIu%2FAt2RMoOB2XfOV6H6YKzpt%2BN0GpH7mh2O3eYyVbJJVOWzHoKKBQu%2FbaA5wwNgn03qJ0z%2FkGr6a7aTDuHxiV6KYvT3HTwUvKAbCZtK%2FAPUvY2SvhMLmLN1iTgIptV8oCL6F7xH2u4eNV9xhEcMl1wbxEF8R%2BL6bWsxVzxc7vuKueLvKj4%2BFcVgCmAi0Y1LrjjszygKj44EwuWn9Zpx3KLjcrWq0VW2JxBwC%2FyHWmipTwL1miVUt7sW6918bxmzMKgRgVaVYQExNyoZ81sbxQ4OxsMlQbfmQkOxocPCpAwdWMg4olncDpxKjVAhZgMLQF8UbmRpAwc7Z9o90UBITl%2BDUFWNEJVj4LJd7WQwTlxFg8IjkuJNldhCnv%2FW9dARAieGKoHZE6uHpw4ROb74WL892f163SL1BQSR3FAYA4TDPUuouh%2FALePpSwxLWLyOc4K%2F3I4TGuvpL6EW78sQHjR%2BXahCS%2BOt8nHcntrgoqDPXIPTnw94c1qolEY1UY74RDqraeSIpp%2FS%2BpLROi2NMVCwCeIPoSUbOJubBuNSPrQaS1Qa6fFgzgUTGg2IlxT%2Bl%2BDJ6iI555RhOBJTsWawSAY2ZUukZ9MAhD%2B9QRmRjEFKWLiQ46Jb%2BlAcN%2B1SPE5aYfN2bq0giqRYyApkyHyYAeVjXXas%2Ftgqcs6xAXf8JBF%2FCrDBAF5Eb9%2FkhAHKBJz77%2FbZDiyb0iSYw0pCgC%2FTlgkoD4hmsZgwYpEcS9Z0NLMZMDalCjASYcSb3k4EypW3sooOj8AxnqAQDaDBBs8yMBsnUWvTK40XD4gnpb2Ky3BUVdeKnoudARcgEmFgBeB2Xj6OJ3v16aCd%2FoEkx5Cm548%2Fboix6PIl141j80TRj0XW0CGJkbB%2BWhqSIa%2BIiJvqAptJVncv0swTfTCLtSr4r4xgmtrQH3nkkPaimDOFzLAfc3zfvh9iQGqR%2BiJozUz8Kc%2BZQsCTz1fdsbyZV6ZNcPjXnDhWh29ta7hzuwyYVq5wu%2B7Fuap7svKtJHCgkCOgacbUCp17SPRBpkLhGI4UJfSyMCVQ177cMlpKa7%2FxWHyJ6QA3iyn8IeS0SYKpEr7CA068j1s0sCNLaovpHrluZVVaMuI9h7EGaQssLBNliWCaphcWCBd5BzksLZERUlwaIq24ZeiqXTtYWWdMBR8wgn8rRG4f4DtsyWfQwZmdqu42RXuAINCkwAF7O4BcYcF2HgEn2sf%2Bg%2FLzp%2FeT9%2F%2B6BwWMbeqXUQfXVHvBGBoZfVEWQdS%2BcUlRfepBJ3GxAocYcRXoJhAeqd2UD4eoRq4BgxIDpps7q%2FeqRnvMIwQyBWFQ%2F0%2B1op5F1MchyTuDHG6YNOHIdJLfClUd1vDglhSsEvnPdqBCUDniRwLLXeALMYob5gPKZhFuSDnJGYT9u2gm9Unx8%2FJYDTrRY0CLd3IiSYSNUUYCQC2he1yVCfAk6B6eyXlCpe%2BkN%2Flma%2BYvyU%2BEYJ1LEdrl7cgcZCXr4UeTaQA%2BWl1RVCwiwyVsxvbjbEMg1lmyRpijRlwtkKaAt6ZNvbDjX%2Fz5bsZL49u0XqCiecdCDz%2B%2Fh%2BoN%2BllsPKH4fIJgqgRvogC2SyQfhoPzsZ2Odiv7tQWEQyQVGaCozJiJeuXiEmdDZRux55akmJBUJCjVc6nZ2PaOWQ%2FTq8yMtcnyCzqZrJx8dgbNP36LS8qPANT%2FvKyLfci4SkaPhl4igCyfvCLutMeP6poGHkrKsHr4aDVF2fhVe1ahibfvI6zAaWIZinjLzUdU4rjYkOG6SeT3TtiVbXn0hgMdOfK87V253O5xRXfOSYGFDDU1HeHg%2FV7F%2BUJ6Sq3mr1JmSFoOjFk7LCAB5r9ncf%2BvRJUegBIO896ZWLcJCxVt29lDbu48ytTHTHGSDzYaDBPJrawOw1RhJ%2FOqrVi0Wm%2B77BJMXie0pzH8tR%2Fm9LsjKNHKIHzhQgYr40xL%2BcT%2BGnIEdhlhgsj%2FPpc14odmfDOiqi76eEbgA%2BhzkY%2BF09aWWiRtEE%2B5r2d3kx2V%2B%2FqewsagpLqWoZ9yKBs0h5piFLNhkRhfWsF7QXBsgZUNFrSM3mXaAVr63KUJtI1nldlVSEbMwfouPJdMN%2FBBIsYtVuarlvyQuryDCpJxXmwiRV1cjdhrw2Amt8HiK78I55yi%2BjQJQMKQtMjopwK2sYWHfLK7aTAZy5Pzw74UcRIL06rdTo3C4uS1iFBot9AIMvCYnt2vopZMQcltLpbPT6S2eeYm6W7u8OVdUVPYi0aLidkducCOCmrb8VlIiCeRhUAmf3ozcACf41A2vETPrzsAFY9xEege61uxeqvO3D6eGSWtdFTT5VuxEkQ44n4qzwHkUPJPOWkLYZYUVxGJQ7JviI8sMf%2F37ak2CNSX076%2F6EF%2FeM375BIypHsZnPo%2BzalfZp3FXEila0UbbwOY8Tc7ogg4sxGwGIiRTBZgD79aQVNl5ejOMWKAttWQ1CVg8a079ayCJNFE1iM02j6Cylzv2mFMDcpHKR7tyEZ6pUH%2BHnkW1sEnrLi1NC4y4BVTiFQKywAJNVkebsyaVVMWLTsCcXlziW4y8GFTVMaTZciE6wbjNjsrjmp4wLCAxGBarCXggBbfa4wuKrN23KMDcYnN2YOyUPbSA7AVNlXP68%2Br8hXOuAS3aTwDKV6pbozjJeGjO8AmyqA7a8FeYBguKHeyzBAR0zpEa%2BgI1PjSfP4dmMBEDp%2BZE%2FPMrHE5607i4ajEF1iiqG5PxdRq0kFIkRgxIKoAv1Pkmum7uJ0ZcqC5Ndo2XQA50r0vK8YzkoJiKGKThYvD%2B%2Fh59QVwZtJ6LHbKQcJ9vHjdLuXFuEZbKbFFkDddiOwrrj%2FAtABNssiuk2w2aRVDla%2FXA0Sg20jHkkBrUuMNDDlrNASJh01KyNbvdCepxpBTODBrD2TFFaG2%2B1EL3k%2BQoqPv3KkmxVpP5gylFt%2FgkMOtCPSlr6LzRq9heHsBK7NIhxRatIwrH0APA9Y4Pbd8A%2BBP6bA8RfLxR6uo9SBAMNKYew4o4OZQeGOnW5CdRuUhnIG5Xfw6Rz3ZjwlMEhScZ2didsFeAZEHbOnwkh6WxXXfuUWJHSB%2BZwwf2h2OdE7ug1CoQnGd94REcpCr1tfPSHx05wdyXi5BmZ5RrMHGmujNhZYdhw3pxrg5wQiYyMkTS7I%2B1naZeMdG%2BqDj7fg%2FwXQF3oF49%2BAbPy4dfoj2mBhmQas%2BRT%2F0iDkHVRndsZltJ8g%2F4Koy0oLdF1WG0%2FVOWgmb4l3uJaXC%2BmRS7i9Av7fZvPWkOu3ohb4pow2LQRE5L2eKdW6DfdkKAM97gYACJTlKi%2FXLodbt%2FZYgU%2BBJSxE675sNSECkKXQ9KrL2lznzyBKtr0lJA%2BDgOke5Jh%2FnE0uRgRBml0ducUi9sceDqbzGwXvcc8FdYmzUXnxe3YpaJTabzJmB%2Bk8OAXaLtNz6cRujOZkKeLG7wEoDjdCVldML%2Fussbi2gmlziMKFgJxEIubmhJEMbQ1P1xWZLpyueikAmqEyNobDjnoez3Nbb09AqEJnEQXgI1iUkQ8PO0%2BdieDAckehu0EFwFNAdjS9vYRW5qUlK0HQiNwJQkAHBhSW5zJMcazmQ%2BYsBBzDQ%2FgZy24ljxZuf4ADDlBDNrH8jYKdDr4kFVlVhf0lm4ApFjWHBxWYM0YgEWFXk3M9dAS%2FITL8yvpSOMBAiUkFyvDEjpS2pbuRXNXOMZNutSKZV1BMiklc6Ms7XeZuZRCfUNNbkiYjVArLtqgSFFoRJVcimqiTSRSSjv%2BHJYjXzIVC5LlukAm6xR%2BHGeKUqTyC5pYQKBIOA7wC076E42ZJfEokv3lFfLNMcGmlW4Quntx6Kosa6q242otjhlEEAVynHrxXMJUTBfEwQrcoEa6KCFZPviiYCbaCrYsKFZTi4CRLA8Y1yJIk4tRih5yqNU7R4MGFrIUnmRgxxaeIECtXy5xbP2LlVto%2FJSNtQ%2Fi0wpg769P04iMxK8YPusxE0MoWL3BSO7iUSRTD35u1VJeLK2mWO3%2BWe4%2FHPaHQEqS97hRyEvUkSyWp8Jx4UaVAj%2FabKyBOR9yt5IC6dhCZvlz0WSEz7Z%2FfDSs1szfdyCyClTZP1Xhj8BgXm%2Bq9PsLvyTgup6leWWZEcKsgafdjlj7zm8Zy2iV5ch58ywgywXEM%2FyFsZtXUxMTEmR4iC9d6DmeI%2FsAoiNDRE4kMEDIbLmt3NuIHW2JI8ZyO7At%2BaguvDIjGwCvdUOVhQo0NkRqQ9EcKdqx7obbzOml66SYolebSEH2DoD%2BA1o2lyMSrkjjYgitLhepTEFbwWgtOnY6yA7mdT31IlUrGaOgB00IVYMv%2F%2FMtEXrNzQ77vD7FCAHmSILLITOpV1nQDzQ%2BeIFwX3vNBPzw77iikX0h6C7XMXUF83HXgUflAwqjmwI0JcRsjYKx0H9mgVCJZ73ofxnQTZwFYLFVu7lGCf7k5I7tMVlVIGyWK6efQlUvRQmEgZAHO%2BeJT62R6aZS%2FizCIffjBnIgFMBqzUiROJvYsfm6NdvL%2BdXdNSlNnWkkoMF0tvQ6Y6GgzESme3PRNc2KSeK3S%2FqGr0PRqK3ggrZshnbNzTAWkXXgqr1zsRAOC4SBISXnyLJsQfazQg%2BeEDLCkh5dUfgj15X2UzFE5FQTIN%2BtvxfxGmN6KEJABybCoFRrQLLtdTTzfGyGaMhqKMOUO7vDMLxanBCrTsDAVii4JQmzMtqXLLPDHUik7cIJqyHshtFpb5HHm1fpTOC6JS88Rcd1g6PVUO6%2FAHX3wmoIuRlYPRpGFrml7y05g0MAmHIauDxUO9zWxV%2FDVxBZQ%2FOt2lNK%2B8kfa3IcksWJAwupYEUdXQ9%2FMDAF8IIMsWCnjhqBIhSNjztrxxJxAOrfD3JmvmHF3vnFgslBtqGp2cGE8RKc3brtZRJLAQ7XZctiMMqhwh1c8pq6HFC6kJ6oHi%2FX9f%2BSkEJ5cXWFrAlZKdo7o8UTU5YjPx2mXMRU9ObfZ2MOWNO4DY0OFw6Ew82vcdN%2Fnkb0YP5qXMru7vsMaDO4IlCdNX6u640WeLc2BtQrx96NrCXB3uL9NuEwyCm4oRaAWY3KhUq%2Bws3FBf44PlSlAr4vPD5xIxKER1CRB1tlYMDChP0V3d7uWP5C5WNdY2ovsvAXyHwVrQf80NFiJYYuUl6cW4tUsRfB2FjZHmLuAdhsC94bmBWGUgQgxbL2LoAB5dN%2FRC4qUxioGN2GwyEsA7B%2BSZAsDNu%2BuJURrkDmLZ79nxe1GR6BADMYRtmNVkC0IqtFg9NYLMxZSZpUni4pY27qRN8LgnggyAzuRtzjFTEzmbMYVNHq0hIC9nj7DQpNkyYdJnF2bU0TQ5xsAIsYQIld5LMfMFLynEQt%2B3ljeAGMjboSVRDriwOQCSqklewoRdZgvQAqC28vC4c85C1uyj1NMWB%2F60oB%2FDhYBBAk9jLUc30%2FOJ%2FUIKCQiy7ipEtXCrafDCIhAgJeVTG5vAHyVMDyN0JmQ9hJxYR58AL8DeZFkgrUnvxxxrnFUHn3LjVfW6sYc33f1oFGsjLBV5OJOC6T7AUg6ZbHzQuYjgeyo4RxpNHk4vQBP0NGbnShzLHh3Sinja0uckZl8VEkpVmeH1BJ%2FMjOKABkkR9UrGCUEJbp%2Fl3CyOlM6BBUFJHojwT%2Fj2dFAZ8eCtAOnFxyM4iah34jC0Ywe7EcSxWcWnDtjyc7X5eYSFGG%2B8oVOfu%2BNlnMVAuvEQ5M9QyPcxcQs2EzO0DHfSwsCXP05QDa1MJV4lqgqvtcCyKteo5Hy8qf0CrCQIXcOg5LbEjHmGnSU28xIjpeH24RizdymzI4YYicK58AC%2FZKkdofFQfiYikgdjTBw5Ko0Kmi2SqAd2i4EH0nQllQ6PV4UC6OykYembD4qwOHqKUbyaDYBvOIFxvtDcrHlryYfMbBMJVj9i0YLtU8fMSzTrR4GRYRXWJ67q%2FpyiUmo6AV9cO6QCaJCxydb4Pwui433Ct1Hqiu4yR5JnWhfdCR5wntAXZn6Q5OKOd9ewDaO9QfNtldFLmo7hD3oNE3jy%2FvAXTijBDcp1o%2F9IbRKISSvV%2F2IwTMQ%2BTTpJGVJdg5z2X5HQvchSagrwFHj2p93lRmsDhJ%2FRq0GyshjiQ21BJhWv20Vwv85rVkii4BexjBAST%2FvKZAZxt8uZGba2frpvWmlHszu6jyoSlKiUzRza2h3YlcbnKJAZeYdYUQgPBpPoj%2BipCDBCsapvOmqLe0HSnwNnBy%2BXjVpBM%2BjJYmrItH%2FFOsJA2I9TtohLS4ZrG5Tn7vnZctyWpCroJmSkB20tI1GwSbU3Rv%2BUuVNyewUuO4J4tQMbpx%2ByDERuB3SCo5ETtjQTnOnRNLGXm6joToEay9xQ7fw6BVh4oWCYDWZvWVCGt1bd5s0hKLCE2wav9DESvuNIeWeKNZg1jIYRhf%2FVoFGn%2Ba0EQpCFsqgrDjlNDki45GEa0%2BOVB7YGDUCeFHoIcia9ajryGBTJk6M7o8Ka9OEIXUaVumBCyf6B1hKi6xPpqF9JCYVJc87Tz%2FBvVkWXxv4XIjkD58eCYetXfTB1GmH3lI87L1%2B2bg%2FTX9zLwUj0i4zeGkmJ5Jy%2BD7PBUelB%2F0nY%2B7ciIw1o%2B0tjboh8U8a%2FJLQpT32hiNIAULTzs%2FljjPvCZ6zfamZoxt0bG93JkgR%2ByCcnoh%2BuB8%2FayFGno2VTsV4%2B4MlIYX2ogECCoVrWFPzs8dGt9ewHINeSwQwZB5E%2FP%2F3rvyggVdSGlrpQCE5nfEd7pIkhHvnxJQNn00QZYAc2PCfm0kKjgDGVPpzTNWWswdTuzTELdSopbPUTXw7hspTCWaBsep%2B5KLtFNOAyhTppUWKo8tyNhYgisgmwkOOx5a4PIkJPKDwmwwqcIYiydkzrzeM4ReSJqew2tc%2BIqwHBtIkrm4knKyJflW%2Bg4YcUpF2SeX9pcwAIAhT12bryEeI3qfzyuOxsHNI9GEIRP7h9tfumULzFIOblYH3cynBtCBwtpuJj%2Bm5L8EIcHLaDTVFw0B3IgnJFh7Ppm0fWVY1rCx9NYW9LPolMz0jyCxkyHSgwTlrJkAmSVIEfZzc0O9M5XdNNBMez%2BzAzdqLMrRuj0Y%2FK7auZCC%2FWTB9B2jUNKX0r46IwEqhrnQ0KolkvUauToSOXA7UDG9ihrxVal9q1sHjdedFkv0S2Rzanntn4sLYdhzEHbOzg5TReJXkcb%2BkavpL8C%2BnEEHFTldmqfwAi2khjwlxPw6Js656mRwitseNTyw%2BWWy7xGqA2Zl6Xi%2BMR2ulrTXqijCQQe3o3wn3eDEYZXTgKEutkWBelQ9ePIigjACCiwPxOCwURAVMcmsIEHxq5HiAEhn9xsWg2sJDEaWjYw0AZioItsDkU7Bg0olASCFuQ8t8v3pxPGs7le9WvTdvbAO7VEHGumdawHYV9exTk2jJWLhDyfCrqFqF3iTlmfamMi%2BWXOY12izyngalDKqt0WzscyK1qh35QyS5RyBYHFGHAmHMU4ugpKkEO5RcQtaayUDDE45ncAE1wRkkF1Dsz4LP4ZvwlJgEAZWC3F7tbmwXrtv6rORpxWEI9IIwZGAxxOuHVeA5FvyyFQ4ks5YBjnnFzhF6srG7CAomghR8cw7LlRZ2QCzf0CKUkrkroVSw3M2d4FeLeReLeYd8LQqtGFCP5sPpUDcjABFxIaAsEHL4G85PY1sD13J2AQ2UtNWHCIrY0c5XVW42QYqkWGhSdpOwrlgehSLDCD1SBwzRRvyaJykn8U6%2BlCV2YHEasWsJjB1je2zqf0JGOkUHqHjCHcjQAy7HxsDOfXiMCGiZQaDVKcgQZi6vpYjK9tFeoujJ9dFhuLz9kiQUI2Eh0ogCGYy4c75DDgE%2FD4BtFIgN9HkXKkdyUG6ssmOPcGkNAugYAam8zfnQSEPFrZ0tKt%2FohIqhlbgUvkGeBFZcF%2FyvWUwXv%2BiCXjwa8kPIhmyspCGj7u%2B9QNbBDnyfkAUyqNSEOPitnlrcPDQ5l3fxjkBw6Fnee%2B0lpEJSVy6z7j2T9HAlKve7KNIt5YUIUMdlCHm%2BG8%2Bo5Efu%2BZpQVdEU8gq4UJW4Zr4Fn39ydSpCFYLZxEy8sO%2F7o%2B9VPhjM5JhhUnxs4AGOTPcvLDvO5TMkpw8sIT02H7MnA7qV3swEPCRGOQVE20FU2DFNIDAIGgSo6cTDag18LQoprEaLZodizxF8bElALE%2B3%2FTWvhLm3PHnN4GvlgxXLF5xqELE0McDFsvNhjOyTJOglv84%2BfNxgLh1BVcRQq53gAXpn%2Bk2NwkJnWqJ%2Fo1y4tPB6THk469E96UJK0lOMzoizUkLDZmTgFFagaAlLEg4dstjQhHGi0D%2BXGXtHTEPks1MQWJqRdjGhMlZYcbJrct2EEzayDHUzowqglY5kqDTogrx%2FE%2BKwyUBBQWeUgOEmUa0dSS1BF7dkMQWeVH6a8Qia4xjYKSgkpmG28eEMicCWmnS00YhcqnJCZWJ04uh1hdVdqqMJQ%2BVFmgxMfArLBIa4cVvLirJTDh9ahvQU1BALEjEXFHZibi7TJlBHxmjcBx9biWAChynlxuAXBalJOSHfB3YQh94o2oR4EwJw0I4GOHedw47SGuJESnXQplLWeKJSGuIa%2BLG7sbaE%2BODYkEA%2FSNrMQUJvL5RbM55nF0kjMOOZ7DKLnwDGQOok5ixVWOStcAlKMY2K3dNEdCyfqB8gUif2uLfAhC4RCEoGHjUdO0d1MG5ccDqC7n1TInb0KBEuYzKqlAWZbczJMt5u%2FAfo9QZSjIRvsMKFIWqQL9x4Ibd86pBRcUO87gtuRWgoUA8Cgelc9cibTeYFqdOnA8EWwqYt1r0IvylKwgouGHfZ%2BBR3UBgHpm9sIOBi5ovRp32HhlrquLi6Wuhp3wNhLIqP0xw3qIlEVnKBywYOsKERdvYEPZx0P1CYR4pjU5BU07J0GIyBVPpVWtsKbJt3TFx4p6Gq%2BNwBscUbWJff3EaF8R2TY4icWchS9s1AWmjhW4cSpxx%2FqWRjfYaqi7HedScX%2FH8iA4DxMwZaEURdvv8mIZPnBAlfoJja%2FEQ0OWDVGT1DjqAC2LyiYCj%2BEkllnXUQhAIOOqCyezOcyFv3kuynitn4fSlmpnProI6xVyMg7LkGit1FTEzTqdN%2FghvKShiS4rrO6UkvHzrW%2BbrTtiqsI1QEKkRS1HetxgIkpiDl0vvTfuT7QfEctfmbUEhupykj8Ssb0NrvdLZcqihedESXSSgFA8h8gSxysBwj2YJmI0vtIwAuYXQzC%2FwK6oHHXr0MAGO58cQ0Q4xxktqShW5kp2YklriY%2FkUzo5%2BJgEy8rvRANUVHxNkmE1WNzCFs67b1VFBGwqo32dib1e8mvh0ALOLYfoTEmJG0AS2fq3AscXuyWqBDPMkTryAmCXKN%2FtUuYZtrtHm7eTwE%2FEX7o1PADtagYPG54PLNkuXKl0szCEKoLRj2LcQINaDmJPAxUx7ngarJPOPXNWvKGqY2Sl4FSN80YUr4tr0JykuYrEgNm82onJbhxaU7yfWpNpuATGze1h6apzI9UJmDVcgKiG3zTFP%2BJxNpXpigyEhcFBc7NwfNHqGlPCUeqz%2FHAMVgmfsub4tLhRP9jzh%2BDRCslOLGtOIBhzGYCxPCUZkAJ3GlYt6F165Ga6ozjv57gOoTbNHy42zkvoA0rt8h9jTim7FRPT9OfVEQg9lCmACc2ZCg9frf73lz%2FynRC8XMW6ptT0BVB5MyjsQhqfU%2BshbeWZbagHKlS6GD3NpLiYOEJpK%2FgRaTH6EKvkjHhhnaUmuofC8CmoCDxlnwNfU8lpshJBQff6lSkOcANuHPBjPbwNoH6FBpUnU7Us0wK6FmeIQmbzVHBvklmhk1swiYAEbuESoNu7THoaDA2mhRaeNq%2B16LzIaX8bP%2BfLveOju1cJMjBh3y%2FUoriqWDmlj7qhN2IuslOp9VlSpJtWtGeTDVFQM%2B6rWazS78yCuqas8xeaAXHBqrgbDk0CbqKltYYQ65vsEc9EeG57iVtemZZkwdBqO7yznsKoI%2FZtSluPW6iute325xv2iJnjvvomcaqYrhc6ARLFYanrtv82Yz0rWyR5pdOCFhk5YIUqAH9ylxwDpginR%2BrMBL%2FFOyVtniYsC1wRGEQ3bcsJKr72UbwyLTWI0jNosy30MSXRRJF0QcwFhnMr23tAAK62pO3LJKg2LqOtvZMo%2BlFXmQu2eaIhzzbTK%2FbCOmeNK%2B7SkChTLBkcEd7dM3EwY0kirMnldi%2BZuqJVRQnVfahHSH%2FQlNFFJS3NR7Jl%2FivbPnzPv3ffFnL8sCUCETzIkKrtEH3WlhGzseaAKxFhoEaWat%2F92fjMYyFJcn3qZctG1TllxuhFyw0HI1%2Fke2ZFOkX8B5ubxYMtBn8NASjuBwUCGFU1A6G6%2FFUKD%2FLJcJEiJRssZzZPIMwkMgJadazna%2F8Q9TSYP4SfuRIc3IqN1wfKpXz2FS1yZg0iFS8lvqkVDtwQTAvWAjRD56salFETr1h5eIuYvvij0Uj8hrwC1SmiZUm6w1sKaOt%2BXZlU%2BEu5FskOteRQHw9UZyAZAEZa%2BMQrBxUEG9OCIJoN5dyMD4lbQMyY6Dcm8SWxeWpKeiZ7nWD4JPCgoxhaaHY1G8imVN4lbquW9JxiHfb2xUtfQaBlxIQi2lgJJRyc3CwbLmJOgl%2FCTCKxU5vRBllxhFId6dJ1UGMTlO8Ljo8lg8B97rp1pZqN4WfV04KeWQLxeWCB4xiuhY3m9%2BLUcQEDKEQhqlRMBKJfPN53sN17k8APJa20XRUi%2B4LdxnsAf%2FT9hKI6CW5wdTEAyh%2FZnrE%2BzXdvW%2B6L6g381pZzwI4hYoNqAo1hY4lLzzRWnZWWgnIo04Xn2jVK2NW5KMQAZKfKJgUcVEwgwjJdvzyPhU7lYgRM105EZNAK45tau0k%2B21%2B5BVM24TZ6Nk0nJ0e%2BLCBf0OnvDCokUQ7depnzXoF11oHkVTfq1WsiHFGGCqbQUTrJXGgIfODiykNmSmW9TaNLrVLaqVU63XM7xaEc22144znivD%2F4s4qA4JT2hWHAvu8N7FyOjsniZd%2BC%2Fc%2BO%2FOKxq43c6aCnSqK4KrUu44r5f2laDDhaH4LRBiCVC2nF2NVJ0ih%2FchsNbMEvjyYth6GTRiERyn%2F%2BEwQiLpqkPRpQUGirt1UBPEZrKgZviXIq1i2ir4TgeG4M9Bm7zImqy2dszwdhB0VZUdqRcqHATXNTNXa6ZjXXl5Yd6WzoB2bBwdZ7D64wX8XKToo%2BGvTCPx3gSb1AmCAbUVNxGdIwYCD4IyHqWBO7NMiq%2FrNJF9tkzW0pDtOKFq0Z6doIxHRU2cbALFTOr3CEjPTaflBhq%2Bqwt0GczSOCoCjo%2Fj%2BjYlWHjtRqBaMF5Pzl1AiwcEXMozgx5fVJQBjl0N3wZk11k2E5qAxhy8uGBqxeEpzcJSBhwXCSi7gKLU%2Fqv5APGYgIaS1cbGP%2B%2FsXCgAAKE2DqgmR%2FY6sDzs7I4lEuNMHK6G89VI6soKcmLyTnZw5V8gGU8Jo40vBKjIgyMvPmHDFbxOqlCUeC9cxCLIY3POd3SqSO57hJDeLq%2BCahn4EVPG0RPEvRX0w6nDCtQjKUXX1fsApzdNrLVv72tVjLd6eBlKv1KOk%2FwIUU%2FKI9Gs03p4sI%2FbDuKrY3NR7xjylywf7ryP2lyVm89pbGG0MS%2Bbma2xVeRgFhG5Gj4JMkyAYWJSMH5QLgJBIfCBKpxiAPb6m8gYGBYycTdQBSXwB8RrXAbY4r6zH4shW4skAxZOxOCIApFXFB9PnGTh7obeXl4rWsBYsSxP5OSLEV%2B45wTqbbZ1BHkev%2BhxrGhew9wrj%2BdmvQ%2FK%2F%2Flr5F2eEKEmHUO6I5RDZBOea9CLqxWVnGDEjAoN%2F3mCiW0BTaZN47EHrFgucUcaukIcqJznHKTdl8L%2Bgn9LyDKdcZefoKLJ6KPpul0VDXgrB5YJZcW%2B3dWXQy9ZE1O1kvxsrlWFLylfCBYR2T432ukQFkagUu%2F2a3gFlRAjt7IbB1FCuSBga0ktLBqvxkKZMMjbnRYvYLAQQUyfy7PnB4Z3SRWiDYcU7UIAJ88zrhn1tNARCoqimJk68l0RxBg4sAf24te0DoxVFPeHTz0QTUX0iqCB3V%2FtYDINmVwBm318iy9fkNOe1rJMRezMzcZcx8o8k4ofPmCggvfj%2BhJ5o5fB14rqRYtqwYIiXnaB0WJPmNlmOZ7Kxu67dg28gCgDBgauSgtFoOIUMzCzLgM7xNMNjKiIY6MLhLgmfejwtalN0s0fg8dGPxs3phohrguyGD6gup%2B9XCvHuHjzo5zTRFnvIokkEEKEpAg0GABSafJjZ9neWA7YYuGd0UjTs%2FCnWfrdqYIXPNAXISWfKSbvK0DssGxru3Z%2F%2Fpd6sbJD%2F%2Fydk0KtiurLGnajyQPQoUqcwHVNRDp2KjSSCPW3RjHEOIoMFatMSgAyspOcbshsk%2FuNXL5CgpHIODjYqfWzCSlqMjKkhtDdLY51DwIo5UNigLHwsI7bUgocXzd7ORsPiWNFXYpCvt6YhnwTjKp33EfBI%2FJhcWzhFhKSaGLiARd2qn4daAF3RTTxVLvzKTy8yZYucxY7%2B3TYDKzPNKphNzKJCKGYQYyJMfQRRGnMPRwcBRtUjwS%2BLgMimENECyZkVykQwiFgNpTvDCAoFMN2D5IyP8qSWHwE0p4wFW5%2B84gwk1xzsQg3uumHzi2bHog%2Bt0DsHCTTDjaFxeNrTMPXAytnh%2BS3RHwgJxIWZjcWsCphcxNpq3yEjDxcnrOPY7FZjs2lmeEILTeJzEg5C6WlnVRQhWIsfm4ELocADk2lLK%2FUMXwNvLPg7E2BUZLr2okSBRWSF6TAopdLbX2TmgVU9FGTchDOZgxUpQe8aQ80jgk9Zd4avveyzRvPb%2BuPGc%2BYAMp%2BrQ%2B3mqjDFopLODVS8S3dDpN558njHQisip6b%2B3awTggHk4rYnITANdRK%2BHiE46eTeITqBynJYD%2BpqUoYu1gHtoqUVXedX5KHKH5O1QaieeYY5K9%2BnjWvzR20FkXCY4LfNU4AmibD2KXwZEDV4WXlh3pvJwLV8EqCF69yRGQPR2eK%2FpmQZfwu0Zk1jiPlcPLEA0ywgRvDRj%2BA4XivcE0bJtbAXv1IgkT%2F5KQEgfAgfwSwGiXQXDlxY%2F0hHHFMLL2XbTu2gEVsOX0gg7huV1O3UlP7qZr7mS2T67As6f8tdZ9VJ3d7QeIgfneNYMw6E0%2BMhkBRChdZvzFLNEjBkm5HGRHxkL1TKDCiFFGAcAwAQJpwOMQuwvN3UvhTmbODpF00sS3EzseGZh4lXooiSkA%2FHsZfT2d7rREV7ti58eDRTvT2eIhnOemG3sxw4e9UansUPACiaiJzwnwFguGQVwT4lDnDDbP1ZunNcdvOKrQXf32MHJSRWJtUUW1TS%2F6i4yT8YaDSnKQu0MnyqTELOXmiLRYtYmZAcRdhwHuMcGAIUxQkgta5QTkcuQzHZor%2BRF1UxTbNSLTQzA4%2Bz9FmgB%2F4Ev%2Bffq6uToWmQhYYePy0JylIG0aMR0RHvAQ112WAJLktLKEtxA4PzUX3E44p62Sh3M%2BITgMJqAwOrBYhaDqiB7KRwx4KXlh3ncNOHQFNXTBiF4C1sv5nq2i89egcMUXeW8tdltx%2FCcIZoaiiQVfNXq1eO8ZucZdNdsWyf52viwSp7BhYrfc%2F6%2BGv9n0KVDeZs1VZLttvcVAF8ChABSvJS3wSTZNtYSh7SBCRECbaqcGkm48zVSKlHmaqEBnXkYWPGmq4T4nYGEdbihOV9gSweEPR%2FbCJ3bFiBLCoQk1usvQaeqmF0QHdsRTZXhXoighsR2zuQESMFXd6bGKbXru6pMBg5oFAp6ZZrUhG0PmGVBMTBZjaW30oiUDHC3hfMKSuEYeuXtnVFHeWi%2FGb5m6E%2BUFrfMbLyn6VVUhVKInhwQH6KLdGuEPX7hd67Z5eBYhOnAz7j42QHMZA8FobfSme6nSvIxqOITREv6RoExoQoGEng1nknWpx04FkqyebQH7VgWMcEA8fl8aRLDWgUDNmgCS5cNZ%2BXd86IvTonDZr1ShAFdDYt41ZJIzGe9HUP8wVaALmp6gUYk19mN6w8LXbHfKKjfCRRGB2wyWmk3zXc6SPPMjq8IFps4ektwq3qn87KFYJ%2FEUqTRLZNoOovkAuuO8WEDaOZdL4bPHOvJzNUq5DUkMhlFoaKf2JPR3hgqNYlSIYLg2%2B5KO0Wxqx%2F%2Bx5sqS4PCQ1ZkuOewOzlxt6%2BDJcZLVGEeoFuGmDhfMRPy%2Bj%2BChTHrF5ufNcUKdMu%2BYED57DhAJrNNsKOZY2%2BGcxkIcAZvfGgQgGDpLA5jjeSm46ul46F4WlegxYiDmGIaFzBaUiJp5JCXrrlRP9bd7KiqgtX7vAq8VO6r8AsgR4dxjC%2FaSHSpSwhxehqy%2F2Jbm8a1p4fZwsDLSiRVh3SVHkRARIBA%2BP1qfQNRSSq%2Fw4thQniESbSXGm52KeWNgCb7pEqlLpYO0AUxN969VzUmxjL8PV6CFwvNGfqq6uAQAP2Yjzc0lpWFdBjQT7hbugdNvPLTj%2FLPnLLzoNOAYHh0scswj36QT%2Bn0BXhGn38%2BsPz0vFp3N87YZ%2BftAEhPx47XlRGhSQg894d6u%2BHoc5WWIxB0dA7%2BTFN8Tdvx4mKmCMaiIl9NzRtGMl9zB8pZ8nsTQvbSNS5FdWzckWhfY26wtTtKUu%2BJfhpE1dIkaLA519uUdhz8xrL0XqKJdY3ZwZylVtOkCCJmxgFejMDv7fCsnuQiFPTKRyTWl8rJZSm3JpS6BmmRFcHZli6ShCnSwhRu2NhKB90C8zx%2BWj7hH4EBSW0gMgVobzRE98Fqb65q%2F4YvZc%2FlCKbbyPJu0ZhUhcW5g4Vk4aEhQ9co453B06%2B2I%2ByqFqtiqJo2wu3zSDLFiSoVVwOo1R3PS5EpwsKgJskJGqKuP5dhSMRx%2FlbS1c7vUwzSXGKKPcLPKrvpV8gVXV3LBRecD6A%2FKjIZgVO0vFCJ2Q3d3jBGzoj4ogctHpZobH4YXXVdKd4UDIyd6sMae2k6A7FDuLgd2cHGbyQjdHcvu1FXm9IpWbH%2FIND3HwZxgJXseXqp9q4iHx2AshtED7ABpS7CXDW%2BPwFwom1JJN1ZiBua0mriyZxoXJyZPZs0b3APsBuXXd7MicCxxL00jbJsAY82zwMk%2FPLabHRQZIbTGSF5eT%2FleoC5UMfhQDxOf8r%2FdDwKm98fUEDNfePGbfzGukKjmELyw15P1n8v6%2BxPt%2BQIDywkUyLkuGV1U9rcp4rpEFIX4UzkWkQ5QQncwhFu4jskwnlc6C0k4rm0AhgjjV0M08vuOj2kIGWbdwvd262bW0CcNKgOgQ5ijQ3uBfgm07OuaTG5XHNpXYn1DKECI53XBo3q7fAC8CufxdCGI%2BofkCP0LrMwTW8w44sfPDbiT%2Bs%2BWL2vvRCxNo317EYAuikQTWP9UIOBA10WsaACIgIsA%2F9FaiaOpmGl86Jt2NQ8CF%2FX2Qg6IB4FNRZ41nGcYMs%2F6ze%2B0I9P1vJqWzoxHhqN0tPvyfIzONPk9yBMxkZ%2B7WG8UYrZXhHrYLAEQM%2BocgsPl%2FUXip4QpSYbTwvx2lOYcbkwZzkOngxuBmYld6hTB6RJEKM4CM2SRETTGFKKmFjLojZAJgCDMUxpkEvEiQwkFJSkUWo0FRzHpMIlu1I%2FUf1b25roaYV4hWZyK35gfXc3mOnL77WE7wrjvtSDwo5DKT503dXUHgvJVxsOLzE7ySC8wrKKO4A9slPPTJoC04%2BPK7xhkKKQ1pZufotoKitjuQbfEGp8yymrbd7CUvZnEYB2d0jizxAMTyxYjnp2I22pWEBgrh7YRUay8hgYnbzkcqh4TiYhhgAjpfHUic0BcDRjqzdJosS0tFtMISgO4ZplcufdtAa5kKg%2FEeKA%2BZ97t0jbCJaT0xpXFOOJtqPC%2BGIlZAk4k2CXYwEcTw43QxGISjFJFgkbqxziYA9a3OhjiYr9LDaQ03ND%2FToBcuZtoZwtU2ey0TKxGCP%2FyfCk768Y4dc74QkkEcunbOu%2BiTVmTVGEjwhqooO5XMu%2FhO6GVAV1bew4lYP82qQH%2F15pbDqg2I6janHz8arvYCjtnWIWmxDflHGDz%2FtycRPaYsDA6v131yd9oCsgnbmmjfq2mKWJnVya9EuNxyVU1H1V5AYOCzMGhlxfbkEUHYDCMJsSGOgqT0kAUTF5Uy1y8s3RhWTYbXFqYQeSxJpY4V3uhdmaEKkjg2Q%2BOOw2E1fSCCDMsq5akFCyrts8cdQOMEr1tliBJEIe%2FiIs%2BnkpJ%2BhDrIrgEamVF8XbR4Uw69VrebR%2FuyUWTKB%2BS%2FJpRI7LjPMDvPIFHZ0GLXZTXr3iJ3CMPL96HVs%2FYOqMPhqDeld8CXVzesWVhvDiAjE0KjBQrM26u1wFXEcWuBa69jqi3alU6WPtJTgT9YDY%2Bk0lBm91NWAwmo5N70xelIKwEsLakuGaXuHciEWpO9VEIiDvHdmYbV5PdVrvTZmnB5E0zmFkTCA%2FilKvsS7QWLS4CH5l75UnJsC70uNyAEAixGH8gFytUC%2BQXTJkSwJC5kTIRG%2F%2BmwR5y13HrmCYhME31EX0d6tX6dR17Y13IRguKuFuztkGoqdDcN7VeVuQ90LUFbouRvEgeg5QTLI2DWIi1SarTIb3AUZYS5YgaNUQHAOBm0Efqbu8vLAJh8QfJ4uAhN%2BPP1aSWExTSF%2BQkrFH1NbyFAfyLPvBzt%2BORl7NFg7ziRKjDndNTQv41O5iA3X8oSlhlCAtCqyyDBe9BkizOhvGov4ov6eR%2FZb0OFUredRd4sitwa1x3qgX1vQ3dhI9BOZ5qaLh8kUztMOm%2Fq0VJ1sW4GvBbckpqI%2BqquI97UIoYk1NeY3IBPuagEGhYA21MApi3kBswQVFsTJRHhpYH49CT7tzX0i0y%2B0aSX4y31ke%2FYnzXlMZAGk38BRJPL6vuVjWxYKzWbHDgk2BsCAioTuavRULSHgLieZzgbsxPNWgsTANSYLpeZLjLqks%2Fyl5Qt9JjP1T0et1%2F8b3cZtGyAyDD3iTIuRIXMWkSyiGUS%2F2eo9oboZbL%2F6JCQ3Mnflr%2BcexMZJMB1zcjt1Lyy4CsLWDpnjsDaUpoAhtiXxtsHwB8g5t8YlgdJyQ%2Fz%2BHn4eZeLChmIgU91VIa1ZYDIZp8gYlKfTf0e3r4cttsdDwI2LGABFmOYQnjVkPWtDa09jhLXyubwMvbMAhqFGJ21aTdxXsfONGsj4gj7OE2ecsTvKw63AZMZEM8OXvxH9gU040TxtlyB75JQjXBupmAy8U2RNXUX4P5u17nTB%2FcvK5YpZAp1jAbmHJsuIcNkmFEpcUPBjJAd5k%2BnbFQZwXWmGR81VIpHwN1IAb0%2BuAc7U4exySGA9j1hNwzWXUMk85GctogVsBhRMVsqmikMKipyIhDPosoBOiticbISCkhKW0hzEdtW1%2FALo0LUtqaU9iYbG0GtFs1LoiIGHyrrhBATk%2FFAGZn4pMYH4QgyNLpn9%2BmKZKOzm9UfMAuB1Ap4OOEAXg%2Fz%2BZaO6zzUpRzH49pKkZ3fY%2BCcCx5uaJoNw%2F3IEHXhkQSdjhShf8REKuam5C%2FTXCrNA7LDgUIleJhJJe61iBq0szcznPf9vsDnT2VlyJCoDb2WZ2JHwuKR%2BQ5e8o4CclBKqinYwDROov%2BbKSOubBjIbbmPaJl4bHZrOHTcvC4VMDimyTlBBa9ILHD1pbJRDtvuMdMHqwuyNxCKwhKA4PHJ8HYd0%2FTyn9HEvSTxOnoipWgeRe7CtZEqX7AN7YjfaMIm2BnRZtaUDNX%2F04LYiKf9PNGfo6LhHLl%2Fv%2BWSzldGF8YYX36NC2A4aUoLX1cAgRNCi80UOD5vguXyLjncW6R9jHSKrEXWVzJVIBnoy5cgUh3BRiad6cr7zrsTUGeoWc%2BqAZhgtMwj4VOmqirVgD7k8G%2FkRzrSphuiW45OwjijyQOSxnYWPHkWNizhlgQ3XZBpjsTphS1R9hHzt09tC60jm%2FjwwZsoutXOjBX56NdThgJGJbdROgLku7HyA6Snt6w3GUYM%2BJpU3LwMhJJ%2BKrroHj%2FexRllmpI57SMkypnRUh61rvMkytx9SuzRbBao0vSXZFgGReNsZMOgG54bqvnF%2BqEnfDyt6iQRZjbVTYWLsGTSNf%2FqWZQnDYThwIaeIxVutwoAUoV0dEDOWyKC45WoMCAgHdJZUknUEhIlS94Fk9FardpQ9ARRckqiONZOGS%2B%2B729%2FIV86w9aND5i1VGxkEzNK%2BZRPcPFsQHW0je%2F27jiaX5KqnprHB4JuSNii3Iko0V9wwfd78EGxZj5Lc5AQDWttTaJX13bNJXdqOV1pT6NGHQ6Y3NHhGhBFV28F6onHG0jXu2BMkThFVo1QQDFqOmUTWQYpEvtpCTeLplo1VQBJzJvz2MVs3ElCbQ9RIPAZ4wGtNy8cbDQaWaXyhs544NUf0pABoRrONV1zpgqOJPfS5i6naIN%2BAsFGhC8M5n6fnt1CKutecOLB1J3KmNGXZ5nFqdxfLivdiRLklCPGoJMILa8g5Axvt2GzdrzF00g4weGqvNE693HIQAJkeA71dVpsowtMNcastwWV%2Fj74lcVa4Cypp00DSxqDxn7bXuj%2BPDEa5MUiMEsvAmAOFxaONukWcXROhWmKZmFm5fdWkGSwwssV5%2BjMej%2B%2BYfIkenuQITAlOCBITklhXy%2F0%2B4kVLSEZK3rci5wJekUQQBEK5MxuHgXCiVp0Uzxh8mP4AcGqr9fj9H9PKSJ6%2F9O1BiOnAYH63Y3KhrGnzAhpwJqqzgTaGOb%2FbXai%2FE%2FYPnBwn5hOJ6s4CmO8%2FpQBIfCnzvuiXKnOqamLaULpP1pGYOUYJOzypBS8Ud3xzAsfGW5l2F5Yzkz1VyQ8h0daX4mY4W9%2B%2FKbup9F11tNa0xYl6BpgJR%2BXpj9T1ortaiya9O1qrLIjU8dX00rAQbHl5IbzYE1erNCwu5GqzrDYXB75bkGRnY9AHX557CL9hk1h7G%2Fo%2BOHedxGZda5swQNiXncf6vxAEZ8u0QER9ECJydqK%2FoxIId3EbVFNIaQShZcBgK7HcYxs7H2nYN7RxZyj1DLEi3XUxXBMquwmVQT4X9pamXYEPodil4VXagmK%2B4p9SjVJrpsNK1YuEtl0KwgWpyC12VFEuAj5XuvdQUO5FDWhU56FbE7QC3nJGHTOorGsylfhXDLtsxrlFQyAyqZm5VJImAcRgkn43CFa1CiyADUtpDSnLtcW7c7K2uOHCsI1LRDg7b2FOwfW0GzELX9lAu0pXX8vyrnAeVtSda0iNSBSsovZQLIU%2B0nE0JiIeMYWAXAGyLWYPh3TCjXGUNMOs6OEGr9F5cY0xf2hrk4L5pchbzuJq3INaTghc2wXtIQ0ZYn3L%2BKawmcMzoZOWM%2FgtT9zuT1lCoN4epohm5lrVAIg2n%2FEG37KHQvUN28lj24UHJmMF%2BYfjlNMwFOTPjKqxK%2FQHztlgovfgcOJfMRZu2fa7mzadUZxFWppwhTkU8cW0JoZeJVmrHFlsIWcQ1NrPF3y0r6hiSdyxn%2BgkkzvAzydSCXlBhkwbJo0ve5zEAoqe1q6MsmCOJijLPde4oVYG6%2FPdxt54dThuMOJ%2BwkXSpm%2BDN38iXVXtNk8WgiIUEPaAdg9r8oYkJcgRsqPZJS2fisF%2BewB90GDrKxUC%2Bk2z6fpstzPan2GOGiWhhiFi8xNgcTy7LZcvzy8FQmhJ4YCdje9LjSY2wL9stgYBxySIH%2BbXlhxaXBDk9yBQ8rj1Oqs%2FZlegxP2gCHIxoJiW3qftwMLGA8xNaAai3DIFm8cF1VBAW6jA1KYQMOM4Asdf4gGHulCwCZHcREBqiGywzPGqwScAG2%2Fj8jUdTBXoRK4iQWo1p52YM36uItqaAxAqg%2FHwFenQ49ArANNS%2FwNdzE299EBl5uDgRGxLQPzzIWIPjYQ4cWB0%2FnkhOkly2kC6iioAevCPUzoNhsoB%2BihVDgY2QpXGWoZzoJ8P%2FpVNrKTp6a28dMwqqxpzh38KyGtjER3jE%2FtL%2B1HhdFz0hSU5nQH3cb7NU7O2YrDod%2BRGqoZmnpzMzzNLOPMLvsh9RdmNYIujnswuGOcZT1CDSqsE9qWaS1BXaIjBjnowXeFEi2rhqdQw1uzKBv1YQWR30au9g3cGEWa6kDnPIa1JHZasyLI2swYnqlaSA%2F5WcLekH9JwSTdV4j9KqBfnSJIVEJGuLeQt%2BwvDn3cymKxn6yxhDPIGNUy0mmCAzh8HGGUTiIOhcNVWF%2BwF0R0GG5H68kJyxdPkW8UlFpZ6VQd1ivqshhUNlMYubig9JluK%2Flg%2Ffd%2BvyyQT7zh%2FkdG78kL5HeiVMkzZHBRJuTYZHK97yRZHKROUxiBskBkShnWBhdGNw7qMDsxMmdNjA4bJ6S9IMEHmJ%2FT02%2B4Cybma%2BA1MkIl8lERIgJH5LTi5HjrF64HsZMkakvvz8%2Fvj4iiurHxm%2B6nFa5znI%2BLsQkoh94RbO%2FbNPnvAvWu9XQR%2BGPzyQ%2BuJH4ONmnnzK3rVPmPBk63%2FJ2tUq9aUAbX4YGRAMIwYsGBZDzCYdkoZGv86N14npp%2Bc19iJR8n4LDA16z%2FE49LQuEqUDM1YesPhHCWqxjoQreYW6t58HsED5wgEJ0%2FwWyr3rHQ%2BZrvOWCSzmAqxogHC%2FKP7%2BMrUEn7zBBa0qJRZgusGpVDMKOcEcGdOM1%2FLLlDOIYBg8MIRywYTPHgGE5NIQIw1V8baq2keF8DpRQlqv22P1jVU5COkcMX7gutCF8c6J9fhUEQjRAdNUAtlX6mszds8c21PxHDEEpEGRKyFiQP6kJTJ4jGYQzSOZXIQFMjxIHCIUj4IVCKIh4IfSGjJvPDsj5IARCKIKRA1IA5HaQAC5rmBkYrBki8IFw5JHFg%2B%2BPR5OBtwHbj4QdaD0EdHHXDpg4YGFAyUGfY2HGYozMGgI0EMSjMYaUjYUbgjLEYjjMcaMCsIrsLditoukLWC%2BYoXFYwqqFTgoEFvBYILmBWWKUxQiKHBQCKMhSEKHRQEKjhVmKxxYeKZhXsKvhWwKUBUqKYRaEKiRScKeRReJMxCQIsRBeJHiNMQGxJiJXRJKJTxAGE9AgDiZoQPRLOJsxOkJrhISIlBPSJBRCoQpEsgysPmh78MTQ7OGjoZghmwHmg%2FgOhhjwHmA%2B2H0gxbDBoNeg61DzYNegjZCPAIGgjACdAI3QhNCcUJVAp%2BCwoFbwcDBMAFGAXsD2wM7gwUD5VgApn4BzLRggKZAiCPgwoPqO9IVRBogXIF6BZwdAEgg%2B4P%2BCiASaCPQQeB2gAgAOgXAA2AJIA0A3gKYAnAcQHAF3AWQE7ARwFwCYAHgBgAjQHmBhi6LmQA%2BAIEAlAYgEcAwH919V%2FI32L%2BGfYfuf7n7b%2FR%2FW%2F9Ph%2F7G%2BpPpr4M%2Fdfe%2F8P9k%2FMHwz8SfBPxj8gfEvwV9F%2FWf2P%2BG%2FMX279a%2FaHyh9J%2FKv539D%2FJnzf4XelniR5WeF%2Fo3zP8EHpZ6q%2BjPqP4FvfLwK%2BzPhF9Yva33C9rPQfyQ77evrph0q7X9MO8Hu36JnbD1FelH0vu5rn9ya8GrmY56OdTgscB3ib8o3mbcWjhb8NrgRcGvjWcNngm8aXiXcjzlwcV%2Fls8J7aIbdW%2FS3Qm3y37xSAApos7H9wm%2F3afug25bets%2B9DZB3%2F7BW0Rsn7Hmwdv12CthrdrsbbJI5hVQo3IFxcOuwE52P4MRbgaZwNQXmUbzXt1g7dbbtt5224rTOtmOpCxG9sRjysIs6FhLi4Lk4kBR4nrIVyfwmXzjIuNxo2IQHeAURzqdhsAWY0idYBUq1ErrGRQAHaaAkAPA8QhHMhjnSZ3YPZmibF1TyhGp2poMAqwDzmBYahVJtBZYiSIzGplfUEIYwbhHZ0V7IZMo1fUA3TgOyCAuBrzXZwBo5JnMsdJmjzjhYAaGJ0%2F4MAjvP%2FdAPmGZv%2BB5FGVjysQuoBIPF4y%2FQHSbDoupRGJwtBCYd1jgujTiJ1CLOEVUYpelEfB6Z2yYBP7Yc%2Bx1sajOcuKAxgctVGhY1DkdssZjNtlhaVLP9dwTiUwMBUsAzLIn%2FrXfU3E533%2F5Uv%2F6AAAAheAodHIQgfvhBQKhMopTUcBAoT%2B1fZ0aaxnllAUHaKhEnYVYaQRw2IvCdgCCCpafyCSSDWFUpqXRTCmdbagv%2FrWR1s4Od%2Fsq3AvZl3qwAMc0oUELQUfkpQ6AgpkKbwjAarls%2BRs7Sd%2BlMDAjQMnF%2FCfqlUYKDYCLShqHZowYM1UdNOk%2FpBwrIETisaj1seXxF5YjSoODaO%2FOPVyiKUCYmujht3OTCHZ%2B7QdbjOPh%2BzMz4cI1MC2p35GwQbohDMIkzCQ889OZQgB6y%2F62xp%2BRIQpeDVQB7RAb%2FwzwzAPfBkD7UfQFYv2eZBtQvT6E6qNwqEor0BrD%2FZ%2BndwFsS7AYaqWBkagbpi9m4sXUIwU6iG5qIoKX%2FOCewjBK9Dd5qAE%2BdX0ZhLP0xlABycEA32ifZ3kYrmwDTLDlXTDZEa%2FREvAZzgVbTaXhkWSx%2BmOlRuaeVdajSIJRfNhgkwflwJrpigaevFDE3G9FeykxTDAEnYB43XDJk%2Ft9lCQHbXFliGXdYPGtoK8SzXQxpBN2bOE4RsmH8RGt3uTSa6a5PA9WDvCK8qCX%2BiFMxLMDk06I9ba45GOiVz8vBg9rxeIpN%2BYNP6JaCJfnD9IEYmwAYFW7dHDmjeveLF49mkXIvLc0AvEKG3wAgDFonPrAn9OfyBKevQWyzeLVyT1W4GJlH4teUiVvU5x3UC3IqGfhHWjo%2BYY4lPPdLmm4cphdubCvaOIygtNAmnkWWIsehKBAbAxaKL26aZiiqMtrSL6Fp9JfiWIg3joS4iPCIE21c4loUaFwD2ZfvCiHwJkUJ5NBhFLQ918i%2Bvnl15IHtNEaqwBg6qopE3lPulYlrrTaa5otLFIXfGEchWmJWYE8y0C38IeFCVsAVmSVhlXfIX%2BdqVFzWJ5iluviBNJp1tfi1SkeA%2FqVpKrWE2EHUzl2RwSjN1UzGF1PJyk7ODz%2Bp2%2F8%2BcwooeMS60hJ1u4pcKsDAIt5sTgSSh166i2dPYByS0fGkUik%2BiAaU2qmZocS3vw50IYThcH83gFoy2TIrtz4PAOv4bysylnelD0BzW4RWGBvJzlOfITiwApKt9PqJVaeHCDO0x2SI78oGN4gGuq0C5UtYQK0z6sWh1SMbnEyMeQKemx5A0egRqp8XRNiMHZLKM3evxXNPTJ0FJT79ZDwgGT%2BMhlVOdgif82U8WybEYGZMtO4jIs1W%2BQmGIHzCcD63pcA%2BsIAQQmzRcPnyoKROmoioNN%2BZhDZY%2BHAtD5fPw9Ejw5cvuyKFKHlYepDoDSVYee76Hx2BoY45RWOkrWl%2FyqOLu%2FSuDH5yRm0dCXwlY4idK7yugkhxl3F9PYq9B1QIRbSniw9tGL7kp%2B3R5ROTuUErJhYBexmGApd0Yzukk05YWD8%2FHKXyBxAp2mwzFRMj%2Frm4k5J%2FViinzcOlA2lUGEi6VAWdnyOKz55AZpsauYG8eaAwOOeIOPo1ECBLla52fI7vhhTVc0eCi%2Ff5ddHQ77VycfuK7M5Rei6YmQBjExwFAd4hqpngOdD54AQ5CDRh4ogwKsmFvx9CrD1C5F5EFeU6krErKmCQhfeDpi6GDp7oiyBRutVEDZgGDl%2BiRTRToiLidXEfqUH5bHI9YrvknQO6i3HQScPPiBwtQ2ZC3gT%2F8Osq6sM6dCc7nkpWUY2bhciccU3fwlEzh0PAwI5i75Pw6UjV4ecOR6NP9OGOBoZBnSbHhymZT6XG5Gmj30L91eRucasGjW3bp5fjY2hsSvTXTcnTjFtKvjcwWNguNg7%2FbAbIsF6kidJv5qvNeC3h2Lnx%2BAZ9sanwLqxZhRCYqbNPIjnMmrjtuIEtU5xGFFbIrm1Udo2hgSDMdC1zPoKgaqDU583DSUCXKfb0hZ2eC%2FgkJKi99qSsWt3BKZjQhHV%2F6Pm9sqUQbFQ1W03uHEedH9qSQGJpLoyW3tWmAtjAkRBFDOaRo5%2BW2oudsrV8OwJJAokwTsQJBYgNsgx5J%2ByeIkI4OxeU2cRUiVjHZNpa5w1ieTYTgJT44nZ2uX2sFci0ri7ls0iGZhSQzCxFx%2F1seF0dAnVBq2pWAwO0tgP1BRkQNVFIMkB80H76vIDJdZ8yzaOmFD4MuNaTbNYwnVMsDzRcF22am%2BZ3DDYiLOnlgYzC0BMgaLEV1Cu9Wd%2BkFU1Vlptl5VYAle%2BSkWtLeO4UJioeJ6D218CSYJCikWakpsFrTF7E9RcdoGgQYkAFPOoWU9RRD6Apisje%2Bc6T2oUR4jPg2QYvf1YQBK8HcICIpdoZ52OLSPgORnewJgglFPoVHf9EIGSwoviUnZW63CKybMkyJSfHjCuwGGCl%2FfU8%2FLfXgMFIWL2KJ8UkTefGYxAsG9DcUxmKh7uj9TEkCzFvH9MEH3P1TTlf9yvnikRJTAErmGZ05vfNTpjLyDOE65bszczwKARoIOCYH16g7S40G1iKwKOI2QFbMHkFYNY8Qj7Lb8wZ10pf59C8TghE4lLc3oX%2Bbnpgki0LNoss%2B8v92%2FqV%2FmvfaD3fcHZEeuowADPDN8uXu0nbnX6s8Lo3nyzQufMC48gLixAuHCC2CMaV7NC7XHQEp0UnuXG9QsvL6g7t2vtXxs16EMyOxXSIO1CGFoELeaFeaFY4BZo5175c3SctWcVq8HIyGTSWHcwa7v6uBxWjfXleRVMJGyt6swRMPaxGzm6UKw3aKxyKyDW7bGbNmsW0Vg3FYqlKkVX3K2tqyDVRIIvso4IQdeUQa0Ec9QkxVYVpThWFIEDnwq%2BZCrZYKqJWYMWkrSeAJQcpQsfNUt8PR8cED0Xu22eT40LPizs6GCyoULGgjsTcZUsZBB90eQ4dMNPeDpsYOeMHK%2Fv1CPlt5qB5gg6WA6RBwnjADsHCdcDCE0ihG234Un9ZcTwBBnA7l8jNTt5quqWOETFPrFQC7Ki5bW4FrNfrNxrNpBYtORJ1TrMIbyJz3YQ3kTjuwhvInHdfDeRN24fJJz1TK82YF8NRp%2BVZUVbalM%2BBfDUa4lCZMC6Go0x4F0NRognyinW0yY8D3eplppcwYFGhS5fwKD0lT2jxBHtokvYCPh41poctYCE6hy1gI%2BDiTuhSehW0CWsBFwcS0z2WMBFwcSVsBFwcSdj2TT22eytgB3B7aB7aT7ZTdwEqeB9wIB1LAPcKJbPJRwW5A7s06h6Yj3CiShgHuFEnI5k02tmknYB3hRIgaSdgHeFCk3AOcKFORpJppbL5MwaNqXWW%2BNWZxS2s74sxGaaGBA5w8Kby2TQlIy8ZpnQIHP9CsMttAAImq%2FFJBjn7hTSWSYWUsVyRgHP3AsErkjANfuBIuAa%2FcCaCmSSilCWRMAz%2B4FgElmE0fAQ6C6IEwAAAAAAAAAAA%3D%3D%29%3Bsrc%3Aurl%28data%3Aapplication%2Fvnd%2Ems%2Dfontobject%3Bbase64%2ClxQBALETAQACAAIABAAAAAAAAAAAAAAAAAABAJABAAAEAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAaqaIXgAAAAAAAAAAAAAAAAAAAAAAABYARgBvAG4AdABBAHcAZQBzAG8AbQBlAAAADgBSAGUAZwB1AGwAYQByAAAAJABWAGUAcgBzAGkAbwBuACAANAAuADQALgAxACAAMgAwADEANQAAACYARgBvAG4AdABBAHcAZQBzAG8AbQBlACAAUgBlAGcAdQBsAGEAcgAAAAAAQlNHUAAAAAAAAAAAAAAAAAAAAAADAd2IAROpAROtAODEFM3pjM%2FSEVmjRApN5UYeAHiZoKQ%2BsJvend4XEADGjylbHBQxybVI0e2miS1BKUbg1dmcMYlml2mXhSnXulUZJ%2BsmYQtuO2MpMm5iJLwnM7TdSlbkgqFAFuqvlLjvq3kBfIz5DtDqW6nskMkTXEGwWO%2ByRkNw4RW%2ByC1CzISKsQywVoTcrZ8XVV9eZLVWL6IO9LjWB6f%2BSHaAp3P5cng578AqY9JOJV03MkbaYsAtviR9Mw%2BDKj5xNU42hGTni7J7KsDa4HElfcRC65JIJIOUGxIaTXgDjXvBwwjqMuqOnwp9Dba1ZLkPIZT3rqy50n8g%2F0MIH1%2FzDwkedYMVhhtnwoOWDkuZLqR%2BGAhFgdjdeTofRyojDU90B8A1YXCCFAjvs%2FxP1OnSjBSIpgUpqQnOANCpP0hWgEMCmWmBjA5gg0An6QKIFkDBBrGiCDiEiiijCFCjikCk5UVlsWbUjDadnGFHE4iko3UQpj9lJGsNRFl5CN1D%2BL42BPebJEZMZh4VlRrDVs0ydrLjtaZVa2yswEnr3AMmuBZczrLOWy8qxWQGIZLKIBVsIDEL4UTgIBBYFsyoDYhDSD%2BTZAMuFYAJfawI9vdYQoNzBJRIlCdfuA7aDgc1IJJE5h3ZyTPry7yzGVDIj2pteNeJGSCChkDCBZQKBRCilQCI53YehnutS0npEUq5VtCVNPHKcKclAalR3fRILAeQ0SDCvkzQ9HzR%2Ft2NFgjE0DkUwaRAF1%2BVTlMlFZqIM2gO1LPMq8pHfEW51kggb8eZRnqco7SW0mvFX3bIjTImvLmM3eSFkOxax9ua2H9J3kk7FjJIwSGGIwJuUjVR%2BbqrPllUqO8hhH7R8kqmWmaWPHPUM0s3n8%2BVwVIvL2FArLMLlXPGtSPmMicxOaIf55SoeZG%2BLytx%2FlQSLGYS0k%2Beu1%2Bx0JqA5NcNcbLQl%2BUIkN9%2Fm9do%2BJpCWJBSKTz%2B9KgLJm3jCAG53yiiLq1OZtLqBwwMutFCGVuLeN4z%2FcXmeM3gN4pCtOATbkZK%2FBf%2BZdGbGw9v94wf0%2Be5yztNbJz5Pc%2FEDijiTGoPEjwsFpXgKDRep1GcOBvTkpFAN7ad%2FHuD5RJ3w5uyLtRWazrgBqHASCBVtF0qC65DS6Srb7YScv5aCj1%2B%2FrNyjkqqzOtmUS6KWXXZy6F8JBw6JOytxdRsTNkZKWXBAmCLeVAfJW6nsE1wSpgtzkwIMCoAVygUGccpUX7EEV5r4q1M0wdrEOb4BDGwMfzGexA%2FJMuH4oSrAgk8AACX3A%2FQOYdSYzdd8oF5bwE3mezSAdQkie5oJJLSV4e8L3nd9wkv7wunB9YK9ek6I3I4SLkWQUAVTAACWfdnHlJoBXHOCOiJaqg0mAFtDMr7v6zKNCwLDIYsepmwjlbmhwklgkMAzipdMQXuVt%2F22jM9Han5hULMi%2Fvf4zy%2FoDkeCWbAU%2FkQHQB697kJWGHmnxcNv4Ym2gDBkT9cJSRY7DWVoGIG%2FwEQ8S%2BQBtM%2FDHdROzcOW8N5K%2FzDtb1CAyAIvfV3DTR4TYuMTYUUKIMyKdjeFRGSS4hQkUo5MXEfpcvr2QFkQB%2FesJGLpetbPHHrT8kYWUjlGRBdd8rfkdxOLTi5gvIDJ2qZAlUilO5xGKZVGJHSDphIdV51qRCgNJYJR9%2FFvzFwc4OOXB1tCkCUfvOtbkHyYsToYK97mMozcFEU7u8uIibwjTpcAnn3%2BkwWO45CcCMit4%2BtvBhxIMqPDA1YOGCmcYu5Ay1YYGh4QDmkGmREROEnUBg6KlV8oQdwVd%2BkHEO1gXPw3cmKhejwJErEbMirHe8zDPsEQEG0IsFwqfFwYesumJcwVfONK%2BIyZY3iynb2U8lmmiz5wZBhhbAnBc1PmWxijAuoFhBJSNEII7F0UuadfGV1H9gUJpP7bKIdqDkeZEUEAnAAC2DwCmoDQxbTcswxjB0lOIKWiGY6ZhAYWkcZSHKZr9R2R6NIeHoF6bvYBAkW9Yksy1dz%2B%2BqZa6i5fCcFClQ34iUwfIe1%2BjrX23KV7HUuVhK6CTuCiwkN5nNSx%2BiDnWYoDJFST6plQ0zSHO60KOSYw2Giij1BxDKtFPenZxlWVVo2t3PDOcyMPF4VK5wTtdfKRr1u0VvSgBIujb2%2FaYViV3ufvDyvbszgtPQg9y%2FqyDR6MOJjOm9rDJoTs3NfxzA24Z%2FF6Pl0iJtKTuibNtqpJ6%2FhIIuk06vMurMTfhwEjYXaseXUB2HXFPV1SkDLLvV1xXgR3EEPGm%2FHWMqCCqIHebzv0yNzEAKWQaNeOn9RFjklYB7JdwiIduntJZxbM5U9O7rOOrJDDQ0%2FAM2i6ESNIgzpW91OtfYbai%2FqoYJh0MrT65tdAxZoQWg5%2BAIXPEKY7fzJETfKJu5sjkbvKOYtYG9B%2BEmffQYNPcGRsvZ5JSbRYugA7QAumA%2FyoatLhAQXwHDwDB1D93WSPvjef34PC6W3wyMES2n6d8fuj%2Bi6m5RqBXqKZAjVJT6av9rHYa3EuDop1cuPHdWg8br0DtekU5hgQGDDJ%2Bxg%2BM0equQvwD6VD7fDrSNucGliP1hgEl%2FYVeXsyoMo9u03vpRX6Cy3RwrRGSCeSBzdgkEZCv521%2BNx38IIHBbfpcHbS0WHxR9l2vtZvPtiiGYfWzyAl77yJywQeZEWlxgMt5NqfRvvzUcL02MZLVzVBJdc2P4Rd5Iuqzw9g5%2Fk4oVLoSt60eQ%2Batyg0CJC8hqcqCc8wZpLZtIpqB5PqDnFkDztxJxRivBcey1DJ5mFnSpuHYzVmu%2Fbx9K7%2Ba621AXJKQ23kN0UqAUTuNRJ61UfALildgkgI6yWHziBEgs4u62oT%2F5Kg1pWuMbDqG3M2syDjcv%2FaNbFIhyRDtXPwJMNZD%2FNithBrR1FfSM%2B%2B%2FL8a7zpRAur3mUoCX%2FXG0RihEk6Ss9qKca0vD0I%2BitjYW6xquDUGEwbL%2FvVEzZi61YetUhOfXSBLxG%2F06CadgQQBFDxlUO7vhUyIUeGtH%2FeClzaIiLDGfggt0ziv4VlrJq%2BKG5XSSs74FxNAQkk3I6o0fd%2BzgbQo8LoR3WzuxwbBfCyIoC81TDw%2Bg3IWBf8ihBdLaRbT6rX3Gc3DjOZZwK%2BZrYVEY9QRYXeXweFADRcumVbbV1TOrjFmKqCGWXRm5LnRzs43Fmg6pDoCNEKLO%2BZM7iqy2CNht0G0RqaATInBtg1oY6Y67ZZk8s3ujHfmEwcTMs%2BNTRWOQpQt%2FQu%2FMl%2FnlbsScEtVZh4OQJ%2BSHTsoj2oJSfaF4hu5QbdZ%2BLdEQk80eQLKjNGEZ%2BYJ4DpefjBkT%2BCgiNbL6rDF0pzwGO%2F8Av6FAaaJBkR%2BAIHT6KNZUiTSCOKRqHzJxaTGBeBTHEn4GsP%2Fm%2BrcyHIaJBHPB0cyL2VfMo0qIKVdDFCpIoV4lrJ02FwrHEJV9Oe%2B3wVjzqDG8nmq4ycCFOdx21HEPGM5feHAIFomMxOBg3t57OD4MpEDAIxSJRWrxuSE%2FqehKPGtdt3iQamF7cKjvoTIK9Xi9bpiKLV5egyP0qwC8SD4jCNKDgDC1pKAyH3VmKrOwKoAenEXosqtR5JlevfUWmEmnXymw%2FwCKZZkulgc9lqy0Yg697dG42vVKbJHBCho5UqmgppMcBAneNxBLFKtWx5xv8kcR7YicWwCuq0cQaeqFiIHYns2zCEQF23vgUwJgyokKTMUnczbF155VQ4nRwXwJB0gex54bECSkYYdGlZjJoQU%2Fj%2BTm0dVcImvYlTu6utMqajsm7RxlISBA%2F7tPnx%2BlIOVQ%2BvztKKtFuAFhwUuiAjqr%2Bn1y0%2FjATTuH30efN3vpLBDTrqaMM6FAreSPVHgSAwBLoLyxysX2NgnnCd%2FEyASkL70SJquQ%2B7CCQyo2M6vq%2B9DRSED%2F9HMsaP6lcE0wVvrWLwaGCMLyWJsvM2KfzPjSFsu9yi2g%2FwWBMv%2BAymlJvbSTibXV4Wx2%2BEs%2F0Ntqan43sNhaS1kozADJxdju%2BF4WSJ23JerruKTzF1h%2F6jLDSZLFJbglT4PxrsPyo%2FmK22n0vEidLC9NWsZjvXH6Nmsd6nHJAR%2FNU0oNvsNQ4xEpGR5tCtToEzs%2BAVpvFW5SkSDydgBYZQNjEZd1TLLIuvYxSNci2tm%2F0BTVNQvVRYGc8Kp82yYCyQAEJ04Cw5BnVCvc9%2FTjAvZwqVuyC5tVsWrlwBDxR5jTDwGhTP0cp0U9F4%2FVz3CGgpX0IuRt3jgTdvAFt%2B5es34VztbfCyh4Ls6sU7lViqfaA2xITzGAFRIhGCefq6IkFg%2FD1aSeI2ilQn5I0c6mzgAPPIBE8ha8LRH1ySrhCXFRtXyCN7es2J%2FbXA7xIFwCWj0CdSvhYAH9aJINuIXfKXjIa19QxDqID%2B0an%2BzU3lOvg%2BXxoULvEoNF8H%2BZ7txoOJfCPEwCqUHiu1a88fkQhbGqIyhgikTBYydYEkQpHIOZAtNKsuGRIorWW4hNLJNSw9H4HC%2BrTaQOpCogQhoBB7q8taRbVELSieJeWCyjJnc0xpH%2Bj1thfwaLivWyPSz5%2FuiT4t0OVA8zs67mMDRWGxa0rLPYCIRjLPhScdnAVEqgbjENMcCoO5HHSQh8BHB%2BB1Tc0I3qvrf0KEeigJyhtD5OXmmmGkKJr0lAIiJYIVl%2Fqju%2BmUCnMRtDIasOyn7sLhS%2B78JO%2B7ul5vz08JVnui6FnhtZY64v3VFAqyg680SdGPNaslb26BbV0SqMsNFLucu1wSOoFEA5zF3%2BJQDoqfOy8NBQIVL8i4ZdjGyA5FoqItd17U2yY5Oqt%2BZ%2BqUQ64KADfNz0JubCwG13eEjGv2ZieVPvCdPrcGSQnmCpJJwYQXBGalM6VeNfFfap4Q%2FvCS4%2BdC6PZANS7aQDW%2FuvxHcb9IIQxSiT0J%2Fk%2FMW7VhRGdBQBnm4KH371QdssmnNy6hSqNWeEKhohwLvUYGdUhH6DEihpIqINfgaIT899tCGv4TAk9Ogck4EepVKeCNwREgRW0qqwnIqTBsjgqAbAWFRglrDuMsHCHDIUkgM5KyDbpIpG4Aqjyc%2Fvu7he82%2BUCGWXGYemsNqcszxKIzKdFRNYj47EjRWwlCDe6faPuKH9z6QiwM5FrfxLEs9%2FSGNFoBsfuwX9UrQ8EKgqjAuGRm1todKV1GBSJrPEqITBBwqw5ONg2wCMnyjRuKDNHd4EtOelTISAXX6uTXrYPgwbwxg%2BzaYP8CjjTGyc%2FKWhEvOJmR9%2FBXKtyOuqCv168q2BLec9KeFmIdCoWyehrxJHgu9RCKD%2BH6cs33ly3y%2BMcc3AVUuXDd2FgJsBJLBOsfi0dREWE2TcAFqnu4o047A9DnTYLuYrzxPEUCStqVA9SFUiTSXZWiCL5oo6%2BwKASch8CooXt4CMoaYl8qzEIz4JmZLkBSRaX8AenaDyx1BUNpUAlrYZEMnxEJl0G4S%2FAHGWPo%2FPoQoTBlL3pNxF8gAgfnd0mJmBl4CZXYxTcRN98V4EiYvBCXFrNxv0kIRDtRwBi9rfEImSs4ekXO%2FNwF0bmmyuMcFjgwWfcK6fh4SwMzxSNcS0w2Uql5hd796wVCwbnlSsYwMKPC4pbjYe1Y%2BKCkTjYNrYGLPgA9WurHuWk0QOGvmFZg31QqHmQFAjexhZOIaZS9Lu5HovrsZV1PkLxaPGIVx0R6NZASDn5pj6HgEKiW2JPL6m%2BPUuThnPguEicgeclSmky2Yo7sT%2BHUKHZb8FsehCabYNoo9UEwUkAYPNAuklWJRB7T0ykS%2F9EzHIcu7qEDH3FjHAyYyMW4zG3CmMTllcx5iBVstud0VIjaAQ6aPRQRR8bm0mzsiR7oGJaoX7YqkusZ%2FXry4aXAklDoH5XgGpznFHONZLezh9JtID52gXtUsG3bRmMmynBVceDaBeBfCoQ4KHrpp6pqRDmvWFHu0aQ3EIzWESz3mQlDS9NN6hpvmwI5iPkPQ%2FvRSA%2FjADJnOhrJZIXJXYYGUQbTU8eMMzEYam62yUh46Mb6WSGymGyoLAve5cGcGKRZYE%2F82DzYQEdoMJANKUtBtMqYYb0kzJHi45Fw1tsySEPduKF6CMBFM6y32xRnc7fnN2hjF7M8FjhQrB0dKTGFIukgC3gtJYKlfy8M6c%2BcYgK5fHa9fjZejNBBm51k1MeRTppTJ%2FU%2B3D1CYSebC17Zi9xbLhyrvmvqvdyyilsGn2IFAAJH7qiCCKkfquiHOsOrvdJHjo8eEUXfS20mpc8hPDc%2BtSRDkVNBCnWhmHaUSv9UphmULfc9%2BWMGuZudAKWzKhVkwIEGWDd50rU32J%2B44%2F7JtUrmA%2BgqHzYI10aQqHYXZz3155KaKU6oAvgL8wZ0fDonsflMEFHKXAM2FdWJ1q%2B1HyblbMWGBoycByiI2gZuzg4GSGWDxCilhIkzjKMDPKZnz64%2BF2cJGVEAYPzCGAw4ISwsNRDX3oGS6dmzBwbzFzgxCunA4%2BC59XN6V4OAL4uCnHP8%2F8hpCAkhrb2W%2FIh%2F%2FjGLOzThAuKSGCRnE7rYM5GBXu%2Fly3f8HH8ii0p0iRKXqYnABqj8xQefQjA29HCBTSsyeABJTlAOAcY9yQPAJioUHOGDyhFUj7rrvZKec1ovzloOLYi81DCWarEI0GfyWbboU1WjkNZfc6Pk4gGJYPTJVWO35WAU4ophRKOBPopXAdCmdmCCdyzB77jTDphBCi7RGZWO0Gqj143TKkIejseQnNJBS1htjGySlR4cnqN7CINDwRFATA65RgKQgRziieWVtI41nOM8ijwPwZEldgaaKnXacAGJ6s730Uu6zftJJoux3X0qbPW7UntfIH7Kn4Ews42Ew68dguEMCctoG4W5QdH2%2Fy%2BlPpcBinSGJ3VdAE3araloKrLReLgPg8YKH8QhJYlNxgRW2Epd9IJlDe3kbAwuYKbUNFzrL97IZ6KQ34IEoPI6oLZG9JiJr5VNIq9HcWm81neOMrgn00MoZY0zULN7pKAwwQ9Sq50kFzzVBLyVEyMICy1N1ts4QCLOdMOOk1JqdUdrXy3TYJQsdKhJBKq4mNrUulGfZxS3zco0uGOvKIpjbMygwmiBu0w4RRbMKYsPad2pZvG81gLGBQf45m2Ibc8zCRrKu2Ot8wEJ3uP18Oko%2B1y2prbRk%2FzZAUDpNBK3vNnx%2BcEUF1nzTSecRHVgqQ3%2F4s8skWXMH4YffKtLRbjyA0y8q6Qc%2BpQCfuDsBSWB2Ta86sKBo7ThRFVmoia0ptD0bbGtQIOzeLVUJnepzfRWnCwLAC8nC0KLuUoi98Ld61lDOgItmtIhiYUG3fgOnmPCgbcEdvNrYgEZPtuC%2BxZiPgeTrgWPe7tkEOz3LazdQJ%2BB9IdXVf04Qdq85wdSWFgcyWKgxm2pEQC%2Bx0YyIVh0vDZNrxmalqP4oNuRfkK3pRC7ChSyxkruNqBcXRQVDMvxfr%2BD22AG6o54f8ZedOZhNAn4XNxOgwIsDjeloeXqGieVHgnIXDeLp45BzzvSgbDiSAjnhQQKE4odIoOIZg%2B2nHCAxvvKI9ng5aS2YDrICBrvSZa5RGZU%2BRP0ka428aRwEKIjTUjrNKRehq89W6YZgCFxFShTdb1yhm3rP1eRzRKoUVvpttCtMebC7MTLXGAeWPqwA%2B3EHGcNMQ%2Bl7ozmBxAAn%2FIzPujFstneStTCSoakVI8NKqddVasQI4uq1aleXAxkEiA0ZQ6B9ku7b11ELA7cM3NiwD2dT7Q2neD3MgEGrFGbhohu90QoNf4p5WuLyAdw6rxfz9RocwIVgEPihaft74jCiVugu9SlUjgRtwvTBTHfZBCjOSkfJEbTWMuB8VCN%2B3gBIQNdTpYRhVHGU3ftDuw0pIofqJKGLEnG18VwRwgjnsgoNEfW%2BdthmtVRJGL7OPIC0Tb2RxjRjDi6jcMJiqrFqWP8YOp0%2FWXQW7Q5f%2Bqhy99P7p8jArQNJDJMKQROhG7sNNqr7p5kQlku0rvmus7ekrtHFT30aEKUrPV47kFs9mEQUlWgmKHctgEuujk4ydCAcUwO5Dyokib83NyBaqEG%2B9SU4EzfD8suDtvsx4M5ERnYaYG5sTKwCXlSa9KzveEGVM3KLwj6MdszMf8nsIeQy9BAaO1jDWh5hC0PKZ%2FcmJaV0KySr0s7KLqCy03JVZR9TtLgTKkHwEBPSE9CJNgepWdL07gX9oiDTeOUUaEENAdU%2F4E7hWAVkEv4N0rqWgPE%2FCh%2B6hoBFUtrG8b1a7L01hEoTpWPt7cB4jBNYSXaymVoyGyqowagJOz%2Bx1nu6hIzrEhdr5jhyVN1TyuKJwlWeztJLFNDK6LwSigipU8BtlLVwaumSRSbhPpWpLk0W0Y%2BmSAhBv%2FOm1EWkKgzBIXKYRokNOCMZGE%2FKOzBYdm6Tu0hDuzWRWe3c1dtb%2Bk%2BRtohBUrRkjSqew9UATT8BkEJKBzLXq6qKwQYNDIvEYxoy83iAzUibYYvKR2avEXmjpoSgOkQlwljC4pV%2FiEPxWD4Uy3rAeqEs4TksCBATo3Rk2Un5Efrj4Lkh%2Bduwn8pNBn9HFZVTuN5gMsoQB%2BRSFVKRIfnQkBOUHZFV4G0hAKefPidNGKkFZUhGJGlOPdoVct9KBuQ73Ta5O4wQ9hMLy038s6Nchjl0ndRqQHgBcUUrO1hZZEXusKqI23hpbO2w%2FO6FrgHiGckOoFzqEMrUdJfyHm5D0eqbu%2BQTNDp49VG0kAvQHCic%2FlYdNBQQ8COOw52wyM7P5Q0st8TeLQmELVxtpA0Gt%2Bz0buClDKSPw2DBe2rbQqFwiNR80f%2Bl8vxSHmNTfDm3wo%2BBQ3mL4fBOQJqOt285PBCdYBUhWsHTU4A021XA6%2Fwc%2FgaZSBtZPIjM8kOzsaoU65UQQW0aKvXcfpTu%2FwI0fQawaiZkBIaNNV34AeYiq0VQ8WUIMyFgq2AswlQkI1dHeQjlkMsICpAQiiG67OCBdyhfbQ9wQMFPth5UTFgHbYGy19nq9z1E%2FwlfCYseP2AASPOmMFzUZvR4hpaofy%2Bs2IFQ9JMUz30kKDvcAtz68M8N%2FpZAXbbHNzJNBpu1aYDSZhhMuCCOhYcO5rcEHQhyCD4yUgIhdjyAS9DDRuefDnUaUKnL0qel5COZ4R1q5zLDbfhGc7rEIOOefDqx2CIZnCPMh%2F1A9mE%2B6iTHtI31vHIBknl8cTpdc6Cc6b9YK9NXHPxz%2BS63YDhMMuzkSvIAfgZFgA4%2F9EMRQb0r7ekZ6AZGqYF6ew7XWMHR9i%2BsFCzTIu9JZEBfI7OL6bIifthDH34%2BPhUsTloCGkEg9oKx%2FSGUhieqGbdu9dtI0rBF9WmaCg3KbmxhDCkkk%2FQeX0xqnYqrAd62kAoXYQZiAEB%2FaVVJTZfBI%2BrcfsUC2EoiAgQQWqcZ0UNHu4gHvgnw%2BsQZk4jfuRREdFsRykvLYFwU%2Bw1t30Y8k0qQSybAQACFOTmXQOVU02j7Y4V5OrrQ8%2Fka8h2ohg4EE%2BgpHukF02JJR%2F6BzfLnTijuixR9UAGD%2FU4aEfjwS9ZExGxdNcimixZCh0WYJg0RA2MBi2TVn5w29WaAmPTFUEy353HocU0P2GBgUybAgzOO8KaUgeclJCqlmtZ8no1H5OxPfDk9Gg8v0dWcJLpyZh7NKc1MknNFmNK0voKS9FTUJNbaoyQSALH6B48Qxpp1nfOUiqQ19BMvDLlWg5pFJ%2F8ACY6gNPIdIpPYSvmSLgMuThH7NrUGkMQw9GVKZxyYiT2WgIaKEAiJ6m2Q7L4uAsWIQKNkdDs2GiNgXktnJLDCSyZWFYmR8CVcTi2Xe8xzpaAeXmqwju8cJgRhV7FZBsiCp%2FiJSZfiSHLHQfQxSieDAHdpCOYqWzqCBGGAIoVsCRnh%2BkA5T%2FFnEg5TQBWv9IknS0ze5ABp431%2FzrI7tGPqpGiCo5HUUtyqC7gl4N%2BrSHRIi8xlbZAUODkK37DGFhUKITZQGFc3Q3CAtv%2F0TgAhpD9BvI0eoUgt9dAcGjxslkY%2FRA0BDCvVe1dOIwPU4jARmbC8YBurkdx%2FYSZt%2F%2FFgBmFUPAa1jG4WTGI%2F6vbYsluGRoLLAnIeS87QCqO5RhLezWM4KSpj0HVKT8b1VRnEI2qdzZYpgnADhYkRJlaQ7fMwJE8QAuS60ZeU5piVGSYMKQo66oU0GmW7ivMDl3znk17FhMeFc7YSIfvL%2FEiI%2BPSFnDLTyrckOQn0OXIehkgoUNh4SBtrAYEYB3VqszgyYAqmM3KSEnokHD8%2F%2FkNlcOEiRCS%2FLQpM6T6dBDrapP6Zyi4eg%2BkaEXWA9wV%2FUmTqFJnWLZN95VQa39KRJKy4Ho0D%2F0aeESOd2C80qcTAOO8uykVPm8bqzwFOGvA78mRpfJTyeWSMSAjkiiF7A%2BAqbsl8kElKONWg5UV5on%2FXo0Q3Tz6I0udceWCP1qfkjw4izrAc5VGPNc8qdA6OWnR5eRpGfJHw9vBsUBHr%2B9PSSCcF%2Bf11yLBziUf3FDNnCODnKlI8KiBE0Kjhyn6MvTX2kvCtCVUjOALrR2f3kbs%2FozJOhIanwW2P47KvP4%2F64e2lqxJSV0HMZWNDQlQxjFGTUhO9vsGF8oWPfnfNFEAWGMni1ofRS5lgIX5lmV0FUUcjoo21zIJeb%2FP5o4G%2BmCAIsNDCEZRI2sGmXHbeDly5j60ZD2AQABMoVyaSAAsZfNCRdHplAmIvm9qXweNtxZVFKpAk2XJj7ApLvW7wOCHcWV8KbrPtS0Wxe8WV9mLD9JwhPHD8S3kULq7LlxEI6ar6Iqzd8LI%2BBvivPewJE5AzoxGQlHFPIs4%2F0Z1WcZWIDwhMrF7b3jx%2F4SL6txuDDN3HZRCpDqBlL8%2BO%2BX0LAS0qRrv04QhyEyEwcJHZyv%2BLdTXT2jBxbGZIKWy96BBRTzmYCgodZX12AqavfnMKnr0TqgzYiDMJXUibnJCGnUMxYNkqOLHIBWapwLufPXMmd00pFxVqH2h%2FP%2BV7uTSSFmsRaS2i1CrFVH8HO36JPhG%2B8LoKf%2FYpNRTQzxSHuuClzSO0%2B4wqEBflMYjC5zz%2FJmCSiy0hWw%2BtWXbQ0NtUM3jhIpXdCRB7R5ci5iW7sdX4zNSySg8%2BDJz6cyLulNUoKQjiEY5bmNJpoWSiA80VVL8FkvYM4IkqE2uEPIiUS2UCS6lG9LVaiAYNZ%2BLocL5gIhM7Re8%2B4w%2BP5YtIhhaRz28Ci7woxVxDfaFsZRgMKrxiE7G1%2BDVN6f1ASAB%2F3AEqxcnwoo7zeXB8rhDX3MwCRv5GRjRkGVdmLH4AghX8HYd3gIIvnAiyptG2dHq52wrC%2BAsxo9CzDy8zfNI84FGqVLn0A7pEf2G389g5ni2i5EFpcj6LUcSwJdxcZVc9ZG30%2F%2FOclsX%2BEQNe4OvbaLO3uIgDQm%2FojEChyz7ndUY2xMQycJzJtffyP9EArB7UMRuoFAOVKLq2Ls8%2F05g1GCkHYL%2BbFSzm7Bk%2FnZkuIxXjm0MpcDm0bdzL%2BYnKSG17xJjq8WNdCK7%2BPNcSTrekZOhtsdUmFyfUG1prCQc5CIvhRwMAaCT9zvw8PQVhLCVfZ4da40p0m16jIfqHZ8Pz8Gtn%2BfiXZRsb4zElNPqoG%2Bycx58qcz%2Bm033M0f83x7x8J4JDiclpwFSVTg4TrUzQKzkqgfvKcNJpXZiZadnn54vWdaVLIwIUPRSB5MwzbZMOEslnXUopB1XB2XOVw9xvYMlBrf0S0BTziV9wFiFGenPt1uLTq0r53y9%2BFIHFPSdGWrkMv0hjZGURfXPjfLUi%2BcfcSKhmITsYiSAevd%2F7oOR%2FG4wFhXpU6Nw4MYndTSQcdjkzHPHQqSYZKLQ0M0I5WfwzYCiF44raed6%2BXnj2qCA70hjIhmDVLAeWsdB0lFNgYDd5heCkJIUiLZtCcChgSlpTckoEyKRqxJOTIjh1weyNhN5Vu%2BCtbwaXA8FmCSIS2wl0z5oBNpIrq6lrKdufwh3ZzQ%2BXPxBVFJZskUZpoBKmSSJum1gIpjEIyZHMnwSYiQ8UXI1xFl2QZWBxumglBMkvC%2FD%2FldSCBCZgvKiSk%2FfvoAoVhFx2j3wYy4ckozI29vG2b0ruaGCeJDcI0hOe8V3J4W%2Bhga8xgd46fcgjOgfPzyD%2B5aLls7Alt2%2BNRXV5SmEUIfwcpiCsjJAz9ii3rOsSQxL9a3b20LyU%2F9J1SlQl6evmF%2BYf0C5mZrjMCAj9vmCCZN%2FUKwiNtOY2SAZABQDsovFzMHfKI1o52bDhYc66WwcTmsaC5iiZwjtphSSBc4Ic97t3EE1ew8jcmwPNS3tDGeqgXJjRWdR27F926ZLqgqwF22sApT9LlPPFxrLGDWtc%2FiIFO8pUjQq4iOxfmnFIoj9yY8DApCh4Aoo11IzMaMtwak4f8GMxQJMYJJaffVUdlf1s7kDHf9q5z0tFzWf%2Fi0VNZ%2FdAJB6PPjiQc9Q9BX%2BJouNTXYeB22Po7DPwLjkLU2RXo7Exe%2BRSfig%2B56V8bUUdXr4ZPXFB4lSnyrh%2BELs2ei3yJqG6NqSFEtyQoIPQm1YrYCL62AUhB7iUZ9aQJLEiirbQolWSF4pcm4z5kgnjneeQKcnboHD1FYP9V5bk7szBjc0Bf%2BqylN9ToDEGUS8eZEWx4UHDg1FMDOUm0ox2%2F7PEpylu%2FFcy6pqeFgGZNqfikQcjRxnJeYQcGifRf1LWz3KaD4YlE549gtrOD%2FAduTsX%2FRvA%2FHgmvBXCOpmMxEKJiPTpJVkaaPBSGFam0xystV%2BZigIOhMn0ocR%2FXeAknA0b5JmCBhg3TBZiidbkprI49CE%2BIxYXQS4NKlW1S9WxrIeyAjpG8RSb5MzqkrFyJN6MQ5386fJT2beiJvHoIekhBaAYkRJCjPpqyAQLPHQy3PB%2BYhDIQjmlCl9ZAR0FKSSegKayCnFBwdg8HQuFso9IczdgE8R5izKnof7MJnVigHUW6Og%2BxL%2FoflXpU9ZqiUxdLkOAGxzm1BOAZ18JTbNBRWCO6zYFgiqGiJS2nmQNkHZYcSpsBP6EhZlDWOgBXVQplMs0yV8yh64fgyC%2FCR5CaU9lIn4t99bpMl%2FNDll72VzGwIqqlpJJiP16MyaXWxsmiFFnw3iFaDVsg5L6nFObrry6eOIszTLBCdJohZoA%2B6H7PVOwwMZFy3EoiDD%2BZKieuSNo0vKJFEfXtRzF3CJrVVJTi02RGyxUtTQZyFA1wZoutVAEDsRJd7i6wSnR2YElAm%2FADAo4Qirl77E6XEEBEyxJzPC4lq2uTsCo3tdl2dDysKm%2BPQ%2FSQA3ykVp8h9%2FVC5MPEY3XhUaWU4X6G8YWfEoQzLCbsEJbNwT9ikBLEsUon0Rb%2BhqKuyCmS56IHw4fhkyoA%2BBq4fuPaeW8jq74FX5piFqSX3L6c1qstDWg9DhRAxpgYuLF4EpT7aIO9vTFuloPgfpx18kSkkY6H0QVFgbkaKSiWN%2Bw3%2F8djyYpiVSUBdilzJPwiI2jn25deRU4gSV0jsa1BxhgxvQR3Xp5LQohxoNMxFGyBLBeQvMPc9izoJVzpIoXdokselmvaS5KlDNThUnpwAIpZVAP0kSv3JTOId9SheR8FDT2WwUf6y4E3NLdfH5H5QOHbPI2VNO05B%2FW%2FBs691QkuzZumebscgYr2a70iaJ2QiT68AGW7O5nwGORWtlsKVPOUtX5YXjYdKIO%2F7bMRAUQElzJ5HMivqaKChpST4%2FnwziI7sjbxAUxjShRiZRLuQ6kxEuirKFuwZQPxLbi5cVpQvKvjS0faSens5ShMI4soX4oeyhS8ZrNJRQ4sfCKULO1jF6zd4YyhbvO5sZ4aeRBKSv2AaXTN6q3nKXX3lQWuVSZLOAxq830RS4ZkjCundAAvzEAJh6YFiLv3dlMA6Tkv2l1Nsj8VFoUuO48Dn0Dj9N1Q6bp8m3oGUVA5nY02%2BC1ORpSDH%2Blgeko6ywHypMST8vre5BOd2S0eW%2BaaJvT5LLO7n%2BAk6I3LnYDJFzpmkkqr0o7cHLt6cxIn%2BxAmUgCPIE8%2BaSZ70NlxyppKzPfKvICfxWYG8%2BAdk3zyP2qrxQPMR0nQzzj2a3ouHYqFbmxzdJnFHBWHkAfeWimMsWNIicy10J5R0iJTbvjBEAWiE4DPkpc9RCkbmuZ%2FKoE2XUvv%2BJWkcPL5gKdhBBzjDXGFtib%2FmnUD2GicWXjUu0CbaklHMuL40O%2FOkcM5gy0BwAHCWx3yTkR3RWnwgB%2FyTaJmKbS50iFJWc%2B0eS%2BuFX5Lj3mRqYt5lhMbZgpmn7V3PtjNxMMGrMrYcvaMkW6YpZxm4ON5WXe9KO0ks3wWzGt14iTDH7quIirBsp6oFr8Vg7ZhW0xERUidmKrRwJ%2FZ5kB1EIBSXZZwd%2FlEaSQVfhZ4bxmN0LfcZIplCs8eFirwdAYgAdpwS52RqCuRRoWdc3kdxgAkVniTipyzCCXlMEOHSM%2FxEKv7oFHCPkubgALJ7gv7SthAp7pPfXpINbKIOKX8FaYHvI9KqM%2B358721MCHbV0uO5QQqspAedxmgWT4yZVykpxzY45G%2F9vJ7LR7JVgHdM5mom5AvVVDj1iQrUFXVKEYTXXHoYGKzoBs4%2FgBaZXT92PRkvYF6TYUaFSYhENpokcLU%2FTVhhBZVXGSji0wjxzj2Luk3OEz2zHICDLm8xqejKiLREUyYA7CmFsuEHhVHmGnldmEbnkQZVABqQA27SJJOBjcBQOIlTJXYS8h4MVOHA8h2lUxiR002BHdpFfoMzXZ5jiQl2Gh%2FTflnTFZaxTBmb0KN6URsqoYxAyTmOJXAyPJXVN8zbQQLuLcEiMXSKoWCCLzyhckVnJ8JAikjkGQGYfVzYPl%2Fa81colJfaP97OCSRwCSuVEFhLFnrGKBJHa0dpHbbc%2BGfOMKEhuFIPOCqO3F%2BGKsgk58aEMQF7OpLcfknCHXAocNmI3NYcal%2FSp02iISGt6Mn1scu1bTprhXmpzN3dAGmXk%2Brjr5cQkXrRouudC1yxVKXjqaVW6xNCcE5m6A7Alv1CNQ53XGXpzXJQ1TaayKXaP6UVpr2QiYu2rb6dsxo5mRmaAFU3mMtrEtA23sxx1ULAGOF%2BA2BsCmMreG4NXlwsL2YpU0Q9w7TqkrBfz92yYUbRcLULBoJxDL%2FWy0yVJDGNVYpygOvc%2BTgmjx241fzy6cvHAZMOLF5oZaA%2FFVlfXh9sS3tdvq9isfa5kz4o1VFbxhAbvLeJ1wSj0eI%2BaxKVteBBgujd%2Foov1cAq3NbKhKW1OezrKPmzw3hL4lUsdJEEZK0KhyFpDzJSPSAsQxwmJJPlmG22RUKaARoaledKTJYfQth5fEjhLyXuANMqGulz43uz%2B3p32kAGDJ6tdFjM1ZOILM%2FP%2B%2BQuoU0ZdJRkoX%2F%2FUIoZ23zaX0LCT3xtctgUJhQC4VR%2B1bDixKstYNAIWkpJZMAXkwXdKygmk9%2B0Khw0GiyblT24Z9C3zkCcZkZjgfgLPHooUHXS4yWBdXNtGCS%2F3QPi2aOSQmXddp3dr0rCgygy1S8vrYTJMYgQfQERv6jBQ9YDM8GPGGhrE7RVCyiBBQ9Oox45IdoVrsOCD4o%2FnNofBSpaKvFDOkq0KDU7C7DVdlktCYDKSK6OEBv88oqf0LAohXHy0rDchS43ArkFykBXNL42wplKYpyb244qzJ2PpoCg4cG9Xr0iRDTWVotJGo6E8IT5Vk6GrEBmaVc1f4txHvEKQwb9PU1%2Bl3mEvayzrDDBjrjF5FLlE1e9fq36ovUIzGiUJyQidKUmKAbyWZYlMoyTTFLxhdG7qoGpilk0%2BHKDBr18RibNGL64bpPhYBXaeSHo0WlT1vv38eNBUDWiEZ9q7JnwmhA49XE8D1%2FG9zumcPGPWT0wBtfdkEEHAGI%2F4kcdh5jsqU00IRnay2NGFVF0phRLVRcTlg5rTaZ84jhabcu4iYgnULB5wxfEu277EYQpAtCZZ1wwQz7lITx5D7hkpyNE%2Bhvbzi4J1EatEbGNSNvyITQ8t6wKuDzx3RuD9rjKCRyVNLbj0703sSyekYxiKKOoeIYQU5u%2BRrLb67C42mWElDFDtXKL%2BsdqUuU8nh3TRnDQkV6HytVKxhzdJbSSfQzLRGmsG6MNtNm4DZCmBQCF%2BJwnqzQVadiv2LzRC0uDpj6P4gmotgA9ZUYRebbuM%2FpyhP%2FnCMVYeT8qjVj%2FfbBYoypKRpzdqTG%2BesI7WI4uhQGpLI4Ewj6na%2BNHEr5YJ0Rar0cuhp34uFBZzuvaWexxwQqPL2csJAkw6SyNByjJdXJTvr5Lqmm4l8aUJTlQs1GdnWgWiCsvwHi6SQoAKcefPIVYQsAU%2F7FNYTnRJaWH82ETJzxnX%2F7IJpICxlv8i8XH7bBJ%2FkVT%2FRiOEDoLwf8TXE6mkEsJo5xZ0TJSRQt5ZzCUDAewWnw1oudC%2FBxJiB%2FMzVVg0jBF5CP0gcARuqPLjCfEZtsX4OPvflGGfMaz7DfKFnBDZ2Hy3wQl1WqpnahYx86JgnOKZZy9RYQOlF14nbCxYUQeTWcVNPhtq7%2BRxSchDMnKTqAi%2FfPQf4wD3SX4JogBSRtofZ9NBCulRl9%2Ba25lp6pJmkuoESKSTWR6V9EmqsdDvVp0OJlMHuUzwou%2FYEqbwJ3q2IXcE7jKY16kwLGm4W4WEYr4VLGS3Ebng2eJYDAHGeZHAfF6zc9ictzza6droirMDce5zk7YzwJYpXHaw8zGYGGPlAGEpTFc6ObsgX1ddT%2FNjn8NRLwk2monlqxLFoxK6y9%2BX9J55Bjhg0%2FxiyyoR5fsY8eXfiSVRitWE0mJoBnZqIilIgSfi6FHvR0pAkc5NBo%2FA0pgojciefa0XpePDHAIBqVIQMSXPakI%2Ff9IBGoSXVYl2nDqCn0m7cQqZ5tuJV0fEAf82cP%2BWuTAiK6LhSMP%2BdmxwBk7kS8gLmw2BfBXySHOdljbAu7LvFOkFbHLshl%2BII0XV%2BHUY4PVgt576TihyAApcwOt5wzUNqEfzGN0NOrM%2BshacT9aOiM8xn3%2FcF%2BL5ZbC%2B7CwSptlYOwhtvLcjHU0Ph1LZoQDqXiHMJGZeU0vhBEj1yuJpXMAMcL%2BZL4gKBUGYhXdZr2YxJH0UXVKtvXOIALVNi1q1mbGvF5S3lteO6d0l%2FmTHuNM5b8NEzlkB8gEFQyowrYLc5Lw7ohhqGg1LGhCGYgEAREBqMUb7hcJCTtFxiCUzaKapxBCEWY8XtACFWYgddEjjn0kH%2Fgz4JjyhNQYDPhs2tkQlhcOAvIWNVjIEG0xGvIhH94gAi9s9KYMTtCQhQH4jGoA8jmSn20LkUccQQJQlbWQRS2MZNnkDO6cqZnuLKB%2BcMGf2ErV7w5gC3cFOKtxqFqRYUysDQ5X2lRU1Jb6DfHHmMiYBubdItDty38Ou%2F0yWa1jd0%2Bp67KeIfB1z4B%2F67ZY4BIdkBSlIzAA3gRDfuoBnF8xmVbAU3Z%2FLJF1qSAovmDLJPiC%2BmMOTcrmTz6HJPyZgA7AxyX2zbADYrVHtNtNUO4mc3CxMGSnBkO0Tlb5CMz04nHjbZbTJ8WQgSE3MlLkCIMZ5QGpo0EksIaF%2Fx%2Fay54xv5zFO6H%2BnNLkbP1wJJ2kj5EoMEDTTx8%2FqRlGG8HsY9SQCMm55We2jex2M21PRdhlFHy9uI2Mx2%2B0flgdNm1zEt4nUwNPjCX4DnaH%2B2rb0veX7qvedxxiBx9gKSY5sQdIO2OkcoooeDpymDp7W5j2ZigaZBn4B9A8J4LwBtXN5tyn9fa%2BfwzGlVPgxSsl5VVVrbiEfCgxafeWxe7OAPI501OgfAG2Q%2F0CoAxQt3RQICK%2FG0J1nRifIaSwM8LmoL7oohsSmGzKBNLrjorCwaeVn9HKYf%2BJvfsaue3DCwLY%2B66EPr%2BPxsYxJygoxIN3%2FZM6zECx9Ga8QQkaHmiWpqRX9jcTWstgLC%2BUAJVUjgAj45MMiJ3BOGFlVAuBBvFKXxOYo4QxFfySBOjMjS3Fi3hICcFbv%2F1TzPLI%2Fu3R%2FXm8s9u0XFSSgNVUTEeIAjpMTPZo3ixNR9an3xKER6oMSFtjvV0%2Bn5QgtE8Slf3D4WyDqnU0Ijjnt9wDE8rUrcoe1T1VKrqODTxgWWYkwrWL7C5AOSIXfaunDkQ50YJx%2FCLjdDiDa6AnNOF7wkbShBKsiaUGo1ZfyUDVFmJowPdDxNGBHij2hAhx5KRsEup1yz7Au8gF5ZWiAIHkqE426C9ZcVVzaaygfjikg8goQnk9QXBZ5HoTmfqyLMK0XHS4Vus1hJwyEHnhowMrfZlhh5LbAUK5%2FxrsogLwPTEuWEP%2FDlj7hQi1wuT%2BAn2nCgL9MugKYMRWAl806L4o4pwiHIUBhzS50B3dlUrMHlAUQlowFbPz5pMim8%2Fg%2Be5fuU%2FAJmTgz2WGjjZAjU23MKNDsRAx4LmiH%2BAk1Y4YjICP7ZRHCE20aWYCe7A%2FAwJewWSzATH%2FmSLubHPFm13H6%2BCMgFI2HmC130ASW8D9ySQMigJ6URiNe5g5AkV2EMDnBtfUW%2BvcyDoMZcgnyktKrWhk9cwNuuHkpBnGjAnZnfk6tPgskGCq6sSwJCcRpxKGzdGKhyzfzGejtiLz3vopi5DSEBHgH35mXOseOREYXD%2BagQc1ME7F6FQLbNOrqr%2BYXoH57a%2F3sqtIjq3S4LgtKDIhmQYCKRx9iAhv9phHB3%2BWC1%2BwihaTEQd9uXm6GiK0b%2Bzjc1ql1%2BISI0woQNDcgOJmQ%2B55%2B5SKvQ%2BUriSNhX5J6s%2BMTAqb9WU4%2FwbYEo4e2p4WOF9%2F6BaoAFvayIUON%2BGY%2F%2FZbA4vzCFkMJKhW0A1FW5P2c9qxRTPKjH3dSiflLSz8OFgDzLi6IMInWL4oZDe%2F94pSotCnpoLAgWSL6krGHY%2F8sOlXKXRc5t6gqmM4sjd5YSOQQtr2Xg%2BewF%2FOYkf9%2BlulZpoHILMrYx%2BEExqy2gXhK%2FBHOvfGwcwhQyqlWgEf%2BzrXGUgGQ6lQwAmTnZNbLotHqMby69%2F8h0g0zkMjw1QgX92GSggKxGO2QeLcEmOf%2B2o0zGXmrfmJExP3ONRaywmOJqhplFFREyqA4c2Ay9Im5ZbTFPF9fFWbRLyunlxY5YS03EqfX04ZuEvwAsclgutA2M82I1t4c0ssrV4gYO9CKbc4qs5R0AbumMB9hWamQgLXEI7uq%2BT7nhPjf5UC9m9BAtbSNhKY30eimlVHl0ZWQiDHahgYUSF4CDPr3nbTuqlr6AUz0L1Fpxa3CzNg0Cx0skgEDhIAkCuwWc5%2FCL2RidY%2FXf3zlshTYfekpRhyniLEc7%2FcxIiW7JoFkW5o6LhFo27CiOcSIpSJYYZHIUeiEM2iJbC0kxA5EthUxKLBMrSekZ89n0ghiIU8cUgJi3lMQchEwgZ1e00IgS79R%2FK5tItBQDVooBguAvSYDHvKYh8jomyfp%2FnHWBFr0zjOJICOr03NOwpEWhYndPs5hUig9peFNyrM%2BmTgePOh6RVOw3oCeq8dmPmhzKVmMO7%2BdOTShFtUsWxh6ONmRgwfJHeK268IWZpxbLHCvqek9VsJ3oUiTnlQE8%2FwcoOnOx5xETyd4fRhBvY6FYwUaeBfAagx78nZBbNUKv8fh%2FQWLBpy3fJ0PsBvzYAQAPp0VrQaROCOvyuGvG9%2BzWwFxQ8VO%2FWJKE8JppRw1wiMOFXrEmLpnlSwncMbVPI7AVE5JsuUmNyB4irqjTZC%2BDdv7DSloDC7pOGN69uZ6tma%2BwqRrFKJby8%2FWNVIJqJKGT3q3f%2FgZKA%2B5ADOCVl0o1P7%2FkgEHw6KEi5CVytGh4ncqIaCUlLzBL2665CVHuKYRMHz5FKIWX76huLsduBtnJiP%2BHPWJJACXoykapUPHcK2wYVGzPzB3YfZ76A82nJIIkvyYTjyWBdR8RhgAqAXxeJaWMQMAHcOhjT7T4svnKFL%2FFqHX6BP8sktoP8Svr7zgqYvBPyTwmREnP%2F4LPCKJh6HA2zBDwbJDXHR%2BI8E0kuiXUPYQYUX0Yr9UPt84zQGkIpBfgyyBJASIOMDQrnG7xAmV5Xh5dIrZvrSQeDMBW3ZZZYAk77bv5%2FVkplOGIOVrUAOXRjDy5ve01PDGjEDrbSJPJSsFLZ%2FRZf%2BYY6E%2FDa0JZ%2FGB3V28ISVcninHq7eep5SVpAF0YxLcu5VRjvRApMGPReBWYmfih14qHCm1Ao%2F4agagS8af%2BYgR%2Fwz%2FSzg6TFBRH92UKR%2FLOZXy10eZOq1v3PMa5QTQMRqz6WVlROj9pyKE00JkRvXBXpQAPUOFaTZkGDU4UHgY3OUZHyWN2THYUgxdZ8WnCPBxie4NSY9VNlHLd4en6AdxpjLitMyUA2rPDeHrs1uk99x6gB0Nc9WluuxB8IoabiwJwK2Zb6l35ULTmDOB8cjPO45EqO5NNGLwcGm7x98cBxcFcr3BAF8KnaQUUHyfm2Ldb0%2Bp0cYKNlYa5UanegdnBpdqDZYkAEqE1SlhN0gvas8P2oUi211CK4KQyi%2FTUFUbTgYamnDWxcDUYK9KAARonE2X6Oihj5oc%2Fps%2BhgR6XE9MBPyNtxc8Oil0bKlMA%2FyzmeOa8Yh5A2WSKP46EFSqaRMBimtXPgHo8dk%2BfugRMYZIiKWsaL9uotLXjXOd5pRuYEx7p7lCKWBUNARtsCIJLr30GS5X%2BnduWH%2Ft%2FYXlow4HRBURGzwltowlg3uRCsmrUYy3yWVx2iBHrQBNomdoGf4CuTSkJlh%2BdlgyDtLIJwjkuPGBnNzln4PuHwG9uxLvVagrIcdAbJx28dqjZnwAlSJm3WGwOrC1EOusC1mcvoD3RdgzkO5i1jlNeJGqQyAuD9slYGAJfXM4Kf%2FClG8FOQ4tQ%2BbIDuB9Snw7GMOTkiie4VAunL%2BdAIaPUtevOYpXaRYnDD9WZvH53EIPxScCY131njGWBhkx4ci%2FVz5BjgBiM5mNe%2BYX7gGsAZcYzFII3yLrbCBnAo3rhK%2FJGDr4YIUDgaCLwWaCBwCk7ta%2F9CYrx4N96vxbpTNf8MQh%2BAFFcppNn0kk8rsjmv5%2BO038obxAioa3KnmSpcYcGi5btWiSP41nk87pCRttxj8Oex3lkHDwhT2404Rx%2BOcwCP9u6QVqPxYVzk8esJLMFwOyVcRPLBwREnQ5tyJ100zie0todnoVkOdBgKLTeDstJ9vhj4jgw4e%2F3bEqGXPFm8fhNuurL4eH61gHQeSq3uorHCwixUAmylzsH5txHDMyV%2Bl0RyFW2RgRAh3CZ2lBJkC%2FAHYpJQML7EIvvMkg7wFNj%2BuA6MjYqUmkbhlBo9nyg2Kyt6SGw5uzKXcUFf3NgixNpo1ARLw321m5sSAkn%2B8LsdHzaxhfARFSAhNXlBqcJKoLyRAMmK8az12xH9zs3C5p7AUdImjNXB8AIj3VmYDMQxlgn5clblEdPbXS2SIgVARGPFWNq7J9tOBbpEQxDoqUlZSKnyesTx0bQKnghkFy8rjJhOBgOLS7SV5x7emOFhAgaKQUdcEJEIA%2F59vqCpSdS6wvipZ6b0LXjQs5%2FPxKYqE05m5c%2FkVGVak3eVK5GHo1uZ%2F8uMxB8DTpQiLNsloAopc8RxN%2FMnVCJdYDcl%2FdbLvl460yNRiaBjNURJKJ7e4TE4nggsolgHW%2BB7I4sixlc9ZMkhHLY1DaU%2BRTKIDIsQpprb88MsTClmvaHwga5qhz1%2Be1RhKhI3ZRNevicdUkK62N0yMowvGVdEVxwYjZDJJEUsWv6RBQlL0CpgZ8tRKLRE1NZaKrSoMuUXG5HRgjyM8MDXCtFfOeDTPj2xcgG7NU6HwgCjRCzBgA4B%2BmboXYaOqKIZf8CTtaUjjHvjbhHkcclgTv%2FORLR6I7991Ojd0MWpZCfuwFBg%2Bi2A4sDIFkDrZafiucDcQOhDZvHiLKdCFJwMlL%2FJP%2Bex6g6p0h99C194XJNOFhmJag6A93cV4x8CLl8FPAEf08RIxZ5%2B05n2FZVEzo3PwlQXxcC%2BiuVDITOMnzx8XEePQLNJ2OH7NvMPbjAdwriNREINs02Ey5hEwsxCYnWOp%2BwbjCfbMMgJktNvC0FTzIScZdSW565VcsMTY7Tv1%2FKyGAiSnRkwJyx4EOjE1oym%2FyIC4hCJp5CLnXzqFu6HAhCTHK6A82kgpsNKXeluDtwHrkRj4cnE4LV2GfPkN7%2BTdRCGXY7GmU61OcW1Ip%2BTJmeocPFcTlTeBou6CI%2FGwieQttkYs9XFrh9pPUMYmlKgUWPanaPFsiM%2Fatct%2BLh6VFDdkwTU3qNV%2Flmy0yEu0%2FlyOQKCcnJSwkfV5nCf7%2BVKUzBgsMJj62CpuVqH%2BIRpKJgH5qWV3jQPVt%2FggxHTndJCKxQW%2FI9NB1I4OnsAZYqZ0KiuX2ctek3GjUlkKVeQCwNkxEzBBynAjKpdYarppA5yJMh0qrf2hMP2aoHxlJ67sSQutTPwwrTJYM4gbCcQVIxIww0lh%2FDkOAIcvDFvqM92vxJ0wojsOBdJmC0UAAN6gZN53Gr4gw4GPBikBc1ihUChWEngRpmd0OPgKOvYguiALxkyBy2Ytize2ZXX4yD6cWayg8vIe3pr%2Beh2ZFT%2FdPAPB%2B9cd%2Bqoao7PcRgtj78YrKQj8UeV%2FaVl%2BAlU8qAZA8jrgoMtfMSONlBjlu22NMDUgYnCoEZ14hroxxkMhtnMGVqZydhTQsikmDdiFKPbnafjgLRCYTSznERhzBaaGNYSL7EVpsFHf41qagPx5CAveTBY5X8mQASzG9Ahtjbrtbu1B%2BpkFsyk7foP3Zqa3YinrQHHyfUOdA5wGXnA7H%2BwvuoDWHx6EQZBTJvE56DrPyd%2FTzDgkGLbf5J0LBNfP7RZH1XMc%2FC71IEuxzBFbtIPiAcLASqyQQ7ue%2FxNvE08CHwWNbO%2BSlfq90AGAmMlY3XKmby1TMOuFQ1IY%2FuZpBSD2WWADKPnYZXs9%2B5rAKmAHE0CTBVKkLcELdKPA3NDRxNQ6riKpTq9%2B2TAAml8ca3jgDx%2BJpAFjh%2BZU0BMIl4nB7ZPLEQI2da8lgWQ3JvRDIdeLhlk5%2FagyX53S5jns%2BMVNXbU8IC2DF3k9KO4n8nVhhTIJWpwwmK1hzleeP4cjZgBoWICRWUc3qloBEiBrzTEdGReKlBFgELLNRJl%2FmGuQQbfdoAdISlhQSCLKNy1WtAQrczUFeV18Z7sgrrPzFwcLeOtw084XY0ZMfiYoL6Epl0VttzCWAuMA%2FPBSNH2ldO1AgmFXp1PtcbN64P7haX6bdJJP79R2JuPg%2BqeMag4BH8%2FukfDqPsUn%2BBjJhbKuy3QiBBEMucFTCxWXNYTDvTuIdIHFq%2FmAquviNFLm3yxsJXY9k%2Bl4KwaUfnlin0T5S%2FhvBxQ0kxrxTKYN30z0QiRqRyrMx3H2UiDTdO38iyTRV7QVWRsuIs6rG1mk%2FIbleEjxE4c4I42ejvH3lPK2QzkR1HADbYXaOatIqj2KjhlTbtxycno%2B6OQH9Sqv6jKVkXq0U75%2BZJNDpvbQM1qPYj2Lb1GFWLZqLFlFSEdO4Hm88GNcrH5UgDaSxI6emWpb8aHdgxioLyobgiewG4Jb48H8BVGcx%2FtUkGAhskAdLwq2KPUsy5HNfURsqRtIjLoiVzakEAcCoJ%2FXzImFYFsN3SPoeZ49NoGhpnwy62xNXBT7a8twGADra%2FpluHfWgpAbbKBTOEJwvdMLT9Wkv54AsyGDpDDCI0bpe6SjAUCzEYBjaZFxUKOZmLYpMihoALjJkQjKLUfwYuEMF5pRaD95FLA38rxFWpR%2By5HiFGWwRxp4hS7VzUI2KSdhf2rES8qAqhS734J9FxYRiRGOvFID3tMuhyBDxzxOgdAyrHnQAuRVy794LuUxQn6NCTeFNtG6pnxL9pVXAVHKC1rDnCsEYxA8sYYehsIFAWxd65ukIcvVfTDcNU5UAwlwSEiMJHS2Eu8a7waMcpiyyoVLKwAd4gl7nltaZWDfQlig%2F20g4%2BjQOKg0%2Bk5ytlRKEP36fzgRmyhnA6iWBEgJi7hZ7kLQ%2BlAyOho2jgngAcHSmY7Hy0oH8xacSfnxSFCx3rojGxo%2F7k9lDsO3QFL%2FKXI8jmUYgjKph3YeGo3F6rqtvkvNuBUOQmjPyOfdjqiFEL2WSZE55sE4QTF192MBNoXM49vssWiIc0qTIFtwBRqRP3FlQ54itSYryAkPfIQk6nZANLtCQEeB2umIZco9HxP0yCVVRGFz4G08yf2FO9abcvaZmA1mEusbwDkWRehh%2FYcc4nxY90rAzFSewDj7ea7EHi3FGH0ahp0h4qkQvDiteTBw9SxhoBjymgtDDoi0LkMc4AT%2BiedPNxyMKvxkBeiaNRQlgjD4rvyDTFAENDklpnHKcf0oxBLET5%2FJDcZ2b2xWiWCLigoMPC%2FJAVpZSYAadEk9qbpL404G5ZSHvWi4IF1AVynZCrBZd2kDFfv8Xg5fvgFIn%2BZNLb7NUGOSkFb8Eqdat8iq4GIfcQ4ksy2FS9nBVfSntbR0j0dVJNtEVFjqrFMrk3nFMTf11tn%2BAIB1O4KDNe4MCEfv0bmSwt9EqmMhTS5vYovxXQBnA1RKzA9l4A%2B7JHSeAlyku2e1mguOR48hP8ynwwagStMlkQx4Til%2BD3KamqwlsLitvsHAGYepo7e1qnM1YSmggPz%2FFtVemm6E8tBQY6kubWkOYrwzMa8FJiC%2BQbfsTsVpGwUX%2BEm8XLtH94eEZqpIM9J5DEn4hnUukvJeOJCF4TEcL5XdFmDsZ8Tii9uklu9Z6zPESyDtvBzmqFSTGOSCLEeMJGiel3w%2B2li9Y7xdQwmBrbaOFFP4gLEpAcaMhtdN0uQniSMsrFM93jqQjCfD12B%2FSO9T%2BT8P7XUzMjFEDVMNaG6F5EDZR5ABZax2JmiPz%2FNVEVtkMKWv1qaMgqwC79aXOQyYUAnB0yVAhLTr290SYYswHj29ACA3xqDeB7bb9%2BoqbEx612QUKCFC9PQ13s%2BSJS0DOhi%2BvXXRZ3w2yE9IUadUCZfST7IvPQml%2F2FBy5RyrwXzoyAZfY5NEIbzyeOLD53YPDoQq1QJto2b6fKtE6dtjU4nswD%2F%2BgWCFYLX2wOrhglEoSthn2zQSoSyBsyLlS4CjRGE41Rspb0WMG4yTQD71iDybCfGW4KqzYAdpbpUBLaiMFjORF9roOAV4pa1dveUmQ8K9jicUS9zUk7bzQQKwZ6yEIv4phFAKCIouU9anuSTatwIb8UaBiAfyVlnf2pS0bDZ8%2BTmHyXhUszm8YOOAkoH%2BXq0Ks5be6eEZMZaepijQyIEvCPLUaLcElbn8QZAMLoWZKIZvBQCiVIhXC0zlpqOSDIWVXwgL1FiprBEOuPjdMgDw5JKifCKUpz5FcWPR5Gvlc7ns4rnroqvtE7UInM5hrPDjHAj5CilMIt%2Fxz8pcE4WJcFkEFgLr9YT51BbM6DXUC8aWy1Hcn4s91Gfv13Mt8s113QNi4vDSm7KlyDSkzxy7zVqt4T6fD6ONmp%2Fz4FgTIUrm24RkOCExEUWwnshEgCXWUzIXwDJ8XG8uS0AcRg7tiNnQVkA1dpY0hnLhbLokFgGBzYzaJCWEURO%2B09V%2B8fYp2A1OYi4DxMIyAf0xPEPBvCCSrUjJpkIt8HTNpiHqH5YmO1NhDFQwREmYLhwSSIAMybj8shDoG%2FZQWaZA%2B36Bl78%2FjqLWlnoGu5KEITGlzhaRMLKWwAJRM4Mi0KttPZCDWywxrANrN6oGEIQnSu4xM2g21bEW3ahEEwKZB0TVR6D%2FadkdAqmvQqr0xWpsKwCAW3Eq0Qg1gExKremBnWCDDNt4uiWFprzSRIDa8fJFgKEEqYYW3hKnlOvtCKnytVuVW2rLxn8d0il%2FBSu%2Fnp6baAvUuouiJUL0%2B8IQrDgojW2Eq1%2BlNl2oDqf7kQoGyqrlFzt31boqcLJJBA4%2FqNfoBwObbGhJDDJV84YgUOXEchkKNY6AAhrM5wf7D13XCoT7IuVbQYL7rEQAZ0Zhi97HbSdlIGIA31D5tkSiKloYrnvEay8CxnGlLmOLSjlPN4pfhMNOE53Vgw%2BF38uJXBE6uGpfs7zQZTbjiw8NC13UAdCLa0bxwl%2Bsq0ttlfidUJY84tLYCgWjQEMCsseJI%2BUNO8V8i33GLd%2Bh9FuQq4mo09hKjhRMqEFeoffCmfDDTEyUc9fRHYSbC2%2B9LBEcpWCoFT3pY7WhB%2FhlZ%2F4fifp4vRxOg4YNY0aj4ntaomu%2BiY9ACLZA%2B39JSaHfM9Zv4T3qSZ%2BW9wsoO%2BBxGGT6Eky%2BqE4lETHFJVQT6VSBHMOwvxGWK79FN0780RhBTFkepdm5%2BUhVwUPaZA0aaTI1oEswk2ZVpiCloqyXiMhE05qAJDKlf7pb2dUmuOUyzi47o1QbSfJTfSCoxg38uxADrB2guYZk3QGINZEm01iTLuJsk3lXRyfUcxCfB3RMYkJspDM9BPKIkUec2zUGzxEuC55II%2BJArDkAqnzJkIX5%2BY%2FmjVO1SOa14oB5m4hf9htRBkU2sABrl7P1l4JpbhqyYKNBB%2Bfx9PzViK%2FsBCFsPrWJA9Pa3R9xZRAjFxH21Z%2BQ0P5hNeoEAynLlHVbvmwwXafZVRPSuF7qopEspzmgWhoOaOfNTtgDXxo1qCvSQ0W9O46gRii4B%2FAOtoRD57smbs90cpu6teb2LON%2BambmLC3iYenHhnnOoSxgTEOhOZzMLE%2FWi3cTvCJiFA9GCxKzDQ7mqN3mX4o6XjxEz0wCPImWFwKY7sjD4GD7gpa%2FyqB5vQh2v1BJhFe4o0S3OQO4BwaYWwkpI5zVQXZrUl3YbNIxi8%2BH8bMvM3VPcj0DBRyYJT5ZKz7CQwSgk4BnkoX0%2F1bffCikLQmUhUfcqJ4pF%2FhqdnPGos8wHSVn9PXco4YrkecA4DkZAmHNpT%2FWWcZuAmwRoKYGCcb28WfadH%2BZImJpSnJ0fyRDjqUyKzLcTZdiq3TAEVuwkv2nYaHphGzWmBIQCQVlfpqgS7onFoA7cbsrDcQQOQ5is1gy0HUqjGROWVzG9gW%2FdwXMYjTGR4qu2FyCX4pWqCy%2B86DtYf9rr1DaJKELYAAu9r%2FxJj8ifyf4QDB6HL7KM2uIK1nIRIczJny6JQAAN8gEAPHMJ8X8YEXUALDoG3bkUC0wRpQHi%2B%2B6PUhd2T9pJdG6JEwQypI7UpAgCCMcbD%2B3QnDCciVOyd%2F1cfwGwDASiv0Oy9jJDdzQWygKvmFyX77UzFg0pawvBobl%2F6MiT1LMGVJuAEeDj3wErAzbodko%2FLf6AnkEhwyGxop1mWV4ywNM2Nw9kL1YgUh7ts5JN2oGOLRaTuWMHONHHCjkOI4mCBf%2B93bZB%2FdCVghOdwgQcAuMwvvjQ25yFBCRBgHheAnDlHLRbCsSlrt%2FkxIInIbEPAff71EEt7iMuic%2BIA6fIyfNjLSA3IkAYxjywxJ8LFnq0EoPSSMcuux4BT9EXieADf7y9BM6xJRAqMUmVCUWIlp6eJtBel8CeOEotQRBtUG0xDCeZAY3uawbmGZG%2FZdgNezvCSUxcs6IxqwTzM40P2kPQGD1PfLGvYNKZkQkflZ4%2B%2FOpTLwdKMBuIn04Vur6yTlAt0fRYugCQmeQJqbs1zQZKQt%2FV0VwuWLmexPQDBXFHY%2FZv4iRyCF0IkyAAxigAzfAnHECPlEBZs4tUuFxMCezrDCF5C9niHMCjHK2WmkKBAof2KB%2FVd2wGP5b6k4Pw7pYOsgOCYpDl7JnPJrxe9rgpomWCYDaSpEE%2FZfAQyPuUQrURi24D70Ck9JAcbPkxTKJV5Fz74aTp2F9%2Fhx4Kgwt%2BDwxAREu8tV0My6yvnqPQrl2Jkyk%2FkrhXh4yZOc28s8tE%2FwHL9gTDue%2F5ceBl%2BTxvL%2BgGEczEtL9KQDvow6Lz2ZdskBQcNsOgHs2K3tqJwWOtvR%2BgKanpib8ojucrt1%2BW734reMv4I1zuHi0GX%2FX0R3UyFEcWCkUKPr8U0EztDvvZifWZP4sjqaWRQ22WJb42mx0O%2FapaVBDjhQVK1YHkL2GlTEZisjhj%2B4r9FZEHGeqVkooTjThLmc6B4qexkbFc%2FhT64kjC8%2FVku%2B0yqyIA5IT4bChZyMtPCwNBgXQFaFMQDskAHUZ1e44o%2FgStr1e3DgnlVs86wM%2Fl3ybyUCGSMLvXcYuUCmb7GMCc0kNxoQB%2BRbRXrTCgCZiXIAxQ0mpMqifAlI9FiQty4vTfALAxThTgVlhBEUbik8ZQS2JNRaaZNSJJmRdXBvuwjgg%2B%2BfXQgLL6vPouB55CuZ8RH7ThP2oXNE48KGTbazOVFIf%2FYFoKgsMBFQJjj4FRmlkEeEnQZ5dvDeKbSsxRi3KI7DSprIIcp6QVKZfAUBhekLT22PjD50EU%2FUNpUDBWeSPnQAqTUgdCZOaU0hOlaH49f3jsNhQQ1GsRr8OURk1JEsxaOJae1odD16v49EOu5Hhk5yGfq0MDzFhi1G4DWzC2ohym2OcyhUCa6DnIBXFCsw8DLRtJ5oZJSmgMgp4rIMVZBBfhAVb%2Fx2wiAQclyqh%2BqBD9R4lgo4B4L2bmK0Bhclhtg%2BLxvpIKOClRuuqVqAsF3LoSlhYw8CunBSU7CI7WNAFj6sLR8tKyT2m9xjneCppopyGAIlo1Ag48kUAKaabGzTupMQNs9Dl0O9UEmTkZrMvwGk7%2Bv%2BnDHHEaCwakl4ef1yHpRy6IJhYkLzaYUHvGFPz3GDWD883lqaYgTG32AGXE%2Fu6atkggBSkcQJ%2FUnazCkztReQrfND3OLs48h3AFM%2FSf1vwzBCq4uzom4mxYViD%2BW7eW6wmEo4WhcfBXtuLM9DfvcEsZo6BP5FERgIv3STkNAL6aAry3xJCEsoEVYt4F2gBod1QT%2FbLgyEv8O6eH%2FMoIz5AZd6psO4rlwKh0Tioz4EQ167dw77BPSYd7FD1dbIPaAGtdZYTAqwWjEeVgYEIeViKjEIrb0JuC8pSqFQ%2Bh66g2pNzJg9hHRA5JBy0KUmWwBjthkrZxMJnphOzb3yWomlwppSMSIONtJdzyLwZ5wjj%2FDGKJ%2BV%2B7%2FNntcUgAjRhrDsDWwraPNSy9DPvqYr7mVDIdwkS0jf%2F%2FkRodl1qx5ZCU%2BKlJcpbrnR55zVtWwMAB5olzwi%2BugsYgJMABSR1Zei2tisHqfsT3VZl1gYN8umF9rdEZkn4J7hVw4PXGC%2FrqYwHfAjnrmbD9vBrsWvO9XWM9bAndNgI1HpZJIW9lOFeIU19hLcKSJ3nHgyPh%2B37khgGIGsFuxnPog8YPBSCWb3owamq9PZjnC22Ixq7S5Uya%2Fi9KZ8a16Ho0zx%2F8ha5l3GBvlWwhrxJX8fhHU70JIXkSf%2FLppaRcfkTmBhQwRw2nG%2BGgnypKZ8C4rI6WDXpJyYGkwWcRmBcmV2dftSTtXYzGotgStg5v6QWjYrRyBEnZGRX%2Bu8OUfFzMEnkSo74O50OIu%2FJiVH%2BYs93ZnIusTpTUJMvX7O95J2ZCv3yC6zR5t%2Fm1mTD6ZUKuk7zg%2BWIHe%2BK2lkf2aLfqkHnHuugaR9bD%2BcNg5KL%2BRTAMc5eRg9Zqw0BCk6tCfY4YEKLvJUnN5iiaaOqRHXL5c240mOoHDBQZS9YTVROD8m%2BtWRgStoeWhPAsc5RBFAcw2N2%2BLIK4b6D7VXJRO7hBDLZAuGzEuZOeKxJntGhaIT8tAjM0XCaLqH7VSEMoV8L9eSsuxF6e1Uipp0fmH3B9iwePzs7g6H2s30V2njtLvzxGUW4ryNlcrHKt7nJzIV%2B5Rt26izuXzqS4NzYLEQnKrYNHn%2FOXz5mPdUg8EkXL0JRtb%2Bg9Kfgy5oSk2XTwCkbLCDTDcEnNgqhfWgasBQd5wBcoxLnolNxiVHiohNBqAI8l1cLxjy3ja5oxjvOqIZfbnEisDWBnxckOmQ0k0QtCL2ZugSgUtN0gHzZItQqPXJNvB9udnTsLCxT68BiUTXNQsFecHlmdWw8kMn43r2YMr1cE%2FagMZXYWyqx0C71tA9jU%2BICuYlLeRFT8RF3JhBhE6qdBt9ixDETQUBEN0SskmYXdAl2uXhNyvn9jyh1oMLcPeJHrSiRiNoQmSP5n0ToKFN8o798J83quwq9bKBzVuMvqANI2aAI7%2BsNQerNqiZjHCVabcC%2BND7zobwkXEdatoxXNEFxDoG8zGcuNqCsk2YVokiJ%2Fq1A%2BRIHoprBHIWN3cOoxTXl25u4RjRTViRIRsgRNFaG7eohlhyskF3oHysDKJf%2BLg%2BUu1H3KAeJZHM6LrQmgryiuzAR9htMeS4CXs%2BJcGoOl%2Bt40qCrGVM4aFAYoPUr2Hw9xS%2BKilfMvtEx5srulLoQJjjNd1HiNJSRICK0jw5ESxhWxVDiG4Ncfgr5zF1V3BTMAXtc4USvwsQ0sC5PXjjjooaQurr%2FZyAzueLroaib%2FP2FJMrQ0dhJ3sUGunQBCCODVcC86krkXhnNRrxdMyZPZg4Y9X%2BW6Aj1pPJuPsQAOQeOsan5AlZPPovwOb2EULRJyJ396LlAjISu3Vy0k08wR5qXUYU94Vu8CQ1nFdfsV2ymQE6kdtXMXQkA%2FRcTOQE4mdhbA46ZmR5MXsRkSygi1innxz8ZzMFYmnNfjd2jNPOCYpMtNBTIpoI4NSArkOBNvc8gHvS%2BUdhgSXX4YcyTYRx7wgizrR31DMdwJS4Q0ngkbc%2FdTSYi8YimM%2BqAJmvXBHXnlJtk9FWdiqsYcnYfiV%2F5XqRrDEes4ya5z4Ym0LR%2BDZwLDRnzYObXj8ylQ33ehievUD%2FzhWEkKC%2B3h8KmZSpoEac7AZBGnLnLvpmd9%2F1Cw2mH%2BkpLrsqLmv33JiWdQ2EefR7B28cplA9sHDWkunqZTSTSaU3pHTxggK7EdPX0SwjESMNbADelwBlHDpJL5w0uAqhGpL9W5dqx7G8ancisTjUA4LnCo6H3%2BPXfxuEJj8riw5OrM2qmXjA4fLBZJnQACVSopiMI63uJRqsQqFvp8Knmx5B3ZIE5R7ZmM4LPzwmf6%2BpLCK0FVvucQgEEa3%2BUkBlM9rFTDWKUY18WxoPDhh8fOxsNDRIAhYA7EXMUS5sgAy9wvIH8XWGo%2FkDYGGbtBRQT2xTxu7eyuIxwEIT%2B8vzD1gaC1ZKDgw5DL5mtUrX2tSZZ51GS0pMHuSBrYz0mbAm34iL0M8VRImm9BwG6V%2FBMOpEkT1yb4vcvTyBotcNEk2B5UfHeVBLhUYXYJwbwBA405WoSayYEiAME4iKWh%2BR2k8gzeTUXwlhvGIROc9qHDd8Sn4drwCCaD3tpsWvJUyiWb261S3aL5JBo8RmCWIwlBUA7Y54egH3Lr9jSQyoYA%2BY%2B7s301lw%2FRaJLMw0tCZ7G7FNLDtlvd0gzHRGJYVxIpMmz19ZGQJfckEgrm3gFCzIalN7LqqNnnkWBb5A0reABjqz58NvZsdzcCned6baQvhfdw%2B04tAHFww7QPrHMAtSlwEdomwwIy9DQJEsoZPtWaU5r5mAjH8sXeiShZEVbAr7XZoJ2bmghILcXU9r3qQLokv7bvXqtNWsNGEa9j6bF09j%2Fss7b7kQAFTmxYiSjH8TFF62uEsRcXGsOEagHMStRZSVuvx25obqtQ4B9%2BiV5YVhPRBFu2ARHMG64gSIuNMzF3sRH%2Bjnr4WJ1z3Za%2F1tZ3G5aLjIUkmRLBFRSZ26gLMZWxeyn8qz1azUh%2FSQw7BDCb%2FBYewy7RJd6hum%2BWrzCGo8i%2FMriyyWr24ylDGvIyKnRgropzQvI%2BKcyAwmQSBfm%2F4CbDXG3rPwJro4WM6QZvLcM85HFgNwXQZGzKWUSjZAYDFxmO3Fhfj%2BmCf0JhJ2%2BCoU2NEwDhOWJNMQOu315Ff3zq5t%2B1RzGqYQ3grDP8vFJPlTweRsaUYquy2tVHA5UwrYUAyPDhEi278Hr3Np8Fqk17J68w9gpqEETqtFwckeoDujZCfMrusXlS4YnHpxfAYv3DhchH9D6v9ymi8W0vRpCz2z9PGrNGDiEVkClN2SZaDiFzCtbE6bwz56YNKVmdewB83piWuPGTmwVuLjn71lonm4lzDPK35ID%2FIeUFNNqEnn3bQo4c3mjuGtB2DFZr99QuiVrIw13wRs6B3k9JM8hboPXQ0GliDTIbcVS%2B0PCpEctrLf5Nc08VwYLmD0ZBdGrwT2axMhoPVu2Gp%2BC%2Bz1YAedB1ASD9gb98wpVL%2BT40TFk4S4JorISbMoWCg4BHzIJlYrWyIcAU%2BN5Ss5YVx%2Bs7cLJWz1erlcc8flwi6UzkdXlVEIhhpHyPczJdFUbhlvnCjKkdMhs%2BLYxF9gAqD6R5jwkIPhtUg3VbdWaM7WKPtjUJ%2BZAMQsFRD4eKyt2giiCRyK6AKh6m3nrTciQOEStzpUpLP8xbKsf8C%2BlzjH0LoFCLW3R6zF9pOm5eQRE4hH3ZGtY9wrjkjZgowRczFm1aKhVJPIvBfnpsXGNa%2FhbZFfhWCpwBS3sVJftLKE3JfF2DzOa4CdWUx0lZQsz5mZmeHy0H8vkd6XElgIHWCyyMDbXMyAn7EIhYDPVr%2FIjZJmDHzucmSWXmfgJkCcxsRifjwRR6RwObzp4qy6BgxFng4XYHM61sdJ1%2BAQyQn6mEZ5JW%2Fj2oCEEI4kWXR8UOEfgo2r%2BH9RvdCSF0CkD%2B2OvbK5paFBevMaLNlUTLNdYokcGQ8s8A8SDTMLAE%2FmrZorxqQ0MHoUGRK1e4NUlwiDrW05sYEh9AzuwBhStyyCFB7GsxTVWBB%2BHBm2kthOGwEuKt8QUAl%2BbeoHAWsKOSxzDiwHo5HHk8eGs11f%2B7mKGTEjiY44OQO%2BadTugS%2BxxYhnhKQgGNVIIf6YDmRvZTpkGJa0zaOWCiIOjlLdI1az7MukoN6PWI0jKrrBzik4sWr4L47PxzkY7SXtZRg%2FjTJcst7tTtjk1k4WnBVMaoQmZhKk%2BsEIa7QBzjb%2B53ZcHgHVZ4SZ5SFyhsubLchJD4XJUOwXs8L8KPJZ1mvRCj9SRTMrt0AC02IuTn1aZEyiIkxWIkDUnZdvlLHUwGxyfVq1GvAPEgflXhbjgrvWWaM3crTgD2ikCUf5Ym0PpErSJEVU2TlKQXmynaUD%2FDhh0a2pIeFPJFug9l5bCmwREgg6rk9OF%2Bfa8wRA8Q3e1zdbf1%2Bb%2BGD2EyWt2ZFhFfReRBe0nrJyYunS6oJ%2BHTHGR%2FrOYCwxhOi6W9Xm0TO1Z6Gs%2FpH7mJP4uJLgpOYFiuSmdkorz47yBKCSeQ5c2vUmGhK%2BBsNkwgwgpMSFcZx3AtGU6f3bGEbKAKwRKAkI7DYDTlmHBC3G7uHzCE8ODVSxXAq1fq1b3enxUxpzfZkbAZv0wgRDhH09LkQUWRinVox0KR1ce%2Fz%2FL82dUkzIc8Tbxz70BXtoUJf7XNp%2BY403mOXpbDpNuJTRIp%2FTAZ9Ye1%2F8PYVz3%2Bs6i4ELOOQBnrbb5wjOgAdOXQIbf78%2B7f7TmZcBHXd0Eup210esfgY3mtFUQHnz9LSS3VcBSqXzMYlQI5n5%2FI0gkvYkiT8HN2CHnI3QenigBPFgetXnEz9yuEzM6TJYZWqq5GmKBkEm0KLyOkNkAtA0y3b%2FB14FLjTY4ngnjEopWN%2FbbAdJZPp%2FjPY6ALbeJC3jY7%2FBTLtiOJ2oHYU6ZI3wJED4%2BD8S4jUw%2BXAsR2bK4puLKkaTi4lh%2F2qBZrSlPECH7eA1grViKOvJJFc1CuTUbHNHY1Jd%2BZNjvIkiSzzfA0%2FC6F7TQ7QmIY3iXAUR60BiOAH3ByD2DxZGi7B8pDXZxsstjyo1YYUzhn8MjA%2BC1CiZgIUKKtsAbN0RtMbRKMQ%2BVs0xBoKkGZ0SVU8MWL7WvMZDXDOsrsZEHsWyvWyW2pAixnEdZrtLhSn10lfL2URCCy2EOkRPb63anQCZHFsNtCgJITmT5d8DPEMg6IqCxBwrhDWj8oN%2BLafD%2Bm1YYCRLPQVhlCE1WOP5J08n%2FXKheZ1Qvd4l4mpk1LokV3MtouyKoJ7Q9aSwvYlKou0adGF0LTPnuNlHmCp6kJwWA2Hyf7y82jo7phW96NZbHp1IJwm0CJQByi1FExlGXh47%2BtFdsjJKBURn8QrRJFh6bnDknaJ2kHdjdi4f8MmTHHZhtuApHBaGW4bBlr5uwWDxIE0hsE7cEV%2FFm2sWD7M6i5hcSkb2cSUrPe4xHgMe5srP0FE0QXI2wcSTKTi2S2bskhiA5g0gOYZKQaEZ9WIOJE4EELwKHQBLeBYjvHU6TVoEIPBSXWogwO8Sl%2B7xf%2BUijzVLGgLIUBIsWLaZSSGwCXP84l4P0ipjlErGVJEUVWShYr9zMqHOgFw2E%2Fjen5HkxGlRELJ0RIFC75RlEtRC9mJCxXY6uaCOPjJ2T%2FODiRve3a4Shol%2FVbW9XiQrILjBSOahhG2WdJW8J4MdCEEUvUNI3vJVBzb2AxI9uBOkh12rCKQ7e7MhSYMwq5nfb%2FOxqRo%2FVqoZmZXTKEKEwUYWsmIElQtekkjK0DILanFGNZ%2BIY7YefHIwNwUOV0J91qQkNrNC5KWMKG0J0PCnE5fzqjB0C52JCzgsiTRiA1VtmTlAQ3BUiGTSncGqjU%2F3s45Bl0Irr%2BRa62zIqKBrfCrHu3Obb3e8O%2FyCNYbhqCxOxBUIpE8Ql1INnouB1oJ4NhZxmh5fU0W%2BiRKG6RQCaVSAtMJTECMEIm%2BkHhQGMCtoPjm75Gs7rSE3QMSIFS1TMZ36cvxqTA6Bhc4Gl%2FumtDGW5geE5rZroT2C2AKnwSwTAz23qolOiqEn4vCkGlYL5GUKNFBiEVKJbcdNj6w26E7leiQyguscvOFwDxN%2BjhbWu9XD%2FCg6sCQ%2FgL0B9PjQRf%2FBrqRIDhEOsVrAlpkcqtc4eZhZBZCIZekcpqMw5uaBgI7CzYhliH07s4DditRKDBl37yNHiQbIxNGc2VdHOTTFw8KYqWSHJgHKnvcuY7GNvgLiAaIjY%2FiIn37xb5Ayr4A6YpYHkUDF%2BeUWOHkmWmhzfJ1nWxVRHq9kYJB5gdWsW8yU7RVkkoELr2CzhbX%2F1u3JW7eBCKffrjYTzSwOlD6pi9tG9qQC9NrgGxMKe0zp482MD21aUWKqOu%2Be6XG8q%2FNqVU5MtRQPMpa4jItyUw%2F%2FkQYdQcao7M5KyI2MAzM07mA1jaXAktyvwyzHVbVyklje3kpFjuudZXSeqgEEGH8WaKFmqrFnvGGXoea3GxNopY4lkr%2BjfbyzhiLvhaVLwMItFgr6FVQ7KuPIGCJCDpN5qJ64rHMX3ayFsJ22giNAeP5FqUqCQUHtFGNrrJGLj%2BZATK98J38g6yfbnyCNJt7sfjg%2FjDNlAJEsMt2Hx9kr3AseDtrEQfw6dQBrWNMy8UbLDxcc8kv0XyHwDgHeGnFLTNt%2BpRKGZgCdZMkhAtumEzY1lfdnEOcgVWK8IE8%2B2yNDeBnbelDf3iibsdmviICKyzC9tb%2BOsGTQlWE1Loof6bV4yiCh317ycGqei%2FruFXdVqj0xy8VdvZ1t0lt69ta10lBxp7mDXn4nvwCKQDUn0tTeauiQGpjwgk7TvWBx5P8X8f3TEFfFprYYL6u72ap7RX06yT%2BvzAs6pGx8JjEN8Po%2BeC%2FzRVgkbLPPpD4%2FYeTdo21l0WOs4NgFijCMobFEU%2F9wVCLhQ1ng7k3QhKL8OtCFuwCxleAb7IOCApXUq9T0AM5Fn9m7Tq2sTWD8tAy2Ckly0Uk619UyGPoXaIld%2BowtNW6KttSwdSuep7IGHQuXmKDGgxzmyN%2F1Q9vZlnYS0pZ0tzUgB0EJ4MEeMRavv9a6D9%2FM0HWJbPX1hRWV%2F5UIQeURd415QTYLhVR5PixXpAH7xZbGkClLEg3E2q9Zp8%2FVtNVIEsBFYyAmkWpQYPmxbsY%2FftbFCZ%2BmBgqU3%2FTJD4L2PEbWhTwq3Vk81VVWgCVdDxgINYO70TwRncwSBhkWxW1OjIjnJKM1DlO1ngaAgkbfgLkDccI452c6H7IAm8g4%2FU4HGj1AG9bk3rwdJ8sF64bXalptBXJUbYChci9uqP8NEDGEQVONoKalDIE%2BkUARzF6GtJkYfpqYWZCWKuqwRyDAi82LQ82jIeCdHOUSs3EJBSkBVVgFOjFoJK4Dfy57o5C%2BOSbOwLWnLa1ZYEFgQ5EQHL84II8QhQJtCJTVZpEv0TEQGQxcci7yVbq7OIhZL8DzeMjnCejcL%2FXgCW3KgQpYhe8VXDqGFrEqgLm9Aga5ovPRHgsdUqOFyczyyz1%2Fy5HRVAgFMNqYoxcp05Khk1%2BvJvWvqxt00v54VYgN6SZgq5B8LbTazA51u29OM0u3TFLu3MZ0SIGiOeG%2BWjcXRWFhmPQqLxcQJy1SHWtPPLYA5tk%2BsuiIZxg4AgiBDNzb2w3E5Wr57ZFX7ECttSqGRvIfXCEKSPLgN9KaxoSJZOUyTSWIjzLH0gX7CECmAuTGlqEHtOofUBCIg8RqYFBfpMovirdfkU1RijOJcJ1ot%2FnjApigsstrO5TIIA%2BmGDUJDc3LmiCCMQzBU%2BAKtmmevB2%2FZdWGYFntlFjOOSIGFWK6YXPoZmQ5XbgDLQ4SE58kfSinhCzDtPNFAC4A7VFi5HiNKceiBciC%2B6IE54GShYjUYZWdLXnSPKIw6lvFJBosMiWUvlFNQAn%2B4OHDgSmTHxx%2FpaR7IbXfpRxSP0QP9yeNYKAx0cEkOgkCSAU%2B33ZDvcWJAJaA5fsEhTYsggJIOhEXqDGQkEcfhb2QqnomEQUraMQOYIXlK7eJDXvQyg2o2c0QPAStMcjFehwKFi3MzMIyKXstfSGPI7XZXVAbuyj0PJzgwD7jgncdLRKQeNioh4xKxz%2BA0vMwahxGgJ7%2FDiNElomlVvqCTdQNGAq5mpczKfgJh5Jh3ag%2Flr%2B2WJ2KT7u8NEZWksH1Gdp9OkCDNEf1ZmxT74ddewGr2AvpsGIA5gSTFBhyePLEirg0BLxjrMUanmU5ySvsV8HkKFwIv1lplMvGVWWHoUundZYqcwS%2BTsl4tJuTJt7KsU7zADh6IEmRut7aAxVhl0S2I%2F3cBMFVESNlO7ZNVQ%2FwE3u9BoxcqGgSH12QdqFUjB3GAJBhy9Bg5Lv4ktohKG3m0ETTvZh%2FwuuYSA%2BwIhK5lBe3QWwX8j0KmzeBBwDGwk8maLid%2BdoS%2B8VJ9M1blMTjlEP%2F1JPlfI945SBV%2BAGjVsKE4XCFGnI%2FZdjV6hAKKAAmvUx2yTYQBq%2BW9c4Kuq6UbT%2FAHtuELClYWfJqvtW8lo%2FBDW%2FA2HF13HW5cOh3qJf%2FDqcge%2FU2ZD1T1CM7aQ6S%2FPhZC8GUzX7CuUW2MFxPZfC9VEK8xOrIKnlacbtUclCHvjCucIK6okhQX0SJZ6Q5Ff8r6WN1yduJVWVFbfSsrzthXpRj8YIilZaLhTh9hUGMOcI3w0Q3bO4MLmV8PNC1Ikzf3IBKQREtakNxSA2fmEKGGqOBYOeNTYXTKbnYc6hnPxONs5tnOxxgYszMaPJl1shOgLYFqPFXi0qB6hRR2l9bi2GIuHZ3mnS%2FRqQPyt%2BJk61wGBWXT8Fdd5Z7AH60F49eVxwNDcrfo8mLuZJ8X9FdgAzFdW4hIeakabttO97vMIgc8yRZGyjFoiRgSSDLNegVclqEmprTimI2QytmDNaknJEgQxqEu2ODY%2Fux5QMaeAp8yU44g6c6aSpJFJIzBycEFuRKE0pnBzvOdzOhU6Rbg1BxI4dP8MlyIYhEHuj40sBGuIKU%2FdQrg%2FFIFG2%2BMSxDTg5oPDyzEQWXeHPvuCIrNYEdpEiOk5%2B%2FqEinsZvBk%2Fes3hcvZXTG7JIAIBcHEutxcsR%2B0SuVjBRkHhA4qUOpdyjs4IQyImFuMT4ksnANS4QCjKP09eDMGgKWLseYRD%2FcVAFjG8CLsuMUCPN%2FIuXx4Y1GFzgj9Psh28va66PJFqsMNiu8mINlVv6lDuhwB0A0C57yj1gbg8XFZ03NaylouuwB1%2Biptb%2FfG7oHuBDJMhLHpOM0rPqAPDLo8HpRjoc5gEObdp4%2F%2BRs8Fih78VcYiifjtW8UwDz4oiUnGICY4jDyityuLiVf4sRKyP8MAhdfosWb4J5%2B2FoAwP%2FV7CjkW7oNqeU7TYRAVNyPZuwPZV%2FbHsibwTwbADE3gViS%2BkTxyvUkjOSv9pFvIo3e%2FWORpBhJ%2BgyXpFEAJ1UVMyWCmVRUD1SB5l6wj6cwl1H6KSlsw5OaLpEJ4Uwr5dpBI8RviyIh8fIzXS3XUtEo5hXrCWQzymZQoUjhno%2FMoXsz%2BK0h5DZe4OFSthDkgAutV1cNcZMBxm1%2BSD%2FHf5%2B%2FweOzAvp%2B15mUN6OoP52BhQhQ2CLMcori0Giwmq6UFC%2B9OJQRcdCHIqBlUDyaxUCZyNtWwZMpRl589kSO%2BDChru8b8kcSgxgG%2BsgAXRPnQ3FO%2BEYcqbe%2FyKo9ii7M431V9xCLHF5tGNfI76IGEtJY7bkO9V45PebWAGLrETVlc1oBQ7JTNXEA2HRrMbzphWZofQ7qpIsXK2u9XRHA889HXGeMoDjxtQyMPXUmYZLZHeebYCV3MgiOAgVjE6FLGeosbUOFdtWEICmHuBBAYGAcVGQYPDFz1BV3CgroBrpkN3p6ljEpkxmQyKESk5jseJZOgYYEcEFeEwKk1PE84C14p3JDHNbr0Eq%2FcoL2HEU9ngwON%2FI530wg0%2BIkA5yABURvp%2FaBid6JnYmHP1df4r2raCEnprK%2Bhcg3j0xxHuSOBF8oZjkhvFqa2SrKTJntphhibamPd3zUUgIPWy2xsgusAJddnoLSsLwcnioEClxtXoGSQFW2gipxpTLKEOKOj6Bn9TWDQHSrYLndZE1bvMgDbB6cM9zITxPZ%2F93txKdDbBgCuDYET7Nb4MPVQlGoBvmwa8IVpSI7ueEiojr4Z4zRqMhqZruN9gMtLumGStZeJHJKeA5QtTUyLdoZYxODAZcfDAeEkwDX20kUmvDDb%2FBGbfCGoBJALHZuiptAq5MKJIibViWvey6m4XAo%2B5AL0qX5jbSKrzpJlY5ua1uyRL3hlHEuQOE%2Bn55cjAiSh8LZ4JR2oyTVNc2sDPrO%2BX1wT8Wps5vbA%2FV%2BewIKHC3JwBQbyahB%2Foh0zya46BZ1qVcbwP7LFLDJVU1fZJnixQyKG9rdK1%2BQh8fKVUn4z8ARkG6iatsF2E1ecFNLmgrKbcTSBQuaDASToLtFEchBNS9hLzlDT7RWgsAD%2F2NStADrP4g9Uuyt%2BBCbJJ4zhpRIlZVBn%2FQvUBW4JImSoQ6UzWaQsp%2FGYI05GjY3poweCSbvIKqQE1srGzz0Ls3cghEYm%2Blq70a7tHXy6zpnV1ROnJp67VrXVq5Q3JWLnpC7K7bNhVA3A%2FtW%2FdasDM6MD4Zit3B%2BiW%2FqM9OXaqTCjGz7qCqxtBJ6QUr2GcVVMFUp5mSLYERaKGER4w1g2T9qS2puIHUhjacrQA%2BnOqPRPFAP10jdHzbWXamz%2FsaaisuFSwi7yy4259lMllaJqhHq9A4hSSECJGrhwzRL7gUYKq3%2BliKUSDfjab4fyQndsII7NMVt6OvgXAAQ0IAZbP0dl3cJMs%2Bf8rx9OpM7SL2ZWDWiGARmBYxadB4W8YTU4Kyqe%2Bp4P2HgqSdiAabcWkCgVUX2xBNKENhDnLEVzwQ1PFud1t8Xd1C9fmM9RO4oSAe6wEQywSFfmj1BgYuR1sJe8uq85L6rVMjSXq5gs4ZY9Z1pEjhH8L9S0K9nqZrmOwjekvBofnpElgTHq0wEUqlYqvGYQwAJ%2FCOWe4Uxy45dh2IwROG5hQGl1mwigusfCyBIYR%2BycmCczfNSaDDNf4KSiLuQ%2BHFURD38EAKmQ7LixbEN7g2EQlGGsYbh1AAn%2F5NWSu%2B3%2FI6e3sG5MbUlvlroUr3PjQq0s5cFKK3c5mr8270X9TNnelk37r6NOVAeq6GnKW4%2BM8Kfu0fYIP4aMYzcEZMjDPHHBOkEczCCoPiRjCDsSbby5%2BzF5RXlTz5mtk5Nz0iK%2Bf6i3QVqITYm4ITxxASDLqrvDAvtFoCvg9IWTHlHgNPtMbhEYH8mEQgVWdgzcxUutiLJlIr3syA2m9ciD9rVeA7bBo%2BaEpsxnUkV4ZQhdQh4EkWI616%2FX3OcN5E0dWHltcBPI4CxJv9JD6p5byERKwr7SKKQEbhAR6tAeHK%2BN9WrJu0eavrzAN1g8IgqEphR2aS%2FCygB6QSHqK57E0KZkrsWaBBYKrLhsnUx8hxWrdg82iIkbk5c9w7mLSAmYjaJkmYEEDg5o4uY8Xc22T5ucP3psKD%2B6gCbs3AYAZA%2BCDPzomIrKq2JhTwM%2BuxOsfb8QTeBmJrFH1pBaHofV3EGr9DQglt%2FZHOXt38CVCaUG2fCE6Znj0cJheyhQYo4SxJDde60C8wJjOi5svGpIlc8icCj3L%2BWs5Q3Uh45AOA1JKG5Hw3Q%2BtAknoZTsIENvB6nQVlbeDrjGZS4mbc2QyRUpRLVIez15giZyAwJ0bcOA%2FXmwTm6iVyDADlGNOkTWXmtFlk1qpQwkMl0f5pR3pOh34yJvjG0AMVgbeHC8AjAR4w3hc0rzCA11pEVzKDRdeLG0ZDackBGMYCigWwHSPPkAhmRWV6GsOqoyjSi4GzAqGNOxXfwAWudZYlS%2FIknpajxreXwlS1UkIRrsFzlA%2BLVqi%2BU%2FTPSnr08ImiZIe7kDNr1isS85vSSB9klPVBRbm6F8xtPQMfwYU6g%2F5iik0Bq1CfIyA%2BbxCkX1rnf%2FkPzn7NDBnQTiCX%2BqYghyK%2BEzqsLQBqEShM5svLK0gu%2BEXa4nPBgFgnEbAMJQaaZ8nWcvBE3B8aJUvVeM%2BmU4WmMIoD6jyyOvq0gUuwGTibhm2e5MqVTLGA8Sct9CiWsfCrGnRHPNO5IPJemQwKX0OKzuemw72ckgz7sQmrYzZrGJoqidozYYghLU4YEHKlwwqzePQeEUrmMLGYyR7dS6d8bZKKcJh7DBo9O74x9kUAT%2FT%2FDhkWgwINF9RO0xQT4KZicIQYklHXzYanMC8DVPFaXByqKiCUnGjW2EYo22pGLJ8R%2Fg%2BB14gB1XRVqCFsX%2FQdQbFuNrUoCUGAMTjEYfHo6JkUhUywMEZlastZhwCsMRJNq9Z8DRP3Q08BdGRNCc3mUtK%2Bomk5DEUnEkBO4C%2FSNrCrwMDX%2BoBZLtdhaGwAi13ycCpKwBYidunbRWgbjwBLVk2DfJpIEHpcUe71r3bM%2FoFXg3iecHg%2BJdprS6NSOBdPgGsZALJ8gOK9o%2Fc4IWg6jLbP6Z6ciUUs0Om2PoAH94BCEZbIRjj%2FXDjUn8MBlopEb4zgMAf1ZjX%2FQABaRg2jMQGMR4Pa6gHIuZCmGsDGj4UNN%2FqFeS1pGEaL4FQnGa8KnUPTdGQfTmEP69VUtlCmQLMlPX2EEQDMYWUjerLq9C4nGoiMiSqyh4Dzh9z96K5fCuBVCvov8WSmhFcLqn6mxYaiGDen0U3CBNGqAwHp2fyCv2McZpmhClCsOHv9nHb2AmKH%2FG6TS8CXVAyNMu4GcKZCIiItICb0rFGK5iKiW0LLhwQl7WfiH3exzTbtLNoh1guMTISioOJkssJzAy42iMDBgrZVWyKbiHbNtTQLrSq2eX%2F%2BlgYVyj6%2BvgLIHcruE15MHrqukK2g%2FOcjANWxcnFR4h%2BsnAtHUv%2BFPkonZ425beA%2BfdT8PHzJEcBiNxkVou5kFk3zFGmf7ssxX8oJPhAaOaYG2Fdi1rg4Xc6iAmLFDL1ax806jV0K4gw4vyMPpfosguOWIvdmqKSPDjQGXo7hYfbTKTQ6c1RuflmXNK4cbguqZMYXAKxgRkQYPEvzKoY%2BvK1ijW%2FA7XAAhoP44uFDgpiFbgOUMu%2FbBPkYHPmK7coo8msX5RRDhYFWJDu4bh3ECNfiX7MRBOz5J3CZzgR7RgloFzTFhmSO9wZL1B%2FYzRUpV5CyEscSr7q0D6vEqE1AQ9pjfkqFK%2B4C9LHa1w0qiy7c2By3KPe55GGRKCHFNMw3IC2WahNdHKxJRESVZv453lrvIsomkjCTVLuCflcM3CaEEvrLBVh%2BZiga%2BSGkvfU50jZcmNbm3F9usxpNC3B76u9KUjvMPjOSpuCuXAg4DVuc0lH9Nms5AFWYTFWt%2BbxsLyDUjXyFJCvEOrGkeq37hNDxvCkAW62RNee6ZtlfYgEK9b5S3phkFwXzjd5yqiQfpIJ0ChtSBHRmO3Euz6%2FAWbeccr9%2BQDr7UD5sfdV6YQPxqVyP190GOB4JuDi%2B7TeruoeWeIJnTRJpIZSC6bNE6sJtLTyi5LuApwPApTrXejyZCt%2FbVzZi2rRnU%2FWAHq4BMK5OeHhHGFe%2Ba1P0JZTWNgu6mgZjDgsNR36CxPf5ueWbYvAdepPE4t9YgcOhwfCHfjzjUnTCH9BRGoDcVF%2BLEMoEm1%2FsIKJqdh4E89TeYiRYUKgp6HNNcUkUCxr%2B7zlDFUCSHKuW3GXNZUfs2ZOnZSVbk6yS%2FAI13atCqyN5bOZLh6x7VnsZp3qZFE%2B4h7KvaTUECEwYpxIOxQRzLJa46TfObQLZwTZKF%2BIG5SeUDK7Lx5EeeTtHFxKmZ35RKcQ9LLRcIwtb5G0BQScbKVVVRXR5EctzmJP2Pwzc%2BPoVD8%2FP0u%2BXyLeqJXBtlx9LbY7E%2BcIT%2FbsNDiNBxdna0HEJ3bgtIsrFY%2B0tmd%2B5UAfj9m57Fj1N3JXVj2IpbT7ul%2BMmgSAG4ZocklA1gCBohcRydNMg4HlZsXICT83XDVW5paeDKCcH2yumTSBCaFvL9M91xgRFcVguHtTtJcQaxcC14IudYlRbDgj0CXD8knXzBg%2BESfftkev%2Bc%2BMzLpjzAKn%2BfQLCJhvjqUDE9mufjkLZoolnnNl4Hls5xrpqai6BEudWOXJnxwss328gQEscPw2QpGi%2FuTNMXuOiGhJIRLETrzG7KG6BWAuDUMmmenHcG%2BhlKqJ78Gi3%2FZwBAS99Z57vzlstBroOh5QYbbD%2B3KpTSIC%2FcPZ4uu3wef80euTnVmSCBG5MKC6BxHzDgdHXyAKo8hqZcjHLt7mTyFcFwOOc%2FXSXA2lhl9aMtDyGK0WcJl7rqeniyNj8Gt%2BW6jc%2BnvIp0NNnyCijFGCi78MyNX8dEurAwBduWsZ58pJmvv1PJsLGQ1pl83IJicBVHkxZLF4Nf%2B%2B58yYcYSG0CHGsD4CMUS%2BP1mkcqxfc6eusT3zXAXbdrGDMxHxC2pPlPLDEfHME27%2F6KZnJ07SxsbJWuKnJ2WyJ%2BVT3IeFV6M95XxE5MYMQem3pB6lV2oXmIg5U1VidxEAZ8TBkNTJNhfDopEBWvtNdrDSzoA5MPFBHPGA61%2FqARB5AzNgXxmCZLweQp%2FuxCBnrXi4VL9gRNMRvWxbvNHg%2BtvlNDfA%2B2%2FE3U3AgykMkY9OBqyZokBwLNpNhARNEGW2uaGxFIIAIfYTxSE%2BucoRULZ3MSeMZE2FOPRPO3IbmMpsf6NapBoghy%2FgC%2FP2wXVw1LgAvit2SpzyY4Y8s1MbkxCVO1RVd35WSf5HgNj5eK%2BEOfZPd2xP8ubTU5SjpmSpINh3rmn2YYyawnqB0TT6KAY9Kp4Sf4opj6odAYMdCqlqRigtNQoRU9HLsoRZDQW4SWQ0gL7Dx8XisvCTAQsuHD7KM%2B5vMQVkJC7bLHVDS%2FcqAkTcZ0DAqWMcPAhNJlN63g8Dt20lNaZ0ABAnTIqLRF0shHqro4g1AbMqNmOwb1MQOhlmYQDnH8mxKdDdAXth9XIHfxshZDk2ywLXi9nJB26lwN8JcuSIckMAkhEbMD6liAQjW8tuwuXhs3K9LzAOjS2eLRxnkxkGnxRimLylZeQYz%2F3hdNPVy%2FsveT2cHArJOSMzCQrzAOthJfjqwD0H4vBLiLsUePxYDx4Mdgq4cIBdk3PKgAVQOUJppt54HQ8YqoDb7Hm0nUW99kz3SG5cHyWwbp0794ux8hYBPG73AMMHLZy7k80MyjAVsRu8fMiFJ4NGNb3z%2BQisa5m6qErD9Tp%2BOaJURQkUmEBstSvTLfD6iwzGIPOyJpaJoGtDtGxvjszw8J6cXVfAhZNCwYh4rR6lI4WY5EIk01Vqg9FrLfALi4zBahRdhkPRJu7ZNhOiVxhFYwKjLdIz6Jb5uTM83Z4wvr03I2co9DhNquFaG2GFPJFkz0vkofxmpmJwWLEdyCZqYYmlriIzdRvXwraBqxkuRZG26QJeXF9hyepqjdNgx6PYPOZezzyVgYpkRiF9%2FYiE1fBbXeOKgNDEqAetlZxubJEREDCjWTrA8btaOggvVnvkdONoCggd6vOa6nNiQ7glkrTRuTp7BGOL3vpjfZqVONUYATNzCsSf9ltyQZNuu4Xzna4jg0snoo3EqDvmQk9mg%2FniFNG%2FbBESNB1%2BDFDRlmM%2FEgdLZh3APjrm9zPN7ey6SgAWZ4MdgrbOBw%2BVvAvRcMU2KRF9Oht4iG65SArA2NdBVXIiIIsva9tBIjUlVyFwkW9b8nVvvI8NY9a3%2FC4GNMMllTsKEF68SZGE7uHK1koZINTCzVVYozECL7hWs8sZiCOjo%2FjVCb0plY7MIVFCxsF5QvbqFIYZo4%2FcwmhgiEYxbufSGlyXWxiwLOPruMIYnDTa8CEoCwEC20yGakPTsbzUqb40DqhjchbX4z%2FmApVucumP7Bd5iG3LB4OGa3II65kEizx%2FSnZ0TmpWMFvS4EIqO15C79aZkJABwJQCBHRDufKbyF3GeSBm5dZ5oJecQUDR%2BC0nL0%2BjvfCbjgXhV0QQ11G6KRG5tXi5BHJJp6RbUUiWTIt6vnrDIvNmvhfVIqUOVRB%2FdDxFTeOxaKHhR3gB%2BikH9QxJGgF2Tv1qZiuXxBnswYGT6tP274Xfd5kxOlQEYSZgyCHSLCQQ6Bb1daiesJ0JpvTk%2BHqfawJhWrmgk2VwEJ781gjPYOYJbfynqRUgUJHDWUhtSBQldJRQZhVf28hMK7PRAB1wCn0dzYSTGbjmrfY4YyFsiGb4pLQyOpugddGRg%2FJ0S6XI5kTZGgqBH1nRS1rvdCmpkZsJBe7HyD07%2FXAKm%2BmTjWFXXhPjuP8Msa8BFZbceA2lCm1%2BbKiLB1%2FIS0dZL5J%2BOpA1gYPCVF9WPFxlaqvDek4DPQv3dBQVHPSwsBnaKoRmh%2FcQ7pAm2KyjNk%2FWuJJ6DJpWEsnIgwYmyqTWhn9dm7WaZ3UYQUMoMWviItBC3dwxrtemyLaILFcgn4A3mxCXZA4wuCEQzaeg4wI33MIJJYMUk2vqTFDcAAOkhMC7gP0ETp8zCpV1dZ4vWIUUfYIzEJ4y2Joy4W%2F98x8tYpUVOLRTQM9pEk5JPWLcSPTkZ6JBuNMpiCNBLPnrQStXpOAelYmVfx6nD9REXaylR7WRYwZFGXIw0VTYiRSdAsf8kH0fb3BMFmvxhVHT%2FO3E%2Fe2y%2BduIgETz4ScLRu7afZO850pHvASxJGNEEzDoIJm2wNCRH38F4NHBkNyFuIyo2gW7ALAzxov%2BAjoZ6zA8SlX1DSXxwQvh9VcG%2FwPPPhzh5Z%2BX2h1GV%2BhnIlM6GMRssS4S5CxjeaUllAwBh676f7wLhGtgMi2kDee2%2FcDUhs%2FSwEx9k5jiC2kryofhlZLLkb3tZPgiVKiZQRKjK4tzKOOxcjMbB6aZi%2B3NCDBGDSrn0GjshrgvQwCLkoQYqbFJRcQ%2F6Mz3kYGWhWLSNoAsuAzU%2B8ZhFhYDsMFSlgdyCYlGOLu5kd8E1og4Hyj%2F84sF4DYX5m7KatXQf%2FGogC27VcFzQNU1ZWOZ0hI4aY89AEIkcTE17Y22z60pni0d4Kxt%2FrmqY8KXQ5zauGrhQT5ATQDf2P%2Bb8OESNLpIQvGEqIn%2BSRsTXCg53gbJRYQIOBVulRJCVJm%2Bmte%2BAP2PiXZyi9iKk7EKBFMfXfgkIFMrDK2L65Thev7%2BEknu9DF%2BsCpCTdwxB2YvvOp%2BcyKCJi4wzcArdhF1tY3ca7tP7sZQcj4Si%2BBJ8kO3s1f2GQ8zpeg%2BwSeyWDocgIB3k8%2FQ%2FvnJglDuZ9QwmIFrueMkDV6By%2B2jfIIT2tdCoc5I4FCCb4gFWiginoato40hX8cntZx4bYcRAU4EcHoQ2ryAHco53FdTf4wlMEupjG0Pyy0x4J%2F7DplVp3r3ZdcLHiGixlsdeVxGHguNSh0qpUWGKIqNMbRm5a9kcdj1qqsSpyiEpkr8Q7WFFVSIlXUz5yRLnxgsDX1FqLENSU1K6o4sxhqo9gNP8Xi4CqBdpfh7lQp8O3lYIG0dQSJkEsZVfszuKFjNRLbtz7OJU2hjCFme7ZzRDkwTX%2Bow3ht0I5d%2F58gWrvB%2BF7BolkKqfhxvKCk1YChhXrahDKKIN5esTbUatdOvO6EHWXKwFw4gDOAnAqLcngkgOnHa5zKHixkQMwjDh4KfTI%2F5Bvs0BcMHYFSDGBBBODnx2jk8fvXsRN8f4HvKjjvWM%2FEpI%2BcsCrJeInjTMPCYB39PFJIrKxCKb7DYKrb84DqBrMwgOnMtxklzJYcAvrErkyavhbTtvzsc7KQhZJQRZtBWAkJbBw79EPVhbDgLhcOLBDRAQoPSjPg%2B8E8YQI5w4oDayGbpRlGUY27%2F9uqcKht%2BGtOdVsoIKXdtGRiHyMeE9i0%2FAaSDCXtOG9B6w5cxXBwBZ15%2BA51uVtoFKYXRwE9kyty5coc3itzGxsnfy5MjVylQ0APBnzEhzSBWXRqmLd0GJwSn%2BXJW1q7qc%2BMwq4vAunGeMgLg7Cu5JtgfjY8GcpRkgSvjiYMGI5yiiHolEbiX1mwTcRfBAl3fzANoh0CCOtzl2JQxIUSzCtmI3MoGMRVotAvw3pk%2FitAiEbLXJSDrdr1n%2FMMXJnkkMlm%2BImYSikMnIfoV7yymaRq9r5dDPs1%2BrlaxjwAYimIG8h31kkr5KGgcATqIwbkItwmcT2zNuqrRwMRecjyKEHbxA7nbHUFWYBiY6WgonHsDFhC5bBjghlDGGJ4e%2FJA0A2K692uryVFbK8AVpNCsHcBKYxVgb%2F411%2Fp5fOSIgGO33DCUShTyqPaAd%2BIL5A2UUEJHc7qxYxERB7rHJ%2BywvZ90qTNhKKp8%2Fia3lHORG4D7y%2B59sS4iwD01cDSHaMYdt6zUZlf4ElgxqY87eu52bvGowRNdUIVNkldQnqXfuIJ3RWAFB0aDfASyklTuxFWLD9w1I7%2BQp%2FSV8DkduRDVYA67Cxp45myjtGTMAiC0Ba9xRIVC2%2FK05vf89wxbkj9kkmqv9ByJNNeQgL9nfBJ7EcM7BbaCLkknhYYWU60WjD1R8VgUNXV5KkrBwiYDMfGVS7m9HlATG3Di2STf%2FcicjZIbAcvllfNuovbAOBLeiNOWBDP4SntsNDVNl7jt5kg2A%2F0slJRYY1wJMZggNW5yJGea7wgWexRFJRDhHbgxj2jsTNxyC5bivHa3qLn2AWucfFFLP1qmH%2FvAHQdy3lipSpoC7vk4hVZbbD3WmyhvmXMBUSCv1Pc5lWGTDoSvPMU%2FxQ%2FcYPyH%2BUyN6VNwWF1w1VwXh6hIi%2Bv9vvofIrq8lR1KzfjWCPOiOcHAXjkCGGNdVji8bzn2im%2B0g6RrkMHe%2Bl6mgVADNyvLpzbQSYri4wEM0tSrAoGhbwMIVS%2FZtGON0FdtbLfhzZwQCJgjqONh1GOhGq0LX7GjkFJc0dx%2B2iBUAs6Sx1tIXFSLhcmQvVWtjgC05aHi4nuPqcTG9aww6U%2FOCRaQjvLUpGJmjPDJFCXNrIwpp3EIT9052SO8olJ9AlioZTsxDamme8PXFHUbGb4ixO%2FdAiztd%2FqLxnxVXoPhDqw7dNvYjmjMfYwDHCgqVLZcJdNWyQG4XmKGFAYFphmKvKWDXThHRrVguzb4GV1ASu2RVknCoNE5WO9WHACOE0%2FTi3H2RWGOuT9JM0ehWUwe8xY9DKOSnP%2FsOADpxAHkC1YlojwVjTyKfYK7prapIKnB6IuHGAYVfZQ%2FvOuXqsxN10z9INqDnkVEk%2FYQvnggQBGEdBnpC44u58shMGf5FCptZ3AEtx4ZpUBsAlQlrhftfZvJ47sc0saGpXBgP6nkiWiWmJPkTPEU3YzX7t0lYO%2BtW0P%2F3TBN6xnLOtGf9i0wQnZfohyS4jblbHZXw8I4We5HAj5YtixiUnFT0AE0cIgdOOxYNu8FyxgNAK5LwoKkguE7%2F%2BpJY4OkXOudI5wjtMRuoIpj%2FSKxlJZy95XRK7sqQSvaqykP9EeiVyQVrDlJPHZrG39atcfaghQyqMnqYW0w7KV0B1xsfVsiqYybHwntN2KeuG9rhauev1jtXFzpA421ZuHDvWhnwMxNFQ5lSI7LauHglv3NqK8l7tojwf%2BldZ3RIlQajaLEBEtNefpFShCvJJ9GCUyHlqQtY8b7h7QPF9Qw8h368Zw4qfuI6wu3XeO8hVlDSQTiyirMozN40NNGxbAJSeIasZ5UnzdgajymNR03CgP6eLsFTo0FeGwtrUcwIpCzu0bqzdA4wnUrQT0Y8FZ1ox%2BxNnCj20v8Ky5hJTERtI%2BSWCS2%2BXa9psUSRdU3dyaeMUALEEmORJL8tDIDNL2QeaRmjOvpFiy74DTo2DMWmGPDxs%2Bj%2FHa57fHBjQX6GJjrGcfqq9x622gJAqseX8WFuNFN1Y8Ly92t1sRuILiD%2FLFepN2DljiYUrmKoxC3HmKrM8aWi9jnnXkxi9hH3JqwKBzdpPWx6I63pXh%2BPxa4D4nCEgJf6m0E9PQuwcGqB4eM%2BMHKQknVL%2Fn0%2BucYvF1MGXoOkYvUgJIB1PEDY2q4l8su%2Fwzm4pFR2S4UfLf86eA%2FC4ywF2Hsh0QHqKPhPTVyXose7ZONWJT6xWR%2BGswNI1a9o3pW4ixJCDnESs%2BoXGgkbrdLokhTxoBboAdLObX%2BHJT%2Fw6DMvGaM2YK4su%2BjfjZgf9oOa1n9F6IoOsI6OYsqtW9hUOxLORBKZVB8DkFJxIfyj33IOjlVKdMhnlVHwRSxCvxug%2Bw%2BaGDA1N5A4ZfTbJQO%2BM8B4CvDNc8Y8ND4fLuATWbUbzuDNNMaas7T6hieOcfEgeZ020xNkfkzZQrgDie6oshaHUsp1VJQAzovQNYO57tNJwbB2JUEQkyj8yyYclQNSTNkoiJJTEYTPfGYwIraMvrXway1rRE4ynB%2F5R5NI5V59NkwcNOxtuzMTF2ykjDcWQkmsp0pAYhOE5t0aPN8pJ6OimNeFGi5UcgR4HnnGPbDUAakrKSiU5%2FEJtiRTSSjg5Y6AaIwlCmhAXgQ6UNnL1HIai%2FINAJ5HZM%2FUQN0RPoseiSXnviXK2NttWfzKjZYA%2BAdA3covEWJv%2FORzF6RyKQs6nKjZ5%2FaJG%2FM7SroQErBTiLFEkXwcc0E%2BN4WG1Rnd2%2FTb48MZiPXhK1R7lt0g6oRbziLHFRaRTepGg3I7FSH00hzHyGbbU3dnBemeUXLL1RBYxEOw%2B%2FZH6zBTlvTUWEHtU2fkVCR5i%2F0xeO7rCdu6ouzg2Re9xlCbr13p6PYXxBrEeSc6ZkpvGEVgLdGH5YLO3z3xikiMPNuMe7fMjgI3RZRWFVY67uFenFeI0EYCbJzIq4Bis0rpgYrnYe1Mm4EAdB%2BvEcUp67Vn57CO6qGdAUhMiU7gDHrf871qrAaElZidmp7ooCtH7g%2BZESYskIkAagibv5xbjwK%2BhQhQcYwVbSrjhXFVCpTwbZZHZ6mt2iSOTfT1BeUv0SzpszHjagUb2AsRDUo6F0XPkp9V3q1wk44OfRlTZsJ4Q2ewKLwT6Sdbrq2MoFTRcfCS0v7FejBRPEPqRbJLs%2Fn5o1KP4k4Zjoky4W40036UKaaU6Xw0QnAYknSBw4W2imDUC3tq4eN0YU%2F1OyEBQPSM357JqBKEYQj5OB3yG2TyqTsNke5oyh%2FdGa5rW96MR905DMBKBk5sh%2BvSLLQ59mUJB2p%2F1cqKD775XKo9pSmSnL2rMmZvzEnEz3aIwv8sysJrats1tZJ9tIkJ6QJL%2FZmy27ltRIsyAGyiHWg4dJaVaK2WyL55zJxv9cVRgC9AlKrrG0JXE8zLVhQCI4JdXGBhWMtIlOLgiZ9Pc02J6KkwIADFS%2BtTCDpjy3ZwF0YsjbL0582KdjKX0XiVvbwP951fjU6k4aUV4jyKpBIwIIFVHn5o6pVAQjcq1ArLEpcFASRSkBSuhFVEnP2iVecT6qTSKPo5HxP%2FM8cz9nMUGrXwBsAYMwgWEX28j2MEqgGpjZIscQJpExZbtOtna9QNLW0K3Q%2FbS31OuiQ%2FYyqJCQAdlOIEMK67wBLVV97wimU9ga9YC8zg2r27gSxgcqgCcSya9V9hpbTuWrFzSkd63IlXED8gim%2B1yc5jCk6%2BehHM1%2BwOKoSiG57VOjOFO%2BITfM1cRAKHDLgTIjrAgQEMonN1621H75UcQZPO6677%2FQNsczLAPyZYycAIkMIcI4xB9buMFd2LCtbBScvIKl9ZD9qE2Psddz2ogE8WPKfNHSlMFyJDf1QVE5NaS4xYtbqvzQ7tdQYt4M%2FfOCsG%2F8vgXY0wLsBreaLKqcfnA0ifcHaOVAG8spNb13IoYP455yAY5AY9deVrBalwdYG%2F043QkL8CyEo2OI%2BKwd424DQlhDaYKh1LFgWT8b%2BIeYObtyYMQHFgDpxh%2Fwpwo8AoobkLJi7tOK4VuKm4LgoZtaloSxvgNgFgB0N8DErLlMDCOiJehHm2EFjo6ohIMb33CpOQk73J2N0LEkolCACAT9bE9CSnpTA4xQEqk5P5qIDHNQq3zVjJHauH4GWybgGDDdAEGGPKv5BZs1NHx%2F8m7yBK%2FEVcMe4rgRK1wGJ0CqU%2F67ICBMhld9w5EnBC80kBeqS9wYcuTEZhjfqLn%2FGNIClH5jJn2jK8ZhnBkaVT5eAaPpIamBlKDxhZXSE03%2FuqgsF0i8s6QVdbkA82jHEljZM1YuBKExvOlCs0jCHY3nwyJ4NoR7RbzcToHIrKr0KEK%2BhUMVaX81C3phFIZZEL2MJDBkAo%2FQHZoyyP06V%2Fm1A66QCXlGMe%2FTTB6ZIUX2Y3bOowwLr3wjCEs7jCpEY5VbiG%2FhhF7SLalQjNyupjINbIBavZd%2B%2Bj%2F607H16NkTFlRHOdsd4NsrM18U50LBTbCTtwihxAilW%2Fz4vpKywwEz%2FY78hBdgfB41APVPC26B%2BSVA3AlgKj4EkResazMpq4DuZvaKiQdhHrXbkbQCDMeV7Ce5rjMepeKNBINdtu29TzyiXIdhBAUET22BfOFaoZjgypsP5FEP3xiBsvjw56EIFww0KFTAFGh44AW8SSSo4mzyN8UAe1RZqGo9zDaEgqeFRGVbPfJPWOkaTIu59ppb0t4fi6%2BiD0rJQUHHtrbuAsSmBVnKeIZxcUGgwVSIPSjkqmBvI3nwnpgqOR%2FP%2FkPX9QHa9COYC7n4aL5Ddm%2BawHojkOzzhlf4EX5zsNIwWeQKnF4FYEbNJ4gB6ayNkGkCwkcBubgO9S9yBm8EsuuPjRGT1LvkdUkeElQs7vq2lzL0MOKVp5lZWKl2e87sCpJp51IlIOnBUTvBPO1%2FLu89eDFduiw65VfIwhyYPSK9yH1Z4gqlSMibatpjJziABiF%2Bl4I8x7IyNIIaT8x0Yhzl8Exok2BMCbG6smOnfKraLh0s9k4N6wyJq9l2EeyanGnqWmfp9EMJQsYGWhUReRe3iSRso%2FYHu2N4gMuFx5DmdXmgMhUs7hVrEAPKJ%2FGw6V4Y3d%2BoIYW2qj2v7MQXEGbqXDql3CoNoZGhf7WVnC84to1xbYJQ48VFilC8k%2FAdvl80WeCuGWEYk52ZFc4Qv28Gc4rEnVk5gXIq7AaBixKu1msGB1R927f34tVhQtfgDJ1o8ng7D9nEOF5kFop3cILX0LzAdi0T2X5DJshSgjPC3E9Xe8gy49XUNw0Rh2GIfcQUiIUYgnQCdKt5UxP68FMih8MJT4mq9EKndAIG3CYaRv2nIKgMIOm0bPdonZ0bRMJTeqmsq4ct2IvUBC%2FQ5XGQNvkb4QJHcCBidMMIhBgQ1iX5V5N1OT9nKW9Su3Usu6F96%2FCSQKt1IH%2FwnQCrAft51CRcbd4vrDxLMhwokYewkRKzMsLSrONIl8zylb681UOJ7mqIJO1vBu6kbZxy%2F3%2BThzpZZPjEMazwxVETrkcKEyMD2AcJOXXkJ2g%2FMVxKvNWbyIdj1mZBwDC1V%2FZifAQY%2BAKvYcqF4%2FKvt45KSdqBC9QUA9rF8lrrWZFZWRy52jzTRcp15xqp%2FFY5tEowxWQJ1NZajwqyX0RDGtpqUz4fIa7Xmwd%2BwinYbhxKwp04NGEbG4ccYoQQBxlaBGLzF4gt8QHlB6e196%2BdB7vybaex6gQQZBktA9mFZuZZC4fxARTxMo41NsmP3ajaExV4adTc9oZVkIzR35NTS0WF2hDIFFvJwkZRln9g%2F0HhA%2Bg2fp8ROYNuWT0x2wyfCxT4cR7BvBz1vRntt0wIQ5b3SjYkgocO9Ga0Q0dN0qOVuUM%2F57Fz5LQMCspoud7O1PUzd2DoCC%2BoepMxmODyIxPvsGO7U27kllo8j0NgyOiAaYApuQaqUeiYYgkkcRAhlHGFZGswY4A0oxe%2FSeuQG8bPeEFIW2clIO6YQbPxD0aCNbSvu83L14gh61X0pA7YS1p0cb0xKJAuwOCR8EPEtMY0dk8anYfk6UL8VJEgzIDssjm2aBtNdplKBXTQskZSF0OpQ5ScIU3QT5EwJySpZL0JRInXaq5jA5LL43IyFc%2ByclD50YG7dSuwmTwmTKux6ldhNEAEHJX%2BTMV8DUYWLHk9JRSoFiQwIEJTZgS26zXJkEsKt8WvLIJG9kD9WEpX32EdCeDsNT0ImurDeKGOpCuo6Nk32G3fRjF%2BjGUP0SHNDUV%2BNOJYLINkQNh17nYyduZ4QDi20bSID38WudX0Fks%2FBU9UEsBT0g%2BNc0CDPcc6EMWEU%2Fdu0cwjBsTAKg7KUFAsZljIYUdARkW7peEEReuWbQMy96ON64gUmoP0ZmClbd9hqkxevsQPoKZVlBhINQwLCsCPdlv3qOGBuy031Hvn5c%2BCkaz7Q0d6LOxnF1NXJULpel56IW96QE8PyzxXh9x%2BCW%2FY7Kqs2GFkgRnhn1oGfQJPa6DcEjYz%2BRn5xkDsH1P%2FyZDWkxQoGp%2BaJLhD%2FAt7Im%2FWNI0YInveSjJPSj5Sx%2BQavbdFetZz3rtyUXs9lW%2F%2B1CI25WSybNKyjcPowcCyaGfcij75w2Rgm2zlDLJGRkL%2B7ozvxxnztoK17P4ngQcMF7BgcBf6yiKqQwZwRaYHYHpWNkqn5NdqhWutjQ%2FsHxFLZcnu4tRuuDgjQrTLZilNtVfXD3i7cn2w8N4PpGPBlE7HuPscjq1ejf72PclE3pp%2FsZh7yanTd%2Bp21IKZeY5BcOE9VsGh7rf5m7j1%2BmOOb4M4c%2BVgyOwKnvjhBWNWO%2BqkdqDjZnx6Bi91YY5TmBZ0Vl6JTNmjecFmcGXjW0a4iS4MEY3jYHDNxhgL4ZCjCFWKkeHQMW9am9jMBgY35iJG0jWm0OgHCE%2BOBHjCjLGoLkJD8YP%2B0i6Avt7cmcqHbe%2BhZOyre%2BB0iOniQwHgeKgu4ZDgpu1r3YSr8mYNZEoPJ7vbb6GxaeLRDjvgiCU%2B0s4Qffkm2g3OfSBQxay%2B3nBxaOhHf2%2BKcTTxNGhwvyabfkwyn%2FmCADbIGxQ0Xoxg2WG9EDzkjclcjJlVVpb7Qs8vi%2FbHQNAtscv7A5WoE6KUEb4WWL%2F%2BaeeMsWoyxhfl8Iz0%2FpfpHzjbpCZZmgXSFhyxFS0FW8Kf6r998CcKjQgQiLCcnHv6AnI7D5bAyD6BgH9J%2BQIG1ByJe5pacoGwoIn%2FkY02b1SzT0hkzkTIb6DFFOP7k%2BuJJjPEAPzbC8sx5f1NjGK9RGN%2FWb5qXg3vyxvBKyX42K8TyFjJLQCfb%2FWS4YuiQNB4DplETyeFk%2FEdL4JKLfmQoLJw%2BaI3FM7RhAgJhQ1R6Ugnq7x8XknIdv9lIdKAdu%2FHT5ruBF5gBozTCZepS2ExGOrqltXR9xgkGkpyuNukwalCI2a71eG4pk77y%2FQz2GPwhQDTwC5oEdU8wZenFHj2L%2B08gi%2BF1VckJEpQhENfvC3%2BigWaskXKQQwsZIBcUnK9AqlblJOHCAVKNd2SywohCuVC86VSALldKjSniZtLBYxG0g0RKYyTxI82THRKQOySg9T9dlAfvwYDeYk2EwCfL3Q3Yj6BSpHNBi5bOQhNXn6ZG9hKFvxGWJUwsYljoR3g4C7EUozLSBhdk7xniTteTwUa7poSQGbZRNiSTSMWniWwS4pyMOZHD2Sq0KskLgqPUFiAprfj8vQsc0FAJK%2Fu3fETt8MqI9xgjFWg%2FnWI%2BBfrng%2FlOEDaaUGHnBgu0FmlRrNd6lAmyqJ%2BEUZn8Z8iGeqvWRhvhdnle78rEOQMXqVhSjD2JXMvumVKgu9W4iungA077p%2BogHb0PwJqRYgoch%2BwCJYO3D8y2jg6mq4vFASvUAtsShriEbeRuVhrAsg8BIC5wnL%2B%2BZhR89ZNGmtRGoyeDRC2RiXeSgck83Z3jQFZ8pznWjYaTDNumMNE4TeifzHkPsxc4HcU9JnlN%2Bltn8wxuwNiIQlgIm%2Byc1baHB98b2EspD1STn6%2FlZGIHiYBB85zjDqjxNfzETW%2F74uhIET%2BnV0CJgqO4bXBTun93qNhNpPeNRDsH1GmHx7QoKMHVSVlJ1XVU1wyLmii6oOYA9MWRSGCZLh3KJvHF%2BaZipNaXu9aoKDLalwiUinwg0Il%2BAxbU%2FAZricVvSsMSYCFhZvjEss9TmLzAKKEJNdmW50pnaQm7fNJjBpvNmE8QFypRBDEX4eRfcE1CIPT4zapr%2BORTg416NU%2BaaiPCDEOH%2F5GQksQDlqHgeems2rrMi0xiR6PU0mxwfFi%2FxZQnxSMh75oWOWpY1zud00VGCxqZpiO8CgaaKGrCEJy%2F3aM2w2JK0ISxhcV4v%2BN4YQLwmCZd4EBCDr4lE2BlnIYVX710Wi%2FOjsHITmgXtLHFXmX6VtPFdPg3k70h8NaQ2o6meWYgg%2BkSfGPUbrdUL03L42V7C8tluDIkeNBo5SER4Ha2YdHX%2B2UNYmZs66dIAvwkdUjaoKySCIebrgC%2Fm8yr6s4%2BopzsgCbLjnra4hQZGcIHnUJf8WrMqHYQ%2F9C2UEEYAkMwgbtXXlCFGDMWILfKHcsOhO38A0QPoaU9u9%2FZEWGhi9CfCCIWm%2Fmsp6gaCynBCMCgaaPp6gkzQZQVlxhLqoYvTmWmV6SGgvtc%2FQoGGHCvsLRlb3%2BJCOvClhRlJuuUzK47sn%2BCUABV2wyFH5PdhuH3myMIfWpEuBNN1iJdHSeNGBKd0hZSXyOT4t8zti6RJbWOKQVp8XhxMMxotyyrE8G2g2zdkY7pqLJPslvRsh%2FUVkrdL50yRLrbmlVFs08i5EApH3RkRHOXIBgS6y0PPWjGIj4oRIwhMr9c4sLMP4quW8OnGLM%2FnBUIgwW5u0EZrhcQA4dVEng3woL4gkX1nyHlev8r0qVXnNUwpbguD62w1LFCrFKxRIBRCKQxBibQVxU2I%2B5yU1G%2B0xXqWNP5QMwAeUy6AQ2QJxhngQ4SUMQb32X6wm81pFuK0dEnWUs0JujfmfnmAVqt3dHPnG2RDmAEpGmmceUn4vE2y3rE9vQVIQrj5wldr8vnZRki7wPw2qrBmnRrRph9HijYwjPzxD0YPsMjDcKKeCNWpIwXo0Zjbnd0kaRBQOgZpkEkFUGjzUf4woxdcgMd8CxxHiRD%2FtS2E5GtRI6CZwb1BQyyydJ%2F5cq5oH93Y6e1kLXnx8mBQKahLRUEkbdGej8hJal1CNDmU4JUeVEnUAGM1upgvoFH6CxGSRKDxMaXnVtxZKU5dONfsMQoRZ%2BF0RIPqGpUewuCqM%2BglaHWS4bDG42QvnAWTXymplVp3GxHL%2FADsR8qfzd1ZVUov%2B0tyc4u4qndpXVPpsEJ4hx2WYoChkL9vSx3VZgLyrgGsulCPAxeJnpcSht6DTxJsQ9tnQZiOCItqvBUhakO1MJAnd4E1QrG%2BLxuCl2bNnQAafXjF7cxcWG3H4pwnR5KfCPGmIR1R9QLUJ6rY1x2RT6CJ2oHiGazxX7zpbSP%2BginuJvGkYT%2BreJKkh0kWio04IQLCYFAWyTHJVGm9Pmyy1N0zyRmytdIcNC2PUHe4CTIvk1HqBAJMCWpfnFXfBBMjNCccnw7VwxJ%2FXeBsZ4FXoZsWxCu9ltBNEdE1QkJcIx%2FQWs8CXuAyN09oeuEBWCm7kahrAFzOYMZHJ7N1482VI8iIXWB8620sGycZEGCEKEBi5z3nuHzPkPDkpVixKGROvDdcLAPGX4FVMr1W8BCNS5eBvGmUtP0f08o83qcyA9weN1fsn960imcxAQttwaVS07R3TihyTWJxiIbZHTvw3maeBkJi7tR2BrWcZA6kdi5a1zwTL2158h1nII00YXGvDnnOHTOkiDgSqvBo6DxyMTL8%2BAuXFlcOXlh3k%2FMUWYgHKztDRTaXA0odwYsJsVeyBvfdZUihNPxWAIE4oRTSvwBLijJOX%2Beu9pYiRgNxt6fVbjX25nNlabZ%2FqbsTAyFuGshU3UXuKdBBBqV%2FZzV9nL7ePckj%2FSakSEUn8Eu1HMBMKm0KXUTqCZ1v%2B6uRqrqn4PUaZQXNH%2BUBHgN63muGbtD2vLqfLKLi5N9tmb6bsVRSF3XVpzxjCPG0G91MR4mhVkfzy1YILSfl9lVOyk%2FTQFb3KK1qvaErzYqJVbCyqwhUWkM0yzk7r80U0x%2BrFnjL5aNrNmGkvUJXnCylMzgqMA0vQxJGFSQGHfGECSZtZYaIK8jDUIDQIDpnN2X%2BiBrDeAQmQlPLeWQrCOxjA4FgjBycEOcF3pn6dcyHthhGGKp%2Fh%2BtCAdT3%2FcWGwrc0zRZ1vtRlj4PyIPDlCRE3UMx2HdQ9ba6%2FDmxdxCGsCajtok3qz1yGoQ8EILRjBkaKEuMnvnAYK70S8twxl3B0PiJfhj%2B8aoKASoNA2D02hOpChIXnpM6aoHqLX2qE5FV6jFQETD8ZQRAWVE8hMpW86s7ppW%2BVnXj8%2BlLDGg7E1HrJxyk8e9jiKoDjWCpqhWe0oGFkhiOUSfyLeV2zkPI2VY9nsJThagg1Nh6fdq7y9gHCdGiPznd9ulhqvsnbhRwALcxCkEdpFJNUkV5TnUE3Hnll2ZoY2UTvFgi0d%2FNd4whwzhtAIEGlaFvWAVtmey%2F%2Bd0lpCndKPeU0yAqbzqcJEcCesfjBpn0pe8SJs3SmnSkjePgX2UgGGnxosQP4roaTD8egzHvzrxhSsRSkKjt1gtFBI9oUYkRzVl41cVVG0%2FhdGgbRp6frVy901KS%2BqNWjIhEG996xkOuWluvIB7m5od48DFjYDmJc7yp%2FQjlpOxPgA5jI%2FbzI8MQJM4AaryWyTwr7bBRlS4NKDt7AHm2EG9Qi%2FVjPUu7u4ROlQOv9%2FY4MLAlAlpGAdq33%2FVuDQW0%2F9EjXe8YTpX%2BEOCnVUh70H6Bd220rYRgSzYSn%2B%2FrXaCmT31AscZ0%2Bn%2Bwn1xhAkn2M5i5Xl0C6KPtkDhl0%2FbWbRgTsdQMV9g9t0Q9c%2BRkvPjMAGLndbM6nlC%2BbHj0DGEKRkE0QtuyfUaIty9NlThm0E4HipgjhEWyIxNcGHWj3A6jZe2vKhNGEec7pNvo2gHI%2FNEL2WwvIbJnq8DwmoJWy%2BS3lIPJnX6ET5YNbbZNHlpGAzK0AYXWu7Dyo1vwhnu%2FQN0BuBE73cB%2FqIcHXSQ7MDUruw09qdUEwaUKBqu1eNtEw11WITaRwnhajUbNDzpOvk524mMjnHYuMYBlJNUnQxOXj45IxMszJwxPOofeXbCkZaZMwXq5aFtUs7gruAddo9ZzEowgAS8FhNoSyYG%2BeVcE4riaov9rv5x9DVnpJWLmuV6SoC8OQ7Umq7FqIeAt%2B1HUAZeWFBeSn7B4ZhkANCj8X9xCA8eq2EoGuLx75pfc7I%2B0Xjgrx6vmWMYauFWCPbfI0LTkMSkDmUeid2NCgJUPEWad5HbavXFjtRhSxX75zflBoN9xJSsV7GqWvkf8i%2F%2BblmNXy78sYcM%2BdGTwAUMScuFMIRuGzDJm858lrXELTqPRtKlsX%2BXt8SRd%2BVMdGGzshkmH9gGzS0FIjQRIiD%2BwgCaqPwpHF1DelpO8RAYJ7GoAgjGf17CEOY0IkCCmseEGdxInXV%2FSsRdUvC6P8VNOikKZw%2BNeuJPHfXy23DObvdiiEVmuiaUlzQNitMG7gJ1pFIMBghoK2nQS6BFu36dBPjRYbuM0KDpAWiMWW%2BHd9AM1GO3io5ErQ9RRoWoWyIL9m9UNYVtBfpMuXFO%2BWvZl9pAoPMEMw8oxGJQQoQAxb2pkr1%2BwxZOSiNMN6GUrOKJIR9J20l%2FRpUGk8xQuDo1vetFBrA4Q%2FzwGjY4p7LJIKbnvgfPZcSNK%2BRlOsuaLCIHSD9EPUn2cQhQeP8gLEZcapSUiD7ahcCH4wkJ5uQDgz7YjrYJtaAFmksvrR2nhWaE0HvM1bdvDtmBHZN%2FWV4HEZQnjyOniXCNhFMPLa5L%2FvWjx3x%2FI05butu83StpjBmIB4dc0YHvIi%2BGBk0lX2qvq4Hz1VxPoTmaFf%2FGV1xCqAsmqweyOxdgUeIJgZf9pMkPZXgbaKR4UEeQeEzi7TcISR0Y5fnhYQ3UG5zF3STCR%2FQNFpcIrt4LG%2Fz5k0vOVfks0gwJHBNUvSV7tiZBVNl2uPUGJDID7DbcN0T8jPYy65nBlpebkLX8IizpjQYf28JWCpFrSJ%2FbA19UqAQ%2FrqPO7FwouRFbRLIn%2Bfwe6F%2FGCdpFfjEcxs8LTb1TXLyybda6Z1r%2FiJ22ka%2BeE0fL2RQjIbSmC4VwEKY3Qd%2B29YgES%2F004GlRAVbM%2Fh5EGbnwDsWLRzO9ldozLkuPL51WGoOMNJS4%2FxUEqcYEXxXDzpyBsmBpwq2lJ7mbw2u5Gb9ViOGGYdHMRIrIRHVVDGm6YnfPXJer5dplZuULdFgMRjNOSFXAfxyf28DUzb0JUVYm4anop0849nK4Cy%2BhYLPpYuZJpWra7E%2BVpqlWjlLmIbyZgzlHlHRl%2B6G0aJZYO7KdT6UDdPqXdMBYndDOgPbsV5sOXSwxaLWrPrV9oMW5V8iG%2BtWxDcGYyuN3mJqc1q7AB2rlxb2yZAlWJR6DuqzzzQBNUcv92HH%2FXqrmOCSUYNKxjJmrqvEGQFDEuKuV1dOC46SCFXqZQ0wlzzXoS%2BPhKIyz%2FXgHSVKITSjGFaIYrmw38DIf%2BcgdN8mx5qYZcqCz70TKMrOxO3qdgcTTkJyb9hHN%2Bpenbhc1cJKQCQFGTkh3ncHFlTQpTpAGM0SSLh%2FXL8XuFsgDp0IzbroSo4q9HgHTwBwADUP0dUIA2G3YOAQhTalcqbH2ovhHU7i2Oo5gbwsL0x6ayAZDZe%2FYSmathgUjAamiYjcLl7zaUsV4GRgcDRac0N7Mcf5YuN9gfTwKAFrKF%2F0Hedw470ovF%2FpH%2FUq%2F5oORJDchz57QJcg9oiuQgq0%2FNa5s4CpWJnH%2FsHIfaZUCWNVOqtQYz%2BmwLzsjWGhWsUXoZEfk4kaq9UqCTG%2BUIoRIaWCu3%2BDrIaRyHx5YyWpQ%2F6siJT32cGkVfd8nNMubNkK2mmhFI%2F1n%2FwqWYdLS3tOQPcPb14%2BFWo9msEIyLxZV6rkLJCV9dOwOJOIZyBUPY5kkpUYZxTZzCg7z7JrfDGpkIrIDHyKqUCB0RTZ6ZzNs0PlawhqzbRgKcxtfRhaHMTgj1pCxBXdAzRLIYDsCAASwLb7LWvjOlSgSJB04xjfRmdwLhz21hd4xY2%2FwzRbf%2FzXxofgUeTnhFXFFEnOtluIP3cyJ2Ze6a4P1YPqtJwP1IZXWjG5ZbdxlS5ACPEiHCfE960RiXRBlbfTV7ZOvRUNA47d1Jir7AK9Hj%2ByzFFwy0lCZPp5Lqw7kIwuSbzVJzB12hJkyFF4OJSbolfQhEpziz7y1gpgrG5RzoJ0dPvXllEOwrJ%2B%2B4FFhcaNPqyIXddkJjXQyLPZNJ7lX%2F%2F3VW2tE5AyTJWst8%2BaYBTd5%2BaiE%2Fi2Mmf95I0%2BonFcKM8R%2Bstlj9TgEjcmi0RHfH1%2Btl10ODQfkgqKZQxB4olbotBZApXI%2BbTySVR4b5TqIC0WvraTO9JimoddfAggl7nBle7COKK1spdg%2B%2BV1pf10w%2FCndd84r4%2BSw8Cdvlf6kadhYppP%2Fdiu6mYcgyhxSUk%2BbwMnpvYap1JNnajCDEu1%2FclwPjgBE6RH7%2BuhlkXbxbGVE1jqMdsqF8tmFYVd60kHgASGumi4WAfrFb40MP6CLgcovASPezcW%2BwV%2BZLSTAigg4N9l2ZHq0L%2BUWOp5P0GmUi2Vu%2BkBtOhFe1QKUde7SKoRCAK%2B9G1GFRvuocB6KbI7%2FgfY4k88ABiAdZAX5ECibKKAE%2BU%2Fiblf93FLwtX8sI7lCtBm%2BDIZryggSNI%2BDTACQAZHI9xm0dGx7ZLKam0FWjkgAAi8hs8jFcCqmA0R5JfBXAJzYx2Ni0jjzXcmR4vQWvPggiVbNNXB28xNZrO%2BCgahQdwrbROMBBlVB6d%2FVJeUhGU6jaWdVRXZ6%2B5zTyYKX2wc1y5PgLvkTMBXURFKAwpCJPn%2By3SdfZQD5Y6H0VSU%2BMkWWDVKopAXMmSquLFryHrCjHeTthnLVVNrPwsdx5X6iKMfHLHhsw9pS217c4Pl67eD%2Fv2EDb4N7tEFsOb41hbLf8V1cfHKnizndDcebRQ138qP%2Fsj4oKNqDMcWmy25KpHi4pJcXAju9bHZlUXxKvWKG7fJxNUxuIeJyGIT4g4lTkTJA6b5FU4i8cQgXNmyj%2FrgQ%2BoAOOoimrIHEyAQRhJ4%2BrQD7omJsUSGYOEKTmJFqKoFI1Ci7VS82hCFtUcFhzel8namdr%2FmuyEcDOQ17vyYj0%2FEcAPPaIhxlW3cZoPrN1ciGCX4keb5rxHkY2MCGYYFTcpvMxhwLE9kOA2dpUkV2HuR1q2FtYYWLB6SqDjEP3fAJdgBrXI2eHk33xgc1qsgaZXuGOeoAp4y50qUilqpGY3xHkUU4EAWEOoJpKGCzFgSwv7LRmFE4qQC9C%2Byvfd51kbeXBWh9WE1zJSO248OsYb9oQu1b%2Bry9dWgmueS60k2lE9%2BjcqYQkTyU%2Bwn1fG%2BBgJh%2BuJvlDHh7Q4QePV1HGRh8oj3X5LiyccRMubdXiIaIicJjeoSmoNr4EnjOQGzQuBtjvje%2FSx7A9KteUOkUt%2BkcFjmNDeb5UqrV8xdr8ML7TgLFELSMx7iIo2Zch90G0sE%2F9qdfMQMzbj3RaGUC9IWO%2FOEbDKcydn4ZUUR8S3lDqMNvufhlozTzbnm95NHmLKMIYzSPEKG%2BCYRoAoI4Ky1jdy%2B3Z027Lgp9amwTHkuIXA2GFtw8rSepCaguDUodcmte1O02nQrc8iPdyuN2PdbPBuqfu%2Bqd0i%2BprmyDbJdEGjNa5nRKn%2BNIgpiD9zd21Tnb6t1fIoFgZ0ptJxi2zkxRz3dDQi4fAansnVeQZwlszbeZvetGRP9%2B9hDDjr0cXfnYaQ09C1MX90hBiOFc7qfTklpBzGUVH2u9BBC1Lf6CAUm1%2BwklnimaTTogCfnpQgOzKCgN%2BVxjmJUSkdZYe6cB%2FQz4Twn8OOO8wauL0mVWPjNQ9gKTcG%2B%2Fo06dpEhojyHfAKniwUT8AxtKaiCkvE%2F1aVKoo2gdpDdBmLftRPx%2FsSrsUs67qQJfDm5%2Br6Z9e9UUHfL9MUSv6uQU0vj07s6BQifI3j59DQOGYCxEuhOl3o6%2F1QW9T2FVWUuD1tvDXRFmGBNeNbMJYFVM056AU8vn01wpajV5cQDiQkDkIqmQAPbtaOkpkXL5GSZEj6s3UuM5b3oaYClDOLBlKRLrIj3VHyhbcvIb5sgjITk%2BH29ZyTEXLIPHiatvWKLXODFG2Xe7LvclzABzevhDP3m873yDwwbQBx%2Bi%2FIBmecUgmiyvbnVe0AoLjoKIfdktnoihwQ1dyNJL0qnvyRaQSdgVVT9%2BV13ZfYHffukjRG7D4Hj4UXjYqY2sWIhMhxUA5Zjg1m7TSvGwTtUBmsT%2FMuzyfbZi%2BK6B8R%2FVHsfMvGKl3tGM0yzn3O0l1fPb%2Bjn0vHVZPUDELo4wn24DVUm3USL9CR0XGiMiq55m7pKc6zVx6PNwuAragBG8TzVCbvBhzjrO56bhkbFFEO1smyfOoQLMxJcobnHjkWa4fV3UzrQnPf%2Bah02WkqZJCgQJwsZ546KAcOBsRkHEDs17oY3tHk46G%2FUaj%2BDVxcBKYqsczqwiDCIFdS8l9fRXlR6wp%2BKAfbggerQzod%2FsvtIWOLSPmwPoIPGC%2B3IcwFSY30%2F%2Bl74N8UGmGGeI6XgpHVoT2hJNJN2fZfhTLvjWFZaQZHJRSdgcSkGg5E5AJFH3UXvYShfVZeLUgyOSOybgJSiElGK0CcseGTvTt4xbGfrfDpoJSn9AhqGYV4WmCm8O98dkQ3RQUEBwC0OXxa8v6QbCeFQOcgqmTpcowWAY9ufUfmQbyf1iCAtnUYpCQooFisJLBbJgkH0MHgX5rAc1lkeBTU1NxhY0PSGhCPQQFzFcJJ8zbEUKekUb58mXvxf%2FD5PRg6nAqJQnRFqtD1TnfGHC61azD%2FSnENZWlQbkNW8A0z5ZQjaxerTHMgRXYnFiZ4%2FuqpTj%2BKO%2BpF46U0t0vyEuhgMSzzikVspeCYQrVib4Go0rrA1teIsJa1aTpaFGz%2BFz8m1atBTdYn3FLEEZkue%2BYCjlbRNAy7HYCIaJlZz0AMTNChBgkoIHzP0d6e1JrhBq4piIvPvq1hkXSmCQtuzvr9Kq6kWSb%2Bvdj3l8R0pChJJ1nN4kDaHEW5WVYYHTE%2BGoCIwO9YV9xhjuJGdclBQewfaoBkY1lbaImnTUtpqvOZm3EYzPjWzmoYa5zaT0y5xv5yOUWQmz94FxXHaBGnwc9DTG4%2Bo8Eb3qiWDXnCxbHKjGEYyXcRWCphQjIATLxQK2ZBkQjEaSJ1glEAiTW%2BozJv6MZz7fjEm3u26CbzT4UwGR4bUfFYCt3wKYvUoAjQLqwYZIJq6UPOUMyplQgC0KQsH376TpRxHBQjhHmc%2FFfsjdTsJfGnIUypX8XJsUJqqBGh1ItWaqQj9qIE6yDQmunKcDPIenco4TSXhRdxVHFio5ur6Q46zSyaNZkGMJrJ4UoBWO%2BbyZhU0rUv5kSqWQAhlhkSX%2B9xDBr7yPBScWualtCUJXRwCSl1268Ds85CSXgU%2BpAvERKAxuB2koJKoU%2FjfxpMnORzCiy%2BUZiKbBGO6hbHcVdbqkDbU4O1qIojMG2fsfcigknd%2Bwk8L80wrLvk4qOLjWJdZt8UNfioSwH3XUQ3a0ZJxiaBgxSIoi4FQEStZlgcYztEZGM10ooGIl88gt482ZDToy8hwq%2BIwJSOPXM7CgyymG4SkGwduCV8dRYQo%2Bm%2BlBznAdd1B%2FAoD8i6AuqbSsUy%2Fk5N7fNqxQnqF%2FHQpkPz%2BUFmoOH50QP%2Bm5owd9oNqoGmGqUuWaUVotipEXZuFzUGaHe4WxBcl5RQ7gziSrGNUt4VkU3ArOzONb2HRBQK7NSFaQ%2BiKQvoDVqMsnkKqsWcUpcxMupcKFP2D6lxu4QEOEw16No1rNHwFs2LoM1D%2FYzTfpYR6Ob8Omp1MMHhzCTpkYy6zlBIfjJDHUc9ZYFnsxVKf6HxRBGNqQRoWZ%2BAVVTJ5QS%2BFQiFCN3Hj48R1eVh1HQsWb0CxCiDSWzQaIFioRUcsmhb4UElmqJt4E5bDdaHAU5bkKsaqujI1WWkdVgLVjuM34ERTrRIten3u6rwnHoXUoWgugn144JlToLHb9fJbtHRMHlKXrELsGmeN%2FBCqJj0ZN2IqOkSQoCVA1S1Ax3iyYXLJG8CZxQVQlZsBsOXYlJTtR8TJzviMLIbLLIXInhKIP0%2FgzHVI%2F2lqZKizpLHXSowHqUVCSwZZ1xapBNIwrvx8jmBMJE2DuxK95JSH7tqutWPDZesKUdlSPgDeXiMZi9mty%2Bz3pGzdOkEKdhicToyPuvXYZ7AyaO0l5vvTvWZc8PM7zbwvirwN3yseruDM5xS9Crv4ZMOdfiR6mmDCXy4osq2IQMBJuVGCSjaxu4Y8bGjroJaqjxhrf6oXE6Ph3IyT9mkV6fmQgMEYo%2FXrJtIf%2BrmaoLFh56cK86mkVpWbmBbILFqZ%2BUJNBlQaKMLiNWMiSb3VMvmhAzPi2EsQyIpg0Tt4%2FmHlcRKHCiNhq2DdA8JplBmn0x8eO%2F4DQBQauKuYzzYfuyDm22f23hVnhoMpf3pa9JinWjiJ%2B4rUv0C%2FUI1PRshOVKcxp4AlonklRkjn%2FdOlB0IE1Wucod12Z7alJNG0gPGRVvceSQsGdewWdhOR0YAeqS0nRO3qKhyBB%2FJFATVUWb9PJLP4gy3i0RtQbCCNB5yIw8W6oZB%2Bvi0hwZKperZqinpl%2FpoBakLXI12m0%2BVOghz6TwoseepjtTCKZouMYGP%2F0FMriScLo5UMBFeDkH0KG8AWa4X0ECHMc%2FRF0ChbfFxc2XEgeF4STZgDXgOXeMtK7e80KNhLhM%2FuSLwlQdewmhSEJP0OvcvmUiux8ujtbWDL%2Fc78gGzl1AmBigXRLM7L1hSZZdpUpvp5AbCCpZ8Ll0licnRQjGZld%2B6b62eLDkAvuGCBFkoChy24TLOQgNmB2ASwxHQc9lAK7M7oEthfWnwx5w5SHI%2BcvcMIKHMzFmwoWAUJwBk71IKTEQC7TRg3HQ8%2FFKZJsZ5Mh%2BWLI01qXhKRxhFiFLDljHt4Kewjzr0FEOvoTfJnqTcMtnBj1hW%2FbiCTaRa0gwxZkzDMJxuUvNySKUx25fFSNsLkgbAWIHF5yGgYTLHDPdDF%2FkFgB5yAQD0eVK2PYBIkHHVA5dQmLCHZuZaj7ewb8RCJa6eialy1IZILPMqrWXvQWyPJ41fYHhiDswpMV3stuJQD58UbfpLwIEklupOI3%2Bs8Eb%2BSatyp6Wa9JFGYq8Irlh8832%2FLgl8Fu2rzkZwLeMmcgahSon%2B5yCAF8wlEE1uwtKs4Wc0oIeMDgfU7IER%2BYxRrsrhD77%2BTsoMP9kZWiFVpfqg46VFRc4oL8%2FPxzL0sx2F5ttOucpPrAcGhMUNizqkkebmBkCkX5Cb6yWgxG4QD8IC29vC09mMpw8%2FU07cOFyYUMsWvTuVq%2BcdrdYRw0EMGgySLWRlf6EBxoAQ6EdCSVpIaYeaFppPUmfHDHoAKH7U7SLCX8iECwUifcwfpgwUFe3%2Bw6enaWSfhDwEtA0UrhJh2jujWUc0X%2F6XveQP8TMyYgEE5iEvhwMTDBRL1C3KYy%2FBmWYLAd%2BA98ckeSto7h8NiElMkzJL7WAcXml2JjeuV4oWJSQjXFtaG6JQ1FvntZMA6Ndx0Hv1ohsRk5i4J42IfZHEpjZb4Qmhu6TymAX57klCDE0Sc9dbdxPZi%2B4xaIYIx2nkg4Eh8KNH4FCxAxy6QJdU9PDAKkx1ZGozehag1lStH8RoWFEOQcRY3iky0WShYj6mvE3%2Fws0ADggNO%2FY0laiCQ%2FgHFaxkkdSImPvN9dMs85nRe%2FVaqqY%2BgaEzbj%2B%2FAN%2BuN5r8ebTBAdUHdAI41Oo2rGpe4njF%2FPGQewJzZerJjee2vn2j6MBMd0RUttyOXTR02SAoXhw0fPjfDlgKr4Ck958hkpSm7MZAQI%2FBdPdvF94ul0saWmbhuFuIpYZEZ4BL3cThQohMLzC2LBHYyCxFC2S2JsnWdmCGgQXXcXudA4LI4FXRVB9OVsbEwCJH61wu2PwLWyk5hhX86OHTApARcBzEyXjRrrwvFCA8NO4IUrQXifZm%2BXLF%2Fg9hhP7C%2BvT7aQ0J8JSFIBwWVHieD7%2BhEHoWEygefznE8K0NL1lgGRJmoyMKQDigcHCfkYHRkYlGAslIDIwpCC%2BOMVKOSyvNisjmUwYorjn0WL%2B5gyF7tYOQIRxDcC1HhWgtmUz%2FS8dgmdFYbrpzXXuPKZTJ81djAt%2BVmF2XfdZRJ37u1LIEeFkfpTYOrMlSeCmqxKLJZwi4i5lAcKwroyEaJzlK9TAIblIzecgVF6CNIv3BbmFfY7UvSd9MxAuuSt4vc2HxhwVL7XNn6t5UXiDAy2oiSvNb8SeZ34tjMhxZCNkk4k4kG2W8oeCBMpykVhHUesZHBmyuSHEwiVNSQdFkUOh3SilayoJeNczDABZjiZ4tdP06lQWD%2F88iaCCXW2kk4AA60F6fwwnFKYfK2R2xoTH45YbxGeo5dRZFx7ITiSuSP%2FY7JegsbaQ4s8AojwuMxg4ZmQprE6DcMHmmOEgvMxUuKqmfzYfGXdY8KWsiBEF5KogcyVfNSjdtwP2xLEIjASNg5zWeRGWJs7XTLcNE42uf0PCaKnjdCuY2cT8AYBj9dOcZqKSTCuV6a%2FcWQ%2BgU8pRjpRbQXUgz1oTEGE5dfPZag%2B3VK7SQFSOPULmD740fG%2FmpNb9I%2BF%2FjsvJdkmIbpEbUKh3%2FyW2KLzfYTwRTws1heIXMaPR0QzkjwOh%2BbGkEgq%2B4g2J2UsONuEuXjqjXjghz%2B0puTC7r4mBRcpOXbopG8Wvn0mPRZr4OoC0LZa2d%2BbbAydRKvXPTwGjmWN5MC%2F4DkDXjGGgfaor%2F2mAAHQFLQy5shUxEK6k84pDiwl4emTCjWuKtFJBBY%2BKqNtuie8owCeSlxwFSvG16kJhOQDJIm8%2Fq%2BVsU0P89ijlRldwWlqp%2Bhu2bTUcDnbPeZxbV1qKSCgYPSBkm2NHK5wgSYmRrwFKRURKWuyr%2FlJMLPB4eCUSBsAu30CugJJUqWpPQy1zABbHJg52cZGcdJSbVUbDzKCKglbC4POTfWjpl6eUKVsCdxgFmu2nEnaTSX1IqBU4d7wRdAi2S51ow3sgQYBE7XUs8c6NlrZACfw%2FOQVIwEtRcv340EYCOAgdDbUfx0NjQ%2FhG2SideA6gXcdRYdyEjYmqo2WbjUh41qjoh%2F49N8M9mXPWLluX9sJsm2aMaWtYCc3DkONEGNVygFnD6Lz33h%2B2ki5g7b%2FgKxxHmAoSAGbvjyWbN8wDUSM5W9WKsxCL5c6BgOY1aHa76kkWm%2BtPjRKL0ZsKseS8rfbLJHipPoB5ceTWFAs12VAUE3VPIgbtGGFS9f5pN70uBHPG6R9s8bt7e0yNFLYBxMPEu9FZsRMliNzNn%2B1aSkPKg9EhfjwsH8WoP5%2Bk07vpGXu0yC%2BxGXyd6f%2Fg9Sz0150pvIpybWHRH3CAk5Fh10tR2QVl3i9merFjyDXhZoao%2Bxzz72Zwuw2PsAXzeWZ5QyTWAresaR2LYNgkiOfuAqrNXvfiifK0rDzq46hkHu%2BZea3XiRxw23XhH%2FP9lGB8pbR9hkSlA836q3tBg9KfN8pivVI%2BrQpoo5uSdf4%2B5b5HqnOQrhv8jiyiYksZBU83xTXztR0RJ5liaVHli9DbfBfEiqMb0l5NDMBiU6%2FISe4JpOrKo4c8CikFFcrr8dxNjPW%2BrHZsitKAJRaJmvv%2BxdzdlIqEm6xYMBvSiJjQZZ9zHBV4YH1YLAM2nhZFtFuuxzkRk9jRZlMF%2FEgMFMtFt7siy97gKMDAc4%2BoG9JavL2QhHbuT1cUnC5SnM4KblF5%2FP2SGlYx6b6QHXTEArj%2FX2SalJ5OC8bVkbrMUifHbdLpcngT0XYjNZ4a6EhLAx8fcrKxx%2Fg%2FvBof1hQNTpAiySMeBqiMKFrR3kFEN399ihltvvPSNcOC0Qt4Gxs1ITBe8npUAsXFPHnb%2FewPh1N8abAQxeX6L3zwOknhgq3N1xKfbGp61NODy10z2wQuifnY8TOkqKlZOpiACuVpm%2FsbJe52Quj5NIgFYADPBJ264yBaxbiqZtQTywRmnmrZqLb6V6iU3vMFisKWcXAd1StjxnyLVN2GsbJNOwZqBExzE3g%2BQZkwkMaLgltXDkmngUIyv48AbhyqgToDcS3v%2FPzrvqeLQo5UEFLbnjn0%2BMYgwXVaqGfjYJKTj83Knf7owJPgOzsiEsUVYEH%2Fo94KPMzOwt1u9bMzNpxXKRh97Q53REYeoVm2EIIfnGvVIjLGYeRCffA2VGBAwgD%2BgPiZvba%2B%2Bp07nGpjYaiYURUDLeRLm8gRUObYiVtVFQ7YK26D7F7Qh2%2FHKJRZn6LeGOYIYl%2BgR24ARZMkeJdum4%2FrYTqNIE8iO47xTCCrXWnGYMPMzxuQLv0spofR2GJ83BjG1EHhrJYU%2FB%2FwVDBIP5HBorlYNZEdx5uNIc1BRFYcHF0O0Ch9uzhwXlKCNBaKQWVQwPs90IShC%2BGgJ6Aq3PJDOBN7HdD8UtgBpKJvFw4iTTm55AYFiA%2B1FMh1NZ%2B016EJKNx4h4NsAA45MuPXsc0OiZDew1VtThGDu9nWzBPIdORqPOWkm1LVdvAJ9nldy0ERcZrvHhqVLKbANyqp6gcZtSwQk6rFUtEOpawWPFC17Q6o2xAjuI6BEmvHhnpNMLUA8HFS5uJMIME1nxIicTj8wSIiaofIYikJjJsDvKVddLxqvSn48bP15NXC2Sxs4Mij10%2BPsKMEclqKsi7X5fSqIIL2NtsI22GKdqN%2B%2BCfHt0eRakXv8EjHm87q%2Fhc5lE0i7dzKkEvXzYnrcVgYcbmqPOU2bj1%2BDQC%2B0%2Be5vo2wuAm1VqQc5go%2BBxC7DEWyBjnt6GW70gOJMil2xHqiGcsI6kmBWDAdWFS09ZKvq3oVCHD7TP82hcbdLcj41JqPv7iVRSJh%2Fz1t2JsImpgwUeO457F073W8KNZBnc1T3JPj68sln9m%2B2x8AXAdideMEAibmHQZzd%2F8AcqgCIZTNlRWUfhksFn3u29IempqC7i1swkm9gwGBXIUBzJEsiJStWiSLqGNNO3EzVvwavwVMqF2QkVN83zuZvsaUFyd7q6LSu2cvQQhzRI%2FOjwHwbzTIFF3a3jeXx3uP4XmxnBSmUtgj38fA3ftEWbI1NTCvNHxCgDZmgE9sO7Ls4tazD%2FWefqvgmas6dc3Z3GmAXAiJABESlEPCx%2B%2FHZsOLAYAzrBRINhxOawMGs1tvESnKw7B6t8AJBdET%2BEsMGUOquRArvYjWbTp7GSWrO0bscgec4YJ4vrxoxVix8wafG2OvuwLpBYgeGWqm%2FI6nr19tTuF7UYK9IQVekI4DQWOYoNWRbsAhjswK5GstkVDjIcwVir7syMCzsY4UlcHTe3yvmXGJAkl9hC9qnYom7bhfaVa6XAg3FIlIu%2FAt2RMoOB2XfOV6H6YKzpt%2BN0GpH7mh2O3eYyVbJJVOWzHoKKBQu%2FbaA5wwNgn03qJ0z%2FkGr6a7aTDuHxiV6KYvT3HTwUvKAbCZtK%2FAPUvY2SvhMLmLN1iTgIptV8oCL6F7xH2u4eNV9xhEcMl1wbxEF8R%2BL6bWsxVzxc7vuKueLvKj4%2BFcVgCmAi0Y1LrjjszygKj44EwuWn9Zpx3KLjcrWq0VW2JxBwC%2FyHWmipTwL1miVUt7sW6918bxmzMKgRgVaVYQExNyoZ81sbxQ4OxsMlQbfmQkOxocPCpAwdWMg4olncDpxKjVAhZgMLQF8UbmRpAwc7Z9o90UBITl%2BDUFWNEJVj4LJd7WQwTlxFg8IjkuJNldhCnv%2FW9dARAieGKoHZE6uHpw4ROb74WL892f163SL1BQSR3FAYA4TDPUuouh%2FALePpSwxLWLyOc4K%2F3I4TGuvpL6EW78sQHjR%2BXahCS%2BOt8nHcntrgoqDPXIPTnw94c1qolEY1UY74RDqraeSIpp%2FS%2BpLROi2NMVCwCeIPoSUbOJubBuNSPrQaS1Qa6fFgzgUTGg2IlxT%2Bl%2BDJ6iI555RhOBJTsWawSAY2ZUukZ9MAhD%2B9QRmRjEFKWLiQ46Jb%2BlAcN%2B1SPE5aYfN2bq0giqRYyApkyHyYAeVjXXas%2Ftgqcs6xAXf8JBF%2FCrDBAF5Eb9%2FkhAHKBJz77%2FbZDiyb0iSYw0pCgC%2FTlgkoD4hmsZgwYpEcS9Z0NLMZMDalCjASYcSb3k4EypW3sooOj8AxnqAQDaDBBs8yMBsnUWvTK40XD4gnpb2Ky3BUVdeKnoudARcgEmFgBeB2Xj6OJ3v16aCd%2FoEkx5Cm548%2Fboix6PIl141j80TRj0XW0CGJkbB%2BWhqSIa%2BIiJvqAptJVncv0swTfTCLtSr4r4xgmtrQH3nkkPaimDOFzLAfc3zfvh9iQGqR%2BiJozUz8Kc%2BZQsCTz1fdsbyZV6ZNcPjXnDhWh29ta7hzuwyYVq5wu%2B7Fuap7svKtJHCgkCOgacbUCp17SPRBpkLhGI4UJfSyMCVQ177cMlpKa7%2FxWHyJ6QA3iyn8IeS0SYKpEr7CA068j1s0sCNLaovpHrluZVVaMuI9h7EGaQssLBNliWCaphcWCBd5BzksLZERUlwaIq24ZeiqXTtYWWdMBR8wgn8rRG4f4DtsyWfQwZmdqu42RXuAINCkwAF7O4BcYcF2HgEn2sf%2Bg%2FLzp%2FeT9%2F%2B6BwWMbeqXUQfXVHvBGBoZfVEWQdS%2BcUlRfepBJ3GxAocYcRXoJhAeqd2UD4eoRq4BgxIDpps7q%2FeqRnvMIwQyBWFQ%2F0%2B1op5F1MchyTuDHG6YNOHIdJLfClUd1vDglhSsEvnPdqBCUDniRwLLXeALMYob5gPKZhFuSDnJGYT9u2gm9Unx8%2FJYDTrRY0CLd3IiSYSNUUYCQC2he1yVCfAk6B6eyXlCpe%2BkN%2Flma%2BYvyU%2BEYJ1LEdrl7cgcZCXr4UeTaQA%2BWl1RVCwiwyVsxvbjbEMg1lmyRpijRlwtkKaAt6ZNvbDjX%2Fz5bsZL49u0XqCiecdCDz%2B%2Fh%2BoN%2BllsPKH4fIJgqgRvogC2SyQfhoPzsZ2Odiv7tQWEQyQVGaCozJiJeuXiEmdDZRux55akmJBUJCjVc6nZ2PaOWQ%2FTq8yMtcnyCzqZrJx8dgbNP36LS8qPANT%2FvKyLfci4SkaPhl4igCyfvCLutMeP6poGHkrKsHr4aDVF2fhVe1ahibfvI6zAaWIZinjLzUdU4rjYkOG6SeT3TtiVbXn0hgMdOfK87V253O5xRXfOSYGFDDU1HeHg%2FV7F%2BUJ6Sq3mr1JmSFoOjFk7LCAB5r9ncf%2BvRJUegBIO896ZWLcJCxVt29lDbu48ytTHTHGSDzYaDBPJrawOw1RhJ%2FOqrVi0Wm%2B77BJMXie0pzH8tR%2Fm9LsjKNHKIHzhQgYr40xL%2BcT%2BGnIEdhlhgsj%2FPpc14odmfDOiqi76eEbgA%2BhzkY%2BF09aWWiRtEE%2B5r2d3kx2V%2B%2FqewsagpLqWoZ9yKBs0h5piFLNhkRhfWsF7QXBsgZUNFrSM3mXaAVr63KUJtI1nldlVSEbMwfouPJdMN%2FBBIsYtVuarlvyQuryDCpJxXmwiRV1cjdhrw2Amt8HiK78I55yi%2BjQJQMKQtMjopwK2sYWHfLK7aTAZy5Pzw74UcRIL06rdTo3C4uS1iFBot9AIMvCYnt2vopZMQcltLpbPT6S2eeYm6W7u8OVdUVPYi0aLidkducCOCmrb8VlIiCeRhUAmf3ozcACf41A2vETPrzsAFY9xEege61uxeqvO3D6eGSWtdFTT5VuxEkQ44n4qzwHkUPJPOWkLYZYUVxGJQ7JviI8sMf%2F37ak2CNSX076%2F6EF%2FeM375BIypHsZnPo%2BzalfZp3FXEila0UbbwOY8Tc7ogg4sxGwGIiRTBZgD79aQVNl5ejOMWKAttWQ1CVg8a079ayCJNFE1iM02j6Cylzv2mFMDcpHKR7tyEZ6pUH%2BHnkW1sEnrLi1NC4y4BVTiFQKywAJNVkebsyaVVMWLTsCcXlziW4y8GFTVMaTZciE6wbjNjsrjmp4wLCAxGBarCXggBbfa4wuKrN23KMDcYnN2YOyUPbSA7AVNlXP68%2Br8hXOuAS3aTwDKV6pbozjJeGjO8AmyqA7a8FeYBguKHeyzBAR0zpEa%2BgI1PjSfP4dmMBEDp%2BZE%2FPMrHE5607i4ajEF1iiqG5PxdRq0kFIkRgxIKoAv1Pkmum7uJ0ZcqC5Ndo2XQA50r0vK8YzkoJiKGKThYvD%2B%2Fh59QVwZtJ6LHbKQcJ9vHjdLuXFuEZbKbFFkDddiOwrrj%2FAtABNssiuk2w2aRVDla%2FXA0Sg20jHkkBrUuMNDDlrNASJh01KyNbvdCepxpBTODBrD2TFFaG2%2B1EL3k%2BQoqPv3KkmxVpP5gylFt%2FgkMOtCPSlr6LzRq9heHsBK7NIhxRatIwrH0APA9Y4Pbd8A%2BBP6bA8RfLxR6uo9SBAMNKYew4o4OZQeGOnW5CdRuUhnIG5Xfw6Rz3ZjwlMEhScZ2didsFeAZEHbOnwkh6WxXXfuUWJHSB%2BZwwf2h2OdE7ug1CoQnGd94REcpCr1tfPSHx05wdyXi5BmZ5RrMHGmujNhZYdhw3pxrg5wQiYyMkTS7I%2B1naZeMdG%2BqDj7fg%2FwXQF3oF49%2BAbPy4dfoj2mBhmQas%2BRT%2F0iDkHVRndsZltJ8g%2F4Koy0oLdF1WG0%2FVOWgmb4l3uJaXC%2BmRS7i9Av7fZvPWkOu3ohb4pow2LQRE5L2eKdW6DfdkKAM97gYACJTlKi%2FXLodbt%2FZYgU%2BBJSxE675sNSECkKXQ9KrL2lznzyBKtr0lJA%2BDgOke5Jh%2FnE0uRgRBml0ducUi9sceDqbzGwXvcc8FdYmzUXnxe3YpaJTabzJmB%2Bk8OAXaLtNz6cRujOZkKeLG7wEoDjdCVldML%2Fussbi2gmlziMKFgJxEIubmhJEMbQ1P1xWZLpyueikAmqEyNobDjnoez3Nbb09AqEJnEQXgI1iUkQ8PO0%2BdieDAckehu0EFwFNAdjS9vYRW5qUlK0HQiNwJQkAHBhSW5zJMcazmQ%2BYsBBzDQ%2FgZy24ljxZuf4ADDlBDNrH8jYKdDr4kFVlVhf0lm4ApFjWHBxWYM0YgEWFXk3M9dAS%2FITL8yvpSOMBAiUkFyvDEjpS2pbuRXNXOMZNutSKZV1BMiklc6Ms7XeZuZRCfUNNbkiYjVArLtqgSFFoRJVcimqiTSRSSjv%2BHJYjXzIVC5LlukAm6xR%2BHGeKUqTyC5pYQKBIOA7wC076E42ZJfEokv3lFfLNMcGmlW4Quntx6Kosa6q242otjhlEEAVynHrxXMJUTBfEwQrcoEa6KCFZPviiYCbaCrYsKFZTi4CRLA8Y1yJIk4tRih5yqNU7R4MGFrIUnmRgxxaeIECtXy5xbP2LlVto%2FJSNtQ%2Fi0wpg769P04iMxK8YPusxE0MoWL3BSO7iUSRTD35u1VJeLK2mWO3%2BWe4%2FHPaHQEqS97hRyEvUkSyWp8Jx4UaVAj%2FabKyBOR9yt5IC6dhCZvlz0WSEz7Z%2FfDSs1szfdyCyClTZP1Xhj8BgXm%2Bq9PsLvyTgup6leWWZEcKsgafdjlj7zm8Zy2iV5ch58ywgywXEM%2FyFsZtXUxMTEmR4iC9d6DmeI%2FsAoiNDRE4kMEDIbLmt3NuIHW2JI8ZyO7At%2BaguvDIjGwCvdUOVhQo0NkRqQ9EcKdqx7obbzOml66SYolebSEH2DoD%2BA1o2lyMSrkjjYgitLhepTEFbwWgtOnY6yA7mdT31IlUrGaOgB00IVYMv%2F%2FMtEXrNzQ77vD7FCAHmSILLITOpV1nQDzQ%2BeIFwX3vNBPzw77iikX0h6C7XMXUF83HXgUflAwqjmwI0JcRsjYKx0H9mgVCJZ73ofxnQTZwFYLFVu7lGCf7k5I7tMVlVIGyWK6efQlUvRQmEgZAHO%2BeJT62R6aZS%2FizCIffjBnIgFMBqzUiROJvYsfm6NdvL%2BdXdNSlNnWkkoMF0tvQ6Y6GgzESme3PRNc2KSeK3S%2FqGr0PRqK3ggrZshnbNzTAWkXXgqr1zsRAOC4SBISXnyLJsQfazQg%2BeEDLCkh5dUfgj15X2UzFE5FQTIN%2BtvxfxGmN6KEJABybCoFRrQLLtdTTzfGyGaMhqKMOUO7vDMLxanBCrTsDAVii4JQmzMtqXLLPDHUik7cIJqyHshtFpb5HHm1fpTOC6JS88Rcd1g6PVUO6%2FAHX3wmoIuRlYPRpGFrml7y05g0MAmHIauDxUO9zWxV%2FDVxBZQ%2FOt2lNK%2B8kfa3IcksWJAwupYEUdXQ9%2FMDAF8IIMsWCnjhqBIhSNjztrxxJxAOrfD3JmvmHF3vnFgslBtqGp2cGE8RKc3brtZRJLAQ7XZctiMMqhwh1c8pq6HFC6kJ6oHi%2FX9f%2BSkEJ5cXWFrAlZKdo7o8UTU5YjPx2mXMRU9ObfZ2MOWNO4DY0OFw6Ew82vcdN%2Fnkb0YP5qXMru7vsMaDO4IlCdNX6u640WeLc2BtQrx96NrCXB3uL9NuEwyCm4oRaAWY3KhUq%2Bws3FBf44PlSlAr4vPD5xIxKER1CRB1tlYMDChP0V3d7uWP5C5WNdY2ovsvAXyHwVrQf80NFiJYYuUl6cW4tUsRfB2FjZHmLuAdhsC94bmBWGUgQgxbL2LoAB5dN%2FRC4qUxioGN2GwyEsA7B%2BSZAsDNu%2BuJURrkDmLZ79nxe1GR6BADMYRtmNVkC0IqtFg9NYLMxZSZpUni4pY27qRN8LgnggyAzuRtzjFTEzmbMYVNHq0hIC9nj7DQpNkyYdJnF2bU0TQ5xsAIsYQIld5LMfMFLynEQt%2B3ljeAGMjboSVRDriwOQCSqklewoRdZgvQAqC28vC4c85C1uyj1NMWB%2F60oB%2FDhYBBAk9jLUc30%2FOJ%2FUIKCQiy7ipEtXCrafDCIhAgJeVTG5vAHyVMDyN0JmQ9hJxYR58AL8DeZFkgrUnvxxxrnFUHn3LjVfW6sYc33f1oFGsjLBV5OJOC6T7AUg6ZbHzQuYjgeyo4RxpNHk4vQBP0NGbnShzLHh3Sinja0uckZl8VEkpVmeH1BJ%2FMjOKABkkR9UrGCUEJbp%2Fl3CyOlM6BBUFJHojwT%2Fj2dFAZ8eCtAOnFxyM4iah34jC0Ywe7EcSxWcWnDtjyc7X5eYSFGG%2B8oVOfu%2BNlnMVAuvEQ5M9QyPcxcQs2EzO0DHfSwsCXP05QDa1MJV4lqgqvtcCyKteo5Hy8qf0CrCQIXcOg5LbEjHmGnSU28xIjpeH24RizdymzI4YYicK58AC%2FZKkdofFQfiYikgdjTBw5Ko0Kmi2SqAd2i4EH0nQllQ6PV4UC6OykYembD4qwOHqKUbyaDYBvOIFxvtDcrHlryYfMbBMJVj9i0YLtU8fMSzTrR4GRYRXWJ67q%2FpyiUmo6AV9cO6QCaJCxydb4Pwui433Ct1Hqiu4yR5JnWhfdCR5wntAXZn6Q5OKOd9ewDaO9QfNtldFLmo7hD3oNE3jy%2FvAXTijBDcp1o%2F9IbRKISSvV%2F2IwTMQ%2BTTpJGVJdg5z2X5HQvchSagrwFHj2p93lRmsDhJ%2FRq0GyshjiQ21BJhWv20Vwv85rVkii4BexjBAST%2FvKZAZxt8uZGba2frpvWmlHszu6jyoSlKiUzRza2h3YlcbnKJAZeYdYUQgPBpPoj%2BipCDBCsapvOmqLe0HSnwNnBy%2BXjVpBM%2BjJYmrItH%2FFOsJA2I9TtohLS4ZrG5Tn7vnZctyWpCroJmSkB20tI1GwSbU3Rv%2BUuVNyewUuO4J4tQMbpx%2ByDERuB3SCo5ETtjQTnOnRNLGXm6joToEay9xQ7fw6BVh4oWCYDWZvWVCGt1bd5s0hKLCE2wav9DESvuNIeWeKNZg1jIYRhf%2FVoFGn%2Ba0EQpCFsqgrDjlNDki45GEa0%2BOVB7YGDUCeFHoIcia9ajryGBTJk6M7o8Ka9OEIXUaVumBCyf6B1hKi6xPpqF9JCYVJc87Tz%2FBvVkWXxv4XIjkD58eCYetXfTB1GmH3lI87L1%2B2bg%2FTX9zLwUj0i4zeGkmJ5Jy%2BD7PBUelB%2F0nY%2B7ciIw1o%2B0tjboh8U8a%2FJLQpT32hiNIAULTzs%2FljjPvCZ6zfamZoxt0bG93JkgR%2ByCcnoh%2BuB8%2FayFGno2VTsV4%2B4MlIYX2ogECCoVrWFPzs8dGt9ewHINeSwQwZB5E%2FP%2F3rvyggVdSGlrpQCE5nfEd7pIkhHvnxJQNn00QZYAc2PCfm0kKjgDGVPpzTNWWswdTuzTELdSopbPUTXw7hspTCWaBsep%2B5KLtFNOAyhTppUWKo8tyNhYgisgmwkOOx5a4PIkJPKDwmwwqcIYiydkzrzeM4ReSJqew2tc%2BIqwHBtIkrm4knKyJflW%2Bg4YcUpF2SeX9pcwAIAhT12bryEeI3qfzyuOxsHNI9GEIRP7h9tfumULzFIOblYH3cynBtCBwtpuJj%2Bm5L8EIcHLaDTVFw0B3IgnJFh7Ppm0fWVY1rCx9NYW9LPolMz0jyCxkyHSgwTlrJkAmSVIEfZzc0O9M5XdNNBMez%2BzAzdqLMrRuj0Y%2FK7auZCC%2FWTB9B2jUNKX0r46IwEqhrnQ0KolkvUauToSOXA7UDG9ihrxVal9q1sHjdedFkv0S2Rzanntn4sLYdhzEHbOzg5TReJXkcb%2BkavpL8C%2BnEEHFTldmqfwAi2khjwlxPw6Js656mRwitseNTyw%2BWWy7xGqA2Zl6Xi%2BMR2ulrTXqijCQQe3o3wn3eDEYZXTgKEutkWBelQ9ePIigjACCiwPxOCwURAVMcmsIEHxq5HiAEhn9xsWg2sJDEaWjYw0AZioItsDkU7Bg0olASCFuQ8t8v3pxPGs7le9WvTdvbAO7VEHGumdawHYV9exTk2jJWLhDyfCrqFqF3iTlmfamMi%2BWXOY12izyngalDKqt0WzscyK1qh35QyS5RyBYHFGHAmHMU4ugpKkEO5RcQtaayUDDE45ncAE1wRkkF1Dsz4LP4ZvwlJgEAZWC3F7tbmwXrtv6rORpxWEI9IIwZGAxxOuHVeA5FvyyFQ4ks5YBjnnFzhF6srG7CAomghR8cw7LlRZ2QCzf0CKUkrkroVSw3M2d4FeLeReLeYd8LQqtGFCP5sPpUDcjABFxIaAsEHL4G85PY1sD13J2AQ2UtNWHCIrY0c5XVW42QYqkWGhSdpOwrlgehSLDCD1SBwzRRvyaJykn8U6%2BlCV2YHEasWsJjB1je2zqf0JGOkUHqHjCHcjQAy7HxsDOfXiMCGiZQaDVKcgQZi6vpYjK9tFeoujJ9dFhuLz9kiQUI2Eh0ogCGYy4c75DDgE%2FD4BtFIgN9HkXKkdyUG6ssmOPcGkNAugYAam8zfnQSEPFrZ0tKt%2FohIqhlbgUvkGeBFZcF%2FyvWUwXv%2BiCXjwa8kPIhmyspCGj7u%2B9QNbBDnyfkAUyqNSEOPitnlrcPDQ5l3fxjkBw6Fnee%2B0lpEJSVy6z7j2T9HAlKve7KNIt5YUIUMdlCHm%2BG8%2Bo5Efu%2BZpQVdEU8gq4UJW4Zr4Fn39ydSpCFYLZxEy8sO%2F7o%2B9VPhjM5JhhUnxs4AGOTPcvLDvO5TMkpw8sIT02H7MnA7qV3swEPCRGOQVE20FU2DFNIDAIGgSo6cTDag18LQoprEaLZodizxF8bElALE%2B3%2FTWvhLm3PHnN4GvlgxXLF5xqELE0McDFsvNhjOyTJOglv84%2BfNxgLh1BVcRQq53gAXpn%2Bk2NwkJnWqJ%2Fo1y4tPB6THk469E96UJK0lOMzoizUkLDZmTgFFagaAlLEg4dstjQhHGi0D%2BXGXtHTEPks1MQWJqRdjGhMlZYcbJrct2EEzayDHUzowqglY5kqDTogrx%2FE%2BKwyUBBQWeUgOEmUa0dSS1BF7dkMQWeVH6a8Qia4xjYKSgkpmG28eEMicCWmnS00YhcqnJCZWJ04uh1hdVdqqMJQ%2BVFmgxMfArLBIa4cVvLirJTDh9ahvQU1BALEjEXFHZibi7TJlBHxmjcBx9biWAChynlxuAXBalJOSHfB3YQh94o2oR4EwJw0I4GOHedw47SGuJESnXQplLWeKJSGuIa%2BLG7sbaE%2BODYkEA%2FSNrMQUJvL5RbM55nF0kjMOOZ7DKLnwDGQOok5ixVWOStcAlKMY2K3dNEdCyfqB8gUif2uLfAhC4RCEoGHjUdO0d1MG5ccDqC7n1TInb0KBEuYzKqlAWZbczJMt5u%2FAfo9QZSjIRvsMKFIWqQL9x4Ibd86pBRcUO87gtuRWgoUA8Cgelc9cibTeYFqdOnA8EWwqYt1r0IvylKwgouGHfZ%2BBR3UBgHpm9sIOBi5ovRp32HhlrquLi6Wuhp3wNhLIqP0xw3qIlEVnKBywYOsKERdvYEPZx0P1CYR4pjU5BU07J0GIyBVPpVWtsKbJt3TFx4p6Gq%2BNwBscUbWJff3EaF8R2TY4icWchS9s1AWmjhW4cSpxx%2FqWRjfYaqi7HedScX%2FH8iA4DxMwZaEURdvv8mIZPnBAlfoJja%2FEQ0OWDVGT1DjqAC2LyiYCj%2BEkllnXUQhAIOOqCyezOcyFv3kuynitn4fSlmpnProI6xVyMg7LkGit1FTEzTqdN%2FghvKShiS4rrO6UkvHzrW%2BbrTtiqsI1QEKkRS1HetxgIkpiDl0vvTfuT7QfEctfmbUEhupykj8Ssb0NrvdLZcqihedESXSSgFA8h8gSxysBwj2YJmI0vtIwAuYXQzC%2FwK6oHHXr0MAGO58cQ0Q4xxktqShW5kp2YklriY%2FkUzo5%2BJgEy8rvRANUVHxNkmE1WNzCFs67b1VFBGwqo32dib1e8mvh0ALOLYfoTEmJG0AS2fq3AscXuyWqBDPMkTryAmCXKN%2FtUuYZtrtHm7eTwE%2FEX7o1PADtagYPG54PLNkuXKl0szCEKoLRj2LcQINaDmJPAxUx7ngarJPOPXNWvKGqY2Sl4FSN80YUr4tr0JykuYrEgNm82onJbhxaU7yfWpNpuATGze1h6apzI9UJmDVcgKiG3zTFP%2BJxNpXpigyEhcFBc7NwfNHqGlPCUeqz%2FHAMVgmfsub4tLhRP9jzh%2BDRCslOLGtOIBhzGYCxPCUZkAJ3GlYt6F165Ga6ozjv57gOoTbNHy42zkvoA0rt8h9jTim7FRPT9OfVEQg9lCmACc2ZCg9frf73lz%2FynRC8XMW6ptT0BVB5MyjsQhqfU%2BshbeWZbagHKlS6GD3NpLiYOEJpK%2FgRaTH6EKvkjHhhnaUmuofC8CmoCDxlnwNfU8lpshJBQff6lSkOcANuHPBjPbwNoH6FBpUnU7Us0wK6FmeIQmbzVHBvklmhk1swiYAEbuESoNu7THoaDA2mhRaeNq%2B16LzIaX8bP%2BfLveOju1cJMjBh3y%2FUoriqWDmlj7qhN2IuslOp9VlSpJtWtGeTDVFQM%2B6rWazS78yCuqas8xeaAXHBqrgbDk0CbqKltYYQ65vsEc9EeG57iVtemZZkwdBqO7yznsKoI%2FZtSluPW6iute325xv2iJnjvvomcaqYrhc6ARLFYanrtv82Yz0rWyR5pdOCFhk5YIUqAH9ylxwDpginR%2BrMBL%2FFOyVtniYsC1wRGEQ3bcsJKr72UbwyLTWI0jNosy30MSXRRJF0QcwFhnMr23tAAK62pO3LJKg2LqOtvZMo%2BlFXmQu2eaIhzzbTK%2FbCOmeNK%2B7SkChTLBkcEd7dM3EwY0kirMnldi%2BZuqJVRQnVfahHSH%2FQlNFFJS3NR7Jl%2FivbPnzPv3ffFnL8sCUCETzIkKrtEH3WlhGzseaAKxFhoEaWat%2F92fjMYyFJcn3qZctG1TllxuhFyw0HI1%2Fke2ZFOkX8B5ubxYMtBn8NASjuBwUCGFU1A6G6%2FFUKD%2FLJcJEiJRssZzZPIMwkMgJadazna%2F8Q9TSYP4SfuRIc3IqN1wfKpXz2FS1yZg0iFS8lvqkVDtwQTAvWAjRD56salFETr1h5eIuYvvij0Uj8hrwC1SmiZUm6w1sKaOt%2BXZlU%2BEu5FskOteRQHw9UZyAZAEZa%2BMQrBxUEG9OCIJoN5dyMD4lbQMyY6Dcm8SWxeWpKeiZ7nWD4JPCgoxhaaHY1G8imVN4lbquW9JxiHfb2xUtfQaBlxIQi2lgJJRyc3CwbLmJOgl%2FCTCKxU5vRBllxhFId6dJ1UGMTlO8Ljo8lg8B97rp1pZqN4WfV04KeWQLxeWCB4xiuhY3m9%2BLUcQEDKEQhqlRMBKJfPN53sN17k8APJa20XRUi%2B4LdxnsAf%2FT9hKI6CW5wdTEAyh%2FZnrE%2BzXdvW%2B6L6g381pZzwI4hYoNqAo1hY4lLzzRWnZWWgnIo04Xn2jVK2NW5KMQAZKfKJgUcVEwgwjJdvzyPhU7lYgRM105EZNAK45tau0k%2B21%2B5BVM24TZ6Nk0nJ0e%2BLCBf0OnvDCokUQ7depnzXoF11oHkVTfq1WsiHFGGCqbQUTrJXGgIfODiykNmSmW9TaNLrVLaqVU63XM7xaEc22144znivD%2F4s4qA4JT2hWHAvu8N7FyOjsniZd%2BC%2Fc%2BO%2FOKxq43c6aCnSqK4KrUu44r5f2laDDhaH4LRBiCVC2nF2NVJ0ih%2FchsNbMEvjyYth6GTRiERyn%2F%2BEwQiLpqkPRpQUGirt1UBPEZrKgZviXIq1i2ir4TgeG4M9Bm7zImqy2dszwdhB0VZUdqRcqHATXNTNXa6ZjXXl5Yd6WzoB2bBwdZ7D64wX8XKToo%2BGvTCPx3gSb1AmCAbUVNxGdIwYCD4IyHqWBO7NMiq%2FrNJF9tkzW0pDtOKFq0Z6doIxHRU2cbALFTOr3CEjPTaflBhq%2Bqwt0GczSOCoCjo%2Fj%2BjYlWHjtRqBaMF5Pzl1AiwcEXMozgx5fVJQBjl0N3wZk11k2E5qAxhy8uGBqxeEpzcJSBhwXCSi7gKLU%2Fqv5APGYgIaS1cbGP%2B%2FsXCgAAKE2DqgmR%2FY6sDzs7I4lEuNMHK6G89VI6soKcmLyTnZw5V8gGU8Jo40vBKjIgyMvPmHDFbxOqlCUeC9cxCLIY3POd3SqSO57hJDeLq%2BCahn4EVPG0RPEvRX0w6nDCtQjKUXX1fsApzdNrLVv72tVjLd6eBlKv1KOk%2FwIUU%2FKI9Gs03p4sI%2FbDuKrY3NR7xjylywf7ryP2lyVm89pbGG0MS%2Bbma2xVeRgFhG5Gj4JMkyAYWJSMH5QLgJBIfCBKpxiAPb6m8gYGBYycTdQBSXwB8RrXAbY4r6zH4shW4skAxZOxOCIApFXFB9PnGTh7obeXl4rWsBYsSxP5OSLEV%2B45wTqbbZ1BHkev%2BhxrGhew9wrj%2BdmvQ%2FK%2F%2Flr5F2eEKEmHUO6I5RDZBOea9CLqxWVnGDEjAoN%2F3mCiW0BTaZN47EHrFgucUcaukIcqJznHKTdl8L%2Bgn9LyDKdcZefoKLJ6KPpul0VDXgrB5YJZcW%2B3dWXQy9ZE1O1kvxsrlWFLylfCBYR2T432ukQFkagUu%2F2a3gFlRAjt7IbB1FCuSBga0ktLBqvxkKZMMjbnRYvYLAQQUyfy7PnB4Z3SRWiDYcU7UIAJ88zrhn1tNARCoqimJk68l0RxBg4sAf24te0DoxVFPeHTz0QTUX0iqCB3V%2FtYDINmVwBm318iy9fkNOe1rJMRezMzcZcx8o8k4ofPmCggvfj%2BhJ5o5fB14rqRYtqwYIiXnaB0WJPmNlmOZ7Kxu67dg28gCgDBgauSgtFoOIUMzCzLgM7xNMNjKiIY6MLhLgmfejwtalN0s0fg8dGPxs3phohrguyGD6gup%2B9XCvHuHjzo5zTRFnvIokkEEKEpAg0GABSafJjZ9neWA7YYuGd0UjTs%2FCnWfrdqYIXPNAXISWfKSbvK0DssGxru3Z%2F%2Fpd6sbJD%2F%2Fydk0KtiurLGnajyQPQoUqcwHVNRDp2KjSSCPW3RjHEOIoMFatMSgAyspOcbshsk%2FuNXL5CgpHIODjYqfWzCSlqMjKkhtDdLY51DwIo5UNigLHwsI7bUgocXzd7ORsPiWNFXYpCvt6YhnwTjKp33EfBI%2FJhcWzhFhKSaGLiARd2qn4daAF3RTTxVLvzKTy8yZYucxY7%2B3TYDKzPNKphNzKJCKGYQYyJMfQRRGnMPRwcBRtUjwS%2BLgMimENECyZkVykQwiFgNpTvDCAoFMN2D5IyP8qSWHwE0p4wFW5%2B84gwk1xzsQg3uumHzi2bHog%2Bt0DsHCTTDjaFxeNrTMPXAytnh%2BS3RHwgJxIWZjcWsCphcxNpq3yEjDxcnrOPY7FZjs2lmeEILTeJzEg5C6WlnVRQhWIsfm4ELocADk2lLK%2FUMXwNvLPg7E2BUZLr2okSBRWSF6TAopdLbX2TmgVU9FGTchDOZgxUpQe8aQ80jgk9Zd4avveyzRvPb%2BuPGc%2BYAMp%2BrQ%2B3mqjDFopLODVS8S3dDpN558njHQisip6b%2B3awTggHk4rYnITANdRK%2BHiE46eTeITqBynJYD%2BpqUoYu1gHtoqUVXedX5KHKH5O1QaieeYY5K9%2BnjWvzR20FkXCY4LfNU4AmibD2KXwZEDV4WXlh3pvJwLV8EqCF69yRGQPR2eK%2FpmQZfwu0Zk1jiPlcPLEA0ywgRvDRj%2BA4XivcE0bJtbAXv1IgkT%2F5KQEgfAgfwSwGiXQXDlxY%2F0hHHFMLL2XbTu2gEVsOX0gg7huV1O3UlP7qZr7mS2T67As6f8tdZ9VJ3d7QeIgfneNYMw6E0%2BMhkBRChdZvzFLNEjBkm5HGRHxkL1TKDCiFFGAcAwAQJpwOMQuwvN3UvhTmbODpF00sS3EzseGZh4lXooiSkA%2FHsZfT2d7rREV7ti58eDRTvT2eIhnOemG3sxw4e9UansUPACiaiJzwnwFguGQVwT4lDnDDbP1ZunNcdvOKrQXf32MHJSRWJtUUW1TS%2F6i4yT8YaDSnKQu0MnyqTELOXmiLRYtYmZAcRdhwHuMcGAIUxQkgta5QTkcuQzHZor%2BRF1UxTbNSLTQzA4%2Bz9FmgB%2F4Ev%2Bffq6uToWmQhYYePy0JylIG0aMR0RHvAQ112WAJLktLKEtxA4PzUX3E44p62Sh3M%2BITgMJqAwOrBYhaDqiB7KRwx4KXlh3ncNOHQFNXTBiF4C1sv5nq2i89egcMUXeW8tdltx%2FCcIZoaiiQVfNXq1eO8ZucZdNdsWyf52viwSp7BhYrfc%2F6%2BGv9n0KVDeZs1VZLttvcVAF8ChABSvJS3wSTZNtYSh7SBCRECbaqcGkm48zVSKlHmaqEBnXkYWPGmq4T4nYGEdbihOV9gSweEPR%2FbCJ3bFiBLCoQk1usvQaeqmF0QHdsRTZXhXoighsR2zuQESMFXd6bGKbXru6pMBg5oFAp6ZZrUhG0PmGVBMTBZjaW30oiUDHC3hfMKSuEYeuXtnVFHeWi%2FGb5m6E%2BUFrfMbLyn6VVUhVKInhwQH6KLdGuEPX7hd67Z5eBYhOnAz7j42QHMZA8FobfSme6nSvIxqOITREv6RoExoQoGEng1nknWpx04FkqyebQH7VgWMcEA8fl8aRLDWgUDNmgCS5cNZ%2BXd86IvTonDZr1ShAFdDYt41ZJIzGe9HUP8wVaALmp6gUYk19mN6w8LXbHfKKjfCRRGB2wyWmk3zXc6SPPMjq8IFps4ektwq3qn87KFYJ%2FEUqTRLZNoOovkAuuO8WEDaOZdL4bPHOvJzNUq5DUkMhlFoaKf2JPR3hgqNYlSIYLg2%2B5KO0Wxqx%2F%2Bx5sqS4PCQ1ZkuOewOzlxt6%2BDJcZLVGEeoFuGmDhfMRPy%2Bj%2BChTHrF5ufNcUKdMu%2BYED57DhAJrNNsKOZY2%2BGcxkIcAZvfGgQgGDpLA5jjeSm46ul46F4WlegxYiDmGIaFzBaUiJp5JCXrrlRP9bd7KiqgtX7vAq8VO6r8AsgR4dxjC%2FaSHSpSwhxehqy%2F2Jbm8a1p4fZwsDLSiRVh3SVHkRARIBA%2BP1qfQNRSSq%2Fw4thQniESbSXGm52KeWNgCb7pEqlLpYO0AUxN969VzUmxjL8PV6CFwvNGfqq6uAQAP2Yjzc0lpWFdBjQT7hbugdNvPLTj%2FLPnLLzoNOAYHh0scswj36QT%2Bn0BXhGn38%2BsPz0vFp3N87YZ%2BftAEhPx47XlRGhSQg894d6u%2BHoc5WWIxB0dA7%2BTFN8Tdvx4mKmCMaiIl9NzRtGMl9zB8pZ8nsTQvbSNS5FdWzckWhfY26wtTtKUu%2BJfhpE1dIkaLA519uUdhz8xrL0XqKJdY3ZwZylVtOkCCJmxgFejMDv7fCsnuQiFPTKRyTWl8rJZSm3JpS6BmmRFcHZli6ShCnSwhRu2NhKB90C8zx%2BWj7hH4EBSW0gMgVobzRE98Fqb65q%2F4YvZc%2FlCKbbyPJu0ZhUhcW5g4Vk4aEhQ9co453B06%2B2I%2ByqFqtiqJo2wu3zSDLFiSoVVwOo1R3PS5EpwsKgJskJGqKuP5dhSMRx%2FlbS1c7vUwzSXGKKPcLPKrvpV8gVXV3LBRecD6A%2FKjIZgVO0vFCJ2Q3d3jBGzoj4ogctHpZobH4YXXVdKd4UDIyd6sMae2k6A7FDuLgd2cHGbyQjdHcvu1FXm9IpWbH%2FIND3HwZxgJXseXqp9q4iHx2AshtED7ABpS7CXDW%2BPwFwom1JJN1ZiBua0mriyZxoXJyZPZs0b3APsBuXXd7MicCxxL00jbJsAY82zwMk%2FPLabHRQZIbTGSF5eT%2FleoC5UMfhQDxOf8r%2FdDwKm98fUEDNfePGbfzGukKjmELyw15P1n8v6%2BxPt%2BQIDywkUyLkuGV1U9rcp4rpEFIX4UzkWkQ5QQncwhFu4jskwnlc6C0k4rm0AhgjjV0M08vuOj2kIGWbdwvd262bW0CcNKgOgQ5ijQ3uBfgm07OuaTG5XHNpXYn1DKECI53XBo3q7fAC8CufxdCGI%2BofkCP0LrMwTW8w44sfPDbiT%2Bs%2BWL2vvRCxNo317EYAuikQTWP9UIOBA10WsaACIgIsA%2F9FaiaOpmGl86Jt2NQ8CF%2FX2Qg6IB4FNRZ41nGcYMs%2F6ze%2B0I9P1vJqWzoxHhqN0tPvyfIzONPk9yBMxkZ%2B7WG8UYrZXhHrYLAEQM%2BocgsPl%2FUXip4QpSYbTwvx2lOYcbkwZzkOngxuBmYld6hTB6RJEKM4CM2SRETTGFKKmFjLojZAJgCDMUxpkEvEiQwkFJSkUWo0FRzHpMIlu1I%2FUf1b25roaYV4hWZyK35gfXc3mOnL77WE7wrjvtSDwo5DKT503dXUHgvJVxsOLzE7ySC8wrKKO4A9slPPTJoC04%2BPK7xhkKKQ1pZufotoKitjuQbfEGp8yymrbd7CUvZnEYB2d0jizxAMTyxYjnp2I22pWEBgrh7YRUay8hgYnbzkcqh4TiYhhgAjpfHUic0BcDRjqzdJosS0tFtMISgO4ZplcufdtAa5kKg%2FEeKA%2BZ97t0jbCJaT0xpXFOOJtqPC%2BGIlZAk4k2CXYwEcTw43QxGISjFJFgkbqxziYA9a3OhjiYr9LDaQ03ND%2FToBcuZtoZwtU2ey0TKxGCP%2FyfCk768Y4dc74QkkEcunbOu%2BiTVmTVGEjwhqooO5XMu%2FhO6GVAV1bew4lYP82qQH%2F15pbDqg2I6janHz8arvYCjtnWIWmxDflHGDz%2FtycRPaYsDA6v131yd9oCsgnbmmjfq2mKWJnVya9EuNxyVU1H1V5AYOCzMGhlxfbkEUHYDCMJsSGOgqT0kAUTF5Uy1y8s3RhWTYbXFqYQeSxJpY4V3uhdmaEKkjg2Q%2BOOw2E1fSCCDMsq5akFCyrts8cdQOMEr1tliBJEIe%2FiIs%2BnkpJ%2BhDrIrgEamVF8XbR4Uw69VrebR%2FuyUWTKB%2BS%2FJpRI7LjPMDvPIFHZ0GLXZTXr3iJ3CMPL96HVs%2FYOqMPhqDeld8CXVzesWVhvDiAjE0KjBQrM26u1wFXEcWuBa69jqi3alU6WPtJTgT9YDY%2Bk0lBm91NWAwmo5N70xelIKwEsLakuGaXuHciEWpO9VEIiDvHdmYbV5PdVrvTZmnB5E0zmFkTCA%2FilKvsS7QWLS4CH5l75UnJsC70uNyAEAixGH8gFytUC%2BQXTJkSwJC5kTIRG%2F%2BmwR5y13HrmCYhME31EX0d6tX6dR17Y13IRguKuFuztkGoqdDcN7VeVuQ90LUFbouRvEgeg5QTLI2DWIi1SarTIb3AUZYS5YgaNUQHAOBm0Efqbu8vLAJh8QfJ4uAhN%2BPP1aSWExTSF%2BQkrFH1NbyFAfyLPvBzt%2BORl7NFg7ziRKjDndNTQv41O5iA3X8oSlhlCAtCqyyDBe9BkizOhvGov4ov6eR%2FZb0OFUredRd4sitwa1x3qgX1vQ3dhI9BOZ5qaLh8kUztMOm%2Fq0VJ1sW4GvBbckpqI%2BqquI97UIoYk1NeY3IBPuagEGhYA21MApi3kBswQVFsTJRHhpYH49CT7tzX0i0y%2B0aSX4y31ke%2FYnzXlMZAGk38BRJPL6vuVjWxYKzWbHDgk2BsCAioTuavRULSHgLieZzgbsxPNWgsTANSYLpeZLjLqks%2Fyl5Qt9JjP1T0et1%2F8b3cZtGyAyDD3iTIuRIXMWkSyiGUS%2F2eo9oboZbL%2F6JCQ3Mnflr%2BcexMZJMB1zcjt1Lyy4CsLWDpnjsDaUpoAhtiXxtsHwB8g5t8YlgdJyQ%2Fz%2BHn4eZeLChmIgU91VIa1ZYDIZp8gYlKfTf0e3r4cttsdDwI2LGABFmOYQnjVkPWtDa09jhLXyubwMvbMAhqFGJ21aTdxXsfONGsj4gj7OE2ecsTvKw63AZMZEM8OXvxH9gU040TxtlyB75JQjXBupmAy8U2RNXUX4P5u17nTB%2FcvK5YpZAp1jAbmHJsuIcNkmFEpcUPBjJAd5k%2BnbFQZwXWmGR81VIpHwN1IAb0%2BuAc7U4exySGA9j1hNwzWXUMk85GctogVsBhRMVsqmikMKipyIhDPosoBOiticbISCkhKW0hzEdtW1%2FALo0LUtqaU9iYbG0GtFs1LoiIGHyrrhBATk%2FFAGZn4pMYH4QgyNLpn9%2BmKZKOzm9UfMAuB1Ap4OOEAXg%2Fz%2BZaO6zzUpRzH49pKkZ3fY%2BCcCx5uaJoNw%2F3IEHXhkQSdjhShf8REKuam5C%2FTXCrNA7LDgUIleJhJJe61iBq0szcznPf9vsDnT2VlyJCoDb2WZ2JHwuKR%2BQ5e8o4CclBKqinYwDROov%2BbKSOubBjIbbmPaJl4bHZrOHTcvC4VMDimyTlBBa9ILHD1pbJRDtvuMdMHqwuyNxCKwhKA4PHJ8HYd0%2FTyn9HEvSTxOnoipWgeRe7CtZEqX7AN7YjfaMIm2BnRZtaUDNX%2F04LYiKf9PNGfo6LhHLl%2Fv%2BWSzldGF8YYX36NC2A4aUoLX1cAgRNCi80UOD5vguXyLjncW6R9jHSKrEXWVzJVIBnoy5cgUh3BRiad6cr7zrsTUGeoWc%2BqAZhgtMwj4VOmqirVgD7k8G%2FkRzrSphuiW45OwjijyQOSxnYWPHkWNizhlgQ3XZBpjsTphS1R9hHzt09tC60jm%2FjwwZsoutXOjBX56NdThgJGJbdROgLku7HyA6Snt6w3GUYM%2BJpU3LwMhJJ%2BKrroHj%2FexRllmpI57SMkypnRUh61rvMkytx9SuzRbBao0vSXZFgGReNsZMOgG54bqvnF%2BqEnfDyt6iQRZjbVTYWLsGTSNf%2FqWZQnDYThwIaeIxVutwoAUoV0dEDOWyKC45WoMCAgHdJZUknUEhIlS94Fk9FardpQ9ARRckqiONZOGS%2B%2B729%2FIV86w9aND5i1VGxkEzNK%2BZRPcPFsQHW0je%2F27jiaX5KqnprHB4JuSNii3Iko0V9wwfd78EGxZj5Lc5AQDWttTaJX13bNJXdqOV1pT6NGHQ6Y3NHhGhBFV28F6onHG0jXu2BMkThFVo1QQDFqOmUTWQYpEvtpCTeLplo1VQBJzJvz2MVs3ElCbQ9RIPAZ4wGtNy8cbDQaWaXyhs544NUf0pABoRrONV1zpgqOJPfS5i6naIN%2BAsFGhC8M5n6fnt1CKutecOLB1J3KmNGXZ5nFqdxfLivdiRLklCPGoJMILa8g5Axvt2GzdrzF00g4weGqvNE693HIQAJkeA71dVpsowtMNcastwWV%2Fj74lcVa4Cypp00DSxqDxn7bXuj%2BPDEa5MUiMEsvAmAOFxaONukWcXROhWmKZmFm5fdWkGSwwssV5%2BjMej%2B%2BYfIkenuQITAlOCBITklhXy%2F0%2B4kVLSEZK3rci5wJekUQQBEK5MxuHgXCiVp0Uzxh8mP4AcGqr9fj9H9PKSJ6%2F9O1BiOnAYH63Y3KhrGnzAhpwJqqzgTaGOb%2FbXai%2FE%2FYPnBwn5hOJ6s4CmO8%2FpQBIfCnzvuiXKnOqamLaULpP1pGYOUYJOzypBS8Ud3xzAsfGW5l2F5Yzkz1VyQ8h0daX4mY4W9%2B%2FKbup9F11tNa0xYl6BpgJR%2BXpj9T1ortaiya9O1qrLIjU8dX00rAQbHl5IbzYE1erNCwu5GqzrDYXB75bkGRnY9AHX557CL9hk1h7G%2Fo%2BOHedxGZda5swQNiXncf6vxAEZ8u0QER9ECJydqK%2FoxIId3EbVFNIaQShZcBgK7HcYxs7H2nYN7RxZyj1DLEi3XUxXBMquwmVQT4X9pamXYEPodil4VXagmK%2B4p9SjVJrpsNK1YuEtl0KwgWpyC12VFEuAj5XuvdQUO5FDWhU56FbE7QC3nJGHTOorGsylfhXDLtsxrlFQyAyqZm5VJImAcRgkn43CFa1CiyADUtpDSnLtcW7c7K2uOHCsI1LRDg7b2FOwfW0GzELX9lAu0pXX8vyrnAeVtSda0iNSBSsovZQLIU%2B0nE0JiIeMYWAXAGyLWYPh3TCjXGUNMOs6OEGr9F5cY0xf2hrk4L5pchbzuJq3INaTghc2wXtIQ0ZYn3L%2BKawmcMzoZOWM%2FgtT9zuT1lCoN4epohm5lrVAIg2n%2FEG37KHQvUN28lj24UHJmMF%2BYfjlNMwFOTPjKqxK%2FQHztlgovfgcOJfMRZu2fa7mzadUZxFWppwhTkU8cW0JoZeJVmrHFlsIWcQ1NrPF3y0r6hiSdyxn%2BgkkzvAzydSCXlBhkwbJo0ve5zEAoqe1q6MsmCOJijLPde4oVYG6%2FPdxt54dThuMOJ%2BwkXSpm%2BDN38iXVXtNk8WgiIUEPaAdg9r8oYkJcgRsqPZJS2fisF%2BewB90GDrKxUC%2Bk2z6fpstzPan2GOGiWhhiFi8xNgcTy7LZcvzy8FQmhJ4YCdje9LjSY2wL9stgYBxySIH%2BbXlhxaXBDk9yBQ8rj1Oqs%2FZlegxP2gCHIxoJiW3qftwMLGA8xNaAai3DIFm8cF1VBAW6jA1KYQMOM4Asdf4gGHulCwCZHcREBqiGywzPGqwScAG2%2Fj8jUdTBXoRK4iQWo1p52YM36uItqaAxAqg%2FHwFenQ49ArANNS%2FwNdzE299EBl5uDgRGxLQPzzIWIPjYQ4cWB0%2FnkhOkly2kC6iioAevCPUzoNhsoB%2BihVDgY2QpXGWoZzoJ8P%2FpVNrKTp6a28dMwqqxpzh38KyGtjER3jE%2FtL%2B1HhdFz0hSU5nQH3cb7NU7O2YrDod%2BRGqoZmnpzMzzNLOPMLvsh9RdmNYIujnswuGOcZT1CDSqsE9qWaS1BXaIjBjnowXeFEi2rhqdQw1uzKBv1YQWR30au9g3cGEWa6kDnPIa1JHZasyLI2swYnqlaSA%2F5WcLekH9JwSTdV4j9KqBfnSJIVEJGuLeQt%2BwvDn3cymKxn6yxhDPIGNUy0mmCAzh8HGGUTiIOhcNVWF%2BwF0R0GG5H68kJyxdPkW8UlFpZ6VQd1ivqshhUNlMYubig9JluK%2Flg%2Ffd%2BvyyQT7zh%2FkdG78kL5HeiVMkzZHBRJuTYZHK97yRZHKROUxiBskBkShnWBhdGNw7qMDsxMmdNjA4bJ6S9IMEHmJ%2FT02%2B4Cybma%2BA1MkIl8lERIgJH5LTi5HjrF64HsZMkakvvz8%2Fvj4iiurHxm%2B6nFa5znI%2BLsQkoh94RbO%2FbNPnvAvWu9XQR%2BGPzyQ%2BuJH4ONmnnzK3rVPmPBk63%2FJ2tUq9aUAbX4YGRAMIwYsGBZDzCYdkoZGv86N14npp%2Bc19iJR8n4LDA16z%2FE49LQuEqUDM1YesPhHCWqxjoQreYW6t58HsED5wgEJ0%2FwWyr3rHQ%2BZrvOWCSzmAqxogHC%2FKP7%2BMrUEn7zBBa0qJRZgusGpVDMKOcEcGdOM1%2FLLlDOIYBg8MIRywYTPHgGE5NIQIw1V8baq2keF8DpRQlqv22P1jVU5COkcMX7gutCF8c6J9fhUEQjRAdNUAtlX6mszds8c21PxHDEEpEGRKyFiQP6kJTJ4jGYQzSOZXIQFMjxIHCIUj4IVCKIh4IfSGjJvPDsj5IARCKIKRA1IA5HaQAC5rmBkYrBki8IFw5JHFg%2B%2BPR5OBtwHbj4QdaD0EdHHXDpg4YGFAyUGfY2HGYozMGgI0EMSjMYaUjYUbgjLEYjjMcaMCsIrsLditoukLWC%2BYoXFYwqqFTgoEFvBYILmBWWKUxQiKHBQCKMhSEKHRQEKjhVmKxxYeKZhXsKvhWwKUBUqKYRaEKiRScKeRReJMxCQIsRBeJHiNMQGxJiJXRJKJTxAGE9AgDiZoQPRLOJsxOkJrhISIlBPSJBRCoQpEsgysPmh78MTQ7OGjoZghmwHmg%2FgOhhjwHmA%2B2H0gxbDBoNeg61DzYNegjZCPAIGgjACdAI3QhNCcUJVAp%2BCwoFbwcDBMAFGAXsD2wM7gwUD5VgApn4BzLRggKZAiCPgwoPqO9IVRBogXIF6BZwdAEgg%2B4P%2BCiASaCPQQeB2gAgAOgXAA2AJIA0A3gKYAnAcQHAF3AWQE7ARwFwCYAHgBgAjQHmBhi6LmQA%2BAIEAlAYgEcAwH919V%2FI32L%2BGfYfuf7n7b%2FR%2FW%2F9Ph%2F7G%2BpPpr4M%2Fdfe%2F8P9k%2FMHwz8SfBPxj8gfEvwV9F%2FWf2P%2BG%2FMX279a%2FaHyh9J%2FKv539D%2FJnzf4XelniR5WeF%2Fo3zP8EHpZ6q%2BjPqP4FvfLwK%2BzPhF9Yva33C9rPQfyQ77evrph0q7X9MO8Hu36JnbD1FelH0vu5rn9ya8GrmY56OdTgscB3ib8o3mbcWjhb8NrgRcGvjWcNngm8aXiXcjzlwcV%2Fls8J7aIbdW%2FS3Qm3y37xSAApos7H9wm%2F3afug25bets%2B9DZB3%2F7BW0Rsn7Hmwdv12CthrdrsbbJI5hVQo3IFxcOuwE52P4MRbgaZwNQXmUbzXt1g7dbbtt5224rTOtmOpCxG9sRjysIs6FhLi4Lk4kBR4nrIVyfwmXzjIuNxo2IQHeAURzqdhsAWY0idYBUq1ErrGRQAHaaAkAPA8QhHMhjnSZ3YPZmibF1TyhGp2poMAqwDzmBYahVJtBZYiSIzGplfUEIYwbhHZ0V7IZMo1fUA3TgOyCAuBrzXZwBo5JnMsdJmjzjhYAaGJ0%2F4MAjvP%2FdAPmGZv%2BB5FGVjysQuoBIPF4y%2FQHSbDoupRGJwtBCYd1jgujTiJ1CLOEVUYpelEfB6Z2yYBP7Yc%2Bx1sajOcuKAxgctVGhY1DkdssZjNtlhaVLP9dwTiUwMBUsAzLIn%2FrXfU3E533%2F5Uv%2F6AAAAheAodHIQgfvhBQKhMopTUcBAoT%2B1fZ0aaxnllAUHaKhEnYVYaQRw2IvCdgCCCpafyCSSDWFUpqXRTCmdbagv%2FrWR1s4Od%2Fsq3AvZl3qwAMc0oUELQUfkpQ6AgpkKbwjAarls%2BRs7Sd%2BlMDAjQMnF%2FCfqlUYKDYCLShqHZowYM1UdNOk%2FpBwrIETisaj1seXxF5YjSoODaO%2FOPVyiKUCYmujht3OTCHZ%2B7QdbjOPh%2BzMz4cI1MC2p35GwQbohDMIkzCQ889OZQgB6y%2F62xp%2BRIQpeDVQB7RAb%2FwzwzAPfBkD7UfQFYv2eZBtQvT6E6qNwqEor0BrD%2FZ%2BndwFsS7AYaqWBkagbpi9m4sXUIwU6iG5qIoKX%2FOCewjBK9Dd5qAE%2BdX0ZhLP0xlABycEA32ifZ3kYrmwDTLDlXTDZEa%2FREvAZzgVbTaXhkWSx%2BmOlRuaeVdajSIJRfNhgkwflwJrpigaevFDE3G9FeykxTDAEnYB43XDJk%2Ft9lCQHbXFliGXdYPGtoK8SzXQxpBN2bOE4RsmH8RGt3uTSa6a5PA9WDvCK8qCX%2BiFMxLMDk06I9ba45GOiVz8vBg9rxeIpN%2BYNP6JaCJfnD9IEYmwAYFW7dHDmjeveLF49mkXIvLc0AvEKG3wAgDFonPrAn9OfyBKevQWyzeLVyT1W4GJlH4teUiVvU5x3UC3IqGfhHWjo%2BYY4lPPdLmm4cphdubCvaOIygtNAmnkWWIsehKBAbAxaKL26aZiiqMtrSL6Fp9JfiWIg3joS4iPCIE21c4loUaFwD2ZfvCiHwJkUJ5NBhFLQ918i%2Bvnl15IHtNEaqwBg6qopE3lPulYlrrTaa5otLFIXfGEchWmJWYE8y0C38IeFCVsAVmSVhlXfIX%2BdqVFzWJ5iluviBNJp1tfi1SkeA%2FqVpKrWE2EHUzl2RwSjN1UzGF1PJyk7ODz%2Bp2%2F8%2BcwooeMS60hJ1u4pcKsDAIt5sTgSSh166i2dPYByS0fGkUik%2BiAaU2qmZocS3vw50IYThcH83gFoy2TIrtz4PAOv4bysylnelD0BzW4RWGBvJzlOfITiwApKt9PqJVaeHCDO0x2SI78oGN4gGuq0C5UtYQK0z6sWh1SMbnEyMeQKemx5A0egRqp8XRNiMHZLKM3evxXNPTJ0FJT79ZDwgGT%2BMhlVOdgif82U8WybEYGZMtO4jIs1W%2BQmGIHzCcD63pcA%2BsIAQQmzRcPnyoKROmoioNN%2BZhDZY%2BHAtD5fPw9Ejw5cvuyKFKHlYepDoDSVYee76Hx2BoY45RWOkrWl%2FyqOLu%2FSuDH5yRm0dCXwlY4idK7yugkhxl3F9PYq9B1QIRbSniw9tGL7kp%2B3R5ROTuUErJhYBexmGApd0Yzukk05YWD8%2FHKXyBxAp2mwzFRMj%2Frm4k5J%2FViinzcOlA2lUGEi6VAWdnyOKz55AZpsauYG8eaAwOOeIOPo1ECBLla52fI7vhhTVc0eCi%2Ff5ddHQ77VycfuK7M5Rei6YmQBjExwFAd4hqpngOdD54AQ5CDRh4ogwKsmFvx9CrD1C5F5EFeU6krErKmCQhfeDpi6GDp7oiyBRutVEDZgGDl%2BiRTRToiLidXEfqUH5bHI9YrvknQO6i3HQScPPiBwtQ2ZC3gT%2F8Osq6sM6dCc7nkpWUY2bhciccU3fwlEzh0PAwI5i75Pw6UjV4ecOR6NP9OGOBoZBnSbHhymZT6XG5Gmj30L91eRucasGjW3bp5fjY2hsSvTXTcnTjFtKvjcwWNguNg7%2FbAbIsF6kidJv5qvNeC3h2Lnx%2BAZ9sanwLqxZhRCYqbNPIjnMmrjtuIEtU5xGFFbIrm1Udo2hgSDMdC1zPoKgaqDU583DSUCXKfb0hZ2eC%2FgkJKi99qSsWt3BKZjQhHV%2F6Pm9sqUQbFQ1W03uHEedH9qSQGJpLoyW3tWmAtjAkRBFDOaRo5%2BW2oudsrV8OwJJAokwTsQJBYgNsgx5J%2ByeIkI4OxeU2cRUiVjHZNpa5w1ieTYTgJT44nZ2uX2sFci0ri7ls0iGZhSQzCxFx%2F1seF0dAnVBq2pWAwO0tgP1BRkQNVFIMkB80H76vIDJdZ8yzaOmFD4MuNaTbNYwnVMsDzRcF22am%2BZ3DDYiLOnlgYzC0BMgaLEV1Cu9Wd%2BkFU1Vlptl5VYAle%2BSkWtLeO4UJioeJ6D218CSYJCikWakpsFrTF7E9RcdoGgQYkAFPOoWU9RRD6Apisje%2Bc6T2oUR4jPg2QYvf1YQBK8HcICIpdoZ52OLSPgORnewJgglFPoVHf9EIGSwoviUnZW63CKybMkyJSfHjCuwGGCl%2FfU8%2FLfXgMFIWL2KJ8UkTefGYxAsG9DcUxmKh7uj9TEkCzFvH9MEH3P1TTlf9yvnikRJTAErmGZ05vfNTpjLyDOE65bszczwKARoIOCYH16g7S40G1iKwKOI2QFbMHkFYNY8Qj7Lb8wZ10pf59C8TghE4lLc3oX%2Bbnpgki0LNoss%2B8v92%2FqV%2FmvfaD3fcHZEeuowADPDN8uXu0nbnX6s8Lo3nyzQufMC48gLixAuHCC2CMaV7NC7XHQEp0UnuXG9QsvL6g7t2vtXxs16EMyOxXSIO1CGFoELeaFeaFY4BZo5175c3SctWcVq8HIyGTSWHcwa7v6uBxWjfXleRVMJGyt6swRMPaxGzm6UKw3aKxyKyDW7bGbNmsW0Vg3FYqlKkVX3K2tqyDVRIIvso4IQdeUQa0Ec9QkxVYVpThWFIEDnwq%2BZCrZYKqJWYMWkrSeAJQcpQsfNUt8PR8cED0Xu22eT40LPizs6GCyoULGgjsTcZUsZBB90eQ4dMNPeDpsYOeMHK%2Fv1CPlt5qB5gg6WA6RBwnjADsHCdcDCE0ihG234Un9ZcTwBBnA7l8jNTt5quqWOETFPrFQC7Ki5bW4FrNfrNxrNpBYtORJ1TrMIbyJz3YQ3kTjuwhvInHdfDeRN24fJJz1TK82YF8NRp%2BVZUVbalM%2BBfDUa4lCZMC6Go0x4F0NRognyinW0yY8D3eplppcwYFGhS5fwKD0lT2jxBHtokvYCPh41poctYCE6hy1gI%2BDiTuhSehW0CWsBFwcS0z2WMBFwcSVsBFwcSdj2TT22eytgB3B7aB7aT7ZTdwEqeB9wIB1LAPcKJbPJRwW5A7s06h6Yj3CiShgHuFEnI5k02tmknYB3hRIgaSdgHeFCk3AOcKFORpJppbL5MwaNqXWW%2BNWZxS2s74sxGaaGBA5w8Kby2TQlIy8ZpnQIHP9CsMttAAImq%2FFJBjn7hTSWSYWUsVyRgHP3AsErkjANfuBIuAa%2FcCaCmSSilCWRMAz%2B4FgElmE0fAQ6C6IEwAAAAAAAAAAA%3D%3D%29%20format%28%27embedded%2Dopentype%27%29%2Curl%28data%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAAOAIAAAwBgRkZUTWoDbykAAADsAAAAHEdERUYCtAAEAAABCAAAACBPUy8yiFl6HgAAASgAAABgY21hcKfHf20AAAGIAAAC8mdhc3D%2F%2FwADAAAEfAAAAAhnbHlmEyyTcQAABIQAAfssaGVhZA0Mx1UAAf%2BwAAAANmhoZWEPAwpbAAH%2F6AAAACRobXR4kykXKgACAAwAAAoKbG9jYWmN51YAAgoYAAAFEG1heHAC8AIcAAIPKAAAACBuYW1lM0aFxwACD0gAAAOIcG9zdMc3Y0EAAhLQAAAYIHdlYmaOKlZPAAIq8AAAAAYAAAABAAAAAMw9os8AAAAAy1CNsAAAAADSdT6pAAEAAAAOAAAAGAAAAAAAAgABAAEChgABAAQAAAACAAAAAwZHAZAABQAEBIwEMwAAAIYEjAQzAAACcwAAAYoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHlycwBAACD1AAYA%2FwAAAAYAASMAAAABAAAAAAAAAAAAAAAgAAEAAAADAAAAAwAAABwAAQAAAAAB7AADAAEAAAAcAAQB0AAAAHAAQAAFADAAIACgAKkArgC0AMYA2CAKIC8gXyEiIh4iYCX88A7wHvA%2B8E7wXvBu8H7wjvCe8K7wsvDO8N7w7vD%2B8Q7xHvEu8T7xTvFe8W7xfvGO8Z7xrvG%2B8c7x3vHu8f7yDvIe8j7yTvJe8m7yfvKO8p71AP%2F%2FAAAAIACgAKgArgC0AMYA2CAAIC8gXyEiIh4iYCX88ADwEPAh8EDwUPBg8HDwgPCQ8KDwsPDA8NDw4PDw8QDxEPEg8TDxQPFQ8WDxcPGA8ZDxoPGw8cDx0PHg8fDyAPIQ8iHyQPJQ8mDycPKA8pD1AP%2F%2F%2F%2BP%2FZP9d%2F1n%2FVP9D%2FzLgC9%2Fn37je9t373braHxAcEBsQGRAYEBcQFhAVEBQQExASEBEQBBADEAIQARAAD%2F8P%2Fg%2F9D%2FwP%2Bw%2F6D%2FkP%2BA%2F3D%2FYP9Q%2F0D%2FMP8g%2FxD%2FAP7w%2FtD%2BwP6w%2FqD%2BkP6A%2FnDYYAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGAAABAAAAAAAAAAECAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBhgIBRoJChkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB%2F%2F8AAgACAHAAAAMQBgAAAwAHAAA3IREhAxEhEeABwP5AcAKgcAUg%2BnAGAPoAAAAAAAEAAAAAAAAAAAAAAAAxAAABAF3%2FAAajBYAAHQAAARQHAREhMhYUBiMhIiY0NjMhEQEmNTQ%2BATMhMh4BBqMr%2FYgBQBomJhr8gBomJhoBQP2IKyQoFwWAFygkBUYjK%2F2I%2FQAmNCYmNCYDAAJ4KyMXGwgIGwAAAQAA%2FwAGAAWAACsAAAERFA4CIi4CND4CMzIXEQURFA4CIi4CND4CMzIXETQ2NwE2MzIWBgBEaGdaZ2hERGhnLWlX%2FQBEaGdaZ2hERGhnLWlXJh4DQAwQKDgFIPugMk4rFRUrTmROKxUnAhnt%2FTsyTisVFStOZE4rFScDxx8zCgEABDgAAgAA%2FwAGgAWAAAcAIQAAABAAIAAQACABFAYjIicBBiMiJCYCEBI2JCAEFhIVFAcBFgSA%2Fvn%2Bjv75AQcBcgMHTDQ2JP6ps9yP%2Fvu9b2%2B9AQUBHgEFvW98AVclAgcBcgEH%2Fvn%2Bjv75%2FoA0TCYBVnxvvQEFAR4BBb1vb73%2B%2B4%2Fcs%2F6pJQAAAwAA%2F4AHAAUAABoAPQBNAAAlEQYHBAcOAisCIi4BJyYlJicRFBYzITI2ETwCLgMjISIGFRQXFhceBDsCMj4DNzY3PgE3ERQGIyEiJjURNDYzITIWBoAgJf70njNAbTABATBtQDOe%2FvQlIBMNBcANEwEFBgwI%2BkANE5PB0AY6IjcuFAEBFC43IjoG0ME2XYBeQvpAQl5eQgXAQl4gAwAkHs6EKzAxMTArhM4eJP0ADRMTBCgCEgkRCAoFEw2odJilBTEaJRISJRoxBaWYK5Fg%2B8BCXl5CBEBCXl4AAAEAAP%2BABwAFgAAcAAAEIicBLgQ1NDYzMh4CFz4DMzIWFRQHAQOaNBL9kAojTDwv%2FuA%2BgW9QJCRQb4E%2B4P7l%2FZGAEgJaCCRfZI5D3PgrSUAkJEBJK%2Fjc3eX9qAAAAQAA%2F60GgAXgACIAAAEUBwETFhUUBiMiJyUFBiMiJjU0NxMBJjU0NyUTNjIXEwUWBoAa%2FpVWARUUExX%2BP%2F4%2FFhIVFQJW%2FpQZOAH24RM8E%2BEB9jgDeRYa%2Fp7%2BDAcNFR0M7OwMHRUGDgH0AWIbFSUJSQHHKSn%2BOUkJAAAAAAIAAP%2BtBoAF4AAJACsAAAkBJQsBBQEDJQUBFAcBExYVFCMiJyUFBiMiJjU0NxMBJjU0NyUTNjIXEwUWBHEBMv5avb3%2BWgEySQF6AXkBxxr%2BlVYBKRMV%2Fj%2F%2BPxYSFRUCVv6UGTgB9uETPBPhAfY4AhQBKT4Bfv6CPv7X%2FlvHxwMKFhr%2Bnv4MBw0yDOzsDB0VBg4B9AFiGxUlCUkBxykp%2FjlJCQAAAgAA%2F4AFgAWAAB8AJwAAJRQGIyEiJjU0PgUzMh4CMj4CMzIeBQAQBiAmEDYgBYCSefyWeZIHFSA2RmU9CUJThYaFU0IJPWVGNiAVB%2F7A4f7C4eEBPoN4i4t4NWV1ZF9DKCs1Kys1KyhDX2R1ZQPn%2FsLh4QE%2B4QAACwAA%2FwAHgAWAAA8AHwAvAD8ATwBfAG8AfwCPAJ8ArwAABTU0JisBIgYdARQWOwEyNhE1NCYrASIGHQEUFjsBMjYRNTQmKwEiBh0BFBY7ATI2ARE0JiMhIgYVERQWMyEyNgE1NCYrASIGHQEUFjsBMjYBNTQmKwEiBh0BFBY7ATI2ARE0JiMhIgYVERQWMyEyNgE1NCYrASIGHQEUFjsBMjYRNTQmKwEiBh0BFBY7ATI2ETU0JisBIgYdARQWOwEyNjcRFAYjISImNRE0NjMhMhYBgCYagBomJhqAGiYmGoAaJiYagBomJhqAGiYmGoAaJgQAJhr9ABomJhoDABom%2FAAmGoAaJiYagBomBYAmGoAaJiYagBom%2FoAmGv0AGiYmGgMAGiYBgCYagBomJhqAGiYmGoAaJiYagBomJhqAGiYmGoAaJoBeQvnAQl5eQgZAQl5AgBomJhqAGiYmAZqAGiYmGoAaJiYBmoAaJiYagBomJv0aAgAaJiYa%2FgAaJiYEmoAaJiYagBomJvuagBomJhqAGiYmAxoCABomJhr%2BABomJv6agBomJhqAGiYmAZqAGiYmGoAaJiYBmoAaJiYagBomJrr6wEJeXkIFQEJeXgAEAAAAAAaABYAADwAfAC8APwAAAREUBiMhIiY1ETQ2MyEyFhkBFAYjISImNRE0NjMhMhYBERQGIyEiJjURNDYzITIWGQEUBiMhIiY1ETQ2MyEyFgMATDT%2BADRMTDQCADRMTDT%2BADRMTDQCADRMA4BMNP4ANExMNAIANExMNP4ANExMNAIANEwCAP6ANExMNAGANExMAsz%2BgDRMTDQBgDRMTPzM%2FoA0TEw0AYA0TEwCzP6ANExMNAGANExMAAkAAAAABwAFgAAPAB8ALwA%2FAE8AXwBvAH8AjwAAARUUBiMhIiY9ATQ2MyEyFhEVFAYjISImPQE0NjMhMhYBFRQGIyEiJj0BNDYzITIWARUUBiMhIiY9ATQ2MyEyFgEVFAYjISImPQE0NjMhMhYBFRQGIyEiJj0BNDYzITIWARUUBiMhIiY9ATQ2MyEyFgEVFAYjISImPQE0NjMhMhYRFRQGIyEiJj0BNDYzITIWAgA4KP7AKDg4KAFAKDg4KP7AKDg4KAFAKDgCgDgo%2FsAoODgoAUAoOP2AOCj%2BwCg4OCgBQCg4AoA4KP7AKDg4KAFAKDgCgDgo%2FsAoODgoAUAoOP2AOCj%2BwCg4OCgBQCg4AoA4KP7AKDg4KAFAKDg4KP7AKDg4KAFAKDgBIMAoODgowCg4OAHYwCg4OCjAKDg4%2FdjAKDg4KMAoODgD2MAoODgowCg4OP3YwCg4OCjAKDg4%2FdjAKDg4KMAoODgD2MAoODgowCg4OP3YwCg4OCjAKDg4AdjAKDg4KMAoODgAAAYAAAAABwAFgAAPAB8ALwA%2FAE8AXwAAARUUBiMhIiY9ATQ2MyEyFhEVFAYjISImPQE0NjMhMhYBFRQGIyEiJj0BNDYzITIWARUUBiMhIiY9ATQ2MyEyFgEVFAYjISImPQE0NjMhMhYRFRQGIyEiJj0BNDYzITIWAgA4KP7AKDg4KAFAKDg4KP7AKDg4KAFAKDgFADgo%2FEAoODgoA8AoOPsAOCj%2BwCg4OCgBQCg4BQA4KPxAKDg4KAPAKDg4KPxAKDg4KAPAKDgBIMAoODgowCg4OAHYwCg4OCjAKDg4%2FdjAKDg4KMAoODgD2MAoODgowCg4OP3YwCg4OCjAKDg4AdjAKDg4KMAoODgAAAABAHkADgaHBLIAFgAAABQHAQcGIi8BASY0PwE2MhcJATYyHwEGhxz9LIgcUByI%2FpYcHIgcUBwBJgKQHFAciAPyUBz9LIgcHIgBahxQHIgcHP7ZApEcHIgAAQBu%2F%2B4FEgSSACMAACQUDwEGIicJAQYiLwEmNDcJASY0PwE2MhcJATYyHwEWFAcJAQUSHIgcUBz%2B2v7aHFAciBwcASb%2B2hwciBxQHAEmASYcUByIHBz%2B2gEm%2FlAciBwcASb%2B2hwciBxQHAEmASYcUByIHBz%2B2gEmHByIHFAc%2Ftr%2B2gAAAwAA%2FwAGgAWAACMAKwBEAAABFRQGKwEVFAYrASImPQEjIiY9ATQ2OwE1NDY7ATIWHQEzMh4BEAAgABAAIAAUBiMiJwEGIyIkJgIQEjYkIAQWEhUUBwEEABMN4BMNQA0T4A0TEw3gEw1ADRPgDROA%2Fvn%2Bjv75AQcBcgMHSzU2JP6ps9yP%2Fvu9b2%2B9AQUBHgEFvW98AVcC4EANE%2BANExMN4BMNQA0T4A0TEw3gE%2BYBcgEH%2Fvn%2Bjv75%2FrVqSyYBVnxvvQEFAR4BBb1vb73%2B%2B4%2Fcs%2F6pAAADAAD%2FAAaABYAADwAXADAAAAEVFAYjISImPQE0NjMhMh4BEAAgABAAIAAUBiMiJwEGIyIkJgIQEjYkIAQWEhUUBwEEABMN%2FcANExMNAkANE4D%2B%2Bf6O%2FvkBBwFyAwdLNTYk%2Fqmz3I%2F%2B%2B71vb70BBQEeAQW9b3wBVwLgQA0TEw1ADRMT5gFyAQf%2B%2Bf6O%2Fvn%2BtWpLJgFWfG%2B9AQUBHgEFvW9vvf77j9yz%2FqkAAAAAAgAA%2F4AGAAYAACkANQAAARQCBgQgJCYCNTQSNzYWFxYGBw4BFRQeAjI%2BAjU0JicuATc%2BARcWEgERFAYiJjURNDYyFgYAes7%2B5P7I%2FuTOeqGSK2kfIA8qYmtRir3QvYpRa2IqDyAfaiqSof2ATGhMTGhMAoCc%2FuTOenrOARyctgFCbSAOKyppIErWeWi9ilFRir1oedZKIGkqKw4gbf6%2BAkr9gDRMTDQCgDRMTAAAAAAFAAD%2FgAcABYAADwAfAC8APwBPAAAlFRQGKwEiJj0BNDY7ATIWJREUBisBIiY1ETQ2OwEyFiURFAYrASImNRE0NjsBMhYBERQGKwEiJjURNDY7ATIWAREUBisBIiY1ETQ2OwEyFgEAEg7ADhISDsAOEgGAEg7ADhISDsAOEgGAEg7ADhISDsAOEgGAEg7ADhISDsAOEgGAEg7ADhISDsAOEmDADhISDsAOEhJy%2FsAOEhIOAUAOEhLy%2FcAOEhIOAkAOEhIBcvxADhISDgPADhISAfL6QA4SEg4FwA4SEgAAAAIAAP%2BABgAFgAAHAG4AAAA0JiIGFBYyARUUBg8BBgcWFxYUBw4BIyIvAQYHBgcGKwEiJi8BJicHBiMiJyYnJjU0Nz4BNyYvAS4BPQE0Nj8BNjcmJyY1NDc%2BATMyHwE2NzY3NjsBMhYfARYXNzYzMhcWFxYVFAcOAQcWHwEeAQQAltSWltQClhAMuRMUI0gKCRuQFgwOiiwvEA0HHd4OFQEcMSmNCg8OC34nBwgPSBIbDrcNEBALug4ZKEMKCRqRFg0NiiwvEA0HHd4OFQEcMSmOCQ8NDIEkBwgPSBIaD7cNEAIW1JaW1JYBbd4MFgIcNiUyWAwaCiWOCWwXD4gyHBENuBAVawkLcjYKDQwLFVsZMjEbAhUN3gwWAhwuLjlRDAwKDSSPCmsXD4gyHBENuBAVawkKdzMIDgwLFVsZMjAcAhUAAAYAAP%2BABYAFgAAPAB8ALwA7AEMAZwAAAREUBisBIiY1ETQ2OwEyFgURFAYrASImNRE0NjsBMhYFERQGKwEiJjURNDY7ATIWExEhERQeATMhMj4BASEnJichBgcFFRQGKwERFAYjISImNREjIiY9ATQ2MyE3PgEzITIWHwEhMhYCABIOQA4SEg5ADhIBABIOQA4SEg5ADhIBABIOQA4SEg5ADhKA%2FIAODwMDQAMPDv1gAcAwBwr%2BwwoHA28SDmBeQvzAQl5gDhISDgE1Rg9OKAFAKE4PRgE1DhIDIP3ADhISDgJADhISDv3ADhISDgJADhISDv3ADhISDgJADhIS%2FR4DtPxMFiURESUESnUJAgIJlUAOEvxMU3l1UwO4Eg5ADhKnJTQ0JacSAAAAAAIAGgAABmYFAwATADUAAAERFAYjIREhESEiJjURNDY1CQEWNwcGByMiJwkBBicmLwEmNjcBNjIfATU0NjsBMhYVERceAQWAJhr%2BgP8A%2FoAaJgECPwI%2FAd8%2BCA0DDQj9TP1MDAwNCD4IAgoCzyBYIPQSDsAOEtsKAgIg%2FiAaJgGA%2FoAmGgHgAQQBAdr%2BJgJBSgkCBwJB%2Fb8IAQIJSgobCAJXGhrMww4SEg7%2BaLYIGwAAAwAA%2FwAGAAYAABMAGgAjAAABHgEVERQGIyEiJjURNDYzITIWFwcRISYnASYBESEiJjURIREFvBwoOCj6wCg4OCgDgChgHIQBeAoM%2FscMAWP%2BYCg4%2FQAEhBxgKPuAKDg4KAZAKDgoHET%2BiB0MATkM%2BhIEADgoAaD6AAAAAAMAAP%2BABgAFgAAUACAALAAAAREUBiMhIiY9ATQ2OwERNDY7ATIWABAuASAOARAeASA2ABACBCAkAhASJCAEA4ASDv7ADhISDuASDkAOEgGgkvr%2B2PqSkvoBKPoBcs7%2Bn%2F5e%2Fp%2FOzgFhAaIBYQPg%2FkAOEhIOQA4SAWAOEhL9%2FgEo%2BpKS%2Bv7Y%2BpKSAl%2F%2BXv6fzs4BYQGiAWHOzgAAAAIAMgAAB04FAAARAEMAAAE1Ay4BKwEiBgcDFQYWOwEyNgEUIyEyNicDLgEjISIGBwMGFjMhIjU0NwE%2BATMhIgYPAQYWOwEyNi8BLgEjITIWFwEWBFcYARQNug0UARgBEgz0DBIC9i79QA0SARQBFA3%2B8A0UARQBEg39QC4aAaEIJBQBUw0UAQ8BEg2mDRIBDwEUDQFTFCQIAaEaAhwEAUANExMN%2FsAEDBAQ%2FjlJEw0BAA0TEw3%2FAA0TSTY%2BBBQTHBMNwA4SEg7ADRMcE%2FvsPgAEAAAAAAaABgAABwAPACUAPQAAJDQmIgYUFjIkNCYiBhQWMhMRFAYjISImNRE0NjMhFxYyPwEhMhYBFgcBBiInASY3NjMhETQ2MyEyFhURITIFACY0JiY0ASYmNCYmNKY4KPpAKDg4KAHRhzqcOogB0Cg4%2FrsRH%2F5AEjYS%2FkAfEREqAQAmGgEAGiYBACqmNCYmNCYmNCYmNCYBIP7AKDg4KAFAKDiIODiIOAIRKR3%2BQBMTAcAdKScBwBomJhr%2BQAADAAD%2FgAYABYAAGAAkADAAAAEUBwEGIicBJjc2OwERNDY7ATIWFREzMhYCIA4BEB4BID4BECYEEAIEICQCEBIkIAQEYAr%2BwQsYC%2F7ADwgIFsASDsAOEsAOEsz%2B2PqSkvoBKPqSkgFyzv6f%2Fl7%2Bn87OAWEBogFhAmAMDP7BCQkBQBATFAFgDhISDv6gEgIykvr%2B2PqSkvoBKPq9%2Fl7%2Bn87OAWEBogFhzs4AAAAAAwAA%2F4AGAAWAABgAJAAwAAABBisBERQGKwEiJjURIyImNTQ3ATYyFwEWAiAOARAeASA%2BARAmBBACBCAkAhASJCAEBF4IFsASDsAOEsAOEgoBPwsYCwFAD9L%2B2PqSkvoBKPqSkgFyzv6f%2Fl7%2Bn87OAWEBogFhApQU%2FqAOEhIOAWASDgwMAT8JCf7AEAH5kvr%2B2PqSkvoBKPq9%2Fl7%2Bn87OAWEBogFhzs4AAgAAAAAGAAUAAA0AIwAAASEuAScDIQMOAQchFyElERQGIyEiJjURNDcTPgEzITIWFxMWA%2F8BPAEDAdT9PNQBAwEBPF8BQAJgJhr6gBomGe4KNRoDQBo1Cu4ZAkADCgMB8P4QAgwCwKL%2BHhomJhoB4j49AigZIiIZ%2Fdg9AAMAAP%2BABgAFgAAPABsAJwAAABQHAQYjIicmNRE0NzYXARYQLgEgDgEQHgEgNgAQAgQgJAIQEiQgBASgIP3gDxEQECAgIR8CIKCS%2Bv7Y%2BpKS%2BgEo%2BgFyzv6f%2Fl7%2Bn87OAWEBogFhAqVKEv7ACQgTJQKAJRMSE%2F7AywEo%2BpKS%2Bv7Y%2BpKSAl%2F%2BXv6fzs4BYQGiAWHOzgABAAD%2FgAYABYAAMwAAAREUBiMhIicmPwEmIyIOAhQeAjMyNjc2NzIfAR4BBwYEIyIkJgIQEjYkMzIEFzc2FxYGACYa%2FkAqEREfipTJaL2KUVGKvWh31EkHEA4LiQkBCG3%2Byqyc%2FuTOenrOARyckwETa4IdKScFAP5AGiYoJx6KiVGKvdC9ilFoXwoCCYoIGQqEkXrOARwBOAEcznpvZYEfEREAAAIAAP%2BABgAFgAAkAEcAAAEUBwIAISIkJwcGIiY1ETQ2MyEyFhQPAR4BMzI2NzY3NjsBMhYTERQGIyEiJjQ%2FASYjIgYHBgcGKwEiJj0BEgAhMgQXNzYyFgXnAUD%2BaP7ukv7va4ETNCYmGgHAGiYTiUe0YYboRgsqCBbADRMZJhr%2BQBomE4qUyYboRgsqCBbHDRNBAZoBE5IBFGuCEzQmAeAFAv70%2FrNuZoETJhoBwBomJjQTiUJIgnIRZBcTAxP%2BQBomJjQTiomCchFkFxMNBwEMAU1vZYETJgAAAAAIAAAAAAcABYAADwAfAC8APwBPAF8AbwB%2FAAABFRQGKwEiJj0BNDY7ATIWNRUUBisBIiY9ATQ2OwEyFjUVFAYrASImPQE0NjsBMhYBFRQGIyEiJj0BNDYzITIWNRUUBiMhIiY9ATQ2MyEyFjUVFAYjISImPQE0NjMhMhYTETQmIyEiBhURFBYzITI2ExEUBiMhIiY1ETQ2MyEyFgGAEw1ADRMTDUANExMNQA0TEw1ADRMTDUANExMNQA0TBIATDfxADRMTDQPADRMTDfxADRMTDQPADRMTDfxADRMTDQPADROAEw36QA0TEw0FwA0TgF5C%2BkBCXl5CBcBCXgFgQA0TEw1ADRMT80ANExMNQA0TE%2FNADRMTDUANExP980ANExMNQA0TE%2FNADRMTDUANExPzQA0TEw1ADRMT%2FTMDQA0TEw38wA0TEwRN%2B8BCXl5CBEBCXl4AAgAAAAAEgAWAAAcAHwAAASE1NCYiBhUBERQGIyEiJjURNDY7ATU0ACAAHQEzMhYBQAIAltSWA0A4KPxAKDg4KCABCAFwAQggKDgDAMBqlpZq%2FuD9wCg4OCgCQCg4wLgBCP74uMA4AAACAED%2FgAcABYAAEQA3AAABFAcRFAYrASImNREmNTQ2MhYFERQGBwYjIi4CIyIFBiMiJjURNDc2NzYzMhYXFjMyPgIzMhYBQEATDUANE0BLaksFwBkb15o9fVyLScD%2B8BEQGiYfFTrsuWu6fiYyNn9dUw0aJgUASCb7Dg0TEw0E8iZINUtLdf0FGRsOdCw0LJIJJhoC5iAXDh14OjsTKjQqJgAAAAEAAAAABoAFgABLAAABFA8CDgEjFRQGKwEiJjURNDY7ATIWHQEyFhc3NjU0AiQgBAIVFB8BPgEzNTQ2OwEyFhURFAYrASImPQEiJi8CJjU0EjYkIAQWEgaAPBS5FolYEg5ADhISDkAOEkd2IkQdsP7X%2FrL%2B17AdRCJ2RxIOQA4SEg5ADhJYiRa5FDyG4AE0AUwBNOCGAoqmlDEhU2sgDhISDgJADhISDiBHPAxfYpQBBpyc%2FvqUYl8MPEcgDhISDv3ADhISDiBrUyExlKaXARjNenrN%2FugAAAEAAAAgAwAE4AATAAABERQGIicBISImNRE0NjMhATYyFgMAJjQT%2FrP%2B%2BhomJhoBBgFNEzQmBKD7wBomEwFNJhoBgBomAU0TJgAAAAACAAAAIASABOAAEwAtAAABERQGIicBISImNRE0NjMhATYyFgAUBgcGIyImNTQ%2BAzQuAzU0NjMyFxYDACY0E%2F6z%2FvoaJiYaAQYBTRM0JgGAVUYKDxomGCIiGBgiIhgmGg8KRgSg%2B8AaJhMBTSYaAYAaJgFNEyb%2BEpiDHAUlGxUdFRkuRC4ZFR0VGyUFGwAAAAAEAAD%2FuQaABUcAEwAtAEkAawAAAREUBiInASEiJjURNDYzIQE2MhYAFAYHBiMiJjU0PgM0LgM1NDYzMhcWBBACBwYjIiY1NDc2Nz4BNCYnJicmNTQ2MzIXFgQQAgcGIyImNTQ3PgE3Njc2EhACJyYnLgEnJjU0NjMyFxYDACY0E%2F6z%2FvoaJiYaAQYBTRM0JgGAVUYKDxomGCIiGBgiIhgmGg8KRgFVqowNDBsmJzgUSlNTShQ4JyYaDQ2MAar%2B0w0NGiYnBx8HLiR7iop7JC4HHwcnJhoNDdMEoPvAGiYTAU0mGgGAGiYBTRMm%2FhKYgxwFJRsVHRUZLkQuGRUdFRslBRs3%2Fs7%2B%2FTsFJhonFB0PNqO4ozYPHRQnGiYFO7b%2BNP5%2FWwUmGiQXBA0EGRpbARABMgEQWxoZBA0EFyQaJgVbAAwAAAAABYAFgAADAAcACwAPABMAFwAbAB8AIwAvADMANwAAARUjNRMVIzUhFSM1ASERIREhESEBIREhAREhEQEVIzUhFSM1ExEhNSMRIxEhFTM1AREhESERIREBgICAgAOAgPyAAYD%2BgAGA%2FoADAAGA%2FoD%2FAP2ABICAAYCAgP6AgIABgID9gP2ABYD9gAGAgIADAICAgID8AQF%2FAYABgP6AAYD9gP2AAoD%2BAICAgIACAP6AgP6AAoCAgAMA%2FYACgP2AAoAAAAAAEAAAAAAHAAWAAAMABwALAA8AEwAXABsAHwAjACcAKwAvADMANwA7AD8AADMjETMTIxEzEyMRMxMjETMTIxEzEyMRMxMjETMTIxEzEyMRMxMjETMTIxEzEyMRMxMjETMTIxEzEyMRMxMjETM%2FPz8%2FICBeHx%2BdHx%2BdPj5%2BHx8%2FHx8%2FHx%2BdPz%2BdPz9%2BPz9%2BPz9ePz%2B9Xl4%2FICBePz8FgPqBBX%2F6gQV%2F%2BoEFf%2FqBBX%2F6gQV%2F%2BoEFf%2FqBBX%2F6gQV%2F%2BoEFf%2FqBBX%2F6gQV%2F%2BoEFf%2FqBBX%2F6gQV%2F%2BoAFgAAAAAIAAP%2BVBesFgAAHAB0AAAA0JiIGFBYyARQHAQYjIicBLgE1ETQ2MyEyFhcBFgHAS2pLS2oEdiX%2BFSc0NSX9NSY1TDQBoDWAJgLLJQQLaktLakv%2BQDUl%2FhQlJQLMJYA1AaA0TDUm%2FTYnAAAAAAMAAP%2BVB2sFgAAHAB0ANQAAADQmIgYUFjIBFAcBBiMiJwEuATURNDYzITIWFwEWBRQHAQYjIiYnATY1NCcBLgEjMzIWFwEWAcBLaktLagR2Jf4VJzQ1Jf01JjVMNAGgNYAmAsslAYAl%2FhUnNCQuHgHWJSX9NSaANeA1gCYCyyUEC2pLS2pL%2FkA1Jf4UJSUCzCWANQGgNEw1Jv02JzQ1Jf4UJRwfAdYlNTQnAsomNTUm%2FTYnAAMACv%2BABnkFgABUAGQAdAAAARYHAQ4BIyEiJicmNzQ2NzYmNz4CNz4BNzYmNz4BNz4BNzYmNz4BNz4BNzYmNz4CNz4GFwc2MyEyFgcBDgEjISIHBhcWMyEyNjcBNicWBQYWMyEyNj8BNiYjISIGBwMGFjMhMjY%2FATYmIyEiBgcGZygW%2Fu0Tc0H8ZU2PHBgWBgEBCAECDBUGFywIAwUCAxwDFSoEAQcEBCQEEy8EAQgCAg4WBggRDRMUISccASYNAvlKUBb%2B7iRHXfybGwsLChh4A5sdNggBLAcCJvvtBAwOAmANGQQVBAwO%2FaANGQRoBAwOAmANGQQVBAwO%2FaANGQQEIjlI%2FHZAV2tOQzwELg4IGwYLFBsKJmsmCigICyIGJHAiCS4FDSMFGnUmCCMJCBQaCAwlIScZFgEGAwlwSvx2d0UPEBtGHxoD2xYjDx4NExMNQA0TEw3%2BwA0TEw1ADRMTDQAAAQAA%2F5cFAAWAABwAAAEyFx4BFREUBgcGIyInCQEGIyInLgE1ETQ2NzYzBIwXFSEnJyETGTAj%2Fkf%2BRyQvFxUhJychFRcFgAkNOCL69yI4DQggAaj%2BWCEJDTgiBQkiOA0JAAAAAAQAAP%2BABoAFgAADAAwAFAA8AAApAREhESERIyImPQEhADQmIgYUFjI3ERQGKwEVFAYjISImPQEjIiY1ETQ2OwERNDYzITIWHwEeARURMzIWAYADgPyAA4CgKDj9gASAJjQmJjSmEw3gOCj8QCg44A0TcU9AOCgCoChgHJgcKEBPcQEAAYABgDgooP0mNCYmNCZA%2FmANE6AoODgooBMNAaBPcQIgKDgoHJgcYCj%2FAHEAAwAA%2F4AHgAYAAAcAIQApAAAAMhYUBiImNAEyFhURFAYjISImNRE0NjsBNz4BMyEyFh8BACAAEAAgABADSe6pqe6pA%2BBqlpZq%2BoBqlpZq4DMTZTUCADVlEzP9ZwFyAQf%2B%2Bf6O%2FvkDYKnuqanuAkmWavyAapaWagOAapaIMUdHMYj7gAEHAXIBB%2F75%2Fo4AAAAAAgAA%2F4AGgAWAAAcAUAAAAQMyFjMyNyYBNz4ENxMBOwEWFxMWEhceARcWFx4BFxYVFAYVIiYjIgQHND8BMj4FNTQuASclBgIVFB4DMxYVFAciJiMiBiMGAtWqIc85EyZX%2FMoCF0IwMyYM7QEYSzUIA80hkikPVh0UDxOKDwYBP%2F5ATP7qJwSDARcIFQkNBT5SAf4%2BGmUcOyZMAwECOuk6CCUDUAPR%2Fj4EAv38dk8HCwoTJx8CaALUDgf%2BIE7%2BmV8i3TotDA8dBiYTBBIEEA4BKyMcBQIHBgoMCBChwgMCOv7tGRYfEgkIEycJEhQIDgAAAwAA%2F4AFgAWAABUAKwBhAAAlFjMgETQnLgQjIgcUBhUUBh4BAxYzMj4CNTQuAiMiBxQWFRQGFRQBNz4BNz4EPAE1ECcuBC8BNiQzMhYzMh4DFRQOAwceARUUDgMjIiYjIgQCK0pCAXgpG0VCX0k6SRwBAgEIBipDUnpiMzpkdEIyUAgB%2FeQCD4wkBwsGBQEWBCQ1LjMFBGIB5IMXWxZGhXxcOCEtVD41ms1GdZ%2BoXCywLGr%2Bbg8gAU9yQiw8IREECjXUNAh3Sl0C1gcaP3RURmk7HA0yyjMbahou%2FHBeBBgPDB4lHC8VMgUD1isIDQkFBAFTAhMBGjpUfUs0Vzk6IBgjxpVkn2ZFHAYWAAEAAP%2BABAAFgAA5AAAVNz4BNzY3NhoBJzUuAic3HgIzMj4BNwYHDgEHDgMHBgIHDgMfARYXBgciBiMiJiMmIyIGEQaXJBwNAXpqARg9ThMTIa59OjBljRwFDh6PJQgMBgkCG3kRAhYSDgEBEagDDQsrCx10HIpEM7h%2BVQInEiNCBwI0AgsjGQ0LBQNnAgkFBQkCJzIKJQ8TLyE6DZT94VQJYlJVDxIEGyw3AxQCEgAAAgAA%2F4AG%2BgWAABsAfQAAJTIWDwEGIi8BJjY7AREjIiY%2FATYyHwEWBisBEQEXFjMyNjMyFjMhMhY%2BAj8BMhYzFhUUBwYHJicuAicuAwYjIiYiBgcGFxQSFRQGFhceARcWFRQPAQYkIyIGIyY9AT4CNzYRNAI9ATQ2NC4BJyYjIgYHDgIHJicRBtAhEhR%2BFDoUfhQSIVBQIRIUfhQ6FH4UEiFQ%2BdE2DMcssCwkjyQBJQYeCxUOCCoEFAQCBScdGR0DEA0BBgwTBx0CEWMyTiAJAQQFBQooqCQFAyJM%2FuRBMsozAxFZbBgTBgECBAMLlyF4FBMeIRoqDoAlGqIaGqIaJQQAJRqiGhqiGiX8AAT%2FGwUEAQEBBQ0LAQFw4FAdDgQsVAlORQEICQMCAQEEBFE3Xv20oRBvSCEVKxAoCg4PAQIUEjMBCRsgGg4qAVVlAZRldQIbFxwUBAwYDg13ZwIaEgF%2FAAACAAD%2FAwYABYAAYQCVAAATFxYzMjYzMiQEFxY%2FATIWMxYVFAcGByYnLgI1JicmIyImIgYHBh8BNRQeARUUBhYXHgEXFhUUDwEGJCMiBiMmPQE%2BAjc%2BAjQmNTQmNTQ%2BAS4BJyYjIgYHDgIHJicRATIeAhcWFAcOAyMiLgE0NjUhFBYUDgEjIi4CJyY0Nz4DMzIeARQGFSE0JjQ%2BAVE2DMcssCxGAWEBAHchFyoEFAQCBScdGR0DEA4KEQU9Hn5QbCoJAQECAQUFCiioJAUDIkz%2B5EEyyjMDEVlsGAcJAwEFAQEBBQQLlyn0EBMeIRoqDgUeDDw3QAQaGgRANzwMDQ8FA%2FwAAwUPDQw8N0AEGhoEQDc8DA0PBQMEAAMFDwV%2FGwUEAgEEASABAXDgUB0OBCxUCU1GAQ0GAgIEBVE3mDQ3xqJIEG9IIRUrECgKDg8BAhQSMwEJGyAaDhB0r4esAwcdCAdKSFE2BQwbCwx3aAIaEgF%2F%2Bv8nLDYDFTgVAzYsJxUkHyMCAiMfJBUnLDYDFTgVAzYsJxUkHyMCAiMfJBUAAAQAAAAABwAFgAAPAB8ALwA%2FAAAlFRQGIyEiJj0BNDYzITIWARUUBiMhIiY9ATQ2MyEyFgEVFAYjISImPQE0NjMhMhYBFRQGIyEiJj0BNDYzITIWBwAmGvmAGiYmGgaAGib%2BgCYa%2BwAaJiYaBQAaJgEAJhr6ABomJhoGABom%2FoAmGvuAGiYmGgSAGibAgBomJhqAGiYmAWaAGiYmGoAaJiYBZoAaJiYagBomJgFmgBomJhqAGiYmAAAEAAAAAAcABYAADwAfAC8APwAAJRUUBiMhIiY9ATQ2MyEyFgEVFAYjISImPQE0NjMhMhYBFRQGIyEiJj0BNDYzITIWARUUBiMhIiY9ATQ2MyEyFgcAJhr5gBomJhoGgBom%2FoAmGvyAGiYmGgOAGiYBACYa%2BoAaJiYaBYAaJv6AJhr9gBomJhoCgBomwIAaJiYagBomJgFmgBomJhqAGiYmAWaAGiYmGoAaJiYBZoAaJiYagBomJgAABAAAAAAHAAWAAA8AHwAvAD8AACUVFAYjISImPQE0NjMhMhYRFRQGIyEiJj0BNDYzITIWERUUBiMhIiY9ATQ2MyEyFhEVFAYjISImPQE0NjMhMhYHACYa%2BYAaJiYaBoAaJiYa%2BwAaJiYaBQAaJiYa%2BgAaJiYaBgAaJiYa%2B4AaJiYaBIAaJsCAGiYmGoAaJiYBZoAaJiYagBomJgFmgBomJhqAGiYmAWaAGiYmGoAaJiYAAAAABAAAAAAHAAWAAA8AHwAvAD8AACUVFAYjISImPQE0NjMhMhYRFRQGIyEiJj0BNDYzITIWERUUBiMhIiY9ATQ2MyEyFhEVFAYjISImPQE0NjMhMhYHACYa%2BYAaJiYaBoAaJiYa%2BYAaJiYaBoAaJiYa%2BYAaJiYaBoAaJiYa%2BYAaJiYaBoAaJsCAGiYmGoAaJiYBZoAaJiYagBomJgFmgBomJhqAGiYmAWaAGiYmGoAaJiYAAAAACAAAAAAHAAWAAA8AHwAvAD8ATwBfAG8AfwAAJRUUBisBIiY9ATQ2OwEyFhEVFAYrASImPQE0NjsBMhYRFRQGKwEiJj0BNDY7ATIWARUUBiMhIiY9ATQ2MyEyFgEVFAYrASImPQE0NjsBMhYBFRQGIyEiJj0BNDYzITIWERUUBiMhIiY9ATQ2MyEyFhEVFAYjISImPQE0NjMhMhYBABMNwA0TEw3ADRMTDcANExMNwA0TEw3ADRMTDcANEwYAEw36wA0TEw0FQA0T%2BgATDcANExMNwA0TBgATDfrADRMTDQVADRMTDfrADRMTDQVADRMTDfrADRMTDQVADRPgwA0TEw3ADRMTAXPADRMTDcANExMBc8ANExMNwA0TE%2FzzwA0TEw3ADRMTBHPADRMTDcANExP888ANExMNwA0TEwFzwA0TEw3ADRMTAXPADRMTDcANExMAAAUAAAAABwAFgAAPAB8ALwA%2FAE8AAAERFAYjIicBJjQ3ATYzMhYBFRQGIyEiJj0BNDYzITIWERUUBiMhIiY9ATQ2MyEyFhEVFAYjISImPQE0NjMhMhYRFRQGIyEiJj0BNDYzITIWAYATDQ4J%2FuAJCQEgCQ4NEwWAEw35QA0TEw0GwA0TEw37wA0TEw0EQA0TEw37wA0TEw0EQA0TEw35QA0TEw0GwA0TA%2BD9wA0TCQEgCRwJASAJE%2FzzwA0TEw3ADRMTAXPADRMTDcANExMBc8ANExMNwA0TEwFzwA0TEw3ADRMTAAUAAAAABwAFgAAPAB8ALwA%2FAE8AAAAUBwEGIyImNRE0NjMyFwkBFRQGIyEiJj0BNDYzITIWERUUBiMhIiY9ATQ2MyEyFhEVFAYjISImPQE0NjMhMhYRFRQGIyEiJj0BNDYzITIWAWAJ%2FuAJDg0TEw0OCQEgBakTDflADRMTDQbADRMTDfvADRMTDQRADRMTDfvADRMTDQRADRMTDflADRMTDQbADRMCzhwJ%2FuAJEw0CQA0TCf7g%2FgnADRMTDcANExMBc8ANExMNwA0TEwFzwA0TEw3ADRMTAXPADRMTDcANExMAAAEAAAAABwAFAAAfAAABERQHBiMiJwEVFAYjISImNRE0NjMhMhYdAQE2MzIXFgcAJw0MGxL%2Bbal3%2FUB3qal3AsB3qQGTEhsMDScEoPvAKhEFEwGTpnepqXcCwHepqXelAZITBREAAAAABAAA%2F4AHgAWAAAcADgAeAC4AAAAUBiImNDYyAREhNQEXCQEhIgYVERQWMyEyNjURNCYXERQGIyEiJjURNDYzITIWAoBwoHBwoARw%2BoABQKACAAIA%2BcANExMNBkANExOTXkL5wEJeXkIGQEJeBBCgcHCgcP3A%2FkDAAUCgAgABIBMN%2B0ANExMNBMANEyD7QEJeXkIEwEJeXgAEAAD%2FgAXrBWsABgAUABkAJQAAITcnBxUzFQE0IyIHAQYVFDMyNwE2JwkBIREBFA8BATc2MzIfARYBa1vrW4ACdhYKB%2F3iBxYKBwIeBzYBoPzA%2FmAF6yWm%2FmCmJDY1JuslW%2Btba4ADoBYH%2FeIHChYHAh4Hyv5g%2FMABoALgNSWmAaClJibqJwAAAgAA%2F4AEAAWAAAcAFwAAADQmIgYUFjIBFAcBDgEiJicBJjU0ACAAAwCW1JaW1AGWIf6UED9IPw%2F%2BkyEBLAGoASwDFtSWltSWAQBtRvz6ISYmIQMGRm3UASz%2B1AACAAD%2FgAYABYAABwATAAAlESIOARAeAQAQAgQgJAIQEiQgBAMAlPqSkvoDlM7%2Bn%2F5e%2Fp%2FOzgFhAaIBYWAEQJL6%2Ftj6kgLx%2Fl7%2Bn87OAWEBogFhzs4AAAAAAgAAAAAEAAXAABUALQAAATQnLgMnJiIHDgMHBhUUFjI2JRQAIAA1NDc%2BAzc%2BATIWFx4DFxYCABQBHRYcBwQiBAccFh0BFEtqSwIA%2FtT%2BWP7UUQZxWW4cCTI0MwgcbllxBlEBgCQhASshNxcQEBc3ISsBISQ1S0u11P7UASzUkYIJo4vZXR4iIh5d2YujCX8ABQAAAAAG%2BAWAAAYADgA5AD4ASAAAATcnBxUzFQAmBwEGFjcBExUUBiMhIiY1ETQ2MyEyFxYXFg8BBicmIyEiBhURFBYzITI2PQE0PwE2FgMJASERAQcBNzYyHwEWFAN4dJh0YAIAIBH%2BohEgEQFeUal3%2FMB3qal3A0A%2FNg8DAwwxDhIXFvzAQl5eQgNAQl4JQA8oYAEg%2FWD%2B4ARcXP7gXBxQHJgcAWB0mHQ4YALAIBH%2BohEgEQFe%2Fc%2B%2Bd6mpdwNAd6kZBxARDDEOBgZeQvzAQl5eQn4NCUAPEALN%2FuD9YAEgAhxcASBcHByYHFAAAAAAAgAAAAAGgAYAACsAWgAAAREUBiMhIiY1ETQ2MyExMhYVFAcGBwYrASIGFREUFjMhMjY9ATQ3Njc2FxYTAQYjIicmPQEjIAcGExYHBiMiJy4ENTQ%2BBzsBNTQ3NjMyFwEWFAWAqXf8wHepqXcA%2Fw0TGk04CgZwQl5eQgNAQl4SHBoQExXt%2FoASGwwNJ6D%2BvXN3LQMXCAQQCgoWOSojBxUjO05virVqoCcNDBoTAYATAiP%2B%2FXepqXcDQHepEw0bBRoiBF5C%2FMBCXl5C1hMKDRgQCAkB3P6AEwURKsCDif6wFwsCDQ4iZ2CEODFUYFBTQTonFsAqEQUT%2FoATNAAAAgAAAAAGfwWAAC8ARAAAAREUBiMhIiY1ETQ2MyEyFxYXFg8BBiMiJyYjISIGFREUFjMhMjY9ATQ%2FATYzMhcWEwEGIicBJjQ%2FATYyFwkBNjIfARYUBYCpd%2FzAd6mpdwNAPzYPAwMMMQoNAwYXFvzAQl5eQgNAQl4JQAoNBgYU5%2FzSGEIY%2FlIYGG4YQhgBBwKHGEIYbhgCXv7Cd6mpdwNAd6kZBxARDDEKAgZeQvzAQl5eQv4NCUAKAwgB1PzSGBgBrhhCGG4YGP75AocYGG4YQgAAAAABAAD%2FAAcABgAAQwAAABQHAQYiJj0BIREzMhYUBwEGIicBJjQ2OwERIRUUBiInASY0NwE2MhYdASERIyImNDcBNjIXARYUBisBESE1NDYyFwEHABP%2FABM0Jv6AgBomE%2F8AEzQT%2FwATJhqA%2FoAmNBP%2FABMTAQATNCYBgIAaJhMBABM0EwEAEyYagAGAJjQTAQACmjQT%2FwATJhqA%2FoAmNBP%2FABMTAQATNCYBgIAaJhMBABM0EwEAEyYagAGAJjQTAQATE%2F8AEzQm%2FoCAGiYT%2FwAAAQAA%2F4AEAAWAAB0AAAE2FhURFAYnASYnERQGKwEiJjURNDY7ATIWFRE2NwPTExoaE%2F06CQQmGoAaJiYagBomBAkFcxMMGvpAGgwTAsYJCv1aGiYmGgWAGiYmGv1aCwgAAQAA%2F4AHAAWAACsAAAE2FhURFAYnASYnERQGJwEmJxEUBisBIiY1ETQ2OwEyFhURNjcBNhYVETY3BtMTGhoT%2FToJBBoT%2FToJBCYagBomJhqAGiYECQLGExoECQVzEwwa%2BkAaDBMCxgkK%2FToaDBMCxgkK%2FVoaJiYaBYAaJiYa%2FVoLCALGEwwa%2FToLCAABAHr%2FgAaABYAAGQAAATYWFREUBicBJicRFAYnASY0NwE2FhURNjcGUxMaGhP9OggFGhP9OhMTAsYTGgUIBXMTDBr6QBoMEwLGCQr9OhoMEwLGEzQTAsYTDBr9OgsIAAABAAD%2FfAV%2FBYQACwAACQEGJjURNDYXARYUBWj60BchIRcFMBcCYf0eDRQaBcAaFA39Hg0kAAAAAAIAAP%2BABgAFgAAPAB8AAAERFAYjISImNRE0NjMhMhYFERQGIyEiJjURNDYzITIWBgAmGv4AGiYmGgIAGib8gCYa%2FgAaJiYaAgAaJgVA%2BoAaJiYaBYAaJiYa%2BoAaJiYaBYAaJiYAAAAAAQAA%2F4AGAAWAAA8AAAERFAYjISImNRE0NjMhMhYGACYa%2BoAaJiYaBYAaJgVA%2BoAaJiYaBYAaJiYAAAAAAQAA%2F4AGBgWAABkAABcGJjURNDYXARYXETQ2FwEWFAcBBiY1EQYHLRMaGhMCxggFGhMCxhMT%2FToTGgUIcxMMGgXAGgwT%2FToICwLGGgwT%2FToTNBP9OhMMGgLGCgkAAAAAAQAA%2F4AHAAWAACsAABcGJjURNDYXARYXETQ2FwEWFxE0NjsBMhYVERQGKwEiJjURBgcBBiY1EQYHLRMaGhMCxggFGhMCxggFJhqAGiYmGoAaJgUI%2FToTGgUIcxMMGgXAGgwT%2FToICwLGGgwT%2FToICwKmGiYmGvqAGiYmGgKmCgn9OhMMGgLGCgkAAAABAAD%2FgAQABYAAHQAAFwYmNRE0NhcBFhcRNDY7ATIWFREUBisBIiY1EQYHLRMaGhMCxggFJhqAGiYmGoAaJgUIcxMMGgXAGgwT%2FToICwKmGiYmGvqAGiYmGgKmCgkAAAACAAEAAAYBBQYACwAbAAATATYyFwEWBiMhIiYBISImNRE0NjMhMhYVERQGDgLGEzQTAsYTDBr6QBoMBcb6gBomJhoFgBomJgItAsYTE%2F06Exoa%2FeYmGgEAGiYmGv8AGiYAAAAAAQCa%2F5oEpgXmABQAAAkCFhQPAQYiJwEmNDcBNjIfARYUBJP97QITExOmEzQT%2FRoTEwLmEzQTphME0%2F3t%2Fe0TNBOmExMC5hM0EwLmExOmEzQAAAAAAQBa%2F5oEZgXmABQAAAkBBiIvASY0NwkBJjQ%2FATYyFwEWFART%2FRoTNBOmExMCE%2F3tExOmEzQTAuYTApP9GhMTphM0EwITAhMTNBOmExP9GhM0AAAAAgAA%2F4AGAAWAACMALwAAATU0JiMhETQmKwEiBhURISIGHQEUFjMhERQWOwEyNjURITI2ABACBCAkAhASJCAEBMAmGv8AJhqAGib%2FABomJhoBACYagBomAQAaJgFAzv6f%2Fl7%2Bn87OAWEBogFhAkCAGiYBABomJhr%2FACYagBom%2FwAaJiYaAQAmASv%2BXv6fzs4BYQGiAWHOzgACAAD%2FgAYABYAADwAbAAABNTQmIyEiBh0BFBYzITI2ABACBCAkAhASJCAEBMAmGv0AGiYmGgMAGiYBQM7%2Bn%2F5e%2Fp%2FOzgFhAaIBYQJAgBomJhqAGiYmASv%2BXv6fzs4BYQGiAWHOzgAAAAIAAP%2BABgAFgAArADcAAAE0LwE3NjU0LwEmIyIPAScmIyIPAQYVFB8BBwYVFB8BFjMyPwEXFjMyPwE2ABACBCAkAhASJCAEBH0TtbUTE1oTGxoTtbUTGhsTWhMTtbUTE1oTGxoTtbUTGhsTWhMBg87%2Bn%2F5e%2Fp%2FOzgFhAaIBYQGeGhO1tRMaGxNaExO1tRMTWhMbGhO1tRMaGxNaExO1tRMTWhMBzv5e%2Fp%2FOzgFhAaIBYc7OAAIAAP%2BABgAFgAAXACMAAAE0LwEmIgcBJyYiDwEGFRQXARYzMjcBPgEQAgQgJAIQEiQgBAUEElsTNBP%2BaOITNBNbEhIBahMaGxMCHxL8zv6f%2Fl7%2Bn87OAWEBogFhAyIcEloTE%2F5p4hMTWhIcGxL%2BlhMTAh8SSv5e%2Fp%2FOzgFhAaIBYc7OAAMAAP%2BABgAFgAAPADoARgAAJTU0JisBIgYdARQWOwEyNgE0LgEjIgcGHwEWMzI3Njc2MzIWFRQGBw4BHQEUFjsBMjY1NDY3PgQkEAIEICQCEBIkIAQDgBIOwA4SEg7ADhIBAG%2BmV%2FOADxeEBwwQCTUhIjQwSygwP2kSDsAOEishICI6HxkBgM7%2Bn%2F5e%2Fp%2FOzgFhAaIBYaDADhISDsAOEhICrliWUtUYEmQGDEQYGDQhJi4WHHVDJA4SEg4TPRMSFTEvSj3%2BXv6fzs4BYQGiAWHOzgAAAwAA%2F4AGAAWAAB4ALgA6AAAlNTQmKwERNCYjISIGHQEUFjsBESMiBh0BFBYzITI2AzU0JisBIgYdARQWOwEyNgQQAgQgJAIQEiQgBAQAEg5gEg7%2BwA4SEg5gYA4SEg4BwA4SgBIOwA4SEg7ADhICgM7%2Bn%2F5e%2Fp%2FOzgFhAaIBYaCgDhICAA4SEg6gDhL%2BwBIOoA4SEgOOoA4SEg6gDhISwf5e%2Fp%2FOzgFhAaIBYc7OAAACAAD%2FgAYABYAALwBfAAABIyImPQE0NjsBLgEnFRQGKwEiJj0BDgEHMzIWHQEUBisBHgEXNTQ2OwEyFh0BPgEBFRQGKwEOAQcVFAYrASImPQEuAScjIiY9ATQ2OwE%2BATc1NDY7ATIWHQEeARczMhYErW0aJiYabSChbCYagBombKEgbRomJhptIKFsJhqAGiZsoQFzJhqPJeuhJhqAGiah6yWPGiYmGo8l66EmGoAaJqHrJY8aJgIAJhqAGiZsoSBtGiYmGm0goWwmGoAaJmyhIG0aJiYabSChASyAGiah6yWPGiYmGo8l66EmGoAaJqHrJY8aJiYajyXroSYAAAAAAwAA%2F4AGAAWAACMALwA7AAABBwYiLwEHBiIvASY0PwEnJjQ%2FATYyHwE3NjIfARYUDwEXFhQ2EC4BIA4BEB4BIDYAEAIEICQCEBIkIAQESZIKGgqJiQoaCpIKComJCgqSChoKiYkKGgqSCgqJiQrNkvr%2B2PqSkvoBKPoBcs7%2Bn%2F5e%2Fp%2FOzgFhAaIBYQHJkgoKiYkKCpIKGgqJiQoaCpIKComJCgqSChoKiYkKGhkBKPqSkvr%2B2PqSkgJf%2Fl7%2Bn87OAWEBogFhzs4AAAAAAwAA%2F4AGAAWAABQAIAAsAAAJAQYiJwEmND8BNjIfAQE2Mh8BFhQWEC4BIA4BEB4BIDYAEAIEICQCEBIkIAQEk%2F5aEzQT%2FtoTE2YTNBOTARMTNBNmE3qS%2Bv7Y%2BpKS%2BgEo%2BgFyzv6f%2Fl7%2Bn87OAWEBogFhAtP%2BWhMTASYTNBNmExOTARMTE2YTNPoBKPqSkvr%2B2PqSkgJf%2Fl7%2Bn87OAWEBogFhzs4AAAAAAwAA%2F4AGAAWFAAkAEgAiAAABNCcBFjMyPgIFASYjIg4BFRQAEAIGBCAkJgIQEjYkIAQWBSBX%2FQ6JoG%2FJklb8GQLzh6WU%2BpIFIHrN%2FuP%2ByP7jzXp6zQEdATgBHc0Cg6GG%2FQ9ZV5LLvALyW5L8lKIBP%2F7G%2FuLOenrOAR4BOgEdznp6zgAAAQBA%2FzUGAAVLACAAAAEVFAYjIQEWFA8BBiMiJwEmNTQ3ATYzMh8BFhQHASEyFgYAQTT9QAElJiZLJTU0J%2F11JSUCiyY1NCZLJib%2B2wLANEECgIA1S%2F7aJGwkTCUlAowlNTQnAoomJkomaib%2B20sAAAEAAP81BcAFSwAgAAABFAcBBiMiLwEmNDcBISImPQE0NjMhASY0PwE2MzIXARYFwCX9dSc0MydLJiYBJf1ANEFBNALA%2FtsmJksmNDUmAoslAkA2Jf11JSVLJmomASVLNYA1SwEmJGwkSyYm%2FXUjAAABADX%2FgAZLBUAAIQAAARQPAQYjIicBERQGKwEiJjURAQYiLwEmNTQ3ATYzMhcBFgZLJUsmNTYk%2FtpLNYA1S%2F7aJGwkSyYmAosjNzYlAoslAjUzJ0smJgEl%2FUA0QUE0AsD%2B2yYmSyY0NSYCiyUl%2FXUnAAAAAAEANf%2B1BksFgAAiAAABFAcBBiMiJwEmNTQ%2FATYzMhcBETQ2OwEyFhURATYzMh8BFgZLJf11JzQ1Jf11JiZKJzQ1JQEmTDSANEwBJiU1NCdLJQLANSX9dCUlAowkNjUmSyUl%2FtoCwDRMTDT9QAEmJSVLJwAAAQAA%2F4AHAAXAACwAAAAUBwEGIiY1ESMiDgUVFBcUFhUUBiMiJy4CJwI1NDcSITMRNDYyFwEHABP%2BABM0JuBim5lxYj4jBQURDxAMBwwPA381ogLJ4CY0EwIAA5o0E%2F4AEyYaAQAMHzZVdaBlN0QGIwkPFBEJGiIHAR2mx4YBkwEAGiYT%2FgAAAAIAAP%2BABgAFgAAXAC8AAAAUBwEXFhQGIyEiJjURNDYyHwEBNjIfAQERFAYiLwEBBiIvASY0NwEnJjQ2MyEyFgLzCv60kBMmGv5AGiYmNBOQAUwKGgpyAxcmNBOQ%2FrQKGgpyCgoBTJATJhoBwBomAe0aCv60kBM0JiYaAcAaJhOQAUwKCnIDSf5AGiYTkP60CgpyChoKAUyQEzQmJgAAAAACAA3%2FjQXzBXMAFwAvAAABERQGIi8BAQYiLwEmNDcBJyY0NjMhMhYAFAcBFxYUBiMhIiY1ETQ2Mh8BATYyHwEDACY0E5D%2BtAoaCnIKCgFMkBMmGgHAGiYC8wr%2BtJATJhr%2BQBomJjQTkAFMChoKcgJA%2FkAaJhOQ%2FrQKCnIKGgoBTJATNCYmApMaCv60kBM0JiYaAcAaJhOQAUwKCnIAAAAAAQAAAAAFgAWAACMAAAEVFAYjIREUBisBIiY1ESEiJj0BNDYzIRE0NjsBMhYVESEyFgWAOCj%2BYDgowCg4%2FmAoODgoAaA4KMAoOAGgKDgDIMAoOP5gKDg4KAGgOCjAKDgBoCg4OCj%2BYDgAAAAAAQAAAgAFgAOAAA8AAAEVFAYjISImPQE0NjMhMhYFgDgo%2B0AoODgoBMAoOAMgwCg4OCjAKDg4AAABAHr%2FgAYGBYAANQAAAR4BDwEOASclERQGKwEiJjURBQYmLwEmNjctAS4BPwE%2BARcFETQ2OwEyFhURJTYWHwEWBgcFBcouGxpAGmcu%2FvZMNIA0TP72LmcaQBobLgEK%2FvYuGxpAGmcuAQpMNIA0TAEKLmcaQBobLv72AeYaZy5uLhsamf7NNExMNAEzmRobLm4uZxqamhpnLm4uGxqZATM0TEw0%2Fs2ZGhsubi5nGpoAAAMAAP%2BABgAFgAALABsALQAAACAEEhACBCAkAhASATU0JisBIgYdARQWOwEyNgMTNCcmKwEiBwYVExQWOwEyNgIvAaIBYc7O%2Fp%2F%2BXv6fzs4CshINwA0UFA3ADRICEgoKDtwOCgoRFA65DhMFgM7%2Bn%2F5e%2Fp%2FOzgFhAaIBYfvvvg4TFA2%2BDRQTAWYCbQwGCAgGDP2TCg8PAAAABAAAAAAGAAVAAA0AFgAfAEoAACU1ETUhFREVFBY7ATI2ATMnJiMiBhQWJDQmIyIPATMyBREUBisBERQGIyEiJjURIyImNRE0NjMhIiY0NjMyHwE3NjMyFhQGIyEyFgOg%2FsAkHMAcJP44w34aKyg4OALYOCgrGn3CKAGwEg5gOCj7wCg4YA4SEg4BuF2Dg11rPYCAPWtdg4NdAbgOErQ4AdTAwP4sOBkbGwNloR84UDg4UDgfoaD%2BwA4S%2FmAoODgoAaASDgFADhKDuoNNpaVNg7qDEgACAAAAAAcABYAAFQBPAAAANCYjIgQGBwYVFBYzMjc%2BATc2JDMyARQHBgAHBiMiJy4BIyIOAiMiLgEnLgM1ND4CNTQmJyY1ND4CNz4ENz4EMzIeAgUAJhqs%2FtzjehMmGhgVG14UiQEHthoCJhQu%2Fuvb1uCUig%2BSFxAvKz4dHioUEQIIAwM%2BSj4cAglXl75tN7SzspUnCicUIicYJz8gEAMmNCZjqYcVGBomExheE3xoAQZfYuD%2Bwm1sLwVKQExAFhodBA4GDQcjTTY6EwRECjM1c9KfdyQSDwMJJyUKJxEXCVyEdAACAAD%2FAAWABgAADwAzAAAFFRQGIyEiJj0BNDYzITIWARQOBRUUFycXLgQ1ND4FNTQnFyceBAWAEw36wA0TEw0FQA0T%2FwAxT2BgTzFDBAFajIlaNzFPYGBPMUIDAVqMiVo3oEANExMNQA0TEwQTToRdU0hIWzNggAEBKVR0gaxiToRdU0hIWzNeggEBKVR0gawAAAAAAwAAAAAHAASAABEAIQAxAAABJicWFRQAIAA1NDcGBxYEICQANCYjIgYVFBYyNjU0NjMyABQHBgAgACcmNDc2ACAAFwaAmOU9%2Fvn%2Bjv75PeWYhQGRAdQBkf21HBR9sxwoHHpWFANsFIz%2BJ%2F3y%2FieMFBSMAdkCDgHZjAJA7HVoebn%2B%2BQEHuXlodezN8%2FMCOSgcs30UHBwUVnr%2B0kQj5v7rARblI0Qj5QEW%2FurlAAUAAP%2BgBwAE4AAJABkAPQBDAFUAACU3LgE1NDcGBxIANCYjIgYVFBYyNjU0NjMyJRQHBgAPAQYjIicmNTQ3LgEnJjQ3NgAhMhc3NjMyHgMXFhMUBgcBFgQUBwYHBgQjNzYkNyYnNx4BFwIrTldiPeWYpwKJHBR9sxwoHHpWFAGHAWn%2BXGoxChIMehAsj%2FFYFBSZAcYBDVlbNgoSBRokHiEDECWeggEYCAHAFCdGlv513krUAWl5c6c%2FX685yY0%2FwGt5aHXs%2Fv4Cbigcs30UHBwUVnrvBwK8%2FQy9WRBGChIMS0HYiR9MH%2BsBEBFhEAwTEhMCCv4wi%2BUyAfYthEYiQFGsvoQS7ryzc3BAsl8AAAAAAwAQ%2F4AG8AYAAA8AIQAzAAAlNTQmKwEiBh0BFBY7ATI2AxM0JyYrASIHBhUTFBY7ATI2AwEWBw4BIyEiJicmNwE%2BATIWBAATDcANExMNwA0TAhIKDQvcCw0KERQOuQ4TDQMAIyUROyL6ACI7ESUjAwARPEY8ob4OExMOvg4TEwGEAcsMBwsLBw7%2BNwoNDQOw%2BoA%2FPx0iIh0%2FPwWAHyQkAAEAAAAABWwFbAAyAAABFgYPARMWDwEGIyInJicJARcWDwEGKwEmLwImJyY%2FATYzMh8BCQEmJyY%2FATYXBTc%2BAQVgLEBMoaAFEYAHDAQDDwb%2B6f79NQUNYAkOAg8JvfwLAgEKYAkOBgLCAQP%2BBA4DAguADhACmaBMwAVgNMBMof1IEw5gBgEDDQH8%2Fv3CEQ5gCQIL%2FL0HEA0MYQkBNQEDARcIEBALgA0Fn6BMQAAPAAD%2FAAaABgAAAwAHAAsADwATABcAGwAfACMAMwA3ADsAPwBPAHMAABchESEBIREhJSERIQEhESElIREhASERIQEhESEBIREhJSERIQERNCYrASIGFREUFjsBMjYBIREhJSERIQEhESE3ETQmKwEiBhURFBY7ATI2JREUBiMhIiY1ETQ2OwE1NDY7ATIWHQEhNTQ2OwEyFh0BMzIWgAEg%2FuABYAFA%2FsD%2BoAEg%2FuABYAFA%2FsD%2BoAEg%2FuAC4AFA%2FsD%2BgAFA%2FsADAAEg%2FuD%2BgAFA%2FsD%2BoBMNQA0TEw1ADRMC4AEg%2FuD%2BgAFA%2FsABgAEg%2FuAgEw1ADRMTDUANEwGATDT6gDRMTDSAXkJAQl4BgF5CQEJegDRMgAEg%2FuABIEABQP7AAUBAASD8AAEgAcABIPwAASBAAUACIAEgDRMTDf7gDRMT%2FK0BQEABIP7gASDAASANExMN%2FuANExNN%2BwA0TEw0BQA0TGBCXl5CYGBCXl5CYEwAAAADAAD%2FoAcABeAAEgA3AHEAAAEGBy4EKwEiJj0BNDY7ATIAFAcBBiMiJj0BIg4BLgYnNjceBDMhNTQ2MzIXARIUBwEGIyImPQEhIg4CBwYHDgYrASImPQE0NjsBMj4CNzY3PgYzITU0NjMyFwECmjxNFh4zM0ss4A4SEg7g%2BgUGCf7ACQ4NEyBqOFo0TDJCNDobO00WHjMzSywBABIODAwBPwkJ%2FsAJDg0T%2FwAwTjwqGCAuHSlDPVddeETgDhISDuAwTjwqGCAuHSlDPVddeEQBABIODAwBPwQfXLUtN0gpHRIOwA4S%2FA4cCf7ACRMNwAEBAwcOFyIuPSddtC03SCkdwA4SCv7BA3ccCf7ACRMNwB48Py4%2BbUJaeFBWMyESDsAOEh48Py4%2BbUJaeFBWMyHADhIK%2FsEAAAABAAD%2FAAcABQAAJgAAABACBCMiJwYFBgcGJic1JjYmPgI3PgU3JgI1ND4BJDMyBAcA8P5k9EZLxv76MUERGwQDBQEKAgwCBzAVKRgeC521jvABTLb0AZwDLv6k%2FtmrCK9DDggCFhIBBBAEDwMOAgg1FzguSChZAQaWgu2sZasAAAMAAP%2BABgAFgAAjADMAQwAAARUUAgQgJAI9ATQ2MyEyFh0BFB4DMj4DPQE0NjMhMhYBERQGIyEiJjURNDYzITIWBREUBiMhIiY1ETQ2MyEyFgYAxf6h%2Fkj%2BocUmGgGAGiYvPFIuKi5SPC8mGgGAGib8ACYa%2FoAaJiYaAYAaJgQAJhr%2BgBomJhoBgBomAsCAyf6%2BtbUBQsmAGiYmGoA0TCYWBAQWJkw0gBomJgJm%2FoAaJiYaAYAaJiYa%2FoAaJiYaAYAaJiYAAAAAAQBaABUGpgQgABQAACUHBiInCQEGIi8BJjQ3ATYyFwEWFAaTphM0E%2F3t%2Fe0TNBOmExMC5hM0EwLmE82lExMCE%2F3tExOlEzUTAuUTE%2F0bEzUAAAAAAQBa%2F%2BAGpgPrABQAAAkBBiInASY0PwE2MhcJATYyHwEWFAaT%2FRoTNBP9GhMTphM0EwITAhMTNBOmEwLY%2FRsTEwLlEzUTpRMT%2Fe0CExMTpRM1AAAAAgAAAAAHgASAACUASwAAJRQGIyEiLgM8AT0BESMiJjU0NwE2MhcBFhUUBisBESEyHwEWARQHAQYiJwEmNTQ2OwERISIvASY1NDYzITIeAxwBHQERMzIWBQATDfxACAsHBALAGiYPAUATPBMBQA8mGsACQBAJoAcCgA%2F%2BwBQ6FP7ADyYawP3AEAmgBxMNA8AICwcEAsAaJiANEwQKBhEGFAGgAaAmGhgRAYAWFv6AERgaJv6AC8ALAZYYEf6AFxcBgBEYGiYBgAzACQsNEwQKBhEGFAGg%2FmAmAAAAAAMAAP%2BABoAFAAAHAA8AOgAAJBQGIiY0NjIEFAYiJjQ2MhMRFAYHBRYVFAchMhYUBiMhIiY1ND4CNwMjIiY0NjMhMh4EFyEyFgKATGhMTGgDzExoTExozCEY%2B%2BwNGAOYGiYmGvwAGiYQEBsCscwaJiYaAQAQGQ4MBAcBBLEaJjRoTExoTExoTExoTAPA%2FgAYJQN6PAoQMCY0JiYaCykfMQUDNyY0Jg0SHxUmByYAAAAAAQAAAAAGgAWAABQAAAERFAYjISImNRE0NjMhMhYdASEyFgaAhFz7QFyEhFwBQFyEAqBchAOg%2FUBchIRcA8BchIRcIIQAAAAAAgAAAAAHVwWAABMAKgAAARQHAQ4BIyEiJjU0NwE%2BATMhMhYBFSEiBgcBBzQmNRE0NjMhMhYdASEyFgdXH%2F6wK5tC%2B8AiNR8BUCubQgRAIjX%2BqfzAXs49%2Fq8FAYRcAUBchAIgXIQCSB8j%2FnQzRxoeHyMBjDNHGgE6oF9I%2FnQGBBEEA8BchIRcIIQAAAABAED%2FAALABgAAHwAAABQGKwERMzIWFAcBBiInASY0NjsBESMiJjQ3ATYyFwECwCYagIAaJhP%2FABM0E%2F8AEyYagIAaJhMBABM0EwEABNo0JvwAJjQT%2FwATEwEAEzQmBAAmNBMBABMT%2FwAAAAABAAABQAcAA8AAHwAAABQHAQYiJj0BIRUUBiInASY0NwE2MhYdASE1NDYyFwEHABP%2FABM0JvwAJjQT%2FwATEwEAEzQmBAAmNBMBAAKaNBP%2FABMmGoCAGiYTAQATNBMBABMmGoCAGiYT%2FwAAAAAFAAD%2FgAgABYAAAwAHAA0AEQAVAAABESERAREhEQEVIREzEQERIREBESERAoD%2FAAKA%2FwAFAPgAgAUA%2FwACgP8AAoD%2BAAIAAgD8AAQA%2B4CABgD6gAOA%2FQADAAGA%2B4AEgAACAAD%2FgAYABYAAMABAAAABBgc2NwYHJiMiBhUUFy4BJwYVFBcmJxUUFhcGIyInHgEXBiMiJxYzMj4DNTQnNgERFAYjISImNRE0NjMhMhYFADhBRBlBRT1cV3sFgeJPHVsvNWRJHRYNGhVrRHSRGhiUrnDEjGUxAT8BKql3%2FEB3qal3A8B3qQOeGQkoTSYNQntXHRMHdGEyOHI9ARkCS3UOCAQ%2FUgFaA15Hd5upVBIJLQEC%2FEB3qal3A8B3qakAAAABAAD%2FgAYABYAAJAAAATIWFREUBisBETM3IzU0NjM3NSYjIgYdASMVMxEhIiY1ETQ2MwTgd6mpd7zHHuUvRHo%2Fc4ijyMj97HepqXcFgKl3%2FEB3qQJT6JQ4OAHPCaCSq%2Bj9ral3A8B3qQAAAAAHAAD%2FgAcABYAADwAXABsAIwAnAC4APgAAADQmIyIGFRQWMjY1NDYzMjYUBiImNDYyASE1IQAQJiAGEBYgASE1IQMhPQEhByElERQGIyEiJjURNDYzITIWA6ASDkJeEhwSOCgO8pbUlpbU%2FJYGAPoABIDh%2FsLh4QE%2B%2FOEBgP6AgAYA%2FMRA%2FXwGgEs1%2BgA1S0s1BgA1SwKyHBJeQg4SEg4oOAjUlpbUlvzCgAEfAT7h4f7C4QQCgP7AdoqAgPsANUtLNQUANUtLAAIAAP9IBpMFgAAVAEcAAAA0JiIGFRQXJiMiBhQWMjY1NCcWMzIBFAYjIi4CJwcXFhUUBiMiJwEGIyImNTQSJDMyFhUUBwE3LgM1NDYzMhceBANAcKBwEykqUHBwoHATKSpQA8NiEQknIisDYNwcTiooHP1hsL2jzb4BMqCjzYMBY2ADLiIgYhENCgZQVFk5A7CgcHBQKikTcKBwcFAqKRP%2BABFiICIuA2DcHCgqThwCn4PNo6ABMr7No72w%2Fp1gAysiJwkRYgoGTVJaQgAAAAAGAAD%2FDweABfAABwARABsAfwC9APsAAAA0JiIGFBYyATQmIgYVFBYyNhE0JiIGFRQWMjYBFRQGDwEGBxYXFhUUBw4BIyIvAQYHBgcGKwEiJi8BJicHBiMiJyY1NDc%2BATcmLwEuAT0BNDY%2FATY3JicmNTQ3PgEzMh8BNjc2NzY7ATIWHwEWFzc2MzIXFhUUBw4BBxYfAR4BARUUBwYHFhUUBwYjIiYnBiInDgEjIicmNTQ3JicmPQE0NzY3JjU0Nz4CMzIWFzYyFzY%2FATIXFhUUBxYXFhEVFAcGBxYVFAcGIyImJwYiJw4BIyInJjU0NyYnJj0BNDc2NyY1NDc%2BAjMyFhc2Mhc2PwEyFxYVFAcWFxYDgJbUlpbUA5ZMaExLaktMaExLakv%2BgA4JmwsVIjgHBxd3EwsKcyUoCwwHF7oLEgEXIil2Bw0LCpAHCj4QFwyYCg4OCZsLFSI4BwcWeBMLCnMiKwsMBxe6CxIBFyIpdggMCwqQBww8DxcLmAoOAoCVDBIzBHoCCEwOFBQUDkwIAnoEMxIMlZUNETMEBD44AghMDhQUFDMpBgR4BDMRDZWVDBIzBHoCCEwOFBQUDkwIAnoEMxIMlZUNETMEBD44AghMDhQUFDMpBgR4BDMRDZUCFtSWltSW%2FwA0TEw0NUtLBDU0TEw0NUtL%2FpC5ChMBGCMpMEMKCgwHHncHWhMMbC8YDwqZChVZBwiFGwkKDk4WLCYYARELuQoTARgjKTBDCwkMCB52B1oSDmwuGA8KmQoVWQcIhRsJChBMFjAiFwIR%2FeCMEA8bGXEZBANHXhUCAhVeRwMEGXEZGw8QjBAPHRdxGQQDAiQgXRUCAkcpAkYDBBlxFx0PA%2FCMEA8bGXEZBANHXhUCAhVeRwMEGXEZGw8QjBAPHRdxGQQDAiQgXRUCAkcpAkYDBBlxFx0PAAAAAAIAAP%2BABwAFAAAlAE8AAAAQBgQjIicGBwYHIyImJyY0PgU3PgQ3LgE1NDYkIAQBFAYHHgQXHgYUBw4BJyYnJicGIyAnFjMyJDc%2BATU0Jx4BBYC8%2Fru%2FVlp8miQyAwsTAgEBAwIFAwYBBSQQHRUKfI68AUUBfgFFAjyOfAoVHRAkBQEGAwUCAwEBAxQMMiSafFpW%2FvHJOh6hASh0fYYXgZYDi%2F7q7IkQWCgJBxANAwcGBgQHAwcBBiYVJSgYSNJ3i%2ByJif2JeNFIGCglFSYGAQcDBwQGBgcDDhABBwkoWBCEBFpUXPCGTUtH1gAAAwAA%2F4AGAAYAAAcAPABtAAAkNCYiBhQWMgE0JiMhNDY1NCYjDgIHBgcOBisBETMyHgQXFjsBMjU0Jz4BNCc2NTQmJz4BNxQHFhUUBxYVFAcWBisCIiYnJiMhIiY1ETQ2MyE2NzY3PgI3NjMyHgEVFAczMhYBACY0JiY0BKZOMv6gYEBgGhglKRY3BCYZLCQpJxAgIA0lHS8XMAXTg3nABR4jEjUUDyArgDEJJgM8AayNJF1gu3t0Fv7gNUtLNQESJGU6MRgXJisnM1SGRjCwaJimNCYmNCYCgDNNOss7Yl4adoUrF0QFMiA1IyQS%2FYAGBw8IEQJJpxoeEElKIDJFGT0RAVwkWUohJE1DFRZlTYuhLSsoSzUCgDVLGINLNRl5hColQYp1XWOYAAAAAwAA%2FwAGAAWAAAcAPQBwAAAANCYiBhQWMgE0Jic%2BATU0JzY0Jic2NTQmKwEiBw4FKwERMzIeBRcWFx4CFzI2NTQmNSEyNjcUBisBFhUUBw4BIyInLgMnJicmJyEiJjURNDYzITI3PgE7ATIWBxUWFRQHFhUUBxYBACY0JiY0BKYrIA8UNRIjHgViV4CD0wUwFy8dJQ0gIBAnKSQsGSYENxYpJRgaYEBgAWAyToCYaLAwIyOGVDMnIigLGBMwO2Uk%2Fu41S0s1ASAWdIC%2BaXCMrQE8AyYJMQQmNCYmNCb%2BACNcARE9GUUyIEpJEB4aVVJJAhEIDwcG%2FYASJCM1IDIFRBcrhXYaXmI7yzpNMmeYY112REVBJSFiU1YVMk2DGEs1AoA1SygsLJ6JBU1lFhVDTSQhSgABAAD%2FrQNABeAAEgAAAREFBiMiJjU0NxMBJjU0NyUTNgNA%2Fj8WEhUVAlb%2BlBk4AfbhEwXg%2BsXsDB0VBg4B9AFiGxUlCUkBxykAAAAAAgAA%2F4AHAAWAABwAOQAAATQuAyIOAgcGIicuAyIOAxUUFwkBNjcUBwEGIicBLgQ1NDYzMh4CFz4DMzIWBoArQ2BcaHhlSBgSPhIYSGV4aFxgQyu7AkUCRLyA5f2REjQS%2FZAKI0w8L%2F7gPoFvUCQkUG%2BBPuD%2BA6xRfEkuEDNNQxwWFhxDTTMQLkl8Uai7%2FdACL7yo3eX9qBISAloIJF9kjkPc%2BCtJQCQkQEkr%2BAAAAAACAAAAAAYgBQAAKABAAAAlFBYOAiMhIiY1ETQ2MyEyFhUUFg4CIyEiBhURFBYzIToCHgMAFAcBBiImNREhIiY1ETQ2MyERNDYyFwECgAIBBQ8N%2FsB3qal3AUANEwIBBQ8N%2FsBCXl5CASABFAYRBgoEA6AT%2FeATNCb%2BQBomJhoBwCY0EwIgYAQgFRoNqXcCwHepEw0EIBUaDV5C%2FUBCXgIEBwsCMjQT%2FeATJhoBICYaAYAaJgEgGiYT%2FeAAAAQAAP%2BABgAFgAADAA8AJQA1AAA3MxEjNy4BIgYVFBY7ATI2ATMRNCYjIgczNSMWAzMRNDc%2BATMyFQERFAYjISImNRE0NjMhMhbt5%2Bf2AUZ0SUc5ATtIAknnkniISQLnAwPnBw88LHQB1Kl3%2FEB3qal3A8B3qXoCttY0REQ0M0VF%2FKcBjpqedWVC%2FYwBhCYSIzGdAnP8QHepqXcDwHepqQACAAD%2FAASABYAACwAuAAABETQmIgYVERQWMjYBFAYjIQMOASsBIicDISImNTQ2MxEiJjQ2MyEyFhQGIxEyFgHgEhwSEhwSAqAmGv5TMwIRDAEbBUz%2BbBomnWM0TEw0AoA0TEw0Y50CoAHADhISDv5ADhIS%2Fq4aJv4dDBEbAeUmGnvFAgBMaExMaEz%2BAMUAAAACAAAAAAcABgAAJwA%2FAAABERQGIyEiJjURNDYzITIWHQEUBiMhIgYVERQWMyEyNjURNDY7ATIWAREUBiIvAQEGIi8BJjQ3AScmNDYzITIWBYCpd%2FzAd6mpdwLADhISDv1AQl5eQgNAQl4SDkAOEgGAJjQTsP10ChoKcgoKAoywEyYaAgAaJgJg%2FsB3qal3A0B3qRIOQA4SXkL8wEJeXkIBQA4SEgNS%2FgAaJhOw%2FXQKCnIKGgoCjLATNCYmAAIAAAAABgAFAAAXAEAAAAAUBwEGIiY1ESEiJjURNDYzIRE0NjIXCQERFAYjISImNTQmPgIzITI2NRE0JiMhKgIuAzU0Jj4CMyEyFgSgE%2F3gEzQm%2FkAaJiYaAcAmNBMCIAFzqXf%2BwA0TAgEFDw0BQEJeXkL%2B4AEUBhEGCgQCAQUPDQFAd6kCmjQT%2FeATJhoBICYaAYAaJgEgGiYT%2FeABM%2F1Ad6kTDQQgFRoNXkICwEJeAgQHCwgEIBUaDakAAwAA%2F4AGgAWAAAYADQBJAAABJjUhFRQWJTUhFAc%2BATcVFA4CBwYHDgEVFBYzMhYdARQGIyEiJj0BNDYzMjY1NCYnJicuAz0BNDYzITU0NjMhMhYdASEyFgHKSv8AvQTD%2FwBKjb2AU43NcSo1Jh09Q0t1Eg78wA4SdUtDPR0mNSpxzY1TOCgBIF5CAkBCXgEgKDgCjaLRYE6o9mDRoh2ozoBHkHRPBTYpIk0zNkpbRUAOEhIOQEVbSjYzTSIpNgVPdJBHgCg4YEJeXkJgOAAAAAgAAP%2BABgAFgAAHAA4AFgAeACUALQAzAI0AACUGJyY3NhcWJxYHBiY3NicGJyY3NhcWFwYnJjc2FxYXBicmNhcWFxQjBjU0MzYXFgYmNzYBERQGKwEiLgI9ATQnPgQ1NCc2JyYGDwEmIgcuAgcGFwYVFB4DFwYHDgEiJicuAS8BIgYeAR8BHgEfAR4DPwEUFhUUDgErASImNRE0NjMhMhYBiggMDQkIDAwyCQkIEgkJNQUICgMDCgocBgoJBwYKCXoEDxEIDxA8EBEQEToCIAQQEAPGqXfgEBEWCjQ5W2FBKU8lLRxqJyZdxl0QNXIdLCVPKUBhWzkoCRUwQkEXEzsUFBUQBgwHBxYrCgoNPkhDFhcBFhYW4HepqXcDwHepuAkMCwgJDAs1DAcGGgUHLwcFBQcFAwUpBwoLBQYJC3UMBgQWBAUQCwINCwIDCggYAwIDsfxAd6kCCBUR72EtBhg2T4NVeVVbcQkoGBgaGgsgLQlxW1V5VYJQNhgGJEMKCispICgEAwkODgUFCjgXFyYvDQEEBCaCAxYXA6l3A8B3qakAAAQAAP%2BABoAFwAAHAA8AJwA%2FAAAkNCYiBhQWMiQ0JiIGFBYyExEUBiMhIiY1ETQ2MyEeATMhMjY3ITIWAQYjIREUBiMhIiY1ESEiJyY3ATYyFwEWBQAmNCYmNAEmJjQmJjSmOCj6QCg4OCgBqxVjPQEAPWMVAasoOP67ESr%2FACYa%2FwAaJv8AKhERHwHAEjYSAcAfJjQmJjQmJjQmJjQmASD%2BwCg4OCgBQCg4OEhIODgCYCj%2BQBomJhoBwCgnHgHAExP%2BQB4AAAAAAgAA%2F4AF%2FwWAADEAZAAAATQmJy4CNTQ2NTQnJiMiBiMiJiMiDgEHBgcOAhUUFhUUBhQWMzI2MzIWMzI3PgESNxQCBgcGIyImIyIGIyImNTQ2NTQmNTQ%2BAjc2NzYzMhYzMjYzMhYVFAYVFB4DFx4BBX8OCwwKCAoKBAkTThQ86DsrZ0M4iUFgfzEZFhgWGGEZOeE5tWeB1XeAjPybfMo54jgYYRlJZRYZJEmAVk6awno85zoTTBRRSgoCBAQJAhASAsYsixseHC0aF1sWJRIBCTAXGBY2MUnp74EooCkXVywdFh8kLdcBFIul%2Frv7NywdHW9JGFgXKKEpb9XOtkE7PU4wCmVUF1oXChERChYGKJ0AAAAAAQAAAAAFgAWAAE8AAAEUBgcGBwYjIi4DJyYnJgAnJicuBDU0NzY3PgEzMhcWFx4CFx4CFRQOAhUUHgIXHgEXHgMzMj4CMzIeARceAhcWFxYFgBQLFWVeXBszQB9QCWJNgP7vTzAjAx4LEgczODIZVxsOBxIjCyYgDwMdDjlDOQoHFQFMxIkCIg4bCRI4MjwUDh0qBBk5RhNGBgMBKBtXGTI4MwcSCx4DIzBPARGATWIJUB9AMxtcXmUVCxQDBkYTRjkZBCodDhQ8MjgSCRsOIgKJxEwBFQcKOUM5Dh0DDyAmCyMSBwAAAAIAAAAABYAFgAAPAB8AAAEhIgYVERQWMyEyNjURNCYXERQGIyEiJjURNDYzITIWBGD8wEJeXkIDQEJeXt6pd%2FzAd6mpdwNAd6kFAF5C%2FMBCXl5CA0BCXqD8wHepqXcDQHepqQACAAD%2FlwUABYAABgAjAAABIREBNxcBEzIXHgEVERQGBwYjIicJAQYjIicuATURNDY3NjMEgPwAAadZWQGnDBcVIScnIRMZMCP%2BR%2F5HJC8XFSEnJyEVFwUA%2ByYBllVV%2FmoFWgkNOCL69yI4DQggAaj%2BWCEJDTgiBQkiOA0JAAAAAAIAAP%2BABgAFgABFAFUAAAE0Jy4BLwEuAiMiDgEjIi4CJy4BJy4DNTQ%2BAjU0LgEnLgUjIgcOARUUHgQXFgAXHgUzMjY3NgERFAYjISImNRE0NjMhMhYFAAIDRzU1BRwWChI6OBAHEwwWA2OPNwINBgcpMSkKFAMDGBobFwoLMDUuRAUFDQcSAjwBOaQGMBIpGSQQOZMVFgEAqXf8QHepqXcDwHepAVcLBQgrHB0DFApBQgcGDQI3j2MDFgwTBw0pJCsPChYcBQYtLjEgBBYVkzkQJBkpEjAGpP7HPAISBw0FBUQuNQM5%2FEB3qal3A8B3qakAAAABACwAAAZUBQAAMQAAAQYHFhUUAg4BBCMgJxYzMjcuAScWMzI3LgE9ARYXLgE1NDcWBBcmNTQ2MzIXNjcGBzYGVENfAUyb1v7SrP7x4SMr4bBpph8hHCsqcJNETkJOLHkBW8YIvYaMYG1gJWldBGhiRQ4cgv797rdtkQSKAn1hBQsXsXUEJgMsjlNYS5WzCiYkhr1mFTlzPwoAAAABAF%2F%2FgAO%2FBgAAFAAAAREjIgYdASEDIxEhESMRITU0NjMyA7%2BdVjwBJSf%2B%2Fs7%2FAP%2FQrZMF9P74SEi9%2Ftj9CQL3ASjaus0AAAABAAD%2FpwYABYAAUgAAARQABwYmPQE0Jz4ENTQnNicmBg8BJiIHLgIHBhcGFRQeAxcGBw4BIiYnLgEvASIGHgEfAR4BHwEeAz8BFBYVFAYnJgA1NBIkIAQSBgD%2B2%2BgbGTQ5W2FBKU8lLRxqJyZdxl0QNXIdLCVPKUBhWzkoCRUwQkEXEzsUFBUQBgwHBxYrCgoNPkhDFhcBGhvo%2FtvOAWEBogFhzgKA%2B%2F5vTQUYEtNhLQYYNk%2BDVXlVW3EJKBgYGhoLIC0JcVtVeVWCUDYYBiRDCgorKSAoBAMJDg4FBQo4FxcmLw0BBAQmZgMSGAVNAZH70QFhzs7%2BnwAAAAABAAAAAAaABYAAJQAAAREUBisBIiY1ETQmIgYdATMyFhURFAYjISImNRE0NjMhNTQAIAAGgCYaQBomltSWYCg4OCj8QCg4OCgCoAEHAXIBBwPA%2FwAaJiYaAQBqlpZqwDgo%2FcAoODgoAkAoOMC5AQf%2B%2BQAAAAUAAP%2BAB4AFgAAPABkAIwAnACsAAAEyFhURFAYjISImNRE0NjMVIgYdASE1NCYjETI2NREhERQWMzc1IRUzNSEVBuBCXl5C%2BcBCXl5CDRMGgBMNDRP5gBMNYAEAgAGABYBeQvtAQl5eQgTAQl6AEw3g4A0T%2BwATDQJg%2FaANE4CAgICAAAMAAAAABYAFgAAHACEAPQAAABQGIiY0NjIBFgcGKwEiJicmACcuAT0BNDc2OwEWBBcWEgUWBwYrASImJyYCACQnLgE9ATQ3NjsBDAEXFhIBgHCgcHCgAnACExIdhxkkAhb%2Bu%2BUZIRURGgWgASRxcocCDQIUEhyPGiUBDLL%2B4%2F591xkjFBIaAwEGAd%2B6u9YBEKBwcKBw%2FsUcFBUhGeUBRRYCJBmHHRIRDYdycf7cohsUFCMZ1wGDAR2yDQElGY8cEhIN1ru6%2FiEABQAAAAAGAAUAAAcADwAfACkAPwAAABQGIiY0NjIEFAYiJjQ2MhcRNCYjISIGFREUFjMhMjYBIQMuASMhIgYHAREUBiMhIiY1ETQ3Ez4BMyEyFhcTFgQQL0IvL0IBLy9CLy9CnxMN%2B0ANExMNBMANE%2FsyBJydBBgO%2FPIOGAQEsV5C%2B0BCXhDFEVw3Aw43XBHFEAFhQi8vQi8vQi8vQi%2FwAUANExMN%2FsANExMB7QHiDRERDf1%2B%2FsBCXl5CAUAZMgJeNUJCNf2iMgACAAD%2FgwcABYAALgA0AAABMhYUBiMRFAYjACUOARYXDgEeAhcOASYnLgQ2NyMiJj0BNDYzISABMhYVAxEABREEBoA1S0s1TDT%2BX%2F51OkIEJhQGEjEvJh2lrC4HLRMbAwoRekJeXkIB4AGzAc00TID%2Bdv6KAXkDgEtqS%2F6ANEwBWyETXmsnIUEzOykeOjIbKheBPHZUcTZeQsBCXgGATDT8JAO6%2FtIp%2FvIqAAAAAwBA%2FwAGwAYAAAsAGQBBAAAENCMiJjU0IhUUFjMBIQARNC4CIg4CFRABFAYjIRQGIiY1ISImNT4ENTQSNyY1NDYyFhUUBxYSFRQeAwOQEDtVIGdJ%2FXYFFP72MFqZuplaMATATDT%2BQJbUlv5ANEwyUlg9J%2Bq%2BCDhQOAi%2B6ic9WFKwIFU7EBBJZwEwASwCFDNsYj8%2FYmwz%2Fez%2B1DRMapaWakw0KlyTqvKLmAEFHBMUKDg4KBQTHP77mIvyqpNcAAAAAQAC%2F4AF%2FgV9AEkAAAEXFgcGDwEXFgcGLwEHBgcGIyIvAQcGJyYvAQcGJyY%2FAScmJyY%2FAScmNzY%2FAScmNzYfATc2NzYfATc2FxYfATc2FxYPARcWFxYHBWCKHgoMKLw1DB8dKbowCikMBx8Uh4ccKikKMLopHR8MNbwoDAoeiooeCgwovDUMHx0pujAKKSkdh4cdKSkKMLopHR8MNbwoDAoeAoCHHCopCjC6KR0fDDW8KAwCFoqKHgoLKbw1DB8dKbowCikqHIeHHCopCjC6KR0fDDW8KQoMH4uLHgsKKbw1DB8dKbowCikqHAADAAD%2FgAcABYAABwA1AGgAACQ0JiIGFBYyATQmIyE0PgI1NCYjIgcGBwYHBgcGKwERMzIeATMyNTQnPgE0JzY1NCYnITI2NxQGKwEGBxYVFAcWBiMiJyYjISImNRE0NjMhMj4FNzY3PgQzMhYVFAchMhYBACY0JiY0BaZOMv3AHiQeWUcYQhgNKEhHHkVHICBIvsVRvQUeIxI1FA8BSzRMgJdpqQQhAzwBrI2FvaQ7%2FuA1S0s1ASAKFxgVGw4YAkEjDSgiLz8mfaMWAXZomKY0JiY0JgKAM00UOTVTK0M9iywVQFFRGTn9gEBApxoeEElKIDJFGT0RTDVpmD45FRZlTYuhRTtLNQKANUsJExEcDxwDSjcVUj5AI4Z6RDyYAAADAAD%2FgAcABYAANwA%2FAHMAACUzESMiLgInLgInJicmJy4EIyIGFRQeAhUhIgYVFBYzIQ4BFRQXBhQWFwYVFBYzMj4BJDQmIgYUFjITERQGIyEiBwYjIiY%2FASY1NDcmJyMiJjU0NjMhJjU0NjMyHgMXFhceBjMhMhYFYCAgI0E8KB0CAwUCSCgOGAETEhYVCEdZHiQe%2FcAyTkw0AUsPFDUSIx4EYVdUxr4BaCY0JiY0pks1%2FuA7pL5%2FjrABAT0DIQSpaZeYaAF2FqN9Jj8vIigNI0ECGA4bFRgXCgEgNUuAAoAYMiohAwMGAlFAFi4DJyEmFz1DK1M1ORRNMzRMET0ZRTIgSkkQGCBVUkBAJjQmJjQmAoD9gDVLO0WbjAVMZhYVOT6YaWeYPER6hiNAPlIVN0oDHA8cERMJSwAAAwAA%2FwAGAAYAAAcANQBoAAAENCYiBhQWMhM0IyIHLgEiByYjIgYHETQmIyIGFREiLgIjIgYVFBcWFxYXFhcWHQEhNTQ%2BATcUBwYVERQGIyEiJjURNC4FJyYnLgQ1NDYzMhcRNDYzMhYdARYXNjMyFzYWBQAmNCYmNKanGh4QSUogMkUZPRFMNDNNFDk1UytDPYssFUBRURk5AoBAQIBFO0s1%2FYA1SwkTERwPHANKNxVSPkAjhnpEPJhnaZg%2BORUWZU2LoVo0JiY0JgM8vQUeIxI1FA8BSzRMTjL9wB4kHllHGEIYDShIRx5FRyAgSL7FVoW9pDv%2B4DVLSzUBIAoXGBUbDhgCQSMNKCIvPyZ9oxYBdmiYl2mpBCEDPAGsAAAAAwAA%2FwAGAAYAADQAPABwAAABNC4BPQEhFRQOAgcGBwYHBgcOBBUUFjMyPgIzERQWMzI2NREWMzI3FjI2NxYzMjYCNCYiBhQWMgEUBi8BBiMiJwYHFRQGIyImNREGIyImNTQ%2BAzc2Nz4GNRE0NjMhMhYVERQXFgWAQED9gBgyKiEJBVFAFi4DJyEmFz1DK1M1ORRNMzRMLjlFMiBKSRAYIFVSgCY0JiY0ASabjAVMZhYVNkGYaWeYNkp5hyNAPlIVN0oDHA8cERMJSzUCgDVLO0UCQFTGvkggICNBPCgdCARIKA4YARMSFhUIR1keJB79wDJOTDQBSyM1EiMeBGEDPTQmJjQm%2FUSOsAEBPQMeB6lpl5hoAXYWo30mPy8iKA0jQQIYDhsVGBcKASA1S0s1%2FuA7pL4AAAAAAgAA%2F4AGAAWAAB8AKwAAATU0JiMhNzY0LwEmIgcBBwYUHwEBFjI%2FATY0LwEhMjYAEAIEICQCEBIkIAQFACYa%2Fgq9ExNbEjYS%2FpZbEhJbAWoSNhJbEhK9AfYaJgEAzv6f%2Fl7%2Bn87OAWEBogFhAkCAGia9EzQTWxIS%2FpZbEjYSW%2F6WEhJbEjYSvSYBK%2F5e%2Fp%2FOzgFhAaIBYc7OAAAAAgAA%2F4AGAAWAAB8AKwAAADQvAQEmIg8BBhQfASEiBh0BFBYzIQcGFB8BFjI3ATckEAIEICQCEBIkIAQFBRJb%2FpYSNhJbEhK9%2FgoaJiYaAfa9ExNbEjYSAWpbAQ3O%2Fp%2F%2BXv6fzs4BYQGiAWECZTYSWwFqEhJbEjYSvSYagBomvRM0E1sSEgFqW%2F7%2BXv6fzs4BYQGiAWHOzgACAAD%2FgAYABYAAHwArAAAANCcBJyYiDwEBBhQfARYyPwERFBY7ATI2NREXFjI%2FASQQAgQgJAIQEiQgBAUEEv6WWxI2Elv%2BlhISWxI2Er0mGoAaJr0TNBNbAQ7O%2Fp%2F%2BXv6fzs4BYQGiAWECZjYSAWpbEhJb%2FpYSNhJbEhK9%2FgoaJiYaAfa9ExNb%2Ff5e%2Fp%2FOzgFhAaIBYc7OAAIAAP%2BABgAFgAAfACsAAAA0LwEmIg8BETQmKwEiBhURJyYiDwEGFBcBFxYyPwEBABACBCAkAhASJCAEBQQSWxI2Er0mGoAaJr0TNBNbEhIBalsSNhJbAWoBDs7%2Bn%2F5e%2Fp%2FOzgFhAaIBYQJkNhJbEhK9AfYaJiYa%2Fgq9ExNbEjYS%2FpZbEhJbAWoA%2F%2F5e%2Fp%2FOzgFhAaIBYc7OAAAAAAMAAP%2BABgAFgAALAdgCGAAAACAEEhACBCAkAhASAQ4BBzI%2BATc2NzY3NhcmNjc%2BAT8BBiYnFAc0JgYnLgInLgEnLgMiDgEjJg4CBw4BBzYnJgc2JiczLgInLgEHBh4BFRYGFRQWBw4BBwYWFxYOAg8BBiYnJicmByYnJgc2JyYHPgE1Njc%2BAiMWNz4BNzYeATMWNicWJyYnJgcGFyYOAScuASciBzYmJzYnLgEHDgEeAhcWBw4CBwYWBy4BJxYvASIGJicmNzYXLgEnBgcWNz4BNzYXNxYXJgcGBxYHLgInIgcGBxYXHgI3Fgc2FxYXFgcuAQcGFjciBhQHFwYWNwYXFhceAhceARcGFgciBiMeARceAjc2JyYnLgEnMh4CBwYeAhceASMyFhceARceAxceARcWMjY3NhYXFjcGHgIXHgEXNjcGFjc2NQYnNC4CNjMyNiYnLgEnBiYnFAYVIic%2BATc%2BAyYHBgcOAgcGJicuATU0PgEnPgE3PgEWNjcmJyYjFjYXFjc0JjcWNx4BFx4CNjcWFxYXFj4BJi8BNDUnLgE2Nz4CNzYnMjciLgEjNic%2BATcWNzYnPgE3FjY0Nz4BPwE2IxY3Nic2Jic2Fjc2JyYDNjcuAScmJzYuAicuAwYjBw4DFyYnLgIGBw4BByY2JyYOBAcOAQcuATUeARcWBwYHBhcUBhcUAi8BogFhzs7%2Bn%2F5e%2Fp%2FOzgNEAg8GAgUFAQYQDiYiEQIXAwMYAwIMCwEGCQ4CCgoGAQIPAgEDAwUGCAcBAwYDBgIDCwMPEAoGCQMHBQEPFAMINAcFAQcBDRwEAxoDBQcHAgEGBQQDCxMEBwkXBgUkGSEGBgcMAwIDCQEMBwMjDwUNBAkKEwUOAwkMCQUDDA8ICgEREAgBCQUICAMcChMbBxsGBQELCg0CDgYCDQoBAwYFBQgDByAKBBgRBQQEAQMEDgMuMAYGBRACIggFDgYHFxQCBwIEDw4IEAaSWQcFBAIDCgkGASsTAgMNARABAwcHBwUBAgMRDQ0hBgIDEgwEBAwIAhcBAQMBAxkDAQIEBgIaDwIDBQICCAkGAQMKDhQCBhAICRYGBQYCAg0MFAMFGwgKDBEFDxwHJBMCBQsHAgUaBQYBAxQIDh8SBQMCAgQJAgYBARQCBRYFAw0CAQMCAQkGAgsMEwcBBAYGByIHDRMFAQYDDAQCBQQEAQEDAwEHKwYPBwUCBRgDGQUDCAMHBQoCCwgHCAEBAQEBDwcKCgEOEQQVBgcEAQgHAQkHBQUFCQwHBgUfAwcCAwQWAhEDAxINChADDAkDEQIPFhG9zpEDEwMSBgEHCRADAgoECwYHAwMFBgIBFQ8FDAkLBgUCAQcOBQMPCQ4EDQIDBgICEwIEAwcTGwIEEBABBYDO%2Fp%2F%2BXv6fzs4BYQGiAWH%2BxQERAQoMAQcIBgYIEwIWAQIFBRYBEA0CBgcCBAEDCRgDBQsFAgcGBQoKAgEBBQECAgEFBgQBBBAGBAkIAgUJBAYJEwMGDgUHEQ0IEAQIFQYCBAUDAgIFFg8ZBQgJDQ0JBQEODwMGFwINCgEPDAQPBRgFBgEKARgIARIHAgQJBAQBFwwLARkBDwgOAQwPBAIFBwkHBAQBCgQBBQQCBBQEBRkECQMBBAIHCAwEAgMNAg8aAQICCQEOBwUQCQQDBgYMBgMOCAEBUI4HAQEQBgYICwEcEQQLBwIOAwUbASAnBAEMLQMDKAgBAgsJBgUjBgYcCQIHDgYDDggCFCoZBAUVBAMEBAEHFRAWAgYbFAoIJAYHDQYKAgIRAwQFAQIiBBMIAQ0SCwMGEgYEBQgYAgMdDyEBCQgJBgcSBAgYAwkCCAEJAgEDHQgEEA0MBwEBEwMPCAMDAgQIKhAKIREQAg8DAQEBBAQBAgMDCQYLDQERBRsSAwQDAgcCAwUOCigEAwIRCwcICQkIAxITCQEFCAQTEAkGBAULAxACDAoICAcHBgIIEAQFCAELBAINCwkGBwIBAQIKBgX8giSZAwMCBwEHDAYKAgIIAwYCAQEDAwMBEQUBCQUCBgUUAwUZBgYDBgsCCQMEEAMEBQMKMg0fERkPFgQHGwgGAAADABX%2FFQZ%2BBYAABwAVAC8AACQ0JiIGFBYyCQEGIyIvASY1NDcBHgEBFAcOASMiABAAMzIWFxYUBwUVFz4CMzIWAYAmNCYmNAKq%2FVYlNTQnaiYmAqknlwLcFy%2Frjbn%2B%2BQEHuTp%2FLBAQ%2FtvBBZR7CQ8RJjQmJjQmAeT9ViUlbCQ2NSYCqWKXAYwnQ4anAQcBcgEHIR4LIgup4GsDW0cUAAAABgAAAAAHAAWAAAMABwALABsAKwA7AAAlITUhASE1IQEhNSEBERQGIyEiJjURNDYzITIWGQEUBiMhIiY1ETQ2MyEyFhkBFAYjISImNRE0NjMhMhYEAAKA%2FYD%2BgAQA%2FAACgAGA%2FoACACYa%2BYAaJiYaBoAaJiYa%2BYAaJiYaBoAaJiYa%2BYAaJiYaBoAaJoCAAYCAAYCA%2FED%2FABomJhoBABomJgHm%2FwAaJiYaAQAaJiYB5v8AGiYmGgEAGiYmAAABAAX%2FgAV7BQAAFQAAARYHAREUBwYjIicBJjURASY3NjMhMgV7ER%2F%2BEycNDBsS%2FwAT%2FhMfEREqBQAqBNkpHf4T%2FRoqEQUTAQATGgHmAe0dKScAAAAEAAAAAAcABgAAAwAXABsALwAAASE1IQERFAYjISImNREhFRQWMyEyNj0BIxUhNQERIRE0NjMhNTQ2MyEyFh0BITIWAoACAP4ABIBeQvpAQl4CoCYaAUAaJmD%2FAAQA%2BQBeQgFgOCgCQCg4AWBCXgUAgP0A%2FiBCXl5CAeCgGiYmGqCAgAHg%2FoABgEJeoCg4OCigXgAAAQAA%2F4AGAAWAAEcAAAkCNzYXFhURFAYjISInJj8BCQEXFgcGIyEiJjURNDc2HwEJAQcGIyInJjURNDYzITIXFg8BCQEnJjc2MyEyFhURFAcGIyInBQP%2BnQFjkB0pJyYa%2FkAqEREfkP6d%2Fp2QHxERKv5AGiYoJx6QAWP%2BnZATGgwMKCYaAcAqEREfkAFjAWOQHxERKgHAGiYnDQwaEwPj%2Fp3%2BnZAfEREq%2FkAaJignHpABY%2F6dkB4nKCYaAcAqEREfkAFjAWOQEwURKgHAGiYoJx6Q%2Fp0BY5AeJygmGv5AKhEFEwAABgAA%2FwAHgAYAABEAMQA5AEEAUwBbAAABBgcjIiY1EDMyHgEzMjcGFRQBFAYjISImNTQ%2BBTMyHgIyPgIzMh4FABQGIiY0NjIAEAYgJhA2IAEUBisBJic2NTQnFjMyPgEzMgIUBiImNDYyAlGiZ4ZScHwGS3g7Q0IFBICSefyWeZIHFSA2RmU9CkJQhoiGUEIKPWVGNiAVB%2FwAltSWltQDVuH%2BwuHhAT4DIXBShmeiUQVCQzt4SwZ8gJbUlpbUAoAFe1FOAWEqKxclHYv9DniLi3g1ZXVkX0MoKzUrKzUrKENfZHVlBTLUlpbUlv4f%2FsLh4QE%2B4f2fTlF7BXWLHSUXKyoBatSWltSWAAAAAAMAEP%2BQBnAF8AAhAEMAaQAAATQvASYjIgceBBUUBiMiLgMnBhUUHwEWMzI%2FATYBNC8BJiMiDwEGFRQfARYzMjcuBDU0NjMyHgMXNgAUDwEGIyIvASY1NDcnBiMiLwEmND8BNjMyHwEWFRQHFzYzMh8BBbAc0BwoKh4DIAsTBzgoDxkaDB8DIRzOGykoHJMc%2FUEczhwoJx2THBzQGykqHgMgCxMHOCgPGRoMHwMhA39Vk1N4eVPOU1hYVnp4VNBUVZNTeHlTzlNYWFZ6eFTQAUAoHNAcIAMfDBoZDyg4BxMLIAMfKigczxsakhwC6CgczxwbkhwnKBzQGx8DHwwaGQ8oOAcTCyADH%2F3h8FOSU1XPU3h7VlhYVNBU8FOSU1XPU3h7VlhYVNAAAQAAAAAHgAWAABsAAAEUBiMhIgA1NDY3JjU0ADMyBBc2MzIWFRQHHgEHgOGf%2B8C5%2FvmOdAIBLNSeAQE7RmBqlimBqAGAn%2BEBB7mE2zYcD9QBLLCOPpZqSz8e0QACAHP%2FgAYNBYAAFwAhAAAlFgYjISImNwERIyImNDYzITIWFAYrAREFASEBJzURIxEVBfc4RWr7gGpFOAH3QBomJhoCABomJhpA%2Fuz%2B8ALI%2FvAUgFhZf39ZAxkBjyY0JiY0Jv5xRP5TAa0fJQGP%2FnElAAAAAAcAAf%2BABwAFAAAHAE4AXABqAHgAhgCMAAAAMhYUBiImNAUBFgcGDwEGIyInAQcGBxYHDgEHBiMiJyY3PgE3NjMyFzY%2FAScmJwYjIicuAScmNjc2MzIXHgEXFgcWHwEBNjMyHwEWFxYHBTYmJyYjIgcGFhcWMzIDPgEnJiMiBw4BFxYzMgEXNTQ%2FAScHDgEHDgEHHwEBJwEVBxcWFx4BHwEBNwEHBgcDpjQmJjQmAWwB%2BxwDBR6ADRARDv1ObggEDgQHYlOEkYhWWgsHYlKEklNECQ16eg0JRFOShFJiBwUpK1WJkYRTYgcEDgQIbgKyDhEQDYAeBQMc%2B1wuMlFcZEonLjJRXGRKLlEyLidKZFxRMi4nSmQBDmAhDk8aAw4FAgQB12AC4ID9AKAJAgUEDgQaA2CA%2FfixAgsCgCY0JiY0Gv5yFCQjEEAHCAGDQgQBMTBNjTVUTlR7TI41VB8NCUlJCQ0fVDWOTDtsJ09UNI5NMDEBBEIBgwgHQBAjJBSKKoQzOyQqhDM7%2FTszhCokOzOEKiQCoDoLJBQILxoDEAQCAwHpIAJAQP5RcWAIAgQEEAQa%2FsBAAZiKAwQAAAUAAP8ABwAGAAAfACIAJQAzADwAAAEyFhURFAYjISImNREhIiY1ETQ2NwE%2BATMhMhYVETYzBwEhCQEhEwERIREUBiMhESERNDYBESERFAYjIREGoCg4OCj8QCg4%2FeAoOCgcAZgcYCgBoCg4RDyA%2FtUBK%2F2A%2FtUBK8QBPP6AOCj%2BYAIAKAPY%2FoA4KP5gBIA4KPtAKDg4KAEgOCgCoChgHAGYHCg4KP64KNX%2B1QKr%2FtX%2BpAE8AaD%2BYCg4%2FYABAChg%2FPgEgP5gKDj9gAAAAAEABP%2BEBXwFfAA%2FAAAlFAYjIicBJjU0NjMyFwEWFRQGIyInASYjIgYVFBcBFjMyNjU0JwEmIyIGFRQXARYVFAYjIicBJjU0NjMyFwEWBXyedYdk%2FPdx3J%2BecwJdCj0QDQr9ok9mapJMAwg%2FUkBUP%2F27GiIdJhkBmgo%2BEAwK%2FmY%2FclJYPQJFZJd1nmQDCHOcn95x%2FaIKDBA9CgJfTZZqaUz89z9UQFI%2FAkUYJh0gG%2F5mCgwQPgoBmj1YUnI%2F%2FbtiAAQAAP%2BABgAFgAADACEAMQBFAAApAREhATMRNCYnAS4BIxEUBiMhIiY1ESMRMxE0NjMhMhYVARE0JisBIgYVERQWOwEyNgURFAYjISImNRE0NjMhMhYXAR4BAYADAP0AA4CAFAr%2B5wowDzgo%2FcAoOICAOCgDQCg4%2FoATDcANExMNwA0TAoA4KPrAKDg4KAOgKGAcARgcKAGA%2FoADgA4xCgEZChT%2BYCg4OCgBoPsAAaAoODgoAgABQA0TEw3%2BwA0TExP8YCg4OCgFQCg4KBz%2B6BxgAAAAAQAA%2F4AGAAWAAA8AAAERFAYjISImNRE0NjMhMhYGAKl3%2FEB3qal3A8B3qQRg%2FEB3qal3A8B3qakAAAAAAwAAAAAGAAUAAA8AHwAvAAAlFRQGIyEiJj0BNDYzITIWERUUBiMhIiY9ATQ2MyEyFhEVFAYjISImPQE0NjMhMhYGACYa%2BoAaJiYaBYAaJiYa%2BoAaJiYaBYAaJiYa%2BoAaJiYaBYAaJsCAGiYmGoAaJiYB5oAaJiYagBomJgHmgBomJhqAGiYmAAYAAP%2FABwAFQAAHAA8AHwAnADcARwAAJBQGIiY0NjISFAYiJjQ2MgEVFAYjISImPQE0NjMhMhYAFAYiJjQ2MgEVFAYjISImPQE0NjMhMhYRFRQGIyEiJj0BNDYzITIWAYBwoHBwoHBwoHBwoAXwEw37QA0TEw0EwA0T%2BoBwoHBwoAXwEw37QA0TEw0EwA0TEw37QA0TEw0EwA0T0KBwcKBwAZCgcHCgcP2gwA0TEw3ADRMTA%2BOgcHCgcP2gwA0TEw3ADRMTAfPADRMTDcANExMAAAAABgAP%2FwAHAAX3AB4APABMAFwAbAB8AAAFFAYjIic3FjMyNjU0Byc%2BAjc1IgYjFSM1IRUHHgETFSEmNTQ%2BAzU0JiMiByc%2BATMyFhUUDgIHMzUBFRQGIyEiJj0BNDYzITIWARUhNTM0Nj0BIwYHJzczEQEVFAYjISImPQE0NjMhMhYRFRQGIyEiJj0BNDYzITIWAX1tUWpCOTE5HStpGggxJBMQQRBqAU1fMzwC%2FpYGL0JCLx0ZLiNVGF86SWREUkUBfwXqEw37QA0TEg4EwA0T%2BoD%2BsWsBAggqR4hqBewTDftADRMSDgTADRMTDftADRMTDQTADRNUUFxCWC0dHEAIOApDKRIBAjWYWHMMSgJAnyQSM1Q0KywXGRs6OzM5U0cyUy43GTz%2BwcANExMNwA4SEwN2Y2MpoigMESVMf%2F5s%2Fn3ADRMTDcAOEhMB88ANExMNwA0TEwAAAAADAAD%2FgAcABYAADwA1AGUAAAEyFh0BFAYjISImPQE0NjMlJicmNTQ3NiEyFxYXFhcWFRQPAS8BJicmIyIHBhUUFxYXFhcWFwMhFhUUBwYHBgcGBwYjIi8BJicmPQE0JyY%2FATU3HgIXFhcWFxYzMjc2NzY1NCcmBuAOEhIO%2BUAOEhIOAcMcFzCGhQEEMnVCbwoLDgUMVA4yNVh6ckRDQkLVRWg6JewBmwcpFzAlSFBJUHtyUYw5DwgCAQECZg8eDwUjLSs%2BO0lAS00tL1EiAoASDkAOEhIOQA4SQCMtYVu1gH8TDCQmUHs8EhsDBgKVOFs7OlhJQ0M%2BFC4cGP8AJzVvZTcxIy4wEhUXKBAMCA4NbDAeJiUsAiJKJgg5JSQVFhsaPD1EVEkdAAIAAP%2BABgAFgABjAHMAABMmLwE2MzIXFjMyNzY3MjcHFxUGIyIHBhUUFhUXExYXFhcWMzI3Njc2NzY3NjU0LgEvASYnJg8BJzczFxY3FxYVFAcGBwYHBhUUFhUWExYHBgcGBwYHBiMiJyYnJicmNRE0JyYBNTQmIyEiBh0BFBYzITI2MCUIAw0bPDSEIlZSdB44HgECPEA8Ew0BAQ4GLSM9WFloVzgrMBEkERUHDwYEBRMiK2QOAlTNTHgSBgQtJ0kGDwMIDgYVDxomSktrbZKndXc8PRYQERkFVhIO%2BkAOEhIOBcAOEgUhAgJYAQQHAwQBAg5ACQkZDnYNJwbl%2Fuh8TjshLxwSISQcODpJnE9ik1Y7QxUjAQIDVgoDDQImDQcYDAELBg8aBygLE%2F6Hw21MLkE6OSAhLi9LTHdQnQFNvBkk%2BoJADhISDkAOEhIAAAoAAAAABoAFgAAPAB8ALwA%2FAE8AXwBvAH8AjwCfAAAlNTQmIyEiBh0BFBYzITI2ETU0JiMhIgYdARQWMyEyNgE1NCYjISIGHQEUFjMhMjYBNTQmIyEiBh0BFBYzITI2ATU0JiMhIgYdARQWMyEyNgE1NCYjISIGHQEUFjMhMjYBNTQmIyEiBh0BFBYzITI2ATU0JiMhIgYdARQWMyEyNhE1NCYjISIGHQEUFjMhMjYTERQGIyEiJjURNDYzITIWAgASDv7ADhISDgFADhISDv7ADhISDgFADhICABIO%2FsAOEhIOAUAOEv4AEg7%2BwA4SEg4BQA4SAgASDv7ADhISDgFADhICABIO%2FsAOEhIOAUAOEv4AEg7%2BwA4SEg4BQA4SAgASDv7ADhISDgFADhISDv7ADhISDgFADhKAXkL6wEJeXkIFQEJeoMAOEhIOwA4SEgGOwA4SEg7ADhIS%2Fo7ADhISDsAOEhIDDsAOEhIOwA4SEv6OwA4SEg7ADhIS%2Fo7ADhISDsAOEhIDDsAOEhIOwA4SEv6OwA4SEg7ADhISAY7ADhISDsAOEhIBTvvAQl5eQgRAQl5eAAAABgAb%2F5sGgAYAAAMAEwAbACMAKwAzAAAJAScBJBQHAQYiLwEmNDcBNjIfASUXDwEvAT8BARcPAS8BPwEBFw8BLwE%2FAQEXDwEvAT8BBKYBJWv%2B2wIqEvr6EjYSxhISBQYSNhLG%2BstiYh4eYmIeAXzExDw8xMQ8A95iYh4eYmIe%2FZ5iYh4eYmIeA7sBJWv%2B29U2Evr6EhLGEjYSBQYSEsaRHh5iYh4eYv78PDzExDw8xP1eHh5iYh4eYgIeHh5iYh4eYgAAAAQAQP%2BABwAFAAAHABAAGABNAAAkNCYiBhQWMgEhESMiDwEGFQA0JiIGFBYyAREUDgQmIxQGIiY1IRQGIiY1IyIGLgQ1NDYzETQmPgM%2FAT4BOwE1NDYzITIWAoBMaExMaP7MAYCeDQnDCQUATGhMTGgBTAgTDiEMJwOW1Jb%2BgJbUlkADJwwhDhMIJhoBAQQJEw3GEz8boCYaBAAaJkxoTExoTAKAAQAJwwkN%2Fa5oTExoTATA%2FAAPFw4JAwEBapaWamqWlmoBAQMJDhcPGiYBQAg2Fi8bIg3GExrAGiYmAAAAAQAA%2F4AGAAWAAEoAAAAQAgQjIic2NzY3HgEzMj4BNTQuASMiDgMVFBYXFjc%2BATc2JyY1NDYzMhYVFAYjIiY3PgI1NCYjIgYVFBcDBhcmAjU0EiQgBAYAzv6f0W9rOxMJLRRqPXm%2BaHfijmm2f1srUE0eCAIMAgYRM9Gpl6mJaz1KDgglFzYyPlYZYxEEzv7OAWEBogFhA1H%2BXv6fziBdRyKxJzmJ8JZyyH46YH2GQ2ieIAwgBzAGFxQ9WpfZpIOq7lc9I3VZHzJCclVJMf5eRmtbAXzp0QFhzs4AAAEAAP%2BABgAFgABMAAABMhYVERQGIyE2NzY3HgEzMhI1NC4CIyIOAxUUFhcWNjc2NzYnJjU0NjMyFhUUBiMiJjc%2BAjU0JiMiBhUUFwMGFyMiJjURNDYzBOB3qal3%2FStVFwksFWk8teVGe7ZqaLV9WitPTQ0VBAoFBhEyz6eVp4dqPEoOCCUWNTE9VRhiGBG3d6mpdwWAqXf8QHepelgiryc4ASfiVJ15STlge4VCZpwgBQoOLBEXEz5YltWigajsVzwidVcfMUFxU0gx%2FmJkmql3A8B3qQAAAAMAAP%2BABgAFgAAbACcANwAAATQnIRUzDgMjIiY0NjMyFzcmIyIGEBYzMjYlMzUjNSMVIxUzFTMBERQGIyEiJjURNDYzITIWA5UG%2FpbZAxswVTZjjIxjXD1obJWg4OCgpcsBWW1tbm5ubgESqXf8QHepqXcDwHepAncaJoQYNDYjjsiOO2Vk4f7C4dJ3bm5ubm4ChfxAd6mpdwPAd6mpAAACAAD%2FowkABV0AIwAvAAABFAIEIyIkJgIQEjYkMyAXByYjIg4BFB4BMzI%2BAzchNSEWJRUjFSM1IzUzNTMVBZ2u%2Fr7Qlf7wxHR0xAEQlQEezcd1r3vRenrRe1OLWkMfBv5gArQMA2PR0tHR0gJv0P67t3TEARABKgEQxHTAv3F81fzVfC5FWE4j%2FD8%2F0tHR0tHRAAAABAAAAAAHgAUAAAwAHAAsADwAAAEhNSMRIwcXNjczESMkFA4CIi4CND4CMh4BAREiJjUhFAYjETIWFSE0NhMRFAYjISImNRE0NjMhMhYDAAGAgHKUTSoNAoACACpNfpZ%2BTSoqTX6Wfk0CKmqW%2B4CWamqWBICW6iYa%2BQAaJiYaBwAaJgGAYAHAiVAlFP7g5oyQfE5OfJCMkHxOTnz%2BKgIAlmpqlv4AlmpqlgNA%2B4AaJiYaBIAaJiYAAAEAAAFABAADgAANAAAAFAcBBiInASY0NjMhMgQAE%2F5AEzQT%2FkATJhoDgBoDWjQT%2FkATEwHAEzQmAAAAAAEAAAEABAADQAANAAAAFAYjISImNDcBNjIXAQQAJhr8gBomEwHAEzQTAcABWjQmJjQTAcATE%2F5AAAAAAAEAQACAAoAEgAANAAABERQGIicBJjQ3ATYyFgKAJjQT%2FkATEwHAEzQmBED8gBomEwHAEzQTAcATJgAAAAEAAACAAkAEgAANAAAAFAcBBiImNRE0NjIXAQJAE%2F5AEzQmJjQTAcACmjQT%2FkATJhoDgBomE%2F5AAAAAAAMAAP%2BABoAFgAAGAA0AHQAAMyERIREUFiURIREhMjYTERQGIyEiJjURNDYzITIWoAJg%2FYATBW39gAJgDROAXkL6wEJeXkIFQEJeBID7oA0TIARg%2B4ATBM37QEJeXkIEwEJeXgACAAD%2FwAQABUAADQAbAAAAFAcBBiInASY0NjMhMhIUBiMhIiY0NwE2MhcBBAAT%2FkATNBP%2BQBMmGgOAGiYmGvyAGiYTAcATNBMBwAHaNBP%2BQBMTAcATNCYBWjQmJjQTAcATE%2F5AAAAAAAEAAP%2FABAACAAANAAAAFAcBBiInASY0NjMhMgQAE%2F5AEzQT%2FkATJhoDgBoB2jQT%2FkATEwHAEzQmAAAAAAEAAAMABAAFQAANAAAAFAYjISImNDcBNjIXAQQAJhr8gBomEwHAEzQTAcADWjQmJjQTAcATE%2F5AAAAAAAIAAP%2BABwAFAAAaADoAAAERFAYjISImNREWFwQXHgI7AjI%2BATc2JTYTFAYHAAcOBCsCIi4DJyYkJy4BNTQ2MyEyFgcAXkL6QEJeLDkBaoc5R3YzAQEzdkc5qgFIOStiSf6IXApBKz02FwEBFzY9K0EKW%2F6qIj5uU00FwEFfAzr85kJeXkIDGjEm9mMqLzExLyp73icBVk%2BQM%2F77QAcvHSQSEiQdLwdA7Rgqkz9OaF4AAwAA%2F7AGAAVsAAMADwArAAABESERARYGKwEiJjU0NjIWAREhETQmIyIGBwYVESESEC8BIRUjPgMzMhYBXf62AV8BZ1QCUmRnpmQEj%2F63UVY%2FVRUL%2FrcCAQEBSQIUKkdnP6vQA4%2F8IQPfATJJYmJJSmFh%2FN39yAISaXdFMx4z%2FdcBjwHwMDCQIDA4H%2BMAAAAAAQAA%2F4AGAAWAADQAAAAQAgYEIyIkJyY2PwE2MxYXHgEzMj4CNC4CIyIGBxcWBwYjISImNRE0NzYfATYkMzIEFgYAes7%2B5Jys%2FsptBwEIiQoPEAdJ1HdovYpRUYq9aGK0RokfEREq%2FkAaJignHoJrAROTnAEczgMc%2Fsj%2B5M56kYQKGQiKCQIKX2hRir3QvYpRR0KKHicoJhoBwCoRER%2BBZW96zgABACj%2FFQbrBdgAcQAAIRQPAQYjIicBJjU0NwEHBiInHgYVFAcOBSMiJwEmNTQ%2BBDc2MzIeBRcmNDcBNjIXLgY1NDc%2BBTMyFwEWFRQOBAcGIyIuBScWFA8BATYzMhcBFgbrJWsnNDUl%2FpUmK%2F8Afg4oDgIVBBAECAMcAxsLGhIaDSgc%2FmgcCQkWCx4DHiYKEBEKEQYUAg4OAVwOKA4CFQQQBAgDHAMbCxoSGg0oHAGYHAkJFgseAx4mChARChEGFAIODn4BACs1NCcBayU1JWwlJQFsJDY1KwEAfg4OAhQGEQoREAomHgMeCxYJCRwBmBwoDRoSGgsbAxwDCAQQBBUCDigOAVwODgIUBhEKERAKJh4DHgsWCQkc%2FmgcKA0aEhoLGwMcAwgEEAQVAg4oDn7%2FACsl%2FpUnAAAHAAD%2FgAcABQAABwAPACEAKQAxADkASwAAADQmIgYUFjIANCYiBhQWMgETNi4BBgcDDgEHBh4BNjc2JiQ0JiIGFBYyADQmIgYUFjIENCYiBhQWMgEQBwYjISInJhE0EjYkIAQWEgGAS2pLS2oBC0tqS0tqAfdlBhsyLgdlPF4QFFCaihQQLAJiS2pLS2r9y0tqS0tqAgtLaktLagGLjRMj%2BoYjE42O8AFMAWwBTPCOAUtqS0tqSwILaktLakv%2BnwF%2BGi0OGxr%2BggVNPE2KKFBNPHIOaktLaksCy2pLS2pLdWpLS2pL%2FsD%2B%2B94dHd0BBrYBTPCOjvD%2BtAAAAAACAAD%2FAAcABQAAFgA8AAAAIAQGFRQWHwEHBgc2PwEXFjMyJDYQJgQQAgQjIicGBQYHIyImJzUmNiY%2BAjc%2BBTcmAjU0EiQgBARM%2Fmj%2BndGPglcbGC6Yeys5RT3MAWPR0QFR8P5k9EZLxv76MUEFDxgEAwUBCgIMAgcwFSkYHgudtfABnAHoAZwEgIvsiXDLSjJgW1E%2FbCYGCIvsARLsx%2F6k%2FtmrCK9DDggVEQEEEAQPAw4CCDUXOC5IKFkBBpauASerqwAAAwAA%2F4AHAAUAABQAOgBkAAAAIAQGFRQWHwEHNj8BFxYzMiQ2NCYkIAQWEAYEIyInBgcGByMiJicmND4FNz4ENy4BNTQ2AR4EFx4GFAcOAScmJyYnBiMgJxYzMiQ3PgE1NCceARUUBgNZ%2Fs7%2B9p1qYGEjIhwsNU5LmQEKnZ39ngF%2BAUW8vP67v1ZafJokMgMLEwIBAQMCBQMGAQUkEB0VCnyOvAU6ChUdECQFAQYDBQIDAQEDFAwyJJp8Wlb%2B8ck6HqEBKHR9hheBlo4EgGiyZlKYODhUFBMfCg5ossyy6Ins%2FursiRBYKAkHEA0DBwYGBAcDBwEGJhUlKBhI0neL7Pv4GCglFSYGAQcDBwQGBgcDDhABBwkoWBCEBFpUXPCGTUtH1nt40QABAAH%2FAAN8BYAAIQAAARYHAQYjIicuATcTBQYjIicmNxM%2BATMhMhYVFAcDJTYzMgN1Egv95A0dBAoREQTF%2FmoECBINEgXJBBgQAUgTGgWrAYwIBBMDyhQY%2B3sZAgUcEAMoZQELDxgDOQ4SGREICv4xYgIAAAEAAP%2BABwAFgABVAAABERQGIyEiJjURNDY7ATUhFTMyFhURFAYjISImNRE0NjsBNSEVMzIWFREUBiMhIiY1ETQ2OwE1NDYzITUjIiY1ETQ2MyEyFhURFAYrARUhMhYdATMyFgcAOCj%2BwCg4OChg%2FgBgKDg4KP7AKDg4KGD%2BAGAoODgo%2FsAoODgoYEw0AgBgKDg4KAFAKDg4KGACADRMYCg4ASD%2BwCg4OCgBQCg4wMA4KP7AKDg4KAFAKDjAwDgo%2FsAoODgoAUAoOMA0TMA4KAFAKDg4KP7AKDjATDTAOAAAAwAA%2F4AGgAXAABMATwBZAAABERQGIiY1NDYyFhUUFjI2NRE2MgUUBiMiJy4BIyIGBw4BBwYjIicuAScuASIGBw4BBwYjIicuAScuASMiBgcGIyImNTQ3NgAkMzIEHgEXFgEVJiIHNTQ2MhYDgJjQmCY0Jk5kTiE%2BAyETDQsMMVg6RHgrBxUECxESCwQVByt3iHcrBxUECxIRCwQVByt4RDpYMQwLDRMBLQD%2FAVW%2BjAEN4KUhAf0AKiwqJjQmAsT9vGiYmGgaJiYaMk5OMgJECyYNEwouLko8CiQGEREGJAo8Sko8CiQGEREGJAo8Si4uChMNBQK3ARGIUJPjigIC0mICAmIaJiYABAAA%2FwAHAAYAAAgAGAAbADcAAAUhESEiJjURIQE1NCYjISIGHQEUFjMhMjYBIQkBERQGIyEiJj0BISImNRE0NjMhMhYVERYXAR4BAwADgP5gKDj%2BgAEAEw39QA0TEw0CwA0TAQABK%2F7VAgA4KPxAKDj94Cg4OCgEQCg4FQ8BmBwogAKAOCgBoAEgQA0TEw1ADRMT%2FW0BK%2F5V%2FWAoODgooDgoBUAoODgo%2FrgND%2F5oHGAAAAAAAwAA%2F4AEAAWAABAAKABcAAABFAYiJjU0JiMiJjQ2MzIeARc0LgIiDgIVFBceARcWFzM2Nz4BNzY3FAcOAgcWFRQHFhUUBxYVFAYjDgEiJiciJjU0NyY1NDcmNTQ3LgInJjU0PgIyHgIC4BMaE2w0DRMTDTJjS6BFb4eKh29FRAopCoAN5A2ACikKRIBnLTs8BC8ZGS0NPy4UUF5QFC4%2FDS0ZGS8EPDstZ1mRt763kVkDwA0TEw0uMhMaEyBMNEh8Ty0tT3xIZU8LLAuZkZGZCywLT2WbcTFMczIcNiUbGyU0HRcYLjIsNDQsMi4YFx00JRsbJTYcMnNMMXGbY6txQUFxqwACAAD%2FoAcABOAAGgA0AAABFRQGIyEVFAYjIicBJjU0NwE2MzIWHQEhMhYQFAcBBiMiJj0BISImPQE0NjMhNTQ2MzIXAQcAEw36oBMNDAz%2BwQkJAUAJDg0TBWANEwn%2BwAkODRP6oA0TEw0FYBIODAwBPwFgwA0TwA0TCgFACQ0OCQFACRMNwBMCIRwJ%2FsAJEw3AEw3ADRPADhIK%2FsEAAAAAAgAAAAAHgAWAABkANQAAATQmKwERNCYrASIGFREjIgYVFBcBFjI3ATYFFAYjISIANTQ2NyY1NAAzMgQXNjMyFhUUBx4BBQASDuATDcANE%2BANEwkBYAkcCQFfCgKA4Z%2F7wLn%2B%2BYx2AgEs1JwBAztHX2qWKYKnAmAOEgFgDRMTDf6gEw0OCf6gCQkBXwzUn%2BEBB7mC3DceDdQBLK6QPpZqTD4f0QACAAAAAAeABYAAGQA1AAABNCcBJiIHAQYVFBY7AREUFjsBMjY1ETMyNgEUBiMhIgA1NDY3JjU0ADMyBBc2MzIWFRQHHgEFAAn%2BoAkcCf6hChIO4BMNwA0T4A0TAoDhn%2FvAuf75jHYCASzUnAEDO0dfapYpgqcCoA4JAWAJCf6hDAwOEv6gDRMTDQFgE%2F7tn%2BEBB7mC3DceDdQBLK6QPpZqTD4f0QAAAAADAAD%2FgAWABYAABwBYAGAAACQUBiImNDYyBRQGIyEiJjU0PgM3Bh0BDgEVFBYyNjU0Jic1NDcWIDcWHQEiBh0BBhUUFjI2NTQnNTQ2MhYdAQYVFBYyNjU0JzU0Jic0Ni4CJx4EABAGICYQNiABgCY0JiY0BCaSefyWeZILJTpoRBY6RnCgcEc5GYQBRoQZapYgOFA4IExoTCA4UDggRTsBAQQKCERoOiUL%2FsDh%2FsLh4QE%2B2jQmJjQmfXmKinlEfpZzWw80RMsUZD1QcHBQPWQUyz4faGgfPkCWalkdKig4OCgqHVk0TEw0WR0qKDg4KCodWUR3IgpBHzQqEw9bc5Z%2BA9j%2BwuHhAT7hAAAAAgAA%2F4AFgAWAAAcATQAAADQmIgYUFjI3FAYHERQEICQ9AS4BNRE0NjMyFz4BMzIWFAYjIicRFBYgNjURBiMiJjQ2MzIWFzYzMhYVERQGBxUUFiA2NREuATU0NjIWBQAmNCYmNKZHOf75%2Fo7%2B%2BaTcJhoGChE8IzVLSzUhH7wBCLwfITVLSzUjPBEKBhom3KS8AQi8OUdwoHADJjQmJjQmQD5iFf51n%2BHhn4QU2JACABomAh4kS2pLEv5uapaWagGSEktqSyQeAiYa%2FgCQ2BSEapaWagGLFWI%2BUHBwAAQAAP%2BABwAFgAADAA0AGwAlAAABITUhBREjIiY1ETQ2MyERIREzNTQ2MyEyFh0BBREUBisBETMyFgKAAgD%2BAP6gQFyEhFwEoPwAgDgoAkAoOAIAhFxAQFyEBICAgPsAhFwDQFyE%2BwAFAKAoODgooOD8wFyEBQCEAAIAQP8ABsAGAAALADMAAAQ0IyImNTQiFRQWMwEUBiMhFAYiJjUhIiY1PgQ1NBI3JjU0NjIWFRQHFhIVFB4DA5AQO1UgZ0kDQEw0%2FkCW1Jb%2BQDRMMlJYPSfqvgg4UDgIvuonPVhSsCBVOxAQSWcBMDRMapaWakw0KlyTqvKLmAEFHBMUKDg4KBQTHP77mIvyqpNcAAADAAD%2FgAdABQAABwAPACIAAAA0JisBETMyASEUBiMhIiYAEAYrARUUBiMhIiY1ETQ2MyEyBoBwUEBAUPnwBwCWavsAapYHQOGfQIRc%2FUBchCYaBICfAzCgcP6A%2FcBqlpYECf7C4SBchIRcAuAaJgAAAgAA%2FwAFgAYAAC0AQgAAAREUBgcRFAYrASImNREuATURNDYyFhURFBYyNjURNDYyFhURFBYyNjURNDYyFgURFAYrASImNREjIiY1ETQ2MyEyFgKARzlMNIA0TDlHJjQmJjQmJjQmJjQmJjQmAwBMNIA0TOANE7yEAQAaJgXA%2FYA9ZBT89TRMTDQDCxRkPQKAGiYmGv5gGiYmGgGgGiYmGv5gGiYmGgGgGiYmGvnANExMNAIAEw0DIIS8JgAGAAD%2FAAYABgAAEwAaACMAMwBDAFMAAAEeARURFAYjISImNRE0NjMhMhYXBxEhJicBJgERISImNREhEQE0NjMhMhYdARQGIyEiJjUFMhYdARQGIyEiJj0BNDYzATIWHQEUBiMhIiY9ATQ2MwW8HCg4KPrAKDg4KAOAKGAchAF4Cgz%2BxwwBY%2F5gKDj9AAEAEg4CwA4SEg79QA4SAuAOEhIO%2FUAOEhIOAsAOEhIO%2FUAOEhIOBIQcYCj7gCg4OCgGQCg4KBxE%2FogdDAE5DPoSBAA4KAGg%2BgADYA4SEg5ADhISDqASDkAOEhIOQA4S%2FwASDkAOEhIOQA4SABQAAP8ABYAGAAAPAB8ALwA%2FAE8AXwBvAH8AjwCfAK8AvwDPAN8A7wD%2FAQ8BHwEtAT0AACUVFAYrASImPQE0NjsBMhY1FRQGKwEiJj0BNDY7ATIWBRUUBisBIiY9ATQ2OwEyFiUVFAYrASImPQE0NjsBMhYBFRQGKwEiJj0BNDY7ATIWJRUUBisBIiY9ATQ2OwEyFiUVFAYrASImPQE0NjsBMhYlFRQGKwEiJj0BNDY7ATIWARUUBisBIiY9ATQ2OwEyFiUVFAYrASImPQE0NjsBMhYlFRQGKwEiJj0BNDY7ATIWJRUUBisBIiY9ATQ2OwEyFgEVFAYrASImPQE0NjsBMhYlFRQGKwEiJj0BNDY7ATIWJRUUBisBIiY9ATQ2OwEyFgEVFAYrASImPQE0NjsBMhYlFRQGKwEiJj0BNDY7ATIWBRUUBisBIiY9ATQ2OwEyFgEhESERITU0NjMhMhYVAREUBiMhIiY1ETQ2MyEyFgGAEw1ADRMTDUANExMNQA0TEw1ADRMBABMNQA0TEw1ADRP%2FABMNQA0TEw1ADRMDABMNQA0TEw1ADRP%2FABMNQA0TEw1ADRP%2FABMNQA0TEw1ADRP%2FABMNQA0TEw1ADRMDABMNQA0TEw1ADRP%2FABMNQA0TEw1ADRP%2FABMNQA0TEw1ADRP%2FABMNQA0TEw1ADRMDABMNQA0TEw1ADRP%2FABMNQA0TEw1ADRP%2FABMNQA0TEw1ADRMCABMNQA0TEw1ADRP%2FABMNQA0TEw1ADRMBABMNQA0TEw1ADRP%2FAAGA%2B4ABgBMNAUANEwIAJhr7ABomJhoFABom4EANExMNQA0TE%2FNADRMTDUANExMNQA0TEw1ADRMT80ANExMNQA0TE%2F3zQA0TEw1ADRMT80ANExMNQA0TE%2FNADRMTDUANExPzQA0TEw1ADRMT%2FfNADRMTDUANExPzQA0TEw1ADRMT80ANExMNQA0TE%2FNADRMTDUANExP980ANExMNQA0TE%2FNADRMTDUANExPzQA0TEw1ADRMT%2FvNADRMTDUANExPzQA0TEw1ADRMTDUANExMNQA0TE%2FqTBgD6AOANExMNBWD5gBomJhoGgBomJgANAAD%2FAAWABgAADwAfAC8APwBPAF8AbwB%2FAI8AnwC3ANsA9QAAJRUUBisBIiY9ATQ2OwEyFjUVFAYrASImPQE0NjsBMhYFFRQGKwEiJj0BNDY7ATIWJRUUBisBIiY9ATQ2OwEyFgEVFAYrASImPQE0NjsBMhYlFRQGKwEiJj0BNDY7ATIWJRUUBisBIiY9ATQ2OwEyFgEVFAYrASImPQE0NjsBMhYlFRQGKwEiJj0BNDY7ATIWBRUUBisBIiY9ATQ2OwEyFgEhESEVFAYjISImPQEhESE1NDYzITIWFRkBNCYrASIGHQEjNTQmKwEiBhURFBY7ATI2PQEzFRQWOwEyNiURFAYjISImNRE0NjMhETQ2MyEyFhURITIWAYATDUANExMNQA0TEw1ADRMTDUANEwEAEw1ADRMTDUANE%2F8AEw1ADRMTDUANEwMAEw1ADRMTDUANE%2F8AEw1ADRMTDUANE%2F8AEw1ADRMTDUANEwIAEw1ADRMTDUANE%2F8AEw1ADRMTDUANEwEAEw1ADRMTDUANE%2F8AAYD%2FADgo%2FkAoOP8AAYATDQFADRMTDUANE4ATDUANExMNQA0TgBMNQA0TAgAmGvsAGiYmGgFAOCgBwCg4AUAaJuBADRMTDUANExPzQA0TEw1ADRMTDUANExMNQA0TE%2FNADRMTDUANExP980ANExMNQA0TE%2FNADRMTDUANExPzQA0TEw1ADRMT%2FvNADRMTDUANExPzQA0TEw1ADRMTDUANExMNQA0TE%2FyTBIAgKDg4KCD7gOANExMNA8ABQA0TEw1gYA0TEw3%2BwA0TEw1gYA0TEy37ABomJhoFABomASAoODgo%2FuAmAAUAQP%2BAB4AFgAAHABAAGAA8AGMAACQ0JiIGFBYyASERIwYPAQYHADQmIgYUFjITNTQmKwE1NCYrASIGHQEjIgYdARQWOwEVFBY7ATI2PQEzMjYBERQGKwEUBiImNSEUBiImNSMiJjQ2MxE0Nj8BPgE7ARE0NjMhMhYCgEtqS0tq%2FssBgJ4OCMMHAgUAS2pLS2rLEg7gEg7ADhLgDhISDuASDsAOEuAOEgEAJhrAltSW%2FoCW1JaAGiYmGhoTxhNAGqAmGgSAGiZLaktLaksCgAEAAgfDDAr9rWpLS2pLAyDADhLgDhISDuASDsAOEuAOEhIO4BICLvuAGiZqlpZqapaWaiY0JgGgGkATxhMaAUAaJiYAAAUAAP%2BABwAFgAAjACcAMQA%2FAEkAAAE1NCYrATU0JisBIgYdASMiBh0BFBY7ARUUFjsBMjY9ATMyNgEhNSEFESMiJjURNDYzIREhETM1NDYzITIWHQEFERQGKwERMzIWBQASDuASDsAOEuAOEhIO4BIOwA4S4A4S%2FYACAP4A%2FoAgXISEXATA%2B8CgOCgCQCg4AgCEXCAgXIQBoMAOEuAOEhIO4BIOwA4S4A4SEg7gEgLugID7AIRcA0BchPsABQCgKDg4KKDg%2FMBchAUAhAAAAAABAAAAAAeABIAAOgAAAQYNAQcjATMyFhQGKwM1MxEjByMnNTM1MzUnNTc1IzUjNTczFzMRIzU7AjIWFAYrAQEzFwUEFxYHgAH%2B4f6g4ED%2B20UaJiYaYKBAQKDAYCAggMDAgCAgYMCgQECgYBomJhpFASVA4AFgAQUaAQJAIEAgQP6gCQ4JIAGg4CDAIAgYgBgIIMAg4AGgIAkOCf6gQCA6IwMAAAIAQAAABoAFgAAGABgAAAERIREUFjMBFSE1NyMiJjURJzchNyEXBxECgP8ASzUEgPuAgICf4UAgAeAgA8AgQAKAAYD%2FADVL%2FkDAwMDhnwFAQICAwCD84AACAAD%2FgAYABYAAIwAzAAAlETQmKwEiBhURIRE0JisBIgYVERQWOwEyNjURIREUFjsBMjYBERQGIyEiJjURNDYzITIWBQAmGoAaJv4AJhqAGiYmGoAaJgIAJhqAGiYBAKl3%2FEB3qal3A8B3qcADgBomJhr%2BwAFAGiYmGvyAGiYmGgFA%2FsAaJiYDuvxAd6mpdwPAd6mpAAAAAAIAAP%2BABgAFgAAjADMAAAE1NCYjIRE0JisBIgYVESEiBh0BFBYzIREUFjsBMjY1ESEyNgERFAYjISImNRE0NjMhMhYFACYa%2FsAmGoAaJv7AGiYmGgFAJhqAGiYBQBomAQCpd%2FxAd6mpdwPAd6kCQIAaJgFAGiYmGv7AJhqAGib%2BwBomJhoBQCYCOvxAd6mpdwPAd6mpAAAAAgAtAE0D8wQzABQAKQAAJBQPAQYiJwEmNDcBNjIfARYUBwkBBBQPAQYiJwEmNDcBNjIfARYUBwkBAnMKMgoaCv4uCgoB0goaCjIKCv53AYkBigoyChoK%2Fi4KCgHSChoKMgoK%2FncBia0aCjIKCgHSChoKAdIKCjIKGgr%2Bd%2F53ChoKMgoKAdIKGgoB0goKMgoaCv53%2FncAAAACAA0ATQPTBDMAFAApAAAAFAcBBiIvASY0NwkBJjQ%2FATYyFwEEFAcBBiIvASY0NwkBJjQ%2FATYyFwECUwr%2BLgoaCjIKCgGJ%2FncKCjIKGgoB0gGKCv4uChoKMgoKAYn%2BdwoKMgoaCgHSAk0aCv4uCgoyChoKAYkBiQoaCjIKCv4uChoK%2Fi4KCjIKGgoBiQGJChoKMgoK%2Fi4AAAIATQCNBDMEUwAUACkAACQUDwEGIicJAQYiLwEmNDcBNjIXARIUDwEGIicJAQYiLwEmNDcBNjIXAQQzCjIKGgr%2Bd%2F53ChoKMgoKAdIKGgoB0goKMgoaCv53%2FncKGgoyCgoB0goaCgHS7RoKMgoKAYn%2BdwoKMgoaCgHSCgr%2BLgF2GgoyCgoBif53CgoyChoKAdIKCv4uAAAAAgBNAK0EMwRzABQAKQAAABQHAQYiJwEmND8BNjIXCQE2Mh8BEhQHAQYiJwEmND8BNjIXCQE2Mh8BBDMK%2Fi4KGgr%2BLgoKMgoaCgGJAYkKGgoyCgr%2BLgoaCv4uCgoyChoKAYkBiQoaCjICrRoK%2Fi4KCgHSChoKMgoK%2FncBiQoKMgF2Ggr%2BLgoKAdIKGgoyCgr%2BdwGJCgoyAAABAC0ATQJzBDMAFAAAABQHCQEWFA8BBiInASY0NwE2Mh8BAnMK%2FncBiQoKMgoaCv4uCgoB0goaCjID7RoK%2Fnf%2BdwoaCjIKCgHSChoKAdIKCjIAAAABAA0ATQJTBDMAFAAAABQHAQYiLwEmNDcJASY0PwE2MhcBAlMK%2Fi4KGgoyCgoBif53CgoyChoKAdICTRoK%2Fi4KCjIKGgoBiQGJChoKMgoK%2Fi4AAAABAE0BDQQzA1MAFAAAABQPAQYiJwkBBiIvASY0NwE2MhcBBDMKMgoaCv53%2FncKGgoyCgoB0goaCgHSAW0aCjIKCgGJ%2FncKCjIKGgoB0goK%2Fi4AAAABAE0BLQQzA3MAFAAAABQHAQYiJwEmND8BNjIXCQE2Mh8BBDMK%2Fi4KGgr%2BLgoKMgoaCgGJAYkKGgoyAy0aCv4uCgoB0goaCjIKCv53AYkKCjIAAAACAAD%2FgAeABgAADwAvAAABETQmIyEiBhURFBYzITI2ExEUBiMhFB4BFRQGIyEiJjU0PgE1ISImNRE0NjMhMhYHABMN%2BcANExMNBkANE4BeQv3gICAmGv4AGiYgIP3gQl5eQgZAQl4CIANADRMTDfzADRMTA037wEJeJVE9DRomJhoOPFAmXkIEQEJeXgAAAAAEAAAAAAeABQAADwAfACsAMwAAASImNRE0NjMhMhYVERQGIwERFBYzITI2NRE0JiMhIgYBMxUUBiMhIiY9ATMFMjQrASIUMwGgQl5eQgRAQl5eQvugEw0EQA0TEw37wA0TBWCgXkL5wEJeoANwEBCgEBABAF5CAsBCXl5C%2FUBCXgNg%2FUANExMNAsANExP8U2AoODgoYGAgIAAAAAADAAAAAASABYAABwAXACcAACQ0JiIGFBYyJRE0JiMhIgYVERQWMyEyNhMRFAYjISImNRE0NjMhMhYCgCY0JiY0AaYTDfzADRMTDQNADROAXkL8wEJeXkIDQEJeZjQmJjQm4APADRMTDfxADRMTA837wEJeXkIEQEJeXgAABAAAAAADAAUAAAcAFwAfAC8AACQ0JiIGFBYyJRE0JiMhIgYVERQWMyEyNgI0KwEiFDsBJREUBiMhIiY1ETQ2MyEyFgHQL0IvL0IA%2FxMN%2FgANExMNAgANE8AQoBAQoAEwTDT%2BADRMTDQCADRMX0IvL0Iv8ALADRMTDf1ADRMTA00gICD8ADRMTDQEADRMTAAAAgAA%2F4AGAAWAAAsAFwAAACAOARAeASA%2BARAmBBACBCAkAhASJCAEA5T%2B2PqSkvoBKPqSkgFyzv6f%2Fl7%2Bn87OAWEBogFhBKCS%2Bv7Y%2BpKS%2BgEo%2Br3%2BXv6fzs4BYQGiAWHOzgAAAAIAAAAABoAFgAAhAEMAAAERFAYjISImNRE0PgI7ATIWHQEUBisBIgYdARQWOwEyFgURFAYjISImNRE0PgI7ATIWHQEUBisBIgYdARQWOwEyFgMAcFD%2BgFBwUYq9aEAaJiYaQGqWOCjgUHADgHBQ%2FoBQcFGKvWhAGiYmGkBqljgo4FBwAkD%2BgFBwcFACwGi9ilEmGoAaJpZqICg4cFD%2BgFBwcFACwGi9ilEmGoAaJpZqICg4cAAAAAACAAAAAAaABYAAIQBDAAABERQOAisBIiY9ATQ2OwEyNj0BNCYrASImNRE0NjMhMhYFERQOAisBIiY9ATQ2OwEyNj0BNCYrASImNRE0NjMhMhYDAFGKvWhAGiYmGkBqljgo4FBwcFABgFBwA4BRir1oQBomJhpAapY4KOBQcHBQAYBQcATA%2FUBovYpRJhqAGiaWaiAoOHBQAYBQcHBQ%2FUBovYpRJhqAGiaWaiAoOHBQAYBQcHAAAAAACABA%2F0AGwAYAAAkAEQAZACMAKwAzADsARwAAJBQGIyImNTQ2MgAUBiImNDYyABQGIiY0NjIBFAYjIiY0NjIWABQGIiY0NjIAFAYiJjQ2MgAUBiImNDYyARQGIyImNTQ2MzIWAg5LNTRMS2oCPUtqS0tq%2FYtLaktLagT9TDQ1S0tqS%2Fw8XoReXoQE8EtqS0tq%2FctwoHBwoAKChFxdg4NdXITDaktMNDVL%2FudqS0tqSwJ1aktLakv9jjRMS2pLSwPxhF5ehF79o2pLS2pLApCgcHCgcP5yXYODXVyEhAAAAAABAAD%2FgAYABYAACwAAABACBCAkAhASJCAEBgDO%2Fp%2F%2BXv6fzs4BYQGiAWEDUf5e%2Fp%2FOzgFhAaIBYc7OAAABAAD%2FgAcABcAALAAAARQDDgIHBiMiJjU0NjU2NTQuBSsBERQGIicBJjQ3ATYyFhURMyATFgcAfwMPDAcMEA8RBQUjPmJxmZti4CY0E%2F4AExMCABM0JuACyaI1AaCm%2FuMHIhoJERQPCSMGRDdloHVVNh8M%2FwAaJhMCABM0EwIAEyYa%2FwD%2BbYYABAAA%2F4AGgAUAAAsAFwAxAFgAAAAUDgEiLgE0PgEyFgQUDgEiLgE0PgEyFhc0JiMiBwYiJyYjIgYVFB4DOwEyPgMTFAcOBCMiLgQnJjU0NyY1NDcyFhc2MzIXPgEzFhUUBxYCgBk9VD0ZGT1UPQKZGT1UPRkZPVQ9uYp2KZpHrEeYK3aKQGKShlKoUoaSYkDgPSaHk8GWXE6Ap4qIaiE%2BiBszbKRrk6KUhGmkazMbiAFoUFRERFRQVEREVFBURERUUFRERHx4qBULCxWoeFiDSy0ODi1LgwEIz3xNcDwjCQYTKT5kQXvQ7Z9SWHRmT1QjIFJOZnRXUaAAAAAAAgAAAAAGgAWAABcALAAAJRE0JiMhIiY9ATQmIyEiBhURFBYzITI2ExEUBiMhIiY1ETQ2MyEyFh0BITIWBgA4KP1AKDg4KP7AKDg4KATAKDiAhFz7QFyEhFwBQFyEAqBchOACwCg4OChAKDg4KPxAKDg4Auj9QFyEhFwDwFyEhFwghAAAAwAAAAAHdQWAABEAJwBFAAABNCMhIgYHAQYVFDMhMjY3ATYlITU0JiMhIiY9ATQmIyEiBhURAT4BBRQHAQ4BIyEiJjURNDYzITIWHQEhMhYdATMyFhcWBvU1%2B8AoWxr%2B2hI1BEAoXBkBJhL7iwMAOCj9wCg4OCj%2BwCg4AQAskAU5Lv7ZK5JD%2B8BchIRcAUBchAIgXITANloWDwJdIysf%2FpUYECMsHwFrFrSgKDg4KEAoODgo%2FKsBOzVFoz46%2FpU1RYRcA8BchIRcIIRcoDEuIAAAAAAFAAD%2FgAYABYAAFAAcACQANABAAAABDgEiJicmNjc2FhceATI2Nz4BHgEAFAYiJjQ2MgQUBiImNDYyABAuAiAOAhAeAiA%2BARIQAgQgJAIQEiQgBARuJcr%2ByiUIGBoZLwgZh6iHGQgwMhj%2BCktqS0tqAktLaktLagFLZqvt%2Fvztq2Zmq%2B0BBO2r5s7%2Bn%2F5e%2Fp%2FOzgFhAaIBYQHNeZSUeRkvCAgYGlBjY1AaGBAvAc9qS0tqS0tqS0tqS%2F3%2BAQTtq2Zmq%2B3%2B%2FO2rZmarAkD%2BXv6fzs4BYQGiAWHOzgAABQAA%2F4AGAAWAABQAHAAkADQAQAAAARYOASYnLgEiBgcOAScuATc%2BATIWABQGIiY0NjIEFAYiJjQ2MgAQLgIgDgIQHgIgPgESEAIEICQCEBIkIAQEbggYMjAIGYeohxkILxkaGAglyv7K%2FjdLaktLagJLS2pLS2oBS2ar7f787atmZqvtAQTtq%2BbO%2Fp%2F%2BXv6fzs4BYQGiAWEBMxkvEBgaUGNjUBoYCAgvGXmUlAIJaktLaktLaktLakv9%2FgEE7atmZqvt%2Fvztq2ZmqwJA%2Fl7%2Bn87OAWEBogFhzs4AAAUAAP%2BABgAFgAALABMAGwArADcAAAAUBiMhIiY0NjMhMgAUBiImNDYyBBQGIiY0NjIAEC4CIA4CEB4CID4BEhACBCAkAhASJCAEBIAmGv2AGiYmGgKAGv4mS2pLS2oCS0tqS0tqAUtmq%2B3%2B%2FO2rZmar7QEE7avmzv6f%2Fl7%2Bn87OAWEBogFhAdo0JiY0JgG1aktLaktLaktLakv9%2FgEE7atmZqvt%2Fvztq2ZmqwJA%2Fl7%2Bn87OAWEBogFhzs4ABAAAAAAHgAQAACMAKwAzAEMAAAE1NCYrATU0JisBIgYdASMiBh0BFBY7ARUUFjsBMjY9ATMyNgQ0JiIGFBYyADQmIgYUFjIkEAAjIicjBiMiABAAMyEyA0ASDsASDoAOEsAOEhIOwBIOgA4SwA4SAkBLaktLagFLS2pLS2oBS%2F7U1MCS3JLA1P7UASzUA4DUAcCADhLADhISDsASDoAOEsAOEhIOwBJnaktLaksBS2pLS2pL1P5Y%2FtSAgAEsAagBLAAAAA8AAAAAB4AEgAALABcAIwAvADsARwBTAF8AawB3AIMAjwCfAKMAswAAARUUKwEiPQE0OwEyNxUUKwEiPQE0OwEyJxUUKwEiPQE0OwEyARUUIyEiPQE0MyEyJRUUKwEiPQE0OwEyJxUUKwEiPQE0OwEyARUUKwEiPQE0OwEyJxUUKwEiPQE0OwEyARUUKwEiPQE0OwEyARUUKwEiPQE0OwEyARUUKwEiPQE0OwEyBRUUKwEiPQE0OwEyBREUKwEiPQE0OwE1NDsBMhMRIREBERQGIyEiJjURNDYzITIWAYAQYBAQYBCAEOAQEOAQgBBgEBBgEAQAEPygEBADYBD9gBBgEBBgEIAQYBAQYBABgBBgEBBgEIAQYBAQYBABgBBgEBBgEAGAEGAQEGAQ%2FgAQYBAQYBABABBgEBBgEAEAEOAQEHAQYBCA%2BYAHAEs1%2BYA1S0s1BoA1SwFwYBAQYBDwYBAQYBDwYBAQYBD98GAQEGAQ8GAQEGAQ8GAQEGAQ%2FvBgEBBgEPBgEBBgEP7wYBAQYBD%2B8GAQEGAQAfBgEBBgEBBgEBBgEBD%2BoBAQYBDwEP0AA4D8gAOA%2FIA1S0s1A4A1S0sAAAAAAwBA%2F4AHAAWAABYAKgBWAAABEQYjIicuASMiBxE2MzIeAh8BFjMyARQGBxEUBisBIiY1ES4BNTQ2MhYFERQHBgcGIyIvAS4CIyIEBwYjIicmNRE0Nz4DMzIWFxYzMjc2NzYXFgaAqYlSP2SoXq3m9bw3YWM3NxwsOXj7bSMdEg5ADhIdI0tqSwXAIwoH2pdYRhxARnA6Zv71Xw8SEBAgHyNXjaRJcMJwJjN6vBYJHx8fAesCaFsgMTd%2F%2FalxDyUZGw4WA3EjOhH7Dg4SEg4E8hE6IzVLS3X9BScSBQR0Iw4hHhxYOgkIEyUC5iMUFSs9Jj43E3AMBRASFAAABgBA%2F4AHAAWAAAUACwAqADIARgByAAABNQYHFTYTNQYHFTYBNQYnNSYnLgkjIgcVMzIWFxYXFRYzMhM1BiMiJxUWARQGBxEUBisBIiY1ES4BNTQ2MhYFERQHBgcGIyIvAS4CIyIEBwYjIicmNRE0Nz4DMzIWFxYzMjc2NzYXFgNAtcvNs6zU1wPp65UUEwU4DTITLhosIywWFxoTZrVrExQqMXitqYktIZT7rCMdEg5ADhIdI0tqSwXAIwoH2pdYRhxARnA6Zv71Xw8SEBAgHyNXjaRJcMJwJjN6vBYJHx8fAhjAEGW5YAGwxQh2vW%2F%2BOLh0LeAGCQMcBhgHEwYLBAQD3jo1CQa8EQIHvVsIxCoB7iM6EfsODhISDgTyETojNUtLdf0FJxIFBHQjDiEeHFg6CQgTJQLmIxQVKz0mPjcTcAwFEBIUAAIADQAABoAEMwAUACQAAAkBBiIvASY0NwkBJjQ%2FATYyFwEWFAEVFAYjISImPQE0NjMhMhYCSf4uChoKMgoKAYn%2BdwoKMgoaCgHSCgQtEg78QA4SEg4DwA4SAin%2BLgoKMgoaCgGJAYkKGgoyCgr%2BLgoa%2Fi1ADhISDkAOEhIAAAAAAwAt%2F5MHUwTtABQAJAA5AAAlBwYiJwEmNDcBNjIfARYUBwkBFhQJAQ4BLwEuATcBPgEfAR4BCQEGIi8BJjQ3CQEmND8BNjIXARYUAmkyChoK%2Fi4KCgHSChoKMgoK%2FncBiQoCRf6LBBcMPg0NBAF1BBcMPg0NAo3%2BLgoaCjIKCgGJ%2FncKCjIKGgoB0gqJMgoKAdIKGgoB0goKMgoaCv53%2FncKGgQh%2BvUNDQQRBBcNBQsNDQQRBBf9aP4uCgoyChoKAYkBiQoaCjIKCv4uChoAAAIAAP%2BABwAFuwAVADsAAAEVFAcGIyInASY0NwE2FxYdAQEGFBcBFA4DBwYjIicmNxInLgEnFRQHBiMiJwEmNDcBNhcWFREEFxYCgCcNDBsS%2FgATEwIAHSkn%2FnMTEwYNIis1HAYIFAYDGQIrlUDVoScNDBsS%2FgATEwIAHSknAZu8qQHGRioRBRMCABM0EwIAHxERKkX%2BchM0E%2F5NOpd9fTgMEQEIGgGQpUdPDfsqEQUTAgATNBMCAB8RESr%2B%2BhzBrQAAAAACAAL%2FrQZ%2BBeAACgAoAAABLQEvAQMRFwUDJwkBExYGIyInJQUGIyImNxMBJjY3JRM2MzIXEwUeAQSiAQH%2BnEIenzsBPjwMAfX%2BlVYFFhcRF%2F4%2F%2Fj8XERcWBVb%2BlCASLQH24RQdHBXhAfYtEgJD%2BjQKPAFC%2FD0fqAFjQgE1%2Fp7%2BDCElDOzsDCUhAfQBYiA3B0kBxykp%2FjlJBzcAAAABAAL%2FgAWABQAAFgAACQEGIyInLgE1ESEiLgE2NwE2MzIXHgEFef2AESgFChYb%2FcAWIwoSFAUADRAbEg8HBKP7ACMCBSMWAkAbLCgKAoAHEw4pAAADAAD%2FAAaABYAAAgAFADgAAAEhEQkBIQEVFAYrARUUBisBIiY9ASEiJjURIyImPQE0NjsBNTQ2OwEyFh0BITc2MhcWFA8BETMyFgItAlP9gAJT%2Fa0EgBIO4BIOwA4S%2FKAOEuAOEhIO4BIOwA4SA1P2ChoKCQn34A4SAQACU%2F3aAlP9YMAOEuAOEhIO4BIOA2ASDsAOEuAOEhIO4PcJCQoaCvb8rRIAAAAEAAD%2FgAQABYAABwAPABcASwAAJDQmIgYUFjISNCYiBhQWMgQ0JiIGFBYyNxQGBwIHBgcOAR0BHgEVFAYiJjU0NjcRLgE1NDYyFhUUBgcRNjc%2BBTUuATU0NjIWASA4UDg4UDg4UDg4UAK4OFA4OFCYNCwC4ESHgFMsNHCgcDQsLDRwoHA0LDZkN0FMKicRLDRwoHAYUDg4UDgEuFA4OFA4SFA4OFA4YDRZGf7hfyYrKD5FGhlZNFBwcFA0WRkDNBlZNFBwcFA0WRn%2BDxofERklKjxPNBlZNFBwcAAACAAA%2F4AGgAYAAA4AGgAmAEEAXQBpAHUAgwAACQEGIyInJjQ3ATYyFxYUFxEUBiImNRE0NjIWJhQGIyEiJjQ2MyEyBRQPAQYjIicBJic3AR4BPwE2NTQnATcWFwEWAQcBJiMiDwEGFRQXAQcmJwEmNTQ%2FATYzMhcBFgQUBiMhIiY0NjMhMgERFAYiJjURNDYyFgUBBiInJjQ3ATYyFxYUAbf%2FAAoNDAsJCQEAChoKCaASHBISHBLgEg7%2BwA4SEg4BQA4FAlWTU3h5U%2F6yFRXvAREbUhuTHBz%2B7hIjFQFQVP2X7%2F7vHCgnHZMcHAESEiMV%2FrBUVZNTeHlTAU4VAo4SDv7ADhISDgFADv3yEhwSEhwSAZf%2FAAsYCwkJAQAKGgoJAQn%2FAAkJChoKAQAJCQoaM%2F7ADhISDgFADhIS4BwSEhwSoHhTklNVAU8VIxL%2B7hsBG5IcJygcARPvFRX%2BsFYCXhIBEhwbkhwnKBz%2B7vAVFQFQVnZ4U5JTVf6xFWkcEhIcEgIA%2FsAOEhIOAUAOEhKl%2FwAJCQoaCgEACQkKGgAAAAACAGAAAAP8BQAADwA8AAABFRQGKwEiJj0BNDY7ATIWARQOAwcOARUUBisBIiY9ATQ2Nz4BNTQmIyIHBgcGIyIvAS4BNxIhMh4CAsAYEPAQGBgQ8BAYATwfJ0csJyk3GBDwDxWCTjsyXT1BKyNIDRIMDaQNBQigATBQooJSARjwEBgYEPAQGBgCSDZeOzwbFhdUGREfJRMtU5MjGzovKkAdGVoQCH0KHg0BCj5olwAAAAIAAAAAAoAFgAAeAC4AACUVFAYjISImPQE0NjsBESMiJj0BNDYzITIWFREzMhYDFRQGIyEiJj0BNDYzITIWAoAmGv4AGiYmGkBAGiYmGgGAGiZAGiaAJhr%2FABomJhoBABomwIAaJiYagBomAYAmGoAaJiYa%2FcAmBGbAGiYmGsAaJiYAAAIAYgAAAh4FgAAPAB8AAAEVFAYjISImPQE0NjMhMhYTAw4BIyEiJicDJjYzITIWAgAmGv8AGiYmGgEAGiYeHAEnGv8AGicBHAElGgFAGiUBIOAaJiYa4BomJgQG%2FQAaJiYaAwAaJiYAAgAFAAAF%2FgVrACIARwAAJRUjLwEmJyMHBg8BITUzEwMjNSEXFhcWFzM2PwIhFSMDEwEVIScmNTQ%2BBDU0JiMiBwYHJzY3NjMyFhUUDgQHMzUDgfifGAgDAwkKD5v%2B%2FoDFuYkBFIsCFQgDAwMIGYwBAX24zALq%2Ff4DBDROWk40OykzLg4WaRolU2luiDFLWEw3A%2Binp%2FwqCQwVFBj6pwEjARCo5AQmCQwJDCrkqP71%2FtgCp84bHBJAakM%2FLj4hJjEnCxtcJR1Bd2M4Xjs6KzwhUAAAAAACAAX%2FAAYAA4IAIgBGAAAlFSMvASYnIwcGDwEhNTMTAyM1IRcWFxYXMzY%2FAiEVIwMTBRUhJyY1ND4ENTQmIyIHBgcnNjc2MzIWFRQOAwczNQOB%2BJ8YCAMDCQoPm%2F7%2BgMW5iQEUiwIVCAMDAwgZjAEBfbjMAuz9%2FgQDNE5aTjQ7KTMuDhZpGiVQbG6IRWNkSgTop6f8KgkMFRQY%2BqcBIwEQqOQEJgkMCQwq5Kj%2B9f7Y2c4bLQFAakM%2FLj4hJjEnCxtcJR1Bd2NCaUM6RCdQAAAAAgABAAAHfwUAAAMAFwAAJQEhCQEWBgcBBiMhIiYnJjY3ATYzITIWA4ABUP0A%2FrAG9Q8LGfyAJjr9ACY%2FEA8LGQOAJjoDACY%2FgAGA%2FoAENSJLHPwALCkiIkscBAAsKQAAAQAA%2F9wGgAYAAGgAAAEUBiMiLgIjIhUUFgcVIgcOAiMiJjU0PgI1NCYjIgYVFB4CFRQHBiMiJy4BLwEiJyI1ER4CFxYzMjc2NTQuAjU0NjMyFhUUDgIVFBYzMjY3FQ4CBwYVFBcWMzI%2BAjMyFgaAWU8pSS1EJW4gARYLIn9oLj1UIykjbFFUdh4lHi4lUF%2BWCSUJDQECAgIfJQOWX1AlLh4lHnZVUGwjKSNUPUDoLwEFBQEYIywtFjkxUCtSWwG2UWwjKSN8J5gnBQEDEQo1OSVELUkpT1lbUitQMTkWLSwjGAIEAgIBAQQAAQUFARgjLC0WOTFQK1JbWU8pSS1EJTk1HgICAh8lA5ZfUCUuHiUedgAAAgAA%2F4AEgAYAACcAMwAAARUUAAcVITIWFAYjISImNDYzITUmAD0BNDYyFh0BFAAgAD0BNDYyFgERFAYgJjURNDYgFgSA%2FtnZAQAaJiYa%2FYAaJiYaAQDZ%2FtkmNCYBBwFyAQcmNCb%2FALz%2B%2BLy8AQi8A0CA3f65GIQmNCYmNCaEGAFH3YAaJiYagLn%2B%2BQEHuYAaJiYBZv4AhLy8hAIAhLy8AAMADf%2BABXMGAAALAEMASwAAAQcmPQE0NjIWHQEUCQEVFAYjIicHFjMyAD0BNDYyFh0BFAAHFSEyFhQGIyEiJjQ2MyE1JicHBiIvASY0NwE2Mh8BFhQlARE0NjMyFgEPZSomNCYEaf6XvIQ3NmBhbLkBByY0Jv7Z2QEAGiYmGv2AGiYmGgEAfW7%2BChoKUgoKBNIKGgpSCv56%2FZO8hGalAk9lZ2%2BAGiYmGoA1Ah7%2Bl4CEvBNgMwEHuYAaJiYagN3%2BuRiEJjQmJjQmhA1E%2FgoKUgoaCgTSCgpSChp6%2FZMCAIS8dgAAAAIAAP%2BABQAFgAAGACIAAAERIRE2NzYTERQOBQcGIicuBjURNDYzITIWBED%2BQHde68BDY4l0fjUQDBwMEDV%2BdIljQyYaBIAaJgJAAoD7jz9KuAOw%2FQBWqYN8UkkaBwYGBxpJUnyDqVYDABomJgAAAAAEAAD%2FAAaABgAAAwATACMARwAAFyERISURNCYrASIGFREUFjsBMjYlETQmKwEiBhURFBY7ATI2JREUBiMhIiY1ETQ2OwE1NDY7ATIWHQEhNTQ2OwEyFh0BMzIWgAWA%2BoABgBIOQA4SEg5ADhIDABIOQA4SEg5ADhIBgEw0%2BoA0TEw0gF5CQEJeAYBeQkBCXoA0TIAEAMABIA4SEg7%2B4A4SEg4BIA4SEg7%2B4A4SEk77ADRMTDQFADRMYEJeXkJgYEJeXkJgTAAAAAIAA%2F%2BABYAF4AAHAEwAAAA0JiIGFBYyJREUBwYjIiclLgE1IRUeARURFAYjISImNRE0Njc1IyIOAwcGIyInLgE3PgQ3JjU0NjIWFRQHITQ2NyU2MzIXFgIAJjQmJjQDpgwIDAQD%2FkALDv8Ab5EmGv4AGiZ9YyA7cEc9FAQRKBANFxEMBRM4QWk4GV6EXg4BLg4LAcADBAwIDAUmNCYmNCZg%2FsAQCQcBYAISC2YXsHP84BomJhoDIGqpHm8vO0ohCCMHDDIYCiBLQUUSKixCXl5CIR8LEgJgAQcJAAACACT%2FIAaABYAABwAtAAAANCYiBhQWMgEUAgcGBwMGBwUGIyIvASY3EwEFBiMiLwEmNxM2NyU2NzYkITIWBaA4UDg4UAEYl7JRchQCDv6ABwkMC0ANBVX%2B5%2F7sAwYOCUARDOAKEAF7YFC8AVQBBQ4UBBhQODhQOAGA%2Bf6Vs1Bg%2FoUQCuAECUAOEgEUARlVAQlAExQBgA4CFHJRu44TAAAAAQAAAAAG0QUAABYAAAEDIRM2JyYrAQMhEyEDIRMDITIWFx4BBtGk%2FrKyDRwbOKnM%2FrLM%2FuLM%2FrLMmQT8ZbE7PCoC%2B%2F0FA0A4ICH8RwO5%2FEcDuQFHUUlJvwAAAAACAAD%2FgAYABYAAFAAgAAAlNzY0JwkBNjQvASYiBwEGFBcBFjIAEAIEICQCEBIkIAQDjWYTE%2F7NATMTE2YTNBP%2BOhMTAcYTNAKGzv6f%2Fl7%2Bn87OAWEBogFhjWYTNBMBMwEzEzQTZhMT%2FjoTNBP%2BOhMC1%2F5e%2Fp%2FOzgFhAaIBYc7OAAIAAP%2BABgAFgAAUACAAACUBNjQnASYiDwEGFBcJAQYUHwEWMgAQAgQgJAIQEiQgBALNAcYTE%2F46EzQTZhMTATP%2BzRMTZhM0A0bO%2Fp%2F%2BXv6fzs4BYQGiAWGNAcYTNBMBxhMTZhM0E%2F7N%2Fs0TNBNmEwLX%2Fl7%2Bn87OAWEBogFhzs4AAgAA%2F4AGAAWAABQAIAAAATc2NCcBJiIHAQYUHwEWMjcJARYyABACBCAkAhASJCAEBI1mExP%2BOhM0E%2F46ExNmEzQTATMBMxM0AYbO%2Fp%2F%2BXv6fzs4BYQGiAWEBjWYTNBMBxhMT%2FjoTNBNmExMBM%2F7NEwHX%2Fl7%2Bn87OAWEBogFhzs4AAAAAAgAA%2F4AGAAWAABQAIAAAJQE2NC8BJiIHCQEmIg8BBhQXARYyABACBCAkAhASJCAEAy0BxhMTZhM0E%2F7N%2Fs0TNBNmExMBxhM0AubO%2Fp%2F%2BXv6fzs4BYQGiAWHtAcYTNBNmExP%2BzQEzExNmEzQT%2FjoTAnf%2BXv6fzs4BYQGiAWHOzgACAAD%2FQAWABYAAEQAWAAABNyETIQ8BLwEjEwUzNSUTIScBIQMFJQRqEPyMLwJkFsXEDa8WAWoEAWcy%2FXwP%2FjgFgID9vv3CA6uv%2FerkNTWM%2FupkAWMCILUB1fpioqIAAAABAAz%2FQAb0BYAADwAAASEJAhMhBwUlEyETITchARMF4f72%2FNz9RkcBKR0BpgHmRPtIOgS5JvtIBYD6y%2F71AQsBZJOhoQFTASm%2FAAAAAgAA%2FxAHAAYAAAcAVQAAADQmIgYUFjIBERQHBiMiLwEGBCAkJwcGIyInJjURNDYzITIXFg8BHgEXESMiJj0BNDY7ATUuATU0NjIWFRQGBxUzMhYdARQGKwERPgE3JyY3NjMhMhYDwCY0JiY0A2YUCAQNCl13%2FnH%2BNP5xd10JDgQIFBIOAWAWCAgPZEP1lcAaJiYawDpGltSWRjrAGiYmGsCV9UNkDwgIFgFgDhIE5jQmJjQm%2FKD%2BoBYIAgldj6enj10JAggWAWAOEhQTEGRbfRQChyYagBomoyJ1RmqWlmpGdSKjJhqAGib9eRR9W2QQExQSAAEAAAAABIAGAAAjAAABMhYVERQGIyEiJjURNDY7ARE0ACAAFRQGKwEiJjU0JiIGFREEICg4OCj8QCg4OCggAQcBcgEHJhpAGiaW1JYDADgo%2FcAoODgoAkAoOAFAuQEH%2Fvm5GiYmGmqWlmr%2BwAAAAAAFAAD%2FgAYABYAABwAPABcAJwAzAAAAFAYiJjQ2MgAQJiAGEBYgABAAIAAQACAAEC4CIA4CEB4CID4BEhACBCAkAhASJCAEBACW1JaW1AEW4f7C4eEBPgFh%2FtT%2BWP7UASwBqAGsZqvt%2Fvztq2Zmq%2B0BBO2r5s7%2Bn%2F5e%2Fp%2FOzgFhAaIBYQLq1JaW1Jb%2BYQE%2B4eH%2BwuECVP5Y%2FtQBLAGoASz9fgEE7atmZqvt%2Fvztq2ZmqwJA%2Fl7%2Bn87OAWEBogFhzs4AAAAAAwAAAgAFgAOAAA8AHwAvAAABFRQGKwEiJj0BNDY7ATIWBRUUBisBIiY9ATQ2OwEyFgUVFAYrASImPQE0NjsBMhYBgDgowCg4OCjAKDgCADgowCg4OCjAKDgCADgowCg4OCjAKDgDIMAoODgowCg4OCjAKDg4KMAoODgowCg4OCjAKDg4AAAAAAMAAAAAAYAFgAAPAB8ALwAAARUUBisBIiY9ATQ2OwEyFhEVFAYrASImPQE0NjsBMhYRFRQGKwEiJj0BNDY7ATIWAYA4KMAoODgowCg4OCjAKDg4KMAoODgowCg4OCjAKDgBIMAoODgowCg4OAHYwCg4OCjAKDg4AdjAKDg4KMAoODgAAAQAAP%2BABgAFgAAHABsANQBFAAAkNCYiBhQWMiUmACcmBh0BFBYXHgEXHgE7ATI2JSYCLgEkJyYHBh0BFBYXFgQSFx4BOwEyNzYBERQGIyEiJjURNDYzITIWAgBLaktLagGqDf646A4UEQ2a3AsBEg2ADRQBfwVmsen%2B4ZoOCQoSDcwBXNEHARINgA0KCwEfqXf8QHepqXcDwHepy2pLS2pLIugBSA0BFA2ADRIBC9yaDREUDZoBH%2BmxZgUBCgoNgA0SAQfR%2FqTMDRIKCQPN%2FEB3qal3A8B3qakAAAACAAD%2FgAYABYAACwAbAAAAIAQSEAIEICQCEBIBNjQnASYHBhURFBcWMzI3Ai8BogFhzs7%2Bn%2F5e%2Fp%2FOzgOyICD94B8hICAQEBEPBYDO%2Fp%2F%2BXv6fzs4BYQGiAWH9lxJKEgFAExITJf2AJRMICQADADb%2FNQbLBcoAAwATAC8AAAkFNjQnASYiBwEGFBcBFjIJAQYiLwE2NCYiBycmNDcBNjIfAQYUFjI3FxYUBAABPP3E%2FsQBaQJqExP%2BlhI2Ev2WExMBahI2A4v8dSVrJX44cKA4fSUlA4slayV9OHCgOH4lBDz%2BxP3EATz%2BaQJqEzQTAWoSEv2WEzQT%2FpYSAo%2F8dCUlfjigcDh%2BJWslA4olJX04oHA4fSVrAAAAAgAA%2F4AGAAWAAA8AHwAAATU0JiMhIgYdARQWMyEyNgERFAYjISImNRE0NjMhMhYFACYa%2FIAaJiYaA4AaJgEAqXf8QHepqXcDwHepAkCAGiYmGoAaJiYCOvxAd6mpdwPAd6mpAAMAAAAABYAFgAAPAB8ALwAAARUUBiMhIiY9ATQ2MyEyFhMRNCYjISIGFREUFjMhMjYTERQGIyEiJjURNDYzITIWBIASDvzADhISDgNADhKAXkL8wEJeXkIDQEJegKl3%2FMB3qal3A0B3qQLgQA4SEg5ADhIS%2FjIDQEJeXkL8wEJeXgOC%2FMB3qal3A0B3qakAAAEAAwAAA%2FoFfwAcAAABBisBERQGIyEiJyY%2FATYzIREjIicmNwE2MhcBFgP6EijAEg79QBUICAygCRABQMAoEhEaAUASPhIBQBsDpSX8oA4SEhQPwAsCgCUlHwGAFhb%2BgCAAAAABAAP%2FgAP6BQAAGwAAEyEyFhURMzIWBwEGIicBJjc2OwERISIvASY3NiACwA0TwCgkG%2F7AEj4S%2FsAaERIowP7ADgugDQkJBQATDvyhSiD%2BgBYWAYAfJiUCgAvADhQTAAACAAD%2FgAYABYAAFAAkAAAlATY0LwEmIgcBJyYiDwEGFBcBFjIBERQGIyEiJjURNDYzITIWAq0CZhMTZhM0E%2F4t0xM0E2YTEwFmEzQDZql3%2FEB3qal3A8B3qe0CZhM0E2YTE%2F4t0xMTZhM0E%2F6aEwOG%2FEB3qal3A8B3qakABQAA%2F4AGAAWAAAYAEAAVAB8ALwAAARcHIzUjNQEWBwEGJyY3ATYJAxEBNzY0LwEmIg8BJREUBiMhIiY1ETQ2MyEyFgGUmDQ4YAHSDhH%2B3RENDhEBIxH%2B%2BwIg%2FuD94AOAXBwcmBxQHFwCoKl3%2FEB3qal3A8B3qQGsmDRgOAG6DRH%2B3REODREBIxH9QAIgASD94P7gAmBcHFAcmBwcXGD8QHepqXcDwHepqQAAAAIAAP%2BABgAFgAAZACkAAAERNCYjISIHBh8BAQYUHwEWMjcBFxYzMjc2AREUBiMhIiY1ETQ2MyEyFgUAJhr%2BICoRER%2BQ%2FeoTE2YTNBMCFpASGwwNJwEAqXf8QHepqXcDwHepAmAB4BomJykdkP3qEzQTZhMTAhaQEwURAir8QHepqXcDwHepqQACAAD%2FgAYABYAAJQA1AAAJATY0JwEmBwYdASIOBRUUFxYzMjc2JwI3PgEzFRQXFjMyAREUBiMhIiY1ETQ2MyEyFgPtAWATE%2F6gHicod8KDYTghCqcKDwcGFgMsai6ojCgMDBoCJql3%2FEB3qal3A8B3qQGzAWATNBMBYB8RESqgJz9fYHplPLXfDAMJGAFidzQvoCoRBQLA%2FEB3qal3A8B3qakAAAQAAP%2BABgAFgAACAAYAEgAeAAABLQEBEQERABAuASAOARAeASA2ABACBCAkAhASJCAEAoABAP8AAYD%2BAAMgkvr%2B2PqSkvoBKPoBcs7%2Bn%2F5e%2Fp%2FOzgFhAaIBYQHAgIABT%2F3i%2FwACHv7dASj6kpL6%2Ftj6kpICX%2F5e%2Fp%2FOzgFhAaIBYc7OAAMAAP%2BABgAFgAANAB0ALQAAARYHAQYiJwEmNzYzITITETQmIyEiBhURFBYzITI2AREUBiMhIiY1ETQ2MyEyFgR5Ehf%2BwBNCE%2F7AFxIRKAKAKJgTDfxADRMTDQPADRMBAKl3%2FEB3qal3A8B3qQNdIx%2F%2BQBsbAcAfIyP9IAPADRMTDfxADRMTA838QHepqXcDwHepqQADAAD%2FgAYABYAADQAdAC0AAAEGIyEiJyY3ATYyFwEWExE0JiMhIgYVERQWMyEyNgERFAYjISImNRE0NjMhMhYEeREo%2FYAoERIXAUATQhMBQBd1Ew38QA0TEw0DwA0TAQCpd%2FxAd6mpdwPAd6kBoyMjIx8BwBsb%2FkAf%2FtoDwA0TEw38QA0TEwPN%2FEB3qal3A8B3qakAAwAA%2F4AGAAWAAA0AHQAtAAAAFAcBBicmNRE0NzYXARMRNCYjISIGFREUFjMhMjYBERQGIyEiJjURNDYzITIWBEAb%2FkAfIyMjIx8BwNsSDvxADhISDgPADhIBAKl3%2FEB3qal3A8B3qQKhQhP%2BwBcSESgCgCgREhf%2BwP3sA8AOEhIO%2FEAOEhIDzvxAd6mpdwPAd6mpAAEAAAAAA%2FMFgABgAAAlFxYGDwEOByMiACcjIiY9ATQ2OwEmNyMiJj0BNDY7ATYAMzIXFhcWDwEOAS8BLgUjIgYHITIXFg8BBiMhBhchMhcWDwEOASMhHgEzMj4EPwE2FxYD0CMDDAsFBA0TGBshIicT6v6iP18NExMNQgIDQw4SEg5iQwFh4GZcCwkGAysDFg0EBA8UGRsfDn7IMgHUEAkKAxgFG%2F4YAwMByw8KCQMYAhIL%2Fn0wy38SJB8cFRAEBQ0NDOWfDBUEAQIDBgUFBQQCAQXdEw1xDRM5MBIOcg4S0gEAFwMMCw2fDQ0EAQEDBAMDAoBwDAwOcholRAwMD3ALD3WJAwQFBQQBAgUHBwAAAQAAAAAD%2FAWAAD8AAAERFAYjISImPQE0NjsBESMiJj0BNDY7ATU0NjMyFx4BDwEGBwYnLgIjIgYdASEyFh0BFAYjIREhNTQ2OwEyFgP8Eg78RA4SEw1hXw4SEg5f97%2B5lgkCCGcJDQ0KBSpgLVVoATENExMN%2Fs8BnhIOog4SAY%2F%2BkQ4SEg6WDRMBfxMNgw4S36vefQgZCn8LAQIJBRwkXkzXEg6DDRP%2BhbUNExMAAAABADT%2FAAPSBgAAYgAAARQGBxUUBisBIiY9AS4EJyY%2FATY3NhcwFxYXFjMyNjU0LgMnLgg1NDY3NTQ2OwEyFh0BHgQXFg8BBgcGJy4EIyIGFRQeBBceBgPSx58SDocNE0J7UEQZBREPZwcQDwkCcYIlJVF7HiVQNDYnLU4vQikuGRHEnRMNhw4SOWtDPBIGEQxRCA8ODQMXNz5XKl94ESolSy4vNThgN0UlGgFfmd0arw4SEw2vCSwtMxgGFRSHCgICCwJjGghWTxwyIikXFRASIxssKTk7SimK0B60DRMSDrAGIiEqEAYSFJIPAQMKAxIjHRdWRBosJxsjExIUFy8mPkFYAAEAAAAAA4IFgAA%2BAAABFRQGKwEOAQcWARYHBisBIicAJyY9ATQ2OwEyNjchIiY9ATQ2MyEmKwEiJj0BNDYzITIWHQEUBisBFhczMhYDghIOqBfUqqcBJA4KCBXDEAn%2BzsAJEw1whKEW%2FlUOEhIOAZ0505ENExIOA0AOEhIO6S8Rqw4SBCpmDhKQtBSy%2FpoQEhIMAW%2FMCQ1%2FDRNWUhIOZg4ScRMNhQ4SEg5mDhI9UxIAAQAEAAAD%2FwWAAEUAACEjIiY1ESEiJj0BNDYzITUhIiY9ATQ2OwEBJjc2OwEyFxMWFz4BNxM2OwEyFxYHATMyFh0BFAYjIRUhMhYdARQGIyERFAYCW6wNE%2F7gDRMTDQEg%2FuANExMN1v6%2FCAgKEsITCtcTJQopB78IFb8RCgkI%2FsfXDRMTDf7eASINExMN%2Ft4TEg4BShIOZw0TVRIOaA0TAkIQEBAS%2FlcmVxhYEQGkExAOEf29Ew1oDhJVEw1nDhL%2Btg0TAAIAAAAABQAFgAAHADgAAAA0JiMhESEyABAGIyEVITIWHQEUBiMhFRQGKwEiJj0BIyImPQE0NjsBNSMiJj0BNDY7ARE0NjMhMgQTgmr%2BwAFAagFv%2Fcj%2BrAH5DhISDv4HEw2nDhLgDhISDuDgDhISDuASDgIbyANnyHz%2BQAGh%2Fn70dhIOgA4SwA4SEg7AEg6ADhJ2Eg6VDRMCdQ4SAAYAAAAABwAFgAAIAAwAEAAZAB0AbgAAARMjExYUFzQ2EzchFyEzJyMBEyMTFBYXNDYTNyEXBRUUBisBAwYrASInAyMDBisBIiYnAyMiJj0BNDY7AScjIiY9ATQ2OwEDJjc2OwEyFxMhEzY7ATIXEyETNjsBMhcWBwMzMhYdARQGKwEHMzIWAgJRn0sBAQF0I%2F7cIAGhiyNGAZ9OolEBAQFvIf7XIgKAEg7VpAcYnxgHptGnBxifCxECoNAOEhIOryGODhISDm1ZBQoKEIkaBVoBZ2EHGH4YB2IBbV0FGokQCgoFW28OEhIOkSKzDhIBVQEr%2FtQBBAEBBQGsgICA%2FdQBLP7VAQUBAQQBrYCAIEAOEv2YGBgCaP2YGA4KAmgSDkAOEoASDkAOEgFYDw0MGP6YAWgYGP6YAWgYDA0P%2FqgSDkAOEoASAAADADj%2FAAToBYAAMwBIAFwAAAEWBx4BBw4EBxUjNSInFSMRIiYrATczMjcRMyYjESYrATUXMjc1MxU2MzUzFR4DAzQuBCIGIxEyFjI%2BBgM0LgQOASMRMhY%2BBgSPEpV1dA0HM050f1KaUCqaEkgTyB9vMggQBgoNTG%2FUQCGaUiiaT3poPdEeLEc8WDJPCAg6JkQxQS4xHhNHGSQ8MkkrQQcFOyJCLDsmJBIDgLZMHJaLR2xGLxYE%2F%2FsB%2FAD%2FAbczAZIBAR9EpAEB%2FPcC9fwHHzth%2FZ0kOCQZDAYC%2Fq4BAwUMEBoiLgH4ITMhFwoGAQH%2BzQEBAwgOFx8uAAIAAP8ABgAGAAAGABgAAAERFhcBFhcFFBYzIREUBiMhIiY1ETQ2MyEEABYOAZgODv2oOCgCIDgo%2BsAoODgoAyAEAAHYDg7%2BaA4WICg4%2B%2BAoODgoBkAoOAAFAAD%2FAAYABgAABgAYACgAOABIAAABFhchERYXAyERFAYjISImNRE0NjMhERQWEzU0JiMhIgYdARQWMyEyNhE1NCYjISIGHQEUFjMhMjYRNTQmIyEiBh0BFBYzITI2BbwODv4oFg5EAiA4KPrAKDg4KAMgOMgSDv1ADhISDgLADhISDv1ADhISDgLADhISDv1ADhISDgLADhIEJA4WAdgODv3E%2B%2BAoODgoBkAoOP3gKDj9IEAOEhIOQA4SEgEOQA4SEg5ADhISAQ5ADhISDkAOEhIAAAQAIv8ABn0GAAAKACQAQgBSAAABMy8BJjUjBxQGBwEUBwEGIyInASY3NjsBETQ2OwEyFhURMzIWBRUhNQE2PwE1IgYjBisBFSM1IRUBBg8BFTc2OwE1ExUhNTMnIwczFSE1MxMzEwSnsUgMAgQDBwT98Ar%2BwQoNDAv%2BwA8ICBbAEg7ADhLADhIDRP24AXEMCQsCCQMMEuh4Ajf%2BjwYPCw4JFfjS%2FuBLL%2FMvS%2F7hRuai5gRo2i8QBBQBIgz7HgwM%2FsEJCQFAEBMUBWAOEhIO%2BqAShelaAhESCQkDAQNz5Vn97ggSCwICAncDgWpqkJBqagKW%2FWoAAAAABAAi%2FwAGfQYAAAoAJAA0AFIAACUzLwEmNSMHFAYHBRQHAQYjIicBJjc2OwERNDY7ATIWFREzMhYBFSE1MycjBzMVITUzEzMTAxUhNQE2PwE1IgYjBisBFSM1IRUBBg8BFTc2OwE1BKexSAwCBAMHBP3wCv7BCg0MC%2F7ADwgIFsASDsAOEsAOEgOd%2FuBLL%2FMvS%2F7hRuai5hP9uAFxDAkLAgkDDBLoeAI3%2Fo8GDwsOCRX4aNovEAQUASIM4gwM%2FsEJCQFAEBMUBWAOEhIO%2BqAS%2FvxqapCQamoClv1qBH%2FpWgIREgkJAwEDc%2BVZ%2Fe4IEgoDAwF3AAUAIv8ABwAGAAAZACkAOQBJAFkAACUUBwEGIyInASY3NjsBETQ2OwEyFhURMzIWBRUUBiMhIiY9ATQ2MyEyFgMVFAYjISImPQE0NjMhMhYDFRQGIyEiJj0BNDYzITIWAxUUBiMhIiY9ATQ2MyEyFgLgCv7BCg0MC%2F7ADwgIFsASDsAOEsAOEgQgEg78wA4SEg4DQA4SwBIO%2FYAOEhIOAoAOEsASDv5ADhISDgHADhLAEg7%2FAA4SEg4BAA4SYAwM%2FsEJCQFAEBMUBWAOEhIO%2BqASjsAOEhIOwA4SEgHywA4SEg7ADhISAfLADhISDsAOEhIB8sAOEhIOwA4SEgAAAAAFACL%2FAAcABgAADwApADkASQBZAAAFFRQGIyEiJj0BNDYzITIWJRQHAQYjIicBJjc2OwERNDY7ATIWFREzMhYBFRQGIyEiJj0BNDYzITIWExUUBiMhIiY9ATQ2MyEyFhMVFAYjISImPQE0NjMhMhYEwBIO%2FwAOEhIOAQAOEv4gCv7BCg0MC%2F7ADwgIFsASDsAOEsAOEgKgEg7%2BQA4SEg4BwA4SwBIO%2FYAOEhIOAoAOEsASDvzADhISDgNADhIgwA4SEg7ADhIScgwM%2FsEJCQFAEBMUBWAOEhIO%2BqASAXLADhISDsAOEhIB8sAOEhIOwA4SEgHywA4SEg7ADhISAAAABAAi%2FwAFzgYAAAoAJABDAFYAACU0JiMiBhQWMzI2BRQHAQYjIicBJjc2OwERNDY7ATIWFREzMhYlFA4DIyInJic3FhcWMzI2NyMOASMiJjU0NjMyFgMVITUzETQ2PQEjBwYPASc3MxEFQlg7ND5JRDJG%2FZ4K%2FsEKDQwL%2FsAPCAgWwBIOwA4SwA4SAu4aOFB1RT4uGBInDxAlJlRlEAIVUSxqhpBte6Qe%2FiunAQIHCBI%2BUsB73z9qSnJMNlYMDP7BCQkBQBATFAVgDhISDvqgEjc%2Bd21SMRAIB3EHBA11Vxccj2Vpkr0CL3JyAbAHGAUQDA0SOla5%2FXIAAAAABAAi%2FwAFzgYAAAoAJAA3AFYAAAE0JiMiBhQWMzI2ARQHAQYjIicBJjc2OwERNDY7ATIWFREzMhYFFSE1MxE0Nj0BIwcGDwEnNzMRExQOAyMiJyYnNxYXFjMyNjcjDgEjIiY1NDYzMhYFQlg7ND5JRDJG%2FZ4K%2FsEKDQwL%2FsAPCAgWwBIOwA4SwA4SAtD%2BK6cBAgcIEj5SwHvDGjhQdUU%2BLhgSJw8QJSZUZRACFVEsaoaQbXukBN8%2FakpyTDb7qgwM%2FsEJCQFAEBMUBWAOEhIO%2BqAS%2FHJyAbAHGAUQDA0SOla5%2FXIFMz53bVIxEAgHcQcEDXVXFxyPZWmSvQAAAwAA%2F4AGQAWAAAsAGwBcAAAlNCYjIgYVFBYzMjYTERQGIyEiJjURNDYzITIWBRQHFhUWBxYHBgcWBwYHKwIiLgEnJicuATURNDY3PgE3Njc%2BAjc%2BAjc2MzIeBRUUDgEHDgIHITIWAQAmGhslJRsaJqAmGv7gGiYmGgEgGiYEoDcPAy4REQ8nCTpAhSRMEUKcV017IxomJBkYaDFEIRIaCQkHCxwUExouSS8hDwkBExMSAw4IBAEVTnLAGiYmGhslJQIb%2FYAaJiYaAoAaJiYaVj8sIEw9OD05JXBFTAIfGxorAQElGgKBGSUCAnJAVyESPCUqJyw8FBMVHzIoPB4YJkwsIgYYFA5yAAAAAAMAAP8ABkAFAAALABsAXAAAARQGIyImNTQ2MzIWExE0JiMhIgYVERQWMyEyNiUWFQ4BIyEeAhceAhUUDgUjIicuAicuAicmJy4BJy4BNRE0Njc2Nz4COwMWFxYHFhcWBxYHFAEAJhobJSUbGiagJhr%2B4BomJhoBIBomBGk3AXFO%2FusECA4DEhIUAQkPIS9JLhoTFBwLBwkJGhIhRDFoGBkkJhoje01XnEIRTCSFQDoJJw8RES4DA8AaJiYaGyUl%2FeUCgBomJhr9gBomJq89WE5yDhQYBiUoTSYYHjwoMh8VExQ8LCcqJTwSIVdAcgICJRkCgRolAQErGhsfAkxFcCU5PTg9TCAAAAwAAP%2BABgAFgAAJAA8AFwArAD0AXABkAH8AjACeALIAwgAAJTU0IyIHFRYzMjczNTQiFSUVIxEjESM1BREjNQYjIicmNREzERQXFjMyNxEFFRQHBiMiJxUjETMVNjMyFxYXFRQHBgcGIyInJj0BNDc2MhcWHQEjFRQzMjc0NjQ1ARUUIj0BNDIBNCcuAScmISAHDgEHBhUUFx4BFxYgNz4BNzYBEyMHJyMeARcWFxUzJTU0JyYjIgcGHQEUFxYzMjc2FzMRIxEGIyInJjURIxEUFxYzMjcBERQGIyEiJjURNDYzITIWA5cdERAQER24QkL9xVBKTgGxQyclIQkGQgEBDhQWAT8HDCkjIUNDICQpDAf7AgMMGzU0HRUUHWYbFYUiGAYB%2FoFAQAIVEwpCK4j%2B7P7tiCxBChQUCkEriQImiStBChT9DVpLMzVOCCAHIwtKASEVHTEzGxUVGzMxHRW1Q0MWFA8BAUMGCyAkKQH3qXf8QHepqXcDwHep6Z0yEOAQqyIzM%2BhG%2FlkBp0Z%2B%2FpEoLRwQJgEi%2FvIYAg8fARhvkjQVKikkAe2hKCoVtgkdDhYSKCYbO4E7GyYmHDpMQTMaAQwVCwM4nDMznDT9A7FTLDsFDw8FOyxXrbBUKzwFDw8FPCtUAzsBKMPDF1wXZzfJeII6HSYmHTqCOh0mJhs8AXL%2B5R8QAhgBEP7bJRIbLQEI%2FEB3qal3A8B3qakAAAALABv%2FAAXlBgAACQAPABcAKwA9AFsAYwB9AIkAmwCvAAABFRQjIicRNjMyBRUjNTQyJTM1IRUzETMhMxEjEQYjIicmNREjERQXFjMyNyU1NCcmIyIHNSMRMzUWMzI3NiU1IxQHBiMiPQEzNTQnJiMiBwYdARQXFjMyNzY3NgE1NCIdARQyARQHDgEHBiAnLgEnJjU0Nz4BNzYgFx4BFxYBMwMRIxEmJyYnMxMFFRQHBiMiJyY9ATQ3NjMyFxYlESM1BiMiJyY1ETMRFBcWMzI3EQPLJxcWFhcnAVJaWvw6a%2F7IaWQBIFlZHhsSAwFZCAwuMDYBrQkRNjIrWVktMDYRCQFSWwIHIS6zGydDRCccHSdFSCQSAwL9oFZWAs8aDlg6uP0auDpZDRoaDlg7twLmuDpZDRr8GmZ5ZA4vJRxqRwG2HCVFQyYcHCZDRSUcAU9bNTIuDQhbAQMSGx4BJNNDFgEtFkQuLkSWXl79xwHu%2FoYqFQMgAWz%2BeTEYJT1exUkaODbZ%2FWkwNzcbUw0zCiRFV2dPJTMzJU%2BtTyUzNRsbCQPC0kVF0kb9V%2Bp0O1AGFRUGUDtw7up0O1AHFBQHUDtwBA7%2Bcf7xAQ9KimdU%2FvlGr1ElMzMmUK9QJTMzJVL%2BDTc%2BJRgzAYr%2BkSECFisBfQAAAgAF%2F4AFewX2ABMAJwAAAQYDBisBIiY3EzInAyY3NjsBMhcBFgcBFQEWBwYrASInATYBNjsBMgJVCvcbJu8VFAr9AQGhDAsJF%2B8oGgPKCwv98AFQCwoKFu8qGP6tEgIBGSfxFgNlEv5KLiITAcABARcWDw8tAWQQFfxaAf2ZFBEPLQJuIAOOLQAAAAADAAD%2FgAYABYAAEwAnADcAAAE0JyYrASIHBh8BFQMGFxY7ATI3ASYrASIHARYBFjsBMjc2JwE1ATYXERQGIyEiJjURNDYzITIWAq1%2BFR%2B4EggHCH3ECQkIELkfEwM3BxG7HhP%2BZQEBBRQguBIHCAn%2B%2FAGZCNupd%2FxAd6mpdwPAd6kDAwHdIgsMEdgB%2FqYODg0kA1EMI%2F0nAv4hIwwNDwHcAQLTEIj8QHepqXcDwHepqQAAAAACAAAAAAcABQAADwAvAAAANCcBJgcGFREUFxYzMjcBJBQOAQcOAQcGICcuAScuAjQ%2BATc%2BATc2IBceARceAQUAHv4AHyIhIRAPFA4CAAIeAg8PEGpH3vx%2B3kdrEA4PAgIPDxBqR94Dgt5HaxAODwJbShEBQBQSEib9gCYSCAoBQJbAbKVBSWQIGRkIZElBpWzAbKVBSWQIGRkIZElBpQAABQBA%2F4AGwAWKAAMAEwAXABsAHwAACQQVARUnBzUBNRcBNRc3FQkMAZIB7v6q%2FhYFLP4WAQH%2BF5MBVgEBAVf9UQFW%2FhL%2BrgUuAVL%2BF%2F6pAVcB6f6u%2FhIDPf7P%2FuMBP%2F7kbP7bAQEBAQElbGABHAIBAQL%2B5ATY%2FuP%2B0AEO%2FvL%2B8f7BAR0Dfv7B%2FvIBMAAGAAv%2FAAX1BgAABwALAA8AEwAXABsAAAUhESMRIREjJTcFBwE3AQcBNwEHAwEHCQE1IRUFCfuioAWeoPxSIQMPIf1YQwLVQ%2F30ZgJmZtkB3YD%2BI%2F2yAyBgAeD9gAKALJ2lnAIakv6tkQK2e%2F3%2FewN7%2FX9gAoH6oZ%2BfAAAABAAA%2F4AGAAWAABUAHwAvAD8AACURIxYVFA4BIyIANTQ3IxEUFjMhMjYANCYjIgYUFjMyATU0JisBIgYdARQWOwEyNjcRFAYjISImNRE0NjMhMhYFUocUgNyCxf7oFI0jGgQtGST%2B5LWAf7W1f4AB0Sgdrh0oKB2uHSiudFH7ilF0dFEEdlF0bgKIP0R%2B1XwBD8BEP%2F14GiMjAbP4r6%2F4rwKTpRwpKRylHSgo7fuKUXR0UQR2UXR0AAMAAP%2BABgAFgAAPABcAHwAAATIWFREUBiMhIiY1ETQ2MwA0JiIGFBYyJDQmIgYUFjIE4HepqXf8QHepqXcBmnywfHywArB8sHx8sAWAqXf8QHepqXcDwHep%2FKiwfHywfHywfHywfAAAAwAA%2F4AGAAWAAAIACQAVAAABEyEFMwkBMzchABACBCAkAhASJCAEAwDJ%2Fm4CNl7%2BNf41XmgCCgH7zv6f%2Fl7%2Bn87OAWEBogFhA5L%2BzuACs%2F1NoAEx%2Fl7%2Bn87OAWEBogFhzs4AAAUAAP9QBYEFowAKABYAKgBDAGcAAAEWBicuATY3Nh4BFy4BBw4BFx4BNz4BEy4CJyQFDgIHHgIXFjc%2BAhMOAwcOASYnLgMnJic%2FARYgNx4BBhMGAw4CBwYlJicuBCcuAyc%2BBDc2NyQFFhceAQMvCHU1Jx0cJiRJN28OxmI%2FSwMEk1xbeuQUSCwx%2Ft3%2B7SsuQBIeXDc85Nw%2FNVxWCA8NLCRWz8VnLkdSQBQZIAYS3wI34BUGELUaVQUsKyH8%2Fpr4kg8VDQUHAgkjFRoJAx0iOCQefbwBewEpmzwQAQKlP0wgEVJSERIMOxFrciwceUVbgAgImAJ6GyMJCC8xBwoiGhwjCQcdHAgII%2FwSGmVDSRQwLwMRCBQiNSNgxBAJlJQGIjgDuKf%2BGB40HBF%2BJhtwDB0pGzQJMsh7rEgaLR4eDwsuEiVXLkwUPgAGAAD%2FgAYABYAACAATACcAOgBZAGkAAAE0JgcGFhcWNjcWDgEmJyY2NzYWEw4CBwYnLgInPgI3NhceAhM0NiYnBiAnDwEWFxYXFjc%2BAhM2JyYnJgUGBw4CBx4CFx4DFxYXBDc%2BAjcSAREUBiMhIiY1ETQ2MyEyFgNQUiQrASsnVEoIWIRqAwI3LUaPthRDJyybqSwmQxUNLiIextIhJDI4CwUPof5oogwFGg8vnfmzIh4PhwkRK3DY%2FvGEXiYrMwQIFiQGAQgGEg1pswEDtRgfHwQwASipd%2FxAd6mpdwPAd6kCmisuFhRpEhc2PUJuDFxDMVgUH1IBOhUaBgUUFAYHGRQTGAcFIyIFBxn9AwcnGQRqagYMmjhRGy5jE0FqAsc1FjchPxsMIg8UMB5EjMokBTQUIgtQFBxbDRQmFQELATL8QHepqXcDwHepqQAAAAABAET%2FgAQABgAAIgAAJRcOAQcGLgM1ESM1PgQ3PgE7AREhFSERFB4CNzYDsFAXsFlorXBOIahIckQwFAUBBwT0AU3%2Bsg0gQzBOz%2B0jPgECOFx4eDoCINcaV11vVy0FB%2F5Y%2FP36HjQ1HgECAAACAAD%2FgAYABYAAHwAvAAAlJwYjBi4CNREhNSERIyIHDgMHFTMRFB4CNz4BAREUBiMhIiY1ETQ2MyEyFgRwPiw7JDQZCgEB%2FwC8CAEFGTVlRIIrV5tjRYcBoql3%2FEB3qal3A8B3qUu3FgEXKCkXAY7CAUYKLFZoVhml%2Fl45dGpBAgEwBC%2F8QHepqXcDwHepqQABAAP%2FQAL9BgAAFwAAABYHAQYjIicBJjc2OwERNDY7ATIWFREzAvUQDf6iCg0OCv6dDQgJFOASDsAOEuABACYQ%2FoAKCgGAEBMTBOAOEhIO%2ByAAAAABAAP%2FAAL9BcAAFwAAAQYrAREUBisBIiY1ESMiJjcBNjMyFwEWAv0JFOASDsAOEuAVEA0BXgoNDgoBYw0EExP7IA4SEg4E4CYQAYAKCv6AEAAAAAABAEABAwcAA%2F0AFwAAARUUBiMhFRQGJwEmNTQ3ATYXFh0BITIWBwASDvsgJhD%2BgAoKAYAQExME4A4SAuDADhLgFRANAV4KDQ4KAWIOCAkU4BIAAAABAAABAwbAA%2F0AFwAAARQHAQYnJj0BISImPQE0NjMhNTQ2FwEWBsAK%2FoAQExP7IA4SEg4E4CYQAYAKAoMOCv6eDggJFOASDsAOEuAVEA3%2BogoAAAACAAD%2FgAVxBgAAJgA4AAABBgcGIyInJiMiBwYjIgMCNTQ3NjMyFxYzMjc2MzIXFhcGBwYVFBYBFAcGBwYHBgc2NzY3HgEXFBYFcSdUgYAxW1ZBPVFRM5iVk3FwrEhpaCItYmZHd140NE8jQYr%2B4R0ePzY2JUMDS0qwAQMBAQFBfX3EICAhIgEDAQXy5JKQHh4iIkEkQEMzXnF8xgR6PUtLPzYSCwaVbGspAxADBAwAAAQAAP8ABoAFgAADAAcACwAPAAABESURAREhEQERJREBESERAqr9VgKq%2FVYGgPx1A4v8dQIS%2FXVeAi0C5%2F1tAjX9d%2FzufQKVA2785gKdAAAABgAA%2FwAFgAV%2BAAcADwAcADcATQBbAAAAMjY0JiIGFAQyNjQmIgYUBTIWFREUBiImNRE0NgURFAYrARUUBiImPQEjFRQGIyImNScjIiY1EQEeARUhNDY3JyY3Nh8BNjIXNzYXFgcBERQGIyImNRE0NjMyFgHdIBcXIBYBvCAWFiAX%2FPsqPDtWPDwET0AtSzxWPIo8Kyo8AUouQAKua4D8Y4BsRwcMDQdIX9RfSAcNDAcBljwrKjw8Kis8BB0XIBcXIBcXIBcXIM88Kv5SKzw8KwGuKjwT%2FWYuQOMrPDwr4%2BMrPDwr40AuApoBlTfFdXXFN4MNBwYMhCoqhAwGBw39lf5SKzw8KwGuKzs7AAkAC%2F8ABfkGAAAIAA8AIgEHARQBJAExAUcB7wAAAQ4BIwY1NDcyFwYmBzYXFgEmDgEHBgcGFxY2Nz4DPAEmATQnPgMmNC4CJy4BJxYXFgcGBwYuAScuBCcuAycmNiYnLgEnLgE2NzYWBwYWNzY0NS4DJwYXFCMuAQYnNiYnJgYHBh4BNzY3NgciJicmNhcyFgYHBgcOAQcOARceAxcWNz4DNzYXHgEGBw4BBwYHBicmFxYXFjc%2BBRYXFA4FBw4CJyYnJgcGFRQOAhcOAQcGFgcGJyYnJjc2DwEGFx4BFx4BFx4BBgceAhU2Jy4CNz4BFxY3Njc2FxYHBgcGFhc%2BATc2JjY3NjM%2BARYBNiYnJhUWFzIHBjMyBS4CJy4EBwYWFxY2JzQuAQcGFxYXFhcUPwE0LgEnJiMOARYHDgIXFj4BNzYyNgEeAg4FBw4BBw4BJy4DJyYjIgYHDgMnLgEnLgQnJjY3Ni4BNjc%2BATc%2BATUWBwYnJgcGFx4DBxQGFxYXHgEXHgI3PgIuAScmJyYHBicmNz4CNz4DNzY3JicmNjc2MzYWFx4BBwYXFhceARcWDgEHDgMnLgQnJg4BFxYHBhY2Nz4BNz4BLgEnLgE2Nx4FApcLCQQFEwVcBA8KGAgD%2FpsEBAUDAwcHBgQRBAECAgECA1U3BAcDAwIHAQkBCkojGCFXIQsnHw8BCwkVEg0NAQ4iGRYEBBQLJw87BggGFhklHAoLEhUNBREZFhBrEgEJKRkDASIcGx0CAQkRBwoGBAsHEQEBFBgRFAEBFgkIJwENBQoOFgobFi83AiobIAUJCwUDCQwUSQksGhk2CgEBEBkqESYiIRsWDQICBgYLBw0DHE82FhUqFgMBHh0NEhdPCAIBBggVIAQCBgQFBCQuBSgEFKgJEAMfHggqDi4nBA0GAQMUCi54hSwXCwwCARYJBhUDFwICEQIWDyQBQ079oQMLBgkCAwoDAwsDAaMCCREGBQkFBgIDDioSCQu0CgwDDgcCAg4ECDgFDQMPCQkFAwIBCgIEBAgOCAEQDgI3FBYCBxgXJRomCCZfHBFmJhIXCiIeLFYTTBQsRyQzHB2kQBNAJCsYBQoiAQEKCgEKDlYRHhgVNSAzIgkNEgIMBQQBIgMDIhSBIxhkQRcrKwMSFAp5MEQtCwQDAQESHgcIJRYmFG4ODAQCNFAnQTVqJDlFBQUjImM3WQ8IBhILChsbNiISGxIJDgIWJhIQFBMKOFooOz1JNTALJyAhIQMOAQ4PGhAbBGUBEwEGDAMOAQ8DCw0G%2FlIBCBEFBQgKAgEQCgMIBAUDAwL%2BmhIYDxkbEB0KIgcrBTBuFBQ%2FonQoAgQtei4nPB8SDAE%2BUh4kFhVBIggDHgEBMjQBA0IZEw8HBEAFHigVCQMIfg8JAwQHOUIBATkfDywfAgMLCQEdExYeASokBA8ODBcBDhoFCBcPCwECEQEMCREJDgYDCw0DBh8EEwQFBwIEBA8XAQEMEBMPCQQJAgUFBAYDBwEOPBoMCz4fCQMHGT8wRB0GqDkSZggYFR8%2FHBwTAQVBZQwgBBeHCQ8uKAMPOzEuGEQIEAgCBQkHNBAPSCYIBi4ZQxcdARN0IBVpWRoSJSALAyoRGgICCQUBDxTCCAcDBAMKBgcBAhA3BAES4AsRCAEBBgEBBBsDBewCBggCDwENDQYEDQUGAwYMAwEE%2BsgMGRcWFhEUDRIEE0obEAcSCR0WEQEBAwEBHCAZAQE8DQQLBwwRCxdXCxAwJSQJDAQKEiIiSSEUBQMNDyoGGAwWCw9EDhEJBhkIBiAOAwYsNEEnEb40SiIJGBAWHS4wEhVmNkQUjzRwxlp7KxUBHRsqn0Rfd3FpO9BXMUcoAgIiJR4BAQgTDB0FJQ5UN0Z9QUcFITEjGRIlIBkLC0pHDB8zHhsLDwAACAAA%2F4AGAAWAAA4AIAAnAC4AMgA%2BAFYAYgAAJSYDIwcOBAcnFjMyAyYnBCEGFRQWFz4DPwE%2BAScmJw4BByAFJgcWFz4BASIHNgUmIyIHFhc%2BBBMmJwcOBAcWFx4BFz4BMh4EFzYQAgQgJAIQEiQgBAQAKmICAhA2lH6IIw%2B46oQ9FSD%2Byf6WAVhQMpOKeyYlBBJneHyKwCABLgPc0sdXKW%2BU%2FPEBAQECT7n4TE%2BDc0V6RzwP5AOSAQkUQ0t9RRkTAgkDJE1GRDw1Kx4Kes7%2Bn%2F5e%2Fp%2FOzgFhAaIBYSTxAQEBBhVNV45NC5YCkzE%2BXQcOfOFZWZteRA4NAQXW1aVB8pfvPB%2Fv5kvlA20BAZGkE6rUGkU2PBX%2BIuiyAQwZQDlJHDUqBhcFBQQDBQYHBQLI%2Fl7%2Bn87OAWEBogFhzs4AAAACAAD%2FgAYABYAAPgBeAAABNC4DLwEuBDU0MzIeAzMyNjU0LgEjIg4CFRQeAh8BFhcWFRQGIyIuAyMiBhUUFjMyPgIFFAYjIicGIyIkJgI1NDcmNTQ2MzIXNjMyBBYSFRQHFgSVJzpYTTFoHhwqEg%2BQK0QoJCwaLzlwrGBEgG9DJkpWPJJaFiBQQTNRMSoyHTIz9KlJhm9CAWvhn4JoTUmP%2Fvu9bxBQ4Z%2BCaE1JjwEFvW8QUAHZMlM2LBgLGAcHEBAaEU0YISIYQC03WS4fP29JPVs8JQ4kFg4UKCczIC0tIDwtXIMlRnWQn%2BFQEG%2B9AQWPSU1ogp%2FhUBBvvf77j0lNaAAAAAMALP%2BABMsGAAAjAD8ARAAAATc2JiMhIgYVERQ3AT4BOwEyNjc2NzYmIyEiJj0BNDYzITI2NwYKAQcOBCMhIgcGAQ4BJyY1ETQ2MyEyFgcDNhoBA%2BglBRwV%2FTgXHwYBIxceIe8WHgMYDQQfFf7aHSYmHQFaEiLmD00%2BBAYGFhsyIf7xDQkI%2Fl4WSQw3TFIDeF9AFp4EPk0ETsIXIiIU%2B7MHBgFgGg8dD4I9FSYmHSodJRvuSf59%2FscRFhUsFhQKCf4bGQcJFkwFgjdfamr86hEBOQGDAAAAAAMAAP%2BABgAFgAAPAB8ALwAAJRE0JiMhIgYVERQWMyEyNgERNCYjISIGFREUFjMhMjYTERQGIyEiJjURNDYzITIWAsASDv4gDhISDgHgDhICoBIO%2FiAOEhIOAeAOEqAmGvqAGiYmGgWAGibABAAOEhIO%2FAAOEhIBjgKADhISDv2ADhISAw76gBomJhoFgBomJgAAAAACAAD%2FAAUABeAAMQA5AAABFAYjIicDIxUTFhUUBisBERQGKwEiJjURIyImNTQ3EzUjAwYjIiY1NDcBNjMhMhcBFgAUBiImNDYyBQA4KDMd4y33CSYawEIuoC5CwBomCfct4x0zKDgQAQBJZwGAZ0kBABD%2BYIO6g4O6AeAoOCsBVYT%2BZQ8SGib%2B8C5CQi4BECYaEg8Bm4T%2Bqys4KB0YAYBra%2F6AGANguoODuoMAAgAA%2FwAEAAXgACUALQAAAREUBiImNREjERQGIiY1ESMRFAYiJjURIxEUBiImNRE0NjMhMhYAFAYiJjQ2MgQAOFA4QEJcQkBCXEJAOFA4cFACgFBw%2FuCDuoODugNA%2FmAoODgoAWD8cC5CQi4B0P4wLkJCLgOQ%2FqAoODgoAaBQcHABzbqDg7qDAAIAAP%2BABgAFgAAVACEAACUBPgEmJyYOAQcGIyInLgIHDgEWFyQQAgQgJAIQEiQgBAMFAV4QER0vKFY9GCQ8OyQYPVYpLh0REARYzv6f%2Fl7%2Bn87OAWEBogFh6gHZFkpgHxoBIhwoKBwiARofYEoWjv5e%2Fp%2FOzgFhAaIBYc7OAAAAAgAs%2FwAG1AX%2FAA8ASQAAADQuAiIOAhQeAjI%2BASUGBwURFAcGJyUHBiIvAQUGJyY1ESUmJyY%2FAScmNzY3JRE0NzYXBTc2Mh8BJTYXFhURBRYXFg8BFxYFwFub1erVm1tbm9Xq1ZsBbwQQ%2FtwNDw7%2B3LQKIAq0%2FtwODw3%2B3BAEBQm0tAkFBBABJA0PDgEktAkiCbQBJA4PDQEkEAQFCbS0CQIL6tWbW1ub1erVm1tbmzUPBWD%2BzhAKCgZe%2BA0N%2BF4GCgoQATJgBQ8RDPj4DRAPBWABMhAKCgZe%2BAwM%2BF4GCgoQ%2Fs5gBQ8QDfj4DAACAAD%2FgAW%2BBX8AEgAxAAAlBiMiJAI1NDcGAhUUHgIzMiQlBgQjIiQmAjU0EjYkNzYXFgcOARUUHgEzMjc2Fx4BBO42OLb%2ByrRoyf9mq%2B2CkAEDASZe%2FoXgnP7kznpzxQESmSwREiFWW5L6lHZuKR8OB%2BkJtAE2tsClPP6u14Ltq2Z7w8vzes4BHJyZARfMfQYCKSkfTs9zlPqSMxIfDigAAwBA%2F4AGwAWAAAsAGwArAAAANCYjISIGFBYzITIBERQGIyEiJjURNDYzITIWExEUBiMhIiY1ETQ2MyEyFgRAJhr%2FABomJhoBABoCZiYa%2BoAaJiYaBYAaJkAmGvoAGiYmGgYAGiYCpjQmJjQmAQD8QBomJhoDwBomJgGm%2FwAaJiYaAQAaJiYAAAIAIP%2BgBmAFwABCAEgAAAAUBisBFAcXFhQHBiIvAQ4EIxEjESIuAi8BBwYjIicuAT8BJjUjIiY0NjsBEScmNDYyHwEhNzYyFhQPAREzMgEhNDYgFgZgJhrgQ9ATExI2EsYFFEBCYjCAM2VJOw4PtxQcGBMTAxHKOuAaJiYa4K0TJjQTrQNMrRM0JhOt4Br%2BRv2AuwEKuwJaNCard9ETNBMTE8UFECkgGgOA%2FIAbJycNDs8VEBI1FONyoCY0JgEmrRM0JhOtrRMmNBOt%2FtoCAIW7uwAAAf%2F%2FAAEHfQRHAIYAAAEWBwYHBgcGFxYXMx8CFhceAg4BIwUGJi8BLgMHDgQXFAYPAQYHIwYuAi8BLgMCJyY0PwE2MyUeAR8BFhceAR8BHgMyNz4EJy4BLwEmJyY3Njc2FxYXHgMUDgEVFAYeAhceAT4CNzY3PgE%2FAT4CFyU2FhcHfRetGClODBEfEUABAQECjTIDBwcIKib%2FABhAFBQeUDlBGAMKGBMPAQcEBBIjc0eWcV0YGQojbGiNPAYDBA8qARIMFgUFEAgUNA8QHTYrKBwNAgYSCQoFAg4HBhk8DRIRFTW6UjUUGw4HAgMCAQYRDggSIio%2BJTwvBAwFBAIGFAoBICcyBgP4QOYgNWQfKSgVPQEBAoNaBQ8mHhkEBRQMDBVWRS8IAQUYI0UrDxkGBRMDBClBQxgYCiiOoAEGjRAWBQYTAgIJBAMLFTJrHB08WDEcBQEIJDpoSShCDQwiCQIWEwsaAgEMBREfITo0WSYLPiIvHwkCBBorWz5oeQoPAwMBAwMBAgUPCQAABwAA%2F6oG9wVLAAoAFQAhAC8AVQBpAH8AACU2JicmBgcGHgE2NzYmJyYGBwYXFjYXDgEnLgE3PgEXHgElLgEkBwYEFx4BBDc2JCUUDgIEICQuATU0Ejc2JBcWBwYeATY%2FATYyFxYHDgEeARceAgIeAQcOAScuATc2JgcGJicmNjc2JR4BBw4BLgE3NiYnLgEHBi4BNjc2FgKjFRQjIk4VFhJEUXQICQ0OHQcRHg4etS3ib2tRLy%2FRam9fAQsJoP7%2Fkt%2F%2B2w4JoAEBkt8BJQEmSpDB%2Fv3%2B5v701YKLgKkBWUpBLQQGDg8GBovWLi0tAgUOCgw5XER0VBkTCCsXFxYHFFg%2FGCoEBRoYPAFVVzMnCTI2GggcJD4%2BrFccMAwfHHvy%2FCJGDw4aISJFIBubDRsFBQsNHw4FC15mYCQiuV9dXBsdtTxglEYOF%2B2SYJRGDhftjkSPg2g%2BQ3e3bHMBBICphkpAkQ4MAgMCAjs9P3MNDgsEBBI6aQJfXns4FxYHCCsXP2ANBRoYGCkFDU9g%2FXMbGhIyG1K0REU1EgYfOC8GGksAAAAAAwAA%2F4AGAAVyAAkAEwAdAAAFBiMiJz4BNx4BAREUAgcmETQSJAEQByYCNREWBBIEbavFxKuKwyIjw%2F6b%2Fcy1pwEkBDW1zP2zASSnIl5eV%2FiQkPgFPf4b%2FP5hY9cBGLsBRdb9Kv7o12MBn%2FwB5R7W%2FrsAAAABAAD%2FAAV6BgAAawAAAQ4DLgMvAQYAByImNDYzNiQ3DgIuAyc%2BAR4CFzY3DgIuBSc%2BAR4FHwE2NS4FNjceBA4CDwEWFAc%2BBRYXDgYmLwEGBz4FFgV6IFheaGNeTzwQEXH%2Bn9ATGhoTrQErZiRIXlhiVlMhcsiHcj8ZNRoHFkdEX1JWQC0GRn9iVj0zIRYFBAwIG0c4NA4mM0ltPCQFBhQSCAcBAQMOLzZYX4FEAic9TlVUTDsRERcyBhhLUHd0jgGxUHQ9IAMOHhkKCuT%2B%2BQEaJhkB1bwOEggNLEp%2BUy8UI05MLIOgAQMCAxEdOEpzRhwREyk7Pz8xDxB6SQYURUpwcY1EGUlQWlhTRjYPDwVbGgcXPzU6HwIXTn9SPR4SAQMDA5OIBxc7LiYCMQAEABX%2FAATrBQAADAAQABQAHgAAARUUBisBAREhIiY9AQEVIREBFSERJRUhNTQ2MyEyFgTrc1E5%2Fvz971FzBNb7KgTW%2ByoE1vsqc1EDTlFzARtCVXf%2B8wENd1VCAUb%2FAP8BSP8A%2F4xDQ1R3dwADAAD%2FgAYABYAAGQAlADEAAAAUBwEGIyImPQEhIiY9ATQ2MyE1NDYzMhcBFhAuASAOARAeASA2ABACBCAkAhASJCAEBIAJ%2FsAJDg0T%2FqANExMNAWASDgwMAT%2Bpkvr%2B2PqSkvoBKPoBcs7%2Bn%2F5e%2Fp%2FOzgFhAaIBYQKOHAn%2BwAkTDcATDcANE8AOEgr%2BwasBKPqSkvr%2B2PqSkgJf%2Fl7%2Bn87OAWEBogFhzs4AAAAAAwAA%2F4AGAAWAABkAJQAxAAABFRQGIyEVFAYjIicBJjQ3ATYzMhYdASEyFhIQLgEgDgEQHgEgNgAQAgQgJAIQEiQgBASAEw3%2BoBIODAz%2BwQkJAUAJDg0TAWANE6CS%2Bv7Y%2BpKS%2BgEo%2BgFyzv6f%2Fl7%2Bn87OAWEBogFhAuDADRPADhIKAT8JHAkBQAkTDcAT%2Fv8BKPqSkvr%2B2PqSkgJf%2Fl7%2Bn87OAWEBogFhzs4AAAMAAP%2BABgAFgAAPAB8ALwAAAREUBiMiJwEmNDcBNjMyFgERNCYjISIGFREUFjMhMjYBERQGIyEiJjURNDYzITIWBAAmGhQR%2FkAbGwHAERQaJgEAEw38QA0TEw0DwA0TAQCpd%2FxAd6mpdwPAd6kDwP2AGiYMAUATQhMBQAwm%2FMYDwA0TEw38QA0TEwPN%2FEB3qal3A8B3qakAAwAA%2F4AGAAWAAAcAEwAfAAAAFAYiJjQ2MhIgDgEQHgEgPgEQJgQQAgQgJAIQEiQgBAQAltSWltQq%2Ftj6kpL6ASj6kpIBcs7%2Bn%2F5e%2Fp%2FOzgFhAaIBYQLq1JaW1JYBIJL6%2Ftj6kpL6ASj6vf5e%2Fp%2FOzgFhAaIBYc7OAAAAAAIAAP8ABl0F4AAVADYAAAEXBgQjIiQCNTQSNxcOARUUADMyPgElFwUGIyInAyEiJicDJjc%2BATMyFhUUBicTIRUhFyEyFxMD%2F2Y6%2FtC7nP73m9GqEXqSAQe5ftV1Ahs6%2FwANECgR7%2F4oGCUDYAIIDlY2Ql5oRCUBp%2F5pEAHHKBHkAV3Ms96bAQmctQEqPoM234W5%2FvmC3RpygAcjAd0hGAMLEBozP15CRWEH%2Ft%2BAgCP%2BOQAAAAIAAP%2BABgAFgAAjADMAAAE2JyYDNjMyBw4BIyInJicmBwYHDgEHFzYzMhceARcWMzITEhMRFAYjISImNRE0NjMhMhYFDAqr51EsJlULBIwjKycNIB6CO2kbbBs0TAs5Mg88D0RgneLc%2Bql3%2FEB3qal3A8B3qQOC2AYI%2FvMTYDncqTbJvQwHXRhgGEM0szfbN7MBJgEbAX%2F8QHepqXcDwHepqQAAAQAAAAAEgAWAAEQAAAEUAgQrASImNREHBiMiJyY9ATQ%2FATUHBiMiJyY9ATQ%2FATU0NjsBMhYdASU2Fh0BFAcFFSU2Fh0BFAcFETYANTQ2OwEyFgSAvf68v6AOEtcDBgoJDRfp1wMGCgkNF%2BkSDqAOEgF3DxoX%2FncBdw8aF%2F53vAEEEg6gDhICwL%2F%2BvL0SDgJjQgEGChCAFwhHXUIBBgoQgBcIR%2FoOEhIOtXQFFBCAFwh5XXQFFBCAFwh5%2FhkNARS%2BDhISAAMAAAAABYAFgAAjADMAQwAAARUUBiMhERQGKwEiJjURISImPQE0NjMhETQ2OwEyFhURITIWExE0JiMhIgYVERQWMyEyNhMRFAYjISImNRE0NjMhMhYEgBIO%2FqASDkAOEv6gDhISDgFgEg5ADhIBYA4SgF5C%2FMBCXl5CA0BCXoCpd%2FzAd6mpdwNAd6kC4EAOEv6gDhISDgFgEg5ADhIBYA4SEg7%2BoBL%2BMgNAQl5eQvzAQl5eA4L8wHepqXcDQHepqQAAAAAEAAD%2FgAiABQAAJwAvAD8AUAAAAQYrATUjIiY1NDcuATQ2NyY1NDY7ATUzMhchHgEXHgIUDgEHDgEHNxYUBxc2NCcBIQYHIgYPAQEOASsBAzMyAyMTMzIWFwEeBDMFISYCbG6egEANEwc6TU06BxMNQICebgRZKoEQWXotLXpZEIEqBjU1UURE%2B1UD99nvOXAbHP7gGlktYF0dnZ0dXWAuWBoBIAQOLzJJJAHI%2FAl0AaBAQC8hGBkCERgRAhkYIS9AQAcWAw8zLCQsMw8DFgf8JHAkHjCUMP7WJiowGBj%2B4BomAdAB4AHQJhr%2B4AQNIRkVUEAAAgAA%2F4AGgAYAAFIAVgAAATIWFRQPARcWFRQGIyImLwEFFxYVFAYjIiYvAQcGIyImNTQ2PwEDBwYjIiY1NDY%2FAScmNTQ2MzIWHwElJyY1NDYzMhYfATc2MzIWFRQGDwETNzYBJQMFBe8%2BU12sOAdUOy9NDzf%2ByjcIVDwvTA83mR0VPVE3LJxpnBoWPFI3LJ01CFQ8L0wPNgE2NghVOy9NDzWiFRY8VTwsnWmkGPz8ATZp%2FsoC%2BFE9YSE7pxUaO1Y2LaVqpBgXO1Y2LaM1CVA9L0wPNQE5NghRPC9MDzWfGBc8VTYtoGmgGBc7VjcsoTcGTzstSQ82%2FsQ4CP76aQE7awAAAAADAAD%2FgAYABYAADwApAEkAAAEyFhURFAYjISImNRE0NjMBEQYHDgEHBiM5ASInLgEnLgEnERQWMyEyNhE0JiMhIgYVFBYXHgEXHgYyPgU3JT4BBOB3qal3%2FEB3qal3A%2BAfISLFNWJCQmIuvy8MKgo4KANAKDg3KfzAKDg9JS%2B1JwMcDhwTGBUUFRgTHA4cAwELIz8FgKl3%2FEB3qal3A8B3qfvgAbQjFBZ%2BJEVFIHkgCCYI%2FkwoODgCZSk6OCglTxkgchoCEwkRCQoFBQoJEQkTAq4XTwAAAAAGAAD%2FAAcABgAABQA%2FAEcAUQBhAHEAABM0NwEmAgEUDgMHAwE2Nz4BJg8BJicmDgEeAR8BEwMBNjc%2BASYPASImIzYkMzIEFyMiBhUUHgYXFgUTFhcGIyInARYVFAIHEzY1NAAgBBYSEAIGBCAkJgIQEjYAICQ2EhACJiQgBAYCEBIWf0MBb8TuBQgFDwgbBEz%2B6i4qEw4TE81LfwwRBgMPDFB4qP7oLioTDhMTzQcgCmkBU8aTAQtpCjdKBAQMBhIHFgM%2F%2FgbtAQR%2BgXBpA3tf0K%2FrO%2FyiAWwBTPCOjvD%2BtP6U%2FrTwjo7wAVUBWgE95YiI5f7D%2Fqb%2Bw%2BWIiOUCgKOW%2FBNfAXQBCBMnPBxaDf8AAzoDBQIhHQEKAQkBDBITDgEI%2Frj%2BCANAAwUCIR0BCgGgu2pgUTcMGBMbDx4MJAVr0%2F15BgUsIARSrsPR%2Fp9mAqapayoCNI7w%2FrT%2BlP608I6O8AFMAWwBTPD5t4jlAT0BWgE95YiI5f7D%2Fqb%2Bw%2BUAAAACAAD%2FgAcABgAAEgAbAAABEQUmJCY1NDYkNxUGBBUUBBcRARMlNyYnNQQXBD7%2B8OT%2BjNbJAV3Z2f7pATXqA60l%2FfOTd6EBFcwGAPoAgBSk%2FZKM96QarCbgj5jmHgVQ%2Fj%2F%2BenJTRh2sIXwAAAADAAD%2FAAeABgAADAAmADAAAAkBFSMUBiMhIiY1IzUBIREzESERMxEhETMRIREzMhYdASE1NDY7AQUyFh0BITU0NjMDwAPAgCkc%2BgocKYABAAEAgAEAgAEAgAEAOxwp%2BYApHDsGOxwp%2BIApHAYA%2FoCAGiYmGoD%2FAP0AAwD9AAMA%2FQADAP0AJhpAQBomwCYagIAaJgAAAgAA%2F4AJAAWAAA0ANgAAARMWBgQgJCY3EwUWMjcAFAcBBiInJQ4BBxYVFAcTFgcGKwEiJyY3EyY1NDc2NyUmNDcBNjIXAQbuEgSs%2Ftb%2BpP7WrAQSAj4WNBYEUBb7oAQMBP10KzgGPzo6AgoJD8APCQoCOjpBC1f%2BsxYWBGAEDAQEYAK8%2FsRFdkVFdkUBPLUHBwIQLgj%2BoAEBziKbZSRJRSb%2BTw4LCwsLDgGxJkVJJs97aAguCAFgAQH%2BoAABAG3%2FgAWTBgAAIgAAARMmIyIHEyYAAicWMzI3HgESFz4DNxYzMjcxDgMHBgNbDT4rKUANKP7%2FsF06MitEP43BKiWRWngvNjU4OhxAI04KkgJD%2FT0LCwLDRQHFASiLDw9v7f7ERT3pk81XDg4nYzqGEfgAAAEAAP%2BABeEFgAAjAAABIRYVFAIEIyIkJgIQEjYkMyAXByYjIg4BEB4BMzI%2BAzchAwAC1Qy2%2Fq%2Fanf7kznl5zgEcnQEs19F7t4HbgIDbgVeSXkYhBv5MAu5DPdn%2Bq8B5zgEcAToBHM55ycl3gt%2F%2B%2BN%2BCMEhcUiUAAAUAAP8ABwAGAAAQABkAIgBOAF4AAAEWBwYgJyY3NjIXFjMyNzYyJBQGIiY1NDYyBRQGIiY0NjIWNzQmIgcmJxMXFBYyNjQmIyIHJyYHAwYHJiMiBhUUFhcGFRQEMzIkNTQnPgEkEAIGBCAkJgIQEjYkIAQWBEcQED7%2B7j4QEAYSBjB5eDEGEv7TNEo1NUoBvzVKNDRKNftGZCSCtT%2FINEo1NSU2Gt0TBkW0gSM0MkYlHwYBGMXGARgHHiQBZo7w%2FrT%2BlP608I6O8AFMAWwBTPABcRAPPj4PEAYGMTEG1Eo0NCUmNFolNDRKNTRSMUYkWgYBGy0lNDVKNTIxBRX%2ByAdaJUYxIzoPGx2OysqOIBkPObv%2BlP608I6O8AFMAWwBTPCOjvAAAAAABQAA%2F4AGAAWAAA8AGQAjAFEAYQAAARYHBiInJjc2MhcWMjc2MiUUBiImNTQ2MhYFFAYiJjU0NjIWNzQmIyIHJic3Fx4BMzI2NCYjIgcnJgcDBgcmIyIGFRQWFwYVFBYzMjY1NCc%2BAQERFAYjISImNRE0NjMhMhYDqw0NNew1DQ0FEAUqzioFEP7%2BLj4uLUAtAVIuPi4tQC3XPCsqH3GaNqsBLR8gLS0gMBW9EQQ8mm8eLCs8IBoF8Kmq8AYZHwEzqXf8QHepqXcDwHepAZcNDTU1DQ0GBioqBpYfLi4fIC0tIB8uLh8gLS1HKjwfTgTzJyAsLUAtKyoFEv70Bk0gPCoeMg0ZF3qtrXoZGA0xAeT8QHepqXcDwHepqQADAAD%2FgAYABYAAHgAwADwAAAE3NTQmIgYVERQGIiY9ASMVFBYzMjY1ETQ2MzIWHQEFNSMVFAYjIiY9AQcnFRQWMjYAEAIEICQCEBIkIAQDYlp0oHQcJhuXc1JRcxsUExsBiZYbFBMbWjx0onMBUc7%2Bn%2F5e%2Fp%2FOzgFhAaIBYQK5Gz5PcG9P%2FuUUGxsUeHpScnFQARgTHBwTNt96fhQbHBN7Ghx7UHJyAa3%2BXv6fzs4BYQGiAWHOzgAAAgAA%2F6MHgAVdAB4AMAAAATU0JiIGFREUBiMiJjURIREUFjI2NRE0NjMyFh0BBwUhERQGIyImNREXNxEUFjI2NQQmPFQ8%2FLGy%2BwFIPFQ8%2Fa%2Bw%2FMMBjwFI%2B7Kx%2FIPDPFQ8Azh2Kjw8Kv2cr%2Fj7sgEK%2FvorOzsrAmyr8vSsiDqh%2Fvay%2B%2FmwAQw9Ov7yKjs7KgAAAgAA%2F4AGAAWAAA0AHQAAJREhESEiBhURIREhMjYTERQGIyEiJjURNDYzITIWBcD9QP4gXYMCwAHgXYNAqXf8QHepqXcDwHepoAHgAsCDXf4g%2FUCDBB38QHepqXcDwHepqQAAAAgAAAAaCAAE5gAFAAkADQARABkAHQAlACkAAAEzESERIRkBIxEBETMRAxUzNRMhESE1ITUhJREjEQEhESE1ITUhJREjEQFIzP3sAUh7AZnNzc1SAhX96wFI%2FrgBSHsBmgIU%2FewBR%2F65AUd7BOb8KQK5%2FesBcf6PAhX9RwK5AR7MzP7i%2FFKjUqQBcf6PAhX8UqNSpAFx%2Fo8ABQAA%2F4AGAAWAAAkAEwAjADAAQAAAABQGIyInETYzMgAUBiMiJxE2MzIAECYjIgcGBwYHETc1FjMyAhAmIyIHIxE3NRYzMgERFAYjISImNRE0NjMhMhYEFkw1KxscKjX%2B9Uw1KxscKjUCfrB9FBMXN1d80zNCfaexfUpDutM3PX0DF6l3%2FEB3qal3A8B3qQJEgFoPARURAVGAWw8BFRH9MQEMvgNOOl8G%2FYQpzhMCaQEMviT8uCnOEwH4%2FEB3qal3A8B3qakAAAAKACn%2FCQfNBgAAggC8AMoAzgDcAOMA5wDpAO0A7wAAATYeAxceAhcOAgcuBSMPARYXHgcfARYOAgcmBiMiJyY1NDc%2BAicmBw4BIyIuAScmJwQjIiY1NDY3JSY0PgM3PgEzMhYXNjMyFhUUBg8CBhYzMjY1NC4CNTQ3JzY1NCc2MzIeBRc3DgMXNy4HJy4CKgEjIgc%2BBTceAj8BFRc2Nz4IPwEGBw4BBw4CBx4BFRQDPgEzMh4DFwYjIicBNxcHARYVFA4DByc%2BAjMBByc%2BATMyEzMXBwE1FQ8BPwIExkuJY2dBKyFbPEUweZwkLDwbJy5jSQoGBAkGLAcfBRIDBgEBAQcIEQMjhCAnIQIDAjs3ARgTJJc9GWVwHAYV%2Fh4fEBgRDgHmCAsVExsFBBcGDxoHowkRGREPtgEBpRYvkC83LwpEKwVSPiw3KhQVChgMMgMoLSMBPQURBw4GCgcJBAcPGhIvDn5bEChEPx1HCAwgIBYMFvd8HCwpGSIOIwsrCAcCKU%2F8tA44LBEDK%2FcnuTYJGx0XGQJ5ez1A%2FvkwbUkBoQMjOTM4BAcVT0Ec%2FkVgBgotDBPTHwopA3kBAgECAQJfAy9Gd2FIOGo3PR43PxAlnK28lWECBAUJBSUHHQweGSUWIRo%2FKUwPARUKEB9KFg05PRUCGjVdfpkUBBpwFhAPFwNqDhYNCgQFAgENIBElFhEPFgMoEBq3oDEkIgMUGBASEyxJGiAQAw4NJB9AHBkoKAILD9YFFQgPBgoFBQIDBAErHiEaLhtTCQktHAEBTAFfXxUkJxctETkTTA8JNValxisDCQoJEzYHC%2FxUGisfNi44BS0LAyQMsTD%2B0A8BBw8LCAcBKwINBwJ0FBEBDP18UwwGMQEBBQIDBAEAAAQAAP8SBgAF7gAXADYAXQCDAAAFJgcOASMiJyYjIgcOARceATY3PgI3NicmJyYjIgcGBwYXFjY3PgczMh4BFx4BNzYBNC4CIyIOASMGLgMHDgEHBhceATMyPgIXHgMXFjY3PgE3FAIGBCAkJgI1ND4FNz4DNz4BNxYXHgEXHgYEjwUTHnJKgUAFCAsPBwEIImtiMilXKwcMLBMUFzUvGB0xGg4JERcDDwYOCRAOEwsbIwsICgUKFwFaChctHiGAgiQbSU9YcDdzpAICTB1DRjmWdnogGk5BRxQjLyAcHTV80P7r%2FtD%2B5tWAJztSS1IvEw5KIz0eJCwIgTksrCsVJFVDUzcnMhMOFiIxBAwGFAogHAMDBCEbBwyELw4PCgwsGBQIBxQCDQQKBAYDAg8ODxEGBAwBLxYtLRxTVAEoOjooAQGbZXA0FBFBTUABAT1JPgEDIi4peM6k%2Fue%2FbHPHARygWad8cUtAHQoIJRQoGBxZUZsmHU4bDRhFSHZ%2BqwAAAAQAAP%2BABgAFgAAeADwAWgB4AAABDwIOAScOASMiJjU0NjcmNj8BFwcGFBcWMj8DAxcHJyYiBhQfAwcvAi4BNy4BNTQ2MzIWFzYWARQGIyImJwYmLwE3FxYyNjQvAzcfAh4BBx4BAxQGBxYGDwEnNzY0JiIPAyc%2FAj4BFz4BMzIWBC6glx5BrVUQcElVeFlFFi5BDJcLJSUlaCUel6G%2BDJgMJWhKJR2YoJehlx5ELBtGWnhVTHMMVKsDZ3hVSnIOVrtEC5cMJWhKJR6YoJigmB1ALxVMZQJmTBouQwyXDCVKaCUemKCYoZgdQ7hWC3NOVXgBz6CYHkAuFUZaeVVIcBBWrkEMmAslaCYlJR6YoAISDJgMJUppJR2YoJigmB5DuVcPcElVeWJKFC%2F7lVV5XkccLEQMmAwlSmglHpigmKCYHkCtVQtzBBdNdAtVt0MMmAwlaEolHpigmKCYHkMtGktmeQAACAAA%2FwAGAAYAAEUAWABbAF8AZwBqAIkAowAAAQYmLwEmJy4BJwYHBgcOASc2Nz4BNz4BNyYHDgIHBhQHBgcGJyYnJic%2BATc2NzYzPgE3PgIXFgcUDgEHBgcXHgEXHgEDFgcGBwYjJicmJzceATY3NjcyBRcnASURBQEXAycDFzcXAQURARcHJwYHBisBIiYnJjU0NjMyHgEXHgEzMjY3PgI3ARElBgQjIic0JxE2NzY3NjcRBTIsATMyFRECjgEXFBQsKwdEBENDURgEHwMGTBWBDhFEAghmCCceAgIBBRoXGBIKBAEGJQs6L2QCCkILCRkEBAIDGRwDGTRADH0FBA3PAwcMJh4eGhcOBAEDIRQwJBMRAr4%2Fi%2Fv4Arb9SgTZZrVk2GYt0%2F4uAj3%2B%2Bp42KIKSOiFUT%2FE%2FCAoIBBwhBEmtR1%2BQVQ8fJQoBlfz6Dv0uBw0FAQMBBQ9qKwIuAgE9ATsEFAHKAwcICRQdBTUCZ05fDwIEAgRYGLYbHokJASICCwgBAhEBCgUHBwQRBhECBgMQECMCIwQDCgEBDBUCMjkFMlEcBjQCATEB4A8NFw8MAxcPGgMDBAQODAKS4yr9megECOn9Nh8CkR%2F96B9uQQM7uAF8%2BhENoEJTGQxOLgcJCAsPEgIlMR0kBxEVBgSA%2B8n2BvMNAQIENgkBBgUjDwGAxm5rFf5eAAwAAP8ABwAGAAAPACcANwBHAFcAZwB3AIcAlwCnALcAwAAAATIWFREUBisBIiY1ETQ2MwUeARURFAYjISImNRE0NjMhMhYfAR4BFQE1NCYrASIGHQEUFjsBMjYRNTQmKwEiBh0BFBY7ATI2ETU0JisBIgYdARQWOwEyNgE1NCYrASIGHQEUFjsBMjYRNTQmKwEiBh0BFBY7ATI2ETU0JisBIgYdARQWOwEyNgE1NCYrASIGHQEUFjsBMjYRNTQmKwEiBh0BFBY7ATI2ETU0JisBIgYdARQWOwEyNhMRIyImPQEhEQEgQl5eQoBCXl5CBeA6RpZq%2FKBCXjgoAqAoYByYHCj9IBIOgA4SEg6ADhISDoAOEhIOgA4SEg6ADhISDoAOEgEAEg6ADhISDoAOEhIOgA4SEg6ADhISDoAOEhIOgA4SAQASDoAOEhIOgA4SEg6ADhISDoAOEhIOgA4SEg6ADhJgoCg4%2FYAEgF5C%2B8BCXl5CBEBCXqMidkX9AGqWXkIGACg4KByYHGAo%2B4CADhISDoAOEhIBDoAOEhIOgA4SEgEOgA4SEg6ADhIS%2Fg6ADhISDoAOEhIBDoAOEhIOgA4SEgEOgA4SEg6ADhIS%2Fg6ADhISDoAOEhIBDoAOEhIOgA4SEgEOgA4SEg6ADhISAY4BADgooP4AABQAAP8ABYAGAAAPAB8ALwA%2FAE8AXwBvAH8AjwCfAK8AvwDPAN8A7wD%2FAQ8BHwEvAT8AAAEyFhURFAYjISImNRE0NjMBFRQWOwEyNj0BNCYrASIGERUUFjsBMjY9ATQmKwEiBhEVFBY7ATI2PQE0JisBIgYRFRQWOwEyNj0BNCYrASIGAzU0JisBIgYdARQWOwEyNhE1NCYrASIGHQEUFjsBMjYRNTQmKwEiBh0BFB