@sambath999/localize-token 12.4.8 → 12.4.11
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/bundles/sambath999-localize-token.umd.js +98 -374
- package/bundles/sambath999-localize-token.umd.js.map +1 -1
- package/esm2015/localize-api-token/localize-api-token.module.js +1 -1
- package/esm2015/localize-api-token/localize-api-token.service.js +1 -1
- package/esm2015/localize-logindlg/localize-logindlg.component.js +1 -1
- package/esm2015/localize-logindlg/localize-logindlg.module.js +1 -1
- package/esm2015/localize-logindlg/localize-logindlg.service.js +1 -1
- package/esm2015/localize-token/helpers/interfaces.js +1 -1
- package/esm2015/localize-token/helpers/localize.api.assets.js +1 -1
- package/esm2015/localize-token/helpers/loccalize.api.helper.js +2 -2
- package/esm2015/localize-token/localize.api.service.js +35 -9
- package/esm2015/localize-token/localize.token.js +3 -1
- package/esm2015/localize-token/localize.token.module.js +1 -1
- package/esm2015/localize-token/localize.token.service.js +6 -4
- package/esm2015/localize-token/localize.token.storage.js +1 -1
- package/esm2015/public-api.js +1 -1
- package/esm2015/sambath999-localize-token.js +1 -1
- package/fesm2015/sambath999-localize-token.js +38 -8
- package/fesm2015/sambath999-localize-token.js.map +1 -1
- package/localize-token/helpers/interfaces.d.ts +1 -0
- package/localize-token/localize.api.service.d.ts +7 -3
- package/localize-token/localize.token.d.ts +13 -0
- package/localize-token/localize.token.service.d.ts +4 -2
- package/package.json +1 -1
- package/sambath999-localize-token.metadata.json +1 -1
|
@@ -31,4 +31,4 @@ LocalizeApiTokenService.ctorParameters = () => [
|
|
|
31
31
|
{ type: LocalizeApiService },
|
|
32
32
|
{ type: LocalizeLogindlgService }
|
|
33
33
|
];
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtYXBpLXRva2VuLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9BTkdVTEFSL0xJQlJBUklFUy9sb2NhbGl6ZS50b2tlbi4xMi4xLjAvZGV2L3NyYy9sb2NhbGl6ZS1hcGktdG9rZW4vbG9jYWxpemUtYXBpLXRva2VuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUV6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU1RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7QUFLaEYsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUFZLFlBQWtDLEVBQzVDLFVBQThCLEVBQzlCLGtCQUEyQztRQUMzQyxJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLGtCQUFrQixDQUFDO0lBQ3hDLENBQUM7SUFFRCxVQUFVLENBQUMsV0FBaUMsRUFBRSxTQUE4QjtRQUMxRSw0RUFBNEU7UUFDNUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFN0Isd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXpCLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0VBQXdFLENBQUMsQ0FBQztJQUV4RixDQUFDOzs7O1lBekJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBSlEsb0JBQW9CO1lBRnBCLGtCQUFrQjtZQUZsQix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2FsaXplTG9naW5kbGdTZXJ2aWNlIH0gZnJvbSAnLi4vbG9jYWxpemUtbG9naW5kbGcvbG9jYWxpemUtbG9naW5kbGcuc2VydmljZSc7XHJcbmltcG9ydCB7IElMb2NhbGl6ZUFwaUNvbmZpZ3MgfSBmcm9tICcuLi9sb2NhbGl6ZS10b2tlbi9oZWxwZXJzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZUFwaVNlcnZpY2UgfSBmcm9tICcuLi9sb2NhbGl6ZS10b2tlbi9sb2NhbGl6ZS5hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IElMb2NhbGl6ZVRva2VuQ29uZmlnIH0gZnJvbSAnLi4vbG9jYWxpemUtdG9rZW4vbG9jYWxpemUudG9rZW4nO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZVRva2VuU2VydmljZSB9IGZyb20gJy4uL2xvY2FsaXplLXRva2VuL2xvY2FsaXplLnRva2VuLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemVBcGlUb2tlblNlcnZpY2Uge1xyXG4gIHJlYWRvbmx5IGFwaTogTG9jYWxpemVBcGlTZXJ2aWNlO1xyXG4gIHJlYWRvbmx5IHRva2VuOiBMb2NhbGl6ZVRva2VuU2VydmljZTtcclxuICByZWFkb25seSBsb2dpbkRpYWxvZzogTG9jYWxpemVMb2dpbmRsZ1NlcnZpY2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHRva2VuU2VydmljZTogTG9jYWxpemVUb2tlblNlcnZpY2UsXHJcbiAgICBhcGlTZXJ2aWNlOiBMb2NhbGl6ZUFwaVNlcnZpY2UsXHJcbiAgICBsb2dpbkRpYWxvZ1NlcnZpY2U6IExvY2FsaXplTG9naW5kbGdTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmFwaSA9IGFwaVNlcnZpY2U7XHJcbiAgICB0aGlzLnRva2VuID0gdG9rZW5TZXJ2aWNlO1xyXG4gICAgdGhpcy5sb2dpbkRpYWxvZyA9IGxvZ2luRGlhbG9nU2VydmljZTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemUodG9rZW5Db25maWc6IElMb2NhbGl6ZVRva2VuQ29uZmlnLCBhcGlDb25maWc6IElMb2NhbGl6ZUFwaUNvbmZpZ3MpIHtcclxuICAgIC8vIEluaXRpYWxpemUgdGhlIExvY2FsaXplVG9rZW5TZXJ2aWNlIHdpdGggdGhlIHByb3ZpZGVkIHRva2VuIGNvbmZpZ3VyYXRpb25cclxuICAgIHRoaXMudG9rZW4uaW5pdCh0b2tlbkNvbmZpZyk7XHJcblxyXG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgTG9jYWxpemVBcGlTZXJ2aWNlIHdpdGggdGhlIHByb3ZpZGVkIEFQSSBjb25maWd1cmF0aW9uXHJcbiAgICB0aGlzLmFwaS5pbml0KGFwaUNvbmZpZyk7XHJcblxyXG4gICAgY29uc29sZS5sb2coJ0xvY2FsaXplQXBpVG9rZW5TZXJ2aWNlIGluaXRpYWxpemVkIHdpdGggdG9rZW4gYW5kIEFQSSBjb25maWd1cmF0aW9ucy4nKTtcclxuXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -420,4 +420,4 @@ LocalizeLogindlgComponent.ctorParameters = () => [
|
|
|
420
420
|
{ type: HttpClient },
|
|
421
421
|
{ type: DomSanitizer }
|
|
422
422
|
];
|
|
423
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtbG9naW5kbGcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xvY2FsaXplLWxvZ2luZGxnL2xvY2FsaXplLWxvZ2luZGxnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlFLE9BQU8sRUFBYyxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUF1VHpELE1BQU0sT0FBTyx5QkFBeUI7SUFjcEMsWUFDbUIsY0FBOEIsRUFDOUIsR0FBc0IsRUFDdEIsTUFBd0IsRUFDeEIsU0FBOEIsRUFDOUIsWUFBa0MsRUFDbEMsVUFBc0IsRUFDdEIsU0FBdUI7UUFOdkIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQWtCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQXFCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFzQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFwQmpDLGVBQVUsR0FBRyxZQUFZLENBQUM7UUFHbkMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBa0doQixnQkFB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1QUjthQWdFRjs7O1lBM1RRLGNBQWM7WUFMckIsaUJBQWlCO1lBTVcsZ0JBQWdCO1lBQXJDLG1CQUFtQjtZQUNQLG9CQUFvQjtZQVRoQyxVQUFVO1lBWVYsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XHJcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tIFwicHJpbWVuZy9keW5hbWljZGlhbG9nXCI7XHJcbmltcG9ydCB7IEp3dFBheWxvYWQsIExvY2FsaXplVG9rZW5TZXJ2aWNlIH0gZnJvbSBcIi4uL2xvY2FsaXplLXRva2VuL2xvY2FsaXplLnRva2VuLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTG9jYWxpemVUb2tlbiB9IGZyb20gXCIuLi9sb2NhbGl6ZS10b2tlbi9sb2NhbGl6ZS50b2tlblwiO1xyXG5pbXBvcnQgeyBJTG9naW5EaWFsb2dDb25maWcsIElMb2dpbkRpYWxvZ1Byb3BlcnRpZXMgfSBmcm9tIFwiLi9sb2NhbGl6ZS1sb2dpbmRsZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdHlsZXM6IFtgXHJcbiAgI2xvZ2luLWRsZy13cmFwIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWF4LXdpZHRoOiA0MDBweDtcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgcGFkZGluZzogMzBweDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcbiAgXHJcbiAgLmxvZ2luLWRsZy1lbG0ge1xyXG4gICAgbWFyZ2luLXRvcDogMXJlbTtcclxuICB9XHJcblxyXG4gIC5sb2dpbi1kbGctZWxtLmxvZ2luLWRsZy1zdWdnZXN0IHtcclxuICAgIGRpc3BsYXk6IGZsZXggO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNkZGQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcclxuICAgIGJhY2tncm91bmQ6ICNmOWY5Zjk7XHJcbiAgICBib3gtc2hhZG93OiAxcHggNXB4IDEwcHggLTEycHggIzAwMDtcclxuICB9XHJcbiAgXHJcbiAgI2xvZ2luLWRsZy1oZWFkZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgfVxyXG4gIFxyXG4gICNsb2dpbi1kbGctaGVhZGVyIGgzIHtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgICBjb2xvcjogb3JhbmdlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuICBcclxuICAjbG9naW4tbG9nbyB7XHJcbiAgICBoZWlnaHQ6IDU1cHg7XHJcbiAgICB3aWR0aDogNTVweDtcclxuICAgIC8qIGJhY2tncm91bmQ6IHVybChcIi9hc3NldHMvaW1hZ2VzL2xvZ28tMzAwcHgucG5nXCIpIG5vLXJlcGVhdDsgKi9cclxuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbiAhaW1wb3J0YW50O1xyXG4gIH1cclxuICBcclxuICAjbG9naW4tZGxnLWNvbnRlbnQgLnAtaW5wdXRncm91cCB7XHJcbiAgICBoZWlnaHQ6IDQ1cHg7XHJcbiAgfVxyXG4gIFxyXG4gICNsb2dpbi1kbGctY29udGVudCAucC1pbnB1dGdyb3VwIC5wLWlucHV0Z3JvdXAtYWRkb24ge1xyXG4gICAgaGVpZ2h0OiA0NXB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweCAwIDAgMTVweDtcclxuICAgIHdpZHRoOiA1MHB4O1xyXG4gIH1cclxuICAjbG9naW4tZGxnLWNvbnRlbnQgKntcclxuICAgIGZvbnQtc2l6ZTogLjlyZW07XHJcbiAgICAvKiBmb250LWZhbWlseTogJ0xleGVuZCcsICdSb2JvdG8nLCBzYW5zLXNlcmlmLCAnbWF0ZXJpYWwtaWNvbnMtcm91bmQnOyAqL1xyXG4gIH1cclxuICBcclxuICAjbG9naW4tZGxnLWNvbnRlbnQgLnAtaW5wdXRncm91cCAucC1pbnB1dGdyb3VwLWFkZG9uICoge1xyXG4gICAgZm9udC1zaXplOiAxcmVtO1xyXG4gIH1cclxuICBcclxuICAjbG9naW4tZGxnLWNvbnRlbnQgLnAtaW5wdXRncm91cCBpbnB1dCB7XHJcbiAgICBoZWlnaHQ6IDQ1cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwIDE1cHggMTVweCAwO1xyXG4gIH1cclxuICBcclxuICAjbG9naW4tZGxnLWNvbnRlbnQgYnV0dG9uIHtcclxuICAgIGhlaWdodDogNDVweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XHJcbiAgfVxyXG4gIFxyXG4gIC8qY2hlY2sgYW5pbWF0aW9uIGJsb2NrKi9cclxuICBcclxuICAuY2hlY2stYW5pbWF0aW9uLXdyYXAge1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDIwMHB4KTtcclxuICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xyXG4gIH1cclxuICBcclxuICAuY2hlY2stbWFpbi1jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMHZoO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZmxvdzogY29sdW1uO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIH1cclxuICBcclxuICAuY2hlY2stY29udGFpbmVyIHtcclxuICAgIHdpZHRoOiA2LjI1cmVtO1xyXG4gICAgaGVpZ2h0OiA3LjVyZW07XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1mbG93OiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIH1cclxuICBcclxuICAuY2hlY2stY29udGFpbmVyIC5jaGVjay1iYWNrZ3JvdW5kIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjI1cmVtKTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20gcmlnaHQsICM1ZGU1OTMsICM0MWQ2N2MpO1xyXG4gICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggNjVweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIGluc2V0LCAwcHggMHB4IDBweCA2NXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSkgaW5zZXQ7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuODQpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYW5pbWF0aW9uOiBhbmltYXRlQ29udGFpbmVyIDAuNzVzIGVhc2Utb3V0IGZvcndhcmRzIDAuNzVzO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG4gIFxyXG4gIC5jaGVjay1jb250YWluZXIgLmNoZWNrLWJhY2tncm91bmQgc3ZnIHtcclxuICAgIHdpZHRoOiA2NSU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMC4yNXJlbSk7XHJcbiAgICBzdHJva2UtZGFzaGFycmF5OiA4MDtcclxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiA4MDtcclxuICAgIGFuaW1hdGlvbjogYW5pbWF0ZUNoZWNrIDAuMzVzIGZvcndhcmRzIDEuMjVzIGVhc2Utb3V0O1xyXG4gICAgbWluLXdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG4gIFxyXG4gIC5jaGVjay1jb250YWluZXIgLmNoZWNrLXNoYWRvdyB7XHJcbiAgICBib3R0b206IGNhbGMoLTE1JSAtIDVweCk7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNsb3Nlc3Qtc2lkZSwgcmdiYSg3MywgMjE4LCAxMzEsIDEpLCB0cmFuc3BhcmVudCk7XHJcbiAgICBhbmltYXRpb246IGFuaW1hdGVTaGFkb3cgMC43NXMgZWFzZS1vdXQgZm9yd2FyZHMgMC43NXM7XHJcbiAgfVxyXG4gIFxyXG4gIEBrZXlmcmFtZXMgYW5pbWF0ZUNvbnRhaW5lciB7XHJcbiAgICAwJSB7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XHJcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDY1cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSBpbnNldCwgMHB4IDBweCAwcHggNjVweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIGluc2V0O1xyXG4gICAgfVxyXG4gIFxyXG4gICAgMjUlIHtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xyXG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCA2NXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSkgaW5zZXQsIDBweCAwcHggMHB4IDY1cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSBpbnNldDtcclxuICAgIH1cclxuICBcclxuICAgIDQzLjc1JSB7XHJcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XHJcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDQzLjMzNHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSkgaW5zZXQsIDBweCAwcHggMHB4IDY1cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSBpbnNldDtcclxuICAgIH1cclxuICBcclxuICAgIDYyLjUlIHtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSkgaW5zZXQsIDBweCAwcHggMHB4IDIxLjY2N3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSkgaW5zZXQ7XHJcbiAgICB9XHJcbiAgXHJcbiAgICA4MS4yNSUge1xyXG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSkgaW5zZXQ7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAxMDAlIHtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSkgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIGluc2V0O1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBAa2V5ZnJhbWVzIGFuaW1hdGVDaGVjayB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDgwO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgdG8ge1xyXG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgQGtleWZyYW1lcyBhbmltYXRlU2hhZG93IHtcclxuICAgIDAlIHtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGhlaWdodDogMTUlO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgMjUlIHtcclxuICAgICAgb3BhY2l0eTogMC4yNTtcclxuICAgIH1cclxuICBcclxuICAgIDQzLjc1JSB7XHJcbiAgICAgIHdpZHRoOiA0MCU7XHJcbiAgICAgIGhlaWdodDogNyU7XHJcbiAgICAgIG9wYWNpdHk6IDAuMzU7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAxMDAlIHtcclxuICAgICAgd2lkdGg6IDg1JTtcclxuICAgICAgaGVpZ2h0OiAxNSU7XHJcbiAgICAgIG9wYWNpdHk6IDAuMjU7XHJcbiAgICB9XHJcbiAgfVxyXG4gICNsb2dpbi1kbGctd3JhcCAubG9hZGVyLXdyYXAge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGhlaWdodDoxMDAlO1xyXG4gICAgd2lkdGg6MTAwJTtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB6LWluZGV4OiAxMDA7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmNDI7XHJcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMXB4KTtcclxuICB9XHJcblxyXG4gICNsb2dpbi1kbGctd3JhcCAubG9naW4tZGxnLWxvYWRlciB7XHJcbiAgICBib3JkZXI6IDE1cHggc29saWQgI2U3ZTdlNztcclxuICAgIGJvcmRlci10b3A6IDE1cHggc29saWQgIzUyZGJhMTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIHdpZHRoOiAxMDBweDtcclxuICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICBhbmltYXRpb246IHNwaW5sb2FkZXIgMnMgbGluZWFyIGluZmluaXRlO1xyXG4gIH1cclxuXHJcbiAgI2xvZ2luLWRsZy13cmFwIC5sb2FkZXItd3JhcDo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogNzBweDtcclxuICAgIGhlaWdodDogNzBweDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG4gICAgei1pbmRleDogMTtcclxuICAgIGJvcmRlcjogMTVweCBzb2xpZCAjZTdlN2U3MDA7XHJcbiAgICBib3JkZXItdG9wOiAxNXB4IHNvbGlkICM1MmRiYTFjOTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGFuaW1hdGlvbjogc3BpbmxvYWRlciAuNzVzIGxpbmVhciBpbmZpbml0ZTtcclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgc3BpbmxvYWRlciB7XHJcbiAgICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XHJcbiAgICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxyXG4gIH1cclxuICBgXSxcclxuICB0ZW1wbGF0ZTogYDxwLXRvYXN0IGtleT1cIiRsb2dpbi1kbGdcIiBwb3NpdGlvbj1cInRvcC1jZW50ZXJcIj48L3AtdG9hc3Q+XHJcbiAgPGRpdiBpZD1cImxvZ2luLWRsZy13cmFwXCI+XHJcbiAgICA8ZGl2IGlkPVwibG9naW4tZGxnLWhlYWRlclwiPlxyXG4gICAgICA8ZGl2IGlkPVwibG9naW4tbG9nb1wiIGNsYXNzPVwicC1tYi0yXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiB1cmwoJ3t7cHJvcGVydGllcy5sb2dvSW1hZ2V9fScpIG5vLXJlcGVhdFwiPjwvZGl2PlxyXG4gICAgICA8aDMgKm5nSWY9XCIhc3VjY2Vzc1wiIFtpbm5lckhUTUxdPVwic2FuaXRpemVkVGl0bGVcIj48L2gzPlxyXG4gICAgICA8aDMgKm5nSWY9XCJzdWNjZXNzXCIgc3R5bGU9XCJjb2xvcjpncmVlbiAhaW1wb3J0YW50O1wiPnt7cHJvcGVydGllcy5sb2dpblN1Y2Nlc3NNZXNzYWdlfX08L2gzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGlkPVwibG9naW4tZGxnLWNvbnRlbnRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzdWNjZXNzXCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cImxvYWRlci13cmFwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4tZGxnLWxvYWRlclwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi1kbGctZWxtXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1pbnB1dGdyb3VwXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1pbnB1dGdyb3VwLWFkZG9uXCI+XHJcbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1yb3VuZFwiPnBlcnNvbjwvaT5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8aW5wdXQgZGlzYWJsZWQgcElucHV0VGV4dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwie3twcm9wZXJ0aWVzLnVzZXJuYW1lPy5wbGFjZUhvbGRlcn19XCIgW3ZhbHVlXT1cImRlY29kZVRva2VuPy5lbWFpbFwiIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4tZGxnLWVsbVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInAtaW5wdXRncm91cFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtaW5wdXRncm91cC1hZGRvblwiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtcm91bmRcIj5sb2NrPC9pPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxpbnB1dCBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIChrZXlkb3duLmVudGVyKT1cImNsaWNrTG9naW4oKVwiIHBJbnB1dFRleHQgdHlwZT1cInBhc3N3b3JkXCIgXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3Byb3BlcnRpZXMucGFzc3dvcmQ/LnBsYWNlSG9sZGVyfX1cIiBbKG5nTW9kZWwpXT1cInBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICBhdXRvZm9jdXMgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi1kbGctZWxtXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgcEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbGFiZWw9XCJ7e3Byb3BlcnRpZXMubG9naW5CdXR0b24/LnBsYWNlSG9sZGVyfX1cIiAoY2xpY2spPVwiY2xpY2tMb2dpbigpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFwYXNzd29yZCB8fCBsb2FkaW5nXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvZ2luLWRsZy1lbG0gbG9naW4tZGxnLXN1Z2dlc3RcIiBzdHlsZT1cImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczogY2VudGVyO3VzZXItc2VsZWN0OiBub25lO1wiPlxyXG4gICAgICAgICAgPHNwYW4+e3twcm9wZXJ0aWVzLmxvZ291dEJ1dHRvbj8ubWVzc2FnZX19PC9zcGFuPlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInAtYnV0dG9uLXRleHRcIiBwQnV0dG9uIHR5cGU9XCJidXR0b25cIiBsYWJlbD1cInt7cHJvcGVydGllcy5sb2dvdXRCdXR0b24/LnBsYWNlSG9sZGVyfX1cIiBcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrTG9nb3V0KClcIj48L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWNjZXNzXCI+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6MzVweDtcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2stYW5pbWF0aW9uLXdyYXBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVjay1tYWluLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2stY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrLWJhY2tncm91bmRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCA2NSA1MVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTcgMjVMMjcuMzA3NyA0NEw1OC41IDdcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5gLFxyXG4gIHNlbGVjdG9yOiBcImFwcC1sb2NhbGl6ZS1sb2dpbmRsZ1wiLFxyXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemVMb2dpbmRsZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgbWVzc2FnZUtleSA9IFwiJGxvZ2luLWRsZ1wiO1xyXG4gIHBhc3N3b3JkOiBhbnk7XHJcbiAgcmVhZG9ubHkgZGVjb2RlVG9rZW46IEp3dFBheWxvYWQgfCBudWxsO1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBzdWNjZXNzID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBnZXQgY29uZmlnKCkgeyByZXR1cm4gdGhpcy50b2tlblNlcnZpY2UuY29uZmlnOyB9XHJcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dpbkNvbmZpZzogSUxvZ2luRGlhbG9nQ29uZmlnXHJcblxyXG4gIHByaXZhdGUgbG9nb3V0PzogKCkgPT4gYW55XHJcbiAgcHJpdmF0ZSBsb2dpblVybD86IHN0cmluZztcclxuICByZWFkb25seSBwcm9wZXJ0aWVzOiBJTG9naW5EaWFsb2dQcm9wZXJ0aWVzO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2R0OiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGxnUmVmOiBEeW5hbWljRGlhbG9nUmVmLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkbGdDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRva2VuU2VydmljZTogTG9jYWxpemVUb2tlblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplcjogRG9tU2FuaXRpemVyXHJcbiAgKSB7XHJcbiAgICB0aGlzLmRlY29kZVRva2VuID0gdGhpcy50b2tlblNlcnZpY2UuZGVjb2RlUmVmcmVzaFRva2VuO1xyXG4gICAgdGhpcy5sb2dpbkNvbmZpZyA9IHRoaXMuZGxnQ29uZmlnLmRhdGEubG9naW5Db25maWc7XHJcbiAgICB0aGlzLnByb3BlcnRpZXMgPSB0aGlzLmxvZ2luQ29uZmlnLnByb3BlcnRpZXMhO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRsZ0NvbmZpZy5jbG9zYWJsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dvdXQgPSB0aGlzLmxvZ2luQ29uZmlnLmxvZ291dEZ1bmM7XHJcbiAgICB0aGlzLmxvZ2luVXJsID0gdGhpcy5sb2dpbkNvbmZpZy5sb2dpblVybFxyXG5cclxuICAgIGlmICghdGhpcy5kZWNvZGVUb2tlbikge1xyXG4gICAgICB0aGlzLnNob3dNZXNzYWdlKFwiZXJyb3JcIiwgXCJUb2tlbiBpcyBpbnZhbGlkXCIpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubG9nb3V0Py4oKSwgMjAwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmNkdC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBjbGlja0xvZ2luKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzVmFsaWRQYXNzd29yZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zaG93TWVzc2FnZShcImVycm9yXCIsIFwiUGFzc3dvcmQgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYXQgbGVhc3QgNiBjaGFyYWN0ZXJzXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBjb25zdCBsb2dpblJlcyA9IGF3YWl0IHRoaXMubG9naW4oKTtcclxuICAgIGlmICghbG9naW5SZXM/LnN0YXR1cykge1xyXG4gICAgICByZXR1cm4gdGhpcy5zaG93TWVzc2FnZShcImVycm9yXCIsIGxvZ2luUmVzLm1lc3NhZ2UgPz8gXCJBbiBlcnJvciBvY2N1cnJlZFwiKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRva2VuU2VydmljZS5hY2Nlc3NUb2tlbiA9IGxvZ2luUmVzLnRva2Vucy5hY2Nlc3NUb2tlbjtcclxuICAgIGNvbnN0IGNvb2tpZU9wdGlvbnMgPSB7IGV4cGlyZXM6IHRoaXMubG9naW5Db25maWcuZXhwaXJlID8/IDM2NSB9XHJcbiAgICBMb2NhbGl6ZVRva2VuLnN0b3JhZ2Uuc2V0KHRoaXMuY29uZmlnLnJlZnJlc2hUb2tlbj8ubmFtZSB8fCAnJywgbG9naW5SZXMudG9rZW5zLnJlZnJlc2hUb2tlbiwgY29va2llT3B0aW9ucyk7XHJcbiAgICB0aGlzLnN1Y2Nlc3MgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZGxnQ29uZmlnLmRpc21pc3NhYmxlTWFzayA9IHRydWU7XHJcbiAgICAgIHRoaXMuZGxnQ29uZmlnLm1vZGFsID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZGxnUmVmLmNsb3NlKHRydWUpO1xyXG4gICAgfSwgMjAwMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGxvZ2luKCkge1xyXG4gICAgaWYgKCF0aGlzLmxvZ2luVXJsPy50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuc2hvd01lc3NhZ2UoXCJlcnJvclwiLCBcIkxvZ2luIHVybCBpcyByZXF1aXJlZFwiKTtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTG9naW4gdXJsIGlzIHJlcXVpcmVkXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcblxyXG4gICAgICBpZiAodGhpcy5sb2dpbkNvbmZpZy5sb2dpbkZ1bmN0aW9uKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJVc2luZyBjdXN0b20gbG9naW4gZnVuY3Rpb25cIik7XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMubG9naW5Db25maWcubG9naW5GdW5jdGlvbih0aGlzLmRlY29kZVRva2VuPy5lbWFpbCA/PyAnJywgdGhpcy5wYXNzd29yZC50cmltKCksIHRoaXMuZ2V0SGVhZGVycygpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT5cclxuICAgICAgICB0aGlzLmh0dHBDbGllbnQucG9zdCh0aGlzLmxvZ2luVXJsISxcclxuICAgICAgICAgIHsgcGFzc3dvcmQ6IHRoaXMucGFzc3dvcmQudHJpbSgpIH0sXHJcbiAgICAgICAgICB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpIH0pLnN1YnNjcmliZSh7IG5leHQ6IHJlc29sdmUsIGVycm9yOiByZWplY3QgfSkpO1xyXG5cclxuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xyXG4gICAgICB0aGlzLnNob3dNZXNzYWdlKFwiZXJyb3JcIiwgZS5tZXNzYWdlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEhlYWRlcnMoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBbTG9jYWxpemVUb2tlbi5odHRwSGVhZGVycy5YX1JFRlJFU0hfVE9LRU5dOiB0aGlzLnRva2VuU2VydmljZS5yZWZyZXNoVG9rZW4gPz8gXCJcIixcclxuICAgICAgW0xvY2FsaXplVG9rZW4uaHR0cEhlYWRlcnMuWF9URU5BTlRdOiB0aGlzLnRva2VuU2VydmljZS50ZW5hbnRUb2tlbiA/PyBcIlwiLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldCBpc1ZhbGlkUGFzc3dvcmQoKTogYm9vbGVhbiB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXMucGFzc3dvcmRWYWxpZGF0b3JcclxuICAgICAgPyB0aGlzLnByb3BlcnRpZXMucGFzc3dvcmRWYWxpZGF0b3IodGhpcy5wYXNzd29yZClcclxuICAgICAgOiB0aGlzLnBhc3N3b3JkICYmIHRoaXMucGFzc3dvcmQudHJpbSgpLmxlbmd0aCA+PSA2ICYmIHRoaXMucGFzc3dvcmQudHJpbSgpLmxlbmd0aCA8PSA1MDtcclxuICB9XHJcblxyXG4gIGNsaWNrTG9nb3V0ID0gKCkgPT4gdGhpcy5sb2dvdXQ/LigpO1xyXG5cclxuICBwcml2YXRlIHNob3dNZXNzYWdlKHNldmVyaXR5OiBzdHJpbmcsIHN1bW1hcnk6IHN0cmluZykge1xyXG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBrZXk6IHRoaXMubWVzc2FnZUtleSwgc2V2ZXJpdHksIHN1bW1hcnkgfSk7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldCBzYW5pdGl6ZWRUaXRsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLnByb3BlcnRpZXMudGl0bGUgPz8gJycpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
423
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtbG9naW5kbGcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQU5HVUxBUi9MSUJSQVJJRVMvbG9jYWxpemUudG9rZW4uMTIuMS4wL2Rldi9zcmMvbG9jYWxpemUtbG9naW5kbGcvbG9jYWxpemUtbG9naW5kbGcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUUsT0FBTyxFQUFjLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQXVUekQsTUFBTSxPQUFPLHlCQUF5QjtJQWNwQyxZQUNtQixjQUE4QixFQUM5QixHQUFzQixFQUN0QixNQUF3QixFQUN4QixTQUE4QixFQUM5QixZQUFrQyxFQUNsQyxVQUFzQixFQUN0QixTQUF1QjtRQU52QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBcUI7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQXNCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQXBCakMsZUFBVSxHQUFHLFlBQVksQ0FBQztRQUduQyxZ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QUFDLElBQUk7eUJBbFQ1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbVBSO2FBZ0VGOzs7WUEzVFEsY0FBYztZQUxyQixpQkFBaUI7WUFNVyxnQkFBZ0I7WUFBckMsbUJBQW1CO1lBQ1Asb0JBQW9CO1lBVGhDLFVBQVU7WUFZVixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcclxuaW1wb3J0IHsgRHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gXCJwcmltZW5nL2R5bmFtaWNkaWFsb2dcIjtcclxuaW1wb3J0IHsgSnd0UGF5bG9hZCwgTG9jYWxpemVUb2tlblNlcnZpY2UgfSBmcm9tIFwiLi4vbG9jYWxpemUtdG9rZW4vbG9jYWxpemUudG9rZW4uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZVRva2VuIH0gZnJvbSBcIi4uL2xvY2FsaXplLXRva2VuL2xvY2FsaXplLnRva2VuXCI7XHJcbmltcG9ydCB7IElMb2dpbkRpYWxvZ0NvbmZpZywgSUxvZ2luRGlhbG9nUHJvcGVydGllcyB9IGZyb20gXCIuL2xvY2FsaXplLWxvZ2luZGxnLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0eWxlczogW2BcclxuICAjbG9naW4tZGxnLXdyYXAge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xyXG4gICAgbWFyZ2luOiAwIGF1dG87XHJcbiAgICBwYWRkaW5nOiAzMHB4O1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxuICBcclxuICAubG9naW4tZGxnLWVsbSB7XHJcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xyXG4gIH1cclxuXHJcbiAgLmxvZ2luLWRsZy1lbG0ubG9naW4tZGxnLXN1Z2dlc3Qge1xyXG4gICAgZGlzcGxheTogZmxleCA7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggI2RkZDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xyXG4gICAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcclxuICAgIGJveC1zaGFkb3c6IDFweCA1cHggMTBweCAtMTJweCAjMDAwO1xyXG4gIH1cclxuICBcclxuICAjbG9naW4tZGxnLWhlYWRlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB9XHJcbiAgXHJcbiAgI2xvZ2luLWRsZy1oZWFkZXIgaDMge1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBmb250LXNpemU6IDAuOXJlbTtcclxuICAgIGNvbG9yOiBvcmFuZ2U7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG4gIFxyXG4gICNsb2dpbi1sb2dvIHtcclxuICAgIGhlaWdodDogNTVweDtcclxuICAgIHdpZHRoOiA1NXB4O1xyXG4gICAgLyogYmFja2dyb3VuZDogdXJsKFwiL2Fzc2V0cy9pbWFnZXMvbG9nby0zMDBweC5wbmdcIikgbm8tcmVwZWF0OyAqL1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG4gIFxyXG4gICNsb2dpbi1kbGctY29udGVudCAucC1pbnB1dGdyb3VwIHtcclxuICAgIGhlaWdodDogNDVweDtcclxuICB9XHJcbiAgXHJcbiAgI2xvZ2luLWRsZy1jb250ZW50IC5wLWlucHV0Z3JvdXAgLnAtaW5wdXRncm91cC1hZGRvbiB7XHJcbiAgICBoZWlnaHQ6IDQ1cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4IDAgMCAxNXB4O1xyXG4gICAgd2lkdGg6IDUwcHg7XHJcbiAgfVxyXG4gICNsb2dpbi1kbGctY29udGVudCAqe1xyXG4gICAgZm9udC1zaXplOiAuOXJlbTtcclxuICAgIC8qIGZvbnQtZmFtaWx5OiAnTGV4ZW5kJywgJ1JvYm90bycsIHNhbnMtc2VyaWYsICdtYXRlcmlhbC1pY29ucy1yb3VuZCc7ICovXHJcbiAgfVxyXG4gIFxyXG4gICNsb2dpbi1kbGctY29udGVudCAucC1pbnB1dGdyb3VwIC5wLWlucHV0Z3JvdXAtYWRkb24gKiB7XHJcbiAgICBmb250LXNpemU6IDFyZW07XHJcbiAgfVxyXG4gIFxyXG4gICNsb2dpbi1kbGctY29udGVudCAucC1pbnB1dGdyb3VwIGlucHV0IHtcclxuICAgIGhlaWdodDogNDVweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAgMTVweCAxNXB4IDA7XHJcbiAgfVxyXG4gIFxyXG4gICNsb2dpbi1kbGctY29udGVudCBidXR0b24ge1xyXG4gICAgaGVpZ2h0OiA0NXB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICB9XHJcbiAgXHJcbiAgLypjaGVjayBhbmltYXRpb24gYmxvY2sqL1xyXG4gIFxyXG4gIC5jaGVjay1hbmltYXRpb24td3JhcCB7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMjAwcHgpO1xyXG4gICAgbWluLWhlaWdodDogNDAwcHg7XHJcbiAgfVxyXG4gIFxyXG4gIC5jaGVjay1tYWluLWNvbnRhaW5lciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwdmg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1mbG93OiBjb2x1bW47XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgfVxyXG4gIFxyXG4gIC5jaGVjay1jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDYuMjVyZW07XHJcbiAgICBoZWlnaHQ6IDcuNXJlbTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWZsb3c6IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgfVxyXG4gIFxyXG4gIC5jaGVjay1jb250YWluZXIgLmNoZWNrLWJhY2tncm91bmQge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuMjVyZW0pO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSByaWdodCwgIzVkZTU5MywgIzQxZDY3Yyk7XHJcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCA2NXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSkgaW5zZXQsIDBweCAwcHggMHB4IDY1cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSBpbnNldDtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44NCk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBhbmltYXRpb246IGFuaW1hdGVDb250YWluZXIgMC43NXMgZWFzZS1vdXQgZm9yd2FyZHMgMC43NXM7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcbiAgXHJcbiAgLmNoZWNrLWNvbnRhaW5lciAuY2hlY2stYmFja2dyb3VuZCBzdmcge1xyXG4gICAgd2lkdGg6IDY1JTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwLjI1cmVtKTtcclxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDgwO1xyXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDgwO1xyXG4gICAgYW5pbWF0aW9uOiBhbmltYXRlQ2hlY2sgMC4zNXMgZm9yd2FyZHMgMS4yNXMgZWFzZS1vdXQ7XHJcbiAgICBtaW4td2lkdGg6IGF1dG8gIWltcG9ydGFudDtcclxuICB9XHJcbiAgXHJcbiAgLmNoZWNrLWNvbnRhaW5lciAuY2hlY2stc2hhZG93IHtcclxuICAgIGJvdHRvbTogY2FsYygtMTUlIC0gNXB4KTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2xvc2VzdC1zaWRlLCByZ2JhKDczLCAyMTgsIDEzMSwgMSksIHRyYW5zcGFyZW50KTtcclxuICAgIGFuaW1hdGlvbjogYW5pbWF0ZVNoYWRvdyAwLjc1cyBlYXNlLW91dCBmb3J3YXJkcyAwLjc1cztcclxuICB9XHJcbiAgXHJcbiAgQGtleWZyYW1lcyBhbmltYXRlQ29udGFpbmVyIHtcclxuICAgIDAlIHtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcclxuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggNjVweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIGluc2V0LCAwcHggMHB4IDBweCA2NXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSkgaW5zZXQ7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAyNSUge1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XHJcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDY1cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSBpbnNldCwgMHB4IDBweCAwcHggNjVweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIGluc2V0O1xyXG4gICAgfVxyXG4gIFxyXG4gICAgNDMuNzUlIHtcclxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcclxuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggNDMuMzM0cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSBpbnNldCwgMHB4IDBweCAwcHggNjVweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIGluc2V0O1xyXG4gICAgfVxyXG4gIFxyXG4gICAgNjIuNSUge1xyXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSBpbnNldCwgMHB4IDBweCAwcHggMjEuNjY3cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSBpbnNldDtcclxuICAgIH1cclxuICBcclxuICAgIDgxLjI1JSB7XHJcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSBpbnNldDtcclxuICAgIH1cclxuICBcclxuICAgIDEwMCUge1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSkgaW5zZXQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIEBrZXlmcmFtZXMgYW5pbWF0ZUNoZWNrIHtcclxuICAgIGZyb20ge1xyXG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogODA7XHJcbiAgICB9XHJcbiAgXHJcbiAgICB0byB7XHJcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBAa2V5ZnJhbWVzIGFuaW1hdGVTaGFkb3cge1xyXG4gICAgMCUge1xyXG4gICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgaGVpZ2h0OiAxNSU7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAyNSUge1xyXG4gICAgICBvcGFjaXR5OiAwLjI1O1xyXG4gICAgfVxyXG4gIFxyXG4gICAgNDMuNzUlIHtcclxuICAgICAgd2lkdGg6IDQwJTtcclxuICAgICAgaGVpZ2h0OiA3JTtcclxuICAgICAgb3BhY2l0eTogMC4zNTtcclxuICAgIH1cclxuICBcclxuICAgIDEwMCUge1xyXG4gICAgICB3aWR0aDogODUlO1xyXG4gICAgICBoZWlnaHQ6IDE1JTtcclxuICAgICAgb3BhY2l0eTogMC4yNTtcclxuICAgIH1cclxuICB9XHJcbiAgI2xvZ2luLWRsZy13cmFwIC5sb2FkZXItd3JhcCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgaGVpZ2h0OjEwMCU7XHJcbiAgICB3aWR0aDoxMDAlO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHotaW5kZXg6IDEwMDtcclxuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY0MjtcclxuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpO1xyXG4gIH1cclxuXHJcbiAgI2xvZ2luLWRsZy13cmFwIC5sb2dpbi1kbGctbG9hZGVyIHtcclxuICAgIGJvcmRlcjogMTVweCBzb2xpZCAjZTdlN2U3O1xyXG4gICAgYm9yZGVyLXRvcDogMTVweCBzb2xpZCAjNTJkYmExO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgd2lkdGg6IDEwMHB4O1xyXG4gICAgaGVpZ2h0OiAxMDBweDtcclxuICAgIGFuaW1hdGlvbjogc3BpbmxvYWRlciAycyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgfVxyXG5cclxuICAjbG9naW4tZGxnLXdyYXAgLmxvYWRlci13cmFwOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHdpZHRoOiA3MHB4O1xyXG4gICAgaGVpZ2h0OiA3MHB4O1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgYm9yZGVyOiAxNXB4IHNvbGlkICNlN2U3ZTcwMDtcclxuICAgIGJvcmRlci10b3A6IDE1cHggc29saWQgIzUyZGJhMWM5O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYW5pbWF0aW9uOiBzcGlubG9hZGVyIC43NXMgbGluZWFyIGluZmluaXRlO1xyXG4gIH1cclxuXHJcbiAgQGtleWZyYW1lcyBzcGlubG9hZGVyIHtcclxuICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cclxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XHJcbiAgfVxyXG4gIGBdLFxyXG4gIHRlbXBsYXRlOiBgPHAtdG9hc3Qga2V5PVwiJGxvZ2luLWRsZ1wiIHBvc2l0aW9uPVwidG9wLWNlbnRlclwiPjwvcC10b2FzdD5cclxuICA8ZGl2IGlkPVwibG9naW4tZGxnLXdyYXBcIj5cclxuICAgIDxkaXYgaWQ9XCJsb2dpbi1kbGctaGVhZGVyXCI+XHJcbiAgICAgIDxkaXYgaWQ9XCJsb2dpbi1sb2dvXCIgY2xhc3M9XCJwLW1iLTJcIiBzdHlsZT1cImJhY2tncm91bmQ6IHVybCgne3twcm9wZXJ0aWVzLmxvZ29JbWFnZX19Jykgbm8tcmVwZWF0XCI+PC9kaXY+XHJcbiAgICAgIDxoMyAqbmdJZj1cIiFzdWNjZXNzXCIgW2lubmVySFRNTF09XCJzYW5pdGl6ZWRUaXRsZVwiPjwvaDM+XHJcbiAgICAgIDxoMyAqbmdJZj1cInN1Y2Nlc3NcIiBzdHlsZT1cImNvbG9yOmdyZWVuICFpbXBvcnRhbnQ7XCI+e3twcm9wZXJ0aWVzLmxvZ2luU3VjY2Vzc01lc3NhZ2V9fTwvaDM+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgaWQ9XCJsb2dpbi1kbGctY29udGVudFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXN1Y2Nlc3NcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwibG9hZGVyLXdyYXBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi1kbGctbG9hZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvZ2luLWRsZy1lbG1cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWlucHV0Z3JvdXBcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLWlucHV0Z3JvdXAtYWRkb25cIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zLXJvdW5kXCI+cGVyc29uPC9pPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxpbnB1dCBkaXNhYmxlZCBwSW5wdXRUZXh0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJ7e3Byb3BlcnRpZXMudXNlcm5hbWU/LnBsYWNlSG9sZGVyfX1cIiBbdmFsdWVdPVwiZGVjb2RlVG9rZW4/LmVtYWlsXCIgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi1kbGctZWxtXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1pbnB1dGdyb3VwXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1pbnB1dGdyb3VwLWFkZG9uXCI+XHJcbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1yb3VuZFwiPmxvY2s8L2k+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGlucHV0IFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgKGtleWRvd24uZW50ZXIpPVwiY2xpY2tMb2dpbigpXCIgcElucHV0VGV4dCB0eXBlPVwicGFzc3dvcmRcIiBcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7cHJvcGVydGllcy5wYXNzd29yZD8ucGxhY2VIb2xkZXJ9fVwiIFsobmdNb2RlbCldPVwicGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgIGF1dG9mb2N1cyAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvZ2luLWRsZy1lbG1cIj5cclxuICAgICAgICAgIDxidXR0b24gc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBwQnV0dG9uIHR5cGU9XCJidXR0b25cIiBsYWJlbD1cInt7cHJvcGVydGllcy5sb2dpbkJ1dHRvbj8ucGxhY2VIb2xkZXJ9fVwiIChjbGljayk9XCJjbGlja0xvZ2luKClcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXBhc3N3b3JkIHx8IGxvYWRpbmdcIj48L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4tZGxnLWVsbSBsb2dpbi1kbGctc3VnZ2VzdFwiIHN0eWxlPVwiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOiBjZW50ZXI7dXNlci1zZWxlY3Q6IG5vbmU7XCI+XHJcbiAgICAgICAgICA8c3Bhbj57e3Byb3BlcnRpZXMubG9nb3V0QnV0dG9uPy5tZXNzYWdlfX08L3NwYW4+XHJcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicC1idXR0b24tdGV4dFwiIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIGxhYmVsPVwie3twcm9wZXJ0aWVzLmxvZ291dEJ1dHRvbj8ucGxhY2VIb2xkZXJ9fVwiIFxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tMb2dvdXQoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICBcclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN1Y2Nlc3NcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLXRvcDozNXB4O1wiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVjay1hbmltYXRpb24td3JhcFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrLW1haW4tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVjay1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2stYmFja2dyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDY1IDUxXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNyAyNUwyNy4zMDc3IDQ0TDU4LjUgN1wiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMTNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PmAsXHJcbiAgc2VsZWN0b3I6IFwiYXBwLWxvY2FsaXplLWxvZ2luZGxnXCIsXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZUxvZ2luZGxnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICByZWFkb25seSBtZXNzYWdlS2V5ID0gXCIkbG9naW4tZGxnXCI7XHJcbiAgcGFzc3dvcmQ6IGFueTtcclxuICByZWFkb25seSBkZWNvZGVUb2tlbjogSnd0UGF5bG9hZCB8IG51bGw7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHN1Y2Nlc3MgPSBmYWxzZTtcclxuICBwcml2YXRlIGdldCBjb25maWcoKSB7IHJldHVybiB0aGlzLnRva2VuU2VydmljZS5jb25maWc7IH1cclxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2luQ29uZmlnOiBJTG9naW5EaWFsb2dDb25maWdcclxuXHJcbiAgcHJpdmF0ZSBsb2dvdXQ/OiAoKSA9PiBhbnlcclxuICBwcml2YXRlIGxvZ2luVXJsPzogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IHByb3BlcnRpZXM6IElMb2dpbkRpYWxvZ1Byb3BlcnRpZXM7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHQ6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkbGdSZWY6IER5bmFtaWNEaWFsb2dSZWYsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRsZ0NvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZyxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9rZW5TZXJ2aWNlOiBMb2NhbGl6ZVRva2VuU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcclxuICApIHtcclxuICAgIHRoaXMuZGVjb2RlVG9rZW4gPSB0aGlzLnRva2VuU2VydmljZS5kZWNvZGVSZWZyZXNoVG9rZW47XHJcbiAgICB0aGlzLmxvZ2luQ29uZmlnID0gdGhpcy5kbGdDb25maWcuZGF0YS5sb2dpbkNvbmZpZztcclxuICAgIHRoaXMucHJvcGVydGllcyA9IHRoaXMubG9naW5Db25maWcucHJvcGVydGllcyE7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGxnQ29uZmlnLmNsb3NhYmxlID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ291dCA9IHRoaXMubG9naW5Db25maWcubG9nb3V0RnVuYztcclxuICAgIHRoaXMubG9naW5VcmwgPSB0aGlzLmxvZ2luQ29uZmlnLmxvZ2luVXJsXHJcblxyXG4gICAgaWYgKCF0aGlzLmRlY29kZVRva2VuKSB7XHJcbiAgICAgIHRoaXMuc2hvd01lc3NhZ2UoXCJlcnJvclwiLCBcIlRva2VuIGlzIGludmFsaWRcIik7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5sb2dvdXQ/LigpLCAyMDAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY2R0LmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGNsaWNrTG9naW4oKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNWYWxpZFBhc3N3b3JkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNob3dNZXNzYWdlKFwiZXJyb3JcIiwgXCJQYXNzd29yZCBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnNcIik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IGxvZ2luUmVzID0gYXdhaXQgdGhpcy5sb2dpbigpO1xyXG4gICAgaWYgKCFsb2dpblJlcz8uc3RhdHVzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNob3dNZXNzYWdlKFwiZXJyb3JcIiwgbG9naW5SZXMubWVzc2FnZSA/PyBcIkFuIGVycm9yIG9jY3VycmVkXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudG9rZW5TZXJ2aWNlLmFjY2Vzc1Rva2VuID0gbG9naW5SZXMudG9rZW5zLmFjY2Vzc1Rva2VuO1xyXG4gICAgY29uc3QgY29va2llT3B0aW9ucyA9IHsgZXhwaXJlczogdGhpcy5sb2dpbkNvbmZpZy5leHBpcmUgPz8gMzY1IH1cclxuICAgIExvY2FsaXplVG9rZW4uc3RvcmFnZS5zZXQodGhpcy5jb25maWcucmVmcmVzaFRva2VuPy5uYW1lIHx8ICcnLCBsb2dpblJlcy50b2tlbnMucmVmcmVzaFRva2VuLCBjb29raWVPcHRpb25zKTtcclxuICAgIHRoaXMuc3VjY2VzcyA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5kbGdDb25maWcuZGlzbWlzc2FibGVNYXNrID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kbGdDb25maWcubW9kYWwgPSBmYWxzZTtcclxuICAgICAgdGhpcy5kbGdSZWYuY2xvc2UodHJ1ZSk7XHJcbiAgICB9LCAyMDAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgbG9naW4oKSB7XHJcbiAgICBpZiAoIXRoaXMubG9naW5Vcmw/LnRyaW0oKS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5zaG93TWVzc2FnZShcImVycm9yXCIsIFwiTG9naW4gdXJsIGlzIHJlcXVpcmVkXCIpO1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJMb2dpbiB1cmwgaXMgcmVxdWlyZWRcIik7XHJcbiAgICB9XHJcblxyXG4gICAgdHJ5IHtcclxuXHJcbiAgICAgIGlmICh0aGlzLmxvZ2luQ29uZmlnLmxvZ2luRnVuY3Rpb24pIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIlVzaW5nIGN1c3RvbSBsb2dpbiBmdW5jdGlvblwiKTtcclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2dpbkNvbmZpZy5sb2dpbkZ1bmN0aW9uKHRoaXMuZGVjb2RlVG9rZW4/LmVtYWlsID8/ICcnLCB0aGlzLnBhc3N3b3JkLnRyaW0oKSwgdGhpcy5nZXRIZWFkZXJzKCkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PlxyXG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KHRoaXMubG9naW5VcmwhLFxyXG4gICAgICAgICAgeyBwYXNzd29yZDogdGhpcy5wYXNzd29yZC50cmltKCkgfSxcclxuICAgICAgICAgIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJzKCkgfSkuc3Vic2NyaWJlKHsgbmV4dDogcmVzb2x2ZSwgZXJyb3I6IHJlamVjdCB9KSk7XHJcblxyXG4gICAgfSBjYXRjaCAoZTogYW55KSB7XHJcbiAgICAgIHRoaXMuc2hvd01lc3NhZ2UoXCJlcnJvclwiLCBlLm1lc3NhZ2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SGVhZGVycygpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIFtMb2NhbGl6ZVRva2VuLmh0dHBIZWFkZXJzLlhfUkVGUkVTSF9UT0tFTl06IHRoaXMudG9rZW5TZXJ2aWNlLnJlZnJlc2hUb2tlbiA/PyBcIlwiLFxyXG4gICAgICBbTG9jYWxpemVUb2tlbi5odHRwSGVhZGVycy5YX1RFTkFOVF06IHRoaXMudG9rZW5TZXJ2aWNlLnRlbmFudFRva2VuID8/IFwiXCIsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzVmFsaWRQYXNzd29yZCgpOiBib29sZWFuIHtcclxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgcmV0dXJuIHRoaXMucHJvcGVydGllcy5wYXNzd29yZFZhbGlkYXRvclxyXG4gICAgICA/IHRoaXMucHJvcGVydGllcy5wYXNzd29yZFZhbGlkYXRvcih0aGlzLnBhc3N3b3JkKVxyXG4gICAgICA6IHRoaXMucGFzc3dvcmQgJiYgdGhpcy5wYXNzd29yZC50cmltKCkubGVuZ3RoID49IDYgJiYgdGhpcy5wYXNzd29yZC50cmltKCkubGVuZ3RoIDw9IDUwO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tMb2dvdXQgPSAoKSA9PiB0aGlzLmxvZ291dD8uKCk7XHJcblxyXG4gIHByaXZhdGUgc2hvd01lc3NhZ2Uoc2V2ZXJpdHk6IHN0cmluZywgc3VtbWFyeTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IGtleTogdGhpcy5tZXNzYWdlS2V5LCBzZXZlcml0eSwgc3VtbWFyeSB9KTtcclxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNhbml0aXplZFRpdGxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRoaXMucHJvcGVydGllcy50aXRsZSA/PyAnJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -25,4 +25,4 @@ LocalizeLogindlgModule.decorators = [
|
|
|
25
25
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
26
26
|
},] }
|
|
27
27
|
];
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtbG9naW5kbGcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQU5HVUxBUi9MSUJSQVJJRVMvbG9jYWxpemUudG9rZW4uMTIuMS4wL2Rldi9zcmMvbG9jYWxpemUtbG9naW5kbGcvbG9jYWxpemUtbG9naW5kbGcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBZ0J0RSxNQUFNLE9BQU8sc0JBQXNCOzs7WUFkbEMsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLHlCQUF5QixDQUFDO2dCQUN6QyxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztnQkFDcEMsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxlQUFlO29CQUNmLGFBQWE7b0JBQ2IsV0FBVztvQkFDWCxZQUFZO2lCQUNiO2dCQUNELFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUNwQyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZUxvZ2luZGxnQ29tcG9uZW50IH0gZnJvbSBcIi4vbG9jYWxpemUtbG9naW5kbGcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSBcInByaW1lbmcvdG9hc3RcIjtcclxuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSBcInByaW1lbmcvaW5wdXR0ZXh0XCI7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gXCJwcmltZW5nL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZUxvZ2luZGxnU2VydmljZSB9IGZyb20gXCIuL2xvY2FsaXplLWxvZ2luZGxnLnNlcnZpY2VcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbTG9jYWxpemVMb2dpbmRsZ0NvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW0xvY2FsaXplTG9naW5kbGdDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRvYXN0TW9kdWxlLFxyXG4gICAgSW5wdXRUZXh0TW9kdWxlLFxyXG4gICAgQnJvd3Nlck1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTG9jYWxpemVMb2dpbmRsZ1NlcnZpY2VdLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExvY2FsaXplTG9naW5kbGdNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -61,4 +61,4 @@ LocalizeLogindlgService.decorators = [
|
|
|
61
61
|
LocalizeLogindlgService.ctorParameters = () => [
|
|
62
62
|
{ type: Injector }
|
|
63
63
|
];
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtbG9naW5kbGcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0FOR1VMQVIvTElCUkFSSUVTL2xvY2FsaXplLnRva2VuLjEyLjEuMC9kZXYvc3JjL2xvY2FsaXplLWxvZ2luZGxnL2xvY2FsaXplLWxvZ2luZGxnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQXVCLE1BQU0sdUJBQXVCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBd0QxRSxNQUFNLE9BQU8sdUJBQXVCO0lBRWxDLFlBQTZCLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBSSxDQUFDO0lBRTlDLGVBQWUsQ0FBQyxXQUErQixFQUFFLE1BQTRCOztZQUVqRixNQUFNLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFN0IsTUFBTSxDQUFDLElBQUksbUNBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFLLEVBQUUsV0FBVyxFQUFFLENBQUUsQ0FBQztZQUU3RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2RCxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRXJFLE1BQU0sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxHQUFHLEVBQUU7b0JBQ1AsT0FBTyxFQUFFLENBQUM7aUJBQ1g7WUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQztLQUFBO0lBRU8sb0JBQW9CLENBQUMsTUFBNEI7UUFDdkQsTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLElBQU4sTUFBTSxHQUFLO1lBQ1QsTUFBTSxFQUFFLE9BQU87WUFDZixLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtZQUNqRSxLQUFLLEVBQUUsSUFBSTtZQUNYLFFBQVEsRUFBRSxLQUFLO1lBQ2YsVUFBVSxFQUFFLEtBQUs7U0FDbEIsRUFBQTtRQUVELE1BQU0sbUNBQ0QsTUFBTSxHQUFLO1lBQ1osWUFBWSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFO1NBQzVELENBQ0YsQ0FBQTtRQUNELE1BQU0sQ0FBQyxLQUFLLG1DQUFRLE1BQU0sQ0FBQyxLQUFLLEdBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUUsQ0FBQztRQUNuRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBR08sVUFBVSxDQUFDLFdBQStCOztRQUNoRCxXQUFXLGFBQVgsV0FBVyxjQUFYLFdBQVcsSUFBWCxXQUFXLEdBQUssRUFBRSxFQUFBO1FBQ2xCLE1BQUEsV0FBVyxDQUFDLFVBQVUsb0NBQXRCLFdBQVcsQ0FBQyxVQUFVLEdBQUs7WUFDekIsS0FBSyxFQUFFLCtEQUErRDtZQUN0RSxtQkFBbUIsRUFBRSxrQ0FBa0M7WUFDdkQsU0FBUyxFQUFFLCtCQUErQjtZQUMxQyxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFO1lBQ3JDLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUU7WUFDckMsV0FBVyxFQUFFLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRTtZQUNyQyxZQUFZLEVBQUU7Z0JBQ1osT0FBTyxFQUFFLHdDQUF3QztnQkFDakQsV0FBVyxFQUFFLFFBQVE7YUFDdEI7U0FDRixFQUFBO0lBQ0gsQ0FBQzs7OztZQTFERixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQXpEb0IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIER5bmFtaWNEaWFsb2dDb25maWcgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZUxvZ2luZGxnQ29tcG9uZW50IH0gZnJvbSAnLi9sb2NhbGl6ZS1sb2dpbmRsZy5jb21wb25lbnQnO1xyXG5leHBvcnQgaW50ZXJmYWNlIElMb2dpbkRpYWxvZ1BsYWNlSG9sZGVyIHtcclxuICAvKipcclxuICAgKiBNZXNzYWdlIHRvIGRpc3BsYXkgaW4gdGhlIGlucHV0IGZpZWxkLCB0eXBpY2FsbHkgdXNlZCBmb3IgZXJyb3IgbWVzc2FnZXMgb3IgaGludHMuXHJcbiAgICogVGhpcyBpcyBvcHRpb25hbCBhbmQgY2FuIGJlIHVzZWQgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIGNvbnRleHQgb3IgaW5zdHJ1Y3Rpb25zIHRvIHRoZSB1c2VyLlxyXG4gICAqL1xyXG4gIG1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogUGxhY2Vob2xkZXIgb3IgbGFiZWwgdGV4dCBmb3IgdGhlIGlucHV0IGZpZWxkXHJcbiAgICovXHJcbiAgcGxhY2VIb2xkZXI/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUxvZ2luRGlhbG9nUHJvcGVydGllcyB7XHJcbiAgLyoqXHJcbiAgICogVGl0bGUgb2YgdGhlIGxvZ2luIGRpYWxvZ1xyXG4gICAqL1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGxvZ2luU3VjY2Vzc01lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogTG9nb2cgaW1hZ2UgcGF0aCBvciBVUkwgdG8gZGlzcGxheSBpbiB0aGUgbG9naW4gZGlhbG9nXHJcbiAgICogSWYgbm90IHByb3ZpZGVkLCB0aGUgXCIvYXNzZXRzL2ltYWdlcy9sb2dvLTMwMHB4LnBuZ1wiIGltYWdlIHdpbGwgYmUgdXNlZC5cclxuICAgKi9cclxuICBsb2dvSW1hZ2U/OiBzdHJpbmc7XHJcbiAgdXNlcm5hbWU/OiBJTG9naW5EaWFsb2dQbGFjZUhvbGRlcjtcclxuICBwYXNzd29yZD86IElMb2dpbkRpYWxvZ1BsYWNlSG9sZGVyO1xyXG4gIGxvZ2luQnV0dG9uPzogSUxvZ2luRGlhbG9nUGxhY2VIb2xkZXI7XHJcbiAgbG9nb3V0QnV0dG9uPzogSUxvZ2luRGlhbG9nUGxhY2VIb2xkZXI7XHJcbiAgLyoqXHJcbiAgICogRnVuY3Rpb24gdG8gdmFsaWRhdGUgdGhlIHBhc3N3b3JkLlxyXG4gICAqIElmIG5vdCBwcm92aWRlZCwgdGhlIGRlZmF1bHQgdmFsaWRhdGlvbiBjaGVja3MgaWYgdGhlIHBhc3N3b3JkIGlzIGJldHdlZW4gNiBhbmQgNTAgY2hhcmFjdGVycyBsb25nLlxyXG4gICAqIEBwYXJhbSBwYXNzd29yZFxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcGFzc3dvcmRWYWxpZGF0b3I/OiAocGFzc3dvcmQ6IHN0cmluZykgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTG9naW5EaWFsb2dDb25maWcge1xyXG4gIGxvZ2luVXJsPzogc3RyaW5nO1xyXG4gIGxvZ291dFVybD86IHN0cmluZztcclxuICBsb2dpbkZ1bmN0aW9uPzogKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIGhlYWRlcnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSA9PiBQcm9taXNlPGFueT47XHJcbiAgbG9nb3V0RnVuYz86ICgpID0+IHZvaWQ7XHJcbiAgLyoqXHJcbiAgICogQ29va2llIGV4cGlyYXRpb24gZGF0ZSBpbiBkYXlzIGZyb20gbm93LiBJZiBub3QgcHJvdmlkZWQgdGhlIGNvb2tpZSBpcyBhIHNlc3Npb24gY29va2llXHJcbiAgICovXHJcbiAgZXhwaXJlPzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBsb2dpbiBkaWFsb2cuXHJcbiAgICogVGhpcyBpbnRlcmZhY2UgZGVmaW5lcyB0aGUgcHJvcGVydGllcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGN1c3RvbWl6ZSB0aGUgbG9naW4gZGlhbG9nJ3MgYmVoYXZpb3IgYW5kIGFwcGVhcmFuY2VcclxuICAgKi9cclxuICBwcm9wZXJ0aWVzPzogSUxvZ2luRGlhbG9nUHJvcGVydGllcztcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemVMb2dpbmRsZ1NlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcikgeyB9XHJcblxyXG4gIGFzeW5jIG9wZW5Mb2dpbkRpYWxvZyhsb2dpbkNvbmZpZzogSUxvZ2luRGlhbG9nQ29uZmlnLCBjb25maWc/OiBEeW5hbWljRGlhbG9nQ29uZmlnKSB7XHJcblxyXG4gICAgY29uZmlnID0gdGhpcy5pbnRlcmNlcERpYWxvZ0NvbmZpZyhjb25maWcpO1xyXG4gICAgdGhpcy5pbml0Q29uZmlnKGxvZ2luQ29uZmlnKTtcclxuXHJcbiAgICBjb25maWcuZGF0YSA9IHsgLi4uKGNvbmZpZy5kYXRhIHx8IHt9KSwgLi4ueyBsb2dpbkNvbmZpZyB9IH07XHJcblxyXG4gICAgY29uc3QgZGlhbG9nU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KERpYWxvZ1NlcnZpY2UpO1xyXG4gICAgY29uc3QgZGlhbG9nID0gZGlhbG9nU2VydmljZS5vcGVuKExvY2FsaXplTG9naW5kbGdDb21wb25lbnQsIGNvbmZpZyk7XHJcblxyXG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+XHJcbiAgICAgIGRpYWxvZy5vbkNsb3NlLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW50ZXJjZXBEaWFsb2dDb25maWcoY29uZmlnPzogRHluYW1pY0RpYWxvZ0NvbmZpZykge1xyXG4gICAgY29uZmlnID8/PSB7XHJcbiAgICAgIGhlYWRlcjogJ0xvZ2luJyxcclxuICAgICAgc3R5bGU6IHsgJ21heC13aWR0aCc6ICc0MDBweCcsIHdpZHRoOiAnMTAwJScsICdoZWlnaHQnOiAnNjUwcHgnIH0sXHJcbiAgICAgIG1vZGFsOiB0cnVlLFxyXG4gICAgICBjbG9zYWJsZTogZmFsc2UsXHJcbiAgICAgIHNob3dIZWFkZXI6IGZhbHNlLFxyXG4gICAgfVxyXG5cclxuICAgIGNvbmZpZyA9IHtcclxuICAgICAgLi4uY29uZmlnLCAuLi57XHJcbiAgICAgICAgY29udGVudFN0eWxlOiB7ICdoZWlnaHQnOiAnMTAwJScsICdib3JkZXItcmFkaXVzJzogJzIwcHgnIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uZmlnLnN0eWxlID0geyAuLi5jb25maWcuc3R5bGUsIC4uLnsgJ2JvcmRlci1yYWRpdXMnOiAnMjBweCcgfSB9O1xyXG4gICAgcmV0dXJuIGNvbmZpZztcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIGluaXRDb25maWcobG9naW5Db25maWc6IElMb2dpbkRpYWxvZ0NvbmZpZykge1xyXG4gICAgbG9naW5Db25maWcgPz89IHt9XHJcbiAgICBsb2dpbkNvbmZpZy5wcm9wZXJ0aWVzID8/PSB7XHJcbiAgICAgIHRpdGxlOiAnWW91ciBzZXNzaW9uIGlzIGV4cGlyZWQhPGJyLz4gUGxlYXNlIGxvZ2luIGFnYWluIHRvIGNvbnRpbnVlLicsXHJcbiAgICAgIGxvZ2luU3VjY2Vzc01lc3NhZ2U6ICdZb3UgaGF2ZSBzdWNjZXNzZnVsbHkgbG9nZ2VkIGluLicsXHJcbiAgICAgIGxvZ29JbWFnZTogJy9hc3NldHMvaW1hZ2VzL2xvZ28tMzAwcHgucG5nJyxcclxuICAgICAgdXNlcm5hbWU6IHsgcGxhY2VIb2xkZXI6ICdVc2VybmFtZScgfSxcclxuICAgICAgcGFzc3dvcmQ6IHsgcGxhY2VIb2xkZXI6ICdQYXNzd29yZCcgfSxcclxuICAgICAgbG9naW5CdXR0b246IHsgcGxhY2VIb2xkZXI6ICdMb2dpbicgfSxcclxuICAgICAgbG9nb3V0QnV0dG9uOiB7XHJcbiAgICAgICAgbWVzc2FnZTogJ05vLCBJIHdhbnQgdG8gbG9naW4gd2l0aCBhbm90aGVyIHVzZXIuJyxcclxuICAgICAgICBwbGFjZUhvbGRlcjogJ0xvZ291dCdcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -16,4 +16,4 @@ export var EMethod;
|
|
|
16
16
|
// details?: any;
|
|
17
17
|
// status: number;
|
|
18
18
|
// }
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FOR1VMQVIvTElCUkFSSUVTL2xvY2FsaXplLnRva2VuLjEyLjEuMC9kZXYvc3JjL2xvY2FsaXplLXRva2VuL2hlbHBlcnMvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLE9BTVg7QUFORCxXQUFZLE9BQU87SUFDZix3QkFBYSxDQUFBO0lBQ2Isc0JBQVcsQ0FBQTtJQUNYLHNCQUFXLENBQUE7SUFDWCw0QkFBaUIsQ0FBQTtJQUNqQiwwQkFBZSxDQUFBO0FBQ25CLENBQUMsRUFOVyxPQUFPLEtBQVAsT0FBTyxRQU1sQjtBQTBGRCxzQ0FBc0M7QUFDdEMsa0JBQWtCO0FBQ2xCLG9CQUFvQjtBQUNwQix1QkFBdUI7QUFDdkIscUJBQXFCO0FBQ3JCLHNCQUFzQjtBQUN0QixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuXHJcbi8qKlxyXG4gKiBIdHRwIG1ldGhvZCBvcHRpb25zXHJcbiAqL1xyXG5leHBvcnQgZW51bSBFTWV0aG9kIHtcclxuICAgIFBPU1QgPSAncG9zdCcsXHJcbiAgICBHRVQgPSAnZ2V0JyxcclxuICAgIFBVVCA9ICdwdXQnLFxyXG4gICAgREVMRVRFID0gJ2RlbGV0ZScsXHJcbiAgICBQQVRDSCA9ICdwYXRjaCcsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9uQ29ubmVjdGlvbkVycm9yIHtcclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gZXhlY3V0ZSB3aGVuIGEgY29ubmVjdGlvbiBlcnJvciBvY2N1cnMuXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYSBQcm9taXNlIG9yIGFueSB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgY2FsbGJhY2s/OiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBQcm9taXNlPHZvaWQ+IHwgYW55O1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB0cnVlLCB0aGUgcmVxdWVzdCB3aWxsIGJsb2NrIHRoZSBzY3JlZW4gd2l0aCBvdmVybGF5IG9uIGNvbm5lY3Rpb24gZXJyb3JzLlxyXG4gICAgICogRGVmYXVsdCBpcyBmYWxzZS5cclxuICAgICAqL1xyXG4gICAgYmxvY2tTY3JlZW4/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKiBPcHRpb25hbCB6LWluZGV4IGZvciB0aGUgYmxvY2sgc2NyZWVuIG92ZXJsYXkuXHJcbiAgICAgKiBEZWZhdWx0IGlzIDEwMDAwLlxyXG4gICAgICovXHJcbiAgICBibG9ja1NjcmVlblpJbmRleD86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbmFsIG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIGEgY29ubmVjdGlvbiBlcnJvciBvY2N1cnMuXHJcbiAgICAgKi9cclxuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgICBzdWdnZXN0aW9uTWVzc2FnZT86IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIElSZXRyeU9wdGlvbnMge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICAgKiBNYXhpbXVtIG51bWJlciBvZiByZXRyaWVzIGZvciBhIGZhaWxlZCByZXF1ZXN0LlxyXG4gICAgICAgKiBEZWZhdWx0IGlzIDEwMC5cclxuICAgICAgICovXHJcbiAgICBtYXhSZXRyaWVzPzogbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVsYXkgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSByZXRyeWluZyBhIGZhaWxlZCByZXF1ZXN0LlxyXG4gICAgICogRGVmYXVsdCBpcyA1MDBtcy5cclxuICAgICAqL1xyXG4gICAgZGVsYXk/OiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYgYSByZXF1ZXN0IHNob3VsZCBiZSByZXRyaWVkIGJhc2VkIG9uIHRoZSBlcnJvci5cclxuICAgICAqIElmIG5vdCBwcm92aWRlZCwgdGhlIGRlZmF1bHQgZnVuY3Rpb24gd2lsbCByZXRyeSBmb3IgbmV0d29yayBlcnJvcnMgYW5kIHNlcnZlciBlcnJvcnMgKHN0YXR1cyA1MDAtNTk5KS5cclxuICAgICAqIEBwYXJhbSBlcnJvciAtIFRoZSBlcnJvciBvYmplY3QgZnJvbSB0aGUgZmFpbGVkIHJlcXVlc3QuXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSByZXF1ZXN0IHNob3VsZCBiZSByZXRyaWVkLCBmYWxzZSBvdGhlcndpc2UuXHJcbiAgICAgKi9cclxuICAgIHJldHJ5RnVuY3Rpb24/OiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBQcm9taXNlPGJvb2xlYW4+IHwgYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuY3Rpb24gdG8gZXhlY3V0ZSB3aGVuIGEgY29ubmVjdGlvbiBlcnJvciBvY2N1cnMuXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYSBQcm9taXNlIG9yIGFueSB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgb25Db25uZWN0aW9uRXJyb3I/OiBJT25Db25uZWN0aW9uRXJyb3I7XHJcblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElMb2NhbGl6ZUFwaUNvbmZpZ3Mge1xyXG4gICAgb25QcmVwYXJlUmVxdWVzdD86ICgpID0+IFByb21pc2U8dm9pZD4gfCBhbnk7XHJcbiAgICBvbkF1dG9Mb2dvdXQ/OiAoKSA9PiBQcm9taXNlPHZvaWQ+IHwgYW55O1xyXG4gICAgb25SZXZva2VVbmF1dGhvcml6ZWQ/OiAoKSA9PiBQcm9taXNlPHZvaWQ+IHwgYW55O1xyXG4gICAgb25SZXNwb25zZUJvZHlJbnZhbGlkPzogKGJvZHk6IGFueSkgPT4gdm9pZDtcclxuICAgIG9uRXhjZXB0aW9uPzogKGVycm9yOiBhbnkpID0+IHZvaWQ7XHJcbiAgICB3YWl0RWFjaFJlcXVlc3Q/OiB7XHJcbiAgICAgICAgbWlsbGlzZWNvbmRzOiBudW1iZXI7XHJcbiAgICB9O1xyXG4gICAgZW5hYmxlUmVxdWVzdENhbmNlbGxhdGlvbj86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWcgZm9yIHJldHJ5aW5nIGZhaWxlZCByZXF1ZXN0cy5cclxuICAgICAqIElmIG5vdCBwcm92aWRlZCwgdGhlIGRlZmF1bHQgcmV0cnkgb3B0aW9ucyB3aWxsIGJlIHVzZWQuXHJcbiAgICAgKi9cclxuICAgIHJldHJ5T3B0aW9ucz86IElSZXRyeU9wdGlvbnM7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUFwaU9wdGlvbnMge1xyXG4gICAgaGVhZGVycz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XHJcbiAgICBtZXRob2Q6IEVNZXRob2Q7XHJcbiAgICByZXF1ZXN0VXJsOiBzdHJpbmc7XHJcbiAgICByZXF1ZXN0Qm9keT86IGFueTtcclxuICAgIGlzRm9ybURhdGE/OiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB0cnVlLCB0aGUgcmVxdWVzdCB3aWxsIHVzZSB0aGUgcmVmcmVzaCB0b2tlbiBmb3IgYXV0aG9yaXphdGlvbi5cclxuICAgICAqL1xyXG4gICAgcmVmcmVzaFRva2VuPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJSGVhZGVyIHtcclxuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcclxufVxyXG5cclxuLy8gZXhwb3J0IGludGVyZmFjZSBJTm9ybWFsaXplZEVycm9yIHtcclxuLy8gICAgIGVycm9yOiBhbnk7XHJcbi8vICAgICBjb2RlOiBzdHJpbmc7XHJcbi8vICAgICBtZXNzYWdlOiBzdHJpbmc7XHJcbi8vICAgICBkZXRhaWxzPzogYW55O1xyXG4vLyAgICAgc3RhdHVzOiBudW1iZXI7XHJcbi8vIH1cclxuIl19
|
|
@@ -17,4 +17,4 @@ export const LOCALIZE_API_ASSETS = {
|
|
|
17
17
|
</svg>`
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuYXBpLmFzc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0FOR1VMQVIvTElCUkFSSUVTL2xvY2FsaXplLnRva2VuLjEyLjEuMC9kZXYvc3JjL2xvY2FsaXplLXRva2VuL2hlbHBlcnMvbG9jYWxpemUuYXBpLmFzc2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixPQUFPLEVBQUU7UUFDTCxZQUFZLEVBQUU7Ozs7Ozs7Ozs7Ozs7O21CQWNIO0tBQ2Q7Q0FDSixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IExPQ0FMSVpFX0FQSV9BU1NFVFMgPSB7XHJcbiAgICBuZXR3b3JrOiB7XHJcbiAgICAgICAgbm9Db25uZWN0aW9uOiBgPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwiVVRGLThcIj8+XHJcbiAgICAgICAgICAgIDxzdmcgaWQ9XCJsemUtbm8tY29ubmVjdGlvblwiIGRhdGEtbmFtZT1cIkxheWVyIDJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA3Ny4yOSA3MC45OFwiPlxyXG4gICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgIDxzdHlsZT4gLmNscy0xIHsgZmlsbDogI2ZmZjsgfSAuY2xzLTIsIC5jbHMtMyB7IGZpbGw6ICNlMzA2MTM7IH0gLmNscy0zIHsgc3Ryb2tlOiAjZTMwNjEzOyBzdHJva2UtbWl0ZXJsaW1pdDogMTA7IHN0cm9rZS13aWR0aDogLjI1cHg7IH0gPC9zdHlsZT5cclxuICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICA8ZyBpZD1cIkxheWVyXzNcIiBkYXRhLW5hbWU9XCJMYXllciAzXCI+XHJcbiAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2xzLTFcIiBkPVwibTczLjI5LDM1Yy0xLjIsMC0yLjMzLS41My0zLjA5LTEuNDYtLjQ4LS41Ny0xMS4yMy0xMy4yLTMxLjU1LTEzLjJzLTMxLjExLDEyLjY2LTMxLjU2LDEzLjJjLTEuNCwxLjcxLTMuOTIsMS45NS01LjYzLjU1LTEuNzEtMS40LTEuOTUtMy45Mi0uNTUtNS42My41NC0uNjYsMTMuNDctMTYuMTIsMzcuNzQtMTYuMTJzMzcuMiwxNS40NiwzNy43NCwxNi4xMmMxLjQsMS43MSwxLjE1LDQuMjMtLjU2LDUuNjItLjcxLjU4LTEuNjEuOS0yLjUzLjlaXCIvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjbHMtMVwiIGQ9XCJtNjMuOTYsNDUuNjZjLTEuMTksMC0yLjMyLS41My0zLjA4LTEuNDQtNS43OS02LjA1LTEzLjg2LTkuMzktMjIuMjQtOS4yMS04LjM4LS4xOC0xNi40NSwzLjE2LTIyLjI0LDkuMjItMS40NiwxLjY1LTMuOTksMS44MS01LjY0LjM1LTEuNTctMS4zOS0xLjgtMy43Ny0uNTItNS40Myw3LjMyLTcuODksMTcuNjQtMTIuMjksMjguNC0xMi4xMiwxMC43Ni0uMTcsMjEuMDgsNC4yNCwyOC40LDEyLjEyLDEuNCwxLjcxLDEuMTUsNC4yMy0uNTYsNS42Mi0uNzEuNTgtMS42LjktMi41My45WlwiLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2xzLTFcIiBkPVwibTUzLjMsNTYuMzJjLTEuMjQsMC0yLjQxLS41Ny0zLjE2LTEuNTUtNS43My02LjM1LTE1LjUyLTYuODUtMjEuODctMS4xMy0uNC4zNi0uNzcuNzMtMS4xMywxLjEzLTEuMzYsMS43My0zLjg4LDIuMDMtNS42MS42Ny0xLjcxLTEuMzQtMi4wMy0zLjgtLjczLTUuNTQsOC4zOS05Ljg1LDIzLjE4LTExLjA0LDMzLjAzLTIuNjUuOTUuODEsMS44NCwxLjY5LDIuNjUsMi42NSwxLjM0LDEuNzUsMSw0LjI2LS43NSw1LjYtLjcuNTMtMS41NS44Mi0yLjQzLjgyWlwiLz5cclxuICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2xzLTJcIiBkPVwibTQ3LjIxLDkuNDVsLTQuMDYsNDEuMzZjLS42NCw1LjQyLTguMzksNS4zOS05LjAxLDAsMCwwLTQuMDYtNDEuMzYtNC4wNi00MS4zNi0uNDYtNC43MywyLjk5LTguOTQsNy43Mi05LjQsNS4zMy0uNTgsOS45Nyw0LjA5LDkuNCw5LjRoMFpcIi8+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2xzLTNcIiBjeD1cIjM4LjY0XCIgY3k9XCI2NC43OVwiIHI9XCI2LjA3XCIvPlxyXG4gICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgIDwvc3ZnPmBcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -46,7 +46,7 @@ class LocalizeApiHelper {
|
|
|
46
46
|
yield waitFor(options.delay);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
console.warn(`Failed after ${options.maxRetries} attempts`);
|
|
49
|
+
console.warn(`Failed after ${options.maxRetries()} attempts`);
|
|
50
50
|
throw lastError;
|
|
51
51
|
});
|
|
52
52
|
}
|
|
@@ -264,4 +264,4 @@ function extractJsonFromResponse(body, onError) {
|
|
|
264
264
|
return body;
|
|
265
265
|
}
|
|
266
266
|
export const ApiHelper = new LocalizeApiHelper();
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jY2FsaXplLmFwaS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbG9jYWxpemUtdG9rZW4vaGVscGVycy9sb2NjYWxpemUuYXBpLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFXLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFnQjVELE1BQU0saUJBQWlCO0lBQXZCO1FBRWEsd0JBQW1CLEdBQTJCO1lBQ25ELGVBQWUsRUFBRTtnQkFDYixPQUFPLEVBQUUsd0NBQXdDO2dCQUNqRCxXQUFXLEVBQUUsSUFBSTtnQkFDakIsaUJBQWlCLEVBQUUsS0FBSzthQUMzQjtTQUNKLENBQUM7SUFvUk4sQ0FBQztJQWxSUyxZQUFZLENBQVUsT0FBc0I7O1lBQzlDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztZQUNqQixJQUFJLFNBQWMsQ0FBQztZQUNuQixJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7WUFFckIsb0RBQW9EO1lBQ3BELE9BQU8sbUNBQVEsSUFBSSxDQUFDLG1CQUFtQixHQUFLLE9BQU8sQ0FBRSxDQUFBO1lBRXJELElBQUksWUFBMEMsQ0FBQztZQUUvQyxPQUFPLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ3BDLElBQUk7b0JBQ0EsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ2pDLE9BQU8sTUFBTSxDQUFDO2lCQUVqQjtnQkFBQyxPQUFPLEtBQVUsRUFBRTtvQkFDakIsU0FBUyxHQUFHLEtBQUssQ0FBQztv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Q0FBQyxFQUFFO1lBQ25CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUMsSUFBSTtnQkFDQSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDakM7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDUiwyQ0FBMkM7Z0JBQzNDLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDaEIsT0FBTyxJQUFJLENBQUM7YUFDZjtTQUNKO0tBQ0o7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBJQXBpT3B0aW9ucywgSUxvY2FsaXplQXBpQ29uZmlncywgSU9uQ29ubmVjdGlvbkVycm9yIH0gZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIGNhdGNoRXJyb3IsIHRocm93RXJyb3IsIFN1YmplY3QsIG1hcCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHdhaXRGb3IgfSBmcm9tIFwiLi4vbG9jYWxpemUudG9rZW5cIjtcclxuaW1wb3J0IHsgTE9DQUxJWkVfQVBJX0FTU0VUUyB9IGZyb20gXCIuL2xvY2FsaXplLmFwaS5hc3NldHNcIjtcclxuXHJcbmludGVyZmFjZSBJUmVxdWVzdEluc3RhbmNlIHtcclxuICAgIGNsaWVudDogSHR0cENsaWVudDtcclxuICAgIGRlc3Ryb3kkOiAoKSA9PiBTdWJqZWN0PHZvaWQ+O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSVJldHJ5T3B0aW9ucyB7XHJcbiAgICBtYXhSZXRyaWVzOiAoKSA9PiBudW1iZXI7XHJcbiAgICBkZWxheTogbnVtYmVyO1xyXG4gICAgY2FsbGJhY2s6ICgpID0+IFByb21pc2U8YW55PiB8IGFueTtcclxuICAgIHJldHJ5VW5sZXNzPzogKGVycm9yOiBhbnkpID0+IGJvb2xlYW47XHJcbiAgICBvbkVycm9yPzogKGVycm9yOiBhbnkpID0+IFByb21pc2U8dm9pZD4gfCBhbnk7XHJcbiAgICBjb25uZWN0aW9uRXJyb3I/OiBJT25Db25uZWN0aW9uRXJyb3JcclxufVxyXG5cclxuY2xhc3MgTG9jYWxpemVBcGlIZWxwZXIge1xyXG5cclxuICAgIHJlYWRvbmx5IGRlZmF1bHRSZXRyeU9wdGlvbnM6IFBhcnRpYWw8SVJldHJ5T3B0aW9ucz4gPSB7XHJcbiAgICAgICAgY29ubmVjdGlvbkVycm9yOiB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdDb25uZWN0aW9uIGVycm9yIG9jY3VycmVkLiBQbGVhc2Ugd2FpdCcsXHJcbiAgICAgICAgICAgIGJsb2NrU2NyZWVuOiB0cnVlLFxyXG4gICAgICAgICAgICBibG9ja1NjcmVlblpJbmRleDogMTAwMDBcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGFzeW5jIHBlcmZvcm1SZXRyeTxUID0gYW55PihvcHRpb25zOiBJUmV0cnlPcHRpb25zKTogUHJvbWlzZTxUPiB7XHJcbiAgICAgICAgbGV0IGF0dGVtcHRzID0gMDtcclxuICAgICAgICBsZXQgbGFzdEVycm9yOiBhbnk7XHJcbiAgICAgICAgbGV0IGNvbnNvbGVDb3VudCA9IDA7XHJcblxyXG4gICAgICAgIC8vIE1lcmdlIGRlZmF1bHQgcmV0cnkgb3B0aW9ucyB3aXRoIHByb3ZpZGVkIG9wdGlvbnNcclxuICAgICAgICBvcHRpb25zID0geyAuLi50aGlzLmRlZmF1bHRSZXRyeU9wdGlvbnMsIC4uLm9wdGlvbnMgfVxyXG5cclxuICAgICAgICBsZXQgc3R5bGVFbGVtZW50OiBIVE1MU3R5bGVFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG5cclxuICAgICAgICB3aGlsZSAoYXR0ZW1wdHMgPCBvcHRpb25zLm1heFJldHJpZXMoKSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgb3B0aW9ucy5jYWxsYmFjaygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVCbG9ja2VyKHN0eWxlRWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG5cclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgbGFzdEVycm9yID0gZXJyb3I7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnNvbGVDb3VudCA+PSA3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5jbGVhcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGVDb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMucmV0cnlVbmxlc3MgJiYgIW9wdGlvbnMucmV0cnlVbmxlc3MoZXJyb3IpKVxyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yOyAvLyBJZiB0aGUgZXJyb3Igc2hvdWxkIG5vdCBiZSByZXRyaWVkLCByZXRocm93IGl0XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlIGNvbm5lY3Rpb24gZXJyb3JcclxuICAgICAgICAgICAgICAgIHN0eWxlRWxlbWVudCA9IGF3YWl0IHRoaXMub25Db25uZWN0aW9uRXJyb3Iob3B0aW9ucywgZXJyb3IpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLm9uRXJyb3IpXHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5pbnZva2VIb29rKG9wdGlvbnMub25FcnJvci5iaW5kKHRoaXMsIGVycm9yKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGF0dGVtcHRzID49IG9wdGlvbnMubWF4UmV0cmllcygpIC0gMSlcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuXHJcbiAgICAgICAgICAgICAgICBhdHRlbXB0cysrO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZUNvdW50Kys7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYEF0dGVtcHQgJHthdHRlbXB0c30gZmFpbGVkLiBSZXRyeWluZy4uLmAsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3Iob3B0aW9ucy5kZWxheSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIGFmdGVyICR7b3B0aW9ucy5tYXhSZXRyaWVzfSBhdHRlbXB0c2ApO1xyXG4gICAgICAgIHRocm93IGxhc3RFcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBwZXJmb3JtUmVxdWVzdFdpdGhSZXRyeTxUID0gYW55PihcclxuICAgICAgICBvcHRpb25zOiBJQXBpT3B0aW9ucyxcclxuICAgICAgICBjb25maWc6IElMb2NhbGl6ZUFwaUNvbmZpZ3MsXHJcbiAgICAgICAgcGVyZm9ybVJlcXVlc3Q6IDxUID0gYW55PihvcHRpb25zOiBJQXBpT3B0aW9ucykgPT4gUHJvbWlzZTxUPlxyXG4gICAgKTogUHJvbWlzZTxUPiB7XHJcblxyXG4gICAgICAgIGNvbnN0IHJldHJ5VW5sZXNzID0gY29uZmlnLnJldHJ5T3B0aW9ucz8ucmV0cnlGdW5jdGlvblxyXG4gICAgICAgICAgICB8fCB0aGlzLmlzQ29ubmVjdGlvbkVycm9yO1xyXG5cclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wZXJmb3JtUmV0cnkoe1xyXG4gICAgICAgICAgICBjb25uZWN0aW9uRXJyb3I6IGNvbmZpZy5yZXRyeU9wdGlvbnM/Lm9uQ29ubmVjdGlvbkVycm9yLFxyXG4gICAgICAgICAgICBtYXhSZXRyaWVzOiAoKSA9PiBjb25maWcucmV0cnlPcHRpb25zPy5tYXhSZXRyaWVzID8/IDEwMDAsXHJcbiAgICAgICAgICAgIGRlbGF5OiBjb25maWcucmV0cnlPcHRpb25zPy5kZWxheSA/PyA1MDAsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiAoKSA9PiBwZXJmb3JtUmVxdWVzdDxUPihvcHRpb25zKSxcclxuICAgICAgICAgICAgcmV0cnlVbmxlc3M6IHJldHJ5VW5sZXNzLFxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRVcmwoYmFzZVVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRVcmwgPSBgJHtiYXNlVXJsLnRyaW0oKS5yZXBsYWNlKC9cXC8/JC8sICcvJyl9JHtwYXRoLnRyaW0oKS5yZXBsYWNlKC9eXFwvLywgJycpfWA7XHJcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRVcmwuZW5kc1dpdGgoJy8nKVxyXG4gICAgICAgICAgICA/IG5vcm1hbGl6ZWRVcmwuc2xpY2UoMCwgLTEpXHJcbiAgICAgICAgICAgIDogbm9ybWFsaXplZFVybDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBpbnZva2VIb29rKGNhbGxiYWNrPzogKCkgPT4gUHJvbWlzZTxhbnk+IHwgYW55KTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBpZiAoIWNhbGxiYWNrKSByZXR1cm47XHJcblxyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxiYWNrKCk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgYXdhaXQgcmVzdWx0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVSZXF1ZXN0PFQgPSBhbnk+KFxyXG4gICAgICAgIGluc3RhbmNlOiBSZXF1aXJlZDxJUmVxdWVzdEluc3RhbmNlPixcclxuICAgICAgICBtZXRob2Q6IHN0cmluZyxcclxuICAgICAgICB1cmw6IHN0cmluZyxcclxuICAgICAgICBib2R5OiBhbnksXHJcbiAgICAgICAgb3B0aW9uczogeyBoZWFkZXJzOiBIdHRwSGVhZGVycyB9LFxyXG4gICAgICAgIG9uSW52YWxpZFJlc3BvbnNlQm9keT86IChib2R5OiBhbnkpID0+IHZvaWRcclxuICAgICkge1xyXG4gICAgICAgIGNvbnN0IHJlcXVlc3QkID0gaW5zdGFuY2UuY2xpZW50LnJlcXVlc3Q8VD4obWV0aG9kLCB1cmwsIHtcclxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgICAgICAgYm9keSxcclxuICAgICAgICB9KS5waXBlKFxyXG4gICAgICAgICAgICB0YWtlVW50aWwoaW5zdGFuY2UuZGVzdHJveSQoKSksXHJcbiAgICAgICAgICAgIG1hcCgoYm9keSkgPT4gZXh0cmFjdEpzb25Gcm9tUmVzcG9uc2UoYm9keSwgb25JbnZhbGlkUmVzcG9uc2VCb2R5KSksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gQ29udmVydCB0byBhIG5vbi1vYnNlcnZhYmxlIGVycm9yIHRvIGhhbmRsZSBpbiB0aGUgcHJvbWlzZVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXF1ZXN0JDtcclxuICAgIH1cclxuXHJcbiAgICBkZWZhdWx0UmV0cnlGdW5jdGlvbihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiBib29sZWFuIHtcclxuXHJcbiAgICAgICAgLy8gRG9uJ3QgcmV0cnkgZm9yIG90aGVyIGVycm9ycyAobGlrZSA0MDAsIDQwMSwgNDAzLCBldGMuKVxyXG4gICAgICAgIGlmICghdGhpcy5pc0Nvbm5lY3Rpb25FcnJvcihlcnJvcikpXHJcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpc0Nvbm5lY3Rpb25FcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBpc05ldHdvcmtFcnJvciA9IGVycm9yLnN0YXR1cyA9PT0gMDtcclxuICAgICAgICBjb25zdCBpc1NlcnZlckVycm9yID0gZXJyb3Iuc3RhdHVzID49IDEwMDAgJiYgZXJyb3Iuc3RhdHVzIDwgNjAwO1xyXG4gICAgICAgIHJldHVybiBpc05ldHdvcmtFcnJvciB8fCBpc1NlcnZlckVycm9yO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG9uQ29ubmVjdGlvbkVycm9yKFxyXG4gICAgICAgIG9wdGlvbnM6IElSZXRyeU9wdGlvbnMsXHJcbiAgICAgICAgZXJyb3I6IGFueVxyXG4gICAgKTogUHJvbWlzZTxQcm9taXNlPHZvaWQ+IHwgYW55PiB7XHJcblxyXG4gICAgICAgIGlmICghb3B0aW9ucy5jb25uZWN0aW9uRXJyb3IpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgbGV0IHN0eWxlRWxlbWVudDogSFRNTFN0eWxlRWxlbWVudCB8IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAodGhpcy5pc0Nvbm5lY3Rpb25FcnJvcihlcnJvcikpIHtcclxuXHJcbiAgICAgICAgICAgIHN0eWxlRWxlbWVudCA9IHRoaXMuc2NyZWVuQmxvY2tlcihvcHRpb25zLCBlcnJvciwgdHJ1ZSk7XHJcblxyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmludm9rZUhvb2sob3B0aW9ucy5jb25uZWN0aW9uRXJyb3IuY2FsbGJhY2s/LmJpbmQodGhpcywgZXJyb3IpKTtcclxuICAgICAgICAgICAgcmV0dXJuIHN0eWxlRWxlbWVudDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNjcmVlbkJsb2NrZXIob3B0aW9ucywgZXJyb3IsIGZhbHNlKTtcclxuICAgICAgICAgICAgc3R5bGVFbGVtZW50Py5yZW1vdmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2NyZWVuQmxvY2tlcihvcHRvbnM6IElSZXRyeU9wdGlvbnMsXHJcbiAgICAgICAgZXJyb3I/OiBIdHRwRXJyb3JSZXNwb25zZSxcclxuICAgICAgICBhZGQ6IGJvb2xlYW4gPSB0cnVlKTogSFRNTFN0eWxlRWxlbWVudCB8IHVuZGVmaW5lZCB7XHJcblxyXG4gICAgICAgIGlmICghb3B0b25zLmNvbm5lY3Rpb25FcnJvcj8uYmxvY2tTY3JlZW4pXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IG9wdG9ucy5jb25uZWN0aW9uRXJyb3I/Lm1lc3NhZ2VcclxuICAgICAgICAgICAgfHwgJ0Nvbm5lY3Rpb24gZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSB3YWl0JztcclxuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfHwgJ0FuIGVycm9yIG9jY3VycmVkJztcclxuICAgICAgICBjb25zdCBzdWdnZXN0aW5NZXNzYWdlID0gb3B0b25zLmNvbm5lY3Rpb25FcnJvcj8uc3VnZ2VzdGlvbk1lc3NhZ2VcclxuICAgICAgICAgICAgfHwgJ1BsZWFzZSBjaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24gb3IgdGhlIHNlcnZlciBzdGF0dXMuJztcclxuXHJcbiAgICAgICAgY29uc3QgekluZGV4ID0gb3B0b25zLmNvbm5lY3Rpb25FcnJvcj8uYmxvY2tTY3JlZW5aSW5kZXggfHwgMTAwMDA7XHJcblxyXG4gICAgICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5ib2R5O1xyXG4gICAgICAgIGNvbnN0IGJsY29rZXJIdG1sID0gYFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsemUtYmxvY2tlclwiPlxyXG4gICAgICAgICAgICAke0xPQ0FMSVpFX0FQSV9BU1NFVFMubmV0d29yay5ub0Nvbm5lY3Rpb259XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsemUtYmxvY2tlcl9fbWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgICAgJHttZXNzYWdlfVxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsemUtYmxvY2tlcl9fZG90dGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibHplLWJsb2NrZXJfX2RvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImx6ZS1ibG9ja2VyX19kb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsemUtYmxvY2tlcl9fZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImx6ZS1ibG9ja2VyX19lcnJvclwiPiR7ZXJyb3JNZXNzYWdlfTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibHplLWJsb2NrZXJfX2Vycm9yX3N1Z2dlc3Rpb25cIj4ke3N1Z2dlc3Rpbk1lc3NhZ2V9PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgYDtcclxuICAgICAgICBjb25zdCBzdHlsZSA9IGBcclxuICAgICAgICBkaXYubHplLWJsb2NrZXIge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjg1KSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB6LWluZGV4OiAke3pJbmRleH07XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdmcjbHplLW5vLWNvbm5lY3Rpb24ge1xyXG4gICAgICAgICAgICB3aWR0aDogNzVweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiA3NXB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBkaXYubHplLWJsb2NrZXJfX21lc3NhZ2Uge1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIC5semUtYmxvY2tlcl9fZG90dGluZyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3Bhbi5semUtYmxvY2tlcl9fZG90IHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogN3B4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDdweDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMztcclxuICAgICAgICAgICAgYW5pbWF0aW9uOiBkb3R0aW5nIDFzIGluZmluaXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAubHplLWJsb2NrZXJfX2RvdDpudGgtY2hpbGQoMSkge1xyXG4gICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDBzO1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICAubHplLWJsb2NrZXJfX2RvdDpudGgtY2hpbGQoMikge1xyXG4gICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuMnM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5semUtYmxvY2tlcl9fZG90Om50aC1jaGlsZCgzKSB7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC40cztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBrZXlmcmFtZXMgZG90dGluZyB7XHJcbiAgICAgICAgICAgIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwLjM7IH1cclxuICAgICAgICAgICAgNDAlIHsgb3BhY2l0eTogMTsgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGl2Lmx6ZS1ibG9ja2VyX19lcnJvciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZjAwO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAxcHggI2ZmNWY1ZiAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGl2Lmx6ZS1ibG9ja2VyX19lcnJvcl9zdWdnZXN0aW9uIHtcclxuICAgICAgICAgICAgY29sb3I6ICNjY2MgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7XHJcbiAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cclxuICAgICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cclxuICAgICAgICB9XHJcbiAgICAgICAgYDtcclxuXHJcbiAgICAgICAgY29uc3Qgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcclxuXHJcbiAgICAgICAgaWYgKGFkZCkge1xyXG4gICAgICAgICAgICBpZiAoIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5semUtYmxvY2tlcicpKSB7XHJcbiAgICAgICAgICAgICAgICBzdHlsZUVsZW1lbnQuaW5uZXJIVE1MID0gc3R5bGU7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICBib2R5Lmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlZW5kJywgYmxjb2tlckh0bWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmVCbG9ja2VyKHN0eWxlRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gc3R5bGVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVtb3ZlQmxvY2tlcihzdHlsZUVsZW1lbnQ6IEhUTUxTdHlsZUVsZW1lbnQgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBibG9ja2VyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmx6ZS1ibG9ja2VyJyk7XHJcbiAgICAgICAgYmxvY2tlcj8ucmVtb3ZlKCk7XHJcbiAgICAgICAgc3R5bGVFbGVtZW50Py5yZW1vdmUoKTtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZXh0cmFjdEpzb25Gcm9tUmVzcG9uc2UoYm9keTogYW55LCBvbkVycm9yPzogKGJvZHk6IGFueSkgPT4gdm9pZCk6IGFueSB7XHJcbiAgICAvLyBJZiBhbHJlYWR5IGFuIG9iamVjdCwganVzdCByZXR1cm5cclxuICAgIGlmICh0eXBlb2YgYm9keSA9PT0gJ29iamVjdCcgJiYgYm9keSAhPT0gbnVsbCkgcmV0dXJuIGJvZHk7XHJcblxyXG4gICAgLy8gSWYgaXQncyBhIHN0cmluZywgdHJ5IHRvIGV4dHJhY3QgSlNPTiBwb3J0aW9uXHJcbiAgICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29uc3QgZmlyc3RCcmFjZSA9IGJvZHkuaW5kZXhPZigneycpO1xyXG4gICAgICAgIGlmIChmaXJzdEJyYWNlICE9PSAtMSkge1xyXG4gICAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gYm9keS5zdWJzdHJpbmcoZmlyc3RCcmFjZSk7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uU3RyaW5nKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgcGFyc2luZyBmYWlscywgcmV0dXJuIG9yaWdpbmFsIHN0cmluZ1xyXG4gICAgICAgICAgICAgICAgb25FcnJvcj8uKGJvZHkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGJvZHk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHJldHVybiBib2R5O1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQXBpSGVscGVyID0gbmV3IExvY2FsaXplQXBpSGVscGVyKCk7Il19
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jY2FsaXplLmFwaS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9BTkdVTEFSL0xJQlJBUklFUy9sb2NhbGl6ZS50b2tlbi4xMi4xLjAvZGV2L3NyYy9sb2NhbGl6ZS10b2tlbi9oZWxwZXJzL2xvY2NhbGl6ZS5hcGkuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQVcsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWdCNUQsTUFBTSxpQkFBaUI7SUFBdkI7UUFFYSx3QkFBbUIsR0FBMkI7WUFDbkQsZUFBZSxFQUFFO2dCQUNiLE9BQU8sRUFBRSx3Q0FBd0M7Z0JBQ2pELFdBQVcsRUFBRSxJQUFJO2dCQUNqQixpQkFBaUIsRUFBRSxLQUFLO2FBQzNCO1NBQ0osQ0FBQztJQW9STixDQUFDO0lBbFJTLFlBQVksQ0FBVSxPQUFzQjs7WUFDOUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLElBQUksU0FBYyxDQUFDO1lBQ25CLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztZQUVyQixvREFBb0Q7WUFDcEQsT0FBTyxtQ0FBUSxJQUFJLENBQUMsbUJBQW1CLEdBQUssT0FBTyxDQUFFLENBQUE7WUFFckQsSUFBSSxZQUEwQyxDQUFDO1lBRS9DLE9BQU8sUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDcEMsSUFBSTtvQkFDQSxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDakMsT0FBTyxNQUFNLENBQUM7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SUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLFVBQVUsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlDLElBQUk7Z0JBQ0EsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2pDO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1IsMkNBQTJDO2dCQUMzQyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQ2hCLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7U0FDSjtLQUNKO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSUFwaU9wdGlvbnMsIElMb2NhbGl6ZUFwaUNvbmZpZ3MsIElPbkNvbm5lY3Rpb25FcnJvciB9IGZyb20gXCIuL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsLCBjYXRjaEVycm9yLCB0aHJvd0Vycm9yLCBTdWJqZWN0LCBtYXAgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB3YWl0Rm9yIH0gZnJvbSBcIi4uL2xvY2FsaXplLnRva2VuXCI7XHJcbmltcG9ydCB7IExPQ0FMSVpFX0FQSV9BU1NFVFMgfSBmcm9tIFwiLi9sb2NhbGl6ZS5hcGkuYXNzZXRzXCI7XHJcblxyXG5pbnRlcmZhY2UgSVJlcXVlc3RJbnN0YW5jZSB7XHJcbiAgICBjbGllbnQ6IEh0dHBDbGllbnQ7XHJcbiAgICBkZXN0cm95JDogKCkgPT4gU3ViamVjdDx2b2lkPjtcclxufVxyXG5cclxuaW50ZXJmYWNlIElSZXRyeU9wdGlvbnMge1xyXG4gICAgbWF4UmV0cmllczogKCkgPT4gbnVtYmVyO1xyXG4gICAgZGVsYXk6IG51bWJlcjtcclxuICAgIGNhbGxiYWNrOiAoKSA9PiBQcm9taXNlPGFueT4gfCBhbnk7XHJcbiAgICByZXRyeVVubGVzcz86IChlcnJvcjogYW55KSA9PiBib29sZWFuO1xyXG4gICAgb25FcnJvcj86IChlcnJvcjogYW55KSA9PiBQcm9taXNlPHZvaWQ+IHwgYW55O1xyXG4gICAgY29ubmVjdGlvbkVycm9yPzogSU9uQ29ubmVjdGlvbkVycm9yXHJcbn1cclxuXHJcbmNsYXNzIExvY2FsaXplQXBpSGVscGVyIHtcclxuXHJcbiAgICByZWFkb25seSBkZWZhdWx0UmV0cnlPcHRpb25zOiBQYXJ0aWFsPElSZXRyeU9wdGlvbnM+ID0ge1xyXG4gICAgICAgIGNvbm5lY3Rpb25FcnJvcjoge1xyXG4gICAgICAgICAgICBtZXNzYWdlOiAnQ29ubmVjdGlvbiBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIHdhaXQnLFxyXG4gICAgICAgICAgICBibG9ja1NjcmVlbjogdHJ1ZSxcclxuICAgICAgICAgICAgYmxvY2tTY3JlZW5aSW5kZXg6IDEwMDAwXHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBhc3luYyBwZXJmb3JtUmV0cnk8VCA9IGFueT4ob3B0aW9uczogSVJldHJ5T3B0aW9ucyk6IFByb21pc2U8VD4ge1xyXG4gICAgICAgIGxldCBhdHRlbXB0cyA9IDA7XHJcbiAgICAgICAgbGV0IGxhc3RFcnJvcjogYW55O1xyXG4gICAgICAgIGxldCBjb25zb2xlQ291bnQgPSAwO1xyXG5cclxuICAgICAgICAvLyBNZXJnZSBkZWZhdWx0IHJldHJ5IG9wdGlvbnMgd2l0aCBwcm92aWRlZCBvcHRpb25zXHJcbiAgICAgICAgb3B0aW9ucyA9IHsgLi4udGhpcy5kZWZhdWx0UmV0cnlPcHRpb25zLCAuLi5vcHRpb25zIH1cclxuXHJcbiAgICAgICAgbGV0IHN0eWxlRWxlbWVudDogSFRNTFN0eWxlRWxlbWVudCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgICAgd2hpbGUgKGF0dGVtcHRzIDwgb3B0aW9ucy5tYXhSZXRyaWVzKCkpIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG9wdGlvbnMuY2FsbGJhY2soKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlQmxvY2tlcihzdHlsZUVsZW1lbnQpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuXHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgIGxhc3RFcnJvciA9IGVycm9yO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChjb25zb2xlQ291bnQgPj0gNykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuY2xlYXIoKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlQ291bnQgPSAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnJldHJ5VW5sZXNzICYmICFvcHRpb25zLnJldHJ5VW5sZXNzKGVycm9yKSlcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjsgLy8gSWYgdGhlIGVycm9yIHNob3VsZCBub3QgYmUgcmV0cmllZCwgcmV0aHJvdyBpdFxyXG5cclxuICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBjb25uZWN0aW9uIGVycm9yXHJcbiAgICAgICAgICAgICAgICBzdHlsZUVsZW1lbnQgPSBhd2FpdCB0aGlzLm9uQ29ubmVjdGlvbkVycm9yKG9wdGlvbnMsIGVycm9yKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5vbkVycm9yKVxyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuaW52b2tlSG9vayhvcHRpb25zLm9uRXJyb3IuYmluZCh0aGlzLCBlcnJvcikpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChhdHRlbXB0cyA+PSBvcHRpb25zLm1heFJldHJpZXMoKSAtIDEpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcblxyXG4gICAgICAgICAgICAgICAgYXR0ZW1wdHMrKztcclxuICAgICAgICAgICAgICAgIGNvbnNvbGVDb3VudCsrO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBBdHRlbXB0ICR7YXR0ZW1wdHN9IGZhaWxlZC4gUmV0cnlpbmcuLi5gLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB3YWl0Rm9yKG9wdGlvbnMuZGVsYXkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zb2xlLndhcm4oYEZhaWxlZCBhZnRlciAke29wdGlvbnMubWF4UmV0cmllcygpfSBhdHRlbXB0c2ApO1xyXG4gICAgICAgIHRocm93IGxhc3RFcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBwZXJmb3JtUmVxdWVzdFdpdGhSZXRyeTxUID0gYW55PihcclxuICAgICAgICBvcHRpb25zOiBJQXBpT3B0aW9ucyxcclxuICAgICAgICBjb25maWc6IElMb2NhbGl6ZUFwaUNvbmZpZ3MsXHJcbiAgICAgICAgcGVyZm9ybVJlcXVlc3Q6IDxUID0gYW55PihvcHRpb25zOiBJQXBpT3B0aW9ucykgPT4gUHJvbWlzZTxUPlxyXG4gICAgKTogUHJvbWlzZTxUPiB7XHJcblxyXG4gICAgICAgIGNvbnN0IHJldHJ5VW5sZXNzID0gY29uZmlnLnJldHJ5T3B0aW9ucz8ucmV0cnlGdW5jdGlvblxyXG4gICAgICAgICAgICB8fCB0aGlzLmlzQ29ubmVjdGlvbkVycm9yO1xyXG5cclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wZXJmb3JtUmV0cnkoe1xyXG4gICAgICAgICAgICBjb25uZWN0aW9uRXJyb3I6IGNvbmZpZy5yZXRyeU9wdGlvbnM/Lm9uQ29ubmVjdGlvbkVycm9yLFxyXG4gICAgICAgICAgICBtYXhSZXRyaWVzOiAoKSA9PiBjb25maWcucmV0cnlPcHRpb25zPy5tYXhSZXRyaWVzID8/IDEwMDAsXHJcbiAgICAgICAgICAgIGRlbGF5OiBjb25maWcucmV0cnlPcHRpb25zPy5kZWxheSA/PyA1MDAsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiAoKSA9PiBwZXJmb3JtUmVxdWVzdDxUPihvcHRpb25zKSxcclxuICAgICAgICAgICAgcmV0cnlVbmxlc3M6IHJldHJ5VW5sZXNzLFxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRVcmwoYmFzZVVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRVcmwgPSBgJHtiYXNlVXJsLnRyaW0oKS5yZXBsYWNlKC9cXC8/JC8sICcvJyl9JHtwYXRoLnRyaW0oKS5yZXBsYWNlKC9eXFwvLywgJycpfWA7XHJcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRVcmwuZW5kc1dpdGgoJy8nKVxyXG4gICAgICAgICAgICA/IG5vcm1hbGl6ZWRVcmwuc2xpY2UoMCwgLTEpXHJcbiAgICAgICAgICAgIDogbm9ybWFsaXplZFVybDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBpbnZva2VIb29rKGNhbGxiYWNrPzogKCkgPT4gUHJvbWlzZTxhbnk+IHwgYW55KTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBpZiAoIWNhbGxiYWNrKSByZXR1cm47XHJcblxyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxiYWNrKCk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgYXdhaXQgcmVzdWx0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVSZXF1ZXN0PFQgPSBhbnk+KFxyXG4gICAgICAgIGluc3RhbmNlOiBSZXF1aXJlZDxJUmVxdWVzdEluc3RhbmNlPixcclxuICAgICAgICBtZXRob2Q6IHN0cmluZyxcclxuICAgICAgICB1cmw6IHN0cmluZyxcclxuICAgICAgICBib2R5OiBhbnksXHJcbiAgICAgICAgb3B0aW9uczogeyBoZWFkZXJzOiBIdHRwSGVhZGVycyB9LFxyXG4gICAgICAgIG9uSW52YWxpZFJlc3BvbnNlQm9keT86IChib2R5OiBhbnkpID0+IHZvaWRcclxuICAgICkge1xyXG4gICAgICAgIGNvbnN0IHJlcXVlc3QkID0gaW5zdGFuY2UuY2xpZW50LnJlcXVlc3Q8VD4obWV0aG9kLCB1cmwsIHtcclxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgICAgICAgYm9keSxcclxuICAgICAgICB9KS5waXBlKFxyXG4gICAgICAgICAgICB0YWtlVW50aWwoaW5zdGFuY2UuZGVzdHJveSQoKSksXHJcbiAgICAgICAgICAgIG1hcCgoYm9keSkgPT4gZXh0cmFjdEpzb25Gcm9tUmVzcG9uc2UoYm9keSwgb25JbnZhbGlkUmVzcG9uc2VCb2R5KSksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gQ29udmVydCB0byBhIG5vbi1vYnNlcnZhYmxlIGVycm9yIHRvIGhhbmRsZSBpbiB0aGUgcHJvbWlzZVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXF1ZXN0JDtcclxuICAgIH1cclxuXHJcbiAgICBkZWZhdWx0UmV0cnlGdW5jdGlvbihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiBib29sZWFuIHtcclxuXHJcbiAgICAgICAgLy8gRG9uJ3QgcmV0cnkgZm9yIG90aGVyIGVycm9ycyAobGlrZSA0MDAsIDQwMSwgNDAzLCBldGMuKVxyXG4gICAgICAgIGlmICghdGhpcy5pc0Nvbm5lY3Rpb25FcnJvcihlcnJvcikpXHJcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpc0Nvbm5lY3Rpb25FcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBpc05ldHdvcmtFcnJvciA9IGVycm9yLnN0YXR1cyA9PT0gMDtcclxuICAgICAgICBjb25zdCBpc1NlcnZlckVycm9yID0gZXJyb3Iuc3RhdHVzID49IDEwMDAgJiYgZXJyb3Iuc3RhdHVzIDwgNjAwO1xyXG4gICAgICAgIHJldHVybiBpc05ldHdvcmtFcnJvciB8fCBpc1NlcnZlckVycm9yO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG9uQ29ubmVjdGlvbkVycm9yKFxyXG4gICAgICAgIG9wdGlvbnM6IElSZXRyeU9wdGlvbnMsXHJcbiAgICAgICAgZXJyb3I6IGFueVxyXG4gICAgKTogUHJvbWlzZTxQcm9taXNlPHZvaWQ+IHwgYW55PiB7XHJcblxyXG4gICAgICAgIGlmICghb3B0aW9ucy5jb25uZWN0aW9uRXJyb3IpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgbGV0IHN0eWxlRWxlbWVudDogSFRNTFN0eWxlRWxlbWVudCB8IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAodGhpcy5pc0Nvbm5lY3Rpb25FcnJvcihlcnJvcikpIHtcclxuXHJcbiAgICAgICAgICAgIHN0eWxlRWxlbWVudCA9IHRoaXMuc2NyZWVuQmxvY2tlcihvcHRpb25zLCBlcnJvciwgdHJ1ZSk7XHJcblxyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmludm9rZUhvb2sob3B0aW9ucy5jb25uZWN0aW9uRXJyb3IuY2FsbGJhY2s/LmJpbmQodGhpcywgZXJyb3IpKTtcclxuICAgICAgICAgICAgcmV0dXJuIHN0eWxlRWxlbWVudDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNjcmVlbkJsb2NrZXIob3B0aW9ucywgZXJyb3IsIGZhbHNlKTtcclxuICAgICAgICAgICAgc3R5bGVFbGVtZW50Py5yZW1vdmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2NyZWVuQmxvY2tlcihvcHRvbnM6IElSZXRyeU9wdGlvbnMsXHJcbiAgICAgICAgZXJyb3I/OiBIdHRwRXJyb3JSZXNwb25zZSxcclxuICAgICAgICBhZGQ6IGJvb2xlYW4gPSB0cnVlKTogSFRNTFN0eWxlRWxlbWVudCB8IHVuZGVmaW5lZCB7XHJcblxyXG4gICAgICAgIGlmICghb3B0b25zLmNvbm5lY3Rpb25FcnJvcj8uYmxvY2tTY3JlZW4pXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IG9wdG9ucy5jb25uZWN0aW9uRXJyb3I/Lm1lc3NhZ2VcclxuICAgICAgICAgICAgfHwgJ0Nvbm5lY3Rpb24gZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSB3YWl0JztcclxuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfHwgJ0FuIGVycm9yIG9jY3VycmVkJztcclxuICAgICAgICBjb25zdCBzdWdnZXN0aW5NZXNzYWdlID0gb3B0b25zLmNvbm5lY3Rpb25FcnJvcj8uc3VnZ2VzdGlvbk1lc3NhZ2VcclxuICAgICAgICAgICAgfHwgJ1BsZWFzZSBjaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24gb3IgdGhlIHNlcnZlciBzdGF0dXMuJztcclxuXHJcbiAgICAgICAgY29uc3QgekluZGV4ID0gb3B0b25zLmNvbm5lY3Rpb25FcnJvcj8uYmxvY2tTY3JlZW5aSW5kZXggfHwgMTAwMDA7XHJcblxyXG4gICAgICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5ib2R5O1xyXG4gICAgICAgIGNvbnN0IGJsY29rZXJIdG1sID0gYFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsemUtYmxvY2tlclwiPlxyXG4gICAgICAgICAgICAke0xPQ0FMSVpFX0FQSV9BU1NFVFMubmV0d29yay5ub0Nvbm5lY3Rpb259XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsemUtYmxvY2tlcl9fbWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgICAgJHttZXNzYWdlfVxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsemUtYmxvY2tlcl9fZG90dGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibHplLWJsb2NrZXJfX2RvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImx6ZS1ibG9ja2VyX19kb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsemUtYmxvY2tlcl9fZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImx6ZS1ibG9ja2VyX19lcnJvclwiPiR7ZXJyb3JNZXNzYWdlfTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibHplLWJsb2NrZXJfX2Vycm9yX3N1Z2dlc3Rpb25cIj4ke3N1Z2dlc3Rpbk1lc3NhZ2V9PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgYDtcclxuICAgICAgICBjb25zdCBzdHlsZSA9IGBcclxuICAgICAgICBkaXYubHplLWJsb2NrZXIge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjg1KSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICB6LWluZGV4OiAke3pJbmRleH07XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdmcjbHplLW5vLWNvbm5lY3Rpb24ge1xyXG4gICAgICAgICAgICB3aWR0aDogNzVweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiA3NXB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBkaXYubHplLWJsb2NrZXJfX21lc3NhZ2Uge1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIC5semUtYmxvY2tlcl9fZG90dGluZyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3Bhbi5semUtYmxvY2tlcl9fZG90IHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICB3aWR0aDogN3B4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDdweDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMztcclxuICAgICAgICAgICAgYW5pbWF0aW9uOiBkb3R0aW5nIDFzIGluZmluaXRlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAubHplLWJsb2NrZXJfX2RvdDpudGgtY2hpbGQoMSkge1xyXG4gICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDBzO1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICAubHplLWJsb2NrZXJfX2RvdDpudGgtY2hpbGQoMikge1xyXG4gICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuMnM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5semUtYmxvY2tlcl9fZG90Om50aC1jaGlsZCgzKSB7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC40cztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBrZXlmcmFtZXMgZG90dGluZyB7XHJcbiAgICAgICAgICAgIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwLjM7IH1cclxuICAgICAgICAgICAgNDAlIHsgb3BhY2l0eTogMTsgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGl2Lmx6ZS1ibG9ja2VyX19lcnJvciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZjAwO1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAxcHggI2ZmNWY1ZiAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGl2Lmx6ZS1ibG9ja2VyX19lcnJvcl9zdWdnZXN0aW9uIHtcclxuICAgICAgICAgICAgY29sb3I6ICNjY2MgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIEBrZXlmcmFtZXMgc3BpbiB7XHJcbiAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cclxuICAgICAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cclxuICAgICAgICB9XHJcbiAgICAgICAgYDtcclxuXHJcbiAgICAgICAgY29uc3Qgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcclxuXHJcbiAgICAgICAgaWYgKGFkZCkge1xyXG4gICAgICAgICAgICBpZiAoIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5semUtYmxvY2tlcicpKSB7XHJcbiAgICAgICAgICAgICAgICBzdHlsZUVsZW1lbnQuaW5uZXJIVE1MID0gc3R5bGU7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICBib2R5Lmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlZW5kJywgYmxjb2tlckh0bWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmVCbG9ja2VyKHN0eWxlRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gc3R5bGVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVtb3ZlQmxvY2tlcihzdHlsZUVsZW1lbnQ6IEhUTUxTdHlsZUVsZW1lbnQgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBibG9ja2VyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmx6ZS1ibG9ja2VyJyk7XHJcbiAgICAgICAgYmxvY2tlcj8ucmVtb3ZlKCk7XHJcbiAgICAgICAgc3R5bGVFbGVtZW50Py5yZW1vdmUoKTtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZXh0cmFjdEpzb25Gcm9tUmVzcG9uc2UoYm9keTogYW55LCBvbkVycm9yPzogKGJvZHk6IGFueSkgPT4gdm9pZCk6IGFueSB7XHJcbiAgICAvLyBJZiBhbHJlYWR5IGFuIG9iamVjdCwganVzdCByZXR1cm5cclxuICAgIGlmICh0eXBlb2YgYm9keSA9PT0gJ29iamVjdCcgJiYgYm9keSAhPT0gbnVsbCkgcmV0dXJuIGJvZHk7XHJcblxyXG4gICAgLy8gSWYgaXQncyBhIHN0cmluZywgdHJ5IHRvIGV4dHJhY3QgSlNPTiBwb3J0aW9uXHJcbiAgICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29uc3QgZmlyc3RCcmFjZSA9IGJvZHkuaW5kZXhPZigneycpO1xyXG4gICAgICAgIGlmIChmaXJzdEJyYWNlICE9PSAtMSkge1xyXG4gICAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gYm9keS5zdWJzdHJpbmcoZmlyc3RCcmFjZSk7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uU3RyaW5nKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgcGFyc2luZyBmYWlscywgcmV0dXJuIG9yaWdpbmFsIHN0cmluZ1xyXG4gICAgICAgICAgICAgICAgb25FcnJvcj8uKGJvZHkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGJvZHk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGJvZHk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBBcGlIZWxwZXIgPSBuZXcgTG9jYWxpemVBcGlIZWxwZXIoKTsiXX0=
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
import { Injectable } from "@angular/core";
|
|
3
|
-
import { LocalizeTokenService } from "./localize.token.service";
|
|
4
2
|
import { HttpClient, HttpHeaders } from "@angular/common/http";
|
|
5
|
-
import {
|
|
3
|
+
import { Injectable } from "@angular/core";
|
|
6
4
|
import { BehaviorSubject, Subject } from "rxjs";
|
|
7
5
|
import { EMethod } from "./helpers/interfaces";
|
|
8
6
|
import { ApiHelper } from "./helpers/loccalize.api.helper";
|
|
7
|
+
import { LocalizeToken, waitFor, waitUntil } from "./localize.token";
|
|
8
|
+
import { LocalizeTokenService } from "./localize.token.service";
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@angular/common/http";
|
|
11
11
|
import * as i2 from "./localize.token.service";
|
|
@@ -48,6 +48,7 @@ export class LocalizeApiService {
|
|
|
48
48
|
set accessToken(value) { this.localizeTokenService.accessToken = value; }
|
|
49
49
|
get refreshToken() { return this.localizeTokenService.refreshToken; }
|
|
50
50
|
get tenantToken() { return this.localizeTokenService.tenantToken; }
|
|
51
|
+
get thirdPartyConfig() { var _a; return (_a = this.localizeTokenService.config) === null || _a === void 0 ? void 0 : _a.thirdPartyConfig; }
|
|
51
52
|
get config() {
|
|
52
53
|
this.validateConfig();
|
|
53
54
|
return this.configSubject.value;
|
|
@@ -92,6 +93,8 @@ export class LocalizeApiService {
|
|
|
92
93
|
delay: 10,
|
|
93
94
|
retryUnless: (error) => error.status === 401 || ApiHelper.isConnectionError(error),
|
|
94
95
|
callback: () => __awaiter(this, void 0, void 0, function* () {
|
|
96
|
+
// Handle third party API unauthorized error when request
|
|
97
|
+
this.handleThirdPartyAuthError(error, options.requestUrl);
|
|
95
98
|
// Only handle 401 Unauthorized errors
|
|
96
99
|
yield this.revokeToken();
|
|
97
100
|
// Retry the request with the new access token
|
|
@@ -100,6 +103,21 @@ export class LocalizeApiService {
|
|
|
100
103
|
});
|
|
101
104
|
});
|
|
102
105
|
}
|
|
106
|
+
handleThirdPartyAuthError(error, requestUrl) {
|
|
107
|
+
var _a, _b, _c;
|
|
108
|
+
if (!((_a = this.thirdPartyConfig) === null || _a === void 0 ? void 0 : _a.isThirdPartyMode))
|
|
109
|
+
return;
|
|
110
|
+
if (error.status === 401) {
|
|
111
|
+
if (this.thirdPartyConfig.lastUnauthorizedUrl === requestUrl) {
|
|
112
|
+
this.thirdPartyConfig.lastUnauthorizedUrl = "";
|
|
113
|
+
throw (_c = (_b = this.config).onException) === null || _c === void 0 ? void 0 : _c.call(_b, Object.assign(Object.assign({}, error), { status: 405, message: `Unauthorized request url ${requestUrl}. Please contact administrator.` }));
|
|
114
|
+
}
|
|
115
|
+
this.thirdPartyConfig.lastUnauthorizedUrl = requestUrl;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
this.thirdPartyConfig.lastUnauthorizedUrl = "";
|
|
119
|
+
}
|
|
120
|
+
}
|
|
103
121
|
performRequest(options) {
|
|
104
122
|
var _a;
|
|
105
123
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -119,13 +137,16 @@ export class LocalizeApiService {
|
|
|
119
137
|
});
|
|
120
138
|
}
|
|
121
139
|
revokeToken() {
|
|
122
|
-
var _a;
|
|
140
|
+
var _a, _b;
|
|
123
141
|
return __awaiter(this, void 0, void 0, function* () {
|
|
124
142
|
try {
|
|
125
143
|
if (yield this.interceptRevokeToken())
|
|
126
144
|
return;
|
|
127
145
|
this.isRevokingToken = true;
|
|
128
|
-
const
|
|
146
|
+
const defaultApiOptions = Object.assign(Object.assign({}, this.buildApiOptions(((_a = this.localizeTokenService.config.refreshToken) === null || _a === void 0 ? void 0 : _a.requestUrl) || '')), { refreshToken: true });
|
|
147
|
+
// If in third party mode need override the default API options with third party API options
|
|
148
|
+
const thirdParyApiOptions = this.buildThirdPartyApiOption(defaultApiOptions);
|
|
149
|
+
const apiOptions = ((_b = this.thirdPartyConfig) === null || _b === void 0 ? void 0 : _b.isThirdPartyMode) ? thirdParyApiOptions : defaultApiOptions;
|
|
129
150
|
// const revokeToken = await this.performRequest(apiOptions);
|
|
130
151
|
const revokeToken = yield ApiHelper.performRequestWithRetry(apiOptions, this.config, this.performRequest.bind(this));
|
|
131
152
|
yield this.handleOnTokenRevoked(revokeToken);
|
|
@@ -141,9 +162,14 @@ export class LocalizeApiService {
|
|
|
141
162
|
}
|
|
142
163
|
});
|
|
143
164
|
}
|
|
165
|
+
buildThirdPartyApiOption(apiOptions) {
|
|
166
|
+
var _a, _b, _c;
|
|
167
|
+
return Object.assign(Object.assign({}, apiOptions), { requestUrl: ((_a = this.thirdPartyConfig) === null || _a === void 0 ? void 0 : _a.refreshToken.requestUrl) || '', method: ((_b = this.thirdPartyConfig) === null || _b === void 0 ? void 0 : _b.refreshToken.method) || EMethod.GET, requestBody: ((_c = this.thirdPartyConfig) === null || _c === void 0 ? void 0 : _c.refreshToken.body) || {}, headers: Object.assign(Object.assign({}, apiOptions.headers), { [SCHEMES.X_SECRET]: `${this.localizeTokenService.clientSecret}` }) });
|
|
168
|
+
}
|
|
144
169
|
/** default http request options */
|
|
145
170
|
buildHeaderOptions(options) {
|
|
146
|
-
|
|
171
|
+
var _a;
|
|
172
|
+
const headers = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (options.refreshToken && { [SCHEMES.X_REFRESH_TOKEN]: `${this.refreshToken}` })), (!options.isFormData && { [SCHEMES.CONTENT_TYPE]: 'application/json' })), { [SCHEMES.AUTHORIZATION]: `Bearer ${this.accessToken}` }), (this.needTenant && { [SCHEMES.X_TENANT]: `${this.tenantToken}` })), (((_a = this.thirdPartyConfig) === null || _a === void 0 ? void 0 : _a.isThirdPartyMode) && { [SCHEMES.X_CLIENT]: `${this.localizeTokenService.clientId}` }));
|
|
147
173
|
return new HttpHeaders(Object.assign(Object.assign({}, headers), options.headers));
|
|
148
174
|
}
|
|
149
175
|
buildApiOptions(baseUrl, path = '', method = EMethod.GET, requestBody = null, headers) {
|
|
@@ -167,9 +193,9 @@ export class LocalizeApiService {
|
|
|
167
193
|
}
|
|
168
194
|
handleOnTokenRevoked(response) {
|
|
169
195
|
return __awaiter(this, void 0, void 0, function* () {
|
|
170
|
-
if (response === null || response === void 0 ? void 0 : response.status) {
|
|
196
|
+
if ((response === null || response === void 0 ? void 0 : response.status) || (response === null || response === void 0 ? void 0 : response.token)) {
|
|
171
197
|
// If the response is successful, update the access token
|
|
172
|
-
this.accessToken = response.message;
|
|
198
|
+
this.accessToken = response.message || response.token; // response.token for third party revoke
|
|
173
199
|
}
|
|
174
200
|
else {
|
|
175
201
|
// If the response indicates an error, invoke the onRevokeUnauthorized hook
|
|
@@ -213,4 +239,4 @@ LocalizeApiService.ctorParameters = () => [
|
|
|
213
239
|
{ type: HttpClient },
|
|
214
240
|
{ type: LocalizeTokenService }
|
|
215
241
|
];
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbG9jYWxpemUtdG9rZW4vbG9jYWxpemUuYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBcUIsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFvQyxPQUFPLEVBQVcsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFFM0QsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQztBQUsxQyxNQUFNLE9BQU8sa0JBQWtCO0lBeUM3QixZQUFxQixVQUFzQixFQUN4QixvQkFBMEM7UUFEeEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN4Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBekM1QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUMvQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUErQixFQUFFLENBQUMsQ0FBQztRQUM5RSx3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMxRCw4QkFBeUIsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQWVqRSxrQkFBYSxHQUFpQztZQUNwRCxlQUFlLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFO1lBQ3BDLHlCQUF5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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTG9jYWxpemVUb2tlblNlcnZpY2UgfSBmcm9tIFwiLi9sb2NhbGl6ZS50b2tlbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZVRva2VuLCB3YWl0Rm9yLCB3YWl0VW50aWwgfSBmcm9tIFwiLi9sb2NhbGl6ZS50b2tlblwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBJTG9jYWxpemVBcGlDb25maWdzLCBJQXBpT3B0aW9ucywgRU1ldGhvZCwgSUhlYWRlciB9IGZyb20gXCIuL2hlbHBlcnMvaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgeyBBcGlIZWxwZXIgfSBmcm9tIFwiLi9oZWxwZXJzL2xvY2NhbGl6ZS5hcGkuaGVscGVyXCI7XHJcblxyXG5jb25zdCBTQ0hFTUVTID0gTG9jYWxpemVUb2tlbi5odHRwSGVhZGVycztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExvY2FsaXplQXBpU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPElMb2NhbGl6ZUFwaUNvbmZpZ3M+Pih7fSk7XHJcbiAgcmVhZG9ubHkgaXNSZXF1ZXN0aW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHJlYWRvbmx5IGlzUmVzb2x2aW5nU3RhcnR1cFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBnZXQgaXNSZXNvbHZpbmdTdGFydHVwKCkgeyByZXR1cm4gdGhpcy5pc1Jlc29sdmluZ1N0YXJ0dXBTdWJqZWN0LnZhbHVlOyB9XHJcblxyXG4gIGdldCBuZWVkVGVuYW50KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5jb25maWcudGVuYW50VG9rZW4gIT09IHVuZGVmaW5lZDsgfVxyXG5cclxuICBnZXQgaXNSZXF1ZXN0aW5nKCkgeyByZXR1cm4gdGhpcy5pc1JlcXVlc3RpbmdTdWJqZWN0LnZhbHVlOyB9XHJcbiAgZ2V0IGlzUmV2b2tpbmdUb2tlbigpIHsgcmV0dXJuIHRoaXMubG9jYWxpemVUb2tlblNlcnZpY2UuaXNSZXZva2luZ1Rva2VuOyB9XHJcbiAgc2V0IGlzUmV2b2tpbmdUb2tlbih2YWx1ZTogYm9vbGVhbikgeyB0aGlzLmxvY2FsaXplVG9rZW5TZXJ2aWNlLmlzUmV2b2tpbmdUb2tlbiA9IHZhbHVlOyB9XHJcblxyXG4gIGdldCBhY2Nlc3NUb2tlbigpOiBzdHJpbmcgfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5hY2Nlc3NUb2tlbjsgfVxyXG4gIHNldCBhY2Nlc3NUb2tlbih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7IHRoaXMubG9jYWxpemVUb2tlblNlcnZpY2UuYWNjZXNzVG9rZW4gPSB2YWx1ZTsgfVxyXG5cclxuICBnZXQgcmVmcmVzaFRva2VuKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLmxvY2FsaXplVG9rZW5TZXJ2aWNlLnJlZnJlc2hUb2tlbjsgfVxyXG4gIGdldCB0ZW5hbnRUb2tlbigpOiBzdHJpbmcgfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS50ZW5hbnRUb2tlbjsgfVxyXG5cclxuICBwcml2YXRlIGRlZmF1bHRDb25maWc6IFBhcnRpYWw8SUxvY2FsaXplQXBpQ29uZmlncz4gPSB7XHJcbiAgICB3YWl0RWFjaFJlcXVlc3Q6IHsgbWlsbGlzZWNvbmRzOiAwIH0sXHJcbiAgICBlbmFibGVSZXF1ZXN0Q2FuY2VsbGF0aW9uOiB0cnVlLFxyXG5cclxuICAgIHJldHJ5T3B0aW9uczoge1xyXG4gICAgICBtYXhSZXRyaWVzOiAxMDAwLFxyXG4gICAgICBkZWxheTogMTAwMCxcclxuICAgICAgcmV0cnlGdW5jdGlvbjogQXBpSGVscGVyLmRlZmF1bHRSZXRyeUZ1bmN0aW9uLmJpbmQodGhpcyksXHJcbiAgICB9LFxyXG5cclxuICB9O1xyXG5cclxuICBwcml2YXRlIGdldCBjb25maWcoKTogUGFydGlhbDxJTG9jYWxpemVBcGlDb25maWdzPiB7XHJcbiAgICB0aGlzLnZhbGlkYXRlQ29uZmlnKCk7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTdWJqZWN0LnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcGlPcHRpb25zOiBQYXJ0aWFsPElBcGlPcHRpb25zPiA9IHtcclxuICAgIG1ldGhvZDogRU1ldGhvZC5HRVQsXHJcbiAgICByZXF1ZXN0Qm9keTogbnVsbCxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2NhbGl6ZVRva2VuU2VydmljZTogTG9jYWxpemVUb2tlblNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHRoZSBBUEkgc2VydmljZS5cclxuICAgKiBAcGFyYW0gYXBpQ29uZmlncyAtIFRoZSBBUEkgY29uZmlndXJhdGlvbnMuXHJcbiAgICovXHJcbiAgaW5pdChhcGlDb25maWdzOiBJTG9jYWxpemVBcGlDb25maWdzKSB7XHJcbiAgICBjb25zb2xlLmxvZygnTG9jYWxpemVBcGlTZXJ2aWNlIGlzIGluaXRpYWxpemVkLicpO1xyXG4gICAgdGhpcy5jb25maWdTdWJqZWN0Lm5leHQoeyAuLi50aGlzLmRlZmF1bHRDb25maWcsIC4uLmFwaUNvbmZpZ3MgfSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWxQZW5kaW5nUmVxdWVzdHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbmZpZy5lbmFibGVSZXF1ZXN0Q2FuY2VsbGF0aW9uXHJcbiAgICAgICYmIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgaGlnaGVyLW9yZGVyIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIGN1cnJpZWQgZnVuY3Rpb24gZm9yIG1ha2luZyBBUEkgcmVxdWVzdHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYmFzZVVybCAtIFRoZSBiYXNlIFVSTCBvZiB0aGUgQVBJLlxyXG4gICAqIEByZXR1cm5zIEEgY3VycmllZCBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIG1ha2UgQVBJIHJlcXVlc3RzLlxyXG4gICAqL1xyXG4gIGZ1bmMgPSAoYmFzZVVybDogc3RyaW5nKSA9PlxyXG4gICAgPFQgPSBhbnk+KHBhdGg6IHN0cmluZywgbWV0aG9kOiBFTWV0aG9kID0gRU1ldGhvZC5HRVQsIHJlcUJvZHk6IGFueSA9IG51bGwsIHJlcUhlYWRlcnM/OiBJSGVhZGVyKSA9PlxyXG4gICAgICB0aGlzLnJlcXVlc3Q8VD4oYmFzZVVybCwgcGF0aCwgbWV0aG9kLCByZXFCb2R5LCByZXFIZWFkZXJzKVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcmVxdWVzdDxUID0gYW55PihiYXNlVXJsOiBzdHJpbmcsXHJcbiAgICBwYXRoOiBzdHJpbmcsXHJcbiAgICBtZXRob2Q6IEVNZXRob2QgPSBFTWV0aG9kLkdFVCxcclxuICAgIHJlcUJvZHk6IGFueSA9IG51bGwsXHJcbiAgICByZXFIZWFkZXJzPzogSUhlYWRlcik6IFByb21pc2U8VD4ge1xyXG5cclxuICAgIGF3YWl0IHdhaXRVbnRpbCgoKSA9PiAhdGhpcy5pc1Jlc29sdmluZ1N0YXJ0dXAsIDUwMCk7XHJcblxyXG4gICAgYXdhaXQgQXBpSGVscGVyLmludm9rZUhvb2sodGhpcy5jb25maWcub25QcmVwYXJlUmVxdWVzdCk7XHJcblxyXG4gICAgY29uc3QgYXBpT3B0aW9ucyA9IHRoaXMuYnVpbGRBcGlPcHRpb25zKGJhc2VVcmwsIHBhdGgsIG1ldGhvZCwgcmVxQm9keSwgcmVxSGVhZGVycyk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgYXdhaXQgdGhpcy50b1dhaXRGb3JQcmV2aW91c1JlcXVlc3QoKTtcclxuXHJcbiAgICAgIHJldHVybiBhd2FpdCBBcGlIZWxwZXIucGVyZm9ybVJlcXVlc3RXaXRoUmV0cnk8VD4oXHJcbiAgICAgICAgYXBpT3B0aW9ucyxcclxuICAgICAgICB0aGlzLmNvbmZpZyxcclxuICAgICAgICB0aGlzLnBlcmZvcm1SZXF1ZXN0LmJpbmQodGhpcylcclxuICAgICAgKTtcclxuXHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVPblJlcXVlc3RFcnJvcihlcnJvciwgYXBpT3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGhhbmRsZU9uUmVxdWVzdEVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSwgb3B0aW9uczogSUFwaU9wdGlvbnMpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgaWYgKGVycm9yLnN0YXR1cyAhPT0gNDAxKVxyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuXHJcbiAgICBhd2FpdCB3YWl0VW50aWwoKCkgPT4gIXRoaXMuaXNSZXNvbHZpbmdTdGFydHVwLCA1MCk7XHJcblxyXG4gICAgcmV0dXJuIGF3YWl0IEFwaUhlbHBlci5wZXJmb3JtUmV0cnkoe1xyXG4gICAgICBtYXhSZXRyaWVzOiAoKSA9PiAxMDAwLFxyXG4gICAgICBkZWxheTogMTAsXHJcbiAgICAgIHJldHJ5VW5sZXNzOiAoZXJyb3IpID0+IGVycm9yLnN0YXR1cyA9PT0gNDAxIHx8IEFwaUhlbHBlci5pc0Nvbm5lY3Rpb25FcnJvcihlcnJvciksXHJcbiAgICAgIGNhbGxiYWNrOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgLy8gT25seSBoYW5kbGUgNDAxIFVuYXV0aG9yaXplZCBlcnJvcnNcclxuICAgICAgICBhd2FpdCB0aGlzLnJldm9rZVRva2VuKCk7XHJcblxyXG4gICAgICAgIC8vIFJldHJ5IHRoZSByZXF1ZXN0IHdpdGggdGhlIG5ldyBhY2Nlc3MgdG9rZW5cclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wZXJmb3JtUmVxdWVzdChvcHRpb25zKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHBlcmZvcm1SZXF1ZXN0PFQgPSBhbnk+KG9wdGlvbnM6IElBcGlPcHRpb25zKTogUHJvbWlzZTxUPiB7XHJcblxyXG4gICAgLy8gQnVpbGQgdGhlIHJlcXVlc3Qgb3B0aW9uc1xyXG4gICAgY29uc3QgYnVpbGRPcHRpb25zID0geyBoZWFkZXJzOiB0aGlzLmJ1aWxkSGVhZGVyT3B0aW9ucyhvcHRpb25zKSB9O1xyXG5cclxuICAgIC8vIENyZWF0ZSB0aGUgcmVxdWVzdCBvYnNlcnZhYmxlXHJcbiAgICBjb25zdCByZXF1ZXN0JCA9IEFwaUhlbHBlci5jcmVhdGVSZXF1ZXN0PFQ+KHtcclxuICAgICAgY2xpZW50OiB0aGlzLmh0dHBDbGllbnQsXHJcbiAgICAgIGRlc3Ryb3kkOiAoKSA9PiB0aGlzLmRlc3Ryb3kkXHJcbiAgICB9LCBvcHRpb25zLm1ldGhvZCwgb3B0aW9ucy5yZXF1ZXN0VXJsLCBvcHRpb25zLnJlcXVlc3RCb2R5LCBidWlsZE9wdGlvbnMsXHJcbiAgICAgIHRoaXMuY29uZmlnLm9uUmVzcG9uc2VCb2R5SW52YWxpZD8uYmluZCh0aGlzKSk7XHJcblxyXG4gICAgLy8gU2V0IHRoZSBpc1JlcXVlc3Rpbmcgc3RhdGUgdG8gdHJ1ZSBiZWZvcmUgbWFraW5nIHRoZSByZXF1ZXN0XHJcbiAgICB0aGlzLmlzUmVxdWVzdGluZ1N1YmplY3QubmV4dCh0cnVlKTtcclxuXHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT5cclxuICAgICAgcmVxdWVzdCQuc3Vic2NyaWJlKHsgbmV4dDogcmVzb2x2ZSwgZXJyb3I6IHJlamVjdCB9KSk7XHJcblxyXG4gICAgLy8gUmVzZXQgdGhlIGlzUmVxdWVzdGluZyBzdGF0ZSBhZnRlciB0aGUgcmVxdWVzdCBjb21wbGV0ZXNcclxuICAgIHRoaXMuaXNSZXF1ZXN0aW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcclxuXHJcbiAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHJldm9rZVRva2VuKCk6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGlmIChhd2FpdCB0aGlzLmludGVyY2VwdFJldm9rZVRva2VuKCkpXHJcbiAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgdGhpcy5pc1Jldm9raW5nVG9rZW4gPSB0cnVlO1xyXG5cclxuICAgICAgY29uc3QgYXBpT3B0aW9uczogSUFwaU9wdGlvbnMgPSB7XHJcbiAgICAgICAgLi4udGhpcy5idWlsZEFwaU9wdGlvbnModGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5jb25maWcucmVmcmVzaFRva2VuPy5yZXF1ZXN0VXJsIHx8ICcnKSxcclxuICAgICAgICByZWZyZXNoVG9rZW46IHRydWUsXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGNvbnN0IHJldm9rZVRva2VuID0gYXdhaXQgdGhpcy5wZXJmb3JtUmVxdWVzdChhcGlPcHRpb25zKTtcclxuICAgICAgY29uc3QgcmV2b2tlVG9rZW4gPSBhd2FpdCBBcGlIZWxwZXIucGVyZm9ybVJlcXVlc3RXaXRoUmV0cnkoXHJcbiAgICAgICAgYXBpT3B0aW9ucyxcclxuICAgICAgICB0aGlzLmNvbmZpZyxcclxuICAgICAgICB0aGlzLnBlcmZvcm1SZXF1ZXN0LmJpbmQodGhpcylcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMuaGFuZGxlT25Ub2tlblJldm9rZWQocmV2b2tlVG9rZW4pO1xyXG5cclxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcclxuICAgICAgLy8gSGFuZGxlIHRoZSBlcnJvciwgbG9nIGl0XHJcbiAgICAgIGF3YWl0IEFwaUhlbHBlci5pbnZva2VIb29rKHRoaXMuY29uZmlnLm9uQXV0b0xvZ291dCk7XHJcbiAgICAgIHRocm93IGVycm9yO1xyXG5cclxuICAgIH0gZmluYWxseSB7XHJcbiAgICAgIC8vIFJlc2V0IHRoZSByZXZva2luZyB0b2tlbiBzdGF0ZVxyXG4gICAgICB0aGlzLmlzUmV2b2tpbmdUb2tlbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIGRlZmF1bHQgaHR0cCByZXF1ZXN0IG9wdGlvbnMgKi9cclxuICBwcml2YXRlIGJ1aWxkSGVhZGVyT3B0aW9ucyhvcHRpb25zOiBJQXBpT3B0aW9ucyk6IEh0dHBIZWFkZXJzIHtcclxuXHJcbiAgICBjb25zdCBoZWFkZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xyXG4gICAgICAuLi4ob3B0aW9ucy5yZWZyZXNoVG9rZW4gJiYgeyBbU0NIRU1FUy5YX1JFRlJFU0hfVE9LRU5dOiBgJHt0aGlzLnJlZnJlc2hUb2tlbn1gIH0pLFxyXG4gICAgICAuLi4oIW9wdGlvbnMuaXNGb3JtRGF0YSAmJiB7IFtTQ0hFTUVTLkNPTlRFTlRfVFlQRV06ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcclxuICAgICAgW1NDSEVNRVMuQVVUSE9SSVpBVElPTl06IGBCZWFyZXIgJHt0aGlzLmFjY2Vzc1Rva2VufWAsXHJcbiAgICAgIC4uLih0aGlzLm5lZWRUZW5hbnQgJiYgeyBbU0NIRU1FUy5YX1RFTkFOVF06IGAke3RoaXMudGVuYW50VG9rZW59YCB9KVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKHsgLi4uaGVhZGVycywgLi4ub3B0aW9ucy5oZWFkZXJzIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZEFwaU9wdGlvbnMoXHJcbiAgICBiYXNlVXJsOiBzdHJpbmcsXHJcbiAgICBwYXRoOiBzdHJpbmcgPSAnJyxcclxuICAgIG1ldGhvZDogRU1ldGhvZCA9IEVNZXRob2QuR0VULFxyXG4gICAgcmVxdWVzdEJvZHk6IGFueSA9IG51bGwsXHJcbiAgICBoZWFkZXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxyXG4gICk6IElBcGlPcHRpb25zIHtcclxuXHJcbiAgICBjb25zdCByZXF1ZXN0VXJsID0gQXBpSGVscGVyLmJ1aWxkVXJsKGJhc2VVcmwsIHBhdGgpO1xyXG4gICAgY29uc3QgaXNGb3JtRGF0YSA9IHJlcXVlc3RCb2R5ICYmIHJlcXVlc3RCb2R5IGluc3RhbmNlb2YgRm9ybURhdGE7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi50aGlzLmFwaU9wdGlvbnMsXHJcbiAgICAgIC4uLnsgaGVhZGVycywgbWV0aG9kLCByZXF1ZXN0VXJsLCByZXF1ZXN0Qm9keSwgaXNGb3JtRGF0YSB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgYXN5bmMgdG9XYWl0Rm9yUHJldmlvdXNSZXF1ZXN0KCkge1xyXG4gICAgaWYgKHRoaXMuaXNSZXZva2luZ1Rva2VuKSB7XHJcbiAgICAgIGF3YWl0IHdhaXRVbnRpbCgoKSA9PiAhdGhpcy5pc1Jldm9raW5nVG9rZW4pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRvIHdhaXQgZm9yIGVhY2ggcmVxdWVzdCBpbiA1MG1zLCBldmVuIGlmIHRoZSByZXF1ZXN0IGlzIG5vdCBjb21wbGV0ZWRcclxuICAgIGNvbnN0IHdhaXRNaWxsaXNlY29uZHMgPSB0aGlzLmNvbmZpZy53YWl0RWFjaFJlcXVlc3Q/Lm1pbGxpc2Vjb25kcztcclxuICAgIGlmICh3YWl0TWlsbGlzZWNvbmRzICYmIHRoaXMuaXNSZXF1ZXN0aW5nKSB7XHJcbiAgICAgIC8vIGNvbnNvbGUud2FybihgUmVxdWVzdCB0aHJvdHRsaW5nOiBBbm90aGVyIHJlcXVlc3QgaXMgaW4gcHJvZ3Jlc3MuIFdhaXRpbmcgZm9yICR7d2FpdE1pbGxpc2Vjb25kc31tcy5gKTtcclxuICAgICAgYXdhaXQgd2FpdEZvcih3YWl0TWlsbGlzZWNvbmRzLCB0aGlzLmlzUmVxdWVzdGluZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVPblRva2VuUmV2b2tlZChyZXNwb25zZTogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcblxyXG4gICAgaWYgKHJlc3BvbnNlPy5zdGF0dXMpIHtcclxuICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIHN1Y2Nlc3NmdWwsIHVwZGF0ZSB0aGUgYWNjZXNzIHRva2VuXHJcbiAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSByZXNwb25zZS5tZXNzYWdlO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIElmIHRoZSByZXNwb25zZSBpbmRpY2F0ZXMgYW4gZXJyb3IsIGludm9rZSB0aGUgb25SZXZva2VVbmF1dGhvcml6ZWQgaG9va1xyXG4gICAgICBjb25zb2xlLndhcm4oJ1Rva2VuIHJldm9jYXRpb24gZmFpbGVkLCByZWZyZXNoIHRva2VuIGlzIGV4cGlyZWQuJywgcmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgIGF3YWl0IEFwaUhlbHBlci5pbnZva2VIb29rKHRoaXMuY29uZmlnLm9uUmV2b2tlVW5hdXRob3JpemVkKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGludGVyY2VwdFJldm9rZVRva2VuKCkge1xyXG5cclxuICAgIGlmICh0aGlzLmlzUmV2b2tpbmdUb2tlbikge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ1Rva2VuIGlzIGFscmVhZHkgYmVpbmcgcmV2b2tlZC4gV2FpdGluZyBmb3IgdGhlIGN1cnJlbnQgb3BlcmF0aW9uIHRvIGNvbXBsZXRlLi4uJyk7XHJcbiAgICAgIGF3YWl0IHdhaXRVbnRpbCgoKSA9PiAhdGhpcy5pc1Jldm9raW5nVG9rZW4pO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMucmVmcmVzaFRva2VuKSB7XHJcbiAgICAgIC8vIGF3YWl0IEFwaUhlbHBlci5pbnZva2VIb29rKHRoaXMuYXBpQ29uZmlncy5vbkF1dG9Mb2dvdXQpO1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZnJlc2ggdG9rZW4gaXMgbWlzc2luZy4gUGxlYXNlIGxvZ2luIGFnYWluLicpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVDb25maWcoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5jb25maWcucmVxdWlyZWRUZW5hbnRcclxuICAgICAgJiYgIXRoaXMubG9jYWxpemVUb2tlblNlcnZpY2UuY29uZmlnLnRlbmFudFRva2VuPy5uYW1lPy50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgIHRocm93IEVycm9yKCdUZW5hbnQgdG9rZW4gaXMgcmVxdWlyZWQgYnV0IHRlbmFudFRva2VuTmFtZSBpcyBub3QgY29uZmlndXJlZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5jb25maWcucmVmcmVzaFRva2VuPy5yZXF1ZXN0VXJsPy50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgIHRocm93IEVycm9yKCdSZXZva2UgdG9rZW4gVVJMIGlzIG5vdCBjb25maWd1cmVkIC0gdG9rZW4gcmVmcmVzaCB3aWxsIG5vdCB3b3JrJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9BTkdVTEFSL0xJQlJBUklFUy9sb2NhbGl6ZS50b2tlbi4xMi4xLjAvZGV2L3NyYy9sb2NhbGl6ZS10b2tlbi9sb2NhbGl6ZS5hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBcUIsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUE2QyxNQUFNLHNCQUFzQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQXFCLGFBQWEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFFaEUsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQztBQUsxQyxNQUFNLE9BQU8sa0JBQWtCO0lBd0M3QixZQUFxQixVQUFzQixFQUN4QixvQkFBMEM7UUFEeEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN4Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBeEM1QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUMvQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUErQixFQUFFLENBQUMsQ0FBQztRQUM5RSx3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMxRCw4QkFBeUIsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQWNqRSxrQkFBYSxH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QUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUM3QyxPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3RCLDREQUE0RDtnQkFDNUQsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO2FBQ2xFO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0tBQUE7SUFFRCxjQUFjOztRQUNaLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxjQUFjO2VBQzlDLENBQUMsQ0FBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxXQUFXLDBDQUFFLElBQUksMENBQUUsSUFBSSxHQUFHLE1BQU0sQ0FBQSxFQUFFO1lBQ3ZFLE1BQU0sS0FBSyxDQUFDLGdFQUFnRSxDQUFDLENBQUM7U0FDL0U7UUFFRCxJQUFJLENBQUMsQ0FBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxZQUFZLDBDQUFFLFVBQVUsMENBQUUsSUFBSSxHQUFHLE1BQU0sQ0FBQSxFQUFFO1lBQzdFLE1BQU0sS0FBSyxDQUFDLGtFQUFrRSxDQUFDLENBQUM7U0FDakY7SUFDSCxDQUFDOzs7O1lBcFNGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBWlEsVUFBVTtZQU1WLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBFTWV0aG9kLCBJQXBpT3B0aW9ucywgSUhlYWRlciwgSUxvY2FsaXplQXBpQ29uZmlncyB9IGZyb20gXCIuL2hlbHBlcnMvaW50ZXJmYWNlc1wiO1xyXG5pbXBvcnQgeyBBcGlIZWxwZXIgfSBmcm9tIFwiLi9oZWxwZXJzL2xvY2NhbGl6ZS5hcGkuaGVscGVyXCI7XHJcbmltcG9ydCB7IElUaGlyZFBhcnR5Q29uZmlnLCBMb2NhbGl6ZVRva2VuLCB3YWl0Rm9yLCB3YWl0VW50aWwgfSBmcm9tIFwiLi9sb2NhbGl6ZS50b2tlblwiO1xyXG5pbXBvcnQgeyBMb2NhbGl6ZVRva2VuU2VydmljZSB9IGZyb20gXCIuL2xvY2FsaXplLnRva2VuLnNlcnZpY2VcIjtcclxuXHJcbmNvbnN0IFNDSEVNRVMgPSBMb2NhbGl6ZVRva2VuLmh0dHBIZWFkZXJzO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemVBcGlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcnRpYWw8SUxvY2FsaXplQXBpQ29uZmlncz4+KHt9KTtcclxuICByZWFkb25seSBpc1JlcXVlc3RpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgcmVhZG9ubHkgaXNSZXNvbHZpbmdTdGFydHVwU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGdldCBpc1Jlc29sdmluZ1N0YXJ0dXAoKSB7IHJldHVybiB0aGlzLmlzUmVzb2x2aW5nU3RhcnR1cFN1YmplY3QudmFsdWU7IH1cclxuXHJcbiAgZ2V0IG5lZWRUZW5hbnQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmxvY2FsaXplVG9rZW5TZXJ2aWNlLmNvbmZpZy50ZW5hbnRUb2tlbiAhPT0gdW5kZWZpbmVkOyB9XHJcbiAgZ2V0IGlzUmVxdWVzdGluZygpIHsgcmV0dXJuIHRoaXMuaXNSZXF1ZXN0aW5nU3ViamVjdC52YWx1ZTsgfVxyXG4gIGdldCBpc1Jldm9raW5nVG9rZW4oKSB7IHJldHVybiB0aGlzLmxvY2FsaXplVG9rZW5TZXJ2aWNlLmlzUmV2b2tpbmdUb2tlbjsgfVxyXG4gIHNldCBpc1Jldm9raW5nVG9rZW4odmFsdWU6IGJvb2xlYW4pIHsgdGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5pc1Jldm9raW5nVG9rZW4gPSB2YWx1ZTsgfVxyXG5cclxuICBnZXQgYWNjZXNzVG9rZW4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMubG9jYWxpemVUb2tlblNlcnZpY2UuYWNjZXNzVG9rZW47IH1cclxuICBzZXQgYWNjZXNzVG9rZW4odmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgeyB0aGlzLmxvY2FsaXplVG9rZW5TZXJ2aWNlLmFjY2Vzc1Rva2VuID0gdmFsdWU7IH1cclxuXHJcbiAgZ2V0IHJlZnJlc2hUb2tlbigpOiBzdHJpbmcgfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5yZWZyZXNoVG9rZW47IH1cclxuICBnZXQgdGVuYW50VG9rZW4oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMubG9jYWxpemVUb2tlblNlcnZpY2UudGVuYW50VG9rZW47IH1cclxuICBnZXQgdGhpcmRQYXJ0eUNvbmZpZygpOiBJVGhpcmRQYXJ0eUNvbmZpZyB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLmxvY2FsaXplVG9rZW5TZXJ2aWNlLmNvbmZpZz8udGhpcmRQYXJ0eUNvbmZpZyB9XHJcbiAgcHJpdmF0ZSBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPElMb2NhbGl6ZUFwaUNvbmZpZ3M+ID0ge1xyXG4gICAgd2FpdEVhY2hSZXF1ZXN0OiB7IG1pbGxpc2Vjb25kczogMCB9LFxyXG4gICAgZW5hYmxlUmVxdWVzdENhbmNlbGxhdGlvbjogdHJ1ZSxcclxuXHJcbiAgICByZXRyeU9wdGlvbnM6IHtcclxuICAgICAgbWF4UmV0cmllczogMTAwMCxcclxuICAgICAgZGVsYXk6IDEwMDAsXHJcbiAgICAgIHJldHJ5RnVuY3Rpb246IEFwaUhlbHBlci5kZWZhdWx0UmV0cnlGdW5jdGlvbi5iaW5kKHRoaXMpLFxyXG4gICAgfSxcclxuXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBnZXQgY29uZmlnKCk6IFBhcnRpYWw8SUxvY2FsaXplQXBpQ29uZmlncz4ge1xyXG4gICAgdGhpcy52YWxpZGF0ZUNvbmZpZygpO1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU3ViamVjdC52YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBpT3B0aW9uczogUGFydGlhbDxJQXBpT3B0aW9ucz4gPSB7XHJcbiAgICBtZXRob2Q6IEVNZXRob2QuR0VULFxyXG4gICAgcmVxdWVzdEJvZHk6IG51bGwsXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxpemVUb2tlblNlcnZpY2U6IExvY2FsaXplVG9rZW5TZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSB0aGUgQVBJIHNlcnZpY2UuXHJcbiAgICogQHBhcmFtIGFwaUNvbmZpZ3MgLSBUaGUgQVBJIGNvbmZpZ3VyYXRpb25zLlxyXG4gICAqL1xyXG4gIGluaXQoYXBpQ29uZmlnczogSUxvY2FsaXplQXBpQ29uZmlncykge1xyXG4gICAgY29uc29sZS5sb2coJ0xvY2FsaXplQXBpU2VydmljZSBpcyBpbml0aWFsaXplZC4nKTtcclxuICAgIHRoaXMuY29uZmlnU3ViamVjdC5uZXh0KHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCAuLi5hcGlDb25maWdzIH0pO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsUGVuZGluZ1JlcXVlc3RzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25maWcuZW5hYmxlUmVxdWVzdENhbmNlbGxhdGlvblxyXG4gICAgICAmJiB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBIGhpZ2hlci1vcmRlciBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBjdXJyaWVkIGZ1bmN0aW9uIGZvciBtYWtpbmcgQVBJIHJlcXVlc3RzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGJhc2VVcmwgLSBUaGUgYmFzZSBVUkwgb2YgdGhlIEFQSS5cclxuICAgKiBAcmV0dXJucyBBIGN1cnJpZWQgZnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCB0byBtYWtlIEFQSSByZXF1ZXN0cy5cclxuICAgKi9cclxuICBmdW5jID0gKGJhc2VVcmw6IHN0cmluZykgPT5cclxuICAgIDxUID0gYW55PihwYXRoOiBzdHJpbmcsIG1ldGhvZDogRU1ldGhvZCA9IEVNZXRob2QuR0VULCByZXFCb2R5OiBhbnkgPSBudWxsLCByZXFIZWFkZXJzPzogSUhlYWRlcikgPT5cclxuICAgICAgdGhpcy5yZXF1ZXN0PFQ+KGJhc2VVcmwsIHBhdGgsIG1ldGhvZCwgcmVxQm9keSwgcmVxSGVhZGVycylcclxuXHJcbiAgcHVibGljIGFzeW5jIHJlcXVlc3Q8VCA9IGFueT4oYmFzZVVybDogc3RyaW5nLFxyXG4gICAgcGF0aDogc3RyaW5nLFxyXG4gICAgbWV0aG9kOiBFTWV0aG9kID0gRU1ldGhvZC5HRVQsXHJcbiAgICByZXFCb2R5OiBhbnkgPSBudWxsLFxyXG4gICAgcmVxSGVhZGVycz86IElIZWFkZXIpOiBQcm9taXNlPFQ+IHtcclxuXHJcbiAgICBhd2FpdCB3YWl0VW50aWwoKCkgPT4gIXRoaXMuaXNSZXNvbHZpbmdTdGFydHVwLCA1MDApO1xyXG5cclxuICAgIGF3YWl0IEFwaUhlbHBlci5pbnZva2VIb29rKHRoaXMuY29uZmlnLm9uUHJlcGFyZVJlcXVlc3QpO1xyXG5cclxuICAgIGNvbnN0IGFwaU9wdGlvbnMgPSB0aGlzLmJ1aWxkQXBpT3B0aW9ucyhiYXNlVXJsLCBwYXRoLCBtZXRob2QsIHJlcUJvZHksIHJlcUhlYWRlcnMpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGF3YWl0IHRoaXMudG9XYWl0Rm9yUHJldmlvdXNSZXF1ZXN0KCk7XHJcblxyXG4gICAgICByZXR1cm4gYXdhaXQgQXBpSGVscGVyLnBlcmZvcm1SZXF1ZXN0V2l0aFJldHJ5PFQ+KFxyXG4gICAgICAgIGFwaU9wdGlvbnMsXHJcbiAgICAgICAgdGhpcy5jb25maWcsXHJcbiAgICAgICAgdGhpcy5wZXJmb3JtUmVxdWVzdC5iaW5kKHRoaXMpXHJcbiAgICAgICk7XHJcblxyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yOiBhbnkpIHtcclxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlT25SZXF1ZXN0RXJyb3IoZXJyb3IsIGFwaU9wdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVPblJlcXVlc3RFcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UsIG9wdGlvbnM6IElBcGlPcHRpb25zKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmIChlcnJvci5zdGF0dXMgIT09IDQwMSlcclxuICAgICAgdGhyb3cgZXJyb3I7XHJcblxyXG4gICAgYXdhaXQgd2FpdFVudGlsKCgpID0+ICF0aGlzLmlzUmVzb2x2aW5nU3RhcnR1cCwgNTApO1xyXG5cclxuICAgIHJldHVybiBhd2FpdCBBcGlIZWxwZXIucGVyZm9ybVJldHJ5KHtcclxuICAgICAgbWF4UmV0cmllczogKCkgPT4gMTAwMCxcclxuICAgICAgZGVsYXk6IDEwLFxyXG4gICAgICByZXRyeVVubGVzczogKGVycm9yKSA9PiBlcnJvci5zdGF0dXMgPT09IDQwMSB8fCBBcGlIZWxwZXIuaXNDb25uZWN0aW9uRXJyb3IoZXJyb3IpLFxyXG4gICAgICBjYWxsYmFjazogYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIC8vIEhhbmRsZSB0aGlyZCBwYXJ0eSBBUEkgdW5hdXRob3JpemVkIGVycm9yIHdoZW4gcmVxdWVzdCBcclxuICAgICAgICB0aGlzLmhhbmRsZVRoaXJkUGFydHlBdXRoRXJyb3IoZXJyb3IsIG9wdGlvbnMucmVxdWVzdFVybCk7XHJcblxyXG4gICAgICAgIC8vIE9ubHkgaGFuZGxlIDQwMSBVbmF1dGhvcml6ZWQgZXJyb3JzXHJcbiAgICAgICAgYXdhaXQgdGhpcy5yZXZva2VUb2tlbigpO1xyXG5cclxuICAgICAgICAvLyBSZXRyeSB0aGUgcmVxdWVzdCB3aXRoIHRoZSBuZXcgYWNjZXNzIHRva2VuXHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucGVyZm9ybVJlcXVlc3Qob3B0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVRoaXJkUGFydHlBdXRoRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlLCByZXF1ZXN0VXJsOiBzdHJpbmcpIHtcclxuICAgIGlmICghdGhpcy50aGlyZFBhcnR5Q29uZmlnPy5pc1RoaXJkUGFydHlNb2RlKSByZXR1cm47XHJcbiAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEpIHtcclxuICAgICAgaWYgKHRoaXMudGhpcmRQYXJ0eUNvbmZpZy5sYXN0VW5hdXRob3JpemVkVXJsID09PSByZXF1ZXN0VXJsKSB7XHJcbiAgICAgICAgdGhpcy50aGlyZFBhcnR5Q29uZmlnLmxhc3RVbmF1dGhvcml6ZWRVcmwgPSBcIlwiO1xyXG4gICAgICAgIHRocm93IHRoaXMuY29uZmlnLm9uRXhjZXB0aW9uPy4oeyAuLi5lcnJvciwgc3RhdHVzOiA0MDUsIG1lc3NhZ2U6IGBVbmF1dGhvcml6ZWQgcmVxdWVzdCB1cmwgJHtyZXF1ZXN0VXJsfS4gUGxlYXNlIGNvbnRhY3QgYWRtaW5pc3RyYXRvci5gIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudGhpcmRQYXJ0eUNvbmZpZy5sYXN0VW5hdXRob3JpemVkVXJsID0gcmVxdWVzdFVybDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGhpcmRQYXJ0eUNvbmZpZy5sYXN0VW5hdXRob3JpemVkVXJsID0gXCJcIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcGVyZm9ybVJlcXVlc3Q8VCA9IGFueT4ob3B0aW9uczogSUFwaU9wdGlvbnMpOiBQcm9taXNlPFQ+IHtcclxuXHJcbiAgICAvLyBCdWlsZCB0aGUgcmVxdWVzdCBvcHRpb25zXHJcbiAgICBjb25zdCBidWlsZE9wdGlvbnMgPSB7IGhlYWRlcnM6IHRoaXMuYnVpbGRIZWFkZXJPcHRpb25zKG9wdGlvbnMpIH07XHJcblxyXG4gICAgLy8gQ3JlYXRlIHRoZSByZXF1ZXN0IG9ic2VydmFibGVcclxuICAgIGNvbnN0IHJlcXVlc3QkID0gQXBpSGVscGVyLmNyZWF0ZVJlcXVlc3Q8VD4oe1xyXG4gICAgICBjbGllbnQ6IHRoaXMuaHR0cENsaWVudCxcclxuICAgICAgZGVzdHJveSQ6ICgpID0+IHRoaXMuZGVzdHJveSRcclxuICAgIH0sIG9wdGlvbnMubWV0aG9kLCBvcHRpb25zLnJlcXVlc3RVcmwsIG9wdGlvbnMucmVxdWVzdEJvZHksIGJ1aWxkT3B0aW9ucyxcclxuICAgICAgdGhpcy5jb25maWcub25SZXNwb25zZUJvZHlJbnZhbGlkPy5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICAvLyBTZXQgdGhlIGlzUmVxdWVzdGluZyBzdGF0ZSB0byB0cnVlIGJlZm9yZSBtYWtpbmcgdGhlIHJlcXVlc3RcclxuICAgIHRoaXMuaXNSZXF1ZXN0aW5nU3ViamVjdC5uZXh0KHRydWUpO1xyXG5cclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PlxyXG4gICAgICByZXF1ZXN0JC5zdWJzY3JpYmUoeyBuZXh0OiByZXNvbHZlLCBlcnJvcjogcmVqZWN0IH0pKTtcclxuXHJcbiAgICAvLyBSZXNldCB0aGUgaXNSZXF1ZXN0aW5nIHN0YXRlIGFmdGVyIHRoZSByZXF1ZXN0IGNvbXBsZXRlc1xyXG4gICAgdGhpcy5pc1JlcXVlc3RpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xyXG5cclxuICAgIHJldHVybiByZXNwb25zZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcmV2b2tlVG9rZW4oKTogUHJvbWlzZTx2b2lkPiB7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKGF3YWl0IHRoaXMuaW50ZXJjZXB0UmV2b2tlVG9rZW4oKSlcclxuICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICB0aGlzLmlzUmV2b2tpbmdUb2tlbiA9IHRydWU7XHJcbiAgICAgIGNvbnN0IGRlZmF1bHRBcGlPcHRpb25zOiBJQXBpT3B0aW9ucyA9IHtcclxuICAgICAgICAuLi50aGlzLmJ1aWxkQXBpT3B0aW9ucyh0aGlzLmxvY2FsaXplVG9rZW5TZXJ2aWNlLmNvbmZpZy5yZWZyZXNoVG9rZW4/LnJlcXVlc3RVcmwgfHwgJycpLFxyXG4gICAgICAgIHJlZnJlc2hUb2tlbjogdHJ1ZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy8gSWYgaW4gdGhpcmQgcGFydHkgbW9kZSBuZWVkIG92ZXJyaWRlIHRoZSBkZWZhdWx0IEFQSSBvcHRpb25zIHdpdGggdGhpcmQgcGFydHkgQVBJIG9wdGlvbnNcclxuICAgICAgY29uc3QgdGhpcmRQYXJ5QXBpT3B0aW9ucyA9IHRoaXMuYnVpbGRUaGlyZFBhcnR5QXBpT3B0aW9uKGRlZmF1bHRBcGlPcHRpb25zKTtcclxuICAgICAgY29uc3QgYXBpT3B0aW9uczogSUFwaU9wdGlvbnMgPSB0aGlzLnRoaXJkUGFydHlDb25maWc/LmlzVGhpcmRQYXJ0eU1vZGUgPyB0aGlyZFBhcnlBcGlPcHRpb25zIDogZGVmYXVsdEFwaU9wdGlvbnM7XHJcblxyXG4gICAgICAvLyBjb25zdCByZXZva2VUb2tlbiA9IGF3YWl0IHRoaXMucGVyZm9ybVJlcXVlc3QoYXBpT3B0aW9ucyk7XHJcbiAgICAgIGNvbnN0IHJldm9rZVRva2VuID0gYXdhaXQgQXBpSGVscGVyLnBlcmZvcm1SZXF1ZXN0V2l0aFJldHJ5KFxyXG4gICAgICAgIGFwaU9wdGlvbnMsXHJcbiAgICAgICAgdGhpcy5jb25maWcsXHJcbiAgICAgICAgdGhpcy5wZXJmb3JtUmVxdWVzdC5iaW5kKHRoaXMpXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBhd2FpdCB0aGlzLmhhbmRsZU9uVG9rZW5SZXZva2VkKHJldm9rZVRva2VuKTtcclxuXHJcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XHJcbiAgICAgIC8vIEhhbmRsZSB0aGUgZXJyb3IsIGxvZyBpdFxyXG4gICAgICBhd2FpdCBBcGlIZWxwZXIuaW52b2tlSG9vayh0aGlzLmNvbmZpZy5vbkF1dG9Mb2dvdXQpO1xyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuXHJcbiAgICB9IGZpbmFsbHkge1xyXG4gICAgICAvLyBSZXNldCB0aGUgcmV2b2tpbmcgdG9rZW4gc3RhdGVcclxuICAgICAgdGhpcy5pc1Jldm9raW5nVG9rZW4gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRUaGlyZFBhcnR5QXBpT3B0aW9uKGFwaU9wdGlvbnM6IElBcGlPcHRpb25zKTogSUFwaU9wdGlvbnMge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4uYXBpT3B0aW9ucyxcclxuICAgICAgcmVxdWVzdFVybDogdGhpcy50aGlyZFBhcnR5Q29uZmlnPy5yZWZyZXNoVG9rZW4ucmVxdWVzdFVybCB8fCAnJyxcclxuICAgICAgbWV0aG9kOiB0aGlzLnRoaXJkUGFydHlDb25maWc/LnJlZnJlc2hUb2tlbi5tZXRob2QgfHwgRU1ldGhvZC5HRVQsXHJcbiAgICAgIHJlcXVlc3RCb2R5OiB0aGlzLnRoaXJkUGFydHlDb25maWc/LnJlZnJlc2hUb2tlbi5ib2R5IHx8IHt9LFxyXG4gICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgLi4uYXBpT3B0aW9ucy5oZWFkZXJzLFxyXG4gICAgICAgIFtTQ0hFTUVTLlhfU0VDUkVUXTogYCR7dGhpcy5sb2NhbGl6ZVRva2VuU2VydmljZS5jbGllbnRTZWNyZXR9YFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqIGRlZmF1bHQgaHR0cCByZXF1ZXN0IG9wdGlvbnMgKi9cclxuICBwcml2YXRlIGJ1aWxkSGVhZGVyT3B0aW9ucyhvcHRpb25zOiBJQXBpT3B0aW9ucyk6IEh0dHBIZWFkZXJzIHtcclxuXHJcbiAgICBjb25zdCBoZWFkZXJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xyXG4gICAgICAuLi4ob3B0aW9ucy5yZWZyZXNoVG9rZW4gJiYgeyBbU0NIRU1FUy5YX1JFRlJFU0hfVE9LRU5dOiBgJHt0aGlzLnJlZnJlc2hUb2tlbn1gIH0pLFxyXG4gICAgICAuLi4oIW9wdGlvbnMuaXNGb3JtRGF0YSAmJiB7IFtTQ0hFTUVTLkNPTlRFTlRfVFlQRV06ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcclxuICAgICAgW1NDSEVNRVMuQVVUSE9SSVpBVElPTl06IGBCZWFyZXIgJHt0aGlzLmFjY2Vzc1Rva2VufWAsXHJcbiAgICAgIC4uLih0aGlzLm5lZWRUZW5hbnQgJiYgeyBbU0NIRU1FUy5YX1RFTkFOVF06IGAke3RoaXMudGVuYW50VG9rZW59YCB9KSxcclxuICAgICAgLy8gQWRkIENsaWVudCBTZWNyZXQgaGVhZGVyIGZvciB0aGlyZCBwYXJ0eSByZXZva2UgdG9rZW4gcmVxdWVzdFxyXG4gICAgICAuLi4odGhpcy50aGlyZFBhcnR5Q29uZmlnPy5pc1RoaXJkUGFydHlNb2RlICYmIHsgW1NDSEVNRVMuWF9DTElFTlRdOiBgJHt0aGlzLmxvY2FsaXplVG9rZW5TZXJ2aWNlLmNsaWVudElkfWAgfSksXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoeyAuLi5oZWFkZXJzLCAuLi5vcHRpb25zLmhlYWRlcnMgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkQXBpT3B0aW9ucyhcclxuICAgIGJhc2VVcmw6IHN0cmluZyxcclxuICAgIHBhdGg6IHN0cmluZyA9ICcnLFxyXG4gICAgbWV0aG9kOiBFTWV0aG9kID0gRU1ldGhvZC5HRVQsXHJcbiAgICByZXF1ZXN0Qm9keTogYW55ID0gbnVsbCxcclxuICAgIGhlYWRlcnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XHJcbiAgKTogSUFwaU9wdGlvbnMge1xyXG5cclxuICAgIGNvbnN0IHJlcXVlc3RVcmwgPSBBcGlIZWxwZXIuYnVpbGRVcmwoYmFzZVVybCwgcGF0aCk7XHJcbiAgICBjb25zdCBpc0Zvcm1EYXRhID0gcmVxdWVzdEJvZHkgJiYgcmVxdWVzdEJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnRoaXMuYXBpT3B0aW9ucyxcclxuICAgICAgLi4ueyBoZWFkZXJzLCBtZXRob2QsIHJlcXVlc3RVcmwsIHJlcXVlc3RCb2R5LCBpc0Zvcm1EYXRhIH1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyB0b1dhaXRGb3JQcmV2aW91c1JlcXVlc3QoKSB7XHJcbiAgICBpZiAodGhpcy5pc1Jldm9raW5nVG9rZW4pIHtcclxuICAgICAgYXdhaXQgd2FpdFVudGlsKCgpID0+ICF0aGlzLmlzUmV2b2tpbmdUb2tlbik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdG8gd2FpdCBmb3IgZWFjaCByZXF1ZXN0IGluIDUwbXMsIGV2ZW4gaWYgdGhlIHJlcXVlc3QgaXMgbm90IGNvbXBsZXRlZFxyXG4gICAgY29uc3Qgd2FpdE1pbGxpc2Vjb25kcyA9IHRoaXMuY29uZmlnLndhaXRFYWNoUmVxdWVzdD8ubWlsbGlzZWNvbmRzO1xyXG4gICAgaWYgKHdhaXRNaWxsaXNlY29uZHMgJiYgdGhpcy5pc1JlcXVlc3RpbmcpIHtcclxuICAgICAgLy8gY29uc29sZS53YXJuKGBSZXF1ZXN0IHRocm90dGxpbmc6IEFub3RoZXIgcmVxdWVzdCBpcyBpbiBwcm9ncmVzcy4gV2FpdGluZyBmb3IgJHt3YWl0TWlsbGlzZWNvbmRzfW1zLmApO1xyXG4gICAgICBhd2FpdCB3YWl0Rm9yKHdhaXRNaWxsaXNlY29uZHMsIHRoaXMuaXNSZXF1ZXN0aW5nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlT25Ub2tlblJldm9rZWQocmVzcG9uc2U6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHJlc3BvbnNlPy5zdGF0dXMgfHwgcmVzcG9uc2U/LnRva2VuKSB7XHJcbiAgICAgIC8vIElmIHRoZSByZXNwb25zZSBpcyBzdWNjZXNzZnVsLCB1cGRhdGUgdGhlIGFjY2VzcyB0b2tlblxyXG4gICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gcmVzcG9uc2UubWVzc2FnZSB8fCByZXNwb25zZS50b2tlbjsgLy8gcmVzcG9uc2UudG9rZW4gZm9yIHRoaXJkIHBhcnR5IHJldm9rZVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGluZGljYXRlcyBhbiBlcnJvciwgaW52b2tlIHRoZSBvblJldm9rZVVuYXV0aG9yaXplZCBob29rXHJcbiAgICAgIGNvbnNvbGUud2FybignVG9rZW4gcmV2b2NhdGlvbiBmYWlsZWQsIHJlZnJlc2ggdG9rZW4gaXMgZXhwaXJlZC4nLCByZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgYXdhaXQgQXBpSGVscGVyLmludm9rZUhvb2sodGhpcy5jb25maWcub25SZXZva2VVbmF1dGhvcml6ZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBpbnRlcmNlcHRSZXZva2VUb2tlbigpIHtcclxuXHJcbiAgICBpZiAodGhpcy5pc1Jldm9raW5nVG9rZW4pIHtcclxuICAgICAgY29uc29sZS53YXJuKCdUb2tlbiBpcyBhbHJlYWR5IGJlaW5nIHJldm9rZWQuIFdhaXRpbmcgZm9yIHRoZSBjdXJyZW50IG9wZXJhdGlvbiB0byBjb21wbGV0ZS4uLicpO1xyXG4gICAgICBhd2FpdCB3YWl0VW50aWwoKCkgPT4gIXRoaXMuaXNSZXZva2luZ1Rva2VuKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLnJlZnJlc2hUb2tlbikge1xyXG4gICAgICAvLyBhd2FpdCBBcGlIZWxwZXIuaW52b2tlSG9vayh0aGlzLmFwaUNvbmZpZ3Mub25BdXRvTG9nb3V0KTtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZWZyZXNoIHRva2VuIGlzIG1pc3NpbmcuIFBsZWFzZSBsb2dpbiBhZ2Fpbi4nKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlQ29uZmlnKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubG9jYWxpemVUb2tlblNlcnZpY2UuY29uZmlnLnJlcXVpcmVkVGVuYW50XHJcbiAgICAgICYmICF0aGlzLmxvY2FsaXplVG9rZW5TZXJ2aWNlLmNvbmZpZy50ZW5hbnRUb2tlbj8ubmFtZT8udHJpbSgpLmxlbmd0aCkge1xyXG4gICAgICB0aHJvdyBFcnJvcignVGVuYW50IHRva2VuIGlzIHJlcXVpcmVkIGJ1dCB0ZW5hbnRUb2tlbk5hbWUgaXMgbm90IGNvbmZpZ3VyZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMubG9jYWxpemVUb2tlblNlcnZpY2UuY29uZmlnLnJlZnJlc2hUb2tlbj8ucmVxdWVzdFVybD8udHJpbSgpLmxlbmd0aCkge1xyXG4gICAgICB0aHJvdyBFcnJvcignUmV2b2tlIHRva2VuIFVSTCBpcyBub3QgY29uZmlndXJlZCAtIHRva2VuIHJlZnJlc2ggd2lsbCBub3Qgd29yaycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
|