UNPKG

io.parrots

Version:

Parrots.io App

164 lines (163 loc) 18.5 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { RequestOptions } from '@angular/http'; import { AbstractServerResource } from 'com.phloxui'; export class MeResource extends AbstractServerResource { /** * @param {?} connectionMgr */ constructor(connectionMgr) { super(connectionMgr); this.basePath = './me'; } /** * @return {?} */ getAccountInfo() { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); let /** @type {?} */ responseProm = this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs); if (responseProm != null && typeof responseProm !== 'undefined') { return new Promise((resolve, reject) => { responseProm.then((response) => { resolve(response); }, (error) => { reject(error); }); }); } } return new Promise((resolve, reject) => { resolve(null); }); } /** * @return {?} */ getAccountAuthenticationid() { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "?fetchAuthenIds=true&fetchFields=address.*,address.addressFormat.*,address.fieldValue.countrySubdivision.*,address.addressFormat.field.countrySubdivisionType.*"; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @param {?} body * @return {?} */ addAccountAuthenticationid(body) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/account/authenid/oauth"; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.postWithHttpInfo(url, body, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @param {?} accountUUID * @param {?} authenProvider * @param {?} authenProviderUserId * @return {?} */ removeAccountAuthenticationid(accountUUID, authenProvider, authenProviderUserId) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/account/authenid/oauth"; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); requestOptionsArgs.body = { userId: authenProviderUserId, authenProvider: authenProvider }; return this.connectionMgr.deleteWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @param {?} body * @return {?} */ accountChangePassword(body) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/account/changepassword"; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.postWithHttpInfo(url, body, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @param {?} sessionId * @return {?} */ logoutWithHttpInfo(sessionId) { if (sessionId === null || sessionId === undefined) { return Promise.reject(null); } if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/session/" + sessionId; //! for testing let /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.deleteWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @return {?} */ checkTimeout() { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath; //! for testing let /** @type {?} */ requestOptionsArgs = new RequestOptions(); let /** @type {?} */ responseProm = this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs); if (responseProm != null && typeof responseProm !== 'undefined') { return new Promise((resolve, reject) => { responseProm.then((response) => { resolve(true); }, (error) => { if (error.status === 401 || error.status === 500) { resolve(false); } else { reject(error); } }); }); } } return new Promise((resolve, reject) => { resolve(null); }); } /** * @return {?} */ getAddress() { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/account/address"; //! for testing let /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } } } function MeResource_tsickle_Closure_declarations() { /** @type {?} */ MeResource.prototype.basePath; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVSZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2lvLnBhcnJvdHMvIiwic291cmNlcyI6WyJsaWIvc2hhcmUvcmVzb3VyY2UvTWVSZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUEyQixjQUFjLEVBQTJFLE1BQU0sZUFBZSxDQUFDO0FBRWpKLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRCxNQUFNLGlCQUFrQixTQUFRLHNCQUFzQjs7OztJQUlwRCxZQUFZLGFBQWlDO1FBQzNDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQzt3QkFISixNQUFNO0tBSXhCOzs7O0lBRU0sY0FBYztRQUNuQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUM3RSxxQkFBSSxHQUFHLEdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUVoQyxxQkFBSSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQzlDLHFCQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUUvRSxFQUFFLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxJQUFJLE9BQU8sWUFBWSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hFLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtvQkFDckMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO3dCQUNsQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7cUJBQ25CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDWCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ2YsQ0FBQyxDQUFDO2lCQUNK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QyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTt3QkFDN0IsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNmLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDWCxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7NEJBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzt5QkFDaEI7d0JBQUMsSUFBSSxDQUFDLENBQUM7NEJBQ04sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3lCQUNmO3FCQUNGLENBQUMsQ0FBQztpQkFDSixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNmLENBQUMsQ0FBQzs7Ozs7SUFJRSxVQUFVO1FBQ2YsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0UscUJBQUksR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUM7O1lBR3JELHFCQUFJLGtCQUFrQixHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7WUFFOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3BFO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3Qjs7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHAsIFJlc3BvbnNlLCBIZWFkZXJzLCBSZXF1ZXN0T3B0aW9ucywgUmVxdWVzdE9wdGlvbnNBcmdzLCBVUkxTZWFyY2hQYXJhbXMsIFJlc3BvbnNlQ29udGVudFR5cGUsIFJlcXVlc3RNZXRob2QgfSBmcm9tICdAYW5ndWxhci9odHRwJztcbmltcG9ydCB7IElDb25uZWN0aW9uTWFuYWdlciB9IGZyb20gJ2NvbS5waGxveHVpJztcbmltcG9ydCB7IEFic3RyYWN0U2VydmVyUmVzb3VyY2UgfSBmcm9tICdjb20ucGhsb3h1aSc7XG5cbmV4cG9ydCBjbGFzcyBNZVJlc291cmNlIGV4dGVuZHMgQWJzdHJhY3RTZXJ2ZXJSZXNvdXJjZSB7XG5cbiAgcHJpdmF0ZSBiYXNlUGF0aCA9ICcuL21lJztcblxuICBjb25zdHJ1Y3Rvcihjb25uZWN0aW9uTWdyOiBJQ29ubmVjdGlvbk1hbmFnZXIpIHtcbiAgICBzdXBlcihjb25uZWN0aW9uTWdyKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBY2NvdW50SW5mbygpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0aGlzLmNvbm5lY3Rpb25NZ3IgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuY29ubmVjdGlvbk1nciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCB1cmw6IHN0cmluZyA9IHRoaXMuYmFzZVBhdGg7XG5cbiAgICAgIGxldCByZXF1ZXN0T3B0aW9uc0FyZ3MgPSBuZXcgUmVxdWVzdE9wdGlvbnMoKTtcbiAgICAgIGxldCByZXNwb25zZVByb20gPSB0aGlzLmNvbm5lY3Rpb25NZ3IuZ2V0V2l0aEh0dHBJbmZvKHVybCwgcmVxdWVzdE9wdGlvbnNBcmdzKTtcblxuICAgICAgaWYgKHJlc3BvbnNlUHJvbSAhPSBudWxsICYmIHR5cGVvZiByZXNwb25zZVByb20gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgcmVzcG9uc2VQcm9tLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWNjb3VudEF1dGhlbnRpY2F0aW9uaWQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VQYXRoICsgXCI/ZmV0Y2hBdXRoZW5JZHM9dHJ1ZSZmZXRjaEZpZWxkcz1hZGRyZXNzLiosYWRkcmVzcy5hZGRyZXNzRm9ybWF0LiosYWRkcmVzcy5maWVsZFZhbHVlLmNvdW50cnlTdWJkaXZpc2lvbi4qLGFkZHJlc3MuYWRkcmVzc0Zvcm1hdC5maWVsZC5jb3VudHJ5U3ViZGl2aXNpb25UeXBlLipcIjtcblxuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zQXJncyA9IG5ldyBSZXF1ZXN0T3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uTWdyLmdldFdpdGhIdHRwSW5mbyh1cmwsIHJlcXVlc3RPcHRpb25zQXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkQWNjb3VudEF1dGhlbnRpY2F0aW9uaWQoYm9keTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VQYXRoICsgXCIvYWNjb3VudC9hdXRoZW5pZC9vYXV0aFwiO1xuXG4gICAgICBsZXQgcmVxdWVzdE9wdGlvbnNBcmdzID0gbmV3IFJlcXVlc3RPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25NZ3IucG9zdFdpdGhIdHRwSW5mbyh1cmwsIGJvZHksIHJlcXVlc3RPcHRpb25zQXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQWNjb3VudEF1dGhlbnRpY2F0aW9uaWQoYWNjb3VudFVVSUQ6IHN0cmluZywgYXV0aGVuUHJvdmlkZXI6IHN0cmluZywgYXV0aGVuUHJvdmlkZXJVc2VySWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbk1nciAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5jb25uZWN0aW9uTWdyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IHVybDogc3RyaW5nID0gdGhpcy5iYXNlUGF0aCArIFwiL2FjY291bnQvYXV0aGVuaWQvb2F1dGhcIjtcblxuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zQXJncyA9IG5ldyBSZXF1ZXN0T3B0aW9ucygpO1xuXG4gICAgICByZXF1ZXN0T3B0aW9uc0FyZ3MuYm9keSA9IHtcbiAgICAgICAgdXNlcklkOiBhdXRoZW5Qcm92aWRlclVzZXJJZCxcbiAgICAgICAgYXV0aGVuUHJvdmlkZXI6IGF1dGhlblByb3ZpZGVyXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uTWdyLmRlbGV0ZVdpdGhIdHRwSW5mbyh1cmwsIHJlcXVlc3RPcHRpb25zQXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWNjb3VudENoYW5nZVBhc3N3b3JkKGJvZHk6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbk1nciAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5jb25uZWN0aW9uTWdyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IHVybDogc3RyaW5nID0gdGhpcy5iYXNlUGF0aCArIFwiL2FjY291bnQvY2hhbmdlcGFzc3dvcmRcIjtcblxuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zQXJncyA9IG5ldyBSZXF1ZXN0T3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uTWdyLnBvc3RXaXRoSHR0cEluZm8odXJsLCBib2R5LCByZXF1ZXN0T3B0aW9uc0FyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobnVsbCk7XG4gICAgfVxuICB9XG5cblxuICBwdWJsaWMgbG9nb3V0V2l0aEh0dHBJbmZvKHNlc3Npb25JZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcblxuICAgIGlmIChzZXNzaW9uSWQgPT09IG51bGwgfHwgc2Vzc2lvbklkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChudWxsKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VQYXRoICsgXCIvc2Vzc2lvbi9cIiArIHNlc3Npb25JZDtcblxuICAgICAgLy8hIGZvciB0ZXN0aW5nXG4gICAgICBsZXQgcmVxdWVzdE9wdGlvbnNBcmdzID0gbmV3IFJlcXVlc3RPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25NZ3IuZGVsZXRlV2l0aEh0dHBJbmZvKHVybCwgcmVxdWVzdE9wdGlvbnNBcmdzKTtcblxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNoZWNrVGltZW91dCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcblxuICAgIGlmICh0aGlzLmNvbm5lY3Rpb25NZ3IgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuY29ubmVjdGlvbk1nciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCB1cmw6IHN0cmluZyA9IHRoaXMuYmFzZVBhdGg7XG5cbiAgICAgIC8vISBmb3IgdGVzdGluZ1xuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zQXJncyA9IG5ldyBSZXF1ZXN0T3B0aW9ucygpO1xuXG4gICAgICBsZXQgcmVzcG9uc2VQcm9tID0gdGhpcy5jb25uZWN0aW9uTWdyLmdldFdpdGhIdHRwSW5mbyh1cmwsIHJlcXVlc3RPcHRpb25zQXJncyk7XG5cbiAgICAgIGlmIChyZXNwb25zZVByb20gIT0gbnVsbCAmJiB0eXBlb2YgcmVzcG9uc2VQcm9tICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgIHJlc3BvbnNlUHJvbS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMSB8fCBlcnJvci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICByZXNvbHZlKG51bGwpO1xuICAgIH0pO1xuXG4gIH1cblxuICBwdWJsaWMgZ2V0QWRkcmVzcygpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0aGlzLmNvbm5lY3Rpb25NZ3IgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuY29ubmVjdGlvbk1nciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCB1cmw6IHN0cmluZyA9IHRoaXMuYmFzZVBhdGggKyBcIi9hY2NvdW50L2FkZHJlc3NcIjtcblxuICAgICAgLy8hIGZvciB0ZXN0aW5nXG4gICAgICBsZXQgcmVxdWVzdE9wdGlvbnNBcmdzID0gbmV3IFJlcXVlc3RPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25NZ3IuZ2V0V2l0aEh0dHBJbmZvKHVybCwgcmVxdWVzdE9wdGlvbnNBcmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG51bGwpO1xuICAgIH1cbiAgfVxufVxuIl19