Skip to content

Instantly share code, notes, and snippets.

@sachsmc
Last active February 17, 2016 18:47
Show Gist options
  • Save sachsmc/7476d19415e28b587795 to your computer and use it in GitHub Desktop.
Save sachsmc/7476d19415e28b587795 to your computer and use it in GitHub Desktop.
Spotify web API
license: mit
This file has been truncated, but you can view the full file.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="pandoc" />
<title></title>
<script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEltcGxlbWVudCBhIHZhZ3VlIGZhY3NpbWlsaWUgb2YgalF1ZXJ5J3MgZGF0YSBtZXRob2QKICBmdW5jdGlvbiBlbGVtZW50RGF0YShlbCwgbmFtZSwgdmFsdWUpIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDIpIHsKICAgICAgcmV0dXJuIGVsWyJodG1sd2lkZ2V0X2RhdGFfIiArIG5hbWVdOwogICAgfSBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDMpIHsKICAgICAgZWxbImh0bWx3aWRnZXRfZGF0YV8iICsgbmFtZV0gPSB2YWx1ZTsKICAgICAgcmV0dXJuIGVsOwogICAgfSBlbHNlIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBlbGVtZW50RGF0YTogIiArCiAgICAgICAgYXJndW1lbnRzLmxlbmd0aCk7CiAgICB9CiAgfQoKICAvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM0NDYxNzAvZXNjYXBlLXN0cmluZy1mb3ItdXNlLWluLWphdmFzY3JpcHQtcmVnZXgKICBmdW5jdGlvbiBlc2NhcGVSZWdFeHAoc3RyKSB7CiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1tcLVxbXF1cL1x7XH1cKFwpXCpcK1w/XC5cXFxeXCRcfF0vZywgIlxcJCYiKTsKICB9CgogIGZ1bmN0aW9uIGhhc0NsYXNzKGVsLCBjbGFzc05hbWUpIHsKICAgIHZhciByZSA9IG5ldyBSZWdFeHAoIlxcYiIgKyBlc2NhcGVSZWdFeHAoY2xhc3NOYW1lKSArICJcXGIiKTsKICAgIHJldHVybiByZS50ZXN0KGVsLmNsYXNzTmFtZSk7CiAgfQoKICAvLyBlbGVtZW50cyAtIGFycmF5IChvciBhcnJheS1saWtlIG9iamVjdCkgb2YgSFRNTCBlbGVtZW50cwogIC8vIGNsYXNzTmFtZSAtIGNsYXNzIG5hbWUgdG8gdGVzdCBmb3IKICAvLyBpbmNsdWRlIC0gaWYgdHJ1ZSwgb25seSByZXR1cm4gZWxlbWVudHMgd2l0aCBnaXZlbiBjbGFzc05hbWU7CiAgLy8gICBpZiBmYWxzZSwgb25seSByZXR1cm4gZWxlbWVudHMgKndpdGhvdXQqIGdpdmVuIGNsYXNzTmFtZQogIGZ1bmN0aW9uIGZpbHRlckJ5Q2xhc3MoZWxlbWVudHMsIGNsYXNzTmFtZSwgaW5jbHVkZSkgewogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKGhhc0NsYXNzKGVsZW1lbnRzW2ldLCBjbGFzc05hbWUpID09IGluY2x1ZGUpCiAgICAgICAgcmVzdWx0cy5wdXNoKGVsZW1lbnRzW2ldKTsKICAgIH0KICAgIHJldHVybiByZXN1bHRzOwogIH0KCiAgZnVuY3Rpb24gb24ob2JqLCBldmVudE5hbWUsIGZ1bmMpIHsKICAgIGlmIChvYmouYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICBvYmouYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGZ1bmMsIGZhbHNlKTsKICAgIH0gZWxzZSBpZiAob2JqLmF0dGFjaEV2ZW50KSB7CiAgICAgIG9iai5hdHRhY2hFdmVudChldmVudE5hbWUsIGZ1bmMpOwogICAgfQogIH0KCiAgZnVuY3Rpb24gb2ZmKG9iaiwgZXZlbnROYW1lLCBmdW5jKSB7CiAgICBpZiAob2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIpCiAgICAgIG9iai5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZnVuYywgZmFsc2UpOwogICAgZWxzZSBpZiAob2JqLmRldGFjaEV2ZW50KSB7CiAgICAgIG9iai5kZXRhY2hFdmVudChldmVudE5hbWUsIGZ1bmMpOwogICAgfQogIH0KCiAgLy8gVHJhbnNsYXRlIGFycmF5IG9mIHZhbHVlcyB0byB0b3AvcmlnaHQvYm90dG9tL2xlZnQsIGFzIHVzdWFsIHdpdGgKICAvLyB0aGUgInBhZGRpbmciIENTUyBwcm9wZXJ0eQogIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9wYWRkaW5nCiAgZnVuY3Rpb24gdW5wYWNrUGFkZGluZyh2YWx1ZSkgewogICAgaWYgKHR5cGVvZih2YWx1ZSkgPT09ICJudW1iZXIiKQogICAgICB2YWx1ZSA9IFt2YWx1ZV07CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAxKSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzBdLCBib3R0b206IHZhbHVlWzBdLCBsZWZ0OiB2YWx1ZVswXX07CiAgICB9CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAyKSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzFdLCBib3R0b206IHZhbHVlWzBdLCBsZWZ0OiB2YWx1ZVsxXX07CiAgICB9CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAzKSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzFdLCBib3R0b206IHZhbHVlWzJdLCBsZWZ0OiB2YWx1ZVsxXX07CiAgICB9CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSA0KSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzFdLCBib3R0b206IHZhbHVlWzJdLCBsZWZ0OiB2YWx1ZVszXX07CiAgICB9CiAgfQoKICAvLyBDb252ZXJ0IGFuIHVucGFja2VkIHBhZGRpbmcgb2JqZWN0IHRvIGEgQ1NTIHZhbHVlCiAgZnVuY3Rpb24gcGFkZGluZ1RvQ3NzKHBhZGRpbmdPYmopIHsKICAgIHJldHVybiBwYWRkaW5nT2JqLnRvcCArICJweCAiICsgcGFkZGluZ09iai5yaWdodCArICJweCAiICsgcGFkZGluZ09iai5ib3R0b20gKyAicHggIiArIHBhZGRpbmdPYmoubGVmdCArICJweCI7CiAgfQoKICAvLyBNYWtlcyBhIG51bWJlciBzdWl0YWJsZSBmb3IgQ1NTCiAgZnVuY3Rpb24gcHgoeCkgewogICAgaWYgKHR5cGVvZih4KSA9PT0gIm51bWJlciIpCiAgICAgIHJldHVybiB4ICsgInB4IjsKICAgIGVsc2UKICAgICAgcmV0dXJuIHg7CiAgfQoKICAvLyBSZXRyaWV2ZXMgcnVudGltZSB3aWRnZXQgc2l6aW5nIGluZm9ybWF0aW9uIGZvciBhbiBlbGVtZW50LgogIC8vIFRoZSByZXR1cm4gdmFsdWUgaXMgZWl0aGVyIG51bGwsIG9yIGFuIG9iamVjdCB3aXRoIGZpbGwsIHBhZGRpbmcsCiAgLy8gZGVmYXVsdFdpZHRoLCBkZWZhdWx0SGVpZ2h0IGZpZWxkcy4KICBmdW5jdGlvbiBzaXppbmdQb2xpY3koZWwpIHsKICAgIHZhciBzaXppbmdFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtkYXRhLWZvcj0nIiArIGVsLmlkICsgIiddW3R5cGU9J2FwcGxpY2F0aW9uL2h0bWx3aWRnZXQtc2l6aW5nJ10iKTsKICAgIGlmICghc2l6aW5nRWwpCiAgICAgIHJldHVybiBudWxsOwogICAgdmFyIHNwID0gSlNPTi5wYXJzZShzaXppbmdFbC50ZXh0Q29udGVudCB8fCBzaXppbmdFbC50ZXh0IHx8ICJ7fSIpOwogICAgaWYgKHZpZXdlck1vZGUpIHsKICAgICAgcmV0dXJuIHNwLnZpZXdlcjsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBzcC5icm93c2VyOwogICAgfQogIH0KCiAgZnVuY3Rpb24gaW5pdFNpemluZyhlbCkgewogICAgdmFyIHNpemluZyA9IHNpemluZ1BvbGljeShlbCk7CiAgICBpZiAoIXNpemluZykKICAgICAgcmV0dXJuOwoKICAgIHZhciBjZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaHRtbHdpZGdldF9jb250YWluZXIiKTsKICAgIGlmICghY2VsKQogICAgICByZXR1cm47CgogICAgaWYgKHR5cGVvZihzaXppbmcucGFkZGluZykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luID0gIjAiOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmcgPSBwYWRkaW5nVG9Dc3ModW5wYWNrUGFkZGluZyhzaXppbmcucGFkZGluZykpOwogICAgfQoKICAgIGlmIChzaXppbmcuZmlsbCkgewogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gImhpZGRlbiI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5oZWlnaHQgPSAiMTAwJSI7CiAgICAgIGlmIChjZWwpIHsKICAgICAgICBjZWwuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwogICAgICAgIHZhciBwYWQgPSB1bnBhY2tQYWRkaW5nKHNpemluZy5wYWRkaW5nKTsKICAgICAgICBjZWwuc3R5bGUudG9wID0gcGFkLnRvcCArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLnJpZ2h0ID0gcGFkLnJpZ2h0ICsgInB4IjsKICAgICAgICBjZWwuc3R5bGUuYm90dG9tID0gcGFkLmJvdHRvbSArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLmxlZnQgPSBwYWQubGVmdCArICJweCI7CiAgICAgICAgZWwuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICB9CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGNlbC5vZmZzZXRXaWR0aDsgfSwKICAgICAgICBnZXRIZWlnaHQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gY2VsLm9mZnNldEhlaWdodDsgfQogICAgICB9OwoKICAgIH0gZWxzZSB7CiAgICAgIGVsLnN0eWxlLndpZHRoID0gcHgoc2l6aW5nLndpZHRoKTsKICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gcHgoc2l6aW5nLmhlaWdodCk7CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGVsLm9mZnNldFdpZHRoOyB9LAogICAgICAgIGdldEhlaWdodDogZnVuY3Rpb24oKSB7IHJldHVybiBlbC5vZmZzZXRIZWlnaHQ7IH0KICAgICAgfTsKICAgIH0KICB9CgogIC8vIERlZmF1bHQgaW1wbGVtZW50YXRpb25zIGZvciBtZXRob2RzCiAgdmFyIGRlZmF1bHRzID0gewogICAgZmluZDogZnVuY3Rpb24oc2NvcGUpIHsKICAgICAgcmV0dXJuIHF1ZXJ5U2VsZWN0b3JBbGwoc2NvcGUsICIuIiArIHRoaXMubmFtZSk7CiAgICB9LAogICAgcmVuZGVyRXJyb3I6IGZ1bmN0aW9uKGVsLCBlcnIpIHsKICAgICAgdmFyICRlbCA9ICQoZWwpOwoKICAgICAgdGhpcy5jbGVhckVycm9yKGVsKTsKCiAgICAgIC8vIEFkZCBhbGwgdGhlc2UgZXJyb3IgY2xhc3NlcywgYXMgU2hpbnkgZG9lcwogICAgICB2YXIgZXJyQ2xhc3MgPSAic2hpbnktb3V0cHV0LWVycm9yIjsKICAgICAgaWYgKGVyci50eXBlICE9PSBudWxsKSB7CiAgICAgICAgLy8gdXNlIHRoZSBjbGFzc2VzIG9mIHRoZSBlcnJvciBjb25kaXRpb24gYXMgQ1NTIGNsYXNzIG5hbWVzCiAgICAgICAgZXJyQ2xhc3MgPSBlcnJDbGFzcyArICIgIiArICQubWFwKGFzQXJyYXkoZXJyLnR5cGUpLCBmdW5jdGlvbih0eXBlKSB7CiAgICAgICAgICByZXR1cm4gZXJyQ2xhc3MgKyAiLSIgKyB0eXBlOwogICAgICAgIH0pLmpvaW4oIiAiKTsKICAgICAgfQogICAgICBlcnJDbGFzcyA9IGVyckNsYXNzICsgIiBodG1sd2lkZ2V0cy1lcnJvciI7CgogICAgICAvLyBJcyBlbCBpbmxpbmUgb3IgYmxvY2s/IElmIGlubGluZSBvciBpbmxpbmUtYmxvY2ssIGp1c3QgZGlzcGxheTpub25lIGl0CiAgICAgIC8vIGFuZCBhZGQgYW4gaW5saW5lIGVycm9yLgogICAgICB2YXIgZGlzcGxheSA9ICRlbC5jc3MoImRpc3BsYXkiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgZGlzcGxheSk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICAkZWwuaGlkZSgpOwogICAgICAgIGlmIChlcnIubWVzc2FnZSAhPT0gIiIpIHsKICAgICAgICAgIHZhciBlcnJvclNwYW4gPSAkKCI8c3Bhbj4iKS5hZGRDbGFzcyhlcnJDbGFzcyk7CiAgICAgICAgICBlcnJvclNwYW4udGV4dChlcnIubWVzc2FnZSk7CiAgICAgICAgICAkZWwuYWZ0ZXIoZXJyb3JTcGFuKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9PT0gImJsb2NrIikgewogICAgICAgIC8vIElmIGJsb2NrLCBhZGQgYW4gZXJyb3IganVzdCBhZnRlciB0aGUgZWwsIHNldCB2aXNpYmlsaXR5Om5vbmUgb24gdGhlCiAgICAgICAgLy8gZWwsIGFuZCBwb3NpdGlvbiB0aGUgZXJyb3IgdG8gYmUgb24gdG9wIG9mIHRoZSBlbC4KICAgICAgICAvLyBNYXJrIGl0IHdpdGggYSB1bmlxdWUgSUQgYW5kIENTUyBjbGFzcyBzbyB3ZSBjYW4gcmVtb3ZlIGl0IGxhdGVyLgogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaGlkZGVuIik7CiAgICAgICAgaWYgKGVyci5tZXNzYWdlICE9PSAiIikgewogICAgICAgICAgdmFyIGVycm9yRGl2ID0gJCgiPGRpdj4iKS5hZGRDbGFzcyhlcnJDbGFzcykuY3NzKCJwb3NpdGlvbiIsICJhYnNvbHV0ZSIpCiAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgLmNzcygibGVmdCIsIGVsLm9mZnNldExlZnQpCiAgICAgICAgICAgIC8vIHNldHRpbmcgd2lkdGggY2FuIHB1c2ggb3V0IHRoZSBwYWdlIHNpemUsIGZvcmNpbmcgb3RoZXJ3aXNlCiAgICAgICAgICAgIC8vIHVubmVjZXNzYXJ5IHNjcm9sbGJhcnMgdG8gYXBwZWFyIGFuZCBtYWtpbmcgaXQgaW1wb3NzaWJsZSBmb3IKICAgICAgICAgICAgLy8gdGhlIGVsZW1lbnQgdG8gc2hyaW5rOyBzbyB1c2UgbWF4LXdpZHRoIGluc3RlYWQKICAgICAgICAgICAgLmNzcygibWF4V2lkdGgiLCBlbC5vZmZzZXRXaWR0aCkKICAgICAgICAgICAgLmNzcygiaGVpZ2h0IiwgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgIGVycm9yRGl2LnRleHQoZXJyLm1lc3NhZ2UpOwogICAgICAgICAgJGVsLmFmdGVyKGVycm9yRGl2KTsKCiAgICAgICAgICAvLyBSZWFsbHkgZHVtYiB3YXkgdG8ga2VlcCB0aGUgc2l6ZS9wb3NpdGlvbiBvZiB0aGUgZXJyb3IgaW4gc3luYyB3aXRoCiAgICAgICAgICAvLyB0aGUgcGFyZW50IGVsZW1lbnQgYXMgdGhlIHdpbmRvdyBpcyByZXNpemVkIG9yIHdoYXRldmVyLgogICAgICAgICAgdmFyIGludElkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghZXJyb3JEaXZbMF0ucGFyZW50RWxlbWVudCkgewogICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50SWQpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlcnJvckRpdgogICAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgICAuY3NzKCJsZWZ0IiwgZWwub2Zmc2V0TGVmdCkKICAgICAgICAgICAgICAuY3NzKCJtYXhXaWR0aCIsIGVsLm9mZnNldFdpZHRoKQogICAgICAgICAgICAgIC5jc3MoImhlaWdodCIsIGVsLm9mZnNldEhlaWdodCk7CiAgICAgICAgICB9LCA1MDApOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGNsZWFyRXJyb3I6IGZ1bmN0aW9uKGVsKSB7CiAgICAgIHZhciAkZWwgPSAkKGVsKTsKICAgICAgdmFyIGRpc3BsYXkgPSAkZWwuZGF0YSgicmVzdG9yZS1kaXNwbGF5LW1vZGUiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgbnVsbCk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICBpZiAoZGlzcGxheSkKICAgICAgICAgICRlbC5jc3MoImRpc3BsYXkiLCBkaXNwbGF5KTsKICAgICAgICAkKGVsLm5leHRTaWJsaW5nKS5maWx0ZXIoIi5odG1sd2lkZ2V0cy1lcnJvciIpLnJlbW92ZSgpOwogICAgICB9IGVsc2UgaWYgKGRpc3BsYXkgPT09ICJibG9jayIpewogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaW5oZXJpdCIpOwogICAgICAgICQoZWwubmV4dFNpYmxpbmcpLmZpbHRlcigiLmh0bWx3aWRnZXRzLWVycm9yIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0sCiAgICBzaXppbmc6IHt9CiAgfTsKCiAgLy8gQ2FsbGVkIGJ5IHdpZGdldCBiaW5kaW5ncyB0byByZWdpc3RlciBhIG5ldyB0eXBlIG9mIHdpZGdldC4gVGhlIGRlZmluaXRpb24KICAvLyBvYmplY3QgY2FuIGNvbnRhaW4gdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogIC8vIC0gbmFtZSAocmVxdWlyZWQpIC0gQSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgYmluZGluZyBuYW1lLCB3aGljaCB3aWxsIGJlCiAgLy8gICB1c2VkIGJ5IGRlZmF1bHQgYXMgdGhlIENTUyBjbGFzc25hbWUgdG8gbG9vayBmb3IuCiAgLy8gLSBpbml0aWFsaXplIChvcHRpb25hbCkgLSBBIGZ1bmN0aW9uKGVsKSB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uY2UgcGVyCiAgLy8gICB3aWRnZXQgZWxlbWVudDsgaWYgYSB2YWx1ZSBpcyByZXR1cm5lZCwgaXQgd2lsbCBiZSBwYXNzZWQgYXMgdGhlIHRoaXJkCiAgLy8gICB2YWx1ZSB0byByZW5kZXJWYWx1ZS4KICAvLyAtIHJlbmRlclZhbHVlIChyZXF1aXJlZCkgLSBBIGZ1bmN0aW9uKGVsLCBkYXRhLCBpbml0VmFsdWUpIHRoYXQgd2lsbCBiZQogIC8vICAgY2FsbGVkIHdpdGggZGF0YS4gU3RhdGljIGNvbnRleHRzIHdpbGwgY2F1c2UgdGhpcyB0byBiZSBjYWxsZWQgb25jZSBwZXIKICAvLyAgIGVsZW1lbnQ7IFNoaW55IGFwcHMgd2lsbCBjYXVzZSB0aGlzIHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBwZXIKICAvLyAgIGVsZW1lbnQsIGFzIHRoZSBkYXRhIGNoYW5nZXMuCiAgd2luZG93LkhUTUxXaWRnZXRzLndpZGdldCA9IGZ1bmN0aW9uKGRlZmluaXRpb24pIHsKICAgIGlmICghZGVmaW5pdGlvbi5uYW1lKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIG5hbWUiKTsKICAgIH0KICAgIGlmICghZGVmaW5pdGlvbi50eXBlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHR5cGUiKTsKICAgIH0KICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgb3V0cHV0IHdpZGdldHMKICAgIGlmIChkZWZpbml0aW9uLnR5cGUgIT09ICJvdXRwdXQiKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHdpZGdldCB0eXBlICciICsgZGVmaW5pdGlvbi50eXBlICsgIiciKTsKICAgIH0KICAgIC8vIFRPRE86IFZlcmlmeSB0aGF0IC5uYW1lIGlzIGEgdmFsaWQgQ1NTIGNsYXNzbmFtZQogICAgaWYgKCFkZWZpbml0aW9uLnJlbmRlclZhbHVlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHJlbmRlclZhbHVlIGZ1bmN0aW9uIik7CiAgICB9CgogICAgLy8gRm9yIHN0YXRpYyByZW5kZXJpbmcgKG5vbi1TaGlueSksIHVzZSBhIHNpbXBsZSB3aWRnZXQgcmVnaXN0cmF0aW9uCiAgICAvLyBzY2hlbWUuIFdlIGFsc28gdXNlIHRoaXMgc2NoZW1lIGZvciBTaGlueSBhcHBzL2RvY3VtZW50cyB0aGF0IGFsc28KICAgIC8vIGNvbnRhaW4gc3RhdGljIHdpZGdldHMuCiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgLy8gTWVyZ2UgZGVmYXVsdHMgaW50byB0aGUgZGVmaW5pdGlvbjsgZG9uJ3QgbXV0YXRlIHRoZSBvcmlnaW5hbCBkZWZpbml0aW9uLgogICAgdmFyIHN0YXRpY0JpbmRpbmcgPSBleHRlbmQoe30sIGRlZmF1bHRzLCBkZWZpbml0aW9uKTsKICAgIG92ZXJyaWRlTWV0aG9kKHN0YXRpY0JpbmRpbmcsICJmaW5kIiwgZnVuY3Rpb24oc3VwZXJmdW5jKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzY29wZSkgewogICAgICAgIHZhciByZXN1bHRzID0gc3VwZXJmdW5jKHNjb3BlKTsKICAgICAgICAvLyBGaWx0ZXIgb3V0IFNoaW55IG91dHB1dHMsIHdlIG9ubHkgd2FudCB0aGUgc3RhdGljIGtpbmQKICAgICAgICByZXR1cm4gZmlsdGVyQnlDbGFzcyhyZXN1bHRzLCAiaHRtbC13aWRnZXQtb3V0cHV0IiwgZmFsc2UpOwogICAgICB9OwogICAgfSk7CiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cy5wdXNoKHN0YXRpY0JpbmRpbmcpOwoKICAgIGlmIChzaGlueU1vZGUpIHsKICAgICAgLy8gU2hpbnkgaXMgcnVubmluZy4gUmVnaXN0ZXIgdGhlIGRlZmluaXRpb24gYXMgYW4gb3V0cHV0IGJpbmRpbmcuCgogICAgICAvLyBNZXJnZSBkZWZhdWx0cyBpbnRvIHRoZSBkZWZpbml0aW9uOyBkb24ndCBtdXRhdGUgdGhlIG9yaWdpbmFsIGRlZmluaXRpb24uCiAgICAgIC8vIFRoZSBiYXNlIG9iamVjdCBpcyBhIFNoaW55IG91dHB1dCBiaW5kaW5nIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZSwKICAgICAgLy8gb3IgYW4gZW1wdHkgb2JqZWN0IGlmIHdlJ3JlIG5vdC4KICAgICAgdmFyIHNoaW55QmluZGluZyA9IGV4dGVuZChuZXcgU2hpbnkuT3V0cHV0QmluZGluZygpLCBkZWZhdWx0cywgZGVmaW5pdGlvbik7CgogICAgICAvLyBXcmFwIHJlbmRlclZhbHVlIHRvIGhhbmRsZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggdW5mb3J0dW5hdGVseSBpc24ndAogICAgICAvLyBzdXBwb3J0ZWQgbmF0aXZlbHkgYnkgU2hpbnkgYXQgdGhlIHRpbWUgb2YgdGhpcyB3cml0aW5nLgoKICAgICAgLy8gTkI6IHNoaW55QmluZGluZy5pbml0aWFsaXplIG1heSBiZSB1bmRlZmluZWQsIGFzIGl0J3Mgb3B0aW9uYWwuCgogICAgICAvLyBSZW5hbWUgaW5pdGlhbGl6ZSB0byBtYWtlIHN1cmUgaXQgaXNuJ3QgY2FsbGVkIGJ5IGEgZnV0dXJlIHZlcnNpb24KICAgICAgLy8gb2YgU2hpbnkgdGhhdCBkb2VzIHN1cHBvcnQgaW5pdGlhbGl6ZSBkaXJlY3RseS4KICAgICAgc2hpbnlCaW5kaW5nLl9odG1sd2lkZ2V0c19pbml0aWFsaXplID0gc2hpbnlCaW5kaW5nLmluaXRpYWxpemU7CiAgICAgIGRlbGV0ZSBzaGlueUJpbmRpbmcuaW5pdGlhbGl6ZTsKCiAgICAgIG92ZXJyaWRlTWV0aG9kKHNoaW55QmluZGluZywgImZpbmQiLCBmdW5jdGlvbihzdXBlcmZ1bmMpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oc2NvcGUpIHsKCiAgICAgICAgICB2YXIgcmVzdWx0cyA9IHN1cGVyZnVuYyhzY29wZSk7CgogICAgICAgICAgLy8gT25seSByZXR1cm4gZWxlbWVudHMgdGhhdCBhcmUgU2hpbnkgb3V0cHV0cywgbm90IHN0YXRpYyBvbmVzCiAgICAgICAgICB2YXIgZHluYW1pY1Jlc3VsdHMgPSByZXN1bHRzLmZpbHRlcigiLmh0bWwtd2lkZ2V0LW91dHB1dCIpOwoKICAgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB3aGF0ZXZlciBjYXVzZWQgU2hpbnkgdG8gdGhpbmsgdGhlcmUgbWlnaHQgYmUKICAgICAgICAgIC8vIG5ldyBkeW5hbWljIG91dHB1dHMsIGFsc28gY2F1c2VkIHRoZXJlIHRvIGJlIG5ldyBzdGF0aWMgb3V0cHV0cy4KICAgICAgICAgIC8vIFNpbmNlIHRoZXJlIG1pZ2h0IGJlIGxvdHMgb2YgZGlmZmVyZW50IGh0bWx3aWRnZXRzIGJpbmRpbmdzLCB3ZQogICAgICAgICAgLy8gc2NoZWR1bGUgZXhlY3V0aW9uIGZvciBsYXRlci0tbm8gbmVlZCB0byBzdGF0aWNSZW5kZXIgbXVsdGlwbGUKICAgICAgICAgIC8vIHRpbWVzLgogICAgICAgICAgaWYgKHJlc3VsdHMubGVuZ3RoICE9PSBkeW5hbWljUmVzdWx0cy5sZW5ndGgpCiAgICAgICAgICAgIHNjaGVkdWxlU3RhdGljUmVuZGVyKCk7CgogICAgICAgICAgcmV0dXJuIGR5bmFtaWNSZXN1bHRzOwogICAgICAgIH07CiAgICAgIH0pOwoKICAgICAgb3ZlcnJpZGVNZXRob2Qoc2hpbnlCaW5kaW5nLCAicmVuZGVyVmFsdWUiLCBmdW5jdGlvbihzdXBlcmZ1bmMpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oZWwsIGRhdGEpIHsKICAgICAgICAgIC8vIFJlc29sdmUgc3RyaW5ncyBtYXJrZWQgYXMgamF2YXNjcmlwdCBsaXRlcmFscyB0byBvYmplY3RzCiAgICAgICAgICBpZiAoIShkYXRhLmV2YWxzIGluc3RhbmNlb2YgQXJyYXkpKSBkYXRhLmV2YWxzID0gW2RhdGEuZXZhbHNdOwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGRhdGEuZXZhbHMgJiYgaSA8IGRhdGEuZXZhbHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyKGRhdGEueCwgZGF0YS5ldmFsc1tpXSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIXRoaXMucmVuZGVyT25OdWxsVmFsdWUpIHsKICAgICAgICAgICAgaWYgKGRhdGEueCA9PT0gbnVsbCkgewogICAgICAgICAgICAgIGVsLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZWwuc3R5bGUudmlzaWJpbGl0eSA9ICJpbmhlcml0IjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKCFlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIikpIHsKICAgICAgICAgICAgaW5pdFNpemluZyhlbCk7CgogICAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIiwgdHJ1ZSk7CiAgICAgICAgICAgIGlmICh0aGlzLl9odG1sd2lkZ2V0c19pbml0aWFsaXplKSB7CiAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX2h0bWx3aWRnZXRzX2luaXRpYWxpemUoZWwsIGVsLm9mZnNldFdpZHRoLAogICAgICAgICAgICAgICAgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0IiwgcmVzdWx0KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgU2hpbnkucmVuZGVyRGVwZW5kZW5jaWVzKGRhdGEuZGVwcyk7CiAgICAgICAgICBzdXBlcmZ1bmMoZWwsIGRhdGEueCwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpKTsKICAgICAgICB9OwogICAgICB9KTsKCiAgICAgIG92ZXJyaWRlTWV0aG9kKHNoaW55QmluZGluZywgInJlc2l6ZSIsIGZ1bmN0aW9uKHN1cGVyZnVuYykgewogICAgICAgIHJldHVybiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCkgewogICAgICAgICAgLy8gU2hpbnkgY2FuIGNhbGwgcmVzaXplIGJlZm9yZSBpbml0aWFsaXplL3JlbmRlclZhbHVlIGhhdmUgYmVlbgogICAgICAgICAgLy8gY2FsbGVkLCB3aGljaCBkb2Vzbid0IG1ha2Ugc2Vuc2UgZm9yIHdpZGdldHMuCiAgICAgICAgICBpZiAoZWxlbWVudERhdGEoZWwsICJpbml0aWFsaXplZCIpKSB7CiAgICAgICAgICAgIHN1cGVyZnVuYyhlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9KTsKCiAgICAgIFNoaW55Lm91dHB1dEJpbmRpbmdzLnJlZ2lzdGVyKHNoaW55QmluZGluZywgc2hpbnlCaW5kaW5nLm5hbWUpOwogICAgfQogIH07CgogIHZhciBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogIGZ1bmN0aW9uIHNjaGVkdWxlU3RhdGljUmVuZGVyKCkgewogICAgaWYgKCFzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQpIHsKICAgICAgc2NoZWR1bGVTdGF0aWNSZW5kZXJUaW1lcklkID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgICAgfSwgMSk7CiAgICB9CiAgfQoKICAvLyBSZW5kZXIgc3RhdGljIHdpZGdldHMgYWZ0ZXIgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRpbmcKICAvLyBTdGF0aWNhbGx5IHJlbmRlciBhbGwgZWxlbWVudHMgdGhhdCBhcmUgb2YgdGhpcyB3aWRnZXQncyBjbGFzcwogIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIgPSBmdW5jdGlvbigpIHsKICAgIHZhciBiaW5kaW5ncyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgZm9yRWFjaChiaW5kaW5ncywgZnVuY3Rpb24oYmluZGluZykgewogICAgICB2YXIgbWF0Y2hlcyA9IGJpbmRpbmcuZmluZChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpOwogICAgICBmb3JFYWNoKG1hdGNoZXMsIGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgdmFyIHNpemVPYmogPSBpbml0U2l6aW5nKGVsLCBiaW5kaW5nKTsKCiAgICAgICAgaWYgKGhhc0NsYXNzKGVsLCAiaHRtbC13aWRnZXQtc3RhdGljLWJvdW5kIikpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgZWwuY2xhc3NOYW1lID0gZWwuY2xhc3NOYW1lICsgIiBodG1sLXdpZGdldC1zdGF0aWMtYm91bmQiOwoKICAgICAgICB2YXIgaW5pdFJlc3VsdDsKICAgICAgICBpZiAoYmluZGluZy5pbml0aWFsaXplKSB7CiAgICAgICAgICBpbml0UmVzdWx0ID0gYmluZGluZy5pbml0aWFsaXplKGVsLAogICAgICAgICAgICBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgIHNpemVPYmogPyBzaXplT2JqLmdldEhlaWdodCgpIDogZWwub2Zmc2V0SGVpZ2h0CiAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKGJpbmRpbmcucmVzaXplKSB7CiAgICAgICAgICB2YXIgbGFzdFNpemUgPSB7fTsKICAgICAgICAgIHZhciByZXNpemVIYW5kbGVyID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgc2l6ZSA9IHsKICAgICAgICAgICAgICB3OiBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgICAgaDogc2l6ZU9iaiA/IHNpemVPYmouZ2V0SGVpZ2h0KCkgOiBlbC5vZmZzZXRIZWlnaHQKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHNpemUudyA9PT0gMCAmJiBzaXplLmggPT09IDApCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBpZiAoc2l6ZS53ID09PSBsYXN0U2l6ZS53ICYmIHNpemUuaCA9PT0gbGFzdFNpemUuaCkKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGxhc3RTaXplID0gc2l6ZTsKICAgICAgICAgICAgYmluZGluZy5yZXNpemUoZWwsIHNpemUudywgc2l6ZS5oLCBpbml0UmVzdWx0KTsKICAgICAgICAgIH07CgogICAgICAgICAgb24od2luZG93LCAicmVzaXplIiwgcmVzaXplSGFuZGxlcik7CgogICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIGNhc2VzIHdoZXJlIHdlJ3JlIHJ1bm5pbmcgaW4gYSBTaGlueQogICAgICAgICAgLy8gYXBwLCBidXQgdGhlIHdpZGdldCBpdHNlbGYgaXMgbm90IGEgU2hpbnkgb3V0cHV0LCBidXQKICAgICAgICAgIC8vIHJhdGhlciBhIHNpbXBsZSBzdGF0aWMgd2lkZ2V0LiBPbmUgZXhhbXBsZSBvZiB0aGlzIGlzCiAgICAgICAgICAvLyBhbiBybWFya2Rvd24gZG9jdW1lbnQgdGhhdCBoYXMgcnVudGltZTpzaGlueSBhbmQgd2lkZ2V0CiAgICAgICAgICAvLyB0aGF0IGlzbid0IGluIGEgcmVuZGVyIGZ1bmN0aW9uLiBTaGlueSBvbmx5IGtub3dzIHRvCiAgICAgICAgICAvLyBjYWxsIHJlc2l6ZSBoYW5kbGVycyBmb3IgU2hpbnkgb3V0cHV0cywgbm90IGZvciBzdGF0aWMKICAgICAgICAgIC8vIHdpZGdldHMsIHNvIHdlIGRvIGl0IG91cnNlbHZlcy4KICAgICAgICAgIGlmICh3aW5kb3cualF1ZXJ5KSB7CiAgICAgICAgICAgIHdpbmRvdy5qUXVlcnkoZG9jdW1lbnQpLm9uKCJzaG93biIsIHJlc2l6ZUhhbmRsZXIpOwogICAgICAgICAgICB3aW5kb3cualF1ZXJ5KGRvY3VtZW50KS5vbigiaGlkZGVuIiwgcmVzaXplSGFuZGxlcik7CiAgICAgICAgICB9CgogICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBzcGVjaWZpYyBjYXNlIG9mIGlvc2xpZGVzLCB3aGljaAogICAgICAgICAgLy8gZmxpcHMgc2xpZGVzIGJldHdlZW4gZGlzcGxheTpub25lIGFuZCBkaXNwbGF5OmJsb2NrLgogICAgICAgICAgLy8gSWRlYWxseSB3ZSB3b3VsZCBub3QgaGF2ZSB0byBoYXZlIGlvc2xpZGUtc3BlY2lmaWMgY29kZQogICAgICAgICAgLy8gaGVyZSwgYnV0IHJhdGhlciBoYXZlIGlvc2xpZGVzIHJhaXNlIGEgZ2VuZXJpYyBldmVudCwKICAgICAgICAgIC8vIGJ1dCB0aGUgcm1hcmtkb3duIHBhY2thZ2UganVzdCB3ZW50IHRvIENSQU4gc28gdGhlCiAgICAgICAgICAvLyB3aW5kb3cgdG8gZ2V0dGluZyB0aGF0IGZpeGVkIG1heSBiZSBsb25nLgogICAgICAgICAgaWYgKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgICAgICAgIC8vIEl0J3MgT0sgdG8gbGltaXQgdGhpcyB0byB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcgogICAgICAgICAgICAvLyBicm93c2VycyBiZWNhdXNlIGlvc2xpZGVzIGl0c2VsZiBvbmx5IHN1cHBvcnRzCiAgICAgICAgICAgIC8vIHN1Y2ggYnJvd3NlcnMuCiAgICAgICAgICAgIG9uKGRvY3VtZW50LCAic2xpZGVlbnRlciIsIHJlc2l6ZUhhbmRsZXIpOwogICAgICAgICAgICBvbihkb2N1bWVudCwgInNsaWRlbGVhdmUiLCByZXNpemVIYW5kbGVyKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciBzY3JpcHREYXRhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W2RhdGEtZm9yPSciICsgZWwuaWQgKyAiJ11bdHlwZT0nYXBwbGljYXRpb24vanNvbiddIik7CiAgICAgICAgaWYgKHNjcmlwdERhdGEpIHsKICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShzY3JpcHREYXRhLnRleHRDb250ZW50IHx8IHNjcmlwdERhdGEudGV4dCk7CiAgICAgICAgICAvLyBSZXNvbHZlIHN0cmluZ3MgbWFya2VkIGFzIGphdmFzY3JpcHQgbGl0ZXJhbHMgdG8gb2JqZWN0cwogICAgICAgICAgaWYgKCEoZGF0YS5ldmFscyBpbnN0YW5jZW9mIEFycmF5KSkgZGF0YS5ldmFscyA9IFtkYXRhLmV2YWxzXTsKICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBkYXRhLmV2YWxzICYmIGsgPCBkYXRhLmV2YWxzLmxlbmd0aDsgaysrKSB7CiAgICAgICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5ldmFsdWF0ZVN0cmluZ01lbWJlcihkYXRhLngsIGRhdGEuZXZhbHNba10pOwogICAgICAgICAgfQogICAgICAgICAgYmluZGluZy5yZW5kZXJWYWx1ZShlbCwgZGF0YS54LCBpbml0UmVzdWx0KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSk7CiAgfQoKICAvLyBXYWl0IHVudGlsIGFmdGVyIHRoZSBkb2N1bWVudCBoYXMgbG9hZGVkIHRvIHJlbmRlciB0aGUgd2lkZ2V0cy4KICBpZiAoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkgewogICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgYXJndW1lbnRzLmNhbGxlZSwgZmFsc2UpOwogICAgICB3aW5kb3cuSFRNTFdpZGdldHMuc3RhdGljUmVuZGVyKCk7CiAgICB9LCBmYWxzZSk7CiAgfSBlbHNlIGlmIChkb2N1bWVudC5hdHRhY2hFdmVudCkgewogICAgZG9jdW1lbnQuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsIGZ1bmN0aW9uKCkgewogICAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gImNvbXBsZXRlIikgewogICAgICAgIGRvY3VtZW50LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCBhcmd1bWVudHMuY2FsbGVlKTsKICAgICAgICB3aW5kb3cuSFRNTFdpZGdldHMuc3RhdGljUmVuZGVyKCk7CiAgICAgIH0KICAgIH0pOwogIH0KCgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5nZXRBdHRhY2htZW50VXJsID0gZnVuY3Rpb24oZGVwbmFtZSwga2V5KSB7CiAgICAvLyBJZiBubyBrZXksIGRlZmF1bHQgdG8gdGhlIGZpcnN0IGl0ZW0KICAgIGlmICh0eXBlb2Yoa2V5KSA9PT0gInVuZGVmaW5lZCIpCiAgICAgIGtleSA9IDE7CgogICAgdmFyIGxpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkZXBuYW1lICsgIi0iICsga2V5ICsgIi1hdHRhY2htZW50Iik7CiAgICBpZiAoIWxpbmspIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJBdHRhY2htZW50ICIgKyBkZXBuYW1lICsgIi8iICsga2V5ICsgIiBub3QgZm91bmQgaW4gZG9jdW1lbnQiKTsKICAgIH0KICAgIHJldHVybiBsaW5rLmdldEF0dHJpYnV0ZSgiaHJlZiIpOwogIH07CgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5kYXRhZnJhbWVUb0QzID0gZnVuY3Rpb24oZGYpIHsKICAgIHZhciBuYW1lcyA9IFtdOwogICAgdmFyIGxlbmd0aDsKICAgIGZvciAodmFyIG5hbWUgaW4gZGYpIHsKICAgICAgICBpZiAoZGYuaGFzT3duUHJvcGVydHkobmFtZSkpCiAgICAgICAgICAgIG5hbWVzLnB1c2gobmFtZSk7CiAgICAgICAgaWYgKHR5cGVvZihkZltuYW1lXSkgIT09ICJvYmplY3QiIHx8IHR5cGVvZihkZltuYW1lXS5sZW5ndGgpID09PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFsbCBmaWVsZHMgbXVzdCBiZSBhcnJheXMiKTsKICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZihsZW5ndGgpICE9PSAidW5kZWZpbmVkIiAmJiBsZW5ndGggIT09IGRmW25hbWVdLmxlbmd0aCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFsbCBmaWVsZHMgbXVzdCBiZSBhcnJheXMgb2YgdGhlIHNhbWUgbGVuZ3RoIik7CiAgICAgICAgfQogICAgICAgIGxlbmd0aCA9IGRmW25hbWVdLmxlbmd0aDsKICAgIH0KICAgIHZhciByZXN1bHRzID0gW107CiAgICB2YXIgaXRlbTsKICAgIGZvciAodmFyIHJvdyA9IDA7IHJvdyA8IGxlbmd0aDsgcm93KyspIHsKICAgICAgICBpdGVtID0ge307CiAgICAgICAgZm9yICh2YXIgY29sID0gMDsgY29sIDwgbmFtZXMubGVuZ3RoOyBjb2wrKykgewogICAgICAgICAgICBpdGVtW25hbWVzW2NvbF1dID0gZGZbbmFtZXNbY29sXV1bcm93XTsKICAgICAgICB9CiAgICAgICAgcmVzdWx0cy5wdXNoKGl0ZW0pOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfTsKCiAgd2luZG93LkhUTUxXaWRnZXRzLnRyYW5zcG9zZUFycmF5MkQgPSBmdW5jdGlvbihhcnJheSkgewogICAgICB2YXIgbmV3QXJyYXkgPSBhcnJheVswXS5tYXAoZnVuY3Rpb24oY29sLCBpKSB7CiAgICAgICAgICByZXR1cm4gYXJyYXkubWFwKGZ1bmN0aW9uKHJvdykgewogICAgICAgICAgICAgIHJldHVybiByb3dbaV0KICAgICAgICAgIH0pCiAgICAgIH0pOwogICAgICByZXR1cm4gbmV3QXJyYXk7CiAgfTsKICAvLyBTcGxpdCB2YWx1ZSBhdCBzcGxpdENoYXIsIGJ1dCBhbGxvdyBzcGxpdENoYXIgdG8gYmUgZXNjYXBlZAogIC8vIHVzaW5nIGVzY2FwZUNoYXIuIEFueSBvdGhlciBjaGFyYWN0ZXJzIGVzY2FwZWQgYnkgZXNjYXBlQ2hhcgogIC8vIHdpbGwgYmUgaW5jbHVkZWQgYXMgdXN1YWwgKGluY2x1ZGluZyBlc2NhcGVDaGFyIGl0c2VsZikuCiAgZnVuY3Rpb24gc3BsaXRXaXRoRXNjYXBlKHZhbHVlLCBzcGxpdENoYXIsIGVzY2FwZUNoYXIpIHsKICAgIHZhciByZXN1bHRzID0gW107CiAgICB2YXIgZXNjYXBlTW9kZSA9IGZhbHNlOwogICAgdmFyIGN1cnJlbnRSZXN1bHQgPSAiIjsKICAgIGZvciAodmFyIHBvcyA9IDA7IHBvcyA8IHZhbHVlLmxlbmd0aDsgcG9zKyspIHsKICAgICAgaWYgKCFlc2NhcGVNb2RlKSB7CiAgICAgICAgaWYgKHZhbHVlW3Bvc10gPT09IHNwbGl0Q2hhcikgewogICAgICAgICAgcmVzdWx0cy5wdXNoKGN1cnJlbnRSZXN1bHQpOwogICAgICAgICAgY3VycmVudFJlc3VsdCA9ICIiOwogICAgICAgIH0gZWxzZSBpZiAodmFsdWVbcG9zXSA9PT0gZXNjYXBlQ2hhcikgewogICAgICAgICAgZXNjYXBlTW9kZSA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGN1cnJlbnRSZXN1bHQgKz0gdmFsdWVbcG9zXTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY3VycmVudFJlc3VsdCArPSB2YWx1ZVtwb3NdOwogICAgICAgIGVzY2FwZU1vZGUgPSBmYWxzZTsKICAgICAgfQogICAgfQogICAgaWYgKGN1cnJlbnRSZXN1bHQgIT09ICIiKSB7CiAgICAgIHJlc3VsdHMucHVzaChjdXJyZW50UmVzdWx0KTsKICAgIH0KICAgIHJldHVybiByZXN1bHRzOwogIH0KICAvLyBGdW5jdGlvbiBhdXRob3JlZCBieSBZaWh1aS9KSiBBbGxhaXJlCiAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyID0gZnVuY3Rpb24obywgbWVtYmVyKSB7CiAgICB2YXIgcGFydHMgPSBzcGxpdFdpdGhFc2NhcGUobWVtYmVyLCAnLicsICdcXCcpOwogICAgZm9yICh2YXIgaSA9IDAsIGwgPSBwYXJ0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKICAgICAgdmFyIHBhcnQgPSBwYXJ0c1tpXTsKICAgICAgLy8gcGFydCBtYXkgYmUgYSBjaGFyYWN0ZXIgb3IgJ251bWVyaWMnIG1lbWJlciBuYW1lCiAgICAgIGlmIChvICE9PSBudWxsICYmIHR5cGVvZiBvID09PSAib2JqZWN0IiAmJiBwYXJ0IGluIG8pIHsKICAgICAgICBpZiAoaSA9PSAobCAtIDEpKSB7IC8vIGlmIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lIHRoZW4gZXZhbHVsYXRlCiAgICAgICAgICBpZiAodHlwZW9mIG9bcGFydF0gPT09ICJzdHJpbmciKQogICAgICAgICAgICBvW3BhcnRdID0gZXZhbCgiKCIgKyBvW3BhcnRdICsgIikiKTsKICAgICAgICB9IGVsc2UgeyAvLyBvdGhlcndpc2UgY29udGludWUgdG8gbmV4dCBlbWJlZGRlZCBvYmplY3QKICAgICAgICAgIG8gPSBvW3BhcnRdOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH07Cn0pKCk7Cgo="></script>
<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMS4xIHwgKGMpIDIwMDUsIDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9Yy5zbGljZSxlPWMuY29uY2F0LGY9Yy5wdXNoLGc9Yy5pbmRleE9mLGg9e30saT1oLnRvU3RyaW5nLGo9aC5oYXNPd25Qcm9wZXJ0eSxrPXt9LGw9IjEuMTEuMSIsbT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgbS5mbi5pbml0KGEsYil9LG49L15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLG89L14tbXMtLyxwPS8tKFtcZGEtel0pL2dpLHE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTttLmZuPW0ucHJvdG90eXBlPXtqcXVlcnk6bCxjb25zdHJ1Y3RvcjptLHNlbGVjdG9yOiIiLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gZC5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/MD5hP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXTpkLmNhbGwodGhpcyl9LHB1c2hTdGFjazpmdW5jdGlvbihhKXt2YXIgYj1tLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYi5wcmV2T2JqZWN0PXRoaXMsYi5jb250ZXh0PXRoaXMuY29udGV4dCxifSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZWFjaCh0aGlzLGEsYil9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoLGM9K2ErKDA+YT9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjayhjPj0wJiZiPmM/W3RoaXNbY11dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcihudWxsKX0scHVzaDpmLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sbS5leHRlbmQ9bS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fG0uaXNGdW5jdGlvbihnKXx8KGc9e30pLGg9PT1pJiYoZz10aGlzLGgtLSk7aT5oO2grKylpZihudWxsIT0oZT1hcmd1bWVudHNbaF0pKWZvcihkIGluIGUpYT1nW2RdLGM9ZVtkXSxnIT09YyYmKGomJmMmJihtLmlzUGxhaW5PYmplY3QoYyl8fChiPW0uaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmbS5pc0FycmF5KGEpP2E6W10pOmY9YSYmbS5pc1BsYWluT2JqZWN0KGEpP2E6e30sZ1tkXT1tLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMmJihnW2RdPWMpKTtyZXR1cm4gZ30sbS5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKGwrTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PW0udHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09bS50eXBlKGEpfSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXtyZXR1cm4hbS5pc0FycmF5KGEpJiZhLXBhcnNlRmxvYXQoYSk+PTB9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGI7Zm9yKGIgaW4gYSlyZXR1cm4hMTtyZXR1cm4hMH0saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtpZighYXx8Im9iamVjdCIhPT1tLnR5cGUoYSl8fGEubm9kZVR5cGV8fG0uaXNXaW5kb3coYSkpcmV0dXJuITE7dHJ5e2lmKGEuY29uc3RydWN0b3ImJiFqLmNhbGwoYSwiY29uc3RydWN0b3IiKSYmIWouY2FsbChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpKXJldHVybiExfWNhdGNoKGMpe3JldHVybiExfWlmKGsub3duTGFzdClmb3IoYiBpbiBhKXJldHVybiBqLmNhbGwoYSxiKTtmb3IoYiBpbiBhKTtyZXR1cm4gdm9pZCAwPT09Ynx8ai5jYWxsKGEsYil9LHR5cGU6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/YSsiIjoib2JqZWN0Ij09dHlwZW9mIGF8fCJmdW5jdGlvbiI9PXR5cGVvZiBhP2hbaS5jYWxsKGEpXXx8Im9iamVjdCI6dHlwZW9mIGF9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oYil7YiYmbS50cmltKGIpJiYoYS5leGVjU2NyaXB0fHxmdW5jdGlvbihiKXthLmV2YWwuY2FsbChhLGIpfSkoYil9LGNhbWVsQ2FzZTpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKG8sIm1zLSIpLnJlcGxhY2UocCxxKX0sbm9kZU5hbWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yi50b0xvd2VyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlPTAsZj1hLmxlbmd0aCxnPXIoYSk7aWYoYyl7aWYoZyl7Zm9yKDtmPmU7ZSsrKWlmKGQ9Yi5hcHBseShhW2VdLGMpLGQ9PT0hMSlicmVha31lbHNlIGZvcihlIGluIGEpaWYoZD1iLmFwcGx5KGFbZV0sYyksZD09PSExKWJyZWFrfWVsc2UgaWYoZyl7Zm9yKDtmPmU7ZSsrKWlmKGQ9Yi5jYWxsKGFbZV0sZSxhW2VdKSxkPT09ITEpYnJlYWt9ZWxzZSBmb3IoZSBpbiBhKWlmKGQ9Yi5jYWxsKGFbZV0sZSxhW2VdKSxkPT09ITEpYnJlYWs7cmV0dXJuIGF9LHRyaW06ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/IiI6KGErIiIpLnJlcGxhY2UobiwiIil9LG1ha2VBcnJheTpmdW5jdGlvbihhLGIpe3ZhciBjPWJ8fFtdO3JldHVybiBudWxsIT1hJiYocihPYmplY3QoYSkpP20ubWVyZ2UoYywic3RyaW5nIj09dHlwZW9mIGE/W2FdOmEpOmYuY2FsbChjLGEpKSxjfSxpbkFycmF5OmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtpZihiKXtpZihnKXJldHVybiBnLmNhbGwoYixhLGMpO2ZvcihkPWIubGVuZ3RoLGM9Yz8wPmM/TWF0aC5tYXgoMCxkK2MpOmM6MDtkPmM7YysrKWlmKGMgaW4gYiYmYltjXT09PWEpcmV0dXJuIGN9cmV0dXJuLTF9LG1lcmdlOmZ1bmN0aW9uKGEsYil7dmFyIGM9K2IubGVuZ3RoLGQ9MCxlPWEubGVuZ3RoO3doaWxlKGM+ZClhW2UrK109YltkKytdO2lmKGMhPT1jKXdoaWxlKHZvaWQgMCE9PWJbZF0pYVtlKytdPWJbZCsrXTtyZXR1cm4gYS5sZW5ndGg9ZSxhfSxncmVwOmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQsZT1bXSxmPTAsZz1hLmxlbmd0aCxoPSFjO2c+ZjtmKyspZD0hYihhW2ZdLGYpLGQhPT1oJiZlLnB1c2goYVtmXSk7cmV0dXJuIGV9LG1hcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZj0wLGc9YS5sZW5ndGgsaD1yKGEpLGk9W107aWYoaClmb3IoO2c+ZjtmKyspZD1iKGFbZl0sZixjKSxudWxsIT1kJiZpLnB1c2goZCk7ZWxzZSBmb3IoZiBpbiBhKWQ9YihhW2ZdLGYsYyksbnVsbCE9ZCYmaS5wdXNoKGQpO3JldHVybiBlLmFwcGx5KFtdLGkpfSxndWlkOjEscHJveHk6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGY7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBiJiYoZj1hW2JdLGI9YSxhPWYpLG0uaXNGdW5jdGlvbihhKT8oYz1kLmNhbGwoYXJndW1lbnRzLDIpLGU9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShifHx0aGlzLGMuY29uY2F0KGQuY2FsbChhcmd1bWVudHMpKSl9LGUuZ3VpZD1hLmd1aWQ9YS5ndWlkfHxtLmd1aWQrKyxlKTp2b2lkIDB9LG5vdzpmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0sc3VwcG9ydDprfSksbS5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7aFsiW29iamVjdCAiK2IrIl0iXT1iLnRvTG93ZXJDYXNlKCl9KTtmdW5jdGlvbiByKGEpe3ZhciBiPWEubGVuZ3RoLGM9bS50eXBlKGEpO3JldHVybiJmdW5jdGlvbiI9PT1jfHxtLmlzV2luZG93KGEpPyExOjE9PT1hLm5vZGVUeXBlJiZiPyEwOiJhcnJheSI9PT1jfHwwPT09Ynx8Im51bWJlciI9PXR5cGVvZiBiJiZiPjAmJmItMSBpbiBhfXZhciBzPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHU9InNpenpsZSIrLW5ldyBEYXRlLHY9YS5kb2N1bWVudCx3PTAseD0wLHk9Z2IoKSx6PWdiKCksQT1nYigpLEI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWImJihsPSEwKSwwfSxDPSJ1bmRlZmluZWQiLEQ9MTw8MzEsRT17fS5oYXNPd25Qcm9wZXJ0eSxGPVtdLEc9Ri5wb3AsSD1GLnB1c2gsST1GLnB1c2gsSj1GLnNsaWNlLEs9Ri5pbmRleE9mfHxmdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPXRoaXMubGVuZ3RoO2M+YjtiKyspaWYodGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9LEw9ImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkIixNPSJbXFx4MjBcXHRcXHJcXG5cXGZdIixOPSIoPzpcXFxcLnxbXFx3LV18W15cXHgwMC1cXHhhMF0pKyIsTz1OLnJlcGxhY2UoInciLCJ3IyIpLFA9IlxcWyIrTSsiKigiK04rIikoPzoiK00rIiooWypeJHwhfl0/PSkiK00rIiooPzonKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoIitPKyIpKXwpIitNKyIqXFxdIixRPSI6KCIrTisiKSg/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfCIrUCsiKSopfC4qKVxcKXwpIixSPW5ldyBSZWdFeHAoIl4iK00rIit8KCg/Ol58W15cXFxcXSkoPzpcXFxcLikqKSIrTSsiKyQiLCJnIiksUz1uZXcgUmVnRXhwKCJeIitNKyIqLCIrTSsiKiIpLFQ9bmV3IFJlZ0V4cCgiXiIrTSsiKihbPit+XXwiK00rIikiK00rIioiKSxVPW5ldyBSZWdFeHAoIj0iK00rIiooW15cXF0nXCJdKj8pIitNKyIqXFxdIiwiZyIpLFY9bmV3IFJlZ0V4cChRKSxXPW5ldyBSZWdFeHAoIl4iK08rIiQiKSxYPXtJRDpuZXcgUmVnRXhwKCJeIygiK04rIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrTisiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrTi5yZXBsYWNlKCJ3IiwidyoiKSsiKSIpLEFUVFI6bmV3IFJlZ0V4cCgiXiIrUCksUFNFVURPOm5ldyBSZWdFeHAoIl4iK1EpLENISUxEOm5ldyBSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcKCIrTSsiKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KSIrTSsiKig/OihbKy1dfCkiK00rIiooXFxkKyl8KSkiK00rIipcXCl8KSIsImkiKSxib29sOm5ldyBSZWdFeHAoIl4oPzoiK0wrIikkIiwiaSIpLG5lZWRzQ29udGV4dDpuZXcgUmVnRXhwKCJeIitNKyIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXCgiK00rIiooKD86LVxcZCk/XFxkKikiK00rIipcXCl8KSg/PVteLV18JCkiLCJpIil9LFk9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxaPS9eaFxkJC9pLCQ9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLF89L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxhYj0vWyt+XS8sYmI9Lyd8XFwvZyxjYj1uZXcgUmVnRXhwKCJcXFxcKFtcXGRhLWZdezEsNn0iK00rIj98KCIrTSsiKXwuKSIsImlnIiksZGI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSIweCIrYi02NTUzNjtyZXR1cm4gZCE9PWR8fGM/YjowPmQ/U3RyaW5nLmZyb21DaGFyQ29kZShkKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKGQ+PjEwfDU1Mjk2LDEwMjMmZHw1NjMyMCl9O3RyeXtJLmFwcGx5KEY9Si5jYWxsKHYuY2hpbGROb2Rlcyksdi5jaGlsZE5vZGVzKSxGW3YuY2hpbGROb2Rlcy5sZW5ndGhdLm5vZGVUeXBlfWNhdGNoKGViKXtJPXthcHBseTpGLmxlbmd0aD9mdW5jdGlvbihhLGIpe0guYXBwbHkoYSxKLmNhbGwoYikpfTpmdW5jdGlvbihhLGIpe3ZhciBjPWEubGVuZ3RoLGQ9MDt3aGlsZShhW2MrK109YltkKytdKTthLmxlbmd0aD1jLTF9fX1mdW5jdGlvbiBmYihhLGIsZCxlKXt2YXIgZixoLGosayxsLG8scixzLHcseDtpZigoYj9iLm93bmVyRG9jdW1lbnR8fGI6dikhPT1uJiZtKGIpLGI9Ynx8bixkPWR8fFtdLCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIGQ7aWYoMSE9PShrPWIubm9kZVR5cGUpJiY5IT09aylyZXR1cm5bXTtpZihwJiYhZSl7aWYoZj1fLmV4ZWMoYSkpaWYoaj1mWzFdKXtpZig5PT09ayl7aWYoaD1iLmdldEVsZW1lbnRCeUlkKGopLCFofHwhaC5wYXJlbnROb2RlKXJldHVybiBkO2lmKGguaWQ9PT1qKXJldHVybiBkLnB1c2goaCksZH1lbHNlIGlmKGIub3duZXJEb2N1bWVudCYmKGg9Yi5vd25lckRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGopKSYmdChiLGgpJiZoLmlkPT09ailyZXR1cm4gZC5wdXNoKGgpLGR9ZWxzZXtpZihmWzJdKXJldHVybiBJLmFwcGx5KGQsYi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKSksZDtpZigoaj1mWzNdKSYmYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIEkuYXBwbHkoZCxiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaikpLGR9aWYoYy5xc2EmJighcXx8IXEudGVzdChhKSkpe2lmKHM9cj11LHc9Yix4PTk9PT1rJiZhLDE9PT1rJiYib2JqZWN0IiE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7bz1nKGEpLChyPWIuZ2V0QXR0cmlidXRlKCJpZCIpKT9zPXIucmVwbGFjZShiYiwiXFwkJiIpOmIuc2V0QXR0cmlidXRlKCJpZCIscykscz0iW2lkPSciK3MrIiddICIsbD1vLmxlbmd0aDt3aGlsZShsLS0pb1tsXT1zK3FiKG9bbF0pO3c9YWIudGVzdChhKSYmb2IoYi5wYXJlbnROb2RlKXx8Yix4PW8uam9pbigiLCIpfWlmKHgpdHJ5e3JldHVybiBJLmFwcGx5KGQsdy5xdWVyeVNlbGVjdG9yQWxsKHgpKSxkfWNhdGNoKHkpe31maW5hbGx5e3J8fGIucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGkoYS5yZXBsYWNlKFIsIiQxIiksYixkLGUpfWZ1bmN0aW9uIGdiKCl7dmFyIGE9W107ZnVuY3Rpb24gYihjLGUpe3JldHVybiBhLnB1c2goYysiICIpPmQuY2FjaGVMZW5ndGgmJmRlbGV0ZSBiW2Euc2hpZnQoKV0sYltjKyIgIl09ZX1yZXR1cm4gYn1mdW5jdGlvbiBoYihhKXtyZXR1cm4gYVt1XT0hMCxhfWZ1bmN0aW9uIGliKGEpe3ZhciBiPW4uY3JlYXRlRWxlbWVudCgiZGl2Iik7dHJ5e3JldHVybiEhYShiKX1jYXRjaChjKXtyZXR1cm4hMX1maW5hbGx5e2IucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbH19ZnVuY3Rpb24gamIoYSxiKXt2YXIgYz1hLnNwbGl0KCJ8IiksZT1hLmxlbmd0aDt3aGlsZShlLS0pZC5hdHRySGFuZGxlW2NbZV1dPWJ9ZnVuY3Rpb24ga2IoYSxiKXt2YXIgYz1iJiZhLGQ9YyYmMT09PWEubm9kZVR5cGUmJjE9PT1iLm5vZGVUeXBlJiYofmIuc291cmNlSW5kZXh8fEQpLSh+YS5zb3VyY2VJbmRleHx8RCk7aWYoZClyZXR1cm4gZDtpZihjKXdoaWxlKGM9Yy5uZXh0U2libGluZylpZihjPT09YilyZXR1cm4tMTtyZXR1cm4gYT8xOi0xfWZ1bmN0aW9uIGxiKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWMmJmIudHlwZT09PWF9fWZ1bmN0aW9uIG1iKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuKCJpbnB1dCI9PT1jfHwiYnV0dG9uIj09PWMpJiZiLnR5cGU9PT1hfX1mdW5jdGlvbiBuYihhKXtyZXR1cm4gaGIoZnVuY3Rpb24oYil7cmV0dXJuIGI9K2IsaGIoZnVuY3Rpb24oYyxkKXt2YXIgZSxmPWEoW10sYy5sZW5ndGgsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pY1tlPWZbZ11dJiYoY1tlXT0hKGRbZV09Y1tlXSkpfSl9KX1mdW5jdGlvbiBvYihhKXtyZXR1cm4gYSYmdHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUhPT1DJiZhfWM9ZmIuc3VwcG9ydD17fSxmPWZiLmlzWE1MPWZ1bmN0aW9uKGEpe3ZhciBiPWEmJihhLm93bmVyRG9jdW1lbnR8fGEpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4gYj8iSFRNTCIhPT1iLm5vZGVOYW1lOiExfSxtPWZiLnNldERvY3VtZW50PWZ1bmN0aW9uKGEpe3ZhciBiLGU9YT9hLm93bmVyRG9jdW1lbnR8fGE6dixnPWUuZGVmYXVsdFZpZXc7cmV0dXJuIGUhPT1uJiY5PT09ZS5ub2RlVHlwZSYmZS5kb2N1bWVudEVsZW1lbnQ/KG49ZSxvPWUuZG9jdW1lbnRFbGVtZW50LHA9IWYoZSksZyYmZyE9PWcudG9wJiYoZy5hZGRFdmVudExpc3RlbmVyP2cuYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIixmdW5jdGlvbigpe20oKX0sITEpOmcuYXR0YWNoRXZlbnQmJmcuYXR0YWNoRXZlbnQoIm9udW5sb2FkIixmdW5jdGlvbigpe20oKX0pKSxjLmF0dHJpYnV0ZXM9aWIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xhc3NOYW1lPSJpIiwhYS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksYy5nZXRFbGVtZW50c0J5VGFnTmFtZT1pYihmdW5jdGlvbihhKXtyZXR1cm4gYS5hcHBlbmRDaGlsZChlLmNyZWF0ZUNvbW1lbnQoIiIpKSwhYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLGMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT0kLnRlc3QoZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSYmaWIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5uZXJIVE1MPSI8ZGl2IGNsYXNzPSdhJz48L2Rpdj48ZGl2IGNsYXNzPSdhIGknPjwvZGl2PiIsYS5maXJzdENoaWxkLmNsYXNzTmFtZT0iaSIsMj09PWEuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiaSIpLmxlbmd0aH0pLGMuZ2V0QnlJZD1pYihmdW5jdGlvbihhKXtyZXR1cm4gby5hcHBlbmRDaGlsZChhKS5pZD11LCFlLmdldEVsZW1lbnRzQnlOYW1lfHwhZS5nZXRFbGVtZW50c0J5TmFtZSh1KS5sZW5ndGh9KSxjLmdldEJ5SWQ/KGQuZmluZC5JRD1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBiLmdldEVsZW1lbnRCeUlkIT09QyYmcCl7dmFyIGM9Yi5nZXRFbGVtZW50QnlJZChhKTtyZXR1cm4gYyYmYy5wYXJlbnROb2RlP1tjXTpbXX19LGQuZmlsdGVyLklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShjYixkYik7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZSgiaWQiKT09PWJ9fSk6KGRlbGV0ZSBkLmZpbmQuSUQsZC5maWx0ZXIuSUQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKGNiLGRiKTtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGM9dHlwZW9mIGEuZ2V0QXR0cmlidXRlTm9kZSE9PUMmJmEuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gYyYmYy52YWx1ZT09PWJ9fSksZC5maW5kLlRBRz1jLmdldEVsZW1lbnRzQnlUYWdOYW1lP2Z1bmN0aW9uKGEsYil7cmV0dXJuIHR5cGVvZiBiLmdldEVsZW1lbnRzQnlUYWdOYW1lIT09Qz9iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpOnZvaWQgMH06ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9MCxmPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSk7aWYoIioiPT09YSl7d2hpbGUoYz1mW2UrK10pMT09PWMubm9kZVR5cGUmJmQucHVzaChjKTtyZXR1cm4gZH1yZXR1cm4gZn0sZC5maW5kLkNMQVNTPWMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZnVuY3Rpb24oYSxiKXtyZXR1cm4gdHlwZW9mIGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9PUMmJnA/Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpOnZvaWQgMH0scj1bXSxxPVtdLChjLnFzYT0kLnRlc3QoZS5xdWVyeVNlbGVjdG9yQWxsKSkmJihpYihmdW5jdGlvbihhKXthLmlubmVySFRNTD0iPHNlbGVjdCBtc2FsbG93Y2xpcD0nJz48b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PiIsYS5xdWVyeVNlbGVjdG9yQWxsKCJbbXNhbGxvd2NsaXBePScnXSIpLmxlbmd0aCYmcS5wdXNoKCJbKl4kXT0iK00rIiooPzonJ3xcIlwiKSIpLGEucXVlcnlTZWxlY3RvckFsbCgiW3NlbGVjdGVkXSIpLmxlbmd0aHx8cS5wdXNoKCJcXFsiK00rIiooPzp2YWx1ZXwiK0wrIikiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxxLnB1c2goIjpjaGVja2VkIil9KSxpYihmdW5jdGlvbihhKXt2YXIgYj1lLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Yi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKSxhLmFwcGVuZENoaWxkKGIpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltuYW1lPWRdIikubGVuZ3RoJiZxLnB1c2goIm5hbWUiK00rIipbKl4kfCF+XT89IiksYS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aHx8cS5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGEucXVlcnlTZWxlY3RvckFsbCgiKiw6eCIpLHEucHVzaCgiLC4qOiIpfSkpLChjLm1hdGNoZXNTZWxlY3Rvcj0kLnRlc3Qocz1vLm1hdGNoZXN8fG8ud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxvLm1vek1hdGNoZXNTZWxlY3Rvcnx8by5vTWF0Y2hlc1NlbGVjdG9yfHxvLm1zTWF0Y2hlc1NlbGVjdG9yKSkmJmliKGZ1bmN0aW9uKGEpe2MuZGlzY29ubmVjdGVkTWF0Y2g9cy5jYWxsKGEsImRpdiIpLHMuY2FsbChhLCJbcyE9JyddOngiKSxyLnB1c2goIiE9IixRKX0pLHE9cS5sZW5ndGgmJm5ldyBSZWdFeHAocS5qb2luKCJ8IikpLHI9ci5sZW5ndGgmJm5ldyBSZWdFeHAoci5qb2luKCJ8IikpLGI9JC50ZXN0KG8uY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHQ9Ynx8JC50ZXN0KG8uY29udGFpbnMpP2Z1bmN0aW9uKGEsYil7dmFyIGM9OT09PWEubm9kZVR5cGU/YS5kb2N1bWVudEVsZW1lbnQ6YSxkPWImJmIucGFyZW50Tm9kZTtyZXR1cm4gYT09PWR8fCEoIWR8fDEhPT1kLm5vZGVUeXBlfHwhKGMuY29udGFpbnM/Yy5jb250YWlucyhkKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGQpKSl9OmZ1bmN0aW9uKGEsYil7aWYoYil3aGlsZShiPWIucGFyZW50Tm9kZSlpZihiPT09YSlyZXR1cm4hMDtyZXR1cm4hMX0sQj1iP2Z1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIGw9ITAsMDt2YXIgZD0hYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gZD9kOihkPShhLm93bmVyRG9jdW1lbnR8fGEpPT09KGIub3duZXJEb2N1bWVudHx8Yik/YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKToxLDEmZHx8IWMuc29ydERldGFjaGVkJiZiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGEpPT09ZD9hPT09ZXx8YS5vd25lckRvY3VtZW50PT09diYmdCh2LGEpPy0xOmI9PT1lfHxiLm93bmVyRG9jdW1lbnQ9PT12JiZ0KHYsYik/MTprP0suY2FsbChrLGEpLUsuY2FsbChrLGIpOjA6NCZkPy0xOjEpfTpmdW5jdGlvbihhLGIpe2lmKGE9PT1iKXJldHVybiBsPSEwLDA7dmFyIGMsZD0wLGY9YS5wYXJlbnROb2RlLGc9Yi5wYXJlbnROb2RlLGg9W2FdLGk9W2JdO2lmKCFmfHwhZylyZXR1cm4gYT09PWU/LTE6Yj09PWU/MTpmPy0xOmc/MTprP0suY2FsbChrLGEpLUsuY2FsbChrLGIpOjA7aWYoZj09PWcpcmV0dXJuIGtiKGEsYik7Yz1hO3doaWxlKGM9Yy5wYXJlbnROb2RlKWgudW5zaGlmdChjKTtjPWI7d2hpbGUoYz1jLnBhcmVudE5vZGUpaS51bnNoaWZ0KGMpO3doaWxlKGhbZF09PT1pW2RdKWQrKztyZXR1cm4gZD9rYihoW2RdLGlbZF0pOmhbZF09PT12Py0xOmlbZF09PT12PzE6MH0sZSk6bn0sZmIubWF0Y2hlcz1mdW5jdGlvbihhLGIpe3JldHVybiBmYihhLG51bGwsbnVsbCxiKX0sZmIubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGEsYil7aWYoKGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpLGI9Yi5yZXBsYWNlKFUsIj0nJDEnXSIpLCEoIWMubWF0Y2hlc1NlbGVjdG9yfHwhcHx8ciYmci50ZXN0KGIpfHxxJiZxLnRlc3QoYikpKXRyeXt2YXIgZD1zLmNhbGwoYSxiKTtpZihkfHxjLmRpc2Nvbm5lY3RlZE1hdGNofHxhLmRvY3VtZW50JiYxMSE9PWEuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIGR9Y2F0Y2goZSl7fXJldHVybiBmYihiLG4sbnVsbCxbYV0pLmxlbmd0aD4wfSxmYi5jb250YWlucz1mdW5jdGlvbihhLGIpe3JldHVybihhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKSx0KGEsYil9LGZiLmF0dHI9ZnVuY3Rpb24oYSxiKXsoYS5vd25lckRvY3VtZW50fHxhKSE9PW4mJm0oYSk7dmFyIGU9ZC5hdHRySGFuZGxlW2IudG9Mb3dlckNhc2UoKV0sZj1lJiZFLmNhbGwoZC5hdHRySGFuZGxlLGIudG9Mb3dlckNhc2UoKSk/ZShhLGIsIXApOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09Zj9mOmMuYXR0cmlidXRlc3x8IXA/YS5nZXRBdHRyaWJ1dGUoYik6KGY9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpKSYmZi5zcGVjaWZpZWQ/Zi52YWx1ZTpudWxsfSxmYi5lcnJvcj1mdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYSl9LGZiLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oYSl7dmFyIGIsZD1bXSxlPTAsZj0wO2lmKGw9IWMuZGV0ZWN0RHVwbGljYXRlcyxrPSFjLnNvcnRTdGFibGUmJmEuc2xpY2UoMCksYS5zb3J0KEIpLGwpe3doaWxlKGI9YVtmKytdKWI9PT1hW2ZdJiYoZT1kLnB1c2goZikpO3doaWxlKGUtLSlhLnNwbGljZShkW2VdLDEpfXJldHVybiBrPW51bGwsYX0sZT1mYi5nZXRUZXh0PWZ1bmN0aW9uKGEpe3ZhciBiLGM9IiIsZD0wLGY9YS5ub2RlVHlwZTtpZihmKXtpZigxPT09Znx8OT09PWZ8fDExPT09Zil7aWYoInN0cmluZyI9PXR5cGVvZiBhLnRleHRDb250ZW50KXJldHVybiBhLnRleHRDb250ZW50O2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZyljKz1lKGEpfWVsc2UgaWYoMz09PWZ8fDQ9PT1mKXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIHdoaWxlKGI9YVtkKytdKWMrPWUoYik7cmV0dXJuIGN9LGQ9ZmIuc2VsZWN0b3JzPXtjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86aGIsbWF0Y2g6WCxhdHRySGFuZGxlOnt9LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2RlIixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJsaW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV09YVsxXS5yZXBsYWNlKGNiLGRiKSxhWzNdPShhWzNdfHxhWzRdfHxhWzVdfHwiIikucmVwbGFjZShjYixkYiksIn49Ij09PWFbMl0mJihhWzNdPSIgIithWzNdKyIgIiksYS5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihhKXtyZXR1cm4gYVsxXT1hWzFdLnRvTG93ZXJDYXNlKCksIm50aCI9PT1hWzFdLnNsaWNlKDAsMyk/KGFbM118fGZiLmVycm9yKGFbMF0pLGFbNF09KyhhWzRdP2FbNV0rKGFbNl18fDEpOjIqKCJldmVuIj09PWFbM118fCJvZGQiPT09YVszXSkpLGFbNV09KyhhWzddK2FbOF18fCJvZGQiPT09YVszXSkpOmFbM10mJmZiLmVycm9yKGFbMF0pLGF9LFBTRVVETzpmdW5jdGlvbihhKXt2YXIgYixjPSFhWzZdJiZhWzJdO3JldHVybiBYLkNISUxELnRlc3QoYVswXSk/bnVsbDooYVszXT9hWzJdPWFbNF18fGFbNV18fCIiOmMmJlYudGVzdChjKSYmKGI9ZyhjLCEwKSkmJihiPWMuaW5kZXhPZigiKSIsYy5sZW5ndGgtYiktYy5sZW5ndGgpJiYoYVswXT1hWzBdLnNsaWNlKDAsYiksYVsyXT1jLnNsaWNlKDAsYikpLGEuc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoY2IsZGIpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIioiPT09YT9mdW5jdGlvbigpe3JldHVybiEwfTpmdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yn19LENMQVNTOmZ1bmN0aW9uKGEpe3ZhciBiPXlbYSsiICJdO3JldHVybiBifHwoYj1uZXcgUmVnRXhwKCIoXnwiK00rIikiK2ErIigiK00rInwkKSIpKSYmeShhLGZ1bmN0aW9uKGEpe3JldHVybiBiLnRlc3QoInN0cmluZyI9PXR5cGVvZiBhLmNsYXNzTmFtZSYmYS5jbGFzc05hbWV8fHR5cGVvZiBhLmdldEF0dHJpYnV0ZSE9PUMmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KX0sQVRUUjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe3ZhciBlPWZiLmF0dHIoZCxhKTtyZXR1cm4gbnVsbD09ZT8iIT0iPT09YjpiPyhlKz0iIiwiPSI9PT1iP2U9PT1jOiIhPSI9PT1iP2UhPT1jOiJePSI9PT1iP2MmJjA9PT1lLmluZGV4T2YoYyk6Iio9Ij09PWI/YyYmZS5pbmRleE9mKGMpPi0xOiIkPSI9PT1iP2MmJmUuc2xpY2UoLWMubGVuZ3RoKT09PWM6In49Ij09PWI/KCIgIitlKyIgIikuaW5kZXhPZihjKT4tMToifD0iPT09Yj9lPT09Y3x8ZS5zbGljZSgwLGMubGVuZ3RoKzEpPT09YysiLSI6ITEpOiEwfX0sQ0hJTEQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj0ibnRoIiE9PWEuc2xpY2UoMCwzKSxnPSJsYXN0IiE9PWEuc2xpY2UoLTQpLGg9Im9mLXR5cGUiPT09YjtyZXR1cm4gMT09PWQmJjA9PT1lP2Z1bmN0aW9uKGEpe3JldHVybiEhYS5wYXJlbnROb2RlfTpmdW5jdGlvbihiLGMsaSl7dmFyIGosayxsLG0sbixvLHA9ZiE9PWc/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIixxPWIucGFyZW50Tm9kZSxyPWgmJmIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxzPSFpJiYhaDtpZihxKXtpZihmKXt3aGlsZShwKXtsPWI7d2hpbGUobD1sW3BdKWlmKGg/bC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09cjoxPT09bC5ub2RlVHlwZSlyZXR1cm4hMTtvPXA9Im9ubHkiPT09YSYmIW8mJiJuZXh0U2libGluZyJ9cmV0dXJuITB9aWYobz1bZz9xLmZpcnN0Q2hpbGQ6cS5sYXN0Q2hpbGRdLGcmJnMpe2s9cVt1XXx8KHFbdV09e30pLGo9a1thXXx8W10sbj1qWzBdPT09dyYmalsxXSxtPWpbMF09PT13JiZqWzJdLGw9biYmcS5jaGlsZE5vZGVzW25dO3doaWxlKGw9KytuJiZsJiZsW3BdfHwobT1uPTApfHxvLnBvcCgpKWlmKDE9PT1sLm5vZGVUeXBlJiYrK20mJmw9PT1iKXtrW2FdPVt3LG4sbV07YnJlYWt9fWVsc2UgaWYocyYmKGo9KGJbdV18fChiW3VdPXt9KSlbYV0pJiZqWzBdPT09dyltPWpbMV07ZWxzZSB3aGlsZShsPSsrbiYmbCYmbFtwXXx8KG09bj0wKXx8by5wb3AoKSlpZigoaD9sLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1yOjE9PT1sLm5vZGVUeXBlKSYmKyttJiYocyYmKChsW3VdfHwobFt1XT17fSkpW2FdPVt3LG1dKSxsPT09YikpYnJlYWs7cmV0dXJuIG0tPWUsbT09PWR8fG0lZD09PTAmJm0vZD49MH19fSxQU0VVRE86ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPWQucHNldWRvc1thXXx8ZC5zZXRGaWx0ZXJzW2EudG9Mb3dlckNhc2UoKV18fGZiLmVycm9yKCJ1bnN1cHBvcnRlZCBwc2V1ZG86ICIrYSk7cmV0dXJuIGVbdV0/ZShiKTplLmxlbmd0aD4xPyhjPVthLGEsIiIsYl0sZC5zZXRGaWx0ZXJzLmhhc093blByb3BlcnR5KGEudG9Mb3dlckNhc2UoKSk/aGIoZnVuY3Rpb24oYSxjKXt2YXIgZCxmPWUoYSxiKSxnPWYubGVuZ3RoO3doaWxlKGctLSlkPUsuY2FsbChhLGZbZ10pLGFbZF09IShjW2RdPWZbZ10pfSk6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSwwLGMpfSk6ZX19LHBzZXVkb3M6e25vdDpoYihmdW5jdGlvbihhKXt2YXIgYj1bXSxjPVtdLGQ9aChhLnJlcGxhY2UoUiwiJDEiKSk7cmV0dXJuIGRbdV0/aGIoZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZz1kKGEsbnVsbCxlLFtdKSxoPWEubGVuZ3RoO3doaWxlKGgtLSkoZj1nW2hdKSYmKGFbaF09IShiW2hdPWYpKX0pOmZ1bmN0aW9uKGEsZSxmKXtyZXR1cm4gYlswXT1hLGQoYixudWxsLGYsYyksIWMucG9wKCl9fSksaGFzOmhiKGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gZmIoYSxiKS5sZW5ndGg+MH19KSxjb250YWluczpoYihmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuKGIudGV4dENvbnRlbnR8fGIuaW5uZXJUZXh0fHxlKGIpKS5pbmRleE9mKGEpPi0xfX0pLGxhbmc6aGIoZnVuY3Rpb24oYSl7cmV0dXJuIFcudGVzdChhfHwiIil8fGZiLmVycm9yKCJ1bnN1cHBvcnRlZCBsYW5nOiAiK2EpLGE9YS5yZXBsYWNlKGNiLGRiKS50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKGIpe3ZhciBjO2RvIGlmKGM9cD9iLmxhbmc6Yi5nZXRBdHRyaWJ1dGUoInhtbDpsYW5nIil8fGIuZ2V0QXR0cmlidXRlKCJsYW5nIikpcmV0dXJuIGM9Yy50b0xvd2VyQ2FzZSgpLGM9PT1hfHwwPT09Yy5pbmRleE9mKGErIi0iKTt3aGlsZSgoYj1iLnBhcmVudE5vZGUpJiYxPT09Yi5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGIpe3ZhciBjPWEubG9jYXRpb24mJmEubG9jYXRpb24uaGFzaDtyZXR1cm4gYyYmYy5zbGljZSgxKT09PWIuaWR9LHJvb3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1vfSxmb2N1czpmdW5jdGlvbihhKXtyZXR1cm4gYT09PW4uYWN0aXZlRWxlbWVudCYmKCFuLmhhc0ZvY3VzfHxuLmhhc0ZvY3VzKCkpJiYhIShhLnR5cGV8fGEuaHJlZnx8fmEudGFiSW5kZXgpfSxlbmFibGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLmRpc2FibGVkPT09ITF9LGRpc2FibGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLmRpc2FibGVkPT09ITB9LGNoZWNrZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1iJiYhIWEuY2hlY2tlZHx8Im9wdGlvbiI9PT1iJiYhIWEuc2VsZWN0ZWR9LHNlbGVjdGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LGEuc2VsZWN0ZWQ9PT0hMH0sZW1wdHk6ZnVuY3Rpb24oYSl7Zm9yKGE9YS5maXJzdENoaWxkO2E7YT1hLm5leHRTaWJsaW5nKWlmKGEubm9kZVR5cGU8NilyZXR1cm4hMTtyZXR1cm4hMH0scGFyZW50OmZ1bmN0aW9uKGEpe3JldHVybiFkLnBzZXVkb3MuZW1wdHkoYSl9LGhlYWRlcjpmdW5jdGlvbihhKXtyZXR1cm4gWi50ZXN0KGEubm9kZU5hbWUpfSxpbnB1dDpmdW5jdGlvbihhKXtyZXR1cm4gWS50ZXN0KGEubm9kZU5hbWUpfSxidXR0b246ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1iJiYiYnV0dG9uIj09PWEudHlwZXx8ImJ1dHRvbiI9PT1ifSx0ZXh0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiJpbnB1dCI9PT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJiJ0ZXh0Ij09PWEudHlwZSYmKG51bGw9PShiPWEuZ2V0QXR0cmlidXRlKCJ0eXBlIikpfHwidGV4dCI9PT1iLnRvTG93ZXJDYXNlKCkpfSxmaXJzdDpuYihmdW5jdGlvbigpe3JldHVyblswXX0pLGxhc3Q6bmIoZnVuY3Rpb24oYSxiKXtyZXR1cm5bYi0xXX0pLGVxOm5iKGZ1bmN0aW9uKGEsYixjKXtyZXR1cm5bMD5jP2MrYjpjXX0pLGV2ZW46bmIoZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtiPmM7Yys9MilhLnB1c2goYyk7cmV0dXJuIGF9KSxvZGQ6bmIoZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MTtiPmM7Yys9MilhLnB1c2goYyk7cmV0dXJuIGF9KSxsdDpuYihmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA+Yz9jK2I6YzstLWQ+PTA7KWEucHVzaChkKTtyZXR1cm4gYX0pLGd0Om5iKGZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MD5jP2MrYjpjOysrZDxiOylhLnB1c2goZCk7cmV0dXJuIGF9KX19LGQucHNldWRvcy5udGg9ZC5wc2V1ZG9zLmVxO2ZvcihiIGlue3JhZGlvOiEwLGNoZWNrYm94OiEwLGZpbGU6ITAscGFzc3dvcmQ6ITAsaW1hZ2U6ITB9KWQucHNldWRvc1tiXT1sYihiKTtmb3IoYiBpbntzdWJtaXQ6ITAscmVzZXQ6ITB9KWQucHNldWRvc1tiXT1tYihiKTtmdW5jdGlvbiBwYigpe31wYi5wcm90b3R5cGU9ZC5maWx0ZXJzPWQucHNldWRvcyxkLnNldEZpbHRlcnM9bmV3IHBiLGc9ZmIudG9rZW5pemU9ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGYsZyxoLGksaixrPXpbYSsiICJdO2lmKGspcmV0dXJuIGI/MDprLnNsaWNlKDApO2g9YSxpPVtdLGo9ZC5wcmVGaWx0ZXI7d2hpbGUoaCl7KCFjfHwoZT1TLmV4ZWMoaCkpKSYmKGUmJihoPWguc2xpY2UoZVswXS5sZW5ndGgpfHxoKSxpLnB1c2goZj1bXSkpLGM9ITEsKGU9VC5leGVjKGgpKSYmKGM9ZS5zaGlmdCgpLGYucHVzaCh7dmFsdWU6Yyx0eXBlOmVbMF0ucmVwbGFjZShSLCIgIil9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtmb3IoZyBpbiBkLmZpbHRlcikhKGU9WFtnXS5leGVjKGgpKXx8altnXSYmIShlPWpbZ10oZSkpfHwoYz1lLnNoaWZ0KCksZi5wdXNoKHt2YWx1ZTpjLHR5cGU6ZyxtYXRjaGVzOmV9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtpZighYylicmVha31yZXR1cm4gYj9oLmxlbmd0aDpoP2ZiLmVycm9yKGEpOnooYSxpKS5zbGljZSgwKX07ZnVuY3Rpb24gcWIoYSl7Zm9yKHZhciBiPTAsYz1hLmxlbmd0aCxkPSIiO2M+YjtiKyspZCs9YVtiXS52YWx1ZTtyZXR1cm4gZH1mdW5jdGlvbiByYihhLGIsYyl7dmFyIGQ9Yi5kaXIsZT1jJiYicGFyZW50Tm9kZSI9PT1kLGY9eCsrO3JldHVybiBiLmZpcnN0P2Z1bmN0aW9uKGIsYyxmKXt3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGUpcmV0dXJuIGEoYixjLGYpfTpmdW5jdGlvbihiLGMsZyl7dmFyIGgsaSxqPVt3LGZdO2lmKGcpe3doaWxlKGI9YltkXSlpZigoMT09PWIubm9kZVR5cGV8fGUpJiZhKGIsYyxnKSlyZXR1cm4hMH1lbHNlIHdoaWxlKGI9YltkXSlpZigxPT09Yi5ub2RlVHlwZXx8ZSl7aWYoaT1iW3VdfHwoYlt1XT17fSksKGg9aVtkXSkmJmhbMF09PT13JiZoWzFdPT09ZilyZXR1cm4galsyXT1oWzJdO2lmKGlbZF09aixqWzJdPWEoYixjLGcpKXJldHVybiEwfX19ZnVuY3Rpb24gc2IoYSl7cmV0dXJuIGEubGVuZ3RoPjE/ZnVuY3Rpb24oYixjLGQpe3ZhciBlPWEubGVuZ3RoO3doaWxlKGUtLSlpZighYVtlXShiLGMsZCkpcmV0dXJuITE7cmV0dXJuITB9OmFbMF19ZnVuY3Rpb24gdGIoYSxiLGMpe2Zvcih2YXIgZD0wLGU9Yi5sZW5ndGg7ZT5kO2QrKylmYihhLGJbZF0sYyk7cmV0dXJuIGN9ZnVuY3Rpb24gdWIoYSxiLGMsZCxlKXtmb3IodmFyIGYsZz1bXSxoPTAsaT1hLmxlbmd0aCxqPW51bGwhPWI7aT5oO2grKykoZj1hW2hdKSYmKCFjfHxjKGYsZCxlKSkmJihnLnB1c2goZiksaiYmYi5wdXNoKGgpKTtyZXR1cm4gZ31mdW5jdGlvbiB2YihhLGIsYyxkLGUsZil7cmV0dXJuIGQmJiFkW3VdJiYoZD12YihkKSksZSYmIWVbdV0mJihlPXZiKGUsZikpLGhiKGZ1bmN0aW9uKGYsZyxoLGkpe3ZhciBqLGssbCxtPVtdLG49W10sbz1nLmxlbmd0aCxwPWZ8fHRiKGJ8fCIqIixoLm5vZGVUeXBlP1toXTpoLFtdKSxxPSFhfHwhZiYmYj9wOnViKHAsbSxhLGgsaSkscj1jP2V8fChmP2E6b3x8ZCk/W106ZzpxO2lmKGMmJmMocSxyLGgsaSksZCl7aj11YihyLG4pLGQoaixbXSxoLGkpLGs9ai5sZW5ndGg7d2hpbGUoay0tKShsPWpba10pJiYocltuW2tdXT0hKHFbbltrXV09bCkpfWlmKGYpe2lmKGV8fGEpe2lmKGUpe2o9W10saz1yLmxlbmd0aDt3aGlsZShrLS0pKGw9cltrXSkmJmoucHVzaChxW2tdPWwpO2UobnVsbCxyPVtdLGosaSl9az1yLmxlbmd0aDt3aGlsZShrLS0pKGw9cltrXSkmJihqPWU/Sy5jYWxsKGYsbCk6bVtrXSk+LTEmJihmW2pdPSEoZ1tqXT1sKSl9fWVsc2Ugcj11YihyPT09Zz9yLnNwbGljZShvLHIubGVuZ3RoKTpyKSxlP2UobnVsbCxnLHIsaSk6SS5hcHBseShnLHIpfSl9ZnVuY3Rpb24gd2IoYSl7Zm9yKHZhciBiLGMsZSxmPWEubGVuZ3RoLGc9ZC5yZWxhdGl2ZVthWzBdLnR5cGVdLGg9Z3x8ZC5yZWxhdGl2ZVsiICJdLGk9Zz8xOjAsaz1yYihmdW5jdGlvbihhKXtyZXR1cm4gYT09PWJ9LGgsITApLGw9cmIoZnVuY3Rpb24oYSl7cmV0dXJuIEsuY2FsbChiLGEpPi0xfSxoLCEwKSxtPVtmdW5jdGlvbihhLGMsZCl7cmV0dXJuIWcmJihkfHxjIT09ail8fCgoYj1jKS5ub2RlVHlwZT9rKGEsYyxkKTpsKGEsYyxkKSl9XTtmPmk7aSsrKWlmKGM9ZC5yZWxhdGl2ZVthW2ldLnR5cGVdKW09W3JiKHNiKG0pLGMpXTtlbHNle2lmKGM9ZC5maWx0ZXJbYVtpXS50eXBlXS5hcHBseShudWxsLGFbaV0ubWF0Y2hlcyksY1t1XSl7Zm9yKGU9KytpO2Y+ZTtlKyspaWYoZC5yZWxhdGl2ZVthW2VdLnR5cGVdKWJyZWFrO3JldHVybiB2YihpPjEmJnNiKG0pLGk+MSYmcWIoYS5zbGljZSgwLGktMSkuY29uY2F0KHt2YWx1ZToiICI9PT1hW2ktMl0udHlwZT8iKiI6IiJ9KSkucmVwbGFjZShSLCIkMSIpLGMsZT5pJiZ3YihhLnNsaWNlKGksZSkpLGY+ZSYmd2IoYT1hLnNsaWNlKGUpKSxmPmUmJnFiKGEpKX1tLnB1c2goYyl9cmV0dXJuIHNiKG0pfWZ1bmN0aW9uIHhiKGEsYil7dmFyIGM9Yi5sZW5ndGg+MCxlPWEubGVuZ3RoPjAsZj1mdW5jdGlvbihmLGcsaCxpLGspe3ZhciBsLG0sbyxwPTAscT0iMCIscj1mJiZbXSxzPVtdLHQ9aix1PWZ8fGUmJmQuZmluZC5UQUcoIioiLGspLHY9dys9bnVsbD09dD8xOk1hdGgucmFuZG9tKCl8fC4xLHg9dS5sZW5ndGg7Zm9yKGsmJihqPWchPT1uJiZnKTtxIT09eCYmbnVsbCE9KGw9dVtxXSk7cSsrKXtpZihlJiZsKXttPTA7d2hpbGUobz1hW20rK10paWYobyhsLGcsaCkpe2kucHVzaChsKTticmVha31rJiYodz12KX1jJiYoKGw9IW8mJmwpJiZwLS0sZiYmci5wdXNoKGwpKX1pZihwKz1xLGMmJnEhPT1wKXttPTA7d2hpbGUobz1iW20rK10pbyhyLHMsZyxoKTtpZihmKXtpZihwPjApd2hpbGUocS0tKXJbcV18fHNbcV18fChzW3FdPUcuY2FsbChpKSk7cz11YihzKX1JLmFwcGx5KGkscyksayYmIWYmJnMubGVuZ3RoPjAmJnArYi5sZW5ndGg+MSYmZmIudW5pcXVlU29ydChpKX1yZXR1cm4gayYmKHc9dixqPXQpLHJ9O3JldHVybiBjP2hiKGYpOmZ9cmV0dXJuIGg9ZmIuY29tcGlsZT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT1bXSxmPUFbYSsiICJdO2lmKCFmKXtifHwoYj1nKGEpKSxjPWIubGVuZ3RoO3doaWxlKGMtLSlmPXdiKGJbY10pLGZbdV0/ZC5wdXNoKGYpOmUucHVzaChmKTtmPUEoYSx4YihlLGQpKSxmLnNlbGVjdG9yPWF9cmV0dXJuIGZ9LGk9ZmIuc2VsZWN0PWZ1bmN0aW9uKGEsYixlLGYpe3ZhciBpLGosayxsLG0sbj0iZnVuY3Rpb24iPT10eXBlb2YgYSYmYSxvPSFmJiZnKGE9bi5zZWxlY3Rvcnx8YSk7aWYoZT1lfHxbXSwxPT09by5sZW5ndGgpe2lmKGo9b1swXT1vWzBdLnNsaWNlKDApLGoubGVuZ3RoPjImJiJJRCI9PT0oaz1qWzBdKS50eXBlJiZjLmdldEJ5SWQmJjk9PT1iLm5vZGVUeXBlJiZwJiZkLnJlbGF0aXZlW2pbMV0udHlwZV0pe2lmKGI9KGQuZmluZC5JRChrLm1hdGNoZXNbMF0ucmVwbGFjZShjYixkYiksYil8fFtdKVswXSwhYilyZXR1cm4gZTtuJiYoYj1iLnBhcmVudE5vZGUpLGE9YS5zbGljZShqLnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1pPVgubmVlZHNDb250ZXh0LnRlc3QoYSk/MDpqLmxlbmd0aDt3aGlsZShpLS0pe2lmKGs9altpXSxkLnJlbGF0aXZlW2w9ay50eXBlXSlicmVhaztpZigobT1kLmZpbmRbbF0pJiYoZj1tKGsubWF0Y2hlc1swXS5yZXBsYWNlKGNiLGRiKSxhYi50ZXN0KGpbMF0udHlwZSkmJm9iKGIucGFyZW50Tm9kZSl8fGIpKSl7aWYoai5zcGxpY2UoaSwxKSxhPWYubGVuZ3RoJiZxYihqKSwhYSlyZXR1cm4gSS5hcHBseShlLGYpLGU7YnJlYWt9fX1yZXR1cm4obnx8aChhLG8pKShmLGIsIXAsZSxhYi50ZXN0KGEpJiZvYihiLnBhcmVudE5vZGUpfHxiKSxlfSxjLnNvcnRTdGFibGU9dS5zcGxpdCgiIikuc29ydChCKS5qb2luKCIiKT09PXUsYy5kZXRlY3REdXBsaWNhdGVzPSEhbCxtKCksYy5zb3J0RGV0YWNoZWQ9aWIoZnVuY3Rpb24oYSl7cmV0dXJuIDEmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihuLmNyZWF0ZUVsZW1lbnQoImRpdiIpKX0pLGliKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiIsIiMiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSl8fGpiKCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoIixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/dm9pZCAwOmEuZ2V0QXR0cmlidXRlKGIsInR5cGUiPT09Yi50b0xvd2VyQ2FzZSgpPzE6Mil9KSxjLmF0dHJpYnV0ZXMmJmliKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGlucHV0Lz4iLGEuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT1hLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGpiKCJ2YWx1ZSIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjfHwiaW5wdXQiIT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP3ZvaWQgMDphLmRlZmF1bHRWYWx1ZX0pLGliKGZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKX0pfHxqYihMLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4gYz92b2lkIDA6YVtiXT09PSEwP2IudG9Mb3dlckNhc2UoKTooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZkLnNwZWNpZmllZD9kLnZhbHVlOm51bGx9KSxmYn0oYSk7bS5maW5kPXMsbS5leHByPXMuc2VsZWN0b3JzLG0uZXhwclsiOiJdPW0uZXhwci5wc2V1ZG9zLG0udW5pcXVlPXMudW5pcXVlU29ydCxtLnRleHQ9cy5nZXRUZXh0LG0uaXNYTUxEb2M9cy5pc1hNTCxtLmNvbnRhaW5zPXMuY29udGFpbnM7dmFyIHQ9bS5leHByLm1hdGNoLm5lZWRzQ29udGV4dCx1PS9ePChcdyspXHMqXC8/Pig/OjxcL1wxPnwpJC8sdj0vXi5bXjojXFtcLixdKiQvO2Z1bmN0aW9uIHcoYSxiLGMpe2lmKG0uaXNGdW5jdGlvbihiKSlyZXR1cm4gbS5ncmVwKGEsZnVuY3Rpb24oYSxkKXtyZXR1cm4hIWIuY2FsbChhLGQsYSkhPT1jfSk7aWYoYi5ub2RlVHlwZSlyZXR1cm4gbS5ncmVwKGEsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1iIT09Y30pO2lmKCJzdHJpbmciPT10eXBlb2YgYil7aWYodi50ZXN0KGIpKXJldHVybiBtLmZpbHRlcihiLGEsYyk7Yj1tLmZpbHRlcihiLGEpfXJldHVybiBtLmdyZXAoYSxmdW5jdGlvbihhKXtyZXR1cm4gbS5pbkFycmF5KGEsYik+PTAhPT1jfSl9bS5maWx0ZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWJbMF07cmV0dXJuIGMmJihhPSI6bm90KCIrYSsiKSIpLDE9PT1iLmxlbmd0aCYmMT09PWQubm9kZVR5cGU/bS5maW5kLm1hdGNoZXNTZWxlY3RvcihkLGEpP1tkXTpbXTptLmZpbmQubWF0Y2hlcyhhLG0uZ3JlcChiLGZ1bmN0aW9uKGEpe3JldHVybiAxPT09YS5ub2RlVHlwZX0pKX0sbS5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz1bXSxkPXRoaXMsZT1kLmxlbmd0aDtpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIHRoaXMucHVzaFN0YWNrKG0oYSkuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKGI9MDtlPmI7YisrKWlmKG0uY29udGFpbnMoZFtiXSx0aGlzKSlyZXR1cm4hMH0pKTtmb3IoYj0wO2U+YjtiKyspbS5maW5kKGEsZFtiXSxjKTtyZXR1cm4gYz10aGlzLnB1c2hTdGFjayhlPjE/bS51bmlxdWUoYyk6YyksYy5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yP3RoaXMuc2VsZWN0b3IrIiAiK2E6YSxjfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHcodGhpcyxhfHxbXSwhMSkpfSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHcodGhpcyxhfHxbXSwhMCkpfSxpczpmdW5jdGlvbihhKXtyZXR1cm4hIXcodGhpcywic3RyaW5nIj09dHlwZW9mIGEmJnQudGVzdChhKT9tKGEpOmF8fFtdLCExKS5sZW5ndGh9fSk7dmFyIHgseT1hLmRvY3VtZW50LHo9L14oPzpccyooPFtcd1xXXSs+KVtePl0qfCMoW1x3LV0qKSkkLyxBPW0uZm4uaW5pdD1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7aWYoIWEpcmV0dXJuIHRoaXM7aWYoInN0cmluZyI9PXR5cGVvZiBhKXtpZihjPSI8Ij09PWEuY2hhckF0KDApJiYiPiI9PT1hLmNoYXJBdChhLmxlbmd0aC0xKSYmYS5sZW5ndGg+PTM/W251bGwsYSxudWxsXTp6LmV4ZWMoYSksIWN8fCFjWzFdJiZiKXJldHVybiFifHxiLmpxdWVyeT8oYnx8eCkuZmluZChhKTp0aGlzLmNvbnN0cnVjdG9yKGIpLmZpbmQoYSk7aWYoY1sxXSl7aWYoYj1iIGluc3RhbmNlb2YgbT9iWzBdOmIsbS5tZXJnZSh0aGlzLG0ucGFyc2VIVE1MKGNbMV0sYiYmYi5ub2RlVHlwZT9iLm93bmVyRG9jdW1lbnR8fGI6eSwhMCkpLHUudGVzdChjWzFdKSYmbS5pc1BsYWluT2JqZWN0KGIpKWZvcihjIGluIGIpbS5pc0Z1bmN0aW9uKHRoaXNbY10pP3RoaXNbY10oYltjXSk6dGhpcy5hdHRyKGMsYltjXSk7cmV0dXJuIHRoaXN9aWYoZD15LmdldEVsZW1lbnRCeUlkKGNbMl0pLGQmJmQucGFyZW50Tm9kZSl7aWYoZC5pZCE9PWNbMl0pcmV0dXJuIHguZmluZChhKTt0aGlzLmxlbmd0aD0xLHRoaXNbMF09ZH1yZXR1cm4gdGhpcy5jb250ZXh0PXksdGhpcy5zZWxlY3Rvcj1hLHRoaXN9cmV0dXJuIGEubm9kZVR5cGU/KHRoaXMuY29udGV4dD10aGlzWzBdPWEsdGhpcy5sZW5ndGg9MSx0aGlzKTptLmlzRnVuY3Rpb24oYSk/InVuZGVmaW5lZCIhPXR5cGVvZiB4LnJlYWR5P3gucmVhZHkoYSk6YShtKToodm9pZCAwIT09YS5zZWxlY3RvciYmKHRoaXMuc2VsZWN0b3I9YS5zZWxlY3Rvcix0aGlzLmNvbnRleHQ9YS5jb250ZXh0KSxtLm1ha2VBcnJheShhLHRoaXMpKX07QS5wcm90b3R5cGU9bS5mbix4PW0oeSk7dmFyIEI9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sQz17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTttLmV4dGVuZCh7ZGlyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPWFbYl07d2hpbGUoZSYmOSE9PWUubm9kZVR5cGUmJih2b2lkIDA9PT1jfHwxIT09ZS5ub2RlVHlwZXx8IW0oZSkuaXMoYykpKTE9PT1lLm5vZGVUeXBlJiZkLnB1c2goZSksZT1lW2JdO3JldHVybiBkfSxzaWJsaW5nOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdO2E7YT1hLm5leHRTaWJsaW5nKTE9PT1hLm5vZGVUeXBlJiZhIT09YiYmYy5wdXNoKGEpO3JldHVybiBjfX0pLG0uZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oYSl7dmFyIGIsYz1tKGEsdGhpcyksZD1jLmxlbmd0aDtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0wO2Q+YjtiKyspaWYobS5jb250YWlucyh0aGlzLGNbYl0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZD0wLGU9dGhpcy5sZW5ndGgsZj1bXSxnPXQudGVzdChhKXx8InN0cmluZyIhPXR5cGVvZiBhP20oYSxifHx0aGlzLmNvbnRleHQpOjA7ZT5kO2QrKylmb3IoYz10aGlzW2RdO2MmJmMhPT1iO2M9Yy5wYXJlbnROb2RlKWlmKGMubm9kZVR5cGU8MTEmJihnP2cuaW5kZXgoYyk+LTE6MT09PWMubm9kZVR5cGUmJm0uZmluZC5tYXRjaGVzU2VsZWN0b3IoYyxhKSkpe2YucHVzaChjKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soZi5sZW5ndGg+MT9tLnVuaXF1ZShmKTpmKX0saW5kZXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/InN0cmluZyI9PXR5cGVvZiBhP20uaW5BcnJheSh0aGlzWzBdLG0oYSkpOm0uaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS51bmlxdWUobS5tZXJnZSh0aGlzLmdldCgpLG0oYSxiKSkpKX0sYWRkQmFjazpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09YT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihhKSl9fSk7ZnVuY3Rpb24gRChhLGIpe2RvIGE9YVtiXTt3aGlsZShhJiYxIT09YS5ub2RlVHlwZSk7cmV0dXJuIGF9bS5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5wYXJlbnROb2RlO3JldHVybiBiJiYxMSE9PWIubm9kZVR5cGU/YjpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBtLmRpcihhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0uZGlyKGEsInBhcmVudE5vZGUiLGMpfSxuZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBEKGEsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIEQoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIG0uZGlyKGEsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIG0uZGlyKGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBtLmRpcihhLCJuZXh0U2libGluZyIsYyl9LHByZXZVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0uZGlyKGEsInByZXZpb3VzU2libGluZyIsYyl9LHNpYmxpbmdzOmZ1bmN0aW9uKGEpe3JldHVybiBtLnNpYmxpbmcoKGEucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsYSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGEpe3JldHVybiBtLnNpYmxpbmcoYS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIG0ubm9kZU5hbWUoYSwiaWZyYW1lIik/YS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDptLm1lcmdlKFtdLGEuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihhLGIpe20uZm5bYV09ZnVuY3Rpb24oYyxkKXt2YXIgZT1tLm1hcCh0aGlzLGIsYyk7cmV0dXJuIlVudGlsIiE9PWEuc2xpY2UoLTUpJiYoZD1jKSxkJiYic3RyaW5nIj09dHlwZW9mIGQmJihlPW0uZmlsdGVyKGQsZSkpLHRoaXMubGVuZ3RoPjEmJihDW2FdfHwoZT1tLnVuaXF1ZShlKSksQi50ZXN0KGEpJiYoZT1lLnJldmVyc2UoKSkpLHRoaXMucHVzaFN0YWNrKGUpfX0pO3ZhciBFPS9cUysvZyxGPXt9O2Z1bmN0aW9uIEcoYSl7dmFyIGI9RlthXT17fTtyZXR1cm4gbS5lYWNoKGEubWF0Y2goRSl8fFtdLGZ1bmN0aW9uKGEsYyl7YltjXT0hMH0pLGJ9bS5DYWxsYmFja3M9ZnVuY3Rpb24oYSl7YT0ic3RyaW5nIj09dHlwZW9mIGE/RlthXXx8RyhhKTptLmV4dGVuZCh7fSxhKTt2YXIgYixjLGQsZSxmLGcsaD1bXSxpPSFhLm9uY2UmJltdLGo9ZnVuY3Rpb24obCl7Zm9yKGM9YS5tZW1vcnkmJmwsZD0hMCxmPWd8fDAsZz0wLGU9aC5sZW5ndGgsYj0hMDtoJiZlPmY7ZisrKWlmKGhbZl0uYXBwbHkobFswXSxsWzFdKT09PSExJiZhLnN0b3BPbkZhbHNlKXtjPSExO2JyZWFrfWI9ITEsaCYmKGk/aS5sZW5ndGgmJmooaS5zaGlmdCgpKTpjP2g9W106ay5kaXNhYmxlKCkpfSxrPXthZGQ6ZnVuY3Rpb24oKXtpZihoKXt2YXIgZD1oLmxlbmd0aDshZnVuY3Rpb24gZihiKXttLmVhY2goYixmdW5jdGlvbihiLGMpe3ZhciBkPW0udHlwZShjKTsiZnVuY3Rpb24iPT09ZD9hLnVuaXF1ZSYmay5oYXMoYyl8fGgucHVzaChjKTpjJiZjLmxlbmd0aCYmInN0cmluZyIhPT1kJiZmKGMpfSl9KGFyZ3VtZW50cyksYj9lPWgubGVuZ3RoOmMmJihnPWQsaihjKSl9cmV0dXJuIHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiBoJiZtLmVhY2goYXJndW1lbnRzLGZ1bmN0aW9uKGEsYyl7dmFyIGQ7d2hpbGUoKGQ9bS5pbkFycmF5KGMsaCxkKSk+LTEpaC5zcGxpY2UoZCwxKSxiJiYoZT49ZCYmZS0tLGY+PWQmJmYtLSl9KSx0aGlzfSxoYXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/bS5pbkFycmF5KGEsaCk+LTE6ISghaHx8IWgubGVuZ3RoKX0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gaD1bXSxlPTAsdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBoPWk9Yz12b2lkIDAsdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4haH0sbG9jazpmdW5jdGlvbigpe3JldHVybiBpPXZvaWQgMCxjfHxrLmRpc2FibGUoKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4haX0sZmlyZVdpdGg6ZnVuY3Rpb24oYSxjKXtyZXR1cm4haHx8ZCYmIWl8fChjPWN8fFtdLGM9W2EsYy5zbGljZT9jLnNsaWNlKCk6Y10sYj9pLnB1c2goYyk6aihjKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiBrLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhZH19O3JldHVybiBrfSxtLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9W1sicmVzb2x2ZSIsImRvbmUiLG0uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsbS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlamVjdGVkIl0sWyJub3RpZnkiLCJwcm9ncmVzcyIsbS5DYWxsYmFja3MoIm1lbW9yeSIpXV0sYz0icGVuZGluZyIsZD17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSx0aGVuOmZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzO3JldHVybiBtLkRlZmVycmVkKGZ1bmN0aW9uKGMpe20uZWFjaChiLGZ1bmN0aW9uKGIsZil7dmFyIGc9bS5pc0Z1bmN0aW9uKGFbYl0pJiZhW2JdO2VbZlsxXV0oZnVuY3Rpb24oKXt2YXIgYT1nJiZnLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthJiZtLmlzRnVuY3Rpb24oYS5wcm9taXNlKT9hLnByb21pc2UoKS5kb25lKGMucmVzb2x2ZSkuZmFpbChjLnJlamVjdCkucHJvZ3Jlc3MoYy5ub3RpZnkpOmNbZlswXSsiV2l0aCJdKHRoaXM9PT1kP2MucHJvbWlzZSgpOnRoaXMsZz9bYV06YXJndW1lbnRzKX0pfSksYT1udWxsfSkucHJvbWlzZSgpfSxwcm9taXNlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hP20uZXh0ZW5kKGEsZCk6ZH19LGU9e307cmV0dXJuIGQucGlwZT1kLnRoZW4sbS5lYWNoKGIsZnVuY3Rpb24oYSxmKXt2YXIgZz1mWzJdLGg9ZlszXTtkW2ZbMV1dPWcuYWRkLGgmJmcuYWRkKGZ1bmN0aW9uKCl7Yz1ofSxiWzFeYV1bMl0uZGlzYWJsZSxiWzJdWzJdLmxvY2spLGVbZlswXV09ZnVuY3Rpb24oKXtyZXR1cm4gZVtmWzBdKyJXaXRoIl0odGhpcz09PWU/ZDp0aGlzLGFyZ3VtZW50cyksdGhpc30sZVtmWzBdKyJXaXRoIl09Zy5maXJlV2l0aH0pLGQucHJvbWlzZShlKSxhJiZhLmNhbGwoZSxlKSxlfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBiPTAsYz1kLmNhbGwoYXJndW1lbnRzKSxlPWMubGVuZ3RoLGY9MSE9PWV8fGEmJm0uaXNGdW5jdGlvbihhLnByb21pc2UpP2U6MCxnPTE9PT1mP2E6bS5EZWZlcnJlZCgpLGg9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbihlKXtiW2FdPXRoaXMsY1thXT1hcmd1bWVudHMubGVuZ3RoPjE/ZC5jYWxsKGFyZ3VtZW50cyk6ZSxjPT09aT9nLm5vdGlmeVdpdGgoYixjKTotLWZ8fGcucmVzb2x2ZVdpdGgoYixjKX19LGksaixrO2lmKGU+MSlmb3IoaT1uZXcgQXJyYXkoZSksaj1uZXcgQXJyYXkoZSksaz1uZXcgQXJyYXkoZSk7ZT5iO2IrKyljW2JdJiZtLmlzRnVuY3Rpb24oY1tiXS5wcm9taXNlKT9jW2JdLnByb21pc2UoKS5kb25lKGgoYixrLGMpKS5mYWlsKGcucmVqZWN0KS5wcm9ncmVzcyhoKGIsaixpKSk6LS1mO3JldHVybiBmfHxnLnJlc29sdmVXaXRoKGssYyksZy5wcm9taXNlKCl9fSk7dmFyIEg7bS5mbi5yZWFkeT1mdW5jdGlvbihhKXtyZXR1cm4gbS5yZWFkeS5wcm9taXNlKCkuZG9uZShhKSx0aGlzfSxtLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxob2xkUmVhZHk6ZnVuY3Rpb24oYSl7YT9tLnJlYWR5V2FpdCsrOm0ucmVhZHkoITApfSxyZWFkeTpmdW5jdGlvbihhKXtpZihhPT09ITA/IS0tbS5yZWFkeVdhaXQ6IW0uaXNSZWFkeSl7aWYoIXkuYm9keSlyZXR1cm4gc2V0VGltZW91dChtLnJlYWR5KTttLmlzUmVhZHk9ITAsYSE9PSEwJiYtLW0ucmVhZHlXYWl0PjB8fChILnJlc29sdmVXaXRoKHksW21dKSxtLmZuLnRyaWdnZXJIYW5kbGVyJiYobSh5KS50cmlnZ2VySGFuZGxlcigicmVhZHkiKSxtKHkpLm9mZigicmVhZHkiKSkpfX19KTtmdW5jdGlvbiBJKCl7eS5hZGRFdmVudExpc3RlbmVyPyh5LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEosITEpLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsSiwhMSkpOih5LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEopLGEuZGV0YWNoRXZlbnQoIm9ubG9hZCIsSikpfWZ1bmN0aW9uIEooKXsoeS5hZGRFdmVudExpc3RlbmVyfHwibG9hZCI9PT1ldmVudC50eXBlfHwiY29tcGxldGUiPT09eS5yZWFkeVN0YXRlKSYmKEkoKSxtLnJlYWR5KCkpfW0ucmVhZHkucHJvbWlzZT1mdW5jdGlvbihiKXtpZighSClpZihIPW0uRGVmZXJyZWQoKSwiY29tcGxldGUiPT09eS5yZWFkeVN0YXRlKXNldFRpbWVvdXQobS5yZWFkeSk7ZWxzZSBpZih5LmFkZEV2ZW50TGlzdGVuZXIpeS5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixKLCExKSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLEosITEpO2Vsc2V7eS5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixKKSxhLmF0dGFjaEV2ZW50KCJvbmxvYWQiLEopO3ZhciBjPSExO3RyeXtjPW51bGw9PWEuZnJhbWVFbGVtZW50JiZ5LmRvY3VtZW50RWxlbWVudH1jYXRjaChkKXt9YyYmYy5kb1Njcm9sbCYmIWZ1bmN0aW9uIGUoKXtpZighbS5pc1JlYWR5KXt0cnl7Yy5kb1Njcm9sbCgibGVmdCIpfWNhdGNoKGEpe3JldHVybiBzZXRUaW1lb3V0KGUsNTApfUkoKSxtLnJlYWR5KCl9fSgpfXJldHVybiBILnByb21pc2UoYil9O3ZhciBLPSJ1bmRlZmluZWQiLEw7Zm9yKEwgaW4gbShrKSlicmVhaztrLm93bkxhc3Q9IjAiIT09TCxrLmlubGluZUJsb2NrTmVlZHNMYXlvdXQ9ITEsbShmdW5jdGlvbigpe3ZhciBhLGIsYyxkO2M9eS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLGMmJmMuc3R5bGUmJihiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZD15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZCkuYXBwZW5kQ2hpbGQoYiksdHlwZW9mIGIuc3R5bGUuem9vbSE9PUsmJihiLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6aW5saW5lO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGsuaW5saW5lQmxvY2tOZWVkc0xheW91dD1hPTM9PT1iLm9mZnNldFdpZHRoLGEmJihjLnN0eWxlLnpvb209MSkpLGMucmVtb3ZlQ2hpbGQoZCkpfSksZnVuY3Rpb24oKXt2YXIgYT15LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKG51bGw9PWsuZGVsZXRlRXhwYW5kbyl7ay5kZWxldGVFeHBhbmRvPSEwO3RyeXtkZWxldGUgYS50ZXN0fWNhdGNoKGIpe2suZGVsZXRlRXhwYW5kbz0hMX19YT1udWxsfSgpLG0uYWNjZXB0RGF0YT1mdW5jdGlvbihhKXt2YXIgYj1tLm5vRGF0YVsoYS5ub2RlTmFtZSsiICIpLnRvTG93ZXJDYXNlKCldLGM9K2Eubm9kZVR5cGV8fDE7cmV0dXJuIDEhPT1jJiY5IT09Yz8hMTohYnx8YiE9PSEwJiZhLmdldEF0dHJpYnV0ZSgiY2xhc3NpZCIpPT09Yn07dmFyIE09L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxOPS8oW0EtWl0pL2c7ZnVuY3Rpb24gTyhhLGIsYyl7aWYodm9pZCAwPT09YyYmMT09PWEubm9kZVR5cGUpe3ZhciBkPSJkYXRhLSIrYi5yZXBsYWNlKE4sIi0kMSIpLnRvTG93ZXJDYXNlKCk7aWYoYz1hLmdldEF0dHJpYnV0ZShkKSwic3RyaW5nIj09dHlwZW9mIGMpe3RyeXtjPSJ0cnVlIj09PWM/ITA6ImZhbHNlIj09PWM/ITE6Im51bGwiPT09Yz9udWxsOitjKyIiPT09Yz8rYzpNLnRlc3QoYyk/bS5wYXJzZUpTT04oYyk6Y31jYXRjaChlKXt9bS5kYXRhKGEsYixjKX1lbHNlIGM9dm9pZCAwfXJldHVybiBjfWZ1bmN0aW9uIFAoYSl7dmFyIGI7Zm9yKGIgaW4gYSlpZigoImRhdGEiIT09Ynx8IW0uaXNFbXB0eU9iamVjdChhW2JdKSkmJiJ0b0pTT04iIT09YilyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBRKGEsYixkLGUpe2lmKG0uYWNjZXB0RGF0YShhKSl7dmFyIGYsZyxoPW0uZXhwYW5kbyxpPWEubm9kZVR5cGUsaj1pP20uY2FjaGU6YSxrPWk/YVtoXTphW2hdJiZoOwppZihrJiZqW2tdJiYoZXx8altrXS5kYXRhKXx8dm9pZCAwIT09ZHx8InN0cmluZyIhPXR5cGVvZiBiKXJldHVybiBrfHwoaz1pP2FbaF09Yy5wb3AoKXx8bS5ndWlkKys6aCksaltrXXx8KGpba109aT97fTp7dG9KU09OOm0ubm9vcH0pLCgib2JqZWN0Ij09dHlwZW9mIGJ8fCJmdW5jdGlvbiI9PXR5cGVvZiBiKSYmKGU/altrXT1tLmV4dGVuZChqW2tdLGIpOmpba10uZGF0YT1tLmV4dGVuZChqW2tdLmRhdGEsYikpLGc9altrXSxlfHwoZy5kYXRhfHwoZy5kYXRhPXt9KSxnPWcuZGF0YSksdm9pZCAwIT09ZCYmKGdbbS5jYW1lbENhc2UoYildPWQpLCJzdHJpbmciPT10eXBlb2YgYj8oZj1nW2JdLG51bGw9PWYmJihmPWdbbS5jYW1lbENhc2UoYildKSk6Zj1nLGZ9fWZ1bmN0aW9uIFIoYSxiLGMpe2lmKG0uYWNjZXB0RGF0YShhKSl7dmFyIGQsZSxmPWEubm9kZVR5cGUsZz1mP20uY2FjaGU6YSxoPWY/YVttLmV4cGFuZG9dOm0uZXhwYW5kbztpZihnW2hdKXtpZihiJiYoZD1jP2dbaF06Z1toXS5kYXRhKSl7bS5pc0FycmF5KGIpP2I9Yi5jb25jYXQobS5tYXAoYixtLmNhbWVsQ2FzZSkpOmIgaW4gZD9iPVtiXTooYj1tLmNhbWVsQ2FzZShiKSxiPWIgaW4gZD9bYl06Yi5zcGxpdCgiICIpKSxlPWIubGVuZ3RoO3doaWxlKGUtLSlkZWxldGUgZFtiW2VdXTtpZihjPyFQKGQpOiFtLmlzRW1wdHlPYmplY3QoZCkpcmV0dXJufShjfHwoZGVsZXRlIGdbaF0uZGF0YSxQKGdbaF0pKSkmJihmP20uY2xlYW5EYXRhKFthXSwhMCk6ay5kZWxldGVFeHBhbmRvfHxnIT1nLndpbmRvdz9kZWxldGUgZ1toXTpnW2hdPW51bGwpfX19bS5leHRlbmQoe2NhY2hlOnt9LG5vRGF0YTp7ImFwcGxldCAiOiEwLCJlbWJlZCAiOiEwLCJvYmplY3QgIjoiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIn0saGFzRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gYT1hLm5vZGVUeXBlP20uY2FjaGVbYVttLmV4cGFuZG9dXTphW20uZXhwYW5kb10sISFhJiYhUChhKX0sZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFEoYSxiLGMpfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFIoYSxiKX0sX2RhdGE6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBRKGEsYixjLCEwKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUihhLGIsITApfX0pLG0uZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9dGhpc1swXSxnPWYmJmYuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGU9bS5kYXRhKGYpLDE9PT1mLm5vZGVUeXBlJiYhbS5fZGF0YShmLCJwYXJzZWRBdHRycyIpKSl7Yz1nLmxlbmd0aDt3aGlsZShjLS0pZ1tjXSYmKGQ9Z1tjXS5uYW1lLDA9PT1kLmluZGV4T2YoImRhdGEtIikmJihkPW0uY2FtZWxDYXNlKGQuc2xpY2UoNSkpLE8oZixkLGVbZF0pKSk7bS5fZGF0YShmLCJwYXJzZWRBdHRycyIsITApfXJldHVybiBlfXJldHVybiJvYmplY3QiPT10eXBlb2YgYT90aGlzLmVhY2goZnVuY3Rpb24oKXttLmRhdGEodGhpcyxhKX0pOmFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goZnVuY3Rpb24oKXttLmRhdGEodGhpcyxhLGIpfSk6Zj9PKGYsYSxtLmRhdGEoZixhKSk6dm9pZCAwfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXttLnJlbW92ZURhdGEodGhpcyxhKX0pfX0pLG0uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGE/KGI9KGJ8fCJmeCIpKyJxdWV1ZSIsZD1tLl9kYXRhKGEsYiksYyYmKCFkfHxtLmlzQXJyYXkoYyk/ZD1tLl9kYXRhKGEsYixtLm1ha2VBcnJheShjKSk6ZC5wdXNoKGMpKSxkfHxbXSk6dm9pZCAwfSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBjPW0ucXVldWUoYSxiKSxkPWMubGVuZ3RoLGU9Yy5zaGlmdCgpLGY9bS5fcXVldWVIb29rcyhhLGIpLGc9ZnVuY3Rpb24oKXttLmRlcXVldWUoYSxiKX07ImlucHJvZ3Jlc3MiPT09ZSYmKGU9Yy5zaGlmdCgpLGQtLSksZSYmKCJmeCI9PT1iJiZjLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgZi5zdG9wLGUuY2FsbChhLGcsZikpLCFkJiZmJiZmLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKyJxdWV1ZUhvb2tzIjtyZXR1cm4gbS5fZGF0YShhLGMpfHxtLl9kYXRhKGEsYyx7ZW1wdHk6bS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7bS5fcmVtb3ZlRGF0YShhLGIrInF1ZXVlIiksbS5fcmVtb3ZlRGF0YShhLGMpfSl9KX19KSxtLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPSJmeCIsYy0tKSxhcmd1bWVudHMubGVuZ3RoPGM/bS5xdWV1ZSh0aGlzWzBdLGEpOnZvaWQgMD09PWI/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1tLnF1ZXVlKHRoaXMsYSxiKTttLl9xdWV1ZUhvb2tzKHRoaXMsYSksImZ4Ij09PWEmJiJpbnByb2dyZXNzIiE9PWNbMF0mJm0uZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe20uZGVxdWV1ZSh0aGlzLGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTEsZT1tLkRlZmVycmVkKCksZj10aGlzLGc9dGhpcy5sZW5ndGgsaD1mdW5jdGlvbigpey0tZHx8ZS5yZXNvbHZlV2l0aChmLFtmXSl9OyJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCksYT1hfHwiZngiO3doaWxlKGctLSljPW0uX2RhdGEoZltnXSxhKyJxdWV1ZUhvb2tzIiksYyYmYy5lbXB0eSYmKGQrKyxjLmVtcHR5LmFkZChoKSk7cmV0dXJuIGgoKSxlLnByb21pc2UoYil9fSk7dmFyIFM9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsVD1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLFU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1ifHxhLCJub25lIj09PW0uY3NzKGEsImRpc3BsYXkiKXx8IW0uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfSxWPW0uYWNjZXNzPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3ZhciBoPTAsaT1hLmxlbmd0aCxqPW51bGw9PWM7aWYoIm9iamVjdCI9PT1tLnR5cGUoYykpe2U9ITA7Zm9yKGggaW4gYyltLmFjY2VzcyhhLGIsaCxjW2hdLCEwLGYsZyl9ZWxzZSBpZih2b2lkIDAhPT1kJiYoZT0hMCxtLmlzRnVuY3Rpb24oZCl8fChnPSEwKSxqJiYoZz8oYi5jYWxsKGEsZCksYj1udWxsKTooaj1iLGI9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBqLmNhbGwobShhKSxjKX0pKSxiKSlmb3IoO2k+aDtoKyspYihhW2hdLGMsZz9kOmQuY2FsbChhW2hdLGgsYihhW2hdLGMpKSk7cmV0dXJuIGU/YTpqP2IuY2FsbChhKTppP2IoYVswXSxjKTpmfSxXPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pOyFmdW5jdGlvbigpe3ZhciBhPXkuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksYz15LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihiLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixrLmxlYWRpbmdXaGl0ZXNwYWNlPTM9PT1iLmZpcnN0Q2hpbGQubm9kZVR5cGUsay50Ym9keT0hYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsay5odG1sU2VyaWFsaXplPSEhYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxrLmh0bWw1Q2xvbmU9Ijw6bmF2PjwvOm5hdj4iIT09eS5jcmVhdGVFbGVtZW50KCJuYXYiKS5jbG9uZU5vZGUoITApLm91dGVySFRNTCxhLnR5cGU9ImNoZWNrYm94IixhLmNoZWNrZWQ9ITAsYy5hcHBlbmRDaGlsZChhKSxrLmFwcGVuZENoZWNrZWQ9YS5jaGVja2VkLGIuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+IixrLm5vQ2xvbmVDaGVja2VkPSEhYi5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWUsYy5hcHBlbmRDaGlsZChiKSxiLmlubmVySFRNTD0iPGlucHV0IHR5cGU9J3JhZGlvJyBjaGVja2VkPSdjaGVja2VkJyBuYW1lPSd0Jy8+IixrLmNoZWNrQ2xvbmU9Yi5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsay5ub0Nsb25lRXZlbnQ9ITAsYi5hdHRhY2hFdmVudCYmKGIuYXR0YWNoRXZlbnQoIm9uY2xpY2siLGZ1bmN0aW9uKCl7ay5ub0Nsb25lRXZlbnQ9ITF9KSxiLmNsb25lTm9kZSghMCkuY2xpY2soKSksbnVsbD09ay5kZWxldGVFeHBhbmRvKXtrLmRlbGV0ZUV4cGFuZG89ITA7dHJ5e2RlbGV0ZSBiLnRlc3R9Y2F0Y2goZCl7ay5kZWxldGVFeHBhbmRvPSExfX19KCksZnVuY3Rpb24oKXt2YXIgYixjLGQ9eS5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3IoYiBpbntzdWJtaXQ6ITAsY2hhbmdlOiEwLGZvY3VzaW46ITB9KWM9Im9uIitiLChrW2IrIkJ1YmJsZXMiXT1jIGluIGEpfHwoZC5zZXRBdHRyaWJ1dGUoYywidCIpLGtbYisiQnViYmxlcyJdPWQuYXR0cmlidXRlc1tjXS5leHBhbmRvPT09ITEpO2Q9bnVsbH0oKTt2YXIgWD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYSkkL2ksWT0vXmtleS8sWj0vXig/Om1vdXNlfHBvaW50ZXJ8Y29udGV4dG1lbnUpfGNsaWNrLywkPS9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxfPS9eKFteLl0qKSg/OlwuKC4rKXwpJC87ZnVuY3Rpb24gYWIoKXtyZXR1cm4hMH1mdW5jdGlvbiBiYigpe3JldHVybiExfWZ1bmN0aW9uIGNiKCl7dHJ5e3JldHVybiB5LmFjdGl2ZUVsZW1lbnR9Y2F0Y2goYSl7fX1tLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbixvLHAscSxyPW0uX2RhdGEoYSk7aWYocil7Yy5oYW5kbGVyJiYoaT1jLGM9aS5oYW5kbGVyLGU9aS5zZWxlY3RvciksYy5ndWlkfHwoYy5ndWlkPW0uZ3VpZCsrKSwoZz1yLmV2ZW50cyl8fChnPXIuZXZlbnRzPXt9KSwoaz1yLmhhbmRsZSl8fChrPXIuaGFuZGxlPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgbT09PUt8fGEmJm0uZXZlbnQudHJpZ2dlcmVkPT09YS50eXBlP3ZvaWQgMDptLmV2ZW50LmRpc3BhdGNoLmFwcGx5KGsuZWxlbSxhcmd1bWVudHMpfSxrLmVsZW09YSksYj0oYnx8IiIpLm1hdGNoKEUpfHxbIiJdLGg9Yi5sZW5ndGg7d2hpbGUoaC0tKWY9Xy5leGVjKGJbaF0pfHxbXSxvPXE9ZlsxXSxwPShmWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyYmKGo9bS5ldmVudC5zcGVjaWFsW29dfHx7fSxvPShlP2ouZGVsZWdhdGVUeXBlOmouYmluZFR5cGUpfHxvLGo9bS5ldmVudC5zcGVjaWFsW29dfHx7fSxsPW0uZXh0ZW5kKHt0eXBlOm8sb3JpZ1R5cGU6cSxkYXRhOmQsaGFuZGxlcjpjLGd1aWQ6Yy5ndWlkLHNlbGVjdG9yOmUsbmVlZHNDb250ZXh0OmUmJm0uZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChlKSxuYW1lc3BhY2U6cC5qb2luKCIuIil9LGkpLChuPWdbb10pfHwobj1nW29dPVtdLG4uZGVsZWdhdGVDb3VudD0wLGouc2V0dXAmJmouc2V0dXAuY2FsbChhLGQscCxrKSE9PSExfHwoYS5hZGRFdmVudExpc3RlbmVyP2EuYWRkRXZlbnRMaXN0ZW5lcihvLGssITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9uIitvLGspKSksai5hZGQmJihqLmFkZC5jYWxsKGEsbCksbC5oYW5kbGVyLmd1aWR8fChsLmhhbmRsZXIuZ3VpZD1jLmd1aWQpKSxlP24uc3BsaWNlKG4uZGVsZWdhdGVDb3VudCsrLDAsbCk6bi5wdXNoKGwpLG0uZXZlbnQuZ2xvYmFsW29dPSEwKTthPW51bGx9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxuLG8scCxxLHI9bS5oYXNEYXRhKGEpJiZtLl9kYXRhKGEpO2lmKHImJihrPXIuZXZlbnRzKSl7Yj0oYnx8IiIpLm1hdGNoKEUpfHxbIiJdLGo9Yi5sZW5ndGg7d2hpbGUoai0tKWlmKGg9Xy5leGVjKGJbal0pfHxbXSxvPXE9aFsxXSxwPShoWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyl7bD1tLmV2ZW50LnNwZWNpYWxbb118fHt9LG89KGQ/bC5kZWxlZ2F0ZVR5cGU6bC5iaW5kVHlwZSl8fG8sbj1rW29dfHxbXSxoPWhbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK3Auam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksaT1mPW4ubGVuZ3RoO3doaWxlKGYtLSlnPW5bZl0sIWUmJnEhPT1nLm9yaWdUeXBlfHxjJiZjLmd1aWQhPT1nLmd1aWR8fGgmJiFoLnRlc3QoZy5uYW1lc3BhY2UpfHxkJiZkIT09Zy5zZWxlY3RvciYmKCIqKiIhPT1kfHwhZy5zZWxlY3Rvcil8fChuLnNwbGljZShmLDEpLGcuc2VsZWN0b3ImJm4uZGVsZWdhdGVDb3VudC0tLGwucmVtb3ZlJiZsLnJlbW92ZS5jYWxsKGEsZykpO2kmJiFuLmxlbmd0aCYmKGwudGVhcmRvd24mJmwudGVhcmRvd24uY2FsbChhLHAsci5oYW5kbGUpIT09ITF8fG0ucmVtb3ZlRXZlbnQoYSxvLHIuaGFuZGxlKSxkZWxldGUga1tvXSl9ZWxzZSBmb3IobyBpbiBrKW0uZXZlbnQucmVtb3ZlKGEsbytiW2pdLGMsZCwhMCk7bS5pc0VtcHR5T2JqZWN0KGspJiYoZGVsZXRlIHIuaGFuZGxlLG0uX3JlbW92ZURhdGEoYSwiZXZlbnRzIikpfX0sdHJpZ2dlcjpmdW5jdGlvbihiLGMsZCxlKXt2YXIgZixnLGgsaSxrLGwsbixvPVtkfHx5XSxwPWouY2FsbChiLCJ0eXBlIik/Yi50eXBlOmIscT1qLmNhbGwoYiwibmFtZXNwYWNlIik/Yi5uYW1lc3BhY2Uuc3BsaXQoIi4iKTpbXTtpZihoPWw9ZD1kfHx5LDMhPT1kLm5vZGVUeXBlJiY4IT09ZC5ub2RlVHlwZSYmISQudGVzdChwK20uZXZlbnQudHJpZ2dlcmVkKSYmKHAuaW5kZXhPZigiLiIpPj0wJiYocT1wLnNwbGl0KCIuIikscD1xLnNoaWZ0KCkscS5zb3J0KCkpLGc9cC5pbmRleE9mKCI6Iik8MCYmIm9uIitwLGI9YlttLmV4cGFuZG9dP2I6bmV3IG0uRXZlbnQocCwib2JqZWN0Ij09dHlwZW9mIGImJmIpLGIuaXNUcmlnZ2VyPWU/MjozLGIubmFtZXNwYWNlPXEuam9pbigiLiIpLGIubmFtZXNwYWNlX3JlPWIubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3Euam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxiLnJlc3VsdD12b2lkIDAsYi50YXJnZXR8fChiLnRhcmdldD1kKSxjPW51bGw9PWM/W2JdOm0ubWFrZUFycmF5KGMsW2JdKSxrPW0uZXZlbnQuc3BlY2lhbFtwXXx8e30sZXx8IWsudHJpZ2dlcnx8ay50cmlnZ2VyLmFwcGx5KGQsYykhPT0hMSkpe2lmKCFlJiYhay5ub0J1YmJsZSYmIW0uaXNXaW5kb3coZCkpe2ZvcihpPWsuZGVsZWdhdGVUeXBlfHxwLCQudGVzdChpK3ApfHwoaD1oLnBhcmVudE5vZGUpO2g7aD1oLnBhcmVudE5vZGUpby5wdXNoKGgpLGw9aDtsPT09KGQub3duZXJEb2N1bWVudHx8eSkmJm8ucHVzaChsLmRlZmF1bHRWaWV3fHxsLnBhcmVudFdpbmRvd3x8YSl9bj0wO3doaWxlKChoPW9bbisrXSkmJiFiLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYi50eXBlPW4+MT9pOmsuYmluZFR5cGV8fHAsZj0obS5fZGF0YShoLCJldmVudHMiKXx8e30pW2IudHlwZV0mJm0uX2RhdGEoaCwiaGFuZGxlIiksZiYmZi5hcHBseShoLGMpLGY9ZyYmaFtnXSxmJiZmLmFwcGx5JiZtLmFjY2VwdERhdGEoaCkmJihiLnJlc3VsdD1mLmFwcGx5KGgsYyksYi5yZXN1bHQ9PT0hMSYmYi5wcmV2ZW50RGVmYXVsdCgpKTtpZihiLnR5cGU9cCwhZSYmIWIuaXNEZWZhdWx0UHJldmVudGVkKCkmJighay5fZGVmYXVsdHx8ay5fZGVmYXVsdC5hcHBseShvLnBvcCgpLGMpPT09ITEpJiZtLmFjY2VwdERhdGEoZCkmJmcmJmRbcF0mJiFtLmlzV2luZG93KGQpKXtsPWRbZ10sbCYmKGRbZ109bnVsbCksbS5ldmVudC50cmlnZ2VyZWQ9cDt0cnl7ZFtwXSgpfWNhdGNoKHIpe31tLmV2ZW50LnRyaWdnZXJlZD12b2lkIDAsbCYmKGRbZ109bCl9cmV0dXJuIGIucmVzdWx0fX0sZGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YT1tLmV2ZW50LmZpeChhKTt2YXIgYixjLGUsZixnLGg9W10saT1kLmNhbGwoYXJndW1lbnRzKSxqPShtLl9kYXRhKHRoaXMsImV2ZW50cyIpfHx7fSlbYS50eXBlXXx8W10saz1tLmV2ZW50LnNwZWNpYWxbYS50eXBlXXx8e307aWYoaVswXT1hLGEuZGVsZWdhdGVUYXJnZXQ9dGhpcywhay5wcmVEaXNwYXRjaHx8ay5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYSkhPT0hMSl7aD1tLmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxhLGopLGI9MDt3aGlsZSgoZj1oW2IrK10pJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKXthLmN1cnJlbnRUYXJnZXQ9Zi5lbGVtLGc9MDt3aGlsZSgoZT1mLmhhbmRsZXJzW2crK10pJiYhYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKSghYS5uYW1lc3BhY2VfcmV8fGEubmFtZXNwYWNlX3JlLnRlc3QoZS5uYW1lc3BhY2UpKSYmKGEuaGFuZGxlT2JqPWUsYS5kYXRhPWUuZGF0YSxjPSgobS5ldmVudC5zcGVjaWFsW2Uub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxlLmhhbmRsZXIpLmFwcGx5KGYuZWxlbSxpKSx2b2lkIDAhPT1jJiYoYS5yZXN1bHQ9Yyk9PT0hMSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpKSl9cmV0dXJuIGsucG9zdERpc3BhdGNoJiZrLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsYSksYS5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGc9W10saD1iLmRlbGVnYXRlQ291bnQsaT1hLnRhcmdldDtpZihoJiZpLm5vZGVUeXBlJiYoIWEuYnV0dG9ufHwiY2xpY2siIT09YS50eXBlKSlmb3IoO2khPXRoaXM7aT1pLnBhcmVudE5vZGV8fHRoaXMpaWYoMT09PWkubm9kZVR5cGUmJihpLmRpc2FibGVkIT09ITB8fCJjbGljayIhPT1hLnR5cGUpKXtmb3IoZT1bXSxmPTA7aD5mO2YrKylkPWJbZl0sYz1kLnNlbGVjdG9yKyIgIix2b2lkIDA9PT1lW2NdJiYoZVtjXT1kLm5lZWRzQ29udGV4dD9tKGMsdGhpcykuaW5kZXgoaSk+PTA6bS5maW5kKGMsdGhpcyxudWxsLFtpXSkubGVuZ3RoKSxlW2NdJiZlLnB1c2goZCk7ZS5sZW5ndGgmJmcucHVzaCh7ZWxlbTppLGhhbmRsZXJzOmV9KX1yZXR1cm4gaDxiLmxlbmd0aCYmZy5wdXNoKHtlbGVtOnRoaXMsaGFuZGxlcnM6Yi5zbGljZShoKX0pLGd9LGZpeDpmdW5jdGlvbihhKXtpZihhW20uZXhwYW5kb10pcmV0dXJuIGE7dmFyIGIsYyxkLGU9YS50eXBlLGY9YSxnPXRoaXMuZml4SG9va3NbZV07Z3x8KHRoaXMuZml4SG9va3NbZV09Zz1aLnRlc3QoZSk/dGhpcy5tb3VzZUhvb2tzOlkudGVzdChlKT90aGlzLmtleUhvb2tzOnt9KSxkPWcucHJvcHM/dGhpcy5wcm9wcy5jb25jYXQoZy5wcm9wcyk6dGhpcy5wcm9wcyxhPW5ldyBtLkV2ZW50KGYpLGI9ZC5sZW5ndGg7d2hpbGUoYi0tKWM9ZFtiXSxhW2NdPWZbY107cmV0dXJuIGEudGFyZ2V0fHwoYS50YXJnZXQ9Zi5zcmNFbGVtZW50fHx5KSwzPT09YS50YXJnZXQubm9kZVR5cGUmJihhLnRhcmdldD1hLnRhcmdldC5wYXJlbnROb2RlKSxhLm1ldGFLZXk9ISFhLm1ldGFLZXksZy5maWx0ZXI/Zy5maWx0ZXIoYSxmKTphfSxwcm9wczoiYWx0S2V5IGJ1YmJsZXMgY2FuY2VsYWJsZSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZXZlbnRQaGFzZSBtZXRhS2V5IHJlbGF0ZWRUYXJnZXQgc2hpZnRLZXkgdGFyZ2V0IHRpbWVTdGFtcCB2aWV3IHdoaWNoIi5zcGxpdCgiICIpLGZpeEhvb2tzOnt9LGtleUhvb2tzOntwcm9wczoiY2hhciBjaGFyQ29kZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbnVsbD09YS53aGljaCYmKGEud2hpY2g9bnVsbCE9Yi5jaGFyQ29kZT9iLmNoYXJDb2RlOmIua2V5Q29kZSksYX19LG1vdXNlSG9va3M6e3Byb3BzOiJidXR0b24gYnV0dG9ucyBjbGllbnRYIGNsaWVudFkgZnJvbUVsZW1lbnQgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VYIHBhZ2VZIHNjcmVlblggc2NyZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9Yi5idXR0b24sZz1iLmZyb21FbGVtZW50O3JldHVybiBudWxsPT1hLnBhZ2VYJiZudWxsIT1iLmNsaWVudFgmJihkPWEudGFyZ2V0Lm93bmVyRG9jdW1lbnR8fHksZT1kLmRvY3VtZW50RWxlbWVudCxjPWQuYm9keSxhLnBhZ2VYPWIuY2xpZW50WCsoZSYmZS5zY3JvbGxMZWZ0fHxjJiZjLnNjcm9sbExlZnR8fDApLShlJiZlLmNsaWVudExlZnR8fGMmJmMuY2xpZW50TGVmdHx8MCksYS5wYWdlWT1iLmNsaWVudFkrKGUmJmUuc2Nyb2xsVG9wfHxjJiZjLnNjcm9sbFRvcHx8MCktKGUmJmUuY2xpZW50VG9wfHxjJiZjLmNsaWVudFRvcHx8MCkpLCFhLnJlbGF0ZWRUYXJnZXQmJmcmJihhLnJlbGF0ZWRUYXJnZXQ9Zz09PWEudGFyZ2V0P2IudG9FbGVtZW50OmcpLGEud2hpY2h8fHZvaWQgMD09PWZ8fChhLndoaWNoPTEmZj8xOjImZj8zOjQmZj8yOjApLGF9fSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09Y2IoKSYmdGhpcy5mb2N1cyl0cnl7cmV0dXJuIHRoaXMuZm9jdXMoKSwhMX1jYXRjaChhKXt9fSxkZWxlZ2F0ZVR5cGU6ImZvY3VzaW4ifSxibHVyOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM9PT1jYigpJiZ0aGlzLmJsdXI/KHRoaXMuYmx1cigpLCExKTp2b2lkIDB9LGRlbGVnYXRlVHlwZToiZm9jdXNvdXQifSxjbGljazp7dHJpZ2dlcjpmdW5jdGlvbigpe3JldHVybiBtLm5vZGVOYW1lKHRoaXMsImlucHV0IikmJiJjaGVja2JveCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2s/KHRoaXMuY2xpY2soKSwhMSk6dm9pZCAwfSxfZGVmYXVsdDpmdW5jdGlvbihhKXtyZXR1cm4gbS5ub2RlTmFtZShhLnRhcmdldCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVudCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX0sc2ltdWxhdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bS5leHRlbmQobmV3IG0uRXZlbnQsYyx7dHlwZTphLGlzU2ltdWxhdGVkOiEwLG9yaWdpbmFsRXZlbnQ6e319KTtkP20uZXZlbnQudHJpZ2dlcihlLG51bGwsYik6bS5ldmVudC5kaXNwYXRjaC5jYWxsKGIsZSksZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmYy5wcmV2ZW50RGVmYXVsdCgpfX0sbS5yZW1vdmVFdmVudD15LnJlbW92ZUV2ZW50TGlzdGVuZXI/ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD0ib24iK2I7YS5kZXRhY2hFdmVudCYmKHR5cGVvZiBhW2RdPT09SyYmKGFbZF09bnVsbCksYS5kZXRhY2hFdmVudChkLGMpKX0sbS5FdmVudD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgbS5FdmVudD8oYSYmYS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9YSx0aGlzLnR5cGU9YS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWEuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVkJiZhLnJldHVyblZhbHVlPT09ITE/YWI6YmIpOnRoaXMudHlwZT1hLGImJm0uZXh0ZW5kKHRoaXMsYiksdGhpcy50aW1lU3RhbXA9YSYmYS50aW1lU3RhbXB8fG0ubm93KCksdm9pZCh0aGlzW20uZXhwYW5kb109ITApKTpuZXcgbS5FdmVudChhLGIpfSxtLkV2ZW50LnByb3RvdHlwZT17aXNEZWZhdWx0UHJldmVudGVkOmJiLGlzUHJvcGFnYXRpb25TdG9wcGVkOmJiLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOmJiLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPWFiLGEmJihhLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9YWIsYSYmKGEuc3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQcm9wYWdhdGlvbigpLGEuY2FuY2VsQnViYmxlPSEwKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9YWIsYSYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24mJmEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zdG9wUHJvcGFnYXRpb24oKX19LG0uZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJwb2ludGVyb3V0In0sZnVuY3Rpb24oYSxiKXttLmV2ZW50LnNwZWNpYWxbYV09e2RlbGVnYXRlVHlwZTpiLGJpbmRUeXBlOmIsaGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBjLGQ9dGhpcyxlPWEucmVsYXRlZFRhcmdldCxmPWEuaGFuZGxlT2JqO3JldHVybighZXx8ZSE9PWQmJiFtLmNvbnRhaW5zKGQsZSkpJiYoYS50eXBlPWYub3JpZ1R5cGUsYz1mLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGEudHlwZT1iKSxjfX19KSxrLnN1Ym1pdEJ1YmJsZXN8fChtLmV2ZW50LnNwZWNpYWwuc3VibWl0PXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBtLm5vZGVOYW1lKHRoaXMsImZvcm0iKT8hMTp2b2lkIG0uZXZlbnQuYWRkKHRoaXMsImNsaWNrLl9zdWJtaXQga2V5cHJlc3MuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsYz1tLm5vZGVOYW1lKGIsImlucHV0Iil8fG0ubm9kZU5hbWUoYiwiYnV0dG9uIik/Yi5mb3JtOnZvaWQgMDtjJiYhbS5fZGF0YShjLCJzdWJtaXRCdWJibGVzIikmJihtLmV2ZW50LmFkZChjLCJzdWJtaXQuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7YS5fc3VibWl0X2J1YmJsZT0hMH0pLG0uX2RhdGEoYywic3VibWl0QnViYmxlcyIsITApKX0pfSxwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YS5fc3VibWl0X2J1YmJsZSYmKGRlbGV0ZSBhLl9zdWJtaXRfYnViYmxlLHRoaXMucGFyZW50Tm9kZSYmIWEuaXNUcmlnZ2VyJiZtLmV2ZW50LnNpbXVsYXRlKCJzdWJtaXQiLHRoaXMucGFyZW50Tm9kZSxhLCEwKSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIG0ubm9kZU5hbWUodGhpcywiZm9ybSIpPyExOnZvaWQgbS5ldmVudC5yZW1vdmUodGhpcywiLl9zdWJtaXQiKX19KSxrLmNoYW5nZUJ1YmJsZXN8fChtLmV2ZW50LnNwZWNpYWwuY2hhbmdlPXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBYLnRlc3QodGhpcy5ub2RlTmFtZSk/KCgiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlKSYmKG0uZXZlbnQuYWRkKHRoaXMsInByb3BlcnR5Y2hhbmdlLl9jaGFuZ2UiLGZ1bmN0aW9uKGEpeyJjaGVja2VkIj09PWEub3JpZ2luYWxFdmVudC5wcm9wZXJ0eU5hbWUmJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITApfSksbS5ldmVudC5hZGQodGhpcywiY2xpY2suX2NoYW5nZSIsZnVuY3Rpb24oYSl7dGhpcy5fanVzdF9jaGFuZ2VkJiYhYS5pc1RyaWdnZXImJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITEpLG0uZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcyxhLCEwKX0pKSwhMSk6dm9pZCBtLmV2ZW50LmFkZCh0aGlzLCJiZWZvcmVhY3RpdmF0ZS5fY2hhbmdlIixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldDtYLnRlc3QoYi5ub2RlTmFtZSkmJiFtLl9kYXRhKGIsImNoYW5nZUJ1YmJsZXMiKSYmKG0uZXZlbnQuYWRkKGIsImNoYW5nZS5fY2hhbmdlIixmdW5jdGlvbihhKXshdGhpcy5wYXJlbnROb2RlfHxhLmlzU2ltdWxhdGVkfHxhLmlzVHJpZ2dlcnx8bS5ldmVudC5zaW11bGF0ZSgiY2hhbmdlIix0aGlzLnBhcmVudE5vZGUsYSwhMCl9KSxtLl9kYXRhKGIsImNoYW5nZUJ1YmJsZXMiLCEwKSl9KX0saGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O3JldHVybiB0aGlzIT09Ynx8YS5pc1NpbXVsYXRlZHx8YS5pc1RyaWdnZXJ8fCJyYWRpbyIhPT1iLnR5cGUmJiJjaGVja2JveCIhPT1iLnR5cGU/YS5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfSx0ZWFyZG93bjpmdW5jdGlvbigpe3JldHVybiBtLmV2ZW50LnJlbW92ZSh0aGlzLCIuX2NoYW5nZSIpLCFYLnRlc3QodGhpcy5ub2RlTmFtZSl9fSksay5mb2N1c2luQnViYmxlc3x8bS5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGEpe20uZXZlbnQuc2ltdWxhdGUoYixhLnRhcmdldCxtLmV2ZW50LmZpeChhKSwhMCl9O20uZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMsZT1tLl9kYXRhKGQsYik7ZXx8ZC5hZGRFdmVudExpc3RlbmVyKGEsYywhMCksbS5fZGF0YShkLGIsKGV8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxlPW0uX2RhdGEoZCxiKS0xO2U/bS5fZGF0YShkLGIsZSk6KGQucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITApLG0uX3JlbW92ZURhdGEoZCxiKSl9fX0pLG0uZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmLGc7aWYoIm9iamVjdCI9PXR5cGVvZiBhKXsic3RyaW5nIiE9dHlwZW9mIGImJihjPWN8fGIsYj12b2lkIDApO2ZvcihmIGluIGEpdGhpcy5vbihmLGIsYyxhW2ZdLGUpO3JldHVybiB0aGlzfWlmKG51bGw9PWMmJm51bGw9PWQ/KGQ9YixjPWI9dm9pZCAwKTpudWxsPT1kJiYoInN0cmluZyI9PXR5cGVvZiBiPyhkPWMsYz12b2lkIDApOihkPWMsYz1iLGI9dm9pZCAwKSksZD09PSExKWQ9YmI7ZWxzZSBpZighZClyZXR1cm4gdGhpcztyZXR1cm4gMT09PWUmJihnPWQsZD1mdW5jdGlvbihhKXtyZXR1cm4gbSgpLm9mZihhKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZC5ndWlkPWcuZ3VpZHx8KGcuZ3VpZD1tLmd1aWQrKykpLHRoaXMuZWFjaChmdW5jdGlvbigpe20uZXZlbnQuYWRkKHRoaXMsYSxkLGMsYil9KX0sb25lOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uKGEsYixjLGQsMSl9LG9mZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZTtpZihhJiZhLnByZXZlbnREZWZhdWx0JiZhLmhhbmRsZU9iailyZXR1cm4gZD1hLmhhbmRsZU9iaixtKGEuZGVsZWdhdGVUYXJnZXQpLm9mZihkLm5hbWVzcGFjZT9kLm9yaWdUeXBlKyIuIitkLm5hbWVzcGFjZTpkLm9yaWdUeXBlLGQuc2VsZWN0b3IsZC5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgYSl7Zm9yKGUgaW4gYSl0aGlzLm9mZihlLGIsYVtlXSk7cmV0dXJuIHRoaXN9cmV0dXJuKGI9PT0hMXx8ImZ1bmN0aW9uIj09dHlwZW9mIGIpJiYoYz1iLGI9dm9pZCAwKSxjPT09ITEmJihjPWJiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXttLmV2ZW50LnJlbW92ZSh0aGlzLGEsYyxiKX0pfSx0cmlnZ2VyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe20uZXZlbnQudHJpZ2dlcihhLGIsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzWzBdO3JldHVybiBjP20uZXZlbnQudHJpZ2dlcihhLGIsYywhMCk6dm9pZCAwfX0pO2Z1bmN0aW9uIGRiKGEpe3ZhciBiPWViLnNwbGl0KCJ8IiksYz1hLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihjLmNyZWF0ZUVsZW1lbnQpd2hpbGUoYi5sZW5ndGgpYy5jcmVhdGVFbGVtZW50KGIucG9wKCkpO3JldHVybiBjfXZhciBlYj0iYWJicnxhcnRpY2xlfGFzaWRlfGF1ZGlvfGJkaXxjYW52YXN8ZGF0YXxkYXRhbGlzdHxkZXRhaWxzfGZpZ2NhcHRpb258ZmlndXJlfGZvb3RlcnxoZWFkZXJ8aGdyb3VwfG1hcmt8bWV0ZXJ8bmF2fG91dHB1dHxwcm9ncmVzc3xzZWN0aW9ufHN1bW1hcnl8dGltZXx2aWRlbyIsZmI9LyBqUXVlcnlcZCs9Iig/Om51bGx8XGQrKSIvZyxnYj1uZXcgUmVnRXhwKCI8KD86IitlYisiKVtcXHMvPl0iLCJpIiksaGI9L15ccysvLGliPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFtcdzpdKylbXj5dKilcLz4vZ2ksamI9LzwoW1x3Ol0rKS8sa2I9Lzx0Ym9keS9pLGxiPS88fCYjP1x3KzsvLG1iPS88KD86c2NyaXB0fHN0eWxlfGxpbmspL2ksbmI9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksb2I9L14kfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLHBiPS9edHJ1ZVwvKC4qKS8scWI9L15ccyo8ISg/OlxbQ0RBVEFcW3wtLSl8KD86XF1cXXwtLSk+XHMqJC9nLHJiPXtvcHRpb246WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSxsZWdlbmQ6WzEsIjxmaWVsZHNldD4iLCI8L2ZpZWxkc2V0PiJdLGFyZWE6WzEsIjxtYXA+IiwiPC9tYXA+Il0scGFyYW06WzEsIjxvYmplY3Q+IiwiPC9vYmplY3Q+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDprLmh0bWxTZXJpYWxpemU/WzAsIiIsIiJdOlsxLCJYPGRpdj4iLCI8L2Rpdj4iXX0sc2I9ZGIoeSksdGI9c2IuYXBwZW5kQ2hpbGQoeS5jcmVhdGVFbGVtZW50KCJkaXYiKSk7cmIub3B0Z3JvdXA9cmIub3B0aW9uLHJiLnRib2R5PXJiLnRmb290PXJiLmNvbGdyb3VwPXJiLmNhcHRpb249cmIudGhlYWQscmIudGg9cmIudGQ7ZnVuY3Rpb24gdWIoYSxiKXt2YXIgYyxkLGU9MCxmPXR5cGVvZiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lIT09Sz9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKGJ8fCIqIik6dHlwZW9mIGEucXVlcnlTZWxlY3RvckFsbCE9PUs/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIqIik6dm9pZCAwO2lmKCFmKWZvcihmPVtdLGM9YS5jaGlsZE5vZGVzfHxhO251bGwhPShkPWNbZV0pO2UrKykhYnx8bS5ub2RlTmFtZShkLGIpP2YucHVzaChkKTptLm1lcmdlKGYsdWIoZCxiKSk7cmV0dXJuIHZvaWQgMD09PWJ8fGImJm0ubm9kZU5hbWUoYSxiKT9tLm1lcmdlKFthXSxmKTpmfWZ1bmN0aW9uIHZiKGEpe1cudGVzdChhLnR5cGUpJiYoYS5kZWZhdWx0Q2hlY2tlZD1hLmNoZWNrZWQpfWZ1bmN0aW9uIHdiKGEsYil7cmV0dXJuIG0ubm9kZU5hbWUoYSwidGFibGUiKSYmbS5ub2RlTmFtZSgxMSE9PWIubm9kZVR5cGU/YjpiLmZpcnN0Q2hpbGQsInRyIik/YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8YS5hcHBlbmRDaGlsZChhLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6YX1mdW5jdGlvbiB4YihhKXtyZXR1cm4gYS50eXBlPShudWxsIT09bS5maW5kLmF0dHIoYSwidHlwZSIpKSsiLyIrYS50eXBlLGF9ZnVuY3Rpb24geWIoYSl7dmFyIGI9cGIuZXhlYyhhLnR5cGUpO3JldHVybiBiP2EudHlwZT1iWzFdOmEucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksYX1mdW5jdGlvbiB6YihhLGIpe2Zvcih2YXIgYyxkPTA7bnVsbCE9KGM9YVtkXSk7ZCsrKW0uX2RhdGEoYywiZ2xvYmFsRXZhbCIsIWJ8fG0uX2RhdGEoYltkXSwiZ2xvYmFsRXZhbCIpKX1mdW5jdGlvbiBBYihhLGIpe2lmKDE9PT1iLm5vZGVUeXBlJiZtLmhhc0RhdGEoYSkpe3ZhciBjLGQsZSxmPW0uX2RhdGEoYSksZz1tLl9kYXRhKGIsZiksaD1mLmV2ZW50cztpZihoKXtkZWxldGUgZy5oYW5kbGUsZy5ldmVudHM9e307Zm9yKGMgaW4gaClmb3IoZD0wLGU9aFtjXS5sZW5ndGg7ZT5kO2QrKyltLmV2ZW50LmFkZChiLGMsaFtjXVtkXSl9Zy5kYXRhJiYoZy5kYXRhPW0uZXh0ZW5kKHt9LGcuZGF0YSkpfX1mdW5jdGlvbiBCYihhLGIpe3ZhciBjLGQsZTtpZigxPT09Yi5ub2RlVHlwZSl7aWYoYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksIWsubm9DbG9uZUV2ZW50JiZiW20uZXhwYW5kb10pe2U9bS5fZGF0YShiKTtmb3IoZCBpbiBlLmV2ZW50cyltLnJlbW92ZUV2ZW50KGIsZCxlLmhhbmRsZSk7Yi5yZW1vdmVBdHRyaWJ1dGUobS5leHBhbmRvKX0ic2NyaXB0Ij09PWMmJmIudGV4dCE9PWEudGV4dD8oeGIoYikudGV4dD1hLnRleHQseWIoYikpOiJvYmplY3QiPT09Yz8oYi5wYXJlbnROb2RlJiYoYi5vdXRlckhUTUw9YS5vdXRlckhUTUwpLGsuaHRtbDVDbG9uZSYmYS5pbm5lckhUTUwmJiFtLnRyaW0oYi5pbm5lckhUTUwpJiYoYi5pbm5lckhUTUw9YS5pbm5lckhUTUwpKToiaW5wdXQiPT09YyYmVy50ZXN0KGEudHlwZSk/KGIuZGVmYXVsdENoZWNrZWQ9Yi5jaGVja2VkPWEuY2hlY2tlZCxiLnZhbHVlIT09YS52YWx1ZSYmKGIudmFsdWU9YS52YWx1ZSkpOiJvcHRpb24iPT09Yz9iLmRlZmF1bHRTZWxlY3RlZD1iLnNlbGVjdGVkPWEuZGVmYXVsdFNlbGVjdGVkOigiaW5wdXQiPT09Y3x8InRleHRhcmVhIj09PWMpJiYoYi5kZWZhdWx0VmFsdWU9YS5kZWZhdWx0VmFsdWUpfX1tLmV4dGVuZCh7Y2xvbmU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGgsaT1tLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKTtpZihrLmh0bWw1Q2xvbmV8fG0uaXNYTUxEb2MoYSl8fCFnYi50ZXN0KCI8IithLm5vZGVOYW1lKyI+Iik/Zj1hLmNsb25lTm9kZSghMCk6KHRiLmlubmVySFRNTD1hLm91dGVySFRNTCx0Yi5yZW1vdmVDaGlsZChmPXRiLmZpcnN0Q2hpbGQpKSwhKGsubm9DbG9uZUV2ZW50JiZrLm5vQ2xvbmVDaGVja2VkfHwxIT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlfHxtLmlzWE1MRG9jKGEpKSlmb3IoZD11YihmKSxoPXViKGEpLGc9MDtudWxsIT0oZT1oW2ddKTsrK2cpZFtnXSYmQmIoZSxkW2ddKTtpZihiKWlmKGMpZm9yKGg9aHx8dWIoYSksZD1kfHx1YihmKSxnPTA7bnVsbCE9KGU9aFtnXSk7ZysrKUFiKGUsZFtnXSk7ZWxzZSBBYihhLGYpO3JldHVybiBkPXViKGYsInNjcmlwdCIpLGQubGVuZ3RoPjAmJnpiKGQsIWkmJnViKGEsInNjcmlwdCIpKSxkPWg9ZT1udWxsLGZ9LGJ1aWxkRnJhZ21lbnQ6ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlLGYsZyxoLGksaixsLG49YS5sZW5ndGgsbz1kYihiKSxwPVtdLHE9MDtuPnE7cSsrKWlmKGY9YVtxXSxmfHwwPT09ZilpZigib2JqZWN0Ij09PW0udHlwZShmKSltLm1lcmdlKHAsZi5ub2RlVHlwZT9bZl06Zik7ZWxzZSBpZihsYi50ZXN0KGYpKXtoPWh8fG8uYXBwZW5kQ2hpbGQoYi5jcmVhdGVFbGVtZW50KCJkaXYiKSksaT0oamIuZXhlYyhmKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKSxsPXJiW2ldfHxyYi5fZGVmYXVsdCxoLmlubmVySFRNTD1sWzFdK2YucmVwbGFjZShpYiwiPCQxPjwvJDI+IikrbFsyXSxlPWxbMF07d2hpbGUoZS0tKWg9aC5sYXN0Q2hpbGQ7aWYoIWsubGVhZGluZ1doaXRlc3BhY2UmJmhiLnRlc3QoZikmJnAucHVzaChiLmNyZWF0ZVRleHROb2RlKGhiLmV4ZWMoZilbMF0pKSwhay50Ym9keSl7Zj0idGFibGUiIT09aXx8a2IudGVzdChmKT8iPHRhYmxlPiIhPT1sWzFdfHxrYi50ZXN0KGYpPzA6aDpoLmZpcnN0Q2hpbGQsZT1mJiZmLmNoaWxkTm9kZXMubGVuZ3RoO3doaWxlKGUtLSltLm5vZGVOYW1lKGo9Zi5jaGlsZE5vZGVzW2VdLCJ0Ym9keSIpJiYhai5jaGlsZE5vZGVzLmxlbmd0aCYmZi5yZW1vdmVDaGlsZChqKX1tLm1lcmdlKHAsaC5jaGlsZE5vZGVzKSxoLnRleHRDb250ZW50PSIiO3doaWxlKGguZmlyc3RDaGlsZCloLnJlbW92ZUNoaWxkKGguZmlyc3RDaGlsZCk7aD1vLmxhc3RDaGlsZH1lbHNlIHAucHVzaChiLmNyZWF0ZVRleHROb2RlKGYpKTtoJiZvLnJlbW92ZUNoaWxkKGgpLGsuYXBwZW5kQ2hlY2tlZHx8bS5ncmVwKHViKHAsImlucHV0IiksdmIpLHE9MDt3aGlsZShmPXBbcSsrXSlpZigoIWR8fC0xPT09bS5pbkFycmF5KGYsZCkpJiYoZz1tLmNvbnRhaW5zKGYub3duZXJEb2N1bWVudCxmKSxoPXViKG8uYXBwZW5kQ2hpbGQoZiksInNjcmlwdCIpLGcmJnpiKGgpLGMpKXtlPTA7d2hpbGUoZj1oW2UrK10pb2IudGVzdChmLnR5cGV8fCIiKSYmYy5wdXNoKGYpfXJldHVybiBoPW51bGwsb30sY2xlYW5EYXRhOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkLGUsZixnLGg9MCxpPW0uZXhwYW5kbyxqPW0uY2FjaGUsbD1rLmRlbGV0ZUV4cGFuZG8sbj1tLmV2ZW50LnNwZWNpYWw7bnVsbCE9KGQ9YVtoXSk7aCsrKWlmKChifHxtLmFjY2VwdERhdGEoZCkpJiYoZj1kW2ldLGc9ZiYmaltmXSkpe2lmKGcuZXZlbnRzKWZvcihlIGluIGcuZXZlbnRzKW5bZV0/bS5ldmVudC5yZW1vdmUoZCxlKTptLnJlbW92ZUV2ZW50KGQsZSxnLmhhbmRsZSk7altmXSYmKGRlbGV0ZSBqW2ZdLGw/ZGVsZXRlIGRbaV06dHlwZW9mIGQucmVtb3ZlQXR0cmlidXRlIT09Sz9kLnJlbW92ZUF0dHJpYnV0ZShpKTpkW2ldPW51bGwsYy5wdXNoKGYpKX19fSksbS5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFYodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gdm9pZCAwPT09YT9tLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHx5KS5jcmVhdGVUZXh0Tm9kZShhKSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgYj13Yih0aGlzLGEpO2IuYXBwZW5kQ2hpbGQoYSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciBiPXdiKHRoaXMsYSk7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0Q2hpbGQpfX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcy5uZXh0U2libGluZyl9KX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjLGQ9YT9tLmZpbHRlcihhLHRoaXMpOnRoaXMsZT0wO251bGwhPShjPWRbZV0pO2UrKylifHwxIT09Yy5ub2RlVHlwZXx8bS5jbGVhbkRhdGEodWIoYykpLGMucGFyZW50Tm9kZSYmKGImJm0uY29udGFpbnMoYy5vd25lckRvY3VtZW50LGMpJiZ6Yih1YihjLCJzY3JpcHQiKSksYy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpKTtyZXR1cm4gdGhpc30sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wO251bGwhPShhPXRoaXNbYl0pO2IrKyl7MT09PWEubm9kZVR5cGUmJm0uY2xlYW5EYXRhKHViKGEsITEpKTt3aGlsZShhLmZpcnN0Q2hpbGQpYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Eub3B0aW9ucyYmbS5ub2RlTmFtZShhLCJzZWxlY3QiKSYmKGEub3B0aW9ucy5sZW5ndGg9MCl9cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVsbD09YT8hMTphLGI9bnVsbD09Yj9hOmIsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbS5jbG9uZSh0aGlzLGEsYil9KX0saHRtbDpmdW5jdGlvbihhKXtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF18fHt9LGM9MCxkPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWEpcmV0dXJuIDE9PT1iLm5vZGVUeXBlP2IuaW5uZXJIVE1MLnJlcGxhY2UoZmIsIiIpOnZvaWQgMDtpZighKCJzdHJpbmciIT10eXBlb2YgYXx8bWIudGVzdChhKXx8IWsuaHRtbFNlcmlhbGl6ZSYmZ2IudGVzdChhKXx8IWsubGVhZGluZ1doaXRlc3BhY2UmJmhiLnRlc3QoYSl8fHJiWyhqYi5leGVjKGEpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSkpe2E9YS5yZXBsYWNlKGliLCI8JDE+PC8kMj4iKTt0cnl7Zm9yKDtkPmM7YysrKWI9dGhpc1tjXXx8e30sMT09PWIubm9kZVR5cGUmJihtLmNsZWFuRGF0YSh1YihiLCExKSksYi5pbm5lckhUTUw9YSk7Yj0wfWNhdGNoKGUpe319YiYmdGhpcy5lbXB0eSgpLmFwcGVuZChhKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBhPWFyZ3VtZW50c1swXTtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYil7YT10aGlzLnBhcmVudE5vZGUsbS5jbGVhbkRhdGEodWIodGhpcykpLGEmJmEucmVwbGFjZUNoaWxkKGIsdGhpcyl9KSxhJiYoYS5sZW5ndGh8fGEubm9kZVR5cGUpP3RoaXM6dGhpcy5yZW1vdmUoKX0sZGV0YWNoOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJlbW92ZShhLCEwKX0sZG9tTWFuaXA6ZnVuY3Rpb24oYSxiKXthPWUuYXBwbHkoW10sYSk7dmFyIGMsZCxmLGcsaCxpLGo9MCxsPXRoaXMubGVuZ3RoLG49dGhpcyxvPWwtMSxwPWFbMF0scT1tLmlzRnVuY3Rpb24ocCk7aWYocXx8bD4xJiYic3RyaW5nIj09dHlwZW9mIHAmJiFrLmNoZWNrQ2xvbmUmJm5iLnRlc3QocCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXt2YXIgZD1uLmVxKGMpO3EmJihhWzBdPXAuY2FsbCh0aGlzLGMsZC5odG1sKCkpKSxkLmRvbU1hbmlwKGEsYil9KTtpZihsJiYoaT1tLmJ1aWxkRnJhZ21lbnQoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQsITEsdGhpcyksYz1pLmZpcnN0Q2hpbGQsMT09PWkuY2hpbGROb2Rlcy5sZW5ndGgmJihpPWMpLGMpKXtmb3IoZz1tLm1hcCh1YihpLCJzY3JpcHQiKSx4YiksZj1nLmxlbmd0aDtsPmo7aisrKWQ9aSxqIT09byYmKGQ9bS5jbG9uZShkLCEwLCEwKSxmJiZtLm1lcmdlKGcsdWIoZCwic2NyaXB0IikpKSxiLmNhbGwodGhpc1tqXSxkLGopO2lmKGYpZm9yKGg9Z1tnLmxlbmd0aC0xXS5vd25lckRvY3VtZW50LG0ubWFwKGcseWIpLGo9MDtmPmo7aisrKWQ9Z1tqXSxvYi50ZXN0KGQudHlwZXx8IiIpJiYhbS5fZGF0YShkLCJnbG9iYWxFdmFsIikmJm0uY29udGFpbnMoaCxkKSYmKGQuc3JjP20uX2V2YWxVcmwmJm0uX2V2YWxVcmwoZC5zcmMpOm0uZ2xvYmFsRXZhbCgoZC50ZXh0fHxkLnRleHRDb250ZW50fHxkLmlubmVySFRNTHx8IiIpLnJlcGxhY2UocWIsIiIpKSk7aT1jPW51bGx9cmV0dXJuIHRoaXN9fSksbS5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXttLmZuW2FdPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYyxkPTAsZT1bXSxnPW0oYSksaD1nLmxlbmd0aC0xO2g+PWQ7ZCsrKWM9ZD09PWg/dGhpczp0aGlzLmNsb25lKCEwKSxtKGdbZF0pW2JdKGMpLGYuYXBwbHkoZSxjLmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIENiLERiPXt9O2Z1bmN0aW9uIEViKGIsYyl7dmFyIGQsZT1tKGMuY3JlYXRlRWxlbWVudChiKSkuYXBwZW5kVG8oYy5ib2R5KSxmPWEuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUmJihkPWEuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUoZVswXSkpP2QuZGlzcGxheTptLmNzcyhlWzBdLCJkaXNwbGF5Iik7cmV0dXJuIGUuZGV0YWNoKCksZn1mdW5jdGlvbiBGYihhKXt2YXIgYj15LGM9RGJbYV07cmV0dXJuIGN8fChjPUViKGEsYiksIm5vbmUiIT09YyYmY3x8KENiPShDYnx8bSgiPGlmcmFtZSBmcmFtZWJvcmRlcj0nMCcgd2lkdGg9JzAnIGhlaWdodD0nMCcvPiIpKS5hcHBlbmRUbyhiLmRvY3VtZW50RWxlbWVudCksYj0oQ2JbMF0uY29udGVudFdpbmRvd3x8Q2JbMF0uY29udGVudERvY3VtZW50KS5kb2N1bWVudCxiLndyaXRlKCksYi5jbG9zZSgpLGM9RWIoYSxiKSxDYi5kZXRhY2goKSksRGJbYV09YyksY30hZnVuY3Rpb24oKXt2YXIgYTtrLnNocmlua1dyYXBCbG9ja3M9ZnVuY3Rpb24oKXtpZihudWxsIT1hKXJldHVybiBhO2E9ITE7dmFyIGIsYyxkO3JldHVybiBjPXkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxjJiZjLnN0eWxlPyhiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZD15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZCkuYXBwZW5kQ2hpbGQoYiksdHlwZW9mIGIuc3R5bGUuem9vbSE9PUsmJihiLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGIuYXBwZW5kQ2hpbGQoeS5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc3R5bGUud2lkdGg9IjVweCIsYT0zIT09Yi5vZmZzZXRXaWR0aCksYy5yZW1vdmVDaGlsZChkKSxhKTp2b2lkIDB9fSgpO3ZhciBHYj0vXm1hcmdpbi8sSGI9bmV3IFJlZ0V4cCgiXigiK1MrIikoPyFweClbYS16JV0rJCIsImkiKSxJYixKYixLYj0vXih0b3B8cmlnaHR8Ym90dG9tfGxlZnQpJC87YS5nZXRDb21wdXRlZFN0eWxlPyhJYj1mdW5jdGlvbihhKXtyZXR1cm4gYS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYSxudWxsKX0sSmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHxJYihhKSxnPWM/Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHxjW2JdOnZvaWQgMCxjJiYoIiIhPT1nfHxtLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKXx8KGc9bS5zdHlsZShhLGIpKSxIYi50ZXN0KGcpJiZHYi50ZXN0KGIpJiYoZD1oLndpZHRoLGU9aC5taW5XaWR0aCxmPWgubWF4V2lkdGgsaC5taW5XaWR0aD1oLm1heFdpZHRoPWgud2lkdGg9ZyxnPWMud2lkdGgsaC53aWR0aD1kLGgubWluV2lkdGg9ZSxoLm1heFdpZHRoPWYpKSx2b2lkIDA9PT1nP2c6ZysiIn0pOnkuZG9jdW1lbnRFbGVtZW50LmN1cnJlbnRTdHlsZSYmKEliPWZ1bmN0aW9uKGEpe3JldHVybiBhLmN1cnJlbnRTdHlsZX0sSmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHxJYihhKSxnPWM/Y1tiXTp2b2lkIDAsbnVsbD09ZyYmaCYmaFtiXSYmKGc9aFtiXSksSGIudGVzdChnKSYmIUtiLnRlc3QoYikmJihkPWgubGVmdCxlPWEucnVudGltZVN0eWxlLGY9ZSYmZS5sZWZ0LGYmJihlLmxlZnQ9YS5jdXJyZW50U3R5bGUubGVmdCksaC5sZWZ0PSJmb250U2l6ZSI9PT1iPyIxZW0iOmcsZz1oLnBpeGVsTGVmdCsicHgiLGgubGVmdD1kLGYmJihlLmxlZnQ9ZikpLHZvaWQgMD09PWc/ZzpnKyIifHwiYXV0byJ9KTtmdW5jdGlvbiBMYihhLGIpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXt2YXIgYz1hKCk7aWYobnVsbCE9YylyZXR1cm4gYz92b2lkIGRlbGV0ZSB0aGlzLmdldDoodGhpcy5nZXQ9YikuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19IWZ1bmN0aW9uKCl7dmFyIGIsYyxkLGUsZixnLGg7aWYoYj15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGIuaW5uZXJIVE1MPSIgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYSc+YTwvYT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iLGQ9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdLGM9ZCYmZC5zdHlsZSl7Yy5jc3NUZXh0PSJmbG9hdDpsZWZ0O29wYWNpdHk6LjUiLGsub3BhY2l0eT0iMC41Ij09PWMub3BhY2l0eSxrLmNzc0Zsb2F0PSEhYy5jc3NGbG9hdCxiLnN0eWxlLmJhY2tncm91bmRDbGlwPSJjb250ZW50LWJveCIsYi5jbG9uZU5vZGUoITApLnN0eWxlLmJhY2tncm91bmRDbGlwPSIiLGsuY2xlYXJDbG9uZVN0eWxlPSJjb250ZW50LWJveCI9PT1iLnN0eWxlLmJhY2tncm91bmRDbGlwLGsuYm94U2l6aW5nPSIiPT09Yy5ib3hTaXppbmd8fCIiPT09Yy5Nb3pCb3hTaXppbmd8fCIiPT09Yy5XZWJraXRCb3hTaXppbmcsbS5leHRlbmQoayx7cmVsaWFibGVIaWRkZW5PZmZzZXRzOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWcmJmkoKSxnfSxib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiBudWxsPT1mJiZpKCksZn0scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBudWxsPT1lJiZpKCksZX0scmVsaWFibGVNYXJnaW5SaWdodDpmdW5jdGlvbigpe3JldHVybiBudWxsPT1oJiZpKCksaH19KTtmdW5jdGlvbiBpKCl7dmFyIGIsYyxkLGk7Yz15LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0sYyYmYy5zdHlsZSYmKGI9eS5jcmVhdGVFbGVtZW50KCJkaXYiKSxkPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweCIsYy5hcHBlbmRDaGlsZChkKS5hcHBlbmRDaGlsZChiKSxiLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MSU7dG9wOjElO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NHB4O3Bvc2l0aW9uOmFic29sdXRlIixlPWY9ITEsaD0hMCxhLmdldENvbXB1dGVkU3R5bGUmJihlPSIxJSIhPT0oYS5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCl8fHt9KS50b3AsZj0iNHB4Ij09PShhLmdldENvbXB1dGVkU3R5bGUoYixudWxsKXx8e3dpZHRoOiI0cHgifSkud2lkdGgsaT1iLmFwcGVuZENoaWxkKHkuY3JlYXRlRWxlbWVudCgiZGl2IikpLGkuc3R5bGUuY3NzVGV4dD1iLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MCIsaS5zdHlsZS5tYXJnaW5SaWdodD1pLnN0eWxlLndpZHRoPSIwIixiLnN0eWxlLndpZHRoPSIxcHgiLGg9IXBhcnNlRmxvYXQoKGEuZ2V0Q29tcHV0ZWRTdHlsZShpLG51bGwpfHx7fSkubWFyZ2luUmlnaHQpKSxiLmlubmVySFRNTD0iPHRhYmxlPjx0cj48dGQ+PC90ZD48dGQ+dDwvdGQ+PC90cj48L3RhYmxlPiIsaT1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZCIpLGlbMF0uc3R5bGUuY3NzVGV4dD0ibWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowO2Rpc3BsYXk6bm9uZSIsZz0wPT09aVswXS5vZmZzZXRIZWlnaHQsZyYmKGlbMF0uc3R5bGUuZGlzcGxheT0iIixpWzFdLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGc9MD09PWlbMF0ub2Zmc2V0SGVpZ2h0KSxjLnJlbW92ZUNoaWxkKGQpKX19fSgpLG0uc3dhcD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGc9e307Zm9yKGYgaW4gYilnW2ZdPWEuc3R5bGVbZl0sYS5zdHlsZVtmXT1iW2ZdO2U9Yy5hcHBseShhLGR8fFtdKTtmb3IoZiBpbiBiKWEuc3R5bGVbZl09Z1tmXTtyZXR1cm4gZX07dmFyIE1iPS9hbHBoYVwoW14pXSpcKS9pLE5iPS9vcGFjaXR5XHMqPVxzKihbXildKikvLE9iPS9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxQYj1uZXcgUmVnRXhwKCJeKCIrUysiKSguKikkIiwiaSIpLFFiPW5ldyBSZWdFeHAoIl4oWystXSk9KCIrUysiKSIsImkiKSxSYj17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sU2I9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9LFRiPVsiV2Via2l0IiwiTyIsIk1veiIsIm1zIl07ZnVuY3Rpb24gVWIoYSxiKXtpZihiIGluIGEpcmV0dXJuIGI7dmFyIGM9Yi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStiLnNsaWNlKDEpLGQ9YixlPVRiLmxlbmd0aDt3aGlsZShlLS0paWYoYj1UYltlXStjLGIgaW4gYSlyZXR1cm4gYjtyZXR1cm4gZH1mdW5jdGlvbiBWYihhLGIpe2Zvcih2YXIgYyxkLGUsZj1bXSxnPTAsaD1hLmxlbmd0aDtoPmc7ZysrKWQ9YVtnXSxkLnN0eWxlJiYoZltnXT1tLl9kYXRhKGQsIm9sZGRpc3BsYXkiKSxjPWQuc3R5bGUuZGlzcGxheSxiPyhmW2ddfHwibm9uZSIhPT1jfHwoZC5zdHlsZS5kaXNwbGF5PSIiKSwiIj09PWQuc3R5bGUuZGlzcGxheSYmVShkKSYmKGZbZ109bS5fZGF0YShkLCJvbGRkaXNwbGF5IixGYihkLm5vZGVOYW1lKSkpKTooZT1VKGQpLChjJiYibm9uZSIhPT1jfHwhZSkmJm0uX2RhdGEoZCwib2xkZGlzcGxheSIsZT9jOm0uY3NzKGQsImRpc3BsYXkiKSkpKTtmb3IoZz0wO2g+ZztnKyspZD1hW2ddLGQuc3R5bGUmJihiJiYibm9uZSIhPT1kLnN0eWxlLmRpc3BsYXkmJiIiIT09ZC5zdHlsZS5kaXNwbGF5fHwoZC5zdHlsZS5kaXNwbGF5PWI/ZltnXXx8IiI6Im5vbmUiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gV2IoYSxiLGMpe3ZhciBkPVBiLmV4ZWMoYik7cmV0dXJuIGQ/TWF0aC5tYXgoMCxkWzFdLShjfHwwKSkrKGRbMl18fCJweCIpOmJ9ZnVuY3Rpb24gWGIoYSxiLGMsZCxlKXtmb3IodmFyIGY9Yz09PShkPyJib3JkZXIiOiJjb250ZW50Iik/NDoid2lkdGgiPT09Yj8xOjAsZz0wOzQ+ZjtmKz0yKSJtYXJnaW4iPT09YyYmKGcrPW0uY3NzKGEsYytUW2ZdLCEwLGUpKSxkPygiY29udGVudCI9PT1jJiYoZy09bS5jc3MoYSwicGFkZGluZyIrVFtmXSwhMCxlKSksIm1hcmdpbiIhPT1jJiYoZy09bS5jc3MoYSwiYm9yZGVyIitUW2ZdKyJXaWR0aCIsITAsZSkpKTooZys9bS5jc3MoYSwicGFkZGluZyIrVFtmXSwhMCxlKSwicGFkZGluZyIhPT1jJiYoZys9bS5jc3MoYSwiYm9yZGVyIitUW2ZdKyJXaWR0aCIsITAsZSkpKTtyZXR1cm4gZ31mdW5jdGlvbiBZYihhLGIsYyl7dmFyIGQ9ITAsZT0id2lkdGgiPT09Yj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0LGY9SWIoYSksZz1rLmJveFNpemluZyYmImJvcmRlci1ib3giPT09bS5jc3MoYSwiYm94U2l6aW5nIiwhMSxmKTtpZigwPj1lfHxudWxsPT1lKXtpZihlPUpiKGEsYixmKSwoMD5lfHxudWxsPT1lKSYmKGU9YS5zdHlsZVtiXSksSGIudGVzdChlKSlyZXR1cm4gZTtkPWcmJihrLmJveFNpemluZ1JlbGlhYmxlKCl8fGU9PT1hLnN0eWxlW2JdKSxlPXBhcnNlRmxvYXQoZSl8fDB9cmV0dXJuIGUrWGIoYSxiLGN8fChnPyJib3JkZXIiOiJjb250ZW50IiksZCxmKSsicHgifW0uZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGEsYil7aWYoYil7dmFyIGM9SmIoYSwib3BhY2l0eSIpO3JldHVybiIiPT09Yz8iMSI6Y319fX0sY3NzTnVtYmVyOntjb2x1bW5Db3VudDohMCxmaWxsT3BhY2l0eTohMCxmbGV4R3JvdzohMCxmbGV4U2hyaW5rOiEwLGZvbnRXZWlnaHQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfSxjc3NQcm9wczp7ImZsb2F0IjprLmNzc0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQifSxzdHlsZTpmdW5jdGlvbihhLGIsYyxkKXtpZihhJiYzIT09YS5ub2RlVHlwZSYmOCE9PWEubm9kZVR5cGUmJmEuc3R5bGUpe3ZhciBlLGYsZyxoPW0uY2FtZWxDYXNlKGIpLGk9YS5zdHlsZTtpZihiPW0uY3NzUHJvcHNbaF18fChtLmNzc1Byb3BzW2hdPVViKGksaCkpLGc9bS5jc3NIb29rc1tiXXx8bS5jc3NIb29rc1toXSx2b2lkIDA9PT1jKXJldHVybiBnJiYiZ2V0ImluIGcmJnZvaWQgMCE9PShlPWcuZ2V0KGEsITEsZCkpP2U6aVtiXTtpZihmPXR5cGVvZiBjLCJzdHJpbmciPT09ZiYmKGU9UWIuZXhlYyhjKSkmJihjPShlWzFdKzEpKmVbMl0rcGFyc2VGbG9hdChtLmNzcyhhLGIpKSxmPSJudW1iZXIiKSxudWxsIT1jJiZjPT09YyYmKCJudW1iZXIiIT09Znx8bS5jc3NOdW1iZXJbaF18fChjKz0icHgiKSxrLmNsZWFyQ2xvbmVTdHlsZXx8IiIhPT1jfHwwIT09Yi5pbmRleE9mKCJiYWNrZ3JvdW5kIil8fChpW2JdPSJpbmhlcml0IiksIShnJiYic2V0ImluIGcmJnZvaWQgMD09PShjPWcuc2V0KGEsYyxkKSkpKSl0cnl7aVtiXT1jfWNhdGNoKGope319fSxjc3M6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixnLGg9bS5jYW1lbENhc2UoYik7cmV0dXJuIGI9bS5jc3NQcm9wc1toXXx8KG0uY3NzUHJvcHNbaF09VWIoYS5zdHlsZSxoKSksZz1tLmNzc0hvb2tzW2JdfHxtLmNzc0hvb2tzW2hdLGcmJiJnZXQiaW4gZyYmKGY9Zy5nZXQoYSwhMCxjKSksdm9pZCAwPT09ZiYmKGY9SmIoYSxiLGQpKSwibm9ybWFsIj09PWYmJmIgaW4gU2ImJihmPVNiW2JdKSwiIj09PWN8fGM/KGU9cGFyc2VGbG9hdChmKSxjPT09ITB8fG0uaXNOdW1lcmljKGUpP2V8fDA6Zik6Zn19KSxtLmVhY2goWyJoZWlnaHQiLCJ3aWR0aCJdLGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEsYyxkKXtyZXR1cm4gYz9PYi50ZXN0KG0uY3NzKGEsImRpc3BsYXkiKSkmJjA9PT1hLm9mZnNldFdpZHRoP20uc3dhcChhLFJiLGZ1bmN0aW9uKCl7cmV0dXJuIFliKGEsYixkKX0pOlliKGEsYixkKTp2b2lkIDB9LHNldDpmdW5jdGlvbihhLGMsZCl7dmFyIGU9ZCYmSWIoYSk7cmV0dXJuIFdiKGEsYyxkP1hiKGEsYixkLGsuYm94U2l6aW5nJiYiYm9yZGVyLWJveCI9PT1tLmNzcyhhLCJib3hTaXppbmciLCExLGUpLGUpOjApfX19KSxrLm9wYWNpdHl8fChtLmNzc0hvb2tzLm9wYWNpdHk9e2dldDpmdW5jdGlvbihhLGIpe3JldHVybiBOYi50ZXN0KChiJiZhLmN1cnJlbnRTdHlsZT9hLmN1cnJlbnRTdHlsZS5maWx0ZXI6YS5zdHlsZS5maWx0ZXIpfHwiIik/LjAxKnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsiIjpiPyIxIjoiIn0sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5zdHlsZSxkPWEuY3VycmVudFN0eWxlLGU9bS5pc051bWVyaWMoYik/ImFscGhhKG9wYWNpdHk9IisxMDAqYisiKSI6IiIsZj1kJiZkLmZpbHRlcnx8Yy5maWx0ZXJ8fCIiO2Muem9vbT0xLChiPj0xfHwiIj09PWIpJiYiIj09PW0udHJpbShmLnJlcGxhY2UoTWIsIiIpKSYmYy5yZW1vdmVBdHRyaWJ1dGUmJihjLnJlbW92ZUF0dHJpYnV0ZSgiZmlsdGVyIiksIiI9PT1ifHxkJiYhZC5maWx0ZXIpfHwoYy5maWx0ZXI9TWIudGVzdChmKT9mLnJlcGxhY2UoTWIsZSk6ZisiICIrZSl9fSksbS5jc3NIb29rcy5tYXJnaW5SaWdodD1MYihrLnJlbGlhYmxlTWFyZ2luUmlnaHQsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9tLnN3YXAoYSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sSmIsW2EsIm1hcmdpblJpZ2h0Il0pOnZvaWQgMH0pLG0uZWFjaCh7bWFyZ2luOiIiLHBhZGRpbmc6IiIsYm9yZGVyOiJXaWR0aCJ9LGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1thK2JdPXtleHBhbmQ6ZnVuY3Rpb24oYyl7Zm9yKHZhciBkPTAsZT17fSxmPSJzdHJpbmciPT10eXBlb2YgYz9jLnNwbGl0KCIgIik6W2NdOzQ+ZDtkKyspZVthK1RbZF0rYl09ZltkXXx8ZltkLTJdfHxmWzBdO3JldHVybiBlfX0sR2IudGVzdChhKXx8KG0uY3NzSG9va3NbYStiXS5zZXQ9V2IpfSksbS5mbi5leHRlbmQoe2NzczpmdW5jdGlvbihhLGIpe3JldHVybiBWKHRoaXMsZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj17fSxnPTA7aWYobS5pc0FycmF5KGIpKXtmb3IoZD1JYihhKSxlPWIubGVuZ3RoO2U+ZztnKyspZltiW2ddXT1tLmNzcyhhLGJbZ10sITEsZCk7cmV0dXJuIGZ9cmV0dXJuIHZvaWQgMCE9PWM/bS5zdHlsZShhLGIsYyk6bS5jc3MoYSxiKX0sYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHNob3c6ZnVuY3Rpb24oKXtyZXR1cm4gVmIodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gVmIodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbihhKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBhP2E/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7VSh0aGlzKT9tKHRoaXMpLnNob3coKTptKHRoaXMpLmhpZGUoKX0pfX0pO2Z1bmN0aW9uIFpiKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBaYi5wcm90b3R5cGUuaW5pdChhLGIsYyxkLGUpfW0uVHdlZW49WmIsWmIucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpaYixpbml0OmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt0aGlzLmVsZW09YSx0aGlzLnByb3A9Yyx0aGlzLmVhc2luZz1lfHwic3dpbmciLHRoaXMub3B0aW9ucz1iLHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1kLHRoaXMudW5pdD1mfHwobS5jc3NOdW1iZXJbY10/IiI6InB4IikKfSxjdXI6ZnVuY3Rpb24oKXt2YXIgYT1aYi5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gYSYmYS5nZXQ/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/bShhKS5wb3NpdGlvbigpW2JdKyJweCI6Yyk6dm9pZCAwfSl9KSxtLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGIpe20uZWFjaCh7cGFkZGluZzoiaW5uZXIiK2EsY29udGVudDpiLCIiOiJvdXRlciIrYX0sZnVuY3Rpb24oYyxkKXttLmZuW2RdPWZ1bmN0aW9uKGQsZSl7dmFyIGY9YXJndW1lbnRzLmxlbmd0aCYmKGN8fCJib29sZWFuIiE9dHlwZW9mIGQpLGc9Y3x8KGQ9PT0hMHx8ZT09PSEwPyJtYXJnaW4iOiJib3JkZXIiKTtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGIsYyxkKXt2YXIgZTtyZXR1cm4gbS5pc1dpbmRvdyhiKT9iLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsiY2xpZW50IithXTo5PT09Yi5ub2RlVHlwZT8oZT1iLmRvY3VtZW50RWxlbWVudCxNYXRoLm1heChiLmJvZHlbInNjcm9sbCIrYV0sZVsic2Nyb2xsIithXSxiLmJvZHlbIm9mZnNldCIrYV0sZVsib2Zmc2V0IithXSxlWyJjbGllbnQiK2FdKSk6dm9pZCAwPT09ZD9tLmNzcyhiLGMsZyk6bS5zdHlsZShiLGMsZCxnKX0sYixmP2Q6dm9pZCAwLGYsbnVsbCl9fSl9KSxtLmZuLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LG0uZm4uYW5kU2VsZj1tLmZuLmFkZEJhY2ssImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIG19KTt2YXIgZWQ9YS5qUXVlcnksZmQ9YS4kO3JldHVybiBtLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oYil7cmV0dXJuIGEuJD09PW0mJihhLiQ9ZmQpLGImJmEualF1ZXJ5PT09bSYmKGEualF1ZXJ5PWVkKSxtfSx0eXBlb2YgYj09PUsmJihhLmpRdWVyeT1hLiQ9bSksbX0pOwo="></script>
<link href="data:text/css;charset=utf-8,%0A%2Eleaflet%2Dmap%2Dpane%2C%0A%2Eleaflet%2Dtile%2C%0A%2Eleaflet%2Dmarker%2Dicon%2C%0A%2Eleaflet%2Dmarker%2Dshadow%2C%0A%2Eleaflet%2Dtile%2Dpane%2C%0A%2Eleaflet%2Dtile%2Dcontainer%2C%0A%2Eleaflet%2Doverlay%2Dpane%2C%0A%2Eleaflet%2Dshadow%2Dpane%2C%0A%2Eleaflet%2Dmarker%2Dpane%2C%0A%2Eleaflet%2Dpopup%2Dpane%2C%0A%2Eleaflet%2Doverlay%2Dpane%20svg%2C%0A%2Eleaflet%2Dzoom%2Dbox%2C%0A%2Eleaflet%2Dimage%2Dlayer%2C%0A%2Eleaflet%2Dlayer%20%7B%0Aposition%3A%20absolute%3B%0Aleft%3A%200%3B%0Atop%3A%200%3B%0A%7D%0A%2Eleaflet%2Dcontainer%20%7B%0Aoverflow%3A%20hidden%3B%0A%2Dms%2Dtouch%2Daction%3A%20none%3B%0A%7D%0A%2Eleaflet%2Dtile%2C%0A%2Eleaflet%2Dmarker%2Dicon%2C%0A%2Eleaflet%2Dmarker%2Dshadow%20%7B%0A%2Dwebkit%2Duser%2Dselect%3A%20none%3B%0A%2Dmoz%2Duser%2Dselect%3A%20none%3B%0Auser%2Dselect%3A%20none%3B%0A%2Dwebkit%2Duser%2Ddrag%3A%20none%3B%0A%7D%0A%2Eleaflet%2Dmarker%2Dicon%2C%0A%2Eleaflet%2Dmarker%2Dshadow%20%7B%0Adisplay%3A%20block%3B%0A%7D%0A%0A%2Eleaflet%2Dcontainer%20img%20%7B%0Amax%2Dwidth%3A%20none%20%21important%3B%0A%7D%0A%0A%2Eleaflet%2Dcontainer%20img%2Eleaflet%2Dimage%2Dlayer%20%7B%0Amax%2Dwidth%3A%2015000px%20%21important%3B%0A%7D%0A%2Eleaflet%2Dtile%20%7B%0Afilter%3A%20inherit%3B%0Avisibility%3A%20hidden%3B%0A%7D%0A%2Eleaflet%2Dtile%2Dloaded%20%7B%0Avisibility%3A%20inherit%3B%0A%7D%0A%2Eleaflet%2Dzoom%2Dbox%20%7B%0Awidth%3A%200%3B%0Aheight%3A%200%3B%0A%7D%0A%0A%2Eleaflet%2Doverlay%2Dpane%20svg%20%7B%0A%2Dmoz%2Duser%2Dselect%3A%20none%3B%0A%7D%0A%2Eleaflet%2Dtile%2Dpane%20%7B%20z%2Dindex%3A%202%3B%20%7D%0A%2Eleaflet%2Dobjects%2Dpane%20%7B%20z%2Dindex%3A%203%3B%20%7D%0A%2Eleaflet%2Doverlay%2Dpane%20%7B%20z%2Dindex%3A%204%3B%20%7D%0A%2Eleaflet%2Dshadow%2Dpane%20%7B%20z%2Dindex%3A%205%3B%20%7D%0A%2Eleaflet%2Dmarker%2Dpane%20%7B%20z%2Dindex%3A%206%3B%20%7D%0A%2Eleaflet%2Dpopup%2Dpane%20%7B%20z%2Dindex%3A%207%3B%20%7D%0A%2Eleaflet%2Dvml%2Dshape%20%7B%0Awidth%3A%201px%3B%0Aheight%3A%201px%3B%0A%7D%0A%2Elvml%20%7B%0Abehavior%3A%20url%28%23default%23VML%29%3B%0Adisplay%3A%20inline%2Dblock%3B%0Aposition%3A%20absolute%3B%0A%7D%0A%0A%2Eleaflet%2Dcontrol%20%7B%0Aposition%3A%20relative%3B%0Az%2Dindex%3A%207%3B%0Apointer%2Devents%3A%20auto%3B%0A%7D%0A%2Eleaflet%2Dtop%2C%0A%2Eleaflet%2Dbottom%20%7B%0Aposition%3A%20absolute%3B%0Az%2Dindex%3A%201000%3B%0Apointer%2Devents%3A%20none%3B%0A%7D%0A%2Eleaflet%2Dtop%20%7B%0Atop%3A%200%3B%0A%7D%0A%2Eleaflet%2Dright%20%7B%0Aright%3A%200%3B%0A%7D%0A%2Eleaflet%2Dbottom%20%7B%0Abottom%3A%200%3B%0A%7D%0A%2Eleaflet%2Dleft%20%7B%0Aleft%3A%200%3B%0A%7D%0A%2Eleaflet%2Dcontrol%20%7B%0Afloat%3A%20left%3B%0Aclear%3A%20both%3B%0A%7D%0A%2Eleaflet%2Dright%20%2Eleaflet%2Dcontrol%20%7B%0Afloat%3A%20right%3B%0A%7D%0A%2Eleaflet%2Dtop%20%2Eleaflet%2Dcontrol%20%7B%0Amargin%2Dtop%3A%2010px%3B%0A%7D%0A%2Eleaflet%2Dbottom%20%2Eleaflet%2Dcontrol%20%7B%0Amargin%2Dbottom%3A%2010px%3B%0A%7D%0A%2Eleaflet%2Dleft%20%2Eleaflet%2Dcontrol%20%7B%0Amargin%2Dleft%3A%2010px%3B%0A%7D%0A%2Eleaflet%2Dright%20%2Eleaflet%2Dcontrol%20%7B%0Amargin%2Dright%3A%2010px%3B%0A%7D%0A%0A%2Eleaflet%2Dfade%2Danim%20%2Eleaflet%2Dtile%2C%0A%2Eleaflet%2Dfade%2Danim%20%2Eleaflet%2Dpopup%20%7B%0Aopacity%3A%200%3B%0A%2Dwebkit%2Dtransition%3A%20opacity%200%2E2s%20linear%3B%0A%2Dmoz%2Dtransition%3A%20opacity%200%2E2s%20linear%3B%0A%2Do%2Dtransition%3A%20opacity%200%2E2s%20linear%3B%0Atransition%3A%20opacity%200%2E2s%20linear%3B%0A%7D%0A%2Eleaflet%2Dfade%2Danim%20%2Eleaflet%2Dtile%2Dloaded%2C%0A%2Eleaflet%2Dfade%2Danim%20%2Eleaflet%2Dmap%2Dpane%20%2Eleaflet%2Dpopup%20%7B%0Aopacity%3A%201%3B%0A%7D%0A%2Eleaflet%2Dzoom%2Danim%20%2Eleaflet%2Dzoom%2Danimated%20%7B%0A%2Dwebkit%2Dtransition%3A%20%2Dwebkit%2Dtransform%200%2E25s%20cubic%2Dbezier%280%2C0%2C0%2E25%2C1%29%3B%0A%2Dmoz%2Dtransition%3A%20%2Dmoz%2Dtransform%200%2E25s%20cubic%2Dbezier%280%2C0%2C0%2E25%2C1%29%3B%0A%2Do%2Dtransition%3A%20%2Do%2Dtransform%200%2E25s%20cubic%2Dbezier%280%2C0%2C0%2E25%2C1%29%3B%0Atransition%3A%20transform%200%2E25s%20cubic%2Dbezier%280%2C0%2C0%2E25%2C1%29%3B%0A%7D%0A%2Eleaflet%2Dzoom%2Danim%20%2Eleaflet%2Dtile%2C%0A%2Eleaflet%2Dpan%2Danim%20%2Eleaflet%2Dtile%2C%0A%2Eleaflet%2Dtouching%20%2Eleaflet%2Dzoom%2Danimated%20%7B%0A%2Dwebkit%2Dtransition%3A%20none%3B%0A%2Dmoz%2Dtransition%3A%20none%3B%0A%2Do%2Dtransition%3A%20none%3B%0Atransition%3A%20none%3B%0A%7D%0A%2Eleaflet%2Dzoom%2Danim%20%2Eleaflet%2Dzoom%2Dhide%20%7B%0Avisibility%3A%20hidden%3B%0A%7D%0A%0A%2Eleaflet%2Dclickable%20%7B%0Acursor%3A%20pointer%3B%0A%7D%0A%2Eleaflet%2Dcontainer%20%7B%0Acursor%3A%20%2Dwebkit%2Dgrab%3B%0Acursor%3A%20%2Dmoz%2Dgrab%3B%0A%7D%0A%2Eleaflet%2Dpopup%2Dpane%2C%0A%2Eleaflet%2Dcontrol%20%7B%0Acursor%3A%20auto%3B%0A%7D%0A%2Eleaflet%2Ddragging%20%2Eleaflet%2Dcontainer%2C%0A%2Eleaflet%2Ddragging%20%2Eleaflet%2Dclickable%20%7B%0Acursor%3A%20move%3B%0Acursor%3A%20%2Dwebkit%2Dgrabbing%3B%0Acursor%3A%20%2Dmoz%2Dgrabbing%3B%0A%7D%0A%0A%2Eleaflet%2Dcontainer%20%7B%0Abackground%3A%20%23ddd%3B%0Aoutline%3A%200%3B%0A%7D%0A%2Eleaflet%2Dcontainer%20a%20%7B%0Acolor%3A%20%230078A8%3B%0A%7D%0A%2Eleaflet%2Dcontainer%20a%2Eleaflet%2Dactive%20%7B%0Aoutline%3A%202px%20solid%20orange%3B%0A%7D%0A%2Eleaflet%2Dzoom%2Dbox%20%7B%0Aborder%3A%202px%20dotted%20%2338f%3B%0Abackground%3A%20rgba%28255%2C255%2C255%2C0%2E5%29%3B%0A%7D%0A%0A%2Eleaflet%2Dcontainer%20%7B%0Afont%3A%2012px%2F1%2E5%20%22Helvetica%20Neue%22%2C%20Arial%2C%20Helvetica%2C%20sans%2Dserif%3B%0A%7D%0A%0A%2Eleaflet%2Dbar%20%7B%0Abox%2Dshadow%3A%200%201px%205px%20rgba%280%2C0%2C0%2C0%2E65%29%3B%0Aborder%2Dradius%3A%204px%3B%0A%7D%0A%2Eleaflet%2Dbar%20a%2C%0A%2Eleaflet%2Dbar%20a%3Ahover%20%7B%0Abackground%2Dcolor%3A%20%23fff%3B%0Aborder%2Dbottom%3A%201px%20solid%20%23ccc%3B%0Awidth%3A%2026px%3B%0Aheight%3A%2026px%3B%0Aline%2Dheight%3A%2026px%3B%0Adisplay%3A%20block%3B%0Atext%2Dalign%3A%20center%3B%0Atext%2Ddecoration%3A%20none%3B%0Acolor%3A%20black%3B%0A%7D%0A%2Eleaflet%2Dbar%20a%2C%0A%2Eleaflet%2Dcontrol%2Dlayers%2Dtoggle%20%7B%0Abackground%2Dposition%3A%2050%25%2050%25%3B%0Abackground%2Drepeat%3A%20no%2Drepeat%3B%0Adisplay%3A%20block%3B%0A%7D%0A%2Eleaflet%2Dbar%20a%3Ahover%20%7B%0Abackground%2Dcolor%3A%20%23f4f4f4%3B%0A%7D%0A%2Eleaflet%2Dbar%20a%3Afirst%2Dchild%20%7B%0Aborder%2Dtop%2Dleft%2Dradius%3A%204px%3B%0Aborder%2Dtop%2Dright%2Dradius%3A%204px%3B%0A%7D%0A%2Eleaflet%2Dbar%20a%3Alast%2Dchild%20%7B%0Aborder%2Dbottom%2Dleft%2Dradius%3A%204px%3B%0Aborder%2Dbottom%2Dright%2Dradius%3A%204px%3B%0Aborder%2Dbottom%3A%20none%3B%0A%7D%0A%2Eleaflet%2Dbar%20a%2Eleaflet%2Ddisabled%20%7B%0Acursor%3A%20default%3B%0Abackground%2Dcolor%3A%20%23f4f4f4%3B%0Acolor%3A%20%23bbb%3B%0A%7D%0A%2Eleaflet%2Dtouch%20%2Eleaflet%2Dbar%20a%20%7B%0Awidth%3A%2030px%3B%0Aheight%3A%2030px%3B%0Aline%2Dheight%3A%2030px%3B%0A%7D%0A%0A%2Eleaflet%2Dcontrol%2Dzoom%2Din%2C%0A%2Eleaflet%2Dcontrol%2Dzoom%2Dout%20%7B%0Afont%3A%20bold%2018px%20%27Lucida%20Console%27%2C%20Monaco%2C%20monospace%3B%0Atext%2Dindent%3A%201px%3B%0A%7D%0A%2Eleaflet%2Dcontrol%2Dzoom%2Dout%20%7B%0Afont%2Dsize%3A%2020px%3B%0A%7D%0A%2Eleaflet%2Dtouch%20%2Eleaflet%2Dcontrol%2Dzoom%2Din%20%7B%0Afont%2Dsize%3A%2022px%3B%0A%7D%0A%2Eleaflet%2Dtouch%20%2Eleaflet%2Dcontrol%2Dzoom%2Dout%20%7B%0Afont%2Dsize%3A%2024px%3B%0A%7D%0A%0A%2Eleaflet%2Dcontrol%2Dlayers%20%7B%0Abox%2Dshadow%3A%200%201px%205px%20rgba%280%2C0%2C0%2C0%2E4%29%3B%0Abackground%3A%20%23fff%3B%0Aborder%2Dradius%3A%205px%3B%0A%7D%0A%2Eleaflet%2Dcontrol%2Dlayers%2Dtoggle%20%7B%0Abackground%2Dimage%3A%20url%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAVbSURBVEiJrZZfSFt3FMe%2Fv3tvbmLUZleNKSHE%2FLGRiNbGRovTtrA9lcFkpcOnMvawwhhjrb3soQ8djGFhXMQNRqEvY3R9kJVuPpRRWQebcdKYxkaHqcHchKJ2rVo1WhNz%2F%2Fz2UOLUadVuv9fvOedzfuec3x9CKcV%2B1qVLlwgAdHV17cuR7AfU29tb43a73wWAVCr1Q0dHx8T%2FCuru7i5ubGw843K5ms1mMwBgdXUV6XQ6HI1Gb3Z2dj7%2Fz6C%2Bvr6T1dXVp6xWa%2Bl2%2Buzs7PLk5OTP7e3tv70S6Pr1647q6uoOt9vtYRjmpcnouo5UKiVPTk72nj17dmpPIEmS%2BIaGhnaPx3O8tLSU3ahRSotyudzrAGAymf4ghGQ36svLy5osywOxWKxPFMX8jqBbt241ejyed%2Bx2e9nWjPL5fK2iKC2UUiMAEELWDAbDEM%2Fz41ttZ2Zmnsmy%2FOPp06ejm0DXrl2rqK2tPeNyuQ7zPL9pi5qmVaytrZ3Qdf3gdiVhGOYvo9H4O8uyc1sSI%2Bl0enR8fPzmuXPn5sjt27ff8nq9bwiCYNpSJsPa2lqzqqr1AF7eJEDnOG7MaDSGCSHKRmFhYSGXTCZ%2FZd1u93dOp3NJEAS9ICqK4snlcm%2Fpuu4EQHaBAADRdf2gqqo1hJBllmUXCsLjx4%2BL7t69e4Ztamqaffjw4QepVOr5oUOHDKqqvqkoShAAvwfA1sVrmlataVqlqqqzvb29lnA43KwoymeEUoqenp7XdF3vW11dPX7s2DHi9XpfgfHPSiaTuHfvHjWbzQMMw7SfP39%2BkUSj0ZOU0qsA%2FEtLSwiHwygpKUFraysOHDiwL0Amk8Hg4CBWVlbQ3NwMi8UCAHFCyIesw%2BH43uFwuAwGg9lkMsHj8SCfzyMUCkFRFNhsNux2YDVNQzQaRSgUgsvlwtGjR2EyvZitbDbL9Pf3H2YDgcD8xMREk67rCZvN5iSEkLKyMrjdbsiyjJGREVgslh13NzU1hf7%2Bfui6jra2NlitVhBCQCmlo6OjoYGBASWbzX5BKKW4cuWKhRDyk67rJ4LBIFNRUbEeaHZ2FpFIBDabDS0tLSgqKipkiqGhITx58gTBYBBWq3XdZ25uDpFIhLIsO8jzfPuFCxeekTt37rQCuAqgfmVlBfF4HOXl5Thy5Ah4%2FsXgUUoRj8chyzIaGhoAALFYDB6PB36%2FH4S8OAH5fB4PHjzA%2FPw8%2FH4%2FSkpKACAB4CPW6%2FXeqKysrOI4rpjnedjtdmSzWUSjURgMBgiCAEIIrFYrHA4HxsfHsbi4iNbWVtjt9nWILMsYGhpCeXk5ampqYDQaC3AyPDxcSy5evPg2IaTL6XTO%2B3y%2BNkIIAwCKoiCRSEBVVTQ1Ne3Yo0wmg%2BHhYXAcB5%2FPB4PBUJBoMpkclGW5lFJ6mVBKIYpiMYDLHMedCgQCnCAI%2FoL1wsICEokEHA4H6uvr1ydQ13WMjY1hamoKPp8PgiBshE%2Fev38%2FoyjKLwA%2BlyTp%2BabbWxTFOgDfCIKAQCAQ4DiutNCjdDqNp0%2BfIhAIAABGRkZQWVkJl8u1Xj5N01Zjsdjw3NwcBfCxJEl%2FFmL%2F6z0SRZEAeJ8QIvp8vsWqqqqWgpbL5RCPxwEAfr9%2F%2FawAwPT0dDgejxfput4D4FtJkjYF3vGFFUWxHMCXRqPxcDAYtBYXF1dtZ5fNZmcikcijbDY7DuBTSZLmt7Pb9c8gimIbIeQrm82Wqaura2EYxggAlFI1Ho8PTk9PmymlnZIkhV4WZ0%2B%2FIFEUOQCdDMO8V19fn2NZ1hCLxaimaTcAdEuSpO4WY1%2F%2FOlEUnQC%2BBkABfCJJ0qO9%2Bv4NmO9xnZob3WcAAAAASUVORK5CYII%3D%29%3B%0Awidth%3A%2036px%3B%0Aheight%3A%2036px%3B%0A%7D%0A%2Eleaflet%2Dretina%20%2Eleaflet%2Dcontrol%2Dlayers%2Dtoggle%20%7B%0Abackground%2Dimage%3A%20url%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAbrwAAG68BXhqRHAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAArPSURBVGiB3Zp7TFvXHce%2F916%2FeBhCDInJwDjGBhvjQHi5SclaKRL5Z1Wl%2FrEq%2FWNr11TJmkpMw900pLVrplJ1cadFarp0zdZmmpZpf3SqNrUKfSnKgwI2sQPGBmNjAsUOxCW8bGzfe8%2F%2BSEAkMfa1A5m075%2F2%2Bf3O%2BZ7X595zLkUIwf%2BT6EdRSWdnp7izs1P8KOqitnqE3n%2F%2F%2FQMajeYZAPD7%2FR8fPXr00lbWt2WGTp48qdRoNC%2Fs2bNHXVhYyALA%2FPy86Pr16wG%2F3%2F%2Fhq6%2B%2BGtqKejfdUGdnJ6XT6Q4bDIZWjUaTNLnf76fcbvdlr9d7vqura1MbsKmGTp8%2BXadWqw%2Fv3bu3UCQS8anKsixLX7t2bT4QCJw%2Ffvy4c7PasCmGTpw4Ia%2BqqnrRZDIZSkpK2ExiZ2dnRYODg%2B7R0dE%2Fv%2Fbaa4sP25aHNnT27Nkf6HS6QwaD4aF2TLfbzXu93gtHjhz5z8PkydrQqVOnKtVq9Y%2Fq6uqUubm5GY3KRopEIiKn0xkKBAJ%2FbW9v92WTI2NDnZ2dYoPB8ILRaGwoKyvjsqk0naamphiXyzXgdrs%2F7OrqSmQSm5GhM2fOHNBoNM%2FU1dVJKYoSFEgIEcVisWYAkEql%2FRRFCRpNQgjldDpjfr%2F%2F42PHjglmlyBDJ0%2BeVO7evfsndXV1FatMEaJEIqGOx%2BMHCCFyAKAoalEikVwSi8UBoTnm5%2BdFTqdzYnx8%2FC9C2JXS0CpT9Hr9gcrKypTb8HrxPJ%2B%2FsrJygOf53cn%2Bp2l6XCaTXaJpekloTp%2FPR3s8nkvp2LWhoXfffbderVYfbmhoKEjHlPVtjcVidSzLNhFCUj67URSVEIlENqlU6gQgKD%2FLsvTAwMBCIBA4%2F8orrziS5r3f0IkTJ%2BQ6ne6IyWQy7NixQ%2FCCZFm2NB6PP8Hz%2FHahMQBA0%2FR3EonkokgkCgqNmZmZEQ8ODrq9Xu%2FZ%2B9l1j6EPPvjgKZ1Od6impoYSmpzneVksFtvHcZxBaEwyMQzjlkqlPTRNrwiNGR4eJl6v98JLL73079XfKEIITp06VVlRUfHj%2Bvr6nZkwJR6P6xOJxH5CiCxTA8lEUdSKWCy%2BKpFIPEJjIpGIyOFw3JyYmDjX3t7uo86dO3fUaDQ2lJeXCzbCcdz2WCz2BM%2Fzpdk1PbVomg5KpdKLDMN8JzRmcnJS5HK5Bhi9Xv9RcXHx7V27dqUd6rtMMcfj8YOEkIKHa3bKeuQsy9bwPC9mGCZEUVTaTWNsbKzQbrc%2FRXV0dBAAMYVCcfnpp5%2BeKC4uTmrsfqY8KqVj161bt2SffPJJRTgcbgUgZVpbW3sIIQei0Wij0%2BksmZubW9DpdEsUdWdf4Hk%2BPxqNHmRZtgWA9NFZWZOU4zgdy7LFd0crDgCEEHz66aelX3zxxfcjkUg9gAmapg8zV65c8fX09PwpHo%2FzhJC22dnZ2oGBARQUFCwVFBTUxOPxQ4QQxf%2FAyD0ihBSxLFtDCCFerzdy%2Fvz5PcFg8CAhRAqgSy6XP%2Ffmm2%2BO3LNtd3R0VFEU9R6AgyKRiNfr9fS%2BffsgFj%2BS8420SiQS6Onpgcfj4VmWpQF8SQh5%2BZ133hldLSNaH%2FDss8%2BGGYYJ3Lhxg9jtdnpoaAiTk5NoampCdXX1IzewXiMjI7DZbJifn4dMJqPNZjNRqVQBjuPC68utjhA1MDDwPIDfASgG7vSGw%2BHA2NgYAEClUmH%2F%2Fv0oKip6pEbm5uZw9epV3LhxAwCg1WpRX1%2B%2FftbcAvCLhoaGjwAQyuFwGDmOOwOgNVnCcDiMvr4%2BzM3NQSaTwWg0orm5GTS9tUd6PM%2Bjv78fLpcLKysrKCoqQktLCxSKDZfzZYZhjjFarfYfKpWqmabppAslNzcXWq0WMpkMwWAQU1NTCAQCyM%2FPx7Zt27bEzMTEBD7%2F%2FHP4fD5QFIWGhgaYzWbk5uZuGMNxXPHXX39tYkwm07nh4eGZ3Nxcz%2Fbt27%2BXrDBFUVAoFNBoNIhEIggGg%2FD5fLh9%2BzaUSuWmbRqRSAQXL15EX18flpeXoVKp8OSTT0KpVGIVI8nk8%2Fn6uru7xYuLi3WrHDr07bffmvx%2Bf295eTktkUiSwlMsFkOlUqGkpAQzMzMIBoPwer0AAKVS%2BVBmHA4HvvrqK4RCIeTl5aG1tRU1NTUpO2t5eXn6s88%2BGx4fHzcDmKVp%2BjBFCMEbb7whW1xc%2FBWAXwJgKysrbS0tLY9TFCXaKBnP8xgaGoLb7QbHcSgtLcW%2BffsyNhYKhdDT04NgMAiGYWAwGFBbW5tyjRJC2L6%2Bvis%2Bn68Jd3bqt%2BVy%2BVuvv%2F76yoYcysvLi5nNZmm6Bi4sLMBmsyEUCkEsFkOv1%2BOxxx5LOw0TiQS%2B%2BeYbeDweJBIJKJVKNDU1oaAg9SNiKBRCb28vu7y8LEISDt1jqLu7ezuAt0Oh0IsjIyNUPB5HeXk5mpubIZWmfuqZmJiA3W7HysoKCgsLU7LrPqagsbERFRUVKfPHYjH09%2FdjcnISEokE1dXVUCqV%2FwLQ3tbWNvmAoe7u7ucBnMRdDrEsC6%2FXu5bAZDKhqqoq5eJMxy4BTHlAhBCMjo5icHAQqx2s0%2BkgEq2thiUAvwFwqq2tjaUuXLhQA%2BCPAL6fLOHCwgJcLhcWFxeFsADAg%2Byqra0FAAwNDQllygN55HI5jEZjqil5HcBPmerq6r%2Ft2LFjL8MwOclKSaVSlJWVQSKRIBQKwefzIRqNYufOnRsu3GTsmp6eFswUlmVht9ths9mQSCRQVVUFo9EImWzjF2OO4%2BROp1NPdXR0JAAsaLVat0ajeXzDCNyZxx6PBzdv3kROTg727t0LtVqdKgTRaBR2ux0A0NjYiJycpP22pkAggGvXrq11ml6vT7t%2Bp6en%2B10uVykhpIzq6OhoA%2FAegEqxWOxsamrKl8vllakShMNhDA8Pr1VqNpuRn5%2BfstJ0WlpaQm9v71pn1dTUpJ2S0Wh02mazTUajUTMAH4CXKUIILBaLDMAqh%2BiSkpIre%2FbsaWEYZsN5wfM8%2FH4%2FAoEAKIqCwWCAyWRKuWkkEyEEg4ODcLvdIIRArVZDo9Gk5ZDb7b4yNTW1xiEAb1mt1ns5ZLFYqnBntA5SFDVlNBqDu3btak7VoOXlZXg8HoTDYeTn56OlpUUwXEOhEPr6%2BrC0tASFQgG9Xo%2B8vLyUMeFweNDhcEg5jqsC8CWAl61Wa3IOrTP2HIDfA9iZk5PT29TUVJ6Tk7MrXeNGRkYghF0bMCWlkUQiMWe324cWFhZaAcwA%2BLnVav37%2FeU2PAq2WCyFALoAHAMQLSsrsxkMhpSPQ%2BnYJYApSeX3%2By%2BPjY3VANgG4AyATqvVOp%2BsbNrbB4vF0nw3SQPDMKP19fUxhUJhShWTjF0AMmEKAGBxcdFns9mWEolEHYABAMesVmt%2FqhhB1ykWi4UBcBzAbwHICwoKLjc2NtaKxeINX18JIZicnMTY2Bh4%2Fs6xGk3T0Gq1KC8vT7l5cBwXuX79et%2Fs7OzjAKIAfg3gtNVqTXvBltGFl8ViKQXwBwA%2FBPCdVqsd1mg0Sd90V7XKLgAZMwXAPwH8zGq1Cj7Iz%2BqO1WKxZMyudErGFKvV2p1pnqwvjbNhVzKlYko27Xroa%2F1s2LWqdEzJRpv2JUkm7BLKlGy0qZ%2FGCGFXJkzJRlvyNVYydkkkktxMmZKNtuzzsvvZBYADEEEGTMlGW%2F4B4Dp2ARkyJRv9F9vsxWD%2F43R9AAAAAElFTkSuQmCC%29%3B%0Abackground%2Dsize%3A%2026px%2026px%3B%0A%7D%0A%2Eleaflet%2Dtouch%20%2Eleaflet%2Dcontrol%2Dlayers%2Dtoggle%20%7B%0Awidth%3A%2044px%3B%0Aheight%3A%2044px%3B%0A%7D%0A%2Eleaflet%2Dcontrol%2Dlayers%20%2Eleaflet%2Dcontrol%2Dlayers%2Dlist%2C%0A%2Eleaflet%2Dcontrol%2Dlayers%2Dexpanded%20%2Eleaflet%2Dcontrol%2Dlayers%2Dtoggle%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%2Eleaflet%2Dcontrol%2Dlayers%2Dexpanded%20%2Eleaflet%2Dcontrol%2Dlayers%2Dlist%20%7B%0Adisplay%3A%20block%3B%0Aposition%3A%20relative%3B%0A%7D%0A%2Eleaflet%2Dcontrol%2Dlayers%2Dexpanded%20%7B%0Apadding%3A%206px%2010px%206px%206px%3B%0Acolor%3A%20%23333%3B%0Abackground%3A%20%23fff%3B%0A%7D%0A%2Eleaflet%2Dcontrol%2Dlayers%2Dselector%20%7B%0Amargin%2Dtop%3A%202px%3B%0Aposition%3A%20relative%3B%0Atop%3A%201px%3B%0A%7D%0A%2Eleaflet%2Dcontrol%2Dlayers%20label%20%7B%0Adisplay%3A%20block%3B%0A%7D%0A%2Eleaflet%2Dcontrol%2Dlayers%2Dseparator%20%7B%0Aheight%3A%200%3B%0Aborder%2Dtop%3A%201px%20solid%20%23ddd%3B%0Amargin%3A%205px%20%2D10px%205px%20%2D6px%3B%0A%7D%0A%0A%2Eleaflet%2Dcontainer%20%2Eleaflet%2Dcontrol%2Dattribution%20%7B%0Abackground%3A%20%23fff%3B%0Abackground%3A%20rgba%28255%2C%20255%2C%20255%2C%200%2E7%29%3B%0Amargin%3A%200%3B%0A%7D%0A%2Eleaflet%2Dcontrol%2Dattribution%2C%0A%2Eleaflet%2Dcontrol%2Dscale%2Dline%20%7B%0Apadding%3A%200%205px%3B%0Acolor%3A%20%23333%3B%0A%7D%0A%2Eleaflet%2Dcontrol%2Dattribution%20a%20%7B%0Atext%2Ddecoration%3A%20none%3B%0A%7D%0A%2Eleaflet%2Dcontrol%2Dattribution%20a%3Ahover%20%7B%0Atext%2Ddecoration%3A%20underline%3B%0A%7D%0A%2Eleaflet%2Dcontainer%20%2Eleaflet%2Dcontrol%2Dattribution%2C%0A%2Eleaflet%2Dcontainer%20%2Eleaflet%2Dcontrol%2Dscale%20%7B%0Afont%2Dsize%3A%2011px%3B%0A%7D%0A%2Eleaflet%2Dleft%20%2Eleaflet%2Dcontrol%2Dscale%20%7B%0Amargin%2Dleft%3A%205px%3B%0A%7D%0A%2Eleaflet%2Dbottom%20%2Eleaflet%2Dcontrol%2Dscale%20%7B%0Amargin%2Dbottom%3A%205px%3B%0A%7D%0A%2Eleaflet%2Dcontrol%2Dscale%2Dline%20%7B%0Aborder%3A%202px%20solid%20%23777%3B%0Aborder%2Dtop%3A%20none%3B%0Aline%2Dheight%3A%201%2E1%3B%0Apadding%3A%202px%205px%201px%3B%0Afont%2Dsize%3A%2011px%3B%0Awhite%2Dspace%3A%20nowrap%3B%0Aoverflow%3A%20hidden%3B%0A%2Dmoz%2Dbox%2Dsizing%3A%20content%2Dbox%3B%0Abox%2Dsizing%3A%20content%2Dbox%3B%0Abackground%3A%20%23fff%3B%0Abackground%3A%20rgba%28255%2C%20255%2C%20255%2C%200%2E5%29%3B%0A%7D%0A%2Eleaflet%2Dcontrol%2Dscale%2Dline%3Anot%28%3Afirst%2Dchild%29%20%7B%0Aborder%2Dtop%3A%202px%20solid%20%23777%3B%0Aborder%2Dbottom%3A%20none%3B%0Amargin%2Dtop%3A%20%2D2px%3B%0A%7D%0A%2Eleaflet%2Dcontrol%2Dscale%2Dline%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%20%7B%0Aborder%2Dbottom%3A%202px%20solid%20%23777%3B%0A%7D%0A%2Eleaflet%2Dtouch%20%2Eleaflet%2Dcontrol%2Dattribution%2C%0A%2Eleaflet%2Dtouch%20%2Eleaflet%2Dcontrol%2Dlayers%2C%0A%2Eleaflet%2Dtouch%20%2Eleaflet%2Dbar%20%7B%0Abox%2Dshadow%3A%20none%3B%0A%7D%0A%2Eleaflet%2Dtouch%20%2Eleaflet%2Dcontrol%2Dlayers%2C%0A%2Eleaflet%2Dtouch%20%2Eleaflet%2Dbar%20%7B%0Aborder%3A%202px%20solid%20rgba%280%2C0%2C0%2C0%2E2%29%3B%0Abackground%2Dclip%3A%20padding%2Dbox%3B%0A%7D%0A%0A%2Eleaflet%2Dpopup%20%7B%0Aposition%3A%20absolute%3B%0Atext%2Dalign%3A%20center%3B%0A%7D%0A%2Eleaflet%2Dpopup%2Dcontent%2Dwrapper%20%7B%0Apadding%3A%201px%3B%0Atext%2Dalign%3A%20left%3B%0Aborder%2Dradius%3A%2012px%3B%0A%7D%0A%2Eleaflet%2Dpopup%2Dcontent%20%7B%0Amargin%3A%2013px%2019px%3B%0Aline%2Dheight%3A%201%2E4%3B%0A%7D%0A%2Eleaflet%2Dpopup%2Dcontent%20p%20%7B%0Amargin%3A%2018px%200%3B%0A%7D%0A%2Eleaflet%2Dpopup%2Dtip%2Dcontainer%20%7B%0Amargin%3A%200%20auto%3B%0Awidth%3A%2040px%3B%0Aheight%3A%2020px%3B%0Aposition%3A%20relative%3B%0Aoverflow%3A%20hidden%3B%0A%7D%0A%2Eleaflet%2Dpopup%2Dtip%20%7B%0Awidth%3A%2017px%3B%0Aheight%3A%2017px%3B%0Apadding%3A%201px%3B%0Amargin%3A%20%2D10px%20auto%200%3B%0A%2Dwebkit%2Dtransform%3A%20rotate%2845deg%29%3B%0A%2Dmoz%2Dtransform%3A%20rotate%2845deg%29%3B%0A%2Dms%2Dtransform%3A%20rotate%2845deg%29%3B%0A%2Do%2Dtransform%3A%20rotate%2845deg%29%3B%0Atransform%3A%20rotate%2845deg%29%3B%0A%7D%0A%2Eleaflet%2Dpopup%2Dcontent%2Dwrapper%2C%0A%2Eleaflet%2Dpopup%2Dtip%20%7B%0Abackground%3A%20white%3B%0Abox%2Dshadow%3A%200%203px%2014px%20rgba%280%2C0%2C0%2C0%2E4%29%3B%0A%7D%0A%2Eleaflet%2Dcontainer%20a%2Eleaflet%2Dpopup%2Dclose%2Dbutton%20%7B%0Aposition%3A%20absolute%3B%0Atop%3A%200%3B%0Aright%3A%200%3B%0Apadding%3A%204px%204px%200%200%3B%0Atext%2Dalign%3A%20center%3B%0Awidth%3A%2018px%3B%0Aheight%3A%2014px%3B%0Afont%3A%2016px%2F14px%20Tahoma%2C%20Verdana%2C%20sans%2Dserif%3B%0Acolor%3A%20%23c3c3c3%3B%0Atext%2Ddecoration%3A%20none%3B%0Afont%2Dweight%3A%20bold%3B%0Abackground%3A%20transparent%3B%0A%7D%0A%2Eleaflet%2Dcontainer%20a%2Eleaflet%2Dpopup%2Dclose%2Dbutton%3Ahover%20%7B%0Acolor%3A%20%23999%3B%0A%7D%0A%2Eleaflet%2Dpopup%2Dscrolled%20%7B%0Aoverflow%3A%20auto%3B%0Aborder%2Dbottom%3A%201px%20solid%20%23ddd%3B%0Aborder%2Dtop%3A%201px%20solid%20%23ddd%3B%0A%7D%0A%2Eleaflet%2Doldie%20%2Eleaflet%2Dpopup%2Dcontent%2Dwrapper%20%7B%0Azoom%3A%201%3B%0A%7D%0A%2Eleaflet%2Doldie%20%2Eleaflet%2Dpopup%2Dtip%20%7B%0Awidth%3A%2024px%3B%0Amargin%3A%200%20auto%3B%0A%2Dms%2Dfilter%3A%20%22progid%3ADXImageTransform%2EMicrosoft%2EMatrix%28M11%3D0%2E70710678%2C%20M12%3D0%2E70710678%2C%20M21%3D%2D0%2E70710678%2C%20M22%3D0%2E70710678%29%22%3B%0Afilter%3A%20progid%3ADXImageTransform%2EMicrosoft%2EMatrix%28M11%3D0%2E70710678%2C%20M12%3D0%2E70710678%2C%20M21%3D%2D0%2E70710678%2C%20M22%3D0%2E70710678%29%3B%0A%7D%0A%2Eleaflet%2Doldie%20%2Eleaflet%2Dpopup%2Dtip%2Dcontainer%20%7B%0Amargin%2Dtop%3A%20%2D1px%3B%0A%7D%0A%2Eleaflet%2Doldie%20%2Eleaflet%2Dcontrol%2Dzoom%2C%0A%2Eleaflet%2Doldie%20%2Eleaflet%2Dcontrol%2Dlayers%2C%0A%2Eleaflet%2Doldie%20%2Eleaflet%2Dpopup%2Dcontent%2Dwrapper%2C%0A%2Eleaflet%2Doldie%20%2Eleaflet%2Dpopup%2Dtip%20%7B%0Aborder%3A%201px%20solid%20%23999%3B%0A%7D%0A%0A%2Eleaflet%2Ddiv%2Dicon%20%7B%0Abackground%3A%20%23fff%3B%0Aborder%3A%201px%20solid%20%23666%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,LyoKIExlYWZsZXQsIGEgSmF2YVNjcmlwdCBsaWJyYXJ5IGZvciBtb2JpbGUtZnJpZW5kbHkgaW50ZXJhY3RpdmUgbWFwcy4gaHR0cDovL2xlYWZsZXRqcy5jb20KIChjKSAyMDEwLTIwMTMsIFZsYWRpbWlyIEFnYWZvbmtpbgogKGMpIDIwMTAtMjAxMSwgQ2xvdWRNYWRlCiovCiFmdW5jdGlvbih0LGUsaSl7dmFyIG49dC5MLG89e307by52ZXJzaW9uPSIwLjcuMyIsIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9bzoiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUobyksby5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHQuTD1uLHRoaXN9LHQuTD1vLG8uVXRpbD17ZXh0ZW5kOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixvLHM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2ZvcihpPTAsbj1zLmxlbmd0aDtuPmk7aSsrKXtvPXNbaV18fHt9O2ZvcihlIGluIG8pby5oYXNPd25Qcm9wZXJ0eShlKSYmKHRbZV09b1tlXSl9cmV0dXJuIHR9LGJpbmQ6ZnVuY3Rpb24odCxlKXt2YXIgaT1hcmd1bWVudHMubGVuZ3RoPjI/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpOm51bGw7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkoZSxpfHxhcmd1bWVudHMpfX0sc3RhbXA6ZnVuY3Rpb24oKXt2YXIgdD0wLGU9Il9sZWFmbGV0X2lkIjtyZXR1cm4gZnVuY3Rpb24oaSl7cmV0dXJuIGlbZV09aVtlXXx8Kyt0LGlbZV19fSgpLGludm9rZUVhY2g6ZnVuY3Rpb24odCxlLGkpe3ZhciBuLG87aWYoIm9iamVjdCI9PXR5cGVvZiB0KXtvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywzKTtmb3IobiBpbiB0KWUuYXBwbHkoaSxbbix0W25dXS5jb25jYXQobykpO3JldHVybiEwfXJldHVybiExfSxsaW1pdEV4ZWNCeUludGVydmFsOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixvO3JldHVybiBmdW5jdGlvbiBzKCl7dmFyIGE9YXJndW1lbnRzO3JldHVybiBuP3ZvaWQobz0hMCk6KG49ITAsc2V0VGltZW91dChmdW5jdGlvbigpe249ITEsbyYmKHMuYXBwbHkoaSxhKSxvPSExKX0sZSksdm9pZCB0LmFwcGx5KGksYSkpfX0sZmFsc2VGbjpmdW5jdGlvbigpe3JldHVybiExfSxmb3JtYXROdW06ZnVuY3Rpb24odCxlKXt2YXIgaT1NYXRoLnBvdygxMCxlfHw1KTtyZXR1cm4gTWF0aC5yb3VuZCh0KmkpL2l9LHRyaW06ZnVuY3Rpb24odCl7cmV0dXJuIHQudHJpbT90LnRyaW0oKTp0LnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0sc3BsaXRXb3JkczpmdW5jdGlvbih0KXtyZXR1cm4gby5VdGlsLnRyaW0odCkuc3BsaXQoL1xzKy8pfSxzZXRPcHRpb25zOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQub3B0aW9ucz1vLmV4dGVuZCh7fSx0Lm9wdGlvbnMsZSksdC5vcHRpb25zfSxnZXRQYXJhbVN0cmluZzpmdW5jdGlvbih0LGUsaSl7dmFyIG49W107Zm9yKHZhciBvIGluIHQpbi5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChpP28udG9VcHBlckNhc2UoKTpvKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KHRbb10pKTtyZXR1cm4oZSYmLTEhPT1lLmluZGV4T2YoIj8iKT8iJiI6Ij8iKStuLmpvaW4oIiYiKX0sdGVtcGxhdGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5yZXBsYWNlKC9ceyAqKFtcd19dKykgKlx9L2csZnVuY3Rpb24odCxuKXt2YXIgbz1lW25dO2lmKG89PT1pKXRocm93IG5ldyBFcnJvcigiTm8gdmFsdWUgcHJvdmlkZWQgZm9yIHZhcmlhYmxlICIrdCk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG8mJihvPW8oZSkpLG99KX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSxlbXB0eUltYWdlVXJsOiJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUFEL0FDd0FBQUFBQVFBQkFBQUNBRHM9In0sZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3ZhciBpLG4sbz1bIndlYmtpdCIsIm1veiIsIm8iLCJtcyJdO2ZvcihpPTA7aTxvLmxlbmd0aCYmIW47aSsrKW49dFtvW2ldK2VdO3JldHVybiBufWZ1bmN0aW9uIGkoZSl7dmFyIGk9K25ldyBEYXRlLG89TWF0aC5tYXgoMCwxNi0oaS1uKSk7cmV0dXJuIG49aStvLHQuc2V0VGltZW91dChlLG8pfXZhciBuPTAscz10LnJlcXVlc3RBbmltYXRpb25GcmFtZXx8ZSgiUmVxdWVzdEFuaW1hdGlvbkZyYW1lIil8fGksYT10LmNhbmNlbEFuaW1hdGlvbkZyYW1lfHxlKCJDYW5jZWxBbmltYXRpb25GcmFtZSIpfHxlKCJDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiKXx8ZnVuY3Rpb24oZSl7dC5jbGVhclRpbWVvdXQoZSl9O28uVXRpbC5yZXF1ZXN0QW5pbUZyYW1lPWZ1bmN0aW9uKGUsbixhLHIpe3JldHVybiBlPW8uYmluZChlLG4pLGEmJnM9PT1pP3ZvaWQgZSgpOnMuY2FsbCh0LGUscil9LG8uVXRpbC5jYW5jZWxBbmltRnJhbWU9ZnVuY3Rpb24oZSl7ZSYmYS5jYWxsKHQsZSl9fSgpLG8uZXh0ZW5kPW8uVXRpbC5leHRlbmQsby5iaW5kPW8uVXRpbC5iaW5kLG8uc3RhbXA9by5VdGlsLnN0YW1wLG8uc2V0T3B0aW9ucz1vLlV0aWwuc2V0T3B0aW9ucyxvLkNsYXNzPWZ1bmN0aW9uKCl7fSxvLkNsYXNzLmV4dGVuZD1mdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbigpe3RoaXMuaW5pdGlhbGl6ZSYmdGhpcy5pbml0aWFsaXplLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9pbml0SG9va3MmJnRoaXMuY2FsbEluaXRIb29rcygpfSxpPWZ1bmN0aW9uKCl7fTtpLnByb3RvdHlwZT10aGlzLnByb3RvdHlwZTt2YXIgbj1uZXcgaTtuLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGU9bjtmb3IodmFyIHMgaW4gdGhpcyl0aGlzLmhhc093blByb3BlcnR5KHMpJiYicHJvdG90eXBlIiE9PXMmJihlW3NdPXRoaXNbc10pO3Quc3RhdGljcyYmKG8uZXh0ZW5kKGUsdC5zdGF0aWNzKSxkZWxldGUgdC5zdGF0aWNzKSx0LmluY2x1ZGVzJiYoby5VdGlsLmV4dGVuZC5hcHBseShudWxsLFtuXS5jb25jYXQodC5pbmNsdWRlcykpLGRlbGV0ZSB0LmluY2x1ZGVzKSx0Lm9wdGlvbnMmJm4ub3B0aW9ucyYmKHQub3B0aW9ucz1vLmV4dGVuZCh7fSxuLm9wdGlvbnMsdC5vcHRpb25zKSksby5leHRlbmQobix0KSxuLl9pbml0SG9va3M9W107dmFyIGE9dGhpcztyZXR1cm4gZS5fX3N1cGVyX189YS5wcm90b3R5cGUsbi5jYWxsSW5pdEhvb2tzPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2luaXRIb29rc0NhbGxlZCl7YS5wcm90b3R5cGUuY2FsbEluaXRIb29rcyYmYS5wcm90b3R5cGUuY2FsbEluaXRIb29rcy5jYWxsKHRoaXMpLHRoaXMuX2luaXRIb29rc0NhbGxlZD0hMDtmb3IodmFyIHQ9MCxlPW4uX2luaXRIb29rcy5sZW5ndGg7ZT50O3QrKyluLl9pbml0SG9va3NbdF0uY2FsbCh0aGlzKX19LGV9LG8uQ2xhc3MuaW5jbHVkZT1mdW5jdGlvbih0KXtvLmV4dGVuZCh0aGlzLnByb3RvdHlwZSx0KX0sby5DbGFzcy5tZXJnZU9wdGlvbnM9ZnVuY3Rpb24odCl7by5leHRlbmQodGhpcy5wcm90b3R5cGUub3B0aW9ucyx0KX0sby5DbGFzcy5hZGRJbml0SG9vaz1mdW5jdGlvbih0KXt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSksaT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmZ1bmN0aW9uKCl7dGhpc1t0XS5hcHBseSh0aGlzLGUpfTt0aGlzLnByb3RvdHlwZS5faW5pdEhvb2tzPXRoaXMucHJvdG90eXBlLl9pbml0SG9va3N8fFtdLHRoaXMucHJvdG90eXBlLl9pbml0SG9va3MucHVzaChpKX07dmFyIHM9Il9sZWFmbGV0X2V2ZW50cyI7by5NaXhpbj17fSxvLk1peGluLkV2ZW50cz17YWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbih0LGUsaSl7aWYoby5VdGlsLmludm9rZUVhY2godCx0aGlzLmFkZEV2ZW50TGlzdGVuZXIsdGhpcyxlLGkpKXJldHVybiB0aGlzO3ZhciBuLGEscixoLGwsdSxjLGQ9dGhpc1tzXT10aGlzW3NdfHx7fSxwPWkmJmkhPT10aGlzJiZvLnN0YW1wKGkpO2Zvcih0PW8uVXRpbC5zcGxpdFdvcmRzKHQpLG49MCxhPXQubGVuZ3RoO2E+bjtuKyspcj17YWN0aW9uOmUsY29udGV4dDppfHx0aGlzfSxoPXRbbl0scD8obD1oKyJfaWR4Iix1PWwrIl9sZW4iLGM9ZFtsXT1kW2xdfHx7fSxjW3BdfHwoY1twXT1bXSxkW3VdPShkW3VdfHwwKSsxKSxjW3BdLnB1c2gocikpOihkW2hdPWRbaF18fFtdLGRbaF0ucHVzaChyKSk7cmV0dXJuIHRoaXN9LGhhc0V2ZW50TGlzdGVuZXJzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXNbc107cmV0dXJuISFlJiYodCBpbiBlJiZlW3RdLmxlbmd0aD4wfHx0KyJfaWR4ImluIGUmJmVbdCsiX2lkeF9sZW4iXT4wKX0scmVtb3ZlRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbih0LGUsaSl7aWYoIXRoaXNbc10pcmV0dXJuIHRoaXM7aWYoIXQpcmV0dXJuIHRoaXMuY2xlYXJBbGxFdmVudExpc3RlbmVycygpO2lmKG8uVXRpbC5pbnZva2VFYWNoKHQsdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyLHRoaXMsZSxpKSlyZXR1cm4gdGhpczt2YXIgbixhLHIsaCxsLHUsYyxkLHAsXz10aGlzW3NdLG09aSYmaSE9PXRoaXMmJm8uc3RhbXAoaSk7Zm9yKHQ9by5VdGlsLnNwbGl0V29yZHModCksbj0wLGE9dC5sZW5ndGg7YT5uO24rKylpZihyPXRbbl0sdT1yKyJfaWR4IixjPXUrIl9sZW4iLGQ9X1t1XSxlKXtpZihoPW0mJmQ/ZFttXTpfW3JdKXtmb3IobD1oLmxlbmd0aC0xO2w+PTA7bC0tKWhbbF0uYWN0aW9uIT09ZXx8aSYmaFtsXS5jb250ZXh0IT09aXx8KHA9aC5zcGxpY2UobCwxKSxwWzBdLmFjdGlvbj1vLlV0aWwuZmFsc2VGbik7aSYmZCYmMD09PWgubGVuZ3RoJiYoZGVsZXRlIGRbbV0sX1tjXS0tKX19ZWxzZSBkZWxldGUgX1tyXSxkZWxldGUgX1t1XSxkZWxldGUgX1tjXTtyZXR1cm4gdGhpc30sY2xlYXJBbGxFdmVudExpc3RlbmVyczpmdW5jdGlvbigpe3JldHVybiBkZWxldGUgdGhpc1tzXSx0aGlzfSxmaXJlRXZlbnQ6ZnVuY3Rpb24odCxlKXtpZighdGhpcy5oYXNFdmVudExpc3RlbmVycyh0KSlyZXR1cm4gdGhpczt2YXIgaSxuLGEscixoLGw9by5VdGlsLmV4dGVuZCh7fSxlLHt0eXBlOnQsdGFyZ2V0OnRoaXN9KSx1PXRoaXNbc107aWYodVt0XSlmb3IoaT11W3RdLnNsaWNlKCksbj0wLGE9aS5sZW5ndGg7YT5uO24rKylpW25dLmFjdGlvbi5jYWxsKGlbbl0uY29udGV4dCxsKTtyPXVbdCsiX2lkeCJdO2ZvcihoIGluIHIpaWYoaT1yW2hdLnNsaWNlKCkpZm9yKG49MCxhPWkubGVuZ3RoO2E+bjtuKyspaVtuXS5hY3Rpb24uY2FsbChpW25dLmNvbnRleHQsbCk7cmV0dXJuIHRoaXN9LGFkZE9uZVRpbWVFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHQsZSxpKXtpZihvLlV0aWwuaW52b2tlRWFjaCh0LHRoaXMuYWRkT25lVGltZUV2ZW50TGlzdGVuZXIsdGhpcyxlLGkpKXJldHVybiB0aGlzO3ZhciBuPW8uYmluZChmdW5jdGlvbigpe3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGUsaSkucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4saSl9LHRoaXMpO3JldHVybiB0aGlzLmFkZEV2ZW50TGlzdGVuZXIodCxlLGkpLmFkZEV2ZW50TGlzdGVuZXIodCxuLGkpfX0sby5NaXhpbi5FdmVudHMub249by5NaXhpbi5FdmVudHMuYWRkRXZlbnRMaXN0ZW5lcixvLk1peGluLkV2ZW50cy5vZmY9by5NaXhpbi5FdmVudHMucmVtb3ZlRXZlbnRMaXN0ZW5lcixvLk1peGluLkV2ZW50cy5vbmNlPW8uTWl4aW4uRXZlbnRzLmFkZE9uZVRpbWVFdmVudExpc3RlbmVyLG8uTWl4aW4uRXZlbnRzLmZpcmU9by5NaXhpbi5FdmVudHMuZmlyZUV2ZW50LGZ1bmN0aW9uKCl7dmFyIG49IkFjdGl2ZVhPYmplY3QiaW4gdCxzPW4mJiFlLmFkZEV2ZW50TGlzdGVuZXIsYT1uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkscj0tMSE9PWEuaW5kZXhPZigid2Via2l0IiksaD0tMSE9PWEuaW5kZXhPZigiY2hyb21lIiksbD0tMSE9PWEuaW5kZXhPZigicGhhbnRvbSIpLHU9LTEhPT1hLmluZGV4T2YoImFuZHJvaWQiKSxjPS0xIT09YS5zZWFyY2goImFuZHJvaWQgWzIzXSIpLGQ9LTEhPT1hLmluZGV4T2YoImdlY2tvIikscD10eXBlb2Ygb3JpZW50YXRpb24hPWkrIiIsXz10Lm5hdmlnYXRvciYmdC5uYXZpZ2F0b3IubXNQb2ludGVyRW5hYmxlZCYmdC5uYXZpZ2F0b3IubXNNYXhUb3VjaFBvaW50cyYmIXQuUG9pbnRlckV2ZW50LG09dC5Qb2ludGVyRXZlbnQmJnQubmF2aWdhdG9yLnBvaW50ZXJFbmFibGVkJiZ0Lm5hdmlnYXRvci5tYXhUb3VjaFBvaW50c3x8XyxmPSJkZXZpY2VQaXhlbFJhdGlvImluIHQmJnQuZGV2aWNlUGl4ZWxSYXRpbz4xfHwibWF0Y2hNZWRpYSJpbiB0JiZ0Lm1hdGNoTWVkaWEoIihtaW4tcmVzb2x1dGlvbjoxNDRkcGkpIikmJnQubWF0Y2hNZWRpYSgiKG1pbi1yZXNvbHV0aW9uOjE0NGRwaSkiKS5tYXRjaGVzLGc9ZS5kb2N1bWVudEVsZW1lbnQsdj1uJiYidHJhbnNpdGlvbiJpbiBnLnN0eWxlLHk9IldlYktpdENTU01hdHJpeCJpbiB0JiYibTExImluIG5ldyB0LldlYktpdENTU01hdHJpeCYmIWMsUD0iTW96UGVyc3BlY3RpdmUiaW4gZy5zdHlsZSxMPSJPVHJhbnNpdGlvbiJpbiBnLnN0eWxlLHg9IXQuTF9ESVNBQkxFXzNEJiYodnx8eXx8UHx8TCkmJiFsLHc9IXQuTF9OT19UT1VDSCYmIWwmJmZ1bmN0aW9uKCl7dmFyIHQ9Im9udG91Y2hzdGFydCI7aWYobXx8dCBpbiBnKXJldHVybiEwO3ZhciBpPWUuY3JlYXRlRWxlbWVudCgiZGl2Iiksbj0hMTtyZXR1cm4gaS5zZXRBdHRyaWJ1dGU/KGkuc2V0QXR0cmlidXRlKHQsInJldHVybjsiKSwiZnVuY3Rpb24iPT10eXBlb2YgaVt0XSYmKG49ITApLGkucmVtb3ZlQXR0cmlidXRlKHQpLGk9bnVsbCxuKTohMX0oKTtvLkJyb3dzZXI9e2llOm4saWVsdDk6cyx3ZWJraXQ6cixnZWNrbzpkJiYhciYmIXQub3BlcmEmJiFuLGFuZHJvaWQ6dSxhbmRyb2lkMjM6YyxjaHJvbWU6aCxpZTNkOnYsd2Via2l0M2Q6eSxnZWNrbzNkOlAsb3BlcmEzZDpMLGFueTNkOngsbW9iaWxlOnAsbW9iaWxlV2Via2l0OnAmJnIsbW9iaWxlV2Via2l0M2Q6cCYmeSxtb2JpbGVPcGVyYTpwJiZ0Lm9wZXJhLHRvdWNoOncsbXNQb2ludGVyOl8scG9pbnRlcjptLHJldGluYTpmfX0oKSxvLlBvaW50PWZ1bmN0aW9uKHQsZSxpKXt0aGlzLng9aT9NYXRoLnJvdW5kKHQpOnQsdGhpcy55PWk/TWF0aC5yb3VuZChlKTplfSxvLlBvaW50LnByb3RvdHlwZT17Y2xvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG8uUG9pbnQodGhpcy54LHRoaXMueSl9LGFkZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9hZGQoby5wb2ludCh0KSl9LF9hZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueCs9dC54LHRoaXMueSs9dC55LHRoaXN9LHN1YnRyYWN0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuX3N1YnRyYWN0KG8ucG9pbnQodCkpfSxfc3VidHJhY3Q6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueC09dC54LHRoaXMueS09dC55LHRoaXN9LGRpdmlkZUJ5OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuX2RpdmlkZUJ5KHQpfSxfZGl2aWRlQnk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueC89dCx0aGlzLnkvPXQsdGhpc30sbXVsdGlwbHlCeTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9tdWx0aXBseUJ5KHQpfSxfbXVsdGlwbHlCeTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54Kj10LHRoaXMueSo9dCx0aGlzfSxyb3VuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuX3JvdW5kKCl9LF9yb3VuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpLHRoaXMueT1NYXRoLnJvdW5kKHRoaXMueSksdGhpc30sZmxvb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9mbG9vcigpfSxfZmxvb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy54PU1hdGguZmxvb3IodGhpcy54KSx0aGlzLnk9TWF0aC5mbG9vcih0aGlzLnkpLHRoaXN9LGRpc3RhbmNlVG86ZnVuY3Rpb24odCl7dD1vLnBvaW50KHQpO3ZhciBlPXQueC10aGlzLngsaT10LnktdGhpcy55O3JldHVybiBNYXRoLnNxcnQoZSplK2kqaSl9LGVxdWFsczpmdW5jdGlvbih0KXtyZXR1cm4gdD1vLnBvaW50KHQpLHQueD09PXRoaXMueCYmdC55PT09dGhpcy55fSxjb250YWluczpmdW5jdGlvbih0KXtyZXR1cm4gdD1vLnBvaW50KHQpLE1hdGguYWJzKHQueCk8PU1hdGguYWJzKHRoaXMueCkmJk1hdGguYWJzKHQueSk8PU1hdGguYWJzKHRoaXMueSl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIlBvaW50KCIrby5VdGlsLmZvcm1hdE51bSh0aGlzLngpKyIsICIrby5VdGlsLmZvcm1hdE51bSh0aGlzLnkpKyIpIn19LG8ucG9pbnQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0IGluc3RhbmNlb2Ygby5Qb2ludD90Om8uVXRpbC5pc0FycmF5KHQpP25ldyBvLlBvaW50KHRbMF0sdFsxXSk6dD09PWl8fG51bGw9PT10P3Q6bmV3IG8uUG9pbnQodCxlLG4pfSxvLkJvdW5kcz1mdW5jdGlvbih0LGUpe2lmKHQpZm9yKHZhciBpPWU/W3QsZV06dCxuPTAsbz1pLmxlbmd0aDtvPm47bisrKXRoaXMuZXh0ZW5kKGlbbl0pfSxvLkJvdW5kcy5wcm90b3R5cGU9e2V4dGVuZDpmdW5jdGlvbih0KXtyZXR1cm4gdD1vLnBvaW50KHQpLHRoaXMubWlufHx0aGlzLm1heD8odGhpcy5taW4ueD1NYXRoLm1pbih0LngsdGhpcy5taW4ueCksdGhpcy5tYXgueD1NYXRoLm1heCh0LngsdGhpcy5tYXgueCksdGhpcy5taW4ueT1NYXRoLm1pbih0LnksdGhpcy5taW4ueSksdGhpcy5tYXgueT1NYXRoLm1heCh0LnksdGhpcy5tYXgueSkpOih0aGlzLm1pbj10LmNsb25lKCksdGhpcy5tYXg9dC5jbG9uZSgpKSx0aGlzfSxnZXRDZW50ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBvLlBvaW50KCh0aGlzLm1pbi54K3RoaXMubWF4LngpLzIsKHRoaXMubWluLnkrdGhpcy5tYXgueSkvMix0KX0sZ2V0Qm90dG9tTGVmdDpmdW5jdGlvbigpe3JldHVybiBuZXcgby5Qb2ludCh0aGlzLm1pbi54LHRoaXMubWF4LnkpfSxnZXRUb3BSaWdodDpmdW5jdGlvbigpe3JldHVybiBuZXcgby5Qb2ludCh0aGlzLm1heC54LHRoaXMubWluLnkpfSxnZXRTaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF4LnN1YnRyYWN0KHRoaXMubWluKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7dmFyIGUsaTtyZXR1cm4gdD0ibnVtYmVyIj09dHlwZW9mIHRbMF18fHQgaW5zdGFuY2VvZiBvLlBvaW50P28ucG9pbnQodCk6by5ib3VuZHModCksdCBpbnN0YW5jZW9mIG8uQm91bmRzPyhlPXQubWluLGk9dC5tYXgpOmU9aT10LGUueD49dGhpcy5taW4ueCYmaS54PD10aGlzLm1heC54JiZlLnk+PXRoaXMubWluLnkmJmkueTw9dGhpcy5tYXgueX0saW50ZXJzZWN0czpmdW5jdGlvbih0KXt0PW8uYm91bmRzKHQpO3ZhciBlPXRoaXMubWluLGk9dGhpcy5tYXgsbj10Lm1pbixzPXQubWF4LGE9cy54Pj1lLngmJm4ueDw9aS54LHI9cy55Pj1lLnkmJm4ueTw9aS55O3JldHVybiBhJiZyfSxpc1ZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuISghdGhpcy5taW58fCF0aGlzLm1heCl9fSxvLmJvdW5kcz1mdW5jdGlvbih0LGUpe3JldHVybiF0fHx0IGluc3RhbmNlb2Ygby5Cb3VuZHM/dDpuZXcgby5Cb3VuZHModCxlKX0sby5UcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0LGUsaSxuKXt0aGlzLl9hPXQsdGhpcy5fYj1lLHRoaXMuX2M9aSx0aGlzLl9kPW59LG8uVHJhbnNmb3JtYXRpb24ucHJvdG90eXBlPXt0cmFuc2Zvcm06ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdHJhbnNmb3JtKHQuY2xvbmUoKSxlKX0sX3RyYW5zZm9ybTpmdW5jdGlvbih0LGUpe3JldHVybiBlPWV8fDEsdC54PWUqKHRoaXMuX2EqdC54K3RoaXMuX2IpLHQueT1lKih0aGlzLl9jKnQueSt0aGlzLl9kKSx0fSx1bnRyYW5zZm9ybTpmdW5jdGlvbih0LGUpe3JldHVybiBlPWV8fDEsbmV3IG8uUG9pbnQoKHQueC9lLXRoaXMuX2IpL3RoaXMuX2EsKHQueS9lLXRoaXMuX2QpL3RoaXMuX2MpfX0sby5Eb21VdGlsPXtnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P2UuZ2V0RWxlbWVudEJ5SWQodCk6dH0sZ2V0U3R5bGU6ZnVuY3Rpb24odCxpKXt2YXIgbj10LnN0eWxlW2ldO2lmKCFuJiZ0LmN1cnJlbnRTdHlsZSYmKG49dC5jdXJyZW50U3R5bGVbaV0pLCghbnx8ImF1dG8iPT09bikmJmUuZGVmYXVsdFZpZXcpe3ZhciBvPWUuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpO249bz9vW2ldOm51bGx9cmV0dXJuImF1dG8iPT09bj9udWxsOm59LGdldFZpZXdwb3J0T2Zmc2V0OmZ1bmN0aW9uKHQpe3ZhciBpLG49MCxzPTAsYT10LHI9ZS5ib2R5LGg9ZS5kb2N1bWVudEVsZW1lbnQ7ZG97aWYobis9YS5vZmZzZXRUb3B8fDAscys9YS5vZmZzZXRMZWZ0fHwwLG4rPXBhcnNlSW50KG8uRG9tVXRpbC5nZXRTdHlsZShhLCJib3JkZXJUb3BXaWR0aCIpLDEwKXx8MCxzKz1wYXJzZUludChvLkRvbVV0aWwuZ2V0U3R5bGUoYSwiYm9yZGVyTGVmdFdpZHRoIiksMTApfHwwLGk9by5Eb21VdGlsLmdldFN0eWxlKGEsInBvc2l0aW9uIiksYS5vZmZzZXRQYXJlbnQ9PT1yJiYiYWJzb2x1dGUiPT09aSlicmVhaztpZigiZml4ZWQiPT09aSl7bis9ci5zY3JvbGxUb3B8fGguc2Nyb2xsVG9wfHwwLHMrPXIuc2Nyb2xsTGVmdHx8aC5zY3JvbGxMZWZ0fHwwO2JyZWFrfWlmKCJyZWxhdGl2ZSI9PT1pJiYhYS5vZmZzZXRMZWZ0KXt2YXIgbD1vLkRvbVV0aWwuZ2V0U3R5bGUoYSwid2lkdGgiKSx1PW8uRG9tVXRpbC5nZXRTdHlsZShhLCJtYXgtd2lkdGgiKSxjPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7KCJub25lIiE9PWx8fCJub25lIiE9PXUpJiYocys9Yy5sZWZ0K2EuY2xpZW50TGVmdCksbis9Yy50b3ArKHIuc2Nyb2xsVG9wfHxoLnNjcm9sbFRvcHx8MCk7YnJlYWt9YT1hLm9mZnNldFBhcmVudH13aGlsZShhKTthPXQ7ZG97aWYoYT09PXIpYnJlYWs7bi09YS5zY3JvbGxUb3B8fDAscy09YS5zY3JvbGxMZWZ0fHwwLGE9YS5wYXJlbnROb2RlfXdoaWxlKGEpO3JldHVybiBuZXcgby5Qb2ludChzLG4pfSxkb2N1bWVudElzTHRyOmZ1bmN0aW9uKCl7cmV0dXJuIG8uRG9tVXRpbC5fZG9jSXNMdHJDYWNoZWR8fChvLkRvbVV0aWwuX2RvY0lzTHRyQ2FjaGVkPSEwLG8uRG9tVXRpbC5fZG9jSXNMdHI9Imx0ciI9PT1vLkRvbVV0aWwuZ2V0U3R5bGUoZS5ib2R5LCJkaXJlY3Rpb24iKSksby5Eb21VdGlsLl9kb2NJc0x0cn0sY3JlYXRlOmZ1bmN0aW9uKHQsaSxuKXt2YXIgbz1lLmNyZWF0ZUVsZW1lbnQodCk7cmV0dXJuIG8uY2xhc3NOYW1lPWksbiYmbi5hcHBlbmRDaGlsZChvKSxvfSxoYXNDbGFzczpmdW5jdGlvbih0LGUpe2lmKHQuY2xhc3NMaXN0IT09aSlyZXR1cm4gdC5jbGFzc0xpc3QuY29udGFpbnMoZSk7dmFyIG49by5Eb21VdGlsLl9nZXRDbGFzcyh0KTtyZXR1cm4gbi5sZW5ndGg+MCYmbmV3IFJlZ0V4cCgiKF58XFxzKSIrZSsiKFxcc3wkKSIpLnRlc3Qobil9LGFkZENsYXNzOmZ1bmN0aW9uKHQsZSl7aWYodC5jbGFzc0xpc3QhPT1pKWZvcih2YXIgbj1vLlV0aWwuc3BsaXRXb3JkcyhlKSxzPTAsYT1uLmxlbmd0aDthPnM7cysrKXQuY2xhc3NMaXN0LmFkZChuW3NdKTtlbHNlIGlmKCFvLkRvbVV0aWwuaGFzQ2xhc3ModCxlKSl7dmFyIHI9by5Eb21VdGlsLl9nZXRDbGFzcyh0KTtvLkRvbVV0aWwuX3NldENsYXNzKHQsKHI/cisiICI6IiIpK2UpfX0scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24odCxlKXt0LmNsYXNzTGlzdCE9PWk/dC5jbGFzc0xpc3QucmVtb3ZlKGUpOm8uRG9tVXRpbC5fc2V0Q2xhc3ModCxvLlV0aWwudHJpbSgoIiAiK28uRG9tVXRpbC5fZ2V0Q2xhc3ModCkrIiAiKS5yZXBsYWNlKCIgIitlKyIgIiwiICIpKSl9LF9zZXRDbGFzczpmdW5jdGlvbih0LGUpe3QuY2xhc3NOYW1lLmJhc2VWYWw9PT1pP3QuY2xhc3NOYW1lPWU6dC5jbGFzc05hbWUuYmFzZVZhbD1lfSxfZ2V0Q2xhc3M6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xhc3NOYW1lLmJhc2VWYWw9PT1pP3QuY2xhc3NOYW1lOnQuY2xhc3NOYW1lLmJhc2VWYWx9LHNldE9wYWNpdHk6ZnVuY3Rpb24odCxlKXtpZigib3BhY2l0eSJpbiB0LnN0eWxlKXQuc3R5bGUub3BhY2l0eT1lO2Vsc2UgaWYoImZpbHRlciJpbiB0LnN0eWxlKXt2YXIgaT0hMSxuPSJEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYSI7dHJ5e2k9dC5maWx0ZXJzLml0ZW0obil9Y2F0Y2gobyl7aWYoMT09PWUpcmV0dXJufWU9TWF0aC5yb3VuZCgxMDAqZSksaT8oaS5FbmFibGVkPTEwMCE9PWUsaS5PcGFjaXR5PWUpOnQuc3R5bGUuZmlsdGVyKz0iIHByb2dpZDoiK24rIihvcGFjaXR5PSIrZSsiKSJ9fSx0ZXN0UHJvcDpmdW5jdGlvbih0KXtmb3IodmFyIGk9ZS5kb2N1bWVudEVsZW1lbnQuc3R5bGUsbj0wO248dC5sZW5ndGg7bisrKWlmKHRbbl1pbiBpKXJldHVybiB0W25dO3JldHVybiExfSxnZXRUcmFuc2xhdGVTdHJpbmc6ZnVuY3Rpb24odCl7dmFyIGU9by5Ccm93c2VyLndlYmtpdDNkLGk9InRyYW5zbGF0ZSIrKGU/IjNkIjoiIikrIigiLG49KGU/IiwwIjoiIikrIikiO3JldHVybiBpK3QueCsicHgsIit0LnkrInB4IitufSxnZXRTY2FsZVN0cmluZzpmdW5jdGlvbih0LGUpe3ZhciBpPW8uRG9tVXRpbC5nZXRUcmFuc2xhdGVTdHJpbmcoZS5hZGQoZS5tdWx0aXBseUJ5KC0xKnQpKSksbj0iIHNjYWxlKCIrdCsiKSAiO3JldHVybiBpK259LHNldFBvc2l0aW9uOmZ1bmN0aW9uKHQsZSxpKXt0Ll9sZWFmbGV0X3Bvcz1lLCFpJiZvLkJyb3dzZXIuYW55M2Q/dC5zdHlsZVtvLkRvbVV0aWwuVFJBTlNGT1JNXT1vLkRvbVV0aWwuZ2V0VHJhbnNsYXRlU3RyaW5nKGUpOih0LnN0eWxlLmxlZnQ9ZS54KyJweCIsdC5zdHlsZS50b3A9ZS55KyJweCIpfSxnZXRQb3NpdGlvbjpmdW5jdGlvbih0KXtyZXR1cm4gdC5fbGVhZmxldF9wb3N9fSxvLkRvbVV0aWwuVFJBTlNGT1JNPW8uRG9tVXRpbC50ZXN0UHJvcChbInRyYW5zZm9ybSIsIldlYmtpdFRyYW5zZm9ybSIsIk9UcmFuc2Zvcm0iLCJNb3pUcmFuc2Zvcm0iLCJtc1RyYW5zZm9ybSJdKSxvLkRvbVV0aWwuVFJBTlNJVElPTj1vLkRvbVV0aWwudGVzdFByb3AoWyJ3ZWJraXRUcmFuc2l0aW9uIiwidHJhbnNpdGlvbiIsIk9UcmFuc2l0aW9uIiwiTW96VHJhbnNpdGlvbiIsIm1zVHJhbnNpdGlvbiJdKSxvLkRvbVV0aWwuVFJBTlNJVElPTl9FTkQ9IndlYmtpdFRyYW5zaXRpb24iPT09by5Eb21VdGlsLlRSQU5TSVRJT058fCJPVHJhbnNpdGlvbiI9PT1vLkRvbVV0aWwuVFJBTlNJVElPTj9vLkRvbVV0aWwuVFJBTlNJVElPTisiRW5kIjoidHJhbnNpdGlvbmVuZCIsZnVuY3Rpb24oKXtpZigib25zZWxlY3RzdGFydCJpbiBlKW8uZXh0ZW5kKG8uRG9tVXRpbCx7ZGlzYWJsZVRleHRTZWxlY3Rpb246ZnVuY3Rpb24oKXtvLkRvbUV2ZW50Lm9uKHQsInNlbGVjdHN0YXJ0IixvLkRvbUV2ZW50LnByZXZlbnREZWZhdWx0KX0sZW5hYmxlVGV4dFNlbGVjdGlvbjpmdW5jdGlvbigpe28uRG9tRXZlbnQub2ZmKHQsInNlbGVjdHN0YXJ0IixvLkRvbUV2ZW50LnByZXZlbnREZWZhdWx0KX19KTtlbHNle3ZhciBpPW8uRG9tVXRpbC50ZXN0UHJvcChbInVzZXJTZWxlY3QiLCJXZWJraXRVc2VyU2VsZWN0IiwiT1VzZXJTZWxlY3QiLCJNb3pVc2VyU2VsZWN0IiwibXNVc2VyU2VsZWN0Il0pO28uZXh0ZW5kKG8uRG9tVXRpbCx7ZGlzYWJsZVRleHRTZWxlY3Rpb246ZnVuY3Rpb24oKXtpZihpKXt2YXIgdD1lLmRvY3VtZW50RWxlbWVudC5zdHlsZTt0aGlzLl91c2VyU2VsZWN0PXRbaV0sdFtpXT0ibm9uZSJ9fSxlbmFibGVUZXh0U2VsZWN0aW9uOmZ1bmN0aW9uKCl7aSYmKGUuZG9jdW1lbnRFbGVtZW50LnN0eWxlW2ldPXRoaXMuX3VzZXJTZWxlY3QsZGVsZXRlIHRoaXMuX3VzZXJTZWxlY3QpfX0pfW8uZXh0ZW5kKG8uRG9tVXRpbCx7ZGlzYWJsZUltYWdlRHJhZzpmdW5jdGlvbigpe28uRG9tRXZlbnQub24odCwiZHJhZ3N0YXJ0IixvLkRvbUV2ZW50LnByZXZlbnREZWZhdWx0KX0sZW5hYmxlSW1hZ2VEcmFnOmZ1bmN0aW9uKCl7by5Eb21FdmVudC5vZmYodCwiZHJhZ3N0YXJ0IixvLkRvbUV2ZW50LnByZXZlbnREZWZhdWx0KX19KX0oKSxvLkxhdExuZz1mdW5jdGlvbih0LGUsbil7aWYodD1wYXJzZUZsb2F0KHQpLGU9cGFyc2VGbG9hdChlKSxpc05hTih0KXx8aXNOYU4oZSkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIExhdExuZyBvYmplY3Q6ICgiK3QrIiwgIitlKyIpIik7dGhpcy5sYXQ9dCx0aGlzLmxuZz1lLG4hPT1pJiYodGhpcy5hbHQ9cGFyc2VGbG9hdChuKSl9LG8uZXh0ZW5kKG8uTGF0TG5nLHtERUdfVE9fUkFEOk1hdGguUEkvMTgwLFJBRF9UT19ERUc6MTgwL01hdGguUEksTUFYX01BUkdJTjoxZS05fSksby5MYXRMbmcucHJvdG90eXBlPXtlcXVhbHM6ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuITE7dD1vLmxhdExuZyh0KTt2YXIgZT1NYXRoLm1heChNYXRoLmFicyh0aGlzLmxhdC10LmxhdCksTWF0aC5hYnModGhpcy5sbmctdC5sbmcpKTtyZXR1cm4gZTw9by5MYXRMbmcuTUFYX01BUkdJTn0sdG9TdHJpbmc6ZnVuY3Rpb24odCl7cmV0dXJuIkxhdExuZygiK28uVXRpbC5mb3JtYXROdW0odGhpcy5sYXQsdCkrIiwgIitvLlV0aWwuZm9ybWF0TnVtKHRoaXMubG5nLHQpKyIpIn0sZGlzdGFuY2VUbzpmdW5jdGlvbih0KXt0PW8ubGF0TG5nKHQpO3ZhciBlPTYzNzgxMzcsaT1vLkxhdExuZy5ERUdfVE9fUkFELG49KHQubGF0LXRoaXMubGF0KSppLHM9KHQubG5nLXRoaXMubG5nKSppLGE9dGhpcy5sYXQqaSxyPXQubGF0KmksaD1NYXRoLnNpbihuLzIpLGw9TWF0aC5zaW4ocy8yKSx1PWgqaCtsKmwqTWF0aC5jb3MoYSkqTWF0aC5jb3Mocik7cmV0dXJuIDIqZSpNYXRoLmF0YW4yKE1hdGguc3FydCh1KSxNYXRoLnNxcnQoMS11KSl9LHdyYXA6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLmxuZztyZXR1cm4gdD10fHwtMTgwLGU9ZXx8MTgwLGk9KGkrZSklKGUtdCkrKHQ+aXx8aT09PWU/ZTp0KSxuZXcgby5MYXRMbmcodGhpcy5sYXQsaSl9fSxvLmxhdExuZz1mdW5jdGlvbih0LGUpe3JldHVybiB0IGluc3RhbmNlb2Ygby5MYXRMbmc/dDpvLlV0aWwuaXNBcnJheSh0KT8ibnVtYmVyIj09dHlwZW9mIHRbMF18fCJzdHJpbmciPT10eXBlb2YgdFswXT9uZXcgby5MYXRMbmcodFswXSx0WzFdLHRbMl0pOm51bGw6dD09PWl8fG51bGw9PT10P3Q6Im9iamVjdCI9PXR5cGVvZiB0JiYibGF0ImluIHQ/bmV3IG8uTGF0TG5nKHQubGF0LCJsbmciaW4gdD90LmxuZzp0Lmxvbik6ZT09PWk/bnVsbDpuZXcgby5MYXRMbmcodCxlKX0sby5MYXRMbmdCb3VuZHM9ZnVuY3Rpb24odCxlKXtpZih0KWZvcih2YXIgaT1lP1t0LGVdOnQsbj0wLG89aS5sZW5ndGg7bz5uO24rKyl0aGlzLmV4dGVuZChpW25dKX0sby5MYXRMbmdCb3VuZHMucHJvdG90eXBlPXtleHRlbmQ6ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIHRoaXM7dmFyIGU9by5sYXRMbmcodCk7cmV0dXJuIHQ9bnVsbCE9PWU/ZTpvLmxhdExuZ0JvdW5kcyh0KSx0IGluc3RhbmNlb2Ygby5MYXRMbmc/dGhpcy5fc291dGhXZXN0fHx0aGlzLl9ub3J0aEVhc3Q/KHRoaXMuX3NvdXRoV2VzdC5sYXQ9TWF0aC5taW4odC5sYXQsdGhpcy5fc291dGhXZXN0LmxhdCksdGhpcy5fc291dGhXZXN0LmxuZz1NYXRoLm1pbih0LmxuZyx0aGlzLl9zb3V0aFdlc3QubG5nKSx0aGlzLl9ub3J0aEVhc3QubGF0PU1hdGgubWF4KHQubGF0LHRoaXMuX25vcnRoRWFzdC5sYXQpLHRoaXMuX25vcnRoRWFzdC5sbmc9TWF0aC5tYXgodC5sbmcsdGhpcy5fbm9ydGhFYXN0LmxuZykpOih0aGlzLl9zb3V0aFdlc3Q9bmV3IG8uTGF0TG5nKHQubGF0LHQubG5nKSx0aGlzLl9ub3J0aEVhc3Q9bmV3IG8uTGF0TG5nKHQubGF0LHQubG5nKSk6dCBpbnN0YW5jZW9mIG8uTGF0TG5nQm91bmRzJiYodGhpcy5leHRlbmQodC5fc291dGhXZXN0KSx0aGlzLmV4dGVuZCh0Ll9ub3J0aEVhc3QpKSx0aGlzfSxwYWQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fc291dGhXZXN0LGk9dGhpcy5fbm9ydGhFYXN0LG49TWF0aC5hYnMoZS5sYXQtaS5sYXQpKnQscz1NYXRoLmFicyhlLmxuZy1pLmxuZykqdDtyZXR1cm4gbmV3IG8uTGF0TG5nQm91bmRzKG5ldyBvLkxhdExuZyhlLmxhdC1uLGUubG5nLXMpLG5ldyBvLkxhdExuZyhpLmxhdCtuLGkubG5nK3MpKX0sZ2V0Q2VudGVyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBvLkxhdExuZygodGhpcy5fc291dGhXZXN0LmxhdCt0aGlzLl9ub3J0aEVhc3QubGF0KS8yLCh0aGlzLl9zb3V0aFdlc3QubG5nK3RoaXMuX25vcnRoRWFzdC5sbmcpLzIpfSxnZXRTb3V0aFdlc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc291dGhXZXN0fSxnZXROb3J0aEVhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbm9ydGhFYXN0fSxnZXROb3J0aFdlc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG8uTGF0TG5nKHRoaXMuZ2V0Tm9ydGgoKSx0aGlzLmdldFdlc3QoKSl9LGdldFNvdXRoRWFzdDpmdW5jdGlvbigpe3JldHVybiBuZXcgby5MYXRMbmcodGhpcy5nZXRTb3V0aCgpLHRoaXMuZ2V0RWFzdCgpKX0sZ2V0V2VzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zb3V0aFdlc3QubG5nfSxnZXRTb3V0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zb3V0aFdlc3QubGF0fSxnZXRFYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25vcnRoRWFzdC5sbmd9LGdldE5vcnRoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25vcnRoRWFzdC5sYXR9LGNvbnRhaW5zOmZ1bmN0aW9uKHQpe3Q9Im51bWJlciI9PXR5cGVvZiB0WzBdfHx0IGluc3RhbmNlb2Ygby5MYXRMbmc/by5sYXRMbmcodCk6by5sYXRMbmdCb3VuZHModCk7dmFyIGUsaSxuPXRoaXMuX3NvdXRoV2VzdCxzPXRoaXMuX25vcnRoRWFzdDtyZXR1cm4gdCBpbnN0YW5jZW9mIG8uTGF0TG5nQm91bmRzPyhlPXQuZ2V0U291dGhXZXN0KCksaT10LmdldE5vcnRoRWFzdCgpKTplPWk9dCxlLmxhdD49bi5sYXQmJmkubGF0PD1zLmxhdCYmZS5sbmc+PW4ubG5nJiZpLmxuZzw9cy5sbmd9LGludGVyc2VjdHM6ZnVuY3Rpb24odCl7dD1vLmxhdExuZ0JvdW5kcyh0KTt2YXIgZT10aGlzLl9zb3V0aFdlc3QsaT10aGlzLl9ub3J0aEVhc3Qsbj10LmdldFNvdXRoV2VzdCgpLHM9dC5nZXROb3J0aEVhc3QoKSxhPXMubGF0Pj1lLmxhdCYmbi5sYXQ8PWkubGF0LHI9cy5sbmc+PWUubG5nJiZuLmxuZzw9aS5sbmc7cmV0dXJuIGEmJnJ9LHRvQkJveFN0cmluZzpmdW5jdGlvbigpe3JldHVyblt0aGlzLmdldFdlc3QoKSx0aGlzLmdldFNvdXRoKCksdGhpcy5nZXRFYXN0KCksdGhpcy5nZXROb3J0aCgpXS5qb2luKCIsIil9LGVxdWFsczpmdW5jdGlvbih0KXtyZXR1cm4gdD8odD1vLmxhdExuZ0JvdW5kcyh0KSx0aGlzLl9zb3V0aFdlc3QuZXF1YWxzKHQuZ2V0U291dGhXZXN0KCkpJiZ0aGlzLl9ub3J0aEVhc3QuZXF1YWxzKHQuZ2V0Tm9ydGhFYXN0KCkpKTohMX0saXNWYWxpZDpmdW5jdGlvbigpe3JldHVybiEoIXRoaXMuX3NvdXRoV2VzdHx8IXRoaXMuX25vcnRoRWFzdCl9fSxvLmxhdExuZ0JvdW5kcz1mdW5jdGlvbih0LGUpe3JldHVybiF0fHx0IGluc3RhbmNlb2Ygby5MYXRMbmdCb3VuZHM/dDpuZXcgby5MYXRMbmdCb3VuZHModCxlKX0sby5Qcm9qZWN0aW9uPXt9LG8uUHJvamVjdGlvbi5TcGhlcmljYWxNZXJjYXRvcj17TUFYX0xBVElUVURFOjg1LjA1MTEyODc3OTgscHJvamVjdDpmdW5jdGlvbih0KXt2YXIgZT1vLkxhdExuZy5ERUdfVE9fUkFELGk9dGhpcy5NQVhfTEFUSVRVREUsbj1NYXRoLm1heChNYXRoLm1pbihpLHQubGF0KSwtaSkscz10LmxuZyplLGE9biplO3JldHVybiBhPU1hdGgubG9nKE1hdGgudGFuKE1hdGguUEkvNCthLzIpKSxuZXcgby5Qb2ludChzLGEpfSx1bnByb2plY3Q6ZnVuY3Rpb24odCl7dmFyIGU9by5MYXRMbmcuUkFEX1RPX0RFRyxpPXQueCplLG49KDIqTWF0aC5hdGFuKE1hdGguZXhwKHQueSkpLU1hdGguUEkvMikqZTtyZXR1cm4gbmV3IG8uTGF0TG5nKG4saSl9fSxvLlByb2plY3Rpb24uTG9uTGF0PXtwcm9qZWN0OmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgby5Qb2ludCh0LmxuZyx0LmxhdCl9LHVucHJvamVjdDpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IG8uTGF0TG5nKHQueSx0LngpfX0sby5DUlM9e2xhdExuZ1RvUG9pbnQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLnByb2plY3Rpb24ucHJvamVjdCh0KSxuPXRoaXMuc2NhbGUoZSk7cmV0dXJuIHRoaXMudHJhbnNmb3JtYXRpb24uX3RyYW5zZm9ybShpLG4pfSxwb2ludFRvTGF0TG5nOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5zY2FsZShlKSxuPXRoaXMudHJhbnNmb3JtYXRpb24udW50cmFuc2Zvcm0odCxpKTtyZXR1cm4gdGhpcy5wcm9qZWN0aW9uLnVucHJvamVjdChuKX0scHJvamVjdDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wcm9qZWN0aW9uLnByb2plY3QodCl9LHNjYWxlOmZ1bmN0aW9uKHQpe3JldHVybiAyNTYqTWF0aC5wb3coMix0KX0sZ2V0U2l6ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnNjYWxlKHQpO3JldHVybiBvLnBvaW50KGUsZSl9fSxvLkNSUy5TaW1wbGU9by5leHRlbmQoe30sby5DUlMse3Byb2plY3Rpb246by5Qcm9qZWN0aW9uLkxvbkxhdCx0cmFuc2Zvcm1hdGlvbjpuZXcgby5UcmFuc2Zvcm1hdGlvbigxLDAsLTEsMCksc2NhbGU6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucG93KDIsdCl9fSksby5DUlMuRVBTRzM4NTc9by5leHRlbmQoe30sby5DUlMse2NvZGU6IkVQU0c6Mzg1NyIscHJvamVjdGlvbjpvLlByb2plY3Rpb24uU3BoZXJpY2FsTWVyY2F0b3IsdHJhbnNmb3JtYXRpb246bmV3IG8uVHJhbnNmb3JtYXRpb24oLjUvTWF0aC5QSSwuNSwtLjUvTWF0aC5QSSwuNSkscHJvamVjdDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnByb2plY3Rpb24ucHJvamVjdCh0KSxpPTYzNzgxMzc7cmV0dXJuIGUubXVsdGlwbHlCeShpKX19KSxvLkNSUy5FUFNHOTAwOTEzPW8uZXh0ZW5kKHt9LG8uQ1JTLkVQU0czODU3LHtjb2RlOiJFUFNHOjkwMDkxMyJ9KSxvLkNSUy5FUFNHNDMyNj1vLmV4dGVuZCh7fSxvLkNSUyx7Y29kZToiRVBTRzo0MzI2Iixwcm9qZWN0aW9uOm8uUHJvamVjdGlvbi5Mb25MYXQsdHJhbnNmb3JtYXRpb246bmV3IG8uVHJhbnNmb3JtYXRpb24oMS8zNjAsLjUsLTEvMzYwLC41KX0pLG8uTWFwPW8uQ2xhc3MuZXh0ZW5kKHtpbmNsdWRlczpvLk1peGluLkV2ZW50cyxvcHRpb25zOntjcnM6by5DUlMuRVBTRzM4NTcsZmFkZUFuaW1hdGlvbjpvLkRvbVV0aWwuVFJBTlNJVElPTiYmIW8uQnJvd3Nlci5hbmRyb2lkMjMsdHJhY2tSZXNpemU6ITAsbWFya2VyWm9vbUFuaW1hdGlvbjpvLkRvbVV0aWwuVFJBTlNJVElPTiYmby5Ccm93c2VyLmFueTNkfSxpbml0aWFsaXplOmZ1bmN0aW9uKHQsZSl7ZT1vLnNldE9wdGlvbnModGhpcyxlKSx0aGlzLl9pbml0Q29udGFpbmVyKHQpLHRoaXMuX2luaXRMYXlvdXQoKSx0aGlzLl9vblJlc2l6ZT1vLmJpbmQodGhpcy5fb25SZXNpemUsdGhpcyksdGhpcy5faW5pdEV2ZW50cygpLGUubWF4Qm91bmRzJiZ0aGlzLnNldE1heEJvdW5kcyhlLm1heEJvdW5kcyksZS5jZW50ZXImJmUuem9vbSE9PWkmJnRoaXMuc2V0VmlldyhvLmxhdExuZyhlLmNlbnRlciksZS56b29tLHtyZXNldDohMH0pLHRoaXMuX2hhbmRsZXJzPVtdLHRoaXMuX2xheWVycz17fSx0aGlzLl96b29tQm91bmRMYXllcnM9e30sdGhpcy5fdGlsZUxheWVyc051bT0wLHRoaXMuY2FsbEluaXRIb29rcygpLHRoaXMuX2FkZExheWVycyhlLmxheWVycyl9LHNldFZpZXc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT1lPT09aT90aGlzLmdldFpvb20oKTplLHRoaXMuX3Jlc2V0VmlldyhvLmxhdExuZyh0KSx0aGlzLl9saW1pdFpvb20oZSkpLHRoaXN9LHNldFpvb206ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fbG9hZGVkP3RoaXMuc2V0Vmlldyh0aGlzLmdldENlbnRlcigpLHQse3pvb206ZX0pOih0aGlzLl96b29tPXRoaXMuX2xpbWl0Wm9vbSh0KSx0aGlzKX0sem9vbUluOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc2V0Wm9vbSh0aGlzLl96b29tKyh0fHwxKSxlKX0sem9vbU91dDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnNldFpvb20odGhpcy5fem9vbS0odHx8MSksZSl9LHNldFpvb21Bcm91bmQ6ZnVuY3Rpb24odCxlLGkpe3ZhciBuPXRoaXMuZ2V0Wm9vbVNjYWxlKGUpLHM9dGhpcy5nZXRTaXplKCkuZGl2aWRlQnkoMiksYT10IGluc3RhbmNlb2Ygby5Qb2ludD90OnRoaXMubGF0TG5nVG9Db250YWluZXJQb2ludCh0KSxyPWEuc3VidHJhY3QocykubXVsdGlwbHlCeSgxLTEvbiksaD10aGlzLmNvbnRhaW5lclBvaW50VG9MYXRMbmcocy5hZGQocikpO3JldHVybiB0aGlzLnNldFZpZXcoaCxlLHt6b29tOml9KX0sZml0Qm91bmRzOmZ1bmN0aW9uKHQsZSl7ZT1lfHx7fSx0PXQuZ2V0Qm91bmRzP3QuZ2V0Qm91bmRzKCk6by5sYXRMbmdCb3VuZHModCk7dmFyIGk9by5wb2ludChlLnBhZGRpbmdUb3BMZWZ0fHxlLnBhZGRpbmd8fFswLDBdKSxuPW8ucG9pbnQoZS5wYWRkaW5nQm90dG9tUmlnaHR8fGUucGFkZGluZ3x8WzAsMF0pLHM9dGhpcy5nZXRCb3VuZHNab29tKHQsITEsaS5hZGQobikpLGE9bi5zdWJ0cmFjdChpKS5kaXZpZGVCeSgyKSxyPXRoaXMucHJvamVjdCh0LmdldFNvdXRoV2VzdCgpLHMpLGg9dGhpcy5wcm9qZWN0KHQuZ2V0Tm9ydGhFYXN0KCkscyksbD10aGlzLnVucHJvamVjdChyLmFkZChoKS5kaXZpZGVCeSgyKS5hZGQoYSkscyk7cmV0dXJuIHM9ZSYmZS5tYXhab29tP01hdGgubWluKGUubWF4Wm9vbSxzKTpzLHRoaXMuc2V0VmlldyhsLHMsZSl9LGZpdFdvcmxkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmZpdEJvdW5kcyhbWy05MCwtMTgwXSxbOTAsMTgwXV0sdCl9LHBhblRvOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc2V0Vmlldyh0LHRoaXMuX3pvb20se3BhbjplfSl9LHBhbkJ5OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmZpcmUoIm1vdmVzdGFydCIpLHRoaXMuX3Jhd1BhbkJ5KG8ucG9pbnQodCkpLHRoaXMuZmlyZSgibW92ZSIpLHRoaXMuZmlyZSgibW92ZWVuZCIpfSxzZXRNYXhCb3VuZHM6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9by5sYXRMbmdCb3VuZHModCksdGhpcy5vcHRpb25zLm1heEJvdW5kcz10LHQ/KHRoaXMuX2xvYWRlZCYmdGhpcy5fcGFuSW5zaWRlTWF4Qm91bmRzKCksdGhpcy5vbigibW92ZWVuZCIsdGhpcy5fcGFuSW5zaWRlTWF4Qm91bmRzLHRoaXMpKTp0aGlzLm9mZigibW92ZWVuZCIsdGhpcy5fcGFuSW5zaWRlTWF4Qm91bmRzLHRoaXMpfSxwYW5JbnNpZGVCb3VuZHM6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLmdldENlbnRlcigpLG49dGhpcy5fbGltaXRDZW50ZXIoaSx0aGlzLl96b29tLHQpO3JldHVybiBpLmVxdWFscyhuKT90aGlzOnRoaXMucGFuVG8obixlKX0sYWRkTGF5ZXI6ZnVuY3Rpb24odCl7dmFyIGU9by5zdGFtcCh0KTtyZXR1cm4gdGhpcy5fbGF5ZXJzW2VdP3RoaXM6KHRoaXMuX2xheWVyc1tlXT10LCF0Lm9wdGlvbnN8fGlzTmFOKHQub3B0aW9ucy5tYXhab29tKSYmaXNOYU4odC5vcHRpb25zLm1pblpvb20pfHwodGhpcy5fem9vbUJvdW5kTGF5ZXJzW2VdPXQsdGhpcy5fdXBkYXRlWm9vbUxldmVscygpKSx0aGlzLm9wdGlvbnMuem9vbUFuaW1hdGlvbiYmby5UaWxlTGF5ZXImJnQgaW5zdGFuY2VvZiBvLlRpbGVMYXllciYmKHRoaXMuX3RpbGVMYXllcnNOdW0rKyx0aGlzLl90aWxlTGF5ZXJzVG9Mb2FkKyssdC5vbigibG9hZCIsdGhpcy5fb25UaWxlTGF5ZXJMb2FkLHRoaXMpKSx0aGlzLl9sb2FkZWQmJnRoaXMuX2xheWVyQWRkKHQpLHRoaXMpfSxyZW1vdmVMYXllcjpmdW5jdGlvbih0KXt2YXIgZT1vLnN0YW1wKHQpO3JldHVybiB0aGlzLl9sYXllcnNbZV0/KHRoaXMuX2xvYWRlZCYmdC5vblJlbW92ZSh0aGlzKSxkZWxldGUgdGhpcy5fbGF5ZXJzW2VdLHRoaXMuX2xvYWRlZCYmdGhpcy5maXJlKCJsYXllcnJlbW92ZSIse2xheWVyOnR9KSx0aGlzLl96b29tQm91bmRMYXllcnNbZV0mJihkZWxldGUgdGhpcy5fem9vbUJvdW5kTGF5ZXJzW2VdLHRoaXMuX3VwZGF0ZVpvb21MZXZlbHMoKSksdGhpcy5vcHRpb25zLnpvb21BbmltYXRpb24mJm8uVGlsZUxheWVyJiZ0IGluc3RhbmNlb2Ygby5UaWxlTGF5ZXImJih0aGlzLl90aWxlTGF5ZXJzTnVtLS0sdGhpcy5fdGlsZUxheWVyc1RvTG9hZC0tLHQub2ZmKCJsb2FkIix0aGlzLl9vblRpbGVMYXllckxvYWQsdGhpcykpLHRoaXMpOnRoaXN9LGhhc0xheWVyOmZ1bmN0aW9uKHQpe3JldHVybiB0P28uc3RhbXAodClpbiB0aGlzLl9sYXllcnM6ITF9LGVhY2hMYXllcjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgaSBpbiB0aGlzLl9sYXllcnMpdC5jYWxsKGUsdGhpcy5fbGF5ZXJzW2ldKTtyZXR1cm4gdGhpc30saW52YWxpZGF0ZVNpemU6ZnVuY3Rpb24odCl7aWYoIXRoaXMuX2xvYWRlZClyZXR1cm4gdGhpczt0PW8uZXh0ZW5kKHthbmltYXRlOiExLHBhbjohMH0sdD09PSEwP3thbmltYXRlOiEwfTp0KTt2YXIgZT10aGlzLmdldFNpemUoKTt0aGlzLl9zaXplQ2hhbmdlZD0hMCx0aGlzLl9pbml0aWFsQ2VudGVyPW51bGw7dmFyIGk9dGhpcy5nZXRTaXplKCksbj1lLmRpdmlkZUJ5KDIpLnJvdW5kKCkscz1pLmRpdmlkZUJ5KDIpLnJvdW5kKCksYT1uLnN1YnRyYWN0KHMpO3JldHVybiBhLnh8fGEueT8odC5hbmltYXRlJiZ0LnBhbj90aGlzLnBhbkJ5KGEpOih0LnBhbiYmdGhpcy5fcmF3UGFuQnkoYSksdGhpcy5maXJlKCJtb3ZlIiksdC5kZWJvdW5jZU1vdmVlbmQ/KGNsZWFyVGltZW91dCh0aGlzLl9zaXplVGltZXIpLHRoaXMuX3NpemVUaW1lcj1zZXRUaW1lb3V0KG8uYmluZCh0aGlzLmZpcmUsdGhpcywibW92ZWVuZCIpLDIwMCkpOnRoaXMuZmlyZSgibW92ZWVuZCIpKSx0aGlzLmZpcmUoInJlc2l6ZSIse29sZFNpemU6ZSxuZXdTaXplOml9KSk6dGhpc30sYWRkSGFuZGxlcjpmdW5jdGlvbih0LGUpe2lmKCFlKXJldHVybiB0aGlzO3ZhciBpPXRoaXNbdF09bmV3IGUodGhpcyk7cmV0dXJuIHRoaXMuX2hhbmRsZXJzLnB1c2goaSksdGhpcy5vcHRpb25zW3RdJiZpLmVuYWJsZSgpLHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3RoaXMuX2xvYWRlZCYmdGhpcy5maXJlKCJ1bmxvYWQiKSx0aGlzLl9pbml0RXZlbnRzKCJvZmYiKTt0cnl7ZGVsZXRlIHRoaXMuX2NvbnRhaW5lci5fbGVhZmxldH1jYXRjaCh0KXt0aGlzLl9jb250YWluZXIuX2xlYWZsZXQ9aX1yZXR1cm4gdGhpcy5fY2xlYXJQYW5lcygpLHRoaXMuX2NsZWFyQ29udHJvbFBvcyYmdGhpcy5fY2xlYXJDb250cm9sUG9zKCksdGhpcy5fY2xlYXJIYW5kbGVycygpLHRoaXN9LGdldENlbnRlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jaGVja0lmTG9hZGVkKCksdGhpcy5faW5pdGlhbENlbnRlciYmIXRoaXMuX21vdmVkKCk/dGhpcy5faW5pdGlhbENlbnRlcjp0aGlzLmxheWVyUG9pbnRUb0xhdExuZyh0aGlzLl9nZXRDZW50ZXJMYXllclBvaW50KCkpfSxnZXRab29tOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3pvb219LGdldEJvdW5kczpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0UGl4ZWxCb3VuZHMoKSxlPXRoaXMudW5wcm9qZWN0KHQuZ2V0Qm90dG9tTGVmdCgpKSxpPXRoaXMudW5wcm9qZWN0KHQuZ2V0VG9wUmlnaHQoKSk7cmV0dXJuIG5ldyBvLkxhdExuZ0JvdW5kcyhlLGkpfSxnZXRNaW5ab29tOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5taW5ab29tPT09aT90aGlzLl9sYXllcnNNaW5ab29tPT09aT8wOnRoaXMuX2xheWVyc01pblpvb206dGhpcy5vcHRpb25zLm1pblpvb219LGdldE1heFpvb206ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLm1heFpvb209PT1pP3RoaXMuX2xheWVyc01heFpvb209PT1pPzEvMDp0aGlzLl9sYXllcnNNYXhab29tOnRoaXMub3B0aW9ucy5tYXhab29tfSxnZXRCb3VuZHNab29tOmZ1bmN0aW9uKHQsZSxpKXt0PW8ubGF0TG5nQm91bmRzKHQpO3ZhciBuLHM9dGhpcy5nZXRNaW5ab29tKCktKGU/MTowKSxhPXRoaXMuZ2V0TWF4Wm9vbSgpLHI9dGhpcy5nZXRTaXplKCksaD10LmdldE5vcnRoV2VzdCgpLGw9dC5nZXRTb3V0aEVhc3QoKSx1PSEwO2k9by5wb2ludChpfHxbMCwwXSk7ZG8gcysrLG49dGhpcy5wcm9qZWN0KGwscykuc3VidHJhY3QodGhpcy5wcm9qZWN0KGgscykpLmFkZChpKSx1PWU/bi54PHIueHx8bi55PHIueTpyLmNvbnRhaW5zKG4pO3doaWxlKHUmJmE+PXMpO3JldHVybiB1JiZlP251bGw6ZT9zOnMtMX0sZ2V0U2l6ZTpmdW5jdGlvbigpe3JldHVybighdGhpcy5fc2l6ZXx8dGhpcy5fc2l6ZUNoYW5nZWQpJiYodGhpcy5fc2l6ZT1uZXcgby5Qb2ludCh0aGlzLl9jb250YWluZXIuY2xpZW50V2lkdGgsdGhpcy5fY29udGFpbmVyLmNsaWVudEhlaWdodCksdGhpcy5fc2l6ZUNoYW5nZWQ9ITEpLHRoaXMuX3NpemUuY2xvbmUoKX0sZ2V0UGl4ZWxCb3VuZHM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9nZXRUb3BMZWZ0UG9pbnQoKTtyZXR1cm4gbmV3IG8uQm91bmRzKHQsdC5hZGQodGhpcy5nZXRTaXplKCkpKX0sZ2V0UGl4ZWxPcmlnaW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2hlY2tJZkxvYWRlZCgpLHRoaXMuX2luaXRpYWxUb3BMZWZ0UG9pbnR9LGdldFBhbmVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhbmVzfSxnZXRDb250YWluZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29udGFpbmVyfSxnZXRab29tU2NhbGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5vcHRpb25zLmNycztyZXR1cm4gZS5zY2FsZSh0KS9lLnNjYWxlKHRoaXMuX3pvb20pfSxnZXRTY2FsZVpvb206ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3pvb20rTWF0aC5sb2codCkvTWF0aC5MTjJ9LHByb2plY3Q6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT1lPT09aT90aGlzLl96b29tOmUsdGhpcy5vcHRpb25zLmNycy5sYXRMbmdUb1BvaW50KG8ubGF0TG5nKHQpLGUpfSx1bnByb2plY3Q6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT1lPT09aT90aGlzLl96b29tOmUsdGhpcy5vcHRpb25zLmNycy5wb2ludFRvTGF0TG5nKG8ucG9pbnQodCksZSl9LGxheWVyUG9pbnRUb0xhdExuZzpmdW5jdGlvbih0KXt2YXIgZT1vLnBvaW50KHQpLmFkZCh0aGlzLmdldFBpeGVsT3JpZ2luKCkpO3JldHVybiB0aGlzLnVucHJvamVjdChlKX0sbGF0TG5nVG9MYXllclBvaW50OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucHJvamVjdChvLmxhdExuZyh0KSkuX3JvdW5kKCk7cmV0dXJuIGUuX3N1YnRyYWN0KHRoaXMuZ2V0UGl4ZWxPcmlnaW4oKSl9LGNvbnRhaW5lclBvaW50VG9MYXllclBvaW50OmZ1bmN0aW9uKHQpe3JldHVybiBvLnBvaW50KHQpLnN1YnRyYWN0KHRoaXMuX2dldE1hcFBhbmVQb3MoKSl9LGxheWVyUG9pbnRUb0NvbnRhaW5lclBvaW50OmZ1bmN0aW9uKHQpe3JldHVybiBvLnBvaW50KHQpLmFkZCh0aGlzLl9nZXRNYXBQYW5lUG9zKCkpfSxjb250YWluZXJQb2ludFRvTGF0TG5nOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29udGFpbmVyUG9pbnRUb0xheWVyUG9pbnQoby5wb2ludCh0KSk7cmV0dXJuIHRoaXMubGF5ZXJQb2ludFRvTGF0TG5nKGUpfSxsYXRMbmdUb0NvbnRhaW5lclBvaW50OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxheWVyUG9pbnRUb0NvbnRhaW5lclBvaW50KHRoaXMubGF0TG5nVG9MYXllclBvaW50KG8ubGF0TG5nKHQpKSl9LG1vdXNlRXZlbnRUb0NvbnRhaW5lclBvaW50OmZ1bmN0aW9uKHQpe3JldHVybiBvLkRvbUV2ZW50LmdldE1vdXNlUG9zaXRpb24odCx0aGlzLl9jb250YWluZXIpfSxtb3VzZUV2ZW50VG9MYXllclBvaW50OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNvbnRhaW5lclBvaW50VG9MYXllclBvaW50KHRoaXMubW91c2VFdmVudFRvQ29udGFpbmVyUG9pbnQodCkpfSxtb3VzZUV2ZW50VG9MYXRMbmc6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGF5ZXJQb2ludFRvTGF0TG5nKHRoaXMubW91c2VFdmVudFRvTGF5ZXJQb2ludCh0KSl9LF9pbml0Q29udGFpbmVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2NvbnRhaW5lcj1vLkRvbVV0aWwuZ2V0KHQpO2lmKCFlKXRocm93IG5ldyBFcnJvcigiTWFwIGNvbnRhaW5lciBub3QgZm91bmQuIik7aWYoZS5fbGVhZmxldCl0aHJvdyBuZXcgRXJyb3IoIk1hcCBjb250YWluZXIgaXMgYWxyZWFkeSBpbml0aWFsaXplZC4iKTtlLl9sZWFmbGV0PSEwfSxfaW5pdExheW91dDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbnRhaW5lcjtvLkRvbVV0aWwuYWRkQ2xhc3ModCwibGVhZmxldC1jb250YWluZXIiKyhvLkJyb3dzZXIudG91Y2g/IiBsZWFmbGV0LXRvdWNoIjoiIikrKG8uQnJvd3Nlci5yZXRpbmE/IiBsZWFmbGV0LXJldGluYSI6IiIpKyhvLkJyb3dzZXIuaWVsdDk/IiBsZWFmbGV0LW9sZGllIjoiIikrKHRoaXMub3B0aW9ucy5mYWRlQW5pbWF0aW9uPyIgbGVhZmxldC1mYWRlLWFuaW0iOiIiKSk7dmFyIGU9by5Eb21VdGlsLmdldFN0eWxlKHQsInBvc2l0aW9uIik7ImFic29sdXRlIiE9PWUmJiJyZWxhdGl2ZSIhPT1lJiYiZml4ZWQiIT09ZSYmKHQuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIiksdGhpcy5faW5pdFBhbmVzKCksdGhpcy5faW5pdENvbnRyb2xQb3MmJnRoaXMuX2luaXRDb250cm9sUG9zKCl9LF9pbml0UGFuZXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9wYW5lcz17fTt0aGlzLl9tYXBQYW5lPXQubWFwUGFuZT10aGlzLl9jcmVhdGVQYW5lKCJsZWFmbGV0LW1hcC1wYW5lIix0aGlzLl9jb250YWluZXIpLHRoaXMuX3RpbGVQYW5lPXQudGlsZVBhbmU9dGhpcy5fY3JlYXRlUGFuZSgibGVhZmxldC10aWxlLXBhbmUiLHRoaXMuX21hcFBhbmUpLHQub2JqZWN0c1BhbmU9dGhpcy5fY3JlYXRlUGFuZSgibGVhZmxldC1vYmplY3RzLXBhbmUiLHRoaXMuX21hcFBhbmUpLHQuc2hhZG93UGFuZT10aGlzLl9jcmVhdGVQYW5lKCJsZWFmbGV0LXNoYWRvdy1wYW5lIiksdC5vdmVybGF5UGFuZT10aGlzLl9jcmVhdGVQYW5lKCJsZWFmbGV0LW92ZXJsYXktcGFuZSIpLHQubWFya2VyUGFuZT10aGlzLl9jcmVhdGVQYW5lKCJsZWFmbGV0LW1hcmtlci1wYW5lIiksdC5wb3B1cFBhbmU9dGhpcy5fY3JlYXRlUGFuZSgibGVhZmxldC1wb3B1cC1wYW5lIik7dmFyIGU9IiBsZWFmbGV0LXpvb20taGlkZSI7dGhpcy5vcHRpb25zLm1hcmtlclpvb21BbmltYXRpb258fChvLkRvbVV0aWwuYWRkQ2xhc3ModC5tYXJrZXJQYW5lLGUpLG8uRG9tVXRpbC5hZGRDbGFzcyh0LnNoYWRvd1BhbmUsZSksby5Eb21VdGlsLmFkZENsYXNzKHQucG9wdXBQYW5lLGUpKX0sX2NyZWF0ZVBhbmU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gby5Eb21VdGlsLmNyZWF0ZSgiZGl2Iix0LGV8fHRoaXMuX3BhbmVzLm9iamVjdHNQYW5lKX0sX2NsZWFyUGFuZXM6ZnVuY3Rpb24oKXt0aGlzLl9jb250YWluZXIucmVtb3ZlQ2hpbGQodGhpcy5fbWFwUGFuZSl9LF9hZGRMYXllcnM6ZnVuY3Rpb24odCl7dD10P28uVXRpbC5pc0FycmF5KHQpP3Q6W3RdOltdO2Zvcih2YXIgZT0wLGk9dC5sZW5ndGg7aT5lO2UrKyl0aGlzLmFkZExheWVyKHRbZV0pfSxfcmVzZXRWaWV3OmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBzPXRoaXMuX3pvb20hPT1lO258fCh0aGlzLmZpcmUoIm1vdmVzdGFydCIpLHMmJnRoaXMuZmlyZSgiem9vbXN0YXJ0IikpLHRoaXMuX3pvb209ZSx0aGlzLl9pbml0aWFsQ2VudGVyPXQsdGhpcy5faW5pdGlhbFRvcExlZnRQb2ludD10aGlzLl9nZXROZXdUb3BMZWZ0UG9pbnQodCksaT90aGlzLl9pbml0aWFsVG9wTGVmdFBvaW50Ll9hZGQodGhpcy5fZ2V0TWFwUGFuZVBvcygpKTpvLkRvbVV0aWwuc2V0UG9zaXRpb24odGhpcy5fbWFwUGFuZSxuZXcgby5Qb2ludCgwLDApKSx0aGlzLl90aWxlTGF5ZXJzVG9Mb2FkPXRoaXMuX3RpbGVMYXllcnNOdW07dmFyIGE9IXRoaXMuX2xvYWRlZDt0aGlzLl9sb2FkZWQ9ITAsdGhpcy5maXJlKCJ2aWV3cmVzZXQiLHtoYXJkOiFpfSksYSYmKHRoaXMuZmlyZSgibG9hZCIpLHRoaXMuZWFjaExheWVyKHRoaXMuX2xheWVyQWRkLHRoaXMpKSx0aGlzLmZpcmUoIm1vdmUiKSwoc3x8bikmJnRoaXMuZmlyZSgiem9vbWVuZCIpLHRoaXMuZmlyZSgibW92ZWVuZCIse2hhcmQ6IWl9KX0sX3Jhd1BhbkJ5OmZ1bmN0aW9uKHQpe28uRG9tVXRpbC5zZXRQb3NpdGlvbih0aGlzLl9tYXBQYW5lLHRoaXMuX2dldE1hcFBhbmVQb3MoKS5zdWJ0cmFjdCh0KSl9LF9nZXRab29tU3BhbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldE1heFpvb20oKS10aGlzLmdldE1pblpvb20oKX0sX3VwZGF0ZVpvb21MZXZlbHM6ZnVuY3Rpb24oKXt2YXIgdCxlPTEvMCxuPS0xLzAsbz10aGlzLl9nZXRab29tU3BhbigpO2Zvcih0IGluIHRoaXMuX3pvb21Cb3VuZExheWVycyl7dmFyIHM9dGhpcy5fem9vbUJvdW5kTGF5ZXJzW3RdO2lzTmFOKHMub3B0aW9ucy5taW5ab29tKXx8KGU9TWF0aC5taW4oZSxzLm9wdGlvbnMubWluWm9vbSkpLGlzTmFOKHMub3B0aW9ucy5tYXhab29tKXx8KG49TWF0aC5tYXgobixzLm9wdGlvbnMubWF4Wm9vbSkpfXQ9PT1pP3RoaXMuX2xheWVyc01heFpvb209dGhpcy5fbGF5ZXJzTWluWm9vbT1pOih0aGlzLl9sYXllcnNNYXhab29tPW4sdGhpcy5fbGF5ZXJzTWluWm9vbT1lKSxvIT09dGhpcy5fZ2V0Wm9vbVNwYW4oKSYmdGhpcy5maXJlKCJ6b29tbGV2ZWxzY2hhbmdlIil9LF9wYW5JbnNpZGVNYXhCb3VuZHM6ZnVuY3Rpb24oKXt0aGlzLnBhbkluc2lkZUJvdW5kcyh0aGlzLm9wdGlvbnMubWF4Qm91bmRzKX0sX2NoZWNrSWZMb2FkZWQ6ZnVuY3Rpb24oKXtpZighdGhpcy5fbG9hZGVkKXRocm93IG5ldyBFcnJvcigiU2V0IG1hcCBjZW50ZXIgYW5kIHpvb20gZmlyc3QuIil9LF9pbml0RXZlbnRzOmZ1bmN0aW9uKGUpe2lmKG8uRG9tRXZlbnQpe2U9ZXx8Im9uIixvLkRvbUV2ZW50W2VdKHRoaXMuX2NvbnRhaW5lciwiY2xpY2siLHRoaXMuX29uTW91c2VDbGljayx0aGlzKTt2YXIgaSxuLHM9WyJkYmxjbGljayIsIm1vdXNlZG93biIsIm1vdXNldXAiLCJtb3VzZWVudGVyIiwibW91c2VsZWF2ZSIsIm1vdXNlbW92ZSIsImNvbnRleHRtZW51Il07Zm9yKGk9MCxuPXMubGVuZ3RoO24+aTtpKyspby5Eb21FdmVudFtlXSh0aGlzLl9jb250YWluZXIsc1tpXSx0aGlzLl9maXJlTW91c2VFdmVudCx0aGlzKTt0aGlzLm9wdGlvbnMudHJhY2tSZXNpemUmJm8uRG9tRXZlbnRbZV0odCwicmVzaXplIix0aGlzLl9vblJlc2l6ZSx0aGlzKX19LF9vblJlc2l6ZTpmdW5jdGlvbigpe28uVXRpbC5jYW5jZWxBbmltRnJhbWUodGhpcy5fcmVzaXplUmVxdWVzdCksdGhpcy5fcmVzaXplUmVxdWVzdD1vLlV0aWwucmVxdWVzdEFuaW1GcmFtZShmdW5jdGlvbigpe3RoaXMuaW52YWxpZGF0ZVNpemUoe2RlYm91bmNlTW92ZWVuZDohMH0pfSx0aGlzLCExLHRoaXMuX2NvbnRhaW5lcil9LF9vbk1vdXNlQ2xpY2s6ZnVuY3Rpb24odCl7IXRoaXMuX2xvYWRlZHx8IXQuX3NpbXVsYXRlZCYmKHRoaXMuZHJhZ2dpbmcmJnRoaXMuZHJhZ2dpbmcubW92ZWQoKXx8dGhpcy5ib3hab29tJiZ0aGlzLmJveFpvb20ubW92ZWQoKSl8fG8uRG9tRXZlbnQuX3NraXBwZWQodCl8fCh0aGlzLmZpcmUoInByZWNsaWNrIiksdGhpcy5fZmlyZU1vdXNlRXZlbnQodCkpfSxfZmlyZU1vdXNlRXZlbnQ6ZnVuY3Rpb24odCl7aWYodGhpcy5fbG9hZGVkJiYhby5Eb21FdmVudC5fc2tpcHBlZCh0KSl7dmFyIGU9dC50eXBlO2lmKGU9Im1vdXNlZW50ZXIiPT09ZT8ibW91c2VvdmVyIjoibW91c2VsZWF2ZSI9PT1lPyJtb3VzZW91dCI6ZSx0aGlzLmhhc0V2ZW50TGlzdGVuZXJzKGUpKXsiY29udGV4dG1lbnUiPT09ZSYmby5Eb21FdmVudC5wcmV2ZW50RGVmYXVsdCh0KTt2YXIgaT10aGlzLm1vdXNlRXZlbnRUb0NvbnRhaW5lclBvaW50KHQpLG49dGhpcy5jb250YWluZXJQb2ludFRvTGF5ZXJQb2ludChpKSxzPXRoaXMubGF5ZXJQb2ludFRvTGF0TG5nKG4pO3RoaXMuZmlyZShlLHtsYXRsbmc6cyxsYXllclBvaW50Om4sY29udGFpbmVyUG9pbnQ6aSxvcmlnaW5hbEV2ZW50OnR9KX19fSxfb25UaWxlTGF5ZXJMb2FkOmZ1bmN0aW9uKCl7dGhpcy5fdGlsZUxheWVyc1RvTG9hZC0tLHRoaXMuX3RpbGVMYXllcnNOdW0mJiF0aGlzLl90aWxlTGF5ZXJzVG9Mb2FkJiZ0aGlzLmZpcmUoInRpbGVsYXllcnNsb2FkIil9LF9jbGVhckhhbmRsZXJzOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsZT10aGlzLl9oYW5kbGVycy5sZW5ndGg7ZT50O3QrKyl0aGlzLl9oYW5kbGVyc1t0XS5kaXNhYmxlKCl9LHdoZW5SZWFkeTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9sb2FkZWQ/dC5jYWxsKGV8fHRoaXMsdGhpcyk6dGhpcy5vbigibG9hZCIsdCxlKSx0aGlzfSxfbGF5ZXJBZGQ6ZnVuY3Rpb24odCl7dC5vbkFkZCh0aGlzKSx0aGlzLmZpcmUoImxheWVyYWRkIix7bGF5ZXI6dH0pfSxfZ2V0TWFwUGFuZVBvczpmdW5jdGlvbigpe3JldHVybiBvLkRvbVV0aWwuZ2V0UG9zaXRpb24odGhpcy5fbWFwUGFuZSl9LF9tb3ZlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2dldE1hcFBhbmVQb3MoKTtyZXR1cm4gdCYmIXQuZXF1YWxzKFswLDBdKX0sX2dldFRvcExlZnRQb2ludDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFBpeGVsT3JpZ2luKCkuc3VidHJhY3QodGhpcy5fZ2V0TWFwUGFuZVBvcygpKX0sX2dldE5ld1RvcExlZnRQb2ludDpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuZ2V0U2l6ZSgpLl9kaXZpZGVCeSgyKTtyZXR1cm4gdGhpcy5wcm9qZWN0KHQsZSkuX3N1YnRyYWN0KGkpLl9yb3VuZCgpfSxfbGF0TG5nVG9OZXdMYXllclBvaW50OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbj10aGlzLl9nZXROZXdUb3BMZWZ0UG9pbnQoaSxlKS5hZGQodGhpcy5fZ2V0TWFwUGFuZVBvcygpKTtyZXR1cm4gdGhpcy5wcm9qZWN0KHQsZSkuX3N1YnRyYWN0KG4pfSxfZ2V0Q2VudGVyTGF5ZXJQb2ludDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRhaW5lclBvaW50VG9MYXllclBvaW50KHRoaXMuZ2V0U2l6ZSgpLl9kaXZpZGVCeSgyKSl9LF9nZXRDZW50ZXJPZmZzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGF0TG5nVG9MYXllclBvaW50KHQpLnN1YnRyYWN0KHRoaXMuX2dldENlbnRlckxheWVyUG9pbnQoKSl9LF9saW1pdENlbnRlcjpmdW5jdGlvbih0LGUsaSl7aWYoIWkpcmV0dXJuIHQ7dmFyIG49dGhpcy5wcm9qZWN0KHQsZSkscz10aGlzLmdldFNpemUoKS5kaXZpZGVCeSgyKSxhPW5ldyBvLkJvdW5kcyhuLnN1YnRyYWN0KHMpLG4uYWRkKHMpKSxyPXRoaXMuX2dldEJvdW5kc09mZnNldChhLGksZSk7cmV0dXJuIHRoaXMudW5wcm9qZWN0KG4uYWRkKHIpLGUpfSxfbGltaXRPZmZzZXQ6ZnVuY3Rpb24odCxlKXtpZighZSlyZXR1cm4gdDt2YXIgaT10aGlzLmdldFBpeGVsQm91bmRzKCksbj1uZXcgby5Cb3VuZHMoaS5taW4uYWRkKHQpLGkubWF4LmFkZCh0KSk7cmV0dXJuIHQuYWRkKHRoaXMuX2dldEJvdW5kc09mZnNldChuLGUpKX0sX2dldEJvdW5kc09mZnNldDpmdW5jdGlvbih0LGUsaSl7dmFyIG49dGhpcy5wcm9qZWN0KGUuZ2V0Tm9ydGhXZXN0KCksaSkuc3VidHJhY3QodC5taW4pLHM9dGhpcy5wcm9qZWN0KGUuZ2V0U291dGhFYXN0KCksaSkuc3VidHJhY3QodC5tYXgpLGE9dGhpcy5fcmVib3VuZChuLngsLXMueCkscj10aGlzLl9yZWJvdW5kKG4ueSwtcy55KTtyZXR1cm4gbmV3IG8uUG9pbnQoYSxyKX0sX3JlYm91bmQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlPjA/TWF0aC5yb3VuZCh0LWUpLzI6TWF0aC5tYXgoMCxNYXRoLmNlaWwodCkpLU1hdGgubWF4KDAsTWF0aC5mbG9vcihlKSl9LF9saW1pdFpvb206ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nZXRNaW5ab29tKCksaT10aGlzLmdldE1heFpvb20oKTtyZXR1cm4gTWF0aC5tYXgoZSxNYXRoLm1pbihpLHQpKX19KSxvLm1hcD1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgby5NYXAodCxlKX0sby5Qcm9qZWN0aW9uLk1lcmNhdG9yPXtNQVhfTEFUSVRVREU6ODUuMDg0MDU5MTU1NixSX01JTk9SOjYzNTY3NTIuMzE0MjQ1MTc5LFJfTUFKT1I6NjM3ODEzNyxwcm9qZWN0OmZ1bmN0aW9uKHQpe3ZhciBlPW8uTGF0TG5nLkRFR19UT19SQUQsaT10aGlzLk1BWF9MQVRJVFVERSxuPU1hdGgubWF4KE1hdGgubWluKGksdC5sYXQpLC1pKSxzPXRoaXMuUl9NQUpPUixhPXRoaXMuUl9NSU5PUixyPXQubG5nKmUqcyxoPW4qZSxsPWEvcyx1PU1hdGguc3FydCgxLWwqbCksYz11Kk1hdGguc2luKGgpO2M9TWF0aC5wb3coKDEtYykvKDErYyksLjUqdSk7dmFyIGQ9TWF0aC50YW4oLjUqKC41Kk1hdGguUEktaCkpL2M7cmV0dXJuIGg9LXMqTWF0aC5sb2coZCksbmV3IG8uUG9pbnQocixoKX0sdW5wcm9qZWN0OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPW8uTGF0TG5nLlJBRF9UT19ERUcsbj10aGlzLlJfTUFKT1Iscz10aGlzLlJfTUlOT1IsYT10LngqaS9uLHI9cy9uLGg9TWF0aC5zcXJ0KDEtcipyKSxsPU1hdGguZXhwKC10LnkvbiksdT1NYXRoLlBJLzItMipNYXRoLmF0YW4obCksYz0xNSxkPTFlLTcscD1jLF89LjE7TWF0aC5hYnMoXyk+ZCYmLS1wPjA7KWU9aCpNYXRoLnNpbih1KSxfPU1hdGguUEkvMi0yKk1hdGguYXRhbihsKk1hdGgucG93KCgxLWUpLygxK2UpLC41KmgpKS11LHUrPV87CnJldHVybiBuZXcgby5MYXRMbmcodSppLGEpfX0sby5DUlMuRVBTRzMzOTU9by5leHRlbmQoe30sby5DUlMse2NvZGU6IkVQU0c6MzM5NSIscHJvamVjdGlvbjpvLlByb2plY3Rpb24uTWVyY2F0b3IsdHJhbnNmb3JtYXRpb246ZnVuY3Rpb24oKXt2YXIgdD1vLlByb2plY3Rpb24uTWVyY2F0b3IsZT10LlJfTUFKT1IsaT0uNS8oTWF0aC5QSSplKTtyZXR1cm4gbmV3IG8uVHJhbnNmb3JtYXRpb24oaSwuNSwtaSwuNSl9KCl9KSxvLlRpbGVMYXllcj1vLkNsYXNzLmV4dGVuZCh7aW5jbHVkZXM6by5NaXhpbi5FdmVudHMsb3B0aW9uczp7bWluWm9vbTowLG1heFpvb206MTgsdGlsZVNpemU6MjU2LHN1YmRvbWFpbnM6ImFiYyIsZXJyb3JUaWxlVXJsOiIiLGF0dHJpYnV0aW9uOiIiLHpvb21PZmZzZXQ6MCxvcGFjaXR5OjEsdW5sb2FkSW52aXNpYmxlVGlsZXM6by5Ccm93c2VyLm1vYmlsZSx1cGRhdGVXaGVuSWRsZTpvLkJyb3dzZXIubW9iaWxlfSxpbml0aWFsaXplOmZ1bmN0aW9uKHQsZSl7ZT1vLnNldE9wdGlvbnModGhpcyxlKSxlLmRldGVjdFJldGluYSYmby5Ccm93c2VyLnJldGluYSYmZS5tYXhab29tPjAmJihlLnRpbGVTaXplPU1hdGguZmxvb3IoZS50aWxlU2l6ZS8yKSxlLnpvb21PZmZzZXQrKyxlLm1pblpvb20+MCYmZS5taW5ab29tLS0sdGhpcy5vcHRpb25zLm1heFpvb20tLSksZS5ib3VuZHMmJihlLmJvdW5kcz1vLmxhdExuZ0JvdW5kcyhlLmJvdW5kcykpLHRoaXMuX3VybD10O3ZhciBpPXRoaXMub3B0aW9ucy5zdWJkb21haW5zOyJzdHJpbmciPT10eXBlb2YgaSYmKHRoaXMub3B0aW9ucy5zdWJkb21haW5zPWkuc3BsaXQoIiIpKX0sb25BZGQ6ZnVuY3Rpb24odCl7dGhpcy5fbWFwPXQsdGhpcy5fYW5pbWF0ZWQ9dC5fem9vbUFuaW1hdGVkLHRoaXMuX2luaXRDb250YWluZXIoKSx0Lm9uKHt2aWV3cmVzZXQ6dGhpcy5fcmVzZXQsbW92ZWVuZDp0aGlzLl91cGRhdGV9LHRoaXMpLHRoaXMuX2FuaW1hdGVkJiZ0Lm9uKHt6b29tYW5pbTp0aGlzLl9hbmltYXRlWm9vbSx6b29tZW5kOnRoaXMuX2VuZFpvb21BbmltfSx0aGlzKSx0aGlzLm9wdGlvbnMudXBkYXRlV2hlbklkbGV8fCh0aGlzLl9saW1pdGVkVXBkYXRlPW8uVXRpbC5saW1pdEV4ZWNCeUludGVydmFsKHRoaXMuX3VwZGF0ZSwxNTAsdGhpcyksdC5vbigibW92ZSIsdGhpcy5fbGltaXRlZFVwZGF0ZSx0aGlzKSksdGhpcy5fcmVzZXQoKSx0aGlzLl91cGRhdGUoKX0sYWRkVG86ZnVuY3Rpb24odCl7cmV0dXJuIHQuYWRkTGF5ZXIodGhpcyksdGhpc30sb25SZW1vdmU6ZnVuY3Rpb24odCl7dGhpcy5fY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fY29udGFpbmVyKSx0Lm9mZih7dmlld3Jlc2V0OnRoaXMuX3Jlc2V0LG1vdmVlbmQ6dGhpcy5fdXBkYXRlfSx0aGlzKSx0aGlzLl9hbmltYXRlZCYmdC5vZmYoe3pvb21hbmltOnRoaXMuX2FuaW1hdGVab29tLHpvb21lbmQ6dGhpcy5fZW5kWm9vbUFuaW19LHRoaXMpLHRoaXMub3B0aW9ucy51cGRhdGVXaGVuSWRsZXx8dC5vZmYoIm1vdmUiLHRoaXMuX2xpbWl0ZWRVcGRhdGUsdGhpcyksdGhpcy5fY29udGFpbmVyPW51bGwsdGhpcy5fbWFwPW51bGx9LGJyaW5nVG9Gcm9udDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX21hcC5fcGFuZXMudGlsZVBhbmU7cmV0dXJuIHRoaXMuX2NvbnRhaW5lciYmKHQuYXBwZW5kQ2hpbGQodGhpcy5fY29udGFpbmVyKSx0aGlzLl9zZXRBdXRvWkluZGV4KHQsTWF0aC5tYXgpKSx0aGlzfSxicmluZ1RvQmFjazpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX21hcC5fcGFuZXMudGlsZVBhbmU7cmV0dXJuIHRoaXMuX2NvbnRhaW5lciYmKHQuaW5zZXJ0QmVmb3JlKHRoaXMuX2NvbnRhaW5lcix0LmZpcnN0Q2hpbGQpLHRoaXMuX3NldEF1dG9aSW5kZXgodCxNYXRoLm1pbikpLHRoaXN9LGdldEF0dHJpYnV0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5hdHRyaWJ1dGlvbn0sZ2V0Q29udGFpbmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbnRhaW5lcn0sc2V0T3BhY2l0eTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zLm9wYWNpdHk9dCx0aGlzLl9tYXAmJnRoaXMuX3VwZGF0ZU9wYWNpdHkoKSx0aGlzfSxzZXRaSW5kZXg6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMub3B0aW9ucy56SW5kZXg9dCx0aGlzLl91cGRhdGVaSW5kZXgoKSx0aGlzfSxzZXRVcmw6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdXJsPXQsZXx8dGhpcy5yZWRyYXcoKSx0aGlzfSxyZWRyYXc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWFwJiYodGhpcy5fcmVzZXQoe2hhcmQ6ITB9KSx0aGlzLl91cGRhdGUoKSksdGhpc30sX3VwZGF0ZVpJbmRleDpmdW5jdGlvbigpe3RoaXMuX2NvbnRhaW5lciYmdGhpcy5vcHRpb25zLnpJbmRleCE9PWkmJih0aGlzLl9jb250YWluZXIuc3R5bGUuekluZGV4PXRoaXMub3B0aW9ucy56SW5kZXgpfSxfc2V0QXV0b1pJbmRleDpmdW5jdGlvbih0LGUpe3ZhciBpLG4sbyxzPXQuY2hpbGRyZW4sYT0tZSgxLzAsLTEvMCk7Zm9yKG49MCxvPXMubGVuZ3RoO28+bjtuKyspc1tuXSE9PXRoaXMuX2NvbnRhaW5lciYmKGk9cGFyc2VJbnQoc1tuXS5zdHlsZS56SW5kZXgsMTApLGlzTmFOKGkpfHwoYT1lKGEsaSkpKTt0aGlzLm9wdGlvbnMuekluZGV4PXRoaXMuX2NvbnRhaW5lci5zdHlsZS56SW5kZXg9KGlzRmluaXRlKGEpP2E6MCkrZSgxLC0xKX0sX3VwZGF0ZU9wYWNpdHk6ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMuX3RpbGVzO2lmKG8uQnJvd3Nlci5pZWx0OSlmb3IodCBpbiBlKW8uRG9tVXRpbC5zZXRPcGFjaXR5KGVbdF0sdGhpcy5vcHRpb25zLm9wYWNpdHkpO2Vsc2Ugby5Eb21VdGlsLnNldE9wYWNpdHkodGhpcy5fY29udGFpbmVyLHRoaXMub3B0aW9ucy5vcGFjaXR5KX0sX2luaXRDb250YWluZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9tYXAuX3BhbmVzLnRpbGVQYW5lO2lmKCF0aGlzLl9jb250YWluZXIpe2lmKHRoaXMuX2NvbnRhaW5lcj1vLkRvbVV0aWwuY3JlYXRlKCJkaXYiLCJsZWFmbGV0LWxheWVyIiksdGhpcy5fdXBkYXRlWkluZGV4KCksdGhpcy5fYW5pbWF0ZWQpe3ZhciBlPSJsZWFmbGV0LXRpbGUtY29udGFpbmVyIjt0aGlzLl9iZ0J1ZmZlcj1vLkRvbVV0aWwuY3JlYXRlKCJkaXYiLGUsdGhpcy5fY29udGFpbmVyKSx0aGlzLl90aWxlQ29udGFpbmVyPW8uRG9tVXRpbC5jcmVhdGUoImRpdiIsZSx0aGlzLl9jb250YWluZXIpfWVsc2UgdGhpcy5fdGlsZUNvbnRhaW5lcj10aGlzLl9jb250YWluZXI7dC5hcHBlbmRDaGlsZCh0aGlzLl9jb250YWluZXIpLHRoaXMub3B0aW9ucy5vcGFjaXR5PDEmJnRoaXMuX3VwZGF0ZU9wYWNpdHkoKX19LF9yZXNldDpmdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcy5fdGlsZXMpdGhpcy5maXJlKCJ0aWxldW5sb2FkIix7dGlsZTp0aGlzLl90aWxlc1tlXX0pO3RoaXMuX3RpbGVzPXt9LHRoaXMuX3RpbGVzVG9Mb2FkPTAsdGhpcy5vcHRpb25zLnJldXNlVGlsZXMmJih0aGlzLl91bnVzZWRUaWxlcz1bXSksdGhpcy5fdGlsZUNvbnRhaW5lci5pbm5lckhUTUw9IiIsdGhpcy5fYW5pbWF0ZWQmJnQmJnQuaGFyZCYmdGhpcy5fY2xlYXJCZ0J1ZmZlcigpLHRoaXMuX2luaXRDb250YWluZXIoKX0sX2dldFRpbGVTaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbWFwLGU9dC5nZXRab29tKCkrdGhpcy5vcHRpb25zLnpvb21PZmZzZXQsaT10aGlzLm9wdGlvbnMubWF4TmF0aXZlWm9vbSxuPXRoaXMub3B0aW9ucy50aWxlU2l6ZTtyZXR1cm4gaSYmZT5pJiYobj1NYXRoLnJvdW5kKHQuZ2V0Wm9vbVNjYWxlKGUpL3QuZ2V0Wm9vbVNjYWxlKGkpKm4pKSxufSxfdXBkYXRlOmZ1bmN0aW9uKCl7aWYodGhpcy5fbWFwKXt2YXIgdD10aGlzLl9tYXAsZT10LmdldFBpeGVsQm91bmRzKCksaT10LmdldFpvb20oKSxuPXRoaXMuX2dldFRpbGVTaXplKCk7aWYoIShpPnRoaXMub3B0aW9ucy5tYXhab29tfHxpPHRoaXMub3B0aW9ucy5taW5ab29tKSl7dmFyIHM9by5ib3VuZHMoZS5taW4uZGl2aWRlQnkobikuX2Zsb29yKCksZS5tYXguZGl2aWRlQnkobikuX2Zsb29yKCkpO3RoaXMuX2FkZFRpbGVzRnJvbUNlbnRlck91dChzKSwodGhpcy5vcHRpb25zLnVubG9hZEludmlzaWJsZVRpbGVzfHx0aGlzLm9wdGlvbnMucmV1c2VUaWxlcykmJnRoaXMuX3JlbW92ZU90aGVyVGlsZXMocyl9fX0sX2FkZFRpbGVzRnJvbUNlbnRlck91dDpmdW5jdGlvbih0KXt2YXIgaSxuLHMsYT1bXSxyPXQuZ2V0Q2VudGVyKCk7Zm9yKGk9dC5taW4ueTtpPD10Lm1heC55O2krKylmb3Iobj10Lm1pbi54O248PXQubWF4Lng7bisrKXM9bmV3IG8uUG9pbnQobixpKSx0aGlzLl90aWxlU2hvdWxkQmVMb2FkZWQocykmJmEucHVzaChzKTt2YXIgaD1hLmxlbmd0aDtpZigwIT09aCl7YS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuZGlzdGFuY2VUbyhyKS1lLmRpc3RhbmNlVG8ocil9KTt2YXIgbD1lLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtmb3IodGhpcy5fdGlsZXNUb0xvYWR8fHRoaXMuZmlyZSgibG9hZGluZyIpLHRoaXMuX3RpbGVzVG9Mb2FkKz1oLG49MDtoPm47bisrKXRoaXMuX2FkZFRpbGUoYVtuXSxsKTt0aGlzLl90aWxlQ29udGFpbmVyLmFwcGVuZENoaWxkKGwpfX0sX3RpbGVTaG91bGRCZUxvYWRlZDpmdW5jdGlvbih0KXtpZih0LngrIjoiK3QueSBpbiB0aGlzLl90aWxlcylyZXR1cm4hMTt2YXIgZT10aGlzLm9wdGlvbnM7aWYoIWUuY29udGludW91c1dvcmxkKXt2YXIgaT10aGlzLl9nZXRXcmFwVGlsZU51bSgpO2lmKGUubm9XcmFwJiYodC54PDB8fHQueD49aS54KXx8dC55PDB8fHQueT49aS55KXJldHVybiExfWlmKGUuYm91bmRzKXt2YXIgbj1lLnRpbGVTaXplLG89dC5tdWx0aXBseUJ5KG4pLHM9by5hZGQoW24sbl0pLGE9dGhpcy5fbWFwLnVucHJvamVjdChvKSxyPXRoaXMuX21hcC51bnByb2plY3Qocyk7aWYoZS5jb250aW51b3VzV29ybGR8fGUubm9XcmFwfHwoYT1hLndyYXAoKSxyPXIud3JhcCgpKSwhZS5ib3VuZHMuaW50ZXJzZWN0cyhbYSxyXSkpcmV0dXJuITF9cmV0dXJuITB9LF9yZW1vdmVPdGhlclRpbGVzOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixvO2ZvcihvIGluIHRoaXMuX3RpbGVzKWU9by5zcGxpdCgiOiIpLGk9cGFyc2VJbnQoZVswXSwxMCksbj1wYXJzZUludChlWzFdLDEwKSwoaTx0Lm1pbi54fHxpPnQubWF4Lnh8fG48dC5taW4ueXx8bj50Lm1heC55KSYmdGhpcy5fcmVtb3ZlVGlsZShvKX0sX3JlbW92ZVRpbGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGlsZXNbdF07dGhpcy5maXJlKCJ0aWxldW5sb2FkIix7dGlsZTplLHVybDplLnNyY30pLHRoaXMub3B0aW9ucy5yZXVzZVRpbGVzPyhvLkRvbVV0aWwucmVtb3ZlQ2xhc3MoZSwibGVhZmxldC10aWxlLWxvYWRlZCIpLHRoaXMuX3VudXNlZFRpbGVzLnB1c2goZSkpOmUucGFyZW50Tm9kZT09PXRoaXMuX3RpbGVDb250YWluZXImJnRoaXMuX3RpbGVDb250YWluZXIucmVtb3ZlQ2hpbGQoZSksby5Ccm93c2VyLmFuZHJvaWR8fChlLm9ubG9hZD1udWxsLGUuc3JjPW8uVXRpbC5lbXB0eUltYWdlVXJsKSxkZWxldGUgdGhpcy5fdGlsZXNbdF19LF9hZGRUaWxlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5fZ2V0VGlsZVBvcyh0KSxuPXRoaXMuX2dldFRpbGUoKTtvLkRvbVV0aWwuc2V0UG9zaXRpb24obixpLG8uQnJvd3Nlci5jaHJvbWUpLHRoaXMuX3RpbGVzW3QueCsiOiIrdC55XT1uLHRoaXMuX2xvYWRUaWxlKG4sdCksbi5wYXJlbnROb2RlIT09dGhpcy5fdGlsZUNvbnRhaW5lciYmZS5hcHBlbmRDaGlsZChuKX0sX2dldFpvb21Gb3JVcmw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMsZT10aGlzLl9tYXAuZ2V0Wm9vbSgpO3JldHVybiB0Lnpvb21SZXZlcnNlJiYoZT10Lm1heFpvb20tZSksZSs9dC56b29tT2Zmc2V0LHQubWF4TmF0aXZlWm9vbT9NYXRoLm1pbihlLHQubWF4TmF0aXZlWm9vbSk6ZX0sX2dldFRpbGVQb3M6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbWFwLmdldFBpeGVsT3JpZ2luKCksaT10aGlzLl9nZXRUaWxlU2l6ZSgpO3JldHVybiB0Lm11bHRpcGx5QnkoaSkuc3VidHJhY3QoZSl9LGdldFRpbGVVcmw6ZnVuY3Rpb24odCl7cmV0dXJuIG8uVXRpbC50ZW1wbGF0ZSh0aGlzLl91cmwsby5leHRlbmQoe3M6dGhpcy5fZ2V0U3ViZG9tYWluKHQpLHo6dC56LHg6dC54LHk6dC55fSx0aGlzLm9wdGlvbnMpKX0sX2dldFdyYXBUaWxlTnVtOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbWFwLm9wdGlvbnMuY3JzLGU9dC5nZXRTaXplKHRoaXMuX21hcC5nZXRab29tKCkpO3JldHVybiBlLmRpdmlkZUJ5KHRoaXMuX2dldFRpbGVTaXplKCkpLl9mbG9vcigpfSxfYWRqdXN0VGlsZVBvaW50OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2dldFdyYXBUaWxlTnVtKCk7dGhpcy5vcHRpb25zLmNvbnRpbnVvdXNXb3JsZHx8dGhpcy5vcHRpb25zLm5vV3JhcHx8KHQueD0odC54JWUueCtlLngpJWUueCksdGhpcy5vcHRpb25zLnRtcyYmKHQueT1lLnktdC55LTEpLHQuej10aGlzLl9nZXRab29tRm9yVXJsKCl9LF9nZXRTdWJkb21haW46ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5hYnModC54K3QueSkldGhpcy5vcHRpb25zLnN1YmRvbWFpbnMubGVuZ3RoO3JldHVybiB0aGlzLm9wdGlvbnMuc3ViZG9tYWluc1tlXX0sX2dldFRpbGU6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMucmV1c2VUaWxlcyYmdGhpcy5fdW51c2VkVGlsZXMubGVuZ3RoPjApe3ZhciB0PXRoaXMuX3VudXNlZFRpbGVzLnBvcCgpO3JldHVybiB0aGlzLl9yZXNldFRpbGUodCksdH1yZXR1cm4gdGhpcy5fY3JlYXRlVGlsZSgpfSxfcmVzZXRUaWxlOmZ1bmN0aW9uKCl7fSxfY3JlYXRlVGlsZTpmdW5jdGlvbigpe3ZhciB0PW8uRG9tVXRpbC5jcmVhdGUoImltZyIsImxlYWZsZXQtdGlsZSIpO3JldHVybiB0LnN0eWxlLndpZHRoPXQuc3R5bGUuaGVpZ2h0PXRoaXMuX2dldFRpbGVTaXplKCkrInB4Iix0LmdhbGxlcnlpbWc9Im5vIix0Lm9uc2VsZWN0c3RhcnQ9dC5vbm1vdXNlbW92ZT1vLlV0aWwuZmFsc2VGbixvLkJyb3dzZXIuaWVsdDkmJnRoaXMub3B0aW9ucy5vcGFjaXR5IT09aSYmby5Eb21VdGlsLnNldE9wYWNpdHkodCx0aGlzLm9wdGlvbnMub3BhY2l0eSksby5Ccm93c2VyLm1vYmlsZVdlYmtpdDNkJiYodC5zdHlsZS5XZWJraXRCYWNrZmFjZVZpc2liaWxpdHk9ImhpZGRlbiIpLHR9LF9sb2FkVGlsZTpmdW5jdGlvbih0LGUpe3QuX2xheWVyPXRoaXMsdC5vbmxvYWQ9dGhpcy5fdGlsZU9uTG9hZCx0Lm9uZXJyb3I9dGhpcy5fdGlsZU9uRXJyb3IsdGhpcy5fYWRqdXN0VGlsZVBvaW50KGUpLHQuc3JjPXRoaXMuZ2V0VGlsZVVybChlKSx0aGlzLmZpcmUoInRpbGVsb2Fkc3RhcnQiLHt0aWxlOnQsdXJsOnQuc3JjfSl9LF90aWxlTG9hZGVkOmZ1bmN0aW9uKCl7dGhpcy5fdGlsZXNUb0xvYWQtLSx0aGlzLl9hbmltYXRlZCYmby5Eb21VdGlsLmFkZENsYXNzKHRoaXMuX3RpbGVDb250YWluZXIsImxlYWZsZXQtem9vbS1hbmltYXRlZCIpLHRoaXMuX3RpbGVzVG9Mb2FkfHwodGhpcy5maXJlKCJsb2FkIiksdGhpcy5fYW5pbWF0ZWQmJihjbGVhclRpbWVvdXQodGhpcy5fY2xlYXJCZ0J1ZmZlclRpbWVyKSx0aGlzLl9jbGVhckJnQnVmZmVyVGltZXI9c2V0VGltZW91dChvLmJpbmQodGhpcy5fY2xlYXJCZ0J1ZmZlcix0aGlzKSw1MDApKSl9LF90aWxlT25Mb2FkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbGF5ZXI7dGhpcy5zcmMhPT1vLlV0aWwuZW1wdHlJbWFnZVVybCYmKG8uRG9tVXRpbC5hZGRDbGFzcyh0aGlzLCJsZWFmbGV0LXRpbGUtbG9hZGVkIiksdC5maXJlKCJ0aWxlbG9hZCIse3RpbGU6dGhpcyx1cmw6dGhpcy5zcmN9KSksdC5fdGlsZUxvYWRlZCgpfSxfdGlsZU9uRXJyb3I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9sYXllcjt0LmZpcmUoInRpbGVlcnJvciIse3RpbGU6dGhpcyx1cmw6dGhpcy5zcmN9KTt2YXIgZT10Lm9wdGlvbnMuZXJyb3JUaWxlVXJsO2UmJih0aGlzLnNyYz1lKSx0Ll90aWxlTG9hZGVkKCl9fSksby50aWxlTGF5ZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IG8uVGlsZUxheWVyKHQsZSl9LG8uVGlsZUxheWVyLldNUz1vLlRpbGVMYXllci5leHRlbmQoe2RlZmF1bHRXbXNQYXJhbXM6e3NlcnZpY2U6IldNUyIscmVxdWVzdDoiR2V0TWFwIix2ZXJzaW9uOiIxLjEuMSIsbGF5ZXJzOiIiLHN0eWxlczoiIixmb3JtYXQ6ImltYWdlL2pwZWciLHRyYW5zcGFyZW50OiExfSxpbml0aWFsaXplOmZ1bmN0aW9uKHQsZSl7dGhpcy5fdXJsPXQ7dmFyIGk9by5leHRlbmQoe30sdGhpcy5kZWZhdWx0V21zUGFyYW1zKSxuPWUudGlsZVNpemV8fHRoaXMub3B0aW9ucy50aWxlU2l6ZTtpLndpZHRoPWkuaGVpZ2h0PWUuZGV0ZWN0UmV0aW5hJiZvLkJyb3dzZXIucmV0aW5hPzIqbjpuO2Zvcih2YXIgcyBpbiBlKXRoaXMub3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShzKXx8ImNycyI9PT1zfHwoaVtzXT1lW3NdKTt0aGlzLndtc1BhcmFtcz1pLG8uc2V0T3B0aW9ucyh0aGlzLGUpfSxvbkFkZDpmdW5jdGlvbih0KXt0aGlzLl9jcnM9dGhpcy5vcHRpb25zLmNyc3x8dC5vcHRpb25zLmNycyx0aGlzLl93bXNWZXJzaW9uPXBhcnNlRmxvYXQodGhpcy53bXNQYXJhbXMudmVyc2lvbik7dmFyIGU9dGhpcy5fd21zVmVyc2lvbj49MS4zPyJjcnMiOiJzcnMiO3RoaXMud21zUGFyYW1zW2VdPXRoaXMuX2Nycy5jb2RlLG8uVGlsZUxheWVyLnByb3RvdHlwZS5vbkFkZC5jYWxsKHRoaXMsdCl9LGdldFRpbGVVcmw6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbWFwLGk9dGhpcy5vcHRpb25zLnRpbGVTaXplLG49dC5tdWx0aXBseUJ5KGkpLHM9bi5hZGQoW2ksaV0pLGE9dGhpcy5fY3JzLnByb2plY3QoZS51bnByb2plY3Qobix0LnopKSxyPXRoaXMuX2Nycy5wcm9qZWN0KGUudW5wcm9qZWN0KHMsdC56KSksaD10aGlzLl93bXNWZXJzaW9uPj0xLjMmJnRoaXMuX2Nycz09PW8uQ1JTLkVQU0c0MzI2P1tyLnksYS54LGEueSxyLnhdLmpvaW4oIiwiKTpbYS54LHIueSxyLngsYS55XS5qb2luKCIsIiksbD1vLlV0aWwudGVtcGxhdGUodGhpcy5fdXJsLHtzOnRoaXMuX2dldFN1YmRvbWFpbih0KX0pO3JldHVybiBsK28uVXRpbC5nZXRQYXJhbVN0cmluZyh0aGlzLndtc1BhcmFtcyxsLCEwKSsiJkJCT1g9IitofSxzZXRQYXJhbXM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gby5leHRlbmQodGhpcy53bXNQYXJhbXMsdCksZXx8dGhpcy5yZWRyYXcoKSx0aGlzfX0pLG8udGlsZUxheWVyLndtcz1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgby5UaWxlTGF5ZXIuV01TKHQsZSl9LG8uVGlsZUxheWVyLkNhbnZhcz1vLlRpbGVMYXllci5leHRlbmQoe29wdGlvbnM6e2FzeW5jOiExfSxpbml0aWFsaXplOmZ1bmN0aW9uKHQpe28uc2V0T3B0aW9ucyh0aGlzLHQpfSxyZWRyYXc6ZnVuY3Rpb24oKXt0aGlzLl9tYXAmJih0aGlzLl9yZXNldCh7aGFyZDohMH0pLHRoaXMuX3VwZGF0ZSgpKTtmb3IodmFyIHQgaW4gdGhpcy5fdGlsZXMpdGhpcy5fcmVkcmF3VGlsZSh0aGlzLl90aWxlc1t0XSk7cmV0dXJuIHRoaXN9LF9yZWRyYXdUaWxlOmZ1bmN0aW9uKHQpe3RoaXMuZHJhd1RpbGUodCx0Ll90aWxlUG9pbnQsdGhpcy5fbWFwLl96b29tKX0sX2NyZWF0ZVRpbGU6ZnVuY3Rpb24oKXt2YXIgdD1vLkRvbVV0aWwuY3JlYXRlKCJjYW52YXMiLCJsZWFmbGV0LXRpbGUiKTtyZXR1cm4gdC53aWR0aD10LmhlaWdodD10aGlzLm9wdGlvbnMudGlsZVNpemUsdC5vbnNlbGVjdHN0YXJ0PXQub25tb3VzZW1vdmU9by5VdGlsLmZhbHNlRm4sdH0sX2xvYWRUaWxlOmZ1bmN0aW9uKHQsZSl7dC5fbGF5ZXI9dGhpcyx0Ll90aWxlUG9pbnQ9ZSx0aGlzLl9yZWRyYXdUaWxlKHQpLHRoaXMub3B0aW9ucy5hc3luY3x8dGhpcy50aWxlRHJhd24odCl9LGRyYXdUaWxlOmZ1bmN0aW9uKCl7fSx0aWxlRHJhd246ZnVuY3Rpb24odCl7dGhpcy5fdGlsZU9uTG9hZC5jYWxsKHQpfX0pLG8udGlsZUxheWVyLmNhbnZhcz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG8uVGlsZUxheWVyLkNhbnZhcyh0KX0sby5JbWFnZU92ZXJsYXk9by5DbGFzcy5leHRlbmQoe2luY2x1ZGVzOm8uTWl4aW4uRXZlbnRzLG9wdGlvbnM6e29wYWNpdHk6MX0saW5pdGlhbGl6ZTpmdW5jdGlvbih0LGUsaSl7dGhpcy5fdXJsPXQsdGhpcy5fYm91bmRzPW8ubGF0TG5nQm91bmRzKGUpLG8uc2V0T3B0aW9ucyh0aGlzLGkpfSxvbkFkZDpmdW5jdGlvbih0KXt0aGlzLl9tYXA9dCx0aGlzLl9pbWFnZXx8dGhpcy5faW5pdEltYWdlKCksdC5fcGFuZXMub3ZlcmxheVBhbmUuYXBwZW5kQ2hpbGQodGhpcy5faW1hZ2UpLHQub24oInZpZXdyZXNldCIsdGhpcy5fcmVzZXQsdGhpcyksdC5vcHRpb25zLnpvb21BbmltYXRpb24mJm8uQnJvd3Nlci5hbnkzZCYmdC5vbigiem9vbWFuaW0iLHRoaXMuX2FuaW1hdGVab29tLHRoaXMpLHRoaXMuX3Jlc2V0KCl9LG9uUmVtb3ZlOmZ1bmN0aW9uKHQpe3QuZ2V0UGFuZXMoKS5vdmVybGF5UGFuZS5yZW1vdmVDaGlsZCh0aGlzLl9pbWFnZSksdC5vZmYoInZpZXdyZXNldCIsdGhpcy5fcmVzZXQsdGhpcyksdC5vcHRpb25zLnpvb21BbmltYXRpb24mJnQub2ZmKCJ6b29tYW5pbSIsdGhpcy5fYW5pbWF0ZVpvb20sdGhpcyl9LGFkZFRvOmZ1bmN0aW9uKHQpe3JldHVybiB0LmFkZExheWVyKHRoaXMpLHRoaXN9LHNldE9wYWNpdHk6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMub3B0aW9ucy5vcGFjaXR5PXQsdGhpcy5fdXBkYXRlT3BhY2l0eSgpLHRoaXN9LGJyaW5nVG9Gcm9udDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9pbWFnZSYmdGhpcy5fbWFwLl9wYW5lcy5vdmVybGF5UGFuZS5hcHBlbmRDaGlsZCh0aGlzLl9pbWFnZSksdGhpc30sYnJpbmdUb0JhY2s6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9tYXAuX3BhbmVzLm92ZXJsYXlQYW5lO3JldHVybiB0aGlzLl9pbWFnZSYmdC5pbnNlcnRCZWZvcmUodGhpcy5faW1hZ2UsdC5maXJzdENoaWxkKSx0aGlzfSxzZXRVcmw6ZnVuY3Rpb24odCl7dGhpcy5fdXJsPXQsdGhpcy5faW1hZ2Uuc3JjPXRoaXMuX3VybH0sZ2V0QXR0cmlidXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLmF0dHJpYnV0aW9ufSxfaW5pdEltYWdlOmZ1bmN0aW9uKCl7dGhpcy5faW1hZ2U9by5Eb21VdGlsLmNyZWF0ZSgiaW1nIiwibGVhZmxldC1pbWFnZS1sYXllciIpLHRoaXMuX21hcC5vcHRpb25zLnpvb21BbmltYXRpb24mJm8uQnJvd3Nlci5hbnkzZD9vLkRvbVV0aWwuYWRkQ2xhc3ModGhpcy5faW1hZ2UsImxlYWZsZXQtem9vbS1hbmltYXRlZCIpOm8uRG9tVXRpbC5hZGRDbGFzcyh0aGlzLl9pbWFnZSwibGVhZmxldC16b29tLWhpZGUiKSx0aGlzLl91cGRhdGVPcGFjaXR5KCksby5leHRlbmQodGhpcy5faW1hZ2Use2dhbGxlcnlpbWc6Im5vIixvbnNlbGVjdHN0YXJ0Om8uVXRpbC5mYWxzZUZuLG9ubW91c2Vtb3ZlOm8uVXRpbC5mYWxzZUZuLG9ubG9hZDpvLmJpbmQodGhpcy5fb25JbWFnZUxvYWQsdGhpcyksc3JjOnRoaXMuX3VybH0pfSxfYW5pbWF0ZVpvb206ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbWFwLGk9dGhpcy5faW1hZ2Usbj1lLmdldFpvb21TY2FsZSh0Lnpvb20pLHM9dGhpcy5fYm91bmRzLmdldE5vcnRoV2VzdCgpLGE9dGhpcy5fYm91bmRzLmdldFNvdXRoRWFzdCgpLHI9ZS5fbGF0TG5nVG9OZXdMYXllclBvaW50KHMsdC56b29tLHQuY2VudGVyKSxoPWUuX2xhdExuZ1RvTmV3TGF5ZXJQb2ludChhLHQuem9vbSx0LmNlbnRlcikuX3N1YnRyYWN0KHIpLGw9ci5fYWRkKGguX211bHRpcGx5QnkoLjUqKDEtMS9uKSkpO2kuc3R5bGVbby5Eb21VdGlsLlRSQU5TRk9STV09by5Eb21VdGlsLmdldFRyYW5zbGF0ZVN0cmluZyhsKSsiIHNjYWxlKCIrbisiKSAifSxfcmVzZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9pbWFnZSxlPXRoaXMuX21hcC5sYXRMbmdUb0xheWVyUG9pbnQodGhpcy5fYm91bmRzLmdldE5vcnRoV2VzdCgpKSxpPXRoaXMuX21hcC5sYXRMbmdUb0xheWVyUG9pbnQodGhpcy5fYm91bmRzLmdldFNvdXRoRWFzdCgpKS5fc3VidHJhY3QoZSk7by5Eb21VdGlsLnNldFBvc2l0aW9uKHQsZSksdC5zdHlsZS53aWR0aD1pLngrInB4Iix0LnN0eWxlLmhlaWdodD1pLnkrInB4In0sX29uSW1hZ2VMb2FkOmZ1bmN0aW9uKCl7dGhpcy5maXJlKCJsb2FkIil9LF91cGRhdGVPcGFjaXR5OmZ1bmN0aW9uKCl7by5Eb21VdGlsLnNldE9wYWNpdHkodGhpcy5faW1hZ2UsdGhpcy5vcHRpb25zLm9wYWNpdHkpfX0pLG8uaW1hZ2VPdmVybGF5PWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gbmV3IG8uSW1hZ2VPdmVybGF5KHQsZSxpKX0sby5JY29uPW8uQ2xhc3MuZXh0ZW5kKHtvcHRpb25zOntjbGFzc05hbWU6IiJ9LGluaXRpYWxpemU6ZnVuY3Rpb24odCl7by5zZXRPcHRpb25zKHRoaXMsdCl9LGNyZWF0ZUljb246ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NyZWF0ZUljb24oImljb24iLHQpfSxjcmVhdGVTaGFkb3c6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NyZWF0ZUljb24oInNoYWRvdyIsdCl9LF9jcmVhdGVJY29uOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5fZ2V0SWNvblVybCh0KTtpZighaSl7aWYoImljb24iPT09dCl0aHJvdyBuZXcgRXJyb3IoImljb25Vcmwgbm90IHNldCBpbiBJY29uIG9wdGlvbnMgKHNlZSB0aGUgZG9jcykuIik7cmV0dXJuIG51bGx9dmFyIG47cmV0dXJuIG49ZSYmIklNRyI9PT1lLnRhZ05hbWU/dGhpcy5fY3JlYXRlSW1nKGksZSk6dGhpcy5fY3JlYXRlSW1nKGkpLHRoaXMuX3NldEljb25TdHlsZXMobix0KSxufSxfc2V0SWNvblN0eWxlczpmdW5jdGlvbih0LGUpe3ZhciBpLG49dGhpcy5vcHRpb25zLHM9by5wb2ludChuW2UrIlNpemUiXSk7aT1vLnBvaW50KCJzaGFkb3ciPT09ZT9uLnNoYWRvd0FuY2hvcnx8bi5pY29uQW5jaG9yOm4uaWNvbkFuY2hvciksIWkmJnMmJihpPXMuZGl2aWRlQnkoMiwhMCkpLHQuY2xhc3NOYW1lPSJsZWFmbGV0LW1hcmtlci0iK2UrIiAiK24uY2xhc3NOYW1lLGkmJih0LnN0eWxlLm1hcmdpbkxlZnQ9LWkueCsicHgiLHQuc3R5bGUubWFyZ2luVG9wPS1pLnkrInB4IikscyYmKHQuc3R5bGUud2lkdGg9cy54KyJweCIsdC5zdHlsZS5oZWlnaHQ9cy55KyJweCIpfSxfY3JlYXRlSW1nOmZ1bmN0aW9uKHQsaSl7cmV0dXJuIGk9aXx8ZS5jcmVhdGVFbGVtZW50KCJpbWciKSxpLnNyYz10LGl9LF9nZXRJY29uVXJsOmZ1bmN0aW9uKHQpe3JldHVybiBvLkJyb3dzZXIucmV0aW5hJiZ0aGlzLm9wdGlvbnNbdCsiUmV0aW5hVXJsIl0/dGhpcy5vcHRpb25zW3QrIlJldGluYVVybCJdOnRoaXMub3B0aW9uc1t0KyJVcmwiXX19KSxvLmljb249ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBvLkljb24odCl9LG8uSWNvbi5EZWZhdWx0PW8uSWNvbi5leHRlbmQoe29wdGlvbnM6e2ljb25TaXplOlsyNSw0MV0saWNvbkFuY2hvcjpbMTIsNDFdLHBvcHVwQW5jaG9yOlsxLC0zNF0sc2hhZG93U2l6ZTpbNDEsNDFdfSxfZ2V0SWNvblVybDpmdW5jdGlvbih0KXt2YXIgZT10KyJVcmwiO2lmKHRoaXMub3B0aW9uc1tlXSlyZXR1cm4gdGhpcy5vcHRpb25zW2VdO28uQnJvd3Nlci5yZXRpbmEmJiJpY29uIj09PXQmJih0Kz0iLTJ4Iik7dmFyIGk9by5JY29uLkRlZmF1bHQuaW1hZ2VQYXRoO2lmKCFpKXRocm93IG5ldyBFcnJvcigiQ291bGRuJ3QgYXV0b2RldGVjdCBMLkljb24uRGVmYXVsdC5pbWFnZVBhdGgsIHNldCBpdCBtYW51YWxseS4iKTtyZXR1cm4gaSsiL21hcmtlci0iK3QrIi5wbmcifX0pLG8uSWNvbi5EZWZhdWx0LmltYWdlUGF0aD1mdW5jdGlvbigpe3ZhciB0LGksbixvLHMsYT1lLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxyPS9bXC9eXWxlYWZsZXRbXC1cLl9dPyhbXHdcLVwuX10qKVwuanNcPz8vO2Zvcih0PTAsaT1hLmxlbmd0aDtpPnQ7dCsrKWlmKG49YVt0XS5zcmMsbz1uLm1hdGNoKHIpKXJldHVybiBzPW4uc3BsaXQocilbMF0sKHM/cysiLyI6IiIpKyJpbWFnZXMifSgpLG8uTWFya2VyPW8uQ2xhc3MuZXh0ZW5kKHtpbmNsdWRlczpvLk1peGluLkV2ZW50cyxvcHRpb25zOntpY29uOm5ldyBvLkljb24uRGVmYXVsdCx0aXRsZToiIixhbHQ6IiIsY2xpY2thYmxlOiEwLGRyYWdnYWJsZTohMSxrZXlib2FyZDohMCx6SW5kZXhPZmZzZXQ6MCxvcGFjaXR5OjEscmlzZU9uSG92ZXI6ITEscmlzZU9mZnNldDoyNTB9LGluaXRpYWxpemU6ZnVuY3Rpb24odCxlKXtvLnNldE9wdGlvbnModGhpcyxlKSx0aGlzLl9sYXRsbmc9by5sYXRMbmcodCl9LG9uQWRkOmZ1bmN0aW9uKHQpe3RoaXMuX21hcD10LHQub24oInZpZXdyZXNldCIsdGhpcy51cGRhdGUsdGhpcyksdGhpcy5faW5pdEljb24oKSx0aGlzLnVwZGF0ZSgpLHRoaXMuZmlyZSgiYWRkIiksdC5vcHRpb25zLnpvb21BbmltYXRpb24mJnQub3B0aW9ucy5tYXJrZXJab29tQW5pbWF0aW9uJiZ0Lm9uKCJ6b29tYW5pbSIsdGhpcy5fYW5pbWF0ZVpvb20sdGhpcyl9LGFkZFRvOmZ1bmN0aW9uKHQpe3JldHVybiB0LmFkZExheWVyKHRoaXMpLHRoaXN9LG9uUmVtb3ZlOmZ1bmN0aW9uKHQpe3RoaXMuZHJhZ2dpbmcmJnRoaXMuZHJhZ2dpbmcuZGlzYWJsZSgpLHRoaXMuX3JlbW92ZUljb24oKSx0aGlzLl9yZW1vdmVTaGFkb3coKSx0aGlzLmZpcmUoInJlbW92ZSIpLHQub2ZmKHt2aWV3cmVzZXQ6dGhpcy51cGRhdGUsem9vbWFuaW06dGhpcy5fYW5pbWF0ZVpvb219LHRoaXMpLHRoaXMuX21hcD1udWxsfSxnZXRMYXRMbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGF0bG5nfSxzZXRMYXRMbmc6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2xhdGxuZz1vLmxhdExuZyh0KSx0aGlzLnVwZGF0ZSgpLHRoaXMuZmlyZSgibW92ZSIse2xhdGxuZzp0aGlzLl9sYXRsbmd9KX0sc2V0WkluZGV4T2Zmc2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm9wdGlvbnMuekluZGV4T2Zmc2V0PXQsdGhpcy51cGRhdGUoKSx0aGlzfSxzZXRJY29uOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm9wdGlvbnMuaWNvbj10LHRoaXMuX21hcCYmKHRoaXMuX2luaXRJY29uKCksdGhpcy51cGRhdGUoKSksdGhpcy5fcG9wdXAmJnRoaXMuYmluZFBvcHVwKHRoaXMuX3BvcHVwKSx0aGlzfSx1cGRhdGU6ZnVuY3Rpb24oKXtpZih0aGlzLl9pY29uKXt2YXIgdD10aGlzLl9tYXAubGF0TG5nVG9MYXllclBvaW50KHRoaXMuX2xhdGxuZykucm91bmQoKTt0aGlzLl9zZXRQb3ModCl9cmV0dXJuIHRoaXN9LF9pbml0SWNvbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucyxlPXRoaXMuX21hcCxpPWUub3B0aW9ucy56b29tQW5pbWF0aW9uJiZlLm9wdGlvbnMubWFya2VyWm9vbUFuaW1hdGlvbixuPWk/ImxlYWZsZXQtem9vbS1hbmltYXRlZCI6ImxlYWZsZXQtem9vbS1oaWRlIixzPXQuaWNvbi5jcmVhdGVJY29uKHRoaXMuX2ljb24pLGE9ITE7cyE9PXRoaXMuX2ljb24mJih0aGlzLl9pY29uJiZ0aGlzLl9yZW1vdmVJY29uKCksYT0hMCx0LnRpdGxlJiYocy50aXRsZT10LnRpdGxlKSx0LmFsdCYmKHMuYWx0PXQuYWx0KSksby5Eb21VdGlsLmFkZENsYXNzKHMsbiksdC5rZXlib2FyZCYmKHMudGFiSW5kZXg9IjAiKSx0aGlzLl9pY29uPXMsdGhpcy5faW5pdEludGVyYWN0aW9uKCksdC5yaXNlT25Ib3ZlciYmby5Eb21FdmVudC5vbihzLCJtb3VzZW92ZXIiLHRoaXMuX2JyaW5nVG9Gcm9udCx0aGlzKS5vbihzLCJtb3VzZW91dCIsdGhpcy5fcmVzZXRaSW5kZXgsdGhpcyk7dmFyIHI9dC5pY29uLmNyZWF0ZVNoYWRvdyh0aGlzLl9zaGFkb3cpLGg9ITE7ciE9PXRoaXMuX3NoYWRvdyYmKHRoaXMuX3JlbW92ZVNoYWRvdygpLGg9ITApLHImJm8uRG9tVXRpbC5hZGRDbGFzcyhyLG4pLHRoaXMuX3NoYWRvdz1yLHQub3BhY2l0eTwxJiZ0aGlzLl91cGRhdGVPcGFjaXR5KCk7dmFyIGw9dGhpcy5fbWFwLl9wYW5lczthJiZsLm1hcmtlclBhbmUuYXBwZW5kQ2hpbGQodGhpcy5faWNvbiksciYmaCYmbC5zaGFkb3dQYW5lLmFwcGVuZENoaWxkKHRoaXMuX3NoYWRvdyl9LF9yZW1vdmVJY29uOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLnJpc2VPbkhvdmVyJiZvLkRvbUV2ZW50Lm9mZih0aGlzLl9pY29uLCJtb3VzZW92ZXIiLHRoaXMuX2JyaW5nVG9Gcm9udCkub2ZmKHRoaXMuX2ljb24sIm1vdXNlb3V0Iix0aGlzLl9yZXNldFpJbmRleCksdGhpcy5fbWFwLl9wYW5lcy5tYXJrZXJQYW5lLnJlbW92ZUNoaWxkKHRoaXMuX2ljb24pLHRoaXMuX2ljb249bnVsbH0sX3JlbW92ZVNoYWRvdzpmdW5jdGlvbigpe3RoaXMuX3NoYWRvdyYmdGhpcy5fbWFwLl9wYW5lcy5zaGFkb3dQYW5lLnJlbW92ZUNoaWxkKHRoaXMuX3NoYWRvdyksdGhpcy5fc2hhZG93PW51bGx9LF9zZXRQb3M6ZnVuY3Rpb24odCl7by5Eb21VdGlsLnNldFBvc2l0aW9uKHRoaXMuX2ljb24sdCksdGhpcy5fc2hhZG93JiZvLkRvbVV0aWwuc2V0UG9zaXRpb24odGhpcy5fc2hhZG93LHQpLHRoaXMuX3pJbmRleD10LnkrdGhpcy5vcHRpb25zLnpJbmRleE9mZnNldCx0aGlzLl9yZXNldFpJbmRleCgpfSxfdXBkYXRlWkluZGV4OmZ1bmN0aW9uKHQpe3RoaXMuX2ljb24uc3R5bGUuekluZGV4PXRoaXMuX3pJbmRleCt0fSxfYW5pbWF0ZVpvb206ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbWFwLl9sYXRMbmdUb05ld0xheWVyUG9pbnQodGhpcy5fbGF0bG5nLHQuem9vbSx0LmNlbnRlcikucm91bmQoKTt0aGlzLl9zZXRQb3MoZSl9LF9pbml0SW50ZXJhY3Rpb246ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMuY2xpY2thYmxlKXt2YXIgdD10aGlzLl9pY29uLGU9WyJkYmxjbGljayIsIm1vdXNlZG93biIsIm1vdXNlb3ZlciIsIm1vdXNlb3V0IiwiY29udGV4dG1lbnUiXTtvLkRvbVV0aWwuYWRkQ2xhc3ModCwibGVhZmxldC1jbGlja2FibGUiKSxvLkRvbUV2ZW50Lm9uKHQsImNsaWNrIix0aGlzLl9vbk1vdXNlQ2xpY2ssdGhpcyksby5Eb21FdmVudC5vbih0LCJrZXlwcmVzcyIsdGhpcy5fb25LZXlQcmVzcyx0aGlzKTtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKylvLkRvbUV2ZW50Lm9uKHQsZVtpXSx0aGlzLl9maXJlTW91c2VFdmVudCx0aGlzKTtvLkhhbmRsZXIuTWFya2VyRHJhZyYmKHRoaXMuZHJhZ2dpbmc9bmV3IG8uSGFuZGxlci5NYXJrZXJEcmFnKHRoaXMpLHRoaXMub3B0aW9ucy5kcmFnZ2FibGUmJnRoaXMuZHJhZ2dpbmcuZW5hYmxlKCkpfX0sX29uTW91c2VDbGljazpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmRyYWdnaW5nJiZ0aGlzLmRyYWdnaW5nLm1vdmVkKCk7KHRoaXMuaGFzRXZlbnRMaXN0ZW5lcnModC50eXBlKXx8ZSkmJm8uRG9tRXZlbnQuc3RvcFByb3BhZ2F0aW9uKHQpLGV8fCh0aGlzLmRyYWdnaW5nJiZ0aGlzLmRyYWdnaW5nLl9lbmFibGVkfHwhdGhpcy5fbWFwLmRyYWdnaW5nfHwhdGhpcy5fbWFwLmRyYWdnaW5nLm1vdmVkKCkpJiZ0aGlzLmZpcmUodC50eXBlLHtvcmlnaW5hbEV2ZW50OnQsbGF0bG5nOnRoaXMuX2xhdGxuZ30pfSxfb25LZXlQcmVzczpmdW5jdGlvbih0KXsxMz09PXQua2V5Q29kZSYmdGhpcy5maXJlKCJjbGljayIse29yaWdpbmFsRXZlbnQ6dCxsYXRsbmc6dGhpcy5fbGF0bG5nfSl9LF9maXJlTW91c2VFdmVudDpmdW5jdGlvbih0KXt0aGlzLmZpcmUodC50eXBlLHtvcmlnaW5hbEV2ZW50OnQsbGF0bG5nOnRoaXMuX2xhdGxuZ30pLCJjb250ZXh0bWVudSI9PT10LnR5cGUmJnRoaXMuaGFzRXZlbnRMaXN0ZW5lcnModC50eXBlKSYmby5Eb21FdmVudC5wcmV2ZW50RGVmYXVsdCh0KSwibW91c2Vkb3duIiE9PXQudHlwZT9vLkRvbUV2ZW50LnN0b3BQcm9wYWdhdGlvbih0KTpvLkRvbUV2ZW50LnByZXZlbnREZWZhdWx0KHQpfSxzZXRPcGFjaXR5OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm9wdGlvbnMub3BhY2l0eT10LHRoaXMuX21hcCYmdGhpcy5fdXBkYXRlT3BhY2l0eSgpLHRoaXN9LF91cGRhdGVPcGFjaXR5OmZ1bmN0aW9uKCl7by5Eb21VdGlsLnNldE9wYWNpdHkodGhpcy5faWNvbix0aGlzLm9wdGlvbnMub3BhY2l0eSksdGhpcy5fc2hhZG93JiZvLkRvbVV0aWwuc2V0T3BhY2l0eSh0aGlzLl9zaGFkb3csdGhpcy5vcHRpb25zLm9wYWNpdHkpfSxfYnJpbmdUb0Zyb250OmZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlWkluZGV4KHRoaXMub3B0aW9ucy5yaXNlT2Zmc2V0KX0sX3Jlc2V0WkluZGV4OmZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlWkluZGV4KDApfX0pLG8ubWFya2VyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBvLk1hcmtlcih0LGUpfSxvLkRpdkljb249by5JY29uLmV4dGVuZCh7b3B0aW9uczp7aWNvblNpemU6WzEyLDEyXSxjbGFzc05hbWU6ImxlYWZsZXQtZGl2LWljb24iLGh0bWw6ITF9LGNyZWF0ZUljb246ZnVuY3Rpb24odCl7dmFyIGk9dCYmIkRJViI9PT10LnRhZ05hbWU/dDplLmNyZWF0ZUVsZW1lbnQoImRpdiIpLG49dGhpcy5vcHRpb25zO3JldHVybiBpLmlubmVySFRNTD1uLmh0bWwhPT0hMT9uLmh0bWw6IiIsbi5iZ1BvcyYmKGkuc3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uPS1uLmJnUG9zLngrInB4ICIrLW4uYmdQb3MueSsicHgiKSx0aGlzLl9zZXRJY29uU3R5bGVzKGksImljb24iKSxpfSxjcmVhdGVTaGFkb3c6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH19KSxvLmRpdkljb249ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBvLkRpdkljb24odCl9LG8uTWFwLm1lcmdlT3B0aW9ucyh7Y2xvc2VQb3B1cE9uQ2xpY2s6ITB9KSxvLlBvcHVwPW8uQ2xhc3MuZXh0ZW5kKHtpbmNsdWRlczpvLk1peGluLkV2ZW50cyxvcHRpb25zOnttaW5XaWR0aDo1MCxtYXhXaWR0aDozMDAsYXV0b1BhbjohMCxjbG9zZUJ1dHRvbjohMCxvZmZzZXQ6WzAsN10sYXV0b1BhblBhZGRpbmc6WzUsNV0sa2VlcEluVmlldzohMSxjbGFzc05hbWU6IiIsem9vbUFuaW1hdGlvbjohMH0saW5pdGlhbGl6ZTpmdW5jdGlvbih0LGUpe28uc2V0T3B0aW9ucyh0aGlzLHQpLHRoaXMuX3NvdXJjZT1lLHRoaXMuX2FuaW1hdGVkPW8uQnJvd3Nlci5hbnkzZCYmdGhpcy5vcHRpb25zLnpvb21BbmltYXRpb24sdGhpcy5faXNPcGVuPSExfSxvbkFkZDpmdW5jdGlvbih0KXt0aGlzLl9tYXA9dCx0aGlzLl9jb250YWluZXJ8fHRoaXMuX2luaXRMYXlvdXQoKTt2YXIgZT10Lm9wdGlvbnMuZmFkZUFuaW1hdGlvbjtlJiZvLkRvbVV0aWwuc2V0T3BhY2l0eSh0aGlzLl9jb250YWluZXIsMCksdC5fcGFuZXMucG9wdXBQYW5lLmFwcGVuZENoaWxkKHRoaXMuX2NvbnRhaW5lciksdC5vbih0aGlzLl9nZXRFdmVudHMoKSx0aGlzKSx0aGlzLnVwZGF0ZSgpLGUmJm8uRG9tVXRpbC5zZXRPcGFjaXR5KHRoaXMuX2NvbnRhaW5lciwxKSx0aGlzLmZpcmUoIm9wZW4iKSx0LmZpcmUoInBvcHVwb3BlbiIse3BvcHVwOnRoaXN9KSx0aGlzLl9zb3VyY2UmJnRoaXMuX3NvdXJjZS5maXJlKCJwb3B1cG9wZW4iLHtwb3B1cDp0aGlzfSl9LGFkZFRvOmZ1bmN0aW9uKHQpe3JldHVybiB0LmFkZExheWVyKHRoaXMpLHRoaXN9LG9wZW5PbjpmdW5jdGlvbih0KXtyZXR1cm4gdC5vcGVuUG9wdXAodGhpcyksdGhpc30sb25SZW1vdmU6ZnVuY3Rpb24odCl7dC5fcGFuZXMucG9wdXBQYW5lLnJlbW92ZUNoaWxkKHRoaXMuX2NvbnRhaW5lciksby5VdGlsLmZhbHNlRm4odGhpcy5fY29udGFpbmVyLm9mZnNldFdpZHRoKSx0Lm9mZih0aGlzLl9nZXRFdmVudHMoKSx0aGlzKSx0Lm9wdGlvbnMuZmFkZUFuaW1hdGlvbiYmby5Eb21VdGlsLnNldE9wYWNpdHkodGhpcy5fY29udGFpbmVyLDApLHRoaXMuX21hcD1udWxsLHRoaXMuZmlyZSgiY2xvc2UiKSx0LmZpcmUoInBvcHVwY2xvc2UiLHtwb3B1cDp0aGlzfSksdGhpcy5fc291cmNlJiZ0aGlzLl9zb3VyY2UuZmlyZSgicG9wdXBjbG9zZSIse3BvcHVwOnRoaXN9KX0sZ2V0TGF0TG5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xhdGxuZ30sc2V0TGF0TG5nOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9sYXRsbmc9by5sYXRMbmcodCksdGhpcy5fbWFwJiYodGhpcy5fdXBkYXRlUG9zaXRpb24oKSx0aGlzLl9hZGp1c3RQYW4oKSksdGhpc30sZ2V0Q29udGVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb250ZW50fSxzZXRDb250ZW50OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jb250ZW50PXQsdGhpcy51cGRhdGUoKSx0aGlzfSx1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLl9tYXAmJih0aGlzLl9jb250YWluZXIuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIix0aGlzLl91cGRhdGVDb250ZW50KCksdGhpcy5fdXBkYXRlTGF5b3V0KCksdGhpcy5fdXBkYXRlUG9zaXRpb24oKSx0aGlzLl9jb250YWluZXIuc3R5bGUudmlzaWJpbGl0eT0iIix0aGlzLl9hZGp1c3RQYW4oKSl9LF9nZXRFdmVudHM6ZnVuY3Rpb24oKXt2YXIgdD17dmlld3Jlc2V0OnRoaXMuX3VwZGF0ZVBvc2l0aW9ufTtyZXR1cm4gdGhpcy5fYW5pbWF0ZWQmJih0Lnpvb21hbmltPXRoaXMuX3pvb21BbmltYXRpb24pLCgiY2xvc2VPbkNsaWNrImluIHRoaXMub3B0aW9ucz90aGlzLm9wdGlvbnMuY2xvc2VPbkNsaWNrOnRoaXMuX21hcC5vcHRpb25zLmNsb3NlUG9wdXBPbkNsaWNrKSYmKHQucHJlY2xpY2s9dGhpcy5fY2xvc2UpLHRoaXMub3B0aW9ucy5rZWVwSW5WaWV3JiYodC5tb3ZlZW5kPXRoaXMuX2FkanVzdFBhbiksdH0sX2Nsb3NlOmZ1bmN0aW9uKCl7dGhpcy5fbWFwJiZ0aGlzLl9tYXAuY2xvc2VQb3B1cCh0aGlzKX0sX2luaXRMYXlvdXQ6ZnVuY3Rpb24oKXt2YXIgdCxlPSJsZWFmbGV0LXBvcHVwIixpPWUrIiAiK3RoaXMub3B0aW9ucy5jbGFzc05hbWUrIiBsZWFmbGV0LXpvb20tIisodGhpcy5fYW5pbWF0ZWQ/ImFuaW1hdGVkIjoiaGlkZSIpLG49dGhpcy5fY29udGFpbmVyPW8uRG9tVXRpbC5jcmVhdGUoImRpdiIsaSk7dGhpcy5vcHRpb25zLmNsb3NlQnV0dG9uJiYodD10aGlzLl9jbG9zZUJ1dHRvbj1vLkRvbVV0aWwuY3JlYXRlKCJhIixlKyItY2xvc2UtYnV0dG9uIixuKSx0LmhyZWY9IiNjbG9zZSIsdC5pbm5lckhUTUw9IiYjMjE1OyIsby5Eb21FdmVudC5kaXNhYmxlQ2xpY2tQcm9wYWdhdGlvbih0KSxvLkRvbUV2ZW50Lm9uKHQsImNsaWNrIix0aGlzLl9vbkNsb3NlQnV0dG9uQ2xpY2ssdGhpcykpO3ZhciBzPXRoaXMuX3dyYXBwZXI9by5Eb21VdGlsLmNyZWF0ZSgiZGl2IixlKyItY29udGVudC13cmFwcGVyIixuKTtvLkRvbUV2ZW50LmRpc2FibGVDbGlja1Byb3BhZ2F0aW9uKHMpLHRoaXMuX2NvbnRlbnROb2RlPW8uRG9tVXRpbC5jcmVhdGUoImRpdiIsZSsiLWNvbnRlbnQiLHMpLG8uRG9tRXZlbnQuZGlzYWJsZVNjcm9sbFByb3BhZ2F0aW9uKHRoaXMuX2NvbnRlbnROb2RlKSxvLkRvbUV2ZW50Lm9uKHMsImNvbnRleHRtZW51IixvLkRvbUV2ZW50LnN0b3BQcm9wYWdhdGlvbiksdGhpcy5fdGlwQ29udGFpbmVyPW8uRG9tVXRpbC5jcmVhdGUoImRpdiIsZSsiLXRpcC1jb250YWluZXIiLG4pLHRoaXMuX3RpcD1vLkRvbVV0aWwuY3JlYXRlKCJkaXYiLGUrIi10aXAiLHRoaXMuX3RpcENvbnRhaW5lcil9LF91cGRhdGVDb250ZW50OmZ1bmN0aW9uKCl7aWYodGhpcy5fY29udGVudCl7aWYoInN0cmluZyI9PXR5cGVvZiB0aGlzLl9jb250ZW50KXRoaXMuX2NvbnRlbnROb2RlLmlubmVySFRNTD10aGlzLl9jb250ZW50O2Vsc2V7Zm9yKDt0aGlzLl9jb250ZW50Tm9kZS5oYXNDaGlsZE5vZGVzKCk7KXRoaXMuX2NvbnRlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuX2NvbnRlbnROb2RlLmZpcnN0Q2hpbGQpO3RoaXMuX2NvbnRlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMuX2NvbnRlbnQpfXRoaXMuZmlyZSgiY29udGVudHVwZGF0ZSIpfX0sX3VwZGF0ZUxheW91dDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbnRlbnROb2RlLGU9dC5zdHlsZTtlLndpZHRoPSIiLGUud2hpdGVTcGFjZT0ibm93cmFwIjt2YXIgaT10Lm9mZnNldFdpZHRoO2k9TWF0aC5taW4oaSx0aGlzLm9wdGlvbnMubWF4V2lkdGgpLGk9TWF0aC5tYXgoaSx0aGlzLm9wdGlvbnMubWluV2lkdGgpLGUud2lkdGg9aSsxKyJweCIsZS53aGl0ZVNwYWNlPSIiLGUuaGVpZ2h0PSIiO3ZhciBuPXQub2Zmc2V0SGVpZ2h0LHM9dGhpcy5vcHRpb25zLm1heEhlaWdodCxhPSJsZWFmbGV0LXBvcHVwLXNjcm9sbGVkIjtzJiZuPnM/KGUuaGVpZ2h0PXMrInB4IixvLkRvbVV0aWwuYWRkQ2xhc3ModCxhKSk6by5Eb21VdGlsLnJlbW92ZUNsYXNzKHQsYSksdGhpcy5fY29udGFpbmVyV2lkdGg9dGhpcy5fY29udGFpbmVyLm9mZnNldFdpZHRofSxfdXBkYXRlUG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzLl9tYXApe3ZhciB0PXRoaXMuX21hcC5sYXRMbmdUb0xheWVyUG9pbnQodGhpcy5fbGF0bG5nKSxlPXRoaXMuX2FuaW1hdGVkLGk9by5wb2ludCh0aGlzLm9wdGlvbnMub2Zmc2V0KTtlJiZvLkRvbVV0aWwuc2V0UG9zaXRpb24odGhpcy5fY29udGFpbmVyLHQpLHRoaXMuX2NvbnRhaW5lckJvdHRvbT0taS55LShlPzA6dC55KSx0aGlzLl9jb250YWluZXJMZWZ0PS1NYXRoLnJvdW5kKHRoaXMuX2NvbnRhaW5lcldpZHRoLzIpK2kueCsoZT8wOnQueCksdGhpcy5fY29udGFpbmVyLnN0eWxlLmJvdHRvbT10aGlzLl9jb250YWluZXJCb3R0b20rInB4Iix0aGlzLl9jb250YWluZXIuc3R5bGUubGVmdD10aGlzLl9jb250YWluZXJMZWZ0KyJweCJ9fSxfem9vbUFuaW1hdGlvbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9tYXAuX2xhdExuZ1RvTmV3TGF5ZXJQb2ludCh0aGlzLl9sYXRsbmcsdC56b29tLHQuY2VudGVyKTtvLkRvbVV0aWwuc2V0UG9zaXRpb24odGhpcy5fY29udGFpbmVyLGUpfSxfYWRqdXN0UGFuOmZ1bmN0aW9uKCl7aWYodGhpcy5vcHRpb25zLmF1dG9QYW4pe3ZhciB0PXRoaXMuX21hcCxlPXRoaXMuX2NvbnRhaW5lci5vZmZzZXRIZWlnaHQsaT10aGlzLl9jb250YWluZXJXaWR0aCxuPW5ldyBvLlBvaW50KHRoaXMuX2NvbnRhaW5lckxlZnQsLWUtdGhpcy5fY29udGFpbmVyQm90dG9tKTt0aGlzLl9hbmltYXRlZCYmbi5fYWRkKG8uRG9tVXRpbC5nZXRQb3NpdGlvbih0aGlzLl9jb250YWluZXIpKTt2YXIgcz10LmxheWVyUG9pbnRUb0NvbnRhaW5lclBvaW50KG4pLGE9by5wb2ludCh0aGlzLm9wdGlvbnMuYXV0b1BhblBhZGRpbmcpLHI9by5wb2ludCh0aGlzLm9wdGlvbnMuYXV0b1BhblBhZGRpbmdUb3BMZWZ0fHxhKSxoPW8ucG9pbnQodGhpcy5vcHRpb25zLmF1dG9QYW5QYWRkaW5nQm90dG9tUmlnaHR8fGEpLGw9dC5nZXRTaXplKCksdT0wLGM9MDtzLngraStoLng+bC54JiYodT1zLngraS1sLngraC54KSxzLngtdS1yLng8MCYmKHU9cy54LXIueCkscy55K2UraC55PmwueSYmKGM9cy55K2UtbC55K2gueSkscy55LWMtci55PDAmJihjPXMueS1yLnkpLCh1fHxjKSYmdC5maXJlKCJhdXRvcGFuc3RhcnQiKS5wYW5CeShbdSxjXSl9fSxfb25DbG9zZUJ1dHRvbkNsaWNrOmZ1bmN0aW9uKHQpe3RoaXMuX2Nsb3NlKCksby5Eb21FdmVudC5zdG9wKHQpfX0pLG8ucG9wdXA9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IG8uUG9wdXAodCxlKX0sby5NYXAuaW5jbHVkZSh7b3BlblBvcHVwOmZ1bmN0aW9uKHQsZSxpKXtpZih0aGlzLmNsb3NlUG9wdXAoKSwhKHQgaW5zdGFuY2VvZiBvLlBvcHVwKSl7dmFyIG49dDt0PW5ldyBvLlBvcHVwKGkpLnNldExhdExuZyhlKS5zZXRDb250ZW50KG4pfXJldHVybiB0Ll9pc09wZW49ITAsdGhpcy5fcG9wdXA9dCx0aGlzLmFkZExheWVyKHQpfSxjbG9zZVBvcHVwOmZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0IT09dGhpcy5fcG9wdXB8fCh0PXRoaXMuX3BvcHVwLHRoaXMuX3BvcHVwPW51bGwpLHQmJih0aGlzLnJlbW92ZUxheWVyKHQpLHQuX2lzT3Blbj0hMSksdGhpc319KSxvLk1hcmtlci5pbmNsdWRlKHtvcGVuUG9wdXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcG9wdXAmJnRoaXMuX21hcCYmIXRoaXMuX21hcC5oYXNMYXllcih0aGlzLl9wb3B1cCkmJih0aGlzLl9wb3B1cC5zZXRMYXRMbmcodGhpcy5fbGF0bG5nKSx0aGlzLl9tYXAub3BlblBvcHVwKHRoaXMuX3BvcHVwKSksdGhpc30sY2xvc2VQb3B1cDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wb3B1cCYmdGhpcy5fcG9wdXAuX2Nsb3NlKCksdGhpc30sdG9nZ2xlUG9wdXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcG9wdXAmJih0aGlzLl9wb3B1cC5faXNPcGVuP3RoaXMuY2xvc2VQb3B1cCgpOnRoaXMub3BlblBvcHVwKCkpLHRoaXN9LGJpbmRQb3B1cDpmdW5jdGlvbih0LGUpe3ZhciBpPW8ucG9pbnQodGhpcy5vcHRpb25zLmljb24ub3B0aW9ucy5wb3B1cEFuY2hvcnx8WzAsMF0pO3JldHVybiBpPWkuYWRkKG8uUG9wdXAucHJvdG90eXBlLm9wdGlvbnMub2Zmc2V0KSxlJiZlLm9mZnNldCYmKGk9aS5hZGQoZS5vZmZzZXQpKSxlPW8uZXh0ZW5kKHtvZmZzZXQ6aX0sZSksdGhpcy5fcG9wdXBIYW5kbGVyc0FkZGVkfHwodGhpcy5vbigiY2xpY2siLHRoaXMudG9nZ2xlUG9wdXAsdGhpcykub24oInJlbW92ZSIsdGhpcy5jbG9zZVBvcHVwLHRoaXMpLm9uKCJtb3ZlIix0aGlzLl9tb3ZlUG9wdXAsdGhpcyksdGhpcy5fcG9wdXBIYW5kbGVyc0FkZGVkPSEwKSx0IGluc3RhbmNlb2Ygby5Qb3B1cD8oby5zZXRPcHRpb25zKHQsZSksdGhpcy5fcG9wdXA9dCk6dGhpcy5fcG9wdXA9bmV3IG8uUG9wdXAoZSx0aGlzKS5zZXRDb250ZW50KHQpLHRoaXN9LHNldFBvcHVwQ29udGVudDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcG9wdXAmJnRoaXMuX3BvcHVwLnNldENvbnRlbnQodCksdGhpc30sdW5iaW5kUG9wdXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcG9wdXAmJih0aGlzLl9wb3B1cD1udWxsLHRoaXMub2ZmKCJjbGljayIsdGhpcy50b2dnbGVQb3B1cCx0aGlzKS5vZmYoInJlbW92ZSIsdGhpcy5jbG9zZVBvcHVwLHRoaXMpLm9mZigibW92ZSIsdGhpcy5fbW92ZVBvcHVwLHRoaXMpLHRoaXMuX3BvcHVwSGFuZGxlcnNBZGRlZD0hMSksdGhpc30sZ2V0UG9wdXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcG9wdXB9LF9tb3ZlUG9wdXA6ZnVuY3Rpb24odCl7dGhpcy5fcG9wdXAuc2V0TGF0TG5nKHQubGF0bG5nKX19KSxvLkxheWVyR3JvdXA9by5DbGFzcy5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb24odCl7dGhpcy5fbGF5ZXJzPXt9O3ZhciBlLGk7aWYodClmb3IoZT0wLGk9dC5sZW5ndGg7aT5lO2UrKyl0aGlzLmFkZExheWVyKHRbZV0pfSxhZGRMYXllcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldExheWVySWQodCk7cmV0dXJuIHRoaXMuX2xheWVyc1tlXT10LHRoaXMuX21hcCYmdGhpcy5fbWFwLmFkZExheWVyKHQpLHRoaXN9LHJlbW92ZUxheWVyOmZ1bmN0aW9uKHQpe3ZhciBlPXQgaW4gdGhpcy5fbGF5ZXJzP3Q6dGhpcy5nZXRMYXllcklkKHQpO3JldHVybiB0aGlzLl9tYXAmJnRoaXMuX2xheWVyc1tlXSYmdGhpcy5fbWFwLnJlbW92ZUxheWVyKHRoaXMuX2xheWVyc1tlXSksZGVsZXRlIHRoaXMuX2xheWVyc1tlXSx0aGlzfSxoYXNMYXllcjpmdW5jdGlvbih0KXtyZXR1cm4gdD90IGluIHRoaXMuX2xheWVyc3x8dGhpcy5nZXRMYXllcklkKHQpaW4gdGhpcy5fbGF5ZXJzOiExfSxjbGVhckxheWVyczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2hMYXllcih0aGlzLnJlbW92ZUxheWVyLHRoaXMpLHRoaXN9LGludm9rZTpmdW5jdGlvbih0KXt2YXIgZSxpLG49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2ZvcihlIGluIHRoaXMuX2xheWVycylpPXRoaXMuX2xheWVyc1tlXSxpW3RdJiZpW3RdLmFwcGx5KGksbik7cmV0dXJuIHRoaXN9LG9uQWRkOmZ1bmN0aW9uKHQpe3RoaXMuX21hcD10LHRoaXMuZWFjaExheWVyKHQuYWRkTGF5ZXIsdCl9LG9uUmVtb3ZlOmZ1bmN0aW9uKHQpe3RoaXMuZWFjaExheWVyKHQucmVtb3ZlTGF5ZXIsdCksdGhpcy5fbWFwPW51bGx9LGFkZFRvOmZ1bmN0aW9uKHQpe3JldHVybiB0LmFkZExheWVyKHRoaXMpLHRoaXN9LGVhY2hMYXllcjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgaSBpbiB0aGlzLl9sYXllcnMpdC5jYWxsKGUsdGhpcy5fbGF5ZXJzW2ldKTtyZXR1cm4gdGhpc30sZ2V0TGF5ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2xheWVyc1t0XX0sZ2V0TGF5ZXJzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMuX2xheWVycyl0LnB1c2godGhpcy5fbGF5ZXJzW2VdKTtyZXR1cm4gdH0sc2V0WkluZGV4OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmludm9rZSgic2V0WkluZGV4Iix0KX0sZ2V0TGF5ZXJJZDpmdW5jdGlvbih0KXtyZXR1cm4gby5zdGFtcCh0KX19KSxvLmxheWVyR3JvdXA9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBvLkxheWVyR3JvdXAodCl9LG8uRmVhdHVyZUdyb3VwPW8uTGF5ZXJHcm91cC5leHRlbmQoe2luY2x1ZGVzOm8uTWl4aW4uRXZlbnRzLHN0YXRpY3M6e0VWRU5UUzoiY2xpY2sgZGJsY2xpY2sgbW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlbW92ZSBjb250ZXh0bWVudSBwb3B1cG9wZW4gcG9wdXBjbG9zZSJ9LGFkZExheWVyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhhc0xheWVyKHQpP3RoaXM6KCJvbiJpbiB0JiZ0Lm9uKG8uRmVhdHVyZUdyb3VwLkVWRU5UUyx0aGlzLl9wcm9wYWdhdGVFdmVudCx0aGlzKSxvLkxheWVyR3JvdXAucHJvdG90eXBlLmFkZExheWVyLmNhbGwodGhpcyx0KSx0aGlzLl9wb3B1cENvbnRlbnQmJnQuYmluZFBvcHVwJiZ0LmJpbmRQb3B1cCh0aGlzLl9wb3B1cENvbnRlbnQsdGhpcy5fcG9wdXBPcHRpb25zKSx0aGlzLmZpcmUoImxheWVyYWRkIix7bGF5ZXI6dH0pKX0scmVtb3ZlTGF5ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaGFzTGF5ZXIodCk/KHQgaW4gdGhpcy5fbGF5ZXJzJiYodD10aGlzLl9sYXllcnNbdF0pLHQub2ZmKG8uRmVhdHVyZUdyb3VwLkVWRU5UUyx0aGlzLl9wcm9wYWdhdGVFdmVudCx0aGlzKSxvLkxheWVyR3JvdXAucHJvdG90eXBlLnJlbW92ZUxheWVyLmNhbGwodGhpcyx0KSx0aGlzLl9wb3B1cENvbnRlbnQmJnRoaXMuaW52b2tlKCJ1bmJpbmRQb3B1cCIpLHRoaXMuZmlyZSgibGF5ZXJyZW1vdmUiLHtsYXllcjp0fSkpOnRoaXN9LGJpbmRQb3B1cDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9wb3B1cENvbnRlbnQ9dCx0aGlzLl9wb3B1cE9wdGlvbnM9ZSx0aGlzLmludm9rZSgiYmluZFBvcHVwIix0LGUpfSxvcGVuUG9wdXA6ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMuX2xheWVycyl7dGhpcy5fbGF5ZXJzW2VdLm9wZW5Qb3B1cCh0KTticmVha31yZXR1cm4gdGhpc30sc2V0U3R5bGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW52b2tlKCJzZXRTdHlsZSIsdCl9LGJyaW5nVG9Gcm9udDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmludm9rZSgiYnJpbmdUb0Zyb250Iil9LGJyaW5nVG9CYWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW52b2tlKCJicmluZ1RvQmFjayIpfSxnZXRCb3VuZHM6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgby5MYXRMbmdCb3VuZHM7cmV0dXJuIHRoaXMuZWFjaExheWVyKGZ1bmN0aW9uKGUpe3QuZXh0ZW5kKGUgaW5zdGFuY2VvZiBvLk1hcmtlcj9lLmdldExhdExuZygpOmUuZ2V0Qm91bmRzKCkpfSksdH0sX3Byb3BhZ2F0ZUV2ZW50OmZ1bmN0aW9uKHQpe3Q9by5leHRlbmQoe2xheWVyOnQudGFyZ2V0LHRhcmdldDp0aGlzfSx0KSx0aGlzLmZpcmUodC50eXBlLHQpfX0pLG8uZmVhdHVyZUdyb3VwPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgby5GZWF0dXJlR3JvdXAodCl9LG8uUGF0aD1vLkNsYXNzLmV4dGVuZCh7aW5jbHVkZXM6W28uTWl4aW4uRXZlbnRzXSxzdGF0aWNzOntDTElQX1BBRERJTkc6ZnVuY3Rpb24oKXt2YXIgZT1vLkJyb3dzZXIubW9iaWxlPzEyODA6MmUzLGk9KGUvTWF0aC5tYXgodC5vdXRlcldpZHRoLHQub3V0ZXJIZWlnaHQpLTEpLzI7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4oLjUsaSkpfSgpfSxvcHRpb25zOntzdHJva2U6ITAsY29sb3I6IiMwMDMzZmYiLGRhc2hBcnJheTpudWxsLGxpbmVDYXA6bnVsbCxsaW5lSm9pbjpudWxsLHdlaWdodDo1LG9wYWNpdHk6LjUsZmlsbDohMSxmaWxsQ29sb3I6bnVsbCxmaWxsT3BhY2l0eTouMixjbGlja2FibGU6ITB9LGluaXRpYWxpemU6ZnVuY3Rpb24odCl7by5zZXRPcHRpb25zKHRoaXMsdCl9LG9uQWRkOmZ1bmN0aW9uKHQpe3RoaXMuX21hcD10LHRoaXMuX2NvbnRhaW5lcnx8KHRoaXMuX2luaXRFbGVtZW50cygpLHRoaXMuX2luaXRFdmVudHMoKSksdGhpcy5wcm9qZWN0TGF0bG5ncygpLHRoaXMuX3VwZGF0ZVBhdGgoKSx0aGlzLl9jb250YWluZXImJnRoaXMuX21hcC5fcGF0aFJvb3QuYXBwZW5kQ2hpbGQodGhpcy5fY29udGFpbmVyKSx0aGlzLmZpcmUoImFkZCIpLHQub24oe3ZpZXdyZXNldDp0aGlzLnByb2plY3RMYXRsbmdzLG1vdmVlbmQ6dGhpcy5fdXBkYXRlUGF0aH0sdGhpcyl9LGFkZFRvOmZ1bmN0aW9uKHQpe3JldHVybiB0LmFkZExheWVyKHRoaXMpLHRoaXN9LG9uUmVtb3ZlOmZ1bmN0aW9uKHQpe3QuX3BhdGhSb290LnJlbW92ZUNoaWxkKHRoaXMuX2NvbnRhaW5lciksdGhpcy5maXJlKCJyZW1vdmUiKSx0aGlzLl9tYXA9bnVsbCxvLkJyb3dzZXIudm1sJiYodGhpcy5fY29udGFpbmVyPW51bGwsdGhpcy5fc3Ryb2tlPW51bGwsdGhpcy5fZmlsbD1udWxsKSx0Lm9mZih7dmlld3Jlc2V0OnRoaXMucHJvamVjdExhdGxuZ3MsbW92ZWVuZDp0aGlzLl91cGRhdGVQYXRofSx0aGlzKX0scHJvamVjdExhdGxuZ3M6ZnVuY3Rpb24oKXt9LHNldFN0eWxlOmZ1bmN0aW9uKHQpe3JldHVybiBvLnNldE9wdGlvbnModGhpcyx0KSx0aGlzLl9jb250YWluZXImJnRoaXMuX3VwZGF0ZVN0eWxlKCksdGhpc30scmVkcmF3OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21hcCYmKHRoaXMucHJvamVjdExhdGxuZ3MoKSx0aGlzLl91cGRhdGVQYXRoKCkpLHRoaXN9fSksby5NYXAuaW5jbHVkZSh7X3VwZGF0ZVBhdGhWaWV3cG9ydDpmdW5jdGlvbigpe3ZhciB0PW8uUGF0aC5DTElQX1BBRERJTkcsZT10aGlzLmdldFNpemUoKSxpPW8uRG9tVXRpbC5nZXRQb3NpdGlvbih0aGlzLl9tYXBQYW5lKSxuPWkubXVsdGlwbHlCeSgtMSkuX3N1YnRyYWN0KGUubXVsdGlwbHlCeSh0KS5fcm91bmQoKSkscz1uLmFkZChlLm11bHRpcGx5QnkoMSsyKnQpLl9yb3VuZCgpKTt0aGlzLl9wYXRoVmlld3BvcnQ9bmV3IG8uQm91bmRzKG4scyl9fSksby5QYXRoLlNWR19OUz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLG8uQnJvd3Nlci5zdmc9ISghZS5jcmVhdGVFbGVtZW50TlN8fCFlLmNyZWF0ZUVsZW1lbnROUyhvLlBhdGguU1ZHX05TLCJzdmciKS5jcmVhdGVTVkdSZWN0KSxvLlBhdGg9by5QYXRoLmV4dGVuZCh7c3RhdGljczp7U1ZHOm8uQnJvd3Nlci5zdmd9LGJyaW5nVG9Gcm9udDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX21hcC5fcGF0aFJvb3QsZT10aGlzLl9jb250YWluZXI7cmV0dXJuIGUmJnQubGFzdENoaWxkIT09ZSYmdC5hcHBlbmRDaGlsZChlKSx0aGlzfSxicmluZ1RvQmFjazpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX21hcC5fcGF0aFJvb3QsZT10aGlzLl9jb250YWluZXIsaT10LmZpcnN0Q2hpbGQ7cmV0dXJuIGUmJmkhPT1lJiZ0Lmluc2VydEJlZm9yZShlLGkpLHRoaXN9LGdldFBhdGhTdHJpbmc6ZnVuY3Rpb24oKXt9LF9jcmVhdGVFbGVtZW50OmZ1bmN0aW9uKHQpe3JldHVybiBlLmNyZWF0ZUVsZW1lbnROUyhvLlBhdGguU1ZHX05TLHQpfSxfaW5pdEVsZW1lbnRzOmZ1bmN0aW9uKCl7dGhpcy5fbWFwLl9pbml0UGF0aFJvb3QoKSx0aGlzLl9pbml0UGF0aCgpLHRoaXMuX2luaXRTdHlsZSgpfSxfaW5pdFBhdGg6ZnVuY3Rpb24oKXt0aGlzLl9jb250YWluZXI9dGhpcy5fY3JlYXRlRWxlbWVudCgiZyIpLHRoaXMuX3BhdGg9dGhpcy5fY3JlYXRlRWxlbWVudCgicGF0aCIpLHRoaXMub3B0aW9ucy5jbGFzc05hbWUmJm8uRG9tVXRpbC5hZGRDbGFzcyh0aGlzLl9wYXRoLHRoaXMub3B0aW9ucy5jbGFzc05hbWUpLHRoaXMuX2NvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLl9wYXRoKX0sX2luaXRTdHlsZTpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5zdHJva2UmJih0aGlzLl9wYXRoLnNldEF0dHJpYnV0ZSgic3Ryb2tlLWxpbmVqb2luIiwicm91bmQiKSx0aGlzLl9wYXRoLnNldEF0dHJpYnV0ZSgic3Ryb2tlLWxpbmVjYXAiLCJyb3VuZCIpKSx0aGlzLm9wdGlvbnMuZmlsbCYmdGhpcy5fcGF0aC5zZXRBdHRyaWJ1dGUoImZpbGwtcnVsZSIsImV2ZW5vZGQiKSx0aGlzLm9wdGlvbnMucG9pbnRlckV2ZW50cyYmdGhpcy5fcGF0aC5zZXRBdHRyaWJ1dGUoInBvaW50ZXItZXZlbnRzIix0aGlzLm9wdGlvbnMucG9pbnRlckV2ZW50cyksdGhpcy5vcHRpb25zLmNsaWNrYWJsZXx8dGhpcy5vcHRpb25zLnBvaW50ZXJFdmVudHN8fHRoaXMuX3BhdGguc2V0QXR0cmlidXRlKCJwb2ludGVyLWV2ZW50cyIsIm5vbmUiKSx0aGlzLl91cGRhdGVTdHlsZSgpfSxfdXBkYXRlU3R5bGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuc3Ryb2tlPyh0aGlzLl9wYXRoLnNldEF0dHJpYnV0ZSgic3Ryb2tlIix0aGlzLm9wdGlvbnMuY29sb3IpLHRoaXMuX3BhdGguc2V0QXR0cmlidXRlKCJzdHJva2Utb3BhY2l0eSIsdGhpcy5vcHRpb25zLm9wYWNpdHkpLHRoaXMuX3BhdGguc2V0QXR0cmlidXRlKCJzdHJva2Utd2lkdGgiLHRoaXMub3B0aW9ucy53ZWlnaHQpLHRoaXMub3B0aW9ucy5kYXNoQXJyYXk/dGhpcy5fcGF0aC5zZXRBdHRyaWJ1dGUoInN0cm9rZS1kYXNoYXJyYXkiLHRoaXMub3B0aW9ucy5kYXNoQXJyYXkpOnRoaXMuX3BhdGgucmVtb3ZlQXR0cmlidXRlKCJzdHJva2UtZGFzaGFycmF5IiksdGhpcy5vcHRpb25zLmxpbmVDYXAmJnRoaXMuX3BhdGguc2V0QXR0cmlidXRlKCJzdHJva2UtbGluZWNhcCIsdGhpcy5vcHRpb25zLmxpbmVDYXApLHRoaXMub3B0aW9ucy5saW5lSm9pbiYmdGhpcy5fcGF0aC5zZXRBdHRyaWJ1dGUoInN0cm9rZS1saW5lam9pbiIsdGhpcy5vcHRpb25zLmxpbmVKb2luKSk6dGhpcy5fcGF0aC5zZXRBdHRyaWJ1dGUoInN0cm9rZSIsIm5vbmUiKSx0aGlzLm9wdGlvbnMuZmlsbD8odGhpcy5fcGF0aC5zZXRBdHRyaWJ1dGUoImZpbGwiLHRoaXMub3B0aW9ucy5maWxsQ29sb3J8fHRoaXMub3B0aW9ucy5jb2xvciksdGhpcy5fcGF0aC5zZXRBdHRyaWJ1dGUoImZpbGwtb3BhY2l0eSIsdGhpcy5vcHRpb25zLmZpbGxPcGFjaXR5KSk6dGhpcy5fcGF0aC5zZXRBdHRyaWJ1dGUoImZpbGwiLCJub25lIil9LF91cGRhdGVQYXRoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRQYXRoU3RyaW5nKCk7dHx8KHQ9Ik0wIDAiKSx0aGlzLl9wYXRoLnNldEF0dHJpYnV0ZSgiZCIsdCl9LF9pbml0RXZlbnRzOmZ1bmN0aW9uKCl7aWYodGhpcy5vcHRpb25zLmNsaWNrYWJsZSl7KG8uQnJvd3Nlci5zdmd8fCFvLkJyb3dzZXIudm1sKSYmby5Eb21VdGlsLmFkZENsYXNzKHRoaXMuX3BhdGgsImxlYWZsZXQtY2xpY2thYmxlIiksby5Eb21FdmVudC5vbih0aGlzLl9jb250YWluZXIsImNsaWNrIix0aGlzLl9vbk1vdXNlQ2xpY2ssdGhpcyk7Zm9yKHZhciB0PVsiZGJsY2xpY2siLCJtb3VzZWRvd24iLCJtb3VzZW92ZXIiLCJtb3VzZW91dCIsIm1vdXNlbW92ZSIsImNvbnRleHRtZW51Il0sZT0wO2U8dC5sZW5ndGg7ZSsrKW8uRG9tRXZlbnQub24odGhpcy5fY29udGFpbmVyLHRbZV0sdGhpcy5fZmlyZU1vdXNlRXZlbnQsdGhpcyl9fSxfb25Nb3VzZUNsaWNrOmZ1bmN0aW9uKHQpe3RoaXMuX21hcC5kcmFnZ2luZyYmdGhpcy5fbWFwLmRyYWdnaW5nLm1vdmVkKCl8fHRoaXMuX2ZpcmVNb3VzZUV2ZW50KHQpfSxfZmlyZU1vdXNlRXZlbnQ6ZnVuY3Rpb24odCl7aWYodGhpcy5oYXNFdmVudExpc3RlbmVycyh0LnR5cGUpKXt2YXIgZT10aGlzLl9tYXAsaT1lLm1vdXNlRXZlbnRUb0NvbnRhaW5lclBvaW50KHQpLG49ZS5jb250YWluZXJQb2ludFRvTGF5ZXJQb2ludChpKSxzPWUubGF5ZXJQb2ludFRvTGF0TG5nKG4pO3RoaXMuZmlyZSh0LnR5cGUse2xhdGxuZzpzLGxheWVyUG9pbnQ6bixjb250YWluZXJQb2ludDppLG9yaWdpbmFsRXZlbnQ6dH0pLCJjb250ZXh0bWVudSI9PT10LnR5cGUmJm8uRG9tRXZlbnQucHJldmVudERlZmF1bHQodCksIm1vdXNlbW92ZSIhPT10LnR5cGUmJm8uRG9tRXZlbnQuc3RvcFByb3BhZ2F0aW9uKHQpfX19KSxvLk1hcC5pbmNsdWRlKHtfaW5pdFBhdGhSb290OmZ1bmN0aW9uKCl7dGhpcy5fcGF0aFJvb3R8fCh0aGlzLl9wYXRoUm9vdD1vLlBhdGgucHJvdG90eXBlLl9jcmVhdGVFbGVtZW50KCJzdmciKSx0aGlzLl9wYW5lcy5vdmVybGF5UGFuZS5hcHBlbmRDaGlsZCh0aGlzLl9wYXRoUm9vdCksdGhpcy5vcHRpb25zLnpvb21BbmltYXRpb24mJm8uQnJvd3Nlci5hbnkzZD8oby5Eb21VdGlsLmFkZENsYXNzKHRoaXMuX3BhdGhSb290LCJsZWFmbGV0LXpvb20tYW5pbWF0ZWQiKSx0aGlzLm9uKHt6b29tYW5pbTp0aGlzLl9hbmltYXRlUGF0aFpvb20sem9vbWVuZDp0aGlzLl9lbmRQYXRoWm9vbX0pKTpvLkRvbVV0aWwuYWRkQ2xhc3ModGhpcy5fcGF0aFJvb3QsImxlYWZsZXQtem9vbS1oaWRlIiksdGhpcy5vbigibW92ZWVuZCIsdGhpcy5fdXBkYXRlU3ZnVmlld3BvcnQpLHRoaXMuX3VwZGF0ZVN2Z1ZpZXdwb3J0KCkpCn0sX2FuaW1hdGVQYXRoWm9vbTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldFpvb21TY2FsZSh0Lnpvb20pLGk9dGhpcy5fZ2V0Q2VudGVyT2Zmc2V0KHQuY2VudGVyKS5fbXVsdGlwbHlCeSgtZSkuX2FkZCh0aGlzLl9wYXRoVmlld3BvcnQubWluKTt0aGlzLl9wYXRoUm9vdC5zdHlsZVtvLkRvbVV0aWwuVFJBTlNGT1JNXT1vLkRvbVV0aWwuZ2V0VHJhbnNsYXRlU3RyaW5nKGkpKyIgc2NhbGUoIitlKyIpICIsdGhpcy5fcGF0aFpvb21pbmc9ITB9LF9lbmRQYXRoWm9vbTpmdW5jdGlvbigpe3RoaXMuX3BhdGhab29taW5nPSExfSxfdXBkYXRlU3ZnVmlld3BvcnQ6ZnVuY3Rpb24oKXtpZighdGhpcy5fcGF0aFpvb21pbmcpe3RoaXMuX3VwZGF0ZVBhdGhWaWV3cG9ydCgpO3ZhciB0PXRoaXMuX3BhdGhWaWV3cG9ydCxlPXQubWluLGk9dC5tYXgsbj1pLngtZS54LHM9aS55LWUueSxhPXRoaXMuX3BhdGhSb290LHI9dGhpcy5fcGFuZXMub3ZlcmxheVBhbmU7by5Ccm93c2VyLm1vYmlsZVdlYmtpdCYmci5yZW1vdmVDaGlsZChhKSxvLkRvbVV0aWwuc2V0UG9zaXRpb24oYSxlKSxhLnNldEF0dHJpYnV0ZSgid2lkdGgiLG4pLGEuc2V0QXR0cmlidXRlKCJoZWlnaHQiLHMpLGEuc2V0QXR0cmlidXRlKCJ2aWV3Qm94IixbZS54LGUueSxuLHNdLmpvaW4oIiAiKSksby5Ccm93c2VyLm1vYmlsZVdlYmtpdCYmci5hcHBlbmRDaGlsZChhKX19fSksby5QYXRoLmluY2x1ZGUoe2JpbmRQb3B1cDpmdW5jdGlvbih0LGUpe3JldHVybiB0IGluc3RhbmNlb2Ygby5Qb3B1cD90aGlzLl9wb3B1cD10OigoIXRoaXMuX3BvcHVwfHxlKSYmKHRoaXMuX3BvcHVwPW5ldyBvLlBvcHVwKGUsdGhpcykpLHRoaXMuX3BvcHVwLnNldENvbnRlbnQodCkpLHRoaXMuX3BvcHVwSGFuZGxlcnNBZGRlZHx8KHRoaXMub24oImNsaWNrIix0aGlzLl9vcGVuUG9wdXAsdGhpcykub24oInJlbW92ZSIsdGhpcy5jbG9zZVBvcHVwLHRoaXMpLHRoaXMuX3BvcHVwSGFuZGxlcnNBZGRlZD0hMCksdGhpc30sdW5iaW5kUG9wdXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcG9wdXAmJih0aGlzLl9wb3B1cD1udWxsLHRoaXMub2ZmKCJjbGljayIsdGhpcy5fb3BlblBvcHVwKS5vZmYoInJlbW92ZSIsdGhpcy5jbG9zZVBvcHVwKSx0aGlzLl9wb3B1cEhhbmRsZXJzQWRkZWQ9ITEpLHRoaXN9LG9wZW5Qb3B1cDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcG9wdXAmJih0PXR8fHRoaXMuX2xhdGxuZ3x8dGhpcy5fbGF0bG5nc1tNYXRoLmZsb29yKHRoaXMuX2xhdGxuZ3MubGVuZ3RoLzIpXSx0aGlzLl9vcGVuUG9wdXAoe2xhdGxuZzp0fSkpLHRoaXN9LGNsb3NlUG9wdXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcG9wdXAmJnRoaXMuX3BvcHVwLl9jbG9zZSgpLHRoaXN9LF9vcGVuUG9wdXA6ZnVuY3Rpb24odCl7dGhpcy5fcG9wdXAuc2V0TGF0TG5nKHQubGF0bG5nKSx0aGlzLl9tYXAub3BlblBvcHVwKHRoaXMuX3BvcHVwKX19KSxvLkJyb3dzZXIudm1sPSFvLkJyb3dzZXIuc3ZnJiZmdW5jdGlvbigpe3RyeXt2YXIgdD1lLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuaW5uZXJIVE1MPSc8djpzaGFwZSBhZGo9IjEiLz4nO3ZhciBpPXQuZmlyc3RDaGlsZDtyZXR1cm4gaS5zdHlsZS5iZWhhdmlvcj0idXJsKCNkZWZhdWx0I1ZNTCkiLGkmJiJvYmplY3QiPT10eXBlb2YgaS5hZGp9Y2F0Y2gobil7cmV0dXJuITF9fSgpLG8uUGF0aD1vLkJyb3dzZXIuc3ZnfHwhby5Ccm93c2VyLnZtbD9vLlBhdGg6by5QYXRoLmV4dGVuZCh7c3RhdGljczp7Vk1MOiEwLENMSVBfUEFERElORzouMDJ9LF9jcmVhdGVFbGVtZW50OmZ1bmN0aW9uKCl7dHJ5e3JldHVybiBlLm5hbWVzcGFjZXMuYWRkKCJsdm1sIiwidXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiKSxmdW5jdGlvbih0KXtyZXR1cm4gZS5jcmVhdGVFbGVtZW50KCI8bHZtbDoiK3QrJyBjbGFzcz0ibHZtbCI+Jyl9fWNhdGNoKHQpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5jcmVhdGVFbGVtZW50KCI8Iit0KycgeG1sbnM9InVybjpzY2hlbWFzLW1pY3Jvc29mdC5jb206dm1sIiBjbGFzcz0ibHZtbCI+Jyl9fX0oKSxfaW5pdFBhdGg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9jb250YWluZXI9dGhpcy5fY3JlYXRlRWxlbWVudCgic2hhcGUiKTtvLkRvbVV0aWwuYWRkQ2xhc3ModCwibGVhZmxldC12bWwtc2hhcGUiKyh0aGlzLm9wdGlvbnMuY2xhc3NOYW1lPyIgIit0aGlzLm9wdGlvbnMuY2xhc3NOYW1lOiIiKSksdGhpcy5vcHRpb25zLmNsaWNrYWJsZSYmby5Eb21VdGlsLmFkZENsYXNzKHQsImxlYWZsZXQtY2xpY2thYmxlIiksdC5jb29yZHNpemU9IjEgMSIsdGhpcy5fcGF0aD10aGlzLl9jcmVhdGVFbGVtZW50KCJwYXRoIiksdC5hcHBlbmRDaGlsZCh0aGlzLl9wYXRoKSx0aGlzLl9tYXAuX3BhdGhSb290LmFwcGVuZENoaWxkKHQpfSxfaW5pdFN0eWxlOmZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlU3R5bGUoKX0sX3VwZGF0ZVN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc3Ryb2tlLGU9dGhpcy5fZmlsbCxpPXRoaXMub3B0aW9ucyxuPXRoaXMuX2NvbnRhaW5lcjtuLnN0cm9rZWQ9aS5zdHJva2Usbi5maWxsZWQ9aS5maWxsLGkuc3Ryb2tlPyh0fHwodD10aGlzLl9zdHJva2U9dGhpcy5fY3JlYXRlRWxlbWVudCgic3Ryb2tlIiksdC5lbmRjYXA9InJvdW5kIixuLmFwcGVuZENoaWxkKHQpKSx0LndlaWdodD1pLndlaWdodCsicHgiLHQuY29sb3I9aS5jb2xvcix0Lm9wYWNpdHk9aS5vcGFjaXR5LHQuZGFzaFN0eWxlPWkuZGFzaEFycmF5P28uVXRpbC5pc0FycmF5KGkuZGFzaEFycmF5KT9pLmRhc2hBcnJheS5qb2luKCIgIik6aS5kYXNoQXJyYXkucmVwbGFjZSgvKCAqLCAqKS9nLCIgIik6IiIsaS5saW5lQ2FwJiYodC5lbmRjYXA9aS5saW5lQ2FwLnJlcGxhY2UoImJ1dHQiLCJmbGF0IikpLGkubGluZUpvaW4mJih0LmpvaW5zdHlsZT1pLmxpbmVKb2luKSk6dCYmKG4ucmVtb3ZlQ2hpbGQodCksdGhpcy5fc3Ryb2tlPW51bGwpLGkuZmlsbD8oZXx8KGU9dGhpcy5fZmlsbD10aGlzLl9jcmVhdGVFbGVtZW50KCJmaWxsIiksbi5hcHBlbmRDaGlsZChlKSksZS5jb2xvcj1pLmZpbGxDb2xvcnx8aS5jb2xvcixlLm9wYWNpdHk9aS5maWxsT3BhY2l0eSk6ZSYmKG4ucmVtb3ZlQ2hpbGQoZSksdGhpcy5fZmlsbD1udWxsKX0sX3VwZGF0ZVBhdGg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9jb250YWluZXIuc3R5bGU7dC5kaXNwbGF5PSJub25lIix0aGlzLl9wYXRoLnY9dGhpcy5nZXRQYXRoU3RyaW5nKCkrIiAiLHQuZGlzcGxheT0iIn19KSxvLk1hcC5pbmNsdWRlKG8uQnJvd3Nlci5zdmd8fCFvLkJyb3dzZXIudm1sP3t9OntfaW5pdFBhdGhSb290OmZ1bmN0aW9uKCl7aWYoIXRoaXMuX3BhdGhSb290KXt2YXIgdD10aGlzLl9wYXRoUm9vdD1lLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJsZWFmbGV0LXZtbC1jb250YWluZXIiLHRoaXMuX3BhbmVzLm92ZXJsYXlQYW5lLmFwcGVuZENoaWxkKHQpLHRoaXMub24oIm1vdmVlbmQiLHRoaXMuX3VwZGF0ZVBhdGhWaWV3cG9ydCksdGhpcy5fdXBkYXRlUGF0aFZpZXdwb3J0KCl9fX0pLG8uQnJvd3Nlci5jYW52YXM9ZnVuY3Rpb24oKXtyZXR1cm4hIWUuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dH0oKSxvLlBhdGg9by5QYXRoLlNWRyYmIXQuTF9QUkVGRVJfQ0FOVkFTfHwhby5Ccm93c2VyLmNhbnZhcz9vLlBhdGg6by5QYXRoLmV4dGVuZCh7c3RhdGljczp7Q0FOVkFTOiEwLFNWRzohMX0scmVkcmF3OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21hcCYmKHRoaXMucHJvamVjdExhdGxuZ3MoKSx0aGlzLl9yZXF1ZXN0VXBkYXRlKCkpLHRoaXN9LHNldFN0eWxlOmZ1bmN0aW9uKHQpe3JldHVybiBvLnNldE9wdGlvbnModGhpcyx0KSx0aGlzLl9tYXAmJih0aGlzLl91cGRhdGVTdHlsZSgpLHRoaXMuX3JlcXVlc3RVcGRhdGUoKSksdGhpc30sb25SZW1vdmU6ZnVuY3Rpb24odCl7dC5vZmYoInZpZXdyZXNldCIsdGhpcy5wcm9qZWN0TGF0bG5ncyx0aGlzKS5vZmYoIm1vdmVlbmQiLHRoaXMuX3VwZGF0ZVBhdGgsdGhpcyksdGhpcy5vcHRpb25zLmNsaWNrYWJsZSYmKHRoaXMuX21hcC5vZmYoImNsaWNrIix0aGlzLl9vbkNsaWNrLHRoaXMpLHRoaXMuX21hcC5vZmYoIm1vdXNlbW92ZSIsdGhpcy5fb25Nb3VzZU1vdmUsdGhpcykpLHRoaXMuX3JlcXVlc3RVcGRhdGUoKSx0aGlzLmZpcmUoInJlbW92ZSIpLHRoaXMuX21hcD1udWxsfSxfcmVxdWVzdFVwZGF0ZTpmdW5jdGlvbigpe3RoaXMuX21hcCYmIW8uUGF0aC5fdXBkYXRlUmVxdWVzdCYmKG8uUGF0aC5fdXBkYXRlUmVxdWVzdD1vLlV0aWwucmVxdWVzdEFuaW1GcmFtZSh0aGlzLl9maXJlTWFwTW92ZUVuZCx0aGlzLl9tYXApKX0sX2ZpcmVNYXBNb3ZlRW5kOmZ1bmN0aW9uKCl7by5QYXRoLl91cGRhdGVSZXF1ZXN0PW51bGwsdGhpcy5maXJlKCJtb3ZlZW5kIil9LF9pbml0RWxlbWVudHM6ZnVuY3Rpb24oKXt0aGlzLl9tYXAuX2luaXRQYXRoUm9vdCgpLHRoaXMuX2N0eD10aGlzLl9tYXAuX2NhbnZhc0N0eH0sX3VwZGF0ZVN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zO3Quc3Ryb2tlJiYodGhpcy5fY3R4LmxpbmVXaWR0aD10LndlaWdodCx0aGlzLl9jdHguc3Ryb2tlU3R5bGU9dC5jb2xvciksdC5maWxsJiYodGhpcy5fY3R4LmZpbGxTdHlsZT10LmZpbGxDb2xvcnx8dC5jb2xvcil9LF9kcmF3UGF0aDpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHMsYTtmb3IodGhpcy5fY3R4LmJlZ2luUGF0aCgpLHQ9MCxpPXRoaXMuX3BhcnRzLmxlbmd0aDtpPnQ7dCsrKXtmb3IoZT0wLG49dGhpcy5fcGFydHNbdF0ubGVuZ3RoO24+ZTtlKyspcz10aGlzLl9wYXJ0c1t0XVtlXSxhPSgwPT09ZT8ibW92ZSI6ImxpbmUiKSsiVG8iLHRoaXMuX2N0eFthXShzLngscy55KTt0aGlzIGluc3RhbmNlb2Ygby5Qb2x5Z29uJiZ0aGlzLl9jdHguY2xvc2VQYXRoKCl9fSxfY2hlY2tJZkVtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuX3BhcnRzLmxlbmd0aH0sX3VwZGF0ZVBhdGg6ZnVuY3Rpb24oKXtpZighdGhpcy5fY2hlY2tJZkVtcHR5KCkpe3ZhciB0PXRoaXMuX2N0eCxlPXRoaXMub3B0aW9uczt0aGlzLl9kcmF3UGF0aCgpLHQuc2F2ZSgpLHRoaXMuX3VwZGF0ZVN0eWxlKCksZS5maWxsJiYodC5nbG9iYWxBbHBoYT1lLmZpbGxPcGFjaXR5LHQuZmlsbCgpKSxlLnN0cm9rZSYmKHQuZ2xvYmFsQWxwaGE9ZS5vcGFjaXR5LHQuc3Ryb2tlKCkpLHQucmVzdG9yZSgpfX0sX2luaXRFdmVudHM6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuY2xpY2thYmxlJiYodGhpcy5fbWFwLm9uKCJtb3VzZW1vdmUiLHRoaXMuX29uTW91c2VNb3ZlLHRoaXMpLHRoaXMuX21hcC5vbigiY2xpY2siLHRoaXMuX29uQ2xpY2ssdGhpcykpfSxfb25DbGljazpmdW5jdGlvbih0KXt0aGlzLl9jb250YWluc1BvaW50KHQubGF5ZXJQb2ludCkmJnRoaXMuZmlyZSgiY2xpY2siLHQpfSxfb25Nb3VzZU1vdmU6ZnVuY3Rpb24odCl7dGhpcy5fbWFwJiYhdGhpcy5fbWFwLl9hbmltYXRpbmdab29tJiYodGhpcy5fY29udGFpbnNQb2ludCh0LmxheWVyUG9pbnQpPyh0aGlzLl9jdHguY2FudmFzLnN0eWxlLmN1cnNvcj0icG9pbnRlciIsdGhpcy5fbW91c2VJbnNpZGU9ITAsdGhpcy5maXJlKCJtb3VzZW92ZXIiLHQpKTp0aGlzLl9tb3VzZUluc2lkZSYmKHRoaXMuX2N0eC5jYW52YXMuc3R5bGUuY3Vyc29yPSIiLHRoaXMuX21vdXNlSW5zaWRlPSExLHRoaXMuZmlyZSgibW91c2VvdXQiLHQpKSl9fSksby5NYXAuaW5jbHVkZShvLlBhdGguU1ZHJiYhdC5MX1BSRUZFUl9DQU5WQVN8fCFvLkJyb3dzZXIuY2FudmFzP3t9OntfaW5pdFBhdGhSb290OmZ1bmN0aW9uKCl7dmFyIHQsaT10aGlzLl9wYXRoUm9vdDtpfHwoaT10aGlzLl9wYXRoUm9vdD1lLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGkuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0PXRoaXMuX2NhbnZhc0N0eD1pLmdldENvbnRleHQoIjJkIiksdC5saW5lQ2FwPSJyb3VuZCIsdC5saW5lSm9pbj0icm91bmQiLHRoaXMuX3BhbmVzLm92ZXJsYXlQYW5lLmFwcGVuZENoaWxkKGkpLHRoaXMub3B0aW9ucy56b29tQW5pbWF0aW9uJiYodGhpcy5fcGF0aFJvb3QuY2xhc3NOYW1lPSJsZWFmbGV0LXpvb20tYW5pbWF0ZWQiLHRoaXMub24oInpvb21hbmltIix0aGlzLl9hbmltYXRlUGF0aFpvb20pLHRoaXMub24oInpvb21lbmQiLHRoaXMuX2VuZFBhdGhab29tKSksdGhpcy5vbigibW92ZWVuZCIsdGhpcy5fdXBkYXRlQ2FudmFzVmlld3BvcnQpLHRoaXMuX3VwZGF0ZUNhbnZhc1ZpZXdwb3J0KCkpfSxfdXBkYXRlQ2FudmFzVmlld3BvcnQ6ZnVuY3Rpb24oKXtpZighdGhpcy5fcGF0aFpvb21pbmcpe3RoaXMuX3VwZGF0ZVBhdGhWaWV3cG9ydCgpO3ZhciB0PXRoaXMuX3BhdGhWaWV3cG9ydCxlPXQubWluLGk9dC5tYXguc3VidHJhY3QoZSksbj10aGlzLl9wYXRoUm9vdDtvLkRvbVV0aWwuc2V0UG9zaXRpb24obixlKSxuLndpZHRoPWkueCxuLmhlaWdodD1pLnksbi5nZXRDb250ZXh0KCIyZCIpLnRyYW5zbGF0ZSgtZS54LC1lLnkpfX19KSxvLkxpbmVVdGlsPXtzaW1wbGlmeTpmdW5jdGlvbih0LGUpe2lmKCFlfHwhdC5sZW5ndGgpcmV0dXJuIHQuc2xpY2UoKTt2YXIgaT1lKmU7cmV0dXJuIHQ9dGhpcy5fcmVkdWNlUG9pbnRzKHQsaSksdD10aGlzLl9zaW1wbGlmeURQKHQsaSl9LHBvaW50VG9TZWdtZW50RGlzdGFuY2U6ZnVuY3Rpb24odCxlLGkpe3JldHVybiBNYXRoLnNxcnQodGhpcy5fc3FDbG9zZXN0UG9pbnRPblNlZ21lbnQodCxlLGksITApKX0sY2xvc2VzdFBvaW50T25TZWdtZW50OmZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gdGhpcy5fc3FDbG9zZXN0UG9pbnRPblNlZ21lbnQodCxlLGkpfSxfc2ltcGxpZnlEUDpmdW5jdGlvbih0LGUpe3ZhciBuPXQubGVuZ3RoLG89dHlwZW9mIFVpbnQ4QXJyYXkhPWkrIiI/VWludDhBcnJheTpBcnJheSxzPW5ldyBvKG4pO3NbMF09c1tuLTFdPTEsdGhpcy5fc2ltcGxpZnlEUFN0ZXAodCxzLGUsMCxuLTEpO3ZhciBhLHI9W107Zm9yKGE9MDtuPmE7YSsrKXNbYV0mJnIucHVzaCh0W2FdKTtyZXR1cm4gcn0sX3NpbXBsaWZ5RFBTdGVwOmZ1bmN0aW9uKHQsZSxpLG4sbyl7dmFyIHMsYSxyLGg9MDtmb3IoYT1uKzE7by0xPj1hO2ErKylyPXRoaXMuX3NxQ2xvc2VzdFBvaW50T25TZWdtZW50KHRbYV0sdFtuXSx0W29dLCEwKSxyPmgmJihzPWEsaD1yKTtoPmkmJihlW3NdPTEsdGhpcy5fc2ltcGxpZnlEUFN0ZXAodCxlLGksbixzKSx0aGlzLl9zaW1wbGlmeURQU3RlcCh0LGUsaSxzLG8pKX0sX3JlZHVjZVBvaW50czpmdW5jdGlvbih0LGUpe2Zvcih2YXIgaT1bdFswXV0sbj0xLG89MCxzPXQubGVuZ3RoO3M+bjtuKyspdGhpcy5fc3FEaXN0KHRbbl0sdFtvXSk+ZSYmKGkucHVzaCh0W25dKSxvPW4pO3JldHVybiBzLTE+byYmaS5wdXNoKHRbcy0xXSksaX0sY2xpcFNlZ21lbnQ6ZnVuY3Rpb24odCxlLGksbil7dmFyIG8scyxhLHI9bj90aGlzLl9sYXN0Q29kZTp0aGlzLl9nZXRCaXRDb2RlKHQsaSksaD10aGlzLl9nZXRCaXRDb2RlKGUsaSk7Zm9yKHRoaXMuX2xhc3RDb2RlPWg7Oyl7aWYoIShyfGgpKXJldHVyblt0LGVdO2lmKHImaClyZXR1cm4hMTtvPXJ8fGgscz10aGlzLl9nZXRFZGdlSW50ZXJzZWN0aW9uKHQsZSxvLGkpLGE9dGhpcy5fZ2V0Qml0Q29kZShzLGkpLG89PT1yPyh0PXMscj1hKTooZT1zLGg9YSl9fSxfZ2V0RWRnZUludGVyc2VjdGlvbjpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcz1lLngtdC54LGE9ZS55LXQueSxyPW4ubWluLGg9bi5tYXg7cmV0dXJuIDgmaT9uZXcgby5Qb2ludCh0LngrcyooaC55LXQueSkvYSxoLnkpOjQmaT9uZXcgby5Qb2ludCh0Lngrcyooci55LXQueSkvYSxyLnkpOjImaT9uZXcgby5Qb2ludChoLngsdC55K2EqKGgueC10LngpL3MpOjEmaT9uZXcgby5Qb2ludChyLngsdC55K2EqKHIueC10LngpL3MpOnZvaWQgMH0sX2dldEJpdENvZGU6ZnVuY3Rpb24odCxlKXt2YXIgaT0wO3JldHVybiB0Lng8ZS5taW4ueD9pfD0xOnQueD5lLm1heC54JiYoaXw9MiksdC55PGUubWluLnk/aXw9NDp0Lnk+ZS5tYXgueSYmKGl8PTgpLGl9LF9zcURpc3Q6ZnVuY3Rpb24odCxlKXt2YXIgaT1lLngtdC54LG49ZS55LXQueTtyZXR1cm4gaSppK24qbn0sX3NxQ2xvc2VzdFBvaW50T25TZWdtZW50OmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBzLGE9ZS54LHI9ZS55LGg9aS54LWEsbD1pLnktcix1PWgqaCtsKmw7cmV0dXJuIHU+MCYmKHM9KCh0LngtYSkqaCsodC55LXIpKmwpL3Uscz4xPyhhPWkueCxyPWkueSk6cz4wJiYoYSs9aCpzLHIrPWwqcykpLGg9dC54LWEsbD10LnktcixuP2gqaCtsKmw6bmV3IG8uUG9pbnQoYSxyKX19LG8uUG9seWxpbmU9by5QYXRoLmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0LGUpe28uUGF0aC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsZSksdGhpcy5fbGF0bG5ncz10aGlzLl9jb252ZXJ0TGF0TG5ncyh0KX0sb3B0aW9uczp7c21vb3RoRmFjdG9yOjEsbm9DbGlwOiExfSxwcm9qZWN0TGF0bG5nczpmdW5jdGlvbigpe3RoaXMuX29yaWdpbmFsUG9pbnRzPVtdO2Zvcih2YXIgdD0wLGU9dGhpcy5fbGF0bG5ncy5sZW5ndGg7ZT50O3QrKyl0aGlzLl9vcmlnaW5hbFBvaW50c1t0XT10aGlzLl9tYXAubGF0TG5nVG9MYXllclBvaW50KHRoaXMuX2xhdGxuZ3NbdF0pfSxnZXRQYXRoU3RyaW5nOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAsZT10aGlzLl9wYXJ0cy5sZW5ndGgsaT0iIjtlPnQ7dCsrKWkrPXRoaXMuX2dldFBhdGhQYXJ0U3RyKHRoaXMuX3BhcnRzW3RdKTtyZXR1cm4gaX0sZ2V0TGF0TG5nczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sYXRsbmdzfSxzZXRMYXRMbmdzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9sYXRsbmdzPXRoaXMuX2NvbnZlcnRMYXRMbmdzKHQpLHRoaXMucmVkcmF3KCl9LGFkZExhdExuZzpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbGF0bG5ncy5wdXNoKG8ubGF0TG5nKHQpKSx0aGlzLnJlZHJhdygpfSxzcGxpY2VMYXRMbmdzOmZ1bmN0aW9uKCl7dmFyIHQ9W10uc3BsaWNlLmFwcGx5KHRoaXMuX2xhdGxuZ3MsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5fY29udmVydExhdExuZ3ModGhpcy5fbGF0bG5ncywhMCksdGhpcy5yZWRyYXcoKSx0fSxjbG9zZXN0TGF5ZXJQb2ludDpmdW5jdGlvbih0KXtmb3IodmFyIGUsaSxuPTEvMCxzPXRoaXMuX3BhcnRzLGE9bnVsbCxyPTAsaD1zLmxlbmd0aDtoPnI7cisrKWZvcih2YXIgbD1zW3JdLHU9MSxjPWwubGVuZ3RoO2M+dTt1Kyspe2U9bFt1LTFdLGk9bFt1XTt2YXIgZD1vLkxpbmVVdGlsLl9zcUNsb3Nlc3RQb2ludE9uU2VnbWVudCh0LGUsaSwhMCk7bj5kJiYobj1kLGE9by5MaW5lVXRpbC5fc3FDbG9zZXN0UG9pbnRPblNlZ21lbnQodCxlLGkpKX1yZXR1cm4gYSYmKGEuZGlzdGFuY2U9TWF0aC5zcXJ0KG4pKSxhfSxnZXRCb3VuZHM6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG8uTGF0TG5nQm91bmRzKHRoaXMuZ2V0TGF0TG5ncygpKX0sX2NvbnZlcnRMYXRMbmdzOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixzPWU/dDpbXTtmb3IoaT0wLG49dC5sZW5ndGg7bj5pO2krKyl7aWYoby5VdGlsLmlzQXJyYXkodFtpXSkmJiJudW1iZXIiIT10eXBlb2YgdFtpXVswXSlyZXR1cm47c1tpXT1vLmxhdExuZyh0W2ldKX1yZXR1cm4gc30sX2luaXRFdmVudHM6ZnVuY3Rpb24oKXtvLlBhdGgucHJvdG90eXBlLl9pbml0RXZlbnRzLmNhbGwodGhpcyl9LF9nZXRQYXRoUGFydFN0cjpmdW5jdGlvbih0KXtmb3IodmFyIGUsaT1vLlBhdGguVk1MLG49MCxzPXQubGVuZ3RoLGE9IiI7cz5uO24rKyllPXRbbl0saSYmZS5fcm91bmQoKSxhKz0obj8iTCI6Ik0iKStlLngrIiAiK2UueTtyZXR1cm4gYX0sX2NsaXBQb2ludHM6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbj10aGlzLl9vcmlnaW5hbFBvaW50cyxzPW4ubGVuZ3RoO2lmKHRoaXMub3B0aW9ucy5ub0NsaXApcmV0dXJuIHZvaWQodGhpcy5fcGFydHM9W25dKTt0aGlzLl9wYXJ0cz1bXTt2YXIgYT10aGlzLl9wYXJ0cyxyPXRoaXMuX21hcC5fcGF0aFZpZXdwb3J0LGg9by5MaW5lVXRpbDtmb3IodD0wLGU9MDtzLTE+dDt0KyspaT1oLmNsaXBTZWdtZW50KG5bdF0sblt0KzFdLHIsdCksaSYmKGFbZV09YVtlXXx8W10sYVtlXS5wdXNoKGlbMF0pLChpWzFdIT09blt0KzFdfHx0PT09cy0yKSYmKGFbZV0ucHVzaChpWzFdKSxlKyspKX0sX3NpbXBsaWZ5UG9pbnRzOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX3BhcnRzLGU9by5MaW5lVXRpbCxpPTAsbj10Lmxlbmd0aDtuPmk7aSsrKXRbaV09ZS5zaW1wbGlmeSh0W2ldLHRoaXMub3B0aW9ucy5zbW9vdGhGYWN0b3IpfSxfdXBkYXRlUGF0aDpmdW5jdGlvbigpe3RoaXMuX21hcCYmKHRoaXMuX2NsaXBQb2ludHMoKSx0aGlzLl9zaW1wbGlmeVBvaW50cygpLG8uUGF0aC5wcm90b3R5cGUuX3VwZGF0ZVBhdGguY2FsbCh0aGlzKSl9fSksby5wb2x5bGluZT1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgby5Qb2x5bGluZSh0LGUpfSxvLlBvbHlVdGlsPXt9LG8uUG9seVV0aWwuY2xpcFBvbHlnb249ZnVuY3Rpb24odCxlKXt2YXIgaSxuLHMsYSxyLGgsbCx1LGMsZD1bMSw0LDIsOF0scD1vLkxpbmVVdGlsO2ZvcihuPTAsbD10Lmxlbmd0aDtsPm47bisrKXRbbl0uX2NvZGU9cC5fZ2V0Qml0Q29kZSh0W25dLGUpO2ZvcihhPTA7ND5hO2ErKyl7Zm9yKHU9ZFthXSxpPVtdLG49MCxsPXQubGVuZ3RoLHM9bC0xO2w+bjtzPW4rKylyPXRbbl0saD10W3NdLHIuX2NvZGUmdT9oLl9jb2RlJnV8fChjPXAuX2dldEVkZ2VJbnRlcnNlY3Rpb24oaCxyLHUsZSksYy5fY29kZT1wLl9nZXRCaXRDb2RlKGMsZSksaS5wdXNoKGMpKTooaC5fY29kZSZ1JiYoYz1wLl9nZXRFZGdlSW50ZXJzZWN0aW9uKGgscix1LGUpLGMuX2NvZGU9cC5fZ2V0Qml0Q29kZShjLGUpLGkucHVzaChjKSksaS5wdXNoKHIpKTt0PWl9cmV0dXJuIHR9LG8uUG9seWdvbj1vLlBvbHlsaW5lLmV4dGVuZCh7b3B0aW9uczp7ZmlsbDohMH0saW5pdGlhbGl6ZTpmdW5jdGlvbih0LGUpe28uUG9seWxpbmUucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLHQsZSksdGhpcy5faW5pdFdpdGhIb2xlcyh0KX0sX2luaXRXaXRoSG9sZXM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2lmKHQmJm8uVXRpbC5pc0FycmF5KHRbMF0pJiYibnVtYmVyIiE9dHlwZW9mIHRbMF1bMF0pZm9yKHRoaXMuX2xhdGxuZ3M9dGhpcy5fY29udmVydExhdExuZ3ModFswXSksdGhpcy5faG9sZXM9dC5zbGljZSgxKSxlPTAsaT10aGlzLl9ob2xlcy5sZW5ndGg7aT5lO2UrKyluPXRoaXMuX2hvbGVzW2VdPXRoaXMuX2NvbnZlcnRMYXRMbmdzKHRoaXMuX2hvbGVzW2VdKSxuWzBdLmVxdWFscyhuW24ubGVuZ3RoLTFdKSYmbi5wb3AoKTt0PXRoaXMuX2xhdGxuZ3MsdC5sZW5ndGg+PTImJnRbMF0uZXF1YWxzKHRbdC5sZW5ndGgtMV0pJiZ0LnBvcCgpfSxwcm9qZWN0TGF0bG5nczpmdW5jdGlvbigpe2lmKG8uUG9seWxpbmUucHJvdG90eXBlLnByb2plY3RMYXRsbmdzLmNhbGwodGhpcyksdGhpcy5faG9sZVBvaW50cz1bXSx0aGlzLl9ob2xlcyl7dmFyIHQsZSxpLG47Zm9yKHQ9MCxpPXRoaXMuX2hvbGVzLmxlbmd0aDtpPnQ7dCsrKWZvcih0aGlzLl9ob2xlUG9pbnRzW3RdPVtdLGU9MCxuPXRoaXMuX2hvbGVzW3RdLmxlbmd0aDtuPmU7ZSsrKXRoaXMuX2hvbGVQb2ludHNbdF1bZV09dGhpcy5fbWFwLmxhdExuZ1RvTGF5ZXJQb2ludCh0aGlzLl9ob2xlc1t0XVtlXSl9fSxzZXRMYXRMbmdzOmZ1bmN0aW9uKHQpe3JldHVybiB0JiZvLlV0aWwuaXNBcnJheSh0WzBdKSYmIm51bWJlciIhPXR5cGVvZiB0WzBdWzBdPyh0aGlzLl9pbml0V2l0aEhvbGVzKHQpLHRoaXMucmVkcmF3KCkpOm8uUG9seWxpbmUucHJvdG90eXBlLnNldExhdExuZ3MuY2FsbCh0aGlzLHQpfSxfY2xpcFBvaW50czpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX29yaWdpbmFsUG9pbnRzLGU9W107aWYodGhpcy5fcGFydHM9W3RdLmNvbmNhdCh0aGlzLl9ob2xlUG9pbnRzKSwhdGhpcy5vcHRpb25zLm5vQ2xpcCl7Zm9yKHZhciBpPTAsbj10aGlzLl9wYXJ0cy5sZW5ndGg7bj5pO2krKyl7dmFyIHM9by5Qb2x5VXRpbC5jbGlwUG9seWdvbih0aGlzLl9wYXJ0c1tpXSx0aGlzLl9tYXAuX3BhdGhWaWV3cG9ydCk7cy5sZW5ndGgmJmUucHVzaChzKX10aGlzLl9wYXJ0cz1lfX0sX2dldFBhdGhQYXJ0U3RyOmZ1bmN0aW9uKHQpe3ZhciBlPW8uUG9seWxpbmUucHJvdG90eXBlLl9nZXRQYXRoUGFydFN0ci5jYWxsKHRoaXMsdCk7cmV0dXJuIGUrKG8uQnJvd3Nlci5zdmc/InoiOiJ4Iil9fSksby5wb2x5Z29uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBvLlBvbHlnb24odCxlKX0sZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVybiBvLkZlYXR1cmVHcm91cC5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb24odCxlKXt0aGlzLl9sYXllcnM9e30sdGhpcy5fb3B0aW9ucz1lLHRoaXMuc2V0TGF0TG5ncyh0KX0sc2V0TGF0TG5nczpmdW5jdGlvbihlKXt2YXIgaT0wLG49ZS5sZW5ndGg7Zm9yKHRoaXMuZWFjaExheWVyKGZ1bmN0aW9uKHQpe24+aT90LnNldExhdExuZ3MoZVtpKytdKTp0aGlzLnJlbW92ZUxheWVyKHQpfSx0aGlzKTtuPmk7KXRoaXMuYWRkTGF5ZXIobmV3IHQoZVtpKytdLHRoaXMuX29wdGlvbnMpKTtyZXR1cm4gdGhpc30sZ2V0TGF0TG5nczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2hMYXllcihmdW5jdGlvbihlKXt0LnB1c2goZS5nZXRMYXRMbmdzKCkpfSksdH19KX1vLk11bHRpUG9seWxpbmU9dChvLlBvbHlsaW5lKSxvLk11bHRpUG9seWdvbj10KG8uUG9seWdvbiksby5tdWx0aVBvbHlsaW5lPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBvLk11bHRpUG9seWxpbmUodCxlKX0sby5tdWx0aVBvbHlnb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IG8uTXVsdGlQb2x5Z29uKHQsZSl9fSgpLG8uUmVjdGFuZ2xlPW8uUG9seWdvbi5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb24odCxlKXtvLlBvbHlnb24ucHJvdG90eXBlLmluaXRpYWxpemUuY2FsbCh0aGlzLHRoaXMuX2JvdW5kc1RvTGF0TG5ncyh0KSxlKX0sc2V0Qm91bmRzOmZ1bmN0aW9uKHQpe3RoaXMuc2V0TGF0TG5ncyh0aGlzLl9ib3VuZHNUb0xhdExuZ3ModCkpfSxfYm91bmRzVG9MYXRMbmdzOmZ1bmN0aW9uKHQpe3JldHVybiB0PW8ubGF0TG5nQm91bmRzKHQpLFt0LmdldFNvdXRoV2VzdCgpLHQuZ2V0Tm9ydGhXZXN0KCksdC5nZXROb3J0aEVhc3QoKSx0LmdldFNvdXRoRWFzdCgpXX19KSxvLnJlY3RhbmdsZT1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgby5SZWN0YW5nbGUodCxlKX0sby5DaXJjbGU9by5QYXRoLmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0LGUsaSl7by5QYXRoLnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyxpKSx0aGlzLl9sYXRsbmc9by5sYXRMbmcodCksdGhpcy5fbVJhZGl1cz1lfSxvcHRpb25zOntmaWxsOiEwfSxzZXRMYXRMbmc6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2xhdGxuZz1vLmxhdExuZyh0KSx0aGlzLnJlZHJhdygpfSxzZXRSYWRpdXM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX21SYWRpdXM9dCx0aGlzLnJlZHJhdygpfSxwcm9qZWN0TGF0bG5nczpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2dldExuZ1JhZGl1cygpLGU9dGhpcy5fbGF0bG5nLGk9dGhpcy5fbWFwLmxhdExuZ1RvTGF5ZXJQb2ludChbZS5sYXQsZS5sbmctdF0pO3RoaXMuX3BvaW50PXRoaXMuX21hcC5sYXRMbmdUb0xheWVyUG9pbnQoZSksdGhpcy5fcmFkaXVzPU1hdGgubWF4KHRoaXMuX3BvaW50LngtaS54LDEpfSxnZXRCb3VuZHM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9nZXRMbmdSYWRpdXMoKSxlPXRoaXMuX21SYWRpdXMvNDAwNzUwMTcqMzYwLGk9dGhpcy5fbGF0bG5nO3JldHVybiBuZXcgby5MYXRMbmdCb3VuZHMoW2kubGF0LWUsaS5sbmctdF0sW2kubGF0K2UsaS5sbmcrdF0pfSxnZXRMYXRMbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGF0bG5nfSxnZXRQYXRoU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcG9pbnQsZT10aGlzLl9yYWRpdXM7cmV0dXJuIHRoaXMuX2NoZWNrSWZFbXB0eSgpPyIiOm8uQnJvd3Nlci5zdmc/Ik0iK3QueCsiLCIrKHQueS1lKSsiQSIrZSsiLCIrZSsiLDAsMSwxLCIrKHQueC0uMSkrIiwiKyh0LnktZSkrIiB6IjoodC5fcm91bmQoKSxlPU1hdGgucm91bmQoZSksIkFMICIrdC54KyIsIit0LnkrIiAiK2UrIiwiK2UrIiAwLDIzNTkyNjAwIil9LGdldFJhZGl1czpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tUmFkaXVzfSxfZ2V0TGF0UmFkaXVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21SYWRpdXMvNDAwNzUwMTcqMzYwfSxfZ2V0TG5nUmFkaXVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2dldExhdFJhZGl1cygpL01hdGguY29zKG8uTGF0TG5nLkRFR19UT19SQUQqdGhpcy5fbGF0bG5nLmxhdCl9LF9jaGVja0lmRW1wdHk6ZnVuY3Rpb24oKXtpZighdGhpcy5fbWFwKXJldHVybiExO3ZhciB0PXRoaXMuX21hcC5fcGF0aFZpZXdwb3J0LGU9dGhpcy5fcmFkaXVzLGk9dGhpcy5fcG9pbnQ7cmV0dXJuIGkueC1lPnQubWF4Lnh8fGkueS1lPnQubWF4Lnl8fGkueCtlPHQubWluLnh8fGkueStlPHQubWluLnl9fSksby5jaXJjbGU9ZnVuY3Rpb24odCxlLGkpe3JldHVybiBuZXcgby5DaXJjbGUodCxlLGkpfSxvLkNpcmNsZU1hcmtlcj1vLkNpcmNsZS5leHRlbmQoe29wdGlvbnM6e3JhZGl1czoxMCx3ZWlnaHQ6Mn0saW5pdGlhbGl6ZTpmdW5jdGlvbih0LGUpe28uQ2lyY2xlLnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwodGhpcyx0LG51bGwsZSksdGhpcy5fcmFkaXVzPXRoaXMub3B0aW9ucy5yYWRpdXN9LHByb2plY3RMYXRsbmdzOmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9dGhpcy5fbWFwLmxhdExuZ1RvTGF5ZXJQb2ludCh0aGlzLl9sYXRsbmcpfSxfdXBkYXRlU3R5bGU6ZnVuY3Rpb24oKXtvLkNpcmNsZS5wcm90b3R5cGUuX3VwZGF0ZVN0eWxlLmNhbGwodGhpcyksdGhpcy5zZXRSYWRpdXModGhpcy5vcHRpb25zLnJhZGl1cyl9LHNldExhdExuZzpmdW5jdGlvbih0KXtyZXR1cm4gby5DaXJjbGUucHJvdG90eXBlLnNldExhdExuZy5jYWxsKHRoaXMsdCksdGhpcy5fcG9wdXAmJnRoaXMuX3BvcHVwLl9pc09wZW4mJnRoaXMuX3BvcHVwLnNldExhdExuZyh0KSx0aGlzfSxzZXRSYWRpdXM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMub3B0aW9ucy5yYWRpdXM9dGhpcy5fcmFkaXVzPXQsdGhpcy5yZWRyYXcoKX0sZ2V0UmFkaXVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JhZGl1c319KSxvLmNpcmNsZU1hcmtlcj1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgby5DaXJjbGVNYXJrZXIodCxlKX0sby5Qb2x5bGluZS5pbmNsdWRlKG8uUGF0aC5DQU5WQVM/e19jb250YWluc1BvaW50OmZ1bmN0aW9uKHQsZSl7dmFyIGksbixzLGEscixoLGwsdT10aGlzLm9wdGlvbnMud2VpZ2h0LzI7Zm9yKG8uQnJvd3Nlci50b3VjaCYmKHUrPTEwKSxpPTAsYT10aGlzLl9wYXJ0cy5sZW5ndGg7YT5pO2krKylmb3IobD10aGlzLl9wYXJ0c1tpXSxuPTAscj1sLmxlbmd0aCxzPXItMTtyPm47cz1uKyspaWYoKGV8fDAhPT1uKSYmKGg9by5MaW5lVXRpbC5wb2ludFRvU2VnbWVudERpc3RhbmNlKHQsbFtzXSxsW25dKSx1Pj1oKSlyZXR1cm4hMDtyZXR1cm4hMX19Ont9KSxvLlBvbHlnb24uaW5jbHVkZShvLlBhdGguQ0FOVkFTP3tfY29udGFpbnNQb2ludDpmdW5jdGlvbih0KXt2YXIgZSxpLG4scyxhLHIsaCxsLHU9ITE7aWYoby5Qb2x5bGluZS5wcm90b3R5cGUuX2NvbnRhaW5zUG9pbnQuY2FsbCh0aGlzLHQsITApKXJldHVybiEwO2ZvcihzPTAsaD10aGlzLl9wYXJ0cy5sZW5ndGg7aD5zO3MrKylmb3IoZT10aGlzLl9wYXJ0c1tzXSxhPTAsbD1lLmxlbmd0aCxyPWwtMTtsPmE7cj1hKyspaT1lW2FdLG49ZVtyXSxpLnk+dC55IT1uLnk+dC55JiZ0Lng8KG4ueC1pLngpKih0LnktaS55KS8obi55LWkueSkraS54JiYodT0hdSk7cmV0dXJuIHV9fTp7fSksby5DaXJjbGUuaW5jbHVkZShvLlBhdGguQ0FOVkFTP3tfZHJhd1BhdGg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9wb2ludDt0aGlzLl9jdHguYmVnaW5QYXRoKCksdGhpcy5fY3R4LmFyYyh0LngsdC55LHRoaXMuX3JhZGl1cywwLDIqTWF0aC5QSSwhMSl9LF9jb250YWluc1BvaW50OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3BvaW50LGk9dGhpcy5vcHRpb25zLnN0cm9rZT90aGlzLm9wdGlvbnMud2VpZ2h0LzI6MDtyZXR1cm4gdC5kaXN0YW5jZVRvKGUpPD10aGlzLl9yYWRpdXMraX19Ont9KSxvLkNpcmNsZU1hcmtlci5pbmNsdWRlKG8uUGF0aC5DQU5WQVM/e191cGRhdGVTdHlsZTpmdW5jdGlvbigpe28uUGF0aC5wcm90b3R5cGUuX3VwZGF0ZVN0eWxlLmNhbGwodGhpcyl9fTp7fSksby5HZW9KU09OPW8uRmVhdHVyZUdyb3VwLmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0LGUpe28uc2V0T3B0aW9ucyh0aGlzLGUpLHRoaXMuX2xheWVycz17fSx0JiZ0aGlzLmFkZERhdGEodCl9LGFkZERhdGE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHM9by5VdGlsLmlzQXJyYXkodCk/dDp0LmZlYXR1cmVzO2lmKHMpe2ZvcihlPTAsaT1zLmxlbmd0aDtpPmU7ZSsrKW49c1tlXSwobi5nZW9tZXRyaWVzfHxuLmdlb21ldHJ5fHxuLmZlYXR1cmVzfHxuLmNvb3JkaW5hdGVzKSYmdGhpcy5hZGREYXRhKHNbZV0pO3JldHVybiB0aGlzfXZhciBhPXRoaXMub3B0aW9ucztpZighYS5maWx0ZXJ8fGEuZmlsdGVyKHQpKXt2YXIgcj1vLkdlb0pTT04uZ2VvbWV0cnlUb0xheWVyKHQsYS5wb2ludFRvTGF5ZXIsYS5jb29yZHNUb0xhdExuZyxhKTtyZXR1cm4gci5mZWF0dXJlPW8uR2VvSlNPTi5hc0ZlYXR1cmUodCksci5kZWZhdWx0T3B0aW9ucz1yLm9wdGlvbnMsdGhpcy5yZXNldFN0eWxlKHIpLGEub25FYWNoRmVhdHVyZSYmYS5vbkVhY2hGZWF0dXJlKHQsciksdGhpcy5hZGRMYXllcihyKX19LHJlc2V0U3R5bGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5vcHRpb25zLnN0eWxlO2UmJihvLlV0aWwuZXh0ZW5kKHQub3B0aW9ucyx0LmRlZmF1bHRPcHRpb25zKSx0aGlzLl9zZXRMYXllclN0eWxlKHQsZSkpfSxzZXRTdHlsZTpmdW5jdGlvbih0KXt0aGlzLmVhY2hMYXllcihmdW5jdGlvbihlKXt0aGlzLl9zZXRMYXllclN0eWxlKGUsdCl9LHRoaXMpfSxfc2V0TGF5ZXJTdHlsZTpmdW5jdGlvbih0LGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1lKHQuZmVhdHVyZSkpLHQuc2V0U3R5bGUmJnQuc2V0U3R5bGUoZSl9fSksby5leHRlbmQoby5HZW9KU09OLHtnZW9tZXRyeVRvTGF5ZXI6ZnVuY3Rpb24odCxlLGksbil7dmFyIHMsYSxyLGgsbD0iRmVhdHVyZSI9PT10LnR5cGU/dC5nZW9tZXRyeTp0LHU9bC5jb29yZGluYXRlcyxjPVtdO3N3aXRjaChpPWl8fHRoaXMuY29vcmRzVG9MYXRMbmcsbC50eXBlKXtjYXNlIlBvaW50IjpyZXR1cm4gcz1pKHUpLGU/ZSh0LHMpOm5ldyBvLk1hcmtlcihzKTtjYXNlIk11bHRpUG9pbnQiOmZvcihyPTAsaD11Lmxlbmd0aDtoPnI7cisrKXM9aSh1W3JdKSxjLnB1c2goZT9lKHQscyk6bmV3IG8uTWFya2VyKHMpKTtyZXR1cm4gbmV3IG8uRmVhdHVyZUdyb3VwKGMpO2Nhc2UiTGluZVN0cmluZyI6cmV0dXJuIGE9dGhpcy5jb29yZHNUb0xhdExuZ3ModSwwLGkpLG5ldyBvLlBvbHlsaW5lKGEsbik7Y2FzZSJQb2x5Z29uIjppZigyPT09dS5sZW5ndGgmJiF1WzFdLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgR2VvSlNPTiBvYmplY3QuIik7cmV0dXJuIGE9dGhpcy5jb29yZHNUb0xhdExuZ3ModSwxLGkpLG5ldyBvLlBvbHlnb24oYSxuKTtjYXNlIk11bHRpTGluZVN0cmluZyI6cmV0dXJuIGE9dGhpcy5jb29yZHNUb0xhdExuZ3ModSwxLGkpLG5ldyBvLk11bHRpUG9seWxpbmUoYSxuKTtjYXNlIk11bHRpUG9seWdvbiI6cmV0dXJuIGE9dGhpcy5jb29yZHNUb0xhdExuZ3ModSwyLGkpLG5ldyBvLk11bHRpUG9seWdvbihhLG4pO2Nhc2UiR2VvbWV0cnlDb2xsZWN0aW9uIjpmb3Iocj0wLGg9bC5nZW9tZXRyaWVzLmxlbmd0aDtoPnI7cisrKWMucHVzaCh0aGlzLmdlb21ldHJ5VG9MYXllcih7Z2VvbWV0cnk6bC5nZW9tZXRyaWVzW3JdLHR5cGU6IkZlYXR1cmUiLHByb3BlcnRpZXM6dC5wcm9wZXJ0aWVzfSxlLGksbikpO3JldHVybiBuZXcgby5GZWF0dXJlR3JvdXAoYyk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgR2VvSlNPTiBvYmplY3QuIil9fSxjb29yZHNUb0xhdExuZzpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IG8uTGF0TG5nKHRbMV0sdFswXSx0WzJdKX0sY29vcmRzVG9MYXRMbmdzOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixvLHMsYT1bXTtmb3Iobz0wLHM9dC5sZW5ndGg7cz5vO28rKyluPWU/dGhpcy5jb29yZHNUb0xhdExuZ3ModFtvXSxlLTEsaSk6KGl8fHRoaXMuY29vcmRzVG9MYXRMbmcpKHRbb10pLGEucHVzaChuKTtyZXR1cm4gYX0sbGF0TG5nVG9Db29yZHM6ZnVuY3Rpb24odCl7dmFyIGU9W3QubG5nLHQubGF0XTtyZXR1cm4gdC5hbHQhPT1pJiZlLnB1c2godC5hbHQpLGV9LGxhdExuZ3NUb0Nvb3JkczpmdW5jdGlvbih0KXtmb3IodmFyIGU9W10saT0wLG49dC5sZW5ndGg7bj5pO2krKyllLnB1c2goby5HZW9KU09OLmxhdExuZ1RvQ29vcmRzKHRbaV0pKTtyZXR1cm4gZX0sZ2V0RmVhdHVyZTpmdW5jdGlvbih0LGUpe3JldHVybiB0LmZlYXR1cmU/by5leHRlbmQoe30sdC5mZWF0dXJlLHtnZW9tZXRyeTplfSk6by5HZW9KU09OLmFzRmVhdHVyZShlKX0sYXNGZWF0dXJlOmZ1bmN0aW9uKHQpe3JldHVybiJGZWF0dXJlIj09PXQudHlwZT90Ont0eXBlOiJGZWF0dXJlIixwcm9wZXJ0aWVzOnt9LGdlb21ldHJ5OnR9fX0pO3ZhciBhPXt0b0dlb0pTT046ZnVuY3Rpb24oKXtyZXR1cm4gby5HZW9KU09OLmdldEZlYXR1cmUodGhpcyx7dHlwZToiUG9pbnQiLGNvb3JkaW5hdGVzOm8uR2VvSlNPTi5sYXRMbmdUb0Nvb3Jkcyh0aGlzLmdldExhdExuZygpKX0pfX07by5NYXJrZXIuaW5jbHVkZShhKSxvLkNpcmNsZS5pbmNsdWRlKGEpLG8uQ2lyY2xlTWFya2VyLmluY2x1ZGUoYSksby5Qb2x5bGluZS5pbmNsdWRlKHt0b0dlb0pTT046ZnVuY3Rpb24oKXtyZXR1cm4gby5HZW9KU09OLmdldEZlYXR1cmUodGhpcyx7dHlwZToiTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6by5HZW9KU09OLmxhdExuZ3NUb0Nvb3Jkcyh0aGlzLmdldExhdExuZ3MoKSl9KX19KSxvLlBvbHlnb24uaW5jbHVkZSh7dG9HZW9KU09OOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG49W28uR2VvSlNPTi5sYXRMbmdzVG9Db29yZHModGhpcy5nZXRMYXRMbmdzKCkpXTtpZihuWzBdLnB1c2goblswXVswXSksdGhpcy5faG9sZXMpZm9yKHQ9MCxlPXRoaXMuX2hvbGVzLmxlbmd0aDtlPnQ7dCsrKWk9by5HZW9KU09OLmxhdExuZ3NUb0Nvb3Jkcyh0aGlzLl9ob2xlc1t0XSksaS5wdXNoKGlbMF0pLG4ucHVzaChpKTtyZXR1cm4gby5HZW9KU09OLmdldEZlYXR1cmUodGhpcyx7dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6bn0pfX0pLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5lYWNoTGF5ZXIoZnVuY3Rpb24odCl7ZS5wdXNoKHQudG9HZW9KU09OKCkuZ2VvbWV0cnkuY29vcmRpbmF0ZXMpfSksby5HZW9KU09OLmdldEZlYXR1cmUodGhpcyx7dHlwZTp0LGNvb3JkaW5hdGVzOmV9KX19by5NdWx0aVBvbHlsaW5lLmluY2x1ZGUoe3RvR2VvSlNPTjp0KCJNdWx0aUxpbmVTdHJpbmciKX0pLG8uTXVsdGlQb2x5Z29uLmluY2x1ZGUoe3RvR2VvSlNPTjp0KCJNdWx0aVBvbHlnb24iKX0pLG8uTGF5ZXJHcm91cC5pbmNsdWRlKHt0b0dlb0pTT046ZnVuY3Rpb24oKXt2YXIgZSxpPXRoaXMuZmVhdHVyZSYmdGhpcy5mZWF0dXJlLmdlb21ldHJ5LG49W107aWYoaSYmIk11bHRpUG9pbnQiPT09aS50eXBlKXJldHVybiB0KCJNdWx0aVBvaW50IikuY2FsbCh0aGlzKTt2YXIgcz1pJiYiR2VvbWV0cnlDb2xsZWN0aW9uIj09PWkudHlwZTtyZXR1cm4gdGhpcy5lYWNoTGF5ZXIoZnVuY3Rpb24odCl7dC50b0dlb0pTT04mJihlPXQudG9HZW9KU09OKCksbi5wdXNoKHM/ZS5nZW9tZXRyeTpvLkdlb0pTT04uYXNGZWF0dXJlKGUpKSl9KSxzP28uR2VvSlNPTi5nZXRGZWF0dXJlKHRoaXMse2dlb21ldHJpZXM6bix0eXBlOiJHZW9tZXRyeUNvbGxlY3Rpb24ifSk6e3R5cGU6IkZlYXR1cmVDb2xsZWN0aW9uIixmZWF0dXJlczpufX19KX0oKSxvLmdlb0pzb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IG8uR2VvSlNPTih0LGUpfSxvLkRvbUV2ZW50PXthZGRMaXN0ZW5lcjpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcyxhLHIsaD1vLnN0YW1wKGkpLGw9Il9sZWFmbGV0XyIrZStoO3JldHVybiB0W2xdP3RoaXM6KHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuY2FsbChufHx0LGV8fG8uRG9tRXZlbnQuX2dldEV2ZW50KCkpfSxvLkJyb3dzZXIucG9pbnRlciYmMD09PWUuaW5kZXhPZigidG91Y2giKT90aGlzLmFkZFBvaW50ZXJMaXN0ZW5lcih0LGUscyxoKTooby5Ccm93c2VyLnRvdWNoJiYiZGJsY2xpY2siPT09ZSYmdGhpcy5hZGREb3VibGVUYXBMaXN0ZW5lciYmdGhpcy5hZGREb3VibGVUYXBMaXN0ZW5lcih0LHMsaCksImFkZEV2ZW50TGlzdGVuZXIiaW4gdD8ibW91c2V3aGVlbCI9PT1lPyh0LmFkZEV2ZW50TGlzdGVuZXIoIkRPTU1vdXNlU2Nyb2xsIixzLCExKSx0LmFkZEV2ZW50TGlzdGVuZXIoZSxzLCExKSk6Im1vdXNlZW50ZXIiPT09ZXx8Im1vdXNlbGVhdmUiPT09ZT8oYT1zLHI9Im1vdXNlZW50ZXIiPT09ZT8ibW91c2VvdmVyIjoibW91c2VvdXQiLHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG8uRG9tRXZlbnQuX2NoZWNrTW91c2UodCxlKT9hKGUpOnZvaWQgMH0sdC5hZGRFdmVudExpc3RlbmVyKHIscywhMSkpOiJjbGljayI9PT1lJiZvLkJyb3dzZXIuYW5kcm9pZD8oYT1zLHM9ZnVuY3Rpb24odCl7cmV0dXJuIG8uRG9tRXZlbnQuX2ZpbHRlckNsaWNrKHQsYSl9LHQuYWRkRXZlbnRMaXN0ZW5lcihlLHMsITEpKTp0LmFkZEV2ZW50TGlzdGVuZXIoZSxzLCExKToiYXR0YWNoRXZlbnQiaW4gdCYmdC5hdHRhY2hFdmVudCgib24iK2UscyksdFtsXT1zLHRoaXMpKX0scmVtb3ZlTGlzdGVuZXI6ZnVuY3Rpb24odCxlLGkpe3ZhciBuPW8uc3RhbXAoaSkscz0iX2xlYWZsZXRfIitlK24sYT10W3NdO3JldHVybiBhPyhvLkJyb3dzZXIucG9pbnRlciYmMD09PWUuaW5kZXhPZigidG91Y2giKT90aGlzLnJlbW92ZVBvaW50ZXJMaXN0ZW5lcih0LGUsbik6by5Ccm93c2VyLnRvdWNoJiYiZGJsY2xpY2siPT09ZSYmdGhpcy5yZW1vdmVEb3VibGVUYXBMaXN0ZW5lcj90aGlzLnJlbW92ZURvdWJsZVRhcExpc3RlbmVyKHQsbik6InJlbW92ZUV2ZW50TGlzdGVuZXIiaW4gdD8ibW91c2V3aGVlbCI9PT1lPyh0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTU1vdXNlU2Nyb2xsIixhLCExKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxhLCExKSk6Im1vdXNlZW50ZXIiPT09ZXx8Im1vdXNlbGVhdmUiPT09ZT90LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiPT09ZT8ibW91c2VvdmVyIjoibW91c2VvdXQiLGEsITEpOnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLGEsITEpOiJkZXRhY2hFdmVudCJpbiB0JiZ0LmRldGFjaEV2ZW50KCJvbiIrZSxhKSx0W3NdPW51bGwsdGhpcyk6dGhpc30sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKHQpe3JldHVybiB0LnN0b3BQcm9wYWdhdGlvbj90LnN0b3BQcm9wYWdhdGlvbigpOnQuY2FuY2VsQnViYmxlPSEwLG8uRG9tRXZlbnQuX3NraXBwZWQodCksdGhpc30sZGlzYWJsZVNjcm9sbFByb3BhZ2F0aW9uOmZ1bmN0aW9uKHQpe3ZhciBlPW8uRG9tRXZlbnQuc3RvcFByb3BhZ2F0aW9uO3JldHVybiBvLkRvbUV2ZW50Lm9uKHQsIm1vdXNld2hlZWwiLGUpLm9uKHQsIk1vek1vdXNlUGl4ZWxTY3JvbGwiLGUpfSxkaXNhYmxlQ2xpY2tQcm9wYWdhdGlvbjpmdW5jdGlvbih0KXtmb3IodmFyIGU9by5Eb21FdmVudC5zdG9wUHJvcGFnYXRpb24saT1vLkRyYWdnYWJsZS5TVEFSVC5sZW5ndGgtMTtpPj0wO2ktLSlvLkRvbUV2ZW50Lm9uKHQsby5EcmFnZ2FibGUuU1RBUlRbaV0sZSk7cmV0dXJuIG8uRG9tRXZlbnQub24odCwiY2xpY2siLG8uRG9tRXZlbnQuX2Zha2VTdG9wKS5vbih0LCJkYmxjbGljayIsZSl9LHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKHQpe3JldHVybiB0LnByZXZlbnREZWZhdWx0P3QucHJldmVudERlZmF1bHQoKTp0LnJldHVyblZhbHVlPSExLHRoaXN9LHN0b3A6ZnVuY3Rpb24odCl7cmV0dXJuIG8uRG9tRXZlbnQucHJldmVudERlZmF1bHQodCkuc3RvcFByb3BhZ2F0aW9uKHQpfSxnZXRNb3VzZVBvc2l0aW9uOmZ1bmN0aW9uKHQsZSl7aWYoIWUpcmV0dXJuIG5ldyBvLlBvaW50KHQuY2xpZW50WCx0LmNsaWVudFkpO3ZhciBpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIG5ldyBvLlBvaW50KHQuY2xpZW50WC1pLmxlZnQtZS5jbGllbnRMZWZ0LHQuY2xpZW50WS1pLnRvcC1lLmNsaWVudFRvcCl9LGdldFdoZWVsRGVsdGE6ZnVuY3Rpb24odCl7dmFyIGU9MDtyZXR1cm4gdC53aGVlbERlbHRhJiYoZT10LndoZWVsRGVsdGEvMTIwKSx0LmRldGFpbCYmKGU9LXQuZGV0YWlsLzMpLGV9LF9za2lwRXZlbnRzOnt9LF9mYWtlU3RvcDpmdW5jdGlvbih0KXtvLkRvbUV2ZW50Ll9za2lwRXZlbnRzW3QudHlwZV09ITB9LF9za2lwcGVkOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3NraXBFdmVudHNbdC50eXBlXTtyZXR1cm4gdGhpcy5fc2tpcEV2ZW50c1t0LnR5cGVdPSExLGV9LF9jaGVja01vdXNlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9ZS5yZWxhdGVkVGFyZ2V0O2lmKCFpKXJldHVybiEwO3RyeXtmb3IoO2kmJmkhPT10OylpPWkucGFyZW50Tm9kZX1jYXRjaChuKXtyZXR1cm4hMX1yZXR1cm4gaSE9PXR9LF9nZXRFdmVudDpmdW5jdGlvbigpe3ZhciBlPXQuZXZlbnQ7aWYoIWUpZm9yKHZhciBpPWFyZ3VtZW50cy5jYWxsZWUuY2FsbGVyO2kmJihlPWkuYXJndW1lbnRzWzBdLCFlfHx0LkV2ZW50IT09ZS5jb25zdHJ1Y3Rvcik7KWk9aS5jYWxsZXI7cmV0dXJuIGV9LF9maWx0ZXJDbGljazpmdW5jdGlvbih0LGUpe3ZhciBpPXQudGltZVN0YW1wfHx0Lm9yaWdpbmFsRXZlbnQudGltZVN0YW1wLG49by5Eb21FdmVudC5fbGFzdENsaWNrJiZpLW8uRG9tRXZlbnQuX2xhc3RDbGljaztyZXR1cm4gbiYmbj4xMDAmJjUwMD5ufHx0LnRhcmdldC5fc2ltdWxhdGVkQ2xpY2smJiF0Ll9zaW11bGF0ZWQ/dm9pZCBvLkRvbUV2ZW50LnN0b3AodCk6KG8uRG9tRXZlbnQuX2xhc3RDbGljaz1pLGUodCkpfX0sby5Eb21FdmVudC5vbj1vLkRvbUV2ZW50LmFkZExpc3RlbmVyLG8uRG9tRXZlbnQub2ZmPW8uRG9tRXZlbnQucmVtb3ZlTGlzdGVuZXIsby5EcmFnZ2FibGU9by5DbGFzcy5leHRlbmQoe2luY2x1ZGVzOm8uTWl4aW4uRXZlbnRzLHN0YXRpY3M6e1NUQVJUOm8uQnJvd3Nlci50b3VjaD9bInRvdWNoc3RhcnQiLCJtb3VzZWRvd24iXTpbIm1vdXNlZG93biJdLEVORDp7bW91c2Vkb3duOiJtb3VzZXVwIix0b3VjaHN0YXJ0OiJ0b3VjaGVuZCIscG9pbnRlcmRvd246InRvdWNoZW5kIixNU1BvaW50ZXJEb3duOiJ0b3VjaGVuZCJ9LE1PVkU6e21vdXNlZG93bjoibW91c2Vtb3ZlIix0b3VjaHN0YXJ0OiJ0b3VjaG1vdmUiLHBvaW50ZXJkb3duOiJ0b3VjaG1vdmUiLE1TUG9pbnRlckRvd246InRvdWNobW92ZSJ9fSxpbml0aWFsaXplOmZ1bmN0aW9uKHQsZSl7dGhpcy5fZWxlbWVudD10LHRoaXMuX2RyYWdTdGFydFRhcmdldD1lfHx0fSxlbmFibGU6ZnVuY3Rpb24oKXtpZighdGhpcy5fZW5hYmxlZCl7Zm9yKHZhciB0PW8uRHJhZ2dhYmxlLlNUQVJULmxlbmd0aC0xO3Q+PTA7dC0tKW8uRG9tRXZlbnQub24odGhpcy5fZHJhZ1N0YXJ0VGFyZ2V0LG8uRHJhZ2dhYmxlLlNUQVJUW3RdLHRoaXMuX29uRG93bix0aGlzKTt0aGlzLl9lbmFibGVkPSEwfX0sZGlzYWJsZTpmdW5jdGlvbigpe2lmKHRoaXMuX2VuYWJsZWQpe2Zvcih2YXIgdD1vLkRyYWdnYWJsZS5TVEFSVC5sZW5ndGgtMTt0Pj0wO3QtLSlvLkRvbUV2ZW50Lm9mZih0aGlzLl9kcmFnU3RhcnRUYXJnZXQsby5EcmFnZ2FibGUuU1RBUlRbdF0sdGhpcy5fb25Eb3duLHRoaXMpO3RoaXMuX2VuYWJsZWQ9ITEsdGhpcy5fbW92ZWQ9ITF9fSxfb25Eb3duOmZ1bmN0aW9uKHQpe2lmKHRoaXMuX21vdmVkPSExLCEodC5zaGlmdEtleXx8MSE9PXQud2hpY2gmJjEhPT10LmJ1dHRvbiYmIXQudG91Y2hlc3x8KG8uRG9tRXZlbnQuc3RvcFByb3BhZ2F0aW9uKHQpLG8uRHJhZ2dhYmxlLl9kaXNhYmxlZHx8KG8uRG9tVXRpbC5kaXNhYmxlSW1hZ2VEcmFnKCksby5Eb21VdGlsLmRpc2FibGVUZXh0U2VsZWN0aW9uKCksdGhpcy5fbW92aW5nKSkpKXt2YXIgaT10LnRvdWNoZXM/dC50b3VjaGVzWzBdOnQ7dGhpcy5fc3RhcnRQb2ludD1uZXcgby5Qb2ludChpLmNsaWVudFgsaS5jbGllbnRZKSx0aGlzLl9zdGFydFBvcz10aGlzLl9uZXdQb3M9by5Eb21VdGlsLmdldFBvc2l0aW9uKHRoaXMuX2VsZW1lbnQpLG8uRG9tRXZlbnQub24oZSxvLkRyYWdnYWJsZS5NT1ZFW3QudHlwZV0sdGhpcy5fb25Nb3ZlLHRoaXMpLm9uKGUsby5EcmFnZ2FibGUuRU5EW3QudHlwZV0sdGhpcy5fb25VcCx0aGlzKX19LF9vbk1vdmU6ZnVuY3Rpb24odCl7aWYodC50b3VjaGVzJiZ0LnRvdWNoZXMubGVuZ3RoPjEpcmV0dXJuIHZvaWQodGhpcy5fbW92ZWQ9ITApO3ZhciBpPXQudG91Y2hlcyYmMT09PXQudG91Y2hlcy5sZW5ndGg/dC50b3VjaGVzWzBdOnQsbj1uZXcgby5Qb2ludChpLmNsaWVudFgsaS5jbGllbnRZKSxzPW4uc3VidHJhY3QodGhpcy5fc3RhcnRQb2ludCk7KHMueHx8cy55KSYmKG8uQnJvd3Nlci50b3VjaCYmTWF0aC5hYnMocy54KStNYXRoLmFicyhzLnkpPDN8fChvLkRvbUV2ZW50LnByZXZlbnREZWZhdWx0KHQpLHRoaXMuX21vdmVkfHwodGhpcy5maXJlKCJkcmFnc3RhcnQiKSx0aGlzLl9tb3ZlZD0hMCx0aGlzLl9zdGFydFBvcz1vLkRvbVV0aWwuZ2V0UG9zaXRpb24odGhpcy5fZWxlbWVudCkuc3VidHJhY3Qocyksby5Eb21VdGlsLmFkZENsYXNzKGUuYm9keSwibGVhZmxldC1kcmFnZ2luZyIpLHRoaXMuX2xhc3RUYXJnZXQ9dC50YXJnZXR8fHQuc3JjRWxlbWVudCxvLkRvbVV0aWwuYWRkQ2xhc3ModGhpcy5fbGFzdFRhcmdldCwibGVhZmxldC1kcmFnLXRhcmdldCIpKSx0aGlzLl9uZXdQb3M9dGhpcy5fc3RhcnRQb3MuYWRkKHMpLHRoaXMuX21vdmluZz0hMCxvLlV0aWwuY2FuY2VsQW5pbUZyYW1lKHRoaXMuX2FuaW1SZXF1ZXN0KSx0aGlzLl9hbmltUmVxdWVzdD1vLlV0aWwucmVxdWVzdEFuaW1GcmFtZSh0aGlzLl91cGRhdGVQb3NpdGlvbix0aGlzLCEwLHRoaXMuX2RyYWdTdGFydFRhcmdldCkpKX0sX3VwZGF0ZVBvc2l0aW9uOmZ1bmN0aW9uKCl7dGhpcy5maXJlKCJwcmVkcmFnIiksby5Eb21VdGlsLnNldFBvc2l0aW9uKHRoaXMuX2VsZW1lbnQsdGhpcy5fbmV3UG9zKSx0aGlzLmZpcmUoImRyYWciKX0sX29uVXA6ZnVuY3Rpb24oKXtvLkRvbVV0aWwucmVtb3ZlQ2xhc3MoZS5ib2R5LCJsZWFmbGV0LWRyYWdnaW5nIiksdGhpcy5fbGFzdFRhcmdldCYmKG8uRG9tVXRpbC5yZW1vdmVDbGFzcyh0aGlzLl9sYXN0VGFyZ2V0LCJsZWFmbGV0LWRyYWctdGFyZ2V0IiksdGhpcy5fbGFzdFRhcmdldD1udWxsKTtmb3IodmFyIHQgaW4gby5EcmFnZ2FibGUuTU9WRSlvLkRvbUV2ZW50Lm9mZihlLG8uRHJhZ2dhYmxlLk1PVkVbdF0sdGhpcy5fb25Nb3ZlKS5vZmYoZSxvLkRyYWdnYWJsZS5FTkRbdF0sdGhpcy5fb25VcCk7by5Eb21VdGlsLmVuYWJsZUltYWdlRHJhZygpLG8uRG9tVXRpbC5lbmFibGVUZXh0U2VsZWN0aW9uKCksdGhpcy5fbW92ZWQmJnRoaXMuX21vdmluZyYmKG8uVXRpbC5jYW5jZWxBbmltRnJhbWUodGhpcy5fYW5pbVJlcXVlc3QpLHRoaXMuZmlyZSgiZHJhZ2VuZCIse2Rpc3RhbmNlOnRoaXMuX25ld1Bvcy5kaXN0YW5jZVRvKHRoaXMuX3N0YXJ0UG9zKX0pKSx0aGlzLl9tb3Zpbmc9ITF9fSksby5IYW5kbGVyPW8uQ2xhc3MuZXh0ZW5kKHtpbml0aWFsaXplOmZ1bmN0aW9uKHQpe3RoaXMuX21hcD10fSxlbmFibGU6ZnVuY3Rpb24oKXt0aGlzLl9lbmFibGVkfHwodGhpcy5fZW5hYmxlZD0hMCx0aGlzLmFkZEhvb2tzKCkpfSxkaXNhYmxlOmZ1bmN0aW9uKCl7dGhpcy5fZW5hYmxlZCYmKHRoaXMuX2VuYWJsZWQ9ITEsdGhpcy5yZW1vdmVIb29rcygpKX0sZW5hYmxlZDpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5fZW5hYmxlZH19KSxvLk1hcC5tZXJnZU9wdGlvbnMoe2RyYWdnaW5nOiEwLGluZXJ0aWE6IW8uQnJvd3Nlci5hbmRyb2lkMjMsaW5lcnRpYURlY2VsZXJhdGlvbjozNDAwLGluZXJ0aWFNYXhTcGVlZDoxLzAsaW5lcnRpYVRocmVzaG9sZDpvLkJyb3dzZXIudG91Y2g/MzI6MTgsZWFzZUxpbmVhcml0eTouMjUsd29ybGRDb3B5SnVtcDohMX0pLG8uTWFwLkRyYWc9by5IYW5kbGVyLmV4dGVuZCh7YWRkSG9va3M6ZnVuY3Rpb24oKXtpZighdGhpcy5fZHJhZ2dhYmxlKXt2YXIgdD10aGlzLl9tYXA7dGhpcy5fZHJhZ2dhYmxlPW5ldyBvLkRyYWdnYWJsZSh0Ll9tYXBQYW5lLHQuX2NvbnRhaW5lciksdGhpcy5fZHJhZ2dhYmxlLm9uKHtkcmFnc3RhcnQ6dGhpcy5fb25EcmFnU3RhcnQsZHJhZzp0aGlzLl9vbkRyYWcsZHJhZ2VuZDp0aGlzLl9vbkRyYWdFbmR9LHRoaXMpLHQub3B0aW9ucy53b3JsZENvcHlKdW1wJiYodGhpcy5fZHJhZ2dhYmxlLm9uKCJwcmVkcmFnIix0aGlzLl9vblByZURyYWcsdGhpcyksdC5vbigidmlld3Jlc2V0Iix0aGlzLl9vblZpZXdSZXNldCx0aGlzKSx0LndoZW5SZWFkeSh0aGlzLl9vblZpZXdSZXNldCx0aGlzKSl9dGhpcy5fZHJhZ2dhYmxlLmVuYWJsZSgpfSxyZW1vdmVIb29rczpmdW5jdGlvbigpe3RoaXMuX2RyYWdnYWJsZS5kaXNhYmxlKCl9LG1vdmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RyYWdnYWJsZSYmdGhpcy5fZHJhZ2dhYmxlLl9tb3ZlZH0sX29uRHJhZ1N0YXJ0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbWFwO3QuX3BhbkFuaW0mJnQuX3BhbkFuaW0uc3RvcCgpLHQuZmlyZSgibW92ZXN0YXJ0IikuZmlyZSgiZHJhZ3N0YXJ0IiksdC5vcHRpb25zLmluZXJ0aWEmJih0aGlzLl9wb3NpdGlvbnM9W10sdGhpcy5fdGltZXM9W10pfSxfb25EcmFnOmZ1bmN0aW9uKCl7aWYodGhpcy5fbWFwLm9wdGlvbnMuaW5lcnRpYSl7dmFyIHQ9dGhpcy5fbGFzdFRpbWU9K25ldyBEYXRlLGU9dGhpcy5fbGFzdFBvcz10aGlzLl9kcmFnZ2FibGUuX25ld1Bvczt0aGlzLl9wb3NpdGlvbnMucHVzaChlKSx0aGlzLl90aW1lcy5wdXNoKHQpLHQtdGhpcy5fdGltZXNbMF0+MjAwJiYodGhpcy5fcG9zaXRpb25zLnNoaWZ0KCksdGhpcy5fdGltZXMuc2hpZnQoKSl9dGhpcy5fbWFwLmZpcmUoIm1vdmUiKS5maXJlKCJkcmFnIil9LF9vblZpZXdSZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX21hcC5nZXRTaXplKCkuX2RpdmlkZUJ5KDIpLGU9dGhpcy5fbWFwLmxhdExuZ1RvTGF5ZXJQb2ludChbMCwwXSk7dGhpcy5faW5pdGlhbFdvcmxkT2Zmc2V0PWUuc3VidHJhY3QodCkueCx0aGlzLl93b3JsZFdpZHRoPXRoaXMuX21hcC5wcm9qZWN0KFswLDE4MF0pLnh9LF9vblByZURyYWc6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl93b3JsZFdpZHRoLGU9TWF0aC5yb3VuZCh0LzIpLGk9dGhpcy5faW5pdGlhbFdvcmxkT2Zmc2V0LG49dGhpcy5fZHJhZ2dhYmxlLl9uZXdQb3MueCxvPShuLWUraSkldCtlLWkscz0obitlK2kpJXQtZS1pLGE9TWF0aC5hYnMobytpKTxNYXRoLmFicyhzK2kpP286czt0aGlzLl9kcmFnZ2FibGUuX25ld1Bvcy54PWF9LF9vbkRyYWdFbmQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbWFwLGk9ZS5vcHRpb25zLG49K25ldyBEYXRlLXRoaXMuX2xhc3RUaW1lLHM9IWkuaW5lcnRpYXx8bj5pLmluZXJ0aWFUaHJlc2hvbGR8fCF0aGlzLl9wb3NpdGlvbnNbMF07aWYoZS5maXJlKCJkcmFnZW5kIix0KSxzKWUuZmlyZSgibW92ZWVuZCIpO2Vsc2V7dmFyIGE9dGhpcy5fbGFzdFBvcy5zdWJ0cmFjdCh0aGlzLl9wb3NpdGlvbnNbMF0pLHI9KHRoaXMuX2xhc3RUaW1lK24tdGhpcy5fdGltZXNbMF0pLzFlMyxoPWkuZWFzZUxpbmVhcml0eSxsPWEubXVsdGlwbHlCeShoL3IpLHU9bC5kaXN0YW5jZVRvKFswLDBdKSxjPU1hdGgubWluKGkuaW5lcnRpYU1heFNwZWVkLHUpLGQ9bC5tdWx0aXBseUJ5KGMvdSkscD1jLyhpLmluZXJ0aWFEZWNlbGVyYXRpb24qaCksXz1kLm11bHRpcGx5QnkoLXAvMikucm91bmQoKTtfLngmJl8ueT8oXz1lLl9saW1pdE9mZnNldChfLGUub3B0aW9ucy5tYXhCb3VuZHMpLG8uVXRpbC5yZXF1ZXN0QW5pbUZyYW1lKGZ1bmN0aW9uKCl7ZS5wYW5CeShfLHtkdXJhdGlvbjpwLGVhc2VMaW5lYXJpdHk6aCxub01vdmVTdGFydDohMH0pfSkpOmUuZmlyZSgibW92ZWVuZCIpfX19KSxvLk1hcC5hZGRJbml0SG9vaygiYWRkSGFuZGxlciIsImRyYWdnaW5nIixvLk1hcC5EcmFnKSxvLk1hcC5tZXJnZU9wdGlvbnMoe2RvdWJsZUNsaWNrWm9vbTohMH0pLG8uTWFwLkRvdWJsZUNsaWNrWm9vbT1vLkhhbmRsZXIuZXh0ZW5kKHthZGRIb29rczpmdW5jdGlvbigpe3RoaXMuX21hcC5vbigiZGJsY2xpY2siLHRoaXMuX29uRG91YmxlQ2xpY2ssdGhpcyl9LHJlbW92ZUhvb2tzOmZ1bmN0aW9uKCl7dGhpcy5fbWFwLm9mZigiZGJsY2xpY2siLHRoaXMuX29uRG91YmxlQ2xpY2ssdGhpcyl9LF9vbkRvdWJsZUNsaWNrOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX21hcCxpPWUuZ2V0Wm9vbSgpKyh0Lm9yaWdpbmFsRXZlbnQuc2hpZnRLZXk/LTE6MSk7ImNlbnRlciI9PT1lLm9wdGlvbnMuZG91YmxlQ2xpY2tab29tP2Uuc2V0Wm9vbShpKTplLnNldFpvb21Bcm91bmQodC5jb250YWluZXJQb2ludCxpKX19KSxvLk1hcC5hZGRJbml0SG9vaygiYWRkSGFuZGxlciIsImRvdWJsZUNsaWNrWm9vbSIsby5NYXAuRG91YmxlQ2xpY2tab29tKSxvLk1hcC5tZXJnZU9wdGlvbnMoe3Njcm9sbFdoZWVsWm9vbTohMH0pLG8uTWFwLlNjcm9sbFdoZWVsWm9vbT1vLkhhbmRsZXIuZXh0ZW5kKHthZGRIb29rczpmdW5jdGlvbigpe28uRG9tRXZlbnQub24odGhpcy5fbWFwLl9jb250YWluZXIsIm1vdXNld2hlZWwiLHRoaXMuX29uV2hlZWxTY3JvbGwsdGhpcyksby5Eb21FdmVudC5vbih0aGlzLl9tYXAuX2NvbnRhaW5lciwiTW96TW91c2VQaXhlbFNjcm9sbCIsby5Eb21FdmVudC5wcmV2ZW50RGVmYXVsdCksdGhpcy5fZGVsdGE9MH0scmVtb3ZlSG9va3M6ZnVuY3Rpb24oKXtvLkRvbUV2ZW50Lm9mZih0aGlzLl9tYXAuX2NvbnRhaW5lciwibW91c2V3aGVlbCIsdGhpcy5fb25XaGVlbFNjcm9sbCksby5Eb21FdmVudC5vZmYodGhpcy5fbWFwLl9jb250YWluZXIsIk1vek1vdXNlUGl4ZWxTY3JvbGwiLG8uRG9tRXZlbnQucHJldmVudERlZmF1bHQpfSxfb25XaGVlbFNjcm9sbDpmdW5jdGlvbih0KXt2YXIgZT1vLkRvbUV2ZW50LmdldFdoZWVsRGVsdGEodCk7dGhpcy5fZGVsdGErPWUsdGhpcy5fbGFzdE1vdXNlUG9zPXRoaXMuX21hcC5tb3VzZUV2ZW50VG9Db250YWluZXJQb2ludCh0KSx0aGlzLl9zdGFydFRpbWV8fCh0aGlzLl9zdGFydFRpbWU9K25ldyBEYXRlKTt2YXIgaT1NYXRoLm1heCg0MC0oK25ldyBEYXRlLXRoaXMuX3N0YXJ0VGltZSksMCk7Y2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKSx0aGlzLl90aW1lcj1zZXRUaW1lb3V0KG8uYmluZCh0aGlzLl9wZXJmb3JtWm9vbSx0aGlzKSxpKSxvLkRvbUV2ZW50LnByZXZlbnREZWZhdWx0KHQpLG8uRG9tRXZlbnQuc3RvcFByb3BhZ2F0aW9uKHQpfSxfcGVyZm9ybVpvb206ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9tYXAsZT10aGlzLl9kZWx0YSxpPXQuZ2V0Wm9vbSgpO2U9ZT4wP01hdGguY2VpbChlKTpNYXRoLmZsb29yKGUpLGU9TWF0aC5tYXgoTWF0aC5taW4oZSw0KSwtNCksZT10Ll9saW1pdFpvb20oaStlKS1pLHRoaXMuX2RlbHRhPTAsdGhpcy5fc3RhcnRUaW1lPW51bGwsZSYmKCJjZW50ZXIiPT09dC5vcHRpb25zLnNjcm9sbFdoZWVsWm9vbT90LnNldFpvb20oaStlKTp0LnNldFpvb21Bcm91bmQodGhpcy5fbGFzdE1vdXNlUG9zLGkrZSkpfX0pLG8uTWFwLmFkZEluaXRIb29rKCJhZGRIYW5kbGVyIiwic2Nyb2xsV2hlZWxab29tIixvLk1hcC5TY3JvbGxXaGVlbFpvb20pLG8uZXh0ZW5kKG8uRG9tRXZlbnQse190b3VjaHN0YXJ0Om8uQnJvd3Nlci5tc1BvaW50ZXI/Ik1TUG9pbnRlckRvd24iOm8uQnJvd3Nlci5wb2ludGVyPyJwb2ludGVyZG93biI6InRvdWNoc3RhcnQiLF90b3VjaGVuZDpvLkJyb3dzZXIubXNQb2ludGVyPyJNU1BvaW50ZXJVcCI6by5Ccm93c2VyLnBvaW50ZXI/InBvaW50ZXJ1cCI6InRvdWNoZW5kIixhZGREb3VibGVUYXBMaXN0ZW5lcjpmdW5jdGlvbih0LGksbil7ZnVuY3Rpb24gcyh0KXt2YXIgZTtpZihvLkJyb3dzZXIucG9pbnRlcj8oXy5wdXNoKHQucG9pbnRlcklkKSxlPV8ubGVuZ3RoKTplPXQudG91Y2hlcy5sZW5ndGgsIShlPjEpKXt2YXIgaT1EYXRlLm5vdygpLG49aS0ocnx8aSk7aD10LnRvdWNoZXM/dC50b3VjaGVzWzBdOnQsbD1uPjAmJnU+PW4scj1pfX1mdW5jdGlvbiBhKHQpe2lmKG8uQnJvd3Nlci5wb2ludGVyKXt2YXIgZT1fLmluZGV4T2YodC5wb2ludGVySWQpO2lmKC0xPT09ZSlyZXR1cm47Xy5zcGxpY2UoZSwxKX1pZihsKXtpZihvLkJyb3dzZXIucG9pbnRlcil7dmFyIG4scz17fTtmb3IodmFyIGEgaW4gaCluPWhbYV0sc1thXT0iZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmJpbmQoaCk6bjtoPXN9aC50eXBlPSJkYmxjbGljayIsaShoKSxyPW51bGx9fXZhciByLGgsbD0hMSx1PTI1MCxjPSJfbGVhZmxldF8iLGQ9dGhpcy5fdG91Y2hzdGFydCxwPXRoaXMuX3RvdWNoZW5kLF89W107dFtjK2Qrbl09cyx0W2MrcCtuXT1hO3ZhciBtPW8uQnJvd3Nlci5wb2ludGVyP2UuZG9jdW1lbnRFbGVtZW50OnQ7cmV0dXJuIHQuYWRkRXZlbnRMaXN0ZW5lcihkLHMsITEpLG0uYWRkRXZlbnRMaXN0ZW5lcihwLGEsITEpLG8uQnJvd3Nlci5wb2ludGVyJiZtLmFkZEV2ZW50TGlzdGVuZXIoby5Eb21FdmVudC5QT0lOVEVSX0NBTkNFTCxhLCExKSx0aGlzfSxyZW1vdmVEb3VibGVUYXBMaXN0ZW5lcjpmdW5jdGlvbih0LGkpe3ZhciBuPSJfbGVhZmxldF8iO3JldHVybiB0LnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5fdG91Y2hzdGFydCx0W24rdGhpcy5fdG91Y2hzdGFydCtpXSwhMSksKG8uQnJvd3Nlci5wb2ludGVyP2UuZG9jdW1lbnRFbGVtZW50OnQpLnJlbW92ZUV2ZW50TGlzdGVuZXIodGhpcy5fdG91Y2hlbmQsdFtuK3RoaXMuX3RvdWNoZW5kK2ldLCExKSxvLkJyb3dzZXIucG9pbnRlciYmZS5kb2N1bWVudEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihvLkRvbUV2ZW50LlBPSU5URVJfQ0FOQ0VMLHRbbit0aGlzLl90b3VjaGVuZCtpXSwhMSksdGhpc319KSxvLmV4dGVuZChvLkRvbUV2ZW50LHtQT0lOVEVSX0RPV046by5Ccm93c2VyLm1zUG9pbnRlcj8iTVNQb2ludGVyRG93biI6InBvaW50ZXJkb3duIixQT0lOVEVSX01PVkU6by5Ccm93c2VyLm1zUG9pbnRlcj8iTVNQb2ludGVyTW92ZSI6InBvaW50ZXJtb3ZlIixQT0lOVEVSX1VQOm8uQnJvd3Nlci5tc1BvaW50ZXI/Ik1TUG9pbnRlclVwIjoicG9pbnRlcnVwIixQT0lOVEVSX0NBTkNFTDpvLkJyb3dzZXIubXNQb2ludGVyPyJNU1BvaW50ZXJDYW5jZWwiOiJwb2ludGVyY2FuY2VsIixfcG9pbnRlcnM6W10sX3BvaW50ZXJEb2N1bWVudExpc3RlbmVyOiExLGFkZFBvaW50ZXJMaXN0ZW5lcjpmdW5jdGlvbih0LGUsaSxuKXtzd2l0Y2goZSl7Y2FzZSJ0b3VjaHN0YXJ0IjpyZXR1cm4gdGhpcy5hZGRQb2ludGVyTGlzdGVuZXJTdGFydCh0LGUsaSxuKTtjYXNlInRvdWNoZW5kIjpyZXR1cm4gdGhpcy5hZGRQb2ludGVyTGlzdGVuZXJFbmQodCxlLGksbik7Y2FzZSJ0b3VjaG1vdmUiOnJldHVybiB0aGlzLmFkZFBvaW50ZXJMaXN0ZW5lck1vdmUodCxlLGksbik7ZGVmYXVsdDp0aHJvdyJVbmtub3duIHRvdWNoIGV2ZW50IHR5cGUifX0sYWRkUG9pbnRlckxpc3RlbmVyU3RhcnQ6ZnVuY3Rpb24odCxpLG4scyl7dmFyIGE9Il9sZWFmbGV0XyIscj10aGlzLl9wb2ludGVycyxoPWZ1bmN0aW9uKHQpe28uRG9tRXZlbnQucHJldmVudERlZmF1bHQodCk7Zm9yKHZhciBlPSExLGk9MDtpPHIubGVuZ3RoO2krKylpZihyW2ldLnBvaW50ZXJJZD09PXQucG9pbnRlcklkKXtlPSEwOwpicmVha31lfHxyLnB1c2godCksdC50b3VjaGVzPXIuc2xpY2UoKSx0LmNoYW5nZWRUb3VjaGVzPVt0XSxuKHQpfTtpZih0W2ErInRvdWNoc3RhcnQiK3NdPWgsdC5hZGRFdmVudExpc3RlbmVyKHRoaXMuUE9JTlRFUl9ET1dOLGgsITEpLCF0aGlzLl9wb2ludGVyRG9jdW1lbnRMaXN0ZW5lcil7dmFyIGw9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTxyLmxlbmd0aDtlKyspaWYocltlXS5wb2ludGVySWQ9PT10LnBvaW50ZXJJZCl7ci5zcGxpY2UoZSwxKTticmVha319O2UuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5QT0lOVEVSX1VQLGwsITEpLGUuZG9jdW1lbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5QT0lOVEVSX0NBTkNFTCxsLCExKSx0aGlzLl9wb2ludGVyRG9jdW1lbnRMaXN0ZW5lcj0hMH1yZXR1cm4gdGhpc30sYWRkUG9pbnRlckxpc3RlbmVyTW92ZTpmdW5jdGlvbih0LGUsaSxuKXtmdW5jdGlvbiBvKHQpe2lmKHQucG9pbnRlclR5cGUhPT10Lk1TUE9JTlRFUl9UWVBFX01PVVNFJiYibW91c2UiIT09dC5wb2ludGVyVHlwZXx8MCE9PXQuYnV0dG9ucyl7Zm9yKHZhciBlPTA7ZTxhLmxlbmd0aDtlKyspaWYoYVtlXS5wb2ludGVySWQ9PT10LnBvaW50ZXJJZCl7YVtlXT10O2JyZWFrfXQudG91Y2hlcz1hLnNsaWNlKCksdC5jaGFuZ2VkVG91Y2hlcz1bdF0saSh0KX19dmFyIHM9Il9sZWFmbGV0XyIsYT10aGlzLl9wb2ludGVycztyZXR1cm4gdFtzKyJ0b3VjaG1vdmUiK25dPW8sdC5hZGRFdmVudExpc3RlbmVyKHRoaXMuUE9JTlRFUl9NT1ZFLG8sITEpLHRoaXN9LGFkZFBvaW50ZXJMaXN0ZW5lckVuZDpmdW5jdGlvbih0LGUsaSxuKXt2YXIgbz0iX2xlYWZsZXRfIixzPXRoaXMuX3BvaW50ZXJzLGE9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTxzLmxlbmd0aDtlKyspaWYoc1tlXS5wb2ludGVySWQ9PT10LnBvaW50ZXJJZCl7cy5zcGxpY2UoZSwxKTticmVha310LnRvdWNoZXM9cy5zbGljZSgpLHQuY2hhbmdlZFRvdWNoZXM9W3RdLGkodCl9O3JldHVybiB0W28rInRvdWNoZW5kIituXT1hLHQuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLlBPSU5URVJfVVAsYSwhMSksdC5hZGRFdmVudExpc3RlbmVyKHRoaXMuUE9JTlRFUl9DQU5DRUwsYSwhMSksdGhpc30scmVtb3ZlUG9pbnRlckxpc3RlbmVyOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbj0iX2xlYWZsZXRfIixvPXRbbitlK2ldO3N3aXRjaChlKXtjYXNlInRvdWNoc3RhcnQiOnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLlBPSU5URVJfRE9XTixvLCExKTticmVhaztjYXNlInRvdWNobW92ZSI6dC5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMuUE9JTlRFUl9NT1ZFLG8sITEpO2JyZWFrO2Nhc2UidG91Y2hlbmQiOnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLlBPSU5URVJfVVAsbywhMSksdC5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMuUE9JTlRFUl9DQU5DRUwsbywhMSl9cmV0dXJuIHRoaXN9fSksby5NYXAubWVyZ2VPcHRpb25zKHt0b3VjaFpvb206by5Ccm93c2VyLnRvdWNoJiYhby5Ccm93c2VyLmFuZHJvaWQyMyxib3VuY2VBdFpvb21MaW1pdHM6ITB9KSxvLk1hcC5Ub3VjaFpvb209by5IYW5kbGVyLmV4dGVuZCh7YWRkSG9va3M6ZnVuY3Rpb24oKXtvLkRvbUV2ZW50Lm9uKHRoaXMuX21hcC5fY29udGFpbmVyLCJ0b3VjaHN0YXJ0Iix0aGlzLl9vblRvdWNoU3RhcnQsdGhpcyl9LHJlbW92ZUhvb2tzOmZ1bmN0aW9uKCl7by5Eb21FdmVudC5vZmYodGhpcy5fbWFwLl9jb250YWluZXIsInRvdWNoc3RhcnQiLHRoaXMuX29uVG91Y2hTdGFydCx0aGlzKX0sX29uVG91Y2hTdGFydDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLl9tYXA7aWYodC50b3VjaGVzJiYyPT09dC50b3VjaGVzLmxlbmd0aCYmIWkuX2FuaW1hdGluZ1pvb20mJiF0aGlzLl96b29taW5nKXt2YXIgbj1pLm1vdXNlRXZlbnRUb0xheWVyUG9pbnQodC50b3VjaGVzWzBdKSxzPWkubW91c2VFdmVudFRvTGF5ZXJQb2ludCh0LnRvdWNoZXNbMV0pLGE9aS5fZ2V0Q2VudGVyTGF5ZXJQb2ludCgpO3RoaXMuX3N0YXJ0Q2VudGVyPW4uYWRkKHMpLl9kaXZpZGVCeSgyKSx0aGlzLl9zdGFydERpc3Q9bi5kaXN0YW5jZVRvKHMpLHRoaXMuX21vdmVkPSExLHRoaXMuX3pvb21pbmc9ITAsdGhpcy5fY2VudGVyT2Zmc2V0PWEuc3VidHJhY3QodGhpcy5fc3RhcnRDZW50ZXIpLGkuX3BhbkFuaW0mJmkuX3BhbkFuaW0uc3RvcCgpLG8uRG9tRXZlbnQub24oZSwidG91Y2htb3ZlIix0aGlzLl9vblRvdWNoTW92ZSx0aGlzKS5vbihlLCJ0b3VjaGVuZCIsdGhpcy5fb25Ub3VjaEVuZCx0aGlzKSxvLkRvbUV2ZW50LnByZXZlbnREZWZhdWx0KHQpfX0sX29uVG91Y2hNb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX21hcDtpZih0LnRvdWNoZXMmJjI9PT10LnRvdWNoZXMubGVuZ3RoJiZ0aGlzLl96b29taW5nKXt2YXIgaT1lLm1vdXNlRXZlbnRUb0xheWVyUG9pbnQodC50b3VjaGVzWzBdKSxuPWUubW91c2VFdmVudFRvTGF5ZXJQb2ludCh0LnRvdWNoZXNbMV0pO3RoaXMuX3NjYWxlPWkuZGlzdGFuY2VUbyhuKS90aGlzLl9zdGFydERpc3QsdGhpcy5fZGVsdGE9aS5fYWRkKG4pLl9kaXZpZGVCeSgyKS5fc3VidHJhY3QodGhpcy5fc3RhcnRDZW50ZXIpLDEhPT10aGlzLl9zY2FsZSYmKGUub3B0aW9ucy5ib3VuY2VBdFpvb21MaW1pdHN8fCEoZS5nZXRab29tKCk9PT1lLmdldE1pblpvb20oKSYmdGhpcy5fc2NhbGU8MXx8ZS5nZXRab29tKCk9PT1lLmdldE1heFpvb20oKSYmdGhpcy5fc2NhbGU+MSkpJiYodGhpcy5fbW92ZWR8fChvLkRvbVV0aWwuYWRkQ2xhc3MoZS5fbWFwUGFuZSwibGVhZmxldC10b3VjaGluZyIpLGUuZmlyZSgibW92ZXN0YXJ0IikuZmlyZSgiem9vbXN0YXJ0IiksdGhpcy5fbW92ZWQ9ITApLG8uVXRpbC5jYW5jZWxBbmltRnJhbWUodGhpcy5fYW5pbVJlcXVlc3QpLHRoaXMuX2FuaW1SZXF1ZXN0PW8uVXRpbC5yZXF1ZXN0QW5pbUZyYW1lKHRoaXMuX3VwZGF0ZU9uTW92ZSx0aGlzLCEwLHRoaXMuX21hcC5fY29udGFpbmVyKSxvLkRvbUV2ZW50LnByZXZlbnREZWZhdWx0KHQpKX19LF91cGRhdGVPbk1vdmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9tYXAsZT10aGlzLl9nZXRTY2FsZU9yaWdpbigpLGk9dC5sYXllclBvaW50VG9MYXRMbmcoZSksbj10LmdldFNjYWxlWm9vbSh0aGlzLl9zY2FsZSk7dC5fYW5pbWF0ZVpvb20oaSxuLHRoaXMuX3N0YXJ0Q2VudGVyLHRoaXMuX3NjYWxlLHRoaXMuX2RlbHRhLCExLCEwKX0sX29uVG91Y2hFbmQ6ZnVuY3Rpb24oKXtpZighdGhpcy5fbW92ZWR8fCF0aGlzLl96b29taW5nKXJldHVybiB2b2lkKHRoaXMuX3pvb21pbmc9ITEpO3ZhciB0PXRoaXMuX21hcDt0aGlzLl96b29taW5nPSExLG8uRG9tVXRpbC5yZW1vdmVDbGFzcyh0Ll9tYXBQYW5lLCJsZWFmbGV0LXRvdWNoaW5nIiksby5VdGlsLmNhbmNlbEFuaW1GcmFtZSh0aGlzLl9hbmltUmVxdWVzdCksby5Eb21FdmVudC5vZmYoZSwidG91Y2htb3ZlIix0aGlzLl9vblRvdWNoTW92ZSkub2ZmKGUsInRvdWNoZW5kIix0aGlzLl9vblRvdWNoRW5kKTt2YXIgaT10aGlzLl9nZXRTY2FsZU9yaWdpbigpLG49dC5sYXllclBvaW50VG9MYXRMbmcoaSkscz10LmdldFpvb20oKSxhPXQuZ2V0U2NhbGVab29tKHRoaXMuX3NjYWxlKS1zLHI9YT4wP01hdGguY2VpbChhKTpNYXRoLmZsb29yKGEpLGg9dC5fbGltaXRab29tKHMrciksbD10LmdldFpvb21TY2FsZShoKS90aGlzLl9zY2FsZTt0Ll9hbmltYXRlWm9vbShuLGgsaSxsKX0sX2dldFNjYWxlT3JpZ2luOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fY2VudGVyT2Zmc2V0LnN1YnRyYWN0KHRoaXMuX2RlbHRhKS5kaXZpZGVCeSh0aGlzLl9zY2FsZSk7cmV0dXJuIHRoaXMuX3N0YXJ0Q2VudGVyLmFkZCh0KX19KSxvLk1hcC5hZGRJbml0SG9vaygiYWRkSGFuZGxlciIsInRvdWNoWm9vbSIsby5NYXAuVG91Y2hab29tKSxvLk1hcC5tZXJnZU9wdGlvbnMoe3RhcDohMCx0YXBUb2xlcmFuY2U6MTV9KSxvLk1hcC5UYXA9by5IYW5kbGVyLmV4dGVuZCh7YWRkSG9va3M6ZnVuY3Rpb24oKXtvLkRvbUV2ZW50Lm9uKHRoaXMuX21hcC5fY29udGFpbmVyLCJ0b3VjaHN0YXJ0Iix0aGlzLl9vbkRvd24sdGhpcyl9LHJlbW92ZUhvb2tzOmZ1bmN0aW9uKCl7by5Eb21FdmVudC5vZmYodGhpcy5fbWFwLl9jb250YWluZXIsInRvdWNoc3RhcnQiLHRoaXMuX29uRG93bix0aGlzKX0sX29uRG93bjpmdW5jdGlvbih0KXtpZih0LnRvdWNoZXMpe2lmKG8uRG9tRXZlbnQucHJldmVudERlZmF1bHQodCksdGhpcy5fZmlyZUNsaWNrPSEwLHQudG91Y2hlcy5sZW5ndGg+MSlyZXR1cm4gdGhpcy5fZmlyZUNsaWNrPSExLHZvaWQgY2xlYXJUaW1lb3V0KHRoaXMuX2hvbGRUaW1lb3V0KTt2YXIgaT10LnRvdWNoZXNbMF0sbj1pLnRhcmdldDt0aGlzLl9zdGFydFBvcz10aGlzLl9uZXdQb3M9bmV3IG8uUG9pbnQoaS5jbGllbnRYLGkuY2xpZW50WSksbi50YWdOYW1lJiYiYSI9PT1uLnRhZ05hbWUudG9Mb3dlckNhc2UoKSYmby5Eb21VdGlsLmFkZENsYXNzKG4sImxlYWZsZXQtYWN0aXZlIiksdGhpcy5faG9sZFRpbWVvdXQ9c2V0VGltZW91dChvLmJpbmQoZnVuY3Rpb24oKXt0aGlzLl9pc1RhcFZhbGlkKCkmJih0aGlzLl9maXJlQ2xpY2s9ITEsdGhpcy5fb25VcCgpLHRoaXMuX3NpbXVsYXRlRXZlbnQoImNvbnRleHRtZW51IixpKSl9LHRoaXMpLDFlMyksby5Eb21FdmVudC5vbihlLCJ0b3VjaG1vdmUiLHRoaXMuX29uTW92ZSx0aGlzKS5vbihlLCJ0b3VjaGVuZCIsdGhpcy5fb25VcCx0aGlzKX19LF9vblVwOmZ1bmN0aW9uKHQpe2lmKGNsZWFyVGltZW91dCh0aGlzLl9ob2xkVGltZW91dCksby5Eb21FdmVudC5vZmYoZSwidG91Y2htb3ZlIix0aGlzLl9vbk1vdmUsdGhpcykub2ZmKGUsInRvdWNoZW5kIix0aGlzLl9vblVwLHRoaXMpLHRoaXMuX2ZpcmVDbGljayYmdCYmdC5jaGFuZ2VkVG91Y2hlcyl7dmFyIGk9dC5jaGFuZ2VkVG91Y2hlc1swXSxuPWkudGFyZ2V0O24mJm4udGFnTmFtZSYmImEiPT09bi50YWdOYW1lLnRvTG93ZXJDYXNlKCkmJm8uRG9tVXRpbC5yZW1vdmVDbGFzcyhuLCJsZWFmbGV0LWFjdGl2ZSIpLHRoaXMuX2lzVGFwVmFsaWQoKSYmdGhpcy5fc2ltdWxhdGVFdmVudCgiY2xpY2siLGkpfX0sX2lzVGFwVmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbmV3UG9zLmRpc3RhbmNlVG8odGhpcy5fc3RhcnRQb3MpPD10aGlzLl9tYXAub3B0aW9ucy50YXBUb2xlcmFuY2V9LF9vbk1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dC50b3VjaGVzWzBdO3RoaXMuX25ld1Bvcz1uZXcgby5Qb2ludChlLmNsaWVudFgsZS5jbGllbnRZKX0sX3NpbXVsYXRlRXZlbnQ6ZnVuY3Rpb24oaSxuKXt2YXIgbz1lLmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpO28uX3NpbXVsYXRlZD0hMCxuLnRhcmdldC5fc2ltdWxhdGVkQ2xpY2s9ITAsby5pbml0TW91c2VFdmVudChpLCEwLCEwLHQsMSxuLnNjcmVlblgsbi5zY3JlZW5ZLG4uY2xpZW50WCxuLmNsaWVudFksITEsITEsITEsITEsMCxudWxsKSxuLnRhcmdldC5kaXNwYXRjaEV2ZW50KG8pfX0pLG8uQnJvd3Nlci50b3VjaCYmIW8uQnJvd3Nlci5wb2ludGVyJiZvLk1hcC5hZGRJbml0SG9vaygiYWRkSGFuZGxlciIsInRhcCIsby5NYXAuVGFwKSxvLk1hcC5tZXJnZU9wdGlvbnMoe2JveFpvb206ITB9KSxvLk1hcC5Cb3hab29tPW8uSGFuZGxlci5leHRlbmQoe2luaXRpYWxpemU6ZnVuY3Rpb24odCl7dGhpcy5fbWFwPXQsdGhpcy5fY29udGFpbmVyPXQuX2NvbnRhaW5lcix0aGlzLl9wYW5lPXQuX3BhbmVzLm92ZXJsYXlQYW5lLHRoaXMuX21vdmVkPSExfSxhZGRIb29rczpmdW5jdGlvbigpe28uRG9tRXZlbnQub24odGhpcy5fY29udGFpbmVyLCJtb3VzZWRvd24iLHRoaXMuX29uTW91c2VEb3duLHRoaXMpfSxyZW1vdmVIb29rczpmdW5jdGlvbigpe28uRG9tRXZlbnQub2ZmKHRoaXMuX2NvbnRhaW5lciwibW91c2Vkb3duIix0aGlzLl9vbk1vdXNlRG93biksdGhpcy5fbW92ZWQ9ITF9LG1vdmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vdmVkfSxfb25Nb3VzZURvd246ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX21vdmVkPSExLCF0LnNoaWZ0S2V5fHwxIT09dC53aGljaCYmMSE9PXQuYnV0dG9uPyExOihvLkRvbVV0aWwuZGlzYWJsZVRleHRTZWxlY3Rpb24oKSxvLkRvbVV0aWwuZGlzYWJsZUltYWdlRHJhZygpLHRoaXMuX3N0YXJ0TGF5ZXJQb2ludD10aGlzLl9tYXAubW91c2VFdmVudFRvTGF5ZXJQb2ludCh0KSx2b2lkIG8uRG9tRXZlbnQub24oZSwibW91c2Vtb3ZlIix0aGlzLl9vbk1vdXNlTW92ZSx0aGlzKS5vbihlLCJtb3VzZXVwIix0aGlzLl9vbk1vdXNlVXAsdGhpcykub24oZSwia2V5ZG93biIsdGhpcy5fb25LZXlEb3duLHRoaXMpKX0sX29uTW91c2VNb3ZlOmZ1bmN0aW9uKHQpe3RoaXMuX21vdmVkfHwodGhpcy5fYm94PW8uRG9tVXRpbC5jcmVhdGUoImRpdiIsImxlYWZsZXQtem9vbS1ib3giLHRoaXMuX3BhbmUpLG8uRG9tVXRpbC5zZXRQb3NpdGlvbih0aGlzLl9ib3gsdGhpcy5fc3RhcnRMYXllclBvaW50KSx0aGlzLl9jb250YWluZXIuc3R5bGUuY3Vyc29yPSJjcm9zc2hhaXIiLHRoaXMuX21hcC5maXJlKCJib3h6b29tc3RhcnQiKSk7dmFyIGU9dGhpcy5fc3RhcnRMYXllclBvaW50LGk9dGhpcy5fYm94LG49dGhpcy5fbWFwLm1vdXNlRXZlbnRUb0xheWVyUG9pbnQodCkscz1uLnN1YnRyYWN0KGUpLGE9bmV3IG8uUG9pbnQoTWF0aC5taW4obi54LGUueCksTWF0aC5taW4obi55LGUueSkpO28uRG9tVXRpbC5zZXRQb3NpdGlvbihpLGEpLHRoaXMuX21vdmVkPSEwLGkuc3R5bGUud2lkdGg9TWF0aC5tYXgoMCxNYXRoLmFicyhzLngpLTQpKyJweCIsaS5zdHlsZS5oZWlnaHQ9TWF0aC5tYXgoMCxNYXRoLmFicyhzLnkpLTQpKyJweCJ9LF9maW5pc2g6ZnVuY3Rpb24oKXt0aGlzLl9tb3ZlZCYmKHRoaXMuX3BhbmUucmVtb3ZlQ2hpbGQodGhpcy5fYm94KSx0aGlzLl9jb250YWluZXIuc3R5bGUuY3Vyc29yPSIiKSxvLkRvbVV0aWwuZW5hYmxlVGV4dFNlbGVjdGlvbigpLG8uRG9tVXRpbC5lbmFibGVJbWFnZURyYWcoKSxvLkRvbUV2ZW50Lm9mZihlLCJtb3VzZW1vdmUiLHRoaXMuX29uTW91c2VNb3ZlKS5vZmYoZSwibW91c2V1cCIsdGhpcy5fb25Nb3VzZVVwKS5vZmYoZSwia2V5ZG93biIsdGhpcy5fb25LZXlEb3duKX0sX29uTW91c2VVcDpmdW5jdGlvbih0KXt0aGlzLl9maW5pc2goKTt2YXIgZT10aGlzLl9tYXAsaT1lLm1vdXNlRXZlbnRUb0xheWVyUG9pbnQodCk7aWYoIXRoaXMuX3N0YXJ0TGF5ZXJQb2ludC5lcXVhbHMoaSkpe3ZhciBuPW5ldyBvLkxhdExuZ0JvdW5kcyhlLmxheWVyUG9pbnRUb0xhdExuZyh0aGlzLl9zdGFydExheWVyUG9pbnQpLGUubGF5ZXJQb2ludFRvTGF0TG5nKGkpKTtlLmZpdEJvdW5kcyhuKSxlLmZpcmUoImJveHpvb21lbmQiLHtib3hab29tQm91bmRzOm59KX19LF9vbktleURvd246ZnVuY3Rpb24odCl7Mjc9PT10LmtleUNvZGUmJnRoaXMuX2ZpbmlzaCgpfX0pLG8uTWFwLmFkZEluaXRIb29rKCJhZGRIYW5kbGVyIiwiYm94Wm9vbSIsby5NYXAuQm94Wm9vbSksby5NYXAubWVyZ2VPcHRpb25zKHtrZXlib2FyZDohMCxrZXlib2FyZFBhbk9mZnNldDo4MCxrZXlib2FyZFpvb21PZmZzZXQ6MX0pLG8uTWFwLktleWJvYXJkPW8uSGFuZGxlci5leHRlbmQoe2tleUNvZGVzOntsZWZ0OlszN10scmlnaHQ6WzM5XSxkb3duOls0MF0sdXA6WzM4XSx6b29tSW46WzE4NywxMDcsNjEsMTcxXSx6b29tT3V0OlsxODksMTA5LDE3M119LGluaXRpYWxpemU6ZnVuY3Rpb24odCl7dGhpcy5fbWFwPXQsdGhpcy5fc2V0UGFuT2Zmc2V0KHQub3B0aW9ucy5rZXlib2FyZFBhbk9mZnNldCksdGhpcy5fc2V0Wm9vbU9mZnNldCh0Lm9wdGlvbnMua2V5Ym9hcmRab29tT2Zmc2V0KX0sYWRkSG9va3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9tYXAuX2NvbnRhaW5lcjstMT09PXQudGFiSW5kZXgmJih0LnRhYkluZGV4PSIwIiksby5Eb21FdmVudC5vbih0LCJmb2N1cyIsdGhpcy5fb25Gb2N1cyx0aGlzKS5vbih0LCJibHVyIix0aGlzLl9vbkJsdXIsdGhpcykub24odCwibW91c2Vkb3duIix0aGlzLl9vbk1vdXNlRG93bix0aGlzKSx0aGlzLl9tYXAub24oImZvY3VzIix0aGlzLl9hZGRIb29rcyx0aGlzKS5vbigiYmx1ciIsdGhpcy5fcmVtb3ZlSG9va3MsdGhpcyl9LHJlbW92ZUhvb2tzOmZ1bmN0aW9uKCl7dGhpcy5fcmVtb3ZlSG9va3MoKTt2YXIgdD10aGlzLl9tYXAuX2NvbnRhaW5lcjtvLkRvbUV2ZW50Lm9mZih0LCJmb2N1cyIsdGhpcy5fb25Gb2N1cyx0aGlzKS5vZmYodCwiYmx1ciIsdGhpcy5fb25CbHVyLHRoaXMpLm9mZih0LCJtb3VzZWRvd24iLHRoaXMuX29uTW91c2VEb3duLHRoaXMpLHRoaXMuX21hcC5vZmYoImZvY3VzIix0aGlzLl9hZGRIb29rcyx0aGlzKS5vZmYoImJsdXIiLHRoaXMuX3JlbW92ZUhvb2tzLHRoaXMpfSxfb25Nb3VzZURvd246ZnVuY3Rpb24oKXtpZighdGhpcy5fZm9jdXNlZCl7dmFyIGk9ZS5ib2R5LG49ZS5kb2N1bWVudEVsZW1lbnQsbz1pLnNjcm9sbFRvcHx8bi5zY3JvbGxUb3Ascz1pLnNjcm9sbExlZnR8fG4uc2Nyb2xsTGVmdDt0aGlzLl9tYXAuX2NvbnRhaW5lci5mb2N1cygpLHQuc2Nyb2xsVG8ocyxvKX19LF9vbkZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5fZm9jdXNlZD0hMCx0aGlzLl9tYXAuZmlyZSgiZm9jdXMiKX0sX29uQmx1cjpmdW5jdGlvbigpe3RoaXMuX2ZvY3VzZWQ9ITEsdGhpcy5fbWFwLmZpcmUoImJsdXIiKX0sX3NldFBhbk9mZnNldDpmdW5jdGlvbih0KXt2YXIgZSxpLG49dGhpcy5fcGFuS2V5cz17fSxvPXRoaXMua2V5Q29kZXM7Zm9yKGU9MCxpPW8ubGVmdC5sZW5ndGg7aT5lO2UrKyluW28ubGVmdFtlXV09Wy0xKnQsMF07Zm9yKGU9MCxpPW8ucmlnaHQubGVuZ3RoO2k+ZTtlKyspbltvLnJpZ2h0W2VdXT1bdCwwXTtmb3IoZT0wLGk9by5kb3duLmxlbmd0aDtpPmU7ZSsrKW5bby5kb3duW2VdXT1bMCx0XTtmb3IoZT0wLGk9by51cC5sZW5ndGg7aT5lO2UrKyluW28udXBbZV1dPVswLC0xKnRdfSxfc2V0Wm9vbU9mZnNldDpmdW5jdGlvbih0KXt2YXIgZSxpLG49dGhpcy5fem9vbUtleXM9e30sbz10aGlzLmtleUNvZGVzO2ZvcihlPTAsaT1vLnpvb21Jbi5sZW5ndGg7aT5lO2UrKyluW28uem9vbUluW2VdXT10O2ZvcihlPTAsaT1vLnpvb21PdXQubGVuZ3RoO2k+ZTtlKyspbltvLnpvb21PdXRbZV1dPS10fSxfYWRkSG9va3M6ZnVuY3Rpb24oKXtvLkRvbUV2ZW50Lm9uKGUsImtleWRvd24iLHRoaXMuX29uS2V5RG93bix0aGlzKX0sX3JlbW92ZUhvb2tzOmZ1bmN0aW9uKCl7by5Eb21FdmVudC5vZmYoZSwia2V5ZG93biIsdGhpcy5fb25LZXlEb3duLHRoaXMpfSxfb25LZXlEb3duOmZ1bmN0aW9uKHQpe3ZhciBlPXQua2V5Q29kZSxpPXRoaXMuX21hcDtpZihlIGluIHRoaXMuX3BhbktleXMpe2lmKGkuX3BhbkFuaW0mJmkuX3BhbkFuaW0uX2luUHJvZ3Jlc3MpcmV0dXJuO2kucGFuQnkodGhpcy5fcGFuS2V5c1tlXSksaS5vcHRpb25zLm1heEJvdW5kcyYmaS5wYW5JbnNpZGVCb3VuZHMoaS5vcHRpb25zLm1heEJvdW5kcyl9ZWxzZXtpZighKGUgaW4gdGhpcy5fem9vbUtleXMpKXJldHVybjtpLnNldFpvb20oaS5nZXRab29tKCkrdGhpcy5fem9vbUtleXNbZV0pfW8uRG9tRXZlbnQuc3RvcCh0KX19KSxvLk1hcC5hZGRJbml0SG9vaygiYWRkSGFuZGxlciIsImtleWJvYXJkIixvLk1hcC5LZXlib2FyZCksby5IYW5kbGVyLk1hcmtlckRyYWc9by5IYW5kbGVyLmV4dGVuZCh7aW5pdGlhbGl6ZTpmdW5jdGlvbih0KXt0aGlzLl9tYXJrZXI9dH0sYWRkSG9va3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9tYXJrZXIuX2ljb247dGhpcy5fZHJhZ2dhYmxlfHwodGhpcy5fZHJhZ2dhYmxlPW5ldyBvLkRyYWdnYWJsZSh0LHQpKSx0aGlzLl9kcmFnZ2FibGUub24oImRyYWdzdGFydCIsdGhpcy5fb25EcmFnU3RhcnQsdGhpcykub24oImRyYWciLHRoaXMuX29uRHJhZyx0aGlzKS5vbigiZHJhZ2VuZCIsdGhpcy5fb25EcmFnRW5kLHRoaXMpLHRoaXMuX2RyYWdnYWJsZS5lbmFibGUoKSxvLkRvbVV0aWwuYWRkQ2xhc3ModGhpcy5fbWFya2VyLl9pY29uLCJsZWFmbGV0LW1hcmtlci1kcmFnZ2FibGUiKX0scmVtb3ZlSG9va3M6ZnVuY3Rpb24oKXt0aGlzLl9kcmFnZ2FibGUub2ZmKCJkcmFnc3RhcnQiLHRoaXMuX29uRHJhZ1N0YXJ0LHRoaXMpLm9mZigiZHJhZyIsdGhpcy5fb25EcmFnLHRoaXMpLm9mZigiZHJhZ2VuZCIsdGhpcy5fb25EcmFnRW5kLHRoaXMpLHRoaXMuX2RyYWdnYWJsZS5kaXNhYmxlKCksby5Eb21VdGlsLnJlbW92ZUNsYXNzKHRoaXMuX21hcmtlci5faWNvbiwibGVhZmxldC1tYXJrZXItZHJhZ2dhYmxlIil9LG1vdmVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RyYWdnYWJsZSYmdGhpcy5fZHJhZ2dhYmxlLl9tb3ZlZH0sX29uRHJhZ1N0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbWFya2VyLmNsb3NlUG9wdXAoKS5maXJlKCJtb3Zlc3RhcnQiKS5maXJlKCJkcmFnc3RhcnQiKX0sX29uRHJhZzpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX21hcmtlcixlPXQuX3NoYWRvdyxpPW8uRG9tVXRpbC5nZXRQb3NpdGlvbih0Ll9pY29uKSxuPXQuX21hcC5sYXllclBvaW50VG9MYXRMbmcoaSk7ZSYmby5Eb21VdGlsLnNldFBvc2l0aW9uKGUsaSksdC5fbGF0bG5nPW4sdC5maXJlKCJtb3ZlIix7bGF0bG5nOm59KS5maXJlKCJkcmFnIil9LF9vbkRyYWdFbmQ6ZnVuY3Rpb24odCl7dGhpcy5fbWFya2VyLmZpcmUoIm1vdmVlbmQiKS5maXJlKCJkcmFnZW5kIix0KX19KSxvLkNvbnRyb2w9by5DbGFzcy5leHRlbmQoe29wdGlvbnM6e3Bvc2l0aW9uOiJ0b3ByaWdodCJ9LGluaXRpYWxpemU6ZnVuY3Rpb24odCl7by5zZXRPcHRpb25zKHRoaXMsdCl9LGdldFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5wb3NpdGlvbn0sc2V0UG9zaXRpb246ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbWFwO3JldHVybiBlJiZlLnJlbW92ZUNvbnRyb2wodGhpcyksdGhpcy5vcHRpb25zLnBvc2l0aW9uPXQsZSYmZS5hZGRDb250cm9sKHRoaXMpLHRoaXN9LGdldENvbnRhaW5lcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb250YWluZXJ9LGFkZFRvOmZ1bmN0aW9uKHQpe3RoaXMuX21hcD10O3ZhciBlPXRoaXMuX2NvbnRhaW5lcj10aGlzLm9uQWRkKHQpLGk9dGhpcy5nZXRQb3NpdGlvbigpLG49dC5fY29udHJvbENvcm5lcnNbaV07cmV0dXJuIG8uRG9tVXRpbC5hZGRDbGFzcyhlLCJsZWFmbGV0LWNvbnRyb2wiKSwtMSE9PWkuaW5kZXhPZigiYm90dG9tIik/bi5pbnNlcnRCZWZvcmUoZSxuLmZpcnN0Q2hpbGQpOm4uYXBwZW5kQ2hpbGQoZSksdGhpc30scmVtb3ZlRnJvbTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmdldFBvc2l0aW9uKCksaT10Ll9jb250cm9sQ29ybmVyc1tlXTtyZXR1cm4gaS5yZW1vdmVDaGlsZCh0aGlzLl9jb250YWluZXIpLHRoaXMuX21hcD1udWxsLHRoaXMub25SZW1vdmUmJnRoaXMub25SZW1vdmUodCksdGhpc30sX3JlZm9jdXNPbk1hcDpmdW5jdGlvbigpe3RoaXMuX21hcCYmdGhpcy5fbWFwLmdldENvbnRhaW5lcigpLmZvY3VzKCl9fSksby5jb250cm9sPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgby5Db250cm9sKHQpfSxvLk1hcC5pbmNsdWRlKHthZGRDb250cm9sOmZ1bmN0aW9uKHQpe3JldHVybiB0LmFkZFRvKHRoaXMpLHRoaXN9LHJlbW92ZUNvbnRyb2w6ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVtb3ZlRnJvbSh0aGlzKSx0aGlzfSxfaW5pdENvbnRyb2xQb3M6ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQscyl7dmFyIGE9aSt0KyIgIitpK3M7ZVt0K3NdPW8uRG9tVXRpbC5jcmVhdGUoImRpdiIsYSxuKX12YXIgZT10aGlzLl9jb250cm9sQ29ybmVycz17fSxpPSJsZWFmbGV0LSIsbj10aGlzLl9jb250cm9sQ29udGFpbmVyPW8uRG9tVXRpbC5jcmVhdGUoImRpdiIsaSsiY29udHJvbC1jb250YWluZXIiLHRoaXMuX2NvbnRhaW5lcik7dCgidG9wIiwibGVmdCIpLHQoInRvcCIsInJpZ2h0IiksdCgiYm90dG9tIiwibGVmdCIpLHQoImJvdHRvbSIsInJpZ2h0Iil9LF9jbGVhckNvbnRyb2xQb3M6ZnVuY3Rpb24oKXt0aGlzLl9jb250YWluZXIucmVtb3ZlQ2hpbGQodGhpcy5fY29udHJvbENvbnRhaW5lcil9fSksby5Db250cm9sLlpvb209by5Db250cm9sLmV4dGVuZCh7b3B0aW9uczp7cG9zaXRpb246InRvcGxlZnQiLHpvb21JblRleHQ6IisiLHpvb21JblRpdGxlOiJab29tIGluIix6b29tT3V0VGV4dDoiLSIsem9vbU91dFRpdGxlOiJab29tIG91dCJ9LG9uQWRkOmZ1bmN0aW9uKHQpe3ZhciBlPSJsZWFmbGV0LWNvbnRyb2wtem9vbSIsaT1vLkRvbVV0aWwuY3JlYXRlKCJkaXYiLGUrIiBsZWFmbGV0LWJhciIpO3JldHVybiB0aGlzLl9tYXA9dCx0aGlzLl96b29tSW5CdXR0b249dGhpcy5fY3JlYXRlQnV0dG9uKHRoaXMub3B0aW9ucy56b29tSW5UZXh0LHRoaXMub3B0aW9ucy56b29tSW5UaXRsZSxlKyItaW4iLGksdGhpcy5fem9vbUluLHRoaXMpLHRoaXMuX3pvb21PdXRCdXR0b249dGhpcy5fY3JlYXRlQnV0dG9uKHRoaXMub3B0aW9ucy56b29tT3V0VGV4dCx0aGlzLm9wdGlvbnMuem9vbU91dFRpdGxlLGUrIi1vdXQiLGksdGhpcy5fem9vbU91dCx0aGlzKSx0aGlzLl91cGRhdGVEaXNhYmxlZCgpLHQub24oInpvb21lbmQgem9vbWxldmVsc2NoYW5nZSIsdGhpcy5fdXBkYXRlRGlzYWJsZWQsdGhpcyksaX0sb25SZW1vdmU6ZnVuY3Rpb24odCl7dC5vZmYoInpvb21lbmQgem9vbWxldmVsc2NoYW5nZSIsdGhpcy5fdXBkYXRlRGlzYWJsZWQsdGhpcyl9LF96b29tSW46ZnVuY3Rpb24odCl7dGhpcy5fbWFwLnpvb21Jbih0LnNoaWZ0S2V5PzM6MSl9LF96b29tT3V0OmZ1bmN0aW9uKHQpe3RoaXMuX21hcC56b29tT3V0KHQuc2hpZnRLZXk/MzoxKX0sX2NyZWF0ZUJ1dHRvbjpmdW5jdGlvbih0LGUsaSxuLHMsYSl7dmFyIHI9by5Eb21VdGlsLmNyZWF0ZSgiYSIsaSxuKTtyLmlubmVySFRNTD10LHIuaHJlZj0iIyIsci50aXRsZT1lO3ZhciBoPW8uRG9tRXZlbnQuc3RvcFByb3BhZ2F0aW9uO3JldHVybiBvLkRvbUV2ZW50Lm9uKHIsImNsaWNrIixoKS5vbihyLCJtb3VzZWRvd24iLGgpLm9uKHIsImRibGNsaWNrIixoKS5vbihyLCJjbGljayIsby5Eb21FdmVudC5wcmV2ZW50RGVmYXVsdCkub24ociwiY2xpY2siLHMsYSkub24ociwiY2xpY2siLHRoaXMuX3JlZm9jdXNPbk1hcCxhKSxyfSxfdXBkYXRlRGlzYWJsZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9tYXAsZT0ibGVhZmxldC1kaXNhYmxlZCI7by5Eb21VdGlsLnJlbW92ZUNsYXNzKHRoaXMuX3pvb21JbkJ1dHRvbixlKSxvLkRvbVV0aWwucmVtb3ZlQ2xhc3ModGhpcy5fem9vbU91dEJ1dHRvbixlKSx0Ll96b29tPT09dC5nZXRNaW5ab29tKCkmJm8uRG9tVXRpbC5hZGRDbGFzcyh0aGlzLl96b29tT3V0QnV0dG9uLGUpLHQuX3pvb209PT10LmdldE1heFpvb20oKSYmby5Eb21VdGlsLmFkZENsYXNzKHRoaXMuX3pvb21JbkJ1dHRvbixlKX19KSxvLk1hcC5tZXJnZU9wdGlvbnMoe3pvb21Db250cm9sOiEwfSksby5NYXAuYWRkSW5pdEhvb2soZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuem9vbUNvbnRyb2wmJih0aGlzLnpvb21Db250cm9sPW5ldyBvLkNvbnRyb2wuWm9vbSx0aGlzLmFkZENvbnRyb2wodGhpcy56b29tQ29udHJvbCkpfSksby5jb250cm9sLnpvb209ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBvLkNvbnRyb2wuWm9vbSh0KX0sby5Db250cm9sLkF0dHJpYnV0aW9uPW8uQ29udHJvbC5leHRlbmQoe29wdGlvbnM6e3Bvc2l0aW9uOiJib3R0b21yaWdodCIscHJlZml4Oic8YSBocmVmPSJodHRwOi8vbGVhZmxldGpzLmNvbSIgdGl0bGU9IkEgSlMgbGlicmFyeSBmb3IgaW50ZXJhY3RpdmUgbWFwcyI+TGVhZmxldDwvYT4nfSxpbml0aWFsaXplOmZ1bmN0aW9uKHQpe28uc2V0T3B0aW9ucyh0aGlzLHQpLHRoaXMuX2F0dHJpYnV0aW9ucz17fX0sb25BZGQ6ZnVuY3Rpb24odCl7dGhpcy5fY29udGFpbmVyPW8uRG9tVXRpbC5jcmVhdGUoImRpdiIsImxlYWZsZXQtY29udHJvbC1hdHRyaWJ1dGlvbiIpLG8uRG9tRXZlbnQuZGlzYWJsZUNsaWNrUHJvcGFnYXRpb24odGhpcy5fY29udGFpbmVyKTtmb3IodmFyIGUgaW4gdC5fbGF5ZXJzKXQuX2xheWVyc1tlXS5nZXRBdHRyaWJ1dGlvbiYmdGhpcy5hZGRBdHRyaWJ1dGlvbih0Ll9sYXllcnNbZV0uZ2V0QXR0cmlidXRpb24oKSk7cmV0dXJuIHQub24oImxheWVyYWRkIix0aGlzLl9vbkxheWVyQWRkLHRoaXMpLm9uKCJsYXllcnJlbW92ZSIsdGhpcy5fb25MYXllclJlbW92ZSx0aGlzKSx0aGlzLl91cGRhdGUoKSx0aGlzLl9jb250YWluZXJ9LG9uUmVtb3ZlOmZ1bmN0aW9uKHQpe3Qub2ZmKCJsYXllcmFkZCIsdGhpcy5fb25MYXllckFkZCkub2ZmKCJsYXllcnJlbW92ZSIsdGhpcy5fb25MYXllclJlbW92ZSl9LHNldFByZWZpeDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zLnByZWZpeD10LHRoaXMuX3VwZGF0ZSgpLHRoaXN9LGFkZEF0dHJpYnV0aW9uOmZ1bmN0aW9uKHQpe3JldHVybiB0Pyh0aGlzLl9hdHRyaWJ1dGlvbnNbdF18fCh0aGlzLl9hdHRyaWJ1dGlvbnNbdF09MCksdGhpcy5fYXR0cmlidXRpb25zW3RdKyssdGhpcy5fdXBkYXRlKCksdGhpcyk6dm9pZCAwfSxyZW1vdmVBdHRyaWJ1dGlvbjpmdW5jdGlvbih0KXtyZXR1cm4gdD8odGhpcy5fYXR0cmlidXRpb25zW3RdJiYodGhpcy5fYXR0cmlidXRpb25zW3RdLS0sdGhpcy5fdXBkYXRlKCkpLHRoaXMpOnZvaWQgMH0sX3VwZGF0ZTpmdW5jdGlvbigpe2lmKHRoaXMuX21hcCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMuX2F0dHJpYnV0aW9ucyl0aGlzLl9hdHRyaWJ1dGlvbnNbZV0mJnQucHVzaChlKTt2YXIgaT1bXTt0aGlzLm9wdGlvbnMucHJlZml4JiZpLnB1c2godGhpcy5vcHRpb25zLnByZWZpeCksdC5sZW5ndGgmJmkucHVzaCh0LmpvaW4oIiwgIikpLHRoaXMuX2NvbnRhaW5lci5pbm5lckhUTUw9aS5qb2luKCIgfCAiKX19LF9vbkxheWVyQWRkOmZ1bmN0aW9uKHQpe3QubGF5ZXIuZ2V0QXR0cmlidXRpb24mJnRoaXMuYWRkQXR0cmlidXRpb24odC5sYXllci5nZXRBdHRyaWJ1dGlvbigpKX0sX29uTGF5ZXJSZW1vdmU6ZnVuY3Rpb24odCl7dC5sYXllci5nZXRBdHRyaWJ1dGlvbiYmdGhpcy5yZW1vdmVBdHRyaWJ1dGlvbih0LmxheWVyLmdldEF0dHJpYnV0aW9uKCkpfX0pLG8uTWFwLm1lcmdlT3B0aW9ucyh7YXR0cmlidXRpb25Db250cm9sOiEwfSksby5NYXAuYWRkSW5pdEhvb2soZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuYXR0cmlidXRpb25Db250cm9sJiYodGhpcy5hdHRyaWJ1dGlvbkNvbnRyb2w9KG5ldyBvLkNvbnRyb2wuQXR0cmlidXRpb24pLmFkZFRvKHRoaXMpKX0pLG8uY29udHJvbC5hdHRyaWJ1dGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG8uQ29udHJvbC5BdHRyaWJ1dGlvbih0KX0sby5Db250cm9sLlNjYWxlPW8uQ29udHJvbC5leHRlbmQoe29wdGlvbnM6e3Bvc2l0aW9uOiJib3R0b21sZWZ0IixtYXhXaWR0aDoxMDAsbWV0cmljOiEwLGltcGVyaWFsOiEwLHVwZGF0ZVdoZW5JZGxlOiExfSxvbkFkZDpmdW5jdGlvbih0KXt0aGlzLl9tYXA9dDt2YXIgZT0ibGVhZmxldC1jb250cm9sLXNjYWxlIixpPW8uRG9tVXRpbC5jcmVhdGUoImRpdiIsZSksbj10aGlzLm9wdGlvbnM7cmV0dXJuIHRoaXMuX2FkZFNjYWxlcyhuLGUsaSksdC5vbihuLnVwZGF0ZVdoZW5JZGxlPyJtb3ZlZW5kIjoibW92ZSIsdGhpcy5fdXBkYXRlLHRoaXMpLHQud2hlblJlYWR5KHRoaXMuX3VwZGF0ZSx0aGlzKSxpfSxvblJlbW92ZTpmdW5jdGlvbih0KXt0Lm9mZih0aGlzLm9wdGlvbnMudXBkYXRlV2hlbklkbGU/Im1vdmVlbmQiOiJtb3ZlIix0aGlzLl91cGRhdGUsdGhpcyl9LF9hZGRTY2FsZXM6ZnVuY3Rpb24odCxlLGkpe3QubWV0cmljJiYodGhpcy5fbVNjYWxlPW8uRG9tVXRpbC5jcmVhdGUoImRpdiIsZSsiLWxpbmUiLGkpKSx0LmltcGVyaWFsJiYodGhpcy5faVNjYWxlPW8uRG9tVXRpbC5jcmVhdGUoImRpdiIsZSsiLWxpbmUiLGkpKX0sX3VwZGF0ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX21hcC5nZXRCb3VuZHMoKSxlPXQuZ2V0Q2VudGVyKCkubGF0LGk9NjM3ODEzNypNYXRoLlBJKk1hdGguY29zKGUqTWF0aC5QSS8xODApLG49aSoodC5nZXROb3J0aEVhc3QoKS5sbmctdC5nZXRTb3V0aFdlc3QoKS5sbmcpLzE4MCxvPXRoaXMuX21hcC5nZXRTaXplKCkscz10aGlzLm9wdGlvbnMsYT0wO28ueD4wJiYoYT1uKihzLm1heFdpZHRoL28ueCkpLHRoaXMuX3VwZGF0ZVNjYWxlcyhzLGEpfSxfdXBkYXRlU2NhbGVzOmZ1bmN0aW9uKHQsZSl7dC5tZXRyaWMmJmUmJnRoaXMuX3VwZGF0ZU1ldHJpYyhlKSx0LmltcGVyaWFsJiZlJiZ0aGlzLl91cGRhdGVJbXBlcmlhbChlKX0sX3VwZGF0ZU1ldHJpYzpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9nZXRSb3VuZE51bSh0KTt0aGlzLl9tU2NhbGUuc3R5bGUud2lkdGg9dGhpcy5fZ2V0U2NhbGVXaWR0aChlL3QpKyJweCIsdGhpcy5fbVNjYWxlLmlubmVySFRNTD0xZTM+ZT9lKyIgbSI6ZS8xZTMrIiBrbSJ9LF91cGRhdGVJbXBlcmlhbDpmdW5jdGlvbih0KXt2YXIgZSxpLG4sbz0zLjI4MDgzOTkqdCxzPXRoaXMuX2lTY2FsZTtvPjUyODA/KGU9by81MjgwLGk9dGhpcy5fZ2V0Um91bmROdW0oZSkscy5zdHlsZS53aWR0aD10aGlzLl9nZXRTY2FsZVdpZHRoKGkvZSkrInB4IixzLmlubmVySFRNTD1pKyIgbWkiKToobj10aGlzLl9nZXRSb3VuZE51bShvKSxzLnN0eWxlLndpZHRoPXRoaXMuX2dldFNjYWxlV2lkdGgobi9vKSsicHgiLHMuaW5uZXJIVE1MPW4rIiBmdCIpfSxfZ2V0U2NhbGVXaWR0aDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0aGlzLm9wdGlvbnMubWF4V2lkdGgqdCktMTB9LF9nZXRSb3VuZE51bTpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLnBvdygxMCwoTWF0aC5mbG9vcih0KSsiIikubGVuZ3RoLTEpLGk9dC9lO3JldHVybiBpPWk+PTEwPzEwOmk+PTU/NTppPj0zPzM6aT49Mj8yOjEsZSppfX0pLG8uY29udHJvbC5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG8uQ29udHJvbC5TY2FsZSh0KX0sby5Db250cm9sLkxheWVycz1vLkNvbnRyb2wuZXh0ZW5kKHtvcHRpb25zOntjb2xsYXBzZWQ6ITAscG9zaXRpb246InRvcHJpZ2h0IixhdXRvWkluZGV4OiEwfSxpbml0aWFsaXplOmZ1bmN0aW9uKHQsZSxpKXtvLnNldE9wdGlvbnModGhpcyxpKSx0aGlzLl9sYXllcnM9e30sdGhpcy5fbGFzdFpJbmRleD0wLHRoaXMuX2hhbmRsaW5nQ2xpY2s9ITE7Zm9yKHZhciBuIGluIHQpdGhpcy5fYWRkTGF5ZXIodFtuXSxuKTtmb3IobiBpbiBlKXRoaXMuX2FkZExheWVyKGVbbl0sbiwhMCl9LG9uQWRkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pbml0TGF5b3V0KCksdGhpcy5fdXBkYXRlKCksdC5vbigibGF5ZXJhZGQiLHRoaXMuX29uTGF5ZXJDaGFuZ2UsdGhpcykub24oImxheWVycmVtb3ZlIix0aGlzLl9vbkxheWVyQ2hhbmdlLHRoaXMpLHRoaXMuX2NvbnRhaW5lcn0sb25SZW1vdmU6ZnVuY3Rpb24odCl7dC5vZmYoImxheWVyYWRkIix0aGlzLl9vbkxheWVyQ2hhbmdlLHRoaXMpLm9mZigibGF5ZXJyZW1vdmUiLHRoaXMuX29uTGF5ZXJDaGFuZ2UsdGhpcyl9LGFkZEJhc2VMYXllcjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9hZGRMYXllcih0LGUpLHRoaXMuX3VwZGF0ZSgpLHRoaXN9LGFkZE92ZXJsYXk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fYWRkTGF5ZXIodCxlLCEwKSx0aGlzLl91cGRhdGUoKSx0aGlzfSxyZW1vdmVMYXllcjpmdW5jdGlvbih0KXt2YXIgZT1vLnN0YW1wKHQpO3JldHVybiBkZWxldGUgdGhpcy5fbGF5ZXJzW2VdLHRoaXMuX3VwZGF0ZSgpLHRoaXN9LF9pbml0TGF5b3V0OmZ1bmN0aW9uKCl7dmFyIHQ9ImxlYWZsZXQtY29udHJvbC1sYXllcnMiLGU9dGhpcy5fY29udGFpbmVyPW8uRG9tVXRpbC5jcmVhdGUoImRpdiIsdCk7ZS5zZXRBdHRyaWJ1dGUoImFyaWEtaGFzcG9wdXAiLCEwKSxvLkJyb3dzZXIudG91Y2g/by5Eb21FdmVudC5vbihlLCJjbGljayIsby5Eb21FdmVudC5zdG9wUHJvcGFnYXRpb24pOm8uRG9tRXZlbnQuZGlzYWJsZUNsaWNrUHJvcGFnYXRpb24oZSkuZGlzYWJsZVNjcm9sbFByb3BhZ2F0aW9uKGUpO3ZhciBpPXRoaXMuX2Zvcm09by5Eb21VdGlsLmNyZWF0ZSgiZm9ybSIsdCsiLWxpc3QiKTtpZih0aGlzLm9wdGlvbnMuY29sbGFwc2VkKXtvLkJyb3dzZXIuYW5kcm9pZHx8by5Eb21FdmVudC5vbihlLCJtb3VzZW92ZXIiLHRoaXMuX2V4cGFuZCx0aGlzKS5vbihlLCJtb3VzZW91dCIsdGhpcy5fY29sbGFwc2UsdGhpcyk7dmFyIG49dGhpcy5fbGF5ZXJzTGluaz1vLkRvbVV0aWwuY3JlYXRlKCJhIix0KyItdG9nZ2xlIixlKTtuLmhyZWY9IiMiLG4udGl0bGU9IkxheWVycyIsby5Ccm93c2VyLnRvdWNoP28uRG9tRXZlbnQub24obiwiY2xpY2siLG8uRG9tRXZlbnQuc3RvcCkub24obiwiY2xpY2siLHRoaXMuX2V4cGFuZCx0aGlzKTpvLkRvbUV2ZW50Lm9uKG4sImZvY3VzIix0aGlzLl9leHBhbmQsdGhpcyksby5Eb21FdmVudC5vbihpLCJjbGljayIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KG8uYmluZCh0aGlzLl9vbklucHV0Q2xpY2ssdGhpcyksMCl9LHRoaXMpLHRoaXMuX21hcC5vbigiY2xpY2siLHRoaXMuX2NvbGxhcHNlLHRoaXMpfWVsc2UgdGhpcy5fZXhwYW5kKCk7dGhpcy5fYmFzZUxheWVyc0xpc3Q9by5Eb21VdGlsLmNyZWF0ZSgiZGl2Iix0KyItYmFzZSIsaSksdGhpcy5fc2VwYXJhdG9yPW8uRG9tVXRpbC5jcmVhdGUoImRpdiIsdCsiLXNlcGFyYXRvciIsaSksdGhpcy5fb3ZlcmxheXNMaXN0PW8uRG9tVXRpbC5jcmVhdGUoImRpdiIsdCsiLW92ZXJsYXlzIixpKSxlLmFwcGVuZENoaWxkKGkpfSxfYWRkTGF5ZXI6ZnVuY3Rpb24odCxlLGkpe3ZhciBuPW8uc3RhbXAodCk7dGhpcy5fbGF5ZXJzW25dPXtsYXllcjp0LG5hbWU6ZSxvdmVybGF5Oml9LHRoaXMub3B0aW9ucy5hdXRvWkluZGV4JiZ0LnNldFpJbmRleCYmKHRoaXMuX2xhc3RaSW5kZXgrKyx0LnNldFpJbmRleCh0aGlzLl9sYXN0WkluZGV4KSl9LF91cGRhdGU6ZnVuY3Rpb24oKXtpZih0aGlzLl9jb250YWluZXIpe3RoaXMuX2Jhc2VMYXllcnNMaXN0LmlubmVySFRNTD0iIix0aGlzLl9vdmVybGF5c0xpc3QuaW5uZXJIVE1MPSIiO3ZhciB0LGUsaT0hMSxuPSExO2Zvcih0IGluIHRoaXMuX2xheWVycyllPXRoaXMuX2xheWVyc1t0XSx0aGlzLl9hZGRJdGVtKGUpLG49bnx8ZS5vdmVybGF5LGk9aXx8IWUub3ZlcmxheTt0aGlzLl9zZXBhcmF0b3Iuc3R5bGUuZGlzcGxheT1uJiZpPyIiOiJub25lIn19LF9vbkxheWVyQ2hhbmdlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2xheWVyc1tvLnN0YW1wKHQubGF5ZXIpXTtpZihlKXt0aGlzLl9oYW5kbGluZ0NsaWNrfHx0aGlzLl91cGRhdGUoKTt2YXIgaT1lLm92ZXJsYXk/ImxheWVyYWRkIj09PXQudHlwZT8ib3ZlcmxheWFkZCI6Im92ZXJsYXlyZW1vdmUiOiJsYXllcmFkZCI9PT10LnR5cGU/ImJhc2VsYXllcmNoYW5nZSI6bnVsbDtpJiZ0aGlzLl9tYXAuZmlyZShpLGUpfX0sX2NyZWF0ZVJhZGlvRWxlbWVudDpmdW5jdGlvbih0LGkpe3ZhciBuPSc8aW5wdXQgdHlwZT0icmFkaW8iIGNsYXNzPSJsZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLXNlbGVjdG9yIiBuYW1lPSInK3QrJyInO2kmJihuKz0nIGNoZWNrZWQ9ImNoZWNrZWQiJyksbis9Ii8+Ijt2YXIgbz1lLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBvLmlubmVySFRNTD1uLG8uZmlyc3RDaGlsZH0sX2FkZEl0ZW06ZnVuY3Rpb24odCl7dmFyIGksbj1lLmNyZWF0ZUVsZW1lbnQoImxhYmVsIikscz10aGlzLl9tYXAuaGFzTGF5ZXIodC5sYXllcik7dC5vdmVybGF5PyhpPWUuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxpLnR5cGU9ImNoZWNrYm94IixpLmNsYXNzTmFtZT0ibGVhZmxldC1jb250cm9sLWxheWVycy1zZWxlY3RvciIsaS5kZWZhdWx0Q2hlY2tlZD1zKTppPXRoaXMuX2NyZWF0ZVJhZGlvRWxlbWVudCgibGVhZmxldC1iYXNlLWxheWVycyIscyksaS5sYXllcklkPW8uc3RhbXAodC5sYXllciksby5Eb21FdmVudC5vbihpLCJjbGljayIsdGhpcy5fb25JbnB1dENsaWNrLHRoaXMpO3ZhciBhPWUuY3JlYXRlRWxlbWVudCgic3BhbiIpO2EuaW5uZXJIVE1MPSIgIit0Lm5hbWUsbi5hcHBlbmRDaGlsZChpKSxuLmFwcGVuZENoaWxkKGEpO3ZhciByPXQub3ZlcmxheT90aGlzLl9vdmVybGF5c0xpc3Q6dGhpcy5fYmFzZUxheWVyc0xpc3Q7cmV0dXJuIHIuYXBwZW5kQ2hpbGQobiksbn0sX29uSW5wdXRDbGljazpmdW5jdGlvbigpe3ZhciB0LGUsaSxuPXRoaXMuX2Zvcm0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0Iiksbz1uLmxlbmd0aDtmb3IodGhpcy5faGFuZGxpbmdDbGljaz0hMCx0PTA7bz50O3QrKyllPW5bdF0saT10aGlzLl9sYXllcnNbZS5sYXllcklkXSxlLmNoZWNrZWQmJiF0aGlzLl9tYXAuaGFzTGF5ZXIoaS5sYXllcik/dGhpcy5fbWFwLmFkZExheWVyKGkubGF5ZXIpOiFlLmNoZWNrZWQmJnRoaXMuX21hcC5oYXNMYXllcihpLmxheWVyKSYmdGhpcy5fbWFwLnJlbW92ZUxheWVyKGkubGF5ZXIpO3RoaXMuX2hhbmRsaW5nQ2xpY2s9ITEsdGhpcy5fcmVmb2N1c09uTWFwKCl9LF9leHBhbmQ6ZnVuY3Rpb24oKXtvLkRvbVV0aWwuYWRkQ2xhc3ModGhpcy5fY29udGFpbmVyLCJsZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLWV4cGFuZGVkIil9LF9jb2xsYXBzZTpmdW5jdGlvbigpe3RoaXMuX2NvbnRhaW5lci5jbGFzc05hbWU9dGhpcy5fY29udGFpbmVyLmNsYXNzTmFtZS5yZXBsYWNlKCIgbGVhZmxldC1jb250cm9sLWxheWVycy1leHBhbmRlZCIsIiIpfX0pLG8uY29udHJvbC5sYXllcnM9ZnVuY3Rpb24odCxlLGkpe3JldHVybiBuZXcgby5Db250cm9sLkxheWVycyh0LGUsaSl9LG8uUG9zQW5pbWF0aW9uPW8uQ2xhc3MuZXh0ZW5kKHtpbmNsdWRlczpvLk1peGluLkV2ZW50cyxydW46ZnVuY3Rpb24odCxlLGksbil7dGhpcy5zdG9wKCksdGhpcy5fZWw9dCx0aGlzLl9pblByb2dyZXNzPSEwLHRoaXMuX25ld1Bvcz1lLHRoaXMuZmlyZSgic3RhcnQiKSx0LnN0eWxlW28uRG9tVXRpbC5UUkFOU0lUSU9OXT0iYWxsICIrKGl8fC4yNSkrInMgY3ViaWMtYmV6aWVyKDAsMCwiKyhufHwuNSkrIiwxKSIsby5Eb21FdmVudC5vbih0LG8uRG9tVXRpbC5UUkFOU0lUSU9OX0VORCx0aGlzLl9vblRyYW5zaXRpb25FbmQsdGhpcyksby5Eb21VdGlsLnNldFBvc2l0aW9uKHQsZSksby5VdGlsLmZhbHNlRm4odC5vZmZzZXRXaWR0aCksdGhpcy5fc3RlcFRpbWVyPXNldEludGVydmFsKG8uYmluZCh0aGlzLl9vblN0ZXAsdGhpcyksNTApfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5faW5Qcm9ncmVzcyYmKG8uRG9tVXRpbC5zZXRQb3NpdGlvbih0aGlzLl9lbCx0aGlzLl9nZXRQb3MoKSksdGhpcy5fb25UcmFuc2l0aW9uRW5kKCksby5VdGlsLmZhbHNlRm4odGhpcy5fZWwub2Zmc2V0V2lkdGgpKX0sX29uU3RlcDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2dldFBvcygpO3JldHVybiB0Pyh0aGlzLl9lbC5fbGVhZmxldF9wb3M9dCx2b2lkIHRoaXMuZmlyZSgic3RlcCIpKTp2b2lkIHRoaXMuX29uVHJhbnNpdGlvbkVuZCgpfSxfdHJhbnNmb3JtUmU6LyhbLStdPyg/OlxkKlwuKT9cZCspXEQqLCAoWy0rXT8oPzpcZCpcLik/XGQrKVxEKlwpLyxfZ2V0UG9zOmZ1bmN0aW9uKCl7dmFyIGUsaSxuLHM9dGhpcy5fZWwsYT10LmdldENvbXB1dGVkU3R5bGUocyk7aWYoby5Ccm93c2VyLmFueTNkKXtpZihuPWFbby5Eb21VdGlsLlRSQU5TRk9STV0ubWF0Y2godGhpcy5fdHJhbnNmb3JtUmUpLCFuKXJldHVybjtlPXBhcnNlRmxvYXQoblsxXSksaT1wYXJzZUZsb2F0KG5bMl0pfWVsc2UgZT1wYXJzZUZsb2F0KGEubGVmdCksaT1wYXJzZUZsb2F0KGEudG9wKTtyZXR1cm4gbmV3IG8uUG9pbnQoZSxpLCEwKX0sX29uVHJhbnNpdGlvbkVuZDpmdW5jdGlvbigpe28uRG9tRXZlbnQub2ZmKHRoaXMuX2VsLG8uRG9tVXRpbC5UUkFOU0lUSU9OX0VORCx0aGlzLl9vblRyYW5zaXRpb25FbmQsdGhpcyksdGhpcy5faW5Qcm9ncmVzcyYmKHRoaXMuX2luUHJvZ3Jlc3M9ITEsdGhpcy5fZWwuc3R5bGVbby5Eb21VdGlsLlRSQU5TSVRJT05dPSIiLHRoaXMuX2VsLl9sZWFmbGV0X3Bvcz10aGlzLl9uZXdQb3MsY2xlYXJJbnRlcnZhbCh0aGlzLl9zdGVwVGltZXIpLHRoaXMuZmlyZSgic3RlcCIpLmZpcmUoImVuZCIpKX19KSxvLk1hcC5pbmNsdWRlKHtzZXRWaWV3OmZ1bmN0aW9uKHQsZSxuKXtpZihlPWU9PT1pP3RoaXMuX3pvb206dGhpcy5fbGltaXRab29tKGUpLHQ9dGhpcy5fbGltaXRDZW50ZXIoby5sYXRMbmcodCksZSx0aGlzLm9wdGlvbnMubWF4Qm91bmRzKSxuPW58fHt9LHRoaXMuX3BhbkFuaW0mJnRoaXMuX3BhbkFuaW0uc3RvcCgpLHRoaXMuX2xvYWRlZCYmIW4ucmVzZXQmJm4hPT0hMCl7bi5hbmltYXRlIT09aSYmKG4uem9vbT1vLmV4dGVuZCh7YW5pbWF0ZTpuLmFuaW1hdGV9LG4uem9vbSksbi5wYW49by5leHRlbmQoe2FuaW1hdGU6bi5hbmltYXRlfSxuLnBhbikpO3ZhciBzPXRoaXMuX3pvb20hPT1lP3RoaXMuX3RyeUFuaW1hdGVkWm9vbSYmdGhpcy5fdHJ5QW5pbWF0ZWRab29tKHQsZSxuLnpvb20pOnRoaXMuX3RyeUFuaW1hdGVkUGFuKHQsbi5wYW4pO2lmKHMpcmV0dXJuIGNsZWFyVGltZW91dCh0aGlzLl9zaXplVGltZXIpLHRoaXN9cmV0dXJuIHRoaXMuX3Jlc2V0Vmlldyh0LGUpLHRoaXN9LHBhbkJ5OmZ1bmN0aW9uKHQsZSl7aWYodD1vLnBvaW50KHQpLnJvdW5kKCksZT1lfHx7fSwhdC54JiYhdC55KXJldHVybiB0aGlzO2lmKHRoaXMuX3BhbkFuaW18fCh0aGlzLl9wYW5BbmltPW5ldyBvLlBvc0FuaW1hdGlvbix0aGlzLl9wYW5BbmltLm9uKHtzdGVwOnRoaXMuX29uUGFuVHJhbnNpdGlvblN0ZXAsZW5kOnRoaXMuX29uUGFuVHJhbnNpdGlvbkVuZH0sdGhpcykpLGUubm9Nb3ZlU3RhcnR8fHRoaXMuZmlyZSgibW92ZXN0YXJ0IiksZS5hbmltYXRlIT09ITEpe28uRG9tVXRpbC5hZGRDbGFzcyh0aGlzLl9tYXBQYW5lLCJsZWFmbGV0LXBhbi1hbmltIik7dmFyIGk9dGhpcy5fZ2V0TWFwUGFuZVBvcygpLnN1YnRyYWN0KHQpO3RoaXMuX3BhbkFuaW0ucnVuKHRoaXMuX21hcFBhbmUsaSxlLmR1cmF0aW9ufHwuMjUsZS5lYXNlTGluZWFyaXR5KX1lbHNlIHRoaXMuX3Jhd1BhbkJ5KHQpLHRoaXMuZmlyZSgibW92ZSIpLmZpcmUoIm1vdmVlbmQiKTtyZXR1cm4gdGhpc30sX29uUGFuVHJhbnNpdGlvblN0ZXA6ZnVuY3Rpb24oKXt0aGlzLmZpcmUoIm1vdmUiKX0sX29uUGFuVHJhbnNpdGlvbkVuZDpmdW5jdGlvbigpe28uRG9tVXRpbC5yZW1vdmVDbGFzcyh0aGlzLl9tYXBQYW5lLCJsZWFmbGV0LXBhbi1hbmltIiksdGhpcy5maXJlKCJtb3ZlZW5kIil9LF90cnlBbmltYXRlZFBhbjpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuX2dldENlbnRlck9mZnNldCh0KS5fZmxvb3IoKTtyZXR1cm4oZSYmZS5hbmltYXRlKT09PSEwfHx0aGlzLmdldFNpemUoKS5jb250YWlucyhpKT8odGhpcy5wYW5CeShpLGUpLCEwKTohMX19KSxvLlBvc0FuaW1hdGlvbj1vLkRvbVV0aWwuVFJBTlNJVElPTj9vLlBvc0FuaW1hdGlvbjpvLlBvc0FuaW1hdGlvbi5leHRlbmQoe3J1bjpmdW5jdGlvbih0LGUsaSxuKXt0aGlzLnN0b3AoKSx0aGlzLl9lbD10LHRoaXMuX2luUHJvZ3Jlc3M9ITAsdGhpcy5fZHVyYXRpb249aXx8LjI1LHRoaXMuX2Vhc2VPdXRQb3dlcj0xL01hdGgubWF4KG58fC41LC4yKSx0aGlzLl9zdGFydFBvcz1vLkRvbVV0aWwuZ2V0UG9zaXRpb24odCksdGhpcy5fb2Zmc2V0PWUuc3VidHJhY3QodGhpcy5fc3RhcnRQb3MpLHRoaXMuX3N0YXJ0VGltZT0rbmV3IERhdGUsdGhpcy5maXJlKCJzdGFydCIpLHRoaXMuX2FuaW1hdGUoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2luUHJvZ3Jlc3MmJih0aGlzLl9zdGVwKCksdGhpcy5fY29tcGxldGUoKSl9LF9hbmltYXRlOmZ1bmN0aW9uKCl7dGhpcy5fYW5pbUlkPW8uVXRpbC5yZXF1ZXN0QW5pbUZyYW1lKHRoaXMuX2FuaW1hdGUsdGhpcyksdGhpcy5fc3RlcCgpfSxfc3RlcDpmdW5jdGlvbigpe3ZhciB0PStuZXcgRGF0ZS10aGlzLl9zdGFydFRpbWUsZT0xZTMqdGhpcy5fZHVyYXRpb247ZT50P3RoaXMuX3J1bkZyYW1lKHRoaXMuX2Vhc2VPdXQodC9lKSk6KHRoaXMuX3J1bkZyYW1lKDEpLHRoaXMuX2NvbXBsZXRlKCkpfSxfcnVuRnJhbWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fc3RhcnRQb3MuYWRkKHRoaXMuX29mZnNldC5tdWx0aXBseUJ5KHQpKTtvLkRvbVV0aWwuc2V0UG9zaXRpb24odGhpcy5fZWwsZSksdGhpcy5maXJlKCJzdGVwIil9LF9jb21wbGV0ZTpmdW5jdGlvbigpe28uVXRpbC5jYW5jZWxBbmltRnJhbWUodGhpcy5fYW5pbUlkKSx0aGlzLl9pblByb2dyZXNzPSExLHRoaXMuZmlyZSgiZW5kIil9LF9lYXNlT3V0OmZ1bmN0aW9uKHQpe3JldHVybiAxLU1hdGgucG93KDEtdCx0aGlzLl9lYXNlT3V0UG93ZXIpfX0pLG8uTWFwLm1lcmdlT3B0aW9ucyh7em9vbUFuaW1hdGlvbjohMCx6b29tQW5pbWF0aW9uVGhyZXNob2xkOjR9KSxvLkRvbVV0aWwuVFJBTlNJVElPTiYmby5NYXAuYWRkSW5pdEhvb2soZnVuY3Rpb24oKXt0aGlzLl96b29tQW5pbWF0ZWQ9dGhpcy5vcHRpb25zLnpvb21BbmltYXRpb24mJm8uRG9tVXRpbC5UUkFOU0lUSU9OJiZvLkJyb3dzZXIuYW55M2QmJiFvLkJyb3dzZXIuYW5kcm9pZDIzJiYhby5Ccm93c2VyLm1vYmlsZU9wZXJhLHRoaXMuX3pvb21BbmltYXRlZCYmby5Eb21FdmVudC5vbih0aGlzLl9tYXBQYW5lLG8uRG9tVXRpbC5UUkFOU0lUSU9OX0VORCx0aGlzLl9jYXRjaFRyYW5zaXRpb25FbmQsdGhpcyl9KSxvLk1hcC5pbmNsdWRlKG8uRG9tVXRpbC5UUkFOU0lUSU9OP3tfY2F0Y2hUcmFuc2l0aW9uRW5kOmZ1bmN0aW9uKHQpe3RoaXMuX2FuaW1hdGluZ1pvb20mJnQucHJvcGVydHlOYW1lLmluZGV4T2YoInRyYW5zZm9ybSIpPj0wJiZ0aGlzLl9vblpvb21UcmFuc2l0aW9uRW5kKCl9LF9ub3RoaW5nVG9BbmltYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuX2NvbnRhaW5lci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJsZWFmbGV0LXpvb20tYW5pbWF0ZWQiKS5sZW5ndGh9LF90cnlBbmltYXRlZFpvb206ZnVuY3Rpb24odCxlLGkpe2lmKHRoaXMuX2FuaW1hdGluZ1pvb20pcmV0dXJuITA7aWYoaT1pfHx7fSwhdGhpcy5fem9vbUFuaW1hdGVkfHxpLmFuaW1hdGU9PT0hMXx8dGhpcy5fbm90aGluZ1RvQW5pbWF0ZSgpfHxNYXRoLmFicyhlLXRoaXMuX3pvb20pPnRoaXMub3B0aW9ucy56b29tQW5pbWF0aW9uVGhyZXNob2xkKXJldHVybiExO3ZhciBuPXRoaXMuZ2V0Wm9vbVNjYWxlKGUpLG89dGhpcy5fZ2V0Q2VudGVyT2Zmc2V0KHQpLl9kaXZpZGVCeSgxLTEvbikscz10aGlzLl9nZXRDZW50ZXJMYXllclBvaW50KCkuX2FkZChvKTtyZXR1cm4gaS5hbmltYXRlPT09ITB8fHRoaXMuZ2V0U2l6ZSgpLmNvbnRhaW5zKG8pPyh0aGlzLmZpcmUoIm1vdmVzdGFydCIpLmZpcmUoInpvb21zdGFydCIpLHRoaXMuX2FuaW1hdGVab29tKHQsZSxzLG4sbnVsbCwhMCksITApOiExfSxfYW5pbWF0ZVpvb206ZnVuY3Rpb24odCxlLGksbixzLGEscil7cnx8KHRoaXMuX2FuaW1hdGluZ1pvb209ITApLG8uRG9tVXRpbC5hZGRDbGFzcyh0aGlzLl9tYXBQYW5lLCJsZWFmbGV0LXpvb20tYW5pbSIpLHRoaXMuX2FuaW1hdGVUb0NlbnRlcj10LHRoaXMuX2FuaW1hdGVUb1pvb209ZSxvLkRyYWdnYWJsZSYmKG8uRHJhZ2dhYmxlLl9kaXNhYmxlZD0hMCksby5VdGlsLnJlcXVlc3RBbmltRnJhbWUoZnVuY3Rpb24oKXt0aGlzLmZpcmUoInpvb21hbmltIix7Y2VudGVyOnQsem9vbTplLG9yaWdpbjppLHNjYWxlOm4sZGVsdGE6cyxiYWNrd2FyZHM6YX0pfSx0aGlzKX0sX29uWm9vbVRyYW5zaXRpb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLl9hbmltYXRpbmdab29tPSExLG8uRG9tVXRpbC5yZW1vdmVDbGFzcyh0aGlzLl9tYXBQYW5lLCJsZWFmbGV0LXpvb20tYW5pbSIpLHRoaXMuX3Jlc2V0Vmlldyh0aGlzLl9hbmltYXRlVG9DZW50ZXIsdGhpcy5fYW5pbWF0ZVRvWm9vbSwhMCwhMCksby5EcmFnZ2FibGUmJihvLkRyYWdnYWJsZS5fZGlzYWJsZWQ9ITEpfX06e30pLG8uVGlsZUxheWVyLmluY2x1ZGUoe19hbmltYXRlWm9vbTpmdW5jdGlvbih0KXt0aGlzLl9hbmltYXRpbmd8fCh0aGlzLl9hbmltYXRpbmc9ITAsdGhpcy5fcHJlcGFyZUJnQnVmZmVyKCkpO3ZhciBlPXRoaXMuX2JnQnVmZmVyLGk9by5Eb21VdGlsLlRSQU5TRk9STSxuPXQuZGVsdGE/by5Eb21VdGlsLmdldFRyYW5zbGF0ZVN0cmluZyh0LmRlbHRhKTplLnN0eWxlW2ldLHM9by5Eb21VdGlsLmdldFNjYWxlU3RyaW5nKHQuc2NhbGUsdC5vcmlnaW4pO2Uuc3R5bGVbaV09dC5iYWNrd2FyZHM/cysiICIrbjpuKyIgIitzfSxfZW5kWm9vbUFuaW06ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl90aWxlQ29udGFpbmVyLGU9dGhpcy5fYmdCdWZmZXI7dC5zdHlsZS52aXNpYmlsaXR5PSIiLHQucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0KSxvLlV0aWwuZmFsc2VGbihlLm9mZnNldFdpZHRoKSx0aGlzLl9hbmltYXRpbmc9ITF9LF9jbGVhckJnQnVmZmVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbWFwOyF0fHx0Ll9hbmltYXRpbmdab29tfHx0LnRvdWNoWm9vbS5fem9vbWluZ3x8KHRoaXMuX2JnQnVmZmVyLmlubmVySFRNTD0iIix0aGlzLl9iZ0J1ZmZlci5zdHlsZVtvLkRvbVV0aWwuVFJBTlNGT1JNXT0iIil9LF9wcmVwYXJlQmdCdWZmZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl90aWxlQ29udGFpbmVyLGU9dGhpcy5fYmdCdWZmZXIsaT10aGlzLl9nZXRMb2FkZWRUaWxlc1BlcmNlbnRhZ2UoZSksbj10aGlzLl9nZXRMb2FkZWRUaWxlc1BlcmNlbnRhZ2UodCk7cmV0dXJuIGUmJmk+LjUmJi41Pm4/KHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIix2b2lkIHRoaXMuX3N0b3BMb2FkaW5nSW1hZ2VzKHQpKTooZS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLGUuc3R5bGVbby5Eb21VdGlsLlRSQU5TRk9STV09IiIsdGhpcy5fdGlsZUNvbnRhaW5lcj1lLGU9dGhpcy5fYmdCdWZmZXI9dCx0aGlzLl9zdG9wTG9hZGluZ0ltYWdlcyhlKSx2b2lkIGNsZWFyVGltZW91dCh0aGlzLl9jbGVhckJnQnVmZmVyVGltZXIpKX0sX2dldExvYWRlZFRpbGVzUGVyY2VudGFnZTpmdW5jdGlvbih0KXt2YXIgZSxpLG49dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIiksbz0wO2ZvcihlPTAsaT1uLmxlbmd0aDtpPmU7ZSsrKW5bZV0uY29tcGxldGUmJm8rKztyZXR1cm4gby9pfSxfc3RvcExvYWRpbmdJbWFnZXM6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIikpO2ZvcihlPTAsaT1zLmxlbmd0aDtpPmU7ZSsrKW49c1tlXSxuLmNvbXBsZXRlfHwobi5vbmxvYWQ9by5VdGlsLmZhbHNlRm4sbi5vbmVycm9yPW8uVXRpbC5mYWxzZUZuLG4uc3JjPW8uVXRpbC5lbXB0eUltYWdlVXJsLG4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKSl9fSksby5NYXAuaW5jbHVkZSh7X2RlZmF1bHRMb2NhdGVPcHRpb25zOnt3YXRjaDohMSxzZXRWaWV3OiExLG1heFpvb206MS8wLHRpbWVvdXQ6MWU0LG1heGltdW1BZ2U6MCxlbmFibGVIaWdoQWNjdXJhY3k6ITF9LGxvY2F0ZTpmdW5jdGlvbih0KXtpZih0PXRoaXMuX2xvY2F0ZU9wdGlvbnM9by5leHRlbmQodGhpcy5fZGVmYXVsdExvY2F0ZU9wdGlvbnMsdCksIW5hdmlnYXRvci5nZW9sb2NhdGlvbilyZXR1cm4gdGhpcy5faGFuZGxlR2VvbG9jYXRpb25FcnJvcih7Y29kZTowLG1lc3NhZ2U6Ikdlb2xvY2F0aW9uIG5vdCBzdXBwb3J0ZWQuIn0pLHRoaXM7dmFyIGU9by5iaW5kKHRoaXMuX2hhbmRsZUdlb2xvY2F0aW9uUmVzcG9uc2UsdGhpcyksaT1vLmJpbmQodGhpcy5faGFuZGxlR2VvbG9jYXRpb25FcnJvcix0aGlzKTtyZXR1cm4gdC53YXRjaD90aGlzLl9sb2NhdGlvbldhdGNoSWQ9bmF2aWdhdG9yLmdlb2xvY2F0aW9uLndhdGNoUG9zaXRpb24oZSxpLHQpOm5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZSxpLHQpLHRoaXN9LHN0b3BMb2NhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gbmF2aWdhdG9yLmdlb2xvY2F0aW9uJiZuYXZpZ2F0b3IuZ2VvbG9jYXRpb24uY2xlYXJXYXRjaCh0aGlzLl9sb2NhdGlvbldhdGNoSWQpLHRoaXMuX2xvY2F0ZU9wdGlvbnMmJih0aGlzLl9sb2NhdGVPcHRpb25zLnNldFZpZXc9ITEpLHRoaXN9LF9oYW5kbGVHZW9sb2NhdGlvbkVycm9yOmZ1bmN0aW9uKHQpe3ZhciBlPXQuY29kZSxpPXQubWVzc2FnZXx8KDE9PT1lPyJwZXJtaXNzaW9uIGRlbmllZCI6Mj09PWU/InBvc2l0aW9uIHVuYXZhaWxhYmxlIjoidGltZW91dCIpO3RoaXMuX2xvY2F0ZU9wdGlvbnMuc2V0VmlldyYmIXRoaXMuX2xvYWRlZCYmdGhpcy5maXRXb3JsZCgpLHRoaXMuZmlyZSgibG9jYXRpb25lcnJvciIse2NvZGU6ZSxtZXNzYWdlOiJHZW9sb2NhdGlvbiBlcnJvcjogIitpKyIuIn0pfSxfaGFuZGxlR2VvbG9jYXRpb25SZXNwb25zZTpmdW5jdGlvbih0KXt2YXIgZT10LmNvb3Jkcy5sYXRpdHVkZSxpPXQuY29vcmRzLmxvbmdpdHVkZSxuPW5ldyBvLkxhdExuZyhlLGkpLHM9MTgwKnQuY29vcmRzLmFjY3VyYWN5LzQwMDc1MDE3LGE9cy9NYXRoLmNvcyhvLkxhdExuZy5ERUdfVE9fUkFEKmUpLHI9by5sYXRMbmdCb3VuZHMoW2UtcyxpLWFdLFtlK3MsaSthXSksaD10aGlzLl9sb2NhdGVPcHRpb25zO2lmKGguc2V0Vmlldyl7dmFyIGw9TWF0aC5taW4odGhpcy5nZXRCb3VuZHNab29tKHIpLGgubWF4Wm9vbSk7dGhpcy5zZXRWaWV3KG4sbCl9dmFyIHU9e2xhdGxuZzpuLGJvdW5kczpyLHRpbWVzdGFtcDp0LnRpbWVzdGFtcH07Zm9yKHZhciBjIGluIHQuY29vcmRzKSJudW1iZXIiPT10eXBlb2YgdC5jb29yZHNbY10mJih1W2NdPXQuY29vcmRzW2NdKTt0aGlzLmZpcmUoImxvY2F0aW9uZm91bmQiLHUpfX0pfSh3aW5kb3csZG9jdW1lbnQpOw=="></script>
<link href="data:text/css;charset=utf-8,%0Aimg%2Eleaflet%2Dtile%20%7B%0Apadding%3A%200%3B%0Amargin%3A%200%3B%0Aborder%2Dradius%3A%200%3B%0Aborder%3A%20none%3B%0A%7D%0A%2Einfo%20%7B%0Apadding%3A%206px%208px%3B%0Afont%3A%2014px%2F16px%20Arial%2C%20Helvetica%2C%20sans%2Dserif%3B%0Abackground%3A%20white%3B%0Abackground%3A%20rgba%28255%2C255%2C255%2C0%2E8%29%3B%0Abox%2Dshadow%3A%200%200%2015px%20rgba%280%2C0%2C0%2C0%2E2%29%3B%0Aborder%2Dradius%3A%205px%3B%0A%7D%0A%2Elegend%20%7B%0Aline%2Dheight%3A%2018px%3B%0Acolor%3A%20%23555%3B%0A%7D%0A%2Elegend%20svg%20text%20%7B%0Afill%3A%20%23555%3B%0A%7D%0A%2Elegend%20svg%20line%20%7B%0Astroke%3A%20%23555%3B%0A%7D%0A%2Elegend%20i%20%7B%0Awidth%3A%2018px%3B%0Aheight%3A%2018px%3B%0Afloat%3A%20left%3B%0Amargin%2Dright%3A%208px%3B%0Aopacity%3A%200%2E7%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,ZnVuY3Rpb24gcmVjeWNsZSh2YWx1ZXMsIGxlbmd0aCwgaW5QbGFjZSkgewogIGlmIChsZW5ndGggPT09IDAgJiYgIWluUGxhY2UpCiAgICByZXR1cm4gW107CgogIGlmICghKHZhbHVlcyBpbnN0YW5jZW9mIEFycmF5KSkgewogICAgaWYgKGluUGxhY2UpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW4ndCBkbyBpbi1wbGFjZSByZWN5Y2xpbmcgb2YgYSBub24tQXJyYXkgdmFsdWUiKTsKICAgIH0KICAgIHZhbHVlcyA9IFt2YWx1ZXNdOwogIH0KICBpZiAodHlwZW9mKGxlbmd0aCkgPT09ICd1bmRlZmluZWQnKQogICAgbGVuZ3RoID0gdmFsdWVzLmxlbmd0aDsKCiAgdmFyIGRlc3QgPSBpblBsYWNlID8gdmFsdWVzIDogW107CiAgdmFyIG9yaWdMZW5ndGggPSB2YWx1ZXMubGVuZ3RoOwogIHdoaWxlIChkZXN0Lmxlbmd0aCA8IGxlbmd0aCkgewogICAgZGVzdC5wdXNoKHZhbHVlc1tkZXN0Lmxlbmd0aCAlIG9yaWdMZW5ndGhdKTsKICB9CiAgaWYgKGRlc3QubGVuZ3RoID4gbGVuZ3RoKSB7CiAgICBkZXN0LnNwbGljZShsZW5ndGgsIGRlc3QubGVuZ3RoIC0gbGVuZ3RoKTsKICB9CiAgcmV0dXJuIGRlc3Q7Cn0KCmZ1bmN0aW9uIGFzQXJyYXkodmFsdWUpIHsKICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkKICAgIHJldHVybiB2YWx1ZTsKICBlbHNlCiAgICByZXR1cm4gW3ZhbHVlXTsKfQoKdmFyIGRhdGFmcmFtZSA9IChmdW5jdGlvbigpIHsKICB2YXIgZXhwb3J0cyA9IHt9OwoKICB2YXIgRGF0YUZyYW1lID0gZnVuY3Rpb24oKSB7CiAgICB0aGlzLmNvbHVtbnMgPSBbXTsKICAgIHRoaXMuY29sbmFtZXMgPSBbXTsKICAgIHRoaXMuY29sc3RyaWN0ID0gW107CgogICAgdGhpcy5lZmZlY3RpdmVMZW5ndGggPSAwOwogICAgdGhpcy5jb2xpbmRpY2VzID0ge307CiAgfTsKCiAgRGF0YUZyYW1lLnByb3RvdHlwZS5fdXBkYXRlQ2FjaGVkUHJvcGVydGllcyA9IGZ1bmN0aW9uKCkgewogICAgdmFyIHNlbGYgPSB0aGlzOwogICAgdGhpcy5lZmZlY3RpdmVMZW5ndGggPSAwOwogICAgdGhpcy5jb2xpbmRpY2VzID0ge307CgogICAgJC5lYWNoKHRoaXMuY29sdW1ucywgZnVuY3Rpb24oaSwgY29sdW1uKSB7CiAgICAgIHNlbGYuZWZmZWN0aXZlTGVuZ3RoID0gTWF0aC5tYXgoc2VsZi5lZmZlY3RpdmVMZW5ndGgsIGNvbHVtbi5sZW5ndGgpOwogICAgICBzZWxmLmNvbGluZGljZXNbc2VsZi5jb2xuYW1lc1tpXV0gPSBpOwogICAgfSk7CiAgfTsKCiAgRGF0YUZyYW1lLnByb3RvdHlwZS5fY29sSW5kZXggPSBmdW5jdGlvbihjb2xuYW1lKSB7CiAgICB2YXIgaW5kZXggPSB0aGlzLmNvbGluZGljZXNbY29sbmFtZV07CiAgICBpZiAodHlwZW9mKGluZGV4KSA9PT0gJ3VuZGVmaW5lZCcpCiAgICAgIHJldHVybiAtMTsKICAgIHJldHVybiBpbmRleDsKICB9OwoKICBEYXRhRnJhbWUucHJvdG90eXBlLmNvbCA9IGZ1bmN0aW9uKG5hbWUsIHZhbHVlcywgc3RyaWN0KSB7CiAgICBpZiAodHlwZW9mKG5hbWUpICE9PSAnc3RyaW5nJykKICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbHVtbiBuYW1lICInICsgbmFtZSArICciJyk7CgogICAgdmFyIGluZGV4ID0gdGhpcy5fY29sSW5kZXgobmFtZSk7CgogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHsKICAgICAgaWYgKGluZGV4IDwgMCkKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgZWxzZQogICAgICAgIHJldHVybiByZWN5Y2xlKHRoaXMuY29sdW1uc1tpbmRleF0sIHRoaXMuZWZmZWN0aXZlTGVuZ3RoKTsKICAgIH0KCiAgICBpZiAoaW5kZXggPCAwKSB7CiAgICAgIGluZGV4ID0gdGhpcy5jb2xuYW1lcy5sZW5ndGg7CiAgICAgIHRoaXMuY29sbmFtZXMucHVzaChuYW1lKTsKICAgIH0KICAgIHRoaXMuY29sdW1uc1tpbmRleF0gPSBhc0FycmF5KHZhbHVlcyk7CiAgICB0aGlzLmNvbHN0cmljdFtpbmRleF0gPSAhIXN0cmljdDsKCiAgICAvLyBUT0RPOiBWYWxpZGF0ZSBzdHJpY3RuZXNzIChlbnN1cmUgbGVuZ3RocyBtYXRjaCB1cCB3aXRoIG90aGVyIHN0cmljdHMpCgogICAgdGhpcy5fdXBkYXRlQ2FjaGVkUHJvcGVydGllcygpOwoKICAgIHJldHVybiB0aGlzOwogIH07CgogIERhdGFGcmFtZS5wcm90b3R5cGUuY2JpbmQgPSBmdW5jdGlvbihvYmosIHN0cmljdCkgewogICAgdmFyIHNlbGYgPSB0aGlzLCBuYW1lOwogICAgJC5lYWNoKG9iaiwgZnVuY3Rpb24obmFtZSwgY29sZGF0YSkgewogICAgICBzZWxmLmNvbChuYW1lLCBjb2xkYXRhKTsKICAgIH0pOwogICAgcmV0dXJuIHRoaXM7CiAgfTsKCiAgRGF0YUZyYW1lLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihyb3csIGNvbCkgewogICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgIGlmIChyb3cgPiB0aGlzLmVmZmVjdGl2ZUxlbmd0aCkKICAgICAgdGhyb3cgbmV3IEVycm9yKCdSb3cgYXJndW1lbnQgd2FzIG91dCBvZiBib3VuZHM6ICcgKyByb3cgKyAnID4gJyArIHRoaXMuZWZmZWN0aXZlTGVuZ3RoKTsKCiAgICB2YXIgY29sSW5kZXggPSAtMTsKICAgIGlmICh0eXBlb2YoY29sKSA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgdmFyIHJvd0RhdGEgPSB7fTsKICAgICAgJC5lYWNoKHRoaXMuY29sbmFtZXMsIGZ1bmN0aW9uKGksIG5hbWUpIHsKICAgICAgICByb3dEYXRhW25hbWVdID0gc2VsZi5jb2x1bW5zW2ldW3JvdyAlIHNlbGYuY29sdW1uc1tpXS5sZW5ndGhdOwogICAgICB9KTsKICAgICAgcmV0dXJuIHJvd0RhdGE7CiAgICB9IGVsc2UgaWYgKHR5cGVvZihjb2wpID09PSAnc3RyaW5nJykgewogICAgICBjb2xJbmRleCA9IHRoaXMuX2NvbEluZGV4KGNvbCk7CiAgICB9IGVsc2UgaWYgKHR5cGVvZihjb2wpID09PSAnbnVtYmVyJykgewogICAgICBjb2xJbmRleCA9IGNvbDsKICAgIH0KICAgIGlmIChjb2xJbmRleCA8IDAgfHwgY29sSW5kZXggPiB0aGlzLmNvbHVtbnMubGVuZ3RoKQogICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gY29sdW1uIGluZGV4OiAnICsgY29sKTsKCiAgICByZXR1cm4gdGhpcy5jb2x1bW5zW2NvbEluZGV4XVtyb3cgJSB0aGlzLmNvbHVtbnNbY29sSW5kZXhdLmxlbmd0aF07CiAgfTsKCiAgRGF0YUZyYW1lLnByb3RvdHlwZS5ucm93ID0gZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5lZmZlY3RpdmVMZW5ndGg7CiAgfTsKCiAgZnVuY3Rpb24gdGVzdCgpIHsKICAgIHZhciBkZiA9IG5ldyBEYXRhRnJhbWUoKTsKICAgIGRmLmNvbCgic3BlZWQiLCBbNCwgNCwgNywgNywgOCwgOSwgMTAsIDEwLCAxMCwgMTEsIDExLCAxMiwgMTIsIDEyLCAxMiwgMTMsIDEzLCAxMywgMTMsIDE0LCAxNCwgMTQsIDE0LCAxNSwgMTUsIDE1LCAxNiwgMTYsIDE3LCAxNywgMTcsIDE4LCAxOCwgMTgsIDE4LCAxOSwgMTksIDE5LCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIyLCAyMywgMjQsIDI0LCAyNCwgMjQsIDI1XSkKICAgICAgLmNvbCgiZGlzdCIsIFsyLCAxMCwgNCwgMjIsIDE2LCAxMCwgMTgsIDI2LCAzNCwgMTcsIDI4LCAxNCwgMjAsIDI0LCAyOCwgMjYsIDM0LCAzNCwgNDYsIDI2LCAzNiwgNjAsIDgwLCAyMCwgMjYsIDU0LCAzMiwgNDAsIDMyLCA0MCwgNTAsIDQyLCA1NiwgNzYsIDg0LCAzNiwgNDYsIDY4LCAzMiwgNDgsIDUyLCA1NiwgNjQsIDY2LCA1NCwgNzAsIDkyLCA5MywgMTIwLCA4NV0pCiAgICAgIC5jb2woImNvbG9yIiwgWyJ5ZWxsb3ciLCAicmVkIl0pCiAgICAgIC5jYmluZCh7CiAgICAgICAgIk1ha2UiIDogWyJUb3lvdGEiLCAiQ2FkaWxsYWMiLCAiQk1XIl0sCiAgICAgICAgIk1vZGVsIiA6IFsiQ29yb2xsYSIsICJDVFMiLCAiNDM1aSJdCiAgICAgIH0pCiAgICA7CiAgICBjb25zb2xlLmxvZyhkZi5nZXQoOSwgInNwZWVkIikpOwogICAgY29uc29sZS5sb2coZGYuZ2V0KDksICJkaXN0IikpOwogICAgY29uc29sZS5sb2coZGYuZ2V0KDksICJjb2xvciIpKTsKICAgIGNvbnNvbGUubG9nKGRmLmdldCg5LCAiTWFrZSIpKTsKICAgIGNvbnNvbGUubG9nKGRmLmdldCg5LCAiTW9kZWwiKSk7CiAgICBjb25zb2xlLmxvZyhkZi5nZXQoOSkpOwoKICB9CgogIHJldHVybiB7CiAgICBjcmVhdGU6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbmV3IERhdGFGcmFtZSgpOwogICAgfQogIH07Cgp9KSgpOwoKKGZ1bmN0aW9uKCkgewogIC8vIFRoaXMgY2xhc3Mgc2ltdWxhdGVzIGEgbWlwbWFwLCB3aGljaCBzaHJpbmtzIGltYWdlcyBieSBwb3dlcnMgb2YgdHdvLiBUaGlzCiAgLy8gc3RlcHdpc2UgcmVkdWN0aW9uIHJlc3VsdHMgaW4gInBpeGVsLXBlcmZlY3QgZG93bnNjYWxpbmciICh3aGVyZSBldmVyeQogIC8vIHBpeGVsIG9mIHRoZSBvcmlnaW5hbCBpbWFnZSBoYXMgc29tZSBjb250cmlidXRpb24gdG8gdGhlIGRvd25zY2FsZWQgaW1hZ2UpCiAgLy8gYXMgb3Bwb3NlZCB0byBhIHNpbmdsZS1zdGVwIGRvd25zY2FsaW5nIHdoaWNoIHdpbGwgZGlzY2FyZCBhIGxvdCBvZiBkYXRhCiAgLy8gKGFuZCB3aXRoIHNwYXJzZSBpbWFnZXMgYXQgc21hbGwgc2NhbGVzIGNhbiBnaXZlIHZlcnkgc3VycHJpc2luZyByZXN1bHRzKS4KICBmdW5jdGlvbiBNaXBtYXBwZXIoaW1nKSB7CiAgICB0aGlzLl9sYXllcnMgPSBbaW1nXTsKICB9CiAgLy8gVGhlIHZhcmlvdXMgZnVuY3Rpb25zIG9uIHRoaXMgY2xhc3MgdGFrZSBhIGNhbGxiYWNrIGZ1bmN0aW9uIEJVVCBNQVkgT1IgTUFZCiAgLy8gTk9UIGFjdHVhbGx5IGJlaGF2ZSBhc3luY2hyb25vdXNseS4KICBNaXBtYXBwZXIucHJvdG90eXBlLmdldEJ5U2l6ZSA9IGZ1bmN0aW9uKGRlc2lyZWRXaWR0aCwgZGVzaXJlZEhlaWdodCwgY2FsbGJhY2spIHsKICAgIHZhciBzZWxmID0gdGhpczsKICAgIHZhciBpID0gMDsKICAgIHZhciBsYXN0SW1nID0gdGhpcy5fbGF5ZXJzWzBdOwogICAgZnVuY3Rpb24gdGVzdE5leHQoKSB7CiAgICAgIHNlbGYuZ2V0QnlJbmRleChpLCBmdW5jdGlvbihpbWcpIHsKICAgICAgICAvLyBJZiBjdXJyZW50IGltYWdlIGlzIGludmFsaWQgKGkuZS4gdG9vIHNtYWxsIHRvIGJlIHJlbmRlcmVkKSBvcgogICAgICAgIC8vIGl0J3Mgc21hbGxlciB0aGFuIHdoYXQgd2Ugd2FudGVkLCByZXR1cm4gdGhlIGxhc3Qga25vd24gZ29vZCBpbWFnZS4KICAgICAgICBpZiAoIWltZyB8fCBpbWcud2lkdGggPCBkZXNpcmVkV2lkdGggfHwgaW1nLmhlaWdodCA8IGRlc2lyZWRIZWlnaHQpIHsKICAgICAgICAgIGNhbGxiYWNrKGxhc3RJbWcpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBsYXN0SW1nID0gaW1nOwogICAgICAgICAgaSsrOwogICAgICAgICAgdGVzdE5leHQoKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogICAgdGVzdE5leHQoKTsKICB9OwogIE1pcG1hcHBlci5wcm90b3R5cGUuZ2V0QnlJbmRleCA9IGZ1bmN0aW9uKGksIGNhbGxiYWNrKSB7CiAgICB2YXIgc2VsZiA9IHRoaXM7CiAgICBpZiAodGhpcy5fbGF5ZXJzW2ldKSB7CiAgICAgIGNhbGxiYWNrKHRoaXMuX2xheWVyc1tpXSk7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICB0aGlzLmdldEJ5SW5kZXgoaS0xLCBmdW5jdGlvbihwcmV2SW1nKSB7CiAgICAgIGlmICghcHJldkltZykgewogICAgICAgIC8vIHByZXZJbWcgY291bGQgbm90IGJlIGNhbGN1bGF0ZWQgKHRvbyBzbWFsbCwgcG9zc2libHkpCiAgICAgICAgY2FsbGJhY2sobnVsbCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmIChwcmV2SW1nLndpZHRoIDwgMiB8fCBwcmV2SW1nLmhlaWdodCA8IDIpIHsKICAgICAgICAvLyBDYW4ndCByZWR1Y2UgdGhpcyBpbWFnZSBhbnkgZnVydGhlcgogICAgICAgIGNhbGxiYWNrKG51bGwpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAvLyBJZiByZWR1Y2UgZXZlciBiZWNvbWVzIHRydWx5IGFzeW5jaHJvbm91cywgd2Ugc2hvdWxkIHN0dWZmIGEgcHJvbWlzZSBvcgogICAgICAvLyBzb21ldGhpbmcgaW50byBzZWxmLl9sYXllcnNbaV0gYmVmb3JlIGNhbGxpbmcgc2VsZi5yZWR1Y2UoKSwgdG8gcHJldmVudAogICAgICAvLyByZWR1bmRhbnQgcmVkdWNlIG9wZXJhdGlvbnMgZnJvbSBoYXBwZW5pbmcuCiAgICAgIHNlbGYucmVkdWNlKHByZXZJbWcsIGZ1bmN0aW9uKHJlZHVjZWRJbWcpIHsKICAgICAgICBzZWxmLl9sYXllcnNbaV0gPSByZWR1Y2VkSW1nOwogICAgICAgIGNhbGxiYWNrKHJlZHVjZWRJbWcpOwogICAgICAgIHJldHVybjsKICAgICAgfSk7CiAgICB9KTsKICB9OwogIE1pcG1hcHBlci5wcm90b3R5cGUucmVkdWNlID0gZnVuY3Rpb24oaW1nLCBjYWxsYmFjaykgewogICAgICB2YXIgaW1nRGF0YUNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwogICAgICBpbWdEYXRhQ2FudmFzLndpZHRoID0gTWF0aC5jZWlsKGltZy53aWR0aCAvIDIpOwogICAgICBpbWdEYXRhQ2FudmFzLmhlaWdodCA9IE1hdGguY2VpbChpbWcuaGVpZ2h0IC8gMik7CiAgICAgIGltZ0RhdGFDYW52YXMuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWdEYXRhQ2FudmFzKTsKICAgICAgdHJ5IHsKICAgICAgICB2YXIgaW1nRGF0YUN0eCA9IGltZ0RhdGFDYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgICBpbWdEYXRhQ3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIGltZy53aWR0aC8yLCBpbWcuaGVpZ2h0LzIpOwogICAgICAgIGNhbGxiYWNrKGltZ0RhdGFDYW52YXMpOwogICAgICB9IGZpbmFsbHkgewogICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaW1nRGF0YUNhbnZhcyk7CiAgICAgIH0KCiAgfTsKCiAgZnVuY3Rpb24gTGF5ZXJNYW5hZ2VyKG1hcCkgewogICAgdGhpcy5fbWFwID0gbWFwOwoKICAgIC8vIEJFR0lOIGxheWVyIGluZGljZXMKCiAgICAvLyB7PGdyb3VwbmFtZT46IHs8c3RhbXA+OiBsYXllcn19CiAgICB0aGlzLl9ieUdyb3VwID0ge307CiAgICAvLyB7PGNhdGVnb3J5TmFtZT46IHs8c3RhbXA+OiBsYXllcn19CiAgICB0aGlzLl9ieUNhdGVnb3J5ID0ge307CiAgICAvLyB7PGNhdGVnb3J5TmFtZV9sYXllcklkPjogbGF5ZXJ9CiAgICB0aGlzLl9ieUxheWVySWQgPSB7fTsKICAgIC8vIHs8c3RhbXA+OiB7CiAgICAvLyAgICAgICAgICAgICAiZ3JvdXAiOiA8Z3JvdXBuYW1lPiwKICAgIC8vICAgICAgICAgICAgICJsYXllcklkIjogPGxheWVySWQ+LAogICAgLy8gICAgICAgICAgICAgImNhdGVnb3J5IjogPGNhdGVnb3J5PiwKICAgIC8vICAgICAgICAgICAgICJjb250YWluZXIiOiA8Y29udGFpbmVyPgogICAgLy8gICAgICAgICAgIH0KICAgIC8vIH0KICAgIHRoaXMuX2J5U3RhbXAgPSB7fTsKCiAgICAvLyBFTkQgbGF5ZXIgaW5kaWNlcwoKICAgIC8vIHs8Y2F0ZWdvcnlOYW1lPjogTC5sYXllckdyb3VwfQogICAgdGhpcy5fY2F0ZWdvcnlDb250YWluZXJzID0ge307CiAgICAvLyB7PGdyb3VwTmFtZT46IEwubGF5ZXJHcm91cH0KICAgIHRoaXMuX2dyb3VwQ29udGFpbmVycyA9IHt9OwogIH0KICBMYXllck1hbmFnZXIucHJvdG90eXBlLmFkZExheWVyID0gZnVuY3Rpb24obGF5ZXIsIGNhdGVnb3J5LCBsYXllcklkLCBncm91cCkgewogICAgLy8gV2FzIGEgZ3JvdXAgcHJvdmlkZWQ/CiAgICB2YXIgaGFzSWQgPSB0eXBlb2YobGF5ZXJJZCkgPT09ICJzdHJpbmciOwogICAgdmFyIGdyb3VwZWQgPSB0eXBlb2YoZ3JvdXApID09PSAic3RyaW5nIjsKCiAgICB2YXIgc3RhbXAgPSBMLlV0aWwuc3RhbXAobGF5ZXIpOwoKICAgIC8vIFRoaXMgd2lsbCBiZSB0aGUgZGVmYXVsdCBsYXllciBncm91cCB0byBhZGQgdGhlIGxheWVyIHRvLgogICAgLy8gV2UgbWF5IG92ZXJ3cml0ZSB0aGlzIHZhciBiZWZvcmUgdXNpbmcgaXQgKGkuZS4gaWYgYSBncm91cCBpcyBhc3NpZ25lZCkuCiAgICAvLyBUaGlzIG9uZSBsaW5lciBjcmVhdGVzIHRoZSBfY2F0ZWdvcnlDb250YWluZXJzW2NhdGVnb3J5XSBlbnRyeSBpZiBpdAogICAgLy8gZG9lc24ndCBhbHJlYWR5IGV4aXN0LgogICAgdmFyIGNvbnRhaW5lciA9IHRoaXMuX2NhdGVnb3J5Q29udGFpbmVyc1tjYXRlZ29yeV0gPQogICAgICAgIHRoaXMuX2NhdGVnb3J5Q29udGFpbmVyc1tjYXRlZ29yeV0gfHwgTC5sYXllckdyb3VwKCkuYWRkVG8odGhpcy5fbWFwKTsKCiAgICB2YXIgb2xkTGF5ZXIgPSBudWxsOwogICAgaWYgKGhhc0lkKSB7CiAgICAgIC8vIEZpcnN0LCByZW1vdmUgYW55IGxheWVyIHdpdGggdGhlIHNhbWUgY2F0ZWdvcnkgYW5kIGxheWVySWQKICAgICAgdmFyIHByZWZpeGVkTGF5ZXJJZCA9IHRoaXMuX2xheWVySWRLZXkoY2F0ZWdvcnksIGxheWVySWQpOwogICAgICBvbGRMYXllciA9IHRoaXMuX2J5TGF5ZXJJZFtwcmVmaXhlZExheWVySWRdOwogICAgICBpZiAob2xkTGF5ZXIpIHsKICAgICAgICB0aGlzLl9yZW1vdmVMYXllcihvbGRMYXllcik7CiAgICAgIH0KCiAgICAgIC8vIFVwZGF0ZSBsYXllcklkIGluZGV4CiAgICAgIHRoaXMuX2J5TGF5ZXJJZFtwcmVmaXhlZExheWVySWRdID0gbGF5ZXI7CiAgICB9CgogICAgLy8gVXBkYXRlIGdyb3VwIGluZGV4CiAgICBpZiAoZ3JvdXBlZCkgewogICAgICB0aGlzLl9ieUdyb3VwW2dyb3VwXSA9IHRoaXMuX2J5R3JvdXBbZ3JvdXBdIHx8IHt9OwogICAgICB0aGlzLl9ieUdyb3VwW2dyb3VwXVtzdGFtcF0gPSBsYXllcjsKCiAgICAgIC8vIFNpbmNlIGEgZ3JvdXAgaXMgYXNzaWduZWQsIGRvbid0IGFkZCB0aGUgbGF5ZXIgdG8gdGhlIGNhdGVnb3J5J3MgbGF5ZXIKICAgICAgLy8gZ3JvdXA7IGluc3RlYWQsIHVzZSB0aGUgZ3JvdXAncyBsYXllciBncm91cC4KICAgICAgLy8gVGhpcyBvbmUgbGluZXIgY3JlYXRlcyB0aGUgX2dyb3VwQ29udGFpbmVyc1tncm91cF0gZW50cnkgaWYgaXQgZG9lc24ndAogICAgICAvLyBhbHJlYWR5IGV4aXN0LgogICAgICBjb250YWluZXIgPSB0aGlzLmdldExheWVyR3JvdXAoZ3JvdXAsIHRydWUpOwogICAgfQoKICAgIC8vIFVwZGF0ZSBjYXRlZ29yeSBpbmRleAogICAgdGhpcy5fYnlDYXRlZ29yeVtjYXRlZ29yeV0gPSB0aGlzLl9ieUNhdGVnb3J5W2NhdGVnb3J5XSB8fCB7fTsKICAgIHRoaXMuX2J5Q2F0ZWdvcnlbY2F0ZWdvcnldW3N0YW1wXSA9IGxheWVyOwoKICAgIC8vIFVwZGF0ZSBzdGFtcCBpbmRleAogICAgdGhpcy5fYnlTdGFtcFtzdGFtcF0gPSB7CiAgICAgIGxheWVyOiBsYXllciwKICAgICAgZ3JvdXA6IGdyb3VwLAogICAgICBsYXllcklkOiBsYXllcklkLAogICAgICBjYXRlZ29yeTogY2F0ZWdvcnksCiAgICAgIGNvbnRhaW5lcjogY29udGFpbmVyCiAgICB9OwoKICAgIC8vIEFkZCB0byBjb250YWluZXIKICAgIGNvbnRhaW5lci5hZGRMYXllcihsYXllcik7CgogICAgcmV0dXJuIG9sZExheWVyOwogIH07CiAgTGF5ZXJNYW5hZ2VyLnByb3RvdHlwZS5nZXRMYXllciA9IGZ1bmN0aW9uKGNhdGVnb3J5LCBsYXllcklkKSB7CiAgICByZXR1cm4gdGhpcy5fYnlMYXllcklkW3RoaXMuX2xheWVySWRLZXkoY2F0ZWdvcnksIGxheWVySWQpXTsKICB9OwogIExheWVyTWFuYWdlci5wcm90b3R5cGUucmVtb3ZlTGF5ZXIgPSBmdW5jdGlvbihjYXRlZ29yeSwgbGF5ZXJJZCkgewogICAgLy8gRmluZCBsYXllciBpbmZvCiAgICB2YXIgbGF5ZXIgPSB0aGlzLl9ieUxheWVySWRbdGhpcy5fbGF5ZXJJZEtleShjYXRlZ29yeSwgbGF5ZXJJZCldOwogICAgaWYgKCFsYXllcikgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICB0aGlzLl9yZW1vdmVMYXllcihsYXllcik7CiAgICByZXR1cm4gdHJ1ZTsKICB9OwogIExheWVyTWFuYWdlci5wcm90b3R5cGUuY2xlYXJMYXllcnMgPSBmdW5jdGlvbihjYXRlZ29yeSkgewogICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgIC8vIEZpbmQgYWxsIGxheWVycyBpbiBfYnlDYXRlZ29yeVtjYXRlZ29yeV0KICAgIHZhciBjYXRUYWJsZSA9IHRoaXMuX2J5Q2F0ZWdvcnlbY2F0ZWdvcnldOwogICAgaWYgKCFjYXRUYWJsZSkgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8gUmVtb3ZlIGFsbCBsYXllcnMuIE1ha2UgY29weSBvZiBrZXlzIHRvIGF2b2lkIG11dGF0aW5nIHRoZSBjb2xsZWN0aW9uCiAgICAvLyBiZWhpbmQgdGhlIGl0ZXJhdG9yIHlvdSdyZSBhY2Nlc3NpbmcuCiAgICB2YXIgc3RhbXBzID0gW107CiAgICAkLmVhY2goY2F0VGFibGUsIGZ1bmN0aW9uKGssIHYpIHsKICAgICAgc3RhbXBzLnB1c2goayk7CiAgICB9KTsKICAgICQuZWFjaChzdGFtcHMsIGZ1bmN0aW9uKGksIHN0YW1wKSB7CiAgICAgIHNlbGYuX3JlbW92ZUxheWVyKHN0YW1wKTsKICAgIH0pOwogIH07CiAgTGF5ZXJNYW5hZ2VyLnByb3RvdHlwZS5nZXRMYXllckdyb3VwID0gZnVuY3Rpb24oZ3JvdXAsIGVuc3VyZUV4aXN0cykgewogICAgdmFyIGcgPSB0aGlzLl9ncm91cENvbnRhaW5lcnNbZ3JvdXBdOwogICAgaWYgKGVuc3VyZUV4aXN0cyAmJiAhZykgewogICAgICB0aGlzLl9ieUdyb3VwW2dyb3VwXSA9IHRoaXMuX2J5R3JvdXBbZ3JvdXBdIHx8IHt9OwogICAgICBnID0gdGhpcy5fZ3JvdXBDb250YWluZXJzW2dyb3VwXSA9IEwubGF5ZXJHcm91cCgpOwogICAgICBnLmdyb3VwbmFtZSA9IGdyb3VwOwogICAgICBnLmFkZFRvKHRoaXMuX21hcCk7CiAgICB9CiAgICByZXR1cm4gZzsKICB9OwogIExheWVyTWFuYWdlci5wcm90b3R5cGUuZ2V0R3JvdXBOYW1lRnJvbUxheWVyR3JvdXAgPSBmdW5jdGlvbihsYXllckdyb3VwKSB7CiAgICByZXR1cm4gbGF5ZXJHcm91cC5ncm91cG5hbWU7CiAgfTsKICBMYXllck1hbmFnZXIucHJvdG90eXBlLmdldFZpc2libGVHcm91cHMgPSBmdW5jdGlvbigpIHsKICAgIHZhciBzZWxmID0gdGhpczsKICAgIHZhciByZXN1bHQgPSBbXTsKICAgICQuZWFjaCh0aGlzLl9ncm91cENvbnRhaW5lcnMsIGZ1bmN0aW9uKGssIHYpIHsKICAgICAgaWYgKHNlbGYuX21hcC5oYXNMYXllcih2KSkgewogICAgICAgIHJlc3VsdC5wdXNoKGspOwogICAgICB9CiAgICB9KTsKICAgIHJldHVybiByZXN1bHQ7CiAgfTsKICBMYXllck1hbmFnZXIucHJvdG90eXBlLmNsZWFyR3JvdXAgPSBmdW5jdGlvbihncm91cCkgewogICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgIC8vIEZpbmQgYWxsIGxheWVycyBpbiBfYnlHcm91cFtncm91cF0KICAgIHZhciBncm91cFRhYmxlID0gdGhpcy5fYnlHcm91cFtncm91cF07CiAgICBpZiAoIWdyb3VwVGFibGUpIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vIFJlbW92ZSBhbGwgbGF5ZXJzLiBNYWtlIGNvcHkgb2Yga2V5cyB0byBhdm9pZCBtdXRhdGluZyB0aGUgY29sbGVjdGlvbgogICAgLy8gYmVoaW5kIHRoZSBpdGVyYXRvciB5b3UncmUgYWNjZXNzaW5nLgogICAgdmFyIHN0YW1wcyA9IFtdOwogICAgJC5lYWNoKGdyb3VwVGFibGUsIGZ1bmN0aW9uKGssIHYpIHsKICAgICAgc3RhbXBzLnB1c2goayk7CiAgICB9KTsKICAgICQuZWFjaChzdGFtcHMsIGZ1bmN0aW9uKGksIHN0YW1wKSB7CiAgICAgIHNlbGYuX3JlbW92ZUxheWVyKHN0YW1wKTsKICAgIH0pOwogIH07CiAgTGF5ZXJNYW5hZ2VyLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uKCkgewogICAgZnVuY3Rpb24gY2xlYXJMYXllckdyb3VwKGtleSwgbGF5ZXJHcm91cCkgewogICAgICBsYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7CiAgICB9CiAgICAvLyBDbGVhciBhbGwgaW5kaWNlcyBhbmQgbGF5ZXJHcm91cHMKICAgIHRoaXMuX2J5R3JvdXAgPSB7fTsKICAgIHRoaXMuX2J5Q2F0ZWdvcnkgPSB7fTsKICAgIHRoaXMuX2J5TGF5ZXJJZCA9IHt9OwogICAgdGhpcy5fYnlTdGFtcCA9IHt9OwogICAgJC5lYWNoKHRoaXMuX2NhdGVnb3J5Q29udGFpbmVycywgY2xlYXJMYXllckdyb3VwKTsKICAgIHRoaXMuX2NhdGVnb3J5Q29udGFpbmVycyA9IHt9OwogICAgJC5lYWNoKHRoaXMuX2dyb3VwQ29udGFpbmVycywgY2xlYXJMYXllckdyb3VwKTsKICAgIHRoaXMuX2dyb3VwQ29udGFpbmVycyA9IHt9OwogIH07CiAgTGF5ZXJNYW5hZ2VyLnByb3RvdHlwZS5fcmVtb3ZlTGF5ZXIgPSBmdW5jdGlvbihsYXllcikgewogICAgdmFyIHN0YW1wOwogICAgaWYgKHR5cGVvZihsYXllcikgPT09ICJzdHJpbmciKSB7CiAgICAgIHN0YW1wID0gbGF5ZXI7CiAgICB9IGVsc2UgewogICAgICBzdGFtcCA9IEwuVXRpbC5zdGFtcChsYXllcik7CiAgICB9CgogICAgdmFyIGxheWVySW5mbyA9IHRoaXMuX2J5U3RhbXBbc3RhbXBdOwogICAgaWYgKCFsYXllckluZm8pIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIGxheWVySW5mby5jb250YWluZXIucmVtb3ZlTGF5ZXIoc3RhbXApOwogICAgaWYgKHR5cGVvZihsYXllckluZm8uZ3JvdXApID09PSAic3RyaW5nIikgewogICAgICBkZWxldGUgdGhpcy5fYnlHcm91cFtsYXllckluZm8uZ3JvdXBdW3N0YW1wXTsKICAgIH0KICAgIGlmICh0eXBlb2YobGF5ZXJJbmZvLmxheWVySWQpID09PSAic3RyaW5nIikgewogICAgICBkZWxldGUgdGhpcy5fYnlMYXllcklkW3RoaXMuX2xheWVySWRLZXkobGF5ZXJJbmZvLmNhdGVnb3J5LCBsYXllckluZm8ubGF5ZXJJZCldOwogICAgfQogICAgZGVsZXRlIHRoaXMuX2J5Q2F0ZWdvcnlbbGF5ZXJJbmZvLmNhdGVnb3J5XVtzdGFtcF07CiAgICBkZWxldGUgdGhpcy5fYnlTdGFtcFtzdGFtcF07CiAgfTsKICBMYXllck1hbmFnZXIucHJvdG90eXBlLl9sYXllcklkS2V5ID0gZnVuY3Rpb24oY2F0ZWdvcnksIGxheWVySWQpIHsKICAgIHJldHVybiBjYXRlZ29yeSArICJcbiIgKyBsYXllcklkOwogIH07CgogIGZ1bmN0aW9uIENvbnRyb2xTdG9yZShtYXApIHsKICAgIHRoaXMuX2NvbnRyb2xzTm9JZCA9IFtdOwogICAgdGhpcy5fY29udHJvbHNCeUlkID0ge307CiAgICB0aGlzLl9tYXAgPSBtYXAKICB9CgogIENvbnRyb2xTdG9yZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24oY29udHJvbCwgaWQsIGh0bWwpIHsKICAgIGlmICh0eXBlb2YoaWQpICE9PSAndW5kZWZpbmVkJyAmJiBpZCAhPT0gbnVsbCkgewogICAgICBpZiAodGhpcy5fY29udHJvbHNCeUlkW2lkXSkgewogICAgICAgIHRoaXMuX21hcC5yZW1vdmVDb250cm9sKHRoaXMuX2NvbnRyb2xzQnlJZFtpZF0pOwogICAgICB9CiAgICAgIHRoaXMuX2NvbnRyb2xzQnlJZFtpZF0gPSBjb250cm9sOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5fY29udHJvbHNOb0lkLnB1c2goY29udHJvbCkKICAgIH0KICAgIHRoaXMuX21hcC5hZGRDb250cm9sKGNvbnRyb2wpOwogIH07CgogIENvbnRyb2xTdG9yZS5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24oaWQpIHsKICAgIGlmICh0aGlzLl9jb250cm9sc0J5SWRbaWRdKSB7CiAgICAgIHZhciBjb250cm9sID0gdGhpcy5fY29udHJvbHNCeUlkW2lkXTsKICAgICAgdGhpcy5fbWFwLnJlbW92ZUNvbnRyb2woY29udHJvbCk7CiAgICAgIGRlbGV0ZSB0aGlzLl9jb250cm9sc0J5SWRbaWRdOwogICAgfQogIH07CgogIENvbnRyb2xTdG9yZS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbigpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fY29udHJvbHNOb0lkLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBjb250cm9sID0gdGhpcy5fY29udHJvbHNOb0lkW2ldOwogICAgICB0aGlzLl9tYXAucmVtb3ZlQ29udHJvbChjb250cm9sKTsKICAgIH07CiAgICB0aGlzLl9jb250cm9sc05vSWQgPSBbXTsKCiAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy5fY29udHJvbHNCeUlkKSB7CiAgICAgIHZhciBjb250cm9sID0gdGhpcy5fY29udHJvbHNCeUlkW2tleV07CiAgICAgIHRoaXMuX21hcC5yZW1vdmVDb250cm9sKGNvbnRyb2wpCiAgICB9CiAgICB0aGlzLl9jb250cm9sc0J5SWQgPSB7fQogIH0KCiAgZnVuY3Rpb24gQ2x1c3RlckxheWVyU3RvcmUoZ3JvdXApIHsKICAgIHRoaXMuX2xheWVycyA9IHt9OwogICAgdGhpcy5fZ3JvdXAgPSBncm91cDsKICB9CgogIENsdXN0ZXJMYXllclN0b3JlLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbihsYXllciwgaWQpIHsKICAgIGlmICh0eXBlb2YoaWQpICE9PSAndW5kZWZpbmVkJyAmJiBpZCAhPT0gbnVsbCkgewogICAgICBpZiAodGhpcy5fbGF5ZXJzW2lkXSkgewogICAgICAgIHRoaXMuX2dyb3VwLnJlbW92ZUxheWVyKHRoaXMuX2xheWVyc1tpZF0pOwogICAgICB9CiAgICAgIHRoaXMuX2xheWVyc1tpZF0gPSBsYXllcjsKICAgIH0KICAgIHRoaXMuX2dyb3VwLmFkZExheWVyKGxheWVyKTsKICB9OwoKICBDbHVzdGVyTGF5ZXJTdG9yZS5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24oaWQpIHsKICAgIGlmICh0eXBlb2YoaWQpID09PSAndW5kZWZpbmVkJyB8fCBpZCA9PT0gbnVsbCkgewogICAgICByZXR1cm47CiAgICB9CgogICAgaWQgPSBhc0FycmF5KGlkKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaWQubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKHRoaXMuX2xheWVyc1tpZFtpXV0pIHsKICAgICAgICB0aGlzLl9ncm91cC5yZW1vdmVMYXllcih0aGlzLl9sYXllcnNbaWRbaV1dKTsKICAgICAgICBkZWxldGUgdGhpcy5fbGF5ZXJzW2lkW2ldXTsKICAgICAgfQogICAgfQogIH07CgogIENsdXN0ZXJMYXllclN0b3JlLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uKCkgewogICAgdGhpcy5fbGF5ZXJzID0ge307CiAgICB0aGlzLl9ncm91cC5jbGVhckxheWVycygpOwogIH07CgogIGZ1bmN0aW9uIG1vdXNlSGFuZGxlcihtYXBJZCwgbGF5ZXJJZCwgZ3JvdXAsIGV2ZW50TmFtZSwgZXh0cmFJbmZvKSB7CiAgICByZXR1cm4gZnVuY3Rpb24oZSkgewogICAgICBpZiAoIUhUTUxXaWRnZXRzLnNoaW55TW9kZSkgcmV0dXJuOwoKICAgICAgdmFyIGV2ZW50SW5mbyA9ICQuZXh0ZW5kKAogICAgICAgIHsKICAgICAgICAgIGlkOiBsYXllcklkLAogICAgICAgICAgJy5ub25jZSc6IE1hdGgucmFuZG9tKCkgIC8vIGZvcmNlIHJlYWN0aXZpdHkKICAgICAgICB9LAogICAgICAgIGdyb3VwICE9PSBudWxsID8ge2dyb3VwOiBncm91cH0gOiBudWxsLAogICAgICAgIGUudGFyZ2V0LmdldExhdExuZyA/IGUudGFyZ2V0LmdldExhdExuZygpIDogZS5sYXRsbmcsCiAgICAgICAgZXh0cmFJbmZvCiAgICAgICk7CgogICAgICBTaGlueS5vbklucHV0Q2hhbmdlKG1hcElkICsgJ18nICsgZXZlbnROYW1lLCBldmVudEluZm8pOwogICAgfTsKICB9CgogIC8vIFNlbmQgdXBkYXRlZCBib3VuZHMgYmFjayB0byBhcHAuIFRha2VzIGEgbGVhZmxldCBldmVudCBvYmplY3QgYXMgaW5wdXQuCiAgZnVuY3Rpb24gdXBkYXRlQm91bmRzKG1hcCkgewogICAgdmFyIGlkID0gbWFwLmdldENvbnRhaW5lcigpLmlkOwogICAgdmFyIGJvdW5kcyA9IG1hcC5nZXRCb3VuZHMoKTsKCiAgICBTaGlueS5vbklucHV0Q2hhbmdlKGlkICsgJ19ib3VuZHMnLCB7CiAgICAgIG5vcnRoOiBib3VuZHMuZ2V0Tm9ydGhFYXN0KCkubGF0LAogICAgICBlYXN0OiBib3VuZHMuZ2V0Tm9ydGhFYXN0KCkubG5nLAogICAgICBzb3V0aDogYm91bmRzLmdldFNvdXRoV2VzdCgpLmxhdCwKICAgICAgd2VzdDogYm91bmRzLmdldFNvdXRoV2VzdCgpLmxuZwogICAgfSk7CiAgICBTaGlueS5vbklucHV0Q2hhbmdlKGlkICsgJ196b29tJywgbWFwLmdldFpvb20oKSk7CiAgfQoKICB3aW5kb3cuTGVhZmxldFdpZGdldCA9IHt9OwogIHZhciBtZXRob2RzID0gd2luZG93LkxlYWZsZXRXaWRnZXQubWV0aG9kcyA9IHt9OwoKICBtZXRob2RzLmNsZWFyR3JvdXAgPSBmdW5jdGlvbihncm91cCkgewogICAgdmFyIHNlbGYgPSB0aGlzOwogICAgJC5lYWNoKGFzQXJyYXkoZ3JvdXApLCBmdW5jdGlvbihpLCB2KSB7CiAgICAgIHNlbGYubGF5ZXJNYW5hZ2VyLmNsZWFyR3JvdXAodik7CiAgICB9KTsKICB9OwoKICBtZXRob2RzLnNldFZpZXcgPSBmdW5jdGlvbihjZW50ZXIsIHpvb20sIG9wdGlvbnMpIHsKICAgIHRoaXMuc2V0VmlldyhjZW50ZXIsIHpvb20sIG9wdGlvbnMpOwogIH07CgogIG1ldGhvZHMuZml0Qm91bmRzID0gZnVuY3Rpb24obGF0MSwgbG5nMSwgbGF0MiwgbG5nMikgewogICAgdGhpcy5maXRCb3VuZHMoWwogICAgICBbbGF0MSwgbG5nMV0sIFtsYXQyLCBsbmcyXQogICAgXSk7CiAgfTsKCiAgbWV0aG9kcy5zZXRNYXhCb3VuZHMgPSBmdW5jdGlvbihsYXQxLCBsbmcxLCBsYXQyLCBsbmcyKSB7CiAgICB0aGlzLnNldE1heEJvdW5kcyhbCiAgICAgIFtsYXQxLCBsbmcxXSwgW2xhdDIsIGxuZzJdCiAgICBdKTsKICB9OwoKICBtZXRob2RzLmFkZFBvcHVwcyA9IGZ1bmN0aW9uKGxhdCwgbG5nLCBwb3B1cCwgbGF5ZXJJZCwgZ3JvdXAsIG9wdGlvbnMpIHsKICAgIHZhciBkZiA9IGRhdGFmcmFtZS5jcmVhdGUoKQogICAgICAuY29sKCdsYXQnLCBsYXQpCiAgICAgIC5jb2woJ2xuZycsIGxuZykKICAgICAgLmNvbCgncG9wdXAnLCBwb3B1cCkKICAgICAgLmNvbCgnbGF5ZXJJZCcsIGxheWVySWQpCiAgICAgIC5jb2woJ2dyb3VwJywgZ3JvdXApCiAgICAgIC5jYmluZChvcHRpb25zKTsKCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRmLm5yb3coKTsgaSsrKSB7CiAgICAgIChmdW5jdGlvbigpIHsKICAgICAgICB2YXIgcG9wdXAgPSBMLnBvcHVwKGRmLmdldChpKSkKICAgICAgICAgICAgICAgICAgICAgLnNldExhdExuZyhbZGYuZ2V0KGksICdsYXQnKSwgZGYuZ2V0KGksICdsbmcnKV0pCiAgICAgICAgICAgICAgICAgICAgIC5zZXRDb250ZW50KGRmLmdldChpLCAncG9wdXAnKSk7CiAgICAgICAgdmFyIHRoaXNJZCA9IGRmLmdldChpLCAnbGF5ZXJJZCcpOwogICAgICAgIHZhciB0aGlzR3JvdXAgPSBkZi5nZXQoaSwgJ2dyb3VwJyk7CiAgICAgICAgdGhpcy5sYXllck1hbmFnZXIuYWRkTGF5ZXIocG9wdXAsICJwb3B1cCIsIHRoaXNJZCwgdGhpc0dyb3VwKTsKICAgICAgICBwb3B1cC5vbignY2xpY2snLCBtb3VzZUhhbmRsZXIodGhpcy5pZCwgdGhpc0lkLCB0aGlzR3JvdXAsICdwb3B1cF9jbGljaycpLCB0aGlzKTsKICAgICAgICBwb3B1cC5vbignbW91c2VvdmVyJywgbW91c2VIYW5kbGVyKHRoaXMuaWQsIHRoaXNJZCwgdGhpc0dyb3VwLCAncG9wdXBfbW91c2VvdmVyJyksIHRoaXMpOwogICAgICAgIHBvcHVwLm9uKCdtb3VzZW91dCcsIG1vdXNlSGFuZGxlcih0aGlzLmlkLCB0aGlzSWQsIHRoaXNHcm91cCwgJ3BvcHVwX21vdXNlb3V0JyksIHRoaXMpOwogICAgICB9KS5jYWxsKHRoaXMpOwogICAgfQogIH07CgogIG1ldGhvZHMucmVtb3ZlUG9wdXAgPSBmdW5jdGlvbihsYXllcklkKSB7CiAgICB0aGlzLmxheWVyTWFuYWdlci5yZW1vdmVMYXllcigicG9wdXAiLCBsYXllcklkKTsKICB9OwoKICBtZXRob2RzLmNsZWFyUG9wdXBzID0gZnVuY3Rpb24oKSB7CiAgICB0aGlzLmxheWVyTWFuYWdlci5jbGVhckxheWVycygicG9wdXAiKTsKICB9OwoKICBtZXRob2RzLmFkZFRpbGVzID0gZnVuY3Rpb24odXJsVGVtcGxhdGUsIGxheWVySWQsIGdyb3VwLCBvcHRpb25zKSB7CiAgICB0aGlzLmxheWVyTWFuYWdlci5hZGRMYXllcihMLnRpbGVMYXllcih1cmxUZW1wbGF0ZSwgb3B0aW9ucyksICJ0aWxlIiwgbGF5ZXJJZCwgZ3JvdXApOwogIH07CgogIG1ldGhvZHMucmVtb3ZlVGlsZXMgPSBmdW5jdGlvbihsYXllcklkKSB7CiAgICB0aGlzLmxheWVyTWFuYWdlci5yZW1vdmVMYXllcigidGlsZSIsIGxheWVySWQpOwogIH07CgogIG1ldGhvZHMuY2xlYXJUaWxlcyA9IGZ1bmN0aW9uKCkgewogICAgdGhpcy5sYXllck1hbmFnZXIuY2xlYXJMYXllcnMoInRpbGUiKTsKICB9OwoKICBtZXRob2RzLmFkZFdNU1RpbGVzID0gZnVuY3Rpb24oYmFzZVVybCwgbGF5ZXJJZCwgZ3JvdXAsIG9wdGlvbnMpIHsKICAgIHRoaXMubGF5ZXJNYW5hZ2VyLmFkZExheWVyKEwudGlsZUxheWVyLndtcyhiYXNlVXJsLCBvcHRpb25zKSwgInRpbGUiLCBsYXllcklkLCBncm91cCk7CiAgfTsKCiAgLy8gR2l2ZW46CiAgLy8gICB7ZGF0YTogWyJhIiwgImIiLCAiYyJdLCBpbmRleDogWzAsIDEsIDAsIDJdfQogIC8vIHJldHVybnM6CiAgLy8gICBbImEiLCAiYiIsICJhIiwgImMiXQogIGZ1bmN0aW9uIHVucGFja1N0cmluZ3MoaWNvbnNldCkgewogICAgaWYgKCFpY29uc2V0KSB7CiAgICAgIHJldHVybiBpY29uc2V0OwogICAgfQogICAgaWYgKHR5cGVvZihpY29uc2V0LmluZGV4KSA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgcmV0dXJuIGljb25zZXQ7CiAgICB9CgogICAgaWNvbnNldC5kYXRhID0gYXNBcnJheShpY29uc2V0LmRhdGEpOwogICAgaWNvbnNldC5pbmRleCA9IGFzQXJyYXkoaWNvbnNldC5pbmRleCk7CgogICAgcmV0dXJuICQubWFwKGljb25zZXQuaW5kZXgsIGZ1bmN0aW9uKGUsIGkpIHsKICAgICAgcmV0dXJuIGljb25zZXQuZGF0YVtlXTsKICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gYWRkTWFya2VycyhtYXAsIGRmLCBncm91cCwgY2x1c3Rlck9wdGlvbnMsIGNsdXN0ZXJJZCwgbWFya2VyRnVuYykgewogICAgKGZ1bmN0aW9uKCkgewogICAgICB2YXIgY2x1c3Rlckdyb3VwID0gdGhpcy5sYXllck1hbmFnZXIuZ2V0TGF5ZXIoImNsdXN0ZXIiLCBjbHVzdGVySWQpLAogICAgICAgICAgY2x1c3RlciA9IGNsdXN0ZXJPcHRpb25zICE9PSBudWxsOwogICAgICBpZiAoY2x1c3RlciAmJiAhY2x1c3Rlckdyb3VwKSB7CiAgICAgICAgY2x1c3Rlckdyb3VwID0gTC5tYXJrZXJDbHVzdGVyR3JvdXAoY2x1c3Rlck9wdGlvbnMpOwogICAgICAgIGNsdXN0ZXJHcm91cC5jbHVzdGVyTGF5ZXJTdG9yZSA9IG5ldyBDbHVzdGVyTGF5ZXJTdG9yZShjbHVzdGVyR3JvdXApOwogICAgICB9CiAgICAgIHZhciBleHRyYUluZm8gPSBjbHVzdGVyID8geyBjbHVzdGVySWQ6IGNsdXN0ZXJJZCB9IDoge307CgogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRmLm5yb3coKTsgaSsrKSB7CiAgICAgICAgKGZ1bmN0aW9uKCkgewogICAgICAgICAgdmFyIG1hcmtlciA9IG1hcmtlckZ1bmMoZGYsIGkpOwogICAgICAgICAgdmFyIHRoaXNJZCA9IGRmLmdldChpLCAnbGF5ZXJJZCcpOwogICAgICAgICAgdmFyIHRoaXNHcm91cCA9IGNsdXN0ZXIgPyBudWxsIDogZGYuZ2V0KGksICdncm91cCcpOwogICAgICAgICAgaWYgKGNsdXN0ZXIpIHsKICAgICAgICAgICAgY2x1c3Rlckdyb3VwLmNsdXN0ZXJMYXllclN0b3JlLmFkZChtYXJrZXIsIHRoaXNJZCk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmxheWVyTWFuYWdlci5hZGRMYXllcihtYXJrZXIsICJtYXJrZXIiLCB0aGlzSWQsIHRoaXNHcm91cCk7CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgcG9wdXAgPSBkZi5nZXQoaSwgJ3BvcHVwJyk7CiAgICAgICAgICBpZiAocG9wdXAgIT09IG51bGwpIG1hcmtlci5iaW5kUG9wdXAocG9wdXApOwogICAgICAgICAgbWFya2VyLm9uKCdjbGljaycsIG1vdXNlSGFuZGxlcih0aGlzLmlkLCB0aGlzSWQsIHRoaXNHcm91cCwgJ21hcmtlcl9jbGljaycsIGV4dHJhSW5mbyksIHRoaXMpOwogICAgICAgICAgbWFya2VyLm9uKCdtb3VzZW92ZXInLCBtb3VzZUhhbmRsZXIodGhpcy5pZCwgdGhpc0lkLCB0aGlzR3JvdXAsICdtYXJrZXJfbW91c2VvdmVyJywgZXh0cmFJbmZvKSwgdGhpcyk7CiAgICAgICAgICBtYXJrZXIub24oJ21vdXNlb3V0JywgbW91c2VIYW5kbGVyKHRoaXMuaWQsIHRoaXNJZCwgdGhpc0dyb3VwLCAnbWFya2VyX21vdXNlb3V0JywgZXh0cmFJbmZvKSwgdGhpcyk7CiAgICAgICAgfSkuY2FsbCh0aGlzKTsKICAgICAgfQoKICAgICAgaWYgKGNsdXN0ZXIpIHsKICAgICAgICB0aGlzLmxheWVyTWFuYWdlci5hZGRMYXllcihjbHVzdGVyR3JvdXAsICJjbHVzdGVyIiwgY2x1c3RlcklkLCBncm91cCk7CiAgICAgIH0KICAgIH0pLmNhbGwobWFwKTsKICB9CgogIG1ldGhvZHMuYWRkTWFya2VycyA9IGZ1bmN0aW9uKGxhdCwgbG5nLCBpY29uLCBsYXllcklkLCBncm91cCwgb3B0aW9ucywgcG9wdXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3Rlck9wdGlvbnMsIGNsdXN0ZXJJZCkgewogICAgaWYgKGljb24pIHsKICAgICAgLy8gVW5wYWNrIGljb25zCiAgICAgIGljb24uaWNvblVybCAgICAgICAgID0gdW5wYWNrU3RyaW5ncyhpY29uLmljb25VcmwpOwogICAgICBpY29uLmljb25SZXRpbmFVcmwgICA9IHVucGFja1N0cmluZ3MoaWNvbi5pY29uUmV0aW5hVXJsKTsKICAgICAgaWNvbi5zaGFkb3dVcmwgICAgICAgPSB1bnBhY2tTdHJpbmdzKGljb24uc2hhZG93VXJsKTsKICAgICAgaWNvbi5zaGFkb3dSZXRpbmFVcmwgPSB1bnBhY2tTdHJpbmdzKGljb24uc2hhZG93UmV0aW5hVXJsKTsKCiAgICAgIC8vIFRoaXMgY2JpbmRzIHRoZSBpY29uIFVSTHMgYW5kIGFueSBvdGhlciBpY29uIG9wdGlvbnM7IHRoZXkncmUgYWxsCiAgICAgIC8vIHByZXNlbnQgb24gdGhlIGljb24gb2JqZWN0LgogICAgICB2YXIgaWNvbmRmID0gZGF0YWZyYW1lLmNyZWF0ZSgpLmNiaW5kKGljb24pOwoKICAgICAgLy8gQ29uc3RydWN0cyBhbiBpY29uIGZyb20gYSBzcGVjaWZpZWQgcm93IG9mIHRoZSBpY29uIGRhdGFmcmFtZS4KICAgICAgdmFyIGdldEljb24gPSBmdW5jdGlvbihpKSB7CiAgICAgICAgdmFyIG9wdHMgPSBpY29uZGYuZ2V0KGkpOwogICAgICAgIGlmICghb3B0cy5pY29uVXJsKSB7CiAgICAgICAgICByZXR1cm4gbmV3IEwuSWNvbi5EZWZhdWx0KCk7CiAgICAgICAgfQoKICAgICAgICAvLyBDb21wb3NpdGUgb3B0aW9ucyAobGlrZSBwb2ludHMgb3Igc2l6ZXMpIGFyZSBwYXNzZWQgZnJvbSBSIHdpdGggZWFjaAogICAgICAgIC8vIGluZGl2aWR1YWwgY29tcG9uZW50IGFzIGl0cyBvd24gb3B0aW9uLiBXZSBuZWVkIHRvIGNvbWJpbmUgdGhlbSBub3cKICAgICAgICAvLyBpbnRvIHRoZWlyIGNvbXBvc2l0ZSBmb3JtLgogICAgICAgIGlmIChvcHRzLmljb25XaWR0aCkgewogICAgICAgICAgb3B0cy5pY29uU2l6ZSA9IFtvcHRzLmljb25XaWR0aCwgb3B0cy5pY29uSGVpZ2h0XTsKICAgICAgICB9CiAgICAgICAgaWYgKG9wdHMuc2hhZG93V2lkdGgpIHsKICAgICAgICAgIG9wdHMuc2hhZG93U2l6ZSA9IFtvcHRzLnNoYWRvd1dpZHRoLCBvcHRzLnNoYWRvd0hlaWdodF07CiAgICAgICAgfQogICAgICAgIGlmIChvcHRzLmljb25BbmNob3JYKSB7CiAgICAgICAgICBvcHRzLmljb25BbmNob3IgPSBbb3B0cy5pY29uQW5jaG9yWCwgb3B0cy5pY29uQW5jaG9yWV07CiAgICAgICAgfQogICAgICAgIGlmIChvcHRzLnNoYWRvd0FuY2hvclgpIHsKICAgICAgICAgIG9wdHMuc2hhZG93QW5jaG9yID0gW29wdHMuc2hhZG93QW5jaG9yWCwgb3B0cy5zaGFkb3dBbmNob3JZXTsKICAgICAgICB9CiAgICAgICAgaWYgKG9wdHMucG9wdXBBbmNob3JYKSB7CiAgICAgICAgICBvcHRzLnBvcHVwQW5jaG9yID0gW29wdHMucG9wdXBBbmNob3JYLCBvcHRzLnBvcHVwQW5jaG9yWV07CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbmV3IEwuSWNvbihvcHRzKTsKICAgICAgfTsKICAgIH0KCiAgICB2YXIgZGYgPSBkYXRhZnJhbWUuY3JlYXRlKCkKICAgICAgLmNvbCgnbGF0JywgbGF0KQogICAgICAuY29sKCdsbmcnLCBsbmcpCiAgICAgIC5jb2woJ2xheWVySWQnLCBsYXllcklkKQogICAgICAuY29sKCdncm91cCcsIGdyb3VwKQogICAgICAuY29sKCdwb3B1cCcsIHBvcHVwKQogICAgICAuY2JpbmQob3B0aW9ucyk7CgogICAgaWYgKGljb24pIGljb25kZi5lZmZlY3RpdmVMZW5ndGggPSBkZi5ucm93KCk7CgogICAgYWRkTWFya2Vycyh0aGlzLCBkZiwgZ3JvdXAsIGNsdXN0ZXJPcHRpb25zLCBjbHVzdGVySWQsIGZ1bmN0aW9uKGRmLCBpKSB7CiAgICAgIHZhciBvcHRpb25zID0gZGYuZ2V0KGkpOwogICAgICBpZiAoaWNvbikgb3B0aW9ucy5pY29uID0gZ2V0SWNvbihpKTsKICAgICAgcmV0dXJuIEwubWFya2VyKFtkZi5nZXQoaSwgJ2xhdCcpLCBkZi5nZXQoaSwgJ2xuZycpXSwgb3B0aW9ucyk7CiAgICB9KTsKICB9OwoKICBhZGRMYXllcnMgPSBmdW5jdGlvbihtYXAsIGNhdGVnb3J5LCBkZiwgbGF5ZXJGdW5jKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRmLm5yb3coKTsgaSsrKSB7CiAgICAgIChmdW5jdGlvbigpIHsKICAgICAgICB2YXIgbGF5ZXIgPSBsYXllckZ1bmMoZGYsIGkpOwogICAgICAgIHZhciB0aGlzSWQgPSBkZi5nZXQoaSwgJ2xheWVySWQnKTsKICAgICAgICB2YXIgdGhpc0dyb3VwID0gZGYuZ2V0KGksICdncm91cCcpOwogICAgICAgIHRoaXMubGF5ZXJNYW5hZ2VyLmFkZExheWVyKGxheWVyLCBjYXRlZ29yeSwgdGhpc0lkLCB0aGlzR3JvdXApOwogICAgICAgIGlmIChsYXllci5iaW5kUG9wdXApIHsKICAgICAgICAgIHZhciBwb3B1cCA9IGRmLmdldChpLCAncG9wdXAnKTsKICAgICAgICAgIGlmIChwb3B1cCAhPT0gbnVsbCkgbGF5ZXIuYmluZFBvcHVwKHBvcHVwKTsKICAgICAgICB9CiAgICAgICAgbGF5ZXIub24oJ2NsaWNrJywgbW91c2VIYW5kbGVyKHRoaXMuaWQsIHRoaXNJZCwgdGhpc0dyb3VwLCBjYXRlZ29yeSArICdfY2xpY2snKSwgdGhpcyk7CiAgICAgICAgbGF5ZXIub24oJ21vdXNlb3ZlcicsIG1vdXNlSGFuZGxlcih0aGlzLmlkLCB0aGlzSWQsIHRoaXNHcm91cCwgY2F0ZWdvcnkgKyAnX21vdXNlb3ZlcicpLCB0aGlzKTsKICAgICAgICBsYXllci5vbignbW91c2VvdXQnLCBtb3VzZUhhbmRsZXIodGhpcy5pZCwgdGhpc0lkLCB0aGlzR3JvdXAsIGNhdGVnb3J5ICsgJ19tb3VzZW91dCcpLCB0aGlzKTsKICAgICAgfSkuY2FsbChtYXApOwogICAgfQogIH0KCiAgbWV0aG9kcy5hZGRDaXJjbGVzID0gZnVuY3Rpb24obGF0LCBsbmcsIHJhZGl1cywgbGF5ZXJJZCwgZ3JvdXAsIG9wdGlvbnMsIHBvcHVwKSB7CiAgICB2YXIgZGYgPSBkYXRhZnJhbWUuY3JlYXRlKCkKICAgICAgLmNvbCgnbGF0JywgbGF0KQogICAgICAuY29sKCdsbmcnLCBsbmcpCiAgICAgIC5jb2woJ3JhZGl1cycsIHJhZGl1cykKICAgICAgLmNvbCgnbGF5ZXJJZCcsIGxheWVySWQpCiAgICAgIC5jb2woJ2dyb3VwJywgZ3JvdXApCiAgICAgIC5jb2woJ3BvcHVwJywgcG9wdXApCiAgICAgIC5jYmluZChvcHRpb25zKTsKCiAgICBhZGRMYXllcnModGhpcywgInNoYXBlIiwgZGYsIGZ1bmN0aW9uKGRmLCBpKSB7CiAgICAgIHJldHVybiBMLmNpcmNsZShbZGYuZ2V0KGksICdsYXQnKSwgZGYuZ2V0KGksICdsbmcnKV0sIGRmLmdldChpLCAncmFkaXVzJyksIGRmLmdldChpKSk7CiAgICB9KTsKICB9OwoKICBtZXRob2RzLmFkZENpcmNsZU1hcmtlcnMgPSBmdW5jdGlvbihsYXQsIGxuZywgcmFkaXVzLCBsYXllcklkLCBncm91cCwgb3B0aW9ucywgY2x1c3Rlck9wdGlvbnMsIGNsdXN0ZXJJZCwgcG9wdXApIHsKICAgIHZhciBkZiA9IGRhdGFmcmFtZS5jcmVhdGUoKQogICAgICAuY29sKCdsYXQnLCBsYXQpCiAgICAgIC5jb2woJ2xuZycsIGxuZykKICAgICAgLmNvbCgncmFkaXVzJywgcmFkaXVzKQogICAgICAuY29sKCdsYXllcklkJywgbGF5ZXJJZCkKICAgICAgLmNvbCgnZ3JvdXAnLCBncm91cCkKICAgICAgLmNvbCgncG9wdXAnLCBwb3B1cCkKICAgICAgLmNiaW5kKG9wdGlvbnMpOwoKICAgIGFkZE1hcmtlcnModGhpcywgZGYsIGdyb3VwLCBjbHVzdGVyT3B0aW9ucywgY2x1c3RlcklkLCBmdW5jdGlvbihkZiwgaSkgewogICAgICByZXR1cm4gTC5jaXJjbGVNYXJrZXIoW2RmLmdldChpLCAnbGF0JyksIGRmLmdldChpLCAnbG5nJyldLCBkZi5nZXQoaSkpOwogICAgfSk7CiAgfTsKCiAgLyoKICAgKiBAcGFyYW0gbGF0IEFycmF5IG9mIGFycmF5cyBvZiBsYXRpdHVkZSBjb29yZGluYXRlcyBmb3IgcG9seWxpbmVzCiAgICogQHBhcmFtIGxuZyBBcnJheSBvZiBhcnJheXMgb2YgbG9uZ2l0dWRlIGNvb3JkaW5hdGVzIGZvciBwb2x5bGluZXMKICAgKi8KICBtZXRob2RzLmFkZFBvbHlsaW5lcyA9IGZ1bmN0aW9uKHBvbHlnb25zLCBsYXllcklkLCBncm91cCwgb3B0aW9ucywgcG9wdXApIHsKICAgIHZhciBkZiA9IGRhdGFmcmFtZS5jcmVhdGUoKQogICAgICAuY29sKCdzaGFwZXMnLCBwb2x5Z29ucykKICAgICAgLmNvbCgnbGF5ZXJJZCcsIGxheWVySWQpCiAgICAgIC5jb2woJ2dyb3VwJywgZ3JvdXApCiAgICAgIC5jb2woJ3BvcHVwJywgcG9wdXApCiAgICAgIC5jYmluZChvcHRpb25zKTsKCiAgICBhZGRMYXllcnModGhpcywgInNoYXBlIiwgZGYsIGZ1bmN0aW9uKGRmLCBpKSB7CiAgICAgICAgdmFyIHNoYXBlID0gZGYuZ2V0KGksICdzaGFwZXMnKVswXTsKICAgICAgICBzaGFwZSA9IEhUTUxXaWRnZXRzLmRhdGFmcmFtZVRvRDMoc2hhcGUpOwogICAgICAgIHJldHVybiBMLnBvbHlsaW5lKHNoYXBlLCBkZi5nZXQoaSkpOwogICAgfSk7CiAgfTsKCiAgbWV0aG9kcy5yZW1vdmVNYXJrZXIgPSBmdW5jdGlvbihsYXllcklkKSB7CiAgICB0aGlzLmxheWVyTWFuYWdlci5yZW1vdmVMYXllcigibWFya2VyIiwgbGF5ZXJJZCk7CiAgfTsKCiAgbWV0aG9kcy5jbGVhck1hcmtlcnMgPSBmdW5jdGlvbigpIHsKICAgIHRoaXMubGF5ZXJNYW5hZ2VyLmNsZWFyTGF5ZXJzKCJtYXJrZXIiKTsKICB9OwoKICBtZXRob2RzLnJlbW92ZU1hcmtlckNsdXN0ZXIgPSBmdW5jdGlvbihsYXllcklkKSB7CiAgICB0aGlzLmxheWVyTWFuYWdlci5yZW1vdmVMYXllcigiY2x1c3RlciIsIGxheWVySWQpOwogIH0KCiAgbWV0aG9kcy5yZW1vdmVNYXJrZXJGcm9tQ2x1c3RlciA9IGZ1bmN0aW9uKGxheWVySWQsIGNsdXN0ZXJJZCkgewogICAgdmFyIGNsdXN0ZXIgPSB0aGlzLmxheWVyTWFuYWdlci5nZXRMYXllcigiY2x1c3RlciIsIGNsdXN0ZXJJZCk7CiAgICBpZiAoIWNsdXN0ZXIpIHJldHVybjsKICAgIGNsdXN0ZXIuY2x1c3RlckxheWVyU3RvcmUucmVtb3ZlKGxheWVySWQpOwogIH0KCiAgbWV0aG9kcy5jbGVhck1hcmtlckNsdXN0ZXJzID0gZnVuY3Rpb24oKSB7CiAgICB0aGlzLmxheWVyTWFuYWdlci5jbGVhckxheWVycygiY2x1c3RlciIpOwogIH07CgogIG1ldGhvZHMucmVtb3ZlU2hhcGUgPSBmdW5jdGlvbihsYXllcklkKSB7CiAgICB0aGlzLmxheWVyTWFuYWdlci5yZW1vdmVMYXllcigic2hhcGUiLCBsYXllcklkKTsKICB9OwoKICBtZXRob2RzLmNsZWFyU2hhcGVzID0gZnVuY3Rpb24oKSB7CiAgICB0aGlzLmxheWVyTWFuYWdlci5jbGVhckxheWVycygic2hhcGUiKTsKICB9OwoKICBtZXRob2RzLmFkZFJlY3RhbmdsZXMgPSBmdW5jdGlvbihsYXQxLCBsbmcxLCBsYXQyLCBsbmcyLCBsYXllcklkLCBncm91cCwgb3B0aW9ucywgcG9wdXApIHsKICAgIHZhciBkZiA9IGRhdGFmcmFtZS5jcmVhdGUoKQogICAgICAuY29sKCdsYXQxJywgbGF0MSkKICAgICAgLmNvbCgnbG5nMScsIGxuZzEpCiAgICAgIC5jb2woJ2xhdDInLCBsYXQyKQogICAgICAuY29sKCdsbmcyJywgbG5nMikKICAgICAgLmNvbCgnbGF5ZXJJZCcsIGxheWVySWQpCiAgICAgIC5jb2woJ2dyb3VwJywgZ3JvdXApCiAgICAgIC5jb2woJ3BvcHVwJywgcG9wdXApCiAgICAgIC5jYmluZChvcHRpb25zKTsKCiAgICBhZGRMYXllcnModGhpcywgInNoYXBlIiwgZGYsIGZ1bmN0aW9uKGRmLCBpKSB7CiAgICAgIHJldHVybiBMLnJlY3RhbmdsZShbCiAgICAgICAgICBbZGYuZ2V0KGksICdsYXQxJyksIGRmLmdldChpLCAnbG5nMScpXSwKICAgICAgICAgIFtkZi5nZXQoaSwgJ2xhdDInKSwgZGYuZ2V0KGksICdsbmcyJyldCiAgICAgICAgXSwKICAgICAgICBkZi5nZXQoaSkpOwogICAgfSk7CiAgfTsKCiAgLyoKICAgKiBAcGFyYW0gbGF0IEFycmF5IG9mIGFycmF5cyBvZiBsYXRpdHVkZSBjb29yZGluYXRlcyBmb3IgcG9seWdvbnMKICAgKiBAcGFyYW0gbG5nIEFycmF5IG9mIGFycmF5cyBvZiBsb25naXR1ZGUgY29vcmRpbmF0ZXMgZm9yIHBvbHlnb25zCiAgICovCiAgbWV0aG9kcy5hZGRQb2x5Z29ucyA9IGZ1bmN0aW9uKHBvbHlnb25zLCBsYXllcklkLCBncm91cCwgb3B0aW9ucywgcG9wdXApIHsKICAgIHZhciBkZiA9IGRhdGFmcmFtZS5jcmVhdGUoKQogICAgICAuY29sKCdzaGFwZXMnLCBwb2x5Z29ucykKICAgICAgLmNvbCgnbGF5ZXJJZCcsIGxheWVySWQpCiAgICAgIC5jb2woJ2dyb3VwJywgZ3JvdXApCiAgICAgIC5jb2woJ3BvcHVwJywgcG9wdXApCiAgICAgIC5jYmluZChvcHRpb25zKTsKCiAgICBhZGRMYXllcnModGhpcywgInNoYXBlIiwgZGYsIGZ1bmN0aW9uKGRmLCBpKSB7CiAgICAgIHZhciBzaGFwZXMgPSBkZi5nZXQoaSwgJ3NoYXBlcycpOwogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHNoYXBlcy5sZW5ndGg7IGorKykgewogICAgICAgIHNoYXBlc1tqXSA9IEhUTUxXaWRnZXRzLmRhdGFmcmFtZVRvRDMoc2hhcGVzW2pdKTsKICAgICAgfQogICAgICByZXR1cm4gTC5wb2x5Z29uKHNoYXBlcywgZGYuZ2V0KGkpKTsKICAgIH0pOwogIH07CgogIG1ldGhvZHMuYWRkR2VvSlNPTiA9IGZ1bmN0aW9uKGRhdGEsIGxheWVySWQsIGdyb3VwLCBzdHlsZSkgewogICAgdmFyIHNlbGYgPSB0aGlzOwogICAgaWYgKHR5cGVvZihkYXRhKSA9PT0gInN0cmluZyIpIHsKICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZGF0YSk7CiAgICB9CgogICAgdmFyIGdsb2JhbFN0eWxlID0gJC5leHRlbmQoe30sIHN0eWxlLCBkYXRhLnN0eWxlIHx8IHt9KTsKCiAgICB2YXIgZ2psYXllciA9IEwuZ2VvSnNvbihkYXRhLCB7CiAgICAgIHN0eWxlOiBmdW5jdGlvbihmZWF0dXJlKSB7CiAgICAgICAgaWYgKGZlYXR1cmUuc3R5bGUgfHwgZmVhdHVyZS5wcm9wZXJ0aWVzLnN0eWxlKSB7CiAgICAgICAgICByZXR1cm4gJC5leHRlbmQoe30sIGdsb2JhbFN0eWxlLCBmZWF0dXJlLnN0eWxlLCBmZWF0dXJlLnByb3BlcnRpZXMuc3R5bGUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gZ2xvYmFsU3R5bGU7CiAgICAgICAgfQogICAgICB9LAogICAgICBvbkVhY2hGZWF0dXJlOiBmdW5jdGlvbihmZWF0dXJlLCBsYXllcikgewogICAgICAgIHZhciBleHRyYUluZm8gPSB7CiAgICAgICAgICBmZWF0dXJlSWQ6IGZlYXR1cmUuaWQsCiAgICAgICAgICBwcm9wZXJ0aWVzOiBmZWF0dXJlLnByb3BlcnRpZXMKICAgICAgICB9OwogICAgICAgIHZhciBwb3B1cCA9IGZlYXR1cmUucHJvcGVydGllcy5wb3B1cDsKICAgICAgICBpZiAodHlwZW9mIHBvcHVwICE9PSAndW5kZWZpbmVkJyAmJiBwb3B1cCAhPT0gbnVsbCkgbGF5ZXIuYmluZFBvcHVwKHBvcHVwKTsKICAgICAgICBsYXllci5vbigiY2xpY2siLCBtb3VzZUhhbmRsZXIoc2VsZi5pZCwgbGF5ZXJJZCwgZ3JvdXAsICJnZW9qc29uX2NsaWNrIiwgZXh0cmFJbmZvKSwgdGhpcyk7CiAgICAgICAgbGF5ZXIub24oIm1vdXNlb3ZlciIsIG1vdXNlSGFuZGxlcihzZWxmLmlkLCBsYXllcklkLCBncm91cCwgImdlb2pzb25fbW91c2VvdmVyIiwgZXh0cmFJbmZvKSwgdGhpcyk7CiAgICAgICAgbGF5ZXIub24oIm1vdXNlb3V0IiwgbW91c2VIYW5kbGVyKHNlbGYuaWQsIGxheWVySWQsIGdyb3VwLCAiZ2VvanNvbl9tb3VzZW91dCIsIGV4dHJhSW5mbyksIHRoaXMpOwogICAgICB9CiAgICB9KTsKICAgIHRoaXMubGF5ZXJNYW5hZ2VyLmFkZExheWVyKGdqbGF5ZXIsICJnZW9qc29uIiwgbGF5ZXJJZCwgZ3JvdXApOwogIH07CgogIG1ldGhvZHMucmVtb3ZlR2VvSlNPTiA9IGZ1bmN0aW9uKGxheWVySWQpIHsKICAgIHRoaXMubGF5ZXJNYW5hZ2VyLnJlbW92ZUxheWVyKCJnZW9qc29uIiwgbGF5ZXJJZCk7CiAgfTsKCiAgbWV0aG9kcy5jbGVhckdlb0pTT04gPSBmdW5jdGlvbigpIHsKICAgIHRoaXMubGF5ZXJNYW5hZ2VyLmNsZWFyTGF5ZXJzKCJnZW9qc29uIik7CiAgfTsKCiAgbWV0aG9kcy5hZGRUb3BvSlNPTiA9IGZ1bmN0aW9uKGRhdGEsIGxheWVySWQsIGdyb3VwLCBzdHlsZSkgewogICAgdmFyIHNlbGYgPSB0aGlzOwogICAgaWYgKHR5cGVvZihkYXRhKSA9PT0gInN0cmluZyIpIHsKICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZGF0YSk7CiAgICB9CgogICAgdmFyIGdsb2JhbFN0eWxlID0gJC5leHRlbmQoe30sIHN0eWxlLCBkYXRhLnN0eWxlIHx8IHt9KTsKCiAgICB2YXIgZ2psYXllciA9IEwuZ2VvSnNvbihudWxsLCB7CiAgICAgIHN0eWxlOiBmdW5jdGlvbihmZWF0dXJlKSB7CiAgICAgICAgaWYgKGZlYXR1cmUuc3R5bGUgfHwgZmVhdHVyZS5wcm9wZXJ0aWVzLnN0eWxlKSB7CiAgICAgICAgICByZXR1cm4gJC5leHRlbmQoe30sIGdsb2JhbFN0eWxlLCBmZWF0dXJlLnN0eWxlLCBmZWF0dXJlLnByb3BlcnRpZXMuc3R5bGUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gZ2xvYmFsU3R5bGU7CiAgICAgICAgfQogICAgICB9LAogICAgICBvbkVhY2hGZWF0dXJlOiBmdW5jdGlvbihmZWF0dXJlLCBsYXllcikgewogICAgICAgIHZhciBleHRyYUluZm8gPSB7CiAgICAgICAgICBmZWF0dXJlSWQ6IGZlYXR1cmUuaWQsCiAgICAgICAgICBwcm9wZXJ0aWVzOiBmZWF0dXJlLnByb3BlcnRpZXMKICAgICAgICB9OwogICAgICAgIHZhciBwb3B1cCA9IGZlYXR1cmUucHJvcGVydGllcy5wb3B1cDsKICAgICAgICBpZiAodHlwZW9mIHBvcHVwICE9PSAndW5kZWZpbmVkJyAmJiBwb3B1cCAhPT0gbnVsbCkgbGF5ZXIuYmluZFBvcHVwKHBvcHVwKTsKICAgICAgICBsYXllci5vbigiY2xpY2siLCBtb3VzZUhhbmRsZXIoc2VsZi5pZCwgbGF5ZXJJZCwgZ3JvdXAsICJ0b3BvanNvbl9jbGljayIsIGV4dHJhSW5mbyksIHRoaXMpOwogICAgICAgIGxheWVyLm9uKCJtb3VzZW92ZXIiLCBtb3VzZUhhbmRsZXIoc2VsZi5pZCwgbGF5ZXJJZCwgZ3JvdXAsICJ0b3BvanNvbl9tb3VzZW92ZXIiLCBleHRyYUluZm8pLCB0aGlzKTsKICAgICAgICBsYXllci5vbigibW91c2VvdXQiLCBtb3VzZUhhbmRsZXIoc2VsZi5pZCwgbGF5ZXJJZCwgZ3JvdXAsICJ0b3BvanNvbl9tb3VzZW91dCIsIGV4dHJhSW5mbyksIHRoaXMpOwogICAgICB9CiAgICB9KTsKICAgIG9tbml2b3JlLnRvcG9qc29uLnBhcnNlKGRhdGEsIG51bGwsIGdqbGF5ZXIpOwogICAgdGhpcy5sYXllck1hbmFnZXIuYWRkTGF5ZXIoZ2psYXllciwgInRvcG9qc29uIiwgbGF5ZXJJZCwgZ3JvdXApOwogIH07CgogIG1ldGhvZHMucmVtb3ZlVG9wb0pTT04gPSBmdW5jdGlvbihsYXllcklkKSB7CiAgICB0aGlzLmxheWVyTWFuYWdlci5yZW1vdmVMYXllcigidG9wb2pzb24iLCBsYXllcklkKTsKICB9OwoKICBtZXRob2RzLmNsZWFyVG9wb0pTT04gPSBmdW5jdGlvbigpIHsKICAgIHRoaXMubGF5ZXJNYW5hZ2VyLmNsZWFyTGF5ZXJzKCJ0b3BvanNvbiIpOwogIH07CgogIG1ldGhvZHMuYWRkQ29udHJvbCA9IGZ1bmN0aW9uKGh0bWwsIHBvc2l0aW9uLCBsYXllcklkLCBjbGFzc2VzKSB7CiAgICBmdW5jdGlvbiBvbkFkZChtYXApIHsKICAgICAgdmFyIGRpdiA9IEwuRG9tVXRpbC5jcmVhdGUoJ2RpdicsIGNsYXNzZXMpOwogICAgICBpZiAodHlwZW9mIGxheWVySWQgIT09ICd1bmRlZmluZWQnICYmIGxheWVySWQgIT09IG51bGwpIHsKICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdpZCcsIGxheWVySWQpCiAgICAgIH0KICAgICAgdGhpcy5fZGl2ID0gZGl2OwoKICAgICAgLy8gSXQncyBwb3NzaWJsZSBmb3Igd2luZG93LlNoaW55IHRvIGJlIHRydWUgYnV0IFNoaW55LmluaXRpYWxpemVJbnB1dHMgdG8KICAgICAgLy8gbm90IGJlLCB3aGVuIGEgc3RhdGljIGxlYWZsZXQgd2lkZ2V0IGlzIGluY2x1ZGVkIGFzIHBhcnQgb2YgdGhlIHNoaW55CiAgICAgIC8vIFVJIGRpcmVjdGx5IChub3QgdGhyb3VnaCBsZWFmbGV0T3V0cHV0IG9yIHVpT3V0cHV0KS4gSW4gdGhpcyBjYXNlIHdlCiAgICAgIC8vIGRvbid0IGRvIHRoZSBub3JtYWwgU2hpbnkgc3R1ZmYgYXMgdGhhdCB3aWxsIGFsbCBoYXBwZW4gd2hlbiBTaGlueQogICAgICAvLyBpdHNlbGYgbG9hZHMgYW5kIGJpbmRzIHRoZSBlbnRpcmUgZG9jLgoKICAgICAgaWYgKHdpbmRvdy5TaGlueSAmJiBTaGlueS5pbml0aWFsaXplSW5wdXRzKSB7CiAgICAgICAgU2hpbnkucmVuZGVySHRtbChodG1sLCB0aGlzLl9kaXYpOwogICAgICAgIFNoaW55LmluaXRpYWxpemVJbnB1dHModGhpcy5fZGl2KTsKICAgICAgICBTaGlueS5iaW5kQWxsKHRoaXMuX2Rpdik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5fZGl2LmlubmVySFRNTCA9IGh0bWw7CiAgICAgIH0KCiAgICAgIHJldHVybiB0aGlzLl9kaXY7CiAgICB9CiAgICBmdW5jdGlvbiBvblJlbW92ZShtYXApIHsKICAgICAgaWYgKHdpbmRvdy5TaGlueSAmJiBTaGlueS51bmJpbmRBbGwpIHsKICAgICAgICBTaGlueS51bmJpbmRBbGwodGhpcy5fZGl2KTsKICAgICAgfQogICAgfQogICAgdmFyIENvbnRyb2wgPSBMLkNvbnRyb2wuZXh0ZW5kKHsKICAgICAgb3B0aW9uczoge3Bvc2l0aW9uOiBwb3NpdGlvbn0sCiAgICAgIG9uQWRkOiBvbkFkZCwKICAgICAgb25SZW1vdmU6IG9uUmVtb3ZlCiAgICB9KQogICAgdGhpcy5jb250cm9scy5hZGQobmV3IENvbnRyb2wsIGxheWVySWQsIGh0bWwpOwogIH07CgogIG1ldGhvZHMucmVtb3ZlQ29udHJvbCA9IGZ1bmN0aW9uKGxheWVySWQpIHsKICAgIHRoaXMuY29udHJvbHMucmVtb3ZlKGxheWVySWQpOwogIH07CgogIG1ldGhvZHMuY2xlYXJDb250cm9scyA9IGZ1bmN0aW9uKCkgewogICAgdGhpcy5jb250cm9scy5jbGVhcigpOwogIH07CgogIG1ldGhvZHMuYWRkTGVnZW5kID0gZnVuY3Rpb24ob3B0aW9ucykgewogICAgdmFyIGxlZ2VuZCA9IEwuY29udHJvbCh7cG9zaXRpb246IG9wdGlvbnMucG9zaXRpb259KTsKICAgIHZhciBncmFkU3BhbjsKCiAgICBsZWdlbmQub25BZGQgPSBmdW5jdGlvbiAobWFwKSB7CiAgICAgIHZhciBkaXYgPSBMLkRvbVV0aWwuY3JlYXRlKCdkaXYnLCBvcHRpb25zLmNsYXNzTmFtZSksCiAgICAgICAgICBjb2xvcnMgPSBvcHRpb25zLmNvbG9ycywKICAgICAgICAgIGxhYmVscyA9IG9wdGlvbnMubGFiZWxzLAogICAgICAgICAgbGVnZW5kSFRNTCA9ICcnOwogICAgICBpZiAob3B0aW9ucy50eXBlID09PSAnbnVtZXJpYycpIHsKICAgICAgICAvLyAjIEZvcm1hdHRpbmcgY29uc3RhbnRzLgogICAgICAgIHZhciBzaW5nbGVCaW5IZWlnaHQgPSAyMDsgIC8vIFRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRpY2sgbWFya3MsIGluIHB4CiAgICAgICAgdmFyIHZNYXJnaW4gPSA4OyAvLyBJZiAxc3QgdGljayBtYXJrIHN0YXJ0cyBhdCB0b3Agb2YgZ3JhZGllbnQsIGhvdwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFueSBleHRyYSBweCBhcmUgbmVlZGVkIGZvciB0aGUgdG9wIGhhbGYgb2YgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxc3QgbGFiZWw/IChkaXR0byBmb3IgbGFzdCB0aWNrIG1hcmsvbGFiZWwpCiAgICAgICAgdmFyIHRpY2tXaWR0aCA9IDQ7ICAgICAvLyBIb3cgd2lkZSBzaG91bGQgdGljayBtYXJrcyBiZSwgaW4gcHg/CiAgICAgICAgdmFyIGxhYmVsUGFkZGluZyA9IDY7ICAvLyBIb3cgbXVjaCBkaXN0YW5jZSB0byByZXNlcnZlIGZvciB0aWNrIG1hcms/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAoTXVzdCBiZSA+PSB0aWNrV2lkdGgpCgogICAgICAgIC8vICMgRGVyaXZlZCBmb3JtYXR0aW5nIHBhcmFtZXRlcnMuCgogICAgICAgIC8vIFdoYXQncyB0aGUgaGVpZ2h0IG9mIGEgc2luZ2xlIGJpbiwgaW4gcGVyY2VudGFnZSAob2YgZ3JhZGllbnQgaGVpZ2h0KT8KICAgICAgICAvLyBJdCBtaWdodCBub3QganVzdCBiZSAxLyhuLTEpLCBpZiB0aGUgZ3JhZGllbnQgZXh0ZW5kcyBwYXN0IHRoZSB0aWNrCiAgICAgICAgLy8gbWFya3MgKHdoaWNoIGNhbiBiZSB0aGUgY2FzZSBmb3IgcHJldHR5IGN1dCBwb2ludHMpLgogICAgICAgIHZhciBzaW5nbGVCaW5QY3QgPSAob3B0aW9ucy5leHRyYS5wX24gLSBvcHRpb25zLmV4dHJhLnBfMSkgLyAobGFiZWxzLmxlbmd0aCAtIDEpOwogICAgICAgIC8vIEVhY2ggYmluIGlzIGBzaW5nbGVCaW5IZWlnaHRgIGhpZ2guIEhvdyB0YWxsIGlzIHRoZSBncmFkaWVudD8KICAgICAgICB2YXIgdG90YWxIZWlnaHQgPSAoMSAvIHNpbmdsZUJpblBjdCkgKiBzaW5nbGVCaW5IZWlnaHQgKyAxOwogICAgICAgIC8vIEhvdyBmYXIgc2hvdWxkIHRoZSBmaXJzdCB0aWNrIGJlIHNoaWZ0ZWQgZG93biwgcmVsYXRpdmUgdG8gdGhlIHRvcAogICAgICAgIC8vIG9mIHRoZSBncmFkaWVudD8KICAgICAgICB2YXIgdGlja09mZnNldCA9IChzaW5nbGVCaW5IZWlnaHQgLyBzaW5nbGVCaW5QY3QpICogb3B0aW9ucy5leHRyYS5wXzE7CgogICAgICAgIGdyYWRTcGFuID0gJCgnPHNwYW4vPicpLmNzcyh7CiAgICAgICAgICAnYmFja2dyb3VuZCc6ICdsaW5lYXItZ3JhZGllbnQoJyArIGNvbG9ycyArICcpJywKICAgICAgICAgICdvcGFjaXR5Jzogb3B0aW9ucy5vcGFjaXR5LAogICAgICAgICAgJ2hlaWdodCc6IHRvdGFsSGVpZ2h0ICsgJ3B4JywKICAgICAgICAgICd3aWR0aCc6ICcxOHB4JywKICAgICAgICAgICdkaXNwbGF5JzogJ2Jsb2NrJywKICAgICAgICAgICdtYXJnaW4tdG9wJzogdk1hcmdpbiArICdweCcKICAgICAgICB9KTsKICAgICAgICB2YXIgbGVmdERpdiA9ICQoJzxkaXYvPicpLmNzcygnZmxvYXQnLCAnbGVmdCcpLAogICAgICAgICAgICByaWdodERpdiA9ICQoJzxkaXYvPicpLmNzcygnZmxvYXQnLCAnbGVmdCcpOwogICAgICAgIGxlZnREaXYuYXBwZW5kKGdyYWRTcGFuKTsKICAgICAgICAkKGRpdikuYXBwZW5kKGxlZnREaXYpLmFwcGVuZChyaWdodERpdikKICAgICAgICAgIC5hcHBlbmQoJCgiPGJyIGNsZWFyPSdib3RoJy8+IikpOwoKICAgICAgICAvLyBIYXZlIHRvIGF0dGFjaCB0aGUgZGl2IHRvIHRoZSBib2R5IGF0IHRoaXMgZWFybHkgcG9pbnQsIHNvIHRoYXQgdGhlCiAgICAgICAgLy8gc3ZnIHRleHQgZ2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkgYWN0dWFsbHkgd29ya3MsIGJlbG93LgogICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKCiAgICAgICAgdmFyIG5zID0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJzsKICAgICAgICB2YXIgc3ZnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG5zLCAnc3ZnJyk7CiAgICAgICAgcmlnaHREaXYuYXBwZW5kKHN2Zyk7CiAgICAgICAgdmFyIGcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobnMsICdnJyk7CiAgICAgICAgJChnKS5hdHRyKCJ0cmFuc2Zvcm0iLCAidHJhbnNsYXRlKDAsICIgKyB2TWFyZ2luICsgIikiKTsKICAgICAgICBzdmcuYXBwZW5kQ2hpbGQoZyk7CgogICAgICAgIC8vIG1heCBsYWJlbCB3aWR0aCBuZWVkZWQgdG8gc2V0IHdpZHRoIG9mIHN2ZywgYW5kIHJpZ2h0LWp1c3RpZnkgdGV4dAogICAgICAgIHZhciBtYXhMYmxXaWR0aCA9IDA7CgogICAgICAgIC8vIENyZWF0ZSB0aWNrIG1hcmtzIGFuZCBsYWJlbHMKICAgICAgICAkLmVhY2gobGFiZWxzLCBmdW5jdGlvbihpLCBsYWJlbCkgewogICAgICAgICAgdmFyIHkgPSB0aWNrT2Zmc2V0ICsgaSpzaW5nbGVCaW5IZWlnaHQgKyAwLjU7CgogICAgICAgICAgdmFyIHRoaXNMYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhucywgJ3RleHQnKTsKICAgICAgICAgICQodGhpc0xhYmVsKQogICAgICAgICAgICAudGV4dChsYWJlbHNbaV0pCiAgICAgICAgICAgIC5hdHRyKCd5JywgeSkKICAgICAgICAgICAgLmF0dHIoJ2R4JywgbGFiZWxQYWRkaW5nKQogICAgICAgICAgICAuYXR0cignZHknLCAnMC41ZXgnKTsKICAgICAgICAgIGcuYXBwZW5kQ2hpbGQodGhpc0xhYmVsKTsKICAgICAgICAgIG1heExibFdpZHRoID0gTWF0aC5tYXgobWF4TGJsV2lkdGgsIHRoaXNMYWJlbC5nZXRDb21wdXRlZFRleHRMZW5ndGgoKSk7CgogICAgICAgICAgdmFyIHRoaXNUaWNrID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG5zLCAnbGluZScpOwogICAgICAgICAgJCh0aGlzVGljaykKICAgICAgICAgICAgLmF0dHIoJ3gxJywgMCkKICAgICAgICAgICAgLmF0dHIoJ3gyJywgdGlja1dpZHRoKQogICAgICAgICAgICAuYXR0cigneTEnLCB5KQogICAgICAgICAgICAuYXR0cigneTInLCB5KQogICAgICAgICAgICAuYXR0cignc3Ryb2tlLXdpZHRoJywgMSk7CiAgICAgICAgICBnLmFwcGVuZENoaWxkKHRoaXNUaWNrKTsKICAgICAgICB9KTsKCiAgICAgICAgLy8gTm93IHRoYXQgd2Uga25vdyB0aGUgbWF4IGxhYmVsIHdpZHRoLCB3ZSBjYW4gcmlnaHQtanVzdGlmeQogICAgICAgICQoc3ZnKS5maW5kKCd0ZXh0JykKICAgICAgICAgIC5hdHRyKCdkeCcsIGxhYmVsUGFkZGluZyArIG1heExibFdpZHRoKQogICAgICAgICAgLmF0dHIoJ3RleHQtYW5jaG9yJywgJ2VuZCcpOwogICAgICAgIC8vIEZpbmFsIHNpemUgZm9yIDxzdmc+CiAgICAgICAgJChzdmcpLmNzcyh7CiAgICAgICAgICB3aWR0aDogKG1heExibFdpZHRoICsgbGFiZWxQYWRkaW5nKSArICJweCIsCiAgICAgICAgICBoZWlnaHQ6IHRvdGFsSGVpZ2h0ICsgdk1hcmdpbioyICsgInB4IgogICAgICAgIH0pOwoKICAgICAgICBpZiAob3B0aW9ucy5uYV9jb2xvcikgewogICAgICAgICAgJChkaXYpLmFwcGVuZCgnPGRpdj48aSBzdHlsZT0iYmFja2dyb3VuZDonICsgb3B0aW9ucy5uYV9jb2xvciArCiAgICAgICAgICAgICAgICAgICAgICAgICciPjwvaT4gJyArIG9wdGlvbnMubmFfbGFiZWwgKyAnPC9kaXY+Jyk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGlmIChvcHRpb25zLm5hX2NvbG9yKSB7CiAgICAgICAgICBjb2xvcnMucHVzaChvcHRpb25zLm5hX2NvbG9yKTsKICAgICAgICAgIGxhYmVscy5wdXNoKG9wdGlvbnMubmFfbGFiZWwpOwogICAgICAgIH0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbG9ycy5sZW5ndGg7IGkrKykgewogICAgICAgICAgbGVnZW5kSFRNTCArPSAnPGkgc3R5bGU9ImJhY2tncm91bmQ6JyArIGNvbG9yc1tpXSArICc7b3BhY2l0eTonICsKICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5vcGFjaXR5ICsgJyI+PC9pPiAnICsgbGFiZWxzW2ldICsgJzxici8+JzsKICAgICAgICB9CiAgICAgICAgZGl2LmlubmVySFRNTCA9IGxlZ2VuZEhUTUw7CiAgICAgIH0KICAgICAgaWYgKG9wdGlvbnMudGl0bGUpCiAgICAgICAgJChkaXYpLnByZXBlbmQoJzxkaXYgc3R5bGU9Im1hcmdpbi1ib3R0b206M3B4Ij48c3Ryb25nPicgKwogICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnRpdGxlICsgJzwvc3Ryb25nPjwvZGl2PicpOwogICAgICByZXR1cm4gZGl2OwogICAgfTsKCiAgICB0aGlzLmNvbnRyb2xzLmFkZChsZWdlbmQsIG9wdGlvbnMubGF5ZXJJZCk7CiAgfTsKCiAgbWV0aG9kcy5hZGRMYXllcnNDb250cm9sID0gZnVuY3Rpb24oYmFzZUdyb3Vwcywgb3ZlcmxheUdyb3Vwcywgb3B0aW9ucykgewoKICAgIHZhciBzZWxmID0gdGhpczsKCiAgICAvLyBPbmx5IGFsbG93IG9uZSBsYXllcnMgY29udHJvbCBhdCBhIHRpbWUKICAgIG1ldGhvZHMucmVtb3ZlTGF5ZXJzQ29udHJvbC5jYWxsKHRoaXMpOwoKICAgIHZhciBmaXJzdExheWVyID0gdHJ1ZTsKICAgIHZhciBiYXNlID0ge307CiAgICAkLmVhY2goYXNBcnJheShiYXNlR3JvdXBzKSwgZnVuY3Rpb24oaSwgZykgewogICAgICB2YXIgbGF5ZXIgPSBzZWxmLmxheWVyTWFuYWdlci5nZXRMYXllckdyb3VwKGcsIHRydWUpOwogICAgICBpZiAobGF5ZXIpIHsKICAgICAgICBiYXNlW2ddID0gbGF5ZXI7CgogICAgICAgIC8vIENoZWNrIGlmID4xIGJhc2UgbGF5ZXJzIGFyZSB2aXNpYmxlOyBpZiBzbywgaGlkZSBhbGwgYnV0IHRoZSBmaXJzdCBvbmUKICAgICAgICBpZiAoc2VsZi5oYXNMYXllcihsYXllcikpIHsKICAgICAgICAgIGlmIChmaXJzdExheWVyKSB7CiAgICAgICAgICAgIGZpcnN0TGF5ZXIgPSBmYWxzZTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHNlbGYucmVtb3ZlTGF5ZXIobGF5ZXIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSk7CiAgICB2YXIgb3ZlcmxheSA9IHt9OwogICAgJC5lYWNoKGFzQXJyYXkob3ZlcmxheUdyb3VwcyksIGZ1bmN0aW9uKGksIGcpIHsKICAgICAgdmFyIGxheWVyID0gc2VsZi5sYXllck1hbmFnZXIuZ2V0TGF5ZXJHcm91cChnLCB0cnVlKTsKICAgICAgaWYgKGxheWVyKSB7CiAgICAgICAgb3ZlcmxheVtnXSA9IGxheWVyOwogICAgICB9CiAgICB9KTsKCiAgICB2YXIgbGF5ZXJzQ29udHJvbCA9IEwuY29udHJvbC5sYXllcnMoYmFzZSwgb3ZlcmxheSwgb3B0aW9ucykuYWRkVG8odGhpcyk7CiAgICB0aGlzLmN1cnJlbnRMYXllcnNDb250cm9sID0gbGF5ZXJzQ29udHJvbDsKICB9OwoKICBtZXRob2RzLnJlbW92ZUxheWVyc0NvbnRyb2wgPSBmdW5jdGlvbigpIHsKICAgIGlmICh0aGlzLmN1cnJlbnRMYXllcnNDb250cm9sKSB7CiAgICAgIHRoaXMuY3VycmVudExheWVyc0NvbnRyb2wucmVtb3ZlRnJvbSh0aGlzKTsKICAgICAgdGhpcy5jdXJyZW50TGF5ZXJzQ29udHJvbCA9IG51bGw7CiAgICB9CiAgfTsKCiAgbWV0aG9kcy5oaWRlR3JvdXAgPSBmdW5jdGlvbihncm91cCkgewogICAgdmFyIHNlbGYgPSB0aGlzOwogICAgJC5lYWNoKGFzQXJyYXkoZ3JvdXApLCBmdW5jdGlvbihpLCBnKSB7CiAgICAgIHZhciBsYXllciA9IHNlbGYubGF5ZXJNYW5hZ2VyLmdldExheWVyR3JvdXAoZywgdHJ1ZSk7CiAgICAgIGlmIChsYXllcikgewogICAgICAgIHNlbGYucmVtb3ZlTGF5ZXIobGF5ZXIpOwogICAgICB9CiAgICB9KTsKICB9OwoKICBtZXRob2RzLnNob3dHcm91cCA9IGZ1bmN0aW9uKGdyb3VwKSB7CiAgICB2YXIgc2VsZiA9IHRoaXM7CiAgICAkLmVhY2goYXNBcnJheShncm91cCksIGZ1bmN0aW9uKGksIGcpIHsKICAgICAgdmFyIGxheWVyID0gc2VsZi5sYXllck1hbmFnZXIuZ2V0TGF5ZXJHcm91cChnLCB0cnVlKTsKICAgICAgaWYgKGxheWVyKSB7CiAgICAgICAgc2VsZi5hZGRMYXllcihsYXllcik7CiAgICAgIH0KICAgIH0pOwogIH07CgogIG1ldGhvZHMuYWRkUmFzdGVySW1hZ2UgPSBmdW5jdGlvbih1cmksIGJvdW5kcywgb3BhY2l0eSwgYXR0cmlidXRpb24sIGxheWVySWQsIGdyb3VwKSB7CiAgICAvLyB1cmkgaXMgYSBkYXRhIFVSSSBjb250YWluaW5nIGFuIGltYWdlLiBXZSB3YW50IHRvIHBhaW50IHRoaXMgaW1hZ2UgYXMgYQogICAgLy8gbGF5ZXIgYXQgKHRvcC1sZWZ0KSBib3VuZHNbMF0gdG8gKGJvdHRvbS1yaWdodCkgYm91bmRzWzFdLgoKICAgIC8vIFdlIGNhbid0IHNpbXBseSB1c2UgSW1hZ2VPdmVybGF5LCBhcyBpdCB1c2VzIGJpbGluZWFyIHNjYWxpbmcgd2hpY2ggbG9va3MKICAgIC8vIGF3ZnVsIGFzIHlvdSB6b29tIGluIChhbmQgc29tZXRpbWVzIHNoaWZ0cyBwb3NpdGlvbnMgb3IgZGlzYXBwZWFycykuCiAgICAvLyBJbnN0ZWFkLCB3ZSdsbCB1c2UgYSBUaWxlTGF5ZXIuQ2FudmFzIHRvIGRyYXcgcGllY2VzIG9mIHRoZSBpbWFnZS4KCiAgICAvLyBGaXJzdCwgc29tZSBoZWxwZXIgZnVuY3Rpb25zLgoKICAgIC8vIGRlZ3JlZTJ0aWxlIGNvbnZlcnRzIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFuZCB6b29tIHRvIHggYW5kIHkgdGlsZQogICAgLy8gbnVtYmVycy4gVGhlIHRpbGUgbnVtYmVycyByZXR1cm5lZCBjYW4gYmUgbm9uLWludGVncmFsLCBhcyB0aGVyZSdzIG5vCiAgICAvLyByZWFzb24gdG8gZXhwZWN0IHRoYXQgdGhlIGxhdC9sbmcgaW5wdXRzIGFyZSBleGFjdGx5IG9uIHRoZSBib3JkZXIgb2YgdHdvCiAgICAvLyB0aWxlcy4KICAgIC8vCiAgICAvLyBXZSdsbCB1c2UgdGhpcyB0byBjb252ZXJ0IHRoZSBib3VuZHMgd2UgZ290IGZyb20gdGhlIHNlcnZlciwgaW50byBjb29yZHMKICAgIC8vIGluIHRpbGUtc3BhY2UgYXQgYSBnaXZlbiB6b29tIGxldmVsLiBOb3RlIHRoYXQgb25jZSB3ZSBkbyB0aGUgY29udmVyc2lvbiwKICAgIC8vIHdlIGRvbid0IHRvIGRvIGFueSBtb3JlIHRyaWdvbm9tZXRyeSB0byBjb252ZXJ0IGJldHdlZW4gcGl4ZWwgY29vcmRpbmF0ZXMKICAgIC8vIGFuZCB0aWxlIGNvb3JkaW5hdGVzOyB0aGUgc291cmNlIGltYWdlIHBpeGVsIGNvb3JkcywgZGVzdGluYXRpb24gY2FudmFzCiAgICAvLyBwaXhlbCBjb29yZHMsIGFuZCB0aWxlIGNvb3JkcyBhbGwgY2FuIGJlIHNjYWxlZCBsaW5lYXJseS4KICAgIGZ1bmN0aW9uIGRlZ3JlZTJ0aWxlKGxhdCwgbG5nLCB6b29tKSB7CiAgICAgIC8vIFNlZSBodHRwOi8vd2lraS5vcGVuc3RyZWV0bWFwLm9yZy93aWtpL1NsaXBweV9tYXBfdGlsZW5hbWVzCiAgICAgIHZhciBsYXRSYWQgPSBsYXQgKiBNYXRoLlBJIC8gMTgwOwogICAgICB2YXIgbiA9IE1hdGgucG93KDIsIHpvb20pOwogICAgICB2YXIgeCA9IChsbmcgKyAxODApIC8gMzYwICogbgogICAgICB2YXIgeSA9ICgxIC0gTWF0aC5sb2coTWF0aC50YW4obGF0UmFkKSArICgxIC8gTWF0aC5jb3MobGF0UmFkKSkpIC8gTWF0aC5QSSkgLyAyICogbgogICAgICByZXR1cm4ge3g6IHgsIHk6IHl9OwogICAgfQoKICAgIC8vIEdpdmVuIGEgcmFuZ2UgW2Zyb20sdG8pIGFuZCBlaXRoZXIgb25lIG9yIHR3byBudW1iZXJzLCByZXR1cm5zIHRydWUgaWYKICAgIC8vIHRoZXJlIGlzIGFueSBvdmVybGFwIGJldHdlZW4gW3gseDEpIGFuZCB0aGUgcmFuZ2UtLW9yIGlmIHgxIGlzIG9taXR0ZWQsCiAgICAvLyB0aGVuIHJldHVybnMgdHJ1ZSBpZiB4IGlzIHdpdGhpbiBbZnJvbSx0bykuCiAgICBmdW5jdGlvbiBvdmVybGFwKGZyb20sIHRvLCB4LCAvKiBvcHRpb25hbCAqLyB4MSkgewogICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAzKQogICAgICAgIHgxID0geDsKICAgICAgcmV0dXJuIHggPCB0byAmJiB4MSA+PSBmcm9tOwogICAgfQoKICAgIGZ1bmN0aW9uIGdldENhbnZhc1Ntb290aGluZ1Byb3BlcnR5KGN0eCkgewogICAgICB2YXIgY2FuZGlkYXRlcyA9IFsiaW1hZ2VTbW9vdGhpbmdFbmFibGVkIiwgIm1vekltYWdlU21vb3RoaW5nRW5hYmxlZCIsCiAgICAgICAgICAid2Via2l0SW1hZ2VTbW9vdGhpbmdFbmFibGVkIiwgIm1zSW1hZ2VTbW9vdGhpbmdFbmFibGVkIl07CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2FuZGlkYXRlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmICh0eXBlb2YoY3R4W2NhbmRpZGF0ZXNbaV1dKSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgIHJldHVybiBjYW5kaWRhdGVzW2ldOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICAvLyBPdXIgZ2VuZXJhbCBzdHJhdGVneSBpcyB0bzoKICAgIC8vIDEuIExvYWQgdGhlIGRhdGEgVVJJIGluIGFuIEltYWdlKCkgb2JqZWN0LCBzbyB3ZSBjYW4gZ2V0IGl0cyBwaXhlbAogICAgLy8gICAgZGltZW5zaW9ucyBhbmQgdGhlIHVuZGVybHlpbmcgaW1hZ2UgZGF0YS4gKFdlIGNvdWxkIGhhdmUgZG9uZSB0aGlzCiAgICAvLyAgICBieSBub3QgZW5jb2RpbmcgYXMgUE5HIGF0IGFsbCBidXQganVzdCBzZW5kIGFuIGFycmF5IG9mIFJHQkEgdmFsdWVzCiAgICAvLyAgICBmcm9tIHRoZSBzZXJ2ZXIsIGJ1dCB0aGF0IHdvdWxkIGluZmxhdGUgdGhlIEpTT04gdG9vIG11Y2guKQogICAgLy8gMi4gQ3JlYXRlIGEgaGlkZGVuIGNhbnZhcyB0aGF0IHdlIHVzZSBqdXN0IHRvIGV4dHJhY3QgdGhlIGltYWdlIGRhdGEKICAgIC8vICAgIGZyb20gdGhlIEltYWdlICh1c2luZyBDb250ZXh0MkQuZ2V0SW1hZ2VEYXRhKCkpLgogICAgLy8gMy4gQ3JlYXRlIGEgVGlsZUxheWVyLkNhbnZhcyBhbmQgYWRkIGl0IHRvIHRoZSBtYXAuCgogICAgLy8gV2Ugd2FudCB0byBzeW5jaHJvbm91c2x5IGNyZWF0ZSBhbmQgYXR0YWNoIHRoZSBUaWxlTGF5ZXIuQ2FudmFzIChzbyBhbgogICAgLy8gaW1tZWRpYXRlIGNhbGwgdG8gY2xlYXJSYXN0ZXJzKCkgd2lsbCBiZSByZXNwZWN0ZWQsIGZvciBleGFtcGxlKSwgYnV0CiAgICAvLyBJbWFnZSBsb2FkcyBpdHMgZGF0YSBhc3luY2hyb25vdXNseS4gRm9ydHVuYXRlbHkgd2UgY2FuIHJlc29sdmUgdGhpcwogICAgLy8gYnkgcHV0dGluZyBUaWxlTGF5ZXIuQ2FudmFzIGludG8gYXN5bmMgbW9kZSwgd2hpY2ggd2lsbCBsZXQgdXMgY3JlYXRlCiAgICAvLyBhbmQgYXR0YWNoIHRoZSBsYXllciBidXQgaGF2ZSBpdCB3YWl0IHVudGlsIHRoZSBpbWFnZSBpcyBsb2FkZWQgYmVmb3JlCiAgICAvLyBpdCBhY3R1YWxseSBkcmF3cyBhbnl0aGluZy4KCiAgICAvLyBUaGVzZSBhcmUgdGhlIHZhcmlhYmxlcyB0aGF0IHdlIHdpbGwgcG9wdWxhdGUgb25jZSB0aGUgaW1hZ2UgaXMgbG9hZGVkLgogICAgdmFyIGltZ0RhdGEgPSBudWxsOyAvLyAxZCByb3ctbWFqb3IgYXJyYXksIGZvdXIgWzAtMjU1XSBpbnRlZ2VycyBwZXIgcGl4ZWwKICAgIHZhciBpbWdEYXRhTWlwTWFwcGVyID0gbnVsbDsKICAgIHZhciB3ID0gbnVsbDsgICAgICAgLy8gaW1hZ2Ugd2lkdGggaW4gcGl4ZWxzCiAgICB2YXIgaCA9IG51bGw7ICAgICAgIC8vIGltYWdlIGhlaWdodCBpbiBwaXhlbHMKCiAgICAvLyBXZSdsbCB1c2UgdGhpcyBhcnJheSB0byBzdG9yZSBjYWxsYmFja3MgdGhhdCBuZWVkIHRvIGJlIGludm9rZWQgb25jZQogICAgLy8gaW1nRGF0YSwgdywgYW5kIGggaGF2ZSBiZWVuIHJlc29sdmVkLgogICAgdmFyIGltZ0RhdGFDYWxsYmFja3MgPSBbXTsKCiAgICAvLyBDb25zdW1lcnMgb2YgaW1nRGF0YSwgdywgYW5kIGggY2FuIGNhbGwgdGhpcyB0byBiZSBub3RpZmllZCB3aGVuIGRhdGEKICAgIC8vIGlzIGF2YWlsYWJsZS4gVW5saWtlIG1vc3QgYXN5bmMvcHJvbWlzZS1iYXNlZCBBUElzLCB0aGUgY2FsbGJhY2sgd2lsbAogICAgLy8gYmUgaW52b2tlZCBpbW1lZGlhdGVseS9zeW5jaHJvbm91c2x5IGlmIHRoZSBkYXRhIGlzIGFscmVhZHkgYXZhaWxhYmxlLgogICAgZnVuY3Rpb24gZ2V0SW1hZ2VEYXRhKGNhbGxiYWNrKSB7CiAgICAgIGlmIChpbWdEYXRhICE9IG51bGwpIHsKICAgICAgICBjYWxsYmFjayhpbWdEYXRhLCB3LCBoLCBpbWdEYXRhTWlwTWFwcGVyKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpbWdEYXRhQ2FsbGJhY2tzLnB1c2goY2FsbGJhY2spOwogICAgICB9CiAgICB9CgogICAgdmFyIGltZyA9IG5ldyBJbWFnZSgpOwogICAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgICAvLyBTYXZlIHNpemUKICAgICAgdyA9IGltZy53aWR0aDsKICAgICAgaCA9IGltZy5oZWlnaHQ7CgogICAgICAvLyBDcmVhdGUgYSBkdW1teSBjYW52YXMgdG8gZXh0cmFjdCB0aGUgaW1hZ2UgZGF0YQogICAgICB2YXIgaW1nRGF0YUNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwogICAgICBpbWdEYXRhQ2FudmFzLndpZHRoID0gdzsKICAgICAgaW1nRGF0YUNhbnZhcy5oZWlnaHQgPSBoOwogICAgICBpbWdEYXRhQ2FudmFzLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1nRGF0YUNhbnZhcyk7CgogICAgICB2YXIgaW1nRGF0YUN0eCA9IGltZ0RhdGFDYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgaW1nRGF0YUN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKCiAgICAgIC8vIFNhdmUgdGhlIGltYWdlIGRhdGEuCiAgICAgIGltZ0RhdGEgPSBpbWdEYXRhQ3R4LmdldEltYWdlRGF0YSgwLCAwLCB3LCBoKS5kYXRhOwogICAgICBpbWdEYXRhTWlwTWFwcGVyID0gbmV3IE1pcG1hcHBlcihpbWcpOwoKICAgICAgLy8gRG9uZSB3aXRoIHRoZSBjYW52YXMsIHJlbW92ZSBpdCBmcm9tIHRoZSBwYWdlIHNvIGl0IGNhbiBiZSBnYydkLgogICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGltZ0RhdGFDYW52YXMpOwoKICAgICAgLy8gQWxlcnQgYW55IGdldEltYWdlRGF0YSBjYWxsZXJzIHdobyBhcmUgd2FpdGluZy4KICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbWdEYXRhQ2FsbGJhY2tzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaW1nRGF0YUNhbGxiYWNrc1tpXShpbWdEYXRhLCB3LCBoLCBpbWdEYXRhTWlwTWFwcGVyKTsKICAgICAgfQogICAgICBpbWdEYXRhQ2FsbGJhY2tzID0gW107CiAgICB9OwogICAgaW1nLnNyYyA9IHVyaTsKCiAgICB2YXIgY2FudmFzVGlsZXMgPSBMLnRpbGVMYXllci5jYW52YXMoewogICAgICBvcGFjaXR5OiBvcGFjaXR5LAogICAgICBhdHRyaWJ1dGlvbjogYXR0cmlidXRpb24sCiAgICAgIGRldGVjdFJldGluYTogdHJ1ZSwKICAgICAgYXN5bmM6IHRydWUKICAgIH0pOwoKICAgIGNhbnZhc1RpbGVzLmRyYXdUaWxlID0gZnVuY3Rpb24oY2FudmFzLCB0aWxlUG9pbnQsIHpvb20pIHsKICAgICAgZ2V0SW1hZ2VEYXRhKGZ1bmN0aW9uKGltZ0RhdGEsIHcsIGgsIG1pcG1hcHBlcikgewogICAgICAgIHRyeSB7CiAgICAgICAgICAvLyBUaGUgQ29udGV4dDJEIHdlJ2xsIGJlaW5nIGRyYXdpbmcgb250by4gSXQncyBhbHdheXMgMjU2eDI1Ni4KICAgICAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKCiAgICAgICAgICAvLyBDb252ZXJ0IG91ciBpbWFnZSBkYXRhJ3MgdG9wLWxlZnQgYW5kIGJvdHRvbS1yaWdodCBsb2NhdGlvbnMgaW50bwogICAgICAgICAgLy8geC95IHRpbGUgY29vcmRpbmF0ZXMuIFRoaXMgaXMgZXNzZW50aWFsbHkgZG9pbmcgYSBzcGhlcmljYWwgbWVyY2F0b3IKICAgICAgICAgIC8vIHByb2plY3Rpb24sIHRoZW4gbXVsdGlwbHlpbmcgYnkgMl56b29tLgogICAgICAgICAgdmFyIHRvcExlZnQgPSBkZWdyZWUydGlsZShib3VuZHNbMF1bMF0sIGJvdW5kc1swXVsxXSwgem9vbSk7CiAgICAgICAgICB2YXIgYm90dG9tUmlnaHQgPSBkZWdyZWUydGlsZShib3VuZHNbMV1bMF0sIGJvdW5kc1sxXVsxXSwgem9vbSk7CiAgICAgICAgICAvLyBUaGUgc2l6ZSBvZiB0aGUgaW1hZ2UgaW4geC95IHRpbGUgY29vcmRpbmF0ZXMuCiAgICAgICAgICB2YXIgZXh0ZW50ID0ge3g6IGJvdHRvbVJpZ2h0LnggLSB0b3BMZWZ0LngsIHk6IGJvdHRvbVJpZ2h0LnkgLSB0b3BMZWZ0Lnl9OwoKICAgICAgICAgIC8vIFNob3J0IGNpcmN1aXQgaWYgdGlsZSBpcyB0b3RhbGx5IGRpc2pvaW50IGZyb20gaW1hZ2UuCiAgICAgICAgICBpZiAoIW92ZXJsYXAodGlsZVBvaW50LngsIHRpbGVQb2ludC54ICsgMSwgdG9wTGVmdC54LCBib3R0b21SaWdodC54KSkKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgaWYgKCFvdmVybGFwKHRpbGVQb2ludC55LCB0aWxlUG9pbnQueSArIDEsIHRvcExlZnQueSwgYm90dG9tUmlnaHQueSkpCiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgICAvLyBUaGUgbGluZWFyIHJlc29sdXRpb24gb2YgdGhlIHRpbGUgd2UncmUgZHJhd2luZyBpcyBhbHdheXMgMjU2cHggcGVyIHRpbGUgdW5pdC4KICAgICAgICAgIC8vIElmIHRoZSBsaW5lYXIgcmVzb2x1dGlvbiAoaW4gZWl0aGVyIGRpcmVjdGlvbikgb2YgdGhlIGltYWdlIGlzIGxlc3MgdGhhbiAyNTZweAogICAgICAgICAgLy8gcGVyIHRpbGUgdW5pdCwgdGhlbiB1c2UgbmVhcmVzdCBuZWlnaGJvcjsgb3RoZXJ3aXNlLCB1c2UgdGhlIGNhbnZhcydzIGJ1aWx0LWluCiAgICAgICAgICAvLyBzY2FsaW5nLgogICAgICAgICAgdmFyIGltZ1JlcyA9IHsKICAgICAgICAgICAgeDogdyAvIGV4dGVudC54LAogICAgICAgICAgICB5OiBoIC8gZXh0ZW50LnkKICAgICAgICAgIH07CgogICAgICAgICAgLy8gV2UgY2FuIGRvIHRoZSBhY3R1YWwgZHJhd2luZyBpbiBvbmUgb2YgdGhyZWUgd2F5czoKICAgICAgICAgIC8vIC0gQ2FsbCBkcmF3SW1hZ2UoKS4gVGhpcyBpcyBlYXN5IGFuZCBmYXN0LCBhbmQgcmVzdWx0cyBpbiBzbW9vdGgKICAgICAgICAgIC8vICAgaW50ZXJwb2xhdGlvbiAoYmlsaW5lYXI/KS4gVGhpcyBpcyB3aGF0IHdlIHdhbnQgd2hlbiB3ZSBhcmUKICAgICAgICAgIC8vICAgcmVkdWNpbmcgdGhlIGltYWdlIGZyb20gaXRzIG5hdGl2ZSBzaXplLgogICAgICAgICAgLy8gLSBDYWxsIGRyYXdJbWFnZSgpIHdpdGggaW1hZ2VTbW9vdGhpbmdFbmFibGVkPWZhbHNlLiBUaGlzIGlzIGVhc3kKICAgICAgICAgIC8vICAgYW5kIGZhc3QgYW5kIGdpdmVzIHVzIG5lYXJlc3QtbmVpZ2hib3IgaW50ZXJwb2xhdGlvbiwgd2hpY2ggaXMgd2hhdAogICAgICAgICAgLy8gICB3ZSB3YW50IHdoZW4gZW5sYXJnaW5nIHRoZSBpbWFnZS4gSG93ZXZlciwgaXQncyB1bnN1cHBvcnRlZCBvbiBtYW55CiAgICAgICAgICAvLyAgIGJyb3dzZXJzIChpbmNsdWRpbmcgUXRXZWJraXQpLgogICAgICAgICAgLy8gLSBEbyBhIG1hbnVhbCBuZWFyZXN0LW5laWdoYm9yIGludGVycG9sYXRpb24uIFRoaXMgaXMgd2hhdCB3ZSdsbCBmYWxsCiAgICAgICAgICAvLyAgIGJhY2sgdG8gd2hlbiBlbmxhcmdpbmcsIGFuZCBpbWFnZVNtb290aGluZ0VuYWJsZWQgaXNuJ3Qgc3VwcG9ydGVkLgogICAgICAgICAgLy8gICBJbiB0aGVvcnkgaXQncyBzbG93ZXIsIGJ1dCBzdGlsbCBwcmV0dHkgZmFzdCBvbiBteSBtYWNoaW5lLCBhbmQgdGhlCiAgICAgICAgICAvLyAgIHJlc3VsdHMgbG9vayB0aGUgc2FtZSBBRkFJQ1QuCgogICAgICAgICAgLy8gSXMgaW1hZ2VTbW9vdGhpbmdFbmFibGVkIHN1cHBvcnRlZD8gSWYgc28sIHdlIGNhbiBsZXQgY2FudmFzIGRvCiAgICAgICAgICAvLyBuZWFyZXN0LW5laWdoYm9yIGludGVycG9sYXRpb24gZm9yIHVzLgogICAgICAgICAgdmFyIHNtb290aGluZ1Byb3BlcnR5ID0gZ2V0Q2FudmFzU21vb3RoaW5nUHJvcGVydHkoY3R4KTsKCiAgICAgICAgICBpZiAoc21vb3RoaW5nUHJvcGVydHkgfHwgaW1nUmVzLnggPj0gMjU2ICYmIGltZ1Jlcy55ID49IDI1NikgewogICAgICAgICAgICAvLyBVc2UgYnVpbHQtaW4gc2NhbGluZwoKICAgICAgICAgICAgLy8gVHVybiBvZmYgYW50aS1hbGlhc2luZyBpZiBuZWNlc3NhcnkKICAgICAgICAgICAgaWYgKHNtb290aGluZ1Byb3BlcnR5KSB7CiAgICAgICAgICAgICAgY3R4W3Ntb290aGluZ1Byb3BlcnR5XSA9IGltZ1Jlcy54ID49IDI1NiAmJiBpbWdSZXMueSA+PSAyNTY7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIERvbid0IG5lY2Vzc2FyaWx5IGRyYXcgd2l0aCB0aGUgZnVsbC1zaXplIGltYWdlOyBpZiB3ZSdyZQogICAgICAgICAgICAvLyBkb3duc2NhbGluZywgdXNlIHRoZSBtaXBtYXBwZXIgdG8gZ2V0IGEgcHJlLWRvd25zY2FsZWQgaW1hZ2UKICAgICAgICAgICAgLy8gKHNlZSBjb21tZW50cyBvbiBNaXBtYXBwZXIgY2xhc3MgZm9yIHdoeSB0aGlzIG1hdHRlcnMpLgogICAgICAgICAgICBtaXBtYXBwZXIuZ2V0QnlTaXplKGV4dGVudC54KjI1NiwgZXh0ZW50LnkqMjU2LCBmdW5jdGlvbihtaXApIHsKICAgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGltYWdlIHdpbGwgZ28gb2ZmIHRoZSBlZGdlIG9mIHRoZSBjYW52YXMtLQogICAgICAgICAgICAgIC8vIHRoYXQncyBPSywgdGhlIGNhbnZhcyBzaG91bGQgY2xpcCBhcHByb3ByaWF0ZWx5LgogICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UobWlwLAogICAgICAgICAgICAgICAgLy8gQ29udmVydCBhYnMgdGlsZSBjb29yZHMgdG8gcmVsIHRpbGUgY29vcmRzLCB0aGVuICoyNTYgdG8gY29udmVydAogICAgICAgICAgICAgICAgLy8gdG8gcmVsIHBpeGVsIGNvb3JkcwogICAgICAgICAgICAgICAgKHRvcExlZnQueCAtIHRpbGVQb2ludC54KSAqIDI1NiwKICAgICAgICAgICAgICAgICh0b3BMZWZ0LnkgLSB0aWxlUG9pbnQueSkgKiAyNTYsCiAgICAgICAgICAgICAgICAvLyBBbHdheXMgZHJhdyB0aGUgd2hvbGUgdGhpbmcgYW5kIGxldCBjYW52YXMgY2xpcDsgc28gd2UgY2FuIGp1c3QKICAgICAgICAgICAgICAgIC8vIGNvbnZlcnQgZnJvbSBzaXplIGluIHRpbGUgY29vcmRzIHN0cmFpZ2h0IHRvIHBpeGVscwogICAgICAgICAgICAgICAgZXh0ZW50LnggKiAyNTYsCiAgICAgICAgICAgICAgICBleHRlbnQueSAqIDI1NgogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIFVzZSBtYW51YWwgbmVhcmVzdC1uZWlnaGJvciBpbnRlcnBvbGF0aW9uCgogICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHNvdXJjZSBpbWFnZSBwaXhlbCBjb29yZGluYXRlcyB0aGF0IGNvcnJlc3BvbmQgd2l0aAogICAgICAgICAgICAvLyB0aGUgdG9wLWxlZnQgYW5kIGJvdHRvbS1yaWdodCBvZiB0aGlzIHRpbGUuIChJZiB0aGUgc291cmNlIGltYWdlCiAgICAgICAgICAgIC8vIG9ubHkgcGFydGlhbGx5IG92ZXJsYXBzIHRoZSB0aWxlLCB3ZSB1c2UgbWF4L21pbiB0byBsaW1pdCB0aGUKICAgICAgICAgICAgLy8gc291cmNlU3RhcnQvRW5kIHRvIG9ubHkgcmVmbGVjdCB0aGUgb3ZlcmxhcHBpbmcgcG9ydGlvbi4pCiAgICAgICAgICAgIHZhciBzb3VyY2VTdGFydCA9IHsKICAgICAgICAgICAgICB4OiBNYXRoLm1heCgwLCBNYXRoLmZsb29yKCh0aWxlUG9pbnQueCAtIHRvcExlZnQueCkgKiBpbWdSZXMueCkpLAogICAgICAgICAgICAgIHk6IE1hdGgubWF4KDAsIE1hdGguZmxvb3IoKHRpbGVQb2ludC55IC0gdG9wTGVmdC55KSAqIGltZ1Jlcy55KSkKICAgICAgICAgICAgfTsKICAgICAgICAgICAgdmFyIHNvdXJjZUVuZCA9IHsKICAgICAgICAgICAgICB4OiBNYXRoLm1pbih3LCBNYXRoLmNlaWwoKHRpbGVQb2ludC54ICsgMSAtIHRvcExlZnQueCkgKiBpbWdSZXMueCkpLAogICAgICAgICAgICAgIHk6IE1hdGgubWluKGgsIE1hdGguY2VpbCgodGlsZVBvaW50LnkgKyAxIC0gdG9wTGVmdC55KSAqIGltZ1Jlcy55KSkKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIC8vIFRoZSBzaXplLCBpbiBkZXN0IHBpeGVscywgdGhhdCBlYWNoIHNvdXJjZSBwaXhlbCBzaG91bGQgb2NjdXB5LgogICAgICAgICAgICAvLyBUaGlzIG1pZ2h0IGJlIGdyZWF0ZXIgb3IgbGVzcyB0aGFuIDEgKGUuZy4gaWYgeCBhbmQgeSByZXNvbHV0aW9uCiAgICAgICAgICAgIC8vIGFyZSB2ZXJ5IGRpZmZlcmVudCkuCiAgICAgICAgICAgIHZhciBwaXhlbFNpemUgPSB7CiAgICAgICAgICAgICAgeDogMjU2IC8gaW1nUmVzLngsCiAgICAgICAgICAgICAgeTogMjU2IC8gaW1nUmVzLnkKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIC8vIEZvciBlYWNoIHBpeGVsIGluIHRoZSBzb3VyY2UgaW1hZ2UgdGhhdCBvdmVybGFwcyB0aGUgdGlsZS4uLgogICAgICAgICAgICBmb3IgKHZhciByb3cgPSBzb3VyY2VTdGFydC55OyByb3cgPCBzb3VyY2VFbmQueTsgcm93KyspIHsKICAgICAgICAgICAgICBmb3IgKHZhciBjb2wgPSBzb3VyY2VTdGFydC54OyBjb2wgPCBzb3VyY2VFbmQueDsgY29sKyspIHsKICAgICAgICAgICAgICAgIC8vIC4uLmV4dHJhY3QgdGhlIHBpeGVsIGRhdGEuLi4KICAgICAgICAgICAgICAgIHZhciBpID0gKChyb3cgKiB3KSArIGNvbCkgKiA0OwogICAgICAgICAgICAgICAgdmFyIHIgPSBpbWdEYXRhW2ldOwogICAgICAgICAgICAgICAgdmFyIGcgPSBpbWdEYXRhW2krMV07CiAgICAgICAgICAgICAgICB2YXIgYiA9IGltZ0RhdGFbaSsyXTsKICAgICAgICAgICAgICAgIHZhciBhID0gaW1nRGF0YVtpKzNdOwogICAgICAgICAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICJyZ2JhKCIgKyBbcixnLGIsYS8yNTVdLmpvaW4oIiwiKSArICIpIjsKCiAgICAgICAgICAgICAgICAvLyAuLi5jYWxjdWxhdGUgdGhlIGNvcnJlc3BvbmRpbmcgcGl4ZWwgY29vcmQgaW4gdGhlIGRlc3QgaW1hZ2UKICAgICAgICAgICAgICAgIC8vIHdoZXJlIGl0IHNob3VsZCBiZSBkcmF3bi4uLgogICAgICAgICAgICAgICAgdmFyIHBpeGVsUG9zID0gewogICAgICAgICAgICAgICAgICB4OiAoKChjb2wgLyBpbWdSZXMueCkgKyB0b3BMZWZ0LngpIC0gdGlsZVBvaW50LngpICogMjU2LAogICAgICAgICAgICAgICAgICB5OiAoKChyb3cgLyBpbWdSZXMueSkgKyB0b3BMZWZ0LnkpIC0gdGlsZVBvaW50LnkpICogMjU2CiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIC8vIC4uLmFuZCBkcmF3IGEgcmVjdGFuZ2xlIHRoZXJlLgogICAgICAgICAgICAgICAgY3R4LmZpbGxSZWN0KAogICAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKHBpeGVsUG9zLngpLAogICAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKHBpeGVsUG9zLnkpLAogICAgICAgICAgICAgICAgICAvLyBMb29rcyBjcmF6eSwgYnV0IHRoaXMgaXMgbmVjZXNzYXJ5IHRvIHByZXZlbnQgcm91bmRpbmcgZnJvbQogICAgICAgICAgICAgICAgICAvLyBjYXVzaW5nIG92ZXJsYXAgYmV0d2VlbiB0aGlzIHJlY3QgYW5kIGl0cyBuZWlnaGJvcnMuIFRoZQogICAgICAgICAgICAgICAgICAvLyBtaW51ZW5kIGlzIHRoZSBsb2NhdGlvbiBvZiB0aGUgbmV4dCBwaXhlbCwgd2hpbGUgdGhlCiAgICAgICAgICAgICAgICAgIC8vIHN1YnRyYWhlbmQgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IHBpeGVsICh0byB0dXJuIGFuCiAgICAgICAgICAgICAgICAgIC8vIGFic29sdXRlIGNvb3JkaW5hdGUgdG8gYSB3aWR0aC9oZWlnaHQpLiBZZXMsIEkgaGFkIHRvIGxvb2sKICAgICAgICAgICAgICAgICAgLy8gdXAgbWludWVuZCBhbmQgc3VidHJhaGVuZC4KICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChwaXhlbFBvcy54ICsgcGl4ZWxTaXplLngpIC0gTWF0aC5yb3VuZChwaXhlbFBvcy54KSwKICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZChwaXhlbFBvcy55ICsgcGl4ZWxTaXplLnkpIC0gTWF0aC5yb3VuZChwaXhlbFBvcy55KSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGNhbnZhc1RpbGVzLnRpbGVEcmF3bihjYW52YXMpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9OwoKICAgIHRoaXMubGF5ZXJNYW5hZ2VyLmFkZExheWVyKGNhbnZhc1RpbGVzLCAiaW1hZ2UiLCBsYXllcklkLCBncm91cCk7CiAgfTsKCiAgbWV0aG9kcy5yZW1vdmVJbWFnZSA9IGZ1bmN0aW9uKGxheWVySWQpIHsKICAgIHRoaXMubGF5ZXJNYW5hZ2VyLnJlbW92ZUxheWVyKCJpbWFnZSIsIGxheWVySWQpOwogIH07CgogIG1ldGhvZHMuY2xlYXJJbWFnZXMgPSBmdW5jdGlvbigpIHsKICAgIHRoaXMubGF5ZXJNYW5hZ2VyLmNsZWFyTGF5ZXJzKCJpbWFnZSIpOwogIH07CgogIGZ1bmN0aW9uIHByZXZlbnRVbmludGVuZGVkWm9vbU9uU2Nyb2xsKG1hcCkgewogICAgLy8gUHJldmVudCB1bndhbnRlZCBzY3JvbGwgY2FwdHVyaW5nLiBTaW1pbGFyIGluIHB1cnBvc2UgdG8KICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9DbGlmZkNsb3VkL0xlYWZsZXQuU2xlZXAgYnV0IHdpdGggYQogICAgLy8gZGlmZmVyZW50IHNldCBvZiBoZXVyaXN0aWNzLgoKICAgIC8vIFRoZSBiYXNpYyBpZGVhIGlzIHRoYXQgd2hlbiBhIG1vdXNld2hlZWwvRE9NTW91c2VTY3JvbGwKICAgIC8vIGV2ZW50IGlzIHNlZW4sIHdlIGRpc2FibGUgc2Nyb2xsIHdoZWVsIHpvb21pbmcgdW50aWwgdGhlCiAgICAvLyB1c2VyIG1vdmVzIHRoZWlyIG1vdXNlIGN1cnNvciBvciBjbGlja3Mgb24gdGhlIG1hcC4gVGhpcwogICAgLy8gaXMgc2xpZ2h0bHkgdHJpY2tpZXIgdGhhbiBqdXN0IGxpc3RlbmluZyBmb3IgbW91c2Vtb3ZlLAogICAgLy8gYmVjYXVzZSBtb3VzZW1vdmUgaXMgZmlyZWQgd2hlbiB0aGUgcGFnZSBpcyBzY3JvbGxlZCwKICAgIC8vIGV2ZW4gaWYgdGhlIHVzZXIgZGlkIG5vdCBwaHlzaWNhbGx5IG1vdmUgdGhlIG1vdXNlLiBXZQogICAgLy8gaGFuZGxlIHRoaXMgYnkgZXhhbWluaW5nIHRoZSBtb3VzZW1vdmUgZXZlbnQncyBzY3JlZW5YCiAgICAvLyBhbmQgc2NyZWVuWSBwcm9wZXJ0aWVzOyBpZiB0aGV5IGNoYW5nZSwgd2Uga25vdyBpdCdzIGEKICAgIC8vICJ0cnVlIiBtb3ZlLgoKICAgIC8vIGxhc3RTY3JlZW4gY2FuIG5ldmVyIGJlIG51bGwsIGJ1dCBpdHMgeCBhbmQgeSBjYW4uCiAgICB2YXIgbGFzdFNjcmVlbiA9IHt4OiBudWxsLCB5OiBudWxsfTsKICAgICQoZG9jdW1lbnQpLm9uKCJtb3VzZXdoZWVsIERPTU1vdXNlU2Nyb2xsIiwgIioiLCBmdW5jdGlvbihlKSB7CiAgICAgIC8vIERpc2FibGUgem9vbWluZyAodW50aWwgdGhlIG1vdXNlIG1vdmVzIG9yIGNsaWNrKQogICAgICBtYXAuc2Nyb2xsV2hlZWxab29tLmRpc2FibGUoKTsKICAgICAgLy8gQW55IG1vdXNlbW92ZSBldmVudHMgYXQgdGhpcyBzY3JlZW4gcG9zaXRpb24gd2lsbCBiZSBpZ25vcmVkLgogICAgICBsYXN0U2NyZWVuID0ge3g6IGUub3JpZ2luYWxFdmVudC5zY3JlZW5YLCB5OiBlLm9yaWdpbmFsRXZlbnQuc2NyZWVuWX07CiAgICB9KTsKICAgICQoZG9jdW1lbnQpLm9uKCJtb3VzZW1vdmUiLCAiKiIsIGZ1bmN0aW9uKGUpIHsKICAgICAgLy8gRGlkIHRoZSBtb3VzZSByZWFsbHkgbW92ZT8KICAgICAgaWYgKGxhc3RTY3JlZW4ueCAhPT0gbnVsbCAmJiBlLnNjcmVlblggIT09IGxhc3RTY3JlZW4ueCB8fCBlLnNjcmVlblkgIT09IGxhc3RTY3JlZW4ueSkgewogICAgICAgIC8vIEl0IHJlYWxseSBtb3ZlZC4gRW5hYmxlIHpvb21pbmcuCiAgICAgICAgbWFwLnNjcm9sbFdoZWVsWm9vbS5lbmFibGUoKTsKICAgICAgICBsYXN0U2NyZWVuID0ge3g6IG51bGwsIHk6IG51bGx9OwogICAgICB9CiAgICB9KTsKICAgICQoZG9jdW1lbnQpLm9uKCJtb3VzZWRvd24iLCAiLmxlYWZsZXQiLCBmdW5jdGlvbihlKSB7CiAgICAgIC8vIENsaWNraW5nIGFsd2F5cyBlbmFibGVzIHpvb21pbmcuCiAgICAgIG1hcC5zY3JvbGxXaGVlbFpvb20uZW5hYmxlKCk7CiAgICAgIGxhc3RTY3JlZW4gPSB7eDogbnVsbCwgeTogbnVsbH07CiAgICB9KTsKICB9CgogIEhUTUxXaWRnZXRzLndpZGdldCh7CiAgICBuYW1lOiAibGVhZmxldCIsCiAgICB0eXBlOiAib3V0cHV0IiwKICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICAgIC8vIGhhcmQtY29kaW5nIGNlbnRlci96b29tIGhlcmUgZm9yIGEgbm9uLWVtcHR5IGluaXRpYWwgdmlldywgc2luY2UgdGhlcmUKICAgICAgLy8gaXMgbm8gd2F5IGZvciBodG1sd2lkZ2V0cyB0byBwYXNzIGluaXRpYWwgcGFyYW1zIHRvIGluaXRpYWxpemUoKQogICAgICB2YXIgbWFwID0gTC5tYXAoZWwsIHsKICAgICAgICBjZW50ZXI6IFs1MS41MDUsIC0wLjA5XSwKICAgICAgICB6b29tOiAxMwogICAgICB9KTsKCiAgICAgIHByZXZlbnRVbmludGVuZGVkWm9vbU9uU2Nyb2xsKG1hcCk7CgogICAgICAvLyBTdG9yZSBzb21lIHN0YXRlIGluIHRoZSBtYXAgb2JqZWN0CiAgICAgIG1hcC5sZWFmbGV0ciA9IHsKICAgICAgICAvLyBIYXMgdGhlIG1hcCBldmVyIHJlbmRlcmVkIHN1Y2Nlc3NmdWxseT8KICAgICAgICBoYXNSZW5kZXJlZDogZmFsc2UsCiAgICAgICAgLy8gRGF0YSB0byBiZSByZW5kZXJlZCB3aGVuIHJlc2l6ZSBpcyBjYWxsZWQgd2l0aCBhcmVhICE9IDAKICAgICAgICBwZW5kaW5nUmVuZGVyRGF0YTogbnVsbAogICAgICB9OwoKICAgICAgaWYgKCFIVE1MV2lkZ2V0cy5zaGlueU1vZGUpIHJldHVybiBtYXA7CgogICAgICAvLyBUaGUgbWFwIGlzIHJlbmRlcmVkIHN0YXRpY2x5IChubyBvdXRwdXQgYmluZGluZywgc28gbm8gdGhpcy5nZXRJZCgpKQogICAgICBpZiAodHlwZW9mIHRoaXMuZ2V0SWQgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gbWFwOwoKICAgICAgbWFwLmlkID0gdGhpcy5nZXRJZChlbCk7CgogICAgICAvLyBTdG9yZSB0aGUgbWFwIG9uIHRoZSBlbGVtZW50IHNvIHdlIGNhbiBmaW5kIGl0IGxhdGVyIGJ5IElECiAgICAgICQoZWwpLmRhdGEoImxlYWZsZXQtbWFwIiwgbWFwKTsKCiAgICAgIC8vIFdoZW4gdGhlIG1hcCBpcyBjbGlja2VkLCBzZW5kIHRoZSBjb29yZGluYXRlcyBiYWNrIHRvIHRoZSBhcHAKICAgICAgbWFwLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgICBTaGlueS5vbklucHV0Q2hhbmdlKG1hcC5pZCArICdfY2xpY2snLCB7CiAgICAgICAgICBsYXQ6IGUubGF0bG5nLmxhdCwKICAgICAgICAgIGxuZzogZS5sYXRsbmcubG5nLAogICAgICAgICAgJy5ub25jZSc6IE1hdGgucmFuZG9tKCkgLy8gRm9yY2UgcmVhY3Rpdml0eSBpZiBsYXQvbG5nIGhhc24ndCBjaGFuZ2VkCiAgICAgICAgfSk7CiAgICAgIH0pOwoKICAgICAgdmFyIGdyb3VwVGltZXJJZCA9IG51bGw7CgogICAgICBtYXAKICAgICAgICAub24oJ21vdmVlbmQnLCBmdW5jdGlvbihlKSB7IHVwZGF0ZUJvdW5kcyhlLnRhcmdldCk7IH0pCiAgICAgICAgLm9uKCdsYXllcmFkZCBsYXllcnJlbW92ZScsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgIC8vIElmIHRoZSBsYXllciB0aGF0J3MgY29taW5nIG9yIGdvaW5nIGlzIGEgZ3JvdXAgd2UgY3JlYXRlZCwgdGVsbAogICAgICAgICAgLy8gdGhlIHNlcnZlci4KICAgICAgICAgIGlmIChtYXAubGF5ZXJNYW5hZ2VyLmdldEdyb3VwTmFtZUZyb21MYXllckdyb3VwKGUubGF5ZXIpKSB7CiAgICAgICAgICAgIC8vIEJ1dCB0byBhdm9pZCBjaGF0dGluZXNzLCBjb2FsZXNjZSBldmVudHMKICAgICAgICAgICAgaWYgKGdyb3VwVGltZXJJZCkgewogICAgICAgICAgICAgIGNsZWFyVGltZW91dChncm91cFRpbWVySWQpOwogICAgICAgICAgICAgIGdyb3VwVGltZXJJZCA9IG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZ3JvdXBUaW1lcklkID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBncm91cFRpbWVySWQgPSBudWxsOwogICAgICAgICAgICAgIFNoaW55Lm9uSW5wdXRDaGFuZ2UobWFwLmlkICsgJ19ncm91cHMnLAogICAgICAgICAgICAgICAgbWFwLmxheWVyTWFuYWdlci5nZXRWaXNpYmxlR3JvdXBzKCkpOwogICAgICAgICAgICB9LCAxMDApOwogICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgcmV0dXJuIG1hcDsKICAgIH0sCiAgICByZW5kZXJWYWx1ZTogZnVuY3Rpb24oZWwsIGRhdGEsIG1hcCkgewogICAgICAvLyBMZWFmbGV0IGRvZXMgbm90IGJlaGF2ZSB3ZWxsIHdoZW4geW91IHNldCB1cCBhIGJ1bmNoIG9mIGxheWVycyB3aGVuCiAgICAgIC8vIHRoZSBtYXAgaXMgbm90IHZpc2libGUgKHdpZHRoL2hlaWdodCA9PSAwKS4gUG9wdXBzIGdldCBtaXNhbGlnbmVkCiAgICAgIC8vIHJlbGF0aXZlIHRvIHRoZWlyIG93bmluZyBtYXJrZXJzLCBhbmQgdGhlIGZpdEJvdW5kcyBjYWxjdWxhdGlvbnMKICAgICAgLy8gYXJlIG9mZi4gVGhlcmVmb3JlIHdlIHdhaXQgdW50aWwgdGhlIG1hcCBpcyBhY3R1YWxseSBzaG93aW5nIHRvCiAgICAgIC8vIHJlbmRlciB0aGUgdmFsdWUgKHdlIHJlbHkgb24gdGhlIHJlc2l6ZSgpIGNhbGxiYWNrIGJlaW5nIGludm9rZWQKICAgICAgLy8gYXQgdGhlIGFwcHJvcHJpYXRlIHRpbWUpLgogICAgICAvLwogICAgICAvLyBUaGVyZSBtYXkgYmUgYW4gaXNzdWUgd2l0aCBsZWFmbGV0UHJveHkoKSBjYWxscyBiZWluZyBtYWRlIHdoaWxlCiAgICAgIC8vIHRoZSBtYXAgaXMgbm90IGJlaW5nIHZpZXdlZC0tbm90IHN1cmUgd2hhdCB0aGUgcmlnaHQgc29sdXRpb24gaXMKICAgICAgLy8gdGhlcmUuCiAgICAgIGlmIChlbC5vZmZzZXRXaWR0aCA9PT0gMCB8fCBlbC5vZmZzZXRIZWlnaHQgPT09IDApIHsKICAgICAgICBtYXAubGVhZmxldHIucGVuZGluZ1JlbmRlckRhdGEgPSBkYXRhOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBtYXAubGVhZmxldHIucGVuZGluZ1JlbmRlckRhdGEgPSBudWxsOwoKICAgICAgLy8gTWVyZ2UgZGF0YSBvcHRpb25zIGludG8gZGVmYXVsdHMKICAgICAgdmFyIG9wdGlvbnMgPSAkLmV4dGVuZCh7IHpvb21Ub0xpbWl0czogImFsd2F5cyIgfSwgZGF0YS5vcHRpb25zKTsKCiAgICAgIGlmICghbWFwLmxheWVyTWFuYWdlcikgewogICAgICAgIG1hcC5jb250cm9scyA9IG5ldyBDb250cm9sU3RvcmUobWFwKTsKICAgICAgICBtYXAubGF5ZXJNYW5hZ2VyID0gbmV3IExheWVyTWFuYWdlcihtYXApOwogICAgICB9IGVsc2UgewogICAgICAgIG1hcC5jb250cm9scy5jbGVhcigpOwogICAgICAgIG1hcC5sYXllck1hbmFnZXIuY2xlYXIoKTsKICAgICAgfQoKICAgICAgdmFyIGV4cGxpY2l0VmlldyA9IGZhbHNlOwogICAgICBpZiAoZGF0YS5zZXRWaWV3KSB7CiAgICAgICAgZXhwbGljaXRWaWV3ID0gdHJ1ZTsKICAgICAgICBtYXAuc2V0Vmlldy5hcHBseShtYXAsIGRhdGEuc2V0Vmlldyk7CiAgICAgIH0KICAgICAgaWYgKGRhdGEuZml0Qm91bmRzKSB7CiAgICAgICAgZXhwbGljaXRWaWV3ID0gdHJ1ZTsKICAgICAgICBtZXRob2RzLmZpdEJvdW5kcy5hcHBseShtYXAsIGRhdGEuZml0Qm91bmRzKTsKICAgICAgfQoKICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSB6b29tVG9MaW1pdHMgb3B0aW9uIHNheXMgdGhhdCB0aGUgbWFwIHNob3VsZCBiZQogICAgICAvLyB6b29tZWQgdG8gbWFwIGVsZW1lbnRzLgogICAgICBmdW5jdGlvbiBuZWVkc1pvb20oKSB7CiAgICAgICAgcmV0dXJuIG9wdGlvbnMuem9vbVRvTGltaXRzID09PSAiYWx3YXlzIiB8fAogICAgICAgICAgICAgICAob3B0aW9ucy56b29tVG9MaW1pdHMgPT09ICJmaXJzdCIgJiYgIW1hcC5sZWFmbGV0ci5oYXNSZW5kZXJlZCk7CiAgICAgIH0KCiAgICAgIGlmICghZXhwbGljaXRWaWV3ICYmIG5lZWRzWm9vbSgpKSB7CiAgICAgICAgaWYgKGRhdGEubGltaXRzKSB7CiAgICAgICAgICAvLyBVc2UgdGhlIG5hdHVyYWwgbGltaXRzIG9mIHdoYXQncyBiZWluZyBkcmF3biBvbiB0aGUgbWFwCiAgICAgICAgICAvLyBJZiB0aGUgc2l6ZSBvZiB0aGUgYm91bmRpbmcgYm94IGlzIDAsIGxlYWZsZXQgZ2V0cyBhbGwgd2VpcmQKICAgICAgICAgIHZhciBwYWQgPSAwLjAwNjsKICAgICAgICAgIGlmIChkYXRhLmxpbWl0cy5sYXRbMF0gPT09IGRhdGEubGltaXRzLmxhdFsxXSkgewogICAgICAgICAgICBkYXRhLmxpbWl0cy5sYXRbMF0gPSBkYXRhLmxpbWl0cy5sYXRbMF0gLSBwYWQ7CiAgICAgICAgICAgIGRhdGEubGltaXRzLmxhdFsxXSA9IGRhdGEubGltaXRzLmxhdFsxXSArIHBhZDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChkYXRhLmxpbWl0cy5sbmdbMF0gPT09IGRhdGEubGltaXRzLmxuZ1sxXSkgewogICAgICAgICAgICBkYXRhLmxpbWl0cy5sbmdbMF0gPSBkYXRhLmxpbWl0cy5sbmdbMF0gLSBwYWQ7CiAgICAgICAgICAgIGRhdGEubGltaXRzLmxuZ1sxXSA9IGRhdGEubGltaXRzLmxuZ1sxXSArIHBhZDsKICAgICAgICAgIH0KICAgICAgICAgIG1hcC5maXRCb3VuZHMoWwogICAgICAgICAgICBbIGRhdGEubGltaXRzLmxhdFswXSwgZGF0YS5saW1pdHMubG5nWzBdIF0sCiAgICAgICAgICAgIFsgZGF0YS5saW1pdHMubGF0WzFdLCBkYXRhLmxpbWl0cy5sbmdbMV0gXQogICAgICAgICAgXSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIG1hcC5maXRXb3JsZCgpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZm9yICh2YXIgaSA9IDA7IGRhdGEuY2FsbHMgJiYgaSA8IGRhdGEuY2FsbHMubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgY2FsbCA9IGRhdGEuY2FsbHNbaV07CiAgICAgICAgaWYgKG1ldGhvZHNbY2FsbC5tZXRob2RdKQogICAgICAgICAgbWV0aG9kc1tjYWxsLm1ldGhvZF0uYXBwbHkobWFwLCBjYWxsLmFyZ3MpOwogICAgICAgIGVsc2UKICAgICAgICAgIGNvbnNvbGUubG9nKCJVbmtub3duIG1ldGhvZCAiICsgY2FsbC5tZXRob2QpOwogICAgICB9CgogICAgICBtYXAubGVhZmxldHIuaGFzUmVuZGVyZWQgPSB0cnVlOwoKICAgICAgaWYgKCFIVE1MV2lkZ2V0cy5zaGlueU1vZGUpIHJldHVybjsKCiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHVwZGF0ZUJvdW5kcyhtYXApOyB9LCAxKTsKICAgIH0sCiAgICByZXNpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0LCBtYXApIHsKICAgICAgbWFwLmludmFsaWRhdGVTaXplKCk7CiAgICAgIGlmIChtYXAubGVhZmxldHIucGVuZGluZ1JlbmRlckRhdGEpIHsKICAgICAgICB0aGlzLnJlbmRlclZhbHVlKGVsLCBtYXAubGVhZmxldHIucGVuZGluZ1JlbmRlckRhdGEsIG1hcCk7CiAgICAgIH0KICAgIH0KICB9KTsKCiAgaWYgKCFIVE1MV2lkZ2V0cy5zaGlueU1vZGUpIHJldHVybjsKCiAgU2hpbnkuYWRkQ3VzdG9tTWVzc2FnZUhhbmRsZXIoJ2xlYWZsZXQtY2FsbHMnLCBmdW5jdGlvbihkYXRhKSB7CiAgICB2YXIgaWQgPSBkYXRhLmlkOwogICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgdmFyIG1hcCA9IGVsID8gJChlbCkuZGF0YSgnbGVhZmxldC1tYXAnKSA6IG51bGw7CiAgICBpZiAoIW1hcCkgewogICAgICBjb25zb2xlLmxvZygiQ291bGRuJ3QgZmluZCBtYXAgd2l0aCBpZCAiICsgaWQpOwogICAgICByZXR1cm47CiAgICB9CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmNhbGxzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBjYWxsID0gZGF0YS5jYWxsc1tpXTsKICAgICAgaWYgKGNhbGwuZGVwZW5kZW5jaWVzKSB7CiAgICAgICAgU2hpbnkucmVuZGVyRGVwZW5kZW5jaWVzKGNhbGwuZGVwZW5kZW5jaWVzKTsKICAgICAgfQogICAgICBpZiAobWV0aG9kc1tjYWxsLm1ldGhvZF0pCiAgICAgICAgbWV0aG9kc1tjYWxsLm1ldGhvZF0uYXBwbHkobWFwLCBjYWxsLmFyZ3MpOwogICAgICBlbHNlCiAgICAgICAgY29uc29sZS5sb2coIlVua25vd24gbWV0aG9kICIgKyBjYWxsLm1ldGhvZCk7CiAgICB9CiAgfSk7Cgp9KSgpOwoKCgovLyBJbiBSTWFya2Rvd24ncyBzZWxmLWNvbnRhaW5lZCBtb2RlLCB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIGNhcnJ5IGFyb3VuZCB0aGUKLy8gaW1hZ2VzIHRoYXQgTGVhZmxldCBuZWVkcyBidXQgZG9lc24ndCBsb2FkIGludG8gdGhlIHBhZ2UuIEluc3RlYWQsIHdlJ2xsIHNldAovLyBkYXRhIFVSSXMgZm9yIHRoZSBkZWZhdWx0IG1hcmtlciwgYW5kIGxldCBhbnkgb3RoZXJzIGJlIGxvYWRlZCB2aWEgQ0ROLgppZiAodHlwZW9mKEwuSWNvbi5EZWZhdWx0LmltYWdlUGF0aCkgPT09ICJ1bmRlZmluZWQiKSB7CiAgTC5JY29uLkRlZmF1bHQuaW1hZ2VQYXRoID0gImh0dHA6Ly9jZG4ubGVhZmxldGpzLmNvbS9sZWFmbGV0LTAuNy4zL2ltYWdlcyI7CgogIGlmIChMLkJyb3dzZXIucmV0aW5hKSB7CiAgICBMLkljb24uRGVmYXVsdC5wcm90b3R5cGUub3B0aW9ucy5pY29uVXJsID0gImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRElBQUFCU0NBWUFBQUFXeTRmckFBQVBpRWxFUVZSNDJ0MWJDVkNVNXhrbWJhYnRaSkpPTytsMG1oZ1QweVFlMFdYWmd6MjU3ME5COEk2SjZVemFUQm9PUlJGRXJ1VkdEaFdVUFJBUVJGRlJFRG5WeEN0RUJSYjI0REJORTNXYWFhdHBrbWx1bzRtK2ZkOXY5OTlvbEdWQkR1M09QTGorLy9zKzcvVzkzL2Y5Ly82L0V3QTQvVDlnM0FsRk9VZWVVR1IydU1xek95SmsyUjJ4MHF5T0Ftbm1rUzNTckNQclpKbEhsc3F6anlwY3M0OU9YMUpmLy9QN0toRDg4NUEwdTEwbXkyb3ZRc2N2eWJJNndFRjhpdkk3cEZudEFWNnFrdzlQV1NCSzFiRW5aUmx0bTJXWjdSOGg0RmJJMFZHMzNHUGdYWGdDQXJhK0E0RUluOEtUNEpIL0ZpZ29pSi9JSXo2VFpiVlZLTExhbjV1MFFFU3Fsa2NrV1czcDBzeTJieERBZ1p3TzEzVER5dG9CK05QZTkremlsZDJERUZHdUI3L05wekRvZHJpRjU1bzBvN1hJUlhYb054TWFpQ1NqOVZVMDlDOEVFTnh5ajBDNHRodGVyaDJFVit2ZXV3T3I2czdEeTNzc29POTNrM2xsenhCRTZQVGdrWGNNT0Y3RUo5S010cWpSOUpGRFFuTlY5YitRcWxxcUVFQ1FaN1RCZ3UxbllkWHVJWGdWbmVTd1l0Y2dSRmIxUTFpRkdVTEx6UkNzTTkwR09yWmdoeGtpS3Z0aGVjMGdyTHBGbHhDdTZjS2gxdzZjSFVTYmN0UGh4OFlsRUVsdTQrTlNWZk5wQkJBQ3RweUdsYnNHbUJPRWxSaE1CRG9mZ2s0R29iT2pRWEM1Q1JaaVVDL1ZEdG40cUxyQkpaM0EyY05nK25FNFAzMVBnU0RCYkltcTVVTkplak1RRnFpN2NDaWNaM2laQlRBQVFWb1RCSTRES0tDVkdCREhINm5yQlJsV3hXcjdzbGpWSWhsVElETFZvUmtTMWVIL1NOSVBnenl6RlJaVjlObkcrK0xxUWN5b0dRTFFnZkZFSUZZcGN1ZUF6YzZTU2lNT3RUWWdIOUNYcitXcFRieFJCZUtscW45VWt0WmtSb0FDWjVQbE84MVlnZk1NNFJYOUVLQXhUU2pDZHZUakVMUFlXMTdkRDhyc2RpQmZFQmNsU1kyUE94UUlIbmxJa25yb0VBSms2VTJ3cE1MSVNGL2FOUVNoV0FWL3RXbFNFSUsyVnFCTnNyMjAwZ1J5R21Mb2t5UzE4Y1RkRnRBN0FuRk5iY3hBQUNHTXJRdERMQWpxQlQrMWNWSkJOc2syK2JCUTF3T2NYNUsweHMxMkE4R3l6WFJOYWZnZUFZRmIzbUVrckJJNEkvbVdHVWVOUUkxbHlwMlBvTzlqNGFES2NINEViZTBFOGczeGd5eWxjYzZ3Z2JpbU5qU1NvRnRXSzFzVHFMUmgyQk0rU09nSWZER0xKTDhJRzNaWmpVWC9WaXl2R1lMRk93ZFpuL2xqWUk3eXpzZWU0VGpjc1YvSVIzRnFRK3RkQXhFbk5TakZ5UWVCRUs3cGdSVm9kRW5WSVBoc056cUVZSzBabHVGc1JucTNZakgyMktKeUE2ejR5VG1TcFo1emxIOFJUdldrdDFDckI4NVBZVXFqengyQnVHNnNQeWZlZUFBOHNqdHdwaGhpQ0ZTYndYdWIwUzdJU1BpT0Fadk80aDA0OHhTZkJNK2NEcERpZUNaT2dnU3o2SkhkQnY1RkozQ042TFBKUjFRTWdPOTIwNGgyYUFMZ2REeHpqbHA0a3c4WWFIS3lCU0pKUGlnV2I2d0hRaVJtYnhrS0wwUURYa2hnRDk0WXhHS3NHc2tUUWt2ZnhWbmxJSEJjQk5ma2Vneml3QjNIQW5IRHVHeW5SWGNwL3V0WFpoclJIaVdNNUNQTGpiZHdIVkRZQWhGdDNKOHJUdG9QYnBrdFNEckU0SU5aOGl3MTJrVVlFcFBzNGtvemVPVzBBM0VRSW92YlljZnhJVGo3OTh2d3hiZlg0T3IxSDhCNDZST283ZndidktZOWJwTnp5MmhtaVNPT3lNckJFZTJSVDV4Lzd0akh4Q0ZLMmwvNFl5QkorOTVIUUFCbWliS3pFSnZSczlSZ0Y0RnFFNU1sZUdTM0F1bUxOKzZENGxZamZJZU9EL2U1ZVJPZzdzejdvRWc3d0hSazZZM1lpLzJNSndUN2JDUzc1QnZKQnVHc1N2cUlEMWdnYUh5ZWFBTWVRRVJneWFqQmczQkc4U2d4REFzdkpGeFVPY0JrZzdkME1sM1hqZnVoQ3l2ZzZPZml4MStBbDZxQjZmcHVlb3R4c2NrRmg1QTkyK1FieWRIdzR2eW1HSnhFRytyV2lSTDNnb0pXY1N3dndiUEVDTzViRGNNaVJHTm1jaFM0YTFJOWtQNjJEaE9NOXRQYWQ0bnBFaGFVZFRQT3NQSit1N2JKTjg1UHBhcUo2WW9UNnhLY1JJbDFwUWp3eEl1a3hYaHlJWTU3TjFTd2g3RHlBU2JybTM4TVNIZFJVU3RjKy80R2pPVVRWMzJhY2JobE5qTk82cFdSN0ZQVGs2eFgzbEdtSzB5czB6cmhuMFpod2g3d0szaWJuVnlnNndlM0xRYTdXRlF4eUdTcGlxUmJlL284alBYVGUrRUs0eERqRUNIT3hkWVJZYzgrK1VoeWZnWEhtYTV3L1o1bUorSDYzVDNDaE4zWTZPL2d1TWN4ajhOR2ljTERnWXlRM0NLY25zVWJNQnVvYTdqNDhaZ0QrZXJxZGN6cWJzWVRwdWxqM0xTdTJQT0JmQ1E1OHBuMEVIMU93b1RhZnd2WDErSlYyVm1JeEV3SGxKbEJzZGt3TEh5Mm1aamNnakk5a0o0WW5iaDYvWHU0bDA5WWZoUGpDc1NKZzdocEliYm5nLzkyTTVNam4wa1BjZGxKR0YvN0pRSkNTcnNnQXNlZUh6b3FMKzRiRm5TZTVFSkt6Z0hwZWFUc2czdjlyQ3J0WUZ6K2hTY1pkekFHWXM4SFg4NEg5Sm4wS0FZblFmeXVJUVQ0WTVtbzBha2lNaFFlRGg0NHRFZ3VYR2NFMGlQODQ1TXZ4eHpFalJzM1FaNVV4M2hDdG5VeGJxcTZQUi84Y1JkQWN1U3oxWWZ6R0VoTm0yQmREZmprdncwTGNUWUtva0NLK29hRkFvbElqaURGQllsMDIvb3VqRG1RQzFjK1p4ekMrQm9JcDJ0MzVIWEhQckRuQS9sSWN1UXo2U0tPT0FuV1Zxc1JiSHNjamlkRE5mMGdSV0Y3Q05YMk0xbDNWVE9RYm1wZDU1Z0RxVDAxeERoa21CVGlKTWhHc0IraXNkclBiR2U2d3JVMTVSakl6a1FFeUhCM0dxWWJZQ0FpU2VId0NNQm1JN21BWWl3dDZnclg3UVQ5aDVkSEhjUS9QL3NLbEVtN0dZZDM3bEhHR2FMdXQydGJpckQ1aVQ2VHJpQ3VLc1ZKc0xyQ3d5V3VpaDJZai91bk1DMlZGbGZzZ3I1aG9keHNaSElFWlZvVGtQNzg3QVB3N1RYSFp5L2FjLzI1ckozcFNwUDI0dFJyWm55ZVcwMTJiYnRaYlM5QWVmS1orYjZtTXRqSlM2VjZHUC96T1Izd0srcGtRbjdiekhiSkNDUkRzcUZsQnB6K2RqSENWN2Eyd01Vci94MHhpTSsrdWdwcnE0NWJuRmhiaGROb0YrTUtMT3QzMkM3NVN2cUliN3hVTzMvRmRyLzh1TXFETG1zcXdVM1ZpcEgyUXpBMmszaFRyMTFJQ25xWkhNbjdGK0hDRklmWlFRNUpmRFZVdlcxbXp2NzA4L1YzMTZGVi93RjRKZTloc2dTdjNHT01ZejcxSmc2YmtlelMwQ041TjFXTGhTT3Vzc1cyalJlc3Juek5aWFVGbTVQblcwbmwyQ2NpVkxRSGViSEJKaDlVMGcxUzNHWVFENGVRakgyUVdIMEMwdXR3MTVEWEFFSXliRDBueG9Vc1lQTVptejRONTlIWUUrSzBTenlDMk1vM2JJSHc0elRUK0t0MzNFU0FYL0ZaQ01Xb3ZVdE1JTXp2SFJGS0pBOUcrVkFHdko3SVBzS0dDM0hkRFlJNHFud3poSlFabVE1bDJBT0RjTVNXYjZtSjZmZ1duK0g0YnN4Yld6WDl0bXQybDlYbDdmelljcHdKR2hsNU1JNVhFU29MOGthR0tCOVhXd3c4eE9vWUlYQnJEM2h2T2duSzlCYkVZZHlwSHNjdFNCY0dZTGJKK0ZNdmJ1cHoyQWFuSjAxdUFQTFZKYWI4OEIwM0gxeGlkS0g4V0IwVENDcTFLTkVNNFlnUkRtN0ZSbHlzK204TDZHNmdKTG1Qa3B1cXhoSlUwc3Q4SkY4Rk1lVitkd1RpcEZMOXpEbEdld21CMXdZZHpKaC9xUmxjY250SERjcWV2QkN2Nk5CWjN4SXorQ0dQNXhZVEtJb01JTVp6bytVVElBSzNXUktnVUxVQitlZ2NyVHMvN0EwNlhwUTIwVGxhaStPNG1tMERLTHVTQWdQd2tXZ3FJY09ra0MrQk9CUmRWbGNDK2NpTDBrVU5HNGpvZGQzdm5LTTEzeUhBSy84VUJHNm5UQnJCT1VjL3BmREJSWko4OGNnOUR1UWJMMXJ6eGR3M3l4NjFleFBiT1Vhemk0UmQ4VnFZTWhCSXd5dW5GNXl6OVZNQ1VWNnZ4UStFQ0pjSDhzMDVTbE15NHQxNDV4aTFqQWtqZkl1N0dJRVN4ellQU2FjQzFHZmtnM2ZoR2JENmRkTWxWdnVDUXovMG9IQWZLY2xTbWlBQUswSk43NXpkQy9PeTlKTUthbkt5VHhCdk9HQUpKRWJkNGZBdlZyeG85VXVreE1mWndidTRod1dpS0RMQ1hDU2ZUTkFVVGJhOUNzNXgxU0Q0T0J3SW00cWpOUU9rS0UxdUJIK2FRa3NzVlptYnFaOFVDTEF2eVM1Qm5MRGYyaHZhRTZQK01aUWZwWW5nc3VCZDJBMStXN0VxQlVaNE1VTS9LWEF2TWpHYkh2bTIzZ0NYYUkxeVREOVBvN0tleldCSkI4RVhwMEFDRDBzK0o2Tm5Ra0d6SkdkUGxGREhCZEkrNXQvWitkR2FRQzRiSHB2T2dnK3V6bkpjSUdlcmVpWVV5a0lqcytXVzIybXJCaTlXTGJxbkp4OXdsdWdrSWxIaWZ2QkdjZ0xOS0xQUTRFU0ErcEN6STRqZnd5MkFqZmY4Q0FkdVd6eTRyTGpubldFR3FGZG1wZmRNQ0tnYVpFT1pjNXFyeGczbldNMjhjWG1vaGhldFBjcXFzbjR2ZUcwMk1jekRtV1ZtV3MrNHdqbXIxOFl2V0ZmTEJWSTNiazhIdWJ4WjVzcFZSWkhUeVF6SnNTb3ZvUEh4aEFLclFkeUtyRk5jRUQvd284cG5qdXZ6V3JnSGF5SnlJWTViejJJVHcxeWNKcDlQN1I0WDhMRENISy9MMmwwc0VINjB0bXJjSHp6alJldDR0TTloVmNrK3hRektOeG5HTFJEcU8rS1VaWjdncW5IZFpZMW14b1E4UVVmamxZd0kxdGFDQnk1WUJLcktjeW5kOXdUcU53dWZFZmhycXExN0tvMTZ3aDRGcFBGSzQ1WnRLRE5PZ25zaFpqRGZBSDlNN3I0bnlQT05qRXVhL2haWGphdjhOelRUSnZUaFRGNlVwcEp0RitKcXdBMk5FMTVVNmVGWmRHZ3NtSnZSeXppVWVCWElYN1BUMmh1YXpSUCtsS2tnYXZzemVNMThqVzBvVmNmQnJZQ3FZb1JuTjNhUEdsdzFpTU0xN2FpMUd0cXZuZC9RL0g1U252dkY3ZjEybGprY3owcHNVbVdCcFNvejBMblJnS3BCdWdxNkw4Q3V4U2tRZGU2a1BjQXNXcU43QW8xK3l6YVVhY2RBc2NrSTBqd0RQSlBVNVRCbWJPeGkvVVc2NHBRT3JqYys1LzFWL2R0SmZSSWJydzBLV0ZWV1YrSHc2R05EWkU2YUhwN2UwT1VRNXFUcm1ZNDhydy80c1JXVzNvalNwazM2SStXem83WS83aHlsK1pKdFhWSTdXSis0NWhyZ2FjejI5QTMyUVRJU3JDRHBpSkxidVdwOE9pdWg4akdZaW9mOGVUSHFERXRWS2tDR21aVlpxekk5c2NzdVNJWmtaWFRmS25ZSHQ4Tk5tTEszRmFReHBiOUdKejVqVmNITWNsV2hyRCtWZUhmUXNKTGtXcW9oVEdybHFuRlo5THJ1a1NsOTdZSVhwVTVrVmNITVN2REtUcHBuaE5tWThXa0pYWGNGblNNWlNZNmUzY08xcnVLeFUvNytDR1VTbmJuQ3RpNGJXakhiT0F2bEdPQXBkUHJKOWJlRGp0RTVraEZzYU9hcThkSHpNYVcvdkMvZTZLR01XbTRmbFlNa3U0Y05uVm1wUGVqOHVkdEExYUJ6cmxsNDdSR2pzL2FHK3ZYNzV0VWt5aWhsMWxLVlpuREZySXV5KzJBYU92OUV2QVgwblk3Uk9aZUVKcTRhRitnM3pQdnFIU3Rlak9Zdmx2R3VBMUZtTnh0Q00xUDE4QWNNZ2pBTHY5TXhZV2FYOVdjQmt0V3V1dTllRnFQTTRtYnZBemJFRWc1aDl0SHBMSU90UCtnN0hlTW5OSExWZUcvSmt2RjdZV3hjMzNqRHFxeTBaaG9FS292ek0xUDBEUFNkanRGdkc1WlZYTFAwdm4xOXozS3JWVHZJSEYzZllISGVDdnJ1SE4vQWJkTk4zUE82OSsxN2lMZ3pqclJ1eDhFbC9Td0lNZzBNOVAzSEc5SHFzUHYraFVyckpYRXZjemorQUFiUngrQWNYODhGMHYxQXZCbktBbmxURzhSbG41LzZMdUxIVzUvem9yVCtEMHdnMXFxOHk1eGZ1ODhDU3lDbkg1aDNkVy9aR1h2ZTh1T01aUldQMG5vOGNJRlk3K1lmc3dVUnJUMzZRTDA5ZmZzTXBwSFllZ1cvUDdDQldIdmxNT0dCZTUvOWp0ZGpZN1I4d2tUYitSOW1lWkE2bjJvSldBQUFBQUJKUlU1RXJrSmdnZz09IjsKICB9IGVsc2UgewogICAgTC5JY29uLkRlZmF1bHQucHJvdG90eXBlLm9wdGlvbnMuaWNvblVybCA9ICJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJrQUFBQXBDQVlBQUFEQWs0TE9BQUFHbWtsRVFWUll3N1ZYZVV5VFp4anZObmZFTEZ1eUl6T2FiZXJtTVpFZVFDL09jbGtPNDlDcE9IWE9MSmwvQ0FVUnVZYlFpM0tMZ0VoYnJoWjFhRHdtYW9HcUtJSTZvZEFUbUgvc2NERmJkQzdMdkZxT0NjK2U5NXMyVkc1MFgvTExtL2Y0L1o3bmVZL25lMThhQU5DbUFyNUUveFpmMXVET2tUY0djV1I2aGw5MjQ3dFQ1VTdZNlNOdldzS1Q2M1A1OHFiZmVMSkc4TTVxY2dUa25ydnZyZERic1Q3TWwrdHY4Mlg2dlZ4SkUzM2FSbWdTeVl0Y1dWTXFYOTdZdjJKdlczOVVoUkUySHV5QkwrdCtnSzExMTZseTA2RWVXRk5sQW1IeGxRRTBPTWlWNm1RQ1NjdXNLUmxoUzNRTGVWSmRsMSsyM2g1ZFk0Rk5CM3RocmJZYm9xcHRFRmxwaFRDMWhTcEpuYlJ2eFA0Tldnc0U1Snl6ODZRTk5pLzVxU1VUR3VGazFndTU0dE45d3VLMndjM28rV2MxM1JDbXNvQndFcXpHY1pzeHN2Q1N5Lzl3SktmN1VXZjFtRVk4SldmZXdjNjdVVW9EYkRqUUMrRnFLNFFxTFZNR0dSOWQyd3VyS3pxQmszbnFJVC85ekx4UlJqZ1o5YnFRZ3ViK0Rkb2VDQzAzUThqKzBRaEZoQkhSL2VQM1UvekNsbjdVdStoaWhKMStiQk5mZkxJdm1reVAwZ3BCWldZWGhLdXNzSzZtQno1SFQ2TTFOcXBjcCttQkNQWG9zWVFmcmVrR3ZyamV3ZDU5L0d2S0NFN1RiSy8wNC9aVjVRWllWV21Ed0gxbUYzeGEyUTNyYTNEQkM1dkJUMW9QN1BUajRDMCtDY0w4YzdDMkN0ZWpxaHVDbnVJUUhhS0h6dmNSZlpwbnlsRmZYc1lKeDNwTkx3aEt6UkF3QWhFcUcwU3B1c0JIZkFLa3h3M3c0NjI3TVBob0NINzk4ejdzMFpuQkovTUVKYlpTYlhQaEVSMmloN3Ayb2svelNqMmNFSkRkNENBZSs1V1luQkNnUjJ1cnV5RXc2elJvVzYvRFdKL09lQVA4cGQvQkd0ek9aS3BHOG9rZTBTWDZHTW1SazZHRmx5QWM1OUszMk9URWluSUxSSlJjaGFoOEhRd05EOE40MzVaOVowRlkxRXF0eFVnKzBTTzZSSi9tbVh6NFZ1UytEcHhYQzNnWG1ad0lMN2RCU0g0ektFNTB3RVNmOHF3VmdyUDFFSWxUTzVKUDlJZ3UwYWV4ZGgyOEYxbG1BRUdKR2ZoN2pFNkVseU01UncvRkRjWUpqV2hiZWlCWW9ZTklwYzJGVC9TSUxpdnAwRjFpcERXazRCSUVvMlZ1b2RFSlVpZmhiaWx0bk5CSVhQVUZDTXB0aHRBeXF3cy9CUGxFRi9WYmFJeEVyZHhQcGhzVTdyY0NwOERvaEMrR3ZCSVBKUy90VzJqdHZUbW1BZXVOTzhCTk9ZUWVHOEcvMk96Q0ozcStzb1lCNWk2TmhNYUtyMTdGU2FsN0dJSGhldVYzdVNDWThxWVZ1RW0xY096cWRXcjdrdS9SMEJEb1RUK0RUK29oQ002L0NDdktMS080UkkrZFhQZUF1YU1xa3NhS3JaN0wzRkU1RklGYmtJY2VlT1oyT2NITzZ3SWhUa05vMGZmZ2pSR3hFcW9nWEhZVVBIZldBQy9sQURwd0djTFJZM2FlSzQvb1JHQ0tZY1pYUFZvZVgva2VsVllZOGRVR2Y4VjVFQlJiZ0pYVDVRSVBoUDllUEppNDI4SktPaUVZaFlYRkJxb3UyR3VoK3AvbUVCMS9SZk13NnJZN2N4Y2pUcm5lSTFGckR5dXpVU1JtOW1pd0VKeDhFL2dVbXFseXZIR2tuZWl3RXJSMjFGM3ROT0s1VGYweVhhVCtPN0RnQ3ZBTFRVQlhkTTRZaEMvSWF3UFUrMlBkdXFNdnVhUjZlb3hTd1VrNzVnZ3FzWUo3Vmljc253R0lrWkJTWEtPVXd3NzNXR1h5cVArSjIvYjljK2dpMVlBZy94cHdjazNnSnV1Y05yaDVKdkRQdlFyMFdGWGYwcGl5dDhmOC9XSTBoVjRwUnh4a1FaZEpEZkRKTk9BbU0wQWc4anlUNmh6MFdHWFd1UDk0WWgyamNmam1YQUd2SENNc2xSaW1ESFl1SHVEc3kyUXRIdUlhdnpuaGJZVVJxNVI1N0twekJCUlpLUEppOGVRZzQ4aDRqOFNEZG93aWZkSXJFVmRVK2diTzZRTnZSUnQ0WkJ0aFVhWmhVbmpsWU9iTmFnVjNrZW9lcnUzclU3cmN1Y2VxVTFtSkJ4eStCV1pZbE5FQkgrMGVINHZSaUIrT1l5YlUyaG5ibFlsVHZrSGluTTRtNTRZbnhTeWFaWVNGNlIzandnUDd1ZEtMR0lYNnIvbGJOYTlONnk1TUZ5bmpXRHRySGQ3NVp2VFlBUE8vNlJnRjBrNzZtUWxhM0ZHcTdkTytjSDhzS24wVm83bkRsbHdBaHF3TFBreHJId1dtSEpPbytBS0o0cmFiNU9nck03clZ1OGVXYjJQdTBEaDRlRGdYb09mdnA3WTdRZXFrblJtdmNUQkV5cTltL0hRUVNDU3o2TEhxM3oweXpzTnlTUmZNUzI1M3dsMkt5UkRiY1pQY2ZKS2pabVNFT2pjeHlpK1k4ZFVPdHNJRUg2UjJ3TnlrZHFya1lKMFJWOTJIMFc1OHBrZlFrN2NLZXZzTEsxMFB5OFNkTUdmWE5YQVRZK3BQYnlKUi9FVDZuOW5JZnp0TnRaWVJWOVhuaVF1OUlBMnZPVmd5NGlyN0dDTFZtbWQremprSDBlQUY5UG82SzYxcG1DWEh4VTVySE1ZZDFmdGMzb3dqd1JTVlJ6TGpLdnFaRXR5NmNSVUQ3akdxaU9kdTVIRzZNZEhqTmNOWUdxZkRtNVlSekxCQkNDRGwvMmJrOGE4Z2RicWNmd0VDdTYyRmcvSHJnZ0FBQUFCSlJVNUVya0pnZ2c9PSI7CiAgfQp9Cg=="></script>
</head>
<body>
<p><div id="htmlwidget-4145" style="width:960px;height:500px;" class="leaflet"></div>
<script type="application/json" data-for="htmlwidget-4145">{"x":{"calls":[{"method":"addTiles","args":["http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",null,null,{"minZoom":0,"maxZoom":18,"maxNativeZoom":null,"tileSize":256,"subdomains":"abc","errorTileUrl":"","tms":false,"continuousWorld":false,"noWrap":false,"zoomOffset":0,"zoomReverse":false,"opacity":1,"zIndex":null,"unloadInvisibleTiles":null,"updateWhenIdle":null,"detectRetina":false,"reuseTiles":false,"attribution":"&copy; <a href=\"http://openstreetmap.org\">OpenStreetMap</a> contributors, <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>"}]},{"method":"addPolygons","args":[[[{"lng":[-69.8991241455078,-69.8957061767578,-69.9421920776367,-70.004150390625,-70.0661163330078,-70.0508804321289,-70.0351104736328,-69.97314453125,-69.9118118286133,-69.8991241455078],"lat":[12.4520015716553,12.4229984283447,12.4385251998901,12.50048828125,12.5469722747803,12.5970697402954,12.6141109466553,12.567626953125,12.48046875,12.4520015716553]}],[{"lng":[74.8913116455078,74.8402328491211,74.7673797607422,74.7389602661133,74.7266616821289,74.6689453125,74.5589904785156,74.3721694946289,74.3761672973633,74.4979553222656,74.5264587402344,74.5414047241211,74.4310607910156,74.1947250366211,74.0388717651367,74.0018539428711,73.9078140258789,73.7691421508789,73.7318344116211,73.4111328125,73.1167984008789,72.9937438964844,72.7662124633789,72.6228561401367,72.5313491821289,72.43115234375,72.3269577026367,72.2498016357422,72.15673828125,72.0956039428711,71.9207000732422,71.822265625,71.7726593017578,71.7164077758789,71.6205062866211,71.5458984375,71.4632797241211,71.3125991821289,71.23291015625,71.18505859375,71.22021484375,71.3428726196289,71.3975601196289,71.4275360107422,71.4835891723633,71.51904296875,71.5719757080078,71.58740234375,71.6005859375,71.5719757080078,71.5455093383789,71.5455093383789,71.5772476196289,71.6052703857422,71.6205062866211,71.6016616821289,71.5455093383789,71.51708984375,71.455078125,71.3581085205078,71.2941436767578,71.2257766723633,71.11328125,71.0656280517578,71.0163116455078,70.9656219482422,70.9789123535156,71.02294921875,71.095703125,71.0923843383789,71.0890579223633,71.09130859375,71.0515594482422,70.8484420776367,70.6540069580078,70.4157257080078,70.32568359375,70.2536087036133,69.9947280883789,69.8896484375,69.8680648803711,70.056640625,70.1341781616211,70.2197265625,70.2841796875,70.2611312866211,70.0902328491211,69.9201202392578,69.7037124633789,69.5677719116211,69.5015563964844,69.453125,69.4045944213867,69.4053726196289,69.3594741821289,69.2899398803711,69.2414016723633,69.2565383911133,69.279296875,69.1869125366211,69.0831069946289,68.9734344482422,68.8689498901367,68.7823257446289,68.7136688232422,68.6732406616211,68.59765625,68.5207061767578,68.4432601928711,68.31982421875,68.2139663696289,68.1610336303711,68.1301727294922,68.0171890258789,67.7398452758789,67.6267547607422,67.5782165527344,67.5975570678711,67.6470642089844,67.7334976196289,67.7378921508789,67.6615219116211,67.5963897705078,67.4528274536133,67.2873001098633,67.1159210205078,67.0277328491211,66.92431640625,66.8292922973633,66.7313461303711,66.6242218017578,66.5958023071289,66.5667953491211,66.4973602294922,66.3971710205078,66.3468704223633,66.2869110107422,66.3009719848633,66.3054656982422,66.2818374633789,66.2384796142578,66.2471694946289,66.3133773803711,66.2869110107422,66.2312545776367,66.1770553588867,65.9616241455078,65.6662139892578,65.4709930419922,65.1804656982422,65.0955047607422,64.9189453125,64.8273391723633,64.7035140991211,64.5210952758789,64.3937530517578,64.26611328125,64.1721649169922,64.1179733276367,64.0987319946289,63.9709968566895,63.5675811767578,62.4765586853027,62.3734359741211,62.0009727478027,61.5214805603027,61.2244148254395,60.8433609008789,61.1041030883789,61.3316421508789,61.5594711303711,61.7841758728027,61.8108406066895,61.8142585754395,61.7550811767578,61.6601524353027,61.3464851379395,61.1107406616211,60.8541030883789,60.8207054138184,60.7915992736816,60.8042984008789,60.7875022888184,60.7899398803711,60.8272476196289,60.8292961120605,60.71044921875,60.64453125,60.5765647888184,60.5619163513184,60.560546875,60.7180671691895,60.7668952941895,60.8592796325684,60.9169883728027,60.9069328308105,60.8064422607422,60.6545867919922,60.5738258361816,60.5108375549316,60.4859352111816,60.5270538330078,60.4857444763184,60.5702133178711,60.6426734924316,60.8894577026367,60.8039093017578,60.7625999450684,60.7361335754395,60.7262687683105,60.7394523620605,60.8023452758789,60.8453140258789,60.9147491455078,60.9511756896973,60.9578132629395,60.9908218383789,61.0404319763184,61.080078125,61.0702171325684,61.1066436767578,61.1231460571289,61.1496124267578,61.12646484375,61.1066436767578,61.0999984741211,61.1396446228027,61.1892623901367,61.19921875,61.2256851196289,61.2455062866211,61.2785186767578,61.2818374633789,61.2620086669922,61.3447303771973,61.3777313232422,61.4217796325684,61.5427703857422,61.6209983825684,61.7197265625,61.8410186767578,61.9380874633789,61.9838829040527,62.0896492004395,62.2130851745605,62.2528305053711,62.2711906433105,62.3078117370605,62.3866195678711,62.4628944396973,62.5331077575684,62.6105461120605,62.6880836486816,62.7226600646973,62.8580055236816,62.9802742004395,63.056640625,63.0841789245605,63.1193351745605,63.1697273254395,63.1507797241211,63.1299819946289,63.1085929870605,63.1299819946289,63.1789093017578,63.3016586303711,63.5169906616211,63.6965827941895,63.8624992370605,63.9380836486816,64.0096740722656,64.0423812866211,64.0513687133789,64.0921859741211,64.1843719482422,64.3580093383789,64.5110321044922,64.5658187866211,64.6025390625,64.67431640625,64.7531204223633,64.7824249267578,64.8163070678711,64.9515609741211,65.0896453857422,65.3036193847656,65.5549774169922,65.6080093383789,65.6412124633789,65.6830062866211,65.7438507080078,65.7650375366211,65.9006805419922,66.1083984375,66.3502960205078,66.4718704223633,66.5222625732422,66.8277282714844,67.06884765625,67.1955108642578,67.3197250366211,67.4416961669922,67.5172882080078,67.5464859008789,67.607421875,67.7000045776367,67.7529296875,67.7589874267578,67.7660140991211,67.83447265625,67.9580078125,68.0677719116211,68.2121124267578,68.2609405517578,68.2847671508789,68.2995147705078,68.3869171142578,68.5464859008789,68.6370162963867,68.6691360473633,68.7232360839844,68.7820358276367,68.82373046875,68.8384780883789,68.8553695678711,68.88525390625,68.9118118286133,68.96044921875,69.0500030517578,69.18017578125,69.2648468017578,69.3039093017578,69.3538055419922,69.4144515991211,69.4296875,69.3992156982422,69.4201202392578,69.4920959472656,69.6257781982422,69.8208999633789,69.9406280517578,69.9849624633789,70.0447235107422,70.1198196411133,70.1886672973633,70.25146484375,70.2549743652344,70.1994171142578,70.2146453857422,70.23876953125,70.3132781982422,70.4177780151367,70.5185546875,70.6158218383789,70.7359390258789,70.87890625,71.0521469116211,71.255859375,71.3327102661133,71.2828140258789,71.2785186767578,71.3199234008789,71.3896484375,71.48779296875,71.5519561767578,71.5822296142578,71.5803680419922,71.5461883544922,71.5050811767578,71.4796829223633,71.4547805786133,71.4329147338867,71.4718780517578,71.5308532714844,71.5974578857422,71.6656265258789,71.7337875366211,71.8020477294922,71.9419937133789,72.1535186767578,72.3587951660156,72.6574249267578,72.7570343017578,72.8955078125,73.2111282348633,73.3829116821289,73.4813461303711,73.6046829223633,73.6326141357422,73.6571273803711,73.7206115722656,73.7337875366211,73.71728515625,73.6488265991211,73.6275405883789,73.6535186767578,73.7496109008789,73.9488220214844,74.0777282714844,74.1670913696289,74.2035140991211,74.2596664428711,74.3490219116211,74.4449234008789,74.5242233276367,74.6593780517578,74.7305679321289,74.8304672241211,74.8753890991211,74.8913116455078],"lat":[37.2316398620605,37.2250518798828,37.2491722106934,37.28564453125,37.2907218933105,37.2667007446289,37.2366218566895,37.15771484375,37.1373519897461,37.0572242736816,37.0306625366211,37.0221710205078,36.9836921691895,36.8968772888184,36.8257331848145,36.8230972290039,36.8529319763184,36.8884773254395,36.8877906799316,36.8816909790039,36.8685569763184,36.8516120910645,36.8350105285645,36.82958984375,36.802001953125,36.7658195495605,36.7423858642578,36.7347183227539,36.7008819580078,36.6337394714355,36.5341796875,36.486083984375,36.4318351745605,36.4265632629395,36.4364738464355,36.377685546875,36.2932624816895,36.1711883544922,36.1217765808105,36.0420875549316,36.0006828308105,35.9385261535645,35.8801765441895,35.833740234375,35.714599609375,35.5975074768066,35.5468254089355,35.4608383178711,35.4079093933105,35.3704109191895,35.3285140991211,35.2888641357422,35.2479972839355,35.2117652893066,35.1830062866211,35.1506843566895,35.1014137268066,35.0511245727539,34.9669418334961,34.9096183776855,34.8677253723145,34.779541015625,34.6815948486328,34.599609375,34.5546379089355,34.5303688049316,34.4862823486328,34.43115234375,34.3694343566895,34.2732429504395,34.2040557861328,34.1202659606934,34.0497093200684,33.9818840026855,33.9522933959961,33.950439453125,33.9611320495605,33.9759750366211,34.0518074035645,34.0072746276855,33.8976554870605,33.7198715209961,33.6207542419434,33.4546852111816,33.3690414428711,33.2890129089355,33.1980972290039,33.1124992370605,33.0947265625,33.0641593933105,33.0200691223145,32.8328132629395,32.7642555236816,32.6827163696289,32.59033203125,32.5305671691895,32.4335441589355,32.2494621276855,31.9368171691895,31.8380870819092,31.7384757995605,31.6673831939697,31.6342296600342,31.6464347839355,31.7080574035645,31.7597179412842,31.8029804229736,31.7941417694092,31.7544918060303,31.7676734924316,31.8073749542236,31.8029804229736,31.7632827758789,31.6779804229736,31.5481929779053,31.5387706756592,31.5064945220947,31.4533214569092,31.4099597930908,31.3792476654053,31.3439464569092,31.31298828125,31.2776870727539,31.234619140625,31.2178230285645,31.2429218292236,31.3002433776855,31.3056144714355,31.263671875,31.1945323944092,31.0460433959961,31.0199699401855,30.9965839385986,30.9645500183105,30.9122066497803,30.8027839660645,30.6079120635986,30.5029792785645,30.3211421966553,30.1934566497803,30.109619140625,30.0435066223145,29.9685554504395,29.9200191497803,29.86572265625,29.8355941772461,29.7789077758789,29.7013206481934,29.6515617370605,29.5776348114014,29.5594749450684,29.5527839660645,29.5641593933105,29.5671367645264,29.5645008087158,29.5443344116211,29.5069332122803,29.4603519439697,29.4142570495605,29.3919429779053,29.4300804138184,29.4979991912842,29.4083499908447,29.4253902435303,29.5304183959961,29.6656742095947,29.7494144439697,29.8586902618408,30.12841796875,30.3637218475342,30.5993633270264,30.8319358825684,30.9132823944092,31.0725593566895,31.2853031158447,31.3824214935303,31.4216289520264,31.4511222839355,31.4832515716553,31.4951667785645,31.6605968475342,31.7344722747803,31.877197265625,31.9871120452881,32.16796875,32.2494125366211,32.6000022888184,32.7943840026855,32.994873046875,33.0587882995605,33.1378402709961,33.3235359191895,33.3638191223145,33.4562492370605,33.5052223205566,33.5389633178711,33.5586891174316,33.5604019165039,33.5883293151855,33.638916015625,33.7119140625,33.8419914245605,34.0947761535645,34.2196311950684,34.3071746826172,34.3194313049316,34.4180183410645,34.4752426147461,34.4917945861816,34.5182647705078,34.5447273254395,34.5546379089355,34.5876960754395,34.6339836120605,34.6538543701172,34.7100601196289,34.749755859375,34.7993659973145,34.8556175231934,34.9217300415039,35.0011215209961,35.0507316589355,35.09375,35.1565437316895,35.20947265625,35.2723121643066,35.2888641357422,35.31201171875,35.3616218566895,35.4244613647461,35.4740715026855,35.5137710571289,35.5534210205078,35.6195793151855,35.6294898986816,35.5931167602539,35.5457992553711,35.4578628540039,35.4323234558105,35.41943359375,35.4314918518066,35.4478988647461,35.4437026977539,35.3796882629395,35.2899398803711,35.250244140625,35.1891098022461,35.1707992553711,35.2312507629395,35.2513694763184,35.2398948669434,35.233154296875,35.2553215026855,35.2713394165039,35.3496589660645,35.4091796875,35.44580078125,35.5680656433105,35.6375503540039,35.6781234741211,35.728271484375,35.7667465209961,35.8186988830566,35.84619140625,35.8584480285645,35.8583984375,35.9131355285645,35.9678192138672,36.0123519897461,36.0197257995605,36.0121116638184,36.0250968933105,36.067626953125,36.1126976013184,36.14892578125,36.22607421875,36.3406753540039,36.4275894165039,36.5545425415039,36.7501945495605,36.9647941589355,37.0592765808105,37.132080078125,37.1935577392578,37.2379379272461,37.2467765808105,37.2511711120605,37.368408203125,37.4678230285645,37.5191421508789,37.5608406066895,37.5691413879395,37.5081062316895,37.4147453308105,37.3681640625,37.3447265625,37.3484840393066,37.3712882995605,37.3348159790039,37.2352066040039,37.2095680236816,37.2580108642578,37.2666511535645,37.2356452941895,37.2225074768066,37.2272453308105,37.1998062133789,37.1722145080566,37.14013671875,37.064208984375,36.9720230102539,36.9498023986816,37.0215339660645,37.0130844116211,37.0363273620605,37.0884284973145,37.1375007629395,37.1834487915039,37.2244644165039,37.2583999633789,37.2680206298828,37.2580108642578,37.2707023620605,37.3028335571289,37.3168449401855,37.3280754089355,37.3339385986328,37.3250465393066,37.2665023803711,37.1583023071289,37.1083984375,37.116943359375,37.1500473022461,37.207763671875,37.2908706665039,37.3993148803711,37.4867172241211,37.5530776977539,37.5940437316895,37.6095695495605,37.6002922058105,37.566162109375,37.5472183227539,37.5435028076172,37.5824699401855,37.6641578674316,37.765380859375,37.8860359191895,37.9244117736816,37.9412078857422,37.9848136901855,38.075439453125,38.1919937133789,38.3344230651855,38.4225616455078,38.4563980102539,38.4178695678711,38.3069839477539,38.1702613830566,38.0079078674316,37.9184112548828,37.90185546875,37.9062995910645,37.931884765625,37.9331512451172,37.9101066589355,37.8642578125,37.795654296875,37.6029319763184,37.43603515625,37.2718276977539,37.1275405883789,37.0150871276855,36.8451156616211,36.73291015625,36.6969223022461,36.6840324401855,36.6942863464355,36.7664527893066,36.9005393981934,36.98291015625,37.029052734375,37.1727066040039,37.2675285339355,37.4084968566895,37.4622573852539,37.4716796875,37.446044921875,37.4372062683105,37.4304695129395,37.4187507629395,37.3757820129395,37.3294410705566,37.2912101745605,37.2615699768066,37.2393569946289,37.2317886352539,37.2831535339355,37.3162117004395,37.3294410705566,37.3724594116211,37.4154319763184,37.4187507629395,37.3956069946289,37.3823738098145,37.3944816589355,37.3570289611816,37.2859382629395,37.2419929504395,37.2316398620605]}],[{"lng":[23.9665031433105,23.98828125,24.0100574493408,24.0255870819092,24.0414066314697,24.0466804504395,24.029296875,24.0146484375,23.98681640625,23.9709968566895,23.98388671875,23.9734382629395,23.9623050689697,23.9588871002197,23.9964847564697,23.9913101196289,23.9447269439697,23.9093761444092,23.8865242004395,23.8824214935303,23.9680652618408,23.9629878997803,23.8974609375,23.8431644439697,23.6358413696289,23.3386726379395,23.04150390625,22.7443351745605,22.4709968566895,22.2095699310303,21.9789066314697,21.97900390625,21.9791011810303,21.9791011810303,21.9792976379395,21.9793949127197,21.9794921875,21.9795894622803,21.9796867370605,21.9797840118408,21.9797840118408,22.0402355194092,22.1506843566895,22.1939449310303,22.3050765991211,22.4594745635986,22.5459957122803,22.7219734191895,22.9558601379395,23.181640625,23.3806648254395,23.0682621002197,22.6240234375,22.32421875,21.9608383178711,21.7184562683105,21.4168949127197,21.3687496185303,21.2878913879395,21.1134757995605,20.9083003997803,20.7455081939697,20.6250991821289,20.5076179504395,20.3929691314697,20.1943359375,19.9118156433105,19.6393547058105,19.3771476745605,19.189453125,19.0764636993408,18.9552726745605,18.8259773254395,18.7180671691895,18.5881843566895,18.4866199493408,18.4603519439697,18.42822265625,18.3963871002197,18.1087875366211,17.8353519439697,17.6788082122803,17.2962894439697,16.9136714935303,16.5310535430908,16.1484375,15.7658195495605,15.3832035064697,15.0005865097046,14.6179695129395,14.4147453308105,14.2258787155151,14.0174798965454,13.9874019622803,13.9379892349243,13.9041986465454,13.7919921875,13.6943359375,13.5617189407349,13.4759769439697,13.4037113189697,13.2756834030151,13.1794919967651,13.1011714935303,12.9631843566895,12.8592777252197,12.78515625,12.6565427780151,12.5481443405151,12.3592767715454,12.3184566497803,12.21337890625,12.1143560409546,12.0139646530151,11.9025392532349,11.7430667877197,11.7800788879395,11.8189458847046,11.8199214935303,11.7969722747803,11.7694339752197,11.7508792877197,11.8497076034546,11.89990234375,11.9678707122803,12.01611328125,12.0732421875,12.2804679870605,12.37890625,12.5037107467651,12.5504875183105,12.8976564407349,12.9832029342651,13.1626949310303,13.4169921875,13.5979499816895,13.685546875,13.7853507995605,13.7842769622803,13.8474617004395,13.8335933685303,13.7389650344849,13.7213869094849,13.6334962844849,13.5394535064697,13.4954109191895,13.3322257995605,13.2874994277954,13.2093753814697,13.1968746185303,13.1556644439697,13.0759763717651,12.99853515625,12.99853515625,13.0467767715454,13.0927734375,13.0772457122803,13.0465812683105,13.0538091659546,13.3589839935303,13.3783206939697,13.3680658340454,13.3664064407349,13.3785161972046,13.0908212661743,12.8623046875,12.8234376907349,12.5212888717651,12.4021482467651,12.3342771530151,12.2833003997803,12.3025388717651,12.38037109375,12.5535154342651,12.7906246185303,13.0097665786743,13.0681638717651,13.1843748092651,13.3026371002197,13.3464841842651,13.3714847564697,13.6490230560303,13.7645502090454,13.978515625,14.11376953125,14.1908206939697,14.3986330032349,14.6579103469849,14.7494144439697,15.0893545150757,15.4250001907349,15.7269525527954,16.0601558685303,16.3152351379395,16.4314460754395,16.537109375,16.5851554870605,16.6080074310303,16.6395511627197,16.697265625,16.7177734375,16.7009773254395,16.7093753814697,16.7429695129395,16.8130855560303,16.91943359375,16.9658203125,16.9520511627197,16.9847660064697,17.0637702941895,17.12158203125,17.1550788879395,17.2450180053711,17.4113292694092,17.5360336303711,17.57958984375,17.6433582305908,17.77880859375,17.9130859375,18.0087890625,18.0471687316895,18.1915035247803,18.3348617553711,18.4846668243408,18.5626945495605,18.6534175872803,18.8983402252197,18.9444332122803,19.1426753997803,19.3408203125,19.3699207305908,19.3716793060303,19.4193363189697,19.4798812866211,19.4874019622803,19.4837894439697,19.5276374816895,19.6603507995605,19.8751945495605,19.9974613189697,20.1900386810303,20.4822254180908,20.5900382995605,20.5987300872803,20.5369129180908,20.5358390808105,20.5583972930908,20.6078128814697,20.9109382629395,21.1903324127197,21.5108413696289,21.7510738372803,21.7816410064697,21.8060550689697,21.8416004180908,21.8335952758789,21.7800788879395,21.8008804321289,21.8958969116211,21.9053707122803,21.8718738555908,21.8294906616211,21.8131847381592,21.8566417694092,21.9486331939697,22.0891590118408,22.19775390625,22.2745113372803,22.3024406433105,22.2816410064697,22.283203125,22.3070316314697,22.2804679870605,22.2035160064697,22.1779308319092,22.2166996002197,22.2261714935303,22.2566413879395,22.27880859375,22.31494140625,22.3929672241211,22.4861316680908,22.56103515625,22.66650390625,22.8147468566895,23.0762691497803,23.15673828125,23.4001960754395,23.4639644622803,23.5599613189697,23.6963863372803,23.8338871002197,23.9011707305908,23.9073238372803,23.9287109375,23.9665031433105],"lat":[-10.8717775344849,-11.0028324127197,-11.1847658157349,-11.3156251907349,-11.3741207122803,-11.4053707122803,-11.4391593933105,-11.5176753997803,-11.5872068405151,-11.6358404159546,-11.7249994277954,-11.8529300689697,-11.9878902435303,-12.1177730560303,-12.3506832122803,-12.4221677780151,-12.5437498092651,-12.6361322402954,-12.7432613372803,-12.7990236282349,-12.9569339752197,-12.9884767532349,-12.9982414245605,-13.0009765625,-13.0009765625,-13.0009765625,-13.0009765625,-13.0009765625,-13.0009765625,-13.0009765625,-13.0009765625,-13.1568365097046,-13.4777336120605,-13.7987308502197,-14.1196279525757,-14.4405279159546,-14.7614250183105,-15.0823249816895,-15.4032220840454,-15.7241220474243,-15.95556640625,-16.2627925872803,-16.59716796875,-16.6281242370605,-16.6895503997803,-16.8151359558105,-16.9102535247803,-17.0752944946289,-17.2857418060303,-17.4744148254395,-17.640625,-17.6988277435303,-17.7816410064697,-17.8374996185303,-17.9051761627197,-17.94775390625,-18.0006828308105,-17.99951171875,-17.9629878997803,-17.9557609558105,-18.0060558319092,-18.0197257995605,-17.9966793060303,-17.9525394439697,-17.8874034881592,-17.8636722564697,-17.88134765625,-17.86865234375,-17.8254871368408,-17.8084964752197,-17.8176746368408,-17.8035163879395,-17.7663097381592,-17.7032222747803,-17.5700187683105,-17.4427738189697,-17.4246082305908,-17.4051742553711,-17.3994140625,-17.39599609375,-17.3927726745605,-17.392578125,-17.3919925689697,-17.3914070129395,-17.3908195495605,-17.3902359008789,-17.3896484375,-17.38916015625,-17.3885746002197,-17.3879890441895,-17.3876953125,-17.3977527618408,-17.4088859558105,-17.4041996002197,-17.3887710571289,-17.3607425689697,-17.2883777618408,-17.2334957122803,-17.1412124633789,-17.0400390625,-17.0078125,-16.9895515441895,-16.9716796875,-16.9676761627197,-17.0154304504395,-17.0625972747803,-17.1082038879395,-17.1605472564697,-17.2126941680908,-17.2058601379395,-17.21337890625,-17.2099609375,-17.16455078125,-17.1685543060303,-17.2265625,-17.2492198944092,-16.8712902069092,-16.7041015625,-16.5042972564697,-15.9864263534546,-15.9153327941895,-15.831934928894,-15.7683591842651,-15.7198238372803,-15.6339836120605,-15.513671875,-15.2482423782349,-14.6374998092651,-14.0390615463257,-13.7554693222046,-13.4377927780151,-13.0277347564697,-12.7756834030151,-12.6521482467651,-12.5204105377197,-12.2861328125,-12.1238279342651,-11.8127927780151,-11.4879884719849,-11.0543947219849,-10.9296875,-10.7571287155151,-10.6335935592651,-10.5123052597046,-10.4207038879395,-10.2571287155151,-9.99892520904541,-9.82675838470459,-9.70322322845459,-9.55068302154541,-9.3896484375,-9.23037147521973,-9.04804706573486,-8.99101638793945,-8.92226600646973,-8.89970684051514,-8.93427753448486,-8.97519588470459,-9.0068359375,-8.68720722198486,-8.62470722198486,-8.55478572845459,-8.46923828125,-8.36972618103027,-7.78017520904541,-7.23183584213257,-6.95478487014771,-6.59033155441284,-6.35341739654541,-6.18730497360229,-6.12431621551514,-6.09257841110229,-6.08427715301514,-6.04589796066284,-6.00390625,-5.90761709213257,-5.86484336853027,-5.85624980926514,-5.8818359375,-5.86337900161743,-5.86181640625,-5.86171865463257,-5.85517597198486,-5.85722637176514,-5.86513662338257,-5.8759765625,-5.89267587661743,-5.88886690139771,-5.88007783889771,-5.87451171875,-5.86884737014771,-5.86386728286743,-5.86494159698486,-5.86562538146973,-5.90019464492798,-5.96582078933716,-6.02529287338257,-6.05156230926514,-6.11455059051514,-6.16425752639771,-6.24140644073486,-6.34599637985229,-6.4716796875,-6.61845731735229,-6.77255916595459,-6.93398475646973,-7.06210947036743,-7.15703105926514,-7.25742197036743,-7.36308574676514,-7.41904306411743,-7.46132755279541,-7.62333965301514,-7.88193321228027,-8.07587909698486,-8.09902381896973,-8.09072303771973,-8.07138633728027,-8.06767559051514,-8.10761737823486,-8.10078144073486,-8.02382755279541,-8.00029277801514,-7.96855449676514,-7.93593788146973,-7.93603515625,-7.99814462661743,-8.00146484375,-8.00146484375,-7.96660184860229,-7.70654344558716,-7.65507793426514,-7.55732440948486,-7.47216796875,-7.39072227478027,-7.27949285507202,-7.14443397521973,-7.037109375,-6.986328125,-6.97646474838257,-6.94628858566284,-6.91582012176514,-6.91992139816284,-6.93515634536743,-7.12177705764771,-7.18281316757202,-7.24443340301514,-7.27773475646973,-7.28144502639771,-7.28496122360229,-7.29667997360229,-7.30546855926514,-7.31464862823486,-7.32861280441284,-7.42099618911743,-7.60165977478027,-7.86542987823486,-8.11191463470459,-8.34111309051514,-8.693359375,-8.90351486206055,-9.16845703125,-9.46875,-9.59423828125,-9.7255859375,-9.86279296875,-10.0406255722046,-10.2590827941895,-10.3966789245605,-10.4533205032349,-10.5515632629395,-10.6913089752197,-10.7839841842651,-10.8294916152954,-10.8922853469849,-11.0126943588257,-11.1219730377197,-11.1636714935303,-11.1941404342651,-11.1986322402954,-11.1594734191895,-11.0867185592651,-11.0558595657349,-11.0597648620605,-11.0802736282349,-11.087890625,-11.0748052597046,-10.9764652252197,-10.9693355560303,-10.9786128997803,-11.0076169967651,-11.0136728286743,-10.9832029342651,-10.9434576034546,-10.8915033340454,-10.8717775344849]}],[{"lng":[12.2136716842651,12.1990232467651,12.1554679870605,12.1800785064697,12.2065439224243,12.1771478652954,12.1105470657349,12.0399417877197,12.0183591842651,12.0775394439697,12.1670894622803,12.2042961120605,12.3079099655151,12.3466796875,12.3740234375,12.3845710754395,12.5014638900757,12.6416988372803,12.7194337844849,12.7982416152954,12.84814453125,12.8810548782349,12.9713869094849,13.0480470657349,13.07275390625,13.0573234558105,12.9474611282349,12.8296871185303,12.6748046875,12.59619140625,12.5735359191895,12.5027351379395,12.4514646530151,12.4532222747803,12.4874029159546,12.5223627090454,12.5189456939697,12.5037107467651,12.4845705032349,12.3860349655151,12.2552738189697,12.2136716842651],"lat":[-5.75869178771973,-5.73193311691284,-5.63271474838257,-5.53867149353027,-5.46826171875,-5.32480430603027,-5.19716787338257,-5.03515625,-5.00429677963257,-4.95214891433716,-4.83769512176514,-4.77861356735229,-4.76552724838257,-4.72412109375,-4.65771484375,-4.619140625,-4.58750009536743,-4.53115272521973,-4.46972703933716,-4.43056631088257,-4.42890644073486,-4.44511699676514,-4.5517578125,-4.61923837661743,-4.634765625,-4.65107393264771,-4.6953125,-4.73662090301514,-4.90537118911743,-4.97841835021973,-4.99658203125,-5.03691339492798,-5.07148408889771,-5.09062528610229,-5.11269521713257,-5.14892578125,-5.42460918426514,-5.69580125808716,-5.71875,-5.72773408889771,-5.74648380279541,-5.75869178771973]}],[{"lng":[-63.001220703125,-63.1600074768066,-63.1533241271973,-63.0260276794434,-62.9795913696289,-63.001220703125],"lat":[18.2217769622803,18.17138671875,18.2002925872803,18.2697257995605,18.2647953033447,18.2217769622803]}],[{"lng":[20.06396484375,20.103515625,20.1857414245605,20.2405261993408,20.3482418060303,20.4083003997803,20.4854507446289,20.5228519439697,20.5753898620605,20.5814456939697,20.5662117004395,20.5531253814697,20.5051746368408,20.5166015625,20.5162105560303,20.4755859375,20.4486331939697,20.4923820495605,20.4870128631592,20.4889659881592,20.56787109375,20.6144542694092,20.6560535430908,20.7092761993408,20.7408199310303,20.8702144622803,20.9334964752197,20.9585933685303,20.9642581939697,20.9557609558105,20.9878902435303,21.0310535430908,21.0308589935303,21.001953125,20.9501953125,20.8816394805908,20.8060531616211,20.77001953125,20.7516593933105,20.7178707122803,20.6969718933105,20.6649417877197,20.6574230194092,20.6062507629395,20.5270500183105,20.4560546875,20.4080066680908,20.3836917877197,20.3384761810303,20.3111324310303,20.3113288879395,20.34423828125,20.3816413879395,20.3824214935303,20.3640613555908,20.30615234375,20.2938480377197,20.28759765625,20.2720699310303,20.2482433319092,20.2068367004395,20.1310558319092,20.0597648620605,20.0225582122803,20.0012702941895,19.99560546875,19.96484375,19.8518562316895,19.4845714569092,19.3981437683105,19.3601551055908,19.322265625,19.3585929870605,19.39453125,19.4405269622803,19.4591808319092,19.4392585754395,19.3446292877197,19.3374996185303,19.3838882446289,19.4612312316895,19.4560546875,19.4800777435303,19.4534168243408,19.4406242370605,19.4973621368408,19.5458011627197,19.57568359375,19.5775394439697,19.46826171875,19.3423843383789,19.3455085754395,19.3611316680908,19.3521499633789,19.3614253997803,19.3308601379395,19.2806644439697,19.3290042877197,19.3996086120605,19.4651374816895,19.5445308685303,19.5974597930908,19.6544933319092,19.7034187316895,19.7278308868408,19.74072265625,19.7377910614014,19.7544918060303,19.7882804870605,19.8597660064697,19.9390621185303,20.0457038879395,20.06396484375],"lat":[42.5472679138184,42.524658203125,42.4258766174316,42.3389663696289,42.3087921142578,42.2749519348145,42.223388671875,42.1714820861816,42.0130844116211,41.9174308776855,41.8736801147461,41.8623504638672,41.7064933776855,41.6270484924316,41.5747566223145,41.5541038513184,41.5212898254395,41.3914070129395,41.3360824584961,41.2726058959961,41.1278305053711,41.0830574035645,41.0616683959961,40.9283676147461,40.9052734375,40.9179229736328,40.9031257629395,40.8715362548828,40.8499031066895,40.7752952575684,40.7177734375,40.6586418151855,40.6224594116211,40.5633811950684,40.494384765625,40.4679183959961,40.4454612731934,40.3918952941895,40.3349151611328,40.2926750183105,40.2463874816895,40.1517601013184,40.1173820495605,40.0826644897461,40.0685043334961,40.0655746459961,40.0494613647461,40.0171852111816,39.9910659790039,39.9794425964355,39.9507789611816,39.890625,39.841796875,39.8026390075684,39.791748046875,39.7966804504395,39.7822265625,39.7385749816895,39.701171875,39.6783676147461,39.6535186767578,39.66162109375,39.6991233825684,39.710693359375,39.7094268798828,39.801025390625,39.8722686767578,40.0435562133789,40.2099609375,40.2848625183105,40.3477058410645,40.4070816040039,40.4087409973145,40.3936996459961,40.3756828308105,40.4053688049316,40.4702644348145,40.6220703125,40.663818359375,40.7907218933105,40.9333000183105,41.1060562133789,41.2363739013672,41.3209953308105,41.4247550964355,41.5626945495605,41.5968246459961,41.6404304504395,41.7874984741211,41.8561553955078,41.8690910339355,41.9188499450684,41.9977531433105,42.0240211486816,42.069091796875,42.1292953491211,42.1725578308105,42.249267578125,42.3418922424316,42.4153823852539,42.491943359375,42.5654296875,42.6285667419434,42.64794921875,42.634521484375,42.60693359375,42.525146484375,42.4969253540039,42.4761695861816,42.486328125,42.5066871643066,42.5499038696289,42.5472679138184]}],[{"lng":[20.611328125,20.6034183502197,20.5217761993408,20.4875011444092,20.4112319946289,20.39794921875,20.4295902252197,20.4901371002197,20.5691394805908,20.611328125],"lat":[60.0406761169434,60.0169410705566,60.0116691589355,60.0327644348145,60.0301284790039,60.0406761169434,60.0617179870605,60.0749015808105,60.0696296691895,60.0406761169434]}],[{"lng":[19.6623039245605,19.66748046875,19.6291980743408,19.5998058319092,19.5798835754395,19.5365238189697,19.51904296875,19.5513668060303,19.6288089752197,19.6623039245605],"lat":[60.1871566772461,60.1647453308105,60.1703605651855,60.1626968383789,60.1350631713867,60.1449737548828,60.1845664978027,60.2438468933105,60.24609375,60.1871566772461]}],[{"lng":[19.9895515441895,20.0202159881592,20.0338878631592,20.08740234375,20.1678695678711,20.18408203125,20.2395515441895,20.2588882446289,20.1947269439697,20.1550769805908,20.12548828125,20.0732421875,20.0425796508789,20.0323238372803,20.0339851379395,19.7998046875,19.7459964752197,19.6722660064697,19.6869144439697,19.7365226745605,19.7790031433105,19.7852535247803,19.84765625,19.8671855926514,19.87158203125,19.8546867370605,19.8123035430908,19.7877922058105,19.8230457305908,19.8882808685303,19.9445323944092,19.9895515441895],"lat":[60.3511695861816,60.3508758544922,60.3593254089355,60.3534164428711,60.314697265625,60.2937469482422,60.2830123901367,60.2612762451172,60.1935539245605,60.1922836303711,60.2008781433105,60.1934585571289,60.1806678771973,60.1524925231934,60.0935554504395,60.0817375183105,60.0989723205566,60.2330055236816,60.2676277160645,60.2823753356934,60.2855453491211,60.2133750915527,60.2205543518066,60.2681121826172,60.3016090393066,60.3185081481934,60.3315925598145,60.3540496826172,60.3901824951172,60.4058113098145,60.3575210571289,60.3511695861816]}],[{"lng":[1.70605456829071,1.67851531505585,1.58642566204071,1.53408193588257,1.48623073101044,1.44882810115814,1.42812478542328,1.43027341365814,1.42197239398956,1.41484367847443,1.42832016944885,1.45888686180115,1.50136709213257,1.56816422939301,1.70986306667328,1.73945295810699,1.74023449420929,1.71396493911743,1.70605456829071],"lat":[42.5033226013184,42.4966773986816,42.4559555053711,42.4416999816895,42.4344711303711,42.4374504089355,42.4613304138184,42.4978485107422,42.5308074951172,42.5483856201172,42.5958976745605,42.6216773986816,42.6427268981934,42.635009765625,42.6044425964355,42.575927734375,42.5567359924316,42.525634765625,42.5033226013184]}],[{"lng":[53.9278335571289,53.9281234741211,53.8263664245605,53.7991218566895,53.7158203125,53.6344718933105,53.6896476745605,53.8337898254395,53.8937492370605,53.9278335571289],"lat":[24.1771984100342,24.1433601379395,24.1531257629395,24.1355476379395,24.1453132629395,24.1697750091553,24.2107906341553,24.2589340209961,24.2151355743408,24.1771984100342]}],[{"lng":[52.6168937683105,52.6000022888184,52.5822257995605,52.5835952758789,52.62939453125,52.6576156616211,52.6168937683105],"lat":[24.28857421875,24.2812976837158,24.3352527618408,24.3523445129395,24.3767566680908,24.3326168060303,24.28857421875]}],[{"lng":[53.3322257995605,53.25830078125,53.19091796875,53.33251953125,53.3708953857422,53.4124031066895,53.4453125,53.4089851379395,53.3826179504395,53.3322257995605],"lat":[24.2585926055908,24.2529296875,24.2909183502197,24.3416004180908,24.3644523620605,24.4110355377197,24.3711910247803,24.3079109191895,24.2808589935303,24.2585926055908]}],[{"lng":[54.4654312133789,54.4566421508789,54.4284172058105,54.3577156066895,54.3347663879395,54.37890625,54.3983421325684,54.4265632629395,54.4654312133789],"lat":[24.4427719116211,24.42333984375,24.4250984191895,24.4427719116211,24.4710445404053,24.5045890808105,24.50634765625,24.4710445404053,24.4427719116211]}],[{"lng":[56.2978515625,56.3634757995605,56.3728485107422,56.3879890441895,56.3529281616211,56.3135757446289,56.2678718566895,56.2046890258789,56.1544914245605,56.1065444946289,56.0638656616211,56.0083999633789,55.9703140258789,55.9796867370605,56.00634765625,56.0167007446289,56.0005836486816,55.9630851745605,55.9158210754395,55.8707008361816,55.8228530883789,55.7957038879395,55.7915992736816,55.80419921875,55.8039054870605,55.7775382995605,55.7681617736816,55.7868156433105,55.8040046691895,55.8056640625,55.7608413696289,55.7997093200684,55.9286155700684,55.9663124084473,55.9921875,55.9851531982422,55.8941383361816,55.7791023254395,55.6965827941895,55.5478515625,55.4684562683105,55.4917984008789,55.5193367004395,55.5316390991211,55.5084953308105,55.46630859375,55.4138679504395,55.3532218933105,55.2702140808105,55.1999015808105,55.1921882629395,55.1940422058105,55.1858367919922,55.1194343566895,55.1042976379395,55.0250015258789,54.9982452392578,54.9224586486816,54.8048820495605,54.6522483825684,54.4716796875,54.2701187133789,54.0545883178711,53.8321304321289,53.6095695495605,53.39404296875,53.1923828125,53.0119132995605,52.8592796325684,52.7416000366211,52.6659202575684,52.63916015625,52.5550765991211,52.5095672607422,52.45458984375,52.3996086120605,52.3445320129395,52.28955078125,52.2345733642578,52.1794929504395,52.12451171875,52.0694351196289,52.0144500732422,51.95947265625,51.9043922424316,51.8494148254395,51.7943344116211,51.7393569946289,51.6843757629395,51.6292991638184,51.5925788879395,51.5721664428711,51.568359375,51.568359375,51.60546875,51.6231422424316,51.66455078125,51.7347640991211,51.767578125,51.7916984558105,51.8431625366211,51.9060516357422,52.1185531616211,52.2508773803711,52.5114250183105,52.6482429504395,53.0263671875,53.32958984375,53.8017578125,53.8933601379395,54.14794921875,54.3042984008789,54.3970718383789,54.4584007263184,54.4988288879395,54.53466796875,54.5804672241211,54.6241188049316,54.6589851379395,54.7467765808105,55.09814453125,55.3035163879395,55.3216819763184,55.4333992004395,55.5228500366211,55.9412078857422,56.0251922607422,56.0746116638184,56.0804710388184,56.1165046691895,56.16748046875,56.1725578308105,56.1541023254395,56.1519508361816,56.1446304321289,56.18359375,56.24951171875,56.2785148620605,56.2978515625],"lat":[25.6506824493408,25.5693855285645,25.018310546875,24.9791984558105,24.9732913970947,24.9312992095947,24.86669921875,24.8333015441895,24.7955074310303,24.7486820220947,24.73876953125,24.7982406616211,24.8589344024658,24.8720703125,24.8764171600342,24.90771484375,24.9532222747803,24.9702625274658,24.9717769622803,24.951416015625,24.9112796783447,24.8681163787842,24.7812995910645,24.68359375,24.63623046875,24.5773448944092,24.4906253814697,24.4235363006592,24.383544921875,24.3498039245605,24.24267578125,24.22265625,24.2151355743408,24.1426277160645,24.0929679870605,24.0633773803711,24.0414066314697,24.01708984375,24.0241222381592,23.9913578033447,23.9411125183105,23.90966796875,23.885498046875,23.8190441131592,23.724609375,23.6329097747803,23.5187492370605,23.387451171875,23.18994140625,23.0347652435303,22.9229507446289,22.8500003814697,22.7041015625,22.6239261627197,22.6214847564697,22.6311531066895,22.6343746185303,22.6436538696289,22.6580085754395,22.6766605377197,22.69873046875,22.7233390808105,22.7496585845947,22.7768058776855,22.8040046691895,22.830322265625,22.8549308776855,22.8770008087158,22.8956050872803,22.9100093841553,22.9192867279053,22.9225101470947,22.9328117370605,22.9869632720947,23.0524425506592,23.1179695129395,23.1834964752197,23.2489738464355,23.314453125,23.3799800872803,23.4454593658447,23.510986328125,23.5764656066895,23.6419925689697,23.70751953125,23.7729969024658,23.8384761810303,23.9040031433105,23.9695320129395,24.0350112915039,24.078857421875,24.1283187866211,24.2579097747803,24.2861824035645,24.3384284973145,24.3010730743408,24.2504405975342,24.2627925872803,24.25439453125,24.0747547149658,24.0108871459961,23.9853515625,23.9710941314697,23.9952144622803,24.1125011444092,24.1546382904053,24.1473140716553,24.0984382629395,24.0694828033447,24.0770511627197,24.1711902618408,24.2542972564697,24.2781734466553,24.3582534790039,24.4626941680908,24.5309581756592,24.5635261535645,24.6212882995605,24.7155284881592,24.8104496002197,25.0416011810303,25.23681640625,25.2998046875,25.3944835662842,25.4981441497803,25.7939949035645,25.916015625,26.0527839660645,26.0626468658447,26.0681629180908,26.0474605560303,25.9451656341553,25.8484859466553,25.74609375,25.6905269622803,25.6449222564697,25.6253910064697,25.6277332305908,25.6506824493408]}],[{"lng":[56.2105484008789,56.240234375,56.2818336486816,56.2877922058105,56.27734375,56.2342758178711,56.2165031433105,56.2105484008789],"lat":[25.2132816314697,25.2088375091553,25.2355461120605,25.2786140441895,25.3008785247803,25.3038082122803,25.2666988372803,25.2132816314697]}],[{"lng":[-64.5491638183594,-64.4388198852539,-64.2205047607422,-64.1053237915039,-64.054931640625,-64.0324249267578,-63.8819313049316,-63.8154258728027,-63.8325729370117,-63.9712371826172,-64.0283203125,-64.3229064941406,-64.4532699584961,-64.5086898803711,-64.6373519897461,-64.7314453125,-64.75732421875,-64.689208984375,-64.6250991821289,-64.5813446044922,-64.5491638183594],"lat":[-54.7162132263184,-54.7393569946289,-54.7219734191895,-54.7216796875,-54.7298812866211,-54.7423820495605,-54.7229499816895,-54.72509765625,-54.7679672241211,-54.8106460571289,-54.7925758361816,-54.7964820861816,-54.84033203125,-54.8399391174316,-54.9025382995605,-54.8629875183105,-54.8265647888184,-54.7747039794922,-54.7736320495605,-54.7527313232422,-54.7162132263184]}],[{"lng":[-68.6532211303711,-68.6475143432617,-68.6397933959961,-68.6382293701172,-68.6366729736328,-68.6350631713867,-68.6334533691406,-68.6316909790039,-68.6299285888672,-68.5711898803711,-68.3387680053711,-68.2782287597656,-68.2401428222656,-68.3330078125,-68.43115234375,-68.4794921875,-68.5207977294922,-68.5205078125,-68.488525390625,-68.3931121826172,-68.1611328125,-68.1440963745117,-68.0084915161133,-67.9402847290039,-67.861083984375,-67.6781234741211,-67.5025863647461,-67.2942428588867,-67.0694808959961,-66.8651351928711,-66.6700744628906,-66.4620132446289,-66.2356414794922,-65.9925765991211,-65.7470703125,-65.3692855834961,-65.251953125,-65.1790084838867,-65.2523422241211,-65.3460006713867,-65.4711380004883,-65.6033172607422,-65.7227478027344,-65.8419952392578,-65.9537582397461,-66.0606460571289,-66.1720199584961,-66.2867660522461,-66.398681640625,-66.5111312866211,-66.627685546875,-66.9304733276367,-67.1270980834961,-67.7932586669922,-68.0071258544922,-68.2201156616211,-68.3316955566406,-68.4910125732422,-68.61865234375,-68.6532211303711],"lat":[-54.8536148071289,-54.6278343200684,-54.3240203857422,-54.0529289245605,-53.7888679504395,-53.5154304504395,-53.2418937683105,-52.9495124816895,-52.6526374816895,-52.6949234008789,-52.9000968933105,-52.9839820861816,-53.0818367004395,-53.0196304321289,-53.0552749633789,-53.11376953125,-53.17724609375,-53.2218742370605,-53.2609367370605,-53.294921875,-53.3064422607422,-53.3190422058105,-53.5640602111816,-53.6187515258789,-53.6622085571289,-53.787109375,-53.9219741821289,-54.0498046875,-54.1480445861816,-54.2225608825684,-54.3135757446289,-54.4410171508789,-54.5334968566895,-54.5989265441895,-54.6534194946289,-54.6321296691895,-54.6380844116211,-54.6781272888184,-54.7888679504395,-54.8779296875,-54.9146499633789,-54.9281234741211,-54.9263648986816,-54.9099617004395,-54.9193344116211,-54.9567375183105,-54.9752960205078,-54.9777336120605,-55.0093727111816,-55.0321273803711,-55.0132789611816,-54.9249000549316,-54.90380859375,-54.86865234375,-54.8484382629395,-54.8175773620605,-54.8163070678711,-54.8362312316895,-54.8337898254395,-54.8536148071289]}],[{"lng":[-61.8757820129395,-61.865966796875,-61.9180145263672,-62.0415992736816,-62.0832977294922,-62.093017578125,-61.9666519165039,-61.9071273803711,-61.8757820129395],"lat":[-39.171875,-39.23486328125,-39.2274436950684,-39.1668930053711,-39.1101531982422,-39.0862274169922,-39.1122093200684,-39.1356468200684,-39.171875]}],[{"lng":[-62.6509742736816,-62.6256828308105,-62.6259765625,-62.5415496826172,-62.3725090026855,-62.2141571044922,-62.0665969848633,-61.9280281066895,-61.7985343933105,-61.6794891357422,-61.5709915161133,-61.5130386352539,-61.5055198669434,-61.4039535522461,-61.2083969116211,-61.084716796875,-61.0329093933105,-60.8398399353027,-60.5053749084473,-60.26220703125,-60.1103019714355,-59.8924789428711,-59.6085891723633,-59.4353981018066,-59.3729476928711,-59.187255859375,-58.7240257263184,-58.5196266174316,-58.4228019714355,-58.3653793334961,-58.3086891174316,-58.2527847290039,-58.136474609375,-57.9598159790039,-57.8216781616211,-57.6438941955566,-57.5871543884277,-57.5631332397461,-57.5716781616211,-57.6258277893066,-57.7254867553711,-57.7547836303711,-57.7570762634277,-57.782470703125,-57.865234375,-57.88623046875,-57.8906288146973,-57.9431190490723,-58.0824203491211,-58.1111335754395,-58.1180648803711,-58.1356468200684,-58.1546897888184,-58.1814918518066,-58.2030258178711,-58.2051773071289,-58.1879386901855,-58.1913070678711,-58.2220687866211,-58.2393569946289,-58.2455596923828,-58.2716751098633,-58.3176765441895,-58.3346633911133,-58.3225631713867,-58.3564453125,-58.4363250732422,-58.4852561950684,-58.5032196044922,-58.5477066040039,-58.6186027526855,-58.6417503356934,-58.6048316955566,-58.1682624816895,-57.8122100830078,-57.3912582397461,-57.11181640625,-56.9739761352539,-56.8717269897461,-56.80517578125,-56.7157211303711,-56.6033706665039,-56.5105476379395,-56.4371566772461,-56.3705062866211,-56.310546875,-56.24169921875,-56.1640625,-56.0673332214355,-55.9514656066895,-55.8590316772461,-55.7899894714355,-55.7146492004395,-55.6329078674316,-55.5937995910645,-55.5972633361816,-55.5648918151855,-55.4967269897461,-55.4506340026855,-55.4266624450684,-55.3458023071289,-55.2080078125,-55.1359367370605,-55.129638671875,-55.0888671875,-55.0136222839355,-54.962158203125,-54.9344749450684,-54.888916015625,-54.8254890441895,-54.7550773620605,-54.677734375,-54.6319351196289,-54.6158676147461,-54.537841796875,-54.5015144348145,-54.4439468383789,-54.3833503723145,-54.3318824768066,-54.2500991821289,-54.2061538696289,-54.1545906066895,-54.1192398071289,-54.0850105285645,-54.0123062133789,-53.9547843933105,-53.8911628723145,-53.8642120361328,-53.8232421875,-53.7469215393066,-53.6712875366211,-53.6685523986816,-53.7109375,-53.7181625366211,-53.7445793151855,-53.7533187866211,-53.7271499633789,-53.71728515625,-53.7584953308105,-53.8381843566895,-53.9156265258789,-53.9353485107422,-54.0401344299316,-54.1138191223145,-54.1564445495605,-54.2052230834961,-54.2601547241211,-54.3270034790039,-54.4481430053711,-54.4843254089355,-54.554931640625,-54.6154289245605,-54.6658706665039,-54.7197265625,-54.777099609375,-54.8291015625,-54.875732421875,-54.9027862548828,-54.9102058410645,-54.9559059143066,-55.0399436950684,-55.0689926147461,-55.0638694763184,-55.1015129089355,-55.2437515258789,-55.3464851379395,-55.4098129272461,-55.4766616821289,-55.5823707580566,-55.7254867553711,-55.7459945678711,-55.6915054321289,-55.6719741821289,-55.687255859375,-55.7319831848145,-55.8060531616211,-55.85888671875,-55.8905258178711,-55.9054183959961,-55.9036598205566,-55.93017578125,-55.9849128723145,-56.0196304321289,-56.0342292785645,-56.1028785705566,-56.2255363464355,-56.3223648071289,-56.3932609558105,-56.4759750366211,-56.5707054138184,-56.6358413696289,-56.6715354919434,-56.7724609375,-56.9386215209961,-57.08935546875,-57.2246551513672,-57.3006820678711,-57.3174781799316,-57.4052276611328,-57.5638656616211,-57.6088905334473,-57.645751953125,-57.6508827209473,-57.7126960754395,-57.8311996459961,-57.8725051879883,-57.8185539245605,-57.8105964660645,-57.8340797424316,-57.8863296508789,-57.8982925415039,-57.8700675964355,-57.868408203125,-57.8933601379395,-57.9483413696289,-58.0333976745605,-58.0538558959961,-58.0096702575684,-57.9879837036133,-57.9888648986816,-58.0069808959961,-58.0423316955566,-58.0958480834961,-58.1674842834473,-58.1890106201172,-58.160400390625,-58.1563491821289,-58.177001953125,-58.1647987365723,-58.1197242736816,-58.123046875,-58.2011680603027,-58.219970703125,-58.1709938049316,-58.2007789611816,-58.2503929138184,-58.3088874816895,-58.3759727478027,-58.4244613647461,-58.454833984375,-58.5472145080566,-58.5305671691895,-58.4565925598145,-58.4294967651367,-58.4090309143066,-58.3924827575684,-58.4354972839355,-58.4752426147461,-58.5254859924316,-58.4662094116211,-58.4189414978027,-58.2833480834961,-57.7635726928711,-57.5478553771973,-57.3036613464355,-57.170654296875,-57.1588859558105,-57.3539047241211,-57.37548828125,-57.33544921875,-57.2649879455566,-57.076171875,-56.9371566772461,-56.7494621276855,-56.7173805236816,-56.6980972290039,-56.6682624816895,-56.6720237731934,-56.7271499633789,-57.0876960754395,-57.395751953125,-57.5072746276855,-57.5469741821289,-57.6456069946289,-58.1791954040527,-59.0072250366211,-59.67626953125,-59.8283195495605,-60.9039573669434,-61.1122093200684,-61.3828620910645,-61.6025428771973,-61.8479042053223,-62.0668907165527,-62.1892547607422,-62.3347663879395,-62.3744621276855,-62.3036117553711,-62.3380851745605,-62.2950668334961,-62.2090835571289,-62.12646484375,-62.0536613464355,-62.1793441772461,-62.1305618286133,-62.0768089294434,-62.082763671875,-62.1315383911133,-62.2539558410645,-62.2869148254395,-62.323974609375,-62.4018592834473,-62.427001953125,-62.3936004638672,-62.2463340759277,-62.3018569946289,-62.39501953125,-62.7979965209961,-62.9590301513672,-63.2128410339355,-63.6217765808105,-63.7729988098145,-64.1231918334961,-64.3834457397461,-64.6214828491211,-64.8529815673828,-64.8198776245117,-64.8043899536133,-64.8694839477539,-64.9169006347656,-65.0694351196289,-65.1333999633789,-65.15185546875,-65.1549758911133,-65.1278839111328,-65.0182647705078,-65.0070266723633,-65.05908203125,-64.9863739013672,-64.8980484008789,-64.6995162963867,-64.6224594116211,-64.5377502441406,-64.51171875,-64.5242156982422,-64.5741195678711,-64.5709991455078,-64.42041015625,-64.2646026611328,-64.1008834838867,-64.0622100830078,-64.0611877441406,-64.2529296875,-64.228515625,-64.083251953125,-63.8928680419922,-63.7955589294434,-63.7294883728027,-63.6847648620605,-63.6298866271973,-63.5958976745605,-63.5944366455078,-63.6173324584961,-63.6444816589355,-63.6924781799316,-64.0347671508789,-64.1306610107422,-64.2199249267578,-64.2479476928711,-64.3242721557617,-64.4878387451172,-64.6504898071289,-64.8119659423828,-64.970703125,-65.0269012451172,-64.6291961669922,-64.4415512084961,-64.38037109375,-64.3191375732422,-64.3756790161133,-64.4322280883789,-64.7152328491211,-64.8399429321289,-64.9855499267578,-65.1897430419922,-65.2523422241211,-65.2835998535156,-65.3046875,-65.2385711669922,-65.3083953857422,-65.2655258178711,-65.2898483276367,-65.3612747192383,-65.6476058959961,-65.6983413696289,-65.59912109375,-65.605712890625,-65.6387634277344,-65.7577133178711,-66.1901321411133,-66.3477554321289,-66.4936065673828,-66.533447265625,-66.5850601196289,-66.8824691772461,-66.94140625,-67.2576141357422,-67.3930206298828,-67.556640625,-67.5995559692383,-67.60888671875,-67.5860824584961,-67.5633773803711,-67.5064468383789,-67.3866195678711,-66.77685546875,-66.650390625,-65.99853515625,-65.8536682128906,-65.7690963745117,-65.7380828857422,-65.775390625,-65.8143081665039,-65.8863296508789,-66.0406265258789,-66.2252426147461,-66.17236328125,-66.0973663330078,-65.9342269897461,-65.8636703491211,-65.81005859375,-65.9121551513672,-65.9434051513672,-66.0171890258789,-66.3933563232422,-66.5962905883789,-66.7828063964844,-67.0331115722656,-67.1309585571289,-67.2633285522461,-67.46630859375,-67.6848678588867,-67.6937026977539,-67.6619644165039,-67.7834930419922,-67.8259811401367,-67.9139633178711,-68.1456527709961,-68.2572326660156,-68.4046401977539,-68.4878921508789,-68.5692901611328,-68.6675796508789,-68.6726531982422,-68.6384735107422,-68.66162109375,-68.9129867553711,-68.9795913696289,-68.752685546875,-68.5979461669922,-68.5325698852539,-68.4737319946289,-68.421875,-68.4654235839844,-68.58935546875,-68.7498550415039,-68.939453125,-69.0447769165039,-69.0901870727539,-69.1414031982422,-69.1549835205078,-69.2351531982422,-69.3585968017578,-69.3517608642578,-69.2679672241211,-69.2010269165039,-69.1435089111328,-69.0657272338867,-69.0295867919922,-69.0353012084961,-69.0583038330078,-69.2180633544922,-69.3605422973633,-69.4654312133789,-69.4090805053711,-69.3130416870117,-69.1801223754883,-69.0325164794922,-68.96533203125,-68.9168014526367,-68.6908264160156,-68.4935073852539,-68.3937530517578,-68.443359375,-68.4609909057617,-68.5897979736328,-68.7151870727539,-68.924560546875,-69.2061996459961,-69.4884262084961,-69.7126007080078,-69.9602584838867,-70.4828567504883,-70.9431686401367,-71.4147415161133,-71.7166061401367,-71.9186553955078,-71.9710998535156,-71.9534683227539,-72.0284118652344,-72.136962890625,-72.2689971923828,-72.3345260620117,-72.4076690673828,-72.3664093017578,-72.30322265625,-72.3018569946289,-72.3591842651367,-72.3768081665039,-72.3591842651367,-72.307373046875,-72.2763137817383,-72.3006362915039,-72.3402328491211,-72.392578125,-72.4601593017578,-72.5098114013672,-72.6204071044922,-72.8036117553711,-72.8659210205078,-72.95556640625,-73.0823745727539,-73.1529312133789,-73.1745147705078,-73.2216262817383,-73.2516174316406,-73.274169921875,-73.3117218017578,-73.3866195678711,-73.5012741088867,-73.5077133178711,-73.5289077758789,-73.4704132080078,-73.5045394897461,-73.5762634277344,-73.55419921875,-73.483642578125,-73.4615707397461,-73.13525390625,-73.1488723754883,-73.0945816040039,-73.0336456298828,-72.9817428588867,-72.8654251098633,-72.7284698486328,-72.6512680053711,-72.6144027709961,-72.5917510986328,-72.5859375,-72.6083984375,-72.5828628540039,-72.4981384277344,-72.354736328125,-72.2930145263672,-72.3283233642578,-72.4079055786133,-72.5090866088867,-72.5179214477539,-72.4722137451172,-72.41259765625,-72.3415069580078,-72.345947265625,-72.2829055786133,-72.1034164428711,-72.0417022705078,-71.978515625,-71.9049835205078,-71.9005355834961,-71.9542465209961,-71.9629898071289,-71.9566421508789,-71.9402313232422,-71.8564453125,-71.7327194213867,-71.6996612548828,-71.6952133178711,-71.7312927246094,-71.7621078491211,-71.7776412963867,-71.8341293334961,-71.8756866455078,-71.8092727661133,-71.6844711303711,-71.6315383911133,-71.6800765991211,-71.7506332397461,-71.7726593017578,-71.7461929321289,-71.6933135986328,-71.5081024169922,-71.4904251098633,-71.3493194580078,-71.353759765625,-71.4434585571289,-71.5313034057617,-71.5962905883789,-71.8123550415039,-72.0417022705078,-72.072509765625,-72.063720703125,-71.95703125,-71.7828140258789,-71.6516647338867,-71.5603942871094,-71.4551773071289,-71.358154296875,-71.2611312866211,-71.2214813232422,-71.1597213745117,-71.15087890625,-71.2126007080078,-71.3257293701172,-71.8200225830078,-71.8350601196289,-71.8307647705078,-71.8121109008789,-71.8123550415039,-71.7671890258789,-71.7161636352539,-71.6800765991211,-71.7159652709961,-71.7947311401367,-71.7374038696289,-71.7327651977539,-71.7506332397461,-71.8324203491211,-71.9049835205078,-71.9049835205078,-71.8202209472656,-71.7638702392578,-71.7506332397461,-71.781494140625,-71.8985900878906,-72.0546875,-72.1023941040039,-72.1464309692383,-72.1136245727539,-72.1300277709961,-72.1436996459961,-72.1054153442383,-72.053466796875,-72.078125,-72.1246109008789,-72.1082077026367,-72.0644073486328,-72.026123046875,-71.9933090209961,-71.944091796875,-71.8607864379883,-71.7609405517578,-71.75,-71.77001953125,-71.844482421875,-71.9112777709961,-71.8976058959961,-71.8711471557617,-71.8921890258789,-71.8855972290039,-71.8807144165039,-71.873046875,-71.9413604736328,-71.93212890625,-71.8837890625,-71.8385238647461,-71.8046417236328,-71.7691421508789,-71.708984375,-71.6953125,-71.72265625,-71.8005905151367,-71.8183135986328,-71.8019561767578,-71.763671875,-71.7043914794922,-71.6597595214844,-71.6471176147461,-71.6378936767578,-71.6720733642578,-71.6968231201172,-71.7199249267578,-71.6925735473633,-71.654296875,-71.5870132446289,-71.5394592285156,-71.53125,-71.5257797241211,-71.5077667236328,-71.4653854370117,-71.4200134277344,-71.4093780517578,-71.4255828857422,-71.4015579223633,-71.3531799316406,-71.2857437133789,-71.197265625,-71.0871047973633,-70.9516067504883,-70.8969268798828,-70.858642578125,-70.84765625,-70.899658203125,-70.9679641723633,-71.00048828125,-71.0181655883789,-71.0281753540039,-71.09619140625,-71.1675796508789,-71.1867141723633,-71.162841796875,-71.1348114013672,-71.1648941040039,-71.2003936767578,-71.1634750366211,-71.118408203125,-71.1238250732422,-71.1593780517578,-71.1921920776367,-71.1593780517578,-71.107421875,-71.06640625,-71.0732421875,-71.0555191040039,-70.9779357910156,-70.9051284790039,-70.8531723022461,-70.790283203125,-70.749267578125,-70.7328567504883,-70.721923828125,-70.6218719482422,-70.5633773803711,-70.4567413330078,-70.40478515625,-70.4036636352539,-70.4157257080078,-70.3801727294922,-70.4197311401367,-70.4157257080078,-70.4567413330078,-70.4485397338867,-70.4704055786133,-70.5323257446289,-70.55517578125,-70.5251007080078,-70.4666061401367,-70.3931655883789,-70.338134765625,-70.3121109008789,-70.2867660522461,-70.2899398803711,-70.2546920776367,-70.210693359375,-70.1412582397461,-70.1014633178711,-70.06298828125,-70.0520553588867,-70.0028305053711,-69.9463348388672,-69.8797912597656,-69.8524398803711,-69.8573684692383,-69.8615264892578,-69.8814926147461,-69.8943328857422,-69.882568359375,-69.8387680053711,-69.7977523803711,-69.8086929321289,-69.8196258544922,-69.8961944580078,-69.9690475463867,-70.0198211669922,-70.0848617553711,-70.10400390625,-70.0930709838867,-70.0421371459961,-70.02197265625,-70.0520553588867,-70.1161575317383,-70.1769561767578,-70.1696243286133,-70.2297897338867,-70.2578125,-70.3200225830078,-70.3446273803711,-70.36376953125,-70.3555679321289,-70.2909164428711,-70.25439453125,-70.28173828125,-70.3309555053711,-70.3938522338867,-70.4501419067383,-70.525634765625,-70.585205078125,-70.56640625,-70.5546875,-70.529052734375,-70.5195770263672,-70.4730911254883,-70.4293899536133,-70.3883743286133,-70.3505859375,-70.30908203125,-70.3118209838867,-70.33642578125,-70.34814453125,-70.3192367553711,-70.2693786621094,-70.1939392089844,-70.1614227294922,-70.1696243286133,-70.1532211303711,-70.1020050048828,-69.9563446044922,-69.9071273803711,-69.8880386352539,-69.8442840576172,-69.8633804321289,-69.9235382080078,-69.9599609375,-69.9454574584961,-69.9241256713867,-69.9276351928711,-69.9826202392578,-70.0268096923828,-69.99560546875,-69.9003372192383,-69.827880859375,-69.8148498535156,-69.7431640625,-69.7349166870117,-69.6878890991211,-69.6569366455078,-69.5271453857422,-69.4888687133789,-69.4369125366211,-69.4095687866211,-69.3407211303711,-69.251220703125,-69.1744155883789,-69.1552734375,-69.1185073852539,-69.0421905517578,-68.9994125366211,-68.9419860839844,-68.8750915527344,-68.8463363647461,-68.769775390625,-68.7096176147461,-68.6521987915039,-68.5920944213867,-68.537353515625,-68.4053726196289,-68.3459930419922,-68.3186492919922,-68.3186492919922,-68.3733444213867,-68.485107421875,-68.5811538696289,-68.5915985107422,-68.5921859741211,-68.5757827758789,-68.5298385620117,-68.4144973754883,-68.4267578125,-68.5108413696289,-68.5419006347656,-68.6002960205078,-68.5920944213867,-68.5408172607422,-68.496337890625,-68.4307174682617,-68.3952102661133,-68.3842315673828,-68.4280242919922,-68.4471206665039,-68.46630859375,-68.5270462036133,-68.56201171875,-68.56201171875,-68.5072784423828,-68.4471206665039,-68.4225616455078,-68.3581008911133,-68.2995147705078,-68.2502975463867,-68.04736328125,-67.88623046875,-67.57177734375,-67.356201171875,-67.3355941772461,-67.3191452026367,-67.2191390991211,-67.0897445678711,-67.0087890625,-67.1948776245117,-67.1619110107422,-67.055419921875,-67.0335464477539,-66.9911117553711,-66.80029296875,-66.7674865722656,-66.7506332397461,-66.7117233276367,-66.6390151977539,-66.5069808959961,-66.3651809692383,-66.3224639892578,-66.2821273803711,-66.2476119995117,-66.2201690673828,-66.1746597290039,-66.0985794067383,-66.05859375,-65.8601531982422,-65.7710494995117,-65.6861801147461,-65.518798828125,-65.48486328125,-65.0578079223633,-64.9926223754883,-64.8430633544922,-64.7586441040039,-64.7001037597656,-64.6055145263672,-64.5236358642578,-64.4777374267578,-64.4455032348633,-64.3739700317383,-64.3252944946289,-64.3079147338867,-64.2664031982422,-64.2090835571289,-64.1318359375,-63.9761199951172,-63.9216766357422,-63.8610305786133,-63.8186492919922,-63.7755851745605,-63.7169418334961,-63.6753387451172,-63.2671890258789,-62.8433609008789,-62.8342781066895,-62.8150863647461,-62.7445831298828,-62.665283203125,-62.6509742736816],"lat":[-22.2336921691895,-22.2615222930908,-22.2904300689697,-22.349609375,-22.4391613006592,-22.6124019622803,-22.8694343566895,-23.0592765808105,-23.1820316314697,-23.2687511444092,-23.3194332122803,-23.3604488372803,-23.3919925689697,-23.45751953125,-23.5570316314697,-23.6564464569092,-23.7556648254395,-23.8581047058105,-23.9635734558105,-24.0139656066895,-24.0091800689697,-24.0935554504395,-24.2667961120605,-24.3870105743408,-24.4539051055908,-24.5623054504395,-24.78662109375,-24.8428707122803,-24.8941402435303,-24.9592761993408,-24.9791011810303,-24.9538097381592,-24.9771480560303,-25.0492191314697,-25.1364269256592,-25.3284187316895,-25.4050788879395,-25.4737300872803,-25.5341815948486,-25.5987319946289,-25.6671867370605,-25.6970710754395,-25.7259750366211,-25.78369140625,-25.9069328308105,-25.9642562866211,-26.0065422058105,-26.0529308319092,-26.1385746002197,-26.18017578125,-26.2249031066895,-26.25146484375,-26.2625980377197,-26.3074207305908,-26.3814449310303,-26.4765625,-26.5925788879395,-26.6299800872803,-26.6499996185303,-26.6768550872803,-26.7310543060303,-26.7707023620605,-26.7958984375,-26.8249015808105,-26.8576164245605,-26.8900394439697,-26.9219722747803,-26.9684581756592,-27.0294914245605,-27.083984375,-27.1321296691895,-27.1960945129395,-27.3143558502197,-27.2734375,-27.3166027069092,-27.4304676055908,-27.4701175689697,-27.4357414245605,-27.4406242370605,-27.4846668243408,-27.4937496185303,-27.4678707122803,-27.4878921508789,-27.5538082122803,-27.5374011993408,-27.4387683868408,-27.3667964935303,-27.3214836120605,-27.3077144622803,-27.32568359375,-27.3619136810303,-27.4164066314697,-27.4148445129395,-27.3571300506592,-27.2880859375,-27.2076168060303,-27.1499996185303,-27.1153316497803,-27.068359375,-27.00927734375,-26.97314453125,-26.9601573944092,-26.93115234375,-26.8860359191895,-26.8445320129395,-26.806640625,-26.7593746185303,-26.7025394439697,-26.6667976379395,-26.6522464752197,-26.5329093933105,-26.3087882995605,-26.0057621002197,-25.5760746002197,-25.5764656066895,-25.6082992553711,-25.625,-25.5886726379395,-25.5718746185303,-25.5704097747803,-25.5295886993408,-25.5230484008789,-25.5452156066895,-25.5718746185303,-25.5779304504395,-25.6476554870605,-25.6688480377197,-25.7488269805908,-25.9595699310303,-26.0836925506592,-26.22509765625,-26.2881832122803,-26.3518543243408,-26.4431648254395,-26.66650390625,-26.7486324310303,-26.8046875,-26.8828125,-26.9783191680908,-27.12109375,-27.1595706939697,-27.1611328125,-27.2437496185303,-27.2747077941895,-27.2538089752197,-27.2896480560303,-27.3820323944092,-27.4235363006592,-27.4464855194092,-27.4573249816895,-27.4541015625,-27.4771499633789,-27.5265617370605,-27.544921875,-27.5325202941895,-27.5505847930908,-27.5992183685303,-27.6519527435303,-27.7085933685303,-27.7471694946289,-27.7677745819092,-27.7962875366211,-27.8359375,-27.8667984008789,-27.8988285064697,-27.9559574127197,-28.0377941131592,-28.08935546875,-28.1209945678711,-28.2041015625,-28.2554683685303,-28.3028316497803,-28.3449211120605,-28.3816413879395,-28.3866214752197,-28.3597660064697,-28.3541984558105,-28.3700180053711,-28.3996086120605,-28.4432621002197,-28.4728527069092,-28.4885730743408,-28.5246105194092,-28.5808601379395,-28.6517581939697,-28.7372074127197,-28.8524398803711,-28.9972648620605,-29.0924797058105,-29.1380863189697,-29.2030277252197,-29.2873039245605,-29.4178714752197,-29.5948238372803,-29.7162094116211,-29.7821273803711,-29.8565425872803,-29.9394550323486,-30.0338859558105,-30.1399402618408,-30.1877937316895,-30.2269535064697,-30.2950210571289,-30.3844718933105,-30.4952125549316,-30.5910129547119,-30.7120113372803,-30.8585929870605,-30.91748046875,-30.9374027252197,-30.9751949310303,-31.0310554504395,-31.1043949127197,-31.1953105926514,-31.2994136810303,-31.4166030883789,-31.4949207305908,-31.5343761444092,-31.5761737823486,-31.6206073760986,-31.6849613189697,-31.7692375183105,-31.8318367004395,-31.8726577758789,-31.9242191314697,-31.9865245819092,-32.0515632629395,-32.1190414428711,-32.1848640441895,-32.2489242553711,-32.3218765258789,-32.4716796875,-32.56396484375,-32.9592742919922,-33.0146484375,-33.0783195495605,-33.0829086303711,-33.0718765258789,-33.1115226745605,-33.2859382629395,-33.6634750366211,-33.7530250549316,-33.8983383178711,-33.9909172058105,-34.0607414245605,-34.1929702758789,-34.2525367736816,-34.2629890441895,-34.2961883544922,-34.4574241638184,-34.5316390991211,-34.6834945678711,-34.89453125,-35.0189476013184,-35.1884765625,-35.3625030517578,-35.5059547424316,-35.7203102111816,-35.9002952575684,-36.0267601013184,-36.1441421508789,-36.2967758178711,-36.3525390625,-36.3464813232422,-36.3890609741211,-36.4264640808105,-36.7352523803711,-36.8512725830078,-36.9577178955078,-37.4463844299316,-37.74462890625,-37.9092788696289,-38.0856437683105,-38.1696281433105,-38.4358406066895,-38.67333984375,-38.7966804504395,-38.8381843566895,-38.9739265441895,-38.9929695129395,-38.9808578491211,-38.9988288879395,-38.9618186950684,-38.9191436767578,-38.8132820129395,-38.8000984191895,-38.8529281616211,-38.9880867004395,-39.1505851745605,-39.2432632446289,-39.2618141174316,-39.3097686767578,-39.3738288879395,-39.3804702758789,-39.4315414428711,-39.4615249633789,-39.568359375,-39.8253936767578,-39.8804702758789,-39.8953132629395,-39.95068359375,-40.1965827941895,-40.35595703125,-40.4587898254395,-40.6746101379395,-40.8146476745605,-40.8908195495605,-41.0471687316895,-41.1096687316895,-41.1524429321289,-41.1597633361816,-41.1500015258789,-41.0078125,-40.9224586486816,-40.8544921875,-40.8137664794922,-40.7932586669922,-40.7565460205078,-40.73583984375,-40.7313499450684,-40.8052749633789,-40.8806648254395,-40.9469757080078,-41.1056632995605,-41.23876953125,-41.56689453125,-41.7451171875,-41.9699211120605,-42.10205078125,-42.1618156433105,-42.2208023071289,-42.2610321044922,-42.2545890808105,-42.2702140808105,-42.2992172241211,-42.35595703125,-42.416015625,-42.4337882995605,-42.4216804504395,-42.3951187133789,-42.3534202575684,-42.26611328125,-42.2507820129395,-42.21826171875,-42.1828117370605,-42.1246070861816,-42.1138687133789,-42.1529273986816,-42.1886711120605,-42.28271484375,-42.4065437316895,-42.5555648803711,-42.69580078125,-42.7457046508789,-42.8052749633789,-42.8812484741211,-42.8614234924316,-42.7555656433105,-42.6460914611816,-42.572265625,-42.5134773254395,-42.5314445495605,-42.6332054138184,-42.6663093566895,-42.7588882446289,-42.9089851379395,-42.95068359375,-42.94921875,-42.9689445495605,-43.0246086120605,-43.0591773986816,-43.1355476379395,-43.1888656616211,-43.2935523986816,-43.5220718383789,-43.5718727111816,-43.6299819946289,-43.7874984741211,-44.0487289428711,-44.158203125,-44.2796859741211,-44.3607444763184,-44.4773445129395,-44.6614265441895,-44.7961921691895,-44.8755874633789,-44.9450187683105,-45.0078125,-45.0071296691895,-44.9647483825684,-45.0335922241211,-45.1175804138184,-45.1578140258789,-45.1829109191895,-45.2276382446289,-45.25732421875,-45.5772476196289,-45.7755851745605,-45.9701156616211,-46.0525398254395,-46.1667938232422,-46.26953125,-46.3454093933105,-46.4427719116211,-46.5538063049316,-47.005859375,-47.0453109741211,-47.09375,-47.15673828125,-47.2567405700684,-47.3449211120605,-47.568359375,-47.63818359375,-47.7015647888184,-47.7832984924316,-47.8267555236816,-47.8576164245605,-47.8532257080078,-47.8267555236816,-47.8532257080078,-47.9411125183105,-47.9767570495605,-48.0193367004395,-48.0842781066895,-48.3423805236816,-48.4195327758789,-48.52294921875,-48.6277351379395,-48.6878890991211,-48.8142585754395,-48.9517593383789,-49.2466773986816,-49.3040046691895,-49.3421897888184,-49.85888671875,-49.9196281433105,-49.9844703674316,-50.0914039611816,-50.1045913696289,-50.0426750183105,-49.9779281616211,-49.8669929504395,-49.7525405883789,-49.79345703125,-49.8629875183105,-49.9357414245605,-49.96875,-50.0030250549316,-49.9876937866211,-50.0094718933105,-50.0361328125,-50.0914039611816,-50.1579093933105,-50.1947250366211,-50.2251968383789,-50.2811508178711,-50.38232421875,-50.4991188049316,-50.5831069946289,-50.7525405883789,-50.8644523620605,-50.9505844116211,-51.0281257629395,-51.0458030700684,-51.0061531066895,-50.99365234375,-51.0969734191895,-51.3035163879395,-51.4464836120605,-51.4889640808105,-51.5471687316895,-51.5612297058105,-51.5594711303711,-51.58447265625,-51.6102561950684,-51.60107421875,-51.6623039245605,-51.63623046875,-51.6771507263184,-51.7146492004395,-52.0130844116211,-52.1975593566895,-52.3070297241211,-52.3566398620605,-52.2904281616211,-52.2733383178711,-52.2554702758789,-52.2081031799316,-52.1361312866211,-52.1361312866211,-52.0753898620605,-52.0082015991211,-52.0022468566895,-51.9981460571289,-51.9939460754395,-51.9913063049316,-51.9895515441895,-51.9641609191895,-51.88037109375,-51.8186492919922,-51.7440452575684,-51.6911125183105,-51.6203117370605,-51.5408210754395,-51.4703102111816,-51.2989234924316,-51.2233390808105,-51.17041015625,-51.0954093933105,-51.0601539611816,-51.0333976745605,-50.9102516174316,-50.78955078125,-50.6818389892578,-50.63427734375,-50.6117172241211,-50.6075172424316,-50.6476554870605,-50.6376953125,-50.6531219482422,-50.6964836120605,-50.7603492736816,-50.73828125,-50.6700172424316,-50.6107406616211,-50.5584945678711,-50.4725570678711,-50.3619155883789,-50.2311515808105,-50.1252937316895,-50.0302734375,-49.9109382629395,-49.7945327758789,-49.6980476379395,-49.5829124450684,-49.4638671875,-49.3976554870605,-49.3138656616211,-49.3006858825684,-49.18798828125,-49.0968742370605,-49.0143547058105,-48.9767608642578,-48.9439430236816,-48.8962898254395,-48.8415985107422,-48.7928695678711,-48.7296867370605,-48.6624984741211,-48.5193328857422,-48.4753875732422,-48.4173851013184,-48.3658180236816,-48.2291030883789,-48.1100578308105,-48.0159187316895,-47.9733390808105,-47.8763694763184,-47.7841796875,-47.685546875,-47.5720710754395,-47.49267578125,-47.4462890625,-47.3427734375,-47.2414054870605,-47.2138671875,-47.20166015625,-47.1443367004395,-47.0874977111816,-47.0160179138184,-46.9368171691895,-46.8312492370605,-46.7915992736816,-46.7058563232422,-46.6513671875,-46.5784187316895,-46.4278335571289,-46.31982421875,-46.2799835205078,-46.2067375183105,-46.1605453491211,-46.1027336120605,-46.0418968200684,-45.9537124633789,-45.8787117004395,-45.8390617370605,-45.7244148254395,-45.5789070129395,-45.5347633361816,-45.5126953125,-45.4376983642578,-45.3319358825684,-45.23046875,-45.1682624816895,-45.06787109375,-44.9791984558105,-44.9306640625,-44.9041976928711,-44.8204116821289,-44.7718772888184,-44.79150390625,-44.7744140625,-44.7704124450684,-44.7620086669922,-44.7498054504395,-44.78515625,-44.7630844116211,-44.6307601928711,-44.5602531433105,-44.4940452575684,-44.4412117004395,-44.4249038696289,-44.3831062316895,-44.3301734924316,-44.2414054870605,-44.1507797241211,-44.1060562133789,-44.0666999816895,-43.9844703674316,-43.9295921325684,-43.8583984375,-43.7532234191895,-43.7046852111816,-43.6467781066895,-43.5901374816895,-43.5271492004395,-43.4401359558105,-43.3475608825684,-43.3229522705078,-43.2946281433105,-43.2373046875,-43.1667938232422,-43.1453094482422,-43.1019515991211,-43.0656242370605,-42.9900398254395,-42.7767562866211,-42.6482391357422,-42.5771484375,-42.5224609375,-42.4732398986816,-42.3584976196289,-42.29833984375,-42.2518539428711,-42.2053718566895,-42.14794921875,-42.13427734375,-42.1670875549316,-42.1478500366211,-42.1014633178711,-42.0467758178711,-41.9685554504395,-41.77197265625,-41.650390625,-41.6066398620605,-41.560546875,-41.3933601379395,-41.2923851013184,-40.99462890625,-40.8929672241211,-40.7891578674316,-40.6916999816895,-40.62060546875,-40.5244140625,-40.4391593933105,-40.40087890625,-40.3817367553711,-40.3352546691895,-40.2997093200684,-40.2443351745605,-40.1766624450684,-40.1247062683105,-40.0946273803711,-40.0949211120605,-40.0208015441895,-39.92919921875,-39.8868141174316,-39.8333015441895,-39.70703125,-39.63525390625,-39.6051750183105,-39.59423828125,-39.6111335754395,-39.6024398803711,-39.5641593933105,-39.5231475830078,-39.4952125549316,-39.40234375,-39.2872085571289,-39.2059593200684,-38.9856452941895,-38.93505859375,-38.8888664245605,-38.8454093933105,-38.8093757629395,-38.7575187683105,-38.7384757995605,-38.6810569763184,-38.6044921875,-38.5416030883789,-38.4978523254395,-38.4458999633789,-38.3148460388184,-38.1939468383789,-38.0412101745605,-37.9099617004395,-37.7623062133789,-37.6310539245605,-37.5591812133789,-37.4451141357422,-37.3932609558105,-37.30029296875,-37.2274398803711,-37.1143569946289,-37.0569305419922,-36.9202156066895,-36.8436508178711,-36.7616233825684,-36.68505859375,-36.64404296875,-36.5780258178711,-36.5237312316895,-36.4873046875,-36.419921875,-36.4117164611816,-36.4117164611816,-36.392578125,-36.3406257629395,-36.283203125,-36.2119140625,-36.1463851928711,-36.1327133178711,-36.0617179870605,-35.9705085754395,-35.8785171508789,-35.7718772888184,-35.6091804504395,-35.5230445861816,-35.4519538879395,-35.3753890991211,-35.326171875,-35.3079109191895,-35.2468719482422,-35.216796875,-35.1936531066895,-35.1468772888184,-34.9217758178711,-34.85498046875,-34.7745132446289,-34.7328147888184,-34.6726570129395,-34.5812530517578,-34.4928703308105,-34.4320335388184,-34.3500022888184,-34.30078125,-34.2762680053711,-34.2699203491211,-34.25439453125,-34.2243156433105,-34.1804695129395,-34.0835914611816,-33.9297828674316,-33.7313461303711,-33.6009750366211,-33.4697265625,-33.3986320495605,-33.3439445495605,-33.2837867736816,-33.2509765625,-33.2793922424316,-33.271484375,-33.2017593383789,-33.1279296875,-33.0267562866211,-32.9636726379395,-32.8845710754395,-32.8599624633789,-32.8074188232422,-32.6260757446289,-32.4716796875,-32.4306640625,-32.3099594116211,-32.2666969299316,-32.1764640808105,-32.08349609375,-32.0423851013184,-32.0310516357422,-31.9577140808105,-31.9165992736816,-31.8810558319092,-31.8837909698486,-31.8418941497803,-31.6664066314697,-31.5694351196289,-31.4279308319092,-31.3173847198486,-31.2228507995605,-31.1484394073486,-31.11279296875,-31.1292972564697,-31.12109375,-31.0604496002197,-31.0226535797119,-30.9925785064697,-30.9597644805908,-30.90234375,-30.833984375,-30.6772441864014,-30.5046863555908,-30.4402332305908,-30.3855476379395,-30.3609390258789,-30.3882808685303,-30.3582038879395,-30.2816410064697,-30.2132797241211,-30.1750011444092,-30.1203117370605,-30.1039047241211,-30.0783195495605,-30.0164070129395,-29.8740253448486,-29.7691402435303,-29.54541015625,-29.3240242004395,-29.2500019073486,-29.1488304138184,-29.1032238006592,-29.0455093383789,-28.7838859558105,-28.64111328125,-28.56201171875,-28.41357421875,-28.28564453125,-28.2008800506592,-28.1926765441895,-28.1653308868408,-28.07080078125,-27.9736328125,-27.9247074127197,-27.84814453125,-27.7435550689697,-27.5700187683105,-27.4490242004395,-27.4051761627197,-27.2466793060303,-27.1537113189697,-27.1154289245605,-27.1044921875,-27.1483402252197,-27.1400375366211,-27.0853500366211,-27.0481452941895,-27.0279293060303,-26.9732418060303,-26.8775386810303,-26.8064460754395,-26.6703128814697,-26.5183601379395,-26.4704093933105,-26.4180660247803,-26.3519535064697,-26.2769527435303,-26.1537113189697,-26.0654296875,-25.7410163879395,-25.6515617370605,-25.4856452941895,-25.4200191497803,-25.2367191314697,-25.1629886627197,-25.1493167877197,-25.1247081756592,-25.0918960571289,-25.0509777069092,-24.9989261627197,-24.9251937866211,-24.8992195129395,-24.8376960754395,-24.7473640441895,-24.6297855377197,-24.5969734191895,-24.5451164245605,-24.4972648620605,-24.4603519439697,-24.3919925689697,-24.3083000183105,-24.2433586120605,-24.1189441680908,-24.0337886810303,-23.9748039245605,-23.9346675872803,-23.6339836120605,-23.2451171875,-23.0013675689697,-22.8216800689697,-22.7738285064697,-22.65087890625,-22.55224609375,-22.5098628997803,-22.40966796875,-22.3430671691895,-22.2693347930908,-22.21630859375,-22.2053718566895,-22.1583995819092,-22.11376953125,-22.0531253814697,-21.9474601745605,-21.8304691314697,-21.8025398254395,-21.8056640625,-21.8350582122803,-21.8794918060303,-22.0197277069092,-22.099609375,-22.1102542877197,-22.0945320129395,-22.09814453125,-22.1027355194092,-22.1096668243408,-22.1439456939697,-22.1712894439697,-22.185546875,-22.2288074493408,-22.37158203125,-22.4853515625,-22.5853519439697,-22.7610359191895,-22.82763671875,-22.7953128814697,-22.6033210754395,-22.4913101196289,-22.3658199310303,-22.0725593566895,-22.0286140441895,-22.0072269439697,-22.0054683685303,-22.0272464752197,-22.0275402069092,-22.0042953491211,-22.0005855560303,-21.9972667694092,-21.9991207122803,-22.0496101379395,-22.1598644256592,-22.2179679870605,-22.2336921691895]}],[{"lng":[45.5523452758789,45.5143547058105,45.4788093566895,45.4788093566895,45.5044937133789,45.5341796875,45.5623016357422,45.5523452758789],"lat":[40.6160659790039,40.5995597839355,40.6069793701172,40.6483421325684,40.6648445129395,40.6640129089355,40.649169921875,40.6160659790039]}],[{"lng":[46.4906234741211,46.3177719116211,46.1701202392578,46.1144523620605,46.0774383544922,46.0458984375,45.9518547058105,45.9774436950684,45.9249992370605,45.7986297607422,45.7663078308105,45.7841796875,45.7964820861816,45.7844734191895,45.75048828125,45.6874008178711,45.6107444763184,45.4568367004395,45.3499031066895,45.2882804870605,45.2525405883789,45.1725578308105,45.15283203125,45.1486320495605,45.1246109008789,45.0764656066895,45.0316429138184,44.8671875,44.7682647705078,44.7337875366211,44.5604476928711,44.3996124267578,44.2892570495605,44.1780242919922,44.00537109375,43.9419898986816,43.7916984558105,43.6662139892578,43.6833000183105,43.7098655700684,43.6781234741211,43.6083984375,43.6158180236816,43.59375,43.5693359375,43.6678733825684,43.712890625,43.72265625,43.6964836120605,43.6316413879395,43.5916976928711,43.5174827575684,43.4552726745605,43.439453125,43.4919929504395,43.64501953125,43.7931632995605,43.9091796875,44.0772476196289,44.146484375,44.2273445129395,44.4730491638184,44.5648422241211,44.8414077758789,44.8485336303711,44.8109397888184,44.8113288879395,44.9758796691895,45.0013656616211,45.02294921875,45.0847625732422,45.15234375,45.1885719299316,45.1902351379395,45.0707054138184,45.0625953674316,45.0705108642578,45.1060523986816,45.2734375,45.3689422607422,45.4191398620605,45.4442367553711,45.5240249633789,45.5875015258789,45.5914077758789,45.5793952941895,45.4013671875,45.37890625,45.3761711120605,45.4543914794922,45.5695304870605,45.7357406616211,45.9646492004395,45.9675788879395,45.9312515258789,45.9000968933105,45.8859367370605,45.8581047058105,45.6301765441895,45.5959968566895,45.5809555053711,45.5797843933105,45.6618156433105,45.7896499633789,45.8631820678711,45.93994140625,46.02587890625,46.0948219299316,46.2020492553711,46.3216819763184,46.4814453125,46.4880828857422,46.4781265258789,46.3776359558105,46.3651390075684,46.365234375,46.37841796875,46.4373054504395,46.5066413879395,46.5847663879395,46.5499992370605,46.4771499633789,46.4203109741211,46.4002914428711,46.4014625549316,46.4753913879395,46.4898414611816,46.4867172241211,46.4906234741211],"lat":[38.9066886901855,38.9126472473145,38.8690414428711,38.8777809143066,38.9548797607422,39.0175323486328,39.1781272888184,39.243896484375,39.2819328308105,39.3501968383789,39.3784637451172,39.417236328125,39.4881324768066,39.5456085205078,39.5629386901855,39.5640602111816,39.5498046875,39.4944839477539,39.5298843383789,39.5655746459961,39.595458984375,39.5706062316895,39.5826683044434,39.6565895080566,39.6963386535645,39.7428207397461,39.76513671875,39.7191429138184,39.7035140991211,39.7464866638184,39.8875961303711,39.9957504272461,40.0403823852539,40.0357398986816,40.0141105651855,40.0231437683105,40.0702629089355,40.1263694763184,40.149658203125,40.16650390625,40.2393074035645,40.3565940856934,40.393310546875,40.4440422058105,40.4823722839355,40.5740737915039,40.6477546691895,40.7195320129395,40.7941398620605,40.9290046691895,40.9682121276855,41.0048332214355,41.064697265625,41.1071281433105,41.1155281066895,41.1166496276855,41.131103515625,41.1589813232422,41.1825180053711,41.203369140625,41.2133293151855,41.1910171508789,41.2082023620605,41.2113761901855,41.2201690673828,41.2485847473145,41.2593765258789,41.2774887084961,41.2909660339355,41.2457008361816,41.1954612731934,41.1751480102539,41.1474113464355,41.1263694763184,41.100830078125,41.088134765625,41.0755844116211,41.0693359375,41.0062484741211,41.0048828125,40.9856948852539,40.947998046875,40.896728515625,40.846923828125,40.8297386169434,40.8044929504395,40.7071266174316,40.673583984375,40.6380844116211,40.5323753356934,40.4168434143066,40.3291015625,40.2337875366211,40.1748046875,40.1046867370605,40.0570793151855,40.0248527526855,40.0112800598145,40.0142097473145,40.0028343200684,39.989013671875,39.9775390625,39.9561996459961,39.881103515625,39.808349609375,39.7765617370605,39.7185554504395,39.6644515991211,39.594482421875,39.617431640625,39.55517578125,39.5128440856934,39.47509765625,39.4338836669922,39.4167976379395,39.4024887084961,39.3822746276855,39.3485336303711,39.2985343933105,39.2236824035645,39.201416015625,39.1981925964355,39.2073707580566,39.1921882629395,39.1676750183105,39.1108894348145,39.0694351196289,38.9974594116211,38.9066886901855]}],[{"lng":[44.9690437316895,45.0020484924316,45.0236320495605,45.0287132263184,45.0210914611816,44.9943351745605,44.96142578125,44.9588851928711,44.9690437316895],"lat":[41.0272445678711,41.0158195495605,41.0272445678711,41.0538558959961,41.0779800415039,41.0855941772461,41.0792465209961,41.0526351928711,41.0272445678711]}],[{"lng":[-170.726272583008,-170.769241333008,-170.820510864258,-170.720855712891,-170.689163208008,-170.568115234375,-170.640472412109,-170.726272583008],"lat":[-14.3511714935303,-14.3597660064697,-14.3121089935303,-14.2759761810303,-14.2574214935303,-14.2667970657349,-14.2822265625,-14.3511714935303]}],[{"lng":[123.594528198242,123.595207214355,123.573150634766,123.572463989258,123.594528198242],"lat":[-12.4256830215454,-12.4359369277954,-12.4341802597046,-12.4239253997803,-12.4256830215454]}],[{"lng":[69.2824172973633,69.2206039428711,69.2015609741211,69.2039031982422,69.1695327758789,69.1501007080078,69.1671905517578,69.2664031982422,69.3687515258789,69.3947296142578,69.3211898803711,69.2824172973633],"lat":[-49.0588836669922,-49.0667991638184,-49.0342750549316,-48.9912109375,-48.95703125,-48.9190444946289,-48.8829078674316,-48.8788070678711,-48.8904304504395,-48.951171875,-49.0342750549316,-49.0588836669922]}],[{"lng":[69.1848678588867,69.26513671875,69.3142547607422,69.5349578857422,69.5927734375,69.5873031616211,69.64404296875,69.572265625,69.4362258911133,69.4050750732422,69.5423812866211,69.6107406616211,69.6666030883789,69.7707061767578,69.8543930053711,69.9839859008789,70.0613250732422,70.2083969116211,70.2849655151367,70.3202133178711,70.40625,70.4842834472656,70.5308609008789,70.5554733276367,70.5368194580078,70.4850616455078,70.3898468017578,70.4114227294922,70.3861312866211,70.33837890625,70.2976608276367,70.23779296875,70.1658248901367,69.9931640625,69.9156265258789,69.9021530151367,69.8611373901367,69.818359375,69.7599563598633,69.7492141723633,69.7802734375,69.85595703125,69.9864273071289,70.0628890991211,70.0734405517578,70.1658248901367,70.2477493286133,70.30712890625,70.2587890625,70.2162094116211,70.2074203491211,70.1243133544922,70.0750961303711,69.9189453125,69.8260726928711,69.8039016723633,69.7466812133789,69.6820373535156,69.6128921508789,69.4776306152344,69.3527374267578,69.2746047973633,69.1531219482422,69.0859375,68.9929733276367,68.8726577758789,68.8147430419922,68.7828140258789,68.7912139892578,68.810546875,68.8483428955078,68.8720703125,68.8619155883789,68.8184585571289,68.8414077758789,68.798828125,68.8135757446289,68.8833999633789,68.8538055419922,68.8166961669922,68.7901306152344,68.76953125,68.7965850830078,68.8369140625,68.83203125,68.9002914428711,68.9586868286133,69.00244140625,69.0572280883789,69.0812530517578,69.0930633544922,69.0715789794922,69.1227493286133,69.1361312866211,69.1041030883789,69.0994110107422,69.03271484375,69.0521469116211,69.1848678588867],"lat":[-49.1095695495605,-49.1154289245605,-49.1062507629395,-48.9743194580078,-48.9709930419922,-49.0719718933105,-49.1173820495605,-49.1290054321289,-49.1240234375,-49.1817359924316,-49.2556648254395,-49.2658195495605,-49.2649421691895,-49.2481422424316,-49.2215805053711,-49.1598625183105,-49.1360359191895,-49.1349601745605,-49.0764656066895,-49.05859375,-49.0611343383789,-49.0838890075684,-49.1369132995605,-49.2014656066895,-49.2655258178711,-49.32763671875,-49.3656272888184,-49.4109382629395,-49.4339866638184,-49.4352531433105,-49.4248046875,-49.37158203125,-49.3429718017578,-49.3449249267578,-49.3485374450684,-49.3892593383789,-49.4205055236816,-49.4376945495605,-49.43017578125,-49.4475593566895,-49.4901351928711,-49.5440444946289,-49.5816421508789,-49.58935546875,-49.5177726745605,-49.5093727111816,-49.5306625366211,-49.58349609375,-49.6007843017578,-49.6288070678711,-49.6650390625,-49.7043914794922,-49.7085952758789,-49.6893577575684,-49.6449241638184,-49.6135749816895,-49.6017608642578,-49.6421890258789,-49.6509780883789,-49.6173820495605,-49.5631828308105,-49.5427742004395,-49.5296859741211,-49.6529312133789,-49.7049789428711,-49.7098655700684,-49.6996078491211,-49.6512680053711,-49.599609375,-49.5501937866211,-49.4996109008789,-49.4443359375,-49.3921890258789,-49.3539047241211,-49.2853507995605,-49.2316398620605,-49.1920928955078,-49.1649398803711,-49.1413078308105,-49.1350593566895,-49.1037139892578,-49.06591796875,-48.9947242736816,-48.9261703491211,-48.8487319946289,-48.7755851745605,-48.69384765625,-48.6612319946289,-48.6564445495605,-48.6792984008789,-48.7239265441895,-48.7528305053711,-48.7660179138184,-48.8610343933105,-48.89990234375,-48.9375991821289,-49.017578125,-49.0819358825684,-49.1095695495605]}],[{"lng":[51.8345718383789,51.76171875,51.6965827941895,51.6592788696289,51.7418937683105,51.7841796875,51.8154296875,51.8345718383789],"lat":[-46.43994140625,-46.44873046875,-46.4281272888184,-46.3736343383789,-46.3268547058105,-46.35888671875,-46.3947257995605,-46.43994140625]}],[{"lng":[-61.716064453125,-61.7481460571289,-61.8596725463867,-61.8820343017578,-61.8871078491211,-61.8172836303711,-61.7385711669922,-61.7082061767578,-61.68603515625,-61.6864776611328,-61.6949691772461,-61.716064453125],"lat":[17.0370121002197,16.9971675872803,17.0133304595947,17.0631332397461,17.09814453125,17.1689453125,17.1384754180908,17.1050777435303,17.0984382629395,17.06982421875,17.0489253997803,17.0370121002197]}],[{"lng":[-61.7471160888672,-61.7620124816895,-61.8437957763672,-61.8687477111816,-61.8661613464355,-61.8524436950684,-61.8199195861816,-61.7767601013184,-61.7496109008789,-61.7471160888672],"lat":[17.574951171875,17.5486812591553,17.5961418151855,17.6854496002197,17.7042961120605,17.7140617370605,17.6968746185303,17.6904792785645,17.6613292694092,17.574951171875]}],[{"lng":[158.878799438477,158.84521484375,158.8359375,158.89697265625,158.958877563477,158.945602416992,158.878799438477],"lat":[-54.7097625732422,-54.7492179870605,-54.7040023803711,-54.5060539245605,-54.4723625183105,-54.5750007629395,-54.7097625732422]}],[{"lng":[147.356063842773,147.308883666992,147.2314453125,147.15380859375,147.10498046875,147.104690551758,147.1630859375,147.184661865234,147.198425292969,147.2197265625,147.233993530273,147.283889770508,147.3125,147.342483520508,147.356063842773],"lat":[-43.39697265625,-43.5007820129395,-43.4831047058105,-43.5001945495605,-43.43115234375,-43.4128913879395,-43.4302749633789,-43.4078140258789,-43.3791961669922,-43.3713874816895,-43.3304672241211,-43.2789077758789,-43.2802734375,-43.3462905883789,-43.39697265625]}],[{"lng":[147.4345703125,147.371871948242,147.348831176758,147.337600708008,147.296096801758,147.319137573242,147.327346801758,147.3525390625,147.397277832031,147.4345703125],"lat":[-43.24072265625,-43.2408218383789,-43.232421875,-43.1833000183105,-43.1617164611816,-43.1453094482422,-43.1146469116211,-43.0802726745605,-43.1182594299316,-43.24072265625]}],[{"lng":[148.104293823242,148.048141479492,148.029693603516,148.030853271484,148.022750854492,148.072555541992,148.142776489258,148.169540405273,148.1005859375,148.104293823242],"lat":[-42.71044921875,-42.71923828125,-42.71484375,-42.6633796691895,-42.6404304504395,-42.5931663513184,-42.6159172058105,-42.6517601013184,-42.6805686950684,-42.71044921875]}],[{"lng":[145.04296875,145.15869140625,145.224319458008,145.283020019531,145.349411010742,145.429397583008,145.485153198242,145.533493041992,145.576461791992,145.68603515625,145.733795166016,145.775390625,145.821472167969,146.111129760742,146.317489624023,146.574417114258,146.650588989258,146.723434448242,146.786041259766,146.84814453125,146.836029052734,146.856628417969,146.91943359375,146.989837646484,147.105758666992,147.218856811523,147.268951416016,147.320510864258,147.3876953125,147.454788208008,147.500778198242,147.579299926758,147.621688842773,147.817672729492,147.872955322266,147.96875,148.032806396484,148.215225219727,148.292877197266,148.285461425781,148.291610717773,148.306243896484,148.312210083008,148.289840698242,148.286911010742,148.296569824219,148.28759765625,148.315734863281,148.301651000977,148.301467895508,148.328018188477,148.3408203125,148.3310546875,148.342590332031,148.331253051758,148.290328979492,148.276962280273,148.284561157227,148.277145385742,148.255752563477,148.18310546875,148.204391479492,148.241607666016,148.213668823242,148.167190551758,148.141220092773,148.15625,148.127548217773,148.066604614258,148.022750854492,148.0048828125,148.009384155273,147.973541259766,147.924407958984,147.912109375,147.9150390625,147.957717895508,147.980850219727,147.945404052734,147.838577270508,147.785842895508,147.698913574219,147.64794921875,147.687301635742,147.77392578125,147.800384521484,147.807418823242,147.799987792969,147.693450927734,147.573837280273,147.535842895508,147.549026489258,147.536712646484,147.452346801758,147.408004760742,147.297943115234,147.301956176758,147.34765625,147.342666625977,147.324996948242,147.28076171875,147.259765625,147.259765625,147.245010375977,147.1728515625,146.996963500977,146.98486328125,146.987503051758,147.077346801758,147.035934448242,147.004684448242,146.954696655273,146.873931884766,146.834274291992,146.69921875,146.548538208008,146.413177490234,146.186721801758,146.043151855469,146.013076782227,145.981735229492,145.994430541992,146.108779907227,146.226379394531,146.2080078125,146.176467895508,146.125091552734,145.975296020508,145.873245239258,145.802734375,145.681549072266,145.609954833984,145.5673828125,145.517578125,145.487594604492,145.268157958984,145.237121582031,145.198822021484,145.372955322266,145.434860229492,145.46826171875,145.527252197266,145.5166015625,145.3603515625,145.339645385742,145.3310546875,145.29443359375,145.23486328125,145.258987426758,145.238174438477,145.055374145508,144.91552734375,144.777938842773,144.76611328125,144.764358520508,144.69775390625,144.662399291992,144.646102905273,144.709671020508,144.718551635742,144.818557739258,145.04296875],"lat":[-40.7867164611816,-40.7906227111816,-40.76513671875,-40.7699203491211,-40.8263664245605,-40.8582000732422,-40.8523445129395,-40.8639640808105,-40.9041023254395,-40.9390602111816,-40.9620094299316,-40.9971694946289,-41.0246086120605,-41.1180648803711,-41.1634788513184,-41.1423835754395,-41.1162109375,-41.0780296325684,-41.1136703491211,-41.1680679321289,-41.109375,-41.0583000183105,-41.0177726745605,-40.9923858642578,-40.9942398071289,-40.9833984375,-40.9597663879395,-40.9564437866211,-40.9855461120605,-41.0016593933105,-40.9641571044922,-40.8755836486816,-40.8447265625,-40.8716812133789,-40.87255859375,-40.7795906066895,-40.7809562683105,-40.8548812866211,-40.9470710754395,-41.1153297424316,-41.1746101379395,-41.2331047058105,-41.3497047424316,-41.4650421142578,-41.5549812316895,-41.6461906433105,-41.8157234191895,-41.927734375,-42.0041999816895,-42.0399398803711,-42.07373046875,-42.1111335754395,-42.1591796875,-42.21533203125,-42.2616195678711,-42.2549781799316,-42.2194328308105,-42.1734352111816,-42.1364250183105,-42.1026344299316,-42.0647430419922,-42.0419921875,-42.0218734741211,-41.9700202941895,-42.0123062133789,-42.06982421875,-42.0882797241211,-42.1037101745605,-42.1703109741211,-42.2594718933105,-42.3451156616211,-42.4359397888184,-42.505859375,-42.5724601745605,-42.6584968566895,-42.81640625,-42.96044921875,-43.1570320129395,-43.1818351745605,-43.1951179504395,-43.2200202941895,-43.12255859375,-43.0206069946289,-42.9798851013184,-43.00341796875,-42.9802742004395,-42.9541015625,-42.9281234741211,-42.8719749450684,-42.845703125,-42.8780288696289,-42.9745101928711,-42.9964866638184,-43.0333976745605,-42.8938484191895,-42.7909164428711,-42.8405265808105,-42.9265594482422,-42.9644546508789,-43.0134773254395,-43.03173828125,-43.0710945129395,-43.12646484375,-43.2159194946289,-43.255859375,-43.1563491821289,-43.1898422241211,-43.21875,-43.27587890625,-43.3190422058105,-43.36962890625,-43.50244140625,-43.6124992370605,-43.6193351745605,-43.6019554138184,-43.5088844299316,-43.51953125,-43.5127906799316,-43.5471687316895,-43.44482421875,-43.4084014892578,-43.3760719299316,-43.3543930053711,-43.3552742004395,-43.3162078857422,-43.3017578125,-43.3112297058105,-43.2771492004395,-43.2923812866211,-43.2440414428711,-43.0759773254395,-42.9982452392578,-42.9679679870605,-42.9513664245605,-42.9266586303711,-42.5443382263184,-42.45556640625,-42.2308578491211,-42.3384780883789,-42.4065437316895,-42.4928703308105,-42.38818359375,-42.3544921875,-42.2275390625,-42.1907234191895,-42.1470680236816,-42.1910133361816,-42.1969718933105,-42.1073226928711,-42.0196266174316,-41.8267555236816,-41.64404296875,-41.4188461303711,-41.3900375366211,-41.3415031433105,-41.1907234191895,-41.0789070129395,-40.9808578491211,-40.7829093933105,-40.6722679138184,-40.7216796875,-40.7867164611816]}],[{"lng":[148.236923217773,148.187805175781,148.126953125,148.117279052734,148.193161010742,148.218353271484,148.236923217773],"lat":[-40.51513671875,-40.5925788879395,-40.5439453125,-40.521484375,-40.5031242370605,-40.5050773620605,-40.51513671875]}],[{"lng":[144.784362792969,144.748046875,144.710159301758,144.751174926758,144.783401489258,144.790817260742,144.784362792969],"lat":[-40.5067367553711,-40.5894546508789,-40.4852523803711,-40.47021484375,-40.4348640441895,-40.4403305053711,-40.5067367553711]}],[{"lng":[148.326278686523,148.420700073242,148.474212646484,148.404006958008,148.352737426758,148.319427490234,148.214065551758,148.1025390625,148.020111083984,148.010452270508,148.058792114258,148.198135375977,148.326278686523],"lat":[-40.3069343566895,-40.3671875,-40.4324226379395,-40.4865226745605,-40.4972648620605,-40.4345703125,-40.45751953125,-40.45166015625,-40.4041976928711,-40.3805656433105,-40.3568344116211,-40.35791015625,-40.3069343566895]}],[{"lng":[148.000396728516,148.177932739258,148.27001953125,148.29736328125,148.289840698242,148.250793457031,148.3232421875,148.313568115234,148.299423217773,148.210357666016,148.105651855469,148.073638916016,148.046875,148.024795532227,147.890518188477,147.905960083008,147.876266479492,147.812301635742,147.767181396484,147.839157104492,147.932998657227,148.000396728516],"lat":[-39.7576141357422,-39.9384765625,-39.9666976928711,-39.9857406616211,-40.0654296875,-40.0995101928711,-40.1444320678711,-40.1735343933105,-40.1724624633789,-40.2336921691895,-40.2621116638184,-40.2408218383789,-40.2127952575684,-40.1719741821289,-40.0145492553711,-39.9713859558105,-39.9054679870605,-39.9104499816895,-39.8703155517578,-39.83154296875,-39.7259750366211,-39.7576141357422]}],[{"lng":[143.927932739258,143.898727416992,143.875778198242,143.887588500977,143.838577270508,143.865234375,143.86181640625,143.87939453125,143.939346313477,143.948837280273,144.000778198242,144.09130859375,144.120895385742,144.106048583984,144.141021728516,144.111907958984,144.035049438477,143.927932739258],"lat":[-40.1161117553711,-40.1202125549316,-40.06396484375,-39.9835929870605,-39.9041023254395,-39.82421875,-39.7379875183105,-39.7000007629395,-39.6581077575684,-39.5836906433105,-39.5801734924316,-39.6380882263184,-39.7852554321289,-39.8740234375,-39.9538078308105,-40.0220718383789,-40.0782203674316,-40.1161117553711]}],[{"lng":[145.314453125,145.349212646484,145.355072021484,145.270904541016,145.12841796875,145.2177734375,145.287887573242,145.314453125],"lat":[-38.4908218383789,-38.5381851196289,-38.5570335388184,-38.5197257995605,-38.5276336669922,-38.4585914611816,-38.47216796875,-38.4908218383789]}],[{"lng":[145.486526489258,145.335845947266,145.2802734375,145.285842895508,145.295303344727,145.426559448242,145.486526489258],"lat":[-38.3548812866211,-38.4209938049316,-38.390625,-38.3410148620605,-38.3189468383789,-38.3141593933105,-38.3548812866211]}],[{"lng":[137.596481323242,137.8359375,137.928909301758,138.046585083008,138.123428344727,138.066513061523,138.011901855469,137.835556030273,137.6708984375,137.622253417969,137.590240478516,137.448425292969,137.382217407227,137.209564208984,137.147750854492,137.02587890625,136.912704467773,136.755065917969,136.589263916016,136.540634155273,136.5791015625,136.638671875,137.091796875,137.334075927734,137.530456542969,137.5849609375,137.635452270508,137.59814453125,137.596481323242],"lat":[-35.7386703491211,-35.7621078491211,-35.72607421875,-35.7551765441895,-35.8523406982422,-35.9005889892578,-35.9076156616211,-35.8677711486816,-35.89794921875,-35.9380836486816,-36.0271492004395,-36.0748062133789,-36.0208969116211,-35.982421875,-36.0390625,-36.02392578125,-36.0466766357422,-36.0331077575684,-35.9353485107422,-35.89013671875,-35.8086891174316,-35.7488288879395,-35.6638679504395,-35.5924797058105,-35.6050796508789,-35.6202163696289,-35.6564445495605,-35.7222633361816,-35.7386703491211]}],[{"lng":[153.538772583008,153.452743530273,153.426559448242,153.395797729492,153.40087890625,153.435440063477,153.521881103516,153.538772583008],"lat":[-27.4364261627197,-27.7117176055908,-27.7064456939697,-27.6650390625,-27.5056629180908,-27.4053707122803,-27.4224624633789,-27.4364261627197]}],[{"lng":[153.442474365234,153.4208984375,153.376556396484,153.365036010742,153.3798828125,153.432312011719,153.466796875,153.426361083984,153.442474365234],"lat":[-27.3160152435303,-27.3309574127197,-27.2353515625,-27.1388664245605,-27.0494136810303,-27.0298824310303,-27.0380859375,-27.2014636993408,-27.3160152435303]}],[{"lng":[113.183006286621,113.156448364258,112.964256286621,112.908203125,112.947067260742,112.982421875,113.096290588379,113.131546020508,113.1318359375,113.148338317871,113.183006286621],"lat":[-26.0531253814697,-26.0945320129395,-25.7831058502197,-25.56982421875,-25.5315418243408,-25.5202140808105,-25.8150405883789,-25.8826179504395,-25.9519519805908,-25.9738273620605,-26.0531253814697]}],[{"lng":[153.077438354492,153.051956176758,153.006927490234,152.976669311523,152.9990234375,153.051559448242,153.060745239258,153.0380859375,153.189254760742,153.2275390625,153.241989135742,153.186325073242,153.143753051758,153.180953979492,153.22314453125,153.256927490234,153.282135009766,153.297958374023,153.359268188477,153.350189208984,153.141403198242,153.083786010742,153.077438354492],"lat":[-25.7507820129395,-25.7783203125,-25.7289066314697,-25.5513668060303,-25.4484386444092,-25.3542976379395,-25.30224609375,-25.1931648254395,-25.0705089569092,-25.0057621002197,-24.9225597381592,-24.8326187133789,-24.8148441314697,-24.7648429870605,-24.7395515441895,-24.7289066314697,-24.73828125,-24.9152336120605,-24.9777336120605,-25.0630855560303,-25.5127944946289,-25.6825199127197,-25.7507820129395]}],[{"lng":[151.146575927734,151.180755615234,151.212020874023,151.240142822266,151.228805541992,151.274322509766,151.295806884766,151.261520385742,151.23828125,151.184173583984,151.033294677734,151.059967041016,151.146575927734],"lat":[-23.4908199310303,-23.5162124633789,-23.5130863189697,-23.5296878814697,-23.5949211120605,-23.66845703125,-23.7203121185303,-23.7623043060303,-23.7757816314697,-23.74072265625,-23.5301761627197,-23.4605464935303,-23.4908199310303]}],[{"lng":[150.516708374023,150.488479614258,150.46240234375,150.484664916992,150.488479614258,150.521484375,150.548828125,150.516708374023],"lat":[-22.3225593566895,-22.32470703125,-22.3077163696289,-22.2678718566895,-22.2107429504395,-22.2283210754395,-22.3069324493408,-22.3225593566895]}],[{"lng":[149.928314208984,149.893646240234,149.869522094727,149.875381469727,149.912307739258,149.927932739258,149.928314208984],"lat":[-22.1930656433105,-22.2232437133789,-22.150390625,-22.0740242004395,-22.0487308502197,-22.1493167877197,-22.1930656433105]}],[{"lng":[115.446189880371,115.388084411621,115.318069458008,115.30859375,115.354301452637,115.4345703125,115.457611083984,115.446189880371],"lat":[-20.7877941131592,-20.8660163879395,-20.8505859375,-20.8111324310303,-20.7462902069092,-20.66796875,-20.71630859375,-20.7877941131592]}],[{"lng":[149.043746948242,149.019912719727,148.987411499023,148.938873291016,148.981048583984,149.00439453125,149.045318603516,149.043746948242],"lat":[-20.29150390625,-20.3025398254395,-20.3017578125,-20.28369140625,-20.1535148620605,-20.2214832305908,-20.2775382995605,-20.29150390625]}],[{"lng":[148.935546875,148.913482666016,148.886901855469,148.906448364258,148.931640625,148.967880249023,148.956253051758,148.935546875],"lat":[-20.14990234375,-20.154296875,-20.1435546875,-20.1019535064697,-20.0689449310303,-20.0443363189697,-20.1346683502197,-20.14990234375]}],[{"lng":[146.2783203125,146.298828125,146.341995239258,146.327056884766,146.298828125,146.235641479492,146.191299438477,146.1162109375,146.098831176758,146.186721801758,146.230850219727,146.249114990234,146.2783203125],"lat":[-18.2312507629395,-18.3260746002197,-18.4000968933105,-18.4486331939697,-18.4847660064697,-18.4507808685303,-18.3628902435303,-18.2923812866211,-18.2517585754395,-18.2551765441895,-18.2414073944092,-18.2258796691895,-18.2312507629395]}],[{"lng":[139.459182739258,139.421676635742,139.408203125,139.459182739258,139.492782592773,139.56005859375,139.570892333984,139.459182739258],"lat":[-17.1145496368408,-17.1316413879395,-17.0906257629395,-17.0491218566895,-16.9904308319092,-17.0419921875,-17.0944328308105,-17.1145496368408]}],[{"lng":[139.5078125,139.430572509766,139.391494750977,139.354293823242,139.283004760742,139.239059448242,139.159576416016,139.147659301758,139.162704467773,139.228713989258,139.29296875,139.458877563477,139.587890625,139.6044921875,139.69775390625,139.559677124023,139.5078125],"lat":[-16.5730476379395,-16.6610355377197,-16.6486320495605,-16.6965827941895,-16.7194347381592,-16.7186527252197,-16.74169921875,-16.7138671875,-16.6258792877197,-16.5275382995605,-16.46728515625,-16.4384765625,-16.3952159881592,-16.4032211303711,-16.5149421691895,-16.5294914245605,-16.5730476379395]}],[{"lng":[137.093658447266,137.050872802734,136.996475219727,136.985061645508,136.942672729492,136.96337890625,136.985748291016,137.009567260742,137.064544677734,137.071090698242,137.093658447266],"lat":[-15.7781248092651,-15.8244142532349,-15.7757797241211,-15.7259759902954,-15.7117176055908,-15.6657218933105,-15.6524419784546,-15.5948247909546,-15.6628904342651,-15.7380857467651,-15.7781248092651]}],[{"lng":[136.591003417969,136.531158447266,136.514251708984,136.502731323242,136.522552490234,136.586044311523,136.6123046875,136.591003417969],"lat":[-15.6282224655151,-15.6324214935303,-15.6273431777954,-15.5831060409546,-15.5431642532349,-15.5336904525757,-15.5441408157349,-15.6282224655151]}],[{"lng":[136.862701416016,136.846771240234,136.845596313477,136.876861572266,136.890228271484,136.862701416016],"lat":[-15.6199216842651,-15.6273431777954,-15.5440435409546,-15.5025386810303,-15.5888671875,-15.6199216842651]}],[{"lng":[124.597267150879,124.559562683105,124.524223327637,124.523735046387,124.482803344727,124.504104614258,124.519332885742,124.550872802734,124.564552307129,124.605079650879,124.597267150879],"lat":[-15.4019536972046,-15.43017578125,-15.4214849472046,-15.3824224472046,-15.34033203125,-15.2924795150757,-15.2674808502197,-15.2703123092651,-15.3108406066895,-15.3565435409546,-15.4019536972046]}],[{"lng":[125.198829650879,125.134765625,125.091209411621,125.117385864258,125.159965515137,125.198143005371,125.193557739258,125.198829650879],"lat":[-14.5794916152954,-14.6416988372803,-14.5916986465454,-14.4919910430908,-14.4560546875,-14.4748048782349,-14.5526371002197,-14.5794916152954]}],[{"lng":[136.714645385742,136.758010864258,136.804489135742,136.845306396484,136.870712280273,136.890808105469,136.905563354492,136.842956542969,136.81494140625,136.788177490234,136.745315551758,136.749908447266,136.787002563477,136.885452270508,136.933883666992,136.950790405273,136.931350708008,136.894332885742,136.76318359375,136.649703979492,136.460540771484,136.36328125,136.33544921875,136.392181396484,136.427734375,136.4111328125,136.424713134766,136.533782958984,136.582809448242,136.655670166016,136.701950073242,136.695983886719,136.714645385742],"lat":[-13.8039064407349,-13.8454103469849,-13.8424806594849,-13.7509765625,-13.763671875,-13.78662109375,-13.8269529342651,-13.8965816497803,-13.9073247909546,-13.94580078125,-14.0726566314697,-14.115234375,-14.1578121185303,-14.197265625,-14.1790037155151,-14.1842765808105,-14.2459964752197,-14.2930660247803,-14.2734375,-14.2804689407349,-14.2345705032349,-14.2289066314697,-14.2118158340454,-14.1754884719849,-14.12646484375,-14.0111322402954,-13.8648433685303,-13.7937498092651,-13.7210931777954,-13.6758794784546,-13.681640625,-13.7261714935303,-13.8039064407349]}],[{"lng":[136.237396240234,136.213668823242,136.122650146484,136.122268676758,136.134368896484,136.159576416016,136.215438842773,136.257431030273,136.275390625,136.237396240234],"lat":[-13.8245124816895,-13.8359375,-13.8166017532349,-13.7805662155151,-13.7531242370605,-13.7367181777954,-13.6647462844849,-13.7066411972046,-13.7911128997803,-13.8245124816895]}],[{"lng":[136.338668823242,136.180267333984,136.267379760742,136.44921875,136.479293823242,136.470520019531,136.37939453125,136.338668823242],"lat":[-11.6023445129395,-11.6767578125,-11.5764656066895,-11.4871091842651,-11.4659175872803,-11.5092763900757,-11.5832033157349,-11.6023445129395]}],[{"lng":[130.459274291992,130.541793823242,130.579879760742,130.602737426758,130.606246948242,130.502532958984,130.317489624023,130.131256103516,130.076568603516,130.043258666992,130.072067260742,130.139068603516,130.197555541992,130.187103271484,130.15283203125,130.251174926758,130.294921875,130.339263916016,130.376754760742,130.385650634766,130.432815551758,130.459274291992],"lat":[-11.6792964935303,-11.7031240463257,-11.7371091842651,-11.7732419967651,-11.8166007995605,-11.8356447219849,-11.7717771530151,-11.8245115280151,-11.8254880905151,-11.7873048782349,-11.6807613372803,-11.6970701217651,-11.658203125,-11.5412101745605,-11.4775390625,-11.3605470657349,-11.3368158340454,-11.3370113372803,-11.4201173782349,-11.5098638534546,-11.5921878814697,-11.6792964935303]}],[{"lng":[130.618850708008,130.752258300781,130.912780761719,130.987396240234,131.023040771484,131.140625,131.217178344727,131.268264770508,131.320510864258,131.436904907227,131.473342895508,131.522262573242,131.53857421875,131.467880249023,131.458587646484,131.3828125,131.292098999023,130.950988769531,130.644927978516,130.511917114258,130.422744750977,130.40478515625,130.368560791016,130.384567260742,130.402923583984,130.426651000977,130.519134521484,130.559768676758,130.618850708008],"lat":[-11.3760747909546,-11.3843746185303,-11.3092775344849,-11.33984375,-11.3343744277954,-11.2630863189697,-11.2425775527954,-11.1898441314697,-11.2468748092651,-11.3131837844849,-11.3825197219849,-11.4152336120605,-11.4369144439697,-11.5095701217651,-11.587890625,-11.58251953125,-11.7109375,-11.9264650344849,-11.7423830032349,-11.6178712844849,-11.44580078125,-11.3049812316895,-11.2149410247803,-11.1921873092651,-11.1804685592651,-11.18310546875,-11.2794923782349,-11.3059577941895,-11.3760747909546]}],[{"lng":[136.598541259766,136.526565551758,136.521682739258,136.559768676758,136.649032592773,136.68798828125,136.710556030273,136.727340698242,136.731735229492,136.7802734375,136.741409301758,136.598541259766],"lat":[-11.37890625,-11.4388675689697,-11.3938474655151,-11.35791015625,-11.2116203308105,-11.1776361465454,-11.1583976745605,-11.1047849655151,-11.0246095657349,-11.0124998092651,-11.1946287155151,-11.37890625]}],[{"lng":[132.593353271484,132.573623657227,132.493743896484,132.516311645508,132.483779907227,132.537796020508,132.578811645508,132.59326171875,132.596878051758,132.629104614258,132.593353271484],"lat":[-11.3028316497803,-11.318359375,-11.1636714935303,-11.1160154342651,-11.0373048782349,-11.0284175872803,-10.9688472747803,-10.9976568222046,-11.1064453125,-11.1691408157349,-11.3028316497803]}],[{"lng":[143.178909301758,143.152923583984,143.104690551758,143.099014282227,143.110244750977,143.190628051758,143.254104614258,143.289657592773,143.401550292969,143.397552490234,143.457717895508,143.512008666992,143.529479980469,143.586624145508,143.548431396484,143.589263916016,143.643356323242,143.707214355469,143.75634765625,143.822357177734,143.961807250977,144.105865478516,144.209869384766,144.321685791016,144.473052978516,144.58642578125,144.648056030273,144.915725708008,145.064453125,145.179977416992,145.287704467773,145.276947021484,145.251663208008,145.276168823242,145.293075561523,145.271575927734,145.349517822266,145.375381469727,145.4580078125,145.451858520508,145.436416625977,145.426086425781,145.490432739258,145.549896240234,145.638275146484,145.754791259766,145.837890625,145.912109375,145.901947021484,146.0498046875,146.125869750977,146.074020385742,146.022842407227,146.0322265625,146.223052978516,146.333190917969,146.311721801758,146.296875,146.383392333984,146.481155395508,146.587310791016,146.691986083984,146.828994750977,147.002639770508,147.0927734375,147.138778686523,147.278121948242,147.341506958008,147.418548583984,147.470901489258,147.509765625,147.586029052734,147.742385864258,147.853225708008,147.915634155273,148.004486083984,148.0810546875,148.189636230469,148.366897583008,148.526748657227,148.600494384766,148.759368896484,148.820999145508,148.884765625,148.805084228516,148.72998046875,148.683700561523,148.789459228516,148.912399291992,149.060546875,149.204879760742,149.241409301758,149.2802734375,149.329299926758,149.4541015625,149.460052490234,149.524032592773,149.595703125,149.645309448242,149.703903198242,149.771575927734,149.822463989258,149.920318603516,149.974411010742,150.005569458008,149.94189453125,149.981262207031,150.020614624023,150.076171875,150.142959594727,150.23486328125,150.405075073242,150.541305541992,150.57958984375,150.564361572266,150.568557739258,150.622848510742,150.672454833984,150.763870239258,150.782821655273,150.783004760742,150.843170166016,150.931060791016,150.98876953125,151.087692260742,151.15380859375,151.236328125,151.500778198242,151.575393676758,151.69091796875,151.831634521484,151.902740478516,152.055358886719,152.1298828125,152.282028198242,152.353118896484,152.456344604492,152.4931640625,152.502044677734,152.563278198242,152.654296875,152.789154052734,152.913482666016,152.920501708984,152.984954833984,153.028213500977,153.12548828125,153.164947509766,153.084182739258,153.162109375,153.116806030273,153.197952270508,153.3857421875,153.428421020508,153.454879760742,153.57568359375,153.569137573242,153.616897583008,153.604583740234,153.462203979492,153.348052978516,153.346969604492,153.272369384766,153.223831176758,153.188186645508,153.030563354492,153.023742675781,153.0478515625,153.021575927734,152.982223510742,152.943939208984,152.785842895508,152.559280395508,152.545303344727,152.5166015625,152.470413208008,152.331253051758,152.247451782227,152.215728759766,152.136520385742,152.134567260742,152.188095092773,152.164245605469,151.954284667969,151.812896728516,151.668350219727,151.607711791992,151.530075073242,151.483795166016,151.46337890625,151.432022094727,151.357528686523,151.292098999023,151.32275390625,151.288375854492,151.2802734375,151.24462890625,151.20166015625,151.167861938477,151.124801635742,151.191207885742,151.231552124023,151.089950561523,150.960342407227,150.927444458008,150.871276855469,150.821868896484,150.781051635742,150.809188842773,150.804595947266,150.774612426758,150.756057739258,150.697357177734,150.680953979492,150.705657958984,150.72216796875,150.714660644531,150.690338134766,150.634460449219,150.567474365234,150.374114990234,150.292190551758,150.1953125,150.158493041992,150.12890625,150.095306396484,150.062789916992,149.988174438477,149.960266113281,149.950592041016,149.986328125,149.962890625,149.962310791016,149.932723999023,149.809387207031,149.708984375,149.5654296875,149.480865478516,149.298446655273,148.943939208984,148.262512207031,148.130676269531,147.876754760742,147.631454467773,147.395599365234,146.856842041016,146.435745239258,146.356262207031,146.292587280273,146.217483520508,146.216201782227,146.285552978516,146.336624145508,146.426940917969,146.466598510742,146.481643676758,146.483795166016,146.456649780273,146.399993896484,146.340042114258,146.33203125,146.254287719727,146.158401489258,146.069915771484,146.018157958984,145.935348510742,145.865539550781,145.790832519531,145.69189453125,145.606338500977,145.535354614258,145.397262573242,145.424224853516,145.462799072266,145.542190551758,145.518356323242,145.475769042969,145.366409301758,145.292770385742,145.248931884766,145.191223144531,144.959564208984,144.847259521484,144.7177734375,144.7802734375,144.911422729492,145.020126342773,145.066986083984,145.119918823242,145.049606323242,144.98486328125,144.891296386719,144.538482666016,144.46533203125,144.3955078125,144.517776489258,144.589447021484,144.665237426758,144.543640136719,144.447845458984,144.328720092773,144.1015625,143.811721801758,143.686721801758,143.538970947266,143.338470458984,143.226470947266,143.082611083984,142.840240478516,142.612106323242,142.455856323242,142.344528198242,142.187698364258,141.924713134766,141.725006103516,141.593948364258,141.491790771484,141.424209594727,141.2138671875,141.010940551758,140.627243041992,140.390426635742,140.212097167969,139.874801635742,139.784271240234,139.742279052734,139.738464355469,139.783889770508,139.846572875977,139.857330322266,139.72900390625,139.548721313477,139.465927124023,139.244918823242,139.037689208984,138.985061645508,138.968948364258,139.06689453125,139.112503051758,139.178024291992,139.230560302734,139.289459228516,139.292083740234,139.325088500977,139.302536010742,139.282516479492,139.192764282227,139.09375,139.017684936523,138.915222167969,138.875305175781,138.77099609375,138.729690551758,138.521881103516,138.389266967773,138.184371948242,138.252151489258,138.332916259766,138.399810791016,138.511123657227,138.489944458008,138.436233520508,138.264358520508,138.186233520508,138.089248657227,138.041305541992,138.012298583984,137.919235229492,137.874114990234,137.691696166992,137.56640625,137.459564208984,137.272369384766,137.144439697266,137.029876708984,136.966598510742,136.883590698242,137.014266967773,137.12841796875,137.252044677734,137.308395385742,137.391021728516,137.454284667969,137.492965698242,137.468551635742,137.458984375,137.483596801758,137.493850708008,137.650390625,137.780853271484,137.931838989258,137.913970947266,137.866012573242,137.852340698242,137.92431640625,137.992584228516,137.913192749023,137.863098144531,137.783203125,137.781845092773,137.790908813477,137.68017578125,137.536224365234,137.442291259766,137.354202270508,137.2373046875,137.130264282227,137.034469604492,136.9365234375,136.783493041992,136.635543823242,136.52587890625,136.4306640625,136.12109375,135.979675292969,135.950592041016,135.891006469727,135.902633666992,135.950592041016,135.99853515625,135.9697265625,135.919143676758,135.792388916016,135.712493896484,135.647552490234,135.480865478516,135.411727905273,135.32421875,135.230667114258,135.190826416016,135.123046875,135.129592895508,135.175979614258,135.216796875,135.29248046875,135.378707885742,135.427337646484,135.449996948242,135.367965698242,135.31201171875,135.286315917969,135.218948364258,135.185455322266,135.042083740234,134.888763427734,134.8466796875,134.791015625,134.719039916992,134.607711791992,134.30126953125,134.173538208008,134.100402832031,134.158401489258,134.227157592773,134.249206542969,134.234191894531,133.93017578125,133.786712646484,133.665328979492,133.551376342773,133.400588989258,133.212097167969,132.757415771484,132.648635864258,132.323638916016,132.214645385742,131.72119140625,131.393173217773,131.284957885742,131.143646240234,131.029296875,130.948135375977,130.783020019531,130.129791259766,129.56884765625,129.187698364258,128.946182250977,128.546096801758,128.067672729492,127.678024291992,127.31982421875,127.084083557129,126.779296875,126.136520385742,125.917190551758,125.567481994629,125.463676452637,125.2666015625,124.7587890625,124.524604797363,124.373237609863,124.243751525879,124.126083374023,123.967178344727,123.868362426758,123.650382995605,123.506843566895,123.365425109863,123.207611083984,123.067581176758,122.955657958984,122.777542114258,122.150978088379,122.061134338379,121.946388244629,121.729682922363,121.405082702637,120.814544677734,120.530570983887,120.418365478516,120.209373474121,119.854095458984,119.729103088379,119.635162353516,119.450584411621,119.247657775879,119.081344604492,118.895317077637,118.520118713379,118.135551452637,118.006446838379,117.863082885742,117.675392150879,117.581939697266,117.143943786621,116.865425109863,116.517196655273,116.217086791992,115.986717224121,115.726272583008,115.565040588379,115.277641296387,115.194831848145,115.127937316895,115.0087890625,115.005661010742,114.973434448242,114.975685119629,114.993843078613,115.098922729492,115.181648254395,115.358795166016,115.515327453613,115.6044921875,115.683006286621,115.670890808105,115.618560791016,115.654296875,115.707916259766,115.725387573242,115.738090515137,115.698432922363,115.454597473145,115.294334411621,115.176849365234,115.077926635742,114.994529724121,114.968841552734,114.942085266113,114.971382141113,114.958984375,114.856826782227,114.62841796875,114.590621948242,114.591789245605,114.537399291992,114.353515625,114.165138244629,114.133499145508,114.098442077637,114.028121948242,113.709373474121,113.3330078125,113.231056213379,113.184768676758,113.210739135742,113.253120422363,113.300102233887,113.3232421875,113.345306396484,113.342872619629,113.356056213379,113.388969421387,113.427444458008,113.546577453613,113.581642150879,113.733695983887,113.780372619629,113.83642578125,113.852836608887,113.775779724121,113.706451416016,113.589065551758,113.513381958008,113.395309448242,113.397361755371,113.451370239258,113.539451599121,113.621192932129,113.713088989258,113.697845458984,113.68359375,113.691703796387,113.723731994629,113.765823364258,113.811820983887,113.853904724121,113.8798828125,113.9423828125,113.991989135742,114.09033203125,114.175979614258,114.215721130371,114.203315734863,114.228515625,114.214256286621,113.992774963379,113.792388916016,113.670799255371,113.569236755371,113.503517150879,113.417671203613,113.412986755371,113.421287536621,113.489845275879,113.552932739258,113.757034301758,113.766990661621,113.764846801758,113.794921875,113.795120239258,113.767875671387,113.682807922363,113.795021057129,113.958396911621,114.022850036621,114.123924255371,114.142578125,114.0927734375,114.163864135742,114.1416015625,114.205177307129,114.303512573242,114.377731323242,114.4169921875,114.602828979492,114.709274291992,114.859085083008,115.161712646484,115.456153869629,115.596092224121,115.771484375,115.8935546875,116.010940551758,116.605865478516,116.706733703613,116.836326599121,116.995307922363,117.139053344727,117.292778015137,117.40625,117.683883666992,117.832321166992,118.087303161621,118.199226379395,118.458305358887,118.751457214355,119.104499816895,119.358787536621,119.585945129395,119.767776489258,120.1962890625,120.433692932129,120.87841796875,120.997947692871,121.179779052734,121.337692260742,121.493560791016,121.589454650879,121.630668640137,121.721977233887,121.784866333008,121.833786010742,122.006248474121,122.262107849121,122.345405578613,122.360939025879,122.305763244629,122.237396240234,122.191307067871,122.147453308105,122.143165588379,122.160255432129,122.260932922363,122.332717895508,122.432029724121,122.522552490234,122.597946166992,122.720413208008,122.772079467773,122.848045349121,122.916793823242,122.970695495605,123.074409484863,123.142097473145,123.265914916992,123.383201599121,123.478813171387,123.525199890137,123.563079833984,123.571479797363,123.561813354492,123.607917785645,123.586334228516,123.593559265137,123.617683410645,123.664054870605,123.753807067871,123.799026489258,123.8310546875,123.829483032227,123.874412536621,123.856338500977,123.778121948242,123.745025634766,123.680465698242,123.607131958008,123.517974853516,123.490432739258,123.525093078613,123.581344604492,123.6259765625,123.646492004395,123.607025146484,123.6474609375,123.728904724121,123.859184265137,123.915229797363,123.961318969727,124.04443359375,124.129783630371,124.18603515625,124.300384521484,124.452743530273,124.529975891113,124.6923828125,124.77197265625,124.757026672363,124.669242858887,124.5703125,124.454490661621,124.404884338379,124.388275146484,124.416404724121,124.4345703125,124.509963989258,124.576858520508,124.585052490234,124.608589172363,124.648536682129,124.648345947266,124.606636047363,124.504295349121,124.455268859863,124.381637573242,124.396583557129,124.439544677734,124.505661010742,124.561630249023,124.644340515137,124.690925598145,124.680168151855,124.692573547363,124.750480651855,124.972068786621,125.016410827637,125.06298828125,125.077934265137,125.072952270508,125.024017333984,124.909172058105,124.882713317871,124.892669677734,124.839073181152,124.914161682129,124.978706359863,125.023330688477,125.024017333984,125.038185119629,125.072952270508,125.188667297363,125.302345275879,125.355667114258,125.375579833984,125.3837890625,125.243263244629,125.239456176758,125.180374145508,125.1787109375,125.266502380371,125.284576416016,125.33544921875,125.435935974121,125.503715515137,125.579788208008,125.598342895508,125.597068786621,125.627738952637,125.70458984375,125.681243896484,125.680961608887,125.661613464355,125.690521240234,125.708404541016,125.738479614258,125.819526672363,125.839553833008,125.85009765625,125.890617370605,125.946090698242,126.020706176758,126.016609191895,126.044830322266,126.053611755371,126.100875854492,126.111328125,126.073432922363,126.053901672363,126.119049072266,126.184272766113,126.228218078613,126.258491516113,126.298828125,126.323051452637,126.403129577637,126.482429504395,126.569732666016,126.679092407227,126.780662536621,126.764457702637,126.775588989258,126.903221130371,127.006057739258,127.099220275879,127.293060302734,127.457611083984,127.531051635742,127.672843933105,127.763481140137,127.887603759766,128.180465698242,128.199417114258,128.159866333008,128.124420166016,128.080474853516,128.069427490234,128.111709594727,128.155471801758,128.201766967773,128.254684448242,128.258987426758,128.227249145508,128.172958374023,128.175003051758,128.218353271484,128.28515625,128.358200073242,128.403228759766,128.409866333008,128.477447509766,128.575790405273,128.635543823242,129.058197021484,129.165130615234,129.175201416016,129.2158203125,129.237884521484,129.233596801758,129.267578125,129.381256103516,129.458984375,129.567092895508,129.587692260742,129.634765625,129.650299072266,129.628219604492,129.612701416016,129.637115478516,129.763473510742,129.848724365234,129.808395385742,129.753509521484,129.662979125977,129.604690551758,129.698638916016,129.697937011719,129.60791015625,129.48388671875,129.378707885742,129.459167480469,129.61962890625,129.709869384766,129.718368530273,129.76171875,129.789260864258,129.797164916992,129.8388671875,129.937881469727,130.072662353516,130.135940551758,130.199325561523,130.259765625,130.134963989258,130.145309448242,130.168167114258,130.317977905273,130.39990234375,130.454193115234,130.571884155273,130.617477416992,130.609573364258,130.622650146484,130.67236328125,130.736129760742,130.776565551758,130.867385864258,130.898239135742,130.882919311523,130.873825073242,130.956634521484,131.0234375,131.030075073242,131.01953125,131.045700073242,131.219924926758,131.265426635742,131.291610717773,131.313781738281,131.342086791992,131.438278198242,131.726257324219,131.887985229492,131.956741333008,132.064056396484,132.182327270508,132.253219604492,132.3720703125,132.411026000977,132.441604614258,132.510543823242,132.583786010742,132.676376342773,132.712783813477,132.630477905273,132.63525390625,132.6298828125,132.644729614258,132.674224853516,132.475189208984,132.277923583984,132.133590698242,132.072860717773,131.944625854492,131.822463989258,131.811813354492,131.961517333984,132.0185546875,132.105758666992,132.155471801758,132.19775390625,132.225006103516,132.2626953125,132.333984375,132.557327270508,132.682815551758,132.7470703125,132.857116699219,132.961044311523,133.02490234375,133.114349365234,133.185256958008,133.356155395508,133.443161010742,133.533203125,133.654495239258,133.904205322266,134.139450073242,134.237106323242,134.35107421875,134.417388916016,134.5380859375,134.730270385742,134.81640625,134.854675292969,135.029678344727,135.217971801758,135.352340698242,135.548721313477,135.685546875,135.788482666016,135.88525390625,135.922454833984,135.843551635742,135.833984375,135.895812988281,135.889450073242,135.804290771484,135.702545166016,135.704391479492,135.743942260742,135.790832519531,135.857421875,135.937805175781,136.008483886719,136.031448364258,136.081832885742,136.192672729492,136.260650634766,136.328506469727,136.291885375977,136.249893188477,136.270111083984,136.443359375,136.540237426758,136.609771728516,136.719436645508,136.83642578125,136.8974609375,136.947463989258,136.537017822266,136.517776489258,136.573043823242,136.594329833984,136.461029052734,136.411911010742,136.364547729492,136.294143676758,136.232330322266,136.166122436523,135.927352905273,135.92919921875,135.989547729492,135.954498291016,135.883407592773,135.806350708008,135.744537353516,135.538864135742,135.473236083984,135.405181884766,135.428024291992,135.453323364258,135.53076171875,135.832611083984,135.969528198242,136.205368041992,136.25927734375,136.291412353516,136.4619140625,136.583587646484,136.618759155273,136.644134521484,136.674606323242,136.704879760742,136.700103759766,136.686721801758,136.698150634766,136.78466796875,136.922653198242,137.002151489258,137.08984375,137.1689453125,137.29931640625,137.5263671875,137.703720092773,137.912887573242,138.071578979492,138.245025634766,138.505661010742,138.625686645508,138.8203125,139.009872436523,139.1103515625,139.14453125,139.154113769531,139.248428344727,139.440521240234,139.689651489258,139.89453125,139.945999145508,140.035842895508,140.209671020508,140.511123657227,140.6484375,140.830474853516,140.915817260742,140.966018676758,141.219146728516,141.291412353516,141.355667114258,141.411911010742,141.393173217773,141.451568603516,141.581451416016,141.62548828125,141.603515625,141.52294921875,141.558990478516,141.594329833984,141.535446166992,141.480667114258,141.472564697266,141.5341796875,141.588775634766,141.645401000977,141.613571166992,141.734573364258,141.7822265625,141.875793457031,141.920303344727,141.929794311523,141.892883300781,141.878311157227,141.852142333984,141.794540405273,141.746688842773,141.677734375,141.688568115234,141.805770874023,141.870498657227,141.912979125977,141.961135864258,141.9677734375,141.951568603516,142.04052734375,142.138961791992,142.168365478516,142.326477050781,142.406829833984,142.456451416016,142.544815063477,142.605072021484,142.5654296875,142.552734375,142.723052978516,142.779678344727,142.803314208984,142.836822509766,142.852935791016,142.8505859375,142.87255859375,142.933990478516,142.988479614258,143.06640625,143.178909301758],"lat":[-11.9544925689697,-12.0758790969849,-12.1696290969849,-12.2259769439697,-12.3035163879395,-12.3612298965454,-12.3976564407349,-12.4988279342651,-12.6399412155151,-12.7361326217651,-12.8557615280151,-13.0945310592651,-13.3038082122803,-13.4436521530151,-13.7410154342651,-13.86279296875,-13.9636716842651,-14.16455078125,-14.3488273620605,-14.4010744094849,-14.4628915786743,-14.39453125,-14.3019533157349,-14.2793951034546,-14.2318363189697,-14.3546876907349,-14.4924793243408,-14.67431640625,-14.791015625,-14.85693359375,-14.9431648254395,-15.0293941497803,-15.0974607467651,-15.2039051055908,-15.3272466659546,-15.4766607284546,-15.7015619277954,-15.8810539245605,-16.0564460754395,-16.2369136810303,-16.3049793243408,-16.4061527252197,-16.5321273803711,-16.6250972747803,-16.72607421875,-16.8794918060303,-16.9103507995605,-16.9125003814697,-17.0702152252197,-17.3810539245605,-17.63525390625,-17.9773426055908,-18.1757831573486,-18.2728519439697,-18.5098648071289,-18.5537109375,-18.6666984558105,-18.8412113189697,-18.97705078125,-19.0787105560303,-19.1394538879395,-19.1874027252197,-19.2357425689697,-19.2560558319092,-19.3326168060303,-19.3931636810303,-19.4141597747803,-19.4029293060303,-19.3781242370605,-19.4193363189697,-19.47412109375,-19.6227550506592,-19.7701168060303,-19.7947273254395,-19.8692398071289,-19.8895492553711,-19.8986320495605,-19.9558601379395,-20.0874996185303,-20.10888671875,-20.1452140808105,-20.28955078125,-20.3664073944092,-20.4808597564697,-20.49169921875,-20.4677734375,-20.5801753997803,-20.7356452941895,-20.84521484375,-20.9611339569092,-21.1250972747803,-21.2501964569092,-21.2995109558105,-21.47607421875,-21.5787105560303,-21.7654285430908,-22.0236320495605,-22.2576179504395,-22.3283195495605,-22.4405269622803,-22.42626953125,-22.3898429870605,-22.5013675689697,-22.5506839752197,-22.5215816497803,-22.30810546875,-22.1842765808105,-22.1683597564697,-22.1644515991211,-22.2654304504395,-22.3729496002197,-22.4689445495605,-22.55908203125,-22.5557613372803,-22.4861316680908,-22.3839855194092,-22.3672847747803,-22.4181652069092,-22.576171875,-22.9029293060303,-23.1765613555908,-23.4580078125,-23.5319328308105,-23.6017570495605,-23.6960945129395,-23.7840805053711,-23.8249988555908,-24.0124034881592,-24.0335941314697,-24.0383796691895,-24.1229496002197,-24.2009754180908,-24.4944324493408,-24.5975589752197,-24.6993160247803,-24.7325191497803,-24.8024425506592,-24.9040031433105,-24.9639644622803,-25.0720710754395,-25.2019538879395,-25.2741203308105,-25.43212890625,-25.6885738372803,-25.8162117004395,-25.8703136444092,-25.9226570129395,-25.9641590118408,-26.3038082122803,-26.9827156066895,-27.1944332122803,-27.4046878814697,-27.7685546875,-27.8976573944092,-28.04833984375,-28.2405261993408,-28.5333995819092,-28.6730461120605,-28.8544921875,-29.0501937866211,-29.2904300689697,-29.49658203125,-29.8924808502197,-29.9986305236816,-30.1638679504395,-30.5633792877197,-30.7201175689697,-30.9071292877197,-31.0866222381592,-31.2087879180908,-31.4348621368408,-31.7863273620605,-32.0457038879395,-32.2430648803711,-32.3301734924316,-32.4390602111816,-32.5575218200684,-32.6086921691895,-32.6781234741211,-32.6781234741211,-32.6999015808105,-32.7216796875,-32.7574234008789,-32.8203125,-32.9010734558105,-33.0986328125,-33.2018585205078,-33.3009757995605,-33.3474578857422,-33.3973655700684,-33.5215797424316,-33.5439453125,-33.5809555053711,-33.6993179321289,-33.8348655700684,-33.9266586303711,-33.9850578308105,-33.9640617370605,-33.9734344482422,-34.0052719116211,-34.0152320861816,-34.0296859741211,-34.1624984741211,-34.2970695495605,-34.3866233825684,-34.4991226196289,-34.7492179870605,-34.8921890258789,-34.9938507080078,-35.0128936767578,-35.0204086303711,-35.0071258544922,-35.0418968200684,-35.07666015625,-35.1197280883789,-35.1345710754395,-35.1551742553711,-35.177734375,-35.1776351928711,-35.2142562866211,-35.5841789245605,-35.6823272705078,-35.8335952758789,-35.9706039428711,-36.1204109191895,-36.3726577758789,-36.5503921508789,-36.7227554321289,-36.8455085754395,-37.0802726745605,-37.2583999633789,-37.35302734375,-37.44384765625,-37.5285148620605,-37.5478515625,-37.6169929504395,-37.72998046875,-37.7711906433105,-37.8021507263184,-37.7884750366211,-37.8306655883789,-37.8560523986816,-37.9341812133789,-38.0556640625,-38.2191390991211,-38.6634788513184,-38.7118186950684,-38.7118186950684,-38.6998023986816,-38.7274436950684,-38.78271484375,-38.8402328491211,-38.8942375183105,-38.8196296691895,-38.84033203125,-38.9779281616211,-39.0650367736816,-39.1123046875,-39.1455078125,-39.1238288879395,-39.07666015625,-38.9644546508789,-38.86572265625,-38.8340835571289,-38.8670883178711,-38.9017601013184,-38.7759780883789,-38.6669921875,-38.6556625366211,-38.6568336486816,-38.6096687316895,-38.5353507995605,-38.4773445129395,-38.4163093566895,-38.3938484191895,-38.3114242553711,-38.2437477111816,-38.2256813049316,-38.2375984191895,-38.2912101745605,-38.3835945129395,-38.5007820129395,-38.4363288879395,-38.34033203125,-38.3473625183105,-38.3440437316895,-38.2583999633789,-38.2048835754395,-38.09130859375,-38.0109367370605,-37.9522476196289,-37.8998031616211,-38.0771484375,-38.1025390625,-38.1369132995605,-38.1664085388184,-38.1576156616211,-38.2099609375,-38.2840805053711,-38.3037109375,-38.3482437133789,-38.4623031616211,-38.6988258361816,-38.7668952941895,-38.8208999633789,-38.7578125,-38.7431640625,-38.6458969116211,-38.5808601379395,-38.45166015625,-38.3863296508789,-38.3721656799316,-38.3994140625,-38.2837867736816,-38.2713890075684,-38.3877944946289,-38.3797874450684,-38.3634757995605,-38.1719741821289,-38.0769538879395,-38.0284156799316,-37.8966789245605,-37.6421852111816,-37.35205078125,-37.2458000183105,-37.1416969299316,-37.0595703125,-36.9026374816895,-36.748046875,-36.662109375,-36.3713874816895,-36.0966796875,-36.0103530883789,-35.8273429870605,-35.6892585754395,-35.6175804138184,-35.5807609558105,-35.5984382629395,-35.5422859191895,-35.5230445861816,-35.59765625,-35.611328125,-35.4859352111816,-35.4266624450684,-35.3994140625,-35.3753890991211,-35.3472671508789,-35.3895492553711,-35.4432601928711,-35.4888687133789,-35.5368156433105,-35.5383796691895,-35.55078125,-35.6423835754395,-35.6447257995605,-35.6126937866211,-35.4865226745605,-35.4117202758789,-35.3257789611816,-35.0244140625,-34.7635726928711,-34.65625,-34.4403305053711,-34.3072280883789,-34.1698226928711,-34.2498054504395,-34.3340835571289,-34.4560546875,-34.7274398803711,-35.1429710388184,-35.1480484008789,-35.13134765625,-35.1787109375,-35.2364273071289,-35.2365226745605,-35.2548828125,-35.23974609375,-34.9158210754395,-34.9247055053711,-34.9115257263184,-34.9169921875,-34.9132804870605,-34.7644538879395,-34.5977516174316,-34.490234375,-34.37890625,-34.2521476745605,-34.1611328125,-33.8590812683105,-33.703125,-33.5791015625,-33.4613304138184,-33.3140640258789,-33.2007827758789,-33.1651382446289,-33.09423828125,-32.7707061767578,-32.6737289428711,-32.578125,-32.7019500732422,-32.8232421875,-32.97802734375,-33.0891571044922,-33.1935539245605,-33.43017578125,-33.6294898986816,-33.7030296325684,-33.7195320129395,-33.7501945495605,-33.8296890258789,-33.8965835571289,-33.9841804504395,-34.0299797058105,-34.4287109375,-34.5619163513184,-34.61572265625,-34.6609382629395,-34.7238273620605,-34.7667961120605,-34.9437484741211,-34.9818344116211,-34.9619140625,-34.86328125,-34.8992156982422,-34.9396476745605,-34.7582054138184,-34.7155265808105,-34.6426734924316,-34.5797843933105,-34.5726547241211,-34.5857429504395,-34.5365219116211,-34.49658203125,-34.4873046875,-34.5456047058105,-34.59765625,-34.6019515991211,-34.5810546875,-34.3755874633789,-34.1955108642578,-34.1422843933105,-33.9597663879395,-33.90673828125,-33.7777328491211,-33.6263656616211,-33.4446296691895,-33.3283195495605,-33.2551765441895,-33.1901359558105,-33.1650390625,-32.9790992736816,-32.7486343383789,-32.7333984375,-32.7305679321289,-32.65869140625,-32.5485343933105,-32.4117202758789,-32.2688446044922,-32.2072257995605,-32.1829071044922,-32.1884765625,-32.1837882995605,-31.9562492370605,-31.9493160247803,-32.02001953125,-32.0071258544922,-31.6962890625,-31.5485343933105,-31.52099609375,-31.4957027435303,-31.5318355560303,-31.5658226013184,-31.6040019989014,-31.5791034698486,-31.6272449493408,-31.6599617004395,-31.70263671875,-31.8876953125,-32.0665054321289,-32.1512680053711,-32.2640609741211,-32.296875,-32.3109359741211,-32.2568359375,-32.2969741821289,-32.505859375,-32.5565452575684,-32.6144523620605,-32.8827171325684,-32.9401359558105,-32.9583969116211,-33.0152359008789,-33.12939453125,-33.4462890625,-33.5963859558105,-33.8363265991211,-33.9162101745605,-33.9053688049316,-33.98828125,-33.9005851745605,-33.8837890625,-33.8908233642578,-33.9917945861816,-33.8744163513184,-33.8567390441895,-33.8624992370605,-33.8267593383789,-33.8712921142578,-33.9197273254395,-33.9630851745605,-33.9354515075684,-33.9747047424316,-34.04150390625,-34.1011695861816,-34.3682632446289,-34.4564476013184,-34.4593734741211,-34.4798851013184,-34.7371101379395,-34.9866180419922,-35.0132827758789,-35.0549812316895,-35.0749015808105,-35.0977516174316,-35.03369140625,-35.0265617370605,-34.9878883361816,-34.8658218383789,-34.7950172424316,-34.5260734558105,-34.42578125,-34.3039093017578,-34.3084983825684,-34.341796875,-34.255859375,-34.1451148986816,-34.0511703491211,-33.80419921875,-33.5153312683105,-33.5802726745605,-33.6434555053711,-33.6399421691895,-33.5313491821289,-33.3722648620605,-33.19287109375,-33.0021476745605,-32.6669921875,-32.5965843200684,-32.5679664611816,-32.4010734558105,-31.8878898620605,-31.6945323944092,-31.3025379180908,-30.9618186950684,-30.8080081939697,-30.5604476928711,-30.2162113189697,-30.0422859191895,-29.7215824127197,-29.5397453308105,-29.43359375,-29.1429691314697,-28.8717765808105,-28.7716808319092,-28.6662120819092,-28.5428695678711,-28.294921875,-28.0806636810303,-27.9764652252197,-27.5442390441895,-27.3472671508789,-26.8477535247803,-26.4173812866211,-26.2414054870605,-26.1822280883789,-26.1742191314697,-26.197265625,-26.240234375,-26.2438468933105,-26.2083015441895,-26.1260738372803,-26.0804691314697,-26.1055679321289,-26.1980476379395,-26.4367179870605,-26.55810546875,-26.5951175689697,-26.5632820129395,-26.5005855560303,-26.3321304321289,-26.2559566497803,-26.2236328125,-26.0986328125,-25.8983383178711,-25.7132816314697,-25.6471672058105,-25.59912109375,-25.6251945495605,-25.7316398620605,-25.8307609558105,-26.0041999816895,-26.0516605377197,-26.0916996002197,-26.1297855377197,-26.1597671508789,-26.1158199310303,-26.0144519805908,-26.0276355743408,-26.2586917877197,-26.3214855194092,-26.3936519622803,-26.3374996185303,-26.2894535064697,-26.1263675689697,-25.96875,-25.8515625,-25.5448246002197,-25.1657218933105,-24.97705078125,-24.6929702758789,-24.5946292877197,-24.4356441497803,-24.2540035247803,-24.13232421875,-23.86962890625,-23.7328128814697,-23.4181632995605,-23.2825202941895,-23.1804676055908,-23.0236339569092,-22.91455078125,-22.8128890991211,-22.6377925872803,-22.3321285247803,-21.9391593933105,-21.8814449310303,-21.82861328125,-21.9097671508789,-22.1813488006592,-22.3233394622803,-22.4831066131592,-22.4558582305908,-22.4253902435303,-22.3415050506592,-22.2610340118408,-21.9421882629395,-21.8234386444092,-21.7359390258789,-21.6305675506592,-21.49169921875,-21.3581066131592,-21.2422866821289,-21.11669921875,-21.0303707122803,-20.71337890625,-20.65380859375,-20.6470718383789,-20.6576175689697,-20.6409187316895,-20.7130870819092,-20.72119140625,-20.6427726745605,-20.5725593566895,-20.4190425872803,-20.3751945495605,-20.32666015625,-20.2619132995605,-19.9953117370605,-20.0123043060303,-20.0382804870605,-19.9583988189697,-19.9094715118408,-19.8419914245605,-19.6650390625,-19.6043949127197,-19.4779281616211,-19.3199234008789,-19.1064453125,-18.9151363372803,-18.8166007995605,-18.6599597930908,-18.5359382629395,-18.47705078125,-18.3936519622803,-18.1590824127197,-18.1119136810303,-18.0369148254395,-17.9949226379395,-17.9685535430908,-17.7203121185303,-17.5490226745605,-17.4284172058105,-17.3136730194092,-17.1357421875,-17.0593738555908,-16.9704093933105,-16.94287109375,-16.8649406433105,-16.7876949310303,-16.7101573944092,-16.5524406433105,-16.4326171875,-16.4368152618408,-16.71533203125,-16.8630867004395,-17.0368156433105,-17.2927742004395,-17.4099617004395,-17.4857425689697,-17.5208988189697,-17.4722652435303,-17.4154300689697,-17.2199211120605,-17.0827140808105,-17.0303707122803,-17.00830078125,-17.0232429504395,-17.0998039245605,-17.1271476745605,-17.1208000183105,-16.9968738555908,-16.9186515808105,-16.86474609375,-16.8677730560303,-16.8009757995605,-16.7236328125,-16.6680660247803,-16.5407218933105,-16.49072265625,-16.4675769805908,-16.4708995819092,-16.4163093566895,-16.3430671691895,-16.2240238189697,-16.1798839569092,-16.1924800872803,-16.38232421875,-16.3635749816895,-16.2869148254395,-16.2649402618408,-16.27880859375,-16.3335933685303,-16.3882808685303,-16.3820304870605,-16.3952159881592,-16.3861331939697,-16.4026355743408,-16.3733406066895,-16.3387680053711,-16.3318367004395,-16.3352527618408,-16.2989273071289,-16.2030277252197,-16.1334953308105,-16.1038093566895,-16.1163101196289,-16.1136703491211,-16.0201168060303,-15.9375,-15.8702144622803,-15.8054695129395,-15.8226556777954,-15.9724607467651,-15.8505859375,-15.7582025527954,-15.6258792877197,-15.4935550689697,-15.4753904342651,-15.4962892532349,-15.4188480377197,-15.3596677780151,-15.31103515625,-15.2736330032349,-15.2852544784546,-15.4042959213257,-15.4665040969849,-15.4422855377197,-15.37451171875,-15.3067388534546,-15.3169927597046,-15.31005859375,-15.2719736099243,-15.2405271530151,-15.1607418060303,-15.1099615097046,-15.1066398620605,-15.0718746185303,-15.0244131088257,-15.0041017532349,-15.0323238372803,-15.0454092025757,-15.1068363189697,-15.1198244094849,-15.0868167877197,-15.0156240463257,-14.9445304870605,-14.8746099472046,-14.7940425872803,-14.7147464752197,-14.6484365463257,-14.5840826034546,-14.5579099655151,-14.5568351745605,-14.5022449493408,-14.4832029342651,-14.3616199493408,-14.2781248092651,-14.2566413879395,-14.2914056777954,-14.3879880905151,-14.4801750183105,-14.5294923782349,-14.525390625,-14.5048837661743,-14.4443359375,-14.4691410064697,-14.5338859558105,-14.5972652435303,-14.6179695129395,-14.5204105377197,-14.4945306777954,-14.3712882995605,-14.2830076217651,-14.2166986465454,-14.1843748092651,-14.1140623092651,-14.0655269622803,-13.9772462844849,-13.9577150344849,-14.0020503997803,-14.1133785247803,-14.16357421875,-14.13623046875,-14.0621099472046,-14.0189456939697,-14.0789070129395,-14.1609373092651,-14.08935546875,-13.9551763534546,-13.8730478286743,-13.7884759902954,-13.7441415786743,-13.7767581939697,-13.8673830032349,-13.9347658157349,-14.0314455032349,-14.0946292877197,-14.1951169967651,-14.2994146347046,-14.4851560592651,-14.7116212844849,-14.7517576217651,-14.8273439407349,-14.9241209030151,-15.0879888534546,-15.3292970657349,-15.31201171875,-15.2255859375,-15.2433605194092,-15.2985363006592,-15.24560546875,-15.2135734558105,-15.1022462844849,-15.0431642532349,-14.9957027435303,-14.9388666152954,-14.9016590118408,-14.869140625,-14.8289060592651,-14.7879877090454,-14.7745122909546,-14.7809581756592,-14.8843755722046,-14.9875984191895,-15.1150398254395,-15.1602535247803,-15.0801763534546,-14.9060544967651,-14.871485710144,-14.8984375,-14.9332027435303,-15.0473623275757,-15.1033210754395,-15.1397457122803,-15.0868167877197,-15.0118169784546,-14.9258794784546,-14.8509759902954,-14.8450202941895,-14.8289060592651,-14.7997064590454,-14.78955078125,-14.7208986282349,-14.6470708847046,-14.5752925872803,-14.5574216842651,-14.5596685409546,-14.48974609375,-14.3924808502197,-14.2134761810303,-14.0383787155151,-13.97998046875,-13.9208984375,-13.8119144439697,-13.7199220657349,-13.6484375,-13.5729494094849,-13.5016603469849,-13.4761714935303,-13.4483404159546,-13.3826169967651,-13.30224609375,-13.1455078125,-13.0591793060303,-12.9574213027954,-12.8829097747803,-12.6878910064697,-12.6585931777954,-12.6643562316895,-12.6468744277954,-12.4913082122803,-12.4310541152954,-12.4069337844849,-12.427734375,-12.4953117370605,-12.5578126907349,-12.5236330032349,-12.455078125,-12.3671875,-12.3482418060303,-12.3428707122803,-12.2710943222046,-12.2138671875,-12.1896486282349,-12.1779289245605,-12.1190423965454,-12.06787109375,-12.0958976745605,-12.2100582122803,-12.2769527435303,-12.2781248092651,-12.23193359375,-12.25927734375,-12.28076171875,-12.2269525527954,-12.18603515625,-12.2391605377197,-12.2951173782349,-12.1763668060303,-12.1348628997803,-12.1102542877197,-12.1300783157349,-12.1234369277954,-12.03515625,-11.9546880722046,-11.8358402252197,-11.7271480560303,-11.6490230560303,-11.4915037155151,-11.4676761627197,-11.5006837844849,-11.4747066497803,-11.3485355377197,-11.3024415969849,-11.2713861465454,-11.1808595657349,-11.1963863372803,-11.2811517715454,-11.3111333847046,-11.3049812316895,-11.23876953125,-11.2040042877197,-11.2235345840454,-11.3668947219849,-11.5055665969849,-11.4689455032349,-11.39111328125,-11.4073247909546,-11.4528322219849,-11.6217775344849,-11.7056646347046,-11.7282228469849,-11.7603521347046,-11.8162107467651,-11.8113269805908,-11.83203125,-11.9401369094849,-12.0077152252197,-12.0257816314697,-12.052734375,-12.0608406066895,-11.984375,-12.0546875,-12.1025381088257,-12.1937503814697,-12.2216796875,-12.1291990280151,-12.0606451034546,-11.9561519622803,-11.9070310592651,-11.8216791152954,-11.8257808685303,-11.9054689407349,-11.95068359375,-11.9695310592651,-11.9927730560303,-12.0547857284546,-12.1515626907349,-12.2098636627197,-12.24169921875,-12.2275400161743,-12.1785154342651,-12.1521492004395,-12.19140625,-12.3308601379395,-12.4224605560303,-12.4351558685303,-12.4337892532349,-12.3055667877197,-12.1963872909546,-12.1730470657349,-12.1316404342651,-11.9514646530151,-11.9576177597046,-12.1335935592651,-12.2264642715454,-12.2191410064697,-12.2435550689697,-12.3499021530151,-12.7842769622803,-12.8328123092651,-12.91162109375,-13.0038080215454,-13.2251949310303,-13.2361326217651,-13.1763668060303,-13.1379880905151,-13.1649408340454,-13.1810541152954,-13.3042974472046,-13.62158203125,-13.8101568222046,-13.9348630905151,-14.1531248092651,-14.2341794967651,-14.28662109375,-14.5849609375,-14.656641960144,-14.7582035064697,-14.8556652069092,-14.9231452941895,-15.0003910064697,-15.16015625,-15.2702150344849,-15.4034185409546,-15.4952144622803,-15.5701179504395,-15.6552734375,-15.70654296875,-15.6933584213257,-15.6755867004395,-15.6753902435303,-15.6852531433105,-15.751953125,-15.7884759902954,-15.8349618911743,-15.8942375183105,-15.8923835754395,-15.8783197402954,-15.9413080215454,-15.9821290969849,-16.0663089752197,-16.1670894622803,-16.2330074310303,-16.4765625,-16.6169929504395,-16.7183589935303,-16.78955078125,-16.77783203125,-16.8606452941895,-16.8993148803711,-17.0140628814697,-17.10107421875,-17.1677722930908,-17.32861328125,-17.3805675506592,-17.5407238006592,-17.611328125,-17.6536140441895,-17.70263671875,-17.7043952941895,-17.62451171875,-17.5437507629395,-17.4144535064697,-17.1925773620605,-17.0145511627197,-16.6461925506592,-16.4634761810303,-16.2210922241211,-16.0695304870605,-15.9046878814697,-15.6052732467651,-15.1954107284546,-15.0566396713257,-14.8527345657349,-14.4701175689697,-14.337890625,-14.15283203125,-14.0186529159546,-13.9267578125,-13.7975587844849,-13.5538082122803,-13.4250984191895,-13.2590827941895,-12.9434566497803,-12.83349609375,-12.7787113189697,-12.7782230377197,-12.8029298782349,-12.7398443222046,-12.6813478469849,-12.61328125,-12.5787115097046,-12.5666007995605,-12.5293951034546,-12.4914064407349,-12.35107421875,-12.080078125,-11.9755859375,-12.0192384719849,-12.0542964935303,-11.9762697219849,-11.8961915969849,-11.6317377090454,-11.2732419967651,-10.9465818405151,-10.8841800689697,-10.80224609375,-10.7073240280151,-10.7073240280151,-10.7482414245605,-10.8194341659546,-10.8744144439697,-11.0104494094849,-11.1153316497803,-11.2139654159546,-11.3069334030151,-11.4322261810303,-11.63232421875,-11.8213863372803,-11.8807611465454,-11.9190425872803,-11.9241209030151,-11.9544925689697]}],[{"lng":[142.274810791016,142.19140625,142.13720703125,142.12548828125,142.131057739258,142.197952270508,142.274810791016],"lat":[-10.7047853469849,-10.7620115280151,-10.73193359375,-10.66845703125,-10.640625,-10.5919923782349,-10.7047853469849]}],[{"lng":[142.338973999023,142.279403686523,142.216201782227,142.195114135742,142.21875,142.298721313477,142.338973999023],"lat":[-10.1921873092651,-10.2541999816895,-10.2356443405151,-10.1993169784546,-10.1494131088257,-10.1404304504395,-10.1921873092651]}],[{"lng":[142.167572021484,142.141983032227,142.09765625,142.148834228516,142.192001342773,142.167572021484],"lat":[-10.1541013717651,-10.1812496185303,-10.1217775344849,-10.0517578125,-10.0852537155151,-10.1541013717651]}],[{"lng":[16.953125,16.9488277435303,16.943359375,16.9044933319092,16.8626956939697,16.8654289245605,16.97265625,17.06787109375,17.0859394073486,17.1473636627197,17.0890636444092,17.0777339935303,17.0399398803711,17.0300769805908,17.0458984375,17.0456066131592,17.0666027069092,16.9734363555908,16.8626956939697,16.8230457305908,16.7859382629395,16.74755859375,16.6474609375,16.5909175872803,16.5509777069092,16.5210933685303,16.4696273803711,16.4212894439697,16.43212890625,16.6397457122803,16.6765632629395,16.6366214752197,16.623046875,16.5744132995605,16.5147457122803,16.44287109375,16.4343738555908,16.4625988006592,16.4397468566895,16.4168949127197,16.4383792877197,16.4828128814697,16.49267578125,16.4847660064697,16.4769535064697,16.4612312316895,16.4534187316895,16.4239253997803,16.3318367004395,16.2525386810303,16.0930671691895,16.0372066497803,15.9768562316895,15.98046875,15.9722661972046,15.9576168060303,15.7668943405151,15.7602529525757,15.6326179504395,15.5453128814697,15.4392585754395,15.2169923782349,15.0006837844849,14.9494142532349,14.8932619094849,14.8406248092651,14.8105459213257,14.7567377090454,14.6801748275757,14.5969734191895,14.5771484375,14.5498056411743,14.5035152435303,14.4659185409546,14.4199209213257,14.2672853469849,14.0995121002197,14.0196285247803,13.9288082122803,13.8313484191895,13.7439460754395,13.6999998092651,13.4900398254395,13.3515625,13.1687498092651,12.8055667877197,12.6998052597046,12.5986318588257,12.4791984558105,12.3882808685303,12.330078125,12.2679691314697,12.1541013717651,12.1307621002197,12.16552734375,12.2012701034546,12.1971683502197,12.16943359375,11.9695310592651,11.7756834030151,11.6994142532349,11.62548828125,11.5275392532349,11.4332027435303,11.2444334030151,11.1338863372803,11.0634765625,11.0250978469849,10.9932613372803,10.9273443222046,10.8289060592651,10.759765625,10.6892576217651,10.5797853469849,10.4793949127197,10.4528331756592,10.45458984375,10.4149417877197,10.3494138717651,10.1797857284546,10.1334953308105,9.99687480926514,9.87773418426514,9.86464881896973,9.84531211853027,9.74501895904541,9.61992168426514,9.58027362823486,9.595703125,9.61054706573486,9.60117244720459,9.57187461853027,9.55576133728027,9.55107402801514,9.54218769073486,9.53681659698486,9.52753925323486,9.60908222198486,9.62587833404541,9.55439472198486,9.52402305603027,9.54892539978027,9.65058612823486,9.71513652801514,9.74892520904541,9.83915996551514,9.97158145904541,10.0340824127197,10.0598640441895,10.07421875,10.0663089752197,10.0964851379395,10.1587886810303,10.2002935409546,10.1857423782349,10.1830081939697,10.2406244277954,10.3127927780151,10.369140625,10.4039068222046,10.4303712844849,10.439453125,10.4828119277954,10.65869140625,10.7416009902954,10.873046875,10.87060546875,10.8939447402954,10.9521484375,10.9808588027954,11.0419921875,11.1360349655151,11.1912107467651,11.2119140625,11.2979488372803,11.3741207122803,11.3929691314697,11.4699220657349,11.5739250183105,11.716796875,12.1856451034546,12.2038087844849,12.1968755722046,12.2092771530151,12.2683591842651,12.3631839752197,12.4357423782349,12.48291015625,12.5265626907349,12.59423828125,12.6858396530151,12.7713861465454,12.7961912155151,12.7811517715454,12.7828121185303,12.8093748092651,12.87890625,12.9680671691895,13.0143547058105,13.0315437316895,13.0479488372803,13.0541019439697,13.0335931777954,12.9855470657349,12.9281244277954,12.8976564407349,12.9083013534546,12.9541988372803,12.9535160064697,12.8499021530151,12.7600584030151,12.7603511810303,12.8142576217651,12.8974609375,13.0821285247803,13.1404294967651,13.2152347564697,13.3228521347046,13.3746089935303,13.4093751907349,13.4598636627197,13.4716796875,13.4866209030151,13.6751947402954,13.6921873092651,13.7239255905151,13.7853507995605,13.798828125,13.7974615097046,13.8029298782349,13.8147459030151,13.8431634902954,13.92431640625,13.98876953125,14.0491209030151,14.1898431777954,14.3675775527954,14.4310541152954,14.4886722564697,14.5539054870605,14.6913080215454,14.7066402435303,14.7859373092651,14.8218746185303,14.9225578308105,14.9473638534546,14.9721670150757,14.9934568405151,15.0667963027954,15.1397457122803,15.1617183685303,15.1996097564697,15.2527341842651,15.3109378814697,15.4029302597046,15.5994148254395,15.7007808685303,15.7650394439697,15.8251953125,16.0572261810303,16.2193355560303,16.3672847747803,16.4148426055908,16.4779300689697,16.5435543060303,16.6009769439697,16.7126960754395,16.7644538879395,16.8332023620605,16.8836917877197,16.9283199310303,16.953125],"lat":[48.5988273620605,48.5885772705078,48.5509262084961,48.5035171508789,48.44140625,48.3869132995605,48.1980934143066,48.083251953125,48.03955078125,48.0059585571289,47.963623046875,47.90087890625,47.8729476928711,47.8371086120605,47.8045425415039,47.7637672424316,47.7075691223145,47.6953125,47.697265625,47.6939964294434,47.6786613464355,47.686279296875,47.739013671875,47.7505340576172,47.7473640441895,47.7244606018066,47.695068359375,47.6744651794434,47.6562995910645,47.60888671875,47.5360374450684,47.4766120910645,47.4475593566895,47.4246559143066,47.404541015625,47.3995132446289,47.367431640625,47.2731437683105,47.2527351379395,47.2234344482422,47.1459007263184,47.140380859375,47.1226577758789,47.0912590026855,47.057861328125,47.0224609375,47.0067863464355,46.9969711303711,47.002197265625,46.971923828125,46.86328125,46.8448257446289,46.8013687133789,46.7058563232422,46.6972160339355,46.6776351928711,46.7112770080566,46.7107429504395,46.6984367370605,46.6546401977539,46.629638671875,46.6429672241211,46.6259765625,46.6132354736328,46.6059074401855,46.5804710388184,46.5445785522461,46.4991226196289,46.4634284973145,46.4360809326172,46.4129371643066,46.3997077941895,46.4170417785645,46.4161148071289,46.4279327392578,46.4407234191895,46.4619140625,46.482177734375,46.4981918334961,46.51123046875,46.5143051147461,46.520263671875,46.5555648803711,46.5579109191895,46.5726547241211,46.6258811950684,46.6474609375,46.6541023254395,46.6725082397461,46.70263671875,46.7598114013672,46.8358879089355,46.9352531433105,46.9847640991211,47.0281753540039,47.0608863830566,47.0750007629395,47.0821304321289,47.0396957397461,46.986083984375,46.9846649169922,46.99658203125,46.9974098205566,46.9830589294434,46.9756851196289,46.9361839294434,46.859130859375,46.7969741821289,46.7770004272461,46.7694816589355,46.7752418518066,46.7933120727539,46.8463859558105,46.8537101745605,46.8551292419434,46.8649406433105,46.8994140625,46.9644050598145,46.9847640991211,46.8623542785645,46.8515129089355,46.8853530883789,46.9376945495605,46.9759750366211,47.0073738098145,47.037109375,47.0574684143066,47.057373046875,47.0758285522461,47.1071281433105,47.132080078125,47.1579093933105,47.1854972839355,47.2122535705566,47.234130859375,47.254638671875,47.270751953125,47.3917961120605,47.467041015625,47.5111351013184,47.5242156982422,47.5340309143066,47.52587890625,47.55078125,47.5755348205566,47.5522956848145,47.5053215026855,47.4735832214355,47.4490699768066,47.4285163879395,47.3933563232422,47.3795928955078,47.374267578125,47.3634262084961,47.3171882629395,47.27880859375,47.2841339111328,47.3134269714355,47.3660659790039,47.4169921875,47.5410652160645,47.5515632629395,47.5417976379395,47.5472183227539,47.5241203308105,47.5202140808105,47.5007820129395,47.470458984375,47.4267082214355,47.3981437683105,47.3931159973145,47.4088859558105,47.4251976013184,47.4136238098145,47.4249038696289,47.4602508544922,47.4871559143066,47.506103515625,47.5497550964355,47.58349609375,47.6195335388184,47.646728515625,47.7090835571289,47.71826171875,47.7027359008789,47.6881828308105,47.6661148071289,47.6373062133789,47.6361351013184,47.6562995910645,47.6693344116211,47.639404296875,47.6070289611816,47.5904273986816,47.5641593933105,47.5421867370605,47.5064468383789,47.4756813049316,47.4780769348145,47.5080108642578,47.5791473388672,47.6551284790039,47.69873046875,47.7094230651855,47.7128448486328,47.7218742370605,47.7458038330078,47.8077621459961,47.890625,47.9848136901855,48.0759773254395,48.1069831848145,48.1608390808105,48.2037124633789,48.2750968933105,48.2899436950684,48.3019027709961,48.3312492370605,48.3613777160645,48.3941421508789,48.5645523071289,48.5718231201172,48.5818328857422,48.5230484008789,48.5327644348145,48.5423851013184,48.5874519348145,48.6216773986816,48.6864242553711,48.7475090026855,48.7669410705566,48.7598648071289,48.72802734375,48.6924324035645,48.6024894714355,48.5785675048828,48.5762214660645,48.6162567138672,48.6255378723145,48.6133270263672,48.5992164611816,48.6719245910645,48.7473640441895,48.7740211486816,48.7713851928711,48.8277359008789,48.9839363098145,49.0011215209961,48.9978523254395,48.9693336486816,48.9462890625,48.9481430053711,48.9638671875,48.9740257263184,48.9573707580566,48.8863754272461,48.8604469299316,48.8654289245605,48.8644523620605,48.7547836303711,48.7394027709961,48.7389678955078,48.7720680236816,48.8000984191895,48.7962417602539,48.7818832397461,48.7342300415039,48.7220191955566,48.7143058776855,48.7037124633789,48.6208992004395,48.5988273620605]}],[{"lng":[46.1144523620605,45.921875,45.5750007629395,45.4796905517578,45.3892555236816,45.3355484008789,45.2559547424316,45.1906242370605,45.1412124633789,45.1130867004395,45.0716819763184,45.0001945495605,44.8381843566895,44.8171882629395,44.7833976745605,44.7682647705078,44.8671875,45.0316429138184,45.0764656066895,45.1246109008789,45.1486320495605,45.15283203125,45.1725578308105,45.2525405883789,45.2882804870605,45.3499031066895,45.4568367004395,45.6107444763184,45.6874008178711,45.75048828125,45.7844734191895,45.7964820861816,45.7841796875,45.7663078308105,45.7986297607422,45.9249992370605,45.9774436950684,45.9518547058105,46.0458984375,46.0774383544922,46.1144523620605],"lat":[38.8777809143066,38.9079093933105,38.9728050231934,39.0062522888184,39.0958976745605,39.13916015625,39.1946792602539,39.2156219482422,39.2542953491211,39.3115730285645,39.3628883361816,39.4235343933105,39.6291007995605,39.6504402160645,39.6846694946289,39.7035140991211,39.7191429138184,39.76513671875,39.7428207397461,39.6963386535645,39.6565895080566,39.5826683044434,39.5706062316895,39.595458984375,39.5655746459961,39.5298843383789,39.4944839477539,39.5498046875,39.5640602111816,39.5629386901855,39.5456085205078,39.4881324768066,39.417236328125,39.3784637451172,39.3501968383789,39.2819328308105,39.243896484375,39.1781272888184,39.0175323486328,38.9548797607422,38.8777809143066]}],[{"lng":[44.9690437316895,44.9588851928711,44.96142578125,44.9943351745605,45.0210914611816,45.0287132263184,45.0236320495605,45.0020484924316,44.9690437316895],"lat":[41.0272445678711,41.0526351928711,41.0792465209961,41.0855941772461,41.0779800415039,41.0538558959961,41.0272445678711,41.0158195495605,41.0272445678711]}],[{"lng":[48.5728530883789,48.6646461486816,48.8239288330078,49.0508804321289,49.1066398620605,49.1432609558105,49.1747093200684,49.2264633178711,49.4567375183105,49.55615234375,49.7183609008789,49.7759780883789,49.8517570495605,49.9906272888184,50.119140625,50.1825218200684,50.248046875,50.3068351745605,50.3659172058105,50.1431655883789,49.9188461303711,49.7919883728027,49.6690444946289,49.5511703491211,49.4773445129395,49.4151382446289,49.3244132995605,49.3275413513184,49.3673820495605,49.36279296875,49.3211936950684,49.2693367004395,49.1998062133789,49.1653289794922,49.1209945678711,49.1086921691895,49.111328125,49.0134735107422,48.9617195129395,48.9261703491211,48.8544921875,48.8508796691895,48.8687515258789,48.84033203125,48.6355476379395,48.5926742553711,48.4173851013184,48.3812484741211,48.3055686950684,48.2613296508789,48.2251968383789,48.2046890258789,48.0232429504395,47.9964828491211,47.99267578125,48.0193367004395,48.0500984191895,48.1385765075684,48.2419929504395,48.2750968933105,48.2920913696289,48.291015625,48.2741203308105,48.12548828125,48.1091766357422,48.1043930053711,48.1128921508789,48.1360359191895,48.2572250366211,48.3221664428711,48.28173828125,48.1510734558105,47.9958992004395,47.8922843933105,47.7728500366211,47.5818367004395,47.4761734008789,47.3384780883789,47.1883811950684,47.0654296875,46.9888687133789,46.8525390625,46.783203125,46.5547828674316,46.4906234741211,46.4867172241211,46.4898414611816,46.4753913879395,46.4014625549316,46.4002914428711,46.4203109741211,46.4771499633789,46.5499992370605,46.5847663879395,46.5066413879395,46.4373054504395,46.37841796875,46.365234375,46.3651390075684,46.3776359558105,46.4781265258789,46.4880828857422,46.4814453125,46.3216819763184,46.2020492553711,46.0948219299316,46.02587890625,45.93994140625,45.8631820678711,45.7896499633789,45.6618156433105,45.5797843933105,45.5809555053711,45.5959968566895,45.6301765441895,45.8581047058105,45.8859367370605,45.9000968933105,45.9312515258789,45.9675788879395,45.9646492004395,45.7357406616211,45.5695304870605,45.4543914794922,45.3761711120605,45.37890625,45.4013671875,45.5793952941895,45.5914077758789,45.5875015258789,45.5240249633789,45.4442367553711,45.4191398620605,45.3689422607422,45.2734375,45.1060523986816,45.0705108642578,45.0625953674316,45.0707054138184,45.1902351379395,45.1885719299316,45.15234375,45.0847625732422,45.02294921875,45.0013656616211,45.2171859741211,45.2809562683105,45.4222640991211,45.7156257629395,45.6957054138184,45.7254867553711,45.7927742004395,45.9219703674316,46.03125,46.0865249633789,46.1707038879395,46.2799835205078,46.3807601928711,46.4309577941895,46.4579124450684,46.5343742370605,46.6263694763184,46.6623992919922,46.6725578308105,46.6189422607422,46.5087890625,46.3849639892578,46.3054695129395,46.2546882629395,46.2035140991211,46.1905288696289,46.18212890625,46.1842765808105,46.2018547058105,46.2518539428711,46.3025398254395,46.3482437133789,46.4054679870605,46.4298858642578,46.5376968383789,46.5521469116211,46.5712890625,46.6160163879395,46.6903343200684,46.7493133544922,46.8255844116211,46.9308586120605,46.98779296875,47.0101585388184,47.06396484375,47.142578125,47.2052764892578,47.2611312866211,47.3176765441895,47.5206031799316,47.591796875,47.791015625,47.8611335754395,47.9636726379395,48.0560531616211,48.1422843933105,48.2981452941895,48.3914070129395,48.4306640625,48.5186500549316,48.5728530883789],"lat":[41.844482421875,41.78662109375,41.6295890808105,41.3739738464355,41.3017082214355,41.2177734375,41.1161117553711,41.0262222290039,40.7998542785645,40.71630859375,40.6081047058105,40.583984375,40.5771980285645,40.5768089294434,40.5345230102539,40.5047836303711,40.4617691040039,40.4122085571289,40.2794952392578,40.3232421875,40.31640625,40.2878913879395,40.2490234375,40.1941413879395,40.0872535705566,39.83984375,39.6083488464355,39.501220703125,39.3983879089355,39.3495597839355,39.3289070129395,39.28515625,39.0726585388184,39.0302734375,39.00390625,39.029052734375,39.084716796875,39.1339836120605,39.0787582397461,38.9617691040039,38.8388175964355,38.8153343200684,38.4355010986328,38.437255859375,38.3987274169922,38.4110832214355,38.5862312316895,38.6056175231934,38.6134757995605,38.6422882080078,38.689208984375,38.72412109375,38.8190422058105,38.853759765625,38.88427734375,38.9118156433105,38.9350090026855,38.9586448669434,38.9789543151855,38.9936027526855,39.0188484191895,39.0592765808105,39.09912109375,39.171630859375,39.2028350830078,39.2411117553711,39.2811050415039,39.3123512268066,39.35498046875,39.3990707397461,39.4483375549316,39.560546875,39.6839370727539,39.68505859375,39.6485824584961,39.5433578491211,39.4983367919922,39.4238739013672,39.3409690856934,39.2528839111328,39.18017578125,39.1484375,39.08740234375,38.9043960571289,38.9066886901855,38.9974594116211,39.0694351196289,39.1108894348145,39.1676750183105,39.1921882629395,39.2073707580566,39.1981925964355,39.201416015625,39.2236824035645,39.2985343933105,39.3485336303711,39.3822746276855,39.4024887084961,39.4167976379395,39.4338836669922,39.47509765625,39.5128440856934,39.55517578125,39.617431640625,39.594482421875,39.6644515991211,39.7185554504395,39.7765617370605,39.808349609375,39.881103515625,39.9561996459961,39.9775390625,39.989013671875,40.0028343200684,40.0142097473145,40.0112800598145,40.0248527526855,40.0570793151855,40.1046867370605,40.1748046875,40.2337875366211,40.3291015625,40.4168434143066,40.5323753356934,40.6380844116211,40.673583984375,40.7071266174316,40.8044929504395,40.8297386169434,40.846923828125,40.896728515625,40.947998046875,40.9856948852539,41.0048828125,41.0062484741211,41.0693359375,41.0755844116211,41.088134765625,41.100830078125,41.1263694763184,41.1474113464355,41.1751480102539,41.1954612731934,41.2457008361816,41.2909660339355,41.4231910705566,41.4495582580566,41.42529296875,41.337646484375,41.2890129089355,41.2616195678711,41.2244110107422,41.1867218017578,41.1672859191895,41.183837890625,41.1978492736816,41.1544456481934,41.0993194580078,41.0770530700684,41.0702133178711,41.0885734558105,41.15966796875,41.2455062866211,41.2868156433105,41.34375,41.4055671691895,41.4598617553711,41.5077171325684,41.6021499633789,41.6125946044922,41.6248512268066,41.6570816040039,41.7021484375,41.7368659973145,41.7517585754395,41.757080078125,41.7901840209961,41.8550796508789,41.8909683227539,41.8704109191895,41.8123054504395,41.8000984191895,41.8069305419922,41.8313484191895,41.8125991821289,41.743408203125,41.67041015625,41.6213874816895,41.5874977111816,41.5546875,41.5160636901855,41.4556159973145,41.3150863647461,41.2824211120605,41.2290534973145,41.2181167602539,41.1992683410645,41.2127418518066,41.333984375,41.4586906433105,41.4847640991211,41.5450172424316,41.6019020080566,41.663330078125,41.7793464660645,41.844482421875]}],[{"lng":[45.5523452758789,45.5623016357422,45.5341796875,45.5044937133789,45.4788093566895,45.4788093566895,45.5143547058105,45.5523452758789],"lat":[40.6160659790039,40.649169921875,40.6640129089355,40.6648445129395,40.6483421325684,40.6069793701172,40.5995597839355,40.6160659790039]}],[{"lng":[30.5536117553711,30.53369140625,30.4419918060303,30.4242210388184,30.4343738555908,30.4733390808105,30.4504890441895,30.4413089752197,30.4240226745605,30.4334964752197,30.4555683135986,30.5150375366211,30.6042976379395,30.70947265625,30.7802753448486,30.796875,30.7935562133789,30.8111343383789,30.8114280700684,30.7902336120605,30.6818351745605,30.6260738372803,30.6109371185303,30.6246070861816,30.6319332122803,30.5298843383789,30.4249992370605,30.4000015258789,30.3791007995605,30.3484363555908,30.2685527801514,30.1871109008789,30.1471672058105,29.947265625,29.7695293426514,29.7177734375,29.4032230377197,29.3791980743408,29.3313484191895,29.2232418060303,29.2118167877197,29.216796875,29.2171859741211,29.2100582122803,29.2123050689697,29.2260761260986,29.2244148254395,29.1532211303711,29.0647468566895,29.0165996551514,29.0141582489014,29.0143566131592,29.0286140441895,29.0631828308105,29.1020488739014,29.1975593566895,29.2970714569092,29.3498039245605,29.3902359008789,29.4636707305908,29.6513671875,29.6980476379395,29.7833976745605,29.8681640625,29.892578125,29.9124031066895,29.93017578125,29.9734382629395,30.0918941497803,30.1172847747803,30.1422843933105,30.1833000183105,30.2337875366211,30.27099609375,30.4084968566895,30.4822254180908,30.5289058685303,30.5536117553711],"lat":[-2.40009784698486,-2.42626953125,-2.61347651481628,-2.64160132408142,-2.65888667106628,-2.69433569908142,-2.75322246551514,-2.76904320716858,-2.82402372360229,-2.87451148033142,-2.89316415786743,-2.91757774353027,-2.93525409698486,-2.97724604606628,-2.98486304283142,-3.01513671875,-3.06933617591858,-3.11640644073486,-3.20058584213257,-3.27460956573486,-3.30937504768372,-3.34736323356628,-3.36640596389771,-3.388671875,-3.41865253448486,-3.49248027801514,-3.58886742591858,-3.65390610694885,-3.73076200485229,-3.77978539466858,-3.85048842430115,-3.99287128448486,-4.08535194396973,-4.30732440948486,-4.41806697845459,-4.45585966110229,-4.44931650161743,-4.29970693588257,-4.09540987014771,-3.91083955764771,-3.83378911018372,-3.68496084213257,-3.47568345069885,-3.36328125,-3.28125023841858,-3.138671875,-3.05351543426514,-2.95527315139771,-2.85078144073486,-2.79960942268372,-2.75830078125,-2.72021508216858,-2.66455054283142,-2.60253953933716,-2.59570336341858,-2.62031245231628,-2.67304682731628,-2.79150366783142,-2.80859375,-2.80839848518372,-2.79277348518372,-2.79472661018372,-2.76640629768372,-2.71640610694885,-2.66464853286743,-2.54863262176514,-2.33955049514771,-2.33710908889771,-2.41152310371399,-2.41660141944885,-2.41396450996399,-2.37705063819885,-2.34706997871399,-2.34785151481628,-2.31298828125,-2.37607431411743,-2.39560532569885,-2.40009784698486]}],[{"lng":[5.99394512176514,6.00595712661743,6.11943340301514,6.15449237823486,6.23593759536743,6.16845655441284,6.1787109375,6.20302724838257,6.294921875,6.34091854095459,6.34365224838257,6.36445331573486,6.17509794235229,6.12128877639771,6.11650419235229,6.11005830764771,6.08906221389771,6.05478572845459,5.97626972198486,5.86689472198486,5.8173828125,5.78808641433716,5.74404287338257,5.73525333404541,5.74082040786743,5.72578191757202,5.72499990463257,5.78798818588257,5.8037109375,5.88037109375,5.85654306411743,5.83759737014771,5.81543016433716,5.78974580764771,5.71044921875,5.61005830764771,5.54238319396973,5.50732421875,5.43466806411743,5.353515625,5.30195331573486,5.27880859375,5.21503877639771,5.12412118911743,5.06103515625,5.00693368911743,4.93056678771973,4.86757802963257,4.84912109375,4.84150362014771,4.7900390625,4.86054706573486,4.81865215301514,4.77285146713257,4.70664072036743,4.67509794235229,4.65615224838257,4.54501962661743,4.36875009536743,4.17607402801514,4.14931631088257,4.13701200485229,4.13681697845459,4.15029335021973,4.18388652801514,4.19218730926514,4.15771436691284,4.13525390625,4.14414072036743,4.16962862014771,4.17460966110229,4.04414033889771,3.94970679283142,3.85810542106628,3.78857398033142,3.74804711341858,3.71884799003601,3.68935537338257,3.66728520393372,3.62675833702087,3.59541034698486,3.47695302963257,3.31621098518372,3.27333998680115,3.24980473518372,3.23496103286743,3.18203091621399,3.15488266944885,3.10683608055115,3.02285122871399,2.92197251319885,2.86240243911743,2.83974623680115,2.75937509536743,2.66914057731628,2.59677720069885,2.57929682731628,2.60146498680115,2.57480478286743,2.53603482246399,2.52490234375,2.96015620231628,3.22519540786743,3.35009741783142,3.38007783889771,3.40283179283142,3.43251967430115,3.47197222709656,3.51709008216858,3.58027362823486,3.68183612823486,3.75566411018372,3.78193330764771,3.83076143264771,3.90205025672913,4.0400390625,4.17255878448486,4.21142578125,4.22617149353027,4.30449199676514,4.37373018264771,4.40400409698486,4.38476610183716,4.44091796875,4.50341796875,4.53164052963257,4.58876943588257,4.63398408889771,4.75566434860229,4.78418016433716,4.81054639816284,4.81601524353027,4.82070302963257,4.84804677963257,4.94394493103027,4.99257850646973,5.03095674514771,5.05947303771973,5.07343769073486,5.09990262985229,5.21415996551514,5.31083965301514,5.42978525161743,5.47685527801514,5.5087890625,5.54042959213257,5.60878896713257,5.75234413146973,5.79648447036743,5.8271484375,5.81826162338257,5.74980449676514,5.74082040786743,5.75,5.73662137985229,5.64755868911743,5.63945341110229,5.66914081573486,5.69355487823486,5.7470703125,5.79736328125,5.89246129989624,5.99394512176514],"lat":[50.7504386901855,50.7322273254395,50.6792488098145,50.6372566223145,50.5966796875,50.5453605651855,50.5225105285645,50.4991188049316,50.4854965209961,50.4517593383789,50.4002418518066,50.316162109375,50.232666015625,50.1393547058105,50.1209983825684,50.123779296875,50.1545906066895,50.154296875,50.1671867370605,50.0828132629395,50.0126953125,49.9612312316895,49.9196281433105,49.8756370544434,49.857177734375,49.8333511352539,49.8083000183105,49.7588882446289,49.732177734375,49.644775390625,49.6128425598145,49.5783195495605,49.5538063049316,49.5382804870605,49.5392074584961,49.5282211303711,49.5110321044922,49.5108871459961,49.5544891357422,49.6198234558105,49.6509780883789,49.6779289245605,49.6892585754395,49.7214851379395,49.7565422058105,49.7783699035645,49.7892570495605,49.7881355285645,49.8471183776855,49.9145050048828,49.9595680236816,50.1358909606934,50.1531753540039,50.1390647888184,50.0970726013184,50.046875,50.00244140625,49.9602546691895,49.9449691772461,49.9602546691895,49.9715843200684,49.9844703674316,50,50.0238800048828,50.0528335571289,50.0941390991211,50.1298828125,50.143798828125,50.1784172058105,50.2217750549316,50.2464828491211,50.3213386535645,50.3359375,50.3385734558105,50.3469734191895,50.343505859375,50.3216781616211,50.3060531616211,50.3248062133789,50.4573249816895,50.4773445129395,50.4994659423828,50.5073738098145,50.5315437316895,50.5911636352539,50.6629371643066,50.731689453125,50.7489280700684,50.7794456481934,50.7668952941895,50.72705078125,50.7160148620605,50.7117691040039,50.7506332397461,50.8114280700684,50.8759269714355,50.9117698669434,50.9552726745605,50.9885749816895,51.0495109558105,51.0971183776855,51.2654304504395,51.3516120910645,51.377685546875,51.2911148071289,51.2636222839355,51.2457504272461,51.2422370910645,51.2636222839355,51.2861824035645,51.2756843566895,51.2548332214355,51.2332038879395,51.2125968933105,51.2076683044434,51.2470703125,51.3070793151855,51.3487319946289,51.386474609375,51.3615226745605,51.3560028076172,51.3670883178711,51.4275894165039,51.4598121643066,51.4747047424316,51.4485855102539,51.4219245910645,51.4217262268066,51.4911117553711,51.4773941040039,51.4527320861816,51.4328117370605,51.4120597839355,51.4032745361328,51.4077644348145,51.4453620910645,51.4690933227539,51.453125,51.4068336486816,51.3464851379395,51.2789573669434,51.2597160339355,51.2729988098145,51.2850608825684,51.2749977111816,51.2393074035645,51.1984405517578,51.1694831848145,51.153076171875,51.1256370544434,51.08642578125,50.98876953125,50.9599113464355,50.9502449035645,50.93212890625,50.8666496276855,50.8436050415039,50.8059539794922,50.7747535705566,50.7595710754395,50.7545433044434,50.752555847168,50.7504386901855]}],[{"lng":[3.59541034698486,3.55390644073486,3.49052691459656,3.48779296875,3.63886690139771,3.65624976158142,3.6953125,3.71640658378601,3.73417973518372,3.74492192268372,3.75683617591858,3.82968783378601,3.83447241783142,3.78378915786743,3.77177739143372,3.75849604606628,3.68027377128601,3.64658212661743,3.60410165786743,3.57792949676514,3.57656240463257,3.64589810371399,3.60205101966858,3.55722665786743,3.47675776481628,3.40478515625,3.35449194908142,3.3251953125,3.32949209213257,3.22343754768372,3.16464829444885,3.13613247871399,3.14804673194885,3.11044907569885,3.044921875,2.89804697036743,2.77480483055115,2.73291015625,2.73466801643372,2.7236328125,2.70312476158142,2.71152353286743,2.70234417915344,2.68603539466858,2.70771503448486,2.72040987014771,2.71933603286743,2.75097680091858,2.78515648841858,2.78398418426514,2.76582026481628,2.75048851966858,2.75058579444885,2.75673818588257,2.74775362014771,2.72138690948486,2.73173832893372,2.75292992591858,2.77460932731628,2.75371074676514,2.73564434051514,2.70800757408142,2.70644521713257,2.28691411018372,1.81816411018372,1.62265598773956,1.61093723773956,1.77792978286743,1.74316394329071,1.63925802707672,1.59853506088257,1.57753896713257,1.60292959213257,1.59082019329071,1.58203101158142,1.53095698356628,1.62470722198486,1.62470722198486,1.62460923194885,1.62460923194885,1.62460923194885,1.60664069652557,1.60380852222443,1.60019552707672,1.56630849838257,1.42431628704071,1.38574194908142,1.37890601158142,1.34707021713257,1.34511697292328,1.34287095069885,1.33007800579071,1.17617177963257,0.958300530910492,0.792187511920929,0.779980599880219,0.763379216194153,0.787500083446503,0.821874737739563,0.874804556369781,0.900488495826721,0.924609541893005,0.958007752895355,0.985058844089508,1.01386713981628,1.06230449676514,1.08457016944885,1.08154320716858,1.09755861759186,1.13554680347443,1.14550769329071,1.14580094814301,1.17871117591858,1.23466789722443,1.28046905994415,1.31738293170929,1.36484396457672,1.39150369167328,1.39970719814301,1.42675769329071,1.50136709213257,1.56142580509186,1.60000014305115,1.85761737823486,1.98037135601044,2.23085927963257,2.28720688819885,2.36328125,2.38916015625,2.41269540786743,2.36328125,2.36601543426514,2.46933579444885,2.59843754768372,2.64843726158142,2.68134737014771,2.728515625,2.80527353286743,2.85019516944885,2.87812519073486,3.14960908889771,3.26738309860229,3.29912137985229,3.35996079444885,3.44980478286743,3.53173828125,3.59541034698486],"lat":[11.6962890625,11.6318845748901,11.4992189407349,11.3954095840454,11.1768560409546,11.1545906066895,11.1203126907349,11.07958984375,10.971923828125,10.8504390716553,10.7687492370605,10.6537599563599,10.607421875,10.4358882904053,10.4176263809204,10.4126949310303,10.4277830123901,10.4089841842651,10.3506841659546,10.29248046875,10.2683591842651,10.16015625,10.0045413970947,9.90732383728027,9.85190391540527,9.83862400054932,9.81279373168945,9.77846717834473,9.66704082489014,9.56562519073486,9.49467754364014,9.45161151885986,9.32060527801514,9.18828105926514,9.08383846282959,9.06137752532959,9.04853439331055,8.78251934051514,8.614013671875,8.44189453125,8.371826171875,8.27299785614014,8.0498046875,7.87373018264771,7.82661151885986,7.72309541702271,7.61625957489014,7.54189395904541,7.47685623168945,7.44340801239014,7.42250919342041,7.39506816864014,7.14321231842041,7.06791973114014,7.01982450485229,6.98027324676514,6.85283231735229,6.77163076400757,6.71171855926514,6.66176795959473,6.595703125,6.42768573760986,6.36923837661743,6.32807588577271,6.26064443588257,6.216796875,6.25083017349243,6.29462909698486,6.42626905441284,6.58154249191284,6.61020517349243,6.68740224838257,6.73808574676514,6.77226543426514,6.87700223922729,6.99243116378784,6.997314453125,7.36918926239014,7.72587871551514,8.03022480010986,8.27099609375,8.55927753448486,8.77099609375,9.050048828125,9.13725662231445,9.28500938415527,9.36166954040527,9.46298789978027,9.56752967834473,9.75019454956055,9.96294021606445,9.99697303771973,10.098388671875,10.2420415878296,10.3515625,10.3595695495605,10.3866701126099,10.7102537155151,10.7525873184204,10.8857421875,10.9932613372803,10.9928226470947,11.0277833938599,11.0790042877197,11.068115234375,11.0582027435303,11.0763673782349,11.1160154342651,11.1563472747803,11.1743650436401,11.2104005813599,11.2519044876099,11.2627449035645,11.2610349655151,11.2739753723145,11.2952642440796,11.37890625,11.4080085754395,11.4287109375,11.4471197128296,11.45556640625,11.4491205215454,11.4006338119507,11.443359375,11.4184083938599,11.629150390625,11.6912593841553,11.840087890625,11.8970699310303,11.9993162155151,12.1884269714355,12.221923828125,12.2627925872803,12.2943363189697,12.2967767715454,12.3127927780151,12.3536138534546,12.3838386535645,12.3736820220947,12.3677253723145,12.1180658340454,11.9918947219849,11.9271488189697,11.8804683685303,11.8519525527954,11.7874507904053,11.6962890625]}],[{"lng":[0.217480450868607,0.203808531165123,0.202734231948853,0.185058489441872,0.163867071270943,0.250585943460464,0.354589819908142,0.38251981139183,0.354882627725601,0.374023407697678,0.429199248552322,0.522363305091858,0.61816418170929,0.684570550918579,0.747754037380219,0.786035060882568,0.842285215854645,0.897949159145355,0.946581840515137,0.977734088897705,1.01787102222443,1.12597668170929,1.20117163658142,1.17089831829071,1.07685530185699,0.988476514816284,0.976757824420929,0.973046779632568,0.98730480670929,1.00791013240814,1.09677755832672,1.30869114398956,1.50048816204071,1.56494140625,1.67109382152557,1.78984391689301,1.84091806411743,1.95615231990814,2.01738262176514,2.07382822036743,2.10458970069885,2.15976548194885,2.21152377128601,2.22626948356628,2.22138667106628,2.20380878448486,2.109375,2.06855463981628,2.05839848518372,2.07294917106628,2.09140658378601,2.19443345069885,2.34335947036743,2.38916015625,2.36328125,2.28720688819885,2.23085927963257,1.98037135601044,1.85761737823486,1.60000014305115,1.56142580509186,1.50136709213257,1.42675769329071,1.39970719814301,1.39150369167328,1.36484396457672,1.31738293170929,1.28046905994415,1.23466789722443,1.17871117591858,1.14580094814301,1.14550769329071,1.13554680347443,1.09755861759186,1.08154320716858,1.08457016944885,1.06230449676514,1.01386713981628,0.985058844089508,0.958007752895355,0.924609541893005,0.900488495826721,0.642968654632568,0.549121022224426,0.492675513029099,0.490722894668579,0.484179675579071,0.159277111291885,0,-0.0686036720871925,-0.299462705850601,-0.31254905462265,-0.345751971006393,-0.395605593919754,-0.430322259664536,-0.453515589237213,-0.491699188947678,-0.545214593410492,-0.597656309604645,-0.627148687839508,-0.648534953594208,-0.701416075229645,-0.771582186222076,-0.902929902076721,-0.961816251277924,-1.04248070716858,-1.23261725902557,-1.53676736354828,-1.58647477626801,-1.59965801239014,-1.90063464641571,-2.23193359375,-2.50917983055115,-2.75166010856628,-2.75209975242615,-2.82993125915527,-2.83857464790344,-2.90732431411743,-2.91489243507385,-2.87841796875,-2.83720684051514,-2.79116225242615,-2.78662085533142,-2.82343745231628,-2.8203125,-2.77709937095642,-2.76650381088257,-2.78847670555115,-2.78320336341858,-2.75073266029358,-2.74980497360229,-2.78051781654358,-2.76596689224243,-2.70620131492615,-2.69584941864014,-2.71718764305115,-2.76660180091858,-2.81674814224243,-2.87514638900757,-2.90087914466858,-2.94814467430115,-2.98828148841858,-3.04262709617615,-3.09580087661743,-3.16069340705872,-3.22353506088257,-3.28969740867615,-3.38627910614014,-3.58115220069885,-3.79062533378601,-3.87763667106628,-3.96347689628601,-4.18115186691284,-4.26718759536743,-4.33222675323486,-4.40620136260986,-4.48027324676514,-4.526611328125,-4.62583017349243,-4.72177743911743,-4.814453125,-4.88271474838257,-4.96992206573486,-4.99404287338257,-5.04931688308716,-5.09985399246216,-5.17529296875,-5.26230430603027,-5.38227558135986,-5.46127986907959,-5.52353477478027,-5.50703144073486,-5.47900390625,-5.47568368911743,-5.45707988739014,-5.46855401992798,-5.490478515625,-5.42421913146973,-5.347412109375,-5.29985332489014,-5.250244140625,-5.22939443588257,-5.24477529525757,-5.27031278610229,-5.29052686691284,-5.302001953125,-5.28813457489014,-5.23017597198486,-5.15751981735229,-5.10590839385986,-4.968994140625,-4.79794931411743,-4.69931602478027,-4.62724590301514,-4.5869140625,-4.54604482650757,-4.47988319396973,-4.4287109375,-4.42158174514771,-4.42192363739014,-4.45986318588257,-4.48061513900757,-4.22709989547729,-4.22524404525757,-4.26064491271973,-4.31025362014771,-4.32871103286743,-4.25869178771973,-4.19619178771973,-4.15102529525757,-4.05117225646973,-3.94731402397156,-3.85346674919128,-3.57578134536743,-3.52763700485229,-3.46992182731628,-3.396728515625,-3.30175757408142,-3.26674795150757,-3.27016592025757,-3.24863290786743,-3.19843769073486,-3.03867197036743,-2.99721670150757,-2.95082998275757,-2.91708970069885,-2.91850614547729,-2.92587876319885,-2.87392592430115,-2.77885723114014,-2.58671879768372,-2.52690434455872,-2.45722627639771,-2.11323213577271,-2.05712866783142,-1.97304654121399,-1.87978529930115,-1.76777362823486,-1.69506812095642,-1.65732395648956,-1.49365222454071,-1.20498073101044,-1.04956066608429,-1.01918935775757,-0.907958805561066,-0.760449111461639,-0.666455328464508,-0.536523401737213,-0.454492479562759,-0.432275474071503,-0.405419766902924,-0.235888451337814,0,0.0073241195641458,0.217480450868607],"lat":[14.9114742279053,14.8650388717651,14.7828121185303,14.6529293060303,14.4972162246704,14.3964357376099,14.2880373001099,14.2458009719849,14.1390132904053,14.0763664245605,13.9721193313599,13.8397455215454,13.7034177780151,13.6854009628296,13.6745119094849,13.6500492095947,13.6264162063599,13.6109371185303,13.5811519622803,13.5519533157349,13.4678707122803,13.412353515625,13.3575201034546,13.32958984375,13.3407716751099,13.3648433685303,13.3245115280151,13.1703615188599,13.0418949127197,13.0248041152954,13.0011224746704,12.8342771530151,12.6764650344849,12.6353998184204,12.6198234558105,12.61328125,12.6278810501099,12.7074222564697,12.7162103652954,12.7139654159546,12.7012691497803,12.6364259719849,12.5384273529053,12.466064453125,12.42724609375,12.41259765625,12.3938474655151,12.379150390625,12.3579587936401,12.3093748092651,12.2779788970947,12.136474609375,11.9459953308105,11.8970699310303,11.840087890625,11.6912593841553,11.629150390625,11.4184083938599,11.443359375,11.4006338119507,11.4491205215454,11.45556640625,11.4471197128296,11.4287109375,11.4080085754395,11.37890625,11.2952642440796,11.2739753723145,11.2610349655151,11.2627449035645,11.2519044876099,11.2104005813599,11.1743650436401,11.1563472747803,11.1160154342651,11.0763673782349,11.0582027435303,11.068115234375,11.0790042877197,11.0277833938599,10.9928226470947,10.9932613372803,10.9830570220947,10.9554204940796,10.9549808502197,10.9781742095947,10.9919929504395,11.0696287155151,11.1017780303955,11.1156244277954,11.1668949127197,11.118896484375,11.0879392623901,11.085693359375,11.09326171875,11.0562982559204,11.0076169967651,10.9836912155151,10.9536619186401,10.9273929595947,10.9267578125,10.9889650344849,10.9952630996704,10.9847173690796,11.001708984375,11.0100584030151,10.9972171783447,11.0226554870605,11.0088872909546,10.9976568222046,10.9946775436401,10.9914054870605,10.9887208938599,10.9863767623901,10.9969720840454,10.9983882904053,10.9774904251099,10.7279787063599,10.5923337936401,10.5079593658447,10.4546384811401,10.4324216842651,10.4019041061401,10.3629388809204,10.3228511810303,10.2815923690796,10.2381839752197,10.1925783157349,10.0831050872803,9.90966796875,9.79721641540527,9.745849609375,9.65805625915527,9.533935546875,9.48134803771973,9.45712947845459,9.42470741271973,9.42582988739014,9.50092792510986,9.53461933135986,9.61074256896973,9.68735313415527,9.72089862823486,9.75209999084473,9.84916973114014,9.89545917510986,9.88222694396973,9.90029239654541,9.92431735992432,9.91718673706055,9.89492225646973,9.85962009429932,9.78173828125,9.74326229095459,9.64570331573486,9.64799785614014,9.67924785614014,9.72348594665527,9.71357440948486,9.75654315948486,9.84116172790527,9.86894512176514,9.93007850646973,10.0464839935303,10.1283197402954,10.2416009902954,10.2926273345947,10.3196773529053,10.3140134811401,10.3595695495605,10.426025390625,10.4834470748901,10.5650873184204,10.6439456939697,10.7713871002197,10.9310550689697,11.0423831939697,11.0887203216553,11.1302738189697,11.2059574127197,11.3757820129395,11.5224609375,11.5767574310303,11.619873046875,11.6833009719849,11.7604494094849,11.8279294967651,11.8902826309204,11.9423828125,11.967529296875,11.9933109283447,12.0321292877197,12.076171875,12.1202154159546,12.155029296875,12.2264642715454,12.2817869186401,12.3375978469849,12.4930667877197,12.5815916061401,12.63037109375,12.6722173690796,12.793701171875,12.8794918060303,12.975341796875,13.052490234375,13.1190423965454,13.1973142623901,13.2561521530151,13.3062009811401,13.3824224472046,13.4021968841553,13.37353515625,13.1941900253296,13.1827154159546,13.1963863372803,13.2437009811401,13.28076171875,13.4007816314697,13.5774421691895,13.6583499908447,13.6728515625,13.6391115188599,13.6371097564697,13.6484375,13.6794929504395,13.7363767623901,13.7867679595947,13.9507322311401,14.07373046875,14.2275876998901,14.25830078125,14.2741212844849,14.16845703125,14.1946287155151,14.45654296875,14.4814929962158,14.4860353469849,14.5084962844849,14.5268068313599,14.6260747909546,14.7615242004395,14.8195314407349,14.8413572311401,14.9374017715454,15.0477533340454,15.0697755813599,15.0778818130493,15.0596675872803,15.0285167694092,15.0124998092651,15.0594234466553,14.987060546875,14.9848155975342,14.9114742279053]}],[{"lng":[91.94921875,91.8888626098633,91.8594741821289,91.8732452392578,91.8570251464844,91.90771484375,91.9339828491211,91.9486312866211,91.9619140625,91.94921875],"lat":[21.5080547332764,21.5033206939697,21.532958984375,21.5744152069092,21.7087898254395,21.7229480743408,21.72216796875,21.6825695037842,21.6097660064697,21.5080547332764]}],[{"lng":[91.8738327026367,91.8375930786133,91.8197250366211,91.8351593017578,91.8506851196289,91.861328125,91.8825149536133,91.8738327026367],"lat":[21.8321285247803,21.750244140625,21.809814453125,21.8853511810303,21.9270496368408,21.9266586303711,21.8836421966553,21.8321285247803]}],[{"lng":[91.1507797241211,91.0447311401367,91.0794906616211,91.1583023071289,91.17822265625,91.1507797241211],"lat":[22.1751956939697,22.1051769256592,22.5197257995605,22.3654308319092,22.2830066680908,22.1751956939697]}],[{"lng":[91.5567398071289,91.5104522705078,91.4668960571289,91.4113311767578,91.4388732910156,91.4560546875,91.4839859008789,91.5230484008789,91.54833984375,91.5567398071289],"lat":[22.3822250366211,22.352783203125,22.37841796875,22.4756832122803,22.5988292694092,22.6165027618408,22.5765609741211,22.49072265625,22.4253902435303,22.3822250366211]}],[{"lng":[90.7776412963867,90.6036148071289,90.5150375366211,90.6804656982422,90.6749038696289,90.6492156982422,90.56494140625,90.5603485107422,90.5225601196289,90.5029296875,90.5964813232422,90.6722640991211,90.6830062866211,90.69921875,90.7369079589844,90.8681640625,90.8658142089844,90.8298873901367,90.7776412963867],"lat":[22.0893058776855,22.05419921875,22.0651359558105,22.3274898529053,22.4449710845947,22.5406742095947,22.6176261901855,22.6725578308105,22.7475090026855,22.8353500366211,22.863525390625,22.8131828308105,22.7853031158447,22.7135257720947,22.6387195587158,22.48486328125,22.3905754089355,22.1599617004395,22.0893058776855]}],[{"lng":[90.6417922973633,90.6595764160156,90.6039047241211,90.5623016357422,90.5363311767578,90.5798873901367,90.6417922973633],"lat":[22.9629878997803,22.9200191497803,22.945556640625,22.9754390716553,23.014892578125,23.0354480743408,22.9629878997803]}],[{"lng":[92.5749053955078,92.5828094482422,92.5842819213867,92.5934600830078,92.6252975463867,92.6316375732422,92.5998077392578,92.5685577392578,92.5391616821289,92.4718780517578,92.3726501464844,92.33056640625,92.2796859741211,92.2082061767578,92.1795883178711,92.1919937133789,92.2147445678711,92.2644577026367,92.2684555053711,92.2862319946289,92.3119125366211,92.3241195678711,92.3078155517578,92.2481460571289,92.1946334838867,92.0560531616211,92.0109405517578,92.0080108642578,91.9131851196289,91.8499984741211,91.8248062133789,91.8578109741211,91.8633804321289,91.8454132080078,91.7970733642578,91.7340850830078,91.6929702758789,91.5296859741211,91.4821243286133,91.4800796508789,91.4095687866211,91.3137664794922,91.2162170410156,91.1513671875,90.9456100463867,90.8267593383789,90.65625,90.6335906982422,90.6560592651367,90.6156311035156,90.6161117553711,90.60400390625,90.5734405517578,90.5616226196289,90.5680694580078,90.5556640625,90.4080123901367,90.2691421508789,90.3915023803711,90.5227508544922,90.5909194946289,90.5992202758789,90.5951156616211,90.5277404785156,90.4660110473633,90.4775390625,90.55224609375,90.4616241455078,90.4369125366211,90.43505859375,90.4806671142578,90.4984359741211,90.4874038696289,90.53173828125,90.5955047607422,90.6161117553711,90.5894546508789,90.5528335571289,90.494140625,90.3557586669922,90.2881851196289,90.2305679321289,90.1587905883789,90.1307601928711,90.0711898803711,90.0700225830078,90.087890625,90.2095718383789,90.1434555053711,90.0685577392578,89.9542007446289,89.9180679321289,89.89404296875,89.8938446044922,89.9851531982422,89.8818359375,89.8532180786133,89.8658218383789,89.8525390625,89.8119125366211,89.7568359375,89.6677780151367,89.6281280517578,89.5685501098633,89.5665969848633,89.5474624633789,89.4832000732422,89.4693374633789,89.5025405883789,89.5005874633789,89.4519577026367,89.3537063598633,89.2786102294922,89.2342758178711,89.1670913696289,89.0939407348633,89.0816421508789,89.0514678955078,89.0558624267578,89.0499954223633,88.9714889526367,88.9207000732422,88.9269561767578,88.9234313964844,88.8997039794922,88.8669891357422,88.8505859375,88.9281234741211,88.8970718383789,88.8076171875,88.7244186401367,88.7040023803711,88.7408218383789,88.6976547241211,88.6357421875,88.6164016723633,88.5959930419922,88.5673828125,88.62255859375,88.6998062133789,88.7137680053711,88.7265625,88.7335968017578,88.7235336303711,88.6422805786133,88.49853515625,88.39697265625,88.3375015258789,88.287109375,88.2249984741211,88.1455078125,88.0791015625,88.0234375,88.0302734375,88.0451202392578,88.1498031616211,88.1888656616211,88.2794952392578,88.3133773803711,88.3729476928711,88.4562530517578,88.5738220214844,88.6775436401367,88.74755859375,88.8172836303711,88.89013671875,88.9297866821289,88.95166015625,88.9441375732422,88.8547821044922,88.8203125,88.79541015625,88.7691421508789,88.5934524536133,88.50244140625,88.4523468017578,88.3630828857422,88.2529296875,88.1474609375,88.1066436767578,88.0845718383789,88.0973663330078,88.1290054321289,88.1507797241211,88.2351531982422,88.333984375,88.3780212402344,88.4404296875,88.4478454589844,88.4367141723633,88.38623046875,88.3514709472656,88.3459014892578,88.3699264526367,88.4181671142578,88.5182647705078,88.6201171875,88.6806640625,88.6828155517578,88.72216796875,88.7619171142578,88.8280334472656,88.896484375,88.9407196044922,88.9704132080078,88.9815444946289,88.9482421875,88.9241180419922,88.9519500732422,88.9833984375,89.0186538696289,89.0667953491211,89.1019592285156,89.1082992553711,89.1864242553711,89.2892608642578,89.3697280883789,89.4668960571289,89.5498962402344,89.5914077758789,89.57275390625,89.5857467651367,89.6190414428711,89.6708984375,89.7098617553711,89.8229522705078,89.7996139526367,89.8249053955078,89.7962951660156,89.8008804321289,89.8140640258789,89.8332977294922,89.8663101196289,90.0038070678711,90.11962890625,90.2503890991211,90.4393539428711,90.5552749633789,90.6130905151367,90.7301788330078,91.0382766723633,91.2931594848633,91.3966827392578,91.4796905517578,91.7634735107422,92.0497055053711,92.2046813964844,92.3734359741211,92.4683609008789,92.4854431152344,92.4750061035156,92.4431610107422,92.3849639892578,92.2512664794922,92.2283172607422,92.2305679321289,92.2266540527344,92.1980438232422,92.1174774169922,92.1019515991211,92.0850601196289,92.0641632080078,92.0010757446289,91.95166015625,91.9310531616211,91.8990173339844,91.876953125,91.84619140625,91.7724609375,91.7265625,91.6687469482422,91.6111373901367,91.5713882446289,91.5263671875,91.3926773071289,91.3670959472656,91.3501968383789,91.33642578125,91.2320327758789,91.1924819946289,91.1604537963867,91.16552734375,91.2538070678711,91.3152389526367,91.3388671875,91.359375,91.36865234375,91.3667984008789,91.37060546875,91.3994140625,91.4362258911133,91.4713897705078,91.51123046875,91.5535125732422,91.6195297241211,91.6949234008789,91.7509765625,91.7738265991211,91.7579116821289,91.7542037963867,91.7900390625,91.9191436767578,91.9378890991211,91.9294891357422,91.9295959472656,91.978515625,92.0440444946289,92.1270523071289,92.15234375,92.1871109008789,92.24609375,92.2893600463867,92.3341751098633,92.3337860107422,92.3412170410156,92.3616256713867,92.3931655883789,92.4304733276367,92.4644546508789,92.4914093017578,92.5095748901367,92.5318374633789,92.5612258911133,92.5749053955078],"lat":[21.9780769348145,21.9403324127197,21.6090335845947,21.4673347473145,21.3507328033447,21.3062019348145,21.2701644897461,21.2633304595947,21.31982421875,21.3629875183105,21.4090328216553,21.4397945404053,21.4275875091553,21.3578605651855,21.2931156158447,21.2022457122803,21.1126956939697,21.0614738464355,21.0046882629395,20.9315910339355,20.8644523620605,20.7918453216553,20.7904300689697,20.8835945129395,20.9842777252197,21.1748046875,21.5162601470947,21.6847667694092,21.883056640625,22.1573734283447,22.2286624908447,22.3173332214355,22.3504886627197,22.3431167602539,22.2974624633789,22.4066905975342,22.5047855377197,22.7076663970947,22.7974128723145,22.8848152160645,22.7970218658447,22.7351551055908,22.6422367095947,22.6140632629395,22.5970211029053,22.7213878631592,23.0254878997803,23.09423828125,23.2730464935303,23.4423351287842,23.5316410064697,23.5913581848145,23.578125,23.537109375,23.4742679595947,23.4215335845947,23.431884765625,23.4558582305908,23.366943359375,23.3461437225342,23.2664051055908,23.2041511535645,23.1339359283447,23.0849628448486,23.0539073944092,22.9867668151855,22.9048824310303,22.8817882537842,22.8281745910645,22.7519054412842,22.6846675872803,22.6348152160645,22.5887222290039,22.539306640625,22.4358386993408,22.3621597290039,22.2584476470947,22.2181644439697,22.1789073944092,22.0482425689697,21.8994140625,21.8297843933105,21.8168449401855,21.847412109375,21.8872566223145,21.9599113464355,22.0174808502197,22.1565933227539,22.1378917694092,22.0981922149658,22.0228519439697,22.1161632537842,22.2025890350342,22.3083992004395,22.4664058685303,22.3875980377197,22.2889652252197,22.1730461120605,22.0909175872803,21.9834957122803,21.9190425872803,21.877685546875,21.8141613006592,21.7674312591553,21.860595703125,21.9836921691895,22.2755374908447,22.2129402160645,22.0318851470947,21.9143562316895,21.8210926055908,21.7210941314697,21.7069816589355,21.7223625183105,21.7842769622803,21.8727531433105,22.0149402618408,22.0931644439697,22.1862297058105,22.2746086120605,22.5109367370605,22.6320323944092,22.671142578125,22.6875495910645,22.843505859375,22.9388675689697,23.04052734375,23.1866207122803,23.2103996276855,23.2296867370605,23.2549800872803,23.2928218841553,23.4366207122803,23.4930171966553,23.5500011444092,23.57275390625,23.6021976470947,23.6744136810303,23.8263664245605,24.0025405883789,24.0696296691895,24.1862316131592,24.2309093475342,24.27490234375,24.3259773254395,24.3466320037842,24.3892574310303,24.453857421875,24.479736328125,24.4606437683105,24.4857902526855,24.5499019622803,24.6278324127197,24.6644535064697,24.7130374908447,24.9146480560303,24.9206066131592,24.8819332122803,24.8818359375,24.9615230560303,25.1884288787842,25.1878910064697,25.1804695129395,25.1689453125,25.1762199401855,25.1943855285645,25.2229976654053,25.25927734375,25.290771484375,25.3335456848145,25.3655281066895,25.4562492370605,25.490478515625,25.4953136444092,25.5370121002197,25.5744132995605,25.6981945037842,25.789794921875,25.8114242553711,25.8411140441895,25.8882312774658,25.9563484191895,26.0182113647461,26.087158203125,26.1780757904053,26.2575206756592,26.31201171875,26.3694820404053,26.4010257720947,26.4371089935303,26.4715328216553,26.4825687408447,26.5047855377197,26.5641117095947,26.571533203125,26.5177745819092,26.4306640625,26.3529777526855,26.2917003631592,26.2818355560303,26.2793960571289,26.252197265625,26.260498046875,26.245361328125,26.2508792877197,26.2861328125,26.3379878997803,26.3750972747803,26.412109375,26.4195327758789,26.4102554321289,26.3769054412842,26.308349609375,26.2022457122803,26.10595703125,26.03759765625,26.006103515625,25.9835453033447,26.0052719116211,26.0724124908447,26.13232421875,26.18603515625,26.2156734466553,26.2138195037842,26.1712417602539,25.94140625,25.839599609375,25.5601558685303,25.3758296966553,25.3361320495605,25.3053703308105,25.2927722930908,25.2931632995605,25.2583484649658,25.219970703125,25.1849613189697,25.15771484375,25.1666011810303,25.167724609375,25.1594734191895,25.174072265625,25.177978515625,25.151611328125,25.1421375274658,25.16064453125,25.1694831848145,25.1109371185303,25.01513671875,24.9441413879395,24.9033203125,24.8685054779053,24.8494129180908,24.8487796783447,24.8950672149658,24.88134765625,24.7862300872803,24.77099609375,24.6857414245605,24.4939441680908,24.4080562591553,24.3861808776855,24.3743648529053,24.3708992004395,24.3567371368408,24.3255367279053,24.2606945037842,24.1953125,24.17529296875,24.2106437683105,24.205078125,24.1900882720947,24.15283203125,24.1065921783447,24.0907726287842,24.10009765625,24.093505859375,24.0604972839355,24.018798828125,23.9204597473145,23.7628898620605,23.66064453125,23.5810565948486,23.3736324310303,23.1043949127197,23.0770034790039,23.068359375,23.0745601654053,23.1304683685303,23.197998046875,23.2138671875,23.1999015808105,23.1412601470947,23.03369140625,22.9915523529053,22.9796886444092,23.0048332214355,23.0535163879395,23.1061038970947,23.2098140716553,23.2873039245605,23.3610343933105,23.4710445404053,23.5046863555908,23.5982418060303,23.6859855651855,23.6919918060303,23.6777839660645,23.7209968566895,23.7218761444092,23.675537109375,23.68359375,23.4924793243408,23.3238277435303,23.2423820495605,23.06982421875,22.9290027618408,22.8970203399658,22.8218250274658,22.7344245910645,22.6854019165039,22.5256843566895,22.4103031158447,22.0480461120605,21.9780769348145]}],[{"lng":[28.5853500366211,28.5618171691895,28.4654293060303,28.3196296691895,28.1336917877197,28.03515625,27.9792957305908,27.9289073944092,27.896484375,27.8888683319092,27.818359375,27.7537097930908,27.4847640991211,27.6395511627197,27.7082023620605,27.8213882446289,27.9827156066895,28.0144519805908,27.8791999816895,27.8319339752197,27.8016605377197,27.7388668060303,27.6611328125,27.5798816680908,27.5348625183105,27.4748039245605,27.3628902435303,27.294921875,27.2443351745605,27.193359375,27.01171875,26.96875,26.8848628997803,26.8003902435303,26.67919921875,26.6153335571289,26.5796871185303,26.5497074127197,26.529296875,26.5114250183105,26.3603515625,26.3272457122803,26.3179683685303,26.3208980560303,26.2005844116211,26.107421875,26.0855484008789,26.0660152435303,26.0769538879395,26.1112308502197,26.1435546875,26.1551761627197,26.1353511810303,26.06640625,25.92333984375,25.7849617004395,25.7239246368408,25.6214847564697,25.5270500183105,25.3819332122803,25.2511711120605,25.1333980560303,24.9935550689697,24.8468761444092,24.7958011627197,24.7737293243408,24.6510753631592,24.5959968566895,24.5693359375,24.5182609558105,24.4878921508789,24.38671875,24.2894535064697,24.2303714752197,24.0560550689697,24.0329093933105,24.0113277435303,23.9735355377197,23.880859375,23.7623043060303,23.6351566314697,23.5358390808105,23.4333992004395,23.3720703125,23.2398433685303,23.1559562683105,23.0255851745605,22.916015625,22.9296875,22.9514636993408,23.0056629180908,23.0036125183105,22.9919929504395,22.9439449310303,22.9091796875,22.8368167877197,22.7960948944092,22.6823234558105,22.5827140808105,22.4982414245605,22.3440437316895,22.4220695495605,22.4457015991211,22.5235366821289,22.5324211120605,22.5242195129395,22.4720706939697,22.4362297058105,22.4632816314697,22.4656238555908,22.4392585754395,22.466796875,22.5227527618408,22.55810546875,22.7061519622803,22.7999019622803,22.8568344116211,22.9152355194092,22.9422836303711,22.9679698944092,22.9768562316895,22.8595714569092,22.8197269439697,22.767578125,22.6969738006592,22.5545883178711,22.4991207122803,22.47412109375,22.4363269805908,22.3948249816895,22.3869152069092,22.36962890625,22.3654308319092,22.3990230560303,22.4208011627197,22.4690437316895,22.5974597930908,22.6034183502197,22.6265621185303,22.66748046875,22.705078125,22.7751960754395,22.9454116821289,23.0285148620605,23.0244140625,22.9853496551514,22.9113273620605,22.8682613372803,22.8564453125,22.86767578125,22.9190425872803,23.224609375,23.5345706939697,23.9507808685303,24.2267570495605,24.4305648803711,24.8082027435303,25.15966796875,25.4970703125,25.6861343383789,25.81884765625,25.9333992004395,26.2158203125,26.4892578125,26.8477535247803,27.0869140625,27.1207027435303,27.4253902435303,27.56103515625,27.6708984375,27.7107410430908,27.7385749816895,27.88427734375,27.9489250183105,28.0500011444092,28.2219734191895,28.3751945495605,28.4234371185303,28.5853500366211],"lat":[43.7422370910645,43.5013160705566,43.3893051147461,43.4268531799316,43.3956069946289,43.2682609558105,43.2305183410645,43.1861305236816,43.0207061767578,42.7497062683105,42.7166481018066,42.70654296875,42.4680671691895,42.4009780883789,42.3499526977539,42.2080078125,42.0474128723145,41.9690437316895,41.9866218566895,41.9813003540039,41.95654296875,41.9615249633789,41.9613304138184,41.9329109191895,41.9208030700684,41.9468765258789,42.0250473022461,42.0795402526855,42.09326171875,42.0770988464355,42.0586433410645,42.02685546875,41.9918441772461,41.9751472473145,41.9633293151855,41.9648933410645,41.9479484558105,41.896728515625,41.8466796875,41.8263664245605,41.8015632629395,41.7728004455566,41.7446784973145,41.716552734375,41.7437973022461,41.7256851196289,41.7041511535645,41.6732406616211,41.6401863098145,41.6082038879395,41.5215339660645,41.4348640441895,41.3857421875,41.3506813049316,41.3119125366211,41.3304214477539,41.3150405883789,41.3101081848145,41.2998046875,41.2643547058105,41.2435531616211,41.3157730102539,41.364990234375,41.3942375183105,41.3729019165039,41.3561019897461,41.4199714660645,41.4427261352539,41.4673843383789,41.5525398254395,41.5552253723145,41.5235328674316,41.5250473022461,41.5308113098145,41.5272445678711,41.4690895080566,41.4600563049316,41.4522933959961,41.4559555053711,41.4129867553711,41.3867645263672,41.3860359191895,41.3987312316895,41.3896484375,41.3849601745605,41.3220710754395,41.3256378173828,41.3362770080566,41.3561019897461,41.6056175231934,41.7169456481934,41.7398414611816,41.7571792602539,41.7750968933105,41.835205078125,41.9936065673828,42.0256843566895,42.0591316223145,42.1048355102539,42.1650886535645,42.31396484375,42.328857421875,42.359130859375,42.4409675598145,42.481201171875,42.50390625,42.5433120727539,42.6291007995605,42.70947265625,42.7507820129395,42.7916526794434,42.8424797058105,42.8703117370605,42.8784675598145,42.8839378356934,42.9857406616211,43.0182609558105,43.0759773254395,43.0970687866211,43.1420402526855,43.18798828125,43.2523422241211,43.3007316589355,43.3541526794434,43.3910636901855,43.4544944763184,43.5188484191895,43.6022491455078,43.6654777526855,43.7066383361816,43.7401351928711,43.7812957763672,43.8621101379395,43.9695320129395,44.0074195861816,44.0180168151855,44.0752944946289,44.1485824584961,44.194091796875,44.22021484375,44.23779296875,44.1952133178711,44.1272926330566,44.0779762268066,44.0472183227539,44.0169944763184,43.9872055053711,43.9478988647461,43.8990211486816,43.8645515441895,43.83447265625,43.8738784790039,43.8535652160645,43.7866706848145,43.7634773254395,43.7943840026855,43.7384262084961,43.6863288879395,43.6708030700684,43.7117652893066,43.766845703125,43.8705558776855,44.0072746276855,44.083984375,44.1461906433105,44.1673851013184,44.1461410522461,44.0205078125,44.0200653076172,43.997802734375,43.964599609375,43.956298828125,43.9873542785645,43.9186058044434,43.8224105834961,43.7728500366211,43.7447776794434,43.740478515625,43.7422370910645]}],[{"lng":[50.6072273254395,50.5749015808105,50.5440406799316,50.4659194946289,50.4894523620605,50.4524421691895,50.4699211120605,50.5640602111816,50.5859375,50.5578117370605,50.6097640991211,50.6174812316895,50.6072273254395],"lat":[25.8831062316895,25.8067874908447,25.83349609375,25.9655284881592,26.0584468841553,26.1908187866211,26.2289562225342,26.2464370727539,26.24072265625,26.1982917785645,26.1244621276855,26.0023441314697,25.8831062316895]}],[{"lng":[-73.02685546875,-73.0587463378906,-73.16455078125,-73.4007797241211,-73.6610336303711,-73.68115234375,-73.6868209838867,-73.6678237915039,-73.6695785522461,-73.6803741455078,-73.5850601196289,-73.5230941772461,-73.4245147705078,-73.3015594482422,-73.2353515625,-73.1373062133789,-73.0584945678711,-73.0116653442383,-73.02685546875],"lat":[21.1923828125,21.1190414428711,20.9791488647461,20.9438953399658,20.9374027252197,20.9755859375,21.0091304779053,21.0615711212158,21.0822277069092,21.1033210754395,21.1259288787842,21.1908206939697,21.2017574310303,21.1561527252197,21.1544933319092,21.2047843933105,21.3133792877197,21.2995109558105,21.1923828125]}],[{"lng":[-72.9161148071289,-73.04931640625,-73.0626983642578,-72.9947814941406,-72.9161148071289],"lat":[21.5066890716553,21.4576168060303,21.5153312683105,21.5616207122803,21.5066890716553]}],[{"lng":[-73.041015625,-72.9789505004883,-72.9452133178711,-72.8307647705078,-72.7625961303711,-72.7472686767578,-72.7838897705078,-72.88916015625,-72.9810562133789,-73.1102066040039,-73.1619110107422,-73.1273956298828,-73.041015625],"lat":[22.4290523529053,22.4145984649658,22.4156265258789,22.3855953216553,22.3443851470947,22.327392578125,22.2906246185303,22.3602523803711,22.3692378997803,22.3675785064697,22.3807125091553,22.455322265625,22.4290523529053]}],[{"lng":[-74.2067413330078,-74.2769088745117,-74.2613296508789,-74.1267623901367,-74.0523452758789,-74.0100555419922,-73.9949722290039,-73.9359817504883,-73.9063949584961,-73.91455078125,-73.9763641357422,-73.9754943847656,-73.9542007446289,-73.8499526977539,-73.8774948120117,-73.8365249633789,-73.974609375,-74.0929260253906,-74.2067413330078],"lat":[22.2137699127197,22.1836910247803,22.2355461120605,22.3233890533447,22.400634765625,22.427978515625,22.44921875,22.4777336120605,22.5274410247803,22.5680179595947,22.6350593566895,22.6822757720947,22.7155265808105,22.7310562133789,22.6807613372803,22.5384273529053,22.3611812591553,22.3062496185303,22.2137699127197]}],[{"lng":[-74.0575180053711,-74.0347595214844,-74.0985870361328,-74.2422332763672,-74.2746124267578,-74.3031311035156,-74.31396484375,-74.3070297241211,-74.2214889526367,-74.1753921508789,-74.0575180053711],"lat":[22.7234859466553,22.70556640625,22.6654300689697,22.715087890625,22.711669921875,22.7644538879395,22.8035640716553,22.839599609375,22.8115711212158,22.7599105834961,22.7234859466553]}],[{"lng":[-74.8404769897461,-74.8468704223633,-74.9733428955078,-75.1321258544922,-75.2233352661133,-75.2043914794922,-75.14111328125,-75.1305618286133,-75.1575698852539,-75.2412643432617,-75.2882308959961,-75.309814453125,-75.3159713745117,-75.2166061401367,-75.17529296875,-75.1087875366211,-75.064208984375,-74.9371032714844,-74.8456115722656,-74.8404769897461],"lat":[22.8943367004395,22.8687019348145,23.0685539245605,23.1170902252197,23.1653327941895,23.1927261352539,23.2046394348145,23.2679214477539,23.3363761901855,23.474609375,23.5682621002197,23.58984375,23.6683597564697,23.5467758178711,23.4386711120605,23.3328132629395,23.1501960754395,23.088134765625,22.9999027252197,22.8943367004395]}],[{"lng":[-75.66455078125,-75.7063522338867,-75.781005859375,-75.9559555053711,-76.037109375,-76.0104522705078,-75.9486312866211,-75.8075180053711,-75.7542495727539,-75.66455078125],"lat":[23.4501457214355,23.4442386627197,23.4706535339355,23.59228515625,23.602783203125,23.67138671875,23.6474132537842,23.5425300598145,23.489990234375,23.4501457214355]}],[{"lng":[-74.429443359375,-74.5086898803711,-74.5509262084961,-74.5269088745117,-74.4720230102539,-74.4504928588867,-74.429443359375],"lat":[24.0680675506592,23.959716796875,23.9689464569092,24.1050777435303,24.1266593933105,24.12548828125,24.0680675506592]}],[{"lng":[-77.65771484375,-77.6561508178711,-77.7552795410156,-77.6832504272461,-77.6153793334961,-77.5615234375,-77.5320281982422,-77.5368194580078,-77.5318832397461,-77.5213394165039,-77.5187454223633,-77.57373046875,-77.7712860107422,-77.7757797241211,-77.8062973022461,-77.8522415161133,-77.9140625,-77.9999008178711,-77.9500427246094,-77.8835983276367,-77.8495635986328,-77.7574234008789,-77.7014694213867,-77.65771484375],"lat":[24.2494640350342,24.2265625,24.1634769439697,24.1184558868408,24.2163562774658,24.1368160247803,23.9876461029053,23.961669921875,23.9394054412842,23.9108390808105,23.8694324493408,23.7391605377197,23.7525386810303,23.8623542785645,23.8835468292236,24.0403804779053,24.0909175872803,24.2198257446289,24.2530765533447,24.2419929504395,24.2575187683105,24.2699222564697,24.2875480651855,24.2494640350342]}],[{"lng":[-75.3083953857422,-75.3017578125,-75.3687438964844,-75.4676284790039,-75.5032196044922,-75.4810562133789,-75.4124069213867,-75.408935546875,-75.493896484375,-75.5927734375,-75.6390686035156,-75.6610412597656,-75.7439956665039,-75.7266616821289,-75.7096176147461,-75.6535186767578,-75.5264663696289,-75.5181655883789,-75.3083953857422],"lat":[24.2000007629395,24.149169921875,24.1594715118408,24.1395988464355,24.1390628814697,24.1738777160645,24.220947265625,24.2657718658447,24.3304195404053,24.4912605285645,24.5293941497803,24.58984375,24.6546878814697,24.6893539428711,24.697509765625,24.6808586120605,24.4495124816895,24.4273433685303,24.2000007629395]}],[{"lng":[-77.3475646972656,-77.4605026245117,-77.5412139892578,-77.5619125366211,-77.52734375,-77.4512710571289,-77.3291015625,-77.2755889892578,-77.2691345214844,-77.3475646972656],"lat":[25.0138664245605,24.9931144714355,25.0135746002197,25.030029296875,25.0576648712158,25.0807132720947,25.0830078125,25.0557613372803,25.0438480377197,25.0138664245605]}],[{"lng":[-77.7438507080078,-77.7460403442383,-77.735107421875,-77.7452163696289,-77.8534164428711,-77.8812026977539,-77.9832077026367,-78.044921875,-78.0758285522461,-78.1357421875,-78.1457977294922,-78.1916046142578,-78.2576141357422,-78.3665008544922,-78.435302734375,-78.3389129638672,-78.3189926147461,-78.2427291870117,-78.2600631713867,-78.2738342285156,-78.298828125,-78.18408203125,-78.1593246459961,-78.2113723754883,-78.1627960205078,-78.0333023071289,-77.9752883911133,-77.973388671875,-77.9189453125,-77.8401336669922,-77.7438507080078],"lat":[24.7074222564697,24.5863285064697,24.4957504272461,24.4634761810303,24.4029293060303,24.3690929412842,24.3349609375,24.2874507904053,24.3646488189697,24.412353515625,24.4934558868408,24.466064453125,24.4827632904053,24.544189453125,24.6275882720947,24.6420402526855,24.5902347564697,24.65380859375,24.6873035430908,24.6916007995605,24.75390625,24.9170894622803,25.0223636627197,25.1912612915039,25.2023448944092,25.1431140899658,25.0848140716553,25.0047855377197,24.9428234100342,24.7943840026855,24.7074222564697]}],[{"lng":[-76.6488265991211,-76.4842224121094,-76.3437957763672,-76.1919860839844,-76.1266098022461,-76.1149368286133,-76.1405258178711,-76.1746597290039,-76.1695327758789,-76.2051773071289,-76.2412109375,-76.30029296875,-76.3199768066406,-76.2137680053711,-76.204345703125,-76.1525421142578,-76.160400390625,-76.2843246459961,-76.3692855834961,-76.4999008178711,-76.6206970214844,-76.6927719116211,-76.7806625366211,-76.7489242553711,-76.7269515991211,-76.7108383178711,-76.6488265991211],"lat":[25.4874019622803,25.3746089935303,25.33203125,25.1908206939697,25.1405277252197,25.0947265625,24.8856449127197,24.759765625,24.6494140625,24.6820812225342,24.7543449401855,24.7958984375,24.8176765441895,24.8224620819092,24.9362297058105,25.0259761810303,25.1193351745605,25.2221202850342,25.3125972747803,25.341552734375,25.431640625,25.4427242279053,25.4268569946289,25.4805679321289,25.5516109466553,25.5648918151855,25.4874019622803]}],[{"lng":[-78.4928665161133,-78.3717269897461,-78.3068313598633,-78.2679214477539,-78.0886688232422,-77.9439468383789,-77.9224624633789,-77.9261169433594,-78.23388671875,-78.5162124633789,-78.6709442138672,-78.74365234375,-78.7992172241211,-78.9856491088867,-78.935791015625,-78.7980499267578,-78.7125015258789,-78.6332473754883,-78.6211395263672,-78.6329574584961,-78.5971145629883,-78.4928665161133],"lat":[26.7290515899658,26.6979484558105,26.7021980285645,26.72265625,26.7143058776855,26.7442378997803,26.6911144256592,26.6633777618408,26.6373538970947,26.5593757629395,26.5065441131592,26.5006828308105,26.5284671783447,26.6895027160645,26.6734371185303,26.5824222564697,26.5990238189697,26.6591796875,26.7046394348145,26.7261714935303,26.7979507446289,26.7290515899658]}],[{"lng":[-77.2256393432617,-77.2464370727539,-77.333251953125,-77.4031753540039,-77.2939453125,-77.2467727661133,-77.2477493286133,-77.2210922241211,-77.2301254272461,-77.2060546875,-77.2386169433594,-77.3299331665039,-77.5105972290039,-77.7959976196289,-77.9437484741211,-77.862548828125,-77.7875518798828,-77.672119140625,-77.5338897705078,-77.4494171142578,-77.3687515258789,-77.2958984375,-77.2659225463867,-77.269287109375,-77.2571792602539,-77.162109375,-77.0663528442383,-77.0382843017578,-77.1672897338867,-77.1910171508789,-77.2256393432617],"lat":[25.9041996002197,25.8954582214355,25.99560546875,26.0247058868408,26.0955085754395,26.1563472747803,26.2890625,26.3617668151855,26.4247074127197,26.4889640808105,26.5611324310303,26.6183586120605,26.8459949493408,26.9012699127197,26.903564453125,26.9400882720947,26.9356441497803,26.9139156341553,26.9034175872803,26.83642578125,26.7476081848145,26.711669921875,26.6888179779053,26.6630363464355,26.6388187408447,26.5972652435303,26.5301761627197,26.3334484100342,26.2403316497803,25.9554691314697,25.9041996002197]}],[{"lng":[19.0071296691895,19.0420894622803,19.1315422058105,19.23681640625,19.3126945495605,19.3486328125,19.3568363189697,19.33447265625,19.2918949127197,19.22314453125,19.1513671875,19.1324214935303,19.1273441314697,19.1184577941895,19.1283206939697,19.15185546875,19.2315425872803,19.3388671875,19.43017578125,19.5471687316895,19.5837898254395,19.5836906433105,19.5495128631592,19.4494152069092,19.34521484375,19.3052730560303,19.26806640625,19.2450199127197,19.2572269439697,19.3640632629395,19.4881839752197,19.4951171875,19.47998046875,19.4512691497803,19.3996086120605,19.3603515625,19.30078125,19.2544918060303,19.1943359375,19.1643543243408,19.11279296875,19.0800762176514,19.0283203125,18.9742202758789,18.9506816864014,18.9402332305908,18.9738292694092,19.0367183685303,19.0266590118408,18.9787101745605,18.9346675872803,18.8956050872803,18.85107421875,18.7492198944092,18.6742191314697,18.6568355560303,18.6299819946289,18.6218757629395,18.6236324310303,18.4884777069092,18.4601573944092,18.44384765625,18.455078125,18.4660148620605,18.5432624816895,18.5458984375,18.5349617004395,18.4800777435303,18.4539051055908,18.4363288879395,18.3465805053711,18.3040027618408,18.1239261627197,18.0445308685303,17.9188480377197,17.84130859375,17.8019542694092,17.740234375,17.6675777435303,17.5851573944092,17.6434574127197,17.6578140258789,17.6504878997803,17.6248054504395,17.4022464752197,17.2930679321289,17.2752933502197,17.2738285064697,17.248046875,17.0845699310303,16.90185546875,16.7134761810303,16.6876964569092,16.5905284881592,16.4720706939697,16.3775386810303,16.3000984191895,16.2142581939697,16.1698246002197,16.1302738189697,16.1034183502197,16.0490226745605,15.8800792694092,15.7366209030151,15.7379884719849,15.7615242004395,15.7880868911743,15.8228521347046,15.8882818222046,15.9631834030151,16.0283203125,16.1573238372803,16.2310543060303,16.2933597564697,16.3650398254395,16.4535160064697,16.5306644439697,16.7908191680908,16.9186515808105,17.1253890991211,17.2106437683105,17.2586917877197,17.3241214752197,17.4691410064697,17.5026359558105,17.5462894439697,17.6535148620605,17.6901378631592,17.8127937316895,17.8744144439697,17.9486331939697,17.9962902069092,18.13720703125,18.2179679870605,18.2849617004395,18.3576164245605,18.4239273071289,18.48828125,18.66259765625,18.74609375,18.7793941497803,18.7801761627197,18.7883777618408,18.83642578125,18.9413089752197,19.0071296691895],"lat":[44.8691902160645,44.871337890625,44.8996124267578,44.9142570495605,44.8974609375,44.8809051513672,44.8585433959961,44.7806625366211,44.69677734375,44.6095695495605,44.52734375,44.4837875366211,44.41455078125,44.3599624633789,44.3302726745605,44.3025398254395,44.2805671691895,44.225830078125,44.1544914245605,44.073486328125,44.04345703125,44.0110855102539,43.9871063232422,43.97802734375,43.985107421875,43.9933586120605,43.9834480285645,43.9650382995605,43.9433097839355,43.8447723388672,43.7035636901855,43.6428718566895,43.5951652526855,43.5620613098145,43.5675773620605,43.5934562683105,43.591796875,43.5843772888184,43.5332984924316,43.5354499816895,43.5277328491211,43.5177230834961,43.5325164794922,43.5423316955566,43.5266609191895,43.4967269897461,43.4423828125,43.3573226928711,43.2924308776855,43.285400390625,43.3394508361816,43.3481903076172,43.3463363647461,43.2835426330566,43.2308120727539,43.1939468383789,43.1536598205566,43.1246070861816,43.0276832580566,43.0121574401855,42.9978981018066,42.9684562683105,42.8440933227539,42.7772445678711,42.6741714477539,42.6416015625,42.6201171875,42.5791969299316,42.5645027160645,42.5597190856934,42.586669921875,42.5994148254395,42.6905746459961,42.7412605285645,42.8074226379395,42.8450698852539,42.9022445678711,42.9154777526855,42.8971176147461,42.9383811950684,42.9597663879395,42.9800796508789,43.006591796875,43.0427742004395,43.1989250183105,43.3056144714355,43.3438491821289,43.4457511901855,43.47021484375,43.5165519714355,43.6490249633789,43.77880859375,43.8150367736816,43.9131851196289,44.0025901794434,44.0596160888672,44.12451171875,44.2151374816895,44.3520011901855,44.4737319946289,44.52099609375,44.53759765625,44.6819343566895,44.7658195495605,44.8563957214355,45.0075187683105,45.178955078125,45.2027816772461,45.2157211303711,45.2107925415039,45.1896018981934,45.0722160339355,45.026611328125,45.0088348388672,45.058349609375,45.1620140075684,45.2166976928711,45.1968765258789,45.2765617370605,45.1717758178711,45.1560554504395,45.1705589294434,45.1639633178711,45.13330078125,45.120361328125,45.12255859375,45.1634750366211,45.1584014892578,45.078125,45.0772476196289,45.1118659973145,45.1417961120605,45.119384765625,45.1329116821289,45.13427734375,45.1205558776855,45.1020050048828,45.0858383178711,45.0774421691895,45.0265121459961,44.9772453308105,44.9472160339355,44.9148941040039,44.8832511901855,44.8651885986328,44.8691902160645]}],[{"lng":[-62.8319358825684,-62.8469276428223,-62.8589363098145,-62.869384765625,-62.8754425048828,-62.8742218017578,-62.8654289245605,-62.7997093200684,-62.8070335388184,-62.8181648254395,-62.8319358825684],"lat":[17.87646484375,17.8751964569092,17.8836421966553,17.8985843658447,17.91357421875,17.9222660064697,17.9182624816895,17.90869140625,17.8976573944092,17.8854503631592,17.87646484375]}],[{"lng":[28.14794921875,28.2842769622803,28.3163070678711,28.39208984375,28.4070320129395,28.5639629364014,28.6369132995605,28.6908206939697,28.7408218383789,28.7947254180908,28.9474620819092,29.0317401885986,29.08740234375,29.2830085754395,29.3750019073486,29.3960933685303,29.3979511260986,29.3731422424316,29.3534183502197,29.4129867553711,29.4822254180908,29.6300773620605,29.6845684051514,29.7441425323486,29.8239250183105,29.8816413879395,29.9370136260986,30.0426750183105,30.2335929870605,30.4562511444092,30.4753913879395,30.5867176055908,30.6255855560303,30.6623039245605,30.7216777801514,30.8007831573486,30.85595703125,30.8822250366211,30.9068355560303,30.9087886810303,30.9005851745605,30.86181640625,30.8209972381592,30.810546875,30.814453125,30.87744140625,30.9588871002197,30.9777355194092,30.9777355194092,30.8667964935303,30.8298816680908,30.8044910430908,30.791015625,30.798828125,30.9841804504395,31.1212882995605,31.1521472930908,31.1548824310303,31.0819339752197,31.0748062133789,31.1847648620605,31.2455062866211,31.2991199493408,31.4036140441895,31.6284160614014,31.7919940948486,31.8259773254395,31.8377933502197,31.8252944946289,31.7830085754395,31.7541980743408,31.8207988739014,31.9921855926514,32.2003898620605,32.4501953125,32.4509773254395,32.4251976013184,32.4423828125,32.4696311950684,32.6857452392578,32.7064476013184,32.7102546691895,32.7042999267578,32.6444358825684,32.5780296325684,32.4693374633789,32.42626953125,32.2506866455078,32.1419906616211,32.0554695129395,31.8497085571289,31.7774410247803,31.7474594116211,31.6682605743408,31.5629863739014,31.4178695678711,31.3883800506592,31.3645496368408,31.3029308319092,31.2587871551514,31.2951183319092,31.35302734375,31.4427719116211,31.5351581573486,31.5648441314697,31.5634746551514,31.5194339752197,31.5261726379395,31.6159172058105,31.5855464935303,31.5765628814697,31.5773448944092,31.6015605926514,31.6499004364014,31.6906261444092,31.7585926055908,31.7633781433105,31.57373046875,31.3459949493408,31.2179698944092,31.1684589385986,31.0792980194092,30.9806613922119,30.8457050323486,30.7552738189697,30.6672859191895,30.6394538879395,30.5838871002197,30.5330085754395,30.5607414245605,30.6023445129395,30.6117191314697,30.6325206756592,30.5769538879395,30.5445308685303,30.4495124816895,30.3333988189697,30.3089847564697,30.2195301055908,30.1607418060303,30.0637702941895,29.9087905883789,29.7060527801514,29.5531253814697,29.4696292877197,29.3464851379395,29.298828125,29.2304668426514,29.1742172241211,29.1356430053711,29.1020488739014,29.0607414245605,29.0130863189697,28.9777336120605,28.9275379180908,28.8495140075684,28.7932605743408,28.7312488555908,28.6902332305908,28.6477527618408,28.5990238189697,28.5320301055908,28.4246082305908,28.2916011810303,28.1837882995605,28.1444339752197,28.0802745819092,28.0107421875,27.8585948944092,27.8288078308105,27.7888679504395,27.7413082122803,27.6999988555908,27.6767578125,27.6897449493408,27.6013679504395,27.4523429870605,27.34765625,27.2962894439697,27.2701168060303,27.1419925689697,27.0741214752197,26.9528312683105,26.7734375,26.56689453125,26.4534187316895,26.3943347930908,26.26708984375,25.92529296875,25.7857418060303,25.5802745819092,25.2671871185303,25.0666980743408,24.9738292694092,24.8664073944092,24.6851558685303,24.611328125,24.4952144622803,24.3619136810303,24.32373046875,24.2800769805908,24.1268558502197,23.9783191680908,23.951171875,23.8642578125,23.7916984558105,23.7068347930908,23.6466808319092,23.6085929870605,23.6137714385986,23.6052742004395,23.5396480560303,23.5448226928711,23.5813484191895,23.6256847381592,23.607421875,23.6510734558105,23.6524410247803,23.63330078125,23.5979480743408,23.5011711120605,23.4583988189697,23.3271484375,23.1969718933105,23.1750984191895,23.1812496185303,23.2041015625,23.3033218383789,23.4109382629395,23.4795894622803,23.8447265625,23.9012699127197,23.9154300689697,23.9163093566895,23.9093761444092,23.8871097564697,23.8591785430908,23.7892589569092,23.5989246368408,23.4846687316895,23.55908203125,23.7336921691895,23.87255859375,23.9444332122803,24.0084953308105,24.1039066314697,24.1913089752197,24.2366199493408,24.3179683685303,24.478515625,24.6207027435303,24.7681655883789,24.7892589569092,24.82568359375,24.8695316314697,25.0460929870605,25.1114253997803,25.1794929504395,25.28369140625,25.37060546875,25.4611339569092,25.5056648254395,25.52734375,25.4973621368408,25.5103511810303,25.5730457305908,25.6805667877197,25.7492198944092,25.7652339935303,25.7650394439697,25.7481441497803,25.7025394439697,25.6168937683105,25.5575199127197,25.54736328125,25.5675792694092,25.6203136444092,25.6851577758789,25.7248039245605,25.7316398620605,25.7239246368408,25.7224617004395,25.7808589935303,25.8592777252197,25.9644527435303,26.0929679870605,26.1751956939697,26.2158203125,26.2312488555908,26.2507801055908,26.2917976379395,26.6011714935303,26.6484375,26.6749992370605,26.734375,26.7756843566895,26.7601547241211,26.6812496185303,26.4953136444092,26.4576168060303,26.4695301055908,26.5192375183105,26.5666007995605,26.5908203125,26.5935554504395,26.6202144622803,26.7718753814697,26.8224620819092,26.9530277252197,27.0525379180908,27.3091793060303,27.4271488189697,27.4591808319092,27.5767574310303,27.5894527435303,27.6422843933105,27.6942386627197,27.8962898254395,28.0320301055908,28.1178703308105,28.14794921875],"lat":[56.1429176330566,56.055908203125,56.0525398254395,56.0867195129395,56.0890159606934,56.0919914245605,56.061767578125,56.0026359558105,55.9553718566895,55.9425773620605,56.0021018981934,56.0217781066895,56.0211448669434,55.9678726196289,55.938720703125,55.9122047424316,55.8810577392578,55.834716796875,55.7843742370605,55.724853515625,55.6845703125,55.7511749267578,55.7697257995605,55.7704086303711,55.7951202392578,55.8323249816895,55.8452606201172,55.83642578125,55.84521484375,55.7868156433105,55.768798828125,55.7002906799316,55.666259765625,55.6554679870605,55.6221199035645,55.6011238098145,55.6075210571289,55.5963859558105,55.5700187683105,55.5253448486328,55.3974151611328,55.3604011535645,55.3302726745605,55.3069839477539,55.2787132263184,55.2234382629395,55.1375961303711,55.0877914428711,55.0504875183105,54.9407234191895,54.9149894714355,54.8609352111816,54.8060035705566,54.7832527160645,54.6958999633789,54.6484870910645,54.6253433227539,54.6109390258789,54.51708984375,54.4917945861816,54.4529800415039,54.3916511535645,54.2916984558105,54.1959457397461,54.1111793518066,54.055908203125,54.0307121276855,54.0007820129395,53.9350090026855,53.85498046875,53.8104515075684,53.7919425964355,53.796875,53.78125,53.6929206848145,53.6533203125,53.6172866821289,53.5792465209961,53.5469703674316,53.4481468200684,53.41943359375,53.3714370727539,53.3363304138184,53.3289031982422,53.3124046325684,53.2703132629395,53.2105941772461,53.1283721923828,53.0911636352539,53.0894508361816,53.106201171875,53.1468772888184,53.1841812133789,53.200927734375,53.2024917602539,53.196044921875,53.184814453125,53.1389656066895,53.0608863830566,53.0167007446289,52.9897956848145,52.9334487915039,52.86181640625,52.7982444763184,52.7592277526855,52.7314453125,52.69873046875,52.6330070495605,52.5461921691895,52.532470703125,52.426025390625,52.3123054504395,52.2848129272461,52.26220703125,52.2206535339355,52.1258316040039,52.10107421875,52.1081047058105,52.1053733825684,52.0502471923828,52.0629386901855,52.0769538879395,52.0461921691895,51.9530754089355,51.8951644897461,51.8141136169434,51.7700691223145,51.68896484375,51.5963401794434,51.531494140625,51.4712409973145,51.4063453674316,51.3554191589355,51.318359375,51.2650413513184,51.2743148803711,51.3255386352539,51.3996086120605,51.4512214660645,51.4778785705566,51.4820327758789,51.4580078125,51.4395523071289,51.4345703125,51.4083480834961,51.382568359375,51.4130363464355,51.4970207214355,51.5806159973145,51.6172866821289,51.6275405883789,51.6254386901855,51.5989265441895,51.57177734375,51.5621566772461,51.5401840209961,51.5103492736816,51.4333992004395,51.4388694763184,51.45654296875,51.5426254272461,51.5624504089355,51.5636215209961,51.5818328857422,51.6078605651855,51.6016578674316,51.5650405883789,51.5597648620605,51.5923843383789,51.5774421691895,51.5291481018066,51.4825668334961,51.4779777526855,51.4899406433105,51.5724105834961,51.6016120910645,51.6061019897461,51.5941390991211,51.597412109375,51.6135749816895,51.7520484924316,51.7608413696289,51.7540016174316,51.7707023620605,51.8019027709961,51.8134307861328,51.8444366455078,51.8550300598145,51.9135246276855,51.923828125,51.9247550964355,51.937744140625,51.9305152893066,51.9111328125,51.8991203308105,51.8882827758789,51.8895034790039,51.883056640625,51.8675270080566,51.8384284973145,51.7747077941895,51.6646461486816,51.59130859375,51.5850601196289,51.6239738464355,51.6371078491211,51.6413078308105,51.6288566589355,51.6104965209961,51.525390625,51.5179214477539,51.618896484375,51.7102546691895,51.7624015808105,51.8093223571777,51.8797836303711,51.9729995727539,52.0403785705566,52.069580078125,52.1030769348145,52.140380859375,52.1695327758789,52.2084465026855,52.2569351196289,52.28662109375,52.3069801330566,52.337890625,52.4283676147461,52.5162124633789,52.5515594482422,52.6642074584961,52.70361328125,52.770263671875,52.8187522888184,52.9048843383789,53.0275382995605,53.1121063232422,53.2709465026855,53.5992202758789,53.9397926330566,53.9198265075684,53.9122543334961,53.9356918334961,53.93896484375,53.931640625,53.9450187683105,53.950439453125,53.9199714660645,53.8929672241211,53.9318351745605,53.9798355102539,53.9746589660645,53.9982414245605,54.1189918518066,54.1451683044434,54.133056640625,54.1549301147461,54.2142562866211,54.2512702941895,54.251220703125,54.2927742004395,54.2649421691895,54.2151336669922,54.1752433776855,54.1596183776855,54.139892578125,54.1404762268066,54.156982421875,54.1797866821289,54.22119140625,54.2596664428711,54.29296875,54.3101043701172,54.3106918334961,54.3318367004395,54.3770523071289,54.4603996276855,54.5357933044434,54.5642585754395,54.5903816223145,54.6360359191895,54.7178726196289,54.833251953125,54.9192886352539,54.9471664428711,54.9623031616211,55.0032691955566,55.0503883361816,55.0901374816895,55.12451171875,55.1395988464355,55.1301765441895,55.2041969299316,55.2249031066895,55.2467765808105,55.2730941772461,55.2933578491211,55.3064460754395,55.3180160522461,55.3424835205078,55.3719253540039,55.4481468200684,55.5464820861816,55.6226577758789,55.6675300598145,55.6796379089355,55.6939926147461,55.709228515625,55.8129386901855,55.83056640625,55.8039054870605,55.8059577941895,55.8035163879395,55.7987785339355,55.8091773986816,55.9117202758789,55.9415512084961,56.076171875,56.13330078125,56.1458015441895,56.1429176330566]}],[{"lng":[-87.8529357910156,-87.9299774169922,-87.9348602294922,-87.90283203125,-87.8594207763672,-87.83251953125,-87.826416015625,-87.7886276245117,-87.7981491088867,-87.8529357910156],"lat":[17.4228515625,17.2830085754395,17.3229503631592,17.4264640808105,17.4627933502197,17.5010738372803,17.5462894439697,17.5242195129395,17.4795894622803,17.4228515625]}],[{"lng":[-87.9505844116211,-87.9980926513672,-87.9590301513672,-87.9533233642578,-87.8983383178711,-87.8589324951172,-87.8485336303711,-87.9505844116211],"lat":[17.9249515533447,17.9063472747803,17.9640140533447,18.0010738372803,18.1549320220947,18.154052734375,18.140380859375,17.9249515533447]}],[{"lng":[-88.89404296875,-88.9371566772461,-89.1135711669922,-89.2328186035156,-89.2375030517578,-89.2276382446289,-89.2124557495117,-89.2012634277344,-89.1903762817383,-89.1821746826172,-89.1710891723633,-89.1614761352539,-89.162353515625,-89.133544921875,-89.0504455566406,-88.942626953125,-88.8978042602539,-88.8573760986328,-88.8063430786133,-88.7436065673828,-88.586181640625,-88.5230026245117,-88.4612731933594,-88.3724060058594,-88.295654296875,-88.3492660522461,-88.295654296875,-88.2472686767578,-88.1302719116211,-88.0852508544922,-88.0972137451172,-88.2074737548828,-88.221435546875,-88.271728515625,-88.2034683227539,-88.2671890258789,-88.288818359375,-88.2939910888672,-88.2618179321289,-88.3134307861328,-88.404541015625,-88.4611358642578,-88.5623016357422,-88.6951599121094,-88.8790969848633,-88.9117202758789,-88.89404296875],"lat":[15.890625,15.8898439407349,15.9006834030151,15.8886709213257,15.8944339752197,16.142822265625,16.5271492004395,16.8089847564697,17.0846672058105,17.2912120819092,17.572265625,17.8148441314697,17.9019527435303,17.9708023071289,17.9997062683105,17.9396495819092,17.91455078125,17.9288082122803,17.9655265808105,18.0716304779053,18.29052734375,18.4458999633789,18.4767570495605,18.4823246002197,18.472412109375,18.3588390350342,18.3440914154053,18.3546867370605,18.3507328033447,18.2261219024658,18.1216316223145,17.8460941314697,17.7513656616211,17.60986328125,17.5166015625,17.392578125,17.3126964569092,17.192138671875,16.9630374908447,16.6327648162842,16.4886226654053,16.4337882995605,16.2904300689697,16.2476558685303,16.0166492462158,15.9560070037842,15.890625]}],[{"lng":[-64.7302780151367,-64.8201141357422,-64.8450698852539,-64.8628463745117,-64.7711868286133,-64.6946334838867,-64.6683120727539,-64.7302780151367],"lat":[32.29345703125,32.2596168518066,32.2623023986816,32.2738761901855,32.3077125549316,32.3869132995605,32.3819351196289,32.29345703125]}],[{"lng":[-58.1597633361816,-58.1399421691895,-58.1600570678711,-58.1801719665527,-58.4742202758789,-58.7411155700684,-59.0905265808105,-59.5408706665039,-60.0073699951172,-60.4516143798828,-60.8887672424316,-61.0959930419922,-61.5118179321289,-61.7568359375,-61.8208961486816,-61.9169425964355,-62.0118141174316,-62.1216278076172,-62.2763175964355,-62.2765121459961,-62.2766609191895,-62.3854522705078,-62.4778289794922,-62.5669441223145,-62.6285171508789,-62.6509742736816,-62.665283203125,-62.7445831298828,-62.8150863647461,-62.8342781066895,-62.8433609008789,-63.2671890258789,-63.6753387451172,-63.7169418334961,-63.7755851745605,-63.8186492919922,-63.8610305786133,-63.9216766357422,-63.9761199951172,-64.1318359375,-64.2090835571289,-64.2664031982422,-64.3079147338867,-64.3252944946289,-64.3739700317383,-64.4455032348633,-64.4777374267578,-64.5236358642578,-64.6055145263672,-64.7001037597656,-64.7586441040039,-64.8430633544922,-64.9926223754883,-65.0578079223633,-65.48486328125,-65.518798828125,-65.6861801147461,-65.7710494995117,-65.8601531982422,-66.05859375,-66.0985794067383,-66.1746597290039,-66.2201690673828,-66.2476119995117,-66.2821273803711,-66.3224639892578,-66.3651809692383,-66.5069808959961,-66.6390151977539,-66.7117233276367,-66.7506332397461,-66.7674865722656,-66.80029296875,-66.9911117553711,-67.0335464477539,-67.055419921875,-67.1619110107422,-67.1948776245117,-67.3622589111328,-67.5799331665039,-67.7073211669922,-67.79443359375,-67.8205032348633,-67.8794479370117,-67.88916015625,-67.8899917602539,-67.8737258911133,-67.8817367553711,-67.9503860473633,-67.9449157714844,-67.9539108276367,-67.9883804321289,-68.0767517089844,-68.101806640625,-68.1121520996094,-68.1864242553711,-68.1985397338867,-68.197021484375,-68.3138656616211,-68.4354934692383,-68.5338363647461,-68.5582504272461,-68.5689468383789,-68.571044921875,-68.5631790161133,-68.4873962402344,-68.4843292236328,-68.4998474121094,-68.69580078125,-68.7451629638672,-68.7605438232422,-68.7592239379883,-68.7123031616211,-68.6885757446289,-68.7345733642578,-68.7300262451172,-68.7593231201172,-68.7558135986328,-68.7274856567383,-68.6001968383789,-68.5606918334961,-68.5593795776367,-68.5782699584961,-68.6961898803711,-68.6982879638672,-68.5752868652344,-68.4870071411133,-68.462890625,-68.4701690673828,-68.4919891357422,-68.5478515625,-68.6205520629883,-68.6806640625,-68.7590866088867,-68.8579559326172,-68.9310073852539,-68.9683151245117,-68.9690933227539,-68.9788589477539,-69.0268096923828,-69.0393981933594,-69.0601577758789,-69.0809555053711,-69.09228515625,-69.1263732910156,-69.1454620361328,-69.1180648803711,-69.0904312133789,-69.0939483642578,-69.2823257446289,-69.3133850097656,-69.3580093383789,-69.4950180053711,-69.5109405517578,-69.5110778808594,-69.510986328125,-69.5219192504883,-69.5638198852539,-69.6258773803711,-69.6457061767578,-69.6248550415039,-69.5033187866211,-69.4383316040039,-69.4210968017578,-69.3815383911133,-69.2672348022461,-69.1997985839844,-69.1325149536133,-69.0545349121094,-69.0206985473633,-69.0383758544922,-69.0329132080078,-69.0062484741211,-68.9280319213867,-68.8578109741211,-68.8427734375,-68.8488235473633,-68.9134750366211,-69.0462417602539,-69.1341781616211,-69.18798828125,-69.2175827026367,-69.3918914794922,-69.4208984375,-69.4185028076172,-69.3019027709961,-69.2543029785156,-69.1724624633789,-69.1871109008789,-69.3307113647461,-69.3747100830078,-69.3737335205078,-69.3594741821289,-69.2760238647461,-69.2523498535156,-69.2349090576172,-69.1992721557617,-69.1626968383789,-69.1197280883789,-69.0527801513672,-69.0131301879883,-69.0044937133789,-68.9717788696289,-68.8803176879883,-68.8709030151367,-68.8917007446289,-68.9374542236328,-68.9742660522461,-69.0230484008789,-69.0741195678711,-69.0528335571289,-69.0175323486328,-68.9834518432617,-68.9722671508789,-68.9805221557617,-68.9786148071289,-68.9337387084961,-68.86767578125,-68.8118133544922,-68.7590866088867,-68.7628860473633,-68.7281265258789,-68.6852569580078,-68.8186950683594,-68.93603515625,-69.0461883544922,-69.1737289428711,-69.2577133178711,-69.3620147705078,-69.45361328125,-69.57861328125,-69.4625473022461,-69.228515625,-69.0016555786133,-68.8483428955078,-68.7840805053711,-68.7699203491211,-68.7274856567383,-68.6783752441406,-68.6226577758789,-68.4983444213867,-68.3980026245117,-68.3111343383789,-68.2666015625,-68.1586456298828,-68.0716781616211,-67.99169921875,-67.8350067138672,-67.7856903076172,-67.7217788696289,-67.6666488647461,-67.5824203491211,-67.4169464111328,-67.3327178955078,-67.2804718017578,-67.1904754638672,-67.1115264892578,-66.72998046875,-66.5753402709961,-66.4789047241211,-66.3992233276367,-66.2635726928711,-65.9247055053711,-65.706787109375,-65.6371078491211,-65.5586929321289,-65.4919891357422,-65.436767578125,-65.3961410522461,-65.337890625,-65.309326171875,-65.328125,-65.3245544433594,-65.298583984375,-65.3130798339844,-65.3954620361328,-65.4369125366211,-65.4471206665039,-65.4399871826172,-65.4022903442383,-65.3340301513672,-65.3237762451172,-65.37158203125,-65.3936004638672,-65.389892578125,-65.3728561401367,-65.3423843383789,-65.3254852294922,-65.322021484375,-65.2822799682617,-65.2062072753906,-65.1753921508789,-65.1897430419922,-65.1857376098633,-65.1633758544922,-65.1426773071289,-65.1151351928711,-65.0902786254883,-65.037109375,-65.0302734375,-65.001220703125,-64.9925308227539,-64.9143600463867,-64.8298797607422,-64.783447265625,-64.6900405883789,-64.6116714477539,-64.513427734375,-64.4807662963867,-64.4205093383789,-64.2550354003906,-64.0616226196289,-63.9385757446289,-63.7880859375,-63.6885757446289,-63.5856475830078,-63.5418930053711,-63.4652366638184,-63.3466796875,-63.2497596740723,-63.1806640625,-63.1167945861816,-63.0674819946289,-63.0413551330566,-63.0151901245117,-62.9579124450684,-62.8351593017578,-62.7654762268066,-62.6870613098145,-62.5255393981934,-62.3528327941895,-62.263916015625,-62.1760711669922,-62.1180152893066,-62.0947723388672,-61.9447288513184,-61.8741226196289,-61.7899398803711,-61.57568359375,-61.5115699768066,-61.4160652160645,-61.1291465759277,-61.0769996643066,-60.9145011901855,-60.7223625183105,-60.5953140258789,-60.506591796875,-60.4601593017578,-60.4223594665527,-60.4049758911133,-60.4280776977539,-60.4629859924316,-60.4746589660645,-60.4601593017578,-60.396240234375,-60.3727035522461,-60.3380355834961,-60.2988777160645,-60.2733383178711,-60.4020004272461,-60.5832023620605,-60.5304679870605,-60.3804702758789,-60.2423362731934,-60.2204132080078,-60.2066421508789,-60.1872100830078,-60.1755867004395,-59.8311538696289,-59.4342765808105,-58.9572792053223,-58.5379371643066,-58.49658203125,-58.4236831665039,-58.3753929138184,-58.3456077575684,-58.3405723571777,-58.3507843017578,-58.3503875732422,-58.4706077575684,-58.4781265258789,-58.4598159790039,-58.4173851013184,-58.3959922790527,-58.3477516174316,-58.20556640625,-57.9909133911133,-57.9050331115723,-57.8324699401855,-57.7888641357422,-57.7801780700684,-57.6616744995117,-57.5864715576172,-57.5520477294922,-57.4956512451172,-57.5061492919922,-57.5531272888184,-57.5740203857422,-57.63916015625,-57.7250022888184,-57.7831077575684,-57.7308616638184,-57.7286148071289,-57.7168006896973,-57.7814483642578,-57.8003921508789,-57.8745079040527,-57.9716796875,-58.0720252990723,-58.1314926147461,-58.0299301147461,-57.8607444763184,-57.8875961303711,-57.9601593017578,-58.0211448669434,-58.0676231384277,-58.09375,-58.1597633361816],"lat":[-20.1646480560303,-19.9988288879395,-19.8548831939697,-19.81787109375,-19.6460933685303,-19.490234375,-19.2862300872803,-19.2917957305908,-19.2975597381592,-19.3887691497803,-19.478515625,-19.52099609375,-19.6064453125,-19.6453132629395,-19.8094730377197,-20.0553722381592,-20.1990222930908,-20.3499031066895,-20.5625,-20.82080078125,-21.0660152435303,-21.4117183685303,-21.7052745819092,-21.9886722564697,-22.1839847564697,-22.2336921691895,-22.2179679870605,-22.1598644256592,-22.0496101379395,-21.9991207122803,-21.9972667694092,-22.0005855560303,-22.0042953491211,-22.0275402069092,-22.0272464752197,-22.0054683685303,-22.0072269439697,-22.0286140441895,-22.0725593566895,-22.3658199310303,-22.4913101196289,-22.6033210754395,-22.7953128814697,-22.82763671875,-22.7610359191895,-22.5853519439697,-22.4853515625,-22.37158203125,-22.2288074493408,-22.185546875,-22.1712894439697,-22.1439456939697,-22.1096668243408,-22.1027355194092,-22.09814453125,-22.0945320129395,-22.1102542877197,-22.099609375,-22.0197277069092,-21.8794918060303,-21.8350582122803,-21.8056640625,-21.8025398254395,-21.8304691314697,-21.9474601745605,-22.0531253814697,-22.11376953125,-22.1583995819092,-22.2053718566895,-22.21630859375,-22.2693347930908,-22.3430671691895,-22.40966796875,-22.5098628997803,-22.55224609375,-22.65087890625,-22.7738285064697,-22.8216800689697,-22.8551750183105,-22.8916988372803,-22.88916015625,-22.8794937133789,-22.8577156066895,-22.8229484558105,-22.7841796875,-22.7292003631592,-22.6305656433105,-22.4933605194092,-22.3336906433105,-22.2822265625,-22.2040042877197,-22.05712890625,-21.9828109741211,-21.8606433868408,-21.7530269622803,-21.6185550689697,-21.447265625,-21.30029296875,-21.1296863555908,-20.9482421875,-20.9236316680908,-20.9019527435303,-20.8498039245605,-20.7691402435303,-20.7201175689697,-20.6407222747803,-20.62841796875,-20.6120109558105,-20.4929676055908,-20.4585933685303,-20.4162101745605,-20.3780269622803,-20.3389644622803,-20.3100566864014,-20.2251949310303,-20.1484355926514,-20.1155261993408,-20.0908203125,-20.0696277618408,-20.044921875,-19.9670906066895,-19.90234375,-19.8565425872803,-19.74072265625,-19.7210941314697,-19.5601558685303,-19.4543952941895,-19.4328117370605,-19.4099617004395,-19.3819332122803,-19.3411140441895,-19.2966785430908,-19.2423820495605,-19.1622066497803,-19.0933609008789,-19.0251941680908,-18.9679679870605,-18.9096698760986,-18.81298828125,-18.65625,-18.5500965118408,-18.4330062866211,-18.3566398620605,-18.2824211120605,-18.2024402618408,-18.14404296875,-18.1027355194092,-18.0707035064697,-18.0504875183105,-17.96484375,-17.9431648254395,-17.7716789245605,-17.6195316314697,-17.5060558319092,-17.5048828125,-17.4603500366211,-17.3889656066895,-17.3329105377197,-17.29443359375,-17.24853515625,-17.2001953125,-17.1047840118408,-17.08837890625,-17.0400390625,-17.0013675689697,-16.8609371185303,-16.7684574127197,-16.7130851745605,-16.67431640625,-16.6421871185303,-16.5426750183105,-16.4759769439697,-16.4336910247803,-16.3890628814697,-16.3547859191895,-16.337890625,-16.3127937316895,-16.2619132995605,-16.2176761627197,-16.2219734191895,-16.1828136444092,-16.1491222381592,-15.7369146347046,-15.6406240463257,-15.6034183502197,-15.3994140625,-15.3329105377197,-15.2366199493408,-15.1987295150757,-15.0389652252197,-14.9629878997803,-14.8875007629395,-14.7953128814697,-14.7458982467651,-14.6710939407349,-14.5970706939697,-14.5725584030151,-14.5309572219849,-14.4703121185303,-14.4175786972046,-14.3772459030151,-14.2650384902954,-14.234375,-14.1988277435303,-14.1697263717651,-14.0943365097046,-14.0146484375,-13.9759769439697,-13.7802724838257,-13.6828126907349,-13.6439456939697,-13.5944337844849,-13.4963874816895,-13.38232421875,-12.9625978469849,-12.8800783157349,-12.8220701217651,-12.7551755905151,-12.7295904159546,-12.6872072219849,-12.6077146530151,-12.5607423782349,-12.5019521713257,-12.2704105377197,-12.0667972564697,-11.8756828308105,-11.654296875,-11.5085935592651,-11.3275394439697,-11.1687498092651,-10.9517574310303,-10.9481439590454,-10.9556646347046,-10.9943361282349,-11.0111322402954,-11.0446290969849,-11.09765625,-11.1224613189697,-11.11279296875,-11.1091794967651,-11.0547847747803,-11.0187501907349,-10.9751949310303,-10.9331064224243,-10.7850580215454,-10.703125,-10.6744146347046,-10.6627931594849,-10.68603515625,-10.6831045150757,-10.5989255905151,-10.5059566497803,-10.3898439407349,-10.35791015625,-10.3172845840454,-10.3114252090454,-10.2689456939697,-9.97548866271973,-9.89990234375,-9.88613319396973,-9.8681640625,-9.82607364654541,-9.78544902801514,-9.76845741271973,-9.80908203125,-9.79746055603027,-9.73173809051514,-9.71044921875,-9.71240234375,-9.79023456573486,-9.87265682220459,-9.93554782867432,-10.0269536972046,-10.1467771530151,-10.2530279159546,-10.3922843933105,-10.4490232467651,-10.5074224472046,-10.5862302780151,-10.7147464752197,-10.8927736282349,-11.0248050689697,-11.1103515625,-11.1842765808105,-11.2462892532349,-11.2899417877197,-11.3150386810303,-11.36474609375,-11.4391593933105,-11.5110349655151,-11.58056640625,-11.6468753814697,-11.7100591659546,-11.74951171875,-11.76513671875,-11.7523431777954,-11.7350578308105,-11.7412109375,-11.8293943405151,-11.8473634719849,-11.9200201034546,-11.9751958847046,-12.0059566497803,-12.0302734375,-12.0593748092651,-12.146484375,-12.2039060592651,-12.2509765625,-12.326171875,-12.4397459030151,-12.4833011627197,-12.5050783157349,-12.5296878814697,-12.4694328308105,-12.47802734375,-12.5189456939697,-12.5466794967651,-12.6051759719849,-12.6800775527954,-12.7079105377197,-12.6662111282349,-12.6516599655151,-12.6691408157349,-12.7503900527954,-12.8055667877197,-12.8470697402954,-12.9537105560303,-12.9972658157349,-12.9943361282349,-13.0642576217651,-13.1324214935303,-13.1436519622803,-13.1336917877197,-13.1597652435303,-13.2419919967651,-13.40625,-13.4704103469849,-13.5255861282349,-13.5248041152954,-13.5412111282349,-13.5265617370605,-13.49853515625,-13.48974609375,-13.5614261627197,-13.6643552780151,-13.7453126907349,-13.7898435592651,-13.8624029159546,-13.9379892349243,-14.0192384719849,-14.1000003814697,-14.1324224472046,-14.1847648620605,-14.2630863189697,-14.3328123092651,-14.4187498092651,-14.5705080032349,-14.6185550689697,-15.0887689590454,-15.0927734375,-15.0983400344849,-15.1431646347046,-15.3182611465454,-15.4795904159546,-15.7386713027954,-15.9019527435303,-16.1321277618408,-16.2693367004395,-16.28173828125,-16.2959957122803,-16.3131847381592,-16.3282222747803,-16.32666015625,-16.3079090118408,-16.2835922241211,-16.2843742370605,-16.3399410247803,-16.4102535247803,-16.4908199310303,-16.6501941680908,-16.70068359375,-16.9107418060303,-17.08056640625,-17.2342758178711,-17.2821292877197,-17.3630847930908,-17.5128898620605,-17.5323238372803,-17.5121097564697,-17.5730476379395,-17.6717777252197,-17.9473628997803,-18.1222667694092,-18.18310546875,-18.2146492004395,-18.2373046875,-18.2464847564697,-18.279296875,-18.4750003814697,-18.7332019805908,-18.9142570495605,-18.9171867370605,-18.9673824310303,-19.0440425872803,-19.0535163879395,-19.0809574127197,-19.2294921875,-19.4242172241211,-19.6252937316895,-19.7445316314697,-19.8327140808105,-19.9795913696289,-20.0204105377197,-20.0407218933105,-20.05517578125,-20.1103515625,-20.1510753631592,-20.1646480560303]}],[{"lng":[-48.4858856201172,-48.5545883178711,-48.5421867370605,-48.5051765441895,-48.4647445678711,-48.4148902893066,-48.3779296875,-48.4095687866211,-48.4967765808105,-48.4858856201172],"lat":[-27.7669925689697,-27.8122081756592,-27.5748043060303,-27.4955062866211,-27.4363288879395,-27.3996086120605,-27.4514636993408,-27.5663089752197,-27.70703125,-27.7669925689697]}],[{"lng":[-48.5844230651855,-48.6030769348145,-48.665771484375,-48.5397453308105,-48.4976081848145,-48.5311050415039,-48.5680656433105,-48.5844230651855],"lat":[-26.4015617370605,-26.4137687683105,-26.2896480560303,-26.1703128814697,-26.21875,-26.3131847381592,-26.3796882629395,-26.4015617370605]}],[{"lng":[-45.26025390625,-45.2608871459961,-45.3025360107422,-45.412841796875,-45.451416015625,-45.3023414611816,-45.2722663879395,-45.2490692138672,-45.2331047058105,-45.2502937316895,-45.26025390625],"lat":[-23.88916015625,-23.9413089752197,-23.9147453308105,-23.9349594116211,-23.8956050872803,-23.7275390625,-23.751953125,-23.7826156616211,-23.8253898620605,-23.85302734375,-23.88916015625]}],[{"lng":[-44.1292953491211,-44.0980491638184,-44.15576171875,-44.2205085754395,-44.320068359375,-44.3601570129395,-44.2741241455078,-44.2428703308105,-44.2204093933105,-44.1916007995605,-44.1292953491211],"lat":[-23.1418952941895,-23.1693344116211,-23.1666011810303,-23.1908187866211,-23.2123031616211,-23.1720714569092,-23.1162109375,-23.0741214752197,-23.0829086303711,-23.11328125,-23.1418952941895]}],[{"lng":[-38.903564453125,-38.9378890991211,-38.9775886535645,-38.9932136535645,-39.0221672058105,-39.006591796875,-38.9801292419434,-38.9071273803711,-38.903564453125],"lat":[-13.4734373092651,-13.5323238372803,-13.5235347747803,-13.4840822219849,-13.4456052780151,-13.41552734375,-13.3984375,-13.4010744094849,-13.4734373092651]}],[{"lng":[-38.7438468933105,-38.7830085754395,-38.7869644165039,-38.6848640441895,-38.6681137084961,-38.6145477294922,-38.6002922058105,-38.6011734008789,-38.7438468933105],"lat":[-13.0970706939697,-13.11865234375,-13.0550785064697,-12.9749021530151,-12.8801765441895,-12.9240236282349,-12.9724617004395,-12.9925775527954,-13.0970706939697]}],[{"lng":[-44.4993171691895,-44.5977554321289,-44.5653305053711,-44.5818862915039,-44.569091796875,-44.501953125,-44.4814453125,-44.4873046875,-44.4825706481934,-44.4993171691895],"lat":[-2.93964815139771,-3.03759765625,-2.92392563819885,-2.84560513496399,-2.78496098518372,-2.72626948356628,-2.71757841110229,-2.78974580764771,-2.81191420555115,-2.93964815139771]}],[{"lng":[-44.8831062316895,-44.9471168518066,-44.9678726196289,-45.0208511352539,-45.01123046875,-44.99560546875,-44.9786643981934,-44.8882789611816,-44.8831062316895],"lat":[-1.31787109375,-1.36601567268372,-1.39082014560699,-1.37236344814301,-1.34472680091858,-1.34755837917328,-1.26728522777557,-1.27685534954071,-1.31787109375]}],[{"lng":[-51.83251953125,-51.9383773803711,-51.8020515441895,-51.6800270080566,-51.6782684326172,-51.5460433959961,-51.4244651794434,-51.2540016174316,-51.1607437133789,-51.2763175964355,-51.3101043701172,-51.4651374816895,-51.6376953125,-51.83251953125],"lat":[-1.43378901481628,-1.45263648033142,-1.20253932476044,-1.08613264560699,-0.855078220367432,-0.649609267711639,-0.565917909145355,-0.541406154632568,-0.666699409484863,-1.02177739143372,-1.02382802963257,-1.21113312244415,-1.34189462661743,-1.43378901481628]}],[{"lng":[-49.628662109375,-49.5352058410645,-49.4028816223145,-49.3142585754395,-49.215087890625,-49.1169929504395,-48.7865715026855,-48.5880355834961,-48.5154304504395,-48.4444808959961,-48.3926773071289,-48.3796882629395,-48.4280281066895,-48.4639663696289,-48.4974594116211,-48.5233421325684,-48.566650390625,-48.5396995544434,-48.5495109558105,-48.5709457397461,-48.6240730285645,-48.70458984375,-48.728515625,-48.7898445129395,-48.8396987915039,-48.8290061950684,-48.8040504455566,-48.8335952758789,-48.9289054870605,-48.9859390258789,-49.0384788513184,-49.0868644714355,-49.1727027893066,-49.1816902160645,-49.2047843933105,-49.2339859008789,-49.3448257446289,-49.4065933227539,-49.5066413879395,-49.5256843566895,-49.587890625,-49.6505851745605,-49.748779296875,-49.8051300048828,-49.9113273620605,-50.0099639892578,-50.0657234191895,-50.1092758178711,-50.3384246826172,-50.4434585571289,-50.5076179504395,-50.60205078125,-50.6171875,-50.6733894348145,-50.7238311767578,-50.759765625,-50.7294921875,-50.6683120727539,-50.5959014892578,-50.5805168151855,-50.5769538879395,-50.5929183959961,-50.7096176147461,-50.7832984924316,-50.7960929870605,-50.7809562683105,-50.7713890075684,-50.7199211120605,-50.7030754089355,-50.7158203125,-50.6937026977539,-50.6455078125,-50.4615707397461,-50.2482452392578,-49.628662109375],"lat":[-0.229199171066284,-0.233593747019768,-0.214648321270943,-0.167870908975601,-0.158691555261612,-0.163574293255806,-0.215527251362801,-0.231640532612801,-0.248241990804672,-0.271874785423279,-0.297363370656967,-0.352831989526749,-0.441504091024399,-0.534765541553497,-0.664941608905792,-0.691406488418579,-0.684472560882568,-0.800976634025574,-0.847558736801147,-0.892871081829071,-0.986914098262787,-1.10664045810699,-1.13173830509186,-1.17333960533142,-1.22656226158142,-1.27656257152557,-1.32695305347443,-1.39003908634186,-1.48232436180115,-1.50468742847443,-1.51406276226044,-1.50507819652557,-1.41259765625,-1.48496103286743,-1.55898439884186,-1.59951198101044,-1.59521484375,-1.55556666851044,-1.51162135601044,-1.63046884536743,-1.71240234375,-1.73808586597443,-1.75537133216858,-1.79023408889771,-1.76298820972443,-1.70849597454071,-1.70380866527557,-1.74785125255585,-1.75595688819885,-1.80068373680115,-1.78798818588257,-1.69775414466858,-1.63769555091858,-1.51601529121399,-1.37148451805115,-1.24023413658142,-1.12675762176514,-1.13056659698486,-1.1474609375,-1.13945329189301,-1.10312485694885,-1.07294940948486,-1.07773411273956,-1.01035141944885,-0.906250178813934,-0.689843475818634,-0.645410001277924,-0.583398222923279,-0.528515756130219,-0.470214992761612,-0.364453285932541,-0.272851675748825,-0.157421872019768,-0.116406112909317,-0.229199171066284]}],[{"lng":[-50.6528816223145,-50.9263687133789,-51.0189933776855,-51.0380859375,-51.0223617553711,-51.0257301330566,-50.9950714111328,-50.8421859741211,-50.7652816772461,-50.6669921875,-50.6505851745605,-50.6528816223145],"lat":[-0.131640493869781,-0.327343970537186,-0.263086199760437,-0.225878864526749,-0.188378781080246,-0.172363460063934,-0.105273544788361,-0.05019511282444,-0.0408690795302391,-0.0580079630017281,-0.105859108269215,-0.131640493869781]}],[{"lng":[-49.4438972473145,-49.7088394165039,-49.830078125,-49.8026847839355,-49.7123069763184,-49.6021957397461,-49.5034675598145,-49.4004859924316,-49.372314453125,-49.380859375,-49.4438972473145],"lat":[-0.11240229010582,-0.143749952316284,-0.093896321952343,-0.0518555454909801,0.0151369711384177,0.0626953318715096,0.0836913734674454,0.0572264529764652,0.00107429595664144,-0.0554686151444912,-0.11240229010582]}],[{"lng":[-49.7382316589355,-49.697265625,-49.8389663696289,-49.9170875549316,-50.0024909973145,-50.1131362915039,-50.2855949401855,-50.3394546508789,-50.3451156616211,-50.2726593017578,-50.1279792785645,-49.8790016174316,-49.7382316589355],"lat":[0.268164306879044,0.215966701507568,0.00688466103747487,-0.0231933314353228,-0.0292970519512892,0.0330080986022949,0.0285642370581627,0.0433591529726982,0.134472623467445,0.231738492846489,0.22651369869709,0.304540812969208,0.268164306879044]}],[{"lng":[-50.4261207580566,-50.4439468383789,-50.6239242553711,-50.6104469299316,-50.5262222290039,-50.4515609741211,-50.4260749816895,-50.424560546875,-50.3968734741211,-50.3727531433105,-50.3509750366211,-50.342529296875,-50.332275390625,-50.4261207580566],"lat":[0.139257967472076,-0.00766617525368929,0.0543943233788013,0.204785421490669,0.246923610568047,0.326904505491257,0.42495134472847,0.558251678943634,0.581396341323853,0.590869069099426,0.581738352775574,0.381591618061066,0.25903308391571,0.139257967472076]}],[{"lng":[-50.1529273986816,-50.2613258361816,-50.2815437316895,-50.2816886901855,-50.2511711120605,-50.11279296875,-50.0986328125,-50.058837890625,-50.0368156433105,-50.0400390625,-50.1529273986816],"lat":[0.393017530441284,0.359179794788361,0.390820235013962,0.516503691673279,0.585449397563934,0.604736328125,0.62500011920929,0.638037204742432,0.594824135303497,0.522802770137787,0.393017530441284]}],[{"lng":[-50.2989730834961,-50.3987808227539,-50.4561042785645,-50.5089874267578,-50.4910163879395,-50.4187507629395,-50.3626441955566,-50.3419914245605,-50.2920913696289,-50.2989730834961],"lat":[1.93852531909943,1.89287102222443,1.91049802303314,2.02954077720642,2.12861323356628,2.16147470474243,2.15444326400757,2.14174842834473,1.97958993911743,1.93852531909943]}],[{"lng":[-56.4828109741211,-56.4528312683105,-56.3858413696289,-56.2271499633789,-56.0199203491211,-55.9633293151855,-55.9296379089355,-55.921630859375,-55.9153327941895,-55.9619636535645,-56.0200691223145,-56.0736351013184,-56.1376953125,-56.12939453125,-56.0877914428711,-56.0451164245605,-56.0203628540039,-55.9935035705566,-55.9755859375,-55.9574699401855,-55.9359359741211,-55.8937492370605,-55.7305679321289,-55.658935546875,-55.3853530883789,-55.343994140625,-55.2860336303711,-55.1876945495605,-55.1488304138184,-55.1141128540039,-55.0703125,-55.0058135986328,-54.9786605834961,-54.9684104919434,-54.9265594482422,-54.8760757446289,-54.8516616821289,-54.766845703125,-54.7222137451172,-54.7029304504395,-54.6974105834961,-54.661865234375,-54.6162605285645,-54.5919418334961,-54.5504875183105,-54.5150871276855,-54.43310546875,-54.2930679321289,-54.2279777526855,-54.1673812866211,-54.1300773620605,-54.0897483825684,-53.9464340209961,-53.8766098022461,-53.8295402526855,-53.7942390441895,-53.7677764892578,-53.7501449584961,-53.7347183227539,-53.6836929321289,-53.56396484375,-53.5089874267578,-53.4318351745605,-53.3660163879395,-53.3344230651855,-53.2854995727539,-53.252197265625,-53.2297859191895,-53.1800765991211,-53.082275390625,-53.0097160339355,-52.96484375,-52.9034652709961,-52.8704109191895,-52.7833976745605,-52.7006340026855,-52.6531753540039,-52.5830078125,-52.5594749450684,-52.5546875,-52.4558601379395,-52.4184112548828,-52.3963851928711,-52.3566398620605,-52.3566398620605,-52.327880859375,-52.271240234375,-52.2294425964355,-52.16259765625,-52.1161117553711,-51.99951171875,-51.9906234741211,-51.9443359375,-51.9289054870605,-51.8794898986816,-51.8274879455566,-51.8052749633789,-51.76708984375,-51.6834487915039,-51.6525382995605,-51.5578117370605,-51.5470695495605,-51.4615249633789,-51.3270988464355,-51.2199249267578,-51.0762710571289,-51.0523910522461,-50.994140625,-50.8271980285645,-50.8165054321289,-50.7896957397461,-50.7369651794434,-50.6787605285645,-50.6765594482422,-50.7144050598145,-50.658935546875,-50.6086921691895,-50.5758781433105,-50.534423828125,-50.4588851928711,-50.3042945861816,-50.1875991821289,-50.0546875,-49.9571266174316,-49.881591796875,-49.90625,-49.8988761901855,-49.9379425048828,-50.0472183227539,-50.0709953308105,-50.29443359375,-50.34326171875,-50.4629898071289,-50.58154296875,-50.7550773620605,-50.8163566589355,-50.91015625,-50.9670906066895,-51.1019515991211,-51.2829093933105,-51.299560546875,-51.4041519165039,-51.4962882995605,-51.5550308227539,-51.70263671875,-51.7215309143066,-51.7206077575684,-51.8191375732422,-51.921630859375,-51.9344749450684,-51.9808082580566,-52.0204582214355,-52.229248046875,-52.5534172058105,-52.6641616821289,-52.310302734375,-52.1966819763184,-51.9475593566895,-51.6462860107422,-51.5312004089355,-51.29736328125,-51.2023429870605,-51.0289535522461,-50.9920425415039,-50.8949241638184,-50.84228515625,-50.8381843566895,-50.9178733825684,-50.8971710205078,-50.8445816040039,-50.8255386352539,-50.8186531066895,-50.7861328125,-50.678955078125,-50.67529296875,-50.6900405883789,-50.6387710571289,-50.5855979919434,-50.4032249450684,-50.2604484558105,-50.1727066040039,-50.1166000366211,-49.9992179870605,-49.9029769897461,-49.7195320129395,-49.5853538513184,-49.3136711120605,-49.3986320495605,-49.4601554870605,-49.5069847106934,-49.5533714294434,-49.5993156433105,-49.6365242004395,-49.5758781433105,-49.52392578125,-49.45751953125,-49.4076652526855,-49.2110366821289,-49.15478515625,-48.9913063049316,-48.7100105285645,-48.5999984741211,-48.5295906066895,-48.4629364013672,-48.4458503723145,-48.3498077392578,-48.4514656066895,-48.4680671691895,-48.4777336120605,-48.4085922241211,-48.4498023986816,-48.3064918518066,-48.3175773620605,-48.2664527893066,-48.2017593383789,-48.1284675598145,-48.1150856018066,-48.06884765625,-48.0325660705566,-47.9609375,-47.8833999633789,-47.8076667785645,-47.7737312316895,-47.7314910888672,-47.6871109008789,-47.6510734558105,-47.5573234558105,-47.470703125,-47.4186515808105,-47.4329109191895,-47.4603500366211,-47.4390602111816,-47.3980941772461,-47.2686042785645,-47.2005386352539,-47.1269035339355,-47.0246086120605,-46.9443359375,-46.8936500549316,-46.8112297058105,-46.7699203491211,-46.6444358825684,-46.6172370910645,-46.5163116455078,-46.4217300415039,-46.3208503723145,-46.2191429138184,-46.2149887084961,-46.140380859375,-46.0446281433105,-45.9722633361816,-45.77880859375,-45.644775390625,-45.5569343566895,-45.4585952758789,-45.35302734375,-45.3291511535645,-45.2821273803711,-45.2385711669922,-45.1820793151855,-45.0763664245605,-45.0257835388184,-44.9197731018066,-44.828369140625,-44.7898445129395,-44.7211418151855,-44.7785148620605,-44.720947265625,-44.6512680053711,-44.5916519165039,-44.5467758178711,-44.5377922058105,-44.5800285339355,-44.6172866821289,-44.6586418151855,-44.70751953125,-44.75634765625,-44.7006340026855,-44.6624031066895,-44.5790061950684,-44.5203628540039,-44.4354476928711,-44.3913078308105,-44.3818359375,-44.5201187133789,-44.5206565856934,-44.56201171875,-44.5890159606934,-44.6107902526855,-44.6389656066895,-44.7213859558105,-44.7230491638184,-44.6226577758789,-44.4375495910645,-44.3811531066895,-44.3081550598145,-44.2286148071289,-44.1793937683105,-44.1055679321289,-44.1013679504395,-44.1126480102539,-44.1916007995605,-44.2251930236816,-44.1926765441895,-44.0132331848145,-43.9329109191895,-43.8644523620605,-43.7286109924316,-43.4551239013672,-43.4346160888672,-43.3800773620605,-43.2296867370605,-42.9367179870605,-42.832275390625,-42.6758804321289,-42.5935554504395,-42.2496109008789,-41.9998550415039,-41.8761749267578,-41.7218742370605,-41.64013671875,-41.4799308776855,-41.3182106018066,-41.1945304870605,-40.8755836486816,-40.4745597839355,-40.2353515625,-39.9646987915039,-39.7718276977539,-39.6094245910645,-39.5111808776855,-39.3526840209961,-39.0143547058105,-38.89599609375,-38.6862297058105,-38.4757804870605,-38.3619155883789,-38.2718772888184,-38.048828125,-37.795654296875,-37.6263160705566,-37.3014678955078,-37.1746559143066,-36.9548835754395,-36.8611335754395,-36.7473640441895,-36.5907249450684,-36.38671875,-36.1617660522461,-35.9798812866211,-35.5494117736816,-35.481689453125,-35.392578125,-35.2354507446289,-35.1417465209961,-35.095458984375,-34.9881820678711,-34.9295921325684,-34.8798828125,-34.8759765625,-34.8338851928711,-34.8054695129395,-34.8166007995605,-34.8577651977539,-34.86083984375,-34.8547859191895,-34.8730010986328,-34.8786125183105,-34.8369140625,-34.8346672058105,-34.8905296325684,-34.9666519165039,-35.1577644348145,-35.3408699035645,-35.5970726013184,-35.7639617919922,-35.8301277160645,-35.8908195495605,-35.8477516174316,-35.8854484558105,-36.0549812316895,-36.2235374450684,-36.3983421325684,-36.41162109375,-36.6357421875,-36.768310546875,-36.9377937316895,-37.0933609008789,-37.12548828125,-37.1828117370605,-37.1812019348145,-37.3151359558105,-37.3560066223145,-37.3548812866211,-37.3316421508789,-37.32080078125,-37.32177734375,-37.3592300415039,-37.4384765625,-37.4118194580078,-37.4693336486816,-37.688720703125,-37.9573249816895,-38.0192375183105,-38.23974609375,-38.4017601013184,-38.4473152160645,-38.4989242553711,-38.52490234375,-38.6540031433105,-38.6909675598145,-38.743896484375,-38.7879867553711,-38.8517570495605,-38.7835922241211,-38.7637214660645,-38.8331527709961,-38.8353004455566,-38.9591789245605,-39.0309066772461,-39.0673828125,-39.08935546875,-39.034912109375,-39.0090827941895,-38.9886207580566,-39.001220703125,-39.0411109924316,-39.034912109375,-39.0481452941895,-39.0084953308105,-38.9665031433105,-38.9423332214355,-39.0595703125,-39.0133781433105,-38.9961929321289,-38.9432106018066,-38.88525390625,-38.880615234375,-38.9607925415039,-39.063232421875,-39.1250495910645,-39.1639633178711,-39.202880859375,-39.2152328491211,-39.1706047058105,-39.1540031433105,-39.2783699035645,-39.41259765625,-39.4867668151855,-39.6507797241211,-39.7397956848145,-39.741943359375,-39.6998519897461,-39.7314453125,-39.7833023071289,-39.8447265625,-40.0013694763184,-40.1416969299316,-40.2027320861816,-40.2988777160645,-40.3185539245605,-40.3959465026855,-40.5965805053711,-40.72705078125,-40.7892570495605,-40.8287620544434,-40.9545402526855,-41.0472640991211,-41.0231437683105,-41.0215835571289,-40.9878425598145,-41.0002937316895,-41.1225090026855,-41.5829086303711,-41.7055168151855,-41.9804191589355,-41.99755859375,-41.9861335754395,-41.94091796875,-41.9874992370605,-42.0423812866211,-42.1224594116211,-42.5810546875,-42.8292961120605,-42.9583015441895,-43.0162086486816,-43.0811500549316,-43.1006813049316,-43.0654296875,-43.0862770080566,-43.154296875,-43.22900390625,-43.241943359375,-43.2366218566895,-43.2088394165039,-43.193603515625,-43.2241706848145,-43.3694801330566,-43.5328102111816,-43.7365226745605,-43.8988265991211,-43.9738273620605,-43.8988265991211,-43.7914047241211,-43.6759757995605,-43.7029304504395,-43.8661613464355,-44.0474586486816,-44.1479949951172,-44.367919921875,-44.6372566223145,-44.68115234375,-44.673828125,-44.62109375,-44.5696792602539,-44.6190910339355,-44.6671867370605,-44.95166015625,-45.2154273986816,-45.3253898620605,-45.4232902526855,-45.4333953857422,-45.4643058776855,-45.527099609375,-45.6646461486816,-45.8431625366211,-45.9720687866211,-46.6307601928711,-46.8672866821289,-47.13720703125,-47.5921859741211,-47.8311538696289,-47.8765640258789,-47.914306640625,-47.9891624450684,-47.9593734741211,-47.9083518981934,-47.9293937683105,-48.0243644714355,-48.2027359008789,-48.242431640625,-48.1859359741211,-48.2734870910645,-48.4024925231934,-48.45849609375,-48.4276351928711,-48.4761238098145,-48.5641632080078,-48.6439933776855,-48.7317352294922,-48.6921882629395,-48.5070304870605,-48.4298820495605,-48.4011726379395,-48.545166015625,-48.665771484375,-48.6790046691895,-48.6128425598145,-48.5763206481934,-48.6194343566895,-48.6790046691895,-48.7137680053711,-48.748291015625,-48.70068359375,-48.651611328125,-48.6581535339355,-48.676513671875,-48.677734375,-48.6156730651855,-48.5934066772461,-48.568359375,-48.5541534423828,-48.5955085754395,-48.5719718933105,-48.642578125,-48.6056632995605,-48.6208000183105,-48.6484375,-48.6932144165039,-48.7972640991211,-48.7996597290039,-49.0235824584961,-49.2712860107422,-49.4999046325684,-49.7459945678711,-50.0333480834961,-50.2995109558105,-50.6199684143066,-50.7481460571289,-50.92138671875,-51.1517562866211,-51.4603996276855,-51.7981414794922,-51.9202156066895,-52.0392074584961,-52.0689468383789,-52.0431671142578,-52.0595703125,-52.063232421875,-51.9951171875,-51.8931655883789,-51.8412094116211,-51.8034210205078,-51.6806640625,-51.4461898803711,-51.2721672058105,-51.17431640625,-51.1575202941895,-51.1614265441895,-51.10595703125,-50.9800796508789,-50.9543914794922,-50.96533203125,-50.9408226013184,-50.7701644897461,-50.6893081665039,-50.71630859375,-50.68505859375,-50.6148452758789,-50.5819320678711,-50.5465354919434,-50.5635261535645,-50.6461906433105,-50.931884765625,-51.0249519348145,-51.0403823852539,-51.1792984008789,-51.2335929870605,-51.2498550415039,-51.2980461120605,-51.2950210571289,-51.2817878723145,-51.1572761535645,-51.1875495910645,-51.24658203125,-51.2876968383789,-51.2830581665039,-51.31640625,-51.3590812683105,-51.37646484375,-51.4591293334961,-51.4852561950684,-51.4636726379395,-51.5062980651855,-51.7168960571289,-51.9268074035645,-51.9724617004395,-51.994873046875,-52.0269546508789,-52.1198234558105,-52.1935577392578,-52.1915512084961,-52.1670913696289,-52.1273918151855,-52.190185546875,-52.2746086120605,-52.3416519165039,-52.5084953308105,-52.6522445678711,-52.7628898620605,-52.9208488464355,-53.37060546875,-53.3975601196289,-53.4635772705078,-53.5188484191895,-53.5313491821289,-53.5376472473145,-53.5303726196289,-53.5313491821289,-53.5118637084961,-53.4828605651855,-53.3952140808105,-53.3101081848145,-53.2140617370605,-53.1255874633789,-53.1572761535645,-53.2312507629395,-53.3627433776855,-53.4894027709961,-53.6017074584961,-53.6536102294922,-53.7011222839355,-53.74658203125,-53.76171875,-53.8061027526855,-53.8765144348145,-53.9206047058105,-53.9851570129395,-54.1004409790039,-54.2205581665039,-54.3699226379395,-54.4776840209961,-54.5309104919434,-54.587646484375,-54.89599609375,-55.0360336303711,-55.0911636352539,-55.1735343933105,-55.254638671875,-55.2789535522461,-55.3132820129395,-55.3455085754395,-55.3660621643066,-55.4495582580566,-55.5573272705078,-55.60302734375,-55.6271476745605,-55.6504898071289,-55.6652374267578,-55.7059555053711,-55.75634765625,-55.8077659606934,-55.8736839294434,-55.9519996643066,-56.0046844482422,-56.0155258178711,-56.0184555053711,-55.9989776611328,-56.0448226928711,-56.1058578491211,-56.1761703491211,-56.4072265625,-56.7216796875,-56.8327178955078,-56.937255859375,-57.03271484375,-57.1205062866211,-57.1869125366211,-57.2144508361816,-57.3838424682617,-57.5522956848145,-57.6088905334473,-57.5638656616211,-57.4052276611328,-57.3174781799316,-57.3006820678711,-57.2246551513672,-57.08935546875,-56.9386215209961,-56.7724609375,-56.6715354919434,-56.6358413696289,-56.5707054138184,-56.4759750366211,-56.3932609558105,-56.3223648071289,-56.2255363464355,-56.1028785705566,-56.0342292785645,-56.0196304321289,-55.9849128723145,-55.93017578125,-55.9036598205566,-55.9054183959961,-55.8905258178711,-55.85888671875,-55.8060531616211,-55.7319831848145,-55.687255859375,-55.6719741821289,-55.6915054321289,-55.7459945678711,-55.7254867553711,-55.5823707580566,-55.4766616821289,-55.4098129272461,-55.3464851379395,-55.2437515258789,-55.1015129089355,-55.0638694763184,-55.0689926147461,-55.0399436950684,-54.9559059143066,-54.9102058410645,-54.9027862548828,-54.875732421875,-54.8291015625,-54.777099609375,-54.7197265625,-54.6658706665039,-54.6154289245605,-54.554931640625,-54.4843254089355,-54.4481430053711,-54.3270034790039,-54.2601547241211,-54.2052230834961,-54.1564445495605,-54.1138191223145,-54.0401344299316,-53.9353485107422,-53.9156265258789,-53.8381843566895,-53.7584953308105,-53.71728515625,-53.7271499633789,-53.7533187866211,-53.7445793151855,-53.7181625366211,-53.7109375,-53.6685523986816,-53.6712875366211,-53.7469215393066,-53.8232421875,-53.8642120361328,-53.8911628723145,-53.9547843933105,-54.0123062133789,-54.0850105285645,-54.1192398071289,-54.1545906066895,-54.2061538696289,-54.2500991821289,-54.3318824768066,-54.3833503723145,-54.4439468383789,-54.5015144348145,-54.537841796875,-54.6158676147461,-54.6105461120605,-54.47314453125,-54.4362297058105,-54.4541015625,-54.4129905700684,-54.3129386901855,-54.281005859375,-54.3172836303711,-54.3182601928711,-54.2668952941895,-54.2417984008789,-54.3708038330078,-54.4402351379395,-54.5295906066895,-54.62548828125,-54.6717796325684,-54.7213859558105,-54.8172836303711,-54.9264640808105,-54.982666015625,-55.0818862915039,-55.1943359375,-55.2869148254395,-55.3663101196289,-55.4159164428711,-55.4423828125,-55.4423828125,-55.4588851928711,-55.5184593200684,-55.5382804870605,-55.5416030883789,-55.5349617004395,-55.5184593200684,-55.5283699035645,-55.5548324584961,-55.5481948852539,-55.5614280700684,-55.6011238098145,-55.6209983825684,-55.6209983825684,-55.6507301330566,-55.654052734375,-55.6275863647461,-55.61767578125,-55.6474113464355,-55.7036628723145,-55.7466316223145,-55.7532691955566,-55.799560546875,-55.8491706848145,-55.9053726196289,-55.9914054870605,-56.0674781799316,-56.1898422241211,-56.2460441589355,-56.2757797241211,-56.3518524169922,-56.3948745727539,-56.4477996826172,-56.5238265991211,-56.55029296875,-56.580078125,-56.6330070495605,-56.7024421691895,-56.7751960754395,-56.8446769714355,-56.937255859375,-57.0298843383789,-57.142333984375,-57.2382316589355,-57.3308601379395,-57.3936500549316,-57.4763679504395,-57.5689468383789,-57.6417007446289,-57.7210960388184,-57.7640647888184,-57.8203125,-57.8798370361328,-57.9559097290039,-57.9856910705566,-57.9790496826172,-57.9625015258789,-57.9327621459961,-57.9493179321289,-57.9426727294922,-57.929443359375,-57.9162139892578,-57.9261703491211,-57.929443359375,-57.9360809326172,-57.9459915161133,-57.9062957763672,-57.8732452392578,-57.89306640625,-57.886474609375,-57.8600082397461,-57.8269577026367,-57.8302268981934,-57.8600082397461,-57.8922386169434,-57.9004898071289,-57.8848152160645,-57.9019050598145,-57.9084968566895,-57.8914070129395,-57.9151344299316,-57.9625015258789,-57.9790496826172,-57.9956092834473,-58.0088386535645,-58.0022468566895,-58.0253944396973,-58.0584449768066,-58.0915031433105,-58.1246109008789,-58.1377906799316,-58.1597633361816,-58.09375,-58.0676231384277,-58.0211448669434,-57.9601593017578,-57.8875961303711,-57.8607444763184,-58.0299301147461,-58.1314926147461,-58.0720252990723,-57.9716796875,-57.8745079040527,-57.8003921508789,-57.7814483642578,-57.7168006896973,-57.7286148071289,-57.7308616638184,-57.7831077575684,-57.7250022888184,-57.63916015625,-57.5740203857422,-57.5531272888184,-57.5061492919922,-57.4956512451172,-57.5520477294922,-57.5864715576172,-57.6616744995117,-57.7801780700684,-57.7888641357422,-57.8324699401855,-57.9050331115723,-57.9909133911133,-58.20556640625,-58.3477516174316,-58.3959922790527,-58.4173851013184,-58.4598159790039,-58.4781265258789,-58.4706077575684,-58.3503875732422,-58.3507843017578,-58.3405723571777,-58.3456077575684,-58.3753929138184,-58.4236831665039,-58.49658203125,-58.5379371643066,-58.9572792053223,-59.4342765808105,-59.8311538696289,-60.1755867004395,-60.1872100830078,-60.2066421508789,-60.2204132080078,-60.2423362731934,-60.3804702758789,-60.5304679870605,-60.5832023620605,-60.4020004272461,-60.2733383178711,-60.2988777160645,-60.3380355834961,-60.3727035522461,-60.396240234375,-60.4601593017578,-60.4746589660645,-60.4629859924316,-60.4280776977539,-60.4049758911133,-60.4223594665527,-60.4601593017578,-60.506591796875,-60.5953140258789,-60.7223625183105,-60.9145011901855,-61.0769996643066,-61.1291465759277,-61.4160652160645,-61.5115699768066,-61.57568359375,-61.7899398803711,-61.8741226196289,-61.9447288513184,-62.0947723388672,-62.1180152893066,-62.1760711669922,-62.263916015625,-62.3528327941895,-62.5255393981934,-62.6870613098145,-62.7654762268066,-62.8351593017578,-62.9579124450684,-63.0151901245117,-63.0413551330566,-63.0674819946289,-63.1167945861816,-63.1806640625,-63.2497596740723,-63.3466796875,-63.4652366638184,-63.5418930053711,-63.5856475830078,-63.6885757446289,-63.7880859375,-63.9385757446289,-64.0616226196289,-64.2550354003906,-64.4205093383789,-64.4807662963867,-64.513427734375,-64.6116714477539,-64.6900405883789,-64.783447265625,-64.8298797607422,-64.9143600463867,-64.9925308227539,-65.001220703125,-65.0302734375,-65.037109375,-65.0902786254883,-65.1151351928711,-65.1426773071289,-65.1633758544922,-65.1857376098633,-65.1897430419922,-65.1753921508789,-65.2062072753906,-65.2822799682617,-65.322021484375,-65.3254852294922,-65.3423843383789,-65.3728561401367,-65.389892578125,-65.3936004638672,-65.37158203125,-65.3237762451172,-65.3340301513672,-65.4022903442383,-65.4399871826172,-65.4471206665039,-65.4369125366211,-65.3954620361328,-65.3130798339844,-65.298583984375,-65.3245544433594,-65.328125,-65.309326171875,-65.337890625,-65.3961410522461,-65.436767578125,-65.4919891357422,-65.5586929321289,-65.6371078491211,-65.706787109375,-65.9247055053711,-66.2635726928711,-66.3992233276367,-66.4789047241211,-66.5753402709961,-66.72998046875,-67.1115264892578,-67.1904754638672,-67.2804718017578,-67.3327178955078,-67.4169464111328,-67.5824203491211,-67.6666488647461,-67.7217788696289,-67.7856903076172,-67.8350067138672,-67.99169921875,-68.0716781616211,-68.1586456298828,-68.2666015625,-68.3111343383789,-68.3980026245117,-68.4983444213867,-68.6226577758789,-68.6783752441406,-68.7274856567383,-68.7699203491211,-68.7840805053711,-68.8483428955078,-69.0016555786133,-69.228515625,-69.4625473022461,-69.57861328125,-69.6740188598633,-69.8397979736328,-69.9603500366211,-70.0663070678711,-70.2200698852539,-70.2903747558594,-70.3419952392578,-70.3922882080078,-70.4508819580078,-70.5332565307617,-70.5965347290039,-70.642333984375,-70.6415557861328,-70.6403274536133,-70.6393508911133,-70.6385269165039,-70.6375961303711,-70.6369171142578,-70.5937957763672,-70.5672302246094,-70.5991744995117,-70.5922393798828,-70.5701599121094,-70.5411148071289,-70.60791015625,-70.6369171142578,-70.6724624633789,-70.7584991455078,-70.8162612915039,-70.884521484375,-70.9707565307617,-71.041748046875,-71.1152801513672,-71.2379379272461,-71.3394088745117,-71.6080093383789,-71.887451171875,-72.1429748535156,-72.1815872192383,-72.1791000366211,-72.1728515625,-72.2599563598633,-72.2658157348633,-72.2890167236328,-72.3180618286133,-72.3790512084961,-72.4647521972656,-72.60546875,-72.8142547607422,-73.0137710571289,-73.2094268798828,-73.08984375,-72.9703598022461,-72.9740219116211,-73.0705108642578,-73.12255859375,-73.203125,-73.3024444580078,-73.3567352294922,-73.3517074584961,-73.3603973388672,-73.3981399536133,-73.4358901977539,-73.4881362915039,-73.5491256713867,-73.5491256713867,-73.5723648071289,-73.610107421875,-73.610107421875,-73.6449203491211,-73.6826705932617,-73.7204132080078,-73.7755813598633,-73.772705078125,-73.7320251464844,-73.714599609375,-73.7204132080078,-73.7668991088867,-73.8220748901367,-73.8946304321289,-73.9468688964844,-73.9817428588867,-74.0020523071289,-73.9817428588867,-73.95849609375,-73.9526824951172,-73.9643096923828,-73.9643096923828,-73.929443359375,-73.8917465209961,-73.85400390625,-73.8046417236328,-73.7494659423828,-73.7204132080078,-73.7233428955078,-73.7582015991211,-73.7930145263672,-73.8046417236328,-73.7762680053711,-73.7581100463867,-73.6945343017578,-73.4999084472656,-73.3254852294922,-73.2403335571289,-73.1774444580078,-73.1373519897461,-73.1263198852539,-73.1353530883789,-73.167724609375,-73.2064971923828,-73.2355499267578,-73.2093734741211,-73.1628875732422,-73.0680694580078,-72.9798812866211,-72.97021484375,-72.9589309692383,-72.9182586669922,-72.8958053588867,-72.907470703125,-72.8870620727539,-72.8319320678711,-72.69873046875,-72.6083526611328,-72.468994140625,-72.3528289794922,-72.2567901611328,-72.08251953125,-71.982421875,-71.9431610107422,-71.8447265625,-71.6683654785156,-71.5213317871094,-71.4382781982422,-71.3167953491211,-71.2350082397461,-71.1442413330078,-70.9736862182617,-70.9156265258789,-70.8660125732422,-70.7995147705078,-70.7215805053711,-70.6345748901367,-70.5306625366211,-70.4046401977539,-70.3436508178711,-70.31689453125,-70.2391586303711,-70.1839828491211,-70.1288070678711,-70.0533218383789,-70.0039520263672,-69.9720230102539,-69.9659194946289,-69.9481964111328,-69.9110336303711,-69.8497543334961,-69.7941360473633,-69.7326202392578,-69.6690444946289,-69.6046905517578,-69.5518569946289,-69.5064468383789,-69.4786071777344,-69.4349136352539,-69.4178695678711,-69.4002380371094,-69.4114303588867,-69.4491271972656,-69.44873046875,-69.4443359375,-69.44873046875,-69.4884262084961,-69.519287109375,-69.5435485839844,-69.5545883178711,-69.5744171142578,-69.583251953125,-69.6119155883789,-69.6207046508789,-69.6008758544922,-69.592041015625,-69.6008758544922,-69.6119155883789,-69.6339797973633,-69.66748046875,-69.7474594116211,-69.8279266357422,-69.9227600097656,-70.0440444946289,-70.0705108642578,-70.0709457397461,-70.0657196044922,-70.0579147338867,-70.0539016723633,-69.9854507446289,-69.9251022338867,-69.862060546875,-69.80712890625,-69.7567367553711,-69.7188949584961,-69.673828125,-69.6387252807617,-69.6036148071289,-69.5648422241211,-69.5270538330078,-69.4721221923828,-69.4207992553711,-69.3919906616211,-69.358642578125,-69.3271484375,-69.3055191040039,-69.2830047607422,-69.2541961669922,-69.2127914428711,-69.174072265625,-69.1560516357422,-69.1533203125,-69.1632308959961,-69.1767578125,-69.1659622192383,-69.1650390625,-69.1632308959961,-69.19384765625,-69.2244644165039,-69.2586898803711,-69.3118133544922,-69.3613739013672,-69.4027786254883,-69.4415054321289,-69.4703140258789,-69.5171432495117,-69.5675811767578,-69.6208953857422,-69.7169876098633,-69.7513198852539,-69.7981491088867,-69.8521499633789,-69.8507843017578,-69.8494644165039,-69.8485794067383,-69.7999496459961,-69.7396011352539,-69.6500473022461,-69.5812454223633,-69.5429153442383,-69.4701690673828,-69.3943328857422,-69.3197250366211,-69.124267578125,-68.9131851196289,-68.678466796875,-68.4434509277344,-68.2395553588867,-68.1765670776367,-68.2132873535156,-68.2559585571289,-68.2394485473633,-68.2183609008789,-68.1937942504883,-68.1302795410156,-68.0770492553711,-68.0328674316406,-67.98974609375,-67.9362335205078,-67.8755340576172,-67.8150939941406,-67.7118682861328,-67.6092300415039,-67.5560531616211,-67.4996566772461,-67.457763671875,-67.4004364013672,-67.3519592285156,-67.3206024169922,-67.205810546875,-67.1192398071289,-67.0901336669922,-67.0882797241211,-67.0936508178711,-67.082275390625,-67.0652313232422,-66.8760299682617,-66.6190414428711,-66.4292449951172,-66.3471221923828,-66.3016586303711,-66.1912155151367,-66.06005859375,-65.996337890625,-65.9258804321289,-65.8113250732422,-65.7181167602539,-65.6814498901367,-65.6446762084961,-65.5660171508789,-65.5229949951172,-65.5626907348633,-65.5560531616211,-65.473388671875,-65.4072265625,-65.36083984375,-65.2639694213867,-65.1696319580078,-65.103759765625,-65.0265655517578,-64.9101104736328,-64.8179702758789,-64.7315368652344,-64.6674346923828,-64.5843734741211,-64.5262756347656,-64.4860382080078,-64.4051284790039,-64.30419921875,-64.2050247192383,-64.1148452758789,-64.0670394897461,-64.0354461669922,-64.0084991455078,-63.9757804870605,-63.9371604919434,-63.844482421875,-63.68212890625,-63.5702629089355,-63.4639167785645,-63.4325218200684,-63.3939437866211,-63.3748512268066,-63.3892593383789,-63.5846214294434,-63.7125511169434,-63.9241714477539,-64.02490234375,-64.0465850830078,-64.048828125,-64.0287170410156,-64.009033203125,-64.0377883911133,-64.1435546875,-64.2188491821289,-64.228759765625,-64.22705078125,-64.2210922241211,-64.2752914428711,-64.5679244995117,-64.6689987182617,-64.7025833129883,-64.81787109375,-64.7886734008789,-64.7222671508789,-64.66552734375,-64.6136703491211,-64.5763626098633,-64.5255355834961,-64.2556686401367,-64.1924819946289,-64.154296875,-64.1217269897461,-64.0733871459961,-64.021484375,-63.9146499633789,-63.7469749450684,-63.6529312133789,-63.5966300964355,-63.5268058776855,-63.3797836303711,-63.3386726379395,-63.2947273254395,-63.1362342834473,-63.0453109741211,-62.9686546325684,-62.8569793701172,-62.7646026611328,-62.7399406433105,-62.7121124267578,-62.6653327941895,-62.6097640991211,-62.5439453125,-62.4725570678711,-62.4106407165527,-62.1531219482422,-62.0815887451172,-61.8208465576172,-61.5542449951172,-61.4793930053711,-61.3675270080566,-61.2800827026367,-61.2094230651855,-61.1024436950684,-61.0362777709961,-61.0028305053711,-60.9664039611816,-60.90625,-60.8334007263184,-60.7417449951172,-60.6791496276855,-60.6275863647461,-60.6038589477539,-60.6044921875,-60.635009765625,-60.6719779968262,-60.7119598388672,-60.7421340942383,-60.6513710021973,-60.576416015625,-60.4595222473145,-60.4087867736816,-60.335205078125,-60.2416534423828,-60.1817398071289,-60.1420440673828,-60.10595703125,-60.0780792236328,-59.9906730651855,-59.9993667602539,-60.0154800415039,-60.0267562866211,-60.0317878723145,-60.0689468383789,-60.1245574951172,-60.1409149169922,-60.1486320495605,-60.1111373901367,-60.0450210571289,-59.9623527526855,-59.9061012268066,-59.8333511352539,-59.7458038330078,-59.7032699584961,-59.69970703125,-59.7274894714355,-59.7385749816895,-59.7168960571289,-59.6912078857422,-59.6202163696289,-59.58642578125,-59.5577621459961,-59.5511207580566,-59.5753898620605,-59.6044464111328,-59.6702117919922,-59.6790046691895,-59.7316436767578,-59.8543968200684,-59.8330574035645,-59.8288116455078,-59.8311538696289,-59.8730506896973,-59.9456520080566,-59.9723129272461,-59.9958953857422,-59.9943313598633,-59.9607887268066,-59.8896446228027,-59.84912109375,-59.7552223205566,-59.7435073852539,-59.7517585754395,-59.7561988830566,-59.74072265625,-59.6985359191895,-59.6685066223145,-59.6637725830078,-59.6665992736816,-59.5966300964355,-59.5356941223145,-59.4794464111328,-59.3776817321777,-59.3372535705566,-59.3169898986816,-59.231201171875,-59.1003913879395,-58.968505859375,-58.9166030883789,-58.8625030517578,-58.8217811584473,-58.7872047424316,-58.7303237915039,-58.6846160888672,-58.6050796508789,-58.5118675231934,-58.4957008361816,-58.4868621826172,-58.5060539245605,-58.4729499816895,-58.3958015441895,-58.38037109375,-58.3626976013184,-58.3406753540039,-58.314208984375,-58.2811508178711,-58.2304229736328,-58.173095703125,-58.1422386169434,-58.0913047790527,-58.03466796875,-58.0117683410645,-57.9951171875,-57.9828147888184,-57.9463424682617,-57.8734359741211,-57.795654296875,-57.6917457580566,-57.5944366455078,-57.5457496643066,-57.5004386901855,-57.4126968383789,-57.3667984008789,-57.3174781799316,-57.2755851745605,-57.1896018981934,-57.118896484375,-57.0926780700684,-57.03759765625,-57.0100593566895,-56.9695320129395,-56.8367195129395,-56.7662582397461,-56.6898422241211,-56.616455078125,-56.5635719299316,-56.5254859924316,-56.4828109741211],"lat":[1.94213843345642,1.93232417106628,1.92387712001801,1.88535141944885,1.84223628044128,1.85707998275757,1.88749992847443,1.97666037082672,2.03955101966858,2.09511709213257,2.15815424919128,2.23676753044128,2.25903344154358,2.29951167106628,2.34130835533142,2.36440420150757,2.39277315139771,2.49750995635986,2.51596665382385,2.52045917510986,2.51660132408142,2.48950219154358,2.40615224838257,2.41874980926514,2.44062495231628,2.48876929283142,2.49965834617615,2.54750967025757,2.55078101158142,2.53920912742615,2.54833984375,2.59296870231628,2.59765601158142,2.54833984375,2.49736332893372,2.45039033889771,2.43955063819885,2.45473623275757,2.441650390625,2.39794921875,2.35981440544128,2.32753920555115,2.32675743103027,2.31376957893372,2.29306650161743,2.24545884132385,2.20751929283142,2.15424799919128,2.15332055091858,2.13706040382385,2.12104511260986,2.15048837661743,2.23256826400757,2.27827143669128,2.31293964385986,2.34599614143372,2.35483431816101,2.33500981330872,2.30854511260986,2.29291987419128,2.26191425323486,2.25312519073486,2.27944326400757,2.32421875,2.33974599838257,2.29521512985229,2.23227572441101,2.20488262176514,2.21132826805115,2.20170903205872,2.18173861503601,2.18354511260986,2.21152377128601,2.26665043830872,2.31718730926514,2.36367201805115,2.42573261260986,2.52890610694885,2.57314419746399,2.64765620231628,2.86416053771973,2.90385723114014,2.97221684455872,3.05156230926514,3.11772465705872,3.18173837661743,3.23710942268372,3.27167963981628,3.36469769477844,3.45229482650757,3.64687538146973,3.70200181007385,3.735107421875,3.77695322036743,3.82856488227844,3.86958003044128,3.92993211746216,3.99267578125,4.03969764709473,4.06127977371216,4.23378944396973,4.31088829040527,4.31376934051514,4.22475576400757,4.09360361099243,3.67167949676514,3.28183579444885,3.07753920555115,2.65185546875,2.57304692268372,2.47778344154358,2.37675786018372,2.21035146713257,2.17944312095642,2.13403344154358,2.13095736503601,2.10410141944885,1.99858403205872,1.92724609375,1.82958996295929,1.79765629768372,1.78598630428314,1.730712890625,1.65986323356628,1.41992175579071,1.26904308795929,1.16298806667328,1.12143540382385,1.05195343494415,1.01508808135986,0.835741996765137,0.75102561712265,0.637304961681366,0.420508027076721,0.222558572888374,0.172558844089508,0.160986244678497,0.130273416638374,-0.0312502644956112,-0.0852051302790642,-0.17880867421627,-0.392676055431366,-0.509472906589508,-0.549121022224426,-0.762304902076721,-0.855468988418579,-1.01845705509186,-1.11777353286743,-1.18085908889771,-1.3203125,-1.36796879768372,-1.39902365207672,-1.36249995231628,-1.51406276226044,-1.55175757408142,-1.55957055091858,-1.64013695716858,-1.58671891689301,-1.39433574676514,-1.35410153865814,-1.22353529930115,-1.13652360439301,-1.03212893009186,-0.98632800579071,-0.937597870826721,-0.999609053134918,-1.03886699676514,-1.11523425579071,-1.16445302963257,-1.22626948356628,-1.31142592430115,-1.37626922130585,-1.48994123935699,-1.64384746551514,-1.69472658634186,-1.76171863079071,-1.81708991527557,-1.84990251064301,-2.01552724838257,-1.92294943332672,-1.89619112014771,-1.85751950740814,-1.83183598518372,-1.87060523033142,-1.92636716365814,-1.86718761920929,-1.73173797130585,-1.97158217430115,-2.19150400161743,-2.2802734375,-2.51992177963257,-2.58388662338257,-2.65693354606628,-2.63144493103027,-2.59687495231628,-2.50458979606628,-2.34433579444885,-1.91650366783142,-1.87851548194885,-1.82978546619415,-1.48769521713257,-1.48876953125,-1.56748068332672,-1.61396479606628,-1.52040994167328,-1.48212897777557,-1.43583965301514,-1.39384758472443,-1.32382810115814,-1.22919905185699,-1.14550769329071,-1.03984391689301,-0.960547089576721,-0.895117044448853,-0.827929735183716,-0.795215010643005,-0.737499833106995,-0.713671624660492,-0.705077886581421,-0.769628942012787,-0.693359136581421,-0.663476526737213,-0.67675769329071,-0.71044933795929,-0.724804759025574,-0.718749761581421,-0.669921696186066,-0.748534977436066,-0.765917956829071,-0.721875250339508,-0.680956900119781,-0.64765602350235,-0.626659989356995,-0.645410001277924,-0.680468738079071,-0.745410084724426,-0.750195443630219,-0.743359446525574,-0.779882609844208,-0.779687285423279,-0.836523532867432,-0.916406452655792,-0.970605432987213,-0.996874988079071,-1.03007781505585,-1.03916037082672,-1.03125011920929,-1.09980452060699,-1.11835920810699,-1.10302746295929,-1.18740236759186,-1.25078117847443,-1.34785175323486,-1.33066403865814,-1.35625004768372,-1.56738269329071,-1.71728515625,-1.69658184051514,-1.62949204444885,-1.50703144073486,-1.46640634536743,-1.51347661018372,-1.58886694908142,-1.67167937755585,-1.72480463981628,-1.73349583148956,-1.79882788658142,-1.79228544235229,-1.74580073356628,-1.84179675579071,-1.94628882408142,-2.05273413658142,-2.11386704444885,-2.15214872360229,-2.2275390625,-2.24111366271973,-2.26552724838257,-2.32041025161743,-2.37324213981628,-2.23046851158142,-2.19033241271973,-2.16806650161743,-2.26962924003601,-2.36552739143372,-2.40546894073486,-2.48124980926514,-2.52421903610229,-2.57343769073486,-2.67685532569885,-2.76249980926514,-3.14228510856628,-3.20478487014771,-3.13789057731628,-2.94443345069885,-2.73837900161743,-2.53515601158142,-2.47128891944885,-2.47119164466858,-2.49345684051514,-2.56005835533142,-2.59853506088257,-2.69960927963257,-2.75498056411743,-2.80957007408142,-2.64218735694885,-2.58349609375,-2.59540987014771,-2.51816368103027,-2.50205039978027,-2.41367197036743,-2.37607431411743,-2.38603520393372,-2.46503925323486,-2.52958989143372,-2.58964824676514,-2.66103482246399,-2.79199242591858,-2.80605459213257,-2.74658203125,-2.80888676643372,-2.87861323356628,-2.91650414466858,-2.93623042106628,-2.88613271713257,-2.86962890625,-2.79560542106628,-2.81318378448486,-2.86152386665344,-2.98584008216858,-3.05625033378601,-3.12558603286743,-3.19736361503601,-3.39023423194885,-3.50175762176514,-3.65371108055115,-3.71748018264771,-3.87646436691284,-3.94804692268372,-4.21640586853027,-4.404296875,-4.59208965301514,-4.71308612823486,-4.91240262985229,-4.93671894073486,-4.96660137176514,-5.05068349838257,-5.09755849838257,-5.08427762985229,-5.09375,-5.05439472198486,-5.12939453125,-5.166015625,-5.25087928771973,-5.56669950485229,-5.91718721389771,-6.18535137176514,-6.39374971389771,-6.78505849838257,-6.908203125,-7.0029296875,-7.02441358566284,-7.28837871551514,-7.39482402801514,-7.53330087661743,-7.59502029418945,-7.63427734375,-7.69209003448486,-7.74746036529541,-7.87177658081055,-7.97148466110229,-8.09218788146973,-8.40761661529541,-8.93056583404541,-9.23066425323486,-9.54062461853027,-9.70253944396973,-9.71904373168945,-9.68701171875,-9.7724609375,-9.84765625,-10.0757818222046,-10.22509765625,-10.4840812683105,-10.4899415969849,-10.5899419784546,-10.6716794967651,-10.8204097747803,-11.0547847747803,-11.0849618911743,-11.0684576034546,-11.1875,-11.3759775161743,-11.4039058685303,-11.3504877090454,-11.3098630905151,-11.2666015625,-11.2151365280151,-11.2525396347046,-11.3937501907349,-11.4972658157349,-11.6536130905151,-12.1000003814697,-12.4754886627197,-12.59130859375,-12.84423828125,-12.9662113189697,-12.9670896530151,-12.9566411972046,-12.7623052597046,-12.6446294784546,-12.6239261627197,-12.74853515625,-12.78271484375,-12.7901372909546,-12.8444337844849,-12.9072265625,-13.0329103469849,-13.1471681594849,-13.2730464935303,-13.3651361465454,-13.48046875,-13.5881834030151,-13.5587882995605,-13.5814456939697,-13.6150388717651,-13.66455078125,-13.7581052780151,-13.9910154342651,-14.0439453125,-14.1011724472046,-14.00341796875,-14.0306644439697,-14.65478515625,-14.9356451034546,-15.2538089752197,-15.5643548965454,-15.8419923782349,-15.8642587661743,-16.1865234375,-16.50439453125,-16.7635746002197,-17.0435562133789,-17.1781253814697,-17.3158206939697,-17.64208984375,-17.7039070129395,-17.8494129180908,-17.9200191497803,-17.9901351928711,-18.2523441314697,-18.6398448944092,-18.8459968566895,-19.27783203125,-19.4539070129395,-19.57177734375,-19.6491203308105,-19.7419929504395,-19.96826171875,-20.2060546875,-20.2926769256592,-20.42578125,-20.5694332122803,-20.7837886810303,-20.84619140625,-20.9060554504395,-21.0313472747803,-21.2378902435303,-21.5056648254395,-21.5968761444092,-21.61083984375,-21.9203128814697,-21.9990234375,-22.0843753814697,-22.24365234375,-22.3096675872803,-22.5806655883789,-22.6446285247803,-22.73583984375,-22.7882804870605,-22.8451156616211,-22.9470710754395,-22.9408206939697,-22.9410152435303,-22.9733390808105,-22.9670906066895,-22.9425773620605,-22.9025402069092,-22.85009765625,-22.7707023620605,-22.7233390808105,-22.7251949310303,-22.7476558685303,-22.7951183319092,-22.8288078308105,-22.8781242370605,-22.9385738372803,-22.9912109375,-22.998046875,-23.04638671875,-23.0666007995605,-23.1014652252197,-23.0573234558105,-23.0352535247803,-23.0459957122803,-23.0094738006592,-22.96630859375,-22.9105472564697,-22.9447269439697,-23.0110359191895,-23.0049800872803,-23.0554695129395,-23.10693359375,-23.2066402435303,-23.228515625,-23.2740230560303,-23.31640625,-23.3351573944092,-23.3814449310303,-23.5755863189697,-23.5997066497803,-23.6853504180908,-23.7584953308105,-23.8025398254395,-23.8047847747803,-23.7648448944092,-23.763671875,-23.7955074310303,-24.1103515625,-24.236328125,-24.4931640625,-24.7810554504395,-24.9529304504395,-24.9974613189697,-24.9999027252197,-25.0357418060303,-25.0654296875,-25.0681629180908,-25.1682624816895,-25.2367191314697,-25.41650390625,-25.4033203125,-25.3098640441895,-25.3063468933105,-25.2720699310303,-25.3107433319092,-25.4033203125,-25.4429683685303,-25.4474620819092,-25.4365234375,-25.3687496185303,-25.4915046691895,-25.5212879180908,-25.5501956939697,-25.5973625183105,-25.81591796875,-25.8443355560303,-25.8751945495605,-25.875,-25.9354496002197,-26.1793937683105,-26.2257823944092,-26.2269535064697,-26.2686519622803,-26.3483390808105,-26.4064445495605,-26.5191402435303,-26.6124019622803,-26.7029304504395,-26.8781242370605,-27.0580081939697,-27.1234378814697,-27.1959972381592,-27.2638683319092,-27.3727531433105,-27.5579109191895,-27.8251953125,-28.0755863189697,-28.2072257995605,-28.3101558685303,-28.4426746368408,-28.5752925872803,-28.6986312866211,-28.8711929321289,-29.0753917694092,-29.3631839752197,-29.8009757995605,-30.42578125,-30.8976554870605,-31.0680656433105,-31.2583980560303,-31.4803733825684,-31.7024421691895,-31.9002933502197,-31.9895496368408,-32.1148414611816,-32.0630874633789,-31.9775390625,-31.9134750366211,-31.8303718566895,-31.8150386810303,-31.8677749633789,-31.83203125,-31.7966785430908,-31.7746105194092,-31.5573253631592,-31.4769535064697,-31.3397464752197,-31.2667961120605,-31.1188468933105,-31.0813465118408,-31.09423828125,-31.0521469116211,-31.0054702758789,-30.9037094116211,-30.8133811950684,-30.7042007446289,-30.4259757995605,-30.4134769439697,-30.4568347930908,-30.4388675689697,-30.31689453125,-30.2536125183105,-30.23681640625,-30.3743152618408,-30.3686542510986,-30.2606449127197,-30.2110366821289,-30.1213874816895,-30.0599594116211,-30.0348625183105,-30.1410160064697,-30.2441387176514,-30.3642578125,-30.4119129180908,-30.4675788879395,-30.5912113189697,-30.7515640258789,-30.7027359008789,-30.6745128631592,-30.8468761444092,-30.9127941131592,-30.9775371551514,-31.0526351928711,-31.1044940948486,-31.2437515258789,-31.3388690948486,-31.3837909698486,-31.4899425506592,-31.5990238189697,-31.6949234008789,-31.8855457305908,-31.9675769805908,-32.0884780883789,-32.1677742004395,-32.2207984924316,-32.32373046875,-32.4397468566895,-32.8752937316895,-33.1377944946289,-33.2664070129395,-33.4019546508789,-33.7421875,-33.7373046875,-33.7098617553711,-33.67724609375,-33.6554718017578,-33.6228523254395,-33.5002899169922,-33.1708984375,-33.1086921691895,-33.0685539245605,-33.0103530883789,-32.9270515441895,-32.8210945129395,-32.7367172241211,-32.6800765991211,-32.6253929138184,-32.5811538696289,-32.5032234191895,-32.4030303955078,-32.2987327575684,-32.1863288879395,-32.0974578857422,-32.0568389892578,-32.0399436950684,-31.9945316314697,-31.9523429870605,-31.9281253814697,-31.9015636444092,-31.8551750183105,-31.7450180053711,-31.6227550506592,-31.5419902801514,-31.4851570129395,-31.3912105560303,-31.2790050506592,-31.31396484375,-31.2795886993408,-31.2255859375,-31.1841773986816,-31.1417007446289,-31.0929679870605,-31.0461902618408,-30.9644546508789,-30.8759765625,-30.8507823944092,-30.8581047058105,-30.8920879364014,-30.9249038696289,-30.9465827941895,-30.9871101379395,-31.0367183685303,-31.0696296691895,-31.0808582305908,-31.0791988372803,-31.0596675872803,-30.9918937683105,-30.8372077941895,-30.7776374816895,-30.7137699127197,-30.6284198760986,-30.4474601745605,-30.1869125366211,-30.1072273254395,-30.10107421875,-30.1099605560303,-30.1444358825684,-30.2648448944092,-30.2833995819092,-30.2806644439697,-30.2612323760986,-30.1877937316895,-30.1399402618408,-30.0338859558105,-29.9394550323486,-29.8565425872803,-29.7821273803711,-29.7162094116211,-29.5948238372803,-29.4178714752197,-29.2873039245605,-29.2030277252197,-29.1380863189697,-29.0924797058105,-28.9972648620605,-28.8524398803711,-28.7372074127197,-28.6517581939697,-28.5808601379395,-28.5246105194092,-28.4885730743408,-28.4728527069092,-28.4432621002197,-28.3996086120605,-28.3700180053711,-28.3541984558105,-28.3597660064697,-28.3866214752197,-28.3816413879395,-28.3449211120605,-28.3028316497803,-28.2554683685303,-28.2041015625,-28.1209945678711,-28.08935546875,-28.0377941131592,-27.9559574127197,-27.8988285064697,-27.8667984008789,-27.8359375,-27.7962875366211,-27.7677745819092,-27.7471694946289,-27.7085933685303,-27.6519527435303,-27.5992183685303,-27.5505847930908,-27.5325202941895,-27.544921875,-27.5265617370605,-27.4771499633789,-27.4541015625,-27.4573249816895,-27.4464855194092,-27.4235363006592,-27.3820323944092,-27.2896480560303,-27.2538089752197,-27.2747077941895,-27.2437496185303,-27.1611328125,-27.1595706939697,-27.12109375,-26.9783191680908,-26.8828125,-26.8046875,-26.7486324310303,-26.66650390625,-26.4431648254395,-26.3518543243408,-26.2881832122803,-26.22509765625,-26.0836925506592,-25.9595699310303,-25.7488269805908,-25.6688480377197,-25.6476554870605,-25.5779304504395,-25.5718746185303,-25.5452156066895,-25.5230484008789,-25.5295886993408,-25.5704097747803,-25.5718746185303,-25.5886726379395,-25.625,-25.6082992553711,-25.5764656066895,-25.5760746002197,-25.4327144622803,-25.22021484375,-25.1212882995605,-25.0652351379395,-24.8674812316895,-24.5281238555908,-24.3060550689697,-24.2012691497803,-24.1281242370605,-24.0658206939697,-24.0472660064697,-23.97119140625,-23.9017562866211,-23.8521480560303,-23.8125,-23.8290042877197,-23.8521480560303,-23.8884773254395,-23.9513683319092,-23.9745121002197,-23.9976558685303,-24.0174808502197,-24.0042972564697,-23.9910163879395,-23.9513683319092,-23.8653316497803,-23.7925777435303,-23.6867179870605,-23.6272468566895,-23.5809574127197,-23.5247058868408,-23.4619140625,-23.4156246185303,-23.359375,-23.3196277618408,-23.2501964569092,-23.154296875,-23.0947265625,-23.0252933502197,-22.9558601379395,-22.8864250183105,-22.8103523254395,-22.7409191131592,-22.6714839935303,-22.6218757629395,-22.5920906066895,-22.5126953125,-22.41015625,-22.3539066314697,-22.3076171875,-22.3076171875,-22.2811527252197,-22.2844715118408,-22.2811527252197,-22.2646484375,-22.2282218933105,-22.1786136627197,-22.0926761627197,-22.076171875,-22.1025390625,-22.1356449127197,-22.1819343566895,-22.23486328125,-22.2315425872803,-22.2613277435303,-22.2646484375,-22.2712879180908,-22.2448253631592,-22.2150402069092,-22.1952152252197,-22.2150402069092,-22.1984367370605,-22.1885738372803,-22.1819343566895,-22.1290035247803,-22.0992183685303,-22.1091785430908,-22.1422843933105,-22.1356449127197,-22.1091785430908,-22.04638671875,-22.0066413879395,-21.9669914245605,-21.9107418060303,-21.8511714935303,-21.79833984375,-21.751953125,-21.6991214752197,-21.6495132446289,-21.5965824127197,-21.5469722747803,-21.4940433502197,-21.41796875,-21.3550777435303,-21.30224609375,-21.2658195495605,-21.2062492370605,-21.1335945129395,-20.9979496002197,-20.9185543060303,-20.8970699310303,-20.873046875,-20.8416996002197,-20.8093757629395,-20.7763671875,-20.7474613189697,-20.6903324127197,-20.673828125,-20.6573257446289,-20.5944347381592,-20.5216789245605,-20.4654293060303,-20.4158191680908,-20.3861312866211,-20.3332042694092,-20.29345703125,-20.2373046875,-20.1646480560303,-20.1510753631592,-20.1103515625,-20.05517578125,-20.0407218933105,-20.0204105377197,-19.9795913696289,-19.8327140808105,-19.7445316314697,-19.6252937316895,-19.4242172241211,-19.2294921875,-19.0809574127197,-19.0535163879395,-19.0440425872803,-18.9673824310303,-18.9171867370605,-18.9142570495605,-18.7332019805908,-18.4750003814697,-18.279296875,-18.2464847564697,-18.2373046875,-18.2146492004395,-18.18310546875,-18.1222667694092,-17.9473628997803,-17.6717777252197,-17.5730476379395,-17.5121097564697,-17.5323238372803,-17.5128898620605,-17.3630847930908,-17.2821292877197,-17.2342758178711,-17.08056640625,-16.9107418060303,-16.70068359375,-16.6501941680908,-16.4908199310303,-16.4102535247803,-16.3399410247803,-16.2843742370605,-16.2835922241211,-16.3079090118408,-16.32666015625,-16.3282222747803,-16.3131847381592,-16.2959957122803,-16.28173828125,-16.2693367004395,-16.1321277618408,-15.9019527435303,-15.7386713027954,-15.4795904159546,-15.3182611465454,-15.1431646347046,-15.0983400344849,-15.0927734375,-15.0887689590454,-14.6185550689697,-14.5705080032349,-14.4187498092651,-14.3328123092651,-14.2630863189697,-14.1847648620605,-14.1324224472046,-14.1000003814697,-14.0192384719849,-13.9379892349243,-13.8624029159546,-13.7898435592651,-13.7453126907349,-13.6643552780151,-13.5614261627197,-13.48974609375,-13.49853515625,-13.5265617370605,-13.5412111282349,-13.5248041152954,-13.5255861282349,-13.4704103469849,-13.40625,-13.2419919967651,-13.1597652435303,-13.1336917877197,-13.1436519622803,-13.1324214935303,-13.0642576217651,-12.9943361282349,-12.9972658157349,-12.9537105560303,-12.8470697402954,-12.8055667877197,-12.7503900527954,-12.6691408157349,-12.6516599655151,-12.6662111282349,-12.7079105377197,-12.6800775527954,-12.6051759719849,-12.5466794967651,-12.5189456939697,-12.47802734375,-12.4694328308105,-12.5296878814697,-12.5050783157349,-12.4833011627197,-12.4397459030151,-12.326171875,-12.2509765625,-12.2039060592651,-12.146484375,-12.0593748092651,-12.0302734375,-12.0059566497803,-11.9751958847046,-11.9200201034546,-11.8473634719849,-11.8293943405151,-11.7412109375,-11.7350578308105,-11.7523431777954,-11.76513671875,-11.74951171875,-11.7100591659546,-11.6468753814697,-11.58056640625,-11.5110349655151,-11.4391593933105,-11.36474609375,-11.3150386810303,-11.2899417877197,-11.2462892532349,-11.1842765808105,-11.1103515625,-11.0248050689697,-10.8927736282349,-10.7147464752197,-10.5862302780151,-10.5074224472046,-10.4490232467651,-10.3922843933105,-10.2530279159546,-10.1467771530151,-10.0269536972046,-9.93554782867432,-9.87265682220459,-9.79023456573486,-9.71240234375,-9.71044921875,-9.73173809051514,-9.79746055603027,-9.80908203125,-9.76845741271973,-9.78544902801514,-9.82607364654541,-9.8681640625,-9.88613319396973,-9.89990234375,-9.97548866271973,-10.2689456939697,-10.3114252090454,-10.3172845840454,-10.35791015625,-10.3898439407349,-10.5059566497803,-10.5989255905151,-10.6831045150757,-10.68603515625,-10.6627931594849,-10.6744146347046,-10.703125,-10.7850580215454,-10.9331064224243,-10.9751949310303,-11.0187501907349,-11.0547847747803,-11.1091794967651,-11.11279296875,-11.1224613189697,-11.09765625,-11.0446290969849,-11.0111322402954,-10.9943361282349,-10.9556646347046,-10.9481439590454,-10.9517574310303,-10.9541015625,-10.9333982467651,-10.9298830032349,-10.982421875,-11.0476570129395,-11.0642576217651,-11.0666990280151,-11.05859375,-11.0248050689697,-10.9468746185303,-10.9768562316895,-11.01025390625,-10.8408203125,-10.5860347747803,-10.361328125,-10.1815423965454,-9.97177696228027,-9.82373046875,-9.76748085021973,-9.70458984375,-9.62050724029541,-9.54345703125,-9.48984336853027,-9.4375,-9.46367168426514,-9.47822284698486,-9.51796817779541,-9.57168006896973,-9.62529277801514,-9.66904258728027,-9.76572227478027,-9.81875038146973,-9.85244083404541,-9.96601581573486,-9.98857498168945,-10.0060548782349,-10.0055665969849,-10.0051765441895,-10.0037107467651,-9.91015625,-9.84404277801514,-9.77431678771973,-9.6884765625,-9.62919902801514,-9.556640625,-9.51015663146973,-9.4921875,-9.45205116271973,-9.41035175323486,-9.40742206573486,-9.41142654418945,-9.26572322845459,-9.1201171875,-8.9931640625,-8.8828125,-8.81406211853027,-8.71933555603027,-8.65400409698486,-8.56699180603027,-8.51416015625,-8.47929763793945,-8.458984375,-8.42705059051514,-8.39218807220459,-8.34580039978027,-8.29931640625,-8.24990177154541,-8.19189453125,-8.14541053771973,-8.07285118103027,-8.02060508728027,-7.98574209213257,-7.93642520904541,-7.89570283889771,-7.87539100646973,-7.82900428771973,-7.78251981735229,-7.75351572036743,-7.73896455764771,-7.65478515625,-7.61123085021973,-7.58505916595459,-7.55605459213257,-7.53574180603027,-7.50663995742798,-7.46025371551514,-7.41669940948486,-7.37890625,-7.36728525161743,-7.37314462661743,-7.34990262985229,-7.34121131896973,-7.33535146713257,-7.30927753448486,-7.26279306411743,-7.17275381088257,-7.13505840301514,-7.07988309860229,-6.97353506088257,-6.90576171875,-6.83378887176514,-6.67949199676514,-6.57470703125,-6.56406259536743,-6.52519512176514,-6.46581983566284,-6.40087890625,-6.34433603286743,-6.26064443588257,-6.15644502639771,-6.09843730926514,-6.02871131896973,-5.93339872360229,-5.78955030441284,-5.63486337661743,-5.58964824676514,-5.49521446228027,-5.30253934860229,-5.1982421875,-5.15771484375,-5.12275362014771,-5.09375,-5.06718778610229,-5.00957059860229,-4.90126943588257,-4.78603506088257,-4.74892616271973,-4.64228487014771,-4.57460975646973,-4.55332040786743,-4.50439500808716,-4.4873046875,-4.46972703933716,-4.43759775161743,-4.42431640625,-4.38818359375,-4.38720703125,-4.35048818588257,-4.29531240463257,-4.22958993911743,-4.17333984375,-4.15888690948486,-4.16865205764771,-4.16757822036743,-4.15009784698486,-4.19365262985229,-4.24697256088257,-4.30117177963257,-4.29814434051514,-4.28662109375,-4.33310556411743,-4.32724571228027,-4.30117177963257,-4.23593759536743,-4.20058631896973,-3.99658226966858,-3.65986299514771,-3.35458993911743,-3.01669907569885,-2.66767597198486,-2.31425786018372,-2.02421855926514,-1.77490234375,-1.62197244167328,-1.42167961597443,-1.24570298194885,-1.19492185115814,-1.15224623680115,-1.09160149097443,-1.06494116783142,-1.02958965301514,-0.998730778694153,-0.965722680091858,-0.945800960063934,-0.917187392711639,-0.877441346645355,-0.837793171405792,-0.795898497104645,-0.762793004512787,-0.720898330211639,-0.681250274181366,-0.639355599880219,-0.59960949420929,-0.553320229053497,-0.509277522563934,-0.482421875,-0.452539265155792,-0.38134753704071,-0.317480504512787,-0.196191638708115,-0.138867199420929,0.0185546651482582,0.189355686306953,0.447363138198853,0.578613460063934,0.585839629173279,0.589404582977295,0.598486542701721,0.607470452785492,0.626367211341858,0.649804592132568,0.665087699890137,0.65966808795929,0.680371344089508,0.700195074081421,0.716406404972076,0.729931592941284,0.698388576507568,0.666894793510437,0.651562452316284,0.655175566673279,0.652441382408142,0.627246081829071,0.625439584255219,0.629931569099426,0.635351777076721,0.642529189586639,0.658789157867432,0.686669886112213,0.712841987609863,0.753320336341858,0.801953017711639,0.86406272649765,0.898291230201721,0.963134586811066,1.01538097858429,1.05048835277557,1.06401360034943,1.04238271713257,1.038818359375,1.05859398841858,1.05947291851044,1.06577146053314,1.0732421875,1.05908203125,1.07661128044128,1.07841765880585,1.05952155590057,1.30878913402557,1.54389667510986,1.70873999595642,1.70517575740814,1.73486351966858,1.73945295810699,1.77075183391571,1.77324199676514,1.75791013240814,1.72578096389771,1.72124016284943,1.72128903865814,1.72138690948486,1.72148442268372,1.72158169746399,1.7216796875,1.71982443332672,1.77456033229828,1.84550797939301,1.90136730670929,1.95761740207672,1.98701190948486,1.95576167106628,1.860107421875,1.78803682327271,1.75253927707672,1.74848616123199,1.76059556007385,1.79008793830872,1.922119140625,2.03505849838257,2.072998046875,2.10790991783142,2.12114262580872,2.11669921875,2.08583974838257,2.03208017349243,1.84482443332672,1.70361316204071,1.61557602882385,1.40058624744415,1.21000957489014,1.18540036678314,1.17836904525757,1.22304654121399,0.992138862609863,0.821679949760437,0.767187595367432,0.75195324420929,0.763281226158142,0.785351514816284,0.809765815734863,0.863134562969208,0.937255859375,0.97802746295929,0.983447134494781,0.970361351966858,0.926073968410492,0.843408167362213,0.747509956359863,0.68798828125,0.691259801387787,0.790478348731995,0.868652164936066,0.93188488483429,1.02221691608429,1.10810554027557,1.15844738483429,1.21972632408142,1.25712895393372,1.25332045555115,1.29384756088257,1.36987328529358,1.43100559711456,1.45278310775757,1.44687485694885,1.45527327060699,1.52949190139771,1.61928701400757,1.7705078125,1.90444350242615,1.93159198760986,1.95302748680115,1.96699225902557,1.97670900821686,2.04814481735229,2.12050747871399,2.13603544235229,2.15556621551514,2.22250962257385,2.34042930603027,2.41191387176514,2.43393564224243,2.43403315544128,2.45244145393372,2.48188471794128,2.50239253044128,2.52509760856628,2.57607436180115,2.67187523841858,2.801513671875,3.0048828125,3.20468759536743,3.343994140625,3.49121117591858,3.58740234375,3.66269540786743,3.89980459213257,4.01181650161743,4.08930683135986,4.23227548599243,4.27602529525757,4.2744140625,4.23710966110229,4.15771436691284,4.13989305496216,4.13999032974243,4.14033222198486,4.12685585021973,4.10014677047729,4.06699180603027,3.97441411018372,3.92910170555115,3.9306640625,3.93256855010986,3.94082021713257,3.91503882408142,3.89370131492615,3.94287109375,3.94389629364014,3.92226552963257,3.75644516944885,3.68647456169128,3.59394526481628,3.59345722198486,3.67294955253601,3.94033217430115,4.01792001724243,4.03964900970459,4.04228544235229,4.08432626724243,4.13852500915527,4.15673828125,4.098388671875,4.12631845474243,4.197021484375,4.28779268264771,4.40224599838257,4.43300771713257,4.51689481735229,4.508056640625,4.50468778610229,4.51933574676514,4.53525352478027,4.57470703125,4.68681669235229,4.72919940948486,4.77412080764771,4.82709980010986,4.89252901077271,4.94936513900757,4.99458026885986,5.08198261260986,5.16435575485229,5.19155311584473,5.20205068588257,5.22114276885986,5.19248056411743,5.18808555603027,5.21015644073486,5.19931650161743,5.25795888900757,5.23881816864014,5.23881816864014,5.19423866271973,5.14399385452271,5.08286142349243,4.98984384536743,4.90751886367798,4.81269550323486,4.74052715301514,4.66665029525757,4.59765625,4.56962871551514,4.53325176239014,4.51118135452271,4.50458955764771,4.501708984375,4.48032236099243,4.47592782974243,4.41665029525757,4.381103515625,4.353515625,4.28764677047729,4.22675800323486,4.18818330764771,4.160400390625,4.02314472198486,3.97539091110229,3.96000957489014,3.93354487419128,3.88344717025757,3.81967735290527,3.75273442268372,3.69980454444885,3.66655278205872,3.58750009536743,3.462158203125,3.39858388900757,3.34921836853027,3.28310537338257,3.08784198760986,2.99047875404358,2.76542949676514,2.68999028205872,2.58837866783142,2.36293911933899,2.32705092430115,2.27412104606628,2.12163066864014,1.96240210533142,1.90063464641571,1.87417018413544,1.86147451400757,1.84233379364014,1.79521489143372,1.74628889560699,1.71801745891571,1.70000016689301,1.63242208957672,1.52734398841858,1.50820314884186,1.46459996700287,1.37602519989014,1.34365248680115,1.30458998680115,1.24887669086456,1.20361304283142,1.20122087001801,1.20849633216858,1.24750959873199,1.28105461597443,1.27915060520172,1.28466820716858,1.31225621700287,1.34775376319885,1.43867182731628,1.46625971794128,1.48173809051514,1.53022468090057,1.55668962001801,1.58754849433899,1.59194314479828,1.57431614398956,1.56328094005585,1.54785180091858,1.51699233055115,1.51435554027557,1.52026379108429,1.53994154930115,1.57431614398956,1.64843738079071,1.65058600902557,1.66728544235229,1.70000016689301,1.70478487014771,1.70410132408142,1.72607433795929,1.77382802963257,1.90893542766571,1.94013655185699,1.96347665786743,1.95922863483429,1.98159182071686,2.01396489143372,2.00581049919128,1.93647480010986,1.92124044895172,1.91640639305115,1.88125014305115,1.89218735694885,1.91430652141571,1.92265617847443,1.90722632408142,1.92724609375,1.94213843345642]}],[{"lng":[-59.4933090209961,-59.5218734741211,-59.611328125,-59.6427764892578,-59.6466827392578,-59.5916023254395,-59.4878883361816,-59.4276390075684,-59.4933090209961],"lat":[13.0819826126099,13.0622062683105,13.1021003723145,13.1502933502197,13.3031253814697,13.3176755905151,13.1968259811401,13.1527833938599,13.0819826126099]}],[{"lng":[115.026748657227,115.140037536621,115.168449401855,115.227928161621,115.266693115234,115.279289245605,115.326759338379,115.319236755371,115.290626525879,115.246681213379,115.170608520508,115.107032775879,115.051559448242,115.026748657227,115.028816223145,115.026748657227],"lat":[4.89970684051514,4.89975595474243,4.86669921875,4.75058603286743,4.63398408889771,4.45634746551514,4.38076210021973,4.36528253555298,4.35258817672729,4.34721708297729,4.36420917510986,4.39042949676514,4.58266592025757,4.69135713577271,4.82114219665527,4.89970684051514]}],[{"lng":[115.026748657227,114.944717407227,114.864547729492,114.784187316895,114.746688842773,114.759963989258,114.779296875,114.790138244629,114.818267822266,114.840232849121,114.8310546875,114.783500671387,114.810455322266,114.776168823242,114.724990844727,114.654098510742,114.608306884766,114.57177734375,114.51220703125,114.447074890137,114.416603088379,114.322944641113,114.289649963379,114.28759765625,114.261032104492,114.22412109375,114.168846130371,114.095123291016,114.063865661621,114.177932739258,114.299407958984,114.424415588379,114.544723510742,114.645896911621,114.740829467773,114.840629577637,114.995414733887,115.047653198242,115.047065734863,115.026748657227],"lat":[4.89970684051514,4.85624980926514,4.80175733566284,4.75483417510986,4.71806621551514,4.66650390625,4.55302762985229,4.46391582489014,4.42876005172729,4.39321327209473,4.3544921875,4.28076171875,4.26650381088257,4.16879892349243,4.09653329849243,4.03764677047729,4.02397489547729,4.049072265625,4.11357402801514,4.20356416702271,4.255859375,4.26279258728027,4.30419969558716,4.354736328125,4.41425800323486,4.47788047790527,4.52695322036743,4.56523418426514,4.59267568588257,4.59096717834473,4.607177734375,4.660400390625,4.72456073760986,4.79814481735229,4.88100576400757,4.94638633728027,5.02236366271973,5.016357421875,4.96245098114014,4.89970684051514]}],[{"lng":[91.6319351196289,91.6258850097656,91.59765625,91.5792999267578,91.5947265625,91.6581039428711,91.7430648803711,91.8512725830078,91.9509811401367,91.9908218383789,92.044921875,92.0834045410156,92.0311508178711,92.0025405883789,91.9922866821289,91.9986343383789,92.0308532714844,92.0681610107422,92.0734329223633,92.0497055053711,91.9983367919922,91.9437484741211,91.8986282348633,91.8420944213867,91.7537078857422,91.6715850830078,91.517578125,91.4558563232422,91.4267578125,91.2865219116211,91.1338882446289,90.8557662963867,90.7396469116211,90.6203155517578,90.5598678588867,90.4476547241211,90.3458938598633,90.2423858642578,90.2060546875,90.1229553222656,89.9431610107422,89.7638702392578,89.7109375,89.6099548339844,89.6061553955078,89.6091766357422,89.5861358642578,89.5451202392578,89.474609375,89.3841781616211,89.3321228027344,89.1482467651367,89.0409240722656,88.9191360473633,88.8576202392578,88.8351516723633,88.8135681152344,88.765625,88.73876953125,88.7603530883789,88.8816375732422,88.8914108276367,88.9475555419922,89.0254898071289,89.1023483276367,89.1604461669922,89.2726593017578,89.3958969116211,89.4806594848633,89.5369186401367,89.6527328491211,89.7498092651367,89.81689453125,89.8978500366211,89.9810562133789,90.1044921875,90.2208023071289,90.3482360839844,90.3629837036133,90.3521499633789,90.3337860107422,90.3331069946289,90.3527374267578,90.4773406982422,90.6300811767578,90.7157211303711,90.9066390991211,90.9625015258789,91.0208053588867,91.0777282714844,91.14990234375,91.2258758544922,91.2730484008789,91.3068389892578,91.3675765991211,91.4933624267578,91.6055679321289,91.6418914794922,91.62939453125,91.6319351196289],"lat":[27.7599620819092,27.7373046875,27.677001953125,27.6114253997803,27.5576667785645,27.4936027526855,27.4425277709961,27.4386234283447,27.4583015441895,27.4501953125,27.3646965026855,27.2906246185303,27.2143058776855,27.1473636627197,27.0999031066895,27.0792980194092,27.0408191680908,26.9751949310303,26.9148445129395,26.8748531341553,26.85498046875,26.86083984375,26.8600578308105,26.8529796600342,26.8307628631592,26.802001953125,26.8073253631592,26.8668937683105,26.8670902252197,26.7899417877197,26.8034172058105,26.7777347564697,26.7716789245605,26.7802238464355,26.7965831756592,26.8507823944092,26.8903312683105,26.8541507720947,26.8475093841553,26.7545909881592,26.7239265441895,26.7015628814697,26.7139167785645,26.7194328308105,26.7411117553711,26.76220703125,26.7789554595947,26.7962417602539,26.8034172058105,26.8265609741211,26.8486328125,26.816162109375,26.8650398254395,26.9322261810303,26.9614753723145,27.0655765533447,27.0990238189697,27.1342296600342,27.1755867004395,27.2181167602539,27.2974605560303,27.3160648345947,27.4640121459961,27.5178699493408,27.5925769805908,27.7112789154053,27.8331546783447,27.9581546783447,28.0599613189697,28.107421875,28.1583003997803,28.1881847381592,28.2562999725342,28.2941398620605,28.3111820220947,28.3020496368408,28.2777347564697,28.2439460754395,28.2165031433105,28.1681652069092,28.119140625,28.093994140625,28.0802249908447,28.0708503723145,28.0785636901855,28.0717296600342,28.0265140533447,27.9945812225342,27.9700679779053,27.9744625091553,28.0267581939697,28.0712413787842,28.078369140625,28.0640144348145,28.0216312408447,27.9817867279053,27.9517097473145,27.9232425689697,27.8008785247803,27.7599620819092]}],[{"lng":[25.2587890625,25.2390613555908,25.2240238189697,25.2422847747803,25.2824211120605,25.3402347564697,25.3843746185303,25.4367198944092,25.4892559051514,25.5583019256592,25.76123046875,25.78369140625,25.8119144439697,25.9393558502197,25.9591808319092,25.95068359375,26.0819339752197,26.1680660247803,26.2410144805908,26.474609375,26.67822265625,26.9167003631592,27.091796875,27.17822265625,27.2214851379395,27.2567386627197,27.2746105194092,27.28076171875,27.4689464569092,27.6246089935303,27.6792964935303,27.6996097564697,27.69482421875,27.6969738006592,27.7042980194092,27.6880855560303,27.6769523620605,27.66943359375,27.6934585571289,27.8441410064697,27.9074230194092,27.974609375,28.0140609741211,28.0456047058105,28.181640625,28.5320301055908,28.7477531433105,28.9193344116211,28.9907207489014,29.0255851745605,29.0373058319092,29.0158214569092,29.0233383178711,29.0423812866211,29.0714836120605,29.1068382263184,29.2372093200684,29.3152332305908,29.3648452758789,29.1298828125,29.0134754180908,28.9458026885986,28.8398456573486,28.6955070495605,28.5428695678711,28.3817386627197,28.2101573944092,28.0279312133789,27.93505859375,27.9313488006592,27.8905277252197,27.8125972747803,27.7685546875,27.75830078125,27.716796875,27.6438484191895,27.5926742553711,27.5631847381592,27.4987316131592,27.3992176055908,27.3133792877197,27.2412109375,27.185546875,27.1463871002197,27.0855464935303,26.9870109558105,26.9706058502197,26.8350582122803,26.7611331939697,26.6177730560303,26.5015621185303,26.4517593383789,26.3971691131592,26.130859375,26.0318374633789,25.912109375,25.8818359375,25.8524417877197,25.7699203491211,25.70263671875,25.6591796875,25.5837879180908,25.5181636810303,25.4436531066895,25.34619140625,25.21337890625,25.0924816131592,24.9989261627197,24.8692378997803,24.7481460571289,24.5558605194092,24.4001941680908,24.33056640625,24.1929683685303,24.1044921875,23.9695320129395,23.8937511444092,23.8234367370605,23.6707038879395,23.521484375,23.3892574310303,23.2660160064697,23.1487312316895,23.0575199127197,23.0220718383789,22.9512691497803,22.8788089752197,22.8189449310303,22.7960948944092,22.72900390625,22.6402339935303,22.5976543426514,22.5486335754395,22.4708995819092,22.2175769805908,22.0909175872803,22.0109367370605,21.91455078125,21.8332042694092,21.7882804870605,21.7380867004395,21.6947269439697,21.6462879180908,21.5013675689697,21.4549808502197,21.0709972381592,20.9539070129395,20.8708972930908,20.7398433685303,20.68505859375,20.6414051055908,20.6199226379395,20.6267585754395,20.6978511810303,20.7570323944092,20.8150386810303,20.8226566314697,20.81103515625,20.7994155883789,20.7931632995605,20.7107429504395,20.6092777252197,20.47314453125,20.4306659698486,20.34521484375,20.0286121368408,19.98046875,19.98046875,19.9801750183105,19.9798831939697,19.9795913696289,19.9792976379395,19.9789066314697,19.978515625,19.9782238006592,19.9779300689697,19.9776382446289,19.9773445129395,20.2053718566895,20.4875011444092,20.82275390625,20.9709968566895,20.9794921875,20.9792957305908,20.9787101745605,20.9781246185303,20.9774417877197,20.9768543243408,20.9761714935303,20.9755859375,20.9750003814697,20.9743156433105,20.97412109375,21.2325191497803,21.5296859741211,22.0114250183105,22.4600582122803,22.7527351379395,23.0999031066895,23.2193355560303,23.2515621185303,23.2986316680908,23.4597644805908,23.5601577758789,23.58056640625,23.5997066497803,23.6471691131592,23.7004890441895,23.8642578125,23.8983402252197,24.0026378631592,24.1292972564697,24.2439460754395,24.3589859008789,24.4122085571289,24.4749011993408,24.5305671691895,24.7921886444092,24.9090824127197,25.2160148620605,25.2587890625],"lat":[-17.7935543060303,-17.8430671691895,-17.9152336120605,-17.9690418243408,-18.0412101745605,-18.1044921875,-18.1419906616211,-18.2349605560303,-18.3512706756592,-18.4417972564697,-18.6492176055908,-18.7235355377197,-18.7970695495605,-18.9386711120605,-18.9856452941895,-19.0817394256592,-19.3699207305908,-19.5382823944092,-19.5693359375,-19.7486324310303,-19.8927745819092,-19.9901371002197,-20.05419921875,-20.1009769439697,-20.1457996368408,-20.2320308685303,-20.3818359375,-20.4787101745605,-20.4748058319092,-20.4835929870605,-20.5030269622803,-20.5306644439697,-20.5945320129395,-20.6897468566895,-20.7664070129395,-20.8483390808105,-20.94482421875,-21.0642566680908,-21.1110363006592,-21.2615242004395,-21.3590831756592,-21.5067367553711,-21.55419921875,-21.5730457305908,-21.58935546875,-21.6512699127197,-21.7076168060303,-21.7660160064697,-21.7814464569092,-21.796875,-21.8113288879395,-21.93994140625,-21.9812488555908,-22.0183601379395,-22.0474605560303,-22.0657215118408,-22.0794925689697,-22.15771484375,-22.1939449310303,-22.2132816314697,-22.2784194946289,-22.3951187133789,-22.4808597564697,-22.5354499816895,-22.5729484558105,-22.5933589935303,-22.6936511993408,-22.8737297058105,-22.9870109558105,-23.0335941314697,-23.0739269256592,-23.1080074310303,-23.14892578125,-23.19677734375,-23.2196292877197,-23.2176761627197,-23.2526359558105,-23.3246097564697,-23.3683586120605,-23.3835926055908,-23.4242191314697,-23.4900379180908,-23.5234375,-23.5244140625,-23.5779285430908,-23.70458984375,-23.7634754180908,-24.2408218383789,-24.2971687316895,-24.3955078125,-24.5132808685303,-24.5827140808105,-24.6135730743408,-24.6714839935303,-24.7024421691895,-24.7474613189697,-24.7879867553711,-24.9352531433105,-25.146484375,-25.3023433685303,-25.4378910064697,-25.6062488555908,-25.6627922058105,-25.7144527435303,-25.7399425506592,-25.7562503814697,-25.75146484375,-25.7540035247803,-25.8134765625,-25.8173828125,-25.7831058502197,-25.7498054504395,-25.7428703308105,-25.6329097747803,-25.6348628997803,-25.6260738372803,-25.6008796691895,-25.5446300506592,-25.4339847564697,-25.3444328308105,-25.2914066314697,-25.2666015625,-25.2886714935303,-25.3123054504395,-25.3241214752197,-25.3703117370605,-25.4579105377197,-25.5951175689697,-25.6791019439697,-25.8573246002197,-26.0711898803711,-26.1327152252197,-26.1784172058105,-26.2190437316895,-26.3888683319092,-26.5801753997803,-26.6358394622803,-26.6619148254395,-26.6783218383789,-26.7100601196289,-26.8068370819092,-26.8409175872803,-26.8541984558105,-26.8426761627197,-26.8328132629395,-26.8517589569092,-26.8210945129395,-26.8087902069092,-26.8488273620605,-26.8224620819092,-26.7421875,-26.5808601379395,-26.44384765625,-26.3401355743408,-26.26416015625,-26.1649417877197,-26.12060546875,-26.08056640625,-25.9990234375,-25.9156246185303,-25.7332038879395,-25.4912109375,-25.2212905883789,-25.1470699310303,-25.0298824310303,-24.8070316314697,-24.7767562866211,-24.751953125,-24.5357418060303,-24.2490234375,-23.96240234375,-23.67578125,-23.38916015625,-23.1025390625,-22.81591796875,-22.529296875,-22.2425785064697,-22.0001945495605,-22.0001945495605,-22.0001945495605,-22.0001945495605,-22.0001945495605,-21.9619140625,-21.7840824127197,-21.3760738372803,-20.9681625366211,-20.5602550506592,-20.15234375,-19.7443351745605,-19.33642578125,-18.9285144805908,-18.5205078125,-18.31884765625,-18.3068370819092,-18.265625,-18.1986331939697,-18.11572265625,-18.0671882629395,-18.0095691680908,-17.9997062683105,-18.0075206756592,-18.02734375,-18.2310543060303,-18.3864250183105,-18.4529285430908,-18.4599609375,-18.4494132995605,-18.42431640625,-18.26953125,-18.2292003631592,-18.1541023254395,-18.0775394439697,-18.0234375,-17.9782218933105,-17.9894523620605,-18.0285167694092,-18.052734375,-17.8646488189697,-17.8213882446289,-17.7875995635986,-17.7935543060303]}],[{"lng":[22.8600597381592,22.9307613372803,22.9643535614014,23.255859375,23.3123054504395,23.4566402435303,23.5450191497803,23.6462898254395,23.65625,23.6427726745605,23.6226558685303,23.5960941314697,23.46826171875,23.4627933502197,23.4890632629395,23.5280284881592,23.5518550872803,23.5373039245605,23.5832042694092,23.6792984008789,23.9219722747803,24.0481452941895,24.1473636627197,24.19482421875,24.2208995819092,24.1799793243408,24.2083988189697,24.2914047241211,24.37548828125,24.4560546875,24.7367191314697,24.8533191680908,25.0072269439697,25.2003917694092,25.2473640441895,25.2386722564697,25.1813488006592,25.1901378631592,25.2789058685303,25.3806629180908,25.5666027069092,25.8889636993408,26.0365238189697,26.0869140625,26.1693363189697,26.2845706939697,26.36181640625,26.30859375,26.3246097564697,26.3533210754395,26.4205074310303,26.4474601745605,26.5142574310303,26.5936527252197,26.7263660430908,26.7964859008789,26.9422855377197,27.0833988189697,27.1439456939697,27.1812496185303,27.21337890625,27.2291011810303,27.2325191497803,27.2567386627197,27.3324203491211,27.4033203125,27.1149406433105,27.0718746185303,27.0206050872803,26.8701171875,26.8220710754395,26.767578125,26.6326160430908,26.1735363006592,25.8199214935303,25.7138671875,25.5250988006592,25.4001941680908,25.2831058502197,25.2493171691895,25.0652351379395,24.9784183502197,24.7655258178711,24.4371089935303,24.31982421875,24.2277336120605,23.99169921875,23.8484363555908,23.6818351745605,23.5236320495605,23.4171867370605,23.3128910064697,23.2188472747803,23.1159172058105,22.9928722381592,22.8645496368408,22.7557621002197,22.7117195129395,22.6171875,22.5056648254395,22.4618167877197,22.44970703125,22.4221687316895,21.908203125,21.68701171875,21.53759765625,21.3501949310303,21.2683582305908,21.2297859191895,21.1255855560303,20.9557609558105,20.79296875,20.6474609375,20.55810546875,20.4865245819092,20.3935546875,20.2263679504395,20.0023441314697,19.8624992370605,19.8065433502197,19.68603515625,19.5009765625,19.3234386444092,19.0685539245605,18.8317375183105,18.6999015808105,18.5941410064697,18.5674800872803,18.6199226379395,18.6336917877197,18.5966796875,18.6103515625,18.5538101196289,18.4998054504395,18.4744129180908,18.3181648254395,18.2371082305908,18.1939449310303,18.1609363555908,18.111328125,18.072265625,18.0107421875,17.9479484558105,17.9071292877197,17.88037109375,17.806640625,17.5376949310303,17.4916019439697,17.43798828125,17.2984371185303,17.2247066497803,17.0025386810303,16.7643566131592,16.67333984375,16.6107425689697,16.5704116821289,16.5430660247803,16.4962902069092,16.4767570495605,16.4800777435303,16.4662113189697,16.4595699310303,16.4685535430908,16.4012699127197,16.3196296691895,16.2517566680908,16.1833992004395,16.1361331939697,16.1067390441895,16.0955085754395,16.1018543243408,16.08349609375,16.0821304321289,16.0592765808105,16.0824222564697,16.0634765625,16.0082035064697,15.9580078125,15.9287118911743,15.9048824310303,15.8493175506592,15.7749996185303,15.6765632629395,15.5808601379395,15.4583978652954,15.3601560592651,15.2398443222046,15.1287117004395,15.0621089935303,15.0348634719849,15.0673837661743,15.1154308319092,15.1358394622803,15.1369152069092,15.0875005722046,15.0635738372803,15.0227537155151,14.8935556411743,14.7704105377197,14.7312498092651,14.708984375,14.6617183685303,14.640625,14.6017580032349,14.5735349655151,14.56298828125,14.5680656433105,14.5843744277954,14.5835943222046,14.6168947219849,14.6168947219849,14.5988273620605,14.5772457122803,14.54248046875,14.5031242370605,14.4638662338257,14.4311513900757,14.4407224655151,14.4749994277954,14.5121097564697,14.5593748092651,14.6995115280151,14.7392578125,14.7640619277954,14.7803707122803,14.8619146347046,14.9827146530151,15.0345697402954,15.0863285064697,15.1571292877197,15.1858396530151,15.2067384719849,15.2458992004395,15.3791017532349,15.4800777435303,15.5892581939697,15.7012691497803,15.8450193405151,15.9576168060303,16.0306644439697,16.1911144256592,16.37890625,16.4043941497803,16.4593753814697,16.5232410430908,16.5453128814697,16.5501956939697,16.5889644622803,16.6683597564697,16.7847652435303,16.8181648254395,16.8903312683105,17.0719718933105,17.1179695129395,17.2469730377197,17.4021492004395,17.4364261627197,17.49267578125,17.6494140625,17.7608394622803,17.9401378631592,18.2388668060303,18.455078125,18.5641613006592,18.5916004180908,18.6335945129395,18.6662101745605,18.7474613189697,18.9064445495605,19.0108394622803,19.0398445129395,19.0423831939697,19.0638675689697,19.1086921691895,19.0641593933105,18.8860340118408,18.8885746002197,18.8783206939697,18.8882827758789,18.9562511444092,19.0478515625,19.1455078125,19.4002933502197,19.6174812316895,19.6683597564697,19.8376960754395,19.9535160064697,20.0726547241211,20.3420886993408,20.56689453125,20.6314449310303,20.65966796875,20.6681652069092,20.7732410430908,20.8910160064697,20.9841804504395,21.0094718933105,21.2638664245605,21.3524417877197,21.39599609375,21.4968738555908,21.5280265808105,21.5757808685303,21.6327152252197,21.6827144622803,21.7257823944092,21.7261714935303,21.70654296875,21.70654296875,21.7306632995605,21.771484375,21.96484375,22.0137691497803,22.0431632995605,22.09716796875,22.15625,22.1936531066895,22.2359371185303,22.3698234558105,22.4938488006592,22.6240234375,22.7301769256592,22.8173828125,22.8600597381592],"lat":[10.919677734375,10.7953128814697,10.7518072128296,10.4578123092651,10.3879404067993,10.1742677688599,10.0300779342651,9.82290077209473,9.71035194396973,9.61391639709473,9.34062480926514,9.26191425323486,9.11474609375,9.04848575592041,8.99331092834473,8.97060585021973,8.94321346282959,8.81581974029541,8.76582050323486,8.73247146606445,8.709716796875,8.69130802154541,8.66562461853027,8.65336894989014,8.60825252532959,8.46113300323486,8.369140625,8.29140663146973,8.25844764709473,8.23945331573486,8.19155216217041,8.13754844665527,7.96484422683716,7.80791044235229,7.72456073760986,7.64897441864014,7.55722713470459,7.51933574676514,7.427490234375,7.33339834213257,7.22871112823486,7.06494140625,6.95522451400757,6.87211942672729,6.78173828125,6.69902372360229,6.63530302047729,6.455322265625,6.39623975753784,6.34492206573486,6.274169921875,6.18300724029541,6.06923818588257,6.01752948760986,5.99824237823486,5.94550800323486,5.85493135452271,5.77685594558716,5.72294950485229,5.67514657974243,5.61879873275757,5.5625,5.44077157974243,5.28964853286743,5.18632793426514,5.10917997360229,5.19785118103027,5.19975614547729,5.18437480926514,5.07568359375,5.06240272521973,5.07192373275757,5.085205078125,5.17114210128784,5.25371074676514,5.28369140625,5.31210947036743,5.25590801239014,5.06269502639771,5.02456092834473,4.96743202209473,4.98295879364014,4.93007850646973,5.00996065139771,4.994140625,4.953857421875,4.86626005172729,4.81635713577271,4.77080059051514,4.70126962661743,4.66313505172729,4.66352510452271,4.70297861099243,4.73691415786743,4.74384784698486,4.723876953125,4.64667987823486,4.59174776077271,4.445556640625,4.20766639709473,4.15976572036743,4.15512704849243,4.13496065139771,4.25390625,4.28139686584473,4.24482440948486,4.31137657165527,4.32309579849243,4.30219745635986,4.33217811584473,4.41313457489014,4.44731473922729,4.43564414978027,4.46269512176514,4.54155302047729,4.68618154525757,4.82963848114014,4.94472646713257,5.03129863739014,5.08930683135986,5.12138700485229,5.12749052047729,5.07075214385986,4.89140605926514,4.5234375,4.38261747360229,4.34624004364014,4.257568359375,4.11660146713257,3.95429706573486,3.6787109375,3.47841811180115,3.51020550727844,3.60410165786743,3.62299776077271,3.58081030845642,3.54267597198486,3.50541996955872,3.49980425834656,3.55107450485229,3.56030297279358,3.55083036422729,3.5517578125,3.55839848518372,3.55385708808899,3.58417987823486,3.66162085533142,3.68730497360229,3.68461942672729,3.6171875,3.59843730926514,3.55668926239014,3.53627943992615,3.53520512580872,3.50537133216858,3.46308588981628,3.36953091621399,3.20883798599243,3.16513705253601,3.10097646713257,2.99321269989014,2.89653325080872,2.83173847198486,2.70102572441101,2.54277348518372,2.40678715705872,2.27006840705872,2.36376953125,2.47348618507385,2.59921908378601,2.63266611099243,2.67001938819885,2.67817378044128,2.77299833297729,2.839111328125,2.90859389305115,2.97666001319885,3.02871108055115,3.07578134536743,3.09584951400757,3.10307645797729,3.12719750404358,3.22968745231628,3.32929682731628,3.45683598518372,3.56713843345642,3.70214867591858,3.826904296875,3.94721674919128,4.016357421875,4.02294921875,4.02446317672729,4.03691434860229,4.06914091110229,4.16396522521973,4.28486347198486,4.35854482650757,4.47187471389771,4.55810546875,4.60239219665527,4.66557645797729,5.06552743911743,5.17905235290527,5.22880840301514,5.251708984375,5.27993154525757,5.35107421875,5.41474628448486,5.43964910507202,5.49550771713257,5.86513662338257,5.88398408889771,5.916015625,5.91357421875,5.91689443588257,5.970703125,6.03872108459473,6.08671855926514,6.12680673599243,6.16191387176514,6.19121122360229,6.250244140625,6.27978515625,6.31635713577271,6.36572265625,6.55571269989014,6.74531269073486,6.78442335128784,6.90991258621216,7.06357479095459,7.13491201400757,7.20615196228027,7.26357412338257,7.358154296875,7.52377939224243,7.51503944396973,7.48842811584473,7.47529268264771,7.50756883621216,7.57211923599243,7.62343692779541,7.68354511260986,7.77236318588257,7.81899404525757,7.85996150970459,7.865478515625,7.83588838577271,7.74336004257202,7.65175771713257,7.55097627639771,7.55732440948486,7.63369178771973,7.68081045150757,7.70190382003784,7.81298828125,7.88457059860229,7.89091825485229,7.90981483459473,7.98359394073486,7.97382736206055,7.98544883728027,8.02036190032959,8.03203105926514,8.0458984375,8.060791015625,8.167724609375,8.19770526885986,8.24379825592041,8.40507793426514,8.54121017456055,8.5869140625,8.59028339385986,8.59882831573486,8.65615272521973,8.71543025970459,8.83603572845459,8.85249042510986,8.87319374084473,8.88974666595459,8.93886661529541,8.99501895904541,9.01596641540527,9.01162052154541,9.02358436584473,9.02089786529541,9.04936504364014,9.07514667510986,9.13320350646973,9.12709999084473,9.27495098114014,9.30136680603027,9.32451152801514,9.34711933135986,9.40566444396973,9.52714824676514,9.63627910614014,9.71323204040527,9.974609375,9.96914100646973,10.0013675689697,10.1756830215454,10.2078123092651,10.2185544967651,10.23828125,10.2898435592651,10.3665533065796,10.4616203308105,10.5378904342651,10.5748043060303,10.6086912155151,10.642822265625,10.7366695404053,10.7820320129395,10.8227052688599,10.830078125,10.8260746002197,10.8513669967651,10.8941402435303,10.9515132904053,10.9962396621704,10.9773435592651,10.9540529251099,10.9271974563599,10.919677734375]}],[{"lng":[-59.78759765625,-59.9222679138184,-60.0377464294434,-60.1142578125,-60.1174812316895,-59.93603515625,-59.8663558959961,-59.7271499633789,-59.78759765625],"lat":[43.9396018981934,43.9039077758789,43.9066429138184,43.9391136169434,43.953369140625,43.9396018981934,43.9471702575684,44.0028305053711,43.9396018981934]}],[{"lng":[-66.2737731933594,-66.3241195678711,-66.3119125366211,-66.25048828125,-66.2103500366211,-66.2737731933594],"lat":[44.2922859191895,44.25732421875,44.2916030883789,44.3790054321289,44.3920440673828,44.2922859191895]}],[{"lng":[-66.7624969482422,-66.8970718383789,-66.8447265625,-66.8021469116211,-66.7454071044922,-66.7533721923828,-66.7624969482422],"lat":[44.6817855834961,44.62890625,44.763916015625,44.8053703308105,44.7914085388184,44.7098121643066,44.6817855834961]}],[{"lng":[-60.9615707397461,-61.0028800964355,-61.0125007629395,-61.076171875,-61.0817413330078,-61.0259780883789,-60.9124526977539,-60.9530258178711,-60.9615707397461],"lat":[45.4899406433105,45.4817390441895,45.4960441589355,45.5373039245605,45.5578117370605,45.5773429870605,45.5672874450684,45.5155258178711,45.4899406433105]}],[{"lng":[-73.6953125,-73.81591796875,-73.8577194213867,-73.7246551513672,-73.5723648071289,-73.6953125],"lat":[45.5854988098145,45.5648918151855,45.5735816955566,45.6718254089355,45.6944808959961,45.5854988098145]}],[{"lng":[-73.5665054321289,-73.6435546875,-73.7753372192383,-73.9202117919922,-73.9605484008789,-73.8529281616211,-73.6874465942383,-73.5224609375,-73.47607421875,-73.5388641357422,-73.5516586303711,-73.5665054321289],"lat":[45.4690933227539,45.4491195678711,45.4676284790039,45.4419403076172,45.44140625,45.5157203674316,45.5614242553711,45.701171875,45.7047386169434,45.5464363098145,45.4898452758789,45.4690933227539]}],[{"lng":[-71.0257339477539,-71.1166534423828,-71.094970703125,-70.9708480834961,-70.879638671875,-70.8257827758789,-70.9134750366211,-71.0257339477539],"lat":[46.8729476928711,46.8648452758789,46.8995628356934,46.96142578125,46.99609375,46.995361328125,46.9195289611816,46.8729476928711]}],[{"lng":[-61.1051750183105,-61.0713386535645,-60.9365692138672,-60.8652381896973,-60.8684043884277,-60.9842796325684,-61.0375480651855,-60.9706039428711,-60.9715347290039,-61.0519523620605,-61.0920867919922,-61.0590362548828,-60.9303703308105,-60.8775863647461,-60.8060989379883,-60.7378883361816,-60.6990699768066,-60.4723625183105,-60.4605941772461,-60.7048835754395,-60.7332992553711,-60.5731925964355,-60.5857467651367,-60.5049285888672,-60.4308586120605,-60.3765144348145,-60.2979469299316,-60.2438468933105,-60.2264633178711,-60.0924835205078,-59.96142578125,-59.8650360107422,-59.8499984741211,-59.8487815856934,-59.8809089660645,-59.9340362548828,-59.8280258178711,-59.8421897888184,-60.0158195495605,-60.1144561767578,-60.205078125,-60.3860855102539,-60.6729469299316,-60.7637176513672,-60.87158203125,-60.9786109924316,-61.0836944580078,-61.1864242553711,-61.236328125,-61.2836875915527,-61.3234405517578,-61.4083518981934,-61.4498062133789,-61.4953155517578,-61.4806175231934,-61.4086380004883,-61.3021965026855,-61.2405281066895,-60.9825172424316,-60.9319801330566,-60.8701667785645,-60.7596702575684,-60.6166534423828,-60.571044921875,-60.4890632629395,-60.4081993103027,-60.4313468933105,-60.4254417419434,-60.3317375183105,-60.3329124450684,-60.3840827941895,-60.4824256896973,-60.5077171325684,-60.4945297241211,-60.534423828125,-60.5768585205078,-60.7448272705078,-60.83056640625,-60.9122085571289,-61.1051750183105],"lat":[45.9447250366211,45.9371109008789,45.9855461120605,45.9834976196289,45.9486312866211,45.9106941223145,45.8822250366211,45.8558120727539,45.8379859924316,45.7950172424316,45.7483901977539,45.703369140625,45.7477073669434,45.7480964660645,45.7380867004395,45.7514190673828,45.7733383178711,45.946533203125,45.9687004089355,45.9329109191895,45.9565925598145,46.0614280700684,46.1166534423828,46.203857421875,46.255615234375,46.2845687866211,46.3112297058105,46.2701148986816,46.195556640625,46.2060089111328,46.1909675598145,46.1595230102539,46.1414070129395,46.1129379272461,46.0616226196289,46.0194358825684,45.9651374816895,45.9415512084961,45.8804664611816,45.8188972473145,45.7430152893066,45.6546363830566,45.5908203125,45.5908203125,45.6106910705566,45.6061515808105,45.5823745727539,45.5850105285645,45.572509765625,45.5738754272461,45.5984878540039,45.6690940856934,45.7162132263184,45.9414558410645,46.0597648620605,46.1703605651855,46.2438468933105,46.3025398254395,46.6504898071289,46.7294425964355,46.7967796325684,46.8633804321289,46.9757804870605,46.9988288879395,47.0097160339355,47.0035133361816,46.9629402160645,46.9231948852539,46.767822265625,46.7370109558105,46.6133308410645,46.4135246276855,46.3033676147461,46.270263671875,46.2145500183105,46.1721687316895,46.0926742553711,46.0741195678711,46.0445785522461,45.9447250366211]}],[{"lng":[-63.8112831115723,-63.7842254638672,-63.7370109558105,-63.6814460754395,-63.5343704223633,-63.4564933776855,-63.4131355285645,-63.36865234375,-63.2860794067383,-63.12939453125,-62.9640159606934,-62.7120094299316,-62.6819305419922,-62.4230918884277,-62.16357421875,-62.0742683410645,-62.0408706665039,-62.0237312316895,-62.1717758178711,-62.3199691772461,-62.5260734558105,-62.5519981384277,-62.5392074584961,-62.5432624816895,-62.5025901794434,-62.4780769348145,-62.5313453674316,-62.7431640625,-62.8048820495605,-62.8783645629883,-62.9035148620605,-62.99462890625,-63.0220718383789,-62.8945350646973,-62.95263671875,-63.0150375366211,-63.0563468933105,-63.0529327392578,-62.9951133728027,-62.9784698486328,-63.0568885803223,-63.1169929504395,-63.1947288513184,-63.2708015441895,-63.1527824401855,-63.2134742736816,-63.2766151428223,-63.5688972473145,-63.6410179138184,-63.7317848205566,-63.800537109375,-63.7632293701172,-63.7505340576172,-63.7586402893066,-63.8605461120605,-64.0197219848633,-64.11083984375,-64.1065444946289,-64.1360397338867,-64.2356414794922,-64.3880386352539,-64.4031219482422,-64.3545913696289,-64.2799835205078,-64.2232437133789,-64.1569366455078,-63.9935531616211,-63.9972686767578,-63.9814949035645,-64.087890625,-63.9030227661133,-63.8792953491211,-63.8637237548828,-63.8756370544434,-63.9055671691895,-63.8335952758789,-63.8112831115723],"lat":[46.4687004089355,46.4546394348145,46.4805183410645,46.5619163513184,46.5406265258789,46.50390625,46.5120086669922,46.5082550048828,46.460205078125,46.4222183227539,46.427734375,46.4502944946289,46.4594230651855,46.478271484375,46.4872055053711,46.4657211303711,46.4457015991211,46.4215812683105,46.3553695678711,46.2783203125,46.202880859375,46.1659164428711,46.0979499816895,46.0286636352539,46.02294921875,45.9997062683105,45.977294921875,45.9668922424316,45.9731941223145,46.0013694763184,46.0682640075684,46.0584487915039,46.0666007995605,46.1235847473145,46.1951637268066,46.18994140625,46.2239265441895,46.2698249816895,46.2921409606934,46.3163566589355,46.2953605651855,46.2528305053711,46.2367210388184,46.2000007629395,46.1883316040039,46.1598625183105,46.1532707214355,46.209228515625,46.23046875,46.2890625,46.3673324584961,46.370361328125,46.3843765258789,46.3976097106934,46.4081535339355,46.4048347473145,46.4254417419434,46.5621109008789,46.5997085571289,46.6314468383789,46.640869140625,46.6916007995605,46.7692375183105,46.8357391357422,46.9012680053711,46.9548835754395,47.0615692138672,46.9817390441895,46.9129867553711,46.7754402160645,46.6391105651855,46.6089859008789,46.5723609924316,46.5386734008789,46.5087890625,46.493896484375,46.4687004089355]}],[{"lng":[-61.9141159057617,-61.8787117004395,-61.8154792785645,-61.7725601196289,-61.8337440490723,-61.9508323669434,-62.00830078125,-61.9247093200684,-61.8272972106934,-61.6278343200684,-61.5480499267578,-61.4740715026855,-61.3955039978027,-61.4755325317383,-61.5822296142578,-61.68408203125,-61.7508811950684,-61.8312492370605,-61.8866233825684,-61.9141159057617],"lat":[47.2845230102539,47.2655258178711,47.267578125,47.2598152160645,47.2226066589355,47.218994140625,47.2342796325684,47.4251441955566,47.4690895080566,47.5938491821289,47.6317863464355,47.6467781066895,47.6376457214355,47.56396484375,47.5600090026855,47.4987297058105,47.4308128356934,47.3920402526855,47.3446273803711,47.2845230102539]}],[{"lng":[-54.2271499633789,-54.2760734558105,-54.3259773254395,-54.3201141357422,-54.2586898803711,-54.2273902893066,-54.2262687683105,-54.2149391174316,-54.1683578491211,-54.128173828125,-54.1475563049316,-54.2271499633789],"lat":[47.4413566589355,47.4065437316895,47.4081039428711,47.4385261535645,47.4976577758789,47.5399932861328,47.5655250549316,47.5851097106934,47.6070823669434,47.6468276977539,47.5730972290039,47.4413566589355]}],[{"lng":[-64.5085983276367,-64.5338897705078,-64.6212844848633,-64.6646423339844,-64.6845703125,-64.6604995727539,-64.6632766723633,-64.5911102294922,-64.5648422241211,-64.5085983276367],"lat":[47.88671875,47.8137702941895,47.7519035339355,47.7476081848145,47.7536125183105,47.7935562133789,47.863037109375,47.8724594116211,47.8662605285645,47.88671875]}],[{"lng":[-64.47607421875,-64.59130859375,-64.5407257080078,-64.5195770263672,-64.5001983642578,-64.4812469482422,-64.47607421875],"lat":[47.9588851928711,47.9072265625,47.9849624633789,48.0050811767578,48.0137672424316,48.0069351196289,47.9588851928711]}],[{"lng":[-123.435394287109,-123.477249145508,-123.499610900879,-123.517524719238,-123.582328796387,-123.554695129395,-123.467864990234,-123.487548828125,-123.422744750977,-123.406791687012,-123.435394287109],"lat":[48.7544441223145,48.728759765625,48.732177734375,48.7501487731934,48.92578125,48.9220695495605,48.8673858642578,48.845703125,48.7933578491211,48.7560539245605,48.7544441223145]}],[{"lng":[-123.372367858887,-123.384811401367,-123.541015625,-123.645599365234,-123.689262390137,-123.482322692871,-123.3779296875,-123.372367858887],"lat":[48.8861312866211,48.8751945495605,48.9459495544434,49.0386238098145,49.0951156616211,48.9546890258789,48.9082527160645,48.8861312866211]}],[{"lng":[-74.7088928222656,-74.5663070678711,-74.26904296875,-74.0498046875,-73.7646484375,-73.55810546875,-73.518798828125,-73.4841842651367,-73.4652862548828,-73.3688507080078,-73.2530288696289,-73.1595687866211,-72.9899444580078,-72.7334518432617,-72.4961929321289,-72.3661651611328,-72.2401351928711,-72.1872024536133,-72.1092758178711,-71.9009323120117,-71.6712875366211,-71.439208984375,-71.2611770629883,-71.1520004272461,-70.9932632446289,-70.5194854736328,-70.3880844116211,-70.2177734375,-70.069580078125,-70.0171356201172,-69.80224609375,-69.5810546875,-69.4710388183594,-69.3063430786133,-68.987060546875,-68.815673828125,-68.7460479736328,-68.552001953125,-68.4314956665039,-68.2381896972656,-67.8890151977539,-67.5608901977539,-67.1174850463867,-66.5980911254883,-66.1781768798828,-65.8828125,-65.5233917236328,-65.3961410522461,-64.8363265991211,-64.5677261352539,-64.2618179321289,-64.2162094116211,-64.2087936401367,-64.3707504272461,-64.5137176513672,-64.41455078125,-64.24609375,-64.2537612915039,-64.3488311767578,-64.6331481933594,-64.7057647705078,-64.7645034790039,-64.8220672607422,-64.9599151611328,-65.0360870361328,-65.2594223022461,-65.3600158691406,-65.4758834838867,-65.7546920776367,-65.9267044067383,-66.0125503540039,-66.0831069946289,-66.2486343383789,-66.3242645263672,-66.448974609375,-66.7043914794922,-66.6315383911133,-66.4288101196289,-66.359619140625,-66.210205078125,-65.8494186401367,-65.7557144165039,-65.6664581298828,-65.6072235107422,-65.4834976196289,-65.3439483642578,-65.2281799316406,-65.0016632080078,-65.04638671875,-64.8739776611328,-64.7032241821289,-64.7663040161133,-64.8521499633789,-64.9122085571289,-65.0861282348633,-65.3188934326172,-65.2602005004883,-65.1920928955078,-65.0423812866211,-64.9424285888672,-64.8313980102539,-64.8658676147461,-64.90576171875,-64.8825225830078,-64.8166961669922,-64.7258758544922,-64.6894989013672,-64.641357421875,-64.6478500366211,-64.5568389892578,-64.54150390625,-64.2118148803711,-64.14501953125,-63.9159202575684,-63.8726577758789,-63.8319358825684,-64.056396484375,-63.8747062683105,-63.702880859375,-63.5676765441895,-63.5092315673828,-63.3580093383789,-63.3159141540527,-63.2927742004395,-63.2168922424316,-63.10791015625,-62.9107894897461,-62.7006874084473,-62.7183609008789,-62.7500953674316,-62.5856437683105,-62.4830551147461,-62.447265625,-62.4218788146973,-62.2177238464355,-61.9555206298828,-61.9235801696777,-61.91162109375,-61.8772468566895,-61.7765121459961,-61.6568832397461,-61.4922828674316,-61.4276351928711,-61.3504867553711,-61.2770500183105,-61.2819786071777,-61.3761215209961,-61.4609870910645,-61.1067390441895,-61.0707969665527,-61.0315437316895,-61.0676765441895,-61.10107421875,-61.1653327941895,-61.2837905883789,-61.3872528076172,-61.4979019165039,-61.5687522888184,-61.6474075317383,-61.7192344665527,-61.7938957214355,-62.0268058776855,-62.2649879455566,-62.5140151977539,-62.76806640625,-63.0318336486816,-63.0892066955566,-63.1557121276855,-63.3062973022461,-63.3808097839355,-63.4568367004395,-63.5443382263184,-63.60400390625,-63.5582504272461,-63.5448226928711,-63.5676765441895,-63.6097640991211,-63.7611351013184,-63.8206520080566,-63.8913116455078,-63.9236793518066,-63.9997062683105,-64.044921875,-64.0446243286133,-64.1008834838867,-64.1669921875,-64.2860794067383,-64.3385238647461,-64.312255859375,-64.2756881713867,-64.3345718383789,-64.3782196044922,-64.4687957763672,-64.5784683227539,-64.6916046142578,-64.8256301879883,-64.8623504638672,-65.0868225097656,-65.1720733642578,-65.2349090576172,-65.32958984375,-65.3442916870117,-65.3860855102539,-65.4285125732422,-65.450439453125,-65.481689453125,-65.564453125,-65.6619110107422,-65.7381286621094,-65.8353042602539,-65.8869171142578,-65.9784164428711,-66.0021438598633,-66.0376434326172,-66.125732421875,-66.1925277709961,-66.1930618286133,-66.0995559692383,-65.8680114746094,-65.9419479370117,-66.1463851928711,-66.1252975463867,-66.0906219482422,-66.0216827392578,-65.9170455932617,-65.7776870727539,-65.6818389892578,-65.6157684326172,-65.52001953125,-65.5022430419922,-65.587158203125,-65.7282180786133,-65.6920394897461,-65.65673828125,-64.9029312133789,-64.7512741088867,-64.4488220214844,-64.4068908691406,-64.4481430053711,-64.3307571411133,-64.3404312133789,-64.3588409423828,-64.36572265625,-64.354248046875,-64.2350158691406,-64.135498046875,-64.1827163696289,-64.0931625366211,-63.7483406066895,-63.4602508544922,-63.3680152893066,-63.6144561767578,-63.9064445495605,-64.087158203125,-64.33642578125,-64.6001968383789,-64.6811065673828,-64.7466812133789,-64.8319320678711,-64.8731460571289,-64.9128875732422,-64.827392578125,-64.56005859375,-64.3970718383789,-64.3511276245117,-64.3146438598633,-64.404052734375,-64.4822235107422,-64.5363235473633,-64.6327133178711,-64.6420440673828,-64.5936508178711,-64.7785186767578,-64.8979034423828,-65.0572814941406,-65.2823257446289,-65.5450210571289,-65.8844680786133,-65.9556121826172,-66.1097640991211,-66.066650390625,-66.0265655517578,-66.0648956298828,-66.0897445678711,-66.1827163696289,-66.1073226928711,-66.1437530517578,-66.2515640258789,-66.3519515991211,-66.4398422241211,-66.5109405517578,-66.7071762084961,-66.8724594116211,-66.908203125,-66.918701171875,-66.9765625,-67.0840835571289,-67.1248550415039,-67.1709976196289,-67.2132339477539,-67.2496109008789,-67.2707061767578,-67.2906723022461,-67.3152847290039,-67.366943359375,-67.3998107910156,-67.4525833129883,-67.4725570678711,-67.4619598388672,-67.4385299682617,-67.4279251098633,-67.4537582397461,-67.4772491455078,-67.49365234375,-67.48779296875,-67.4549331665039,-67.4244155883789,-67.4138641357422,-67.4326705932617,-67.4866180419922,-67.5312042236328,-67.5957489013672,-67.6579055786133,-67.698974609375,-67.7306594848633,-67.7553176879883,-67.78466796875,-67.80224609375,-67.7999038696289,-67.7916946411133,-67.7752914428711,-67.7741241455078,-67.7811508178711,-67.7822799682617,-67.7776336669922,-67.7670364379883,-67.78466796875,-67.7864685058594,-67.7899398803711,-67.7925338745117,-67.7957992553711,-67.7977066040039,-67.8003463745117,-67.8028335571289,-67.8067855834961,-67.9348678588867,-68.0967712402344,-68.2354965209961,-68.3108901977539,-68.3580093383789,-68.3768997192383,-68.4803695678711,-68.6685562133789,-68.8287124633789,-68.8874053955078,-68.9372100830078,-69.0031280517578,-69.048583984375,-69.0642547607422,-69.0501937866211,-69.1462860107422,-69.2428741455078,-69.3021469116211,-69.35888671875,-69.4714889526367,-69.6297836303711,-69.717529296875,-69.8717269897461,-70.0077209472656,-70.0382385253906,-70.0671844482422,-70.1796875,-70.248291015625,-70.2789001464844,-70.3044891357422,-70.3064422607422,-70.2871627807617,-70.2962417602539,-70.3334503173828,-70.4078674316406,-70.4210968017578,-70.4666061401367,-70.5963821411133,-70.7022476196289,-70.7074203491211,-70.692138671875,-70.6897964477539,-70.7109375,-70.7533187866211,-70.7991714477539,-70.8377914428711,-70.8368148803711,-70.8650360107422,-70.8979949951172,-70.9262237548828,-70.9601516723633,-70.9999084472656,-71.0602569580078,-71.1346664428711,-71.2016143798828,-71.3272933959961,-71.4190368652344,-71.5175323486328,-71.9336395263672,-72.3497543334961,-72.7659225463867,-73.1820373535156,-73.59814453125,-74.0142593383789,-74.4303741455078,-74.6632308959961,-74.7088928222656],"lat":[45.0038566589355,45.0415992736816,45.1882820129395,45.2414093017578,45.3954582214355,45.4250984191895,45.458984375,45.5867691040039,45.63232421875,45.7578125,45.8636703491211,46.0100593566895,46.1036148071289,46.1818351745605,46.3526878356934,46.40478515625,46.4420890808105,46.5115203857422,46.5512199401855,46.6319351196289,46.6537590026855,46.7207527160645,46.7562522888184,46.819091796875,46.8521995544434,47.0325202941895,47.116943359375,47.2898445129395,47.3777847290039,47.471435546875,47.6234397888184,47.8236846923828,47.96728515625,48.0470199584961,48.2750015258789,48.3660125732422,48.3764152526855,48.4573249816895,48.5416984558105,48.6264152526855,48.7309112548828,48.85595703125,48.9641609191895,49.1263694763184,49.213134765625,49.2256813049316,49.2661628723145,49.2620582580566,49.1917495727539,49.1047859191895,48.921875,48.8736343383789,48.8062019348145,48.8389625549316,48.8411102294922,48.8036155700684,48.6911125183105,48.5503921508789,48.4231948852539,48.3605003356934,48.3105964660645,48.2280731201172,48.1964836120605,48.1598625183105,48.1062469482422,48.021240234375,48.0111351013184,48.031494140625,48.1116714477539,48.1888656616211,48.1466789245605,48.1026878356934,48.1173324584961,48.097900390625,48.11962890625,48.0224609375,48.0110816955566,48.0669441223145,48.0606422424316,47.9885749816895,47.9110336303711,47.8597679138184,47.6961441040039,47.6700210571289,47.68701171875,47.7679176330566,47.811279296875,47.8468284606934,47.7930183410645,47.7972183227539,47.724853515625,47.6734886169434,47.5698738098145,47.36865234375,47.2337913513184,47.1012191772461,47.0692367553711,47.049560546875,47.0888214111328,47.086181640625,47.060791015625,46.9578132629395,46.887939453125,46.8228530883789,46.6986846923828,46.6714363098145,46.5123023986816,46.4255828857422,46.35595703125,46.3114242553711,46.2403335571289,46.22021484375,46.19287109375,46.1658172607422,46.1461906433105,46.107177734375,46.0213356018066,45.959228515625,45.8580055236816,45.8779296875,45.8747062683105,45.811279296875,45.7798843383789,45.751953125,45.7579574584961,45.7824249267578,45.7763671875,45.7405738830566,45.6859855651855,45.6482391357422,45.6606941223145,45.621826171875,45.6405258178711,45.6646461486816,45.7308578491211,45.8681640625,45.8511734008789,45.7991180419922,45.7142105102539,45.6556129455566,45.6421852111816,45.68701171875,45.6482925415039,45.5736808776855,45.4760246276855,45.4410629272461,45.4105949401855,45.36669921875,45.3486328125,45.3301773071289,45.291748046875,45.2528305053711,45.2334480285645,45.256103515625,45.2355003356934,45.18505859375,45.1570320129395,45.15380859375,45.1305160522461,45.094482421875,45.0844230651855,44.9944839477539,44.9364738464355,44.8436508178711,44.7851066589355,44.7147979736328,44.7085418701172,44.7113265991211,44.642578125,44.6519050598145,44.6399421691895,44.6550750732422,44.6832046508789,44.610595703125,44.5437507629395,44.5144538879395,44.47998046875,44.4864273071289,44.5106468200684,44.5463371276855,44.6038589477539,44.6449203491211,44.587890625,44.54541015625,44.4874496459961,44.586669921875,44.5503425598145,44.4448738098145,44.4147453308105,44.3340835571289,44.2919921875,44.3035659790039,44.1851577758789,44.1420402526855,44.0213394165039,43.9293441772461,43.8678703308105,43.7271957397461,43.7313957214355,43.7267570495605,43.6681137084961,43.5496101379395,43.5652809143066,43.5614280700684,43.5242195129395,43.51806640625,43.5532722473145,43.5340347290039,43.5607452392578,43.734375,43.7952156066895,43.8148422241211,43.7781257629395,43.7421875,43.8138198852539,44.0796890258789,44.1438484191895,44.3674812316895,44.5687980651855,44.5755348205566,44.4359359741211,44.4697265625,44.5049324035645,44.5617179870605,44.6150894165039,44.6461906433105,44.6509284973145,44.680419921875,44.732666015625,44.7604026794434,44.728515625,44.6971206665039,44.73828125,44.7603034973145,45.1208000183105,45.1802253723145,45.2560539245605,45.3057136535645,45.3374519348145,45.309326171875,45.2682113647461,45.2382316589355,45.187255859375,45.1382293701172,45.1143074035645,45.0230445861816,45.1470222473145,45.2170867919922,45.3108863830566,45.3210945129395,45.3647956848145,45.3941421508789,45.378173828125,45.410888671875,45.3895492553711,45.4100570678711,45.3829612731934,45.3243637084961,45.3502426147461,45.3545913696289,45.3748054504395,45.4755363464355,45.62548828125,45.755859375,45.783203125,45.835693359375,45.826904296875,45.8063468933105,45.8666038513184,45.9466323852539,45.913330078125,45.8136711120605,45.638427734375,45.6259765625,45.5442390441895,45.4730949401855,45.3373031616211,45.222900390625,45.2224617004395,45.3166007995605,45.3594703674316,45.4175796508789,45.4008293151855,45.3756332397461,45.335205078125,45.2569313049316,45.2275848388672,45.1890144348145,45.1332054138184,45.0958976745605,45.1433601379395,45.0833969116211,45.0672836303711,45.09765625,45.1456069946289,45.1571769714355,45.1439437866211,45.16943359375,45.1819801330566,45.1925315856934,45.2007827758789,45.1867179870605,45.1679229736328,45.15380859375,45.1737785339355,45.2101554870605,45.2476577758789,45.27587890625,45.3086929321289,45.3403816223145,45.3779296875,45.4212379455566,45.4458999633789,45.4740715026855,45.5010261535645,45.5139656066895,45.5304183959961,45.5655746459961,45.6031227111816,45.618408203125,45.612548828125,45.6207542419434,45.6441917419434,45.6711921691895,45.6864776611328,45.6864776611328,45.7017059326172,45.7275390625,45.769775390625,45.7955589294434,45.81787109375,45.842529296875,45.8601570129395,45.8741683959961,45.8917999267578,45.927001953125,45.9527816772461,46.0421371459961,46.2093276977539,46.33740234375,46.4983863830566,46.6156234741211,46.7798843383789,46.9357414245605,47.0828132629395,47.1676254272461,47.2748527526855,47.345947265625,47.3544921875,47.3445320129395,47.316162109375,47.2857933044434,47.2534675598145,47.2033195495605,47.2028312683105,47.2112312316895,47.2364273071289,47.2736320495605,47.338134765625,47.4266090393066,47.4447746276855,47.4629898071289,47.4020004272461,47.3506355285645,47.2386703491211,47.0813484191895,46.994873046875,46.8429183959961,46.7089347839355,46.5714378356934,46.4410667419434,46.3418464660645,46.2508773803711,46.1500015258789,46.057373046875,45.9798316955566,45.9391593933105,45.9061050415039,45.8680686950684,45.8019027709961,45.7382316589355,45.7068367004395,45.6439933776855,45.5513687133789,45.4989242553711,45.4553718566895,45.4283180236816,45.4094696044922,45.4106941223145,45.40478515625,45.3661613464355,45.3106918334961,45.2707023620605,45.262451171875,45.2907218933105,45.3331069946289,45.3372573852539,45.3091316223145,45.2628402709961,45.2603492736816,45.2900848388672,45.2003402709961,45.007568359375,45.007080078125,45.006591796875,45.006103515625,45.005615234375,45.0051765441895,45.0046882629395,45.0041999816895,45.00390625,45.0038566589355]}],[{"lng":[-126.092094421387,-126.064010620117,-126.186813354492,-126.229644775391,-126.2314453125,-126.208549499512,-126.115280151367,-126.092094421387],"lat":[49.35400390625,49.2636222839355,49.2781257629395,49.295654296875,49.3390617370605,49.3797836303711,49.3650398254395,49.35400390625]}],[{"lng":[-54.5543937683105,-54.7086906433105,-54.7438468933105,-54.7865257263184,-54.8185081481934,-54.8635711669922,-54.8554229736328,-54.8130836486816,-54.7887687683105,-54.7826194763184,-54.7640647888184,-54.7331047058105,-54.6187477111816,-54.5591773986816,-54.5376930236816,-54.5543937683105],"lat":[49.5888671875,49.5306625366211,49.5077629089355,49.4961433410645,49.5144538879395,49.5760726928711,49.5965805053711,49.599365234375,49.5912094116211,49.5720672607422,49.5623512268066,49.5621566772461,49.6220703125,49.6314926147461,49.6199722290039,49.5888671875]}],[{"lng":[-54.0937004089355,-54.0199203491211,-53.9806671142578,-54.2383766174316,-54.2692375183105,-54.2861328125,-54.2887687683105,-54.2776336669922,-54.2589836120605,-54.1993637084961,-54.1376953125,-54.0937004089355],"lat":[49.7444343566895,49.6794929504395,49.6619644165039,49.5916519165039,49.5870132446289,49.5953636169434,49.6608390808105,49.7114753723145,49.718994140625,49.6885261535645,49.7511749267578,49.7444343566895]}],[{"lng":[-124.153663635254,-124.139793395996,-124.362312316895,-124.457221984863,-124.493942260742,-124.51781463623,-124.630950927734,-124.649856567383,-124.623291015625,-124.547172546387,-124.421485900879,-124.309127807617,-124.153663635254],"lat":[49.5311508178711,49.5103492736816,49.5881843566895,49.6342315673828,49.66748046875,49.6863288879395,49.7356910705566,49.7583465576172,49.7751007080078,49.7649421691895,49.727783203125,49.6672859191895,49.5311508178711]}],[{"lng":[-126.641212463379,-126.680419921875,-126.743408203125,-126.814208984375,-126.938575744629,-126.951263427734,-126.940032958984,-126.904884338379,-126.896865844727,-126.925827026367,-126.826080322266,-126.738136291504,-126.698150634766,-126.64990234375,-126.62816619873,-126.625778198242,-126.641212463379],"lat":[49.6058082580566,49.6013679504395,49.6134757995605,49.64208984375,49.7184562683105,49.7356910705566,49.75048828125,49.7627906799316,49.7829093933105,49.8377456665039,49.8723640441895,49.8436508178711,49.8084945678711,49.7458000183105,49.6751480102539,49.6268043518066,49.6058082580566]}],[{"lng":[-61.8011207580566,-62.2195320129395,-62.5526351928711,-62.7996063232422,-63.04150390625,-63.5658645629883,-63.6258773803711,-63.6762199401855,-63.776611328125,-63.8849105834961,-64.4400405883789,-64.4851989746094,-64.3729476928711,-64.2437515258789,-64.1314468383789,-63.7601585388184,-63.2919883728027,-63.0888175964355,-62.8585433959961,-62.6334495544434,-62.1330070495605,-62.0430679321289,-61.817138671875,-61.73583984375,-61.6961441040039,-61.7455101013184,-61.8011207580566],"lat":[49.0938987731934,49.0791015625,49.140869140625,49.1707038879395,49.2249526977539,49.3993148803711,49.4599151611328,49.5343246459961,49.6020011901855,49.65771484375,49.8277320861816,49.886962890625,49.9259262084961,49.9443855285645,49.941650390625,49.875244140625,49.8168449401855,49.772705078125,49.7054672241211,49.6239280700684,49.4070777893066,49.3897933959961,49.2835426330566,49.2037620544434,49.1390151977539,49.1057624816895,49.0938987731934]}],[{"lng":[-124.977737426758,-125.001556396484,-125.025970458984,-124.995658874512,-124.987014770508,-124.990821838379,-124.937850952148,-124.916397094727,-124.907470703125,-124.908447265625,-124.977737426758],"lat":[50.0295867919922,50.020751953125,50.1340827941895,50.1751937866211,50.1958503723145,50.2171401977539,50.1659202575684,50.1315422058105,50.083984375,50.0712890625,50.0295867919922]}],[{"lng":[-125.184127807617,-125.195114135742,-125.259574890137,-125.358451843262,-125.345306396484,-125.301170349121,-125.260940551758,-125.195999145508,-125.139503479004,-125.126472473145,-125.091400146484,-125.074028015137,-125.112983703613,-125.184127807617],"lat":[50.0971183776855,50.0443344116211,50.1300315856934,50.3115234375,50.3539543151855,50.4140625,50.4178237915039,50.3897438049316,50.3396949768066,50.3202629089355,50.2677726745605,50.2206535339355,50.1634788513184,50.0971183776855]}],[{"lng":[-55.5361328125,-55.5696792602539,-55.6007843017578,-55.6293449401855,-55.6338844299316,-55.6044921875,-55.5271987915039,-55.4692878723145,-55.4727554321289,-55.5038070678711,-55.5361328125],"lat":[50.7196769714355,50.7086906433105,50.7090301513672,50.7207984924316,50.7401847839355,50.7807159423828,50.8012237548828,50.79638671875,50.7759284973145,50.7421379089355,50.7196769714355]}],[{"lng":[-127.197311401367,-126.700927734375,-126.20386505127,-125.839157104492,-125.615242004395,-125.534324645996,-125.482078552246,-125.420455932617,-125.313957214355,-125.233200073242,-125.06640625,-124.934661865234,-124.904640197754,-124.932426452637,-124.9306640625,-124.830612182617,-124.642868041992,-124.495948791504,-124.185882568359,-123.995803833008,-123.937156677246,-123.854499816895,-123.820022583008,-123.752288818359,-123.626564025879,-123.497016906738,-123.472854614258,-123.457962036133,-123.443061828613,-123.415481567383,-123.389892578125,-123.366302490234,-123.283790588379,-123.310653686523,-123.334518432617,-123.445899963379,-123.484573364258,-123.536468505859,-123.573150634766,-123.594619750977,-123.916938781738,-124.115234375,-124.37621307373,-124.689407348633,-124.868263244629,-125.017242431641,-125.120704650879,-125.140281677246,-125.135688781738,-124.934761047363,-124.849655151367,-124.817031860352,-124.800247192383,-124.812652587891,-124.820747375488,-124.838714599609,-124.868316650391,-124.904449462891,-124.927345275879,-125.168212890625,-125.362739562988,-125.460304260254,-125.489456176758,-125.543113708496,-125.660491943359,-125.828521728516,-125.811958312988,-125.702293395996,-125.644241333008,-125.654632568359,-125.693702697754,-125.728034973145,-125.79638671875,-125.835441589355,-125.918365478516,-125.951667785645,-125.983833312988,-125.937690734863,-125.935394287109,-126.020309448242,-126.04833984375,-126.074897766113,-126.099853515625,-126.168853759766,-126.243598937988,-126.269721984863,-126.279640197754,-126.304489135742,-126.418601989746,-126.444534301758,-126.499855041504,-126.519142150879,-126.548530578613,-126.563720703125,-126.557479858398,-126.541893005371,-126.442771911621,-126.157814025879,-126.134086608887,-126.347557067871,-126.403167724609,-126.462799072266,-126.525238037109,-126.558258056641,-126.592872619629,-126.683113098145,-126.744621276855,-126.84937286377,-126.9033203125,-126.926071166992,-126.947944641113,-126.977096557617,-127.048728942871,-127.114303588867,-127.16552734375,-127.195892333984,-127.20751953125,-127.179107666016,-127.179641723633,-127.192329406738,-127.215675354004,-127.249801635742,-127.268402099609,-127.271530151367,-127.2900390625,-127.349411010742,-127.397903442383,-127.429786682129,-127.467132568359,-127.674858093262,-127.770462036133,-127.816307067871,-127.863914489746,-127.873001098633,-127.828178405762,-127.839164733887,-127.850830078125,-127.946685791016,-127.962936401367,-127.905868530273,-127.8740234375,-127.83154296875,-127.641403198242,-127.578125,-127.486518859863,-127.489356994629,-127.524017333984,-127.528999328613,-127.465919494629,-127.526214599609,-127.75146484375,-127.749710083008,-127.731147766113,-127.864692687988,-127.963676452637,-128.058349609375,-128.135650634766,-128.267425537109,-128.349899291992,-128.346038818359,-128.300827026367,-128.241561889648,-128.101318359375,-127.918060302734,-127.713035583496,-127.197311401367],"lat":[50.640380859375,50.5155296325684,50.453857421875,50.3808097839355,50.3585433959961,50.3424797058105,50.3167991638184,50.254638671875,50.106689453125,50.01220703125,49.8481941223145,49.7316436767578,49.6853523254395,49.6704559326172,49.6431655883789,49.5300750732422,49.4286613464355,49.3802719116211,49.3005867004395,49.2240219116211,49.1708030700684,49.1191902160645,49.08349609375,48.9512214660645,48.8240242004395,48.5820808410645,48.602294921875,48.6744155883789,48.6904792785645,48.6981925964355,48.6702117919922,48.6064453125,48.4551734924316,48.4110336303711,48.406494140625,48.42724609375,48.4000968933105,48.344970703125,48.3228034973145,48.3335418701172,48.3865737915039,48.4364280700684,48.5152320861816,48.5973167419434,48.6536140441895,48.7114753723145,48.7607917785645,48.8026390075684,48.8224105834961,48.9563484191895,49.0282745361328,49.0833015441895,49.1415519714355,49.212646484375,49.2071266174316,49.1390609741211,49.0785140991211,49.031005859375,49.0142097473145,48.9910163879395,48.9982414245605,48.9410629272461,48.9337882995605,48.9528350830078,49.0291519165039,49.0918464660645,49.1072273254395,49.1392097473145,49.185791015625,49.1932106018066,49.1903800964355,49.1998519897461,49.2602043151855,49.2766609191895,49.24951171875,49.248046875,49.2878913879395,49.3797836303711,49.4014625549316,49.3680152893066,49.3790016174316,49.4087905883789,49.4212875366211,49.4151840209961,49.4426727294922,49.431884765625,49.3921890258789,49.3820304870605,49.4490242004395,49.4511222839355,49.3999519348145,49.3967781066895,49.4189453125,49.5432624816895,49.57861328125,49.5904808044434,49.6192855834961,49.650146484375,49.6723136901855,49.6608390808105,49.677734375,49.72021484375,49.7195816040039,49.7333984375,49.7641143798828,49.87646484375,49.9049301147461,49.9228019714355,49.9441413879395,49.9347190856934,49.9026870727539,49.8828125,49.8715362548828,49.8797378540039,49.9104499816895,49.9491691589355,49.992431640625,50.05029296875,50.0731430053711,50.0999031066895,50.1214866638184,50.1379890441895,50.1293487548828,50.0955581665039,50.0708503723145,50.0519523620605,50.0850105285645,50.130859375,50.1634254455566,50.163330078125,50.1211433410645,50.1177253723145,50.1277351379395,50.1500968933105,50.21142578125,50.293212890625,50.313720703125,50.3262214660645,50.3459968566895,50.4452171325684,50.4639663696289,50.4710426330566,50.4790992736816,50.4649429321289,50.4046363830566,50.4273452758789,50.4957542419434,50.5367660522461,50.5831069946289,50.5966796875,50.6073760986328,50.5777359008789,50.5357437133789,50.4988784790039,50.4926261901855,50.4984855651855,50.5205574035645,50.6092758178711,50.6965827941895,50.7442398071289,50.7941398620605,50.8281745910645,50.8577613830566,50.8605461120605,50.8207550048828,50.640380859375]}],[{"lng":[-55.458740234375,-55.5324211120605,-55.5834007263184,-55.6307601928711,-55.730712890625,-55.941162109375,-56.0311050415039,-56.0439453125,-56.0306663513184,-55.9999008178711,-55.9608383178711,-55.87353515625,-55.8411140441895,-55.8150863647461,-55.7955093383789,-55.7853507995605,-55.7847175598145,-55.7999992370605,-55.8713874816895,-55.9620094299316,-56.078125,-56.1065444946289,-56.1211929321289,-56.1356430053711,-56.1957550048828,-56.3824234008789,-56.454345703125,-56.4547843933105,-56.4839363098145,-56.5393562316895,-56.6939964294434,-56.7323226928711,-56.7495574951172,-56.7471694946289,-56.7541007995605,-56.7895011901855,-56.8388671875,-56.8486328125,-56.8292007446289,-56.8092269897461,-56.806884765625,-56.8221664428711,-56.7567901611328,-56.6106414794922,-56.5009269714355,-56.4275856018066,-56.3764152526855,-56.3218269348145,-56.2470703125,-56.1793937683105,-56.1483879089355,-56.1221694946289,-56.12744140625,-56.1641616821289,-56.1612777709961,-56.0750007629395,-55.927001953125,-55.8733367919922,-55.7647438049316,-55.6744651794434,-55.530029296875,-55.5029296875,-55.5270042419434,-55.5836906433105,-55.7176284790039,-56.0399894714355,-56.1401863098145,-56.1211929321289,-56.0516128540039,-55.978515625,-55.90185546875,-55.8698234558105,-55.88232421875,-55.8920440673828,-56.0873031616211,-56.0412101745605,-55.8152351379395,-55.6781234741211,-55.48974609375,-55.3759307861328,-55.379150390625,-55.3544921875,-55.3553695678711,-55.3438491821289,-55.2899398803711,-55.2801780700684,-55.2830085754395,-55.266357421875,-55.2295417785645,-55.20703125,-55.2002944946289,-55.2249984741211,-55.2593231201172,-55.3424835205078,-55.3319320678711,-55.3531761169434,-55.3347625732422,-55.2523422241211,-55.2473640441895,-55.2538108825684,-55.2445297241211,-55.1761207580566,-55.0631828308105,-55.0261726379395,-55.0104026794434,-55.0159187316895,-54.9826164245605,-54.9105491638184,-54.8436546325684,-54.7818832397461,-54.7176246643066,-54.65087890625,-54.5790519714355,-54.502197265625,-54.4691925048828,-54.4806137084961,-54.4654312133789,-54.4634780883789,-54.4482421875,-54.3890609741211,-54.3561515808105,-54.3167495727539,-54.2708015441895,-53.9577140808105,-53.8624534606934,-53.7549819946289,-53.6194343566895,-53.569580078125,-53.56005859375,-53.5734405517578,-53.671142578125,-53.758056640625,-53.809326171875,-53.8249015808105,-53.84521484375,-53.9032211303711,-54.1612777709961,-54.0995101928711,-53.95068359375,-53.8528785705566,-53.8477516174316,-53.8868141174316,-53.9615249633789,-53.9695816040039,-53.9660148620605,-53.8861312866211,-53.7840805053711,-53.6980438232422,-53.7063484191895,-53.7746086120605,-53.7946281433105,-53.8855476379395,-54.0677757263184,-54.1144523620605,-54.104248046875,-53.93701171875,-53.8527374267578,-53.79931640625,-53.7388648986816,-53.6444320678711,-53.5520515441895,-53.4113273620605,-53.361083984375,-53.2754364013672,-53.2202644348145,-53.1273422241211,-53.0572738647461,-53.0426750183105,-53.027587890625,-53.020751953125,-53.0373039245605,-53.0602035522461,-53.1357421875,-53.18212890625,-53.22509765625,-53.3011703491211,-53.3343276977539,-53.405517578125,-53.5312004089355,-53.6097640991211,-53.5602073669434,-53.5418472290039,-53.5694313049316,-53.7042961120605,-53.7101554870605,-53.7582015991211,-53.8695793151855,-53.7935562133789,-53.6530265808105,-53.6382331848145,-53.6576194763184,-53.6950187683105,-53.8616714477539,-53.8636703491211,-53.8377418518066,-53.8053703308105,-53.76513671875,-53.67236328125,-53.603759765625,-53.5037612915039,-53.28271484375,-53.08544921875,-52.9209938049316,-52.88330078125,-52.8660163879395,-52.8720245361328,-52.9549789428711,-52.9982414245605,-53.11083984375,-53.1538581848145,-53.175537109375,-53.1698265075684,-53.1576652526855,-53.1224632263184,-53.0568389892578,-52.9450225830078,-52.8731956481934,-52.8169441223145,-52.7824211120605,-52.7449226379395,-52.71142578125,-52.7032699584961,-52.6721687316895,-52.6536636352539,-52.6685066223145,-52.6836433410645,-52.9124031066895,-52.8881340026855,-52.882080078125,-52.8892059326172,-52.9617156982422,-53.0319366455078,-53.0697746276855,-53.1148414611816,-53.1669921875,-53.2136726379395,-53.2548828125,-53.2913093566895,-53.3230476379395,-53.3817405700684,-53.5361328125,-53.5677719116211,-53.5897941589355,-53.6163558959961,-53.5951652526855,-53.5813484191895,-53.6121597290039,-53.5796356201172,-53.5784645080566,-53.5973625183105,-53.6363754272461,-53.6953620910645,-53.7743148803711,-53.8600082397461,-54.0095710754395,-54.0760231018066,-54.1023941040039,-54.1328125,-54.1737289428711,-54.1732902526855,-54.1552238464355,-54.0926780700684,-53.9705085754395,-53.8690910339355,-53.8495101928711,-53.8778800964355,-53.9008293151855,-53.9397468566895,-53.989013671875,-54.0472679138184,-54.1918449401855,-54.2184066772461,-54.23388671875,-54.4046859741211,-54.4344749450684,-54.4559097290039,-54.4881362915039,-54.5625495910645,-54.5423851013184,-54.4632301330566,-54.4739227294922,-54.5745124816895,-54.6511726379395,-54.7446746826172,-54.801513671875,-54.8566398620605,-55.0904312133789,-55.0992164611816,-55.1396484375,-55.2549324035645,-55.3157196044922,-55.4012680053711,-55.4792976379395,-55.5307121276855,-55.65234375,-55.7885246276855,-55.8447265625,-55.880615234375,-55.9499015808105,-55.9582023620605,-55.9544906616211,-55.9192352294922,-55.83837890625,-55.7718276977539,-55.6100578308105,-55.4915046691895,-55.4012222290039,-55.3608894348145,-55.1908226013184,-54.9756355285645,-54.8695335388184,-54.7953605651855,-54.7846183776855,-54.8910179138184,-54.9459495544434,-55.0350112915039,-55.0745620727539,-55.1965827941895,-55.3663101196289,-55.3907699584961,-55.4126968383789,-55.4346694946289,-55.4606437683105,-55.4986343383789,-55.5761222839355,-55.7747077941895,-55.8113784790039,-55.862060546875,-56.0813484191895,-56.1272468566895,-56.0836906433105,-55.8670883178711,-55.8443832397461,-55.85791015625,-55.91845703125,-56.0201187133789,-56.0896453857422,-56.1214332580566,-56.1505851745605,-56.2212867736816,-56.2629852294922,-56.3257789611816,-56.4595680236816,-56.7223129272461,-56.7741203308105,-56.9524917602539,-57.4734382629395,-57.6598167419434,-57.8840827941895,-57.925537109375,-58.2393074035645,-58.3332023620605,-58.3269538879395,-58.3368644714355,-58.4280281066895,-58.5088882446289,-58.6131324768066,-58.9411659240723,-59.1169471740723,-59.2192840576172,-59.259765625,-59.3206558227539,-59.3624038696289,-59.362060546875,-59.3408660888672,-59.2720680236816,-58.9608421325684,-58.7105979919434,-58.6049842834473,-58.5026397705078,-58.3355445861816,-58.3302268981934,-58.4922370910645,-58.6061515808105,-58.7225570678711,-58.9438018798828,-59.1667938232422,-59.1676750183105,-59.0634269714355,-58.8418006896973,-58.8191909790039,-58.8871116638184,-58.9064483642578,-58.8772468566895,-58.8434104919434,-58.7164535522461,-58.6873550415039,-58.6416015625,-58.5456085205078,-58.4937477111816,-58.4036636352539,-58.3586921691895,-58.3187522888184,-58.1861343383789,-58.0496635437012,-58.0055656433105,-57.9905242919922,-58.0405769348145,-58.0818405151367,-58.0989265441895,-58.0490760803223,-57.9906768798828,-57.9800758361816,-58.0968704223633,-58.19091796875,-58.2188949584961,-58.2133827209473,-58.1827125549316,-58.1074256896973,-58.0158195495605,-57.9612312316895,-57.8560523986816,-57.7913093566895,-57.798828125,-57.8974571228027,-57.9290542602539,-57.9261703491211,-57.7125015258789,-57.6079597473145,-57.4655303955078,-57.4326171875,-57.3604469299316,-57.33056640625,-57.2374000549316,-57.1795921325684,-57.26416015625,-57.29443359375,-57.2980003356934,-57.27490234375,-57.2421379089355,-57.1316413879395,-57.0532684326172,-57.0056648254395,-57.0127449035645,-57.0373039245605,-57.0359382629395,-56.9763641357422,-56.8251457214355,-56.8054656982422,-56.7501945495605,-56.6824226379395,-56.6190452575684,-56.5179672241211,-56.2073707580566,-56.0255851745605,-55.902099609375,-55.8658218383789,-55.6904296875,-55.6595687866211,-55.7006340026855,-55.6664085388184,-55.5216293334961,-55.4964332580566,-55.4532241821289,-55.458740234375],"lat":[51.5365219116211,51.4369621276855,51.3885726928711,51.3728981018066,51.3586921691895,51.343017578125,51.328369140625,51.2618637084961,51.2269020080566,51.1992683410645,51.19140625,51.2079086303711,51.205078125,51.191162109375,51.1661643981934,51.1314468383789,51.0870590209961,51.0333023071289,50.9073753356934,50.8376960754395,50.7809562683105,50.75927734375,50.7337875366211,50.6509742736816,50.5847663879395,50.4169921875,50.3800277709961,50.3504867553711,50.2708473205566,50.2067413330078,50.0596694946289,50.0077133178711,49.966552734375,49.9084968566895,49.8829116821289,49.833740234375,49.7877464294434,49.7653312683105,49.724609375,49.7103996276855,49.67333984375,49.6134757995605,49.651611328125,49.7876930236816,49.86962890625,49.8974113464355,49.9336929321289,50.0137710571289,50.090087890625,50.114990234375,50.100341796875,50.0628395080566,50.01513671875,49.957275390625,49.9401359558105,49.9826164245605,50.0177726745605,50.0131340026855,49.96044921875,49.966552734375,49.9971694946289,49.983154296875,49.936767578125,49.8923835754395,49.8290023803711,49.7046852111816,49.619140625,49.6217269897461,49.6583976745605,49.6781234741211,49.6808586120605,49.670166015625,49.6459465026855,49.5802764892578,49.4519538879395,49.4568367004395,49.5152816772461,49.4346160888672,49.4624977111816,49.48974609375,49.472900390625,49.4376945495605,49.380859375,49.3729019165039,49.3919410705566,49.4127426147461,49.5138168334961,49.52392578125,49.5081558227539,49.4820327758789,49.4084968566895,49.3346672058105,49.2669906616211,49.1681137084961,49.1255874633789,49.0794448852539,49.077880859375,49.1208953857422,49.1385726928711,49.1796417236328,49.1998062133789,49.2444343566895,49.29736328125,49.3053703308105,49.2930183410645,49.2603530883789,49.2681159973145,49.3162612915039,49.3454093933105,49.35546875,49.3885765075684,49.4445304870605,49.4908180236816,49.52734375,49.52978515625,49.4693336486816,49.4005393981934,49.3417472839355,49.3294448852539,49.3921356201172,49.4150390625,49.4241180419922,49.4192886352539,49.4418487548828,49.4263191223145,49.3853034973145,49.3216285705566,49.26416015625,49.1916999816895,49.1412086486816,49.0775375366211,49.035400390625,48.993408203125,48.9513664245605,48.9254417419434,48.88916015625,48.7876968383789,48.7847671508789,48.8067855834961,48.8113288879395,48.7966766357422,48.767822265625,48.7388687133789,48.7249031066895,48.7066917419434,48.6846656799316,48.6954116821289,48.6798324584961,48.655517578125,48.5763206481934,48.5263671875,48.4845695495605,48.4188499450684,48.3936042785645,48.3883781433105,48.4366226196289,48.4488258361816,48.44921875,48.4958000183105,48.51123046875,48.4817848205566,48.5621566772461,48.5726051330566,48.5633316040039,48.577880859375,48.632568359375,48.6590309143066,48.6566429138184,48.6347160339355,48.5716285705566,48.515869140625,48.4803237915039,48.40185546875,48.3743629455566,48.364013671875,48.3681640625,48.35595703125,48.2943344116211,48.2318878173828,48.2077140808105,48.173828125,48.1084480285645,48.0880851745605,48.0679206848145,48.0568351745605,48.0423812866211,48.0196800231934,48.0097160339355,48.0257339477539,48.0146484375,47.9686508178711,47.9211921691895,47.7992706298828,47.7870140075684,47.7272453308105,47.6820335388184,47.6500968933105,47.6482429504395,47.6623077392578,47.7438468933105,47.9978485107422,48.0685043334961,48.1470680236816,48.1311531066895,48.1129913330078,48.0939483642578,48.029296875,47.9759292602539,47.8119163513184,47.7345695495605,47.6529808044434,47.5121116638184,47.48779296875,47.4551277160645,47.4831047058105,47.5528335571289,47.6194343566895,47.7278785705566,47.7694358825684,47.7689476013184,47.7453155517578,47.6930198669434,47.6217765808105,47.5494155883789,47.4698257446289,47.4263191223145,47.1032218933105,47.0458526611328,47.0110855102539,46.97412109375,46.8194351196289,46.7227516174316,46.6812477111816,46.6558113098145,46.646484375,46.6604995727539,46.6977081298828,46.717041015625,46.7183609008789,46.71142578125,46.6325187683105,46.6282691955566,46.6388664245605,46.6802711486816,46.8884773254395,46.957275390625,47.0103530883789,47.0994148254395,47.1332511901855,47.14599609375,47.1376953125,47.0929222106934,47.0118179321289,46.939453125,46.839599609375,46.8199691772461,46.8249015808105,46.8385772705078,46.88037109375,46.9171867370605,46.9674835205078,47.0862312316895,47.261962890625,47.3870124816895,47.4403305053711,47.4635734558105,47.5093269348145,47.6446762084961,47.7562026977539,47.8056144714355,47.8598136901855,47.8467292785645,47.7716789245605,47.555908203125,47.4623031616211,47.4275856018066,47.4038581848145,47.3751945495605,47.4250984191895,47.5362319946289,47.5470695495605,47.457763671875,47.408203125,47.3954582214355,47.3986320495605,47.385009765625,47.1739273071289,47.1035614013672,47.0459480285645,46.9417495727539,46.9057121276855,46.8992691040039,46.9172859191895,46.9140167236328,46.8814468383789,46.8672332763672,46.8738288879395,46.88720703125,46.9276847839355,46.9563980102539,46.9732437133789,47.0168952941895,47.0716323852539,47.0920867919922,47.11962890625,47.16064453125,47.2214813232422,47.2585945129395,47.448974609375,47.5161628723145,47.5708999633789,47.6403312683105,47.6647453308105,47.6294898986816,47.620849609375,47.6338844299316,47.6575698852539,47.6500511169434,47.6610832214355,47.6428718566895,47.5503921508789,47.5012664794922,47.4847679138184,47.4750518798828,47.4652366638184,47.498291015625,47.516357421875,47.5300788879395,47.4999504089355,47.5028305053711,47.5245094299316,47.5923347473145,47.787841796875,47.8191909790039,47.7918968200684,47.7637214660645,47.7718772888184,47.7891616821289,47.7745132446289,47.67138671875,47.658447265625,47.6544914245605,47.616943359375,47.59228515625,47.5649909973145,47.574462890625,47.631103515625,47.6253890991211,47.6600074768066,47.6749000549316,47.6688461303711,47.6768531799316,47.7198715209961,47.7308578491211,47.6833992004395,47.652587890625,47.626220703125,47.5804672241211,47.5707015991211,47.6025390625,47.6341781616211,47.7369117736816,47.8656768798828,47.8889656066895,47.9336433410645,47.9955596923828,48.1593742370605,48.3250503540039,48.4113273620605,48.4420394897461,48.513671875,48.5221176147461,48.5130386352539,48.5328636169434,48.5407218933105,48.5217781066895,48.5217781066895,48.5584945678711,48.627685546875,48.7464332580566,48.746826171875,48.6915512084961,48.6501960754395,48.6227073669434,48.6053237915039,48.5980453491211,48.6220703125,48.7494125366211,48.8968734741211,49.0032234191895,49.0843238830566,49.0965347290039,49.0813484191895,49.0619163513184,48.987548828125,48.9812507629395,48.9879417419434,49.009765625,49.0447273254395,49.0774383544922,49.1799812316895,49.20947265625,49.2296371459961,49.2300758361816,49.2587394714355,49.3051261901855,49.3866691589355,49.4353981018066,49.4997062683105,49.54248046875,49.5315399169922,49.4738273620605,49.489990234375,49.508544921875,49.6003913879395,49.6684074401855,49.7008323669434,50.02490234375,50.1987800598145,50.4636726379395,50.5058097839355,50.5839347839355,50.6051750183105,50.6053695678711,50.6148452758789,50.6493682861328,50.6733894348145,50.69873046875,50.7252960205078,50.7449226379395,50.7874031066895,50.8573265075684,50.9396514892578,50.9677238464355,50.9956550598145,51.0108413696289,51.0279769897461,51.125732421875,51.1444854736328,51.27490234375,51.332763671875,51.3624534606934,51.3993148803711,51.4886245727539,51.568359375,51.5639152526855,51.50830078125,51.4713401794434,51.5110359191895,51.5594253540039,51.5789070129395,51.5963859558105,51.58984375,51.5623054504395,51.5365219116211]}],[{"lng":[-127.924659729004,-127.941261291504,-127.981246948242,-128.044525146484,-128.091796875,-128.148773193359,-128.142379760742,-128.122756958008,-128.03173828125,-127.998687744141,-127.98681640625,-127.932518005371,-127.916358947754,-127.916305541992,-127.924659729004],"lat":[51.473876953125,51.4571762084961,51.4572296142578,51.4740219116211,51.5111312866211,51.626708984375,51.6465797424316,51.6667938232422,51.7083969116211,51.7038078308105,51.673583984375,51.60546875,51.58544921875,51.5061988830566,51.473876953125]}],[{"lng":[-55.3612327575684,-55.4088897705078,-55.4196281433105,-55.3998031616211,-55.3464851379395,-55.2740707397461,-55.2935523986816,-55.3612327575684],"lat":[51.8896484375,51.8888168334961,51.9000511169434,51.9384765625,51.9828605651855,51.9951667785645,51.9299812316895,51.8896484375]}],[{"lng":[-79.38427734375,-79.4255828857422,-79.5206069946289,-79.5968704223633,-79.6437454223633,-79.3348617553711,-79.2712936401367,-79.2702102661133,-79.3166046142578,-79.3289489746094,-79.3515090942383,-79.38427734375],"lat":[51.9519538879395,51.9448738098145,51.9529304504395,51.97802734375,52.0100593566895,52.09814453125,52.0868186950684,52.0710945129395,52.02392578125,51.9922828674316,51.9683113098145,51.9519538879395]}],[{"lng":[-131.029296875,-131.047256469727,-131.080520629883,-131.103424072266,-131.117340087891,-131.107131958008,-131.098083496094,-131.010650634766,-131.029296875],"lat":[51.9616203308105,51.959716796875,51.9804191589355,52.0138664245605,52.1010246276855,52.1365737915039,52.150634765625,52.0952644348145,51.9616203308105]}],[{"lng":[-128.368743896484,-128.445404052734,-128.419876098633,-128.412506103516,-128.42626953125,-128.435943603516,-128.439788818359,-128.364898681641,-128.247268676758,-128.248443603516,-128.298156738281,-128.323776245117,-128.343551635742,-128.368743896484],"lat":[52.40087890625,52.3875007629395,52.4411125183105,52.4728546142578,52.5027351379395,52.5603523254395,52.6963882446289,52.7818832397461,52.7843742370605,52.7412109375,52.5482406616211,52.458984375,52.4260749816895,52.40087890625]}],[{"lng":[-128.936874389648,-128.968704223633,-129.102340698242,-129.151016235352,-129.25048828125,-129.267776489258,-129.263534545898,-129.245941162109,-129.215042114258,-129.186187744141,-128.994003295898,-128.940338134766,-128.936874389648],"lat":[52.510009765625,52.4642562866211,52.5743675231934,52.6053199768066,52.72216796875,52.7723655700684,52.80078125,52.8112297058105,52.8038558959961,52.791259765625,52.6617164611816,52.6007308959961,52.510009765625]}],[{"lng":[-129.313720703125,-129.328720092773,-129.370025634766,-129.409729003906,-129.477783203125,-129.500137329102,-129.514739990234,-129.501068115234,-129.471435546875,-129.450729370117,-129.343505859375,-129.313720703125],"lat":[52.9921875,52.9842300415039,52.9976081848145,53.0237312316895,53.0977554321289,53.12890625,53.1793937683105,53.1883277893066,53.1830101013184,53.1747055053711,53.0527839660645,52.9921875]}],[{"lng":[-80.731689453125,-80.8023452758789,-81.0098648071289,-81.0965881347656,-81.3522491455078,-81.8390579223633,-82.0050277709961,-82.0392608642578,-81.9511260986328,-81.9013671875,-81.8473129272461,-81.3353576660156,-81.1355972290039,-80.900390625,-80.7653350830078,-80.71044921875,-80.7095260620117,-80.731689453125],"lat":[52.7472648620605,52.7339859008789,52.7606430053711,52.7798843383789,52.8520011901855,52.9579086303711,53.010498046875,53.0499000549316,53.1322250366211,53.1655731201172,53.186279296875,53.2242660522461,53.205810546875,53.0371589660645,52.9232444763184,52.8315925598145,52.7873992919922,52.7472648620605]}],[{"lng":[-131.753707885742,-131.65234375,-131.622177124023,-131.634674072266,-131.795257568359,-131.879684448242,-131.916366577148,-131.971786499023,-131.904388427734,-131.81005859375,-131.727294921875,-131.610595703125,-131.455230712891,-131.572799682617,-131.590576171875,-131.443908691406,-131.429977416992,-131.383010864258,-131.273620605469,-131.259719848633,-131.259963989258,-131.327056884766,-131.319915771484,-131.259170532227,-131.142623901367,-131.116165161133,-131.221542358398,-131.421875,-131.511123657227,-131.562072753906,-131.623687744141,-131.809677124023,-132.092239379883,-132.165084838867,-132.238571166992,-132.259963989258,-132.258102416992,-132.229537963867,-132.144927978516,-132.143753051758,-132.468704223633,-132.504837036133,-132.546768188477,-132.524215698242,-132.345413208008,-132.153900146484,-132.035949707031,-131.989501953125,-131.893112182617,-131.853469848633,-131.753707885742],"lat":[53.195556640625,53.1029777526855,53.0200691223145,52.9221687316895,52.8850593566895,52.9146461486816,52.9091300964355,52.8798332214355,52.86669921875,52.8186988830566,52.7563934326172,52.7452125549316,52.7017097473145,52.6233406066895,52.5782241821289,52.4533195495605,52.422119140625,52.4157218933105,52.4258308410645,52.4159164428711,52.3900413513184,52.3175277709961,52.3030738830566,52.2916526794434,52.2911109924316,52.2190895080566,52.1536140441895,52.2379875183105,52.3220710754395,52.3999519348145,52.4439964294434,52.5416984558105,52.7527847290039,52.7833023071289,52.8667984008789,52.906982421875,52.9338874816895,52.9480934143066,52.9574737548828,52.9993171691895,53.0718727111816,53.0867195129395,53.1375007629395,53.1449241638184,53.1360855102539,53.1604995727539,53.1791496276855,53.2019500732422,53.2314453125,53.229736328125,53.195556640625]}],[{"lng":[-128.552444458008,-128.506546020508,-128.509918212891,-128.576812744141,-128.6240234375,-128.678955078125,-128.730911254883,-128.735534667969,-128.749420166016,-128.766448974609,-128.746337890625,-128.769622802734,-128.831207275391,-128.899810791016,-129.022842407227,-129.084716796875,-129.094879150391,-129.175918579102,-129.184326171875,-129.177688598633,-129.111083984375,-129.084091186523,-129.060348510742,-129.033248901367,-128.97021484375,-128.857727050781,-128.740371704102,-128.632659912109,-128.552444458008],"lat":[52.9397430419922,52.6207046508789,52.5186042785645,52.4518051147461,52.3398933410645,52.2896461486816,52.3565406799316,52.4677238464355,52.5560569763184,52.598388671875,52.7633781433105,52.751220703125,52.6788063049316,52.673828125,52.7559585571289,52.8224601745605,52.891845703125,52.9649391174316,52.9906730651855,53.0179176330566,53.0906753540039,53.1396980285645,53.2406234741211,53.2799339294434,53.2743644714355,53.2285652160645,53.1788558959961,53.1124992370605,52.9397430419922]}],[{"lng":[-129.167724609375,-129.173248291016,-129.27685546875,-129.305709838867,-129.323883056641,-129.331237792969,-129.314361572266,-129.253082275391,-129.251159667969,-129.238189697266,-129.195220947266,-129.177001953125,-129.167724609375],"lat":[53.1178741455078,53.1107406616211,53.1109352111816,53.1211433410645,53.1421394348145,53.1739768981934,53.2123031616211,53.2854995727539,53.3166999816895,53.330078125,53.293212890625,53.2591323852539,53.1178741455078]}],[{"lng":[-79.938232421875,-79.9393081665039,-80.0041046142578,-80.0393524169922,-80.06787109375,-80.0740203857422,-80.0497055053711,-79.9745635986328,-79.938232421875],"lat":[53.3041534423828,53.2742652893066,53.2800788879395,53.2971687316895,53.3240737915039,53.3442878723145,53.3644523620605,53.3522453308105,53.3041534423828]}],[{"lng":[-129.848587036133,-129.868560791016,-129.934371948242,-130.151412963867,-130.3056640625,-130.410736083984,-130.517578125,-130.451995849609,-130.394821166992,-130.195022583008,-130.035400390625,-129.944732666016,-129.754837036133,-129.768951416016,-129.848587036133],"lat":[53.1679191589355,53.1645011901855,53.1766586303711,53.345703125,53.4073715209961,53.4908218383789,53.5442352294922,53.6311492919922,53.6204109191895,53.5496597290039,53.4811019897461,53.4363784790039,53.2447738647461,53.21728515625,53.1679191589355]}],[{"lng":[-130.236282348633,-130.267242431641,-130.337554931641,-130.384231567383,-130.4072265625,-130.470260620117,-130.537490844727,-130.58984375,-130.624603271484,-130.641845703125,-130.646286010742,-130.637893676758,-130.643707275391,-130.66357421875,-130.683441162109,-130.703170776367,-130.707275390625,-130.695693969727,-130.646926879883,-130.49462890625,-130.447998046875,-130.397308349609,-130.315872192383,-130.298477172852,-130.236282348633],"lat":[53.9585456848145,53.922607421875,53.8662605285645,53.8439445495605,53.8555183410645,53.8617668151855,53.9178733825684,53.9402809143066,53.94140625,53.921142578125,53.89404296875,53.8600082397461,53.8445281982422,53.8475570678711,53.8634757995605,53.8922386169434,53.9214859008789,53.9512672424316,53.9912605285645,54.0741691589355,54.0890121459961,54.085693359375,54.0469245910645,54.03564453125,53.9585456848145]}],[{"lng":[-132.655517578125,-132.564071655273,-132.344436645508,-132.303375244141,-132.261627197266,-132.215927124023,-132.166107177734,-132.155136108398,-132.175109863281,-132.214492797852,-132.564880371094,-132.574127197266,-132.567138671875,-132.53466796875,-132.464401245117,-132.186965942383,-132.171676635742,-132.152252197266,-132.114013671875,-132.110595703125,-132.135879516602,-132.134414672852,-131.940826416016,-131.819625854492,-131.695953369141,-131.667633056641,-131.685409545898,-131.702529907227,-131.821151733398,-131.88916015625,-131.922317504883,-131.928085327148,-131.957427978516,-132.011322021484,-132.347259521484,-132.520462036133,-132.6748046875,-132.747512817383,-132.692581176758,-132.65478515625,-132.546234130859,-132.46240234375,-132.425003051758,-132.431350708008,-132.670166015625,-132.845016479492,-132.897994995117,-132.899566650391,-132.913375854492,-133.05224609375,-133.079483032227,-133.09765625,-133.097946166992,-133.063873291016,-133.048385620117,-132.991455078125,-132.89306640625,-132.655517578125],"lat":[54.1274909973145,54.0686531066895,54.1060523986816,54.098876953125,54.0763168334961,54.0284194946289,53.9552268981934,53.8751945495605,53.8465347290039,53.8147468566895,53.6876449584961,53.6753883361816,53.6639671325684,53.6517105102539,53.6533203125,53.684814453125,53.7068367004395,53.8069839477539,53.8601570129395,53.9002952575684,53.995849609375,54.0342788696289,54.0419921875,54.0773429870605,54.1431655883789,54.141357421875,54.0228042602539,53.9863777160645,53.8415031433105,53.7139625549316,53.587890625,53.3791999816895,53.3086891174316,53.2651863098145,53.189208984375,53.1940422058105,53.26318359375,53.3104972839355,53.3678703308105,53.3705558776855,53.3592796325684,53.337890625,53.3369636535645,53.3504409790039,53.4585914611816,53.5077171325684,53.5626945495605,53.6053695678711,53.6291999816895,53.7781257629395,53.8370132446289,53.9202613830566,54.005615234375,54.14404296875,54.158935546875,54.1578140258789,54.1407699584961,54.1274909973145]}],[{"lng":[-130.927139282227,-130.950302124023,-130.959030151367,-130.953475952148,-130.921783447266,-130.906829833984,-130.777038574219,-130.757995605469,-130.75341796875,-130.763381958008,-130.805130004883,-130.927139282227],"lat":[54.4790534973145,54.477783203125,54.4986801147461,54.5418472290039,54.6148910522461,54.6317863464355,54.618896484375,54.61376953125,54.5997047424316,54.5767097473145,54.5438003540039,54.4790534973145]}],[{"lng":[-130.575332641602,-130.493270874023,-130.312545776367,-130.214065551758,-130.203903198242,-130.349426269531,-130.535507202148,-130.575332641602],"lat":[54.7696800231934,54.8341789245605,54.9459495544434,55.02587890625,54.947021484375,54.8145484924316,54.7487297058105,54.7696800231934]}],[{"lng":[-60.9944839477539,-60.9827156066895,-61.1370086669922,-61.1913108825684,-61.1958503723145,-61.1881828308105,-61.1575698852539,-61.0869178771973,-61.0485382080078,-60.9664039611816,-60.9553680419922,-60.9944839477539],"lat":[56.039306640625,56.01513671875,56.0325698852539,56.0478515625,56.0639190673828,56.0889625549316,56.1183624267578,56.1408233642578,56.1292495727539,56.0988311767578,56.0804176330566,56.039306640625]}],[{"lng":[-78.8265151977539,-78.8772888183594,-78.913818359375,-78.9070281982422,-78.8568801879883,-78.8284149169922,-78.8215866088867,-78.7994155883789,-78.7618637084961,-78.7245178222656,-78.6687545776367,-78.6571731567383,-78.6728057861328,-78.7101593017578,-78.7613754272461,-78.8265151977539],"lat":[56.1453132629395,56.1314430236816,56.1328125,56.1663551330566,56.2320785522461,56.2898445129395,56.3396492004395,56.38330078125,56.4207038879395,56.439208984375,56.4386215209961,56.3173828125,56.260498046875,56.212890625,56.1745109558105,56.1453132629395]}],[{"lng":[-79.9775848388672,-80.0286178588867,-80.0888671875,-80.0574722290039,-80.0050811767578,-79.8744659423828,-79.8521499633789,-79.8104019165039,-79.7491760253906,-79.6810073852539,-79.6058578491211,-79.5797348022461,-79.632568359375,-79.6879425048828,-79.9775848388672],"lat":[56.20703125,56.1994132995605,56.2138671875,56.287353515625,56.3179168701172,56.3484344482422,56.3671875,56.3765144348145,56.3765144348145,56.4039535522461,56.4588394165039,56.4663581848145,56.3865242004395,56.3268089294434,56.20703125]}],[{"lng":[-78.9355926513672,-79.0179672241211,-79.0838851928711,-79.1754913330078,-79.2278289794922,-79.2736358642578,-79.1422805786133,-79.1360778808594,-79.1422805786133,-79.18212890625,-79.2218246459961,-79.4074249267578,-79.455322265625,-79.4951171875,-79.5267639160156,-79.605712890625,-79.7647476196289,-79.4974594116211,-79.4946823120117,-79.5447235107422,-79.5645523071289,-79.7811050415039,-79.9045867919922,-79.9874954223633,-80.0082550048828,-80.0007858276367,-79.7900390625,-79.5963439941406,-79.5152893066406,-79.4823684692383,-79.4679183959961,-79.4689407348633,-79.4588928222656,-79.4476547241211,-79.435302734375,-79.4320297241211,-79.4762725830078,-79.5118179321289,-79.55419921875,-79.5363311767578,-79.4583053588867,-79.3926315307617,-79.33935546875,-79.3053207397461,-79.2724151611328,-79.2611389160156,-79.2457504272461,-79.21044921875,-79.1551818847656,-79.12353515625,-79.1002426147461,-79.0777359008789,-78.9949722290039,-78.9631805419922,-78.9403381347656,-78.9424285888672,-78.9312057495117,-78.9066390991211,-78.9355926513672],"lat":[56.2660636901855,56.1649894714355,56.06787109375,55.8850593566895,55.8785171508789,55.9224624633789,56.1364250183105,56.1602554321289,56.1807136535645,56.212158203125,56.1759757995605,55.9348640441895,55.8961906433105,55.874755859375,55.8706550598145,55.8756828308105,55.8067893981934,56.0931625366211,56.114990234375,56.1283721923828,56.1209449768066,55.9405784606934,55.8710479736328,55.8921394348145,55.9110336303711,55.9320793151855,56.1141586303711,56.2444839477539,56.3265151977539,56.40380859375,56.4603500366211,56.5226097106934,56.5397453308105,56.5365715026855,56.5130348205566,56.4474601745605,56.3128395080566,56.24658203125,56.1919937133789,56.1800765991211,56.2110824584961,56.2764663696289,56.3763198852539,56.4630889892578,56.6004371643066,56.5956535339355,56.5682601928711,56.5489273071289,56.53759765625,56.5199699401855,56.4739265441895,56.45361328125,56.4364242553711,56.4217262268066,56.3714370727539,56.3449211120605,56.3279266357422,56.3204116821289,56.2660636901855]}],[{"lng":[-79.5181655883789,-79.553466796875,-79.577392578125,-79.5507354736328,-79.5817337036133,-79.5835494995117,-79.5701217651367,-79.5528793334961,-79.51123046875,-79.4910659790039,-79.482177734375,-79.4845733642578,-79.4965286254883,-79.5181655883789],"lat":[56.6566886901855,56.6438484191895,56.6449203491211,56.7334938049316,56.7648468017578,56.7809562683105,56.7957038879395,56.7987289428711,56.7714347839355,56.74267578125,56.7144050598145,56.6865234375,56.6672859191895,56.6566886901855]}],[{"lng":[-79.8669967651367,-79.8944854736328,-79.9436569213867,-79.9457015991211,-79.8981475830078,-79.8605422973633,-79.82666015625,-79.8350067138672,-79.8669967651367],"lat":[56.7745628356934,56.7571296691895,56.7767562866211,56.826904296875,56.8652839660645,56.863525390625,56.8431167602539,56.8160171508789,56.7745628356934]}],[{"lng":[-61.7436065673828,-61.6595191955566,-61.6374969482422,-61.7952613830566,-61.9754905700684,-62.0112342834473,-62.0072250366211,-61.9833030700684,-61.9375,-61.8930625915527,-61.8483390808105,-61.7436065673828],"lat":[57.5545883178711,57.5249519348145,57.4160652160645,57.4224586486816,57.4954109191895,57.5484886169434,57.5576133728027,57.5667457580566,57.5541038513184,57.5731468200684,57.5793495178223,57.5545883178711]}],[{"lng":[-79.7165069580078,-79.7322235107422,-79.7751922607422,-79.7920379638672,-79.8084487915039,-79.8382339477539,-79.81591796875,-79.8191375732422,-79.8108444213867,-79.7678756713867,-79.7425765991211,-79.7267074584961,-79.7134780883789,-79.7165069580078],"lat":[57.5155258178711,57.5075225830078,57.5144538879395,57.4485855102539,57.4424324035645,57.4830093383789,57.5177268981934,57.5415992736816,57.5592727661133,57.5987319946289,57.6079597473145,57.6045913696289,57.5550270080566,57.5155258178711]}],[{"lng":[-69.1600570678711,-69.2208557128906,-69.3017120361328,-69.330810546875,-69.3528289794922,-69.3163146972656,-69.3115234375,-69.3299789428711,-69.30322265625,-69.1951675415039,-69.1938018798828,-69.1806640625,-69.1551742553711,-69.1600570678711],"lat":[59.0402374267578,58.9675788879395,58.9766120910645,58.9616203308105,58.9607391357422,59.0289535522461,59.0748062133789,59.1212425231934,59.1448745727539,59.1461448669434,59.0927734375,59.0727081298828,59.0635757446289,59.0402374267578]}],[{"lng":[-80.2852554321289,-80.3172378540039,-80.3246536254883,-80.2989730834961,-80.2566452026367,-80.2099609375,-80.167236328125,-80.1830520629883,-80.2405319213867,-80.2852554321289],"lat":[59.6241226196289,59.6210441589355,59.6332015991211,59.6741676330566,59.6791534423828,59.724609375,59.7088851928711,59.6834983825684,59.6449203491211,59.6241226196289]}],[{"lng":[-80.064208984375,-80.1670913696289,-80.1222152709961,-80.0836410522461,-80.0411605834961,-79.9558639526367,-79.8986282348633,-79.9496078491211,-80.064208984375],"lat":[59.7708015441895,59.7638702392578,59.8231964111328,59.8518562316895,59.8701667785645,59.8769569396973,59.8531265258789,59.8099098205566,59.7708015441895]}],[{"lng":[-64.4070281982422,-64.4419403076172,-64.5582046508789,-64.7379379272461,-64.8089904785156,-64.8337860107422,-64.83642578125,-64.7825698852539,-64.6462860107422,-64.5325241088867,-64.4998016357422,-64.4070281982422],"lat":[60.3670883178711,60.2978515625,60.3232421875,60.3756332397461,60.410400390625,60.4484367370605,60.5010223388672,60.5096168518066,60.5146026611328,60.4414024353027,60.4302215576172,60.3670883178711]}],[{"lng":[-68.2337875366211,-68.3241271972656,-68.365234375,-68.3678741455078,-68.3382797241211,-68.2347640991211,-68.1418914794922,-68.0875930786133,-67.97802734375,-67.9142074584961,-67.8475646972656,-67.81884765625,-67.84423828125,-67.9223175048828,-68.0123062133789,-68.2337875366211],"lat":[60.2409172058105,60.23291015625,60.2540512084961,60.3147430419922,60.360595703125,60.4555702209473,60.56201171875,60.5878410339355,60.5704116821289,60.5398445129395,60.4888191223145,60.4495086669922,60.3916511535645,60.3398933410645,60.3046417236328,60.2409172058105]}],[{"lng":[-78.5316467285156,-78.6688995361328,-78.6690979003906,-78.6120147705078,-78.3995590209961,-78.24169921875,-78.2788619995117,-78.3724594116211,-78.5316467285156],"lat":[60.7285652160645,60.7168922424316,60.7313499450684,60.7723121643066,60.8081092834473,60.8186531066895,60.7838897705078,60.7563972473145,60.7285652160645]}],[{"lng":[-64.8326187133789,-64.8568344116211,-64.8797836303711,-64.9542465209961,-65.0543975830078,-65.0915069580078,-65.3938980102539,-65.4268035888672,-65.43212890625,-65.3316421508789,-65.1297912597656,-64.9544448852539,-64.7896499633789,-64.75634765625,-64.6695861816406,-64.6909713745117,-64.6963882446289,-64.7323226928711,-64.78759765625,-64.8326187133789],"lat":[61.3660659790039,61.3544425964355,61.3570785522461,61.410400390625,61.4320335388184,61.4529800415039,61.5628433227539,61.6110382080078,61.6495132446289,61.6682624816895,61.6856918334961,61.6851043701172,61.6622085571289,61.6376495361328,61.5930213928223,61.5393562316895,61.4714851379395,61.4384269714355,61.4132843017578,61.3660659790039]}],[{"lng":[-93.0439453125,-93.0848159790039,-93.1765594482422,-93.1966781616211,-93.0757827758789,-92.9930191040039,-92.9999542236328,-93.0439453125],"lat":[61.8440895080566,61.8417015075684,61.8927230834961,61.9185523986816,61.9350090026855,61.8896980285645,61.8674774169922,61.8440895080566]}],[{"lng":[-65.0305633544922,-65.008056640625,-64.9810562133789,-64.9605484008789,-64.9466781616211,-64.9235382080078,-64.8651351928711,-64.8455123901367,-64.8470764160156,-64.8965835571289,-64.927734375,-65.1659164428711,-65.2302703857422,-65.2353515625,-65.2105484008789,-65.1739273071289,-65.1256332397461,-65.068359375,-65.0305633544922],"lat":[61.8790550231934,61.8702659606934,61.8806114196777,61.8716773986816,61.8433609008789,61.82373046875,61.7981452941895,61.7798805236816,61.7615203857422,61.7332992553711,61.7325210571289,61.7976531982422,61.864013671875,61.8977088928223,61.9283676147461,61.9432106018066,61.9422340393066,61.926025390625,61.8790550231934]}],[{"lng":[-79.5453109741211,-79.4662094116211,-79.3360366821289,-79.2864761352539,-79.2720260620117,-79.3064498901367,-79.3239288330078,-79.3722610473633,-79.462158203125,-79.5418472290039,-79.611328125,-79.6687469482422,-79.7142562866211,-79.7633285522461,-79.8161163330078,-79.8963394165039,-80.004150390625,-80.0919952392578,-80.2049331665039,-80.2651901245117,-80.2761688232422,-80.2798385620117,-80.2751007080078,-80.2600555419922,-80.2346725463867,-80.1785659790039,-80.0215835571289,-79.9267578125,-79.8680648803711,-79.7125473022461,-79.6495590209961,-79.59765625,-79.5453109741211],"lat":[62.4117202758789,62.384521484375,62.293701171875,62.2476539611816,62.1859817504883,62.103515625,62.0260734558105,61.9677734375,61.8940963745117,61.8080062866211,61.7096176147461,61.6444320678711,61.612548828125,61.5959510803223,61.5946311950684,61.630126953125,61.7025337219238,61.7468299865723,61.7772445678711,61.8182106018066,61.8585929870605,61.9894981384277,62.0546379089355,62.1090354919434,62.1526870727539,62.2127914428711,62.3429679870605,62.3928680419922,62.4043426513672,62.39501953125,62.3982925415039,62.4132308959961,62.4117202758789]}],[{"lng":[-64.8238296508789,-64.6318359375,-64.5153274536133,-64.4650421142578,-64.4180679321289,-64.4783172607422,-64.5464859008789,-64.6574172973633,-64.8373031616211,-64.9012222290039,-64.9564895629883,-64.9307632446289,-64.8419418334961,-64.8271026611328,-64.849853515625,-64.8487777709961,-64.8238296508789],"lat":[62.5587425231934,62.5479965209961,62.5518074035645,62.5359344482422,62.4874000549316,62.4178695678711,62.3914070129395,62.3835945129395,62.40625,62.4210433959961,62.4583511352539,62.4850082397461,62.494140625,62.5049819946289,62.5254364013672,62.5433120727539,62.5587425231934]}],[{"lng":[-74.0004425048828,-74.0535659790039,-74.2535171508789,-74.49951171875,-74.62646484375,-74.6199722290039,-74.564208984375,-74.5009307861328,-74.394775390625,-74.1089324951172,-74.0167999267578,-73.9881820678711,-74.0004425048828],"lat":[62.618408203125,62.6096649169922,62.6219749450684,62.6687965393066,62.7127418518066,62.726318359375,62.7332992553711,62.7265090942383,62.69580078125,62.6803245544434,62.6626968383789,62.6360855102539,62.618408203125]}],[{"lng":[-70.3370590209961,-70.4063491821289,-70.54150390625,-70.6865692138672,-70.7660675048828,-70.8375549316406,-70.8512649536133,-70.9861373901367,-71.1369094848633,-71.2201156616211,-71.1348648071289,-71.013671875,-70.8346252441406,-70.67431640625,-70.442626953125,-70.3667907714844,-70.29150390625,-70.2688522338867,-70.28857421875,-70.3370590209961],"lat":[62.5487289428711,62.5448226928711,62.5523414611816,62.5731925964355,62.5968742370605,62.6480941772461,62.704345703125,62.7877922058105,62.81591796875,62.8739280700684,62.8779754638672,62.8653335571289,62.8400917053223,62.8070335388184,62.7337913513184,62.6658172607422,62.6159629821777,62.5780754089355,62.5615768432617,62.5487289428711]}],[{"lng":[-82.00048828125,-81.9605484008789,-81.9485855102539,-81.9644012451172,-81.9901885986328,-82.0258331298828,-82.1137237548828,-82.3880386352539,-82.490966796875,-82.5682601928711,-83.0158233642578,-83.0713806152344,-83.1296844482422,-83.2523880004883,-83.3768081665039,-83.6988830566406,-83.7144012451172,-83.7286148071289,-83.7609405517578,-83.9031219482422,-83.9124069213867,-83.9104995727539,-83.8992691040039,-83.7390594482422,-83.3764114379883,-83.2894515991211,-83.1109390258789,-83.0262680053711,-82.9657669067383,-82.7064437866211,-82.459716796875,-82.2347640991211,-82.1292495727539,-82.047607421875,-82.00048828125],"lat":[62.9542007446289,62.9262199401855,62.8840370178223,62.82763671875,62.7763175964355,62.7300758361816,62.6522445678711,62.5191383361816,62.4465827941895,62.4032249450684,62.2099075317383,62.2003898620605,62.2041053771973,62.2329597473145,62.2381324768066,62.1602554321289,62.1735877990723,62.2571754455566,62.3035163879395,62.4024925231934,62.425537109375,62.4541511535645,62.4764633178711,62.56884765625,62.9049301147461,62.9215812683105,62.8841323852539,62.8720703125,62.8739280700684,62.9445304870605,62.9361839294434,62.9774398803711,62.9776840209961,62.9705619812012,62.9542007446289]}],[{"lng":[-77.876708984375,-77.7920913696289,-77.7037048339844,-77.65478515625,-77.5384826660156,-77.5272979736328,-77.53271484375,-77.5939025878906,-77.6576690673828,-77.7914581298828,-77.9424285888672,-78.0244140625,-78.2559585571289,-78.46875,-78.5367660522461,-78.50732421875,-78.4172821044922,-78.2349090576172,-77.9339370727539,-77.876708984375],"lat":[63.4705581665039,63.4278335571289,63.4308586120605,63.3959999084473,63.2870559692383,63.2689437866211,63.2336463928223,63.1884307861328,63.1646003723145,63.1295890808105,63.1144027709961,63.1388702392578,63.2398414611816,63.3579063415527,63.4237289428711,63.4511260986328,63.469970703125,63.4895515441895,63.4789505004883,63.4705581665039]}],[{"lng":[-76.6775894165039,-76.7831573486328,-76.921875,-77.0572280883789,-77.36474609375,-77.1336898803711,-76.7636184692383,-76.6524429321289,-76.6775894165039],"lat":[63.3939437866211,63.384033203125,63.4063453674316,63.4497528076172,63.5883293151855,63.6820335388184,63.5735855102539,63.5035667419434,63.3939437866211]}],[{"lng":[-77.64208984375,-77.7140655517578,-77.9288101196289,-77.9579086303711,-77.9659652709961,-77.9313430786133,-77.7107925415039,-77.6172866821289,-77.5693893432617,-77.5636215209961,-77.64208984375],"lat":[63.9918937683105,63.9457054138184,63.9620094299316,63.9760246276855,63.9929161071777,64.0147933959961,64.03564453125,64.0372085571289,64.0304183959961,64.0220642089844,63.9918937683105]}],[{"lng":[-84.9196243286133,-84.8851089477539,-84.8420867919922,-84.7712860107422,-84.6125030517578,-84.5679168701172,-84.5011291503906,-84.2664108276367,-84.1799774169922,-84.1334991455078,-84.0848617553711,-83.9001007080078,-83.7225570678711,-83.4907684326172,-83.4071273803711,-83.2222671508789,-83.2009811401367,-82.9905776977539,-82.6676330566406,-82.5857925415039,-82.2716751098633,-82.1588821411133,-82.0499954223633,-81.9289016723633,-81.7872085571289,-81.6761245727539,-81.6673812866211,-81.680908203125,-81.720947265625,-81.9026336669922,-81.8871078491211,-81.7161102294922,-81.3356475830078,-81.1040496826172,-81.0235824584961,-81.0050277709961,-80.921142578125,-80.8289566040039,-80.6942901611328,-80.6075668334961,-80.56884765625,-80.5792007446289,-80.6682662963867,-80.4505844116211,-80.2613296508789,-80.3020477294922,-80.5040512084961,-80.7117614746094,-80.9535140991211,-81.0138626098633,-81.04638671875,-81.1796875,-81.3717346191406,-81.9633255004883,-82.14599609375,-82.3781280517578,-82.4117202758789,-82.4670867919922,-82.5714797973633,-82.9296875,-83.0338821411133,-83.0386734008789,-83.0161590576172,-83.0651321411133,-83.185546875,-83.303955078125,-83.4943389892578,-83.5835952758789,-83.6170883178711,-83.6379852294922,-83.66162109375,-83.728271484375,-84.0221176147461,-84.1416015625,-84.2604522705078,-84.3076171875,-84.3874969482422,-84.5062026977539,-84.5545959472656,-84.6329116821289,-84.7955551147461,-84.9615249633789,-85.2381362915039,-85.3926315307617,-85.4955062866211,-85.5661087036133,-85.7141647338867,-85.7387237548828,-85.7689437866211,-85.8046875,-86.3015670776367,-86.57568359375,-86.8468704223633,-86.9152374267578,-87.0529327392578,-87.1519012451172,-87.1771469116211,-87.19384765625,-87.1889114379883,-87.1543960571289,-87.0319366455078,-86.9320297241211,-86.8860397338867,-86.4217300415039,-86.30859375,-86.2520980834961,-86.252197265625,-86.274169921875,-86.3544921875,-86.3749008178711,-86.374267578125,-86.3438491821289,-86.2276306152344,-86.1882781982422,-86.1142120361328,-86.0746078491211,-86.01708984375,-85.961669921875,-85.81396484375,-85.6990737915039,-85.5546875,-85.5230484008789,-85.4955062866211,-85.4424285888672,-85.2411193847656,-85.1762237548828,-85.13037109375,-85.1053695678711,-85.1303253173828,-85.226318359375,-85.2427749633789,-85.2399444580078,-85.0560531616211,-84.9196243286133],"lat":[65.2610855102539,65.2489776611328,65.2559051513672,65.3052749633789,65.4473190307617,65.4606399536133,65.4584503173828,65.3672409057617,65.3163070678711,65.2454605102539,65.2178192138672,65.1812438964844,65.1689910888672,65.1317901611328,65.1039047241211,64.9679641723633,64.9596710205078,64.9041061401367,64.7803192138672,64.7619171142578,64.7211456298828,64.690673828125,64.644287109375,64.5594253540039,64.4259796142578,64.212646484375,64.1705093383789,64.1455612182617,64.118896484375,64.03125,64.0164031982422,64.0218734741211,64.0757827758789,64.037109375,64.0310592651367,64.0333023071289,64.1004867553711,64.0899429321289,64.0247573852539,63.9720726013184,63.9319381713867,63.9092254638672,63.9014663696289,63.8629379272461,63.8019523620605,63.76220703125,63.6737823486328,63.5963897705078,63.4802780151367,63.4625473022461,63.4615707397461,63.4832000732422,63.5380859375,63.6644515991211,63.6911582946777,63.706787109375,63.7365264892578,63.9269523620605,63.960693359375,64.0004348754883,64.0232391357422,64.0614242553711,64.1269989013672,64.1590347290039,64.1575164794922,64.143798828125,64.0992202758789,64.05810546875,64.013427734375,63.9178237915039,63.8726081848145,63.8133773803711,63.6598625183105,63.6137199401855,63.6004867553711,63.5857887268066,63.5290985107422,63.3900375366211,63.3499984741211,63.3092269897461,63.2469215393066,63.1972198486328,63.1393051147461,63.1196784973145,63.1391105651855,63.2708969116211,63.657958984375,63.6841316223145,63.7003402709961,63.7065391540527,63.6567878723145,63.6623077392578,63.5752906799316,63.5689926147461,63.5717811584473,63.5856475830078,63.5951194763184,63.6328163146973,63.6722679138184,63.7148933410645,63.8304214477539,63.9016571044922,63.9237327575684,64.0515594482422,64.0936584472656,64.1368637084961,64.1812515258789,64.238037109375,64.3765106201172,64.5029830932617,64.5658187866211,64.662353515625,64.8963394165039,65.0102996826172,65.4172821044922,65.5338363647461,65.6402816772461,65.7042465209961,65.8319320678711,65.8831481933594,65.9186553955078,65.91455078125,65.8997039794922,65.8455581665039,65.7955093383789,65.7468719482422,65.6929244995117,65.6227035522461,65.5920867919922,65.5457534790039,65.5262222290039,65.5103073120117,65.4374008178711,65.2610855102539]}],[{"lng":[-84.6747589111328,-84.7269973754883,-84.7829132080078,-84.8302764892578,-84.8689422607422,-84.93115234375,-85.0719757080078,-85.0963363647461,-85.1362762451172,-85.14404296875,-85.1741638183594,-85.1756820678711,-85.1496124267578,-85.0313949584961,-84.9385757446289,-84.9198226928711,-84.8894500732422,-84.8695297241211,-84.7573776245117,-84.6917495727539,-84.6026382446289,-84.6022491455078,-84.6262664794922,-84.6747589111328],"lat":[65.5749969482422,65.563720703125,65.570068359375,65.5989761352539,65.6505355834961,65.6891632080078,65.7373504638672,65.7561950683594,65.8208541870117,65.8853530883789,65.9437484741211,65.972412109375,66.015380859375,66.0254821777344,66.008544921875,65.9970245361328,65.9720764160156,65.9414978027344,65.8589401245117,65.7931594848633,65.6573715209961,65.6314926147461,65.6040573120117,65.5749969482422]}],[{"lng":[-83.7259750366211,-83.5975112915039,-83.4694366455078,-83.26318359375,-83.2337341308594,-83.2339324951172,-83.263671875,-83.3324203491211,-83.3814468383789,-83.4954071044922,-83.537109375,-83.5832061767578,-83.6065444946289,-83.6363754272461,-83.6443786621094,-83.6306686401367,-83.6495132446289,-83.7875518798828,-83.8092269897461,-83.7981872558594,-83.701904296875,-83.7865219116211,-83.8135757446289,-83.93896484375,-84.0084991455078,-84.1182632446289,-84.1299362182617,-84.1432113647461,-84.1932144165039,-84.2229461669922,-84.2709045410156,-84.3701171875,-84.4505844116211,-84.4673843383789,-84.4563446044922,-84.4071807861328,-84.1222610473633,-83.9503860473633,-83.7869644165039,-83.7013626098633,-83.6936569213867,-83.7148895263672,-83.76513671875,-83.7259750366211],"lat":[65.7967300415039,65.7574691772461,65.7351989746094,65.7232894897461,65.7150421142578,65.6965866088867,65.6678237915039,65.6310577392578,65.6299819946289,65.6559600830078,65.669189453125,65.6986312866211,65.7013626098633,65.6915054321289,65.6785202026367,65.662353515625,65.6577606201172,65.6688919067383,65.6783218383789,65.7100143432617,65.7561950683594,65.7704086303711,65.7874984741211,65.7584457397461,65.7515106201172,65.7717742919922,65.87744140625,65.9159698486328,65.942138671875,65.9697799682617,65.9906234741211,66.0118179321289,66.0644073486328,66.0882797241211,66.1062545776367,66.1310043334961,66.0778350830078,66.0274963378906,65.9657669067383,65.9201126098633,65.890380859375,65.8607406616211,65.8311538696289,65.7967300415039]}],[{"lng":[-83.1234817504883,-83.0238800048828,-82.9481430053711,-82.9313507080078,-83.0108413696289,-83.0598602294922,-83.1479034423828,-83.2139129638672,-83.2325668334961,-83.2378387451172,-83.2222671508789,-83.1234817504883],"lat":[66.2828140258789,66.2706527709961,66.2719268798828,66.25732421875,66.2084426879883,66.1992645263672,66.2342300415039,66.2770462036133,66.302978515625,66.33154296875,66.3364791870117,66.2828140258789]}],[{"lng":[-108.092720031738,-107.966453552246,-107.805519104004,-107.833343505859,-107.895164489746,-107.943946838379,-107.965133666992,-108.059722900391,-108.092720031738],"lat":[67.0051727294922,66.9972610473633,66.9985809326172,66.9213409423828,66.8718719482422,66.8578109741211,66.8848571777344,66.9468765258789,67.0051727294922]}],[{"lng":[-62.6815414428711,-62.805419921875,-62.8716316223145,-62.8250961303711,-62.7569808959961,-62.6644020080566,-62.6252937316895,-62.4697303771973,-62.4167976379395,-62.3963394165039,-62.484619140625,-62.6815414428711],"lat":[67.0562973022461,67.02880859375,67.0625915527344,67.0721130371094,67.112548828125,67.1482391357422,67.1769561767578,67.1900405883789,67.1884765625,67.1783218383789,67.1342315673828,67.0562973022461]}],[{"lng":[-107.899848937988,-107.950248718262,-107.969535827637,-108.003959655762,-108.073341369629,-108.152244567871,-108.151123046875,-108.120849609375,-108.127532958984,-108.048973083496,-107.990867614746,-107.974899291992,-107.989356994629,-107.931793212891,-107.905174255371,-107.890968322754,-107.899848937988],"lat":[67.4018096923828,67.3182144165039,67.3260269165039,67.3659133911133,67.3850631713867,67.429443359375,67.5248107910156,67.5681686401367,67.6285629272461,67.6648941040039,67.6221160888672,67.5493621826172,67.5135726928711,67.4764633178711,67.467041015625,67.4372100830078,67.4018096923828]}],[{"lng":[-109.166404724121,-109.053909301758,-108.970504760742,-108.909622192383,-108.886032104492,-108.893852233887,-108.920166015625,-109.096244812012,-109.161521911621,-109.18359375,-109.166404724121],"lat":[67.9823760986328,67.9718780517578,67.979736328125,67.9394073486328,67.8985366821289,67.8844680786133,67.8788070678711,67.9240264892578,67.9517059326172,67.9749984741211,67.9823760986328]}],[{"lng":[-73.6217269897461,-74.1090850830078,-74.3740768432617,-74.480712890625,-74.5733947753906,-74.6786117553711,-74.7459945678711,-74.749267578125,-74.7314453125,-74.70654296875,-74.37939453125,-74.1113739013672,-73.8807144165039,-73.5840301513672,-73.4937515258789,-73.459228515625,-73.4352569580078,-73.4015655517578,-73.398193359375,-73.4071807861328,-73.6217269897461],"lat":[67.7838363647461,67.7825164794922,67.7895965576172,67.8048782348633,67.8286590576172,67.9055633544922,67.9848175048828,68.0184631347656,68.0487823486328,68.0670928955078,68.0934524536133,68.0605926513672,68.0219192504883,68.0153274536133,68.0006332397461,67.9898986816406,67.9700164794922,67.8787155151367,67.8299331665039,67.7930603027344,67.7838363647461]}],[{"lng":[-109.323150634766,-109.36083984375,-109.497955322266,-109.469139099121,-109.341697692871,-109.323539733887,-109.323150634766],"lat":[67.9908752441406,67.9876022338867,68.0470199584961,68.0979995727539,68.0458450317383,68.0133285522461,67.9908752441406]}],[{"lng":[-86.5955581665039,-86.63818359375,-86.7059631347656,-86.861083984375,-86.8925247192383,-86.9083023071289,-86.908447265625,-86.8945846557617,-86.8470687866211,-86.937744140625,-86.9598159790039,-86.9491653442383,-86.898681640625,-86.8848648071289,-86.833984375,-86.7021026611328,-86.5699234008789,-86.4519500732422,-86.421142578125,-86.4303207397461,-86.4200210571289,-86.3903274536133,-86.3824234008789,-86.3964385986328,-86.4469223022461,-86.4896469116211,-86.5460433959961,-86.5955581665039],"lat":[67.7359390258789,67.73486328125,67.7501525878906,67.8105010986328,67.8365707397461,67.8670425415039,67.9019470214844,67.9380874633789,68.01025390625,68.0675735473633,68.1002426147461,68.1186981201172,68.1628875732422,68.1905288696289,68.2296905517578,68.3056106567383,68.2876968383789,68.2254867553711,68.1834487915039,68.1387176513672,68.0739288330078,67.9889221191406,67.9272994995117,67.8889694213867,67.8169860839844,67.7835998535156,67.752197265625,67.7359390258789]}],[{"lng":[-75.6758804321289,-75.15380859375,-75.1031265258789,-75.078125,-75.0634765625,-75.0623550415039,-75.0728530883789,-75.1238784790039,-75.1273422241211,-75.0863800048828,-75.0905227661133,-75.1272964477539,-75.2019500732422,-75.3144989013672,-75.4001007080078,-75.7800827026367,-76.0489730834961,-76.332763671875,-76.6939468383789,-76.8588333129883,-76.9441909790039,-77.0048828125,-77.075927734375,-77.1570816040039,-77.2242126464844,-77.3043975830078,-77.305908203125,-77.2285690307617,-77.1258850097656,-76.9447250366211,-76.740234375,-76.688232421875,-76.5958023071289,-76.3644485473633,-76.1728057861328,-76.0882797241211,-75.9827575683594,-75.8665008544922,-75.6758804321289],"lat":[68.322509765625,68.2340316772461,68.201904296875,68.1731414794922,68.1412124633789,68.0753860473633,68.0490264892578,67.9852523803711,67.9652328491211,67.7514114379883,67.634765625,67.5373077392578,67.4591827392578,67.4004364013672,67.36669921875,67.2835464477539,67.2620086669922,67.2581024169922,67.23583984375,67.240478515625,67.2502975463867,67.2669372558594,67.3196258544922,67.4083557128906,67.5082015991211,67.6851043701172,67.7061004638672,67.85009765625,67.9470672607422,68.0909652709961,68.2312469482422,68.25439453125,68.2789535522461,68.3187026977539,68.3087921142578,68.3138198852539,68.3323287963867,68.3368148803711,68.322509765625]}],[{"lng":[-78.9827194213867,-79.0640640258789,-79.1740264892578,-79.1747512817383,-79.1534652709961,-78.9525909423828,-78.8686981201172,-78.8285140991211,-78.9827194213867],"lat":[68.1928176879883,68.1817932128906,68.2349624633789,68.2644577026367,68.3352584838867,68.35302734375,68.310302734375,68.2681655883789,68.1928176879883]}],[{"lng":[-104.540672302246,-104.595993041992,-104.699462890625,-104.851119995117,-104.965232849121,-105.041748046875,-105.051368713379,-104.993995666504,-104.907272338867,-104.700393676758,-104.602005004883,-104.472122192383,-104.444534301758,-104.440475463867,-104.457130432129,-104.540672302246],"lat":[68.4059066772461,68.4021987915039,68.4182662963867,68.4539489746094,68.4917526245117,68.5315399169922,68.5590362548828,68.57421875,68.581787109375,68.5767135620117,68.5615234375,68.5035171508789,68.470703125,68.4495162963867,68.43115234375,68.4059066772461]}],[{"lng":[-74.880859375,-74.9593276977539,-75.072509765625,-75.3101577758789,-75.4002380371094,-75.4034194946289,-75.3961868286133,-75.3701705932617,-75.2873992919922,-75.1997528076172,-75.07470703125,-74.983642578125,-74.884765625,-74.8189468383789,-74.7982406616211,-74.8309555053711,-74.8279342651367,-74.8128890991211,-74.8185577392578,-74.844970703125,-74.880859375],"lat":[68.3486785888672,68.3422393798828,68.4041519165039,68.4744644165039,68.5254821777344,68.5501480102539,68.5888214111328,68.6360855102539,68.687744140625,68.6960983276367,68.6847152709961,68.6476058959961,68.5446319580078,68.4944381713867,68.4579620361328,68.4407196044922,68.4237747192383,68.413330078125,68.3940887451172,68.365966796875,68.3486785888672]}],[{"lng":[-101.845901489258,-101.88720703125,-101.944633483887,-102.266357421875,-102.308151245117,-102.2705078125,-102.1533203125,-102.074363708496,-102.013374328613,-101.828369140625,-101.759330749512,-101.732955932617,-101.721633911133,-101.732032775879,-101.794281005859,-101.845901489258],"lat":[68.5863265991211,68.5849609375,68.6028289794922,68.6636734008789,68.6819839477539,68.7075729370117,68.740478515625,68.7740249633789,68.8253936767578,68.7989730834961,68.7746124267578,68.75341796875,68.72412109375,68.6521530151367,68.6368637084961,68.5863265991211]}],[{"lng":[-100.217231750488,-100.248779296875,-100.287940979004,-100.36572265625,-100.397315979004,-100.442573547363,-100.480659484863,-100.496925354004,-100.521041870117,-100.573387145996,-100.596534729004,-100.615966796875,-100.625396728516,-100.624656677246,-100.599899291992,-100.598335266113,-100.611572265625,-100.600631713867,-100.565475463867,-100.520309448242,-100.413963317871,-100.329933166504,-100.288963317871,-100.206886291504,-100.178466796875,-100.217231750488],"lat":[68.8066940307617,68.7750473022461,68.7660675048828,68.7288055419922,68.7238235473633,68.74755859375,68.7861785888672,68.792236328125,68.7906723022461,68.7660675048828,68.7664031982422,68.7829055786133,68.81591796875,68.8652801513672,68.9413528442383,68.9690933227539,68.9901809692383,69.0094223022461,69.0268096923828,69.0350570678711,69.028076171875,68.99755859375,68.9576644897461,68.9261703491211,68.9039077758789,68.8066940307617]}],[{"lng":[-99.9946823120117,-100.018020629883,-100.141311645508,-100.195709228516,-100.241996765137,-100.247360229492,-100.237060546875,-100.186965942383,-100.153129577637,-100.072799682617,-100.035354614258,-100.005615234375,-99.9946823120117],"lat":[69.0135192871094,68.9540023803711,68.9699249267578,68.991455078125,69.0403823852539,69.0527801513672,69.0714797973633,69.114013671875,69.1294937133789,69.1114730834961,69.0865707397461,69.047119140625,69.0135192871094]}],[{"lng":[-90.4925765991211,-90.5744171142578,-90.6257858276367,-90.6674346923828,-90.6858901977539,-90.7715835571289,-90.7656707763672,-90.7423858642578,-90.6627883911133,-90.5997085571289,-90.5398483276367,-90.5106506347656,-90.4853515625,-90.4925765991211],"lat":[69.2210922241211,69.2094268798828,69.2509231567383,69.2594680786133,69.2871627807617,69.2925796508789,69.3359909057617,69.3573303222656,69.3741683959961,69.3678283691406,69.3246078491211,69.2904281616211,69.2466278076172,69.2210922241211]}],[{"lng":[-79.2106475830078,-79.2797317504883,-79.3613739013672,-79.3904800415039,-79.40576171875,-79.3911590576172,-79.354736328125,-79.3052215576172,-79.24267578125,-79.1449737548828,-78.9304733276367,-78.9000015258789,-78.8041000366211,-78.7718276977539,-78.6620101928711,-78.6501922607422,-78.6890640258789,-78.6890640258789,-78.6501922607422,-78.5966796875,-78.4579086303711,-78.3325729370117,-78.3004913330078,-78.2724609375,-78.2340774536133,-78.2289581298828,-78.2870101928711,-78.43896484375,-78.5329055786133,-78.5517578125,-78.560302734375,-78.5956573486328,-78.7053680419922,-78.7791976928711,-78.8526840209961,-79.0536117553711,-79.2106475830078],"lat":[68.845458984375,68.8387222290039,68.857666015625,68.8901824951172,68.9230499267578,68.93994140625,68.9559097290039,68.9923324584961,69.0492630004883,69.0874557495117,69.1229019165039,69.1353988647461,69.235107421875,69.252197265625,69.2623519897461,69.2751922607422,69.2997512817383,69.3250961303711,69.3512191772461,69.37060546875,69.3895034790039,69.3860321044922,69.3787155151367,69.3612365722656,69.3145980834961,69.3040008544922,69.2626953125,69.1991653442383,69.1460418701172,69.128662109375,69.1062469482422,69.0790481567383,69.013671875,68.9504852294922,68.9156723022461,68.8829116821289,68.845458984375]}],[{"lng":[-90.1998062133789,-90.1773910522461,-90.2672882080078,-90.2954559326172,-90.3302764892578,-90.3640670776367,-90.4646911621094,-90.4920425415039,-90.4551239013672,-90.3772506713867,-90.3220748901367,-90.2528305053711,-90.2285614013672,-90.1998062133789],"lat":[69.4190902709961,69.3570785522461,69.2728958129883,69.2578125,69.252197265625,69.2625961303711,69.3287048339844,69.369873046875,69.3904800415039,69.4162063598633,69.4287109375,69.4179153442383,69.43603515625,69.4190902709961]}],[{"lng":[-76.995361328125,-77.1216354370117,-77.2150344848633,-77.2755889892578,-77.3219223022461,-77.37939453125,-77.3580551147461,-77.3515167236328,-77.3409194946289,-77.3187026977539,-77.1875534057617,-77.1091842651367,-76.9940948486328,-76.7457046508789,-76.68408203125,-76.6688461303711,-76.6700210571289,-76.6874542236328,-76.810302734375,-76.8693389892578,-76.9112319946289,-76.995361328125],"lat":[69.1437454223633,69.1321258544922,69.1380844116211,69.1616668701172,69.193603515625,69.2740249633789,69.3115234375,69.378662109375,69.4038619995117,69.4163055419922,69.4400863647461,69.4374008178711,69.4117736816406,69.4040069580078,69.3804168701172,69.3661651611328,69.3485870361328,69.3276824951172,69.2667541503906,69.224853515625,69.1746597290039,69.1437454223633]}],[{"lng":[-101.171730041504,-101.253517150879,-101.268501281738,-101.261520385742,-101.267631530762,-101.289497375488,-101.2177734375,-101.207328796387,-101.230125427246,-101.328468322754,-101.356498718262,-101.351318359375,-101.312889099121,-101.244873046875,-101.098342895508,-101.031150817871,-101.000633239746,-101.049171447754,-101.086868286133,-101.126953125,-101.171730041504],"lat":[69.3970718383789,69.3884811401367,69.3905792236328,69.4178237915039,69.4314956665039,69.4412612915039,69.4629440307617,69.4798355102539,69.4928207397461,69.5174331665039,69.5397033691406,69.5592269897461,69.5760803222656,69.5735397338867,69.540771484375,69.4954605102539,69.4619140625,69.4569320678711,69.443359375,69.4147033691406,69.3970718383789]}],[{"lng":[-95.513671875,-95.3809051513672,-95.382080078125,-95.3994140625,-95.4374465942383,-95.4962387084961,-95.5785217285156,-95.6843719482422,-95.7301254272461,-95.6958923339844,-95.670166015625,-95.6658248901367,-95.6828155517578,-95.7041015625,-95.7636260986328,-95.8062057495117,-95.8177719116211,-95.79833984375,-95.8118209838867,-95.8582000732422,-95.8934555053711,-95.9560546875,-95.9859390258789,-95.9779281616211,-95.9947738647461,-95.9788589477539,-95.9362258911133,-95.8758316040039,-95.7977523803711,-95.7066421508789,-95.6024932861328,-95.513671875],"lat":[69.5736312866211,69.506591796875,69.4740753173828,69.4197769165039,69.3784637451172,69.35009765625,69.3358383178711,69.335693359375,69.3475570678711,69.3895492553711,69.4020004272461,69.43896484375,69.5002899169922,69.5380401611328,69.5596160888672,69.5605010986328,69.5405731201172,69.4998016357422,69.447021484375,69.3822326660156,69.3517608642578,69.3671417236328,69.3918914794922,69.4327087402344,69.4696731567383,69.5088424682617,69.5670394897461,69.6060104370117,69.625732421875,69.6243209838867,69.601806640625,69.5736312866211]}],[{"lng":[-139.043121337891,-139.125732421875,-139.256988525391,-139.291412353516,-139.139602661133,-139.072647094727,-138.931533813477,-138.878845214844,-139.043121337891],"lat":[69.576904296875,69.539306640625,69.5785598754883,69.5978546142578,69.6496124267578,69.6476593017578,69.616943359375,69.5896987915039,69.576904296875]}],[{"lng":[-67.9146957397461,-67.9402847290039,-68.2023391723633,-68.2213821411133,-68.09326171875,-67.9891128540039,-67.9088363647461,-67.8291015625,-67.7545852661133,-67.8449249267578,-67.9146957397461],"lat":[69.5409698486328,69.5348663330078,69.5804214477539,69.6167526245117,69.6570281982422,69.6787643432617,69.6818389892578,69.6749954223633,69.6314392089844,69.5917434692383,69.5409698486328]}],[{"lng":[-78.0290985107422,-77.9778289794922,-77.9691467285156,-78.0399932861328,-78.3072204589844,-78.4700698852539,-78.5523910522461,-78.6620559692383,-78.7953109741211,-78.8481979370117,-78.789306640625,-78.5785675048828,-78.40185546875,-78.3441925048828,-78.2955093383789,-78.267333984375,-78.262451171875,-78.2007369995117,-78.1452102661133,-78.0290985107422],"lat":[69.7148971557617,69.6648864746094,69.6389617919922,69.6083984375,69.5518112182617,69.5025329589844,69.4915542602539,69.5026397705078,69.479736328125,69.4828109741211,69.5231399536133,69.6388168334961,69.650634765625,69.6748046875,69.6671371459961,69.6871566772461,69.7168502807617,69.739501953125,69.7392120361328,69.7148971557617]}],[{"lng":[-79.4306640625,-79.3902816772461,-79.364990234375,-79.4024429321289,-79.5528335571289,-79.8816909790039,-80.0475082397461,-79.9711380004883,-79.9544982910156,-79.9778366088867,-80.046875,-80.1614761352539,-80.2273406982422,-80.2444839477539,-80.2686462402344,-80.2997055053711,-80.32958984375,-80.3978500366211,-80.4480438232422,-80.7782211303711,-80.7947692871094,-80.7775421142578,-80.7266159057617,-80.6525421142578,-80.4659194946289,-80.45068359375,-80.4383316040039,-80.4242172241211,-80.294921875,-80.2136764526367,-80.1688461303711,-80.1246109008789,-80.061767578125,-79.9708480834961,-79.8695831298828,-79.71484375,-79.593994140625,-79.4306640625],"lat":[69.7877960205078,69.7304153442383,69.7123565673828,69.6851577758789,69.630859375,69.6086883544922,69.6343231201172,69.5563430786133,69.5234832763672,69.5096664428711,69.5138702392578,69.5359344482422,69.5624008178711,69.5931625366211,69.6000061035156,69.5828628540039,69.5867691040039,69.6326141357422,69.6497039794922,69.677001953125,69.6892623901367,69.7103500366211,69.7404327392578,69.7505874633789,69.7371139526367,69.7447738647461,69.78271484375,69.797607421875,69.7937927246094,69.8019485473633,69.7824249267578,69.7372589111328,69.7455062866211,69.7389602661133,69.7555236816406,69.7957000732422,69.8104934692383,69.7877960205078]}],[{"lng":[-97.439453125,-97.4086380004883,-97.3506851196289,-97.3057632446289,-97.2784652709961,-97.236083984375,-97.0963363647461,-96.9890594482422,-96.8751983642578,-96.6945266723633,-96.2999496459961,-96.1837387084961,-96.0609893798828,-95.9513626098633,-95.8548812866211,-95.7513732910156,-95.5855026245117,-95.4375534057617,-95.3741760253906,-95.3195343017578,-95.2677688598633,-95.295166015625,-95.3594741821289,-95.465576171875,-95.6142044067383,-95.6856460571289,-95.8021469116211,-95.8946228027344,-96.0240249633789,-96.2676315307617,-96.4015655517578,-96.5988235473633,-97.0083999633789,-97.263671875,-97.4720230102539,-97.7047805786133,-97.8853530883789,-98.2350616455078,-98.2579574584961,-98.2730484008789,-98.2801818847656,-98.2960433959961,-98.320556640625,-98.3755798339844,-98.4318389892578,-98.5396499633789,-98.7038116455078,-98.7752456665039,-98.8296432495117,-98.859130859375,-98.8637237548828,-98.8788604736328,-98.9044952392578,-98.9640121459961,-99.057373046875,-99.0938491821289,-99.0733871459961,-99.0906219482422,-99.2539978027344,-99.3179702758789,-99.4408645629883,-99.4946746826172,-99.5640640258789,-99.557373046875,-99.5132827758789,-99.4557113647461,-99.08544921875,-98.9122009277344,-98.7236328125,-98.5035095214844,-98.4559555053711,-98.4503860473633,-98.4666061401367,-98.5353469848633,-98.5585403442383,-98.5367202758789,-98.4483871459961,-98.494873046875,-98.5343704223633,-98.5482406616211,-98.5459976196289,-98.475830078125,-98.3893508911133,-98.2223129272461,-98.15576171875,-98.0413513183594,-98.1629867553711,-98.288818359375,-98.3044967651367,-98.3012237548828,-98.2682113647461,-98.2386703491211,-98.2004928588867,-98.0807571411133,-97.8889694213867,-97.7907180786133,-97.6912155151367,-97.6043472290039,-97.411376953125,-97.382568359375,-97.3856887817383,-97.4601516723633,-97.4694366455078,-97.439453125],"lat":[69.6426773071289,69.6307601928711,69.640869140625,69.6734924316406,69.6796340942383,69.6734924316406,69.614990234375,69.5536117553711,69.510009765625,69.4710922241211,69.3443832397461,69.2586898803711,69.1254425048828,69.0237350463867,68.9535675048828,68.8976516723633,68.8351135253906,68.880615234375,68.8921356201172,68.8731994628906,68.8260726928711,68.8050308227539,68.7783737182617,68.7472686767578,68.7450180053711,68.73583984375,68.6864700317383,68.6272506713867,68.6072769165039,68.5079116821289,68.470703125,68.4608383178711,68.5386734008789,68.5277328491211,68.543701171875,68.6259307861328,68.6724624633789,68.7393569946289,68.749267578125,68.7718734741211,68.8071746826172,68.8307571411133,68.8427276611328,68.8417053222656,68.818359375,68.7982406616211,68.8027801513672,68.8167419433594,68.838623046875,68.8643569946289,68.893798828125,68.9164581298828,68.9324188232422,68.932861328125,68.9176712036133,68.8988800048828,68.8765640258789,68.8633346557617,68.8631820678711,68.8762664794922,68.9176712036133,68.9595718383789,69.0341262817383,69.0542984008789,69.099609375,69.1312026977539,69.1497573852539,69.1675796508789,69.2191390991211,69.3082962036133,69.3346710205078,69.3540573120117,69.375,69.4263153076172,69.46142578125,69.47802734375,69.4795379638672,69.4993667602539,69.5274429321289,69.5449752807617,69.5728988647461,69.5790557861328,69.5650405883789,69.4845199584961,69.4688491821289,69.4566345214844,69.51220703125,69.6290054321289,69.6692886352539,69.6916961669922,69.7544403076172,69.780029296875,69.7969741821289,69.8330535888672,69.8582534790039,69.8616180419922,69.8412628173828,69.8022003173828,69.7384796142578,69.71240234375,69.7002410888672,69.6827163696289,69.6667938232422,69.6426773071289]}],[{"lng":[-86.9130401611328,-86.7987823486328,-86.6912155151367,-86.6127395629883,-86.5633773803711,-86.5309066772461,-86.5152359008789,-86.5576705932617,-86.7343215942383,-86.8549346923828,-86.9839859008789,-87.0438003540039,-87.1908187866211,-87.263916015625,-87.3232421875,-87.3231430053711,-87.1681137084961,-87.1072769165039,-86.9130401611328],"lat":[70.1132278442383,70.1052703857422,70.1150436401367,70.105712890625,70.0772476196289,70.0476531982422,70.0170440673828,69.9953155517578,69.976318359375,69.9857482910156,70.0111312866211,69.9998550415039,70.0185546875,70.0439453125,70.0801239013672,70.1022491455078,70.1272430419922,70.1466751098633,70.1132278442383]}],[{"lng":[-100.308349609375,-100.321235656738,-100.537254333496,-100.620651245117,-100.647758483887,-100.666938781738,-100.678321838379,-100.635307312012,-100.537940979004,-100.433937072754,-100.276123046875,-100.321098327637,-100.3232421875,-100.305511474609,-100.308349609375],"lat":[70.4958038330078,70.4876937866211,70.5250015258789,70.5469284057617,70.5631332397461,70.5962448120117,70.6461868286133,70.6703109741211,70.6686096191406,70.6494140625,70.5946273803711,70.578369140625,70.5424346923828,70.5083999633789,70.4958038330078]}],[{"lng":[-74.7088928222656,-74.762451171875,-74.8566360473633,-74.9961395263672,-75.1793899536133,-75.4012756347656,-75.7919464111328,-75.8193359375,-75.8759307861328,-76.0202178955078,-76.1511688232422,-76.185791015625,-76.24853515625,-76.464599609375,-76.5861358642578,-76.6964874267578,-76.8199691772461,-77.0733337402344,-77.2667007446289,-77.5965347290039,-77.8792495727539,-78.2147979736328,-78.458251953125,-78.7204132080078,-78.8455581665039,-79.0024871826172,-79.171875,-79.0830612182617,-79.0592269897461,-79.0660629272461,-79.0479965209961,-79.029052734375,-79.0261688232422,-79.0116729736328,-78.9807662963867,-78.9459991455078,-78.9208450317383,-78.9150924682617,-78.9392547607422,-79.0367126464844,-79.1737289428711,-79.4462432861328,-79.7620162963867,-80.0357437133789,-80.24755859375,-80.6826171875,-81.0282211303711,-81.2776412963867,-81.50732421875,-81.7609329223633,-81.9741668701172,-82.2133255004883,-82.4390640258789,-82.6900405883789,-82.8662109375,-83.0299758911133,-83.1419448852539,-83.149658203125,-83.1095199584961,-83.0731430053711,-83.0037078857422,-82.8677749633789,-82.7441864013672,-82.6451187133789,-82.5453186035156,-82.4883346557617,-82.417236328125,-82.408203125,-82.3047866821289,-82.1903762817383,-82.1378402709961,-82.1965789794922,-82.2407684326172,-82.28125,-82.3268051147461,-82.3682632446289,-82.4073715209961,-82.4465866088867,-82.4850616455078,-82.5152359008789,-82.5510711669922,-82.7603988647461,-82.9193344116211,-83.1792907714844,-83.3973159790039,-83.5926742553711,-83.469482421875,-83.4801330566406,-83.5247573852539,-83.615966796875,-83.6692810058594,-83.76318359375,-83.9130325317383,-83.977783203125,-84.0291976928711,-84.08837890625,-84.1077651977539,-84.1151885986328,-84.1504821777344,-84.1281204223633,-84.1231918334961,-84.1251907348633,-84.1494598388672,-84.1921920776367,-84.3367156982422,-84.4017028808594,-84.4404830932617,-84.5015640258789,-84.561767578125,-84.665771484375,-84.7793960571289,-84.8270492553711,-84.8759765625,-85.070068359375,-85.2641143798828,-85.4581985473633,-85.6522445678711,-85.8463363647461,-86.0403747558594,-86.2344741821289,-86.4285659790039,-86.4955520629883,-86.6721725463867,-86.9218292236328,-87.2080078125,-87.4942398071289,-87.743896484375,-87.9205093383789,-87.9874496459961,-88.16064453125,-88.378173828125,-88.6117630004883,-88.898681640625,-89.0625991821289,-89.1856460571289,-89.273193359375,-89.4556655883789,-89.5505828857422,-89.775390625,-89.9010238647461,-89.99365234375,-90.0399398803711,-90.091796875,-90.3201217651367,-90.6070785522461,-90.744384765625,-90.7973175048828,-90.84033203125,-90.9160690307617,-91.04345703125,-91.2206497192383,-91.38720703125,-91.518310546875,-91.6473159790039,-91.8583984375,-92.0051727294922,-92.1717758178711,-92.2986831665039,-92.3484420776367,-92.4145965576172,-92.4608840942383,-92.5005798339844,-92.583251953125,-92.732666015625,-92.8367156982422,-92.9962463378906,-93.0517120361328,-93.1552200317383,-93.2579650878906,-93.3778762817383,-93.463623046875,-93.5642547607422,-93.7077178955078,-93.8035659790039,-93.8516159057617,-94.05517578125,-94.4141616821289,-94.6208953857422,-94.6753387451172,-94.705078125,-94.7125473022461,-94.7127914428711,-94.803466796875,-94.8425827026367,-94.8603973388672,-94.8543472290039,-94.8748016357422,-94.9393539428711,-95.1552734375,-95.1582489013672,-95.1620635986328,-95.3979034423828,-95.8243179321289,-96.2506866455078,-96.6770553588867,-97.1034698486328,-97.5298385620117,-97.9561996459961,-98.3826217651367,-98.8089828491211,-99.2353515625,-99.6617202758789,-100.088134765625,-100.514503479004,-100.940872192383,-101.367286682129,-101.793647766113,-102.220016479492,-102.646430969238,-103.072799682617,-103.499168395996,-103.925582885742,-104.351951599121,-104.7783203125,-105.204689025879,-105.631103515625,-106.057472229004,-106.483840942383,-106.910255432129,-107.336624145508,-107.762985229492,-108.189407348633,-108.615768432617,-109.042137145996,-109.468551635742,-109.894920349121,-110.3212890625,-110.747657775879,-111.174072265625,-111.600440979004,-112.026809692383,-112.453224182129,-112.879592895508,-113.305953979492,-113.732376098633,-114.158744812012,-114.585105895996,-115.011520385742,-115.437889099121,-115.8642578125,-116.290626525879,-116.71704864502,-117.143409729004,-117.569778442383,-117.996192932129,-118.422554016113,-118.848922729492,-119.275344848633,-119.701713562012,-120.128067016602,-120.554489135742,-120.980857849121,-121.4072265625,-121.833595275879,-122.26000213623,-122.686370849609,-122.788772583008,-122.826705932617,-122.924171447754,-122.962692260742,-123.002296447754,-123.027252197266,-123.049217224121,-123.063278198242,-123.077293395996,-123.08642578125,-123.117630004883,-123.109321594238,-123.077293395996,-123.079544067383,-123.15013885498,-123.181884765625,-123.196342468262,-123.191070556641,-123.229438781738,-123.183937072754,-123.067291259766,-122.947654724121,-122.912986755371,-122.879104614258,-122.964454650879,-123.015533447266,-123.174263000488,-123.276756286621,-123.29052734375,-123.286277770996,-123.264068603516,-123.247703552246,-123.222991943359,-123.190673828125,-123.179595947266,-123.1875,-123.324996948242,-123.336669921875,-123.322410583496,-123.335647583008,-123.398979187012,-123.436965942383,-123.508209228516,-123.530570983887,-123.858940124512,-123.891845703125,-123.948387145996,-124.028610229492,-124.053802490234,-124.024024963379,-123.992630004883,-123.959518432617,-123.922760009766,-123.847122192383,-123.817192077637,-123.739067077637,-123.612747192383,-123.582466125488,-123.708305358887,-123.762702941895,-123.818008422852,-123.874412536621,-123.90380859375,-123.904251098633,-123.884963989258,-123.823829650879,-123.78466796875,-123.787696838379,-123.825439453125,-123.880126953125,-123.93359375,-123.945899963379,-123.863037109375,-123.865730285645,-123.957412719727,-123.971389770508,-123.972114562988,-123.984916687012,-124.058792114258,-124.1416015625,-124.28125,-124.412590026855,-124.483261108398,-124.702285766602,-124.782379150391,-124.784278869629,-124.934173583984,-124.933349609375,-124.98558807373,-125.043609619141,-125.056694030762,-124.936805725098,-124.862648010254,-124.854248046875,-124.857521057129,-124.875434875488,-124.85986328125,-124.933601379395,-124.949264526367,-124.931060791016,-124.942535400391,-124.985397338867,-125.058784484863,-125.209869384766,-125.47631072998,-125.507171630859,-125.525978088379,-125.539352416992,-125.555572509766,-125.585838317871,-125.610153198242,-125.641304016113,-125.697555541992,-125.7412109375,-125.772415161133,-125.839599609375,-125.965042114258,-126.024124145508,-126.094337463379,-126.23656463623,-126.404495239258,-126.44995880127,-126.447456359863,-126.416122436523,-126.238914489746,-126.067230224609,-125.897613525391,-125.904098510742,-125.98070526123,-126.370315551758,-126.492973327637,-126.514350891113,-126.51732635498,-126.472221374512,-126.397117614746,-126.374603271484,-126.418212890625,-126.488174438477,-126.521781921387,-126.48462677002,-126.51732635498,-126.562889099121,-126.631790161133,-126.960403442383,-127.014060974121,-127.057571411133,-127.267471313477,-127.35693359375,-127.441207885742,-127.590873718262,-127.708106994629,-127.714302062988,-127.689155578613,-127.632713317871,-127.419677734375,-127.346580505371,-127.280654907227,-126.968124389648,-126.735404968262,-126.691459655762,-127.034088134766,-127.338729858398,-127.442726135254,-127.575736999512,-127.609573364258,-127.644866943359,-127.66870880127,-127.714057922363,-127.728713989258,-127.747512817383,-127.818946838379,-127.850540161133,-127.869148254395,-127.863227844238,-127.829978942871,-127.727638244629,-127.858795166016,-127.843315124512,-127.795364379883,-127.67333984375,-127.549713134766,-127.437942504883,-127.242233276367,-127.175735473633,-127.007957458496,-126.95947265625,-126.899993896484,-126.826309204102,-126.738571166992,-126.713966369629,-126.752639770508,-126.895217895508,-126.901420593262,-126.938179016113,-127.127044677734,-127.160598754883,-127.193992614746,-127.20825958252,-127.187110900879,-126.995208740234,-126.951316833496,-126.951370239258,-126.966400146484,-127.008255004883,-127.019332885742,-127.006401062012,-127.013229370117,-127.034866333008,-127.066215515137,-127.107070922852,-127.519233703613,-127.56029510498,-127.71337890625,-127.791893005371,-127.834327697754,-127.902191162109,-127.995407104492,-128.102249145508,-128.193557739258,-128.357620239258,-128.037490844727,-128.029144287109,-128.060302734375,-128.051559448242,-128.021301269531,-127.940231323242,-127.943359375,-128.038238525391,-128.183990478516,-128.240966796875,-128.271530151367,-128.275146484375,-128.19677734375,-128.132369995117,-128.108795166016,-128.053268432617,-128.10595703125,-128.365051269531,-128.451950073242,-128.524703979492,-128.65234375,-128.868560791016,-129.080902099609,-129.129531860352,-129.171585083008,-129.114456176758,-129.021438598633,-128.935592651367,-128.854598999023,-128.850433349609,-128.905609130859,-128.833053588867,-128.542144775391,-128.478622436523,-128.358047485352,-128.291061401367,-128.132705688477,-128.079208374023,-127.927833557129,-127.950042724609,-128.115142822266,-128.207229614258,-128.369140625,-128.469635009766,-128.511764526367,-128.600341796875,-128.675537109375,-128.750793457031,-128.767883300781,-128.763671875,-128.745956420898,-128.714752197266,-128.652877807617,-128.560440063477,-128.532119750977,-128.65087890625,-128.704772949219,-128.890197753906,-128.927825927734,-128.944000244141,-128.959381103516,-129.013961791992,-129.056396484375,-129.208114624023,-129.231735229492,-129.240341186523,-129.257858276367,-129.284286499023,-129.46240234375,-129.563720703125,-129.686721801758,-129.82177734375,-129.911865234375,-130.074371337891,-130.263275146484,-130.335250854492,-130.232849121094,-130.0859375,-130.063522338867,-130.043304443359,-129.790771484375,-129.626022338867,-129.794967651367,-129.8984375,-130.084228515625,-130.290328979492,-130.396774291992,-130.430282592773,-130.393463134766,-130.388626098633,-130.370025634766,-130.350479125977,-130.307220458984,-130.218948364258,-130.140869140625,-130.108642578125,-129.948532104492,-129.89013671875,-129.78076171875,-129.560638427734,-129.630126953125,-129.666641235352,-129.701324462891,-129.734176635742,-129.765472412109,-129.795166015625,-129.811904907227,-129.815628051758,-129.837738037109,-129.877151489258,-129.985214233398,-130.048477172852,-130.091796875,-130.058395385742,-129.995849609375,-129.985153198242,-130.044036865234,-130.079986572266,-130.092971801758,-130.094680786133,-130.085098266602,-130.060348510742,-130.020309448242,-130.025100708008,-130.014053344727,-130.022903442383,-130.055953979492,-130.097854614258,-130.214706420898,-130.413131713867,-130.477096557617,-130.649078369141,-130.74169921875,-130.930221557617,-131.082916259766,-131.199417114258,-131.335800170898,-131.471878051758,-131.575103759766,-131.651519775391,-131.824264526367,-131.833099365234,-131.885986328125,-131.866165161133,-131.962509155273,-132.104293823242,-132.062896728516,-132.031539916992,-132.157028198242,-132.337982177734,-132.279403686523,-132.232177734375,-132.301666259766,-132.442474365234,-132.550491333008,-132.691513061523,-132.815521240234,-132.916854858398,-133.001419067383,-133.120407104492,-133.275299072266,-133.422561645508,-133.401123046875,-133.54638671875,-133.673919677734,-133.820755004883,-133.965713500977,-134.069198608398,-134.218505859375,-134.296966552734,-134.329650878906,-134.363525390625,-134.39306640625,-134.410202026367,-134.440765380859,-134.621978759766,-134.67724609375,-134.802383422852,-134.9072265625,-134.943740844727,-135.0712890625,-135.050827026367,-135.036666870117,-135.051025390625,-135.260787963867,-135.367874145508,-135.475921630859,-135.702590942383,-135.934677124023,-136.09716796875,-136.321823120117,-136.247131347656,-136.277984619141,-136.347854614258,-136.466354370117,-136.466735839844,-136.578750610352,-136.813278198242,-136.939315795898,-137.126220703125,-137.277542114258,-137.438568115234,-137.520904541016,-137.484176635742,-137.543701171875,-137.593307495117,-137.696624755859,-137.870544433594,-138.001113891602,-138.187438964844,-138.317626953125,-138.45361328125,-138.632278442383,-138.705474853516,-138.868759155273,-139.04345703125,-139.185150146484,-139.136962890625,-139.079254150391,-139.079254150391,-139.234756469727,-139.467971801758,-139.676315307617,-139.830657958984,-139.973297119141,-140.196929931641,-140.452819824219,-140.525451660156,-140.762741088867,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-141.002151489258,-140.860015869141,-140.405120849609,-139.976608276367,-139.181533813477,-138.689880371094,-138.291015625,-138.128356933594,-137.869430541992,-137.259963989258,-137.070404052734,-136.717330932617,-136.498687744141,-136.122360229492,-135.866653442383,-135.362167358398,-135.258834838867,-135.231201171875,-135.406936645508,-135.4345703125,-135.638000488281,-135.876312255859,-135.894729614258,-135.939010620117,-135.924758911133,-135.872863769531,-135.695220947266,-135.589996337891,-135.575546264648,-135.651275634766,-135.742630004883,-135.849700927734,-135.910202026367,-135.691467285156,-135.614929199219,-135.499557495117,-135.292831420898,-135.254989624023,-135.229782104492,-135.199020385742,-135.140823364258,-134.852874755859,-134.493835449219,-134.456832885742,-134.4912109375,-134.495361328125,-134.473678588867,-134.451461791992,-134.408935546875,-134.242034912109,-134.189895629883,-134.134033203125,-134.077484130859,-133.899963378906,-133.879776000977,-133.947448730469,-134.018402099609,-134.1650390625,-134.17431640625,-133.948043823242,-133.694046020508,-133.475921630859,-133.293655395508,-133.163131713867,-133.084411621094,-133.028274536133,-132.915328979492,-132.84033203125,-132.526809692383,-132.452346801758,-132.403900146484,-132.412734985352,-132.478942871094,-132.568359375,-132.570617675781,-132.537551879883,-132.488464355469,-132.333984375,-132.232421875,-132.163421630859,-131.934127807617,-131.581832885742,-131.44091796875,-131.318954467773,-131.215866088867,-131.136383056641,-131.031845092773,-130.990631103516,-130.926177978516,-130.665481567383,-130.498443603516,-130.396377563477,-130.274963378906,-130.174957275391,-130.043304443359,-129.944976806641,-129.898040771484,-129.730072021484,-129.675628662109,-129.623001098633,-129.538436889648,-129.538177490234,-129.648284912109,-130.458847045898,-130.708557128906,-130.832077026367,-130.960113525391,-131.207962036133,-131.306350708008,-131.472946166992,-131.86279296875,-131.937789916992,-131.98876953125,-132.128753662109,-132.196823120117,-132.330764770508,-132.481201171875,-132.686721801758,-132.817474365234,-132.967971801758,-133.089462280273,-133.228225708008,-133.378952026367,-133.418304443359,-133.373397827148,-133.348388671875,-133.196823120117,-133.138031005859,-133.192184448242,-133.319534301758,-133.336669921875,-133.304016113281,-132.705993652344,-132.57763671875,-132.532669067383,-132.542236328125,-132.704345703125,-132.739105224609,-132.764694213867,-132.770126342773,-132.755462646484,-132.718948364258,-132.545166015625,-132.358062744141,-132.213958740234,-132.134384155273,-131.919631958008,-131.833404541016,-131.786911010742,-131.781051635742,-131.820159912109,-131.788375854492,-131.631790161133,-131.562942504883,-131.342926025391,-131.303024291992,-131.32470703125,-131.293899536133,-131.209030151367,-131.161727905273,-131.112838745117,-131.063415527344,-131.013427734375,-130.986282348633,-130.981979370117,-130.970657348633,-130.914306640625,-130.875045776367,-130.660705566406,-130.515960693359,-130.353607177734,-130.117630004883,-129.572113037109,-129.264846801758,-129.109130859375,-129.032913208008,-128.984329223633,-128.89892578125,-128.883682250977,-128.916809082031,-128.938613891602,-129.138336181641,-129.157913208008,-129.13623046875,-129.101715087891,-129.054351806641,-128.971435546875,-128.85302734375,-128.705520629883,-128.38671875,-128.359191894531,-128.278610229492,-128.095855712891,-127.764945983887,-127.683792114258,-127.974014282227,-128.0341796875,-128.043655395508,-127.988922119141,-128.121475219727,-128.170104980469,-128.168060302734,-128.127304077148,-128.040481567383,-127.991012573242,-127.861618041992,-127.752830505371,-127.376853942871,-127.225975036621,-127.138481140137,-126.926811218262,-126.83349609375,-126.758697509766,-126.684913635254,-126.612159729004,-126.250442504883,-126.063819885254,-125.907417297363,-125.727783203125,-125.524955749512,-125.386772155762,-125.171875,-125.166847229004,-125.261573791504,-125.35693359375,-125.345512390137,-125.219390869141,-125.227882385254,-125.201179504395,-125.114013671875,-125.07958984375,-125.03101348877,-124.968254089355,-124.88916015625,-124.793647766113,-124.767929077148,-124.862594604492,-124.920021057129,-124.962600708008,-124.990386962891,-124.952438354492,-124.745109558105,-124.706344604492,-124.639938354492,-124.555030822754,-124.502586364746,-124.444473266602,-124.441497802734,-124.467193603516,-124.47191619873,-124.406936645508,-124.34937286377,-124.124603271484,-124.138465881348,-124.398384094238,-124.453903198242,-124.481346130371,-124.472068786621,-124.426170349121,-124.338088989258,-124.111724853516,-124.049659729004,-123.609130859375,-123.528427124023,-123.46044921875,-123.361480712891,-123.248977661133,-123.213676452637,-123.144485473633,-123.110404968262,-123.076606750488,-123.025779724121,-122.956680297852,-122.78539276123,-122.704879760742,-122.387496948242,-122.070068359375,-121.741851806641,-121.531097412109,-121.336235046387,-120.962448120117,-120.814651489258,-120.292526245117,-120.139991760254,-119.852828979492,-118.868705749512,-118.744873046875,-118.48560333252,-118.306976318359,-118.09521484375,-117.830322265625,-117.31128692627,-117.226943969727,-117.131736755371,-117.025726318359,-116.549949645996,-116.424560546875,-116.334075927734,-116.222702026367,-116.059478759766,-116.065238952637,-116.251609802246,-116.24341583252,-116.166748046875,-115.936080932617,-115.883255004883,-115.806350708008,-115.631156921387,-115.442283630371,-115.239837646484,-114.993751525879,-114.620162963867,-114.413864135742,-114.218162536621,-114.11083984375,-114.092041015625,-114.051116943359,-113.988182067871,-113.964401245117,-114.020797729492,-114.05322265625,-114.095947265625,-114.274757385254,-114.765281677246,-114.852195739746,-115.127044677734,-115.175926208496,-115.186767578125,-115.167083740234,-115.201850891113,-115.426849365234,-115.434471130371,-115.288467407227,-115.133209228516,-115.011177062988,-114.856735229492,-114.662895202637,-114.429397583008,-114.267044067383,-114.175727844238,-114.051071166992,-113.893211364746,-113.681938171387,-113.214988708496,-113.074951171875,-112.879440307617,-112.503028869629,-112.435157775879,-112.314552307129,-112.236724853516,-112.101318359375,-111.710884094238,-111.575729370117,-111.45068359375,-111.290824890137,-111.192184448242,-111.15478515625,-111.08740234375,-110.990043640137,-110.804878234863,-110.371971130371,-110.216262817383,-110.101951599121,-110.073928833008,-110.04248046875,-109.9365234375,-109.904243469238,-109.831344604492,-109.760154724121,-109.68603515625,-109.63037109375,-109.224311828613,-109.081253051758,-109.038032531738,-108.994483947754,-108.967674255371,-108.949905395508,-108.890968322754,-108.851997375488,-108.815185546875,-108.715133666992,-108.680221557617,-108.613327026367,-108.592918395996,-108.491500854492,-108.346969604492,-107.988716125488,-107.930519104004,-107.9091796875,-107.929443359375,-107.991310119629,-108.088424682617,-108.220802307129,-108.344329833984,-108.459083557129,-108.496047973633,-108.455276489258,-108.218162536621,-108.157661437988,-108.101463317871,-108.049613952637,-108.001754760742,-107.957954406738,-107.760940551758,-107.704887390137,-107.480323791504,-107.373680114746,-107.291358947754,-107.259475708008,-107.278076171875,-107.564453125,-107.710350036621,-107.730857849121,-107.740234375,-107.745994567871,-107.72509765625,-107.626174926758,-107.499221801758,-107.451271057129,-107.418846130371,-107.402099609375,-107.329193115234,-107.2001953125,-107.156494140625,-107.253753662109,-107.323341369629,-107.347846984863,-107.283157348633,-107.318458557129,-107.482368469238,-107.567481994629,-107.64404296875,-107.650924682617,-107.638381958008,-107.64990234375,-107.753028869629,-107.865089416504,-107.954048156738,-107.972122192383,-107.958396911621,-107.890914916992,-107.763084411621,-107.728614807129,-107.787452697754,-107.798294067383,-107.761032104492,-107.509376525879,-107.446189880371,-107.351119995117,-107.22412109375,-107.124801635742,-106.99365234375,-106.922561645508,-106.835647583008,-106.790725708008,-106.710990905762,-106.668411254883,-106.534866333008,-106.45947265625,-106.424263000488,-106.429489135742,-106.404396057129,-106.271240234375,-106.132133483887,-106.039306640625,-105.933059692383,-105.85693359375,-105.781204223633,-105.750190734863,-105.774314880371,-105.932228088379,-106.027153015137,-106.2373046875,-106.458053588867,-106.543304443359,-106.566650390625,-106.608497619629,-106.780418395996,-106.853713989258,-106.94580078125,-107.043312072754,-107.146186828613,-107.298149108887,-107.499114990234,-107.619338989258,-107.741500854492,-107.734230041504,-107.677635192871,-107.734176635742,-108.027191162109,-108.104583740234,-108.261032104492,-108.322807312012,-108.367919921875,-108.686576843262,-108.718116760254,-108.640922546387,-108.345756530762,-108.3134765625,-107.766357421875,-107.435935974121,-106.830657958984,-106.713478088379,-106.324272155762,-106.164451599121,-106.015678405762,-105.797950744629,-105.685592651367,-105.606056213379,-105.539840698242,-105.456932067871,-105.428611755371,-105.37744140625,-105.194976806641,-105.101318359375,-105.043601989746,-104.993797302246,-104.959815979004,-104.936714172363,-104.911964416504,-104.879440307617,-104.769630432129,-104.653175354004,-104.636375427246,-104.6611328125,-104.628173828125,-104.48681640625,-104.350738525391,-104.193550109863,-103.901557922363,-103.6572265625,-103.47412109375,-103.3232421875,-103.021781921387,-102.841552734375,-102.691986083984,-102.389114379883,-102.320358276367,-102.209762573242,-102.057228088379,-101.883644104004,-101.688865661621,-101.554985046387,-101.096389770508,-101.026412963867,-100.855621337891,-100.74560546875,-100.616111755371,-100.519630432129,-100.456108093262,-100.212936401367,-99.77294921875,-99.4722671508789,-99.2935562133789,-99.1468734741211,-99.0321731567383,-98.9204635620117,-98.8117218017578,-98.697265625,-98.4527816772461,-98.412109375,-98.4171371459961,-98.4678268432617,-98.6064910888672,-98.7035598754883,-98.7222137451172,-98.7200698852539,-98.6898422241211,-98.6315460205078,-98.5398406982422,-98.414794921875,-98.0625457763672,-97.9776382446289,-97.9307632446289,-97.607421875,-97.4549255371094,-97.2742691040039,-97.1944351196289,-97.1554183959961,-97.1571807861328,-97.1398468017578,-97.1580581665039,-97.20654296875,-97.3361282348633,-97.546630859375,-97.7391128540039,-97.913330078125,-98.1104965209961,-98.1925277709961,-98.4383773803711,-98.5002975463867,-98.500244140625,-98.3860778808594,-98.380859375,-98.4491729736328,-98.4912567138672,-98.6330032348633,-98.6504898071289,-98.562255859375,-98.522216796875,-98.4685592651367,-98.2185592651367,-98.0905227661133,-97.7942352294922,-97.9110336303711,-97.9388656616211,-97.9250946044922,-97.8285675048828,-97.6395492553711,-97.5480422973633,-97.4811019897461,-97.4103546142578,-97.3357925415039,-97.2659149169922,-97.135986328125,-97.07177734375,-96.9995574951172,-96.9767074584961,-96.628173828125,-96.4306640625,-96.4349594116211,-96.480224609375,-96.7251434326172,-96.7220687866211,-96.5921859741211,-96.5312957763672,-96.4937057495117,-96.461181640625,-96.4393539428711,-96.0755844116211,-95.9703140258789,-96.0360336303711,-96.1713409423828,-96.1988296508789,-96.2284622192383,-96.3713836669922,-96.369140625,-96.2128448486328,-96.1850128173828,-96.1692428588867,-96.1414566040039,-96.0125961303711,-95.8791046142578,-95.7199249267578,-95.6951675415039,-95.7825241088867,-95.7776870727539,-95.6264190673828,-95.5570297241211,-95.5287094116211,-95.4159164428711,-95.4045867919922,-95.406982421875,-95.4188995361328,-95.4569854736328,-95.5022430419922,-95.5593719482422,-95.6106491088867,-95.7686538696289,-95.86181640625,-95.9540557861328,-96.01953125,-96.095458984375,-96.215576171875,-96.3504409790039,-96.4042510986328,-96.4225616455078,-96.4202651977539,-96.3595199584961,-95.8852996826172,-95.8132781982422,-95.79736328125,-95.7875518798828,-95.7431640625,-95.7721176147461,-96.01611328125,-96.0453643798828,-96.036865234375,-95.9723587036133,-95.6250457763672,-95.4903793334961,-95.399658203125,-95.3540954589844,-95.3210983276367,-95.2587432861328,-95.2956085205078,-95.3895492553711,-95.46337890625,-95.6336898803711,-95.6504898071289,-95.460693359375,-95.426513671875,-95.3840866088867,-95.2347106933594,-95.1258850097656,-94.9552230834961,-94.8610382080078,-94.7444381713867,-94.4853057861328,-94.3838348388672,-94.2547836303711,-94.09814453125,-93.927734375,-93.6517105102539,-93.4830093383789,-93.4489288330078,-93.6058120727539,-93.6439437866211,-93.6761779785156,-93.6598663330078,-93.6627960205078,-93.6814498901367,-93.7157669067383,-93.7657241821289,-93.8113327026367,-93.8524398803711,-93.8807144165039,-93.8960952758789,-93.9380874633789,-93.9915542602539,-94.0648956298828,-94.2169418334961,-94.4783172607422,-94.5867691040039,-94.6004409790039,-94.5625457763672,-94.4756317138672,-94.2366180419922,-94.0836410522461,-94.0811462402344,-94.2218246459961,-94.25537109375,-94.2849655151367,-94.2767562866211,-94.2547378540039,-94.1563491821289,-93.8543930053711,-93.6194839477539,-93.6126480102539,-93.8009719848633,-93.8204650878906,-93.74853515625,-93.5674819946289,-93.4505844116211,-93.4309539794922,-93.5370635986328,-93.5428695678711,-93.5224151611328,-93.5322723388672,-93.6498031616211,-93.7943878173828,-93.9150848388672,-94.0152893066406,-94.1631774902344,-94.2708053588867,-94.338134765625,-94.419189453125,-94.513916015625,-94.6338348388672,-94.67626953125,-94.7126998901367,-94.7892532348633,-94.822509765625,-95.2920913696289,-95.4912643432617,-95.5875930786133,-95.7074279785156,-95.8506774902344,-95.9649429321289,-96.0501403808594,-96.1190948486328,-96.1717758178711,-96.2693862915039,-96.4923858642578,-96.5513687133789,-96.5595703125,-96.5456085205078,-96.3365707397461,-96.2977066040039,-96.2264175415039,-96.1227569580078,-96.0481414794922,-95.8786087036133,-95.9801712036133,-95.9881896972656,-95.8863296508789,-95.9063949584961,-96.1864242553711,-96.2580032348633,-96.35888671875,-96.5489273071289,-96.5510787963867,-96.4913024902344,-96.4704132080078,-96.5247573852539,-96.5044479370117,-96.4454574584961,-96.4207458496094,-96.4465789794922,-96.4056625366211,-96.2713394165039,-96.1396484375,-96.06201171875,-95.9944381713867,-95.924072265625,-95.8508758544922,-95.7253875732422,-95.632568359375,-95.5642547607422,-95.447509765625,-95.40625,-95.4454116821289,-95.6742172241211,-95.7733917236328,-95.8303680419922,-95.872314453125,-95.8377456665039,-95.6159210205078,-95.5116729736328,-95.2012176513672,-94.886962890625,-94.73486328125,-94.6111297607422,-94.5570755004883,-94.4910659790039,-94.4788131713867,-94.308349609375,-94.1712417602539,-94.0859832763672,-93.8102035522461,-93.7462844848633,-93.7508773803711,-93.7816390991211,-93.7628402709961,-93.5758819580078,-93.407470703125,-93.25634765625,-93.0313034057617,-92.9825668334961,-92.9486846923828,-92.8901824951172,-92.8827209472656,-92.9041976928711,-92.9219741821289,-92.9814453125,-92.9608917236328,-92.7830123901367,-92.6417007446289,-92.5674743652344,-92.3884811401367,-92.3558120727539,-92.3153839111328,-92.2144546508789,-92.0491180419922,-92.0372085571289,-92.0726089477539,-92.04736328125,-91.9835433959961,-91.9262161254883,-91.8755416870117,-91.8204116821289,-91.7608413696289,-91.7156219482422,-91.654052734375,-91.5640640258789,-91.5716323852539,-91.6161117553711,-91.8585891723633,-91.9949722290039,-92.1210403442383,-92.2086410522461,-92.2903289794922,-92.3205032348633,-92.36328125,-92.4546890258789,-92.5118637084961,-92.4457473754883,-92.1269989013672,-92.0577163696289,-91.9767074584961,-92.0690460205078,-92.2847595214844,-92.7509307861328,-92.8877944946289,-92.8545455932617,-92.8026351928711,-92.642822265625,-92.4934616088867,-92.3116760253906,-92.2307662963867,-92.25830078125,-92.2090835571289,-91.9119644165039,-91.72412109375,-91.5323791503906,-91.3842315673828,-91.2018051147461,-91.15087890625,-91.1703109741211,-91.3050231933594,-91.4268569946289,-91.43994140625,-91.2881317138672,-90.9501953125,-90.7857437133789,-90.6666488647461,-90.554931640625,-90.4505386352539,-90.4155807495117,-90.5132827758789,-90.6055679321289,-90.6839828491211,-90.74853515625,-90.7945785522461,-90.8221206665039,-90.8922882080078,-91.0049819946289,-91.0492248535156,-91.0248489379883,-91.0577697753906,-91.1478500366211,-91.2179718017578,-91.2372055053711,-90.7447738647461,-90.5873031616211,-90.47900390625,-90.4683609008789,-90.5389633178711,-90.5425338745117,-90.5101547241211,-90.5252456665039,-90.5736389160156,-90.5283203125,-90.4230422973633,-90.3600540161133,-90.3172378540039,-90.2852554321289,-90.2477569580078,-90.2047882080078,-90.1744079589844,-90.1568374633789,-90.1164093017578,-90.0053253173828,-89.897705078125,-89.8794937133789,-89.8965835571289,-89.8842315673828,-89.7831039428711,-89.7508316040039,-89.7201614379883,-89.6666030883789,-89.552001953125,-89.3519058227539,-89.279541015625,-89.198486328125,-89.0567398071289,-88.9535140991211,-88.8145446777344,-88.6377410888672,-88.3155288696289,-88.2235412597656,-88.0413589477539,-87.96435546875,-87.9115219116211,-87.865966796875,-87.8277359008789,-87.810302734375,-87.8135757446289,-87.8279266357422,-87.853271484375,-87.8926773071289,-87.990966796875,-88.1111373901367,-88.1458053588867,-88.2090759277344,-88.2352523803711,-88.3469772338867,-88.3606948852539,-88.3196258544922,-88.3250961303711,-88.3138198852539,-88.1958999633789,-87.9971618652344,-87.4991226196289,-87.4708023071289,-87.4179153442383,-87.3919448852539,-87.359375,-87.3202667236328,-87.2662582397461,-87.0832061767578,-86.9239273071289,-86.8127899169922,-86.7498474121094,-86.6820297241211,-86.609375,-86.560791015625,-86.5364303588867,-86.5035095214844,-86.4755325317383,-86.3980484008789,-86.3696746826172,-85.9844741821289,-85.9525909423828,-85.7888717651367,-85.7311096191406,-85.7228012084961,-85.744873046875,-85.7338409423828,-85.6897964477539,-85.6431579589844,-85.5624465942383,-85.5177764892578,-85.4910659790039,-85.425048828125,-85.3380813598633,-85.2750930786133,-84.8675765991211,-84.8674774169922,-85.1066436767578,-85.1043472290039,-85.0833969116211,-85.00830078125,-84.9160690307617,-84.8953094482422,-84.8927230834961,-84.8622055053711,-84.8900375366211,-85.113525390625,-85.2426223754883,-85.2754821777344,-85.3867721557617,-85.4275360107422,-85.4319305419922,-85.4164047241211,-85.4022445678711,-85.4091796875,-85.4372024536133,-85.4394989013672,-85.4159698486328,-85.4301300048828,-85.4820327758789,-85.50244140625,-85.4478988647461,-85.4460983276367,-85.4974594116211,-85.5348129272461,-85.5073699951172,-85.4151382446289,-85.3049774169922,-85.1768112182617,-85.0198211669922,-84.833984375,-84.6451187133789,-84.3188018798828,-84.2416458129883,-83.9171829223633,-83.6653289794922,-83.5517120361328,-82.9913558959961,-82.74560546875,-82.6183547973633,-82.3741683959961,-82.3902359008789,-82.4957046508789,-82.63330078125,-82.7548294067383,-82.6420440673828,-82.3098678588867,-82.2318344116211,-82.2081604003906,-82.2467727661133,-82.2275390625,-82.1505355834961,-81.9518051147461,-81.732177734375,-81.4123001098633,-81.3778305053711,-81.3215866088867,-81.3286590576172,-81.6114273071289,-81.7583465576172,-81.95166015625,-81.9579086303711,-81.6869125366211,-81.4760208129883,-81.3809127807617,-81.331298828125,-81.2635269165039,-81.2524871826172,-81.2591323852539,-81.2815475463867,-81.52685546875,-81.6395034790039,-81.8313980102539,-81.9148406982422,-82.0064926147461,-82.1063461303711,-82.2101593017578,-82.397216796875,-82.4987335205078,-82.5486373901367,-82.5526885986328,-82.4641571044922,-82.4129867553711,-82.3928756713867,-82.4306640625,-82.4227066040039,-82.3925323486328,-82.222412109375,-82.1865768432617,-82.1513137817383,-82.07763671875,-82.0338821411133,-82.0124969482422,-82.0133819580078,-82.0918960571289,-82.1021423339844,-82.1004867553711,-82.0625534057617,-81.9764633178711,-81.8693389892578,-81.7085952758789,-81.4927749633789,-81.4123001098633,-81.2943420410156,-81.2701187133789,-81.3010711669922,-81.38720703125,-81.4427261352539,-81.4675827026367,-81.6300735473633,-81.7223663330078,-81.8744583129883,-81.925537109375,-82.0050811767578,-82.1131820678711,-82.1983413696289,-82.2605438232422,-82.374755859375,-82.5536651611328,-82.6415023803711,-82.9488754272461,-83.1987838745117,-83.2983932495117,-83.4064483642578,-83.5231018066406,-83.5902786254883,-83.6283721923828,-83.6510772705078,-83.7392120361328,-83.9202117919922,-83.998046875,-84.0500030517578,-84.1544494628906,-84.2080078125,-84.3243713378906,-84.3662567138672,-84.361083984375,-84.2725601196289,-84.3103561401367,-84.466064453125,-84.5306701660156,-84.5384750366211,-84.6925735473633,-84.8457489013672,-85.0400390625,-85.1137161254883,-85.1112823486328,-85.0182571411133,-84.9779739379883,-84.8990249633789,-84.8573760986328,-84.7377471923828,-84.6385803222656,-84.6025390625,-84.5895004272461,-84.3189468383789,-84.2230453491211,-84.18310546875,-84.1527328491211,-84.09423828125,-83.9642105102539,-83.8258361816406,-83.7975540161133,-83.8690414428711,-83.9050750732422,-84.0116653442383,-84.2930679321289,-84.3242645263672,-84.3984375,-84.4593734741211,-84.4784164428711,-84.6280822753906,-84.9083938598633,-85.09619140625,-85.1914978027344,-85.3068389892578,-85.4422378540039,-85.6038589477539,-85.791748046875,-86.063232421875,-86.6332015991211,-86.7081527709961,-86.7371139526367,-86.6886215209961,-86.7001495361328,-86.7383804321289,-86.7469711303711,-86.6851043701172,-86.5847625732422,-86.301025390625,-86.1130828857422,-86.0008316040039,-85.9642562866211,-85.958740234375,-86.0122604370117,-86.0428695678711,-86.7019500732422,-86.9531707763672,-87.0811004638672,-87.1938018798828,-87.2914581298828,-87.452880859375,-87.6781311035156,-87.969970703125,-88.1209945678711,-88.3948745727539,-88.5867233276367,-88.6724624633789,-88.7439422607422,-88.8084945678711,-88.9461441040039,-89.0877456665039,-89.4203567504883,-89.5926742553711,-89.7494201660156,-89.8904800415039,-89.9439926147461,-89.8477478027344,-89.8896942138672,-90.0038070678711,-90.1166000366211,-90.3162612915039,-90.5132827758789,-90.6554718017578,-90.8257293701172,-91.009521484375,-91.3054733276367,-91.4115219116211,-91.42724609375,-91.28515625,-91.0411148071289,-91.0736312866211,-91.06494140625,-90.9834442138672,-90.5968246459961,-90.1586380004883,-90.0475616455078,-89.924072265625,-89.7879867553711,-89.6003875732422,-89.2417526245117,-89.1265640258789,-88.9740295410156,-88.1977996826172,-87.9295425415039,-87.3919448852539,-87.1080017089844,-87.0275421142578,-87.002685546875,-87.0285186767578,-87.1829147338867,-87.280517578125,-87.885009765625,-87.9635772705078,-87.99755859375,-88.1056137084961,-88.3789520263672,-88.6530303955078,-88.8177261352539,-88.9644012451172,-89.0596237182617,-89.2006301879883,-89.2094192504883,-89.107666015625,-89.1315460205078,-89.2145538330078,-89.4035186767578,-89.4647445678711,-89.5009307861328,-89.5513229370117,-89.6158218383789,-89.7327194213867,-89.7638244628906,-89.7920913696289,-89.8113250732422,-90.0416564941406,-90.0800323486328,-89.985595703125,-89.9535675048828,-89.860595703125,-89.855712890625,-89.921875,-90.1418914794922,-90.1681594848633,-90.0596160888672,-90.0179672241211,-90.013427734375,-90.1547317504883,-90.2453155517578,-90.3688430786133,-90.4462356567383,-90.5334930419922,-90.5963897705078,-90.635009765625,-90.7068405151367,-90.8119125366211,-90.9456558227539,-91.1080551147461,-91.538818359375,-91.6746520996094,-91.926025390625,-91.9560012817383,-91.9538040161133,-91.91943359375,-91.9289093017578,-91.9822235107422,-92.03759765625,-92.0948791503906,-92.1952133178711,-92.3384246826172,-92.5500946044922,-92.97021484375,-93.4296875,-93.6963348388672,-93.5967254638672,-93.6048812866211,-93.6558151245117,-93.6641616821289,-93.559814453125,-93.4155731201172,-93.2702178955078,-93.2662124633789,-93.3268585205078,-93.3802795410156,-93.4058609008789,-93.3785171508789,-93.2504425048828,-93.1659164428711,-92.5292510986328,-92.3392105102539,-92.1964797973633,-92.1568908691406,-92.2050247192383,-92.4610366821289,-92.465087890625,-92.28955078125,-92.0766143798828,-91.9568405151367,-91.8418426513672,-91.68603515625,-91.4893035888672,-91.330078125,-91.1030807495117,-90.9700698852539,-90.74658203125,-90.7112808227539,-90.6907272338867,-90.6985855102539,-90.7276382446289,-90.7778778076172,-90.8711929321289,-91.0077133178711,-91.1148910522461,-91.3494644165039,-91.448974609375,-91.86962890625,-92.0342330932617,-92.1100616455078,-92.152099609375,-92.1961441040039,-92.3612823486328,-92.3881378173828,-92.3777313232422,-92.3452606201172,-92.30517578125,-92.2431640625,-92.1491241455078,-91.9558639526367,-91.9358444213867,-91.9444351196289,-92.0078582763672,-92.0811538696289,-92.2072296142578,-92.26953125,-92.3240737915039,-92.4000015258789,-92.4973678588867,-92.5514144897461,-92.5622024536133,-92.594970703125,-92.7074203491211,-92.7679672241211,-92.7659683227539,-92.7014617919922,-92.62744140625,-92.5440444946289,-92.5279769897461,-92.5792007446289,-92.6480941772461,-92.7347640991211,-92.8658218383789,-93.1544418334961,-93.2053680419922,-93.1792526245117,-92.98779296875,-92.9144515991211,-92.905517578125,-93.0658721923828,-93.0702590942383,-93.0277328491211,-93.0162582397461,-93.0733871459961,-93.16748046875,-93.3497619628906,-93.3663558959961,-93.296875,-93.2734375,-93.3330612182617,-93.3720169067383,-93.581787109375,-93.5267105102539,-93.4942398071289,-93.429931640625,-93.3144073486328,-93.31201171875,-93.3523406982422,-93.4206008911133,-93.7096710205078,-93.9127426147461,-93.9408721923828,-93.8892593383789,-93.8888168334961,-93.9419937133789,-94.0607376098633,-94.0834426879883,-94.0552215576172,-94.0499496459961,-94.0677795410156,-94.154052734375,-94.3086929321289,-94.4271926879883,-94.5093765258789,-94.5688934326172,-94.6787567138672,-94.76171875,-94.7052688598633,-94.670654296875,-94.6467819213867,-94.67041015625,-94.7416000366211,-94.7857894897461,-94.7766647338867,-94.7882766723633,-94.8195343017578,-94.8702621459961,-94.9573287963867,-94.8465805053711,-94.7761688232422,-94.7437438964844,-94.71337890625,-94.6733856201172,-94.6237335205078,-94.5792007446289,-94.5396957397461,-94.4192352294922,-94.2870559692383,-94.2808074951172,-94.3326187133789,-94.3322296142578,-94.2721710205078,-94.2089385986328,-94.1231994628906,-94.0557632446289,-93.780029296875,-93.4861755371094,-93.3750534057617,-93.2781219482422,-93.1787567138672,-93.1545867919922,-93.1265182495117,-93.1001968383789,-92.9251480102539,-92.8417510986328,-92.7398452758789,-92.70166015625,-92.4896469116211,-92.4494171142578,-92.4328155517578,-92.4397964477539,-92.4783706665039,-92.5484848022461,-92.6141128540039,-92.6752471923828,-92.7379837036133,-92.8023986816406,-92.7981491088867,-92.7252960205078,-92.6509780883789,-92.5102996826172,-92.456298828125,-92.3033676147461,-92.2982940673828,-92.3721237182617,-92.355712890625,-92.2490234375,-92.0180130004883,-91.1112823486328,-90.8974609375,-90.5921859741211,-90.3448257446289,-90.0751953125,-89.7908248901367,-89.3423385620117,-89.2115707397461,-88.948486328125,-88.8264694213867,-88.6798858642578,-88.4470672607422,-88.2713394165039,-88.0750961303711,-87.8781204223633,-87.5608901977539,-87.482421875,-87.286865234375,-86.9193801879883,-86.376953125,-86.138671875,-85.9844741821289,-85.8305206298828,-85.6766586303711,-85.559326171875,-85.4784622192383,-85.4072723388672,-85.28271484375,-85.218017578125,-85.2120132446289,-85.3620071411133,-85.3652801513672,-85.2135772705078,-85.1288528442383,-85.0609359741211,-84.919921875,-84.7057571411133,-84.5179672241211,-84.3564987182617,-84.2189407348633,-84.1053695678711,-84.0230026245117,-83.9717788696289,-83.9105987548828,-83.6676712036133,-83.5694808959961,-83.21435546875,-82.9862823486328,-82.947021484375,-82.8677749633789,-82.8006820678711,-82.6875,-82.5774459838867,-82.3932647705078,-82.3082504272461,-82.2266082763672,-82.2193832397461,-82.37060546875,-82.4180679321289,-82.4241714477539,-82.3941421508789,-82.2635803222656,-82.2398910522461,-82.1626510620117,-82.1414566040039,-82.1500015258789,-82.1906204223633,-82.1803741455078,-82.1461944580078,-82.1591796875,-82.21923828125,-82.2599105834961,-82.2916030883789,-82.2915496826172,-82.2604522705078,-82.2026824951172,-82.1079559326172,-82.02001953125,-81.8592758178711,-81.7423324584961,-81.5994186401367,-81.5716781616211,-81.6115264892578,-81.6612319946289,-81.7763671875,-81.827880859375,-81.8145523071289,-81.6480026245117,-81.5495147705078,-81.4662170410156,-81.3980941772461,-81.2850570678711,-81.127197265625,-80.968505859375,-80.7055130004883,-80.657958984375,-80.5880355834961,-80.495849609375,-80.4476089477539,-80.4433135986328,-80.4955062866211,-80.6727066040039,-80.8512268066406,-80.7949676513672,-80.67724609375,-80.4783248901367,-80.3679656982422,-80.2656707763672,-80.1035614013672,-79.9604034423828,-79.8362274169922,-79.6515121459961,-79.4561538696289,-79.347900390625,-79.3807144165039,-79.45263671875,-79.6361770629883,-79.7144546508789,-79.7313919067383,-79.7374496459961,-79.7232437133789,-79.6888198852539,-79.6429672241211,-79.5857391357422,-79.5474624633789,-79.5280227661133,-79.49755859375,-79.3386688232422,-79.2969741821289,-79.2642593383789,-79.2261199951172,-79.1527328491211,-79.0908737182617,-79.04052734375,-79.0050277709961,-78.9843292236328,-78.9369125366211,-78.9031753540039,-78.8975067138672,-78.8580093383789,-78.8274383544922,-78.7313461303711,-78.7364273071289,-78.7763214111328,-78.9777374267578,-78.9816436767578,-78.9278869628906,-78.89111328125,-78.8712387084961,-78.8282241821289,-78.7020034790039,-78.5933151245117,-78.537353515625,-78.4916534423828,-78.4480972290039,-78.5130844116211,-78.5260772705078,-78.5291061401367,-78.5570755004883,-78.6005859375,-78.7237777709961,-78.744140625,-78.7657699584961,-78.7536087036133,-78.7216796875,-78.7398376464844,-78.8541030883789,-78.8982391357422,-78.9471206665039,-78.9920425415039,-79.0431137084961,-79.100341796875,-79.1131286621094,-79.0814437866211,-79.0403366088867,-79.003173828125,-78.9457015991211,-78.9443817138672,-79.0320281982422,-79.0751495361328,-79.0732879638672,-78.9960403442383,-79.0099105834961,-79.067138671875,-79.2417984008789,-79.1788101196289,-79.1388168334961,-79.146728515625,-79.2159652709961,-79.295654296875,-79.3561477661133,-79.4305648803711,-79.4759750366211,-79.5206527709961,-79.5979537963867,-79.6317443847656,-79.67041015625,-79.7139663696289,-79.7123489379883,-79.66552734375,-78.9092330932617,-78.8462448120117,-78.4750518798828,-78.3036117553711,-78.1288604736328,-77.89111328125,-77.7752990722656,-77.7021484375,-77.324951171875,-77.1650848388672,-77.0725555419922,-76.9380874633789,-76.7618179321289,-76.6504898071289,-76.6040573120117,-76.54638671875,-76.5298309326172,-76.5196304321289,-76.5255813598633,-76.5728530883789,-76.6014175415039,-76.6554183959961,-76.7862777709961,-76.809814453125,-76.8909149169922,-77.1567916870117,-77.4891586303711,-77.5524368286133,-77.68408203125,-77.8841247558594,-78.0135726928711,-78.3517074584961,-78.4629898071289,-78.5059051513672,-78.5150909423828,-78.5022964477539,-78.4826202392578,-78.4586868286133,-78.4305191040039,-78.2444305419922,-78.1402359008789,-78.0676727294922,-77.9876480102539,-77.8428192138672,-77.7606964111328,-77.7794418334961,-77.8446731567383,-77.8590316772461,-77.7490234375,-77.7334976196289,-77.7475128173828,-77.7261734008789,-77.5904312133789,-77.3966751098633,-77.3490676879883,-77.4110336303711,-77.4852981567383,-77.4745635986328,-77.3316421508789,-77.32763671875,-77.368408203125,-77.3729476928711,-77.2892150878906,-77.3118209838867,-77.5471649169922,-77.5858840942383,-77.5721664428711,-77.4613800048828,-77.452880859375,-77.6486282348633,-77.6814422607422,-77.59814453125,-77.5035629272461,-77.5155792236328,-77.6394500732422,-77.7149887084961,-77.7908172607422,-77.76123046875,-77.7342224121094,-77.66064453125,-77.5895462036133,-77.60302734375,-77.8715362548828,-77.9981460571289,-78.1224594116211,-78.1813507080078,-78.15966796875,-77.9341812133789,-77.8301315307617,-77.7650375366211,-77.7306137084961,-77.726806640625,-77.7496109008789,-77.7361755371094,-77.6488723754883,-77.5143585205078,-77.6984329223633,-77.8137664794922,-77.889892578125,-77.9475631713867,-78.0213851928711,-78.0774917602539,-78.1371612548828,-78.14697265625,-78.1333923339844,-78.1085968017578,-78.068115234375,-77.89990234375,-77.6039505004883,-77.3724136352539
View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment