@mtgame/core 0.1.58 → 0.1.60
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/mtgame-core.umd.js +4109 -4076
- package/bundles/mtgame-core.umd.js.map +1 -1
- package/esm2015/api/basketball-game-api.js +8 -9
- package/esm2015/api/feedback-api.js +8 -9
- package/esm2015/api/file-api.js +8 -9
- package/esm2015/api/football-game-api.js +8 -9
- package/esm2015/api/game-base-api.js +8 -9
- package/esm2015/api/handball-game-api.js +8 -9
- package/esm2015/api/hockey-game-api.js +8 -9
- package/esm2015/api/league-api.js +8 -9
- package/esm2015/api/league-news-api.js +8 -9
- package/esm2015/api/league-player-api.js +7 -9
- package/esm2015/api/media-api.js +8 -9
- package/esm2015/api/notification-api.js +6 -8
- package/esm2015/api/notification-base-api.js +8 -9
- package/esm2015/api/org-notification-api.js +6 -8
- package/esm2015/api/paginated-response.interface.js +2 -1
- package/esm2015/api/public-api.js +2 -1
- package/esm2015/api/public-team-api.js +7 -9
- package/esm2015/api/public-user-api.js +7 -9
- package/esm2015/api/reference-api.js +8 -9
- package/esm2015/api/rugby-game-api.js +8 -9
- package/esm2015/api/team-api.js +9 -10
- package/esm2015/api/team-event-api.js +8 -9
- package/esm2015/api/tournament-api.js +8 -9
- package/esm2015/api/tournament-join-api.js +8 -9
- package/esm2015/api/tournament-season-api.js +8 -9
- package/esm2015/api/tournament-stage-api.js +8 -9
- package/esm2015/api/user-api.js +8 -9
- package/esm2015/api/volleyball-game-api.js +8 -9
- package/esm2015/http-cookie.interceptor.js +6 -9
- package/esm2015/localization/basketball-game-log-types.js +1 -1
- package/esm2015/localization/football-game-log-types.js +1 -1
- package/esm2015/localization/handball-game-log-types.js +1 -1
- package/esm2015/localization/hockey-game-log-types.js +1 -1
- package/esm2015/localization/hockey-penalty-types.js +1 -1
- package/esm2015/localization/overtime-types.js +1 -1
- package/esm2015/localization/public-api.js +1 -1
- package/esm2015/localization/rugby-foul-sanction.js +1 -1
- package/esm2015/localization/rugby-game-log-types.js +1 -1
- package/esm2015/localization/team-event-type.js +1 -1
- package/esm2015/localization/team-user-role.js +1 -1
- package/esm2015/localization/user-profile.js +1 -1
- package/esm2015/localization/volleyball-game-log-types.js +1 -1
- package/esm2015/models/base-statistic.js +2 -1
- package/esm2015/models/basketball-game-config.js +1 -1
- package/esm2015/models/basketball-game-log.js +1 -1
- package/esm2015/models/basketball-game-statistic.js +1 -1
- package/esm2015/models/basketball-game-team-statistic.js +1 -1
- package/esm2015/models/basketball-profile.js +1 -1
- package/esm2015/models/basketball-statistic.js +1 -1
- package/esm2015/models/city.js +1 -1
- package/esm2015/models/feedback.js +1 -1
- package/esm2015/models/file.js +1 -1
- package/esm2015/models/football-game-config.js +1 -1
- package/esm2015/models/football-game-log.js +1 -1
- package/esm2015/models/football-game-statistic.js +1 -1
- package/esm2015/models/football-game-team-statistic.js +1 -1
- package/esm2015/models/football-profile.js +1 -1
- package/esm2015/models/football-statistic.js +1 -1
- package/esm2015/models/game-invite.js +1 -1
- package/esm2015/models/game-log-base.js +2 -1
- package/esm2015/models/game-statistic-base.js +2 -1
- package/esm2015/models/game-team-statistic-base.js +2 -1
- package/esm2015/models/game-timeline-stages.js +1 -1
- package/esm2015/models/game-user-limitation.js +1 -1
- package/esm2015/models/game-user.js +1 -1
- package/esm2015/models/game.js +1 -1
- package/esm2015/models/handball-game-config.js +1 -1
- package/esm2015/models/handball-game-log.js +1 -1
- package/esm2015/models/handball-game-statistic.js +1 -1
- package/esm2015/models/handball-game-team-statistic.js +1 -1
- package/esm2015/models/handball-profile.js +1 -1
- package/esm2015/models/handball-statistic.js +1 -1
- package/esm2015/models/hockey-game-config.js +1 -1
- package/esm2015/models/hockey-game-log.js +1 -1
- package/esm2015/models/hockey-game-statistic.js +1 -1
- package/esm2015/models/hockey-game-team-statistic.js +1 -1
- package/esm2015/models/hockey-profile.js +1 -1
- package/esm2015/models/hockey-statistic.js +1 -1
- package/esm2015/models/league-banner.js +1 -1
- package/esm2015/models/league-court.js +1 -1
- package/esm2015/models/league-document.js +1 -1
- package/esm2015/models/league-news.js +1 -1
- package/esm2015/models/league-partner.js +1 -1
- package/esm2015/models/league-player.js +1 -1
- package/esm2015/models/league-playlist.js +1 -1
- package/esm2015/models/league-user.js +1 -1
- package/esm2015/models/league.js +1 -1
- package/esm2015/models/media-item.js +1 -1
- package/esm2015/models/notification-settings.js +1 -1
- package/esm2015/models/notification.js +1 -1
- package/esm2015/models/organization.js +1 -1
- package/esm2015/models/playoff.js +1 -1
- package/esm2015/models/poll.js +1 -1
- package/esm2015/models/public-api.js +5 -1
- package/esm2015/models/rugby-foul-type.js +1 -1
- package/esm2015/models/rugby-game-config.js +1 -1
- package/esm2015/models/rugby-game-log.js +2 -2
- package/esm2015/models/rugby-game-statistic.js +1 -1
- package/esm2015/models/rugby-game-team-statistic.js +1 -1
- package/esm2015/models/rugby-profile.js +1 -1
- package/esm2015/models/rugby-statistic.js +1 -1
- package/esm2015/models/sport.js +1 -1
- package/esm2015/models/team-access.js +1 -1
- package/esm2015/models/team-event-invite.js +1 -1
- package/esm2015/models/team-event-type.js +1 -1
- package/esm2015/models/team-event.js +1 -1
- package/esm2015/models/team-invite-external.js +1 -1
- package/esm2015/models/team-invite.js +1 -1
- package/esm2015/models/team-permission.js +1 -1
- package/esm2015/models/team-user.js +1 -1
- package/esm2015/models/team.js +1 -1
- package/esm2015/models/tournament-disqualification.js +1 -1
- package/esm2015/models/tournament-event.js +1 -1
- package/esm2015/models/tournament-group.js +1 -1
- package/esm2015/models/tournament-invite.js +1 -1
- package/esm2015/models/tournament-join-team.js +1 -1
- package/esm2015/models/tournament-news.js +1 -1
- package/esm2015/models/tournament-season.js +1 -1
- package/esm2015/models/tournament-stage-team.js +1 -1
- package/esm2015/models/tournament-stage.js +1 -1
- package/esm2015/models/tournament-team-user-invite.js +1 -1
- package/esm2015/models/tournament-team-user.js +1 -1
- package/esm2015/models/tournament-team.js +1 -1
- package/esm2015/models/tournament.js +1 -1
- package/esm2015/models/user-access.js +1 -1
- package/esm2015/models/user-permission.js +1 -1
- package/esm2015/models/user-profile.js +1 -1
- package/esm2015/models/user.js +1 -1
- package/esm2015/models/util.js +1 -1
- package/esm2015/models/volleyball-game-config.js +1 -1
- package/esm2015/models/volleyball-game-log.js +1 -1
- package/esm2015/models/volleyball-game-statistic.js +1 -1
- package/esm2015/models/volleyball-game-team-statistic.js +1 -1
- package/esm2015/models/volleyball-profile.js +1 -1
- package/esm2015/models/volleyball-statistic.js +1 -1
- package/esm2015/mtgame-core.js +1 -1
- package/esm2015/public-api.js +1 -1
- package/esm2015/services/base.service.js +6 -8
- package/esm2015/services/centrifugo.service.js +7 -9
- package/esm2015/services/config.service.js +7 -10
- package/esm2015/services/public-api.js +1 -1
- package/esm2015/storage/local-storage-engine.js +1 -1
- package/esm2015/storage/public-api.js +1 -1
- package/esm2015/storage/storage-engine.js +1 -1
- package/esm2015/storage/store.js +1 -1
- package/esm2015/utils/array.js +1 -1
- package/esm2015/utils/component-destroyed.js +12 -8
- package/esm2015/utils/cookie.js +1 -1
- package/esm2015/utils/data.js +1 -1
- package/esm2015/utils/device.js +1 -1
- package/esm2015/utils/enum.js +1 -1
- package/esm2015/utils/errors.js +1 -1
- package/esm2015/utils/favicon.js +1 -1
- package/esm2015/utils/form.js +1 -1
- package/esm2015/utils/public-api.js +1 -1
- package/esm2015/utils/validators.js +1 -1
- package/fesm2015/mtgame-core.js +195 -191
- package/fesm2015/mtgame-core.js.map +1 -1
- package/localization/basketball-game-log-types.d.ts +0 -1
- package/localization/football-game-log-types.d.ts +0 -1
- package/localization/handball-game-log-types.d.ts +0 -1
- package/localization/hockey-game-log-types.d.ts +0 -1
- package/localization/overtime-types.d.ts +0 -1
- package/localization/rugby-foul-sanction.d.ts +0 -1
- package/localization/rugby-game-log-types.d.ts +0 -1
- package/localization/team-event-type.d.ts +0 -1
- package/localization/team-user-role.d.ts +0 -1
- package/localization/user-profile.d.ts +0 -6
- package/localization/volleyball-game-log-types.d.ts +0 -1
- package/package.json +9 -11
- package/bundles/mtgame-core.umd.min.js +0 -16
- package/bundles/mtgame-core.umd.min.js.map +0 -1
- package/esm5/api/basketball-game-api.js +0 -77
- package/esm5/api/feedback-api.js +0 -44
- package/esm5/api/file-api.js +0 -68
- package/esm5/api/football-game-api.js +0 -81
- package/esm5/api/game-base-api.js +0 -58
- package/esm5/api/handball-game-api.js +0 -81
- package/esm5/api/hockey-game-api.js +0 -81
- package/esm5/api/league-api.js +0 -168
- package/esm5/api/league-news-api.js +0 -82
- package/esm5/api/league-player-api.js +0 -37
- package/esm5/api/media-api.js +0 -149
- package/esm5/api/notification-api.js +0 -21
- package/esm5/api/notification-base-api.js +0 -109
- package/esm5/api/org-notification-api.js +0 -21
- package/esm5/api/paginated-response.interface.js +0 -1
- package/esm5/api/public-api.js +0 -27
- package/esm5/api/public-team-api.js +0 -34
- package/esm5/api/public-user-api.js +0 -44
- package/esm5/api/reference-api.js +0 -45
- package/esm5/api/rugby-game-api.js +0 -79
- package/esm5/api/team-api.js +0 -486
- package/esm5/api/team-event-api.js +0 -96
- package/esm5/api/tournament-api.js +0 -543
- package/esm5/api/tournament-join-api.js +0 -59
- package/esm5/api/tournament-season-api.js +0 -134
- package/esm5/api/tournament-stage-api.js +0 -65
- package/esm5/api/user-api.js +0 -350
- package/esm5/api/volleyball-game-api.js +0 -81
- package/esm5/http-cookie.interceptor.js +0 -41
- package/esm5/localization/basketball-game-log-types.js +0 -28
- package/esm5/localization/football-game-log-types.js +0 -34
- package/esm5/localization/handball-game-log-types.js +0 -25
- package/esm5/localization/hockey-game-log-types.js +0 -31
- package/esm5/localization/hockey-penalty-types.js +0 -50
- package/esm5/localization/overtime-types.js +0 -14
- package/esm5/localization/public-api.js +0 -13
- package/esm5/localization/rugby-foul-sanction.js +0 -11
- package/esm5/localization/rugby-game-log-types.js +0 -41
- package/esm5/localization/team-event-type.js +0 -7
- package/esm5/localization/team-user-role.js +0 -15
- package/esm5/localization/user-profile.js +0 -82
- package/esm5/localization/volleyball-game-log-types.js +0 -27
- package/esm5/models/base-statistic.js +0 -1
- package/esm5/models/basketball-game-config.js +0 -44
- package/esm5/models/basketball-game-log.js +0 -118
- package/esm5/models/basketball-game-statistic.js +0 -63
- package/esm5/models/basketball-game-team-statistic.js +0 -32
- package/esm5/models/basketball-profile.js +0 -48
- package/esm5/models/basketball-statistic.js +0 -97
- package/esm5/models/city.js +0 -27
- package/esm5/models/feedback.js +0 -37
- package/esm5/models/file.js +0 -65
- package/esm5/models/football-game-config.js +0 -53
- package/esm5/models/football-game-log.js +0 -111
- package/esm5/models/football-game-statistic.js +0 -213
- package/esm5/models/football-game-team-statistic.js +0 -32
- package/esm5/models/football-profile.js +0 -48
- package/esm5/models/football-statistic.js +0 -174
- package/esm5/models/game-invite.js +0 -42
- package/esm5/models/game-log-base.js +0 -1
- package/esm5/models/game-statistic-base.js +0 -1
- package/esm5/models/game-team-statistic-base.js +0 -1
- package/esm5/models/game-timeline-stages.js +0 -60
- package/esm5/models/game-user-limitation.js +0 -59
- package/esm5/models/game-user.js +0 -38
- package/esm5/models/game.js +0 -286
- package/esm5/models/handball-game-config.js +0 -39
- package/esm5/models/handball-game-log.js +0 -99
- package/esm5/models/handball-game-statistic.js +0 -162
- package/esm5/models/handball-game-team-statistic.js +0 -32
- package/esm5/models/handball-profile.js +0 -44
- package/esm5/models/handball-statistic.js +0 -105
- package/esm5/models/hockey-game-config.js +0 -61
- package/esm5/models/hockey-game-log.js +0 -135
- package/esm5/models/hockey-game-statistic.js +0 -223
- package/esm5/models/hockey-game-team-statistic.js +0 -32
- package/esm5/models/hockey-profile.js +0 -46
- package/esm5/models/hockey-statistic.js +0 -144
- package/esm5/models/league-banner.js +0 -44
- package/esm5/models/league-court.js +0 -29
- package/esm5/models/league-document.js +0 -31
- package/esm5/models/league-news.js +0 -55
- package/esm5/models/league-partner.js +0 -34
- package/esm5/models/league-player.js +0 -77
- package/esm5/models/league-playlist.js +0 -33
- package/esm5/models/league-user.js +0 -61
- package/esm5/models/league.js +0 -95
- package/esm5/models/media-item.js +0 -50
- package/esm5/models/notification-settings.js +0 -40
- package/esm5/models/notification.js +0 -143
- package/esm5/models/organization.js +0 -32
- package/esm5/models/playoff.js +0 -102
- package/esm5/models/poll.js +0 -154
- package/esm5/models/public-api.js +0 -88
- package/esm5/models/rugby-foul-type.js +0 -40
- package/esm5/models/rugby-game-config.js +0 -51
- package/esm5/models/rugby-game-log.js +0 -143
- package/esm5/models/rugby-game-statistic.js +0 -68
- package/esm5/models/rugby-game-team-statistic.js +0 -32
- package/esm5/models/rugby-profile.js +0 -42
- package/esm5/models/rugby-statistic.js +0 -119
- package/esm5/models/sport.js +0 -104
- package/esm5/models/team-access.js +0 -50
- package/esm5/models/team-event-invite.js +0 -35
- package/esm5/models/team-event-type.js +0 -6
- package/esm5/models/team-event.js +0 -58
- package/esm5/models/team-invite-external.js +0 -30
- package/esm5/models/team-invite.js +0 -46
- package/esm5/models/team-permission.js +0 -43
- package/esm5/models/team-user.js +0 -53
- package/esm5/models/team.js +0 -70
- package/esm5/models/tournament-disqualification.js +0 -34
- package/esm5/models/tournament-event.js +0 -50
- package/esm5/models/tournament-group.js +0 -29
- package/esm5/models/tournament-invite.js +0 -48
- package/esm5/models/tournament-join-team.js +0 -73
- package/esm5/models/tournament-news.js +0 -38
- package/esm5/models/tournament-season.js +0 -50
- package/esm5/models/tournament-stage-team.js +0 -54
- package/esm5/models/tournament-stage.js +0 -40
- package/esm5/models/tournament-team-user-invite.js +0 -34
- package/esm5/models/tournament-team-user.js +0 -41
- package/esm5/models/tournament-team.js +0 -80
- package/esm5/models/tournament.js +0 -234
- package/esm5/models/user-access.js +0 -30
- package/esm5/models/user-permission.js +0 -43
- package/esm5/models/user-profile.js +0 -27
- package/esm5/models/user.js +0 -107
- package/esm5/models/util.js +0 -298
- package/esm5/models/volleyball-game-config.js +0 -53
- package/esm5/models/volleyball-game-log.js +0 -145
- package/esm5/models/volleyball-game-statistic.js +0 -72
- package/esm5/models/volleyball-game-team-statistic.js +0 -32
- package/esm5/models/volleyball-profile.js +0 -48
- package/esm5/models/volleyball-statistic.js +0 -89
- package/esm5/mtgame-core.js +0 -5
- package/esm5/public-api.js +0 -8
- package/esm5/services/base.service.js +0 -19
- package/esm5/services/centrifugo.service.js +0 -122
- package/esm5/services/config.service.js +0 -52
- package/esm5/services/public-api.js +0 -4
- package/esm5/storage/local-storage-engine.js +0 -25
- package/esm5/storage/public-api.js +0 -4
- package/esm5/storage/storage-engine.js +0 -77
- package/esm5/storage/store.js +0 -77
- package/esm5/utils/array.js +0 -18
- package/esm5/utils/component-destroyed.js +0 -21
- package/esm5/utils/cookie.js +0 -9
- package/esm5/utils/data.js +0 -79
- package/esm5/utils/device.js +0 -14
- package/esm5/utils/enum.js +0 -7
- package/esm5/utils/errors.js +0 -12
- package/esm5/utils/favicon.js +0 -47
- package/esm5/utils/form.js +0 -22
- package/esm5/utils/public-api.js +0 -11
- package/esm5/utils/validators.js +0 -49
- package/fesm5/mtgame-core.js +0 -9819
- package/fesm5/mtgame-core.js.map +0 -1
package/esm5/api/team-api.js
DELETED
|
@@ -1,486 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __decorate, __generator } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';
|
|
4
|
-
import { Team } from '../models/team';
|
|
5
|
-
import { map } from 'rxjs/operators';
|
|
6
|
-
import { TeamUser, TeamUserRole } from '../models/team-user';
|
|
7
|
-
import { User } from '../models/user';
|
|
8
|
-
import { TeamInvite } from '../models/team-invite';
|
|
9
|
-
import { TeamInviteExternal } from '../models/team-invite-external';
|
|
10
|
-
import { Poll } from '../models/poll';
|
|
11
|
-
import { VolleyballStatistic } from '../models/volleyball-statistic';
|
|
12
|
-
import { Game } from '../models/game';
|
|
13
|
-
import { TeamEvent } from '../models/team-event';
|
|
14
|
-
import { Tournament } from '../models/tournament';
|
|
15
|
-
import { TournamentTeam } from '../models/tournament-team';
|
|
16
|
-
import { TournamentInvite } from '../models/tournament-invite';
|
|
17
|
-
import { BasketballStatistic } from '../models/basketball-statistic';
|
|
18
|
-
import { TeamPermission } from '../models/team-permission';
|
|
19
|
-
import { TeamAccess } from '../models/team-access';
|
|
20
|
-
import { ConfigService } from '../services/config.service';
|
|
21
|
-
import * as i0 from "@angular/core";
|
|
22
|
-
import * as i1 from "@angular/common/http";
|
|
23
|
-
import * as i2 from "../services/config.service";
|
|
24
|
-
var TeamApi = /** @class */ (function () {
|
|
25
|
-
function TeamApi(httpClient, configService) {
|
|
26
|
-
this.httpClient = httpClient;
|
|
27
|
-
this.configService = configService;
|
|
28
|
-
}
|
|
29
|
-
TeamApi.prototype.search = function (query, sportId) {
|
|
30
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
31
|
-
var params;
|
|
32
|
-
return __generator(this, function (_a) {
|
|
33
|
-
params = (new HttpParams()).set('search', query);
|
|
34
|
-
if (sportId) {
|
|
35
|
-
params = params.set('sport', sportId.toString());
|
|
36
|
-
}
|
|
37
|
-
return [2 /*return*/, this.httpClient
|
|
38
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/", { params: params })
|
|
39
|
-
.pipe(map(function (data) { return Team.toFront(data); }))
|
|
40
|
-
.toPromise()];
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
TeamApi.prototype.create = function (team) {
|
|
45
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
46
|
-
return __generator(this, function (_a) {
|
|
47
|
-
return [2 /*return*/, this.httpClient
|
|
48
|
-
.post(this.configService.get('apiUrl') + "/api/v1/team/", Team.toBack(team))
|
|
49
|
-
.pipe(map(function (data) { return Team.toFront(data); }))
|
|
50
|
-
.toPromise()];
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
};
|
|
54
|
-
TeamApi.prototype.getById = function (teamId) {
|
|
55
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
56
|
-
return __generator(this, function (_a) {
|
|
57
|
-
return [2 /*return*/, this.httpClient
|
|
58
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/")
|
|
59
|
-
.pipe(map(function (data) { return Team.toFront(data); }))
|
|
60
|
-
.toPromise()];
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
TeamApi.prototype.getTeamAccess = function (teamId) {
|
|
65
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
66
|
-
return __generator(this, function (_a) {
|
|
67
|
-
return [2 /*return*/, this.httpClient
|
|
68
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/access/")
|
|
69
|
-
.pipe(map(function (data) { return TeamAccess.toFront(data); }))
|
|
70
|
-
.toPromise()];
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
};
|
|
74
|
-
TeamApi.prototype.update = function (teamId, values) {
|
|
75
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
76
|
-
return __generator(this, function (_a) {
|
|
77
|
-
return [2 /*return*/, this.httpClient
|
|
78
|
-
.patch(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/", Team.toBack(values))
|
|
79
|
-
.pipe(map(function (data) { return Team.toFront(data); }))
|
|
80
|
-
.toPromise()];
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
TeamApi.prototype.delete = function (team) {
|
|
85
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
86
|
-
return __generator(this, function (_a) {
|
|
87
|
-
return [2 /*return*/, this.httpClient
|
|
88
|
-
.delete(this.configService.get('apiUrl') + "/api/v1/team/" + team.id + "/")
|
|
89
|
-
.toPromise()];
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
};
|
|
93
|
-
TeamApi.prototype.getPermission = function (teamId) {
|
|
94
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
95
|
-
return __generator(this, function (_a) {
|
|
96
|
-
return [2 /*return*/, this.httpClient
|
|
97
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/permission/")
|
|
98
|
-
.pipe(map(function (data) { return TeamPermission.toFront(data); }))
|
|
99
|
-
.toPromise()];
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
};
|
|
103
|
-
TeamApi.prototype.updatePermission = function (teamId, permission) {
|
|
104
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
105
|
-
return __generator(this, function (_a) {
|
|
106
|
-
return [2 /*return*/, this.httpClient
|
|
107
|
-
.patch(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/permission/", TeamPermission.toBack(permission))
|
|
108
|
-
.pipe(map(function (data) { return TeamPermission.toFront(data); }))
|
|
109
|
-
.toPromise()];
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
};
|
|
113
|
-
TeamApi.prototype.getUsers = function (teamId, tournamentId) {
|
|
114
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
115
|
-
var params;
|
|
116
|
-
return __generator(this, function (_a) {
|
|
117
|
-
params = new HttpParams();
|
|
118
|
-
if (tournamentId) {
|
|
119
|
-
params = params.set('tournament_id', tournamentId.toString());
|
|
120
|
-
}
|
|
121
|
-
return [2 /*return*/, this.httpClient
|
|
122
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/users/", { params: params })
|
|
123
|
-
.pipe(map(function (data) { return TeamUser.toFront(data); }))
|
|
124
|
-
.toPromise()];
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
};
|
|
128
|
-
TeamApi.prototype.updateUserRole = function (teamId, teamUserId, role) {
|
|
129
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
130
|
-
return __generator(this, function (_a) {
|
|
131
|
-
return [2 /*return*/, this.httpClient
|
|
132
|
-
.patch(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/users/" + teamUserId + "/role/", { role: TeamUserRole[role] })
|
|
133
|
-
.pipe(map(function (data) { return TeamUser.toFront(data); }))
|
|
134
|
-
.toPromise()];
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
};
|
|
138
|
-
TeamApi.prototype.updateUserNumber = function (teamId, teamUserId, gameNumber) {
|
|
139
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
140
|
-
return __generator(this, function (_a) {
|
|
141
|
-
return [2 /*return*/, this.httpClient
|
|
142
|
-
.patch(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/users/" + teamUserId + "/number/", { number: gameNumber.toString() })
|
|
143
|
-
.pipe(map(function (data) { return TeamUser.toFront(data); }))
|
|
144
|
-
.toPromise()];
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
};
|
|
148
|
-
TeamApi.prototype.deleteUser = function (teamUser) {
|
|
149
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
150
|
-
return __generator(this, function (_a) {
|
|
151
|
-
return [2 /*return*/, this.httpClient
|
|
152
|
-
.delete(this.configService.get('apiUrl') + "/api/v1/team/" + teamUser.teamId + "/users/" + teamUser.id + "/")
|
|
153
|
-
.toPromise()];
|
|
154
|
-
});
|
|
155
|
-
});
|
|
156
|
-
};
|
|
157
|
-
TeamApi.prototype.changeOwner = function (teamId, user) {
|
|
158
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
159
|
-
return __generator(this, function (_a) {
|
|
160
|
-
return [2 /*return*/, this.httpClient
|
|
161
|
-
.post(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/owner/", { id: user.id })
|
|
162
|
-
.pipe(map(function (data) { return Team.toFront(data); }))
|
|
163
|
-
.toPromise()];
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
};
|
|
167
|
-
TeamApi.prototype.getInvites = function (teamId) {
|
|
168
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
169
|
-
return __generator(this, function (_a) {
|
|
170
|
-
return [2 /*return*/, this.httpClient
|
|
171
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/invites/")
|
|
172
|
-
.pipe(map(function (data) { return TeamInvite.toFront(data); }))
|
|
173
|
-
.toPromise()];
|
|
174
|
-
});
|
|
175
|
-
});
|
|
176
|
-
};
|
|
177
|
-
TeamApi.prototype.sendInvite = function (teamId, user) {
|
|
178
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
179
|
-
return __generator(this, function (_a) {
|
|
180
|
-
return [2 /*return*/, this.httpClient
|
|
181
|
-
.post(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/invites/", { user: user })
|
|
182
|
-
.pipe(map(function (data) { return TeamInvite.toFront(data); }))
|
|
183
|
-
.toPromise()];
|
|
184
|
-
});
|
|
185
|
-
});
|
|
186
|
-
};
|
|
187
|
-
TeamApi.prototype.acceptInvite = function (invite) {
|
|
188
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
189
|
-
return __generator(this, function (_a) {
|
|
190
|
-
return [2 /*return*/, this.httpClient
|
|
191
|
-
.post(this.configService.get('apiUrl') + "/api/v1/team_invite/" + invite.id + "/accept/", {})
|
|
192
|
-
.pipe(map(function (data) { return TeamInvite.toFront(data); }))
|
|
193
|
-
.toPromise()];
|
|
194
|
-
});
|
|
195
|
-
});
|
|
196
|
-
};
|
|
197
|
-
TeamApi.prototype.declineInvite = function (invite) {
|
|
198
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
199
|
-
return __generator(this, function (_a) {
|
|
200
|
-
return [2 /*return*/, this.httpClient
|
|
201
|
-
.post(this.configService.get('apiUrl') + "/api/v1/team_invite/" + invite.id + "/decline/", {})
|
|
202
|
-
.pipe(map(function (data) { return TeamInvite.toFront(data); }))
|
|
203
|
-
.toPromise()];
|
|
204
|
-
});
|
|
205
|
-
});
|
|
206
|
-
};
|
|
207
|
-
TeamApi.prototype.resendInvite = function (invite) {
|
|
208
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
209
|
-
return __generator(this, function (_a) {
|
|
210
|
-
return [2 /*return*/, this.httpClient
|
|
211
|
-
.post(this.configService.get('apiUrl') + "/api/v1/team_invite/" + invite.id + "/resend/", {})
|
|
212
|
-
.pipe(map(function (data) { return TeamInvite.toFront(data); }))
|
|
213
|
-
.toPromise()];
|
|
214
|
-
});
|
|
215
|
-
});
|
|
216
|
-
};
|
|
217
|
-
TeamApi.prototype.getInvitesExternal = function (teamId) {
|
|
218
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
219
|
-
return __generator(this, function (_a) {
|
|
220
|
-
return [2 /*return*/, this.httpClient
|
|
221
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/invites_external/")
|
|
222
|
-
.pipe(map(function (data) { return TeamInviteExternal.toFront(data); }))
|
|
223
|
-
.toPromise()];
|
|
224
|
-
});
|
|
225
|
-
});
|
|
226
|
-
};
|
|
227
|
-
TeamApi.prototype.sendInviteExternal = function (teamId, invite) {
|
|
228
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
229
|
-
return __generator(this, function (_a) {
|
|
230
|
-
return [2 /*return*/, this.httpClient
|
|
231
|
-
.post(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/invites_external/", TeamInviteExternal.toBack(invite))
|
|
232
|
-
.pipe(map(function (data) { return TeamInviteExternal.toFront(data); }))
|
|
233
|
-
.toPromise()];
|
|
234
|
-
});
|
|
235
|
-
});
|
|
236
|
-
};
|
|
237
|
-
TeamApi.prototype.deleteInviteExternal = function (invite) {
|
|
238
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
239
|
-
return __generator(this, function (_a) {
|
|
240
|
-
return [2 /*return*/, this.httpClient
|
|
241
|
-
.delete(this.configService.get('apiUrl') + "/api/v1/invites_external/" + invite.id + "/")
|
|
242
|
-
.toPromise()];
|
|
243
|
-
});
|
|
244
|
-
});
|
|
245
|
-
};
|
|
246
|
-
TeamApi.prototype.resendInviteExternal = function (invite) {
|
|
247
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
248
|
-
return __generator(this, function (_a) {
|
|
249
|
-
return [2 /*return*/, this.httpClient
|
|
250
|
-
.post(this.configService.get('apiUrl') + "/api/v1/invites_external/" + invite.id + "/resend/", {})
|
|
251
|
-
.pipe(map(function (data) { return TeamInviteExternal.toFront(data); }))
|
|
252
|
-
.toPromise()];
|
|
253
|
-
});
|
|
254
|
-
});
|
|
255
|
-
};
|
|
256
|
-
TeamApi.prototype.getPolls = function (teamId, archive) {
|
|
257
|
-
if (archive === void 0) { archive = false; }
|
|
258
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
259
|
-
return __generator(this, function (_a) {
|
|
260
|
-
return [2 /*return*/, this.httpClient
|
|
261
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/polls/" + (archive ? '?archive=1' : ''))
|
|
262
|
-
.pipe(map(function (data) { return Poll.toFront(data); }))
|
|
263
|
-
.toPromise()];
|
|
264
|
-
});
|
|
265
|
-
});
|
|
266
|
-
};
|
|
267
|
-
TeamApi.prototype.createPoll = function (teamId, poll) {
|
|
268
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
269
|
-
return __generator(this, function (_a) {
|
|
270
|
-
return [2 /*return*/, this.httpClient
|
|
271
|
-
.post(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/polls/", Poll.toBack(poll))
|
|
272
|
-
.pipe(map(function (data) { return Poll.toFront(data); }))
|
|
273
|
-
.toPromise()];
|
|
274
|
-
});
|
|
275
|
-
});
|
|
276
|
-
};
|
|
277
|
-
TeamApi.prototype.getUsersStatistic = function (teamId) {
|
|
278
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
279
|
-
return __generator(this, function (_a) {
|
|
280
|
-
return [2 /*return*/, this.httpClient
|
|
281
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/statistics/")
|
|
282
|
-
.pipe(map(function (data) { return BasketballStatistic.toFront(data); }))
|
|
283
|
-
.toPromise()];
|
|
284
|
-
});
|
|
285
|
-
});
|
|
286
|
-
};
|
|
287
|
-
TeamApi.prototype.getVolleyballStatistic = function (teamId) {
|
|
288
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
289
|
-
return __generator(this, function (_a) {
|
|
290
|
-
return [2 /*return*/, this.httpClient
|
|
291
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/volleyball_statistics/")
|
|
292
|
-
.pipe(map(function (data) { return VolleyballStatistic.toFront(data); }))
|
|
293
|
-
.toPromise()];
|
|
294
|
-
});
|
|
295
|
-
});
|
|
296
|
-
};
|
|
297
|
-
TeamApi.prototype.joinTeam = function (teamId) {
|
|
298
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
299
|
-
return __generator(this, function (_a) {
|
|
300
|
-
return [2 /*return*/, this.httpClient
|
|
301
|
-
.post(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/join/", {})
|
|
302
|
-
.pipe(map(function (data) { return TeamInvite.toFront(data); }))
|
|
303
|
-
.toPromise()];
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
};
|
|
307
|
-
TeamApi.prototype.leaveTeam = function (teamId) {
|
|
308
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
309
|
-
return __generator(this, function (_a) {
|
|
310
|
-
return [2 /*return*/, this.httpClient
|
|
311
|
-
.post(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/leave/", {})
|
|
312
|
-
.toPromise()];
|
|
313
|
-
});
|
|
314
|
-
});
|
|
315
|
-
};
|
|
316
|
-
TeamApi.prototype.getGames = function (teamId, archive) {
|
|
317
|
-
if (archive === void 0) { archive = false; }
|
|
318
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
319
|
-
return __generator(this, function (_a) {
|
|
320
|
-
return [2 /*return*/, this.httpClient
|
|
321
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/games/" + (archive ? '?archive=1' : ''))
|
|
322
|
-
.pipe(map(function (data) { return Game.toFront(data); }))
|
|
323
|
-
.toPromise()];
|
|
324
|
-
});
|
|
325
|
-
});
|
|
326
|
-
};
|
|
327
|
-
TeamApi.prototype.createGame = function (teamId, game) {
|
|
328
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
329
|
-
return __generator(this, function (_a) {
|
|
330
|
-
return [2 /*return*/, this.httpClient
|
|
331
|
-
.post(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/games/", Game.toBack(game))
|
|
332
|
-
.pipe(map(function (data) { return Game.toFront(data); }))
|
|
333
|
-
.toPromise()];
|
|
334
|
-
});
|
|
335
|
-
});
|
|
336
|
-
};
|
|
337
|
-
TeamApi.prototype.getTeamEvents = function (teamId) {
|
|
338
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
339
|
-
return __generator(this, function (_a) {
|
|
340
|
-
return [2 /*return*/, this.httpClient
|
|
341
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/events/")
|
|
342
|
-
.pipe(map(function (data) { return TeamEvent.toFront(data); }))
|
|
343
|
-
.toPromise()];
|
|
344
|
-
});
|
|
345
|
-
});
|
|
346
|
-
};
|
|
347
|
-
TeamApi.prototype.createTeamEvent = function (teamId, teamEvent) {
|
|
348
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
349
|
-
return __generator(this, function (_a) {
|
|
350
|
-
return [2 /*return*/, this.httpClient
|
|
351
|
-
.post(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/events/", TeamEvent.toBack(teamEvent))
|
|
352
|
-
.pipe(map(function (data) { return TeamEvent.toFront(data); }))
|
|
353
|
-
.toPromise()];
|
|
354
|
-
});
|
|
355
|
-
});
|
|
356
|
-
};
|
|
357
|
-
TeamApi.prototype.getTournaments = function (teamId) {
|
|
358
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
359
|
-
return __generator(this, function (_a) {
|
|
360
|
-
return [2 /*return*/, this.httpClient
|
|
361
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/tournaments/")
|
|
362
|
-
.pipe(map(function (data) { return Tournament.toFront(data); }))
|
|
363
|
-
.toPromise()];
|
|
364
|
-
});
|
|
365
|
-
});
|
|
366
|
-
};
|
|
367
|
-
TeamApi.prototype.getTournamentTeams = function (teamId) {
|
|
368
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
369
|
-
return __generator(this, function (_a) {
|
|
370
|
-
return [2 /*return*/, this.httpClient
|
|
371
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/tournament_teams/")
|
|
372
|
-
.pipe(map(function (data) { return TournamentTeam.toFront(data); }))
|
|
373
|
-
.toPromise()];
|
|
374
|
-
});
|
|
375
|
-
});
|
|
376
|
-
};
|
|
377
|
-
TeamApi.prototype.getTournamentInvites = function (teamId) {
|
|
378
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
379
|
-
return __generator(this, function (_a) {
|
|
380
|
-
return [2 /*return*/, this.httpClient
|
|
381
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/tournament_invites/")
|
|
382
|
-
.pipe(map(function (data) { return TournamentInvite.toFront(data); }))
|
|
383
|
-
.toPromise()];
|
|
384
|
-
});
|
|
385
|
-
});
|
|
386
|
-
};
|
|
387
|
-
TeamApi.prototype.getTournamentGames = function (teamId, tournamentId, page, size) {
|
|
388
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
389
|
-
var params;
|
|
390
|
-
return __generator(this, function (_a) {
|
|
391
|
-
params = new HttpParams().set('page', page.toString());
|
|
392
|
-
if (size) {
|
|
393
|
-
params = params.set('size', size.toString());
|
|
394
|
-
}
|
|
395
|
-
return [2 /*return*/, this.httpClient
|
|
396
|
-
.get(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/tournaments/" + tournamentId + "/games/", { params: params, observe: 'response' })
|
|
397
|
-
.pipe(map(function (response) {
|
|
398
|
-
return {
|
|
399
|
-
total: +response.headers.get('X-Page-Count'),
|
|
400
|
-
data: Game.toFront(response.body)
|
|
401
|
-
};
|
|
402
|
-
}))
|
|
403
|
-
.toPromise()];
|
|
404
|
-
});
|
|
405
|
-
});
|
|
406
|
-
};
|
|
407
|
-
TeamApi.prototype.acceptTournamentInvite = function (inviteId) {
|
|
408
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
409
|
-
return __generator(this, function (_a) {
|
|
410
|
-
return [2 /*return*/, this.httpClient
|
|
411
|
-
.post(this.configService.get('apiUrl') + "/api/v1/tournament_invite/" + inviteId + "/accept/", {})
|
|
412
|
-
.pipe(map(function (data) { return TournamentInvite.toFront(data); }))
|
|
413
|
-
.toPromise()];
|
|
414
|
-
});
|
|
415
|
-
});
|
|
416
|
-
};
|
|
417
|
-
TeamApi.prototype.declineTournamentInvite = function (inviteId) {
|
|
418
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
419
|
-
return __generator(this, function (_a) {
|
|
420
|
-
return [2 /*return*/, this.httpClient
|
|
421
|
-
.post(this.configService.get('apiUrl') + "/api/v1/tournament_invite/" + inviteId + "/decline/", {})
|
|
422
|
-
.pipe(map(function (data) { return TournamentInvite.toFront(data); }))
|
|
423
|
-
.toPromise()];
|
|
424
|
-
});
|
|
425
|
-
});
|
|
426
|
-
};
|
|
427
|
-
TeamApi.prototype.registerLazyUser = function (teamId, userData) {
|
|
428
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
429
|
-
return __generator(this, function (_a) {
|
|
430
|
-
return [2 /*return*/, this.httpClient
|
|
431
|
-
.post(this.configService.get('apiUrl') + "/api/v1/team/" + teamId + "/lazy_user/", { user: User.toBack(userData) })
|
|
432
|
-
.pipe(map(function (data) { return TeamUser.toFront(data); }))
|
|
433
|
-
.toPromise()];
|
|
434
|
-
});
|
|
435
|
-
});
|
|
436
|
-
};
|
|
437
|
-
TeamApi.prototype.getLazyUser = function (teamUserId) {
|
|
438
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
439
|
-
return __generator(this, function (_a) {
|
|
440
|
-
return [2 /*return*/, this.httpClient
|
|
441
|
-
.get(this.configService.get('apiUrl') + "/api/v1/lazy_user/" + teamUserId + "/")
|
|
442
|
-
.pipe(map(function (data) { return TeamUser.toFront(data); }))
|
|
443
|
-
.toPromise()];
|
|
444
|
-
});
|
|
445
|
-
});
|
|
446
|
-
};
|
|
447
|
-
TeamApi.prototype.updateLazyUser = function (teamUserId, userData) {
|
|
448
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
449
|
-
return __generator(this, function (_a) {
|
|
450
|
-
return [2 /*return*/, this.httpClient
|
|
451
|
-
.patch(this.configService.get('apiUrl') + "/api/v1/lazy_user/" + teamUserId + "/", { user: User.toBack(userData) })
|
|
452
|
-
.pipe(map(function (data) { return TeamUser.toFront(data); }))
|
|
453
|
-
.toPromise()];
|
|
454
|
-
});
|
|
455
|
-
});
|
|
456
|
-
};
|
|
457
|
-
TeamApi.prototype.deleteLazyUser = function (teamUserId) {
|
|
458
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
459
|
-
return __generator(this, function (_a) {
|
|
460
|
-
return [2 /*return*/, this.httpClient
|
|
461
|
-
.delete(this.configService.get('apiUrl') + "/api/v1/lazy_user/" + teamUserId + "/")
|
|
462
|
-
.toPromise()];
|
|
463
|
-
});
|
|
464
|
-
});
|
|
465
|
-
};
|
|
466
|
-
TeamApi.prototype.resendLazyUserEmail = function (teamUserId) {
|
|
467
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
468
|
-
return __generator(this, function (_a) {
|
|
469
|
-
return [2 /*return*/, this.httpClient
|
|
470
|
-
.post(this.configService.get('apiUrl') + "/api/v1/lazy_user/" + teamUserId + "/resend_email/", {})
|
|
471
|
-
.toPromise()];
|
|
472
|
-
});
|
|
473
|
-
});
|
|
474
|
-
};
|
|
475
|
-
TeamApi.ctorParameters = function () { return [
|
|
476
|
-
{ type: HttpClient },
|
|
477
|
-
{ type: ConfigService }
|
|
478
|
-
]; };
|
|
479
|
-
TeamApi.ɵprov = i0.ɵɵdefineInjectable({ factory: function TeamApi_Factory() { return new TeamApi(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.ConfigService)); }, token: TeamApi, providedIn: "root" });
|
|
480
|
-
TeamApi = __decorate([
|
|
481
|
-
Injectable({ providedIn: 'root' })
|
|
482
|
-
], TeamApi);
|
|
483
|
-
return TeamApi;
|
|
484
|
-
}());
|
|
485
|
-
export { TeamApi };
|
|
486
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVhbS1hcGkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbXRnYW1lL2NvcmUvIiwic291cmNlcyI6WyJhcGkvdGVhbS1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUczRDtJQUNFLGlCQUNVLFVBQXNCLEVBQ3RCLGFBQTRCO1FBRDVCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFDbkMsQ0FBQztJQUVFLHdCQUFNLEdBQVosVUFBYSxLQUFhLEVBQUUsT0FBZ0I7Ozs7Z0JBQ3RDLE1BQU0sR0FBRyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLE9BQU8sRUFBRTtvQkFDWCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7aUJBQ2xEO2dCQUNELHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixHQUFHLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGtCQUFlLEVBQUUsRUFBQyxNQUFNLFFBQUEsRUFBQyxDQUFDO3lCQUNqRSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBbEIsQ0FBa0IsQ0FBQyxDQUFDO3lCQUNyQyxTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUssd0JBQU0sR0FBWixVQUFhLElBQVU7OztnQkFDckIsc0JBQU8sSUFBSSxDQUFDLFVBQVU7eUJBQ25CLElBQUksQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsa0JBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUMzRSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBbEIsQ0FBa0IsQ0FBQyxDQUFDO3lCQUNyQyxTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUsseUJBQU8sR0FBYixVQUFjLE1BQWM7OztnQkFDMUIsc0JBQU8sSUFBSSxDQUFDLFVBQVU7eUJBQ25CLEdBQUcsQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMscUJBQWdCLE1BQU0sTUFBRyxDQUFDO3lCQUNqRSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBbEIsQ0FBa0IsQ0FBQyxDQUFDO3lCQUNyQyxTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUssK0JBQWEsR0FBbkIsVUFBb0IsTUFBYzs7O2dCQUNoQyxzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsR0FBRyxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxxQkFBZ0IsTUFBTSxhQUFVLENBQUM7eUJBQ3hFLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUF4QixDQUF3QixDQUFDLENBQUM7eUJBQzNDLFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSyx3QkFBTSxHQUFaLFVBQWEsTUFBYyxFQUFFLE1BQVc7OztnQkFDdEMsc0JBQU8sSUFBSSxDQUFDLFVBQVU7eUJBQ25CLEtBQUssQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMscUJBQWdCLE1BQU0sTUFBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7eUJBQ3hGLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFsQixDQUFrQixDQUFDLENBQUM7eUJBQ3JDLFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSyx3QkFBTSxHQUFaLFVBQWEsSUFBVTs7O2dCQUNyQixzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsTUFBTSxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxxQkFBZ0IsSUFBSSxDQUFDLEVBQUUsTUFBRyxDQUFDO3lCQUNyRSxTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUssK0JBQWEsR0FBbkIsVUFBb0IsTUFBYzs7O2dCQUNoQyxzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsR0FBRyxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxxQkFBZ0IsTUFBTSxpQkFBYyxDQUFDO3lCQUM1RSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBNUIsQ0FBNEIsQ0FBQyxDQUFDO3lCQUMvQyxTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUssa0NBQWdCLEdBQXRCLFVBQXVCLE1BQWMsRUFBRSxVQUEwQjs7O2dCQUMvRCxzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsS0FBSyxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxxQkFBZ0IsTUFBTSxpQkFBYyxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7eUJBQ2pILElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUE1QixDQUE0QixDQUFDLENBQUM7eUJBQy9DLFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSywwQkFBUSxHQUFkLFVBQWUsTUFBYyxFQUFFLFlBQXFCOzs7O2dCQUM5QyxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxZQUFZLEVBQUU7b0JBQ2hCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztpQkFDL0Q7Z0JBQ0Qsc0JBQU8sSUFBSSxDQUFDLFVBQVU7eUJBQ25CLEdBQUcsQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMscUJBQWdCLE1BQU0sWUFBUyxFQUFFLEVBQUMsTUFBTSxRQUFBLEVBQUMsQ0FBQzt5QkFDakYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQXRCLENBQXNCLENBQUMsQ0FBQzt5QkFDekMsU0FBUyxFQUFFLEVBQUM7OztLQUNoQjtJQUVLLGdDQUFjLEdBQXBCLFVBQXFCLE1BQWMsRUFBRSxVQUFrQixFQUFFLElBQWtCOzs7Z0JBQ3pFLHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixLQUFLLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLHFCQUFnQixNQUFNLGVBQVUsVUFBVSxXQUFRLEVBQUUsRUFBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUM7eUJBQ3hILElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUF0QixDQUFzQixDQUFDLENBQUM7eUJBQ3pDLFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSyxrQ0FBZ0IsR0FBdEIsVUFBdUIsTUFBYyxFQUFFLFVBQWtCLEVBQUUsVUFBa0I7OztnQkFDM0Usc0JBQU8sSUFBSSxDQUFDLFVBQVU7eUJBQ25CLEtBQUssQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMscUJBQWdCLE1BQU0sZUFBVSxVQUFVLGFBQVUsRUFBRSxFQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUMsQ0FBQzt5QkFDL0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQXRCLENBQXNCLENBQUMsQ0FBQzt5QkFDekMsU0FBUyxFQUFFLEVBQUM7OztLQUNoQjtJQUVLLDRCQUFVLEdBQWhCLFVBQWlCLFFBQWtCOzs7Z0JBQ2pDLHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixNQUFNLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLHFCQUFnQixRQUFRLENBQUMsTUFBTSxlQUFVLFFBQVEsQ0FBQyxFQUFFLE1BQUcsQ0FBQzt5QkFDbEcsU0FBUyxFQUFFLEVBQUM7OztLQUNoQjtJQUVLLDZCQUFXLEdBQWpCLFVBQWtCLE1BQWMsRUFBRSxJQUFVOzs7Z0JBQzFDLHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixJQUFJLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLHFCQUFnQixNQUFNLFlBQVMsRUFBRSxFQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFDLENBQUM7eUJBQ3ZGLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFsQixDQUFrQixDQUFDLENBQUM7eUJBQ3JDLFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSyw0QkFBVSxHQUFoQixVQUFpQixNQUFjOzs7Z0JBQzdCLHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixHQUFHLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLHFCQUFnQixNQUFNLGNBQVcsQ0FBQzt5QkFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQXhCLENBQXdCLENBQUMsQ0FBQzt5QkFDM0MsU0FBUyxFQUFFLEVBQUM7OztLQUNoQjtJQUVLLDRCQUFVLEdBQWhCLFVBQWlCLE1BQWMsRUFBRSxJQUFVOzs7Z0JBQ3pDLHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixJQUFJLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLHFCQUFnQixNQUFNLGNBQVcsRUFBRSxFQUFDLElBQUksTUFBQSxFQUFDLENBQUM7eUJBQ2xGLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUF4QixDQUF3QixDQUFDLENBQUM7eUJBQzNDLFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSyw4QkFBWSxHQUFsQixVQUFtQixNQUFrQjs7O2dCQUNuQyxzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsSUFBSSxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyw0QkFBdUIsTUFBTSxDQUFDLEVBQUUsYUFBVSxFQUFFLEVBQUUsQ0FBQzt5QkFDdkYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQXhCLENBQXdCLENBQUMsQ0FBQzt5QkFDM0MsU0FBUyxFQUFFLEVBQUM7OztLQUNoQjtJQUVLLCtCQUFhLEdBQW5CLFVBQW9CLE1BQWtCOzs7Z0JBQ3BDLHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixJQUFJLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLDRCQUF1QixNQUFNLENBQUMsRUFBRSxjQUFXLEVBQUUsRUFBRSxDQUFDO3lCQUN4RixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBeEIsQ0FBd0IsQ0FBQyxDQUFDO3lCQUMzQyxTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUssOEJBQVksR0FBbEIsVUFBbUIsTUFBa0I7OztnQkFDbkMsc0JBQU8sSUFBSSxDQUFDLFVBQVU7eUJBQ25CLElBQUksQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsNEJBQXVCLE1BQU0sQ0FBQyxFQUFFLGFBQVUsRUFBRSxFQUFFLENBQUM7eUJBQ3ZGLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUF4QixDQUF3QixDQUFDLENBQUM7eUJBQzNDLFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSyxvQ0FBa0IsR0FBeEIsVUFBeUIsTUFBYzs7O2dCQUNyQyxzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsR0FBRyxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxxQkFBZ0IsTUFBTSx1QkFBb0IsQ0FBQzt5QkFDbEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBaEMsQ0FBZ0MsQ0FBQyxDQUFDO3lCQUNuRCxTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUssb0NBQWtCLEdBQXhCLFVBQXlCLE1BQWMsRUFBRSxNQUEwQjs7O2dCQUNqRSxzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsSUFBSSxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxxQkFBZ0IsTUFBTSx1QkFBb0IsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7eUJBQ3RILElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQWhDLENBQWdDLENBQUMsQ0FBQzt5QkFDbkQsU0FBUyxFQUFFLEVBQUM7OztLQUNoQjtJQUVLLHNDQUFvQixHQUExQixVQUEyQixNQUEwQjs7O2dCQUNuRCxzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsTUFBTSxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxpQ0FBNEIsTUFBTSxDQUFDLEVBQUUsTUFBRyxDQUFDO3lCQUNuRixTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUssc0NBQW9CLEdBQTFCLFVBQTJCLE1BQTBCOzs7Z0JBQ25ELHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixJQUFJLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGlDQUE0QixNQUFNLENBQUMsRUFBRSxhQUFVLEVBQUUsRUFBRSxDQUFDO3lCQUM1RixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFoQyxDQUFnQyxDQUFDLENBQUM7eUJBQ25ELFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSywwQkFBUSxHQUFkLFVBQWUsTUFBYyxFQUFFLE9BQXdCO1FBQXhCLHdCQUFBLEVBQUEsZUFBd0I7OztnQkFDckQsc0JBQU8sSUFBSSxDQUFDLFVBQVU7eUJBQ25CLEdBQUcsQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMscUJBQWdCLE1BQU0sZ0JBQVUsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUFDO3lCQUNyRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBbEIsQ0FBa0IsQ0FBQyxDQUFDO3lCQUNyQyxTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUssNEJBQVUsR0FBaEIsVUFBaUIsTUFBYyxFQUFFLElBQVU7OztnQkFDekMsc0JBQU8sSUFBSSxDQUFDLFVBQVU7eUJBQ25CLElBQUksQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMscUJBQWdCLE1BQU0sWUFBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQzNGLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFsQixDQUFrQixDQUFDLENBQUM7eUJBQ3JDLFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSyxtQ0FBaUIsR0FBdkIsVUFBd0IsTUFBYzs7O2dCQUNwQyxzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsR0FBRyxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxxQkFBZ0IsTUFBTSxpQkFBYyxDQUFDO3lCQUM1RSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFqQyxDQUFpQyxDQUFDLENBQUM7eUJBQ3BELFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSyx3Q0FBc0IsR0FBNUIsVUFBNkIsTUFBYzs7O2dCQUN6QyxzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsR0FBRyxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxxQkFBZ0IsTUFBTSw0QkFBeUIsQ0FBQzt5QkFDdkYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBakMsQ0FBaUMsQ0FBQyxDQUFDO3lCQUNwRCxTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUssMEJBQVEsR0FBZCxVQUFlLE1BQWM7OztnQkFDM0Isc0JBQU8sSUFBSSxDQUFDLFVBQVU7eUJBQ25CLElBQUksQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMscUJBQWdCLE1BQU0sV0FBUSxFQUFFLEVBQUUsQ0FBQzt5QkFDM0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQXhCLENBQXdCLENBQUMsQ0FBQzt5QkFDM0MsU0FBUyxFQUFFLEVBQUM7OztLQUNoQjtJQUVLLDJCQUFTLEdBQWYsVUFBZ0IsTUFBYzs7O2dCQUM1QixzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsSUFBSSxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxxQkFBZ0IsTUFBTSxZQUFTLEVBQUUsRUFBRSxDQUFDO3lCQUM1RSxTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUssMEJBQVEsR0FBZCxVQUFlLE1BQWMsRUFBRSxPQUFlO1FBQWYsd0JBQUEsRUFBQSxlQUFlOzs7Z0JBQzVDLHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixHQUFHLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLHFCQUFnQixNQUFNLGdCQUFVLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBQzt5QkFDckcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQWxCLENBQWtCLENBQUMsQ0FBQzt5QkFDckMsU0FBUyxFQUFFLEVBQUM7OztLQUNoQjtJQUVLLDRCQUFVLEdBQWhCLFVBQWlCLE1BQWMsRUFBRSxJQUFVOzs7Z0JBQ3pDLHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixJQUFJLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLHFCQUFnQixNQUFNLFlBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUMzRixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBbEIsQ0FBa0IsQ0FBQyxDQUFDO3lCQUNyQyxTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUssK0JBQWEsR0FBbkIsVUFBb0IsTUFBYzs7O2dCQUNoQyxzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsR0FBRyxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxxQkFBZ0IsTUFBTSxhQUFVLENBQUM7eUJBQ3hFLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUF2QixDQUF1QixDQUFDLENBQUM7eUJBQzFDLFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSyxpQ0FBZSxHQUFyQixVQUFzQixNQUFjLEVBQUUsU0FBb0I7OztnQkFDeEQsc0JBQU8sSUFBSSxDQUFDLFVBQVU7eUJBQ25CLElBQUksQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMscUJBQWdCLE1BQU0sYUFBVSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7eUJBQ3RHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUF2QixDQUF1QixDQUFDLENBQUM7eUJBQzFDLFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSyxnQ0FBYyxHQUFwQixVQUFxQixNQUFjOzs7Z0JBQ2pDLHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixHQUFHLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLHFCQUFnQixNQUFNLGtCQUFlLENBQUM7eUJBQzdFLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUF4QixDQUF3QixDQUFDLENBQUM7eUJBQzNDLFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSyxvQ0FBa0IsR0FBeEIsVUFBeUIsTUFBYzs7O2dCQUNyQyxzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsR0FBRyxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxxQkFBZ0IsTUFBTSx1QkFBb0IsQ0FBQzt5QkFDbEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQTVCLENBQTRCLENBQUMsQ0FBQzt5QkFDL0MsU0FBUyxFQUFFLEVBQUM7OztLQUNoQjtJQUVLLHNDQUFvQixHQUExQixVQUEyQixNQUFjOzs7Z0JBQ3ZDLHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixHQUFHLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLHFCQUFnQixNQUFNLHlCQUFzQixDQUFDO3lCQUNwRixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUE5QixDQUE4QixDQUFDLENBQUM7eUJBQ2pELFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSyxvQ0FBa0IsR0FBeEIsVUFBeUIsTUFBYyxFQUFFLFlBQW9CLEVBQUUsSUFBWSxFQUFFLElBQWE7Ozs7Z0JBQ3BGLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQzNELElBQUksSUFBSSxFQUFFO29CQUNSLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztpQkFDOUM7Z0JBQ0Qsc0JBQU8sSUFBSSxDQUFDLFVBQVU7eUJBQ25CLEdBQUcsQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMscUJBQWdCLE1BQU0scUJBQWdCLFlBQVksWUFBUyxFQUFFLEVBQUMsTUFBTSxRQUFBLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBQyxDQUFDO3lCQUNsSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUMsUUFBMkI7d0JBQ3BDLE9BQU87NEJBQ0wsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDOzRCQUM1QyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO3lCQUNsQyxDQUFDO29CQUNKLENBQUMsQ0FBQyxDQUFDO3lCQUNGLFNBQVMsRUFBRSxFQUFDOzs7S0FDaEI7SUFFSyx3Q0FBc0IsR0FBNUIsVUFBNkIsUUFBZ0I7OztnQkFDM0Msc0JBQU8sSUFBSSxDQUFDLFVBQVU7eUJBQ25CLElBQUksQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsa0NBQTZCLFFBQVEsYUFBVSxFQUFFLEVBQUUsQ0FBQzt5QkFDNUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBOUIsQ0FBOEIsQ0FBQyxDQUFDO3lCQUNqRCxTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUsseUNBQXVCLEdBQTdCLFVBQThCLFFBQWdCOzs7Z0JBQzVDLHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixJQUFJLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGtDQUE2QixRQUFRLGNBQVcsRUFBRSxFQUFFLENBQUM7eUJBQzdGLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQTlCLENBQThCLENBQUMsQ0FBQzt5QkFDakQsU0FBUyxFQUFFLEVBQUM7OztLQUNoQjtJQUVLLGtDQUFnQixHQUF0QixVQUF1QixNQUFjLEVBQUUsUUFBYzs7O2dCQUNuRCxzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsSUFBSSxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxxQkFBZ0IsTUFBTSxnQkFBYSxFQUFHLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQzt5QkFDNUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQXRCLENBQXNCLENBQUMsQ0FBQzt5QkFDekMsU0FBUyxFQUFFLEVBQUM7OztLQUNoQjtJQUVLLDZCQUFXLEdBQWpCLFVBQWtCLFVBQWtCOzs7Z0JBQ2xDLHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixHQUFHLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLDBCQUFxQixVQUFVLE1BQUcsQ0FBQzt5QkFDMUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQXRCLENBQXNCLENBQUMsQ0FBQzt5QkFDekMsU0FBUyxFQUFFLEVBQUM7OztLQUNoQjtJQUVLLGdDQUFjLEdBQXBCLFVBQXFCLFVBQWtCLEVBQUUsUUFBYzs7O2dCQUNyRCxzQkFBTyxJQUFJLENBQUMsVUFBVTt5QkFDbkIsS0FBSyxDQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQywwQkFBcUIsVUFBVSxNQUFHLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO3lCQUMzRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBdEIsQ0FBc0IsQ0FBQyxDQUFDO3lCQUN6QyxTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUssZ0NBQWMsR0FBcEIsVUFBcUIsVUFBa0I7OztnQkFDckMsc0JBQU8sSUFBSSxDQUFDLFVBQVU7eUJBQ25CLE1BQU0sQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsMEJBQXFCLFVBQVUsTUFBRyxDQUFDO3lCQUM3RSxTQUFTLEVBQUUsRUFBQzs7O0tBQ2hCO0lBRUsscUNBQW1CLEdBQXpCLFVBQTBCLFVBQWtCOzs7Z0JBQzFDLHNCQUFPLElBQUksQ0FBQyxVQUFVO3lCQUNuQixJQUFJLENBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLDBCQUFxQixVQUFVLG1CQUFnQixFQUFFLEVBQUUsQ0FBQzt5QkFDNUYsU0FBUyxFQUFFLEVBQUM7OztLQUNoQjs7Z0JBMVRxQixVQUFVO2dCQUNQLGFBQWE7OztJQUgzQixPQUFPO1FBRG5CLFVBQVUsQ0FBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsQ0FBQztPQUNwQixPQUFPLENBNlRuQjtrQkFuVkQ7Q0FtVkMsQUE3VEQsSUE2VEM7U0E3VFksT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFRlYW0gfSBmcm9tICcuLi9tb2RlbHMvdGVhbSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUZWFtVXNlciwgVGVhbVVzZXJSb2xlIH0gZnJvbSAnLi4vbW9kZWxzL3RlYW0tdXNlcic7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vbW9kZWxzL3VzZXInO1xuaW1wb3J0IHsgVGVhbUludml0ZSB9IGZyb20gJy4uL21vZGVscy90ZWFtLWludml0ZSc7XG5pbXBvcnQgeyBUZWFtSW52aXRlRXh0ZXJuYWwgfSBmcm9tICcuLi9tb2RlbHMvdGVhbS1pbnZpdGUtZXh0ZXJuYWwnO1xuaW1wb3J0IHsgUG9sbCB9IGZyb20gJy4uL21vZGVscy9wb2xsJztcbmltcG9ydCB7IFZvbGxleWJhbGxTdGF0aXN0aWMgfSBmcm9tICcuLi9tb2RlbHMvdm9sbGV5YmFsbC1zdGF0aXN0aWMnO1xuaW1wb3J0IHsgR2FtZSB9IGZyb20gJy4uL21vZGVscy9nYW1lJztcbmltcG9ydCB7IFRlYW1FdmVudCB9IGZyb20gJy4uL21vZGVscy90ZWFtLWV2ZW50JztcbmltcG9ydCB7IFRvdXJuYW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvdG91cm5hbWVudCc7XG5pbXBvcnQgeyBUb3VybmFtZW50VGVhbSB9IGZyb20gJy4uL21vZGVscy90b3VybmFtZW50LXRlYW0nO1xuaW1wb3J0IHsgVG91cm5hbWVudEludml0ZSB9IGZyb20gJy4uL21vZGVscy90b3VybmFtZW50LWludml0ZSc7XG5pbXBvcnQgeyBQYWdpbmF0ZWRSZXNwb25zZSB9IGZyb20gJy4vcGFnaW5hdGVkLXJlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCYXNrZXRiYWxsU3RhdGlzdGljIH0gZnJvbSAnLi4vbW9kZWxzL2Jhc2tldGJhbGwtc3RhdGlzdGljJztcbmltcG9ydCB7IFRlYW1QZXJtaXNzaW9uIH0gZnJvbSAnLi4vbW9kZWxzL3RlYW0tcGVybWlzc2lvbic7XG5pbXBvcnQgeyBUZWFtQWNjZXNzIH0gZnJvbSAnLi4vbW9kZWxzL3RlYW0tYWNjZXNzJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb25maWcuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFRlYW1BcGkge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICApIHt9XG5cbiAgYXN5bmMgc2VhcmNoKHF1ZXJ5OiBzdHJpbmcsIHNwb3J0SWQ/OiBudW1iZXIpOiBQcm9taXNlPFRlYW1bXT4ge1xuICAgIGxldCBwYXJhbXMgPSAobmV3IEh0dHBQYXJhbXMoKSkuc2V0KCdzZWFyY2gnLCBxdWVyeSk7XG4gICAgaWYgKHNwb3J0SWQpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3Nwb3J0Jywgc3BvcnRJZC50b1N0cmluZygpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RlYW0vYCwge3BhcmFtc30pXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtLnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlKHRlYW06IFRlYW0pOiBQcm9taXNlPFRlYW0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAucG9zdChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RlYW0vYCwgVGVhbS50b0JhY2sodGVhbSkpXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtLnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0QnlJZCh0ZWFtSWQ6IG51bWJlcik6IFByb21pc2U8VGVhbT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90ZWFtLyR7dGVhbUlkfS9gKVxuICAgICAgLnBpcGUobWFwKGRhdGEgPT4gVGVhbS50b0Zyb250KGRhdGEpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFRlYW1BY2Nlc3ModGVhbUlkOiBudW1iZXIpOiBQcm9taXNlPFRlYW1BY2Nlc3M+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdGVhbS8ke3RlYW1JZH0vYWNjZXNzL2ApXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtQWNjZXNzLnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlKHRlYW1JZDogbnVtYmVyLCB2YWx1ZXM6IGFueSk6IFByb21pc2U8VGVhbT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wYXRjaChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RlYW0vJHt0ZWFtSWR9L2AsIFRlYW0udG9CYWNrKHZhbHVlcykpXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtLnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKHRlYW06IFRlYW0pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5kZWxldGUoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90ZWFtLyR7dGVhbS5pZH0vYClcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFBlcm1pc3Npb24odGVhbUlkOiBudW1iZXIpOiBQcm9taXNlPFRlYW1QZXJtaXNzaW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RlYW0vJHt0ZWFtSWR9L3Blcm1pc3Npb24vYClcbiAgICAgIC5waXBlKG1hcChkYXRhID0+IFRlYW1QZXJtaXNzaW9uLnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUGVybWlzc2lvbih0ZWFtSWQ6IG51bWJlciwgcGVybWlzc2lvbjogVGVhbVBlcm1pc3Npb24pOiBQcm9taXNlPFRlYW1QZXJtaXNzaW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLnBhdGNoKGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdGVhbS8ke3RlYW1JZH0vcGVybWlzc2lvbi9gLCBUZWFtUGVybWlzc2lvbi50b0JhY2socGVybWlzc2lvbikpXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtUGVybWlzc2lvbi50b0Zyb250KGRhdGEpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFVzZXJzKHRlYW1JZDogbnVtYmVyLCB0b3VybmFtZW50SWQ/OiBudW1iZXIpOiBQcm9taXNlPFRlYW1Vc2VyW10+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBpZiAodG91cm5hbWVudElkKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0b3VybmFtZW50X2lkJywgdG91cm5hbWVudElkLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdGVhbS8ke3RlYW1JZH0vdXNlcnMvYCwge3BhcmFtc30pXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtVXNlci50b0Zyb250KGRhdGEpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVVzZXJSb2xlKHRlYW1JZDogbnVtYmVyLCB0ZWFtVXNlcklkOiBudW1iZXIsIHJvbGU6IFRlYW1Vc2VyUm9sZSk6IFByb21pc2U8VGVhbVVzZXI+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAucGF0Y2goYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90ZWFtLyR7dGVhbUlkfS91c2Vycy8ke3RlYW1Vc2VySWR9L3JvbGUvYCwge3JvbGU6IFRlYW1Vc2VyUm9sZVtyb2xlXX0pXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtVXNlci50b0Zyb250KGRhdGEpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVVzZXJOdW1iZXIodGVhbUlkOiBudW1iZXIsIHRlYW1Vc2VySWQ6IG51bWJlciwgZ2FtZU51bWJlcjogbnVtYmVyKTogUHJvbWlzZTxUZWFtVXNlcj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wYXRjaChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RlYW0vJHt0ZWFtSWR9L3VzZXJzLyR7dGVhbVVzZXJJZH0vbnVtYmVyL2AsIHtudW1iZXI6IGdhbWVOdW1iZXIudG9TdHJpbmcoKX0pXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtVXNlci50b0Zyb250KGRhdGEpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZVVzZXIodGVhbVVzZXI6IFRlYW1Vc2VyKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZGVsZXRlKGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdGVhbS8ke3RlYW1Vc2VyLnRlYW1JZH0vdXNlcnMvJHt0ZWFtVXNlci5pZH0vYClcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGNoYW5nZU93bmVyKHRlYW1JZDogbnVtYmVyLCB1c2VyOiBVc2VyKTogUHJvbWlzZTxUZWFtPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLnBvc3QoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90ZWFtLyR7dGVhbUlkfS9vd25lci9gLCB7aWQ6IHVzZXIuaWR9KVxuICAgICAgLnBpcGUobWFwKGRhdGEgPT4gVGVhbS50b0Zyb250KGRhdGEpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGdldEludml0ZXModGVhbUlkOiBudW1iZXIpOiBQcm9taXNlPFRlYW1JbnZpdGVbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90ZWFtLyR7dGVhbUlkfS9pbnZpdGVzL2ApXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtSW52aXRlLnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgc2VuZEludml0ZSh0ZWFtSWQ6IG51bWJlciwgdXNlcjogVXNlcik6IFByb21pc2U8VGVhbUludml0ZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wb3N0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdGVhbS8ke3RlYW1JZH0vaW52aXRlcy9gLCB7dXNlcn0pXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtSW52aXRlLnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgYWNjZXB0SW52aXRlKGludml0ZTogVGVhbUludml0ZSk6IFByb21pc2U8VGVhbUludml0ZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wb3N0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdGVhbV9pbnZpdGUvJHtpbnZpdGUuaWR9L2FjY2VwdC9gLCB7fSlcbiAgICAgIC5waXBlKG1hcChkYXRhID0+IFRlYW1JbnZpdGUudG9Gcm9udChkYXRhKSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBkZWNsaW5lSW52aXRlKGludml0ZTogVGVhbUludml0ZSk6IFByb21pc2U8VGVhbUludml0ZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wb3N0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdGVhbV9pbnZpdGUvJHtpbnZpdGUuaWR9L2RlY2xpbmUvYCwge30pXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtSW52aXRlLnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgcmVzZW5kSW52aXRlKGludml0ZTogVGVhbUludml0ZSk6IFByb21pc2U8VGVhbUludml0ZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wb3N0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdGVhbV9pbnZpdGUvJHtpbnZpdGUuaWR9L3Jlc2VuZC9gLCB7fSlcbiAgICAgIC5waXBlKG1hcChkYXRhID0+IFRlYW1JbnZpdGUudG9Gcm9udChkYXRhKSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRJbnZpdGVzRXh0ZXJuYWwodGVhbUlkOiBudW1iZXIpOiBQcm9taXNlPFRlYW1JbnZpdGVFeHRlcm5hbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RlYW0vJHt0ZWFtSWR9L2ludml0ZXNfZXh0ZXJuYWwvYClcbiAgICAgIC5waXBlKG1hcChkYXRhID0+IFRlYW1JbnZpdGVFeHRlcm5hbC50b0Zyb250KGRhdGEpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIHNlbmRJbnZpdGVFeHRlcm5hbCh0ZWFtSWQ6IG51bWJlciwgaW52aXRlOiBUZWFtSW52aXRlRXh0ZXJuYWwpOiBQcm9taXNlPFRlYW1JbnZpdGVFeHRlcm5hbD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wb3N0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdGVhbS8ke3RlYW1JZH0vaW52aXRlc19leHRlcm5hbC9gLCBUZWFtSW52aXRlRXh0ZXJuYWwudG9CYWNrKGludml0ZSkpXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtSW52aXRlRXh0ZXJuYWwudG9Gcm9udChkYXRhKSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBkZWxldGVJbnZpdGVFeHRlcm5hbChpbnZpdGU6IFRlYW1JbnZpdGVFeHRlcm5hbCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmRlbGV0ZShgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL2ludml0ZXNfZXh0ZXJuYWwvJHtpbnZpdGUuaWR9L2ApXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyByZXNlbmRJbnZpdGVFeHRlcm5hbChpbnZpdGU6IFRlYW1JbnZpdGVFeHRlcm5hbCk6IFByb21pc2U8VGVhbUludml0ZUV4dGVybmFsPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLnBvc3QoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS9pbnZpdGVzX2V4dGVybmFsLyR7aW52aXRlLmlkfS9yZXNlbmQvYCwge30pXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtSW52aXRlRXh0ZXJuYWwudG9Gcm9udChkYXRhKSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRQb2xscyh0ZWFtSWQ6IG51bWJlciwgYXJjaGl2ZTogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxQb2xsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdGVhbS8ke3RlYW1JZH0vcG9sbHMvJHthcmNoaXZlID8gJz9hcmNoaXZlPTEnIDogJyd9YClcbiAgICAgIC5waXBlKG1hcChkYXRhID0+IFBvbGwudG9Gcm9udChkYXRhKSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVQb2xsKHRlYW1JZDogbnVtYmVyLCBwb2xsOiBQb2xsKTogUHJvbWlzZTxQb2xsPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLnBvc3QoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90ZWFtLyR7dGVhbUlkfS9wb2xscy9gLCBQb2xsLnRvQmFjayhwb2xsKSlcbiAgICAgIC5waXBlKG1hcChkYXRhID0+IFBvbGwudG9Gcm9udChkYXRhKSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRVc2Vyc1N0YXRpc3RpYyh0ZWFtSWQ6IG51bWJlcik6IFByb21pc2U8QmFza2V0YmFsbFN0YXRpc3RpY1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RlYW0vJHt0ZWFtSWR9L3N0YXRpc3RpY3MvYClcbiAgICAgIC5waXBlKG1hcChkYXRhID0+IEJhc2tldGJhbGxTdGF0aXN0aWMudG9Gcm9udChkYXRhKSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRWb2xsZXliYWxsU3RhdGlzdGljKHRlYW1JZDogbnVtYmVyKTogUHJvbWlzZTxWb2xsZXliYWxsU3RhdGlzdGljW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdGVhbS8ke3RlYW1JZH0vdm9sbGV5YmFsbF9zdGF0aXN0aWNzL2ApXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBWb2xsZXliYWxsU3RhdGlzdGljLnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgam9pblRlYW0odGVhbUlkOiBudW1iZXIpOiBQcm9taXNlPFRlYW1JbnZpdGU+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAucG9zdChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RlYW0vJHt0ZWFtSWR9L2pvaW4vYCwge30pXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtSW52aXRlLnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgbGVhdmVUZWFtKHRlYW1JZDogbnVtYmVyKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAucG9zdChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RlYW0vJHt0ZWFtSWR9L2xlYXZlL2AsIHt9KVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0R2FtZXModGVhbUlkOiBudW1iZXIsIGFyY2hpdmUgPSBmYWxzZSk6IFByb21pc2U8R2FtZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RlYW0vJHt0ZWFtSWR9L2dhbWVzLyR7YXJjaGl2ZSA/ICc/YXJjaGl2ZT0xJyA6ICcnfWApXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBHYW1lLnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlR2FtZSh0ZWFtSWQ6IG51bWJlciwgZ2FtZTogR2FtZSk6IFByb21pc2U8R2FtZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wb3N0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdGVhbS8ke3RlYW1JZH0vZ2FtZXMvYCwgR2FtZS50b0JhY2soZ2FtZSkpXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBHYW1lLnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VGVhbUV2ZW50cyh0ZWFtSWQ6IG51bWJlcik6IFByb21pc2U8VGVhbUV2ZW50W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdGVhbS8ke3RlYW1JZH0vZXZlbnRzL2ApXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtRXZlbnQudG9Gcm9udChkYXRhKSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVUZWFtRXZlbnQodGVhbUlkOiBudW1iZXIsIHRlYW1FdmVudDogVGVhbUV2ZW50KTogUHJvbWlzZTxUZWFtRXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAucG9zdChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RlYW0vJHt0ZWFtSWR9L2V2ZW50cy9gLCBUZWFtRXZlbnQudG9CYWNrKHRlYW1FdmVudCkpXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtRXZlbnQudG9Gcm9udChkYXRhKSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRUb3VybmFtZW50cyh0ZWFtSWQ6IG51bWJlcik6IFByb21pc2U8VG91cm5hbWVudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RlYW0vJHt0ZWFtSWR9L3RvdXJuYW1lbnRzL2ApXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUb3VybmFtZW50LnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VG91cm5hbWVudFRlYW1zKHRlYW1JZDogbnVtYmVyKTogUHJvbWlzZTxUb3VybmFtZW50VGVhbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RlYW0vJHt0ZWFtSWR9L3RvdXJuYW1lbnRfdGVhbXMvYClcbiAgICAgIC5waXBlKG1hcChkYXRhID0+IFRvdXJuYW1lbnRUZWFtLnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VG91cm5hbWVudEludml0ZXModGVhbUlkOiBudW1iZXIpOiBQcm9taXNlPFRvdXJuYW1lbnRJbnZpdGVbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5nZXQoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90ZWFtLyR7dGVhbUlkfS90b3VybmFtZW50X2ludml0ZXMvYClcbiAgICAgIC5waXBlKG1hcChkYXRhID0+IFRvdXJuYW1lbnRJbnZpdGUudG9Gcm9udChkYXRhKSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRUb3VybmFtZW50R2FtZXModGVhbUlkOiBudW1iZXIsIHRvdXJuYW1lbnRJZDogbnVtYmVyLCBwYWdlOiBudW1iZXIsIHNpemU/OiBudW1iZXIpOiBQcm9taXNlPFBhZ2luYXRlZFJlc3BvbnNlPEdhbWVbXT4+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3BhZ2UnLCBwYWdlLnRvU3RyaW5nKCkpO1xuICAgIGlmIChzaXplKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzaXplJywgc2l6ZS50b1N0cmluZygpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RlYW0vJHt0ZWFtSWR9L3RvdXJuYW1lbnRzLyR7dG91cm5hbWVudElkfS9nYW1lcy9gLCB7cGFyYW1zLCBvYnNlcnZlOiAncmVzcG9uc2UnfSlcbiAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IEh0dHBSZXNwb25zZTxhbnk+KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdG90YWw6ICtyZXNwb25zZS5oZWFkZXJzLmdldCgnWC1QYWdlLUNvdW50JyksXG4gICAgICAgICAgZGF0YTogR2FtZS50b0Zyb250KHJlc3BvbnNlLmJvZHkpXG4gICAgICAgIH07XG4gICAgICB9KSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGFjY2VwdFRvdXJuYW1lbnRJbnZpdGUoaW52aXRlSWQ6IG51bWJlcik6IFByb21pc2U8VG91cm5hbWVudEludml0ZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgIC5wb3N0KGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvdG91cm5hbWVudF9pbnZpdGUvJHtpbnZpdGVJZH0vYWNjZXB0L2AsIHt9KVxuICAgICAgLnBpcGUobWFwKGRhdGEgPT4gVG91cm5hbWVudEludml0ZS50b0Zyb250KGRhdGEpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGRlY2xpbmVUb3VybmFtZW50SW52aXRlKGludml0ZUlkOiBudW1iZXIpOiBQcm9taXNlPFRvdXJuYW1lbnRJbnZpdGU+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAucG9zdChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL3RvdXJuYW1lbnRfaW52aXRlLyR7aW52aXRlSWR9L2RlY2xpbmUvYCwge30pXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUb3VybmFtZW50SW52aXRlLnRvRnJvbnQoZGF0YSkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgcmVnaXN0ZXJMYXp5VXNlcih0ZWFtSWQ6IG51bWJlciwgdXNlckRhdGE6IFVzZXIpOiBQcm9taXNlPFRlYW1Vc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLnBvc3QoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS90ZWFtLyR7dGVhbUlkfS9sYXp5X3VzZXIvYCwgIHt1c2VyOiBVc2VyLnRvQmFjayh1c2VyRGF0YSl9KVxuICAgICAgLnBpcGUobWFwKGRhdGEgPT4gVGVhbVVzZXIudG9Gcm9udChkYXRhKSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRMYXp5VXNlcih0ZWFtVXNlcklkOiBudW1iZXIpOiBQcm9taXNlPFRlYW1Vc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmdldChgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL2xhenlfdXNlci8ke3RlYW1Vc2VySWR9L2ApXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtVXNlci50b0Zyb250KGRhdGEpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUxhenlVc2VyKHRlYW1Vc2VySWQ6IG51bWJlciwgdXNlckRhdGE6IFVzZXIpOiBQcm9taXNlPFRlYW1Vc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLnBhdGNoKGAke3RoaXMuY29uZmlnU2VydmljZS5nZXQoJ2FwaVVybCcpfS9hcGkvdjEvbGF6eV91c2VyLyR7dGVhbVVzZXJJZH0vYCwge3VzZXI6IFVzZXIudG9CYWNrKHVzZXJEYXRhKX0pXG4gICAgICAucGlwZShtYXAoZGF0YSA9PiBUZWFtVXNlci50b0Zyb250KGRhdGEpKSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUxhenlVc2VyKHRlYW1Vc2VySWQ6IG51bWJlcik6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmRlbGV0ZShgJHt0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0KCdhcGlVcmwnKX0vYXBpL3YxL2xhenlfdXNlci8ke3RlYW1Vc2VySWR9L2ApXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyByZXNlbmRMYXp5VXNlckVtYWlsKHRlYW1Vc2VySWQ6IG51bWJlcik6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLnBvc3QoYCR7dGhpcy5jb25maWdTZXJ2aWNlLmdldCgnYXBpVXJsJyl9L2FwaS92MS9sYXp5X3VzZXIvJHt0ZWFtVXNlcklkfS9yZXNlbmRfZW1haWwvYCwge30pXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cbn1cbiJdfQ==
|