@c8y/ngx-components 1019.0.3 → 1019.2.4

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.
@@ -66,7 +66,7 @@ export declare class ApplicationOptions implements DevKitApplicationOptions {
66
66
  sensorAppOneLink?: string;
67
67
  mapLayers?: MapTileLayer[];
68
68
  mapConfig?: MapDefaultConfig;
69
- mapQuestUrl?: string;
69
+ mapNominatimUrl?: string;
70
70
  rootTagName?: string;
71
71
  }
72
72
  //# sourceMappingURL=ApplicationOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationOptions.d.ts","sourceRoot":"","sources":["../../../core/common/ApplicationOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApplicationOptions.d.ts","sourceRoot":"","sources":["../../../core/common/ApplicationOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,kBAAkB,IAAI,wBAAwB,EAC9C,eAAe,EACf,SAAS,EACT,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,yBAAyB,EACzB,8BAA8B,EAC9B,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACf,MAAM,qBAAqB,CAAC;AAS7B,qBAAa,kBAAmB,YAAW,wBAAwB;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,iBAAiB,CAAC,EAAE,8BAA8B,CAAC;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC;IACxC,IAAI,CAAC,MAAC;IACN,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"drop-area.component.d.ts","sourceRoot":"","sources":["../../../core/drop-area/drop-area.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drop-area.component.d.ts","sourceRoot":"","sources":["../../../core/drop-area/drop-area.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAEjB,UAAU,EACV,YAAY,EAGZ,MAAM,EAGP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAqB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;;AAGvD;;;;;;;;;;;;GAYG;AAEH,qBAKa,iBAAkB,YAAW,MAAM,EAAE,oBAAoB;IAyDlE,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,GAAG;IA5DJ,WAAW,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,KAAK,gBAA0B;IAC/B,OAAO,mBAA6B;IACpC,IAAI,SAAiB;IACrB,cAAc,eAAyB;IACvC,aAAa,UAAS;IAC/B,2EAA2E;IAClE,UAAU,UAAS;IACnB,WAAW,UAAQ;IACnB,OAAO,UAAS;IACzB;;OAEG;IACM,QAAQ,SAAM;IACb,OAAO,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC,CAAsB;IAC3D,eAAe,SAAY;IAC3B,KAAK,EAAE,QAAQ,CAAC;IAChB,sBAAsB,EAAE,MAAM,CAAC;IACxC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACM,MAAM,EAAE,MAAM,CAAC;IACxB,MAAM,UAAS;IACf,MAAM,UAAS;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAEM,IAAI,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;gBAGjD,EAAE,EAAE,iBAAiB,EACrB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,UAAU;IAIzB,OAAO,CAAC,KAAK,EAAE,aAAa;IAM5B,QAAQ,IAAI,IAAI;IAShB,kBAAkB;IAIlB;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,UAAU,CAAC,MAAM,CAAC,KAAA,GAAG,IAAI;IAMzB;;OAEG;IACH,MAAM,IAAI,IAAI;IAQd;;OAEG;IACH,MAAM,CAAC,MAAM,KAAA,GAAG,IAAI;IAMpB;;OAEG;IACH,MAAM,CAAC,MAAM,KAAA,GAAG,IAAI;IAMpB;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAW9B;;OAEG;IACH,YAAY,IAAI,IAAI;IAMpB;;OAEG;IACH,QAAQ;IAUR,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAkB;IAChD,SAAS,EAAE,MAAM,IAAI,CAAmB;IAExC,UAAU,CAAC,KAAK,EAAE,GAAG;IAUrB,gBAAgB,CAAC,EAAE,EAAE,GAAG;IAIxB,iBAAiB,CAAC,EAAE,EAAE,GAAG;YAIX,eAAe;IA+C7B,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,iBAAiB;YAMX,iBAAiB;IAa/B,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,OAAO;YAWD,IAAI;IAyBlB,OAAO,CAAC,MAAM;yCAnVH,iBAAiB;2CAAjB,iBAAiB;CA4V7B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,QAAG;IACb,iBAAiB,QAAG;IACpB,kBAAkB,QAAG;IACrB,aAAa,QAAG;IAChB,UAAU,QAAG;CACd"}
@@ -7,4 +7,4 @@
7
7
  */
8
8
  export class ApplicationOptions {
9
9
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25PcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9jb21tb24vQXBwbGljYXRpb25PcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0NBb0U5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBcHBsaWNhdGlvbiB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uT3B0aW9ucyBhcyBEZXZLaXRBcHBsaWNhdGlvbk9wdGlvbnMsXG4gIEJyYW5kaW5nQ3NzVmFycyxcbiAgTGFuZ3VhZ2VzLFxuICBJMThuRXh0cmEsXG4gIERvY3MsXG4gIEljb24sXG4gIExvZ2luRXh0cmFMaW5rLFxuICBDb29raWVCYW5uZXJDb25maWd1cmF0aW9uLFxuICBDb29raWVQcmVmZXJlbmNlc0NvbmZpZ3VyYXRpb24sXG4gIFJlbW90ZVBsdWdpbnMsXG4gIE1hcFRpbGVMYXllcixcbiAgTWFwRGVmYXVsdENvbmZpZyxcbiAgUGx1Z2luc0V4cG9ydHNcbn0gZnJvbSAnQGM4eS9kZXZraXQvb3B0aW9ucyc7XG5cbi8qXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVdBUk5JTkctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFRoaXMgZmlsZSBpbXBsZW1lbnRzIGFsbCBwcm9wZXJ0aWVzIG9mIHRoZSBvcmlnaW4gRGV2S2l0QXBwbGljYXRpb25PcHRpb25zXG4gKiAqKk5FVkVSKiogY2hhbmdlIHRoaXMgZmlsZSBkcmllY3RseS4gSW5zdGVhZCBkbzpcbiAqIDEuIG9wZW4gcGFja2FnZXMvZGV2a2l0L3NyYy93ZWJwYWNrL0FwcGxpY2F0aW9uT3B0aW9ucy50cyBhbmQgYWRkIHlvdXIgcHJvcGVydHkgdGhlcmVcbiAqIDIuIGNoZWNrIGluIHRoaXMgZmlsZSBpZiBhbGwgb3B0aW9ucyBhcmUgaW1wbGVtZW50ZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbk9wdGlvbnMgaW1wbGVtZW50cyBEZXZLaXRBcHBsaWNhdGlvbk9wdGlvbnMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbnRleHRQYXRoOiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIHdlYlNka1ZlcnNpb24/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBhdXRob3I/OiBzdHJpbmc7XG4gIGxpY2Vuc2U/OiBzdHJpbmc7XG4gIHVwZ3JhZGU/OiBib29sZWFuO1xuICBicmFuZGluZ0VudHJ5Pzogc3RyaW5nIHwgYm9vbGVhbjtcbiAgdHNDb25maWdQYXRoPzogc3RyaW5nO1xuICBlbnRyeU1vZHVsZT86IHN0cmluZztcbiAgaW5kZXhUZW1wbGF0ZT86IHN0cmluZztcbiAgZHluYW1pY09wdGlvbnNVcmw/OiBzdHJpbmc7XG4gIGZhdmljb25Vcmw/OiBzdHJpbmc7XG4gIGJyYW5kaW5nVXJsPzogc3RyaW5nO1xuICBicmFuZGluZ0Nzc1ZhcnM/OiBCcmFuZGluZ0Nzc1ZhcnM7XG4gIGxhbmd1YWdlcz86IExhbmd1YWdlcztcbiAgaTE4bkV4dHJhPzogSTE4bkV4dHJhO1xuICBsb2NhbGVQYXRoPzogc3RyaW5nO1xuICBleHRyYUNzc1VybHM/OiBzdHJpbmdbXTtcbiAgZG9jcz86IERvY3M7XG4gIGljb24/OiBJY29uO1xuICBub0FwcFN3aXRjaGVyPzogYm9vbGVhbjtcbiAgZ2xvYmFsVGl0bGU/OiBzdHJpbmc7XG4gIGhpZGVQb3dlcmVkPzogYm9vbGVhbjtcbiAgaGlkZVBsYXRmb3JtSW5mb3JtYXRpb24/OiBib29sZWFuO1xuICBzdXBwb3J0VXJsPzogc3RyaW5nIHwgYm9vbGVhbjtcbiAgc3VwcG9ydFVzZXJTdHJpbmc/OiBzdHJpbmc7XG4gIG1hcFdpZGdldFJlYWx0aW1lRGlzYWJsZWQ/OiBib29sZWFuO1xuICBtYXBXaWRnZXRQYWdlU2l6ZT86IG51bWJlcjtcbiAgbWFwV2lkZ2V0SGlkZU1heERldmljZU9uTWFwSGludD86IGJvb2xlYW47XG4gIHJpZ2h0RHJhd2VyPzogYm9vbGVhbjtcbiAgYnJlYWRjcnVtYnM/OiBib29sZWFuO1xuICBoaWRlTmF2aWdhdG9yPzogYm9vbGVhbjtcbiAgaGlkZUhlYWRlcj86IGJvb2xlYW47XG4gIHRhYnNIb3Jpem9udGFsPzogYm9vbGVhbjtcbiAgbG9naW5FeHRyYUxpbms/OiBMb2dpbkV4dHJhTGluaztcbiAgc3RvcmFnZUxpbWl0YXRpb25GZWF0dXJlRW5hYmxlZD86IGJvb2xlYW47XG4gIGNvbXBhbnlOYW1lPzogc3RyaW5nO1xuICBndWlkZUhyZWZUZW1wbGF0ZT86IHN0cmluZztcbiAgZG9jc0Jhc2VVcmw/OiBzdHJpbmc7XG4gIGNvbnRlbnRTZWN1cml0eVBvbGljeT86IHN0cmluZztcbiAgc2Vuc29yUGhvbmU/OiBib29sZWFuO1xuICBuZXdzbGV0dGVyPzogYm9vbGVhbjtcbiAgY29va2llQmFubmVyPzogQ29va2llQmFubmVyQ29uZmlndXJhdGlvbjtcbiAgY29va2llUHJlZmVyZW5jZXM/OiBDb29raWVQcmVmZXJlbmNlc0NvbmZpZ3VyYXRpb247XG4gIGdhaW5zaWdodEtleT86IHN0cmluZztcbiAgZGlzYWJsZVRyYWNraW5nPzogYm9vbGVhbjtcbiAgZXhwb3J0cz86IFBsdWdpbnNFeHBvcnRzW107XG4gIHJlbW90ZXM/OiBSZW1vdGVQbHVnaW5zO1xuICBpc1BhY2thZ2U/OiBib29sZWFuO1xuICBwYWNrYWdlPzogJ3BsdWdpbicgfCAnYmx1ZXByaW50JztcbiAgc291cmNlPzogc3RyaW5nIHwgbnVtYmVyIHwgSUFwcGxpY2F0aW9uO1xuICBjb3B5PztcbiAgY29udGV4dEhlbHA/OiBzdHJpbmcgfCBib29sZWFuO1xuICBkaXNhYmxlT25seVJvb3RzUXVlcnk/OiBib29sZWFuO1xuICBmb3JjZVNldHVwPzogYm9vbGVhbjtcbiAgaXNTZXR1cD86IGJvb2xlYW47XG4gIG5vTG9naW4/OiBib29sZWFuO1xuICBub1BsdWdpbnM/OiBib29sZWFuO1xuICBub1ZlcnNpb25XYXJuaW5nPzogYm9vbGVhbjtcbiAgc2Vuc29yQXBwT25lTGluaz86IHN0cmluZztcbiAgbWFwTGF5ZXJzPzogTWFwVGlsZUxheWVyW107XG4gIG1hcENvbmZpZz86IE1hcERlZmF1bHRDb25maWc7XG4gIG1hcFF1ZXN0VXJsPzogc3RyaW5nO1xuICByb290VGFnTmFtZT86IHN0cmluZztcbn1cbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25PcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9jb21tb24vQXBwbGljYXRpb25PcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0NBb0U5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBcHBsaWNhdGlvbiB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uT3B0aW9ucyBhcyBEZXZLaXRBcHBsaWNhdGlvbk9wdGlvbnMsXG4gIEJyYW5kaW5nQ3NzVmFycyxcbiAgTGFuZ3VhZ2VzLFxuICBJMThuRXh0cmEsXG4gIERvY3MsXG4gIEljb24sXG4gIExvZ2luRXh0cmFMaW5rLFxuICBDb29raWVCYW5uZXJDb25maWd1cmF0aW9uLFxuICBDb29raWVQcmVmZXJlbmNlc0NvbmZpZ3VyYXRpb24sXG4gIFJlbW90ZVBsdWdpbnMsXG4gIE1hcFRpbGVMYXllcixcbiAgTWFwRGVmYXVsdENvbmZpZyxcbiAgUGx1Z2luc0V4cG9ydHNcbn0gZnJvbSAnQGM4eS9kZXZraXQvb3B0aW9ucyc7XG5cbi8qXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVdBUk5JTkctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFRoaXMgZmlsZSBpbXBsZW1lbnRzIGFsbCBwcm9wZXJ0aWVzIG9mIHRoZSBvcmlnaW4gRGV2S2l0QXBwbGljYXRpb25PcHRpb25zXG4gKiAqKk5FVkVSKiogY2hhbmdlIHRoaXMgZmlsZSBkcmllY3RseS4gSW5zdGVhZCBkbzpcbiAqIDEuIG9wZW4gcGFja2FnZXMvZGV2a2l0L3NyYy93ZWJwYWNrL0FwcGxpY2F0aW9uT3B0aW9ucy50cyBhbmQgYWRkIHlvdXIgcHJvcGVydHkgdGhlcmVcbiAqIDIuIGNoZWNrIGluIHRoaXMgZmlsZSBpZiBhbGwgb3B0aW9ucyBhcmUgaW1wbGVtZW50ZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbk9wdGlvbnMgaW1wbGVtZW50cyBEZXZLaXRBcHBsaWNhdGlvbk9wdGlvbnMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbnRleHRQYXRoOiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIHdlYlNka1ZlcnNpb24/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBhdXRob3I/OiBzdHJpbmc7XG4gIGxpY2Vuc2U/OiBzdHJpbmc7XG4gIHVwZ3JhZGU/OiBib29sZWFuO1xuICBicmFuZGluZ0VudHJ5Pzogc3RyaW5nIHwgYm9vbGVhbjtcbiAgdHNDb25maWdQYXRoPzogc3RyaW5nO1xuICBlbnRyeU1vZHVsZT86IHN0cmluZztcbiAgaW5kZXhUZW1wbGF0ZT86IHN0cmluZztcbiAgZHluYW1pY09wdGlvbnNVcmw/OiBzdHJpbmc7XG4gIGZhdmljb25Vcmw/OiBzdHJpbmc7XG4gIGJyYW5kaW5nVXJsPzogc3RyaW5nO1xuICBicmFuZGluZ0Nzc1ZhcnM/OiBCcmFuZGluZ0Nzc1ZhcnM7XG4gIGxhbmd1YWdlcz86IExhbmd1YWdlcztcbiAgaTE4bkV4dHJhPzogSTE4bkV4dHJhO1xuICBsb2NhbGVQYXRoPzogc3RyaW5nO1xuICBleHRyYUNzc1VybHM/OiBzdHJpbmdbXTtcbiAgZG9jcz86IERvY3M7XG4gIGljb24/OiBJY29uO1xuICBub0FwcFN3aXRjaGVyPzogYm9vbGVhbjtcbiAgZ2xvYmFsVGl0bGU/OiBzdHJpbmc7XG4gIGhpZGVQb3dlcmVkPzogYm9vbGVhbjtcbiAgaGlkZVBsYXRmb3JtSW5mb3JtYXRpb24/OiBib29sZWFuO1xuICBzdXBwb3J0VXJsPzogc3RyaW5nIHwgYm9vbGVhbjtcbiAgc3VwcG9ydFVzZXJTdHJpbmc/OiBzdHJpbmc7XG4gIG1hcFdpZGdldFJlYWx0aW1lRGlzYWJsZWQ/OiBib29sZWFuO1xuICBtYXBXaWRnZXRQYWdlU2l6ZT86IG51bWJlcjtcbiAgbWFwV2lkZ2V0SGlkZU1heERldmljZU9uTWFwSGludD86IGJvb2xlYW47XG4gIHJpZ2h0RHJhd2VyPzogYm9vbGVhbjtcbiAgYnJlYWRjcnVtYnM/OiBib29sZWFuO1xuICBoaWRlTmF2aWdhdG9yPzogYm9vbGVhbjtcbiAgaGlkZUhlYWRlcj86IGJvb2xlYW47XG4gIHRhYnNIb3Jpem9udGFsPzogYm9vbGVhbjtcbiAgbG9naW5FeHRyYUxpbms/OiBMb2dpbkV4dHJhTGluaztcbiAgc3RvcmFnZUxpbWl0YXRpb25GZWF0dXJlRW5hYmxlZD86IGJvb2xlYW47XG4gIGNvbXBhbnlOYW1lPzogc3RyaW5nO1xuICBndWlkZUhyZWZUZW1wbGF0ZT86IHN0cmluZztcbiAgZG9jc0Jhc2VVcmw/OiBzdHJpbmc7XG4gIGNvbnRlbnRTZWN1cml0eVBvbGljeT86IHN0cmluZztcbiAgc2Vuc29yUGhvbmU/OiBib29sZWFuO1xuICBuZXdzbGV0dGVyPzogYm9vbGVhbjtcbiAgY29va2llQmFubmVyPzogQ29va2llQmFubmVyQ29uZmlndXJhdGlvbjtcbiAgY29va2llUHJlZmVyZW5jZXM/OiBDb29raWVQcmVmZXJlbmNlc0NvbmZpZ3VyYXRpb247XG4gIGdhaW5zaWdodEtleT86IHN0cmluZztcbiAgZGlzYWJsZVRyYWNraW5nPzogYm9vbGVhbjtcbiAgZXhwb3J0cz86IFBsdWdpbnNFeHBvcnRzW107XG4gIHJlbW90ZXM/OiBSZW1vdGVQbHVnaW5zO1xuICBpc1BhY2thZ2U/OiBib29sZWFuO1xuICBwYWNrYWdlPzogJ3BsdWdpbicgfCAnYmx1ZXByaW50JztcbiAgc291cmNlPzogc3RyaW5nIHwgbnVtYmVyIHwgSUFwcGxpY2F0aW9uO1xuICBjb3B5PztcbiAgY29udGV4dEhlbHA/OiBzdHJpbmcgfCBib29sZWFuO1xuICBkaXNhYmxlT25seVJvb3RzUXVlcnk/OiBib29sZWFuO1xuICBmb3JjZVNldHVwPzogYm9vbGVhbjtcbiAgaXNTZXR1cD86IGJvb2xlYW47XG4gIG5vTG9naW4/OiBib29sZWFuO1xuICBub1BsdWdpbnM/OiBib29sZWFuO1xuICBub1ZlcnNpb25XYXJuaW5nPzogYm9vbGVhbjtcbiAgc2Vuc29yQXBwT25lTGluaz86IHN0cmluZztcbiAgbWFwTGF5ZXJzPzogTWFwVGlsZUxheWVyW107XG4gIG1hcENvbmZpZz86IE1hcERlZmF1bHRDb25maWc7XG4gIG1hcE5vbWluYXRpbVVybD86IHN0cmluZztcbiAgcm9vdFRhZ05hbWU/OiBzdHJpbmc7XG59XG4iXX0=
@@ -138,6 +138,7 @@ export class DropAreaComponent {
138
138
  this.clearErrors();
139
139
  this.dropped.emit(null);
140
140
  this.onChange(null);
141
+ this.onTouched();
141
142
  this.cd.markForCheck();
142
143
  }
143
144
  writeValue(value) {
@@ -157,6 +158,7 @@ export class DropAreaComponent {
157
158
  this.onTouched = fn;
158
159
  }
159
160
  async onFilesSelected(files) {
161
+ this.onTouched();
160
162
  const hasValidNameLength = this.filesService.checkMaxLength(files);
161
163
  if (!hasValidNameLength) {
162
164
  this.onFileInvalidNameLength();
@@ -349,4 +351,4 @@ var ReadAsType;
349
351
  ReadAsType[ReadAsType["ARRAY_BUFFER"] = 2] = "ARRAY_BUFFER";
350
352
  ReadAsType[ReadAsType["BINARY_STRING"] = 3] = "BINARY_STRING";
351
353
  })(ReadAsType || (ReadAsType = {}));
352
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZHJvcC1hcmVhL2Ryb3AtYXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Ryb3AtYXJlYS9kcm9wLWFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBRTFDOzs7Ozs7Ozs7Ozs7R0FZRztBQU9ILE1BQU0sT0FBTyxpQkFBaUI7SUF3RDVCLFlBQ1UsRUFBcUIsRUFDckIsWUFBMEIsRUFDMUIsU0FBMkIsRUFDM0IsS0FBZ0IsRUFDaEIsR0FBZTtRQUpmLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFVBQUssR0FBTCxLQUFLLENBQVc7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQTNEaEIsVUFBSyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENB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ZUFBZSxhQUVkLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7bU5BRy9FLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNFLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkEwQkcsTUFBTTtzQkFBZCxLQUFLO2dCQVErQixJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0csSUFBSTtzQkFBekMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNJLE1BQU07c0JBQTdDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFXdEMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUFxU25DLElBQUssVUFLSjtBQUxELFdBQUssVUFBVTtJQUNiLDJDQUFJLENBQUE7SUFDSixtREFBUSxDQUFBO0lBQ1IsMkRBQVksQ0FBQTtJQUNaLDZEQUFhLENBQUE7QUFDZixDQUFDLEVBTEksVUFBVSxLQUFWLFVBQVUsUUFLZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBnZXQsIG1hcCwgc29tZSwgbWluIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJ5dGVzUGlwZSB9IGZyb20gJy4uL2NvbW1vbi9ieXRlcy5waXBlJztcbmltcG9ydCB7IEZpbGVzU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9maWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi9pMThuL2dldHRleHQnO1xuXG4vKipcbiAqIEEgZHJvcC16b25lIHdoaWNoIGlzIGEgZmlsZSBzZWxlY3RvciBhbGxvd2luZyB1c2VycyB0byBzZWxlY3QgZmlsZShzKSBmcm9tIHRoZWlyIGZpbGUgc3lzdGVtLCBlaXRoZXIgbmF0aXZlbHkgb3IgYnkgZHJhZyBhbmQgZHJvcC5cbiAqXG4gKiBgYGBodG1sXG4gKiAgPGRpdj5cbiAqICAgIDxjOHktZHJvcC1hcmVhXG4gKiAgICAgIChkcm9wcGVkKT1cInVwbG9hZEZpbGUoJGV2ZW50KVwiXG4gKiAgICAgIFtpY29uXT1cIid1cGxvYWQnXCJcbiAqICAgICAgW2FjY2VwdF09XCInLnppcCwuN3osdmlkZW8nXCI+XG4gKiAgICA8L2M4eS1kcm9wLWFyZWE+XG4gKiAgPC9kaXY+XG4gKiBgYGBcbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZHJvcC1hcmVhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3AtYXJlYS5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBEcm9wQXJlYUNvbXBvbmVudCwgbXVsdGk6IHRydWUgfV1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcEFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gIEBJbnB1dCgpIHRpdGxlID0gZ2V0dGV4dCgnVXBsb2FkIGZpbGUnKTtcbiAgQElucHV0KCkgbWVzc2FnZSA9IGdldHRleHQoJ0Ryb3AgZmlsZSBoZXJlJyk7XG4gIEBJbnB1dCgpIGljb24gPSAncGx1cy1zcXVhcmUnO1xuICBASW5wdXQoKSBsb2FkaW5nTWVzc2FnZSA9IGdldHRleHQoJ1VwbG9hZGluZ+KApicpO1xuICBASW5wdXQoKSBmb3JjZUhpZGVMaXN0ID0gZmFsc2U7XG4gIC8qKiBBZmZlY3RzIGRpc3BsYXlpbmcgYm90aCB0aGUgZHJvcCB6b25lIGFuZCB0aGUgbGlzdCBvZiBkcm9wcGVkIGZpbGVzLiAqL1xuICBASW5wdXQoKSBhbHdheXNTaG93ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsaWNrVG9PcGVuID0gdHJ1ZTtcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuICAvKipcbiAgICogQ3VycmVudCBwcm9ncmVzcyBvZiB0aGUgdXBsb2FkIGFzIGEgcGVyY2VudGFnZS4gSWYgbm90IGdpdmVuIGEgc3Bpbm5lciB3aWxsIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIEBJbnB1dCgpIHByb2dyZXNzID0gLTE7IC8vIC0xID0gc3Bpbm5lclxuICBAT3V0cHV0KCkgZHJvcHBlZDogRXZlbnRFbWl0dGVyPERyb3BwZWRGaWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBtYXhBbGxvd2VkRmlsZXMgPSBJbmZpbml0eTtcbiAgQElucHV0KCkgZmlsZXM6IEZpbGVMaXN0O1xuICBASW5wdXQoKSBtYXhGaWxlU2l6ZUluTWVnYUJ5dGVzOiBudW1iZXI7XG4gIC8qKiBTcGVjaWZpZXMgYSBmaWx0ZXIgZm9yIHdoYXQgZmlsZSB0eXBlcyB0aGUgdXNlciBjYW4gcGljayBmcm9tIHRoZSBmaWxlIGlucHV0IGRpYWxvZyBib3guXG4gICAqXG4gICAqIFNwZWNpZnkgZmlsZSB0eXBlcyBieSBleHRlbnNpb25zXG4gICAqXG4gICAqIGBgYGh0bWxcbiAgICogIC4uLlxuICAgKiAgW2FjY2VwdF09XCInLnppcCwuN3onXCJcbiAgICogIC4uLlxuICAgKiBgYGBcbiAgICpcbiAgICogU3BlY2lmeSBmaWxlIHR5cGVzIGJ5IGV4dGVuc2lvbnMgYW5kIGdlbmVyaWMgdHlwZXMgW0dFTkVSSUNfRklMRV9UWVBFXXtAbGluayBHRU5FUklDX0ZJTEVfVFlQRX06XG4gICAqIGBgYGh0bWxcbiAgICogIC4uLlxuICAgKiAgW2FjY2VwdF09XCInLnBkZixhcmNoaXZlJ1wiXG4gICAqICAuLi5cbiAgICogYGBgXG4gICAqXG4gICAqIFNwZWNpZnkgZmlsZSB0eXBlcyBieSBnZW5lcmljIHR5cGVzIFtHRU5FUklDX0ZJTEVfVFlQRV17QGxpbmsgR0VORVJJQ19GSUxFX1RZUEV9OlxuICAgKiAgYGBgaHRtbFxuICAgKiAgLi4uXG4gICAqICBbYWNjZXB0XT1cIidhcmNoaXZlLHZpZGVvJ1wiXG4gICAqICAuLi5cbiAgICpcbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoKSBhY2NlcHQ6IHN0cmluZztcbiAgaXNPdmVyID0gZmFsc2U7XG4gIGVycm9ycyA9IGZhbHNlO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgZmlsZXNOYW1lU3RyaW5nOiBzdHJpbmc7XG4gIGFjY2VwdGVkRXh0czogc3RyaW5nW107XG4gIGhhc0Ryb3BBcmVhU21hbGxDbGFzczogYm9vbGVhbjtcblxuICBAVmlld0NoaWxkKCdhcmVhJywgeyBzdGF0aWM6IHRydWUgfSkgYXJlYTogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnem9uZScsIHsgc3RhdGljOiBmYWxzZSB9KSB6b25lOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdwaWNrZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgcGlja2VyOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZmlsZXNTZXJ2aWNlOiBGaWxlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBieXRlczogQnl0ZXNQaXBlLFxuICAgIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmXG4gICkge31cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9ua2V5dXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLnBpY2tlci5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hY2NlcHRlZEV4dHMgPSB0aGlzLmZpbGVzU2VydmljZS5leHRyYWN0RmlsZUV4dGVuc2lvbnModGhpcy5hY2NlcHQpLm1hcCh0ID0+IGAuJHt0fWApO1xuICAgIHRoaXMuYWx3YXlzU2hvdyA9IHRoaXMuYWx3YXlzU2hvdyB8fCB0aGlzLmFyZWEubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPT09IDA7XG5cbiAgICBpZiAodGhpcy5maWxlcyAmJiB0aGlzLmlzRmlsZXNBbk9iamVjdE9yQXJyYXkoKSAmJiB0aGlzLmZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub25GaWxlc1NlbGVjdGVkKHRoaXMuZmlsZXMpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICB0aGlzLmhhc0Ryb3BBcmVhU21hbGxDbGFzcyA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdkcm9wLWFyZWEtc20nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSBzdHlsZSBvZiB0aGUgZHJvcCB6b25lIGVsZW1lbnQgd2hlbiBhIGZpbGUgaXMgZHJhZ2dlZCBvdmVyIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICB0b2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy56b25lLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5hcmVhLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgJ3B4JztcbiAgICB0aGlzLm9uT3ZlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3dzIGNvbXB1dGVyIGJyb3dzZXIgd2l0aCBmaWxlcyB0byBkcm9wIGludG8gZHJvcC1hcmVhIHpvbmUuXG4gICAqL1xuICBzaG93UGlja2VyKCRldmVudD8pOiB2b2lkIHtcbiAgICB0aGlzLnByZXZlbnREZWZhdWx0KCRldmVudCk7XG4gICAgdGhpcy5waWNrZXIubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMucGlja2VyLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgd2hlbiBmaWxlIGlzIG9uIG92ZXIgZHJvcCBhcmVhLCBidXQgbm90IGRyb3BwZWQuXG4gICAqL1xuICBvbk92ZXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzT3Zlcikge1xuICAgICAgdGhpcy5pc092ZXIgPSB0cnVlO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCB0aGlzLnByZXZlbnREZWZhdWx0KTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCB0aGlzLnByZXZlbnREZWZhdWx0KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIHdoZW4gZmlsZSBpcyBkcm9wcGVkLlxuICAgKi9cbiAgb25QaWNrKCRldmVudCk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JzID0gZmFsc2U7XG4gICAgdGhpcy5wcmV2ZW50RGVmYXVsdCgkZXZlbnQpO1xuICAgIHRoaXMub25GaWxlc1NlbGVjdGVkKCRldmVudC50YXJnZXQuZmlsZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBmaWxlIHdoZW4gaXQgaXMgZHJvcHBlZCBpbnRvIGRyb3AtYXJlYS5cbiAgICovXG4gIG9uRHJvcCgkZXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZlbnREZWZhdWx0KCRldmVudCk7XG4gICAgdGhpcy5vbkZpbGVzU2VsZWN0ZWQoJGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyk7XG4gICAgdGhpcy5zdG9wRHJhZ2dpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgY29uZGl0aW9uIHdoYXQgc2hvdWxkIGJlIGRpc3BsYXllZDogZHJvcC1hcmVhIHpvbmUgb3IgbGlzdCBvZiBkcm9wcGVkIGZpbGVzLlxuICAgKi9cbiAgc2hvdWxkU2hvd0ZpbGVzTGlzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc0ZpbGVzQW5PYmplY3RPckFycmF5KCkgJiZcbiAgICAgICF0aGlzLmZvcmNlSGlkZUxpc3QgJiZcbiAgICAgIHRoaXMuYWx3YXlzU2hvdyAmJlxuICAgICAgIXRoaXMuaXNGaWxlc0FycmF5RW1wdHkoKSAmJlxuICAgICAgIXRoaXMuaGFzRW1wdHlGaWxlcygpICYmXG4gICAgICAhdGhpcy5pc1Rvb01hbnlGaWxlcygpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgd2hlbiBmaWxlIGlzIHBpY2tlZCBvdmVyIHdlYiBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHN0b3BEcmFnZ2luZygpOiB2b2lkIHtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMucHJldmVudERlZmF1bHQpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCB0aGlzLnByZXZlbnREZWZhdWx0KTtcbiAgICB0aGlzLmlzT3ZlciA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBmaWxlcyBhbHJlYWR5IGRyb3BwZWQgZmlsZXMuXG4gICAqL1xuICBvbkRlbGV0ZSgpIHtcbiAgICBkZWxldGUgdGhpcy5maWxlcztcbiAgICBkZWxldGUgdGhpcy5maWxlc05hbWVTdHJpbmc7XG4gICAgdGhpcy5jbGVhckVycm9ycygpO1xuICAgIHRoaXMuZHJvcHBlZC5lbWl0KG51bGwpO1xuICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9IF8gPT4gdW5kZWZpbmVkO1xuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5maWxlcyA9IHZhbHVlO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMub25EZWxldGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlc05hbWVTdHJpbmcgPSB0aGlzLmdldEZpbGVzTmFtZXNBc1N0cmluZyh2YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG9uRmlsZXNTZWxlY3RlZChmaWxlczogRmlsZUxpc3QpIHtcbiAgICBjb25zdCBoYXNWYWxpZE5hbWVMZW5ndGggPSB0aGlzLmZpbGVzU2VydmljZS5jaGVja01heExlbmd0aChmaWxlcyk7XG4gICAgaWYgKCFoYXNWYWxpZE5hbWVMZW5ndGgpIHtcbiAgICAgIHRoaXMub25GaWxlSW52YWxpZE5hbWVMZW5ndGgoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBoYXZlVmFsaWRUeXBlcyA9IHRoaXMuZmlsZXNTZXJ2aWNlLmhhdmVWYWxpZEV4dGVuc2lvbnMoZmlsZXMsIHRoaXMuYWNjZXB0KTtcbiAgICBpZiAoIWhhdmVWYWxpZFR5cGVzKSB7XG4gICAgICB0aGlzLm9uRmlsZUludmFsaWRUeXBlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWF4RmlsZVNpemVJbkJ5dGVzID0gdGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzXG4gICAgICA/IHRoaXMuY29udmVydE1lZ2FCeXRlc1RvQnl0ZXModGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzKVxuICAgICAgOiBudWxsO1xuICAgIGNvbnN0IGhhdmVWYWxpZFNpemVzID0gYXdhaXQgdGhpcy5maWxlc1NlcnZpY2UuaGF2ZVZhbGlkU2l6ZXMoZmlsZXMsIG1heEZpbGVTaXplSW5CeXRlcyk7XG4gICAgaWYgKCFoYXZlVmFsaWRTaXplcykge1xuICAgICAgYXdhaXQgdGhpcy5vbkZpbGVJbnZhbGlkU2l6ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmlsZXMgPSBmaWxlcztcbiAgICB0aGlzLmZpbGVzTmFtZVN0cmluZyA9IHRoaXMuZ2V0RmlsZXNOYW1lc0FzU3RyaW5nKGZpbGVzKTtcbiAgICB0aGlzLmVycm9ycyA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuaXNUb29NYW55RmlsZXMoKSkge1xuICAgICAgdGhpcy5lcnJvcnMgPSB0cnVlO1xuICAgICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0RXJyb3JzKHsgdG9vTWFueUZpbGVzOiB0cnVlIH0pO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBnZXR0ZXh0KCdUb28gbWFueSBmaWxlcyBzZWxlY3RlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNFbXB0eUZpbGVzKCkpIHtcbiAgICAgIHRoaXMuZXJyb3JzID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldEVycm9ycyh7IGVtcHR5RmlsZXM6IHRydWUgfSk7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGdldHRleHQoJ0ZpbGUgbXVzdCBub3QgYmUgZW1wdHksIHNlbGVjdCBhbm90aGVyIG9uZS4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkcm9wcGVkRmlsZXM6IERyb3BwZWRGaWxlW10gPSB0aGlzLmNvbXBvc2UoZmlsZXMpO1xuICAgIHRoaXMuZHJvcHBlZC5lbWl0KGRyb3BwZWRGaWxlcyk7XG4gICAgdGhpcy5vbkNoYW5nZShkcm9wcGVkRmlsZXMpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIG9uRmlsZUludmFsaWROYW1lTGVuZ3RoKCkge1xuICAgIHRoaXMuZXJyb3JzID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRFcnJvcnMoeyBpbnZhbGlkTmFtZUxlbmd0aDogdHJ1ZSB9KTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGdldHRleHQoJ1RoZSBmaWxlbmFtZSBpcyB0b28gbG9uZy4nKTtcbiAgfVxuXG4gIHByaXZhdGUgb25GaWxlSW52YWxpZFR5cGUoKSB7XG4gICAgdGhpcy5lcnJvcnMgPSB0cnVlO1xuICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldEVycm9ycyh7IGludmFsaWRUeXBlOiB0cnVlIH0pO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZ2V0dGV4dCgnVGhlIHNlbGVjdGVkIGZpbGUgaXMgbm90IHN1cHBvcnRlZC4nKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgb25GaWxlSW52YWxpZFNpemUoKSB7XG4gICAgY29uc3QgbWF4RmlsZVNpemVJbkJ5dGVzID0gdGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzXG4gICAgICA/IHRoaXMuY29udmVydE1lZ2FCeXRlc1RvQnl0ZXModGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzKVxuICAgICAgOiBudWxsO1xuICAgIGNvbnN0IG1zZyA9IGdldHRleHQoJ1RoZSBzZWxlY3RlZCBmaWxlIGlzIHRvbyBsYXJnZS4gVGhlIHNpemUgbGltaXQgaXMge3sgbGltaXQgfX0uJyk7XG4gICAgY29uc3QgbGltaXQgPSB0aGlzLmJ5dGVzLnRyYW5zZm9ybShcbiAgICAgIG1pbihbbWF4RmlsZVNpemVJbkJ5dGVzLCBhd2FpdCB0aGlzLmZpbGVzU2VydmljZS5sb2FkQnl0ZXNTaXplTGltaXQoKV0pXG4gICAgKTtcbiAgICB0aGlzLmVycm9ycyA9IHRydWU7XG4gICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0RXJyb3JzKHsgaW52YWxpZFNpemU6IHRydWUgfSk7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KG1zZywgeyBsaW1pdCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydE1lZ2FCeXRlc1RvQnl0ZXMobWF4RmlsZVNpemVJbk1lZ2FCeXRlczogU2l6ZUluTWVnYUJ5dGVzKTogU2l6ZUluQnl0ZXMge1xuICAgIHJldHVybiBtYXhGaWxlU2l6ZUluTWVnYUJ5dGVzICogMV8wNDhfNTc2O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlc05hbWVzQXNTdHJpbmcoZmlsZXM6IEZpbGVMaXN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbWFwKGZpbGVzLCAoeyBuYW1lIH0pID0+IG5hbWUpLmpvaW4oJywgJyk7XG4gIH1cblxuICBwcml2YXRlIGlzRmlsZXNBcnJheUVtcHR5KCkge1xuICAgIHJldHVybiBnZXQodGhpcywgJ2ZpbGVzLmxlbmd0aCcsIDApID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Rvb01hbnlGaWxlcygpIHtcbiAgICByZXR1cm4gZ2V0KHRoaXMsICdmaWxlcy5sZW5ndGgnLCAwKSA+IHRoaXMubWF4QWxsb3dlZEZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpbGVzQW5PYmplY3RPckFycmF5KCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5maWxlcyA9PT0gJ29iamVjdCc7XG4gIH1cblxuICBwcml2YXRlIGhhc0VtcHR5RmlsZXMoKSB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLmlzRmlsZXNBcnJheUVtcHR5KCkpIHtcbiAgICAgIHJlc3VsdCA9IHRoaXMuaXNBbnlGaWxlRW1wdHkoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbnlGaWxlRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNvbWUoQXJyYXkuZnJvbSh0aGlzLmZpbGVzKSwgWydzaXplJywgMF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckVycm9ycygpIHtcbiAgICBkZWxldGUgdGhpcy5lcnJvck1lc3NhZ2U7XG4gICAgdGhpcy5lcnJvcnMgPSBmYWxzZTtcbiAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRFcnJvcnMobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHByZXZlbnREZWZhdWx0KCRldmVudD8pIHtcbiAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbXBvc2UoZmlsZXM6IEZpbGVMaXN0KTogRHJvcHBlZEZpbGVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oZmlsZXMpLm1hcChmaWxlID0+ICh7XG4gICAgICBmaWxlLFxuICAgICAgcmVhZEFzSnNvbjogYXN5bmMgKCkgPT4gSlNPTi5wYXJzZShhd2FpdCB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5URVhUKSksXG4gICAgICByZWFkQXNUZXh0OiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5URVhUKSxcbiAgICAgIHJlYWRBc0FycmF5QnVmZmVyOiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5BUlJBWV9CVUZGRVIpLFxuICAgICAgcmVhZEFzQmluYXJ5U3RyaW5nOiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5CSU5BUllfU1RSSU5HKSxcbiAgICAgIHJlYWRBc0RhdGFVUkw6IGFzeW5jICgpID0+IHRoaXMucmVhZChmaWxlLCBSZWFkQXNUeXBlLkRBVEFfVVJMKVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVhZChmaWxlLCB0eXBlOiBSZWFkQXNUeXBlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUmVhZEFzVHlwZS5URVhUOiB7XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBSZWFkQXNUeXBlLkFSUkFZX0JVRkZFUjoge1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFJlYWRBc1R5cGUuQklOQVJZX1NUUklORzoge1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBSZWFkQXNUeXBlLkRBVEFfVVJMOiB7XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB0aGlzLm9uTG9hZChyZWFkZXIsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9uTG9hZChyZWFkZXIsIHJlc29sdmUsIHJlamVjdCkge1xuICAgIGlmIChyZWFkZXIucmVhZHlTdGF0ZSAhPT0gMikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmVhZGVyLmVycm9yKSB7XG4gICAgICByZWplY3QocmVhZGVyLmVycm9yKTtcbiAgICB9XG4gICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3BwZWRGaWxlIHtcbiAgZmlsZTogRmlsZTtcbiAgcmVhZEFzVGV4dCgpO1xuICByZWFkQXNBcnJheUJ1ZmZlcigpO1xuICByZWFkQXNCaW5hcnlTdHJpbmcoKTtcbiAgcmVhZEFzRGF0YVVSTCgpO1xuICByZWFkQXNKc29uKCk7XG59XG5cbmVudW0gUmVhZEFzVHlwZSB7XG4gIFRFWFQsXG4gIERBVEFfVVJMLFxuICBBUlJBWV9CVUZGRVIsXG4gIEJJTkFSWV9TVFJJTkdcbn1cblxudHlwZSBTaXplSW5NZWdhQnl0ZXMgPSBudW1iZXI7XG50eXBlIFNpemVJbkJ5dGVzID0gbnVtYmVyO1xuIiwiPGRpdlxuICBjbGFzcz1cImRyb3Atem9uZVwiXG4gIFtzdHlsZS5wb2ludGVyRXZlbnRzXT1cImxvYWRpbmcgPyAnbm9uZScgOiAnYXV0bydcIlxuICBbc3R5bGUuZGlzcGxheV09XCJpc092ZXIgfHwgYWx3YXlzU2hvdyB8fCBsb2FkaW5nID8gJ2Jsb2NrJyA6ICdub25lJ1wiXG4gIHRhYmluZGV4PVwiMFwiXG4gICpuZ0lmPVwiIXNob3VsZFNob3dGaWxlc0xpc3QoKVwiXG4gIFtuZ0NsYXNzXT1cInsgJ2hhcy1lcnJvcnMnOiBlcnJvcnMsIGRpc2FibGVkOiBmb3JtQ29udHJvbD8uZGlzYWJsZWQgfVwiXG4gICN6b25lXG4gIChkcmFnbGVhdmUpPVwic3RvcERyYWdnaW5nKClcIlxuICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gIChkcmFnb3Zlcik9XCJvbk92ZXIoKVwiXG4gIChjbGljayk9XCJzaG93UGlja2VyKCRldmVudClcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmaWxlLXBsYWNlaG9sZGVyXCJcbiAgICBkYXRhLWN5PVwiYzh5LWZpbGUtcGxhY2Vob2xkZXItLWRyb3Atem9uZVwiXG4gICAgW25nQ2xhc3NdPVwieyAnZHJhZy1vdmVyJzogaXNPdmVyIH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkLWZsZXggZC1jb2wgcC00IGZsZXgtY2VudGVyXCJcbiAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInByb2dyZXNzIHByb2dyZXNzLXN0cmlwZWQgYWN0aXZlIG0tMFwiXG4gICAgICAgIHN0eWxlPVwibWluLXdpZHRoOiA1MCVcIlxuICAgICAgICAqbmdJZj1cInByb2dyZXNzICE9PSAtMVwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhclwiXG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgICBhcmlhLXZhbHVlbm93PVwiMFwiXG4gICAgICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxuICAgICAgICAgIGFyaWEtdmFsdWVtYXg9XCIxMDBcIlxuICAgICAgICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXG4gICAgICAgID48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNwaW5uZXItc25ha2VcIlxuICAgICAgICAqbmdJZj1cInByb2dyZXNzID09PSAtMVwiXG4gICAgICA+PC9kaXY+XG4gICAgICA8cFxuICAgICAgICBjbGFzcz1cIm0tdC1hdXRvIG0tYi1hdXRvIG0tci04XCJcbiAgICAgICAgKm5nSWY9XCIhaGFzRHJvcEFyZWFTbWFsbENsYXNzXCJcbiAgICAgID5cbiAgICAgICAge3sgbG9hZGluZ01lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImhpbnQtcGxhY2Vob2xkZXIgcG9pbnRlclwiXG4gICAgICAqbmdJZj1cIiFsb2FkaW5nXCJcbiAgICAgIGRhdGEtY3k9XCJkcm9wLXpvbmUtLWhpbnQtcGxhY2Vob2xkZXJcIlxuICAgID5cbiAgICAgIDxpIGNsYXNzPVwiZGx0LWM4eS1pY29uLXt7IGljb24gfX1cIj48L2k+XG4gICAgICA8cCAqbmdJZj1cIiFlcnJvcnNcIj5cbiAgICAgICAgPGI+e3sgbWVzc2FnZSB8IHRyYW5zbGF0ZSB9fTwvYj5cbiAgICAgICAgPGJyIC8+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCJhbHdheXNTaG93ICYmIGNsaWNrVG9PcGVuXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgIDwvcD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJoYXMtZXJyb3JzXCJcbiAgICAgICAgKm5nSWY9XCJlcnJvcnNcIlxuICAgICAgPlxuICAgICAgICA8cCBjbGFzcz1cImZvcm0tY29udHJvbC1mZWVkYmFjay1tZXNzYWdlXCI+XG4gICAgICAgICAge3sgZXJyb3JNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2XG4gIGNsYXNzPVwiZHJvcC16b25lXCJcbiAgW3N0eWxlLmRpc3BsYXldPVwiaXNPdmVyIHx8IGFsd2F5c1Nob3cgfHwgbG9hZGluZyA/ICdibG9jaycgOiAnbm9uZSdcIlxuICB0YWJpbmRleD1cIjBcIlxuICAqbmdJZj1cInNob3VsZFNob3dGaWxlc0xpc3QoKVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInAtYWJzb2x1dGUgcC00IGZpdC13IGZpdC1oIGQtZmxleCBkLWNvbCBqLWMtY2VudGVyIGEtaS1jZW50ZXJcIlxuICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByb2dyZXNzIHByb2dyZXNzLXN0cmlwZWQgYWN0aXZlIG0tMFwiXG4gICAgICBzdHlsZT1cIm1pbi13aWR0aDogODAlXCJcbiAgICAgICpuZ0lmPVwicHJvZ3Jlc3MgIT09IC0xXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MtYmFyXCJcbiAgICAgICAgW3N0eWxlLndpZHRoXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcm9ncmVzcyArICclJ1wiXG4gICAgICAgIGFyaWEtdmFsdWVub3c9XCIwXCJcbiAgICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxuICAgICAgICBhcmlhLXZhbHVlbWF4PVwiMTAwXCJcbiAgICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwicHJvZ3Jlc3MgPT09IC0xXCI+XG4gICAgICA8Yzh5LWxvYWRpbmc+PC9jOHktbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgICA8cFxuICAgICAgY2xhc3M9XCJtLWItOFwiXG4gICAgICAqbmdJZj1cIiFoYXNEcm9wQXJlYVNtYWxsQ2xhc3NcIlxuICAgID5cbiAgICAgIDxzdHJvbmc+XG4gICAgICAgIHt7IGxvYWRpbmdNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3N0cm9uZz5cbiAgICA8L3A+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmaWxlLXBsYWNlaG9sZGVyIHAtNFwiXG4gICAgKm5nSWY9XCIhbG9hZGluZ1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHAtNCBhLWktY2VudGVyXCI+XG4gICAgICA8aVxuICAgICAgICBjbGFzcz1cImljb24tMjAgbS1yLThcIlxuICAgICAgICBjOHlJY29uPVwiZmlsZS1vXCJcbiAgICAgID48L2k+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgICB0aXRsZT1cInt7IGZpbGVzTmFtZVN0cmluZyB9fVwiXG4gICAgICA+XG4gICAgICAgIHt7IGZpbGVzTmFtZVN0cmluZyB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBidG4tZG90IGJ0bi1kb3QtLWRhbmdlciBzaG93T25Ib3ZlciBtLWwtYXV0b1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ1JlbW92ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZW1vdmUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxpXG4gICAgICAgICAgYzh5SWNvbj1cIm1pbnVzLWNpcmNsZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlKClcIlxuICAgICAgICA+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48bGFiZWxcbiAgY2xhc3M9XCJzci1vbmx5XCJcbiAgZm9yPVwiZmlsZVwiXG4+XG4gIHt7ICdTZWxlY3QgZmlsZScgfCB0cmFuc2xhdGUgfX1cbjwvbGFiZWw+XG48aW5wdXRcbiAgY2xhc3M9XCJoaWRkZW5cIlxuICBpZD1cImZpbGVcIlxuICB0eXBlPVwiZmlsZVwiXG4gICNwaWNrZXJcbiAgKm5nSWY9XCJjbGlja1RvT3BlblwiXG4gIChjaGFuZ2UpPVwib25QaWNrKCRldmVudClcIlxuICAoY2xpY2spPVwicGlja2VyLmZvY3VzKClcIlxuICAoYmx1cik9XCJvblRvdWNoZWQoKVwiXG4gIFthY2NlcHRdPVwiYWNjZXB0ZWRFeHRzXCJcbiAgW211bHRpcGxlXT1cIm1heEFsbG93ZWRGaWxlcyA+IDFcIlxuICBbZGlzYWJsZWRdPVwiZm9ybUNvbnRyb2w/LmRpc2FibGVkXCJcbi8+XG48ZGl2XG4gICNhcmVhXG4gIFtoaWRkZW5dPVwiaXNPdmVyIHx8IGxvYWRpbmdcIlxuICAoZHJhZ292ZXIpPVwidG9nZ2xlKClcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
354
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZHJvcC1hcmVhL2Ryb3AtYXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Ryb3AtYXJlYS9kcm9wLWFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBRTFDOzs7Ozs7Ozs7Ozs7R0FZRztBQU9ILE1BQU0sT0FBTyxpQkFBaUI7SUF3RDVCLFlBQ1UsRUFBcUIsRUFDckIsWUFBMEIsRUFDMUIsU0FBMkIsRUFDM0IsS0FBZ0IsRUFDaEIsR0FBZTtRQUpmLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFVBQUssR0FBTCxLQUFLLENBQVc7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQTNEaEIsVUFBSyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENB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Q2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGdldCwgbWFwLCBzb21lLCBtaW4gfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQnl0ZXNQaXBlIH0gZnJvbSAnLi4vY29tbW9uL2J5dGVzLnBpcGUnO1xuaW1wb3J0IHsgRmlsZXNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL2ZpbGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uL2kxOG4vZ2V0dGV4dCc7XG5cbi8qKlxuICogQSBkcm9wLXpvbmUgd2hpY2ggaXMgYSBmaWxlIHNlbGVjdG9yIGFsbG93aW5nIHVzZXJzIHRvIHNlbGVjdCBmaWxlKHMpIGZyb20gdGhlaXIgZmlsZSBzeXN0ZW0sIGVpdGhlciBuYXRpdmVseSBvciBieSBkcmFnIGFuZCBkcm9wLlxuICpcbiAqIGBgYGh0bWxcbiAqICA8ZGl2PlxuICogICAgPGM4eS1kcm9wLWFyZWFcbiAqICAgICAgKGRyb3BwZWQpPVwidXBsb2FkRmlsZSgkZXZlbnQpXCJcbiAqICAgICAgW2ljb25dPVwiJ3VwbG9hZCdcIlxuICogICAgICBbYWNjZXB0XT1cIicuemlwLC43eix2aWRlbydcIj5cbiAqICAgIDwvYzh5LWRyb3AtYXJlYT5cbiAqICA8L2Rpdj5cbiAqIGBgYFxuICovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kcm9wLWFyZWEnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcC1hcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IERyb3BBcmVhQ29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wQXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcbiAgQElucHV0KCkgdGl0bGUgPSBnZXR0ZXh0KCdVcGxvYWQgZmlsZScpO1xuICBASW5wdXQoKSBtZXNzYWdlID0gZ2V0dGV4dCgnRHJvcCBmaWxlIGhlcmUnKTtcbiAgQElucHV0KCkgaWNvbiA9ICdwbHVzLXNxdWFyZSc7XG4gIEBJbnB1dCgpIGxvYWRpbmdNZXNzYWdlID0gZ2V0dGV4dCgnVXBsb2FkaW5n4oCmJyk7XG4gIEBJbnB1dCgpIGZvcmNlSGlkZUxpc3QgPSBmYWxzZTtcbiAgLyoqIEFmZmVjdHMgZGlzcGxheWluZyBib3RoIHRoZSBkcm9wIHpvbmUgYW5kIHRoZSBsaXN0IG9mIGRyb3BwZWQgZmlsZXMuICovXG4gIEBJbnB1dCgpIGFsd2F5c1Nob3cgPSBmYWxzZTtcbiAgQElucHV0KCkgY2xpY2tUb09wZW4gPSB0cnVlO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKlxuICAgKiBDdXJyZW50IHByb2dyZXNzIG9mIHRoZSB1cGxvYWQgYXMgYSBwZXJjZW50YWdlLiBJZiBub3QgZ2l2ZW4gYSBzcGlubmVyIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgQElucHV0KCkgcHJvZ3Jlc3MgPSAtMTsgLy8gLTEgPSBzcGlubmVyXG4gIEBPdXRwdXQoKSBkcm9wcGVkOiBFdmVudEVtaXR0ZXI8RHJvcHBlZEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIG1heEFsbG93ZWRGaWxlcyA9IEluZmluaXR5O1xuICBASW5wdXQoKSBmaWxlczogRmlsZUxpc3Q7XG4gIEBJbnB1dCgpIG1heEZpbGVTaXplSW5NZWdhQnl0ZXM6IG51bWJlcjtcbiAgLyoqIFNwZWNpZmllcyBhIGZpbHRlciBmb3Igd2hhdCBmaWxlIHR5cGVzIHRoZSB1c2VyIGNhbiBwaWNrIGZyb20gdGhlIGZpbGUgaW5wdXQgZGlhbG9nIGJveC5cbiAgICpcbiAgICogU3BlY2lmeSBmaWxlIHR5cGVzIGJ5IGV4dGVuc2lvbnNcbiAgICpcbiAgICogYGBgaHRtbFxuICAgKiAgLi4uXG4gICAqICBbYWNjZXB0XT1cIicuemlwLC43eidcIlxuICAgKiAgLi4uXG4gICAqIGBgYFxuICAgKlxuICAgKiBTcGVjaWZ5IGZpbGUgdHlwZXMgYnkgZXh0ZW5zaW9ucyBhbmQgZ2VuZXJpYyB0eXBlcyBbR0VORVJJQ19GSUxFX1RZUEVde0BsaW5rIEdFTkVSSUNfRklMRV9UWVBFfTpcbiAgICogYGBgaHRtbFxuICAgKiAgLi4uXG4gICAqICBbYWNjZXB0XT1cIicucGRmLGFyY2hpdmUnXCJcbiAgICogIC4uLlxuICAgKiBgYGBcbiAgICpcbiAgICogU3BlY2lmeSBmaWxlIHR5cGVzIGJ5IGdlbmVyaWMgdHlwZXMgW0dFTkVSSUNfRklMRV9UWVBFXXtAbGluayBHRU5FUklDX0ZJTEVfVFlQRX06XG4gICAqICBgYGBodG1sXG4gICAqICAuLi5cbiAgICogIFthY2NlcHRdPVwiJ2FyY2hpdmUsdmlkZW8nXCJcbiAgICogIC4uLlxuICAgKlxuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgpIGFjY2VwdDogc3RyaW5nO1xuICBpc092ZXIgPSBmYWxzZTtcbiAgZXJyb3JzID0gZmFsc2U7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBmaWxlc05hbWVTdHJpbmc6IHN0cmluZztcbiAgYWNjZXB0ZWRFeHRzOiBzdHJpbmdbXTtcbiAgaGFzRHJvcEFyZWFTbWFsbENsYXNzOiBib29sZWFuO1xuXG4gIEBWaWV3Q2hpbGQoJ2FyZWEnLCB7IHN0YXRpYzogdHJ1ZSB9KSBhcmVhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCd6b25lJywgeyBzdGF0aWM6IGZhbHNlIH0pIHpvbmU6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3BpY2tlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBwaWNrZXI6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBmaWxlc1NlcnZpY2U6IEZpbGVzU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGJ5dGVzOiBCeXRlc1BpcGUsXG4gICAgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgb25rZXl1cChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIHRoaXMucGlja2VyLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFjY2VwdGVkRXh0cyA9IHRoaXMuZmlsZXNTZXJ2aWNlLmV4dHJhY3RGaWxlRXh0ZW5zaW9ucyh0aGlzLmFjY2VwdCkubWFwKHQgPT4gYC4ke3R9YCk7XG4gICAgdGhpcy5hbHdheXNTaG93ID0gdGhpcy5hbHdheXNTaG93IHx8IHRoaXMuYXJlYS5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMDtcblxuICAgIGlmICh0aGlzLmZpbGVzICYmIHRoaXMuaXNGaWxlc0FuT2JqZWN0T3JBcnJheSgpICYmIHRoaXMuZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5vbkZpbGVzU2VsZWN0ZWQodGhpcy5maWxlcyk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIHRoaXMuaGFzRHJvcEFyZWFTbWFsbENsYXNzID0gdGhpcy5yZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2Ryb3AtYXJlYS1zbScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIHN0eWxlIG9mIHRoZSBkcm9wIHpvbmUgZWxlbWVudCB3aGVuIGEgZmlsZSBpcyBkcmFnZ2VkIG92ZXIgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnpvbmUubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLmFyZWEubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyAncHgnO1xuICAgIHRoaXMub25PdmVyKCk7XG4gIH1cblxuICAvKipcbiAgICogU2hvd3MgY29tcHV0ZXIgYnJvd3NlciB3aXRoIGZpbGVzIHRvIGRyb3AgaW50byBkcm9wLWFyZWEgem9uZS5cbiAgICovXG4gIHNob3dQaWNrZXIoJGV2ZW50Pyk6IHZvaWQge1xuICAgIHRoaXMucHJldmVudERlZmF1bHQoJGV2ZW50KTtcbiAgICB0aGlzLnBpY2tlci5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5waWNrZXIubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIGZpbGUgaXMgb24gb3ZlciBkcm9wIGFyZWEsIGJ1dCBub3QgZHJvcHBlZC5cbiAgICovXG4gIG9uT3ZlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNPdmVyKSB7XG4gICAgICB0aGlzLmlzT3ZlciA9IHRydWU7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMucHJldmVudERlZmF1bHQpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIHRoaXMucHJldmVudERlZmF1bHQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgd2hlbiBmaWxlIGlzIGRyb3BwZWQuXG4gICAqL1xuICBvblBpY2soJGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5lcnJvcnMgPSBmYWxzZTtcbiAgICB0aGlzLnByZXZlbnREZWZhdWx0KCRldmVudCk7XG4gICAgdGhpcy5vbkZpbGVzU2VsZWN0ZWQoJGV2ZW50LnRhcmdldC5maWxlcyk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGZpbGUgd2hlbiBpdCBpcyBkcm9wcGVkIGludG8gZHJvcC1hcmVhLlxuICAgKi9cbiAgb25Ecm9wKCRldmVudCk6IHZvaWQge1xuICAgIHRoaXMucHJldmVudERlZmF1bHQoJGV2ZW50KTtcbiAgICB0aGlzLm9uRmlsZXNTZWxlY3RlZCgkZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgICB0aGlzLnN0b3BEcmFnZ2luZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBjb25kaXRpb24gd2hhdCBzaG91bGQgYmUgZGlzcGxheWVkOiBkcm9wLWFyZWEgem9uZSBvciBsaXN0IG9mIGRyb3BwZWQgZmlsZXMuXG4gICAqL1xuICBzaG91bGRTaG93RmlsZXNMaXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzRmlsZXNBbk9iamVjdE9yQXJyYXkoKSAmJlxuICAgICAgIXRoaXMuZm9yY2VIaWRlTGlzdCAmJlxuICAgICAgdGhpcy5hbHdheXNTaG93ICYmXG4gICAgICAhdGhpcy5pc0ZpbGVzQXJyYXlFbXB0eSgpICYmXG4gICAgICAhdGhpcy5oYXNFbXB0eUZpbGVzKCkgJiZcbiAgICAgICF0aGlzLmlzVG9vTWFueUZpbGVzKClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIGZpbGUgaXMgcGlja2VkIG92ZXIgd2ViIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgc3RvcERyYWdnaW5nKCk6IHZvaWQge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5wcmV2ZW50RGVmYXVsdCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJvcCcsIHRoaXMucHJldmVudERlZmF1bHQpO1xuICAgIHRoaXMuaXNPdmVyID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGZpbGVzIGFscmVhZHkgZHJvcHBlZCBmaWxlcy5cbiAgICovXG4gIG9uRGVsZXRlKCkge1xuICAgIGRlbGV0ZSB0aGlzLmZpbGVzO1xuICAgIGRlbGV0ZSB0aGlzLmZpbGVzTmFtZVN0cmluZztcbiAgICB0aGlzLmNsZWFyRXJyb3JzKCk7XG4gICAgdGhpcy5kcm9wcGVkLmVtaXQobnVsbCk7XG4gICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSBfID0+IHVuZGVmaW5lZDtcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZmlsZXMgPSB2YWx1ZTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLm9uRGVsZXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsZXNOYW1lU3RyaW5nID0gdGhpcy5nZXRGaWxlc05hbWVzQXNTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkZpbGVzU2VsZWN0ZWQoZmlsZXM6IEZpbGVMaXN0KSB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICBjb25zdCBoYXNWYWxpZE5hbWVMZW5ndGggPSB0aGlzLmZpbGVzU2VydmljZS5jaGVja01heExlbmd0aChmaWxlcyk7XG4gICAgaWYgKCFoYXNWYWxpZE5hbWVMZW5ndGgpIHtcbiAgICAgIHRoaXMub25GaWxlSW52YWxpZE5hbWVMZW5ndGgoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBoYXZlVmFsaWRUeXBlcyA9IHRoaXMuZmlsZXNTZXJ2aWNlLmhhdmVWYWxpZEV4dGVuc2lvbnMoZmlsZXMsIHRoaXMuYWNjZXB0KTtcbiAgICBpZiAoIWhhdmVWYWxpZFR5cGVzKSB7XG4gICAgICB0aGlzLm9uRmlsZUludmFsaWRUeXBlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWF4RmlsZVNpemVJbkJ5dGVzID0gdGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzXG4gICAgICA/IHRoaXMuY29udmVydE1lZ2FCeXRlc1RvQnl0ZXModGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzKVxuICAgICAgOiBudWxsO1xuICAgIGNvbnN0IGhhdmVWYWxpZFNpemVzID0gYXdhaXQgdGhpcy5maWxlc1NlcnZpY2UuaGF2ZVZhbGlkU2l6ZXMoZmlsZXMsIG1heEZpbGVTaXplSW5CeXRlcyk7XG4gICAgaWYgKCFoYXZlVmFsaWRTaXplcykge1xuICAgICAgYXdhaXQgdGhpcy5vbkZpbGVJbnZhbGlkU2l6ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmlsZXMgPSBmaWxlcztcbiAgICB0aGlzLmZpbGVzTmFtZVN0cmluZyA9IHRoaXMuZ2V0RmlsZXNOYW1lc0FzU3RyaW5nKGZpbGVzKTtcbiAgICB0aGlzLmVycm9ycyA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuaXNUb29NYW55RmlsZXMoKSkge1xuICAgICAgdGhpcy5lcnJvcnMgPSB0cnVlO1xuICAgICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0RXJyb3JzKHsgdG9vTWFueUZpbGVzOiB0cnVlIH0pO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBnZXR0ZXh0KCdUb28gbWFueSBmaWxlcyBzZWxlY3RlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNFbXB0eUZpbGVzKCkpIHtcbiAgICAgIHRoaXMuZXJyb3JzID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldEVycm9ycyh7IGVtcHR5RmlsZXM6IHRydWUgfSk7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGdldHRleHQoJ0ZpbGUgbXVzdCBub3QgYmUgZW1wdHksIHNlbGVjdCBhbm90aGVyIG9uZS4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkcm9wcGVkRmlsZXM6IERyb3BwZWRGaWxlW10gPSB0aGlzLmNvbXBvc2UoZmlsZXMpO1xuICAgIHRoaXMuZHJvcHBlZC5lbWl0KGRyb3BwZWRGaWxlcyk7XG4gICAgdGhpcy5vbkNoYW5nZShkcm9wcGVkRmlsZXMpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIG9uRmlsZUludmFsaWROYW1lTGVuZ3RoKCkge1xuICAgIHRoaXMuZXJyb3JzID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRFcnJvcnMoeyBpbnZhbGlkTmFtZUxlbmd0aDogdHJ1ZSB9KTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGdldHRleHQoJ1RoZSBmaWxlbmFtZSBpcyB0b28gbG9uZy4nKTtcbiAgfVxuXG4gIHByaXZhdGUgb25GaWxlSW52YWxpZFR5cGUoKSB7XG4gICAgdGhpcy5lcnJvcnMgPSB0cnVlO1xuICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldEVycm9ycyh7IGludmFsaWRUeXBlOiB0cnVlIH0pO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZ2V0dGV4dCgnVGhlIHNlbGVjdGVkIGZpbGUgaXMgbm90IHN1cHBvcnRlZC4nKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgb25GaWxlSW52YWxpZFNpemUoKSB7XG4gICAgY29uc3QgbWF4RmlsZVNpemVJbkJ5dGVzID0gdGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzXG4gICAgICA/IHRoaXMuY29udmVydE1lZ2FCeXRlc1RvQnl0ZXModGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzKVxuICAgICAgOiBudWxsO1xuICAgIGNvbnN0IG1zZyA9IGdldHRleHQoJ1RoZSBzZWxlY3RlZCBmaWxlIGlzIHRvbyBsYXJnZS4gVGhlIHNpemUgbGltaXQgaXMge3sgbGltaXQgfX0uJyk7XG4gICAgY29uc3QgbGltaXQgPSB0aGlzLmJ5dGVzLnRyYW5zZm9ybShcbiAgICAgIG1pbihbbWF4RmlsZVNpemVJbkJ5dGVzLCBhd2FpdCB0aGlzLmZpbGVzU2VydmljZS5sb2FkQnl0ZXNTaXplTGltaXQoKV0pXG4gICAgKTtcbiAgICB0aGlzLmVycm9ycyA9IHRydWU7XG4gICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0RXJyb3JzKHsgaW52YWxpZFNpemU6IHRydWUgfSk7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KG1zZywgeyBsaW1pdCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydE1lZ2FCeXRlc1RvQnl0ZXMobWF4RmlsZVNpemVJbk1lZ2FCeXRlczogU2l6ZUluTWVnYUJ5dGVzKTogU2l6ZUluQnl0ZXMge1xuICAgIHJldHVybiBtYXhGaWxlU2l6ZUluTWVnYUJ5dGVzICogMV8wNDhfNTc2O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlc05hbWVzQXNTdHJpbmcoZmlsZXM6IEZpbGVMaXN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbWFwKGZpbGVzLCAoeyBuYW1lIH0pID0+IG5hbWUpLmpvaW4oJywgJyk7XG4gIH1cblxuICBwcml2YXRlIGlzRmlsZXNBcnJheUVtcHR5KCkge1xuICAgIHJldHVybiBnZXQodGhpcywgJ2ZpbGVzLmxlbmd0aCcsIDApID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Rvb01hbnlGaWxlcygpIHtcbiAgICByZXR1cm4gZ2V0KHRoaXMsICdmaWxlcy5sZW5ndGgnLCAwKSA+IHRoaXMubWF4QWxsb3dlZEZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpbGVzQW5PYmplY3RPckFycmF5KCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5maWxlcyA9PT0gJ29iamVjdCc7XG4gIH1cblxuICBwcml2YXRlIGhhc0VtcHR5RmlsZXMoKSB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLmlzRmlsZXNBcnJheUVtcHR5KCkpIHtcbiAgICAgIHJlc3VsdCA9IHRoaXMuaXNBbnlGaWxlRW1wdHkoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbnlGaWxlRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNvbWUoQXJyYXkuZnJvbSh0aGlzLmZpbGVzKSwgWydzaXplJywgMF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckVycm9ycygpIHtcbiAgICBkZWxldGUgdGhpcy5lcnJvck1lc3NhZ2U7XG4gICAgdGhpcy5lcnJvcnMgPSBmYWxzZTtcbiAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRFcnJvcnMobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHByZXZlbnREZWZhdWx0KCRldmVudD8pIHtcbiAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbXBvc2UoZmlsZXM6IEZpbGVMaXN0KTogRHJvcHBlZEZpbGVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oZmlsZXMpLm1hcChmaWxlID0+ICh7XG4gICAgICBmaWxlLFxuICAgICAgcmVhZEFzSnNvbjogYXN5bmMgKCkgPT4gSlNPTi5wYXJzZShhd2FpdCB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5URVhUKSksXG4gICAgICByZWFkQXNUZXh0OiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5URVhUKSxcbiAgICAgIHJlYWRBc0FycmF5QnVmZmVyOiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5BUlJBWV9CVUZGRVIpLFxuICAgICAgcmVhZEFzQmluYXJ5U3RyaW5nOiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5CSU5BUllfU1RSSU5HKSxcbiAgICAgIHJlYWRBc0RhdGFVUkw6IGFzeW5jICgpID0+IHRoaXMucmVhZChmaWxlLCBSZWFkQXNUeXBlLkRBVEFfVVJMKVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVhZChmaWxlLCB0eXBlOiBSZWFkQXNUeXBlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUmVhZEFzVHlwZS5URVhUOiB7XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBSZWFkQXNUeXBlLkFSUkFZX0JVRkZFUjoge1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFJlYWRBc1R5cGUuQklOQVJZX1NUUklORzoge1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBSZWFkQXNUeXBlLkRBVEFfVVJMOiB7XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB0aGlzLm9uTG9hZChyZWFkZXIsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9uTG9hZChyZWFkZXIsIHJlc29sdmUsIHJlamVjdCkge1xuICAgIGlmIChyZWFkZXIucmVhZHlTdGF0ZSAhPT0gMikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmVhZGVyLmVycm9yKSB7XG4gICAgICByZWplY3QocmVhZGVyLmVycm9yKTtcbiAgICB9XG4gICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3BwZWRGaWxlIHtcbiAgZmlsZTogRmlsZTtcbiAgcmVhZEFzVGV4dCgpO1xuICByZWFkQXNBcnJheUJ1ZmZlcigpO1xuICByZWFkQXNCaW5hcnlTdHJpbmcoKTtcbiAgcmVhZEFzRGF0YVVSTCgpO1xuICByZWFkQXNKc29uKCk7XG59XG5cbmVudW0gUmVhZEFzVHlwZSB7XG4gIFRFWFQsXG4gIERBVEFfVVJMLFxuICBBUlJBWV9CVUZGRVIsXG4gIEJJTkFSWV9TVFJJTkdcbn1cblxudHlwZSBTaXplSW5NZWdhQnl0ZXMgPSBudW1iZXI7XG50eXBlIFNpemVJbkJ5dGVzID0gbnVtYmVyO1xuIiwiPGRpdlxuICBjbGFzcz1cImRyb3Atem9uZVwiXG4gIFtzdHlsZS5wb2ludGVyRXZlbnRzXT1cImxvYWRpbmcgPyAnbm9uZScgOiAnYXV0bydcIlxuICBbc3R5bGUuZGlzcGxheV09XCJpc092ZXIgfHwgYWx3YXlzU2hvdyB8fCBsb2FkaW5nID8gJ2Jsb2NrJyA6ICdub25lJ1wiXG4gIHRhYmluZGV4PVwiMFwiXG4gICpuZ0lmPVwiIXNob3VsZFNob3dGaWxlc0xpc3QoKVwiXG4gIFtuZ0NsYXNzXT1cInsgJ2hhcy1lcnJvcnMnOiBlcnJvcnMsIGRpc2FibGVkOiBmb3JtQ29udHJvbD8uZGlzYWJsZWQgfVwiXG4gICN6b25lXG4gIChkcmFnbGVhdmUpPVwic3RvcERyYWdnaW5nKClcIlxuICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gIChkcmFnb3Zlcik9XCJvbk92ZXIoKVwiXG4gIChjbGljayk9XCJzaG93UGlja2VyKCRldmVudClcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmaWxlLXBsYWNlaG9sZGVyXCJcbiAgICBkYXRhLWN5PVwiYzh5LWZpbGUtcGxhY2Vob2xkZXItLWRyb3Atem9uZVwiXG4gICAgW25nQ2xhc3NdPVwieyAnZHJhZy1vdmVyJzogaXNPdmVyIH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkLWZsZXggZC1jb2wgcC00IGZsZXgtY2VudGVyXCJcbiAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInByb2dyZXNzIHByb2dyZXNzLXN0cmlwZWQgYWN0aXZlIG0tMFwiXG4gICAgICAgIHN0eWxlPVwibWluLXdpZHRoOiA1MCVcIlxuICAgICAgICAqbmdJZj1cInByb2dyZXNzICE9PSAtMVwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhclwiXG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgICBhcmlhLXZhbHVlbm93PVwiMFwiXG4gICAgICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxuICAgICAgICAgIGFyaWEtdmFsdWVtYXg9XCIxMDBcIlxuICAgICAgICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXG4gICAgICAgID48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNwaW5uZXItc25ha2VcIlxuICAgICAgICAqbmdJZj1cInByb2dyZXNzID09PSAtMVwiXG4gICAgICA+PC9kaXY+XG4gICAgICA8cFxuICAgICAgICBjbGFzcz1cIm0tdC1hdXRvIG0tYi1hdXRvIG0tci04XCJcbiAgICAgICAgKm5nSWY9XCIhaGFzRHJvcEFyZWFTbWFsbENsYXNzXCJcbiAgICAgID5cbiAgICAgICAge3sgbG9hZGluZ01lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImhpbnQtcGxhY2Vob2xkZXIgcG9pbnRlclwiXG4gICAgICAqbmdJZj1cIiFsb2FkaW5nXCJcbiAgICAgIGRhdGEtY3k9XCJkcm9wLXpvbmUtLWhpbnQtcGxhY2Vob2xkZXJcIlxuICAgID5cbiAgICAgIDxpIGNsYXNzPVwiZGx0LWM4eS1pY29uLXt7IGljb24gfX1cIj48L2k+XG4gICAgICA8cCAqbmdJZj1cIiFlcnJvcnNcIj5cbiAgICAgICAgPGI+e3sgbWVzc2FnZSB8IHRyYW5zbGF0ZSB9fTwvYj5cbiAgICAgICAgPGJyIC8+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCJhbHdheXNTaG93ICYmIGNsaWNrVG9PcGVuXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgIDwvcD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJoYXMtZXJyb3JzXCJcbiAgICAgICAgKm5nSWY9XCJlcnJvcnNcIlxuICAgICAgPlxuICAgICAgICA8cCBjbGFzcz1cImZvcm0tY29udHJvbC1mZWVkYmFjay1tZXNzYWdlXCI+XG4gICAgICAgICAge3sgZXJyb3JNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2XG4gIGNsYXNzPVwiZHJvcC16b25lXCJcbiAgW3N0eWxlLmRpc3BsYXldPVwiaXNPdmVyIHx8IGFsd2F5c1Nob3cgfHwgbG9hZGluZyA/ICdibG9jaycgOiAnbm9uZSdcIlxuICB0YWJpbmRleD1cIjBcIlxuICAqbmdJZj1cInNob3VsZFNob3dGaWxlc0xpc3QoKVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInAtYWJzb2x1dGUgcC00IGZpdC13IGZpdC1oIGQtZmxleCBkLWNvbCBqLWMtY2VudGVyIGEtaS1jZW50ZXJcIlxuICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByb2dyZXNzIHByb2dyZXNzLXN0cmlwZWQgYWN0aXZlIG0tMFwiXG4gICAgICBzdHlsZT1cIm1pbi13aWR0aDogODAlXCJcbiAgICAgICpuZ0lmPVwicHJvZ3Jlc3MgIT09IC0xXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MtYmFyXCJcbiAgICAgICAgW3N0eWxlLndpZHRoXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcm9ncmVzcyArICclJ1wiXG4gICAgICAgIGFyaWEtdmFsdWVub3c9XCIwXCJcbiAgICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxuICAgICAgICBhcmlhLXZhbHVlbWF4PVwiMTAwXCJcbiAgICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwicHJvZ3Jlc3MgPT09IC0xXCI+XG4gICAgICA8Yzh5LWxvYWRpbmc+PC9jOHktbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgICA8cFxuICAgICAgY2xhc3M9XCJtLWItOFwiXG4gICAgICAqbmdJZj1cIiFoYXNEcm9wQXJlYVNtYWxsQ2xhc3NcIlxuICAgID5cbiAgICAgIDxzdHJvbmc+XG4gICAgICAgIHt7IGxvYWRpbmdNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3N0cm9uZz5cbiAgICA8L3A+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmaWxlLXBsYWNlaG9sZGVyIHAtNFwiXG4gICAgKm5nSWY9XCIhbG9hZGluZ1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHAtNCBhLWktY2VudGVyXCI+XG4gICAgICA8aVxuICAgICAgICBjbGFzcz1cImljb24tMjAgbS1yLThcIlxuICAgICAgICBjOHlJY29uPVwiZmlsZS1vXCJcbiAgICAgID48L2k+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgICB0aXRsZT1cInt7IGZpbGVzTmFtZVN0cmluZyB9fVwiXG4gICAgICA+XG4gICAgICAgIHt7IGZpbGVzTmFtZVN0cmluZyB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBidG4tZG90IGJ0bi1kb3QtLWRhbmdlciBzaG93T25Ib3ZlciBtLWwtYXV0b1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ1JlbW92ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZW1vdmUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxpXG4gICAgICAgICAgYzh5SWNvbj1cIm1pbnVzLWNpcmNsZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlKClcIlxuICAgICAgICA+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48bGFiZWxcbiAgY2xhc3M9XCJzci1vbmx5XCJcbiAgZm9yPVwiZmlsZVwiXG4+XG4gIHt7ICdTZWxlY3QgZmlsZScgfCB0cmFuc2xhdGUgfX1cbjwvbGFiZWw+XG48aW5wdXRcbiAgY2xhc3M9XCJoaWRkZW5cIlxuICBpZD1cImZpbGVcIlxuICB0eXBlPVwiZmlsZVwiXG4gICNwaWNrZXJcbiAgKm5nSWY9XCJjbGlja1RvT3BlblwiXG4gIChjaGFuZ2UpPVwib25QaWNrKCRldmVudClcIlxuICAoY2xpY2spPVwicGlja2VyLmZvY3VzKClcIlxuICAoYmx1cik9XCJvblRvdWNoZWQoKVwiXG4gIFthY2NlcHRdPVwiYWNjZXB0ZWRFeHRzXCJcbiAgW211bHRpcGxlXT1cIm1heEFsbG93ZWRGaWxlcyA+IDFcIlxuICBbZGlzYWJsZWRdPVwiZm9ybUNvbnRyb2w/LmRpc2FibGVkXCJcbi8+XG48ZGl2XG4gICNhcmVhXG4gIFtoaWRkZW5dPVwiaXNPdmVyIHx8IGxvYWRpbmdcIlxuICAoZHJhZ292ZXIpPVwidG9nZ2xlKClcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
@@ -179,11 +179,11 @@ export class HelpComponent {
179
179
  }
180
180
  }
181
181
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HelpComponent, deps: [{ token: i1.DocsService }, { token: i2.HelpService }], target: i0.ɵɵFactoryTarget.Component }); }
182
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: HelpComponent, selector: "c8y-help", inputs: { src: "src", isCollapsed: "isCollapsed", priority: "priority", icon: "icon" }, ngImport: i0, template: "<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right m-l-8\"\n [priority]=\"priority\"\n *ngIf=\"!!(helpService.contextHelp | async)\"\n>\n <button\n class=\"btn-help\"\n [attr.aria-label]=\"'About this page' | translate\"\n tooltip=\"{{ 'About this page' | translate }}\"\n placement=\"left\"\n container=\"body\"\n aria-controls=\"collapseHelp\"\n [attr.aria-expanded]=\"!isCollapsed\"\n type=\"button\"\n data-cy=\"help--help-btn\"\n [delay]=\"750\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n ></button>\n</c8y-action-bar-item>\n\n<div\n class=\"c8y-help-drawer\"\n id=\"collapseHelp\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n (collapsed)=\"onCollapsed()\"\n>\n <div\n [ngClass]=\"{ 'c8y-help-drawer-block': isInit }\"\n #docOutlet\n data-cy=\"c8y-help--c8y-help-drawer-block\"\n >\n <div *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!isLoading\">\n <div class=\"d-flex\">\n <i\n class=\"c8y-icon-duocolor icon-48\"\n [c8yIcon]=\"!hasError ? icon : 'unlink'\"\n [ngClass]=\"{ 'text-warning': hasError, 'text-muted': !hasError }\"\n ></i>\n <div\n class=\"p-l-16 flex-grow\"\n *ngIf=\"!hasError\"\n >\n <div\n class=\"alert alert-info m-b-16\"\n *ngIf=\"\n !helpService.isSupportedLanguage() &&\n !showLangWarning &&\n !helpService.isWarningAlertViewed\n \"\n >\n <button\n class=\"close\"\n [attr.aria-label]=\"'Close' | translate\"\n type=\"button\"\n (click)=\"\n showLangWarning = !showLangWarning;\n helpService.isWarningAlertViewed = !helpService.isWarningAlertViewed\n \"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <p>\n {{ 'Help content is only available in English.' | translate }}\n </p>\n </div>\n <h4 class=\"text-bold text-primary p-t-16 m-b-16\">\n {{ title }}\n </h4>\n <div\n class=\"help-content\"\n id=\"helpContent\"\n [innerHTML]=\"sectionContent\"\n data-cy=\"help--c8y-help-content\"\n ></div>\n </div>\n\n <div\n class=\"p-l-16 p-t-16 flex-grow\"\n *ngIf=\"hasError\"\n >\n <h4\n class=\"text-bold m-b-16\"\n translate\n >\n Content couldn't be loaded.\n </h4>\n <div class=\"help-content\">\n <p translate>Check internet connection or reload page.</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"c8y-help-drawer-footer animated fadeIn\"\n style=\"animation-delay: 0.35s\"\n *ngIf=\"!isLoading && !hasError\"\n data-cy=\"c8y-help--c8y-help-drawer-footer\"\n >\n <button\n class=\"btn btn-default\"\n [title]=\"'Close help' | translate\"\n aria-controls=\"collapseHelp\"\n [attr.aria-expanded]=\"!isCollapsed\"\n type=\"button\"\n (click)=\"toggle()\"\n translate\n >\n Close\n </button>\n <a\n class=\"btn btn-primary\"\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n target=\"_blank\"\n data-cy=\"help--href-value\"\n data-cy=\"c8y-help--user-guide\"\n rel=\"noopener noreferrer\"\n >\n <span\n translate\n *ngIf=\"!hasError\"\n >\n Open the\n <span>user documentation</span>\n </span>\n <span\n translate\n *ngIf=\"hasError\"\n >\n Check the\n <span>user documentation</span>\n </span>\n </a>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.LoadingComponent, selector: "c8y-loading" }, { kind: "directive", type: i7.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "directive", type: i8.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: i9.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: i10.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: i11.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
182
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: HelpComponent, selector: "c8y-help", inputs: { src: "src", isCollapsed: "isCollapsed", priority: "priority", icon: "icon" }, ngImport: i0, template: "<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right m-l-8\"\n [priority]=\"priority\"\n *ngIf=\"!!(helpService.contextHelp | async)\"\n>\n <button\n class=\"btn-help\"\n [attr.aria-label]=\"'About this page' | translate\"\n tooltip=\"{{ 'About this page' | translate }}\"\n placement=\"left\"\n container=\"body\"\n aria-controls=\"collapseHelp\"\n [attr.aria-expanded]=\"!isCollapsed\"\n type=\"button\"\n data-cy=\"help--help-btn\"\n [delay]=\"750\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n ></button>\n</c8y-action-bar-item>\n\n<div\n class=\"c8y-help-drawer\"\n id=\"collapseHelp\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n (collapsed)=\"onCollapsed()\"\n>\n <div\n [ngClass]=\"{ 'c8y-help-drawer-block': isInit }\"\n #docOutlet\n data-cy=\"c8y-help--c8y-help-drawer-block\"\n >\n <div *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!isLoading\">\n <div class=\"d-flex\">\n <i\n class=\"c8y-icon-duocolor icon-48\"\n [c8yIcon]=\"!hasError ? icon : 'unlink'\"\n [ngClass]=\"{ 'text-warning': hasError, 'text-muted': !hasError }\"\n ></i>\n <div\n class=\"p-l-16 flex-grow\"\n *ngIf=\"!hasError\"\n >\n <div\n class=\"alert alert-info m-b-16\"\n *ngIf=\"\n !helpService.isSupportedLanguage() &&\n !showLangWarning &&\n !helpService.isWarningAlertViewed\n \"\n >\n <button\n class=\"close\"\n [attr.aria-label]=\"'Close' | translate\"\n type=\"button\"\n (click)=\"\n showLangWarning = !showLangWarning;\n helpService.isWarningAlertViewed = !helpService.isWarningAlertViewed\n \"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <p>\n {{ 'Help content is only available in English.' | translate }}\n </p>\n </div>\n <h4 class=\"text-bold text-primary p-t-16 m-b-16\">\n {{ title }}\n </h4>\n <div\n class=\"help-content\"\n id=\"helpContent\"\n [innerHTML]=\"sectionContent\"\n data-cy=\"help--c8y-help-content\"\n ></div>\n </div>\n\n <div\n class=\"p-l-16 p-t-16 flex-grow\"\n *ngIf=\"hasError\"\n >\n <h4\n class=\"text-bold m-b-16\"\n translate\n >\n Content couldn't be loaded.\n </h4>\n <div class=\"help-content\">\n <p translate>Check internet connection or reload page.</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"c8y-help-drawer-footer animated fadeIn\"\n style=\"animation-delay: 0.35s\"\n *ngIf=\"!isLoading && !hasError\"\n data-cy=\"c8y-help--c8y-help-drawer-footer\"\n >\n <button\n class=\"btn btn-default\"\n [title]=\"'Close help' | translate\"\n aria-controls=\"collapseHelp\"\n [attr.aria-expanded]=\"!isCollapsed\"\n type=\"button\"\n (click)=\"toggle()\"\n translate\n >\n Close\n </button>\n <a\n class=\"btn btn-primary\"\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n target=\"_blank\"\n data-cy=\"c8y-help--user-guide\"\n rel=\"noopener noreferrer\"\n >\n <span\n translate\n *ngIf=\"!hasError\"\n >\n Open the\n <span>user documentation</span>\n </span>\n <span\n translate\n *ngIf=\"hasError\"\n >\n Check the\n <span>user documentation</span>\n </span>\n </a>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.LoadingComponent, selector: "c8y-loading" }, { kind: "directive", type: i7.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "directive", type: i8.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: i9.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: i10.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: i11.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] }); }
183
183
  }
184
184
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HelpComponent, decorators: [{
185
185
  type: Component,
186
- args: [{ selector: 'c8y-help', template: "<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right m-l-8\"\n [priority]=\"priority\"\n *ngIf=\"!!(helpService.contextHelp | async)\"\n>\n <button\n class=\"btn-help\"\n [attr.aria-label]=\"'About this page' | translate\"\n tooltip=\"{{ 'About this page' | translate }}\"\n placement=\"left\"\n container=\"body\"\n aria-controls=\"collapseHelp\"\n [attr.aria-expanded]=\"!isCollapsed\"\n type=\"button\"\n data-cy=\"help--help-btn\"\n [delay]=\"750\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n ></button>\n</c8y-action-bar-item>\n\n<div\n class=\"c8y-help-drawer\"\n id=\"collapseHelp\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n (collapsed)=\"onCollapsed()\"\n>\n <div\n [ngClass]=\"{ 'c8y-help-drawer-block': isInit }\"\n #docOutlet\n data-cy=\"c8y-help--c8y-help-drawer-block\"\n >\n <div *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!isLoading\">\n <div class=\"d-flex\">\n <i\n class=\"c8y-icon-duocolor icon-48\"\n [c8yIcon]=\"!hasError ? icon : 'unlink'\"\n [ngClass]=\"{ 'text-warning': hasError, 'text-muted': !hasError }\"\n ></i>\n <div\n class=\"p-l-16 flex-grow\"\n *ngIf=\"!hasError\"\n >\n <div\n class=\"alert alert-info m-b-16\"\n *ngIf=\"\n !helpService.isSupportedLanguage() &&\n !showLangWarning &&\n !helpService.isWarningAlertViewed\n \"\n >\n <button\n class=\"close\"\n [attr.aria-label]=\"'Close' | translate\"\n type=\"button\"\n (click)=\"\n showLangWarning = !showLangWarning;\n helpService.isWarningAlertViewed = !helpService.isWarningAlertViewed\n \"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <p>\n {{ 'Help content is only available in English.' | translate }}\n </p>\n </div>\n <h4 class=\"text-bold text-primary p-t-16 m-b-16\">\n {{ title }}\n </h4>\n <div\n class=\"help-content\"\n id=\"helpContent\"\n [innerHTML]=\"sectionContent\"\n data-cy=\"help--c8y-help-content\"\n ></div>\n </div>\n\n <div\n class=\"p-l-16 p-t-16 flex-grow\"\n *ngIf=\"hasError\"\n >\n <h4\n class=\"text-bold m-b-16\"\n translate\n >\n Content couldn't be loaded.\n </h4>\n <div class=\"help-content\">\n <p translate>Check internet connection or reload page.</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"c8y-help-drawer-footer animated fadeIn\"\n style=\"animation-delay: 0.35s\"\n *ngIf=\"!isLoading && !hasError\"\n data-cy=\"c8y-help--c8y-help-drawer-footer\"\n >\n <button\n class=\"btn btn-default\"\n [title]=\"'Close help' | translate\"\n aria-controls=\"collapseHelp\"\n [attr.aria-expanded]=\"!isCollapsed\"\n type=\"button\"\n (click)=\"toggle()\"\n translate\n >\n Close\n </button>\n <a\n class=\"btn btn-primary\"\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n target=\"_blank\"\n data-cy=\"help--href-value\"\n data-cy=\"c8y-help--user-guide\"\n rel=\"noopener noreferrer\"\n >\n <span\n translate\n *ngIf=\"!hasError\"\n >\n Open the\n <span>user documentation</span>\n </span>\n <span\n translate\n *ngIf=\"hasError\"\n >\n Check the\n <span>user documentation</span>\n </span>\n </a>\n </div>\n</div>\n" }]
186
+ args: [{ selector: 'c8y-help', template: "<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right m-l-8\"\n [priority]=\"priority\"\n *ngIf=\"!!(helpService.contextHelp | async)\"\n>\n <button\n class=\"btn-help\"\n [attr.aria-label]=\"'About this page' | translate\"\n tooltip=\"{{ 'About this page' | translate }}\"\n placement=\"left\"\n container=\"body\"\n aria-controls=\"collapseHelp\"\n [attr.aria-expanded]=\"!isCollapsed\"\n type=\"button\"\n data-cy=\"help--help-btn\"\n [delay]=\"750\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n ></button>\n</c8y-action-bar-item>\n\n<div\n class=\"c8y-help-drawer\"\n id=\"collapseHelp\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n (collapsed)=\"onCollapsed()\"\n>\n <div\n [ngClass]=\"{ 'c8y-help-drawer-block': isInit }\"\n #docOutlet\n data-cy=\"c8y-help--c8y-help-drawer-block\"\n >\n <div *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!isLoading\">\n <div class=\"d-flex\">\n <i\n class=\"c8y-icon-duocolor icon-48\"\n [c8yIcon]=\"!hasError ? icon : 'unlink'\"\n [ngClass]=\"{ 'text-warning': hasError, 'text-muted': !hasError }\"\n ></i>\n <div\n class=\"p-l-16 flex-grow\"\n *ngIf=\"!hasError\"\n >\n <div\n class=\"alert alert-info m-b-16\"\n *ngIf=\"\n !helpService.isSupportedLanguage() &&\n !showLangWarning &&\n !helpService.isWarningAlertViewed\n \"\n >\n <button\n class=\"close\"\n [attr.aria-label]=\"'Close' | translate\"\n type=\"button\"\n (click)=\"\n showLangWarning = !showLangWarning;\n helpService.isWarningAlertViewed = !helpService.isWarningAlertViewed\n \"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <p>\n {{ 'Help content is only available in English.' | translate }}\n </p>\n </div>\n <h4 class=\"text-bold text-primary p-t-16 m-b-16\">\n {{ title }}\n </h4>\n <div\n class=\"help-content\"\n id=\"helpContent\"\n [innerHTML]=\"sectionContent\"\n data-cy=\"help--c8y-help-content\"\n ></div>\n </div>\n\n <div\n class=\"p-l-16 p-t-16 flex-grow\"\n *ngIf=\"hasError\"\n >\n <h4\n class=\"text-bold m-b-16\"\n translate\n >\n Content couldn't be loaded.\n </h4>\n <div class=\"help-content\">\n <p translate>Check internet connection or reload page.</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"c8y-help-drawer-footer animated fadeIn\"\n style=\"animation-delay: 0.35s\"\n *ngIf=\"!isLoading && !hasError\"\n data-cy=\"c8y-help--c8y-help-drawer-footer\"\n >\n <button\n class=\"btn btn-default\"\n [title]=\"'Close help' | translate\"\n aria-controls=\"collapseHelp\"\n [attr.aria-expanded]=\"!isCollapsed\"\n type=\"button\"\n (click)=\"toggle()\"\n translate\n >\n Close\n </button>\n <a\n class=\"btn btn-primary\"\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n target=\"_blank\"\n data-cy=\"c8y-help--user-guide\"\n rel=\"noopener noreferrer\"\n >\n <span\n translate\n *ngIf=\"!hasError\"\n >\n Open the\n <span>user documentation</span>\n </span>\n <span\n translate\n *ngIf=\"hasError\"\n >\n Check the\n <span>user documentation</span>\n </span>\n </a>\n </div>\n</div>\n" }]
187
187
  }], ctorParameters: function () { return [{ type: i1.DocsService }, { type: i2.HelpService }]; }, propDecorators: { src: [{
188
188
  type: Input
189
189
  }], isCollapsed: [{
@@ -193,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
193
193
  }], icon: [{
194
194
  type: Input
195
195
  }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2hlbHAvaGVscC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2hlbHAvaGVscC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBRTdDOzs7Ozs7OztHQVFHO0FBS0gsTUFBTSxPQUFPLGFBQWE7SUE2RHhCOztPQUVHO0lBQ0gsWUFDVSxXQUF3QixFQUN6QixXQUF3QjtRQUR2QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWpFakM7OztXQUdHO1FBRUgsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUVUOztXQUVHO1FBRUgsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbkI7O1dBRUc7UUFFSCxhQUFRLEdBQUcsUUFBUSxDQUFDO1FBUXBCOztXQUVHO1FBQ0gsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYOztXQUVHO1FBQ0gsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFFcEI7O1dBRUc7UUFDSCxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQjs7V0FFRztRQUNILGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFakI7O1dBRUc7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCOztXQUVHO1FBQ0gsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEI7O1dBRUc7UUFDSCxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBUVosQ0FBQztJQUVKOzs7O09BSUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7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QkFDL0M7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQzsrR0F6TFUsYUFBYTttR0FBYixhQUFhLHdJQ2pCMUIsbTlIQWlKQTs7NEZEaElhLGFBQWE7a0JBSnpCLFNBQVM7K0JBQ0UsVUFBVTs0SEFTcEIsR0FBRztzQkFERixLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSztnQkFPTixRQUFRO3NCQURQLEtBQUs7Z0JBT04sSUFBSTtzQkFESCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9jc1NlcnZpY2UgfSBmcm9tICcuLi9kb2NzL2RvY3Muc2VydmljZSc7XG5pbXBvcnQgeyBIZWxwU2VydmljZSB9IGZyb20gJy4vaGVscC5zZXJ2aWNlJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCB3aGljaCBzaG93cyBhIGNvbnRleHQgaGVscCBpblxuICogdGhlIGFjdGlvbiBiYXIuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxjOHktaGVscCBzcmM9XCIvZG9jcy9jb2NrcGl0L3dvcmtpbmctd2l0aC1kYXNoYm9hcmRzLyN3b3JraW5nLXdpdGgtZGFzaGJvYXJkc1wiPjwvYzh5LWhlbHA+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWhlbHAnLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVscC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSGVscENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgc291cmNlIG9mIHRoZSBkb2N1bWVudGF0aW9uLiBVc2VkIHRvIGxpbmsgdG8gdGhlIGRvY3VtZW50YXRpb24gYXMgd2VsbCBhc1xuICAgKiB0byBwYXJzZSB0aGUgc291cmNlIHRvIGRpc3BsYXkuXG4gICAqL1xuICBASW5wdXQoKVxuICBzcmMgPSAnJztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBoZWxwIGRpYWxvZyBpcyBjb2xsYXBzZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBpc0NvbGxhcHNlZCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmlvcml0eSB3aGVyZSB0aGUgaGVscCBpY29uIHNob3VsZCBiZSBzaG93biBpbiB0aGUgYWN0aW9uIGJhclxuICAgKi9cbiAgQElucHV0KClcbiAgcHJpb3JpdHkgPSBJbmZpbml0eTtcblxuICAvKipcbiAgICogQSBjdXN0b20gaWNvbi4gSWYgbm90IHNldCwgdGhlIG5hdmlnYXRvciBpY29uIGlzIHJlc29sdmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBpY29uO1xuXG4gIC8qKlxuICAgKiBBIHRpdGxlLiBTZXQgaW4gb3BlbiBieSBwYXNzaW5nIHRoZSBzb3VyY2UuXG4gICAqL1xuICB0aXRsZSA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdGlvbiBoZWFkaW5nIGluIHRoZSBkb2Mgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgc2VjdGlvbkhlYWRpbmcgPSAnJztcblxuICAvKipcbiAgICogVGhlIHNlY3Rpb24gY29udGVudCBpbiB0aGUgZG9jIHdoaWNoIGlzIGdvaW5nIHRvIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIHNlY3Rpb25Db250ZW50ID0gJyc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgY29tcG9uZW50IGlzIGxvYWRpbmcuXG4gICAqL1xuICBpc0xvYWRpbmcgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbXBvbmVudCBmYWlsZWQgbG9hZGluZyB0aGUgc291cmNlLlxuICAgKi9cbiAgaGFzRXJyb3IgPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIGEgd2FybmluZyBzaG91bGQgYmUgc2hvd24uXG4gICAqL1xuICBzaG93TGFuZ1dhcm5pbmcgPSBmYWxzZTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgaXNJbml0ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmUgT25seSBwcml2YXRlIERJXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRvY3NTZXJ2aWNlOiBEb2NzU2VydmljZSxcbiAgICBwdWJsaWMgaGVscFNlcnZpY2U6IEhlbHBTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogVGhlIGNvbXBvbmVudCBpcyBzaG93biBieSBkZWZhdWx0IGFuZCB0aGVyZWZvcmUgYnJlYWtzIGUyZSB0ZXN0LiBUaGlzIGlzXG4gICAqIHRvIHByZXZlbnQgdGhlIHZpc2liaWxpdHkgb24gZmlyc3QgbmF2aWdhdGlvbi5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25Db2xsYXBzZWQoKSB7XG4gICAgdGhpcy5pc0luaXQgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgVVJMIGJhc2VkIG9uIHRoZSBzcmMuIFRoZSBCYXNlIFVSTCBjYW4gYmUgc2V0IGluIHRoZSBhcHBsaWNhdGlvbiBvcHRpb25zIGRvY0Jhc2VVcmwuXG4gICAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBvZiB0aGUgaGVscCBvbiB0aGUgZ3VpZGUuXG4gICAqIEBwYXJhbSBpbmRleCBUaGlzIGZsYWcgaXMgdXNlZCB0byBjYWxsIHRoZSBpbmRleC5qc29uIGNvbnRlbnQgb2YgYSBndWlkZS4gRm9yIGV4YW1wbGUsIFwiaHR0cHM6Ly9jdW11bG9jaXR5LmNvbS9kb2NzL2NvY2twaXQvZGF0YS1leHBsb3Jlci9pbmRleC5qc29uXCIuXG4gICAqL1xuICBnZXRVcmwoc3JjID0gJycsIGluZGV4ID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGxldCBkb2NzVXJsOiBVUkw7XG5cbiAgICB0cnkge1xuICAgICAgZG9jc1VybCA9XG4gICAgICAgIHR5cGVvZiB0aGlzLmhlbHBTZXJ2aWNlLmNvbnRleHRIZWxwLnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gbmV3IFVSTCh0aGlzLmRvY3NTZXJ2aWNlLmdldFVybFdpdGhEb2NzVmVyc2lvbih0aGlzLmhlbHBTZXJ2aWNlLmNvbnRleHRIZWxwLnZhbHVlKSlcbiAgICAgICAgICA6IG5ldyBVUkwodGhpcy5kb2NzU2VydmljZS5nZXRCYXNlVXJsKCkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBkb2NzVXJsID0gbmV3IFVSTCh0aGlzLmRvY3NTZXJ2aWNlLmdldEJhc2VVcmwoKSk7XG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IFt1cmwsIGhhc2hGcmFnbWVudF0gPSBzcmMuc3BsaXQoJyMnKTtcbiAgICB0aGlzLnNlY3Rpb25IZWFkaW5nID0gaGFzaEZyYWdtZW50O1xuXG4gICAgaWYgKGluZGV4KSB7XG4gICAgICBzcmMgPSBgJHt1cmx9aW5kZXguanNvbmA7XG4gICAgICBkb2NzVXJsLnBhdGhuYW1lICs9IHNyYztcbiAgICB9IGVsc2Uge1xuICAgICAgZG9jc1VybC5wYXRobmFtZSArPSB1cmw7XG4gICAgICBpZiAoaGFzaEZyYWdtZW50KSB7XG4gICAgICAgIGRvY3NVcmwuaGFzaCA9IGhhc2hGcmFnbWVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkb2NzVXJsLnBhdGhuYW1lID0gZG9jc1VybC5wYXRobmFtZS5yZXBsYWNlKC9cXC8rL2csICcvJyk7XG4gICAgcmV0dXJuIGRvY3NVcmwuaHJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBoZWxwIGRpYWxvZy5cbiAgICovXG4gIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5pc0NvbGxhcHNlZCkge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGhlbHAgZGlhbG9nLlxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgdGhpcy5jbGVhbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBoZWxwIGRpYWxvZy5cbiAgICovXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnJlcXVlc3RDb250ZW50KCk7XG4gICAgaWYgKCF0aGlzLmljb24pIHtcbiAgICAgIHRoaXMuaWNvbiA9IHRoaXMucmVzb2x2ZUljb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlcXVlc3RDb250ZW50KCkge1xuICAgIGNvbnN0IHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB0aGlzLnJlbmRlcihyZXEpO1xuICAgIHJlcS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4gdGhpcy5yZW5kZXIocmVxKSk7XG4gICAgcmVxLm9wZW4oJ0dFVCcsIHRoaXMuZ2V0VXJsKHRoaXMuc3JjLCB0cnVlKSk7XG4gICAgcmVxLnJlc3BvbnNlVHlwZSA9ICdqc29uJztcbiAgICByZXEuc2V0UmVxdWVzdEhlYWRlcignQWNjZXB0JywgJ3RleHQvaHRtbCcpO1xuICAgIHJlcS5zZW5kKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFuKCkge1xuICAgIHRoaXMudGl0bGUgPSAnJztcbiAgICB0aGlzLmhhc0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy5zZWN0aW9uQ29udGVudCA9ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlSWNvbigpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaWNvbiA9IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbmF2IC5hY3RpdmUgaScpLmNsYXNzTGlzdCkuZmluZChcbiAgICAgICAgY2xhc3NlcyA9PiBjbGFzc2VzLnN0YXJ0c1dpdGgoJ2M4eS1pY29uLScpIHx8IGNsYXNzZXMuc3RhcnRzV2l0aCgnZGx0LWM4eS1pY29uLScpXG4gICAgICApO1xuICAgICAgcmV0dXJuIGljb24ucmVwbGFjZSgnZGx0LWM4eS1pY29uLScsICcnKS5yZXBsYWNlKCdjOHktaWNvbi0nLCAnYzh5LScpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICByZXR1cm4gJ2xpZmUtc2F2ZXInO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyKHJlcTogWE1MSHR0cFJlcXVlc3QpIHtcbiAgICBpZiAocmVxLnJlYWR5U3RhdGUgPT09IDQpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICBpZiAocmVxLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgY29uc3Qgc2VjdGlvbkRhdGEgPSByZXEucmVzcG9uc2VbdGhpcy5zZWN0aW9uSGVhZGluZ107XG4gICAgICAgIGlmIChzZWN0aW9uRGF0YSkge1xuICAgICAgICAgIHRoaXMudGl0bGUgPSBzZWN0aW9uRGF0YS50aXRsZTtcbiAgICAgICAgICB0aGlzLnNlY3Rpb25Db250ZW50ID0gc2VjdGlvbkRhdGEuaGVscGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCIncmlnaHQnXCJcbiAgaXRlbUNsYXNzPVwicHVsbC1yaWdodCBtLWwtOFwiXG4gIFtwcmlvcml0eV09XCJwcmlvcml0eVwiXG4gICpuZ0lmPVwiISEoaGVscFNlcnZpY2UuY29udGV4dEhlbHAgfCBhc3luYylcIlxuPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4taGVscFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQWJvdXQgdGhpcyBwYWdlJyB8IHRyYW5zbGF0ZVwiXG4gICAgdG9vbHRpcD1cInt7ICdBYm91dCB0aGlzIHBhZ2UnIHwgdHJhbnNsYXRlIH19XCJcbiAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICBhcmlhLWNvbnRyb2xzPVwiY29sbGFwc2VIZWxwXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiFpc0NvbGxhcHNlZFwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgZGF0YS1jeT1cImhlbHAtLWhlbHAtYnRuXCJcbiAgICBbZGVsYXldPVwiNzUwXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgW2FjdGlvbk5hbWVdPVwiaXNDb2xsYXBzZWQgPyAnaGVscE9wZW5lZCcgOiAnaGVscENsb3NlZCdcIlxuICAgIFthY3Rpb25EYXRhXT1cInsgc3JjOiBzcmMgfVwiXG4gID48L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGRpdlxuICBjbGFzcz1cImM4eS1oZWxwLWRyYXdlclwiXG4gIGlkPVwiY29sbGFwc2VIZWxwXCJcbiAgW2NvbGxhcHNlXT1cImlzQ29sbGFwc2VkXCJcbiAgW2lzQW5pbWF0ZWRdPVwidHJ1ZVwiXG4gIChjb2xsYXBzZWQpPVwib25Db2xsYXBzZWQoKVwiXG4+XG4gIDxkaXZcbiAgICBbbmdDbGFzc109XCJ7ICdjOHktaGVscC1kcmF3ZXItYmxvY2snOiBpc0luaXQgfVwiXG4gICAgI2RvY091dGxldFxuICAgIGRhdGEtY3k9XCJjOHktaGVscC0tYzh5LWhlbHAtZHJhd2VyLWJsb2NrXCJcbiAgPlxuICAgIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgICAgIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cImM4eS1pY29uLWR1b2NvbG9yIGljb24tNDhcIlxuICAgICAgICAgIFtjOHlJY29uXT1cIiFoYXNFcnJvciA/IGljb24gOiAndW5saW5rJ1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAndGV4dC13YXJuaW5nJzogaGFzRXJyb3IsICd0ZXh0LW11dGVkJzogIWhhc0Vycm9yIH1cIlxuICAgICAgICA+PC9pPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJwLWwtMTYgZmxleC1ncm93XCJcbiAgICAgICAgICAqbmdJZj1cIiFoYXNFcnJvclwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm8gbS1iLTE2XCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICFoZWxwU2VydmljZS5pc1N1cHBvcnRlZExhbmd1YWdlKCkgJiZcbiAgICAgICAgICAgICAgIXNob3dMYW5nV2FybmluZyAmJlxuICAgICAgICAgICAgICAhaGVscFNlcnZpY2UuaXNXYXJuaW5nQWxlcnRWaWV3ZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImNsb3NlXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ2xvc2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICBzaG93TGFuZ1dhcm5pbmcgPSAhc2hvd0xhbmdXYXJuaW5nO1xuICAgICAgICAgICAgICAgIGhlbHBTZXJ2aWNlLmlzV2FybmluZ0FsZXJ0Vmlld2VkID0gIWhlbHBTZXJ2aWNlLmlzV2FybmluZ0FsZXJ0Vmlld2VkXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPsOXPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5DbG9zZTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIHt7ICdIZWxwIGNvbnRlbnQgaXMgb25seSBhdmFpbGFibGUgaW4gRW5nbGlzaC4nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC1ib2xkIHRleHQtcHJpbWFyeSBwLXQtMTYgbS1iLTE2XCI+XG4gICAgICAgICAgICB7eyB0aXRsZSB9fVxuICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJoZWxwLWNvbnRlbnRcIlxuICAgICAgICAgICAgaWQ9XCJoZWxwQ29udGVudFwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cInNlY3Rpb25Db250ZW50XCJcbiAgICAgICAgICAgIGRhdGEtY3k9XCJoZWxwLS1jOHktaGVscC1jb250ZW50XCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInAtbC0xNiBwLXQtMTYgZmxleC1ncm93XCJcbiAgICAgICAgICAqbmdJZj1cImhhc0Vycm9yXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxoNFxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvbGQgbS1iLTE2XCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIENvbnRlbnQgY291bGRuJ3QgYmUgbG9hZGVkLlxuICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtY29udGVudFwiPlxuICAgICAgICAgICAgPHAgdHJhbnNsYXRlPkNoZWNrIGludGVybmV0IGNvbm5lY3Rpb24gb3IgcmVsb2FkIHBhZ2UuPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYzh5LWhlbHAtZHJhd2VyLWZvb3RlciBhbmltYXRlZCBmYWRlSW5cIlxuICAgIHN0eWxlPVwiYW5pbWF0aW9uLWRlbGF5OiAwLjM1c1wiXG4gICAgKm5nSWY9XCIhaXNMb2FkaW5nICYmICFoYXNFcnJvclwiXG4gICAgZGF0YS1jeT1cImM4eS1oZWxwLS1jOHktaGVscC1kcmF3ZXItZm9vdGVyXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgIFt0aXRsZV09XCInQ2xvc2UgaGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgYXJpYS1jb250cm9scz1cImNvbGxhcHNlSGVscFwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiFpc0NvbGxhcHNlZFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGUoKVwiXG4gICAgICB0cmFuc2xhdGVcbiAgICA+XG4gICAgICBDbG9zZVxuICAgIDwvYnV0dG9uPlxuICAgIDxhXG4gICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICBocmVmPVwie3sgaGFzRXJyb3IgPyBnZXRVcmwoKSA6IGdldFVybChzcmMpIH19XCJcbiAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICBkYXRhLWN5PVwiaGVscC0taHJlZi12YWx1ZVwiXG4gICAgICBkYXRhLWN5PVwiYzh5LWhlbHAtLXVzZXItZ3VpZGVcIlxuICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICpuZ0lmPVwiIWhhc0Vycm9yXCJcbiAgICAgID5cbiAgICAgICAgT3BlbiB0aGVcbiAgICAgICAgPHNwYW4+dXNlciBkb2N1bWVudGF0aW9uPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICpuZ0lmPVwiaGFzRXJyb3JcIlxuICAgICAgPlxuICAgICAgICBDaGVjayB0aGVcbiAgICAgICAgPHNwYW4+dXNlciBkb2N1bWVudGF0aW9uPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2hlbHAvaGVscC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2hlbHAvaGVscC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBRTdDOzs7Ozs7OztHQVFHO0FBS0gsTUFBTSxPQUFPLGFBQWE7SUE2RHhCOztPQUVHO0lBQ0gsWUFDVSxXQUF3QixFQUN6QixXQUF3QjtRQUR2QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWpFakM7OztXQUdHO1FBRUgsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUVUOztXQUVHO1FBRUgsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbkI7O1dBRUc7UUFFSCxhQUFRLEdBQUcsUUFBUSxDQUFDO1FBUXBCOztXQUVHO1FBQ0gsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYOztXQUVHO1FBQ0gsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFFcEI7O1dBRUc7UUFDSCxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVwQjs7V0FFRztRQUNILGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFakI7O1dBRUc7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCOztXQUVHO1FBQ0gsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEI7O1dBRUc7UUFDSCxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBUVosQ0FBQztJQUVKOzs7O09BSUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7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QkFDL0M7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQzsrR0F6TFUsYUFBYTttR0FBYixhQUFhLHdJQ2pCMUIsKzZIQWdKQTs7NEZEL0hhLGFBQWE7a0JBSnpCLFNBQVM7K0JBQ0UsVUFBVTs0SEFTcEIsR0FBRztzQkFERixLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSztnQkFPTixRQUFRO3NCQURQLEtBQUs7Z0JBT04sSUFBSTtzQkFESCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9jc1NlcnZpY2UgfSBmcm9tICcuLi9kb2NzL2RvY3Muc2VydmljZSc7XG5pbXBvcnQgeyBIZWxwU2VydmljZSB9IGZyb20gJy4vaGVscC5zZXJ2aWNlJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCB3aGljaCBzaG93cyBhIGNvbnRleHQgaGVscCBpblxuICogdGhlIGFjdGlvbiBiYXIuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxjOHktaGVscCBzcmM9XCIvZG9jcy9jb2NrcGl0L3dvcmtpbmctd2l0aC1kYXNoYm9hcmRzLyN3b3JraW5nLXdpdGgtZGFzaGJvYXJkc1wiPjwvYzh5LWhlbHA+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWhlbHAnLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVscC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSGVscENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgc291cmNlIG9mIHRoZSBkb2N1bWVudGF0aW9uLiBVc2VkIHRvIGxpbmsgdG8gdGhlIGRvY3VtZW50YXRpb24gYXMgd2VsbCBhc1xuICAgKiB0byBwYXJzZSB0aGUgc291cmNlIHRvIGRpc3BsYXkuXG4gICAqL1xuICBASW5wdXQoKVxuICBzcmMgPSAnJztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBoZWxwIGRpYWxvZyBpcyBjb2xsYXBzZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBpc0NvbGxhcHNlZCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmlvcml0eSB3aGVyZSB0aGUgaGVscCBpY29uIHNob3VsZCBiZSBzaG93biBpbiB0aGUgYWN0aW9uIGJhclxuICAgKi9cbiAgQElucHV0KClcbiAgcHJpb3JpdHkgPSBJbmZpbml0eTtcblxuICAvKipcbiAgICogQSBjdXN0b20gaWNvbi4gSWYgbm90IHNldCwgdGhlIG5hdmlnYXRvciBpY29uIGlzIHJlc29sdmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBpY29uO1xuXG4gIC8qKlxuICAgKiBBIHRpdGxlLiBTZXQgaW4gb3BlbiBieSBwYXNzaW5nIHRoZSBzb3VyY2UuXG4gICAqL1xuICB0aXRsZSA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdGlvbiBoZWFkaW5nIGluIHRoZSBkb2Mgd2hpY2ggaXMgZ29pbmcgdG8gYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgc2VjdGlvbkhlYWRpbmcgPSAnJztcblxuICAvKipcbiAgICogVGhlIHNlY3Rpb24gY29udGVudCBpbiB0aGUgZG9jIHdoaWNoIGlzIGdvaW5nIHRvIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIHNlY3Rpb25Db250ZW50ID0gJyc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgY29tcG9uZW50IGlzIGxvYWRpbmcuXG4gICAqL1xuICBpc0xvYWRpbmcgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbXBvbmVudCBmYWlsZWQgbG9hZGluZyB0aGUgc291cmNlLlxuICAgKi9cbiAgaGFzRXJyb3IgPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIGEgd2FybmluZyBzaG91bGQgYmUgc2hvd24uXG4gICAqL1xuICBzaG93TGFuZ1dhcm5pbmcgPSBmYWxzZTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgaXNJbml0ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmUgT25seSBwcml2YXRlIERJXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRvY3NTZXJ2aWNlOiBEb2NzU2VydmljZSxcbiAgICBwdWJsaWMgaGVscFNlcnZpY2U6IEhlbHBTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogVGhlIGNvbXBvbmVudCBpcyBzaG93biBieSBkZWZhdWx0IGFuZCB0aGVyZWZvcmUgYnJlYWtzIGUyZSB0ZXN0LiBUaGlzIGlzXG4gICAqIHRvIHByZXZlbnQgdGhlIHZpc2liaWxpdHkgb24gZmlyc3QgbmF2aWdhdGlvbi5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25Db2xsYXBzZWQoKSB7XG4gICAgdGhpcy5pc0luaXQgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgVVJMIGJhc2VkIG9uIHRoZSBzcmMuIFRoZSBCYXNlIFVSTCBjYW4gYmUgc2V0IGluIHRoZSBhcHBsaWNhdGlvbiBvcHRpb25zIGRvY0Jhc2VVcmwuXG4gICAqIEBwYXJhbSBzcmMgVGhlIHNvdXJjZSBvZiB0aGUgaGVscCBvbiB0aGUgZ3VpZGUuXG4gICAqIEBwYXJhbSBpbmRleCBUaGlzIGZsYWcgaXMgdXNlZCB0byBjYWxsIHRoZSBpbmRleC5qc29uIGNvbnRlbnQgb2YgYSBndWlkZS4gRm9yIGV4YW1wbGUsIFwiaHR0cHM6Ly9jdW11bG9jaXR5LmNvbS9kb2NzL2NvY2twaXQvZGF0YS1leHBsb3Jlci9pbmRleC5qc29uXCIuXG4gICAqL1xuICBnZXRVcmwoc3JjID0gJycsIGluZGV4ID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGxldCBkb2NzVXJsOiBVUkw7XG5cbiAgICB0cnkge1xuICAgICAgZG9jc1VybCA9XG4gICAgICAgIHR5cGVvZiB0aGlzLmhlbHBTZXJ2aWNlLmNvbnRleHRIZWxwLnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gbmV3IFVSTCh0aGlzLmRvY3NTZXJ2aWNlLmdldFVybFdpdGhEb2NzVmVyc2lvbih0aGlzLmhlbHBTZXJ2aWNlLmNvbnRleHRIZWxwLnZhbHVlKSlcbiAgICAgICAgICA6IG5ldyBVUkwodGhpcy5kb2NzU2VydmljZS5nZXRCYXNlVXJsKCkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBkb2NzVXJsID0gbmV3IFVSTCh0aGlzLmRvY3NTZXJ2aWNlLmdldEJhc2VVcmwoKSk7XG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IpO1xuICAgIH1cblxuICAgIGNvbnN0IFt1cmwsIGhhc2hGcmFnbWVudF0gPSBzcmMuc3BsaXQoJyMnKTtcbiAgICB0aGlzLnNlY3Rpb25IZWFkaW5nID0gaGFzaEZyYWdtZW50O1xuXG4gICAgaWYgKGluZGV4KSB7XG4gICAgICBzcmMgPSBgJHt1cmx9aW5kZXguanNvbmA7XG4gICAgICBkb2NzVXJsLnBhdGhuYW1lICs9IHNyYztcbiAgICB9IGVsc2Uge1xuICAgICAgZG9jc1VybC5wYXRobmFtZSArPSB1cmw7XG4gICAgICBpZiAoaGFzaEZyYWdtZW50KSB7XG4gICAgICAgIGRvY3NVcmwuaGFzaCA9IGhhc2hGcmFnbWVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkb2NzVXJsLnBhdGhuYW1lID0gZG9jc1VybC5wYXRobmFtZS5yZXBsYWNlKC9cXC8rL2csICcvJyk7XG4gICAgcmV0dXJuIGRvY3NVcmwuaHJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBoZWxwIGRpYWxvZy5cbiAgICovXG4gIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5pc0NvbGxhcHNlZCkge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGhlbHAgZGlhbG9nLlxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IHRydWU7XG4gICAgdGhpcy5jbGVhbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBoZWxwIGRpYWxvZy5cbiAgICovXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnJlcXVlc3RDb250ZW50KCk7XG4gICAgaWYgKCF0aGlzLmljb24pIHtcbiAgICAgIHRoaXMuaWNvbiA9IHRoaXMucmVzb2x2ZUljb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlcXVlc3RDb250ZW50KCkge1xuICAgIGNvbnN0IHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB0aGlzLnJlbmRlcihyZXEpO1xuICAgIHJlcS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4gdGhpcy5yZW5kZXIocmVxKSk7XG4gICAgcmVxLm9wZW4oJ0dFVCcsIHRoaXMuZ2V0VXJsKHRoaXMuc3JjLCB0cnVlKSk7XG4gICAgcmVxLnJlc3BvbnNlVHlwZSA9ICdqc29uJztcbiAgICByZXEuc2V0UmVxdWVzdEhlYWRlcignQWNjZXB0JywgJ3RleHQvaHRtbCcpO1xuICAgIHJlcS5zZW5kKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFuKCkge1xuICAgIHRoaXMudGl0bGUgPSAnJztcbiAgICB0aGlzLmhhc0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy5zZWN0aW9uQ29udGVudCA9ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlSWNvbigpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaWNvbiA9IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbmF2IC5hY3RpdmUgaScpLmNsYXNzTGlzdCkuZmluZChcbiAgICAgICAgY2xhc3NlcyA9PiBjbGFzc2VzLnN0YXJ0c1dpdGgoJ2M4eS1pY29uLScpIHx8IGNsYXNzZXMuc3RhcnRzV2l0aCgnZGx0LWM4eS1pY29uLScpXG4gICAgICApO1xuICAgICAgcmV0dXJuIGljb24ucmVwbGFjZSgnZGx0LWM4eS1pY29uLScsICcnKS5yZXBsYWNlKCdjOHktaWNvbi0nLCAnYzh5LScpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICByZXR1cm4gJ2xpZmUtc2F2ZXInO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyKHJlcTogWE1MSHR0cFJlcXVlc3QpIHtcbiAgICBpZiAocmVxLnJlYWR5U3RhdGUgPT09IDQpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICBpZiAocmVxLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgY29uc3Qgc2VjdGlvbkRhdGEgPSByZXEucmVzcG9uc2VbdGhpcy5zZWN0aW9uSGVhZGluZ107XG4gICAgICAgIGlmIChzZWN0aW9uRGF0YSkge1xuICAgICAgICAgIHRoaXMudGl0bGUgPSBzZWN0aW9uRGF0YS50aXRsZTtcbiAgICAgICAgICB0aGlzLnNlY3Rpb25Db250ZW50ID0gc2VjdGlvbkRhdGEuaGVscGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGM4eS1hY3Rpb24tYmFyLWl0ZW1cbiAgW3BsYWNlbWVudF09XCIncmlnaHQnXCJcbiAgaXRlbUNsYXNzPVwicHVsbC1yaWdodCBtLWwtOFwiXG4gIFtwcmlvcml0eV09XCJwcmlvcml0eVwiXG4gICpuZ0lmPVwiISEoaGVscFNlcnZpY2UuY29udGV4dEhlbHAgfCBhc3luYylcIlxuPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4taGVscFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQWJvdXQgdGhpcyBwYWdlJyB8IHRyYW5zbGF0ZVwiXG4gICAgdG9vbHRpcD1cInt7ICdBYm91dCB0aGlzIHBhZ2UnIHwgdHJhbnNsYXRlIH19XCJcbiAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICBhcmlhLWNvbnRyb2xzPVwiY29sbGFwc2VIZWxwXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiFpc0NvbGxhcHNlZFwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgZGF0YS1jeT1cImhlbHAtLWhlbHAtYnRuXCJcbiAgICBbZGVsYXldPVwiNzUwXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgW2FjdGlvbk5hbWVdPVwiaXNDb2xsYXBzZWQgPyAnaGVscE9wZW5lZCcgOiAnaGVscENsb3NlZCdcIlxuICAgIFthY3Rpb25EYXRhXT1cInsgc3JjOiBzcmMgfVwiXG4gID48L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGRpdlxuICBjbGFzcz1cImM4eS1oZWxwLWRyYXdlclwiXG4gIGlkPVwiY29sbGFwc2VIZWxwXCJcbiAgW2NvbGxhcHNlXT1cImlzQ29sbGFwc2VkXCJcbiAgW2lzQW5pbWF0ZWRdPVwidHJ1ZVwiXG4gIChjb2xsYXBzZWQpPVwib25Db2xsYXBzZWQoKVwiXG4+XG4gIDxkaXZcbiAgICBbbmdDbGFzc109XCJ7ICdjOHktaGVscC1kcmF3ZXItYmxvY2snOiBpc0luaXQgfVwiXG4gICAgI2RvY091dGxldFxuICAgIGRhdGEtY3k9XCJjOHktaGVscC0tYzh5LWhlbHAtZHJhd2VyLWJsb2NrXCJcbiAgPlxuICAgIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgICAgIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cImM4eS1pY29uLWR1b2NvbG9yIGljb24tNDhcIlxuICAgICAgICAgIFtjOHlJY29uXT1cIiFoYXNFcnJvciA/IGljb24gOiAndW5saW5rJ1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAndGV4dC13YXJuaW5nJzogaGFzRXJyb3IsICd0ZXh0LW11dGVkJzogIWhhc0Vycm9yIH1cIlxuICAgICAgICA+PC9pPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJwLWwtMTYgZmxleC1ncm93XCJcbiAgICAgICAgICAqbmdJZj1cIiFoYXNFcnJvclwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm8gbS1iLTE2XCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICFoZWxwU2VydmljZS5pc1N1cHBvcnRlZExhbmd1YWdlKCkgJiZcbiAgICAgICAgICAgICAgIXNob3dMYW5nV2FybmluZyAmJlxuICAgICAgICAgICAgICAhaGVscFNlcnZpY2UuaXNXYXJuaW5nQWxlcnRWaWV3ZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImNsb3NlXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ2xvc2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICBzaG93TGFuZ1dhcm5pbmcgPSAhc2hvd0xhbmdXYXJuaW5nO1xuICAgICAgICAgICAgICAgIGhlbHBTZXJ2aWNlLmlzV2FybmluZ0FsZXJ0Vmlld2VkID0gIWhlbHBTZXJ2aWNlLmlzV2FybmluZ0FsZXJ0Vmlld2VkXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPsOXPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5DbG9zZTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgIHt7ICdIZWxwIGNvbnRlbnQgaXMgb25seSBhdmFpbGFibGUgaW4gRW5nbGlzaC4nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC1ib2xkIHRleHQtcHJpbWFyeSBwLXQtMTYgbS1iLTE2XCI+XG4gICAgICAgICAgICB7eyB0aXRsZSB9fVxuICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJoZWxwLWNvbnRlbnRcIlxuICAgICAgICAgICAgaWQ9XCJoZWxwQ29udGVudFwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cInNlY3Rpb25Db250ZW50XCJcbiAgICAgICAgICAgIGRhdGEtY3k9XCJoZWxwLS1jOHktaGVscC1jb250ZW50XCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInAtbC0xNiBwLXQtMTYgZmxleC1ncm93XCJcbiAgICAgICAgICAqbmdJZj1cImhhc0Vycm9yXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxoNFxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvbGQgbS1iLTE2XCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIENvbnRlbnQgY291bGRuJ3QgYmUgbG9hZGVkLlxuICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHAtY29udGVudFwiPlxuICAgICAgICAgICAgPHAgdHJhbnNsYXRlPkNoZWNrIGludGVybmV0IGNvbm5lY3Rpb24gb3IgcmVsb2FkIHBhZ2UuPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYzh5LWhlbHAtZHJhd2VyLWZvb3RlciBhbmltYXRlZCBmYWRlSW5cIlxuICAgIHN0eWxlPVwiYW5pbWF0aW9uLWRlbGF5OiAwLjM1c1wiXG4gICAgKm5nSWY9XCIhaXNMb2FkaW5nICYmICFoYXNFcnJvclwiXG4gICAgZGF0YS1jeT1cImM4eS1oZWxwLS1jOHktaGVscC1kcmF3ZXItZm9vdGVyXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgIFt0aXRsZV09XCInQ2xvc2UgaGVscCcgfCB0cmFuc2xhdGVcIlxuICAgICAgYXJpYS1jb250cm9scz1cImNvbGxhcHNlSGVscFwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIiFpc0NvbGxhcHNlZFwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGUoKVwiXG4gICAgICB0cmFuc2xhdGVcbiAgICA+XG4gICAgICBDbG9zZVxuICAgIDwvYnV0dG9uPlxuICAgIDxhXG4gICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICBocmVmPVwie3sgaGFzRXJyb3IgPyBnZXRVcmwoKSA6IGdldFVybChzcmMpIH19XCJcbiAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICBkYXRhLWN5PVwiYzh5LWhlbHAtLXVzZXItZ3VpZGVcIlxuICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICpuZ0lmPVwiIWhhc0Vycm9yXCJcbiAgICAgID5cbiAgICAgICAgT3BlbiB0aGVcbiAgICAgICAgPHNwYW4+dXNlciBkb2N1bWVudGF0aW9uPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICpuZ0lmPVwiaGFzRXJyb3JcIlxuICAgICAgPlxuICAgICAgICBDaGVjayB0aGVcbiAgICAgICAgPHNwYW4+dXNlciBkb2N1bWVudGF0aW9uPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==