israeli-bank-scrapers 6.6.0 → 6.7.0
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/lib/helpers/transactions.d.ts +9 -0
- package/lib/helpers/transactions.js +38 -1
- package/lib/scrapers/base-beinleumi-group.js +7 -6
- package/lib/scrapers/base-isracard-amex.js +4 -3
- package/lib/scrapers/behatsdaa.js +6 -5
- package/lib/scrapers/beyahad-bishvilha.js +2 -2
- package/lib/scrapers/discount.js +7 -6
- package/lib/scrapers/hapoalim.js +5 -3
- package/lib/scrapers/leumi.js +9 -8
- package/lib/scrapers/max.js +2 -2
- package/lib/scrapers/mizrahi.js +6 -2
- package/lib/scrapers/one-zero.js +6 -5
- package/lib/scrapers/union-bank.js +7 -6
- package/lib/scrapers/visa-cal.js +2 -2
- package/lib/scrapers/yahav.js +6 -5
- package/package.json +1 -1
package/lib/scrapers/yahav.js
CHANGED
|
@@ -8,7 +8,8 @@ var _moment = _interopRequireDefault(require("moment"));
|
|
|
8
8
|
var _constants = require("../constants");
|
|
9
9
|
var _elementsInteractions = require("../helpers/elements-interactions");
|
|
10
10
|
var _navigation = require("../helpers/navigation");
|
|
11
|
-
var _transactions = require("../transactions");
|
|
11
|
+
var _transactions = require("../helpers/transactions");
|
|
12
|
+
var _transactions2 = require("../transactions");
|
|
12
13
|
var _baseScraperWithBrowser = require("./base-scraper-with-browser");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
15
|
const LOGIN_URL = 'https://login.yahav.co.il/login/';
|
|
@@ -60,7 +61,7 @@ function convertTransactions(txns, options) {
|
|
|
60
61
|
const convertedDate = (0, _moment.default)(txn.date, DATE_FORMAT).toISOString();
|
|
61
62
|
const convertedAmount = getTxnAmount(txn);
|
|
62
63
|
const result = {
|
|
63
|
-
type:
|
|
64
|
+
type: _transactions2.TransactionTypes.Normal,
|
|
64
65
|
identifier: txn.reference ? parseInt(txn.reference, 10) : undefined,
|
|
65
66
|
date: convertedDate,
|
|
66
67
|
processedDate: convertedDate,
|
|
@@ -72,7 +73,7 @@ function convertTransactions(txns, options) {
|
|
|
72
73
|
memo: txn.memo
|
|
73
74
|
};
|
|
74
75
|
if (options?.includeRawTransaction) {
|
|
75
|
-
result.rawTransaction = txn;
|
|
76
|
+
result.rawTransaction = (0, _transactions.getRawTransaction)(txn);
|
|
76
77
|
}
|
|
77
78
|
return result;
|
|
78
79
|
});
|
|
@@ -89,7 +90,7 @@ function handleTransactionRow(txns, txnRow) {
|
|
|
89
90
|
description: div[3],
|
|
90
91
|
debit: div[4],
|
|
91
92
|
credit: div[5],
|
|
92
|
-
status:
|
|
93
|
+
status: _transactions2.TransactionStatuses.Completed
|
|
93
94
|
};
|
|
94
95
|
txns.push(tx);
|
|
95
96
|
}
|
|
@@ -248,4 +249,4 @@ class YahavScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
|
|
|
248
249
|
}
|
|
249
250
|
}
|
|
250
251
|
var _default = exports.default = YahavScraper;
|
|
251
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX2VsZW1lbnRzSW50ZXJhY3Rpb25zIiwiX25hdmlnYXRpb24iLCJfdHJhbnNhY3Rpb25zIiwiX2Jhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJMT0dJTl9VUkwiLCJCQVNFX1VSTCIsIklOVkFMSURfREVUQUlMU19TRUxFQ1RPUiIsIkNIQU5HRV9QQVNTV09SRF9PTERfUEFTUyIsIkJBU0VfV0VMQ09NRV9VUkwiLCJBQ0NPVU5UX0lEX1NFTEVDVE9SIiwiQUNDT1VOVF9ERVRBSUxTX1NFTEVDVE9SIiwiREFURV9GT1JNQVQiLCJVU0VSX0VMRU0iLCJQQVNTV0RfRUxFTSIsIk5BVElPTkFMSURfRUxFTSIsIlNVQk1JVF9MT0dJTl9TRUxFQ1RPUiIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwicGFnZSIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiSW52YWxpZFBhc3N3b3JkIiwiZWxlbWVudFByZXNlbnRPblBhZ2UiLCJDaGFuZ2VQYXNzd29yZCIsImdldEFjY291bnRJRCIsInNlbGVjdGVkU25pZkFjY291bnQiLCIkZXZhbCIsImVsZW1lbnQiLCJ0ZXh0Q29udGVudCIsImVycm9yIiwiZXJyb3JNZXNzYWdlIiwiRXJyb3IiLCJtZXNzYWdlIiwiU3RyaW5nIiwiZ2V0QW1vdW50RGF0YSIsImFtb3VudFN0ciIsImFtb3VudFN0ckNvcHkiLCJyZXBsYWNlIiwicGFyc2VGbG9hdCIsImdldFR4bkFtb3VudCIsInR4biIsImNyZWRpdCIsImRlYml0IiwiTnVtYmVyIiwiaXNOYU4iLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsIm9wdGlvbnMiLCJtYXAiLCJjb252ZXJ0ZWREYXRlIiwibW9tZW50IiwiZGF0ZSIsInRvSVNPU3RyaW5nIiwiY29udmVydGVkQW1vdW50IiwicmVzdWx0IiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJpZGVudGlmaWVyIiwicmVmZXJlbmNlIiwicGFyc2VJbnQiLCJ1bmRlZmluZWQiLCJwcm9jZXNzZWREYXRlIiwib3JpZ2luYWxBbW91bnQiLCJvcmlnaW5hbEN1cnJlbmN5IiwiU0hFS0VMX0NVUlJFTkNZIiwiY2hhcmdlZEFtb3VudCIsInN0YXR1cyIsImRlc2NyaXB0aW9uIiwibWVtbyIsImluY2x1ZGVSYXdUcmFuc2FjdGlvbiIsInJhd1RyYW5zYWN0aW9uIiwiaGFuZGxlVHJhbnNhY3Rpb25Sb3ciLCJ0eG5Sb3ciLCJkaXYiLCJpbm5lckRpdnMiLCJyZWdleCIsInR4IiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsInB1c2giLCJnZXRBY2NvdW50VHJhbnNhY3Rpb25zIiwid2FpdFVudGlsRWxlbWVudEZvdW5kIiwidHJhbnNhY3Rpb25zRGl2cyIsInBhZ2VFdmFsQWxsIiwiZGl2cyIsImlkIiwiZ2V0QXR0cmlidXRlIiwiQXJyYXkiLCJmcm9tIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJlbCIsImlubmVyVGV4dCIsInNlYXJjaEJ5RGF0ZXMiLCJzdGFydERhdGUiLCJzdGFydERhdGVEYXkiLCJmb3JtYXQiLCJzdGFydERhdGVNb250aCIsInN0YXJ0RGF0ZVllYXIiLCJkYXRlRnJvbVBpY2siLCJjbGlja0J1dHRvbiIsIm1vbnRoRnJvbVBpY2siLCJpIiwic2VsZWN0b3IiLCJ5ZWFyIiwieSIsIm1vbnRoU2VsZWN0b3IiLCJkYXkiLCJkIiwiZmV0Y2hBY2NvdW50RGF0YSIsImFjY291bnRJRCIsIndhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIiLCJhY2NvdW50TnVtYmVyIiwiZmV0Y2hBY2NvdW50cyIsImFjY291bnRzIiwiYWNjb3VudERhdGEiLCJ3YWl0UmVhZGluZXNzRm9yQWxsIiwicmVkaXJlY3RPckRpYWxvZyIsIndhaXRGb3JOYXZpZ2F0aW9uIiwiaGFzTWVzc2FnZSIsInByb21pc2UxIiwid2FpdEZvclNlbGVjdG9yIiwidGltZW91dCIsInByb21pc2UyIiwicHJvbWlzZXMiLCJQcm9taXNlIiwicmFjZSIsIllhaGF2U2NyYXBlciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJnZXRMb2dpbk9wdGlvbnMiLCJjcmVkZW50aWFscyIsImxvZ2luVXJsIiwiZmllbGRzIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwibmF0aW9uYWxJRCIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiY2hlY2tSZWFkaW5lc3MiLCJwb3N0QWN0aW9uIiwicG9zc2libGVSZXN1bHRzIiwiZmV0Y2hEYXRhIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJhZGQiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1heCIsInN1Y2Nlc3MiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyYXBlcnMveWFoYXYudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCwgeyB0eXBlIE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyB0eXBlIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgU0hFS0VMX0NVUlJFTkNZIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIGNsaWNrQnV0dG9uLFxuICBlbGVtZW50UHJlc2VudE9uUGFnZSxcbiAgcGFnZUV2YWxBbGwsXG4gIHdhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIsXG4gIHdhaXRVbnRpbEVsZW1lbnRGb3VuZCxcbn0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgd2FpdEZvck5hdmlnYXRpb24gfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcywgdHlwZSBUcmFuc2FjdGlvbiwgdHlwZSBUcmFuc2FjdGlvbnNBY2NvdW50IH0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgdHlwZSBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyB0eXBlIFNjcmFwZXJPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuXG5jb25zdCBMT0dJTl9VUkwgPSAnaHR0cHM6Ly9sb2dpbi55YWhhdi5jby5pbC9sb2dpbi8nO1xuY29uc3QgQkFTRV9VUkwgPSAnaHR0cHM6Ly9kaWdpdGFsLnlhaGF2LmNvLmlsL0JhTkNTRGlnaXRhbFVJL2FwcC9pbmRleC5odG1sIy8nO1xuY29uc3QgSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SID0gJy51aS1kaWFsb2ctYnV0dG9ucyc7XG5jb25zdCBDSEFOR0VfUEFTU1dPUkRfT0xEX1BBU1MgPSAnaW5wdXQjZWZfcmVxX3BhcmFtZXRlcl9vbGRfY3JlZGVudGlhbCc7XG5jb25zdCBCQVNFX1dFTENPTUVfVVJMID0gYCR7QkFTRV9VUkx9bWFpbi9ob21lYDtcblxuY29uc3QgQUNDT1VOVF9JRF9TRUxFQ1RPUiA9ICdzcGFuLnBvcnRmb2xpby12YWx1ZVtuZy1pZj1cIm1haW5Db250cm9sbGVyLmRhdGEucG9ydGZvbGlvTGlzdC5sZW5ndGggPT09IDFcIl0nO1xuY29uc3QgQUNDT1VOVF9ERVRBSUxTX1NFTEVDVE9SID0gJy5hY2NvdW50LWRldGFpbHMnO1xuY29uc3QgREFURV9GT1JNQVQgPSAnREQvTU0vWVlZWSc7XG5cbmNvbnN0IFVTRVJfRUxFTSA9ICcjdXNlcm5hbWUnO1xuY29uc3QgUEFTU1dEX0VMRU0gPSAnI3Bhc3N3b3JkJztcbmNvbnN0IE5BVElPTkFMSURfRUxFTSA9ICcjcGlubm8nO1xuY29uc3QgU1VCTUlUX0xPR0lOX1NFTEVDVE9SID0gJy5idG4nO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgY3JlZGl0OiBzdHJpbmc7XG4gIGRlYml0OiBzdHJpbmc7XG4gIGRhdGU6IHN0cmluZztcbiAgcmVmZXJlbmNlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBtZW1vOiBzdHJpbmc7XG4gIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcztcbn1cblxuZnVuY3Rpb24gZ2V0UG9zc2libGVMb2dpblJlc3VsdHMocGFnZTogUGFnZSk6IFBvc3NpYmxlTG9naW5SZXN1bHRzIHtcbiAgLy8gY2hlY2tvdXQgZmlsZSBgYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlci50c2AgZm9yIGF2YWlsYWJsZSByZXN1bHQgdHlwZXNcbiAgY29uc3QgdXJsczogUG9zc2libGVMb2dpblJlc3VsdHMgPSB7fTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuU3VjY2Vzc10gPSBbYCR7QkFTRV9XRUxDT01FX1VSTH1gXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFtcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gZWxlbWVudFByZXNlbnRPblBhZ2UocGFnZSwgYCR7SU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SfWApO1xuICAgIH0sXG4gIF07XG5cbiAgdXJsc1tMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdID0gW1xuICAgIGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBgJHtDSEFOR0VfUEFTU1dPUkRfT0xEX1BBU1N9YCk7XG4gICAgfSxcbiAgXTtcblxuICByZXR1cm4gdXJscztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWNjb3VudElEKHBhZ2U6IFBhZ2UpOiBQcm9taXNlPHN0cmluZz4ge1xuICB0cnkge1xuICAgIGNvbnN0IHNlbGVjdGVkU25pZkFjY291bnQgPSBhd2FpdCBwYWdlLiRldmFsKEFDQ09VTlRfSURfU0VMRUNUT1IsIChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgICByZXR1cm4gZWxlbWVudC50ZXh0Q29udGVudCBhcyBzdHJpbmc7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2VsZWN0ZWRTbmlmQWNjb3VudDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEZhaWxlZCB0byByZXRyaWV2ZSBhY2NvdW50IElELiBQb3NzaWJsZSBvdXRkYXRlZCBzZWxlY3RvciAnJHtBQ0NPVU5UX0lEX1NFTEVDVE9SfTogJHtlcnJvck1lc3NhZ2V9YCxcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgYW1vdW50U3RyQ29weSA9IGFtb3VudFN0ci5yZXBsYWNlKCcsJywgJycpO1xuICByZXR1cm4gcGFyc2VGbG9hdChhbW91bnRTdHJDb3B5KTtcbn1cblxuZnVuY3Rpb24gZ2V0VHhuQW1vdW50KHR4bjogU2NyYXBlZFRyYW5zYWN0aW9uKSB7XG4gIGNvbnN0IGNyZWRpdCA9IGdldEFtb3VudERhdGEodHhuLmNyZWRpdCk7XG4gIGNvbnN0IGRlYml0ID0gZ2V0QW1vdW50RGF0YSh0eG4uZGViaXQpO1xuICByZXR1cm4gKE51bWJlci5pc05hTihjcmVkaXQpID8gMCA6IGNyZWRpdCkgLSAoTnVtYmVyLmlzTmFOKGRlYml0KSA/IDAgOiBkZWJpdCk7XG59XG5cbnR5cGUgVHJhbnNhY3Rpb25zVHIgPSB7IGlkOiBzdHJpbmc7IGlubmVyRGl2czogc3RyaW5nW10gfTtcblxuZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9ucyh0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSwgb3B0aW9ucz86IFNjcmFwZXJPcHRpb25zKTogVHJhbnNhY3Rpb25bXSB7XG4gIHJldHVybiB0eG5zLm1hcCh0eG4gPT4ge1xuICAgIGNvbnN0IGNvbnZlcnRlZERhdGUgPSBtb21lbnQodHhuLmRhdGUsIERBVEVfRk9STUFUKS50b0lTT1N0cmluZygpO1xuICAgIGNvbnN0IGNvbnZlcnRlZEFtb3VudCA9IGdldFR4bkFtb3VudCh0eG4pO1xuICAgIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb24gPSB7XG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICAgIGlkZW50aWZpZXI6IHR4bi5yZWZlcmVuY2UgPyBwYXJzZUludCh0eG4ucmVmZXJlbmNlLCAxMCkgOiB1bmRlZmluZWQsXG4gICAgICBkYXRlOiBjb252ZXJ0ZWREYXRlLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogY29udmVydGVkRGF0ZSxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiBjb252ZXJ0ZWRBbW91bnQsXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiBTSEVLRUxfQ1VSUkVOQ1ksXG4gICAgICBjaGFyZ2VkQW1vdW50OiBjb252ZXJ0ZWRBbW91bnQsXG4gICAgICBzdGF0dXM6IHR4bi5zdGF0dXMsXG4gICAgICBkZXNjcmlwdGlvbjogdHhuLmRlc2NyaXB0aW9uLFxuICAgICAgbWVtbzogdHhuLm1lbW8sXG4gICAgfTtcblxuICAgIGlmIChvcHRpb25zPy5pbmNsdWRlUmF3VHJhbnNhY3Rpb24pIHtcbiAgICAgIHJlc3VsdC5yYXdUcmFuc2FjdGlvbiA9IHR4bjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlVHJhbnNhY3Rpb25Sb3codHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10sIHR4blJvdzogVHJhbnNhY3Rpb25zVHIpIHtcbiAgY29uc3QgZGl2ID0gdHhuUm93LmlubmVyRGl2cztcblxuICAvLyBSZW1vdmUgYW55dGhpbmcgZXhjZXB0IGRpZ2l0cy5cbiAgY29uc3QgcmVnZXggPSAvXFxEKy9nbTtcblxuICBjb25zdCB0eDogU2NyYXBlZFRyYW5zYWN0aW9uID0ge1xuICAgIGRhdGU6IGRpdlsxXSxcbiAgICByZWZlcmVuY2U6IGRpdlsyXS5yZXBsYWNlKHJlZ2V4LCAnJyksXG4gICAgbWVtbzogJycsXG4gICAgZGVzY3JpcHRpb246IGRpdlszXSxcbiAgICBkZWJpdDogZGl2WzRdLFxuICAgIGNyZWRpdDogZGl2WzVdLFxuICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsXG4gIH07XG5cbiAgdHhucy5wdXNoKHR4KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWNjb3VudFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBvcHRpb25zPzogU2NyYXBlck9wdGlvbnMpOiBQcm9taXNlPFRyYW5zYWN0aW9uW10+IHtcbiAgLy8gV2FpdCBmb3IgdHJhbnNhY3Rpb25zLlxuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJy51bmRlci1saW5lLXR4bi10YWJsZS1oZWFkZXInLCB0cnVlKTtcblxuICBjb25zdCB0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSA9IFtdO1xuICBjb25zdCB0cmFuc2FjdGlvbnNEaXZzID0gYXdhaXQgcGFnZUV2YWxBbGw8VHJhbnNhY3Rpb25zVHJbXT4oXG4gICAgcGFnZSxcbiAgICAnLmxpc3QtaXRlbS1ob2xkZXIgLmVudGlyZS1jb250ZW50LWN0cicsXG4gICAgW10sXG4gICAgZGl2cyA9PiB7XG4gICAgICByZXR1cm4gKGRpdnMgYXMgSFRNTEVsZW1lbnRbXSkubWFwKGRpdiA9PiAoe1xuICAgICAgICBpZDogZGl2LmdldEF0dHJpYnV0ZSgnaWQnKSB8fCAnJyxcbiAgICAgICAgaW5uZXJEaXZzOiBBcnJheS5mcm9tKGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JykpLm1hcChlbCA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dCksXG4gICAgICB9KSk7XG4gICAgfSxcbiAgKTtcblxuICBmb3IgKGNvbnN0IHR4blJvdyBvZiB0cmFuc2FjdGlvbnNEaXZzKSB7XG4gICAgaGFuZGxlVHJhbnNhY3Rpb25Sb3codHhucywgdHhuUm93KTtcbiAgfVxuXG4gIHJldHVybiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnMsIG9wdGlvbnMpO1xufVxuXG4vLyBNYW5pcHVsYXRlIHRoZSBjYWxlbmRhciBkcm9wIGRvd24gdG8gY2hvb3NlIHRoZSB0eHMgc3RhcnQgZGF0ZS5cbmFzeW5jIGZ1bmN0aW9uIHNlYXJjaEJ5RGF0ZXMocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQpIHtcbiAgLy8gR2V0IHRoZSBkYXkgbnVtYmVyIGZyb20gc3RhcnREYXRlLiAxLTMxICh1c3VhbGx5IDEpXG4gIGNvbnN0IHN0YXJ0RGF0ZURheSA9IHN0YXJ0RGF0ZS5mb3JtYXQoJ0QnKTtcbiAgY29uc3Qgc3RhcnREYXRlTW9udGggPSBzdGFydERhdGUuZm9ybWF0KCdNJyk7XG4gIGNvbnN0IHN0YXJ0RGF0ZVllYXIgPSBzdGFydERhdGUuZm9ybWF0KCdZJyk7XG5cbiAgLy8gT3BlbiB0aGUgY2FsZW5kYXIgZGF0ZSBwaWNrZXJcbiAgY29uc3QgZGF0ZUZyb21QaWNrID1cbiAgICAnZGl2LmRhdGUtb3B0aW9ucy1jZWxsOm50aC1jaGlsZCg3KSA+IGRhdGUtcGlja2VyOm50aC1jaGlsZCgxKSA+IGRpdjpudGgtY2hpbGQoMSkgPiBzcGFuOm50aC1jaGlsZCgyKSc7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBkYXRlRnJvbVBpY2ssIHRydWUpO1xuICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCBkYXRlRnJvbVBpY2spO1xuXG4gIC8vIFdhaXQgdW50aWwgZmlyc3QgZGF5IGFwcGVhci5cbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICcucG11LWRheXMgPiBkaXY6bnRoLWNoaWxkKDEpJywgdHJ1ZSk7XG5cbiAgLy8gT3BlbiBNb250aHMgb3B0aW9ucy5cbiAgY29uc3QgbW9udGhGcm9tUGljayA9ICcucG11LW1vbnRoJztcbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsIG1vbnRoRnJvbVBpY2ssIHRydWUpO1xuICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCBtb250aEZyb21QaWNrKTtcbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICcucG11LW1vbnRocyA+IGRpdjpudGgtY2hpbGQoMSknLCB0cnVlKTtcblxuICAvLyBPcGVuIFllYXIgb3B0aW9ucy5cbiAgLy8gVXNlIHNhbWUgc2VsZWN0b3IuLi4gWWFoYXYga25vd3Mgd2h5Li4uXG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBtb250aEZyb21QaWNrLCB0cnVlKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgbW9udGhGcm9tUGljayk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnLnBtdS15ZWFycyA+IGRpdjpudGgtY2hpbGQoMSknLCB0cnVlKTtcblxuICAvLyBTZWxlY3QgeWVhciBmcm9tIGEgMTIgeWVhciBncmlkLlxuICBmb3IgKGxldCBpID0gMTsgaSA8IDEzOyBpICs9IDEpIHtcbiAgICBjb25zdCBzZWxlY3RvciA9IGAucG11LXllYXJzID4gZGl2Om50aC1jaGlsZCgke2l9KWA7XG4gICAgY29uc3QgeWVhciA9IGF3YWl0IHBhZ2UuJGV2YWwoc2VsZWN0b3IsIHkgPT4ge1xuICAgICAgcmV0dXJuICh5IGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQ7XG4gICAgfSk7XG4gICAgaWYgKHN0YXJ0RGF0ZVllYXIgPT09IHllYXIpIHtcbiAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIHNlbGVjdG9yKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNlbGVjdCBNb250aC5cbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICcucG11LW1vbnRocyA+IGRpdjpudGgtY2hpbGQoMSknLCB0cnVlKTtcbiAgLy8gVGhlIGZpcnN0IGVsZW1lbnQgKDEpIGlzIEphbnVhcnkuXG4gIGNvbnN0IG1vbnRoU2VsZWN0b3IgPSBgLnBtdS1tb250aHMgPiBkaXY6bnRoLWNoaWxkKCR7c3RhcnREYXRlTW9udGh9KWA7XG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIG1vbnRoU2VsZWN0b3IpO1xuXG4gIC8vIFNlbGVjdCBEYXkuXG4gIC8vIFRoZSBjYWxlbmRhciBncmlkIHNob3dzIDcgZGF5cyBhbmQgNiB3ZWVrcyA9IDQyIGRheXMuXG4gIC8vIEluIHRoZW9yeSwgdGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGggd2lsbCBiZSBpbiB0aGUgZmlyc3Qgcm93LlxuICAvLyBMZXQncyBjaGVjayBldmVyeXRoaW5nIGp1c3QgaW4gY2FzZS4uLlxuICBmb3IgKGxldCBpID0gMTsgaSA8IDQyOyBpICs9IDEpIHtcbiAgICBjb25zdCBzZWxlY3RvciA9IGAucG11LWRheXMgPiBkaXY6bnRoLWNoaWxkKCR7aX0pYDtcbiAgICBjb25zdCBkYXkgPSBhd2FpdCBwYWdlLiRldmFsKHNlbGVjdG9yLCBkID0+IHtcbiAgICAgIHJldHVybiAoZCBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0O1xuICAgIH0pO1xuXG4gICAgaWYgKHN0YXJ0RGF0ZURheSA9PT0gZGF5KSB7XG4gICAgICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCBzZWxlY3Rvcik7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hBY2NvdW50RGF0YShcbiAgcGFnZTogUGFnZSxcbiAgc3RhcnREYXRlOiBNb21lbnQsXG4gIGFjY291bnRJRDogc3RyaW5nLFxuICBvcHRpb25zPzogU2NyYXBlck9wdGlvbnMsXG4pOiBQcm9taXNlPFRyYW5zYWN0aW9uc0FjY291bnQ+IHtcbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudERpc2FwcGVhcihwYWdlLCAnLmxvYWRpbmctYmFyLXNwaW5uZXInKTtcbiAgYXdhaXQgc2VhcmNoQnlEYXRlcyhwYWdlLCBzdGFydERhdGUpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50RGlzYXBwZWFyKHBhZ2UsICcubG9hZGluZy1iYXItc3Bpbm5lcicpO1xuICBjb25zdCB0eG5zID0gYXdhaXQgZ2V0QWNjb3VudFRyYW5zYWN0aW9ucyhwYWdlLCBvcHRpb25zKTtcblxuICByZXR1cm4ge1xuICAgIGFjY291bnROdW1iZXI6IGFjY291bnRJRCxcbiAgICB0eG5zLFxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFjY291bnRzKHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50LCBvcHRpb25zPzogU2NyYXBlck9wdGlvbnMpOiBQcm9taXNlPFRyYW5zYWN0aW9uc0FjY291bnRbXT4ge1xuICBjb25zdCBhY2NvdW50czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG5cbiAgLy8gVE9ETzogZ2V0IG1vcmUgYWNjb3VudHMuIE5vdCBzdXJlIGlzIHN1cHBvcnRlZC5cbiAgY29uc3QgYWNjb3VudElEID0gYXdhaXQgZ2V0QWNjb3VudElEKHBhZ2UpO1xuICBjb25zdCBhY2NvdW50RGF0YSA9IGF3YWl0IGZldGNoQWNjb3VudERhdGEocGFnZSwgc3RhcnREYXRlLCBhY2NvdW50SUQsIG9wdGlvbnMpO1xuICBhY2NvdW50cy5wdXNoKGFjY291bnREYXRhKTtcblxuICByZXR1cm4gYWNjb3VudHM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdhaXRSZWFkaW5lc3NGb3JBbGwocGFnZTogUGFnZSkge1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgYCR7VVNFUl9FTEVNfWAsIHRydWUpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgYCR7UEFTU1dEX0VMRU19YCwgdHJ1ZSk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBgJHtOQVRJT05BTElEX0VMRU19YCwgdHJ1ZSk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBgJHtTVUJNSVRfTE9HSU5fU0VMRUNUT1J9YCwgdHJ1ZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZGlyZWN0T3JEaWFsb2cocGFnZTogUGFnZSkge1xuICAvLyBDbGljayBvbiBiYW5rIG1lc3NhZ2VzIGlmIGFueS5cbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIocGFnZSwgJy5sb2FkaW5nLWJhci1zcGlubmVyJyk7XG4gIGNvbnN0IGhhc01lc3NhZ2UgPSBhd2FpdCBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCAnLm1lc3NhZ2luZy1saW5rcy1jb250YWluZXInKTtcbiAgaWYgKGhhc01lc3NhZ2UpIHtcbiAgICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCAnLmxpbmstMScpO1xuICB9XG5cbiAgY29uc3QgcHJvbWlzZTEgPSBwYWdlLndhaXRGb3JTZWxlY3RvcihBQ0NPVU5UX0RFVEFJTFNfU0VMRUNUT1IsIHsgdGltZW91dDogMzAwMDAgfSk7XG4gIGNvbnN0IHByb21pc2UyID0gcGFnZS53YWl0Rm9yU2VsZWN0b3IoQ0hBTkdFX1BBU1NXT1JEX09MRF9QQVNTLCB7IHRpbWVvdXQ6IDMwMDAwIH0pO1xuICBjb25zdCBwcm9taXNlcyA9IFtwcm9taXNlMSwgcHJvbWlzZTJdO1xuXG4gIGF3YWl0IFByb21pc2UucmFjZShwcm9taXNlcyk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIocGFnZSwgJy5sb2FkaW5nLWJhci1zcGlubmVyJyk7XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IHVzZXJuYW1lOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmc7IG5hdGlvbmFsSUQ6IHN0cmluZyB9O1xuXG5jbGFzcyBZYWhhdlNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyPFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzPiB7XG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IGAke0xPR0lOX1VSTH1gLFxuICAgICAgZmllbGRzOiBbXG4gICAgICAgIHsgc2VsZWN0b3I6IGAke1VTRVJfRUxFTX1gLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICAgICAgeyBzZWxlY3RvcjogYCR7UEFTU1dEX0VMRU19YCwgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gICAgICAgIHsgc2VsZWN0b3I6IGAke05BVElPTkFMSURfRUxFTX1gLCB2YWx1ZTogY3JlZGVudGlhbHMubmF0aW9uYWxJRCB9LFxuICAgICAgXSxcbiAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiBgJHtTVUJNSVRfTE9HSU5fU0VMRUNUT1J9YCxcbiAgICAgIGNoZWNrUmVhZGluZXNzOiBhc3luYyAoKSA9PiB3YWl0UmVhZGluZXNzRm9yQWxsKHRoaXMucGFnZSksXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiByZWRpcmVjdE9yRGlhbG9nKHRoaXMucGFnZSksXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHRoaXMucGFnZSksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICAvLyBHb3RvIHN0YXRlbWVudHMgcGFnZVxuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsIEFDQ09VTlRfREVUQUlMU19TRUxFQ1RPUiwgdHJ1ZSk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCBBQ0NPVU5UX0RFVEFJTFNfU0VMRUNUT1IpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcuc3RhdGVtZW50LW9wdGlvbnMgLnNlbGVjdGVkLWl0ZW0tdG9wJywgdHJ1ZSk7XG5cbiAgICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgzLCAnbW9udGhzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBzdGFydERhdGUgPSB0aGlzLm9wdGlvbnMuc3RhcnREYXRlIHx8IGRlZmF1bHRTdGFydE1vbWVudC50b0RhdGUoKTtcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG5cbiAgICBjb25zdCBhY2NvdW50cyA9IGF3YWl0IGZldGNoQWNjb3VudHModGhpcy5wYWdlLCBzdGFydE1vbWVudCwgdGhpcy5vcHRpb25zKTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBZYWhhdlNjcmFwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLHFCQUFBLEdBQUFGLE9BQUE7QUFPQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxhQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyx1QkFBQSxHQUFBTCxPQUFBO0FBQThHLFNBQUFELHVCQUFBTyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRzlHLE1BQU1HLFNBQVMsR0FBRyxrQ0FBa0M7QUFDcEQsTUFBTUMsUUFBUSxHQUFHLDZEQUE2RDtBQUM5RSxNQUFNQyx3QkFBd0IsR0FBRyxvQkFBb0I7QUFDckQsTUFBTUMsd0JBQXdCLEdBQUcsdUNBQXVDO0FBQ3hFLE1BQU1DLGdCQUFnQixHQUFHLEdBQUdILFFBQVEsV0FBVztBQUUvQyxNQUFNSSxtQkFBbUIsR0FBRyw4RUFBOEU7QUFDMUcsTUFBTUMsd0JBQXdCLEdBQUcsa0JBQWtCO0FBQ25ELE1BQU1DLFdBQVcsR0FBRyxZQUFZO0FBRWhDLE1BQU1DLFNBQVMsR0FBRyxXQUFXO0FBQzdCLE1BQU1DLFdBQVcsR0FBRyxXQUFXO0FBQy9CLE1BQU1D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
|
|
252
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX2VsZW1lbnRzSW50ZXJhY3Rpb25zIiwiX25hdmlnYXRpb24iLCJfdHJhbnNhY3Rpb25zIiwiX3RyYW5zYWN0aW9uczIiLCJfYmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkxPR0lOX1VSTCIsIkJBU0VfVVJMIiwiSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SIiwiQ0hBTkdFX1BBU1NXT1JEX09MRF9QQVNTIiwiQkFTRV9XRUxDT01FX1VSTCIsIkFDQ09VTlRfSURfU0VMRUNUT1IiLCJBQ0NPVU5UX0RFVEFJTFNfU0VMRUNUT1IiLCJEQVRFX0ZPUk1BVCIsIlVTRVJfRUxFTSIsIlBBU1NXRF9FTEVNIiwiTkFUSU9OQUxJRF9FTEVNIiwiU1VCTUlUX0xPR0lOX1NFTEVDVE9SIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJwYWdlIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJlbGVtZW50UHJlc2VudE9uUGFnZSIsIkNoYW5nZVBhc3N3b3JkIiwiZ2V0QWNjb3VudElEIiwic2VsZWN0ZWRTbmlmQWNjb3VudCIsIiRldmFsIiwiZWxlbWVudCIsInRleHRDb250ZW50IiwiZXJyb3IiLCJlcnJvck1lc3NhZ2UiLCJFcnJvciIsIm1lc3NhZ2UiLCJTdHJpbmciLCJnZXRBbW91bnREYXRhIiwiYW1vdW50U3RyIiwiYW1vdW50U3RyQ29weSIsInJlcGxhY2UiLCJwYXJzZUZsb2F0IiwiZ2V0VHhuQW1vdW50IiwidHhuIiwiY3JlZGl0IiwiZGViaXQiLCJOdW1iZXIiLCJpc05hTiIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwib3B0aW9ucyIsIm1hcCIsImNvbnZlcnRlZERhdGUiLCJtb21lbnQiLCJkYXRlIiwidG9JU09TdHJpbmciLCJjb252ZXJ0ZWRBbW91bnQiLCJyZXN1bHQiLCJ0eXBlIiwiVHJhbnNhY3Rpb25UeXBlcyIsIk5vcm1hbCIsImlkZW50aWZpZXIiLCJyZWZlcmVuY2UiLCJwYXJzZUludCIsInVuZGVmaW5lZCIsInByb2Nlc3NlZERhdGUiLCJvcmlnaW5hbEFtb3VudCIsIm9yaWdpbmFsQ3VycmVuY3kiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJjaGFyZ2VkQW1vdW50Iiwic3RhdHVzIiwiZGVzY3JpcHRpb24iLCJtZW1vIiwiaW5jbHVkZVJhd1RyYW5zYWN0aW9uIiwicmF3VHJhbnNhY3Rpb24iLCJnZXRSYXdUcmFuc2FjdGlvbiIsImhhbmRsZVRyYW5zYWN0aW9uUm93IiwidHhuUm93IiwiZGl2IiwiaW5uZXJEaXZzIiwicmVnZXgiLCJ0eCIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJDb21wbGV0ZWQiLCJwdXNoIiwiZ2V0QWNjb3VudFRyYW5zYWN0aW9ucyIsIndhaXRVbnRpbEVsZW1lbnRGb3VuZCIsInRyYW5zYWN0aW9uc0RpdnMiLCJwYWdlRXZhbEFsbCIsImRpdnMiLCJpZCIsImdldEF0dHJpYnV0ZSIsIkFycmF5IiwiZnJvbSIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiZWwiLCJpbm5lclRleHQiLCJzZWFyY2hCeURhdGVzIiwic3RhcnREYXRlIiwic3RhcnREYXRlRGF5IiwiZm9ybWF0Iiwic3RhcnREYXRlTW9udGgiLCJzdGFydERhdGVZZWFyIiwiZGF0ZUZyb21QaWNrIiwiY2xpY2tCdXR0b24iLCJtb250aEZyb21QaWNrIiwiaSIsInNlbGVjdG9yIiwieWVhciIsInkiLCJtb250aFNlbGVjdG9yIiwiZGF5IiwiZCIsImZldGNoQWNjb3VudERhdGEiLCJhY2NvdW50SUQiLCJ3YWl0VW50aWxFbGVtZW50RGlzYXBwZWFyIiwiYWNjb3VudE51bWJlciIsImZldGNoQWNjb3VudHMiLCJhY2NvdW50cyIsImFjY291bnREYXRhIiwid2FpdFJlYWRpbmVzc0ZvckFsbCIsInJlZGlyZWN0T3JEaWFsb2ciLCJ3YWl0Rm9yTmF2aWdhdGlvbiIsImhhc01lc3NhZ2UiLCJwcm9taXNlMSIsIndhaXRGb3JTZWxlY3RvciIsInRpbWVvdXQiLCJwcm9taXNlMiIsInByb21pc2VzIiwiUHJvbWlzZSIsInJhY2UiLCJZYWhhdlNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwiY3JlZGVudGlhbHMiLCJsb2dpblVybCIsImZpZWxkcyIsInZhbHVlIiwidXNlcm5hbWUiLCJwYXNzd29yZCIsIm5hdGlvbmFsSUQiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNoZWNrUmVhZGluZXNzIiwicG9zdEFjdGlvbiIsInBvc3NpYmxlUmVzdWx0cyIsImZldGNoRGF0YSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0IiwiYWRkIiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtYXgiLCJzdWNjZXNzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmFwZXJzL3lhaGF2LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQsIHsgdHlwZSBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgdHlwZSBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBjbGlja0J1dHRvbixcbiAgZWxlbWVudFByZXNlbnRPblBhZ2UsXG4gIHBhZ2VFdmFsQWxsLFxuICB3YWl0VW50aWxFbGVtZW50RGlzYXBwZWFyLFxuICB3YWl0VW50aWxFbGVtZW50Rm91bmQsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IGdldFJhd1RyYW5zYWN0aW9uIH0gZnJvbSAnLi4vaGVscGVycy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcywgdHlwZSBUcmFuc2FjdGlvbiwgdHlwZSBUcmFuc2FjdGlvbnNBY2NvdW50IH0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgdHlwZSBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyB0eXBlIFNjcmFwZXJPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuXG5jb25zdCBMT0dJTl9VUkwgPSAnaHR0cHM6Ly9sb2dpbi55YWhhdi5jby5pbC9sb2dpbi8nO1xuY29uc3QgQkFTRV9VUkwgPSAnaHR0cHM6Ly9kaWdpdGFsLnlhaGF2LmNvLmlsL0JhTkNTRGlnaXRhbFVJL2FwcC9pbmRleC5odG1sIy8nO1xuY29uc3QgSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SID0gJy51aS1kaWFsb2ctYnV0dG9ucyc7XG5jb25zdCBDSEFOR0VfUEFTU1dPUkRfT0xEX1BBU1MgPSAnaW5wdXQjZWZfcmVxX3BhcmFtZXRlcl9vbGRfY3JlZGVudGlhbCc7XG5jb25zdCBCQVNFX1dFTENPTUVfVVJMID0gYCR7QkFTRV9VUkx9bWFpbi9ob21lYDtcblxuY29uc3QgQUNDT1VOVF9JRF9TRUxFQ1RPUiA9ICdzcGFuLnBvcnRmb2xpby12YWx1ZVtuZy1pZj1cIm1haW5Db250cm9sbGVyLmRhdGEucG9ydGZvbGlvTGlzdC5sZW5ndGggPT09IDFcIl0nO1xuY29uc3QgQUNDT1VOVF9ERVRBSUxTX1NFTEVDVE9SID0gJy5hY2NvdW50LWRldGFpbHMnO1xuY29uc3QgREFURV9GT1JNQVQgPSAnREQvTU0vWVlZWSc7XG5cbmNvbnN0IFVTRVJfRUxFTSA9ICcjdXNlcm5hbWUnO1xuY29uc3QgUEFTU1dEX0VMRU0gPSAnI3Bhc3N3b3JkJztcbmNvbnN0IE5BVElPTkFMSURfRUxFTSA9ICcjcGlubm8nO1xuY29uc3QgU1VCTUlUX0xPR0lOX1NFTEVDVE9SID0gJy5idG4nO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgY3JlZGl0OiBzdHJpbmc7XG4gIGRlYml0OiBzdHJpbmc7XG4gIGRhdGU6IHN0cmluZztcbiAgcmVmZXJlbmNlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBtZW1vOiBzdHJpbmc7XG4gIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcztcbn1cblxuZnVuY3Rpb24gZ2V0UG9zc2libGVMb2dpblJlc3VsdHMocGFnZTogUGFnZSk6IFBvc3NpYmxlTG9naW5SZXN1bHRzIHtcbiAgLy8gY2hlY2tvdXQgZmlsZSBgYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlci50c2AgZm9yIGF2YWlsYWJsZSByZXN1bHQgdHlwZXNcbiAgY29uc3QgdXJsczogUG9zc2libGVMb2dpblJlc3VsdHMgPSB7fTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuU3VjY2Vzc10gPSBbYCR7QkFTRV9XRUxDT01FX1VSTH1gXTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuSW52YWxpZFBhc3N3b3JkXSA9IFtcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gZWxlbWVudFByZXNlbnRPblBhZ2UocGFnZSwgYCR7SU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SfWApO1xuICAgIH0sXG4gIF07XG5cbiAgdXJsc1tMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdID0gW1xuICAgIGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBgJHtDSEFOR0VfUEFTU1dPUkRfT0xEX1BBU1N9YCk7XG4gICAgfSxcbiAgXTtcblxuICByZXR1cm4gdXJscztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWNjb3VudElEKHBhZ2U6IFBhZ2UpOiBQcm9taXNlPHN0cmluZz4ge1xuICB0cnkge1xuICAgIGNvbnN0IHNlbGVjdGVkU25pZkFjY291bnQgPSBhd2FpdCBwYWdlLiRldmFsKEFDQ09VTlRfSURfU0VMRUNUT1IsIChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgICByZXR1cm4gZWxlbWVudC50ZXh0Q29udGVudCBhcyBzdHJpbmc7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2VsZWN0ZWRTbmlmQWNjb3VudDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEZhaWxlZCB0byByZXRyaWV2ZSBhY2NvdW50IElELiBQb3NzaWJsZSBvdXRkYXRlZCBzZWxlY3RvciAnJHtBQ0NPVU5UX0lEX1NFTEVDVE9SfTogJHtlcnJvck1lc3NhZ2V9YCxcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEFtb3VudERhdGEoYW1vdW50U3RyOiBzdHJpbmcpIHtcbiAgY29uc3QgYW1vdW50U3RyQ29weSA9IGFtb3VudFN0ci5yZXBsYWNlKCcsJywgJycpO1xuICByZXR1cm4gcGFyc2VGbG9hdChhbW91bnRTdHJDb3B5KTtcbn1cblxuZnVuY3Rpb24gZ2V0VHhuQW1vdW50KHR4bjogU2NyYXBlZFRyYW5zYWN0aW9uKSB7XG4gIGNvbnN0IGNyZWRpdCA9IGdldEFtb3VudERhdGEodHhuLmNyZWRpdCk7XG4gIGNvbnN0IGRlYml0ID0gZ2V0QW1vdW50RGF0YSh0eG4uZGViaXQpO1xuICByZXR1cm4gKE51bWJlci5pc05hTihjcmVkaXQpID8gMCA6IGNyZWRpdCkgLSAoTnVtYmVyLmlzTmFOKGRlYml0KSA/IDAgOiBkZWJpdCk7XG59XG5cbnR5cGUgVHJhbnNhY3Rpb25zVHIgPSB7IGlkOiBzdHJpbmc7IGlubmVyRGl2czogc3RyaW5nW10gfTtcblxuZnVuY3Rpb24gY29udmVydFRyYW5zYWN0aW9ucyh0eG5zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXSwgb3B0aW9ucz86IFNjcmFwZXJPcHRpb25zKTogVHJhbnNhY3Rpb25bXSB7XG4gIHJldHVybiB0eG5zLm1hcCh0eG4gPT4ge1xuICAgIGNvbnN0IGNvbnZlcnRlZERhdGUgPSBtb21lbnQodHhuLmRhdGUsIERBVEVfRk9STUFUKS50b0lTT1N0cmluZygpO1xuICAgIGNvbnN0IGNvbnZlcnRlZEFtb3VudCA9IGdldFR4bkFtb3VudCh0eG4pO1xuICAgIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb24gPSB7XG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICAgIGlkZW50aWZpZXI6IHR4bi5yZWZlcmVuY2UgPyBwYXJzZUludCh0eG4ucmVmZXJlbmNlLCAxMCkgOiB1bmRlZmluZWQsXG4gICAgICBkYXRlOiBjb252ZXJ0ZWREYXRlLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogY29udmVydGVkRGF0ZSxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiBjb252ZXJ0ZWRBbW91bnQsXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiBTSEVLRUxfQ1VSUkVOQ1ksXG4gICAgICBjaGFyZ2VkQW1vdW50OiBjb252ZXJ0ZWRBbW91bnQsXG4gICAgICBzdGF0dXM6IHR4bi5zdGF0dXMsXG4gICAgICBkZXNjcmlwdGlvbjogdHhuLmRlc2NyaXB0aW9uLFxuICAgICAgbWVtbzogdHhuLm1lbW8sXG4gICAgfTtcblxuICAgIGlmIChvcHRpb25zPy5pbmNsdWRlUmF3VHJhbnNhY3Rpb24pIHtcbiAgICAgIHJlc3VsdC5yYXdUcmFuc2FjdGlvbiA9IGdldFJhd1RyYW5zYWN0aW9uKHR4bik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZVRyYW5zYWN0aW9uUm93KHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdLCB0eG5Sb3c6IFRyYW5zYWN0aW9uc1RyKSB7XG4gIGNvbnN0IGRpdiA9IHR4blJvdy5pbm5lckRpdnM7XG5cbiAgLy8gUmVtb3ZlIGFueXRoaW5nIGV4Y2VwdCBkaWdpdHMuXG4gIGNvbnN0IHJlZ2V4ID0gL1xcRCsvZ207XG5cbiAgY29uc3QgdHg6IFNjcmFwZWRUcmFuc2FjdGlvbiA9IHtcbiAgICBkYXRlOiBkaXZbMV0sXG4gICAgcmVmZXJlbmNlOiBkaXZbMl0ucmVwbGFjZShyZWdleCwgJycpLFxuICAgIG1lbW86ICcnLFxuICAgIGRlc2NyaXB0aW9uOiBkaXZbM10sXG4gICAgZGViaXQ6IGRpdls0XSxcbiAgICBjcmVkaXQ6IGRpdls1XSxcbiAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICB9O1xuXG4gIHR4bnMucHVzaCh0eCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFjY291bnRUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgb3B0aW9ucz86IFNjcmFwZXJPcHRpb25zKTogUHJvbWlzZTxUcmFuc2FjdGlvbltdPiB7XG4gIC8vIFdhaXQgZm9yIHRyYW5zYWN0aW9ucy5cbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICcudW5kZXItbGluZS10eG4tdGFibGUtaGVhZGVyJywgdHJ1ZSk7XG5cbiAgY29uc3QgdHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10gPSBbXTtcbiAgY29uc3QgdHJhbnNhY3Rpb25zRGl2cyA9IGF3YWl0IHBhZ2VFdmFsQWxsPFRyYW5zYWN0aW9uc1RyW10+KFxuICAgIHBhZ2UsXG4gICAgJy5saXN0LWl0ZW0taG9sZGVyIC5lbnRpcmUtY29udGVudC1jdHInLFxuICAgIFtdLFxuICAgIGRpdnMgPT4ge1xuICAgICAgcmV0dXJuIChkaXZzIGFzIEhUTUxFbGVtZW50W10pLm1hcChkaXYgPT4gKHtcbiAgICAgICAgaWQ6IGRpdi5nZXRBdHRyaWJ1dGUoJ2lkJykgfHwgJycsXG4gICAgICAgIGlubmVyRGl2czogQXJyYXkuZnJvbShkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpKS5tYXAoZWwgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5pbm5lclRleHQpLFxuICAgICAgfSkpO1xuICAgIH0sXG4gICk7XG5cbiAgZm9yIChjb25zdCB0eG5Sb3cgb2YgdHJhbnNhY3Rpb25zRGl2cykge1xuICAgIGhhbmRsZVRyYW5zYWN0aW9uUm93KHR4bnMsIHR4blJvdyk7XG4gIH1cblxuICByZXR1cm4gY29udmVydFRyYW5zYWN0aW9ucyh0eG5zLCBvcHRpb25zKTtcbn1cblxuLy8gTWFuaXB1bGF0ZSB0aGUgY2FsZW5kYXIgZHJvcCBkb3duIHRvIGNob29zZSB0aGUgdHhzIHN0YXJ0IGRhdGUuXG5hc3luYyBmdW5jdGlvbiBzZWFyY2hCeURhdGVzKHBhZ2U6IFBhZ2UsIHN0YXJ0RGF0ZTogTW9tZW50KSB7XG4gIC8vIEdldCB0aGUgZGF5IG51bWJlciBmcm9tIHN0YXJ0RGF0ZS4gMS0zMSAodXN1YWxseSAxKVxuICBjb25zdCBzdGFydERhdGVEYXkgPSBzdGFydERhdGUuZm9ybWF0KCdEJyk7XG4gIGNvbnN0IHN0YXJ0RGF0ZU1vbnRoID0gc3RhcnREYXRlLmZvcm1hdCgnTScpO1xuICBjb25zdCBzdGFydERhdGVZZWFyID0gc3RhcnREYXRlLmZvcm1hdCgnWScpO1xuXG4gIC8vIE9wZW4gdGhlIGNhbGVuZGFyIGRhdGUgcGlja2VyXG4gIGNvbnN0IGRhdGVGcm9tUGljayA9XG4gICAgJ2Rpdi5kYXRlLW9wdGlvbnMtY2VsbDpudGgtY2hpbGQoNykgPiBkYXRlLXBpY2tlcjpudGgtY2hpbGQoMSkgPiBkaXY6bnRoLWNoaWxkKDEpID4gc3BhbjpudGgtY2hpbGQoMiknO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgZGF0ZUZyb21QaWNrLCB0cnVlKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgZGF0ZUZyb21QaWNrKTtcblxuICAvLyBXYWl0IHVudGlsIGZpcnN0IGRheSBhcHBlYXIuXG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnLnBtdS1kYXlzID4gZGl2Om50aC1jaGlsZCgxKScsIHRydWUpO1xuXG4gIC8vIE9wZW4gTW9udGhzIG9wdGlvbnMuXG4gIGNvbnN0IG1vbnRoRnJvbVBpY2sgPSAnLnBtdS1tb250aCc7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBtb250aEZyb21QaWNrLCB0cnVlKTtcbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgbW9udGhGcm9tUGljayk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnLnBtdS1tb250aHMgPiBkaXY6bnRoLWNoaWxkKDEpJywgdHJ1ZSk7XG5cbiAgLy8gT3BlbiBZZWFyIG9wdGlvbnMuXG4gIC8vIFVzZSBzYW1lIHNlbGVjdG9yLi4uIFlhaGF2IGtub3dzIHdoeS4uLlxuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgbW9udGhGcm9tUGljaywgdHJ1ZSk7XG4gIGF3YWl0IGNsaWNrQnV0dG9uKHBhZ2UsIG1vbnRoRnJvbVBpY2spO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJy5wbXUteWVhcnMgPiBkaXY6bnRoLWNoaWxkKDEpJywgdHJ1ZSk7XG5cbiAgLy8gU2VsZWN0IHllYXIgZnJvbSBhIDEyIHllYXIgZ3JpZC5cbiAgZm9yIChsZXQgaSA9IDE7IGkgPCAxMzsgaSArPSAxKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBgLnBtdS15ZWFycyA+IGRpdjpudGgtY2hpbGQoJHtpfSlgO1xuICAgIGNvbnN0IHllYXIgPSBhd2FpdCBwYWdlLiRldmFsKHNlbGVjdG9yLCB5ID0+IHtcbiAgICAgIHJldHVybiAoeSBhcyBIVE1MRWxlbWVudCkuaW5uZXJUZXh0O1xuICAgIH0pO1xuICAgIGlmIChzdGFydERhdGVZZWFyID09PSB5ZWFyKSB7XG4gICAgICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCBzZWxlY3Rvcik7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvLyBTZWxlY3QgTW9udGguXG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnLnBtdS1tb250aHMgPiBkaXY6bnRoLWNoaWxkKDEpJywgdHJ1ZSk7XG4gIC8vIFRoZSBmaXJzdCBlbGVtZW50ICgxKSBpcyBKYW51YXJ5LlxuICBjb25zdCBtb250aFNlbGVjdG9yID0gYC5wbXUtbW9udGhzID4gZGl2Om50aC1jaGlsZCgke3N0YXJ0RGF0ZU1vbnRofSlgO1xuICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCBtb250aFNlbGVjdG9yKTtcblxuICAvLyBTZWxlY3QgRGF5LlxuICAvLyBUaGUgY2FsZW5kYXIgZ3JpZCBzaG93cyA3IGRheXMgYW5kIDYgd2Vla3MgPSA0MiBkYXlzLlxuICAvLyBJbiB0aGVvcnksIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoIHdpbGwgYmUgaW4gdGhlIGZpcnN0IHJvdy5cbiAgLy8gTGV0J3MgY2hlY2sgZXZlcnl0aGluZyBqdXN0IGluIGNhc2UuLi5cbiAgZm9yIChsZXQgaSA9IDE7IGkgPCA0MjsgaSArPSAxKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBgLnBtdS1kYXlzID4gZGl2Om50aC1jaGlsZCgke2l9KWA7XG4gICAgY29uc3QgZGF5ID0gYXdhaXQgcGFnZS4kZXZhbChzZWxlY3RvciwgZCA9PiB7XG4gICAgICByZXR1cm4gKGQgYXMgSFRNTEVsZW1lbnQpLmlubmVyVGV4dDtcbiAgICB9KTtcblxuICAgIGlmIChzdGFydERhdGVEYXkgPT09IGRheSkge1xuICAgICAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgc2VsZWN0b3IpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoQWNjb3VudERhdGEoXG4gIHBhZ2U6IFBhZ2UsXG4gIHN0YXJ0RGF0ZTogTW9tZW50LFxuICBhY2NvdW50SUQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IFNjcmFwZXJPcHRpb25zLFxuKTogUHJvbWlzZTxUcmFuc2FjdGlvbnNBY2NvdW50PiB7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIocGFnZSwgJy5sb2FkaW5nLWJhci1zcGlubmVyJyk7XG4gIGF3YWl0IHNlYXJjaEJ5RGF0ZXMocGFnZSwgc3RhcnREYXRlKTtcbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudERpc2FwcGVhcihwYWdlLCAnLmxvYWRpbmctYmFyLXNwaW5uZXInKTtcbiAgY29uc3QgdHhucyA9IGF3YWl0IGdldEFjY291bnRUcmFuc2FjdGlvbnMocGFnZSwgb3B0aW9ucyk7XG5cbiAgcmV0dXJuIHtcbiAgICBhY2NvdW50TnVtYmVyOiBhY2NvdW50SUQsXG4gICAgdHhucyxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hBY2NvdW50cyhwYWdlOiBQYWdlLCBzdGFydERhdGU6IE1vbWVudCwgb3B0aW9ucz86IFNjcmFwZXJPcHRpb25zKTogUHJvbWlzZTxUcmFuc2FjdGlvbnNBY2NvdW50W10+IHtcbiAgY29uc3QgYWNjb3VudHM6IFRyYW5zYWN0aW9uc0FjY291bnRbXSA9IFtdO1xuXG4gIC8vIFRPRE86IGdldCBtb3JlIGFjY291bnRzLiBOb3Qgc3VyZSBpcyBzdXBwb3J0ZWQuXG4gIGNvbnN0IGFjY291bnRJRCA9IGF3YWl0IGdldEFjY291bnRJRChwYWdlKTtcbiAgY29uc3QgYWNjb3VudERhdGEgPSBhd2FpdCBmZXRjaEFjY291bnREYXRhKHBhZ2UsIHN0YXJ0RGF0ZSwgYWNjb3VudElELCBvcHRpb25zKTtcbiAgYWNjb3VudHMucHVzaChhY2NvdW50RGF0YSk7XG5cbiAgcmV0dXJuIGFjY291bnRzO1xufVxuXG5hc3luYyBmdW5jdGlvbiB3YWl0UmVhZGluZXNzRm9yQWxsKHBhZ2U6IFBhZ2UpIHtcbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsIGAke1VTRVJfRUxFTX1gLCB0cnVlKTtcbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsIGAke1BBU1NXRF9FTEVNfWAsIHRydWUpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgYCR7TkFUSU9OQUxJRF9FTEVNfWAsIHRydWUpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgYCR7U1VCTUlUX0xPR0lOX1NFTEVDVE9SfWAsIHRydWUpO1xufVxuXG5hc3luYyBmdW5jdGlvbiByZWRpcmVjdE9yRGlhbG9nKHBhZ2U6IFBhZ2UpIHtcbiAgLy8gQ2xpY2sgb24gYmFuayBtZXNzYWdlcyBpZiBhbnkuXG4gIGF3YWl0IHdhaXRGb3JOYXZpZ2F0aW9uKHBhZ2UpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50RGlzYXBwZWFyKHBhZ2UsICcubG9hZGluZy1iYXItc3Bpbm5lcicpO1xuICBjb25zdCBoYXNNZXNzYWdlID0gYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UocGFnZSwgJy5tZXNzYWdpbmctbGlua3MtY29udGFpbmVyJyk7XG4gIGlmIChoYXNNZXNzYWdlKSB7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgJy5saW5rLTEnKTtcbiAgfVxuXG4gIGNvbnN0IHByb21pc2UxID0gcGFnZS53YWl0Rm9yU2VsZWN0b3IoQUNDT1VOVF9ERVRBSUxTX1NFTEVDVE9SLCB7IHRpbWVvdXQ6IDMwMDAwIH0pO1xuICBjb25zdCBwcm9taXNlMiA9IHBhZ2Uud2FpdEZvclNlbGVjdG9yKENIQU5HRV9QQVNTV09SRF9PTERfUEFTUywgeyB0aW1lb3V0OiAzMDAwMCB9KTtcbiAgY29uc3QgcHJvbWlzZXMgPSBbcHJvbWlzZTEsIHByb21pc2UyXTtcblxuICBhd2FpdCBQcm9taXNlLnJhY2UocHJvbWlzZXMpO1xuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50RGlzYXBwZWFyKHBhZ2UsICcubG9hZGluZy1iYXItc3Bpbm5lcicpO1xufVxuXG50eXBlIFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzID0geyB1c2VybmFtZTogc3RyaW5nOyBwYXNzd29yZDogc3RyaW5nOyBuYXRpb25hbElEOiBzdHJpbmcgfTtcblxuY2xhc3MgWWFoYXZTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBgJHtMT0dJTl9VUkx9YCxcbiAgICAgIGZpZWxkczogW1xuICAgICAgICB7IHNlbGVjdG9yOiBgJHtVU0VSX0VMRU19YCwgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgICAgIHsgc2VsZWN0b3I6IGAke1BBU1NXRF9FTEVNfWAsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICAgICAgICB7IHNlbGVjdG9yOiBgJHtOQVRJT05BTElEX0VMRU19YCwgdmFsdWU6IGNyZWRlbnRpYWxzLm5hdGlvbmFsSUQgfSxcbiAgICAgIF0sXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogYCR7U1VCTUlUX0xPR0lOX1NFTEVDVE9SfWAsXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4gd2FpdFJlYWRpbmVzc0ZvckFsbCh0aGlzLnBhZ2UpLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4gcmVkaXJlY3RPckRpYWxvZyh0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyh0aGlzLnBhZ2UpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgLy8gR290byBzdGF0ZW1lbnRzIHBhZ2VcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCBBQ0NPVU5UX0RFVEFJTFNfU0VMRUNUT1IsIHRydWUpO1xuICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgQUNDT1VOVF9ERVRBSUxTX1NFTEVDVE9SKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnLnN0YXRlbWVudC1vcHRpb25zIC5zZWxlY3RlZC1pdGVtLXRvcCcsIHRydWUpO1xuXG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMywgJ21vbnRocycpLmFkZCgxLCAnZGF5Jyk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gICAgY29uc3Qgc3RhcnRNb21lbnQgPSBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xuXG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBmZXRjaEFjY291bnRzKHRoaXMucGFnZSwgc3RhcnRNb21lbnQsIHRoaXMub3B0aW9ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgWWFoYXZTY3JhcGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxxQkFBQSxHQUFBRixPQUFBO0FBT0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksYUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sdUJBQUEsR0FBQU4sT0FBQTtBQUE4RyxTQUFBRCx1QkFBQVEsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUc5RyxNQUFNRyxTQUFTLEdBQUcsa0NBQWtDO0FBQ3BELE1BQU1DLFFBQVEsR0FBRyw2REFBNkQ7QUFDOUUsTUFBTUMsd0JBQXdCLEdBQUcsb0JBQW9CO0FBQ3JELE1BQU1DLHdCQUF3QixHQUFHLHVDQUF1QztBQUN4RSxNQUFNQyxnQkFBZ0IsR0FBRyxHQUFHSCxRQUFRLFdBQVc7QUFFL0MsTUFB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
|