valtech-components 4.0.994 → 4.0.996
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/components/molecules/date-input/date-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/hint/hint.component.mjs +3 -3
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +3 -3
- package/esm2022/lib/components/organisms/form/form.component.mjs +124 -6
- package/esm2022/lib/components/organisms/survey-response/survey-response.component.mjs +107 -320
- package/esm2022/lib/components/organisms/survey-response/survey-response.i18n.mjs +5 -1
- package/esm2022/lib/components/types.mjs +4 -2
- package/esm2022/lib/services/auth/auth.service.mjs +4 -6
- package/esm2022/lib/services/auth/oauth-callback.component.mjs +4 -5
- package/esm2022/lib/services/firebase/firebase.service.mjs +2 -2
- package/esm2022/lib/services/forms/form-schema-builder.service.mjs +2 -1
- package/esm2022/lib/services/forms/types.mjs +1 -1
- package/esm2022/lib/services/requests/types.mjs +1 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +463 -556
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/article/article.component.d.ts +3 -1
- package/lib/components/organisms/form/form.component.d.ts +9 -0
- package/lib/components/organisms/survey-response/survey-response.component.d.ts +17 -41
- package/lib/components/types.d.ts +4 -2
- package/lib/services/forms/types.d.ts +1 -1
- package/lib/services/requests/types.d.ts +4 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -88,14 +88,13 @@ export class OAuthCallbackComponent {
|
|
|
88
88
|
async processCallback() {
|
|
89
89
|
const params = new URLSearchParams(window.location.search);
|
|
90
90
|
this.clientNonce = params.get('client_nonce');
|
|
91
|
-
// DEBUG: Log all received params
|
|
92
91
|
console.log('[OAuthCallback] URL params received:', {
|
|
93
|
-
url: window.location.href,
|
|
94
92
|
hasAccessToken: params.has('access_token'),
|
|
95
93
|
hasRefreshToken: params.has('refresh_token'),
|
|
96
94
|
hasFirebaseToken: params.has('firebase_token'),
|
|
97
|
-
|
|
98
|
-
|
|
95
|
+
hasError: params.has('error'),
|
|
96
|
+
hasMFAChallenge: params.get('mfa_required') === 'true',
|
|
97
|
+
isPopup: params.get('popup') === 'true',
|
|
99
98
|
});
|
|
100
99
|
// Verificar si hay error
|
|
101
100
|
const error = params.get('error');
|
|
@@ -289,4 +288,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
289
288
|
type: Inject,
|
|
290
289
|
args: [VALTECH_AUTH_CONFIG]
|
|
291
290
|
}] }, { type: i3.ToastService }] });
|
|
292
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtY2FsbGJhY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL29hdXRoLWNhbGxiYWNrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7O0FBR2pGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBU0gsTUFBTSxPQUFPLHNCQUFzQjtJQVVqQyxZQUNVLE1BQWMsRUFDRixXQUErQixFQUNGLE1BQWdDLEVBQ3pFLFlBQTBCO1FBSDFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDRixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDRixXQUFNLEdBQU4sTUFBTSxDQUEwQjtRQUN6RSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWJwQyxZQUFPLEdBQUcsNkJBQTZCLENBQUM7UUFFeEM7Ozs7V0FJRztRQUNLLGdCQUFXLEdBQWtCLElBQUksQ0FBQztJQU92QyxDQUFDO0lBRUosUUFBUTtRQUNOLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNLLFlBQVk7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssTUFBTTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELE9BQU8sQ0FB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QUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsMEVBQTBFO1FBQzVFLENBQUM7SUFDSCxDQUFDO0lBRU8sZUFBZTtRQUNyQiwwRUFBMEU7UUFDMUUsNEVBQTRFO1FBQzVFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssTUFBTSxDQUFDO1lBQy9DLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOytHQWxRVSxzQkFBc0IsbUZBYVgsbUJBQW1CO21HQWI5QixzQkFBc0IsOEVBRnZCLGdCQUFnQiwyREFIaEIsWUFBWSwrQkFBRSxlQUFlOzs0RkFLNUIsc0JBQXNCO2tCQVJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDO29CQUN4QywrRUFBK0U7b0JBQy9FLGlGQUFpRjtvQkFDakYsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0I7OzBCQWFJLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTUZBTWV0aG9kLCBPQXV0aENhbGxiYWNrRGF0YSwgT0F1dGhSZXN1bHQsIE9BdXRoRXJyb3IsIFZhbHRlY2hBdXRoQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBWQUxURUNIX0FVVEhfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBTcGxhc2hDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2F0b21zL3NwbGFzaC9zcGxhc2guY29tcG9uZW50JztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uL3RvYXN0LnNlcnZpY2UnO1xuXG4vKipcbiAqIENvbXBvbmVudGUgZGUgY2FsbGJhY2sgcGFyYSBPQXV0aC5cbiAqXG4gKiBFc3RlIGNvbXBvbmVudGUgcHJvY2VzYSBsYSByZXNwdWVzdGEgZGVsIHNlcnZpZG9yIE9BdXRoIHkgZW52w61hXG4gKiBsb3MgdG9rZW5zIGEgbGEgdmVudGFuYSBwYWRyZSB2aWEgcG9zdE1lc3NhZ2UuXG4gKlxuICogRGViZSBhZ3JlZ2Fyc2UgYSBsYXMgcnV0YXMgZGUgbGEgYXBsaWNhY2nDs246XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBhcHAucm91dGVzLnRzXG4gKiBpbXBvcnQgeyBPQXV0aENhbGxiYWNrQ29tcG9uZW50IH0gZnJvbSAndmFsdGVjaC1jb21wb25lbnRzJztcbiAqXG4gKiBleHBvcnQgY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gKiAgIHsgcGF0aDogJ2F1dGgvb2F1dGgvY2FsbGJhY2snLCBjb21wb25lbnQ6IE9BdXRoQ2FsbGJhY2tDb21wb25lbnQgfSxcbiAqICAgLy8gLi4uIG90cmFzIHJ1dGFzXG4gKiBdO1xuICogYGBgXG4gKlxuICogRWwgYmFja2VuZCByZWRpcmlnZSBhIGVzdGEgcnV0YSBjb24gbG9zIHRva2VucyBlbiBxdWVyeSBwYXJhbXM6XG4gKiBgL2F1dGgvb2F1dGgvY2FsbGJhY2s/YWNjZXNzX3Rva2VuPXh4eCZyZWZyZXNoX3Rva2VuPXh4eCZleHBpcmVzX2luPTkwMGBcbiAqXG4gKiBPIGNvbiBlcnJvcjpcbiAqIGAvYXV0aC9vYXV0aC9jYWxsYmFjaz9lcnJvcj1JTlZBTElEX0NPREUmZXJyb3JfZGVzY3JpcHRpb249Li4uYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtb2F1dGgtY2FsbGJhY2snLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTcGxhc2hDb21wb25lbnRdLFxuICAvLyBNaXNtbyBzcGxhc2ggZGUgYXJyYW5xdWUgZGUgbGEgYXBwIChsb2dvICsgcHVsc2UpIGVuIHZleiBkZSB1biBsb2FkZXIgcHJvcGlvXG4gIC8vIGNhc2ktZHVwbGljYWRvOiBlbCBjYWxsYmFjayBPQXV0aCBlcyB1bmEgY2FyZ2EgZnVuZGFtZW50YWwgeSBkZWJlIHZlcnNlIGlndWFsLlxuICB0ZW1wbGF0ZTogYDx2YWwtc3BsYXNoIC8+YCxcbn0pXG5leHBvcnQgY2xhc3MgT0F1dGhDYWxsYmFja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG1lc3NhZ2UgPSAnUHJvY2VzYW5kbyBhdXRlbnRpY2FjacOzbi4uLic7XG5cbiAgLyoqXG4gICAqIE5vbmNlIHF1ZSBlbCBvcGVuZXIgZ2VuZXLDsyB5IHBhc8OzIHBvciBlbCBmbHVqbyAocm91bmQtdHJpcCBiYWNrZW5kKS4gU2VcbiAgICogcmVlbnbDrWEgYWwgb3BlbmVyIGVuIGNhZGEgbWVuc2FqZSBwYXJhIHF1ZSB2ZXJpZmlxdWUgZWwgb3JpZ2VuIGRlbCBjYWxsYmFja1xuICAgKiB5IHJlY2hhY2UgdW4gb2F1dGhfY2FsbGJhY2tfZGF0YSBmb3JqYWRvIGVuIGxvY2FsU3RvcmFnZSBwb3IgWFNTIChNLTA3KS5cbiAgICovXG4gIHByaXZhdGUgY2xpZW50Tm9uY2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UgfCBudWxsLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVkFMVEVDSF9BVVRIX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IFZhbHRlY2hBdXRoQ29uZmlnIHwgbnVsbCxcbiAgICBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMucHJvY2Vzc0NhbGxiYWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhIHNpIGVzdGUgY2FsbGJhY2sgY29ycmUgY29tbyBsYSBWRU5UQU5BIFBSSU5DSVBBTCAoZmx1am8gcmVkaXJlY3QpLFxuICAgKiBubyBjb21vIHBvcHVwLlxuICAgKlxuICAgKiBOTyB1c2Ftb3Mgd2luZG93Lm5hbWUgbmkgd2luZG93Lm9wZW5lciBjb21vIGluZGljYWRvcmVzIHByaW1hcmlvczpcbiAgICogLSBDaHJvbWUvRmlyZWZveCBib3JyYW4gd2luZG93Lm5hbWUgYWwgbmF2ZWdhciBjcm9zcy1vcmlnaW4gKHByaXZhY2lkYWQpLFxuICAgKiAgIHBvciBsbyBxdWUgeWEgbm8gdmFsZSBwYXJhIGVsIGZsdWpvIE9BdXRoIHF1ZSBwYXNhIHBvciBHb29nbGUvTVMuXG4gICAqIC0gd2luZG93Lm9wZW5lciBxdWVkYSBudWxsIGN1YW5kbyBlbCBwcm92ZWVkb3IgdGllbmUgQ09PUDpzYW1lLW9yaWdpblxuICAgKiAgIChHb29nbGUgbG8gdXNhKSwgcXVlIHNldmVyIGxhIHJlZmVyZW5jaWEgZW4gZWwgYm91bmNlLlxuICAgKlxuICAgKiBJbmRpY2Fkb3IgY29uZmlhYmxlOiBgcG9wdXA9dHJ1ZWAgZW4gbGEgVVJMLiBPQXV0aFNlcnZpY2UgbG8gaW55ZWN0YSBlblxuICAgKiBlbCByZWRpcmVjdF91cmkgYW50ZXMgZGVsIC9zdGFydDsgZWwgYmFja2VuZCBsbyByZWVudsOtYSBpbnRhY3RvIGVuIGVsXG4gICAqIHJlZGlyZWN0IGZpbmFsIHbDrWEgYXBwZW5kUGFyYW1zIOKGkiBzb2JyZXZpdmUgdG9kbyBlbCByb3VuZC10cmlwIHNpblxuICAgKiBkZXBlbmRlciBkZSBlc3RhZG8gZGUgbGEgdmVudGFuYSBkZWwgbmF2ZWdhZG9yLlxuICAgKi9cbiAgcHJpdmF0ZSBpc01haW5XaW5kb3coKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICBpZiAocGFyYW1zLmdldCgncG9wdXAnKSA9PT0gJ3RydWUnKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICF3aW5kb3cub3BlbmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBsZXRhIGVsIGxvZ2luIGVuIGxhIHZlbnRhbmEgcHJpbmNpcGFsOiBpbnN0YWxhIGxhIHNlc2nDs24gZGVzZGUgbG9zXG4gICAqIHRva2VucyBkZWwgY2FsbGJhY2sgeSBuYXZlZ2EgYWwgaG9tZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY29tcGxldGVJbk1haW5XaW5kb3cocmVzdWx0OiBPQXV0aFJlc3VsdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghdGhpcy5hdXRoU2VydmljZSkgcmV0dXJuIGZhbHNlO1xuICAgIGF3YWl0IHRoaXMuYXV0aFNlcnZpY2Uuc2V0RXh0ZXJuYWxBdXRoKHtcbiAgICAgIGFjY2Vzc1Rva2VuOiByZXN1bHQuYWNjZXNzVG9rZW4sXG4gICAgICByZWZyZXNoVG9rZW46IHJlc3VsdC5yZWZyZXNoVG9rZW4sXG4gICAgICBmaXJlYmFzZVRva2VuOiByZXN1bHQuZmlyZWJhc2VUb2tlbixcbiAgICAgIGV4cGlyZXNJbjogcmVzdWx0LmV4cGlyZXNJbixcbiAgICAgIHJvbGVzOiByZXN1bHQucm9sZXMsXG4gICAgICBwZXJtaXNzaW9uczogcmVzdWx0LnBlcm1pc3Npb25zLFxuICAgIH0pO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5jb25maWc/LmhvbWVSb3V0ZSB8fCAnLycsIHsgcmVwbGFjZVVybDogdHJ1ZSB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc0NhbGxiYWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgdGhpcy5jbGllbnROb25jZSA9IHBhcmFtcy5nZXQoJ2NsaWVudF9ub25jZScpO1xuXG4gICAgLy8gREVCVUc6IExvZyBhbGwgcmVjZWl2ZWQgcGFyYW1zXG4gICAgY29uc29sZS5sb2coJ1tPQXV0aENhbGxiYWNrXSBVUkwgcGFyYW1zIHJlY2VpdmVkOicsIHtcbiAgICAgIHVybDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgICBoYXNBY2Nlc3NUb2tlbjogcGFyYW1zLmhhcygnYWNjZXNzX3Rva2VuJyksXG4gICAgICBoYXNSZWZyZXNoVG9rZW46IHBhcmFtcy5oYXMoJ3JlZnJlc2hfdG9rZW4nKSxcbiAgICAgIGhhc0ZpcmViYXNlVG9rZW46IHBhcmFtcy5oYXMoJ2ZpcmViYXNlX3Rva2VuJyksXG4gICAgICBmaXJlYmFzZVRva2VuTGVuZ3RoOiBwYXJhbXMuZ2V0KCdmaXJlYmFzZV90b2tlbicpPy5sZW5ndGggfHwgMCxcbiAgICAgIGVycm9yOiBwYXJhbXMuZ2V0KCdlcnJvcicpLFxuICAgIH0pO1xuXG4gICAgLy8gVmVyaWZpY2FyIHNpIGhheSBlcnJvclxuICAgIGNvbnN0IGVycm9yID0gcGFyYW1zLmdldCgnZXJyb3InKTtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRoaXMuc2VuZFRvUGFyZW50KHtcbiAgICAgICAgdHlwZTogJ29hdXRoLWNhbGxiYWNrJyxcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiBlcnJvcixcbiAgICAgICAgICBtZXNzYWdlOiBwYXJhbXMuZ2V0KCdlcnJvcl9kZXNjcmlwdGlvbicpIHx8ICdFcnJvciBkZSBhdXRlbnRpY2FjacOzbicsXG4gICAgICAgIH0gYXMgT0F1dGhFcnJvcixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5tZXNzYWdlID0gJ0Vycm9yIGRlIGF1dGVudGljYWNpw7NuJztcblxuICAgICAgLy8gRmx1am8gcmVkaXJlY3QgKHZlbnRhbmEgcHJpbmNpcGFsKTogbm8gaGF5IG9wZW5lci9wb3B1cCBlc2N1Y2hhbmRvXG4gICAgICAvLyBzZW5kVG9QYXJlbnQsIGFzw60gcXVlIGNsb3NlQWZ0ZXJEZWxheSgpIG5vIGhhY2UgbmFkYSB5IGVsIHVzdWFyaW9cbiAgICAgIC8vIHF1ZWRhYmEgcGVnYWRvIGVuIGVsIHNwbGFzaCBzaW4gZmVlZGJhY2sgKGJ1ZyByZWFsLCAyMDI2LTA4LTA0OiB1blxuICAgICAgLy8gZXJyb3IgZGVsIHByb3ZpZGVyIOKAlCBlai4gTWljcm9zb2Z0IHNlcnZlcl9lcnJvciDigJQgZGVqYWJhIGFsIHVzdWFyaW9cbiAgICAgIC8vIHZpZW5kbyBlbCBzcGxhc2ggY29uZ2VsYWRvIGluZGVmaW5pZGFtZW50ZSkuIFRvYXN0IGFjw6EgbWlzbW8gKG5vIHVuXG4gICAgICAvLyBxdWVyeSBwYXJhbSBxdWUgbmFkaWUgbGVlIOKAlCBtaXNtbyBtb3Rpdm8gcG9yIGVsIHF1ZSBvYXV0aF9tZmE9MSBlbiBlbFxuICAgICAgLy8gZmx1am8gTUZBIGRlIGFiYWpvIHRhbXBvY28gc2UgcGFyc2VhOiBlbCBlc3RhZG8gcmVhbCB2aXZlIGVuIGVsXG4gICAgICAvLyBzZXJ2aWNpbykgKyB2b2x2ZXIgYWwgbG9naW4uXG4gICAgICBpZiAodGhpcy5pc01haW5XaW5kb3coKSkge1xuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgICBtZXNzYWdlOiBwYXJhbXMuZ2V0KCdlcnJvcl9kZXNjcmlwdGlvbicpIHx8ICdFcnJvciBkZSBhdXRlbnRpY2FjacOzbicsXG4gICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICBkdXJhdGlvbjogNDAwMCxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGxvZ2luUm91dGUgPSB0aGlzLmNvbmZpZz8ubG9naW5Sb3V0ZSB8fCAnL2xvZ2luJztcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChsb2dpblJvdXRlLCB7IHJlcGxhY2VVcmw6IHRydWUgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jbG9zZUFmdGVyRGVsYXkoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBNRkEgcmVxdWVyaWRvIOKAlCBlbCBiYWNrZW5kIHJlZGlyaWdlIHNpbiB0b2tlbnMsIGNvbiBtZmFfdG9rZW4uIEVsIGZsdWpvXG4gICAgLy8gY29udGluw7phIGNvbiBlbCBjaGFsbGVuZ2UgTUZBIChBdXRoU2VydmljZS5zZXRNRkFQZW5kaW5nIOKGkiBtb2RhbCB2ZXJpZnkpLlxuICAgIGlmIChwYXJhbXMuZ2V0KCdtZmFfcmVxdWlyZWQnKSA9PT0gJ3RydWUnKSB7XG4gICAgICBjb25zdCBtZmFUb2tlbiA9IHBhcmFtcy5nZXQoJ21mYV90b2tlbicpIHx8IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IG1mYU1ldGhvZCA9IChwYXJhbXMuZ2V0KCdtZmFfbWV0aG9kJykgYXMgTUZBTWV0aG9kKSB8fCB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnNlbmRUb1BhcmVudCh7XG4gICAgICAgIHR5cGU6ICdvYXV0aC1jYWxsYmFjaycsXG4gICAgICAgIHRva2Vuczoge1xuICAgICAgICAgIGFjY2Vzc1Rva2VuOiAnJyxcbiAgICAgICAgICByZWZyZXNoVG9rZW46ICcnLFxuICAgICAgICAgIGV4cGlyZXNJbjogMCxcbiAgICAgICAgICBtZmFSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZmFUb2tlbixcbiAgICAgICAgICBtZmFNZXRob2QsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gRmx1am8gcmVkaXJlY3QgZW4gdmVudGFuYSBwcmluY2lwYWw6IG5vIGhheSBvcGVuZXIgZXNjdWNoYW5kbyBlbFxuICAgICAgLy8gY2FsbGJhY2suIERlamFtb3MgZWwgY2hhbGxlbmdlIGVuIEF1dGhTZXJ2aWNlIHkgdm9sdmVtb3MgYWwgbG9naW4gcGFyYVxuICAgICAgLy8gcXVlIHZhbC1sb2dpbiBhYnJhIGVsIG1vZGFsIE1GQSBzb2JyZSBsYSBtaXNtYSBTUEEuXG4gICAgICBpZiAodGhpcy5pc01haW5XaW5kb3coKSAmJiB0aGlzLmF1dGhTZXJ2aWNlICYmIG1mYVRva2VuICYmIG1mYU1ldGhvZCkge1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnNldE9BdXRoTUZBUGVuZGluZyhtZmFUb2tlbiwgbWZhTWV0aG9kKTtcbiAgICAgICAgY29uc3QgbG9naW5Sb3V0ZSA9IHRoaXMuY29uZmlnPy5sb2dpblJvdXRlIHx8ICcvbG9naW4nO1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAke2xvZ2luUm91dGV9P29hdXRoX21mYT0xYCwgeyByZXBsYWNlVXJsOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMubWVzc2FnZSA9ICdWZXJpZmljYWNpw7NuIGFkaWNpb25hbCByZXF1ZXJpZGEnO1xuICAgICAgdGhpcy5jbG9zZUFmdGVyRGVsYXkoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFeHRyYWVyIHRva2Vuc1xuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gcGFyYW1zLmdldCgnYWNjZXNzX3Rva2VuJyk7XG4gICAgY29uc3QgcmVmcmVzaFRva2VuID0gcGFyYW1zLmdldCgncmVmcmVzaF90b2tlbicpO1xuICAgIGNvbnN0IGV4cGlyZXNJbiA9IHBhcmFtcy5nZXQoJ2V4cGlyZXNfaW4nKTtcbiAgICBjb25zdCBmaXJlYmFzZVRva2VuID0gcGFyYW1zLmdldCgnZmlyZWJhc2VfdG9rZW4nKTtcblxuICAgIGlmICghYWNjZXNzVG9rZW4gfHwgIXJlZnJlc2hUb2tlbikge1xuICAgICAgdGhpcy5zZW5kVG9QYXJlbnQoe1xuICAgICAgICB0eXBlOiAnb2F1dGgtY2FsbGJhY2snLFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIGNvZGU6ICdNSVNTSU5HX1RPS0VOUycsXG4gICAgICAgICAgbWVzc2FnZTogJ05vIHNlIHJlY2liaWVyb24gbG9zIHRva2VucyBkZSBhdXRlbnRpY2FjacOzbicsXG4gICAgICAgIH0gYXMgT0F1dGhFcnJvcixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5tZXNzYWdlID0gJ0Vycm9yOiB0b2tlbnMgbm8gcmVjaWJpZG9zJztcbiAgICAgIHRoaXMuY2xvc2VBZnRlckRlbGF5KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRXh0cmFlciByb2xlcyB5IHBlcm1pc29zIChwdWVkZW4gdmVuaXIgY29tbyBKU09OIGVuIGJhc2U2NClcbiAgICBsZXQgcm9sZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAgIGxldCBwZXJtaXNzaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCByb2xlc1BhcmFtID0gcGFyYW1zLmdldCgncm9sZXMnKTtcbiAgICBjb25zdCBwZXJtaXNzaW9uc1BhcmFtID0gcGFyYW1zLmdldCgncGVybWlzc2lvbnMnKTtcblxuICAgIGlmIChyb2xlc1BhcmFtKSB7XG4gICAgICB0cnkge1xuICAgICAgICByb2xlcyA9IEpTT04ucGFyc2UoYXRvYihyb2xlc1BhcmFtKSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcm9sZXMgPSByb2xlc1BhcmFtLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBlcm1pc3Npb25zUGFyYW0pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHBlcm1pc3Npb25zID0gSlNPTi5wYXJzZShhdG9iKHBlcm1pc3Npb25zUGFyYW0pKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBwZXJtaXNzaW9ucyA9IHBlcm1pc3Npb25zUGFyYW0uc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbnZpYXIgdG9rZW5zIGEgbGEgdmVudGFuYSBwYWRyZVxuICAgIGNvbnN0IHJlc3VsdDogT0F1dGhSZXN1bHQgPSB7XG4gICAgICBhY2Nlc3NUb2tlbixcbiAgICAgIHJlZnJlc2hUb2tlbixcbiAgICAgIGV4cGlyZXNJbjogZXhwaXJlc0luID8gcGFyc2VJbnQoZXhwaXJlc0luLCAxMCkgOiA5MDAsXG4gICAgICBmaXJlYmFzZVRva2VuOiBmaXJlYmFzZVRva2VuIHx8IHVuZGVmaW5lZCxcbiAgICAgIHJvbGVzLFxuICAgICAgcGVybWlzc2lvbnMsXG4gICAgICBpc05ld1VzZXI6IHBhcmFtcy5nZXQoJ2lzX25ld191c2VyJykgPT09ICd0cnVlJyxcbiAgICAgIGxpbmtlZDogcGFyYW1zLmdldCgnbGlua2VkJykgPT09ICd0cnVlJyxcbiAgICB9O1xuXG4gICAgdGhpcy5zZW5kVG9QYXJlbnQoe1xuICAgICAgdHlwZTogJ29hdXRoLWNhbGxiYWNrJyxcbiAgICAgIHRva2VuczogcmVzdWx0LFxuICAgIH0pO1xuXG4gICAgLy8gRmx1am8gcmVkaXJlY3QgKHZlbnRhbmEgcHJpbmNpcGFsLCBzaW4gb3BlbmVyIHF1ZSBjb25zdW1hIGVsIGxvY2FsU3RvcmFnZSk6XG4gICAgLy8gaW5zdGFsYXIgbGEgc2VzacOzbiBhY8OhIG1pc21vIHkgbmF2ZWdhciBhbCBob21lLCBlbiB2ZXogZGUgcXVlZGFyIHBlZ2Fkby5cbiAgICBpZiAodGhpcy5pc01haW5XaW5kb3coKSAmJiAoYXdhaXQgdGhpcy5jb21wbGV0ZUluTWFpbldpbmRvdyhyZXN1bHQpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubWVzc2FnZSA9ICdBdXRlbnRpY2FjacOzbiBleGl0b3NhJztcbiAgICB0aGlzLmNsb3NlQWZ0ZXJEZWxheSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZW5kVG9QYXJlbnQoZGF0YTogT0F1dGhDYWxsYmFja0RhdGEpOiB2b2lkIHtcbiAgICAvLyBBZGp1bnRhciBlbCBub25jZSBkZWwgb3BlbmVyIChNLTA3KSBhIFRPRE8gbWVuc2FqZSAoc3VjY2VzcywgTUZBLCBlcnJvcilcbiAgICAvLyBwYXJhIHF1ZSBlbCBvcGVuZXIgdmVyaWZpcXVlIHF1ZSBlbCBjYWxsYmFjayBlcyBkZSBzdSBwcm9waW8gZmx1am8uXG4gICAgaWYgKHRoaXMuY2xpZW50Tm9uY2UpIHtcbiAgICAgIGRhdGEubm9uY2UgPSB0aGlzLmNsaWVudE5vbmNlO1xuICAgIH1cblxuICAgIC8vIEJyb2FkY2FzdENoYW5uZWw6IGNhbmFsIHByaW5jaXBhbCBpbW11bmUgYSBDT09QLiBGdW5jaW9uYSBlbnRyZSBtaXNtYSBvcmlnaW5cbiAgICAvLyBzaW4gaW1wb3J0YXIgZWwgYnJvd3NpbmcgY29udGV4dCBncm91cC4gRWwgb3BlbmVyIGxvIGVzY3VjaGEgZW4gT0F1dGhTZXJ2aWNlLlxuICAgIHRyeSB7XG4gICAgICBjb25zdCBiYyA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKCd2YWx0ZWNoLW9hdXRoLWNhbGxiYWNrJyk7XG4gICAgICBiYy5wb3N0TWVzc2FnZShkYXRhKTtcbiAgICAgIGJjLmNsb3NlKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdbT0F1dGhDYWxsYmFja10gQnJvYWRjYXN0Q2hhbm5lbCBmYWlsZWQ6JywgZSk7XG4gICAgfVxuXG4gICAgLy8gbG9jYWxTdG9yYWdlOiBmYWxsYmFjayBzZWN1bmRhcmlvIChwYXJhIGNvbnRleHRvcyBzaW4gQnJvYWRjYXN0Q2hhbm5lbCBvXG4gICAgLy8gY29uIHN0b3JhZ2UgcGFydGl0aW9uaW5nIHJlc3RyaW5naWRvKS5cbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ29hdXRoX2NhbGxiYWNrX2RhdGEnLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnb2F1dGhfY2FsbGJhY2tfdGltZXN0YW1wJywgRGF0ZS5ub3coKS50b1N0cmluZygpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tPQXV0aENhbGxiYWNrXSBDb3VsZCBub3Qgc2F2ZSB0byBsb2NhbFN0b3JhZ2U6JywgZSk7XG4gICAgfVxuXG4gICAgLy8gcG9zdE1lc3NhZ2U6IHRlcmNlciBmYWxsYmFjayAoZnVuY2lvbmEgY3VhbmRvIG5vIGhheSBDT09QIGVzdHJpY3RvKS5cbiAgICB0cnkge1xuICAgICAgaWYgKHdpbmRvdy5vcGVuZXIgJiYgIXdpbmRvdy5vcGVuZXIuY2xvc2VkKSB7XG4gICAgICAgIHdpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UoZGF0YSwgd2luZG93LmxvY2F0aW9uLm9yaWdpbik7XG4gICAgICB9IGVsc2UgaWYgKHdpbmRvdy5wYXJlbnQgIT09IHdpbmRvdykge1xuICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKGRhdGEsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIENPT1AgYmxvY2tzIHBvc3RNZXNzYWdlIOKAlCBsb3MgZG9zIGZhbGxiYWNrcyBhbnRlcmlvcmVzIGN1YnJlbiBlc3RlIGNhc29cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsb3NlQWZ0ZXJEZWxheSgpOiB2b2lkIHtcbiAgICAvLyBwb3B1cD10cnVlIGVuIGxhIFVSTCBlcyBlbCBpbmRpY2Fkb3IgY29uZmlhYmxlIGRlIHF1ZSBzb21vcyBwb3B1cCBPQXV0aFxuICAgIC8vICh3aW5kb3cubmFtZSBzZSBib3JyYSBlbiBjcm9zcy1vcmlnaW4gbmF2OyB3aW5kb3cub3BlbmVyIHNldmVyIHBvciBDT09QKS5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgICBjb25zdCBpc1BvcHVwID0gcGFyYW1zLmdldCgncG9wdXAnKSA9PT0gJ3RydWUnO1xuICAgICAgaWYgKHdpbmRvdy5vcGVuZXIgfHwgaXNQb3B1cCkge1xuICAgICAgICB3aW5kb3cuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9LCA1MDApO1xuICB9XG59XG4iXX0=
|
|
291
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtY2FsbGJhY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL29hdXRoLWNhbGxiYWNrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7O0FBR2pGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBU0gsTUFBTSxPQUFPLHNCQUFzQjtJQVVqQyxZQUNVLE1BQWMsRUFDRixXQUErQixFQUNGLE1BQWdDLEVBQ3pFLFlBQTBCO1FBSDFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDRixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDRixXQUFNLEdBQU4sTUFBTSxDQUEwQjtRQUN6RSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWJwQyxZQUFPLEdBQUcsNkJBQTZCLENBQUM7UUFFeEM7Ozs7V0FJRztRQUNLLGdCQUFXLEdBQWtCLElBQUksQ0FBQztJQU92QyxDQUFDO0lBRUosUUFBUTtRQUNOLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNLLFlBQVk7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssTUFBTTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBbUI7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDcEMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUNyQyxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0IsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZO1lBQ2pDLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtZQUNuQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFDM0IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztTQUNoQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsSUFBSSxHQUFHLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxLQUFLLENBQUMsZUFBZTtRQUMzQixNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU5QyxPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxFQUFFO1lBQ2xELGNBQWMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztZQUMxQyxlQUFlLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDNUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQztZQUM5QyxRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7WUFDN0IsZUFBZSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEtBQUssTUFBTTtZQUN0RCxPQUFPLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxNQUFNO1NBQ3hDLENBQUMsQ0FBQztRQUVILHlCQUF5QjtRQUN6QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUNoQixJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixLQUFLLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsSUFBSSx3QkFBd0I7aUJBQ3ZEO2FBQ2hCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsd0JBQXdCLENBQUM7WUFFeEMscUVBQXFFO1lBQ3JFLG9FQUFvRTtZQUNwRSxxRUFBcUU7WUFDckUsc0VBQXNFO1lBQ3RFLHNFQUFzRTtZQUN0RSx3RUFBd0U7WUFDeEUsa0VBQWtFO1lBQ2xFLCtCQUErQjtZQUMvQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztvQkFDckIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsSUFBSSx3QkFBd0I7b0JBQ3BFLEtBQUssRUFBRSxNQUFNO29CQUNiLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUMsQ0FBQztnQkFDSCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsSUFBSSxRQUFRLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixPQUFPO1FBQ1QsQ0FBQztRQUVELDBFQUEwRTtRQUMxRSw0RUFBNEU7UUFDNUUsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzFDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksU0FBUyxDQUFDO1lBQ3RELE1BQU0sU0FBUyxHQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFlLElBQUksU0FBUyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxZQUFZLENBQUM7Z0JBQ2hCLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLE1BQU0sRUFBRTtvQkFDTixXQUFXLEVBQUUsRUFBRTtvQkFDZixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsU0FBUyxFQUFFLENBQUM7b0JBQ1osV0FBVyxFQUFFLElBQUk7b0JBQ2pCLFFBQVE7b0JBQ1IsU0FBUztpQkFDVjthQUNGLENBQUMsQ0FBQztZQUVILG1FQUFtRTtZQUNuRSx5RUFBeUU7WUFDekUsc0RBQXNEO1lBQ3RELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNyRSxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDekQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLElBQUksUUFBUSxDQUFDO2dCQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLFVBQVUsY0FBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzdFLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxrQ0FBa0MsQ0FBQztZQUNsRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFFRCxpQkFBaUI7UUFDakIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0MsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUNoQixJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixLQUFLLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsT0FBTyxFQUFFLDhDQUE4QztpQkFDMUM7YUFDaEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyw0QkFBNEIsQ0FBQztZQUM1QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFFRCw4REFBOEQ7UUFDOUQsSUFBSSxLQUEyQixDQUFDO1FBQ2hDLElBQUksV0FBaUMsQ0FBQztRQUV0QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVuRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDO2dCQUNILEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDO2dCQUNILFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7WUFDbkQsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDSCxDQUFDO1FBRUQsbUNBQW1DO1FBQ25DLE1BQU0sTUFBTSxHQUFnQjtZQUMxQixXQUFXO1lBQ1gsWUFBWTtZQUNaLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc7WUFDcEQsYUFBYSxFQUFFLGFBQWEsSUFBSSxTQUFTO1lBQ3pDLEtBQUs7WUFDTCxXQUFXO1lBQ1gsU0FBUyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssTUFBTTtZQUMvQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxNQUFNO1NBQ3hDLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ2hCLElBQUksRUFBRSxnQkFBZ0I7WUFDdEIsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDLENBQUM7UUFFSCw4RUFBOEU7UUFDOUUsMkVBQTJFO1FBQzNFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3JFLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUF1QjtRQUMxQywyRUFBMkU7UUFDM0Usc0VBQXNFO1FBQ3RFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNoQyxDQUFDO1FBRUQsK0VBQStFO1FBQy9FLGdGQUFnRjtRQUNoRixJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsR0FBRyxJQUFJLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDMUQsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsMENBQTBDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUVELDJFQUEyRTtRQUMzRSx5Q0FBeUM7UUFDekMsSUFBSSxDQUFDO1lBQ0gsWUFBWSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbEUsWUFBWSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsaURBQWlELEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELHVFQUF1RTtRQUN2RSxJQUFJLENBQUM7WUFDSCxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMzQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxRCxDQUFDO2lCQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUQsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsMEVBQTBFO1FBQzVFLENBQUM7SUFDSCxDQUFDO0lBRU8sZUFBZTtRQUNyQiwwRUFBMEU7UUFDMUUsNEVBQTRFO1FBQzVFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssTUFBTSxDQUFDO1lBQy9DLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOytHQWpRVSxzQkFBc0IsbUZBYVgsbUJBQW1CO21HQWI5QixzQkFBc0IsOEVBRnZCLGdCQUFnQiwyREFIaEIsWUFBWSwrQkFBRSxlQUFlOzs0RkFLNUIsc0JBQXNCO2tCQVJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDO29CQUN4QywrRUFBK0U7b0JBQy9FLGlGQUFpRjtvQkFDakYsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0I7OzBCQWFJLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTUZBTWV0aG9kLCBPQXV0aENhbGxiYWNrRGF0YSwgT0F1dGhSZXN1bHQsIE9BdXRoRXJyb3IsIFZhbHRlY2hBdXRoQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBWQUxURUNIX0FVVEhfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBTcGxhc2hDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2F0b21zL3NwbGFzaC9zcGxhc2guY29tcG9uZW50JztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uL3RvYXN0LnNlcnZpY2UnO1xuXG4vKipcbiAqIENvbXBvbmVudGUgZGUgY2FsbGJhY2sgcGFyYSBPQXV0aC5cbiAqXG4gKiBFc3RlIGNvbXBvbmVudGUgcHJvY2VzYSBsYSByZXNwdWVzdGEgZGVsIHNlcnZpZG9yIE9BdXRoIHkgZW52w61hXG4gKiBsb3MgdG9rZW5zIGEgbGEgdmVudGFuYSBwYWRyZSB2aWEgcG9zdE1lc3NhZ2UuXG4gKlxuICogRGViZSBhZ3JlZ2Fyc2UgYSBsYXMgcnV0YXMgZGUgbGEgYXBsaWNhY2nDs246XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBhcHAucm91dGVzLnRzXG4gKiBpbXBvcnQgeyBPQXV0aENhbGxiYWNrQ29tcG9uZW50IH0gZnJvbSAndmFsdGVjaC1jb21wb25lbnRzJztcbiAqXG4gKiBleHBvcnQgY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gKiAgIHsgcGF0aDogJ2F1dGgvb2F1dGgvY2FsbGJhY2snLCBjb21wb25lbnQ6IE9BdXRoQ2FsbGJhY2tDb21wb25lbnQgfSxcbiAqICAgLy8gLi4uIG90cmFzIHJ1dGFzXG4gKiBdO1xuICogYGBgXG4gKlxuICogRWwgYmFja2VuZCByZWRpcmlnZSBhIGVzdGEgcnV0YSBjb24gbG9zIHRva2VucyBlbiBxdWVyeSBwYXJhbXM6XG4gKiBgL2F1dGgvb2F1dGgvY2FsbGJhY2s/YWNjZXNzX3Rva2VuPXh4eCZyZWZyZXNoX3Rva2VuPXh4eCZleHBpcmVzX2luPTkwMGBcbiAqXG4gKiBPIGNvbiBlcnJvcjpcbiAqIGAvYXV0aC9vYXV0aC9jYWxsYmFjaz9lcnJvcj1JTlZBTElEX0NPREUmZXJyb3JfZGVzY3JpcHRpb249Li4uYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtb2F1dGgtY2FsbGJhY2snLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTcGxhc2hDb21wb25lbnRdLFxuICAvLyBNaXNtbyBzcGxhc2ggZGUgYXJyYW5xdWUgZGUgbGEgYXBwIChsb2dvICsgcHVsc2UpIGVuIHZleiBkZSB1biBsb2FkZXIgcHJvcGlvXG4gIC8vIGNhc2ktZHVwbGljYWRvOiBlbCBjYWxsYmFjayBPQXV0aCBlcyB1bmEgY2FyZ2EgZnVuZGFtZW50YWwgeSBkZWJlIHZlcnNlIGlndWFsLlxuICB0ZW1wbGF0ZTogYDx2YWwtc3BsYXNoIC8+YCxcbn0pXG5leHBvcnQgY2xhc3MgT0F1dGhDYWxsYmFja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG1lc3NhZ2UgPSAnUHJvY2VzYW5kbyBhdXRlbnRpY2FjacOzbi4uLic7XG5cbiAgLyoqXG4gICAqIE5vbmNlIHF1ZSBlbCBvcGVuZXIgZ2VuZXLDsyB5IHBhc8OzIHBvciBlbCBmbHVqbyAocm91bmQtdHJpcCBiYWNrZW5kKS4gU2VcbiAgICogcmVlbnbDrWEgYWwgb3BlbmVyIGVuIGNhZGEgbWVuc2FqZSBwYXJhIHF1ZSB2ZXJpZmlxdWUgZWwgb3JpZ2VuIGRlbCBjYWxsYmFja1xuICAgKiB5IHJlY2hhY2UgdW4gb2F1dGhfY2FsbGJhY2tfZGF0YSBmb3JqYWRvIGVuIGxvY2FsU3RvcmFnZSBwb3IgWFNTIChNLTA3KS5cbiAgICovXG4gIHByaXZhdGUgY2xpZW50Tm9uY2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UgfCBudWxsLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVkFMVEVDSF9BVVRIX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IFZhbHRlY2hBdXRoQ29uZmlnIHwgbnVsbCxcbiAgICBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMucHJvY2Vzc0NhbGxiYWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhIHNpIGVzdGUgY2FsbGJhY2sgY29ycmUgY29tbyBsYSBWRU5UQU5BIFBSSU5DSVBBTCAoZmx1am8gcmVkaXJlY3QpLFxuICAgKiBubyBjb21vIHBvcHVwLlxuICAgKlxuICAgKiBOTyB1c2Ftb3Mgd2luZG93Lm5hbWUgbmkgd2luZG93Lm9wZW5lciBjb21vIGluZGljYWRvcmVzIHByaW1hcmlvczpcbiAgICogLSBDaHJvbWUvRmlyZWZveCBib3JyYW4gd2luZG93Lm5hbWUgYWwgbmF2ZWdhciBjcm9zcy1vcmlnaW4gKHByaXZhY2lkYWQpLFxuICAgKiAgIHBvciBsbyBxdWUgeWEgbm8gdmFsZSBwYXJhIGVsIGZsdWpvIE9BdXRoIHF1ZSBwYXNhIHBvciBHb29nbGUvTVMuXG4gICAqIC0gd2luZG93Lm9wZW5lciBxdWVkYSBudWxsIGN1YW5kbyBlbCBwcm92ZWVkb3IgdGllbmUgQ09PUDpzYW1lLW9yaWdpblxuICAgKiAgIChHb29nbGUgbG8gdXNhKSwgcXVlIHNldmVyIGxhIHJlZmVyZW5jaWEgZW4gZWwgYm91bmNlLlxuICAgKlxuICAgKiBJbmRpY2Fkb3IgY29uZmlhYmxlOiBgcG9wdXA9dHJ1ZWAgZW4gbGEgVVJMLiBPQXV0aFNlcnZpY2UgbG8gaW55ZWN0YSBlblxuICAgKiBlbCByZWRpcmVjdF91cmkgYW50ZXMgZGVsIC9zdGFydDsgZWwgYmFja2VuZCBsbyByZWVudsOtYSBpbnRhY3RvIGVuIGVsXG4gICAqIHJlZGlyZWN0IGZpbmFsIHbDrWEgYXBwZW5kUGFyYW1zIOKGkiBzb2JyZXZpdmUgdG9kbyBlbCByb3VuZC10cmlwIHNpblxuICAgKiBkZXBlbmRlciBkZSBlc3RhZG8gZGUgbGEgdmVudGFuYSBkZWwgbmF2ZWdhZG9yLlxuICAgKi9cbiAgcHJpdmF0ZSBpc01haW5XaW5kb3coKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICBpZiAocGFyYW1zLmdldCgncG9wdXAnKSA9PT0gJ3RydWUnKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICF3aW5kb3cub3BlbmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBsZXRhIGVsIGxvZ2luIGVuIGxhIHZlbnRhbmEgcHJpbmNpcGFsOiBpbnN0YWxhIGxhIHNlc2nDs24gZGVzZGUgbG9zXG4gICAqIHRva2VucyBkZWwgY2FsbGJhY2sgeSBuYXZlZ2EgYWwgaG9tZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY29tcGxldGVJbk1haW5XaW5kb3cocmVzdWx0OiBPQXV0aFJlc3VsdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghdGhpcy5hdXRoU2VydmljZSkgcmV0dXJuIGZhbHNlO1xuICAgIGF3YWl0IHRoaXMuYXV0aFNlcnZpY2Uuc2V0RXh0ZXJuYWxBdXRoKHtcbiAgICAgIGFjY2Vzc1Rva2VuOiByZXN1bHQuYWNjZXNzVG9rZW4sXG4gICAgICByZWZyZXNoVG9rZW46IHJlc3VsdC5yZWZyZXNoVG9rZW4sXG4gICAgICBmaXJlYmFzZVRva2VuOiByZXN1bHQuZmlyZWJhc2VUb2tlbixcbiAgICAgIGV4cGlyZXNJbjogcmVzdWx0LmV4cGlyZXNJbixcbiAgICAgIHJvbGVzOiByZXN1bHQucm9sZXMsXG4gICAgICBwZXJtaXNzaW9uczogcmVzdWx0LnBlcm1pc3Npb25zLFxuICAgIH0pO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5jb25maWc/LmhvbWVSb3V0ZSB8fCAnLycsIHsgcmVwbGFjZVVybDogdHJ1ZSB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc0NhbGxiYWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgdGhpcy5jbGllbnROb25jZSA9IHBhcmFtcy5nZXQoJ2NsaWVudF9ub25jZScpO1xuXG4gICAgY29uc29sZS5sb2coJ1tPQXV0aENhbGxiYWNrXSBVUkwgcGFyYW1zIHJlY2VpdmVkOicsIHtcbiAgICAgIGhhc0FjY2Vzc1Rva2VuOiBwYXJhbXMuaGFzKCdhY2Nlc3NfdG9rZW4nKSxcbiAgICAgIGhhc1JlZnJlc2hUb2tlbjogcGFyYW1zLmhhcygncmVmcmVzaF90b2tlbicpLFxuICAgICAgaGFzRmlyZWJhc2VUb2tlbjogcGFyYW1zLmhhcygnZmlyZWJhc2VfdG9rZW4nKSxcbiAgICAgIGhhc0Vycm9yOiBwYXJhbXMuaGFzKCdlcnJvcicpLFxuICAgICAgaGFzTUZBQ2hhbGxlbmdlOiBwYXJhbXMuZ2V0KCdtZmFfcmVxdWlyZWQnKSA9PT0gJ3RydWUnLFxuICAgICAgaXNQb3B1cDogcGFyYW1zLmdldCgncG9wdXAnKSA9PT0gJ3RydWUnLFxuICAgIH0pO1xuXG4gICAgLy8gVmVyaWZpY2FyIHNpIGhheSBlcnJvclxuICAgIGNvbnN0IGVycm9yID0gcGFyYW1zLmdldCgnZXJyb3InKTtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHRoaXMuc2VuZFRvUGFyZW50KHtcbiAgICAgICAgdHlwZTogJ29hdXRoLWNhbGxiYWNrJyxcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiBlcnJvcixcbiAgICAgICAgICBtZXNzYWdlOiBwYXJhbXMuZ2V0KCdlcnJvcl9kZXNjcmlwdGlvbicpIHx8ICdFcnJvciBkZSBhdXRlbnRpY2FjacOzbicsXG4gICAgICAgIH0gYXMgT0F1dGhFcnJvcixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5tZXNzYWdlID0gJ0Vycm9yIGRlIGF1dGVudGljYWNpw7NuJztcblxuICAgICAgLy8gRmx1am8gcmVkaXJlY3QgKHZlbnRhbmEgcHJpbmNpcGFsKTogbm8gaGF5IG9wZW5lci9wb3B1cCBlc2N1Y2hhbmRvXG4gICAgICAvLyBzZW5kVG9QYXJlbnQsIGFzw60gcXVlIGNsb3NlQWZ0ZXJEZWxheSgpIG5vIGhhY2UgbmFkYSB5IGVsIHVzdWFyaW9cbiAgICAgIC8vIHF1ZWRhYmEgcGVnYWRvIGVuIGVsIHNwbGFzaCBzaW4gZmVlZGJhY2sgKGJ1ZyByZWFsLCAyMDI2LTA4LTA0OiB1blxuICAgICAgLy8gZXJyb3IgZGVsIHByb3ZpZGVyIOKAlCBlai4gTWljcm9zb2Z0IHNlcnZlcl9lcnJvciDigJQgZGVqYWJhIGFsIHVzdWFyaW9cbiAgICAgIC8vIHZpZW5kbyBlbCBzcGxhc2ggY29uZ2VsYWRvIGluZGVmaW5pZGFtZW50ZSkuIFRvYXN0IGFjw6EgbWlzbW8gKG5vIHVuXG4gICAgICAvLyBxdWVyeSBwYXJhbSBxdWUgbmFkaWUgbGVlIOKAlCBtaXNtbyBtb3Rpdm8gcG9yIGVsIHF1ZSBvYXV0aF9tZmE9MSBlbiBlbFxuICAgICAgLy8gZmx1am8gTUZBIGRlIGFiYWpvIHRhbXBvY28gc2UgcGFyc2VhOiBlbCBlc3RhZG8gcmVhbCB2aXZlIGVuIGVsXG4gICAgICAvLyBzZXJ2aWNpbykgKyB2b2x2ZXIgYWwgbG9naW4uXG4gICAgICBpZiAodGhpcy5pc01haW5XaW5kb3coKSkge1xuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgICBtZXNzYWdlOiBwYXJhbXMuZ2V0KCdlcnJvcl9kZXNjcmlwdGlvbicpIHx8ICdFcnJvciBkZSBhdXRlbnRpY2FjacOzbicsXG4gICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICBkdXJhdGlvbjogNDAwMCxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGxvZ2luUm91dGUgPSB0aGlzLmNvbmZpZz8ubG9naW5Sb3V0ZSB8fCAnL2xvZ2luJztcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChsb2dpblJvdXRlLCB7IHJlcGxhY2VVcmw6IHRydWUgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jbG9zZUFmdGVyRGVsYXkoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBNRkEgcmVxdWVyaWRvIOKAlCBlbCBiYWNrZW5kIHJlZGlyaWdlIHNpbiB0b2tlbnMsIGNvbiBtZmFfdG9rZW4uIEVsIGZsdWpvXG4gICAgLy8gY29udGluw7phIGNvbiBlbCBjaGFsbGVuZ2UgTUZBIChBdXRoU2VydmljZS5zZXRNRkFQZW5kaW5nIOKGkiBtb2RhbCB2ZXJpZnkpLlxuICAgIGlmIChwYXJhbXMuZ2V0KCdtZmFfcmVxdWlyZWQnKSA9PT0gJ3RydWUnKSB7XG4gICAgICBjb25zdCBtZmFUb2tlbiA9IHBhcmFtcy5nZXQoJ21mYV90b2tlbicpIHx8IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IG1mYU1ldGhvZCA9IChwYXJhbXMuZ2V0KCdtZmFfbWV0aG9kJykgYXMgTUZBTWV0aG9kKSB8fCB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnNlbmRUb1BhcmVudCh7XG4gICAgICAgIHR5cGU6ICdvYXV0aC1jYWxsYmFjaycsXG4gICAgICAgIHRva2Vuczoge1xuICAgICAgICAgIGFjY2Vzc1Rva2VuOiAnJyxcbiAgICAgICAgICByZWZyZXNoVG9rZW46ICcnLFxuICAgICAgICAgIGV4cGlyZXNJbjogMCxcbiAgICAgICAgICBtZmFSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZmFUb2tlbixcbiAgICAgICAgICBtZmFNZXRob2QsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gRmx1am8gcmVkaXJlY3QgZW4gdmVudGFuYSBwcmluY2lwYWw6IG5vIGhheSBvcGVuZXIgZXNjdWNoYW5kbyBlbFxuICAgICAgLy8gY2FsbGJhY2suIERlamFtb3MgZWwgY2hhbGxlbmdlIGVuIEF1dGhTZXJ2aWNlIHkgdm9sdmVtb3MgYWwgbG9naW4gcGFyYVxuICAgICAgLy8gcXVlIHZhbC1sb2dpbiBhYnJhIGVsIG1vZGFsIE1GQSBzb2JyZSBsYSBtaXNtYSBTUEEuXG4gICAgICBpZiAodGhpcy5pc01haW5XaW5kb3coKSAmJiB0aGlzLmF1dGhTZXJ2aWNlICYmIG1mYVRva2VuICYmIG1mYU1ldGhvZCkge1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnNldE9BdXRoTUZBUGVuZGluZyhtZmFUb2tlbiwgbWZhTWV0aG9kKTtcbiAgICAgICAgY29uc3QgbG9naW5Sb3V0ZSA9IHRoaXMuY29uZmlnPy5sb2dpblJvdXRlIHx8ICcvbG9naW4nO1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAke2xvZ2luUm91dGV9P29hdXRoX21mYT0xYCwgeyByZXBsYWNlVXJsOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMubWVzc2FnZSA9ICdWZXJpZmljYWNpw7NuIGFkaWNpb25hbCByZXF1ZXJpZGEnO1xuICAgICAgdGhpcy5jbG9zZUFmdGVyRGVsYXkoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFeHRyYWVyIHRva2Vuc1xuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gcGFyYW1zLmdldCgnYWNjZXNzX3Rva2VuJyk7XG4gICAgY29uc3QgcmVmcmVzaFRva2VuID0gcGFyYW1zLmdldCgncmVmcmVzaF90b2tlbicpO1xuICAgIGNvbnN0IGV4cGlyZXNJbiA9IHBhcmFtcy5nZXQoJ2V4cGlyZXNfaW4nKTtcbiAgICBjb25zdCBmaXJlYmFzZVRva2VuID0gcGFyYW1zLmdldCgnZmlyZWJhc2VfdG9rZW4nKTtcblxuICAgIGlmICghYWNjZXNzVG9rZW4gfHwgIXJlZnJlc2hUb2tlbikge1xuICAgICAgdGhpcy5zZW5kVG9QYXJlbnQoe1xuICAgICAgICB0eXBlOiAnb2F1dGgtY2FsbGJhY2snLFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIGNvZGU6ICdNSVNTSU5HX1RPS0VOUycsXG4gICAgICAgICAgbWVzc2FnZTogJ05vIHNlIHJlY2liaWVyb24gbG9zIHRva2VucyBkZSBhdXRlbnRpY2FjacOzbicsXG4gICAgICAgIH0gYXMgT0F1dGhFcnJvcixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5tZXNzYWdlID0gJ0Vycm9yOiB0b2tlbnMgbm8gcmVjaWJpZG9zJztcbiAgICAgIHRoaXMuY2xvc2VBZnRlckRlbGF5KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRXh0cmFlciByb2xlcyB5IHBlcm1pc29zIChwdWVkZW4gdmVuaXIgY29tbyBKU09OIGVuIGJhc2U2NClcbiAgICBsZXQgcm9sZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAgIGxldCBwZXJtaXNzaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCByb2xlc1BhcmFtID0gcGFyYW1zLmdldCgncm9sZXMnKTtcbiAgICBjb25zdCBwZXJtaXNzaW9uc1BhcmFtID0gcGFyYW1zLmdldCgncGVybWlzc2lvbnMnKTtcblxuICAgIGlmIChyb2xlc1BhcmFtKSB7XG4gICAgICB0cnkge1xuICAgICAgICByb2xlcyA9IEpTT04ucGFyc2UoYXRvYihyb2xlc1BhcmFtKSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcm9sZXMgPSByb2xlc1BhcmFtLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBlcm1pc3Npb25zUGFyYW0pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHBlcm1pc3Npb25zID0gSlNPTi5wYXJzZShhdG9iKHBlcm1pc3Npb25zUGFyYW0pKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBwZXJtaXNzaW9ucyA9IHBlcm1pc3Npb25zUGFyYW0uc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbnZpYXIgdG9rZW5zIGEgbGEgdmVudGFuYSBwYWRyZVxuICAgIGNvbnN0IHJlc3VsdDogT0F1dGhSZXN1bHQgPSB7XG4gICAgICBhY2Nlc3NUb2tlbixcbiAgICAgIHJlZnJlc2hUb2tlbixcbiAgICAgIGV4cGlyZXNJbjogZXhwaXJlc0luID8gcGFyc2VJbnQoZXhwaXJlc0luLCAxMCkgOiA5MDAsXG4gICAgICBmaXJlYmFzZVRva2VuOiBmaXJlYmFzZVRva2VuIHx8IHVuZGVmaW5lZCxcbiAgICAgIHJvbGVzLFxuICAgICAgcGVybWlzc2lvbnMsXG4gICAgICBpc05ld1VzZXI6IHBhcmFtcy5nZXQoJ2lzX25ld191c2VyJykgPT09ICd0cnVlJyxcbiAgICAgIGxpbmtlZDogcGFyYW1zLmdldCgnbGlua2VkJykgPT09ICd0cnVlJyxcbiAgICB9O1xuXG4gICAgdGhpcy5zZW5kVG9QYXJlbnQoe1xuICAgICAgdHlwZTogJ29hdXRoLWNhbGxiYWNrJyxcbiAgICAgIHRva2VuczogcmVzdWx0LFxuICAgIH0pO1xuXG4gICAgLy8gRmx1am8gcmVkaXJlY3QgKHZlbnRhbmEgcHJpbmNpcGFsLCBzaW4gb3BlbmVyIHF1ZSBjb25zdW1hIGVsIGxvY2FsU3RvcmFnZSk6XG4gICAgLy8gaW5zdGFsYXIgbGEgc2VzacOzbiBhY8OhIG1pc21vIHkgbmF2ZWdhciBhbCBob21lLCBlbiB2ZXogZGUgcXVlZGFyIHBlZ2Fkby5cbiAgICBpZiAodGhpcy5pc01haW5XaW5kb3coKSAmJiAoYXdhaXQgdGhpcy5jb21wbGV0ZUluTWFpbldpbmRvdyhyZXN1bHQpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubWVzc2FnZSA9ICdBdXRlbnRpY2FjacOzbiBleGl0b3NhJztcbiAgICB0aGlzLmNsb3NlQWZ0ZXJEZWxheSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZW5kVG9QYXJlbnQoZGF0YTogT0F1dGhDYWxsYmFja0RhdGEpOiB2b2lkIHtcbiAgICAvLyBBZGp1bnRhciBlbCBub25jZSBkZWwgb3BlbmVyIChNLTA3KSBhIFRPRE8gbWVuc2FqZSAoc3VjY2VzcywgTUZBLCBlcnJvcilcbiAgICAvLyBwYXJhIHF1ZSBlbCBvcGVuZXIgdmVyaWZpcXVlIHF1ZSBlbCBjYWxsYmFjayBlcyBkZSBzdSBwcm9waW8gZmx1am8uXG4gICAgaWYgKHRoaXMuY2xpZW50Tm9uY2UpIHtcbiAgICAgIGRhdGEubm9uY2UgPSB0aGlzLmNsaWVudE5vbmNlO1xuICAgIH1cblxuICAgIC8vIEJyb2FkY2FzdENoYW5uZWw6IGNhbmFsIHByaW5jaXBhbCBpbW11bmUgYSBDT09QLiBGdW5jaW9uYSBlbnRyZSBtaXNtYSBvcmlnaW5cbiAgICAvLyBzaW4gaW1wb3J0YXIgZWwgYnJvd3NpbmcgY29udGV4dCBncm91cC4gRWwgb3BlbmVyIGxvIGVzY3VjaGEgZW4gT0F1dGhTZXJ2aWNlLlxuICAgIHRyeSB7XG4gICAgICBjb25zdCBiYyA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKCd2YWx0ZWNoLW9hdXRoLWNhbGxiYWNrJyk7XG4gICAgICBiYy5wb3N0TWVzc2FnZShkYXRhKTtcbiAgICAgIGJjLmNsb3NlKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdbT0F1dGhDYWxsYmFja10gQnJvYWRjYXN0Q2hhbm5lbCBmYWlsZWQ6JywgZSk7XG4gICAgfVxuXG4gICAgLy8gbG9jYWxTdG9yYWdlOiBmYWxsYmFjayBzZWN1bmRhcmlvIChwYXJhIGNvbnRleHRvcyBzaW4gQnJvYWRjYXN0Q2hhbm5lbCBvXG4gICAgLy8gY29uIHN0b3JhZ2UgcGFydGl0aW9uaW5nIHJlc3RyaW5naWRvKS5cbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ29hdXRoX2NhbGxiYWNrX2RhdGEnLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnb2F1dGhfY2FsbGJhY2tfdGltZXN0YW1wJywgRGF0ZS5ub3coKS50b1N0cmluZygpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tPQXV0aENhbGxiYWNrXSBDb3VsZCBub3Qgc2F2ZSB0byBsb2NhbFN0b3JhZ2U6JywgZSk7XG4gICAgfVxuXG4gICAgLy8gcG9zdE1lc3NhZ2U6IHRlcmNlciBmYWxsYmFjayAoZnVuY2lvbmEgY3VhbmRvIG5vIGhheSBDT09QIGVzdHJpY3RvKS5cbiAgICB0cnkge1xuICAgICAgaWYgKHdpbmRvdy5vcGVuZXIgJiYgIXdpbmRvdy5vcGVuZXIuY2xvc2VkKSB7XG4gICAgICAgIHdpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UoZGF0YSwgd2luZG93LmxvY2F0aW9uLm9yaWdpbik7XG4gICAgICB9IGVsc2UgaWYgKHdpbmRvdy5wYXJlbnQgIT09IHdpbmRvdykge1xuICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKGRhdGEsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIENPT1AgYmxvY2tzIHBvc3RNZXNzYWdlIOKAlCBsb3MgZG9zIGZhbGxiYWNrcyBhbnRlcmlvcmVzIGN1YnJlbiBlc3RlIGNhc29cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsb3NlQWZ0ZXJEZWxheSgpOiB2b2lkIHtcbiAgICAvLyBwb3B1cD10cnVlIGVuIGxhIFVSTCBlcyBlbCBpbmRpY2Fkb3IgY29uZmlhYmxlIGRlIHF1ZSBzb21vcyBwb3B1cCBPQXV0aFxuICAgIC8vICh3aW5kb3cubmFtZSBzZSBib3JyYSBlbiBjcm9zcy1vcmlnaW4gbmF2OyB3aW5kb3cub3BlbmVyIHNldmVyIHBvciBDT09QKS5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgICBjb25zdCBpc1BvcHVwID0gcGFyYW1zLmdldCgncG9wdXAnKSA9PT0gJ3RydWUnO1xuICAgICAgaWYgKHdpbmRvdy5vcGVuZXIgfHwgaXNQb3B1cCkge1xuICAgICAgICB3aW5kb3cuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9LCA1MDApO1xuICB9XG59XG4iXX0=
|
|
@@ -216,7 +216,7 @@ export class FirebaseService {
|
|
|
216
216
|
});
|
|
217
217
|
}
|
|
218
218
|
async ejecutarSignInWithCustomToken(token) {
|
|
219
|
-
console.log(
|
|
219
|
+
console.log('[FBAuth] signInWithCustomToken called');
|
|
220
220
|
try {
|
|
221
221
|
const credential = await signInWithCustomToken(this.auth, token);
|
|
222
222
|
// Forzar refresh del token para asegurar que los claims estén actualizados
|
|
@@ -576,4 +576,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
576
576
|
type: Inject,
|
|
577
577
|
args: [VALTECH_FIREBASE_CONFIG]
|
|
578
578
|
}] }] });
|
|
579
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvZmlyZWJhc2UvZmlyZWJhc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUVMLFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsT0FBTyxHQUdSLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixjQUFjLEVBQ2QsR0FBRyxFQUVILEVBQUUsRUFDRixJQUFJLEVBQ0osT0FBTyxHQUNSLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFTakU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUF5RDFCLFlBQ1UsSUFBVSxFQUN1QixNQUE2QjtRQUQ5RCxTQUFJLEdBQUosSUFBSSxDQUFNO1FBQ3VCLFdBQU0sR0FBTixNQUFNLENBQXVCO1FBMUR4RSxrQ0FBa0M7UUFDMUIsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBZTtZQUN2RCxJQUFJLEVBQUUsSUFBSTtZQUNWLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLENBQUM7UUFFSCxpREFBaUQ7UUFDeEMsV0FBTSxHQUE2QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVks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QixDQUFDLElBQUksQ0FBQztZQUUvQyxRQUFRLElBQUksRUFBRSxDQUFDO2dCQUNiLEtBQUssMkJBQTJCO29CQUM5QixPQUFPLGlDQUFpQyxDQUFDO2dCQUMzQyxLQUFLLDRCQUE0QjtvQkFDL0IsT0FBTyx5Q0FBeUMsQ0FBQztnQkFDbkQsS0FBSyw2QkFBNkI7b0JBQ2hDLE9BQU8sb0RBQW9ELENBQUM7Z0JBQzlELEtBQUssd0JBQXdCO29CQUMzQixPQUFPLGlEQUFpRCxDQUFDO2dCQUMzRCxLQUFLLG9CQUFvQjtvQkFDdkIsT0FBTyxtQ0FBbUMsQ0FBQztnQkFDN0MsS0FBSyxxQkFBcUI7b0JBQ3hCLE9BQU8sdUJBQXVCLENBQUM7Z0JBQ2pDO29CQUNFLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxvQ0FBb0MsQ0FBQztZQUNqRSxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sb0NBQW9DLENBQUM7SUFDOUMsQ0FBQzsrR0FwbUJVLGVBQWUsc0NBMkRoQix1QkFBdUI7bUhBM0R0QixlQUFlLGNBREYsTUFBTTs7NEZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkE0RDdCLE1BQU07MkJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGaXJlYmFzZSBTZXJ2aWNlXG4gKlxuICogU2VydmljaW8gcHJpbmNpcGFsIHBhcmEgbGEgYXV0ZW50aWNhY2nDs24gY29uIEZpcmViYXNlIHVzYW5kbyBDdXN0b20gVG9rZW5zLlxuICogUGVybWl0ZSBxdWUgdXN1YXJpb3MgYXV0ZW50aWNhZG9zIGNvbiB0dSBiYWNrZW5kIChDb2duaXRvLCBldGMuKSBhY2NlZGFuXG4gKiBhIHNlcnZpY2lvcyBkZSBGaXJlYmFzZSAoRmlyZXN0b3JlLCBTdG9yYWdlLCBGQ00pIGRlIG1hbmVyYSBzZWd1cmEuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBTaWduYWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQXV0aCxcbiAgYXV0aFN0YXRlLFxuICBzaWduSW5XaXRoQ3VzdG9tVG9rZW4sXG4gIHNpZ25PdXQsXG4gIFVzZXIsXG4gIFVzZXJDcmVkZW50aWFsLFxufSBmcm9tICdAYW5ndWxhci9maXJlL2F1dGgnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjYXRjaEVycm9yLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBmaXJzdFZhbHVlRnJvbSxcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgdGFrZSxcbiAgdGltZW91dCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFZBTFRFQ0hfRklSRUJBU0VfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgRW50cmFkYVNlcmlhbGl6YWRhIH0gZnJvbSAnLi9zaWduLWluLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgZmlybWFEZVNlc2lvbkRlQ3VzdG9tVG9rZW4gfSBmcm9tICcuL3Nlc3Npb24tc2lnbmF0dXJlJztcbmltcG9ydCB7XG4gIEZpcmViYXNlVXNlcixcbiAgTWVtYmVyc2hpcEluZm8sXG4gIE9yZ2FuaXphdGlvbkluZm8sXG4gIFNlc3Npb25TdGF0ZSxcbiAgVmFsdGVjaEZpcmViYXNlQ29uZmlnLFxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBTZXJ2aWNpbyBkZSBhdXRlbnRpY2FjacOzbiBkZSBGaXJlYmFzZS5cbiAqXG4gKiBFc3RlIHNlcnZpY2lvIE5PIG1hbmVqYSBlbCBsb2dpbiBkZSB1c3VhcmlvcyBkaXJlY3RhbWVudGUuXG4gKiBFbiBzdSBsdWdhciwgdHJhYmFqYSBjb24gQ3VzdG9tIFRva2VucyBnZW5lcmFkb3MgcG9yIHR1IGJhY2tlbmQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIERlc3B1w6lzIGRlIGF1dGVudGljYXJ0ZSBjb24gdHUgYmFja2VuZCAoZWo6IENvZ25pdG8pXG4gKiBAQ29tcG9uZW50KHsuLi59KVxuICogZXhwb3J0IGNsYXNzIExvZ2luQ29tcG9uZW50IHtcbiAqICAgcHJpdmF0ZSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7ICAgICAvLyBUdSBzZXJ2aWNpbyBkZSBhdXRoXG4gKiAgIHByaXZhdGUgZmlyZWJhc2UgPSBpbmplY3QoRmlyZWJhc2VTZXJ2aWNlKTsgICAgLy8gRXN0ZSBzZXJ2aWNpb1xuICpcbiAqICAgYXN5bmMgbG9naW4oZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICogICAgIC8vIDEuIEF1dGVudGljYXIgY29uIHR1IGJhY2tlbmRcbiAqICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UubG9naW4oZW1haWwsIHBhc3N3b3JkKTtcbiAqXG4gKiAgICAgLy8gMi4gRWwgYmFja2VuZCBkZXZ1ZWx2ZSB1biBGaXJlYmFzZSBDdXN0b20gVG9rZW5cbiAqICAgICBpZiAocmVzcG9uc2UuZmlyZWJhc2VUb2tlbikge1xuICogICAgICAgYXdhaXQgdGhpcy5maXJlYmFzZS5zaWduSW5XaXRoQ3VzdG9tVG9rZW4ocmVzcG9uc2UuZmlyZWJhc2VUb2tlbik7XG4gKiAgICAgfVxuICpcbiAqICAgICAvLyBBaG9yYSBlbCB1c3VhcmlvIHB1ZWRlIGFjY2VkZXIgYSBGaXJlc3RvcmUsIFN0b3JhZ2UsIGV0Yy5cbiAqICAgfVxuICpcbiAqICAgYXN5bmMgbG9nb3V0KCkge1xuICogICAgIGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCk7XG4gKiAgICAgYXdhaXQgdGhpcy5maXJlYmFzZS5zaWduT3V0KCk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEZpcmViYXNlU2VydmljZSB7XG4gIC8qKiBFc3RhZG8gaW50ZXJubyBkZSBsYSBzZXNpw7NuICovXG4gIHByaXZhdGUgc2Vzc2lvblN0YXRlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZXNzaW9uU3RhdGU+KHtcbiAgICB1c2VyOiBudWxsLFxuICAgIGlzQXV0aGVudGljYXRlZDogZmFsc2UsXG4gICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgIGVycm9yOiBudWxsLFxuICB9KTtcblxuICAvKiogRXN0YWRvIGFjdHVhbCBkZSBsYSBzZXNpw7NuIGNvbW8gT2JzZXJ2YWJsZSAqL1xuICByZWFkb25seSBzdGF0ZSQ6IE9ic2VydmFibGU8U2Vzc2lvblN0YXRlPiA9IHRoaXMuc2Vzc2lvblN0YXRlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIC8qKiBVc3VhcmlvIGFjdHVhbCBkZSBGaXJlYmFzZSBjb21vIE9ic2VydmFibGUgKi9cbiAgcmVhZG9ubHkgdXNlciQ6IE9ic2VydmFibGU8RmlyZWJhc2VVc2VyIHwgbnVsbD47XG5cbiAgLyoqIEluZGljYSBzaSBlbCB1c3VhcmlvIGVzdMOhIGF1dGVudGljYWRvIGVuIEZpcmViYXNlICovXG4gIHJlYWRvbmx5IGlzQXV0aGVudGljYXRlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFNpZ25hbCBpbnRlcm5hIHF1ZSByZXNwYWxkYSBgZmlyZWJhc2VBdXRoUmVhZHlgLlxuICAgKiBgdHJ1ZWAgY3VhbmRvIGhheSB1biBgZmlyZWJhc2UuVXNlcmAgYWN0aXZvIHkgcG9yIHRhbnRvIGxhcyByZWdsYXMgZGVcbiAgICogRmlyZXN0b3JlIGV2YWx1YXLDoW4gYHJlcXVlc3QuYXV0aCAhPSBudWxsYCBjb3JyZWN0YW1lbnRlLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfZmlyZWJhc2VBdXRoUmVhZHkgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBJbmRpY2Egc2kgbGEgc2VzacOzbiBkZSAqKkZpcmViYXNlIEF1dGgqKiBlc3TDoSBlc3RhYmxlY2lkYSB5IGxpc3RhIHBhcmFcbiAgICogbGVlciBGaXJlc3RvcmUuXG4gICAqXG4gICAqIElNUE9SVEFOVEU6IGVzdG8gZXMgZGlzdGludG8gZGVsIEpXVCBkZWwgYmFja2VuZC4gTGEgc2VzacOzbiBkZSBGaXJlYmFzZVxuICAgKiBBdXRoIGVzIHVuYSBzZXNpw7NuIHNlcGFyYWRhIHF1ZSBzZSBlc3RhYmxlY2UgdsOtYSBgc2lnbkluV2l0aEN1c3RvbVRva2VuYFxuICAgKiAodmVyIGBBdXRoU2VydmljZS5zaWduSW5XaXRoRmlyZWJhc2VgKS4gRW4gY29sZCBzdGFydCBkZSBQV0EsIGVsIEpXVCBkZWxcbiAgICogYmFja2VuZCBwdWVkZSBlc3RhciBsaXN0byB2YXJpb3MgY2llbnRvcyBkZSBtcyBhbnRlcyBkZSBxdWUgRmlyZWJhc2UgQXV0aFxuICAgKiBjb25maXJtZSBzdSBgVXNlcmAg4oCUIGFkanVudGFyIHVuIGxpc3RlbmVyIGRlIEZpcmVzdG9yZSBlbiBlc2EgdmVudGFuYVxuICAgKiBwcm9kdWNlIGBwZXJtaXNzaW9uLWRlbmllZGAuXG4gICAqXG4gICAqIFVzYXIgZXN0ZSBzaWduYWwgKG8gYHdoZW5GaXJlYmFzZUF1dGhSZWFkeSgpYCkgY29tbyBnYXRlIGFudGVzIGRlXG4gICAqIHN1c2NyaWJpcnNlIGEgY3VhbHF1aWVyIHF1ZXJ5L2xpc3RlbmVyIGRlIEZpcmVzdG9yZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBpZiAodGhpcy5maXJlYmFzZS5maXJlYmFzZUF1dGhSZWFkeSgpKSB7XG4gICAqICAgLy8gc2VndXJvIGxlZXIgRmlyZXN0b3JlXG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICByZWFkb25seSBmaXJlYmFzZUF1dGhSZWFkeTogU2lnbmFsPGJvb2xlYW4+ID0gdGhpcy5fZmlyZWJhc2VBdXRoUmVhZHkuYXNSZWFkb25seSgpO1xuXG4gIC8qKlxuICAgKiBFbWl0ZSBgdHJ1ZWAgdW5hIHNvbGEgdmV6IGVuIGN1YW50byBsYSBzZXNpw7NuIGRlIEZpcmViYXNlIEF1dGggZXN0w6EgbGlzdGEsXG4gICAqIHkgY29tcGxldGEuIFNpIHlhIGVzdMOhIGxpc3RhLCBlbWl0ZSBpbm1lZGlhdGFtZW50ZS5cbiAgICpcbiAgICogUGVuc2FkbyBjb21vIGdhdGUgY29tcGFydGlkbyBwYXJhIGFicmlyIHN0cmVhbXMgRmlyZXN0b3JlIOKAlCBlc3BlcmEgbGFcbiAgICogdmVudGFuYSBkZSBoaWRyYXRhY2nDs24gZGUgRmlyZWJhc2UgQXV0aCBzaW4gbmVjZXNpZGFkIGRlIHJldHJpZXMuXG4gICAqL1xuICByZWFkb25seSBmaXJlYmFzZUF1dGhSZWFkeSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoLFxuICAgIEBJbmplY3QoVkFMVEVDSF9GSVJFQkFTRV9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBWYWx0ZWNoRmlyZWJhc2VDb25maWdcbiAgKSB7XG4gICAgLy8gSW5pY2lhbGl6YXIgb2JzZXJ2YWJsZXMgcXVlIGRlcGVuZGVuIGRlIGF1dGhcbiAgICB0aGlzLnVzZXIkID0gYXV0aFN0YXRlKHRoaXMuYXV0aCkucGlwZShcbiAgICAgIG1hcCh1c2VyID0+ICh1c2VyID8gdGhpcy5tYXBVc2VyKHVzZXIpIDogbnVsbCkpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGE/LnVpZCA9PT0gYj8udWlkKVxuICAgICk7XG5cbiAgICB0aGlzLmlzQXV0aGVudGljYXRlZCQgPSB0aGlzLnVzZXIkLnBpcGUoXG4gICAgICBtYXAodXNlciA9PiAhIXVzZXIpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG5cbiAgICAvLyBHYXRlIGNvbXBhcnRpZG86IGVtaXRlIHRydWUgZW4gY3VhbnRvIGhheWEgdW4gZmlyZWJhc2UuVXNlciB5IGNvbXBsZXRhLlxuICAgIHRoaXMuZmlyZWJhc2VBdXRoUmVhZHkkID0gYXV0aFN0YXRlKHRoaXMuYXV0aCkucGlwZShcbiAgICAgIGZpbHRlcigodXNlcik6IHVzZXIgaXMgVXNlciA9PiAhIXVzZXIpLFxuICAgICAgbWFwKCgpID0+IHRydWUpLFxuICAgICAgdGFrZSgxKVxuICAgICk7XG5cbiAgICAvLyBFc2N1Y2hhciBjYW1iaW9zIGVuIGVsIGVzdGFkbyBkZSBhdXRlbnRpY2FjacOzblxuICAgIGF1dGhTdGF0ZSh0aGlzLmF1dGgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiB1c2VyID0+IHtcbiAgICAgICAgLy8gTWFudGVuZXIgYGZpcmViYXNlQXV0aFJlYWR5YCBzaW5jcm9uaXphZG8gY29uIGxhIHNlc2nDs24gcmVhbDpcbiAgICAgICAgLy8gdHJ1ZSBhbCBoYWJlciBVc2VyLCBmYWxzZSBlbiBzaWdub3V0LiBQZXJtaXRlIHF1ZSBsb3MgZ2F0ZXNcbiAgICAgICAgLy8gcmUtZXZhbMO6ZW4gdHJhcyB1biBsb2dvdXQvbG9naW4gZGVudHJvIGRlIGxhIG1pc21hIHNlc2nDs24gZGUgcMOhZ2luYS5cbiAgICAgICAgdGhpcy5fZmlyZWJhc2VBdXRoUmVhZHkuc2V0KCEhdXNlcik7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBbRkJBdXRoXSBhdXRoU3RhdGUgZW1pdCB1c2VyPSR7dXNlcj8udWlkID8/ICdudWxsJ30gZmlyZWJhc2VBdXRoUmVhZHk9JHshIXVzZXJ9YFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNlc3Npb25TdGF0ZS5uZXh0KHtcbiAgICAgICAgICB1c2VyOiB1c2VyID8gdGhpcy5tYXBVc2VyKHVzZXIpIDogbnVsbCxcbiAgICAgICAgICBpc0F1dGhlbnRpY2F0ZWQ6ICEhdXNlcixcbiAgICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLl9maXJlYmFzZUF1dGhSZWFkeS5zZXQoZmFsc2UpO1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBbRkJBdXRoXSBhdXRoU3RhdGUgRVJST1I6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpfWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RhdGUubmV4dCh7XG4gICAgICAgICAgdXNlcjogbnVsbCxcbiAgICAgICAgICBpc0F1dGhlbnRpY2F0ZWQ6IGZhbHNlLFxuICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN1ZWx2ZSBlbiBjdWFudG8gbGEgc2VzacOzbiBkZSBGaXJlYmFzZSBBdXRoIGVzdMOhIGxpc3RhIHBhcmEgbGVlclxuICAgKiBGaXJlc3RvcmUuIFNpIHlhIGVzdMOhIGxpc3RhLCByZXN1ZWx2ZSBpbm1lZGlhdGFtZW50ZS5cbiAgICpcbiAgICogw5p0aWwgcGFyYSBnYXRlYXIgbGEgcHJpbWVyYSBzdXNjcmlwY2nDs24gYSB1biBsaXN0ZW5lciBkZSBGaXJlc3RvcmUgeSBhc8OtXG4gICAqIGNlcnJhciBsYSB2ZW50YW5hIGRlIGBwZXJtaXNzaW9uLWRlbmllZGAgZW4gY29sZCBzdGFydC5cbiAgICpcbiAgICogVGllbmUgdW4gdGltZW91dCAoZGVmYXVsdCAxNXMpOiBzaSBlbCBgL3JlZnJlc2hgIGRlIGJvb3RzdHJhcCBmYWxsYSB5XG4gICAqIEZpcmViYXNlIEF1dGggbnVuY2EgbGxlZ2EgYSBlc3RhYmxlY2Vyc2UgKGVqLiByZWZyZXNoIHRva2VuIHlhIHJvdGFkb1xuICAgKiBwb3Igb3RyYSBwZXN0YcOxYSDigJQgdmVyIHJlZnJlc2guZ28sIHJvdGFjacOzbiBzaW5nbGUtdXNlKSwgYGF1dGhTdGF0ZSgpYFxuICAgKiBubyB2dWVsdmUgYSBlbWl0aXIgdW4gdXNlciB0cnV0aHkgeSBlc3RhIHByb21lc2EgTlVOQ0EgcmVzb2x2w61hIOKAlFxuICAgKiBjdWFscXVpZXIgZ3VhcmQvc2VydmljaW8gZ2F0ZWFkbyBhY8OhIChlai5cbiAgICogY2hlc3NpbWFsc0NoYWxsZW5nZUVsaWdpYmlsaXR5R3VhcmQpIHF1ZWRhYmEgY29sZ2FkbyBwYXJhIHNpZW1wcmUgY29uXG4gICAqIHBhbnRhbGxhIGVuIGJsYW5jbywgc2luIGVycm9yIHZpc2libGUuIEFob3JhIHJlc3VlbHZlIGBmYWxzZWAgdHJhcyBlbFxuICAgKiB0aW1lb3V0IHBhcmEgcXVlIGVsIGNhbGxlciBwdWVkYSBkZWNpZGlyIChyZWRpcmlnaXIsIG1vc3RyYXIgZXJyb3IpIGVuXG4gICAqIHZleiBkZSBlc3BlcmFyIGluZGVmaW5pZGFtZW50ZS4gRW5jb250cmFkbyAyMDI2LTA4LTExIGludmVzdGlnYW5kbyB1blxuICAgKiBidWcgZGUgQ2hlc3NpbWFscyBxdWUgcmVzdWx0w7Mgc2VyIGRvcyBidWdzIGRpc3RpbnRvczogZXN0ZSBnYXAgeSB1bmFcbiAgICogcsOhZmFnYSBkZSBjcmVhY2nDs24gZGUgcnVucyAoYXJyZWdsYWRhIGFwYXJ0ZSwgc2luIHJlbGFjacOzbiBjb24gZXN0bykuXG4gICAqL1xuICB3aGVuRmlyZWJhc2VBdXRoUmVhZHkodGltZW91dE1zID0gMTVfMDAwKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuX2ZpcmViYXNlQXV0aFJlYWR5KCkpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdbRkJBdXRoXSB3aGVuRmlyZWJhc2VBdXRoUmVhZHkgcmVzb2x2ZWQgaW1tZWRpYXRlbHkgKGFscmVhZHkgcmVhZHkpJyk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZygnW0ZCQXV0aF0gd2hlbkZpcmViYXNlQXV0aFJlYWR5IHdhaXRpbmcgZm9yIEZpcmViYXNlIEF1dGggc2Vzc2lvbi4uLicpO1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuZmlyZWJhc2VBdXRoUmVhZHkkLnBpcGUoXG4gICAgICAgIHRpbWVvdXQodGltZW91dE1zKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihmYWxzZSkpXG4gICAgICApXG4gICAgKS50aGVuKHYgPT4ge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIHZcbiAgICAgICAgICA/ICdbRkJBdXRoXSB3aGVuRmlyZWJhc2VBdXRoUmVhZHkgcmVzb2x2ZWQgYWZ0ZXIgd2FpdCdcbiAgICAgICAgICA6IGBbRkJBdXRoXSB3aGVuRmlyZWJhc2VBdXRoUmVhZHkgVElNRUQgT1VUIGFmdGVyICR7dGltZW91dE1zfW1zIOKAlCBGaXJlYmFzZSBBdXRoIG5ldmVyIGVzdGFibGlzaGVkYFxuICAgICAgKTtcbiAgICAgIHJldHVybiB2O1xuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEFVVEVOVElDQUNJw5NOXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBBdXRlbnRpY2EgYWwgdXN1YXJpbyBjb24gdW4gQ3VzdG9tIFRva2VuIGdlbmVyYWRvIHBvciBlbCBiYWNrZW5kLlxuICAgKlxuICAgKiBAcGFyYW0gdG9rZW4gLSBGaXJlYmFzZSBDdXN0b20gVG9rZW4gZ2VuZXJhZG8gcG9yIHR1IGJhY2tlbmRcbiAgICogQHJldHVybnMgVXNlckNyZWRlbnRpYWwgY29uIGxhIGluZm9ybWFjacOzbiBkZWwgdXN1YXJpb1xuICAgKiBAdGhyb3dzIEVycm9yIHNpIGVsIHRva2VuIGVzIGludsOhbGlkbyBvIGV4cGlyw7NcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiAvLyBEZXNwdcOpcyBkZSBsb2dpbiBleGl0b3NvIGNvbiB0dSBiYWNrZW5kXG4gICAqIGNvbnN0IHsgZmlyZWJhc2VUb2tlbiB9ID0gYXdhaXQgYmFja2VuZEF1dGgubG9naW4oZW1haWwsIHBhc3N3b3JkKTtcbiAgICogYXdhaXQgZmlyZWJhc2VTZXJ2aWNlLnNpZ25JbldpdGhDdXN0b21Ub2tlbihmaXJlYmFzZVRva2VuKTtcbiAgICogYGBgXG4gICAqL1xuICAvKipcbiAgICogRW50cmEgYSBGaXJlYmFzZSBjb24gdW4gY3VzdG9tIHRva2VuIGRlbCBiYWNrZW5kLlxuICAgKlxuICAgKiBEZXZ1ZWx2ZSBgbnVsbGAgY3VhbmRvICoqbm8gaGl6byBmYWx0YSBlbnRyYXIqKjogZWwgdG9rZW4gcHJvZHVjZSBsYSBtaXNtYVxuICAgKiBzZXNpw7NuIHF1ZSB5YSBlc3TDoSBhY3RpdmEgKG1pc21vIHVpZCB5IG1pc21vcyBjbGFpbXMpLiBObyBlcyB1biBlcnJvciwgZXNcbiAgICogbGEgcmVzcHVlc3RhIGNvcnJlY3RhIGEgXCJlc3RvIG5vIGNhbWJpYSBuYWRhXCIuXG4gICAqXG4gICAqIERvcyBwcm90ZWNjaW9uZXMsIHBvciBkb3MgcHJvYmxlbWFzIGRpc3RpbnRvczpcbiAgICpcbiAgICogLSAqKk5vIHJlcGV0aXIqKjogYWwgYXJyYW5jYXIgY29uIHVuIHRva2VuIGd1YXJkYWRvIHZlbmNpZG8sIGVsIGJvb3RzdHJhcFxuICAgKiAgIGRpc3BhcmEgdW4gcmVmcmVzaCBlbiBzZWd1bmRvIHBsYW5vIHF1ZSBlbnRyYSBhIEZpcmViYXNlIHBvciBzdSBjdWVudGE7XG4gICAqICAgc2kgYWRlbcOhcyBlbCB1c3VhcmlvIGVzdMOhIGNvbXBsZXRhbmRvIHVuIGxvZ2luICh0w61waWNhbWVudGUgZWwgY2FsbGJhY2tcbiAgICogICBkZSBPQXV0aCksIHNlIGVudHJhYmEgRE9TIHZlY2VzIHBhcmEgdGVybWluYXIgZW4gZWwgbWlzbW8gbHVnYXIuIEFob3JhIGxhXG4gICAqICAgc2VndW5kYSBzZSBkZXNjYXJ0YSBjb21wYXJhbmRvIGxhIGZpcm1hIGRlIGxhIHNlc2nDs24sIG5vIGVsIHRva2VuIGNydWRvXG4gICAqICAg4oCUIGRvcyB0b2tlbnMgZW1pdGlkb3MgY29uIHNlZ3VuZG9zIGRlIGRpZmVyZW5jaWEgc29uIGNhZGVuYXMgZGlzdGludGFzXG4gICAqICAgcGVybyBwcm9kdWNlbiBsYSBtaXNtYSBzZXNpw7NuLlxuICAgKiAtICoqTm8gcGlzYXJzZSoqOiBzaSBkb3MgZW50cmFkYXMgY29uIHNlc2lvbmVzIERJU1RJTlRBUyBsbGVnYW4gYSBsYSB2ZXosXG4gICAqICAgc2Ugc2VyaWFsaXphbiAodmVyIEVudHJhZGFTZXJpYWxpemFkYSkgcGFyYSBxdWUgZ2FuZSBsYSDDumx0aW1hIHkgbm8gbGFcbiAgICogICBxdWUgcmVzcG9uZGEgcHJpbWVybyBsYSByZWQuXG4gICAqL1xuICBhc3luYyBzaWduSW5XaXRoQ3VzdG9tVG9rZW4odG9rZW46IHN0cmluZyk6IFByb21pc2U8VXNlckNyZWRlbnRpYWwgfCBudWxsPiB7XG4gICAgY29uc3QgZmlybWEgPSBmaXJtYURlU2VzaW9uRGVDdXN0b21Ub2tlbih0b2tlbik7XG5cbiAgICBpZiAoXG4gICAgICBmaXJtYSAmJlxuICAgICAgZmlybWEgPT09IHRoaXMuZmlybWFTZXNpb25BY3RpdmEgJiZcbiAgICAgIHRoaXMuYXV0aC5jdXJyZW50VXNlciAhPT0gbnVsbFxuICAgICkge1xuICAgICAgY29uc29sZS5sb2coJ1tGQkF1dGhdIHNpZ25JbldpdGhDdXN0b21Ub2tlbjogbGEgc2VzacOzbiB5YSBlcyBlc3RhLCBubyBzZSByZXBpdGUnKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIExhIGxsYXZlIGRlbCBzZXJpYWxpemFkb3IgZXMgbGEgRklSTUEsIG5vIGVsIHRva2VuIGNydWRvOiBkb3MgSldUXG4gICAgLy8gZW1pdGlkb3MgY29uIHNlZ3VuZG9zIGRlIGRpZmVyZW5jaWEgc29uIGNhZGVuYXMgZGlzdGludGFzIHBlcm8gcHJvZHVjZW5cbiAgICAvLyBsYSBtaXNtYSBzZXNpw7NuLCB5IGRlZHVwZWFyIHBvciB0b2tlbiBsb3MgZGVqYWJhIHBhc2FyIGEgYW1ib3MuXG4gICAgcmV0dXJuIHRoaXMuZW50cmFkYUZpcmViYXNlLmVqZWN1dGFyKGZpcm1hID8/IHRva2VuLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0ID0gdG9rZW47XG4gICAgICBjb25zdCBjcmVkZW50aWFsID0gYXdhaXQgdGhpcy5lamVjdXRhclNpZ25JbldpdGhDdXN0b21Ub2tlbih0KTtcbiAgICAgIC8vIFNlIGd1YXJkYSBERVNQVcOJUyBkZSBlbnRyYXI6IHNpIGZhbGxhLCBsYSBmaXJtYSBhbnRlcmlvciBubyBzZSBwaXNhIHlcbiAgICAgIC8vIGVsIHByw7N4aW1vIGludGVudG8gdnVlbHZlIGEgZW50cmFyLlxuICAgICAgdGhpcy5maXJtYVNlc2lvbkFjdGl2YSA9IGZpcm1hRGVTZXNpb25EZUN1c3RvbVRva2VuKHQpO1xuICAgICAgcmV0dXJuIGNyZWRlbnRpYWw7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGVudHJhZGFGaXJlYmFzZSA9IG5ldyBFbnRyYWRhU2VyaWFsaXphZGE8VXNlckNyZWRlbnRpYWw+KCk7XG5cbiAgLyoqXG4gICAqIEZpcm1hIGRlIGxhIHNlc2nDs24gZGUgRmlyZWJhc2UgYWN0aXZhLiBFbiBtZW1vcmlhIGEgcHJvcMOzc2l0bzogdHJhcyB1blxuICAgKiByZWxvYWQgbm8gc2FiZW1vcyBjb24gcXXDqSBjbGFpbXMgcXVlZMOzIGxhIHNlc2nDs24gcGVyc2lzdGlkYSwgeSBhaMOtXG4gICAqIGNvcnJlc3BvbmRlIHZvbHZlciBhIGVudHJhci5cbiAgICovXG4gIHByaXZhdGUgZmlybWFTZXNpb25BY3RpdmE6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgYXN5bmMgZWplY3V0YXJTaWduSW5XaXRoQ3VzdG9tVG9rZW4odG9rZW46IHN0cmluZyk6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICBjb25zb2xlLmxvZyhgW0ZCQXV0aF0gc2lnbkluV2l0aEN1c3RvbVRva2VuIGNhbGxlZCB0b2tlbkxlbj0ke3Rva2VuPy5sZW5ndGggPz8gMH1gKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY3JlZGVudGlhbCA9IGF3YWl0IHNpZ25JbldpdGhDdXN0b21Ub2tlbih0aGlzLmF1dGgsIHRva2VuKTtcblxuICAgICAgLy8gRm9yemFyIHJlZnJlc2ggZGVsIHRva2VuIHBhcmEgYXNlZ3VyYXIgcXVlIGxvcyBjbGFpbXMgZXN0w6luIGFjdHVhbGl6YWRvc1xuICAgICAgLy8gRXN0byBlcyBuZWNlc2FyaW8gcG9ycXVlIGdldElkVG9rZW5SZXN1bHQoKSBjYWNoZWEgZWwgcmVzdWx0YWRvXG4gICAgICBpZiAoY3JlZGVudGlhbC51c2VyKSB7XG4gICAgICAgIGF3YWl0IGNyZWRlbnRpYWwudXNlci5nZXRJZFRva2VuKHRydWUpO1xuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmxvZyhgW0ZCQXV0aF0gc2lnbkluV2l0aEN1c3RvbVRva2VuIE9LIHVpZD0ke2NyZWRlbnRpYWwudXNlcj8udWlkID8/ICdudWxsJ31gKTtcbiAgICAgIHJldHVybiBjcmVkZW50aWFsO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICAgICAgY29uc29sZS5lcnJvcihgW0ZCQXV0aF0gc2lnbkluV2l0aEN1c3RvbVRva2VuIEZBSUxFRDogJHttZXNzYWdlfWApO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaWVycmEgbGEgc2VzacOzbiBkZSBGaXJlYmFzZS5cbiAgICogTGxhbWFyIGp1bnRvIGNvbiBlbCBsb2dvdXQgZGUgdHUgc2lzdGVtYSBkZSBhdXRlbnRpY2FjacOzbiBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogYXN5bmMgbG9nb3V0KCkge1xuICAgKiAgIGF3YWl0IHRoaXMuYmFja2VuZEF1dGgubG9nb3V0KCk7ICAgIC8vIFR1IGF1dGhcbiAgICogICBhd2FpdCB0aGlzLmZpcmViYXNlLnNpZ25PdXQoKTsgICAgICAgLy8gRmlyZWJhc2VcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHNpZ25PdXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHNpZ25PdXQodGhpcy5hdXRoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gR0VUVEVSUyBTw41OQ1JPTk9TXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGVsIHVzdWFyaW8gYWN0dWFsIGRlIEZpcmViYXNlIChzw61uY3Jvbm8pLlxuICAgKiBSZXRvcm5hIG51bGwgc2kgbm8gaGF5IHVzdWFyaW8gYXV0ZW50aWNhZG8uXG4gICAqL1xuICBnZXQgY3VycmVudFVzZXIoKTogRmlyZWJhc2VVc2VyIHwgbnVsbCB7XG4gICAgY29uc3QgdXNlciA9IHRoaXMuYXV0aC5jdXJyZW50VXNlcjtcbiAgICByZXR1cm4gdXNlciA/IHRoaXMubWFwVXNlcih1c2VyKSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBlbCBVSUQgZGVsIHVzdWFyaW8gYWN0dWFsLlxuICAgKiBSZXRvcm5hIG51bGwgc2kgbm8gaGF5IHVzdWFyaW8gYXV0ZW50aWNhZG8uXG4gICAqL1xuICBnZXQgdWlkKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmF1dGguY3VycmVudFVzZXI/LnVpZCA/PyBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYSBzaSBoYXkgdW4gdXN1YXJpbyBhdXRlbnRpY2FkbyBhY3R1YWxtZW50ZS5cbiAgICovXG4gIGdldCBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5hdXRoLmN1cnJlbnRVc2VyO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFRPS0VOU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogT2J0aWVuZSBlbCBJRCBUb2tlbiBkZSBGaXJlYmFzZSBwYXJhIGVsIHVzdWFyaW8gYWN0dWFsLlxuICAgKiDDmnRpbCBwYXJhIHZhbGlkYXIgZWwgdXN1YXJpbyBlbiB0dSBiYWNrZW5kLlxuICAgKlxuICAgKiBAcGFyYW0gZm9yY2VSZWZyZXNoIC0gU2kgdHJ1ZSwgZnVlcnphIGxhIHJlbm92YWNpw7NuIGRlbCB0b2tlblxuICAgKiBAcmV0dXJucyBJRCBUb2tlbiBvIG51bGwgc2kgbm8gaGF5IHVzdWFyaW9cbiAgICovXG4gIGFzeW5jIGdldElkVG9rZW4oZm9yY2VSZWZyZXNoID0gZmFsc2UpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5hdXRoLmN1cnJlbnRVc2VyO1xuICAgIGlmICghdXNlcikgcmV0dXJuIG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHVzZXIuZ2V0SWRUb2tlbihmb3JjZVJlZnJlc2gpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbG9zIGNsYWltcyBwZXJzb25hbGl6YWRvcyBkZWwgdG9rZW4gZGVsIHVzdWFyaW8uXG4gICAqIExvcyBjbGFpbXMgc29uIGVzdGFibGVjaWRvcyBwb3IgdHUgYmFja2VuZCBhbCBjcmVhciBlbCBDdXN0b20gVG9rZW4uXG4gICAqXG4gICAqIEBwYXJhbSBmb3JjZVJlZnJlc2ggLSBTaSB0cnVlLCBmdWVyemEgbGEgcmVub3ZhY2nDs24gZGVsIHRva2VuIHBhcmEgb2J0ZW5lciBjbGFpbXMgYWN0dWFsaXphZG9zXG4gICAqIEByZXR1cm5zIE9iamV0byBjb24gbG9zIGNsYWltcyBvIHZhY8OtbyBzaSBubyBoYXkgdXN1YXJpb1xuICAgKi9cbiAgYXN5bmMgZ2V0Q2xhaW1zKGZvcmNlUmVmcmVzaCA9IGZhbHNlKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmF1dGguY3VycmVudFVzZXI7XG4gICAgaWYgKCF1c2VyKSByZXR1cm4ge307XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXNlci5nZXRJZFRva2VuUmVzdWx0KGZvcmNlUmVmcmVzaCk7XG4gICAgICByZXR1cm4gcmVzdWx0LmNsYWltcztcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgZWwgdXN1YXJpbyB0aWVuZSB1biByb2wgZXNwZWPDrWZpY28uXG4gICAqIEVsIHJvbCBkZWJlIGVzdGFyIGRlZmluaWRvIGVuIGxvcyBjbGFpbXMgZGVsIEN1c3RvbSBUb2tlbi5cbiAgICpcbiAgICogQHBhcmFtIHJvbGUgLSBOb21icmUgZGVsIHJvbCBhIHZlcmlmaWNhclxuICAgKiBAcmV0dXJucyB0cnVlIHNpIGVsIHVzdWFyaW8gdGllbmUgZWwgcm9sXG4gICAqL1xuICBhc3luYyBoYXNSb2xlKHJvbGU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNsYWltcyA9IGF3YWl0IHRoaXMuZ2V0Q2xhaW1zKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIGNsYWltc1sncm9sZSddID09PSByb2xlIHx8IChBcnJheS5pc0FycmF5KGNsYWltc1sncm9sZXMnXSkgJiYgY2xhaW1zWydyb2xlcyddLmluY2x1ZGVzKHJvbGUpKVxuICAgICk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkJBQyAtIFBFUk1JU09TIFkgT1JHQU5JWkFDSU9ORVNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbGFzIG1lbWJlcnNoaXBzIChvcmdhbml6YWNpb25lcykgZGVsIHVzdWFyaW8uXG4gICAqIENhZGEgbWVtYmVyc2hpcCBjb250aWVuZSBlbCByb2wgeSBwZXJtaXNvcyBlbiBlc2Egb3JnYW5pemFjacOzbi5cbiAgICpcbiAgICogQHBhcmFtIGZvcmNlUmVmcmVzaCAtIFNpIHRydWUsIGZ1ZXJ6YSBsYSByZW5vdmFjacOzbiBkZWwgdG9rZW5cbiAgICogQHJldHVybnMgTWFwYSBkZSBvcmdJZCDihpIgTWVtYmVyc2hpcEluZm9cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBtZW1iZXJzaGlwcyA9IGF3YWl0IGZpcmViYXNlU2VydmljZS5nZXRNZW1iZXJzaGlwcygpO1xuICAgKiAvLyB7ICdvcmdfYWJjJzogeyByb2xlSWQ6ICdhZG1pbicsIHJvbGVOYW1lOiAnYWRtaW4nLCBwZXJtaXNzaW9uczogWyd1c2VyczoqJywgLi4uXSB9IH1cbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBnZXRNZW1iZXJzaGlwcyhmb3JjZVJlZnJlc2ggPSBmYWxzZSk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgTWVtYmVyc2hpcEluZm8+PiB7XG4gICAgY29uc3QgY2xhaW1zID0gYXdhaXQgdGhpcy5nZXRDbGFpbXMoZm9yY2VSZWZyZXNoKTtcbiAgICByZXR1cm4gKGNsYWltc1snbWVtYmVyc2hpcHMnXSBhcyBSZWNvcmQ8c3RyaW5nLCBNZW1iZXJzaGlwSW5mbz4pIHx8IHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbGEgb3JnYW5pemFjacOzbiBhY3RpdmEgZGVsIHVzdWFyaW8uXG4gICAqIExhIG9yZ2FuaXphY2nDs24gYWN0aXZhIHNlIGVzdGFibGVjZSBhbCBoYWNlciBsb2dpbiBvIGFsIGNhbWJpYXIgZGUgb3JnLlxuICAgKlxuICAgKiBAcGFyYW0gZm9yY2VSZWZyZXNoIC0gU2kgdHJ1ZSwgZnVlcnphIGxhIHJlbm92YWNpw7NuIGRlbCB0b2tlblxuICAgKiBAcmV0dXJucyBJRCBkZSBsYSBvcmdhbml6YWNpw7NuIGFjdGl2YSBvIG51bGwgc2kgbm8gaGF5IG5pbmd1bmFcbiAgICovXG4gIGFzeW5jIGdldEFjdGl2ZU9yZyhmb3JjZVJlZnJlc2ggPSBmYWxzZSk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIGNvbnN0IGNsYWltcyA9IGF3YWl0IHRoaXMuZ2V0Q2xhaW1zKGZvcmNlUmVmcmVzaCk7XG4gICAgcmV0dXJuIChjbGFpbXNbJ2FjdGl2ZU9yZyddIGFzIHN0cmluZykgfHwgbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGluZm9ybWFjacOzbiBkZSB0b2RhcyBsYXMgb3JnYW5pemFjaW9uZXMgZGVsIHVzdWFyaW8uXG4gICAqXG4gICAqIEBwYXJhbSBmb3JjZVJlZnJlc2ggLSBTaSB0cnVlLCBmdWVyemEgbGEgcmVub3ZhY2nDs24gZGVsIHRva2VuXG4gICAqIEByZXR1cm5zIEFycmF5IGNvbiBpbmZvcm1hY2nDs24gZGUgY2FkYSBvcmdhbml6YWNpw7NuXG4gICAqL1xuICBhc3luYyBnZXRPcmdhbml6YXRpb25zKGZvcmNlUmVmcmVzaCA9IGZhbHNlKTogUHJvbWlzZTxPcmdhbml6YXRpb25JbmZvW10+IHtcbiAgICBjb25zdCBtZW1iZXJzaGlwcyA9IGF3YWl0IHRoaXMuZ2V0TWVtYmVyc2hpcHMoZm9yY2VSZWZyZXNoKTtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMobWVtYmVyc2hpcHMpLm1hcCgoW2lkLCBpbmZvXSkgPT4gKHtcbiAgICAgIGlkLFxuICAgICAgcm9sZUlkOiBpbmZvLnJvbGVJZCxcbiAgICAgIHJvbGVOYW1lOiBpbmZvLnJvbGVOYW1lLFxuICAgICAgcGVybWlzc2lvbnM6IGluZm8ucGVybWlzc2lvbnMsXG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbG9zIElEcyBkZSB0b2RhcyBsYXMgb3JnYW5pemFjaW9uZXMgZGVsIHVzdWFyaW8uXG4gICAqXG4gICAqIEByZXR1cm5zIEFycmF5IGRlIElEcyBkZSBvcmdhbml6YWNpb25lc1xuICAgKi9cbiAgYXN5bmMgZ2V0T3JnYW5pemF0aW9uSWRzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCBtZW1iZXJzaGlwcyA9IGF3YWl0IHRoaXMuZ2V0TWVtYmVyc2hpcHMoKTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMobWVtYmVyc2hpcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIGVsIHVzdWFyaW8gcGVydGVuZWNlIGEgdW5hIG9yZ2FuaXphY2nDs24uXG4gICAqXG4gICAqIEBwYXJhbSBvcmdJZCAtIElEIGRlIGxhIG9yZ2FuaXphY2nDs25cbiAgICogQHJldHVybnMgdHJ1ZSBzaSBlbCB1c3VhcmlvIGVzIG1pZW1icm9cbiAgICovXG4gIGFzeW5jIGlzTWVtYmVyT2Yob3JnSWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IG1lbWJlcnNoaXBzID0gYXdhaXQgdGhpcy5nZXRNZW1iZXJzaGlwcygpO1xuICAgIHJldHVybiBvcmdJZCBpbiBtZW1iZXJzaGlwcztcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGVsIHJvbCBkZWwgdXN1YXJpbyBlbiB1bmEgb3JnYW5pemFjacOzbi5cbiAgICpcbiAgICogQHBhcmFtIG9yZ0lkIC0gSUQgZGUgbGEgb3JnYW5pemFjacOzblxuICAgKiBAcmV0dXJucyBJRCBkZWwgcm9sIG8gbnVsbCBzaSBubyBlcyBtaWVtYnJvXG4gICAqL1xuICBhc3luYyBnZXRSb2xlSW5Pcmcob3JnSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIGNvbnN0IG1lbWJlcnNoaXBzID0gYXdhaXQgdGhpcy5nZXRNZW1iZXJzaGlwcygpO1xuICAgIHJldHVybiBtZW1iZXJzaGlwc1tvcmdJZF0/LnJvbGVJZCB8fCBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbG9zIHBlcm1pc29zIGRlbCB1c3VhcmlvIGVuIHVuYSBvcmdhbml6YWNpw7NuLlxuICAgKlxuICAgKiBAcGFyYW0gb3JnSWQgLSBJRCBkZSBsYSBvcmdhbml6YWNpw7NuXG4gICAqIEByZXR1cm5zIEFycmF5IGRlIHBlcm1pc29zIGVuIGZvcm1hdG8gJ3Jlc291cmNlOmFjdGlvbidcbiAgICovXG4gIGFzeW5jIGdldFBlcm1pc3Npb25zSW5Pcmcob3JnSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCBtZW1iZXJzaGlwcyA9IGF3YWl0IHRoaXMuZ2V0TWVtYmVyc2hpcHMoKTtcbiAgICByZXR1cm4gbWVtYmVyc2hpcHNbb3JnSWRdPy5wZXJtaXNzaW9ucyB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSBlbCB1c3VhcmlvIHRpZW5lIHVuIHBlcm1pc28gZXNwZWPDrWZpY28gZW4gdW5hIG9yZ2FuaXphY2nDs24uXG4gICAqIFNvcG9ydGEgd2lsZGNhcmRzOiAncmVzb3VyY2U6KicgeSAnKjoqJyAoc3VwZXIgYWRtaW4pLlxuICAgKlxuICAgKiBAcGFyYW0gb3JnSWQgLSBJRCBkZSBsYSBvcmdhbml6YWNpw7NuXG4gICAqIEBwYXJhbSByZXNvdXJjZSAtIFJlY3Vyc28gYSB2ZXJpZmljYXIgKGVqOiAndXNlcnMnLCAnZG9jdW1lbnRzJylcbiAgICogQHBhcmFtIGFjdGlvbiAtIEFjY2nDs24gYSB2ZXJpZmljYXIgKGVqOiAncmVhZCcsICd3cml0ZScsICdjcmVhdGUnLCAnZGVsZXRlJylcbiAgICogQHJldHVybnMgdHJ1ZSBzaSB0aWVuZSBlbCBwZXJtaXNvXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gVmVyaWZpY2FyIHBlcm1pc28gZXNwZWPDrWZpY29cbiAgICogY29uc3QgY2FuUmVhZFVzZXJzID0gYXdhaXQgZmlyZWJhc2VTZXJ2aWNlLmhhc1Blcm1pc3Npb24oJ29yZ19hYmMnLCAndXNlcnMnLCAncmVhZCcpO1xuICAgKlxuICAgKiAvLyBWZXJpZmljYXIgZW4gbGEgb3JnYW5pemFjacOzbiBhY3RpdmFcbiAgICogY29uc3Qgb3JnSWQgPSBhd2FpdCBmaXJlYmFzZVNlcnZpY2UuZ2V0QWN0aXZlT3JnKCk7XG4gICAqIGNvbnN0IGNhbkVkaXQgPSBhd2FpdCBmaXJlYmFzZVNlcnZpY2UuaGFzUGVybWlzc2lvbihvcmdJZCEsICdkb2N1bWVudHMnLCAnd3JpdGUnKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBoYXNQZXJtaXNzaW9uKG9yZ0lkOiBzdHJpbmcsIHJlc291cmNlOiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgcGVybWlzc2lvbnMgPSBhd2FpdCB0aGlzLmdldFBlcm1pc3Npb25zSW5Pcmcob3JnSWQpO1xuICAgIGNvbnN0IHBlcm1pc3Npb24gPSBgJHtyZXNvdXJjZX06JHthY3Rpb259YDtcblxuICAgIHJldHVybiAoXG4gICAgICBwZXJtaXNzaW9ucy5pbmNsdWRlcyhwZXJtaXNzaW9uKSB8fFxuICAgICAgcGVybWlzc2lvbnMuaW5jbHVkZXMoYCR7cmVzb3VyY2V9OipgKSB8fFxuICAgICAgcGVybWlzc2lvbnMuaW5jbHVkZXMoJyo6KicpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSBlbCB1c3VhcmlvIHB1ZWRlIGxlZXIgdW4gcmVjdXJzbyBlbiB1bmEgb3JnYW5pemFjacOzbi5cbiAgICogQXRham8gcGFyYSBoYXNQZXJtaXNzaW9uKG9yZ0lkLCByZXNvdXJjZSwgJ3JlYWQnKS5cbiAgICovXG4gIGFzeW5jIGNhblJlYWQob3JnSWQ6IHN0cmluZywgcmVzb3VyY2U6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmhhc1Blcm1pc3Npb24ob3JnSWQsIHJlc291cmNlLCAncmVhZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIGVsIHVzdWFyaW8gcHVlZGUgZXNjcmliaXIgdW4gcmVjdXJzbyBlbiB1bmEgb3JnYW5pemFjacOzbi5cbiAgICogQXRham8gcGFyYSBoYXNQZXJtaXNzaW9uKG9yZ0lkLCByZXNvdXJjZSwgJ3dyaXRlJykuXG4gICAqL1xuICBhc3luYyBjYW5Xcml0ZShvcmdJZDogc3RyaW5nLCByZXNvdXJjZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzUGVybWlzc2lvbihvcmdJZCwgcmVzb3VyY2UsICd3cml0ZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIGVsIHVzdWFyaW8gcHVlZGUgY3JlYXIgdW4gcmVjdXJzbyBlbiB1bmEgb3JnYW5pemFjacOzbi5cbiAgICogQXRham8gcGFyYSBoYXNQZXJtaXNzaW9uKG9yZ0lkLCByZXNvdXJjZSwgJ2NyZWF0ZScpLlxuICAgKi9cbiAgYXN5bmMgY2FuQ3JlYXRlKG9yZ0lkOiBzdHJpbmcsIHJlc291cmNlOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5oYXNQZXJtaXNzaW9uKG9yZ0lkLCByZXNvdXJjZSwgJ2NyZWF0ZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIGVsIHVzdWFyaW8gcHVlZGUgZWxpbWluYXIgdW4gcmVjdXJzbyBlbiB1bmEgb3JnYW5pemFjacOzbi5cbiAgICogQXRham8gcGFyYSBoYXNQZXJtaXNzaW9uKG9yZ0lkLCByZXNvdXJjZSwgJ2RlbGV0ZScpLlxuICAgKi9cbiAgYXN5bmMgY2FuRGVsZXRlKG9yZ0lkOiBzdHJpbmcsIHJlc291cmNlOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5oYXNQZXJtaXNzaW9uKG9yZ0lkLCByZXNvdXJjZSwgJ2RlbGV0ZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIGVsIHVzdWFyaW8gcHVlZGUgYWRtaW5pc3RyYXIgdW4gcmVjdXJzbyBlbiB1bmEgb3JnYW5pemFjacOzbi5cbiAgICogRXF1aXZhbGUgYSB0ZW5lciAncmVzb3VyY2U6KicgbyAnKjoqJy5cbiAgICovXG4gIGFzeW5jIGNhbk1hbmFnZShvcmdJZDogc3RyaW5nLCByZXNvdXJjZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgcGVybWlzc2lvbnMgPSBhd2FpdCB0aGlzLmdldFBlcm1pc3Npb25zSW5Pcmcob3JnSWQpO1xuICAgIHJldHVybiBwZXJtaXNzaW9ucy5pbmNsdWRlcyhgJHtyZXNvdXJjZX06KmApIHx8IHBlcm1pc3Npb25zLmluY2x1ZGVzKCcqOionKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSBlbCB1c3VhcmlvIGVzIHN1cGVyIGFkbWluIGVuIHVuYSBvcmdhbml6YWNpw7NuLlxuICAgKiBTdXBlciBhZG1pbiB0aWVuZSBlbCBwZXJtaXNvICcqOionLlxuICAgKi9cbiAgYXN5bmMgaXNTdXBlckFkbWluKG9yZ0lkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IGF3YWl0IHRoaXMuZ2V0UGVybWlzc2lvbnNJbk9yZyhvcmdJZCk7XG4gICAgcmV0dXJuIHBlcm1pc3Npb25zLmluY2x1ZGVzKCcqOionKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSBlbCB1c3VhcmlvIGVzIGFkbWluIGVuIHVuYSBvcmdhbml6YWNpw7NuLlxuICAgKi9cbiAgYXN5bmMgaXNBZG1pbkluT3JnKG9yZ0lkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCByb2xlID0gYXdhaXQgdGhpcy5nZXRSb2xlSW5Pcmcob3JnSWQpO1xuICAgIHJldHVybiByb2xlID09PSAnYWRtaW4nIHx8IHJvbGUgPT09ICdzdXBlcl9hZG1pbic7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVVRJTElEQURFU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogRXNwZXJhIGEgcXVlIGVsIGVzdGFkbyBkZSBhdXRlbnRpY2FjacOzbiBlc3TDqSBkZXRlcm1pbmFkby5cbiAgICogw5p0aWwgZW4gZ3VhcmRzIG8gYWwgaW5pY2lhbGl6YXIgbGEgYXBwLlxuICAgKlxuICAgKiBAcmV0dXJucyBVc3VhcmlvIGFjdHVhbCBvIG51bGxcbiAgICovXG4gIHdhaXRGb3JBdXRoKCk6IFByb21pc2U8RmlyZWJhc2VVc2VyIHwgbnVsbD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuc3RhdGUkLnN1YnNjcmliZShzdGF0ZSA9PiB7XG4gICAgICAgIGlmICghc3RhdGUuaXNMb2FkaW5nKSB7XG4gICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgcmVzb2x2ZShzdGF0ZS51c2VyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsYSBjb25maWd1cmFjacOzbiBhY3R1YWwgZGUgRmlyZWJhc2UuXG4gICAqL1xuICBnZXRDb25maWcoKTogVmFsdGVjaEZpcmViYXNlQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWc7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhIHNpIGxvcyBlbXVsYWRvcmVzIGVzdMOhbiBoYWJpbGl0YWRvcy5cbiAgICovXG4gIGlzVXNpbmdFbXVsYXRvcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKFxuICAgICAgdGhpcy5jb25maWcuZW11bGF0b3I/LmZpcmVzdG9yZSB8fFxuICAgICAgdGhpcy5jb25maWcuZW11bGF0b3I/LmF1dGggfHxcbiAgICAgIHRoaXMuY29uZmlnLmVtdWxhdG9yPy5zdG9yYWdlXG4gICAgKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBNw4lUT0RPUyBQUklWQURPU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogTWFwZWEgdW4gVXNlciBkZSBGaXJlYmFzZSBhIG51ZXN0cmEgaW50ZXJmYWNlIEZpcmViYXNlVXNlclxuICAgKi9cbiAgcHJpdmF0ZSBtYXBVc2VyKHVzZXI6IFVzZXIpOiBGaXJlYmFzZVVzZXIge1xuICAgIHJldHVybiB7XG4gICAgICB1aWQ6IHVzZXIudWlkLFxuICAgICAgZW1haWw6IHVzZXIuZW1haWwsXG4gICAgICBkaXNwbGF5TmFtZTogdXNlci5kaXNwbGF5TmFtZSxcbiAgICAgIHBob3RvVVJMOiB1c2VyLnBob3RvVVJMLFxuICAgICAgZW1haWxWZXJpZmllZDogdXNlci5lbWFpbFZlcmlmaWVkLFxuICAgICAgaXNBbm9ueW1vdXM6IHVzZXIuaXNBbm9ueW1vdXMsXG4gICAgICBwcm92aWRlcklkOiB1c2VyLnByb3ZpZGVySWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252aWVydGUgZXJyb3JlcyBkZSBGaXJlYmFzZSBhIG1lbnNhamVzIGVuIGVzcGHDsW9sXG4gICAqL1xuICBwcml2YXRlIGdldEVycm9yTWVzc2FnZShlcnJvcjogdW5rbm93bik6IHN0cmluZyB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIGNvbnN0IGNvZGUgPSAoZXJyb3IgYXMgeyBjb2RlPzogc3RyaW5nIH0pLmNvZGU7XG5cbiAgICAgIHN3aXRjaCAoY29kZSkge1xuICAgICAgICBjYXNlICdhdXRoL2ludmFsaWQtY3VzdG9tLXRva2VuJzpcbiAgICAgICAgICByZXR1cm4gJ1Rva2VuIGRlIGF1dGVudGljYWNpw7NuIGludsOhbGlkbyc7XG4gICAgICAgIGNhc2UgJ2F1dGgvY3VzdG9tLXRva2VuLW1pc21hdGNoJzpcbiAgICAgICAgICByZXR1cm4gJ0VsIHRva2VuIG5vIGNvcnJlc3BvbmRlIGEgZXN0ZSBwcm95ZWN0byc7XG4gICAgICAgIGNhc2UgJ2F1dGgvbmV0d29yay1yZXF1ZXN0LWZhaWxlZCc6XG4gICAgICAgICAgcmV0dXJuICdFcnJvciBkZSBjb25leGnDs24uIFZlcmlmaWNhIHR1IGNvbmV4acOzbiBhIGludGVybmV0JztcbiAgICAgICAgY2FzZSAnYXV0aC90b28tbWFueS1yZXF1ZXN0cyc6XG4gICAgICAgICAgcmV0dXJuICdEZW1hc2lhZG9zIGludGVudG9zLiBJbnRlbnRhIGRlIG51ZXZvIG3DoXMgdGFyZGUnO1xuICAgICAgICBjYXNlICdhdXRoL3VzZXItZGlzYWJsZWQnOlxuICAgICAgICAgIHJldHVybiAnRXN0YSBjdWVudGEgaGEgc2lkbyBkZXNoYWJpbGl0YWRhJztcbiAgICAgICAgY2FzZSAnYXV0aC91c2VyLW5vdC1mb3VuZCc6XG4gICAgICAgICAgcmV0dXJuICdVc3VhcmlvIG5vIGVuY29udHJhZG8nO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBlcnJvci5tZXNzYWdlIHx8ICdFcnJvciBkZSBhdXRlbnRpY2FjacOzbiBkZXNjb25vY2lkbyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICdFcnJvciBkZSBhdXRlbnRpY2FjacOzbiBkZXNjb25vY2lkbyc7XG4gIH1cbn1cbiJdfQ==
|
|
579
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvZmlyZWJhc2UvZmlyZWJhc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUVMLFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsT0FBTyxHQUdSLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixjQUFjLEVBQ2QsR0FBRyxFQUVILEVBQUUsRUFDRixJQUFJLEVBQ0osT0FBTyxHQUNSLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFTakU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUF5RDFCLFlBQ1UsSUFBVSxFQUN1QixNQUE2QjtRQUQ5RCxTQUFJLEdBQUosSUFBSSxDQUFNO1FBQ3VCLFdBQU0sR0FBTixNQUFNLENBQXVCO1FBMUR4RSxrQ0FBa0M7UUFDMUIsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBZTtZQUN2RCxJQUFJLEVBQUUsSUFBSTtZQUNWLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLENBQUM7UUFFSCxpREFBaUQ7UUFDeEMsV0FBTSxHQUE2QixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVks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QUksRUFBRSxDQUFDO2dCQUNiLEtBQUssMkJBQTJCO29CQUM5QixPQUFPLGlDQUFpQyxDQUFDO2dCQUMzQyxLQUFLLDRCQUE0QjtvQkFDL0IsT0FBTyx5Q0FBeUMsQ0FBQztnQkFDbkQsS0FBSyw2QkFBNkI7b0JBQ2hDLE9BQU8sb0RBQW9ELENBQUM7Z0JBQzlELEtBQUssd0JBQXdCO29CQUMzQixPQUFPLGlEQUFpRCxDQUFDO2dCQUMzRCxLQUFLLG9CQUFvQjtvQkFDdkIsT0FBTyxtQ0FBbUMsQ0FBQztnQkFDN0MsS0FBSyxxQkFBcUI7b0JBQ3hCLE9BQU8sdUJBQXVCLENBQUM7Z0JBQ2pDO29CQUNFLE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxvQ0FBb0MsQ0FBQztZQUNqRSxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sb0NBQW9DLENBQUM7SUFDOUMsQ0FBQzsrR0FwbUJVLGVBQWUsc0NBMkRoQix1QkFBdUI7bUhBM0R0QixlQUFlLGNBREYsTUFBTTs7NEZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkE0RDdCLE1BQU07MkJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGaXJlYmFzZSBTZXJ2aWNlXG4gKlxuICogU2VydmljaW8gcHJpbmNpcGFsIHBhcmEgbGEgYXV0ZW50aWNhY2nDs24gY29uIEZpcmViYXNlIHVzYW5kbyBDdXN0b20gVG9rZW5zLlxuICogUGVybWl0ZSBxdWUgdXN1YXJpb3MgYXV0ZW50aWNhZG9zIGNvbiB0dSBiYWNrZW5kIChDb2duaXRvLCBldGMuKSBhY2NlZGFuXG4gKiBhIHNlcnZpY2lvcyBkZSBGaXJlYmFzZSAoRmlyZXN0b3JlLCBTdG9yYWdlLCBGQ00pIGRlIG1hbmVyYSBzZWd1cmEuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBTaWduYWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQXV0aCxcbiAgYXV0aFN0YXRlLFxuICBzaWduSW5XaXRoQ3VzdG9tVG9rZW4sXG4gIHNpZ25PdXQsXG4gIFVzZXIsXG4gIFVzZXJDcmVkZW50aWFsLFxufSBmcm9tICdAYW5ndWxhci9maXJlL2F1dGgnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjYXRjaEVycm9yLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBmaXJzdFZhbHVlRnJvbSxcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgdGFrZSxcbiAgdGltZW91dCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFZBTFRFQ0hfRklSRUJBU0VfQ09ORklHIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgRW50cmFkYVNlcmlhbGl6YWRhIH0gZnJvbSAnLi9zaWduLWluLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgZmlybWFEZVNlc2lvbkRlQ3VzdG9tVG9rZW4gfSBmcm9tICcuL3Nlc3Npb24tc2lnbmF0dXJlJztcbmltcG9ydCB7XG4gIEZpcmViYXNlVXNlcixcbiAgTWVtYmVyc2hpcEluZm8sXG4gIE9yZ2FuaXphdGlvbkluZm8sXG4gIFNlc3Npb25TdGF0ZSxcbiAgVmFsdGVjaEZpcmViYXNlQ29uZmlnLFxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBTZXJ2aWNpbyBkZSBhdXRlbnRpY2FjacOzbiBkZSBGaXJlYmFzZS5cbiAqXG4gKiBFc3RlIHNlcnZpY2lvIE5PIG1hbmVqYSBlbCBsb2dpbiBkZSB1c3VhcmlvcyBkaXJlY3RhbWVudGUuXG4gKiBFbiBzdSBsdWdhciwgdHJhYmFqYSBjb24gQ3VzdG9tIFRva2VucyBnZW5lcmFkb3MgcG9yIHR1IGJhY2tlbmQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIERlc3B1w6lzIGRlIGF1dGVudGljYXJ0ZSBjb24gdHUgYmFja2VuZCAoZWo6IENvZ25pdG8pXG4gKiBAQ29tcG9uZW50KHsuLi59KVxuICogZXhwb3J0IGNsYXNzIExvZ2luQ29tcG9uZW50IHtcbiAqICAgcHJpdmF0ZSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7ICAgICAvLyBUdSBzZXJ2aWNpbyBkZSBhdXRoXG4gKiAgIHByaXZhdGUgZmlyZWJhc2UgPSBpbmplY3QoRmlyZWJhc2VTZXJ2aWNlKTsgICAgLy8gRXN0ZSBzZXJ2aWNpb1xuICpcbiAqICAgYXN5bmMgbG9naW4oZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICogICAgIC8vIDEuIEF1dGVudGljYXIgY29uIHR1IGJhY2tlbmRcbiAqICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UubG9naW4oZW1haWwsIHBhc3N3b3JkKTtcbiAqXG4gKiAgICAgLy8gMi4gRWwgYmFja2VuZCBkZXZ1ZWx2ZSB1biBGaXJlYmFzZSBDdXN0b20gVG9rZW5cbiAqICAgICBpZiAocmVzcG9uc2UuZmlyZWJhc2VUb2tlbikge1xuICogICAgICAgYXdhaXQgdGhpcy5maXJlYmFzZS5zaWduSW5XaXRoQ3VzdG9tVG9rZW4ocmVzcG9uc2UuZmlyZWJhc2VUb2tlbik7XG4gKiAgICAgfVxuICpcbiAqICAgICAvLyBBaG9yYSBlbCB1c3VhcmlvIHB1ZWRlIGFjY2VkZXIgYSBGaXJlc3RvcmUsIFN0b3JhZ2UsIGV0Yy5cbiAqICAgfVxuICpcbiAqICAgYXN5bmMgbG9nb3V0KCkge1xuICogICAgIGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCk7XG4gKiAgICAgYXdhaXQgdGhpcy5maXJlYmFzZS5zaWduT3V0KCk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEZpcmViYXNlU2VydmljZSB7XG4gIC8qKiBFc3RhZG8gaW50ZXJubyBkZSBsYSBzZXNpw7NuICovXG4gIHByaXZhdGUgc2Vzc2lvblN0YXRlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZXNzaW9uU3RhdGU+KHtcbiAgICB1c2VyOiBudWxsLFxuICAgIGlzQXV0aGVudGljYXRlZDogZmFsc2UsXG4gICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgIGVycm9yOiBudWxsLFxuICB9KTtcblxuICAvKiogRXN0YWRvIGFjdHVhbCBkZSBsYSBzZXNpw7NuIGNvbW8gT2JzZXJ2YWJsZSAqL1xuICByZWFkb25seSBzdGF0ZSQ6IE9ic2VydmFibGU8U2Vzc2lvblN0YXRlPiA9IHRoaXMuc2Vzc2lvblN0YXRlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIC8qKiBVc3VhcmlvIGFjdHVhbCBkZSBGaXJlYmFzZSBjb21vIE9ic2VydmFibGUgKi9cbiAgcmVhZG9ubHkgdXNlciQ6IE9ic2VydmFibGU8RmlyZWJhc2VVc2VyIHwgbnVsbD47XG5cbiAgLyoqIEluZGljYSBzaSBlbCB1c3VhcmlvIGVzdMOhIGF1dGVudGljYWRvIGVuIEZpcmViYXNlICovXG4gIHJlYWRvbmx5IGlzQXV0aGVudGljYXRlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgLyoqXG4gICAqIFNpZ25hbCBpbnRlcm5hIHF1ZSByZXNwYWxkYSBgZmlyZWJhc2VBdXRoUmVhZHlgLlxuICAgKiBgdHJ1ZWAgY3VhbmRvIGhheSB1biBgZmlyZWJhc2UuVXNlcmAgYWN0aXZvIHkgcG9yIHRhbnRvIGxhcyByZWdsYXMgZGVcbiAgICogRmlyZXN0b3JlIGV2YWx1YXLDoW4gYHJlcXVlc3QuYXV0aCAhPSBudWxsYCBjb3JyZWN0YW1lbnRlLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfZmlyZWJhc2VBdXRoUmVhZHkgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBJbmRpY2Egc2kgbGEgc2VzacOzbiBkZSAqKkZpcmViYXNlIEF1dGgqKiBlc3TDoSBlc3RhYmxlY2lkYSB5IGxpc3RhIHBhcmFcbiAgICogbGVlciBGaXJlc3RvcmUuXG4gICAqXG4gICAqIElNUE9SVEFOVEU6IGVzdG8gZXMgZGlzdGludG8gZGVsIEpXVCBkZWwgYmFja2VuZC4gTGEgc2VzacOzbiBkZSBGaXJlYmFzZVxuICAgKiBBdXRoIGVzIHVuYSBzZXNpw7NuIHNlcGFyYWRhIHF1ZSBzZSBlc3RhYmxlY2UgdsOtYSBgc2lnbkluV2l0aEN1c3RvbVRva2VuYFxuICAgKiAodmVyIGBBdXRoU2VydmljZS5zaWduSW5XaXRoRmlyZWJhc2VgKS4gRW4gY29sZCBzdGFydCBkZSBQV0EsIGVsIEpXVCBkZWxcbiAgICogYmFja2VuZCBwdWVkZSBlc3RhciBsaXN0byB2YXJpb3MgY2llbnRvcyBkZSBtcyBhbnRlcyBkZSBxdWUgRmlyZWJhc2UgQXV0aFxuICAgKiBjb25maXJtZSBzdSBgVXNlcmAg4oCUIGFkanVudGFyIHVuIGxpc3RlbmVyIGRlIEZpcmVzdG9yZSBlbiBlc2EgdmVudGFuYVxuICAgKiBwcm9kdWNlIGBwZXJtaXNzaW9uLWRlbmllZGAuXG4gICAqXG4gICAqIFVzYXIgZXN0ZSBzaWduYWwgKG8gYHdoZW5GaXJlYmFzZUF1dGhSZWFkeSgpYCkgY29tbyBnYXRlIGFudGVzIGRlXG4gICAqIHN1c2NyaWJpcnNlIGEgY3VhbHF1aWVyIHF1ZXJ5L2xpc3RlbmVyIGRlIEZpcmVzdG9yZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBpZiAodGhpcy5maXJlYmFzZS5maXJlYmFzZUF1dGhSZWFkeSgpKSB7XG4gICAqICAgLy8gc2VndXJvIGxlZXIgRmlyZXN0b3JlXG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICByZWFkb25seSBmaXJlYmFzZUF1dGhSZWFkeTogU2lnbmFsPGJvb2xlYW4+ID0gdGhpcy5fZmlyZWJhc2VBdXRoUmVhZHkuYXNSZWFkb25seSgpO1xuXG4gIC8qKlxuICAgKiBFbWl0ZSBgdHJ1ZWAgdW5hIHNvbGEgdmV6IGVuIGN1YW50byBsYSBzZXNpw7NuIGRlIEZpcmViYXNlIEF1dGggZXN0w6EgbGlzdGEsXG4gICAqIHkgY29tcGxldGEuIFNpIHlhIGVzdMOhIGxpc3RhLCBlbWl0ZSBpbm1lZGlhdGFtZW50ZS5cbiAgICpcbiAgICogUGVuc2FkbyBjb21vIGdhdGUgY29tcGFydGlkbyBwYXJhIGFicmlyIHN0cmVhbXMgRmlyZXN0b3JlIOKAlCBlc3BlcmEgbGFcbiAgICogdmVudGFuYSBkZSBoaWRyYXRhY2nDs24gZGUgRmlyZWJhc2UgQXV0aCBzaW4gbmVjZXNpZGFkIGRlIHJldHJpZXMuXG4gICAqL1xuICByZWFkb25seSBmaXJlYmFzZUF1dGhSZWFkeSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoLFxuICAgIEBJbmplY3QoVkFMVEVDSF9GSVJFQkFTRV9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBWYWx0ZWNoRmlyZWJhc2VDb25maWdcbiAgKSB7XG4gICAgLy8gSW5pY2lhbGl6YXIgb2JzZXJ2YWJsZXMgcXVlIGRlcGVuZGVuIGRlIGF1dGhcbiAgICB0aGlzLnVzZXIkID0gYXV0aFN0YXRlKHRoaXMuYXV0aCkucGlwZShcbiAgICAgIG1hcCh1c2VyID0+ICh1c2VyID8gdGhpcy5tYXBVc2VyKHVzZXIpIDogbnVsbCkpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGE/LnVpZCA9PT0gYj8udWlkKVxuICAgICk7XG5cbiAgICB0aGlzLmlzQXV0aGVudGljYXRlZCQgPSB0aGlzLnVzZXIkLnBpcGUoXG4gICAgICBtYXAodXNlciA9PiAhIXVzZXIpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG5cbiAgICAvLyBHYXRlIGNvbXBhcnRpZG86IGVtaXRlIHRydWUgZW4gY3VhbnRvIGhheWEgdW4gZmlyZWJhc2UuVXNlciB5IGNvbXBsZXRhLlxuICAgIHRoaXMuZmlyZWJhc2VBdXRoUmVhZHkkID0gYXV0aFN0YXRlKHRoaXMuYXV0aCkucGlwZShcbiAgICAgIGZpbHRlcigodXNlcik6IHVzZXIgaXMgVXNlciA9PiAhIXVzZXIpLFxuICAgICAgbWFwKCgpID0+IHRydWUpLFxuICAgICAgdGFrZSgxKVxuICAgICk7XG5cbiAgICAvLyBFc2N1Y2hhciBjYW1iaW9zIGVuIGVsIGVzdGFkbyBkZSBhdXRlbnRpY2FjacOzblxuICAgIGF1dGhTdGF0ZSh0aGlzLmF1dGgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiB1c2VyID0+IHtcbiAgICAgICAgLy8gTWFudGVuZXIgYGZpcmViYXNlQXV0aFJlYWR5YCBzaW5jcm9uaXphZG8gY29uIGxhIHNlc2nDs24gcmVhbDpcbiAgICAgICAgLy8gdHJ1ZSBhbCBoYWJlciBVc2VyLCBmYWxzZSBlbiBzaWdub3V0LiBQZXJtaXRlIHF1ZSBsb3MgZ2F0ZXNcbiAgICAgICAgLy8gcmUtZXZhbMO6ZW4gdHJhcyB1biBsb2dvdXQvbG9naW4gZGVudHJvIGRlIGxhIG1pc21hIHNlc2nDs24gZGUgcMOhZ2luYS5cbiAgICAgICAgdGhpcy5fZmlyZWJhc2VBdXRoUmVhZHkuc2V0KCEhdXNlcik7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBbRkJBdXRoXSBhdXRoU3RhdGUgZW1pdCB1c2VyPSR7dXNlcj8udWlkID8/ICdudWxsJ30gZmlyZWJhc2VBdXRoUmVhZHk9JHshIXVzZXJ9YFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNlc3Npb25TdGF0ZS5uZXh0KHtcbiAgICAgICAgICB1c2VyOiB1c2VyID8gdGhpcy5tYXBVc2VyKHVzZXIpIDogbnVsbCxcbiAgICAgICAgICBpc0F1dGhlbnRpY2F0ZWQ6ICEhdXNlcixcbiAgICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLl9maXJlYmFzZUF1dGhSZWFkeS5zZXQoZmFsc2UpO1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBbRkJBdXRoXSBhdXRoU3RhdGUgRVJST1I6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpfWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RhdGUubmV4dCh7XG4gICAgICAgICAgdXNlcjogbnVsbCxcbiAgICAgICAgICBpc0F1dGhlbnRpY2F0ZWQ6IGZhbHNlLFxuICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN1ZWx2ZSBlbiBjdWFudG8gbGEgc2VzacOzbiBkZSBGaXJlYmFzZSBBdXRoIGVzdMOhIGxpc3RhIHBhcmEgbGVlclxuICAgKiBGaXJlc3RvcmUuIFNpIHlhIGVzdMOhIGxpc3RhLCByZXN1ZWx2ZSBpbm1lZGlhdGFtZW50ZS5cbiAgICpcbiAgICogw5p0aWwgcGFyYSBnYXRlYXIgbGEgcHJpbWVyYSBzdXNjcmlwY2nDs24gYSB1biBsaXN0ZW5lciBkZSBGaXJlc3RvcmUgeSBhc8OtXG4gICAqIGNlcnJhciBsYSB2ZW50YW5hIGRlIGBwZXJtaXNzaW9uLWRlbmllZGAgZW4gY29sZCBzdGFydC5cbiAgICpcbiAgICogVGllbmUgdW4gdGltZW91dCAoZGVmYXVsdCAxNXMpOiBzaSBlbCBgL3JlZnJlc2hgIGRlIGJvb3RzdHJhcCBmYWxsYSB5XG4gICAqIEZpcmViYXNlIEF1dGggbnVuY2EgbGxlZ2EgYSBlc3RhYmxlY2Vyc2UgKGVqLiByZWZyZXNoIHRva2VuIHlhIHJvdGFkb1xuICAgKiBwb3Igb3RyYSBwZXN0YcOxYSDigJQgdmVyIHJlZnJlc2guZ28sIHJvdGFjacOzbiBzaW5nbGUtdXNlKSwgYGF1dGhTdGF0ZSgpYFxuICAgKiBubyB2dWVsdmUgYSBlbWl0aXIgdW4gdXNlciB0cnV0aHkgeSBlc3RhIHByb21lc2EgTlVOQ0EgcmVzb2x2w61hIOKAlFxuICAgKiBjdWFscXVpZXIgZ3VhcmQvc2VydmljaW8gZ2F0ZWFkbyBhY8OhIChlai5cbiAgICogY2hlc3NpbWFsc0NoYWxsZW5nZUVsaWdpYmlsaXR5R3VhcmQpIHF1ZWRhYmEgY29sZ2FkbyBwYXJhIHNpZW1wcmUgY29uXG4gICAqIHBhbnRhbGxhIGVuIGJsYW5jbywgc2luIGVycm9yIHZpc2libGUuIEFob3JhIHJlc3VlbHZlIGBmYWxzZWAgdHJhcyBlbFxuICAgKiB0aW1lb3V0IHBhcmEgcXVlIGVsIGNhbGxlciBwdWVkYSBkZWNpZGlyIChyZWRpcmlnaXIsIG1vc3RyYXIgZXJyb3IpIGVuXG4gICAqIHZleiBkZSBlc3BlcmFyIGluZGVmaW5pZGFtZW50ZS4gRW5jb250cmFkbyAyMDI2LTA4LTExIGludmVzdGlnYW5kbyB1blxuICAgKiBidWcgZGUgQ2hlc3NpbWFscyBxdWUgcmVzdWx0w7Mgc2VyIGRvcyBidWdzIGRpc3RpbnRvczogZXN0ZSBnYXAgeSB1bmFcbiAgICogcsOhZmFnYSBkZSBjcmVhY2nDs24gZGUgcnVucyAoYXJyZWdsYWRhIGFwYXJ0ZSwgc2luIHJlbGFjacOzbiBjb24gZXN0bykuXG4gICAqL1xuICB3aGVuRmlyZWJhc2VBdXRoUmVhZHkodGltZW91dE1zID0gMTVfMDAwKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuX2ZpcmViYXNlQXV0aFJlYWR5KCkpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdbRkJBdXRoXSB3aGVuRmlyZWJhc2VBdXRoUmVhZHkgcmVzb2x2ZWQgaW1tZWRpYXRlbHkgKGFscmVhZHkgcmVhZHkpJyk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZygnW0ZCQXV0aF0gd2hlbkZpcmViYXNlQXV0aFJlYWR5IHdhaXRpbmcgZm9yIEZpcmViYXNlIEF1dGggc2Vzc2lvbi4uLicpO1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuZmlyZWJhc2VBdXRoUmVhZHkkLnBpcGUoXG4gICAgICAgIHRpbWVvdXQodGltZW91dE1zKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihmYWxzZSkpXG4gICAgICApXG4gICAgKS50aGVuKHYgPT4ge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIHZcbiAgICAgICAgICA/ICdbRkJBdXRoXSB3aGVuRmlyZWJhc2VBdXRoUmVhZHkgcmVzb2x2ZWQgYWZ0ZXIgd2FpdCdcbiAgICAgICAgICA6IGBbRkJBdXRoXSB3aGVuRmlyZWJhc2VBdXRoUmVhZHkgVElNRUQgT1VUIGFmdGVyICR7dGltZW91dE1zfW1zIOKAlCBGaXJlYmFzZSBBdXRoIG5ldmVyIGVzdGFibGlzaGVkYFxuICAgICAgKTtcbiAgICAgIHJldHVybiB2O1xuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEFVVEVOVElDQUNJw5NOXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBBdXRlbnRpY2EgYWwgdXN1YXJpbyBjb24gdW4gQ3VzdG9tIFRva2VuIGdlbmVyYWRvIHBvciBlbCBiYWNrZW5kLlxuICAgKlxuICAgKiBAcGFyYW0gdG9rZW4gLSBGaXJlYmFzZSBDdXN0b20gVG9rZW4gZ2VuZXJhZG8gcG9yIHR1IGJhY2tlbmRcbiAgICogQHJldHVybnMgVXNlckNyZWRlbnRpYWwgY29uIGxhIGluZm9ybWFjacOzbiBkZWwgdXN1YXJpb1xuICAgKiBAdGhyb3dzIEVycm9yIHNpIGVsIHRva2VuIGVzIGludsOhbGlkbyBvIGV4cGlyw7NcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiAvLyBEZXNwdcOpcyBkZSBsb2dpbiBleGl0b3NvIGNvbiB0dSBiYWNrZW5kXG4gICAqIGNvbnN0IHsgZmlyZWJhc2VUb2tlbiB9ID0gYXdhaXQgYmFja2VuZEF1dGgubG9naW4oZW1haWwsIHBhc3N3b3JkKTtcbiAgICogYXdhaXQgZmlyZWJhc2VTZXJ2aWNlLnNpZ25JbldpdGhDdXN0b21Ub2tlbihmaXJlYmFzZVRva2VuKTtcbiAgICogYGBgXG4gICAqL1xuICAvKipcbiAgICogRW50cmEgYSBGaXJlYmFzZSBjb24gdW4gY3VzdG9tIHRva2VuIGRlbCBiYWNrZW5kLlxuICAgKlxuICAgKiBEZXZ1ZWx2ZSBgbnVsbGAgY3VhbmRvICoqbm8gaGl6byBmYWx0YSBlbnRyYXIqKjogZWwgdG9rZW4gcHJvZHVjZSBsYSBtaXNtYVxuICAgKiBzZXNpw7NuIHF1ZSB5YSBlc3TDoSBhY3RpdmEgKG1pc21vIHVpZCB5IG1pc21vcyBjbGFpbXMpLiBObyBlcyB1biBlcnJvciwgZXNcbiAgICogbGEgcmVzcHVlc3RhIGNvcnJlY3RhIGEgXCJlc3RvIG5vIGNhbWJpYSBuYWRhXCIuXG4gICAqXG4gICAqIERvcyBwcm90ZWNjaW9uZXMsIHBvciBkb3MgcHJvYmxlbWFzIGRpc3RpbnRvczpcbiAgICpcbiAgICogLSAqKk5vIHJlcGV0aXIqKjogYWwgYXJyYW5jYXIgY29uIHVuIHRva2VuIGd1YXJkYWRvIHZlbmNpZG8sIGVsIGJvb3RzdHJhcFxuICAgKiAgIGRpc3BhcmEgdW4gcmVmcmVzaCBlbiBzZWd1bmRvIHBsYW5vIHF1ZSBlbnRyYSBhIEZpcmViYXNlIHBvciBzdSBjdWVudGE7XG4gICAqICAgc2kgYWRlbcOhcyBlbCB1c3VhcmlvIGVzdMOhIGNvbXBsZXRhbmRvIHVuIGxvZ2luICh0w61waWNhbWVudGUgZWwgY2FsbGJhY2tcbiAgICogICBkZSBPQXV0aCksIHNlIGVudHJhYmEgRE9TIHZlY2VzIHBhcmEgdGVybWluYXIgZW4gZWwgbWlzbW8gbHVnYXIuIEFob3JhIGxhXG4gICAqICAgc2VndW5kYSBzZSBkZXNjYXJ0YSBjb21wYXJhbmRvIGxhIGZpcm1hIGRlIGxhIHNlc2nDs24sIG5vIGVsIHRva2VuIGNydWRvXG4gICAqICAg4oCUIGRvcyB0b2tlbnMgZW1pdGlkb3MgY29uIHNlZ3VuZG9zIGRlIGRpZmVyZW5jaWEgc29uIGNhZGVuYXMgZGlzdGludGFzXG4gICAqICAgcGVybyBwcm9kdWNlbiBsYSBtaXNtYSBzZXNpw7NuLlxuICAgKiAtICoqTm8gcGlzYXJzZSoqOiBzaSBkb3MgZW50cmFkYXMgY29uIHNlc2lvbmVzIERJU1RJTlRBUyBsbGVnYW4gYSBsYSB2ZXosXG4gICAqICAgc2Ugc2VyaWFsaXphbiAodmVyIEVudHJhZGFTZXJpYWxpemFkYSkgcGFyYSBxdWUgZ2FuZSBsYSDDumx0aW1hIHkgbm8gbGFcbiAgICogICBxdWUgcmVzcG9uZGEgcHJpbWVybyBsYSByZWQuXG4gICAqL1xuICBhc3luYyBzaWduSW5XaXRoQ3VzdG9tVG9rZW4odG9rZW46IHN0cmluZyk6IFByb21pc2U8VXNlckNyZWRlbnRpYWwgfCBudWxsPiB7XG4gICAgY29uc3QgZmlybWEgPSBmaXJtYURlU2VzaW9uRGVDdXN0b21Ub2tlbih0b2tlbik7XG5cbiAgICBpZiAoXG4gICAgICBmaXJtYSAmJlxuICAgICAgZmlybWEgPT09IHRoaXMuZmlybWFTZXNpb25BY3RpdmEgJiZcbiAgICAgIHRoaXMuYXV0aC5jdXJyZW50VXNlciAhPT0gbnVsbFxuICAgICkge1xuICAgICAgY29uc29sZS5sb2coJ1tGQkF1dGhdIHNpZ25JbldpdGhDdXN0b21Ub2tlbjogbGEgc2VzacOzbiB5YSBlcyBlc3RhLCBubyBzZSByZXBpdGUnKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIExhIGxsYXZlIGRlbCBzZXJpYWxpemFkb3IgZXMgbGEgRklSTUEsIG5vIGVsIHRva2VuIGNydWRvOiBkb3MgSldUXG4gICAgLy8gZW1pdGlkb3MgY29uIHNlZ3VuZG9zIGRlIGRpZmVyZW5jaWEgc29uIGNhZGVuYXMgZGlzdGludGFzIHBlcm8gcHJvZHVjZW5cbiAgICAvLyBsYSBtaXNtYSBzZXNpw7NuLCB5IGRlZHVwZWFyIHBvciB0b2tlbiBsb3MgZGVqYWJhIHBhc2FyIGEgYW1ib3MuXG4gICAgcmV0dXJuIHRoaXMuZW50cmFkYUZpcmViYXNlLmVqZWN1dGFyKGZpcm1hID8/IHRva2VuLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0ID0gdG9rZW47XG4gICAgICBjb25zdCBjcmVkZW50aWFsID0gYXdhaXQgdGhpcy5lamVjdXRhclNpZ25JbldpdGhDdXN0b21Ub2tlbih0KTtcbiAgICAgIC8vIFNlIGd1YXJkYSBERVNQVcOJUyBkZSBlbnRyYXI6IHNpIGZhbGxhLCBsYSBmaXJtYSBhbnRlcmlvciBubyBzZSBwaXNhIHlcbiAgICAgIC8vIGVsIHByw7N4aW1vIGludGVudG8gdnVlbHZlIGEgZW50cmFyLlxuICAgICAgdGhpcy5maXJtYVNlc2lvbkFjdGl2YSA9IGZpcm1hRGVTZXNpb25EZUN1c3RvbVRva2VuKHQpO1xuICAgICAgcmV0dXJuIGNyZWRlbnRpYWw7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGVudHJhZGFGaXJlYmFzZSA9IG5ldyBFbnRyYWRhU2VyaWFsaXphZGE8VXNlckNyZWRlbnRpYWw+KCk7XG5cbiAgLyoqXG4gICAqIEZpcm1hIGRlIGxhIHNlc2nDs24gZGUgRmlyZWJhc2UgYWN0aXZhLiBFbiBtZW1vcmlhIGEgcHJvcMOzc2l0bzogdHJhcyB1blxuICAgKiByZWxvYWQgbm8gc2FiZW1vcyBjb24gcXXDqSBjbGFpbXMgcXVlZMOzIGxhIHNlc2nDs24gcGVyc2lzdGlkYSwgeSBhaMOtXG4gICAqIGNvcnJlc3BvbmRlIHZvbHZlciBhIGVudHJhci5cbiAgICovXG4gIHByaXZhdGUgZmlybWFTZXNpb25BY3RpdmE6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgYXN5bmMgZWplY3V0YXJTaWduSW5XaXRoQ3VzdG9tVG9rZW4odG9rZW46IHN0cmluZyk6IFByb21pc2U8VXNlckNyZWRlbnRpYWw+IHtcbiAgICBjb25zb2xlLmxvZygnW0ZCQXV0aF0gc2lnbkluV2l0aEN1c3RvbVRva2VuIGNhbGxlZCcpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjcmVkZW50aWFsID0gYXdhaXQgc2lnbkluV2l0aEN1c3RvbVRva2VuKHRoaXMuYXV0aCwgdG9rZW4pO1xuXG4gICAgICAvLyBGb3J6YXIgcmVmcmVzaCBkZWwgdG9rZW4gcGFyYSBhc2VndXJhciBxdWUgbG9zIGNsYWltcyBlc3TDqW4gYWN0dWFsaXphZG9zXG4gICAgICAvLyBFc3RvIGVzIG5lY2VzYXJpbyBwb3JxdWUgZ2V0SWRUb2tlblJlc3VsdCgpIGNhY2hlYSBlbCByZXN1bHRhZG9cbiAgICAgIGlmIChjcmVkZW50aWFsLnVzZXIpIHtcbiAgICAgICAgYXdhaXQgY3JlZGVudGlhbC51c2VyLmdldElkVG9rZW4odHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnNvbGUubG9nKGBbRkJBdXRoXSBzaWduSW5XaXRoQ3VzdG9tVG9rZW4gT0sgdWlkPSR7Y3JlZGVudGlhbC51c2VyPy51aWQgPz8gJ251bGwnfWApO1xuICAgICAgcmV0dXJuIGNyZWRlbnRpYWw7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZShlcnJvcik7XG4gICAgICBjb25zb2xlLmVycm9yKGBbRkJBdXRoXSBzaWduSW5XaXRoQ3VzdG9tVG9rZW4gRkFJTEVEOiAke21lc3NhZ2V9YCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENpZXJyYSBsYSBzZXNpw7NuIGRlIEZpcmViYXNlLlxuICAgKiBMbGFtYXIganVudG8gY29uIGVsIGxvZ291dCBkZSB0dSBzaXN0ZW1hIGRlIGF1dGVudGljYWNpw7NuIHByaW5jaXBhbC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBhc3luYyBsb2dvdXQoKSB7XG4gICAqICAgYXdhaXQgdGhpcy5iYWNrZW5kQXV0aC5sb2dvdXQoKTsgICAgLy8gVHUgYXV0aFxuICAgKiAgIGF3YWl0IHRoaXMuZmlyZWJhc2Uuc2lnbk91dCgpOyAgICAgICAvLyBGaXJlYmFzZVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgc2lnbk91dCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgc2lnbk91dCh0aGlzLmF1dGgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBHRVRURVJTIFPDjU5DUk9OT1NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE9idGllbmUgZWwgdXN1YXJpbyBhY3R1YWwgZGUgRmlyZWJhc2UgKHPDrW5jcm9ubykuXG4gICAqIFJldG9ybmEgbnVsbCBzaSBubyBoYXkgdXN1YXJpbyBhdXRlbnRpY2Fkby5cbiAgICovXG4gIGdldCBjdXJyZW50VXNlcigpOiBGaXJlYmFzZVVzZXIgfCBudWxsIHtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5hdXRoLmN1cnJlbnRVc2VyO1xuICAgIHJldHVybiB1c2VyID8gdGhpcy5tYXBVc2VyKHVzZXIpIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGVsIFVJRCBkZWwgdXN1YXJpbyBhY3R1YWwuXG4gICAqIFJldG9ybmEgbnVsbCBzaSBubyBoYXkgdXN1YXJpbyBhdXRlbnRpY2Fkby5cbiAgICovXG4gIGdldCB1aWQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aC5jdXJyZW50VXNlcj8udWlkID8/IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhIHNpIGhheSB1biB1c3VhcmlvIGF1dGVudGljYWRvIGFjdHVhbG1lbnRlLlxuICAgKi9cbiAgZ2V0IGlzQXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmF1dGguY3VycmVudFVzZXI7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVE9LRU5TXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGVsIElEIFRva2VuIGRlIEZpcmViYXNlIHBhcmEgZWwgdXN1YXJpbyBhY3R1YWwuXG4gICAqIMOadGlsIHBhcmEgdmFsaWRhciBlbCB1c3VhcmlvIGVuIHR1IGJhY2tlbmQuXG4gICAqXG4gICAqIEBwYXJhbSBmb3JjZVJlZnJlc2ggLSBTaSB0cnVlLCBmdWVyemEgbGEgcmVub3ZhY2nDs24gZGVsIHRva2VuXG4gICAqIEByZXR1cm5zIElEIFRva2VuIG8gbnVsbCBzaSBubyBoYXkgdXN1YXJpb1xuICAgKi9cbiAgYXN5bmMgZ2V0SWRUb2tlbihmb3JjZVJlZnJlc2ggPSBmYWxzZSk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmF1dGguY3VycmVudFVzZXI7XG4gICAgaWYgKCF1c2VyKSByZXR1cm4gbnVsbDtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgdXNlci5nZXRJZFRva2VuKGZvcmNlUmVmcmVzaCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsb3MgY2xhaW1zIHBlcnNvbmFsaXphZG9zIGRlbCB0b2tlbiBkZWwgdXN1YXJpby5cbiAgICogTG9zIGNsYWltcyBzb24gZXN0YWJsZWNpZG9zIHBvciB0dSBiYWNrZW5kIGFsIGNyZWFyIGVsIEN1c3RvbSBUb2tlbi5cbiAgICpcbiAgICogQHBhcmFtIGZvcmNlUmVmcmVzaCAtIFNpIHRydWUsIGZ1ZXJ6YSBsYSByZW5vdmFjacOzbiBkZWwgdG9rZW4gcGFyYSBvYnRlbmVyIGNsYWltcyBhY3R1YWxpemFkb3NcbiAgICogQHJldHVybnMgT2JqZXRvIGNvbiBsb3MgY2xhaW1zIG8gdmFjw61vIHNpIG5vIGhheSB1c3VhcmlvXG4gICAqL1xuICBhc3luYyBnZXRDbGFpbXMoZm9yY2VSZWZyZXNoID0gZmFsc2UpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgY29uc3QgdXNlciA9IHRoaXMuYXV0aC5jdXJyZW50VXNlcjtcbiAgICBpZiAoIXVzZXIpIHJldHVybiB7fTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB1c2VyLmdldElkVG9rZW5SZXN1bHQoZm9yY2VSZWZyZXNoKTtcbiAgICAgIHJldHVybiByZXN1bHQuY2xhaW1zO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSBlbCB1c3VhcmlvIHRpZW5lIHVuIHJvbCBlc3BlY8OtZmljby5cbiAgICogRWwgcm9sIGRlYmUgZXN0YXIgZGVmaW5pZG8gZW4gbG9zIGNsYWltcyBkZWwgQ3VzdG9tIFRva2VuLlxuICAgKlxuICAgKiBAcGFyYW0gcm9sZSAtIE5vbWJyZSBkZWwgcm9sIGEgdmVyaWZpY2FyXG4gICAqIEByZXR1cm5zIHRydWUgc2kgZWwgdXN1YXJpbyB0aWVuZSBlbCByb2xcbiAgICovXG4gIGFzeW5jIGhhc1JvbGUocm9sZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgY2xhaW1zID0gYXdhaXQgdGhpcy5nZXRDbGFpbXMoKTtcbiAgICByZXR1cm4gKFxuICAgICAgY2xhaW1zWydyb2xlJ10gPT09IHJvbGUgfHwgKEFycmF5LmlzQXJyYXkoY2xhaW1zWydyb2xlcyddKSAmJiBjbGFpbXNbJ3JvbGVzJ10uaW5jbHVkZXMocm9sZSkpXG4gICAgKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBSQkFDIC0gUEVSTUlTT1MgWSBPUkdBTklaQUNJT05FU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogT2J0aWVuZSBsYXMgbWVtYmVyc2hpcHMgKG9yZ2FuaXphY2lvbmVzKSBkZWwgdXN1YXJpby5cbiAgICogQ2FkYSBtZW1iZXJzaGlwIGNvbnRpZW5lIGVsIHJvbCB5IHBlcm1pc29zIGVuIGVzYSBvcmdhbml6YWNpw7NuLlxuICAgKlxuICAgKiBAcGFyYW0gZm9yY2VSZWZyZXNoIC0gU2kgdHJ1ZSwgZnVlcnphIGxhIHJlbm92YWNpw7NuIGRlbCB0b2tlblxuICAgKiBAcmV0dXJucyBNYXBhIGRlIG9yZ0lkIOKGkiBNZW1iZXJzaGlwSW5mb1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IG1lbWJlcnNoaXBzID0gYXdhaXQgZmlyZWJhc2VTZXJ2aWNlLmdldE1lbWJlcnNoaXBzKCk7XG4gICAqIC8vIHsgJ29yZ19hYmMnOiB7IHJvbGVJZDogJ2FkbWluJywgcm9sZU5hbWU6ICdhZG1pbicsIHBlcm1pc3Npb25zOiBbJ3VzZXJzOionLCAuLi5dIH0gfVxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGdldE1lbWJlcnNoaXBzKGZvcmNlUmVmcmVzaCA9IGZhbHNlKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBNZW1iZXJzaGlwSW5mbz4+IHtcbiAgICBjb25zdCBjbGFpbXMgPSBhd2FpdCB0aGlzLmdldENsYWltcyhmb3JjZVJlZnJlc2gpO1xuICAgIHJldHVybiAoY2xhaW1zWydtZW1iZXJzaGlwcyddIGFzIFJlY29yZDxzdHJpbmcsIE1lbWJlcnNoaXBJbmZvPikgfHwge307XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsYSBvcmdhbml6YWNpw7NuIGFjdGl2YSBkZWwgdXN1YXJpby5cbiAgICogTGEgb3JnYW5pemFjacOzbiBhY3RpdmEgc2UgZXN0YWJsZWNlIGFsIGhhY2VyIGxvZ2luIG8gYWwgY2FtYmlhciBkZSBvcmcuXG4gICAqXG4gICAqIEBwYXJhbSBmb3JjZVJlZnJlc2ggLSBTaSB0cnVlLCBmdWVyemEgbGEgcmVub3ZhY2nDs24gZGVsIHRva2VuXG4gICAqIEByZXR1cm5zIElEIGRlIGxhIG9yZ2FuaXphY2nDs24gYWN0aXZhIG8gbnVsbCBzaSBubyBoYXkgbmluZ3VuYVxuICAgKi9cbiAgYXN5bmMgZ2V0QWN0aXZlT3JnKGZvcmNlUmVmcmVzaCA9IGZhbHNlKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgY29uc3QgY2xhaW1zID0gYXdhaXQgdGhpcy5nZXRDbGFpbXMoZm9yY2VSZWZyZXNoKTtcbiAgICByZXR1cm4gKGNsYWltc1snYWN0aXZlT3JnJ10gYXMgc3RyaW5nKSB8fCBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgaW5mb3JtYWNpw7NuIGRlIHRvZGFzIGxhcyBvcmdhbml6YWNpb25lcyBkZWwgdXN1YXJpby5cbiAgICpcbiAgICogQHBhcmFtIGZvcmNlUmVmcmVzaCAtIFNpIHRydWUsIGZ1ZXJ6YSBsYSByZW5vdmFjacOzbiBkZWwgdG9rZW5cbiAgICogQHJldHVybnMgQXJyYXkgY29uIGluZm9ybWFjacOzbiBkZSBjYWRhIG9yZ2FuaXphY2nDs25cbiAgICovXG4gIGFzeW5jIGdldE9yZ2FuaXphdGlvbnMoZm9yY2VSZWZyZXNoID0gZmFsc2UpOiBQcm9taXNlPE9yZ2FuaXphdGlvbkluZm9bXT4ge1xuICAgIGNvbnN0IG1lbWJlcnNoaXBzID0gYXdhaXQgdGhpcy5nZXRNZW1iZXJzaGlwcyhmb3JjZVJlZnJlc2gpO1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhtZW1iZXJzaGlwcykubWFwKChbaWQsIGluZm9dKSA9PiAoe1xuICAgICAgaWQsXG4gICAgICByb2xlSWQ6IGluZm8ucm9sZUlkLFxuICAgICAgcm9sZU5hbWU6IGluZm8ucm9sZU5hbWUsXG4gICAgICBwZXJtaXNzaW9uczogaW5mby5wZXJtaXNzaW9ucyxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsb3MgSURzIGRlIHRvZGFzIGxhcyBvcmdhbml6YWNpb25lcyBkZWwgdXN1YXJpby5cbiAgICpcbiAgICogQHJldHVybnMgQXJyYXkgZGUgSURzIGRlIG9yZ2FuaXphY2lvbmVzXG4gICAqL1xuICBhc3luYyBnZXRPcmdhbml6YXRpb25JZHMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IG1lbWJlcnNoaXBzID0gYXdhaXQgdGhpcy5nZXRNZW1iZXJzaGlwcygpO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhtZW1iZXJzaGlwcyk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgZWwgdXN1YXJpbyBwZXJ0ZW5lY2UgYSB1bmEgb3JnYW5pemFjacOzbi5cbiAgICpcbiAgICogQHBhcmFtIG9yZ0lkIC0gSUQgZGUgbGEgb3JnYW5pemFjacOzblxuICAgKiBAcmV0dXJucyB0cnVlIHNpIGVsIHVzdWFyaW8gZXMgbWllbWJyb1xuICAgKi9cbiAgYXN5bmMgaXNNZW1iZXJPZihvcmdJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgbWVtYmVyc2hpcHMgPSBhd2FpdCB0aGlzLmdldE1lbWJlcnNoaXBzKCk7XG4gICAgcmV0dXJuIG9yZ0lkIGluIG1lbWJlcnNoaXBzO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgZWwgcm9sIGRlbCB1c3VhcmlvIGVuIHVuYSBvcmdhbml6YWNpw7NuLlxuICAgKlxuICAgKiBAcGFyYW0gb3JnSWQgLSBJRCBkZSBsYSBvcmdhbml6YWNpw7NuXG4gICAqIEByZXR1cm5zIElEIGRlbCByb2wgbyBudWxsIHNpIG5vIGVzIG1pZW1icm9cbiAgICovXG4gIGFzeW5jIGdldFJvbGVJbk9yZyhvcmdJZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgY29uc3QgbWVtYmVyc2hpcHMgPSBhd2FpdCB0aGlzLmdldE1lbWJlcnNoaXBzKCk7XG4gICAgcmV0dXJuIG1lbWJlcnNoaXBzW29yZ0lkXT8ucm9sZUlkIHx8IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsb3MgcGVybWlzb3MgZGVsIHVzdWFyaW8gZW4gdW5hIG9yZ2FuaXphY2nDs24uXG4gICAqXG4gICAqIEBwYXJhbSBvcmdJZCAtIElEIGRlIGxhIG9yZ2FuaXphY2nDs25cbiAgICogQHJldHVybnMgQXJyYXkgZGUgcGVybWlzb3MgZW4gZm9ybWF0byAncmVzb3VyY2U6YWN0aW9uJ1xuICAgKi9cbiAgYXN5bmMgZ2V0UGVybWlzc2lvbnNJbk9yZyhvcmdJZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGNvbnN0IG1lbWJlcnNoaXBzID0gYXdhaXQgdGhpcy5nZXRNZW1iZXJzaGlwcygpO1xuICAgIHJldHVybiBtZW1iZXJzaGlwc1tvcmdJZF0/LnBlcm1pc3Npb25zIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIGVsIHVzdWFyaW8gdGllbmUgdW4gcGVybWlzbyBlc3BlY8OtZmljbyBlbiB1bmEgb3JnYW5pemFjacOzbi5cbiAgICogU29wb3J0YSB3aWxkY2FyZHM6ICdyZXNvdXJjZToqJyB5ICcqOionIChzdXBlciBhZG1pbikuXG4gICAqXG4gICAqIEBwYXJhbSBvcmdJZCAtIElEIGRlIGxhIG9yZ2FuaXphY2nDs25cbiAgICogQHBhcmFtIHJlc291cmNlIC0gUmVjdXJzbyBhIHZlcmlmaWNhciAoZWo6ICd1c2VycycsICdkb2N1bWVudHMnKVxuICAgKiBAcGFyYW0gYWN0aW9uIC0gQWNjacOzbiBhIHZlcmlmaWNhciAoZWo6ICdyZWFkJywgJ3dyaXRlJywgJ2NyZWF0ZScsICdkZWxldGUnKVxuICAgKiBAcmV0dXJucyB0cnVlIHNpIHRpZW5lIGVsIHBlcm1pc29cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiAvLyBWZXJpZmljYXIgcGVybWlzbyBlc3BlY8OtZmljb1xuICAgKiBjb25zdCBjYW5SZWFkVXNlcnMgPSBhd2FpdCBmaXJlYmFzZVNlcnZpY2UuaGFzUGVybWlzc2lvbignb3JnX2FiYycsICd1c2VycycsICdyZWFkJyk7XG4gICAqXG4gICAqIC8vIFZlcmlmaWNhciBlbiBsYSBvcmdhbml6YWNpw7NuIGFjdGl2YVxuICAgKiBjb25zdCBvcmdJZCA9IGF3YWl0IGZpcmViYXNlU2VydmljZS5nZXRBY3RpdmVPcmcoKTtcbiAgICogY29uc3QgY2FuRWRpdCA9IGF3YWl0IGZpcmViYXNlU2VydmljZS5oYXNQZXJtaXNzaW9uKG9yZ0lkISwgJ2RvY3VtZW50cycsICd3cml0ZScpO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGhhc1Blcm1pc3Npb24ob3JnSWQ6IHN0cmluZywgcmVzb3VyY2U6IHN0cmluZywgYWN0aW9uOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IGF3YWl0IHRoaXMuZ2V0UGVybWlzc2lvbnNJbk9yZyhvcmdJZCk7XG4gICAgY29uc3QgcGVybWlzc2lvbiA9IGAke3Jlc291cmNlfToke2FjdGlvbn1gO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHBlcm1pc3Npb25zLmluY2x1ZGVzKHBlcm1pc3Npb24pIHx8XG4gICAgICBwZXJtaXNzaW9ucy5pbmNsdWRlcyhgJHtyZXNvdXJjZX06KmApIHx8XG4gICAgICBwZXJtaXNzaW9ucy5pbmNsdWRlcygnKjoqJylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIGVsIHVzdWFyaW8gcHVlZGUgbGVlciB1biByZWN1cnNvIGVuIHVuYSBvcmdhbml6YWNpw7NuLlxuICAgKiBBdGFqbyBwYXJhIGhhc1Blcm1pc3Npb24ob3JnSWQsIHJlc291cmNlLCAncmVhZCcpLlxuICAgKi9cbiAgYXN5bmMgY2FuUmVhZChvcmdJZDogc3RyaW5nLCByZXNvdXJjZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzUGVybWlzc2lvbihvcmdJZCwgcmVzb3VyY2UsICdyZWFkJyk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgZWwgdXN1YXJpbyBwdWVkZSBlc2NyaWJpciB1biByZWN1cnNvIGVuIHVuYSBvcmdhbml6YWNpw7NuLlxuICAgKiBBdGFqbyBwYXJhIGhhc1Blcm1pc3Npb24ob3JnSWQsIHJlc291cmNlLCAnd3JpdGUnKS5cbiAgICovXG4gIGFzeW5jIGNhbldyaXRlKG9yZ0lkOiBzdHJpbmcsIHJlc291cmNlOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5oYXNQZXJtaXNzaW9uKG9yZ0lkLCByZXNvdXJjZSwgJ3dyaXRlJyk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgZWwgdXN1YXJpbyBwdWVkZSBjcmVhciB1biByZWN1cnNvIGVuIHVuYSBvcmdhbml6YWNpw7NuLlxuICAgKiBBdGFqbyBwYXJhIGhhc1Blcm1pc3Npb24ob3JnSWQsIHJlc291cmNlLCAnY3JlYXRlJykuXG4gICAqL1xuICBhc3luYyBjYW5DcmVhdGUob3JnSWQ6IHN0cmluZywgcmVzb3VyY2U6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmhhc1Blcm1pc3Npb24ob3JnSWQsIHJlc291cmNlLCAnY3JlYXRlJyk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgZWwgdXN1YXJpbyBwdWVkZSBlbGltaW5hciB1biByZWN1cnNvIGVuIHVuYSBvcmdhbml6YWNpw7NuLlxuICAgKiBBdGFqbyBwYXJhIGhhc1Blcm1pc3Npb24ob3JnSWQsIHJlc291cmNlLCAnZGVsZXRlJykuXG4gICAqL1xuICBhc3luYyBjYW5EZWxldGUob3JnSWQ6IHN0cmluZywgcmVzb3VyY2U6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmhhc1Blcm1pc3Npb24ob3JnSWQsIHJlc291cmNlLCAnZGVsZXRlJyk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgZWwgdXN1YXJpbyBwdWVkZSBhZG1pbmlzdHJhciB1biByZWN1cnNvIGVuIHVuYSBvcmdhbml6YWNpw7NuLlxuICAgKiBFcXVpdmFsZSBhIHRlbmVyICdyZXNvdXJjZToqJyBvICcqOionLlxuICAgKi9cbiAgYXN5bmMgY2FuTWFuYWdlKG9yZ0lkOiBzdHJpbmcsIHJlc291cmNlOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBwZXJtaXNzaW9ucyA9IGF3YWl0IHRoaXMuZ2V0UGVybWlzc2lvbnNJbk9yZyhvcmdJZCk7XG4gICAgcmV0dXJuIHBlcm1pc3Npb25zLmluY2x1ZGVzKGAke3Jlc291cmNlfToqYCkgfHwgcGVybWlzc2lvbnMuaW5jbHVkZXMoJyo6KicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIGVsIHVzdWFyaW8gZXMgc3VwZXIgYWRtaW4gZW4gdW5hIG9yZ2FuaXphY2nDs24uXG4gICAqIFN1cGVyIGFkbWluIHRpZW5lIGVsIHBlcm1pc28gJyo6KicuXG4gICAqL1xuICBhc3luYyBpc1N1cGVyQWRtaW4ob3JnSWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gYXdhaXQgdGhpcy5nZXRQZXJtaXNzaW9uc0luT3JnKG9yZ0lkKTtcbiAgICByZXR1cm4gcGVybWlzc2lvbnMuaW5jbHVkZXMoJyo6KicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIGVsIHVzdWFyaW8gZXMgYWRtaW4gZW4gdW5hIG9yZ2FuaXphY2nDs24uXG4gICAqL1xuICBhc3luYyBpc0FkbWluSW5Pcmcob3JnSWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHJvbGUgPSBhd2FpdCB0aGlzLmdldFJvbGVJbk9yZyhvcmdJZCk7XG4gICAgcmV0dXJuIHJvbGUgPT09ICdhZG1pbicgfHwgcm9sZSA9PT0gJ3N1cGVyX2FkbWluJztcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBVVElMSURBREVTXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBFc3BlcmEgYSBxdWUgZWwgZXN0YWRvIGRlIGF1dGVudGljYWNpw7NuIGVzdMOpIGRldGVybWluYWRvLlxuICAgKiDDmnRpbCBlbiBndWFyZHMgbyBhbCBpbmljaWFsaXphciBsYSBhcHAuXG4gICAqXG4gICAqIEByZXR1cm5zIFVzdWFyaW8gYWN0dWFsIG8gbnVsbFxuICAgKi9cbiAgd2FpdEZvckF1dGgoKTogUHJvbWlzZTxGaXJlYmFzZVVzZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5zdGF0ZSQuc3Vic2NyaWJlKHN0YXRlID0+IHtcbiAgICAgICAgaWYgKCFzdGF0ZS5pc0xvYWRpbmcpIHtcbiAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICByZXNvbHZlKHN0YXRlLnVzZXIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGxhIGNvbmZpZ3VyYWNpw7NuIGFjdHVhbCBkZSBGaXJlYmFzZS5cbiAgICovXG4gIGdldENvbmZpZygpOiBWYWx0ZWNoRmlyZWJhc2VDb25maWcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2Egc2kgbG9zIGVtdWxhZG9yZXMgZXN0w6FuIGhhYmlsaXRhZG9zLlxuICAgKi9cbiAgaXNVc2luZ0VtdWxhdG9ycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB0aGlzLmNvbmZpZy5lbXVsYXRvcj8uZmlyZXN0b3JlIHx8XG4gICAgICB0aGlzLmNvbmZpZy5lbXVsYXRvcj8uYXV0aCB8fFxuICAgICAgdGhpcy5jb25maWcuZW11bGF0b3I/LnN0b3JhZ2VcbiAgICApO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIE3DiVRPRE9TIFBSSVZBRE9TXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBNYXBlYSB1biBVc2VyIGRlIEZpcmViYXNlIGEgbnVlc3RyYSBpbnRlcmZhY2UgRmlyZWJhc2VVc2VyXG4gICAqL1xuICBwcml2YXRlIG1hcFVzZXIodXNlcjogVXNlcik6IEZpcmViYXNlVXNlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVpZDogdXNlci51aWQsXG4gICAgICBlbWFpbDogdXNlci5lbWFpbCxcbiAgICAgIGRpc3BsYXlOYW1lOiB1c2VyLmRpc3BsYXlOYW1lLFxuICAgICAgcGhvdG9VUkw6IHVzZXIucGhvdG9VUkwsXG4gICAgICBlbWFpbFZlcmlmaWVkOiB1c2VyLmVtYWlsVmVyaWZpZWQsXG4gICAgICBpc0Fub255bW91czogdXNlci5pc0Fub255bW91cyxcbiAgICAgIHByb3ZpZGVySWQ6IHVzZXIucHJvdmlkZXJJZCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZpZXJ0ZSBlcnJvcmVzIGRlIEZpcmViYXNlIGEgbWVuc2FqZXMgZW4gZXNwYcOxb2xcbiAgICovXG4gIHByaXZhdGUgZ2V0RXJyb3JNZXNzYWdlKGVycm9yOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgY29uc3QgY29kZSA9IChlcnJvciBhcyB7IGNvZGU/OiBzdHJpbmcgfSkuY29kZTtcblxuICAgICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICAgIGNhc2UgJ2F1dGgvaW52YWxpZC1jdXN0b20tdG9rZW4nOlxuICAgICAgICAgIHJldHVybiAnVG9rZW4gZGUgYXV0ZW50aWNhY2nDs24gaW52w6FsaWRvJztcbiAgICAgICAgY2FzZSAnYXV0aC9jdXN0b20tdG9rZW4tbWlzbWF0Y2gnOlxuICAgICAgICAgIHJldHVybiAnRWwgdG9rZW4gbm8gY29ycmVzcG9uZGUgYSBlc3RlIHByb3llY3RvJztcbiAgICAgICAgY2FzZSAnYXV0aC9uZXR3b3JrLXJlcXVlc3QtZmFpbGVkJzpcbiAgICAgICAgICByZXR1cm4gJ0Vycm9yIGRlIGNvbmV4acOzbi4gVmVyaWZpY2EgdHUgY29uZXhpw7NuIGEgaW50ZXJuZXQnO1xuICAgICAgICBjYXNlICdhdXRoL3Rvby1tYW55LXJlcXVlc3RzJzpcbiAgICAgICAgICByZXR1cm4gJ0RlbWFzaWFkb3MgaW50ZW50b3MuIEludGVudGEgZGUgbnVldm8gbcOhcyB0YXJkZSc7XG4gICAgICAgIGNhc2UgJ2F1dGgvdXNlci1kaXNhYmxlZCc6XG4gICAgICAgICAgcmV0dXJuICdFc3RhIGN1ZW50YSBoYSBzaWRvIGRlc2hhYmlsaXRhZGEnO1xuICAgICAgICBjYXNlICdhdXRoL3VzZXItbm90LWZvdW5kJzpcbiAgICAgICAgICByZXR1cm4gJ1VzdWFyaW8gbm8gZW5jb250cmFkbyc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGVycm9yLm1lc3NhZ2UgfHwgJ0Vycm9yIGRlIGF1dGVudGljYWNpw7NuIGRlc2Nvbm9jaWRvJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gJ0Vycm9yIGRlIGF1dGVudGljYWNpw7NuIGRlc2Nvbm9jaWRvJztcbiAgfVxufVxuIl19
|
|
@@ -196,6 +196,7 @@ export class FormSchemaBuilderService {
|
|
|
196
196
|
ATTACHMENT: InputType.ATTACHMENT,
|
|
197
197
|
PHONE: InputType.PHONE,
|
|
198
198
|
CURRENCY: InputType.CURRENCY,
|
|
199
|
+
EMOJI_RATING: InputType.EMOJI_RATING,
|
|
199
200
|
};
|
|
200
201
|
return map[typeStr] ?? InputType.TEXT;
|
|
201
202
|
}
|
|
@@ -206,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
206
207
|
type: Injectable,
|
|
207
208
|
args: [{ providedIn: 'root' }]
|
|
208
209
|
}] });
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEtYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9mb3Jtcy9mb3JtLXNjaGVtYS1idWlsZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFFTCxlQUFlLEVBS2YsU0FBUyxHQUNWLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBRUwsK0JBQStCLEdBSWhDLE1BQU0sU0FBUyxDQUFDOztBQUdqQixNQUFNLE9BQU8sd0JBQXdCO0lBRHJDO1FBRVUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQW1PcEM7SUFqT0MsU0FBUyxDQUNQLE1BQXdCLEVBQ3hCLGFBQXFCLEVBQ3JCLFFBQWdCLEVBQ2hCLGlCQUF5QixRQUFRLEVBQ2pDLFFBQXdCLGVBQWUsQ0FBQyxPQUFPO1FBRS9DLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3RCxNQUFNLE1BQU0sR0FBb0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlGLE1BQU0sT0FBTyxHQUFn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LENBQUMsT0FBZTtRQUN0QyxNQUFNLEdBQUcsR0FBOEI7WUFDckMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1lBQ3BCLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtZQUM1QixLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUs7WUFDdEIsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1lBQ3hCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtZQUNwQixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07WUFDeEIsWUFBWSxFQUFFLFNBQVMsQ0FBQyxZQUFZO1lBQ3BDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSztZQUN0QixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07WUFDeEIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1lBQ3RCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtZQUNwQixVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVU7WUFDaEMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1lBQ3RCLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtTQUM3QixDQUFDO1FBQ0YsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQztJQUN4QyxDQUFDOytHQW5PVSx3QkFBd0I7bUhBQXhCLHdCQUF3QixjQURYLE1BQU07OzRGQUNuQix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50U3RhdGUsXG4gIENvbXBvbmVudFN0YXRlcyxcbiAgRm9ybU1ldGFkYXRhLFxuICBGb3JtU2VjdGlvbixcbiAgSW5wdXRNZXRhZGF0YSxcbiAgSW5wdXRPcHRpb24sXG4gIElucHV0VHlwZSxcbn0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy90eXBlcyc7XG5pbXBvcnQgeyBidXR0b24gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2F0b21zL2J1dHRvbi9mYWN0b3J5JztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vaTE4bi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQ2Fub25pY2FsRmllbGRBbGlhc2VzLFxuICBERUZBVUxUX0NBTk9OSUNBTF9GSUVMRF9BTElBU0VTLFxuICBGaWVsZE9wdGlvbixcbiAgRmllbGRTY2hlbWFEZWYsXG4gIEZvcm1TY2hlbWFDb25maWcsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEZvcm1TY2hlbWFCdWlsZGVyU2VydmljZSB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgYnVpbGRGb3JtKFxuICAgIHNjaGVtYTogRmllbGRTY2hlbWFEZWZbXSxcbiAgICBpMThuTmFtZXNwYWNlOiBzdHJpbmcsXG4gICAgZm9ybU5hbWU6IHN0cmluZyxcbiAgICBzdWJtaXRMYWJlbEtleTogc3RyaW5nID0gJ3N1Ym1pdCcsXG4gICAgc3RhdGU6IENvbXBvbmVudFN0YXRlID0gQ29tcG9uZW50U3RhdGVzLkVOQUJMRURcbiAgKTogRm9ybU1ldGFkYXRhIHtcbiAgICBjb25zdCBzb3J0ZWQgPSBbLi4uc2NoZW1hXS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gICAgY29uc3QgZmllbGRzOiBJbnB1dE1ldGFkYXRhW10gPSBzb3J0ZWQubWFwKGRlZiA9PiB0aGlzLmJ1aWxkRmllbGQoZGVmLCBpMThuTmFtZXNwYWNlLCBzdGF0ZSkpO1xuICAgIGNvbnN0IHNlY3Rpb246IEZvcm1TZWN0aW9uID0geyBuYW1lOiAnJywgb3JkZXI6IDAsIGZpZWxkcyB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IGZvcm1OYW1lLFxuICAgICAgc2VjdGlvbnM6IFtzZWN0aW9uXSxcbiAgICAgIGFjdGlvbnM6IGJ1dHRvbih7XG4gICAgICAgIHRleHQ6IHRoaXMuaTE4bi50KHN1Ym1pdExhYmVsS2V5LCBpMThuTmFtZXNwYWNlKSxcbiAgICAgICAgdHlwZTogJ3N1Ym1pdCcsXG4gICAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgIH0pLFxuICAgICAgc3RhdGUsXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEZpZWxkKFxuICAgIGRlZjogRmllbGRTY2hlbWFEZWYsXG4gICAgaTE4bk5hbWVzcGFjZTogc3RyaW5nLFxuICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZVxuICApOiBJbnB1dE1ldGFkYXRhIHtcbiAgICAvLyBPcmRlbjogdGV4dG8gZGVsIGNsaWVudGUgKHRhbCBjdWFsIGxvIGVzY3JpYmnDsykg4oaSIGNsYXZlIGkxOG4gZGUgcHJvZHVjdG8uXG4gICAgLy8gTG9zICpFcy8qRW4gc29uIHNvbG8gY29tcGF0aWJpbGlkYWQgY29uIGVzcXVlbWFzIHZpZWpvczogc2UgbGVlbiBhbCBmaW5hbFxuICAgIC8vIHkgbmFkaWUgbG9zIGVzY3JpYmUuIFZlciByZWdsYSAjNCBlbiBDTEFVREUubWQuXG4gICAgY29uc3QgbGFiZWwgPVxuICAgICAgZGVmLmxhYmVsIHx8XG4gICAgICBkZWYubGFiZWxFcyB8fFxuICAgICAgZGVmLmxhYmVsRW4gfHxcbiAgICAgIChkZWYubGFiZWxLZXkgPyB0aGlzLmkxOG4udChkZWYubGFiZWxLZXksIGkxOG5OYW1lc3BhY2UpIDogZGVmLm5hbWUpO1xuICAgIGNvbnN0IHBsYWNlaG9sZGVyID1cbiAgICAgIGRlZi5wbGFjZWhvbGRlclRleHQgfHxcbiAgICAgIGRlZi5wbGFjZWhvbGRlckVzIHx8XG4gICAgICBkZWYucGxhY2Vob2xkZXJFbiB8fFxuICAgICAgKGRlZi5wbGFjZWhvbGRlciA/IHRoaXMuaTE4bi50KGRlZi5wbGFjZWhvbGRlciwgaTE4bk5hbWVzcGFjZSkgOiAnJyk7XG4gICAgY29uc3QgaGludCA9XG4gICAgICBkZWYuaGludFRleHQgfHxcbiAgICAgIGRlZi5oaW50RXMgfHxcbiAgICAgIGRlZi5oaW50RW4gfHxcbiAgICAgIChkZWYuaGludCA/IHRoaXMuaTE4bi50KGRlZi5oaW50LCBpMThuTmFtZXNwYWNlKSA6ICcnKTtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gdGhpcy5wYXJzZVZhbGlkYXRvcnMoZGVmKTtcbiAgICBjb25zdCBlcnJvcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgIGlmIChkZWYucmVxdWlyZWQgfHwgKGRlZi52YWxpZGF0b3JzID8/IFtdKS5pbmNsdWRlcygncmVxdWlyZWQnKSkge1xuICAgICAgZXJyb3JzWydyZXF1aXJlZCddID0gdGhpcy5pMThuLnQoJ2ZpZWxkUmVxdWlyZWQnLCAnX2NvbW1vbicpO1xuICAgIH1cbiAgICBpZiAoKGRlZi52YWxpZGF0b3JzID8/IFtdKS5pbmNsdWRlcygnZW1haWwnKSkge1xuICAgICAgZXJyb3JzWydlbWFpbCddID0gdGhpcy5pMThuLnQoJ2ZpZWxkSW52YWxpZEVtYWlsJywgJ19jb21tb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zOiBJbnB1dE9wdGlvbltdIHwgdW5kZWZpbmVkID0gZGVmLm9wdGlvbnNcbiAgICAgID8gZGVmLm9wdGlvbnMubWFwKG8gPT4gKHsgaWQ6IG8uaWQsIG5hbWU6IG8ubmFtZSwgb3JkZXI6IG8ub3JkZXIgfSkpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICB0b2tlbjogZGVmLm5hbWUsXG4gICAgICBuYW1lOiBkZWYubmFtZSxcbiAgICAgIGxhYmVsLFxuICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICBoaW50LFxuICAgICAgdHlwZTogdGhpcy5wYXJzZUlucHV0VHlwZShkZWYudHlwZSksXG4gICAgICBvcmRlcjogZGVmLm9yZGVyLFxuICAgICAgdmFsaWRhdG9ycyxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBlcnJvcnMsXG4gICAgICB2YWx1ZTogZGVmLnZhbHVlLFxuICAgICAgc3RhdGUsXG4gICAgfTtcbiAgfVxuXG4gIGNyZWF0ZUZpZWxkU2NoZW1hKFxuICAgIGZpZWxkOiBQYXJ0aWFsPEZpZWxkU2NoZW1hRGVmPiAmIFBpY2s8RmllbGRTY2hlbWFEZWYsICduYW1lJyB8ICdsYWJlbCc+LFxuICAgIG9yZGVyOiBudW1iZXJcbiAgKTogRmllbGRTY2hlbWFEZWYge1xuICAgIGNvbnN0IHR5cGUgPSBmaWVsZC50eXBlIHx8ICdURVhUJztcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gZmllbGQudmFsaWRhdG9ycyA/PyB0aGlzLmRlZmF1bHRWYWxpZGF0b3JzRm9yKHR5cGUsICEhZmllbGQucmVxdWlyZWQpO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlLFxuICAgICAgbmFtZTogdGhpcy50b1Rva2VuKGZpZWxkLm5hbWUgfHwgZmllbGQubGFiZWwpLFxuICAgICAgbGFiZWxLZXk6IGZpZWxkLmxhYmVsS2V5IHx8IHRoaXMudG9Ub2tlbihmaWVsZC5uYW1lIHx8IGZpZWxkLmxhYmVsKSxcbiAgICAgIC8vIFNpbiAqRXMvKkVuOiBlbCB0ZXh0byBkZWwgY2xpZW50ZSB2YSBlbiB1biBjYW1wbyB5IGVsIGRlIHByb2R1Y3RvIGVuXG4gICAgICAvLyBsYWJlbEtleS4gVmVyIHJlZ2xhICM0IGVuIENMQVVERS5tZC5cbiAgICAgIGxhYmVsOiBmaWVsZC5sYWJlbC50cmltKCksXG4gICAgICBwbGFjZWhvbGRlcjogZmllbGQucGxhY2Vob2xkZXIsXG4gICAgICBwbGFjZWhvbGRlclRleHQ6IGZpZWxkLnBsYWNlaG9sZGVyVGV4dD8udHJpbSgpID8/ICcnLFxuICAgICAgaGludDogZmllbGQuaGludCxcbiAgICAgIGhpbnRUZXh0OiBmaWVsZC5oaW50VGV4dD8udHJpbSgpID8/ICcnLFxuICAgICAgcmVxdWlyZWQ6ICEhZmllbGQucmVxdWlyZWQsXG4gICAgICB2YWxpZGF0b3JzLFxuICAgICAgb3B0aW9uczogdGhpcy5ub3JtYWxpemVPcHRpb25zKGZpZWxkLm9wdGlvbnMpLFxuICAgICAgb3JkZXIsXG4gICAgfTtcbiAgfVxuXG4gIGNyZWF0ZUZvcm1TY2hlbWFDb25maWcoaW5wdXQ6IHtcbiAgICBzY2hlbWFJZDogc3RyaW5nO1xuICAgIHNjaGVtYVZlcnNpb24/OiBzdHJpbmc7XG4gICAgLyoqIFTDrXR1bG8gZGVsIGZvcm11bGFyaW8uIExvIGVzY3JpYmUgbGEgb3JnYW5pemFjacOzbjogbm8gc2UgdHJhZHVjZS4gKi9cbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBmaWVsZHM6IEZpZWxkU2NoZW1hRGVmW107XG4gICAgY2Fub25pY2FsQWxpYXNlcz86IENhbm9uaWNhbEZpZWxkQWxpYXNlcztcbiAgfSk6IEZvcm1TY2hlbWFDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWFJZDogaW5wdXQuc2NoZW1hSWQsXG4gICAgICBzY2hlbWFWZXJzaW9uOiBpbnB1dC5zY2hlbWFWZXJzaW9uLFxuICAgICAgbGFiZWw6IGlucHV0LmxhYmVsLFxuICAgICAgY2Fub25pY2FsTWFwOiB0aGlzLmJ1aWxkQ2Fub25pY2FsTWFwKGlucHV0LmZpZWxkcywgaW5wdXQuY2Fub25pY2FsQWxpYXNlcyksXG4gICAgICBmaWVsZFNjaGVtYTogaW5wdXQuZmllbGRzLFxuICAgIH07XG4gIH1cblxuICBidWlsZENhbm9uaWNhbE1hcChcbiAgICBmaWVsZHM6IEZpZWxkU2NoZW1hRGVmW10sXG4gICAgYWxpYXNlczogQ2Fub25pY2FsRmllbGRBbGlhc2VzID0gREVGQVVMVF9DQU5PTklDQUxfRklFTERfQUxJQVNFU1xuICApOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBjb25zdCBuYW1lcyA9IG5ldyBTZXQoZmllbGRzLm1hcChmaWVsZCA9PiBmaWVsZC5uYW1lKSk7XG4gICAgY29uc3QgbWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgZm9yIChjb25zdCBbY2Fub25pY2FsTmFtZSwgY2FuZGlkYXRlc10gb2YgT2JqZWN0LmVudHJpZXMoYWxpYXNlcykpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gY2FuZGlkYXRlcy5maW5kKGNhbmRpZGF0ZSA9PiBuYW1lcy5oYXMoY2FuZGlkYXRlKSk7XG4gICAgICBpZiAobWF0Y2gpIG1hcFtjYW5vbmljYWxOYW1lXSA9IG1hdGNoO1xuICAgIH1cbiAgICByZXR1cm4gbWFwO1xuICB9XG5cbiAgdG9Ub2tlbih2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgICAgIC5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpXG4gICAgICAucmVwbGFjZSgvW15hLXpBLVowLTlfIC1dL2csICcnKVxuICAgICAgLnRyaW0oKVxuICAgICAgLnJlcGxhY2UoL1tcXHMtXSsoLikvZywgKF8sIGM6IHN0cmluZykgPT4gYy50b1VwcGVyQ2FzZSgpKVxuICAgICAgLnJlcGxhY2UoL15bQS1aXS8sIGMgPT4gYy50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuXG4gIHVuaXF1ZUZpZWxkTmFtZSh2YWx1ZTogc3RyaW5nLCBleGlzdGluZ0ZpZWxkczogQXJyYXk8UGljazxGaWVsZFNjaGVtYURlZiwgJ25hbWUnPj4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2UgPSB0aGlzLnRvVG9rZW4odmFsdWUpIHx8ICdmaWVsZCc7XG4gICAgY29uc3QgdXNlZCA9IG5ldyBTZXQoZXhpc3RpbmdGaWVsZHMubWFwKGZpZWxkID0+IHRoaXMudG9Ub2tlbihmaWVsZC5uYW1lKSkpO1xuICAgIGlmICghdXNlZC5oYXMoYmFzZSkpIHJldHVybiBiYXNlO1xuICAgIGxldCBzdWZmaXggPSAyO1xuICAgIHdoaWxlICh1c2VkLmhhcyhgJHtiYXNlfSR7c3VmZml4fWApKSBzdWZmaXggKz0gMTtcbiAgICByZXR1cm4gYCR7YmFzZX0ke3N1ZmZpeH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlVmFsaWRhdG9ycyhkZWY6IEZpZWxkU2NoZW1hRGVmKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgY29uc3QgcmVzdWx0OiBWYWxpZGF0b3JGbltdID0gW107XG4gICAgY29uc3QgZW50cmllcyA9IGRlZi52YWxpZGF0b3JzID8/IFtdO1xuICAgIGNvbnN0IGhhc1JlcXVpcmVkID0gZGVmLnJlcXVpcmVkIHx8IGVudHJpZXMuaW5jbHVkZXMoJ3JlcXVpcmVkJyk7XG5cbiAgICBpZiAoaGFzUmVxdWlyZWQpIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuXG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBpZiAoZW50cnkgPT09ICdyZXF1aXJlZCcpIGNvbnRpbnVlO1xuICAgICAgaWYgKGVudHJ5ID09PSAnZW1haWwnKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMuZW1haWwpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbkxlbmd0aE1hdGNoID0gZW50cnkubWF0Y2goL15taW5MZW5ndGg6KFxcZCspJC8pO1xuICAgICAgaWYgKG1pbkxlbmd0aE1hdGNoKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKE51bWJlcihtaW5MZW5ndGhNYXRjaFsxXSkpKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBtYXhMZW5ndGhNYXRjaCA9IGVudHJ5Lm1hdGNoKC9ebWF4TGVuZ3RoOihcXGQrKSQvKTtcbiAgICAgIGlmIChtYXhMZW5ndGhNYXRjaCkge1xuICAgICAgICByZXN1bHQucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aChOdW1iZXIobWF4TGVuZ3RoTWF0Y2hbMV0pKSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgbWluTWF0Y2ggPSBlbnRyeS5tYXRjaCgvXm1pbjooXFxkKykkLyk7XG4gICAgICBpZiAobWluTWF0Y2gpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goVmFsaWRhdG9ycy5taW4oTnVtYmVyKG1pbk1hdGNoWzFdKSkpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1heE1hdGNoID0gZW50cnkubWF0Y2goL15tYXg6KFxcZCspJC8pO1xuICAgICAgaWYgKG1heE1hdGNoKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMubWF4KE51bWJlcihtYXhNYXRjaFsxXSkpKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGRlZmF1bHRWYWxpZGF0b3JzRm9yKHR5cGU6IHN0cmluZywgcmVxdWlyZWQ6IGJvb2xlYW4pOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IG5ldyBTZXQ8c3RyaW5nPihyZXF1aXJlZCA/IFsncmVxdWlyZWQnXSA6IFtdKTtcbiAgICBpZiAodHlwZSA9PT0gJ0VNQUlMJykgdmFsaWRhdG9ycy5hZGQoJ2VtYWlsJyk7XG4gICAgaWYgKHR5cGUgPT09ICdURVhUJyB8fCB0eXBlID09PSAnUEhPTkUnKSB2YWxpZGF0b3JzLmFkZCgnbWF4TGVuZ3RoOjIwMCcpO1xuICAgIHJldHVybiBbLi4udmFsaWRhdG9yc107XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZU9wdGlvbnMob3B0aW9ucz86IEZpZWxkT3B0aW9uW10pOiBGaWVsZE9wdGlvbltdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIW9wdGlvbnM/Lmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gWy4uLm9wdGlvbnNdXG4gICAgICAubWFwKChvcHRpb24sIGluZGV4KSA9PiAoe1xuICAgICAgICBpZDogb3B0aW9uLmlkLFxuICAgICAgICBuYW1lOiBvcHRpb24ubmFtZSxcbiAgICAgICAgb3JkZXI6IG9wdGlvbi5vcmRlciA/PyBpbmRleCxcbiAgICAgIH0pKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZUlucHV0VHlwZSh0eXBlU3RyOiBzdHJpbmcpOiBJbnB1dFR5cGUge1xuICAgIGNvbnN0IG1hcDogUmVjb3JkPHN0cmluZywgSW5wdXRUeXBlPiA9IHtcbiAgICAgIFRFWFQ6IElucHV0VHlwZS5URVhULFxuICAgICAgVEVYVEFSRUE6IElucHV0VHlwZS5URVhUQVJFQSxcbiAgICAgIEVNQUlMOiBJbnB1dFR5cGUuRU1BSUwsXG4gICAgICBOVU1CRVI6IElucHV0VHlwZS5OVU1CRVIsXG4gICAgICBEQVRFOiBJbnB1dFR5cGUuREFURSxcbiAgICAgIFNFTEVDVDogSW5wdXRUeXBlLlNFTEVDVCxcbiAgICAgIE1VTFRJX1NFTEVDVDogSW5wdXRUeXBlLk1VTFRJX1NFTEVDVCxcbiAgICAgIFJBRElPOiBJbnB1dFR5cGUuUkFESU8sXG4gICAgICBUT0dHTEU6IElucHV0VHlwZS5UT0dHTEUsXG4gICAgICBDSEVDSzogSW5wdXRUeXBlLkNIRUNLLFxuICAgICAgRklMRTogSW5wdXRUeXBlLkZJTEUsXG4gICAgICBBVFRBQ0hNRU5UOiBJbnB1dFR5cGUuQVRUQUNITUVOVCxcbiAgICAgIFBIT05FOiBJbnB1dFR5cGUuUEhPTkUsXG4gICAgICBDVVJSRU5DWTogSW5wdXRUeXBlLkNVUlJFTkNZLFxuICAgIH07XG4gICAgcmV0dXJuIG1hcFt0eXBlU3RyXSA/PyBJbnB1dFR5cGUuVEVYVDtcbiAgfVxufVxuIl19
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEtYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9mb3Jtcy9mb3JtLXNjaGVtYS1idWlsZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFFTCxlQUFlLEVBS2YsU0FBUyxHQUNWLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBRUwsK0JBQStCLEdBSWhDLE1BQU0sU0FBUyxDQUFDOztBQUdqQixNQUFNLE9BQU8sd0JBQXdCO0lBRHJDO1FBRVUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQW9PcEM7SUFsT0MsU0FBUyxDQUNQLE1BQXdCLEVBQ3hCLGFBQXFCLEVBQ3JCLFFBQWdCLEVBQ2hCLGlCQUF5QixRQUFRLEVBQ2pDLFFBQXdCLGVBQWUsQ0FBQyxPQUFPO1FBRS9DLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3RCxNQUFNLE1BQU0sR0FBb0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlGLE1BQU0sT0FBTyxHQUFn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LENBQUMsT0FBZTtRQUN0QyxNQUFNLEdBQUcsR0FBOEI7WUFDckMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1lBQ3BCLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtZQUM1QixLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUs7WUFDdEIsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1lBQ3hCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtZQUNwQixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07WUFDeEIsWUFBWSxFQUFFLFNBQVMsQ0FBQyxZQUFZO1lBQ3BDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSztZQUN0QixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07WUFDeEIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1lBQ3RCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtZQUNwQixVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVU7WUFDaEMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1lBQ3RCLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtZQUM1QixZQUFZLEVBQUUsU0FBUyxDQUFDLFlBQVk7U0FDckMsQ0FBQztRQUNGLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDeEMsQ0FBQzsrR0FwT1Usd0JBQXdCO21IQUF4Qix3QkFBd0IsY0FEWCxNQUFNOzs0RkFDbkIsd0JBQXdCO2tCQURwQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudFN0YXRlLFxuICBDb21wb25lbnRTdGF0ZXMsXG4gIEZvcm1NZXRhZGF0YSxcbiAgRm9ybVNlY3Rpb24sXG4gIElucHV0TWV0YWRhdGEsXG4gIElucHV0T3B0aW9uLFxuICBJbnB1dFR5cGUsXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvdHlwZXMnO1xuaW1wb3J0IHsgYnV0dG9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9hdG9tcy9idXR0b24vZmFjdG9yeSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uL2kxOG4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIENhbm9uaWNhbEZpZWxkQWxpYXNlcyxcbiAgREVGQVVMVF9DQU5PTklDQUxfRklFTERfQUxJQVNFUyxcbiAgRmllbGRPcHRpb24sXG4gIEZpZWxkU2NoZW1hRGVmLFxuICBGb3JtU2NoZW1hQ29uZmlnLFxufSBmcm9tICcuL3R5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBGb3JtU2NoZW1hQnVpbGRlclNlcnZpY2Uge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIGJ1aWxkRm9ybShcbiAgICBzY2hlbWE6IEZpZWxkU2NoZW1hRGVmW10sXG4gICAgaTE4bk5hbWVzcGFjZTogc3RyaW5nLFxuICAgIGZvcm1OYW1lOiBzdHJpbmcsXG4gICAgc3VibWl0TGFiZWxLZXk6IHN0cmluZyA9ICdzdWJtaXQnLFxuICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZSA9IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEXG4gICk6IEZvcm1NZXRhZGF0YSB7XG4gICAgY29uc3Qgc29ydGVkID0gWy4uLnNjaGVtYV0uc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICAgIGNvbnN0IGZpZWxkczogSW5wdXRNZXRhZGF0YVtdID0gc29ydGVkLm1hcChkZWYgPT4gdGhpcy5idWlsZEZpZWxkKGRlZiwgaTE4bk5hbWVzcGFjZSwgc3RhdGUpKTtcbiAgICBjb25zdCBzZWN0aW9uOiBGb3JtU2VjdGlvbiA9IHsgbmFtZTogJycsIG9yZGVyOiAwLCBmaWVsZHMgfTtcblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBmb3JtTmFtZSxcbiAgICAgIHNlY3Rpb25zOiBbc2VjdGlvbl0sXG4gICAgICBhY3Rpb25zOiBidXR0b24oe1xuICAgICAgICB0ZXh0OiB0aGlzLmkxOG4udChzdWJtaXRMYWJlbEtleSwgaTE4bk5hbWVzcGFjZSksXG4gICAgICAgIHR5cGU6ICdzdWJtaXQnLFxuICAgICAgICBmaWxsOiAnc29saWQnLFxuICAgICAgICBleHBhbmQ6ICdibG9jaycsXG4gICAgICB9KSxcbiAgICAgIHN0YXRlLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRGaWVsZChcbiAgICBkZWY6IEZpZWxkU2NoZW1hRGVmLFxuICAgIGkxOG5OYW1lc3BhY2U6IHN0cmluZyxcbiAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVcbiAgKTogSW5wdXRNZXRhZGF0YSB7XG4gICAgLy8gT3JkZW46IHRleHRvIGRlbCBjbGllbnRlICh0YWwgY3VhbCBsbyBlc2NyaWJpw7MpIOKGkiBjbGF2ZSBpMThuIGRlIHByb2R1Y3RvLlxuICAgIC8vIExvcyAqRXMvKkVuIHNvbiBzb2xvIGNvbXBhdGliaWxpZGFkIGNvbiBlc3F1ZW1hcyB2aWVqb3M6IHNlIGxlZW4gYWwgZmluYWxcbiAgICAvLyB5IG5hZGllIGxvcyBlc2NyaWJlLiBWZXIgcmVnbGEgIzQgZW4gQ0xBVURFLm1kLlxuICAgIGNvbnN0IGxhYmVsID1cbiAgICAgIGRlZi5sYWJlbCB8fFxuICAgICAgZGVmLmxhYmVsRXMgfHxcbiAgICAgIGRlZi5sYWJlbEVuIHx8XG4gICAgICAoZGVmLmxhYmVsS2V5ID8gdGhpcy5pMThuLnQoZGVmLmxhYmVsS2V5LCBpMThuTmFtZXNwYWNlKSA6IGRlZi5uYW1lKTtcbiAgICBjb25zdCBwbGFjZWhvbGRlciA9XG4gICAgICBkZWYucGxhY2Vob2xkZXJUZXh0IHx8XG4gICAgICBkZWYucGxhY2Vob2xkZXJFcyB8fFxuICAgICAgZGVmLnBsYWNlaG9sZGVyRW4gfHxcbiAgICAgIChkZWYucGxhY2Vob2xkZXIgPyB0aGlzLmkxOG4udChkZWYucGxhY2Vob2xkZXIsIGkxOG5OYW1lc3BhY2UpIDogJycpO1xuICAgIGNvbnN0IGhpbnQgPVxuICAgICAgZGVmLmhpbnRUZXh0IHx8XG4gICAgICBkZWYuaGludEVzIHx8XG4gICAgICBkZWYuaGludEVuIHx8XG4gICAgICAoZGVmLmhpbnQgPyB0aGlzLmkxOG4udChkZWYuaGludCwgaTE4bk5hbWVzcGFjZSkgOiAnJyk7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IHRoaXMucGFyc2VWYWxpZGF0b3JzKGRlZik7XG4gICAgY29uc3QgZXJyb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICBpZiAoZGVmLnJlcXVpcmVkIHx8IChkZWYudmFsaWRhdG9ycyA/PyBbXSkuaW5jbHVkZXMoJ3JlcXVpcmVkJykpIHtcbiAgICAgIGVycm9yc1sncmVxdWlyZWQnXSA9IHRoaXMuaTE4bi50KCdmaWVsZFJlcXVpcmVkJywgJ19jb21tb24nKTtcbiAgICB9XG4gICAgaWYgKChkZWYudmFsaWRhdG9ycyA/PyBbXSkuaW5jbHVkZXMoJ2VtYWlsJykpIHtcbiAgICAgIGVycm9yc1snZW1haWwnXSA9IHRoaXMuaTE4bi50KCdmaWVsZEludmFsaWRFbWFpbCcsICdfY29tbW9uJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9uczogSW5wdXRPcHRpb25bXSB8IHVuZGVmaW5lZCA9IGRlZi5vcHRpb25zXG4gICAgICA/IGRlZi5vcHRpb25zLm1hcChvID0+ICh7IGlkOiBvLmlkLCBuYW1lOiBvLm5hbWUsIG9yZGVyOiBvLm9yZGVyIH0pKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdG9rZW46IGRlZi5uYW1lLFxuICAgICAgbmFtZTogZGVmLm5hbWUsXG4gICAgICBsYWJlbCxcbiAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgaGludCxcbiAgICAgIHR5cGU6IHRoaXMucGFyc2VJbnB1dFR5cGUoZGVmLnR5cGUpLFxuICAgICAgb3JkZXI6IGRlZi5vcmRlcixcbiAgICAgIHZhbGlkYXRvcnMsXG4gICAgICBvcHRpb25zLFxuICAgICAgZXJyb3JzLFxuICAgICAgdmFsdWU6IGRlZi52YWx1ZSxcbiAgICAgIHN0YXRlLFxuICAgIH07XG4gIH1cblxuICBjcmVhdGVGaWVsZFNjaGVtYShcbiAgICBmaWVsZDogUGFydGlhbDxGaWVsZFNjaGVtYURlZj4gJiBQaWNrPEZpZWxkU2NoZW1hRGVmLCAnbmFtZScgfCAnbGFiZWwnPixcbiAgICBvcmRlcjogbnVtYmVyXG4gICk6IEZpZWxkU2NoZW1hRGVmIHtcbiAgICBjb25zdCB0eXBlID0gZmllbGQudHlwZSB8fCAnVEVYVCc7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IGZpZWxkLnZhbGlkYXRvcnMgPz8gdGhpcy5kZWZhdWx0VmFsaWRhdG9yc0Zvcih0eXBlLCAhIWZpZWxkLnJlcXVpcmVkKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZSxcbiAgICAgIG5hbWU6IHRoaXMudG9Ub2tlbihmaWVsZC5uYW1lIHx8IGZpZWxkLmxhYmVsKSxcbiAgICAgIGxhYmVsS2V5OiBmaWVsZC5sYWJlbEtleSB8fCB0aGlzLnRvVG9rZW4oZmllbGQubmFtZSB8fCBmaWVsZC5sYWJlbCksXG4gICAgICAvLyBTaW4gKkVzLypFbjogZWwgdGV4dG8gZGVsIGNsaWVudGUgdmEgZW4gdW4gY2FtcG8geSBlbCBkZSBwcm9kdWN0byBlblxuICAgICAgLy8gbGFiZWxLZXkuIFZlciByZWdsYSAjNCBlbiBDTEFVREUubWQuXG4gICAgICBsYWJlbDogZmllbGQubGFiZWwudHJpbSgpLFxuICAgICAgcGxhY2Vob2xkZXI6IGZpZWxkLnBsYWNlaG9sZGVyLFxuICAgICAgcGxhY2Vob2xkZXJUZXh0OiBmaWVsZC5wbGFjZWhvbGRlclRleHQ/LnRyaW0oKSA/PyAnJyxcbiAgICAgIGhpbnQ6IGZpZWxkLmhpbnQsXG4gICAgICBoaW50VGV4dDogZmllbGQuaGludFRleHQ/LnRyaW0oKSA/PyAnJyxcbiAgICAgIHJlcXVpcmVkOiAhIWZpZWxkLnJlcXVpcmVkLFxuICAgICAgdmFsaWRhdG9ycyxcbiAgICAgIG9wdGlvbnM6IHRoaXMubm9ybWFsaXplT3B0aW9ucyhmaWVsZC5vcHRpb25zKSxcbiAgICAgIG9yZGVyLFxuICAgIH07XG4gIH1cblxuICBjcmVhdGVGb3JtU2NoZW1hQ29uZmlnKGlucHV0OiB7XG4gICAgc2NoZW1hSWQ6IHN0cmluZztcbiAgICBzY2hlbWFWZXJzaW9uPzogc3RyaW5nO1xuICAgIC8qKiBUw610dWxvIGRlbCBmb3JtdWxhcmlvLiBMbyBlc2NyaWJlIGxhIG9yZ2FuaXphY2nDs246IG5vIHNlIHRyYWR1Y2UuICovXG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgZmllbGRzOiBGaWVsZFNjaGVtYURlZltdO1xuICAgIGNhbm9uaWNhbEFsaWFzZXM/OiBDYW5vbmljYWxGaWVsZEFsaWFzZXM7XG4gIH0pOiBGb3JtU2NoZW1hQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hSWQ6IGlucHV0LnNjaGVtYUlkLFxuICAgICAgc2NoZW1hVmVyc2lvbjogaW5wdXQuc2NoZW1hVmVyc2lvbixcbiAgICAgIGxhYmVsOiBpbnB1dC5sYWJlbCxcbiAgICAgIGNhbm9uaWNhbE1hcDogdGhpcy5idWlsZENhbm9uaWNhbE1hcChpbnB1dC5maWVsZHMsIGlucHV0LmNhbm9uaWNhbEFsaWFzZXMpLFxuICAgICAgZmllbGRTY2hlbWE6IGlucHV0LmZpZWxkcyxcbiAgICB9O1xuICB9XG5cbiAgYnVpbGRDYW5vbmljYWxNYXAoXG4gICAgZmllbGRzOiBGaWVsZFNjaGVtYURlZltdLFxuICAgIGFsaWFzZXM6IENhbm9uaWNhbEZpZWxkQWxpYXNlcyA9IERFRkFVTFRfQ0FOT05JQ0FMX0ZJRUxEX0FMSUFTRVNcbiAgKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgY29uc3QgbmFtZXMgPSBuZXcgU2V0KGZpZWxkcy5tYXAoZmllbGQgPT4gZmllbGQubmFtZSkpO1xuICAgIGNvbnN0IG1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2Nhbm9uaWNhbE5hbWUsIGNhbmRpZGF0ZXNdIG9mIE9iamVjdC5lbnRyaWVzKGFsaWFzZXMpKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IGNhbmRpZGF0ZXMuZmluZChjYW5kaWRhdGUgPT4gbmFtZXMuaGFzKGNhbmRpZGF0ZSkpO1xuICAgICAgaWYgKG1hdGNoKSBtYXBbY2Fub25pY2FsTmFtZV0gPSBtYXRjaDtcbiAgICB9XG4gICAgcmV0dXJuIG1hcDtcbiAgfVxuXG4gIHRvVG9rZW4odmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlXG4gICAgICAubm9ybWFsaXplKCdORkQnKVxuICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKVxuICAgICAgLnJlcGxhY2UoL1teYS16QS1aMC05XyAtXS9nLCAnJylcbiAgICAgIC50cmltKClcbiAgICAgIC5yZXBsYWNlKC9bXFxzLV0rKC4pL2csIChfLCBjOiBzdHJpbmcpID0+IGMudG9VcHBlckNhc2UoKSlcbiAgICAgIC5yZXBsYWNlKC9eW0EtWl0vLCBjID0+IGMudG9Mb3dlckNhc2UoKSk7XG4gIH1cblxuICB1bmlxdWVGaWVsZE5hbWUodmFsdWU6IHN0cmluZywgZXhpc3RpbmdGaWVsZHM6IEFycmF5PFBpY2s8RmllbGRTY2hlbWFEZWYsICduYW1lJz4+KTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlID0gdGhpcy50b1Rva2VuKHZhbHVlKSB8fCAnZmllbGQnO1xuICAgIGNvbnN0IHVzZWQgPSBuZXcgU2V0KGV4aXN0aW5nRmllbGRzLm1hcChmaWVsZCA9PiB0aGlzLnRvVG9rZW4oZmllbGQubmFtZSkpKTtcbiAgICBpZiAoIXVzZWQuaGFzKGJhc2UpKSByZXR1cm4gYmFzZTtcbiAgICBsZXQgc3VmZml4ID0gMjtcbiAgICB3aGlsZSAodXNlZC5oYXMoYCR7YmFzZX0ke3N1ZmZpeH1gKSkgc3VmZml4ICs9IDE7XG4gICAgcmV0dXJuIGAke2Jhc2V9JHtzdWZmaXh9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZVZhbGlkYXRvcnMoZGVmOiBGaWVsZFNjaGVtYURlZik6IFZhbGlkYXRvckZuW10ge1xuICAgIGNvbnN0IHJlc3VsdDogVmFsaWRhdG9yRm5bXSA9IFtdO1xuICAgIGNvbnN0IGVudHJpZXMgPSBkZWYudmFsaWRhdG9ycyA/PyBbXTtcbiAgICBjb25zdCBoYXNSZXF1aXJlZCA9IGRlZi5yZXF1aXJlZCB8fCBlbnRyaWVzLmluY2x1ZGVzKCdyZXF1aXJlZCcpO1xuXG4gICAgaWYgKGhhc1JlcXVpcmVkKSByZXN1bHQucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcblxuICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgaWYgKGVudHJ5ID09PSAncmVxdWlyZWQnKSBjb250aW51ZTtcbiAgICAgIGlmIChlbnRyeSA9PT0gJ2VtYWlsJykge1xuICAgICAgICByZXN1bHQucHVzaChWYWxpZGF0b3JzLmVtYWlsKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBtaW5MZW5ndGhNYXRjaCA9IGVudHJ5Lm1hdGNoKC9ebWluTGVuZ3RoOihcXGQrKSQvKTtcbiAgICAgIGlmIChtaW5MZW5ndGhNYXRjaCkge1xuICAgICAgICByZXN1bHQucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aChOdW1iZXIobWluTGVuZ3RoTWF0Y2hbMV0pKSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgbWF4TGVuZ3RoTWF0Y2ggPSBlbnRyeS5tYXRjaCgvXm1heExlbmd0aDooXFxkKykkLyk7XG4gICAgICBpZiAobWF4TGVuZ3RoTWF0Y2gpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoTnVtYmVyKG1heExlbmd0aE1hdGNoWzFdKSkpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbk1hdGNoID0gZW50cnkubWF0Y2goL15taW46KFxcZCspJC8pO1xuICAgICAgaWYgKG1pbk1hdGNoKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMubWluKE51bWJlcihtaW5NYXRjaFsxXSkpKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBtYXhNYXRjaCA9IGVudHJ5Lm1hdGNoKC9ebWF4OihcXGQrKSQvKTtcbiAgICAgIGlmIChtYXhNYXRjaCkge1xuICAgICAgICByZXN1bHQucHVzaChWYWxpZGF0b3JzLm1heChOdW1iZXIobWF4TWF0Y2hbMV0pKSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBkZWZhdWx0VmFsaWRhdG9yc0Zvcih0eXBlOiBzdHJpbmcsIHJlcXVpcmVkOiBib29sZWFuKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBuZXcgU2V0PHN0cmluZz4ocmVxdWlyZWQgPyBbJ3JlcXVpcmVkJ10gOiBbXSk7XG4gICAgaWYgKHR5cGUgPT09ICdFTUFJTCcpIHZhbGlkYXRvcnMuYWRkKCdlbWFpbCcpO1xuICAgIGlmICh0eXBlID09PSAnVEVYVCcgfHwgdHlwZSA9PT0gJ1BIT05FJykgdmFsaWRhdG9ycy5hZGQoJ21heExlbmd0aDoyMDAnKTtcbiAgICByZXR1cm4gWy4uLnZhbGlkYXRvcnNdO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVPcHRpb25zKG9wdGlvbnM/OiBGaWVsZE9wdGlvbltdKTogRmllbGRPcHRpb25bXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFvcHRpb25zPy5sZW5ndGgpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIFsuLi5vcHRpb25zXVxuICAgICAgLm1hcCgob3B0aW9uLCBpbmRleCkgPT4gKHtcbiAgICAgICAgaWQ6IG9wdGlvbi5pZCxcbiAgICAgICAgbmFtZTogb3B0aW9uLm5hbWUsXG4gICAgICAgIG9yZGVyOiBvcHRpb24ub3JkZXIgPz8gaW5kZXgsXG4gICAgICB9KSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcik7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VJbnB1dFR5cGUodHlwZVN0cjogc3RyaW5nKTogSW5wdXRUeXBlIHtcbiAgICBjb25zdCBtYXA6IFJlY29yZDxzdHJpbmcsIElucHV0VHlwZT4gPSB7XG4gICAgICBURVhUOiBJbnB1dFR5cGUuVEVYVCxcbiAgICAgIFRFWFRBUkVBOiBJbnB1dFR5cGUuVEVYVEFSRUEsXG4gICAgICBFTUFJTDogSW5wdXRUeXBlLkVNQUlMLFxuICAgICAgTlVNQkVSOiBJbnB1dFR5cGUuTlVNQkVSLFxuICAgICAgREFURTogSW5wdXRUeXBlLkRBVEUsXG4gICAgICBTRUxFQ1Q6IElucHV0VHlwZS5TRUxFQ1QsXG4gICAgICBNVUxUSV9TRUxFQ1Q6IElucHV0VHlwZS5NVUxUSV9TRUxFQ1QsXG4gICAgICBSQURJTzogSW5wdXRUeXBlLlJBRElPLFxuICAgICAgVE9HR0xFOiBJbnB1dFR5cGUuVE9HR0xFLFxuICAgICAgQ0hFQ0s6IElucHV0VHlwZS5DSEVDSyxcbiAgICAgIEZJTEU6IElucHV0VHlwZS5GSUxFLFxuICAgICAgQVRUQUNITUVOVDogSW5wdXRUeXBlLkFUVEFDSE1FTlQsXG4gICAgICBQSE9ORTogSW5wdXRUeXBlLlBIT05FLFxuICAgICAgQ1VSUkVOQ1k6IElucHV0VHlwZS5DVVJSRU5DWSxcbiAgICAgIEVNT0pJX1JBVElORzogSW5wdXRUeXBlLkVNT0pJX1JBVElORyxcbiAgICB9O1xuICAgIHJldHVybiBtYXBbdHlwZVN0cl0gPz8gSW5wdXRUeXBlLlRFWFQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -5,4 +5,4 @@ export const DEFAULT_CANONICAL_FIELD_ALIASES = {
|
|
|
5
5
|
lastName: ['buyerLastName', 'lastName'],
|
|
6
6
|
phone: ['buyerPhone', 'phone', 'telephone'],
|
|
7
7
|
};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2Zvcm1zL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThEQSxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBMEI7SUFDcEUsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLENBQUM7SUFDOUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDdkMsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO0lBQzFDLFFBQVEsRUFBRSxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUM7SUFDdkMsS0FBSyxFQUFFLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUM7Q0FDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRmllbGRPcHRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIG9yZGVyOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRTY2hlbWFEZWYge1xuICAvKiogSW5wdXRUeXBlIGVudW0gbmFtZSBhcyBzdHJpbmc6ICdURVhUJywgJ1RFWFRBUkVBJywgJ1NFTEVDVCcsIGV0Yy4gKi9cbiAgdHlwZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZXh0byBkZSBQUk9EVUNUTzogY2xhdmUgaTE4biBxdWUgbGEgYXBwIHRyYWR1Y2UuIEVzIGVsIGNhbWlubyBjb3JyZWN0b1xuICAgKiBwYXJhIGxvcyBmb3JtdWxhcmlvcyBxdWUgZGVmaW5lIGVsIGVxdWlwby5cbiAgICovXG4gIGxhYmVsS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGV4dG8gZGVsIENMSUVOVEU6IGxvIGVzY3JpYmnDsyB1bmEgb3JnYW5pemFjacOzbiB5IHNlIG11ZXN0cmEgdGFsIGN1YWwsIHNpblxuICAgKiB0cmFkdWNpci4gUmVnbGEgIzQgZGUgQ0xBVURFLm1kLlxuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBAZGVwcmVjYXRlZCBTb2xvIHBhcmEgbGVlciBlc3F1ZW1hcyBndWFyZGFkb3MgYW50ZXMgZGUgdW5pZmljYXIuIE51bmNhIGVzY3JpYmlyLiAqL1xuICBsYWJlbEVzPzogc3RyaW5nO1xuICAvKiogQGRlcHJlY2F0ZWQgSWRlbSBgbGFiZWxFc2AuICovXG4gIGxhYmVsRW4/OiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBwbGFjZWhvbGRlclRleHQ/OiBzdHJpbmc7XG4gIC8qKiBAZGVwcmVjYXRlZCBTb2xvIGxlY3R1cmEgZGUgZXNxdWVtYXMgdmllam9zLiAqL1xuICBwbGFjZWhvbGRlckVzPzogc3RyaW5nO1xuICAvKiogQGRlcHJlY2F0ZWQgU29sbyBsZWN0dXJhIGRlIGVzcXVlbWFzIHZpZWpvcy4gKi9cbiAgcGxhY2Vob2xkZXJFbj86IHN0cmluZztcbiAgaGludD86IHN0cmluZztcbiAgaGludFRleHQ/OiBzdHJpbmc7XG4gIC8qKiBAZGVwcmVjYXRlZCBTb2xvIGxlY3R1cmEgZGUgZXNxdWVtYXMgdmllam9zLiAqL1xuICBoaW50RXM/OiBzdHJpbmc7XG4gIC8qKiBAZGVwcmVjYXRlZCBTb2xvIGxlY3R1cmEgZGUgZXNxdWVtYXMgdmllam9zLiAqL1xuICBoaW50RW4/
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2Zvcm1zL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThEQSxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBMEI7SUFDcEUsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLENBQUM7SUFDOUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDdkMsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO0lBQzFDLFFBQVEsRUFBRSxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUM7SUFDdkMsS0FBSyxFQUFFLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUM7Q0FDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRmllbGRPcHRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIG9yZGVyOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRTY2hlbWFEZWYge1xuICAvKiogSW5wdXRUeXBlIGVudW0gbmFtZSBhcyBzdHJpbmc6ICdURVhUJywgJ1RFWFRBUkVBJywgJ1NFTEVDVCcsIGV0Yy4gKi9cbiAgdHlwZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUZXh0byBkZSBQUk9EVUNUTzogY2xhdmUgaTE4biBxdWUgbGEgYXBwIHRyYWR1Y2UuIEVzIGVsIGNhbWlubyBjb3JyZWN0b1xuICAgKiBwYXJhIGxvcyBmb3JtdWxhcmlvcyBxdWUgZGVmaW5lIGVsIGVxdWlwby5cbiAgICovXG4gIGxhYmVsS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGV4dG8gZGVsIENMSUVOVEU6IGxvIGVzY3JpYmnDsyB1bmEgb3JnYW5pemFjacOzbiB5IHNlIG11ZXN0cmEgdGFsIGN1YWwsIHNpblxuICAgKiB0cmFkdWNpci4gUmVnbGEgIzQgZGUgQ0xBVURFLm1kLlxuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBAZGVwcmVjYXRlZCBTb2xvIHBhcmEgbGVlciBlc3F1ZW1hcyBndWFyZGFkb3MgYW50ZXMgZGUgdW5pZmljYXIuIE51bmNhIGVzY3JpYmlyLiAqL1xuICBsYWJlbEVzPzogc3RyaW5nO1xuICAvKiogQGRlcHJlY2F0ZWQgSWRlbSBgbGFiZWxFc2AuICovXG4gIGxhYmVsRW4/OiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBwbGFjZWhvbGRlclRleHQ/OiBzdHJpbmc7XG4gIC8qKiBAZGVwcmVjYXRlZCBTb2xvIGxlY3R1cmEgZGUgZXNxdWVtYXMgdmllam9zLiAqL1xuICBwbGFjZWhvbGRlckVzPzogc3RyaW5nO1xuICAvKiogQGRlcHJlY2F0ZWQgU29sbyBsZWN0dXJhIGRlIGVzcXVlbWFzIHZpZWpvcy4gKi9cbiAgcGxhY2Vob2xkZXJFbj86IHN0cmluZztcbiAgaGludD86IHN0cmluZztcbiAgaGludFRleHQ/OiBzdHJpbmc7XG4gIC8qKiBAZGVwcmVjYXRlZCBTb2xvIGxlY3R1cmEgZGUgZXNxdWVtYXMgdmllam9zLiAqL1xuICBoaW50RXM/OiBzdHJpbmc7XG4gIC8qKiBAZGVwcmVjYXRlZCBTb2xvIGxlY3R1cmEgZGUgZXNxdWVtYXMgdmllam9zLiAqL1xuICBoaW50RW4/OiBzdHJpbmc7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xuICAvKiogZS5nLiAncmVxdWlyZWQnLCAnZW1haWwnLCAnbWF4TGVuZ3RoOjUwMCcsICdtaW5MZW5ndGg6MycgKi9cbiAgdmFsaWRhdG9ycz86IHN0cmluZ1tdO1xuICBvcHRpb25zPzogRmllbGRPcHRpb25bXTtcbiAgb3JkZXI6IG51bWJlcjtcbiAgLyoqIEluaXRpYWwgdmFsdWUgaW5qZWN0ZWQgYnkgY29uc3VtZXJzIHdoZW4gcmVuZGVyaW5nIGEgY29uZmlndXJlZCBmb3JtLiAqL1xuICB2YWx1ZT86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtU2NoZW1hQ29uZmlnIHtcbiAgc2NoZW1hSWQ6IHN0cmluZztcbiAgc2NoZW1hVmVyc2lvbj86IHN0cmluZztcbiAgLyoqIFTDrXR1bG8gZGVsIGZvcm11bGFyaW8sIGVzY3JpdG8gcG9yIGxhIG9yZ2FuaXphY2nDs246IG5vIHNlIHRyYWR1Y2UuICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogQGRlcHJlY2F0ZWQgU29sbyBwYXJhIGxlZXIgY29uZmlndXJhY2lvbmVzIHByZXZpYXMgYSBsYSB1bmlmaWNhY2nDs24uICovXG4gIGxhYmVsRXM/OiBzdHJpbmc7XG4gIC8qKiBAZGVwcmVjYXRlZCBJZGVtIGBsYWJlbEVzYC4gKi9cbiAgbGFiZWxFbj86IHN0cmluZztcbiAgY2Fub25pY2FsTWFwPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgZmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hRGVmW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2Fub25pY2FsRmllbGRBbGlhc2VzIHtcbiAgW2Nhbm9uaWNhbE5hbWU6IHN0cmluZ106IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9DQU5PTklDQUxfRklFTERfQUxJQVNFUzogQ2Fub25pY2FsRmllbGRBbGlhc2VzID0ge1xuICBlbWFpbDogWydlbWFpbCcsICdidXllckVtYWlsJywgJ2NvbnRhY3RFbWFpbCddLFxuICBuYW1lOiBbJ2J1eWVyTmFtZScsICduYW1lJywgJ2Z1bGxOYW1lJ10sXG4gIGZpcnN0TmFtZTogWydidXllckZpcnN0TmFtZScsICdmaXJzdE5hbWUnXSxcbiAgbGFzdE5hbWU6IFsnYnV5ZXJMYXN0TmFtZScsICdsYXN0TmFtZSddLFxuICBwaG9uZTogWydidXllclBob25lJywgJ3Bob25lJywgJ3RlbGVwaG9uZSddLFxufTtcbiJdfQ==
|
|
@@ -13,4 +13,4 @@ export const REQUEST_STATUSES = [
|
|
|
13
13
|
* dedicado `val-emoji-rating`, nunca el form genérico. Ver ADR-092.
|
|
14
14
|
*/
|
|
15
15
|
export const FIELD_TYPE_EMOJI_RATING = 'EMOJI_RATING';
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFvQjtJQUMvQyxTQUFTO0lBQ1QsV0FBVztJQUNYLFVBQVU7SUFDVixVQUFVO0lBQ1YsV0FBVztJQUNYLFFBQVE7Q0FDVCxDQUFDO0FBNENGOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUmVxdWVzdFN0YXR1cyA9XG4gIHwgJ3BlbmRpbmcnXG4gIHwgJ2luX3JldmlldydcbiAgfCAnYXBwcm92ZWQnXG4gIHwgJ3JlamVjdGVkJ1xuICB8ICdjYW5jZWxsZWQnXG4gIHwgJ2Nsb3NlZCc7XG5cbmV4cG9ydCBjb25zdCBSRVFVRVNUX1NUQVRVU0VTOiBSZXF1ZXN0U3RhdHVzW10gPSBbXG4gICdwZW5kaW5nJyxcbiAgJ2luX3JldmlldycsXG4gICdhcHByb3ZlZCcsXG4gICdyZWplY3RlZCcsXG4gICdjYW5jZWxsZWQnLFxuICAnY2xvc2VkJyxcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdEFjdG9yIHtcbiAgdXNlcklkPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBob25lPzogc3RyaW5nO1xuICBoYW5kbGU/OiBzdHJpbmc7XG4gIGF2YXRhclVybD86IHN0cmluZztcbiAgYXZhdGFyVGh1bWJuYWlsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcFJlcXVlc3Qge1xuICBpZDogc3RyaW5nO1xuICBhcHBJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHN0YXR1czogUmVxdWVzdFN0YXR1cztcbiAgdGl0bGU6IHN0cmluZztcbiAgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdGFncz86IHN0cmluZ1tdO1xuICBwcmlvcml0eT86IHN0cmluZztcbiAgc3VibWl0dGVyOiBSZXF1ZXN0QWN0b3I7XG4gIGFzc2lnbmVlPzogUmVxdWVzdEFjdG9yO1xuICAvKiogQ29waWFkbyBkZWwgUmVxdWVzdFR5cGVDb25maWcgYWwgY3JlYXIg4oCUIG5vIGxvIG1hbmRhIHF1aWVuIHJlc3BvbmRlLiAqL1xuICBlbnRpdHlSZWY/OiBFbnRpdHlSZWY7XG4gIGR1ZUF0Pzogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG4gIGNsb3NlZEF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RDb21tZW50IHtcbiAgY29tbWVudElkOiBzdHJpbmc7XG4gIHJlcXVlc3RJZDogc3RyaW5nO1xuICBhdXRob3I6IFJlcXVlc3RBY3RvcjtcbiAgYm9keTogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgRmllbGRPcHRpb24gPSBGb3JtRmllbGRPcHRpb247XG5leHBvcnQgdHlwZSBGaWVsZFNjaGVtYURlZiA9IEZvcm1GaWVsZFNjaGVtYURlZjtcblxuLyoqXG4gKiBUaXBvIGRlIHByZWd1bnRhIGRlIGVzY2FsYSBjb3J0YSBjb24gZW1vamkgKDMtNSBjYXJhcykuIE5PIGVzIHVubyBkZSBsb3NcbiAqIHRpcG9zIHF1ZSBgRm9ybVNjaGVtYUJ1aWxkZXJTZXJ2aWNlLmJ1aWxkRm9ybWAgc2FiZSBydXRlYXIgYSBgdmFsLWZvcm1gIOKAlFxuICogdW4gdGlwbyBzaW4gbWFwZW8gY2FlIGEgdGV4dG8gcGxhbm8gYWjDrS4gUmVuZGVyaXphcmxvIHJlcXVpZXJlIGVsIHdpZGdldFxuICogZGVkaWNhZG8gYHZhbC1lbW9qaS1yYXRpbmdgLCBudW5jYSBlbCBmb3JtIGdlbsOpcmljby4gVmVyIEFEUi0wOTIuXG4gKi9cbmV4cG9ydCBjb25zdCBGSUVMRF9UWVBFX0VNT0pJX1JBVElORyA9ICdFTU9KSV9SQVRJTkcnO1xuXG4vKiogSWRlbnRpZmljYSBsYSBlbnRpZGFkIGRlIGRvbWluaW8gYSBsYSBxdWUgcGVydGVuZWNlIHVuIHRpcG8gZGUgc29saWNpdHVkXG4gKiAodW4gZXZlbnRvLCB1bmEgYWRvcGNpw7NuLCB1bmEgcmVjZXRhKS4gT3BjaW9uYWwg4oCUIGxhIG1heW9yw61hIGRlIGxvcyB0aXBvc1xuICogKHRpY2tldHMgZGUgc29wb3J0ZSwgcG9zdHVsYWNpb25lcykgbm8gbGEgbmVjZXNpdGFuIHBvcnF1ZSBlbCB0aXBvIFlBIGVzIGxhXG4gKiBlbnRpZGFkLiBNaXNtbyBzaGFwZSBxdWUgZWwgYEVudGl0eVJlZmAgZGUgZmVlZGJhY2svY2hhdCDigJQgbm8gc2UgaW1wb3J0YVxuICogbmluZ3VubyBkZSBlc29zIHBhcXVldGVzIHBhcmEgZXN0bzogZXMgdW4gc3RydWN0IGRlIDIgY2FtcG9zLCByZXBsaWNhcmxvIGVzXG4gKiBtw6FzIGJhcmF0byBxdWUgYWNvcGxhciBkb21pbmlvcyBkZSBuZWdvY2lvIHBvciB1biB0aXBvIHRyaXZpYWwuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVJlZiB7XG4gIGVudGl0eVR5cGU6IHN0cmluZztcbiAgZW50aXR5SWQ6IHN0cmluZztcbn1cblxuLyoqIFF1acOpbiBwdWVkZSBsZWVyIHVuIHRpcG8gZGUgc29saWNpdHVkICh5IHN1cyBzb2xpY2l0dWRlcyBww7pibGljYXMpLiAqL1xuZXhwb3J0IHR5cGUgUmVxdWVzdFZpc2liaWxpdHkgPSAnUFVCTElDJyB8ICdBVVRIRU5USUNBVEVEJyB8ICdPUkcnIHwgJ0lOVEVSTkFMJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0VHlwZUNvbmZpZyB7XG4gIHR5cGVJZDogc3RyaW5nO1xuICBhcHBJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICAvKiogTm9tYnJlIGRlbCB0aXBvLCBlc2NyaXRvIHBvciBsYSBvcmdhbml6YWNpw7NuOiBubyBzZSB0cmFkdWNlLiAqL1xuICBsYWJlbDogc3RyaW5nO1xuICAvKiogQmFqYWRhIGRlbCBlbnVuY2lhZG8gKGVqLiBlbmN1ZXN0YXMpLiBMYWJlbCB5YSBjdWJyZSBlbCB0w610dWxvLiAqL1xuICBzdWJ0aXRsZT86IHN0cmluZztcbiAgZW50aXR5UmVmPzogRW50aXR5UmVmO1xuICBjcmVhdGVkQnk/OiBSZXF1ZXN0QWN0b3I7XG4gIC8qKlxuICAgKiB0cnVlID0gY2FkYSBlbnbDrW8gc2UgYWdyZWdhLCBubyBzZSByZXZpc2EgdW5vIHBvciB1bm8gKGVqLiBlbmN1ZXN0YXMpLlxuICAgKiBmYWxzZS91bmRlZmluZWQgKGRlZmF1bHQpID0gY29tcG9ydGFtaWVudG8gaGlzdMOzcmljbzogc2UgcmV2aXNhIGNhZGFcbiAgICogc29saWNpdHVkIChDaGVzZWQgYWRvcGNpb25lcywgT2toZWxpYSByZWNldGFzKS5cbiAgICovXG4gIHNraXBSZXZpZXc/OiBib29sZWFuO1xuICAvKipcbiAgICogdHJ1ZSA9IGVsIGZvcm11bGFyaW8gTk8gcGlkZSBub21icmUgbmkgY29ycmVvIGEgcXVpZW4gcmVzcG9uZGUgc2luIHNlc2nDs24uXG4gICAqIFNpIGhhY2VuIGZhbHRhLCBzZSBhZ3JlZ2FuIGNvbW8gcHJlZ3VudGEg4oCUIGVzbyBlcyBjb25maWd1cmFjacOzbiBkZSBsYVxuICAgKiBlbmN1ZXN0YSwgbm8gdW4gcGVhamUgcXVlIGVsIGZvcm11bGFyaW8gY29icmEgcG9yIHN1IGN1ZW50YS5cbiAgICovXG4gIHNraXBTdWJtaXR0ZXJJZGVudGl0eT86IGJvb2xlYW47XG4gIGZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYURlZltdO1xuICBhbGxvd0Fub255bW91czogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFF1acOpbiBwdWVkZSBsZWVyL2VudmlhciBlc3RlIHRpcG8gKGRlYmUgY29pbmNpZGlyIGNvbiBlbCBiYWNrZW5kKTpcbiAgICogIC0gUFVCTElDICAgICAgICBjdWFscXVpZXJhLCBpbmNsdXNvIHNpbiBsb2dpbiAoYW7Ds25pbW8gc2kgYWxsb3dBbm9ueW1vdXMpLlxuICAgKiAgLSBBVVRIRU5USUNBVEVEIGN1YWxxdWllciB1c3VhcmlvIGxvZ3VlYWRvICsgdmVyaWZpY2FkbywgY3Jvc3Mtb3JnLlxuICAgKiAgLSBPUkcvSU5URVJOQUwgIHNvbG8gbWllbWJyb3MgZGUgbGEgb3JnIGR1ZcOxYS4gRGVmYXVsdCBPUkcuXG4gICAqL1xuICB2aXNpYmlsaXR5PzogUmVxdWVzdFZpc2liaWxpdHk7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbn1cblxuLy8g4pSA4pSAIFJlcXVlc3QgLyBSZXNwb25zZSDilIDilIBcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVSZXF1ZXN0UGF5bG9hZCB7XG4gIHR5cGU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZmllbGRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHRhZ3M/OiBzdHJpbmdbXTtcbiAgcHJpb3JpdHk/OiBzdHJpbmc7XG4gIC8qKiBQYXJhIHNvbGljaXR1ZGVzIGFuw7NuaW1hcyAqL1xuICBzdWJtaXR0ZXI/OiBSZXF1ZXN0QWN0b3I7XG4gIC8qKlxuICAgKiBFbCBgP2k9YCBkZWwgbGluayBxdWUgbGUgbGxlZ8OzIHBvciBjb3JyZW8gYSBxdWllbiByZXNwb25kZS4gQ29uIHRva2VuLCBsYVxuICAgKiBpbnZpdGFjacOzbiBzZSBjb25zdW1lIHkgbm8gYWRtaXRlIHVuYSBzZWd1bmRhIHJlc3B1ZXN0YTsgc2luIHRva2VuIChlbCBRUlxuICAgKiBhYmllcnRvIGRlIHVuIGV2ZW50bykgc2UgcmVzcG9uZGUgc2luIGzDrW1pdGUuXG4gICAqL1xuICBpbnZpdGVUb2tlbj86IHN0cmluZztcbiAgZHVlQXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUmVxdWVzdFBheWxvYWQge1xuICB0aXRsZT86IHN0cmluZztcbiAgZmllbGRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHRhZ3M/OiBzdHJpbmdbXTtcbiAgcHJpb3JpdHk/OiBzdHJpbmc7XG4gIGFzc2lnbmVlPzogUmVxdWVzdEFjdG9yO1xuICBkdWVBdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2l0aW9uUGF5bG9hZCB7XG4gIHN0YXR1czogUmVxdWVzdFN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRDb21tZW50UGF5bG9hZCB7XG4gIGJvZHk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0UmVxdWVzdHNQYXJhbXMge1xuICB0eXBlPzogc3RyaW5nO1xuICBzdGF0dXM/OiBzdHJpbmc7XG4gIGxpbWl0PzogbnVtYmVyO1xuICBuZXh0VG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFJlcXVlc3RzUmVzcG9uc2Uge1xuICByZXF1ZXN0czogQXBwUmVxdWVzdFtdO1xuICBuZXh0VG9rZW4/OiBzdHJpbmc7XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdENvbW1lbnRzUmVzcG9uc2Uge1xuICBjb21tZW50czogUmVxdWVzdENvbW1lbnRbXTtcbiAgY291bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0UmVxdWVzdFR5cGVzUmVzcG9uc2Uge1xuICB0eXBlczogUmVxdWVzdFR5cGVDb25maWdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVSZXF1ZXN0VHlwZVBheWxvYWQge1xuICB0eXBlSWQ/OiBzdHJpbmc7IC8vIG9wY2lvbmFsOiBiYWNrZW5kIGdlbmVyYSBkZXNkZSBsYWJlbCBzaSBubyBzZSBlbnbDrWFcbiAgLyoqIE5vbWJyZSBkZWwgdGlwbywgZXNjcml0byBwb3IgbGEgb3JnYW5pemFjacOzbjogbm8gc2UgdHJhZHVjZS4gKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgc3VidGl0bGU/OiBzdHJpbmc7XG4gIGVudGl0eVJlZj86IEVudGl0eVJlZjtcbiAgc2tpcFJldmlldz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiB0cnVlID0gZWwgZm9ybXVsYXJpbyBOTyBwaWRlIG5vbWJyZSBuaSBjb3JyZW8gYSBxdWllbiByZXNwb25kZSBzaW4gc2VzacOzbi5cbiAgICogU2kgaGFjZW4gZmFsdGEsIHNlIGFncmVnYW4gY29tbyBwcmVndW50YSDigJQgZXNvIGVzIGNvbmZpZ3VyYWNpw7NuIGRlIGxhXG4gICAqIGVuY3Vlc3RhLCBubyB1biBwZWFqZSBxdWUgZWwgZm9ybXVsYXJpbyBjb2JyYSBwb3Igc3UgY3VlbnRhLlxuICAgKi9cbiAgc2tpcFN1Ym1pdHRlcklkZW50aXR5PzogYm9vbGVhbjtcbiAgZmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hRGVmW107XG4gIGFsbG93QW5vbnltb3VzOiBib29sZWFuO1xuICB2aXNpYmlsaXR5PzogUmVxdWVzdFZpc2liaWxpdHk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUmVxdWVzdFR5cGVQYXlsb2FkIHtcbiAgLyoqIE5vbWJyZSBkZWwgdGlwbywgZXNjcml0byBwb3IgbGEgb3JnYW5pemFjacOzbjogbm8gc2UgdHJhZHVjZS4gKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgc3VidGl0bGU/OiBzdHJpbmc7XG4gIGVudGl0eVJlZj86IEVudGl0eVJlZjtcbiAgc2tpcFJldmlldz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiB0cnVlID0gZWwgZm9ybXVsYXJpbyBOTyBwaWRlIG5vbWJyZSBuaSBjb3JyZW8gYSBxdWllbiByZXNwb25kZSBzaW4gc2VzacOzbi5cbiAgICogU2kgaGFjZW4gZmFsdGEsIHNlIGFncmVnYW4gY29tbyBwcmVndW50YSDigJQgZXNvIGVzIGNvbmZpZ3VyYWNpw7NuIGRlIGxhXG4gICAqIGVuY3Vlc3RhLCBubyB1biBwZWFqZSBxdWUgZWwgZm9ybXVsYXJpbyBjb2JyYSBwb3Igc3UgY3VlbnRhLlxuICAgKi9cbiAgc2tpcFN1Ym1pdHRlcklkZW50aXR5PzogYm9vbGVhbjtcbiAgZmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hRGVmW107XG4gIGFsbG93QW5vbnltb3VzOiBib29sZWFuO1xuICB2aXNpYmlsaXR5PzogUmVxdWVzdFZpc2liaWxpdHk7XG59XG5pbXBvcnQgdHlwZSB7XG4gIEZpZWxkT3B0aW9uIGFzIEZvcm1GaWVsZE9wdGlvbixcbiAgRmllbGRTY2hlbWFEZWYgYXMgRm9ybUZpZWxkU2NoZW1hRGVmLFxufSBmcm9tICcuLi9mb3Jtcy90eXBlcyc7XG4iXX0=
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.996';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC45OTYnO1xuIl19
|