@schoolbelle/common
Version:
Demo library to showcase Angular packaging format
347 lines (339 loc) • 26.8 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@schoolbelle/common/tokens'), require('@angular/common/http'), require('@schoolbelle/common/services/storage'), require('rxjs/add/operator/toPromise')) :
typeof define === 'function' && define.amd ? define('@schoolbelle/common/services/auth', ['exports', '@angular/core', '@schoolbelle/common/tokens', '@angular/common/http', '@schoolbelle/common/services/storage', 'rxjs/add/operator/toPromise'], factory) :
(factory((global.schoolbelle = global.schoolbelle || {}, global.schoolbelle.common = global.schoolbelle.common || {}, global.schoolbelle.common.services = global.schoolbelle.common.services || {}, global.schoolbelle.common.services.auth = {}),global.ng.core,global.schoolbelle.common.tokens,global.ng.common.http,global.schoolbelle.common.services.storage));
}(this, (function (exports,core,tokens,http,storage) { 'use strict';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var AuthService = (function () {
function AuthService(http$$1, storageService, serverHost) {
this.http = http$$1;
this.storageService = storageService;
this.serverHost = serverHost;
var /** @type {?} */ type = (this.storageService.get('sbe-auth.session.type', 'session'));
var /** @type {?} */ intltel = this.storageService.get('sbe-auth.session.intltel', 'session');
var /** @type {?} */ verificationCode = this.storageService.get('sbe-auth.session.verificationCode', 'session');
if (type)
this.type = type;
if (intltel)
this.intltel = intltel;
if (verificationCode)
this.verificationCode = verificationCode;
}
Object.defineProperty(AuthService.prototype, "type", {
get: /**
* @return {?}
*/ function () {
return this._type;
},
set: /**
* @param {?} v
* @return {?}
*/ function (v) {
this._type = v;
if (v) {
this.storageService.set('sbe-auth.session.type', v, 'session');
}
else {
this.storageService.remove('sbe-auth.session.type', 'session');
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(AuthService.prototype, "intltel", {
get: /**
* @return {?}
*/ function () {
return this._intltel;
},
set: /**
* @param {?} v
* @return {?}
*/ function (v) {
this._intltel = v;
if (v) {
this.storageService.set('sbe-auth.session.intltel', v, 'session');
}
else {
this.storageService.remove('sbe-auth.session.intltel', 'session');
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(AuthService.prototype, "verificationCode", {
get: /**
* @return {?}
*/ function () {
return this._verificationCode;
},
set: /**
* @param {?} v
* @return {?}
*/ function (v) {
this._verificationCode = v;
if (v) {
this.storageService.set('sbe-auth.session.verificationCode', v, 'session');
}
else {
this.storageService.remove('sbe-auth.session.verificationCode', 'session');
}
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
AuthService.prototype.clear = /**
* @return {?}
*/
function () {
this.type = undefined;
this.intltel = undefined;
this.verificationCode = undefined;
};
/**
* @param {?} idtoken
* @return {?}
*/
AuthService.prototype.saveToken = /**
* @param {?} idtoken
* @return {?}
*/
function (idtoken) {
if (idtoken) {
this.storageService.set(AuthService.localStorageIdTokenKey, idtoken, 'local');
}
else {
this.storageService.remove(AuthService.localStorageIdTokenKey, 'local');
}
};
/**
* @param {?=} type
* @param {?=} countryDialCode
* @param {?=} tel
* @return {?}
*/
AuthService.prototype.requestCode = /**
* @param {?=} type
* @param {?=} countryDialCode
* @param {?=} tel
* @return {?}
*/
function (type, countryDialCode, tel) {
if (type === void 0) {
type = 'register';
}
var /** @type {?} */ url = this.serverHost + "/verification/request_code";
return this.http
.post(url, { type: type, countryDialCode: countryDialCode, tel: tel }, { responseType: 'text' })
.toPromise();
};
/**
* @param {?=} type
* @param {?=} countryDialCode
* @param {?=} tel
* @param {?=} verificationCode
* @param {?=} callback_url
* @return {?}
*/
AuthService.prototype.verifyCode = /**
* @param {?=} type
* @param {?=} countryDialCode
* @param {?=} tel
* @param {?=} verificationCode
* @param {?=} callback_url
* @return {?}
*/
function (type, countryDialCode, tel, verificationCode, callback_url) {
var _this = this;
if (type === void 0) {
type = 'register';
}
if (callback_url === void 0) {
callback_url = undefined;
}
var /** @type {?} */ url = this.serverHost + "/verification/verify_code";
return this.http
.post(url, {
type: type,
countryDialCode: countryDialCode,
tel: tel,
code: verificationCode,
callback_url: callback_url
}, { responseType: 'text' })
.toPromise()
.then(function (token) {
if (type === 'tmp' && token) {
_this.saveToken(token);
}
return token;
});
};
/**
* @param {?} countryDialCode
* @param {?} tel
* @param {?} password
* @param {?=} callback_url
* @return {?}
*/
AuthService.prototype.login = /**
* @param {?} countryDialCode
* @param {?} tel
* @param {?} password
* @param {?=} callback_url
* @return {?}
*/
function (countryDialCode, tel, password, callback_url) {
var _this = this;
if (callback_url === void 0) {
callback_url = undefined;
}
var /** @type {?} */ url = this.serverHost + "/login";
return this.http
.post(url, {
countryDialCode: countryDialCode,
tel: tel,
password: password,
callback_url: callback_url
}, { responseType: 'text' })
.toPromise()
.then(function (token) {
_this.saveToken(token);
return token;
});
};
/**
* @param {?} countryDialCode
* @param {?} tel
* @param {?} verificationCode
* @param {?} name
* @param {?} password
* @param {?=} callback_url
* @return {?}
*/
AuthService.prototype.register = /**
* @param {?} countryDialCode
* @param {?} tel
* @param {?} verificationCode
* @param {?} name
* @param {?} password
* @param {?=} callback_url
* @return {?}
*/
function (countryDialCode, tel, verificationCode, name, password, callback_url) {
var _this = this;
if (callback_url === void 0) {
callback_url = undefined;
}
var /** @type {?} */ url = this.serverHost + "/register";
return this.http
.post(url, {
countryDialCode: countryDialCode,
tel: tel,
code: verificationCode,
name: name,
password: password
})
.toPromise()
.then(function () { return _this.login(countryDialCode, tel, password, callback_url); });
};
/**
* @return {?}
*/
AuthService.prototype.getTermsOfUse = /**
* @return {?}
*/
function () {
var /** @type {?} */ url = this.serverHost + "/legal/user_agreement";
return this.http.get(url, { responseType: 'text' }).toPromise();
};
/**
* @return {?}
*/
AuthService.prototype.getPrivacyPolicy = /**
* @return {?}
*/
function () {
var /** @type {?} */ url = this.serverHost + "/legal/privacy_policy";
return this.http.get(url, { responseType: 'text' }).toPromise();
};
/**
* @param {?} countryDialCode
* @param {?} tel
* @param {?} password
* @return {?}
*/
AuthService.prototype.agreeToTerms = /**
* @param {?} countryDialCode
* @param {?} tel
* @param {?} password
* @return {?}
*/
function (countryDialCode, tel, password) {
var /** @type {?} */ url = this.serverHost + "/legal/agree_to_terms";
return this.http
.post(url, {
countryDialCode: countryDialCode,
tel: tel,
password: password
})
.toPromise();
};
AuthService.localStorageIdTokenKey = 'sbe-auth.idToken';
AuthService.decorators = [
{ type: core.Injectable },
];
/** @nocollapse */
AuthService.ctorParameters = function () {
return [
{ type: http.HttpClient, },
{ type: storage.StorageService, },
{ type: undefined, decorators: [{ type: core.Inject, args: [tokens.REST_SERVER_HOST,] },] },
];
};
return AuthService;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var AuthServiceModule = (function () {
function AuthServiceModule() {
}
/**
* @return {?}
*/
AuthServiceModule.forRoot = /**
* @return {?}
*/
function () {
return {
ngModule: AuthServiceModule,
providers: [AuthService]
};
};
AuthServiceModule.decorators = [
{ type: core.NgModule, args: [{
imports: [http.HttpClientModule, storage.StorageServiceModule]
},] },
];
return AuthServiceModule;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
exports.AuthService = AuthService;
exports.AuthServiceModule = AuthServiceModule;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nob29sYmVsbGUtY29tbW9uLXNlcnZpY2VzLWF1dGgudW1kLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9Ac2Nob29sYmVsbGUvY29tbW9uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlLnRzIiwibmc6Ly9Ac2Nob29sYmVsbGUvY29tbW9uL3NlcnZpY2VzL2F1dGgvYXV0aC1zZXJ2aWNlLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJFU1RfU0VSVkVSX0hPU1QgfSBmcm9tICdAc2Nob29sYmVsbGUvY29tbW9uL3Rva2Vucyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAc2Nob29sYmVsbGUvY29tbW9uL3NlcnZpY2VzL3N0b3JhZ2UnO1xuaW1wb3J0ICdyeGpzL2FkZC9vcGVyYXRvci90b1Byb21pc2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xuICBzdGF0aWMgbG9jYWxTdG9yYWdlSWRUb2tlbktleSA9ICdzYmUtYXV0aC5pZFRva2VuJztcblxuICBwcml2YXRlIF90eXBlOiAncmVnaXN0ZXInIHwgJ2ZpbmRwYXNzd29yZCcgfCAndG1wJztcbiAgcHJpdmF0ZSBfaW50bHRlbDtcbiAgcHJpdmF0ZSBfdmVyaWZpY2F0aW9uQ29kZTtcbiAgZ2V0IHR5cGUoKTogJ3JlZ2lzdGVyJyB8ICdmaW5kcGFzc3dvcmQnIHwgJ3RtcCcge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG4gIHNldCB0eXBlKHY6ICdyZWdpc3RlcicgfCAnZmluZHBhc3N3b3JkJyB8ICd0bXAnKSB7XG4gICAgdGhpcy5fdHlwZSA9IHY7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KCdzYmUtYXV0aC5zZXNzaW9uLnR5cGUnLCB2LCAnc2Vzc2lvbicpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZSgnc2JlLWF1dGguc2Vzc2lvbi50eXBlJywgJ3Nlc3Npb24nKTtcbiAgICB9XG4gIH1cbiAgZ2V0IGludGx0ZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ludGx0ZWw7XG4gIH1cbiAgc2V0IGludGx0ZWwodikge1xuICAgIHRoaXMuX2ludGx0ZWwgPSB2O1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldCgnc2JlLWF1dGguc2Vzc2lvbi5pbnRsdGVsJywgdiwgJ3Nlc3Npb24nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmUoJ3NiZS1hdXRoLnNlc3Npb24uaW50bHRlbCcsICdzZXNzaW9uJyk7XG4gICAgfVxuICB9XG4gIGdldCB2ZXJpZmljYXRpb25Db2RlKCkge1xuICAgIHJldHVybiB0aGlzLl92ZXJpZmljYXRpb25Db2RlO1xuICB9XG4gIHNldCB2ZXJpZmljYXRpb25Db2RlKHYpIHtcbiAgICB0aGlzLl92ZXJpZmljYXRpb25Db2RlID0gdjtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoXG4gICAgICAgICdzYmUtYXV0aC5zZXNzaW9uLnZlcmlmaWNhdGlvbkNvZGUnLFxuICAgICAgICB2LFxuICAgICAgICAnc2Vzc2lvbidcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlKFxuICAgICAgICAnc2JlLWF1dGguc2Vzc2lvbi52ZXJpZmljYXRpb25Db2RlJyxcbiAgICAgICAgJ3Nlc3Npb24nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMudHlwZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmludGx0ZWwgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy52ZXJpZmljYXRpb25Db2RlID0gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHB1YmxpYyBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgQEluamVjdChSRVNUX1NFUlZFUl9IT1NUKSBwcml2YXRlIHNlcnZlckhvc3Q6IHN0cmluZ1xuICApIHtcbiAgICBsZXQgdHlwZSA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCdzYmUtYXV0aC5zZXNzaW9uLnR5cGUnLCAnc2Vzc2lvbicpIGFzXG4gICAgICB8ICdyZWdpc3RlcidcbiAgICAgIHwgJ2ZpbmRwYXNzd29yZCdcbiAgICAgIHwgJ3RtcCc7XG4gICAgbGV0IGludGx0ZWwgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldChcbiAgICAgICdzYmUtYXV0aC5zZXNzaW9uLmludGx0ZWwnLFxuICAgICAgJ3Nlc3Npb24nXG4gICAgKTtcbiAgICBsZXQgdmVyaWZpY2F0aW9uQ29kZSA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KFxuICAgICAgJ3NiZS1hdXRoLnNlc3Npb24udmVyaWZpY2F0aW9uQ29kZScsXG4gICAgICAnc2Vzc2lvbidcbiAgICApO1xuICAgIGlmICh0eXBlKSB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIGlmIChpbnRsdGVsKSB0aGlzLmludGx0ZWwgPSBpbnRsdGVsO1xuICAgIGlmICh2ZXJpZmljYXRpb25Db2RlKSB0aGlzLnZlcmlmaWNhdGlvbkNvZGUgPSB2ZXJpZmljYXRpb25Db2RlO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZlVG9rZW4oaWR0b2tlbikge1xuICAgIGlmIChpZHRva2VuKSB7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldChcbiAgICAgICAgQXV0aFNlcnZpY2UubG9jYWxTdG9yYWdlSWRUb2tlbktleSxcbiAgICAgICAgaWR0b2tlbixcbiAgICAgICAgJ2xvY2FsJ1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmUoQXV0aFNlcnZpY2UubG9jYWxTdG9yYWdlSWRUb2tlbktleSwgJ2xvY2FsJyk7XG4gICAgfVxuICB9XG4gIHJlcXVlc3RDb2RlKFxuICAgIHR5cGU6ICdyZWdpc3RlcicgfCAnZmluZHBhc3N3b3JkJyB8ICd0bXAnID0gJ3JlZ2lzdGVyJyxcbiAgICBjb3VudHJ5RGlhbENvZGUsXG4gICAgdGVsOiBzdHJpbmdcbiAgKSB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2ZXJIb3N0fS92ZXJpZmljYXRpb24vcmVxdWVzdF9jb2RlYDtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChcbiAgICAgICAgdXJsLFxuICAgICAgICB7IHR5cGU6IHR5cGUsIGNvdW50cnlEaWFsQ29kZTogY291bnRyeURpYWxDb2RlLCB0ZWw6IHRlbCB9LFxuICAgICAgICB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH1cbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuICB2ZXJpZnlDb2RlKFxuICAgIHR5cGU6ICdyZWdpc3RlcicgfCAnZmluZHBhc3N3b3JkJyB8ICd0bXAnID0gJ3JlZ2lzdGVyJyxcbiAgICBjb3VudHJ5RGlhbENvZGUsXG4gICAgdGVsOiBzdHJpbmcsXG4gICAgdmVyaWZpY2F0aW9uQ29kZTogc3RyaW5nLFxuICAgIGNhbGxiYWNrX3VybDogc3RyaW5nID0gdW5kZWZpbmVkXG4gICkge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmVySG9zdH0vdmVyaWZpY2F0aW9uL3ZlcmlmeV9jb2RlYDtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChcbiAgICAgICAgdXJsLFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICBjb3VudHJ5RGlhbENvZGU6IGNvdW50cnlEaWFsQ29kZSxcbiAgICAgICAgICB0ZWw6IHRlbCxcbiAgICAgICAgICBjb2RlOiB2ZXJpZmljYXRpb25Db2RlLFxuICAgICAgICAgIGNhbGxiYWNrX3VybDogY2FsbGJhY2tfdXJsXG4gICAgICAgIH0sXG4gICAgICAgIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAudGhlbih0b2tlbiA9PiB7XG4gICAgICAgIGlmICh0eXBlID09PSAndG1wJyAmJiB0b2tlbikge1xuICAgICAgICAgIHRoaXMuc2F2ZVRva2VuKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICB9KTtcbiAgfVxuICBsb2dpbihcbiAgICBjb3VudHJ5RGlhbENvZGUsXG4gICAgdGVsLFxuICAgIHBhc3N3b3JkLFxuICAgIGNhbGxiYWNrX3VybDogc3RyaW5nID0gdW5kZWZpbmVkXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2ZXJIb3N0fS9sb2dpbmA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QoXG4gICAgICAgIHVybCxcbiAgICAgICAge1xuICAgICAgICAgIGNvdW50cnlEaWFsQ29kZTogY291bnRyeURpYWxDb2RlLFxuICAgICAgICAgIHRlbDogdGVsLFxuICAgICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcbiAgICAgICAgICBjYWxsYmFja191cmw6IGNhbGxiYWNrX3VybFxuICAgICAgICB9LFxuICAgICAgICB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH1cbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKVxuICAgICAgLnRoZW4odG9rZW4gPT4ge1xuICAgICAgICB0aGlzLnNhdmVUb2tlbih0b2tlbik7XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgIH0pO1xuICB9XG4gIHJlZ2lzdGVyKFxuICAgIGNvdW50cnlEaWFsQ29kZSxcbiAgICB0ZWwsXG4gICAgdmVyaWZpY2F0aW9uQ29kZSxcbiAgICBuYW1lLFxuICAgIHBhc3N3b3JkLFxuICAgIGNhbGxiYWNrX3VybDogc3RyaW5nID0gdW5kZWZpbmVkXG4gICkge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmVySG9zdH0vcmVnaXN0ZXJgO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KHVybCwge1xuICAgICAgICBjb3VudHJ5RGlhbENvZGU6IGNvdW50cnlEaWFsQ29kZSxcbiAgICAgICAgdGVsOiB0ZWwsXG4gICAgICAgIGNvZGU6IHZlcmlmaWNhdGlvbkNvZGUsXG4gICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZFxuICAgICAgfSlcbiAgICAgIC50b1Byb21pc2UoKVxuICAgICAgLnRoZW4oKCkgPT4gdGhpcy5sb2dpbihjb3VudHJ5RGlhbENvZGUsIHRlbCwgcGFzc3dvcmQsIGNhbGxiYWNrX3VybCkpO1xuICB9XG5cbiAgZ2V0VGVybXNPZlVzZSgpIHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZlckhvc3R9L2xlZ2FsL3VzZXJfYWdyZWVtZW50YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSkudG9Qcm9taXNlKCk7XG4gIH1cbiAgZ2V0UHJpdmFjeVBvbGljeSgpIHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZlckhvc3R9L2xlZ2FsL3ByaXZhY3lfcG9saWN5YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSkudG9Qcm9taXNlKCk7XG4gIH1cbiAgYWdyZWVUb1Rlcm1zKGNvdW50cnlEaWFsQ29kZSwgdGVsLCBwYXNzd29yZCkge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmVySG9zdH0vbGVnYWwvYWdyZWVfdG9fdGVybXNgO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KHVybCwge1xuICAgICAgICBjb3VudHJ5RGlhbENvZGU6IGNvdW50cnlEaWFsQ29kZSxcbiAgICAgICAgdGVsOiB0ZWwsXG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZFxuICAgICAgfSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlTW9kdWxlIH0gZnJvbSAnQHNjaG9vbGJlbGxlL2NvbW1vbi9zZXJ2aWNlcy9zdG9yYWdlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0h0dHBDbGllbnRNb2R1bGUsIFN0b3JhZ2VTZXJ2aWNlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCkge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQXV0aFNlcnZpY2VNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtBdXRoU2VydmljZV1cbiAgICB9O1xuICB9XG59XG4iXSwibmFtZXMiOlsiaHR0cCIsIkluamVjdGFibGUiLCJIdHRwQ2xpZW50IiwiU3RvcmFnZVNlcnZpY2UiLCJJbmplY3QiLCJSRVNUX1NFUlZFUl9IT1NUIiwiTmdNb2R1bGUiLCJIdHRwQ2xpZW50TW9kdWxlIiwiU3RvcmFnZVNlcnZpY2VNb2R1bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtRQTJERSxxQkFDU0EsU0FDQSxnQkFDMkI7WUFGM0IsU0FBSSxHQUFKQSxPQUFJO1lBQ0osbUJBQWMsR0FBZCxjQUFjO1lBQ2EsZUFBVSxHQUFWLFVBQVU7WUFFNUMscUJBQUksSUFBSSxJQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLFNBQVMsQ0FHNUQsQ0FBQSxDQUFDO1lBQ1YscUJBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNuQywwQkFBMEIsRUFDMUIsU0FBUyxDQUNWLENBQUM7WUFDRixxQkFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDNUMsbUNBQW1DLEVBQ25DLFNBQVMsQ0FDVixDQUFDO1lBQ0YsSUFBSSxJQUFJO2dCQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQzNCLElBQUksT0FBTztnQkFBRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUNwQyxJQUFJLGdCQUFnQjtnQkFBRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7U0FDaEU7UUFsRUQsc0JBQUksNkJBQUk7OztnQkFBUjtnQkFDRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDbkI7Ozs7Z0JBQ0QsVUFBUyxDQUFzQztnQkFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLEVBQUU7b0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2lCQUNoRTtxQkFBTTtvQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxTQUFTLENBQUMsQ0FBQztpQkFDaEU7YUFDRjs7O1dBUkE7UUFTRCxzQkFBSSxnQ0FBTzs7O2dCQUFYO2dCQUNFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUN0Qjs7OztnQkFDRCxVQUFZLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxFQUFFO29CQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLDBCQUEwQixFQUFFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztpQkFDbkU7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsMEJBQTBCLEVBQUUsU0FBUyxDQUFDLENBQUM7aUJBQ25FO2FBQ0Y7OztXQVJBO1FBU0Qsc0JBQUkseUNBQWdCOzs7Z0JBQXBCO2dCQUNFLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQy9COzs7O2dCQUNELFVBQXFCLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxFQUFFO29CQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNyQixtQ0FBbUMsRUFDbkMsQ0FBQyxFQUNELFNBQVMsQ0FDVixDQUFDO2lCQUNIO3FCQUFNO29CQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUN4QixtQ0FBbUMsRUFDbkMsU0FBUyxDQUNWLENBQUM7aUJBQ0g7YUFDRjs7O1dBZkE7Ozs7UUFpQkQsMkJBQUs7OztZQUFMO2dCQUNFLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO2dCQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQzthQUNuQzs7Ozs7UUF1Qk8sK0JBQVM7Ozs7c0JBQUMsT0FBTztnQkFDdkIsSUFBSSxPQUFPLEVBQUU7b0JBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ3JCLFdBQVcsQ0FBQyxzQkFBc0IsRUFDbEMsT0FBTyxFQUNQLE9BQU8sQ0FDUixDQUFDO2lCQUNIO3FCQUFNO29CQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDekU7Ozs7Ozs7O1FBRUgsaUNBQVc7Ozs7OztZQUFYLFVBQ0UsSUFBc0QsRUFDdEQsZUFBZSxFQUNmLEdBQVc7Z0JBRlgscUJBQUE7b0JBQUEsaUJBQXNEOztnQkFJdEQscUJBQU0sR0FBRyxHQUFNLElBQUksQ0FBQyxVQUFVLCtCQUE0QixDQUFDO2dCQUMzRCxPQUFPLElBQUksQ0FBQyxJQUFJO3FCQUNiLElBQUksQ0FDSCxHQUFHLEVBQ0gsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUMxRCxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FDekI7cUJBQ0EsU0FBUyxFQUFFLENBQUM7YUFDaEI7Ozs7Ozs7OztRQUNELGdDQUFVOzs7Ozs7OztZQUFWLFVBQ0UsSUFBc0QsRUFDdEQsZUFBZSxFQUNmLEdBQVcsRUFDWCxnQkFBd0IsRUFDeEIsWUFBZ0M7Z0JBTGxDLGlCQTJCQztnQkExQkMscUJBQUE7b0JBQUEsaUJBQXNEOztnQkFJdEQsNkJBQUE7b0JBQUEsd0JBQWdDOztnQkFFaEMscUJBQU0sR0FBRyxHQUFNLElBQUksQ0FBQyxVQUFVLDhCQUEyQixDQUFDO2dCQUMxRCxPQUFPLElBQUksQ0FBQyxJQUFJO3FCQUNiLElBQUksQ0FDSCxHQUFHLEVBQ0g7b0JBQ0UsSUFBSSxFQUFFLElBQUk7b0JBQ1YsZUFBZSxFQUFFLGVBQWU7b0JBQ2hDLEdBQUcsRUFBRSxHQUFHO29CQUNSLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLFlBQVksRUFBRSxZQUFZO2lCQUMzQixFQUNELEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUN6QjtxQkFDQSxTQUFTLEVBQUU7cUJBQ1gsSUFBSSxDQUFDLFVBQUEsS0FBSztvQkFDVCxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksS0FBSyxFQUFFO3dCQUMzQixLQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUN2QjtvQkFDRCxPQUFPLEtBQUssQ0FBQztpQkFDZCxDQUFDLENBQUM7YUFDTjs7Ozs7Ozs7UUFDRCwyQkFBSzs7Ozs7OztZQUFMLFVBQ0UsZUFBZSxFQUNmLEdBQUcsRUFDSCxRQUFRLEVBQ1IsWUFBZ0M7Z0JBSmxDLGlCQXVCQztnQkFuQkMsNkJBQUE7b0JBQUEsd0JBQWdDOztnQkFFaEMscUJBQU0sR0FBRyxHQUFNLElBQUksQ0FBQyxVQUFVLFdBQVEsQ0FBQztnQkFDdkMsT0FBTyxJQUFJLENBQUMsSUFBSTtxQkFDYixJQUFJLENBQ0gsR0FBRyxFQUNIO29CQUNFLGVBQWUsRUFBRSxlQUFlO29CQUNoQyxHQUFHLEVBQUUsR0FBRztvQkFDUixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsWUFBWSxFQUFFLFlBQVk7aUJBQzNCLEVBQ0QsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQ3pCO3FCQUNBLFNBQVMsRUFBRTtxQkFDWCxJQUFJLENBQUMsVUFBQSxLQUFLO29CQUNULEtBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3RCLE9BQU8sS0FBSyxDQUFDO2lCQUNkLENBQUMsQ0FBQzthQUNOOzs7Ozs7Ozs7O1FBQ0QsOEJBQVE7Ozs7Ozs7OztZQUFSLFVBQ0UsZUFBZSxFQUNmLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsSUFBSSxFQUNKLFFBQVEsRUFDUixZQUFnQztnQkFObEMsaUJBbUJDO2dCQWJDLDZCQUFBO29CQUFBLHdCQUFnQzs7Z0JBRWhDLHFCQUFNLEdBQUcsR0FBTSxJQUFJLENBQUMsVUFBVSxjQUFXLENBQUM7Z0JBQzFDLE9BQU8sSUFBSSxDQUFDLElBQUk7cUJBQ2IsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDVCxlQUFlLEVBQUUsZUFBZTtvQkFDaEMsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsSUFBSSxFQUFFLElBQUk7b0JBQ1YsUUFBUSxFQUFFLFFBQVE7aUJBQ25CLENBQUM7cUJBQ0QsU0FBUyxFQUFFO3FCQUNYLElBQUksQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsR0FBQSxDQUFDLENBQUM7YUFDekU7Ozs7UUFFRCxtQ0FBYTs7O1lBQWI7Z0JBQ0UscUJBQU0sR0FBRyxHQUFNLElBQUksQ0FBQyxVQUFVLDBCQUF1QixDQUFDO2dCQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ2pFOzs7O1FBQ0Qsc0NBQWdCOzs7WUFBaEI7Z0JBQ0UscUJBQU0sR0FBRyxHQUFNLElBQUksQ0FBQyxVQUFVLDBCQUF1QixDQUFDO2dCQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ2pFOzs7Ozs7O1FBQ0Qsa0NBQVk7Ozs7OztZQUFaLFVBQWEsZUFBZSxFQUFFLEdBQUcsRUFBRSxRQUFRO2dCQUN6QyxxQkFBTSxHQUFHLEdBQU0sSUFBSSxDQUFDLFVBQVUsMEJBQXVCLENBQUM7Z0JBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUk7cUJBQ2IsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDVCxlQUFlLEVBQUUsZUFBZTtvQkFDaEMsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsUUFBUSxFQUFFLFFBQVE7aUJBQ25CLENBQUM7cUJBQ0QsU0FBUyxFQUFFLENBQUM7YUFDaEI7NkNBNUwrQixrQkFBa0I7O29CQUZuREMsZUFBVTs7Ozs7d0JBSkZDLGVBQVU7d0JBQ1ZDLHNCQUFjO3dEQTJEbEJDLFdBQU0sU0FBQ0MsdUJBQWdCOzs7MEJBOUQ1Qjs7Ozs7OztBQ0FBOzs7Ozs7UUFTUyx5QkFBTzs7O1lBQWQ7Z0JBQ0UsT0FBTztvQkFDTCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUM7aUJBQ3pCLENBQUM7YUFDSDs7b0JBVEZDLGFBQVEsU0FBQzt3QkFDUixPQUFPLEVBQUUsQ0FBQ0MscUJBQWdCLEVBQUVDLDRCQUFvQixDQUFDO3FCQUNsRDs7Z0NBUEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==