D-319 English Lessons Female Teacher MOVA supermarket DX

ID: D-319

Release Date: 2009-09-22

Length: 88min

Director: RYUNOSUKE

Studio:

Big Morkal

Label:

Daikichi

Series:

English Lessons Female Teacher MOVA

Genre:

CompilationThreesome / FoursomeBig TitsFemale TeacherCaucasian Actress

Recommend

W3siaWQiOiJleG9jX2pfTV8zMDB4MTAwIiwiYWRzcG90Ijoial9NXzMwMHgxMDAiLCJ3ZWlnaHQiOiIzIiwiZmNhcCI6ZmFsc2UsInNjaGVkdWxlIjpmYWxzZSwibWF4V2lkdGgiOiI3NjgiLCJtaW5XaWR0aCI6ZmFsc2UsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IGFzeW5jIHR5cGU9XCJhcHBsaWNhdGlvblwvamF2YXNjcmlwdFwiIHNyYz1cImh0dHBzOlwvXC9hLm1hZ3Nydi5jb21cL2FkLXByb3ZpZGVyLmpzXCI+PFwvc2NyaXB0PiBcclxuIDxpbnMgY2xhc3M9XCJlYXM2YTk3ODg4ZTEwXCIgZGF0YS16b25laWQ9XCIxMDI2MzEwXCI+PFwvaW5zPiBcclxuIDxzY3JpcHQ+KEFkUHJvdmlkZXIgPSB3aW5kb3cuQWRQcm92aWRlciB8fCBbXSkucHVzaCh7XCJzZXJ2ZVwiOiB7fX0pOzxcL3NjcmlwdD4ifSx7ImlkIjoianVpY19qX01fMzAweDEwMCIsImFkc3BvdCI6ImpfTV8zMDB4MTAwIiwid2VpZ2h0IjoiNSIsImZjYXAiOmZhbHNlLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjoiNzY4IiwibWluV2lkdGgiOmZhbHNlLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPGlmcmFtZSBib3JkZXI9MCBmcmFtZWJvcmRlcj0wIG1hcmdpbmhlaWdodD0wIG1hcmdpbndpZHRoPTAgd2lkdGg9MzAwIGhlaWdodD0xMDAgc2Nyb2xsaW5nPW5vIGFsbG93dHJhbnNwYXJlbmN5PXRydWUgc3JjPVwvXC9hZHNlcnZlci5qdWljeWFkcy5jb21cL2Fkc2hvdy5waHA/YWR6b25lPTQ1MTczOT48XC9pZnJhbWU+In1d

Sample Images

Recommend

W3siaWQiOiJleG9jX2pfTV8zMDB4MjUwIiwiYWRzcG90Ijoial9NXzMwMHgyNTAiLCJ3ZWlnaHQiOiIyIiwiZmNhcCI6ZmFsc2UsInNjaGVkdWxlIjpmYWxzZSwibWF4V2lkdGgiOiI3NjgiLCJtaW5XaWR0aCI6ZmFsc2UsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IGFzeW5jIHR5cGU9XCJhcHBsaWNhdGlvblwvamF2YXNjcmlwdFwiIHNyYz1cImh0dHBzOlwvXC9hLm1hZ3Nydi5jb21cL2FkLXByb3ZpZGVyLmpzXCI+PFwvc2NyaXB0PiBcclxuIDxpbnMgY2xhc3M9XCJlYXM2YTk3ODg4ZTEwXCIgZGF0YS16b25laWQ9XCIxMDMxMDQyXCI+PFwvaW5zPiBcclxuIDxzY3JpcHQ+KEFkUHJvdmlkZXIgPSB3aW5kb3cuQWRQcm92aWRlciB8fCBbXSkucHVzaCh7XCJzZXJ2ZVwiOiB7fX0pOzxcL3NjcmlwdD4ifSx7ImlkIjoianVpY19qX01fMzAweDI1MCIsImFkc3BvdCI6ImpfTV8zMDB4MjUwIiwid2VpZ2h0IjoiMyIsImZjYXAiOmZhbHNlLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjoiNzY4IiwibWluV2lkdGgiOmZhbHNlLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPCEtLSBKdWljeUFkcyB2My4xIC0tPlxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0XC9qYXZhc2NyaXB0XCIgZGF0YS1jZmFzeW5jPVwiZmFsc2VcIiBhc3luYyBzcmM9XCJodHRwczpcL1wvcG93ZXJlZGJ5LmphZHMuY29cL2pzXC9qYWRzLmpzXCI+PFwvc2NyaXB0PlxyXG48aW5zIGlkPVwiMzcxNzI2XCIgZGF0YS13aWR0aD1cIjMwMFwiIGRhdGEtaGVpZ2h0PVwiMjUwXCI+PFwvaW5zPlxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0XC9qYXZhc2NyaXB0XCIgZGF0YS1jZmFzeW5jPVwiZmFsc2VcIiBhc3luYz4oYWRzYnlqdWljeSA9IHdpbmRvdy5hZHNieWp1aWN5IHx8IFtdKS5wdXNoKHsnYWR6b25lJzozNzE3MjZ9KTs8XC9zY3JpcHQ+XHJcbjwhLS1KdWljeUFkcyBFTkQtLT4ifV0=
W3siaWQiOiJhZHN0X2pfUE9QVU5ERVIiLCJhZHNwb3QiOiJqX1BPUFVOREVSIiwid2VpZ2h0IjoiNSIsImZjYXAiOiIyIiwic2NoZWR1bGUiOmZhbHNlLCJtYXhXaWR0aCI6ZmFsc2UsIm1pbldpZHRoIjoiNzY4IiwidGltZXpvbmUiOmZhbHNlLCJleGNsdWRlIjpmYWxzZSwiZG9tYWluIjpmYWxzZSwiY29kZSI6IjxzY3JpcHQgdHlwZT0ndGV4dFwvamF2YXNjcmlwdCcgc3JjPSdodHRwczpcL1wvcGwxMTA1MjUucHVodG1sLmNvbVwvNzBcLzgyXC85Y1wvNzA4MjljMzgyMTZlMWMwNDYxNmFkYjQ2NzJlZGEzNDIuanMnPjxcL3NjcmlwdD4ifSx7ImlkIjoiY2xpY19qX1BPUFVOREVSIiwiYWRzcG90Ijoial9QT1BVTkRFUiIsIndlaWdodCI6IjciLCJmY2FwIjpmYWxzZSwic2NoZWR1bGUiOmZhbHNlLCJtYXhXaWR0aCI6ZmFsc2UsIm1pbldpZHRoIjpmYWxzZSwidGltZXpvbmUiOmZhbHNlLCJleGNsdWRlIjpmYWxzZSwiZG9tYWluIjpmYWxzZSwiY29kZSI6IjxzY3JpcHQgdHlwZT1cInRleHRcL2phdmFzY3JpcHRcIj4hZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjtjb25zdCB0PVwiel9mbGdkYWJjcG9rcmluZXV0bS5cL3NcIixlPXRbNF0sbj10WzZdLG89dFs3XSxyPXRbOF0scz10WzE0XSxpPXRbNV0sYz10WzE1XSxhPXRbMTZdLGw9dFsxM10sdT10WzEwXSxoPXRbMTJdLGQ9dFs5XSxnPXRbMTddLG09dFsxOF0sZj10WzJdLHA9dFszXSx3PXRbMF0sYj10WzFdLCQ9dFsyMF0sdj0oLi4udCk9PnQuam9pbihcIlwiKSxJPXYocixwKSxTPXYobixvKSx5PXYoaSxjLG8sYSxlKSxFPXYobCxzLGQsbixlLGMpLGs9dihvLG4scyxzLGMsaCkseD12KGIsSSxiLFMsYix5LGIpLGo9dihiLGIpLEM9dih3LGYsZSxwLHUsbixpLGMsaSksTj17Mjp2KEMsZCx1LGQsdFsxNl0sZCksOTp2KEMsayksMTA6dihDLEUpfSxPPXYodyxmLGUscix1LGksYyxwLHUsbixpLGMsaSksUj17Mjp2KE8sdSxzLEksbCxyLHRbMTFdKSw5OnYoTyxrKSwxMDp2KE8sRSl9LF89dih4LGcsbCxtLGMpLEE9dih4LGksdSxtLG4sbCxzKSxEPXYoaixyLHMsZSxmLGUpLFQ9dihqLHIscyxlLGYsZSxqLGkpLE09dihELGosUyksVT12KEQsaixjLGEpLEI9dih0WzIxXSxyLGgsbCxkLGcpLEo9dih0WzE5XSxyLHUsbSwkKSxXPXYoJCxjLHMpLHo9dihsLGkpLFY9dihqLHIscyxlLGYsZSxqLGgpLEg9W1wib29cIixcImtrXCIsXCJhYWFcIixcImpqalwiLFwiZmV3aFwiLFwiYWFzaFwiLFwicXdkaHdcIixcIndlZ3dnc1wiLFwiaGtpaXV5clwiLFwibmZncnN0ZGhcIl0sSz0zNmU1LFA9KHQsZSk9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSooZS10KzEpKSt0O2Z1bmN0aW9uIFEodCxlPXdpbmRvdyxuPSExKXtsZXQgbzt0cnl7aWYobz1lW3RdLCFvKXJldHVybiExO2NvbnN0IG49XCJfX3N0b3JhZ2VfdGVzdF9fXCI7cmV0dXJuIG8uc2V0SXRlbShuLG4pLG8uZ2V0SXRlbShuKSxvLnJlbW92ZUl0ZW0obiksITB9Y2F0Y2godCl7cmV0dXJuIEJvb2xlYW4oIW4mJmZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uJiYoMjI9PT10LmNvZGV8fDEwMTQ9PT10LmNvZGV8fFwiUXVvdGFFeGNlZWRlZEVycm9yXCI9PT10Lm5hbWV8fFwiTlNfRVJST1JfRE9NX1FVT1RBX1JFQUNIRURcIj09PXQubmFtZSl9KHQpJiZvJiZvLmxlbmd0aD4wKX19Y29uc3QgcT10PT57aWYoXCJcIj09PXQpdGhyb3cgbmV3IEVycm9yKFwiS2V5IGNhbm5vdCBiZSBlbXB0eVwiKX07Y2xhc3MgRntjb25zdHJ1Y3Rvcih0KXt0aGlzLnN0b3JhZ2U9dH1nZXRJdGVtKHQpe3JldHVybiB0aGlzLnN0b3JhZ2UuZ2V0SXRlbSh0KX1zZXRJdGVtKHQsZSl7cSh0KSx0aGlzLnN0b3JhZ2Uuc2V0SXRlbSh0LGUpfXJlbW92ZUl0ZW0odCl7dGhpcy5zdG9yYWdlLnJlbW92ZUl0ZW0odCl9fWNsYXNzIEx7Y29uc3RydWN0b3IodCl7dGhpcy5kb2M9dH1nZXRJdGVtKHQpe2NvbnN0IGU9bmV3IFJlZ0V4cChcIig/Ol58OyApXCIrdC5yZXBsYWNlKFwvKFtcXC4kPyp8e31cXChcXClcXFtcXF1cXFxcXFxcL1xcK15dKVwvZyxcIlxcXFwkMVwiKStcIj0oW15cLztcL10qKVwiKS5leGVjKHRoaXMuZG9jLmNvb2tpZSk7cmV0dXJuIGU/ZGVjb2RlVVJJQ29tcG9uZW50KGVbMV0pOm51bGx9c2V0SXRlbSh0LGUpe3EodCksdGhpcy5kb2MuY29va2llPWAke3R9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGUpfTsgbWF4LWFnZT0zNDQ3MDAwMDsgcGF0aD1cLztgfXJlbW92ZUl0ZW0odCl7dGhpcy5kb2MuY29va2llPWAke3R9PTA7IG1heC1hZ2U9LTE7IHBhdGg9XC87YH19Y2xhc3MgR3tjb25zdHJ1Y3Rvcih0KXt0aGlzLndpbj10fWdldEl0ZW0odCl7Y29uc3QgZT10aGlzLndpblt0XTtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2YgZT9KU09OLnN0cmluZ2lmeShlKTp2b2lkIDAhPT1lP2U6bnVsbH1zZXRJdGVtKHQsZSl7cSh0KSx0aGlzLndpblt0XT1lfXJlbW92ZUl0ZW0odCl7ZGVsZXRlIHRoaXMud2luW3RdfX12YXIgWCxZOyh0PT57Y29uc3QgZT1bbmV3IEcodCldLG49XCJvbmNvbnRleHRzdG9yZVwiO2xldCBvO1EoXCJsb2NhbFN0b3JhZ2VcIix0KSYmZS5wdXNoKG5ldyBGKHQubG9jYWxTdG9yYWdlKSksUShcInNlc3Npb25TdG9yYWdlXCIsdCkmJmUucHVzaChuZXcgRih0LnNlc3Npb25TdG9yYWdlKSksZnVuY3Rpb24odD13aW5kb3cpe3RyeXtyZXR1cm4gdC5kb2N1bWVudC5jb29raWUsdC5uYXZpZ2F0b3IuY29va2llRW5hYmxlZH1jYXRjaCh0KXtyZXR1cm4hMX19KHQpJiZlLnB1c2gobmV3IEwodC5kb2N1bWVudCkpfSkod2luZG93KSxmdW5jdGlvbih0KXt0LlNFVT1cInNldVwiLHQuU05DPVwic25jXCIsdC5TU1Q9XCJzc3RcIix0LlNLQT1cInNrYVwifShYfHwoWD17fSkpLFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktX1wiLnNwbGl0KFwiXCIpLGZ1bmN0aW9uKHQpe3QuVm9jYWJ1bGFyeT1cInRwbW1odjE4XCIsdC5XZWlnaHRzPVwidHBtbWh3MThcIn0oWXx8KFk9e30pKTtZLlZvY2FidWxhcnksWS5XZWlnaHRzO2NvbnN0IFo9dD0+e2NvbnN0W2VdPXQuc3BsaXQoXCJcL1wvXCIpO2xldFtuLG8scl09ZnVuY3Rpb24odCxlKXtsZXRbbixvLC4uLnJdPXQuc3BsaXQoZSk7cmV0dXJuIG89W28sLi4ucl0uam9pbihlKSxbbixvLEJvb2xlYW4oci5sZW5ndGgpXX0odCxcIj9cIik7dmFyIHM7ciYmZnVuY3Rpb24odCxlLG4pe3RyeXtyZXR1cm4gdCgpfWNhdGNoKHQpe2lmKGUpcmV0dXJuIGUodCl9fSgoKCk9Pnt0aHJvdyBuZXcgRXJyb3IoXCJUaGUgVVJMIGNvbnRhaW5zIHVuZW5jb2RlZCBjaGFyYWN0ZXJzLlwiKX0pLFwiZnVuY3Rpb25cIj09dHlwZW9mIGhhbmRsZUV4Y2VwdGlvbj90PT57aGFuZGxlRXhjZXB0aW9uKHQpfTpzKTtjb25zdFtpLC4uLmNdPW4ucmVwbGFjZShcL15odHRwcz86XFxcL1xcXC9cLyxcIlwiKS5zcGxpdChcIlwvXCIpO3JldHVybntwcm90b2NvbDplLG9yaWdpbjpuLGRvbWFpbjppLHBhdGg6Yy5qb2luKFwiXC9cIiksc2VhcmNoOm99fSx0dD0oKT0+e2NvbnN0IHQ9SFtQKDAsSC5sZW5ndGgtMSldLGU9IVAoMCwxKT8odD0+e2xldCBlPVwiXCI7Zm9yKGxldCBuPTA7bjx0O24rKyllKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFAoOTcsMTIyKSk7cmV0dXJuIGV9KShQKDIsNikpOlAoMSw5OTk5OTkpO3JldHVybmAke3R9PSR7ZX1gfSxldD0odCxlLG4pPT57Y29uc3Qgbz0oKHQsZSk9PihlK3QpLnNwbGl0KFwiXCIpLnJlZHVjZSgoKHQsZSk9PjMxKnQrZS5jaGFyQ29kZUF0KDApJjMzNTU0NDMxKSwxOSkpKHQsZSkscj0odD0+e2xldCBlPXQlNzEzODc7cmV0dXJuKCk9PmU9KDIzMjUxKmUrMTIzNDUpJTcxMzg3fSkobyk7cmV0dXJuIG4uc3BsaXQoXCJcIikubWFwKCh0PT4oKHQsZSk9Pntjb25zdCBuPXQuY2hhckNvZGVBdCgwKSxvPW48OTd8fG4+MTIyP246OTcrKG4tOTcrZSgpKSUyNixyPVN0cmluZy5mcm9tQ2hhckNvZGUobyk7cmV0dXJuXCJpXCI9PT1yP3IrXCJpXCI6cn0pKHQscikpKS5qb2luKFwiXCIpfSxudD0odCxlKT0+e3Q9dC5yZXBsYWNlKGA/JHt6fT0ke2V9JmAsXCI/XCIpLnJlcGxhY2UoYD8ke3p9PSR7ZX1gLFwiP1wiKS5yZXBsYWNlKGAmJHt6fT0ke2V9YCxcIlwiKTtsZXR7ZG9tYWluOm4sc2VhcmNoOm8sb3JpZ2luOnJ9PVoodCkscz1vP28uc3BsaXQoXCImXCIpOltdO2NvbnN0IGk9cy5sZW5ndGg+ND9bMCwyXTpbNSw5XTtzLnB1c2goLi4uKCh0LGUpPT57Y29uc3Qgbj1bXSxvPVAodCxlKTtmb3IobGV0IHQ9MDt0PG87dCsrKW4ucHVzaCh0dCgpKTtyZXR1cm4gbn0pKC4uLmkpKSxzPSh0PT57Y29uc3QgZT1bLi4udF07bGV0IG49ZS5sZW5ndGg7Zm9yKDswIT09bjspe2NvbnN0IHQ9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKm4pO24tLSxbZVtuXSxlW3RdXT1bZVt0XSxlW25dXX1yZXR1cm4gZX0pKHMpO2NvbnN0IGM9ZXQoZSxuLHMuam9pbihcIiZcIikpLGE9UCgwLHMubGVuZ3RoKSxsPWMuc3BsaXQoXCImXCIpO3JldHVybiBsLnNwbGljZShhLDAsYGlkPSR7ZX1gKSxyLnJlcGxhY2UobixuK1cpK1wiP1wiK2wuam9pbihcIiZcIil9LG90PXQ9Pih0PT50Pj0xNzMxMjc2ZTYmJnQ8PTE3MzE3OTQ0ZTV8fHQ+PTE3MzI0ODU2ZTUmJnQ8PTE3MzMwMDRlNikodCk/UCh0LUssdCtLKTp0LHJ0PXQ9Pntjb25zdCBlPW5ldyBSZWdFeHAoXytcIj0oXFxcXGQrKShyKT9cIikuZXhlYyh0LmxvY2F0aW9uLmhyZWYpLG49ZSYmZVsxXSYmK2VbMV07cmV0dXJuIG4mJiFpc05hTihuKT8obnVsbD09ZT92b2lkIDA6ZVsyXSk/b3Qobik6bjpvdChEYXRlLm5vdygpKX0sc3Q9XCJjbGFiZGZyXCI7ZnVuY3Rpb24gaXQodCl7aWYoIXQpcmV0dXJuIG51bGw7Y29uc3QgZT17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaCgobj0+e2NvbnN0IG89dFtuXTsoZnVuY3Rpb24odCl7Y29uc3QgZT1udWxsPT10P3ZvaWQgMDp0WzBdLG49bnVsbD09dD92b2lkIDA6dFsxXTtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZSYmTnVtYmVyLmlzRmluaXRlKG4pJiZuPkRhdGUubm93KCl9KShvKSYmKGVbbl09byl9KSksZX1jb25zdCBjdD0oKCk9Pnt2YXIgdDtjb25zdFtlLG5dPWZ1bmN0aW9uKCl7aWYoUShcImxvY2FsU3RvcmFnZVwiKSl7Y29uc3QgdD13aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oc3QpO3JldHVyblt0P0pTT04ucGFyc2UodCk6bnVsbCwhMV19cmV0dXJuW251bGwsITBdfSgpLG89bnVsbCE9PSh0PWl0KGUpKSYmdm9pZCAwIT09dD90Ont9O3JldHVybiBufHx3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oc3QsSlNPTi5zdHJpbmdpZnkobykpLHtnZXQ6dD0+b1t0XSxzZXQ6KHQsZSxyKT0+e2NvbnN0IHM9W2UsRGF0ZS5ub3coKSsxZTMqcl07b1t0XT1zLG58fHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdCxKU09OLnN0cmluZ2lmeShvKSl9fX0pKCk7Y29uc3QgYXQ9WzEsMyw2LDUsOCw5LDEwLDExLDEyLDEzLDE0XTtsZXQgbHQ7Y29uc3QgdXQ9VWludDhBcnJheTtsZXQgaHQ7Y2xhc3MgZHR7Y29uc3RydWN0b3IodCxlLG4sbyxyLHMpe3RoaXMuaWQ9ZSx0aGlzLnQ9bix0aGlzLmI2ZD1vLHRoaXMudmVyPXIsdGhpcy5mYnY9cyx0aGlzLnRtcj1udWxsLHRoaXMuZ2Q9dD0+aHQud3UudGhlbigoZT0+ZS51cmwoaHQuZ2Zjbyh0KSkpKSx0aGlzLmI2YWI9dD0+dXQuZnJvbShhdG9iKHQpLCh0PT50LmNoYXJDb2RlQXQoMCkpKSx0aGlzLmdjdWs9KCk9PmAke2h0LmlkfSR7RH1gLHRoaXMuZ2Z1PXQ9PmAke2Z1bmN0aW9uKHQsZSl7Y29uc3Qgbj1uZXcgUmVnRXhwKEErXCI9KFthLXowLTkuLV0rKSY/XCIpLmV4ZWModC5sb2NhdGlvbi5ocmVmKSxvPW4mJm5bMV0/blsxXTpudWxsO3JldHVybiBlJiZvP2UucmVwbGFjZShKLGAtJHtvfVwvYCk6ZXx8b30obHQsdCl9P2lkPSR7aHQuaWR9YCx0aGlzLnNhc3Q9dD0+MCE9PU51bWJlcih0KSxodD10aGlzLGx0PXQsdGhpcy53dT1odC5pd2EoKSxsdFt0aGlzLmlkK1ZdPXRoaXMuaW5zKCksaHQuY2NsdCgpLGx0W2h0LmlkK1VdPW50fWluKCl7dGhpcy5zYXN0KGh0LnQpJiYhMCE9PWx0W1JbaHQudF1dJiYoaHQudG1yJiZjbGVhclRpbWVvdXQoaHQudG1yKSxodC5hc3QoKSl9aW5zKCl7bHRbdGhpcy5nY2RrKCldPXt9O2NvbnN0IHQ9YXQubWFwKCh0PT5odC5nZCh0KS50aGVuKChlPT4obHRbaHQuZ2NkaygpXVt0XT1lLGUpKSkpKTtyZXR1cm4gUHJvbWlzZS5hbGwodCkudGhlbigodD0+KGx0W2h0LmdjdWsoKV09dCwhMCkpKX1jY2x0KCl7aHQuc2FzdChodC50KSYmKHRoaXMudG1yPWx0LnNldFRpbWVvdXQoKCgpPT4hbHRbTltodC50XV0mJmh0LmFzdCgpKSw1ZTMpKX1nZmNvKHQpe2NvbnN0e25hdmlnYXRvcjplfT1sdCxuPWU/ZS51c2VyQWdlbnQ6XCJcIixvPWx0LmxvY2F0aW9uLmhvc3RuYW1lfHxcIlwiO3JldHVybltsdC5pbm5lckhlaWdodCxsdC5pbm5lcldpZHRoLGx0LnNlc3Npb25TdG9yYWdlPzE6MCxydChsdCksMCx0LG8uc2xpY2UoMCwxMDApLG4uc2xpY2UoMCwxNSldLmpvaW4oXCIsXCIpfWFzdCgpe2h0LnNhc3QoaHQudCkmJmh0LmdkKGh0LnQpLnRoZW4oKHQ9PntsdFtodC5pZCtNXT1odC52ZXI7Y29uc3QgZT1sdC5kb2N1bWVudCxuPWUuY3JlYXRlRWxlbWVudChCKSxbb109ZnVuY3Rpb24odCxlKXtjb25zdHtkb21haW46bixwYXRoOm8sc2VhcmNoOnJ9PVoodCkscz1jdC5nZXQobik7cmV0dXJuIHM/W2Ake2k9c1swXSwoXC9odHRwcz86XFxcL1xcXC9cLy50ZXN0KGkpP1wiXCI6XCJodHRwczpcL1wvXCIpK2l9XC8ke299PyR7cn1gLCExXTpbdCwhMV07dmFyIGl9KGh0LmdmdSh0KSk7bi5zcmM9bnQobyxodC5pZCksZS5oZWFkLmFwcGVuZENoaWxkKG4pfSkpfWl3YSgpe2NvbnN0IHQ9V2ViQXNzZW1ibHksZT10JiZ0Lmluc3RhbnRpYXRlO3JldHVybiBlP2UoaHQuYjZhYihodC5iNmQpLHt9KS50aGVuKCgoe2luc3RhbmNlOntleHBvcnRzOnR9fSk9Pntjb25zdCBlPXQubWVtb3J5LG49dC51cmwsbz1uZXcgVGV4dEVuY29kZXIscj1uZXcgVGV4dERlY29kZXIoXCJ1dGYtOFwiKTtyZXR1cm57dXJsOnQ9Pntjb25zdCBzPW8uZW5jb2RlKHQpLGk9bmV3IHV0KGUuYnVmZmVyLDAscy5sZW5ndGgpO2kuc2V0KHMpO2NvbnN0IGM9aS5ieXRlT2Zmc2V0K3MubGVuZ3RoLGE9bihpLHMubGVuZ3RoLGMpLGw9bmV3IHV0KGUuYnVmZmVyLGMsYSk7cmV0dXJuIHIuZGVjb2RlKGwpfX19KSk6UHJvbWlzZS5yZXNvbHZlKHZvaWQgMCl9Z2Nkaygpe3JldHVybmAke3RoaXMuaWR9JHtUfWB9fSFmdW5jdGlvbih0LGUsbixvLHIscyl7Y29uc3QgaT1uZXcgZHQod2luZG93LFwiMjA0NzQ3MFwiLFwiMlwiLFwiQUdGemJRRUFBQUFCSEFWZ0FBRlwvWUFOXC9mMzhCZjJBRGYzOVwvQVg1Z0FYOEFZQUZcL0FYOERDUWdBQVFJQkFBTUVBQVFGQVhBQkFRRUZCZ0VCZ0FLQUFnWUpBWDhCUWNDSXdBSUxCMmNIQm0xbGJXOXllUUlBQTNWeWJBQURHVjlmYVc1a2FYSmxZM1JmWm5WdVkzUnBiMjVmZEdGaWJHVUJBQkJmWDJWeWNtNXZYMnh2WTJGMGFXOXVBQWNKYzNSaFkydFRZWFpsQUFRTWMzUmhZMnRTWlhOMGIzSmxBQVVLYzNSaFkydEJiR3h2WXdBR0NvY0dDQ0VCQVg5QnVBaEJ1QWdvQWdCQkUyeEJvUnhxUVlmQzF5OXdJZ0EyQWdBZ0FBdVRBUUVGZnhBQUlBRWdBR3RCQVdwd0lBQnFJZ1FFUUVFQUlRQkJBeUVCQTBBZ0FVRURJQUJCQTNBaUJ4c2hBUkFBSWdaQkZIQkJrQWhxTFFBQUlRTUNmeUFGUVFBZ0J4dEZCRUJCQUNBR0lBRndEUUVhSUFaQkJuQkJnQWhxTFFBQUlRTUxRUUVMSVFVZ0FDQUNhaUFEUWF3SUxRQUFhem9BQUNBQlFRRnJJUUVnQUVFQmFpSUFJQVJKRFFBTEN5QUNJQVJxQzNFQ0EzOENmZ0pBSUFGQkFFd05BQU5BSUFSQkFXb2hBeUFDSUFVZ0FDQUVhaTBBQUVFc1Jtb2lCVVlFUUNBQklBTk1EUUlEUUNBQUlBTnFNQUFBSWdkQ0xGRU5BeUFHUWdwK0lBZDhRakI5SVFZZ0EwRUJhaUlESUFGSERRQUxEQUlMSUFNaEJDQUJJQU5LRFFBTEN5QUdDN2dEQWdOK0IzOGdBQ0FCUVFNUUFpRURJQUFnQVVFRkVBSWhCVUc0Q0NBRFFiQUlLUU1BSWdRZ0F5QUVWQnRCcUFnb0FnQWlBRUV5YWlJQklBRnNRZWdIYksyQUlnUWdBRUVPYWlJS0lBQkJCR3NnQTBLQWdQSHR4ekJVSWdzYnJZQ25JQU5DXC80XC9NcFwvWXhWa0VXZEhJMkFnQVFBQm9RQUJvZ0FrTG82TkdEdDg3T2x5ODNBQUJCQjBFS1FRZ2dBMEtBME1XWGd6SlVHeUFEUW9DV29wM2xNRlFpQmh0QkMwRU1JQVliSUFKQkNHb1FBU0VBRUFBYUl3QkJFR3NpQVNRQUlBQkJMam9BQUNBQlFlUGV0UU0yQWd3Z0FFRUJhaUVIUVFBaEFDQUJRUXhxSWd3dEFBQWlDQVJBQTBBZ0FDQUhhaUFJT2dBQUlBd2dBRUVCYWlJQWFpMEFBQ0lJRFFBTEN5QUJRUkJxSkFBZ0FDQUhhaUVCUWJnSUlBUWdDcTJBSUFWQ0c0WkNBRUtBZ0lBZ1FvQ0FnREJDZ0lDQUNFS0FnSUFZSUFWQ0NGRWJRb0NBZ0JKQ2dJREFEU0FEUW9DSWw5cXNNbFFiSUFOQ2dKRE1wXC9ZeFZCc2dBMEtBbU1hdXp6RlVHeUFHR3lBTEc0U0VQZ0lBRUFBYVFRSkJCQkFBUVFOd0lnQWJJUVlEUUNBQlFTODZBQUFnQUNBSlJpRUhJQVpCQlNBQlFRRnFFQUVoQVNBSlFRRnFJUWtnQjBVTkFBc2dBU0FDYXdzRUFDTUFDd1lBSUFBa0FBc1FBQ01BSUFCclFYQnhJZ0FrQUNBQUN3VUFRYndJQ3dzN0F3QkJnQWdMQnA2aXBxeXl0Z0JCa0FnTEZKK2dvYU9rcGFlb3FhcXJyYTZ2c0xHenRMVzNBRUdvQ0FzT0NnQUFBRDBBQUFEXC9oeG93bFFFPVwiLFwiOFwiLFwiMS4wLjQwMFwiKTt3aW5kb3dbXCJzbWp0Y2tyblwiXT0oKT0+aS5pbigpfSgpfSgpOzxcL3NjcmlwdD5cclxuPHNjcmlwdCBkYXRhLWNmYXN5bmM9XCJmYWxzZVwiIHR5cGU9XCJ0ZXh0XC9qYXZhc2NyaXB0XCIgc3JjPVwiXC9cL2lzb2xhdGVkb3ZlcmNvbWVwYXN0ZWQuY29tXC9hYXNcL3I0NWRcL3ZraVwvMjA0NzQ2OFwvM2Q5MzFkNTQuanNcIiBhc3luYyBvbmVycm9yPVwic21qdGNrcm4oKVwiPjxcL3NjcmlwdD4ifSx7ImlkIjoiZXhvY19qX1BPUFVOREVSIiwiYWRzcG90Ijoial9QT1BVTkRFUiIsIndlaWdodCI6IjYiLCJmY2FwIjoiMiIsInNjaGVkdWxlIjpmYWxzZSwibWF4V2lkdGgiOmZhbHNlLCJtaW5XaWR0aCI6Ijc2OCIsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IHR5cGU9XCJhcHBsaWNhdGlvblwvamF2YXNjcmlwdFwiPlxyXG4oZnVuY3Rpb24oKSB7XHJcblxyXG4gICAgXC9cL3ZlcnNpb24gMS4wLjBcclxuXHJcbiAgICB2YXIgYWRDb25maWcgPSB7XHJcbiAgICBcImFkc19ob3N0XCI6IFwiYS5wZW1zcnYuY29tXCIsXHJcbiAgICBcInN5bmRpY2F0aW9uX2hvc3RcIjogXCJzLnBlbXNydi5jb21cIixcclxuICAgIFwiaWR6b25lXCI6IDEwMDgwOTQsXHJcbiAgICBcInBvcHVwX2ZhbGxiYWNrXCI6IGZhbHNlLFxyXG4gICAgXCJwb3B1cF9mb3JjZVwiOiBmYWxzZSxcclxuICAgIFwiY2hyb21lX2VuYWJsZWRcIjogdHJ1ZSxcclxuICAgIFwibmV3X3RhYlwiOiBmYWxzZSxcclxuICAgIFwiZnJlcXVlbmN5X3BlcmlvZFwiOiA3MjAsXHJcbiAgICBcImZyZXF1ZW5jeV9jb3VudFwiOiAxLFxyXG4gICAgXCJ0cmlnZ2VyX21ldGhvZFwiOiAzLFxyXG4gICAgXCJ0cmlnZ2VyX2NsYXNzXCI6IFwiXCIsXHJcbiAgICBcInRyaWdnZXJfZGVsYXlcIjogMCxcclxuICAgIFwib25seV9pbmxpbmVcIjogZmFsc2VcclxufTtcclxuXHJcbmlmKCF3aW5kb3cuZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbD1kb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0b3JBbGw9T2JqZWN0LnF1ZXJ5U2VsZWN0b3JBbGw9ZnVuY3Rpb24gcXVlcnlTZWxlY3RvckFsbFBvbHlmaWxsKHIsYyxpLGosYSl7dmFyIGQ9ZG9jdW1lbnQscz1kLmNyZWF0ZVN0eWxlU2hlZXQoKTthPWQuYWxsO2M9W107cj1yLnJlcGxhY2UoXC9cXFtmb3JcXGJcL2dpLFwiW2h0bWxGb3JcIikuc3BsaXQoXCIsXCIpO2ZvcihpPXIubGVuZ3RoO2ktLTspe3MuYWRkUnVsZShyW2ldLFwiazp2XCIpO2ZvcihqPWEubGVuZ3RoO2otLTspe2Fbal0uY3VycmVudFN0eWxlLmsmJmMucHVzaChhW2pdKX1zLnJlbW92ZVJ1bGUoMCl9cmV0dXJuIGN9fXZhciBwb3BNYWdpYz17dmVyc2lvbjoxLGNvb2tpZV9uYW1lOlwiXCIsdXJsOlwiXCIsY29uZmlnOnt9LG9wZW5fY291bnQ6MCx0b3A6bnVsbCxicm93c2VyOm51bGwsdmVub3JfbG9hZGVkOmZhbHNlLHZlbm9yOmZhbHNlLGNvbmZpZ1RwbDp7YWRzX2hvc3Q6XCJcIixzeW5kaWNhdGlvbl9ob3N0OlwiXCIsaWR6b25lOlwiXCIsZnJlcXVlbmN5X3BlcmlvZDo3MjAsZnJlcXVlbmN5X2NvdW50OjEsdHJpZ2dlcl9tZXRob2Q6MSx0cmlnZ2VyX2NsYXNzOlwiXCIscG9wdXBfZm9yY2U6ZmFsc2UscG9wdXBfZmFsbGJhY2s6ZmFsc2UsY2hyb21lX2VuYWJsZWQ6dHJ1ZSxuZXdfdGFiOmZhbHNlLGNhdDpcIlwiLHRhZ3M6XCJcIixlbDpcIlwiLHN1YjpcIlwiLHN1YjI6XCJcIixzdWIzOlwiXCIsb25seV9pbmxpbmU6ZmFsc2UsdHJpZ2dlcl9kZWxheTowLGNvb2tpZWNvbnNlbnQ6dHJ1ZX0saW5pdDpmdW5jdGlvbihjb25maWcpe2lmKHR5cGVvZiBjb25maWcuaWR6b25lPT09XCJ1bmRlZmluZWRcInx8IWNvbmZpZy5pZHpvbmUpe3JldHVybn1pZih0eXBlb2YgY29uZmlnW1wiY3VzdG9tVGFyZ2V0aW5nXCJdPT09XCJ1bmRlZmluZWRcIil7Y29uZmlnW1wiY3VzdG9tVGFyZ2V0aW5nXCJdPVtdfXdpbmRvd1tcImN1c3RvbVRhcmdldGluZ1wiXT1jb25maWdbXCJjdXN0b21UYXJnZXRpbmdcIl18fG51bGw7dmFyIGN1c3RvbVRhcmdldGluZz1PYmplY3Qua2V5cyhjb25maWdbXCJjdXN0b21UYXJnZXRpbmdcIl0pLmZpbHRlcihmdW5jdGlvbihjKXtyZXR1cm4gYy5zZWFyY2goXCJleF9cIik+PTB9KTtpZihjdXN0b21UYXJnZXRpbmcubGVuZ3RoKXtjdXN0b21UYXJnZXRpbmcuZm9yRWFjaChmdW5jdGlvbihjdCl7cmV0dXJuIHRoaXMuY29uZmlnVHBsW2N0XT1udWxsfS5iaW5kKHRoaXMpKX1mb3IodmFyIGtleSBpbiB0aGlzLmNvbmZpZ1RwbCl7aWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmNvbmZpZ1RwbCxrZXkpKXtjb250aW51ZX1pZih0eXBlb2YgY29uZmlnW2tleV0hPT1cInVuZGVmaW5lZFwiKXt0aGlzLmNvbmZpZ1trZXldPWNvbmZpZ1trZXldfWVsc2V7dGhpcy5jb25maWdba2V5XT10aGlzLmNvbmZpZ1RwbFtrZXldfX1pZih0eXBlb2YgdGhpcy5jb25maWcuaWR6b25lPT09XCJ1bmRlZmluZWRcInx8dGhpcy5jb25maWcuaWR6b25lPT09XCJcIil7cmV0dXJufWlmKHRoaXMuY29uZmlnLm9ubHlfaW5saW5lIT09dHJ1ZSl7dGhpcy5sb2FkSG9zdGVkKCl9dGhpcy5hZGRFdmVudFRvRWxlbWVudCh3aW5kb3csXCJsb2FkXCIsdGhpcy5wcmVwYXJlUG9wKX0sZ2V0Q291bnRGcm9tQ29va2llOmZ1bmN0aW9uKCl7aWYoIXRoaXMuY29uZmlnLmNvb2tpZWNvbnNlbnQpe3JldHVybiAwfXZhciBzaG93bkNvb2tpZT1wb3BNYWdpYy5nZXRDb29raWUocG9wTWFnaWMuY29va2llX25hbWUpO3ZhciBjdHI9dHlwZW9mIHNob3duQ29va2llPT09XCJ1bmRlZmluZWRcIj8wOnBhcnNlSW50KHNob3duQ29va2llKTtpZihpc05hTihjdHIpKXtjdHI9MH1yZXR1cm4gY3RyfSxnZXRMYXN0T3BlbmVkVGltZUZyb21Db29raWU6ZnVuY3Rpb24oKXt2YXIgc2hvd25Db29raWU9cG9wTWFnaWMuZ2V0Q29va2llKHBvcE1hZ2ljLmNvb2tpZV9uYW1lKTt2YXIgZGVsYXk9bnVsbDtpZih0eXBlb2Ygc2hvd25Db29raWUhPT1cInVuZGVmaW5lZFwiKXt2YXIgdmFsdWU9c2hvd25Db29raWUuc3BsaXQoXCI7XCIpWzFdO2RlbGF5PXZhbHVlPjA/cGFyc2VJbnQodmFsdWUpOjB9aWYoaXNOYU4oZGVsYXkpKXtkZWxheT1udWxsfXJldHVybiBkZWxheX0sc2hvdWxkU2hvdzpmdW5jdGlvbigpe2lmKHBvcE1hZ2ljLm9wZW5fY291bnQ+PXBvcE1hZ2ljLmNvbmZpZy5mcmVxdWVuY3lfY291bnQpe3JldHVybiBmYWxzZX12YXIgY3RyPXBvcE1hZ2ljLmdldENvdW50RnJvbUNvb2tpZSgpO2NvbnN0IGxhc3Rfb3BlbmVkX3RpbWU9cG9wTWFnaWMuZ2V0TGFzdE9wZW5lZFRpbWVGcm9tQ29va2llKCk7Y29uc3QgY3VycmVudF90aW1lPU1hdGguZmxvb3IoRGF0ZS5ub3coKVwvMWUzKTtjb25zdCBtYXhpbXVtRGVsYXlUaW1lPWxhc3Rfb3BlbmVkX3RpbWUrcG9wTWFnaWMuY29uZmlnLnRyaWdnZXJfZGVsYXk7aWYobGFzdF9vcGVuZWRfdGltZSYmbWF4aW11bURlbGF5VGltZT5jdXJyZW50X3RpbWUpe3JldHVybiBmYWxzZX1wb3BNYWdpYy5vcGVuX2NvdW50PWN0cjtyZXR1cm4hKGN0cj49cG9wTWFnaWMuY29uZmlnLmZyZXF1ZW5jeV9jb3VudCl9LHZlbm9yU2hvdWxkU2hvdzpmdW5jdGlvbigpe3JldHVybiBwb3BNYWdpYy52ZW5vcl9sb2FkZWQmJnBvcE1hZ2ljLnZlbm9yPT09XCIwXCJ9LHNldEFzT3BlbmVkOmZ1bmN0aW9uKCl7dmFyIG5ld19jdHI9MTtpZihwb3BNYWdpYy5vcGVuX2NvdW50IT09MCl7bmV3X2N0cj1wb3BNYWdpYy5vcGVuX2NvdW50KzF9ZWxzZXtuZXdfY3RyPXBvcE1hZ2ljLmdldENvdW50RnJvbUNvb2tpZSgpKzF9Y29uc3QgbGFzdF9vcGVuZWRfdGltZT1NYXRoLmZsb29yKERhdGUubm93KClcLzFlMyk7aWYocG9wTWFnaWMuY29uZmlnLmNvb2tpZWNvbnNlbnQpe3BvcE1hZ2ljLnNldENvb2tpZShwb3BNYWdpYy5jb29raWVfbmFtZSxgJHtuZXdfY3RyfTske2xhc3Rfb3BlbmVkX3RpbWV9YCxwb3BNYWdpYy5jb25maWcuZnJlcXVlbmN5X3BlcmlvZCl9fSxsb2FkSG9zdGVkOmZ1bmN0aW9uKCl7dmFyIGhvc3RlZFNjcmlwdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO2hvc3RlZFNjcmlwdC50eXBlPVwiYXBwbGljYXRpb25cL2phdmFzY3JpcHRcIjtob3N0ZWRTY3JpcHQuYXN5bmM9dHJ1ZTtob3N0ZWRTY3JpcHQuc3JjPVwiXC9cL1wiK3RoaXMuY29uZmlnLmFkc19ob3N0K1wiXC9wb3B1bmRlcjEwMDAuanNcIjtob3N0ZWRTY3JpcHQuaWQ9XCJwb3BtYWdpY2xkclwiO2Zvcih2YXIga2V5IGluIHRoaXMuY29uZmlnKXtpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuY29uZmlnLGtleSkpe2NvbnRpbnVlfWlmKGtleT09PVwiYWRzX2hvc3RcInx8a2V5PT09XCJzeW5kaWNhdGlvbl9ob3N0XCIpe2NvbnRpbnVlfWhvc3RlZFNjcmlwdC5zZXRBdHRyaWJ1dGUoXCJkYXRhLWV4by1cIitrZXksdGhpcy5jb25maWdba2V5XSl9dmFyIGluc2VydEFuY2hvcj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImJvZHlcIikuaXRlbSgwKTtpZihpbnNlcnRBbmNob3IuZmlyc3RDaGlsZCl7aW5zZXJ0QW5jaG9yLmluc2VydEJlZm9yZShob3N0ZWRTY3JpcHQsaW5zZXJ0QW5jaG9yLmZpcnN0Q2hpbGQpfWVsc2V7aW5zZXJ0QW5jaG9yLmFwcGVuZENoaWxkKGhvc3RlZFNjcmlwdCl9fSxwcmVwYXJlUG9wOmZ1bmN0aW9uKCl7aWYodHlwZW9mIGV4b0pzUG9wMTAxPT09XCJvYmplY3RcIiYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4b0pzUG9wMTAxLFwiYWRkXCIpKXtyZXR1cm59cG9wTWFnaWMudG9wPXNlbGY7aWYocG9wTWFnaWMudG9wIT09c2VsZil7dHJ5e2lmKHRvcC5kb2N1bWVudC5sb2NhdGlvbi50b1N0cmluZygpKXtwb3BNYWdpYy50b3A9dG9wfX1jYXRjaChlcnIpe319cG9wTWFnaWMuY29va2llX25hbWU9XCJ6b25lLWNhcC1cIitwb3BNYWdpYy5jb25maWcuaWR6b25lO2lmKHBvcE1hZ2ljLnNob3VsZFNob3coKSl7dmFyIHhtbGh0dHA9bmV3IFhNTEh0dHBSZXF1ZXN0O3htbGh0dHAub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoeG1saHR0cC5yZWFkeVN0YXRlPT1YTUxIdHRwUmVxdWVzdC5ET05FKXtwb3BNYWdpYy52ZW5vcl9sb2FkZWQ9dHJ1ZTtpZih4bWxodHRwLnN0YXR1cz09MjAwKXtwb3BNYWdpYy52ZW5vcj14bWxodHRwLnJlc3BvbnNlVGV4dH1lbHNle3BvcE1hZ2ljLnZlbm9yPVwiMFwifX19O3ZhciBwcm90b2NvbD1kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCE9PVwiaHR0cHM6XCImJmRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sIT09XCJodHRwOlwiP1wiaHR0cHM6XCI6ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2w7eG1saHR0cC5vcGVuKFwiR0VUXCIscHJvdG9jb2wrXCJcL1wvXCIrcG9wTWFnaWMuY29uZmlnLnN5bmRpY2F0aW9uX2hvc3QrXCJcL3Zlbm9yLnBocFwiLHRydWUpO3RyeXt4bWxodHRwLnNlbmQoKX1jYXRjaChlcnJvcil7cG9wTWFnaWMudmVub3JfbG9hZGVkPXRydWV9fXBvcE1hZ2ljLmJ1aWxkVXJsKCk7cG9wTWFnaWMuYnJvd3Nlcj1wb3BNYWdpYy5icm93c2VyRGV0ZWN0b3IuZGV0ZWN0QnJvd3NlcihuYXZpZ2F0b3IudXNlckFnZW50KTtpZighcG9wTWFnaWMuY29uZmlnLmNocm9tZV9lbmFibGVkJiYocG9wTWFnaWMuYnJvd3Nlci5uYW1lPT09XCJjaHJvbWVcInx8cG9wTWFnaWMuYnJvd3Nlci5uYW1lPT09XCJjcmlvc1wiKSl7cmV0dXJufXZhciBwb3BNZXRob2Q9cG9wTWFnaWMuZ2V0UG9wTWV0aG9kKHBvcE1hZ2ljLmJyb3dzZXIpO3BvcE1hZ2ljLmFkZEV2ZW50KFwiY2xpY2tcIixwb3BNZXRob2QpfSxnZXRQb3BNZXRob2Q6ZnVuY3Rpb24oYnJvd3NlckluZm8pe2lmKHBvcE1hZ2ljLmNvbmZpZy5wb3B1cF9mb3JjZSl7cmV0dXJuIHBvcE1hZ2ljLm1ldGhvZHMucG9wdXB9aWYocG9wTWFnaWMuY29uZmlnLnBvcHVwX2ZhbGxiYWNrJiZicm93c2VySW5mby5uYW1lPT09XCJjaHJvbWVcIiYmYnJvd3NlckluZm8udmVyc2lvbj49NjgmJiFicm93c2VySW5mby5pc01vYmlsZSl7cmV0dXJuIHBvcE1hZ2ljLm1ldGhvZHMucG9wdXB9aWYoYnJvd3NlckluZm8uaXNNb2JpbGUpe3JldHVybiBwb3BNYWdpYy5tZXRob2RzLmRlZmF1bHR9aWYoYnJvd3NlckluZm8ubmFtZT09PVwiY2hyb21lXCIpe3JldHVybiBwb3BNYWdpYy5tZXRob2RzLmNocm9tZVRhYn1yZXR1cm4gcG9wTWFnaWMubWV0aG9kcy5kZWZhdWx0fSxidWlsZFVybDpmdW5jdGlvbigpe3ZhciBwcm90b2NvbD1kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCE9PVwiaHR0cHM6XCImJmRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sIT09XCJodHRwOlwiP1wiaHR0cHM6XCI6ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2w7dmFyIHA9dG9wPT09c2VsZj9kb2N1bWVudC5VUkw6ZG9jdW1lbnQucmVmZXJyZXI7dmFyIHNjcmlwdF9pbmZvPXt0eXBlOlwiaW5saW5lXCIsbmFtZTpcInBvcE1hZ2ljXCIsdmVyOnRoaXMudmVyc2lvbn07dmFyIGVuY29kZVNjcmlwdEluZm89ZnVuY3Rpb24oc2NyaXB0X2luZm8pe3ZhciByZXN1bHQ9c2NyaXB0X2luZm9bXCJ0eXBlXCJdK1wifFwiK3NjcmlwdF9pbmZvW1wibmFtZVwiXStcInxcIitzY3JpcHRfaW5mb1tcInZlclwiXTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EocmVzdWx0KSl9O3ZhciBjdXN0b21UYXJnZXRpbmdQYXJhbXM9XCJcIjtpZihjdXN0b21UYXJnZXRpbmcmJk9iamVjdC5rZXlzKGN1c3RvbVRhcmdldGluZykubGVuZ3RoKXt2YXIgY3VzdG9tVGFyZ2V0aW5nS2V5cz10eXBlb2YgY3VzdG9tVGFyZ2V0aW5nPT09XCJvYmplY3RcIj9PYmplY3Qua2V5cyhjdXN0b21UYXJnZXRpbmcpOmN1c3RvbVRhcmdldGluZzt2YXIgdmFsdWU7Y3VzdG9tVGFyZ2V0aW5nS2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSl7aWYodHlwZW9mIGN1c3RvbVRhcmdldGluZz09PVwib2JqZWN0XCIpe3ZhbHVlPWN1c3RvbVRhcmdldGluZ1trZXldfWVsc2UgaWYoQXJyYXkuaXNBcnJheShjdXN0b21UYXJnZXRpbmcpKXt2YWx1ZT1zY3JpcHRFbC5nZXRBdHRyaWJ1dGUoa2V5KX12YXIga2V5V2l0aG91dEV4b1ByZWZpeD1rZXkucmVwbGFjZShcImRhdGEtZXhvLVwiLFwiXCIpO2N1c3RvbVRhcmdldGluZ1BhcmFtcys9YCYke2tleVdpdGhvdXRFeG9QcmVmaXh9PSR7dmFsdWV9YH0pfXRoaXMudXJsPXByb3RvY29sK1wiXC9cL1wiK3RoaXMuY29uZmlnLnN5bmRpY2F0aW9uX2hvc3QrXCJcL3NwbGFzaC5waHBcIitcIj9jYXQ9XCIrdGhpcy5jb25maWcuY2F0K1wiJmlkem9uZT1cIit0aGlzLmNvbmZpZy5pZHpvbmUrXCImdHlwZT04XCIrXCImcD1cIitlbmNvZGVVUklDb21wb25lbnQocCkrXCImc3ViPVwiK3RoaXMuY29uZmlnLnN1YisodGhpcy5jb25maWcuc3ViMiE9PVwiXCI/XCImc3ViMj1cIit0aGlzLmNvbmZpZy5zdWIyOlwiXCIpKyh0aGlzLmNvbmZpZy5zdWIzIT09XCJcIj9cIiZzdWIzPVwiK3RoaXMuY29uZmlnLnN1YjM6XCJcIikrXCImYmxvY2s9MVwiK1wiJmVsPVwiK3RoaXMuY29uZmlnLmVsK1wiJnRhZ3M9XCIrdGhpcy5jb25maWcudGFncytcIiZjb29raWVjb25zZW50PVwiK3RoaXMuY29uZmlnLmNvb2tpZWNvbnNlbnQrXCImc2NyX2luZm89XCIrZW5jb2RlU2NyaXB0SW5mbyhzY3JpcHRfaW5mbykrY3VzdG9tVGFyZ2V0aW5nUGFyYW1zfSxhZGRFdmVudFRvRWxlbWVudDpmdW5jdGlvbihvYmosdHlwZSxmbil7aWYob2JqLmFkZEV2ZW50TGlzdGVuZXIpe29iai5hZGRFdmVudExpc3RlbmVyKHR5cGUsZm4sZmFsc2UpfWVsc2UgaWYob2JqLmF0dGFjaEV2ZW50KXtvYmpbXCJlXCIrdHlwZStmbl09Zm47b2JqW3R5cGUrZm5dPWZ1bmN0aW9uKCl7b2JqW1wiZVwiK3R5cGUrZm5dKHdpbmRvdy5ldmVudCl9O29iai5hdHRhY2hFdmVudChcIm9uXCIrdHlwZSxvYmpbdHlwZStmbl0pfWVsc2V7b2JqW1wib25cIit0eXBlXT1vYmpbXCJlXCIrdHlwZStmbl19fSxhZGRFdmVudDpmdW5jdGlvbih0eXBlLGZuKXt2YXIgdGFyZ2V0RWxlbWVudHM7aWYocG9wTWFnaWMuY29uZmlnLnRyaWdnZXJfbWV0aG9kPT1cIjNcIil7dGFyZ2V0RWxlbWVudHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcImFcIik7Zm9yKGk9MDtpPHRhcmdldEVsZW1lbnRzLmxlbmd0aDtpKyspe3BvcE1hZ2ljLmFkZEV2ZW50VG9FbGVtZW50KHRhcmdldEVsZW1lbnRzW2ldLHR5cGUsZm4pfXJldHVybn1pZihwb3BNYWdpYy5jb25maWcudHJpZ2dlcl9tZXRob2Q9PVwiMlwiJiZwb3BNYWdpYy5jb25maWcudHJpZ2dlcl9tZXRob2QhPVwiXCIpe3ZhciB0cmlnZ2VyX2NsYXNzZXM7dmFyIHRyaWdnZXJfY2xhc3Nlc19maW5hbD1bXTtpZihwb3BNYWdpYy5jb25maWcudHJpZ2dlcl9jbGFzcy5pbmRleE9mKFwiLFwiKT09PS0xKXt0cmlnZ2VyX2NsYXNzZXM9cG9wTWFnaWMuY29uZmlnLnRyaWdnZXJfY2xhc3Muc3BsaXQoXCIgXCIpfWVsc2V7dmFyIHRyaW1tZWRfdHJpZ2dlcl9jbGFzc2VzPXBvcE1hZ2ljLmNvbmZpZy50cmlnZ2VyX2NsYXNzLnJlcGxhY2UoXC9cXHNcL2csXCJcIik7dHJpZ2dlcl9jbGFzc2VzPXRyaW1tZWRfdHJpZ2dlcl9jbGFzc2VzLnNwbGl0KFwiLFwiKX1mb3IodmFyIGk9MDtpPHRyaWdnZXJfY2xhc3Nlcy5sZW5ndGg7aSsrKXtpZih0cmlnZ2VyX2NsYXNzZXNbaV0hPT1cIlwiKXt0cmlnZ2VyX2NsYXNzZXNfZmluYWwucHVzaChcIi5cIit0cmlnZ2VyX2NsYXNzZXNbaV0pfX10YXJnZXRFbGVtZW50cz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHRyaWdnZXJfY2xhc3Nlc19maW5hbC5qb2luKFwiLCBcIikpO2ZvcihpPTA7aTx0YXJnZXRFbGVtZW50cy5sZW5ndGg7aSsrKXtwb3BNYWdpYy5hZGRFdmVudFRvRWxlbWVudCh0YXJnZXRFbGVtZW50c1tpXSx0eXBlLGZuKX1yZXR1cm59cG9wTWFnaWMuYWRkRXZlbnRUb0VsZW1lbnQoZG9jdW1lbnQsdHlwZSxmbil9LHNldENvb2tpZTpmdW5jdGlvbihuYW1lLHZhbHVlLHR0bF9taW51dGVzKXtpZighdGhpcy5jb25maWcuY29va2llY29uc2VudCl7cmV0dXJuIGZhbHNlfXR0bF9taW51dGVzPXBhcnNlSW50KHR0bF9taW51dGVzLDEwKTt2YXIgbm93X2RhdGU9bmV3IERhdGU7bm93X2RhdGUuc2V0TWludXRlcyhub3dfZGF0ZS5nZXRNaW51dGVzKCkrcGFyc2VJbnQodHRsX21pbnV0ZXMpKTt2YXIgY192YWx1ZT1lbmNvZGVVUklDb21wb25lbnQodmFsdWUpK1wiOyBleHBpcmVzPVwiK25vd19kYXRlLnRvVVRDU3RyaW5nKCkrXCI7IHBhdGg9XC9cIjtkb2N1bWVudC5jb29raWU9bmFtZStcIj1cIitjX3ZhbHVlfSxnZXRDb29raWU6ZnVuY3Rpb24obmFtZSl7aWYoIXRoaXMuY29uZmlnLmNvb2tpZWNvbnNlbnQpe3JldHVybiBmYWxzZX12YXIgaSx4LHksY29va2llc0FycmF5PWRvY3VtZW50LmNvb2tpZS5zcGxpdChcIjtcIik7Zm9yKGk9MDtpPGNvb2tpZXNBcnJheS5sZW5ndGg7aSsrKXt4PWNvb2tpZXNBcnJheVtpXS5zdWJzdHIoMCxjb29raWVzQXJyYXlbaV0uaW5kZXhPZihcIj1cIikpO3k9Y29va2llc0FycmF5W2ldLnN1YnN0cihjb29raWVzQXJyYXlbaV0uaW5kZXhPZihcIj1cIikrMSk7eD14LnJlcGxhY2UoXC9eXFxzK3xcXHMrJFwvZyxcIlwiKTtpZih4PT09bmFtZSl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh5KX19fSxyYW5kU3RyOmZ1bmN0aW9uKGxlbmd0aCxwb3NzaWJsZUNoYXJzKXt2YXIgdGV4dD1cIlwiO3ZhciBwb3NzaWJsZT1wb3NzaWJsZUNoYXJzfHxcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5XCI7Zm9yKHZhciBpPTA7aTxsZW5ndGg7aSsrKXt0ZXh0Kz1wb3NzaWJsZS5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKnBvc3NpYmxlLmxlbmd0aCkpfXJldHVybiB0ZXh0fSxpc1ZhbGlkVXNlckV2ZW50OmZ1bmN0aW9uKGV2ZW50KXtpZihcImlzVHJ1c3RlZFwiaW4gZXZlbnQmJmV2ZW50LmlzVHJ1c3RlZCYmcG9wTWFnaWMuYnJvd3Nlci5uYW1lIT09XCJpZVwiJiZwb3BNYWdpYy5icm93c2VyLm5hbWUhPT1cInNhZmFyaVwiKXtyZXR1cm4gdHJ1ZX1lbHNle3JldHVybiBldmVudC5zY3JlZW5YIT0wJiZldmVudC5zY3JlZW5ZIT0wfX0saXNWYWxpZEhyZWY6ZnVuY3Rpb24oaHJlZil7aWYodHlwZW9mIGhyZWY9PT1cInVuZGVmaW5lZFwifHxocmVmPT1cIlwiKXtyZXR1cm4gZmFsc2V9dmFyIGVtcHR5X3JlZj1cL1xccz9qYXZhc2NyaXB0XFxzPzpcL2k7cmV0dXJuIWVtcHR5X3JlZi50ZXN0KGhyZWYpfSxmaW5kTGlua1RvT3BlbjpmdW5jdGlvbihjbGlja2VkRWxlbWVudCl7dmFyIHRhcmdldD1jbGlja2VkRWxlbWVudDt2YXIgbG9jYXRpb249ZmFsc2U7dHJ5e3ZhciBicmVha0N0cj0wO3doaWxlKGJyZWFrQ3RyPDIwJiYhdGFyZ2V0LmdldEF0dHJpYnV0ZShcImhyZWZcIikmJnRhcmdldCE9PWRvY3VtZW50JiZ0YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSE9PVwiaHRtbFwiKXt0YXJnZXQ9dGFyZ2V0LnBhcmVudE5vZGU7YnJlYWtDdHIrK312YXIgZWxlbWVudFRhcmdldEF0dHI9dGFyZ2V0LmdldEF0dHJpYnV0ZShcInRhcmdldFwiKTtpZighZWxlbWVudFRhcmdldEF0dHJ8fGVsZW1lbnRUYXJnZXRBdHRyLmluZGV4T2YoXCJfYmxhbmtcIik9PT0tMSl7bG9jYXRpb249dGFyZ2V0LmdldEF0dHJpYnV0ZShcImhyZWZcIil9fWNhdGNoKGVycil7fWlmKCFwb3BNYWdpYy5pc1ZhbGlkSHJlZihsb2NhdGlvbikpe2xvY2F0aW9uPWZhbHNlfXJldHVybiBsb2NhdGlvbnx8d2luZG93LmxvY2F0aW9uLmhyZWZ9LGdldFB1SWQ6ZnVuY3Rpb24oKXtyZXR1cm5cIm9rX1wiK01hdGguZmxvb3IoODk5OTk5OTkqTWF0aC5yYW5kb20oKSsxZTcpfSxicm93c2VyRGV0ZWN0b3I6e2Jyb3dzZXJEZWZpbml0aW9uczpbW1wiZmlyZWZveFwiLFwvRmlyZWZveFxcXC8oWzAtOS5dKykoPzpcXHN8JClcL10sW1wib3BlcmFcIixcL09wZXJhXFxcLyhbMC05Ll0rKSg/Olxcc3wkKVwvXSxbXCJvcGVyYVwiLFwvT1BSXFxcLyhbMC05Ll0rKSg6P1xcc3wkKSRcL10sW1wiZWRnZVwiLFwvRWRnKD86ZXwpXFxcLyhbMC05Ll9dKylcL10sW1wiaWVcIixcL1RyaWRlbnRcXFwvN1xcLjAuKnJ2OihbMC05Ll0rKVxcKS4qR2Vja28kXC9dLFtcImllXCIsXC9NU0lFXFxzKFswLTkuXSspOy4qVHJpZGVudFxcXC9bNC03XS4wXC9dLFtcImllXCIsXC9NU0lFXFxzKDdcXC4wKVwvXSxbXCJzYWZhcmlcIixcL1ZlcnNpb25cXFwvKFswLTkuX10rKS4qU2FmYXJpXC9dLFtcImNocm9tZVwiLFwvKD8hQ2hyb20uKkVkZyg/OmV8KSlDaHJvbSg/OmV8aXVtKVxcXC8oWzAtOS5dKykoOj9cXHN8JClcL10sW1wiY2hyb21lXCIsXC8oPyFDaHJvbS4qT1BSKUNocm9tKD86ZXxpdW0pXFxcLyhbMC05Ll0rKSg6P1xcc3wkKVwvXSxbXCJiYjEwXCIsXC9CQjEwO1xcc1RvdWNoLipWZXJzaW9uXFxcLyhbMC05Ll0rKVwvXSxbXCJhbmRyb2lkXCIsXC9BbmRyb2lkXFxzKFswLTkuXSspXC9dLFtcImlvc1wiLFwvVmVyc2lvblxcXC8oWzAtOS5fXSspLipNb2JpbGUuKlNhZmFyaS4qXC9dLFtcInlhbmRleGJyb3dzZXJcIixcL1lhQnJvd3NlclxcXC8oWzAtOS5fXSspXC9dLFtcImNyaW9zXCIsXC9DcmlPU1xcXC8oWzAtOS5dKykoOj9cXHN8JClcL11dLGRldGVjdEJyb3dzZXI6ZnVuY3Rpb24odXNlckFnZW50KXt2YXIgaXNNb2JpbGU9dXNlckFnZW50Lm1hdGNoKFwvQW5kcm9pZHxCbGFja0JlcnJ5fGlQaG9uZXxpUGFkfGlQb2R8T3BlcmEgTWluaXxJRU1vYmlsZXxXZWJPU3xXaW5kb3dzIFBob25lXC9pKTtmb3IodmFyIGkgaW4gdGhpcy5icm93c2VyRGVmaW5pdGlvbnMpe3ZhciBkZWZpbml0aW9uPXRoaXMuYnJvd3NlckRlZmluaXRpb25zW2ldO2lmKGRlZmluaXRpb25bMV0udGVzdCh1c2VyQWdlbnQpKXt2YXIgbWF0Y2g9ZGVmaW5pdGlvblsxXS5leGVjKHVzZXJBZ2VudCk7dmFyIHZlcnNpb249bWF0Y2gmJm1hdGNoWzFdLnNwbGl0KFwvWy5fXVwvKS5zbGljZSgwLDMpO3ZhciB2ZXJzaW9uVGFpbHM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodmVyc2lvbiwxKS5qb2luKFwiXCIpfHxcIjBcIjtpZih2ZXJzaW9uJiZ2ZXJzaW9uLmxlbmd0aDwzKXtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh2ZXJzaW9uLHZlcnNpb24ubGVuZ3RoPT09MT9bMCwwXTpbMF0pfXJldHVybntuYW1lOmRlZmluaXRpb25bMF0sdmVyc2lvbjp2ZXJzaW9uLmpvaW4oXCIuXCIpLHZlcnNpb25OdW1iZXI6cGFyc2VGbG9hdCh2ZXJzaW9uWzBdK1wiLlwiK3ZlcnNpb25UYWlscyksaXNNb2JpbGU6aXNNb2JpbGV9fX1yZXR1cm57bmFtZTpcIm90aGVyXCIsdmVyc2lvbjpcIjEuMFwiLHZlcnNpb25OdW1iZXI6MSxpc01vYmlsZTppc01vYmlsZX19fSxtZXRob2RzOntkZWZhdWx0OmZ1bmN0aW9uKHRyaWdnZXJlZEV2ZW50KXtpZighcG9wTWFnaWMuc2hvdWxkU2hvdygpfHwhcG9wTWFnaWMudmVub3JTaG91bGRTaG93KCl8fCFwb3BNYWdpYy5pc1ZhbGlkVXNlckV2ZW50KHRyaWdnZXJlZEV2ZW50KSlyZXR1cm4gdHJ1ZTt2YXIgY2xpY2tlZEVsZW1lbnQ9dHJpZ2dlcmVkRXZlbnQudGFyZ2V0fHx0cmlnZ2VyZWRFdmVudC5zcmNFbGVtZW50O3ZhciBocmVmPXBvcE1hZ2ljLmZpbmRMaW5rVG9PcGVuKGNsaWNrZWRFbGVtZW50KTt3aW5kb3cub3BlbihocmVmLFwiX2JsYW5rXCIpO3BvcE1hZ2ljLnNldEFzT3BlbmVkKCk7cG9wTWFnaWMudG9wLmRvY3VtZW50LmxvY2F0aW9uPXBvcE1hZ2ljLnVybDtpZih0eXBlb2YgdHJpZ2dlcmVkRXZlbnQucHJldmVudERlZmF1bHQhPT1cInVuZGVmaW5lZFwiKXt0cmlnZ2VyZWRFdmVudC5wcmV2ZW50RGVmYXVsdCgpO3RyaWdnZXJlZEV2ZW50LnN0b3BQcm9wYWdhdGlvbigpfXJldHVybiB0cnVlfSxjaHJvbWVUYWI6ZnVuY3Rpb24oZXZlbnQpe2lmKCFwb3BNYWdpYy5zaG91bGRTaG93KCl8fCFwb3BNYWdpYy52ZW5vclNob3VsZFNob3coKXx8IXBvcE1hZ2ljLmlzVmFsaWRVc2VyRXZlbnQoZXZlbnQpKXJldHVybiB0cnVlO2lmKHR5cGVvZiBldmVudC5wcmV2ZW50RGVmYXVsdCE9PVwidW5kZWZpbmVkXCIpe2V2ZW50LnByZXZlbnREZWZhdWx0KCk7ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCl9ZWxzZXtyZXR1cm4gdHJ1ZX12YXIgYT10b3Aud2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO3ZhciB0YXJnZXQ9ZXZlbnQudGFyZ2V0fHxldmVudC5zcmNFbGVtZW50O2EuaHJlZj1wb3BNYWdpYy5maW5kTGlua1RvT3Blbih0YXJnZXQpO2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiYm9keVwiKVswXS5hcHBlbmRDaGlsZChhKTt2YXIgZT1uZXcgTW91c2VFdmVudChcImNsaWNrXCIse2J1YmJsZXM6dHJ1ZSxjYW5jZWxhYmxlOnRydWUsdmlldzp3aW5kb3csc2NyZWVuWDowLHNjcmVlblk6MCxjbGllbnRYOjAsY2xpZW50WTowLGN0cmxLZXk6dHJ1ZSxhbHRLZXk6ZmFsc2Usc2hpZnRLZXk6ZmFsc2UsbWV0YUtleTp0cnVlLGJ1dHRvbjowfSk7ZS5wcmV2ZW50RGVmYXVsdD11bmRlZmluZWQ7YS5kaXNwYXRjaEV2ZW50KGUpO2EucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKTt3aW5kb3cub3Blbihwb3BNYWdpYy51cmwsXCJfc2VsZlwiKTtwb3BNYWdpYy5zZXRBc09wZW5lZCgpfSxwb3B1cDpmdW5jdGlvbih0cmlnZ2VyZWRFdmVudCl7aWYoIXBvcE1hZ2ljLnNob3VsZFNob3coKXx8IXBvcE1hZ2ljLnZlbm9yU2hvdWxkU2hvdygpfHwhcG9wTWFnaWMuaXNWYWxpZFVzZXJFdmVudCh0cmlnZ2VyZWRFdmVudCkpcmV0dXJuIHRydWU7dmFyIHdpbk9wdGlvbnM9XCJcIjtpZihwb3BNYWdpYy5jb25maWcucG9wdXBfZmFsbGJhY2smJiFwb3BNYWdpYy5jb25maWcucG9wdXBfZm9yY2Upe3ZhciBoZWlnaHQ9TWF0aC5tYXgoTWF0aC5yb3VuZCh3aW5kb3cuaW5uZXJIZWlnaHQqLjgpLDMwMCk7dmFyIHdpZHRoPU1hdGgubWF4KE1hdGgucm91bmQod2luZG93LmlubmVyV2lkdGgqLjcpLDMwMCk7dmFyIHRvcD13aW5kb3cuc2NyZWVuWSsxMDA7dmFyIGxlZnQ9d2luZG93LnNjcmVlblgrMTAwO3dpbk9wdGlvbnM9XCJtZW51YmFyPTEscmVzaXphYmxlPTEsd2lkdGg9XCIrd2lkdGgrXCIsaGVpZ2h0PVwiK2hlaWdodCtcIix0b3A9XCIrdG9wK1wiLGxlZnQ9XCIrbGVmdH12YXIgcHJlUG9wVXJsPWRvY3VtZW50LmxvY2F0aW9uLmhyZWY7dmFyIHBvcFdpbj13aW5kb3cub3BlbihwcmVQb3BVcmwscG9wTWFnaWMuZ2V0UHVJZCgpLHdpbk9wdGlvbnMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtwb3BXaW4ubG9jYXRpb24uaHJlZj1wb3BNYWdpYy51cmx9LDIwMCk7cG9wTWFnaWMuc2V0QXNPcGVuZWQoKTtpZih0eXBlb2YgdHJpZ2dlcmVkRXZlbnQucHJldmVudERlZmF1bHQhPT1cInVuZGVmaW5lZFwiKXt0cmlnZ2VyZWRFdmVudC5wcmV2ZW50RGVmYXVsdCgpO3RyaWdnZXJlZEV2ZW50LnN0b3BQcm9wYWdhdGlvbigpfX19fTsgICAgcG9wTWFnaWMuaW5pdChhZENvbmZpZyk7XHJcbn0pKCk7XHJcblxyXG5cclxuPFwvc2NyaXB0PiJ9LHsiaWQiOiJleG9tX2pfUE9QVU5ERVIiLCJhZHNwb3QiOiJqX1BPUFVOREVSIiwid2VpZ2h0IjoiNiIsImZjYXAiOiIyIiwic2NoZWR1bGUiOmZhbHNlLCJtYXhXaWR0aCI6Ijc2OCIsIm1pbldpZHRoIjpmYWxzZSwidGltZXpvbmUiOmZhbHNlLCJleGNsdWRlIjpmYWxzZSwiZG9tYWluIjpmYWxzZSwiY29kZSI6IjxzY3JpcHQgc3JjPVwiXC9cL3N5bmRpY2F0aW9uLmV4b2NsaWNrLmNvbVwvc3BsYXNoLnBocD9pZHpvbmU9MTAyNjMxMiZ0eXBlPTExXCI+PFwvc2NyaXB0PlxyXG48c2NyaXB0PlxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtcclxuICAgIGlmICh0eXBlb2YgZXhvVXJsICE9IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgICBleG9VcmwgPSBleG9VcmwucmVwbGFjZSgnaHR0cDpcL1wvJywgJ2h0dHBzOlwvXC8nKTtcclxuICAgIH1cclxuICAgICQoXCJhXCIpLmJpbmQoXCJjbGlja1wiLCBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICAgIGV4b01vYmlsZVBvcCgpO1xyXG4gICAgICAgICQodGhpcykudW5iaW5kKFwiY2xpY2tcIik7XHJcbiAgICB9KTtcclxufSk7XHJcbjxcL3NjcmlwdD4ifSx7ImlkIjoiamF2dV9qX1BPUFVOREVSIiwiYWRzcG90Ijoial9QT1BVTkRFUiIsIndlaWdodCI6IjQiLCJmY2FwIjoiMSIsInNjaGVkdWxlIjpmYWxzZSwibWF4V2lkdGgiOmZhbHNlLCJtaW5XaWR0aCI6ZmFsc2UsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0PlxyXG4kKGRvY3VtZW50LmJvZHkpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24oZXZlbnQpIHtcclxuICB3aW5kb3cub3BlbihcImh0dHBzOlwvXC90ZWxsbWUucHdcL2dvXC9qYXZ1XCIpO1xyXG4gICQodGhpcykub2ZmKFwiY2xpY2tcIik7XHJcbn0pO1xyXG48XC9zY3JpcHQ+In1d