israeli-bank-scrapers 4.5.0 → 4.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- Israeli Bank Scrapers - Get closer to your own data
1
+ Israeli Bank Scrapers - Get closer to your own data!
2
2
  ========
3
3
  <img src="./logo.png" width="100" height="100" alt="Logo" align="left" />
4
4
 
@@ -20,7 +20,7 @@ const LONG_DATE_FORMAT = 'DD/MM/YYYY';
20
20
  const DATE_FORMAT = 'DD/MM/YY';
21
21
  function getPossibleLoginResults(page) {
22
22
  const urls = {};
23
- urls[_baseScraperWithBrowser.LoginResults.Success] = [`${BASE_URL}/wps/myportal/FibiMenu/Online`];
23
+ urls[_baseScraperWithBrowser.LoginResults.Success] = [new RegExp(`^${BASE_URL.replace('.', '\\.')}/wps/myportal/FibiMenu/Online`)];
24
24
  urls[_baseScraperWithBrowser.LoginResults.InvalidPassword] = [() => (0, _elementsInteractions.elementPresentOnPage)(page, '#validationMsg')];
25
25
  // TODO: support change password
26
26
  /* urls[LOGIN_RESULT.CHANGE_PASSWORD] = [``]; */
@@ -189,4 +189,4 @@ class OtsarHahayalScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser
189
189
  }
190
190
  var _default = OtsarHahayalScraper;
191
191
  exports.default = _default;
192
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfYmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsIl9uYXZpZ2F0aW9uIiwiX2VsZW1lbnRzSW50ZXJhY3Rpb25zIiwiX2NvbnN0YW50cyIsIl90cmFuc2FjdGlvbnMiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkJBU0VfVVJMIiwiTE9OR19EQVRFX0ZPUk1BVCIsIkRBVEVfRk9STUFUIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJwYWdlIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJlbGVtZW50UHJlc2VudE9uUGFnZSIsImdldFRyYW5zYWN0aW9uc1VybCIsImNyZWF0ZUxvZ2luRmllbGRzIiwiY3JlZGVudGlhbHMiLCJzZWxlY3RvciIsInZhbHVlIiwidXNlcm5hbWUiLCJwYXNzd29yZCIsImdldEFtb3VudERhdGEiLCJhbW91bnRTdHIiLCJoYXNDdXJyZW5jeSIsImFtb3VudFN0ckNsbiIsInJlcGxhY2UiLCJjdXJyZW5jeSIsImFtb3VudCIsInBhcnNlRmxvYXQiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJpbmNsdWRlcyIsIlNIRUtFTF9DVVJSRU5DWV9TWU1CT0wiLCJwYXJ0cyIsInNwbGl0IiwiY29udmVydFRyYW5zYWN0aW9ucyIsInR4bnMiLCJtYXAiLCJ0eG4iLCJkYXRlRm9ybWF0IiwiZGF0ZSIsImxlbmd0aCIsIkVycm9yIiwidHhuRGF0ZSIsIm1vbWVudCIsInRvSVNPU3RyaW5nIiwiY3JlZGl0IiwiZGViaXQiLCJOdW1iZXIiLCJpc05hTiIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsImlkZW50aWZpZXIiLCJyZWZlcmVuY2UiLCJwYXJzZUludCIsInVuZGVmaW5lZCIsInByb2Nlc3NlZERhdGUiLCJvcmlnaW5hbEFtb3VudCIsIm9yaWdpbmFsQ3VycmVuY3kiLCJjaGFyZ2VkQW1vdW50IiwiZGVzY3JpcHRpb24iLCJtZW1vIiwicGFyc2VUcmFuc2FjdGlvblBhZ2UiLCJ0ZHNWYWx1ZXMiLCJwYWdlRXZhbEFsbCIsInRycyIsImVsIiwicXVlcnlTZWxlY3RvciIsImlubmVyVGV4dCIsImJhbGFuY2UiLCJnZXRBY2NvdW50U3VtbWFyeSIsImJhbGFuY2VFbG0iLCIkIiwiYmFsYW5jZUlubmVyVGV4dEVsbSIsImdldFByb3BlcnR5IiwiYmFsYW5jZVRleHQiLCJqc29uVmFsdWUiLCJiYWxhbmNlVmFsdWUiLCJjcmVkaXRMaW1pdCIsImNyZWRpdFV0aWxpemF0aW9uIiwiYmFsYW5jZUN1cnJlbmN5IiwiZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50Iiwic3RhcnREYXRlIiwic3VtbWFyeSIsIndhaXRVbnRpbEVsZW1lbnRGb3VuZCIsImJyYW5jaE51bSIsIiRldmFsIiwic3BhbiIsImFjY291bnRObWJyIiwiYWNjb3VudE51bWJlciIsImNsaWNrQnV0dG9uIiwiZmlsbElucHV0IiwiZm9ybWF0Iiwid2FpdEZvck5hdmlnYXRpb24iLCJoYXNOZXh0UGFnZSIsIm5vVHJhbnNhY3Rpb25FbG0iLCJwYWdlVHhucyIsImNvbmNhdCIsImJ1dHRvbiIsInNsaWNlIiwiZmV0Y2hUcmFuc2FjdGlvbnMiLCJ3YWl0Rm9yUG9zdExvZ2luIiwiUHJvbWlzZSIsInJhY2UiLCJPdHNhckhhaGF5YWxTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJ3YWl0Rm9yVGltZW91dCIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsImFkZCIsIm9wdGlvbnMiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1heCIsInVybCIsIm5hdmlnYXRlVG8iLCJhY2NvdW50cyIsInN1Y2Nlc3MiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyYXBlcnMvb3RzYXItaGFoYXlhbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgUG9zc2libGVMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgd2FpdEZvck5hdmlnYXRpb24gfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHtcbiAgZmlsbElucHV0LFxuICBjbGlja0J1dHRvbixcbiAgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxuICBwYWdlRXZhbEFsbCxcbiAgZWxlbWVudFByZXNlbnRPblBhZ2UsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSwgU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5cbmNvbnN0IEJBU0VfVVJMID0gJ2h0dHBzOi8vb25saW5lLmJhbmtvdHNhci5jby5pbCc7XG5jb25zdCBMT05HX0RBVEVfRk9STUFUID0gJ0REL01NL1lZWVknO1xuY29uc3QgREFURV9GT1JNQVQgPSAnREQvTU0vWVknO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgYmFsYW5jZT86IHN0cmluZztcbiAgZGViaXQ/OiBzdHJpbmc7XG4gIGNyZWRpdD86IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgc3RhdHVzPzogc3RyaW5nO1xuICByZWZlcmVuY2U/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkYXRlOiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3QgdXJsczogUG9zc2libGVMb2dpblJlc3VsdHMgPSB7fTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuU3VjY2Vzc10gPSBbYCR7QkFTRV9VUkx9L3dwcy9teXBvcnRhbC9GaWJpTWVudS9PbmxpbmVgXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFsoKSA9PiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCAnI3ZhbGlkYXRpb25Nc2cnKV07XG4gIC8vIFRPRE86IHN1cHBvcnQgY2hhbmdlIHBhc3N3b3JkXG4gIC8qIHVybHNbTE9HSU5fUkVTVUxULkNIQU5HRV9QQVNTV09SRF0gPSBbYGBdOyAqL1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25zVXJsKCkge1xuICByZXR1cm4gYCR7QkFTRV9VUkx9L3dwcy9teXBvcnRhbC9GaWJpTWVudS9PbmxpbmUvT25BY2NvdW50TW5nbWVudC9PbkJhbGFuY2VUcmFucy9Qcml2YXRlQWNjb3VudEZsb3dgO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnI3VzZXJuYW1lJywgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgeyBzZWxlY3RvcjogJyNwYXNzd29yZCcsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5mdW5jdGlvbiBnZXRBbW91bnREYXRhKGFtb3VudFN0cjogc3RyaW5nLCBoYXNDdXJyZW5jeSA9IGZhbHNlKSB7XG4gIGNvbnN0IGFtb3VudFN0ckNsbiA9IGFtb3VudFN0ci5yZXBsYWNlKCcsJywgJycpO1xuICBsZXQgY3VycmVuY3k6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBsZXQgYW1vdW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgaWYgKCFoYXNDdXJyZW5jeSkge1xuICAgIGFtb3VudCA9IHBhcnNlRmxvYXQoYW1vdW50U3RyQ2xuKTtcbiAgICBjdXJyZW5jeSA9IFNIRUtFTF9DVVJSRU5DWTtcbiAgfSBlbHNlIGlmIChhbW91bnRTdHJDbG4uaW5jbHVkZXMoU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSBwYXJzZUZsb2F0KGFtb3VudFN0ckNsbi5yZXBsYWNlKFNIRUtFTF9DVVJSRU5DWV9TWU1CT0wsICcnKSk7XG4gICAgY3VycmVuY3kgPSBTSEVLRUxfQ1VSUkVOQ1k7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcGFydHMgPSBhbW91bnRTdHJDbG4uc3BsaXQoJyAnKTtcbiAgICBhbW91bnQgPSBwYXJzZUZsb2F0KHBhcnRzWzBdKTtcbiAgICBbLCBjdXJyZW5jeV0gPSBwYXJ0cztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYW1vdW50LFxuICAgIGN1cnJlbmN5LFxuICB9O1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSB7XG4gIHJldHVybiB0eG5zLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3QgZGF0ZUZvcm1hdCA9XG4gICAgICAgIHR4bi5kYXRlLmxlbmd0aCA9PT0gOCA/XG4gICAgICAgICAgREFURV9GT1JNQVQgOlxuICAgICAgICAgIHR4bi5kYXRlLmxlbmd0aCA9PT0gMTAgP1xuICAgICAgICAgICAgTE9OR19EQVRFX0ZPUk1BVCA6XG4gICAgICAgICAgICBudWxsO1xuICAgIGlmICghZGF0ZUZvcm1hdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGRhdGUgZm9ybWF0Jyk7XG4gICAgfVxuICAgIGNvbnN0IHR4bkRhdGUgPSBtb21lbnQodHhuLmRhdGUsIGRhdGVGb3JtYXQpLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgY3JlZGl0ID0gZ2V0QW1vdW50RGF0YSh0eG4uY3JlZGl0IHx8ICcnKS5hbW91bnQ7XG4gICAgY29uc3QgZGViaXQgPSBnZXRBbW91bnREYXRhKHR4bi5kZWJpdCB8fCAnJykuYW1vdW50O1xuICAgIGNvbnN0IGFtb3VudCA9IChOdW1iZXIuaXNOYU4oY3JlZGl0KSA/IDAgOiBjcmVkaXQpIC0gKE51bWJlci5pc05hTihkZWJpdCkgPyAwIDogZGViaXQpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbiA9IHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgICAgIGlkZW50aWZpZXI6IHR4bi5yZWZlcmVuY2UgPyBwYXJzZUludCh0eG4ucmVmZXJlbmNlLCAxMCkgOiB1bmRlZmluZWQsXG4gICAgICBkYXRlOiB0eG5EYXRlLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogdHhuRGF0ZSxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiBhbW91bnQsXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiBTSEVLRUxfQ1VSUkVOQ1ksXG4gICAgICBjaGFyZ2VkQW1vdW50OiBhbW91bnQsXG4gICAgICBkZXNjcmlwdGlvbjogdHhuLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgbWVtbzogJycsXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwYXJzZVRyYW5zYWN0aW9uUGFnZShwYWdlOiBQYWdlKTogUHJvbWlzZTxTY3JhcGVkVHJhbnNhY3Rpb25bXT4ge1xuICBjb25zdCB0ZHNWYWx1ZXMgPSBhd2FpdCBwYWdlRXZhbEFsbChwYWdlLCAnI2RhdGFUYWJsZTA3NyB0Ym9keSB0cicsIFtdLCAodHJzKSA9PiB7XG4gICAgcmV0dXJuICh0cnMpLm1hcCgoZWwpID0+ICh7XG4gICAgICBkYXRlOiAoZWwucXVlcnlTZWxlY3RvcignLmRhdGUnKSBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0LFxuICAgICAgLy8gcmVmZXJlbmNlIGFuZCBkZXNjcmlwdGlvbiBoYXZlIHZpY2UtdmVyc2EgY2xhc3MgbmFtZVxuICAgICAgZGVzY3JpcHRpb246IChlbC5xdWVyeVNlbGVjdG9yKCcucmVmZXJlbmNlJykgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dCxcbiAgICAgIHJlZmVyZW5jZTogKGVsLnF1ZXJ5U2VsZWN0b3IoJy5kZXRhaWxzJykgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dCxcbiAgICAgIGNyZWRpdDogKGVsLnF1ZXJ5U2VsZWN0b3IoJy5jcmVkaXQnKSBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0LFxuICAgICAgZGViaXQ6IChlbC5xdWVyeVNlbGVjdG9yKCcuZGViaXQnKSBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0LFxuICAgICAgYmFsYW5jZTogKGVsLnF1ZXJ5U2VsZWN0b3IoJy5iYWxhbmNlJykgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dCxcbiAgICB9KSk7XG4gIH0pO1xuXG4gIHJldHVybiB0ZHNWYWx1ZXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFjY291bnRTdW1tYXJ5KHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3QgYmFsYW5jZUVsbSA9IGF3YWl0IHBhZ2UuJCgnLmN1cnJlbnRfYmFsYW5jZScpO1xuICBjb25zdCBiYWxhbmNlSW5uZXJUZXh0RWxtID0gYXdhaXQgYmFsYW5jZUVsbSEuZ2V0UHJvcGVydHkoJ2lubmVyVGV4dCcpO1xuICBjb25zdCBiYWxhbmNlVGV4dCA9IGF3YWl0IGJhbGFuY2VJbm5lclRleHRFbG0uanNvblZhbHVlKCk7XG4gIGNvbnN0IGJhbGFuY2VWYWx1ZSA9IGdldEFtb3VudERhdGEoYmFsYW5jZVRleHQgYXMgc3RyaW5nLCB0cnVlKTtcbiAgLy8gVE9ETzogRmluZCB0aGUgY3JlZGl0IGZpZWxkIGluIGJhbmsgd2Vic2l0ZSAoY291bGQgc2VlIGl0IGluIG15IGFjY291bnQpXG4gIHJldHVybiB7XG4gICAgYmFsYW5jZTogTnVtYmVyLmlzTmFOKGJhbGFuY2VWYWx1ZS5hbW91bnQpID8gMCA6IGJhbGFuY2VWYWx1ZS5hbW91bnQsXG4gICAgY3JlZGl0TGltaXQ6IDAuMCxcbiAgICBjcmVkaXRVdGlsaXphdGlvbjogMC4wLFxuICAgIGJhbGFuY2VDdXJyZW5jeTogYmFsYW5jZVZhbHVlLmN1cnJlbmN5LFxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpIHtcbiAgY29uc3Qgc3VtbWFyeSA9IGF3YWl0IGdldEFjY291bnRTdW1tYXJ5KHBhZ2UpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2lucHV0I2Zyb21EYXRlJyk7XG4gIC8vIEdldCBhY2NvdW50IG51bWJlclxuICBjb25zdCBicmFuY2hOdW0gPSBhd2FpdCBwYWdlLiRldmFsKCcuYnJhbmNoX251bScsIChzcGFuKSA9PiB7XG4gICAgcmV0dXJuIChzcGFuIGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQ7XG4gIH0pO1xuXG4gIGNvbnN0IGFjY291bnRObWJyID0gYXdhaXQgcGFnZS4kZXZhbCgnLmFjY19udW0nLCAoc3BhbikgPT4ge1xuICAgIHJldHVybiAoc3BhbiBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0O1xuICB9KTtcbiAgY29uc3QgYWNjb3VudE51bWJlciA9IGAxNC0ke2JyYW5jaE51bX0tJHthY2NvdW50Tm1icn1gO1xuICAvLyBTZWFyY2ggZm9yIHJlbGF2YW50IHRyYW5zYWN0aW9uIGZyb20gc3RhcnREYXRlXG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsICcjdGFiSGVhZGVyNCcpO1xuICBhd2FpdCBmaWxsSW5wdXQoXG4gICAgcGFnZSxcbiAgICAnaW5wdXQjZnJvbURhdGUnLFxuICAgIHN0YXJ0RGF0ZS5mb3JtYXQoJ0REL01NL1lZWVknKSxcbiAgKTtcblxuICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCAnI2ZpYmlfdGFiX2RhdGVzIC5maWJpX2J0bjpudGgtY2hpbGQoMiknKTtcbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAndGFibGUjZGF0YVRhYmxlMDc3LCAjTk9fREFUQTA3NycpO1xuICBsZXQgaGFzTmV4dFBhZ2UgPSB0cnVlO1xuICBsZXQgdHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10gPSBbXTtcblxuICBjb25zdCBub1RyYW5zYWN0aW9uRWxtID0gYXdhaXQgcGFnZS4kKCcjTk9fREFUQTA3NycpO1xuICBpZiAobm9UcmFuc2FjdGlvbkVsbSA9PSBudWxsKSB7XG4gICAgLy8gU2NhcGUgdHJhbnNhY3Rpb25zICh0aGlzIG1heWJlIHNwYW5uZWQgb24gbXVsdGlwbGUgcGFnZXMpXG4gICAgd2hpbGUgKGhhc05leHRQYWdlKSB7XG4gICAgICBjb25zdCBwYWdlVHhucyA9IGF3YWl0IHBhcnNlVHJhbnNhY3Rpb25QYWdlKHBhZ2UpO1xuICAgICAgdHhucyA9IHR4bnMuY29uY2F0KHBhZ2VUeG5zKTtcbiAgICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IHBhZ2UuJCgnI05wYWdlJyk7XG4gICAgICBoYXNOZXh0UGFnZSA9IGZhbHNlO1xuICAgICAgaWYgKGJ1dHRvbiAhPSBudWxsKSB7XG4gICAgICAgIGhhc05leHRQYWdlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChoYXNOZXh0UGFnZSkge1xuICAgICAgICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCAnI05wYWdlJyk7XG4gICAgICAgIGF3YWl0IHdhaXRGb3JOYXZpZ2F0aW9uKHBhZ2UpO1xuICAgICAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ3RhYmxlI2RhdGFUYWJsZTA3NycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWNjb3VudE51bWJlcixcbiAgICBzdW1tYXJ5LFxuICAgIHR4bnM6IGNvbnZlcnRUcmFuc2FjdGlvbnModHhucy5zbGljZSgxKSksIC8vIFJlbW92ZSBmaXJzdCBsaW5lIHdoaWNoIGlzIFwib3BlbmluZyBiYWxhbmNlXCJcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpIHtcbiAgLy8gVE9ETyBuZWVkIHRvIGV4dGVuZCB0byBzdXBwb3J0IG11bHRpcGxlIGFjY291bnRzIGFuZCBmb3JlaWduIGFjY291bnRzXG4gIHJldHVybiBbYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50KHBhZ2UsIHN0YXJ0RGF0ZSldO1xufVxuXG5hc3luYyBmdW5jdGlvbiB3YWl0Rm9yUG9zdExvZ2luKHBhZ2U6IFBhZ2UpIHtcbiAgLy8gVE9ETyBjaGVjayBmb3IgY29uZGl0aW9uIHRvIHByb3ZpZGUgbmV3IHBhc3N3b3JkXG4gIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnZGl2LmxvdHVzRnJhbWUnLCB0cnVlKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyN2YWxpZGF0aW9uTXNnJyksXG4gIF0pO1xufVxuXG50eXBlIFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzID0geyB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nIH07XG5cbmNsYXNzIE90c2FySGFoYXlhbFNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyPFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzPiB7XG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IGAke0JBU0VfVVJMfS9NYXRhZkxvZ2luU2VydmljZS9NYXRhZkxvZ2luU2VydmxldD9iYW5rSWQ9T1RTQVJQUlRBTCZzaXRlPVByaXZhdGUmS09EU0FGQT1IRWAsXG4gICAgICBmaWVsZHM6IGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzKSxcbiAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMucGFnZS53YWl0Rm9yVGltZW91dCgxMDAwKTtcbiAgICAgICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnI2NvbnRpbnVlQnRuJyk7XG4gICAgICB9LFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4gd2FpdEZvclBvc3RMb2dpbih0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyh0aGlzLnBhZ2UpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgICBjb25zdCB1cmwgPSBnZXRUcmFuc2FjdGlvbnNVcmwoKTtcbiAgICBhd2FpdCB0aGlzLm5hdmlnYXRlVG8odXJsKTtcblxuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnModGhpcy5wYWdlLCBzdGFydE1vbWVudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgT3RzYXJIYWhheWFsU2NyYXBlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLHVCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxxQkFBQSxHQUFBSCxPQUFBO0FBT0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssYUFBQSxHQUFBTCxPQUFBO0FBQXFGLFNBQUFELHVCQUFBTyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBRXJGLE1BQU1HLFFBQVEsR0FBRyxnQ0FBZ0M7QUFDakQsTUFBTUMsZ0JBQWdCLEdBQUcsWUFBWTtBQUNyQyxNQUFNQyxXQUFXLEdBQUcsVUFBVTtBQWE5QixTQUFTQyx1QkFBdUJBLENBQUNDLElBQVUsRUFBRTtFQUMzQyxNQUFNQyxJQUEwQixHQUFHLENBQUMsQ0FBQztFQUNyQ0EsSUFBSSxDQUFDQyxvQ0FBWSxDQUFDQyxPQUFPLENBQUMsR0FBRyxDQUFFLEdBQUVQLFFBQVMsK0JBQThCLENBQUM7RUFDekVLLElBQUksQ0FBQ0Msb0NBQVksQ0FBQ0UsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUFDLDBDQUFvQixFQUFDTCxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztFQUN6RjtFQUNBO0VBQ0EsT0FBT0MsSUFBSTtBQUNiO0FBRUEsU0FBU0ssa0JBQWtCQSxDQUFBLEVBQUc7RUFDNUIsT0FBUSxHQUFFVixRQUFTLGtGQUFpRjtBQUN0RztBQUVBLFNBQVNXLGlCQUFpQkEsQ0FBQ0MsV0FBdUMsRUFBRTtFQUNsRSxPQUFPLENBQ0w7SUFBRUMsUUFBUSxFQUFFLFdBQVc7SUFBRUMsS0FBSyxFQUFFRixXQUFXLENBQUNHO0VBQVMsQ0FBQyxFQUN0RDtJ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
192
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfYmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsIl9uYXZpZ2F0aW9uIiwiX2VsZW1lbnRzSW50ZXJhY3Rpb25zIiwiX2NvbnN0YW50cyIsIl90cmFuc2FjdGlvbnMiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkJBU0VfVVJMIiwiTE9OR19EQVRFX0ZPUk1BVCIsIkRBVEVfRk9STUFUIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJwYWdlIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJSZWdFeHAiLCJyZXBsYWNlIiwiSW52YWxpZFBhc3N3b3JkIiwiZWxlbWVudFByZXNlbnRPblBhZ2UiLCJnZXRUcmFuc2FjdGlvbnNVcmwiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJnZXRBbW91bnREYXRhIiwiYW1vdW50U3RyIiwiaGFzQ3VycmVuY3kiLCJhbW91bnRTdHJDbG4iLCJjdXJyZW5jeSIsImFtb3VudCIsInBhcnNlRmxvYXQiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJpbmNsdWRlcyIsIlNIRUtFTF9DVVJSRU5DWV9TWU1CT0wiLCJwYXJ0cyIsInNwbGl0IiwiY29udmVydFRyYW5zYWN0aW9ucyIsInR4bnMiLCJtYXAiLCJ0eG4iLCJkYXRlRm9ybWF0IiwiZGF0ZSIsImxlbmd0aCIsIkVycm9yIiwidHhuRGF0ZSIsIm1vbWVudCIsInRvSVNPU3RyaW5nIiwiY3JlZGl0IiwiZGViaXQiLCJOdW1iZXIiLCJpc05hTiIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsImlkZW50aWZpZXIiLCJyZWZlcmVuY2UiLCJwYXJzZUludCIsInVuZGVmaW5lZCIsInByb2Nlc3NlZERhdGUiLCJvcmlnaW5hbEFtb3VudCIsIm9yaWdpbmFsQ3VycmVuY3kiLCJjaGFyZ2VkQW1vdW50IiwiZGVzY3JpcHRpb24iLCJtZW1vIiwicGFyc2VUcmFuc2FjdGlvblBhZ2UiLCJ0ZHNWYWx1ZXMiLCJwYWdlRXZhbEFsbCIsInRycyIsImVsIiwicXVlcnlTZWxlY3RvciIsImlubmVyVGV4dCIsImJhbGFuY2UiLCJnZXRBY2NvdW50U3VtbWFyeSIsImJhbGFuY2VFbG0iLCIkIiwiYmFsYW5jZUlubmVyVGV4dEVsbSIsImdldFByb3BlcnR5IiwiYmFsYW5jZVRleHQiLCJqc29uVmFsdWUiLCJiYWxhbmNlVmFsdWUiLCJjcmVkaXRMaW1pdCIsImNyZWRpdFV0aWxpemF0aW9uIiwiYmFsYW5jZUN1cnJlbmN5IiwiZmV0Y2hUcmFuc2FjdGlvbnNGb3JBY2NvdW50Iiwic3RhcnREYXRlIiwic3VtbWFyeSIsIndhaXRVbnRpbEVsZW1lbnRGb3VuZCIsImJyYW5jaE51bSIsIiRldmFsIiwic3BhbiIsImFjY291bnRObWJyIiwiYWNjb3VudE51bWJlciIsImNsaWNrQnV0dG9uIiwiZmlsbElucHV0IiwiZm9ybWF0Iiwid2FpdEZvck5hdmlnYXRpb24iLCJoYXNOZXh0UGFnZSIsIm5vVHJhbnNhY3Rpb25FbG0iLCJwYWdlVHhucyIsImNvbmNhdCIsImJ1dHRvbiIsInNsaWNlIiwiZmV0Y2hUcmFuc2FjdGlvbnMiLCJ3YWl0Rm9yUG9zdExvZ2luIiwiUHJvbWlzZSIsInJhY2UiLCJPdHNhckhhaGF5YWxTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJ3YWl0Rm9yVGltZW91dCIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsImFkZCIsIm9wdGlvbnMiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1heCIsInVybCIsIm5hdmlnYXRlVG8iLCJhY2NvdW50cyIsInN1Y2Nlc3MiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyYXBlcnMvb3RzYXItaGFoYXlhbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgUG9zc2libGVMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgd2FpdEZvck5hdmlnYXRpb24gfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHtcbiAgZmlsbElucHV0LFxuICBjbGlja0J1dHRvbixcbiAgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxuICBwYWdlRXZhbEFsbCxcbiAgZWxlbWVudFByZXNlbnRPblBhZ2UsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSwgU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5cbmNvbnN0IEJBU0VfVVJMID0gJ2h0dHBzOi8vb25saW5lLmJhbmtvdHNhci5jby5pbCc7XG5jb25zdCBMT05HX0RBVEVfRk9STUFUID0gJ0REL01NL1lZWVknO1xuY29uc3QgREFURV9GT1JNQVQgPSAnREQvTU0vWVknO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgYmFsYW5jZT86IHN0cmluZztcbiAgZGViaXQ/OiBzdHJpbmc7XG4gIGNyZWRpdD86IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgc3RhdHVzPzogc3RyaW5nO1xuICByZWZlcmVuY2U/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkYXRlOiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3QgdXJsczogUG9zc2libGVMb2dpblJlc3VsdHMgPSB7fTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuU3VjY2Vzc10gPSBbbmV3IFJlZ0V4cChgXiR7QkFTRV9VUkwucmVwbGFjZSgnLicsICdcXFxcLicpfS93cHMvbXlwb3J0YWwvRmliaU1lbnUvT25saW5lYCldO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdID0gWygpID0+IGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsICcjdmFsaWRhdGlvbk1zZycpXTtcbiAgLy8gVE9ETzogc3VwcG9ydCBjaGFuZ2UgcGFzc3dvcmRcbiAgLyogdXJsc1tMT0dJTl9SRVNVTFQuQ0hBTkdFX1BBU1NXT1JEXSA9IFtgYF07ICovXG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbnNVcmwoKSB7XG4gIHJldHVybiBgJHtCQVNFX1VSTH0vd3BzL215cG9ydGFsL0ZpYmlNZW51L09ubGluZS9PbkFjY291bnRNbmdtZW50L09uQmFsYW5jZVRyYW5zL1ByaXZhdGVBY2NvdW50Rmxvd2A7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICcjdXNlcm5hbWUnLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnI3Bhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcsIGhhc0N1cnJlbmN5ID0gZmFsc2UpIHtcbiAgY29uc3QgYW1vdW50U3RyQ2xuID0gYW1vdW50U3RyLnJlcGxhY2UoJywnLCAnJyk7XG4gIGxldCBjdXJyZW5jeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGxldCBhbW91bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBpZiAoIWhhc0N1cnJlbmN5KSB7XG4gICAgYW1vdW50ID0gcGFyc2VGbG9hdChhbW91bnRTdHJDbG4pO1xuICAgIGN1cnJlbmN5ID0gU0hFS0VMX0NVUlJFTkNZO1xuICB9IGVsc2UgaWYgKGFtb3VudFN0ckNsbi5pbmNsdWRlcyhTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MKSkge1xuICAgIGFtb3VudCA9IHBhcnNlRmxvYXQoYW1vdW50U3RyQ2xuLnJlcGxhY2UoU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IFNIRUtFTF9DVVJSRU5DWTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBwYXJ0cyA9IGFtb3VudFN0ckNsbi5zcGxpdCgnICcpO1xuICAgIGFtb3VudCA9IHBhcnNlRmxvYXQocGFydHNbMF0pO1xuICAgIFssIGN1cnJlbmN5XSA9IHBhcnRzO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhbW91bnQsXG4gICAgY3VycmVuY3ksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgcmV0dXJuIHR4bnMubWFwKCh0eG4pID0+IHtcbiAgICBjb25zdCBkYXRlRm9ybWF0ID1cbiAgICAgICAgdHhuLmRhdGUubGVuZ3RoID09PSA4ID9cbiAgICAgICAgICBEQVRFX0ZPUk1BVCA6XG4gICAgICAgICAgdHhuLmRhdGUubGVuZ3RoID09PSAxMCA/XG4gICAgICAgICAgICBMT05HX0RBVEVfRk9STUFUIDpcbiAgICAgICAgICAgIG51bGw7XG4gICAgaWYgKCFkYXRlRm9ybWF0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgZGF0ZSBmb3JtYXQnKTtcbiAgICB9XG4gICAgY29uc3QgdHhuRGF0ZSA9IG1vbWVudCh0eG4uZGF0ZSwgZGF0ZUZvcm1hdCkudG9JU09TdHJpbmcoKTtcbiAgICBjb25zdCBjcmVkaXQgPSBnZXRBbW91bnREYXRhKHR4bi5jcmVkaXQgfHwgJycpLmFtb3VudDtcbiAgICBjb25zdCBkZWJpdCA9IGdldEFtb3VudERhdGEodHhuLmRlYml0IHx8ICcnKS5hbW91bnQ7XG4gICAgY29uc3QgYW1vdW50ID0gKE51bWJlci5pc05hTihjcmVkaXQpID8gMCA6IGNyZWRpdCkgLSAoTnVtYmVyLmlzTmFOKGRlYml0KSA/IDAgOiBkZWJpdCk7XG5cbiAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uID0ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgICAgaWRlbnRpZmllcjogdHhuLnJlZmVyZW5jZSA/IHBhcnNlSW50KHR4bi5yZWZlcmVuY2UsIDEwKSA6IHVuZGVmaW5lZCxcbiAgICAgIGRhdGU6IHR4bkRhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiB0eG5EYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IGFtb3VudCxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGFtb3VudCxcbiAgICAgIGRlc2NyaXB0aW9uOiB0eG4uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICBtZW1vOiAnJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhcnNlVHJhbnNhY3Rpb25QYWdlKHBhZ2U6IFBhZ2UpOiBQcm9taXNlPFNjcmFwZWRUcmFuc2FjdGlvbltdPiB7XG4gIGNvbnN0IHRkc1ZhbHVlcyA9IGF3YWl0IHBhZ2VFdmFsQWxsKHBhZ2UsICcjZGF0YVRhYmxlMDc3IHRib2R5IHRyJywgW10sICh0cnMpID0+IHtcbiAgICByZXR1cm4gKHRycykubWFwKChlbCkgPT4gKHtcbiAgICAgIGRhdGU6IChlbC5xdWVyeVNlbGVjdG9yKCcuZGF0ZScpIGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQsXG4gICAgICAvLyByZWZlcmVuY2UgYW5kIGRlc2NyaXB0aW9uIGhhdmUgdmljZS12ZXJzYSBjbGFzcyBuYW1lXG4gICAgICBkZXNjcmlwdGlvbjogKGVsLnF1ZXJ5U2VsZWN0b3IoJy5yZWZlcmVuY2UnKSBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0LFxuICAgICAgcmVmZXJlbmNlOiAoZWwucXVlcnlTZWxlY3RvcignLmRldGFpbHMnKSBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0LFxuICAgICAgY3JlZGl0OiAoZWwucXVlcnlTZWxlY3RvcignLmNyZWRpdCcpIGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQsXG4gICAgICBkZWJpdDogKGVsLnF1ZXJ5U2VsZWN0b3IoJy5kZWJpdCcpIGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQsXG4gICAgICBiYWxhbmNlOiAoZWwucXVlcnlTZWxlY3RvcignLmJhbGFuY2UnKSBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0LFxuICAgIH0pKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHRkc1ZhbHVlcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWNjb3VudFN1bW1hcnkocGFnZTogUGFnZSkge1xuICBjb25zdCBiYWxhbmNlRWxtID0gYXdhaXQgcGFnZS4kKCcuY3VycmVudF9iYWxhbmNlJyk7XG4gIGNvbnN0IGJhbGFuY2VJbm5lclRleHRFbG0gPSBhd2FpdCBiYWxhbmNlRWxtIS5nZXRQcm9wZXJ0eSgnaW5uZXJUZXh0Jyk7XG4gIGNvbnN0IGJhbGFuY2VUZXh0ID0gYXdhaXQgYmFsYW5jZUlubmVyVGV4dEVsbS5qc29uVmFsdWUoKTtcbiAgY29uc3QgYmFsYW5jZVZhbHVlID0gZ2V0QW1vdW50RGF0YShiYWxhbmNlVGV4dCBhcyBzdHJpbmcsIHRydWUpO1xuICAvLyBUT0RPOiBGaW5kIHRoZSBjcmVkaXQgZmllbGQgaW4gYmFuayB3ZWJzaXRlIChjb3VsZCBzZWUgaXQgaW4gbXkgYWNjb3VudClcbiAgcmV0dXJuIHtcbiAgICBiYWxhbmNlOiBOdW1iZXIuaXNOYU4oYmFsYW5jZVZhbHVlLmFtb3VudCkgPyAwIDogYmFsYW5jZVZhbHVlLmFtb3VudCxcbiAgICBjcmVkaXRMaW1pdDogMC4wLFxuICAgIGNyZWRpdFV0aWxpemF0aW9uOiAwLjAsXG4gICAgYmFsYW5jZUN1cnJlbmN5OiBiYWxhbmNlVmFsdWUuY3VycmVuY3ksXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zRm9yQWNjb3VudChwYWdlOiBQYWdlLCBzdGFydERhdGU6IE1vbWVudCkge1xuICBjb25zdCBzdW1tYXJ5ID0gYXdhaXQgZ2V0QWNjb3VudFN1bW1hcnkocGFnZSk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnaW5wdXQjZnJvbURhdGUnKTtcbiAgLy8gR2V0IGFjY291bnQgbnVtYmVyXG4gIGNvbnN0IGJyYW5jaE51bSA9IGF3YWl0IHBhZ2UuJGV2YWwoJy5icmFuY2hfbnVtJywgKHNwYW4pID0+IHtcbiAgICByZXR1cm4gKHNwYW4gYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dDtcbiAgfSk7XG5cbiAgY29uc3QgYWNjb3VudE5tYnIgPSBhd2FpdCBwYWdlLiRldmFsKCcuYWNjX251bScsIChzcGFuKSA9PiB7XG4gICAgcmV0dXJuIChzcGFuIGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQ7XG4gIH0pO1xuICBjb25zdCBhY2NvdW50TnVtYmVyID0gYDE0LSR7YnJhbmNoTnVtfS0ke2FjY291bnRObWJyfWA7XG4gIC8vIFNlYXJjaCBmb3IgcmVsYXZhbnQgdHJhbnNhY3Rpb24gZnJvbSBzdGFydERhdGVcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgJyN0YWJIZWFkZXI0Jyk7XG4gIGF3YWl0IGZpbGxJbnB1dChcbiAgICBwYWdlLFxuICAgICdpbnB1dCNmcm9tRGF0ZScsXG4gICAgc3RhcnREYXRlLmZvcm1hdCgnREQvTU0vWVlZWScpLFxuICApO1xuXG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsICcjZmliaV90YWJfZGF0ZXMgLmZpYmlfYnRuOm50aC1jaGlsZCgyKScpO1xuICBhd2FpdCB3YWl0Rm9yTmF2aWdhdGlvbihwYWdlKTtcbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICd0YWJsZSNkYXRhVGFibGUwNzcsICNOT19EQVRBMDc3Jyk7XG4gIGxldCBoYXNOZXh0UGFnZSA9IHRydWU7XG4gIGxldCB0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSA9IFtdO1xuXG4gIGNvbnN0IG5vVHJhbnNhY3Rpb25FbG0gPSBhd2FpdCBwYWdlLiQoJyNOT19EQVRBMDc3Jyk7XG4gIGlmIChub1RyYW5zYWN0aW9uRWxtID09IG51bGwpIHtcbiAgICAvLyBTY2FwZSB0cmFuc2FjdGlvbnMgKHRoaXMgbWF5YmUgc3Bhbm5lZCBvbiBtdWx0aXBsZSBwYWdlcylcbiAgICB3aGlsZSAoaGFzTmV4dFBhZ2UpIHtcbiAgICAgIGNvbnN0IHBhZ2VUeG5zID0gYXdhaXQgcGFyc2VUcmFuc2FjdGlvblBhZ2UocGFnZSk7XG4gICAgICB0eG5zID0gdHhucy5jb25jYXQocGFnZVR4bnMpO1xuICAgICAgY29uc3QgYnV0dG9uID0gYXdhaXQgcGFnZS4kKCcjTnBhZ2UnKTtcbiAgICAgIGhhc05leHRQYWdlID0gZmFsc2U7XG4gICAgICBpZiAoYnV0dG9uICE9IG51bGwpIHtcbiAgICAgICAgaGFzTmV4dFBhZ2UgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGhhc05leHRQYWdlKSB7XG4gICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsICcjTnBhZ2UnKTtcbiAgICAgICAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG4gICAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAndGFibGUjZGF0YVRhYmxlMDc3Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhY2NvdW50TnVtYmVyLFxuICAgIHN1bW1hcnksXG4gICAgdHhuczogY29udmVydFRyYW5zYWN0aW9ucyh0eG5zLnNsaWNlKDEpKSwgLy8gUmVtb3ZlIGZpcnN0IGxpbmUgd2hpY2ggaXMgXCJvcGVuaW5nIGJhbGFuY2VcIlxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBzdGFydERhdGU6IE1vbWVudCkge1xuICAvLyBUT0RPIG5lZWQgdG8gZXh0ZW5kIHRvIHN1cHBvcnQgbXVsdGlwbGUgYWNjb3VudHMgYW5kIGZvcmVpZ24gYWNjb3VudHNcbiAgcmV0dXJuIFthd2FpdCBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQocGFnZSwgc3RhcnREYXRlKV07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JQb3N0TG9naW4ocGFnZTogUGFnZSkge1xuICAvLyBUT0RPIGNoZWNrIGZvciBjb25kaXRpb24gdG8gcHJvdmlkZSBuZXcgcGFzc3dvcmRcbiAgcmV0dXJuIFByb21pc2UucmFjZShbXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdkaXYubG90dXNGcmFtZScsIHRydWUpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnI3ZhbGlkYXRpb25Nc2cnKSxcbiAgXSk7XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcgfTtcblxuY2xhc3MgT3RzYXJIYWhheWFsU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXI8U2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHM+IHtcbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogYCR7QkFTRV9VUkx9L01hdGFmTG9naW5TZXJ2aWNlL01hdGFmTG9naW5TZXJ2bGV0P2JhbmtJZD1PVFNBUlBSVEFMJnNpdGU9UHJpdmF0ZSZLT0RTQUZBPUhFYCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6IGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wYWdlLndhaXRGb3JUaW1lb3V0KDEwMDApO1xuICAgICAgICBhd2FpdCBjbGlja0J1dHRvbih0aGlzLnBhZ2UsICcjY29udGludWVCdG4nKTtcbiAgICAgIH0sXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiB3YWl0Rm9yUG9zdExvZ2luKHRoaXMucGFnZSksXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHRoaXMucGFnZSksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKS5hZGQoMSwgJ2RheScpO1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMub3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcblxuICAgIGNvbnN0IHVybCA9IGdldFRyYW5zYWN0aW9uc1VybCgpO1xuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyh1cmwpO1xuXG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBmZXRjaFRyYW5zYWN0aW9ucyh0aGlzLnBhZ2UsIHN0YXJ0TW9tZW50KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBPdHNhckhhaGF5YWxTY3JhcGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsdUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFdBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLHFCQUFBLEdBQUFILE9BQUE7QUFPQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxhQUFBLEdBQUFMLE9BQUE7QUFBcUYsU0FBQUQsdUJBQUFPLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFFckYsTUFBTUcsUUFBUSxHQUFHLGdDQUFnQztBQUNqRCxNQUFNQyxnQkFBZ0IsR0FBRyxZQUFZO0FBQ3JDLE1BQU1DLFdBQVcsR0FBRyxVQUFVO0FBYTlCLFNBQVNDLHVCQUF1QkEsQ0FBQ0MsSUFBVSxFQUFFO0VBQzNDLE1BQU1DLElBQTBCLEdBQUcsQ0FBQyxDQUFDO0VBQ3JDQSxJQUFJLENBQUNDLG9DQUFZLENBQUNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSUMsTUFBTSxDQUFFLElBQUdSLFFBQVEsQ0FBQ1MsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUUsK0JBQThCLENBQUMsQ0FBQztFQUMxR0osSUFBSSxDQUFDQyxvQ0FBWSxDQUFDSSxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBQUMsMENBQW9CLEVBQUNQLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0VBQ3pGO0VBQ0E7RUFDQSxPQUFPQyxJQUFJO0FBQ2I7QUFFQSxTQUFTTyxrQkFBa0JBLENBQUEsRUFBRztFQUM1QixPQUFRLEdBQUVaLFFBQVMsa0ZBQWlGO0FBQ3RHO0FBRUEsU0FBU2EsaUJBQWlC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
@@ -35,7 +35,7 @@ async function getLoginFrame(page) {
35
35
  let frame = null;
36
36
  debug('wait until login frame found');
37
37
  await (0, _waiting.waitUntil)(() => {
38
- frame = page.frames().find(f => f.url().includes('calconnect')) || null;
38
+ frame = page.frames().find(f => f.url().includes('connect')) || null;
39
39
  return Promise.resolve(!!frame);
40
40
  }, 'wait for iframe with login form', 10000, 1000);
41
41
  if (!frame) {
@@ -255,4 +255,4 @@ class VisaCalScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
255
255
  }
256
256
  var _default = VisaCalScraper;
257
257
  exports.default = _default;
258
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVidWciLCJfZWxlbWVudHNJbnRlcmFjdGlvbnMiLCJfZmV0Y2giLCJfbmF2aWdhdGlvbiIsIl9zdG9yYWdlIiwiX3RyYW5zYWN0aW9ucyIsIl93YWl0aW5nIiwiX3RyYW5zYWN0aW9uczIiLCJfYmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2RlZmluZVByb3BlcnR5Iiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIkxPR0lOX1VSTCIsIlRSQU5TQUNUSU9OU19SRVFVRVNUX0VORFBPSU5UIiwiSW52YWxpZFBhc3N3b3JkTWVzc2FnZSIsImRlYnVnIiwiZ2V0RGVidWciLCJ0cm5UeXBlQ29kZSIsImdldExvZ2luRnJhbWUiLCJwYWdlIiwiZnJhbWUiLCJ3YWl0VW50aWwiLCJmcmFtZXMiLCJmaW5kIiwiZiIsInVybCIsImluY2x1ZGVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJFcnJvciIsImhhc0ludmFsaWRQYXNzd29yZEVycm9yIiwiZXJyb3JGb3VuZCIsImVsZW1lbnRQcmVzZW50T25QYWdlIiwiZXJyb3JNZXNzYWdlIiwicGFnZUV2YWwiLCJpdGVtIiwiaW5uZXJUZXh0IiwiaGFzQ2hhbmdlUGFzc3dvcmRGb3JtIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJ1cmxzIiwiTG9naW5SZXN1bHRzIiwiU3VjY2VzcyIsIkludmFsaWRQYXNzd29yZCIsIm9wdGlvbnMiLCJDaGFuZ2VQYXNzd29yZCIsImNyZWF0ZUxvZ2luRmllbGRzIiwiY3JlZGVudGlhbHMiLCJzZWxlY3RvciIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJjb252ZXJ0UGFyc2VkRGF0YVRvVHJhbnNhY3Rpb25zIiwicGFyc2VkRGF0YSIsImJhbmtBY2NvdW50cyIsImZsYXRNYXAiLCJtb250aERhdGEiLCJyZXN1bHQiLCJyZWd1bGFyRGViaXREYXlzIiwiYWNjb3VudHMiLCJkZWJpdERhdGVzIiwiaW1tZWRpYXRlRGViaXREYXlzIiwiaW1taWRpYXRlRGViaXRzIiwiZGViaXREYXlzIiwiZGViaXREYXRlIiwidHJhbnNhY3Rpb25zIiwibWFwIiwidHJhbnNhY3Rpb24iLCJpbnN0YWxsbWVudHMiLCJjdXJQYXltZW50TnVtIiwibnVtT2ZQYXltZW50cyIsIm51bWJlciIsInRvdGFsIiwidW5kZWZpbmVkIiwiZGF0ZSIsIm1vbWVudCIsInRyblB1cmNoYXNlRGF0ZSIsImNoYXJnZWRBbW91bnQiLCJhbXRCZWZvcmVDb252QW5kSW5kZXgiLCJvcmlnaW5hbEFtb3VudCIsInRybkFtdCIsImlkZW50aWZpZXIiLCJ0cm5JbnRJZCIsInR5cGUiLCJyZWd1bGFyIiwic3RhbmRpbmdPcmRlciIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJJbnN0YWxsbWVudHMiLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiQ29tcGxldGVkIiwiYWRkIiwidG9JU09TdHJpbmciLCJwcm9jZXNzZWREYXRlIiwiRGF0ZSIsImRlYkNyZERhdGUiLCJvcmlnaW5hbEN1cnJlbmN5IiwidHJuQ3VycmVuY3lTeW1ib2wiLCJjaGFyZ2VkQ3VycmVuY3kiLCJkZWJDcmRDdXJyZW5jeVN5bWJvbCIsImRlc2NyaXB0aW9uIiwibWVyY2hhbnROYW1lIiwibWVtbyIsInRyYW5zVHlwZUNvbW1lbnREZXRhaWxzIiwidG9TdHJpbmciLCJjYXRlZ29yeSIsImJyYW5jaENvZGVEZXNjIiwiVmlzYUNhbFNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiY29uc3RydWN0b3IiLCJhcmdzIiwid2FpdFVudGlsRWxlbWVudEZvdW5kIiwiY2xpY2tCdXR0b24iLCJnZXRDYXJkcyIsImluaXREYXRhIiwiZ2V0RnJvbVNlc3Npb25TdG9yYWdlIiwiY2FyZHMiLCJjYXJkVW5pcXVlSWQiLCJsYXN0NERpZ2l0cyIsImdldEF1dGhvcml6YXRpb25IZWFkZXIiLCJhdXRoTW9kdWxlIiwiYXV0aCIsImNhbENvbm5lY3RUb2tlbiIsImdldFhTaXRlSWQiLCJnZXRMb2dpbk9wdGlvbnMiLCJsb2dpblVybCIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwicG9zc2libGVSZXN1bHRzIiwiY2hlY2tSZWFkaW5lc3MiLCJwcmVBY3Rpb24iLCJvcGVuTG9naW5Qb3B1cCIsInBvc3RBY3Rpb24iLCJjdXJyZW50VXJsIiwiZ2V0Q3VycmVudFVybCIsImVuZHNXaXRoIiwiZSIsInJlcXVpcmVzQ2hhbmdlUGFzc3dvcmQiLCJ1c2VyQWdlbnQiLCJpc0NhcmRUcmFuc2FjdGlvbkRldGFpbHMiLCJmZXRjaERhdGEiLCJfdGhpcyRvcHRpb25zJGZ1dHVyZU0iLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInN0YXJ0RGF0ZSIsInRvRGF0ZSIsInN0YXJ0TW9tZW50IiwibWF4IiwiZm9ybWF0IiwiQXV0aG9yaXphdGlvbiIsInhTaXRlSWQiLCJmdXR1cmVNb250aHNUb1NjcmFwZSIsImFsbCIsImNhcmQiLCJfdGhpcyRvcHRpb25zJG91dHB1dEQiLCJfdGhpcyRvcHRpb25zJG91dHB1dEQyIiwiZmluYWxNb250aFRvRmV0Y2hNb21lbnQiLCJtb250aHMiLCJkaWZmIiwiYWxsTW9udGhzRGF0YSIsImkiLCJtb250aCIsImNsb25lIiwiZmV0Y2hQb3N0V2l0aGluUGFnZSIsInllYXIiLCJzdGF0dXNDb2RlIiwidGl0bGUiLCJwdXNoIiwidHhucyIsIm91dHB1dERhdGEiLCJlbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUiLCJmaWx0ZXJPbGRUcmFuc2FjdGlvbnMiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwiYWNjb3VudE51bWJlciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdWNjZXNzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmFwZXJzL3Zpc2EtY2FsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEZyYW1lLCBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcblxuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcbmltcG9ydCB7XG4gIGNsaWNrQnV0dG9uLCBlbGVtZW50UHJlc2VudE9uUGFnZSwgcGFnZUV2YWwsIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCxcbn0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hQb3N0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFVybCB9IGZyb20gJy4uL2hlbHBlcnMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBnZXRGcm9tU2Vzc2lvblN0b3JhZ2UgfSBmcm9tICcuLi9oZWxwZXJzL3N0b3JhZ2UnO1xuaW1wb3J0IHsgZmlsdGVyT2xkVHJhbnNhY3Rpb25zIH0gZnJvbSAnLi4vaGVscGVycy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgd2FpdFVudGlsIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvblN0YXR1c2VzLFxuICBUcmFuc2FjdGlvblR5cGVzLFxuICBUcmFuc2FjdGlvbnNBY2NvdW50LFxufSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5PcHRpb25zLCBMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgU2NyYXBlclNjcmFwaW5nUmVzdWx0IH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuXG5jb25zdCBMT0dJTl9VUkwgPSAnaHR0cHM6Ly93d3cuY2FsLW9ubGluZS5jby5pbC8nO1xuY29uc3QgVFJBTlNBQ1RJT05TX1JFUVVFU1RfRU5EUE9JTlQgPSAnaHR0cHM6Ly9hcGkuY2FsLW9ubGluZS5jby5pbC9UcmFuc2FjdGlvbnMvYXBpL3RyYW5zYWN0aW9uc0RldGFpbHMvZ2V0Q2FyZFRyYW5zYWN0aW9uc0RldGFpbHMnO1xuXG5jb25zdCBJbnZhbGlkUGFzc3dvcmRNZXNzYWdlID0gJ9ep150g15TXntep16rXntepINeQ15Ug15TXodeZ16HXnteUINep15TXldeW16DXlSDXqdeS15XXmdeZ150nO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCd2aXNhLWNhbCcpO1xuXG5lbnVtIHRyblR5cGVDb2RlIHtcbiAgcmVndWxhciA9ICc1JyxcbiAgY3JlZGl0ID0gJzYnLFxuICBpbnN0YWxsbWVudHMgPSAnOCcsXG4gIHN0YW5kaW5nT3JkZXIgPSAnOScsXG59XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBhbXRCZWZvcmVDb252QW5kSW5kZXg6IG51bWJlcjtcbiAgYnJhbmNoQ29kZURlc2M6IHN0cmluZztcbiAgY2FzaEFjY01hbmFnZXJOYW1lOiBudWxsO1xuICBjYXNoQWNjb3VudE1hbmFnZXI6IG51bGw7XG4gIGNhc2hBY2NvdW50VHJuQW10OiBudW1iZXI7XG4gIGNoYXJnZUV4dGVybmFsVG9DYXJkQ29tbWVudDogc3RyaW5nO1xuICBjb21tZW50czogW107XG4gIGN1clBheW1lbnROdW06IG51bWJlcjtcbiAgZGViQ3JkQ3VycmVuY3lTeW1ib2w6IEN1cnJlbmN5U3ltYm9sO1xuICBkZWJDcmREYXRlOiBzdHJpbmc7XG4gIGRlYml0U3ByZWFkSW5kOiBib29sZWFuO1xuICBkaXNjb3VudEFtb3VudDogdW5rbm93bjtcbiAgZGlzY291bnRSZWFzb246IHVua25vd247XG4gIGltbWVkaWF0ZUNvbW1lbnRzOiBbXTtcbiAgaXNJbW1lZGlhdGVDb21tZW50SW5kOiBib29sZWFuO1xuICBpc0ltbWVkaWF0ZUhIS0luZDogYm9vbGVhbjtcbiAgaXNNYXJnYXJpdGE6IGJvb2xlYW47XG4gIGlzU3ByZWFkUGF5bWVuc3RBYnJvYWQ6IGJvb2xlYW47XG4gIGxpbmtlZENvbW1lbnRzOiBbXTtcbiAgbWVyY2hhbnRBZGRyZXNzOiBzdHJpbmc7XG4gIG1lcmNoYW50TmFtZTogc3RyaW5nO1xuICBtZXJjaGFudFBob25lTm86IHN0cmluZztcbiAgbnVtT2ZQYXltZW50czogbnVtYmVyO1xuICBvbkdvaW5nVHJhbnNhY3Rpb25zQ29tbWVudDogc3RyaW5nO1xuICByZWZ1bmRJbmQ6IGJvb2xlYW47XG4gIHJvdW5kaW5nQW1vdW50OiB1bmtub3duO1xuICByb3VuZGluZ1JlYXNvbjogdW5rbm93bjtcbiAgdG9rZW5JbmQ6IDA7XG4gIHRva2VuTnVtYmVyUGFydDQ6ICcnO1xuICB0cmFuc0NhcmRQcmVzZW50SW5kOiBib29sZWFuO1xuICB0cmFuc1R5cGVDb21tZW50RGV0YWlsczogW107XG4gIHRybkFtdDogbnVtYmVyO1xuICB0cm5DdXJyZW5jeVN5bWJvbDogQ3VycmVuY3lTeW1ib2w7XG4gIHRybkV4YWNXYXk6IG51bWJlcjtcbiAgdHJuSW50SWQ6IHN0cmluZztcbiAgdHJuTnVtYXJldG9yOiBudW1iZXI7XG4gIHRyblB1cmNoYXNlRGF0ZTogc3RyaW5nO1xuICB0cm5UeXBlOiBzdHJpbmc7XG4gIHRyblR5cGVDb2RlOiB0cm5UeXBlQ29kZTtcbiAgd2FsbGV0UHJvdmlkZXJDb2RlOiAwO1xuICB3YWxsZXRQcm92aWRlckRlc2M6ICcnO1xufVxuaW50ZXJmYWNlIEluaXRSZXNwb25zZSB7XG4gIHJlc3VsdDoge1xuICAgIGNhcmRzOiB7XG4gICAgICBjYXJkVW5pcXVlSWQ6IHN0cmluZztcbiAgICAgIGxhc3Q0RGlnaXRzOiBzdHJpbmc7XG4gICAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAgIH1bXTtcbiAgfTtcbn1cbnR5cGUgQ3VycmVuY3lTeW1ib2wgPSAn4oKqJyB8IHN0cmluZztcbmludGVyZmFjZSBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzRXJyb3Ige1xuICB0aXRsZTogc3RyaW5nO1xuICBzdGF0dXNDb2RlOiBudW1iZXI7XG59XG5pbnRlcmZhY2UgQ2FyZFRyYW5zYWN0aW9uRGV0YWlscyBleHRlbmRzIENhcmRUcmFuc2FjdGlvbkRldGFpbHNFcnJvciB7XG4gIHJlc3VsdDoge1xuICAgIGJhbmtBY2NvdW50czoge1xuICAgICAgYmFua0FjY291bnROdW06IHN0cmluZztcbiAgICAgIGJhbmtOYW1lOiBzdHJpbmc7XG4gICAgICBjaG9pY2VFeHRlcm5hbFRyYW5zYWN0aW9uczogYW55O1xuICAgICAgY3VycmVudEJhbmtBY2NvdW50SW5kOiBib29sZWFuO1xuICAgICAgZGViaXREYXRlczoge1xuICAgICAgICBiYXNrZXRBbW91bnRDb21tZW50OiB1bmtub3duO1xuICAgICAgICBjaG9pY2VISEtEZWJpdDogbnVtYmVyO1xuICAgICAgICBkYXRlOiBzdHJpbmc7XG4gICAgICAgIGRlYml0UmVhc29uOiB1bmtub3duO1xuICAgICAgICBmaXhEZWJpdEFtb3VudDogbnVtYmVyO1xuICAgICAgICBmcm9tUHVyY2hhc2VEYXRlOiBzdHJpbmc7XG4gICAgICAgIGlzQ2hvaWNlUmVwYWltZW50OiBib29sZWFuO1xuICAgICAgICB0b1B1cmNoYXNlRGF0ZTogc3RyaW5nO1xuICAgICAgICB0b3RhbEJhc2tldEFtb3VudDogbnVtYmVyO1xuICAgICAgICB0b3RhbERlYml0czoge1xuICAgICAgICAgIGN1cnJlbmN5U3ltYm9sOiBDdXJyZW5jeVN5bWJvbDtcbiAgICAgICAgICBhbW91bnQ6IG51bWJlcjtcbiAgICAgICAgfVtdO1xuICAgICAgICB0cmFuc2FjdGlvbnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xuICAgICAgfVtdO1xuICAgICAgaW1taWRpYXRlRGViaXRzOiB7IHRvdGFsRGViaXRzOiBbXSwgZGViaXREYXlzOiBbXSB9O1xuICAgIH1bXTtcbiAgICBibG9ja2VkQ2FyZEluZDogYm9vbGVhbjtcbiAgfTtcbiAgc3RhdHVzQ29kZTogMTtcbiAgc3RhdHVzRGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhdHVzVGl0bGU6IHN0cmluZztcbn1cblxuXG5hc3luYyBmdW5jdGlvbiBnZXRMb2dpbkZyYW1lKHBhZ2U6IFBhZ2UpIHtcbiAgbGV0IGZyYW1lOiBGcmFtZSB8IG51bGwgPSBudWxsO1xuICBkZWJ1Zygnd2FpdCB1bnRpbCBsb2dpbiBmcmFtZSBmb3VuZCcpO1xuICBhd2FpdCB3YWl0VW50aWwoKCkgPT4ge1xuICAgIGZyYW1lID0gcGFnZVxuICAgICAgLmZyYW1lcygpXG4gICAgICAuZmluZCgoZikgPT4gZi51cmwoKS5pbmNsdWRlcygnY2FsY29ubmVjdCcpKSB8fCBudWxsO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoISFmcmFtZSk7XG4gIH0sICd3YWl0IGZvciBpZnJhbWUgd2l0aCBsb2dpbiBmb3JtJywgMTAwMDAsIDEwMDApO1xuXG4gIGlmICghZnJhbWUpIHtcbiAgICBkZWJ1ZygnZmFpbGVkIHRvIGZpbmQgbG9naW4gZnJhbWUgZm9yIDEwIHNlY29uZHMnKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWxlZCB0byBleHRyYWN0IGxvZ2luIGlmcmFtZScpO1xuICB9XG5cbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNJbnZhbGlkUGFzc3dvcmRFcnJvcihwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGZyYW1lID0gYXdhaXQgZ2V0TG9naW5GcmFtZShwYWdlKTtcbiAgY29uc3QgZXJyb3JGb3VuZCA9IGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKGZyYW1lLCAnZGl2LmdlbmVyYWwtZXJyb3IgPiBkaXYnKTtcbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3JGb3VuZCA/IGF3YWl0IHBhZ2VFdmFsKGZyYW1lLCAnZGl2LmdlbmVyYWwtZXJyb3IgPiBkaXYnLCAnJywgKGl0ZW0pID0+IHtcbiAgICByZXR1cm4gKGl0ZW0gYXMgSFRNTERpdkVsZW1lbnQpLmlubmVyVGV4dDtcbiAgfSkgOiAnJztcbiAgcmV0dXJuIGVycm9yTWVzc2FnZSA9PT0gSW52YWxpZFBhc3N3b3JkTWVzc2FnZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFzQ2hhbmdlUGFzc3dvcmRGb3JtKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3QgZnJhbWUgPSBhd2FpdCBnZXRMb2dpbkZyYW1lKHBhZ2UpO1xuICBjb25zdCBlcnJvckZvdW5kID0gYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UoZnJhbWUsICcuY2hhbmdlLXBhc3N3b3JkLXN1YnRpdGxlJyk7XG4gIHJldHVybiBlcnJvckZvdW5kO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpIHtcbiAgZGVidWcoJ3JldHVybiBwb3NzaWJsZSBsb2dpbiByZXN1bHRzJyk7XG4gIGNvbnN0IHVybHM6IExvZ2luT3B0aW9uc1sncG9zc2libGVSZXN1bHRzJ10gPSB7XG4gICAgW0xvZ2luUmVzdWx0cy5TdWNjZXNzXTogWy9kYXNoYm9hcmQvaV0sXG4gICAgW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdOiBbYXN5bmMgKG9wdGlvbnM/OiB7IHBhZ2U/OiBQYWdlIH0pID0+IHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBvcHRpb25zPy5wYWdlO1xuICAgICAgaWYgKCFwYWdlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNJbnZhbGlkUGFzc3dvcmRFcnJvcihwYWdlKTtcbiAgICB9XSxcbiAgICAvLyBbTG9naW5SZXN1bHRzLkFjY291bnRCbG9ja2VkXTogW10sIC8vIFRPRE8gYWRkIHdoZW4gcmVhY2hpbmcgdGhpcyBzY2VuYXJpb1xuICAgIFtMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdOiBbYXN5bmMgKG9wdGlvbnM/OiB7IHBhZ2U/OiBQYWdlIH0pID0+IHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBvcHRpb25zPy5wYWdlO1xuICAgICAgaWYgKCFwYWdlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNDaGFuZ2VQYXNzd29yZEZvcm0ocGFnZSk7XG4gICAgfV0sXG4gIH07XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgZGVidWcoJ2NyZWF0ZSBsb2dpbiBmaWVsZHMgZm9yIHVzZXJuYW1lIGFuZCBwYXNzd29yZCcpO1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICdbZm9ybWNvbnRyb2xuYW1lPVwidXNlck5hbWVcIl0nLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnW2Zvcm1jb250cm9sbmFtZT1cInBhc3N3b3JkXCJdJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRQYXJzZWREYXRhVG9UcmFuc2FjdGlvbnMocGFyc2VkRGF0YTogQ2FyZFRyYW5zYWN0aW9uRGV0YWlsc1tdKTogVHJhbnNhY3Rpb25bXSB7XG4gIGNvbnN0IGJhbmtBY2NvdW50cyA9IHBhcnNlZERhdGFcbiAgICAuZmxhdE1hcCgobW9udGhEYXRhKSA9PiBtb250aERhdGEucmVzdWx0LmJhbmtBY2NvdW50cyk7XG5cbiAgY29uc3QgcmVndWxhckRlYml0RGF5cyA9IGJhbmtBY2NvdW50c1xuICAgIC5mbGF0TWFwKChhY2NvdW50cykgPT4gYWNjb3VudHMuZGViaXREYXRlcyk7XG4gIGNvbnN0IGltbWVkaWF0ZURlYml0RGF5cyA9IGJhbmtBY2NvdW50c1xuICAgIC5mbGF0TWFwKChhY2NvdW50cykgPT4gYWNjb3VudHMuaW1taWRpYXRlRGViaXRzLmRlYml0RGF5cyk7XG5cbiAgcmV0dXJuIFsuLi5yZWd1bGFyRGViaXREYXlzLCAuLi5pbW1lZGlhdGVEZWJpdERheXNdXG4gICAgLmZsYXRNYXAoKGRlYml0RGF0ZSkgPT4gZGViaXREYXRlLnRyYW5zYWN0aW9ucylcbiAgICAubWFwKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgY29uc3QgaW5zdGFsbG1lbnRzID0gKHRyYW5zYWN0aW9uLmN1clBheW1lbnROdW0gJiYgdHJhbnNhY3Rpb24ubnVtT2ZQYXltZW50cyAmJlxuICAgICAge1xuICAgICAgICBudW1iZXI6IHRyYW5zYWN0aW9uLmN1clBheW1lbnROdW0sXG4gICAgICAgIHRvdGFsOiB0cmFuc2FjdGlvbi5udW1PZlBheW1lbnRzLFxuICAgICAgfSkgfHxcbiAgICAgICAgdW5kZWZpbmVkO1xuXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50KHRyYW5zYWN0aW9uLnRyblB1cmNoYXNlRGF0ZSk7XG5cbiAgICAgIGNvbnN0IGNoYXJnZWRBbW91bnQgPSB0cmFuc2FjdGlvbi5hbXRCZWZvcmVDb252QW5kSW5kZXggKiAoLTEpO1xuICAgICAgY29uc3Qgb3JpZ2luYWxBbW91bnQgPSB0cmFuc2FjdGlvbi50cm5BbXQgKiAoLTEpO1xuXG4gICAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uID0ge1xuICAgICAgICBpZGVudGlmaWVyOiB0cmFuc2FjdGlvbi50cm5JbnRJZCxcbiAgICAgICAgdHlwZTogW3RyblR5cGVDb2RlLnJlZ3VsYXIsIHRyblR5cGVDb2RlLnN0YW5kaW5nT3JkZXJdLmluY2x1ZGVzKHRyYW5zYWN0aW9uLnRyblR5cGVDb2RlKSA/XG4gICAgICAgICAgVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwgOlxuICAgICAgICAgIFRyYW5zYWN0aW9uVHlwZXMuSW5zdGFsbG1lbnRzLFxuICAgICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgICAgICBkYXRlOiBpbnN0YWxsbWVudHMgP1xuICAgICAgICAgIGRhdGUuYWRkKGluc3RhbGxtZW50cy5udW1iZXIgLSAxLCAnbW9udGgnKS50b0lTT1N0cmluZygpIDpcbiAgICAgICAgICBkYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIHByb2Nlc3NlZERhdGU6IG5ldyBEYXRlKHRyYW5zYWN0aW9uLmRlYkNyZERhdGUpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIG9yaWdpbmFsQW1vdW50LFxuICAgICAgICBvcmlnaW5hbEN1cnJlbmN5OiB0cmFuc2FjdGlvbi50cm5DdXJyZW5jeVN5bWJvbCxcbiAgICAgICAgY2hhcmdlZEFtb3VudCxcbiAgICAgICAgY2hhcmdlZEN1cnJlbmN5OiB0cmFuc2FjdGlvbi5kZWJDcmRDdXJyZW5jeVN5bWJvbCxcbiAgICAgICAgZGVzY3JpcHRpb246IHRyYW5zYWN0aW9uLm1lcmNoYW50TmFtZSxcbiAgICAgICAgbWVtbzogdHJhbnNhY3Rpb24udHJhbnNUeXBlQ29tbWVudERldGFpbHMudG9TdHJpbmcoKSxcbiAgICAgICAgY2F0ZWdvcnk6IHRyYW5zYWN0aW9uLmJyYW5jaENvZGVEZXNjLFxuICAgICAgfTtcblxuICAgICAgaWYgKGluc3RhbGxtZW50cykge1xuICAgICAgICByZXN1bHQuaW5zdGFsbG1lbnRzID0gaW5zdGFsbG1lbnRzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xufVxuXG50eXBlIFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzID0geyB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nIH07XG5cbmNsYXNzIFZpc2FDYWxTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBvcGVuTG9naW5Qb3B1cCA9IGFzeW5jICgpID0+IHtcbiAgICBkZWJ1Zygnb3BlbiBsb2dpbiBwb3B1cCwgd2FpdCB1bnRpbCBsb2dpbiBidXR0b24gYXZhaWxhYmxlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicsIHRydWUpO1xuICAgIGRlYnVnKCdjbGljayBvbiB0aGUgbG9naW4gYnV0dG9uJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnI2NjTG9naW5EZXNrdG9wQnRuJyk7XG4gICAgZGVidWcoJ2dldCB0aGUgZnJhbWUgdGhhdCBob2xkcyB0aGUgbG9naW4nKTtcbiAgICBjb25zdCBmcmFtZSA9IGF3YWl0IGdldExvZ2luRnJhbWUodGhpcy5wYWdlKTtcbiAgICBkZWJ1Zygnd2FpdCB1bnRpbCB0aGUgcGFzc3dvcmQgbG9naW4gdGFiIGhlYWRlciBpcyBhdmFpbGFibGUnKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQoZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCduYXZpZ2F0ZSB0byB0aGUgcGFzc3dvcmQgbG9naW4gdGFiJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24oZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCd3YWl0IHVudGlsIHRoZSBwYXNzd29yZCBsb2dpbiB0YWIgaXMgYWN0aXZlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKGZyYW1lLCAncmVndWxhci1sb2dpbicpO1xuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9O1xuXG4gIGFzeW5jIGdldENhcmRzKCkge1xuICAgIGNvbnN0IGluaXREYXRhID0gYXdhaXQgd2FpdFVudGlsKFxuICAgICAgKCkgPT4gZ2V0RnJvbVNlc3Npb25TdG9yYWdlPEluaXRSZXNwb25zZT4odGhpcy5wYWdlLCAnaW5pdCcpLFxuICAgICAgJ2dldCBpbml0IGRhdGEgaW4gc2Vzc2lvbiBzdG9yYWdlJyxcbiAgICAgIDEwMDAwLFxuICAgICAgMTAwMCxcbiAgICApO1xuICAgIGlmICghaW5pdERhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IGZpbmQgXFwnaW5pdFxcJyBkYXRhIGluIHNlc3Npb24gc3RvcmFnZScpO1xuICAgIH1cbiAgICByZXR1cm4gaW5pdERhdGE/LnJlc3VsdC5jYXJkcy5tYXAoKHsgY2FyZFVuaXF1ZUlkLCBsYXN0NERpZ2l0cyB9KSA9PiAoeyBjYXJkVW5pcXVlSWQsIGxhc3Q0RGlnaXRzIH0pKTtcbiAgfVxuXG4gIGFzeW5jIGdldEF1dGhvcml6YXRpb25IZWFkZXIoKSB7XG4gICAgY29uc3QgYXV0aE1vZHVsZSA9IGF3YWl0IGdldEZyb21TZXNzaW9uU3RvcmFnZTx7IGF1dGg6IHsgY2FsQ29ubmVjdFRva2VuOiBzdHJpbmcgfSB9Pih0aGlzLnBhZ2UsICdhdXRoLW1vZHVsZScpO1xuICAgIGlmICghYXV0aE1vZHVsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgZmluZCBcXCdhdXRoLW1vZHVsZVxcJyBpbiBzZXNzaW9uIHN0b3JhZ2UnKTtcbiAgICB9XG4gICAgcmV0dXJuIGBDQUxBdXRoU2NoZW1lICR7YXV0aE1vZHVsZS5hdXRoLmNhbENvbm5lY3RUb2tlbn1gO1xuICB9XG5cbiAgYXN5bmMgZ2V0WFNpdGVJZCgpIHtcbiAgICAvKlxuICAgICAgSSBkb24ndCBrbm93IGlmIHRoZSBjb25zdGFudCBiZWxvdyB3aWxsIGNoYW5nZSBpbiB0aGUgZmVhdHVyZS5cbiAgICAgIElmIHNvLCB1c2UgdGhlIG5leHQgY29kZTpcblxuICAgICAgcmV0dXJuIHRoaXMucGFnZS5ldmFsdWF0ZSgoKSA9PiBuZXcgVXQoKS54U2l0ZUlkKTtcblxuICAgICAgVG8gZ2V0IHRoZSBjbGFzc25hbWUgc2VhcmNoIGZvciAneFNpdGVJZCcgaW4gdGhlIHBhZ2Ugc291cmNlXG4gICAgICBjbGFzcyBVdCB7XG4gICAgICAgIGNvbnN0cnVjdG9yKF9lLCBvbiwgeW4pIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUgPSBfZSxcbiAgICAgICAgICAgIHRoaXMuY29uZmlnID0gb24sXG4gICAgICAgICAgICB0aGlzLmV2ZW50QnVzU2VydmljZSA9IHluLFxuICAgICAgICAgICAgdGhpcy54U2l0ZUlkID0gXCIwOTAzMTk4Ny0yNzNFLTIzMTEtOTA2Qy04QUY4NUIxN0M4RDlcIixcbiAgICAqL1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoJzA5MDMxOTg3LTI3M0UtMjMxMS05MDZDLThBRjg1QjE3QzhEOScpO1xuICB9XG5cbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyk6IExvZ2luT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBgJHtMT0dJTl9VUkx9YCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICdidXR0b25bdHlwZT1cInN1Ym1pdFwiXScsXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCksXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4gd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicpLFxuICAgICAgcHJlQWN0aW9uOiB0aGlzLm9wZW5Mb2dpblBvcHVwLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICdidXR0b24uYnRuLWNsb3NlJyk7XG4gICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IGF3YWl0IGdldEN1cnJlbnRVcmwodGhpcy5wYWdlKTtcbiAgICAgICAgICBpZiAoY3VycmVudFVybC5lbmRzV2l0aCgnc2l0ZS10dXRvcmlhbCcpKSB7XG4gICAgICAgICAgICBhd2FpdCBjbGlja0J1dHRvbih0aGlzLnBhZ2UsICdidXR0b24uYnRuLWNsb3NlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IGF3YWl0IGdldEN1cnJlbnRVcmwodGhpcy5wYWdlKTtcbiAgICAgICAgICBpZiAoY3VycmVudFVybC5lbmRzV2l0aCgnZGFzaGJvYXJkJykpIHJldHVybjtcbiAgICAgICAgICBjb25zdCByZXF1aXJlc0NoYW5nZVBhc3N3b3JkID0gYXdhaXQgaGFzQ2hhbmdlUGFzc3dvcmRGb3JtKHRoaXMucGFnZSk7XG4gICAgICAgICAgaWYgKHJlcXVpcmVzQ2hhbmdlUGFzc3dvcmQpIHJldHVybjtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlckFnZW50OiAnTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNzguMC4zOTA0LjEwOCBTYWZhcmkvNTM3LjM2JyxcbiAgICB9O1xuICB9XG5cbiAgaXNDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKHJlc3VsdDogQ2FyZFRyYW5zYWN0aW9uRGV0YWlscyB8IENhcmRUcmFuc2FjdGlvbkRldGFpbHNFcnJvcik6XG4gICAgcmVzdWx0IGlzIENhcmRUcmFuc2FjdGlvbkRldGFpbHMge1xuICAgIHJldHVybiAocmVzdWx0IGFzIENhcmRUcmFuc2FjdGlvbkRldGFpbHMpLnJlc3VsdCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCk6IFByb21pc2U8U2NyYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuc3VidHJhY3QoNiwgJ21vbnRocycpLmFkZCgxLCAnZGF5Jyk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gICAgY29uc3Qgc3RhcnRNb21lbnQgPSBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xuICAgIGRlYnVnKGBmZXRjaCB0cmFuc2FjdGlvbnMgc3RhcnRpbmcgJHtzdGFydE1vbWVudC5mb3JtYXQoKX1gKTtcblxuICAgIGNvbnN0IEF1dGhvcml6YXRpb24gPSBhd2FpdCB0aGlzLmdldEF1dGhvcml6YXRpb25IZWFkZXIoKTtcbiAgICBjb25zdCBjYXJkcyA9IGF3YWl0IHRoaXMuZ2V0Q2FyZHMoKTtcbiAgICBjb25zdCB4U2l0ZUlkID0gYXdhaXQgdGhpcy5nZXRYU2l0ZUlkKCk7XG4gICAgY29uc3QgZnV0dXJlTW9udGhzVG9TY3JhcGUgPSB0aGlzLm9wdGlvbnMuZnV0dXJlTW9udGhzVG9TY3JhcGUgPz8gMTtcblxuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBjYXJkcy5tYXAoYXN5bmMgKGNhcmQpID0+IHtcbiAgICAgICAgZGVidWcoYGZldGNoIHRyYW5zYWN0aW9ucyBmb3IgY2FyZCAke2NhcmQuY2FyZFVuaXF1ZUlkfWApO1xuXG4gICAgICAgIGNvbnN0IGZpbmFsTW9udGhUb0ZldGNoTW9tZW50ID0gbW9tZW50KCkuYWRkKGZ1dHVyZU1vbnRoc1RvU2NyYXBlLCAnbW9udGgnKTtcbiAgICAgICAgY29uc3QgbW9udGhzID0gZmluYWxNb250aFRvRmV0Y2hNb21lbnQuZGlmZihzdGFydE1vbWVudCwgJ21vbnRocycpO1xuXG4gICAgICAgIGNvbnN0IGFsbE1vbnRoc0RhdGE6IChDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKVtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IG1vbnRoczsgaSArPSAxKSB7XG4gICAgICAgICAgY29uc3QgbW9udGggPSBmaW5hbE1vbnRoVG9GZXRjaE1vbWVudC5jbG9uZSgpLnN1YnRyYWN0KGksICdtb250aHMnKTtcbiAgICAgICAgICBjb25zdCBtb250aERhdGEgPSBhd2FpdCBmZXRjaFBvc3RXaXRoaW5QYWdlPENhcmRUcmFuc2FjdGlvbkRldGFpbHMgfCBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzRXJyb3I+KFxuICAgICAgICAgICAgdGhpcy5wYWdlLCBUUkFOU0FDVElPTlNfUkVRVUVTVF9FTkRQT0lOVCxcbiAgICAgICAgICAgIHsgY2FyZFVuaXF1ZUlkOiBjYXJkLmNhcmRVbmlxdWVJZCwgbW9udGg6IG1vbnRoLmZvcm1hdCgnTScpLCB5ZWFyOiBtb250aC5mb3JtYXQoJ1lZWVknKSB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBBdXRob3JpemF0aW9uLFxuICAgICAgICAgICAgICAnWC1TaXRlLUlkJzogeFNpdGVJZCxcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChtb250aERhdGE/LnN0YXR1c0NvZGUgIT09IDEpIHRocm93IG5ldyBFcnJvcihgZmFpbGVkIHRvIGZldGNoIHRyYW5zYWN0aW9ucyBmb3IgY2FyZCAke2NhcmQubGFzdDREaWdpdHN9LiBNZXNzYWdlOiAke21vbnRoRGF0YT8udGl0bGUgfHwgJyd9YCk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuaXNDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKG1vbnRoRGF0YSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbW9udGhEYXRhIGlzIG5vdCBvZiB0eXBlIENhcmRUcmFuc2FjdGlvbkRldGFpbHMnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhbGxNb250aHNEYXRhLnB1c2gobW9udGhEYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRyYW5zYWN0aW9ucyA9IGNvbnZlcnRQYXJzZWREYXRhVG9UcmFuc2FjdGlvbnMoYWxsTW9udGhzRGF0YSk7XG5cbiAgICAgICAgZGVidWcoJ2ZpbGVyIG91dCBvbGQgdHJhbnNhY3Rpb25zJyk7XG4gICAgICAgIGNvbnN0IHR4bnMgPSAodGhpcy5vcHRpb25zLm91dHB1dERhdGE/LmVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSA/PyB0cnVlKSA/XG4gICAgICAgICAgZmlsdGVyT2xkVHJhbnNhY3Rpb25zKHRyYW5zYWN0aW9ucywgbW9tZW50KHN0YXJ0RGF0ZSksIHRoaXMub3B0aW9ucy5jb21iaW5lSW5zdGFsbG1lbnRzIHx8IGZhbHNlKSA6XG4gICAgICAgICAgdHJhbnNhY3Rpb25zO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHhucyxcbiAgICAgICAgICBhY2NvdW50TnVtYmVyOiBjYXJkLmxhc3Q0RGlnaXRzLFxuICAgICAgICB9IGFzIFRyYW5zYWN0aW9uc0FjY291bnQ7XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgZGVidWcoJ3JldHVybiB0aGUgc2NyYXBlZCBhY2NvdW50cycpO1xuXG4gICAgZGVidWcoSlNPTi5zdHJpbmdpZnkoYWNjb3VudHMsIG51bGwsIDIpKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVmlzYUNhbFNjcmFwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFHQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxxQkFBQSxHQUFBRixPQUFBO0FBR0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsY0FBQSxHQUFBUixPQUFBO0FBTUEsSUFBQVMsdUJBQUEsR0FBQVQsT0FBQTtBQUFpRyxTQUFBRCx1QkFBQVcsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLGdCQUFBSCxHQUFBLEVBQUFJLEdBQUEsRUFBQUMsS0FBQSxRQUFBRCxHQUFBLElBQUFKLEdBQUEsSUFBQU0sTUFBQSxDQUFBQyxjQUFBLENBQUFQLEdBQUEsRUFBQUksR0FBQSxJQUFBQyxLQUFBLEVBQUFBLEtBQUEsRUFBQUcsVUFBQSxRQUFBQyxZQUFBLFFBQUFDLFFBQUEsb0JBQUFWLEdBQUEsQ0FBQUksR0FBQSxJQUFBQyxLQUFBLFdBQUFMLEdBQUE7QUFHakcsTUFBTVcsU0FBUyxHQUFHLCtCQUErQjtBQUNqRCxNQUFNQyw2QkFBNkIsR0FBRyw4RkFBOEY7QUFFcEksTUFBTUMsc0JBQXNCLEdBQUcsbUNBQW1DO0FBRWxFLE1BQU1DLEtBQUssR0FBRyxJQUFBQyxlQUFRLEVBQUMsVUFBVSxDQUFDO0FBQUMsSUFFOUJDLFdBQVc7QUFBQSxXQUFYQSxXQUFXO0VBQVhBLFdBQVc7RUFBWEEsV0FBVztFQUFYQSxXQUFXO0VBQVhBLFdBQVc7QUFBQSxHQUFYQSxXQUFXLEtBQVhBLFdBQVc7QUFpR2hCLGVBQWVDLGFBQWFBLENBQUNDLElBQVUsRUFBRTtFQUN2QyxJQUFJQyxLQUFtQixHQUFHLElBQUk7RUFDOUJMLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQztFQUNyQyxNQUFNLElBQUFNLGtCQUFTLEVBQUMsTUFBTTtJQUNwQkQsS0FBSyxHQUFHRCxJQUFJLENBQ1RHLE1BQU0sQ0FBQyxDQUFDLENBQ1JDLElBQUksQ0FBRUMsQ0FBQyxJQUFLQSxDQUFDLENBQUNDLEdBQUcsQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLElBQUk7SUFDdEQsT0FBT0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsQ0FBQyxDQUFDUixLQUFLLENBQUM7RUFDakMsQ0FBQyxFQUFFLGlDQUFpQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7RUFFbEQsSUFBSSxDQUFDQSxLQUFLLEVBQUU7SUFDVkwsS0FBSyxDQUFDLDJDQUEyQyxDQUFDO0lBQ2xELE1BQU0sSUFBSWMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDO0VBQ25EO0VBRUEsT0FBT1QsS0FBSztBQUNkO0FBRUEsZUFBZVUsdUJBQXVCQSxDQUFDWCxJQUFVLEVBQUU7RUFDakQsTUFBTUMsS0FBSyxHQUFHLE1BQU1GLGFBQWEsQ0FBQ0MsSUFBSSxDQUFDO0VBQ3ZDLE1BQU1ZLFVBQVUsR0FBRyxNQUFNLElBQUFDLDBDQUFvQixFQUFDWixLQUFLLEVBQUUseUJBQXlCLENBQUM7RUFDL0UsTUFBTWEsWUFBWSxHQUFHRixVQUFVLEdBQUcsTUFBTSxJQUFBRyw4QkFBUSxFQUFDZCxLQUFLLEVBQUUseUJBQXlCLEVBQUUsRUFBRSxFQUFHZSxJQUFJLElBQUs7SUFDL0YsT0FBUUEsSUFBSSxDQUFvQkMsU0FBUztFQUMzQyxDQUFDLENBQUMsR0FBRyxFQUFFO0VBQ1AsT0FBT0gsWUFBWSxLQUFLbkIsc0JBQXNCO0FBQ2hEO0FBRUEsZUFBZXVCLHFCQUFxQkEsQ0FBQ2xCLElBQVUsRUFBRTtFQUMvQyxNQUFNQyxLQUFLLEdBQUcsTUFBTUYsYUFBYSxDQUFDQyxJQUFJLENBQUM7RUFDdkMsTUFBTVksVUFBVSxHQUFHLE1BQU0sSUFBQUMsMENBQW9CLEVBQUNaLEtBQUssRUFBRSwyQkFBMkIsQ0FBQztFQUNqRixPQUFPVyxVQUFVO0FBQ25CO0FBRUEsU0FBU08sdUJBQXVCQSxDQUFBLEVBQUc7RUFDakN2QixLQUFLLENBQUMsK0JBQStCLENBQUM7RUFDdEMsTUFBTXdCLElBQXFDLEdBQUc7SUFDNUMsQ0FBQ0Msb0NBQVksQ0FBQ0MsT0FBTyxHQUFHLENBQUMsWUFBWSxDQUFDO0lBQ3RDLENBQUNELG9DQUFZLENBQUNFLGVBQWUsR0FBRyxDQUFDLE1BQU9DLE9BQXlCLElBQUs7TUFDcEUsTUFBTXhCLElBQUksR0FBR3dCLE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFeEIsSUFBSTtNQUMxQixJQUFJLENBQUNBLElBQUksRUFBRTtRQUNULE9BQU8sS0FBSztNQUNkO01BQ0EsT0FBT1csdUJBQXVCLENBQUNYLElBQUksQ0FBQztJQUN0QyxDQUFDLENBQUM7SUFDRjtJQUNBLENBQUNxQixvQ0FBWSxDQUFDSSxjQUFjLEdBQUcsQ0FBQyxNQUFPRCxPQUF5QixJQUFLO01BQ25FLE1BQU14QixJQUFJLEdBQUd3QixPQUFPLGFBQVBBLE9BQU8sdUJBQVBBLE9BQU8sQ0FBRXhCLElBQUk7TUFDMUIsSUFBSSxDQUFDQSxJQUFJLEVBQUU7UUFDVCxPQUFPLEtBQUs7TUFDZDtNQUNBLE9BQU9rQixxQkFBcUIsQ0FBQ2xCLElBQUksQ0FBQztJQUNwQyxDQUFDO0VBQ0gsQ0FBQztFQUNELE9BQU9vQixJQUFJO0FBQ2I7QUFFQSxTQUFTTSxpQkFBaUJBLENBQUNDLFdBQXVDLEVBQUU7RUFDbEUvQixLQUFLLENBQUMsK0NBQStDLENBQUM7RUFDdEQsT0FBTyxDQUNMO0lBQUVnQyxRQUFRLEVBQUUsOEJBQThCO0lBQUV6QyxLQUFLLEVBQUV3QyxXQUFXLENBQUNFO0VBQVMsQ0FBQyxFQUN6RTtJQUFFRCxRQUFRLEVBQUUsOEJBQThCO0lBQUV6QyxLQUFLLEVBQUV3QyxXQUFXLENBQUNHO0VBQVMsQ0FBQyxDQUMxRTtBQUNIO0FBRUEsU0FBU0MsK0JBQStCQSxDQUFDQyxVQUFvQyxFQUFpQjtFQUM1RixNQUFNQyxZQUFZLEdBQUdELFVBQVUsQ0FDNUJFLE9BQU8sQ0FBRUMsU0FBUyxJQUFLQSxTQUFTLENBQUNDLE1BQU0sQ0FBQ0gsWUFBWSxDQUFDO0VBRXhELE1BQU1JLGdCQUFnQixHQUFHSixZQUFZLENBQ2xDQyxPQUFPLENBQUVJLFFBQVEsSUFBS0EsUUFBUSxDQUFDQyxVQUFVLENBQUM7RUFDN0MsTUFBTUMsa0JBQWtCLEdBQUdQLFlBQVksQ0FDcENDLE9BQU8sQ0FBRUksUUFBUSxJQUFLQSxRQUFRLENBQUNHLGVBQWUsQ0FBQ0MsU0FBUyxDQUFDO0VBRTVELE9BQU8sQ0FBQyxHQUFHTCxnQkFBZ0IsRUFBRSxHQUFHRyxrQkFBa0IsQ0FBQyxDQUNoRE4sT0FBTyxDQUFFUyxTQUFTLElBQUtBLFNBQVMsQ0FBQ0MsWUFBWSxDQUFDLENBQzlDQyxHQUFHLENBQUVDLFdBQVcsSUFBSztJQUNwQixNQUFNQyxZQUFZLEdBQUlELFdBQVcsQ0FBQ0UsYUFBYSxJQUFJRixXQUFXLENBQUNHLGFBQWEsSUFDNUU7TUFDRUMsTUFBTSxFQUFFSixXQUFXLENBQUNFLGFBQWE7TUFDakNHLEtBQUssRUFBRUwsV0FBVyxDQUFDRztJQUNyQixDQUFDLElBQ0NHLFNBQVM7SUFFWCxNQUFNQyxJQUFJLEdBQUcsSUFBQUMsZUFBTSxFQUFDUixXQUFXLENBQUNTLGVBQWUsQ0FBQztJQUVoRCxNQUFNQyxhQUFhLEdBQUdWLFdBQVcsQ0FBQ1cscUJBQXFCLEdBQUksQ0FBQyxDQUFFO0lBQzlELE1BQU1DLGNBQWMsR0FBR1osV0FBVyxDQUFDYSxNQUFNLEdBQUksQ0FBQyxDQUFFO0lBRWhELE1BQU12QixNQUFtQixHQUFHO01BQzFCd0IsVUFBVSxFQUFFZCxXQUFXLENBQUNlLFFBQVE7TUFDaENDLElBQUksRUFBRSxDQUFDaEUsV0FBVyxDQUFDaUUsT0FBTyxFQUFFakUsV0FBVyxDQUFDa0UsYUFBYSxDQUFDLENBQUN6RCxRQUFRLENBQUN1QyxXQUFXLENBQUNoRCxXQUFXLENBQUMsR0FDdEZtRSwrQkFBZ0IsQ0FBQ0MsTUFBTSxHQUN2QkQsK0JBQWdCLENBQUNFLFlBQVk7TUFDL0JDLE1BQU0sRUFBRUMsa0NBQW1CLENBQUNDLFNBQVM7TUFDckNqQixJQUFJLEVBQUVOLFlBQVksR0FDaEJNLElBQUksQ0FBQ2tCLEdBQUcsQ0FBQ3hCLFlBQVksQ0FBQ0csTUFBTSxHQUFHLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQ3NCLFdBQVcsQ0FBQyxDQUFDLEdBQ3hEbkIsSUFBSSxDQUFDbUIsV0FBVyxDQUFDLENBQUM7TUFDcEJDLGFBQWEsRUFBRSxJQUFJQyxJQUFJLENBQUM1QixXQUFXLENBQUM2QixVQUFVLENBQUMsQ0FBQ0gsV0FBVyxDQUFDLENBQUM7TUFDN0RkLGNBQWM7TUFDZGtCLGdCQUFnQixFQUFFOUIsV0FBVyxDQUFDK0IsaUJBQWlCO01BQy9DckIsYUFBYTtNQUNic0IsZUFBZSxFQUFFaEMsV0FBVyxDQUFDaUMsb0JBQW9CO01BQ2pEQyxXQUFXLEVBQUVsQyxXQUFXLENBQUNtQyxZQUFZO01BQ3JDQyxJQUFJLEVBQUVwQyxXQUFXLENBQUNxQyx1QkFBdUIsQ0FBQ0MsUUFBUSxDQUFDLENBQUM7TUFDcERDLFFBQVEsRUFBRXZDLFdBQVcsQ0FBQ3dDO0lBQ3hCLENBQUM7SUFFRCxJQUFJdkMsWUFBWSxFQUFFO01BQ2hCWCxNQUFNLENBQUNXLFlBQVksR0FBR0EsWUFBWTtJQUNwQztJQUVBLE9BQU9YLE1BQU07RUFDZixDQUFDLENBQUM7QUFDTjtBQUlBLE1BQU1tRCxjQUFjLFNBQVNDLDhDQUFzQixDQUE2QjtFQUFBQyxZQUFBLEdBQUFDLElBQUE7SUFBQSxTQUFBQSxJQUFBO0lBQUF6RyxlQUFBLHlCQUM3RCxZQUFZO01BQzNCVyxLQUFLLENBQUMscURBQXFELENBQUM7TUFDNUQsTUFBTSxJQUFBK0YsMkNBQXFCLEVBQUMsSUFBSSxDQUFDM0YsSUFBSSxFQUFFLG9CQUFvQixFQUFFLElBQUksQ0FBQztNQUNsRUosS0FBSyxDQUFDLDJCQUEyQixDQUFDO01BQ2xDLE1BQU0sSUFBQWdHLGlDQUFXLEVBQUMsSUFBSSxDQUFDNUYsSUFBSSxFQUFFLG9CQUFvQixDQUFDO01BQ2xESixLQUFLLENBQUMsb0NBQW9DLENBQUM7TUFDM0MsTUFBTUssS0FBSyxHQUFHLE1BQU1GLGFBQWEsQ0FBQyxJQUFJLENBQUNDLElBQUksQ0FBQztNQUM1Q0osS0FBSyxDQUFDLHVEQUF1RCxDQUFDO01BQzlELE1BQU0sSUFBQStGLDJDQUFxQixFQUFDMUYsS0FBSyxFQUFFLGdCQUFnQixDQUFDO01BQ3BETCxLQUFLLENBQUMsb0NBQW9DLENBQUM7TUFDM0MsTUFBTSxJQUFBZ0csaUNBQVcsRUFBQzNGLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQztNQUMxQ0wsS0FBSyxDQUFDLDZDQUE2QyxDQUFDO01BQ3BELE1BQU0sSUFBQStGLDJDQUFxQixFQUFDMUYsS0FBSyxFQUFFLGVBQWUsQ0FBQztNQUVuRCxPQUFPQSxLQUFLO0lBQ2QsQ0FBQztFQUFBO0VBRUQsTUFBTTRGLFFBQVFBLENBQUEsRUFBRztJQUNmLE1BQU1DLFFBQVEsR0FBRyxNQUFNLElBQUE1RixrQkFBUyxFQUM5QixNQUFNLElBQUE2Riw4QkFBcUIsRUFBZSxJQUFJLENBQUMvRixJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQzVELGtDQUFrQyxFQUNsQyxLQUFLLEVBQ0wsSUFDRixDQUFDO0lBQ0QsSUFBSSxDQUFDOEYsUUFBUSxFQUFFO01BQ2IsTUFBTSxJQUFJcEYsS0FBSyxDQUFDLGlEQUFpRCxDQUFDO0lBQ3BFO0lBQ0EsT0FBT29GLFFBQVEsYUFBUkEsUUFBUSx1QkFBUkEsUUFBUSxDQUFFMUQsTUFBTSxDQUFDNEQsS0FBSyxDQUFDbkQsR0FBRyxDQUFDLENBQUM7TUFBRW9ELFlBQVk7TUFBRUM7SUFBWSxDQUFDLE1BQU07TUFBRUQsWUFBWTtNQUFFQztJQUFZLENBQUMsQ0FBQyxDQUFDO0VBQ3ZHO0VBRUEsTUFBTUMsc0JBQXNCQSxDQUFBLEVBQUc7SUFDN0IsTUFBTUMsVUFBVSxHQUFHLE1BQU0sSUFBQUwsOEJBQXFCLEVBQXdDLElBQUksQ0FBQy9GLElBQUksRUFBRSxhQUFhLENBQUM7SUFDL0csSUFBSSxDQUFDb0csVUFBVSxFQUFFO01BQ2YsTUFBTSxJQUFJMUYsS0FBSyxDQUFDLG1EQUFtRCxDQUFDO0lBQ3RFO0lBQ0EsT0FBUSxpQkFBZ0IwRixVQUFVLENBQUNDLElBQUksQ0FBQ0MsZUFBZ0IsRUFBQztFQUMzRDtFQUVBLE1BQU1DLFVBQVVBLENBQUEsRUFBRztJQUNqQjtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFHSSxPQUFPL0YsT0FBTyxDQUFDQyxPQUFPLENBQUMsc0NBQXNDLENBQUM7RUFDaEU7RUFFQStGLGVBQWVBLENBQUM3RSxXQUF1QyxFQUFnQjtJQUNyRSxPQUFPO01BQ0w4RSxRQUFRLEVBQUcsR0FBRWhILFNBQVUsRUFBQztNQUN4QmlILE1BQU0sRUFBRWhGLGlCQUFpQixDQUFDQyxXQUFXLENBQUM7TUFDdENnRixvQkFBb0IsRUFBRSx1QkFBdUI7TUFDN0NDLGVBQWUsRUFBRXpGLHVCQUF1QixDQUFDLENBQUM7TUFDMUMwRixjQUFjLEVBQUUsTUFBQUEsQ0FBQSxLQUFZLElBQUFsQiwyQ0FBcUIsRUFBQyxJQUFJLENBQUMzRixJQUFJLEVBQUUsb0JBQW9CLENBQUM7TUFDbEY4RyxTQUFTLEVBQUUsSUFBSSxDQUFDQyxjQUFjO01BQzlCQyxVQUFVLEVBQUUsTUFBQUEsQ0FBQSxLQUFZO1FBQ3RCLElBQUk7VUFDRixNQUFNLElBQUFyQiwyQ0FBcUIsRUFBQyxJQUFJLENBQUMzRixJQUFJLEVBQUUsa0JBQWtCLENBQUM7VUFDMUQsTUFBTWlILFVBQVUsR0FBRyxNQUFNLElBQUFDLHlCQUFhLEVBQUMsSUFBSSxDQUFDbEgsSUFBSSxDQUFDO1VBQ2pELElBQUlpSCxVQUFVLENBQUNFLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUN4QyxNQUFNLElBQUF2QixpQ0FBVyxFQUFDLElBQUksQ0FBQzVGLElBQUksRUFBRSxrQkFBa0IsQ0FBQztVQUNsRDtRQUNGLENBQUMsQ0FBQyxPQUFPb0gsQ0FBQyxFQUFFO1VBQ1YsTUFBTUgsVUFBVSxHQUFHLE1BQU0sSUFBQUMseUJBQWEsRUFBQyxJQUFJLENBQUNsSCxJQUFJLENBQUM7VUFDakQsSUFBSWlILFVBQVUsQ0FBQ0UsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1VBQ3RDLE1BQU1FLHNCQUFzQixHQUFHLE1BQU1uRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUNsQixJQUFJLENBQUM7VUFDckUsSUFBSXFILHNCQUFzQixFQUFFO1VBQzVCLE1BQU1ELENBQUM7UUFDVDtNQUNGLENBQUM7TUFDREUsU0FBUyxFQUFFO0lBQ2IsQ0FBQztFQUNIO0VBRUFDLHdCQUF3QkEsQ0FBQ25GLE1BQTRELEVBQ2xEO0lBQ2pDLE9BQVFBLE1BQU0sQ0FBNEJBLE1BQU0sS0FBS2dCLFNBQVM7RUFDaEU7RUFFQSxNQUFNb0UsU0FBU0EsQ0FBQSxFQUFtQztJQUFBLElBQUFDLHFCQUFBO0lBQ2hELE1BQU1DLGtCQUFrQixHQUFHLElBQUFwRSxlQUFNLEVBQUMsQ0FBQyxDQUFDcUUsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQ0EsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQ3BELEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO0lBQzVGLE1BQU1xRCxTQUFTLEdBQUcsSUFBSSxDQUFDcEcsT0FBTyxDQUFDb0csU0FBUyxJQUFJRixrQkFBa0IsQ0FBQ0csTUFBTSxDQUFDLENBQUM7SUFDdkUsTUFBTUMsV0FBVyxHQUFHeEUsZUFBTSxDQUFDeUUsR0FBRyxDQUFDTCxrQkFBa0IsRUFBRSxJQUFBcEUsZUFBTSxFQUFDc0UsU0FBUyxDQUFDLENBQUM7SUFDckVoSSxLQUFLLENBQUUsK0JBQThCa0ksV0FBVyxDQUFDRSxNQUFNLENBQUMsQ0FBRSxFQUFDLENBQUM7SUFFNUQsTUFBTUMsYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDOUIsc0JBQXNCLENBQUMsQ0FBQztJQUN6RCxNQUFNSCxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUNILFFBQVEsQ0FBQyxDQUFDO0lBQ25DLE1BQU1xQyxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMzQixVQUFVLENBQUMsQ0FBQztJQUN2QyxNQUFNNEIsb0JBQW9CLElBQUFWLHFCQUFBLEdBQUcsSUFBSSxDQUFDakcsT0FBTyxDQUFDMkcsb0JBQW9CLGNBQUFWLHFCQUFBLGNBQUFBLHFCQUFBLEdBQUksQ0FBQztJQUVuRSxNQUFNbkYsUUFBUSxHQUFHLE1BQU05QixPQUFPLENBQUM0SCxHQUFHLENBQ2hDcEMsS0FBSyxDQUFDbkQsR0FBRyxDQUFDLE1BQU93RixJQUFJLElBQUs7TUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxzQkFBQTtNQUN4QjNJLEtBQUssQ0FBRSwrQkFBOEJ5SSxJQUFJLENBQUNwQyxZQUFhLEVBQUMsQ0FBQztNQUV6RCxNQUFNdUMsdUJBQXVCLEdBQUcsSUFBQWxGLGVBQU0sRUFBQyxDQUFDLENBQUNpQixHQUFHLENBQUM0RCxvQkFBb0IsRUFBRSxPQUFPLENBQUM7TUFDM0UsTUFBTU0sTUFBTSxHQUFHRCx1QkFBdUIsQ0FBQ0UsSUFBSSxDQUFDWixXQUFXLEVBQUUsUUFBUSxDQUFDO01BRWxFLE1BQU1hLGFBQXlDLEdBQUcsRUFBRTtNQUNwRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsSUFBSUgsTUFBTSxFQUFFRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ25DLE1BQU1DLEtBQUssR0FBR0wsdUJBQXVCLENBQUNNLEtBQUssQ0FBQyxDQUFDLENBQUNuQixRQUFRLENBQUNpQixDQUFDLEVBQUUsUUFBUSxDQUFDO1FBQ25FLE1BQU16RyxTQUFTLEdBQUcsTUFBTSxJQUFBNEcsMEJBQW1CLEVBQ3pDLElBQUksQ0FBQy9JLElBQUksRUFBRU4sNkJBQTZCLEVBQ3hDO1VBQUV1RyxZQUFZLEVBQUVvQyxJQUFJLENBQUNwQyxZQUFZO1VBQUU0QyxLQUFLLEVBQUVBLEtBQUssQ0FBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQztVQUFFZ0IsSUFBSSxFQUFFSCxLQUFLLENBQUNiLE1BQU0sQ0FBQyxNQUFNO1FBQUUsQ0FBQyxFQUN6RjtVQUNFQyxhQUFhO1VBQ2IsV0FBVyxFQUFFQyxPQUFPO1VBQ3BCLGNBQWMsRUFBRTtRQUNsQixDQUNGLENBQUM7UUFFRCxJQUFJLENBQUEvRixTQUFTLGFBQVRBLFNBQVMsdUJBQVRBLFNBQVMsQ0FBRThHLFVBQVUsTUFBSyxDQUFDLEVBQUUsTUFBTSxJQUFJdkksS0FBSyxDQUFFLHlDQUF3QzJILElBQUksQ0FBQ25DLFdBQVksY0FBYSxDQUFBL0QsU0FBUyxhQUFUQSxTQUFTLHVCQUFUQSxTQUFTLENBQUUrRyxLQUFLLEtBQUksRUFBRyxFQUFDLENBQUM7UUFFakosSUFBSSxDQUFDLElBQUksQ0FBQzNCLHdCQUF3QixDQUFDcEYsU0FBUyxDQUFDLEVBQUU7VUFDN0MsTUFBTSxJQUFJekIsS0FBSyxDQUFDLGlEQUFpRCxDQUFDO1FBQ3BFO1FBRUFpSSxhQUFhLENBQUNRLElBQUksQ0FBQ2hILFNBQVMsQ0FBQztNQUMvQjtNQUVBLE1BQU1TLFlBQVksR0FBR2IsK0JBQStCLENBQUM0RyxhQUFhLENBQUM7TUFFbkUvSSxLQUFLLENBQUMsNEJBQTRCLENBQUM7TUFDbkMsTUFBTXdKLElBQUksR0FBRyxFQUFBZCxxQkFBQSxJQUFBQyxzQkFBQSxHQUFDLElBQUksQ0FBQy9HLE9BQU8sQ0FBQzZILFVBQVUsY0FBQWQsc0JBQUEsdUJBQXZCQSxzQkFBQSxDQUF5QmUsOEJBQThCLGNBQUFoQixxQkFBQSxjQUFBQSxxQkFBQSxHQUFJLElBQUksSUFDM0UsSUFBQWlCLG1DQUFxQixFQUFDM0csWUFBWSxFQUFFLElBQUFVLGVBQU0sRUFBQ3NFLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQ3BHLE9BQU8sQ0FBQ2dJLG1CQUFtQixJQUFJLEtBQUssQ0FBQyxHQUNqRzVHLFlBQVk7TUFFZCxPQUFPO1FBQ0x3RyxJQUFJO1FBQ0pLLGFBQWEsRUFBRXBCLElBQUksQ0FBQ25DO01BQ3RCLENBQUM7SUFDSCxDQUFDLENBQ0gsQ0FBQztJQUVEdEcsS0FBSyxDQUFDLDZCQUE2QixDQUFDO0lBRXBDQSxLQUFLLENBQUM4SixJQUFJLENBQUNDLFNBQVMsQ0FBQ3JILFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEMsT0FBTztNQUNMc0gsT0FBTyxFQUFFLElBQUk7TUFDYnRIO0lBQ0YsQ0FBQztFQUNIO0FBQ0Y7QUFBQyxJQUFBdUgsUUFBQSxHQUVjdEUsY0FBYztBQUFBdUUsT0FBQSxDQUFBOUssT0FBQSxHQUFBNkssUUFBQSJ9
258
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVidWciLCJfZWxlbWVudHNJbnRlcmFjdGlvbnMiLCJfZmV0Y2giLCJfbmF2aWdhdGlvbiIsIl9zdG9yYWdlIiwiX3RyYW5zYWN0aW9ucyIsIl93YWl0aW5nIiwiX3RyYW5zYWN0aW9uczIiLCJfYmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2RlZmluZVByb3BlcnR5Iiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIkxPR0lOX1VSTCIsIlRSQU5TQUNUSU9OU19SRVFVRVNUX0VORFBPSU5UIiwiSW52YWxpZFBhc3N3b3JkTWVzc2FnZSIsImRlYnVnIiwiZ2V0RGVidWciLCJ0cm5UeXBlQ29kZSIsImdldExvZ2luRnJhbWUiLCJwYWdlIiwiZnJhbWUiLCJ3YWl0VW50aWwiLCJmcmFtZXMiLCJmaW5kIiwiZiIsInVybCIsImluY2x1ZGVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJFcnJvciIsImhhc0ludmFsaWRQYXNzd29yZEVycm9yIiwiZXJyb3JGb3VuZCIsImVsZW1lbnRQcmVzZW50T25QYWdlIiwiZXJyb3JNZXNzYWdlIiwicGFnZUV2YWwiLCJpdGVtIiwiaW5uZXJUZXh0IiwiaGFzQ2hhbmdlUGFzc3dvcmRGb3JtIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJ1cmxzIiwiTG9naW5SZXN1bHRzIiwiU3VjY2VzcyIsIkludmFsaWRQYXNzd29yZCIsIm9wdGlvbnMiLCJDaGFuZ2VQYXNzd29yZCIsImNyZWF0ZUxvZ2luRmllbGRzIiwiY3JlZGVudGlhbHMiLCJzZWxlY3RvciIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJjb252ZXJ0UGFyc2VkRGF0YVRvVHJhbnNhY3Rpb25zIiwicGFyc2VkRGF0YSIsImJhbmtBY2NvdW50cyIsImZsYXRNYXAiLCJtb250aERhdGEiLCJyZXN1bHQiLCJyZWd1bGFyRGViaXREYXlzIiwiYWNjb3VudHMiLCJkZWJpdERhdGVzIiwiaW1tZWRpYXRlRGViaXREYXlzIiwiaW1taWRpYXRlRGViaXRzIiwiZGViaXREYXlzIiwiZGViaXREYXRlIiwidHJhbnNhY3Rpb25zIiwibWFwIiwidHJhbnNhY3Rpb24iLCJpbnN0YWxsbWVudHMiLCJjdXJQYXltZW50TnVtIiwibnVtT2ZQYXltZW50cyIsIm51bWJlciIsInRvdGFsIiwidW5kZWZpbmVkIiwiZGF0ZSIsIm1vbWVudCIsInRyblB1cmNoYXNlRGF0ZSIsImNoYXJnZWRBbW91bnQiLCJhbXRCZWZvcmVDb252QW5kSW5kZXgiLCJvcmlnaW5hbEFtb3VudCIsInRybkFtdCIsImlkZW50aWZpZXIiLCJ0cm5JbnRJZCIsInR5cGUiLCJyZWd1bGFyIiwic3RhbmRpbmdPcmRlciIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJJbnN0YWxsbWVudHMiLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiQ29tcGxldGVkIiwiYWRkIiwidG9JU09TdHJpbmciLCJwcm9jZXNzZWREYXRlIiwiRGF0ZSIsImRlYkNyZERhdGUiLCJvcmlnaW5hbEN1cnJlbmN5IiwidHJuQ3VycmVuY3lTeW1ib2wiLCJjaGFyZ2VkQ3VycmVuY3kiLCJkZWJDcmRDdXJyZW5jeVN5bWJvbCIsImRlc2NyaXB0aW9uIiwibWVyY2hhbnROYW1lIiwibWVtbyIsInRyYW5zVHlwZUNvbW1lbnREZXRhaWxzIiwidG9TdHJpbmciLCJjYXRlZ29yeSIsImJyYW5jaENvZGVEZXNjIiwiVmlzYUNhbFNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiY29uc3RydWN0b3IiLCJhcmdzIiwid2FpdFVudGlsRWxlbWVudEZvdW5kIiwiY2xpY2tCdXR0b24iLCJnZXRDYXJkcyIsImluaXREYXRhIiwiZ2V0RnJvbVNlc3Npb25TdG9yYWdlIiwiY2FyZHMiLCJjYXJkVW5pcXVlSWQiLCJsYXN0NERpZ2l0cyIsImdldEF1dGhvcml6YXRpb25IZWFkZXIiLCJhdXRoTW9kdWxlIiwiYXV0aCIsImNhbENvbm5lY3RUb2tlbiIsImdldFhTaXRlSWQiLCJnZXRMb2dpbk9wdGlvbnMiLCJsb2dpblVybCIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwicG9zc2libGVSZXN1bHRzIiwiY2hlY2tSZWFkaW5lc3MiLCJwcmVBY3Rpb24iLCJvcGVuTG9naW5Qb3B1cCIsInBvc3RBY3Rpb24iLCJjdXJyZW50VXJsIiwiZ2V0Q3VycmVudFVybCIsImVuZHNXaXRoIiwiZSIsInJlcXVpcmVzQ2hhbmdlUGFzc3dvcmQiLCJ1c2VyQWdlbnQiLCJpc0NhcmRUcmFuc2FjdGlvbkRldGFpbHMiLCJmZXRjaERhdGEiLCJfdGhpcyRvcHRpb25zJGZ1dHVyZU0iLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInN0YXJ0RGF0ZSIsInRvRGF0ZSIsInN0YXJ0TW9tZW50IiwibWF4IiwiZm9ybWF0IiwiQXV0aG9yaXphdGlvbiIsInhTaXRlSWQiLCJmdXR1cmVNb250aHNUb1NjcmFwZSIsImFsbCIsImNhcmQiLCJfdGhpcyRvcHRpb25zJG91dHB1dEQiLCJfdGhpcyRvcHRpb25zJG91dHB1dEQyIiwiZmluYWxNb250aFRvRmV0Y2hNb21lbnQiLCJtb250aHMiLCJkaWZmIiwiYWxsTW9udGhzRGF0YSIsImkiLCJtb250aCIsImNsb25lIiwiZmV0Y2hQb3N0V2l0aGluUGFnZSIsInllYXIiLCJzdGF0dXNDb2RlIiwidGl0bGUiLCJwdXNoIiwidHhucyIsIm91dHB1dERhdGEiLCJlbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUiLCJmaWx0ZXJPbGRUcmFuc2FjdGlvbnMiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwiYWNjb3VudE51bWJlciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdWNjZXNzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmFwZXJzL3Zpc2EtY2FsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEZyYW1lLCBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcblxuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcbmltcG9ydCB7XG4gIGNsaWNrQnV0dG9uLCBlbGVtZW50UHJlc2VudE9uUGFnZSwgcGFnZUV2YWwsIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCxcbn0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hQb3N0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFVybCB9IGZyb20gJy4uL2hlbHBlcnMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBnZXRGcm9tU2Vzc2lvblN0b3JhZ2UgfSBmcm9tICcuLi9oZWxwZXJzL3N0b3JhZ2UnO1xuaW1wb3J0IHsgZmlsdGVyT2xkVHJhbnNhY3Rpb25zIH0gZnJvbSAnLi4vaGVscGVycy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgd2FpdFVudGlsIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvblN0YXR1c2VzLFxuICBUcmFuc2FjdGlvblR5cGVzLFxuICBUcmFuc2FjdGlvbnNBY2NvdW50LFxufSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5PcHRpb25zLCBMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgU2NyYXBlclNjcmFwaW5nUmVzdWx0IH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuXG5jb25zdCBMT0dJTl9VUkwgPSAnaHR0cHM6Ly93d3cuY2FsLW9ubGluZS5jby5pbC8nO1xuY29uc3QgVFJBTlNBQ1RJT05TX1JFUVVFU1RfRU5EUE9JTlQgPSAnaHR0cHM6Ly9hcGkuY2FsLW9ubGluZS5jby5pbC9UcmFuc2FjdGlvbnMvYXBpL3RyYW5zYWN0aW9uc0RldGFpbHMvZ2V0Q2FyZFRyYW5zYWN0aW9uc0RldGFpbHMnO1xuXG5jb25zdCBJbnZhbGlkUGFzc3dvcmRNZXNzYWdlID0gJ9ep150g15TXntep16rXntepINeQ15Ug15TXodeZ16HXnteUINep15TXldeW16DXlSDXqdeS15XXmdeZ150nO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCd2aXNhLWNhbCcpO1xuXG5lbnVtIHRyblR5cGVDb2RlIHtcbiAgcmVndWxhciA9ICc1JyxcbiAgY3JlZGl0ID0gJzYnLFxuICBpbnN0YWxsbWVudHMgPSAnOCcsXG4gIHN0YW5kaW5nT3JkZXIgPSAnOScsXG59XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBhbXRCZWZvcmVDb252QW5kSW5kZXg6IG51bWJlcjtcbiAgYnJhbmNoQ29kZURlc2M6IHN0cmluZztcbiAgY2FzaEFjY01hbmFnZXJOYW1lOiBudWxsO1xuICBjYXNoQWNjb3VudE1hbmFnZXI6IG51bGw7XG4gIGNhc2hBY2NvdW50VHJuQW10OiBudW1iZXI7XG4gIGNoYXJnZUV4dGVybmFsVG9DYXJkQ29tbWVudDogc3RyaW5nO1xuICBjb21tZW50czogW107XG4gIGN1clBheW1lbnROdW06IG51bWJlcjtcbiAgZGViQ3JkQ3VycmVuY3lTeW1ib2w6IEN1cnJlbmN5U3ltYm9sO1xuICBkZWJDcmREYXRlOiBzdHJpbmc7XG4gIGRlYml0U3ByZWFkSW5kOiBib29sZWFuO1xuICBkaXNjb3VudEFtb3VudDogdW5rbm93bjtcbiAgZGlzY291bnRSZWFzb246IHVua25vd247XG4gIGltbWVkaWF0ZUNvbW1lbnRzOiBbXTtcbiAgaXNJbW1lZGlhdGVDb21tZW50SW5kOiBib29sZWFuO1xuICBpc0ltbWVkaWF0ZUhIS0luZDogYm9vbGVhbjtcbiAgaXNNYXJnYXJpdGE6IGJvb2xlYW47XG4gIGlzU3ByZWFkUGF5bWVuc3RBYnJvYWQ6IGJvb2xlYW47XG4gIGxpbmtlZENvbW1lbnRzOiBbXTtcbiAgbWVyY2hhbnRBZGRyZXNzOiBzdHJpbmc7XG4gIG1lcmNoYW50TmFtZTogc3RyaW5nO1xuICBtZXJjaGFudFBob25lTm86IHN0cmluZztcbiAgbnVtT2ZQYXltZW50czogbnVtYmVyO1xuICBvbkdvaW5nVHJhbnNhY3Rpb25zQ29tbWVudDogc3RyaW5nO1xuICByZWZ1bmRJbmQ6IGJvb2xlYW47XG4gIHJvdW5kaW5nQW1vdW50OiB1bmtub3duO1xuICByb3VuZGluZ1JlYXNvbjogdW5rbm93bjtcbiAgdG9rZW5JbmQ6IDA7XG4gIHRva2VuTnVtYmVyUGFydDQ6ICcnO1xuICB0cmFuc0NhcmRQcmVzZW50SW5kOiBib29sZWFuO1xuICB0cmFuc1R5cGVDb21tZW50RGV0YWlsczogW107XG4gIHRybkFtdDogbnVtYmVyO1xuICB0cm5DdXJyZW5jeVN5bWJvbDogQ3VycmVuY3lTeW1ib2w7XG4gIHRybkV4YWNXYXk6IG51bWJlcjtcbiAgdHJuSW50SWQ6IHN0cmluZztcbiAgdHJuTnVtYXJldG9yOiBudW1iZXI7XG4gIHRyblB1cmNoYXNlRGF0ZTogc3RyaW5nO1xuICB0cm5UeXBlOiBzdHJpbmc7XG4gIHRyblR5cGVDb2RlOiB0cm5UeXBlQ29kZTtcbiAgd2FsbGV0UHJvdmlkZXJDb2RlOiAwO1xuICB3YWxsZXRQcm92aWRlckRlc2M6ICcnO1xufVxuaW50ZXJmYWNlIEluaXRSZXNwb25zZSB7XG4gIHJlc3VsdDoge1xuICAgIGNhcmRzOiB7XG4gICAgICBjYXJkVW5pcXVlSWQ6IHN0cmluZztcbiAgICAgIGxhc3Q0RGlnaXRzOiBzdHJpbmc7XG4gICAgICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICAgIH1bXTtcbiAgfTtcbn1cbnR5cGUgQ3VycmVuY3lTeW1ib2wgPSAn4oKqJyB8IHN0cmluZztcbmludGVyZmFjZSBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzRXJyb3Ige1xuICB0aXRsZTogc3RyaW5nO1xuICBzdGF0dXNDb2RlOiBudW1iZXI7XG59XG5pbnRlcmZhY2UgQ2FyZFRyYW5zYWN0aW9uRGV0YWlscyBleHRlbmRzIENhcmRUcmFuc2FjdGlvbkRldGFpbHNFcnJvciB7XG4gIHJlc3VsdDoge1xuICAgIGJhbmtBY2NvdW50czoge1xuICAgICAgYmFua0FjY291bnROdW06IHN0cmluZztcbiAgICAgIGJhbmtOYW1lOiBzdHJpbmc7XG4gICAgICBjaG9pY2VFeHRlcm5hbFRyYW5zYWN0aW9uczogYW55O1xuICAgICAgY3VycmVudEJhbmtBY2NvdW50SW5kOiBib29sZWFuO1xuICAgICAgZGViaXREYXRlczoge1xuICAgICAgICBiYXNrZXRBbW91bnRDb21tZW50OiB1bmtub3duO1xuICAgICAgICBjaG9pY2VISEtEZWJpdDogbnVtYmVyO1xuICAgICAgICBkYXRlOiBzdHJpbmc7XG4gICAgICAgIGRlYml0UmVhc29uOiB1bmtub3duO1xuICAgICAgICBmaXhEZWJpdEFtb3VudDogbnVtYmVyO1xuICAgICAgICBmcm9tUHVyY2hhc2VEYXRlOiBzdHJpbmc7XG4gICAgICAgIGlzQ2hvaWNlUmVwYWltZW50OiBib29sZWFuO1xuICAgICAgICB0b1B1cmNoYXNlRGF0ZTogc3RyaW5nO1xuICAgICAgICB0b3RhbEJhc2tldEFtb3VudDogbnVtYmVyO1xuICAgICAgICB0b3RhbERlYml0czoge1xuICAgICAgICAgIGN1cnJlbmN5U3ltYm9sOiBDdXJyZW5jeVN5bWJvbDtcbiAgICAgICAgICBhbW91bnQ6IG51bWJlcjtcbiAgICAgICAgfVtdO1xuICAgICAgICB0cmFuc2FjdGlvbnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xuICAgICAgfVtdO1xuICAgICAgaW1taWRpYXRlRGViaXRzOiB7IHRvdGFsRGViaXRzOiBbXSwgZGViaXREYXlzOiBbXSB9O1xuICAgIH1bXTtcbiAgICBibG9ja2VkQ2FyZEluZDogYm9vbGVhbjtcbiAgfTtcbiAgc3RhdHVzQ29kZTogMTtcbiAgc3RhdHVzRGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhdHVzVGl0bGU6IHN0cmluZztcbn1cblxuXG5hc3luYyBmdW5jdGlvbiBnZXRMb2dpbkZyYW1lKHBhZ2U6IFBhZ2UpIHtcbiAgbGV0IGZyYW1lOiBGcmFtZSB8IG51bGwgPSBudWxsO1xuICBkZWJ1Zygnd2FpdCB1bnRpbCBsb2dpbiBmcmFtZSBmb3VuZCcpO1xuICBhd2FpdCB3YWl0VW50aWwoKCkgPT4ge1xuICAgIGZyYW1lID0gcGFnZVxuICAgICAgLmZyYW1lcygpXG4gICAgICAuZmluZCgoZikgPT4gZi51cmwoKS5pbmNsdWRlcygnY29ubmVjdCcpKSB8fCBudWxsO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoISFmcmFtZSk7XG4gIH0sICd3YWl0IGZvciBpZnJhbWUgd2l0aCBsb2dpbiBmb3JtJywgMTAwMDAsIDEwMDApO1xuXG4gIGlmICghZnJhbWUpIHtcbiAgICBkZWJ1ZygnZmFpbGVkIHRvIGZpbmQgbG9naW4gZnJhbWUgZm9yIDEwIHNlY29uZHMnKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWxlZCB0byBleHRyYWN0IGxvZ2luIGlmcmFtZScpO1xuICB9XG5cbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNJbnZhbGlkUGFzc3dvcmRFcnJvcihwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGZyYW1lID0gYXdhaXQgZ2V0TG9naW5GcmFtZShwYWdlKTtcbiAgY29uc3QgZXJyb3JGb3VuZCA9IGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKGZyYW1lLCAnZGl2LmdlbmVyYWwtZXJyb3IgPiBkaXYnKTtcbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3JGb3VuZCA/IGF3YWl0IHBhZ2VFdmFsKGZyYW1lLCAnZGl2LmdlbmVyYWwtZXJyb3IgPiBkaXYnLCAnJywgKGl0ZW0pID0+IHtcbiAgICByZXR1cm4gKGl0ZW0gYXMgSFRNTERpdkVsZW1lbnQpLmlubmVyVGV4dDtcbiAgfSkgOiAnJztcbiAgcmV0dXJuIGVycm9yTWVzc2FnZSA9PT0gSW52YWxpZFBhc3N3b3JkTWVzc2FnZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFzQ2hhbmdlUGFzc3dvcmRGb3JtKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3QgZnJhbWUgPSBhd2FpdCBnZXRMb2dpbkZyYW1lKHBhZ2UpO1xuICBjb25zdCBlcnJvckZvdW5kID0gYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UoZnJhbWUsICcuY2hhbmdlLXBhc3N3b3JkLXN1YnRpdGxlJyk7XG4gIHJldHVybiBlcnJvckZvdW5kO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpIHtcbiAgZGVidWcoJ3JldHVybiBwb3NzaWJsZSBsb2dpbiByZXN1bHRzJyk7XG4gIGNvbnN0IHVybHM6IExvZ2luT3B0aW9uc1sncG9zc2libGVSZXN1bHRzJ10gPSB7XG4gICAgW0xvZ2luUmVzdWx0cy5TdWNjZXNzXTogWy9kYXNoYm9hcmQvaV0sXG4gICAgW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdOiBbYXN5bmMgKG9wdGlvbnM/OiB7IHBhZ2U/OiBQYWdlIH0pID0+IHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBvcHRpb25zPy5wYWdlO1xuICAgICAgaWYgKCFwYWdlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNJbnZhbGlkUGFzc3dvcmRFcnJvcihwYWdlKTtcbiAgICB9XSxcbiAgICAvLyBbTG9naW5SZXN1bHRzLkFjY291bnRCbG9ja2VkXTogW10sIC8vIFRPRE8gYWRkIHdoZW4gcmVhY2hpbmcgdGhpcyBzY2VuYXJpb1xuICAgIFtMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdOiBbYXN5bmMgKG9wdGlvbnM/OiB7IHBhZ2U/OiBQYWdlIH0pID0+IHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBvcHRpb25zPy5wYWdlO1xuICAgICAgaWYgKCFwYWdlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNDaGFuZ2VQYXNzd29yZEZvcm0ocGFnZSk7XG4gICAgfV0sXG4gIH07XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgZGVidWcoJ2NyZWF0ZSBsb2dpbiBmaWVsZHMgZm9yIHVzZXJuYW1lIGFuZCBwYXNzd29yZCcpO1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICdbZm9ybWNvbnRyb2xuYW1lPVwidXNlck5hbWVcIl0nLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnW2Zvcm1jb250cm9sbmFtZT1cInBhc3N3b3JkXCJdJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRQYXJzZWREYXRhVG9UcmFuc2FjdGlvbnMocGFyc2VkRGF0YTogQ2FyZFRyYW5zYWN0aW9uRGV0YWlsc1tdKTogVHJhbnNhY3Rpb25bXSB7XG4gIGNvbnN0IGJhbmtBY2NvdW50cyA9IHBhcnNlZERhdGFcbiAgICAuZmxhdE1hcCgobW9udGhEYXRhKSA9PiBtb250aERhdGEucmVzdWx0LmJhbmtBY2NvdW50cyk7XG5cbiAgY29uc3QgcmVndWxhckRlYml0RGF5cyA9IGJhbmtBY2NvdW50c1xuICAgIC5mbGF0TWFwKChhY2NvdW50cykgPT4gYWNjb3VudHMuZGViaXREYXRlcyk7XG4gIGNvbnN0IGltbWVkaWF0ZURlYml0RGF5cyA9IGJhbmtBY2NvdW50c1xuICAgIC5mbGF0TWFwKChhY2NvdW50cykgPT4gYWNjb3VudHMuaW1taWRpYXRlRGViaXRzLmRlYml0RGF5cyk7XG5cbiAgcmV0dXJuIFsuLi5yZWd1bGFyRGViaXREYXlzLCAuLi5pbW1lZGlhdGVEZWJpdERheXNdXG4gICAgLmZsYXRNYXAoKGRlYml0RGF0ZSkgPT4gZGViaXREYXRlLnRyYW5zYWN0aW9ucylcbiAgICAubWFwKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgY29uc3QgaW5zdGFsbG1lbnRzID0gKHRyYW5zYWN0aW9uLmN1clBheW1lbnROdW0gJiYgdHJhbnNhY3Rpb24ubnVtT2ZQYXltZW50cyAmJlxuICAgICAge1xuICAgICAgICBudW1iZXI6IHRyYW5zYWN0aW9uLmN1clBheW1lbnROdW0sXG4gICAgICAgIHRvdGFsOiB0cmFuc2FjdGlvbi5udW1PZlBheW1lbnRzLFxuICAgICAgfSkgfHxcbiAgICAgICAgdW5kZWZpbmVkO1xuXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50KHRyYW5zYWN0aW9uLnRyblB1cmNoYXNlRGF0ZSk7XG5cbiAgICAgIGNvbnN0IGNoYXJnZWRBbW91bnQgPSB0cmFuc2FjdGlvbi5hbXRCZWZvcmVDb252QW5kSW5kZXggKiAoLTEpO1xuICAgICAgY29uc3Qgb3JpZ2luYWxBbW91bnQgPSB0cmFuc2FjdGlvbi50cm5BbXQgKiAoLTEpO1xuXG4gICAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uID0ge1xuICAgICAgICBpZGVudGlmaWVyOiB0cmFuc2FjdGlvbi50cm5JbnRJZCxcbiAgICAgICAgdHlwZTogW3RyblR5cGVDb2RlLnJlZ3VsYXIsIHRyblR5cGVDb2RlLnN0YW5kaW5nT3JkZXJdLmluY2x1ZGVzKHRyYW5zYWN0aW9uLnRyblR5cGVDb2RlKSA/XG4gICAgICAgICAgVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwgOlxuICAgICAgICAgIFRyYW5zYWN0aW9uVHlwZXMuSW5zdGFsbG1lbnRzLFxuICAgICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgICAgICBkYXRlOiBpbnN0YWxsbWVudHMgP1xuICAgICAgICAgIGRhdGUuYWRkKGluc3RhbGxtZW50cy5udW1iZXIgLSAxLCAnbW9udGgnKS50b0lTT1N0cmluZygpIDpcbiAgICAgICAgICBkYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIHByb2Nlc3NlZERhdGU6IG5ldyBEYXRlKHRyYW5zYWN0aW9uLmRlYkNyZERhdGUpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIG9yaWdpbmFsQW1vdW50LFxuICAgICAgICBvcmlnaW5hbEN1cnJlbmN5OiB0cmFuc2FjdGlvbi50cm5DdXJyZW5jeVN5bWJvbCxcbiAgICAgICAgY2hhcmdlZEFtb3VudCxcbiAgICAgICAgY2hhcmdlZEN1cnJlbmN5OiB0cmFuc2FjdGlvbi5kZWJDcmRDdXJyZW5jeVN5bWJvbCxcbiAgICAgICAgZGVzY3JpcHRpb246IHRyYW5zYWN0aW9uLm1lcmNoYW50TmFtZSxcbiAgICAgICAgbWVtbzogdHJhbnNhY3Rpb24udHJhbnNUeXBlQ29tbWVudERldGFpbHMudG9TdHJpbmcoKSxcbiAgICAgICAgY2F0ZWdvcnk6IHRyYW5zYWN0aW9uLmJyYW5jaENvZGVEZXNjLFxuICAgICAgfTtcblxuICAgICAgaWYgKGluc3RhbGxtZW50cykge1xuICAgICAgICByZXN1bHQuaW5zdGFsbG1lbnRzID0gaW5zdGFsbG1lbnRzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xufVxuXG50eXBlIFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzID0geyB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nIH07XG5cbmNsYXNzIFZpc2FDYWxTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBvcGVuTG9naW5Qb3B1cCA9IGFzeW5jICgpID0+IHtcbiAgICBkZWJ1Zygnb3BlbiBsb2dpbiBwb3B1cCwgd2FpdCB1bnRpbCBsb2dpbiBidXR0b24gYXZhaWxhYmxlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicsIHRydWUpO1xuICAgIGRlYnVnKCdjbGljayBvbiB0aGUgbG9naW4gYnV0dG9uJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnI2NjTG9naW5EZXNrdG9wQnRuJyk7XG4gICAgZGVidWcoJ2dldCB0aGUgZnJhbWUgdGhhdCBob2xkcyB0aGUgbG9naW4nKTtcbiAgICBjb25zdCBmcmFtZSA9IGF3YWl0IGdldExvZ2luRnJhbWUodGhpcy5wYWdlKTtcbiAgICBkZWJ1Zygnd2FpdCB1bnRpbCB0aGUgcGFzc3dvcmQgbG9naW4gdGFiIGhlYWRlciBpcyBhdmFpbGFibGUnKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQoZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCduYXZpZ2F0ZSB0byB0aGUgcGFzc3dvcmQgbG9naW4gdGFiJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24oZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCd3YWl0IHVudGlsIHRoZSBwYXNzd29yZCBsb2dpbiB0YWIgaXMgYWN0aXZlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKGZyYW1lLCAncmVndWxhci1sb2dpbicpO1xuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9O1xuXG4gIGFzeW5jIGdldENhcmRzKCkge1xuICAgIGNvbnN0IGluaXREYXRhID0gYXdhaXQgd2FpdFVudGlsKFxuICAgICAgKCkgPT4gZ2V0RnJvbVNlc3Npb25TdG9yYWdlPEluaXRSZXNwb25zZT4odGhpcy5wYWdlLCAnaW5pdCcpLFxuICAgICAgJ2dldCBpbml0IGRhdGEgaW4gc2Vzc2lvbiBzdG9yYWdlJyxcbiAgICAgIDEwMDAwLFxuICAgICAgMTAwMCxcbiAgICApO1xuICAgIGlmICghaW5pdERhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IGZpbmQgXFwnaW5pdFxcJyBkYXRhIGluIHNlc3Npb24gc3RvcmFnZScpO1xuICAgIH1cbiAgICByZXR1cm4gaW5pdERhdGE/LnJlc3VsdC5jYXJkcy5tYXAoKHsgY2FyZFVuaXF1ZUlkLCBsYXN0NERpZ2l0cyB9KSA9PiAoeyBjYXJkVW5pcXVlSWQsIGxhc3Q0RGlnaXRzIH0pKTtcbiAgfVxuXG4gIGFzeW5jIGdldEF1dGhvcml6YXRpb25IZWFkZXIoKSB7XG4gICAgY29uc3QgYXV0aE1vZHVsZSA9IGF3YWl0IGdldEZyb21TZXNzaW9uU3RvcmFnZTx7IGF1dGg6IHsgY2FsQ29ubmVjdFRva2VuOiBzdHJpbmcgfSB9Pih0aGlzLnBhZ2UsICdhdXRoLW1vZHVsZScpO1xuICAgIGlmICghYXV0aE1vZHVsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgZmluZCBcXCdhdXRoLW1vZHVsZVxcJyBpbiBzZXNzaW9uIHN0b3JhZ2UnKTtcbiAgICB9XG4gICAgcmV0dXJuIGBDQUxBdXRoU2NoZW1lICR7YXV0aE1vZHVsZS5hdXRoLmNhbENvbm5lY3RUb2tlbn1gO1xuICB9XG5cbiAgYXN5bmMgZ2V0WFNpdGVJZCgpIHtcbiAgICAvKlxuICAgICAgSSBkb24ndCBrbm93IGlmIHRoZSBjb25zdGFudCBiZWxvdyB3aWxsIGNoYW5nZSBpbiB0aGUgZmVhdHVyZS5cbiAgICAgIElmIHNvLCB1c2UgdGhlIG5leHQgY29kZTpcblxuICAgICAgcmV0dXJuIHRoaXMucGFnZS5ldmFsdWF0ZSgoKSA9PiBuZXcgVXQoKS54U2l0ZUlkKTtcblxuICAgICAgVG8gZ2V0IHRoZSBjbGFzc25hbWUgc2VhcmNoIGZvciAneFNpdGVJZCcgaW4gdGhlIHBhZ2Ugc291cmNlXG4gICAgICBjbGFzcyBVdCB7XG4gICAgICAgIGNvbnN0cnVjdG9yKF9lLCBvbiwgeW4pIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUgPSBfZSxcbiAgICAgICAgICAgIHRoaXMuY29uZmlnID0gb24sXG4gICAgICAgICAgICB0aGlzLmV2ZW50QnVzU2VydmljZSA9IHluLFxuICAgICAgICAgICAgdGhpcy54U2l0ZUlkID0gXCIwOTAzMTk4Ny0yNzNFLTIzMTEtOTA2Qy04QUY4NUIxN0M4RDlcIixcbiAgICAqL1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoJzA5MDMxOTg3LTI3M0UtMjMxMS05MDZDLThBRjg1QjE3QzhEOScpO1xuICB9XG5cbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyk6IExvZ2luT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBgJHtMT0dJTl9VUkx9YCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICdidXR0b25bdHlwZT1cInN1Ym1pdFwiXScsXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCksXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4gd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicpLFxuICAgICAgcHJlQWN0aW9uOiB0aGlzLm9wZW5Mb2dpblBvcHVwLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICdidXR0b24uYnRuLWNsb3NlJyk7XG4gICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IGF3YWl0IGdldEN1cnJlbnRVcmwodGhpcy5wYWdlKTtcbiAgICAgICAgICBpZiAoY3VycmVudFVybC5lbmRzV2l0aCgnc2l0ZS10dXRvcmlhbCcpKSB7XG4gICAgICAgICAgICBhd2FpdCBjbGlja0J1dHRvbih0aGlzLnBhZ2UsICdidXR0b24uYnRuLWNsb3NlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IGF3YWl0IGdldEN1cnJlbnRVcmwodGhpcy5wYWdlKTtcbiAgICAgICAgICBpZiAoY3VycmVudFVybC5lbmRzV2l0aCgnZGFzaGJvYXJkJykpIHJldHVybjtcbiAgICAgICAgICBjb25zdCByZXF1aXJlc0NoYW5nZVBhc3N3b3JkID0gYXdhaXQgaGFzQ2hhbmdlUGFzc3dvcmRGb3JtKHRoaXMucGFnZSk7XG4gICAgICAgICAgaWYgKHJlcXVpcmVzQ2hhbmdlUGFzc3dvcmQpIHJldHVybjtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlckFnZW50OiAnTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNzguMC4zOTA0LjEwOCBTYWZhcmkvNTM3LjM2JyxcbiAgICB9O1xuICB9XG5cbiAgaXNDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKHJlc3VsdDogQ2FyZFRyYW5zYWN0aW9uRGV0YWlscyB8IENhcmRUcmFuc2FjdGlvbkRldGFpbHNFcnJvcik6XG4gICAgcmVzdWx0IGlzIENhcmRUcmFuc2FjdGlvbkRldGFpbHMge1xuICAgIHJldHVybiAocmVzdWx0IGFzIENhcmRUcmFuc2FjdGlvbkRldGFpbHMpLnJlc3VsdCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCk6IFByb21pc2U8U2NyYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuc3VidHJhY3QoNiwgJ21vbnRocycpLmFkZCgxLCAnZGF5Jyk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gICAgY29uc3Qgc3RhcnRNb21lbnQgPSBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xuICAgIGRlYnVnKGBmZXRjaCB0cmFuc2FjdGlvbnMgc3RhcnRpbmcgJHtzdGFydE1vbWVudC5mb3JtYXQoKX1gKTtcblxuICAgIGNvbnN0IEF1dGhvcml6YXRpb24gPSBhd2FpdCB0aGlzLmdldEF1dGhvcml6YXRpb25IZWFkZXIoKTtcbiAgICBjb25zdCBjYXJkcyA9IGF3YWl0IHRoaXMuZ2V0Q2FyZHMoKTtcbiAgICBjb25zdCB4U2l0ZUlkID0gYXdhaXQgdGhpcy5nZXRYU2l0ZUlkKCk7XG4gICAgY29uc3QgZnV0dXJlTW9udGhzVG9TY3JhcGUgPSB0aGlzLm9wdGlvbnMuZnV0dXJlTW9udGhzVG9TY3JhcGUgPz8gMTtcblxuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBjYXJkcy5tYXAoYXN5bmMgKGNhcmQpID0+IHtcbiAgICAgICAgZGVidWcoYGZldGNoIHRyYW5zYWN0aW9ucyBmb3IgY2FyZCAke2NhcmQuY2FyZFVuaXF1ZUlkfWApO1xuXG4gICAgICAgIGNvbnN0IGZpbmFsTW9udGhUb0ZldGNoTW9tZW50ID0gbW9tZW50KCkuYWRkKGZ1dHVyZU1vbnRoc1RvU2NyYXBlLCAnbW9udGgnKTtcbiAgICAgICAgY29uc3QgbW9udGhzID0gZmluYWxNb250aFRvRmV0Y2hNb21lbnQuZGlmZihzdGFydE1vbWVudCwgJ21vbnRocycpO1xuXG4gICAgICAgIGNvbnN0IGFsbE1vbnRoc0RhdGE6IChDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKVtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IG1vbnRoczsgaSArPSAxKSB7XG4gICAgICAgICAgY29uc3QgbW9udGggPSBmaW5hbE1vbnRoVG9GZXRjaE1vbWVudC5jbG9uZSgpLnN1YnRyYWN0KGksICdtb250aHMnKTtcbiAgICAgICAgICBjb25zdCBtb250aERhdGEgPSBhd2FpdCBmZXRjaFBvc3RXaXRoaW5QYWdlPENhcmRUcmFuc2FjdGlvbkRldGFpbHMgfCBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzRXJyb3I+KFxuICAgICAgICAgICAgdGhpcy5wYWdlLCBUUkFOU0FDVElPTlNfUkVRVUVTVF9FTkRQT0lOVCxcbiAgICAgICAgICAgIHsgY2FyZFVuaXF1ZUlkOiBjYXJkLmNhcmRVbmlxdWVJZCwgbW9udGg6IG1vbnRoLmZvcm1hdCgnTScpLCB5ZWFyOiBtb250aC5mb3JtYXQoJ1lZWVknKSB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBBdXRob3JpemF0aW9uLFxuICAgICAgICAgICAgICAnWC1TaXRlLUlkJzogeFNpdGVJZCxcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChtb250aERhdGE/LnN0YXR1c0NvZGUgIT09IDEpIHRocm93IG5ldyBFcnJvcihgZmFpbGVkIHRvIGZldGNoIHRyYW5zYWN0aW9ucyBmb3IgY2FyZCAke2NhcmQubGFzdDREaWdpdHN9LiBNZXNzYWdlOiAke21vbnRoRGF0YT8udGl0bGUgfHwgJyd9YCk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuaXNDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKG1vbnRoRGF0YSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbW9udGhEYXRhIGlzIG5vdCBvZiB0eXBlIENhcmRUcmFuc2FjdGlvbkRldGFpbHMnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhbGxNb250aHNEYXRhLnB1c2gobW9udGhEYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRyYW5zYWN0aW9ucyA9IGNvbnZlcnRQYXJzZWREYXRhVG9UcmFuc2FjdGlvbnMoYWxsTW9udGhzRGF0YSk7XG5cbiAgICAgICAgZGVidWcoJ2ZpbGVyIG91dCBvbGQgdHJhbnNhY3Rpb25zJyk7XG4gICAgICAgIGNvbnN0IHR4bnMgPSAodGhpcy5vcHRpb25zLm91dHB1dERhdGE/LmVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSA/PyB0cnVlKSA/XG4gICAgICAgICAgZmlsdGVyT2xkVHJhbnNhY3Rpb25zKHRyYW5zYWN0aW9ucywgbW9tZW50KHN0YXJ0RGF0ZSksIHRoaXMub3B0aW9ucy5jb21iaW5lSW5zdGFsbG1lbnRzIHx8IGZhbHNlKSA6XG4gICAgICAgICAgdHJhbnNhY3Rpb25zO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHhucyxcbiAgICAgICAgICBhY2NvdW50TnVtYmVyOiBjYXJkLmxhc3Q0RGlnaXRzLFxuICAgICAgICB9IGFzIFRyYW5zYWN0aW9uc0FjY291bnQ7XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgZGVidWcoJ3JldHVybiB0aGUgc2NyYXBlZCBhY2NvdW50cycpO1xuXG4gICAgZGVidWcoSlNPTi5zdHJpbmdpZnkoYWNjb3VudHMsIG51bGwsIDIpKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVmlzYUNhbFNjcmFwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFHQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxxQkFBQSxHQUFBRixPQUFBO0FBR0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsY0FBQSxHQUFBUixPQUFBO0FBTUEsSUFBQVMsdUJBQUEsR0FBQVQsT0FBQTtBQUFpRyxTQUFBRCx1QkFBQVcsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLGdCQUFBSCxHQUFBLEVBQUFJLEdBQUEsRUFBQUMsS0FBQSxRQUFBRCxHQUFBLElBQUFKLEdBQUEsSUFBQU0sTUFBQSxDQUFBQyxj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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "israeli-bank-scrapers",
3
- "version": "4.5.0",
3
+ "version": "4.5.4",
4
4
  "private": false,
5
5
  "description": "Provide scrapers for all major Israeli banks and credit card companies",
6
6
  "engines": {