--- http_interactions: - request: method: get uri: http://vk.com/video_ body: encoding: US-ASCII string: '' headers: User-Agent: - VideoInfo/2.0.0 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 404 message: Not Found headers: Server: - nginx/1.2.4 Date: - Sat, 26 Oct 2013 11:27:58 GMT Content-Type: - text/html Content-Length: - '397' Connection: - keep-alive body: encoding: UTF-8 string: | 404 Not Found http_version: recorded_at: Sat, 26 Oct 2013 11:27:58 GMT - request: method: get uri: http://vk.com/video39576223_108370515 body: encoding: US-ASCII string: '' headers: User-Agent: - VideoInfo/2.1.1 Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - "*/*" response: status: code: 200 message: OK headers: Server: - nginx/1.2.4 Date: - Sun, 23 Feb 2014 16:19:00 GMT Content-Type: - text/html; charset=windows-1251 Content-Length: - '12889' Connection: - keep-alive X-Powered-By: - PHP/3.4688 Set-Cookie: - remixlang=3; expires=Mon, 23 Feb 2015 08:37:07 GMT; path=/; domain=.vk.com Pragma: - no-cache Cache-Control: - no-store X-Frame-Options: - deny body: encoding: ASCII-8BIT string: !binary |- PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAg U3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQv eGh0bWwxLXN0cmljdC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53 My5vcmcvMTk5OS94aHRtbCIgeG1sbnM6b2c9Imh0dHA6Ly9vZ3AubWUvbnMj IiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGh0dHAt ZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSIgLz4K PGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSIvaW1hZ2VzL2Zhdmlj b25fdmsuaWNvPzMiIC8+Cgo8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5 cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTEi IC8+CjxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSL98u4gwsfQ 28IgzM7Hw8AmIzMzOyYjMzM7JiMzMzsgz/Du8fLuIO7y4uDrIOHg+OroLi4u IiAvPgoKPHRpdGxlPt8g8/Lu9+rgKSkpKSkgfCBWSzwvdGl0bGU+Cgo8bm9z Y3JpcHQ+PG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iMDsg VVJMPS9iYWRicm93c2VyLnBocCI+PC9ub3NjcmlwdD4KCjxzY3JpcHQgdHlw ZT0idGV4dC9qYXZhc2NyaXB0Ij4KdmFyIHZrID0gewogIGFkc19yb3RhdGVf aW50ZXJ2YWw6IDEyMDAwMCwKICBhbDogcGFyc2VJbnQoJzQnKSB8fCA0LAog IGlkOiAwLAogIGludG5hdDogJzEnID8gdHJ1ZSA6IGZhbHNlLAogIGhvc3Q6 ICd2ay5jb20nLAogIGxhbmc6IDMsCiAgcnRsOiBwYXJzZUludCgnJykgfHwg MCwKICB2ZXJzaW9uOiAxNDc3NywKICBzdERvbWFpbnM6IDMsCiAgemVybzog ZmFsc2UsCiAgY29udGxlbjogMTYwNzQsCiAgbG9naW5zY2hlbWU6ICdodHRw cycsCiAgaXBfaDogJ2I2NWFmMjc0NzExMmZjZTBkMicsCiAgdmNfaDogJzlh N2NiMGIxYTczOTRmMGI5MDk5MjcwMWRhOWZhNTkzJywKICBuYXZQcmVmaXg6 ICcvJywKICBkdDogcGFyc2VJbnQoJzAnKSB8fCAwLAogIGZzOiBwYXJzZUlu dCgnMTEnKSB8fCAxMSwKICB0czogMTM5MzE3MjM0MCwKICBwZDogMCwKICBw YWRzOiAxLAogIHRpbWU6IFsyMDE0LCAyLCAyMywgMjAsIDE5LCAwXQp9Cgp3 aW5kb3cubG9jRG9tYWluID0gdmsuaG9zdC5tYXRjaCgvW2EtekEtWl0rXC5b YS16QS1aXStcLj8kLylbMF07CnZhciBfdWEgPSBuYXZpZ2F0b3IudXNlckFn ZW50LnRvTG93ZXJDYXNlKCk7CmlmICgvb3BlcmEvaS50ZXN0KF91YSkgfHwg IS9tc2llIDYvaS50ZXN0KF91YSkgfHwgZG9jdW1lbnQuZG9tYWluICE9IGxv Y0RvbWFpbikgZG9jdW1lbnQuZG9tYWluID0gbG9jRG9tYWluOwp2YXIgX19f aHRlc3QgPSAobG9jYXRpb24udG9TdHJpbmcoKS5tYXRjaCgvIyguKikvKSB8 fCB7fSlbMV0gfHwgJycsIF9fX3RvOwppZiAodmsuYWwgIT0gMSAmJiBfX19o dGVzdC5sZW5ndGggJiYgX19faHRlc3Quc3Vic3RyKDAsIDEpID09IHZrLm5h dlByZWZpeCkgewogIGlmICh2ay5hbCAhPSAzIHx8IHZrLm5hdlByZWZpeCAh PSAnIScpIHsKICAgIF9fX3RvID0gX19faHRlc3QucmVwbGFjZSgvXihcL3wh KS8sICcnKTsKICAgIGlmIChfX190by5tYXRjaCgvXihbXlw/XSpcLnBocHxs b2dpbikoW15hLXowLTlcLl18JCkvKSkgX19fdG8gPSAnJzsKICAgIGxvY2F0 aW9uLnJlcGxhY2UobG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgbG9jYXRp b24uaG9zdCArICcvJyArIF9fX3RvKTsKICB9Cn0KCnZhciBTdGF0aWNGaWxl cyA9IHsKICAnY29tbW9uLmpzJyA6IHt2OiAxMDk5fSwKICAnY29tbW9uLmNz cyc6IHt2OiA0MzR9LAogICdpZTYuY3NzJyAgIDoge3Y6IDI2fSwKICAnaWU3 LmNzcycgICA6IHt2OiAxOH0KICAsJ2xhbmczXzAuanMnOnt2OjMzNTF9LCd2 aWRlby5jc3MnOnt2OjExMX0sJ3ZpZGVvLmpzJzp7djoxMjd9LCdpbmRleGVy LmpzJzp7djoxOX0sJ3VpX2NvbnRyb2xzLmpzJzp7djoxNTF9LCd1aV9jb250 cm9scy5jc3MnOnt2OjQ5fSwndmlkZW92aWV3LmpzJzp7djoyMDF9LCd2aWRl b3ZpZXcuY3NzJzp7djoxMjF9LCdwYWdlLmNzcyc6e3Y6NjUxfSwncGFnZS5q cyc6e3Y6ODA0fQp9Cjwvc2NyaXB0PgoKPGxpbmsgcmVsPSJzdHlsZXNoZWV0 IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaHR0cDovL3N0MC52ay5tZS9jc3Mv YWwvY29tbW9uLmNzcz80MzQiIC8+CjwhLS1baWYgbHRlIElFIDZdPjxzdHls ZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+LyogPCFbQ0RBVEFb ICovIEBpbXBvcnQgdXJsKGh0dHA6Ly9zdDAudmsubWUvY3NzL2FsL2llNi5j c3M/MjYpOyAvKiBdXT4gKi88L3N0eWxlPjwhW2VuZGlmXS0tPgo8IS0tW2lm IElFIDddPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+ LyogPCFbQ0RBVEFbICovIEBpbXBvcnQgdXJsKGh0dHA6Ly9zdDAudmsubWUv Y3NzL2FsL2llNy5jc3M/MTgpOyAvKiBdXT4gKi88L3N0eWxlPjwhW2VuZGlm XS0tPgo8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBo cmVmPSJodHRwOi8vc3QwLnZrLm1lL2Nzcy9hbC92aWRlby5jc3M/MTExIj48 L2xpbms+PGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIg aHJlZj0iaHR0cDovL3N0MC52ay5tZS9jc3MvdWlfY29udHJvbHMuY3NzPzQ5 Ij48L2xpbms+PGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVl dCIgaHJlZj0iaHR0cDovL3N0MC52ay5tZS9jc3MvYWwvdmlkZW92aWV3LmNz cz8xMjEiPjwvbGluaz48bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHls ZXNoZWV0IiBocmVmPSJodHRwOi8vc3QwLnZrLm1lL2Nzcy9hbC9wYWdlLmNz cz82NTEiPjwvbGluaz4KPG1ldGEgcHJvcGVydHk9Im9nOnRpdGxlIiBjb250 ZW50PSLfIPPy7vfq4CkpKSkpIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVz Y3JpcHRpb24iIGNvbnRlbnQ9Iv3y7iDCx9DbwiDMzsfDwCYjMzM7JiMzMzsm IzMzOyDP8O7x8u4g7vLi4Osg4eD46uguLi4iIC8+CjxtZXRhIHByb3BlcnR5 PSJvZzp0eXBlIiBjb250ZW50PSJ2aWRlbyI+CjxtZXRhIHByb3BlcnR5PSJv Zzp1cmwiIGNvbnRlbnQ9Imh0dHA6Ly92ay5jb20vdmlkZW8zOTU3NjIyM18x MDgzNzA1MTUiIC8+CjxtZXRhIHByb3BlcnR5PSJvZzpzaXRlX25hbWUiIGNv bnRlbnQ9IlZLIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6aW1hZ2UiIGNvbnRl bnQ9Imh0dHA6Ly92aWRlbzQzMy52a2FkcmUucnUvYXNzZXRzL3RodW1ibmFp bHMvODg2MTVjYTk4MTE5NjkwMy4zMjAudmsuanBnIiAvPgo8bWV0YSBwcm9w ZXJ0eT0ib2c6dmlkZW86ZHVyYXRpb24iIGNvbnRlbnQ9IjE4MyIgLz4KCjxt ZXRhIHByb3BlcnR5PSJvZzp2aWRlbyIgY29udGVudD0iaHR0cDovL3ZrLmNv bS92aWRlbz9hY3Q9Z2V0X3N3ZiZvaWQ9Mzk1NzYyMjMmdmlkPTEwODM3MDUx NSZlbWJlZF9oYXNoPTE1MTg0ZGJkMDg1YzQ3YWYiIC8+CjxtZXRhIHByb3Bl cnR5PSJvZzp2aWRlbzp0eXBlIiBjb250ZW50PSJhcHBsaWNhdGlvbi94LXNo b2Nrd2F2ZS1mbGFzaCIgLz4KPG1ldGEgcHJvcGVydHk9Im9nOnZpZGVvOndp ZHRoIiBjb250ZW50PSI3MjAiIC8+CjxtZXRhIHByb3BlcnR5PSJvZzp2aWRl bzpoZWlnaHQiIGNvbnRlbnQ9IjQxMCIgLz4KPHNjcmlwdCB0eXBlPSJ0ZXh0 L2phdmFzY3JpcHQiIHNyYz0iL2pzL2xvYWRlcl9uYXYxNDc3N18zLmpzIj48 L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJo dHRwOi8vc3QzLnZrLm1lL2pzL2FsL2NvbW1vbi5qcz8xMDk5XzQ5Ij48L3Nj cmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvanMv bGFuZzNfMC5qcz8zMzUxIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQv amF2YXNjcmlwdCIgc3JjPSJodHRwOi8vc3QzLnZrLm1lL2pzL2FsL3ZpZGVv LmpzPzEyNyI+PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp cHQiIHNyYz0iaHR0cDovL3N0My52ay5tZS9qcy9hbC9pbmRleGVyLmpzPzE5 Ij48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj PSJodHRwOi8vc3QzLnZrLm1lL2pzL2xpYi91aV9jb250cm9scy5qcz8xNTEi Pjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9 Imh0dHA6Ly9zdDEudmsubWUvanMvYWwvdmlkZW92aWV3LmpzPzIwMSI+PC9z Y3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0 cDovL3N0My52ay5tZS9qcy9hbC9wYWdlLmpzPzgwNCI+PC9zY3JpcHQ+Cgo8 L2hlYWQ+Cgo8Ym9keSBvbnJlc2l6ZT0ib25Cb2R5UmVzaXplKCkiIGNsYXNz PSJpc19ydGwgZm9udF9kZWZhdWx0IHBhZHMgIj4KICA8ZGl2IGlkPSJzeXN0 ZW1fbXNnIiBjbGFzcz0iZml4ZWQiPjwvZGl2PgogIDxkaXYgaWQ9InV0aWxz Ij48L2Rpdj4KCiAgPGRpdiBpZD0ibGF5ZXJfYmciIGNsYXNzPSJmaXhlZCI+ PC9kaXY+PGRpdiBpZD0ibGF5ZXJfd3JhcCIgY2xhc3M9InNjcm9sbF9maXhf d3JhcCBmaXhlZCI+PGRpdiBpZD0ibGF5ZXIiPjwvZGl2PjwvZGl2PgogIDxk aXYgaWQ9ImJveF9sYXllcl9iZyIgY2xhc3M9ImZpeGVkIj48L2Rpdj48ZGl2 IGlkPSJib3hfbGF5ZXJfd3JhcCIgY2xhc3M9InNjcm9sbF9maXhfd3JhcCBm aXhlZCI+PGRpdiBpZD0iYm94X2xheWVyIj48ZGl2IGlkPSJib3hfbG9hZGVy Ij48ZGl2IGNsYXNzPSJsb2FkZXIiPjwvZGl2PjxkaXYgY2xhc3M9ImJhY2si PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PgoKICA8ZGl2IGlkPSJzdGxfbGVm dCI+PC9kaXY+PGRpdiBpZD0ic3RsX3NpZGUiPjwvZGl2PgoKICA8c2NyaXB0 IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ZG9tU3RhcnRlZCgpOzwvc2NyaXB0 PgoKICA8ZGl2IGNsYXNzPSJzY3JvbGxfZml4X3dyYXAiIGlkPSJwYWdlX3dy YXAiPjxkaXYgaWQ9InJlZ19iYXIiIGNsYXNzPSJ0b3BfaW5mb193cmFwIGZp eGVkIj4KICA8ZGl2IGNsYXNzPSJzY3JvbGxfZml4Ij4KICAgIDxkaXYgaWQ9 InJlZ19iYXJfY29udGVudCI+CiAgICAgIEpvaW4gVksgbm93IGFuZCBhbHdh eXMgc3RheSBpbiBjb250YWN0IHdpdGggeW91ciBmcmllbmRzIGFuZCByZWxh dGl2ZXMKICAgICAgPGRpdiBjbGFzcz0iYnV0dG9uX2JsdWUiIGlkPSJyZWdf YmFyX2J1dHRvbiI+PGEgY2xhc3M9ImJ1dHRvbl9saW5rIiBocmVmPSIvam9p biIgb25jbGljaz0icmV0dXJuICFzaG93Qm94KCdqb2luLnBocCcsIHthY3Q6 ICdib3gnLCBmcm9tOiBuYXYuc3RyTG9jfSwge30sIGV2ZW50KSI+PGJ1dHRv biBpZD0icmVnX2Jhcl9idG4iPjxzcGFuIGlkPSJyZWdfYmFyX3dpdGhfYXJy Ij5TaWduIHVwPC9zcGFuPjwvYnV0dG9uPjwvYT48L2Rpdj4KICAgIDwvZGl2 PgogIDwvZGl2Pgo8L2Rpdj4KPGRpdj48ZGl2IGNsYXNzPSJzY3JvbGxfZml4 Ij4KICA8ZGl2IGlkPSJwYWdlX2xheW91dCIgc3R5bGU9IndpZHRoOiA3OTFw eDsiPgogICAgPGRpdiBpZD0icGFnZV9oZWFkZXIiIGNsYXNzPSJwX2hlYWQx IHBfaGVhZF9sMyI+CiAgICAgIDxkaXYgY2xhc3M9ImJhY2siPjwvZGl2Pgog ICAgICA8ZGl2IGNsYXNzPSJsZWZ0Ij48L2Rpdj4KICAgICAgPGRpdiBjbGFz cz0icmlnaHQiPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4K ICAgICAgICA8ZGl2IGlkPSJ0b3BfbmF2IiBjbGFzcz0iaGVhZF9uYXYiPgog IDxkaXYgaWQ9InRvcF9sb2dvX2Rvd24iIGNsYXNzPSJmbF9sIj48L2Rpdj4K ICA8YSBpZD0idG9wX2hvbWVfbGluayIgY2xhc3M9InRvcF9ob21lX2xpbmsg ZmxfbCIgaHJlZj0iLyIgb25tb3VzZWRvd249ImFkZENsYXNzKCd0b3BfbG9n b19kb3duJywndGxkX2QnKTsiIG9uY2xpY2s9InJldHVybiBuYXYuZ28odGhp cywgZXZlbnQpOyI+PC9hPgogIDxkaXYgaWQ9InRvcF9saW5rcyI+CiAgICA8 ZGl2IGNsYXNzPSJmbF9yIiBpZD0idG9wX21lbnVfd3JhcCIgc3R5bGU9IiI+ CiAgICAgIDxhIGlkPSJ0b3BfcmVnX2xpbmsiIGNsYXNzPSJmbF9yIHRvcF9u YXZfbGluayIgaHJlZj0iL2pvaW4iIHN0eWxlPSIiIG9uY2xpY2s9InJldHVy biAhc2hvd0JveCgnam9pbi5waHAnLCB7YWN0OiAnYm94JywgZnJvbTogbmF2 LnN0ckxvY30sIHt9LCBldmVudCkiIG9ubW91c2Vkb3duPSJ0bkFjdGl2ZSh0 aGlzKSI+c2lnbiB1cDwvYT4KICAgICAgPGEgaWQ9InRvcF9zd2l0Y2hfbGFu ZyIgY2xhc3M9ImZsX3IgdG9wX25hdl9saW5rIiAgc3R5bGU9ImRpc3BsYXk6 IG5vbmU7IiBvbmNsaWNrPSJhamF4LnBvc3QoJ2FsX2luZGV4LnBocCcsIHth Y3Q6ICdjaGFuZ2VfbGFuZycsIGxhbmdfaWQ6IDMsIGhhc2g6ICcnfSk7IiBv bm1vdXNlZG93bj0idG5BY3RpdmUodGhpcykiPlN3aXRjaCB0byBFbmdsaXNo PC9hPgogICAgPC9kaXY+CiAgICA8YSBjbGFzcz0iZmxfbCB0b3BfbmF2X2xp bmsiIGhyZWY9IiIgaWQ9InRvcF9iYWNrX2xpbmsiIG9uY2xpY2s9InJldHVy biBuYXYuZ28odGhpcywgZXZlbnQsIHtiYWNrOiB0cnVlfSkiIG9ubW91c2Vk b3duPSJ0bkFjdGl2ZSh0aGlzKSI+PC9hPgogIDwvZGl2Pgo8L2Rpdj4KICAg ICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJzaWRlX2JhciIg Y2xhc3M9ImZsX2wiIHN0eWxlPSIiPgogICAgICA8ZGl2IGlkPSJxdWlja19s b2dpbiI+CiAgPGZvcm0gbWV0aG9kPSJQT1NUIiBuYW1lPSJsb2dpbiIgaWQ9 InF1aWNrX2xvZ2luX2Zvcm0iIGFjdGlvbj0iaHR0cHM6Ly9sb2dpbi52ay5j b20vP2FjdD1sb2dpbiIgb25zdWJtaXQ9ImlmICh2a2xvZ2luKSB7cmV0dXJu IHRydWV9IGVsc2Uge3F1aWNrX2xvZ2luKCk7cmV0dXJuIGZhbHNlO30iPgog ICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0IiB2YWx1ZT0ibG9n aW4iIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyb2xlIiB2 YWx1ZT0iYWxfZnJhbWUiIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBu YW1lPSJleHBpcmUiIGlkPSJxdWlja19leHBpcmVfaW5wdXQiIHZhbHVlPSIi IC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjYXB0Y2hhX3Np ZCIgaWQ9InF1aWNrX2NhcHRjaGFfc2lkIiB2YWx1ZT0iIiAvPgogICAgPGlu cHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY2FwdGNoYV9rZXkiIGlkPSJxdWlj a19jYXB0Y2hhX2tleSIgdmFsdWU9IiIgLz4KICAgIDxpbnB1dCB0eXBlPSJo aWRkZW4iIG5hbWU9Il9vcmlnaW4iIHZhbHVlPSJodHRwOi8vdmsuY29tIiAv PgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXBfaCIgdmFsdWU9 ImI2NWFmMjc0NzExMmZjZTBkMiIgLz4KICAgIDxkaXYgY2xhc3M9ImxhYmVs Ij5QaG9uZSBvciBlbWFpbDwvZGl2PgogICAgPGRpdiBjbGFzcz0ibGFiZWxl ZCI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImVtYWlsIiBjbGFzcz0idGV4 dCIgaWQ9InF1aWNrX2VtYWlsIiAvPjwvZGl2PgogICAgPGRpdiBjbGFzcz0i bGFiZWwiPlBhc3N3b3JkPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJsYWJlbGVk Ij48aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3MiIGNsYXNzPSJ0 ZXh0IiBpZD0icXVpY2tfcGFzcyIgb25rZXl1cD0idG9nZ2xlKCdxdWlja19l eHBpcmUnLCAhIXRoaXMudmFsdWUpO3RvZ2dsZSgncXVpY2tfZm9yZ290Jywg IXRoaXMudmFsdWUpIiAvPjwvZGl2PgogICAgPGlucHV0IHR5cGU9InN1Ym1p dCIgY2xhc3M9InN1Ym1pdCIgLz4KICA8L2Zvcm0+CiAgPGRpdiBjbGFzcz0i YnV0dG9uX2JsdWUgYnV0dG9uX3dpZGUgYnV0dG9uX2JpZyIgaWQ9InF1aWNr X2F1dGhfYnV0dG9uIj48YnV0dG9uIGlkPSJxdWlja19sb2dpbl9idXR0b24i PkxvZyBpbjwvYnV0dG9uPjwvZGl2PgogIDxkaXYgY2xhc3M9ImJ1dHRvbl9i bHVlIGJ1dHRvbl93aWRlIGJ1dHRvbl9iaWciIGlkPSJxdWlja19yZWdfYnV0 dG9uIiBzdHlsZT0iIj48YnV0dG9uIG9uY2xpY2s9InRvcC5zaG93Qm94KCdq b2luLnBocCcsIHthY3Q6ICdib3gnLCBmcm9tOiBuYXYuc3RyTG9jfSkiPlNp Z24gdXA8L2J1dHRvbj48L2Rpdj4KICA8ZGl2IGNsYXNzPSJjbGVhciBmb3Jn b3QiPjxhIGlkPSJxdWlja19mb3Jnb3QiIGhyZWY9Ii9yZXN0b3JlIiB0YXJn ZXQ9Il90b3AiPkZvcmdvdCB5b3VyIHBhc3N3b3JkPzwvYT48ZGl2IGNsYXNz PSJjaGVja2JveCB0YV9sIiBpZD0icXVpY2tfZXhwaXJlIiBvbmNsaWNrPSJj aGVja2JveCh0aGlzKTtnZSgncXVpY2tfZXhwaXJlX2lucHV0JykudmFsdWU9 aXNDaGVja2VkKHRoaXMpPzE6Jyc7Ij48ZGl2PjwvZGl2PkRvbiYjMzk7dCBy ZW1lbWJlciBtZTwvZGl2PjwvZGl2Pgo8L2Rpdj4KICAgIDwvZGl2PgoKICAg IDxkaXYgaWQ9InBhZ2VfYm9keSIgY2xhc3M9ImZsX3IiIHN0eWxlPSJ3aWR0 aDogNjMxcHg7Ij4KICAgICAgPGRpdiBpZD0iaGVhZGVyX3dyYXAyIj4KICAg ICAgICA8ZGl2IGlkPSJoZWFkZXJfd3JhcDEiPgogICAgICAgICAgPGRpdiBp ZD0iaGVhZGVyIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+CiAgICAgICAgICAg IDxoMSBpZD0idGl0bGUiPjwvaDE+CiAgICAgICAgICA8L2Rpdj4KICAgICAg ICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgaWQ9IndyYXBfYmV0 d2VlbiI+PC9kaXY+CiAgICAgIDxkaXYgaWQ9IndyYXAzIj48ZGl2IGlkPSJ3 cmFwMiI+CiAgPGRpdiBpZD0id3JhcDEiPgogICAgPGRpdiBpZD0iY29udGVu dCI+PGRpdiBpdGVtcHJvcD0idmlkZW8iIGl0ZW1zY29wZSBpdGVtdHlwZT0i aHR0cDovL3NjaGVtYS5vcmcvVmlkZW9PYmplY3QiPgogIDxsaW5rIGl0ZW1w cm9wPSJ1cmwiIGhyZWY9Imh0dHA6Ly92ay5jb20vdmlkZW8zOTU3NjIyM18x MDgzNzA1MTUiIC8+CiAgPG1ldGEgaXRlbXByb3A9Im5hbWUiIGNvbnRlbnQ9 It8g8/Lu9+rgKSkpKSkiIC8+CiAgPG1ldGEgaXRlbXByb3A9ImRlc2NyaXB0 aW9uIiBjb250ZW50PSL98u4gwsfQ28IgzM7Hw8AmIzMzOyYjMzM7JiMzMzsg z/Du8fLuIO7y4uDrIOHg+OroLi4uIiAvPgogIDxtZXRhIGl0ZW1wcm9wPSJk dXJhdGlvbiIgY29udGVudD0iUFQzTTNTIiAvPgogIDxsaW5rIGl0ZW1wcm9w PSJ0aHVtYm5haWxVcmwiIGhyZWY9Imh0dHA6Ly92aWRlbzQzMy52a2FkcmUu cnUvYXNzZXRzL3RodW1ibmFpbHMvODg2MTVjYTk4MTE5NjkwMy40NjAudmsu anBnIiAvPgogIDxzcGFuIGl0ZW1wcm9wPSJ0aHVtYm5haWwiIGl0ZW1zY29w ZSBpdGVtdHlwZT0iaHR0cDovL3NjaGVtYS5vcmcvSW1hZ2VPYmplY3QiPgog ICAgPGxpbmsgaXRlbXByb3A9InVybCIgaHJlZj0iaHR0cDovL3ZpZGVvNDMz LnZrYWRyZS5ydS9hc3NldHMvdGh1bWJuYWlscy84ODYxNWNhOTgxMTk2OTAz LjMyMC52ay5qcGciIC8+CiAgICA8bWV0YSBpdGVtcHJvcD0id2lkdGgiIGNv bnRlbnQ9IjMyMCIgLz4KICAgIDxtZXRhIGl0ZW1wcm9wPSJoZWlnaHQiIGNv bnRlbnQ9IjI0MCIgLz4KICA8L3NwYW4+CjwvZGl2PjxkaXYgY2xhc3M9InRf YmFyIGNsZWFyX2ZpeCIgaWQ9InZpZGVvX3RhYnMiPgogIDx1bCBjbGFzcz0i dDAiPjxsaSBjbGFzcz0iIGFjdGl2ZV9saW5rIiBpZD0idmlkZW9fdGFiX2Fs bCI+CiAgPGEgaHJlZj0iL3ZpZGVvczM5NTc2MjIzIiBvbmNsaWNrPSJyZXR1 cm4gY2hlY2tFdmVudChldmVudCk7IiBvbm1vdXNlZG93bj0icmV0dXJuIG5h di5jaGFuZ2Uoe3NlY3Rpb246ICdhbGwnfSk7Ij4KICAgIDxiIGNsYXNzPSJ0 bDEiPjxiPjwvYj48L2I+CiAgICA8YiBjbGFzcz0idGwyIj48L2I+CiAgICA8 YiBjbGFzcz0idGFiX3dvcmQiPjxub2JyPkFsbCB2aWRlb3M8L25vYnI+PC9i PgogIDwvYT4KPC9saT48bGkgY2xhc3M9InZpZGVvX3RhYl9oaWRkZW4iIGlk PSJ2aWRlb190YWJfaGlkZGVuIj4KICA8YSBocmVmPSIvdmlkZW9zMzk1NzYy MjMiIG9uY2xpY2s9InJldHVybiBjaGVja0V2ZW50KGV2ZW50KTsiIG9ubW91 c2Vkb3duPSJyZXR1cm4gZmFsc2U7Ij4KICAgIDxiIGNsYXNzPSJ0bDEiPjxi PjwvYj48L2I+CiAgICA8YiBjbGFzcz0idGwyIj48L2I+CiAgICA8YiBjbGFz cz0idGFiX3dvcmQiPjxub2JyPjwvbm9icj48L2I+CiAgPC9hPgo8L2xpPjxs aSBjbGFzcz0idF9yIj48ZGl2IGlkPSJ2aWRlb190YWJzX3Byb2dyZXNzIiBj bGFzcz0icHJvZ3Jlc3MiPjwvZGl2PjwvbGk+PC91bD4KPC9kaXY+CjxkaXYg aWQ9InZpZGVvX2NvbnRlbnQiIGNsYXNzPSJ2aWRlb19hbGJ1bXNfaGlkZGVu IHZpZGVvX25vX2FsYnVtcyI+CiAgPGRpdiBpZD0idmlkZW9fc2VhcmNoIiBz dHlsZT0iZGlzcGxheTogbm9uZTsiIGNsYXNzPSJ2aWRlb19zZWFyY2ggdG9w X3NlYXJjaF93cmFwIG5vX3ZpZGVvX3VwbG9hZCI+CiAgICAKICAgIDxkaXYg Y2xhc3M9InZpZGVvX2xvYWRpbmdfY29udCI+CiAgICAgIDxkaXYgY2xhc3M9 InZpZGVvX2xvYWRpbmciPjwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGlk PSJ2aWRlb19yZXNldF9zZWFyY2giIGNsYXNzPSJ2aWRlb19yZXNldF9zZWFy Y2giIG9ubW91c2VvdmVyPSJzZXRTdHlsZSh0aGlzLCB7b3BhY2l0eTogMX0p OyIgb25tb3VzZW91dD0ic2V0U3R5bGUodGhpcywge29wYWNpdHk6IDAuNn0p OyIgb25jbGljaz0iVmlkZW8uc2VhcmNoVmlkZW9zKGZhbHNlKTsiPjwvZGl2 PgogICAgPGRpdiBpZD0idmlkZW9fc2VhcmNoX2NvbnRyb2xzIj4KICAgICAg PGRpdiBjbGFzcz0idmlkZW9fc2VhcmNoX2NvbnQiPgogICAgICAgIDxkaXYg Y2xhc3M9InZpZGVvX2NoZWNrYm94IGNoZWNrYm94IGZsX2wiIGlkPSJ2aWRl b19oZF9vcHRpb24iIG9uY2xpY2s9ImNoZWNrYm94KHRoaXMpOyBWaWRlby50 b2dnbGVIRCgxKTsiPjxkaXY+PC9kaXY+SGlnaC1kZWZpbml0aW9uIG9ubHk8 L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idmlkZW9fY2hlY2tib3gg Y2hlY2tib3ggb24gZmxfbCIgaWQ9InZpZGVvX2FkdWx0X29wdGlvbiIgb25j bGljaz0iY2hlY2tib3godGhpcyk7IFZpZGVvLnRvZ2dsZUFkdWx0KCk7Ij48 ZGl2PjwvZGl2PlNhZmUgc2VhcmNoPC9kaXY+CiAgICAgICAgPGEgaWQ9InZp ZGVvX2xlbmd0aF8wIiBjbGFzcz0idmlkZW9fbGVuZ3RoIHZpZGVvX2xlbmd0 aF9zZWwgZmxfciIgb25jbGljaz0icmV0dXJuIFZpZGVvLnRvZ2dsZUxlbmd0 aCh0aGlzLCAwKTsiPkFsbCB2aWRlb3M8L2E+CiAgICAgICAgPGEgaWQ9InZp ZGVvX2xlbmd0aF8xIiBjbGFzcz0idmlkZW9fbGVuZ3RoIGZsX3IiIG9uY2xp Y2s9InJldHVybiBWaWRlby50b2dnbGVMZW5ndGgodGhpcywgMSk7Ij5TaG9y dDwvYT4KICAgICAgICA8YSBpZD0idmlkZW9fbGVuZ3RoXzIiIGNsYXNzPSJ2 aWRlb19sZW5ndGggZmxfciIgb25jbGljaz0icmV0dXJuIFZpZGVvLnRvZ2ds ZUxlbmd0aCh0aGlzLCAyKTsiPkxvbmc8L2E+CgogICAgICAgIDwvZGl2Pgog ICAgICAgIDxiciBjbGFzcz0iY2xlYXIiIC8+CiAgICA8L2Rpdj4KICAgIDxp bnB1dCB0eXBlPSJ0ZXh0IiBpZD0idl9zZWFyY2giIG9ua2V5ZG93bj0iVmlk ZW8udXBkYXRlTGlzdChldmVudCwgdGhpcyk7IiBvbnBhc3RlPSJWaWRlby51 cGRhdGVMaXN0KGV2ZW50LCB0aGlzKTsiIG9uY3V0PSJWaWRlby51cGRhdGVM aXN0KGV2ZW50LCB0aGlzKTsiIGNsYXNzPSJ0ZXh0IHZpZGVvX3NlYXJjaF9p bnB1dCB0b3Bfc2VhcmNoX2lucCIgcGxhY2Vob2xkZXI9IlNlYXJjaCB2aWRl b3MiIG9uZm9jdXM9ImFkZENsYXNzKGN1ci52TGlzdCwgJ3NlYXJjaF9mb2N1 cycpOyIgb25ibHVyPSJyZW1vdmVDbGFzcyhjdXIudkxpc3QsICdzZWFyY2hf Zm9jdXMnKTsiIC8+CiAgPC9kaXY+CiAgPGRpdiBpZD0idmlkZW9fYWxidW1z X2xpc3QiIHN0eWxlPSIiIGNsYXNzPSIiPgoKICAgIDxkaXYgY2xhc3M9InN1 bW1hcnlfd3JhcCI+CiAgICAgIDxkaXYgY2xhc3M9ImNsZWFyX2ZpeCI+CiAg ICAgICAgPGEgaWQ9InZpZGVvX2NyZWF0ZV9hbGJ1bSIgY2xhc3M9ImZsX3Ii IG9uY2xpY2s9IlZpZGVvLmNyZWF0ZUFsYnVtKCkiIHN0eWxlPSJkaXNwbGF5 OiBub25lOyI+TmV3IGZvbGRlcjwvYT4KICAgICAgICA8ZGl2IGlkPSJ2aWRl b19hbGJ1bXNfc3VtbWFyeSIgY2xhc3M9InN1bW1hcnkgIj5BbGV4YW5kZXIg aGFzIDAgZm9sZGVyczwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2Pgog ICAgPGRpdiBjbGFzcz0idmlkZW9fYWxidW1zX2NvbnQiIGlkPSJ2aWRlb19h bGJ1bXNfY29udCI+CiAgICAgIAogICAgPC9kaXY+CiAgPC9kaXY+CiAgPGRp diBjbGFzcz0ic3VtbWFyeV93cmFwIHZpZGVvX21haW5fc3VtbWFyeSI+CiAg ICA8ZGl2IGNsYXNzPSJjbGVhcl9maXgiPgogICAgICA8YSBpZD0idmlkZW9f Y29tbWVudHNfbGluayIgc3R5bGU9IiIgaHJlZj0iL3ZpZGVvczM5NTc2MjIz P3NlY3Rpb249Y29tbWVudHMiIGNsYXNzPSJmbF9yIiBvbmNsaWNrPSJyZXR1 cm4gbmF2LmNoYW5nZSh7c2VjdGlvbjogJ2NvbW1lbnRzJ30pOyI+QnJvd3Nl IGNvbW1lbnRzPC9hPgogICAgICA8ZGl2IGlkPSJ2aWRlb19zdW1tYXJ5IiBj bGFzcz0ic3VtbWFyeSBmbF9sIj41IHZpZGVvczwvZGl2PgogICAgICAKICAg IDwvZGl2PgogIDwvZGl2PgogIDxkaXYgaWQ9InZpZGVvX2xpc3QiIGNsYXNz PSJ2aWRlb19saXN0Ij4KICAgIDxkaXYgaWQ9InZpZGVvX3Jvd3MiIGNsYXNz PSJjbGVhcl9hbGwgIj48ZGl2IGlkPSJ2aWRlb19jb250Mzk1NzYyMjNfMTY2 MzE1NTQzIiBjbGFzcz0idmlkZW9fcm93X2NvbnQiPjxkaXYgY2xhc3M9InZp ZGVvX3Jvd19pbm5lcl9jb250Ij48YSBocmVmPSIvdmlkZW8zOTU3NjIyM18x NjYzMTU1NDMiIGNsYXNzPSJ2aWRlb19yb3dfcmVsYXRpdmUiIGlkPSJ2aWRl b19yb3czOTU3NjIyM18xNjYzMTU1NDMiIG9ubW91c2VvdmVyPSJWaWRlby5y b3dPdmVyKHRoaXMpOyIgb25tb3VzZW91dD0iVmlkZW8ucm93T3V0KHRoaXMp IiBvbmNsaWNrPSJpZiAoY3VyLmNhbmNlbENsaWNrKSByZXR1cm4gKGN1ci5j YW5jZWxDbGljayA9IGZhbHNlKTsgcmV0dXJuIFZpZGVvLnNob3coZXZlbnQs ICczOTU3NjIyM18xNjYzMTU1NDMnLCB7fSwgdGhpcyk7Ij4KICAgIAogICAg PGRpdiBjbGFzcz0idmlkZW9fcm93X2luZm9fbGluZSI+PGRpdiBjbGFzcz0i dmlkZW9fcmF3X2luZm9fbmFtZSI+0OXq6+Ds4CAmcXVvdDvM5e3y7vEmcXVv dDsgKO/w6Oru6yk8L2Rpdj48ZGl2IGNsYXNzPSJ2aWRlb19yb3dfZHVyYXRp b24iPjA6Mjk8L2Rpdj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InZpZGVvX3Jv d19pbmZvX3BsYXkiPjwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNzPSJ2aWRl b19yb3dfY29udHJvbHMiPgogICAgICA8ZGl2IGNsYXNzPSJ2aWRlb19yb3df aWNvbl9lZGl0IGZsX2wiIG9ubW91c2VvdmVyPSJWaWRlby5hY3RpdmF0ZSh0 aGlzKTsiIG9ubW91c2VvdXQ9IlZpZGVvLmRlYWN0aXZhdGUodGhpcyk7IiBv bmNsaWNrPSJyZXR1cm4gdmlkZW92aWV3LnNob3dFZGl0Qm94KDE2NjMxNTU0 MywgMzk1NzYyMjMsIGV2ZW50KTsiPjxkaXYgY2xhc3M9InZpZGVvX3Jvd19p Y29uIj48L2Rpdj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idmlkZW9fcm93 X2ljb25fZGVsZXRlIGZsX2wiIG9ubW91c2VvdmVyPSJWaWRlby5hY3RpdmF0 ZSh0aGlzKTsiIG9ubW91c2VvdXQ9IlZpZGVvLmRlYWN0aXZhdGUodGhpcyk7 IiBvbmNsaWNrPSJyZXR1cm4gVmlkZW8ub25EZWxldGVDbGljaygxNjYzMTU1 NDMsIDM5NTc2MjIzLCAnX2EwYTM2YjZjYTNiMjUwMGRhZScsIHRoaXMsIGV2 ZW50KTsiPjxkaXYgY2xhc3M9InZpZGVvX3Jvd19pY29uIj48L2Rpdj48L2Rp dj4KICAgICAgPGJyIGNsYXNzPSJjbGVhciIgLz4KICAgIDwvZGl2PgogICAg PGRpdiBjbGFzcz0idmlkZW9faW1hZ2VfZGl2IiBzdHlsZT0iYmFja2dyb3Vu ZC1pbWFnZTogdXJsKCdodHRwOi8vdmlkZW80NDgudmthZHJlLnJ1L2Fzc2V0 cy90aHVtYm5haWxzLzNlZGFiZmM1NzcwMzE1ODAuMzIwLnZrLmpwZycpOyI+ PC9kaXY+CiAgPC9hPjwvZGl2Pgo8L2Rpdj48ZGl2IGlkPSJ2aWRlb19jb250 Mzk1NzYyMjNfMTY1NjA3NDQ1IiBjbGFzcz0idmlkZW9fcm93X2NvbnQiPjxk aXYgY2xhc3M9InZpZGVvX3Jvd19pbm5lcl9jb250Ij48YSBocmVmPSIvdmlk ZW8zOTU3NjIyM18xNjU2MDc0NDUiIGNsYXNzPSJ2aWRlb19yb3dfcmVsYXRp dmUiIGlkPSJ2aWRlb19yb3czOTU3NjIyM18xNjU2MDc0NDUiIG9ubW91c2Vv dmVyPSJWaWRlby5yb3dPdmVyKHRoaXMpOyIgb25tb3VzZW91dD0iVmlkZW8u cm93T3V0KHRoaXMpIiBvbmNsaWNrPSJpZiAoY3VyLmNhbmNlbENsaWNrKSBy ZXR1cm4gKGN1ci5jYW5jZWxDbGljayA9IGZhbHNlKTsgcmV0dXJuIFZpZGVv LnNob3coZXZlbnQsICczOTU3NjIyM18xNjU2MDc0NDUnLCB7fSwgdGhpcyk7 Ij4KICAgIAogICAgPGRpdiBjbGFzcz0idmlkZW9fcm93X2luZm9fbGluZSI+ PGRpdiBjbGFzcz0idmlkZW9fcmF3X2luZm9fbmFtZSI+9S/0ICZxdW90O9Hl 7OXp7e7lIOTl6+4mcXVvdDs8L2Rpdj48ZGl2IGNsYXNzPSJ2aWRlb19yb3df ZHVyYXRpb24iPjI6NDA8L2Rpdj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9InZp ZGVvX3Jvd19pbmZvX3BsYXkiPjwvZGl2PgogICAgCiAgICA8ZGl2IGNsYXNz PSJ2aWRlb19yb3dfY29udHJvbHMiPgogICAgICA8ZGl2IGNsYXNzPSJ2aWRl b19yb3dfaWNvbl9lZGl0IGZsX2wiIG9ubW91c2VvdmVyPSJWaWRlby5hY3Rp dmF0ZSh0aGlzKTsiIG9ubW91c2VvdXQ9IlZpZGVvLmRlYWN0aXZhdGUodGhp cyk7IiBvbmNsaWNrPSJyZXR1cm4gdmlkZW92aWV3LnNob3dFZGl0Qm94KDE2 NTYwNzQ0NSwgMzk1NzYyMjMsIGV2ZW50KTsiPjxkaXYgY2xhc3M9InZpZGVv X3Jvd19pY29uIj48L2Rpdj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0idmlk ZW9fcm93X2ljb25fZGVsZXRlIGZsX2wiIG9ubW91c2VvdmVyPSJWaWRlby5h Y3RpdmF0ZSh0aGlzKTsiIG9ubW91c2VvdXQ9IlZpZGVvLmRlYWN0aXZhdGUo dGhpcyk7IiBvbmNsaWNrPSJyZXR1cm4gVmlkZW8ub25EZWxldGVDbGljaygx NjU2MDc0NDUsIDM5NTc2MjIzLCAnXzkzNDlmMWI0NTAxNGY2NzRkZScsIHRo aXMsIGV2ZW50KTsiPjxkaXYgY2xhc3M9InZpZGVvX3Jvd19pY29uIj48L2Rp dj48L2Rpdj4KICAgICAgPGJyIGNsYXNzPSJjbGVhciIgLz4KICAgIDwvZGl2 PgogICAgPGRpdiBjbGFzcz0idmlkZW9faW1hZ2VfZGl2IiBzdHlsZT0iYmFj a2dyb3VuZC1pbWFnZTogdXJsKCdodHRwOi8vY3MxMjk0Ny52ay5tZS91Mjcw OTE0OC92aWRlby9sXzdjYWViMTVlLmpwZycpOyI+PC9kaXY+CiAgPC9hPjwv ZGl2Pgo8L2Rpdj48ZGl2IGlkPSJ2aWRlb19jb250Mzk1NzYyMjNfMTY1NTUz NzY2IiBjbGFzcz0idmlkZW9fcm93X2NvbnQiPjxkaXYgY2xhc3M9InZpZGVv X3Jvd19pbm5lcl9jb250Ij48YSBocmVmPSIvdmlkZW8zOTU3NjIyM18xNjU1 NTM3NjYiIGNsYXNzPSJ2aWRlb19yb3dfcmVsYXRpdmUiIGlkPSJ2aWRlb19y b3czOTU3NjIyM18xNjU1NTM3NjYiIG9ubW91c2VvdmVyPSJWaWRlby5yb3dP dmVyKHRoaXMpOyIgb25tb3VzZW91dD0iVmlkZW8ucm93T3V0KHRoaXMpIiBv bmNsaWNrPSJpZiAoY3VyLmNhbmNlbENsaWNrKSByZXR1cm4gKGN1ci5jYW5j ZWxDbGljayA9IGZhbHNlKTsgcmV0dXJuIFZpZGVvLnNob3coZXZlbnQsICcz OTU3NjIyM18xNjU1NTM3NjYnLCB7fSwgdGhpcyk7Ij4KICAgIAogICAgPGRp diBjbGFzcz0idmlkZW9fcm93X2luZm9fbGluZSI+PGRpdiBjbGFzcz0idmlk ZW9fcmF3X2luZm9fbmFtZSI+0ejs7/Hu7fsgLyBUaGUgU2ltcHNvbnMgMjQg 8eXn7u0gMTcg8eXw6P88L2Rpdj48ZGl2IGNsYXNzPSJ2aWRlb19yb3dfZHVy YXRpb24iPjIxOjUyPC9kaXY+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJ2aWRl b19yb3dfaW5mb19wbGF5Ij48L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0i dmlkZW9fcm93X2NvbnRyb2xzIj4KICAgICAgPGRpdiBjbGFzcz0idmlkZW9f cm93X2ljb25fZWRpdCBmbF9sIiBvbm1vdXNlb3Zlcj0iVmlkZW8uYWN0aXZh dGUodGhpcyk7IiBvbm1vdXNlb3V0PSJWaWRlby5kZWFjdGl2YXRlKHRoaXMp OyIgb25jbGljaz0icmV0dXJuIHZpZGVvdmlldy5zaG93RWRpdEJveCgxNjU1 NTM3NjYsIDM5NTc2MjIzLCBldmVudCk7Ij48ZGl2IGNsYXNzPSJ2aWRlb19y b3dfaWNvbiI+PC9kaXY+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InZpZGVv X3Jvd19pY29uX2RlbGV0ZSBmbF9sIiBvbm1vdXNlb3Zlcj0iVmlkZW8uYWN0 aXZhdGUodGhpcyk7IiBvbm1vdXNlb3V0PSJWaWRlby5kZWFjdGl2YXRlKHRo aXMpOyIgb25jbGljaz0icmV0dXJuIFZpZGVvLm9uRGVsZXRlQ2xpY2soMTY1 NTUzNzY2LCAzOTU3NjIyMywgJ19mYzlmMGY4ZmMxNGE2MzI5NDInLCB0aGlz LCBldmVudCk7Ij48ZGl2IGNsYXNzPSJ2aWRlb19yb3dfaWNvbiI+PC9kaXY+ PC9kaXY+CiAgICAgIDxiciBjbGFzcz0iY2xlYXIiIC8+CiAgICA8L2Rpdj4K ICAgIDxkaXYgY2xhc3M9InZpZGVvX2ltYWdlX2RpdiIgc3R5bGU9ImJhY2tn cm91bmQtaW1hZ2U6IHVybCgnaHR0cDovL2NzNTI2NDA0LnZrLm1lL3U4NjMz MjA3Ni92aWRlby9sX2IwMDFiN2UzLmpwZycpOyI+PC9kaXY+CiAgPC9hPjwv ZGl2Pgo8L2Rpdj48ZGl2IGlkPSJ2aWRlb19jb250Mzk1NzYyMjNfMTYxNTk4 NTQ0IiBjbGFzcz0idmlkZW9fcm93X2NvbnQiPjxkaXYgY2xhc3M9InZpZGVv X3Jvd19pbm5lcl9jb250Ij48YSBocmVmPSIvdmlkZW8zOTU3NjIyM18xNjE1 OTg1NDQiIGNsYXNzPSJ2aWRlb19yb3dfcmVsYXRpdmUiIGlkPSJ2aWRlb19y b3czOTU3NjIyM18xNjE1OTg1NDQiIG9ubW91c2VvdmVyPSJWaWRlby5yb3dP dmVyKHRoaXMpOyIgb25tb3VzZW91dD0iVmlkZW8ucm93T3V0KHRoaXMpIiBv bmNsaWNrPSJpZiAoY3VyLmNhbmNlbENsaWNrKSByZXR1cm4gKGN1ci5jYW5j ZWxDbGljayA9IGZhbHNlKTsgcmV0dXJuIFZpZGVvLnNob3coZXZlbnQsICcz OTU3NjIyM18xNjE1OTg1NDQnLCB7fSwgdGhpcyk7Ij4KICAgIAogICAgPGRp diBjbGFzcz0idmlkZW9fcm93X2luZm9fbGluZSI+PGRpdiBjbGFzcz0idmlk ZW9fcmF3X2luZm9fbmFtZSI+SGFycnkgUGFydHJpZGdlIC0gU2t5cmltICjw 8/Hx6uD/IO7n4vP36uApPC9kaXY+PGRpdiBjbGFzcz0idmlkZW9fcm93X2R1 cmF0aW9uIj4xOjI1PC9kaXY+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJ2aWRl b19yb3dfaW5mb19wbGF5Ij48L2Rpdj4KICAgIAogICAgPGRpdiBjbGFzcz0i dmlkZW9fcm93X2NvbnRyb2xzIj4KICAgICAgPGRpdiBjbGFzcz0idmlkZW9f cm93X2ljb25fZWRpdCBmbF9sIiBvbm1vdXNlb3Zlcj0iVmlkZW8uYWN0aXZh dGUodGhpcyk7IiBvbm1vdXNlb3V0PSJWaWRlby5kZWFjdGl2YXRlKHRoaXMp OyIgb25jbGljaz0icmV0dXJuIHZpZGVvdmlldy5zaG93RWRpdEJveCgxNjE1 OTg1NDQsIDM5NTc2MjIzLCBldmVudCk7Ij48ZGl2IGNsYXNzPSJ2aWRlb19y b3dfaWNvbiI+PC9kaXY+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InZpZGVv X3Jvd19pY29uX2RlbGV0ZSBmbF9sIiBvbm1vdXNlb3Zlcj0iVmlkZW8uYWN0 aXZhdGUodGhpcyk7IiBvbm1vdXNlb3V0PSJWaWRlby5kZWFjdGl2YXRlKHRo aXMpOyIgb25jbGljaz0icmV0dXJuIFZpZGVvLm9uRGVsZXRlQ2xpY2soMTYx NTk4NTQ0LCAzOTU3NjIyMywgJ183Y2MxNTQyMjZlZjEyNTgwNjInLCB0aGlz LCBldmVudCk7Ij48ZGl2IGNsYXNzPSJ2aWRlb19yb3dfaWNvbiI+PC9kaXY+ PC9kaXY+CiAgICAgIDxiciBjbGFzcz0iY2xlYXIiIC8+CiAgICA8L2Rpdj4K ICAgIDxkaXYgY2xhc3M9InZpZGVvX2ltYWdlX2RpdiIgc3R5bGU9ImJhY2tn cm91bmQtaW1hZ2U6IHVybCgnaHR0cDovL2NzNDY0OS52ay5tZS91NTUxODQw MC92aWRlby9sXzZlZDg1ZGUwLmpwZycpOyI+PC9kaXY+CiAgPC9hPjwvZGl2 Pgo8L2Rpdj48ZGl2IGlkPSJ2aWRlb19jb250Mzk1NzYyMjNfMTA4MzcwNTE1 IiBjbGFzcz0idmlkZW9fcm93X2NvbnQiPjxkaXYgY2xhc3M9InZpZGVvX3Jv d19pbm5lcl9jb250Ij48YSBocmVmPSIvdmlkZW8zOTU3NjIyM18xMDgzNzA1 MTUiIGNsYXNzPSJ2aWRlb19yb3dfcmVsYXRpdmUiIGlkPSJ2aWRlb19yb3cz OTU3NjIyM18xMDgzNzA1MTUiIG9ubW91c2VvdmVyPSJWaWRlby5yb3dPdmVy KHRoaXMpOyIgb25tb3VzZW91dD0iVmlkZW8ucm93T3V0KHRoaXMpIiBvbmNs aWNrPSJpZiAoY3VyLmNhbmNlbENsaWNrKSByZXR1cm4gKGN1ci5jYW5jZWxD bGljayA9IGZhbHNlKTsgcmV0dXJuIFZpZGVvLnNob3coZXZlbnQsICczOTU3 NjIyM18xMDgzNzA1MTUnLCB7fSwgdGhpcyk7Ij4KICAgIAogICAgPGRpdiBj bGFzcz0idmlkZW9fcm93X2luZm9fbGluZSI+PGRpdiBjbGFzcz0idmlkZW9f cmF3X2luZm9fbmFtZSI+3yDz8u736uApKSkpKTwvZGl2PjxkaXYgY2xhc3M9 InZpZGVvX3Jvd19kdXJhdGlvbiI+MzowMzwvZGl2PjwvZGl2PgogICAgPGRp diBjbGFzcz0idmlkZW9fcm93X2luZm9fcGxheSI+PC9kaXY+CiAgICAKICAg IDxkaXYgY2xhc3M9InZpZGVvX3Jvd19jb250cm9scyI+CiAgICAgIDxkaXYg Y2xhc3M9InZpZGVvX3Jvd19pY29uX2VkaXQgZmxfbCIgb25tb3VzZW92ZXI9 IlZpZGVvLmFjdGl2YXRlKHRoaXMpOyIgb25tb3VzZW91dD0iVmlkZW8uZGVh Y3RpdmF0ZSh0aGlzKTsiIG9uY2xpY2s9InJldHVybiB2aWRlb3ZpZXcuc2hv d0VkaXRCb3goMTA4MzcwNTE1LCAzOTU3NjIyMywgZXZlbnQpOyI+PGRpdiBj bGFzcz0idmlkZW9fcm93X2ljb24iPjwvZGl2PjwvZGl2PgogICAgICA8ZGl2 IGNsYXNzPSJ2aWRlb19yb3dfaWNvbl9kZWxldGUgZmxfbCIgb25tb3VzZW92 ZXI9IlZpZGVvLmFjdGl2YXRlKHRoaXMpOyIgb25tb3VzZW91dD0iVmlkZW8u ZGVhY3RpdmF0ZSh0aGlzKTsiIG9uY2xpY2s9InJldHVybiBWaWRlby5vbkRl bGV0ZUNsaWNrKDEwODM3MDUxNSwgMzk1NzYyMjMsICdfM2E1OWE5OWI5ODQ5 ZDhlN2UxJywgdGhpcywgZXZlbnQpOyI+PGRpdiBjbGFzcz0idmlkZW9fcm93 X2ljb24iPjwvZGl2PjwvZGl2PgogICAgICA8YnIgY2xhc3M9ImNsZWFyIiAv PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJ2aWRlb19pbWFnZV9kaXYi IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHA6Ly92aWRlbzQz My52a2FkcmUucnUvYXNzZXRzL3RodW1ibmFpbHMvODg2MTVjYTk4MTE5Njkw My4zMjAudmsuanBnJyk7Ij48L2Rpdj4KICA8L2E+PC9kaXY+CjwvZGl2Pjwv ZGl2PgogICAgPGRpdiBpZD0idmlkZW9fc2VhcmNoX3N1bW1hcnkiIGNsYXNz PSJzdW1tYXJ5X3dyYXAgY2xlYXIiIHN0eWxlPSJkaXNwbGF5OiBub25lIj48 L2Rpdj4KICAgIDxhIGlkPSJ2aWRlb19zb3J0X2RkIiBjbGFzcz0iZGRfbGlu ayBmbF9yIj5CeSByZWxldmFuY2U8L2E+CiAgICA8ZGl2IGlkPSJ2aWRlb19z ZWFyY2hfcm93cyI+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InNob3dfbW9y ZSIgY2xhc3M9InNob3dfbW9yZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4K ICAgICAgPGEgaHJlZj0iIiBvbmNsaWNrPSJWaWRlby5zaG93TW9yZSgpOyBy ZXR1cm4gZmFsc2U7IiBjbGFzcz0ibW9yZSI+CiAgICAgICAgU2hvdyBtb3Jl CiAgICAgIDwvYT4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY2xlYXIi PgogICAgICA8ZGl2IGlkPSJub3RfZm91bmQiIGNsYXNzPSJ2aWRlb19pbmZv X21zZyAiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CiAgPHNwYW4gY2xhc3M9 InZpZGVvX2VtcHR5Ij5UaGVyZSBhcmUgbm8gdmlkZW9zLjwvc3Bhbj4KICA8 c3BhbiBjbGFzcz0idmlkZW9fYnlfc2VhcmNoIj5Zb3VyIHNlYXJjaCBmb3Ig PGI+PHNwYW4gaWQ9InNlYXJjaF9waCI+PC9zcGFuPjwvYj4gcmV0dXJuZWQg bm8gdmlkZW9zLjwvc3Bhbj4KICA8c3BhbiBjbGFzcz0idmlkZW9fZW1wdHlf YWxidW0iPk5vIHZpZGVvcyBpbiB0aGlzIGZvbGRlciB5ZXQuPC9zcGFuPgo8 L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBpZD0icGFn ZV9lbmQiPjwvZGl2PjwvZGl2PgogIDwvZGl2Pgo8L2Rpdj48L2Rpdj4KICAg IDwvZGl2PgoKICAgIDxkaXYgaWQ9ImZvb3Rlcl93cmFwIiBjbGFzcz0iZmxf ciIgc3R5bGU9IndpZHRoOiA2NjFweDsiPgogICAgICA8ZGl2IGlkPSJib3R0 b21fbmF2Ij4KICA8YSBjbGFzcz0iYm5hdl9hIiBocmVmPSIvYWJvdXQiPmFi b3V0PC9hPgogIDxhIGNsYXNzPSJibmF2X2EiIGhyZWY9Ii9zdXBwb3J0P2Fj dD1uZXciIG9uY2xpY2s9InJldHVybiBuYXYuZ28odGhpcywgZXZlbnQpOyIg c3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij5oZWxwPC9hPgogIDxhIGNsYXNzPSJi bmF2X2EiIGhyZWY9Ii90ZXJtcyI+dGVybXM8L2E+CiAgPGEgY2xhc3M9ImJu YXZfYSIgaHJlZj0iL3Blb3BsZSI+cGVvcGxlPC9hPjxhIGNsYXNzPSJibmF2 X2EiIGhyZWY9Ii9jb21tdW5pdGllcyI+Y29tbXVuaXRpZXM8L2E+CiAgPGEg Y2xhc3M9ImJuYXZfYSIgaHJlZj0iL2RldiI+ZGV2ZWxvcGVyczwvYT4KPC9k aXY+CjxwIGlkPSJmb290ZXIiPgogIDxkaXYgY2xhc3M9ImNvcHlfbGFuZyI+ PGEgaHJlZj0iL2Fib3V0Ij5WSzwvYT4gJmNvcHk7IDIwMTQgPGEgY2xhc3M9 ImJuYXZfbGFuZyIgb25jbGljaz0iYWpheC5wb3N0KCdhbF9pbmRleC5waHAn LCB7YWN0OiAnY2hhbmdlX2xhbmcnLCBsYW5nX2lkOiAzLCBoYXNoOiAnZjk0 MGYwNDkyNjgxMjIxZDhiJ30pIj5FbmdsaXNoPC9hPjxhIGNsYXNzPSJibmF2 X2xhbmciIG9uY2xpY2s9ImFqYXgucG9zdCgnYWxfaW5kZXgucGhwJywge2Fj dDogJ2NoYW5nZV9sYW5nJywgbGFuZ19pZDogMCwgaGFzaDogJ2Y5NDBmMDQ5 MjY4MTIyMWQ4Yid9KSI+0PPx8ero6TwvYT48YSBjbGFzcz0iYm5hdl9sYW5n IiBvbmNsaWNrPSJhamF4LnBvc3QoJ2FsX2luZGV4LnBocCcsIHthY3Q6ICdj aGFuZ2VfbGFuZycsIGxhbmdfaWQ6IDEsIGhhc2g6ICdmOTQwZjA0OTI2ODEy MjFkOGInfSkiPtPq8OC/7fH86uA8L2E+PGEgY2xhc3M9ImJuYXZfbGFuZyIg b25jbGljaz0ic2hvd0JveCgnbGFuZy5waHAnLCB7YWN0OiAnbGFuZ19kaWFs b2cnfSwge25vcmVsb2FkOiB0cnVlfSkiPmFsbCBsYW5ndWFnZXMguzwvYT48 L2Rpdj4KICAKICA8ZGl2PgogICAgCiAgICAKICA8L2Rpdj4KPC9wPgogICAg PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CiAgPC9kaXY+ CjwvZGl2PjwvZGl2PjwvZGl2PgogIDxkaXYgY2xhc3M9InByb2dyZXNzIiBp ZD0iZ2xvYmFsX3ByZyI+PC9kaXY+CgogIDxzY3JpcHQgdHlwZT0idGV4dC9q YXZhc2NyaXB0Ij4KICAgIGlmIChwYXJlbnQgJiYgcGFyZW50ICE9IHdpbmRv dyAmJiAoYnJvd3Nlci5tc2llIHx8IGJyb3dzZXIub3BlcmEgfHwgYnJvd3Nl ci5tb3ppbGxhIHx8IGJyb3dzZXIuY2hyb21lIHx8IGJyb3dzZXIuc2FmYXJp IHx8IGJyb3dzZXIuaXBob25lKSkgewogICAgICBkb2N1bWVudC5nZXRFbGVt ZW50c0J5VGFnTmFtZSgnYm9keScpWzBdLmlubmVySFRNTCA9ICcnOwogICAg fSBlbHNlIHsKICAgICAgZG9tUmVhZHkoKTsKICAgICAgdXBkYXRlTW9uZXko MCk7CmdTZWFyY2guaW5pdCgpOwppZiAod2luZG93LnFBcnIgJiYgcUFycls1 XSkgcUFycls1XSA9IFs1LCAiYnkgaXRlbSIsICIiLCAiZ29vZHMiLCAweDAw MDAwMTAwXTsKaWYgKGJyb3dzZXIuaXBob25lIHx8IGJyb3dzZXIuaXBhZCB8 fCBicm93c2VyLmlwb2QpIHsKICBzZXRTdHlsZShib2R5Tm9kZSwge3dlYmtp dFRleHRTaXplQWRqdXN0OiAnbm9uZSd9KTsKfXZhciBxZiA9IGdlKCdxdWlj a19sb2dpbl9mb3JtJyksIHFsID0gZ2UoJ3F1aWNrX2xvZ2luJyksIHFlID0g Z2UoJ3F1aWNrX2VtYWlsJyksIHFwID0gZ2UoJ3F1aWNrX3Bhc3MnKTsKdmFy IHFsYiA9IGdlKCdxdWlja19sb2dpbl9idXR0b24nKSwgcHJnQnRuID0gcWxi OwoKdmFyIHFpbml0ID0gZnVuY3Rpb24oKSB7CiAgc2V0VGltZW91dChmdW5j dGlvbigpIHsKICAgIHFsLmluc2VydEJlZm9yZShjZSgnZGl2Jywge2lubmVy SFRNTDogJzxpZnJhbWUgY2xhc3M9InVwbG9hZF9mcmFtZSIgaWQ9InF1aWNr X2xvZ2luX2ZyYW1lIiBuYW1lPSJxdWlja19sb2dpbl9mcmFtZSI+PC9pZnJh bWU+J30pLCBxZik7CiAgICBxZi50YXJnZXQgPSAncXVpY2tfbG9naW5fZnJh bWUnOwogIH0sIDEpOwp9CgppZiAod2luZG93LnRvcCAmJiB3aW5kb3cudG9w ICE9IHdpbmRvdykgewogIHdpbmRvdy5vbmxvYWQgPSBxaW5pdDsKfSBlbHNl IHsKICBzZXRUaW1lb3V0KHFpbml0LCAwKTsKfQoKcWYub25zdWJtaXQgPSBm dW5jdGlvbigpIHsKICBpZiAoIWdlKCdxdWlja19sb2dpbl9mcmFtZScpKSBy ZXR1cm4gZmFsc2U7CiAgaWYgKCF0cmltKHFlLnZhbHVlKSkgewogICAgbm90 YUJlbmUocWUpOwogICAgcmV0dXJuIGZhbHNlOwogIH0gZWxzZSBpZiAoIXRy aW0ocXAudmFsdWUpKSB7CiAgICBub3RhQmVuZShxcCk7CiAgICByZXR1cm4g ZmFsc2U7CiAgfQogIGxvY2tCdXR0b24od2luZG93Ll9fcWZCdG4gPSBwcmdC dG4pOwogIHByZ0J0biA9IHFsYjsKICBjbGVhclRpbWVvdXQoX19xbFRpbWVy KTsKICBfX3FsVGltZXIgPSBzZXRUaW1lb3V0KGxvZ2luU3VibWl0RXJyb3Is IDMwMDAwKTsKICBkb21GQyhkb21QUyhxZikpLm9ubG9hZCA9IGZ1bmN0aW9u KCkgewogICAgY2xlYXJUaW1lb3V0KF9fcWxUaW1lcik7CiAgICBfX3FsVGlt ZXIgPSBzZXRUaW1lb3V0KGxvZ2luU3VibWl0RXJyb3IsIDI1MDApOwogIH0K ICByZXR1cm4gdHJ1ZTsKfQoKd2luZG93LmxvZ2luU3VibWl0RXJyb3IgPSBm dW5jdGlvbigpIHsKICBzaG93RmFzdEJveCgnV2FybmluZycsICdVbmFibGUg dG8gY29tcGxldGUgZW5jcnlwdGVkIGF1dGhvcml6YXRpb24uIFRoaXMgY2Fu IGhhcHBlbiBpZiB5b3VyIGRhdGUgYW5kIHRpbWUgc2V0dGluZ3MgYXJlIG5v dCBjb25maWd1cmVkIGNvcnJlY3RseSBvbiB5b3VyIHN5c3RlbS4gUGxlYXNl IGNoZWNrIHlvdXIgZGF0ZSAmYW1wOyB0aW1lIHNldHRpbmdzIGFuZCByZXN0 YXJ0IHRoZSBicm93c2VyLicpOwp9CndpbmRvdy5mb2N1c0xvZ2luSW5wdXQg PSBmdW5jdGlvbigpIHsKICBzY3JvbGxUb1RvcCgwKTsKICBub3RhQmVuZSgn cXVpY2tfZW1haWwnKTsKfQp3aW5kb3cuY2hhbmdlUXVpY2tSZWdCdXR0b24g PSBmdW5jdGlvbihub1Nob3cpIHsKICBpZiAobm9TaG93KSB7CiAgICBoaWRl KCd0b3BfcmVnX2xpbmsnLCAncXVpY2tfcmVnX2J1dHRvbicpOwogICAgc2hv dygndG9wX3NlYXJjaF9saW5rJyk7CiAgfSBlbHNlIHsKICAgIGhpZGUoJ3Rv cF9zZWFyY2hfbGluaycpOwogICAgc2hvdygndG9wX3JlZ19saW5rJywgJ3F1 aWNrX3JlZ19idXR0b24nKTsKICB9CiAgdG9nZ2xlKCd0b3Bfc3dpdGNoX2xh bmcnLCBub1Nob3cgJiYgd2luZG93LmxhbmdDb25maWcgJiYgd2luZG93Lmxh bmdDb25maWcuaWQgIT0gMyk7Cn0Kd2luZG93LnN1Ym1pdFF1aWNrTG9naW5G b3JtID0gZnVuY3Rpb24oZW1haWwsIHBhc3MsIG9wdHMpIHsKICBzZXRRdWlj a0xvZ2luRGF0YShlbWFpbCwgcGFzcywgb3B0cyk7CiAgaWYgKG9wdHMgJiYg b3B0cy5wcmcpIHByZ0J0biA9IG9wdHMucHJnOwogIGlmIChxZi5vbnN1Ym1p dCgpKSBxZi5zdWJtaXQoKTsKfQp3aW5kb3cuc2V0UXVpY2tMb2dpbkRhdGEg PSBmdW5jdGlvbihlbWFpbCwgcGFzcywgb3B0cykgewogIGlmIChlbWFpbCAh PT0gdW5kZWZpbmVkKSBnZSgncXVpY2tfZW1haWwnKS52YWx1ZSA9IGVtYWls OwogIGlmIChwYXNzICE9PSB1bmRlZmluZWQpIGdlKCdxdWlja19wYXNzJyku dmFsdWUgPSBwYXNzOwogIHZhciBwYXJhbXMgPSBvcHRzICYmIG9wdHMucGFy YW1zIHx8IHt9OwogIGZvciAodmFyIGkgaW4gcGFyYW1zKSB7CiAgICB2YXIg ZWwgPSBnZSgncXVpY2tfbG9naW5fJyArIGkpOwogICAgaWYgKGVsKSB7CiAg ICAgIHZhbChlbCwgcGFyYW1zW2ldKTsKICAgIH0gZWxzZSB7CiAgICAgIHFm LmFwcGVuZENoaWxkKGNlKCdpbnB1dCcsIHt0eXBlOiAnaGlkZGVuJywgbmFt ZTogaSwgaWQ6ICdxdWlja19sb2dpbl8nICsgaSwgdmFsdWU6IHBhcmFtc1tp XX0pKTsKICAgIH0KICB9Cn0KCmlmIChxbGIpIHsKICBxbGIub25jbGljayA9 IGZ1bmN0aW9uKCkgeyBpZiAocWYub25zdWJtaXQoKSkgcWYuc3VibWl0KCk7 IH07Cn0KCmlmIChicm93c2VyLm9wZXJhX21vYmlsZSkgc2hvdygncXVpY2tf ZXhwaXJlJyk7CgppZiAoMSkgewogIGhpZGUoJ3N1cHBvcnRfbGlua190ZCcp Owp9CnZhciB0c19pbnB1dCA9IGdlKCd0c19pbnB1dCcpLCBvbGRGRiA9IGJy b3dzZXIubW96aWxsYSAmJiBwYXJzZUludChicm93c2VyLnZlcnNpb24pIDwg ODsKaWYgKGJyb3dzZXIubW96aWxsYSAmJiAhb2xkRkYpIHsKICBzZXRTdHls ZSh0c19pbnB1dCwge3BhZGRpbmc6ICh2ay5ydGwgPyAnM3B4IDIwcHggNnB4 IDQwcHgnIDogJzNweCA0MXB4IDZweCAyMHB4Jyl9KTsKfQpwbGFjZWhvbGRl clNldHVwKHRzX2lucHV0LCB7YmFjazogZmFsc2UsIHJlbG9hZDogdHJ1ZX0p OwppZiAoYnJvd3Nlci5vcGVyYSB8fCBicm93c2VyLm1zaWUgfHwgYnJvd3Nl ci5tb3ppbGxhKSB7CiAgc2V0U3R5bGUodHNfaW5wdXQsIHtwYWRkaW5nOiAo dmsucnRsID8gJzRweCAyMHB4IDVweCA0MHB4JyA6ICc0cHggNDFweCA1cHgg MjBweCcpfSk7Cn0gZWxzZSBpZiAoYnJvd3Nlci5jaHJvbWUgfHwgYnJvd3Nl ci5zYWZhcmkpIHsKICBzZXRTdHlsZSh0c19pbnB1dCwge3BhZGRpbmc6ICh2 ay5ydGwgPyAnNHB4IDIxcHggNXB4IDQwcHgnIDogJzRweCA0MHB4IDVweCAy MXB4Jyl9KTsKfQoKVG9wU2VhcmNoLmluaXQoKTsKaWYgKGJyb3dzZXIubXNp ZTggfHwgYnJvd3Nlci5tc2llNykgewogIHZhciBzdCA9IHtib3JkZXI6ICcx cHggc29saWQgI2E2YjZjNid9OwogIGlmIChoYXNDbGFzcyhnZSgndHNfd3Jh cCcpLCAndmsnKSkgewogICAgaWYgKHZrLnJ0bCkgc3QubGVmdCA9ICcxcHgn OwogICAgZWxzZSBzdC5yaWdodCA9ICcwcHgnOwogIH0gZWxzZSB7CiAgICBp ZiAodmsucnRsKSBzdC5yaWdodCA9ICcxNDZweCc7CiAgICBlbHNlIHN0Lmxl ZnQgPSAnMTQ2cHgnOwogIH0KICBzZXRTdHlsZShnZSgndHNfY29udF93cmFw JyksIHN0KTsKfQp3aW5kb3cudHNIaW50c0VuYWJsZWQgPSAxOwpzZXRUaW1l b3V0KHpOYXYucGJpbmQoe30sIHtxdWV1ZToxfSksIDApOwpoYW5kbGVQYWdl UGFyYW1zKHsiaWQiOjAsInBhZHMiOjEsIm5vX2FkcyI6MSwibG9jIjoiP2Fj dD1zJm9pZD0zOTU3NjIyMyZ2aWQ9MTA4MzcwNTE1Iiwid3JhcF9wYWdlIjox LCJ3aWR0aCI6NzkxLCJ3aWR0aF9kZWMiOjE2MCwid2lkdGhfZGVjX2Zvb3Rl ciI6MTMwLCJjb3VudGVycyI6IiIsInB2YmlnIjowLCJwdmRhcmsiOjF9KTtz aG93QmFja0xpbmsoJy9kcmFrbWFpbCcsICdBbGV4YW5kZXIgTWFzbG92Jyk7 YWRkRXZlbnQoZG9jdW1lbnQsICdjbGljaycsIG9uRG9jdW1lbnRDbGljayk7 VmlkZW8uaW5pdChleHRlbmQoewogIHZpZGVvTGlzdDogeydhbGwnOiBbWzM5 NTc2MjIzLCAxNjYzMTU1NDMsICdodHRwOi8vdmlkZW80NDgudmthZHJlLnJ1 L2Fzc2V0cy90aHVtYm5haWxzLzNlZGFiZmM1NzcwMzE1ODAuMzIwLnZrLmpw ZycsICfQ5err4OzgICZxdW90O8zl7fLu8SZxdW90OyAo7/Do6u7rKScsICcn LCAnMCcsIDAsIDAsIDAsICcwOjI5JywgJzAnLCAnX2EwYTM2YjZjYTNiMjUw MGRhZScsICcnXSxbMzk1NzYyMjMsIDE2NTYwNzQ0NSwgJ2h0dHA6Ly9jczEy OTQ3LnZrLm1lL3UyNzA5MTQ4L3ZpZGVvL2xfN2NhZWIxNWUuanBnJywgJ/Uv 9CAmcXVvdDvR5ezl6e3u5SDk5evuJnF1b3Q7JywgJycsICcwJywgMCwgMCwg MCwgJzI6NDAnLCAnMycsICdfOTM0OWYxYjQ1MDE0ZjY3NGRlJywgJyddLFsz OTU3NjIyMywgMTY1NTUzNzY2LCAnaHR0cDovL2NzNTI2NDA0LnZrLm1lL3U4 NjMzMjA3Ni92aWRlby9sX2IwMDFiN2UzLmpwZycsICfR6Ozv8e7t+yAvIFRo ZSBTaW1wc29ucyAyNCDx5efu7SAxNyDx5fDo/ycsICcnLCAnMCcsIDAsIDAs IDAsICcyMTo1MicsICczJywgJ19mYzlmMGY4ZmMxNGE2MzI5NDInLCAnJ10s WzM5NTc2MjIzLCAxNjE1OTg1NDQsICdodHRwOi8vY3M0NjQ5LnZrLm1lL3U1 NTE4NDAwL3ZpZGVvL2xfNmVkODVkZTAuanBnJywgJ0hhcnJ5IFBhcnRyaWRn ZSAtIFNreXJpbSAo8PPx8erg/yDu5+Lz9+rgKScsICcnLCAnMCcsIDAsIDAs IDAsICcxOjI1JywgJzAnLCAnXzdjYzE1NDIyNmVmMTI1ODA2MicsICcnXSxb Mzk1NzYyMjMsIDEwODM3MDUxNSwgJ2h0dHA6Ly92aWRlbzQzMy52a2FkcmUu cnUvYXNzZXRzL3RodW1ibmFpbHMvODg2MTVjYTk4MTE5NjkwMy4zMjAudmsu anBnJywgJ98g8/Lu9+rgKSkpKSknLCAnJywgJzAnLCAwLCAyLCAwLCAnMzow MycsICcwJywgJ18zYTU5YTk5Yjk4NDlkOGU3ZTEnLCAnJ11dfSwKICBzaG93 bjogNSwKICB2aWRlb1RwbDogZnVuY3Rpb24odiwgY2FuZWRpdCkgewp2YXIg dGFnTGFiZWwgPSAnJywgdGFncyA9ICcnLCB2aWRlb1JhdyA9IHZbMF0gKyAn XycgKyB2WzFdOwoKaWYgKHZbOF0gJiAyKSB7CiAgdGFnTGFiZWwgPSAnPGRp diBjbGFzcz0idmlkZW9fdGFnX2xhYmVsIj4nK2dldExhbmcoJ3ZpZGVvX25l d190YWcnKSsnPC9kaXY+JzsKfQppZiAodlsxMF0pIHsKICBmb3IgKHZhciBp ID0gMTsgaSA8PSB2WzEwXTsgaSsrKSB7CiAgICB2YXIgbGFiZWwgPSAnJzsK ICAgIHN3aXRjaCAoaSkgewogICAgICBjYXNlIDM6IGxhYmVsID0gNzIwOyBi cmVhazsKICAgICAgY2FzZSAyOiBsYWJlbCA9IDQ4MDsgYnJlYWs7CiAgICAg IGRlZmF1bHQ6IGxhYmVsID0gMzYwOyBicmVhazsKICAgIH0KICAgIHRhZ3Mg Kz0gJzxhIGNsYXNzPSJxdWFsaXR5IGZsX2wiIGhyZWY9Ii92aWRlbycgKyB2 aWRlb1JhdyArICciIG9uY2xpY2s9InJldHVybiBWaWRlby5zaG93KGV2ZW50 LCBcJycgKyB2aWRlb1JhdyArICdcJywge3BhcmFtczoge2FjdDogXCdzaG93 XCcsIHZpZGVvOiBcJycgKyB2aWRlb1JhdyArICdcJywgZm9yY2VfaGQ6IFwn JyArIGkgKyAnXCcsIGF1dG9wbGF5OiAxfX0pOyI+JyArIGxhYmVsICsgJzwv YT4nOwogIH0KICBpZiAodGFncykgdGFncyA9ICc8ZGl2IGNsYXNzPSJ2aWRl b19xdWFsaXR5IGNsZWFyX2ZpeCI+JyArIHRhZ3MgKyAnPC9kaXY+JzsKfQpp ZiAodls1XSAmIDEpIHsKICB2WzNdICs9ICc8c3BhbiBjbGFzcz0idmlkZW9f aXNfcHJpdmF0ZSIgb25tb3VzZW92ZXI9InJldHVybiBWaWRlby5wcml2YXRl VG9vbHRpcCh0aGlzKTsiIG9uY2xpY2s9InJldHVybiBWaWRlby5wcml2YXRl Q2xpY2sodGhpcywgZXZlbnQpOyI+PC9zcGFuPic7Cn0KdmFyIGFkZEJ0biA9 ICcnOwppZiAoIWNhbmVkaXQgJiYgdmsuaWQgJiYgdmsuaWQgIT0gdlswXSkg ewogIGFkZEJ0biA9ICc8ZGl2IGNsYXNzPSJ2aWRlb19yb3dfYWRkIj48ZGl2 IGNsYXNzPSJ2aWRlb19yb3dfaWNvbl9hZGQgZmxfbCIgb25tb3VzZW92ZXI9 IlZpZGVvLmFjdGl2YXRlKHRoaXMsIFwnYWRkX3R0XCcsIDEpOyIgb25tb3Vz ZW91dD0iVmlkZW8uZGVhY3RpdmF0ZSh0aGlzKTsiIG9uY2xpY2s9InJldHVy biBWaWRlby5hZGRGcm9tTGlzdChcJycrdlswXSsnXycrdlsxXSsnXCcsIFwn Jyt2WzExXS5zdWJzdHIoMSkrJ1wnLCBldmVudCk7Ij48ZGl2IGNsYXNzPSJ2 aWRlb19yb3dfaWNvbiI+PC9kaXY+PC9kaXY+PC9kaXY+JzsKfQpyZXR1cm4g cnMoY3VyLnZpZGVvVHBsSFRNTCwgewogIG9pZDogdlswXSwKICB2aWQ6IHZb MV0sCiAgdGh1bWI6IHZbMl0sCiAgdGl0bGU6IHZbM10sCiAgZHVyYXRpb246 IHZbOV0sCiAgZGVzY3I6IHZbNF0sCiAgYWR1bHQ6IHZbMTNdIHx8ICcnLAog IGxpbmtjbGFzczogdlsxMl0sCiAgaGFzaDogdlsxMV0sCiAgY2FuZWRpdDog Y2FuZWRpdCwKICByb3dfYWN0czogJycsCiAgYWN0czogJycsCiAgbmV3dGFn czogdGFnTGFiZWwsCiAgYWRkYnRuOiBhZGRCdG4sCn0pOwp9LAogIGFsYnVt c1RwbDogZnVuY3Rpb24oYWlkLCB2LCB0KSB7CiAgcmV0dXJuIHJzKGN1ci5h bGJ1bXNUcGxIVE1MLCB7CiAgICBhbGJ1bV9pZDogYWlkLAogICAgbWFpbl9o cmVmOiAnL3ZpZGVvczM5NTc2MjIzJywKICAgIHNlY3Rpb25fbmFtZTogKGFp ZCA9PSAtMSkgPyAndGFnZ2VkJyA6ICdhbGJ1bV8nK2FpZCwKICAgIHRpdGxl OiB0LAogICAgdGh1bWI6IHZbMl0sCiAgICBjb3VudDogdlszXSwKICAgIG5l d190YWdzOiAoYWlkID09IC0xICYmIGN1ci5uZXdfdGFnc19zdHIpID8gY3Vy Lm5ld190YWdzX3N0ciA6ICcnLAogICAgY2xhc3NfbmFtZTogKGFpZCA9PSAt MSkgPyAnJyA6ICcgdmlkZW9fYWxidW1fY2FuZHJvcCcsCiAgICBub2RyYWc6 IChhaWQgPT0gLTEpID8gJ25vZHJhZz0iMSInIDogJycKICB9KTsKfSwKICB2 aWRlb1RwbEhUTUw6ICI8ZGl2IGlkPVwidmlkZW9fY29udCVvaWQlXyV2aWQl XCIgY2xhc3M9XCJ2aWRlb19yb3dfY29udFwiPjxkaXYgY2xhc3M9XCJ2aWRl b19yb3dfaW5uZXJfY29udCVjYW5lZGl0JVwiPjxhIGhyZWY9XCJcL3ZpZGVv JW9pZCVfJXZpZCVcIiBjbGFzcz1cInZpZGVvX3Jvd19yZWxhdGl2ZSVsaW5r Y2xhc3MlXCIgaWQ9XCJ2aWRlb19yb3clb2lkJV8ldmlkJVwiIG9ubW91c2Vv dmVyPVwiVmlkZW8ucm93T3Zlcih0aGlzKTtcIiBvbm1vdXNlb3V0PVwiVmlk ZW8ucm93T3V0KHRoaXMpXCIgb25jbGljaz1cImlmIChjdXIuY2FuY2VsQ2xp Y2spIHJldHVybiAoY3VyLmNhbmNlbENsaWNrID0gZmFsc2UpOyByZXR1cm4g VmlkZW8uc2hvdyhldmVudCwgJyVvaWQlXyV2aWQlJywge30sIHRoaXMpO1wi PlxuICAgICVuZXd0YWdzJSVhZHVsdCVcbiAgICA8ZGl2IGNsYXNzPVwidmlk ZW9fcm93X2luZm9fbGluZVwiPjxkaXYgY2xhc3M9XCJ2aWRlb19yYXdfaW5m b19uYW1lXCI+JXRpdGxlJTxcL2Rpdj48ZGl2IGNsYXNzPVwidmlkZW9fcm93 X2R1cmF0aW9uXCI+JWR1cmF0aW9uJTxcL2Rpdj48XC9kaXY+XG4gICAgPGRp diBjbGFzcz1cInZpZGVvX3Jvd19pbmZvX3BsYXlcIj48XC9kaXY+XG4gICAg JWFkZGJ0biVcbiAgICA8ZGl2IGNsYXNzPVwidmlkZW9fcm93X2NvbnRyb2xz XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidmlkZW9fcm93X2ljb25fZWRpdCBm bF9sXCIgb25tb3VzZW92ZXI9XCJWaWRlby5hY3RpdmF0ZSh0aGlzKTtcIiBv bm1vdXNlb3V0PVwiVmlkZW8uZGVhY3RpdmF0ZSh0aGlzKTtcIiBvbmNsaWNr PVwicmV0dXJuIHZpZGVvdmlldy5zaG93RWRpdEJveCgldmlkJSwgJW9pZCUs IGV2ZW50KTtcIj48ZGl2IGNsYXNzPVwidmlkZW9fcm93X2ljb25cIj48XC9k aXY+PFwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInZpZGVvX3Jvd19pY29u X2RlbGV0ZSBmbF9sXCIgb25tb3VzZW92ZXI9XCJWaWRlby5hY3RpdmF0ZSh0 aGlzKTtcIiBvbm1vdXNlb3V0PVwiVmlkZW8uZGVhY3RpdmF0ZSh0aGlzKTtc IiBvbmNsaWNrPVwicmV0dXJuIFZpZGVvLm9uRGVsZXRlQ2xpY2soJXZpZCUs ICVvaWQlLCAnJWhhc2glJywgdGhpcywgZXZlbnQpO1wiPjxkaXYgY2xhc3M9 XCJ2aWRlb19yb3dfaWNvblwiPjxcL2Rpdj48XC9kaXY+XG4gICAgICA8YnIg Y2xhc3M9XCJjbGVhclwiIFwvPlxuICAgIDxcL2Rpdj5cbiAgICA8ZGl2IGNs YXNzPVwidmlkZW9faW1hZ2VfZGl2XCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWlt YWdlOiB1cmwoJyV0aHVtYiUnKTtcIj48XC9kaXY+XG4gIDxcL2E+PFwvZGl2 PlxuPFwvZGl2PiIsCiAgYWxidW1zVHBsSFRNTDogIjxhIGlkPVwidmlkZW9f YWxidW1fJWFsYnVtX2lkJVwiIGhyZWY9XCIlbWFpbl9ocmVmJT9zZWN0aW9u PSVzZWN0aW9uX25hbWUlXCIgb25jbGljaz1cImlmIChjdXIuY2FuY2VsQ2xp Y2spIHJldHVybiAoY3VyLmNhbmNlbENsaWNrID0gZmFsc2UpOyByZXR1cm4g bmF2LmNoYW5nZSh7c2VjdGlvbjonJXNlY3Rpb25fbmFtZSUnfSk7XCIgY2xh c3M9XCJ2aWRlb19hbGJ1bSVjbGFzc19uYW1lJVwiIG9ubW91c2VvdmVyPVwi VmlkZW8uYWxidW1PdmVyKHRoaXMpO1wiIG9ubW91c2VvdXQ9XCJWaWRlby5h bGJ1bU91dCh0aGlzKVwiICVub2RyYWclPjxkaXYgY2xhc3M9XCJ2aWRlb19h bGJ1bV9yb3dfaW5uZXJcIj5cbiAgJW5ld190YWdzJVxuICA8ZGl2IGNsYXNz PVwidmlkZW9fYWxidW1fY29udHJvbHNcIj5cbiAgICA8ZGl2IGNsYXNzPVwi dmlkZW9fcm93X2ljb25fZWRpdCBmbF9sXCIgb25tb3VzZW92ZXI9XCJWaWRl by5hY3RpdmF0ZSh0aGlzKTtcIiBvbm1vdXNlb3V0PVwiVmlkZW8uZGVhY3Rp dmF0ZSh0aGlzKTtcIiBvbmNsaWNrPVwicmV0dXJuIFZpZGVvLmVkaXRBbGJ1 bSglYWxidW1faWQlLCBldmVudCk7XCI+PGRpdiBjbGFzcz1cInZpZGVvX3Jv d19pY29uXCI+PFwvZGl2PjxcL2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidmlk ZW9fcm93X2ljb25fZGVsZXRlIGZsX2xcIiBvbm1vdXNlb3Zlcj1cIlZpZGVv LmFjdGl2YXRlKHRoaXMpO1wiIG9ubW91c2VvdXQ9XCJWaWRlby5kZWFjdGl2 YXRlKHRoaXMpO1wiIG9uY2xpY2s9XCJyZXR1cm4gVmlkZW8uZGVsZXRlQWxi dW0oJ2FsYnVtXyVhbGJ1bV9pZCUnLCBldmVudCk7XCI+PGRpdiBjbGFzcz1c InZpZGVvX3Jvd19pY29uXCI+PFwvZGl2PjxcL2Rpdj5cbiAgICA8YnIgY2xh c3M9XCJjbGVhclwiIFwvPlxuICA8XC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ2 aWRlb19hbGJ1bV9pbmZvXCI+PGRpdiBjbGFzcz1cInZpZGVvX2FsYnVtX3Rl eHQgZmxfbFwiPiV0aXRsZSU8XC9kaXY+PGRpdiBjbGFzcz1cInZpZGVvX2Fs YnVtX2NvdW50IGZsX3JcIj48ZGl2IGNsYXNzPVwidmlkZW9fcm93X2ljb24g dmlkZW9fYWxidW1fY291bnRfaWNvblwiPjxcL2Rpdj4lY291bnQlPFwvZGl2 PjxiciBjbGFzcz1cImNsZWFyXCIgXC8+PFwvZGl2PlxuICA8ZGl2IGNsYXNz PVwidmlkZW9fYWxidW1fYmdcIiBzdHlsZT1cImJhY2tncm91bmQtaW1hZ2U6 IHVybCgnJXRodW1iJScpXCI+PFwvZGl2PjxcL2Rpdj5cbjxcL2E+IiwKICBs YW5nOiB7InZpZGVvX05fdmlld3MiOlsiIiwiJXMgdmlldyIsIiVzIHZpZXdz Il0sInZpZGVvX25ld190YWciOiJZb3Ugd2VyZSB0YWdnZWQgaW4gYSB2aWRl byIsImdsb2JhbF9OX2NvbW1lbnRzIjpbIiIsIiVzIGNvbW1lbnQiLCIlcyBj b21tZW50cyJdLCJ2aWRlb2ZpbGVfbnVtIjpbIiIsInZpZGVvIiwidmlkZW9z Il0sInZpZGVvX251bV9mb3VuZF9maWxlcyI6WyIiLCIlcyB2aWRlbyBmb3Vu ZCIsIiVzIHZpZGVvcyBmb3VuZCJdLCJ2aWRlb19ub3ZpZGVvIjoiTm8gdmlk ZW9zIiwidmlkZW9fZGVsZXRlX3RhZyI6IkRlbGV0ZSBUYWciLCJ2aWRlb19z dW1hcnlfdG9fdXNlcl9wYWdlIjoiPGEgaHJlZj1cIlwvZHJha21haWxcIj5n byB0byBBbGV4YW5kZXImIzM5O3MgcHJvZmlsZTxcL2E+IiwidmlkZW9fWF9j b21tcyI6WyIiLCIlcyBjb21tZW50IiwiJXMgY29tbWVudHMiXSwidmlkZW9f bm9fY29tbWVudHMiOiJObyBjb21tZW50cyIsInZpZGVvX2RlbGV0ZV9hbGJ1 bSI6IkRlbGV0ZSBmb2xkZXIiLCJ2aWRlb19ub19hbGJ1bSI6Ik5vIGZvbGRl ciIsInZpZGVvX2FkZF90b19hbGJ1bSI6IkFkZCB0byBmb2xkZXIiLCJ2aWRl b19jaGFuZ2VfYWxidW0iOiJ7bGlua31Gb2xkZXJ7XC9saW5rfToge3RpdGxl fSIsInZpZGVvX3JlbW92ZV9hbGxfdGFncyI6IkRlbGV0ZSBuZXcgdGFncyIs InZpZGVvX3RpdGxlX1hfdmlkZW9zIjpbIiIsIiVzIHZpZGVvIiwiJXMgdmlk ZW9zIl0sInZpZGVvX3RpdGxlX1hfdmlkZW9zX3RhZ2dlZCI6WyIiLCIlcyB2 aWRlbyBvZiB7dXNlcn0iLCIlcyB2aWRlb3Mgb2Yge3VzZXJ9Il0sInZpZGVv X3RpdGxlX3NlYXJjaCI6IlZpZGVvIHNlYXJjaCByZXN1bHRzIGZvciB7cX0i LCJ2aWRlb190aXRsZV9zZWFyY2hfWF9mb3VuZCI6WyIiLCIlcyBSZXN1bHQi LCIlcyBSZXN1bHRzIl0sInZpZGVvX2FkdWx0X2JveF90aXRsZSI6IlNhZmUg c2VhcmNoIiwidmlkZW9fYWR1bHRfYm94X3RleHQiOiJTYWZlIHNlYXJjaCBw cmV2ZW50cyByZXBvcnRlZCBhZHVsdCBjb250ZW50IGZyb20gc2hvd2luZyB1 cCBpbiB5b3VyIHNlYXJjaCByZXN1bHRzLjxicj48YnI+QnkgZGlzYWJsaW5n IHNhZmUgc2VhcmNoIHlvdSBjb25maXJtIHRoYXQgeW91IGhhdmUgcmVhY2hl ZCBhbiBhcHByb3ByaWF0ZSBhZ2UgZm9yIHZpZXdpbmcgc3VjaCBjb250ZW50 LiIsInZpZGVvX2NsYWltc19ub191cGxvYWQiOiJZb3UgY2Fubm90IHVwbG9h ZCBhbnkgbW9yZSB2aWRlb3MsIGR1ZSB0byBudW1lcm91cyBjb3B5cmlnaHQt cmVsYXRlZCBjb21wbGFpbnRzLiIsInZpZGVvX25vX3VwbG9hZF90aXRsZSI6 IlVwbG9hZGluZyB1bmF2YWlsYWJsZSIsInZpZGVvX2Ryb3BfdG9fbW92ZSI6 IlJlbGVhc2UgdG8gbW92ZSB2aWRlbyB0byBmb2xkZXIiLCJ2aWRlb19hbGJ1 bXNfZm91bmRfc3VtbWFyeSI6WyIiLCIlcyBmb2xkZXIgZm91bmQiLCIlcyBm b2xkZXJzIGZvdW5kIl0sInZpZGVvX2FsYnVtc19zdW1tYXJ5IjpbIiIsIkFs ZXhhbmRlciBoYXMgJXMgZm9sZGVyIiwiQWxleGFuZGVyIGhhcyAlcyBmb2xk ZXJzIl0sInZpZGVvX3Nob3dfYWxsX2FsYnVtcyI6WyIiLCJTaG93IG9uZSBt b3JlIGZvbGRlciIsIlNob3cgJXMgbW9yZSBmb2xkZXJzIl0sInZpZGVvX2Nv bW1lbnRzX3JldmlldyI6IkJyb3dzZSBjb21tZW50cyIsInZpZGVvX2lzX3By aXZhdGVfdHQiOiJUaGlzIHZpZGVvIGlzIHByaXZhdGUiLCJ2aWRlb19hZGRf dHQiOiJBZGQgdG8gbXkgdmlkZW9zIiwidmlkZW9fcGxlYXNlX3NpZ25faW4i OiJQbGVhc2UgbG9nIGluIG9yIDxhIGhyZWY9XCJcL2pvaW5cIiBvbmNsaWNr PVwicmV0dXJuICFzaG93Qm94KCdqb2luLnBocCcsIHthY3Q6ICdib3gnLCBm cm9tOiBuYXYuc3RyTG9jfSwge30sIGV2ZW50KVwiPnNpZ24gdXA8XC9hPiB0 byB2aWV3IHRoaXMgdmlkZW8uIn0sCiAgb2lkOiAzOTU3NjIyMywKICB2U2Vj dGlvbjogJ2FsbCcKfSwgeyJwZXJQYWdlIjoyMCwiaGFzaCI6ImYyOTVkMGYx NzM2MjhiYTc3NSIsInZpZGVvQ291bnQiOjUsInBvc3RUbyI6Mzk1NzYyMjMs InNlY3Rpb25zIjpbXSwidXBsb2FkQmFubmVkIjpmYWxzZSwiaHRpdGxlX3Zp ZGVvcyI6IiBBbGV4YW5kZXIgTWFzbG92JiMzOTtzIFZpZGVvcyIsImh0aXRs ZV9jb21tZW50cyI6IkNvbW1lbnRzIEFsZXhhbmRlciBNYXNsb3YmIzM5O3Mg VmlkZW9zIiwiaHRpdGxlX3RhZ2dlZF91c2VyIjoiQWxleGFuZGVyIiwidlN0 ciI6IlwiXCIiLCJtb3ZlSGFzaCI6IjAxODM1MjQ1MjEwYjRjMGYyMSJ9KSk7 CndpbmRvdy5yYWRpb0J0bnNbJ2xlbmd0aCddID0gewogIGVsczogQXJyYXku cHJvdG90eXBlLnNsaWNlLmFwcGx5KGdlQnlDbGFzcygncmFkaW9idG4nLCBn ZSgndmlkZW9fbGVuZ3RoX2ZpbHRlcicpKSksCiAgdmFsOiAwCn07CnZhciBm aWx0ZXJUeXBlcyA9IFtbMiwgJ0J5IHJlbGV2YW5jZSddLCBbMCwgJ0J5IGRh dGUgYWRkZWQnXSwgWzEsICdTb3J0IGJ5IGR1cmF0aW9uJ11dOwppZiAoY3Vy LnNvcnRERCkgewogIHJlKGN1ci5zb3J0REQuY29udGFpbmVyKTsKfQpjdXIu c29ydEREID0gbmV3IERyb3Bkb3duTWVudShmaWx0ZXJUeXBlcywgewogIHRh cmdldDogZ2UoJ3ZpZGVvX3NvcnRfZGQnKSwKICB2YWx1ZTogMiwKICBmYWRl U3BlZWQ6IDAsCiAgb25TZWxlY3Q6IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICBp ZiAoZXZlbnQpIFZpZGVvLnRvZ2dsZU9yZGVyKGV2ZW50LnRhcmdldC5pbmRl eCB8fCAwKTsKICB9Cn0pOwppZiAoZ2UoJ3ZpZGVvX2V4dGVybmFsX2RkJykp IHsKICB2YXIgZXh0VHlwZXMgPSBbWzAsICdBbGwgdmlkZW9zJ10sIFstMSwg J1ZLJ10sIFsxLCAnWW91dHViZSddLCBbMiwgJ1ZpbWVvJ10sIFszLCAnUnVU dWJlJ10sIFszMiwgJ0tpbm9wb2lzayddLCBbMzMsICdNb2xvZGVqai50didd LCBbMzQsICdDYXJhbWJhVFYnXSwgWzM1LCAnTWVnb2dvJ10sIFszNiwgJ05v d1J1J11dOwogIGN1ci5leHRERCA9IG5ldyBEcm9wZG93bk1lbnUoZXh0VHlw ZXMsIHsKICAgIHRhcmdldDogZ2UoJ3ZpZGVvX2V4dGVybmFsX2RkJyksCiAg ICB2YWx1ZTogMCwKICAgIGZhZGVTcGVlZDogMCwKICAgIG9uU2VsZWN0OiBm dW5jdGlvbihldmVudCkgewogICAgICBpZiAoZXZlbnQpIFZpZGVvLnRvZ2ds ZUV4dChldmVudC50YXJnZXQuaW5kZXggfHwgMCk7CiAgICB9CiAgfSk7Cn0K CmFqYXgucHJlbG9hZCgnYWxfdmlkZW8ucGhwJywgeyJhY3QiOiJzaG93Iiwi dmlkZW8iOiIzOTU3NjIyM18xMDgzNzA1MTUifSwgWyLfIPPy7vfq4CkpKSkp IiwiPGRpdiBjbGFzcz1cInZpZGVvX2JveFwiPlxuICA8ZGl2IGNsYXNzPVwi d3JhcFwiPlxuICAgIDxkaXYgaWQ9XCJ2aWRlb19iYWNrZ3JvdW5kMzk1NzYy MjNfMTA4MzcwNTE1XCIgYWxpZ249XCJjZW50ZXJcIj5cbiAgICAgIDxpbWcg c3JjPVwiaHR0cDpcL1wvdmlkZW80MzMudmthZHJlLnJ1XC9hc3NldHNcL3Ro dW1ibmFpbHNcLzg4NjE1Y2E5ODExOTY5MDMuMzIwLnZrLmpwZ1wiIHN0eWxl PVwid2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDM2MHB4O1wiIFwvPlxuICAgIDxc L2Rpdj5cbiAgICA8ZGl2IGlkPVwidmlkZW9fYm94X3dyYXAzOTU3NjIyM18x MDgzNzA1MTVcIiBjbGFzcz1cInZpZGVvX2JveF93cmFwXCI+XG4gICAgICA8 ZGl2IGNsYXNzPVwicGFnZV9ub19mbGFzaF93cmFwXCI+XG4gICAgICAgIDxk aXYgY2xhc3M9XCJ2aWRlb19ub19mbGFzaFwiPlxuICAgICAgICAgIDxkaXY+ VGhlIGxhdGVzdCB2ZXJzaW9uIG9mIDxhIGhyZWY9XCJodHRwOlwvXC9nZXQu YWRvYmUuY29tXC9mbGFzaFwiPkZsYXNoIFBsYXllcjxcL2E+IGlzIHJlcXVp cmVkIHRvIHZpZXcgdmlkZW9zLjxcL2Rpdj5cbiAgICAgICAgPFwvZGl2Plxu ICAgICAgPFwvZGl2PlxuICAgIDxcL2Rpdj5cbiAgPFwvZGl2PlxuPFwvZGl2 PiIsImN1ci5hZGRNZVZpZGVvID0gZnVuY3Rpb24oKSB7XG4gIGlmIChpc1Zp c2libGUoYm94LnByb2dyZXNzKSkgcmV0dXJuO1xuXG4gIHZhciB0b1JlcGxh Y2UgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVu Z3RoOyArK2kpIHtcbiAgICB0b1JlcGxhY2UucHVzaChhcmd1bWVudHNbaV0p O1xuICB9XG4gIGN1ci5yZWxvYWRBZnRlckNsb3NlID0gdHJ1ZTtcbiAgYWph eC5wb3N0KCd2aWRlby5waHAnLCB7YWN0OiAnYV9hZGQnLCB2aWRlbzogJzM5 NTc2MjIzXzEwODM3MDUxNScsIGhhc2g6ICczYTU5YTk5Yjk4NDlkOGU3ZTEn LCBmcm9tOiBjdXIuc2VjdGlvbn0sIHtcbiAgICBvbkRvbmU6IGZ1bmN0aW9u KCkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b1JlcGxhY2UubGVu Z3RoOyArK2kpIHtcbiAgICAgICAgdmFyIGVsID0gZ2UodG9SZXBsYWNlW2ld KTtcbiAgICAgICAgaWYgKGVsKSB7XG4gICAgICAgICAgaWYgKGkgPCBhcmd1 bWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBlbC5wYXJlbnROb2RlLmlu bmVySFRNTCA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICB9IGVsc2Uge1xu ICAgICAgICAgICAgaGlkZShlbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9 XG4gICAgICB9XG4gICAgfSxcbiAgICBzaG93UHJvZ3Jlc3M6IGJveC5zaG93 UHJvZ3Jlc3MsXG4gICAgaGlkZVByb2dyZXNzOiBib3guaGlkZVByb2dyZXNz XG4gIH0pO1xufVxuXG53aW5kb3cuaW5jVmlld0NvdW50ZXIgPSBmdW5jdGlv bihvaWQsIHZpZCwgaGFzaCkge1xuICBhamF4LnBvc3QoJ2FsX3ZpZGVvLnBo cCcsIHthY3Q6ICdpbmNfdmlld19jb3VudGVyJywgb2lkOiBvaWQsIHZpZDog dmlkLCBoYXNoOiBoYXNofSwge1xuICAgIG9uRG9uZTogZnVuY3Rpb24odCkg e31cbiAgfSk7XG59XG5cbndpbmRvdy5yb3RhdGVWaWRlbyA9IGZ1bmN0aW9u KG9pZCwgdmlkLCBhbmdsZSwgaGFzaCkge1xuICBcL1wvIGFqYXgucG9zdCgn YWxfdmlkZW8ucGhwJywge2FjdDogJ3JvdGF0ZV92aWRlbycsIG9pZDogb2lk LCB2aWQ6IHZpZCwgYW5nbGU6IGFuZ2xlLCBoYXNoOiBoYXNofSwge1xuICBc L1wvICAgb25Eb25lOiBmdW5jdGlvbih0KSB7fVxuICBcL1wvIH0pO1xufVxu XG53aW5kb3cuY2hhbmdlQ2FudmFzU2l6ZSA9IGZ1bmN0aW9uKHcsIGgpIHtc biAgaWYgKHR5cGVvZihtdmN1cikgIT0gJ3VuZGVmaW5lZCcgJiYgbXZjdXIu Y2hhbmdlQ2FudmFzU2l6ZSkge1xuICAgIG12Y3VyLmNoYW5nZUNhbnZhc1Np emUoKTtcbiAgfVxuICBpZiAoIWJyb3dzZXIub3BlcmEgfHwgaW50dmFsKGJy b3dzZXIudmVyc2lvbikgPj0gMTApIHtcbiAgICBoaWRlKCd2aWRlb19iYWNr Z3JvdW5kMzk1NzYyMjNfMTA4MzcwNTE1Jyk7XG4gICAgc2V0U3R5bGUoZ2Uo J3ZpZGVvX3BsYXllcicpLCB7d2lkdGg6IHcsIGhlaWdodDogaH0pO1xuICAg IHNldFN0eWxlKGdlKCd2aWRlb19ib3hfd3JhcDM5NTc2MjIzXzEwODM3MDUx NScpLCB7d2lkdGg6IHcsIGhlaWdodDogaH0pO1xuICAgIGlmIChib3gpIHtc biAgICAgIGJveC5zZXRPcHRpb25zKHt3aWR0aDogdyArIDIyfSk7XG4gICAg fVxuICB9XG59O1xuXG52YXIgX24gPSB3aW5kb3cuTm90aWZpZXI7XG5pZiAo X24pIHtcbiAgX24uYWRkUmVjdkNsYmsoJ2F1ZGlvX3N0YXJ0JywgJ3ZpZGVv JywgZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBpZiAoZ2UoJ3ZpZGVvX3BsYXll cicpICYmIGdlKCd2aWRlb19wbGF5ZXInKS5wbGF5VmlkZW8pIGdlKCd2aWRl b19wbGF5ZXInKS5wbGF5VmlkZW8oZmFsc2UpO1xuICB9KTtcbiAgX24uYWRk UmVjdkNsYmsoJ3ZpZGVvX3N0YXJ0JywgJ3ZpZGVvJywgZnVuY3Rpb24gKGRh dGEpIHtcbiAgICBpZiAoZ2UoJ3ZpZGVvX3BsYXllcicpICYmIGdlKCd2aWRl b19wbGF5ZXInKS5wbGF5VmlkZW8pIGdlKCd2aWRlb19wbGF5ZXInKS5wbGF5 VmlkZW8oZmFsc2UpO1xuICB9KTtcbiAgX24uYWRkUmVjdkNsYmsoJ3ZpZGVv Y2FsbF9zdGFydCcsICd2aWRlbycsIGZ1bmN0aW9uIChkYXRhKSB7XG4gICAg aWYgKGdlKCd2aWRlb19wbGF5ZXInKSAmJiBnZSgndmlkZW9fcGxheWVyJyku cGxheVZpZGVvKSBnZSgndmlkZW9fcGxheWVyJykucGxheVZpZGVvKGZhbHNl KTtcbiAgfSk7XG59XG52YXIgdmFycyA9IHtcInVpZFwiOlwiMFwiLFwidmlk XCI6MTA4MzcwNTE1LFwib2lkXCI6Mzk1NzYyMjMsXCJob3N0XCI6XCJ2aWRl bzQzMy52a2FkcmUucnVcIixcInZ0YWdcIjpcIjA2YTYyYzNhOTA5Yy1cIixc Imx0YWdcIjpcIjg4NjE1Y2E5XCIsXCJ2a2lkXCI6ODExOTY5MDMsXCJtZF90 aXRsZVwiOlwi3yDz8u736uApKSkpKVwiLFwibWRfYXV0aG9yXCI6XCJBbGV4 YW5kZXIgTWFzbG92XCIsXCJoZFwiOjAuMDAwMDAwLFwibm9fZmx2XCI6MCxc ImhkX2RlZlwiOi0xLFwiZGJnX29uXCI6MCxcInRcIjpcIlwiLFwiZHVyYXRp b25cIjoxODMsXCJhbmdsZVwiOjAuMDAwMDAwLFwiaW1nX2FuZ2xlXCI6MC4w MDAwMDAsXCJyZXBlYXRcIjowLFwic2hvd19hZHNcIjowLFwibGVnYWxfb3du ZXJcIjowLFwicHVpZDFcIjoyLFwicHVpZDIyXCI6MTQsXCJwdWlkMzdcIjpc IlwiLFwicHVpZDM4XCI6XCJcIixcInB1aWQ0NVwiOjAsXCJ3YXRlcl9tYXJr XCI6XCJcIixcImNhbl9yb3RhdGVcIjoxLFwiaGFzaFwiOlwiZWY2NzhmZWY5 ZjY2NTA1ZDU4ZDZkZmY4ZDcxODRmZWVcIixcImhhc2gyXCI6XCIxNTE4NGRi ZDA4NWM0N2FmXCIsXCJpc192a1wiOlwiMVwiLFwiaXNfZXh0XCI6XCIwXCIs XCJyZWZlcnJlclwiOlwiXCIsXCJsYW5nX2FkZFwiOlwiQWRkIHRvIE15IFZp ZGVvc1wiLFwibGFuZ19hZGRlZFwiOlwiVmlkZW8gYWRkZWQgdG8gTXkgVmlk ZW9zXCIsXCJsYW5nX3NoYXJlXCI6XCJTaGFyZVwiLFwibGFuZ19saWtlXCI6 XCJMaWtlXCIsXCJsYW5nX3ZvbHVtZV9vblwiOlwiVW5tdXRlXCIsXCJsYW5n X3ZvbHVtZV9vZmZcIjpcIk11dGVcIixcImxhbmdfdm9sdW1lXCI6XCJWb2x1 bWVcIixcImxhbmdfaGRzZFwiOlwiQ2hhbmdlIFZpZGVvIFF1YWxpdHlcIixc ImxhbmdfZnVsbHNjcmVlblwiOlwiRnVsbCBTY3JlZW5cIixcImxhbmdfd2lu ZG93XCI6XCJNaW5pbWl6ZVwiLFwibGFuZ19yb3RhdGVcIjpcIlJvdGF0ZVwi LFwibGFuZ19hZHNfbGlua1wiOlwiQWR2ZXJ0aXNlciYjMzk7cyBTaXRlXCIs XCJsYW5nX2Fkc1wiOlwiQWRzXCIsXCJsYW5nX2Fkc19za2lwXCI6XCJTa2lw IGFkXCIsXCJsYW5nX2Fkc19za2lwX3RpbWVcIjpcIlNraXAgYWRzIGluIHt0 aW1lfVwiLFwibGFuZ19yZXBvcnRfcHJvYmxlbVwiOlwiUmVwb3J0IGEgcHJv YmxlbS4uXCIsXCJ2aWRlb19wbGF5X2hkXCI6XCJXYXRjaCBpbiBIRFwiLFwi dmlkZW9fc3RvcF9sb2FkaW5nXCI6XCJTdG9wIERvd25sb2FkXCIsXCJ2aWRl b19wbGF5ZXJfdmVyc2lvblwiOlwiVksgVmlkZW8gUGxheWVyXCIsXCJnb3Rv X29yaWdfdmlkZW9cIjpcIkdvIHRvIFZpZGVvXCIsXCJ2aWRlb19nZXRfdmlk ZW9fY29kZVwiOlwiQ29weSB2aWRlbyBjb2RlXCIsXCJ2aWRlb19sb2FkX2Vy cm9yXCI6XCJUaGUgdmlkZW8gaGFzIG5vdCB1cGxvYWRlZCB5ZXQgb3IgdGhl IHNlcnZlciBpcyBub3QgYXZhaWxhYmxlXCIsXCJ2aWRlb19nZXRfY3VycmVu dF91cmxcIjpcIkNvcHkgZnJhbWUgbGlua1wiLFwidXJsMjQwXCI6XCJodHRw OlxcXC9cXFwvdmlkZW80MzMudmthZHJlLnJ1XFxcL2Fzc2V0c1xcXC92aWRl b1xcXC8wNmE2MmMzYTkwOWMtODExOTY5MDMudmsuZmx2XCIsXCJqcGdcIjpc Imh0dHA6XFxcL1xcXC92aWRlbzQzMy52a2FkcmUucnVcXFwvYXNzZXRzXFxc L3RodW1ibmFpbHNcXFwvODg2MTVjYTk4MTE5NjkwMy4zMjAudmsuanBnXCIs XCJpcF9zdWJtXCI6MSxcIm5vbG9nb1wiOjEsXCJsaWtlZFwiOjAsXCJhZGRf aGFzaFwiOlwiM2E1OWE5OWI5ODQ5ZDhlN2UxXCIsXCJhZGRlZFwiOjF9O1xu dmFyIGFsbG93X2h0bWw1ID0gMDtcbnZhciBjaGVja0h0bWw1VmlkZW8gPSBm dW5jdGlvbigpIHtcbiAgdmFyIHYgPSBjZSgndmlkZW8nKSwgY2FuUGxheSA9 IHYuY2FuUGxheVR5cGUoJ3ZpZGVvXC9tcDQnKTtcbiAgcmV0dXJuIChjYW5Q bGF5ICE9ICdubycpICYmIChjYW5QbGF5ICE9ICcnKTtcbn1cbmxvYWRIdG1s NVBsYXllciA9IGZ1bmN0aW9uKCkge1xuICBpZiAoIWNoZWNrSHRtbDVWaWRl bygpIHx8ICF2YXJzLm5vX2Zsdikge1xuICAgIHN0TWFuYWdlci5hZGQoJ3Bh Z2UuY3NzJyk7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBwbGF5ZXJXcmFw ID0gZ2UoJ3ZpZGVvX2JveF93cmFwMzk1NzYyMjNfMTA4MzcwNTE1Jyk7XG4g IGlmIChwYXJzZUludCgnMCcpKSB7XG4gICAgdmFyIHNpemUgPSBnZXRTaXpl KHBsYXllcldyYXAucGFyZW50Tm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgdmFy IHNpemUgPSBbNzIwLCA0MTBdO1xuICB9XG4gIGhpZGUoJ3ZpZGVvX2JhY2tn cm91bmQzOTU3NjIyM18xMDgzNzA1MTUnKTtcbiAgcGxheWVyV3JhcC5pbm5l ckhUTUwgPSAnJztcbiAgc3RNYW5hZ2VyLmFkZChbJ2h0bWw1dmlkZW8uanMn LCAnaHRtbDV2aWRlby5jc3MnXSwgZnVuY3Rpb24oKSB7XG4gICAgaHRtbDV2 aWRlby5pbml0SFRNTDVWaWRlbyh2YXJzLCBzaXplWzBdLCBzaXplWzFdKTtc biAgfSk7XG59XG53aW5kb3cudmlkZW9fYm94X2lkID0gJ3ZpZGVvX2JveF93 cmFwMzk1NzYyMjNfMTA4MzcwNTE1JztcblxudmFyIG9wdHMgPSB7XG4gIHVy bDogJ1wvc3dmXC92aWRlby5zd2Y/MjInLFxuICBpZDogJ3ZpZGVvX3BsYXll cicsXG4gIHdpZHRoOiA3MjAsXG4gIGhlaWdodDogNDEwLFxuICB2ZXJzaW9u OiAxMFxufVxuXG5pZiAoYnJvd3Nlci5mbGFzaCA8IDEwKSB7XG4gIGxvYWRI dG1sNVBsYXllcigpO1xuICByZXR1cm47XG59XG5cbnZhciBwbGF5ZXJXcmFw ID0gZ2UoJ3ZpZGVvX2JveF93cmFwMzk1NzYyMjNfMTA4MzcwNTE1Jyk7XG5o aWRlKCd2aWRlb19iYWNrZ3JvdW5kMzk1NzYyMjNfMTA4MzcwNTE1Jyk7XG5w bGF5ZXJXcmFwLmlubmVySFRNTCA9ICcnO1xuXG52YXIgcGFyYW1zID0ge1xu ICBhbGxvd2Z1bGxzY3JlZW46ICd0cnVlJyxcbiAgYWxsb3dzY3JpcHRhY2Nl c3M6ICdhbHdheXMnXG59XG5cL1wvaWYgKGJyb3dzZXIubXNpZSB8fCBicm93 c2VyLmNocm9tZSkge1xuICBvcHRzLnByZXZlbnRoaWRlID0gMTtcbiAgcGFy YW1zLndtb2RlID0gJ29wYXF1ZSc7XG5cL1wvfVxuc2V0U3R5bGUocGxheWVy V3JhcCwge3dpZHRoOiBvcHRzLndpZHRoLCBoZWlnaHQ6IG9wdHMuaGVpZ2h0 fSk7XG5cbndpbmRvdy52aWRlb19ob3N0ID0gdmFycy5ob3N0O1xud2luZG93 LnZpZGVvX3VpZCA9IHZhcnMudWlkO1xud2luZG93LnZpZGVvX3Z0YWcgPSB2 YXJzLnZ0YWc7XG53aW5kb3cudmlkZW9fbm9fZmx2ID0gdmFycy5ub19mbHY7 XG53aW5kb3cudmlkZW9fbWF4X2hkID0gdmFycy5oZDtcbndpbmRvdy52aWRl b190aXRsZSA9IHZhcnMubWRfdGl0bGU7XG53aW5kb3cudmlkZW9fYXV0aG9y ID0gdmFycy5tZF9hdXRob3I7XG53aW5kb3cuZml4ZWRfcGxheWVyX3NpemUg PSB0cnVlO1xuXG5yZW5kZXJGbGFzaChwbGF5ZXJXcmFwLCBvcHRzLCBwYXJh bXMsIHZhcnMpO1xubXZjdXIubXZEYXRhLmFkZGVkVmlkZW8gPSAnMzk1NzYy MjNfMTA4MzcwNTE1JzsgXG5tdmN1ci5tdkRhdGEuYWRkZWRWaWRlb0hhc2gg PSAnMzk2ZWI1ZWRiZmNiYzNjOTNjJzsgXG5tdmN1ci5tdkRhdGEuYWRkZWRW aWRlb1NoYXJlSGFzaCA9ICcwMzgxNmNiOGEzNmQ4MGUwNTEnO1xubXZjdXIu bXZEYXRhLm5lZWRzTmV3ID0gMTsiLCI8ZGl2IGlkPVwibXZfZGVzY3JpcHRp b25cIiBjbGFzcz1cIm12X2Rlc2MgZmxfbFwiPv3y7iDCx9DbwiDMzsfDwCYj MzM7JiMzMzsmIzMzOzxicj7P8O7x8u4g7vLi4Osg4eD46uguLi48XC9kaXY+ PGRpdiBpZD1cIm12X2FjdGlvbl9pbmZvXCIgc3R5bGU9XCJkaXNwbGF5OiBu b25lO1wiPjxcL2Rpdj48ZGl2IGlkPVwibXZfdGFnc1wiIHN0eWxlPVwiZGlz cGxheTogbm9uZTtcIj5JbiB0aGlzIHZpZGVvOjxzcGFuIGlkPVwibXZfdGFn c19saXN0XCI+PFwvc3Bhbj48XC9kaXY+PGRpdiBpZD1cIm12X2RhdGVfd3Jh cFwiIGNsYXNzPVwiZmxfbFwiPkFkZGVkIEp1biAxLCAyMDA5IGF0IDEwOjQx IHBtPFwvZGl2PjxiciBjbGFzcz1cImNsZWFyXCIgXC8+PGRpdiBpZD1cIm12 X2NvbW1lbnRzX3dyYXBcIj5cbiAgPGRpdiBpZD1cIm12X2NvbW1lbnRzX2hl YWRlclwiIG9uY2xpY2s9XCJ2aWRlb3ZpZXcuY29tbWVudHMoKTtcIiBzdHls ZT1cImRpc3BsYXk6IG5vbmU7XCI+PFwvZGl2PlxuICA8ZGl2IGlkPVwibXZf Y29tbWVudHNcIiBjbGFzcz1cIndhbGxfbW9kdWxlXCI+PGRpdiBjbGFzcz1c ImNsZWFyX2ZpeCBtdl9jb21tZW50IFwiIGlkPVwibXZfY29tbWVudDM5NTc2 MjIzXzFcIiBvbmNsaWNrPVwiVmlkZW92aWV3LmNvbW1lbnRDbGljayh0aGlz LCBldmVudCwgMjcwOTE0OClcIiBvbm1vdXNlb3Zlcj1cIldhbGwucmVwbHlP dmVyKCczOTU3NjIyM3ZpZGVvXzFtdicpXCIgb25tb3VzZW91dD1cIldhbGwu cmVwbHlPdXQoJzM5NTc2MjIzdmlkZW9fMW12JylcIj48ZGl2IGNsYXNzPVwi cmVwbHlfdGFibGVcIj5cbiAgPGRpdiBjbGFzcz1cImZsX2wgbXZfdGh1bWJc Ij5cbiAgICA8YSBocmVmPVwiXC9hcnRydWxrXCIgb25jbGljaz1cInJldHVy biBuYXYuZ28odGhpcywgZXZlbnQpO1wiPjxpbWcgc3JjPVwiaHR0cDpcL1wv Y3MzMTIyMjcudmsubWVcL3YzMTIyMjcxNDhcL2FiMWNcL1VRRmlGWmRSbzVF LmpwZ1wiIFwvPjxcL2E+XG4gIDxcL2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZs X2wgbXZfY29tbVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbF9yIHJlcGx5X2Fj dGlvbnNfd3JhcFwiPjxkaXYgY2xhc3M9XCJyZXBseV9hY3Rpb25zXCI+PGRp diBpZD1cInJlcGx5X2RlbGV0ZTM5NTc2MjIzdmlkZW9fMW12XCIgY2xhc3M9 XCJyZXBseV9kZWxldGVfYnV0dG9uIGZsX3JcIiBvbmNsaWNrPVwiVmlkZW92 aWV3LmNvbW1BY3Rpb24oJ3NwYW0nLCAnMzk1NzYyMjNfMScsICczOWMzOTYw MjBiYWQzODAxOTknLCAnbXYnKVwiIG9ubW91c2VvdmVyPVwiV2FsbC5hY3Rp dmVEZWxldGVQb3N0KCczOTU3NjIyM3ZpZGVvXzFtdicsICdSZXBvcnQnLCAn cmVwbHlfZGVsZXRlJylcIiBvbm1vdXNlb3V0PVwiV2FsbC5kZWFjdGl2ZURl bGV0ZVBvc3QoJzM5NTc2MjIzdmlkZW9fMW12JywgJ3JlcGx5X2RlbGV0ZScp XCI+PFwvZGl2PjxcL2Rpdj48XC9kaXY+XG4gICAgPGEgaHJlZj1cIlwvYXJ0 cnVsa1wiIGNsYXNzPVwiYXV0aG9yXCIgb25jbGljaz1cInJldHVybiBuYXYu Z28odGhpcywgZXZlbnQpO1wiPkFydHlvbSBBbnRvbnlhbjxcL2E+XG4gICAg PGRpdiBpZD1cIndwdDM5NTc2MjIzdmlkZW9fMW12XCI+PGRpdiBjbGFzcz1c Im12X2NvbW10ZXh0XCI+yvPz8/Pz8/Pz8/Pz8/Pw5eXl5eXl5eXl5eXl5eXi 7iDd8u4g4vsg4vHlIPLg6ujlIO3gIMTl6/zy4CDx5fDi5fDlPzxcL2Rpdj48 XC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImxpa2Vfd3JhcCBmbF9yXCIgb25j bGljaz1cIldhbGwubGlrZSgnMzk1NzYyMjN2aWRlb19jb21tZW50MW12Jywg JycpOyBldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlO1wiIG9ubW91c2VvdmVy PVwiV2FsbC5saWtlT3ZlcignMzk1NzYyMjN2aWRlb19jb21tZW50MW12Jylc IiBvbm1vdXNlb3V0PVwiV2FsbC5saWtlT3V0KCczOTU3NjIyM3ZpZGVvX2Nv bW1lbnQxbXYnKVwiPlxuICA8c3BhbiBjbGFzcz1cImxpa2VfbGluayBmbF9s XCIgaWQ9XCJsaWtlX2xpbmszOTU3NjIyM3ZpZGVvX2NvbW1lbnQxbXZcIj48 XC9zcGFuPlxuICA8aSBjbGFzcz1cIm5vX2xpa2VzIGZsX2xcIiBpZD1cImxp a2VfaWNvbjM5NTc2MjIzdmlkZW9fY29tbWVudDFtdlwiPjxcL2k+XG4gIDxz cGFuIGNsYXNzPVwibGlrZV9jb3VudCBmbF9sXCIgaWQ9XCJsaWtlX2NvdW50 Mzk1NzYyMjN2aWRlb19jb21tZW50MW12XCI+PFwvc3Bhbj5cbjxcL2Rpdj5c biAgICA8ZGl2IGNsYXNzPVwibXZfY29tbWRhdGFcIiBpZD1cIndwZV9ib3R0 b20zOTU3NjIyM3ZpZGVvXzFtdlwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJm bF9sXCI+MiBKdW4gMjAwOTxcL3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzPVwi ZmxfciBwcm9ncmVzc1wiIGlkPVwibXZfcHJvZ3Jlc3MzOTU3NjIyM18xXCI+ PFwvZGl2PlxuICAgIDxcL2Rpdj5cbiAgPFwvZGl2PlxuPFwvZGl2PjxcL2Rp dj48ZGl2IGNsYXNzPVwiY2xlYXJfZml4IG12X2NvbW1lbnQgXCIgaWQ9XCJt dl9jb21tZW50Mzk1NzYyMjNfMlwiIG9uY2xpY2s9XCJWaWRlb3ZpZXcuY29t bWVudENsaWNrKHRoaXMsIGV2ZW50LCA0MDk4MDMzKVwiIG9ubW91c2VvdmVy PVwiV2FsbC5yZXBseU92ZXIoJzM5NTc2MjIzdmlkZW9fMm12JylcIiBvbm1v dXNlb3V0PVwiV2FsbC5yZXBseU91dCgnMzk1NzYyMjN2aWRlb18ybXYnKVwi PjxkaXYgY2xhc3M9XCJyZXBseV90YWJsZVwiPlxuICA8ZGl2IGNsYXNzPVwi ZmxfbCBtdl90aHVtYlwiPlxuICAgIDxhIGhyZWY9XCJcL2p1c3Rfb3dpbmdc IiBvbmNsaWNrPVwicmV0dXJuIG5hdi5nbyh0aGlzLCBldmVudCk7XCI+PGlt ZyBzcmM9XCJodHRwOlwvXC9jczQxNjMyMi52ay5tZVwvdjQxNjMyMjAzM1wv NmYxMVwvLXgxZ3IydWFkcnMuanBnXCIgXC8+PFwvYT5cbiAgPFwvZGl2Plxu ICA8ZGl2IGNsYXNzPVwiZmxfbCBtdl9jb21tXCI+XG4gICAgPGRpdiBjbGFz cz1cImZsX3IgcmVwbHlfYWN0aW9uc193cmFwXCI+PGRpdiBjbGFzcz1cInJl cGx5X2FjdGlvbnNcIj48ZGl2IGlkPVwicmVwbHlfZGVsZXRlMzk1NzYyMjN2 aWRlb18ybXZcIiBjbGFzcz1cInJlcGx5X2RlbGV0ZV9idXR0b24gZmxfclwi IG9uY2xpY2s9XCJWaWRlb3ZpZXcuY29tbUFjdGlvbignc3BhbScsICczOTU3 NjIyM18yJywgJzA0YTM5ZTRkODI1MDA5NDU5NicsICdtdicpXCIgb25tb3Vz ZW92ZXI9XCJXYWxsLmFjdGl2ZURlbGV0ZVBvc3QoJzM5NTc2MjIzdmlkZW9f Mm12JywgJ1JlcG9ydCcsICdyZXBseV9kZWxldGUnKVwiIG9ubW91c2VvdXQ9 XCJXYWxsLmRlYWN0aXZlRGVsZXRlUG9zdCgnMzk1NzYyMjN2aWRlb18ybXYn LCAncmVwbHlfZGVsZXRlJylcIj48XC9kaXY+PFwvZGl2PjxcL2Rpdj5cbiAg ICA8YSBocmVmPVwiXC9qdXN0X293aW5nXCIgY2xhc3M9XCJhdXRob3JcIiBv bmNsaWNrPVwicmV0dXJuIG5hdi5nbyh0aGlzLCBldmVudCk7XCI+VmxhZGlt aXIgUGV0dWtob3Y8XC9hPlxuICAgIDxkaXYgaWQ9XCJ3cHQzOTU3NjIyM3Zp ZGVvXzJtdlwiPjxkaXYgY2xhc3M9XCJtdl9jb21tdGV4dFwiPsLl8fwg7Ojw IPLg6u7pLCD17uT/8iDoIOTz7OD+IO/w7iDx5eH/IPfy7iDzIOru4+4g7eAg 8+zlIDpEPFwvZGl2PjxcL2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGlrZV93 cmFwIGZsX3JcIiBvbmNsaWNrPVwiV2FsbC5saWtlKCczOTU3NjIyM3ZpZGVv X2NvbW1lbnQybXYnLCAnJyk7IGV2ZW50LmNhbmNlbEJ1YmJsZSA9IHRydWU7 XCIgb25tb3VzZW92ZXI9XCJXYWxsLmxpa2VPdmVyKCczOTU3NjIyM3ZpZGVv X2NvbW1lbnQybXYnKVwiIG9ubW91c2VvdXQ9XCJXYWxsLmxpa2VPdXQoJzM5 NTc2MjIzdmlkZW9fY29tbWVudDJtdicpXCI+XG4gIDxzcGFuIGNsYXNzPVwi bGlrZV9saW5rIGZsX2xcIiBpZD1cImxpa2VfbGluazM5NTc2MjIzdmlkZW9f Y29tbWVudDJtdlwiPjxcL3NwYW4+XG4gIDxpIGNsYXNzPVwibm9fbGlrZXMg ZmxfbFwiIGlkPVwibGlrZV9pY29uMzk1NzYyMjN2aWRlb19jb21tZW50Mm12 XCI+PFwvaT5cbiAgPHNwYW4gY2xhc3M9XCJsaWtlX2NvdW50IGZsX2xcIiBp ZD1cImxpa2VfY291bnQzOTU3NjIyM3ZpZGVvX2NvbW1lbnQybXZcIj48XC9z cGFuPlxuPFwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtdl9jb21tZGF0YVwi IGlkPVwid3BlX2JvdHRvbTM5NTc2MjIzdmlkZW9fMm12XCI+XG4gICAgICA8 c3BhbiBjbGFzcz1cImZsX2xcIj4zIEp1biAyMDA5PFwvc3Bhbj5cbiAgICAg IDxkaXYgY2xhc3M9XCJmbF9yIHByb2dyZXNzXCIgaWQ9XCJtdl9wcm9ncmVz czM5NTc2MjIzXzJcIj48XC9kaXY+XG4gICAgPFwvZGl2PlxuICA8XC9kaXY+ XG48XC9kaXY+PFwvZGl2PjxcL2Rpdj5cbjxcL2Rpdj48ZGl2IGNsYXNzPVwi dmlkZW9fY29tbWVudHNfbXNnXCI+Q29tbWVudGluZyBmb3IgdGhpcyB2aWRl byBkaXNhYmxlZCBieSB0aGUgb3duZXIuPFwvZGl2PiIsIjxkaXYgY2xhc3M9 XCJtdl9pbmZvIG12X251bV92aWV3c1wiPjExIHZpZXdzPFwvZGl2PjxkaXYg Y2xhc3M9XCJtdl9pbmZvXCI+QWRkZWQgYnk6PFwvZGl2PjxkaXYgaWQ9XCJt dl9hdXRob3JcIj48YSBjbGFzcz1cIm1lbV9saW5rXCIgaHJlZj1cIlwvZHJh a21haWxcIj5BbGV4YW5kZXIgTWFzbG92PFwvYT48XC9kaXY+PGRpdiBpZD1c Im12X2FjdGlvbnNcIj48YSBpZD1cIm12X3NoYXJlXCIgb25jbGljaz1cInZp ZGVvdmlldy5jcmVhdGVERCh0aGlzLCBbW3ZpZGVvdmlldy5zZW5kVmlkZW8s ICdTZW5kIHRvIGEgZnJpZW5kJ10sIFt2aWRlb3ZpZXcuZ2V0VmlkZW9Db2Rl LnBiaW5kKDM5NTc2MjIzLCAxMDgzNzA1MTUpLCAnRXhwb3J0IHZpZGVvJ11d LCBmdW5jdGlvbihjYil7Y2IoKTt9KTtcIiwgc3R5bGU9XCJkaXNwbGF5OiBu b25lO1wiPlxuICA8c3BhbiBjbGFzcz1cIm12X3NoYXJlX3RleHRcIj5TaGFy ZTxcL3NwYW4+XG48XC9hPjxcL2Rpdj4iLCI8YSBjbGFzcz1cIm12X3Nob3df aW5mb1wiIGlkPVwibXZfc2hvd19pbmZvXCIgb25tb3VzZW92ZXI9XCJ2aWRl b3ZpZXcuYWN0aXZhdGUodGhpcywgMik7XCIgb25tb3VzZW91dD1cInZpZGVv dmlldy5kZWFjdGl2YXRlKHRoaXMsIDIpO1wiIG9uY2xpY2s9XCJyZXR1cm4g dmlkZW92aWV3LnNob3dJbmZvKCk7XCI+U2hvdyBDb21tZW50czxcL2E+PGEg Y2xhc3M9XCJtdl9oaWRlX2luZm9cIiBpZD1cIm12X2hpZGVfaW5mb1wiIG9u bW91c2VvdmVyPVwidmlkZW92aWV3LmFjdGl2YXRlKHRoaXMsIDIpO1wiIG9u bW91c2VvdXQ9XCJ2aWRlb3ZpZXcuZGVhY3RpdmF0ZSh0aGlzLCAyKTtcIiBv bmNsaWNrPVwicmV0dXJuIHZpZGVvdmlldy5oaWRlSW5mbygpO1wiPkhpZGUg Y29tbWVudHM8XC9hPiIseyJsYW5nIjp7InJlcGx5X3RvX3Bvc3QiOiJZb3Vy IGNvbW1lbnQuLiIsIndhbGxfTV9yZXBsaWVzX29mX04iOlsiIiwiJXMgY29t bWVudCBvZiB7bGlua317YWxsfXtcL2xpbmt9IiwiJXMgY29tbWVudHMgb2Yg e2xpbmt9e2FsbH17XC9saW5rfSJdLCJ3YWxsX21vcmVfcmVwbGllcyI6WyIi LCJzaG93ICVzIG1vcmUgY29tbWVudCIsInNob3cgJXMgbW9yZSBjb21tZW50 cyJdLCJ3YWxsX2FsbF9yZXBsaWVzIjoiYWxsIGNvbW1lbnRzIiwiZG9udF9h dHRhY2giOiJSZW1vdmUgYXR0YWNobWVudCIsInZpZGVvX1hfY29tbXMiOlsi IiwiJXMgY29tbWVudCIsIiVzIGNvbW1lbnRzIl0sInZpZGVvX3Nob3dfcHJl dmlvdXNfY29tbWVudHMiOlsiIiwiU2hvdyAlcyBwcmV2aW91cyBjb21tZW50 IiwiU2hvdyAlcyBwcmV2aW91cyBjb21tZW50cyJdLCJ2aWRlb19hcmVfeW91 X3N1cmVfY2xvc2UiOiJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY2xvc2Ug dGhpcyB2aWRlbz8iLCJ2aWRlb19hcmVfeW91X3N1cmVfY2xvc2VfdGl0bGUi OiJDbG9zZSB2aWRlbyIsInByb2ZpbGVfbWVudGlvbl9ub3RfZm91bmQiOiJV c2VyIHdhcyBub3QgZm91bmQiLCJwcm9maWxlX21lbnRpb25fc3RhcnRfdHlw aW5nIjoiU3RhcnQgdHlwaW5nIGEgbmFtZS4uIn0sImNvbW1saW1pdCI6MTYz ODQsIm12RGF0YSI6eyJ0aXRsZSI6It8g8/Lu9+rgKSkpKSkiLCJvaWQiOjM5 NTc2MjIzLCJ2aWQiOjEwODM3MDUxNSwidmlkZW9SYXciOiIzOTU3NjIyM18x MDgzNzA1MTUiLCJoYXNoIjoiN2ZlNjAxOGYxNjk2YjVkYzE5IiwibGlrZUhh c2giOiJhZjUyYzljZTU5OWEzMDFlYTMiLCJjb21tc2hvd24iOjIsImNvbW1j b3VudCI6MiwibGlrZWQiOmZhbHNlLCJsaWtlcyI6MCwiZHVyYXRpb24iOjE4 M30sInRhZ2dlZEluZm8iOiIiLCJzaG93SW5mbyI6MH1dKTsKc2hvd1ZpZGVv KCczOTU3NjIyM18xMDgzNzA1MTUnLCAndmlkZW9zMzk1NzYyMjMnLCB7cm9v dDogMSwgZnJvbVByZWxvYWQ6IDEsIG5vTG9jQ2hhbmdlOiAxLCBwcmV2VGl0 bGU6ICcgQWxleGFuZGVyIE1hc2xvdiYjMzk7cyBWaWRlb3MgfCA1IHZpZGVv cycsIHBhcmFtczogeyJhY3QiOiJzaG93IiwidmlkZW8iOiIzOTU3NjIyM18x MDgzNzA1MTUifX0pOwogICAgfQogIDwvc2NyaXB0Pgo8L2JvZHk+Cgo8L2h0 bWw+ http_version: recorded_at: Sun, 23 Feb 2014 16:19:00 GMT recorded_with: VCR 2.8.0