trm-tmpl 3.2.1 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/app/i18n/i18n-key.enum.mjs +2 -1
- package/esm2022/lib/app/i18n/keys.mjs +3 -2
- package/esm2022/lib/app/models/constants.mjs +4 -2
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.mjs +24 -38
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/card-sdk.service.mjs +41 -0
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.mjs +99 -117
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/iframe-validator-directive.directive.mjs +88 -0
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.mjs +15 -37
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.mjs +10 -4
- package/esm2022/lib/app/pages/components/constructor-form/components/index.mjs +3 -1
- package/esm2022/lib/app/pages/components/constructor-form/components/method-amount-hint/method-amount-hint.component.mjs +11 -7
- package/esm2022/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.mjs +20 -24
- package/esm2022/lib/app/pages/components/constructor-form/constructor-form.component.mjs +90 -64
- package/esm2022/lib/app/pages/components/constructor-form/models/field-template.mjs +2 -1
- package/esm2022/lib/app/pages/components/constructor-form/models/index.mjs +1 -2
- package/esm2022/lib/app/pages/components/constructor-form/models/payment-field-options.mjs +1 -1
- package/esm2022/lib/app/pages/components/constructor-form/models/payment-field.mjs +1 -1
- package/esm2022/lib/app/pages/components/constructor-form/services/constructor-form.service.mjs +40 -25
- package/esm2022/lib/app/pages/components/terminal-layout/terminal-layout.component.mjs +11 -9
- package/esm2022/lib/app/pages/directives/fee-template.directive.mjs +17 -0
- package/esm2022/lib/app/pages/directives/index.mjs +2 -1
- package/esm2022/lib/app/services/api-errors.service.mjs +16 -34
- package/esm2022/lib/app/services/csrf.resolver.mjs +6 -18
- package/esm2022/lib/app/services/error.interceptior.mjs +2 -2
- package/esm2022/lib/app/services/local-storage.mjs +70 -0
- package/esm2022/lib/app/services/script-loader.mjs +4 -7
- package/esm2022/lib/app/services/session.data-source.mjs +12 -11
- package/esm2022/lib/app/services/translation/translate-lang-storage.service.mjs +95 -79
- package/esm2022/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.mjs +10 -8
- package/esm2022/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.mjs +6 -6
- package/esm2022/lib/app/shared/components/trm-select/trm-select.component.mjs +1 -1
- package/esm2022/lib/app/terminal-tpl.component.mjs +13 -16
- package/esm2022/lib/app/terminal.module.mjs +43 -75
- package/fesm2022/trm-tmpl.mjs +936 -793
- package/fesm2022/trm-tmpl.mjs.map +1 -1
- package/lib/app/i18n/i18n-key.enum.d.ts +1 -0
- package/lib/app/models/constants.d.ts +3 -1
- package/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.d.ts +7 -10
- package/lib/app/pages/components/constructor-form/components/constructor-field-iframe/card-sdk.service.d.ts +18 -0
- package/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.d.ts +24 -27
- package/lib/app/pages/components/constructor-form/components/constructor-field-iframe/iframe-validator-directive.directive.d.ts +16 -0
- package/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.d.ts +6 -10
- package/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.d.ts +3 -3
- package/lib/app/pages/components/constructor-form/components/index.d.ts +2 -0
- package/lib/app/pages/components/constructor-form/components/method-amount-hint/method-amount-hint.component.d.ts +3 -0
- package/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.d.ts +4 -6
- package/lib/app/pages/components/constructor-form/constructor-form.component.d.ts +6 -9
- package/lib/app/pages/components/constructor-form/models/index.d.ts +0 -1
- package/lib/app/pages/components/constructor-form/models/payment-field-options.d.ts +1 -1
- package/lib/app/pages/components/constructor-form/models/payment-field.d.ts +1 -1
- package/lib/app/pages/components/constructor-form/services/constructor-form.service.d.ts +8 -5
- package/lib/app/pages/components/terminal-layout/terminal-layout.component.d.ts +1 -0
- package/lib/app/pages/directives/fee-template.directive.d.ts +7 -0
- package/lib/app/pages/directives/index.d.ts +1 -0
- package/lib/app/services/api-errors.service.d.ts +4 -10
- package/lib/app/services/csrf.resolver.d.ts +1 -4
- package/lib/app/services/local-storage.d.ts +24 -0
- package/lib/app/services/script-loader.d.ts +1 -2
- package/lib/app/services/session.data-source.d.ts +1 -1
- package/lib/app/services/translation/translate-lang-storage.service.d.ts +22 -23
- package/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.d.ts +4 -34
- package/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.d.ts +1 -2
- package/lib/app/shared/components/trm-select/trm-select.component.d.ts +1 -2
- package/lib/app/terminal-tpl.component.d.ts +2 -1
- package/lib/app/terminal.module.d.ts +26 -4
- package/package.json +1 -1
- package/esm2022/lib/app/pages/components/constructor-form/models/constants.mjs +0 -4
- package/lib/app/pages/components/constructor-form/models/constants.d.ts +0 -3
|
@@ -41,6 +41,7 @@ export const FIELD_TEMPLATE = {
|
|
|
41
41
|
type: PaymentFieldTypeEnum.Amount
|
|
42
42
|
},
|
|
43
43
|
CARD_TERMINAL: {
|
|
44
|
+
name: 'card_terminal',
|
|
44
45
|
type: PaymentFieldTypeEnum.Iframe
|
|
45
46
|
},
|
|
46
47
|
EMAIL: EMAIL_FIELD,
|
|
@@ -106,4 +107,4 @@ export const FIELD_TEMPLATE = {
|
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
109
|
};
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vbW9kZWxzL2ZpZWxkLXRlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakUsT0FBTyxRQUFRLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXhELE1BQU0sV0FBVyxHQUFHO0lBQ2hCLElBQUksRUFBRSxrQkFBa0I7SUFDeEIsV0FBVyxFQUFFLFFBQVEsQ0FBQyw2QkFBNkI7SUFDbkQsS0FBSyxFQUFFLFFBQVEsQ0FBQyx1QkFBdUI7SUFDdkMsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLO0lBQ2pCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFdBQVcsRUFBRSxRQUFRLENBQUMsNkJBQTZCO0lBQ25ELE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLG9CQUFvQixDQUFDLElBQUk7Q0FDbEMsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHO0lBQ2hCLElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxRQUFRLENBQUMsdUJBQXVCO0lBQ3ZDLFdBQVcsRUFBRSxRQUFRLENBQUMsNkJBQTZCO0lBQ25ELFFBQVEsRUFBRSxLQUFLO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixJQUFJLEVBQUUsb0JBQW9CLENBQUMsS0FBSztDQUNuQyxDQUFDO0FBRUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxN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QWMsQ0FBQyxLQUFLO1NBQ25DO0tBQ0o7Q0FDSixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSTE4Tl9LRVkgfSBmcm9tICcuLi8uLi8uLi8uLi9pMThuJztcclxuaW1wb3J0IHsgTUFTS1MgfSBmcm9tICcuLi8uLi8uLi8uLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgUGF5bWVudEZpZWxkVHlwZUVudW0gfSBmcm9tICcuL3BheW1lbnQtZmllbGQtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgUGF5bWVudEZpZWxkIH0gZnJvbSAnLi9wYXltZW50LWZpZWxkJztcclxuaW1wb3J0IG1vbWVudGpzIGZyb20gJ21vbWVudC10aW1lem9uZSc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25UeXBlIH0gZnJvbSAnLi9jb2xsZWN0aW9uLXR5cGUuZW51bSc7XHJcblxyXG5jb25zdCBQSE9ORV9GSUVMRCA9IHtcclxuICAgIG5hbWU6ICdhZGRfcGhvbmVfbnVtYmVyJyxcclxuICAgIGRlc2NyaXB0aW9uOiBJMThOX0tFWS5DT05TVFJVQ1RPUl9ERVNDUklQVElPTl9QSE9ORSxcclxuICAgIGxhYmVsOiBJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9QSE9ORSxcclxuICAgIG1hc2s6IE1BU0tTLlBIT05FLFxyXG4gICAgbWFza1ZhbGlkYXRpb246IHRydWUsXHJcbiAgICBwbGFjZWhvbGRlcjogSTE4Tl9LRVkuQ09OU1RSVUNUT1JfUExBQ0VIT0xERVJfUEhPTkUsXHJcbiAgICByZXF1aXJlOiB0cnVlLFxyXG4gICAgdHlwZTogUGF5bWVudEZpZWxkVHlwZUVudW0uVGV4dFxyXG59O1xyXG5cclxuY29uc3QgRU1BSUxfRklFTEQgPSB7XHJcbiAgICBuYW1lOiAnYWRkX2VtYWlsJyxcclxuICAgIGxhYmVsOiBJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9FTUFJTCxcclxuICAgIHBsYWNlaG9sZGVyOiBJMThOX0tFWS5DT05TVFJVQ1RPUl9QTEFDRUhPTERFUl9FTUFJTCxcclxuICAgIHJlYWRvbmx5OiBmYWxzZSxcclxuICAgIHJlcXVpcmU6IHRydWUsXHJcbiAgICB0eXBlOiBQYXltZW50RmllbGRUeXBlRW51bS5FbWFpbFxyXG59O1xyXG5cclxuY29uc3QgY2FzdFdhbGxldCA9IChjb25maWcpID0+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uY29uZmlnLFxyXG4gICAgICAgIC4uLntcclxuICAgICAgICAgICAgbmFtZTogJ3dhbGxldCcsXHJcbiAgICAgICAgICAgIHdhbGxldDogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IEZJRUxEX1RFTVBMQVRFOiB7W2tleTogc3RyaW5nXTogUGF5bWVudEZpZWxkfSA9IHtcclxuICAgIEFNT1VOVDoge1xyXG4gICAgICAgIG5hbWU6ICdhbW91bnQnLFxyXG4gICAgICAgIGxhYmVsOiBJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9BTU9VTlQsXHJcbiAgICAgICAgcGF0dGVybjogL15cXGQrXFwuP1xcZHswLDJ9LyxcclxuICAgICAgICBwbGFjZWhvbGRlcjogSTE4Tl9LRVkuQ09OU1RSVUNUT1JfUExBQ0VIT0xERVJfQU1PVU5ULFxyXG4gICAgICAgIG1hc2s6ICdzZXBhcmF0b3IuMicsXHJcbiAgICAgICAgcmVxdWlyZTogdHJ1ZSxcclxuICAgICAgICB0eXBlOiBQYXltZW50RmllbGRUeXBlRW51bS5BbW91bnRcclxuICAgIH0sXHJcbiAgICBDQVJEX1RFUk1JTkFMOiB7XHJcbiAgICAgIG5hbWU6ICdjYXJkX3Rlcm1pbmFsJyxcclxuICAgICAgICB0eXBlOiBQYXltZW50RmllbGRUeXBlRW51bS5JZnJhbWVcclxuICAgIH0sXHJcbiAgICBFTUFJTDogRU1BSUxfRklFTEQsXHJcbiAgICBFTUFJTF9XQUxMRVQ6IGNhc3RXYWxsZXQoRU1BSUxfRklFTEQpLFxyXG4gICAgRklSU1RfTkFNRToge1xyXG4gICAgICAgIG5hbWU6ICdhZGRfZmlyc3RfbmFtZScsXHJcbiAgICAgICAgbGFiZWw6IEkxOE5fS0VZLkNPTlNUUlVDVE9SX0xBQkVMX0ZJUlNUTkFNRSxcclxuICAgICAgICBwbGFjZWhvbGRlcjogSTE4Tl9LRVkuQ09OU1RSVUNUT1JfUExBQ0VIT0xERVJfRklSU1ROQU1FLFxyXG4gICAgICAgIHJlcXVpcmU6IHRydWUsXHJcbiAgICAgICAgdHlwZTogUGF5bWVudEZpZWxkVHlwZUVudW0uVGV4dFxyXG4gICAgfSxcclxuICAgIFNFQ09ORF9OQU1FOiB7XHJcbiAgICAgICAgbmFtZTogJ2FkZF9sYXN0X25hbWUnLFxyXG4gICAgICAgIGxhYmVsOiBJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9MQVNUTkFNRSxcclxuICAgICAgICBwbGFjZWhvbGRlcjogSTE4Tl9LRVkuQ09OU1RSVUNUT1JfUExBQ0VIT0xERVJfTEFTVE5BTUUsXHJcbiAgICAgICAgcmVxdWlyZTogdHJ1ZSxcclxuICAgICAgICB0eXBlOiBQYXltZW50RmllbGRUeXBlRW51bS5UZXh0XHJcbiAgICB9LFxyXG4gICAgREFURV9PRl9CSVJUSDoge1xyXG4gICAgICAgIG5hbWU6ICdhZGRfZGF5X29mX2JpcnRoJyxcclxuICAgICAgICBsYWJlbDogSTE4Tl9LRVkuQ09OU1RSVUNUT1JfTEFCRUxfREFURUJJUlRILFxyXG4gICAgICAgIHBsYWNlaG9sZGVyOiAnMTk5My0wNC0yMCcsXHJcbiAgICAgICAgcmVxdWlyZTogdHJ1ZSxcclxuICAgICAgICBtYXNrOiAnMDAwMC0wMC0wMCcsXHJcbiAgICAgICAgdHlwZTogUGF5bWVudEZpZWxkVHlwZUVudW0uRGF0ZSxcclxuICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgIHN0YXJ0Q2FsZW5kYXJEYXRlOiBtb21lbnRqcygpLnN1YnRyYWN0KDE4LCAneWVhcnMnKVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBaSVA6IHtcclxuICAgICAgICBuYW1lOiAnYWRkX3ppcCcsXHJcbiAgICAgICAgbGFiZWw6IEkxOE5fS0VZLkNPTlNUUlVDVE9SX0xBQkVMX1pJUCxcclxuICAgICAgICBwbGFjZWhvbGRlcjogSTE4Tl9LRVkuQ09OU1RSVUNUT1JfUExBQ0VIT0xERVJfWklQLFxyXG4gICAgICAgIHBhdHRlcm46IC9cXGR7Nn0vLFxyXG4gICAgICAgIG1hc2s6ICcwMDAwMDAnLFxyXG4gICAgICAgIG1hc2tWYWxpZGF0aW9uOiB0cnVlLFxyXG4gICAgICAgIHJlYWRvbmx5OiBmYWxzZSxcclxuICAgICAgICByZXF1aXJlOiB0cnVlLFxyXG4gICAgICAgIHR5cGU6IFBheW1lbnRGaWVsZFR5cGVFbnVtLlRleHRcclxuICAgIH0sXHJcbiAgICBQSE9ORTogUEhPTkVfRklFTEQsXHJcbiAgICBQSE9ORV9XQUxMRVQ6IGNhc3RXYWxsZXQoUEhPTkVfRklFTEQpLFxyXG4gICAgRE9DVU1FTlRfVFlQRToge1xyXG4gICAgICAgIG5hbWU6ICdhZGRfZG9jdW1lbnRfdHlwZScsXHJcbiAgICAgICAgbGFiZWw6IEkxOE5fS0VZLkNPTlNUUlVDVE9SX0xBQkVMX1RZUEVET0NVTUVOVCxcclxuICAgICAgICBwbGFjZWhvbGRlcjogSTE4Tl9LRVkuQ09OU1RSVUNUT1JfUExBQ0VIT0xERVJfVFlQRURPQ1VNRU5ULFxyXG4gICAgICAgIHJlYWRvbmx5OiBmYWxzZSxcclxuICAgICAgICByZXF1aXJlOiB0cnVlLFxyXG4gICAgICAgIHR5cGU6IFBheW1lbnRGaWVsZFR5cGVFbnVtLlNlbGVjdCxcclxuICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb25UeXBlLkRvY3VtZW50c1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBCQU5LX1RZUEU6ICB7XHJcbiAgICAgICAgbmFtZTogJ2FkZF9iYW5rX2lkJyxcclxuICAgICAgICBsYWJlbDogSTE4Tl9LRVkuQ09OU1RSVUNUT1JfTEFCRUxfQkFOSyxcclxuICAgICAgICBwbGFjZWhvbGRlcjogSTE4Tl9LRVkuQ09OU1RSVUNUT1JfUExBQ0VIT0xERVJfQkFOSyxcclxuICAgICAgICByZWFkb25seTogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZTogdHJ1ZSxcclxuICAgICAgICB0eXBlOiBQYXltZW50RmllbGRUeXBlRW51bS5TZWxlY3QsXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uVHlwZS5CYW5rc1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -2,7 +2,6 @@ export { TerminalStep } from './terminal-step.enum';
|
|
|
2
2
|
export { CollectionType } from './collection-type.enum';
|
|
3
3
|
export { MASKS } from './../../../../helpers/mask-resolver';
|
|
4
4
|
export { PaymentFieldTypeEnum } from './payment-field-type.enum';
|
|
5
|
-
export * from './constants';
|
|
6
5
|
export * from './field-template';
|
|
7
6
|
export const FORMAT_DATE = 'YYYY-MM-DD';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFBheW1lbnRGaWVsZCB9IGZyb20gJy4vcGF5bWVudC1maWVsZCc7XHJcbmV4cG9ydCB7IFBheW1lbnRGaWVsZE9wdGlvbnMsIFBheW1lbnRGaWVsZE9wdGlvbnNJdGVtIH0gZnJvbSAnLi9wYXltZW50LWZpZWxkLW9wdGlvbnMnO1xyXG5leHBvcnQgeyBQYXltZW50RmllbGRzIH0gZnJvbSAnLi9wYXltZW50LWZpZWxkcyc7XHJcbmV4cG9ydCB7IFRlcm1pbmFsU3RlcCB9IGZyb20gJy4vdGVybWluYWwtc3RlcC5lbnVtJztcclxuZXhwb3J0IHsgQ29sbGVjdGlvblR5cGUgfSBmcm9tICcuL2NvbGxlY3Rpb24tdHlwZS5lbnVtJztcclxuZXhwb3J0IHsgTUFTS1MgfSBmcm9tICcuLy4uLy4uLy4uLy4uL2hlbHBlcnMvbWFzay1yZXNvbHZlcic7XHJcbmV4cG9ydCB7IFBheW1lbnRGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi9wYXltZW50LWZpZWxkLXR5cGUuZW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmllbGQtdGVtcGxhdGUnO1xyXG5leHBvcnQgY29uc3QgRk9STUFUX0RBVEUgPSAnWVlZWS1NTS1ERCc7XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1maWVsZC1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL21vZGVscy9wYXltZW50LWZpZWxkLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb25UeXBlIH0gZnJvbSAnLi9jb2xsZWN0aW9uLXR5cGUuZW51bSc7XHJcbmltcG9ydCBtb21lbnRqcyBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RmllbGRPcHRpb25zSXRlbSB7XHJcbiAgICBpZD86IHN0cmluZztcclxuICAgIG5hbWU/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RmllbGRPcHRpb25zIHtcclxuICAgIGluZm8/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1maWVsZC1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL21vZGVscy9wYXltZW50LWZpZWxkLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb25UeXBlIH0gZnJvbSAnLi9jb2xsZWN0aW9uLXR5cGUuZW51bSc7XHJcbmltcG9ydCBtb21lbnRqcyBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RmllbGRPcHRpb25zSXRlbSB7XHJcbiAgICBpZD86IHN0cmluZztcclxuICAgIG5hbWU/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RmllbGRPcHRpb25zIHtcclxuICAgIGluZm8/OiBhbnk7XHJcbiAgICBmZWU/OiBudW1iZXI7XHJcbiAgICBmaXhlZEZlZT86IG51bWJlcjtcclxuICAgIG1pbkZpeGVkRmVlPzogbnVtYmVyO1xyXG4gICAgY3VycmVuY3k/OiBzdHJpbmc7XHJcbiAgICBtaW4/OiBudW1iZXIgfCBtb21lbnRqcy5Nb21lbnQ7XHJcbiAgICBtYXg/OiBudW1iZXIgfCBtb21lbnRqcy5Nb21lbnQ7XHJcblxyXG4gICAgc3RhcnRDYWxlbmRhckRhdGU/OiBtb21lbnRqcy5Nb21lbnQ7XHJcbiAgICBtaW5MZW5ndGg/OiBudW1iZXI7XHJcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcbiAgICBjb2xsZWN0aW9uPzogQ29sbGVjdGlvblR5cGU7XHJcbiAgICBpdGVtcz86IEFycmF5PFBheW1lbnRGaWVsZE9wdGlvbnNJdGVtPiB8IGZhbHNlO1xyXG59XHJcblxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZm9ybS9tb2RlbHMvcGF5bWVudC1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF5bWVudEZpZWxkT3B0aW9ucyB9IGZyb20gJy4vcGF5bWVudC1maWVsZC1vcHRpb25zJztcclxuaW1wb3J0IHsgUGF5bWVudEZpZWxkVHlwZUVudW0gfSBmcm9tICcuL3BheW1lbnQtZmllbGQtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgSUNvbmZpZyB9IGZyb20gJ25neC1tYXNrL2xpYi9uZ3gtbWFzay5jb25maWcnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RmllbGQge1xyXG4gICAgLypcclxuICAgICAgICDQotC40L8g0L/QvtC70Y8gYW1vdW50LCBlbWFpbCwgdGV4dCwgbnVtYmVyLCBkYXRlLCBzZWxlY3RcclxuICAgICAqL1xyXG4gICAgdHlwZTogUGF5bWVudEZpZWxkVHlwZUVudW07XHJcbiAgICB3YWxsZXQ/OiBib29sZWFuO1xyXG5cclxuICAgIC8qXHJcbiAgICAgICAg0JjQvNGPINC/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZm9ybS9tb2RlbHMvcGF5bWVudC1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGF5bWVudEZpZWxkT3B0aW9ucyB9IGZyb20gJy4vcGF5bWVudC1maWVsZC1vcHRpb25zJztcclxuaW1wb3J0IHsgUGF5bWVudEZpZWxkVHlwZUVudW0gfSBmcm9tICcuL3BheW1lbnQtZmllbGQtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgSUNvbmZpZyB9IGZyb20gJ25neC1tYXNrL2xpYi9uZ3gtbWFzay5jb25maWcnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RmllbGQge1xyXG4gICAgLypcclxuICAgICAgICDQotC40L8g0L/QvtC70Y8gYW1vdW50LCBlbWFpbCwgdGV4dCwgbnVtYmVyLCBkYXRlLCBzZWxlY3RcclxuICAgICAqL1xyXG4gICAgdHlwZTogUGF5bWVudEZpZWxkVHlwZUVudW07XHJcbiAgICB3YWxsZXQ/OiBib29sZWFuO1xyXG5cclxuICAgIC8qXHJcbiAgICAgICAg0JjQvNGPINC/0L7Qu9GPINCyIEFQSSDQvNC10YLQvtC00LDRhVxyXG4gICAgICovXHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLypcclxuICAgICAgINCd0LDQuNC80LXQvdC+0LLQsNC90LjQtSDQv9C+0LvRjyDQsiBVSVxyXG4gICAgKi9cclxuICAgIGxhYmVsPzogc3RyaW5nO1xyXG5cclxuICAgIC8qXHJcbiAgICAgICDQpNC70LDQsyDRgtC+0LvRjNC60L4g0LTQu9GPINGH0YLQtdC90LjRjy4g0J/QvtC70LUg0LIgVUkg0YHRgtCw0L3QtdGCINC90LXRgNC10LTQsNC60YLQuNGA0YPQtdC80L7QtS5cclxuICAgICovXHJcbiAgICByZWFkb25seT86IGJvb2xlYW47XHJcblxyXG4gICAgLypcclxuICAgICAgINCk0LvQsNCzINC+0LHRj9C30LDRgtC10LvRjNC90L7Qs9C+INC/0L7Qu9GPLiDQndCwIFVJINCx0YPQtNC10YIg0YHRgNCw0LHQsNGC0YvQstCw0YLRjCDQstCw0LvQuNC00LDRhtC40Y8g0LTQu9GPINC+0LHRj9C30LDRgtC10LvRjNC90L7Qs9C+INC30LDQv9C+0LvQvdC10L3QuNGPLlxyXG4gICAgKi9cclxuICAgIHJlcXVpcmU/OiBib29sZWFuO1xyXG5cclxuICAgIC8qXHJcbiAgICAgICDQntC/0LjRgdCw0L3QuNC1ICjQv9C+0LTRgdC60LDQt9C60LApINC/0L7QtCDQv9C+0LvQtdC8LlxyXG4gICAgKi9cclxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG5cclxuICAgIC8qXHJcbiAgICAgICDQoNC10LPRg9C70Y/RgNC90L7QtSDQstGL0YDQsNC20LXQvdC40LUg0LTQu9GPINC/0L7Qu9GPLiDQndCwIFVJINCx0YPQtNC10YIg0YHRgNCw0LHQsNGC0YvQstCw0YLRjCDQstCw0LvQuNC00LDRhtC40Y8sINC10YHQu9C4INC/0L7Qu9C1INC90LUg0YHQvtC+0YLQstC10YLRgdGC0LLRg9C10YIg0YDQtdCz0YPQu9GP0YDQvdC+0LzRgyDQstGL0YDQsNC20LXQvdC40Y4uXHJcbiAgICAqL1xyXG4gICAgcGF0dGVybj86IFJlZ0V4cDtcclxuXHJcbiAgICAvKlxyXG4gICAgICAg0JfQvdCw0YfQtdC90LjQtSDQvNCw0YHQutC4INC00LvRjyDQv9C+0LvRjyDRgSDRgtC40L/QvtC8IFRleHQuXHJcbiAgICAgICDQotCw0LrQttC1INCyINC60LDRh9C10YHRgtCy0LUg0LfQvdCw0YfQtdC90LjRjyDQvNC+0LbQvdC+INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDRgdC70LXQtNGD0Y7RidC40LUg0LDQu9C40LDRgdGLINC00LvRjyDQvtCz0YDQsNC90LjRh9C10L3QuNGPINC90LAg0LLQstC+0LTQuNC80YvRhSDRgdC40LzQstC+0LvQvtCyXHJcbiAgICAgICAnQ1BGJywgJ0NQRl9DTlBKJywgJ1BIT05FJywnQ0knLCAnQ1VSUCcsICdDVUlUX0ROSScsICdDQycuXHJcbiAgICAgICAo0JjQvdGE0L7RgNC80LDRhtC40Y4g0L/QviDQvtC/0LjRgdCw0L3QuNGOINC80LDRgdC+0Log0Lgg0LfQsNC/0L7Qu9C90LXQvdC40Y4g0L/QvtC70LXQuSBtYXNrLCBzcGVjaWFsQ2hhcmFjdGVycywgbWFza1ZhbGlkYXRpb24g0LzQvtC20L3QviDQv9C+INCw0LTRgNC10YHRgyBodHRwczovL2dpdGh1Yi5jb20vSnNEYWRkeS9uZ3gtbWFzaylcclxuICAgICovXHJcbiAgICBtYXNrPzogc3RyaW5nO1xyXG4gICAgc3BlY2lhbENoYXJhY3RlcnM/OiBzdHJpbmdbXTtcclxuICAgIG1hc2tWYWxpZGF0aW9uPzogYm9vbGVhbjtcclxuICAgIG1hc2tQYXR0ZXJucz86IElDb25maWdbJ3BhdHRlcm5zJ107XHJcbiAgICBkcm9wU3BlY2lhbENoYXJhY3RlcnM/OiBib29sZWFuO1xyXG5cclxuICAgIC8qXHJcbiAgICAgICDQotC10LrRgdGCINCyIFVJINC/0YDQuCDQvtGC0YHRg9GC0YHRgtCy0LjQuCDQt9C90LDRh9C10L3QuNGPINGDINC/0L7Qu9GPLlxyXG4gICAgKi9cclxuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gICAgdXBwZXJjYXNlPzogYm9vbGVhbjtcclxuXHJcbiAgICBvcHRpb25zPzogUGF5bWVudEZpZWxkT3B0aW9ucztcclxuICAgIHZhbGlkYXRvcj86IChmb3JtOiBGb3JtR3JvdXApID0+IFZhbGlkYXRvckZuO1xyXG4gICAgaW5wdXRNb2RlPzogJ3RlbCcgfCAndGV4dCcgfCAnbnVtZXJpYycgfCAnZW1haWwnIHwgJ3VybCcgfCAnbm9uZSc7XHJcbn1cclxuXHJcblxyXG4iXX0=
|
package/esm2022/lib/app/pages/components/constructor-form/services/constructor-form.service.mjs
CHANGED
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
import { ChangeDetectorRef, inject, Injectable } from '@angular/core';
|
|
2
2
|
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
|
3
|
-
import { CollectionType,
|
|
3
|
+
import { CollectionType, PaymentFieldTypeEnum } from '../models';
|
|
4
4
|
import { SessionDataSource } from '../../../../services/session.data-source';
|
|
5
5
|
import { debounceTime, first, map, switchMap, takeUntil } from 'rxjs/operators';
|
|
6
6
|
import { distinctUntilChanged, of, Subject } from 'rxjs';
|
|
7
7
|
import { removeEmptyProps } from "../../../../../helpers/remove-empty-props";
|
|
8
8
|
import { TERMINAL_METHOD_CONFIGURATION_FACTORY } from '../../../../../const';
|
|
9
|
+
import { LocalStorage } from "../../../../services/local-storage";
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
export class ConstructorFormService extends FormGroup {
|
|
11
12
|
constructor() {
|
|
12
13
|
super({
|
|
13
|
-
country: new FormControl(),
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
country: new FormControl(undefined, Validators.required),
|
|
15
|
+
method: new FormControl(undefined, Validators.required),
|
|
16
|
+
currency: new FormControl(undefined, Validators.required),
|
|
17
|
+
user_currency: new FormControl(undefined, Validators.required),
|
|
17
18
|
payment: new FormGroup({})
|
|
18
19
|
});
|
|
19
20
|
this.sessionDS = inject(SessionDataSource);
|
|
20
21
|
this.cd = inject(ChangeDetectorRef);
|
|
21
22
|
this.configurationFactory = inject(TERMINAL_METHOD_CONFIGURATION_FACTORY, { optional: true }) || ((method, defaultConfig) => defaultConfig);
|
|
23
|
+
this._storage = inject(LocalStorage);
|
|
22
24
|
this.cancelRequestsSubscriber = new Subject();
|
|
23
25
|
this.unSubscriber = new Subject();
|
|
24
26
|
this.fields = [];
|
|
27
|
+
this.ready = false;
|
|
25
28
|
this.amountDynamic = false;
|
|
26
29
|
}
|
|
27
30
|
get methodInfoLoading() {
|
|
@@ -41,6 +44,8 @@ export class ConstructorFormService extends FormGroup {
|
|
|
41
44
|
.forEach((controlName) => this.payment.removeControl(controlName));
|
|
42
45
|
}
|
|
43
46
|
init() {
|
|
47
|
+
this.ready = false;
|
|
48
|
+
this.cd.detectChanges();
|
|
44
49
|
if (this.configurationFactory) {
|
|
45
50
|
this.config = this.configurationFactory(this.methodName, this.sessionDS.getConfiguration(this.methodName));
|
|
46
51
|
}
|
|
@@ -60,7 +65,10 @@ export class ConstructorFormService extends FormGroup {
|
|
|
60
65
|
if (!field.name) {
|
|
61
66
|
return;
|
|
62
67
|
}
|
|
63
|
-
const control = new FormControl(
|
|
68
|
+
const control = new FormControl({
|
|
69
|
+
value: field.type === PaymentFieldTypeEnum.Iframe ? undefined : null,
|
|
70
|
+
disabled: false,
|
|
71
|
+
});
|
|
64
72
|
const validators = [];
|
|
65
73
|
this.amountDynamic = methodInfo.amountDynamic;
|
|
66
74
|
const isEditable = !methodInfo.amountDynamic && this.isAmountEditable();
|
|
@@ -139,15 +147,13 @@ export class ConstructorFormService extends FormGroup {
|
|
|
139
147
|
validators.push(field.validator(this.payment));
|
|
140
148
|
}
|
|
141
149
|
control.setValidators(validators);
|
|
142
|
-
|
|
143
|
-
this.payment.addControl(field.name, control);
|
|
144
|
-
}
|
|
150
|
+
this.payment.addControl(field.name, control);
|
|
145
151
|
this.fetchCollection(field)
|
|
146
152
|
.subscribe(() => {
|
|
147
153
|
control.updateValueAndValidity();
|
|
148
154
|
});
|
|
149
155
|
});
|
|
150
|
-
|
|
156
|
+
this.ready = true;
|
|
151
157
|
}
|
|
152
158
|
fetchCollection(field) {
|
|
153
159
|
const EMPTY_LIST = of([]).pipe(first());
|
|
@@ -205,22 +211,22 @@ export class ConstructorFormService extends FormGroup {
|
|
|
205
211
|
return this.sessionDS.getTypeNameById(id);
|
|
206
212
|
}
|
|
207
213
|
saveDefaultCountry() {
|
|
208
|
-
this.
|
|
209
|
-
}
|
|
210
|
-
get defaultCountry() {
|
|
211
|
-
return this.sessionDS.document.defaultView.localStorage.getItem(DEFAULT_COUNTRY_LOCALHOST_KEY);
|
|
214
|
+
this._storage.saveDefaultCountry(this.country.value);
|
|
212
215
|
}
|
|
213
216
|
saveDefaultMethodName() {
|
|
214
|
-
this.
|
|
215
|
-
}
|
|
216
|
-
get defaultMethodName() {
|
|
217
|
-
return this.sessionDS.document.defaultView.localStorage.getItem(DEFAULT_METHOD_LOCALHOST_KEY);
|
|
217
|
+
this._storage.saveDefaultMethodName(this.methodName);
|
|
218
218
|
}
|
|
219
219
|
saveDefaultCurrency() {
|
|
220
|
-
this.
|
|
220
|
+
this._storage.saveDefaultCurrency(this.currency.value);
|
|
221
|
+
}
|
|
222
|
+
get defaultCountry() {
|
|
223
|
+
return this._storage.defaultCountry;
|
|
224
|
+
}
|
|
225
|
+
get defaultMethodName() {
|
|
226
|
+
return this._storage.defaultMethodName;
|
|
221
227
|
}
|
|
222
228
|
get defaultCurrency() {
|
|
223
|
-
return this.
|
|
229
|
+
return this._storage.defaultCurrency;
|
|
224
230
|
}
|
|
225
231
|
cancelRequests() {
|
|
226
232
|
this.cancelRequestsSubscriber.next();
|
|
@@ -240,6 +246,18 @@ export class ConstructorFormService extends FormGroup {
|
|
|
240
246
|
});
|
|
241
247
|
return removeEmptyProps(data);
|
|
242
248
|
}
|
|
249
|
+
updateValueAndValidityIframes() {
|
|
250
|
+
this.fields.forEach(({ name, type }) => {
|
|
251
|
+
if (type === PaymentFieldTypeEnum.Iframe) {
|
|
252
|
+
this.payment.get(name).updateValueAndValidity({ emitEvent: false });
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
get readyIframesSubmit() {
|
|
257
|
+
return this.fields
|
|
258
|
+
.filter(({ type }) => type !== PaymentFieldTypeEnum.Iframe)
|
|
259
|
+
.every(({ name, type }) => !this.payment.get(name).invalid);
|
|
260
|
+
}
|
|
243
261
|
isAmountEditable() {
|
|
244
262
|
return this.sessionDS.getSessionValue().amountEditable;
|
|
245
263
|
}
|
|
@@ -270,9 +288,6 @@ export class ConstructorFormService extends FormGroup {
|
|
|
270
288
|
});
|
|
271
289
|
this.updateValueAndValidity({ emitEvent: false });
|
|
272
290
|
}
|
|
273
|
-
get isCDEFailed() {
|
|
274
|
-
return this.hasError('cde_error');
|
|
275
|
-
}
|
|
276
291
|
distinctValueChanges() {
|
|
277
292
|
return this.valueChanges.pipe(debounceTime(300), distinctUntilChanged((prev, curr) => {
|
|
278
293
|
if (!prev ||
|
|
@@ -283,7 +298,7 @@ export class ConstructorFormService extends FormGroup {
|
|
|
283
298
|
return (prev.country === curr.country &&
|
|
284
299
|
prev.method === curr.method &&
|
|
285
300
|
prev.currency === curr.currency &&
|
|
286
|
-
|
|
301
|
+
prev.payment.amount === curr.payment.amount);
|
|
287
302
|
}));
|
|
288
303
|
}
|
|
289
304
|
ngOnDestroy() {
|
|
@@ -298,4 +313,4 @@ export class ConstructorFormService extends FormGroup {
|
|
|
298
313
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorFormService, decorators: [{
|
|
299
314
|
type: Injectable
|
|
300
315
|
}], ctorParameters: () => [] });
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL3NlcnZpY2VzL2NvbnN0cnVjdG9yLWZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQW1CLFdBQVcsRUFBRSxTQUFTLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEcsT0FBTyxFQUNMLGNBQWMsRUFDZCw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDRCQUE0QixFQUk1QixvQkFBb0IsRUFDckIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRixPQUFPLEVBQUUsb0JBQW9CLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUU3RSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHN0UsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFNBQXFEO0lBVy9GO1FBQ0UsS0FBSyxDQUFDO1lBQ0osT0FBTyxFQUFFLElBQUksV0FBVyxFQUFFO1lBQzFCLGFBQWEsRUFBRSxJQUFJLFdBQVcsRUFBRTtZQUNoQyxNQUFNLEVBQUUsSUFBSSxXQUFXLEVBQUU7WUFDekIsUUFBUSxF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QUMsT0FBTztnQkFDN0IsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTTtnQkFDM0IsSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUTtnQkFDL0IsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUM3QixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUNqRCxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs4R0FqVlUsc0JBQXNCO2tIQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBDb2xsZWN0aW9uVHlwZSxcclxuICBERUZBVUxUX0NPVU5UUllfTE9DQUxIT1NUX0tFWSxcclxuICBERUZBVUxUX0NVUlJFTkNZX0xPQ0FMSE9TVF9LRVksXHJcbiAgREVGQVVMVF9NRVRIT0RfTE9DQUxIT1NUX0tFWSxcclxuICBQYXltZW50RmllbGQsXHJcbiAgUGF5bWVudEZpZWxkT3B0aW9uc0l0ZW0sXHJcbiAgUGF5bWVudEZpZWxkcyxcclxuICBQYXltZW50RmllbGRUeXBlRW51bVxyXG59IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFNlc3Npb25EYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvc2Vzc2lvbi5kYXRhLXNvdXJjZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1ldGhvZEluZm8sIFRlcm1pbmFsUGF5bWVudFByZXBhcmVSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29kZWdlbi9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgcmVtb3ZlRW1wdHlQcm9wcyB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9oZWxwZXJzL3JlbW92ZS1lbXB0eS1wcm9wc1wiO1xyXG5pbXBvcnQgeyBJMThOX0tFWSB9IGZyb20gXCIuLy4uLy4uLy4uLy4uL2kxOG5cIjtcclxuaW1wb3J0IHsgVEVSTUlOQUxfTUVUSE9EX0NPTkZJR1VSQVRJT05fRkFDVE9SWSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnN0JztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvbnN0cnVjdG9yRm9ybVNlcnZpY2UgZXh0ZW5kcyBGb3JtR3JvdXA8eyBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbCB8IEZvcm1Hcm91cCB9PiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBzZXNzaW9uRFMgPSBpbmplY3QoU2Vzc2lvbkRhdGFTb3VyY2UpO1xyXG4gIHByaXZhdGUgY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgY29uZmlndXJhdGlvbkZhY3RvcnkgPSBpbmplY3QoVEVSTUlOQUxfTUVUSE9EX0NPTkZJR1VSQVRJT05fRkFDVE9SWSwge29wdGlvbmFsOiB0cnVlfSkgfHwgKChtZXRob2Q6IHN0cmluZywgZGVmYXVsdENvbmZpZzogUGF5bWVudEZpZWxkcykgPT4gZGVmYXVsdENvbmZpZyk7XHJcblxyXG4gIHByaXZhdGUgY2FuY2VsUmVxdWVzdHNTdWJzY3JpYmVyID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHVuU3Vic2NyaWJlciA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uZmlnOiBQYXltZW50RmllbGRzO1xyXG4gIGZpZWxkczogUGF5bWVudEZpZWxkW10gPSBbXTtcclxuICBtYXNrZWRXYWxsZXQ6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcih7XHJcbiAgICAgIGNvdW50cnk6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICB1c2VyX2N1cnJlbmN5OiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgICAgbWV0aG9kOiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgICAgY3VycmVuY3k6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICBwYXltZW50OiBuZXcgRm9ybUdyb3VwKHt9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgbWV0aG9kSW5mb0xvYWRpbmcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uRFMubG9hZGluZ01ldGhvZEluZm8kLmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBjb250aW51ZUxvYWRlck9uKCkge1xyXG4gICAgdGhpcy5zZXNzaW9uRFMubG9hZGluZ0NvbmZpcm0kLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBjb250aW51ZUxvYWRlck9mZigpIHtcclxuICAgIHRoaXMuc2Vzc2lvbkRTLmxvYWRpbmdDb25maXJtJC5uZXh0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGdldCBwYXltZW50Rm9ybUZpZWxkTmFtZXMoKSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5wYXltZW50LmNvbnRyb2xzKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVBheW1lbnRGb3JtQ29udHJvbHMoKSB7XHJcbiAgICB0aGlzLnBheW1lbnRGb3JtRmllbGROYW1lc1xyXG4gICAgICAuZm9yRWFjaCgoY29udHJvbE5hbWU6IHN0cmluZykgPT4gdGhpcy5wYXltZW50LnJlbW92ZUNvbnRyb2woY29udHJvbE5hbWUpKTtcclxuICB9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uRmFjdG9yeSkge1xyXG4gICAgICB0aGlzLmNvbmZpZyA9IHRoaXMuY29uZmlndXJhdGlvbkZhY3RvcnkoXHJcbiAgICAgICAgdGhpcy5tZXRob2ROYW1lLFxyXG4gICAgICAgIHRoaXMuc2Vzc2lvbkRTLmdldENvbmZpZ3VyYXRpb24odGhpcy5tZXRob2ROYW1lKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWcgPSB0aGlzLnNlc3Npb25EUy5nZXRDb25maWd1cmF0aW9uKHRoaXMubWV0aG9kTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWVsZHMgPSBbLi4udGhpcy5jb25maWcuZmllbGRzXTtcclxuICAgIC8vIHRoYXQgdHJpY2sgZm9yIHotaW5kZXggb3JkZXIgaW4gcGFnZSAocmV2ZXJzZSBhcnJheSArIHJldmVyc2UgZmxleC1kaXJlY3Rpb24pXHJcbiAgICB0aGlzLmZpZWxkcy5yZXZlcnNlKCk7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uRFNcclxuICAgICAgLmdldE1ldGhvZEluZm8oXHJcbiAgICAgICAgdGhpcy5jdXJyZW5jeS52YWx1ZSxcclxuICAgICAgICB0aGlzLm1ldGhvZC52YWx1ZVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgobWV0aG9kSW5mbykgPT4gdGhpcy5nZW5lcmF0ZUZpZWxkcyhtZXRob2RJbmZvKSksXHJcbiAgICAgICAgZmlyc3QoKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5jYW5jZWxSZXF1ZXN0c1N1YnNjcmliZXIpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYW1vdW50RHluYW1pYyA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGFzeW5jIGdlbmVyYXRlRmllbGRzKG1ldGhvZEluZm86IE1ldGhvZEluZm8pIHtcclxuICAgIHRoaXMuZmllbGRzXHJcbiAgICAgIC5mb3JFYWNoKChmaWVsZDogUGF5bWVudEZpZWxkKSA9PiB7XHJcbiAgICAgICAgaWYgKCFmaWVsZC5uYW1lKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVtYmVyPih1bmRlZmluZWQpO1xyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgICAgICB0aGlzLmFtb3VudER5bmFtaWMgPSBtZXRob2RJbmZvLmFtb3VudER5bmFtaWM7XHJcbiAgICAgICAgY29uc3QgaXNFZGl0YWJsZSA9ICFtZXRob2RJbmZvLmFtb3VudER5bmFtaWMgJiYgdGhpcy5pc0Ftb3VudEVkaXRhYmxlKCk7XHJcbiAgICAgICAgZmllbGQucGxhY2Vob2xkZXIgPSBmaWVsZC5wbGFjZWhvbGRlciB8fCAnJztcclxuICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gUGF5bWVudEZpZWxkVHlwZUVudW0uQW1vdW50KSB7XHJcbiAgICAgICAgICBpZiAobWV0aG9kSW5mby5kZWZhdWx0QW1vdW50IHx8IG1ldGhvZEluZm8uZGVmYXVsdEFtb3VudCA9PT0gMCkge1xyXG4gICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG1ldGhvZEluZm8uZGVmYXVsdEFtb3VudCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIWlzRWRpdGFibGUpIHtcclxuICAgICAgICAgICAgZmllbGQucmVhZG9ubHkgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZmllbGQucmVhZG9ubHkgPSBmYWxzZTtcclxuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKChjb250cm9sKSA9PiArY29udHJvbC52YWx1ZSA9PT0gMCA/IHtyZXF1aXJlZDogdHJ1ZX0gOiBudWxsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGZpZWxkLm9wdGlvbnMgPSBmaWVsZC5vcHRpb25zIHx8IHt9O1xyXG4gICAgICAgICAgZmllbGQub3B0aW9ucy5jdXJyZW5jeSA9IHRoaXMuY3VycmVuY3kudmFsdWU7XHJcbiAgICAgICAgICBpZiAobWV0aG9kSW5mby5mZWUpIHtcclxuICAgICAgICAgICAgZmllbGQub3B0aW9ucy5mZWUgPSBtZXRob2RJbmZvLmZlZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMuZmVlID0gMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChtZXRob2RJbmZvLmZpeGVkRmVlKSB7XHJcbiAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMuZml4ZWRGZWUgPSBtZXRob2RJbmZvLmZpeGVkRmVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZmllbGQub3B0aW9ucy5maXhlZEZlZSA9IDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIW1ldGhvZEluZm8uYW1vdW50RHluYW1pYyAmJiBtZXRob2RJbmZvLmxpbWl0cz8ubWF4KSB7XHJcbiAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMubWF4ID0gbWV0aG9kSW5mby5saW1pdHMubWF4O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLm9wdGlvbnMubWF4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCFtZXRob2RJbmZvLmFtb3VudER5bmFtaWMgJiYgbWV0aG9kSW5mby5saW1pdHM/Lm1pbikge1xyXG4gICAgICAgICAgICBmaWVsZC5vcHRpb25zLm1pbiA9IG1ldGhvZEluZm8ubGltaXRzLm1pbjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC5vcHRpb25zLm1pbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZpZWxkLndhbGxldCAmJiBtZXRob2RJbmZvLmRlZmF1bHRXYWxsZXQpIHtcclxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobWV0aG9kSW5mby5kZWZhdWx0V2FsbGV0KTtcclxuICAgICAgICB9IGVsc2UgaWYgKG1ldGhvZEluZm8uZW1haWwgJiYgZmllbGQudHlwZSA9PT0gUGF5bWVudEZpZWxkVHlwZUVudW0uRW1haWwpIHtcclxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobWV0aG9kSW5mby5lbWFpbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaWVsZC5yZXF1aXJlKSB7XHJcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaWVsZC5wYXR0ZXJuKSB7XHJcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKG5ldyBSZWdFeHAoZmllbGQucGF0dGVybikpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSBQYXltZW50RmllbGRUeXBlRW51bS5FbWFpbCkge1xyXG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMuZW1haWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZmllbGQub3B0aW9ucz8ubWF4ICYmIHR5cGVvZiBmaWVsZC5vcHRpb25zPy5tYXggPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXgoZmllbGQub3B0aW9ucz8ubWF4KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaWVsZC5vcHRpb25zPy5taW4gJiYgdHlwZW9mIGZpZWxkLm9wdGlvbnM/Lm1pbiA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbihmaWVsZC5vcHRpb25zPy5taW4pKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZpZWxkLm9wdGlvbnM/Lm1heExlbmd0aCkge1xyXG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKGZpZWxkLm9wdGlvbnM/Lm1heExlbmd0aCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZmllbGQub3B0aW9ucz8ubWluTGVuZ3RoKSB7XHJcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgoZmllbGQub3B0aW9ucz8ubWluTGVuZ3RoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSBQYXltZW50RmllbGRUeXBlRW51bS5BbW91bnQgJiYgbWV0aG9kSW5mby5hbW91bnREeW5hbWljKSB7XHJcbiAgICAgICAgICB2YWxpZGF0b3JzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0eXBlb2YgZmllbGQudmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goZmllbGQudmFsaWRhdG9yKHRoaXMucGF5bWVudCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICAgICAgaWYgKGZpZWxkLm5hbWUpIHtcclxuICAgICAgICAgIHRoaXMucGF5bWVudC5hZGRDb250cm9sKGZpZWxkLm5hbWUsIGNvbnRyb2wpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZldGNoQ29sbGVjdGlvbihmaWVsZClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIHJldHVybiBtZXRob2RJbmZvO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmZXRjaENvbGxlY3Rpb24oZmllbGQ6IFBheW1lbnRGaWVsZCk6IE9ic2VydmFibGU8UGF5bWVudEZpZWxkT3B0aW9uc0l0ZW1bXT4ge1xyXG4gICAgY29uc3QgRU1QVFlfTElTVCA9IG9mKFtdKS5waXBlKGZpcnN0KCkpO1xyXG4gICAgaWYgKCFmaWVsZC5vcHRpb25zPy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgIHJldHVybiBFTVBUWV9MSVNUO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoIChmaWVsZC5vcHRpb25zLmNvbGxlY3Rpb24pIHtcclxuICAgICAgY2FzZSBDb2xsZWN0aW9uVHlwZS5CYW5rczpcclxuICAgICAgICBmaWVsZC5vcHRpb25zLml0ZW1zID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRTXHJcbiAgICAgICAgICAuZ2V0QmFua3ModGhpcy5tZXRob2QudmFsdWUpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgbWFwKCh7ZGF0YX0pID0+IHtcclxuICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLml0ZW1zID0gZGF0YTtcclxuICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcbiAgICAgIGNhc2UgQ29sbGVjdGlvblR5cGUuRG9jdW1lbnRzOlxyXG4gICAgICAgIGZpZWxkLm9wdGlvbnMuaXRlbXMgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uRFNcclxuICAgICAgICAgIC5nZXREb2N1bWVudHModGhpcy5tZXRob2QudmFsdWUpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgbWFwKCh7ZGF0YX0pID0+IHtcclxuICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLml0ZW1zID0gZGF0YTtcclxuICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIEVNUFRZX0xJU1Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgY291bnRyeSgpOiBBYnN0cmFjdENvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0KCdjb3VudHJ5JykgYXMgQWJzdHJhY3RDb250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1ldGhvZCgpOiBBYnN0cmFjdENvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0KCdtZXRob2QnKSBhcyBBYnN0cmFjdENvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgY3VycmVuY3koKTogRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0KCdjdXJyZW5jeScpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXJDdXJyZW5jeSgpOiBGb3JtQ29udHJvbCB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXQoJ3VzZXJfY3VycmVuY3knKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBwYXltZW50KCk6IEZvcm1Hcm91cCB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXQoJ3BheW1lbnQnKSBhcyBGb3JtR3JvdXA7XHJcbiAgfVxyXG5cclxuICBnZXQgYW1vdW50KCk6IEFic3RyYWN0Q29udHJvbCB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXltZW50LmdldCh0aGlzLmZpZWxkcy5maW5kKGZpZWxkID0+IGZpZWxkLnR5cGUgPT09IFBheW1lbnRGaWVsZFR5cGVFbnVtLkFtb3VudCkubmFtZSkgYXMgQWJzdHJhY3RDb250cm9sO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtZXRob2ROYW1lKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMubWV0aG9kLnZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRTLmdldFR5cGVOYW1lQnlJZCh0aGlzLm1ldGhvZC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRUeXBlTmFtZUJ5SWQoaWQpIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25EUy5nZXRUeXBlTmFtZUJ5SWQoaWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVEZWZhdWx0Q291bnRyeSgpIHtcclxuICAgIHRoaXMuc2Vzc2lvbkRTLmRvY3VtZW50LmRlZmF1bHRWaWV3LmxvY2FsU3RvcmFnZS5zZXRJdGVtKERFRkFVTFRfQ09VTlRSWV9MT0NBTEhPU1RfS0VZLCB0aGlzLmNvdW50cnkudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBkZWZhdWx0Q291bnRyeSgpIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25EUy5kb2N1bWVudC5kZWZhdWx0Vmlldy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShERUZBVUxUX0NPVU5UUllfTE9DQUxIT1NUX0tFWSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZURlZmF1bHRNZXRob2ROYW1lKCkge1xyXG4gICAgdGhpcy5zZXNzaW9uRFMuZG9jdW1lbnQuZGVmYXVsdFZpZXcubG9jYWxTdG9yYWdlLnNldEl0ZW0oREVGQVVMVF9NRVRIT0RfTE9DQUxIT1NUX0tFWSwgdGhpcy5tZXRob2ROYW1lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGVmYXVsdE1ldGhvZE5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uRFMuZG9jdW1lbnQuZGVmYXVsdFZpZXcubG9jYWxTdG9yYWdlLmdldEl0ZW0oREVGQVVMVF9NRVRIT0RfTE9DQUxIT1NUX0tFWSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZURlZmF1bHRDdXJyZW5jeSgpIHtcclxuICAgIHRoaXMuc2Vzc2lvbkRTLmRvY3VtZW50LmRlZmF1bHRWaWV3LmxvY2FsU3RvcmFnZS5zZXRJdGVtKERFRkFVTFRfQ1VSUkVOQ1lfTE9DQUxIT1NUX0tFWSwgdGhpcy5jdXJyZW5jeS52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRlZmF1bHRDdXJyZW5jeSgpIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25EUy5kb2N1bWVudC5kZWZhdWx0Vmlldy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShERUZBVUxUX0NVUlJFTkNZX0xPQ0FMSE9TVF9LRVkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbmNlbFJlcXVlc3RzKCkge1xyXG4gICAgdGhpcy5jYW5jZWxSZXF1ZXN0c1N1YnNjcmliZXIubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFBheW1lbnRWYWx1ZSgpIHtcclxuICAgIGNvbnN0IGRhdGE6IFRlcm1pbmFsUGF5bWVudFByZXBhcmVSZXF1ZXN0ID0ge1xyXG4gICAgICB0eXBlSWQ6IHRoaXMubWV0aG9kLnZhbHVlLFxyXG4gICAgICBjdXJyZW5jeTogdGhpcy5jdXJyZW5jeS52YWx1ZSxcclxuICAgICAgdHlwZTogdGhpcy5nZXRUeXBlTmFtZUJ5SWQodGhpcy5tZXRob2QudmFsdWUpLFxyXG4gICAgICB1c2VyX2N1cnJlbmN5OiB0aGlzLnVzZXJDdXJyZW5jeS52YWx1ZSxcclxuICAgICAgLi4udGhpcy5wYXltZW50LmdldFJhd1ZhbHVlKClcclxuICAgIH1cclxuICAgIHRoaXMuZmllbGRzLmZvckVhY2goKGZpZWxkOiBQYXltZW50RmllbGQpID0+IHtcclxuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IFBheW1lbnRGaWVsZFR5cGVFbnVtLkFtb3VudCkge1xyXG4gICAgICAgIGRhdGFbZmllbGQubmFtZV0gPSArZGF0YVtmaWVsZC5uYW1lXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVtb3ZlRW1wdHlQcm9wcyhkYXRhKTtcclxuICB9XHJcblxyXG4gIGlzQW1vdW50RWRpdGFibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uRFMuZ2V0U2Vzc2lvblZhbHVlKCkuYW1vdW50RWRpdGFibGVcclxuICB9XHJcblxyXG4gIGhhc1doYXRUb0ZpbGwoKSB7XHJcbiAgICBjb25zdCBfaGFzV2hhdFRvRmlsbCA9IHRoaXMuY291bnRyeS5lbmFibGVkIHx8IHRoaXMubWV0aG9kLmVuYWJsZWQgfHwgdGhpcy5jdXJyZW5jeS5lbmFibGVkIHx8IHRoaXMuaXNBbW91bnRFZGl0YWJsZSgpO1xyXG4gICAgY29uc3QgZmllbGRzID0gdGhpcy5maWVsZHM7XHJcbiAgICBpZiAoX2hhc1doYXRUb0ZpbGwpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoIWZpZWxkcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpZWxkcy5zb21lKChmKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnBheW1lbnQuZ2V0KGYubmFtZSk7XHJcbiAgICAgIGlmIChmLnR5cGUgPT09IFBheW1lbnRGaWVsZFR5cGVFbnVtLkFtb3VudCkge1xyXG4gICAgICAgIHJldHVybiAhY29udHJvbC52YWxpZDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5wYXltZW50LmdldChmLm5hbWUpLmVuYWJsZWQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldENERUVycm9yKGNvZGU6IEkxOE5fS0VZKSB7XHJcbiAgICB0aGlzLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5zZXRWYWxpZGF0b3JzKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMubWV0aG9kTmFtZSA9PT0gJ2NhcmQnKSB7XHJcbiAgICAgICAgcmV0dXJuIHtjZGVfZXJyb3I6IGNvZGV9O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDogZmFsc2V9KTtcclxuICB9XHJcblxyXG4gIGdldCBpc0NERUZhaWxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmhhc0Vycm9yKCdjZGVfZXJyb3InKTtcclxuICB9XHJcblxyXG4gIGRpc3RpbmN0VmFsdWVDaGFuZ2VzKCk6IE9ic2VydmFibGU8UGFydGlhbDx7IFt4OiBzdHJpbmddOiBhbnkgfT4+IHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcclxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXYsIGN1cnIpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAhcHJldiB8fFxyXG4gICAgICAgICAgIWN1cnIgfHxcclxuICAgICAgICAgIE9iamVjdC5rZXlzKHByZXYucGF5bWVudCkubGVuZ3RoICE9PSBPYmplY3Qua2V5cyhjdXJyLnBheW1lbnQpLmxlbmd0aFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgcHJldi5jb3VudHJ5ID09PSBjdXJyLmNvdW50cnkgJiZcclxuICAgICAgICAgIHByZXYubWV0aG9kID09PSBjdXJyLm1ldGhvZCAmJlxyXG4gICAgICAgICAgcHJldi5jdXJyZW5jeSA9PT0gY3Vyci5jdXJyZW5jeSAmJlxyXG4gICAgICAgICAgT2JqZWN0LmtleXMocHJldi5wYXltZW50KS5ldmVyeShcclxuICAgICAgICAgICAgKGtleSkgPT4gcHJldi5wYXltZW50W2tleV0gPT09IGN1cnIucGF5bWVudFtrZXldLFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5TdWJzY3JpYmVyLm5leHQoKTtcclxuICAgIHRoaXMudW5TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmNhbmNlbFJlcXVlc3RzU3Vic2NyaWJlci5uZXh0KCk7XHJcbiAgICB0aGlzLmNhbmNlbFJlcXVlc3RzU3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL3NlcnZpY2VzL2NvbnN0cnVjdG9yLWZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQW1CLFdBQVcsRUFBRSxTQUFTLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEcsT0FBTyxFQUFFLGNBQWMsRUFBd0Qsb0JBQW9CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRixPQUFPLEVBQUUsb0JBQW9CLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUU3RSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBR2xFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxTQUFxRDtJQWEvRjtRQUNFLEtBQUssQ0FBQztZQUNKLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN4RCxNQUFNLEVBQUUsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFF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QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs4R0E3VlUsc0JBQXNCO2tIQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29sbGVjdGlvblR5cGUsIFBheW1lbnRGaWVsZCwgUGF5bWVudEZpZWxkT3B0aW9uc0l0ZW0sIFBheW1lbnRGaWVsZHMsIFBheW1lbnRGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvbkRhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zZXNzaW9uLmRhdGEtc291cmNlJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaXJzdCwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTWV0aG9kSW5mbywgVGVybWluYWxQYXltZW50UHJlcGFyZVJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb2RlZ2VuL21vZGVsL21vZGVscyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyByZW1vdmVFbXB0eVByb3BzIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL2hlbHBlcnMvcmVtb3ZlLWVtcHR5LXByb3BzXCI7XHJcbmltcG9ydCB7IEkxOE5fS0VZIH0gZnJvbSBcIi4vLi4vLi4vLi4vLi4vaTE4blwiO1xyXG5pbXBvcnQgeyBURVJNSU5BTF9NRVRIT0RfQ09ORklHVVJBVElPTl9GQUNUT1JZIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29uc3QnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZXMvbG9jYWwtc3RvcmFnZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29uc3RydWN0b3JGb3JtU2VydmljZSBleHRlbmRzIEZvcm1Hcm91cDx7IFtrZXk6IHN0cmluZ106IEZvcm1Db250cm9sIHwgRm9ybUdyb3VwIH0+IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHNlc3Npb25EUyA9IGluamVjdChTZXNzaW9uRGF0YVNvdXJjZSk7XHJcbiAgcHJpdmF0ZSBjZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJpdmF0ZSBjb25maWd1cmF0aW9uRmFjdG9yeSA9IGluamVjdChURVJNSU5BTF9NRVRIT0RfQ09ORklHVVJBVElPTl9GQUNUT1JZLCB7b3B0aW9uYWw6IHRydWV9KSB8fCAoKG1ldGhvZDogc3RyaW5nLCBkZWZhdWx0Q29uZmlnOiBQYXltZW50RmllbGRzKSA9PiBkZWZhdWx0Q29uZmlnKTtcclxuXHJcbiAgcHJpdmF0ZSBfc3RvcmFnZTogTG9jYWxTdG9yYWdlID0gaW5qZWN0KExvY2FsU3RvcmFnZSk7XHJcbiAgcHJpdmF0ZSBjYW5jZWxSZXF1ZXN0c1N1YnNjcmliZXIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgdW5TdWJzY3JpYmVyID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25maWc6IFBheW1lbnRGaWVsZHM7XHJcbiAgZmllbGRzOiBQYXltZW50RmllbGRbXSA9IFtdO1xyXG4gIG1hc2tlZFdhbGxldDogc3RyaW5nO1xyXG4gIHJlYWR5ID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoe1xyXG4gICAgICBjb3VudHJ5OiBuZXcgRm9ybUNvbnRyb2wodW5kZWZpbmVkLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgbWV0aG9kOiBuZXcgRm9ybUNvbnRyb2wodW5kZWZpbmVkLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgY3VycmVuY3k6IG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICB1c2VyX2N1cnJlbmN5OiBuZXcgRm9ybUNvbnRyb2wodW5kZWZpbmVkLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgcGF5bWVudDogbmV3IEZvcm1Hcm91cCh7fSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1ldGhvZEluZm9Mb2FkaW5nKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRTLmxvYWRpbmdNZXRob2RJbmZvJC5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgY29udGludWVMb2FkZXJPbigpIHtcclxuICAgIHRoaXMuc2Vzc2lvbkRTLmxvYWRpbmdDb25maXJtJC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgY29udGludWVMb2FkZXJPZmYoKSB7XHJcbiAgICB0aGlzLnNlc3Npb25EUy5sb2FkaW5nQ29uZmlybSQubmV4dChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgcGF5bWVudEZvcm1GaWVsZE5hbWVzKCkge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMucGF5bWVudC5jb250cm9scyk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVQYXltZW50Rm9ybUNvbnRyb2xzKCkge1xyXG4gICAgdGhpcy5wYXltZW50Rm9ybUZpZWxkTmFtZXNcclxuICAgICAgLmZvckVhY2goKGNvbnRyb2xOYW1lOiBzdHJpbmcpID0+IHRoaXMucGF5bWVudC5yZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lKSk7XHJcbiAgfVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgdGhpcy5yZWFkeSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uRmFjdG9yeSkge1xyXG4gICAgICB0aGlzLmNvbmZpZyA9IHRoaXMuY29uZmlndXJhdGlvbkZhY3RvcnkoXHJcbiAgICAgICAgdGhpcy5tZXRob2ROYW1lLFxyXG4gICAgICAgIHRoaXMuc2Vzc2lvbkRTLmdldENvbmZpZ3VyYXRpb24odGhpcy5tZXRob2ROYW1lKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb25maWcgPSB0aGlzLnNlc3Npb25EUy5nZXRDb25maWd1cmF0aW9uKHRoaXMubWV0aG9kTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWVsZHMgPSBbLi4udGhpcy5jb25maWcuZmllbGRzXTtcclxuICAgIC8vIHRoYXQgdHJpY2sgZm9yIHotaW5kZXggb3JkZXIgaW4gcGFnZSAocmV2ZXJzZSBhcnJheSArIHJldmVyc2UgZmxleC1kaXJlY3Rpb24pXHJcbiAgICB0aGlzLmZpZWxkcy5yZXZlcnNlKCk7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uRFNcclxuICAgICAgLmdldE1ldGhvZEluZm8oXHJcbiAgICAgICAgdGhpcy5jdXJyZW5jeS52YWx1ZSxcclxuICAgICAgICB0aGlzLm1ldGhvZC52YWx1ZVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgobWV0aG9kSW5mbykgPT4gdGhpcy5nZW5lcmF0ZUZpZWxkcyhtZXRob2RJbmZvKSksXHJcbiAgICAgICAgZmlyc3QoKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5jYW5jZWxSZXF1ZXN0c1N1YnNjcmliZXIpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYW1vdW50RHluYW1pYyA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGFzeW5jIGdlbmVyYXRlRmllbGRzKG1ldGhvZEluZm86IE1ldGhvZEluZm8pOiBQcm9taXNlPHZvaWQ+ICB7XHJcbiAgICB0aGlzLmZpZWxkc1xyXG4gICAgICAuZm9yRWFjaCgoZmllbGQ6IFBheW1lbnRGaWVsZCkgPT4ge1xyXG4gICAgICAgIGlmICghZmllbGQubmFtZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBjb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bWJlcj4oe1xyXG4gICAgICAgICAgdmFsdWU6IGZpZWxkLnR5cGUgPT09IFBheW1lbnRGaWVsZFR5cGVFbnVtLklmcmFtZSA/IHVuZGVmaW5lZCA6IG51bGwsXHJcbiAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgICAgIHRoaXMuYW1vdW50RHluYW1pYyA9IG1ldGhvZEluZm8uYW1vdW50RHluYW1pYztcclxuICAgICAgICBjb25zdCBpc0VkaXRhYmxlID0gIW1ldGhvZEluZm8uYW1vdW50RHluYW1pYyAmJiB0aGlzLmlzQW1vdW50RWRpdGFibGUoKTtcclxuICAgICAgICBmaWVsZC5wbGFjZWhvbGRlciA9IGZpZWxkLnBsYWNlaG9sZGVyIHx8ICcnO1xyXG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSBQYXltZW50RmllbGRUeXBlRW51bS5BbW91bnQpIHtcclxuICAgICAgICAgIGlmIChtZXRob2RJbmZvLmRlZmF1bHRBbW91bnQgfHwgbWV0aG9kSW5mby5kZWZhdWx0QW1vdW50ID09PSAwKSB7XHJcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobWV0aG9kSW5mby5kZWZhdWx0QW1vdW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghaXNFZGl0YWJsZSkge1xyXG4gICAgICAgICAgICBmaWVsZC5yZWFkb25seSA9IHRydWU7XHJcbiAgICAgICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmaWVsZC5yZWFkb25seSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goKGNvbnRyb2wpID0+ICtjb250cm9sLnZhbHVlID09PSAwID8ge3JlcXVpcmVkOiB0cnVlfSA6IG51bGwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZmllbGQub3B0aW9ucyA9IGZpZWxkLm9wdGlvbnMgfHwge307XHJcbiAgICAgICAgICBmaWVsZC5vcHRpb25zLmN1cnJlbmN5ID0gdGhpcy5jdXJyZW5jeS52YWx1ZTtcclxuICAgICAgICAgIGlmIChtZXRob2RJbmZvLmZlZSkge1xyXG4gICAgICAgICAgICBmaWVsZC5vcHRpb25zLmZlZSA9IG1ldGhvZEluZm8uZmVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZmllbGQub3B0aW9ucy5mZWUgPSAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKG1ldGhvZEluZm8uZml4ZWRGZWUpIHtcclxuICAgICAgICAgICAgZmllbGQub3B0aW9ucy5maXhlZEZlZSA9IG1ldGhvZEluZm8uZml4ZWRGZWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmaWVsZC5vcHRpb25zLmZpeGVkRmVlID0gMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghbWV0aG9kSW5mby5hbW91bnREeW5hbWljICYmIG1ldGhvZEluZm8ubGltaXRzPy5tYXgpIHtcclxuICAgICAgICAgICAgZmllbGQub3B0aW9ucy5tYXggPSBtZXRob2RJbmZvLmxpbWl0cy5tYXg7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkZWxldGUgZmllbGQub3B0aW9ucy5tYXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIW1ldGhvZEluZm8uYW1vdW50RHluYW1pYyAmJiBtZXRob2RJbmZvLmxpbWl0cz8ubWluKSB7XHJcbiAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMubWluID0gbWV0aG9kSW5mby5saW1pdHMubWluO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLm9wdGlvbnMubWluO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZmllbGQud2FsbGV0ICYmIG1ldGhvZEluZm8uZGVmYXVsdFdhbGxldCkge1xyXG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShtZXRob2RJbmZvLmRlZmF1bHRXYWxsZXQpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobWV0aG9kSW5mby5lbWFpbCAmJiBmaWVsZC50eXBlID09PSBQYXltZW50RmllbGRUeXBlRW51bS5FbWFpbCkge1xyXG4gICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShtZXRob2RJbmZvLmVtYWlsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZpZWxkLnJlcXVpcmUpIHtcclxuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZpZWxkLnBhdHRlcm4pIHtcclxuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4obmV3IFJlZ0V4cChmaWVsZC5wYXR0ZXJuKSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IFBheW1lbnRGaWVsZFR5cGVFbnVtLkVtYWlsKSB7XHJcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5lbWFpbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaWVsZC5vcHRpb25zPy5tYXggJiYgdHlwZW9mIGZpZWxkLm9wdGlvbnM/Lm1heCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heChmaWVsZC5vcHRpb25zPy5tYXgpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZpZWxkLm9wdGlvbnM/Lm1pbiAmJiB0eXBlb2YgZmllbGQub3B0aW9ucz8ubWluID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluKGZpZWxkLm9wdGlvbnM/Lm1pbikpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZmllbGQub3B0aW9ucz8ubWF4TGVuZ3RoKSB7XHJcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoZmllbGQub3B0aW9ucz8ubWF4TGVuZ3RoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaWVsZC5vcHRpb25zPy5taW5MZW5ndGgpIHtcclxuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aChmaWVsZC5vcHRpb25zPy5taW5MZW5ndGgpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IFBheW1lbnRGaWVsZFR5cGVFbnVtLkFtb3VudCAmJiBtZXRob2RJbmZvLmFtb3VudER5bmFtaWMpIHtcclxuICAgICAgICAgIHZhbGlkYXRvcnMubGVuZ3RoID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBmaWVsZC52YWxpZGF0b3IgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChmaWVsZC52YWxpZGF0b3IodGhpcy5wYXltZW50KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgICAgICB0aGlzLnBheW1lbnQuYWRkQ29udHJvbChmaWVsZC5uYW1lLCBjb250cm9sKTtcclxuICAgICAgICB0aGlzLmZldGNoQ29sbGVjdGlvbihmaWVsZClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMucmVhZHkgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmZXRjaENvbGxlY3Rpb24oZmllbGQ6IFBheW1lbnRGaWVsZCk6IE9ic2VydmFibGU8UGF5bWVudEZpZWxkT3B0aW9uc0l0ZW1bXT4ge1xyXG4gICAgY29uc3QgRU1QVFlfTElTVCA9IG9mKFtdKS5waXBlKGZpcnN0KCkpO1xyXG4gICAgaWYgKCFmaWVsZC5vcHRpb25zPy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgIHJldHVybiBFTVBUWV9MSVNUO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoIChmaWVsZC5vcHRpb25zLmNvbGxlY3Rpb24pIHtcclxuICAgICAgY2FzZSBDb2xsZWN0aW9uVHlwZS5CYW5rczpcclxuICAgICAgICBmaWVsZC5vcHRpb25zLml0ZW1zID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRTXHJcbiAgICAgICAgICAuZ2V0QmFua3ModGhpcy5tZXRob2QudmFsdWUpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgbWFwKCh7ZGF0YX0pID0+IHtcclxuICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLml0ZW1zID0gZGF0YTtcclxuICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcbiAgICAgIGNhc2UgQ29sbGVjdGlvblR5cGUuRG9jdW1lbnRzOlxyXG4gICAgICAgIGZpZWxkLm9wdGlvbnMuaXRlbXMgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uRFNcclxuICAgICAgICAgIC5nZXREb2N1bWVudHModGhpcy5tZXRob2QudmFsdWUpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgbWFwKCh7ZGF0YX0pID0+IHtcclxuICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLml0ZW1zID0gZGF0YTtcclxuICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIEVNUFRZX0xJU1Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgY291bnRyeSgpOiBBYnN0cmFjdENvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0KCdjb3VudHJ5JykgYXMgQWJzdHJhY3RDb250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1ldGhvZCgpOiBBYnN0cmFjdENvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0KCdtZXRob2QnKSBhcyBBYnN0cmFjdENvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgY3VycmVuY3koKTogRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0KCdjdXJyZW5jeScpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXJDdXJyZW5jeSgpOiBGb3JtQ29udHJvbCB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXQoJ3VzZXJfY3VycmVuY3knKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBwYXltZW50KCk6IEZvcm1Hcm91cCB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXQoJ3BheW1lbnQnKSBhcyBGb3JtR3JvdXA7XHJcbiAgfVxyXG5cclxuICBnZXQgYW1vdW50KCk6IEFic3RyYWN0Q29udHJvbCB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXltZW50LmdldCh0aGlzLmZpZWxkcy5maW5kKGZpZWxkID0+IGZpZWxkLnR5cGUgPT09IFBheW1lbnRGaWVsZFR5cGVFbnVtLkFtb3VudCkubmFtZSkgYXMgQWJzdHJhY3RDb250cm9sO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtZXRob2ROYW1lKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMubWV0aG9kLnZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRTLmdldFR5cGVOYW1lQnlJZCh0aGlzLm1ldGhvZC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRUeXBlTmFtZUJ5SWQoaWQpIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25EUy5nZXRUeXBlTmFtZUJ5SWQoaWQpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZURlZmF1bHRDb3VudHJ5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvcmFnZS5zYXZlRGVmYXVsdENvdW50cnkodGhpcy5jb3VudHJ5LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHNhdmVEZWZhdWx0TWV0aG9kTmFtZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b3JhZ2Uuc2F2ZURlZmF1bHRNZXRob2ROYW1lKHRoaXMubWV0aG9kTmFtZSk7XHJcbiAgfVxyXG5cclxuICBzYXZlRGVmYXVsdEN1cnJlbmN5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvcmFnZS5zYXZlRGVmYXVsdEN1cnJlbmN5KHRoaXMuY3VycmVuY3kudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRlZmF1bHRDb3VudHJ5KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3RvcmFnZS5kZWZhdWx0Q291bnRyeTtcclxuICB9XHJcblxyXG4gIGdldCBkZWZhdWx0TWV0aG9kTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0b3JhZ2UuZGVmYXVsdE1ldGhvZE5hbWU7XHJcbiAgfVxyXG5cclxuICBnZXQgZGVmYXVsdEN1cnJlbmN5KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3RvcmFnZS5kZWZhdWx0Q3VycmVuY3k7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FuY2VsUmVxdWVzdHMoKSB7XHJcbiAgICB0aGlzLmNhbmNlbFJlcXVlc3RzU3Vic2NyaWJlci5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGF5bWVudFZhbHVlKCkge1xyXG4gICAgY29uc3QgZGF0YTogVGVybWluYWxQYXltZW50UHJlcGFyZVJlcXVlc3QgPSB7XHJcbiAgICAgIHR5cGVJZDogdGhpcy5tZXRob2QudmFsdWUsXHJcbiAgICAgIGN1cnJlbmN5OiB0aGlzLmN1cnJlbmN5LnZhbHVlLFxyXG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGVOYW1lQnlJZCh0aGlzLm1ldGhvZC52YWx1ZSksXHJcbiAgICAgIHVzZXJfY3VycmVuY3k6IHRoaXMudXNlckN1cnJlbmN5LnZhbHVlLFxyXG4gICAgICAuLi50aGlzLnBheW1lbnQuZ2V0UmF3VmFsdWUoKVxyXG4gICAgfVxyXG4gICAgdGhpcy5maWVsZHMuZm9yRWFjaCgoZmllbGQ6IFBheW1lbnRGaWVsZCkgPT4ge1xyXG4gICAgICBpZiAoZmllbGQudHlwZSA9PT0gUGF5bWVudEZpZWxkVHlwZUVudW0uQW1vdW50KSB7XHJcbiAgICAgICAgZGF0YVtmaWVsZC5uYW1lXSA9ICtkYXRhW2ZpZWxkLm5hbWVdO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByZW1vdmVFbXB0eVByb3BzKGRhdGEpO1xyXG4gIH1cclxuICB1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5SWZyYW1lcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZmllbGRzLmZvckVhY2goKHsgbmFtZSwgdHlwZSB9KSA9PiB7XHJcbiAgICAgIGlmICh0eXBlID09PSBQYXltZW50RmllbGRUeXBlRW51bS5JZnJhbWUpIHtcclxuICAgICAgICB0aGlzLnBheW1lbnQuZ2V0KG5hbWUpLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCByZWFkeUlmcmFtZXNTdWJtaXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5maWVsZHNcclxuICAgICAgLmZpbHRlcigoeyB0eXBlIH0pID0+IHR5cGUgIT09IFBheW1lbnRGaWVsZFR5cGVFbnVtLklmcmFtZSlcclxuICAgICAgLmV2ZXJ5KCh7IG5hbWUsIHR5cGUgfSkgPT4gIXRoaXMucGF5bWVudC5nZXQobmFtZSkuaW52YWxpZCk7XHJcbiAgfVxyXG5cclxuICBpc0Ftb3VudEVkaXRhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRTLmdldFNlc3Npb25WYWx1ZSgpLmFtb3VudEVkaXRhYmxlXHJcbiAgfVxyXG5cclxuICBoYXNXaGF0VG9GaWxsKCkge1xyXG4gICAgY29uc3QgX2hhc1doYXRUb0ZpbGwgPSB0aGlzLmNvdW50cnkuZW5hYmxlZCB8fCB0aGlzLm1ldGhvZC5lbmFibGVkIHx8IHRoaXMuY3VycmVuY3kuZW5hYmxlZCB8fCB0aGlzLmlzQW1vdW50RWRpdGFibGUoKTtcclxuICAgIGNvbnN0IGZpZWxkcyA9IHRoaXMuZmllbGRzO1xyXG4gICAgaWYgKF9oYXNXaGF0VG9GaWxsKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKCFmaWVsZHMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWVsZHMuc29tZSgoZikgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5wYXltZW50LmdldChmLm5hbWUpO1xyXG4gICAgICBpZiAoZi50eXBlID09PSBQYXltZW50RmllbGRUeXBlRW51bS5BbW91bnQpIHtcclxuICAgICAgICByZXR1cm4gIWNvbnRyb2wudmFsaWQ7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMucGF5bWVudC5nZXQoZi5uYW1lKS5lbmFibGVkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRDREVFcnJvcihjb2RlOiBJMThOX0tFWSkge1xyXG4gICAgdGhpcy5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuc2V0VmFsaWRhdG9ycygoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm1ldGhvZE5hbWUgPT09ICdjYXJkJykge1xyXG4gICAgICAgIHJldHVybiB7Y2RlX2Vycm9yOiBjb2RlfTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgfVxyXG5cclxuICBkaXN0aW5jdFZhbHVlQ2hhbmdlcygpOiBPYnNlcnZhYmxlPFBhcnRpYWw8eyBbeDogc3RyaW5nXTogYW55IH0+PiB7XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgZGVib3VuY2VUaW1lKDMwMCksXHJcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2LCBjdXJyKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgIXByZXYgfHxcclxuICAgICAgICAgICFjdXJyIHx8XHJcbiAgICAgICAgICBPYmplY3Qua2V5cyhwcmV2LnBheW1lbnQpLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMoY3Vyci5wYXltZW50KS5sZW5ndGhcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIHByZXYuY291bnRyeSA9PT0gY3Vyci5jb3VudHJ5ICYmXHJcbiAgICAgICAgICBwcmV2Lm1ldGhvZCA9PT0gY3Vyci5tZXRob2QgJiZcclxuICAgICAgICAgIHByZXYuY3VycmVuY3kgPT09IGN1cnIuY3VycmVuY3kgJiZcclxuICAgICAgICAgIHByZXYucGF5bWVudC5hbW91bnQgPT09IGN1cnIucGF5bWVudC5hbW91bnRcclxuICAgICAgICApO1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuU3Vic2NyaWJlci5uZXh0KCk7XHJcbiAgICB0aGlzLnVuU3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5jYW5jZWxSZXF1ZXN0c1N1YnNjcmliZXIubmV4dCgpO1xyXG4gICAgdGhpcy5jYW5jZWxSZXF1ZXN0c1N1YnNjcmliZXIudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIl19
|