UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

347 lines (346 loc) 33.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Injectable } from '@angular/core'; export class MIMETypeService { constructor() { this.MIMETypeModel = [ { "name": 'text/plain', "displayName": 'plain' }, { "name": 'text/html', "displayName": 'html' }, { "name": 'text/css', "displayName": 'css' }, { "name": 'text/javascript', "displayName": 'javascript' }, { "name": 'image/gif', "displayName": 'gif' }, { "name": 'image/png', "displayName": 'png' }, { "name": 'image/jpeg', "displayName": 'jpeg' }, { "name": 'image/bmp', "displayName": 'bmp' }, { "name": 'image/webp', "displayName": 'webp' }, { "name": 'x-image/icon', "displayName": 'icon' }, { "name": 'image/vnd.microsoft.icon', "displayName": 'vnd.microsoft.icon' }, { "name": 'audio/midi', "displayName": 'midi' }, { "name": 'audio/mpeg', "displayName": 'mpeg' }, { "name": 'audio/webm', "displayName": 'webm' }, { "name": 'audio/ogg', "displayName": 'ogg' }, { "name": 'audio/wav', "displayName": 'wav' }, { "name": 'video/webm', "displayName": 'webm' }, { "name": 'video/ogg', "displayName": 'ogg' }, { "name": 'application/javascript', "displayName": 'javascript' }, { "name": 'application/octet-stream', "displayName": 'octet-stream' }, { "name": 'application/pkcs12', "displayName": 'pkcs12' }, { "name": 'application/vnd.mspowerpoint', "displayName": 'vnd.mspowerpoint' }, { "name": 'application/xhtml+xml', "displayName": 'xhtml+xml' }, { "name": 'application/xml', "displayName": 'xml' }, { "name": 'application/pdf ', "displayName": 'PDF ' }, { "name": 'application/msword', "displayName": 'doc' }, { "name": 'application/msword', "displayName": 'dot' }, { "name": 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', "displayName": 'docx' }, { "name": 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', "displayName": 'dotx' }, { "name": 'application/vnd.ms-word.document.macroEnabled.12', "displayName": 'docm' }, { "name": 'application/vnd.ms-word.template.macroEnabled.12', "displayName": 'dotm' }, { "name": 'application/vnd.ms-excel', "displayName": 'xls' }, { "name": 'application/vnd.ms-excel', "displayName": 'xlt' }, { "name": 'application/vnd.ms-excel', "displayName": 'xla' }, { "name": 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', "displayName": 'xlsx' }, { "name": 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', "displayName": 'xltx' }, { "name": 'application/vnd.ms-excel.sheet.macroEnabled.12', "displayName": 'xlsm' }, { "name": 'application/vnd.ms-excel.template.macroEnabled.12', "displayName": 'xltm' }, { "name": 'application/vnd.ms-excel.addin.macroEnabled.12', "displayName": 'xlam' }, { "name": 'application/vnd.ms-excel.sheet.binary.macroEnabled.12.xlsb; Dhivehi;', "displayName": 'xlsb' }, { "name": 'application/Dutch; vnd.ms-powerpoint', "displayName": 'ppt' }, { "name": 'application/vnd.ms-powerpoint', "displayName": 'pot' }, { "name": 'application/Modern vnd.ms-powerpoint', "displayName": 'pps' }, { "name": 'application/vnd.ms-powerpoint', "displayName": 'ppa' }, { "name": 'application/vnd.openxmlformats-officedocument.presentationml.presentation', "displayName": 'pptx' }, { "name": 'application/vnd.openxmlformats-officedocument.presentationml.template', "displayName": 'potx' }, { "name": 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', "displayName": 'ppsx' }, { "name": 'application/vnd.ms-powerpoint.addin.macroEnabled.12', "displayName": 'ppam' }, { "name": 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', "displayName": 'pptm' }, { "name": 'application/vnd.ms-powerpoint.template.macroEnabled.12', "displayName": 'potm' }, { "name": 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12', "displayName": 'ppsm' } ]; } /** * @return {?} */ loadNameMIMEType() { // ! TODO: Edit this on PRODUCTION return null; } /** * @return {?} */ reloadNameMIMEType() { this.MIMETypeModel = null; return this.getNameMIMEType(); } /** * @return {?} */ loadDisplayNameMIMEType() { // ! TODO: Edit this on PRODUCTION return null; } /** * @return {?} */ reloadDisplayNameMIMEType() { this.MIMETypeModel = null; return this.getDisplayNameMIMEType(); } /** * @return {?} */ loadTypeMIMEType() { // ! TODO: Edit this on PRODUCTION return null; } /** * @return {?} */ reloadTypeMIMEType() { this.MIMETypeModel = null; return this.getTypeMIMEType(); } /** * @return {?} */ getNameMIMEType() { if (this.MIMETypeModel !== null && typeof this.MIMETypeModel !== 'undefined') { let /** @type {?} */ MIMETypes = JSON.parse(JSON.stringify(this.MIMETypeModel)); let /** @type {?} */ getName = []; for (let /** @type {?} */ MIMEType of MIMETypes) { getName.push(MIMEType.name); } return Promise.resolve(getName); } else { return this.loadNameMIMEType().then((result) => { this.MIMETypeModel = result; let /** @type {?} */ MIMETypes = JSON.parse(JSON.stringify(this.MIMETypeModel)); let /** @type {?} */ getName = []; for (let /** @type {?} */ MIMEType of MIMETypes) { getName.push(MIMEType.name); } return Promise.resolve(getName); }); } } /** * @return {?} */ getDisplayNameMIMEType() { if (this.MIMETypeModel !== null && typeof this.MIMETypeModel !== 'undefined') { let /** @type {?} */ MIMETypes = JSON.parse(JSON.stringify(this.MIMETypeModel)); let /** @type {?} */ getDisplayName = []; for (let /** @type {?} */ MIMEType of MIMETypes) { getDisplayName.push(MIMEType.displayName); } return Promise.resolve(getDisplayName); } else { return this.loadDisplayNameMIMEType().then((result) => { this.MIMETypeModel = result; let /** @type {?} */ MIMETypes = JSON.parse(JSON.stringify(this.MIMETypeModel)); let /** @type {?} */ getDisplayName = []; for (let /** @type {?} */ MIMEType of MIMETypes) { getDisplayName.push(MIMEType.displayName); } return Promise.resolve(getDisplayName); }); } } /** * @return {?} */ getTypeMIMEType() { if (this.MIMETypeModel !== null && typeof this.MIMETypeModel !== 'undefined') { let /** @type {?} */ MIMETypes = JSON.parse(JSON.stringify(this.MIMETypeModel)); let /** @type {?} */ getType = []; for (let /** @type {?} */ type of MIMETypes) { let /** @type {?} */ typeName = type.name.split("/"); getType.push(typeName[0]); } return Promise.resolve(getType); } else { return this.loadTypeMIMEType().then((result) => { this.MIMETypeModel = result; let /** @type {?} */ MIMETypes = JSON.parse(JSON.stringify(this.MIMETypeModel)); let /** @type {?} */ getType = []; for (let /** @type {?} */ type of MIMETypes) { let /** @type {?} */ typeName = type.name.split("/"); getType.push(typeName[0]); } return Promise.resolve(getType); }); } } } MIMETypeService.decorators = [ { type: Injectable }, ]; function MIMETypeService_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ MIMETypeService.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ MIMETypeService.ctorParameters; /** @type {?} */ MIMETypeService.prototype.MIMETypeModel; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUlNRVR5cGVTZXJ2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL01JTUVUeXBlU2VydmljZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE1BQU07OzZCQU0yQjtZQUN6QjtnQkFDSSxNQUFNLEVBQUUsWUFBWTtnQkFDcEIsYUFBYSxFQUFFLE9BQU87YUFDekI7WUFDRDtnQkFDSSxNQUFNLEVBQUUsV0FBVztnQkFDbkIsYUFBYSxFQUFFLE1BQU07YUFDeEI7WUFDRDtnQkFDSSxNQUFNLEVBQUUsVUFBVTtnQkFDbEIsYUFBYSxFQUFFLEtBQUs7YUFDdkI7WUFDRDtnQkFDSSxNQUFNLEVBQUUsaUJBQWlCO2dCQUN6QixhQUFhLEVBQUUsWUFBWTthQUM5QjtZQUNEO2dCQUNJLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixhQUFhLEVBQUUsS0FBSzthQUN2QjtZQUNEO2dCQUNJLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixhQUFhLEVBQUUsS0FBSzthQUN2QjtZQUNEO2dCQUNJLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixhQUFhLEVBQUUsTUFBTTthQUN4QjtZQUNEO2dCQUNJLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixhQUFhLEVBQUUsS0FBSzthQUN2QjtZQUNEO2dCQUNJLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixhQUFhLEVBQUUsTUFBTTthQUN4QjtZQUNEO2dCQUNJLE1BQU0sRUFBRSxjQUFjO2dCQUN0QixhQUFhLEVBQUUsTUFBTTthQUN4QjtZQUNEO2dCQUNJLE1BQU0sRUFBRSwwQkFBMEI7Z0JBQ2xDLGFBQWEsRUFBRSxvQkFBb0I7YUFDdEM7WUFDRDtnQkFDSSxNQUFNLEVBQUUsWUFBWTtnQkFDcEIsYUFBYSxFQUFFLE1BQU07YUFDeEI7WUFDRDtnQkFDSSxNQUFNLEVBQUUsWUFB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QUFDO1lBQ3hCLEdBQUcsQ0FBQSxDQUFDLHFCQUFJLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQSxDQUFDO2dCQUN2QixxQkFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3BDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDN0I7WUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNuQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQXVCLEVBQUUsRUFBRTtnQkFDNUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7Z0JBQzVCLHFCQUFJLFNBQVMsR0FBVSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RFLHFCQUFJLE9BQU8sR0FBVSxFQUFFLENBQUM7Z0JBQ3hCLEdBQUcsQ0FBQSxDQUFDLHFCQUFJLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQSxDQUFDO29CQUN2QixxQkFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3BDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzdCO2dCQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ25DLENBQUMsQ0FBQztTQUNOOzs7O1lBclRSLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNSU1FVHlwZU1vZGVsIH0gZnJvbSAnLi4vY29tcG9uZW50L21vZGVsL21vZGVscyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNSU1FVHlwZVNlcnZpY2Uge1xuXG4gICAgLy8gISBUT0RPOiBFZGl0IHRoaXMgb24gUFJPRFVDVElPTlxuICAgIC8vIHByaXZhdGUgTUlNRVR5cGVNb2RlbDogTUlNRVR5cGVNb2RlbFtdO1xuXG4gICAgLy8gISBUT0RPOiBGT1IgVEVTVFxuICAgIHByaXZhdGUgTUlNRVR5cGVNb2RlbDogYW55ID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ3RleHQvcGxhaW4nLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdwbGFpbidcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ3RleHQvaHRtbCcsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ2h0bWwnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICd0ZXh0L2NzcycsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ2NzcydcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ3RleHQvamF2YXNjcmlwdCcsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ2phdmFzY3JpcHQnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdpbWFnZS9naWYnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdnaWYnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdpbWFnZS9wbmcnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdwbmcnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdpbWFnZS9qcGVnJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnanBlZydcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2ltYWdlL2JtcCcsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ2JtcCdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2ltYWdlL3dlYnAnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICd3ZWJwJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAneC1pbWFnZS9pY29uJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnaWNvbidcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2ltYWdlL3ZuZC5taWNyb3NvZnQuaWNvbicsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3ZuZC5taWNyb3NvZnQuaWNvbidcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2F1ZGlvL21pZGknLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdtaWRpJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXVkaW8vbXBlZycsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ21wZWcnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhdWRpby93ZWJtJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnd2VibSdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2F1ZGlvL29nZycsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ29nZydcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2F1ZGlvL3dhdicsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3dhdidcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ3ZpZGVvL3dlYm0nLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICd3ZWJtJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAndmlkZW8vb2dnJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnb2dnJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ2phdmFzY3JpcHQnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdvY3RldC1zdHJlYW0nXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi9wa2NzMTInLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdwa2NzMTInXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQubXNwb3dlcnBvaW50JyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAndm5kLm1zcG93ZXJwb2ludCdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3hodG1sK3htbCdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3htbCcsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3htbCdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3BkZiAnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdQREYgJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vbXN3b3JkJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnZG9jJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL21zd29yZCcsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ2RvdCdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnZG9jeCdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnRlbXBsYXRlJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAnZG90eCdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5tcy13b3JkLmRvY3VtZW50Lm1hY3JvRW5hYmxlZC4xMicsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ2RvY20nXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQubXMtd29yZC50ZW1wbGF0ZS5tYWNyb0VuYWJsZWQuMTInLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdkb3RtJyBcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICd4bHMnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICd4bHQnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICd4bGEnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3hsc3gnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50ZW1wbGF0ZScsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3hsdHgnXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQubWFjcm9FbmFibGVkLjEyJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAneGxzbSdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50ZW1wbGF0ZS5tYWNyb0VuYWJsZWQuMTInLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICd4bHRtJ1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvRW5hYmxlZC4xMicsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3hsYW0nXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQuYmluYXJ5Lm1hY3JvRW5hYmxlZC4xMi54bHNiOyBEaGl2ZWhpOycsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3hsc2InXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vRHV0Y2g7IHZuZC5tcy1wb3dlcnBvaW50JyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAncHB0J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAncG90J1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vTW9kZXJuIHZuZC5tcy1wb3dlcnBvaW50JyxcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3BwcydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3BwYSdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdwcHR4J1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRlbXBsYXRlJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAncG90eCdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXNob3cnLFx0XG4gICAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6ICdwcHN4J1x0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibmFtZVwiOiAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuYWRkaW4ubWFjcm9FbmFibGVkLjEyJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAncHBhbSdcdCBcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5wcmVzZW50YXRpb24ubWFjcm9FbmFibGVkLjEyJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAncHB0bSdcdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm5hbWVcIjogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnRlbXBsYXRlLm1hY3JvRW5hYmxlZC4xMicsXHRcbiAgICAgICAgICAgIFwiZGlzcGxheU5hbWVcIjogJ3BvdG0nXHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJuYW1lXCI6ICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5zbGlkZXNob3cubWFjcm9FbmFibGVkLjEyJyxcdFxuICAgICAgICAgICAgXCJkaXNwbGF5TmFtZVwiOiAncHBzbSdcdFxuICAgICAgICB9IFxuICAgIF07IFxuXG4gICAgcHJpdmF0ZSBsb2FkTmFtZU1JTUVUeXBlKCk6IFByb21pc2U8TUlNRVR5cGVNb2RlbFtdPiB7XG4gICAgICAgIC8vICEgVE9ETzogRWRpdCB0aGlzIG9uIFBST0RVQ1RJT05cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbG9hZE5hbWVNSU1FVHlwZSgpOiBQcm9taXNlPE1JTUVUeXBlTW9kZWxbXT4ge1xuICAgICAgICB0aGlzLk1JTUVUeXBlTW9kZWwgPSBudWxsO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldE5hbWVNSU1FVHlwZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZERpc3BsYXlOYW1lTUlNRVR5cGUoKTogUHJvbWlzZTxNSU1FVHlwZU1vZGVsW10+IHtcbiAgICAgICAgLy8gISBUT0RPOiBFZGl0IHRoaXMgb24gUFJPRFVDVElPTlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVsb2FkRGlzcGxheU5hbWVNSU1FVHlwZSgpOiBQcm9taXNlPE1JTUVUeXBlTW9kZWxbXT4ge1xuICAgICAgICB0aGlzLk1JTUVUeXBlTW9kZWwgPSBudWxsO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldERpc3BsYXlOYW1lTUlNRVR5cGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRUeXBlTUlNRVR5cGUoKTogUHJvbWlzZTxNSU1FVHlwZU1vZGVsW10+IHtcbiAgICAgICAgLy8gISBUT0RPOiBFZGl0IHRoaXMgb24gUFJPRFVDVElPTlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVsb2FkVHlwZU1JTUVUeXBlKCk6IFByb21pc2U8TUlNRVR5cGVNb2RlbFtdPiB7XG4gICAgICAgIHRoaXMuTUlNRVR5cGVNb2RlbCA9IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHlwZU1JTUVUeXBlKCk7XG4gICAgfSBcblxuICAgIHB1YmxpYyBnZXROYW1lTUlNRVR5cGUoKTogUHJvbWlzZTxNSU1FVHlwZU1vZGVsW10+IHtcbiAgICAgICAgaWYgKHRoaXMuTUlNRVR5cGVNb2RlbCAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5NSU1FVHlwZU1vZGVsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgbGV0IE1JTUVUeXBlczogYW55W10gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuTUlNRVR5cGVNb2RlbCkpO1xuICAgICAgICAgICAgbGV0IGdldE5hbWU6IGFueVtdID0gW107XG4gICAgICAgICAgICBmb3IobGV0IE1JTUVUeXBlIG9mIE1JTUVUeXBlcyl7IFxuICAgICAgICAgICAgICAgIGdldE5hbWUucHVzaChNSU1FVHlwZS5uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZ2V0TmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkTmFtZU1JTUVUeXBlKCkudGhlbigocmVzdWx0OiBNSU1FVHlwZU1vZGVsW10pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLk1JTUVUeXBlTW9kZWwgPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgbGV0IE1JTUVUeXBlczogYW55W10gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuTUlNRVR5cGVNb2RlbCkpO1xuICAgICAgICAgICAgICAgIGxldCBnZXROYW1lOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgICAgIGZvcihsZXQgTUlNRVR5cGUgb2YgTUlNRVR5cGVzKXsgXG4gICAgICAgICAgICAgICAgICAgIGdldE5hbWUucHVzaChNSU1FVHlwZS5uYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShnZXROYW1lKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldERpc3BsYXlOYW1lTUlNRVR5cGUoKTogUHJvbWlzZTxNSU1FVHlwZU1vZGVsW10+IHtcbiAgICAgICAgaWYgKHRoaXMuTUlNRVR5cGVNb2RlbCAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5NSU1FVHlwZU1vZGVsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgbGV0IE1JTUVUeXBlczogYW55W10gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuTUlNRVR5cGVNb2RlbCkpO1xuICAgICAgICAgICAgbGV0IGdldERpc3BsYXlOYW1lOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgZm9yKGxldCBNSU1FVHlwZSBvZiBNSU1FVHlwZXMpeyBcbiAgICAgICAgICAgICAgICBnZXREaXNwbGF5TmFtZS5wdXNoKE1JTUVUeXBlLmRpc3BsYXlOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZ2V0RGlzcGxheU5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9hZERpc3BsYXlOYW1lTUlNRVR5cGUoKS50aGVuKChyZXN1bHQ6IE1JTUVUeXBlTW9kZWxbXSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuTUlNRVR5cGVNb2RlbCA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICBsZXQgTUlNRVR5cGVzOiBhbnlbXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5NSU1FVHlwZU1vZGVsKSk7XG4gICAgICAgICAgICAgICAgbGV0IGdldERpc3BsYXlOYW1lOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgICAgIGZvcihsZXQgTUlNRVR5cGUgb2YgTUlNRVR5cGVzKXsgXG4gICAgICAgICAgICAgICAgICAgIGdldERpc3BsYXlOYW1lLnB1c2goTUlNRVR5cGUuZGlzcGxheU5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGdldERpc3BsYXlOYW1lKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFR5cGVNSU1FVHlwZSgpOiBQcm9taXNlPE1JTUVUeXBlTW9kZWxbXT4ge1xuICAgICAgICBpZiAodGhpcy5NSU1FVHlwZU1vZGVsICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLk1JTUVUeXBlTW9kZWwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBsZXQgTUlNRVR5cGVzOiBhbnlbXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5NSU1FVHlwZU1vZGVsKSk7XG4gICAgICAgICAgICBsZXQgZ2V0VHlwZTogYW55W10gPSBbXTtcbiAgICAgICAgICAgIGZvcihsZXQgdHlwZSBvZiBNSU1FVHlwZXMpe1xuICAgICAgICAgICAgICAgIGxldCB0eXBlTmFtZSA9IHR5cGUubmFtZS5zcGxpdChcIi9cIik7XG4gICAgICAgICAgICAgICAgZ2V0VHlwZS5wdXNoKHR5cGVOYW1lWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZ2V0VHlwZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkVHlwZU1JTUVUeXBlKCkudGhlbigocmVzdWx0OiBNSU1FVHlwZU1vZGVsW10pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLk1JTUVUeXBlTW9kZWwgPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgbGV0IE1JTUVUeXBlczogYW55W10gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuTUlNRVR5cGVNb2RlbCkpO1xuICAgICAgICAgICAgICAgIGxldCBnZXRUeXBlOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgICAgIGZvcihsZXQgdHlwZSBvZiBNSU1FVHlwZXMpe1xuICAgICAgICAgICAgICAgICAgICBsZXQgdHlwZU5hbWUgPSB0eXBlLm5hbWUuc3BsaXQoXCIvXCIpO1xuICAgICAgICAgICAgICAgICAgICBnZXRUeXBlLnB1c2godHlwZU5hbWVbMF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGdldFR5cGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=