@xsolla/payment-client-core 0.2.97 → 0.2.99
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/esm2022/lib/core/payment/actions/redirect/redirect.action.class.mjs +12 -4
- package/esm2022/lib/core/payment/actions/show-mobile-payment-screen/show-mobile-payment-screen.action.class.mjs +5 -2
- package/esm2022/lib/core/payment/actions/three-ds/three-ds.action.class.mjs +20 -5
- package/esm2022/lib/core/payment/payment.service.mjs +2 -1
- package/esm2022/lib/core/payment/three-ds/api/status-three-ds/three-ds-checkout-form.interface.mjs +1 -1
- package/esm2022/lib/core/payment/three-ds/reinsurance-check/reinsurance-check.service.mjs +2 -2
- package/esm2022/lib/core/payment/three-ds/reinsurance-check/timer.interface.mjs +1 -1
- package/esm2022/lib/core/sdk-payment-systems/sdk-payment-systems-initial-data.interface.mjs +1 -1
- package/esm2022/lib/core/settings/settings.interface.mjs +1 -1
- package/esm2022/lib/shared/payment-methods-id.variable.mjs +3 -1
- package/fesm2022/xsolla-payment-client-core.mjs +43 -17
- package/fesm2022/xsolla-payment-client-core.mjs.map +1 -1
- package/lib/core/payment/actions/show-mobile-payment-screen/show-mobile-payment-screen.action.class.d.ts +1 -0
- package/lib/core/payment/actions/three-ds/three-ds.action.class.d.ts +4 -0
- package/lib/core/payment/three-ds/api/status-three-ds/three-ds-checkout-form.interface.d.ts +4 -0
- package/lib/core/payment/three-ds/reinsurance-check/timer.interface.d.ts +1 -1
- package/lib/core/sdk-payment-systems/sdk-payment-systems-initial-data.interface.d.ts +1 -0
- package/lib/core/settings/settings.interface.d.ts +1 -0
- package/lib/shared/payment-methods-id.variable.d.ts +2 -0
- package/package.json +1 -1
- package/xsolla-payment-client-core-0.2.99.tgz +0 -0
- package/xsolla-payment-client-core-0.2.97.tgz +0 -0
|
@@ -4,6 +4,7 @@ import { pagesRoutes } from './ps4-pages/pages-routes.const';
|
|
|
4
4
|
import { payStation4Url, sandboxPayStationUrl } from './pay-station4-url.const';
|
|
5
5
|
import { acquirersWithRedirectInNewWindow } from './acquirers-with-redirect-in-new-window.const';
|
|
6
6
|
import { cardsWith3ds } from '../../credit-card-payment-methods-id.variable';
|
|
7
|
+
import { googlePayPid } from '../../../sdk-payment-systems/sdk-payment-methods.const';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "../../../settings/settings.service";
|
|
9
10
|
export class RedirectActionCreator {
|
|
@@ -49,21 +50,28 @@ export class RedirectActionCreator {
|
|
|
49
50
|
};
|
|
50
51
|
}
|
|
51
52
|
getIsNewWindowRequired(submitResponse) {
|
|
52
|
-
|
|
53
|
+
const pid = submitResponse?.parameters?.pid;
|
|
54
|
+
if (!cardsWith3ds.has(pid) && pid !== googlePayPid) {
|
|
53
55
|
return false;
|
|
54
56
|
}
|
|
55
57
|
const acquirer = submitResponse?.userSession?.payment_method_contr_id ?? null;
|
|
56
58
|
const isAcquirerWithRedirectInNewWindow = acquirer && acquirersWithRedirectInNewWindow.has(acquirer);
|
|
57
59
|
const cardBinCountry = submitResponse.parameters.cardBinCountry;
|
|
58
60
|
const isJapanCard = cardBinCountry === 'JP';
|
|
59
|
-
|
|
61
|
+
const isThreeDsIndependentWindow = this.settingsService.settings.is_three_ds_independent_windows ?? false;
|
|
62
|
+
return (isAcquirerWithRedirectInNewWindow ||
|
|
63
|
+
isJapanCard ||
|
|
64
|
+
isThreeDsIndependentWindow);
|
|
60
65
|
}
|
|
61
66
|
getIsSameWindowRequired(submitResponse) {
|
|
62
67
|
if (this.getIsNewWindowRequired(submitResponse)) {
|
|
63
68
|
return false;
|
|
64
69
|
}
|
|
70
|
+
const pid = submitResponse?.parameters?.pid;
|
|
71
|
+
const isCorrectPids = cardsWith3ds.has(pid) || googlePayPid === pid;
|
|
65
72
|
// 3DS with redirect case
|
|
66
|
-
return
|
|
73
|
+
return (isCorrectPids &&
|
|
74
|
+
!this.settingsService.settings.is_three_ds_independent_windows);
|
|
67
75
|
}
|
|
68
76
|
preparePagesUrl(pagesPath) {
|
|
69
77
|
const isSandbox = this.settingsService.isSandboxMode();
|
|
@@ -77,4 +85,4 @@ export class RedirectActionCreator {
|
|
|
77
85
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RedirectActionCreator, decorators: [{
|
|
78
86
|
type: Injectable
|
|
79
87
|
}], ctorParameters: () => [{ type: i1.SettingsService }] });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QuYWN0aW9uLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9hY3Rpb25zL3JlZGlyZWN0L3JlZGlyZWN0LmFjdGlvbi5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0RBQXdELENBQUM7OztBQUd0RixNQUFNLE9BQU8scUJBQXFCO0lBR2hDLFlBQW9DLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUZwRCxTQUFJLEdBQXVCLFVBQVUsQ0FBQztJQUVpQixDQUFDO0lBRWpFLGFBQWEsQ0FBQyxjQUE4QjtRQUNqRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRSxjQUFjLENBQUMsTUFBTTtnQkFDN0IsTUFBTSxFQUFFLGNBQWMsQ0FBQyxNQUFNO2dCQUM3QixRQUFRLEVBQUUsY0FBYyxDQUFDLFFBQVE7Z0JBQ2pDLEtBQUssRUFBRSxjQUFjLENBQUMsT0FBTztnQkFDN0IsU0FBUyxFQUFFLGNBQWMsQ0FBQyxVQUFVO2dCQUNwQyxRQUFRLEVBQUUsSUFBSSxDQUFD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Q0FBQyxTQUFpQjtRQUN2QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO1FBRXpDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUN4RSxPQUFPLEdBQUcsYUFBYSxNQUFNLFNBQVMsVUFBVSxLQUFLLEVBQUUsQ0FBQztJQUMxRCxDQUFDOzhHQXJHVSxxQkFBcUI7a0hBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1Ym1pdFJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vcmVxdWVzdHMvc3VibWl0L3Jlc3BvbnNlL3N1Ym1pdC1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBBY3Rpb25DcmVhdG9yIH0gZnJvbSAnLi4vYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBSZWRpcmVjdEFjdGlvbixcbiAgUmVkaXJlY3RBY3Rpb25EYXRhLFxuICBSZWRpcmVjdEFjdGlvblR5cGUsXG59IGZyb20gJy4vcmVkaXJlY3QuYWN0aW9uLnR5cGUnO1xuaW1wb3J0IHsgWHBzQ29tbWFuZCB9IGZyb20gJy4uLy4uL3hwcy1jb21hbmQuZW51bSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwYWdlc1JvdXRlcyB9IGZyb20gJy4vcHM0LXBhZ2VzL3BhZ2VzLXJvdXRlcy5jb25zdCc7XG5pbXBvcnQgeyBwYXlTdGF0aW9uNFVybCwgc2FuZGJveFBheVN0YXRpb25VcmwgfSBmcm9tICcuL3BheS1zdGF0aW9uNC11cmwuY29uc3QnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBhY3F1aXJlcnNXaXRoUmVkaXJlY3RJbk5ld1dpbmRvdyB9IGZyb20gJy4vYWNxdWlyZXJzLXdpdGgtcmVkaXJlY3QtaW4tbmV3LXdpbmRvdy5jb25zdCc7XG5pbXBvcnQgeyBjYXJkc1dpdGgzZHMgfSBmcm9tICcuLi8uLi9jcmVkaXQtY2FyZC1wYXltZW50LW1ldGhvZHMtaWQudmFyaWFibGUnO1xuaW1wb3J0IHsgZ29vZ2xlUGF5UGlkIH0gZnJvbSAnLi4vLi4vLi4vc2RrLXBheW1lbnQtc3lzdGVtcy9zZGstcGF5bWVudC1tZXRob2RzLmNvbnN0JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0QWN0aW9uQ3JlYXRvciBpbXBsZW1lbnRzIEFjdGlvbkNyZWF0b3Ige1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogUmVkaXJlY3RBY3Rpb25UeXBlID0gJ3JlZGlyZWN0JztcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSkge31cblxuICBwdWJsaWMgZ2V0QWN0aW9uRGF0YShzdWJtaXRSZXNwb25zZTogU3VibWl0UmVzcG9uc2UpOiBSZWRpcmVjdEFjdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZmllbGRzOiBzdWJtaXRSZXNwb25zZS5maWVsZHMsXG4gICAgICAgIGVycm9yczogc3VibWl0UmVzcG9uc2UuZXJyb3JzLFxuICAgICAgICBtZXNzYWdlczogc3VibWl0UmVzcG9uc2UubWVzc2FnZXMsXG4gICAgICAgIG9yZGVyOiBzdWJtaXRSZXNwb25zZS5zdW1tYXJ5LFxuICAgICAgICBpbnZvaWNlSWQ6IHN1Ym1pdFJlc3BvbnNlLmZpeEludm9pY2UsXG4gICAgICAgIHJlZGlyZWN0OiB0aGlzLmdldFJlZGlyZWN0KHN1Ym1pdFJlc3BvbnNlKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBpc1N1aXRhYmxlKHJlc3BvbnNlOiBTdWJtaXRSZXNwb25zZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICByZXNwb25zZS5jdXJyZW50Q29tbWFuZCA9PT0gWHBzQ29tbWFuZC5jaGVja291dCAmJlxuICAgICAgQm9vbGVhbihyZXNwb25zZS5wYXJhbWV0ZXJzLmNoZWNrb3V0KVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0UmVkaXJlY3RVcmwoc3VibWl0UmVzcG9uc2U6IFN1Ym1pdFJlc3BvbnNlKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXNwb25zZVJlZGlyZWN0VXJsID0gc3VibWl0UmVzcG9uc2UucGFyYW1ldGVycy5jaGVja291dC5hY3Rpb247XG5cbiAgICBjb25zdCBwaWQgPSBzdWJtaXRSZXNwb25zZT8uZmllbGRzPy5maW5kKFxuICAgICAgKHsgbmFtZSB9KSA9PiBuYW1lID09PSAnZml4X3BpZCdcbiAgICApPy52YWx1ZTtcbiAgICBpZiAoIXBpZCkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlUmVkaXJlY3RVcmw7XG4gICAgfVxuXG4gICAgY29uc3QgcGFnZXNQYXRoID0gcGFnZXNSb3V0ZXMuZ2V0KE51bWJlcihwaWQpKTtcbiAgICBpZiAoIXBhZ2VzUGF0aCkge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlUmVkaXJlY3RVcmw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHJlcGFyZVBhZ2VzVXJsKHBhZ2VzUGF0aCk7XG4gIH1cblxuICBwcml2YXRlIGdldFJlZGlyZWN0KFxuICAgIHN1Ym1pdFJlc3BvbnNlOiBTdWJtaXRSZXNwb25zZVxuICApOiBSZWRpcmVjdEFjdGlvbkRhdGFbJ3JlZGlyZWN0J10ge1xuICAgIHJldHVybiB7XG4gICAgICByZWRpcmVjdFVybDogdGhpcy5nZXRSZWRpcmVjdFVybChzdWJtaXRSZXNwb25zZSksXG4gICAgICBpc05ld1dpbmRvd1JlcXVpcmVkOiB0aGlzLmdldElzTmV3V2luZG93UmVxdWlyZWQoc3VibWl0UmVzcG9uc2UpLFxuICAgICAgaXNTYW1lV2luZG93UmVxdWlyZWQ6IHRoaXMuZ2V0SXNTYW1lV2luZG93UmVxdWlyZWQoc3VibWl0UmVzcG9uc2UpLFxuICAgICAgZGF0YTogc3VibWl0UmVzcG9uc2UucGFyYW1ldGVycy5jaGVja291dD8uZGF0YSA/PyB7fSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJc05ld1dpbmRvd1JlcXVpcmVkKHN1Ym1pdFJlc3BvbnNlOiBTdWJtaXRSZXNwb25zZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHBpZCA9IHN1Ym1pdFJlc3BvbnNlPy5wYXJhbWV0ZXJzPy5waWQ7XG5cbiAgICBpZiAoIWNhcmRzV2l0aDNkcy5oYXMocGlkKSAmJiBwaWQgIT09IGdvb2dsZVBheVBpZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGFjcXVpcmVyID1cbiAgICAgIHN1Ym1pdFJlc3BvbnNlPy51c2VyU2Vzc2lvbj8ucGF5bWVudF9tZXRob2RfY29udHJfaWQgPz8gbnVsbDtcbiAgICBjb25zdCBpc0FjcXVpcmVyV2l0aFJlZGlyZWN0SW5OZXdXaW5kb3cgPVxuICAgICAgYWNxdWlyZXIgJiYgYWNxdWlyZXJzV2l0aFJlZGlyZWN0SW5OZXdXaW5kb3cuaGFzKGFjcXVpcmVyKTtcblxuICAgIGNvbnN0IGNhcmRCaW5Db3VudHJ5ID0gc3VibWl0UmVzcG9uc2UucGFyYW1ldGVycy5jYXJkQmluQ291bnRyeTtcbiAgICBjb25zdCBpc0phcGFuQ2FyZCA9IGNhcmRCaW5Db3VudHJ5ID09PSAnSlAnO1xuXG4gICAgY29uc3QgaXNUaHJlZURzSW5kZXBlbmRlbnRXaW5kb3cgPVxuICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MuaXNfdGhyZWVfZHNfaW5kZXBlbmRlbnRfd2luZG93cyA/PyBmYWxzZTtcblxuICAgIHJldHVybiAoXG4gICAgICBpc0FjcXVpcmVyV2l0aFJlZGlyZWN0SW5OZXdXaW5kb3cgfHxcbiAgICAgIGlzSmFwYW5DYXJkIHx8XG4gICAgICBpc1RocmVlRHNJbmRlcGVuZGVudFdpbmRvd1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldElzU2FtZVdpbmRvd1JlcXVpcmVkKHN1Ym1pdFJlc3BvbnNlOiBTdWJtaXRSZXNwb25zZSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmdldElzTmV3V2luZG93UmVxdWlyZWQoc3VibWl0UmVzcG9uc2UpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgcGlkID0gc3VibWl0UmVzcG9uc2U/LnBhcmFtZXRlcnM/LnBpZDtcbiAgICBjb25zdCBpc0NvcnJlY3RQaWRzID0gY2FyZHNXaXRoM2RzLmhhcyhwaWQpIHx8IGdvb2dsZVBheVBpZCA9PT0gcGlkO1xuXG4gICAgLy8gM0RTIHdpdGggcmVkaXJlY3QgY2FzZVxuICAgIHJldHVybiAoXG4gICAgICBpc0NvcnJlY3RQaWRzICYmXG4gICAgICAhdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MuaXNfdGhyZWVfZHNfaW5kZXBlbmRlbnRfd2luZG93c1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVQYWdlc1VybChwYWdlc1BhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgaXNTYW5kYm94ID0gdGhpcy5zZXR0aW5nc1NlcnZpY2UuaXNTYW5kYm94TW9kZSgpO1xuICAgIGNvbnN0IHRva2VuID0gdGhpcy5zZXR0aW5nc1NlcnZpY2UudG9rZW47XG5cbiAgICBjb25zdCBwYXlTdGF0aW9uVXJsID0gaXNTYW5kYm94ID8gc2FuZGJveFBheVN0YXRpb25VcmwgOiBwYXlTdGF0aW9uNFVybDtcbiAgICByZXR1cm4gYCR7cGF5U3RhdGlvblVybH0vZW4ke3BhZ2VzUGF0aH0/dG9rZW49JHt0b2tlbn1gO1xuICB9XG59XG4iXX0=
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { XpsCommand } from '../../xps-comand.enum';
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
|
+
import { mobilePaymentMethodId, mobilePaymentMethodId2, } from '../../../../shared/payment-methods-id.variable';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export class ShowMobilePaymentScreenActionCreator {
|
|
5
6
|
constructor() {
|
|
6
7
|
this.type = 'show_mobile_payment_screen';
|
|
8
|
+
this.pids = [mobilePaymentMethodId, mobilePaymentMethodId2];
|
|
7
9
|
}
|
|
8
10
|
getActionData(response) {
|
|
9
11
|
const submitButtonText = response.parameters.buyData.value;
|
|
@@ -15,7 +17,8 @@ export class ShowMobilePaymentScreenActionCreator {
|
|
|
15
17
|
};
|
|
16
18
|
}
|
|
17
19
|
isSuitable(response) {
|
|
18
|
-
return response.currentCommand === XpsCommand.create
|
|
20
|
+
return (response.currentCommand === XpsCommand.create &&
|
|
21
|
+
this.pids.includes(response.pid));
|
|
19
22
|
}
|
|
20
23
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ShowMobilePaymentScreenActionCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21
24
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ShowMobilePaymentScreenActionCreator }); }
|
|
@@ -23,4 +26,4 @@ export class ShowMobilePaymentScreenActionCreator {
|
|
|
23
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ShowMobilePaymentScreenActionCreator, decorators: [{
|
|
24
27
|
type: Injectable
|
|
25
28
|
}] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1tb2JpbGUtcGF5bWVudC1zY3JlZW4uYWN0aW9uLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9hY3Rpb25zL3Nob3ctbW9iaWxlLXBheW1lbnQtc2NyZWVuL3Nob3ctbW9iaWxlLXBheW1lbnQtc2NyZWVuLmFjdGlvbi5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUN2QixNQUFNLGdEQUFnRCxDQUFDOztBQUd4RCxNQUFNLE9BQU8sb0NBQW9DO0lBRGpEO1FBRVMsU0FBSSxHQUFzQyw0QkFBNEIsQ0FBQztRQUM3RCxTQUFJLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0tBb0J6RTtJQWxCUSxhQUFhLENBQ2xCLFFBQXdCO1FBRXhCLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzNELE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUU7Z0JBQ0osZ0JBQWdCO2FBQ2pCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxVQUFVLENBQUMsUUFBd0I7UUFDeEMsT0FBTyxDQUNMLFFBQVEsQ0FBQyxjQUFjLEtBQUssVUFBVSxDQUFDLE1BQU07WUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUNqQyxDQUFDO0lBQ0osQ0FBQzs4R0FyQlUsb0NBQW9DO2tIQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBRGhELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJtaXRSZXNwb25zZSB9IGZyb20gJy4uLy4uL3JlcXVlc3RzL3N1Ym1pdC9yZXNwb25zZS9zdWJtaXQtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgQWN0aW9uQ3JlYXRvciB9IGZyb20gJy4uL2FjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzQ29tbWFuZCB9IGZyb20gJy4uLy4uL3hwcy1jb21hbmQuZW51bSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTaG93TW9iaWxlUGF5bWVudFNjcmVlbkFjdGlvbixcbiAgU2hvd01vYmlsZVBheW1lbnRTY3JlZW5BY3Rpb25UeXBlLFxufSBmcm9tICcuL3Nob3ctbW9iaWxlLXBheW1lbnQtc2NyZWVuLmFjdGlvbi50eXBlJztcbmltcG9ydCB7XG4gIG1vYmlsZVBheW1lbnRNZXRob2RJZCxcbiAgbW9iaWxlUGF5bWVudE1ldGhvZElkMixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL3BheW1lbnQtbWV0aG9kcy1pZC52YXJpYWJsZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTaG93TW9iaWxlUGF5bWVudFNjcmVlbkFjdGlvbkNyZWF0b3IgaW1wbGVtZW50cyBBY3Rpb25DcmVhdG9yIHtcbiAgcHVibGljIHR5cGU6IFNob3dNb2JpbGVQYXltZW50U2NyZWVuQWN0aW9uVHlwZSA9ICdzaG93X21vYmlsZV9wYXltZW50X3NjcmVlbic7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGlkcyA9IFttb2JpbGVQYXltZW50TWV0aG9kSWQsIG1vYmlsZVBheW1lbnRNZXRob2RJZDJdO1xuXG4gIHB1YmxpYyBnZXRBY3Rpb25EYXRhKFxuICAgIHJlc3BvbnNlOiBTdWJtaXRSZXNwb25zZVxuICApOiBTaG93TW9iaWxlUGF5bWVudFNjcmVlbkFjdGlvbiB7XG4gICAgY29uc3Qgc3VibWl0QnV0dG9uVGV4dCA9IHJlc3BvbnNlLnBhcmFtZXRlcnMuYnV5RGF0YS52YWx1ZTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgZGF0YToge1xuICAgICAgICBzdWJtaXRCdXR0b25UZXh0LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGlzU3VpdGFibGUocmVzcG9uc2U6IFN1Ym1pdFJlc3BvbnNlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHJlc3BvbnNlLmN1cnJlbnRDb21tYW5kID09PSBYcHNDb21tYW5kLmNyZWF0ZSAmJlxuICAgICAgdGhpcy5waWRzLmluY2x1ZGVzKHJlc3BvbnNlLnBpZClcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,22 +1,37 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../../settings/settings.service";
|
|
3
4
|
export class ThreeDsActionCreator {
|
|
4
|
-
constructor() {
|
|
5
|
+
constructor(settingsService) {
|
|
6
|
+
this.settingsService = settingsService;
|
|
5
7
|
this.type = '3DS';
|
|
6
8
|
}
|
|
7
9
|
getActionData(actionData) {
|
|
8
10
|
return {
|
|
9
11
|
type: this.type,
|
|
10
|
-
data: actionData,
|
|
12
|
+
data: this.enrichWithRedirectParams(actionData),
|
|
11
13
|
};
|
|
12
14
|
}
|
|
13
15
|
isSuitable() {
|
|
14
16
|
return false;
|
|
15
17
|
}
|
|
16
|
-
|
|
18
|
+
enrichWithRedirectParams(actionData) {
|
|
19
|
+
return {
|
|
20
|
+
...actionData,
|
|
21
|
+
data: {
|
|
22
|
+
...actionData.data,
|
|
23
|
+
redirect: {
|
|
24
|
+
isNewWindowRequired: this.settingsService.settings.is_three_ds_independent_windows ??
|
|
25
|
+
false,
|
|
26
|
+
isSameWindowRequired: !this.settingsService.settings.is_three_ds_independent_windows,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ThreeDsActionCreator, deps: [{ token: i1.SettingsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
17
32
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ThreeDsActionCreator }); }
|
|
18
33
|
}
|
|
19
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ThreeDsActionCreator, decorators: [{
|
|
20
35
|
type: Injectable
|
|
21
|
-
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
}], ctorParameters: () => [{ type: i1.SettingsService }] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtZHMuYWN0aW9uLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9hY3Rpb25zL3RocmVlLWRzL3RocmVlLWRzLmFjdGlvbi5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJM0MsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUFvQyxlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFGN0QsU0FBSSxHQUFzQixLQUFLLENBQUM7SUFFZ0MsQ0FBQztJQUVqRSxhQUFhLENBQUMsVUFBMkI7UUFDOUMsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLElBQUksRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDO1NBQ2hELENBQUM7SUFDSixDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLHdCQUF3QixDQUM5QixVQUEyQjtRQUUzQixPQUFPO1lBQ0wsR0FBRyxVQUFVO1lBQ2IsSUFBSSxFQUFFO2dCQUNKLEdBQUcsVUFBVSxDQUFDLElBQUk7Z0JBQ2xCLFFBQVEsRUFBRTtvQkFDUixtQkFBbUIsRUFDakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsK0JBQStCO3dCQUM3RCxLQUFLO29CQUNQLG9CQUFvQixFQUNsQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLCtCQUErQjtpQkFDakU7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQWhDVSxvQkFBb0I7a0hBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbkNyZWF0b3IgfSBmcm9tICcuLi9hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFRocmVlRHNBY3Rpb24sIFRocmVlRHNBY3Rpb25UeXBlIH0gZnJvbSAnLi90aHJlZS1kcy5hY3Rpb24udHlwZSc7XG5pbXBvcnQgeyBTdGF0dXNDaGFsbGVuZ2UgfSBmcm9tICcuLi8uLi90aHJlZS1kcy90aHJlZS1kcy0yMC9zdGF0dXMtdXBkYXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXR0aW5ncy9zZXR0aW5ncy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRocmVlRHNBY3Rpb25DcmVhdG9yIGltcGxlbWVudHMgQWN0aW9uQ3JlYXRvciB7XG4gIHB1YmxpYyB0eXBlOiBUaHJlZURzQWN0aW9uVHlwZSA9ICczRFMnO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBnZXRBY3Rpb25EYXRhKGFjdGlvbkRhdGE6IFN0YXR1c0NoYWxsZW5nZSk6IFRocmVlRHNBY3Rpb24ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICBkYXRhOiB0aGlzLmVucmljaFdpdGhSZWRpcmVjdFBhcmFtcyhhY3Rpb25EYXRhKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGlzU3VpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnJpY2hXaXRoUmVkaXJlY3RQYXJhbXMoXG4gICAgYWN0aW9uRGF0YTogU3RhdHVzQ2hhbGxlbmdlXG4gICk6IFN0YXR1c0NoYWxsZW5nZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjdGlvbkRhdGEsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLmFjdGlvbkRhdGEuZGF0YSxcbiAgICAgICAgcmVkaXJlY3Q6IHtcbiAgICAgICAgICBpc05ld1dpbmRvd1JlcXVpcmVkOlxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MuaXNfdGhyZWVfZHNfaW5kZXBlbmRlbnRfd2luZG93cyA/P1xuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgaXNTYW1lV2luZG93UmVxdWlyZWQ6XG4gICAgICAgICAgICAhdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MuaXNfdGhyZWVfZHNfaW5kZXBlbmRlbnRfd2luZG93cyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -228,6 +228,7 @@ export class PaymentService {
|
|
|
228
228
|
summary: sdkPaymentData.summary,
|
|
229
229
|
locale: this.translateService.getCurrentLang(),
|
|
230
230
|
shouldHandleUserBackRedirectOnSdkSide,
|
|
231
|
+
isThreeDsIndependentWindows: this.settingsService.settings.is_three_ds_independent_windows ?? false,
|
|
231
232
|
});
|
|
232
233
|
}
|
|
233
234
|
getQrCode() {
|
|
@@ -563,4 +564,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
563
564
|
providedIn: 'root',
|
|
564
565
|
}]
|
|
565
566
|
}], ctorParameters: () => [{ type: i1.LoggerService }, { type: i2.InitializeService }, { type: i3.SubmitService }, { type: i4.SyncService }, { type: i5.FormService }, { type: i6.StatusService }, { type: i7.FinanceDetailsService }, { type: i8.CreditCardStateService }, { type: i9.NextActionService }, { type: i10.InitializeNextActionService }, { type: i11.ControlConfigService }, { type: i12.ThreeDsService }, { type: i13.FormMessagesService }, { type: i14.SettingsService }, { type: i15.CountryService }, { type: i16.CheckStatusActionCreator }, { type: i17.PrintInstructionService }, { type: i18.PaymentBehaviourService }, { type: i19.TranslateService }, { type: i20.UserBehaviourAnalyticsService }] });
|
|
566
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBRU4sT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBcUIsU0FBUyxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUVsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQWM5RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFJbkgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFJakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFjaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxXQUFXLEVBQUUs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QUUsRUFBRSxDQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FDdEMsQ0FBQztJQUNKLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FDckMsc0JBQXNCLENBQUMsYUFBYSxFQUNwQyx1QkFBdUIsQ0FBQyxLQUFLLENBQzlCLENBQUM7SUFDSixDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FDckMsc0JBQXNCLENBQUMsZUFBZSxFQUN0Qyx1QkFBdUIsQ0FBQyxLQUFLLEVBQzdCO2dCQUNFLGFBQWEsRUFBRSxlQUFlLENBQUMsV0FBVzthQUMzQyxDQUNGLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FDckMsc0JBQXNCLENBQUMsV0FBVyxFQUNsQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQzdCO1lBQ0UsYUFBYSxFQUFFLGVBQWUsQ0FBQyxXQUFXO1NBQzNDLENBQ0YsQ0FBQztJQUNKLENBQUM7OEdBNXRCVSxjQUFjO2tIQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgZmlsdGVyLFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xTdGF0dXMsIEZvcm1Hcm91cCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1Ym1pdFJlc3BvbnNlIH0gZnJvbSAnLi9yZXF1ZXN0cy9zdWJtaXQvcmVzcG9uc2Uvc3VibWl0LXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi9mb3JtL2Zvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBJbml0aWFsaXplUmVzcG9uc2UgfSBmcm9tICcuL3JlcXVlc3RzL2luaXRpYWxpemUvcmVzcG9uc2UvaW5pdGlhbGl6ZS1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBJbml0aWFsaXplU2VydmljZSB9IGZyb20gJy4vcmVxdWVzdHMvaW5pdGlhbGl6ZS9pbml0aWFsaXplLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RhdHVzIH0gZnJvbSAnLi9zdGF0dXMvc3RhdHVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdWJtaXRTZXJ2aWNlIH0gZnJvbSAnLi9yZXF1ZXN0cy9zdWJtaXQvc3VibWl0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3luY1NlcnZpY2UgfSBmcm9tICcuL3JlcXVlc3RzL3N5bmMvc3luYy5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXR1c1NlcnZpY2UgfSBmcm9tICcuL3N0YXR1cy9zdGF0dXMuc2VydmljZSc7XG5pbXBvcnQgeyBOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4vYWN0aW9ucy9uZXh0LWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEluaXRpYWxpemVOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4vaW5pdGlhbGl6ZS1hY3Rpb25zL2luaXRpYWxpemUtbmV4dC1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sQ29uZmlnIH0gZnJvbSAnLi9mb3JtL2NvbnRyb2xzL2NvbnRyb2wtY29uZmlnJztcbmltcG9ydCB7IENvbnRyb2xDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9mb3JtL2NvbnRyb2xzL2NvbnRyb2wtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmluYW5jZURldGFpbHMgfSBmcm9tICcuL2ZpbmFuY2UtZGV0YWlscy9maW5hbmNlLWRldGFpbHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbmFuY2VEZXRhaWxzU2VydmljZSB9IGZyb20gJy4vZmluYW5jZS1kZXRhaWxzL2ZpbmFuY2UtZGV0YWlscy5zZXJ2aWNlJztcbmltcG9ydCB7IE5leHRBY3Rpb24gfSBmcm9tICcuL2FjdGlvbnMvbmV4dC1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcbmltcG9ydCB7IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzIH0gZnJvbSAnLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LXR5cGVzJztcbmltcG9ydCB7IGV2ZW50Q2F0ZWdvcmllcyB9IGZyb20gJy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC91c2VyLWJlaGF2aW91ci1ldmVudC1jYXRlZ29yaWVzJztcbmltcG9ydCB7IFhwc1N1bW1hcnkgfSBmcm9tICcuL3hwcy1zdW1tYXJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4vZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBheW1lbnRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9wYXltZW50LWNvbmZpZ3VyYXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IGlzU3VibWl0UmVzcG9uc2UgfSBmcm9tICcuL3JlcXVlc3RzL3N1Ym1pdC9pcy1zdWJtaXQtcmVzcG9uc2UuZnVuY3Rpb24nO1xuaW1wb3J0IHsgWHBzQm9vbGVhbiB9IGZyb20gJy4uL3hwcy1ib29sZWFuLmVudW0nO1xuaW1wb3J0IHsgU3RhdHVzUmVxdWVzdFBhcmFtcyB9IGZyb20gJy4vc3RhdHVzL3N0YXR1cy1yZXF1ZXN0L3N0YXR1cy1yZXF1ZXN0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJy4vZm9ybS92YWxpZGF0b3JzL3ZhbGlkYXRpb24tZXJyb3JzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbnB1dEV2ZW50TmFtZSB9IGZyb20gJy4vZm9ybS9pbnB1dC1ldmVudC5lbnVtJztcbmltcG9ydCB7IEZvcm1GaWVsZHNTdGF0dXMgfSBmcm9tICcuL2Zvcm0vZm9ybS1maWVsZHMtc3RhdHVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaHJlZURzU2VydmljZSB9IGZyb20gJy4vdGhyZWUtZHMvdGhyZWUtZHMuc2VydmljZSc7XG5pbXBvcnQgeyBYcHNDb21tYW5kIH0gZnJvbSAnLi94cHMtY29tYW5kLmVudW0nO1xuaW1wb3J0IHsgQ3JlZGl0Q2FyZFN0YXRlU2VydmljZSB9IGZyb20gJy4vY3JlZGl0LWNhcmQtc3RhdGUvY3JlZGl0LWNhcmQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBGaWVsZE5hbWVzIH0gZnJvbSAnLi9maWVsZC1uYW1lcy5lbnVtJztcbmltcG9ydCB7IEZvcm1TdGF0ZSB9IGZyb20gJy4vZm9ybS9mb3JtLXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGb3JtTWVzc2FnZXNTZXJ2aWNlIH0gZnJvbSAnLi9mb3JtLW1lc3NhZ2VzL2Zvcm0tbWVzc2FnZXMuc2VydmljZSc7XG5pbXBvcnQgeyBYcHNNZXNzYWdlIH0gZnJvbSAnLi94cHMtbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDb3VudHJ5U2VydmljZSB9IGZyb20gJy4uL2NvdW50cnkvY291bnRyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFNka1BheW1lbnRTeXN0ZW1zSW5pdGlhbERhdGEgfSBmcm9tICcuLi9zZGstcGF5bWVudC1zeXN0ZW1zL3Nkay1wYXltZW50LXN5c3RlbXMtaW5pdGlhbC1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGb3JtUmVzcG9uc2UgfSBmcm9tICcuL2Zvcm0tcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IENoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvciB9IGZyb20gJy4vYWN0aW9ucy9jaGVjay1zdGF0dXMvY2hlY2stc3RhdHVzLmFjdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBDb250cm9sU3RhdHVzIH0gZnJvbSAnLi9mb3JtL2NvbnRyb2wtc3RhdHVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbml0aWFsaXplZEZvcm0gfSBmcm9tICcuL2luaXRpYWxpemVkLWZvcm0uaW50ZWZhY2UnO1xuaW1wb3J0IHsgQ2FzaFBheW1lbnREYXRhIH0gZnJvbSAnLi9jYXNoLXBheW1lbnQtZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUHJpbnRJbnN0cnVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi94c29sbGEtbnVtYmVyL2FwaS9wcmludC1pbnN0cnVjdGlvbi9wcmludC1pbnN0cnVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFN5bmNSZXNwb25zZSB9IGZyb20gJy4vcmVxdWVzdHMvc3luYy9yZXNwb25zZS9zeW5jLXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7IEVycm9yVGFncyB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL2Vsay1lcnJvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IEJlaGF2aW91clN0cmF0ZWd5IH0gZnJvbSAnLi9wYXltZW50LWJlaGF2aW91ci9zdHJhdGVnaWVzL2JlaGF2aW91ci1zdHJhdGVneS5hYnN0cmFjdCc7XG5pbXBvcnQgeyBQYXltZW50QmVoYXZpb3VyU2VydmljZSB9IGZyb20gJy4vcGF5bWVudC1iZWhhdmlvdXIvcGF5bWVudC1iZWhhdmlvdXIuc2VydmljZSc7XG5pbXBvcnQgeyBmaWVsZHNBbGxvd2VkVG9PdmVycmlkZSB9IGZyb20gJy4vZm9ybS9vdmVycmlkZWQtZmllbGRzL2ZpZWxkcy1hbGxvd2VkLXRvLW92ZXJyaWRlJztcbmltcG9ydCB7IG92ZXJyaWRlRmllbGRDb25maWdzIH0gZnJvbSAnLi9mb3JtL292ZXJyaWRlZC1maWVsZHMvb3ZlcnJpZGUtZmllbGQtY29uZmlnJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9leGNlcHRpb25zLWhhbmRsaW5nL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUYWdnZWRFcnJvciB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzJztcbmltcG9ydCB7IHVwZGF0ZUFmdGVyRXJyb3JSdWxlcyB9IGZyb20gJy4vdXBkYXRlLXN1Ym1pdC1yZXNwb25zZS91cGRhdGUtYWZ0ZXItZXJyb3ItcnVsZXMuY29uc3QnO1xuaW1wb3J0IHsgZmllbGRzQWxsb3dlZFRvRXh0ZXJuYWxDaGFuZ2UgfSBmcm9tICcuL2V4dGVybmFsLWNoYW5nZS1maWVsZHMuY29uc3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgaXNHb29nbGVQYXlTZXR0aW5nc0d1YXJkIH0gZnJvbSAnLi9wYXltZW50LWNvbmZpZ3VyYXRpb25zL3R5cGVzL2lzLWdvb2dsZS1wYXktc2V0dGluZ3MuZ3VhcmQnO1xuaW1wb3J0IHsgaXNDcmVkaXRDYXJkU2V0dGluZ3NHdWFyZCB9IGZyb20gJy4vcGF5bWVudC1jb25maWd1cmF0aW9ucy90eXBlcy9pcy1jcmVkaXQtY2FyZC1zZXR0aW5ncy5ndWFyZCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQYXltZW50U2VydmljZSB7XG4gIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBmb3JtRmllbGRzU3RhdHVzJCgpOiBPYnNlcnZhYmxlPEZvcm1GaWVsZHNTdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtRmllbGRzU3RhdHVzU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGZpbHRlcihCb29sZWFuKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBheW1lbnRGb3JtJCgpOiBPYnNlcnZhYmxlPEZvcm1Db250cm9sU3RhdHVzIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl9wYXltZW50Rm9ybSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1SZXNwb25zZSQoKTogT2JzZXJ2YWJsZTxGb3JtUmVzcG9uc2UgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1SZXNwb25zZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1SZXNwb25zZVZhbHVlKCk6IEZvcm1SZXNwb25zZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9mb3JtUmVzcG9uc2UkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIGRhdGE6IEluaXRpYWxpemVSZXNwb25zZSB8IFN1Ym1pdFJlc3BvbnNlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZmluYW5jZURldGFpbHM6IEZpbmFuY2VEZXRhaWxzIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZm9jdXNGaWVsZE5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGZpZWxkczogRmllbGRbXSA9IFtdO1xuICBwcml2YXRlIGlzU3VibWl0QXR0ZW1wdGVkID0gZmFsc2U7XG4gIHByaXZhdGUgY29uZmlnITogUGF5bWVudENvbmZpZ3VyYXRpb247XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgZm9ybURlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGF5bWVudEZvcm0kID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1Db250cm9sU3RhdHVzIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybUZpZWxkc1N0YXR1c1N1YmplY3QgPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUZpZWxkc1N0YXR1cyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtUmVzcG9uc2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtUmVzcG9uc2UgfCBudWxsPihcbiAgICBudWxsXG4gICk7XG5cbiAgcHJpdmF0ZSBpc1NhdmluZ01ldGhvZE1vZGUgPSBmYWxzZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXJTZXJ2aWNlOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbGl6ZVNlcnZpY2U6IEluaXRpYWxpemVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3VibWl0U2VydmljZTogU3VibWl0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN5bmNTZXJ2aWNlOiBTeW5jU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c1NlcnZpY2U6IFN0YXR1c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaW5hbmNlRGV0YWlsc1NlcnZpY2U6IEZpbmFuY2VEZXRhaWxzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNyZWRpdENhcmRTdGF0ZVNlcnZpY2U6IENyZWRpdENhcmRTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXh0QWN0aW9uU2VydmljZTogTmV4dEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsaXplTmV4dEFjdGlvblNlcnZpY2U6IEluaXRpYWxpemVOZXh0QWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2xDb25maWdTZXJ2aWNlOiBDb250cm9sQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRocmVlRHNTZXJ2aWNlOiBUaHJlZURzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1NZXNzYWdlc1NlcnZpY2U6IEZvcm1NZXNzYWdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvdW50cnlTZXJ2aWNlOiBDb3VudHJ5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvcjogQ2hlY2tTdGF0dXNBY3Rpb25DcmVhdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJpbnRJbnN0cnVjdGlvblNlcnZpY2U6IFByaW50SW5zdHJ1Y3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGF5bWVudEJlaGF2aW91clNlcnZpY2U6IFBheW1lbnRCZWhhdmlvdXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlOiBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemUoXG4gICAgY29uZmlnOiBQYXltZW50Q29uZmlndXJhdGlvblxuICApOiBQcm9taXNlPEluaXRpYWxpemVkRm9ybT4ge1xuICAgIHRoaXMuZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHRoaXMuZm9ybURlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICB0aGlzLmlzU3VibWl0QXR0ZW1wdGVkID0gZmFsc2U7XG5cbiAgICB0aGlzLmxpc3RlbkZpbmFuY2VEZXRhaWxzKCk7XG5cbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLmRhdGEgPSBhd2FpdCB0aGlzLmluaXRpYWxpemVTZXJ2aWNlLnJlcXVlc3QoY29uZmlnKTtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZUJlaGF2aW91clN0cmF0ZWdpZXMoKTtcblxuICAgIHRoaXMuZW1pdEZvcm1SZXNwb25zZSh0aGlzLmRhdGEpO1xuXG4gICAgdGhpcy5maWVsZHMgPSB0aGlzLmdldEZpZWxkcygpO1xuICAgIHRoaXMuc2V0dXBJbml0aWFsRmllbGRWYWx1ZXMoKTtcblxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybVNlcnZpY2UuY3JlYXRlRm9ybSh0aGlzLmZpZWxkcyk7XG5cbiAgICB0aGlzLnVwZGF0ZVBpZENvbmZpZygpO1xuICAgIHRoaXMuc2V0dXBTeW5jU2VydmljZSh0aGlzLmZvcm0sIHRoaXMuZmllbGRzLCBjb25maWcpO1xuICAgIHRoaXMubGlzdGVuRm9ybVN0YXR1c0NoYW5nZXModGhpcy5mb3JtKTtcblxuICAgIGNvbnN0IGlzTmVlZEF1dG9TdWJtaXQgPSB0aGlzLmNhbkF1dG9TdWJtaXQoKTtcblxuICAgIGlmIChpc05lZWRBdXRvU3VibWl0KSB7XG4gICAgICBjb25zdCBuZXh0QWN0aW9uID0gYXdhaXQgdGhpcy5zdWJtaXQoKTtcblxuICAgICAgaWYgKG5leHRBY3Rpb24pIHtcbiAgICAgICAgdGhpcy5uZXh0QWN0aW9uU2VydmljZS5lbWl0Rmxvd1VwZGF0ZXMobmV4dEFjdGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5lbWl0RmluYW5jZURldGFpbHModGhpcy5kYXRhLnBheW1lbnRGb3JtPy5zdW1tYXJ5KTtcbiAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKHRoaXMuZm9ybSk7XG5cbiAgICB0aGlzLmVtaXRGb3JtTWVzc2FnZXModGhpcy5nZXRJbml0aWFsaXplTWVzc2FnZXMoKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmllbGRzOiB0aGlzLmZpZWxkcy5maWx0ZXIoXG4gICAgICAgIChmaWVsZDogRmllbGQpID0+IGZpZWxkPy5pc1Zpc2libGUgPT09IFhwc0Jvb2xlYW4udHJ1ZVxuICAgICAgKSxcbiAgICAgIGlzRm9ybUF1dG9TdWJtaXR0ZWQ6IGlzTmVlZEF1dG9TdWJtaXQsXG4gICAgICBuZXh0QWN0aW9uOiB0aGlzLmluaXRpYWxpemVOZXh0QWN0aW9uU2VydmljZS5nZXROZXh0QWN0aW9uKHRoaXMuZGF0YSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzdWJtaXQoKTogUHJvbWlzZTxOZXh0QWN0aW9uIHwgbnVsbCB8IHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZm9ybSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdmb3JtIGlzIGVtcHR5IScpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmxvZ1N1Ym1pdEF0dGVtcHQoKTtcbiAgICAgIHRoaXMuaXNTdWJtaXRBdHRlbXB0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgIHRoaXMuZW1pdEZvcm1GaWVsZHNTdGF0dXModGhpcy5mb3JtKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmxvZ1N1Ym1pdCgpO1xuXG4gICAgdGhpcy5pc1NhdmluZ01ldGhvZE1vZGUgPSB0aGlzLmZpZWxkcy5zb21lKFxuICAgICAgKHsgbmFtZSwgdmFsdWUgfSkgPT5cbiAgICAgICAgbmFtZSA9PT0gJ3NhdmVQc0FjY291bnRPbmx5JyAmJiB2YWx1ZSA9PT0gWHBzQm9vbGVhbi50cnVlXG4gICAgKTtcbiAgICBjb25zdCBzdWJtaXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuc3VibWl0U2VydmljZS5yZXF1ZXN0KFxuICAgICAgdGhpcy5maWVsZHMsXG4gICAgICB0aGlzLmZvcm0sXG4gICAgICB0aGlzLmNvbmZpZ1xuICAgICk7XG5cbiAgICB0aGlzLmhhbmRsZVN1Ym1pdFdpdGhFcnJvcnMoc3VibWl0UmVzcG9uc2UpO1xuXG4gICAgdGhpcy5kYXRhID0gc3VibWl0UmVzcG9uc2U7XG4gICAgdGhpcy5pbml0aWFsaXplQmVoYXZpb3VyU3RyYXRlZ2llcygpO1xuXG4gICAgdGhpcy5lbWl0Rm9ybVJlc3BvbnNlKHRoaXMuZGF0YSk7XG5cbiAgICBpZiAoIXRoaXMuaXNTYXZpbmdNZXRob2RNb2RlKSB7XG4gICAgICB0aGlzLmVtaXRGaW5hbmNlRGV0YWlscyhzdWJtaXRSZXNwb25zZS5zdW1tYXJ5LCBmYWxzZSk7XG4gICAgfVxuICAgIHRoaXMuZW1pdEZvcm1NZXNzYWdlcyhzdWJtaXRSZXNwb25zZS5tZXNzYWdlcyk7XG5cbiAgICAvLyBIYW5kbGUgM2RzIGZsb3dcbiAgICBpZiAoXG4gICAgICBzdWJtaXRSZXNwb25zZS5jdXJyZW50Q29tbWFuZCA9PT0gWHBzQ29tbWFuZC5jcmVhdGUgJiZcbiAgICAgIHN1Ym1pdFJlc3BvbnNlLnBhcmFtZXRlcnMudGhyZWVEU0Zvcm1cbiAgICApIHtcbiAgICAgIHRoaXMucnVuVGhyZWVEcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5nZXRGaWVsZHMoKTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TZXJ2aWNlLmNyZWF0ZUZvcm0odGhpcy5maWVsZHMpO1xuXG4gICAgdGhpcy5saXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlcyh0aGlzLmZvcm0pO1xuICAgIHRoaXMuc3luY1NlcnZpY2Uuc2V0dXAodGhpcy5mb3JtLCB0aGlzLmZpZWxkcywgdGhpcy5jb25maWcpO1xuXG4gICAgcmV0dXJuIHRoaXMubmV4dEFjdGlvblNlcnZpY2UuZ2V0TmV4dEFjdGlvbihzdWJtaXRSZXNwb25zZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc3VibWl0V2l0aEZpZWxkcyhmaWVsZHM/OiBGaWVsZFtdKTogUHJvbWlzZTx7XG4gICAgcmVzcG9uc2U6IFN1Ym1pdFJlc3BvbnNlO1xuICAgIG5leHRBY3Rpb246IE5leHRBY3Rpb24gfCBudWxsIHwgdm9pZDtcbiAgfT4ge1xuICAgIGlmICghdGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcignc3VibWl0IGVycm9yOiB0cnlpbmcgdG8gc3VibWl0IHdpdGggbm8gZm9ybScsIFtcbiAgICAgICAgICBFcnJvclRhZ3MuR09PR0xFUEFZLFxuICAgICAgICBdKVxuICAgICAgKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZm9ybSBpcyBlbXB0eSEnKTtcbiAgICB9XG5cbiAgICB0aGlzLmlzU2F2aW5nTWV0aG9kTW9kZSA9IHRoaXMuZmllbGRzLnNvbWUoXG4gICAgICAoeyBuYW1lLCB2YWx1ZSB9KSA9PlxuICAgICAgICBuYW1lID09PSAnc2F2ZVBzQWNjb3VudE9ubHknICYmIHZhbHVlID09PSBYcHNCb29sZWFuLnRydWVcbiAgICApO1xuICAgIGNvbnN0IHN1Ym1pdFJlc3BvbnNlID0gYXdhaXQgdGhpcy5zdWJtaXRTZXJ2aWNlLnJlcXVlc3QoXG4gICAgICBmaWVsZHMgPz8gdGhpcy5maWVsZHMsXG4gICAgICB0aGlzLmZvcm0sXG4gICAgICB0aGlzLmNvbmZpZ1xuICAgICk7XG5cbiAgICB0aGlzLmRhdGEgPSBzdWJtaXRSZXNwb25zZTtcbiAgICB0aGlzLmVtaXRGb3JtUmVzcG9uc2UodGhpcy5kYXRhKTtcblxuICAgIGlmICghdGhpcy5pc1NhdmluZ01ldGhvZE1vZGUpIHtcbiAgICAgIHRoaXMuZW1pdEZpbmFuY2VEZXRhaWxzKHN1Ym1pdFJlc3BvbnNlLnN1bW1hcnksIGZhbHNlKTtcbiAgICB9XG4gICAgdGhpcy5lbWl0Rm9ybU1lc3NhZ2VzKHN1Ym1pdFJlc3BvbnNlLm1lc3NhZ2VzKTtcblxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5nZXRGaWVsZHMoKTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TZXJ2aWNlLmNyZWF0ZUZvcm0odGhpcy5maWVsZHMpO1xuXG4gICAgdGhpcy5zeW5jU2VydmljZS5zZXR1cCh0aGlzLmZvcm0sIHRoaXMuZmllbGRzLCB0aGlzLmNvbmZpZyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVzcG9uc2U6IHN1Ym1pdFJlc3BvbnNlLFxuICAgICAgbmV4dEFjdGlvbjogdGhpcy5uZXh0QWN0aW9uU2VydmljZS5nZXROZXh0QWN0aW9uKHN1Ym1pdFJlc3BvbnNlKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHNldHVwSW5pdGlhbEZpZWxkVmFsdWVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpZWxkc1RvT3ZlcnJpZGUgPSB0aGlzLmNvbmZpZy5vdmVycmlkZUZvcm1GaWVsZHM7XG4gICAgaWYgKCFmaWVsZHNUb092ZXJyaWRlKSByZXR1cm47XG5cbiAgICBjb25zdCBvdmVycmlkYWJsZU5hbWVzID0gbmV3IFNldChcbiAgICAgIE9iamVjdC5rZXlzKGZpZWxkc1RvT3ZlcnJpZGUpLmZpbHRlcigobmFtZSkgPT5cbiAgICAgICAgZmllbGRzQWxsb3dlZFRvT3ZlcnJpZGUuaGFzKG5hbWUgYXMgRmllbGROYW1lcylcbiAgICAgIClcbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLmZpZWxkcykge1xuICAgICAgY29uc3QgZmllbGROYW1lID0gZmllbGQubmFtZTtcbiAgICAgIGlmICghb3ZlcnJpZGFibGVOYW1lcy5oYXMoZmllbGROYW1lKSkgY29udGludWU7XG5cbiAgICAgIGNvbnN0IGNvbmZpZyA9IG92ZXJyaWRlRmllbGRDb25maWdzW2ZpZWxkTmFtZV07XG4gICAgICBpZiAoIWNvbmZpZykgY29udGludWU7XG5cbiAgICAgIGNvbnN0IG92ZXJyaWRkZW5WYWx1ZSA9IGZpZWxkc1RvT3ZlcnJpZGVbZmllbGROYW1lXT8uaW5pdGlhbFZhbHVlO1xuXG4gICAgICBmaWVsZC52YWx1ZSA9IFN0cmluZyhcbiAgICAgICAgY29uZmlnLnZhbGlkYXRvcihvdmVycmlkZGVuVmFsdWUpXG4gICAgICAgICAgPyBvdmVycmlkZGVuVmFsdWVcbiAgICAgICAgICA6IGNvbmZpZy5kZWZhdWx0VmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcygpOiBGaWVsZFtdIHtcbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEuZmllbGRzID8/IFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRhdGE/LnBheW1lbnRGb3JtPy5maWVsZHMgPz8gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udHJvbFN0YXR1cyhuYW1lOiBGaWVsZE5hbWVzKTogQ29udHJvbFN0YXR1cyB8IG51bGwge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcbiAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgZXJyb3JzOiBjb250cm9sLmVycm9ycyxcbiAgICAgIHN0YXR1czogY29udHJvbC5zdGF0dXMsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRJbml0aWFsRGF0YUZvclNka1BheW1lbnRTeXN0ZW1zKCk6IFByb21pc2U8U2RrUGF5bWVudFN5c3RlbXNJbml0aWFsRGF0YT4ge1xuICAgIGlmICghdGhpcy5kYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHNka1BheW1lbnREYXRhID0gdGhpcy5nZXRTZGtQYXltZW50RGF0YUZyb21SZXNwb25zZSh0aGlzLmRhdGEpO1xuXG4gICAgY29uc3Qgc2hvdWxkSGFuZGxlVXNlckJhY2tSZWRpcmVjdE9uU2RrU2lkZSA9IGlzR29vZ2xlUGF5U2V0dGluZ3NHdWFyZChcbiAgICAgIHRoaXMuY29uZmlnXG4gICAgKVxuICAgICAgPyAhIXRoaXMuY29uZmlnLnBheW1lbnRNZXRob2RTZXR0aW5ncz8udXNlU2RrSGFuZGxlckZvclVzZXJCYWNrUmVkaXJlY3RcbiAgICAgIDogZmFsc2U7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgIGRhdGE6IHNka1BheW1lbnREYXRhLmNoZWNrb3V0RGF0YSxcbiAgICAgIHNhbmRib3g6IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmlzU2FuZGJveE1vZGUoKVxuICAgICAgICA/IFhwc0Jvb2xlYW4udHJ1ZVxuICAgICAgICA6IFhwc0Jvb2xlYW4uZmFsc2UsXG4gICAgICBjb3VudHJ5OiB0aGlzLmNvdW50cnlTZXJ2aWNlLmdldENvdW50cnkoKSxcbiAgICAgIGZpZWxkczogc2RrUGF5bWVudERhdGEuZmllbGRzLFxuICAgICAgc3VibWl0UmVzcG9uc2U6IGlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSA/IHRoaXMuZGF0YSA6IG51bGwsXG4gICAgICBzdW1tYXJ5OiBzZGtQYXltZW50RGF0YS5zdW1tYXJ5LFxuICAgICAgbG9jYWxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0Q3VycmVudExhbmcoKSxcbiAgICAgIHNob3VsZEhhbmRsZVVzZXJCYWNrUmVkaXJlY3RPblNka1NpZGUsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UXJDb2RlKCk6IHN0cmluZyB7XG4gICAgaWYgKCFpc1N1Ym1pdFJlc3BvbnNlKHRoaXMuZGF0YSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIHN1Ym1pdCBmb3JtIGZpcnN0Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5wYXJhbWV0ZXJzLmZvcm0ucXIudGl0bGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzaFBheW1lbnREYXRhKCk6IENhc2hQYXltZW50RGF0YSB7XG4gICAgaWYgKCFpc1N1Ym1pdFJlc3BvbnNlKHRoaXMuZGF0YSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIHN1Ym1pdCBmb3JtIGZpcnN0Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgY2FzaEluc3RydWN0aW9uRmllbGQgPSB0aGlzLmRhdGEuZmllbGRzLmZpbmQoXG4gICAgICAoZmllbGQpID0+IGZpZWxkLm5hbWUgPT09ICdwYXltZW50X2luc3RydWN0aW9uJ1xuICAgICk7XG5cbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBpc0Nhc2hQYXltZW50TWV0aG9kOiAhIWNhc2hJbnN0cnVjdGlvbkZpZWxkLFxuICAgICAgeHNvbGxhTnVtYmVyOiB0aGlzLmRhdGEueHNvbGxhTnVtYmVyLmFjY291bnRYc29sbGEsXG4gICAgICBwaWQ6IHRoaXMuZGF0YS5wYXJhbWV0ZXJzLnBpZCxcbiAgICAgIHB1YmxpY0lkOiB0aGlzLmRhdGEucGFyYW1ldGVycy5wdWJsaWNfaWQsXG4gICAgICB0aXRsZTogdGhpcy5kYXRhLnBhcmFtZXRlcnMudGl0bGUsXG4gICAgICBwcm9qZWN0TmFtZTogdGhpcy5zZXR0aW5nc1NlcnZpY2UucHJvamVjdC5uYW1lLFxuICAgICAgaW5zdHJ1Y3Rpb246IGNhc2hJbnN0cnVjdGlvbkZpZWxkPy50aXRsZSxcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBwcmludFVybDogdGhpcy5wcmludEluc3RydWN0aW9uU2VydmljZS5nZXRQcmludEluc3RydWN0aW9uVXJsKHBhcmFtcyksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQaWQoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZGF0YSBpbnN0YW5jZW9mIFN1Ym1pdFJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhLnBhcmFtZXRlcnMucGlkO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEucGF5bWVudEZvcm0/LnBpZCA/PyBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldFN1Ym1pdEJ1dHRvblRleHQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZGF0YSBpbnN0YW5jZW9mIFN1Ym1pdFJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhLnBhcmFtZXRlcnMuYnV5RGF0YS52YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgSW5pdGlhbGl6ZVJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhLnBheW1lbnRGb3JtPy5idXlEYXRhLnZhbHVlID8/IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGUoZmllbGQ6IEZpZWxkKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4ge1xuICAgIGNvbnN0IHN5bmNFcnJvcnMgPSB0aGlzLnN5bmNTZXJ2aWNlLmdldFN5bmNWYWxpZGF0aW9uRXJyb3JzKGZpZWxkKTtcblxuICAgIGlmIChzeW5jRXJyb3JzKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN5bmNFcnJvcnMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN5bmNTZXJ2aWNlLnZhbGlkYXRlKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjYWxjdWxhdGVGaWVsZChcbiAgICBjaGFuZ2VkRmllbGQ6IEZpZWxkLFxuICAgIGZpZWxkczogRmllbGRbXVxuICApOiBQcm9taXNlPFN5bmNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLnN5bmNTZXJ2aWNlLnJlcXVlc3QoY2hhbmdlZEZpZWxkLCBmaWVsZHMsIG5ldyBGb3JtR3JvdXAoe30pKTtcbiAgfVxuXG4gIHB1YmxpYyBydW5UaHJlZURzKCk6IHZvaWQge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIHRoaXMudGhyZWVEc1NlcnZpY2UuY2hlY2tUaHJlZURzKHRoaXMuZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmluYW5jZURldGFpbHMoKTogRmluYW5jZURldGFpbHMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5maW5hbmNlRGV0YWlscztcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVGaWVsZEZvcm1TdGF0ZShmaWVsZE5hbWU6IHN0cmluZywgZm9ybVN0YXRlOiBGb3JtU3RhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmZvcm1TZXJ2aWNlLnVwZGF0ZUZpZWxkRm9ybVN0YXRlKFxuICAgICAgICB0aGlzLmZvcm0sXG4gICAgICAgIHRoaXMuZmllbGRzLFxuICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgIGZvcm1TdGF0ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RmllbGRGb3JtU3RhdGUoZmllbGROYW1lOiBGaWVsZE5hbWVzKTogRm9ybVN0YXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVNlcnZpY2UuZ2V0RmllbGRGb3JtU3RhdGUoZmllbGROYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRTdGF0dXMoKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICBpZiAoIWlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgc3VibWl0IGZvcm0gZmlyc3QnKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXM6IFN0YXR1c1JlcXVlc3RQYXJhbXMgPSB7XG4gICAgICBwaWQ6IHRoaXMuY29uZmlnLnBheW1lbnRNZXRob2RJZCxcbiAgICAgIGludm9pY2U6IHBhcnNlSW50KHRoaXMuZGF0YS5maXhJbnZvaWNlID8/ICcnKSxcbiAgICAgIHNpZ25hdHVyZTogdGhpcy5kYXRhLnNpZ25hdHVyZSA/PyAnJyxcbiAgICAgIGxvY2FsZTpcbiAgICAgICAgdGhpcy5kYXRhLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0gJ2xvY2FsZScpPy52YWx1ZSA/P1xuICAgICAgICAnZW4nLFxuICAgICAgaXNTYXZlUGF5bWVudEFjY291bnQ6IHRoaXMuaXNTYXZpbmdNZXRob2RNb2RlXG4gICAgICAgID8gWHBzQm9vbGVhbi50cnVlXG4gICAgICAgIDogWHBzQm9vbGVhbi5mYWxzZSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLnN0YXR1c1NlcnZpY2UuZ2V0U3RhdHVzKHBhcmFtcyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbGlzdGVuRmluYWxTdGF0dXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBpbnZvaWNlIH0gPSBhd2FpdCB0aGlzLmdldFN0YXR1cygpO1xuXG4gICAgdGhpcy5zdGF0dXNTZXJ2aWNlXG4gICAgICAubGlzdGVuRmluYWxTdGF0dXMoaW52b2ljZSBhcyB1bmtub3duIGFzIG51bWJlcilcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5uZXh0QWN0aW9uU2VydmljZS5lbWl0Rmxvd1VwZGF0ZXMoXG4gICAgICAgICAgdGhpcy5jaGVja1N0YXR1c0FjdGlvbkNyZWF0b3IuZ2V0QWN0aW9uRGF0YSgpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWVsZENvbmZpZyhmaWVsZDogRmllbGQpOiBDb250cm9sQ29uZmlnIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VGaWVsZFZhbHVlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtPy5nZXQobmFtZSk7XG4gICAgZm9ybUNvbnRyb2w/LnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBleHRlcm5hbENoYW5nZUZpZWxkVmFsdWUobmFtZTogRmllbGROYW1lcywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGlzRmllbGRBbGxvd2VkRm9yRXh0ZXJuYWxDaGFuZ2UgPVxuICAgICAgZmllbGRzQWxsb3dlZFRvRXh0ZXJuYWxDaGFuZ2UuaGFzKG5hbWUpO1xuXG4gICAgY29uc3QgaXNFeHRlcm5hbFZhdWx0ID1cbiAgICAgIGlzQ3JlZGl0Q2FyZFNldHRpbmdzR3VhcmQodGhpcy5jb25maWcpICYmXG4gICAgICB0aGlzLmNvbmZpZy5wYXltZW50TWV0aG9kU2V0dGluZ3M/LnVzZUV4dGVybmFsVmF1bHQ7XG5cbiAgICBpZiAoIWlzRmllbGRBbGxvd2VkRm9yRXh0ZXJuYWxDaGFuZ2UgfHwgIWlzRXh0ZXJuYWxWYXVsdCkgcmV0dXJuO1xuXG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcbiAgICBmb3JtQ29udHJvbD8uc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZUZpZWxkU3RhdGUobmFtZTogc3RyaW5nLCBzdGF0ZTogSW5wdXRFdmVudE5hbWUpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZm9ybT8uZ2V0KG5hbWUpO1xuXG4gICAgaWYgKCF0aGlzLmZvcm0gfHwgIWZvcm1Db250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBJbnB1dEV2ZW50TmFtZS5ibHVyOiB7XG4gICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0ZpZWxkTmFtZSA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBJbnB1dEV2ZW50TmFtZS5mb2N1czoge1xuICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0ZpZWxkTmFtZSA9IG5hbWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZW1pdEZvcm1GaWVsZHNTdGF0dXModGhpcy5mb3JtKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRFeHRyYUZpZWxkKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGlzSGF2ZUZpZWxkID0gdGhpcy5maWVsZHMuZmluZCgoZmllbGQpID0+IHtcbiAgICAgIHJldHVybiBmaWVsZC5uYW1lID09PSBuYW1lO1xuICAgIH0pO1xuXG4gICAgaWYgKGlzSGF2ZUZpZWxkKSB7XG4gICAgICB0aGlzLmZpZWxkcyA9IHRoaXMuZmllbGRzLm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgaWYgKGZpZWxkLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgICBmaWVsZC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmllbGQgPSB7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgdGl0bGU6ICcnLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgZXhhbXBsZTogJycsXG4gICAgICBpc01hbmRhdG9yeTogWHBzQm9vbGVhbi50cnVlLFxuICAgICAgaXNWaXNpYmxlOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgIH0gYXMgRmllbGQ7XG5cbiAgICB0aGlzLmZpZWxkcy5wdXNoKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveUJlaGF2aW91clN0cmF0ZWdpZXModGhpcy5jb25maWcpO1xuXG4gICAgdGhpcy5kYXRhID0gbnVsbDtcbiAgICB0aGlzLmZpbmFuY2VEZXRhaWxzID0gbnVsbDtcbiAgICB0aGlzLmZvcm0gPSBudWxsO1xuICAgIHRoaXMuZmllbGRzID0gW107XG4gICAgdGhpcy5mb3JtRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuXG4gICAgdGhpcy50aHJlZURzU2VydmljZS5zdG9wQ2hlY2tpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEZpbmFuY2VEZXRhaWxzKHN1bW1hcnk/OiBYcHNTdW1tYXJ5LCBuZWVkTG9nQ2FydCA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmFuY2VEZXRhaWxzU2VydmljZS5lbWl0V2l0aFN1bW1hcnkoc3VtbWFyeSwgbmVlZExvZ0NhcnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q3JlZGl0Q2FyZFN0YXRlKHtcbiAgICBpZENhcmRUeXBlLFxuICAgIGNhcmRCaW5Db3VudHJ5LFxuICB9OiB7XG4gICAgaWRDYXJkVHlwZTogc3RyaW5nO1xuICAgIGNhcmRCaW5Db3VudHJ5Pzogc3RyaW5nO1xuICB9KTogdm9pZCB7XG4gICAgdGhpcy5jcmVkaXRDYXJkU3RhdGVTZXJ2aWNlLmVtaXQoeyBpZENhcmRUeXBlLCBjYXJkQmluQ291bnRyeSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEZvcm1GaWVsZHNTdGF0dXMoZm9ybTogVW50eXBlZEZvcm1Hcm91cCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1GaWVsZHNTdGF0dXM6IEZvcm1GaWVsZHNTdGF0dXMgPSB7fTtcblxuICAgIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW25hbWVdO1xuICAgICAgZm9ybUZpZWxkc1N0YXR1c1tuYW1lXSA9IHtcbiAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgdmFsaWRhdGlvblN0YXR1czogY29udHJvbC5zdGF0dXMsXG4gICAgICAgIGVycm9yczogY29udHJvbC5lcnJvcnMsXG4gICAgICAgIGlzRm9jdXNlZDogdGhpcy5mb2N1c0ZpZWxkTmFtZSA9PT0gbmFtZSxcbiAgICAgICAgaXNUb3VjaGVkOiBjb250cm9sLnRvdWNoZWQsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy5mb3JtRmllbGRzU3RhdHVzU3ViamVjdC5uZXh0KGZvcm1GaWVsZHNTdGF0dXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9ybU1lc3NhZ2VzKG1lc3NhZ2VzPzogWHBzTWVzc2FnZVtdKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtTWVzc2FnZXNTZXJ2aWNlLmVtaXRPblJlc3BvbnNlKG1lc3NhZ2VzKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBTeW5jU2VydmljZShcbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwLFxuICAgIGZpZWxkczogRmllbGRbXSxcbiAgICBjb25maWc6IFBheW1lbnRDb25maWd1cmF0aW9uXG4gICk6IHZvaWQge1xuICAgIHRoaXMuc3luY1NlcnZpY2Uuc2V0dXAoZm9ybSwgZmllbGRzLCBjb25maWcpO1xuICAgIHRoaXMuc3luY1NlcnZpY2UuZGF0YSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuZW1pdEZpbmFuY2VEZXRhaWxzKHJlc3BvbnNlLnN1bW1hcnkpO1xuICAgICAgICB0aGlzLmVtaXRGb3JtTWVzc2FnZXMocmVzcG9uc2UubWVzc2FnZXMpO1xuICAgICAgICB0aGlzLmVtaXRGb3JtUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnN5bmNTZXJ2aWNlLmZpZWxkQXN5bmNWYWxpZGF0aW9uJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoZmllbGRBc3luY1ZhbGlkYXRpb24pID0+IHtcbiAgICAgICAgc3dpdGNoIChmaWVsZEFzeW5jVmFsaWRhdGlvbi5maWVsZC5uYW1lKSB7XG4gICAgICAgICAgY2FzZSBGaWVsZE5hbWVzLmNhcmROdW1iZXI6XG4gICAgICAgICAgICB0aGlzLmVtaXRDcmVkaXRDYXJkU3RhdGUoe1xuICAgICAgICAgICAgICBpZENhcmRUeXBlOiBmaWVsZEFzeW5jVmFsaWRhdGlvbi5yZXNwb25zZS5wYXJhbWV0ZXJzLmlkQ2FyZFR5cGUsXG4gICAgICAgICAgICAgIGNhcmRCaW5Db3VudHJ5OlxuICAgICAgICAgICAgICAgIGZpZWxkQXN5bmNWYWxpZGF0aW9uLnJlc3BvbnNlLnBhcmFtZXRlcnMuY2FyZEJpbkNvdW50cnksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZpbmFuY2VEZXRhaWxzKCk6IHZvaWQge1xuICAgIHRoaXMuZmluYW5jZURldGFpbHNTZXJ2aWNlLmRhdGEkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChmaW5hbmNlRGV0YWlscykgPT4gKHRoaXMuZmluYW5jZURldGFpbHMgPSBmaW5hbmNlRGV0YWlscykpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlcyhmb3JtOiBVbnR5cGVkRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgZm9ybS5zdGF0dXNDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5mb3JtRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBGb3JtQ29udHJvbFN0YXR1cykgPT4ge1xuICAgICAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKGZvcm0pO1xuICAgICAgICB0aGlzLl9wYXltZW50Rm9ybSQubmV4dChzdGF0dXMpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKlxuICAgKiBpbiBjYXNlIHRoZSBmb3JtIHBpZCBjaGFuZ2VzIGRlc3BpdGUgdGhlIG9uZSBwYXNzZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uXG4gICAqICAqL1xuICBwcml2YXRlIHVwZGF0ZVBpZENvbmZpZygpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50UGlkID0gdGhpcy5nZXRQaWQoKTtcbiAgICBpZiAoY3VycmVudFBpZCkge1xuICAgICAgdGhpcy5jb25maWcucGF5bWVudE1ldGhvZElkID0gY3VycmVudFBpZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtUmVzcG9uc2UoZGF0YTogRm9ybVJlc3BvbnNlWydkYXRhJ10pOiB2b2lkIHtcbiAgICBsZXQgdHlwZTogRm9ybVJlc3BvbnNlWyd0eXBlJ107XG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHR5cGUgPSAnaW5pdGlhbGl6ZSc7XG4gICAgfSBlbHNlIGlmIChkYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHR5cGUgPSAnc3VibWl0JztcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZSA9ICdzeW5jJztcbiAgICB9XG4gICAgdGhpcy5fZm9ybVJlc3BvbnNlJC5uZXh0KHtcbiAgICAgIHR5cGUsXG4gICAgICBkYXRhLFxuICAgICAgdG9rZW46IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnRva2VuLFxuICAgICAgaXNTYW5kYm94OiB0aGlzLnNldHRpbmdzU2VydmljZS5pc1NhbmRib3hNb2RlKCksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEluaXRpYWxpemVNZXNzYWdlcygpOiBYcHNNZXNzYWdlW10ge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gKHRoaXMuZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2UpLnBheW1lbnRGb3JtPy5tZXNzYWdlcztcbiAgICBjb25zdCBrb3JlYU5vdGlmaWNhdGlvbiA9ICh0aGlzLmRhdGEgYXMgSW5pdGlhbGl6ZVJlc3BvbnNlKS5wYXltZW50Rm9ybVxuICAgICAgPy5rb3JlYU5vdGlmaWNhdGlvbjtcbiAgICBpZiAoa29yZWFOb3RpZmljYXRpb24pIHtcbiAgICAgIG1lc3NhZ2VzPy5wdXNoKHsgY29kZTogJzAnLCBtZXNzYWdlOiBrb3JlYU5vdGlmaWNhdGlvbj8udGl0bGUgfSk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlcyA/PyBbXTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuQXV0b1N1Ym1pdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXNwb25zZSA9IHRoaXMuZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2U7XG4gICAgaWYgKCFyZXNwb25zZS5wYXltZW50Rm9ybSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzUmVkaXJlY3RNZXRob2QgPSByZXNwb25zZS5wYXltZW50Rm9ybS5pc0NoZWNrb3V0O1xuICAgIGNvbnN0IGNhblNraXBGb3JtID0gcmVzcG9uc2UucGF5bWVudEZvcm0uc2tpcEZvcm07XG5cbiAgICBjb25zdCBpc1N1aXRhYmxlQnlTdHJhdGVneSA9IHRoaXMuYXV0b1N1Ym1pdEJlaGF2aW91clN0cmF0ZWdpZXMoXG4gICAgICB0aGlzLmNvbmZpZ1xuICAgICk7XG5cbiAgICByZXR1cm4gKCFpc1JlZGlyZWN0TWV0aG9kICYmIGNhblNraXBGb3JtKSB8fCBpc1N1aXRhYmxlQnlTdHJhdGVneTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2RrUGF5bWVudERhdGFGcm9tUmVzcG9uc2UoXG4gICAgZGF0YTogU3VibWl0UmVzcG9uc2UgfCBJbml0aWFsaXplUmVzcG9uc2VcbiAgKToge1xuICAgIGNoZWNrb3V0RGF0YTogc3RyaW5nIHwgbnVsbDtcbiAgICBmaWVsZHM6IEZpZWxkW107XG4gICAgc3VtbWFyeTogWHBzU3VtbWFyeSB8IG51bGw7XG4gIH0ge1xuICAgIGlmIChpc1N1Ym1pdFJlc3BvbnNlKGRhdGEpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjaGVja291dERhdGE6IGRhdGEucGFyYW1ldGVycz8uY2hlY2tvdXQuZGF0YS5kYXRhLFxuICAgICAgICBmaWVsZHM6IGRhdGEuZmllbGRzLFxuICAgICAgICBzdW1tYXJ5OiBkYXRhLnN1bW1hcnksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjaGVja291dERhdGE6IG51bGwsXG4gICAgICBmaWVsZHM6IGRhdGEucGF5bWVudEZvcm0/LmZpZWxkcyA/PyBbXSxcbiAgICAgIHN1bW1hcnk6IGRhdGEucGF5bWVudEZvcm0/LnN1bW1hcnkgPz8gbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQmVoYXZpb3VyU3RyYXRlZ2llcygpOiB2b2lkIHtcbiAgICBjb25zdCBiZWhhdmlvdXJTdHJhdGVnaWVzID1cbiAgICAgIHRoaXMucGF5bWVudEJlaGF2aW91clNlcnZpY2UuZ2V0QXBwbGljYWJsZUJlaGF2aW91clN0cmF0ZWdpZXMoXG4gICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgdGhpcy5jb25maWdcbiAgICAgICk7XG5cbiAgICBiZWhhdmlvdXJTdHJhdGVnaWVzLmZvckVhY2goKHN0cmF0ZWd5OiBCZWhhdmlvdXJTdHJhdGVneSkgPT4ge1xuICAgICAgc3RyYXRlZ3kub25Jbml0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lCZWhhdmlvdXJTdHJhdGVnaWVzKGNvbmZpZzogUGF5bWVudENvbmZpZ3VyYXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBiZWhhdmlvdXJTdHJhdGVnaWVzID1cbiAgICAgIHRoaXMucGF5bWVudEJlaGF2aW91clNlcnZpY2UuZ2V0QXBwbGljYWJsZUJlaGF2aW91clN0cmF0ZWdpZXMoXG4gICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgY29uZmlnXG4gICAgICApO1xuXG4gICAgYmVoYXZpb3VyU3RyYXRlZ2llcy5mb3JFYWNoKChzdHJhdGVneTogQmVoYXZpb3VyU3RyYXRlZ3kpID0+IHtcbiAgICAgIHN0cmF0ZWd5Lm9uRGVzdHJveSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhdXRvU3VibWl0QmVoYXZpb3VyU3RyYXRlZ2llcyhjb25maWc6IFBheW1lbnRDb25maWd1cmF0aW9uKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYmVoYXZpb3VyU3RyYXRlZ2llcyA9XG4gICAgICB0aGlzLnBheW1lbnRCZWhhdmlvdXJTZXJ2aWNlLmdldEFwcGxpY2FibGVCZWhhdmlvdXJTdHJhdGVnaWVzKFxuICAgICAgICB0aGlzLmRhdGEsXG4gICAgICAgIGNvbmZpZ1xuICAgICAgKTtcblxuICAgIHJldHVybiBiZWhhdmlvdXJTdHJhdGVnaWVzLnNvbWUoKHN0cmF0ZWd5OiBCZWhhdmlvdXJTdHJhdGVneSkgPT4ge1xuICAgICAgcmV0dXJuIHN0cmF0ZWd5LmNhbkF1dG9TdWJtaXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3VibWl0V2l0aEVycm9ycyhzdWJtaXRSZXNwb25zZTogU3VibWl0UmVzcG9uc2UpOiB2b2lkIHtcbiAgICBpZiAoIXN1Ym1pdFJlc3BvbnNlLmVycm9ycz8ubGVuZ3RoKSByZXR1cm47XG5cbiAgICBjb25zdCBmaWVsZHNNYXAgPSB0aGlzLmZpZWxkcy5yZWR1Y2UoKG1hcCwgZmllbGQpID0+IHtcbiAgICAgIGlmIChmaWVsZC52YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy5mb3JtPy5nZXQoZmllbGQubmFtZSk/LnZhbHVlID8/IGZpZWxkLnZhbHVlO1xuICAgICAgICBtYXAuc2V0KGZpZWxkLm5hbWUsIGZpZWxkVmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1hcDtcbiAgICB9LCBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpKTtcblxuICAgIHVwZGF0ZUFmdGVyRXJyb3JSdWxlcy5mb3JFYWNoKChydWxlKSA9PlxuICAgICAgcnVsZS5hcHBseShzdWJtaXRSZXNwb25zZSwgZmllbGRzTWFwKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxvZ1N1Ym1pdEF0dGVtcHQoKTogdm9pZCB7XG4gICAgdGhpcy51c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZS5zZW5kKFxuICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hdHRlbXB0QnV5Tm93LFxuICAgICAgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMuY2xpY2tcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2dTdWJtaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTdWJtaXRBdHRlbXB0ZWQpIHtcbiAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hdHRlbXB0Q29udGludWUsXG4gICAgICAgIHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLmNsaWNrLFxuICAgICAgICB7XG4gICAgICAgICAgZXZlbnRDYXRlZ29yeTogZXZlbnRDYXRlZ29yaWVzLndpdGhJbnZvaWNlLFxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuY2xpY2tCdG5QYXksXG4gICAgICB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5jbGljayxcbiAgICAgIHtcbiAgICAgICAgZXZlbnRDYXRlZ29yeTogZXZlbnRDYXRlZ29yaWVzLndpdGhJbnZvaWNlLFxuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
567
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBRU4sT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBcUIsU0FBUyxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUVsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQWM5RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFJbkgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFJakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFjaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxXQUFXLEVBQUUs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SUFBSSxHQUFHLEVBQWtCLENBQUMsQ0FBQztRQUU5QixxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FDdEMsQ0FBQztJQUNKLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FDckMsc0JBQXNCLENBQUMsYUFBYSxFQUNwQyx1QkFBdUIsQ0FBQyxLQUFLLENBQzlCLENBQUM7SUFDSixDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FDckMsc0JBQXNCLENBQUMsZUFBZSxFQUN0Qyx1QkFBdUIsQ0FBQyxLQUFLLEVBQzdCO2dCQUNFLGFBQWEsRUFBRSxlQUFlLENBQUMsV0FBVzthQUMzQyxDQUNGLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FDckMsc0JBQXNCLENBQUMsV0FBVyxFQUNsQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQzdCO1lBQ0UsYUFBYSxFQUFFLGVBQWUsQ0FBQyxXQUFXO1NBQzNDLENBQ0YsQ0FBQztJQUNKLENBQUM7OEdBOXRCVSxjQUFjO2tIQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgZmlsdGVyLFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xTdGF0dXMsIEZvcm1Hcm91cCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1Ym1pdFJlc3BvbnNlIH0gZnJvbSAnLi9yZXF1ZXN0cy9zdWJtaXQvcmVzcG9uc2Uvc3VibWl0LXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi9mb3JtL2Zvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBJbml0aWFsaXplUmVzcG9uc2UgfSBmcm9tICcuL3JlcXVlc3RzL2luaXRpYWxpemUvcmVzcG9uc2UvaW5pdGlhbGl6ZS1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBJbml0aWFsaXplU2VydmljZSB9IGZyb20gJy4vcmVxdWVzdHMvaW5pdGlhbGl6ZS9pbml0aWFsaXplLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RhdHVzIH0gZnJvbSAnLi9zdGF0dXMvc3RhdHVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdWJtaXRTZXJ2aWNlIH0gZnJvbSAnLi9yZXF1ZXN0cy9zdWJtaXQvc3VibWl0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3luY1NlcnZpY2UgfSBmcm9tICcuL3JlcXVlc3RzL3N5bmMvc3luYy5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXR1c1NlcnZpY2UgfSBmcm9tICcuL3N0YXR1cy9zdGF0dXMuc2VydmljZSc7XG5pbXBvcnQgeyBOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4vYWN0aW9ucy9uZXh0LWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEluaXRpYWxpemVOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4vaW5pdGlhbGl6ZS1hY3Rpb25zL2luaXRpYWxpemUtbmV4dC1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sQ29uZmlnIH0gZnJvbSAnLi9mb3JtL2NvbnRyb2xzL2NvbnRyb2wtY29uZmlnJztcbmltcG9ydCB7IENvbnRyb2xDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9mb3JtL2NvbnRyb2xzL2NvbnRyb2wtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmluYW5jZURldGFpbHMgfSBmcm9tICcuL2ZpbmFuY2UtZGV0YWlscy9maW5hbmNlLWRldGFpbHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbmFuY2VEZXRhaWxzU2VydmljZSB9IGZyb20gJy4vZmluYW5jZS1kZXRhaWxzL2ZpbmFuY2UtZGV0YWlscy5zZXJ2aWNlJztcbmltcG9ydCB7IE5leHRBY3Rpb24gfSBmcm9tICcuL2FjdGlvbnMvbmV4dC1hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcbmltcG9ydCB7IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzIH0gZnJvbSAnLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LXR5cGVzJztcbmltcG9ydCB7IGV2ZW50Q2F0ZWdvcmllcyB9IGZyb20gJy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC91c2VyLWJlaGF2aW91ci1ldmVudC1jYXRlZ29yaWVzJztcbmltcG9ydCB7IFhwc1N1bW1hcnkgfSBmcm9tICcuL3hwcy1zdW1tYXJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4vZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBheW1lbnRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9wYXltZW50LWNvbmZpZ3VyYXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IGlzU3VibWl0UmVzcG9uc2UgfSBmcm9tICcuL3JlcXVlc3RzL3N1Ym1pdC9pcy1zdWJtaXQtcmVzcG9uc2UuZnVuY3Rpb24nO1xuaW1wb3J0IHsgWHBzQm9vbGVhbiB9IGZyb20gJy4uL3hwcy1ib29sZWFuLmVudW0nO1xuaW1wb3J0IHsgU3RhdHVzUmVxdWVzdFBhcmFtcyB9IGZyb20gJy4vc3RhdHVzL3N0YXR1cy1yZXF1ZXN0L3N0YXR1cy1yZXF1ZXN0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJy4vZm9ybS92YWxpZGF0b3JzL3ZhbGlkYXRpb24tZXJyb3JzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbnB1dEV2ZW50TmFtZSB9IGZyb20gJy4vZm9ybS9pbnB1dC1ldmVudC5lbnVtJztcbmltcG9ydCB7IEZvcm1GaWVsZHNTdGF0dXMgfSBmcm9tICcuL2Zvcm0vZm9ybS1maWVsZHMtc3RhdHVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaHJlZURzU2VydmljZSB9IGZyb20gJy4vdGhyZWUtZHMvdGhyZWUtZHMuc2VydmljZSc7XG5pbXBvcnQgeyBYcHNDb21tYW5kIH0gZnJvbSAnLi94cHMtY29tYW5kLmVudW0nO1xuaW1wb3J0IHsgQ3JlZGl0Q2FyZFN0YXRlU2VydmljZSB9IGZyb20gJy4vY3JlZGl0LWNhcmQtc3RhdGUvY3JlZGl0LWNhcmQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBGaWVsZE5hbWVzIH0gZnJvbSAnLi9maWVsZC1uYW1lcy5lbnVtJztcbmltcG9ydCB7IEZvcm1TdGF0ZSB9IGZyb20gJy4vZm9ybS9mb3JtLXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGb3JtTWVzc2FnZXNTZXJ2aWNlIH0gZnJvbSAnLi9mb3JtLW1lc3NhZ2VzL2Zvcm0tbWVzc2FnZXMuc2VydmljZSc7XG5pbXBvcnQgeyBYcHNNZXNzYWdlIH0gZnJvbSAnLi94cHMtbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDb3VudHJ5U2VydmljZSB9IGZyb20gJy4uL2NvdW50cnkvY291bnRyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFNka1BheW1lbnRTeXN0ZW1zSW5pdGlhbERhdGEgfSBmcm9tICcuLi9zZGstcGF5bWVudC1zeXN0ZW1zL3Nkay1wYXltZW50LXN5c3RlbXMtaW5pdGlhbC1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGb3JtUmVzcG9uc2UgfSBmcm9tICcuL2Zvcm0tcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IENoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvciB9IGZyb20gJy4vYWN0aW9ucy9jaGVjay1zdGF0dXMvY2hlY2stc3RhdHVzLmFjdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBDb250cm9sU3RhdHVzIH0gZnJvbSAnLi9mb3JtL2NvbnRyb2wtc3RhdHVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbml0aWFsaXplZEZvcm0gfSBmcm9tICcuL2luaXRpYWxpemVkLWZvcm0uaW50ZWZhY2UnO1xuaW1wb3J0IHsgQ2FzaFBheW1lbnREYXRhIH0gZnJvbSAnLi9jYXNoLXBheW1lbnQtZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUHJpbnRJbnN0cnVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi94c29sbGEtbnVtYmVyL2FwaS9wcmludC1pbnN0cnVjdGlvbi9wcmludC1pbnN0cnVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFN5bmNSZXNwb25zZSB9IGZyb20gJy4vcmVxdWVzdHMvc3luYy9yZXNwb25zZS9zeW5jLXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7IEVycm9yVGFncyB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL2Vsay1lcnJvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IEJlaGF2aW91clN0cmF0ZWd5IH0gZnJvbSAnLi9wYXltZW50LWJlaGF2aW91ci9zdHJhdGVnaWVzL2JlaGF2aW91ci1zdHJhdGVneS5hYnN0cmFjdCc7XG5pbXBvcnQgeyBQYXltZW50QmVoYXZpb3VyU2VydmljZSB9IGZyb20gJy4vcGF5bWVudC1iZWhhdmlvdXIvcGF5bWVudC1iZWhhdmlvdXIuc2VydmljZSc7XG5pbXBvcnQgeyBmaWVsZHNBbGxvd2VkVG9PdmVycmlkZSB9IGZyb20gJy4vZm9ybS9vdmVycmlkZWQtZmllbGRzL2ZpZWxkcy1hbGxvd2VkLXRvLW92ZXJyaWRlJztcbmltcG9ydCB7IG92ZXJyaWRlRmllbGRDb25maWdzIH0gZnJvbSAnLi9mb3JtL292ZXJyaWRlZC1maWVsZHMvb3ZlcnJpZGUtZmllbGQtY29uZmlnJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9leGNlcHRpb25zLWhhbmRsaW5nL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUYWdnZWRFcnJvciB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzJztcbmltcG9ydCB7IHVwZGF0ZUFmdGVyRXJyb3JSdWxlcyB9IGZyb20gJy4vdXBkYXRlLXN1Ym1pdC1yZXNwb25zZS91cGRhdGUtYWZ0ZXItZXJyb3ItcnVsZXMuY29uc3QnO1xuaW1wb3J0IHsgZmllbGRzQWxsb3dlZFRvRXh0ZXJuYWxDaGFuZ2UgfSBmcm9tICcuL2V4dGVybmFsLWNoYW5nZS1maWVsZHMuY29uc3QnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgaXNHb29nbGVQYXlTZXR0aW5nc0d1YXJkIH0gZnJvbSAnLi9wYXltZW50LWNvbmZpZ3VyYXRpb25zL3R5cGVzL2lzLWdvb2dsZS1wYXktc2V0dGluZ3MuZ3VhcmQnO1xuaW1wb3J0IHsgaXNDcmVkaXRDYXJkU2V0dGluZ3NHdWFyZCB9IGZyb20gJy4vcGF5bWVudC1jb25maWd1cmF0aW9ucy90eXBlcy9pcy1jcmVkaXQtY2FyZC1zZXR0aW5ncy5ndWFyZCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQYXltZW50U2VydmljZSB7XG4gIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBmb3JtRmllbGRzU3RhdHVzJCgpOiBPYnNlcnZhYmxlPEZvcm1GaWVsZHNTdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtRmllbGRzU3RhdHVzU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGZpbHRlcihCb29sZWFuKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBheW1lbnRGb3JtJCgpOiBPYnNlcnZhYmxlPEZvcm1Db250cm9sU3RhdHVzIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl9wYXltZW50Rm9ybSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1SZXNwb25zZSQoKTogT2JzZXJ2YWJsZTxGb3JtUmVzcG9uc2UgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1SZXNwb25zZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1SZXNwb25zZVZhbHVlKCk6IEZvcm1SZXNwb25zZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9mb3JtUmVzcG9uc2UkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIGRhdGE6IEluaXRpYWxpemVSZXNwb25zZSB8IFN1Ym1pdFJlc3BvbnNlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZmluYW5jZURldGFpbHM6IEZpbmFuY2VEZXRhaWxzIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZm9jdXNGaWVsZE5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGZpZWxkczogRmllbGRbXSA9IFtdO1xuICBwcml2YXRlIGlzU3VibWl0QXR0ZW1wdGVkID0gZmFsc2U7XG4gIHByaXZhdGUgY29uZmlnITogUGF5bWVudENvbmZpZ3VyYXRpb247XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgZm9ybURlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGF5bWVudEZvcm0kID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1Db250cm9sU3RhdHVzIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybUZpZWxkc1N0YXR1c1N1YmplY3QgPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUZpZWxkc1N0YXR1cyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtUmVzcG9uc2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtUmVzcG9uc2UgfCBudWxsPihcbiAgICBudWxsXG4gICk7XG5cbiAgcHJpdmF0ZSBpc1NhdmluZ01ldGhvZE1vZGUgPSBmYWxzZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXJTZXJ2aWNlOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbGl6ZVNlcnZpY2U6IEluaXRpYWxpemVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3VibWl0U2VydmljZTogU3VibWl0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN5bmNTZXJ2aWNlOiBTeW5jU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c1NlcnZpY2U6IFN0YXR1c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaW5hbmNlRGV0YWlsc1NlcnZpY2U6IEZpbmFuY2VEZXRhaWxzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNyZWRpdENhcmRTdGF0ZVNlcnZpY2U6IENyZWRpdENhcmRTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXh0QWN0aW9uU2VydmljZTogTmV4dEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsaXplTmV4dEFjdGlvblNlcnZpY2U6IEluaXRpYWxpemVOZXh0QWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2xDb25maWdTZXJ2aWNlOiBDb250cm9sQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRocmVlRHNTZXJ2aWNlOiBUaHJlZURzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1NZXNzYWdlc1NlcnZpY2U6IEZvcm1NZXNzYWdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvdW50cnlTZXJ2aWNlOiBDb3VudHJ5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvcjogQ2hlY2tTdGF0dXNBY3Rpb25DcmVhdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJpbnRJbnN0cnVjdGlvblNlcnZpY2U6IFByaW50SW5zdHJ1Y3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGF5bWVudEJlaGF2aW91clNlcnZpY2U6IFBheW1lbnRCZWhhdmlvdXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlOiBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemUoXG4gICAgY29uZmlnOiBQYXltZW50Q29uZmlndXJhdGlvblxuICApOiBQcm9taXNlPEluaXRpYWxpemVkRm9ybT4ge1xuICAgIHRoaXMuZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHRoaXMuZm9ybURlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICB0aGlzLmlzU3VibWl0QXR0ZW1wdGVkID0gZmFsc2U7XG5cbiAgICB0aGlzLmxpc3RlbkZpbmFuY2VEZXRhaWxzKCk7XG5cbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLmRhdGEgPSBhd2FpdCB0aGlzLmluaXRpYWxpemVTZXJ2aWNlLnJlcXVlc3QoY29uZmlnKTtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZUJlaGF2aW91clN0cmF0ZWdpZXMoKTtcblxuICAgIHRoaXMuZW1pdEZvcm1SZXNwb25zZSh0aGlzLmRhdGEpO1xuXG4gICAgdGhpcy5maWVsZHMgPSB0aGlzLmdldEZpZWxkcygpO1xuICAgIHRoaXMuc2V0dXBJbml0aWFsRmllbGRWYWx1ZXMoKTtcblxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybVNlcnZpY2UuY3JlYXRlRm9ybSh0aGlzLmZpZWxkcyk7XG5cbiAgICB0aGlzLnVwZGF0ZVBpZENvbmZpZygpO1xuICAgIHRoaXMuc2V0dXBTeW5jU2VydmljZSh0aGlzLmZvcm0sIHRoaXMuZmllbGRzLCBjb25maWcpO1xuICAgIHRoaXMubGlzdGVuRm9ybVN0YXR1c0NoYW5nZXModGhpcy5mb3JtKTtcblxuICAgIGNvbnN0IGlzTmVlZEF1dG9TdWJtaXQgPSB0aGlzLmNhbkF1dG9TdWJtaXQoKTtcblxuICAgIGlmIChpc05lZWRBdXRvU3VibWl0KSB7XG4gICAgICBjb25zdCBuZXh0QWN0aW9uID0gYXdhaXQgdGhpcy5zdWJtaXQoKTtcblxuICAgICAgaWYgKG5leHRBY3Rpb24pIHtcbiAgICAgICAgdGhpcy5uZXh0QWN0aW9uU2VydmljZS5lbWl0Rmxvd1VwZGF0ZXMobmV4dEFjdGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5lbWl0RmluYW5jZURldGFpbHModGhpcy5kYXRhLnBheW1lbnRGb3JtPy5zdW1tYXJ5KTtcbiAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKHRoaXMuZm9ybSk7XG5cbiAgICB0aGlzLmVtaXRGb3JtTWVzc2FnZXModGhpcy5nZXRJbml0aWFsaXplTWVzc2FnZXMoKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmllbGRzOiB0aGlzLmZpZWxkcy5maWx0ZXIoXG4gICAgICAgIChmaWVsZDogRmllbGQpID0+IGZpZWxkPy5pc1Zpc2libGUgPT09IFhwc0Jvb2xlYW4udHJ1ZVxuICAgICAgKSxcbiAgICAgIGlzRm9ybUF1dG9TdWJtaXR0ZWQ6IGlzTmVlZEF1dG9TdWJtaXQsXG4gICAgICBuZXh0QWN0aW9uOiB0aGlzLmluaXRpYWxpemVOZXh0QWN0aW9uU2VydmljZS5nZXROZXh0QWN0aW9uKHRoaXMuZGF0YSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzdWJtaXQoKTogUHJvbWlzZTxOZXh0QWN0aW9uIHwgbnVsbCB8IHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZm9ybSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdmb3JtIGlzIGVtcHR5IScpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmxvZ1N1Ym1pdEF0dGVtcHQoKTtcbiAgICAgIHRoaXMuaXNTdWJtaXRBdHRlbXB0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgIHRoaXMuZW1pdEZvcm1GaWVsZHNTdGF0dXModGhpcy5mb3JtKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmxvZ1N1Ym1pdCgpO1xuXG4gICAgdGhpcy5pc1NhdmluZ01ldGhvZE1vZGUgPSB0aGlzLmZpZWxkcy5zb21lKFxuICAgICAgKHsgbmFtZSwgdmFsdWUgfSkgPT5cbiAgICAgICAgbmFtZSA9PT0gJ3NhdmVQc0FjY291bnRPbmx5JyAmJiB2YWx1ZSA9PT0gWHBzQm9vbGVhbi50cnVlXG4gICAgKTtcbiAgICBjb25zdCBzdWJtaXRSZXNwb25zZSA9IGF3YWl0IHRoaXMuc3VibWl0U2VydmljZS5yZXF1ZXN0KFxuICAgICAgdGhpcy5maWVsZHMsXG4gICAgICB0aGlzLmZvcm0sXG4gICAgICB0aGlzLmNvbmZpZ1xuICAgICk7XG5cbiAgICB0aGlzLmhhbmRsZVN1Ym1pdFdpdGhFcnJvcnMoc3VibWl0UmVzcG9uc2UpO1xuXG4gICAgdGhpcy5kYXRhID0gc3VibWl0UmVzcG9uc2U7XG4gICAgdGhpcy5pbml0aWFsaXplQmVoYXZpb3VyU3RyYXRlZ2llcygpO1xuXG4gICAgdGhpcy5lbWl0Rm9ybVJlc3BvbnNlKHRoaXMuZGF0YSk7XG5cbiAgICBpZiAoIXRoaXMuaXNTYXZpbmdNZXRob2RNb2RlKSB7XG4gICAgICB0aGlzLmVtaXRGaW5hbmNlRGV0YWlscyhzdWJtaXRSZXNwb25zZS5zdW1tYXJ5LCBmYWxzZSk7XG4gICAgfVxuICAgIHRoaXMuZW1pdEZvcm1NZXNzYWdlcyhzdWJtaXRSZXNwb25zZS5tZXNzYWdlcyk7XG5cbiAgICAvLyBIYW5kbGUgM2RzIGZsb3dcbiAgICBpZiAoXG4gICAgICBzdWJtaXRSZXNwb25zZS5jdXJyZW50Q29tbWFuZCA9PT0gWHBzQ29tbWFuZC5jcmVhdGUgJiZcbiAgICAgIHN1Ym1pdFJlc3BvbnNlLnBhcmFtZXRlcnMudGhyZWVEU0Zvcm1cbiAgICApIHtcbiAgICAgIHRoaXMucnVuVGhyZWVEcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5nZXRGaWVsZHMoKTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TZXJ2aWNlLmNyZWF0ZUZvcm0odGhpcy5maWVsZHMpO1xuXG4gICAgdGhpcy5saXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlcyh0aGlzLmZvcm0pO1xuICAgIHRoaXMuc3luY1NlcnZpY2Uuc2V0dXAodGhpcy5mb3JtLCB0aGlzLmZpZWxkcywgdGhpcy5jb25maWcpO1xuXG4gICAgcmV0dXJuIHRoaXMubmV4dEFjdGlvblNlcnZpY2UuZ2V0TmV4dEFjdGlvbihzdWJtaXRSZXNwb25zZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc3VibWl0V2l0aEZpZWxkcyhmaWVsZHM/OiBGaWVsZFtdKTogUHJvbWlzZTx7XG4gICAgcmVzcG9uc2U6IFN1Ym1pdFJlc3BvbnNlO1xuICAgIG5leHRBY3Rpb246IE5leHRBY3Rpb24gfCBudWxsIHwgdm9pZDtcbiAgfT4ge1xuICAgIGlmICghdGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcignc3VibWl0IGVycm9yOiB0cnlpbmcgdG8gc3VibWl0IHdpdGggbm8gZm9ybScsIFtcbiAgICAgICAgICBFcnJvclRhZ3MuR09PR0xFUEFZLFxuICAgICAgICBdKVxuICAgICAgKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZm9ybSBpcyBlbXB0eSEnKTtcbiAgICB9XG5cbiAgICB0aGlzLmlzU2F2aW5nTWV0aG9kTW9kZSA9IHRoaXMuZmllbGRzLnNvbWUoXG4gICAgICAoeyBuYW1lLCB2YWx1ZSB9KSA9PlxuICAgICAgICBuYW1lID09PSAnc2F2ZVBzQWNjb3VudE9ubHknICYmIHZhbHVlID09PSBYcHNCb29sZWFuLnRydWVcbiAgICApO1xuICAgIGNvbnN0IHN1Ym1pdFJlc3BvbnNlID0gYXdhaXQgdGhpcy5zdWJtaXRTZXJ2aWNlLnJlcXVlc3QoXG4gICAgICBmaWVsZHMgPz8gdGhpcy5maWVsZHMsXG4gICAgICB0aGlzLmZvcm0sXG4gICAgICB0aGlzLmNvbmZpZ1xuICAgICk7XG5cbiAgICB0aGlzLmRhdGEgPSBzdWJtaXRSZXNwb25zZTtcbiAgICB0aGlzLmVtaXRGb3JtUmVzcG9uc2UodGhpcy5kYXRhKTtcblxuICAgIGlmICghdGhpcy5pc1NhdmluZ01ldGhvZE1vZGUpIHtcbiAgICAgIHRoaXMuZW1pdEZpbmFuY2VEZXRhaWxzKHN1Ym1pdFJlc3BvbnNlLnN1bW1hcnksIGZhbHNlKTtcbiAgICB9XG4gICAgdGhpcy5lbWl0Rm9ybU1lc3NhZ2VzKHN1Ym1pdFJlc3BvbnNlLm1lc3NhZ2VzKTtcblxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5nZXRGaWVsZHMoKTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TZXJ2aWNlLmNyZWF0ZUZvcm0odGhpcy5maWVsZHMpO1xuXG4gICAgdGhpcy5zeW5jU2VydmljZS5zZXR1cCh0aGlzLmZvcm0sIHRoaXMuZmllbGRzLCB0aGlzLmNvbmZpZyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVzcG9uc2U6IHN1Ym1pdFJlc3BvbnNlLFxuICAgICAgbmV4dEFjdGlvbjogdGhpcy5uZXh0QWN0aW9uU2VydmljZS5nZXROZXh0QWN0aW9uKHN1Ym1pdFJlc3BvbnNlKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHNldHVwSW5pdGlhbEZpZWxkVmFsdWVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpZWxkc1RvT3ZlcnJpZGUgPSB0aGlzLmNvbmZpZy5vdmVycmlkZUZvcm1GaWVsZHM7XG4gICAgaWYgKCFmaWVsZHNUb092ZXJyaWRlKSByZXR1cm47XG5cbiAgICBjb25zdCBvdmVycmlkYWJsZU5hbWVzID0gbmV3IFNldChcbiAgICAgIE9iamVjdC5rZXlzKGZpZWxkc1RvT3ZlcnJpZGUpLmZpbHRlcigobmFtZSkgPT5cbiAgICAgICAgZmllbGRzQWxsb3dlZFRvT3ZlcnJpZGUuaGFzKG5hbWUgYXMgRmllbGROYW1lcylcbiAgICAgIClcbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLmZpZWxkcykge1xuICAgICAgY29uc3QgZmllbGROYW1lID0gZmllbGQubmFtZTtcbiAgICAgIGlmICghb3ZlcnJpZGFibGVOYW1lcy5oYXMoZmllbGROYW1lKSkgY29udGludWU7XG5cbiAgICAgIGNvbnN0IGNvbmZpZyA9IG92ZXJyaWRlRmllbGRDb25maWdzW2ZpZWxkTmFtZV07XG4gICAgICBpZiAoIWNvbmZpZykgY29udGludWU7XG5cbiAgICAgIGNvbnN0IG92ZXJyaWRkZW5WYWx1ZSA9IGZpZWxkc1RvT3ZlcnJpZGVbZmllbGROYW1lXT8uaW5pdGlhbFZhbHVlO1xuXG4gICAgICBmaWVsZC52YWx1ZSA9IFN0cmluZyhcbiAgICAgICAgY29uZmlnLnZhbGlkYXRvcihvdmVycmlkZGVuVmFsdWUpXG4gICAgICAgICAgPyBvdmVycmlkZGVuVmFsdWVcbiAgICAgICAgICA6IGNvbmZpZy5kZWZhdWx0VmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcygpOiBGaWVsZFtdIHtcbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEuZmllbGRzID8/IFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRhdGE/LnBheW1lbnRGb3JtPy5maWVsZHMgPz8gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udHJvbFN0YXR1cyhuYW1lOiBGaWVsZE5hbWVzKTogQ29udHJvbFN0YXR1cyB8IG51bGwge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcbiAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgZXJyb3JzOiBjb250cm9sLmVycm9ycyxcbiAgICAgIHN0YXR1czogY29udHJvbC5zdGF0dXMsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRJbml0aWFsRGF0YUZvclNka1BheW1lbnRTeXN0ZW1zKCk6IFByb21pc2U8U2RrUGF5bWVudFN5c3RlbXNJbml0aWFsRGF0YT4ge1xuICAgIGlmICghdGhpcy5kYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHNka1BheW1lbnREYXRhID0gdGhpcy5nZXRTZGtQYXltZW50RGF0YUZyb21SZXNwb25zZSh0aGlzLmRhdGEpO1xuXG4gICAgY29uc3Qgc2hvdWxkSGFuZGxlVXNlckJhY2tSZWRpcmVjdE9uU2RrU2lkZSA9IGlzR29vZ2xlUGF5U2V0dGluZ3NHdWFyZChcbiAgICAgIHRoaXMuY29uZmlnXG4gICAgKVxuICAgICAgPyAhIXRoaXMuY29uZmlnLnBheW1lbnRNZXRob2RTZXR0aW5ncz8udXNlU2RrSGFuZGxlckZvclVzZXJCYWNrUmVkaXJlY3RcbiAgICAgIDogZmFsc2U7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgIGRhdGE6IHNka1BheW1lbnREYXRhLmNoZWNrb3V0RGF0YSxcbiAgICAgIHNhbmRib3g6IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmlzU2FuZGJveE1vZGUoKVxuICAgICAgICA/IFhwc0Jvb2xlYW4udHJ1ZVxuICAgICAgICA6IFhwc0Jvb2xlYW4uZmFsc2UsXG4gICAgICBjb3VudHJ5OiB0aGlzLmNvdW50cnlTZXJ2aWNlLmdldENvdW50cnkoKSxcbiAgICAgIGZpZWxkczogc2RrUGF5bWVudERhdGEuZmllbGRzLFxuICAgICAgc3VibWl0UmVzcG9uc2U6IGlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSA/IHRoaXMuZGF0YSA6IG51bGwsXG4gICAgICBzdW1tYXJ5OiBzZGtQYXltZW50RGF0YS5zdW1tYXJ5LFxuICAgICAgbG9jYWxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0Q3VycmVudExhbmcoKSxcbiAgICAgIHNob3VsZEhhbmRsZVVzZXJCYWNrUmVkaXJlY3RPblNka1NpZGUsXG4gICAgICBpc1RocmVlRHNJbmRlcGVuZGVudFdpbmRvd3M6XG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzLmlzX3RocmVlX2RzX2luZGVwZW5kZW50X3dpbmRvd3MgPz8gZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UXJDb2RlKCk6IHN0cmluZyB7XG4gICAgaWYgKCFpc1N1Ym1pdFJlc3BvbnNlKHRoaXMuZGF0YSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIHN1Ym1pdCBmb3JtIGZpcnN0Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5wYXJhbWV0ZXJzLmZvcm0ucXIudGl0bGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzaFBheW1lbnREYXRhKCk6IENhc2hQYXltZW50RGF0YSB7XG4gICAgaWYgKCFpc1N1Ym1pdFJlc3BvbnNlKHRoaXMuZGF0YSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIHN1Ym1pdCBmb3JtIGZpcnN0Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgY2FzaEluc3RydWN0aW9uRmllbGQgPSB0aGlzLmRhdGEuZmllbGRzLmZpbmQoXG4gICAgICAoZmllbGQpID0+IGZpZWxkLm5hbWUgPT09ICdwYXltZW50X2luc3RydWN0aW9uJ1xuICAgICk7XG5cbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBpc0Nhc2hQYXltZW50TWV0aG9kOiAhIWNhc2hJbnN0cnVjdGlvbkZpZWxkLFxuICAgICAgeHNvbGxhTnVtYmVyOiB0aGlzLmRhdGEueHNvbGxhTnVtYmVyLmFjY291bnRYc29sbGEsXG4gICAgICBwaWQ6IHRoaXMuZGF0YS5wYXJhbWV0ZXJzLnBpZCxcbiAgICAgIHB1YmxpY0lkOiB0aGlzLmRhdGEucGFyYW1ldGVycy5wdWJsaWNfaWQsXG4gICAgICB0aXRsZTogdGhpcy5kYXRhLnBhcmFtZXRlcnMudGl0bGUsXG4gICAgICBwcm9qZWN0TmFtZTogdGhpcy5zZXR0aW5nc1NlcnZpY2UucHJvamVjdC5uYW1lLFxuICAgICAgaW5zdHJ1Y3Rpb246IGNhc2hJbnN0cnVjdGlvbkZpZWxkPy50aXRsZSxcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBwcmludFVybDogdGhpcy5wcmludEluc3RydWN0aW9uU2VydmljZS5nZXRQcmludEluc3RydWN0aW9uVXJsKHBhcmFtcyksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQaWQoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZGF0YSBpbnN0YW5jZW9mIFN1Ym1pdFJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhLnBhcmFtZXRlcnMucGlkO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEucGF5bWVudEZvcm0/LnBpZCA/PyBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldFN1Ym1pdEJ1dHRvblRleHQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZGF0YSBpbnN0YW5jZW9mIFN1Ym1pdFJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhLnBhcmFtZXRlcnMuYnV5RGF0YS52YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgSW5pdGlhbGl6ZVJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhLnBheW1lbnRGb3JtPy5idXlEYXRhLnZhbHVlID8/IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGUoZmllbGQ6IEZpZWxkKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4ge1xuICAgIGNvbnN0IHN5bmNFcnJvcnMgPSB0aGlzLnN5bmNTZXJ2aWNlLmdldFN5bmNWYWxpZGF0aW9uRXJyb3JzKGZpZWxkKTtcblxuICAgIGlmIChzeW5jRXJyb3JzKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN5bmNFcnJvcnMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN5bmNTZXJ2aWNlLnZhbGlkYXRlKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjYWxjdWxhdGVGaWVsZChcbiAgICBjaGFuZ2VkRmllbGQ6IEZpZWxkLFxuICAgIGZpZWxkczogRmllbGRbXVxuICApOiBQcm9taXNlPFN5bmNSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLnN5bmNTZXJ2aWNlLnJlcXVlc3QoY2hhbmdlZEZpZWxkLCBmaWVsZHMsIG5ldyBGb3JtR3JvdXAoe30pKTtcbiAgfVxuXG4gIHB1YmxpYyBydW5UaHJlZURzKCk6IHZvaWQge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIHRoaXMudGhyZWVEc1NlcnZpY2UuY2hlY2tUaHJlZURzKHRoaXMuZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmluYW5jZURldGFpbHMoKTogRmluYW5jZURldGFpbHMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5maW5hbmNlRGV0YWlscztcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVGaWVsZEZvcm1TdGF0ZShmaWVsZE5hbWU6IHN0cmluZywgZm9ybVN0YXRlOiBGb3JtU3RhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmZvcm1TZXJ2aWNlLnVwZGF0ZUZpZWxkRm9ybVN0YXRlKFxuICAgICAgICB0aGlzLmZvcm0sXG4gICAgICAgIHRoaXMuZmllbGRzLFxuICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgIGZvcm1TdGF0ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RmllbGRGb3JtU3RhdGUoZmllbGROYW1lOiBGaWVsZE5hbWVzKTogRm9ybVN0YXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVNlcnZpY2UuZ2V0RmllbGRGb3JtU3RhdGUoZmllbGROYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRTdGF0dXMoKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICBpZiAoIWlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgc3VibWl0IGZvcm0gZmlyc3QnKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXM6IFN0YXR1c1JlcXVlc3RQYXJhbXMgPSB7XG4gICAgICBwaWQ6IHRoaXMuY29uZmlnLnBheW1lbnRNZXRob2RJZCxcbiAgICAgIGludm9pY2U6IHBhcnNlSW50KHRoaXMuZGF0YS5maXhJbnZvaWNlID8/ICcnKSxcbiAgICAgIHNpZ25hdHVyZTogdGhpcy5kYXRhLnNpZ25hdHVyZSA/PyAnJyxcbiAgICAgIGxvY2FsZTpcbiAgICAgICAgdGhpcy5kYXRhLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0gJ2xvY2FsZScpPy52YWx1ZSA/P1xuICAgICAgICAnZW4nLFxuICAgICAgaXNTYXZlUGF5bWVudEFjY291bnQ6IHRoaXMuaXNTYXZpbmdNZXRob2RNb2RlXG4gICAgICAgID8gWHBzQm9vbGVhbi50cnVlXG4gICAgICAgIDogWHBzQm9vbGVhbi5mYWxzZSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLnN0YXR1c1NlcnZpY2UuZ2V0U3RhdHVzKHBhcmFtcyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbGlzdGVuRmluYWxTdGF0dXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBpbnZvaWNlIH0gPSBhd2FpdCB0aGlzLmdldFN0YXR1cygpO1xuXG4gICAgdGhpcy5zdGF0dXNTZXJ2aWNlXG4gICAgICAubGlzdGVuRmluYWxTdGF0dXMoaW52b2ljZSBhcyB1bmtub3duIGFzIG51bWJlcilcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5uZXh0QWN0aW9uU2VydmljZS5lbWl0Rmxvd1VwZGF0ZXMoXG4gICAgICAgICAgdGhpcy5jaGVja1N0YXR1c0FjdGlvbkNyZWF0b3IuZ2V0QWN0aW9uRGF0YSgpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWVsZENvbmZpZyhmaWVsZDogRmllbGQpOiBDb250cm9sQ29uZmlnIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VGaWVsZFZhbHVlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtPy5nZXQobmFtZSk7XG4gICAgZm9ybUNvbnRyb2w/LnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBleHRlcm5hbENoYW5nZUZpZWxkVmFsdWUobmFtZTogRmllbGROYW1lcywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGlzRmllbGRBbGxvd2VkRm9yRXh0ZXJuYWxDaGFuZ2UgPVxuICAgICAgZmllbGRzQWxsb3dlZFRvRXh0ZXJuYWxDaGFuZ2UuaGFzKG5hbWUpO1xuXG4gICAgY29uc3QgaXNFeHRlcm5hbFZhdWx0ID1cbiAgICAgIGlzQ3JlZGl0Q2FyZFNldHRpbmdzR3VhcmQodGhpcy5jb25maWcpICYmXG4gICAgICB0aGlzLmNvbmZpZy5wYXltZW50TWV0aG9kU2V0dGluZ3M/LnVzZUV4dGVybmFsVmF1bHQ7XG5cbiAgICBpZiAoIWlzRmllbGRBbGxvd2VkRm9yRXh0ZXJuYWxDaGFuZ2UgfHwgIWlzRXh0ZXJuYWxWYXVsdCkgcmV0dXJuO1xuXG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcbiAgICBmb3JtQ29udHJvbD8uc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZUZpZWxkU3RhdGUobmFtZTogc3RyaW5nLCBzdGF0ZTogSW5wdXRFdmVudE5hbWUpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZm9ybT8uZ2V0KG5hbWUpO1xuXG4gICAgaWYgKCF0aGlzLmZvcm0gfHwgIWZvcm1Db250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBJbnB1dEV2ZW50TmFtZS5ibHVyOiB7XG4gICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0ZpZWxkTmFtZSA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBJbnB1dEV2ZW50TmFtZS5mb2N1czoge1xuICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0ZpZWxkTmFtZSA9IG5hbWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZW1pdEZvcm1GaWVsZHNTdGF0dXModGhpcy5mb3JtKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRFeHRyYUZpZWxkKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGlzSGF2ZUZpZWxkID0gdGhpcy5maWVsZHMuZmluZCgoZmllbGQpID0+IHtcbiAgICAgIHJldHVybiBmaWVsZC5uYW1lID09PSBuYW1lO1xuICAgIH0pO1xuXG4gICAgaWYgKGlzSGF2ZUZpZWxkKSB7XG4gICAgICB0aGlzLmZpZWxkcyA9IHRoaXMuZmllbGRzLm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgaWYgKGZpZWxkLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgICBmaWVsZC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmllbGQgPSB7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgdGl0bGU6ICcnLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgZXhhbXBsZTogJycsXG4gICAgICBpc01hbmRhdG9yeTogWHBzQm9vbGVhbi50cnVlLFxuICAgICAgaXNWaXNpYmxlOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgIH0gYXMgRmllbGQ7XG5cbiAgICB0aGlzLmZpZWxkcy5wdXNoKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveUJlaGF2aW91clN0cmF0ZWdpZXModGhpcy5jb25maWcpO1xuXG4gICAgdGhpcy5kYXRhID0gbnVsbDtcbiAgICB0aGlzLmZpbmFuY2VEZXRhaWxzID0gbnVsbDtcbiAgICB0aGlzLmZvcm0gPSBudWxsO1xuICAgIHRoaXMuZmllbGRzID0gW107XG4gICAgdGhpcy5mb3JtRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuXG4gICAgdGhpcy50aHJlZURzU2VydmljZS5zdG9wQ2hlY2tpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEZpbmFuY2VEZXRhaWxzKHN1bW1hcnk/OiBYcHNTdW1tYXJ5LCBuZWVkTG9nQ2FydCA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmFuY2VEZXRhaWxzU2VydmljZS5lbWl0V2l0aFN1bW1hcnkoc3VtbWFyeSwgbmVlZExvZ0NhcnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q3JlZGl0Q2FyZFN0YXRlKHtcbiAgICBpZENhcmRUeXBlLFxuICAgIGNhcmRCaW5Db3VudHJ5LFxuICB9OiB7XG4gICAgaWRDYXJkVHlwZTogc3RyaW5nO1xuICAgIGNhcmRCaW5Db3VudHJ5Pzogc3RyaW5nO1xuICB9KTogdm9pZCB7XG4gICAgdGhpcy5jcmVkaXRDYXJkU3RhdGVTZXJ2aWNlLmVtaXQoeyBpZENhcmRUeXBlLCBjYXJkQmluQ291bnRyeSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEZvcm1GaWVsZHNTdGF0dXMoZm9ybTogVW50eXBlZEZvcm1Hcm91cCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1GaWVsZHNTdGF0dXM6IEZvcm1GaWVsZHNTdGF0dXMgPSB7fTtcblxuICAgIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW25hbWVdO1xuICAgICAgZm9ybUZpZWxkc1N0YXR1c1tuYW1lXSA9IHtcbiAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgdmFsaWRhdGlvblN0YXR1czogY29udHJvbC5zdGF0dXMsXG4gICAgICAgIGVycm9yczogY29udHJvbC5lcnJvcnMsXG4gICAgICAgIGlzRm9jdXNlZDogdGhpcy5mb2N1c0ZpZWxkTmFtZSA9PT0gbmFtZSxcbiAgICAgICAgaXNUb3VjaGVkOiBjb250cm9sLnRvdWNoZWQsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy5mb3JtRmllbGRzU3RhdHVzU3ViamVjdC5uZXh0KGZvcm1GaWVsZHNTdGF0dXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9ybU1lc3NhZ2VzKG1lc3NhZ2VzPzogWHBzTWVzc2FnZVtdKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtTWVzc2FnZXNTZXJ2aWNlLmVtaXRPblJlc3BvbnNlKG1lc3NhZ2VzKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBTeW5jU2VydmljZShcbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwLFxuICAgIGZpZWxkczogRmllbGRbXSxcbiAgICBjb25maWc6IFBheW1lbnRDb25maWd1cmF0aW9uXG4gICk6IHZvaWQge1xuICAgIHRoaXMuc3luY1NlcnZpY2Uuc2V0dXAoZm9ybSwgZmllbGRzLCBjb25maWcpO1xuICAgIHRoaXMuc3luY1NlcnZpY2UuZGF0YSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuZW1pdEZpbmFuY2VEZXRhaWxzKHJlc3BvbnNlLnN1bW1hcnkpO1xuICAgICAgICB0aGlzLmVtaXRGb3JtTWVzc2FnZXMocmVzcG9uc2UubWVzc2FnZXMpO1xuICAgICAgICB0aGlzLmVtaXRGb3JtUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnN5bmNTZXJ2aWNlLmZpZWxkQXN5bmNWYWxpZGF0aW9uJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoZmllbGRBc3luY1ZhbGlkYXRpb24pID0+IHtcbiAgICAgICAgc3dpdGNoIChmaWVsZEFzeW5jVmFsaWRhdGlvbi5maWVsZC5uYW1lKSB7XG4gICAgICAgICAgY2FzZSBGaWVsZE5hbWVzLmNhcmROdW1iZXI6XG4gICAgICAgICAgICB0aGlzLmVtaXRDcmVkaXRDYXJkU3RhdGUoe1xuICAgICAgICAgICAgICBpZENhcmRUeXBlOiBmaWVsZEFzeW5jVmFsaWRhdGlvbi5yZXNwb25zZS5wYXJhbWV0ZXJzLmlkQ2FyZFR5cGUsXG4gICAgICAgICAgICAgIGNhcmRCaW5Db3VudHJ5OlxuICAgICAgICAgICAgICAgIGZpZWxkQXN5bmNWYWxpZGF0aW9uLnJlc3BvbnNlLnBhcmFtZXRlcnMuY2FyZEJpbkNvdW50cnksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZpbmFuY2VEZXRhaWxzKCk6IHZvaWQge1xuICAgIHRoaXMuZmluYW5jZURldGFpbHNTZXJ2aWNlLmRhdGEkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChmaW5hbmNlRGV0YWlscykgPT4gKHRoaXMuZmluYW5jZURldGFpbHMgPSBmaW5hbmNlRGV0YWlscykpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlcyhmb3JtOiBVbnR5cGVkRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgZm9ybS5zdGF0dXNDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5mb3JtRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBGb3JtQ29udHJvbFN0YXR1cykgPT4ge1xuICAgICAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKGZvcm0pO1xuICAgICAgICB0aGlzLl9wYXltZW50Rm9ybSQubmV4dChzdGF0dXMpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKlxuICAgKiBpbiBjYXNlIHRoZSBmb3JtIHBpZCBjaGFuZ2VzIGRlc3BpdGUgdGhlIG9uZSBwYXNzZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uXG4gICAqICAqL1xuICBwcml2YXRlIHVwZGF0ZVBpZENvbmZpZygpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50UGlkID0gdGhpcy5nZXRQaWQoKTtcbiAgICBpZiAoY3VycmVudFBpZCkge1xuICAgICAgdGhpcy5jb25maWcucGF5bWVudE1ldGhvZElkID0gY3VycmVudFBpZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtUmVzcG9uc2UoZGF0YTogRm9ybVJlc3BvbnNlWydkYXRhJ10pOiB2b2lkIHtcbiAgICBsZXQgdHlwZTogRm9ybVJlc3BvbnNlWyd0eXBlJ107XG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHR5cGUgPSAnaW5pdGlhbGl6ZSc7XG4gICAgfSBlbHNlIGlmIChkYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHR5cGUgPSAnc3VibWl0JztcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZSA9ICdzeW5jJztcbiAgICB9XG4gICAgdGhpcy5fZm9ybVJlc3BvbnNlJC5uZXh0KHtcbiAgICAgIHR5cGUsXG4gICAgICBkYXRhLFxuICAgICAgdG9rZW46IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnRva2VuLFxuICAgICAgaXNTYW5kYm94OiB0aGlzLnNldHRpbmdzU2VydmljZS5pc1NhbmRib3hNb2RlKCksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEluaXRpYWxpemVNZXNzYWdlcygpOiBYcHNNZXNzYWdlW10ge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gKHRoaXMuZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2UpLnBheW1lbnRGb3JtPy5tZXNzYWdlcztcbiAgICBjb25zdCBrb3JlYU5vdGlmaWNhdGlvbiA9ICh0aGlzLmRhdGEgYXMgSW5pdGlhbGl6ZVJlc3BvbnNlKS5wYXltZW50Rm9ybVxuICAgICAgPy5rb3JlYU5vdGlmaWNhdGlvbjtcbiAgICBpZiAoa29yZWFOb3RpZmljYXRpb24pIHtcbiAgICAgIG1lc3NhZ2VzPy5wdXNoKHsgY29kZTogJzAnLCBtZXNzYWdlOiBrb3JlYU5vdGlmaWNhdGlvbj8udGl0bGUgfSk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlcyA/PyBbXTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuQXV0b1N1Ym1pdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXNwb25zZSA9IHRoaXMuZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2U7XG4gICAgaWYgKCFyZXNwb25zZS5wYXltZW50Rm9ybSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGlzUmVkaXJlY3RNZXRob2QgPSByZXNwb25zZS5wYXltZW50Rm9ybS5pc0NoZWNrb3V0O1xuICAgIGNvbnN0IGNhblNraXBGb3JtID0gcmVzcG9uc2UucGF5bWVudEZvcm0uc2tpcEZvcm07XG5cbiAgICBjb25zdCBpc1N1aXRhYmxlQnlTdHJhdGVneSA9IHRoaXMuYXV0b1N1Ym1pdEJlaGF2aW91clN0cmF0ZWdpZXMoXG4gICAgICB0aGlzLmNvbmZpZ1xuICAgICk7XG5cbiAgICByZXR1cm4gKCFpc1JlZGlyZWN0TWV0aG9kICYmIGNhblNraXBGb3JtKSB8fCBpc1N1aXRhYmxlQnlTdHJhdGVneTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2RrUGF5bWVudERhdGFGcm9tUmVzcG9uc2UoXG4gICAgZGF0YTogU3VibWl0UmVzcG9uc2UgfCBJbml0aWFsaXplUmVzcG9uc2VcbiAgKToge1xuICAgIGNoZWNrb3V0RGF0YTogc3RyaW5nIHwgbnVsbDtcbiAgICBmaWVsZHM6IEZpZWxkW107XG4gICAgc3VtbWFyeTogWHBzU3VtbWFyeSB8IG51bGw7XG4gIH0ge1xuICAgIGlmIChpc1N1Ym1pdFJlc3BvbnNlKGRhdGEpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjaGVja291dERhdGE6IGRhdGEucGFyYW1ldGVycz8uY2hlY2tvdXQuZGF0YS5kYXRhLFxuICAgICAgICBmaWVsZHM6IGRhdGEuZmllbGRzLFxuICAgICAgICBzdW1tYXJ5OiBkYXRhLnN1bW1hcnksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjaGVja291dERhdGE6IG51bGwsXG4gICAgICBmaWVsZHM6IGRhdGEucGF5bWVudEZvcm0/LmZpZWxkcyA/PyBbXSxcbiAgICAgIHN1bW1hcnk6IGRhdGEucGF5bWVudEZvcm0/LnN1bW1hcnkgPz8gbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQmVoYXZpb3VyU3RyYXRlZ2llcygpOiB2b2lkIHtcbiAgICBjb25zdCBiZWhhdmlvdXJTdHJhdGVnaWVzID1cbiAgICAgIHRoaXMucGF5bWVudEJlaGF2aW91clNlcnZpY2UuZ2V0QXBwbGljYWJsZUJlaGF2aW91clN0cmF0ZWdpZXMoXG4gICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgdGhpcy5jb25maWdcbiAgICAgICk7XG5cbiAgICBiZWhhdmlvdXJTdHJhdGVnaWVzLmZvckVhY2goKHN0cmF0ZWd5OiBCZWhhdmlvdXJTdHJhdGVneSkgPT4ge1xuICAgICAgc3RyYXRlZ3kub25Jbml0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lCZWhhdmlvdXJTdHJhdGVnaWVzKGNvbmZpZzogUGF5bWVudENvbmZpZ3VyYXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBiZWhhdmlvdXJTdHJhdGVnaWVzID1cbiAgICAgIHRoaXMucGF5bWVudEJlaGF2aW91clNlcnZpY2UuZ2V0QXBwbGljYWJsZUJlaGF2aW91clN0cmF0ZWdpZXMoXG4gICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgY29uZmlnXG4gICAgICApO1xuXG4gICAgYmVoYXZpb3VyU3RyYXRlZ2llcy5mb3JFYWNoKChzdHJhdGVneTogQmVoYXZpb3VyU3RyYXRlZ3kpID0+IHtcbiAgICAgIHN0cmF0ZWd5Lm9uRGVzdHJveSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhdXRvU3VibWl0QmVoYXZpb3VyU3RyYXRlZ2llcyhjb25maWc6IFBheW1lbnRDb25maWd1cmF0aW9uKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYmVoYXZpb3VyU3RyYXRlZ2llcyA9XG4gICAgICB0aGlzLnBheW1lbnRCZWhhdmlvdXJTZXJ2aWNlLmdldEFwcGxpY2FibGVCZWhhdmlvdXJTdHJhdGVnaWVzKFxuICAgICAgICB0aGlzLmRhdGEsXG4gICAgICAgIGNvbmZpZ1xuICAgICAgKTtcblxuICAgIHJldHVybiBiZWhhdmlvdXJTdHJhdGVnaWVzLnNvbWUoKHN0cmF0ZWd5OiBCZWhhdmlvdXJTdHJhdGVneSkgPT4ge1xuICAgICAgcmV0dXJuIHN0cmF0ZWd5LmNhbkF1dG9TdWJtaXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3VibWl0V2l0aEVycm9ycyhzdWJtaXRSZXNwb25zZTogU3VibWl0UmVzcG9uc2UpOiB2b2lkIHtcbiAgICBpZiAoIXN1Ym1pdFJlc3BvbnNlLmVycm9ycz8ubGVuZ3RoKSByZXR1cm47XG5cbiAgICBjb25zdCBmaWVsZHNNYXAgPSB0aGlzLmZpZWxkcy5yZWR1Y2UoKG1hcCwgZmllbGQpID0+IHtcbiAgICAgIGlmIChmaWVsZC52YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy5mb3JtPy5nZXQoZmllbGQubmFtZSk/LnZhbHVlID8/IGZpZWxkLnZhbHVlO1xuICAgICAgICBtYXAuc2V0KGZpZWxkLm5hbWUsIGZpZWxkVmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1hcDtcbiAgICB9LCBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpKTtcblxuICAgIHVwZGF0ZUFmdGVyRXJyb3JSdWxlcy5mb3JFYWNoKChydWxlKSA9PlxuICAgICAgcnVsZS5hcHBseShzdWJtaXRSZXNwb25zZSwgZmllbGRzTWFwKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxvZ1N1Ym1pdEF0dGVtcHQoKTogdm9pZCB7XG4gICAgdGhpcy51c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZS5zZW5kKFxuICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hdHRlbXB0QnV5Tm93LFxuICAgICAgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMuY2xpY2tcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2dTdWJtaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTdWJtaXRBdHRlbXB0ZWQpIHtcbiAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hdHRlbXB0Q29udGludWUsXG4gICAgICAgIHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLmNsaWNrLFxuICAgICAgICB7XG4gICAgICAgICAgZXZlbnRDYXRlZ29yeTogZXZlbnRDYXRlZ29yaWVzLndpdGhJbnZvaWNlLFxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuY2xpY2tCdG5QYXksXG4gICAgICB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5jbGljayxcbiAgICAgIHtcbiAgICAgICAgZXZlbnRDYXRlZ29yeTogZXZlbnRDYXRlZ29yaWVzLndpdGhJbnZvaWNlLFxuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/core/payment/three-ds/api/status-three-ds/three-ds-checkout-form.interface.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtZHMtY2hlY2tvdXQtZm9ybS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L3RocmVlLWRzL2FwaS9zdGF0dXMtdGhyZWUtZHMvdGhyZWUtZHMtY2hlY2tvdXQtZm9ybS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVGhyZWVEc0NoZWNrb3V0Rm9ybSB7XG4gIG1ldGhvZDogc3RyaW5nO1xuICBhY3Rpb246IHN0cmluZztcbiAgcGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcmVkaXJlY3Q6IHtcbiAgICBpc05ld1dpbmRvd1JlcXVpcmVkOiBib29sZWFuO1xuICAgIGlzU2FtZVdpbmRvd1JlcXVpcmVkOiBib29sZWFuO1xuICB9O1xufVxuIl19
|
|
@@ -13,7 +13,7 @@ export class ReinsuranceCheckService {
|
|
|
13
13
|
this.removeTimer(timer.id);
|
|
14
14
|
this.timers[timer.id] = timer;
|
|
15
15
|
const timerInStorage = this.timers[timer.id];
|
|
16
|
-
this.window.setTimeout(() => {
|
|
16
|
+
timerInStorage.timeoutRef = this.window.setTimeout(() => {
|
|
17
17
|
timerInStorage.callback();
|
|
18
18
|
this.timers[timer.id] = null;
|
|
19
19
|
}, timerInStorage.timeoutMs);
|
|
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
38
38
|
type: Inject,
|
|
39
39
|
args: [windowToken]
|
|
40
40
|
}] }] });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVpbnN1cmFuY2UtY2hlY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvdGhyZWUtZHMvcmVpbnN1cmFuY2UtY2hlY2svcmVpbnN1cmFuY2UtY2hlY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBTXBELE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFFbUIsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFKakMsV0FBTSxHQUFXLEVBQUUsQ0FBQztJQUt6QixDQUFDO0lBRUcsUUFBUSxDQUFDLEtBQVk7UUFDMUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7UUFFOUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFxQixDQUFDO1FBRWpFLGNBQWMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3RELGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUUxQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDL0IsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxTQUFTLENBQXNCLENBQUM7SUFDcEQsQ0FBQztJQUVNLFdBQVcsQ0FBQyxFQUFVO1FBQzNCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFdkMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7OEdBbkNVLHVCQUF1QixrQkFJeEIsV0FBVztrSEFKVix1QkFBdUIsY0FGdEIsTUFBTTs7MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBS0ksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaW1lciwgVGltZXJzIH0gZnJvbSAnLi90aW1lci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi8uLi93aW5kb3cudG9rZW4nO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlaW5zdXJhbmNlQ2hlY2tTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0aW1lcnM6IFRpbWVycyA9IHt9O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBFeHRlbmRlZFdpbmRvd1xuICApIHt9XG5cbiAgcHVibGljIGFkZFRpbWVyKHRpbWVyOiBUaW1lcik6IHZvaWQge1xuICAgIGlmICghdGltZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlbW92ZVRpbWVyKHRpbWVyLmlkKTtcblxuICAgIHRoaXMudGltZXJzW3RpbWVyLmlkXSA9IHRpbWVyO1xuXG4gICAgY29uc3QgdGltZXJJblN0b3JhZ2UgPSB0aGlzLnRpbWVyc1t0aW1lci5pZF0gYXMgdW5rbm93biBhcyBUaW1lcjtcblxuICAgIHRpbWVySW5TdG9yYWdlLnRpbWVvdXRSZWYgPSB0aGlzLndpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRpbWVySW5TdG9yYWdlLmNhbGxiYWNrKCk7XG5cbiAgICAgIHRoaXMudGltZXJzW3RpbWVyLmlkXSA9IG51bGw7XG4gICAgfSwgdGltZXJJblN0b3JhZ2UudGltZW91dE1zKSBhcyB1bmtub3duIGFzIG51bWJlcjtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVUaW1lcihpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdGltZXJJblN0b3JhZ2UgPSB0aGlzLnRpbWVyc1tpZF07XG5cbiAgICBpZiAoIXRpbWVySW5TdG9yYWdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy53aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVySW5TdG9yYWdlLnRpbWVvdXRSZWYpO1xuICAgIHRoaXMudGltZXJzW2lkXSA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC90aHJlZS1kcy9yZWluc3VyYW5jZS1jaGVjay90aW1lci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVGltZXIge1xuICBpZDogc3RyaW5nO1xuICB0aW1lb3V0TXM6IG51bWJlcjtcbiAgY2FsbGJhY2soKTogdm9pZDtcbiAgdGltZW91dFJlZj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaW1lcnMge1xuICBba2V5OiBzdHJpbmddOiBUaW1lciB8IG51bGw7XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLXBheW1lbnQtc3lzdGVtcy1pbml0aWFsLWRhdGEuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvc2RrLXBheW1lbnQtc3lzdGVtcy9zZGstcGF5bWVudC1zeXN0ZW1zLWluaXRpYWwtZGF0YS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vcGF5bWVudC9maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3VibWl0UmVzcG9uc2UgfSBmcm9tICcuLi9wYXltZW50L3JlcXVlc3RzL3N1Ym1pdC9yZXNwb25zZS9zdWJtaXQtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgWHBzU3VtbWFyeSB9IGZyb20gJy4uL3BheW1lbnQveHBzLXN1bW1hcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IFhwc0Jvb2xlYW4gfSBmcm9tICcuLi94cHMtYm9vbGVhbi5lbnVtJztcblxuZXhwb3J0IGludGVyZmFjZSBTZGtQYXltZW50U3lzdGVtc0luaXRpYWxEYXRhIHtcbiAgc2FuZGJveDogWHBzQm9vbGVhbjtcbiAgY291bnRyeTogc3RyaW5nO1xuICBmaWVsZHM6IEZpZWxkW107XG4gIHN1bW1hcnk6IFhwc1N1bW1hcnkgfCBudWxsO1xuICBzdWJtaXRSZXNwb25zZTogU3VibWl0UmVzcG9uc2UgfCBudWxsO1xuICBkYXRhOiBzdHJpbmcgfCBudWxsO1xuICBsb2NhbGU6IHN0cmluZztcbiAgc2hvdWxkSGFuZGxlVXNlckJhY2tSZWRpcmVjdE9uU2RrU2lkZTogYm9vbGVhbjtcbiAgaXNUaHJlZURzSW5kZXBlbmRlbnRXaW5kb3dzOiBib29sZWFuO1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvc2V0dGluZ3Mvc2V0dGluZ3MuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRvUmVkaXJlY3RPblN0YXR1cyB9IGZyb20gJy4vYXV0by1yZWRpcmVjdC1vbi1zdGF0dXMnO1xuaW1wb3J0IHsgU3RhdHVzQmFja1Nob3cgfSBmcm9tICcuL3N0YXR1cy1iYWNrLXNob3cnO1xuaW1wb3J0IHsgSGVhZGVyVHlwZSB9IGZyb20gJy4vaGVhZGVyLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBTZXR0aW5nc01vZGUgfSBmcm9tICcuL3NldHRpbmdzLW1vZGUuZW51bSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2V0dGluZ3Mge1xuICBjZG5Vcmw6IHN0cmluZztcbiAgYXBpVVJMOiBzdHJpbmc7XG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xuICB0aGVtZT86IHN0cmluZztcbiAgd2hpdGVfbGFiZWw/OiBib29sZWFuO1xuICBwYXltZW50X3N5c3RlbT86IG51bWJlciB8IG51bGw7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIGRlc2t0b3A/OiB7XG4gICAgaGVhZGVyPzoge1xuICAgICAgaXNfdmlzaWJsZT86IGJvb2xlYW47XG4gICAgICB2aXNpYmxlX2xvZ28/OiBib29sZWFuO1xuICAgICAgdmlzaWJsZV9uYW1lPzogYm9vbGVhbjtcbiAgICAgIHR5cGU/OiBIZWFkZXJUeXBlO1xuICAgICAgY2xvc2VfYnV0dG9uPzogYm9vbGVhbjtcbiAgICB9O1xuICB9O1xuICBtb2JpbGU/OiB7XG4gICAgaGVhZGVyPzoge1xuICAgICAgY2xvc2VfYnV0dG9uPzogYm9vbGVhbjtcbiAgICB9O1xuICB9O1xuICBtb2RlPzogU2V0dGluZ3NNb2RlO1xuICB1c2VyX2FjY291bnQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvc2V0dGluZ3Mvc2V0dGluZ3MuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRvUmVkaXJlY3RPblN0YXR1cyB9IGZyb20gJy4vYXV0by1yZWRpcmVjdC1vbi1zdGF0dXMnO1xuaW1wb3J0IHsgU3RhdHVzQmFja1Nob3cgfSBmcm9tICcuL3N0YXR1cy1iYWNrLXNob3cnO1xuaW1wb3J0IHsgSGVhZGVyVHlwZSB9IGZyb20gJy4vaGVhZGVyLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBTZXR0aW5nc01vZGUgfSBmcm9tICcuL3NldHRpbmdzLW1vZGUuZW51bSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2V0dGluZ3Mge1xuICBjZG5Vcmw6IHN0cmluZztcbiAgYXBpVVJMOiBzdHJpbmc7XG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xuICB0aGVtZT86IHN0cmluZztcbiAgd2hpdGVfbGFiZWw/OiBib29sZWFuO1xuICBwYXltZW50X3N5c3RlbT86IG51bWJlciB8IG51bGw7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIGRlc2t0b3A/OiB7XG4gICAgaGVhZGVyPzoge1xuICAgICAgaXNfdmlzaWJsZT86IGJvb2xlYW47XG4gICAgICB2aXNpYmxlX2xvZ28/OiBib29sZWFuO1xuICAgICAgdmlzaWJsZV9uYW1lPzogYm9vbGVhbjtcbiAgICAgIHR5cGU/OiBIZWFkZXJUeXBlO1xuICAgICAgY2xvc2VfYnV0dG9uPzogYm9vbGVhbjtcbiAgICB9O1xuICB9O1xuICBtb2JpbGU/OiB7XG4gICAgaGVhZGVyPzoge1xuICAgICAgY2xvc2VfYnV0dG9uPzogYm9vbGVhbjtcbiAgICB9O1xuICB9O1xuICBtb2RlPzogU2V0dGluZ3NNb2RlO1xuICB1c2VyX2FjY291bnQ/OiB7XG4gICAgcGF5bWVudF9hY2NvdW50cz86IHtcbiAgICAgIGVuYWJsZT86IGJvb2xlYW47XG4gICAgfTtcbiAgfTtcbiAgZGlzYWJsZV9zYXZlZF9tZXRob2RzPzogYm9vbGVhbjtcbiAgaXNfaW5kZXBlbmRlbnRfd2luZG93cz86IGJvb2xlYW47XG4gIGlzX3RocmVlX2RzX2luZGVwZW5kZW50X3dpbmRvd3M/OiBib29sZWFuO1xuICBwdXJjaGFzZV9leHRlcm5hbF9pZD86IHN0cmluZztcbiAgcGF5c3RhdGlvbjI6IHtcbiAgICBhdXRvcmVkaXJlY3Rfb25fc3RhdHVzPzogQXV0b1JlZGlyZWN0T25TdGF0dXM7XG4gICAgYXV0b3JlZGlyZWN0X29uX3RpbWU/OiBzdHJpbmc7XG4gICAgc3RhdHVzX2JhY2tfc2hvdz86IFN0YXR1c0JhY2tTaG93O1xuICAgIHN0YXR1c19iYWNrX2xpbms/OiBzdHJpbmc7XG4gICAgbWFudWFsX3JlZGlyZWN0aW9uX2FjdGlvbj86IHN0cmluZztcbiAgfTtcbiAgaXNfcHJldmVudF9leHRlcm5hbF9saW5rX29wZW4/OiBib29sZWFuO1xuICBpc19wYXltZW50X21ldGhvZHNfbGlzdF9tb2RlPzogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -5,4 +5,6 @@ export const docomoId = 3692;
|
|
|
5
5
|
export const softbankId = 3693;
|
|
6
6
|
export const auEasyPaymentId = 3694;
|
|
7
7
|
export const yMobileId = 3697;
|
|
8
|
-
|
|
8
|
+
export const mobilePaymentMethodId = 1738;
|
|
9
|
+
export const mobilePaymentMethodId2 = 2015;
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1tZXRob2RzLWlkLnZhcmlhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL3NoYXJlZC9wYXltZW50LW1ldGhvZHMtaWQudmFyaWFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQztBQUM3QixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQzlCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDNUIsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQztBQUM3QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFDcEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQztBQUM5QixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUM7QUFDMUMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHBheVBheUlkID0gMzY2OTtcbmV4cG9ydCBjb25zdCBsaW5lUGF5SWQgPSAzNjc3O1xuZXhwb3J0IGNvbnN0IGF1UGF5SWQgPSAzNjg2O1xuZXhwb3J0IGNvbnN0IGRvY29tb0lkID0gMzY5MjtcbmV4cG9ydCBjb25zdCBzb2Z0YmFua0lkID0gMzY5MztcbmV4cG9ydCBjb25zdCBhdUVhc3lQYXltZW50SWQgPSAzNjk0O1xuZXhwb3J0IGNvbnN0IHlNb2JpbGVJZCA9IDM2OTc7XG5leHBvcnQgY29uc3QgbW9iaWxlUGF5bWVudE1ldGhvZElkID0gMTczODtcbmV4cG9ydCBjb25zdCBtb2JpbGVQYXltZW50TWV0aG9kSWQyID0gMjAxNTtcbiJdfQ==
|