israeli-bank-scrapers 1.14.0 → 1.14.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.
package/README.md CHANGED
@@ -292,7 +292,6 @@ const credentials = {
292
292
  };
293
293
  ```
294
294
 
295
-
296
295
  # Known projects
297
296
  These are the projects known to be using this module:
298
297
  - [Israeli YNAB updater](https://github.com/eshaham/israeli-ynab-updater) - A command line tool for exporting banks data to CSVs, formatted specifically for [YNAB](https://www.youneedabudget.com)
@@ -21,6 +21,7 @@ declare class BeinleumiGroupBaseScraper extends BaseScraperWithBrowser {
21
21
  submitButtonSelector: string;
22
22
  postAction: () => Promise<void>;
23
23
  possibleResults: PossibleLoginResults;
24
+ preAction: () => Promise<void>;
24
25
  };
25
26
  fetchData(): Promise<{
26
27
  success: boolean;
@@ -305,7 +305,12 @@ class BeinleumiGroupBaseScraper extends _baseScraperWithBrowser.BaseScraperWithB
305
305
  fields: createLoginFields(credentials),
306
306
  submitButtonSelector: '#continueBtn',
307
307
  postAction: async () => waitForPostLogin(this.page),
308
- possibleResults: getPossibleLoginResults()
308
+ possibleResults: getPossibleLoginResults(),
309
+ // HACK: For some reason, though the login button (#continueBtn) is present and visible, the click action does not perform.
310
+ // Adding this delay fixes the issue.
311
+ preAction: async () => {
312
+ await this.page.waitForTimeout(1000);
313
+ }
309
314
  };
310
315
  }
311
316
 
@@ -327,4 +332,4 @@ class BeinleumiGroupBaseScraper extends _baseScraperWithBrowser.BaseScraperWithB
327
332
 
328
333
  var _default = BeinleumiGroupBaseScraper;
329
334
  exports.default = _default;
330
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLWJlaW5sZXVtaS1ncm91cC50cyJdLCJuYW1lcyI6WyJEQVRFX0ZPUk1BVCIsIk5PX1RSQU5TQUNUSU9OX0lOX0RBVEVfUkFOR0VfVEVYVCIsIkRBVEVfQ09MVU1OX0NMQVNTX0NPTVBMRVRFRCIsIkRBVEVfQ09MVU1OX0NMQVNTX1BFTkRJTkciLCJERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfQ09NUExFVEVEIiwiREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX1BFTkRJTkciLCJSRUZFUkVOQ0VfQ09MVU1OX0NMQVNTIiwiREVCSVRfQ09MVU1OX0NMQVNTIiwiQ1JFRElUX0NPTFVNTl9DTEFTUyIsIkVSUk9SX01FU1NBR0VfQ0xBU1MiLCJBQ0NPVU5UU19OVU1CRVIiLCJDTE9TRV9TRUFSQ0hfQllfREFURVNfQlVUVE9OX0NMQVNTIiwiU0hPV19TRUFSQ0hfQllfREFURVNfQlVUVE9OX1ZBTFVFIiwiQ09NUExFVEVEX1RSQU5TQUNUSU9OU19UQUJMRSIsIlBFTkRJTkdfVFJBTlNBQ1RJT05TX1RBQkxFIiwiTkVYVF9QQUdFX0xJTksiLCJDVVJSRU5UX0JBTEFOQ0UiLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiSW52YWxpZFBhc3N3b3JkIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNvcHkiLCJyZXBsYWNlIiwicGFyc2VGbG9hdCIsImdldFR4bkFtb3VudCIsInR4biIsImNyZWRpdCIsImRlYml0IiwiTnVtYmVyIiwiaXNOYU4iLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsIm1hcCIsImNvbnZlcnRlZERhdGUiLCJkYXRlIiwidG9JU09TdHJpbmciLCJjb252ZXJ0ZWRBbW91bnQiLCJ0eXBlIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsImlkZW50aWZpZXIiLCJyZWZlcmVuY2UiLCJwYXJzZUludCIsInVuZGVmaW5lZCIsInByb2Nlc3NlZERhdGUiLCJvcmlnaW5hbEFtb3VudCIsIm9yaWdpbmFsQ3VycmVuY3kiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJjaGFyZ2VkQW1vdW50Iiwic3RhdHVzIiwiZGVzY3JpcHRpb24iLCJtZW1vIiwiZ2V0VHJhbnNhY3Rpb25EYXRlIiwidGRzIiwidHJhbnNhY3Rpb25UeXBlIiwidHJhbnNhY3Rpb25zQ29sc1R5cGVzIiwidHJpbSIsImdldFRyYW5zYWN0aW9uRGVzY3JpcHRpb24iLCJnZXRUcmFuc2FjdGlvblJlZmVyZW5jZSIsImdldFRyYW5zYWN0aW9uRGViaXQiLCJnZXRUcmFuc2FjdGlvbkNyZWRpdCIsImV4dHJhY3RUcmFuc2FjdGlvbkRldGFpbHMiLCJ0eG5Sb3ciLCJ0cmFuc2FjdGlvblN0YXR1cyIsImlubmVyVGRzIiwiaXRlbSIsImdldFRyYW5zYWN0aW9uc0NvbHNUeXBlQ2xhc3NlcyIsInBhZ2UiLCJ0YWJsZUxvY2F0b3IiLCJyZXN1bHQiLCJ0eXBlQ2xhc3Nlc09ianMiLCJ0ZCIsImluZGV4IiwiY29sQ2xhc3MiLCJnZXRBdHRyaWJ1dGUiLCJ0eXBlQ2xhc3NPYmoiLCJleHRyYWN0VHJhbnNhY3Rpb24iLCJwdXNoIiwiZXh0cmFjdFRyYW5zYWN0aW9ucyIsInRyYW5zYWN0aW9uc1Jvd3MiLCJ0cnMiLCJ0ciIsIkFycmF5IiwiZnJvbSIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiaW5uZXJUZXh0IiwiaXNOb1RyYW5zYWN0aW9uSW5EYXRlUmFuZ2VFcnJvciIsImhhc0Vycm9ySW5mb0VsZW1lbnQiLCJlcnJvclRleHQiLCIkZXZhbCIsImVycm9yRWxlbWVudCIsInNlYXJjaEJ5RGF0ZXMiLCJzdGFydERhdGUiLCJmb3JtYXQiLCJnZXRBY2NvdW50TnVtYmVyIiwic2VsZWN0ZWRTbmlmQWNjb3VudCIsIm9wdGlvbiIsImNoZWNrSWZIYXNOZXh0UGFnZSIsIm5hdmlnYXRlVG9OZXh0UGFnZSIsInNjcmFwZVRyYW5zYWN0aW9ucyIsIm5lZWRUb1BhZ2luYXRlIiwiaGFzTmV4dFBhZ2UiLCJjdXJyZW50UGFnZVR4bnMiLCJnZXRBY2NvdW50VHJhbnNhY3Rpb25zIiwiUHJvbWlzZSIsInJhY2UiLCJub1RyYW5zYWN0aW9uSW5SYW5nZUVycm9yIiwicGVuZGluZ1R4bnMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiUGVuZGluZyIsImNvbXBsZXRlZFR4bnMiLCJDb21wbGV0ZWQiLCJnZXRDdXJyZW50QmFsYW5jZSIsImJhbGFuY2VTdHIiLCJ3YWl0Rm9yUG9zdExvZ2luIiwiZmV0Y2hBY2NvdW50RGF0YSIsImFjY291bnROdW1iZXIiLCJiYWxhbmNlIiwiZmV0Y2hBY2NvdW50cyIsImFjY291bnRzIiwiYWNjb3VudERhdGEiLCJCZWlubGV1bWlHcm91cEJhc2VTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiTE9HSU5fVVJMIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJwb3N0QWN0aW9uIiwicG9zc2libGVSZXN1bHRzIiwiZmV0Y2hEYXRhIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJhZGQiLCJvcHRpb25zIiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtb21lbnQiLCJtYXgiLCJuYXZpZ2F0ZVRvIiwiVFJBTlNBQ1RJT05TX1VSTCIsInN1Y2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBT0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUtBLE1BQU1BLFdBQVcsR0FBRyxZQUFwQjtBQUNBLE1BQU1DLGlDQUFpQyxHQUFHLDhCQUExQztBQUNBLE1BQU1DLDJCQUEyQixHQUFHLFlBQXBDO0FBQ0EsTUFBTUMseUJBQXlCLEdBQUcsWUFBbEM7QUFDQSxNQUFNQyxrQ0FBa0MsR0FBRyx1QkFBM0M7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LFNBQVUsRUFEdkI7QUFFTEMsTUFBQUEsTUFBTSxFQUFFakgsaUJBQWlCLENBQUNDLFdBQUQsQ0FGcEI7QUFHTGlILE1BQUFBLG9CQUFvQixFQUFFLGNBSGpCO0FBSUxDLE1BQUFBLFVBQVUsRUFBRSxZQUFZZCxnQkFBZ0IsQ0FBQyxLQUFLL0MsSUFBTixDQUpuQztBQUtMOEQsTUFBQUEsZUFBZSxFQUFFekgsdUJBQXVCO0FBTG5DLEtBQVA7QUFPRDs7QUFFRCxRQUFNMEgsU0FBTixHQUFrQjtBQUNoQixVQUFNQyxrQkFBa0IsR0FBRyx1QkFBU0MsUUFBVCxDQUFrQixDQUFsQixFQUFxQixPQUFyQixFQUE4QkMsR0FBOUIsQ0FBa0MsQ0FBbEMsRUFBcUMsS0FBckMsQ0FBM0I7QUFDQSxVQUFNekMsU0FBUyxHQUFHLEtBQUswQyxPQUFMLENBQWExQyxTQUFiLElBQTBCdUMsa0JBQWtCLENBQUNJLE1BQW5CLEVBQTVDOztBQUNBLFVBQU1DLFdBQVcsR0FBR0MsZ0JBQU9DLEdBQVAsQ0FBV1Asa0JBQVgsRUFBK0IscUJBQU92QyxTQUFQLENBQS9CLENBQXBCOztBQUVBLFVBQU0sS0FBSytDLFVBQUwsQ0FBZ0IsS0FBS0MsZ0JBQXJCLENBQU47QUFFQSxVQUFNckIsUUFBUSxHQUFHLE1BQU1ELGFBQWEsQ0FBQyxLQUFLbkQsSUFBTixFQUFZcUUsV0FBWixDQUFwQztBQUVBLFdBQU87QUFDTEssTUFBQUEsT0FBTyxFQUFFLElBREo7QUFFTHRCLE1BQUFBO0FBRkssS0FBUDtBQUlEOztBQTlCNEQ7O2VBaUNoREUseUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50LCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgUG9zc2libGVMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHtcbiAgZmlsbElucHV0LFxuICBjbGlja0J1dHRvbixcbiAgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxuICBwYWdlRXZhbEFsbCxcbiAgZWxlbWVudFByZXNlbnRPblBhZ2UsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbnNBY2NvdW50LCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IFNjcmFwZXJDcmVkZW50aWFscyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyJztcblxuY29uc3QgREFURV9GT1JNQVQgPSAnREQvTU0vWVlZWSc7XG5jb25zdCBOT19UUkFOU0FDVElPTl9JTl9EQVRFX1JBTkdFX1RFWFQgPSAn15zXkCDXoNee16bXkNeVINeg16rXldeg15nXnSDXkdeg15XXqdeQINeU157XkdeV16fXqSc7XG5jb25zdCBEQVRFX0NPTFVNTl9DTEFTU19DT01QTEVURUQgPSAnZGF0ZSBmaXJzdCc7XG5jb25zdCBEQVRFX0NPTFVNTl9DTEFTU19QRU5ESU5HID0gJ2ZpcnN0IGRhdGUnO1xuY29uc3QgREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX0NPTVBMRVRFRCA9ICdyZWZlcmVuY2Ugd3JhcF9ub3JtYWwnO1xuY29uc3QgREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX1BFTkRJTkcgPSAnZGV0YWlscyB3cmFwX25vcm1hbCc7XG5jb25zdCBSRUZFUkVOQ0VfQ09MVU1OX0NMQVNTID0gJ2RldGFpbHMnO1xuY29uc3QgREVCSVRfQ09MVU1OX0NMQVNTID0gJ2RlYml0JztcbmNvbnN0IENSRURJVF9DT0xVTU5fQ0xBU1MgPSAnY3JlZGl0JztcbmNvbnN0IEVSUk9SX01FU1NBR0VfQ0xBU1MgPSAnTk9fREFUQSc7XG5jb25zdCBBQ0NPVU5UU19OVU1CRVIgPSAnZGl2LmZpYmlfYWNjb3VudCBzcGFuLmFjY19udW0nO1xuY29uc3QgQ0xPU0VfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9DTEFTUyA9ICd1aS1kYXRlcGlja2VyLWNsb3NlJztcbmNvbnN0IFNIT1dfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9WQUxVRSA9ICfXlNem15InO1xuY29uc3QgQ09NUExFVEVEX1RSQU5TQUNUSU9OU19UQUJMRSA9ICd0YWJsZSNkYXRhVGFibGUwNzcnO1xuY29uc3QgUEVORElOR19UUkFOU0FDVElPTlNfVEFCTEUgPSAndGFibGUjZGF0YVRhYmxlMDIzJztcbmNvbnN0IE5FWFRfUEFHRV9MSU5LID0gJ2EjTnBhZ2UucGFnaW5nJztcbmNvbnN0IENVUlJFTlRfQkFMQU5DRSA9ICcubWFpbl9iYWxhbmNlJztcblxudHlwZSBUcmFuc2FjdGlvbnNDb2xzVHlwZXMgPSBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xudHlwZSBUcmFuc2FjdGlvbnNUclRkcyA9IHN0cmluZ1tdO1xudHlwZSBUcmFuc2FjdGlvbnNUciA9IHsgaW5uZXJUZHM6IFRyYW5zYWN0aW9uc1RyVGRzIH07XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICByZWZlcmVuY2U6IHN0cmluZztcbiAgZGF0ZTogc3RyaW5nO1xuICBjcmVkaXQ6IHN0cmluZztcbiAgZGViaXQ6IHN0cmluZztcbiAgbWVtbz86IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzO1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyB7XG4gIGNvbnN0IHVybHM6IFBvc3NpYmxlTG9naW5SZXN1bHRzID0ge307XG4gIHVybHNbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdID0gWy9GaWJpTWVudVxcL09ubGluZS9dO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdID0gWy9GaWJpTWVudVxcL01hcmtldGluZ1xcL1ByaXZhdGVcXC9Ib21lL107XG4gIHJldHVybiB1cmxzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICcjdXNlcm5hbWUnLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnI3Bhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgYW1vdW50U3RyQ29weSA9IGFtb3VudFN0ci5yZXBsYWNlKCcsJywgJycpO1xuICByZXR1cm4gcGFyc2VGbG9hdChhbW91bnRTdHJDb3B5KTtcbn1cblxuZnVuY3Rpb24gZ2V0VHhuQW1vdW50KHR4bjogU2NyYXBlZFRyYW5zYWN0aW9uKSB7XG4gIGNvbnN0IGNyZWRpdCA9IGdldEFtb3VudERhdGEodHhuLmNyZWRpdCk7XG4gIGNvbnN0IGRlYml0ID0gZ2V0QW1vdW50RGF0YSh0eG4uZGViaXQpO1xuICByZXR1cm4gKE51bWJlci5pc05hTihjcmVkaXQpID8gMCA6IGNyZWRpdCkgLSAoTnVtYmVyLmlzTmFOKGRlYml0KSA/IDAgOiBkZWJpdCk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgcmV0dXJuIHR4bnMubWFwKCh0eG4pOiBUcmFuc2FjdGlvbiA9PiB7XG4gICAgY29uc3QgY29udmVydGVkRGF0ZSA9IG1vbWVudCh0eG4uZGF0ZSwgREFURV9GT1JNQVQpLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgY29udmVydGVkQW1vdW50ID0gZ2V0VHhuQW1vdW50KHR4bik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgaWRlbnRpZmllcjogdHhuLnJlZmVyZW5jZSA/IHBhcnNlSW50KHR4bi5yZWZlcmVuY2UsIDEwKSA6IHVuZGVmaW5lZCxcbiAgICAgIGRhdGU6IGNvbnZlcnRlZERhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiBjb252ZXJ0ZWREYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IGNvbnZlcnRlZEFtb3VudCxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGNvbnZlcnRlZEFtb3VudCxcbiAgICAgIHN0YXR1czogdHhuLnN0YXR1cyxcbiAgICAgIGRlc2NyaXB0aW9uOiB0eG4uZGVzY3JpcHRpb24sXG4gICAgICBtZW1vOiB0eG4ubWVtbyxcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25EYXRlKHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHRyYW5zYWN0aW9uVHlwZTogc3RyaW5nLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXM6IFRyYW5zYWN0aW9uc0NvbHNUeXBlcykge1xuICBpZiAodHJhbnNhY3Rpb25UeXBlID09PSAnY29tcGxldGVkJykge1xuICAgIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tEQVRFX0NPTFVNTl9DTEFTU19DT01QTEVURURdXSB8fCAnJykudHJpbSgpO1xuICB9XG4gIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tEQVRFX0NPTFVNTl9DTEFTU19QRU5ESU5HXV0gfHwgJycpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25EZXNjcmlwdGlvbih0ZHM6IFRyYW5zYWN0aW9uc1RyVGRzLCB0cmFuc2FjdGlvblR5cGU6IHN0cmluZywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpIHtcbiAgaWYgKHRyYW5zYWN0aW9uVHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcbiAgICByZXR1cm4gKHRkc1t0cmFuc2FjdGlvbnNDb2xzVHlwZXNbREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX0NPTVBMRVRFRF1dIHx8ICcnKS50cmltKCk7XG4gIH1cbiAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW0RFU0NSSVBUSU9OX0NPTFVNTl9DTEFTU19QRU5ESU5HXV0gfHwgJycpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25SZWZlcmVuY2UodGRzOiBUcmFuc2FjdGlvbnNUclRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpIHtcbiAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW1JFRkVSRU5DRV9DT0xVTU5fQ0xBU1NdXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkRlYml0KHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKSB7XG4gIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tERUJJVF9DT0xVTU5fQ0xBU1NdXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkNyZWRpdCh0ZHM6IFRyYW5zYWN0aW9uc1RyVGRzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXM6IFRyYW5zYWN0aW9uc0NvbHNUeXBlcykge1xuICByZXR1cm4gKHRkc1t0cmFuc2FjdGlvbnNDb2xzVHlwZXNbQ1JFRElUX0NPTFVNTl9DTEFTU11dIHx8ICcnKS50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUcmFuc2FjdGlvbkRldGFpbHModHhuUm93OiBUcmFuc2FjdGlvbnNUciwgdHJhbnNhY3Rpb25TdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKTogU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgY29uc3QgdGRzID0gdHhuUm93LmlubmVyVGRzO1xuICBjb25zdCBpdGVtID0ge1xuICAgIHN0YXR1czogdHJhbnNhY3Rpb25TdGF0dXMsXG4gICAgZGF0ZTogZ2V0VHJhbnNhY3Rpb25EYXRlKHRkcywgdHJhbnNhY3Rpb25TdGF0dXMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlcyksXG4gICAgZGVzY3JpcHRpb246IGdldFRyYW5zYWN0aW9uRGVzY3JpcHRpb24odGRzLCB0cmFuc2FjdGlvblN0YXR1cywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgICByZWZlcmVuY2U6IGdldFRyYW5zYWN0aW9uUmVmZXJlbmNlKHRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgICBkZWJpdDogZ2V0VHJhbnNhY3Rpb25EZWJpdCh0ZHMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlcyksXG4gICAgY3JlZGl0OiBnZXRUcmFuc2FjdGlvbkNyZWRpdCh0ZHMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlcyksXG4gIH07XG5cbiAgcmV0dXJuIGl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uc0NvbHNUeXBlQ2xhc3NlcyhwYWdlOiBQYWdlLCB0YWJsZUxvY2F0b3I6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25zQ29sc1R5cGVzPiB7XG4gIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb25zQ29sc1R5cGVzID0ge307XG4gIGNvbnN0IHR5cGVDbGFzc2VzT2JqcyA9IGF3YWl0IHBhZ2VFdmFsQWxsKHBhZ2UsIGAke3RhYmxlTG9jYXRvcn0gdGJvZHkgdHI6Zmlyc3Qtb2YtdHlwZSB0ZGAsIG51bGwsICh0ZHMpID0+IHtcbiAgICByZXR1cm4gdGRzLm1hcCgodGQsIGluZGV4KSA9PiAoe1xuICAgICAgY29sQ2xhc3M6IHRkLmdldEF0dHJpYnV0ZSgnY2xhc3MnKSxcbiAgICAgIGluZGV4LFxuICAgIH0pKTtcbiAgfSk7XG5cbiAgZm9yIChjb25zdCB0eXBlQ2xhc3NPYmogb2YgdHlwZUNsYXNzZXNPYmpzKSB7XG4gICAgaWYgKHR5cGVDbGFzc09iai5jb2xDbGFzcykge1xuICAgICAgcmVzdWx0W3R5cGVDbGFzc09iai5jb2xDbGFzc10gPSB0eXBlQ2xhc3NPYmouaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUcmFuc2FjdGlvbih0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSwgdHJhbnNhY3Rpb25TdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMsIHR4blJvdzogVHJhbnNhY3Rpb25zVHIsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKSB7XG4gIGNvbnN0IHR4biA9IGV4dHJhY3RUcmFuc2FjdGlvbkRldGFpbHModHhuUm93LCB0cmFuc2FjdGlvblN0YXR1cywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKTtcbiAgaWYgKHR4bi5kYXRlICE9PSAnJykge1xuICAgIHR4bnMucHVzaCh0eG4pO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgdGFibGVMb2NhdG9yOiBzdHJpbmcsIHRyYW5zYWN0aW9uU3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzKSB7XG4gIGNvbnN0IHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdID0gW107XG4gIGNvbnN0IHRyYW5zYWN0aW9uc0NvbHNUeXBlcyA9IGF3YWl0IGdldFRyYW5zYWN0aW9uc0NvbHNUeXBlQ2xhc3NlcyhwYWdlLCB0YWJsZUxvY2F0b3IpO1xuXG4gIGNvbnN0IHRyYW5zYWN0aW9uc1Jvd3MgPSBhd2FpdCBwYWdlRXZhbEFsbDxUcmFuc2FjdGlvbnNUcltdPihwYWdlLCBgJHt0YWJsZUxvY2F0b3J9IHRib2R5IHRyYCwgW10sICh0cnMpID0+IHtcbiAgICByZXR1cm4gdHJzLm1hcCgodHIpID0+ICh7XG4gICAgICBpbm5lclRkczogQXJyYXkuZnJvbSh0ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGQnKSkubWFwKCh0ZCkgPT4gdGQuaW5uZXJUZXh0KSxcbiAgICB9KSk7XG4gIH0pO1xuXG4gIGZvciAoY29uc3QgdHhuUm93IG9mIHRyYW5zYWN0aW9uc1Jvd3MpIHtcbiAgICBleHRyYWN0VHJhbnNhY3Rpb24odHhucywgdHJhbnNhY3Rpb25TdGF0dXMsIHR4blJvdywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKTtcbiAgfVxuICByZXR1cm4gdHhucztcbn1cblxuYXN5bmMgZnVuY3Rpb24gaXNOb1RyYW5zYWN0aW9uSW5EYXRlUmFuZ2VFcnJvcihwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGhhc0Vycm9ySW5mb0VsZW1lbnQgPSBhd2FpdCBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBgLiR7RVJST1JfTUVTU0FHRV9DTEFTU31gKTtcbiAgaWYgKGhhc0Vycm9ySW5mb0VsZW1lbnQpIHtcbiAgICBjb25zdCBlcnJvclRleHQgPSBhd2FpdCBwYWdlLiRldmFsKGAuJHtFUlJPUl9NRVNTQUdFX0NMQVNTfWAsIChlcnJvckVsZW1lbnQpID0+IHtcbiAgICAgIHJldHVybiAoZXJyb3JFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIGVycm9yVGV4dC50cmltKCkgPT09IE5PX1RSQU5TQUNUSU9OX0lOX0RBVEVfUkFOR0VfVEVYVDtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlYXJjaEJ5RGF0ZXMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpIHtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgJ2EjdGFiSGVhZGVyNCcpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2RpdiNmaWJpX2RhdGVzJyk7XG4gIGF3YWl0IGZpbGxJbnB1dChcbiAgICBwYWdlLFxuICAgICdpbnB1dCNmcm9tRGF0ZScsXG4gICAgc3RhcnREYXRlLmZvcm1hdChEQVRFX0ZPUk1BVCksXG4gICk7XG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIGBidXR0b25bY2xhc3MqPSR7Q0xPU0VfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9DTEFTU31dYCk7XG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIGBpbnB1dFt2YWx1ZT0ke1NIT1dfU0VBUkNIX0JZX0RBVEVTX0JVVFRPTl9WQUxVRX1dYCk7XG4gIGF3YWl0IHdhaXRGb3JOYXZpZ2F0aW9uKHBhZ2UpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50TnVtYmVyKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3Qgc2VsZWN0ZWRTbmlmQWNjb3VudCA9IGF3YWl0IHBhZ2UuJGV2YWwoQUNDT1VOVFNfTlVNQkVSLCAob3B0aW9uKSA9PiB7XG4gICAgcmV0dXJuIChvcHRpb24gYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dDtcbiAgfSk7XG5cbiAgcmV0dXJuIHNlbGVjdGVkU25pZkFjY291bnQucmVwbGFjZSgnLycsICdfJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNoZWNrSWZIYXNOZXh0UGFnZShwYWdlOiBQYWdlKSB7XG4gIHJldHVybiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBORVhUX1BBR0VfTElOSyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5hdmlnYXRlVG9OZXh0UGFnZShwYWdlOiBQYWdlKSB7XG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIE5FWFRfUEFHRV9MSU5LKTtcbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG59XG5cbi8qIENvdWxkbid0IHJlcHJvZHVjZSBzY2VuYXJpbyB3aXRoIG11bHRpcGxlIHBhZ2VzIG9mIHBlbmRpbmcgdHJhbnNhY3Rpb25zIC0gU2hvdWxkIHN1cHBvcnQgaWYgZXhpc3RzIHN1Y2ggY2FzZS5cbiAgIG5lZWRUb1BhZ2luYXRlIGlzIGZhbHNlIGlmIHNjcmFwaW5nIHBlbmRpbmcgdHJhbnNhY3Rpb25zICovXG5hc3luYyBmdW5jdGlvbiBzY3JhcGVUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgdGFibGVMb2NhdG9yOiBzdHJpbmcsIHRyYW5zYWN0aW9uU3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLCBuZWVkVG9QYWdpbmF0ZTogYm9vbGVhbikge1xuICBjb25zdCB0eG5zID0gW107XG4gIGxldCBoYXNOZXh0UGFnZSA9IGZhbHNlO1xuXG4gIGRvIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZVR4bnMgPSBhd2FpdCBleHRyYWN0VHJhbnNhY3Rpb25zKHBhZ2UsIHRhYmxlTG9jYXRvciwgdHJhbnNhY3Rpb25TdGF0dXMpO1xuICAgIHR4bnMucHVzaCguLi5jdXJyZW50UGFnZVR4bnMpO1xuICAgIGlmIChuZWVkVG9QYWdpbmF0ZSkge1xuICAgICAgaGFzTmV4dFBhZ2UgPSBhd2FpdCBjaGVja0lmSGFzTmV4dFBhZ2UocGFnZSk7XG4gICAgICBpZiAoaGFzTmV4dFBhZ2UpIHtcbiAgICAgICAgYXdhaXQgbmF2aWdhdGVUb05leHRQYWdlKHBhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfSB3aGlsZSAoaGFzTmV4dFBhZ2UpO1xuXG4gIHJldHVybiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnMpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50VHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UpIHtcbiAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2RpdltpZCo9XFwnZGl2VGFibGVcXCddJywgZmFsc2UpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBgLiR7RVJST1JfTUVTU0FHRV9DTEFTU31gLCBmYWxzZSksXG4gIF0pO1xuXG4gIGNvbnN0IG5vVHJhbnNhY3Rpb25JblJhbmdlRXJyb3IgPSBhd2FpdCBpc05vVHJhbnNhY3Rpb25JbkRhdGVSYW5nZUVycm9yKHBhZ2UpO1xuICBpZiAobm9UcmFuc2FjdGlvbkluUmFuZ2VFcnJvcikge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHBlbmRpbmdUeG5zID0gYXdhaXQgc2NyYXBlVHJhbnNhY3Rpb25zKHBhZ2UsIFBFTkRJTkdfVFJBTlNBQ1RJT05TX1RBQkxFLFxuICAgIFRyYW5zYWN0aW9uU3RhdHVzZXMuUGVuZGluZywgZmFsc2UpO1xuICBjb25zdCBjb21wbGV0ZWRUeG5zID0gYXdhaXQgc2NyYXBlVHJhbnNhY3Rpb25zKHBhZ2UsIENPTVBMRVRFRF9UUkFOU0FDVElPTlNfVEFCTEUsXG4gICAgVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsIHRydWUpO1xuICBjb25zdCB0eG5zID0gW1xuICAgIC4uLnBlbmRpbmdUeG5zLFxuICAgIC4uLmNvbXBsZXRlZFR4bnMsXG4gIF07XG4gIHJldHVybiB0eG5zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDdXJyZW50QmFsYW5jZShwYWdlOiBQYWdlKSB7XG4gIGNvbnN0IGJhbGFuY2VTdHIgPSBhd2FpdCBwYWdlLiRldmFsKENVUlJFTlRfQkFMQU5DRSwgKG9wdGlvbikgPT4ge1xuICAgIHJldHVybiAob3B0aW9uIGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQ7XG4gIH0pO1xuICByZXR1cm4gZ2V0QW1vdW50RGF0YShiYWxhbmNlU3RyKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JQb3N0TG9naW4ocGFnZTogUGFnZSkge1xuICByZXR1cm4gUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyNtYXRhZkxvZ291dExpbmsnLCB0cnVlKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJyN2YWxpZGF0aW9uTXNnJywgdHJ1ZSksXG4gIF0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFjY291bnREYXRhKHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50KSB7XG4gIGF3YWl0IHNlYXJjaEJ5RGF0ZXMocGFnZSwgc3RhcnREYXRlKTtcbiAgY29uc3QgYWNjb3VudE51bWJlciA9IGF3YWl0IGdldEFjY291bnROdW1iZXIocGFnZSk7XG4gIGNvbnN0IGJhbGFuY2UgPSBhd2FpdCBnZXRDdXJyZW50QmFsYW5jZShwYWdlKTtcbiAgY29uc3QgdHhucyA9IGF3YWl0IGdldEFjY291bnRUcmFuc2FjdGlvbnMocGFnZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBhY2NvdW50TnVtYmVyLFxuICAgIHR4bnMsXG4gICAgYmFsYW5jZSxcbiAgfTtcbn1cblxuLy8gVE9ETzogQWRkIHN1cHBvcnQgb2YgbXVsdGlwbGUgYWNjb3VudHNcbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWNjb3VudHMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpIHtcbiAgY29uc3QgYWNjb3VudHM6IFRyYW5zYWN0aW9uc0FjY291bnRbXSA9IFtdO1xuICBjb25zdCBhY2NvdW50RGF0YSA9IGF3YWl0IGZldGNoQWNjb3VudERhdGEocGFnZSwgc3RhcnREYXRlKTtcbiAgYWNjb3VudHMucHVzaChhY2NvdW50RGF0YSk7XG4gIHJldHVybiBhY2NvdW50cztcbn1cblxuY2xhc3MgQmVpbmxldW1pR3JvdXBCYXNlU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIge1xuICBCQVNFX1VSTCA9ICcnO1xuXG4gIExPR0lOX1VSTCA9ICcnO1xuXG4gIFRSQU5TQUNUSU9OU19VUkwgPSAnJztcblxuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogYCR7dGhpcy5MT0dJTl9VUkx9YCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICcjY29udGludWVCdG4nLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4gd2FpdEZvclBvc3RMb2dpbih0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgICBhd2FpdCB0aGlzLm5hdmlnYXRlVG8odGhpcy5UUkFOU0FDVElPTlNfVVJMKTtcblxuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgZmV0Y2hBY2NvdW50cyh0aGlzLnBhZ2UsIHN0YXJ0TW9tZW50KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCZWlubGV1bWlHcm91cEJhc2VTY3JhcGVyO1xuIl19
335
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLWJlaW5sZXVtaS1ncm91cC50cyJdLCJuYW1lcyI6WyJEQVRFX0ZPUk1BVCIsIk5PX1RSQU5TQUNUSU9OX0lOX0RBVEVfUkFOR0VfVEVYVCIsIkRBVEVfQ09MVU1OX0NMQVNTX0NPTVBMRVRFRCIsIkRBVEVfQ09MVU1OX0NMQVNTX1BFTkRJTkciLCJERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfQ09NUExFVEVEIiwiREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX1BFTkRJTkciLCJSRUZFUkVOQ0VfQ09MVU1OX0NMQVNTIiwiREVCSVRfQ09MVU1OX0NMQVNTIiwiQ1JFRElUX0NPTFVNTl9DTEFTUyIsIkVSUk9SX01FU1NBR0VfQ0xBU1MiLCJBQ0NPVU5UU19OVU1CRVIiLCJDTE9TRV9TRUFSQ0hfQllfREFURVNfQlVUVE9OX0NMQVNTIiwiU0hPV19TRUFSQ0hfQllfREFURVNfQlVUVE9OX1ZBTFVFIiwiQ09NUExFVEVEX1RSQU5TQUNUSU9OU19UQUJMRSIsIlBFTkRJTkdfVFJBTlNBQ1RJT05TX1RBQkxFIiwiTkVYVF9QQUdFX0xJTksiLCJDVVJSRU5UX0JBTEFOQ0UiLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiSW52YWxpZFBhc3N3b3JkIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNvcHkiLCJyZXBsYWNlIiwicGFyc2VGbG9hdCIsImdldFR4bkFtb3VudCIsInR4biIsImNyZWRpdCIsImRlYml0IiwiTnVtYmVyIiwiaXNOYU4iLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsIm1hcCIsImNvbnZlcnRlZERhdGUiLCJkYXRlIiwidG9JU09TdHJpbmciLCJjb252ZXJ0ZWRBbW91bnQiLCJ0eXBlIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsImlkZW50aWZpZXIiLCJyZWZlcmVuY2UiLCJwYXJzZUludCIsInVuZGVmaW5lZCIsInByb2Nlc3NlZERhdGUiLCJvcmlnaW5hbEFtb3VudCIsIm9yaWdpbmFsQ3VycmVuY3kiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJjaGFyZ2VkQW1vdW50Iiwic3RhdHVzIiwiZGVzY3JpcHRpb24iLCJtZW1vIiwiZ2V0VHJhbnNhY3Rpb25EYXRlIiwidGRzIiwidHJhbnNhY3Rpb25UeXBlIiwidHJhbnNhY3Rpb25zQ29sc1R5cGVzIiwidHJpbSIsImdldFRyYW5zYWN0aW9uRGVzY3JpcHRpb24iLCJnZXRUcmFuc2FjdGlvblJlZmVyZW5jZSIsImdldFRyYW5zYWN0aW9uRGViaXQiLCJnZXRUcmFuc2FjdGlvbkNyZWRpdCIsImV4dHJhY3RUcmFuc2FjdGlvbkRldGFpbHMiLCJ0eG5Sb3ciLCJ0cmFuc2FjdGlvblN0YXR1cyIsImlubmVyVGRzIiwiaXRlbSIsImdldFRyYW5zYWN0aW9uc0NvbHNUeXBlQ2xhc3NlcyIsInBhZ2UiLCJ0YWJsZUxvY2F0b3IiLCJyZXN1bHQiLCJ0eXBlQ2xhc3Nlc09ianMiLCJ0ZCIsImluZGV4IiwiY29sQ2xhc3MiLCJnZXRBdHRyaWJ1dGUiLCJ0eXBlQ2xhc3NPYmoiLCJleHRyYWN0VHJhbnNhY3Rpb24iLCJwdXNoIiwiZXh0cmFjdFRyYW5zYWN0aW9ucyIsInRyYW5zYWN0aW9uc1Jvd3MiLCJ0cnMiLCJ0ciIsIkFycmF5IiwiZnJvbSIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiaW5uZXJUZXh0IiwiaXNOb1RyYW5zYWN0aW9uSW5EYXRlUmFuZ2VFcnJvciIsImhhc0Vycm9ySW5mb0VsZW1lbnQiLCJlcnJvclRleHQiLCIkZXZhbCIsImVycm9yRWxlbWVudCIsInNlYXJjaEJ5RGF0ZXMiLCJzdGFydERhdGUiLCJmb3JtYXQiLCJnZXRBY2NvdW50TnVtYmVyIiwic2VsZWN0ZWRTbmlmQWNjb3VudCIsIm9wdGlvbiIsImNoZWNrSWZIYXNOZXh0UGFnZSIsIm5hdmlnYXRlVG9OZXh0UGFnZSIsInNjcmFwZVRyYW5zYWN0aW9ucyIsIm5lZWRUb1BhZ2luYXRlIiwiaGFzTmV4dFBhZ2UiLCJjdXJyZW50UGFnZVR4bnMiLCJnZXRBY2NvdW50VHJhbnNhY3Rpb25zIiwiUHJvbWlzZSIsInJhY2UiLCJub1RyYW5zYWN0aW9uSW5SYW5nZUVycm9yIiwicGVuZGluZ1R4bnMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiUGVuZGluZyIsImNvbXBsZXRlZFR4bnMiLCJDb21wbGV0ZWQiLCJnZXRDdXJyZW50QmFsYW5jZSIsImJhbGFuY2VTdHIiLCJ3YWl0Rm9yUG9zdExvZ2luIiwiZmV0Y2hBY2NvdW50RGF0YSIsImFjY291bnROdW1iZXIiLCJiYWxhbmNlIiwiZmV0Y2hBY2NvdW50cyIsImFjY291bnRzIiwiYWNjb3VudERhdGEiLCJCZWlubGV1bWlHcm91cEJhc2VTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiTE9HSU5fVVJMIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJwb3N0QWN0aW9uIiwicG9zc2libGVSZXN1bHRzIiwicHJlQWN0aW9uIiwid2FpdEZvclRpbWVvdXQiLCJmZXRjaERhdGEiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsImFkZCIsIm9wdGlvbnMiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1vbWVudCIsIm1heCIsIm5hdmlnYXRlVG8iLCJUUkFOU0FDVElPTlNfVVJMIiwic3VjY2VzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFDQTs7Ozs7O0FBS0EsTUFBTUEsV0FBVyxHQUFHLFlBQXBCO0FBQ0EsTUFBTUMsaUNBQWlDLEdBQUcsOEJBQTFDO0FBQ0EsTUFBTUMsMkJBQTJCLEdBQUcsWUFBcEM7QUFDQSxNQUFNQyx5QkFBeUIsR0FBRyxZQUFsQztB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OEcsTUFBQUEsUUFBUSxFQUFHLEdBQUUsS0FBS0MsU0FBVSxFQUR2QjtBQUVMQyxNQUFBQSxNQUFNLEVBQUVqSCxpQkFBaUIsQ0FBQ0MsV0FBRCxDQUZwQjtBQUdMaUgsTUFBQUEsb0JBQW9CLEVBQUUsY0FIakI7QUFJTEMsTUFBQUEsVUFBVSxFQUFFLFlBQVlkLGdCQUFnQixDQUFDLEtBQUsvQyxJQUFOLENBSm5DO0FBS0w4RCxNQUFBQSxlQUFlLEVBQUV6SCx1QkFBdUIsRUFMbkM7QUFNTDtBQUNBO0FBQ0EwSCxNQUFBQSxTQUFTLEVBQUUsWUFBWTtBQUNyQixjQUFNLEtBQUsvRCxJQUFMLENBQVVnRSxjQUFWLENBQXlCLElBQXpCLENBQU47QUFDRDtBQVZJLEtBQVA7QUFZRDs7QUFFRCxRQUFNQyxTQUFOLEdBQWtCO0FBQ2hCLFVBQU1DLGtCQUFrQixHQUFHLHVCQUFTQyxRQUFULENBQWtCLENBQWxCLEVBQXFCLE9BQXJCLEVBQThCQyxHQUE5QixDQUFrQyxDQUFsQyxFQUFxQyxLQUFyQyxDQUEzQjtBQUNBLFVBQU0zQyxTQUFTLEdBQUcsS0FBSzRDLE9BQUwsQ0FBYTVDLFNBQWIsSUFBMEJ5QyxrQkFBa0IsQ0FBQ0ksTUFBbkIsRUFBNUM7O0FBQ0EsVUFBTUMsV0FBVyxHQUFHQyxnQkFBT0MsR0FBUCxDQUFXUCxrQkFBWCxFQUErQixxQkFBT3pDLFNBQVAsQ0FBL0IsQ0FBcEI7O0FBRUEsVUFBTSxLQUFLaUQsVUFBTCxDQUFnQixLQUFLQyxnQkFBckIsQ0FBTjtBQUVBLFVBQU12QixRQUFRLEdBQUcsTUFBTUQsYUFBYSxDQUFDLEtBQUtuRCxJQUFOLEVBQVl1RSxXQUFaLENBQXBDO0FBRUEsV0FBTztBQUNMSyxNQUFBQSxPQUFPLEVBQUUsSUFESjtBQUVMeEIsTUFBQUE7QUFGSyxLQUFQO0FBSUQ7O0FBbkM0RDs7ZUFzQ2hERSx5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQge1xuICBmaWxsSW5wdXQsXG4gIGNsaWNrQnV0dG9uLFxuICB3YWl0VW50aWxFbGVtZW50Rm91bmQsXG4gIHBhZ2VFdmFsQWxsLFxuICBlbGVtZW50UHJlc2VudE9uUGFnZSxcbn0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgd2FpdEZvck5hdmlnYXRpb24gfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgU0hFS0VMX0NVUlJFTkNZIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uc0FjY291bnQsIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblN0YXR1c2VzLCBUcmFuc2FjdGlvblR5cGVzLFxufSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgU2NyYXBlckNyZWRlbnRpYWxzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXInO1xuXG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWVlZJztcbmNvbnN0IE5PX1RSQU5TQUNUSU9OX0lOX0RBVEVfUkFOR0VfVEVYVCA9ICfXnNeQINeg157XpteQ15Ug16DXqteV16DXmdedINeR16DXldep15Ag15TXnteR15XXp9epJztcbmNvbnN0IERBVEVfQ09MVU1OX0NMQVNTX0NPTVBMRVRFRCA9ICdkYXRlIGZpcnN0JztcbmNvbnN0IERBVEVfQ09MVU1OX0NMQVNTX1BFTkRJTkcgPSAnZmlyc3QgZGF0ZSc7XG5jb25zdCBERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfQ09NUExFVEVEID0gJ3JlZmVyZW5jZSB3cmFwX25vcm1hbCc7XG5jb25zdCBERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfUEVORElORyA9ICdkZXRhaWxzIHdyYXBfbm9ybWFsJztcbmNvbnN0IFJFRkVSRU5DRV9DT0xVTU5fQ0xBU1MgPSAnZGV0YWlscyc7XG5jb25zdCBERUJJVF9DT0xVTU5fQ0xBU1MgPSAnZGViaXQnO1xuY29uc3QgQ1JFRElUX0NPTFVNTl9DTEFTUyA9ICdjcmVkaXQnO1xuY29uc3QgRVJST1JfTUVTU0FHRV9DTEFTUyA9ICdOT19EQVRBJztcbmNvbnN0IEFDQ09VTlRTX05VTUJFUiA9ICdkaXYuZmliaV9hY2NvdW50IHNwYW4uYWNjX251bSc7XG5jb25zdCBDTE9TRV9TRUFSQ0hfQllfREFURVNfQlVUVE9OX0NMQVNTID0gJ3VpLWRhdGVwaWNrZXItY2xvc2UnO1xuY29uc3QgU0hPV19TRUFSQ0hfQllfREFURVNfQlVUVE9OX1ZBTFVFID0gJ9eU16bXkic7XG5jb25zdCBDT01QTEVURURfVFJBTlNBQ1RJT05TX1RBQkxFID0gJ3RhYmxlI2RhdGFUYWJsZTA3Nyc7XG5jb25zdCBQRU5ESU5HX1RSQU5TQUNUSU9OU19UQUJMRSA9ICd0YWJsZSNkYXRhVGFibGUwMjMnO1xuY29uc3QgTkVYVF9QQUdFX0xJTksgPSAnYSNOcGFnZS5wYWdpbmcnO1xuY29uc3QgQ1VSUkVOVF9CQUxBTkNFID0gJy5tYWluX2JhbGFuY2UnO1xuXG50eXBlIFRyYW5zYWN0aW9uc0NvbHNUeXBlcyA9IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG50eXBlIFRyYW5zYWN0aW9uc1RyVGRzID0gc3RyaW5nW107XG50eXBlIFRyYW5zYWN0aW9uc1RyID0geyBpbm5lclRkczogVHJhbnNhY3Rpb25zVHJUZHMgfTtcblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbiB7XG4gIHJlZmVyZW5jZTogc3RyaW5nO1xuICBkYXRlOiBzdHJpbmc7XG4gIGNyZWRpdDogc3RyaW5nO1xuICBkZWJpdDogc3RyaW5nO1xuICBtZW1vPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXM7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCk6IFBvc3NpYmxlTG9naW5SZXN1bHRzIHtcbiAgY29uc3QgdXJsczogUG9zc2libGVMb2dpblJlc3VsdHMgPSB7fTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuU3VjY2Vzc10gPSBbL0ZpYmlNZW51XFwvT25saW5lL107XG4gIHVybHNbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF0gPSBbL0ZpYmlNZW51XFwvTWFya2V0aW5nXFwvUHJpdmF0ZVxcL0hvbWUvXTtcbiAgcmV0dXJuIHVybHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogJyN1c2VybmFtZScsIHZhbHVlOiBjcmVkZW50aWFscy51c2VybmFtZSB9LFxuICAgIHsgc2VsZWN0b3I6ICcjcGFzc3dvcmQnLCB2YWx1ZTogY3JlZGVudGlhbHMucGFzc3dvcmQgfSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gZ2V0QW1vdW50RGF0YShhbW91bnRTdHI6IHN0cmluZykge1xuICBjb25zdCBhbW91bnRTdHJDb3B5ID0gYW1vdW50U3RyLnJlcGxhY2UoJywnLCAnJyk7XG4gIHJldHVybiBwYXJzZUZsb2F0KGFtb3VudFN0ckNvcHkpO1xufVxuXG5mdW5jdGlvbiBnZXRUeG5BbW91bnQodHhuOiBTY3JhcGVkVHJhbnNhY3Rpb24pIHtcbiAgY29uc3QgY3JlZGl0ID0gZ2V0QW1vdW50RGF0YSh0eG4uY3JlZGl0KTtcbiAgY29uc3QgZGViaXQgPSBnZXRBbW91bnREYXRhKHR4bi5kZWJpdCk7XG4gIHJldHVybiAoTnVtYmVyLmlzTmFOKGNyZWRpdCkgPyAwIDogY3JlZGl0KSAtIChOdW1iZXIuaXNOYU4oZGViaXQpID8gMCA6IGRlYml0KTtcbn1cblxuZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9ucyh0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSk6IFRyYW5zYWN0aW9uW10ge1xuICByZXR1cm4gdHhucy5tYXAoKHR4bik6IFRyYW5zYWN0aW9uID0+IHtcbiAgICBjb25zdCBjb252ZXJ0ZWREYXRlID0gbW9tZW50KHR4bi5kYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKTtcbiAgICBjb25zdCBjb252ZXJ0ZWRBbW91bnQgPSBnZXRUeG5BbW91bnQodHhuKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBpZGVudGlmaWVyOiB0eG4ucmVmZXJlbmNlID8gcGFyc2VJbnQodHhuLnJlZmVyZW5jZSwgMTApIDogdW5kZWZpbmVkLFxuICAgICAgZGF0ZTogY29udmVydGVkRGF0ZSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IGNvbnZlcnRlZERhdGUsXG4gICAgICBvcmlnaW5hbEFtb3VudDogY29udmVydGVkQW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogU0hFS0VMX0NVUlJFTkNZLFxuICAgICAgY2hhcmdlZEFtb3VudDogY29udmVydGVkQW1vdW50LFxuICAgICAgc3RhdHVzOiB0eG4uc3RhdHVzLFxuICAgICAgZGVzY3JpcHRpb246IHR4bi5kZXNjcmlwdGlvbixcbiAgICAgIG1lbW86IHR4bi5tZW1vLFxuICAgIH07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkRhdGUodGRzOiBUcmFuc2FjdGlvbnNUclRkcywgdHJhbnNhY3Rpb25UeXBlOiBzdHJpbmcsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKSB7XG4gIGlmICh0cmFuc2FjdGlvblR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XG4gICAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW0RBVEVfQ09MVU1OX0NMQVNTX0NPTVBMRVRFRF1dIHx8ICcnKS50cmltKCk7XG4gIH1cbiAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW0RBVEVfQ09MVU1OX0NMQVNTX1BFTkRJTkddXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkRlc2NyaXB0aW9uKHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHRyYW5zYWN0aW9uVHlwZTogc3RyaW5nLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXM6IFRyYW5zYWN0aW9uc0NvbHNUeXBlcykge1xuICBpZiAodHJhbnNhY3Rpb25UeXBlID09PSAnY29tcGxldGVkJykge1xuICAgIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tERVNDUklQVElPTl9DT0xVTU5fQ0xBU1NfQ09NUExFVEVEXV0gfHwgJycpLnRyaW0oKTtcbiAgfVxuICByZXR1cm4gKHRkc1t0cmFuc2FjdGlvbnNDb2xzVHlwZXNbREVTQ1JJUFRJT05fQ09MVU1OX0NMQVNTX1BFTkRJTkddXSB8fCAnJykudHJpbSgpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvblJlZmVyZW5jZSh0ZHM6IFRyYW5zYWN0aW9uc1RyVGRzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXM6IFRyYW5zYWN0aW9uc0NvbHNUeXBlcykge1xuICByZXR1cm4gKHRkc1t0cmFuc2FjdGlvbnNDb2xzVHlwZXNbUkVGRVJFTkNFX0NPTFVNTl9DTEFTU11dIHx8ICcnKS50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uRGViaXQodGRzOiBUcmFuc2FjdGlvbnNUclRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpIHtcbiAgcmV0dXJuICh0ZHNbdHJhbnNhY3Rpb25zQ29sc1R5cGVzW0RFQklUX0NPTFVNTl9DTEFTU11dIHx8ICcnKS50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uQ3JlZGl0KHRkczogVHJhbnNhY3Rpb25zVHJUZHMsIHRyYW5zYWN0aW9uc0NvbHNUeXBlczogVHJhbnNhY3Rpb25zQ29sc1R5cGVzKSB7XG4gIHJldHVybiAodGRzW3RyYW5zYWN0aW9uc0NvbHNUeXBlc1tDUkVESVRfQ09MVU1OX0NMQVNTXV0gfHwgJycpLnRyaW0oKTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFRyYW5zYWN0aW9uRGV0YWlscyh0eG5Sb3c6IFRyYW5zYWN0aW9uc1RyLCB0cmFuc2FjdGlvblN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpOiBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBjb25zdCB0ZHMgPSB0eG5Sb3cuaW5uZXJUZHM7XG4gIGNvbnN0IGl0ZW0gPSB7XG4gICAgc3RhdHVzOiB0cmFuc2FjdGlvblN0YXR1cyxcbiAgICBkYXRlOiBnZXRUcmFuc2FjdGlvbkRhdGUodGRzLCB0cmFuc2FjdGlvblN0YXR1cywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgICBkZXNjcmlwdGlvbjogZ2V0VHJhbnNhY3Rpb25EZXNjcmlwdGlvbih0ZHMsIHRyYW5zYWN0aW9uU3RhdHVzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXMpLFxuICAgIHJlZmVyZW5jZTogZ2V0VHJhbnNhY3Rpb25SZWZlcmVuY2UodGRzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXMpLFxuICAgIGRlYml0OiBnZXRUcmFuc2FjdGlvbkRlYml0KHRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgICBjcmVkaXQ6IGdldFRyYW5zYWN0aW9uQ3JlZGl0KHRkcywgdHJhbnNhY3Rpb25zQ29sc1R5cGVzKSxcbiAgfTtcblxuICByZXR1cm4gaXRlbTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25zQ29sc1R5cGVDbGFzc2VzKHBhZ2U6IFBhZ2UsIHRhYmxlTG9jYXRvcjogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbnNDb2xzVHlwZXM+IHtcbiAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMgPSB7fTtcbiAgY29uc3QgdHlwZUNsYXNzZXNPYmpzID0gYXdhaXQgcGFnZUV2YWxBbGwocGFnZSwgYCR7dGFibGVMb2NhdG9yfSB0Ym9keSB0cjpmaXJzdC1vZi10eXBlIHRkYCwgbnVsbCwgKHRkcykgPT4ge1xuICAgIHJldHVybiB0ZHMubWFwKCh0ZCwgaW5kZXgpID0+ICh7XG4gICAgICBjb2xDbGFzczogdGQuZ2V0QXR0cmlidXRlKCdjbGFzcycpLFxuICAgICAgaW5kZXgsXG4gICAgfSkpO1xuICB9KTtcblxuICBmb3IgKGNvbnN0IHR5cGVDbGFzc09iaiBvZiB0eXBlQ2xhc3Nlc09ianMpIHtcbiAgICBpZiAodHlwZUNsYXNzT2JqLmNvbENsYXNzKSB7XG4gICAgICByZXN1bHRbdHlwZUNsYXNzT2JqLmNvbENsYXNzXSA9IHR5cGVDbGFzc09iai5pbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdFRyYW5zYWN0aW9uKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdLCB0cmFuc2FjdGlvblN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcywgdHhuUm93OiBUcmFuc2FjdGlvbnNUciwgdHJhbnNhY3Rpb25zQ29sc1R5cGVzOiBUcmFuc2FjdGlvbnNDb2xzVHlwZXMpIHtcbiAgY29uc3QgdHhuID0gZXh0cmFjdFRyYW5zYWN0aW9uRGV0YWlscyh0eG5Sb3csIHRyYW5zYWN0aW9uU3RhdHVzLCB0cmFuc2FjdGlvbnNDb2xzVHlwZXMpO1xuICBpZiAodHhuLmRhdGUgIT09ICcnKSB7XG4gICAgdHhucy5wdXNoKHR4bik7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZXh0cmFjdFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCB0YWJsZUxvY2F0b3I6IHN0cmluZywgdHJhbnNhY3Rpb25TdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMpIHtcbiAgY29uc3QgdHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10gPSBbXTtcbiAgY29uc3QgdHJhbnNhY3Rpb25zQ29sc1R5cGVzID0gYXdhaXQgZ2V0VHJhbnNhY3Rpb25zQ29sc1R5cGVDbGFzc2VzKHBhZ2UsIHRhYmxlTG9jYXRvcik7XG5cbiAgY29uc3QgdHJhbnNhY3Rpb25zUm93cyA9IGF3YWl0IHBhZ2VFdmFsQWxsPFRyYW5zYWN0aW9uc1RyW10+KHBhZ2UsIGAke3RhYmxlTG9jYXRvcn0gdGJvZHkgdHJgLCBbXSwgKHRycykgPT4ge1xuICAgIHJldHVybiB0cnMubWFwKCh0cikgPT4gKHtcbiAgICAgIGlubmVyVGRzOiBBcnJheS5mcm9tKHRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZCcpKS5tYXAoKHRkKSA9PiB0ZC5pbm5lclRleHQpLFxuICAgIH0pKTtcbiAgfSk7XG5cbiAgZm9yIChjb25zdCB0eG5Sb3cgb2YgdHJhbnNhY3Rpb25zUm93cykge1xuICAgIGV4dHJhY3RUcmFuc2FjdGlvbih0eG5zLCB0cmFuc2FjdGlvblN0YXR1cywgdHhuUm93LCB0cmFuc2FjdGlvbnNDb2xzVHlwZXMpO1xuICB9XG4gIHJldHVybiB0eG5zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpc05vVHJhbnNhY3Rpb25JbkRhdGVSYW5nZUVycm9yKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3QgaGFzRXJyb3JJbmZvRWxlbWVudCA9IGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIGAuJHtFUlJPUl9NRVNTQUdFX0NMQVNTfWApO1xuICBpZiAoaGFzRXJyb3JJbmZvRWxlbWVudCkge1xuICAgIGNvbnN0IGVycm9yVGV4dCA9IGF3YWl0IHBhZ2UuJGV2YWwoYC4ke0VSUk9SX01FU1NBR0VfQ0xBU1N9YCwgKGVycm9yRWxlbWVudCkgPT4ge1xuICAgICAgcmV0dXJuIChlcnJvckVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dDtcbiAgICB9KTtcbiAgICByZXR1cm4gZXJyb3JUZXh0LnRyaW0oKSA9PT0gTk9fVFJBTlNBQ1RJT05fSU5fREFURV9SQU5HRV9URVhUO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2VhcmNoQnlEYXRlcyhwYWdlOiBQYWdlLCBzdGFydERhdGU6IE1vbWVudCkge1xuICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCAnYSN0YWJIZWFkZXI0Jyk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnZGl2I2ZpYmlfZGF0ZXMnKTtcbiAgYXdhaXQgZmlsbElucHV0KFxuICAgIHBhZ2UsXG4gICAgJ2lucHV0I2Zyb21EYXRlJyxcbiAgICBzdGFydERhdGUuZm9ybWF0KERBVEVfRk9STUFUKSxcbiAgKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgYGJ1dHRvbltjbGFzcyo9JHtDTE9TRV9TRUFSQ0hfQllfREFURVNfQlVUVE9OX0NMQVNTfV1gKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgYGlucHV0W3ZhbHVlPSR7U0hPV19TRUFSQ0hfQllfREFURVNfQlVUVE9OX1ZBTFVFfV1gKTtcbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFjY291bnROdW1iZXIocGFnZTogUGFnZSkge1xuICBjb25zdCBzZWxlY3RlZFNuaWZBY2NvdW50ID0gYXdhaXQgcGFnZS4kZXZhbChBQ0NPVU5UU19OVU1CRVIsIChvcHRpb24pID0+IHtcbiAgICByZXR1cm4gKG9wdGlvbiBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0O1xuICB9KTtcblxuICByZXR1cm4gc2VsZWN0ZWRTbmlmQWNjb3VudC5yZXBsYWNlKCcvJywgJ18nKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY2hlY2tJZkhhc05leHRQYWdlKHBhZ2U6IFBhZ2UpIHtcbiAgcmV0dXJuIGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIE5FWFRfUEFHRV9MSU5LKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbmF2aWdhdGVUb05leHRQYWdlKHBhZ2U6IFBhZ2UpIHtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgTkVYVF9QQUdFX0xJTkspO1xuICBhd2FpdCB3YWl0Rm9yTmF2aWdhdGlvbihwYWdlKTtcbn1cblxuLyogQ291bGRuJ3QgcmVwcm9kdWNlIHNjZW5hcmlvIHdpdGggbXVsdGlwbGUgcGFnZXMgb2YgcGVuZGluZyB0cmFuc2FjdGlvbnMgLSBTaG91bGQgc3VwcG9ydCBpZiBleGlzdHMgc3VjaCBjYXNlLlxuICAgbmVlZFRvUGFnaW5hdGUgaXMgZmFsc2UgaWYgc2NyYXBpbmcgcGVuZGluZyB0cmFuc2FjdGlvbnMgKi9cbmFzeW5jIGZ1bmN0aW9uIHNjcmFwZVRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCB0YWJsZUxvY2F0b3I6IHN0cmluZywgdHJhbnNhY3Rpb25TdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMsIG5lZWRUb1BhZ2luYXRlOiBib29sZWFuKSB7XG4gIGNvbnN0IHR4bnMgPSBbXTtcbiAgbGV0IGhhc05leHRQYWdlID0gZmFsc2U7XG5cbiAgZG8ge1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlVHhucyA9IGF3YWl0IGV4dHJhY3RUcmFuc2FjdGlvbnMocGFnZSwgdGFibGVMb2NhdG9yLCB0cmFuc2FjdGlvblN0YXR1cyk7XG4gICAgdHhucy5wdXNoKC4uLmN1cnJlbnRQYWdlVHhucyk7XG4gICAgaWYgKG5lZWRUb1BhZ2luYXRlKSB7XG4gICAgICBoYXNOZXh0UGFnZSA9IGF3YWl0IGNoZWNrSWZIYXNOZXh0UGFnZShwYWdlKTtcbiAgICAgIGlmIChoYXNOZXh0UGFnZSkge1xuICAgICAgICBhd2FpdCBuYXZpZ2F0ZVRvTmV4dFBhZ2UocGFnZSk7XG4gICAgICB9XG4gICAgfVxuICB9IHdoaWxlIChoYXNOZXh0UGFnZSk7XG5cbiAgcmV0dXJuIGNvbnZlcnRUcmFuc2FjdGlvbnModHhucyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFjY291bnRUcmFuc2FjdGlvbnMocGFnZTogUGFnZSkge1xuICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnZGl2W2lkKj1cXCdkaXZUYWJsZVxcJ10nLCBmYWxzZSksXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsIGAuJHtFUlJPUl9NRVNTQUdFX0NMQVNTfWAsIGZhbHNlKSxcbiAgXSk7XG5cbiAgY29uc3Qgbm9UcmFuc2FjdGlvbkluUmFuZ2VFcnJvciA9IGF3YWl0IGlzTm9UcmFuc2FjdGlvbkluRGF0ZVJhbmdlRXJyb3IocGFnZSk7XG4gIGlmIChub1RyYW5zYWN0aW9uSW5SYW5nZUVycm9yKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcGVuZGluZ1R4bnMgPSBhd2FpdCBzY3JhcGVUcmFuc2FjdGlvbnMocGFnZSwgUEVORElOR19UUkFOU0FDVElPTlNfVEFCTEUsXG4gICAgVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nLCBmYWxzZSk7XG4gIGNvbnN0IGNvbXBsZXRlZFR4bnMgPSBhd2FpdCBzY3JhcGVUcmFuc2FjdGlvbnMocGFnZSwgQ09NUExFVEVEX1RSQU5TQUNUSU9OU19UQUJMRSxcbiAgICBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCwgdHJ1ZSk7XG4gIGNvbnN0IHR4bnMgPSBbXG4gICAgLi4ucGVuZGluZ1R4bnMsXG4gICAgLi4uY29tcGxldGVkVHhucyxcbiAgXTtcbiAgcmV0dXJuIHR4bnM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEN1cnJlbnRCYWxhbmNlKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3QgYmFsYW5jZVN0ciA9IGF3YWl0IHBhZ2UuJGV2YWwoQ1VSUkVOVF9CQUxBTkNFLCAob3B0aW9uKSA9PiB7XG4gICAgcmV0dXJuIChvcHRpb24gYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dDtcbiAgfSk7XG4gIHJldHVybiBnZXRBbW91bnREYXRhKGJhbGFuY2VTdHIpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2FpdEZvclBvc3RMb2dpbihwYWdlOiBQYWdlKSB7XG4gIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnI21hdGFmTG9nb3V0TGluaycsIHRydWUpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnI3ZhbGlkYXRpb25Nc2cnLCB0cnVlKSxcbiAgXSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWNjb3VudERhdGEocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpIHtcbiAgYXdhaXQgc2VhcmNoQnlEYXRlcyhwYWdlLCBzdGFydERhdGUpO1xuICBjb25zdCBhY2NvdW50TnVtYmVyID0gYXdhaXQgZ2V0QWNjb3VudE51bWJlcihwYWdlKTtcbiAgY29uc3QgYmFsYW5jZSA9IGF3YWl0IGdldEN1cnJlbnRCYWxhbmNlKHBhZ2UpO1xuICBjb25zdCB0eG5zID0gYXdhaXQgZ2V0QWNjb3VudFRyYW5zYWN0aW9ucyhwYWdlKTtcblxuICByZXR1cm4ge1xuICAgIGFjY291bnROdW1iZXIsXG4gICAgdHhucyxcbiAgICBiYWxhbmNlLFxuICB9O1xufVxuXG4vLyBUT0RPOiBBZGQgc3VwcG9ydCBvZiBtdWx0aXBsZSBhY2NvdW50c1xuYXN5bmMgZnVuY3Rpb24gZmV0Y2hBY2NvdW50cyhwYWdlOiBQYWdlLCBzdGFydERhdGU6IE1vbWVudCkge1xuICBjb25zdCBhY2NvdW50czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG4gIGNvbnN0IGFjY291bnREYXRhID0gYXdhaXQgZmV0Y2hBY2NvdW50RGF0YShwYWdlLCBzdGFydERhdGUpO1xuICBhY2NvdW50cy5wdXNoKGFjY291bnREYXRhKTtcbiAgcmV0dXJuIGFjY291bnRzO1xufVxuXG5jbGFzcyBCZWlubGV1bWlHcm91cEJhc2VTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciB7XG4gIEJBU0VfVVJMID0gJyc7XG5cbiAgTE9HSU5fVVJMID0gJyc7XG5cbiAgVFJBTlNBQ1RJT05TX1VSTCA9ICcnO1xuXG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlckNyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBgJHt0aGlzLkxPR0lOX1VSTH1gLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogJyNjb250aW51ZUJ0bicsXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiB3YWl0Rm9yUG9zdExvZ2luKHRoaXMucGFnZSksXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCksXG4gICAgICAvLyBIQUNLOiBGb3Igc29tZSByZWFzb24sIHRob3VnaCB0aGUgbG9naW4gYnV0dG9uICgjY29udGludWVCdG4pIGlzIHByZXNlbnQgYW5kIHZpc2libGUsIHRoZSBjbGljayBhY3Rpb24gZG9lcyBub3QgcGVyZm9ybS5cbiAgICAgIC8vIEFkZGluZyB0aGlzIGRlbGF5IGZpeGVzIHRoZSBpc3N1ZS5cbiAgICAgIHByZUFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLnBhZ2Uud2FpdEZvclRpbWVvdXQoMTAwMCk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgICBhd2FpdCB0aGlzLm5hdmlnYXRlVG8odGhpcy5UUkFOU0FDVElPTlNfVVJMKTtcblxuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgZmV0Y2hBY2NvdW50cyh0aGlzLnBhZ2UsIHN0YXJ0TW9tZW50KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCZWlubGV1bWlHcm91cEJhc2VTY3JhcGVyO1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "israeli-bank-scrapers",
3
- "version": "1.14.0",
3
+ "version": "1.14.1",
4
4
  "private": false,
5
5
  "description": "Provide scrapers for all major Israeli banks and credit card companies",
6
6
  "engines": {