israeli-bank-scrapers-core 6.4.2 → 6.5.1

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.
@@ -89,7 +89,7 @@ function getInstallmentsInfo(txn) {
89
89
  function getTransactionType(txn) {
90
90
  return getInstallmentsInfo(txn) ? _transactions2.TransactionTypes.Installments : _transactions2.TransactionTypes.Normal;
91
91
  }
92
- function convertTransactions(txns, processedDate) {
92
+ function convertTransactions(txns, processedDate, options) {
93
93
  const filteredTxns = txns.filter(txn => txn.dealSumType !== '1' && txn.voucherNumberRatz !== '000000000' && txn.voucherNumberRatzOutbound !== '000000000');
94
94
  return filteredTxns.map(txn => {
95
95
  const isOutbound = txn.dealSumOutbound;
@@ -110,6 +110,9 @@ function convertTransactions(txns, processedDate) {
110
110
  installments: getInstallmentsInfo(txn) || undefined,
111
111
  status: _transactions2.TransactionStatuses.Completed
112
112
  };
113
+ if (options?.includeRawTransaction) {
114
+ result.rawTransaction = txn;
115
+ }
113
116
  return result;
114
117
  });
115
118
  }
@@ -127,11 +130,11 @@ async function fetchTransactions(page, options, companyServiceOptions, startMome
127
130
  let allTxns = [];
128
131
  txnGroups.forEach(txnGroup => {
129
132
  if (txnGroup.txnIsrael) {
130
- const txns = convertTransactions(txnGroup.txnIsrael, account.processedDate);
133
+ const txns = convertTransactions(txnGroup.txnIsrael, account.processedDate, options);
131
134
  allTxns.push(...txns);
132
135
  }
133
136
  if (txnGroup.txnAbroad) {
134
- const txns = convertTransactions(txnGroup.txnAbroad, account.processedDate);
137
+ const txns = convertTransactions(txnGroup.txnAbroad, account.processedDate, options);
135
138
  allTxns.push(...txns);
136
139
  }
137
140
  });
@@ -321,4 +324,4 @@ class IsracardAmexBaseScraper extends _baseScraperWithBrowser.BaseScraperWithBro
321
324
  }
322
325
  }
323
326
  var _default = exports.default = IsracardAmexBaseScraper;
324
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbW9tZW50IiwiX2NvbnN0YW50cyIsIl9kZWZpbml0aW9ucyIsIl9kYXRlcyIsIl9kZWJ1ZyIsIl9mZXRjaCIsIl90cmFuc2FjdGlvbnMiLCJfd2FpdGluZyIsIl90cmFuc2FjdGlvbnMyIiwiX2Jhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJfZXJyb3JzIiwiX2Jyb3dzZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJSQVRFX0xJTUlUIiwiU0xFRVBfQkVUV0VFTiIsIlRSQU5TQUNUSU9OU19CQVRDSF9TSVpFIiwiQ09VTlRSWV9DT0RFIiwiSURfVFlQRSIsIklOU1RBTExNRU5UU19LRVlXT1JEIiwiREFURV9GT1JNQVQiLCJkZWJ1ZyIsImdldERlYnVnIiwiZ2V0QWNjb3VudHNVcmwiLCJzZXJ2aWNlc1VybCIsIm1vbnRoTW9tZW50IiwiYmlsbGluZ0RhdGUiLCJmb3JtYXQiLCJ1cmwiLCJVUkwiLCJzZWFyY2hQYXJhbXMiLCJzZXQiLCJ0b1N0cmluZyIsImZldGNoQWNjb3VudHMiLCJwYWdlIiwiZGF0YVVybCIsImRhdGFSZXN1bHQiLCJmZXRjaEdldFdpdGhpblBhZ2UiLCJfIiwiZ2V0IiwiRGFzaGJvYXJkTW9udGhCZWFuIiwiY2FyZHNDaGFyZ2VzIiwibWFwIiwiY2FyZENoYXJnZSIsImluZGV4IiwicGFyc2VJbnQiLCJjYXJkSW5kZXgiLCJhY2NvdW50TnVtYmVyIiwiY2FyZE51bWJlciIsInByb2Nlc3NlZERhdGUiLCJtb21lbnQiLCJ0b0lTT1N0cmluZyIsImdldFRyYW5zYWN0aW9uc1VybCIsIm1vbnRoIiwieWVhciIsIm1vbnRoU3RyIiwiY29udmVydEN1cnJlbmN5IiwiY3VycmVuY3lTdHIiLCJTSEVLRUxfQ1VSUkVOQ1lfS0VZV09SRCIsIkFMVF9TSEVLRUxfQ1VSUkVOQ1kiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJnZXRJbnN0YWxsbWVudHNJbmZvIiwidHhuIiwibW9yZUluZm8iLCJpbmNsdWRlcyIsInVuZGVmaW5lZCIsIm1hdGNoZXMiLCJtYXRjaCIsImxlbmd0aCIsIm51bWJlciIsInRvdGFsIiwiZ2V0VHJhbnNhY3Rpb25UeXBlIiwiVHJhbnNhY3Rpb25UeXBlcyIsIkluc3RhbGxtZW50cyIsIk5vcm1hbCIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwiZmlsdGVyZWRUeG5zIiwiZmlsdGVyIiwiZGVhbFN1bVR5cGUiLCJ2b3VjaGVyTnVtYmVyUmF0eiIsInZvdWNoZXJOdW1iZXJSYXR6T3V0Ym91bmQiLCJpc091dGJvdW5kIiwiZGVhbFN1bU91dGJvdW5kIiwidHhuRGF0ZVN0ciIsImZ1bGxQdXJjaGFzZURhdGVPdXRib3VuZCIsImZ1bGxQdXJjaGFzZURhdGUiLCJ0eG5Nb21lbnQiLCJjdXJyZW50UHJvY2Vzc2VkRGF0ZSIsImZ1bGxQYXltZW50RGF0ZSIsInJlc3VsdCIsInR5cGUiLCJpZGVudGlmaWVyIiwiZGF0ZSIsIm9yaWdpbmFsQW1vdW50IiwiZGVhbFN1bSIsIm9yaWdpbmFsQ3VycmVuY3kiLCJjdXJyZW50UGF5bWVudEN1cnJlbmN5IiwiY3VycmVuY3lJZCIsImNoYXJnZWRBbW91bnQiLCJwYXltZW50U3VtT3V0Ym91bmQiLCJwYXltZW50U3VtIiwiY2hhcmdlZEN1cnJlbmN5IiwiZGVzY3JpcHRpb24iLCJmdWxsU3VwcGxpZXJOYW1lT3V0Ym91bmQiLCJmdWxsU3VwcGxpZXJOYW1lSGViIiwibWVtbyIsImluc3RhbGxtZW50cyIsInN0YXR1cyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJDb21wbGV0ZWQiLCJmZXRjaFRyYW5zYWN0aW9ucyIsIm9wdGlvbnMiLCJjb21wYW55U2VydmljZU9wdGlvbnMiLCJzdGFydE1vbWVudCIsImFjY291bnRzIiwic2xlZXAiLCJDYXJkc1RyYW5zYWN0aW9uc0xpc3RCZWFuIiwiYWNjb3VudFR4bnMiLCJmb3JFYWNoIiwiYWNjb3VudCIsInR4bkdyb3VwcyIsImFsbFR4bnMiLCJ0eG5Hcm91cCIsInR4bklzcmFlbCIsInB1c2giLCJ0eG5BYnJvYWQiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwiZml4SW5zdGFsbG1lbnRzIiwib3V0cHV0RGF0YSIsImVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSIsImZpbHRlck9sZFRyYW5zYWN0aW9ucyIsImdldEV4dHJhU2NyYXBUcmFuc2FjdGlvbiIsImFjY291bnRJbmRleCIsInRyYW5zYWN0aW9uIiwiZGF0YSIsInJhd0NhdGVnb3J5IiwiY2F0ZWdvcnkiLCJ0cmltIiwiZ2V0RXh0cmFTY3JhcEFjY291bnQiLCJhY2NvdW50TWFwIiwiT2JqZWN0IiwidmFsdWVzIiwidHhuc0NodW5rIiwiY2h1bmsiLCJ1cGRhdGVkVHhucyIsIlByb21pc2UiLCJhbGwiLCJ0IiwicmVkdWNlIiwibSIsIngiLCJnZXRBZGRpdGlvbmFsVHJhbnNhY3Rpb25JbmZvcm1hdGlvbiIsInNjcmFwZXJPcHRpb25zIiwiYWNjb3VudHNXaXRoSW5kZXgiLCJhbGxNb250aHMiLCJhZGRpdGlvbmFsVHJhbnNhY3Rpb25JbmZvcm1hdGlvbiIsIm9wdEluRmVhdHVyZXMiLCJydW5TZXJpYWwiLCJhIiwiaSIsImZldGNoQWxsVHJhbnNhY3Rpb25zIiwiZnV0dXJlTW9udGhzVG9TY3JhcGUiLCJnZXRBbGxNb250aE1vbWVudHMiLCJyZXN1bHRzIiwiZmluYWxSZXN1bHQiLCJjb21iaW5lZFR4bnMiLCJrZXlzIiwidHhuc0ZvckFjY291bnQiLCJ0b0JlQWRkZWRUeG5zIiwic3VjY2VzcyIsIklzcmFjYXJkQW1leEJhc2VTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImNvbnN0cnVjdG9yIiwiYmFzZVVybCIsImNvbXBhbnlDb2RlIiwibG9naW4iLCJjcmVkZW50aWFscyIsInNldFJlcXVlc3RJbnRlcmNlcHRpb24iLCJvbiIsInJlcXVlc3QiLCJhYm9ydCIsImludGVyY2VwdGlvblByaW9yaXRpZXMiLCJjb250aW51ZSIsIm1hc2tIZWFkbGVzc1VzZXJBZ2VudCIsIm5hdmlnYXRlVG8iLCJlbWl0UHJvZ3Jlc3MiLCJTY3JhcGVyUHJvZ3Jlc3NUeXBlcyIsIkxvZ2dpbmdJbiIsInZhbGlkYXRlVXJsIiwidmFsaWRhdGVSZXF1ZXN0IiwiaWQiLCJjYXJkU3VmZml4IiwiY2FyZDZEaWdpdHMiLCJjb3VudHJ5Q29kZSIsImlkVHlwZSIsImNoZWNrTGV2ZWwiLCJ2YWxpZGF0ZVJlc3VsdCIsImZldGNoUG9zdFdpdGhpblBhZ2UiLCJIZWFkZXIiLCJTdGF0dXMiLCJWYWxpZGF0ZUlkRGF0YUJlYW4iLCJFcnJvciIsInZhbGlkYXRlUmV0dXJuQ29kZSIsInJldHVybkNvZGUiLCJ1c2VyTmFtZSIsImxvZ2luVXJsIiwiS29kTWlzaHRhbWVzaCIsIk1pc3BhclppaHV5IiwiU2lzbWEiLCJwYXNzd29yZCIsImxvZ2luUmVzdWx0IiwiTG9naW5TdWNjZXNzIiwiQ2hhbmdlUGFzc3dvcmQiLCJlcnJvclR5cGUiLCJTY3JhcGVyRXJyb3JUeXBlcyIsIkxvZ2luRmFpbGVkIiwiSW52YWxpZFBhc3N3b3JkIiwiZmV0Y2hEYXRhIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJzdGFydERhdGUiLCJ0b0RhdGUiLCJtYXgiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyYXBlcnMvYmFzZS1pc3JhY2FyZC1hbWV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbW9tZW50LCB7IHR5cGUgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IHR5cGUgUGFnZSB9IGZyb20gJ3B1cHBldGVlci1jb3JlJztcbmltcG9ydCB7IEFMVF9TSEVLRUxfQ1VSUkVOQ1ksIFNIRUtFTF9DVVJSRU5DWSwgU0hFS0VMX0NVUlJFTkNZX0tFWVdPUkQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU2NyYXBlclByb2dyZXNzVHlwZXMgfSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgZ2V0QWxsTW9udGhNb21lbnRzIGZyb20gJy4uL2hlbHBlcnMvZGF0ZXMnO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSwgZmV0Y2hQb3N0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgZmlsdGVyT2xkVHJhbnNhY3Rpb25zLCBmaXhJbnN0YWxsbWVudHMgfSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBydW5TZXJpYWwsIHNsZWVwIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uU3RhdHVzZXMsXG4gIFRyYW5zYWN0aW9uVHlwZXMsXG4gIHR5cGUgVHJhbnNhY3Rpb24sXG4gIHR5cGUgVHJhbnNhY3Rpb25JbnN0YWxsbWVudHMsXG4gIHR5cGUgVHJhbnNhY3Rpb25zQWNjb3VudCxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgU2NyYXBlckVycm9yVHlwZXMgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgeyB0eXBlIFNjcmFwZXJPcHRpb25zLCB0eXBlIFNjcmFwZXJTY3JhcGluZ1Jlc3VsdCB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB7IGludGVyY2VwdGlvblByaW9yaXRpZXMsIG1hc2tIZWFkbGVzc1VzZXJBZ2VudCB9IGZyb20gJy4uL2hlbHBlcnMvYnJvd3Nlcic7XG5cbmNvbnN0IFJBVEVfTElNSVQgPSB7XG4gIFNMRUVQX0JFVFdFRU46IDEwMDAsXG4gIFRSQU5TQUNUSU9OU19CQVRDSF9TSVpFOiAxMCxcbn0gYXMgY29uc3Q7XG5cbmNvbnN0IENPVU5UUllfQ09ERSA9ICcyMTInO1xuY29uc3QgSURfVFlQRSA9ICcxJztcbmNvbnN0IElOU1RBTExNRU5UU19LRVlXT1JEID0gJ9eq16nXnNeV150nO1xuXG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWVlZJztcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygnYmFzZS1pc3JhY2FyZC1hbWV4Jyk7XG5cbnR5cGUgQ29tcGFueVNlcnZpY2VPcHRpb25zID0ge1xuICBzZXJ2aWNlc1VybDogc3RyaW5nO1xuICBjb21wYW55Q29kZTogc3RyaW5nO1xufTtcblxudHlwZSBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXggPSBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbnNBY2NvdW50ICYgeyBpbmRleDogbnVtYmVyIH0+O1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgZGVhbFN1bVR5cGU6IHN0cmluZztcbiAgdm91Y2hlck51bWJlclJhdHpPdXRib3VuZDogc3RyaW5nO1xuICB2b3VjaGVyTnVtYmVyUmF0ejogc3RyaW5nO1xuICBtb3JlSW5mbz86IHN0cmluZztcbiAgZGVhbFN1bU91dGJvdW5kOiBib29sZWFuO1xuICBjdXJyZW5jeUlkOiBzdHJpbmc7XG4gIGN1cnJlbnRQYXltZW50Q3VycmVuY3k6IHN0cmluZztcbiAgZGVhbFN1bTogbnVtYmVyO1xuICBmdWxsUGF5bWVudERhdGU/OiBzdHJpbmc7XG4gIGZ1bGxQdXJjaGFzZURhdGU/OiBzdHJpbmc7XG4gIGZ1bGxQdXJjaGFzZURhdGVPdXRib3VuZD86IHN0cmluZztcbiAgZnVsbFN1cHBsaWVyTmFtZUhlYjogc3RyaW5nO1xuICBmdWxsU3VwcGxpZXJOYW1lT3V0Ym91bmQ6IHN0cmluZztcbiAgcGF5bWVudFN1bTogbnVtYmVyO1xuICBwYXltZW50U3VtT3V0Ym91bmQ6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRBY2NvdW50IHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgYWNjb3VudE51bWJlcjogc3RyaW5nO1xuICBwcm9jZXNzZWREYXRlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBTY3JhcGVkTG9naW5WYWxpZGF0aW9uIHtcbiAgSGVhZGVyOiB7XG4gICAgU3RhdHVzOiBzdHJpbmc7XG4gIH07XG4gIFZhbGlkYXRlSWREYXRhQmVhbj86IHtcbiAgICB1c2VyTmFtZT86IHN0cmluZztcbiAgICByZXR1cm5Db2RlOiBzdHJpbmc7XG4gIH07XG59XG5cbmludGVyZmFjZSBTY3JhcGVkQWNjb3VudHNXaXRoaW5QYWdlUmVzcG9uc2Uge1xuICBIZWFkZXI6IHtcbiAgICBTdGF0dXM6IHN0cmluZztcbiAgfTtcbiAgRGFzaGJvYXJkTW9udGhCZWFuPzoge1xuICAgIGNhcmRzQ2hhcmdlczoge1xuICAgICAgY2FyZEluZGV4OiBzdHJpbmc7XG4gICAgICBjYXJkTnVtYmVyOiBzdHJpbmc7XG4gICAgICBiaWxsaW5nRGF0ZTogc3RyaW5nO1xuICAgIH1bXTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRDdXJyZW50Q2FyZFRyYW5zYWN0aW9ucyB7XG4gIHR4bklzcmFlbD86IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xuICB0eG5BYnJvYWQ/OiBTY3JhcGVkVHJhbnNhY3Rpb25bXTtcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbkRhdGEge1xuICBIZWFkZXI/OiB7XG4gICAgU3RhdHVzOiBzdHJpbmc7XG4gIH07XG4gIFBpcnRleUlza2FfMjA0QmVhbj86IHtcbiAgICBzZWN0b3I6IHN0cmluZztcbiAgfTtcblxuICBDYXJkc1RyYW5zYWN0aW9uc0xpc3RCZWFuPzogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICB7XG4gICAgICBDdXJyZW50Q2FyZFRyYW5zYWN0aW9uczogU2NyYXBlZEN1cnJlbnRDYXJkVHJhbnNhY3Rpb25zW107XG4gICAgfVxuICA+O1xufVxuXG5mdW5jdGlvbiBnZXRBY2NvdW50c1VybChzZXJ2aWNlc1VybDogc3RyaW5nLCBtb250aE1vbWVudDogTW9tZW50KSB7XG4gIGNvbnN0IGJpbGxpbmdEYXRlID0gbW9udGhNb21lbnQuZm9ybWF0KCdZWVlZLU1NLUREJyk7XG4gIGNvbnN0IHVybCA9IG5ldyBVUkwoc2VydmljZXNVcmwpO1xuICB1cmwuc2VhcmNoUGFyYW1zLnNldCgncmVxTmFtZScsICdEYXNoYm9hcmRNb250aCcpO1xuICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnYWN0aW9uQ29kZScsICcwJyk7XG4gIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdiaWxsaW5nRGF0ZScsIGJpbGxpbmdEYXRlKTtcbiAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2Zvcm1hdCcsICdKc29uJyk7XG4gIHJldHVybiB1cmwudG9TdHJpbmcoKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hBY2NvdW50cyhwYWdlOiBQYWdlLCBzZXJ2aWNlc1VybDogc3RyaW5nLCBtb250aE1vbWVudDogTW9tZW50KTogUHJvbWlzZTxTY3JhcGVkQWNjb3VudFtdPiB7XG4gIGNvbnN0IGRhdGFVcmwgPSBnZXRBY2NvdW50c1VybChzZXJ2aWNlc1VybCwgbW9udGhNb21lbnQpO1xuICBkZWJ1ZyhgZmV0Y2hpbmcgYWNjb3VudHMgZnJvbSAke2RhdGFVcmx9YCk7XG4gIGNvbnN0IGRhdGFSZXN1bHQgPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8U2NyYXBlZEFjY291bnRzV2l0aGluUGFnZVJlc3BvbnNlPihwYWdlLCBkYXRhVXJsKTtcbiAgaWYgKGRhdGFSZXN1bHQgJiYgXy5nZXQoZGF0YVJlc3VsdCwgJ0hlYWRlci5TdGF0dXMnKSA9PT0gJzEnICYmIGRhdGFSZXN1bHQuRGFzaGJvYXJkTW9udGhCZWFuKSB7XG4gICAgY29uc3QgeyBjYXJkc0NoYXJnZXMgfSA9IGRhdGFSZXN1bHQuRGFzaGJvYXJkTW9udGhCZWFuO1xuICAgIGlmIChjYXJkc0NoYXJnZXMpIHtcbiAgICAgIHJldHVybiBjYXJkc0NoYXJnZXMubWFwKGNhcmRDaGFyZ2UgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGluZGV4OiBwYXJzZUludChjYXJkQ2hhcmdlLmNhcmRJbmRleCwgMTApLFxuICAgICAgICAgIGFjY291bnROdW1iZXI6IGNhcmRDaGFyZ2UuY2FyZE51bWJlcixcbiAgICAgICAgICBwcm9jZXNzZWREYXRlOiBtb21lbnQoY2FyZENoYXJnZS5iaWxsaW5nRGF0ZSwgREFURV9GT1JNQVQpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFtdO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbnNVcmwoc2VydmljZXNVcmw6IHN0cmluZywgbW9udGhNb21lbnQ6IE1vbWVudCkge1xuICBjb25zdCBtb250aCA9IG1vbnRoTW9tZW50Lm1vbnRoKCkgKyAxO1xuICBjb25zdCB5ZWFyID0gbW9udGhNb21lbnQueWVhcigpO1xuICBjb25zdCBtb250aFN0ciA9IG1vbnRoIDwgMTAgPyBgMCR7bW9udGh9YCA6IG1vbnRoLnRvU3RyaW5nKCk7XG4gIGNvbnN0IHVybCA9IG5ldyBVUkwoc2VydmljZXNVcmwpO1xuICB1cmwuc2VhcmNoUGFyYW1zLnNldCgncmVxTmFtZScsICdDYXJkc1RyYW5zYWN0aW9uc0xpc3QnKTtcbiAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ21vbnRoJywgbW9udGhTdHIpO1xuICB1cmwuc2VhcmNoUGFyYW1zLnNldCgneWVhcicsIGAke3llYXJ9YCk7XG4gIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdyZXF1aXJlZERhdGUnLCAnTicpO1xuICByZXR1cm4gdXJsLnRvU3RyaW5nKCk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRDdXJyZW5jeShjdXJyZW5jeVN0cjogc3RyaW5nKSB7XG4gIGlmIChjdXJyZW5jeVN0ciA9PT0gU0hFS0VMX0NVUlJFTkNZX0tFWVdPUkQgfHwgY3VycmVuY3lTdHIgPT09IEFMVF9TSEVLRUxfQ1VSUkVOQ1kpIHtcbiAgICByZXR1cm4gU0hFS0VMX0NVUlJFTkNZO1xuICB9XG4gIHJldHVybiBjdXJyZW5jeVN0cjtcbn1cblxuZnVuY3Rpb24gZ2V0SW5zdGFsbG1lbnRzSW5mbyh0eG46IFNjcmFwZWRUcmFuc2FjdGlvbik6IFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF0eG4ubW9yZUluZm8gfHwgIXR4bi5tb3JlSW5mby5pbmNsdWRlcyhJTlNUQUxMTUVOVFNfS0VZV09SRCkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IG1hdGNoZXMgPSB0eG4ubW9yZUluZm8ubWF0Y2goL1xcZCsvZyk7XG4gIGlmICghbWF0Y2hlcyB8fCBtYXRjaGVzLmxlbmd0aCA8IDIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBudW1iZXI6IHBhcnNlSW50KG1hdGNoZXNbMF0sIDEwKSxcbiAgICB0b3RhbDogcGFyc2VJbnQobWF0Y2hlc1sxXSwgMTApLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvblR5cGUodHhuOiBTY3JhcGVkVHJhbnNhY3Rpb24pIHtcbiAgcmV0dXJuIGdldEluc3RhbGxtZW50c0luZm8odHhuKSA/IFRyYW5zYWN0aW9uVHlwZXMuSW5zdGFsbG1lbnRzIDogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWw7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10sIHByb2Nlc3NlZERhdGU6IHN0cmluZyk6IFRyYW5zYWN0aW9uW10ge1xuICBjb25zdCBmaWx0ZXJlZFR4bnMgPSB0eG5zLmZpbHRlcihcbiAgICB0eG4gPT5cbiAgICAgIHR4bi5kZWFsU3VtVHlwZSAhPT0gJzEnICYmIHR4bi52b3VjaGVyTnVtYmVyUmF0eiAhPT0gJzAwMDAwMDAwMCcgJiYgdHhuLnZvdWNoZXJOdW1iZXJSYXR6T3V0Ym91bmQgIT09ICcwMDAwMDAwMDAnLFxuICApO1xuXG4gIHJldHVybiBmaWx0ZXJlZFR4bnMubWFwKHR4biA9PiB7XG4gICAgY29uc3QgaXNPdXRib3VuZCA9IHR4bi5kZWFsU3VtT3V0Ym91bmQ7XG4gICAgY29uc3QgdHhuRGF0ZVN0ciA9IGlzT3V0Ym91bmQgPyB0eG4uZnVsbFB1cmNoYXNlRGF0ZU91dGJvdW5kIDogdHhuLmZ1bGxQdXJjaGFzZURhdGU7XG4gICAgY29uc3QgdHhuTW9tZW50ID0gbW9tZW50KHR4bkRhdGVTdHIsIERBVEVfRk9STUFUKTtcblxuICAgIGNvbnN0IGN1cnJlbnRQcm9jZXNzZWREYXRlID0gdHhuLmZ1bGxQYXltZW50RGF0ZVxuICAgICAgPyBtb21lbnQodHhuLmZ1bGxQYXltZW50RGF0ZSwgREFURV9GT1JNQVQpLnRvSVNPU3RyaW5nKClcbiAgICAgIDogcHJvY2Vzc2VkRGF0ZTtcbiAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uID0ge1xuICAgICAgdHlwZTogZ2V0VHJhbnNhY3Rpb25UeXBlKHR4biksXG4gICAgICBpZGVudGlmaWVyOiBwYXJzZUludChpc091dGJvdW5kID8gdHhuLnZvdWNoZXJOdW1iZXJSYXR6T3V0Ym91bmQgOiB0eG4udm91Y2hlck51bWJlclJhdHosIDEwKSxcbiAgICAgIGRhdGU6IHR4bk1vbWVudC50b0lTT1N0cmluZygpLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogY3VycmVudFByb2Nlc3NlZERhdGUsXG4gICAgICBvcmlnaW5hbEFtb3VudDogaXNPdXRib3VuZCA/IC10eG4uZGVhbFN1bU91dGJvdW5kIDogLXR4bi5kZWFsU3VtLFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogY29udmVydEN1cnJlbmN5KHR4bi5jdXJyZW50UGF5bWVudEN1cnJlbmN5ID8/IHR4bi5jdXJyZW5jeUlkKSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGlzT3V0Ym91bmQgPyAtdHhuLnBheW1lbnRTdW1PdXRib3VuZCA6IC10eG4ucGF5bWVudFN1bSxcbiAgICAgIGNoYXJnZWRDdXJyZW5jeTogY29udmVydEN1cnJlbmN5KHR4bi5jdXJyZW5jeUlkKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBpc091dGJvdW5kID8gdHhuLmZ1bGxTdXBwbGllck5hbWVPdXRib3VuZCA6IHR4bi5mdWxsU3VwcGxpZXJOYW1lSGViLFxuICAgICAgbWVtbzogdHhuLm1vcmVJbmZvIHx8ICcnLFxuICAgICAgaW5zdGFsbG1lbnRzOiBnZXRJbnN0YWxsbWVudHNJbmZvKHR4bikgfHwgdW5kZWZpbmVkLFxuICAgICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zKFxuICBwYWdlOiBQYWdlLFxuICBvcHRpb25zOiBTY3JhcGVyT3B0aW9ucyxcbiAgY29tcGFueVNlcnZpY2VPcHRpb25zOiBDb21wYW55U2VydmljZU9wdGlvbnMsXG4gIHN0YXJ0TW9tZW50OiBNb21lbnQsXG4gIG1vbnRoTW9tZW50OiBNb21lbnQsXG4pOiBQcm9taXNlPFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleD4ge1xuICBjb25zdCBhY2NvdW50cyA9IGF3YWl0IGZldGNoQWNjb3VudHMocGFnZSwgY29tcGFueVNlcnZpY2VPcHRpb25zLnNlcnZpY2VzVXJsLCBtb250aE1vbWVudCk7XG4gIGNvbnN0IGRhdGFVcmwgPSBnZXRUcmFuc2FjdGlvbnNVcmwoY29tcGFueVNlcnZpY2VPcHRpb25zLnNlcnZpY2VzVXJsLCBtb250aE1vbWVudCk7XG4gIGF3YWl0IHNsZWVwKFJBVEVfTElNSVQuU0xFRVBfQkVUV0VFTik7XG4gIGRlYnVnKGBmZXRjaGluZyB0cmFuc2FjdGlvbnMgZnJvbSAke2RhdGFVcmx9IGZvciBtb250aCAke21vbnRoTW9tZW50LmZvcm1hdCgnWVlZWS1NTScpfWApO1xuICBjb25zdCBkYXRhUmVzdWx0ID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPFNjcmFwZWRUcmFuc2FjdGlvbkRhdGE+KHBhZ2UsIGRhdGFVcmwpO1xuICBpZiAoZGF0YVJlc3VsdCAmJiBfLmdldChkYXRhUmVzdWx0LCAnSGVhZGVyLlN0YXR1cycpID09PSAnMScgJiYgZGF0YVJlc3VsdC5DYXJkc1RyYW5zYWN0aW9uc0xpc3RCZWFuKSB7XG4gICAgY29uc3QgYWNjb3VudFR4bnM6IFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleCA9IHt9O1xuICAgIGFjY291bnRzLmZvckVhY2goYWNjb3VudCA9PiB7XG4gICAgICBjb25zdCB0eG5Hcm91cHM6IFNjcmFwZWRDdXJyZW50Q2FyZFRyYW5zYWN0aW9uc1tdIHwgdW5kZWZpbmVkID0gXy5nZXQoXG4gICAgICAgIGRhdGFSZXN1bHQsXG4gICAgICAgIGBDYXJkc1RyYW5zYWN0aW9uc0xpc3RCZWFuLkluZGV4JHthY2NvdW50LmluZGV4fS5DdXJyZW50Q2FyZFRyYW5zYWN0aW9uc2AsXG4gICAgICApO1xuICAgICAgaWYgKHR4bkdyb3Vwcykge1xuICAgICAgICBsZXQgYWxsVHhuczogVHJhbnNhY3Rpb25bXSA9IFtdO1xuICAgICAgICB0eG5Hcm91cHMuZm9yRWFjaCh0eG5Hcm91cCA9PiB7XG4gICAgICAgICAgaWYgKHR4bkdyb3VwLnR4bklzcmFlbCkge1xuICAgICAgICAgICAgY29uc3QgdHhucyA9IGNvbnZlcnRUcmFuc2FjdGlvbnModHhuR3JvdXAudHhuSXNyYWVsLCBhY2NvdW50LnByb2Nlc3NlZERhdGUpO1xuICAgICAgICAgICAgYWxsVHhucy5wdXNoKC4uLnR4bnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHhuR3JvdXAudHhuQWJyb2FkKSB7XG4gICAgICAgICAgICBjb25zdCB0eG5zID0gY29udmVydFRyYW5zYWN0aW9ucyh0eG5Hcm91cC50eG5BYnJvYWQsIGFjY291bnQucHJvY2Vzc2VkRGF0ZSk7XG4gICAgICAgICAgICBhbGxUeG5zLnB1c2goLi4udHhucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cykge1xuICAgICAgICAgIGFsbFR4bnMgPSBmaXhJbnN0YWxsbWVudHMoYWxsVHhucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMub3V0cHV0RGF0YT8uZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlID8/IHRydWUpIHtcbiAgICAgICAgICBhbGxUeG5zID0gZmlsdGVyT2xkVHJhbnNhY3Rpb25zKGFsbFR4bnMsIHN0YXJ0TW9tZW50LCBvcHRpb25zLmNvbWJpbmVJbnN0YWxsbWVudHMgfHwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIGFjY291bnRUeG5zW2FjY291bnQuYWNjb3VudE51bWJlcl0gPSB7XG4gICAgICAgICAgYWNjb3VudE51bWJlcjogYWNjb3VudC5hY2NvdW50TnVtYmVyLFxuICAgICAgICAgIGluZGV4OiBhY2NvdW50LmluZGV4LFxuICAgICAgICAgIHR4bnM6IGFsbFR4bnMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjY291bnRUeG5zO1xuICB9XG5cbiAgcmV0dXJuIHt9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRFeHRyYVNjcmFwVHJhbnNhY3Rpb24oXG4gIHBhZ2U6IFBhZ2UsXG4gIG9wdGlvbnM6IENvbXBhbnlTZXJ2aWNlT3B0aW9ucyxcbiAgbW9udGg6IE1vbWVudCxcbiAgYWNjb3VudEluZGV4OiBudW1iZXIsXG4gIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbixcbik6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgY29uc3QgdXJsID0gbmV3IFVSTChvcHRpb25zLnNlcnZpY2VzVXJsKTtcbiAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3JlcU5hbWUnLCAnUGlydGV5SXNrYV8yMDQnKTtcbiAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ0NhcmRJbmRleCcsIGFjY291bnRJbmRleC50b1N0cmluZygpKTtcbiAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3Nob3ZhclJhdHonLCB0cmFuc2FjdGlvbi5pZGVudGlmaWVyIS50b1N0cmluZygpKTtcbiAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ21vZWRDaGl1dicsIG1vbnRoLmZvcm1hdCgnTU1ZWVlZJykpO1xuXG4gIGRlYnVnKGBmZXRjaGluZyBleHRyYSBzY3JhcCBmb3IgdHJhbnNhY3Rpb24gJHt0cmFuc2FjdGlvbi5pZGVudGlmaWVyfSBmb3IgbW9udGggJHttb250aC5mb3JtYXQoJ1lZWVktTU0nKX1gKTtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxTY3JhcGVkVHJhbnNhY3Rpb25EYXRhPihwYWdlLCB1cmwudG9TdHJpbmcoKSk7XG4gIGlmICghZGF0YSkge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIGNvbnN0IHJhd0NhdGVnb3J5ID0gXy5nZXQoZGF0YSwgJ1BpcnRleUlza2FfMjA0QmVhbi5zZWN0b3InKSA/PyAnJztcbiAgcmV0dXJuIHtcbiAgICAuLi50cmFuc2FjdGlvbixcbiAgICBjYXRlZ29yeTogcmF3Q2F0ZWdvcnkudHJpbSgpLFxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRFeHRyYVNjcmFwQWNjb3VudChcbiAgcGFnZTogUGFnZSxcbiAgb3B0aW9uczogQ29tcGFueVNlcnZpY2VPcHRpb25zLFxuICBhY2NvdW50TWFwOiBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXgsXG4gIG1vbnRoOiBtb21lbnQuTW9tZW50LFxuKTogUHJvbWlzZTxTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXg+IHtcbiAgY29uc3QgYWNjb3VudHM6IFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleFtzdHJpbmddW10gPSBbXTtcbiAgZm9yIChjb25zdCBhY2NvdW50IG9mIE9iamVjdC52YWx1ZXMoYWNjb3VudE1hcCkpIHtcbiAgICBkZWJ1ZyhcbiAgICAgIGBnZXQgZXh0cmEgc2NyYXAgZm9yICR7YWNjb3VudC5hY2NvdW50TnVtYmVyfSB3aXRoICR7YWNjb3VudC50eG5zLmxlbmd0aH0gdHJhbnNhY3Rpb25zYCxcbiAgICAgIG1vbnRoLmZvcm1hdCgnWVlZWS1NTScpLFxuICAgICk7XG4gICAgY29uc3QgdHhuczogVHJhbnNhY3Rpb25bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgdHhuc0NodW5rIG9mIF8uY2h1bmsoYWNjb3VudC50eG5zLCBSQVRFX0xJTUlULlRSQU5TQUNUSU9OU19CQVRDSF9TSVpFKSkge1xuICAgICAgZGVidWcoYHByb2Nlc3NpbmcgY2h1bmsgb2YgJHt0eG5zQ2h1bmsubGVuZ3RofSB0cmFuc2FjdGlvbnMgZm9yIGFjY291bnQgJHthY2NvdW50LmFjY291bnROdW1iZXJ9YCk7XG4gICAgICBjb25zdCB1cGRhdGVkVHhucyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICB0eG5zQ2h1bmsubWFwKHQgPT4gZ2V0RXh0cmFTY3JhcFRyYW5zYWN0aW9uKHBhZ2UsIG9wdGlvbnMsIG1vbnRoLCBhY2NvdW50LmluZGV4LCB0KSksXG4gICAgICApO1xuICAgICAgYXdhaXQgc2xlZXAoUkFURV9MSU1JVC5TTEVFUF9CRVRXRUVOKTtcbiAgICAgIHR4bnMucHVzaCguLi51cGRhdGVkVHhucyk7XG4gICAgfVxuICAgIGFjY291bnRzLnB1c2goeyAuLi5hY2NvdW50LCB0eG5zIH0pO1xuICB9XG5cbiAgcmV0dXJuIGFjY291bnRzLnJlZHVjZSgobSwgeCkgPT4gKHsgLi4ubSwgW3guYWNjb3VudE51bWJlcl06IHggfSksIHt9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWRkaXRpb25hbFRyYW5zYWN0aW9uSW5mb3JtYXRpb24oXG4gIHNjcmFwZXJPcHRpb25zOiBTY3JhcGVyT3B0aW9ucyxcbiAgYWNjb3VudHNXaXRoSW5kZXg6IFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleFtdLFxuICBwYWdlOiBQYWdlLFxuICBvcHRpb25zOiBDb21wYW55U2VydmljZU9wdGlvbnMsXG4gIGFsbE1vbnRoczogbW9tZW50Lk1vbWVudFtdLFxuKTogUHJvbWlzZTxTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXhbXT4ge1xuICBpZiAoXG4gICAgIXNjcmFwZXJPcHRpb25zLmFkZGl0aW9uYWxUcmFuc2FjdGlvbkluZm9ybWF0aW9uIHx8XG4gICAgc2NyYXBlck9wdGlvbnMub3B0SW5GZWF0dXJlcz8uaW5jbHVkZXMoJ2lzcmFjYXJkLWFtZXg6c2tpcEFkZGl0aW9uYWxUcmFuc2FjdGlvbkluZm9ybWF0aW9uJylcbiAgKSB7XG4gICAgcmV0dXJuIGFjY291bnRzV2l0aEluZGV4O1xuICB9XG4gIHJldHVybiBydW5TZXJpYWwoYWNjb3VudHNXaXRoSW5kZXgubWFwKChhLCBpKSA9PiAoKSA9PiBnZXRFeHRyYVNjcmFwQWNjb3VudChwYWdlLCBvcHRpb25zLCBhLCBhbGxNb250aHNbaV0pKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWxsVHJhbnNhY3Rpb25zKFxuICBwYWdlOiBQYWdlLFxuICBvcHRpb25zOiBTY3JhcGVyT3B0aW9ucyxcbiAgY29tcGFueVNlcnZpY2VPcHRpb25zOiBDb21wYW55U2VydmljZU9wdGlvbnMsXG4gIHN0YXJ0TW9tZW50OiBNb21lbnQsXG4pIHtcbiAgY29uc3QgZnV0dXJlTW9udGhzVG9TY3JhcGUgPSBvcHRpb25zLmZ1dHVyZU1vbnRoc1RvU2NyYXBlID8/IDE7XG4gIGNvbnN0IGFsbE1vbnRocyA9IGdldEFsbE1vbnRoTW9tZW50cyhzdGFydE1vbWVudCwgZnV0dXJlTW9udGhzVG9TY3JhcGUpO1xuICBjb25zdCByZXN1bHRzOiBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXhbXSA9IGF3YWl0IHJ1blNlcmlhbChcbiAgICBhbGxNb250aHMubWFwKG1vbnRoTW9tZW50ID0+ICgpID0+IHtcbiAgICAgIHJldHVybiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlLCBvcHRpb25zLCBjb21wYW55U2VydmljZU9wdGlvbnMsIHN0YXJ0TW9tZW50LCBtb250aE1vbWVudCk7XG4gICAgfSksXG4gICk7XG5cbiAgY29uc3QgZmluYWxSZXN1bHQgPSBhd2FpdCBnZXRBZGRpdGlvbmFsVHJhbnNhY3Rpb25JbmZvcm1hdGlvbihcbiAgICBvcHRpb25zLFxuICAgIHJlc3VsdHMsXG4gICAgcGFnZSxcbiAgICBjb21wYW55U2VydmljZU9wdGlvbnMsXG4gICAgYWxsTW9udGhzLFxuICApO1xuICBjb25zdCBjb21iaW5lZFR4bnM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0ge307XG5cbiAgZmluYWxSZXN1bHQuZm9yRWFjaChyZXN1bHQgPT4ge1xuICAgIE9iamVjdC5rZXlzKHJlc3VsdCkuZm9yRWFjaChhY2NvdW50TnVtYmVyID0+IHtcbiAgICAgIGxldCB0eG5zRm9yQWNjb3VudCA9IGNvbWJpbmVkVHhuc1thY2NvdW50TnVtYmVyXTtcbiAgICAgIGlmICghdHhuc0ZvckFjY291bnQpIHtcbiAgICAgICAgdHhuc0ZvckFjY291bnQgPSBbXTtcbiAgICAgICAgY29tYmluZWRUeG5zW2FjY291bnROdW1iZXJdID0gdHhuc0ZvckFjY291bnQ7XG4gICAgICB9XG4gICAgICBjb25zdCB0b0JlQWRkZWRUeG5zID0gcmVzdWx0W2FjY291bnROdW1iZXJdLnR4bnM7XG4gICAgICBjb21iaW5lZFR4bnNbYWNjb3VudE51bWJlcl0ucHVzaCguLi50b0JlQWRkZWRUeG5zKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgYWNjb3VudHMgPSBPYmplY3Qua2V5cyhjb21iaW5lZFR4bnMpLm1hcChhY2NvdW50TnVtYmVyID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgYWNjb3VudE51bWJlcixcbiAgICAgIHR4bnM6IGNvbWJpbmVkVHhuc1thY2NvdW50TnVtYmVyXSxcbiAgICB9O1xuICB9KTtcblxuICByZXR1cm4ge1xuICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgYWNjb3VudHMsXG4gIH07XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IGlkOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmc7IGNhcmQ2RGlnaXRzOiBzdHJpbmcgfTtcbmNsYXNzIElzcmFjYXJkQW1leEJhc2VTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBwcml2YXRlIGJhc2VVcmw6IHN0cmluZztcblxuICBwcml2YXRlIGNvbXBhbnlDb2RlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzZXJ2aWNlc1VybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNjcmFwZXJPcHRpb25zLCBiYXNlVXJsOiBzdHJpbmcsIGNvbXBhbnlDb2RlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIHRoaXMuYmFzZVVybCA9IGJhc2VVcmw7XG4gICAgdGhpcy5jb21wYW55Q29kZSA9IGNvbXBhbnlDb2RlO1xuICAgIHRoaXMuc2VydmljZXNVcmwgPSBgJHtiYXNlVXJsfS9zZXJ2aWNlcy9Qcm94eVJlcXVlc3RIYW5kbGVyLmFzaHhgO1xuICB9XG5cbiAgYXN5bmMgbG9naW4oY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKTogUHJvbWlzZTxTY3JhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhZ2Uuc2V0UmVxdWVzdEludGVyY2VwdGlvbih0cnVlKTtcbiAgICB0aGlzLnBhZ2Uub24oJ3JlcXVlc3QnLCByZXF1ZXN0ID0+IHtcbiAgICAgIGlmIChyZXF1ZXN0LnVybCgpLmluY2x1ZGVzKCdkZXRlY3Rvci1kb20ubWluLmpzJykpIHtcbiAgICAgICAgZGVidWcoJ2ZvcmNlIGFib3J0IGZvciByZXF1ZXN0IGRvIGRvd25sb2FkIGRldGVjdG9yLWRvbS5taW4uanMgcmVzb3VyY2UnKTtcbiAgICAgICAgdm9pZCByZXF1ZXN0LmFib3J0KHVuZGVmaW5lZCwgaW50ZXJjZXB0aW9uUHJpb3JpdGllcy5hYm9ydCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2b2lkIHJlcXVlc3QuY29udGludWUodW5kZWZpbmVkLCBpbnRlcmNlcHRpb25Qcmlvcml0aWVzLmNvbnRpbnVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGF3YWl0IG1hc2tIZWFkbGVzc1VzZXJBZ2VudCh0aGlzLnBhZ2UpO1xuXG4gICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZVRvKGAke3RoaXMuYmFzZVVybH0vcGVyc29uYWxhcmVhL0xvZ2luYCk7XG5cbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dnaW5nSW4pO1xuXG4gICAgY29uc3QgdmFsaWRhdGVVcmwgPSBgJHt0aGlzLnNlcnZpY2VzVXJsfT9yZXFOYW1lPVZhbGlkYXRlSWREYXRhYDtcbiAgICBjb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSB7XG4gICAgICBpZDogY3JlZGVudGlhbHMuaWQsXG4gICAgICBjYXJkU3VmZml4OiBjcmVkZW50aWFscy5jYXJkNkRpZ2l0cyxcbiAgICAgIGNvdW50cnlDb2RlOiBDT1VOVFJZX0NPREUsXG4gICAgICBpZFR5cGU6IElEX1RZUEUsXG4gICAgICBjaGVja0xldmVsOiAnMScsXG4gICAgICBjb21wYW55Q29kZTogdGhpcy5jb21wYW55Q29kZSxcbiAgICB9O1xuICAgIGRlYnVnKCdsb2dnaW5nIGluIHdpdGggdmFsaWRhdGUgcmVxdWVzdCcpO1xuICAgIGNvbnN0IHZhbGlkYXRlUmVzdWx0ID0gYXdhaXQgZmV0Y2hQb3N0V2l0aGluUGFnZTxTY3JhcGVkTG9naW5WYWxpZGF0aW9uPih0aGlzLnBhZ2UsIHZhbGlkYXRlVXJsLCB2YWxpZGF0ZVJlcXVlc3QpO1xuICAgIGlmIChcbiAgICAgICF2YWxpZGF0ZVJlc3VsdCB8fFxuICAgICAgIXZhbGlkYXRlUmVzdWx0LkhlYWRlciB8fFxuICAgICAgdmFsaWRhdGVSZXN1bHQuSGVhZGVyLlN0YXR1cyAhPT0gJzEnIHx8XG4gICAgICAhdmFsaWRhdGVSZXN1bHQuVmFsaWRhdGVJZERhdGFCZWFuXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gZXJyb3IgZHVyaW5nIGxvZ2luJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdGVSZXR1cm5Db2RlID0gdmFsaWRhdGVSZXN1bHQuVmFsaWRhdGVJZERhdGFCZWFuLnJldHVybkNvZGU7XG4gICAgZGVidWcoYHVzZXIgdmFsaWRhdGUgd2l0aCByZXR1cm4gY29kZSAnJHt2YWxpZGF0ZVJldHVybkNvZGV9J2ApO1xuICAgIGlmICh2YWxpZGF0ZVJldHVybkNvZGUgPT09ICcxJykge1xuICAgICAgY29uc3QgeyB1c2VyTmFtZSB9ID0gdmFsaWRhdGVSZXN1bHQuVmFsaWRhdGVJZERhdGFCZWFuO1xuXG4gICAgICBjb25zdCBsb2dpblVybCA9IGAke3RoaXMuc2VydmljZXNVcmx9P3JlcU5hbWU9cGVyZm9ybUxvZ29uSWA7XG4gICAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgICBLb2RNaXNodGFtZXNoOiB1c2VyTmFtZSxcbiAgICAgICAgTWlzcGFyWmlodXk6IGNyZWRlbnRpYWxzLmlkLFxuICAgICAgICBTaXNtYTogY3JlZGVudGlhbHMucGFzc3dvcmQsXG4gICAgICAgIGNhcmRTdWZmaXg6IGNyZWRlbnRpYWxzLmNhcmQ2RGlnaXRzLFxuICAgICAgICBjb3VudHJ5Q29kZTogQ09VTlRSWV9DT0RFLFxuICAgICAgICBpZFR5cGU6IElEX1RZUEUsXG4gICAgICB9O1xuICAgICAgZGVidWcoJ3VzZXIgbG9naW4gc3RhcnRlZCcpO1xuICAgICAgY29uc3QgbG9naW5SZXN1bHQgPSBhd2FpdCBmZXRjaFBvc3RXaXRoaW5QYWdlPHsgc3RhdHVzOiBzdHJpbmcgfT4odGhpcy5wYWdlLCBsb2dpblVybCwgcmVxdWVzdCk7XG4gICAgICBkZWJ1ZyhgdXNlciBsb2dpbiB3aXRoIHN0YXR1cyAnJHtsb2dpblJlc3VsdD8uc3RhdHVzfSdgLCBsb2dpblJlc3VsdCk7XG5cbiAgICAgIGlmIChsb2dpblJlc3VsdCAmJiBsb2dpblJlc3VsdC5zdGF0dXMgPT09ICcxJykge1xuICAgICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dpblN1Y2Nlc3MpO1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChsb2dpblJlc3VsdCAmJiBsb2dpblJlc3VsdC5zdGF0dXMgPT09ICczJykge1xuICAgICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5DaGFuZ2VQYXNzd29yZCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5DaGFuZ2VQYXNzd29yZCxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NyYXBlclByb2dyZXNzVHlwZXMuTG9naW5GYWlsZWQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuSW52YWxpZFBhc3N3b3JkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGVSZXR1cm5Db2RlID09PSAnNCcpIHtcbiAgICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjcmFwZXJQcm9ncmVzc1R5cGVzLkNoYW5nZVBhc3N3b3JkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkNoYW5nZVBhc3N3b3JkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dpbkZhaWxlZCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5JbnZhbGlkUGFzc3dvcmQsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgICByZXR1cm4gZmV0Y2hBbGxUcmFuc2FjdGlvbnMoXG4gICAgICB0aGlzLnBhZ2UsXG4gICAgICB0aGlzLm9wdGlvbnMsXG4gICAgICB7XG4gICAgICAgIHNlcnZpY2VzVXJsOiB0aGlzLnNlcnZpY2VzVXJsLFxuICAgICAgICBjb21wYW55Q29kZTogdGhpcy5jb21wYW55Q29kZSxcbiAgICAgIH0sXG4gICAgICBzdGFydE1vbWVudCxcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IElzcmFjYXJkQW1leEJhc2VTY3JhcGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxhQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxRQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxjQUFBLEdBQUFULE9BQUE7QUFPQSxJQUFBVSx1QkFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsT0FBQSxHQUFBWCxPQUFBO0FBRUEsSUFBQVksUUFBQSxHQUFBWixPQUFBO0FBQW1GLFNBQUFELHVCQUFBYyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRW5GLE1BQU1HLFVBQVUsR0FBRztFQUNq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
327
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbW9tZW50IiwiX2NvbnN0YW50cyIsIl9kZWZpbml0aW9ucyIsIl9kYXRlcyIsIl9kZWJ1ZyIsIl9mZXRjaCIsIl90cmFuc2FjdGlvbnMiLCJfd2FpdGluZyIsIl90cmFuc2FjdGlvbnMyIiwiX2Jhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJfZXJyb3JzIiwiX2Jyb3dzZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJSQVRFX0xJTUlUIiwiU0xFRVBfQkVUV0VFTiIsIlRSQU5TQUNUSU9OU19CQVRDSF9TSVpFIiwiQ09VTlRSWV9DT0RFIiwiSURfVFlQRSIsIklOU1RBTExNRU5UU19LRVlXT1JEIiwiREFURV9GT1JNQVQiLCJkZWJ1ZyIsImdldERlYnVnIiwiZ2V0QWNjb3VudHNVcmwiLCJzZXJ2aWNlc1VybCIsIm1vbnRoTW9tZW50IiwiYmlsbGluZ0RhdGUiLCJmb3JtYXQiLCJ1cmwiLCJVUkwiLCJzZWFyY2hQYXJhbXMiLCJzZXQiLCJ0b1N0cmluZyIsImZldGNoQWNjb3VudHMiLCJwYWdlIiwiZGF0YVVybCIsImRhdGFSZXN1bHQiLCJmZXRjaEdldFdpdGhpblBhZ2UiLCJfIiwiZ2V0IiwiRGFzaGJvYXJkTW9udGhCZWFuIiwiY2FyZHNDaGFyZ2VzIiwibWFwIiwiY2FyZENoYXJnZSIsImluZGV4IiwicGFyc2VJbnQiLCJjYXJkSW5kZXgiLCJhY2NvdW50TnVtYmVyIiwiY2FyZE51bWJlciIsInByb2Nlc3NlZERhdGUiLCJtb21lbnQiLCJ0b0lTT1N0cmluZyIsImdldFRyYW5zYWN0aW9uc1VybCIsIm1vbnRoIiwieWVhciIsIm1vbnRoU3RyIiwiY29udmVydEN1cnJlbmN5IiwiY3VycmVuY3lTdHIiLCJTSEVLRUxfQ1VSUkVOQ1lfS0VZV09SRCIsIkFMVF9TSEVLRUxfQ1VSUkVOQ1kiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJnZXRJbnN0YWxsbWVudHNJbmZvIiwidHhuIiwibW9yZUluZm8iLCJpbmNsdWRlcyIsInVuZGVmaW5lZCIsIm1hdGNoZXMiLCJtYXRjaCIsImxlbmd0aCIsIm51bWJlciIsInRvdGFsIiwiZ2V0VHJhbnNhY3Rpb25UeXBlIiwiVHJhbnNhY3Rpb25UeXBlcyIsIkluc3RhbGxtZW50cyIsIk5vcm1hbCIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwib3B0aW9ucyIsImZpbHRlcmVkVHhucyIsImZpbHRlciIsImRlYWxTdW1UeXBlIiwidm91Y2hlck51bWJlclJhdHoiLCJ2b3VjaGVyTnVtYmVyUmF0ek91dGJvdW5kIiwiaXNPdXRib3VuZCIsImRlYWxTdW1PdXRib3VuZCIsInR4bkRhdGVTdHIiLCJmdWxsUHVyY2hhc2VEYXRlT3V0Ym91bmQiLCJmdWxsUHVyY2hhc2VEYXRlIiwidHhuTW9tZW50IiwiY3VycmVudFByb2Nlc3NlZERhdGUiLCJmdWxsUGF5bWVudERhdGUiLCJyZXN1bHQiLCJ0eXBlIiwiaWRlbnRpZmllciIsImRhdGUiLCJvcmlnaW5hbEFtb3VudCIsImRlYWxTdW0iLCJvcmlnaW5hbEN1cnJlbmN5IiwiY3VycmVudFBheW1lbnRDdXJyZW5jeSIsImN1cnJlbmN5SWQiLCJjaGFyZ2VkQW1vdW50IiwicGF5bWVudFN1bU91dGJvdW5kIiwicGF5bWVudFN1bSIsImNoYXJnZWRDdXJyZW5jeSIsImRlc2NyaXB0aW9uIiwiZnVsbFN1cHBsaWVyTmFtZU91dGJvdW5kIiwiZnVsbFN1cHBsaWVyTmFtZUhlYiIsIm1lbW8iLCJpbnN0YWxsbWVudHMiLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiQ29tcGxldGVkIiwiaW5jbHVkZVJhd1RyYW5zYWN0aW9uIiwicmF3VHJhbnNhY3Rpb24iLCJmZXRjaFRyYW5zYWN0aW9ucyIsImNvbXBhbnlTZXJ2aWNlT3B0aW9ucyIsInN0YXJ0TW9tZW50IiwiYWNjb3VudHMiLCJzbGVlcCIsIkNhcmRzVHJhbnNhY3Rpb25zTGlzdEJlYW4iLCJhY2NvdW50VHhucyIsImZvckVhY2giLCJhY2NvdW50IiwidHhuR3JvdXBzIiwiYWxsVHhucyIsInR4bkdyb3VwIiwidHhuSXNyYWVsIiwicHVzaCIsInR4bkFicm9hZCIsImNvbWJpbmVJbnN0YWxsbWVudHMiLCJmaXhJbnN0YWxsbWVudHMiLCJvdXRwdXREYXRhIiwiZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlIiwiZmlsdGVyT2xkVHJhbnNhY3Rpb25zIiwiZ2V0RXh0cmFTY3JhcFRyYW5zYWN0aW9uIiwiYWNjb3VudEluZGV4IiwidHJhbnNhY3Rpb24iLCJkYXRhIiwicmF3Q2F0ZWdvcnkiLCJjYXRlZ29yeSIsInRyaW0iLCJnZXRFeHRyYVNjcmFwQWNjb3VudCIsImFjY291bnRNYXAiLCJPYmplY3QiLCJ2YWx1ZXMiLCJ0eG5zQ2h1bmsiLCJjaHVuayIsInVwZGF0ZWRUeG5zIiwiUHJvbWlzZSIsImFsbCIsInQiLCJyZWR1Y2UiLCJtIiwieCIsImdldEFkZGl0aW9uYWxUcmFuc2FjdGlvbkluZm9ybWF0aW9uIiwic2NyYXBlck9wdGlvbnMiLCJhY2NvdW50c1dpdGhJbmRleCIsImFsbE1vbnRocyIsImFkZGl0aW9uYWxUcmFuc2FjdGlvbkluZm9ybWF0aW9uIiwib3B0SW5GZWF0dXJlcyIsInJ1blNlcmlhbCIsImEiLCJpIiwiZmV0Y2hBbGxUcmFuc2FjdGlvbnMiLCJmdXR1cmVNb250aHNUb1NjcmFwZSIsImdldEFsbE1vbnRoTW9tZW50cyIsInJlc3VsdHMiLCJmaW5hbFJlc3VsdCIsImNvbWJpbmVkVHhucyIsImtleXMiLCJ0eG5zRm9yQWNjb3VudCIsInRvQmVBZGRlZFR4bnMiLCJzdWNjZXNzIiwiSXNyYWNhcmRBbWV4QmFzZVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiY29uc3RydWN0b3IiLCJiYXNlVXJsIiwiY29tcGFueUNvZGUiLCJsb2dpbiIsImNyZWRlbnRpYWxzIiwic2V0UmVxdWVzdEludGVyY2VwdGlvbiIsIm9uIiwicmVxdWVzdCIsImFib3J0IiwiaW50ZXJjZXB0aW9uUHJpb3JpdGllcyIsImNvbnRpbnVlIiwibWFza0hlYWRsZXNzVXNlckFnZW50IiwibmF2aWdhdGVUbyIsImVtaXRQcm9ncmVzcyIsIlNjcmFwZXJQcm9ncmVzc1R5cGVzIiwiTG9nZ2luZ0luIiwidmFsaWRhdGVVcmwiLCJ2YWxpZGF0ZVJlcXVlc3QiLCJpZCIsImNhcmRTdWZmaXgiLCJjYXJkNkRpZ2l0cyIsImNvdW50cnlDb2RlIiwiaWRUeXBlIiwiY2hlY2tMZXZlbCIsInZhbGlkYXRlUmVzdWx0IiwiZmV0Y2hQb3N0V2l0aGluUGFnZSIsIkhlYWRlciIsIlN0YXR1cyIsIlZhbGlkYXRlSWREYXRhQmVhbiIsIkVycm9yIiwidmFsaWRhdGVSZXR1cm5Db2RlIiwicmV0dXJuQ29kZSIsInVzZXJOYW1lIiwibG9naW5VcmwiLCJLb2RNaXNodGFtZXNoIiwiTWlzcGFyWmlodXkiLCJTaXNtYSIsInBhc3N3b3JkIiwibG9naW5SZXN1bHQiLCJMb2dpblN1Y2Nlc3MiLCJDaGFuZ2VQYXNzd29yZCIsImVycm9yVHlwZSIsIlNjcmFwZXJFcnJvclR5cGVzIiwiTG9naW5GYWlsZWQiLCJJbnZhbGlkUGFzc3dvcmQiLCJmZXRjaERhdGEiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInN0YXJ0RGF0ZSIsInRvRGF0ZSIsIm1heCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLWlzcmFjYXJkLWFtZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQsIHsgdHlwZSBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgdHlwZSBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyLWNvcmUnO1xuaW1wb3J0IHsgQUxUX1NIRUtFTF9DVVJSRU5DWSwgU0hFS0VMX0NVUlJFTkNZLCBTSEVLRUxfQ1VSUkVOQ1lfS0VZV09SRCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTY3JhcGVyUHJvZ3Jlc3NUeXBlcyB9IGZyb20gJy4uL2RlZmluaXRpb25zJztcbmltcG9ydCBnZXRBbGxNb250aE1vbWVudHMgZnJvbSAnLi4vaGVscGVycy9kYXRlcyc7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuaW1wb3J0IHsgZmV0Y2hHZXRXaXRoaW5QYWdlLCBmZXRjaFBvc3RXaXRoaW5QYWdlIH0gZnJvbSAnLi4vaGVscGVycy9mZXRjaCc7XG5pbXBvcnQgeyBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMsIGZpeEluc3RhbGxtZW50cyB9IGZyb20gJy4uL2hlbHBlcnMvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IHJ1blNlcmlhbCwgc2xlZXAgfSBmcm9tICcuLi9oZWxwZXJzL3dhaXRpbmcnO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb25TdGF0dXNlcyxcbiAgVHJhbnNhY3Rpb25UeXBlcyxcbiAgdHlwZSBUcmFuc2FjdGlvbixcbiAgdHlwZSBUcmFuc2FjdGlvbkluc3RhbGxtZW50cyxcbiAgdHlwZSBUcmFuc2FjdGlvbnNBY2NvdW50LFxufSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyBTY3JhcGVyRXJyb3JUeXBlcyB9IGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCB7IHR5cGUgU2NyYXBlck9wdGlvbnMsIHR5cGUgU2NyYXBlclNjcmFwaW5nUmVzdWx0IH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaW50ZXJjZXB0aW9uUHJpb3JpdGllcywgbWFza0hlYWRsZXNzVXNlckFnZW50IH0gZnJvbSAnLi4vaGVscGVycy9icm93c2VyJztcblxuY29uc3QgUkFURV9MSU1JVCA9IHtcbiAgU0xFRVBfQkVUV0VFTjogMTAwMCxcbiAgVFJBTlNBQ1RJT05TX0JBVENIX1NJWkU6IDEwLFxufSBhcyBjb25zdDtcblxuY29uc3QgQ09VTlRSWV9DT0RFID0gJzIxMic7XG5jb25zdCBJRF9UWVBFID0gJzEnO1xuY29uc3QgSU5TVEFMTE1FTlRTX0tFWVdPUkQgPSAn16rXqdec15XXnSc7XG5cbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZWVknO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCdiYXNlLWlzcmFjYXJkLWFtZXgnKTtcblxudHlwZSBDb21wYW55U2VydmljZU9wdGlvbnMgPSB7XG4gIHNlcnZpY2VzVXJsOiBzdHJpbmc7XG4gIGNvbXBhbnlDb2RlOiBzdHJpbmc7XG59O1xuXG50eXBlIFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleCA9IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uc0FjY291bnQgJiB7IGluZGV4OiBudW1iZXIgfT47XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBkZWFsU3VtVHlwZTogc3RyaW5nO1xuICB2b3VjaGVyTnVtYmVyUmF0ek91dGJvdW5kOiBzdHJpbmc7XG4gIHZvdWNoZXJOdW1iZXJSYXR6OiBzdHJpbmc7XG4gIG1vcmVJbmZvPzogc3RyaW5nO1xuICBkZWFsU3VtT3V0Ym91bmQ6IGJvb2xlYW47XG4gIGN1cnJlbmN5SWQ6IHN0cmluZztcbiAgY3VycmVudFBheW1lbnRDdXJyZW5jeTogc3RyaW5nO1xuICBkZWFsU3VtOiBudW1iZXI7XG4gIGZ1bGxQYXltZW50RGF0ZT86IHN0cmluZztcbiAgZnVsbFB1cmNoYXNlRGF0ZT86IHN0cmluZztcbiAgZnVsbFB1cmNoYXNlRGF0ZU91dGJvdW5kPzogc3RyaW5nO1xuICBmdWxsU3VwcGxpZXJOYW1lSGViOiBzdHJpbmc7XG4gIGZ1bGxTdXBwbGllck5hbWVPdXRib3VuZDogc3RyaW5nO1xuICBwYXltZW50U3VtOiBudW1iZXI7XG4gIHBheW1lbnRTdW1PdXRib3VuZDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZEFjY291bnQge1xuICBpbmRleDogbnVtYmVyO1xuICBhY2NvdW50TnVtYmVyOiBzdHJpbmc7XG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRMb2dpblZhbGlkYXRpb24ge1xuICBIZWFkZXI6IHtcbiAgICBTdGF0dXM6IHN0cmluZztcbiAgfTtcbiAgVmFsaWRhdGVJZERhdGFCZWFuPzoge1xuICAgIHVzZXJOYW1lPzogc3RyaW5nO1xuICAgIHJldHVybkNvZGU6IHN0cmluZztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRBY2NvdW50c1dpdGhpblBhZ2VSZXNwb25zZSB7XG4gIEhlYWRlcjoge1xuICAgIFN0YXR1czogc3RyaW5nO1xuICB9O1xuICBEYXNoYm9hcmRNb250aEJlYW4/OiB7XG4gICAgY2FyZHNDaGFyZ2VzOiB7XG4gICAgICBjYXJkSW5kZXg6IHN0cmluZztcbiAgICAgIGNhcmROdW1iZXI6IHN0cmluZztcbiAgICAgIGJpbGxpbmdEYXRlOiBzdHJpbmc7XG4gICAgfVtdO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZEN1cnJlbnRDYXJkVHJhbnNhY3Rpb25zIHtcbiAgdHhuSXNyYWVsPzogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gIHR4bkFicm9hZD86IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uRGF0YSB7XG4gIEhlYWRlcj86IHtcbiAgICBTdGF0dXM6IHN0cmluZztcbiAgfTtcbiAgUGlydGV5SXNrYV8yMDRCZWFuPzoge1xuICAgIHNlY3Rvcjogc3RyaW5nO1xuICB9O1xuXG4gIENhcmRzVHJhbnNhY3Rpb25zTGlzdEJlYW4/OiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHtcbiAgICAgIEN1cnJlbnRDYXJkVHJhbnNhY3Rpb25zOiBTY3JhcGVkQ3VycmVudENhcmRUcmFuc2FjdGlvbnNbXTtcbiAgICB9XG4gID47XG59XG5cbmZ1bmN0aW9uIGdldEFjY291bnRzVXJsKHNlcnZpY2VzVXJsOiBzdHJpbmcsIG1vbnRoTW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgYmlsbGluZ0RhdGUgPSBtb250aE1vbWVudC5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgY29uc3QgdXJsID0gbmV3IFVSTChzZXJ2aWNlc1VybCk7XG4gIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdyZXFOYW1lJywgJ0Rhc2hib2FyZE1vbnRoJyk7XG4gIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdhY3Rpb25Db2RlJywgJzAnKTtcbiAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2JpbGxpbmdEYXRlJywgYmlsbGluZ0RhdGUpO1xuICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnZm9ybWF0JywgJ0pzb24nKTtcbiAgcmV0dXJuIHVybC50b1N0cmluZygpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFjY291bnRzKHBhZ2U6IFBhZ2UsIHNlcnZpY2VzVXJsOiBzdHJpbmcsIG1vbnRoTW9tZW50OiBNb21lbnQpOiBQcm9taXNlPFNjcmFwZWRBY2NvdW50W10+IHtcbiAgY29uc3QgZGF0YVVybCA9IGdldEFjY291bnRzVXJsKHNlcnZpY2VzVXJsLCBtb250aE1vbWVudCk7XG4gIGRlYnVnKGBmZXRjaGluZyBhY2NvdW50cyBmcm9tICR7ZGF0YVVybH1gKTtcbiAgY29uc3QgZGF0YVJlc3VsdCA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxTY3JhcGVkQWNjb3VudHNXaXRoaW5QYWdlUmVzcG9uc2U+KHBhZ2UsIGRhdGFVcmwpO1xuICBpZiAoZGF0YVJlc3VsdCAmJiBfLmdldChkYXRhUmVzdWx0LCAnSGVhZGVyLlN0YXR1cycpID09PSAnMScgJiYgZGF0YVJlc3VsdC5EYXNoYm9hcmRNb250aEJlYW4pIHtcbiAgICBjb25zdCB7IGNhcmRzQ2hhcmdlcyB9ID0gZGF0YVJlc3VsdC5EYXNoYm9hcmRNb250aEJlYW47XG4gICAgaWYgKGNhcmRzQ2hhcmdlcykge1xuICAgICAgcmV0dXJuIGNhcmRzQ2hhcmdlcy5tYXAoY2FyZENoYXJnZSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW5kZXg6IHBhcnNlSW50KGNhcmRDaGFyZ2UuY2FyZEluZGV4LCAxMCksXG4gICAgICAgICAgYWNjb3VudE51bWJlcjogY2FyZENoYXJnZS5jYXJkTnVtYmVyLFxuICAgICAgICAgIHByb2Nlc3NlZERhdGU6IG1vbWVudChjYXJkQ2hhcmdlLmJpbGxpbmdEYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gW107XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uc1VybChzZXJ2aWNlc1VybDogc3RyaW5nLCBtb250aE1vbWVudDogTW9tZW50KSB7XG4gIGNvbnN0IG1vbnRoID0gbW9udGhNb21lbnQubW9udGgoKSArIDE7XG4gIGNvbnN0IHllYXIgPSBtb250aE1vbWVudC55ZWFyKCk7XG4gIGNvbnN0IG1vbnRoU3RyID0gbW9udGggPCAxMCA/IGAwJHttb250aH1gIDogbW9udGgudG9TdHJpbmcoKTtcbiAgY29uc3QgdXJsID0gbmV3IFVSTChzZXJ2aWNlc1VybCk7XG4gIHVybC5zZWFyY2hQYXJhbXMuc2V0KCdyZXFOYW1lJywgJ0NhcmRzVHJhbnNhY3Rpb25zTGlzdCcpO1xuICB1cmwuc2VhcmNoUGFyYW1zLnNldCgnbW9udGgnLCBtb250aFN0cik7XG4gIHVybC5zZWFyY2hQYXJhbXMuc2V0KCd5ZWFyJywgYCR7eWVhcn1gKTtcbiAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3JlcXVpcmVkRGF0ZScsICdOJyk7XG4gIHJldHVybiB1cmwudG9TdHJpbmcoKTtcbn1cblxuZnVuY3Rpb24gY29udmVydEN1cnJlbmN5KGN1cnJlbmN5U3RyOiBzdHJpbmcpIHtcbiAgaWYgKGN1cnJlbmN5U3RyID09PSBTSEVLRUxfQ1VSUkVOQ1lfS0VZV09SRCB8fCBjdXJyZW5jeVN0ciA9PT0gQUxUX1NIRUtFTF9DVVJSRU5DWSkge1xuICAgIHJldHVybiBTSEVLRUxfQ1VSUkVOQ1k7XG4gIH1cbiAgcmV0dXJuIGN1cnJlbmN5U3RyO1xufVxuXG5mdW5jdGlvbiBnZXRJbnN0YWxsbWVudHNJbmZvKHR4bjogU2NyYXBlZFRyYW5zYWN0aW9uKTogVHJhbnNhY3Rpb25JbnN0YWxsbWVudHMgfCB1bmRlZmluZWQge1xuICBpZiAoIXR4bi5tb3JlSW5mbyB8fCAhdHhuLm1vcmVJbmZvLmluY2x1ZGVzKElOU1RBTExNRU5UU19LRVlXT1JEKSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgbWF0Y2hlcyA9IHR4bi5tb3JlSW5mby5tYXRjaCgvXFxkKy9nKTtcbiAgaWYgKCFtYXRjaGVzIHx8IG1hdGNoZXMubGVuZ3RoIDwgMikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG51bWJlcjogcGFyc2VJbnQobWF0Y2hlc1swXSwgMTApLFxuICAgIHRvdGFsOiBwYXJzZUludChtYXRjaGVzWzFdLCAxMCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uVHlwZSh0eG46IFNjcmFwZWRUcmFuc2FjdGlvbikge1xuICByZXR1cm4gZ2V0SW5zdGFsbG1lbnRzSW5mbyh0eG4pID8gVHJhbnNhY3Rpb25UeXBlcy5JbnN0YWxsbWVudHMgOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbDtcbn1cblxuZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9ucyhcbiAgdHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10sXG4gIHByb2Nlc3NlZERhdGU6IHN0cmluZyxcbiAgb3B0aW9ucz86IFNjcmFwZXJPcHRpb25zLFxuKTogVHJhbnNhY3Rpb25bXSB7XG4gIGNvbnN0IGZpbHRlcmVkVHhucyA9IHR4bnMuZmlsdGVyKFxuICAgIHR4biA9PlxuICAgICAgdHhuLmRlYWxTdW1UeXBlICE9PSAnMScgJiYgdHhuLnZvdWNoZXJOdW1iZXJSYXR6ICE9PSAnMDAwMDAwMDAwJyAmJiB0eG4udm91Y2hlck51bWJlclJhdHpPdXRib3VuZCAhPT0gJzAwMDAwMDAwMCcsXG4gICk7XG5cbiAgcmV0dXJuIGZpbHRlcmVkVHhucy5tYXAodHhuID0+IHtcbiAgICBjb25zdCBpc091dGJvdW5kID0gdHhuLmRlYWxTdW1PdXRib3VuZDtcbiAgICBjb25zdCB0eG5EYXRlU3RyID0gaXNPdXRib3VuZCA/IHR4bi5mdWxsUHVyY2hhc2VEYXRlT3V0Ym91bmQgOiB0eG4uZnVsbFB1cmNoYXNlRGF0ZTtcbiAgICBjb25zdCB0eG5Nb21lbnQgPSBtb21lbnQodHhuRGF0ZVN0ciwgREFURV9GT1JNQVQpO1xuXG4gICAgY29uc3QgY3VycmVudFByb2Nlc3NlZERhdGUgPSB0eG4uZnVsbFBheW1lbnREYXRlXG4gICAgICA/IG1vbWVudCh0eG4uZnVsbFBheW1lbnREYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKVxuICAgICAgOiBwcm9jZXNzZWREYXRlO1xuICAgIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb24gPSB7XG4gICAgICB0eXBlOiBnZXRUcmFuc2FjdGlvblR5cGUodHhuKSxcbiAgICAgIGlkZW50aWZpZXI6IHBhcnNlSW50KGlzT3V0Ym91bmQgPyB0eG4udm91Y2hlck51bWJlclJhdHpPdXRib3VuZCA6IHR4bi52b3VjaGVyTnVtYmVyUmF0eiwgMTApLFxuICAgICAgZGF0ZTogdHhuTW9tZW50LnRvSVNPU3RyaW5nKCksXG4gICAgICBwcm9jZXNzZWREYXRlOiBjdXJyZW50UHJvY2Vzc2VkRGF0ZSxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiBpc091dGJvdW5kID8gLXR4bi5kZWFsU3VtT3V0Ym91bmQgOiAtdHhuLmRlYWxTdW0sXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiBjb252ZXJ0Q3VycmVuY3kodHhuLmN1cnJlbnRQYXltZW50Q3VycmVuY3kgPz8gdHhuLmN1cnJlbmN5SWQpLFxuICAgICAgY2hhcmdlZEFtb3VudDogaXNPdXRib3VuZCA/IC10eG4ucGF5bWVudFN1bU91dGJvdW5kIDogLXR4bi5wYXltZW50U3VtLFxuICAgICAgY2hhcmdlZEN1cnJlbmN5OiBjb252ZXJ0Q3VycmVuY3kodHhuLmN1cnJlbmN5SWQpLFxuICAgICAgZGVzY3JpcHRpb246IGlzT3V0Ym91bmQgPyB0eG4uZnVsbFN1cHBsaWVyTmFtZU91dGJvdW5kIDogdHhuLmZ1bGxTdXBwbGllck5hbWVIZWIsXG4gICAgICBtZW1vOiB0eG4ubW9yZUluZm8gfHwgJycsXG4gICAgICBpbnN0YWxsbWVudHM6IGdldEluc3RhbGxtZW50c0luZm8odHhuKSB8fCB1bmRlZmluZWQsXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgIH07XG5cbiAgICBpZiAob3B0aW9ucz8uaW5jbHVkZVJhd1RyYW5zYWN0aW9uKSB7XG4gICAgICByZXN1bHQucmF3VHJhbnNhY3Rpb24gPSB0eG47XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zKFxuICBwYWdlOiBQYWdlLFxuICBvcHRpb25zOiBTY3JhcGVyT3B0aW9ucyxcbiAgY29tcGFueVNlcnZpY2VPcHRpb25zOiBDb21wYW55U2VydmljZU9wdGlvbnMsXG4gIHN0YXJ0TW9tZW50OiBNb21lbnQsXG4gIG1vbnRoTW9tZW50OiBNb21lbnQsXG4pOiBQcm9taXNlPFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleD4ge1xuICBjb25zdCBhY2NvdW50cyA9IGF3YWl0IGZldGNoQWNjb3VudHMocGFnZSwgY29tcGFueVNlcnZpY2VPcHRpb25zLnNlcnZpY2VzVXJsLCBtb250aE1vbWVudCk7XG4gIGNvbnN0IGRhdGFVcmwgPSBnZXRUcmFuc2FjdGlvbnNVcmwoY29tcGFueVNlcnZpY2VPcHRpb25zLnNlcnZpY2VzVXJsLCBtb250aE1vbWVudCk7XG4gIGF3YWl0IHNsZWVwKFJBVEVfTElNSVQuU0xFRVBfQkVUV0VFTik7XG4gIGRlYnVnKGBmZXRjaGluZyB0cmFuc2FjdGlvbnMgZnJvbSAke2RhdGFVcmx9IGZvciBtb250aCAke21vbnRoTW9tZW50LmZvcm1hdCgnWVlZWS1NTScpfWApO1xuICBjb25zdCBkYXRhUmVzdWx0ID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPFNjcmFwZWRUcmFuc2FjdGlvbkRhdGE+KHBhZ2UsIGRhdGFVcmwpO1xuICBpZiAoZGF0YVJlc3VsdCAmJiBfLmdldChkYXRhUmVzdWx0LCAnSGVhZGVyLlN0YXR1cycpID09PSAnMScgJiYgZGF0YVJlc3VsdC5DYXJkc1RyYW5zYWN0aW9uc0xpc3RCZWFuKSB7XG4gICAgY29uc3QgYWNjb3VudFR4bnM6IFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleCA9IHt9O1xuICAgIGFjY291bnRzLmZvckVhY2goYWNjb3VudCA9PiB7XG4gICAgICBjb25zdCB0eG5Hcm91cHM6IFNjcmFwZWRDdXJyZW50Q2FyZFRyYW5zYWN0aW9uc1tdIHwgdW5kZWZpbmVkID0gXy5nZXQoXG4gICAgICAgIGRhdGFSZXN1bHQsXG4gICAgICAgIGBDYXJkc1RyYW5zYWN0aW9uc0xpc3RCZWFuLkluZGV4JHthY2NvdW50LmluZGV4fS5DdXJyZW50Q2FyZFRyYW5zYWN0aW9uc2AsXG4gICAgICApO1xuICAgICAgaWYgKHR4bkdyb3Vwcykge1xuICAgICAgICBsZXQgYWxsVHhuczogVHJhbnNhY3Rpb25bXSA9IFtdO1xuICAgICAgICB0eG5Hcm91cHMuZm9yRWFjaCh0eG5Hcm91cCA9PiB7XG4gICAgICAgICAgaWYgKHR4bkdyb3VwLnR4bklzcmFlbCkge1xuICAgICAgICAgICAgY29uc3QgdHhucyA9IGNvbnZlcnRUcmFuc2FjdGlvbnModHhuR3JvdXAudHhuSXNyYWVsLCBhY2NvdW50LnByb2Nlc3NlZERhdGUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgYWxsVHhucy5wdXNoKC4uLnR4bnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHhuR3JvdXAudHhuQWJyb2FkKSB7XG4gICAgICAgICAgICBjb25zdCB0eG5zID0gY29udmVydFRyYW5zYWN0aW9ucyh0eG5Hcm91cC50eG5BYnJvYWQsIGFjY291bnQucHJvY2Vzc2VkRGF0ZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICBhbGxUeG5zLnB1c2goLi4udHhucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cykge1xuICAgICAgICAgIGFsbFR4bnMgPSBmaXhJbnN0YWxsbWVudHMoYWxsVHhucyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMub3V0cHV0RGF0YT8uZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlID8/IHRydWUpIHtcbiAgICAgICAgICBhbGxUeG5zID0gZmlsdGVyT2xkVHJhbnNhY3Rpb25zKGFsbFR4bnMsIHN0YXJ0TW9tZW50LCBvcHRpb25zLmNvbWJpbmVJbnN0YWxsbWVudHMgfHwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIGFjY291bnRUeG5zW2FjY291bnQuYWNjb3VudE51bWJlcl0gPSB7XG4gICAgICAgICAgYWNjb3VudE51bWJlcjogYWNjb3VudC5hY2NvdW50TnVtYmVyLFxuICAgICAgICAgIGluZGV4OiBhY2NvdW50LmluZGV4LFxuICAgICAgICAgIHR4bnM6IGFsbFR4bnMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjY291bnRUeG5zO1xuICB9XG5cbiAgcmV0dXJuIHt9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRFeHRyYVNjcmFwVHJhbnNhY3Rpb24oXG4gIHBhZ2U6IFBhZ2UsXG4gIG9wdGlvbnM6IENvbXBhbnlTZXJ2aWNlT3B0aW9ucyxcbiAgbW9udGg6IE1vbWVudCxcbiAgYWNjb3VudEluZGV4OiBudW1iZXIsXG4gIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbixcbik6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgY29uc3QgdXJsID0gbmV3IFVSTChvcHRpb25zLnNlcnZpY2VzVXJsKTtcbiAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3JlcU5hbWUnLCAnUGlydGV5SXNrYV8yMDQnKTtcbiAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ0NhcmRJbmRleCcsIGFjY291bnRJbmRleC50b1N0cmluZygpKTtcbiAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ3Nob3ZhclJhdHonLCB0cmFuc2FjdGlvbi5pZGVudGlmaWVyIS50b1N0cmluZygpKTtcbiAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ21vZWRDaGl1dicsIG1vbnRoLmZvcm1hdCgnTU1ZWVlZJykpO1xuXG4gIGRlYnVnKGBmZXRjaGluZyBleHRyYSBzY3JhcCBmb3IgdHJhbnNhY3Rpb24gJHt0cmFuc2FjdGlvbi5pZGVudGlmaWVyfSBmb3IgbW9udGggJHttb250aC5mb3JtYXQoJ1lZWVktTU0nKX1gKTtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxTY3JhcGVkVHJhbnNhY3Rpb25EYXRhPihwYWdlLCB1cmwudG9TdHJpbmcoKSk7XG4gIGlmICghZGF0YSkge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIGNvbnN0IHJhd0NhdGVnb3J5ID0gXy5nZXQoZGF0YSwgJ1BpcnRleUlza2FfMjA0QmVhbi5zZWN0b3InKSA/PyAnJztcbiAgcmV0dXJuIHtcbiAgICAuLi50cmFuc2FjdGlvbixcbiAgICBjYXRlZ29yeTogcmF3Q2F0ZWdvcnkudHJpbSgpLFxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRFeHRyYVNjcmFwQWNjb3VudChcbiAgcGFnZTogUGFnZSxcbiAgb3B0aW9uczogQ29tcGFueVNlcnZpY2VPcHRpb25zLFxuICBhY2NvdW50TWFwOiBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXgsXG4gIG1vbnRoOiBtb21lbnQuTW9tZW50LFxuKTogUHJvbWlzZTxTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXg+IHtcbiAgY29uc3QgYWNjb3VudHM6IFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleFtzdHJpbmddW10gPSBbXTtcbiAgZm9yIChjb25zdCBhY2NvdW50IG9mIE9iamVjdC52YWx1ZXMoYWNjb3VudE1hcCkpIHtcbiAgICBkZWJ1ZyhcbiAgICAgIGBnZXQgZXh0cmEgc2NyYXAgZm9yICR7YWNjb3VudC5hY2NvdW50TnVtYmVyfSB3aXRoICR7YWNjb3VudC50eG5zLmxlbmd0aH0gdHJhbnNhY3Rpb25zYCxcbiAgICAgIG1vbnRoLmZvcm1hdCgnWVlZWS1NTScpLFxuICAgICk7XG4gICAgY29uc3QgdHhuczogVHJhbnNhY3Rpb25bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgdHhuc0NodW5rIG9mIF8uY2h1bmsoYWNjb3VudC50eG5zLCBSQVRFX0xJTUlULlRSQU5TQUNUSU9OU19CQVRDSF9TSVpFKSkge1xuICAgICAgZGVidWcoYHByb2Nlc3NpbmcgY2h1bmsgb2YgJHt0eG5zQ2h1bmsubGVuZ3RofSB0cmFuc2FjdGlvbnMgZm9yIGFjY291bnQgJHthY2NvdW50LmFjY291bnROdW1iZXJ9YCk7XG4gICAgICBjb25zdCB1cGRhdGVkVHhucyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICB0eG5zQ2h1bmsubWFwKHQgPT4gZ2V0RXh0cmFTY3JhcFRyYW5zYWN0aW9uKHBhZ2UsIG9wdGlvbnMsIG1vbnRoLCBhY2NvdW50LmluZGV4LCB0KSksXG4gICAgICApO1xuICAgICAgYXdhaXQgc2xlZXAoUkFURV9MSU1JVC5TTEVFUF9CRVRXRUVOKTtcbiAgICAgIHR4bnMucHVzaCguLi51cGRhdGVkVHhucyk7XG4gICAgfVxuICAgIGFjY291bnRzLnB1c2goeyAuLi5hY2NvdW50LCB0eG5zIH0pO1xuICB9XG5cbiAgcmV0dXJuIGFjY291bnRzLnJlZHVjZSgobSwgeCkgPT4gKHsgLi4ubSwgW3guYWNjb3VudE51bWJlcl06IHggfSksIHt9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWRkaXRpb25hbFRyYW5zYWN0aW9uSW5mb3JtYXRpb24oXG4gIHNjcmFwZXJPcHRpb25zOiBTY3JhcGVyT3B0aW9ucyxcbiAgYWNjb3VudHNXaXRoSW5kZXg6IFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleFtdLFxuICBwYWdlOiBQYWdlLFxuICBvcHRpb25zOiBDb21wYW55U2VydmljZU9wdGlvbnMsXG4gIGFsbE1vbnRoczogbW9tZW50Lk1vbWVudFtdLFxuKTogUHJvbWlzZTxTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXhbXT4ge1xuICBpZiAoXG4gICAgIXNjcmFwZXJPcHRpb25zLmFkZGl0aW9uYWxUcmFuc2FjdGlvbkluZm9ybWF0aW9uIHx8XG4gICAgc2NyYXBlck9wdGlvbnMub3B0SW5GZWF0dXJlcz8uaW5jbHVkZXMoJ2lzcmFjYXJkLWFtZXg6c2tpcEFkZGl0aW9uYWxUcmFuc2FjdGlvbkluZm9ybWF0aW9uJylcbiAgKSB7XG4gICAgcmV0dXJuIGFjY291bnRzV2l0aEluZGV4O1xuICB9XG4gIHJldHVybiBydW5TZXJpYWwoYWNjb3VudHNXaXRoSW5kZXgubWFwKChhLCBpKSA9PiAoKSA9PiBnZXRFeHRyYVNjcmFwQWNjb3VudChwYWdlLCBvcHRpb25zLCBhLCBhbGxNb250aHNbaV0pKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWxsVHJhbnNhY3Rpb25zKFxuICBwYWdlOiBQYWdlLFxuICBvcHRpb25zOiBTY3JhcGVyT3B0aW9ucyxcbiAgY29tcGFueVNlcnZpY2VPcHRpb25zOiBDb21wYW55U2VydmljZU9wdGlvbnMsXG4gIHN0YXJ0TW9tZW50OiBNb21lbnQsXG4pIHtcbiAgY29uc3QgZnV0dXJlTW9udGhzVG9TY3JhcGUgPSBvcHRpb25zLmZ1dHVyZU1vbnRoc1RvU2NyYXBlID8/IDE7XG4gIGNvbnN0IGFsbE1vbnRocyA9IGdldEFsbE1vbnRoTW9tZW50cyhzdGFydE1vbWVudCwgZnV0dXJlTW9udGhzVG9TY3JhcGUpO1xuICBjb25zdCByZXN1bHRzOiBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXhbXSA9IGF3YWl0IHJ1blNlcmlhbChcbiAgICBhbGxNb250aHMubWFwKG1vbnRoTW9tZW50ID0+ICgpID0+IHtcbiAgICAgIHJldHVybiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlLCBvcHRpb25zLCBjb21wYW55U2VydmljZU9wdGlvbnMsIHN0YXJ0TW9tZW50LCBtb250aE1vbWVudCk7XG4gICAgfSksXG4gICk7XG5cbiAgY29uc3QgZmluYWxSZXN1bHQgPSBhd2FpdCBnZXRBZGRpdGlvbmFsVHJhbnNhY3Rpb25JbmZvcm1hdGlvbihcbiAgICBvcHRpb25zLFxuICAgIHJlc3VsdHMsXG4gICAgcGFnZSxcbiAgICBjb21wYW55U2VydmljZU9wdGlvbnMsXG4gICAgYWxsTW9udGhzLFxuICApO1xuICBjb25zdCBjb21iaW5lZFR4bnM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0ge307XG5cbiAgZmluYWxSZXN1bHQuZm9yRWFjaChyZXN1bHQgPT4ge1xuICAgIE9iamVjdC5rZXlzKHJlc3VsdCkuZm9yRWFjaChhY2NvdW50TnVtYmVyID0+IHtcbiAgICAgIGxldCB0eG5zRm9yQWNjb3VudCA9IGNvbWJpbmVkVHhuc1thY2NvdW50TnVtYmVyXTtcbiAgICAgIGlmICghdHhuc0ZvckFjY291bnQpIHtcbiAgICAgICAgdHhuc0ZvckFjY291bnQgPSBbXTtcbiAgICAgICAgY29tYmluZWRUeG5zW2FjY291bnROdW1iZXJdID0gdHhuc0ZvckFjY291bnQ7XG4gICAgICB9XG4gICAgICBjb25zdCB0b0JlQWRkZWRUeG5zID0gcmVzdWx0W2FjY291bnROdW1iZXJdLnR4bnM7XG4gICAgICBjb21iaW5lZFR4bnNbYWNjb3VudE51bWJlcl0ucHVzaCguLi50b0JlQWRkZWRUeG5zKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgYWNjb3VudHMgPSBPYmplY3Qua2V5cyhjb21iaW5lZFR4bnMpLm1hcChhY2NvdW50TnVtYmVyID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgYWNjb3VudE51bWJlcixcbiAgICAgIHR4bnM6IGNvbWJpbmVkVHhuc1thY2NvdW50TnVtYmVyXSxcbiAgICB9O1xuICB9KTtcblxuICByZXR1cm4ge1xuICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgYWNjb3VudHMsXG4gIH07XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IGlkOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmc7IGNhcmQ2RGlnaXRzOiBzdHJpbmcgfTtcbmNsYXNzIElzcmFjYXJkQW1leEJhc2VTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBwcml2YXRlIGJhc2VVcmw6IHN0cmluZztcblxuICBwcml2YXRlIGNvbXBhbnlDb2RlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzZXJ2aWNlc1VybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNjcmFwZXJPcHRpb25zLCBiYXNlVXJsOiBzdHJpbmcsIGNvbXBhbnlDb2RlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIHRoaXMuYmFzZVVybCA9IGJhc2VVcmw7XG4gICAgdGhpcy5jb21wYW55Q29kZSA9IGNvbXBhbnlDb2RlO1xuICAgIHRoaXMuc2VydmljZXNVcmwgPSBgJHtiYXNlVXJsfS9zZXJ2aWNlcy9Qcm94eVJlcXVlc3RIYW5kbGVyLmFzaHhgO1xuICB9XG5cbiAgYXN5bmMgbG9naW4oY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKTogUHJvbWlzZTxTY3JhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhZ2Uuc2V0UmVxdWVzdEludGVyY2VwdGlvbih0cnVlKTtcbiAgICB0aGlzLnBhZ2Uub24oJ3JlcXVlc3QnLCByZXF1ZXN0ID0+IHtcbiAgICAgIGlmIChyZXF1ZXN0LnVybCgpLmluY2x1ZGVzKCdkZXRlY3Rvci1kb20ubWluLmpzJykpIHtcbiAgICAgICAgZGVidWcoJ2ZvcmNlIGFib3J0IGZvciByZXF1ZXN0IGRvIGRvd25sb2FkIGRldGVjdG9yLWRvbS5taW4uanMgcmVzb3VyY2UnKTtcbiAgICAgICAgdm9pZCByZXF1ZXN0LmFib3J0KHVuZGVmaW5lZCwgaW50ZXJjZXB0aW9uUHJpb3JpdGllcy5hYm9ydCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2b2lkIHJlcXVlc3QuY29udGludWUodW5kZWZpbmVkLCBpbnRlcmNlcHRpb25Qcmlvcml0aWVzLmNvbnRpbnVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGF3YWl0IG1hc2tIZWFkbGVzc1VzZXJBZ2VudCh0aGlzLnBhZ2UpO1xuXG4gICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZVRvKGAke3RoaXMuYmFzZVVybH0vcGVyc29uYWxhcmVhL0xvZ2luYCk7XG5cbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dnaW5nSW4pO1xuXG4gICAgY29uc3QgdmFsaWRhdGVVcmwgPSBgJHt0aGlzLnNlcnZpY2VzVXJsfT9yZXFOYW1lPVZhbGlkYXRlSWREYXRhYDtcbiAgICBjb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSB7XG4gICAgICBpZDogY3JlZGVudGlhbHMuaWQsXG4gICAgICBjYXJkU3VmZml4OiBjcmVkZW50aWFscy5jYXJkNkRpZ2l0cyxcbiAgICAgIGNvdW50cnlDb2RlOiBDT1VOVFJZX0NPREUsXG4gICAgICBpZFR5cGU6IElEX1RZUEUsXG4gICAgICBjaGVja0xldmVsOiAnMScsXG4gICAgICBjb21wYW55Q29kZTogdGhpcy5jb21wYW55Q29kZSxcbiAgICB9O1xuICAgIGRlYnVnKCdsb2dnaW5nIGluIHdpdGggdmFsaWRhdGUgcmVxdWVzdCcpO1xuICAgIGNvbnN0IHZhbGlkYXRlUmVzdWx0ID0gYXdhaXQgZmV0Y2hQb3N0V2l0aGluUGFnZTxTY3JhcGVkTG9naW5WYWxpZGF0aW9uPih0aGlzLnBhZ2UsIHZhbGlkYXRlVXJsLCB2YWxpZGF0ZVJlcXVlc3QpO1xuICAgIGlmIChcbiAgICAgICF2YWxpZGF0ZVJlc3VsdCB8fFxuICAgICAgIXZhbGlkYXRlUmVzdWx0LkhlYWRlciB8fFxuICAgICAgdmFsaWRhdGVSZXN1bHQuSGVhZGVyLlN0YXR1cyAhPT0gJzEnIHx8XG4gICAgICAhdmFsaWRhdGVSZXN1bHQuVmFsaWRhdGVJZERhdGFCZWFuXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gZXJyb3IgZHVyaW5nIGxvZ2luJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdGVSZXR1cm5Db2RlID0gdmFsaWRhdGVSZXN1bHQuVmFsaWRhdGVJZERhdGFCZWFuLnJldHVybkNvZGU7XG4gICAgZGVidWcoYHVzZXIgdmFsaWRhdGUgd2l0aCByZXR1cm4gY29kZSAnJHt2YWxpZGF0ZVJldHVybkNvZGV9J2ApO1xuICAgIGlmICh2YWxpZGF0ZVJldHVybkNvZGUgPT09ICcxJykge1xuICAgICAgY29uc3QgeyB1c2VyTmFtZSB9ID0gdmFsaWRhdGVSZXN1bHQuVmFsaWRhdGVJZERhdGFCZWFuO1xuXG4gICAgICBjb25zdCBsb2dpblVybCA9IGAke3RoaXMuc2VydmljZXNVcmx9P3JlcU5hbWU9cGVyZm9ybUxvZ29uSWA7XG4gICAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgICBLb2RNaXNodGFtZXNoOiB1c2VyTmFtZSxcbiAgICAgICAgTWlzcGFyWmlodXk6IGNyZWRlbnRpYWxzLmlkLFxuICAgICAgICBTaXNtYTogY3JlZGVudGlhbHMucGFzc3dvcmQsXG4gICAgICAgIGNhcmRTdWZmaXg6IGNyZWRlbnRpYWxzLmNhcmQ2RGlnaXRzLFxuICAgICAgICBjb3VudHJ5Q29kZTogQ09VTlRSWV9DT0RFLFxuICAgICAgICBpZFR5cGU6IElEX1RZUEUsXG4gICAgICB9O1xuICAgICAgZGVidWcoJ3VzZXIgbG9naW4gc3RhcnRlZCcpO1xuICAgICAgY29uc3QgbG9naW5SZXN1bHQgPSBhd2FpdCBmZXRjaFBvc3RXaXRoaW5QYWdlPHsgc3RhdHVzOiBzdHJpbmcgfT4odGhpcy5wYWdlLCBsb2dpblVybCwgcmVxdWVzdCk7XG4gICAgICBkZWJ1ZyhgdXNlciBsb2dpbiB3aXRoIHN0YXR1cyAnJHtsb2dpblJlc3VsdD8uc3RhdHVzfSdgLCBsb2dpblJlc3VsdCk7XG5cbiAgICAgIGlmIChsb2dpblJlc3VsdCAmJiBsb2dpblJlc3VsdC5zdGF0dXMgPT09ICcxJykge1xuICAgICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dpblN1Y2Nlc3MpO1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChsb2dpblJlc3VsdCAmJiBsb2dpblJlc3VsdC5zdGF0dXMgPT09ICczJykge1xuICAgICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5DaGFuZ2VQYXNzd29yZCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5DaGFuZ2VQYXNzd29yZCxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NyYXBlclByb2dyZXNzVHlwZXMuTG9naW5GYWlsZWQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuSW52YWxpZFBhc3N3b3JkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGVSZXR1cm5Db2RlID09PSAnNCcpIHtcbiAgICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjcmFwZXJQcm9ncmVzc1R5cGVzLkNoYW5nZVBhc3N3b3JkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkNoYW5nZVBhc3N3b3JkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5Mb2dpbkZhaWxlZCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5JbnZhbGlkUGFzc3dvcmQsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgICByZXR1cm4gZmV0Y2hBbGxUcmFuc2FjdGlvbnMoXG4gICAgICB0aGlzLnBhZ2UsXG4gICAgICB0aGlzLm9wdGlvbnMsXG4gICAgICB7XG4gICAgICAgIHNlcnZpY2VzVXJsOiB0aGlzLnNlcnZpY2VzVXJsLFxuICAgICAgICBjb21wYW55Q29kZTogdGhpcy5jb21wYW55Q29kZSxcbiAgICAgIH0sXG4gICAgICBzdGFydE1vbWVudCxcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IElzcmFjYXJkQW1leEJhc2VTY3JhcGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxhQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxRQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxjQUFBLEdBQUFULE9BQUE7QUFPQSxJQUFBVSx1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
@@ -39,7 +39,9 @@ declare class BaseScraperWithBrowser<TCredentials extends ScraperCredentials> ex
39
39
  private defaultViewportSize;
40
40
  protected page: Page;
41
41
  protected getViewPort(): {
42
- width: number;
42
+ width: number; /**
43
+ * For backward compatibility, we will close the browser even if we didn't create it
44
+ */
43
45
  height: number;
44
46
  };
45
47
  initialize(): Promise<void>;
@@ -16,10 +16,10 @@ const BASE_URL = 'https://www.behatsdaa.org.il';
16
16
  const LOGIN_URL = `${BASE_URL}/login`;
17
17
  const PURCHASE_HISTORY_URL = 'https://back.behatsdaa.org.il/api/purchases/purchaseHistory';
18
18
  const debug = (0, _debug.getDebug)('behatsdaa');
19
- function variantToTransaction(variant) {
19
+ function variantToTransaction(variant, options) {
20
20
  // The price is positive, make it negative as it's an expense
21
21
  const originalAmount = -variant.customerPrice;
22
- return {
22
+ const result = {
23
23
  type: _transactions.TransactionTypes.Normal,
24
24
  identifier: variant.tTransactionID,
25
25
  date: (0, _moment.default)(variant.orderDate).format('YYYY-MM-DD'),
@@ -32,6 +32,10 @@ function variantToTransaction(variant) {
32
32
  status: _transactions.TransactionStatuses.Completed,
33
33
  memo: variant.variantName
34
34
  };
35
+ if (options?.includeRawTransaction) {
36
+ result.rawTransaction = variant;
37
+ }
38
+ return result;
35
39
  }
36
40
  class BehatsdaaScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
37
41
  getLoginOptions(credentials) {
@@ -104,10 +108,10 @@ class BehatsdaaScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
104
108
  success: true,
105
109
  accounts: [{
106
110
  accountNumber: res.data.memberId,
107
- txns: res.data.variants.map(variantToTransaction)
111
+ txns: res.data.variants.map(variant => variantToTransaction(variant, this.options))
108
112
  }]
109
113
  };
110
114
  }
111
115
  }
112
116
  var _default = exports.default = BehatsdaaScraper;
113
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVidWciLCJfZWxlbWVudHNJbnRlcmFjdGlvbnMiLCJfZmV0Y2giLCJfd2FpdGluZyIsIl90cmFuc2FjdGlvbnMiLCJfYmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkJBU0VfVVJMIiwiTE9HSU5fVVJMIiwiUFVSQ0hBU0VfSElTVE9SWV9VUkwiLCJkZWJ1ZyIsImdldERlYnVnIiwidmFyaWFudFRvVHJhbnNhY3Rpb24iLCJ2YXJpYW50Iiwib3JpZ2luYWxBbW91bnQiLCJjdXN0b21lclByaWNlIiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJpZGVudGlmaWVyIiwidFRyYW5zYWN0aW9uSUQiLCJkYXRlIiwibW9tZW50Iiwib3JkZXJEYXRlIiwiZm9ybWF0IiwicHJvY2Vzc2VkRGF0ZSIsIm9yaWdpbmFsQ3VycmVuY3kiLCJjaGFyZ2VkQW1vdW50IiwiY2hhcmdlZEN1cnJlbmN5IiwiZGVzY3JpcHRpb24iLCJuYW1lIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsIm1lbW8iLCJ2YXJpYW50TmFtZSIsIkJlaGF0c2RhYVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwiY3JlZGVudGlhbHMiLCJsb2dpblVybCIsImZpZWxkcyIsInNlbGVjdG9yIiwidmFsdWUiLCJpZCIsInBhc3N3b3JkIiwiY2hlY2tSZWFkaW5lc3MiLCJQcm9taXNlIiwiYWxsIiwid2FpdFVudGlsRWxlbWVudEZvdW5kIiwicGFnZSIsInBvc3NpYmxlUmVzdWx0cyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInNsZWVwIiwiYnV0dG9uIiwiJCIsImNsaWNrIiwiZmV0Y2hEYXRhIiwidG9rZW4iLCJldmFsdWF0ZSIsIndpbmRvdyIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJzdWNjZXNzIiwiZXJyb3JNZXNzYWdlIiwiYm9keSIsIkZyb21EYXRlIiwib3B0aW9ucyIsInN0YXJ0RGF0ZSIsIlRvRGF0ZSIsIkJlbmVmaXRTdGF0dXNJZCIsInJlcyIsImZldGNoUG9zdFdpdGhpblBhZ2UiLCJhdXRob3JpemF0aW9uIiwib3JnYW5pemF0aW9uaWQiLCJlcnJvckRlc2NyaXB0aW9uIiwiZGF0YSIsImFjY291bnRzIiwiYWNjb3VudE51bWJlciIsIm1lbWJlcklkIiwidHhucyIsInZhcmlhbnRzIiwibWFwIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmFwZXJzL2JlaGF0c2RhYS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuaW1wb3J0IHsgd2FpdFVudGlsRWxlbWVudEZvdW5kIH0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hQb3N0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgc2xlZXAgfSBmcm9tICcuLi9oZWxwZXJzL3dhaXRpbmcnO1xuaW1wb3J0IHsgdHlwZSBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCB0eXBlIExvZ2luT3B0aW9ucywgTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7IHR5cGUgU2NyYXBlclNjcmFwaW5nUmVzdWx0IH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuXG5jb25zdCBCQVNFX1VSTCA9ICdodHRwczovL3d3dy5iZWhhdHNkYWEub3JnLmlsJztcbmNvbnN0IExPR0lOX1VSTCA9IGAke0JBU0VfVVJMfS9sb2dpbmA7XG5jb25zdCBQVVJDSEFTRV9ISVNUT1JZX1VSTCA9ICdodHRwczovL2JhY2suYmVoYXRzZGFhLm9yZy5pbC9hcGkvcHVyY2hhc2VzL3B1cmNoYXNlSGlzdG9yeSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ2JlaGF0c2RhYScpO1xuXG50eXBlIFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzID0geyBpZDogc3RyaW5nOyBwYXNzd29yZDogc3RyaW5nIH07XG5cbnR5cGUgVmFyaWFudCA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YXJpYW50TmFtZTogc3RyaW5nO1xuICBjdXN0b21lclByaWNlOiBudW1iZXI7XG4gIG9yZGVyRGF0ZTogc3RyaW5nOyAvLyBJU08gdGltZXN0YW1wIHdpdGggbm8gdGltZXpvbmVcbiAgdFRyYW5zYWN0aW9uSUQ6IHN0cmluZztcbn07XG5cbnR5cGUgUHVyY2hhc2VIaXN0b3J5UmVzcG9uc2UgPSB7XG4gIGRhdGE/OiB7XG4gICAgZXJyb3JEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBtZW1iZXJJZDogc3RyaW5nO1xuICAgIHZhcmlhbnRzOiBWYXJpYW50W107XG4gIH07XG4gIGVycm9yRGVzY3JpcHRpb24/OiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiB2YXJpYW50VG9UcmFuc2FjdGlvbih2YXJpYW50OiBWYXJpYW50KTogVHJhbnNhY3Rpb24ge1xuICAvLyBUaGUgcHJpY2UgaXMgcG9zaXRpdmUsIG1ha2UgaXQgbmVnYXRpdmUgYXMgaXQncyBhbiBleHBlbnNlXG4gIGNvbnN0IG9yaWdpbmFsQW1vdW50ID0gLXZhcmlhbnQuY3VzdG9tZXJQcmljZTtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICBpZGVudGlmaWVyOiB2YXJpYW50LnRUcmFuc2FjdGlvbklELFxuICAgIGRhdGU6IG1vbWVudCh2YXJpYW50Lm9yZGVyRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJyksXG4gICAgcHJvY2Vzc2VkRGF0ZTogbW9tZW50KHZhcmlhbnQub3JkZXJEYXRlKS5mb3JtYXQoJ1lZWVktTU0tREQnKSxcbiAgICBvcmlnaW5hbEFtb3VudCxcbiAgICBvcmlnaW5hbEN1cnJlbmN5OiAnSUxTJyxcbiAgICBjaGFyZ2VkQW1vdW50OiBvcmlnaW5hbEFtb3VudCxcbiAgICBjaGFyZ2VkQ3VycmVuY3k6ICdJTFMnLFxuICAgIGRlc2NyaXB0aW9uOiB2YXJpYW50Lm5hbWUsXG4gICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgICBtZW1vOiB2YXJpYW50LnZhcmlhbnROYW1lLFxuICB9O1xufVxuXG5jbGFzcyBCZWhhdHNkYWFTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBwdWJsaWMgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyk6IExvZ2luT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBMT0dJTl9VUkwsXG4gICAgICBmaWVsZHM6IFtcbiAgICAgICAgeyBzZWxlY3RvcjogJyNsb2dpbklkJywgdmFsdWU6IGNyZWRlbnRpYWxzLmlkIH0sXG4gICAgICAgIHsgc2VsZWN0b3I6ICcjbG9naW5QYXNzd29yZCcsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICAgICAgXSxcbiAgICAgIGNoZWNrUmVhZGluZXNzOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI2xvZ2luUGFzc3dvcmQnKSxcbiAgICAgICAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI2xvZ2luSWQnKSxcbiAgICAgICAgXSk7XG4gICAgICB9LFxuICAgICAgcG9zc2libGVSZXN1bHRzOiB7XG4gICAgICAgIFtMb2dpblJlc3VsdHMuU3VjY2Vzc106IFtgJHtCQVNFX1VSTH0vYF0sXG4gICAgICAgIFtMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXTogWycuY3VzdG9tLWlucHV0LWVycm9yLWxhYmVsJ10sXG4gICAgICB9LFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6IGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgc2xlZXAoMTAwMCk7XG4gICAgICAgIGRlYnVnKCdUcnlpbmcgdG8gZmluZCBzdWJtaXQgYnV0dG9uJyk7XG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IHRoaXMucGFnZS4kKCd4cGF0aD0vL2J1dHRvbltjb250YWlucyguLCBcIteU16rXl9eR16jXldeqXCIpXScpO1xuICAgICAgICBpZiAoYnV0dG9uKSB7XG4gICAgICAgICAgZGVidWcoJ1N1Ym1pdCBidXR0b24gZm91bmQnKTtcbiAgICAgICAgICBhd2FpdCBidXR0b24uY2xpY2soKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWJ1ZygnU3VibWl0IGJ1dHRvbiBub3QgZm91bmQnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCk6IFByb21pc2U8U2NyYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgY29uc3QgdG9rZW4gPSBhd2FpdCB0aGlzLnBhZ2UuZXZhbHVhdGUoKCkgPT4gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyVG9rZW4nKSk7XG4gICAgaWYgKCF0b2tlbikge1xuICAgICAgZGVidWcoJ1Rva2VuIG5vdCBmb3VuZCBpbiBsb2NhbCBzdG9yYWdlJyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3JNZXNzYWdlOiAnVG9rZW5Ob3RGb3VuZCcsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICBGcm9tRGF0ZTogbW9tZW50KHRoaXMub3B0aW9ucy5zdGFydERhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERFRISDptbTpzcycpLFxuICAgICAgVG9EYXRlOiBtb21lbnQoKS5mb3JtYXQoJ1lZWVktTU0tRERUSEg6bW06c3MnKSxcbiAgICAgIEJlbmVmaXRTdGF0dXNJZDogbnVsbCxcbiAgICB9O1xuXG4gICAgZGVidWcoJ0ZldGNoaW5nIGRhdGEnKTtcblxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoUG9zdFdpdGhpblBhZ2U8UHVyY2hhc2VIaXN0b3J5UmVzcG9uc2U+KHRoaXMucGFnZSwgUFVSQ0hBU0VfSElTVE9SWV9VUkwsIGJvZHksIHtcbiAgICAgIGF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gLFxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIG9yZ2FuaXphdGlvbmlkOiAnMjAnLFxuICAgIH0pO1xuXG4gICAgZGVidWcoJ0RhdGEgZmV0Y2hlZCcpO1xuXG4gICAgaWYgKHJlcz8uZXJyb3JEZXNjcmlwdGlvbiB8fCByZXM/LmRhdGE/LmVycm9yRGVzY3JpcHRpb24pIHtcbiAgICAgIGRlYnVnKCdFcnJvciBmZXRjaGluZyBkYXRhJywgcmVzLmVycm9yRGVzY3JpcHRpb24gfHwgcmVzLmRhdGE/LmVycm9yRGVzY3JpcHRpb24pO1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yTWVzc2FnZTogcmVzLmVycm9yRGVzY3JpcHRpb24gfTtcbiAgICB9XG5cbiAgICBpZiAoIXJlcz8uZGF0YSkge1xuICAgICAgZGVidWcoJ05vIGRhdGEgZm91bmQnKTtcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvck1lc3NhZ2U6ICdOb0RhdGEnIH07XG4gICAgfVxuXG4gICAgZGVidWcoJ0RhdGEgZmV0Y2hlZCBzdWNjZXNzZnVsbHknKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhY2NvdW50TnVtYmVyOiByZXMuZGF0YS5tZW1iZXJJZCxcbiAgICAgICAgICB0eG5zOiByZXMuZGF0YS52YXJpYW50cy5tYXAodmFyaWFudFRvVHJhbnNhY3Rpb24pLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJlaGF0c2RhYVNjcmFwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLHFCQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxhQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSx1QkFBQSxHQUFBTixPQUFBO0FBQXNHLFNBQUFELHVCQUFBUSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBR3RHLE1BQU1HLFFBQVEsR0FBRyw4QkFBOEI7QUFDL0MsTUFBTUMsU0FBUyxHQUFHLEdBQUdELFFBQVEsUUFBUTtBQUNyQyxNQUFNRSxvQkFBb0IsR0FBRyw2REFBNkQ7QUFFMUYsTUFBTUMsS0FBSyxHQUFHLElBQUFDLGVBQVEsRUFBQyxXQUFXLENBQUM7QUFxQm5DLFNBQVNDLG9CQUFvQkEsQ0FBQ0MsT0FBZ0IsRUFBZTtFQUMzRDtFQUNBLE1BQU1DLGNBQWMsR0FBRyxDQUFDRCxPQUFPLENBQUNFLGFBQWE7RUFDN0MsT0FBTztJQUNMQyxJQUFJLEVBQUVDLDhCQUFnQixDQUFDQyxNQUFNO0lBQzdCQyxVQUFVLEVBQUVOLE9BQU8sQ0FBQ08sY0FBYztJQUNsQ0MsSUFBSSxFQUFFLElBQUFDLGVBQU0s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
117
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVidWciLCJfZWxlbWVudHNJbnRlcmFjdGlvbnMiLCJfZmV0Y2giLCJfd2FpdGluZyIsIl90cmFuc2FjdGlvbnMiLCJfYmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkJBU0VfVVJMIiwiTE9HSU5fVVJMIiwiUFVSQ0hBU0VfSElTVE9SWV9VUkwiLCJkZWJ1ZyIsImdldERlYnVnIiwidmFyaWFudFRvVHJhbnNhY3Rpb24iLCJ2YXJpYW50Iiwib3B0aW9ucyIsIm9yaWdpbmFsQW1vdW50IiwiY3VzdG9tZXJQcmljZSIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwiaWRlbnRpZmllciIsInRUcmFuc2FjdGlvbklEIiwiZGF0ZSIsIm1vbWVudCIsIm9yZGVyRGF0ZSIsImZvcm1hdCIsInByb2Nlc3NlZERhdGUiLCJvcmlnaW5hbEN1cnJlbmN5IiwiY2hhcmdlZEFtb3VudCIsImNoYXJnZWRDdXJyZW5jeSIsImRlc2NyaXB0aW9uIiwibmFtZSIsInN0YXR1cyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJDb21wbGV0ZWQiLCJtZW1vIiwidmFyaWFudE5hbWUiLCJpbmNsdWRlUmF3VHJhbnNhY3Rpb24iLCJyYXdUcmFuc2FjdGlvbiIsIkJlaGF0c2RhYVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwiY3JlZGVudGlhbHMiLCJsb2dpblVybCIsImZpZWxkcyIsInNlbGVjdG9yIiwidmFsdWUiLCJpZCIsInBhc3N3b3JkIiwiY2hlY2tSZWFkaW5lc3MiLCJQcm9taXNlIiwiYWxsIiwid2FpdFVudGlsRWxlbWVudEZvdW5kIiwicGFnZSIsInBvc3NpYmxlUmVzdWx0cyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInNsZWVwIiwiYnV0dG9uIiwiJCIsImNsaWNrIiwiZmV0Y2hEYXRhIiwidG9rZW4iLCJldmFsdWF0ZSIsIndpbmRvdyIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJzdWNjZXNzIiwiZXJyb3JNZXNzYWdlIiwiYm9keSIsIkZyb21EYXRlIiwic3RhcnREYXRlIiwiVG9EYXRlIiwiQmVuZWZpdFN0YXR1c0lkIiwicmVzIiwiZmV0Y2hQb3N0V2l0aGluUGFnZSIsImF1dGhvcml6YXRpb24iLCJvcmdhbml6YXRpb25pZCIsImVycm9yRGVzY3JpcHRpb24iLCJkYXRhIiwiYWNjb3VudHMiLCJhY2NvdW50TnVtYmVyIiwibWVtYmVySWQiLCJ0eG5zIiwidmFyaWFudHMiLCJtYXAiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyYXBlcnMvYmVoYXRzZGFhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IGdldERlYnVnIH0gZnJvbSAnLi4vaGVscGVycy9kZWJ1Zyc7XG5pbXBvcnQgeyB3YWl0VW50aWxFbGVtZW50Rm91bmQgfSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgeyBmZXRjaFBvc3RXaXRoaW5QYWdlIH0gZnJvbSAnLi4vaGVscGVycy9mZXRjaCc7XG5pbXBvcnQgeyBzbGVlcCB9IGZyb20gJy4uL2hlbHBlcnMvd2FpdGluZyc7XG5pbXBvcnQgeyB0eXBlIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblN0YXR1c2VzLCBUcmFuc2FjdGlvblR5cGVzIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIHR5cGUgTG9naW5PcHRpb25zLCBMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgdHlwZSBTY3JhcGVyT3B0aW9ucywgdHlwZSBTY3JhcGVyU2NyYXBpbmdSZXN1bHQgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5cbmNvbnN0IEJBU0VfVVJMID0gJ2h0dHBzOi8vd3d3LmJlaGF0c2RhYS5vcmcuaWwnO1xuY29uc3QgTE9HSU5fVVJMID0gYCR7QkFTRV9VUkx9L2xvZ2luYDtcbmNvbnN0IFBVUkNIQVNFX0hJU1RPUllfVVJMID0gJ2h0dHBzOi8vYmFjay5iZWhhdHNkYWEub3JnLmlsL2FwaS9wdXJjaGFzZXMvcHVyY2hhc2VIaXN0b3J5JztcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygnYmVoYXRzZGFhJyk7XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IGlkOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmcgfTtcblxudHlwZSBWYXJpYW50ID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhcmlhbnROYW1lOiBzdHJpbmc7XG4gIGN1c3RvbWVyUHJpY2U6IG51bWJlcjtcbiAgb3JkZXJEYXRlOiBzdHJpbmc7IC8vIElTTyB0aW1lc3RhbXAgd2l0aCBubyB0aW1lem9uZVxuICB0VHJhbnNhY3Rpb25JRDogc3RyaW5nO1xufTtcblxudHlwZSBQdXJjaGFzZUhpc3RvcnlSZXNwb25zZSA9IHtcbiAgZGF0YT86IHtcbiAgICBlcnJvckRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIG1lbWJlcklkOiBzdHJpbmc7XG4gICAgdmFyaWFudHM6IFZhcmlhbnRbXTtcbiAgfTtcbiAgZXJyb3JEZXNjcmlwdGlvbj86IHN0cmluZztcbn07XG5cbmZ1bmN0aW9uIHZhcmlhbnRUb1RyYW5zYWN0aW9uKHZhcmlhbnQ6IFZhcmlhbnQsIG9wdGlvbnM/OiBTY3JhcGVyT3B0aW9ucyk6IFRyYW5zYWN0aW9uIHtcbiAgLy8gVGhlIHByaWNlIGlzIHBvc2l0aXZlLCBtYWtlIGl0IG5lZ2F0aXZlIGFzIGl0J3MgYW4gZXhwZW5zZVxuICBjb25zdCBvcmlnaW5hbEFtb3VudCA9IC12YXJpYW50LmN1c3RvbWVyUHJpY2U7XG4gIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb24gPSB7XG4gICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgaWRlbnRpZmllcjogdmFyaWFudC50VHJhbnNhY3Rpb25JRCxcbiAgICBkYXRlOiBtb21lbnQodmFyaWFudC5vcmRlckRhdGUpLmZvcm1hdCgnWVlZWS1NTS1ERCcpLFxuICAgIHByb2Nlc3NlZERhdGU6IG1vbWVudCh2YXJpYW50Lm9yZGVyRGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREJyksXG4gICAgb3JpZ2luYWxBbW91bnQsXG4gICAgb3JpZ2luYWxDdXJyZW5jeTogJ0lMUycsXG4gICAgY2hhcmdlZEFtb3VudDogb3JpZ2luYWxBbW91bnQsXG4gICAgY2hhcmdlZEN1cnJlbmN5OiAnSUxTJyxcbiAgICBkZXNjcmlwdGlvbjogdmFyaWFudC5uYW1lLFxuICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsXG4gICAgbWVtbzogdmFyaWFudC52YXJpYW50TmFtZSxcbiAgfTtcblxuICBpZiAob3B0aW9ucz8uaW5jbHVkZVJhd1RyYW5zYWN0aW9uKSB7XG4gICAgcmVzdWx0LnJhd1RyYW5zYWN0aW9uID0gdmFyaWFudDtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmNsYXNzIEJlaGF0c2RhYVNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyPFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzPiB7XG4gIHB1YmxpYyBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKTogTG9naW5PcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IExPR0lOX1VSTCxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7IHNlbGVjdG9yOiAnI2xvZ2luSWQnLCB2YWx1ZTogY3JlZGVudGlhbHMuaWQgfSxcbiAgICAgICAgeyBzZWxlY3RvcjogJyNsb2dpblBhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gICAgICBdLFxuICAgICAgY2hlY2tSZWFkaW5lc3M6IGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjbG9naW5QYXNzd29yZCcpLFxuICAgICAgICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjbG9naW5JZCcpLFxuICAgICAgICBdKTtcbiAgICAgIH0sXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IHtcbiAgICAgICAgW0xvZ2luUmVzdWx0cy5TdWNjZXNzXTogW2Ake0JBU0VfVVJMfS9gXSxcbiAgICAgICAgW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdOiBbJy5jdXN0b20taW5wdXQtZXJyb3ItbGFiZWwnXSxcbiAgICAgIH0sXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCBzbGVlcCgxMDAwKTtcbiAgICAgICAgZGVidWcoJ1RyeWluZyB0byBmaW5kIHN1Ym1pdCBidXR0b24nKTtcbiAgICAgICAgY29uc3QgYnV0dG9uID0gYXdhaXQgdGhpcy5wYWdlLiQoJ3hwYXRoPS8vYnV0dG9uW2NvbnRhaW5zKC4sIFwi15TXqteX15HXqNeV16pcIildJyk7XG4gICAgICAgIGlmIChidXR0b24pIHtcbiAgICAgICAgICBkZWJ1ZygnU3VibWl0IGJ1dHRvbiBmb3VuZCcpO1xuICAgICAgICAgIGF3YWl0IGJ1dHRvbi5jbGljaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlYnVnKCdTdWJtaXQgYnV0dG9uIG5vdCBmb3VuZCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKTogUHJvbWlzZTxTY3JhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHRoaXMucGFnZS5ldmFsdWF0ZSgoKSA9PiB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXJUb2tlbicpKTtcbiAgICBpZiAoIXRva2VuKSB7XG4gICAgICBkZWJ1ZygnVG9rZW4gbm90IGZvdW5kIGluIGxvY2FsIHN0b3JhZ2UnKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvck1lc3NhZ2U6ICdUb2tlbk5vdEZvdW5kJyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIEZyb21EYXRlOiBtb21lbnQodGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSkuZm9ybWF0KCdZWVlZLU1NLUREVEhIOm1tOnNzJyksXG4gICAgICBUb0RhdGU6IG1vbWVudCgpLmZvcm1hdCgnWVlZWS1NTS1ERFRISDptbTpzcycpLFxuICAgICAgQmVuZWZpdFN0YXR1c0lkOiBudWxsLFxuICAgIH07XG5cbiAgICBkZWJ1ZygnRmV0Y2hpbmcgZGF0YScpO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2hQb3N0V2l0aGluUGFnZTxQdXJjaGFzZUhpc3RvcnlSZXNwb25zZT4odGhpcy5wYWdlLCBQVVJDSEFTRV9ISVNUT1JZX1VSTCwgYm9keSwge1xuICAgICAgYXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAsXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgb3JnYW5pemF0aW9uaWQ6ICcyMCcsXG4gICAgfSk7XG5cbiAgICBkZWJ1ZygnRGF0YSBmZXRjaGVkJyk7XG5cbiAgICBpZiAocmVzPy5lcnJvckRlc2NyaXB0aW9uIHx8IHJlcz8uZGF0YT8uZXJyb3JEZXNjcmlwdGlvbikge1xuICAgICAgZGVidWcoJ0Vycm9yIGZldGNoaW5nIGRhdGEnLCByZXMuZXJyb3JEZXNjcmlwdGlvbiB8fCByZXMuZGF0YT8uZXJyb3JEZXNjcmlwdGlvbik7XG4gICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3JNZXNzYWdlOiByZXMuZXJyb3JEZXNjcmlwdGlvbiB9O1xuICAgIH1cblxuICAgIGlmICghcmVzPy5kYXRhKSB7XG4gICAgICBkZWJ1ZygnTm8gZGF0YSBmb3VuZCcpO1xuICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yTWVzc2FnZTogJ05vRGF0YScgfTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnRGF0YSBmZXRjaGVkIHN1Y2Nlc3NmdWxseScpO1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFjY291bnROdW1iZXI6IHJlcy5kYXRhLm1lbWJlcklkLFxuICAgICAgICAgIHR4bnM6IHJlcy5kYXRhLnZhcmlhbnRzLm1hcCh2YXJpYW50ID0+IHZhcmlhbnRUb1RyYW5zYWN0aW9uKHZhcmlhbnQsIHRoaXMub3B0aW9ucykpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJlaGF0c2RhYVNjcmFwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLHFCQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxhQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSx1QkFBQSxHQUFBTixPQUFBO0FBQXNHLFNBQUFELHVCQUFBUSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBR3RHLE1BQU1HLFFBQVEsR0FBRyw4QkFBOEI7QUFDL0MsTUFBTUMsU0FBUyxHQUFHLEdBQUdELFFBQVEsUUFBUTtBQUNyQyxNQUFNRSxvQkFB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
@@ -40,7 +40,7 @@ function getAmountData(amountStr) {
40
40
  currency
41
41
  };
42
42
  }
43
- function convertTransactions(txns) {
43
+ function convertTransactions(txns, options) {
44
44
  debug(`convert ${txns.length} raw transactions to official Transaction structure`);
45
45
  return txns.map(txn => {
46
46
  const chargedAmountTuple = getAmountData(txn.chargedAmount || '');
@@ -58,6 +58,9 @@ function convertTransactions(txns) {
58
58
  memo: '',
59
59
  identifier: txn.identifier
60
60
  };
61
+ if (options?.includeRawTransaction) {
62
+ result.rawTransaction = txn;
63
+ }
61
64
  return result;
62
65
  });
63
66
  }
@@ -90,7 +93,7 @@ async function fetchTransactions(page, options) {
90
93
  });
91
94
  });
92
95
  debug(`fetched ${rawTransactions.length} raw transactions from page`);
93
- const accountTransactions = convertTransactions(rawTransactions.filter(item => !!item));
96
+ const accountTransactions = convertTransactions(rawTransactions.filter(item => !!item), options);
94
97
  debug('filer out old transactions');
95
98
  const txns = options.outputData?.enableTransactionsFilterByDate ?? true ? (0, _transactions.filterOldTransactions)(accountTransactions, startMoment, false) : accountTransactions;
96
99
  debug(`found ${txns.length} valid transactions out of ${accountTransactions.length} transactions for account ending with ${accountNumber.substring(accountNumber.length - 2)}`);
@@ -146,4 +149,4 @@ class BeyahadBishvilhaScraper extends _baseScraperWithBrowser.BaseScraperWithBro
146
149
  }
147
150
  }
148
151
  var _default = exports.default = BeyahadBishvilhaScraper;
149
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX2RlYnVnIiwiX2VsZW1lbnRzSW50ZXJhY3Rpb25zIiwiX3RyYW5zYWN0aW9ucyIsIl90cmFuc2FjdGlvbnMyIiwiX2Jhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJkZWJ1ZyIsImdldERlYnVnIiwiREFURV9GT1JNQVQiLCJMT0dJTl9VUkwiLCJTVUNDRVNTX1VSTCIsIkNBUkRfVVJMIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNsbiIsInJlcGxhY2UiLCJjdXJyZW5jeSIsImFtb3VudCIsImluY2x1ZGVzIiwiU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCIsInBhcnNlRmxvYXQiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MIiwiRE9MTEFSX0NVUlJFTkNZIiwiRVVST19DVVJSRU5DWV9TWU1CT0wiLCJFVVJPX0NVUlJFTkNZIiwicGFydHMiLCJzcGxpdCIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwibGVuZ3RoIiwibWFwIiwidHhuIiwiY2hhcmdlZEFtb3VudFR1cGxlIiwiY2hhcmdlZEFtb3VudCIsInR4blByb2Nlc3NlZERhdGUiLCJtb21lbnQiLCJkYXRlIiwicmVzdWx0IiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiQ29tcGxldGVkIiwidG9JU09TdHJpbmciLCJwcm9jZXNzZWREYXRlIiwib3JpZ2luYWxBbW91bnQiLCJvcmlnaW5hbEN1cnJlbmN5IiwiY2hhcmdlZEN1cnJlbmN5IiwiZGVzY3JpcHRpb24iLCJtZW1vIiwiaWRlbnRpZmllciIsImZldGNoVHJhbnNhY3Rpb25zIiwicGFnZSIsIm9wdGlvbnMiLCJnb3RvIiwid2FpdFVudGlsRWxlbWVudEZvdW5kIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJzdGFydERhdGUiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1heCIsImFjY291bnROdW1iZXIiLCJwYWdlRXZhbCIsImVsZW1lbnQiLCJpbm5lclRleHQiLCJiYWxhbmNlIiwicmF3VHJhbnNhY3Rpb25zIiwicGFnZUV2YWxBbGwiLCJpdGVtcyIsImVsIiwiY29sdW1ucyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJhY2NvdW50VHJhbnNhY3Rpb25zIiwiZmlsdGVyIiwiaXRlbSIsIm91dHB1dERhdGEiLCJlbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUiLCJmaWx0ZXJPbGRUcmFuc2FjdGlvbnMiLCJzdWJzdHJpbmciLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiQ2hhbmdlUGFzc3dvcmQiLCJJbnZhbGlkUGFzc3dvcmQiLCJVbmtub3duRXJyb3IiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsImlkIiwicGFzc3dvcmQiLCJCZXlhaGFkQmlzaHZpbGhhU2NyYXBlciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJnZXRWaWV3UG9ydCIsIndpZHRoIiwiaGVpZ2h0IiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImJ1dHRvbiIsIiQiLCJjbGljayIsInBvc3NpYmxlUmVzdWx0cyIsImZldGNoRGF0YSIsImFjY291bnQiLCJzdWNjZXNzIiwiYWNjb3VudHMiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyYXBlcnMvYmV5YWhhZC1iaXNodmlsaGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgdHlwZSBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyLWNvcmUnO1xuaW1wb3J0IHtcbiAgRE9MTEFSX0NVUlJFTkNZLFxuICBET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MLFxuICBFVVJPX0NVUlJFTkNZLFxuICBFVVJPX0NVUlJFTkNZX1NZTUJPTCxcbiAgU0hFS0VMX0NVUlJFTkNZLFxuICBTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MLFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcbmltcG9ydCB7IHBhZ2VFdmFsLCBwYWdlRXZhbEFsbCwgd2FpdFVudGlsRWxlbWVudEZvdW5kIH0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgZmlsdGVyT2xkVHJhbnNhY3Rpb25zIH0gZnJvbSAnLi4vaGVscGVycy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcywgdHlwZSBUcmFuc2FjdGlvbiB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBMb2dpblJlc3VsdHMsIHR5cGUgUG9zc2libGVMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgdHlwZSBTY3JhcGVyT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlJztcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygnYmV5YWhhZEJpc2h2aWxoYScpO1xuXG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWSc7XG5jb25zdCBMT0dJTl9VUkwgPSAnaHR0cHM6Ly93d3cuaGlzdC5vcmcuaWwvbG9naW4nO1xuY29uc3QgU1VDQ0VTU19VUkwgPSAnaHR0cHM6Ly93d3cuaGlzdC5vcmcuaWwvJztcbmNvbnN0IENBUkRfVVJMID0gJ2h0dHBzOi8vd3d3Lmhpc3Qub3JnLmlsL2NhcmQvYmFsYW5jZUFuZFVzZXMnO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgZGF0ZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGNoYXJnZWRBbW91bnQ6IHN0cmluZztcbiAgaWRlbnRpZmllcjogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBnZXRBbW91bnREYXRhKGFtb3VudFN0cjogc3RyaW5nKSB7XG4gIGNvbnN0IGFtb3VudFN0ckNsbiA9IGFtb3VudFN0ci5yZXBsYWNlKCcsJywgJycpO1xuICBsZXQgY3VycmVuY3k6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBsZXQgYW1vdW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgaWYgKGFtb3VudFN0ckNsbi5pbmNsdWRlcyhTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MKSkge1xuICAgIGFtb3VudCA9IHBhcnNlRmxvYXQoYW1vdW50U3RyQ2xuLnJlcGxhY2UoU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IFNIRUtFTF9DVVJSRU5DWTtcbiAgfSBlbHNlIGlmIChhbW91bnRTdHJDbG4uaW5jbHVkZXMoRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCkpIHtcbiAgICBhbW91bnQgPSBwYXJzZUZsb2F0KGFtb3VudFN0ckNsbi5yZXBsYWNlKERPTExBUl9DVVJSRU5DWV9TWU1CT0wsICcnKSk7XG4gICAgY3VycmVuY3kgPSBET0xMQVJfQ1VSUkVOQ1k7XG4gIH0gZWxzZSBpZiAoYW1vdW50U3RyQ2xuLmluY2x1ZGVzKEVVUk9fQ1VSUkVOQ1lfU1lNQk9MKSkge1xuICAgIGFtb3VudCA9IHBhcnNlRmxvYXQoYW1vdW50U3RyQ2xuLnJlcGxhY2UoRVVST19DVVJSRU5DWV9TWU1CT0wsICcnKSk7XG4gICAgY3VycmVuY3kgPSBFVVJPX0NVUlJFTkNZO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHBhcnRzID0gYW1vdW50U3RyQ2xuLnNwbGl0KCcgJyk7XG4gICAgW2N1cnJlbmN5XSA9IHBhcnRzO1xuICAgIGFtb3VudCA9IHBhcnNlRmxvYXQocGFydHNbMV0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhbW91bnQsXG4gICAgY3VycmVuY3ksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgZGVidWcoYGNvbnZlcnQgJHt0eG5zLmxlbmd0aH0gcmF3IHRyYW5zYWN0aW9ucyB0byBvZmZpY2lhbCBUcmFuc2FjdGlvbiBzdHJ1Y3R1cmVgKTtcbiAgcmV0dXJuIHR4bnMubWFwKHR4biA9PiB7XG4gICAgY29uc3QgY2hhcmdlZEFtb3VudFR1cGxlID0gZ2V0QW1vdW50RGF0YSh0eG4uY2hhcmdlZEFtb3VudCB8fCAnJyk7XG4gICAgY29uc3QgdHhuUHJvY2Vzc2VkRGF0ZSA9IG1vbWVudCh0eG4uZGF0ZSwgREFURV9GT1JNQVQpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbiA9IHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgICAgIGRhdGU6IHR4blByb2Nlc3NlZERhdGUudG9JU09TdHJpbmcoKSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IHR4blByb2Nlc3NlZERhdGUudG9JU09TdHJpbmcoKSxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiBjaGFyZ2VkQW1vdW50VHVwbGUuYW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogY2hhcmdlZEFtb3VudFR1cGxlLmN1cnJlbmN5LFxuICAgICAgY2hhcmdlZEFtb3VudDogY2hhcmdlZEFtb3VudFR1cGxlLmFtb3VudCxcbiAgICAgIGNoYXJnZWRDdXJyZW5jeTogY2hhcmdlZEFtb3VudFR1cGxlLmN1cnJlbmN5LFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIG1lbW86ICcnLFxuICAgICAgaWRlbnRpZmllcjogdHhuLmlkZW50aWZpZXIsXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBvcHRpb25zOiBTY3JhcGVyT3B0aW9ucykge1xuICBhd2FpdCBwYWdlLmdvdG8oQ0FSRF9VUkwpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJy5yZWFjdC1sb2FkaW5nLmhpZGUnLCBmYWxzZSk7XG4gIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpO1xuICBjb25zdCBzdGFydERhdGUgPSBvcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcblxuICBjb25zdCBhY2NvdW50TnVtYmVyID0gYXdhaXQgcGFnZUV2YWwocGFnZSwgJy53YWxsZXQtZGV0YWlscyBkaXY6bnRoLW9mLXR5cGUoMiknLCBudWxsLCBlbGVtZW50ID0+IHtcbiAgICByZXR1cm4gKGVsZW1lbnQgYXMgYW55KS5pbm5lclRleHQucmVwbGFjZSgn157Xodek16gg15vXqNeY15nXoSAnLCAnJyk7XG4gIH0pO1xuXG4gIGNvbnN0IGJhbGFuY2UgPSBhd2FpdCBwYWdlRXZhbChwYWdlLCAnLndhbGxldC1kZXRhaWxzIGRpdjpudGgtb2YtdHlwZSg0KSA+IHNwYW46bnRoLW9mLXR5cGUoMiknLCBudWxsLCBlbGVtZW50ID0+IHtcbiAgICByZXR1cm4gKGVsZW1lbnQgYXMgYW55KS5pbm5lclRleHQ7XG4gIH0pO1xuXG4gIGRlYnVnKCdmZXRjaCByYXcgdHJhbnNhY3Rpb25zIGZyb20gcGFnZScpO1xuXG4gIGNvbnN0IHJhd1RyYW5zYWN0aW9uczogKFNjcmFwZWRUcmFuc2FjdGlvbiB8IG51bGwpW10gPSBhd2FpdCBwYWdlRXZhbEFsbDwoU2NyYXBlZFRyYW5zYWN0aW9uIHwgbnVsbClbXT4oXG4gICAgcGFnZSxcbiAgICAnLnRyYW5zYWN0aW9uLWNvbnRhaW5lciwgLnRyYW5zYWN0aW9uLWNvbXBvbmVudC1jb250YWluZXInLFxuICAgIFtdLFxuICAgIGl0ZW1zID0+IHtcbiAgICAgIHJldHVybiBpdGVtcy5tYXAoZWwgPT4ge1xuICAgICAgICBjb25zdCBjb2x1bW5zOiBOb2RlTGlzdE9mPEhUTUxTcGFuRWxlbWVudD4gPSBlbC5xdWVyeVNlbGVjdG9yQWxsKCcudHJhbnNhY3Rpb24taXRlbSA+IHNwYW4nKTtcbiAgICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID09PSA3KSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGU6IGNvbHVtbnNbMF0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgaWRlbnRpZmllcjogY29sdW1uc1sxXS5pbm5lclRleHQsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogY29sdW1uc1szXS5pbm5lclRleHQsXG4gICAgICAgICAgICB0eXBlOiBjb2x1bW5zWzVdLmlubmVyVGV4dCxcbiAgICAgICAgICAgIGNoYXJnZWRBbW91bnQ6IGNvbHVtbnNbNl0uaW5uZXJUZXh0LFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KTtcbiAgICB9LFxuICApO1xuICBkZWJ1ZyhgZmV0Y2hlZCAke3Jhd1RyYW5zYWN0aW9ucy5sZW5ndGh9IHJhdyB0cmFuc2FjdGlvbnMgZnJvbSBwYWdlYCk7XG5cbiAgY29uc3QgYWNjb3VudFRyYW5zYWN0aW9ucyA9IGNvbnZlcnRUcmFuc2FjdGlvbnMocmF3VHJhbnNhY3Rpb25zLmZpbHRlcihpdGVtID0+ICEhaXRlbSkgYXMgU2NyYXBlZFRyYW5zYWN0aW9uW10pO1xuXG4gIGRlYnVnKCdmaWxlciBvdXQgb2xkIHRyYW5zYWN0aW9ucycpO1xuICBjb25zdCB0eG5zID1cbiAgICAob3B0aW9ucy5vdXRwdXREYXRhPy5lbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUgPz8gdHJ1ZSlcbiAgICAgID8gZmlsdGVyT2xkVHJhbnNhY3Rpb25zKGFjY291bnRUcmFuc2FjdGlvbnMsIHN0YXJ0TW9tZW50LCBmYWxzZSlcbiAgICAgIDogYWNjb3VudFRyYW5zYWN0aW9ucztcbiAgZGVidWcoXG4gICAgYGZvdW5kICR7dHhucy5sZW5ndGh9IHZhbGlkIHRyYW5zYWN0aW9ucyBvdXQgb2YgJHthY2NvdW50VHJhbnNhY3Rpb25zLmxlbmd0aH0gdHJhbnNhY3Rpb25zIGZvciBhY2NvdW50IGVuZGluZyB3aXRoICR7YWNjb3VudE51bWJlci5zdWJzdHJpbmcoYWNjb3VudE51bWJlci5sZW5ndGggLSAyKX1gLFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgYWNjb3VudE51bWJlcixcbiAgICBiYWxhbmNlOiBnZXRBbW91bnREYXRhKGJhbGFuY2UpLmFtb3VudCxcbiAgICB0eG5zLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyB7XG4gIGNvbnN0IHVybHM6IFBvc3NpYmxlTG9naW5SZXN1bHRzID0ge307XG4gIHVybHNbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdID0gW1NVQ0NFU1NfVVJMXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdID0gW107IC8vIFRPRE9cbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFtdOyAvLyBUT0RPXG4gIHVybHNbTG9naW5SZXN1bHRzLlVua25vd25FcnJvcl0gPSBbXTsgLy8gVE9ET1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogJyNsb2dpbklkJywgdmFsdWU6IGNyZWRlbnRpYWxzLmlkIH0sXG4gICAgeyBzZWxlY3RvcjogJyNsb2dpblBhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IGlkOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmcgfTtcblxuY2xhc3MgQmV5YWhhZEJpc2h2aWxoYVNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyPFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzPiB7XG4gIHByb3RlY3RlZCBnZXRWaWV3UG9ydCgpOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0ge1xuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogMTUwMCxcbiAgICAgIGhlaWdodDogODAwLFxuICAgIH07XG4gIH1cblxuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBMT0dJTl9VUkwsXG4gICAgICBmaWVsZHM6IGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzKSxcbiAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IHRoaXMucGFnZS4kKCd4cGF0aC8vYnV0dG9uW2NvbnRhaW5zKC4sIFwi15TXqteX15HXqFwiKV0nKTtcbiAgICAgICAgaWYgKGJ1dHRvbikge1xuICAgICAgICAgIGF3YWl0IGJ1dHRvbi5jbGljaygpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zKHRoaXMucGFnZSwgdGhpcy5vcHRpb25zKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzOiBbYWNjb3VudF0sXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCZXlhaGFkQmlzaHZpbGhhU2NyYXBlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBUUEsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcscUJBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGFBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLHVCQUFBLEdBQUFOLE9BQUE7QUFBOEcsU0FBQUQsdUJBQUFRLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFHOUcsTUFBTUcsS0FBSyxHQUFHLElBQUFDLGVBQVEsRUFBQyxrQkFBa0IsQ0FBQztBQUUxQyxNQUFNQyxXQUFXLEdBQUcsVUFBVTtBQUM5QixNQUFNQyxTQUFTLEdBQUcsK0JBQStCO0FBQ2pELE1BQU1DLFdBQVcsR0FBRywwQkFBMEI7QUFDOUMsTUFBTUMsUUFBUSxHQUFHLDZDQUE2QztBQVU5RCxTQUFTQyxhQUFhQSxDQUFDQyxTQUFpQixFQUFFO0VBQ3hDLE1BQU1DLFlBQVksR0FBR0QsU0FBUyxDQUFDRSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztFQUMvQyxJQUFJQyxRQUF1QixHQUFHLElBQUk7RUFDbEMsSUFBSUMsTUFBcUIsR0FBRyxJQUFJO0VBQ2hDLElBQUlILFlBQVksQ0FBQ0ksUUFBUSxDQUFDQyxpQ0FBc0IsQ0FBQyxFQUFFO0lBQ2pERixNQUFNLEdBQUdHLFVBQVUsQ0FBQ04sWUFBWSxDQUFDQyxPQUFPLENBQUNJLGlDQUFzQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lB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
152
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX2RlYnVnIiwiX2VsZW1lbnRzSW50ZXJhY3Rpb25zIiwiX3RyYW5zYWN0aW9ucyIsIl90cmFuc2FjdGlvbnMyIiwiX2Jhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJkZWJ1ZyIsImdldERlYnVnIiwiREFURV9GT1JNQVQiLCJMT0dJTl9VUkwiLCJTVUNDRVNTX1VSTCIsIkNBUkRfVVJMIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNsbiIsInJlcGxhY2UiLCJjdXJyZW5jeSIsImFtb3VudCIsImluY2x1ZGVzIiwiU0hFS0VMX0NVUlJFTkNZX1NZTUJPTCIsInBhcnNlRmxvYXQiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MIiwiRE9MTEFSX0NVUlJFTkNZIiwiRVVST19DVVJSRU5DWV9TWU1CT0wiLCJFVVJPX0NVUlJFTkNZIiwicGFydHMiLCJzcGxpdCIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwib3B0aW9ucyIsImxlbmd0aCIsIm1hcCIsInR4biIsImNoYXJnZWRBbW91bnRUdXBsZSIsImNoYXJnZWRBbW91bnQiLCJ0eG5Qcm9jZXNzZWREYXRlIiwibW9tZW50IiwiZGF0ZSIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsInRvSVNPU3RyaW5nIiwicHJvY2Vzc2VkRGF0ZSIsIm9yaWdpbmFsQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRDdXJyZW5jeSIsImRlc2NyaXB0aW9uIiwibWVtbyIsImlkZW50aWZpZXIiLCJpbmNsdWRlUmF3VHJhbnNhY3Rpb24iLCJyYXdUcmFuc2FjdGlvbiIsImZldGNoVHJhbnNhY3Rpb25zIiwicGFnZSIsImdvdG8iLCJ3YWl0VW50aWxFbGVtZW50Rm91bmQiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInN0YXJ0RGF0ZSIsInRvRGF0ZSIsInN0YXJ0TW9tZW50IiwibWF4IiwiYWNjb3VudE51bWJlciIsInBhZ2VFdmFsIiwiZWxlbWVudCIsImlubmVyVGV4dCIsImJhbGFuY2UiLCJyYXdUcmFuc2FjdGlvbnMiLCJwYWdlRXZhbEFsbCIsIml0ZW1zIiwiZWwiLCJjb2x1bW5zIiwicXVlcnlTZWxlY3RvckFsbCIsImFjY291bnRUcmFuc2FjdGlvbnMiLCJmaWx0ZXIiLCJpdGVtIiwib3V0cHV0RGF0YSIsImVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSIsImZpbHRlck9sZFRyYW5zYWN0aW9ucyIsInN1YnN0cmluZyIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJDaGFuZ2VQYXNzd29yZCIsIkludmFsaWRQYXNzd29yZCIsIlVua25vd25FcnJvciIsImNyZWF0ZUxvZ2luRmllbGRzIiwiY3JlZGVudGlhbHMiLCJzZWxlY3RvciIsInZhbHVlIiwiaWQiLCJwYXNzd29yZCIsIkJleWFoYWRCaXNodmlsaGFTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldFZpZXdQb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJnZXRMb2dpbk9wdGlvbnMiLCJsb2dpblVybCIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiYnV0dG9uIiwiJCIsImNsaWNrIiwicG9zc2libGVSZXN1bHRzIiwiZmV0Y2hEYXRhIiwiYWNjb3VudCIsInN1Y2Nlc3MiLCJhY2NvdW50cyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iZXlhaGFkLWJpc2h2aWxoYS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyB0eXBlIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXItY29yZSc7XG5pbXBvcnQge1xuICBET0xMQVJfQ1VSUkVOQ1ksXG4gIERPTExBUl9DVVJSRU5DWV9TWU1CT0wsXG4gIEVVUk9fQ1VSUkVOQ1ksXG4gIEVVUk9fQ1VSUkVOQ1lfU1lNQk9MLFxuICBTSEVLRUxfQ1VSUkVOQ1ksXG4gIFNIRUtFTF9DVVJSRU5DWV9TWU1CT0wsXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuaW1wb3J0IHsgcGFnZUV2YWwsIHBhZ2VFdmFsQWxsLCB3YWl0VW50aWxFbGVtZW50Rm91bmQgfSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgeyBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMgfSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblN0YXR1c2VzLCBUcmFuc2FjdGlvblR5cGVzLCB0eXBlIFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgdHlwZSBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyB0eXBlIFNjcmFwZXJPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCdiZXlhaGFkQmlzaHZpbGhhJyk7XG5cbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZJztcbmNvbnN0IExPR0lOX1VSTCA9ICdodHRwczovL3d3dy5oaXN0Lm9yZy5pbC9sb2dpbic7XG5jb25zdCBTVUNDRVNTX1VSTCA9ICdodHRwczovL3d3dy5oaXN0Lm9yZy5pbC8nO1xuY29uc3QgQ0FSRF9VUkwgPSAnaHR0cHM6Ly93d3cuaGlzdC5vcmcuaWwvY2FyZC9iYWxhbmNlQW5kVXNlcyc7XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBkYXRlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgY2hhcmdlZEFtb3VudDogc3RyaW5nO1xuICBpZGVudGlmaWVyOiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgYW1vdW50U3RyQ2xuID0gYW1vdW50U3RyLnJlcGxhY2UoJywnLCAnJyk7XG4gIGxldCBjdXJyZW5jeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGxldCBhbW91bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBpZiAoYW1vdW50U3RyQ2xuLmluY2x1ZGVzKFNIRUtFTF9DVVJSRU5DWV9TWU1CT0wpKSB7XG4gICAgYW1vdW50ID0gcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShTSEVLRUxfQ1VSUkVOQ1lfU1lNQk9MLCAnJykpO1xuICAgIGN1cnJlbmN5ID0gU0hFS0VMX0NVUlJFTkNZO1xuICB9IGVsc2UgaWYgKGFtb3VudFN0ckNsbi5pbmNsdWRlcyhET0xMQVJfQ1VSUkVOQ1lfU1lNQk9MKSkge1xuICAgIGFtb3VudCA9IHBhcnNlRmxvYXQoYW1vdW50U3RyQ2xuLnJlcGxhY2UoRE9MTEFSX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IERPTExBUl9DVVJSRU5DWTtcbiAgfSBlbHNlIGlmIChhbW91bnRTdHJDbG4uaW5jbHVkZXMoRVVST19DVVJSRU5DWV9TWU1CT0wpKSB7XG4gICAgYW1vdW50ID0gcGFyc2VGbG9hdChhbW91bnRTdHJDbG4ucmVwbGFjZShFVVJPX0NVUlJFTkNZX1NZTUJPTCwgJycpKTtcbiAgICBjdXJyZW5jeSA9IEVVUk9fQ1VSUkVOQ1k7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcGFydHMgPSBhbW91bnRTdHJDbG4uc3BsaXQoJyAnKTtcbiAgICBbY3VycmVuY3ldID0gcGFydHM7XG4gICAgYW1vdW50ID0gcGFyc2VGbG9hdChwYXJ0c1sxXSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFtb3VudCxcbiAgICBjdXJyZW5jeSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9ucyh0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSwgb3B0aW9ucz86IFNjcmFwZXJPcHRpb25zKTogVHJhbnNhY3Rpb25bXSB7XG4gIGRlYnVnKGBjb252ZXJ0ICR7dHhucy5sZW5ndGh9IHJhdyB0cmFuc2FjdGlvbnMgdG8gb2ZmaWNpYWwgVHJhbnNhY3Rpb24gc3RydWN0dXJlYCk7XG4gIHJldHVybiB0eG5zLm1hcCh0eG4gPT4ge1xuICAgIGNvbnN0IGNoYXJnZWRBbW91bnRUdXBsZSA9IGdldEFtb3VudERhdGEodHhuLmNoYXJnZWRBbW91bnQgfHwgJycpO1xuICAgIGNvbnN0IHR4blByb2Nlc3NlZERhdGUgPSBtb21lbnQodHhuLmRhdGUsIERBVEVfRk9STUFUKTtcblxuICAgIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb24gPSB7XG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsXG4gICAgICBkYXRlOiB0eG5Qcm9jZXNzZWREYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICBwcm9jZXNzZWREYXRlOiB0eG5Qcm9jZXNzZWREYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICBvcmlnaW5hbEFtb3VudDogY2hhcmdlZEFtb3VudFR1cGxlLmFtb3VudCxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IGNoYXJnZWRBbW91bnRUdXBsZS5jdXJyZW5jeSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGNoYXJnZWRBbW91bnRUdXBsZS5hbW91bnQsXG4gICAgICBjaGFyZ2VkQ3VycmVuY3k6IGNoYXJnZWRBbW91bnRUdXBsZS5jdXJyZW5jeSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0eG4uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICBtZW1vOiAnJyxcbiAgICAgIGlkZW50aWZpZXI6IHR4bi5pZGVudGlmaWVyLFxuICAgIH07XG5cbiAgICBpZiAob3B0aW9ucz8uaW5jbHVkZVJhd1RyYW5zYWN0aW9uKSB7XG4gICAgICByZXN1bHQucmF3VHJhbnNhY3Rpb24gPSB0eG47XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IFNjcmFwZXJPcHRpb25zKSB7XG4gIGF3YWl0IHBhZ2UuZ290byhDQVJEX1VSTCk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnLnJlYWN0LWxvYWRpbmcuaGlkZScsIGZhbHNlKTtcbiAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJyk7XG4gIGNvbnN0IHN0YXJ0RGF0ZSA9IG9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgY29uc3Qgc3RhcnRNb21lbnQgPSBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xuXG4gIGNvbnN0IGFjY291bnROdW1iZXIgPSBhd2FpdCBwYWdlRXZhbChwYWdlLCAnLndhbGxldC1kZXRhaWxzIGRpdjpudGgtb2YtdHlwZSgyKScsIG51bGwsIGVsZW1lbnQgPT4ge1xuICAgIHJldHVybiAoZWxlbWVudCBhcyBhbnkpLmlubmVyVGV4dC5yZXBsYWNlKCfXnteh16TXqCDXm9eo15jXmdehICcsICcnKTtcbiAgfSk7XG5cbiAgY29uc3QgYmFsYW5jZSA9IGF3YWl0IHBhZ2VFdmFsKHBhZ2UsICcud2FsbGV0LWRldGFpbHMgZGl2Om50aC1vZi10eXBlKDQpID4gc3BhbjpudGgtb2YtdHlwZSgyKScsIG51bGwsIGVsZW1lbnQgPT4ge1xuICAgIHJldHVybiAoZWxlbWVudCBhcyBhbnkpLmlubmVyVGV4dDtcbiAgfSk7XG5cbiAgZGVidWcoJ2ZldGNoIHJhdyB0cmFuc2FjdGlvbnMgZnJvbSBwYWdlJyk7XG5cbiAgY29uc3QgcmF3VHJhbnNhY3Rpb25zOiAoU2NyYXBlZFRyYW5zYWN0aW9uIHwgbnVsbClbXSA9IGF3YWl0IHBhZ2VFdmFsQWxsPChTY3JhcGVkVHJhbnNhY3Rpb24gfCBudWxsKVtdPihcbiAgICBwYWdlLFxuICAgICcudHJhbnNhY3Rpb24tY29udGFpbmVyLCAudHJhbnNhY3Rpb24tY29tcG9uZW50LWNvbnRhaW5lcicsXG4gICAgW10sXG4gICAgaXRlbXMgPT4ge1xuICAgICAgcmV0dXJuIGl0ZW1zLm1hcChlbCA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnM6IE5vZGVMaXN0T2Y8SFRNTFNwYW5FbGVtZW50PiA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJy50cmFuc2FjdGlvbi1pdGVtID4gc3BhbicpO1xuICAgICAgICBpZiAoY29sdW1ucy5sZW5ndGggPT09IDcpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0ZTogY29sdW1uc1swXS5pbm5lclRleHQsXG4gICAgICAgICAgICBpZGVudGlmaWVyOiBjb2x1bW5zWzFdLmlubmVyVGV4dCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjb2x1bW5zWzNdLmlubmVyVGV4dCxcbiAgICAgICAgICAgIHR5cGU6IGNvbHVtbnNbNV0uaW5uZXJUZXh0LFxuICAgICAgICAgICAgY2hhcmdlZEFtb3VudDogY29sdW1uc1s2XS5pbm5lclRleHQsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0pO1xuICAgIH0sXG4gICk7XG4gIGRlYnVnKGBmZXRjaGVkICR7cmF3VHJhbnNhY3Rpb25zLmxlbmd0aH0gcmF3IHRyYW5zYWN0aW9ucyBmcm9tIHBhZ2VgKTtcblxuICBjb25zdCBhY2NvdW50VHJhbnNhY3Rpb25zID0gY29udmVydFRyYW5zYWN0aW9ucyhcbiAgICByYXdUcmFuc2FjdGlvbnMuZmlsdGVyKGl0ZW0gPT4gISFpdGVtKSBhcyBTY3JhcGVkVHJhbnNhY3Rpb25bXSxcbiAgICBvcHRpb25zLFxuICApO1xuXG4gIGRlYnVnKCdmaWxlciBvdXQgb2xkIHRyYW5zYWN0aW9ucycpO1xuICBjb25zdCB0eG5zID1cbiAgICAob3B0aW9ucy5vdXRwdXREYXRhPy5lbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUgPz8gdHJ1ZSlcbiAgICAgID8gZmlsdGVyT2xkVHJhbnNhY3Rpb25zKGFjY291bnRUcmFuc2FjdGlvbnMsIHN0YXJ0TW9tZW50LCBmYWxzZSlcbiAgICAgIDogYWNjb3VudFRyYW5zYWN0aW9ucztcbiAgZGVidWcoXG4gICAgYGZvdW5kICR7dHhucy5sZW5ndGh9IHZhbGlkIHRyYW5zYWN0aW9ucyBvdXQgb2YgJHthY2NvdW50VHJhbnNhY3Rpb25zLmxlbmd0aH0gdHJhbnNhY3Rpb25zIGZvciBhY2NvdW50IGVuZGluZyB3aXRoICR7YWNjb3VudE51bWJlci5zdWJzdHJpbmcoYWNjb3VudE51bWJlci5sZW5ndGggLSAyKX1gLFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgYWNjb3VudE51bWJlcixcbiAgICBiYWxhbmNlOiBnZXRBbW91bnREYXRhKGJhbGFuY2UpLmFtb3VudCxcbiAgICB0eG5zLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyB7XG4gIGNvbnN0IHVybHM6IFBvc3NpYmxlTG9naW5SZXN1bHRzID0ge307XG4gIHVybHNbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdID0gW1NVQ0NFU1NfVVJMXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdID0gW107IC8vIFRPRE9cbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFtdOyAvLyBUT0RPXG4gIHVybHNbTG9naW5SZXN1bHRzLlVua25vd25FcnJvcl0gPSBbXTsgLy8gVE9ET1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogJyNsb2dpbklkJywgdmFsdWU6IGNyZWRlbnRpYWxzLmlkIH0sXG4gICAgeyBzZWxlY3RvcjogJyNsb2dpblBhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IGlkOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmcgfTtcblxuY2xhc3MgQmV5YWhhZEJpc2h2aWxoYVNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyPFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzPiB7XG4gIHByb3RlY3RlZCBnZXRWaWV3UG9ydCgpOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0ge1xuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogMTUwMCxcbiAgICAgIGhlaWdodDogODAwLFxuICAgIH07XG4gIH1cblxuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBMT0dJTl9VUkwsXG4gICAgICBmaWVsZHM6IGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzKSxcbiAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IGF3YWl0IHRoaXMucGFnZS4kKCd4cGF0aC8vYnV0dG9uW2NvbnRhaW5zKC4sIFwi15TXqteX15HXqFwiKV0nKTtcbiAgICAgICAgaWYgKGJ1dHRvbikge1xuICAgICAgICAgIGF3YWl0IGJ1dHRvbi5jbGljaygpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zKHRoaXMucGFnZSwgdGhpcy5vcHRpb25zKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzOiBbYWNjb3VudF0sXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCZXlhaGFkQmlzaHZpbGhhU2NyYXBlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBUUEsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcscUJBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGFBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLHVCQUFBLEdBQUFOLE9BQUE7QUFBOEcsU0FBQUQsdUJBQUFRLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFHOUcsTUFBTUcsS0FBSyxHQUFHLElBQUFDLGVBQVEsRUFBQyxrQkFBa0IsQ0FBQztBQUUxQyxNQUFNQyxXQUFXLEdBQUcsVUFBVTtBQUM5QixNQUFNQyxTQUFTLEdBQUcsK0JBQStCO0FBQ2pELE1BQU1DLFdBQVcsR0FBRywwQkFBMEI7QUFDOUMsTUFBTUMsUUFBUSxHQUFHLDZDQUE2QztBQVU5RCxTQUFTQyxhQUFhQSxDQUFDQyxTQUFpQixFQUFFO0VBQ3hDLE1BQU1DLFlBQVksR0FBR0QsU0FBUyxDQUFDRSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztFQUMvQyxJ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QUNDLG9DQUFZLENBQUNFLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0VBQ3hDSCxJQUFJLENBQUNDLG9DQUFZLENBQUNHLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0VBQ3pDSixJQUFJLENBQUNDLG9DQUFZLENBQUNJLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0VBQ3RDLE9BQU9MLElBQUk7QUFDYjtBQUVBLFNBQVNNLGlCQUFpQkEsQ0FBQ0MsV0FBdUMsRUFBRTtFQUNsRSxPQUFPLENBQ0w7SUFBRUMsUUFBUSxFQUFFLFVBQVU7SUFBRUMsS0FBSyxFQUFFRixXQUFXLENBQUNHO0VBQUcsQ0FBQyxFQUMvQztJQUFFRixRQUFRLEVBQUUsZ0JBQWdCO0lBQUVDLEtBQUssRUFBRUYsV0FBVyxDQUFDSTtFQUFTLENBQUMsQ0FDNUQ7QUFDSDtBQUlBLE1BQU1DLHVCQUF1QixTQUFTQyw4Q0FBc0IsQ0FBNkI7RUFDN0VDLFdBQVdBLENBQUEsRUFBc0M7SUFDekQsT0FBTztNQUNMQyxLQUFLLEVBQUUsSUFBSTtNQUNYQyxNQUFNLEVBQUU7SUFDVixDQUFDO0VBQ0g7RUFFQUMsZUFBZUEsQ0FBQ1YsV0FBdUMsRUFBRTtJQUN2RCxPQUFPO01BQ0xXLFFBQVEsRUFBRTlGLFNBQVM7TUFDbkIrRixNQUFNLEVBQUViLGlCQUFpQixDQUFDQyxXQUFXLENBQUM7TUFDdENhLG9CQUFvQixFQUFFLE1BQUFBLENBQUEsS0FBWTtRQUNoQyxNQUFNQyxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUNqRCxJQUFJLENBQUNrRCxDQUFDLENBQUMscUNBQXFDLENBQUM7UUFDdkUsSUFBSUQsTUFBTSxFQUFFO1VBQ1YsTUFBTUEsTUFBTSxDQUFDRSxLQUFLLENBQUMsQ0FBQztRQUN0QjtNQUNGLENBQUM7TUFDREMsZUFBZSxFQUFFekIsdUJBQXVCLENBQUM7SUFDM0MsQ0FBQztFQUNIO0VBRUEsTUFBTTBCLFNBQVNBLENBQUEsRUFBRztJQUNoQixNQUFNQyxPQUFPLEdBQUcsTUFBTXZELGlCQUFpQixDQUFDLElBQUksQ0FBQ0MsSUFBSSxFQUFFLElBQUksQ0FBQzNCLE9BQU8sQ0FBQztJQUNoRSxPQUFPO01BQ0xrRixPQUFPLEVBQUUsSUFBSTtNQUNiQyxRQUFRLEVBQUUsQ0FBQ0YsT0FBTztJQUNwQixDQUFDO0VBQ0g7QUFDRjtBQUFDLElBQUFHLFFBQUEsR0FBQUMsT0FBQSxDQUFBOUcsT0FBQSxHQUVjNEYsdUJBQXVCIiwiaWdub3JlTGlzdCI6W119
@@ -15,12 +15,12 @@ var _errors = require("./errors");
15
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
16
  const BASE_URL = 'https://start.telebank.co.il';
17
17
  const DATE_FORMAT = 'YYYYMMDD';
18
- function convertTransactions(txns, txnStatus) {
18
+ function convertTransactions(txns, txnStatus, options) {
19
19
  if (!txns) {
20
20
  return [];
21
21
  }
22
22
  return txns.map(txn => {
23
- return {
23
+ const result = {
24
24
  type: _transactions.TransactionTypes.Normal,
25
25
  identifier: txn.OperationNumber,
26
26
  date: (0, _moment.default)(txn.OperationDate, DATE_FORMAT).toISOString(),
@@ -31,6 +31,10 @@ function convertTransactions(txns, txnStatus) {
31
31
  description: txn.OperationDescriptionToDisplay,
32
32
  status: txnStatus
33
33
  };
34
+ if (options?.includeRawTransaction) {
35
+ result.rawTransaction = txn;
36
+ }
37
+ return result;
34
38
  });
35
39
  }
36
40
  async function fetchAccountData(page, options) {
@@ -60,9 +64,9 @@ async function fetchAccountData(page, options) {
60
64
  errorMessage: txnsResult && txnsResult.Error ? txnsResult.Error.MsgText : 'unknown error'
61
65
  };
62
66
  }
63
- const accountCompletedTxns = convertTransactions(txnsResult.CurrentAccountLastTransactions.OperationEntry, _transactions.TransactionStatuses.Completed);
67
+ const accountCompletedTxns = convertTransactions(txnsResult.CurrentAccountLastTransactions.OperationEntry, _transactions.TransactionStatuses.Completed, options);
64
68
  const rawFutureTxns = _lodash.default.get(txnsResult, 'CurrentAccountLastTransactions.FutureTransactionsBlock.FutureTransactionEntry');
65
- const accountPendingTxns = convertTransactions(rawFutureTxns, _transactions.TransactionStatuses.Pending);
69
+ const accountPendingTxns = convertTransactions(rawFutureTxns, _transactions.TransactionStatuses.Pending, options);
66
70
  accountsData.push({
67
71
  accountNumber,
68
72
  balance: txnsResult.CurrentAccountLastTransactions.CurrentAccountInfo.AccountBalance,
@@ -117,4 +121,4 @@ class DiscountScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
117
121
  }
118
122
  }
119
123
  var _default = exports.default = DiscountScraper;
120
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbW9tZW50IiwiX2VsZW1lbnRzSW50ZXJhY3Rpb25zIiwiX2ZldGNoIiwiX25hdmlnYXRpb24iLCJfdHJhbnNhY3Rpb25zIiwiX2Jhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJfZXJyb3JzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiQkFTRV9VUkwiLCJEQVRFX0ZPUk1BVCIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwidHhuU3RhdHVzIiwibWFwIiwidHhuIiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJpZGVudGlmaWVyIiwiT3BlcmF0aW9uTnVtYmVyIiwiZGF0ZSIsIm1vbWVudCIsIk9wZXJhdGlvbkRhdGUiLCJ0b0lTT1N0cmluZyIsInByb2Nlc3NlZERhdGUiLCJWYWx1ZURhdGUiLCJvcmlnaW5hbEFtb3VudCIsIk9wZXJhdGlvbkFtb3VudCIsIm9yaWdpbmFsQ3VycmVuY3kiLCJjaGFyZ2VkQW1vdW50IiwiZGVzY3JpcHRpb24iLCJPcGVyYXRpb25EZXNjcmlwdGlvblRvRGlzcGxheSIsInN0YXR1cyIsImZldGNoQWNjb3VudERhdGEiLCJwYWdlIiwib3B0aW9ucyIsImFwaVNpdGVVcmwiLCJhY2NvdW50RGF0YVVybCIsImFjY291bnRJbmZvIiwiZmV0Y2hHZXRXaXRoaW5QYWdlIiwic3VjY2VzcyIsImVycm9yVHlwZSIsIlNjcmFwZXJFcnJvclR5cGVzIiwiR2VuZXJpYyIsImVycm9yTWVzc2FnZSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0IiwiYWRkIiwic3RhcnREYXRlIiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtYXgiLCJzdGFydERhdGVTdHIiLCJmb3JtYXQiLCJhY2NvdW50cyIsIlVzZXJBY2NvdW50c0RhdGEiLCJVc2VyQWNjb3VudHMiLCJhY2MiLCJOZXdBY2NvdW50SW5mbyIsIkFjY291bnRJRCIsImFjY291bnRzRGF0YSIsImFjY291bnROdW1iZXIiLCJ0eG5zVXJsIiwidHhuc1Jlc3VsdCIsIkVycm9yIiwiQ3VycmVudEFjY291bnRMYXN0VHJhbnNhY3Rpb25zIiwiTXNnVGV4dCIsImFjY291bnRDb21wbGV0ZWRUeG5zIiwiT3BlcmF0aW9uRW50cnkiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiQ29tcGxldGVkIiwicmF3RnV0dXJlVHhucyIsIl8iLCJnZXQiLCJhY2NvdW50UGVuZGluZ1R4bnMiLCJQZW5kaW5nIiwicHVzaCIsImJhbGFuY2UiLCJDdXJyZW50QWNjb3VudEluZm8iLCJBY2NvdW50QmFsYW5jZSIsImFjY291bnREYXRhIiwibmF2aWdhdGVPckVycm9yTGFiZWwiLCJ3YWl0Rm9yTmF2aWdhdGlvbiIsIndhaXRVbnRpbEVsZW1lbnRGb3VuZCIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJDaGFuZ2VQYXNzd29yZCIsImNyZWF0ZUxvZ2luRmllbGRzIiwiY3JlZGVudGlhbHMiLCJzZWxlY3RvciIsInZhbHVlIiwiaWQiLCJwYXNzd29yZCIsIm51bSIsIkRpc2NvdW50U2NyYXBlciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJnZXRMb2dpbk9wdGlvbnMiLCJsb2dpblVybCIsImNoZWNrUmVhZGluZXNzIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJwb3N0QWN0aW9uIiwicG9zc2libGVSZXN1bHRzIiwiZmV0Y2hEYXRhIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmFwZXJzL2Rpc2NvdW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyB0eXBlIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXItY29yZSc7XG5pbXBvcnQgeyB3YWl0VW50aWxFbGVtZW50Rm91bmQgfSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgeyBmZXRjaEdldFdpdGhpblBhZ2UgfSBmcm9tICcuLi9oZWxwZXJzL2ZldGNoJztcbmltcG9ydCB7IHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IHR5cGUgVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMgfSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCB0eXBlIFBvc3NpYmxlTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7IFNjcmFwZXJFcnJvclR5cGVzIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgdHlwZSBTY3JhcGVyT3B0aW9ucywgdHlwZSBTY3JhcGVyU2NyYXBpbmdSZXN1bHQgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5cbmNvbnN0IEJBU0VfVVJMID0gJ2h0dHBzOi8vc3RhcnQudGVsZWJhbmsuY28uaWwnO1xuY29uc3QgREFURV9GT1JNQVQgPSAnWVlZWU1NREQnO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgT3BlcmF0aW9uTnVtYmVyOiBudW1iZXI7XG4gIE9wZXJhdGlvbkRhdGU6IHN0cmluZztcbiAgVmFsdWVEYXRlOiBzdHJpbmc7XG4gIE9wZXJhdGlvbkFtb3VudDogbnVtYmVyO1xuICBPcGVyYXRpb25EZXNjcmlwdGlvblRvRGlzcGxheTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQ3VycmVudEFjY291bnRJbmZvIHtcbiAgQWNjb3VudEJhbGFuY2U6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRBY2NvdW50RGF0YSB7XG4gIFVzZXJBY2NvdW50c0RhdGE6IHtcbiAgICBEZWZhdWx0QWNjb3VudE51bWJlcjogc3RyaW5nO1xuICAgIFVzZXJBY2NvdW50czogQXJyYXk8e1xuICAgICAgTmV3QWNjb3VudEluZm86IHtcbiAgICAgICAgQWNjb3VudElEOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH0+O1xuICB9O1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uRGF0YSB7XG4gIEVycm9yPzogeyBNc2dUZXh0OiBzdHJpbmcgfTtcbiAgQ3VycmVudEFjY291bnRMYXN0VHJhbnNhY3Rpb25zPzoge1xuICAgIE9wZXJhdGlvbkVudHJ5OiBTY3JhcGVkVHJhbnNhY3Rpb25bXTtcbiAgICBDdXJyZW50QWNjb3VudEluZm86IEN1cnJlbnRBY2NvdW50SW5mbztcbiAgICBGdXR1cmVUcmFuc2FjdGlvbnNCbG9jazoge1xuICAgICAgRnV0dXJlVHJhbnNhY3Rpb25FbnRyeTogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gICAgfTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9ucyh0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSwgdHhuU3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzKTogVHJhbnNhY3Rpb25bXSB7XG4gIGlmICghdHhucykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gdHhucy5tYXAodHhuID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBpZGVudGlmaWVyOiB0eG4uT3BlcmF0aW9uTnVtYmVyLFxuICAgICAgZGF0ZTogbW9tZW50KHR4bi5PcGVyYXRpb25EYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IG1vbWVudCh0eG4uVmFsdWVEYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKSxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiB0eG4uT3BlcmF0aW9uQW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogJ0lMUycsXG4gICAgICBjaGFyZ2VkQW1vdW50OiB0eG4uT3BlcmF0aW9uQW1vdW50LFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5PcGVyYXRpb25EZXNjcmlwdGlvblRvRGlzcGxheSxcbiAgICAgIHN0YXR1czogdHhuU3RhdHVzLFxuICAgIH07XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFjY291bnREYXRhKHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IFNjcmFwZXJPcHRpb25zKTogUHJvbWlzZTxTY3JhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgY29uc3QgYXBpU2l0ZVVybCA9IGAke0JBU0VfVVJMfS9UaXRhbi9nYXRld2F5QVBJYDtcblxuICBjb25zdCBhY2NvdW50RGF0YVVybCA9IGAke2FwaVNpdGVVcmx9L3VzZXJBY2NvdW50c0RhdGFgO1xuICBjb25zdCBhY2NvdW50SW5mbyA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxTY3JhcGVkQWNjb3VudERhdGE+KHBhZ2UsIGFjY291bnREYXRhVXJsKTtcblxuICBpZiAoIWFjY291bnRJbmZvKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmljLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnZmFpbGVkIHRvIGdldCBhY2NvdW50IGRhdGEnLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKS5hZGQoMiwgJ2RheScpO1xuICBjb25zdCBzdGFydERhdGUgPSBvcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcblxuICBjb25zdCBzdGFydERhdGVTdHIgPSBzdGFydE1vbWVudC5mb3JtYXQoREFURV9GT1JNQVQpO1xuXG4gIGNvbnN0IGFjY291bnRzOiBzdHJpbmdbXSA9IGFjY291bnRJbmZvLlVzZXJBY2NvdW50c0RhdGEuVXNlckFjY291bnRzLm1hcChhY2MgPT4gYWNjLk5ld0FjY291bnRJbmZvLkFjY291bnRJRCk7XG4gIGNvbnN0IGFjY291bnRzRGF0YTogQXJyYXk8eyBhY2NvdW50TnVtYmVyOiBzdHJpbmc7IGJhbGFuY2U6IG51bWJlcjsgdHhuczogVHJhbnNhY3Rpb25bXSB9PiA9IFtdO1xuXG4gIGZvciAoY29uc3QgYWNjb3VudE51bWJlciBvZiBhY2NvdW50cykge1xuICAgIGNvbnN0IHR4bnNVcmwgPSBgJHthcGlTaXRlVXJsfS9sYXN0VHJhbnNhY3Rpb25zLyR7YWNjb3VudE51bWJlcn0vRGF0ZT9Jc0NhdGVnb3J5RGVzY0NvZGU9VHJ1ZSZJc1RyYW5zYWN0aW9uRGV0YWlscz1UcnVlJklzRXZlbnROYW1lcz1UcnVlJklzRnV0dXJlVHJhbnNhY3Rpb25GbGFnPVRydWUmRnJvbURhdGU9JHtzdGFydERhdGVTdHJ9YDtcbiAgICBjb25zdCB0eG5zUmVzdWx0ID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPFNjcmFwZWRUcmFuc2FjdGlvbkRhdGE+KHBhZ2UsIHR4bnNVcmwpO1xuICAgIGlmICghdHhuc1Jlc3VsdCB8fCB0eG5zUmVzdWx0LkVycm9yIHx8ICF0eG5zUmVzdWx0LkN1cnJlbnRBY2NvdW50TGFzdFRyYW5zYWN0aW9ucykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuR2VuZXJpYyxcbiAgICAgICAgZXJyb3JNZXNzYWdlOiB0eG5zUmVzdWx0ICYmIHR4bnNSZXN1bHQuRXJyb3IgPyB0eG5zUmVzdWx0LkVycm9yLk1zZ1RleHQgOiAndW5rbm93biBlcnJvcicsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGFjY291bnRDb21wbGV0ZWRUeG5zID0gY29udmVydFRyYW5zYWN0aW9ucyhcbiAgICAgIHR4bnNSZXN1bHQuQ3VycmVudEFjY291bnRMYXN0VHJhbnNhY3Rpb25zLk9wZXJhdGlvbkVudHJ5LFxuICAgICAgVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsXG4gICAgKTtcbiAgICBjb25zdCByYXdGdXR1cmVUeG5zID0gXy5nZXQoXG4gICAgICB0eG5zUmVzdWx0LFxuICAgICAgJ0N1cnJlbnRBY2NvdW50TGFzdFRyYW5zYWN0aW9ucy5GdXR1cmVUcmFuc2FjdGlvbnNCbG9jay5GdXR1cmVUcmFuc2FjdGlvbkVudHJ5JyxcbiAgICApIGFzIFNjcmFwZWRUcmFuc2FjdGlvbltdO1xuICAgIGNvbnN0IGFjY291bnRQZW5kaW5nVHhucyA9IGNvbnZlcnRUcmFuc2FjdGlvbnMocmF3RnV0dXJlVHhucywgVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nKTtcblxuICAgIGFjY291bnRzRGF0YS5wdXNoKHtcbiAgICAgIGFjY291bnROdW1iZXIsXG4gICAgICBiYWxhbmNlOiB0eG5zUmVzdWx0LkN1cnJlbnRBY2NvdW50TGFzdFRyYW5zYWN0aW9ucy5DdXJyZW50QWNjb3VudEluZm8uQWNjb3VudEJhbGFuY2UsXG4gICAgICB0eG5zOiBbLi4uYWNjb3VudENvbXBsZXRlZFR4bnMsIC4uLmFjY291bnRQZW5kaW5nVHhuc10sXG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBhY2NvdW50RGF0YSA9IHtcbiAgICBzdWNjZXNzOiB0cnVlLFxuICAgIGFjY291bnRzOiBhY2NvdW50c0RhdGEsXG4gIH07XG5cbiAgcmV0dXJuIGFjY291bnREYXRhO1xufVxuXG5hc3luYyBmdW5jdGlvbiBuYXZpZ2F0ZU9yRXJyb3JMYWJlbChwYWdlOiBQYWdlKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyNnZW5lcmFsLWVycm9yJywgZmFsc2UsIDEwMCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoKTogUG9zc2libGVMb2dpblJlc3VsdHMge1xuICBjb25zdCB1cmxzOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyA9IHt9O1xuICB1cmxzW0xvZ2luUmVzdWx0cy5TdWNjZXNzXSA9IFtcbiAgICBgJHtCQVNFX1VSTH0vYXBvbGxvL3JldGFpbC8jL01ZX0FDQ09VTlRfSE9NRVBBR0VgLFxuICAgIGAke0JBU0VfVVJMfS9hcG9sbG8vcmV0YWlsMi8jL01ZX0FDQ09VTlRfSE9NRVBBR0VgLFxuICAgIGAke0JBU0VfVVJMfS9hcG9sbG8vcmV0YWlsMi9gLFxuICBdO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdID0gW2Ake0JBU0VfVVJMfS9hcG9sbG8vY29yZS90ZW1wbGF0ZXMvbG9iYnkvbWFzdGVyUGFnZS5odG1sIy9MT0dJTl9QQUdFYF07XG4gIHVybHNbTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkXSA9IFtgJHtCQVNFX1VSTH0vYXBvbGxvL2NvcmUvdGVtcGxhdGVzL2xvYmJ5L21hc3RlclBhZ2UuaHRtbCMvUFdEX1JFTkVXYF07XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnI3R6SWQnLCB2YWx1ZTogY3JlZGVudGlhbHMuaWQgfSxcbiAgICB7IHNlbGVjdG9yOiAnI3R6UGFzc3dvcmQnLCB2YWx1ZTogY3JlZGVudGlhbHMucGFzc3dvcmQgfSxcbiAgICB7IHNlbGVjdG9yOiAnI2FpZG51bScsIHZhbHVlOiBjcmVkZW50aWFscy5udW0gfSxcbiAgXTtcbn1cblxudHlwZSBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyA9IHsgaWQ6IHN0cmluZzsgcGFzc3dvcmQ6IHN0cmluZzsgbnVtOiBzdHJpbmcgfTtcblxuY2xhc3MgRGlzY291bnRTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBgJHtCQVNFX1VSTH0vbG9naW4vIy9MT0dJTl9QQUdFYCxcbiAgICAgIGNoZWNrUmVhZGluZXNzOiBhc3luYyAoKSA9PiB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI3R6SWQnKSxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICcuc2VuZEJ0bicsXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiBuYXZpZ2F0ZU9yRXJyb3JMYWJlbCh0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgcmV0dXJuIGZldGNoQWNjb3VudERhdGEodGhpcy5wYWdlLCB0aGlzLm9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IERpc2NvdW50U2NyYXBlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUUscUJBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLHVCQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFQ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
124
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbW9tZW50IiwiX2VsZW1lbnRzSW50ZXJhY3Rpb25zIiwiX2ZldGNoIiwiX25hdmlnYXRpb24iLCJfdHJhbnNhY3Rpb25zIiwiX2Jhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJfZXJyb3JzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiQkFTRV9VUkwiLCJEQVRFX0ZPUk1BVCIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwidHhuU3RhdHVzIiwib3B0aW9ucyIsIm1hcCIsInR4biIsInJlc3VsdCIsInR5cGUiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwiaWRlbnRpZmllciIsIk9wZXJhdGlvbk51bWJlciIsImRhdGUiLCJtb21lbnQiLCJPcGVyYXRpb25EYXRlIiwidG9JU09TdHJpbmciLCJwcm9jZXNzZWREYXRlIiwiVmFsdWVEYXRlIiwib3JpZ2luYWxBbW91bnQiLCJPcGVyYXRpb25BbW91bnQiLCJvcmlnaW5hbEN1cnJlbmN5IiwiY2hhcmdlZEFtb3VudCIsImRlc2NyaXB0aW9uIiwiT3BlcmF0aW9uRGVzY3JpcHRpb25Ub0Rpc3BsYXkiLCJzdGF0dXMiLCJpbmNsdWRlUmF3VHJhbnNhY3Rpb24iLCJyYXdUcmFuc2FjdGlvbiIsImZldGNoQWNjb3VudERhdGEiLCJwYWdlIiwiYXBpU2l0ZVVybCIsImFjY291bnREYXRhVXJsIiwiYWNjb3VudEluZm8iLCJmZXRjaEdldFdpdGhpblBhZ2UiLCJzdWNjZXNzIiwiZXJyb3JUeXBlIiwiU2NyYXBlckVycm9yVHlwZXMiLCJHZW5lcmljIiwiZXJyb3JNZXNzYWdlIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJhZGQiLCJzdGFydERhdGUiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1heCIsInN0YXJ0RGF0ZVN0ciIsImZvcm1hdCIsImFjY291bnRzIiwiVXNlckFjY291bnRzRGF0YSIsIlVzZXJBY2NvdW50cyIsImFjYyIsIk5ld0FjY291bnRJbmZvIiwiQWNjb3VudElEIiwiYWNjb3VudHNEYXRhIiwiYWNjb3VudE51bWJlciIsInR4bnNVcmwiLCJ0eG5zUmVzdWx0IiwiRXJyb3IiLCJDdXJyZW50QWNjb3VudExhc3RUcmFuc2FjdGlvbnMiLCJNc2dUZXh0IiwiYWNjb3VudENvbXBsZXRlZFR4bnMiLCJPcGVyYXRpb25FbnRyeSIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJDb21wbGV0ZWQiLCJyYXdGdXR1cmVUeG5zIiwiXyIsImdldCIsImFjY291bnRQZW5kaW5nVHhucyIsIlBlbmRpbmciLCJwdXNoIiwiYmFsYW5jZSIsIkN1cnJlbnRBY2NvdW50SW5mbyIsIkFjY291bnRCYWxhbmNlIiwiYWNjb3VudERhdGEiLCJuYXZpZ2F0ZU9yRXJyb3JMYWJlbCIsIndhaXRGb3JOYXZpZ2F0aW9uIiwid2FpdFVudGlsRWxlbWVudEZvdW5kIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJ1cmxzIiwiTG9naW5SZXN1bHRzIiwiU3VjY2VzcyIsIkludmFsaWRQYXNzd29yZCIsIkNoYW5nZVBhc3N3b3JkIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJpZCIsInBhc3N3b3JkIiwibnVtIiwiRGlzY291bnRTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiY2hlY2tSZWFkaW5lc3MiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyYXBlcnMvZGlzY291bnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IHR5cGUgUGFnZSB9IGZyb20gJ3B1cHBldGVlci1jb3JlJztcbmltcG9ydCB7IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCB9IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgd2FpdEZvck5hdmlnYXRpb24gfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgdHlwZSBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBMb2dpblJlc3VsdHMsIHR5cGUgUG9zc2libGVMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgU2NyYXBlckVycm9yVHlwZXMgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgeyB0eXBlIFNjcmFwZXJPcHRpb25zLCB0eXBlIFNjcmFwZXJTY3JhcGluZ1Jlc3VsdCB9IGZyb20gJy4vaW50ZXJmYWNlJztcblxuY29uc3QgQkFTRV9VUkwgPSAnaHR0cHM6Ly9zdGFydC50ZWxlYmFuay5jby5pbCc7XG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdZWVlZTU1ERCc7XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBPcGVyYXRpb25OdW1iZXI6IG51bWJlcjtcbiAgT3BlcmF0aW9uRGF0ZTogc3RyaW5nO1xuICBWYWx1ZURhdGU6IHN0cmluZztcbiAgT3BlcmF0aW9uQW1vdW50OiBudW1iZXI7XG4gIE9wZXJhdGlvbkRlc2NyaXB0aW9uVG9EaXNwbGF5OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBDdXJyZW50QWNjb3VudEluZm8ge1xuICBBY2NvdW50QmFsYW5jZTogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZEFjY291bnREYXRhIHtcbiAgVXNlckFjY291bnRzRGF0YToge1xuICAgIERlZmF1bHRBY2NvdW50TnVtYmVyOiBzdHJpbmc7XG4gICAgVXNlckFjY291bnRzOiBBcnJheTx7XG4gICAgICBOZXdBY2NvdW50SW5mbzoge1xuICAgICAgICBBY2NvdW50SUQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfT47XG4gIH07XG59XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb25EYXRhIHtcbiAgRXJyb3I/OiB7IE1zZ1RleHQ6IHN0cmluZyB9O1xuICBDdXJyZW50QWNjb3VudExhc3RUcmFuc2FjdGlvbnM/OiB7XG4gICAgT3BlcmF0aW9uRW50cnk6IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xuICAgIEN1cnJlbnRBY2NvdW50SW5mbzogQ3VycmVudEFjY291bnRJbmZvO1xuICAgIEZ1dHVyZVRyYW5zYWN0aW9uc0Jsb2NrOiB7XG4gICAgICBGdXR1cmVUcmFuc2FjdGlvbkVudHJ5OiBTY3JhcGVkVHJhbnNhY3Rpb25bXTtcbiAgICB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKFxuICB0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSxcbiAgdHhuU3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLFxuICBvcHRpb25zPzogU2NyYXBlck9wdGlvbnMsXG4pOiBUcmFuc2FjdGlvbltdIHtcbiAgaWYgKCF0eG5zKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiB0eG5zLm1hcCh0eG4gPT4ge1xuICAgIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb24gPSB7XG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICAgIGlkZW50aWZpZXI6IHR4bi5PcGVyYXRpb25OdW1iZXIsXG4gICAgICBkYXRlOiBtb21lbnQodHhuLk9wZXJhdGlvbkRhdGUsIERBVEVfRk9STUFUKS50b0lTT1N0cmluZygpLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogbW9tZW50KHR4bi5WYWx1ZURhdGUsIERBVEVfRk9STUFUKS50b0lTT1N0cmluZygpLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IHR4bi5PcGVyYXRpb25BbW91bnQsXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiAnSUxTJyxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IHR4bi5PcGVyYXRpb25BbW91bnQsXG4gICAgICBkZXNjcmlwdGlvbjogdHhuLk9wZXJhdGlvbkRlc2NyaXB0aW9uVG9EaXNwbGF5LFxuICAgICAgc3RhdHVzOiB0eG5TdGF0dXMsXG4gICAgfTtcblxuICAgIGlmIChvcHRpb25zPy5pbmNsdWRlUmF3VHJhbnNhY3Rpb24pIHtcbiAgICAgIHJlc3VsdC5yYXdUcmFuc2FjdGlvbiA9IHR4bjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hBY2NvdW50RGF0YShwYWdlOiBQYWdlLCBvcHRpb25zOiBTY3JhcGVyT3B0aW9ucyk6IFByb21pc2U8U2NyYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gIGNvbnN0IGFwaVNpdGVVcmwgPSBgJHtCQVNFX1VSTH0vVGl0YW4vZ2F0ZXdheUFQSWA7XG5cbiAgY29uc3QgYWNjb3VudERhdGFVcmwgPSBgJHthcGlTaXRlVXJsfS91c2VyQWNjb3VudHNEYXRhYDtcbiAgY29uc3QgYWNjb3VudEluZm8gPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8U2NyYXBlZEFjY291bnREYXRhPihwYWdlLCBhY2NvdW50RGF0YVVybCk7XG5cbiAgaWYgKCFhY2NvdW50SW5mbykge1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuR2VuZXJpYyxcbiAgICAgIGVycm9yTWVzc2FnZTogJ2ZhaWxlZCB0byBnZXQgYWNjb3VudCBkYXRhJyxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDIsICdkYXknKTtcbiAgY29uc3Qgc3RhcnREYXRlID0gb3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgY29uc3Qgc3RhcnREYXRlU3RyID0gc3RhcnRNb21lbnQuZm9ybWF0KERBVEVfRk9STUFUKTtcblxuICBjb25zdCBhY2NvdW50czogc3RyaW5nW10gPSBhY2NvdW50SW5mby5Vc2VyQWNjb3VudHNEYXRhLlVzZXJBY2NvdW50cy5tYXAoYWNjID0+IGFjYy5OZXdBY2NvdW50SW5mby5BY2NvdW50SUQpO1xuICBjb25zdCBhY2NvdW50c0RhdGE6IEFycmF5PHsgYWNjb3VudE51bWJlcjogc3RyaW5nOyBiYWxhbmNlOiBudW1iZXI7IHR4bnM6IFRyYW5zYWN0aW9uW10gfT4gPSBbXTtcblxuICBmb3IgKGNvbnN0IGFjY291bnROdW1iZXIgb2YgYWNjb3VudHMpIHtcbiAgICBjb25zdCB0eG5zVXJsID0gYCR7YXBpU2l0ZVVybH0vbGFzdFRyYW5zYWN0aW9ucy8ke2FjY291bnROdW1iZXJ9L0RhdGU/SXNDYXRlZ29yeURlc2NDb2RlPVRydWUmSXNUcmFuc2FjdGlvbkRldGFpbHM9VHJ1ZSZJc0V2ZW50TmFtZXM9VHJ1ZSZJc0Z1dHVyZVRyYW5zYWN0aW9uRmxhZz1UcnVlJkZyb21EYXRlPSR7c3RhcnREYXRlU3RyfWA7XG4gICAgY29uc3QgdHhuc1Jlc3VsdCA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxTY3JhcGVkVHJhbnNhY3Rpb25EYXRhPihwYWdlLCB0eG5zVXJsKTtcbiAgICBpZiAoIXR4bnNSZXN1bHQgfHwgdHhuc1Jlc3VsdC5FcnJvciB8fCAhdHhuc1Jlc3VsdC5DdXJyZW50QWNjb3VudExhc3RUcmFuc2FjdGlvbnMpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkdlbmVyaWMsXG4gICAgICAgIGVycm9yTWVzc2FnZTogdHhuc1Jlc3VsdCAmJiB0eG5zUmVzdWx0LkVycm9yID8gdHhuc1Jlc3VsdC5FcnJvci5Nc2dUZXh0IDogJ3Vua25vd24gZXJyb3InLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NvdW50Q29tcGxldGVkVHhucyA9IGNvbnZlcnRUcmFuc2FjdGlvbnMoXG4gICAgICB0eG5zUmVzdWx0LkN1cnJlbnRBY2NvdW50TGFzdFRyYW5zYWN0aW9ucy5PcGVyYXRpb25FbnRyeSxcbiAgICAgIFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICAgIGNvbnN0IHJhd0Z1dHVyZVR4bnMgPSBfLmdldChcbiAgICAgIHR4bnNSZXN1bHQsXG4gICAgICAnQ3VycmVudEFjY291bnRMYXN0VHJhbnNhY3Rpb25zLkZ1dHVyZVRyYW5zYWN0aW9uc0Jsb2NrLkZ1dHVyZVRyYW5zYWN0aW9uRW50cnknLFxuICAgICkgYXMgU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gICAgY29uc3QgYWNjb3VudFBlbmRpbmdUeG5zID0gY29udmVydFRyYW5zYWN0aW9ucyhyYXdGdXR1cmVUeG5zLCBUcmFuc2FjdGlvblN0YXR1c2VzLlBlbmRpbmcsIG9wdGlvbnMpO1xuXG4gICAgYWNjb3VudHNEYXRhLnB1c2goe1xuICAgICAgYWNjb3VudE51bWJlcixcbiAgICAgIGJhbGFuY2U6IHR4bnNSZXN1bHQuQ3VycmVudEFjY291bnRMYXN0VHJhbnNhY3Rpb25zLkN1cnJlbnRBY2NvdW50SW5mby5BY2NvdW50QmFsYW5jZSxcbiAgICAgIHR4bnM6IFsuLi5hY2NvdW50Q29tcGxldGVkVHhucywgLi4uYWNjb3VudFBlbmRpbmdUeG5zXSxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGFjY291bnREYXRhID0ge1xuICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgYWNjb3VudHM6IGFjY291bnRzRGF0YSxcbiAgfTtcblxuICByZXR1cm4gYWNjb3VudERhdGE7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5hdmlnYXRlT3JFcnJvckxhYmVsKHBhZ2U6IFBhZ2UpIHtcbiAgdHJ5IHtcbiAgICBhd2FpdCB3YWl0Rm9yTmF2aWdhdGlvbihwYWdlKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnI2dlbmVyYWwtZXJyb3InLCBmYWxzZSwgMTAwKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyB7XG4gIGNvbnN0IHVybHM6IFBvc3NpYmxlTG9naW5SZXN1bHRzID0ge307XG4gIHVybHNbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdID0gW1xuICAgIGAke0JBU0VfVVJMfS9hcG9sbG8vcmV0YWlsLyMvTVlfQUNDT1VOVF9IT01FUEFHRWAsXG4gICAgYCR7QkFTRV9VUkx9L2Fwb2xsby9yZXRhaWwyLyMvTVlfQUNDT1VOVF9IT01FUEFHRWAsXG4gICAgYCR7QkFTRV9VUkx9L2Fwb2xsby9yZXRhaWwyL2AsXG4gIF07XG4gIHVybHNbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF0gPSBbYCR7QkFTRV9VUkx9L2Fwb2xsby9jb3JlL3RlbXBsYXRlcy9sb2JieS9tYXN0ZXJQYWdlLmh0bWwjL0xPR0lOX1BBR0VgXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdID0gW2Ake0JBU0VfVVJMfS9hcG9sbG8vY29yZS90ZW1wbGF0ZXMvbG9iYnkvbWFzdGVyUGFnZS5odG1sIy9QV0RfUkVORVdgXTtcbiAgcmV0dXJuIHVybHM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICcjdHpJZCcsIHZhbHVlOiBjcmVkZW50aWFscy5pZCB9LFxuICAgIHsgc2VsZWN0b3I6ICcjdHpQYXNzd29yZCcsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICAgIHsgc2VsZWN0b3I6ICcjYWlkbnVtJywgdmFsdWU6IGNyZWRlbnRpYWxzLm51bSB9LFxuICBdO1xufVxuXG50eXBlIFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzID0geyBpZDogc3RyaW5nOyBwYXNzd29yZDogc3RyaW5nOyBudW06IHN0cmluZyB9O1xuXG5jbGFzcyBEaXNjb3VudFNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyPFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzPiB7XG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IGAke0JBU0VfVVJMfS9sb2dpbi8jL0xPR0lOX1BBR0VgLFxuICAgICAgY2hlY2tSZWFkaW5lc3M6IGFzeW5jICgpID0+IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjdHpJZCcpLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogJy5zZW5kQnRuJyxcbiAgICAgIHBvc3RBY3Rpb246IGFzeW5jICgpID0+IG5hdmlnYXRlT3JFcnJvckxhYmVsKHRoaXMucGFnZSksXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICByZXR1cm4gZmV0Y2hBY2NvdW50RGF0YSh0aGlzLnBhZ2UsIHRoaXMub3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRGlzY291bnRTY3JhcGVyO1xuIl0sIm1hcHBpbmdz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